diff --git a/.gitignore b/.gitignore
index 4bfdc835..e638b20e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,18 +1,20 @@
-.idea
-dist
-node_modules
-*.log
-*.bak
-*.launch
-mxproject
-coverage
-GPUCache
-deployment
-javasource/system
-javasource/*/proxies
-theme
-widgets
-*.lock
-.classpath
-.project
-
+/*.launch
+/deployment/
+/packages/
+/releases/
+/.mendix-cache/
+/.classpath
+/.project
+/fileuploaderproject.mpr.bak
+/fileuploaderproject.mpr.lock
+/modeler-merge-marker
+/project-settings.user.json
+/javasource/*/proxies/
+/javasource/system/
+/**/node_modules/
+!/javascriptsource/**/node_modules/
+/nativemobile/builds/
+/vendorlib/temp/
+.DS_Store
+/.svn/
+/mprcontents/mprjournal*
diff --git a/FileUploaderProject.mpr b/FileUploaderProject.mpr
new file mode 100644
index 00000000..56f7dc08
Binary files /dev/null and b/FileUploaderProject.mpr differ
diff --git a/README.md b/README.md
deleted file mode 100644
index 3c26b17f..00000000
--- a/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# Mendix Test Projects
-
-A collection of test projects regarding to R&D platform supported web widgets. Please find the correct branch name in order to find the corresponding widget's test project.
-
-These projects are being used for e2e tests in [widget-resources mono-repo](https://github.com/mendix/widgets-resources). For more information please visit it.
-
-
-
diff --git a/project-settings.user.json b/project-settings.user.json
new file mode 100644
index 00000000..26bcff31
--- /dev/null
+++ b/project-settings.user.json
@@ -0,0 +1,19 @@
+{
+ "serializationVersion": 2,
+ "settingsParts": [
+ {
+ "suppressions": [],
+ "suppressAppStoreWarnings": false,
+ "showSuppressionInfo": true,
+ "type": "Mendix.Modeler.Suppressions.SuppressionRules, Mendix.Modeler.Core, Version=9.24.0.0, Culture=neutral, PublicKeyToken=null"
+ },
+ {
+ "suppressions": [],
+ "disabledBestPractices": [],
+ "readRecommendations": [],
+ "suppressedRecommendations": [],
+ "hasShownRecommendationsNotificationForThisApp": false,
+ "type": "Mendix.Modeler.MxAssist.PerformanceBot.Serialization.Configuration.PerformanceBotConfiguration, Mendix.Modeler.MxAssist.PerformanceBot.Serialization, Version=9.24.0.0, Culture=neutral, PublicKeyToken=null"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/resources/Design_header.png b/resources/Design_header.png
new file mode 100644
index 00000000..8c439dc7
Binary files /dev/null and b/resources/Design_header.png differ
diff --git a/resources/icon-bb.png b/resources/icon-bb.png
new file mode 100644
index 00000000..5efe8acd
Binary files /dev/null and b/resources/icon-bb.png differ
diff --git a/resources/icon-list.png b/resources/icon-list.png
new file mode 100644
index 00000000..e3b4d0f5
Binary files /dev/null and b/resources/icon-list.png differ
diff --git a/resources/icon-list2.png b/resources/icon-list2.png
new file mode 100644
index 00000000..6c808886
Binary files /dev/null and b/resources/icon-list2.png differ
diff --git a/resources/icon-widget.png b/resources/icon-widget.png
new file mode 100644
index 00000000..a0d3f851
Binary files /dev/null and b/resources/icon-widget.png differ
diff --git a/resources/templates/index_with_silent_authentication.html b/resources/templates/index_with_silent_authentication.html
new file mode 100644
index 00000000..677d902d
--- /dev/null
+++ b/resources/templates/index_with_silent_authentication.html
@@ -0,0 +1,89 @@
+
+
+
+
+
+ Mendix
+
+
+
+ {{themecss}}
+ {{appicons}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/templates/login_automatic_redirect.html b/resources/templates/login_automatic_redirect.html
new file mode 100644
index 00000000..bdbddeaa
--- /dev/null
+++ b/resources/templates/login_automatic_redirect.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+ Your browser does not support JavaScript! You need to enable JavaScript to continue.
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/templates/sso_error.html b/resources/templates/sso_error.html
new file mode 100644
index 00000000..bb0f3d1f
--- /dev/null
+++ b/resources/templates/sso_error.html
@@ -0,0 +1 @@
+App Login - Error {{TITLE}} {{MESSAGE}}
Back to Home
\ No newline at end of file
diff --git a/theme-cache/web/theme.compiled.css b/theme-cache/web/theme.compiled.css
new file mode 100644
index 00000000..8f65e81b
--- /dev/null
+++ b/theme-cache/web/theme.compiled.css
@@ -0,0 +1,21926 @@
+@charset "UTF-8";
+@import url("resources/fonts/open-sans/open-sans.css");
+/*!
+ * Bootstrap v3.3.4 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+/*******************************************************************************
+ * bootstrap-rtl (version 3.3.4)
+ * Author: Morteza Ansarinia (http://github.com/morteza)
+ * Created on: August 13,2015
+ * Project: bootstrap-rtl
+ * Copyright: Unlicensed Public Domain
+ *******************************************************************************/
+/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
+html {
+ font-family: sans-serif;
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
+}
+
+body {
+ margin: 0;
+}
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section,
+summary {
+ display: block;
+}
+
+audio,
+canvas,
+progress,
+video {
+ display: inline-block;
+ vertical-align: baseline;
+}
+
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+
+[hidden],
+template {
+ display: none;
+}
+
+a {
+ background-color: transparent;
+}
+
+a:active,
+a:hover {
+ outline: 0;
+}
+
+abbr[title] {
+ border-bottom: 1px dotted;
+}
+
+b,
+strong {
+ font-weight: bold;
+}
+
+dfn {
+ font-style: italic;
+}
+
+h1 {
+ margin: 0.67em 0;
+ font-size: 2em;
+}
+
+mark {
+ color: #000;
+ background: #ff0;
+}
+
+small {
+ font-size: 80%;
+}
+
+sub,
+sup {
+ position: relative;
+ font-size: 75%;
+ line-height: 0;
+ vertical-align: baseline;
+}
+
+sup {
+ top: -0.5em;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+img {
+ border: 0;
+}
+
+svg:not(:root) {
+ overflow: hidden;
+}
+
+figure {
+ margin: 1em 40px;
+}
+
+hr {
+ height: 0;
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+}
+
+pre {
+ overflow: auto;
+}
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em;
+}
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ margin: 0;
+ font: inherit;
+ color: inherit;
+}
+
+button {
+ overflow: visible;
+}
+
+button,
+select {
+ text-transform: none;
+}
+
+button,
+html input[type=button],
+input[type=reset],
+input[type=submit] {
+ -webkit-appearance: button;
+ cursor: pointer;
+}
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ padding: 0;
+ border: 0;
+}
+
+input {
+ line-height: normal;
+}
+
+input[type=checkbox],
+input[type=radio] {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: 0;
+}
+
+input[type=number]::-webkit-inner-spin-button,
+input[type=number]::-webkit-outer-spin-button {
+ height: auto;
+}
+
+input[type=search] {
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ -webkit-appearance: textfield;
+}
+
+input[type=search]::-webkit-search-cancel-button,
+input[type=search]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+fieldset {
+ padding: 0.35em 0.625em 0.75em;
+ margin: 0 2px;
+ border: 1px solid #c0c0c0;
+}
+
+legend {
+ padding: 0;
+ border: 0;
+}
+
+textarea {
+ overflow: auto;
+}
+
+optgroup {
+ font-weight: bold;
+}
+
+table {
+ border-spacing: 0;
+ border-collapse: collapse;
+}
+
+td,
+th {
+ padding: 0;
+}
+
+/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
+@media print {
+ *,
+*:before,
+*:after {
+ color: #000 !important;
+ text-shadow: none !important;
+ background: transparent !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+ }
+
+ a,
+a:visited {
+ text-decoration: underline;
+ }
+
+ a[href]:after {
+ content: " (" attr(href) ")";
+ }
+
+ abbr[title]:after {
+ content: " (" attr(title) ")";
+ }
+
+ a[href^="#"]:after,
+a[href^="javascript:"]:after {
+ content: "";
+ }
+
+ pre,
+blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid;
+ }
+
+ thead {
+ display: table-header-group;
+ }
+
+ tr,
+img {
+ page-break-inside: avoid;
+ }
+
+ img {
+ max-width: 100% !important;
+ }
+
+ p,
+h2,
+h3 {
+ orphans: 3;
+ widows: 3;
+ }
+
+ h2,
+h3 {
+ page-break-after: avoid;
+ }
+
+ select {
+ background: #fff !important;
+ }
+
+ .navbar {
+ display: none;
+ }
+
+ .btn > .caret,
+.dropup > .btn > .caret {
+ border-top-color: #000 !important;
+ }
+
+ .label {
+ border: 1px solid #000;
+ }
+
+ .table {
+ border-collapse: collapse !important;
+ }
+
+ .table td,
+.table th {
+ background-color: #fff !important;
+ }
+
+ .table-bordered th,
+.table-bordered td {
+ border: 1px solid #ddd !important;
+ }
+}
+@font-face {
+ font-family: "Glyphicons Halflings";
+ src: url("./resources/glyphicons-halflings-regular.woff2") format("woff2");
+}
+.glyphicon {
+ position: relative;
+ top: 1px;
+ display: inline-block;
+ font-family: "Glyphicons Halflings";
+ font-style: normal;
+ font-weight: normal;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.glyphicon-asterisk:before {
+ content: "*";
+}
+
+.glyphicon-plus:before {
+ content: "+";
+}
+
+.glyphicon-euro:before,
+.glyphicon-eur:before {
+ content: "€";
+}
+
+.glyphicon-minus:before {
+ content: "−";
+}
+
+.glyphicon-cloud:before {
+ content: "☁";
+}
+
+.glyphicon-envelope:before {
+ content: "✉";
+}
+
+.glyphicon-pencil:before {
+ content: "✏";
+}
+
+.glyphicon-glass:before {
+ content: "\e001";
+}
+
+.glyphicon-music:before {
+ content: "\e002";
+}
+
+.glyphicon-search:before {
+ content: "\e003";
+}
+
+.glyphicon-heart:before {
+ content: "\e005";
+}
+
+.glyphicon-star:before {
+ content: "\e006";
+}
+
+.glyphicon-star-empty:before {
+ content: "\e007";
+}
+
+.glyphicon-user:before {
+ content: "\e008";
+}
+
+.glyphicon-film:before {
+ content: "\e009";
+}
+
+.glyphicon-th-large:before {
+ content: "\e010";
+}
+
+.glyphicon-th:before {
+ content: "\e011";
+}
+
+.glyphicon-th-list:before {
+ content: "\e012";
+}
+
+.glyphicon-ok:before {
+ content: "\e013";
+}
+
+.glyphicon-remove:before {
+ content: "\e014";
+}
+
+.glyphicon-zoom-in:before {
+ content: "\e015";
+}
+
+.glyphicon-zoom-out:before {
+ content: "\e016";
+}
+
+.glyphicon-off:before {
+ content: "\e017";
+}
+
+.glyphicon-signal:before {
+ content: "\e018";
+}
+
+.glyphicon-cog:before {
+ content: "\e019";
+}
+
+.glyphicon-trash:before {
+ content: "\e020";
+}
+
+.glyphicon-home:before {
+ content: "\e021";
+}
+
+.glyphicon-file:before {
+ content: "\e022";
+}
+
+.glyphicon-time:before {
+ content: "\e023";
+}
+
+.glyphicon-road:before {
+ content: "\e024";
+}
+
+.glyphicon-download-alt:before {
+ content: "\e025";
+}
+
+.glyphicon-download:before {
+ content: "\e026";
+}
+
+.glyphicon-upload:before {
+ content: "\e027";
+}
+
+.glyphicon-inbox:before {
+ content: "\e028";
+}
+
+.glyphicon-play-circle:before {
+ content: "\e029";
+}
+
+.glyphicon-repeat:before {
+ content: "\e030";
+}
+
+.glyphicon-refresh:before {
+ content: "\e031";
+}
+
+.glyphicon-list-alt:before {
+ content: "\e032";
+}
+
+.glyphicon-lock:before {
+ content: "\e033";
+}
+
+.glyphicon-flag:before {
+ content: "\e034";
+}
+
+.glyphicon-headphones:before {
+ content: "\e035";
+}
+
+.glyphicon-volume-off:before {
+ content: "\e036";
+}
+
+.glyphicon-volume-down:before {
+ content: "\e037";
+}
+
+.glyphicon-volume-up:before {
+ content: "\e038";
+}
+
+.glyphicon-qrcode:before {
+ content: "\e039";
+}
+
+.glyphicon-barcode:before {
+ content: "\e040";
+}
+
+.glyphicon-tag:before {
+ content: "\e041";
+}
+
+.glyphicon-tags:before {
+ content: "\e042";
+}
+
+.glyphicon-book:before {
+ content: "\e043";
+}
+
+.glyphicon-bookmark:before {
+ content: "\e044";
+}
+
+.glyphicon-print:before {
+ content: "\e045";
+}
+
+.glyphicon-camera:before {
+ content: "\e046";
+}
+
+.glyphicon-font:before {
+ content: "\e047";
+}
+
+.glyphicon-bold:before {
+ content: "\e048";
+}
+
+.glyphicon-italic:before {
+ content: "\e049";
+}
+
+.glyphicon-text-height:before {
+ content: "\e050";
+}
+
+.glyphicon-text-width:before {
+ content: "\e051";
+}
+
+.glyphicon-align-left:before {
+ content: "\e052";
+}
+
+.glyphicon-align-center:before {
+ content: "\e053";
+}
+
+.glyphicon-align-right:before {
+ content: "\e054";
+}
+
+.glyphicon-align-justify:before {
+ content: "\e055";
+}
+
+.glyphicon-list:before {
+ content: "\e056";
+}
+
+.glyphicon-indent-left:before {
+ content: "\e057";
+}
+
+.glyphicon-indent-right:before {
+ content: "\e058";
+}
+
+.glyphicon-facetime-video:before {
+ content: "\e059";
+}
+
+.glyphicon-picture:before {
+ content: "\e060";
+}
+
+.glyphicon-map-marker:before {
+ content: "\e062";
+}
+
+.glyphicon-adjust:before {
+ content: "\e063";
+}
+
+.glyphicon-tint:before {
+ content: "\e064";
+}
+
+.glyphicon-edit:before {
+ content: "\e065";
+}
+
+.glyphicon-share:before {
+ content: "\e066";
+}
+
+.glyphicon-check:before {
+ content: "\e067";
+}
+
+.glyphicon-move:before {
+ content: "\e068";
+}
+
+.glyphicon-step-backward:before {
+ content: "\e069";
+}
+
+.glyphicon-fast-backward:before {
+ content: "\e070";
+}
+
+.glyphicon-backward:before {
+ content: "\e071";
+}
+
+.glyphicon-play:before {
+ content: "\e072";
+}
+
+.glyphicon-pause:before {
+ content: "\e073";
+}
+
+.glyphicon-stop:before {
+ content: "\e074";
+}
+
+.glyphicon-forward:before {
+ content: "\e075";
+}
+
+.glyphicon-fast-forward:before {
+ content: "\e076";
+}
+
+.glyphicon-step-forward:before {
+ content: "\e077";
+}
+
+.glyphicon-eject:before {
+ content: "\e078";
+}
+
+.glyphicon-chevron-left:before {
+ content: "\e079";
+}
+
+.glyphicon-chevron-right:before {
+ content: "\e080";
+}
+
+.glyphicon-plus-sign:before {
+ content: "\e081";
+}
+
+.glyphicon-minus-sign:before {
+ content: "\e082";
+}
+
+.glyphicon-remove-sign:before {
+ content: "\e083";
+}
+
+.glyphicon-ok-sign:before {
+ content: "\e084";
+}
+
+.glyphicon-question-sign:before {
+ content: "\e085";
+}
+
+.glyphicon-info-sign:before {
+ content: "\e086";
+}
+
+.glyphicon-screenshot:before {
+ content: "\e087";
+}
+
+.glyphicon-remove-circle:before {
+ content: "\e088";
+}
+
+.glyphicon-ok-circle:before {
+ content: "\e089";
+}
+
+.glyphicon-ban-circle:before {
+ content: "\e090";
+}
+
+.glyphicon-arrow-left:before {
+ content: "\e091";
+}
+
+.glyphicon-arrow-right:before {
+ content: "\e092";
+}
+
+.glyphicon-arrow-up:before {
+ content: "\e093";
+}
+
+.glyphicon-arrow-down:before {
+ content: "\e094";
+}
+
+.glyphicon-share-alt:before {
+ content: "\e095";
+}
+
+.glyphicon-resize-full:before {
+ content: "\e096";
+}
+
+.glyphicon-resize-small:before {
+ content: "\e097";
+}
+
+.glyphicon-exclamation-sign:before {
+ content: "\e101";
+}
+
+.glyphicon-gift:before {
+ content: "\e102";
+}
+
+.glyphicon-leaf:before {
+ content: "\e103";
+}
+
+.glyphicon-fire:before {
+ content: "\e104";
+}
+
+.glyphicon-eye-open:before {
+ content: "\e105";
+}
+
+.glyphicon-eye-close:before {
+ content: "\e106";
+}
+
+.glyphicon-warning-sign:before {
+ content: "\e107";
+}
+
+.glyphicon-plane:before {
+ content: "\e108";
+}
+
+.glyphicon-calendar:before {
+ content: "\e109";
+}
+
+.glyphicon-random:before {
+ content: "\e110";
+}
+
+.glyphicon-comment:before {
+ content: "\e111";
+}
+
+.glyphicon-magnet:before {
+ content: "\e112";
+}
+
+.glyphicon-chevron-up:before {
+ content: "\e113";
+}
+
+.glyphicon-chevron-down:before {
+ content: "\e114";
+}
+
+.glyphicon-retweet:before {
+ content: "\e115";
+}
+
+.glyphicon-shopping-cart:before {
+ content: "\e116";
+}
+
+.glyphicon-folder-close:before {
+ content: "\e117";
+}
+
+.glyphicon-folder-open:before {
+ content: "\e118";
+}
+
+.glyphicon-resize-vertical:before {
+ content: "\e119";
+}
+
+.glyphicon-resize-horizontal:before {
+ content: "\e120";
+}
+
+.glyphicon-hdd:before {
+ content: "\e121";
+}
+
+.glyphicon-bullhorn:before {
+ content: "\e122";
+}
+
+.glyphicon-bell:before {
+ content: "\e123";
+}
+
+.glyphicon-certificate:before {
+ content: "\e124";
+}
+
+.glyphicon-thumbs-up:before {
+ content: "\e125";
+}
+
+.glyphicon-thumbs-down:before {
+ content: "\e126";
+}
+
+.glyphicon-hand-right:before {
+ content: "\e127";
+}
+
+.glyphicon-hand-left:before {
+ content: "\e128";
+}
+
+.glyphicon-hand-up:before {
+ content: "\e129";
+}
+
+.glyphicon-hand-down:before {
+ content: "\e130";
+}
+
+.glyphicon-circle-arrow-right:before {
+ content: "\e131";
+}
+
+.glyphicon-circle-arrow-left:before {
+ content: "\e132";
+}
+
+.glyphicon-circle-arrow-up:before {
+ content: "\e133";
+}
+
+.glyphicon-circle-arrow-down:before {
+ content: "\e134";
+}
+
+.glyphicon-globe:before {
+ content: "\e135";
+}
+
+.glyphicon-wrench:before {
+ content: "\e136";
+}
+
+.glyphicon-tasks:before {
+ content: "\e137";
+}
+
+.glyphicon-filter:before {
+ content: "\e138";
+}
+
+.glyphicon-briefcase:before {
+ content: "\e139";
+}
+
+.glyphicon-fullscreen:before {
+ content: "\e140";
+}
+
+.glyphicon-dashboard:before {
+ content: "\e141";
+}
+
+.glyphicon-paperclip:before {
+ content: "\e142";
+}
+
+.glyphicon-heart-empty:before {
+ content: "\e143";
+}
+
+.glyphicon-link:before {
+ content: "\e144";
+}
+
+.glyphicon-phone:before {
+ content: "\e145";
+}
+
+.glyphicon-pushpin:before {
+ content: "\e146";
+}
+
+.glyphicon-usd:before {
+ content: "\e148";
+}
+
+.glyphicon-gbp:before {
+ content: "\e149";
+}
+
+.glyphicon-sort:before {
+ content: "\e150";
+}
+
+.glyphicon-sort-by-alphabet:before {
+ content: "\e151";
+}
+
+.glyphicon-sort-by-alphabet-alt:before {
+ content: "\e152";
+}
+
+.glyphicon-sort-by-order:before {
+ content: "\e153";
+}
+
+.glyphicon-sort-by-order-alt:before {
+ content: "\e154";
+}
+
+.glyphicon-sort-by-attributes:before {
+ content: "\e155";
+}
+
+.glyphicon-sort-by-attributes-alt:before {
+ content: "\e156";
+}
+
+.glyphicon-unchecked:before {
+ content: "\e157";
+}
+
+.glyphicon-expand:before {
+ content: "\e158";
+}
+
+.glyphicon-collapse-down:before {
+ content: "\e159";
+}
+
+.glyphicon-collapse-up:before {
+ content: "\e160";
+}
+
+.glyphicon-log-in:before {
+ content: "\e161";
+}
+
+.glyphicon-flash:before {
+ content: "\e162";
+}
+
+.glyphicon-log-out:before {
+ content: "\e163";
+}
+
+.glyphicon-new-window:before {
+ content: "\e164";
+}
+
+.glyphicon-record:before {
+ content: "\e165";
+}
+
+.glyphicon-save:before {
+ content: "\e166";
+}
+
+.glyphicon-open:before {
+ content: "\e167";
+}
+
+.glyphicon-saved:before {
+ content: "\e168";
+}
+
+.glyphicon-import:before {
+ content: "\e169";
+}
+
+.glyphicon-export:before {
+ content: "\e170";
+}
+
+.glyphicon-send:before {
+ content: "\e171";
+}
+
+.glyphicon-floppy-disk:before {
+ content: "\e172";
+}
+
+.glyphicon-floppy-saved:before {
+ content: "\e173";
+}
+
+.glyphicon-floppy-remove:before {
+ content: "\e174";
+}
+
+.glyphicon-floppy-save:before {
+ content: "\e175";
+}
+
+.glyphicon-floppy-open:before {
+ content: "\e176";
+}
+
+.glyphicon-credit-card:before {
+ content: "\e177";
+}
+
+.glyphicon-transfer:before {
+ content: "\e178";
+}
+
+.glyphicon-cutlery:before {
+ content: "\e179";
+}
+
+.glyphicon-header:before {
+ content: "\e180";
+}
+
+.glyphicon-compressed:before {
+ content: "\e181";
+}
+
+.glyphicon-earphone:before {
+ content: "\e182";
+}
+
+.glyphicon-phone-alt:before {
+ content: "\e183";
+}
+
+.glyphicon-tower:before {
+ content: "\e184";
+}
+
+.glyphicon-stats:before {
+ content: "\e185";
+}
+
+.glyphicon-sd-video:before {
+ content: "\e186";
+}
+
+.glyphicon-hd-video:before {
+ content: "\e187";
+}
+
+.glyphicon-subtitles:before {
+ content: "\e188";
+}
+
+.glyphicon-sound-stereo:before {
+ content: "\e189";
+}
+
+.glyphicon-sound-dolby:before {
+ content: "\e190";
+}
+
+.glyphicon-sound-5-1:before {
+ content: "\e191";
+}
+
+.glyphicon-sound-6-1:before {
+ content: "\e192";
+}
+
+.glyphicon-sound-7-1:before {
+ content: "\e193";
+}
+
+.glyphicon-copyright-mark:before {
+ content: "\e194";
+}
+
+.glyphicon-registration-mark:before {
+ content: "\e195";
+}
+
+.glyphicon-cloud-download:before {
+ content: "\e197";
+}
+
+.glyphicon-cloud-upload:before {
+ content: "\e198";
+}
+
+.glyphicon-tree-conifer:before {
+ content: "\e199";
+}
+
+.glyphicon-tree-deciduous:before {
+ content: "\e200";
+}
+
+.glyphicon-cd:before {
+ content: "\e201";
+}
+
+.glyphicon-save-file:before {
+ content: "\e202";
+}
+
+.glyphicon-open-file:before {
+ content: "\e203";
+}
+
+.glyphicon-level-up:before {
+ content: "\e204";
+}
+
+.glyphicon-copy:before {
+ content: "\e205";
+}
+
+.glyphicon-paste:before {
+ content: "\e206";
+}
+
+.glyphicon-alert:before {
+ content: "\e209";
+}
+
+.glyphicon-equalizer:before {
+ content: "\e210";
+}
+
+.glyphicon-king:before {
+ content: "\e211";
+}
+
+.glyphicon-queen:before {
+ content: "\e212";
+}
+
+.glyphicon-pawn:before {
+ content: "\e213";
+}
+
+.glyphicon-bishop:before {
+ content: "\e214";
+}
+
+.glyphicon-knight:before {
+ content: "\e215";
+}
+
+.glyphicon-baby-formula:before {
+ content: "\e216";
+}
+
+.glyphicon-tent:before {
+ content: "⛺";
+}
+
+.glyphicon-blackboard:before {
+ content: "\e218";
+}
+
+.glyphicon-bed:before {
+ content: "\e219";
+}
+
+.glyphicon-apple:before {
+ content: "\f8ff";
+}
+
+.glyphicon-erase:before {
+ content: "\e221";
+}
+
+.glyphicon-hourglass:before {
+ content: "⌛";
+}
+
+.glyphicon-lamp:before {
+ content: "\e223";
+}
+
+.glyphicon-duplicate:before {
+ content: "\e224";
+}
+
+.glyphicon-piggy-bank:before {
+ content: "\e225";
+}
+
+.glyphicon-scissors:before {
+ content: "\e226";
+}
+
+.glyphicon-bitcoin:before {
+ content: "\e227";
+}
+
+.glyphicon-btc:before {
+ content: "\e227";
+}
+
+.glyphicon-xbt:before {
+ content: "\e227";
+}
+
+.glyphicon-yen:before {
+ content: "¥";
+}
+
+.glyphicon-jpy:before {
+ content: "¥";
+}
+
+.glyphicon-ruble:before {
+ content: "₽";
+}
+
+.glyphicon-rub:before {
+ content: "₽";
+}
+
+.glyphicon-scale:before {
+ content: "\e230";
+}
+
+.glyphicon-ice-lolly:before {
+ content: "\e231";
+}
+
+.glyphicon-ice-lolly-tasted:before {
+ content: "\e232";
+}
+
+.glyphicon-education:before {
+ content: "\e233";
+}
+
+.glyphicon-option-horizontal:before {
+ content: "\e234";
+}
+
+.glyphicon-option-vertical:before {
+ content: "\e235";
+}
+
+.glyphicon-menu-hamburger:before {
+ content: "\e236";
+}
+
+.glyphicon-modal-window:before {
+ content: "\e237";
+}
+
+.glyphicon-oil:before {
+ content: "\e238";
+}
+
+.glyphicon-grain:before {
+ content: "\e239";
+}
+
+.glyphicon-sunglasses:before {
+ content: "\e240";
+}
+
+.glyphicon-text-size:before {
+ content: "\e241";
+}
+
+.glyphicon-text-color:before {
+ content: "\e242";
+}
+
+.glyphicon-text-background:before {
+ content: "\e243";
+}
+
+.glyphicon-object-align-top:before {
+ content: "\e244";
+}
+
+.glyphicon-object-align-bottom:before {
+ content: "\e245";
+}
+
+.glyphicon-object-align-horizontal:before {
+ content: "\e246";
+}
+
+.glyphicon-object-align-left:before {
+ content: "\e247";
+}
+
+.glyphicon-object-align-vertical:before {
+ content: "\e248";
+}
+
+.glyphicon-object-align-right:before {
+ content: "\e249";
+}
+
+.glyphicon-triangle-right:before {
+ content: "\e250";
+}
+
+.glyphicon-triangle-left:before {
+ content: "\e251";
+}
+
+.glyphicon-triangle-bottom:before {
+ content: "\e252";
+}
+
+.glyphicon-triangle-top:before {
+ content: "\e253";
+}
+
+.glyphicon-console:before {
+ content: "\e254";
+}
+
+.glyphicon-superscript:before {
+ content: "\e255";
+}
+
+.glyphicon-subscript:before {
+ content: "\e256";
+}
+
+.glyphicon-menu-left:before {
+ content: "\e257";
+}
+
+.glyphicon-menu-right:before {
+ content: "\e258";
+}
+
+.glyphicon-menu-down:before {
+ content: "\e259";
+}
+
+.glyphicon-menu-up:before {
+ content: "\e260";
+}
+
+* {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+*:before,
+*:after {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+html {
+ font-size: 10px;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+
+body {
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 14px;
+ line-height: 1.42857143;
+ color: #333;
+ background-color: #fff;
+}
+
+input,
+button,
+select,
+textarea {
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit;
+}
+
+a {
+ color: #337ab7;
+ text-decoration: none;
+}
+
+a:hover,
+a:focus {
+ color: #23527c;
+ text-decoration: underline;
+}
+
+a:focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+
+figure {
+ margin: 0;
+}
+
+img {
+ vertical-align: middle;
+}
+
+.img-responsive,
+.thumbnail > img,
+.thumbnail a > img,
+.carousel-inner > .item > img,
+.carousel-inner > .item > a > img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+
+.img-rounded {
+ border-radius: 6px;
+}
+
+.img-thumbnail {
+ display: inline-block;
+ max-width: 100%;
+ height: auto;
+ padding: 4px;
+ line-height: 1.42857143;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ -webkit-transition: all 0.2s ease-in-out;
+ -o-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 #eee;
+}
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0;
+}
+
+.sr-only-focusable:active,
+.sr-only-focusable:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+}
+
+[role=button] {
+ cursor: pointer;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+.widget-eventTime,
+.widget-timeline-title,
+h6,
+.h1,
+.h2,
+.h3,
+.h4,
+.h5,
+.h6 {
+ font-family: inherit;
+ font-weight: 500;
+ line-height: 1.1;
+ color: inherit;
+}
+
+h1 small,
+h2 small,
+h3 small,
+h4 small,
+h5 small,
+.widget-eventTime small,
+.widget-timeline-title small,
+h6 small,
+.h1 small,
+.h2 small,
+.h3 small,
+.h4 small,
+.h5 small,
+.h6 small,
+h1 .small,
+h2 .small,
+h3 .small,
+h4 .small,
+h5 .small,
+.widget-eventTime .small,
+.widget-timeline-title .small,
+h6 .small,
+.h1 .small,
+.h2 .small,
+.h3 .small,
+.h4 .small,
+.h5 .small,
+.h6 .small {
+ font-weight: normal;
+ line-height: 1;
+ color: #777;
+}
+
+h1,
+.h1,
+h2,
+.h2,
+h3,
+.h3 {
+ margin-top: 20px;
+ margin-bottom: 10px;
+}
+
+h1 small,
+.h1 small,
+h2 small,
+.h2 small,
+h3 small,
+.h3 small,
+h1 .small,
+.h1 .small,
+h2 .small,
+.h2 .small,
+h3 .small,
+.h3 .small {
+ font-size: 65%;
+}
+
+h4,
+.h4,
+h5,
+.widget-eventTime,
+.widget-timeline-title,
+.h5,
+h6,
+.h6 {
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+
+h4 small,
+.h4 small,
+h5 small,
+.widget-eventTime small,
+.widget-timeline-title small,
+.h5 small,
+h6 small,
+.h6 small,
+h4 .small,
+.h4 .small,
+h5 .small,
+.widget-eventTime .small,
+.widget-timeline-title .small,
+.h5 .small,
+h6 .small,
+.h6 .small {
+ font-size: 75%;
+}
+
+h1,
+.h1 {
+ font-size: 36px;
+}
+
+h2,
+.h2 {
+ font-size: 30px;
+}
+
+h3,
+.h3 {
+ font-size: 24px;
+}
+
+h4,
+.h4 {
+ font-size: 18px;
+}
+
+h5, .widget-eventTime, .widget-timeline-title,
+.h5 {
+ font-size: 14px;
+}
+
+h6,
+.h6 {
+ font-size: 12px;
+}
+
+p {
+ margin: 0 0 10px;
+}
+
+.lead {
+ margin-bottom: 20px;
+ font-size: 16px;
+ font-weight: 300;
+ line-height: 1.4;
+}
+
+@media (min-width: 768px) {
+ .lead {
+ font-size: 21px;
+ }
+}
+small,
+.small {
+ font-size: 85%;
+}
+
+mark,
+.mark {
+ padding: 0.2em;
+ background-color: #fcf8e3;
+}
+
+.text-left {
+ text-align: left;
+}
+
+.text-right {
+ text-align: right;
+}
+
+.text-center {
+ text-align: center;
+}
+
+.text-justify {
+ text-align: justify;
+}
+
+.text-nowrap {
+ white-space: nowrap;
+}
+
+.text-lowercase {
+ text-transform: lowercase;
+}
+
+.text-uppercase {
+ text-transform: uppercase;
+}
+
+.text-capitalize {
+ text-transform: capitalize;
+}
+
+.text-muted {
+ color: #777;
+}
+
+.text-primary {
+ color: #337ab7;
+}
+
+a.text-primary:hover {
+ color: #286090;
+}
+
+.text-success {
+ color: #3c763d;
+}
+
+a.text-success:hover {
+ color: #2b542c;
+}
+
+.text-info {
+ color: #31708f;
+}
+
+a.text-info:hover {
+ color: #245269;
+}
+
+.text-warning {
+ color: #8a6d3b;
+}
+
+a.text-warning:hover {
+ color: #66512c;
+}
+
+.text-danger {
+ color: #a94442;
+}
+
+a.text-danger:hover {
+ color: #843534;
+}
+
+.bg-primary {
+ color: #fff;
+ background-color: #337ab7;
+}
+
+a.bg-primary:hover {
+ background-color: #286090;
+}
+
+.bg-success {
+ background-color: #dff0d8;
+}
+
+a.bg-success:hover {
+ background-color: #c1e2b3;
+}
+
+.bg-info {
+ background-color: #d9edf7;
+}
+
+a.bg-info:hover {
+ background-color: #afd9ee;
+}
+
+.bg-warning {
+ background-color: #fcf8e3;
+}
+
+a.bg-warning:hover {
+ background-color: #f7ecb5;
+}
+
+.bg-danger {
+ background-color: #f2dede;
+}
+
+a.bg-danger:hover {
+ background-color: #e4b9b9;
+}
+
+.page-header {
+ padding-bottom: 9px;
+ margin: 40px 0 20px;
+ border-bottom: 1px solid #eee;
+}
+
+ul,
+ol {
+ margin-top: 0;
+ margin-bottom: 10px;
+}
+
+ul ul,
+ol ul,
+ul ol,
+ol ol {
+ margin-bottom: 0;
+}
+
+.list-unstyled {
+ padding-left: 0;
+ list-style: none;
+}
+
+.list-inline {
+ padding-left: 0;
+ margin-left: -5px;
+ list-style: none;
+}
+
+.list-inline > li {
+ display: inline-block;
+ padding-right: 5px;
+ padding-left: 5px;
+}
+
+dl {
+ margin-top: 0;
+ margin-bottom: 20px;
+}
+
+dt,
+dd {
+ line-height: 1.42857143;
+}
+
+dt {
+ font-weight: bold;
+}
+
+dd {
+ margin-left: 0;
+}
+
+@media (min-width: 768px) {
+ .dl-horizontal dt {
+ float: left;
+ width: 160px;
+ overflow: hidden;
+ clear: left;
+ text-align: right;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+
+ .dl-horizontal dd {
+ margin-left: 180px;
+ }
+}
+abbr[title],
+abbr[data-original-title] {
+ cursor: help;
+ border-bottom: 1px dotted #777;
+}
+
+.initialism {
+ font-size: 90%;
+ text-transform: uppercase;
+}
+
+blockquote {
+ padding: 10px 20px;
+ margin: 0 0 20px;
+ font-size: 17.5px;
+ border-left: 5px solid #eee;
+}
+
+blockquote p:last-child,
+blockquote ul:last-child,
+blockquote ol:last-child {
+ margin-bottom: 0;
+}
+
+blockquote footer,
+blockquote small,
+blockquote .small {
+ display: block;
+ font-size: 80%;
+ line-height: 1.42857143;
+ color: #777;
+}
+
+blockquote footer:before,
+blockquote small:before,
+blockquote .small:before {
+ content: "— ";
+}
+
+.blockquote-reverse,
+blockquote.pull-right {
+ padding-right: 15px;
+ padding-left: 0;
+ text-align: right;
+ border-right: 5px solid #eee;
+ border-left: 0;
+}
+
+.blockquote-reverse footer:before,
+blockquote.pull-right footer:before,
+.blockquote-reverse small:before,
+blockquote.pull-right small:before,
+.blockquote-reverse .small:before,
+blockquote.pull-right .small:before {
+ content: "";
+}
+
+.blockquote-reverse footer:after,
+blockquote.pull-right footer:after,
+.blockquote-reverse small:after,
+blockquote.pull-right small:after,
+.blockquote-reverse .small:after,
+blockquote.pull-right .small:after {
+ content: " —";
+}
+
+address {
+ margin-bottom: 20px;
+ font-style: normal;
+ line-height: 1.42857143;
+}
+
+code,
+kbd,
+pre,
+samp {
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
+}
+
+code {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #c7254e;
+ background-color: #f9f2f4;
+ border-radius: 4px;
+}
+
+kbd {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #fff;
+ background-color: #333;
+ border-radius: 3px;
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+
+kbd kbd {
+ padding: 0;
+ font-size: 100%;
+ font-weight: bold;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+pre {
+ display: block;
+ padding: 9.5px;
+ margin: 0 0 10px;
+ font-size: 13px;
+ line-height: 1.42857143;
+ color: #333;
+ word-break: break-all;
+ word-wrap: break-word;
+ background-color: #f5f5f5;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+}
+
+pre code {
+ padding: 0;
+ font-size: inherit;
+ color: inherit;
+ white-space: pre-wrap;
+ background-color: transparent;
+ border-radius: 0;
+}
+
+.pre-scrollable {
+ max-height: 340px;
+ overflow-y: scroll;
+}
+
+.container {
+ padding-right: 15px;
+ padding-left: 15px;
+ margin-right: auto;
+ margin-left: auto;
+}
+
+@media (min-width: 768px) {
+ .container {
+ width: 750px;
+ }
+}
+@media (min-width: 992px) {
+ .container {
+ width: 970px;
+ }
+}
+@media (min-width: 1200px) {
+ .container {
+ width: 1170px;
+ }
+}
+.container-fluid {
+ padding-right: 15px;
+ padding-left: 15px;
+ margin-right: auto;
+ margin-left: auto;
+}
+
+.row {
+ margin-right: -15px;
+ margin-left: -15px;
+}
+
+table {
+ background-color: transparent;
+}
+
+caption {
+ padding-top: 8px;
+ padding-bottom: 8px;
+ color: #777;
+ text-align: left;
+}
+
+th {
+ text-align: left;
+}
+
+.table {
+ width: 100%;
+ max-width: 100%;
+ margin-bottom: 20px;
+}
+
+.table > thead > tr > th,
+.table > tbody > tr > th,
+.table > tfoot > tr > th,
+.table > thead > tr > td,
+.table > tbody > tr > td,
+.table > tfoot > tr > td {
+ padding: 8px;
+ line-height: 1.42857143;
+ vertical-align: top;
+ border-top: 1px solid #ddd;
+}
+
+.table > thead > tr > th {
+ vertical-align: bottom;
+ border-bottom: 2px solid #ddd;
+}
+
+.table > caption + thead > tr:first-child > th,
+.table > colgroup + thead > tr:first-child > th,
+.table > thead:first-child > tr:first-child > th,
+.table > caption + thead > tr:first-child > td,
+.table > colgroup + thead > tr:first-child > td,
+.table > thead:first-child > tr:first-child > td {
+ border-top: 0;
+}
+
+.table > tbody + tbody {
+ border-top: 2px solid #ddd;
+}
+
+.table .table {
+ background-color: #fff;
+}
+
+.table-condensed > thead > tr > th,
+.table-condensed > tbody > tr > th,
+.table-condensed > tfoot > tr > th,
+.table-condensed > thead > tr > td,
+.table-condensed > tbody > tr > td,
+.table-condensed > tfoot > tr > td {
+ padding: 5px;
+}
+
+.table-bordered {
+ border: 1px solid #ddd;
+}
+
+.table-bordered > thead > tr > th,
+.table-bordered > tbody > tr > th,
+.table-bordered > tfoot > tr > th,
+.table-bordered > thead > tr > td,
+.table-bordered > tbody > tr > td,
+.table-bordered > tfoot > tr > td {
+ border: 1px solid #ddd;
+}
+
+.table-bordered > thead > tr > th,
+.table-bordered > thead > tr > td {
+ border-bottom-width: 2px;
+}
+
+.table-striped > tbody > tr:nth-of-type(odd) {
+ background-color: #f9f9f9;
+}
+
+.table-hover > tbody > tr:hover {
+ background-color: #f5f5f5;
+}
+
+table col[class*=col-] {
+ position: static;
+ display: table-column;
+ float: none;
+}
+
+table td[class*=col-],
+table th[class*=col-] {
+ position: static;
+ display: table-cell;
+ float: none;
+}
+
+.table > thead > tr > td.active,
+.table > tbody > tr > td.active,
+.table > tfoot > tr > td.active,
+.table > thead > tr > th.active,
+.table > tbody > tr > th.active,
+.table > tfoot > tr > th.active,
+.table > thead > tr.active > td,
+.table > tbody > tr.active > td,
+.table > tfoot > tr.active > td,
+.table > thead > tr.active > th,
+.table > tbody > tr.active > th,
+.table > tfoot > tr.active > th {
+ background-color: #f5f5f5;
+}
+
+.table-hover > tbody > tr > td.active:hover,
+.table-hover > tbody > tr > th.active:hover,
+.table-hover > tbody > tr.active:hover > td,
+.table-hover > tbody > tr:hover > .active,
+.table-hover > tbody > tr.active:hover > th {
+ background-color: #e8e8e8;
+}
+
+.table > thead > tr > td.success,
+.table > tbody > tr > td.success,
+.table > tfoot > tr > td.success,
+.table > thead > tr > th.success,
+.table > tbody > tr > th.success,
+.table > tfoot > tr > th.success,
+.table > thead > tr.success > td,
+.table > tbody > tr.success > td,
+.table > tfoot > tr.success > td,
+.table > thead > tr.success > th,
+.table > tbody > tr.success > th,
+.table > tfoot > tr.success > th {
+ background-color: #dff0d8;
+}
+
+.table-hover > tbody > tr > td.success:hover,
+.table-hover > tbody > tr > th.success:hover,
+.table-hover > tbody > tr.success:hover > td,
+.table-hover > tbody > tr:hover > .success,
+.table-hover > tbody > tr.success:hover > th {
+ background-color: #d0e9c6;
+}
+
+.table > thead > tr > td.info,
+.table > tbody > tr > td.info,
+.table > tfoot > tr > td.info,
+.table > thead > tr > th.info,
+.table > tbody > tr > th.info,
+.table > tfoot > tr > th.info,
+.table > thead > tr.info > td,
+.table > tbody > tr.info > td,
+.table > tfoot > tr.info > td,
+.table > thead > tr.info > th,
+.table > tbody > tr.info > th,
+.table > tfoot > tr.info > th {
+ background-color: #d9edf7;
+}
+
+.table-hover > tbody > tr > td.info:hover,
+.table-hover > tbody > tr > th.info:hover,
+.table-hover > tbody > tr.info:hover > td,
+.table-hover > tbody > tr:hover > .info,
+.table-hover > tbody > tr.info:hover > th {
+ background-color: #c4e3f3;
+}
+
+.table > thead > tr > td.warning,
+.table > tbody > tr > td.warning,
+.table > tfoot > tr > td.warning,
+.table > thead > tr > th.warning,
+.table > tbody > tr > th.warning,
+.table > tfoot > tr > th.warning,
+.table > thead > tr.warning > td,
+.table > tbody > tr.warning > td,
+.table > tfoot > tr.warning > td,
+.table > thead > tr.warning > th,
+.table > tbody > tr.warning > th,
+.table > tfoot > tr.warning > th {
+ background-color: #fcf8e3;
+}
+
+.table-hover > tbody > tr > td.warning:hover,
+.table-hover > tbody > tr > th.warning:hover,
+.table-hover > tbody > tr.warning:hover > td,
+.table-hover > tbody > tr:hover > .warning,
+.table-hover > tbody > tr.warning:hover > th {
+ background-color: #faf2cc;
+}
+
+.table > thead > tr > td.danger,
+.table > tbody > tr > td.danger,
+.table > tfoot > tr > td.danger,
+.table > thead > tr > th.danger,
+.table > tbody > tr > th.danger,
+.table > tfoot > tr > th.danger,
+.table > thead > tr.danger > td,
+.table > tbody > tr.danger > td,
+.table > tfoot > tr.danger > td,
+.table > thead > tr.danger > th,
+.table > tbody > tr.danger > th,
+.table > tfoot > tr.danger > th {
+ background-color: #f2dede;
+}
+
+.table-hover > tbody > tr > td.danger:hover,
+.table-hover > tbody > tr > th.danger:hover,
+.table-hover > tbody > tr.danger:hover > td,
+.table-hover > tbody > tr:hover > .danger,
+.table-hover > tbody > tr.danger:hover > th {
+ background-color: #ebcccc;
+}
+
+.table-responsive {
+ min-height: 0.01%;
+ overflow-x: auto;
+}
+
+@media screen and (max-width: 767px) {
+ .table-responsive {
+ width: 100%;
+ margin-bottom: 15px;
+ overflow-y: hidden;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ border: 1px solid #ddd;
+ }
+
+ .table-responsive > .table {
+ margin-bottom: 0;
+ }
+
+ .table-responsive > .table > thead > tr > th,
+.table-responsive > .table > tbody > tr > th,
+.table-responsive > .table > tfoot > tr > th,
+.table-responsive > .table > thead > tr > td,
+.table-responsive > .table > tbody > tr > td,
+.table-responsive > .table > tfoot > tr > td {
+ white-space: nowrap;
+ }
+
+ .table-responsive > .table-bordered {
+ border: 0;
+ }
+
+ .table-responsive > .table-bordered > thead > tr > th:first-child,
+.table-responsive > .table-bordered > tbody > tr > th:first-child,
+.table-responsive > .table-bordered > tfoot > tr > th:first-child,
+.table-responsive > .table-bordered > thead > tr > td:first-child,
+.table-responsive > .table-bordered > tbody > tr > td:first-child,
+.table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-left: 0;
+ }
+
+ .table-responsive > .table-bordered > thead > tr > th:last-child,
+.table-responsive > .table-bordered > tbody > tr > th:last-child,
+.table-responsive > .table-bordered > tfoot > tr > th:last-child,
+.table-responsive > .table-bordered > thead > tr > td:last-child,
+.table-responsive > .table-bordered > tbody > tr > td:last-child,
+.table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: 0;
+ }
+
+ .table-responsive > .table-bordered > tbody > tr:last-child > th,
+.table-responsive > .table-bordered > tfoot > tr:last-child > th,
+.table-responsive > .table-bordered > tbody > tr:last-child > td,
+.table-responsive > .table-bordered > tfoot > tr:last-child > td {
+ border-bottom: 0;
+ }
+}
+fieldset {
+ min-width: 0;
+ padding: 0;
+ margin: 0;
+ border: 0;
+}
+
+legend {
+ display: block;
+ width: 100%;
+ padding: 0;
+ margin-bottom: 20px;
+ font-size: 21px;
+ line-height: inherit;
+ color: #333;
+ border: 0;
+ border-bottom: 1px solid #e5e5e5;
+}
+
+label {
+ display: inline-block;
+ max-width: 100%;
+ margin-bottom: 5px;
+ font-weight: bold;
+}
+
+input[type=search] {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+input[type=radio],
+input[type=checkbox] {
+ margin: 4px 0 0;
+ margin-top: 1px \9 ;
+ line-height: normal;
+}
+
+input[type=file] {
+ display: block;
+}
+
+input[type=range] {
+ display: block;
+ width: 100%;
+}
+
+select[multiple],
+select[size] {
+ height: auto;
+}
+
+input[type=file]:focus,
+input[type=radio]:focus,
+input[type=checkbox]:focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+
+output {
+ display: block;
+ padding-top: 7px;
+ font-size: 14px;
+ line-height: 1.42857143;
+ color: #555;
+}
+
+.radio,
+.checkbox {
+ position: relative;
+ display: block;
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+
+.radio label,
+.checkbox label {
+ min-height: 20px;
+ padding-left: 20px;
+ margin-bottom: 0;
+ font-weight: normal;
+ cursor: pointer;
+}
+
+.radio input[type=radio],
+.radio-inline input[type=radio],
+.checkbox input[type=checkbox],
+.checkbox-inline input[type=checkbox] {
+ position: absolute;
+ margin-top: 4px \9 ;
+ margin-left: -20px;
+}
+
+.radio + .radio,
+.checkbox + .checkbox {
+ margin-top: -5px;
+}
+
+.radio-inline,
+.checkbox-inline {
+ position: relative;
+ display: inline-block;
+ padding-left: 20px;
+ margin-bottom: 0;
+ font-weight: normal;
+ vertical-align: middle;
+ cursor: pointer;
+}
+
+.radio-inline + .radio-inline,
+.checkbox-inline + .checkbox-inline {
+ margin-top: 0;
+ margin-left: 10px;
+}
+
+input[type=radio][disabled],
+input[type=checkbox][disabled],
+input[type=radio].disabled,
+input[type=checkbox].disabled,
+fieldset[disabled] input[type=radio],
+fieldset[disabled] input[type=checkbox] {
+ cursor: not-allowed;
+}
+
+.radio-inline.disabled,
+.checkbox-inline.disabled,
+fieldset[disabled] .radio-inline,
+fieldset[disabled] .checkbox-inline {
+ cursor: not-allowed;
+}
+
+.radio.disabled label,
+.checkbox.disabled label,
+fieldset[disabled] .radio label,
+fieldset[disabled] .checkbox label {
+ cursor: not-allowed;
+}
+
+.form-control-static, .form-group div[class*=textBox] > .control-label,
+.form-group div[class*=textArea] > .control-label,
+.form-group div[class*=datePicker] > .control-label {
+ min-height: 34px;
+ padding-top: 7px;
+ padding-bottom: 7px;
+ margin-bottom: 0;
+}
+
+.form-control-static.input-lg, .form-group div[class*=textBox] > .input-lg.control-label,
+.form-group div[class*=textArea] > .input-lg.control-label,
+.form-group div[class*=datePicker] > .input-lg.control-label,
+.form-control-static.input-sm,
+.form-group div[class*=textBox] > .input-sm.control-label,
+.form-group div[class*=textArea] > .input-sm.control-label,
+.form-group div[class*=datePicker] > .input-sm.control-label {
+ padding-right: 0;
+ padding-left: 0;
+}
+
+.input-sm {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+
+select.input-sm {
+ height: 30px;
+ line-height: 30px;
+}
+
+textarea.input-sm,
+select[multiple].input-sm {
+ height: auto;
+}
+
+.form-group-sm .form-control {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+
+select.form-group-sm .form-control {
+ height: 30px;
+ line-height: 30px;
+}
+
+textarea.form-group-sm .form-control,
+select[multiple].form-group-sm .form-control {
+ height: auto;
+}
+
+.form-group-sm .form-control-static, .form-group-sm .form-group div[class*=textBox] > .control-label, .form-group .form-group-sm div[class*=textBox] > .control-label,
+.form-group-sm .form-group div[class*=textArea] > .control-label,
+.form-group .form-group-sm div[class*=textArea] > .control-label,
+.form-group-sm .form-group div[class*=datePicker] > .control-label,
+.form-group .form-group-sm div[class*=datePicker] > .control-label {
+ height: 30px;
+ min-height: 32px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+}
+
+.input-lg {
+ height: 46px;
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.3333333;
+ border-radius: 6px;
+}
+
+select.input-lg {
+ height: 46px;
+ line-height: 46px;
+}
+
+textarea.input-lg,
+select[multiple].input-lg {
+ height: auto;
+}
+
+.form-group-lg .form-control {
+ height: 46px;
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.3333333;
+ border-radius: 6px;
+}
+
+select.form-group-lg .form-control {
+ height: 46px;
+ line-height: 46px;
+}
+
+textarea.form-group-lg .form-control,
+select[multiple].form-group-lg .form-control {
+ height: auto;
+}
+
+.form-group-lg .form-control-static, .form-group-lg .form-group div[class*=textBox] > .control-label, .form-group .form-group-lg div[class*=textBox] > .control-label,
+.form-group-lg .form-group div[class*=textArea] > .control-label,
+.form-group .form-group-lg div[class*=textArea] > .control-label,
+.form-group-lg .form-group div[class*=datePicker] > .control-label,
+.form-group .form-group-lg div[class*=datePicker] > .control-label {
+ height: 46px;
+ min-height: 38px;
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.3333333;
+}
+
+.has-feedback {
+ position: relative;
+}
+
+.has-feedback .form-control {
+ padding-right: 42.5px;
+}
+
+.form-control-feedback {
+ position: absolute;
+ top: 0;
+ right: 0;
+ z-index: 2;
+ display: block;
+ width: 34px;
+ height: 34px;
+ line-height: 34px;
+ text-align: center;
+ pointer-events: none;
+}
+
+.input-lg + .form-control-feedback {
+ width: 46px;
+ height: 46px;
+ line-height: 46px;
+}
+
+.input-sm + .form-control-feedback {
+ width: 30px;
+ height: 30px;
+ line-height: 30px;
+}
+
+.has-success .help-block,
+.has-success .control-label,
+.has-success .radio,
+.has-success .checkbox,
+.has-success .radio-inline,
+.has-success .checkbox-inline,
+.has-success.radio label,
+.has-success.checkbox label,
+.has-success.radio-inline label,
+.has-success.checkbox-inline label {
+ color: #3c763d;
+}
+
+.has-success .form-control {
+ border-color: #3c763d;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+
+.has-success .form-control:focus {
+ border-color: #2b542c;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
+}
+
+.has-success .input-group-addon {
+ color: #3c763d;
+ background-color: #dff0d8;
+ border-color: #3c763d;
+}
+
+.has-success .form-control-feedback {
+ color: #3c763d;
+}
+
+.has-warning .help-block,
+.has-warning .control-label,
+.has-warning .radio,
+.has-warning .checkbox,
+.has-warning .radio-inline,
+.has-warning .checkbox-inline,
+.has-warning.radio label,
+.has-warning.checkbox label,
+.has-warning.radio-inline label,
+.has-warning.checkbox-inline label {
+ color: #8a6d3b;
+}
+
+.has-warning .form-control {
+ border-color: #8a6d3b;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+
+.has-warning .form-control:focus {
+ border-color: #66512c;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
+}
+
+.has-warning .input-group-addon {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+ border-color: #8a6d3b;
+}
+
+.has-warning .form-control-feedback {
+ color: #8a6d3b;
+}
+
+.has-error .help-block,
+.has-error .control-label,
+.has-error .radio,
+.has-error .checkbox,
+.has-error .radio-inline,
+.has-error .checkbox-inline,
+.has-error.radio label,
+.has-error.checkbox label,
+.has-error.radio-inline label,
+.has-error.checkbox-inline label {
+ color: #a94442;
+}
+
+.has-error .form-control {
+ border-color: #a94442;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+
+.has-error .form-control:focus {
+ border-color: #843534;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
+}
+
+.has-error .input-group-addon {
+ color: #a94442;
+ background-color: #f2dede;
+ border-color: #a94442;
+}
+
+.has-error .form-control-feedback {
+ color: #a94442;
+}
+
+.has-feedback label ~ .form-control-feedback {
+ top: 25px;
+}
+
+.has-feedback label.sr-only ~ .form-control-feedback {
+ top: 0;
+}
+
+.help-block {
+ display: block;
+ margin-top: 5px;
+ margin-bottom: 10px;
+ color: #737373;
+}
+
+@media (min-width: 768px) {
+ .form-inline .form-group {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+
+ .form-inline .form-control {
+ display: inline-block;
+ width: auto;
+ vertical-align: middle;
+ }
+
+ .form-inline .form-control-static, .form-inline .form-group div[class*=textBox] > .control-label, .form-group .form-inline div[class*=textBox] > .control-label,
+.form-inline .form-group div[class*=textArea] > .control-label,
+.form-group .form-inline div[class*=textArea] > .control-label,
+.form-inline .form-group div[class*=datePicker] > .control-label,
+.form-group .form-inline div[class*=datePicker] > .control-label {
+ display: inline-block;
+ }
+
+ .form-inline .input-group {
+ display: inline-table;
+ vertical-align: middle;
+ }
+
+ .form-inline .input-group .input-group-addon,
+.form-inline .input-group .input-group-btn,
+.form-inline .input-group .form-control {
+ width: auto;
+ }
+
+ .form-inline .input-group > .form-control {
+ width: 100%;
+ }
+
+ .form-inline .control-label {
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+
+ .form-inline .radio,
+.form-inline .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+
+ .form-inline .radio label,
+.form-inline .checkbox label {
+ padding-left: 0;
+ }
+
+ .form-inline .radio input[type=radio],
+.form-inline .checkbox input[type=checkbox] {
+ position: relative;
+ margin-left: 0;
+ }
+
+ .form-inline .has-feedback .form-control-feedback {
+ top: 0;
+ }
+}
+.form-horizontal .radio,
+.form-horizontal .checkbox,
+.form-horizontal .radio-inline,
+.form-horizontal .checkbox-inline {
+ padding-top: 7px;
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+.form-horizontal .radio,
+.form-horizontal .checkbox {
+ min-height: 27px;
+}
+
+.form-horizontal .form-group {
+ margin-right: -15px;
+ margin-left: -15px;
+}
+
+@media (min-width: 768px) {
+ .form-horizontal .control-label {
+ padding-top: 7px;
+ margin-bottom: 0;
+ text-align: right;
+ }
+}
+.form-horizontal .has-feedback .form-control-feedback {
+ right: 15px;
+}
+
+@media (min-width: 768px) {
+ .form-horizontal .form-group-lg .control-label {
+ padding-top: 14.333333px;
+ }
+}
+@media (min-width: 768px) {
+ .form-horizontal .form-group-sm .control-label {
+ padding-top: 6px;
+ }
+}
+.btn {
+ display: inline-block;
+ padding: 6px 12px;
+ margin-bottom: 0;
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 1.42857143;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: middle;
+ -ms-touch-action: manipulation;
+ touch-action: manipulation;
+ cursor: pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ background-image: none;
+ border: 1px solid transparent;
+ border-radius: 4px;
+}
+
+.btn:focus,
+.btn:active:focus,
+.btn.active:focus,
+.btn.focus,
+.btn:active.focus,
+.btn.active.focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+
+.btn:hover,
+.btn:focus,
+.btn.focus {
+ color: #333;
+ text-decoration: none;
+}
+
+.btn:active,
+.btn.active {
+ background-image: none;
+ outline: 0;
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 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;
+ filter: alpha(opacity=65);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ opacity: 0.65;
+}
+
+.btn-default {
+ color: #333;
+ background-color: #fff;
+ border-color: #ccc;
+}
+
+.btn-default:hover,
+.btn-default:focus,
+.btn-default.focus,
+.btn-default:active,
+.btn-default.active,
+.open > .dropdown-toggle.btn-default {
+ color: #333;
+ background-color: #e6e6e6;
+ border-color: #adadad;
+}
+
+.btn-default:active,
+.btn-default.active,
+.open > .dropdown-toggle.btn-default {
+ background-image: none;
+}
+
+.btn-default.disabled,
+.btn-default[disabled],
+fieldset[disabled] .btn-default,
+.btn-default.disabled:hover,
+.btn-default[disabled]:hover,
+fieldset[disabled] .btn-default:hover,
+.btn-default.disabled:focus,
+.btn-default[disabled]:focus,
+fieldset[disabled] .btn-default:focus,
+.btn-default.disabled.focus,
+.btn-default[disabled].focus,
+fieldset[disabled] .btn-default.focus,
+.btn-default.disabled:active,
+.btn-default[disabled]:active,
+fieldset[disabled] .btn-default:active,
+.btn-default.disabled.active,
+.btn-default[disabled].active,
+fieldset[disabled] .btn-default.active {
+ background-color: #fff;
+ border-color: #ccc;
+}
+
+.btn-default .badge {
+ color: #fff;
+ background-color: #333;
+}
+
+.btn-primary, .datagrid-fullsearch.mx-grid .mx-grid-search-button {
+ color: #fff;
+ background-color: #337ab7;
+ border-color: #2e6da4;
+}
+
+.btn-primary:hover, .datagrid-fullsearch.mx-grid .mx-grid-search-button:hover,
+.btn-primary:focus,
+.datagrid-fullsearch.mx-grid .mx-grid-search-button:focus,
+.btn-primary.focus,
+.datagrid-fullsearch.mx-grid .focus.mx-grid-search-button,
+.btn-primary:active,
+.datagrid-fullsearch.mx-grid .mx-grid-search-button:active,
+.btn-primary.active,
+.datagrid-fullsearch.mx-grid .active.mx-grid-search-button,
+.open > .dropdown-toggle.btn-primary,
+.datagrid-fullsearch.mx-grid .open > .dropdown-toggle.mx-grid-search-button {
+ color: #fff;
+ background-color: #286090;
+ border-color: #204d74;
+}
+
+.btn-primary:active, .datagrid-fullsearch.mx-grid .mx-grid-search-button:active,
+.btn-primary.active,
+.datagrid-fullsearch.mx-grid .active.mx-grid-search-button,
+.open > .dropdown-toggle.btn-primary,
+.datagrid-fullsearch.mx-grid .open > .dropdown-toggle.mx-grid-search-button {
+ background-image: none;
+}
+
+.btn-primary.disabled, .datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button,
+.btn-primary[disabled],
+.datagrid-fullsearch.mx-grid [disabled].mx-grid-search-button,
+fieldset[disabled] .btn-primary,
+fieldset[disabled] .datagrid-fullsearch.mx-grid .mx-grid-search-button,
+.datagrid-fullsearch.mx-grid fieldset[disabled] .mx-grid-search-button,
+.btn-primary.disabled:hover,
+.btn-primary[disabled]:hover,
+fieldset[disabled] .btn-primary:hover,
+.btn-primary.disabled:focus,
+.btn-primary[disabled]:focus,
+fieldset[disabled] .btn-primary:focus,
+.btn-primary.disabled.focus,
+.btn-primary[disabled].focus,
+fieldset[disabled] .btn-primary.focus,
+.btn-primary.disabled:active,
+.btn-primary[disabled]:active,
+fieldset[disabled] .btn-primary:active,
+.btn-primary.disabled.active,
+.btn-primary[disabled].active,
+fieldset[disabled] .btn-primary.active {
+ background-color: #337ab7;
+ border-color: #2e6da4;
+}
+
+.btn-primary .badge, .datagrid-fullsearch.mx-grid .mx-grid-search-button .badge {
+ color: #337ab7;
+ background-color: #fff;
+}
+
+.btn-success {
+ color: #fff;
+ background-color: #5cb85c;
+ border-color: #4cae4c;
+}
+
+.btn-success:hover,
+.btn-success:focus,
+.btn-success.focus,
+.btn-success:active,
+.btn-success.active,
+.open > .dropdown-toggle.btn-success {
+ color: #fff;
+ background-color: #449d44;
+ border-color: #398439;
+}
+
+.btn-success:active,
+.btn-success.active,
+.open > .dropdown-toggle.btn-success {
+ background-image: none;
+}
+
+.btn-success.disabled,
+.btn-success[disabled],
+fieldset[disabled] .btn-success,
+.btn-success.disabled:hover,
+.btn-success[disabled]:hover,
+fieldset[disabled] .btn-success:hover,
+.btn-success.disabled:focus,
+.btn-success[disabled]:focus,
+fieldset[disabled] .btn-success:focus,
+.btn-success.disabled.focus,
+.btn-success[disabled].focus,
+fieldset[disabled] .btn-success.focus,
+.btn-success.disabled:active,
+.btn-success[disabled]:active,
+fieldset[disabled] .btn-success:active,
+.btn-success.disabled.active,
+.btn-success[disabled].active,
+fieldset[disabled] .btn-success.active {
+ background-color: #5cb85c;
+ border-color: #4cae4c;
+}
+
+.btn-success .badge {
+ color: #5cb85c;
+ background-color: #fff;
+}
+
+.btn-info {
+ color: #fff;
+ background-color: #5bc0de;
+ border-color: #46b8da;
+}
+
+.btn-info:hover,
+.btn-info:focus,
+.btn-info.focus,
+.btn-info:active,
+.btn-info.active,
+.open > .dropdown-toggle.btn-info {
+ color: #fff;
+ background-color: #31b0d5;
+ border-color: #269abc;
+}
+
+.btn-info:active,
+.btn-info.active,
+.open > .dropdown-toggle.btn-info {
+ background-image: none;
+}
+
+.btn-info.disabled,
+.btn-info[disabled],
+fieldset[disabled] .btn-info,
+.btn-info.disabled:hover,
+.btn-info[disabled]:hover,
+fieldset[disabled] .btn-info:hover,
+.btn-info.disabled:focus,
+.btn-info[disabled]:focus,
+fieldset[disabled] .btn-info:focus,
+.btn-info.disabled.focus,
+.btn-info[disabled].focus,
+fieldset[disabled] .btn-info.focus,
+.btn-info.disabled:active,
+.btn-info[disabled]:active,
+fieldset[disabled] .btn-info:active,
+.btn-info.disabled.active,
+.btn-info[disabled].active,
+fieldset[disabled] .btn-info.active {
+ background-color: #5bc0de;
+ border-color: #46b8da;
+}
+
+.btn-info .badge {
+ color: #5bc0de;
+ background-color: #fff;
+}
+
+.btn-warning {
+ color: #fff;
+ background-color: #f0ad4e;
+ border-color: #eea236;
+}
+
+.btn-warning:hover,
+.btn-warning:focus,
+.btn-warning.focus,
+.btn-warning:active,
+.btn-warning.active,
+.open > .dropdown-toggle.btn-warning {
+ color: #fff;
+ background-color: #ec971f;
+ border-color: #d58512;
+}
+
+.btn-warning:active,
+.btn-warning.active,
+.open > .dropdown-toggle.btn-warning {
+ background-image: none;
+}
+
+.btn-warning.disabled,
+.btn-warning[disabled],
+fieldset[disabled] .btn-warning,
+.btn-warning.disabled:hover,
+.btn-warning[disabled]:hover,
+fieldset[disabled] .btn-warning:hover,
+.btn-warning.disabled:focus,
+.btn-warning[disabled]:focus,
+fieldset[disabled] .btn-warning:focus,
+.btn-warning.disabled.focus,
+.btn-warning[disabled].focus,
+fieldset[disabled] .btn-warning.focus,
+.btn-warning.disabled:active,
+.btn-warning[disabled]:active,
+fieldset[disabled] .btn-warning:active,
+.btn-warning.disabled.active,
+.btn-warning[disabled].active,
+fieldset[disabled] .btn-warning.active {
+ background-color: #f0ad4e;
+ border-color: #eea236;
+}
+
+.btn-warning .badge {
+ color: #f0ad4e;
+ background-color: #fff;
+}
+
+.btn-danger {
+ color: #fff;
+ background-color: #d9534f;
+ border-color: #d43f3a;
+}
+
+.btn-danger:hover,
+.btn-danger:focus,
+.btn-danger.focus,
+.btn-danger:active,
+.btn-danger.active,
+.open > .dropdown-toggle.btn-danger {
+ color: #fff;
+ background-color: #c9302c;
+ border-color: #ac2925;
+}
+
+.btn-danger:active,
+.btn-danger.active,
+.open > .dropdown-toggle.btn-danger {
+ background-image: none;
+}
+
+.btn-danger.disabled,
+.btn-danger[disabled],
+fieldset[disabled] .btn-danger,
+.btn-danger.disabled:hover,
+.btn-danger[disabled]:hover,
+fieldset[disabled] .btn-danger:hover,
+.btn-danger.disabled:focus,
+.btn-danger[disabled]:focus,
+fieldset[disabled] .btn-danger:focus,
+.btn-danger.disabled.focus,
+.btn-danger[disabled].focus,
+fieldset[disabled] .btn-danger.focus,
+.btn-danger.disabled:active,
+.btn-danger[disabled]:active,
+fieldset[disabled] .btn-danger:active,
+.btn-danger.disabled.active,
+.btn-danger[disabled].active,
+fieldset[disabled] .btn-danger.active {
+ background-color: #d9534f;
+ border-color: #d43f3a;
+}
+
+.btn-danger .badge {
+ color: #d9534f;
+ background-color: #fff;
+}
+
+.btn-link {
+ font-weight: normal;
+ color: #337ab7;
+ border-radius: 0;
+}
+
+.btn-link,
+.btn-link:active,
+.btn-link.active,
+.btn-link[disabled],
+fieldset[disabled] .btn-link {
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.btn-link,
+.btn-link:hover,
+.btn-link:focus,
+.btn-link:active {
+ border-color: transparent;
+}
+
+.btn-link:hover,
+.btn-link:focus {
+ color: #23527c;
+ text-decoration: underline;
+ background-color: transparent;
+}
+
+.btn-link[disabled]:hover,
+fieldset[disabled] .btn-link:hover,
+.btn-link[disabled]:focus,
+fieldset[disabled] .btn-link:focus {
+ color: #777;
+ text-decoration: none;
+}
+
+.btn-lg,
+.btn-group-lg > .btn {
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.3333333;
+ border-radius: 6px;
+}
+
+.btn-sm,
+.btn-group-sm > .btn {
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+
+.btn-xs,
+.btn-group-xs > .btn {
+ padding: 1px 5px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+
+.fade {
+ opacity: 0;
+ -webkit-transition: opacity 0.15s linear;
+ -o-transition: opacity 0.15s linear;
+ transition: opacity 0.15s linear;
+}
+
+.fade.in {
+ opacity: 1;
+}
+
+.collapse {
+ display: none;
+}
+
+.collapse.in {
+ display: block;
+}
+
+tr.collapse.in {
+ display: table-row;
+}
+
+tbody.collapse.in {
+ display: table-row-group;
+}
+
+.collapsing {
+ position: relative;
+ height: 0;
+ overflow: hidden;
+ -webkit-transition-timing-function: ease;
+ -o-transition-timing-function: ease;
+ transition-timing-function: ease;
+ -webkit-transition-duration: 0.35s;
+ -o-transition-duration: 0.35s;
+ transition-duration: 0.35s;
+ -webkit-transition-property: height, visibility;
+ -o-transition-property: height, visibility;
+ transition-property: height, visibility;
+}
+
+.caret {
+ display: inline-block;
+ width: 0;
+ height: 0;
+ margin-left: 2px;
+ vertical-align: middle;
+ border-top: 4px dashed;
+ border-right: 4px solid transparent;
+ border-left: 4px solid transparent;
+}
+
+.dropup,
+.dropdown {
+ position: relative;
+}
+
+.dropdown-toggle:focus {
+ outline: 0;
+}
+
+.dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: 1000;
+ display: none;
+ float: left;
+ min-width: 160px;
+ padding: 5px 0;
+ margin: 2px 0 0;
+ font-size: 14px;
+ text-align: left;
+ list-style: none;
+ background-color: #fff;
+ -webkit-background-clip: padding-box;
+ background-clip: padding-box;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 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);
+}
+
+.dropdown-menu.pull-right {
+ right: 0;
+ left: auto;
+}
+
+.dropdown-menu .divider {
+ height: 1px;
+ margin: 9px 0;
+ overflow: hidden;
+ background-color: #e5e5e5;
+}
+
+.dropdown-menu > li > a {
+ display: block;
+ padding: 3px 20px;
+ clear: both;
+ font-weight: normal;
+ line-height: 1.42857143;
+ color: #333;
+ white-space: nowrap;
+}
+
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus {
+ color: #262626;
+ text-decoration: none;
+ background-color: #f5f5f5;
+}
+
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+ color: #fff;
+ text-decoration: none;
+ background-color: #337ab7;
+ outline: 0;
+}
+
+.dropdown-menu > .disabled > a,
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+ color: #777;
+}
+
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+ text-decoration: none;
+ cursor: not-allowed;
+ background-color: transparent;
+ background-image: none;
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+}
+
+.open > .dropdown-menu {
+ display: block;
+}
+
+.open > a {
+ outline: 0;
+}
+
+.dropdown-menu-right {
+ right: 0;
+ left: auto;
+}
+
+.dropdown-menu-left {
+ right: auto;
+ left: 0;
+}
+
+.dropdown-header {
+ display: block;
+ padding: 3px 20px;
+ font-size: 12px;
+ line-height: 1.42857143;
+ color: #777;
+ white-space: nowrap;
+}
+
+.dropdown-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 990;
+}
+
+.pull-right > .dropdown-menu {
+ right: 0;
+ left: auto;
+}
+
+.dropup .caret,
+.navbar-fixed-bottom .dropdown .caret {
+ content: "";
+ border-top: 0;
+ border-bottom: 4px solid;
+}
+
+.dropup .dropdown-menu,
+.navbar-fixed-bottom .dropdown .dropdown-menu {
+ top: auto;
+ bottom: 100%;
+ margin-bottom: 2px;
+}
+
+@media (min-width: 768px) {
+ .navbar-right .dropdown-menu {
+ right: 0;
+ left: auto;
+ }
+
+ .navbar-right .dropdown-menu-left {
+ right: auto;
+ left: 0;
+ }
+}
+.btn-group,
+.btn-group-vertical {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.btn-group > .btn,
+.btn-group-vertical > .btn {
+ position: relative;
+ float: left;
+}
+
+.btn-group > .btn:hover,
+.btn-group-vertical > .btn:hover,
+.btn-group > .btn:focus,
+.btn-group-vertical > .btn:focus,
+.btn-group > .btn:active,
+.btn-group-vertical > .btn:active,
+.btn-group > .btn.active,
+.btn-group-vertical > .btn.active {
+ z-index: 2;
+}
+
+.btn-group .btn + .btn,
+.btn-group .btn + .btn-group,
+.btn-group .btn-group + .btn,
+.btn-group .btn-group + .btn-group {
+ margin-left: -1px;
+}
+
+.btn-toolbar {
+ margin-left: -5px;
+}
+
+.btn-toolbar .btn-group,
+.btn-toolbar .input-group {
+ float: left;
+}
+
+.btn-toolbar > .btn,
+.btn-toolbar > .btn-group,
+.btn-toolbar > .input-group {
+ margin-left: 5px;
+}
+
+.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
+ border-radius: 0;
+}
+
+.btn-group > .btn:first-child {
+ margin-left: 0;
+}
+
+.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.btn-group > .btn:last-child:not(:first-child),
+.btn-group > .dropdown-toggle:not(:first-child) {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.btn-group > .btn-group {
+ float: left;
+}
+
+.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0;
+}
+
+.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.btn-group .dropdown-toggle:active,
+.btn-group.open .dropdown-toggle {
+ outline: 0;
+}
+
+.btn-group > .btn + .dropdown-toggle {
+ padding-right: 8px;
+ padding-left: 8px;
+}
+
+.btn-group > .btn-lg + .dropdown-toggle {
+ padding-right: 12px;
+ padding-left: 12px;
+}
+
+.btn-group.open .dropdown-toggle {
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+
+.btn-group.open .dropdown-toggle.btn-link {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.btn .caret {
+ margin-left: 0;
+}
+
+.btn-lg .caret {
+ border-width: 5px 5px 0;
+ border-bottom-width: 0;
+}
+
+.dropup .btn-lg .caret {
+ border-width: 0 5px 5px;
+}
+
+.btn-group-vertical > .btn,
+.btn-group-vertical > .btn-group,
+.btn-group-vertical > .btn-group > .btn {
+ display: block;
+ float: none;
+ width: 100%;
+ max-width: 100%;
+}
+
+.btn-group-vertical > .btn-group > .btn {
+ float: none;
+}
+
+.btn-group-vertical > .btn + .btn,
+.btn-group-vertical > .btn + .btn-group,
+.btn-group-vertical > .btn-group + .btn,
+.btn-group-vertical > .btn-group + .btn-group {
+ margin-top: -1px;
+ margin-left: 0;
+}
+
+.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
+ border-radius: 0;
+}
+
+.btn-group-vertical > .btn:first-child:not(:last-child) {
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.btn-group-vertical > .btn:last-child:not(:first-child) {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+ border-bottom-left-radius: 4px;
+}
+
+.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0;
+}
+
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+}
+
+.btn-group-justified {
+ display: table;
+ width: 100%;
+ table-layout: fixed;
+ border-collapse: separate;
+}
+
+.btn-group-justified > .btn,
+.btn-group-justified > .btn-group {
+ display: table-cell;
+ float: none;
+ width: 1%;
+}
+
+.btn-group-justified > .btn-group .btn {
+ width: 100%;
+}
+
+.btn-group-justified > .btn-group .dropdown-menu {
+ left: auto;
+}
+
+[data-toggle=buttons] > .btn input[type=radio],
+[data-toggle=buttons] > .btn-group > .btn input[type=radio],
+[data-toggle=buttons] > .btn input[type=checkbox],
+[data-toggle=buttons] > .btn-group > .btn input[type=checkbox] {
+ position: absolute;
+ clip: rect(0, 0, 0, 0);
+ pointer-events: none;
+}
+
+.input-group {
+ position: relative;
+ display: table;
+ border-collapse: separate;
+}
+
+.input-group[class*=col-] {
+ float: none;
+ padding-right: 0;
+ padding-left: 0;
+}
+
+.input-group .form-control {
+ position: relative;
+ z-index: 2;
+ float: left;
+ width: 100%;
+ margin-bottom: 0;
+}
+
+.input-group-lg > .form-control,
+.input-group-lg > .input-group-addon,
+.input-group-lg > .input-group-btn > .btn {
+ height: 46px;
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.3333333;
+ border-radius: 6px;
+}
+
+select.input-group-lg > .form-control,
+select.input-group-lg > .input-group-addon,
+select.input-group-lg > .input-group-btn > .btn {
+ height: 46px;
+ line-height: 46px;
+}
+
+textarea.input-group-lg > .form-control,
+textarea.input-group-lg > .input-group-addon,
+textarea.input-group-lg > .input-group-btn > .btn,
+select[multiple].input-group-lg > .form-control,
+select[multiple].input-group-lg > .input-group-addon,
+select[multiple].input-group-lg > .input-group-btn > .btn {
+ height: auto;
+}
+
+.input-group-sm > .form-control,
+.input-group-sm > .input-group-addon,
+.input-group-sm > .input-group-btn > .btn {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+
+select.input-group-sm > .form-control,
+select.input-group-sm > .input-group-addon,
+select.input-group-sm > .input-group-btn > .btn {
+ height: 30px;
+ line-height: 30px;
+}
+
+textarea.input-group-sm > .form-control,
+textarea.input-group-sm > .input-group-addon,
+textarea.input-group-sm > .input-group-btn > .btn,
+select[multiple].input-group-sm > .form-control,
+select[multiple].input-group-sm > .input-group-addon,
+select[multiple].input-group-sm > .input-group-btn > .btn {
+ height: auto;
+}
+
+.input-group-addon,
+.input-group-btn,
+.input-group .form-control {
+ display: table-cell;
+}
+
+.input-group-addon:not(:first-child):not(:last-child),
+.input-group-btn:not(:first-child):not(:last-child),
+.input-group .form-control:not(:first-child):not(:last-child) {
+ border-radius: 0;
+}
+
+.input-group-addon,
+.input-group-btn {
+ width: 1%;
+ white-space: nowrap;
+ vertical-align: middle;
+}
+
+.input-group-addon {
+ padding: 6px 12px;
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 1;
+ color: #555;
+ text-align: center;
+ background-color: #eee;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+}
+
+.input-group-addon.input-sm {
+ padding: 5px 10px;
+ font-size: 12px;
+ border-radius: 3px;
+}
+
+.input-group-addon.input-lg {
+ padding: 10px 16px;
+ font-size: 18px;
+ border-radius: 6px;
+}
+
+.input-group-addon input[type=radio],
+.input-group-addon input[type=checkbox] {
+ margin-top: 0;
+}
+
+.input-group .form-control:first-child,
+.input-group-addon:first-child,
+.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group > .btn,
+.input-group-btn:first-child > .dropdown-toggle,
+.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
+.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.input-group-addon:first-child {
+ border-right: 0;
+}
+
+.input-group .form-control:last-child,
+.input-group-addon:last-child,
+.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group > .btn,
+.input-group-btn:last-child > .dropdown-toggle,
+.input-group-btn:first-child > .btn:not(:first-child),
+.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.input-group-addon:last-child {
+ border-left: 0;
+}
+
+.input-group-btn {
+ position: relative;
+ font-size: 0;
+ white-space: nowrap;
+}
+
+.input-group-btn > .btn {
+ position: relative;
+}
+
+.input-group-btn > .btn + .btn {
+ margin-left: -1px;
+}
+
+.input-group-btn > .btn:hover,
+.input-group-btn > .btn:focus,
+.input-group-btn > .btn:active {
+ z-index: 2;
+}
+
+.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group {
+ margin-right: -1px;
+}
+
+.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group {
+ margin-left: -1px;
+}
+
+.nav {
+ padding-left: 0;
+ margin-bottom: 0;
+ list-style: none;
+}
+
+.nav > li {
+ position: relative;
+ display: block;
+}
+
+.nav > li > a {
+ position: relative;
+ display: block;
+ padding: 10px 15px;
+}
+
+.nav > li > a:hover,
+.nav > li > a:focus {
+ text-decoration: none;
+ background-color: #eee;
+}
+
+.nav > li.disabled > a {
+ color: #777;
+}
+
+.nav > li.disabled > a:hover,
+.nav > li.disabled > a:focus {
+ color: #777;
+ text-decoration: none;
+ cursor: not-allowed;
+ background-color: transparent;
+}
+
+.nav .open > a,
+.nav .open > a:hover,
+.nav .open > a:focus {
+ background-color: #eee;
+ border-color: #337ab7;
+}
+
+.nav .nav-divider {
+ height: 1px;
+ margin: 9px 0;
+ overflow: hidden;
+ background-color: #e5e5e5;
+}
+
+.nav > li > a > img {
+ max-width: none;
+}
+
+.nav-tabs {
+ border-bottom: 1px solid #ddd;
+}
+
+.nav-tabs > li {
+ float: left;
+ margin-bottom: -1px;
+}
+
+.nav-tabs > li > a {
+ margin-right: 2px;
+ line-height: 1.42857143;
+ border: 1px solid transparent;
+ border-radius: 4px 4px 0 0;
+}
+
+.nav-tabs > li > a:hover {
+ border-color: #eee #eee #ddd;
+}
+
+.nav-tabs > li.active > a,
+.nav-tabs > li.active > a:hover,
+.nav-tabs > li.active > a:focus {
+ color: #555;
+ cursor: default;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-bottom-color: transparent;
+}
+
+.nav-tabs.nav-justified {
+ width: 100%;
+ border-bottom: 0;
+}
+
+.nav-tabs.nav-justified > li {
+ float: none;
+}
+
+.nav-tabs.nav-justified > li > a {
+ margin-bottom: 5px;
+ text-align: center;
+}
+
+.nav-tabs.nav-justified > .dropdown .dropdown-menu {
+ top: auto;
+ left: auto;
+}
+
+@media (min-width: 768px) {
+ .nav-tabs.nav-justified > li {
+ display: table-cell;
+ width: 1%;
+ }
+
+ .nav-tabs.nav-justified > li > a {
+ margin-bottom: 0;
+ }
+}
+.nav-tabs.nav-justified > li > a {
+ margin-right: 0;
+ border-radius: 4px;
+}
+
+.nav-tabs.nav-justified > .active > a,
+.nav-tabs.nav-justified > .active > a:hover,
+.nav-tabs.nav-justified > .active > a:focus {
+ border: 1px solid #ddd;
+}
+
+@media (min-width: 768px) {
+ .nav-tabs.nav-justified > li > a {
+ border-bottom: 1px solid #ddd;
+ border-radius: 4px 4px 0 0;
+ }
+
+ .nav-tabs.nav-justified > .active > a,
+.nav-tabs.nav-justified > .active > a:hover,
+.nav-tabs.nav-justified > .active > a:focus {
+ border-bottom-color: #fff;
+ }
+}
+.nav-pills > li {
+ float: left;
+}
+
+.nav-pills > li > a {
+ border-radius: 4px;
+}
+
+.nav-pills > li + li {
+ margin-left: 2px;
+}
+
+.nav-pills > li.active > a,
+.nav-pills > li.active > a:hover,
+.nav-pills > li.active > a:focus {
+ color: #fff;
+ background-color: #337ab7;
+}
+
+.nav-stacked > li {
+ float: none;
+}
+
+.nav-stacked > li + li {
+ margin-top: 2px;
+ margin-left: 0;
+}
+
+.nav-justified {
+ width: 100%;
+}
+
+.nav-justified > li {
+ float: none;
+}
+
+.nav-justified > li > a {
+ margin-bottom: 5px;
+ text-align: center;
+}
+
+.nav-justified > .dropdown .dropdown-menu {
+ top: auto;
+ left: auto;
+}
+
+@media (min-width: 768px) {
+ .nav-justified > li {
+ display: table-cell;
+ width: 1%;
+ }
+
+ .nav-justified > li > a {
+ margin-bottom: 0;
+ }
+}
+.nav-tabs-justified {
+ border-bottom: 0;
+}
+
+.nav-tabs-justified > li > a {
+ margin-right: 0;
+ border-radius: 4px;
+}
+
+.nav-tabs-justified > .active > a,
+.nav-tabs-justified > .active > a:hover,
+.nav-tabs-justified > .active > a:focus {
+ border: 1px solid #ddd;
+}
+
+@media (min-width: 768px) {
+ .nav-tabs-justified > li > a {
+ border-bottom: 1px solid #ddd;
+ border-radius: 4px 4px 0 0;
+ }
+
+ .nav-tabs-justified > .active > a,
+.nav-tabs-justified > .active > a:hover,
+.nav-tabs-justified > .active > a:focus {
+ border-bottom-color: #fff;
+ }
+}
+.tab-content > .tab-pane {
+ display: none;
+}
+
+.tab-content > .active {
+ display: block;
+}
+
+.nav-tabs .dropdown-menu {
+ margin-top: -1px;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+}
+
+.navbar {
+ position: relative;
+ min-height: 50px;
+ margin-bottom: 20px;
+ border: 1px solid transparent;
+}
+
+@media (min-width: 768px) {
+ .navbar {
+ border-radius: 4px;
+ }
+}
+@media (min-width: 768px) {
+ .navbar-header {
+ float: left;
+ }
+}
+.navbar-collapse {
+ padding-right: 15px;
+ padding-left: 15px;
+ overflow-x: visible;
+ -webkit-overflow-scrolling: touch;
+ border-top: 1px solid transparent;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
+}
+
+.navbar-collapse.in {
+ overflow-y: auto;
+}
+
+@media (min-width: 768px) {
+ .navbar-collapse {
+ width: auto;
+ border-top: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ }
+
+ .navbar-collapse.collapse {
+ display: block !important;
+ height: auto !important;
+ padding-bottom: 0;
+ overflow: visible !important;
+ }
+
+ .navbar-collapse.in {
+ overflow-y: visible;
+ }
+
+ .navbar-fixed-top .navbar-collapse,
+.navbar-static-top .navbar-collapse,
+.navbar-fixed-bottom .navbar-collapse {
+ padding-right: 0;
+ padding-left: 0;
+ }
+}
+.navbar-fixed-top .navbar-collapse,
+.navbar-fixed-bottom .navbar-collapse {
+ max-height: 340px;
+}
+
+@media (max-device-width: 480px) and (orientation: landscape) {
+ .navbar-fixed-top .navbar-collapse,
+.navbar-fixed-bottom .navbar-collapse {
+ max-height: 200px;
+ }
+}
+.container > .navbar-header,
+.container-fluid > .navbar-header,
+.container > .navbar-collapse,
+.container-fluid > .navbar-collapse {
+ margin-right: -15px;
+ margin-left: -15px;
+}
+
+@media (min-width: 768px) {
+ .container > .navbar-header,
+.container-fluid > .navbar-header,
+.container > .navbar-collapse,
+.container-fluid > .navbar-collapse {
+ margin-right: 0;
+ margin-left: 0;
+ }
+}
+.navbar-static-top {
+ z-index: 1000;
+ border-width: 0 0 1px;
+}
+
+@media (min-width: 768px) {
+ .navbar-static-top {
+ border-radius: 0;
+ }
+}
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ position: fixed;
+ right: 0;
+ left: 0;
+ z-index: 1030;
+}
+
+@media (min-width: 768px) {
+ .navbar-fixed-top,
+.navbar-fixed-bottom {
+ border-radius: 0;
+ }
+}
+.navbar-fixed-top {
+ top: 0;
+ border-width: 0 0 1px;
+}
+
+.navbar-fixed-bottom {
+ bottom: 0;
+ margin-bottom: 0;
+ border-width: 1px 0 0;
+}
+
+.navbar-brand {
+ float: left;
+ height: 50px;
+ padding: 15px 15px;
+ font-size: 18px;
+ line-height: 20px;
+}
+
+.navbar-brand:hover,
+.navbar-brand:focus {
+ text-decoration: none;
+}
+
+.navbar-brand > img {
+ display: block;
+}
+
+@media (min-width: 768px) {
+ .navbar > .container .navbar-brand,
+.navbar > .container-fluid .navbar-brand {
+ margin-left: -15px;
+ }
+}
+.navbar-toggle {
+ position: relative;
+ float: right;
+ padding: 9px 10px;
+ margin-top: 8px;
+ margin-right: 15px;
+ margin-bottom: 8px;
+ background-color: transparent;
+ background-image: none;
+ border: 1px solid transparent;
+ border-radius: 4px;
+}
+
+.navbar-toggle:focus {
+ outline: 0;
+}
+
+.navbar-toggle .icon-bar {
+ display: block;
+ width: 22px;
+ height: 2px;
+ border-radius: 1px;
+}
+
+.navbar-toggle .icon-bar + .icon-bar {
+ margin-top: 4px;
+}
+
+@media (min-width: 768px) {
+ .navbar-toggle {
+ display: none;
+ }
+}
+.navbar-nav {
+ margin: 7.5px -15px;
+}
+
+.navbar-nav > li > a {
+ padding-top: 10px;
+ padding-bottom: 10px;
+ line-height: 20px;
+}
+
+@media (max-width: 767px) {
+ .navbar-nav .open .dropdown-menu {
+ position: static;
+ float: none;
+ width: auto;
+ margin-top: 0;
+ background-color: transparent;
+ border: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ }
+
+ .navbar-nav .open .dropdown-menu > li > a,
+.navbar-nav .open .dropdown-menu .dropdown-header {
+ padding: 5px 15px 5px 25px;
+ }
+
+ .navbar-nav .open .dropdown-menu > li > a {
+ line-height: 20px;
+ }
+
+ .navbar-nav .open .dropdown-menu > li > a:hover,
+.navbar-nav .open .dropdown-menu > li > a:focus {
+ background-image: none;
+ }
+}
+@media (min-width: 768px) {
+ .navbar-nav {
+ float: left;
+ margin: 0;
+ }
+
+ .navbar-nav > li {
+ float: left;
+ }
+
+ .navbar-nav > li > a {
+ padding-top: 15px;
+ padding-bottom: 15px;
+ }
+}
+.navbar-form {
+ padding: 10px 15px;
+ margin-top: 8px;
+ margin-right: -15px;
+ margin-bottom: 8px;
+ margin-left: -15px;
+ border-top: 1px solid transparent;
+ border-bottom: 1px solid transparent;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 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;
+ width: auto;
+ vertical-align: middle;
+ }
+
+ .navbar-form .form-control-static, .navbar-form .form-group div[class*=textBox] > .control-label, .form-group .navbar-form div[class*=textBox] > .control-label,
+.navbar-form .form-group div[class*=textArea] > .control-label,
+.form-group .navbar-form div[class*=textArea] > .control-label,
+.navbar-form .form-group div[class*=datePicker] > .control-label,
+.form-group .navbar-form div[class*=datePicker] > .control-label {
+ display: inline-block;
+ }
+
+ .navbar-form .input-group {
+ display: inline-table;
+ vertical-align: middle;
+ }
+
+ .navbar-form .input-group .input-group-addon,
+.navbar-form .input-group .input-group-btn,
+.navbar-form .input-group .form-control {
+ width: auto;
+ }
+
+ .navbar-form .input-group > .form-control {
+ width: 100%;
+ }
+
+ .navbar-form .control-label {
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+
+ .navbar-form .radio,
+.navbar-form .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+
+ .navbar-form .radio label,
+.navbar-form .checkbox label {
+ padding-left: 0;
+ }
+
+ .navbar-form .radio input[type=radio],
+.navbar-form .checkbox input[type=checkbox] {
+ position: relative;
+ margin-left: 0;
+ }
+
+ .navbar-form .has-feedback .form-control-feedback {
+ top: 0;
+ }
+}
+@media (max-width: 767px) {
+ .navbar-form .form-group {
+ margin-bottom: 5px;
+ }
+
+ .navbar-form .form-group:last-child {
+ margin-bottom: 0;
+ }
+}
+@media (min-width: 768px) {
+ .navbar-form {
+ width: auto;
+ padding-top: 0;
+ padding-bottom: 0;
+ margin-right: 0;
+ margin-left: 0;
+ border: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ }
+}
+.navbar-nav > li > .dropdown-menu {
+ margin-top: 0;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+}
+
+.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
+ margin-bottom: 0;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.navbar-btn {
+ margin-top: 8px;
+ margin-bottom: 8px;
+}
+
+.navbar-btn.btn-sm {
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+
+.navbar-btn.btn-xs {
+ margin-top: 14px;
+ margin-bottom: 14px;
+}
+
+.navbar-text {
+ margin-top: 15px;
+ margin-bottom: 15px;
+}
+
+@media (min-width: 768px) {
+ .navbar-text {
+ float: left;
+ margin-right: 15px;
+ margin-left: 15px;
+ }
+}
+@media (min-width: 768px) {
+ .navbar-left {
+ float: left !important;
+ }
+
+ .navbar-right {
+ float: right !important;
+ margin-right: -15px;
+ }
+
+ .navbar-right ~ .navbar-right {
+ margin-right: 0;
+ }
+}
+.navbar-default {
+ background-color: #f8f8f8;
+ border-color: #e7e7e7;
+}
+
+.navbar-default .navbar-brand {
+ color: #777;
+}
+
+.navbar-default .navbar-brand:hover,
+.navbar-default .navbar-brand:focus {
+ color: #5e5e5e;
+ background-color: transparent;
+}
+
+.navbar-default .navbar-text {
+ color: #777;
+}
+
+.navbar-default .navbar-nav > li > a {
+ color: #777;
+}
+
+.navbar-default .navbar-nav > li > a:hover,
+.navbar-default .navbar-nav > li > a:focus {
+ color: #333;
+ background-color: transparent;
+}
+
+.navbar-default .navbar-nav > .active > a,
+.navbar-default .navbar-nav > .active > a:hover,
+.navbar-default .navbar-nav > .active > a:focus {
+ color: #555;
+ background-color: #e7e7e7;
+}
+
+.navbar-default .navbar-nav > .disabled > a,
+.navbar-default .navbar-nav > .disabled > a:hover,
+.navbar-default .navbar-nav > .disabled > a:focus {
+ color: #ccc;
+ background-color: transparent;
+}
+
+.navbar-default .navbar-toggle {
+ border-color: #ddd;
+}
+
+.navbar-default .navbar-toggle:hover,
+.navbar-default .navbar-toggle:focus {
+ background-color: #ddd;
+}
+
+.navbar-default .navbar-toggle .icon-bar {
+ background-color: #888;
+}
+
+.navbar-default .navbar-collapse,
+.navbar-default .navbar-form {
+ border-color: #e7e7e7;
+}
+
+.navbar-default .navbar-nav > .open > a,
+.navbar-default .navbar-nav > .open > a:hover,
+.navbar-default .navbar-nav > .open > a:focus {
+ color: #555;
+ background-color: #e7e7e7;
+}
+
+@media (max-width: 767px) {
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a {
+ color: #777;
+ }
+
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
+.navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
+ color: #333;
+ background-color: transparent;
+ }
+
+ .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
+.navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
+.navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
+ color: #555;
+ background-color: #e7e7e7;
+ }
+
+ .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
+.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
+.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+ color: #ccc;
+ background-color: transparent;
+ }
+}
+.navbar-default .navbar-link {
+ color: #777;
+}
+
+.navbar-default .navbar-link:hover {
+ color: #333;
+}
+
+.navbar-default .btn-link {
+ color: #777;
+}
+
+.navbar-default .btn-link:hover,
+.navbar-default .btn-link:focus {
+ color: #333;
+}
+
+.navbar-default .btn-link[disabled]:hover,
+fieldset[disabled] .navbar-default .btn-link:hover,
+.navbar-default .btn-link[disabled]:focus,
+fieldset[disabled] .navbar-default .btn-link:focus {
+ color: #ccc;
+}
+
+.navbar-inverse {
+ background-color: #222;
+ border-color: #080808;
+}
+
+.navbar-inverse .navbar-brand {
+ color: #9d9d9d;
+}
+
+.navbar-inverse .navbar-brand:hover,
+.navbar-inverse .navbar-brand:focus {
+ color: #fff;
+ background-color: transparent;
+}
+
+.navbar-inverse .navbar-text {
+ color: #9d9d9d;
+}
+
+.navbar-inverse .navbar-nav > li > a {
+ color: #9d9d9d;
+}
+
+.navbar-inverse .navbar-nav > li > a:hover,
+.navbar-inverse .navbar-nav > li > a:focus {
+ color: #fff;
+ background-color: transparent;
+}
+
+.navbar-inverse .navbar-nav > .active > a,
+.navbar-inverse .navbar-nav > .active > a:hover,
+.navbar-inverse .navbar-nav > .active > a:focus {
+ color: #fff;
+ background-color: #080808;
+}
+
+.navbar-inverse .navbar-nav > .disabled > a,
+.navbar-inverse .navbar-nav > .disabled > a:hover,
+.navbar-inverse .navbar-nav > .disabled > a:focus {
+ color: #444;
+ background-color: transparent;
+}
+
+.navbar-inverse .navbar-toggle {
+ border-color: #333;
+}
+
+.navbar-inverse .navbar-toggle:hover,
+.navbar-inverse .navbar-toggle:focus {
+ background-color: #333;
+}
+
+.navbar-inverse .navbar-toggle .icon-bar {
+ background-color: #fff;
+}
+
+.navbar-inverse .navbar-collapse,
+.navbar-inverse .navbar-form {
+ border-color: #101010;
+}
+
+.navbar-inverse .navbar-nav > .open > a,
+.navbar-inverse .navbar-nav > .open > a:hover,
+.navbar-inverse .navbar-nav > .open > a:focus {
+ color: #fff;
+ background-color: #080808;
+}
+
+@media (max-width: 767px) {
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
+ border-color: #080808;
+ }
+
+ .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
+ background-color: #080808;
+ }
+
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
+ color: #9d9d9d;
+ }
+
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
+.navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
+ color: #fff;
+ background-color: transparent;
+ }
+
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
+.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
+.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
+ color: #fff;
+ background-color: #080808;
+ }
+
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
+.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
+.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+ color: #444;
+ background-color: transparent;
+ }
+}
+.navbar-inverse .navbar-link {
+ color: #9d9d9d;
+}
+
+.navbar-inverse .navbar-link:hover {
+ color: #fff;
+}
+
+.navbar-inverse .btn-link {
+ color: #9d9d9d;
+}
+
+.navbar-inverse .btn-link:hover,
+.navbar-inverse .btn-link:focus {
+ color: #fff;
+}
+
+.navbar-inverse .btn-link[disabled]:hover,
+fieldset[disabled] .navbar-inverse .btn-link:hover,
+.navbar-inverse .btn-link[disabled]:focus,
+fieldset[disabled] .navbar-inverse .btn-link:focus {
+ color: #444;
+}
+
+.breadcrumb {
+ padding: 8px 15px;
+ margin-bottom: 20px;
+ list-style: none;
+ background-color: #f5f5f5;
+ border-radius: 4px;
+}
+
+.breadcrumb > li {
+ display: inline-block;
+}
+
+.breadcrumb > li + li:before {
+ padding: 0 5px;
+ color: #ccc;
+ content: "/ ";
+}
+
+.breadcrumb > .active {
+ color: #777;
+}
+
+.pagination {
+ display: inline-block;
+ padding-left: 0;
+ margin: 20px 0;
+ border-radius: 4px;
+}
+
+.pagination > li {
+ display: inline;
+}
+
+.pagination > li > a,
+.pagination > li > span {
+ position: relative;
+ float: left;
+ padding: 6px 12px;
+ margin-left: -1px;
+ line-height: 1.42857143;
+ color: #337ab7;
+ text-decoration: none;
+ background-color: #fff;
+ border: 1px solid #ddd;
+}
+
+.pagination > li:first-child > a,
+.pagination > li:first-child > span {
+ margin-left: 0;
+ border-top-left-radius: 4px;
+ border-bottom-left-radius: 4px;
+}
+
+.pagination > li:last-child > a,
+.pagination > li:last-child > span {
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 4px;
+}
+
+.pagination > li > a:hover,
+.pagination > li > span:hover,
+.pagination > li > a:focus,
+.pagination > li > span:focus {
+ color: #23527c;
+ background-color: #eee;
+ border-color: #ddd;
+}
+
+.pagination > .active > a,
+.pagination > .active > span,
+.pagination > .active > a:hover,
+.pagination > .active > span:hover,
+.pagination > .active > a:focus,
+.pagination > .active > span:focus {
+ z-index: 2;
+ color: #fff;
+ cursor: default;
+ background-color: #337ab7;
+ border-color: #337ab7;
+}
+
+.pagination > .disabled > span,
+.pagination > .disabled > span:hover,
+.pagination > .disabled > span:focus,
+.pagination > .disabled > a,
+.pagination > .disabled > a:hover,
+.pagination > .disabled > a:focus {
+ color: #777;
+ cursor: not-allowed;
+ background-color: #fff;
+ border-color: #ddd;
+}
+
+.pagination-lg > li > a,
+.pagination-lg > li > span {
+ padding: 10px 16px;
+ font-size: 18px;
+}
+
+.pagination-lg > li:first-child > a,
+.pagination-lg > li:first-child > span {
+ border-top-left-radius: 6px;
+ border-bottom-left-radius: 6px;
+}
+
+.pagination-lg > li:last-child > a,
+.pagination-lg > li:last-child > span {
+ border-top-right-radius: 6px;
+ border-bottom-right-radius: 6px;
+}
+
+.pagination-sm > li > a,
+.pagination-sm > li > span {
+ padding: 5px 10px;
+ font-size: 12px;
+}
+
+.pagination-sm > li:first-child > a,
+.pagination-sm > li:first-child > span {
+ border-top-left-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+
+.pagination-sm > li:last-child > a,
+.pagination-sm > li:last-child > span {
+ border-top-right-radius: 3px;
+ border-bottom-right-radius: 3px;
+}
+
+.pager {
+ padding-left: 0;
+ margin: 20px 0;
+ text-align: center;
+ list-style: none;
+}
+
+.pager li {
+ display: inline;
+}
+
+.pager li > a,
+.pager li > span {
+ display: inline-block;
+ padding: 5px 14px;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 15px;
+}
+
+.pager li > a:hover,
+.pager li > a:focus {
+ text-decoration: none;
+ background-color: #eee;
+}
+
+.pager .next > a,
+.pager .next > span {
+ float: right;
+}
+
+.pager .previous > a,
+.pager .previous > span {
+ float: left;
+}
+
+.pager .disabled > a,
+.pager .disabled > a:hover,
+.pager .disabled > a:focus,
+.pager .disabled > span {
+ color: #777;
+ cursor: not-allowed;
+ background-color: #fff;
+}
+
+.label {
+ display: inline;
+ padding: 0.2em 0.6em 0.3em;
+ font-size: 75%;
+ font-weight: bold;
+ line-height: 1;
+ color: #fff;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: 0.25em;
+}
+
+a.label:hover,
+a.label:focus {
+ color: #fff;
+ text-decoration: none;
+ cursor: pointer;
+}
+
+.label:empty {
+ display: none;
+}
+
+.btn .label {
+ position: relative;
+ top: -1px;
+}
+
+.label-default {
+ background-color: #777;
+}
+
+.label-default[href]:hover,
+.label-default[href]:focus {
+ background-color: #5e5e5e;
+}
+
+.label-primary {
+ background-color: #337ab7;
+}
+
+.label-primary[href]:hover,
+.label-primary[href]:focus {
+ background-color: #286090;
+}
+
+.label-success {
+ background-color: #5cb85c;
+}
+
+.label-success[href]:hover,
+.label-success[href]:focus {
+ background-color: #449d44;
+}
+
+.label-info {
+ background-color: #5bc0de;
+}
+
+.label-info[href]:hover,
+.label-info[href]:focus {
+ background-color: #31b0d5;
+}
+
+.label-warning {
+ background-color: #f0ad4e;
+}
+
+.label-warning[href]:hover,
+.label-warning[href]:focus {
+ background-color: #ec971f;
+}
+
+.label-danger {
+ background-color: #d9534f;
+}
+
+.label-danger[href]:hover,
+.label-danger[href]:focus {
+ background-color: #c9302c;
+}
+
+.badge {
+ display: inline-block;
+ min-width: 10px;
+ padding: 3px 7px;
+ font-size: 12px;
+ font-weight: bold;
+ line-height: 1;
+ color: #fff;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ background-color: #777;
+ border-radius: 10px;
+}
+
+.badge:empty {
+ display: none;
+}
+
+.btn .badge {
+ position: relative;
+ top: -1px;
+}
+
+.btn-xs .badge,
+.btn-group-xs > .btn .badge {
+ top: 0;
+ padding: 1px 5px;
+}
+
+a.badge:hover,
+a.badge:focus {
+ color: #fff;
+ text-decoration: none;
+ cursor: pointer;
+}
+
+.list-group-item.active > .badge,
+.nav-pills > .active > a > .badge {
+ color: #337ab7;
+ background-color: #fff;
+}
+
+.list-group-item > .badge {
+ float: right;
+}
+
+.list-group-item > .badge + .badge {
+ margin-right: 5px;
+}
+
+.nav-pills > li > a > .badge {
+ margin-left: 3px;
+}
+
+.jumbotron {
+ padding: 30px 15px;
+ margin-bottom: 30px;
+ color: inherit;
+ background-color: #eee;
+}
+
+.jumbotron h1,
+.jumbotron .h1 {
+ color: inherit;
+}
+
+.jumbotron p {
+ margin-bottom: 15px;
+ font-size: 21px;
+ font-weight: 200;
+}
+
+.jumbotron > hr {
+ border-top-color: #d5d5d5;
+}
+
+.container .jumbotron,
+.container-fluid .jumbotron {
+ border-radius: 6px;
+}
+
+.jumbotron .container {
+ max-width: 100%;
+}
+
+@media screen and (min-width: 768px) {
+ .jumbotron {
+ padding: 48px 0;
+ }
+
+ .container .jumbotron,
+.container-fluid .jumbotron {
+ padding-right: 60px;
+ padding-left: 60px;
+ }
+
+ .jumbotron h1,
+.jumbotron .h1 {
+ font-size: 63px;
+ }
+}
+.thumbnail {
+ display: block;
+ padding: 4px;
+ margin-bottom: 20px;
+ line-height: 1.42857143;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ -webkit-transition: border 0.2s ease-in-out;
+ -o-transition: border 0.2s ease-in-out;
+ transition: border 0.2s ease-in-out;
+}
+
+.thumbnail > img,
+.thumbnail a > img {
+ margin-right: auto;
+ margin-left: auto;
+}
+
+a.thumbnail:hover,
+a.thumbnail:focus,
+a.thumbnail.active {
+ border-color: #337ab7;
+}
+
+.thumbnail .caption {
+ padding: 9px;
+ color: #333;
+}
+
+.alert {
+ padding: 15px;
+ margin-bottom: 20px;
+ border: 1px solid transparent;
+ border-radius: 4px;
+}
+
+.alert h4 {
+ margin-top: 0;
+ color: inherit;
+}
+
+.alert .alert-link {
+ font-weight: bold;
+}
+
+.alert > p,
+.alert > ul {
+ margin-bottom: 0;
+}
+
+.alert > p + p {
+ margin-top: 5px;
+}
+
+.alert-dismissable,
+.alert-dismissible {
+ padding-right: 35px;
+}
+
+.alert-dismissable .close,
+.alert-dismissible .close {
+ position: relative;
+ top: -2px;
+ right: -21px;
+ color: inherit;
+}
+
+.alert-success {
+ color: #3c763d;
+ background-color: #dff0d8;
+ border-color: #d6e9c6;
+}
+
+.alert-success hr {
+ border-top-color: #c9e2b3;
+}
+
+.alert-success .alert-link {
+ color: #2b542c;
+}
+
+.alert-info {
+ color: #31708f;
+ background-color: #d9edf7;
+ border-color: #bce8f1;
+}
+
+.alert-info hr {
+ border-top-color: #a6e1ec;
+}
+
+.alert-info .alert-link {
+ color: #245269;
+}
+
+.alert-warning {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+ border-color: #faebcc;
+}
+
+.alert-warning hr {
+ border-top-color: #f7e1b5;
+}
+
+.alert-warning .alert-link {
+ color: #66512c;
+}
+
+.alert-danger {
+ color: #a94442;
+ background-color: #f2dede;
+ border-color: #ebccd1;
+}
+
+.alert-danger hr {
+ border-top-color: #e4b9c0;
+}
+
+.alert-danger .alert-link {
+ color: #843534;
+}
+
+.media {
+ margin-top: 15px;
+}
+
+.media:first-child {
+ margin-top: 0;
+}
+
+.media,
+.media-body {
+ overflow: hidden;
+ zoom: 1;
+}
+
+.media-body {
+ width: 10000px;
+}
+
+.media-object {
+ display: block;
+}
+
+.media-right,
+.media > .pull-right {
+ padding-left: 10px;
+}
+
+.media-left,
+.media > .pull-left {
+ padding-right: 10px;
+}
+
+.media-left,
+.media-right,
+.media-body {
+ display: table-cell;
+ vertical-align: top;
+}
+
+.media-middle {
+ vertical-align: middle;
+}
+
+.media-bottom {
+ vertical-align: bottom;
+}
+
+.media-heading {
+ margin-top: 0;
+ margin-bottom: 5px;
+}
+
+.media-list {
+ padding-left: 0;
+ list-style: none;
+}
+
+.list-group {
+ padding-left: 0;
+ margin-bottom: 20px;
+}
+
+.list-group-item {
+ position: relative;
+ display: block;
+ padding: 10px 15px;
+ margin-bottom: -1px;
+ background-color: #fff;
+ border: 1px solid #ddd;
+}
+
+.list-group-item:first-child {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+}
+
+.list-group-item:last-child {
+ margin-bottom: 0;
+ border-bottom-right-radius: 4px;
+ border-bottom-left-radius: 4px;
+}
+
+a.list-group-item {
+ color: #555;
+}
+
+a.list-group-item .list-group-item-heading {
+ color: #333;
+}
+
+a.list-group-item:hover,
+a.list-group-item:focus {
+ color: #555;
+ text-decoration: none;
+ background-color: #f5f5f5;
+}
+
+.list-group-item.disabled,
+.list-group-item.disabled:hover,
+.list-group-item.disabled:focus {
+ color: #777;
+ cursor: not-allowed;
+ background-color: #eee;
+}
+
+.list-group-item.disabled .list-group-item-heading,
+.list-group-item.disabled:hover .list-group-item-heading,
+.list-group-item.disabled:focus .list-group-item-heading {
+ color: inherit;
+}
+
+.list-group-item.disabled .list-group-item-text,
+.list-group-item.disabled:hover .list-group-item-text,
+.list-group-item.disabled:focus .list-group-item-text {
+ color: #777;
+}
+
+.list-group-item.active,
+.list-group-item.active:hover,
+.list-group-item.active:focus {
+ z-index: 2;
+ color: #fff;
+ background-color: #337ab7;
+ border-color: #337ab7;
+}
+
+.list-group-item.active .list-group-item-heading,
+.list-group-item.active:hover .list-group-item-heading,
+.list-group-item.active:focus .list-group-item-heading,
+.list-group-item.active .list-group-item-heading > small,
+.list-group-item.active:hover .list-group-item-heading > small,
+.list-group-item.active:focus .list-group-item-heading > small,
+.list-group-item.active .list-group-item-heading > .small,
+.list-group-item.active:hover .list-group-item-heading > .small,
+.list-group-item.active:focus .list-group-item-heading > .small {
+ color: inherit;
+}
+
+.list-group-item.active .list-group-item-text,
+.list-group-item.active:hover .list-group-item-text,
+.list-group-item.active:focus .list-group-item-text {
+ color: #c7ddef;
+}
+
+.list-group-item-success {
+ color: #3c763d;
+ background-color: #dff0d8;
+}
+
+a.list-group-item-success {
+ color: #3c763d;
+}
+
+a.list-group-item-success .list-group-item-heading {
+ color: inherit;
+}
+
+a.list-group-item-success:hover,
+a.list-group-item-success:focus {
+ color: #3c763d;
+ background-color: #d0e9c6;
+}
+
+a.list-group-item-success.active,
+a.list-group-item-success.active:hover,
+a.list-group-item-success.active:focus {
+ color: #fff;
+ background-color: #3c763d;
+ border-color: #3c763d;
+}
+
+.list-group-item-info {
+ color: #31708f;
+ background-color: #d9edf7;
+}
+
+a.list-group-item-info {
+ color: #31708f;
+}
+
+a.list-group-item-info .list-group-item-heading {
+ color: inherit;
+}
+
+a.list-group-item-info:hover,
+a.list-group-item-info:focus {
+ color: #31708f;
+ background-color: #c4e3f3;
+}
+
+a.list-group-item-info.active,
+a.list-group-item-info.active:hover,
+a.list-group-item-info.active:focus {
+ color: #fff;
+ background-color: #31708f;
+ border-color: #31708f;
+}
+
+.list-group-item-warning {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+}
+
+a.list-group-item-warning {
+ color: #8a6d3b;
+}
+
+a.list-group-item-warning .list-group-item-heading {
+ color: inherit;
+}
+
+a.list-group-item-warning:hover,
+a.list-group-item-warning:focus {
+ color: #8a6d3b;
+ background-color: #faf2cc;
+}
+
+a.list-group-item-warning.active,
+a.list-group-item-warning.active:hover,
+a.list-group-item-warning.active:focus {
+ color: #fff;
+ background-color: #8a6d3b;
+ border-color: #8a6d3b;
+}
+
+.list-group-item-danger {
+ color: #a94442;
+ background-color: #f2dede;
+}
+
+a.list-group-item-danger {
+ color: #a94442;
+}
+
+a.list-group-item-danger .list-group-item-heading {
+ color: inherit;
+}
+
+a.list-group-item-danger:hover,
+a.list-group-item-danger:focus {
+ color: #a94442;
+ background-color: #ebcccc;
+}
+
+a.list-group-item-danger.active,
+a.list-group-item-danger.active:hover,
+a.list-group-item-danger.active:focus {
+ color: #fff;
+ background-color: #a94442;
+ border-color: #a94442;
+}
+
+.list-group-item-heading {
+ margin-top: 0;
+ margin-bottom: 5px;
+}
+
+.list-group-item-text {
+ margin-bottom: 0;
+ line-height: 1.3;
+}
+
+.panel {
+ margin-bottom: 20px;
+ background-color: #fff;
+ 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-heading {
+ padding: 10px 15px;
+ border-bottom: 1px solid transparent;
+ border-top-left-radius: 3px;
+ border-top-right-radius: 3px;
+}
+
+.panel-heading > .dropdown .dropdown-toggle {
+ color: inherit;
+}
+
+.panel-title {
+ margin-top: 0;
+ margin-bottom: 0;
+ font-size: 16px;
+ color: inherit;
+}
+
+.panel-title > a,
+.panel-title > small,
+.panel-title > .small,
+.panel-title > small > a,
+.panel-title > .small > a {
+ color: inherit;
+}
+
+.panel-footer {
+ padding: 10px 15px;
+ background-color: #f5f5f5;
+ border-top: 1px solid #ddd;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+
+.panel > .list-group,
+.panel > .panel-collapse > .list-group {
+ margin-bottom: 0;
+}
+
+.panel > .list-group .list-group-item,
+.panel > .panel-collapse > .list-group .list-group-item {
+ border-width: 1px 0;
+ border-radius: 0;
+}
+
+.panel > .list-group:first-child .list-group-item:first-child,
+.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
+ border-top: 0;
+ border-top-left-radius: 3px;
+ border-top-right-radius: 3px;
+}
+
+.panel > .list-group:last-child .list-group-item:last-child,
+.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
+ border-bottom: 0;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+
+.panel-heading + .list-group .list-group-item:first-child {
+ border-top-width: 0;
+}
+
+.list-group + .panel-footer {
+ border-top-width: 0;
+}
+
+.panel > .table,
+.panel > .table-responsive > .table,
+.panel > .panel-collapse > .table {
+ margin-bottom: 0;
+}
+
+.panel > .table caption,
+.panel > .table-responsive > .table caption,
+.panel > .panel-collapse > .table caption {
+ padding-right: 15px;
+ padding-left: 15px;
+}
+
+.panel > .table:first-child,
+.panel > .table-responsive:first-child > .table:first-child {
+ border-top-left-radius: 3px;
+ border-top-right-radius: 3px;
+}
+
+.panel > .table:first-child > thead:first-child > tr:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
+ border-top-left-radius: 3px;
+ border-top-right-radius: 3px;
+}
+
+.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
+ border-top-left-radius: 3px;
+}
+
+.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
+ border-top-right-radius: 3px;
+}
+
+.panel > .table:last-child,
+.panel > .table-responsive:last-child > .table:last-child {
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+
+.panel > .table:last-child > tbody:last-child > tr:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+
+.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
+ border-bottom-left-radius: 3px;
+}
+
+.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
+ border-bottom-right-radius: 3px;
+}
+
+.panel > .panel-body + .table,
+.panel > .panel-body + .table-responsive,
+.panel > .table + .panel-body,
+.panel > .table-responsive + .panel-body {
+ border-top: 1px solid #ddd;
+}
+
+.panel > .table > tbody:first-child > tr:first-child th,
+.panel > .table > tbody:first-child > tr:first-child td {
+ border-top: 0;
+}
+
+.panel > .table-bordered,
+.panel > .table-responsive > .table-bordered {
+ border: 0;
+}
+
+.panel > .table-bordered > thead > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
+.panel > .table-bordered > tbody > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
+.panel > .table-bordered > tfoot > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+.panel > .table-bordered > thead > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
+.panel > .table-bordered > tbody > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
+.panel > .table-bordered > tfoot > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-left: 0;
+}
+
+.panel > .table-bordered > thead > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
+.panel > .table-bordered > tbody > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
+.panel > .table-bordered > tfoot > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+.panel > .table-bordered > thead > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
+.panel > .table-bordered > tbody > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
+.panel > .table-bordered > tfoot > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: 0;
+}
+
+.panel > .table-bordered > thead > tr:first-child > td,
+.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
+.panel > .table-bordered > tbody > tr:first-child > td,
+.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
+.panel > .table-bordered > thead > tr:first-child > th,
+.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
+.panel > .table-bordered > tbody > tr:first-child > th,
+.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
+ border-bottom: 0;
+}
+
+.panel > .table-bordered > tbody > tr:last-child > td,
+.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
+.panel > .table-bordered > tfoot > tr:last-child > td,
+.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
+.panel > .table-bordered > tbody > tr:last-child > th,
+.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
+.panel > .table-bordered > tfoot > tr:last-child > th,
+.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
+ border-bottom: 0;
+}
+
+.panel > .table-responsive {
+ margin-bottom: 0;
+ border: 0;
+}
+
+.panel-group {
+ margin-bottom: 20px;
+}
+
+.panel-group .panel {
+ margin-bottom: 0;
+ border-radius: 4px;
+}
+
+.panel-group .panel + .panel {
+ margin-top: 5px;
+}
+
+.panel-group .panel-heading {
+ border-bottom: 0;
+}
+
+.panel-group .panel-heading + .panel-collapse > .panel-body,
+.panel-group .panel-heading + .panel-collapse > .list-group {
+ border-top: 1px solid #ddd;
+}
+
+.panel-group .panel-footer {
+ border-top: 0;
+}
+
+.panel-group .panel-footer + .panel-collapse .panel-body {
+ border-bottom: 1px solid #ddd;
+}
+
+.panel-default {
+ border-color: #ddd;
+}
+
+.panel-default > .panel-heading {
+ color: #333;
+ background-color: #f5f5f5;
+ border-color: #ddd;
+}
+
+.panel-default > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #ddd;
+}
+
+.panel-default > .panel-heading .badge {
+ color: #f5f5f5;
+ background-color: #333;
+}
+
+.panel-default > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #ddd;
+}
+
+.panel-primary {
+ border-color: #337ab7;
+}
+
+.panel-primary > .panel-heading {
+ color: #fff;
+ background-color: #337ab7;
+ border-color: #337ab7;
+}
+
+.panel-primary > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #337ab7;
+}
+
+.panel-primary > .panel-heading .badge {
+ color: #337ab7;
+ background-color: #fff;
+}
+
+.panel-primary > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #337ab7;
+}
+
+.panel-success {
+ border-color: #d6e9c6;
+}
+
+.panel-success > .panel-heading {
+ color: #3c763d;
+ background-color: #dff0d8;
+ border-color: #d6e9c6;
+}
+
+.panel-success > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #d6e9c6;
+}
+
+.panel-success > .panel-heading .badge {
+ color: #dff0d8;
+ background-color: #3c763d;
+}
+
+.panel-success > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #d6e9c6;
+}
+
+.panel-info {
+ border-color: #bce8f1;
+}
+
+.panel-info > .panel-heading {
+ color: #31708f;
+ background-color: #d9edf7;
+ border-color: #bce8f1;
+}
+
+.panel-info > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #bce8f1;
+}
+
+.panel-info > .panel-heading .badge {
+ color: #d9edf7;
+ background-color: #31708f;
+}
+
+.panel-info > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #bce8f1;
+}
+
+.panel-warning {
+ border-color: #faebcc;
+}
+
+.panel-warning > .panel-heading {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+ border-color: #faebcc;
+}
+
+.panel-warning > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #faebcc;
+}
+
+.panel-warning > .panel-heading .badge {
+ color: #fcf8e3;
+ background-color: #8a6d3b;
+}
+
+.panel-warning > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #faebcc;
+}
+
+.panel-danger {
+ border-color: #ebccd1;
+}
+
+.panel-danger > .panel-heading {
+ color: #a94442;
+ background-color: #f2dede;
+ border-color: #ebccd1;
+}
+
+.panel-danger > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #ebccd1;
+}
+
+.panel-danger > .panel-heading .badge {
+ color: #f2dede;
+ background-color: #a94442;
+}
+
+.panel-danger > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #ebccd1;
+}
+
+.embed-responsive {
+ position: relative;
+ display: block;
+ height: 0;
+ padding: 0;
+ overflow: hidden;
+}
+
+.embed-responsive .embed-responsive-item,
+.embed-responsive iframe,
+.embed-responsive embed,
+.embed-responsive object,
+.embed-responsive video {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ border: 0;
+}
+
+.embed-responsive-16by9 {
+ padding-bottom: 56.25%;
+}
+
+.embed-responsive-4by3 {
+ padding-bottom: 75%;
+}
+
+.well {
+ min-height: 20px;
+ padding: 19px;
+ margin-bottom: 20px;
+ background-color: #f5f5f5;
+ border: 1px solid #e3e3e3;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 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: #000;
+ text-shadow: 0 1px 0 #fff;
+ filter: alpha(opacity=20);
+ opacity: 0.2;
+}
+
+.close:hover,
+.close:focus {
+ color: #000;
+ text-decoration: none;
+ cursor: pointer;
+ filter: alpha(opacity=50);
+ opacity: 0.5;
+}
+
+button.close {
+ -webkit-appearance: none;
+ padding: 0;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+}
+
+.modal-open {
+ overflow: hidden;
+}
+
+.modal {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1050;
+ display: none;
+ overflow: hidden;
+ -webkit-overflow-scrolling: touch;
+ outline: 0;
+}
+
+.modal.fade .modal-dialog {
+ -webkit-transition: -webkit-transform 0.3s ease-out;
+ -o-transition: -o-transform 0.3s ease-out;
+ transition: transform 0.3s ease-out;
+ -webkit-transform: translate(0, -25%);
+ -ms-transform: translate(0, -25%);
+ -o-transform: translate(0, -25%);
+ transform: translate(0, -25%);
+}
+
+.modal.in .modal-dialog {
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ -o-transform: translate(0, 0);
+ transform: translate(0, 0);
+}
+
+.modal-open .modal {
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+
+.modal-dialog {
+ position: relative;
+ width: auto;
+ margin: 10px;
+}
+
+.modal-content {
+ position: relative;
+ background-color: #fff;
+ -webkit-background-clip: padding-box;
+ background-clip: padding-box;
+ border: 1px solid #999;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 6px;
+ outline: 0;
+ -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+}
+
+.modal-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1040;
+ background-color: #000;
+}
+
+.modal-backdrop.fade {
+ filter: alpha(opacity=0);
+ opacity: 0;
+}
+
+.modal-backdrop.in {
+ filter: alpha(opacity=50);
+ opacity: 0.5;
+}
+
+.modal-header {
+ min-height: 16.42857143px;
+ padding: 15px;
+ border-bottom: 1px solid #e5e5e5;
+}
+
+.modal-header .close {
+ margin-top: -2px;
+}
+
+.modal-title {
+ margin: 0;
+ line-height: 1.42857143;
+}
+
+.modal-footer {
+ padding: 15px;
+ text-align: right;
+ border-top: 1px solid #e5e5e5;
+}
+
+.modal-footer .btn + .btn {
+ margin-bottom: 0;
+ margin-left: 5px;
+}
+
+.modal-footer .btn-group .btn + .btn {
+ margin-left: -1px;
+}
+
+.modal-footer .btn-block + .btn-block {
+ margin-left: 0;
+}
+
+.modal-scrollbar-measure {
+ position: absolute;
+ top: -9999px;
+ width: 50px;
+ height: 50px;
+ overflow: scroll;
+}
+
+@media (min-width: 768px) {
+ .modal-dialog {
+ width: 600px;
+ margin: 30px auto;
+ }
+
+ .modal-content {
+ -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+ }
+
+ .modal-sm {
+ width: 300px;
+ }
+}
+@media (min-width: 992px) {
+ .modal-lg {
+ width: 900px;
+ }
+}
+.tooltip {
+ position: absolute;
+ z-index: 1070;
+ display: block;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 12px;
+ font-weight: normal;
+ line-height: 1.4;
+ filter: alpha(opacity=0);
+ opacity: 0;
+}
+
+.tooltip.in {
+ filter: alpha(opacity=90);
+ opacity: 0.9;
+}
+
+.tooltip.top {
+ padding: 5px 0;
+ margin-top: -3px;
+}
+
+.tooltip.right {
+ padding: 0 5px;
+ margin-left: 3px;
+}
+
+.tooltip.bottom {
+ padding: 5px 0;
+ margin-top: 3px;
+}
+
+.tooltip.left {
+ padding: 0 5px;
+ margin-left: -3px;
+}
+
+.tooltip-inner {
+ max-width: 200px;
+ padding: 3px 8px;
+ color: #fff;
+ text-align: center;
+ text-decoration: none;
+ background-color: #000;
+ border-radius: 4px;
+}
+
+.tooltip-arrow {
+ position: absolute;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+
+.tooltip.top .tooltip-arrow {
+ bottom: 0;
+ left: 50%;
+ margin-left: -5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000;
+}
+
+.tooltip.top-left .tooltip-arrow {
+ right: 5px;
+ bottom: 0;
+ margin-bottom: -5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000;
+}
+
+.tooltip.top-right .tooltip-arrow {
+ bottom: 0;
+ left: 5px;
+ margin-bottom: -5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000;
+}
+
+.tooltip.right .tooltip-arrow {
+ top: 50%;
+ left: 0;
+ margin-top: -5px;
+ border-width: 5px 5px 5px 0;
+ border-right-color: #000;
+}
+
+.tooltip.left .tooltip-arrow {
+ top: 50%;
+ right: 0;
+ margin-top: -5px;
+ border-width: 5px 0 5px 5px;
+ border-left-color: #000;
+}
+
+.tooltip.bottom .tooltip-arrow {
+ top: 0;
+ left: 50%;
+ margin-left: -5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000;
+}
+
+.tooltip.bottom-left .tooltip-arrow {
+ top: 0;
+ right: 5px;
+ margin-top: -5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000;
+}
+
+.tooltip.bottom-right .tooltip-arrow {
+ top: 0;
+ left: 5px;
+ margin-top: -5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000;
+}
+
+.popover {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 1060;
+ display: none;
+ max-width: 276px;
+ padding: 1px;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 1.42857143;
+ text-align: left;
+ white-space: normal;
+ background-color: #fff;
+ -webkit-background-clip: padding-box;
+ background-clip: padding-box;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 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);
+}
+
+.popover.top {
+ margin-top: -10px;
+}
+
+.popover.right {
+ margin-left: 10px;
+}
+
+.popover.bottom {
+ margin-top: 10px;
+}
+
+.popover.left {
+ margin-left: -10px;
+}
+
+.popover-title {
+ padding: 8px 14px;
+ margin: 0;
+ font-size: 14px;
+ background-color: #f7f7f7;
+ border-bottom: 1px solid #ebebeb;
+ border-radius: 5px 5px 0 0;
+}
+
+.popover-content {
+ padding: 9px 14px;
+}
+
+.popover > .arrow,
+.popover > .arrow:after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+
+.popover > .arrow {
+ border-width: 11px;
+}
+
+.popover > .arrow:after {
+ content: "";
+ border-width: 10px;
+}
+
+.popover.top > .arrow {
+ bottom: -11px;
+ left: 50%;
+ margin-left: -11px;
+ border-top-color: #999;
+ border-top-color: rgba(0, 0, 0, 0.25);
+ border-bottom-width: 0;
+}
+
+.popover.top > .arrow:after {
+ bottom: 1px;
+ margin-left: -10px;
+ content: " ";
+ border-top-color: #fff;
+ border-bottom-width: 0;
+}
+
+.popover.right > .arrow {
+ top: 50%;
+ left: -11px;
+ margin-top: -11px;
+ border-right-color: #999;
+ border-right-color: rgba(0, 0, 0, 0.25);
+ border-left-width: 0;
+}
+
+.popover.right > .arrow:after {
+ bottom: -10px;
+ left: 1px;
+ content: " ";
+ border-right-color: #fff;
+ border-left-width: 0;
+}
+
+.popover.bottom > .arrow {
+ top: -11px;
+ left: 50%;
+ margin-left: -11px;
+ border-top-width: 0;
+ border-bottom-color: #999;
+ border-bottom-color: rgba(0, 0, 0, 0.25);
+}
+
+.popover.bottom > .arrow:after {
+ top: 1px;
+ margin-left: -10px;
+ content: " ";
+ border-top-width: 0;
+ border-bottom-color: #fff;
+}
+
+.popover.left > .arrow {
+ top: 50%;
+ right: -11px;
+ margin-top: -11px;
+ border-right-width: 0;
+ border-left-color: #999;
+ border-left-color: rgba(0, 0, 0, 0.25);
+}
+
+.popover.left > .arrow:after {
+ right: 1px;
+ bottom: -10px;
+ content: " ";
+ border-right-width: 0;
+ border-left-color: #fff;
+}
+
+.carousel {
+ position: relative;
+}
+
+.carousel-inner {
+ position: relative;
+ width: 100%;
+ overflow: hidden;
+}
+
+.carousel-inner > .item {
+ position: relative;
+ display: none;
+ -webkit-transition: 0.6s ease-in-out left;
+ -o-transition: 0.6s ease-in-out left;
+ transition: 0.6s ease-in-out left;
+}
+
+.carousel-inner > .item > img,
+.carousel-inner > .item > a > img {
+ line-height: 1;
+}
+
+@media all and (transform-3d), (-webkit-transform-3d) {
+ .carousel-inner > .item {
+ -webkit-transition: -webkit-transform 0.6s ease-in-out;
+ -o-transition: -o-transform 0.6s ease-in-out;
+ transition: transform 0.6s ease-in-out;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-perspective: 1000;
+ perspective: 1000;
+ }
+
+ .carousel-inner > .item.next,
+.carousel-inner > .item.active.right {
+ left: 0;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ }
+
+ .carousel-inner > .item.prev,
+.carousel-inner > .item.active.left {
+ left: 0;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ }
+
+ .carousel-inner > .item.next.left,
+.carousel-inner > .item.prev.right,
+.carousel-inner > .item.active {
+ left: 0;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+.carousel-inner > .active,
+.carousel-inner > .next,
+.carousel-inner > .prev {
+ display: block;
+}
+
+.carousel-inner > .active {
+ left: 0;
+}
+
+.carousel-inner > .next,
+.carousel-inner > .prev {
+ position: absolute;
+ top: 0;
+ width: 100%;
+}
+
+.carousel-inner > .next {
+ left: 100%;
+}
+
+.carousel-inner > .prev {
+ left: -100%;
+}
+
+.carousel-inner > .next.left,
+.carousel-inner > .prev.right {
+ left: 0;
+}
+
+.carousel-inner > .active.left {
+ left: -100%;
+}
+
+.carousel-inner > .active.right {
+ left: 100%;
+}
+
+.carousel-control {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ width: 15%;
+ font-size: 20px;
+ color: #fff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+ filter: alpha(opacity=50);
+ opacity: 0.5;
+}
+
+.carousel-control.left {
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001)));
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#80000000", endColorstr="#00000000", GradientType=1);
+ background-repeat: repeat-x;
+}
+
+.carousel-control.right {
+ right: 0;
+ left: auto;
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5)));
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#00000000", endColorstr="#80000000", GradientType=1);
+ background-repeat: repeat-x;
+}
+
+.carousel-control:hover,
+.carousel-control:focus {
+ color: #fff;
+ text-decoration: none;
+ filter: alpha(opacity=90);
+ outline: 0;
+ opacity: 0.9;
+}
+
+.carousel-control .icon-prev,
+.carousel-control .icon-next,
+.carousel-control .glyphicon-chevron-left,
+.carousel-control .glyphicon-chevron-right {
+ position: absolute;
+ top: 50%;
+ z-index: 5;
+ display: inline-block;
+}
+
+.carousel-control .icon-prev,
+.carousel-control .glyphicon-chevron-left {
+ left: 50%;
+ margin-left: -10px;
+}
+
+.carousel-control .icon-next,
+.carousel-control .glyphicon-chevron-right {
+ right: 50%;
+ margin-right: -10px;
+}
+
+.carousel-control .icon-prev,
+.carousel-control .icon-next {
+ width: 20px;
+ height: 20px;
+ margin-top: -10px;
+ font-family: serif;
+ line-height: 1;
+}
+
+.carousel-control .icon-prev:before {
+ content: "‹";
+}
+
+.carousel-control .icon-next:before {
+ content: "›";
+}
+
+.carousel-indicators {
+ position: absolute;
+ bottom: 10px;
+ left: 50%;
+ z-index: 15;
+ width: 60%;
+ padding-left: 0;
+ margin-left: -30%;
+ text-align: center;
+ list-style: none;
+}
+
+.carousel-indicators li {
+ display: inline-block;
+ width: 10px;
+ height: 10px;
+ margin: 1px;
+ text-indent: -999px;
+ cursor: pointer;
+ background-color: #000 \9 ;
+ background-color: rgba(0, 0, 0, 0);
+ border: 1px solid #fff;
+ border-radius: 10px;
+}
+
+.carousel-indicators .active {
+ width: 12px;
+ height: 12px;
+ margin: 0;
+ background-color: #fff;
+}
+
+.carousel-caption {
+ position: absolute;
+ right: 15%;
+ bottom: 20px;
+ left: 15%;
+ z-index: 10;
+ padding-top: 20px;
+ padding-bottom: 20px;
+ color: #fff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+}
+
+.carousel-caption .btn {
+ text-shadow: none;
+}
+
+@media screen and (min-width: 768px) {
+ .carousel-control .glyphicon-chevron-left,
+.carousel-control .glyphicon-chevron-right,
+.carousel-control .icon-prev,
+.carousel-control .icon-next {
+ width: 30px;
+ height: 30px;
+ margin-top: -15px;
+ font-size: 30px;
+ }
+
+ .carousel-control .glyphicon-chevron-left,
+.carousel-control .icon-prev {
+ margin-left: -15px;
+ }
+
+ .carousel-control .glyphicon-chevron-right,
+.carousel-control .icon-next {
+ margin-right: -15px;
+ }
+
+ .carousel-caption {
+ right: 20%;
+ left: 20%;
+ padding-bottom: 30px;
+ }
+
+ .carousel-indicators {
+ bottom: 20px;
+ }
+}
+.clearfix:before,
+.clearfix:after,
+.dl-horizontal dd:before,
+.dl-horizontal dd:after,
+.container:before,
+.container:after,
+.container-fluid:before,
+.container-fluid:after,
+.row:before,
+.row:after,
+.form-horizontal .form-group:before,
+.form-horizontal .form-group:after,
+.btn-toolbar:before,
+.btn-toolbar:after,
+.btn-group-vertical > .btn-group:before,
+.btn-group-vertical > .btn-group:after,
+.nav:before,
+.nav:after,
+.navbar:before,
+.navbar:after,
+.navbar-header:before,
+.navbar-header:after,
+.navbar-collapse:before,
+.navbar-collapse:after,
+.pager:before,
+.pager:after,
+.panel-body:before,
+.panel-body:after,
+.modal-footer:before,
+.modal-footer:after {
+ display: table;
+ content: " ";
+}
+
+.clearfix:after,
+.dl-horizontal dd:after,
+.container:after,
+.container-fluid:after,
+.row:after,
+.form-horizontal .form-group:after,
+.btn-toolbar:after,
+.btn-group-vertical > .btn-group:after,
+.nav:after,
+.navbar:after,
+.navbar-header:after,
+.navbar-collapse:after,
+.pager:after,
+.panel-body:after,
+.modal-footer:after {
+ clear: both;
+}
+
+.center-block {
+ display: block;
+ margin-right: auto;
+ margin-left: auto;
+}
+
+.pull-right {
+ float: right !important;
+}
+
+.pull-left {
+ float: left !important;
+}
+
+.hide {
+ display: none !important;
+}
+
+.show {
+ display: block !important;
+}
+
+.invisible {
+ visibility: hidden;
+}
+
+.text-hide {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
+
+.hidden {
+ display: none !important;
+}
+
+.affix {
+ position: fixed;
+}
+
+@-ms-viewport {
+ width: device-width;
+}
+.visible-xs,
+.visible-sm,
+.visible-md,
+.visible-lg {
+ display: none !important;
+}
+
+.visible-xs-block,
+.visible-xs-inline,
+.visible-xs-inline-block,
+.visible-sm-block,
+.visible-sm-inline,
+.visible-sm-inline-block,
+.visible-md-block,
+.visible-md-inline,
+.visible-md-inline-block,
+.visible-lg-block,
+.visible-lg-inline,
+.visible-lg-inline-block {
+ display: none !important;
+}
+
+@media (max-width: 767px) {
+ .visible-xs {
+ display: block !important;
+ }
+
+ table.visible-xs {
+ display: table;
+ }
+
+ tr.visible-xs {
+ display: table-row !important;
+ }
+
+ th.visible-xs,
+td.visible-xs {
+ display: table-cell !important;
+ }
+}
+@media (max-width: 767px) {
+ .visible-xs-block {
+ display: block !important;
+ }
+}
+@media (max-width: 767px) {
+ .visible-xs-inline {
+ display: inline !important;
+ }
+}
+@media (max-width: 767px) {
+ .visible-xs-inline-block {
+ display: inline-block !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm {
+ display: block !important;
+ }
+
+ table.visible-sm {
+ display: table;
+ }
+
+ tr.visible-sm {
+ display: table-row !important;
+ }
+
+ th.visible-sm,
+td.visible-sm {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm-block {
+ display: block !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm-inline {
+ display: inline !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm-inline-block {
+ display: inline-block !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md {
+ display: block !important;
+ }
+
+ table.visible-md {
+ display: table;
+ }
+
+ tr.visible-md {
+ display: table-row !important;
+ }
+
+ th.visible-md,
+td.visible-md {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md-block {
+ display: block !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md-inline {
+ display: inline !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md-inline-block {
+ display: inline-block !important;
+ }
+}
+@media (min-width: 1200px) {
+ .visible-lg {
+ display: block !important;
+ }
+
+ table.visible-lg {
+ display: table;
+ }
+
+ tr.visible-lg {
+ display: table-row !important;
+ }
+
+ th.visible-lg,
+td.visible-lg {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 1200px) {
+ .visible-lg-block {
+ display: block !important;
+ }
+}
+@media (min-width: 1200px) {
+ .visible-lg-inline {
+ display: inline !important;
+ }
+}
+@media (min-width: 1200px) {
+ .visible-lg-inline-block {
+ display: inline-block !important;
+ }
+}
+@media (max-width: 767px) {
+ .hidden-xs {
+ display: none !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .hidden-sm {
+ display: none !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .hidden-md {
+ display: none !important;
+ }
+}
+@media (min-width: 1200px) {
+ .hidden-lg {
+ display: none !important;
+ }
+}
+.visible-print {
+ display: none !important;
+}
+
+@media print {
+ .visible-print {
+ display: block !important;
+ }
+
+ table.visible-print {
+ display: table;
+ }
+
+ tr.visible-print {
+ display: table-row !important;
+ }
+
+ th.visible-print,
+td.visible-print {
+ display: table-cell !important;
+ }
+}
+.visible-print-block {
+ display: none !important;
+}
+
+@media print {
+ .visible-print-block {
+ display: block !important;
+ }
+}
+.visible-print-inline {
+ display: none !important;
+}
+
+@media print {
+ .visible-print-inline {
+ display: inline !important;
+ }
+}
+.visible-print-inline-block {
+ display: none !important;
+}
+
+@media print {
+ .visible-print-inline-block {
+ display: inline-block !important;
+ }
+}
+@media print {
+ .hidden-print {
+ display: none !important;
+ }
+}
+[dir=rtl] .flip.text-left {
+ text-align: right;
+}
+[dir=rtl] .flip.text-right {
+ text-align: left;
+}
+[dir=rtl] .list-unstyled {
+ padding-right: 0;
+ padding-left: initial;
+}
+[dir=rtl] .list-inline {
+ padding-right: 0;
+ padding-left: initial;
+ margin-right: -5px;
+ margin-left: 0;
+}
+[dir=rtl] dd {
+ margin-right: 0;
+ margin-left: initial;
+}
+@media (min-width: 768px) {
+ [dir=rtl] .dl-horizontal dt {
+ float: right;
+ clear: right;
+ text-align: left;
+ }
+ [dir=rtl] .dl-horizontal dd {
+ margin-right: 180px;
+ margin-left: 0;
+ }
+}
+[dir=rtl] blockquote {
+ border-right: 5px solid #eeeeee;
+ border-left: 0;
+}
+[dir=rtl] .blockquote-reverse,
+[dir=rtl] blockquote.pull-left {
+ padding-left: 15px;
+ padding-right: 0;
+ border-left: 5px solid #eeeeee;
+ border-right: 0;
+ text-align: left;
+}
+[dir=rtl] .col-xs-1,
+[dir=rtl] .col-sm-1,
+[dir=rtl] .col-md-1,
+[dir=rtl] .col-lg-1,
+[dir=rtl] .col-xs-2,
+[dir=rtl] .col-sm-2,
+[dir=rtl] .col-md-2,
+[dir=rtl] .col-lg-2,
+[dir=rtl] .col-xs-3,
+[dir=rtl] .col-sm-3,
+[dir=rtl] .col-md-3,
+[dir=rtl] .col-lg-3,
+[dir=rtl] .col-xs-4,
+[dir=rtl] .col-sm-4,
+[dir=rtl] .col-md-4,
+[dir=rtl] .col-lg-4,
+[dir=rtl] .col-xs-5,
+[dir=rtl] .col-sm-5,
+[dir=rtl] .col-md-5,
+[dir=rtl] .col-lg-5,
+[dir=rtl] .col-xs-6,
+[dir=rtl] .col-sm-6,
+[dir=rtl] .col-md-6,
+[dir=rtl] .col-lg-6,
+[dir=rtl] .col-xs-7,
+[dir=rtl] .col-sm-7,
+[dir=rtl] .col-md-7,
+[dir=rtl] .col-lg-7,
+[dir=rtl] .col-xs-8,
+[dir=rtl] .col-sm-8,
+[dir=rtl] .col-md-8,
+[dir=rtl] .col-lg-8,
+[dir=rtl] .col-xs-9,
+[dir=rtl] .col-sm-9,
+[dir=rtl] .col-md-9,
+[dir=rtl] .col-lg-9,
+[dir=rtl] .col-xs-10,
+[dir=rtl] .col-sm-10,
+[dir=rtl] .col-md-10,
+[dir=rtl] .col-lg-10,
+[dir=rtl] .col-xs-11,
+[dir=rtl] .col-sm-11,
+[dir=rtl] .col-md-11,
+[dir=rtl] .col-lg-11,
+[dir=rtl] .col-xs-12,
+[dir=rtl] .col-sm-12,
+[dir=rtl] .col-md-12,
+[dir=rtl] .col-lg-12 {
+ position: relative;
+ min-height: 1px;
+ padding-left: 15px;
+ padding-right: 15px;
+}
+[dir=rtl] .col-xs-1,
+[dir=rtl] .col-xs-2,
+[dir=rtl] .col-xs-3,
+[dir=rtl] .col-xs-4,
+[dir=rtl] .col-xs-5,
+[dir=rtl] .col-xs-6,
+[dir=rtl] .col-xs-7,
+[dir=rtl] .col-xs-8,
+[dir=rtl] .col-xs-9,
+[dir=rtl] .col-xs-10,
+[dir=rtl] .col-xs-11,
+[dir=rtl] .col-xs-12 {
+ float: right;
+}
+[dir=rtl] .col-xs-12 {
+ width: 100%;
+}
+[dir=rtl] .col-xs-11 {
+ width: 91.66666667%;
+}
+[dir=rtl] .col-xs-10 {
+ width: 83.33333333%;
+}
+[dir=rtl] .col-xs-9 {
+ width: 75%;
+}
+[dir=rtl] .col-xs-8 {
+ width: 66.66666667%;
+}
+[dir=rtl] .col-xs-7 {
+ width: 58.33333333%;
+}
+[dir=rtl] .col-xs-6 {
+ width: 50%;
+}
+[dir=rtl] .col-xs-5 {
+ width: 41.66666667%;
+}
+[dir=rtl] .col-xs-4 {
+ width: 33.33333333%;
+}
+[dir=rtl] .col-xs-3 {
+ width: 25%;
+}
+[dir=rtl] .col-xs-2 {
+ width: 16.66666667%;
+}
+[dir=rtl] .col-xs-1 {
+ width: 8.33333333%;
+}
+[dir=rtl] .col-xs-pull-12 {
+ left: 100%;
+ right: auto;
+}
+[dir=rtl] .col-xs-pull-11 {
+ left: 91.66666667%;
+ right: auto;
+}
+[dir=rtl] .col-xs-pull-10 {
+ left: 83.33333333%;
+ right: auto;
+}
+[dir=rtl] .col-xs-pull-9 {
+ left: 75%;
+ right: auto;
+}
+[dir=rtl] .col-xs-pull-8 {
+ left: 66.66666667%;
+ right: auto;
+}
+[dir=rtl] .col-xs-pull-7 {
+ left: 58.33333333%;
+ right: auto;
+}
+[dir=rtl] .col-xs-pull-6 {
+ left: 50%;
+ right: auto;
+}
+[dir=rtl] .col-xs-pull-5 {
+ left: 41.66666667%;
+ right: auto;
+}
+[dir=rtl] .col-xs-pull-4 {
+ left: 33.33333333%;
+ right: auto;
+}
+[dir=rtl] .col-xs-pull-3 {
+ left: 25%;
+ right: auto;
+}
+[dir=rtl] .col-xs-pull-2 {
+ left: 16.66666667%;
+ right: auto;
+}
+[dir=rtl] .col-xs-pull-1 {
+ left: 8.33333333%;
+ right: auto;
+}
+[dir=rtl] .col-xs-pull-0 {
+ left: auto;
+ right: auto;
+}
+[dir=rtl] .col-xs-push-12 {
+ right: 100%;
+ left: 0;
+}
+[dir=rtl] .col-xs-push-11 {
+ right: 91.66666667%;
+ left: 0;
+}
+[dir=rtl] .col-xs-push-10 {
+ right: 83.33333333%;
+ left: 0;
+}
+[dir=rtl] .col-xs-push-9 {
+ right: 75%;
+ left: 0;
+}
+[dir=rtl] .col-xs-push-8 {
+ right: 66.66666667%;
+ left: 0;
+}
+[dir=rtl] .col-xs-push-7 {
+ right: 58.33333333%;
+ left: 0;
+}
+[dir=rtl] .col-xs-push-6 {
+ right: 50%;
+ left: 0;
+}
+[dir=rtl] .col-xs-push-5 {
+ right: 41.66666667%;
+ left: 0;
+}
+[dir=rtl] .col-xs-push-4 {
+ right: 33.33333333%;
+ left: 0;
+}
+[dir=rtl] .col-xs-push-3 {
+ right: 25%;
+ left: 0;
+}
+[dir=rtl] .col-xs-push-2 {
+ right: 16.66666667%;
+ left: 0;
+}
+[dir=rtl] .col-xs-push-1 {
+ right: 8.33333333%;
+ left: 0;
+}
+[dir=rtl] .col-xs-push-0 {
+ right: auto;
+ left: 0;
+}
+[dir=rtl] .col-xs-offset-12 {
+ margin-right: 100%;
+ margin-left: 0;
+}
+[dir=rtl] .col-xs-offset-11 {
+ margin-right: 91.66666667%;
+ margin-left: 0;
+}
+[dir=rtl] .col-xs-offset-10 {
+ margin-right: 83.33333333%;
+ margin-left: 0;
+}
+[dir=rtl] .col-xs-offset-9 {
+ margin-right: 75%;
+ margin-left: 0;
+}
+[dir=rtl] .col-xs-offset-8 {
+ margin-right: 66.66666667%;
+ margin-left: 0;
+}
+[dir=rtl] .col-xs-offset-7 {
+ margin-right: 58.33333333%;
+ margin-left: 0;
+}
+[dir=rtl] .col-xs-offset-6 {
+ margin-right: 50%;
+ margin-left: 0;
+}
+[dir=rtl] .col-xs-offset-5 {
+ margin-right: 41.66666667%;
+ margin-left: 0;
+}
+[dir=rtl] .col-xs-offset-4 {
+ margin-right: 33.33333333%;
+ margin-left: 0;
+}
+[dir=rtl] .col-xs-offset-3 {
+ margin-right: 25%;
+ margin-left: 0;
+}
+[dir=rtl] .col-xs-offset-2 {
+ margin-right: 16.66666667%;
+ margin-left: 0;
+}
+[dir=rtl] .col-xs-offset-1 {
+ margin-right: 8.33333333%;
+ margin-left: 0;
+}
+[dir=rtl] .col-xs-offset-0 {
+ margin-right: 0%;
+ margin-left: 0;
+}
+@media (min-width: 768px) {
+ [dir=rtl] .col-sm-1,
+[dir=rtl] .col-sm-2,
+[dir=rtl] .col-sm-3,
+[dir=rtl] .col-sm-4,
+[dir=rtl] .col-sm-5,
+[dir=rtl] .col-sm-6,
+[dir=rtl] .col-sm-7,
+[dir=rtl] .col-sm-8,
+[dir=rtl] .col-sm-9,
+[dir=rtl] .col-sm-10,
+[dir=rtl] .col-sm-11,
+[dir=rtl] .col-sm-12 {
+ float: right;
+ }
+ [dir=rtl] .col-sm-12 {
+ width: 100%;
+ }
+ [dir=rtl] .col-sm-11 {
+ width: 91.66666667%;
+ }
+ [dir=rtl] .col-sm-10 {
+ width: 83.33333333%;
+ }
+ [dir=rtl] .col-sm-9 {
+ width: 75%;
+ }
+ [dir=rtl] .col-sm-8 {
+ width: 66.66666667%;
+ }
+ [dir=rtl] .col-sm-7 {
+ width: 58.33333333%;
+ }
+ [dir=rtl] .col-sm-6 {
+ width: 50%;
+ }
+ [dir=rtl] .col-sm-5 {
+ width: 41.66666667%;
+ }
+ [dir=rtl] .col-sm-4 {
+ width: 33.33333333%;
+ }
+ [dir=rtl] .col-sm-3 {
+ width: 25%;
+ }
+ [dir=rtl] .col-sm-2 {
+ width: 16.66666667%;
+ }
+ [dir=rtl] .col-sm-1 {
+ width: 8.33333333%;
+ }
+ [dir=rtl] .col-sm-pull-12 {
+ left: 100%;
+ right: auto;
+ }
+ [dir=rtl] .col-sm-pull-11 {
+ left: 91.66666667%;
+ right: auto;
+ }
+ [dir=rtl] .col-sm-pull-10 {
+ left: 83.33333333%;
+ right: auto;
+ }
+ [dir=rtl] .col-sm-pull-9 {
+ left: 75%;
+ right: auto;
+ }
+ [dir=rtl] .col-sm-pull-8 {
+ left: 66.66666667%;
+ right: auto;
+ }
+ [dir=rtl] .col-sm-pull-7 {
+ left: 58.33333333%;
+ right: auto;
+ }
+ [dir=rtl] .col-sm-pull-6 {
+ left: 50%;
+ right: auto;
+ }
+ [dir=rtl] .col-sm-pull-5 {
+ left: 41.66666667%;
+ right: auto;
+ }
+ [dir=rtl] .col-sm-pull-4 {
+ left: 33.33333333%;
+ right: auto;
+ }
+ [dir=rtl] .col-sm-pull-3 {
+ left: 25%;
+ right: auto;
+ }
+ [dir=rtl] .col-sm-pull-2 {
+ left: 16.66666667%;
+ right: auto;
+ }
+ [dir=rtl] .col-sm-pull-1 {
+ left: 8.33333333%;
+ right: auto;
+ }
+ [dir=rtl] .col-sm-pull-0 {
+ left: auto;
+ right: auto;
+ }
+ [dir=rtl] .col-sm-push-12 {
+ right: 100%;
+ left: 0;
+ }
+ [dir=rtl] .col-sm-push-11 {
+ right: 91.66666667%;
+ left: 0;
+ }
+ [dir=rtl] .col-sm-push-10 {
+ right: 83.33333333%;
+ left: 0;
+ }
+ [dir=rtl] .col-sm-push-9 {
+ right: 75%;
+ left: 0;
+ }
+ [dir=rtl] .col-sm-push-8 {
+ right: 66.66666667%;
+ left: 0;
+ }
+ [dir=rtl] .col-sm-push-7 {
+ right: 58.33333333%;
+ left: 0;
+ }
+ [dir=rtl] .col-sm-push-6 {
+ right: 50%;
+ left: 0;
+ }
+ [dir=rtl] .col-sm-push-5 {
+ right: 41.66666667%;
+ left: 0;
+ }
+ [dir=rtl] .col-sm-push-4 {
+ right: 33.33333333%;
+ left: 0;
+ }
+ [dir=rtl] .col-sm-push-3 {
+ right: 25%;
+ left: 0;
+ }
+ [dir=rtl] .col-sm-push-2 {
+ right: 16.66666667%;
+ left: 0;
+ }
+ [dir=rtl] .col-sm-push-1 {
+ right: 8.33333333%;
+ left: 0;
+ }
+ [dir=rtl] .col-sm-push-0 {
+ right: auto;
+ left: 0;
+ }
+ [dir=rtl] .col-sm-offset-12 {
+ margin-right: 100%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-sm-offset-11 {
+ margin-right: 91.66666667%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-sm-offset-10 {
+ margin-right: 83.33333333%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-sm-offset-9 {
+ margin-right: 75%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-sm-offset-8 {
+ margin-right: 66.66666667%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-sm-offset-7 {
+ margin-right: 58.33333333%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-sm-offset-6 {
+ margin-right: 50%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-sm-offset-5 {
+ margin-right: 41.66666667%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-sm-offset-4 {
+ margin-right: 33.33333333%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-sm-offset-3 {
+ margin-right: 25%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-sm-offset-2 {
+ margin-right: 16.66666667%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-sm-offset-1 {
+ margin-right: 8.33333333%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-sm-offset-0 {
+ margin-right: 0%;
+ margin-left: 0;
+ }
+}
+@media (min-width: 992px) {
+ [dir=rtl] .col-md-1,
+[dir=rtl] .col-md-2,
+[dir=rtl] .col-md-3,
+[dir=rtl] .col-md-4,
+[dir=rtl] .col-md-5,
+[dir=rtl] .col-md-6,
+[dir=rtl] .col-md-7,
+[dir=rtl] .col-md-8,
+[dir=rtl] .col-md-9,
+[dir=rtl] .col-md-10,
+[dir=rtl] .col-md-11,
+[dir=rtl] .col-md-12 {
+ float: right;
+ }
+ [dir=rtl] .col-md-12 {
+ width: 100%;
+ }
+ [dir=rtl] .col-md-11 {
+ width: 91.66666667%;
+ }
+ [dir=rtl] .col-md-10 {
+ width: 83.33333333%;
+ }
+ [dir=rtl] .col-md-9 {
+ width: 75%;
+ }
+ [dir=rtl] .col-md-8 {
+ width: 66.66666667%;
+ }
+ [dir=rtl] .col-md-7 {
+ width: 58.33333333%;
+ }
+ [dir=rtl] .col-md-6 {
+ width: 50%;
+ }
+ [dir=rtl] .col-md-5 {
+ width: 41.66666667%;
+ }
+ [dir=rtl] .col-md-4 {
+ width: 33.33333333%;
+ }
+ [dir=rtl] .col-md-3 {
+ width: 25%;
+ }
+ [dir=rtl] .col-md-2 {
+ width: 16.66666667%;
+ }
+ [dir=rtl] .col-md-1 {
+ width: 8.33333333%;
+ }
+ [dir=rtl] .col-md-pull-12 {
+ left: 100%;
+ right: auto;
+ }
+ [dir=rtl] .col-md-pull-11 {
+ left: 91.66666667%;
+ right: auto;
+ }
+ [dir=rtl] .col-md-pull-10 {
+ left: 83.33333333%;
+ right: auto;
+ }
+ [dir=rtl] .col-md-pull-9 {
+ left: 75%;
+ right: auto;
+ }
+ [dir=rtl] .col-md-pull-8 {
+ left: 66.66666667%;
+ right: auto;
+ }
+ [dir=rtl] .col-md-pull-7 {
+ left: 58.33333333%;
+ right: auto;
+ }
+ [dir=rtl] .col-md-pull-6 {
+ left: 50%;
+ right: auto;
+ }
+ [dir=rtl] .col-md-pull-5 {
+ left: 41.66666667%;
+ right: auto;
+ }
+ [dir=rtl] .col-md-pull-4 {
+ left: 33.33333333%;
+ right: auto;
+ }
+ [dir=rtl] .col-md-pull-3 {
+ left: 25%;
+ right: auto;
+ }
+ [dir=rtl] .col-md-pull-2 {
+ left: 16.66666667%;
+ right: auto;
+ }
+ [dir=rtl] .col-md-pull-1 {
+ left: 8.33333333%;
+ right: auto;
+ }
+ [dir=rtl] .col-md-pull-0 {
+ left: auto;
+ right: auto;
+ }
+ [dir=rtl] .col-md-push-12 {
+ right: 100%;
+ left: 0;
+ }
+ [dir=rtl] .col-md-push-11 {
+ right: 91.66666667%;
+ left: 0;
+ }
+ [dir=rtl] .col-md-push-10 {
+ right: 83.33333333%;
+ left: 0;
+ }
+ [dir=rtl] .col-md-push-9 {
+ right: 75%;
+ left: 0;
+ }
+ [dir=rtl] .col-md-push-8 {
+ right: 66.66666667%;
+ left: 0;
+ }
+ [dir=rtl] .col-md-push-7 {
+ right: 58.33333333%;
+ left: 0;
+ }
+ [dir=rtl] .col-md-push-6 {
+ right: 50%;
+ left: 0;
+ }
+ [dir=rtl] .col-md-push-5 {
+ right: 41.66666667%;
+ left: 0;
+ }
+ [dir=rtl] .col-md-push-4 {
+ right: 33.33333333%;
+ left: 0;
+ }
+ [dir=rtl] .col-md-push-3 {
+ right: 25%;
+ left: 0;
+ }
+ [dir=rtl] .col-md-push-2 {
+ right: 16.66666667%;
+ left: 0;
+ }
+ [dir=rtl] .col-md-push-1 {
+ right: 8.33333333%;
+ left: 0;
+ }
+ [dir=rtl] .col-md-push-0 {
+ right: auto;
+ left: 0;
+ }
+ [dir=rtl] .col-md-offset-12 {
+ margin-right: 100%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-md-offset-11 {
+ margin-right: 91.66666667%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-md-offset-10 {
+ margin-right: 83.33333333%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-md-offset-9 {
+ margin-right: 75%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-md-offset-8 {
+ margin-right: 66.66666667%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-md-offset-7 {
+ margin-right: 58.33333333%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-md-offset-6 {
+ margin-right: 50%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-md-offset-5 {
+ margin-right: 41.66666667%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-md-offset-4 {
+ margin-right: 33.33333333%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-md-offset-3 {
+ margin-right: 25%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-md-offset-2 {
+ margin-right: 16.66666667%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-md-offset-1 {
+ margin-right: 8.33333333%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-md-offset-0 {
+ margin-right: 0%;
+ margin-left: 0;
+ }
+}
+@media (min-width: 1200px) {
+ [dir=rtl] .col-lg-1,
+[dir=rtl] .col-lg-2,
+[dir=rtl] .col-lg-3,
+[dir=rtl] .col-lg-4,
+[dir=rtl] .col-lg-5,
+[dir=rtl] .col-lg-6,
+[dir=rtl] .col-lg-7,
+[dir=rtl] .col-lg-8,
+[dir=rtl] .col-lg-9,
+[dir=rtl] .col-lg-10,
+[dir=rtl] .col-lg-11,
+[dir=rtl] .col-lg-12 {
+ float: right;
+ }
+ [dir=rtl] .col-lg-12 {
+ width: 100%;
+ }
+ [dir=rtl] .col-lg-11 {
+ width: 91.66666667%;
+ }
+ [dir=rtl] .col-lg-10 {
+ width: 83.33333333%;
+ }
+ [dir=rtl] .col-lg-9 {
+ width: 75%;
+ }
+ [dir=rtl] .col-lg-8 {
+ width: 66.66666667%;
+ }
+ [dir=rtl] .col-lg-7 {
+ width: 58.33333333%;
+ }
+ [dir=rtl] .col-lg-6 {
+ width: 50%;
+ }
+ [dir=rtl] .col-lg-5 {
+ width: 41.66666667%;
+ }
+ [dir=rtl] .col-lg-4 {
+ width: 33.33333333%;
+ }
+ [dir=rtl] .col-lg-3 {
+ width: 25%;
+ }
+ [dir=rtl] .col-lg-2 {
+ width: 16.66666667%;
+ }
+ [dir=rtl] .col-lg-1 {
+ width: 8.33333333%;
+ }
+ [dir=rtl] .col-lg-pull-12 {
+ left: 100%;
+ right: auto;
+ }
+ [dir=rtl] .col-lg-pull-11 {
+ left: 91.66666667%;
+ right: auto;
+ }
+ [dir=rtl] .col-lg-pull-10 {
+ left: 83.33333333%;
+ right: auto;
+ }
+ [dir=rtl] .col-lg-pull-9 {
+ left: 75%;
+ right: auto;
+ }
+ [dir=rtl] .col-lg-pull-8 {
+ left: 66.66666667%;
+ right: auto;
+ }
+ [dir=rtl] .col-lg-pull-7 {
+ left: 58.33333333%;
+ right: auto;
+ }
+ [dir=rtl] .col-lg-pull-6 {
+ left: 50%;
+ right: auto;
+ }
+ [dir=rtl] .col-lg-pull-5 {
+ left: 41.66666667%;
+ right: auto;
+ }
+ [dir=rtl] .col-lg-pull-4 {
+ left: 33.33333333%;
+ right: auto;
+ }
+ [dir=rtl] .col-lg-pull-3 {
+ left: 25%;
+ right: auto;
+ }
+ [dir=rtl] .col-lg-pull-2 {
+ left: 16.66666667%;
+ right: auto;
+ }
+ [dir=rtl] .col-lg-pull-1 {
+ left: 8.33333333%;
+ right: auto;
+ }
+ [dir=rtl] .col-lg-pull-0 {
+ left: auto;
+ right: auto;
+ }
+ [dir=rtl] .col-lg-push-12 {
+ right: 100%;
+ left: 0;
+ }
+ [dir=rtl] .col-lg-push-11 {
+ right: 91.66666667%;
+ left: 0;
+ }
+ [dir=rtl] .col-lg-push-10 {
+ right: 83.33333333%;
+ left: 0;
+ }
+ [dir=rtl] .col-lg-push-9 {
+ right: 75%;
+ left: 0;
+ }
+ [dir=rtl] .col-lg-push-8 {
+ right: 66.66666667%;
+ left: 0;
+ }
+ [dir=rtl] .col-lg-push-7 {
+ right: 58.33333333%;
+ left: 0;
+ }
+ [dir=rtl] .col-lg-push-6 {
+ right: 50%;
+ left: 0;
+ }
+ [dir=rtl] .col-lg-push-5 {
+ right: 41.66666667%;
+ left: 0;
+ }
+ [dir=rtl] .col-lg-push-4 {
+ right: 33.33333333%;
+ left: 0;
+ }
+ [dir=rtl] .col-lg-push-3 {
+ right: 25%;
+ left: 0;
+ }
+ [dir=rtl] .col-lg-push-2 {
+ right: 16.66666667%;
+ left: 0;
+ }
+ [dir=rtl] .col-lg-push-1 {
+ right: 8.33333333%;
+ left: 0;
+ }
+ [dir=rtl] .col-lg-push-0 {
+ right: auto;
+ left: 0;
+ }
+ [dir=rtl] .col-lg-offset-12 {
+ margin-right: 100%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-lg-offset-11 {
+ margin-right: 91.66666667%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-lg-offset-10 {
+ margin-right: 83.33333333%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-lg-offset-9 {
+ margin-right: 75%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-lg-offset-8 {
+ margin-right: 66.66666667%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-lg-offset-7 {
+ margin-right: 58.33333333%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-lg-offset-6 {
+ margin-right: 50%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-lg-offset-5 {
+ margin-right: 41.66666667%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-lg-offset-4 {
+ margin-right: 33.33333333%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-lg-offset-3 {
+ margin-right: 25%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-lg-offset-2 {
+ margin-right: 16.66666667%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-lg-offset-1 {
+ margin-right: 8.33333333%;
+ margin-left: 0;
+ }
+ [dir=rtl] .col-lg-offset-0 {
+ margin-right: 0%;
+ margin-left: 0;
+ }
+}
+[dir=rtl] caption {
+ text-align: right;
+}
+[dir=rtl] th:not(.mx-left-aligned) {
+ text-align: right;
+}
+@media screen and (max-width: 767px) {
+ [dir=rtl] .table-responsive > .table-bordered {
+ border: 0;
+ }
+ [dir=rtl] .table-responsive > .table-bordered > thead > tr > th:first-child,
+[dir=rtl] .table-responsive > .table-bordered > tbody > tr > th:first-child,
+[dir=rtl] .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+[dir=rtl] .table-responsive > .table-bordered > thead > tr > td:first-child,
+[dir=rtl] .table-responsive > .table-bordered > tbody > tr > td:first-child,
+[dir=rtl] .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-right: 0;
+ border-left: initial;
+ }
+ [dir=rtl] .table-responsive > .table-bordered > thead > tr > th:last-child,
+[dir=rtl] .table-responsive > .table-bordered > tbody > tr > th:last-child,
+[dir=rtl] .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+[dir=rtl] .table-responsive > .table-bordered > thead > tr > td:last-child,
+[dir=rtl] .table-responsive > .table-bordered > tbody > tr > td:last-child,
+[dir=rtl] .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-left: 0;
+ border-right: initial;
+ }
+}
+[dir=rtl] .radio label,
+[dir=rtl] .checkbox label {
+ padding-right: 20px;
+ padding-left: initial;
+}
+[dir=rtl] .radio input[type=radio],
+[dir=rtl] .radio-inline input[type=radio],
+[dir=rtl] .checkbox input[type=checkbox],
+[dir=rtl] .checkbox-inline input[type=checkbox] {
+ margin-right: -20px;
+ margin-left: auto;
+}
+[dir=rtl] .radio-inline,
+[dir=rtl] .checkbox-inline {
+ padding-right: 20px;
+ padding-left: 0;
+}
+[dir=rtl] .radio-inline + .radio-inline,
+[dir=rtl] .checkbox-inline + .checkbox-inline {
+ margin-right: 10px;
+ margin-left: 0;
+}
+[dir=rtl] .has-feedback .form-control {
+ padding-left: 42.5px;
+ padding-right: 12px;
+}
+[dir=rtl] .form-control-feedback {
+ left: 0;
+ right: auto;
+}
+@media (min-width: 768px) {
+ [dir=rtl] .form-inline label {
+ padding-right: 0;
+ padding-left: initial;
+ }
+ [dir=rtl] .form-inline .radio input[type=radio],
+[dir=rtl] .form-inline .checkbox input[type=checkbox] {
+ margin-right: 0;
+ margin-left: auto;
+ }
+}
+@media (min-width: 768px) {
+ [dir=rtl] .form-horizontal .control-label {
+ text-align: left;
+ }
+}
+[dir=rtl] .form-horizontal .has-feedback .form-control-feedback {
+ left: 15px;
+ right: auto;
+}
+[dir=rtl] .caret {
+ margin-right: 2px;
+ margin-left: 0;
+}
+[dir=rtl] .dropdown-menu {
+ right: 0;
+ left: auto;
+ float: left;
+ text-align: right;
+}
+[dir=rtl] .dropdown-menu.pull-right {
+ left: 0;
+ right: auto;
+ float: right;
+}
+[dir=rtl] .dropdown-menu-right {
+ left: auto;
+ right: 0;
+}
+[dir=rtl] .dropdown-menu-left {
+ left: 0;
+ right: auto;
+}
+@media (min-width: 768px) {
+ [dir=rtl] .navbar-right .dropdown-menu {
+ left: auto;
+ right: 0;
+ }
+ [dir=rtl] .navbar-right .dropdown-menu-left {
+ left: 0;
+ right: auto;
+ }
+}
+[dir=rtl] .btn-group > .btn,
+[dir=rtl] .btn-group-vertical > .btn {
+ float: right;
+}
+[dir=rtl] .btn-group .btn + .btn,
+[dir=rtl] .btn-group .btn + .btn-group,
+[dir=rtl] .btn-group .btn-group + .btn,
+[dir=rtl] .btn-group .btn-group + .btn-group {
+ margin-right: -1px;
+ margin-left: 0px;
+}
+[dir=rtl] .btn-toolbar {
+ margin-right: -5px;
+ margin-left: 0px;
+}
+[dir=rtl] .btn-toolbar .btn-group,
+[dir=rtl] .btn-toolbar .input-group {
+ float: right;
+}
+[dir=rtl] .btn-toolbar > .btn,
+[dir=rtl] .btn-toolbar > .btn-group,
+[dir=rtl] .btn-toolbar > .input-group {
+ margin-right: 5px;
+ margin-left: 0px;
+}
+[dir=rtl] .btn-group > .btn:first-child {
+ margin-right: 0;
+}
+[dir=rtl] .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 4px;
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+[dir=rtl] .btn-group > .btn:last-child:not(:first-child),
+[dir=rtl] .btn-group > .dropdown-toggle:not(:first-child) {
+ border-top-left-radius: 4px;
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+[dir=rtl] .btn-group > .btn-group {
+ float: right;
+}
+[dir=rtl] .btn-group.btn-group-justified > .btn,
+[dir=rtl] .btn-group.btn-group-justified > .btn-group {
+ float: none;
+}
+[dir=rtl] .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0;
+}
+[dir=rtl] .btn-group > .btn-group:first-child > .btn:last-child,
+[dir=rtl] .btn-group > .btn-group:first-child > .dropdown-toggle {
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 4px;
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+[dir=rtl] .btn-group > .btn-group:last-child > .btn:first-child {
+ border-top-left-radius: 4px;
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+[dir=rtl] .btn .caret {
+ margin-right: 0;
+}
+[dir=rtl] .btn-group-vertical > .btn + .btn,
+[dir=rtl] .btn-group-vertical > .btn + .btn-group,
+[dir=rtl] .btn-group-vertical > .btn-group + .btn,
+[dir=rtl] .btn-group-vertical > .btn-group + .btn-group {
+ margin-top: -1px;
+ margin-right: 0;
+}
+[dir=rtl] .input-group .form-control {
+ float: right;
+}
+[dir=rtl] .input-group .form-control:first-child,
+[dir=rtl] .input-group-addon:first-child,
+[dir=rtl] .input-group-btn:first-child > .btn,
+[dir=rtl] .input-group-btn:first-child > .btn-group > .btn,
+[dir=rtl] .input-group-btn:first-child > .dropdown-toggle,
+[dir=rtl] .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
+[dir=rtl] .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
+ border-bottom-right-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+[dir=rtl] .input-group-addon:first-child {
+ border-left: 0px;
+ border-right: 1px solid;
+}
+[dir=rtl] .input-group .form-control:last-child,
+[dir=rtl] .input-group-addon:last-child,
+[dir=rtl] .input-group-btn:last-child > .btn,
+[dir=rtl] .input-group-btn:last-child > .btn-group > .btn,
+[dir=rtl] .input-group-btn:last-child > .dropdown-toggle,
+[dir=rtl] .input-group-btn:first-child > .btn:not(:first-child),
+[dir=rtl] .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
+ border-bottom-left-radius: 4px;
+ border-top-left-radius: 4px;
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+[dir=rtl] .input-group-addon:last-child {
+ border-left-width: 1px;
+ border-left-style: solid;
+ border-right: 0px;
+}
+[dir=rtl] .input-group-btn > .btn + .btn {
+ margin-right: -1px;
+ margin-left: auto;
+}
+[dir=rtl] .input-group-btn:first-child > .btn,
+[dir=rtl] .input-group-btn:first-child > .btn-group {
+ margin-left: -1px;
+ margin-right: auto;
+}
+[dir=rtl] .input-group-btn:last-child > .btn,
+[dir=rtl] .input-group-btn:last-child > .btn-group {
+ margin-right: -1px;
+ margin-left: auto;
+}
+[dir=rtl] .nav {
+ padding-right: 0;
+ padding-left: initial;
+}
+[dir=rtl] .nav-tabs > li {
+ float: right;
+}
+[dir=rtl] .nav-tabs > li > a {
+ margin-left: auto;
+ margin-right: -2px;
+ border-radius: 4px 4px 0 0;
+}
+[dir=rtl] .nav-pills > li {
+ float: right;
+}
+[dir=rtl] .nav-pills > li > a {
+ border-radius: 4px;
+}
+[dir=rtl] .nav-pills > li + li {
+ margin-right: 2px;
+ margin-left: auto;
+}
+[dir=rtl] .nav-stacked > li {
+ float: none;
+}
+[dir=rtl] .nav-stacked > li + li {
+ margin-right: 0;
+ margin-left: auto;
+}
+[dir=rtl] .nav-justified > .dropdown .dropdown-menu {
+ right: auto;
+}
+[dir=rtl] .nav-tabs-justified > li > a {
+ margin-left: 0;
+ margin-right: auto;
+}
+@media (min-width: 768px) {
+ [dir=rtl] .nav-tabs-justified > li > a {
+ border-radius: 4px 4px 0 0;
+ }
+}
+@media (min-width: 768px) {
+ [dir=rtl] .navbar-header {
+ float: right;
+ }
+}
+[dir=rtl] .navbar-collapse {
+ padding-right: 15px;
+ padding-left: 15px;
+}
+[dir=rtl] .navbar-brand {
+ float: right;
+}
+@media (min-width: 768px) {
+ [dir=rtl] .navbar > .container .navbar-brand,
+[dir=rtl] .navbar > .container-fluid .navbar-brand {
+ margin-right: -15px;
+ margin-left: auto;
+ }
+}
+[dir=rtl] .navbar-toggle {
+ float: left;
+ margin-left: 15px;
+ margin-right: auto;
+}
+@media (max-width: 767px) {
+ [dir=rtl] .navbar-nav .open .dropdown-menu > li > a,
+[dir=rtl] .navbar-nav .open .dropdown-menu .dropdown-header {
+ padding: 5px 25px 5px 15px;
+ }
+}
+@media (min-width: 768px) {
+ [dir=rtl] .navbar-nav {
+ float: right;
+ }
+ [dir=rtl] .navbar-nav > li {
+ float: right;
+ }
+}
+@media (min-width: 768px) {
+ [dir=rtl] .navbar-left.flip {
+ float: right !important;
+ }
+ [dir=rtl] .navbar-right:last-child {
+ margin-left: -15px;
+ margin-right: auto;
+ }
+ [dir=rtl] .navbar-right.flip {
+ float: left !important;
+ margin-left: -15px;
+ margin-right: auto;
+ }
+ [dir=rtl] .navbar-right .dropdown-menu {
+ left: 0;
+ right: auto;
+ }
+}
+@media (min-width: 768px) {
+ [dir=rtl] .navbar-text {
+ float: right;
+ }
+ [dir=rtl] .navbar-text.navbar-right:last-child {
+ margin-left: 0;
+ margin-right: auto;
+ }
+}
+[dir=rtl] .pagination {
+ padding-right: 0;
+}
+[dir=rtl] .pagination > li > a,
+[dir=rtl] .pagination > li > span {
+ float: right;
+ margin-right: -1px;
+ margin-left: 0px;
+}
+[dir=rtl] .pagination > li:first-child > a,
+[dir=rtl] .pagination > li:first-child > span {
+ margin-left: 0;
+ border-bottom-right-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+[dir=rtl] .pagination > li:last-child > a,
+[dir=rtl] .pagination > li:last-child > span {
+ margin-right: -1px;
+ border-bottom-left-radius: 4px;
+ border-top-left-radius: 4px;
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+[dir=rtl] .pager {
+ padding-right: 0;
+ padding-left: initial;
+}
+[dir=rtl] .pager .next > a,
+[dir=rtl] .pager .next > span {
+ float: left;
+}
+[dir=rtl] .pager .previous > a,
+[dir=rtl] .pager .previous > span {
+ float: right;
+}
+[dir=rtl] .nav-pills > li > a > .badge {
+ margin-left: 0px;
+ margin-right: 3px;
+}
+[dir=rtl] .list-group-item > .badge {
+ float: left;
+}
+[dir=rtl] .list-group-item > .badge + .badge {
+ margin-left: 5px;
+ margin-right: auto;
+}
+[dir=rtl] .alert-dismissable,
+[dir=rtl] .alert-dismissible {
+ padding-left: 35px;
+ padding-right: 15px;
+}
+[dir=rtl] .alert-dismissable .close,
+[dir=rtl] .alert-dismissible .close {
+ right: auto;
+ left: -21px;
+}
+[dir=rtl] .progress-bar {
+ float: right;
+}
+[dir=rtl] .media > .pull-left {
+ margin-right: 10px;
+}
+[dir=rtl] .media > .pull-left.flip {
+ margin-right: 0;
+ margin-left: 10px;
+}
+[dir=rtl] .media > .pull-right {
+ margin-left: 10px;
+}
+[dir=rtl] .media > .pull-right.flip {
+ margin-left: 0;
+ margin-right: 10px;
+}
+[dir=rtl] .media-right,
+[dir=rtl] .media > .pull-right {
+ padding-right: 10px;
+ padding-left: initial;
+}
+[dir=rtl] .media-left,
+[dir=rtl] .media > .pull-left {
+ padding-left: 10px;
+ padding-right: initial;
+}
+[dir=rtl] .media-list {
+ padding-right: 0;
+ padding-left: initial;
+ list-style: none;
+}
+[dir=rtl] .list-group {
+ padding-right: 0;
+ padding-left: initial;
+}
+[dir=rtl] .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
+[dir=rtl] .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
+[dir=rtl] .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+[dir=rtl] .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+[dir=rtl] .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
+[dir=rtl] .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
+[dir=rtl] .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
+[dir=rtl] .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
+ border-top-right-radius: 3px;
+ border-top-left-radius: 0;
+}
+[dir=rtl] .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
+[dir=rtl] .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
+[dir=rtl] .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+[dir=rtl] .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+[dir=rtl] .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
+[dir=rtl] .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
+[dir=rtl] .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
+[dir=rtl] .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
+ border-top-left-radius: 3px;
+ border-top-right-radius: 0;
+}
+[dir=rtl] .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+[dir=rtl] .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+[dir=rtl] .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+[dir=rtl] .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+[dir=rtl] .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+[dir=rtl] .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+[dir=rtl] .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
+[dir=rtl] .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
+ border-bottom-left-radius: 3px;
+ border-top-right-radius: 0;
+}
+[dir=rtl] .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+[dir=rtl] .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+[dir=rtl] .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+[dir=rtl] .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+[dir=rtl] .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+[dir=rtl] .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+[dir=rtl] .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
+[dir=rtl] .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
+ border-bottom-right-radius: 3px;
+ border-top-left-radius: 0;
+}
+[dir=rtl] .panel > .table-bordered > thead > tr > th:first-child,
+[dir=rtl] .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
+[dir=rtl] .panel > .table-bordered > tbody > tr > th:first-child,
+[dir=rtl] .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
+[dir=rtl] .panel > .table-bordered > tfoot > tr > th:first-child,
+[dir=rtl] .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+[dir=rtl] .panel > .table-bordered > thead > tr > td:first-child,
+[dir=rtl] .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
+[dir=rtl] .panel > .table-bordered > tbody > tr > td:first-child,
+[dir=rtl] .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
+[dir=rtl] .panel > .table-bordered > tfoot > tr > td:first-child,
+[dir=rtl] .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-right: 0;
+ border-left: none;
+}
+[dir=rtl] .panel > .table-bordered > thead > tr > th:last-child,
+[dir=rtl] .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
+[dir=rtl] .panel > .table-bordered > tbody > tr > th:last-child,
+[dir=rtl] .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
+[dir=rtl] .panel > .table-bordered > tfoot > tr > th:last-child,
+[dir=rtl] .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+[dir=rtl] .panel > .table-bordered > thead > tr > td:last-child,
+[dir=rtl] .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
+[dir=rtl] .panel > .table-bordered > tbody > tr > td:last-child,
+[dir=rtl] .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
+[dir=rtl] .panel > .table-bordered > tfoot > tr > td:last-child,
+[dir=rtl] .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: none;
+ border-left: 0;
+}
+[dir=rtl] .embed-responsive .embed-responsive-item,
+[dir=rtl] .embed-responsive iframe,
+[dir=rtl] .embed-responsive embed,
+[dir=rtl] .embed-responsive object {
+ right: 0;
+ left: auto;
+}
+[dir=rtl] .close {
+ float: left;
+}
+[dir=rtl] .modal-footer {
+ text-align: left;
+}
+[dir=rtl] .modal-footer.flip {
+ text-align: right;
+}
+[dir=rtl] .modal-footer .btn + .btn {
+ margin-left: auto;
+ margin-right: 5px;
+}
+[dir=rtl] .modal-footer .btn-group .btn + .btn {
+ margin-right: -1px;
+ margin-left: auto;
+}
+[dir=rtl] .modal-footer .btn-block + .btn-block {
+ margin-right: 0;
+ margin-left: auto;
+}
+[dir=rtl] .popover {
+ left: auto;
+ text-align: right;
+}
+[dir=rtl] .popover.top > .arrow {
+ right: 50%;
+ left: auto;
+ margin-right: -11px;
+ margin-left: auto;
+}
+[dir=rtl] .popover.top > .arrow:after {
+ margin-right: -10px;
+ margin-left: auto;
+}
+[dir=rtl] .popover.bottom > .arrow {
+ right: 50%;
+ left: auto;
+ margin-right: -11px;
+ margin-left: auto;
+}
+[dir=rtl] .popover.bottom > .arrow:after {
+ margin-right: -10px;
+ margin-left: auto;
+}
+[dir=rtl] .carousel-control {
+ right: 0;
+ bottom: 0;
+}
+[dir=rtl] .carousel-control.left {
+ right: auto;
+ left: 0;
+ 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: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#80000000", endColorstr="#00000000", GradientType=1);
+}
+[dir=rtl] .carousel-control.right {
+ left: auto;
+ right: 0;
+ 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: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#00000000", endColorstr="#80000000", GradientType=1);
+}
+[dir=rtl] .carousel-control .icon-prev,
+[dir=rtl] .carousel-control .glyphicon-chevron-left {
+ left: 50%;
+ right: auto;
+ margin-right: -10px;
+}
+[dir=rtl] .carousel-control .icon-next,
+[dir=rtl] .carousel-control .glyphicon-chevron-right {
+ right: 50%;
+ left: auto;
+ margin-left: -10px;
+}
+[dir=rtl] .carousel-indicators {
+ right: 50%;
+ left: 0;
+ margin-right: -30%;
+ margin-left: 0;
+ padding-left: 0;
+}
+@media screen and (min-width: 768px) {
+ [dir=rtl] .carousel-control .glyphicon-chevron-left,
+[dir=rtl] .carousel-control .icon-prev {
+ margin-left: 0;
+ margin-right: -15px;
+ }
+ [dir=rtl] .carousel-control .glyphicon-chevron-right,
+[dir=rtl] .carousel-control .icon-next {
+ margin-left: 0;
+ margin-right: -15px;
+ }
+ [dir=rtl] .carousel-caption {
+ left: 20%;
+ right: 20%;
+ padding-bottom: 30px;
+ }
+}
+[dir=rtl] .pull-right.flip {
+ float: left !important;
+}
+[dir=rtl] .pull-left.flip {
+ float: right !important;
+}
+
+/* @preserve
+ Copyright (c) 2005-2016, Mendix bv. All rights reserved.
+ See mxclientsystem/licenses.txt for third party licenses that apply.
+*/
+/*
+ Essential styles that themes can inherit.
+ In other words, works but doesn't look great.
+*/
+/* WARNING: IE9 limits nested imports to three levels deep: http://jorgealbaladejo.com/2011/05/28/internet-explorer-limits-nested-import-css-statements */
+/* dijit base */
+/* mendix base */
+/* widgets */
+/* reporting */
+/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9kb2pvL2Rpaml0L3RoZW1lcy9kaWppdC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS9iYXNlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL2Zvcm1zLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9Ub29sdGlwLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9UYWJDb250YWluZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L19HcmlkLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9DYWxlbmRhci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvRGF0YUdyaWQuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RlbXBsYXRlR3JpZC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvU2Nyb2xsQ29udGFpbmVyLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9OYXZiYXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L05hdmlnYXRpb25UcmVlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9CdXR0b24uY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0dyb3VwQm94LmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9EYXRhVmlldy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvRGlhbG9nLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9XaW5kb3cuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0Ryb3BEb3duLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9IZWFkZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RpdGxlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9MaXN0Vmlldy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvTG9naW5EaWFsb2cuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L01lbnVCYXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L05hdmlnYXRpb25MaXN0LmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9Qcm9ncmVzcy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvUmVsb2FkTm90aWZpY2F0aW9uLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9SZXNpemFibGUuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RleHQuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RleHRBcmVhLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9VbmRlcmxheS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvSW1hZ2Vab29tLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9TZWxlY3RCb3guY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0RlbW9Vc2VyU3dpdGNoZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L01hc3RlckRldGFpbC5jc3MiLCJ3ZWJwYWNrOi8vLy4vcmVwb3J0aW5nL3VpL3dpZGdldC9SZXBvcnQuY3NzIiwid2VicGFjazovLy8uL3JlcG9ydGluZy91aS93aWRnZXQvUmVwb3J0UGFyYW1ldGVyLmNzcyIsIndlYnBhY2s6Ly8vLi9yZXBvcnRpbmcvdWkvd2lkZ2V0L0RhdGVSYW5nZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vcmVwb3J0aW5nL3VpL3dpZGdldC9SZXBvcnRNYXRyaXguY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvbXh1aS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFJQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QixVQUFVO0FBQ1YsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QjtBQUN2Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7O0FBRUE7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQixvQkFBb0I7QUFDcEI7QUFDQTtBQUNBLCtCQUErQjtBQUMvQjs7QUFFQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCLG9CQUFvQjtBQUNwQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0Esa0NBQWtDO0FBQ2xDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7O0FBRUE7QUFDQSw0QkFBNEI7QUFDNUI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQztBQUNsQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsZ0JBQWdCO0FBQ2hCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CLGFBQWE7QUFDYjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxzQkFBc0I7QUFDdEI7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckIscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkIsd0JBQXdCO0FBQ3hCLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHlDQUF5QztBQUN4RDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHdCQUF3QixvQkFBb0I7O0FBRTVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjs7QUFFQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQsMEJBQTBCO0FBQzFCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsYUFBYTtBQUNiLGFBQWEsd0RBQXdEO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esd0JBQXdCO0FBQ3hCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHFDQUFxQztBQUNyQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Ysb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxpQkFBaUI7QUFDakI7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxlQUFlO0FBQ2Ysc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QjtBQUM5Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7O0FBRUE7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7OztBQUdBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QixVQUFVO0FBQ1YsaUJBQWlCO0FBQ2pCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwrQkFBK0I7QUFDL0I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7O0FBRUE7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsNEJBQTRCO0FBQzlDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrQkFBa0I7QUFDbEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQjtBQUNoQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQztBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHFCQUFxQjtBQUNyQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpQkFBaUI7O0FBRWpCO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdnNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQzs7O0FDOUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUN6REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOztBQzdCQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JGQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQzFCQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDhCQUE4QjtBQUN0QyxVQUFVLCtCQUErQjtBQUN6Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUN0R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyREE7QUFDQTtBQUNBO0FBQ0E7OztBQ0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RCQTtBQUNBO0FBQ0E7QUFDQTs7QUNIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0VBO0FBQ0E7QUFDQTs7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0E7O0FDYkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DOztBQy9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JFQTtBQUNBO0FBQ0E7O0FDRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQzs7QUMvREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxDO0FDaEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ05BO0FBQ0E7QUFDQTs7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDekJBOztBQUVBOztBQUVBOztBQUVBOztBQUVBIiwiZmlsZSI6Im14dWkvdWkvbXh1aS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuXHRFc3NlbnRpYWwgc3R5bGVzIHRoYXQgdGhlbWVzIGNhbiBpbmhlcml0LlxuXHRJbiBvdGhlciB3b3Jkcywgd29ya3MgYnV0IGRvZXNuJ3QgbG9vayBncmVhdC5cbiovXG5cblxuXG4vKioqKlxuXHRcdEdFTkVSSUMgUElFQ0VTXG4gKioqKi9cblxuLmRpaml0UmVzZXQge1xuXHQvKiBVc2UgdGhpcyBzdHlsZSB0byBudWxsIG91dCBwYWRkaW5nLCBtYXJnaW4sIGJvcmRlciBpbiB5b3VyIHRlbXBsYXRlIGVsZW1lbnRzXG5cdFx0c28gdGhhdCBwYWdlIHNwZWNpZmljIHN0eWxlcyBkb24ndCBicmVhayB0aGVtLlxuXHRcdC0gVXNlIGluIGFsbCBUQUJMRSwgVFIgYW5kIFREIHRhZ3MuXG5cdCovXG5cdG1hcmdpbjowO1xuXHRib3JkZXI6MDtcblx0cGFkZGluZzowO1xuXHRmb250OiBpbmhlcml0O1xuXHRsaW5lLWhlaWdodDpub3JtYWw7XG5cdGNvbG9yOiBpbmhlcml0O1xufVxuLmRqX2ExMXkgLmRpaml0UmVzZXQge1xuXHQtbW96LWFwcGVhcmFuY2U6IG5vbmU7IC8qIHJlbW92ZSBwcmVkZWZpbmVkIGhpZ2gtY29udHJhc3Qgc3R5bGluZyBpbiBGaXJlZm94ICovXG59XG5cbi5kaWppdElubGluZSB7XG5cdC8qICBUbyBpbmxpbmUgYmxvY2sgZWxlbWVudHMuXG5cdFx0U2ltaWxhciB0byBJbmxpbmVCb3ggYmVsb3csIGJ1dCB0aGlzIGhhcyBmZXdlciBzaWRlLWVmZmVjdHMgaW4gTW96LlxuXHRcdEFsc28sIGFwcGFyZW50bHkgd29ya3Mgb24gYSBESVYgYXMgd2VsbCBhcyBhIEZJRUxEU0VULlxuXHQqL1xuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcdFx0XHQvKiB3ZWJraXQgYW5kIEZGMyAqL1xuXHQjem9vbTogMTsgLyogc2V0IGhhc0xheW91dDp0cnVlIHRvIG1pbWljIGlubGluZS1ibG9jayAqL1xuXHQjZGlzcGxheTppbmxpbmU7IC8qIGRvbid0IHVzZSAuZGpfaWUgc2luY2UgdGhhdCBpbmNyZWFzZXMgdGhlIHByaW9yaXR5ICovXG5cdGJvcmRlcjowO1xuXHRwYWRkaW5nOjA7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0I3ZlcnRpY2FsLWFsaWduOiBhdXRvO1x0LyogbWFrZXMgVGV4dEJveCxCdXR0b24gbGluZSB1cCB3L25hdGl2ZSBjb3VudGVycGFydHMgb24gSUU2ICovXG59XG5cbnRhYmxlLmRpaml0SW5saW5lIHtcblx0LyogVG8gaW5saW5lIHRhYmxlcyB3aXRoIGEgZ2l2ZW4gd2lkdGggc2V0ICovXG5cdGRpc3BsYXk6aW5saW5lLXRhYmxlO1xuXHRib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLmRpaml0SGlkZGVuIHtcblx0LyogVG8gaGlkZSB1bnNlbGVjdGVkIHBhbmVzIGluIFN0YWNrQ29udGFpbmVyIGV0Yy4gKi9cblx0cG9zaXRpb246IGFic29sdXRlOyAvKiByZW1vdmUgZnJvbSBub3JtYWwgZG9jdW1lbnQgZmxvdyB0byBzaW11bGF0ZSBkaXNwbGF5OiBub25lICovXG5cdHZpc2liaWxpdHk6IGhpZGRlbjsgLyogaGlkZSBlbGVtZW50IGZyb20gdmlldywgYnV0IGRvbid0IGJyZWFrIHNjcm9sbGluZywgc2VlICMxODYxMiAqL1xufVxuLmRpaml0SGlkZGVuICoge1xuXHR2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsgLyogaGlkZSB2aXNpYmlsaXR5OnZpc2libGUgZGVzY2VuZGFudHMgb2YgY2xhc3M9ZGlqaXRIaWRkZW4gbm9kZXMsIHNlZSAjMTg3OTkgKi9cbn1cblxuLmRpaml0VmlzaWJsZSB7XG5cdC8qIFRvIHNob3cgc2VsZWN0ZWQgcGFuZSBpbiBTdGFja0NvbnRhaW5lciBldGMuICovXG5cdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHQvKiBvdmVycmlkZSB1c2VyJ3MgZGlzcGxheTpub25lIHNldHRpbmcgdmlhIHN0eWxlIHNldHRpbmcgb3IgaW5kaXJlY3RseSB2aWEgY2xhc3MgKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1x0XHRcdC8qIHRvIHN1cHBvcnQgc2V0dGluZyB3aWR0aC9oZWlnaHQsIHNlZSAjMjAzMyAqL1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4uZGpfaWU2IC5kaWppdENvbWJvQm94IC5kaWppdElucHV0Q29udGFpbmVyLFxuLmRpaml0SW5wdXRDb250YWluZXIge1xuXHQvKiBmb3IgcG9zaXRpb25pbmcgb2YgcGxhY2VIb2xkZXIgKi9cblx0I3pvb206IDE7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGZsb2F0OiBub25lICFpbXBvcnRhbnQ7IC8qIG5lZWRlZCB0byBzcXVlZXplIHRoZSBJTlBVVCBpbiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZGpfaWU3IC5kaWppdElucHV0Q29udGFpbmVyIHtcblx0ZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsgLyogbmVlZGVkIGJ5IElFIHRvIHNxdWVlemUgdGhlIElOUFVUIGluICovXG5cdGNsZWFyOiBsZWZ0O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgLyogdG8gZml4IHdyb25nIHRleHQgYWxpZ25tZW50IGluIHRleHRkaXI9cnRsIHRleHQgYm94ICovXG59XG5cbi5kal9pZSAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWUgaW5wdXQuZGlqaXRUZXh0Qm94LFxuLmRqX2llIC5kaWppdFRleHRCb3ggaW5wdXQge1xuXHRmb250LXNpemU6IDEwMCU7XG59XG4uZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uVGV4dCB7XG5cdGZsb2F0OiBsZWZ0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuVEFCTEUuZGlqaXRTZWxlY3Qge1xuXHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IC8qIG1lc3NlcyB1cCBib3JkZXIgYWxpZ25tZW50ICovXG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7IC8qIHNvIGpzZmlkZGxlIHdvcmtzIHdpdGggTm9ybWFsaXplZCBDU1MgY2hlY2tlZCAqL1xufVxuLmRpaml0VGV4dEJveCAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyLFxuLmRpaml0VGV4dEJveCAuZGlqaXRBcnJvd0J1dHRvbkNvbnRhaW5lcixcbi5kaWppdFZhbGlkYXRpb25UZXh0Qm94IC5kaWppdFZhbGlkYXRpb25Db250YWluZXIge1xuXHRmbG9hdDogcmlnaHQ7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5kaWppdFNlbGVjdCBpbnB1dC5kaWppdElucHV0RmllbGQsXG4uZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRGaWVsZCB7XG5cdC8qIG92ZXJyaWRlIHVucmVhc29uYWJsZSB1c2VyIHN0eWxpbmcgb2YgYnV0dG9ucyBhbmQgaWNvbnMgKi9cblx0cGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cbi5kaWppdFZhbGlkYXRpb25UZXh0Qm94IC5kaWppdFZhbGlkYXRpb25Db250YWluZXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZGlqaXRUZWVueSB7XG5cdGZvbnQtc2l6ZToxcHg7XG5cdGxpbmUtaGVpZ2h0OjFweDtcbn1cblxuLmRpaml0T2ZmU2NyZWVuIHsgLyogdGhlc2UgY2xhc3MgYXR0cmlidXRlcyBzaG91bGQgc3VwZXJzZWRlIGFueSBpbmxpbmUgcG9zaXRpb25pbmcgc3R5bGUgKi9cblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdGxlZnQ6IC0xMDAwMHB4ICFpbXBvcnRhbnQ7XG5cdHRvcDogLTEwMDAwcHggIWltcG9ydGFudDtcbn1cblxuLypcbiAqIFBvcHVwIGl0ZW1zIGhhdmUgYSB3cmFwcGVyIGRpdiAoZGlqaXRQb3B1cClcbiAqIHdpdGggdGhlIHJlYWwgcG9wdXAgaW5zaWRlLCBhbmQgbWF5YmUgYW4gaWZyYW1lIHRvb1xuICovXG4uZGlqaXRQb3B1cCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdG1hcmdpbjogMDtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5kaWppdFBvc2l0aW9uT25seSB7XG5cdC8qIE51bGwgb3V0IGFsbCBwb3NpdGlvbi1yZWxhdGVkIHByb3BlcnRpZXMgKi9cblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xuXHRib3JkZXI6IDAgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0d2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmRpaml0Tm9uUG9zaXRpb25Pbmx5IHtcblx0LyogTnVsbCBwb3NpdGlvbi1yZWxhdGVkIHByb3BlcnRpZXMgKi9cblx0ZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcblx0cG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDAgMCAwIDAgIWltcG9ydGFudDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xufVxuXG4uZGlqaXRCYWNrZ3JvdW5kSWZyYW1lIHtcblx0LyogaWZyYW1lIHVzZWQgdG8gcHJldmVudCBwcm9ibGVtcyB3aXRoIFBERiBvciBvdGhlciBhcHBsZXRzIG92ZXJsYXlpbmcgbWVudXMgZXRjICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0dG9wOiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR6LWluZGV4OiAtMTtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdERpc3BsYXlOb25lIHtcblx0LyogaGlkZSBzb21ldGhpbmcuICBVc2UgdGhpcyBhcyBhIGNsYXNzIHJhdGhlciB0aGFuIGVsZW1lbnQuc3R5bGUgc28gYW5vdGhlciBjbGFzcyBjYW4gb3ZlcnJpZGUgKi9cblx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdENvbnRhaW5lciB7XG5cdC8qIGZvciBhbGwgbGF5b3V0IGNvbnRhaW5lcnMgKi9cblx0b3ZlcmZsb3c6IGhpZGRlbjtcdC8qIG5lZWQgb24gSUUgc28gc29tZXRoaW5nIGNhbiBiZSByZWR1Y2VkIGluIHNpemUsIGFuZCBzbyBzY3JvbGxiYXJzIGFyZW4ndCB0ZW1wb3JhcmlseSBkaXNwbGF5ZWQgd2hlbiByZXNpemluZyAqL1xufVxuXG4vKioqKlxuXHRcdEExMVlcbiAqKioqL1xuLmRqX2ExMXkgLmRpaml0SWNvbixcbi5kal9hMTF5IGRpdi5kaWppdEFycm93QnV0dG9uSW5uZXIsIC8qIGlzIHRoaXMgb25seSBmb3IgU3Bpbm5lcj8gIGlmIHNvLCBpdCBzaG91bGQgYmUgZGVsZXRlZCAqL1xuLmRqX2ExMXkgc3Bhbi5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGpfYTExeSBpbWcuZGlqaXRBcnJvd0J1dHRvbklubmVyLFxuLmRqX2ExMXkgLmRpaml0Q2FsZW5kYXJJbmNyZW1lbnRDb250cm9sLFxuLmRqX2ExMXkgLmRpaml0VHJlZUV4cGFuZG8ge1xuXHQvKiBoaWRlIGljb24gbm9kZXMgaW4gaGlnaCBjb250cmFzdCBtb2RlOyB3aGVuIG5lY2Vzc2FyeSB0aGV5IHdpbGwgYmUgcmVwbGFjZWQgYnkgY2hhcmFjdGVyIGVxdWl2YWxlbnRzXG5cdCAqIGV4Y2VwdGlvbiBmb3IgaW5wdXQuZGlqaXRBcnJvd0J1dHRvbklubmVyLCBiZWNhdXNlIHRoZSBpY29uIGFuZCBjaGFyYWN0ZXIgYXJlIGNvbnRyb2xsZWQgYnkgdGhlIHNhbWUgbm9kZSAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRpaml0U3Bpbm5lciBkaXYuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0ZGlzcGxheTogYmxvY2s7IC8qIG92ZXJyaWRlIHByZXZpb3VzIHJ1bGUgKi9cbn1cblxuLmRqX2ExMXkgLmRpaml0QTExeVNpZGVBcnJvdyB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyAvKiBkaXNwbGF5IHRleHQgaW5zdGVhZCAqL1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qXG4gKiBTaW5jZSB3ZSBjYW4ndCB1c2Ugc2hhZGluZyBpbiBhMTF5IG1vZGUsIGFuZCBzaW5jZSB0aGUgdW5kZXJsaW5lIGluZGljYXRlcyB0b2RheSdzIGRhdGUsXG4gKiB1c2UgYSBib3JkZXIgdG8gc2hvdyB0aGUgc2VsZWN0ZWQgZGF0ZS5cbiAqIEF2b2lkIHNjcmVlbiBqaXR0ZXIgd2hlbiBzd2l0Y2hpbmcgc2VsZWN0ZWQgZGF0ZSBieSBjb21wZW5zYXRpbmcgZm9yIHRoZSBzZWxlY3RlZCBub2RlJ3NcbiAqIGJvcmRlciB3L3BhZGRpbmcgb24gb3RoZXIgbm9kZXMuXG4gKi9cbi5kal9hMTF5IC5kaWppdENhbGVuZGFyRGF0ZUxhYmVsIHtcblx0cGFkZGluZzogMXB4O1xuXHRib3JkZXI6IDBweCAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0Q2FsZW5kYXJTZWxlY3RlZERhdGUgLmRpaml0Q2FsZW5kYXJEYXRlTGFiZWwge1xuXHRib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG5cdGJvcmRlci13aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmc6IDA7XG59XG4uZGpfYTExeSAuZGlqaXRDYWxlbmRhckRhdGVUZW1wbGF0ZSB7XG5cdHBhZGRpbmctYm90dG9tOiAwLjFlbSAhaW1wb3J0YW50O1x0Lyogb3RoZXJ3aXNlIGJvdHRvbSBib3JkZXIgZG9lc24ndCBhcHBlYXIgb24gSUUgKi9cblx0Ym9yZGVyOiAwcHggIWltcG9ydGFudDtcbn1cbi5kal9hMTF5IC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXI6IGJsYWNrIG91dHNldCBtZWRpdW0gIWltcG9ydGFudDtcblxuXHQvKiBJbiBjbGFybywgaG92ZXJpbmcgYSB0b29sYmFyIGJ1dHRvbiByZWR1Y2VzIHBhZGRpbmcgYW5kIGFkZHMgYSBib3JkZXIuXG5cdCAqIE5vdCBuZWVkZWQgaW4gYTExeSBtb2RlIHNpbmNlIFRvb2xiYXIgYnV0dG9ucyBhbHdheXMgaGF2ZSBhIGJvcmRlci5cblx0ICovXG5cdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cbi5kal9hMTF5IC5kaWppdEFycm93QnV0dG9uIHtcblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXRCdXR0b25Db250ZW50cyB7XG5cdG1hcmdpbjogMC4xNWVtOyAvKiBNYXJnaW4gbmVlZGVkIHRvIG1ha2UgZm9jdXMgb3V0bGluZSB2aXNpYmxlICovXG59XG5cbi5kal9hMTF5IC5kaWppdFRleHRCb3hSZWFkT25seSAuZGlqaXRJbnB1dEZpZWxkLFxuLmRqX2ExMXkgLmRpaml0VGV4dEJveFJlYWRPbmx5IC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItc3R5bGU6IG91dHNldCFpbXBvcnRhbnQ7XG5cdGJvcmRlci13aWR0aDogbWVkaXVtIWltcG9ydGFudDtcblx0Ym9yZGVyLWNvbG9yOiAjOTk5ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiM5OTkgIWltcG9ydGFudDtcbn1cblxuLyogYnV0dG9uIGlubmVyIGNvbnRlbnRzIC0gbGFiZWxzLCBpY29ucyBldGMuICovXG4uZGlqaXRCdXR0b25Ob2RlICoge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmRpaml0U2VsZWN0IC5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGlqaXRCdXR0b25Ob2RlIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHQvKiB0aGUgYXJyb3cgaWNvbiBub2RlICovXG5cdGJhY2tncm91bmQ6IG5vLXJlcGVhdCBjZW50ZXI7XG5cdHdpZHRoOiAxMnB4O1xuXHRoZWlnaHQ6IDEycHg7XG5cdGRpcmVjdGlvbjogbHRyOyAvKiBuZWVkZWQgYnkgSUUvUlRMICovXG59XG5cbi8qKioqXG5cdDMtZWxlbWVudCBib3JkZXJzOiAgKCBkaWppdExlZnQgKyBkaWppdFN0cmV0Y2ggKyBkaWppdFJpZ2h0IClcblx0VGhlc2Ugd2VyZSBhZGRlZCBmb3Igcm91bmRlZCBjb3JuZXJzIG9uIGRpaml0LmZvcm0uKkJ1dHRvbiBidXQgbmV2ZXIgYWN0dWFsbHkgdXNlZC5cbiAqKioqL1xuXG4uZGlqaXRMZWZ0IHtcblx0LyogTGVmdCBwYXJ0IG9mIGEgMy1lbGVtZW50IGJvcmRlciAqL1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgdG9wO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG59XG5cbi5kaWppdFN0cmV0Y2gge1xuXHQvKiBNaWRkbGUgKHN0cmV0Y2h5KSBwYXJ0IG9mIGEgMy1lbGVtZW50IGJvcmRlciAqL1xuXHR3aGl0ZS1zcGFjZTpub3dyYXA7XHRcdFx0LyogTU9XOiBtb3ZlIHNvbWV3aGVyZSBlbHNlICovXG5cdGJhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O1xufVxuXG4uZGlqaXRSaWdodCB7XG5cdC8qIFJpZ2h0IHBhcnQgb2YgYSAzLWVsZW1lbnQgYm9yZGVyICovXG5cdCNkaXNwbGF5OmlubGluZTtcdFx0XHRcdC8qIElFNyBzaXplcyB0byBvdXRlciBzaXplIHcvbyB0aGlzICovXG5cdGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgdG9wO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG59XG5cbi8qIEJ1dHRvbnMgKi9cbi5kal9nZWNrbyAuZGpfYTExeSAuZGlqaXRCdXR0b25EaXNhYmxlZCAuZGlqaXRCdXR0b25Ob2RlIHtcblx0b3BhY2l0eTogMC41O1xufVxuXG4uZGlqaXRUb2dnbGVCdXR0b24sXG4uZGlqaXRCdXR0b24sXG4uZGlqaXREcm9wRG93bkJ1dHRvbixcbi5kaWppdENvbWJvQnV0dG9uIHtcblx0Lyogb3V0c2lkZSBvZiBidXR0b24gKi9cblx0bWFyZ2luOiAwLjJlbTtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRkaXNwbGF5OiBibG9jaztcdFx0LyogdG8gbWFrZSBmb2N1cyBib3JkZXIgcmVjdGFuZ3VsYXIgKi9cbn1cbnRkLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRkaXNwbGF5OiB0YWJsZS1jZWxsO1x0LyogYnV0IGRvbid0IGFmZmVjdCBTZWxlY3QsIENvbWJvQnV0dG9uICovXG59XG5cbi5kaWppdEJ1dHRvbk5vZGUgaW1nIHtcblx0LyogbWFrZSB0ZXh0IGFuZCBpbWFnZXMgbGluZSB1cCBjbGVhbmx5ICovXG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0LyptYXJnaW4tYm90dG9tOi4yZW07Ki9cbn1cblxuLmRpaml0VG9vbGJhciAuZGlqaXRDb21ib0J1dHRvbiB7XG5cdC8qIGJlY2F1c2UgVG9vbGJhciBvbmx5IGRyYXdzIGEgYm9yZGVyIGFyb3VuZCB0aGUgaG92ZXJlZCB0aGluZyAqL1xuXHRib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xufVxuXG4uZGlqaXRUb29sYmFyIC5kaWppdFRvZ2dsZUJ1dHRvbixcbi5kaWppdFRvb2xiYXIgLmRpaml0QnV0dG9uLFxuLmRpaml0VG9vbGJhciAuZGlqaXREcm9wRG93bkJ1dHRvbixcbi5kaWppdFRvb2xiYXIgLmRpaml0Q29tYm9CdXR0b24ge1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdFRvb2xiYXIgLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHQvKiBqdXN0IGJlY2F1c2UgaXQgdXNlZCB0byBiZSB0aGlzIHdheSAqL1xuXHRwYWRkaW5nOiAxcHggMnB4O1xufVxuXG5cbi5kal93ZWJraXQgLmRpaml0VG9vbGJhciAuZGlqaXREcm9wRG93bkJ1dHRvbiB7XG5cdHBhZGRpbmctbGVmdDogMC4zZW07XG59XG4uZGpfZ2Vja28gLmRpaml0VG9vbGJhciAuZGlqaXRCdXR0b25Ob2RlOjotbW96LWZvY3VzLWlubmVyIHtcblx0cGFkZGluZzowO1xufVxuXG4uZGlqaXRTZWxlY3Qge1xuXHRib3JkZXI6MXB4IHNvbGlkIGdyYXk7XG59XG4uZGlqaXRCdXR0b25Ob2RlIHtcblx0LyogTm9kZSB0aGF0IGlzIGFjdGluZyBhcyBhIGJ1dHRvbiAtLSBtYXkgb3IgbWF5IG5vdCBiZSBhIEJVVFRPTiBlbGVtZW50ICovXG5cdGJvcmRlcjoxcHggc29saWQgZ3JheTtcblx0bWFyZ2luOjA7XG5cdGxpbmUtaGVpZ2h0Om5vcm1hbDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0I3ZlcnRpY2FsLWFsaWduOiBhdXRvO1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5kal93ZWJraXQgLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIHtcblx0LyogYXBwYXJlbnQgV2ViS2l0IGJ1ZyB3aGVyZSBtZXNzaW5nIHdpdGggdGhlIGZvbnQgY291cGxlZCB3aXRoIGxpbmUtaGVpZ2h0Om5vcm1hbCBYIDIgKGRpaml0UmVzZXQgJiBkaWppdEJ1dHRvbk5vZGUpXG5cdGNhbiBiZSBkaWZmZXJlbnQgdGhhbiBqdXN0IGEgc2luZ2xlIGxpbmUtaGVpZ2h0Om5vcm1hbCwgdmlzaWJsZSBpbiBJbmxpbmVFZGl0Qm94L1NwaW5uZXIgKi9cblx0bGluZS1oZWlnaHQ6aW5oZXJpdDtcbn1cbi5kaWppdFRleHRCb3ggLmRpaml0QnV0dG9uTm9kZSB7XG5cdGJvcmRlci13aWR0aDogMDtcbn1cblxuLmRpaml0U2VsZWN0LFxuLmRpaml0U2VsZWN0ICosXG4uZGlqaXRCdXR0b25Ob2RlLFxuLmRpaml0QnV0dG9uTm9kZSAqIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGpfaWUgLmRpaml0QnV0dG9uTm9kZSB7XG5cdC8qIGVuc3VyZSBoYXNMYXlvdXQgKi9cblx0em9vbTogMTtcbn1cblxuLmRqX2llIC5kaWppdEJ1dHRvbk5vZGUgYnV0dG9uIHtcblx0Lypcblx0XHRkaXNndXN0aW5nIGhhY2sgdG8gZ2V0IHJpZCBvZiBzcHVyaW91cyBwYWRkaW5nIGFyb3VuZCBidXR0b24gZWxlbWVudHNcblx0XHRvbiBJRS4gTVNJRSBpcyB0cnVseSB0aGUgd2ViJ3MgYm9hdCBhbmNob3IuXG5cdCovXG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5kaXYuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdGZsb2F0OiByaWdodDtcbn1cblxuLyoqKioqKlxuXHRUZXh0Qm94IHJlbGF0ZWQuXG5cdEV2ZXJ5dGhpbmcgdGhhdCBoYXMgYW4gPGlucHV0PlxuKioqKioqKi9cblxuLmRpaml0VGV4dEJveCB7XG5cdGJvcmRlcjogc29saWQgYmxhY2sgMXB4O1xuXHQjb3ZlcmZsb3c6IGhpZGRlbjsgLyogIzYwMjcsICM2MDY3ICovXG5cdHdpZHRoOiAxNWVtO1x0LyogbmVlZCB0byBzZXQgZGVmYXVsdCBzaXplIG9uIG91dGVyIG5vZGUgc2luY2UgaW5uZXIgbm9kZXMgc2F5IDxpbnB1dCBzdHlsZT1cIndpZHRoOjEwMCVcIj4gYW5kIDx0ZCB3aWR0aD0xMDAlPi4gIHVzZXIgY2FuIG92ZXJyaWRlICovXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kaWppdFRleHRCb3hSZWFkT25seSxcbi5kaWppdFRleHRCb3hEaXNhYmxlZCB7XG5cdGNvbG9yOiBncmF5O1xufVxuLmRqX3NhZmFyaSAuZGlqaXRUZXh0Qm94RGlzYWJsZWQgaW5wdXQge1xuXHRjb2xvcjogI0IwQjBCMDsgLyogYmVjYXVzZSBTYWZhcmkgbGlnaHRlbnMgZGlzYWJsZWQgaW5wdXQvdGV4dGFyZWEgbm8gbWF0dGVyIHdoYXQgY29sb3IgeW91IHNwZWNpZnkgKi9cbn1cbi5kal9zYWZhcmkgdGV4dGFyZWEuZGlqaXRUZXh0QXJlYURpc2FibGVkIHtcblx0Y29sb3I6ICMzMzM7IC8qIGJlY2F1c2UgU2FmYXJpIGxpZ2h0ZW5zIGRpc2FibGVkIGlucHV0L3RleHRhcmVhIG5vIG1hdHRlciB3aGF0IGNvbG9yIHlvdSBzcGVjaWZ5ICovXG59XG4uZGpfZ2Vja28gLmRpaml0VGV4dEJveFJlYWRPbmx5IGlucHV0LmRpaml0SW5wdXRGaWVsZCwgLyogZGlzYWJsZSBhcnJvdyBhbmQgdmFsaWRhdGlvbiBwcmVzZW50YXRpb24gaW5wdXRzIGJ1dCBhbGxvdyByZWFsIGlucHV0IGZvciB0ZXh0IHNlbGVjdGlvbiAqL1xuLmRqX2dlY2tvIC5kaWppdFRleHRCb3hEaXNhYmxlZCBpbnB1dCB7XG5cdC1tb3otdXNlci1pbnB1dDogbm9uZTsgLyogcHJldmVudCBmb2N1cyBvZiBkaXNhYmxlZCB0ZXh0Ym94IGJ1dHRvbnMgKi9cbn1cblxuLmRpaml0UGxhY2VIb2xkZXIge1xuXHQvKiBoaW50IHRleHQgdGhhdCBhcHBlYXJzIGluIGEgdGV4dGJveCB1bnRpbCB1c2VyIHN0YXJ0cyB0eXBpbmcgKi9cblx0Y29sb3I6ICNBQUFBQUE7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdCNmaWx0ZXI6IFwiXCI7IC8qIG1ha2UgdGhpcyBzaG93IHVwIGluIElFNiBhZnRlciB0aGUgcmVuZGVyaW5nIG9mIHRoZSB3aWRnZXQgKi9cblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7ICAgLyogc28gY3V0L3Bhc3RlIGNvbnRleHQgbWVudSBzaG93cyB1cCB3aGVuIHJpZ2h0IGNsaWNraW5nICovXG59XG5cbi5kaWppdFRpbWVUZXh0Qm94IHtcblx0d2lkdGg6IDhlbTtcbn1cblxuLyogcnVsZXMgZm9yIHdlYmtpdCB0byBkZWFsIHdpdGggZnV6enkgYmx1ZSBmb2N1cyBib3JkZXIgKi9cbi5kaWppdFRleHRCb3ggaW5wdXQ6Zm9jdXMge1xuXHRvdXRsaW5lOiBub25lO1x0LyogYmx1ZSBmdXp6eSBsaW5lIGxvb2tzIHdyb25nIG9uIGNvbWJvYm94IG9yIHNvbWV0aGluZyB3L3ZhbGlkYXRpb24gaWNvbiBzaG93aW5nICovXG59XG4uZGlqaXRUZXh0Qm94Rm9jdXNlZCB7XG5cdG91dGxpbmU6IDVweCAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG59XG5cbi5kaWppdFNlbGVjdCBpbnB1dCxcbi5kaWppdFRleHRCb3ggaW5wdXQge1xuXHRmbG9hdDogbGVmdDsgLyogbmVlZGVkIGJ5IElFIHRvIHJlbW92ZSBzZWNyZXQgbWFyZ2luICovXG59XG4uZGpfaWU2IGlucHV0LmRpaml0VGV4dEJveCxcbi5kal9pZTYgLmRpaml0VGV4dEJveCBpbnB1dCB7XG5cdGZsb2F0OiBub25lO1xufVxuLmRpaml0SW5wdXRJbm5lciB7XG5cdC8qIGZvciB3aGVuIGFuIDxpbnB1dD4gaXMgZW1iZWRkZWQgaW5zaWRlIGFuIGlubGluZS1ibG9jayA8ZGl2PiB3aXRoIGEgc2l6ZSBhbmQgYm9yZGVyICovXG5cdGJvcmRlcjowICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuXHQvKiBJRSBkaXNsaWtlcyBob3Jpem9udGFsIHR3ZWFraW5nIGNvbWJpbmVkIHdpdGggd2lkdGg6MTAwJSBzbyBwdW5pc2ggZXZlcnlvbmUgZm9yIGNvbnNpc3RlbmN5ICovXG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0VGV4dEJveCBpbnB1dCB7XG5cdG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuLmRpaml0VmFsaWRhdGlvblRleHRCb3hFcnJvciBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kaWppdFNlbGVjdCBpbnB1dCxcbi5kaWppdFRleHRCb3ggaW5wdXQuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0LyogPGlucHV0PiB1c2VkIHRvIGRpc3BsYXkgYXJyb3cgaWNvbi92YWxpZGF0aW9uIGljb24sIG9yIGluIGFycm93IGNoYXJhY3RlciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuXG5cdCAqIFRoZSBjc3MgYmVsb3cgaXMgYSB0cmljayB0byBoaWRlIHRoZSBjaGFyYWN0ZXIgaW4gbm9uLWhpZ2gtY29udHJhc3QgbW9kZVxuXHQgKi9cblx0dGV4dC1pbmRlbnQ6IC0yZW0gIWltcG9ydGFudDtcblx0ZGlyZWN0aW9uOiBsdHIgIWltcG9ydGFudDtcblx0dGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0I3RleHQtaW5kZW50OiAwICFpbXBvcnRhbnQ7XG5cdCNsZXR0ZXItc3BhY2luZzogLTVlbSAhaW1wb3J0YW50O1xuXHQjdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbn1cbi5kal9pZSAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWUgLmRpaml0VGV4dEJveCBpbnB1dCxcbi5kal9pZSBpbnB1dC5kaWppdFRleHRCb3gge1xuXHRvdmVyZmxvdy15OiB2aXNpYmxlOyAvKiBpbnB1dHMgbmVlZCBoZWxwIGV4cGFuZGluZyB3aGVuIHBhZGRpbmcgaXMgYWRkZWQgb3IgbGluZS1oZWlnaHQgaXMgYWRqdXN0ZWQgKi9cblx0bGluZS1oZWlnaHQ6IG5vcm1hbDsgLyogc3RyaWN0IG1vZGUgKi9cbn1cbi5kaWppdFNlbGVjdCAuZGlqaXRTZWxlY3RMYWJlbCBzcGFuIHtcblx0bGluZS1oZWlnaHQ6IDEwMCU7XG59XG4uZGpfaWUgLmRpaml0U2VsZWN0IC5kaWppdFNlbGVjdExhYmVsIHtcblx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cbi5kal9pZTYgLmRpaml0U2VsZWN0IC5kaWppdFNlbGVjdExhYmVsLFxuLmRqX2llNyAuZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwsXG4uZGpfaWU4IC5kaWppdFNlbGVjdCAuZGlqaXRTZWxlY3RMYWJlbCxcbi5kal9pZXF1aXJrcyAuZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwsXG4uZGlqaXRTZWxlY3QgdGQsXG4uZGpfaWU2IC5kaWppdFNlbGVjdCBpbnB1dCxcbi5kal9pZXF1aXJrcyAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWU2IC5kaWppdFNlbGVjdCAuZGlqaXRWYWxpZGF0aW9uQ29udGFpbmVyLFxuLmRqX2llNiAuZGlqaXRUZXh0Qm94IGlucHV0LFxuLmRqX2llNiBpbnB1dC5kaWppdFRleHRCb3gsXG4uZGpfaWVxdWlya3MgLmRpaml0VGV4dEJveCBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kal9pZXF1aXJrcyAuZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0QXJyb3dCdXR0b25Jbm5lcixcbi5kal9pZXF1aXJrcyAuZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0U3Bpbm5lckJ1dHRvbklubmVyLFxuLmRqX2llcXVpcmtzIC5kaWppdFRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRqX2llcXVpcmtzIGlucHV0LmRpaml0VGV4dEJveCB7XG5cdGxpbmUtaGVpZ2h0OiAxMDAlOyAvKiBJRTcgcHJvYmxlbSB3aGVyZSB0aGUgaWNvbiBpcyB2ZXJ0aWNhbGx5IHdheSB0b28gbG93IHcvbyB0aGlzICovXG59XG4uZGpfYTExeSBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kal9hMTF5IGlucHV0LmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdC8qIChpbiBoaWdoIGNvbnRyYXN0IG1vZGUpIHJldmVydCBydWxlcyBmcm9tIGFib3ZlIHNvIGNoYXJhY3RlciBkaXNwbGF5cyAqL1xuXHR0ZXh0LWluZGVudDogMCAhaW1wb3J0YW50O1xuXHR3aWR0aDogMWVtICFpbXBvcnRhbnQ7XG5cdCN0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xufVxuLmRpaml0VmFsaWRhdGlvblRleHRCb3hFcnJvciAuZGlqaXRWYWxpZGF0aW9uQ29udGFpbmVyIHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qIENvbWJvQm94ICYgU3Bpbm5lciAqL1xuXG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGlqaXRDb21ib0JveCAuZGlqaXRBcnJvd0J1dHRvbkNvbnRhaW5lciB7XG5cdC8qIGRpdmlkaW5nIGxpbmUgYmV0d2VlbiBpbnB1dCBhcmVhIGFuZCB1cC9kb3duIGJ1dHRvbihzKSBmb3IgQ29tYm9Cb3ggYW5kIFNwaW5uZXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwIDAgMCAxcHggIWltcG9ydGFudDsgLyogIWltcG9ydGFudCBuZWVkZWQgZHVlIHRvIHdheXdhcmQgXCIudGhlbWUgLmRpaml0QnV0dG9uTm9kZVwiIHJ1bGVzICovXG59XG4uZGpfYTExeSAuZGlqaXRTZWxlY3QgLmRpaml0QXJyb3dCdXR0b25Db250YWluZXIsXG4uZGlqaXRUb29sYmFyIC5kaWppdENvbWJvQm94IC5kaWppdEFycm93QnV0dG9uQ29udGFpbmVyIHtcblx0Lyogb3ZlcnJpZGVzIGFib3ZlIHJ1bGUgcGx1cyBtaXJyb3ItaW1hZ2UgcnVsZSBpbiBkaWppdF9ydGwuY3NzIHRvIGhhdmUgbm8gZGl2aWRlciB3aGVuIENvbWJvQm94IGluIFRvb2xiYXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdENvbWJvQm94TWVudSB7XG5cdC8qIERyb3AgZG93biBtZW51IGlzIGltcGxlbWVudGVkIGFzIDx1bD4gPGxpLz4gPGxpLz4gLi4uIGJ1dCB3ZSBkb24ndCB3YW50IGNpcmNsZXMgYmVmb3JlIGVhY2ggaXRlbSAqL1xuXHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QnV0dG9uTm9kZSB7XG5cdC8qIGRpdmlkaW5nIGxpbmUgYmV0d2VlbiBpbnB1dCBhcmVhIGFuZCB1cC9kb3duIGJ1dHRvbihzKSBmb3IgQ29tYm9Cb3ggYW5kIFNwaW5uZXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwO1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdFNwaW5uZXIgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRCdXR0b25Ob2RlIHtcblx0Y2xlYXI6IGJvdGg7IC8qIElFIHdvcmthcm91bmQgKi9cbn1cblxuLmRqX2llIC5kaWppdFRvb2xiYXIgLmRpaml0Q29tYm9Cb3gge1xuXHQvKiBtYWtlIGNvbWJvYm94IGJ1dHRvbnMgYWxpZ24gcHJvcGVybHkgd2l0aCBvdGhlciBidXR0b25zIGluIGEgdG9vbGJhciAqL1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vKiBTcGlubmVyICovXG5cbi5kaWppdFRleHRCb3ggLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciB7XG5cdHdpZHRoOiAxZW07XG5cdHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uSW5uZXIge1xuXHR3aWR0aDoxZW07XG5cdHZpc2liaWxpdHk6aGlkZGVuICFpbXBvcnRhbnQ7IC8qIGp1c3QgYSBzaXppbmcgZWxlbWVudCAqL1xuXHRvdmVyZmxvdy14OmhpZGRlbjtcbn1cbi5kaWppdENvbWJvQm94IC5kaWppdEJ1dHRvbk5vZGUsXG4uZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItd2lkdGg6IDA7XG59XG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItd2lkdGg6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRUZXh0Qm94IC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIGlucHV0IHtcblx0d2lkdGg6IDFlbSAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0bWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDsgLyogc2hvdWxkIGF1dG8tY2VudGVyICovXG59XG4uZGpfaWUgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRwYWRkaW5nLWxlZnQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwLjNlbSAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxLjRlbSAhaW1wb3J0YW50O1xufVxuLmRqX2llNyAuZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIgLmRpaml0SW5wdXRGaWVsZCB7XG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyAvKiBtYW51YWxseSBjZW50ZXIgSU5QVVQ6IGNoYXJhY3RlciBpcyAuNWVtIGFuZCB0b3RhbCB3aWR0aCA9IDFlbSAqL1xuXHRwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxZW0gIWltcG9ydGFudDtcbn1cbi5kal9pZTYgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRtYXJnaW4tbGVmdDogMC4xZW0gIWltcG9ydGFudDtcblx0bWFyZ2luLXJpZ2h0OiAwLjFlbSAhaW1wb3J0YW50O1xuXHR3aWR0aDogMWVtICFpbXBvcnRhbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcblx0d2lkdGg6IDJlbSAhaW1wb3J0YW50O1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEFycm93QnV0dG9uIHtcblx0Lyogbm90ZTogLmRpaml0SW5wdXRMYXlvdXRDb250YWluZXIgbWFrZXMgdGhpcyBydWxlIG92ZXJyaWRlIC5kaWppdEFycm93QnV0dG9uIHNldHRpbmdzXG5cdCAqIGZvciBkaWppdC5mb3JtLkJ1dHRvblxuXHQgKi9cblx0cGFkZGluZzogMDtcblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHJpZ2h0OiAwO1xuXHRmbG9hdDogbm9uZTtcblx0aGVpZ2h0OiA1MCU7XG5cdHdpZHRoOiAxMDAlO1xuXHRib3R0b206IGF1dG87XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiBhdXRvO1xufVxuLmRqX2llcXVpcmtzIC5kaWppdFNwaW5uZXIgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdHdpZHRoOiBhdXRvO1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0RG93bkFycm93QnV0dG9uIHtcblx0dG9wOiA1MCU7XG5cdGJvcmRlci10b3Atd2lkdGg6IDFweCAhaW1wb3J0YW50O1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdFVwQXJyb3dCdXR0b24ge1xuXHQjYm90dG9tOiA1MCU7XHQvKiBvdGhlcndpc2UgKG9uIHNvbWUgbWFjaGluZXMpIHRvcCBhcnJvdyBpY29uIHRvbyBjbG9zZSB0byBzcGxpdHRlciBib3JkZXIgKElFNi83KSAqL1xuXHR0b3A6IDA7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHRtYXJnaW46IGF1dG87XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0aGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0aGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIgLmRpaml0SW5wdXRGaWVsZCB7XG5cdC1tb3otdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHQtbW96LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHQtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG5cdC1vLXRyYW5zZm9ybTogc2NhbGUoMC41KTtcblx0LW8tdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDtcblx0dHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHR0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcblx0cGFkZGluZy10b3A6IDA7XG5cdHBhZGRpbmctYm90dG9tOiAwO1xuXHRwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcblx0cGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuXHR3aWR0aDogMTAwJTtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmRqX2llIC5kaWppdFNwaW5uZXIgLmRpaml0QXJyb3dCdXR0b25Jbm5lciAuZGlqaXRJbnB1dEZpZWxkIHtcblx0em9vbTogNTAlOyAvKiBlbXVsYXRlIHRyYW5zZm9ybTogc2NhbGUoMC41KSAqL1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QXJyb3dCdXR0b24ge1xuXHR3aWR0aDogMTAwJTtcbn1cbi5kal9pZXF1aXJrcyAuZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QXJyb3dCdXR0b24ge1xuXHR3aWR0aDogMWVtOyAvKiBtYXRjaGVzIC5kal9hMTF5IC5kaWppdFRleHRCb3ggLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciBydWxlIC0gMTAwJSBpcyB0aGUgd2hvbGUgc2NyZWVuIHdpZHRoIGluIHF1aXJrcyAqL1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHR2ZXJ0aWNhbC1hbGlnbjp0b3A7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIHtcblx0d2lkdGg6IDFlbTtcbn1cblxuLyoqKipcblx0XHRkaWppdC5mb3JtLkNoZWNrQm94XG4gXHQgJlxuICBcdFx0ZGlqaXQuZm9ybS5SYWRpb0J1dHRvblxuICoqKiovXG5cbi5kaWppdENoZWNrQm94LFxuLmRpaml0UmFkaW8sXG4uZGlqaXRDaGVja0JveElucHV0IHtcblx0cGFkZGluZzogMDtcblx0Ym9yZGVyOiAwO1xuXHR3aWR0aDogMTZweDtcblx0aGVpZ2h0OiAxNnB4O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7XG5cdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRpaml0Q2hlY2tCb3ggaW5wdXQsXG4uZGlqaXRSYWRpbyBpbnB1dCB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi5kaWppdENoZWNrQm94SW5wdXQge1xuXHQvKiBwbGFjZSB0aGUgYWN0dWFsIGlucHV0IG9uIHRvcCwgYnV0IGludmlzaWJsZSAqL1xuXHRvcGFjaXR5OiAwO1xufVxuXG4uZGpfaWUgLmRpaml0Q2hlY2tCb3hJbnB1dCB7XG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbn1cblxuLmRqX2ExMXkgLmRpaml0Q2hlY2tCb3gsXG4uZGpfYTExeSAuZGlqaXRSYWRpbyB7XG5cdC8qIGluIGExMXkgbW9kZSB3ZSBkaXNwbGF5IHRoZSBuYXRpdmUgY2hlY2tib3ggKG5vdCB0aGUgaWNvbiksIHNvIGRvbid0IHJlc3RyaWN0IHRoZSBzaXplICovXG5cdHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG5cdGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0Q2hlY2tCb3hJbnB1dCB7XG5cdG9wYWNpdHk6IDE7XG5cdGZpbHRlcjogbm9uZTtcblx0d2lkdGg6IGF1dG87XG5cdGhlaWdodDogYXV0bztcbn1cblxuLmRqX2ExMXkgLmRpaml0Rm9jdXNlZExhYmVsIHtcblx0LyogZm9yIGNoZWNrYm94ZXMgb3IgcmFkaW8gYnV0dG9ucyBpbiBoaWdoIGNvbnRyYXN0IG1vZGUsIHVzZSBib3JkZXIgcmF0aGVyIHRoYW4gb3V0bGluZSB0byBpbmRpY2F0ZSBmb2N1cyAob3V0bGluZSBkb2VzIG5vdCB3b3JrIGluIEZGKSovXG5cdGJvcmRlcjogMXB4IGRvdHRlZDtcblx0b3V0bGluZTogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi8qKioqXG5cdFx0ZGlqaXQuUHJvZ3Jlc3NCYXJcbiAqKioqL1xuXG4uZGlqaXRQcm9ncmVzc0JhciB7XG4gICAgei1pbmRleDogMDsgLyogc28gei1pbmRleCBzZXR0aW5ncyBiZWxvdyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIG9mIHRoZSBQcm9ncmVzc0JhciAqL1xufVxuLmRpaml0UHJvZ3Jlc3NCYXJFbXB0eSB7XG5cdC8qIG91dGVyIGNvbnRhaW5lciBhbmQgYmFja2dyb3VuZCBvZiB0aGUgYmFyIHRoYXQncyBub3QgZmluaXNoZWQgeWV0Ki9cblx0cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO1xuXHRib3JkZXI6MXB4IHNvbGlkIGJsYWNrOyBcdC8qIGExMXk6IGJvcmRlciBuZWNlc3NhcnkgZm9yIGhpZ2gtY29udHJhc3QgbW9kZSAqL1xuXHR6LWluZGV4OjA7XHRcdFx0LyogZXN0YWJsaXNoIGEgc3RhY2tpbmcgY29udGV4dCBmb3IgdGhpcyBwcm9ncmVzcyBiYXIgKi9cbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJGdWxsIHtcblx0Lyogb3V0ZXIgY29udGFpbmVyIGZvciBiYWNrZ3JvdW5kIG9mIGJhciB0aGF0IGlzIGZpbmlzaGVkICovXG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHRvdmVyZmxvdzpoaWRkZW47XG5cdHotaW5kZXg6LTE7XG5cdHRvcDowO1xuXHR3aWR0aDoxMDAlO1xufVxuLmRqX2llNiAuZGlqaXRQcm9ncmVzc0JhckZ1bGwge1xuXHRoZWlnaHQ6MS42ZW07XG59XG5cbi5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGlubmVyIGNvbnRhaW5lciBmb3IgZmluaXNoZWQgcG9ydGlvbiAqL1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHRib3R0b206MDtcblx0cmlnaHQ6MDtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MDtcblx0d2lkdGg6IDEwMCU7ICAgIC8qIG5lZWRlZCBmb3IgSUUvcXVpcmtzICovXG5cdGhlaWdodDphdXRvO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiNhYWE7XG5cdGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG59XG5cbi5kal9hMTF5IC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGExMXk6ICBUaGUgYm9yZGVyIHByb3ZpZGVzIHZpc2liaWxpdHkgaW4gaGlnaC1jb250cmFzdCBtb2RlICovXG5cdGJvcmRlci13aWR0aDoycHg7XG5cdGJvcmRlci1zdHlsZTpzb2xpZDtcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4uZGpfaWU2IC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIHdpZHRoOmF1dG8gd29ya3MgaW4gSUU2IHdpdGggcG9zaXRpb246c3RhdGljIGJ1dCBub3QgcG9zaXRpb246YWJzb2x1dGUgKi9cblx0cG9zaXRpb246c3RhdGljO1xuXHQvKiBoZWlnaHQ6YXV0byBvciAxMDAlIGRvZXMgbm90IHdvcmsgaW4gSUU2ICovXG5cdGhlaWdodDoxLjZlbTtcbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJJbmRldGVybWluYXRlIC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGFuaW1hdGVkIGdpZiBmb3IgJ2luZGV0ZXJtaW5hdGUnIG1vZGUgKi9cbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJJbmRldGVybWluYXRlSGlnaENvbnRyYXN0SW1hZ2Uge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi5kal9hMTF5IC5kaWppdFByb2dyZXNzQmFySW5kZXRlcm1pbmF0ZSAuZGlqaXRQcm9ncmVzc0JhckluZGV0ZXJtaW5hdGVIaWdoQ29udHJhc3RJbWFnZSB7XG5cdGRpc3BsYXk6YmxvY2s7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHR0b3A6MDtcblx0Ym90dG9tOjA7XG5cdG1hcmdpbjowO1xuXHRwYWRkaW5nOjA7XG5cdHdpZHRoOjEwMCU7XG5cdGhlaWdodDphdXRvO1xufVxuXG4uZGlqaXRQcm9ncmVzc0JhckxhYmVsIHtcblx0ZGlzcGxheTpibG9jaztcblx0cG9zaXRpb246c3RhdGljO1xuXHR3aWR0aDoxMDAlO1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKioqKlxuXHRcdGRpaml0LlRvb2x0aXBcbiAqKioqL1xuXG4uZGlqaXRUb29sdGlwIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiAyMDAwO1xuXHRkaXNwbGF5OiBibG9jaztcblx0LyogbWFrZSB2aXNpYmxlIGJ1dCBvZmYgc2NyZWVuICovXG5cdGxlZnQ6IDA7XG5cdHRvcDogLTEwMDAwcHg7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4uZGlqaXRUb29sdGlwQ29udGFpbmVyIHtcblx0Ym9yZGVyOiBzb2xpZCBibGFjayAycHg7XG5cdGJhY2tncm91bmQ6ICNiOGI1YjU7XG5cdGNvbG9yOiBibGFjaztcblx0Zm9udC1zaXplOiBzbWFsbDtcbn1cblxuLmRpaml0VG9vbHRpcEZvY3VzTm9kZSB7XG5cdHBhZGRpbmc6IDJweCAycHggMnB4IDJweDtcbn1cblxuLmRpaml0VG9vbHRpcENvbm5lY3RvciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5kal9hMTF5IC5kaWppdFRvb2x0aXBDb25uZWN0b3Ige1xuXHRkaXNwbGF5OiBub25lO1x0Lyogd29uJ3Qgc2hvdyBiL2MgaXQncyBiYWNrZ3JvdW5kLWltYWdlOyBoaWRlIHRvIGF2b2lkIGJvcmRlciBnYXAgKi9cbn1cblxuLmRpaml0VG9vbHRpcERhdGEge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi8qIExheW91dCB3aWRnZXRzLiBUaGlzIGlzIGVzc2VudGlhbCBDU1MgdG8gbWFrZSBsYXlvdXQgd29yayAoaXQgaXNuJ3QgXCJzdHlsaW5nXCIgQ1NTKVxuICAgbWFrZSBzdXJlIHRoYXQgdGhlIHBvc2l0aW9uOmFic29sdXRlIGluIGRpaml0QWxpZ24qIG92ZXJyaWRlcyBvdGhlciBjbGFzc2VzICovXG5cbi5kaWppdExheW91dENvbnRhaW5lciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5kaWppdEFsaWduVG9wLFxuLmRpaml0QWxpZ25Cb3R0b20sXG4uZGlqaXRBbGlnbkxlZnQsXG4uZGlqaXRBbGlnblJpZ2h0IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5ib2R5IC5kaWppdEFsaWduQ2xpZW50IHsgcG9zaXRpb246IGFic29sdXRlOyB9XG5cbi8qXG4gKiBCb3JkZXJDb250YWluZXJcbiAqXG4gKiAuZGlqaXRCb3JkZXJDb250YWluZXIgaXMgYSBzdHlsaXplZCBsYXlvdXQgd2hlcmUgcGFuZXMgaGF2ZSBib3JkZXIgYW5kIG1hcmdpbi5cbiAqIC5kaWppdEJvcmRlckNvbnRhaW5lck5vR3V0dGVyIGlzIGEgcmF3IGxheW91dC5cbiAqL1xuLmRpaml0Qm9yZGVyQ29udGFpbmVyLCAuZGlqaXRCb3JkZXJDb250YWluZXJOb0d1dHRlciB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuICAgIHotaW5kZXg6IDA7IC8qIHNvIHotaW5kZXggc2V0dGluZ3MgYmVsb3cgaGF2ZSBubyBlZmZlY3Qgb3V0c2lkZSBvZiB0aGUgQm9yZGVyQ29udGFpbmVyICovXG59XG5cbi5kaWppdEJvcmRlckNvbnRhaW5lclBhbmUsXG4uZGlqaXRCb3JkZXJDb250YWluZXJOb0d1dHRlclBhbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcdC8qICFpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgcG9zaXRpb246cmVsYXRpdmUgaW4gZGlqaXRUYWJDb250YWluZXIgZXRjLiAqL1xuXHR6LWluZGV4OiAyO1x0XHQvKiBhYm92ZSB0aGUgc3BsaXR0ZXJzIHNvIHRoYXQgb2ZmLWJ5LW9uZSBicm93c2VyIGVycm9ycyBkb24ndCBjb3ZlciB1cCBib3JkZXIgb2YgcGFuZSAqL1xufVxuXG4uZGlqaXRCb3JkZXJDb250YWluZXIgPiAuZGlqaXRUZXh0QXJlYSB7XG5cdC8qIE9uIFNhZmFyaSwgZm9yIFNpbXBsZVRleHRBcmVhIGluc2lkZSBhIEJvcmRlckNvbnRhaW5lcixcblx0XHRkb24ndCB3YW50IHRvIGRpc3BsYXkgdGhlIGdyaXAgdG8gcmVzaXplICovXG5cdHJlc2l6ZTogbm9uZTtcbn1cblxuLmRpaml0R3V0dGVyIHtcblx0LyogZ3V0dGVyIGlzIGp1c3QgYSBwbGFjZSBob2xkZXIgZm9yIGVtcHR5IHNwYWNlIGJldHdlZW4gcGFuZXMgaW4gQm9yZGVyQ29udGFpbmVyICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Zm9udC1zaXplOiAxcHg7XHRcdC8qIG5lZWRlZCBieSBJRTYgZXZlbiB0aG91Z2ggZGl2IGlzIGVtcHR5LCBvdGhlcndpc2UgZ29lcyB0byAxNXB4ICovXG59XG5cbi8qIFNwbGl0Q29udGFpbmVyXG5cblx0J1YnID09IGNvbnRhaW5lciB0aGF0IHNwbGl0cyB2ZXJ0aWNhbGx5ICh1cC9kb3duKVxuXHQnSCcgPSBob3Jpem9udGFsIChsZWZ0L3JpZ2h0KVxuKi9cblxuLmRpaml0U3BsaXR0ZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHotaW5kZXg6IDEwO1x0XHQvKiBhYm92ZSB0aGUgcGFuZXMgc28gdGhhdCBzcGxpdHRlciBmb2N1cyBpcyB2aXNpYmxlIG9uIEZGLCBzZWUgIzc1ODMqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRib3JkZXItY29sb3I6IGdyYXk7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogMDtcbn1cbi5kal9pZSAuZGlqaXRTcGxpdHRlciB7XG5cdHotaW5kZXg6IDE7XHQvKiBiZWhpbmQgdGhlIHBhbmVzIHNvIHRoYXQgcGFuZSBib3JkZXJzIGFyZW4ndCBvYnNjdXJlZCBzZWUgdGVzdF9HdWkuaHRtbC9bMTQzOTJdICovXG59XG5cbi5kaWppdFNwbGl0dGVyQWN0aXZlIHtcblx0ei1pbmRleDogMTEgIWltcG9ydGFudDtcbn1cblxuLmRpaml0U3BsaXR0ZXJDb3ZlciB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHR6LWluZGV4Oi0xO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHR3aWR0aDoxMDAlO1xuXHRoZWlnaHQ6MTAwJTtcbn1cblxuLmRpaml0U3BsaXR0ZXJDb3ZlckFjdGl2ZSB7XG5cdHotaW5kZXg6MyAhaW1wb3J0YW50O1xufVxuXG4vKiAjNjk0NTogc3RvcCBtb3VzZSBldmVudHMgKi9cbi5kal9pZSAuZGlqaXRTcGxpdHRlckNvdmVyIHtcblx0YmFja2dyb3VuZDogd2hpdGU7XG5cdG9wYWNpdHk6IDA7XG59XG4uZGpfaWU2IC5kaWppdFNwbGl0dGVyQ292ZXIsXG4uZGpfaWU3IC5kaWppdFNwbGl0dGVyQ292ZXIsXG4uZGpfaWU4IC5kaWppdFNwbGl0dGVyQ292ZXIge1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XG59XG5cbi5kaWppdFNwbGl0dGVySCB7XG5cdGhlaWdodDogN3B4O1xuXHRib3JkZXItdG9wOjFweDtcblx0Ym9yZGVyLWJvdHRvbToxcHg7XG5cdGN1cnNvcjogcm93LXJlc2l6ZTtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kaWppdFNwbGl0dGVyViB7XG5cdHdpZHRoOiA3cHg7XG5cdGJvcmRlci1sZWZ0OjFweDtcblx0Ym9yZGVyLXJpZ2h0OjFweDtcblx0Y3Vyc29yOiBjb2wtcmVzaXplO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0U3BsaXRDb250YWluZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZGlqaXRTcGxpdFBhbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJILFxuLmRpaml0U3BsaXRDb250YWluZXJTaXplclYge1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0Zm9udC1zaXplOiAxcHg7XG5cdGJhY2tncm91bmQtY29sb3I6IFRocmVlREZhY2U7XG5cdGJvcmRlcjogMXB4IHNvbGlkO1xuXHRib3JkZXItY29sb3I6IFRocmVlREhpZ2hsaWdodCBUaHJlZURTaGFkb3cgVGhyZWVEU2hhZG93IFRocmVlREhpZ2hsaWdodDtcblx0bWFyZ2luOiAwO1xufVxuXG4uZGlqaXRTcGxpdENvbnRhaW5lclNpemVySCAudGh1bWIsIC5kaWppdFNwbGl0dGVyViAuZGlqaXRTcGxpdHRlclRodW1iIHtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0dG9wOjQ5JTtcbn1cblxuLmRpaml0U3BsaXRDb250YWluZXJTaXplclYgLnRodW1iLCAuZGlqaXRTcGxpdHRlckggLmRpaml0U3BsaXR0ZXJUaHVtYiB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHRsZWZ0OjQ5JTtcbn1cblxuLmRpaml0U3BsaXR0ZXJTaGFkb3csXG4uZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplckgsXG4uZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplclYge1xuXHRmb250LXNpemU6IDFweDtcblx0YmFja2dyb3VuZC1jb2xvcjogVGhyZWVEU2hhZG93O1xuXHQtbW96LW9wYWNpdHk6IDAuNTtcblx0b3BhY2l0eTogMC41O1xuXHRmaWx0ZXI6IEFscGhhKE9wYWNpdHk9NTApO1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJILCAuZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplckgge1xuXHRjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJWLCAuZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplclYge1xuXHRjdXJzb3I6IHJvdy1yZXNpemU7XG59XG5cbi5kal9hMTF5IC5kaWppdFNwbGl0dGVySCB7XG5cdGJvcmRlci10b3A6MXB4IHNvbGlkICNkM2QzZDMgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2QzZDNkMyAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0U3BsaXR0ZXJWIHtcblx0Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNkM2QzZDMgIWltcG9ydGFudDtcblx0Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZDNkM2QzICFpbXBvcnRhbnQ7XG59XG5cbi8qIENvbnRlbnRQYW5lICovXG5cbi5kaWppdENvbnRlbnRQYW5lIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBhdXRvO1x0LyogaWYgd2UgZG9uJ3QgaGF2ZSB0aGlzIChvciBvdmVyZmxvdzpoaWRkZW4pLCB0aGVuIFdpZGdldC5yZXNpemVUbygpIGRvZXNuJ3QgbWFrZSBzZW5zZSBmb3IgQ29udGVudFBhbmUgKi9cblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG4uZGlqaXRDb250ZW50UGFuZVNpbmdsZUNoaWxkIHtcblx0Lypcblx0ICogaWYgdGhlIENvbnRlbnRQYW5lIGhvbGRzIGEgc2luZ2xlIGxheW91dCB3aWRnZXQgY2hpbGQgd2hpY2ggaXMgYmVpbmcgc2l6ZWQgdG8gbWF0Y2ggdGhlIGNvbnRlbnQgcGFuZSxcblx0ICogdGhlbiB0aGUgQ29udGVudFBhbmUgc2hvdWxkIG5ldmVyIGdldCBhIHNjcm9sbGJhciAoYnV0IGl0IGRvZXMgZHVlIHRvIGJyb3dzZXIgYnVncywgc2VlICM5NDQ5XG5cdCAqL1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZGlqaXRDb250ZW50UGFuZUxvYWRpbmcgLmRpaml0SWNvbkxvYWRpbmcsXG4uZGlqaXRDb250ZW50UGFuZUVycm9yIC5kaWppdEljb25FcnJvciB7XG5cdG1hcmdpbi1yaWdodDogOXB4O1xufVxuXG4vKiBUaXRsZVBhbmUgYW5kIEZpZWxkc2V0ICovXG5cbi5kaWppdFRpdGxlUGFuZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRpaml0RmllbGRzZXQge1xuXHRib3JkZXI6IDFweCBzb2xpZCBncmF5O1xufVxuLmRpaml0VGl0bGVQYW5lVGl0bGUsIC5kaWppdEZpZWxkc2V0VGl0bGUge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGlqaXRUaXRsZVBhbmVUaXRsZUZpeGVkT3BlbiwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZENsb3NlZCxcbi5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZE9wZW4sIC5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZENsb3NlZCB7XG5cdC8qIFRpdGxlUGFuZSBvciBGaWVsZHNldCB0aGF0IGNhbm5vdCBiZSB0b2dnbGVkICovXG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cbi5kaWppdFRpdGxlUGFuZVRpdGxlICoge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZUlubmVyLCAuZGlqaXRGaWVsZHNldCAuZGlqaXRBcnJvd05vZGVJbm5lciB7XG5cdC8qIG5vcm1hbGx5LCBoaWRlIGFycm93IHRleHQgaW4gZmF2b3Igb2YgaWNvbiAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRqX2ExMXkgLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZUlubmVyLCAuZGpfYTExeSAuZGlqaXRGaWVsZHNldCAuZGlqaXRBcnJvd05vZGVJbm5lciB7XG5cdC8qIC4uLiBleGNlcHQgaW4gYTExeSBtb2RlLCB0aGVuIHNob3cgdGV4dCBhcnJvdyAqL1xuXHRkaXNwbGF5OiBpbmxpbmU7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XHRcdC8qIGJlY2F1c2UgLSBhbmQgKyBhcmUgZGlmZmVyZW50IHdpZHRocyAqL1xufVxuLmRqX2ExMXkgLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZSwgLmRqX2ExMXkgLmRpaml0RmllbGRzZXQgLmRpaml0QXJyb3dOb2RlIHtcblx0LyogLi4uIGFuZCBoaWRlIGljb24gKFRPRE86IGp1c3QgcG9pbnQgZGlqaXRJY29uIGNsYXNzIG9uIHRoZSBpY29uLCBhbmQgaXQgaGlkZXMgYXV0b21hdGljYWxseSkgKi9cblx0ZGlzcGxheTogbm9uZTtcbn1cbi5kaWppdFRpdGxlUGFuZVRpdGxlRml4ZWRPcGVuIC5kaWppdEFycm93Tm9kZSwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZE9wZW4gLmRpaml0QXJyb3dOb2RlSW5uZXIsXG4uZGlqaXRUaXRsZVBhbmVUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZSwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZENsb3NlZCAuZGlqaXRBcnJvd05vZGVJbm5lcixcbi5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZE9wZW4gLmRpaml0QXJyb3dOb2RlLCAuZGlqaXRGaWVsZHNldFRpdGxlRml4ZWRPcGVuIC5kaWppdEFycm93Tm9kZUlubmVyLFxuLmRpaml0RmllbGRzZXRUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZSwgLmRpaml0RmllbGRzZXRUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZUlubmVyIHtcblx0LyogZG9uJ3Qgc2hvdyB0aGUgb3BlbiBjbG9zZSBpY29uIG9yIHRleHQgYXJyb3c7IGl0IG1ha2VzIHRoZSB1c2VyIHRoaW5rIHRoZSBwYW5lIGlzIGNsb3NhYmxlICovXG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcdC8qICFpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgYWJvdmUgYTExeSBydWxlcyB0byBzaG93IHRleHQgYXJyb3cgKi9cbn1cblxuLmRqX2llNiAuZGlqaXRUaXRsZVBhbmVDb250ZW50T3V0ZXIsXG4uZGpfaWU2IC5kaWppdFRpdGxlUGFuZSAuZGlqaXRUaXRsZVBhbmVUaXRsZSB7XG5cdC8qIGZvcmNlIGhhc0xheW91dCB0byBlbnN1cmUgYm9yZGVycyBldGMsIHNob3cgdXAgKi9cblx0em9vbTogMTtcbn1cblxuLyogQ29sb3IgUGFsZXR0ZVxuICogU2l6ZXMgZGVzaWduZWQgc28gdGhhdCB0YWJsZSBjZWxsIHBvc2l0aW9ucyBtYXRjaCBpY29ucyBpbiB1bmRlcmx5aW5nIGltYWdlLFxuICogd2hpY2ggYXBwZWFyIGF0IDIweDIwIGludGVydmFscy5cbiAqL1xuXG4uZGlqaXRDb2xvclBhbGV0dGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUge1xuXHQvKiBUYWJsZSB0aGF0IGhvbGRzIHRoZSBwYWxldHRlIGNlbGxzLCBhbmQgb3ZlcmxheXMgaW1hZ2UgZmlsZSB3aXRoIGNvbG9yIHN3YXRjaGVzLlxuXHQgKiBwYWRkaW5nL21hcmdpbiB0byBhbGlnbiB0YWJsZSB3aXRoIGltYWdlLlxuXHQgKi9cblx0cGFkZGluZzogMnB4IDNweCAzcHggM3B4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdG91dGxpbmU6IDA7XG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG59XG4uZGpfaWU2IC5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUsXG4uZGpfaWU3IC5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUsXG4uZGpfaWVxdWlya3MgLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVUYWJsZSB7XG5cdC8qIHVzaW5nIHBhZGRpbmcgYWJvdmUgc28gdGhhdCBmb2N1cyBib3JkZXIgaXNuJ3QgY3V0b2ZmIG9uIG1vei93ZWJraXQsXG5cdCAqIGJ1dCB1c2luZyBtYXJnaW4gb24gSUUgYmVjYXVzZSBwYWRkaW5nIGRvZXNuJ3Qgc2VlbSB0byB3b3JrXG5cdCAqL1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDJweCAzcHggM3B4IDNweDtcbn1cblxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVDZWxsIHtcblx0LyogPHRkPiBpbiB0aGUgPHRhYmxlPiAqL1xuXHRmb250LXNpemU6IDFweDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kOiBub25lO1xufVxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVJbWcge1xuXHQvKiBDYWxsZWQgZGlqaXRQYWxldHRlSW1nIGZvciBiYWNrLWNvbXBhdCwgdGhpcyBhY3R1YWxseSB3cmFwcyB0aGUgY29sb3Igc3dhdGNoIHdpdGggYSBib3JkZXIgYW5kIHBhZGRpbmcgKi9cblx0cGFkZGluZzogMXB4O1x0XHQvKiB3aGl0ZSBhcmVhIGJldHdlZW4gZ3JheSBib3JkZXIgYW5kIGNvbG9yIHN3YXRjaCAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuXHRtYXJnaW46IDJweCAxcHg7XG5cdGN1cnNvcjogZGVmYXVsdDtcblx0Zm9udC1zaXplOiAxcHg7XHRcdC8qIHByZXZlbnQgPHNwYW4+IGZyb20gZ2V0dGluZyBiaWdnZXIganVzdCB0byBob2xkIGEgY2hhcmFjdGVyICovXG59XG4uZGpfZ2Vja28gLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVJbWcge1xuXHRwYWRkaW5nLWJvdHRvbTogMDtcdC8qIHdvcmthcm91bmQgcmVuZGVyaW5nIGdsaXRjaCBvbiBGRiwgaXQgYWRkcyBhbiBleHRyYSBwaXhlbCBhdCB0aGUgYm90dG9tICovXG59XG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0Q29sb3JQYWxldHRlU3dhdGNoIHtcblx0LyogdGhlIGFjdHVhbCBwYXJ0IHdoZXJlIHRoZSBjb2xvciBpcyAqL1xuXHR3aWR0aDogMTRweDtcblx0aGVpZ2h0OiAxMnB4O1xufVxuLmRpaml0UGFsZXR0ZVRhYmxlIHRkIHtcblx0XHRwYWRkaW5nOiAwO1xufVxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVDZWxsOmhvdmVyIC5kaWppdFBhbGV0dGVJbWcge1xuXHQvKiBob3ZlcmVkIGNvbG9yIHN3YXRjaCAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xufVxuXG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZUNlbGw6YWN0aXZlIC5kaWppdFBhbGV0dGVJbWcsXG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZVRhYmxlIC5kaWppdFBhbGV0dGVDZWxsU2VsZWN0ZWQgLmRpaml0UGFsZXR0ZUltZyB7XG5cdGJvcmRlcjogMnB4IHNvbGlkICMwMDA7XG5cdG1hcmdpbjogMXB4IDA7XHQvKiByZWR1Y2UgbWFyZ2luIHRvIGNvbXBlbnNhdGUgZm9yIGluY3JlYXNlZCBib3JkZXIgKi9cbn1cblxuXG4uZGpfYTExeSAuZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZVRhYmxlLFxuLmRqX2ExMXkgLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVUYWJsZSAqIHtcblx0LyogdGFibGUgY2VsbHMgYXJlIHRvIGNhdGNoIGV2ZW50cywgYnV0IHRoZSBzd2F0Y2hlcyBhcmUgaW4gdGhlIFBhbGV0dGVJbWcgYmVoaW5kIHRoZSB0YWJsZSAqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKiBBY2NvcmRpb25Db250YWluZXIgKi9cblxuLmRpaml0QWNjb3JkaW9uQ29udGFpbmVyIHtcblx0Ym9yZGVyOjFweCBzb2xpZCAjYjdiN2I3O1xuXHRib3JkZXItdG9wOjAgIWltcG9ydGFudDtcbn1cbi5kaWppdEFjY29yZGlvblRpdGxlIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0QWNjb3JkaW9uVGl0bGVTZWxlY3RlZCB7XG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyogaW1hZ2VzIG9mZiwgaGlnaC1jb250cmFzdCBtb2RlIHN0eWxlcyAqL1xuLmRpaml0QWNjb3JkaW9uVGl0bGUgLmFycm93VGV4dFVwLFxuLmRpaml0QWNjb3JkaW9uVGl0bGUgLmFycm93VGV4dERvd24ge1xuXHRkaXNwbGF5OiBub25lO1xuXHRmb250LXNpemU6IDAuNjVlbTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZSAuYXJyb3dUZXh0VXAsXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZVNlbGVjdGVkIC5hcnJvd1RleHREb3duIHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZVNlbGVjdGVkIC5hcnJvd1RleHRVcCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kaWppdEFjY29yZGlvbkNoaWxkV3JhcHBlciB7XG5cdC8qIHRoaXMgaXMgdGhlIG5vZGUgd2hvc2UgaGVpZ2h0IGlzIGFkanVzdGVkICovXG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIENhbGVuZGFyICovXG5cbi5kaWppdENhbGVuZGFyQ29udGFpbmVyIHRhYmxlIHtcblx0d2lkdGg6IGF1dG87XHQvKiBpbiBjYXNlIHVzZXIgaGFzIHNwZWNpZmllZCBhIHdpZHRoIGZvciB0aGUgVEFCTEUgbm9kZXMsIHNlZSAjMTA1NTMgKi9cblx0Y2xlYXI6IGJvdGg7ICAgIC8qIGNsZWFyIG1hcmdpbiBjcmVhdGVkIGZvciBsZWZ0L3JpZ2h0IG1vbnRoIGFycm93czsgbmVlZGVkIG9uIElFMTAgZm9yIENhbGVuZGFyTGl0ZSAqL1xufVxuLmRpaml0Q2FsZW5kYXJDb250YWluZXIgdGgsIC5kaWppdENhbGVuZGFyQ29udGFpbmVyIHRkIHtcblx0cGFkZGluZzogMDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRpaml0Q2FsZW5kYXJNb250aENvbnRhaW5lciB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5kaWppdENhbGVuZGFyRGVjcmVtZW50QXJyb3cge1xuXHRmbG9hdDogbGVmdDtcbn1cbi5kaWppdENhbGVuZGFySW5jcmVtZW50QXJyb3cge1xuXHRmbG9hdDogcmlnaHQ7XG59XG5cbi5kaWppdENhbGVuZGFyWWVhckxhYmVsIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyAgICAvKiBtYWtlIHN1cmUgcHJldmlvdXMsIGN1cnJlbnQsIGFuZCBuZXh0IHllYXIgYXBwZWFyIG9uIHNhbWUgcm93ICovXG59XG5cbi5kaWppdENhbGVuZGFyTmV4dFllYXIge1xuXHRtYXJnaW46MCAwIDAgMC41NWVtO1xufVxuXG4uZGlqaXRDYWxlbmRhclByZXZpb3VzWWVhciB7XG5cdG1hcmdpbjowIDAuNTVlbSAwIDA7XG59XG5cbi5kaWppdENhbGVuZGFySW5jcmVtZW50Q29udHJvbCB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kaWppdENhbGVuZGFySW5jcmVtZW50Q29udHJvbCxcbi5kaWppdENhbGVuZGFyRGF0ZVRlbXBsYXRlLFxuLmRpaml0Q2FsZW5kYXJNb250aExhYmVsLFxuLmRpaml0Q2FsZW5kYXJQcmV2aW91c1llYXIsXG4uZGlqaXRDYWxlbmRhck5leHRZZWFyIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGlqaXRDYWxlbmRhckRpc2FibGVkRGF0ZSB7XG5cdGNvbG9yOiBncmF5O1xuXHR0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZGlqaXRTcGFjZXIge1xuXHQvKiBkb24ndCBkaXNwbGF5IGl0LCBidXQgbWFrZSBpdCBhZmZlY3QgdGhlIHdpZHRoICovXG4gIFx0cG9zaXRpb246IHJlbGF0aXZlO1xuICBcdGhlaWdodDogMXB4O1xuICBcdG92ZXJmbG93OiBoaWRkZW47XG4gIFx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vKiBTdHlsaW5nIGZvciBtb250aCBkcm9wIGRvd24gbGlzdCAqL1xuXG4uZGlqaXRDYWxlbmRhck1vbnRoTWVudSAuZGlqaXRDYWxlbmRhck1vbnRoTGFiZWwge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcbn1cblxuLyogTWVudSAqL1xuXG4uZGlqaXRNZW51IHtcblx0Ym9yZGVyOjFweCBzb2xpZCBibGFjaztcblx0YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtcbn1cbi5kaWppdE1lbnVUYWJsZSB7XG5cdGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtcblx0Ym9yZGVyLXdpZHRoOjA7XG5cdGJhY2tncm91bmQtY29sb3I6d2hpdGU7XG59XG5cbi8qIHdvcmthcm91bmQgZm9yIHdlYmtpdCBidWcgIzg0MjcsIHJlbW92ZSB0aGlzIHdoZW4gaXQgaXMgZml4ZWQgdXBzdHJlYW0gKi9cbi5kal93ZWJraXQgLmRpaml0TWVudVRhYmxlIHRkW2NvbHNwYW49XCIyXCJde1xuXHRib3JkZXItcmlnaHQ6aGlkZGVuO1xufVxuXG4uZGlqaXRNZW51SXRlbSB7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdHBhZGRpbmc6LjFlbSAuMmVtO1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLypcbk5vIG5lZWQgdG8gc2hvdyBhIGZvY3VzIGJvcmRlciBzaW5jZSBpdCdzIG9idmlvdXMgZnJvbSB0aGUgc2hhZGluZywgYW5kIHRoZXJlJ3MgYSAuZGpfYTExeSAuZGlqaXRNZW51SXRlbVNlbGVjdGVkXG5ydWxlIGJlbG93IHRoYXQgaGFuZGxlcyB0aGUgaGlnaCBjb250cmFzdCBjYXNlIHdoZW4gdGhlcmUncyBubyBzaGFkaW5nLlxuSGlkaW5nIHRoZSBmb2N1cyBib3JkZXIgYWxzbyB3b3JrcyBhcm91bmQgd2Via2l0IGJ1ZyBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTI1Nzc5LlxuKi9cbi5kaWppdE1lbnVJdGVtOmZvY3VzIHtcblx0b3V0bGluZTogbm9uZVxufVxuXG4uZGlqaXRNZW51UGFzc2l2ZSAuZGlqaXRNZW51SXRlbUhvdmVyLFxuLmRpaml0TWVudUl0ZW1TZWxlY3RlZCB7XG5cdC8qXG5cdCAqIGRpaml0TWVudUl0ZW1Ib3ZlciByZWZlcnMgdG8gYWN0dWFsIG1vdXNlIG92ZXJcblx0ICogZGlqaXRNZW51SXRlbVNlbGVjdGVkIGlzIHVzZWQgYWZ0ZXIgYSBtZW51IGhhcyBiZWVuIFwiYWN0aXZhdGVkXCIgYnlcblx0ICogY2xpY2tpbmcgaXQsIHRhYmJpbmcgaW50byBpdCwgb3IgYmVpbmcgb3BlbmVkIGZyb20gYSBwYXJlbnQgbWVudSxcblx0ICogYW5kIGRlbm90ZXMgdGhhdCB0aGUgbWVudSBpdGVtIGhhcyBmb2N1cyBvciB0aGF0IGZvY3VzIGlzIG9uIGEgY2hpbGRcblx0ICogbWVudVxuXHQgKi9cblx0YmFja2dyb3VuZC1jb2xvcjpibGFjaztcblx0Y29sb3I6d2hpdGU7XG59XG5cbi5kaWppdE1lbnVJdGVtSWNvbiwgLmRpaml0TWVudUV4cGFuZCB7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi5kaWppdE1lbnVJdGVtRGlzYWJsZWQgKiB7XG5cdC8qIGZvciBhIGRpc2FibGVkIG1lbnUgaXRlbSwganVzdCBzZXQgaXQgdG8gbW9zdGx5IHRyYW5zcGFyZW50ICovXG5cdG9wYWNpdHk6MC41O1xuXHRjdXJzb3I6ZGVmYXVsdDtcbn1cbi5kal9pZSAuZGpfYTExeSAuZGlqaXRNZW51SXRlbURpc2FibGVkLFxuLmRqX2llIC5kal9hMTF5IC5kaWppdE1lbnVJdGVtRGlzYWJsZWQgKixcbi5kal9pZSAuZGlqaXRNZW51SXRlbURpc2FibGVkICoge1xuXHRjb2xvcjogZ3JheTtcblx0ZmlsdGVyOiBhbHBoYShvcGFjaXR5PTM1KTtcbn1cblxuLmRpaml0TWVudUl0ZW1MYWJlbCB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kal9hMTF5IC5kaWppdE1lbnVJdGVtU2VsZWN0ZWQge1xuXHRib3JkZXI6IDFweCBkb3R0ZWQgYmxhY2sgIWltcG9ydGFudDtcdC8qIGZvciAyLjAgdXNlIG91dGxpbmUgaW5zdGVhZCwgdG8gcHJldmVudCBqaXR0ZXIgKi9cbn1cblxuLmRqX2ExMXkgLmRpaml0TWVudUl0ZW1TZWxlY3RlZCAuZGlqaXRNZW51SXRlbUxhYmVsIHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZGpfaWU4IC5kal9hMTF5IC5kaWppdE1lbnVJdGVtTGFiZWwge1xuXHRwb3NpdGlvbjpzdGF0aWM7XG59XG5cbi5kaWppdE1lbnVFeHBhbmRBMTF5IHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi5kal9hMTF5IC5kaWppdE1lbnVFeHBhbmRBMTF5IHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGlqaXRNZW51U2VwYXJhdG9yIHRkIHtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKiBzZXBhcmF0b3IgY2FuIGJlIHR3byBwaXhlbHMgLS0gc2V0IGJvcmRlciBvZiBlaXRoZXIgb25lIHRvIDAgdG8gaGF2ZSBvbmx5IG9uZSAqL1xuLmRpaml0TWVudVNlcGFyYXRvclRvcCB7XG5cdGhlaWdodDogNTAlO1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi10b3A6M3B4O1xuXHRmb250LXNpemU6IDFweDtcbn1cblxuLmRpaml0TWVudVNlcGFyYXRvckJvdHRvbSB7XG5cdGhlaWdodDogNTAlO1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi1ib3R0b206M3B4O1xuXHRmb250LXNpemU6IDFweDtcbn1cblxuLyogQ2hlY2tlZE1lbnVJdGVtIGFuZCBSYWRpb01lbnVJdGVtICovXG4uZGlqaXRNZW51SXRlbUljb25DaGFyIHtcblx0ZGlzcGxheTogbm9uZTtcdFx0LyogZG9uJ3QgZGlzcGxheSBleGNlcHQgaW4gaGlnaCBjb250cmFzdCBtb2RlICovXG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcdC8qIGZvciBoaWdoIGNvbnRyYXN0IG1vZGUgd2hlbiBtZW51aXRlbSBpcyB1bmNoZWNrZWQ6IGxlYXZlIHNwYWNlIGZvciB3aGVuIGl0IGlzIGNoZWNrZWQgKi9cbn1cbi5kal9hMTF5IC5kaWppdE1lbnVJdGVtSWNvbkNoYXIge1xuXHRkaXNwbGF5OiBpbmxpbmU7XHQvKiBkaXNwbGF5IGNoYXJhY3RlciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUsIHNpbmNlIGljb24gZG9lc24ndCBzaG93ICovXG59XG4uZGlqaXRDaGVja2VkTWVudUl0ZW1DaGVja2VkIC5kaWppdE1lbnVJdGVtSWNvbkNoYXIsXG4uZGlqaXRSYWRpb01lbnVJdGVtQ2hlY2tlZCAuZGlqaXRNZW51SXRlbUljb25DaGFyIHtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTsgLyogbWVudWl0ZW0gaXMgY2hlY2tlZCAqL1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdE1lbnVCYXIgLmRpaml0TWVudUl0ZW0ge1xuXHQvKiBzbyBib3R0b20gYm9yZGVyIG9mIE1lbnVCYXIgYXBwZWFycyBvbiBJRTcgaW4gaGlnaC1jb250cmFzdCBtb2RlICovXG5cdG1hcmdpbjogMDtcbn1cblxuLyogU3RhY2tDb250YWluZXIgKi9cblxuLmRpaml0U3RhY2tDb250cm9sbGVyIC5kaWppdFRvZ2dsZUJ1dHRvbkNoZWNrZWQgKiB7XG5cdGN1cnNvcjogZGVmYXVsdDtcdC8qIGJlY2F1c2UgcHJlc3NpbmcgaXQgaGFzIG5vIGVmZmVjdCAqL1xufVxuXG4vKioqXG5UYWJDb250YWluZXJcblxuTWFpbiBjbGFzcyBoaWVyYXJjaHk6XG5cbi5kaWppdFRhYkNvbnRhaW5lciAtIHRoZSB3aG9sZSBUYWJDb250YWluZXJcbiAgIC5kaWppdFRhYkNvbnRyb2xsZXIgLyAuZGlqaXRUYWJMaXN0Q29udGFpbmVyLXRvcCAtIHdyYXBwZXIgZm9yIHRhYiBidXR0b25zLCBzY3JvbGwgYnV0dG9uc1xuXHQgLmRpaml0VGFiTGlzdFdyYXBwZXIgLyAuZGlqaXRUYWJDb250YWluZXJUb3BTdHJpcCAtIG91dGVyIHdyYXBwZXIgZm9yIHRhYiBidXR0b25zIChub3JtYWwgd2lkdGgpXG5cdFx0Lm5vd3JhcFRhYlN0cmlwIC8gLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgLSBpbm5lciB3cmFwcGVyIGZvciB0YWIgYnV0dG9ucyAoNTBLIHdpZHRoKVxuICAgLmRpaml0VGFiUGFuZVdyYXBwZXIgLSB3cmFwcGVyIGZvciBjb250ZW50IHBhbmVzLCBoYXMgYWxsIGJvcmRlcnMgZXhjZXB0IHRoZSBvbmUgYmV0d2VlbiBjb250ZW50IGFuZCB0YWJzXG4qKiovXG5cbi5kaWppdFRhYkNvbnRhaW5lciB7XG4gICAgei1pbmRleDogMDsgLyogc28gei1pbmRleCBzZXR0aW5ncyBiZWxvdyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIG9mIHRoZSBUYWJDb250YWluZXIgKi9cbiAgICBvdmVyZmxvdzogdmlzaWJsZTsgLyogcHJldmVudCBvZmYtYnktb25lLXBpeGVsIGVycm9ycyBmcm9tIGhpZGluZyBib3R0b20gYm9yZGVyIChvcHBvc2l0ZSB0YWIgbGFiZWxzKSAqL1xufVxuLmRqX2llNiAuZGlqaXRUYWJDb250YWluZXIge1xuICAgIC8qIHdvcmthcm91bmQgSUU2IHByb2JsZW0gd2hlbiB0YWxsIGNvbnRlbnQgb3ZlcmZsb3dzIFRhYkNvbnRhaW5lciwgc2VlIGVkaXRvci90ZXN0X0Z1bGxTY3JlZW4uaHRtbCAqL1xuICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxufVxuLmRpaml0VGFiQ29udGFpbmVyTm9MYXlvdXQge1xuXHR3aWR0aDogMTAwJTtcdC8qIG90aGVyd2lzZSBTY3JvbGxpbmdUYWJDb250cm9sbGVyIGdvZXMgdG8gNTBLIHBpeGVscyB3aWRlICovXG59XG5cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzLFxuLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMsXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMsXG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIHtcbiAgICB6LWluZGV4OiAxO1xuXHRvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OyAgLyogc28gdGFicyBjYW4gY292ZXIgdXAgYm9yZGVyIGFkamFjZW50IHRvIGNvbnRhaW5lciAqL1xufVxuXG4uZGlqaXRUYWJDb250cm9sbGVyIHtcbiAgICB6LWluZGV4OiAxO1xufVxuLmRpaml0VGFiQ29udGFpbmVyQm90dG9tLWNvbnRhaW5lcixcbi5kaWppdFRhYkNvbnRhaW5lclRvcC1jb250YWluZXIsXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LWNvbnRhaW5lcixcbi5kaWppdFRhYkNvbnRhaW5lclJpZ2h0LWNvbnRhaW5lciB7XG5cdHotaW5kZXg6MDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0Ym9yZGVyOiAxcHggc29saWQgYmxhY2s7XG59XG4ubm93cmFwVGFiU3RyaXAge1xuXHR3aWR0aDogNTAwMDBweDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyAgLyoganVzdCBpbiBjYXNlIGFuY2VzdG9yIGhhcyBub24tc3RhbmRhcmQgc2V0dGluZyAqL1xuICAgIHotaW5kZXg6IDE7XG59XG4uZGlqaXRUYWJMaXN0V3JhcHBlciB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogMTtcbn1cblxuLmRqX2ExMXkgLnRhYlN0cmlwQnV0dG9uIGltZyB7XG5cdC8qIGhpZGUgdGhlIGljb25zIChvciByYXRoZXIgdGhlIGVtcHR5IHNwYWNlIHdoZXJlIHRoZXkgbm9ybWFsbHkgYXBwZWFyKSBiZWNhdXNlIHRleHQgd2lsbCBhcHBlYXIgaW5zdGVhZCAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJUb3AtdGFicyB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjaztcbn1cbi5kaWppdFRhYkNvbnRhaW5lclRvcC1jb250YWluZXIge1xuXHRib3JkZXItdG9wOiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMge1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBibGFjaztcblx0ZmxvYXQ6IGxlZnQ7ICAgIC8qIG5lZWRlZCBmb3IgSUU3IFJUTCBtb2RlICovXG59XG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LWNvbnRhaW5lciB7XG5cdGJvcmRlci1sZWZ0OiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJCb3R0b20tdGFicyB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjaztcbn1cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS1jb250YWluZXIge1xuXHRib3JkZXItYm90dG9tOiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIHtcblx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCBibGFjaztcblx0ZmxvYXQ6IGxlZnQ7ICAgIC8qIG5lZWRlZCBmb3IgSUU3IFJUTCBtb2RlICovXG59XG4uZGlqaXRUYWJDb250YWluZXJSaWdodC1jb250YWluZXIge1xuXHRib3JkZXItcmlnaHQ6IDA7XG59XG5cbmRpdi5kaWppdFRhYkRpc2FibGVkLCAuZGpfaWUgZGl2LmRpaml0VGFiRGlzYWJsZWQge1xuXHRjdXJzb3I6IGF1dG87XG59XG5cbi5kaWppdFRhYiB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcblx0d2hpdGUtc3BhY2U6bm93cmFwO1xuXHR6LWluZGV4OjM7XG59XG4uZGlqaXRUYWIgKiB7XG5cdC8qIG1ha2UgdGFiIGljb25zIGFuZCBjbG9zZSBpY29uIGxpbmUgdXAgdy90ZXh0ICovXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uZGlqaXRUYWJDaGVja2VkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1x0LyogYmVjYXVzZSBjbGlja2luZyB3aWxsIGhhdmUgbm8gZWZmZWN0ICovXG59XG5cbi5kaWppdFRhYkNvbnRhaW5lclRvcC10YWJzIC5kaWppdFRhYiB7XG5cdHRvcDogMXB4O1x0LyogdG8gb3ZlcmxhcCBib3JkZXIgb24gLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgKi9cbn1cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzIC5kaWppdFRhYiB7XG5cdHRvcDogLTFweDtcdC8qIHRvIG92ZXJsYXAgYm9yZGVyIG9uIC5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzICovXG59XG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMgLmRpaml0VGFiIHtcblx0bGVmdDogMXB4O1x0LyogdG8gb3ZlcmxhcCBib3JkZXIgb24gLmRpaml0VGFiQ29udGFpbmVyTGVmdC10YWJzICovXG59XG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIC5kaWppdFRhYiB7XG5cdGxlZnQ6IC0xcHg7XHQvKiB0byBvdmVybGFwIGJvcmRlciBvbiAuZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzICovXG59XG5cblxuLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgLmRpaml0VGFiLFxuLmRpaml0VGFiQ29udGFpbmVyQm90dG9tLXRhYnMgLmRpaml0VGFiIHtcblx0LyogSW5saW5lLWJsb2NrICovXG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1x0XHRcdC8qIHdlYmtpdCBhbmQgRkYzICovXG5cdCN6b29tOiAxOyAvKiBzZXQgaGFzTGF5b3V0OnRydWUgdG8gbWltaWMgaW5saW5lLWJsb2NrICovXG5cdCNkaXNwbGF5OmlubGluZTsgLyogZG9uJ3QgdXNlIC5kal9pZSBzaW5jZSB0aGF0IGluY3JlYXNlcyB0aGUgcHJpb3JpdHkgKi9cbn1cblxuLnRhYlN0cmlwQnV0dG9uIHtcblx0ei1pbmRleDogMTI7XG59XG5cbi5kaWppdFRhYkJ1dHRvbkRpc2FibGVkIC50YWJTdHJpcEJ1dHRvbiB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cblxuLmRpaml0VGFiQ2xvc2VCdXR0b24ge1xuXHRtYXJnaW4tbGVmdDogMWVtO1xufVxuXG4uZGlqaXRUYWJDbG9zZVRleHQge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi5kaWppdFRhYiAudGFiTGFiZWwge1xuXHQvKiBtYWtlIHN1cmUgdGFicyB3L2Nsb3NlIGJ1dHRvbiBhbmQgdy9vdXQgY2xvc2UgYnV0dG9uIGFyZSBzYW1lIGhlaWdodCwgZXZlbiB3L3NtYWxsICg8MTVweCkgZm9udC5cblx0ICogYXNzdW1lcyA8PTE1cHggaGVpZ2h0IGZvciBjbG9zZSBidXR0b24gaWNvbi5cblx0ICovXG5cdG1pbi1oZWlnaHQ6IDE1cHg7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5kaWppdE5vSWNvbiB7XG5cdC8qIGFwcGxpZWQgdG8gPGltZz4vPHNwYW4+IG5vZGUgd2hlbiB0aGVyZSBpcyBubyBpY29uIHNwZWNpZmllZCAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRqX2llNiAuZGlqaXRUYWIgLmRpaml0Tm9JY29uIHtcblx0LyogYmVjYXVzZSBtaW4taGVpZ2h0IChvbiAudGFiTGFiZWwsIGFib3ZlKSBkb2Vzbid0IHdvcmsgb24gSUU2ICovXG5cdGRpc3BsYXk6IGlubGluZTtcblx0aGVpZ2h0OiAxNXB4O1xuXHR3aWR0aDogMXB4O1xufVxuXG4vKiBpbWFnZXMgb2ZmLCBoaWdoLWNvbnRyYXN0IG1vZGUgc3R5bGVzICovXG5cbi5kal9hMTF5IC5kaWppdFRhYkNsb3NlQnV0dG9uIHtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHR3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmRqX2ExMXkgLmRpaml0VGFiQ2xvc2VUZXh0IHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGlqaXRUYWJQYW5lLFxuLmRpaml0U3RhY2tDb250YWluZXItY2hpbGQsXG4uZGlqaXRBY2NvcmRpb25Db250YWluZXItY2hpbGQge1xuXHQvKiBjaGlsZHJlbiBvZiBUYWJDb250YWluZXIsIFN0YWNrQ29udGFpbmVyLCBhbmQgQWNjb3JkaW9uQ29udGFpbmVyIHNob3VsZG4ndCBoYXZlIGJvcmRlcnNcblx0ICogYi9jIGEgYm9yZGVyIGlzIGFscmVhZHkgdGhlcmUgZnJvbSB0aGUgVGFiQ29udGFpbmVyL1N0YWNrQ29udGFpbmVyL0FjY29yZGlvbkNvbnRhaW5lciBpdHNlbGYuXG5cdCAqL1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBJbmxpbmVFZGl0Qm94ICovXG4uZGlqaXRJbmxpbmVFZGl0Qm94RGlzcGxheU1vZGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcdC8qIHNvIGtleWxpbmUgKGJvcmRlcikgb24gaG92ZXIgY2FuIGFwcGVhciB3aXRob3V0IHNjcmVlbiBqdW1wICovXG5cdGN1cnNvcjogdGV4dDtcbn1cblxuLmRqX2ExMXkgLmRpaml0SW5saW5lRWRpdEJveERpc3BsYXlNb2RlLFxuLmRqX2llNiAuZGlqaXRJbmxpbmVFZGl0Qm94RGlzcGxheU1vZGUge1xuXHQvKiBleGNlcHQgdGhhdCBJRTYgZG9lc24ndCBzdXBwb3J0IHRyYW5zcGFyZW50IGJvcmRlcnMsIG5vciBkb2VzIGhpZ2ggY29udHJhc3QgbW9kZSAqL1xuXHRib3JkZXI6IG5vbmU7XG59XG5cbi5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZUhvdmVyLFxuLmRqX2ExMXkgLmRpaml0SW5saW5lRWRpdEJveERpc3BsYXlNb2RlSG92ZXIsXG4uZGpfaWU2IC5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZUhvdmVyIHtcblx0LyogQW4gSW5saW5lRWRpdEJveCBpbiB2aWV3IG1vZGUgKGNsaWNrIHRoaXMgdG8gZWRpdCB0aGUgdGV4dCkgKi9cblx0YmFja2dyb3VuZC1jb2xvcjogI2UyZWJmMjtcblx0Ym9yZGVyOiBzb2xpZCAxcHggYmxhY2s7XG59XG5cbi5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZURpc2FibGVkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBUcmVlICovXG4uZGlqaXRUcmVlIHtcblx0b3ZlcmZsb3c6IGF1dG87XHQvKiBmb3Igc2Nyb2xsYmFycyB3aGVuIFRyZWUgaGFzIGEgaGVpZ2h0IHNldHRpbmcsIGFuZCB0byBwcmV2ZW50IHdyYXBwaW5nIGFyb3VuZCBmbG9hdCBlbGVtZW50cywgc2VlICMxMTQ5MSAqL1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGlqaXRUcmVlQ29udGFpbmVyIHtcblx0ZmxvYXQ6IGxlZnQ7XHQvKiBmb3IgY29ycmVjdCBoaWdobGlnaHRpbmcgZHVyaW5nIGhvcml6b250YWwgc2Nyb2xsLCBzZWUgIzE2MTMyICovXG59XG5cbi5kaWppdFRyZWVJbmRlbnQge1xuXHQvKiBhbW91bnQgdG8gaW5kZW50IGVhY2ggdHJlZSBub2RlIChyZWxhdGl2ZSB0byBwYXJlbnQgbm9kZSkgKi9cblx0d2lkdGg6IDE5cHg7XG59XG5cbi5kaWppdFRyZWVSb3csIC5kaWppdFRyZWVDb250ZW50IHtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmRqX2llIC5kaWppdFRyZWVMYWJlbDpmb2N1cyB7XG5cdC8qIHdvcmthcm91bmQgSUU5IGJlaGF2aW9yIHdoZXJlIGRvd24gYXJyb3dpbmcgdGhyb3VnaCBUcmVlTm9kZXMgZG9lc24ndCBzaG93IGZvY3VzIG91dGxpbmUgKi9cblx0b3V0bGluZTogMXB4IGRvdHRlZCBibGFjaztcbn1cblxuLmRpaml0VHJlZVJvdyBpbWcge1xuXHQvKiBtYWtlIHRoZSBleHBhbmRvIGFuZCBmb2xkZXIgaWNvbnMgbGluZSB1cCB3aXRoIHRoZSBsYWJlbCAqL1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uZGlqaXRUcmVlQ29udGVudCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZGlqaXRFeHBhbmRvVGV4dCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kal9hMTF5IC5kaWppdEV4cGFuZG9UZXh0IHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogdGhpbjtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZGlqaXRUcmVlTGFiZWwge1xuXHRtYXJnaW46IDAgNHB4O1xufVxuXG4vKiBEaWFsb2cgKi9cblxuLmRpaml0RGlhbG9nIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiA5OTk7XG5cdG92ZXJmbG93OiBoaWRkZW47XHQvKiBvdmVycmlkZSBvdmVyZmxvdzogYXV0bzsgZnJvbSBDb250ZW50UGFuZSB0byBtYWtlIGRyYWdnaW5nIHNtb290aGVyICovXG59XG5cbi5kaWppdERpYWxvZ1RpdGxlQmFyIHtcblx0Y3Vyc29yOiBtb3ZlO1xufVxuLmRpaml0RGlhbG9nRml4ZWQgLmRpaml0RGlhbG9nVGl0bGVCYXIge1xuXHRjdXJzb3I6ZGVmYXVsdDtcbn1cbi5kaWppdERpYWxvZ0Nsb3NlSWNvbiB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kaWppdERpYWxvZ1BhbmVDb250ZW50IHtcblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuLmRpaml0RGlhbG9nVW5kZXJsYXlXcmFwcGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdHotaW5kZXg6IDk5ODtcblx0ZGlzcGxheTogbm9uZTtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuLmRpaml0RGlhbG9nVW5kZXJsYXkge1xuXHRiYWNrZ3JvdW5kOiAjZWVlO1xuXHRvcGFjaXR5OiAwLjU7XG59XG5cbi5kal9pZSAuZGlqaXREaWFsb2dVbmRlcmxheSB7XG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7XG59XG5cbi8qIGltYWdlcyBvZmYsIGhpZ2gtY29udHJhc3QgbW9kZSBzdHlsZXMgKi9cbi5kal9hMTF5IC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGpfYTExeSAuZGlqaXREaWFsb2cge1xuXHRvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdERpYWxvZyAuY2xvc2VUZXh0IHtcblx0ZGlzcGxheTpub25lO1xuXHQvKiBmb3IgdGhlIG9uaG92ZXIgYm9yZGVyIGluIGhpZ2ggY29udHJhc3Qgb24gSUU6ICovXG5cdHBvc2l0aW9uOmFic29sdXRlO1xufVxuXG4uZGpfYTExeSAuZGlqaXREaWFsb2cgLmNsb3NlVGV4dCB7XG5cdGRpc3BsYXk6aW5saW5lO1xufVxuXG4vKiBTbGlkZXIgKi9cblxuLmRpaml0U2xpZGVyTW92ZWFibGUge1xuXHR6LWluZGV4Ojk5O1xuXHRwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50O1xuXHRkaXNwbGF5OmJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG59XG5cbi5kaWppdFNsaWRlck1vdmVhYmxlSCB7XG5cdHJpZ2h0OjA7XG59XG4uZGlqaXRTbGlkZXJNb3ZlYWJsZVYge1xuXHRyaWdodDo1MCU7XG59XG5cbi5kal9hMTF5IGRpdi5kaWppdFNsaWRlckltYWdlSGFuZGxlLFxuLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRtYXJnaW46MDtcblx0cGFkZGluZzowO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZSAhaW1wb3J0YW50O1xuXHRib3JkZXI6OHB4IHNvbGlkIGdyYXk7XG5cdHdpZHRoOjA7XG5cdGhlaWdodDowO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRqX2ExMXkgLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRmb250LXNpemU6IDA7XG59XG4uZGpfaWU3IC5kaWppdFNsaWRlckltYWdlSGFuZGxlIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjsgLyogSUU3IHdvcmthcm91bmQgdG8gbWFrZSBzbGlkZXIgaGFuZGxlIFZJU0lCTEUgaW4gbm9uLWExMXkgbW9kZSAqL1xufVxuLmRqX2llNyAuZGpfYTExeSAuZGlqaXRTbGlkZXJJbWFnZUhhbmRsZSB7XG5cdG92ZXJmbG93OiB2aXNpYmxlOyAvKiBJRTcgd29ya2Fyb3VuZCB0byBtYWtlIHNsaWRlciBoYW5kbGUgVklTSUJMRSBpbiBhMTF5IG1vZGUgKi9cbn1cbi5kal9hMTF5IC5kaWppdFNsaWRlckZvY3VzZWQgLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRib3JkZXI6NHB4IHNvbGlkICMwMDA7XG5cdGhlaWdodDo4cHg7XG5cdHdpZHRoOjhweDtcbn1cblxuLmRpaml0U2xpZGVySW1hZ2VIYW5kbGVWIHtcblx0dG9wOi04cHg7XG5cdHJpZ2h0OiAtNTAlO1xufVxuXG4uZGlqaXRTbGlkZXJJbWFnZUhhbmRsZUgge1xuXHRsZWZ0OjUwJTtcblx0dG9wOi01cHg7XG5cdHZlcnRpY2FsLWFsaWduOnRvcDtcbn1cblxuLmRpaml0U2xpZGVyQmFyIHtcblx0Ym9yZGVyLXN0eWxlOnNvbGlkO1xuXHRib3JkZXItY29sb3I6YmxhY2s7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmRpaml0U2xpZGVyQmFyQ29udGFpbmVyViB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRoZWlnaHQ6MTAwJTtcblx0ei1pbmRleDoxO1xufVxuXG4uZGlqaXRTbGlkZXJCYXJDb250YWluZXJIIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdHotaW5kZXg6MTtcbn1cblxuLmRpaml0U2xpZGVyQmFySCB7XG5cdGhlaWdodDo0cHg7XG5cdGJvcmRlci13aWR0aDoxcHggMDtcbn1cblxuLmRpaml0U2xpZGVyQmFyViB7XG5cdHdpZHRoOjRweDtcblx0Ym9yZGVyLXdpZHRoOjAgMXB4O1xufVxuXG4uZGlqaXRTbGlkZXJQcm9ncmVzc0JhciB7XG5cdGJhY2tncm91bmQtY29sb3I6cmVkO1xuXHR6LWluZGV4OjE7XG59XG5cbi5kaWppdFNsaWRlclByb2dyZXNzQmFyViB7XG5cdHBvc2l0aW9uOnN0YXRpYyAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6MDtcblx0dmVydGljYWwtYWxpZ246dG9wO1xuXHR0ZXh0LWFsaWduOmxlZnQ7XG59XG5cbi5kaWppdFNsaWRlclByb2dyZXNzQmFySCB7XG5cdHBvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHdpZHRoOjA7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0b3ZlcmZsb3c6dmlzaWJsZTtcbn1cblxuLmRpaml0U2xpZGVyUmVtYWluaW5nQmFyIHtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xuXHR6LWluZGV4OjE7XG59XG5cbi5kaWppdFNsaWRlclJlbWFpbmluZ0JhclYge1xuXHRoZWlnaHQ6MTAwJTtcblx0dGV4dC1hbGlnbjpsZWZ0O1xufVxuXG4uZGlqaXRTbGlkZXJSZW1haW5pbmdCYXJIIHtcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xufVxuXG4vKiB0aGUgc2xpZGVyIGJ1bXBlciBpcyB0aGUgc3BhY2UgY29uc3VtZWQgYnkgdGhlIHNsaWRlciBoYW5kbGUgd2hlbiBpdCBoYW5ncyBvdmVyIGFuIGVkZ2UgKi9cbi5kaWppdFNsaWRlckJ1bXBlciB7XG5cdG92ZXJmbG93OmhpZGRlbjtcblx0ei1pbmRleDoxO1xufVxuXG4uZGlqaXRTbGlkZXJCdW1wZXJWIHtcblx0d2lkdGg6NHB4O1xuXHRoZWlnaHQ6OHB4O1xuXHRib3JkZXItd2lkdGg6MCAxcHg7XG59XG5cbi5kaWppdFNsaWRlckJ1bXBlckgge1xuXHR3aWR0aDo4cHg7XG5cdGhlaWdodDo0cHg7XG5cdGJvcmRlci13aWR0aDoxcHggMDtcbn1cblxuLmRpaml0U2xpZGVyQm90dG9tQnVtcGVyLFxuLmRpaml0U2xpZGVyTGVmdEJ1bXBlciB7XG5cdGJhY2tncm91bmQtY29sb3I6cmVkO1xufVxuXG4uZGlqaXRTbGlkZXJUb3BCdW1wZXIsXG4uZGlqaXRTbGlkZXJSaWdodEJ1bXBlciB7XG5cdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XG59XG5cbi5kaWppdFNsaWRlckRlY29yYXRpb24ge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvbkMsXG4uZGlqaXRTbGlkZXJEZWNvcmF0aW9uViB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogbmVlZGVkIGZvciBJRStxdWlya3MrUlRMK3ZlcnRpY2FsIChyZW5kZXJpbmcgYnVnKSBidXQgYWRkIGV2ZXJ5d2hlcmUgZm9yIGN1c3RvbSBzdHlsaW5nIGNvbnNpc3RlbmN5IGJ1dCB0aGlzIG1lc3NlcyB1cCBJRSBob3Jpem9udGFsIHNsaWRlcnMgKi9cbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvbkgge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvblYge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5kaWppdFNsaWRlckJ1dHRvbiB7XG5cdGZvbnQtZmFtaWx5Om1vbm9zcGFjZTtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MDtcblx0ZGlzcGxheTpibG9jaztcbn1cblxuLmRqX2ExMXkgLmRpaml0U2xpZGVyQnV0dG9uSW5uZXIge1xuXHR2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0U2xpZGVyQnV0dG9uQ29udGFpbmVyIHtcblx0dGV4dC1hbGlnbjpjZW50ZXI7XG5cdGhlaWdodDowO1x0LyogPz8/ICovXG59XG4uZGlqaXRTbGlkZXJCdXR0b25Db250YWluZXIgKiB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmRpaml0U2xpZGVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRwYWRkaW5nOjA7XG5cdGRpc3BsYXk6YmxvY2s7XG59XG5cbi5kaWppdFJ1bGVDb250YWluZXIge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0b3ZlcmZsb3c6dmlzaWJsZTtcbn1cblxuLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRoZWlnaHQ6MTAwJTtcblx0bGluZS1oZWlnaHQ6MDtcblx0ZmxvYXQ6bGVmdDtcblx0dGV4dC1hbGlnbjpsZWZ0O1xufVxuXG4uZGpfb3BlcmEgLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRsaW5lLWhlaWdodDoyJTtcbn1cblxuLmRqX2llIC5kaWppdFJ1bGVDb250YWluZXJWIHtcblx0bGluZS1oZWlnaHQ6bm9ybWFsO1xufVxuXG4uZGpfZ2Vja28gLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRtYXJnaW46MCAwIDFweCAwOyAvKiBtb3ppbGxhIGJ1ZyB3b3JrYXJvdW5kIGZvciBmbG9hdDpsZWZ0LGhlaWdodDoxMDAlIGJsb2NrIGVsZW1lbnRzICovXG59XG5cbi5kaWppdFJ1bGVNYXJrIHtcblx0cG9zaXRpb246YWJzb2x1dGU7XG5cdGJvcmRlcjoxcHggc29saWQgYmxhY2s7XG5cdGxpbmUtaGVpZ2h0OjA7XG5cdGhlaWdodDoxMDAlO1xufVxuXG4uZGlqaXRSdWxlTWFya0gge1xuXHR3aWR0aDowO1xuXHRib3JkZXItdG9wLXdpZHRoOjAgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbS13aWR0aDowICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1sZWZ0LXdpZHRoOjAgIWltcG9ydGFudDtcbn1cblxuLmRpaml0UnVsZUxhYmVsQ29udGFpbmVyIHtcblx0cG9zaXRpb246YWJzb2x1dGU7XG59XG5cbi5kaWppdFJ1bGVMYWJlbENvbnRhaW5lckgge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG59XG5cbi5kaWppdFJ1bGVMYWJlbEgge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0bGVmdDotNTAlO1xufVxuXG4uZGlqaXRSdWxlTGFiZWxWIHtcblx0Lyogc28gdGhhdCBsb25nIGxhYmVscyBkb24ndCBvdmVyZmxvdyB0byBtdWx0aXBsZSByb3dzLCBvciBvdmVyd3JpdGUgc2xpZGVyIGl0c2VsZiAqL1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRpaml0UnVsZU1hcmtWIHtcblx0aGVpZ2h0OjA7XG5cdGJvcmRlci1yaWdodC13aWR0aDowICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1ib3R0b20td2lkdGg6MCAhaW1wb3J0YW50O1xuXHRib3JkZXItbGVmdC13aWR0aDowICFpbXBvcnRhbnQ7XG5cdHdpZHRoOjEwMCU7XG5cdGxlZnQ6MDtcbn1cblxuLmRqX2llIC5kaWppdFJ1bGVMYWJlbENvbnRhaW5lclYge1xuXHRtYXJnaW4tdG9wOi0uNTVlbTtcbn1cblxuLmRqX2ExMXkgLmRpaml0U2xpZGVyUmVhZE9ubHksXG4uZGpfYTExeSAuZGlqaXRTbGlkZXJEaXNhYmxlZCB7XG5cdG9wYWNpdHk6MC42O1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdFNsaWRlclJlYWRPbmx5IC5kaWppdFNsaWRlckJhcixcbi5kal9pZSAuZGpfYTExeSAuZGlqaXRTbGlkZXJEaXNhYmxlZCAuZGlqaXRTbGlkZXJCYXIge1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NDApO1xufVxuXG4vKiArIGFuZCAtIFNsaWRlciBidXR0b25zOiBvdmVycmlkZSB0aGVtZSBzZXR0aW5ncyB0byBkaXNwbGF5IGljb25zICovXG4uZGpfYTExeSAuZGlqaXRTbGlkZXIgLmRpaml0U2xpZGVyQnV0dG9uQ29udGFpbmVyIGRpdiB7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IC8qIG90aGVyd2lzZSBoeXBoZW4gaXMgbGFyZ2VyIGFuZCBtb3JlIHZlcnRpY2FsbHkgY2VudGVyZWQgKi9cblx0Zm9udC1zaXplOiAxZW07XG5cdGxpbmUtaGVpZ2h0OiAxZW07XG5cdGhlaWdodDogYXV0bztcblx0d2lkdGg6IGF1dG87XG5cdG1hcmdpbjogMCA0cHg7XG59XG5cbi8qIEljb24tb25seSBidXR0b25zIChvZnRlbiBpbiB0b29sYmFycykgc3RpbGwgZGlzcGxheSB0aGUgdGV4dCBpbiBoaWdoLWNvbnRyYXN0IG1vZGUgKi9cbi5kal9hMTF5IC5kaWppdEJ1dHRvbkNvbnRlbnRzIC5kaWppdEJ1dHRvblRleHQsXG4uZGpfYTExeSAuZGlqaXRUYWIgLnRhYkxhYmVsIHtcblx0ZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uVGV4dCB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xufVxuXG4vKiBUZXh0QXJlYSwgU2ltcGxlVGV4dEFyZWEgKi9cbi5kaWppdFRleHRBcmVhIHtcblx0d2lkdGg6MTAwJTtcblx0b3ZlcmZsb3cteTogYXV0bztcdC8qIHcvb3V0IHRoaXMgSUUncyBTaW1wbGVUZXh0QXJlYSBnb2VzIHRvIG92ZXJmbG93OiBzY3JvbGwgKi9cbn1cbi5kaWppdFRleHRBcmVhW2NvbHNdIHtcblx0d2lkdGg6YXV0bzsgLyogU2ltcGxlVGV4dEFyZWEgY29scyAqL1xufVxuLmRqX2llIC5kaWppdFRleHRBcmVhQ29scyB7XG5cdHdpZHRoOmF1dG87XG59XG5cbi5kaWppdEV4cGFuZGluZ1RleHRBcmVhIHtcblx0LyogZm9yIGF1dG8gZXhhbmRpbmcgdGV4dGFyZWEgKGNhbGxlZCBUZXh0YXJlYSBjdXJyZW50bHksIHJlbmFtZSBmb3IgMi4wKSBkb24ndCB3YW50IHRvIGRpc3BsYXkgdGhlIGdyaXAgdG8gcmVzaXplICovXG5cdHJlc2l6ZTogbm9uZTtcbn1cblxuXG4vKiBUb29sYmFyXG4gKiBOb3RlIHRoYXQgb3RoZXIgdG9vbGJhciBydWxlcyAoZm9yIG9iamVjdHMgaW4gdG9vbGJhcnMpIGFyZSBzY2F0dGVyZWQgdGhyb3VnaG91dCB0aGlzIGZpbGUuXG4gKi9cblxuLmRpaml0VG9vbGJhclNlcGFyYXRvciB7XG5cdGhlaWdodDogMThweDtcblx0d2lkdGg6IDVweDtcblx0cGFkZGluZzogMCAxcHg7XG5cdG1hcmdpbjogMDtcbn1cblxuLyogRWRpdG9yICovXG4uZGlqaXRJRUZpeGVkVG9vbGJhciB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHQvKiB0b3A6MDsgKi9cblx0dG9wOiBleHByZXNzaW9uKGV2YWwoKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudHx8ZG9jdW1lbnQuYm9keSkuc2Nyb2xsVG9wKSk7XG59XG5cbi5kaWppdEVkaXRvciB7XG5cdGRpc3BsYXk6IGJsb2NrO1x0LyogcHJldmVudHMgZ2xpdGNoIG9uIEZGIHdpdGggSW5saW5lRWRpdEJveCwgc2VlICM4NDA0ICovXG59XG5cbi5kaWppdEVkaXRvckRpc2FibGVkLFxuLmRpaml0RWRpdG9yUmVhZE9ubHkge1xuXHRjb2xvcjogZ3JheTtcbn1cblxuLyogVGltZVBpY2tlciAqL1xuXG4uZGlqaXRUaW1lUGlja2VyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZGlqaXRUaW1lUGlja2VySXRlbSB7XG5cdGN1cnNvcjpwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0VGltZVBpY2tlckl0ZW1Ib3ZlciB7XG5cdGJhY2tncm91bmQtY29sb3I6Z3JheTtcblx0Y29sb3I6d2hpdGU7XG59XG4uZGlqaXRUaW1lUGlja2VySXRlbVNlbGVjdGVkIHtcblx0Zm9udC13ZWlnaHQ6Ym9sZDtcblx0Y29sb3I6IzMzMztcblx0YmFja2dyb3VuZC1jb2xvcjojYjdjZGVlO1xufVxuLmRpaml0VGltZVBpY2tlckl0ZW1EaXNhYmxlZCB7XG5cdGNvbG9yOmdyYXk7XG5cdHRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7XG59XG5cbi5kaWppdFRpbWVQaWNrZXJJdGVtSW5uZXIge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0Ym9yZGVyOjA7XG5cdHBhZGRpbmc6MnB4IDhweCAycHggOHB4O1xufVxuXG4uZGlqaXRUaW1lUGlja2VyVGljayxcbi5kaWppdFRpbWVQaWNrZXJNYXJrZXIge1xuXHRib3JkZXItYm90dG9tOjFweCBzb2xpZCBncmF5O1xufVxuXG4uZGlqaXRUaW1lUGlja2VyIC5kaWppdERvd25BcnJvd0J1dHRvbiB7XG5cdGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0VGltZVBpY2tlclRpY2sge1xuXHRjb2xvcjojQ0NDO1xufVxuXG4uZGlqaXRUaW1lUGlja2VyTWFya2VyIHtcblx0Y29sb3I6YmxhY2s7XG5cdGJhY2tncm91bmQtY29sb3I6I0NDQztcbn1cblxuLmRqX2ExMXkgLmRpaml0VGltZVBpY2tlckl0ZW1TZWxlY3RlZCAuZGlqaXRUaW1lUGlja2VySXRlbUlubmVyIHtcblx0Ym9yZGVyOiBzb2xpZCA0cHggYmxhY2s7XG59XG4uZGpfYTExeSAuZGlqaXRUaW1lUGlja2VySXRlbUhvdmVyIC5kaWppdFRpbWVQaWNrZXJJdGVtSW5uZXIge1xuXHRib3JkZXI6IGRhc2hlZCA0cHggYmxhY2s7XG59XG5cblxuLmRpaml0VG9nZ2xlQnV0dG9uSWNvbkNoYXIge1xuXHQvKiBjaGFyYWN0ZXIgKGluc3RlYWQgb2YgaWNvbikgdG8gc2hvdyB0aGF0IFRvZ2dsZUJ1dHRvbiBpcyBjaGVja2VkICovXG5cdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0VG9nZ2xlQnV0dG9uIC5kaWppdFRvZ2dsZUJ1dHRvbkljb25DaGFyIHtcblx0ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDtcblx0dmlzaWJpbGl0eTpoaWRkZW47XG59XG4uZGpfaWU2IC5kaWppdFRvZ2dsZUJ1dHRvbkljb25DaGFyLCAuZGpfaWU2IC50YWJTdHJpcEJ1dHRvbiAuZGlqaXRCdXR0b25UZXh0IHtcblx0Zm9udC1mYW1pbHk6IFwiQXJpYWwgVW5pY29kZSBNU1wiO1x0Lyogb3RoZXJ3aXNlIHRoZSBhMTF5IGNoYXJhY3RlciAoY2hlY2ttYXJrLCBhcnJvdywgZXRjLikgYXBwZWFycyBhcyBhIGJveCAqL1xufVxuLmRqX2ExMXkgLmRpaml0VG9nZ2xlQnV0dG9uQ2hlY2tlZCAuZGlqaXRUb2dnbGVCdXR0b25JY29uQ2hhciB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyAvKiBJbiBoaWdoIGNvbnRyYXN0IG1vZGUsIGRpc3BsYXkgdGhlIGNoZWNrIHN5bWJvbCAqL1xuXHR2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0QXJyb3dCdXR0b25DaGFyIHtcblx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRBcnJvd0J1dHRvbkNoYXIge1xuXHRkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXREcm9wRG93bkJ1dHRvbiAuZGlqaXRBcnJvd0J1dHRvbklubmVyLFxuLmRqX2ExMXkgLmRpaml0Q29tYm9CdXR0b24gLmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBTZWxlY3QgKi9cbi5kal9hMTF5IC5kaWppdFNlbGVjdCB7XG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGUgIWltcG9ydGFudDtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZGpfaWUgLmRpaml0U2VsZWN0IHtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTsgLyogU2V0IHRoaXMgYmFjayBmb3Igd2hhdCB3ZSBoYWNrIGluIGRpaml0IGlubGluZSAqL1xufVxuLmRqX2llNiAuZGlqaXRTZWxlY3QgLmRpaml0VmFsaWRhdGlvbkNvbnRhaW5lcixcbi5kal9pZTggLmRpaml0U2VsZWN0IC5kaWppdEJ1dHRvblRleHQge1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLmRqX2llNiAuZGlqaXRUZXh0Qm94IC5kaWppdElucHV0Q29udGFpbmVyLFxuLmRqX2llcXVpcmtzIC5kaWppdFRleHRCb3ggLmRpaml0SW5wdXRDb250YWluZXIsXG4uZGpfaWU2IC5kaWppdFRleHRCb3ggLmRpaml0QXJyb3dCdXR0b25Jbm5lcixcbi5kal9pZTYgLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uSW5uZXIsXG4uZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwge1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi5kaWppdE51bWJlclRleHRCb3gge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRkaXJlY3Rpb246IGx0cjtcbn1cblxuLmRpaml0TnVtYmVyVGV4dEJveCAuZGlqaXRJbnB1dElubmVyIHtcblx0dGV4dC1hbGlnbjogaW5oZXJpdDsgLyogaW5wdXQgKi9cbn1cblxuLmRpaml0TnVtYmVyVGV4dEJveCBpbnB1dC5kaWppdElucHV0SW5uZXIsXG4uZGlqaXRDdXJyZW5jeVRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRpaml0U3Bpbm5lciBpbnB1dC5kaWppdElucHV0SW5uZXIge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmRqX2llOCAuZGlqaXROdW1iZXJUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXROdW1iZXJUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lcixcbi5kal9pZTggLmRpaml0Q3VycmVuY3lUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXRDdXJyZW5jeVRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRqX2llOCAuZGlqaXRTcGlubmVyIGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXRTcGlubmVyIGlucHV0LmRpaml0SW5wdXRJbm5lciB7XG5cdC8qIHdvcmthcm91bmQgYnVnIHdoZXJlIGNhcmV0IGludmlzaWJsZSBpbiBlbXB0eSB0ZXh0Ym94ZXMgKi9cblx0cGFkZGluZy1yaWdodDogMXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdFRvb2xiYXIgLmRpaml0U2VsZWN0IHtcblx0bWFyZ2luOiAwO1xufVxuLmRqX3dlYmtpdCAuZGlqaXRUb29sYmFyIC5kaWppdFNlbGVjdCB7XG5cdHBhZGRpbmctbGVmdDogMC4zZW07XG59XG4uZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRwYWRkaW5nOiAwO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRib3JkZXItc3R5bGU6IG5vbmUgc29saWQgbm9uZSBub25lO1xuXHRib3JkZXItd2lkdGg6IDFweDtcbn1cbi5kaWppdFNlbGVjdEZpeGVkV2lkdGggLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmRpaml0U2VsZWN0TWVudSAuZGlqaXRNZW51SXRlbUljb24ge1xuXHQvKiBhdm9pZCBibGFuayBhcmVhIGluIGxlZnQgc2lkZSBvZiBtZW51IChzaW5jZSB3ZSBoYXZlIG5vIGljb25zKSAqL1xuXHRkaXNwbGF5Om5vbmU7XG59XG4uZGpfaWU2IC5kaWppdFNlbGVjdE1lbnUgLmRpaml0TWVudUl0ZW1MYWJlbCxcbi5kal9pZTcgLmRpaml0U2VsZWN0TWVudSAuZGlqaXRNZW51SXRlbUxhYmVsIHtcblx0LyogU2V0IGJhY2sgdG8gc3RhdGljIGR1ZSB0byBidWcgaW4gaWU2L2llNyAtIFNlZSBCdWcgIzk2NTEgKi9cblx0cG9zaXRpb246IHN0YXRpYztcbn1cblxuLyogRml4IHRoZSBiYXNlbGluZSBvZiBvdXIgbGFiZWwgKGZvciBtdWx0aS1zaXplIGZvbnQgZWxlbWVudHMpICovXG4uZGlqaXRTZWxlY3RMYWJlbCAqXG57XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyogU3R5bGluZyBmb3IgdGhlIGN1cnJlbnRseS1zZWxlY3RlZCBvcHRpb24gKHJpY2ggdGV4dCBjYW4gbWVzcyB0aGlzIHVwKSAqL1xuLmRpaml0U2VsZWN0U2VsZWN0ZWRPcHRpb24gKiB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBGaXggdGhlIHN0eWxpbmcgb2YgdGhlIGRyb3Bkb3duIG1lbnUgdG8gYmUgbW9yZSBjb21ib2JveC1saWtlICovXG4uZGlqaXRTZWxlY3RNZW51IHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbi8qIFVzZWQgaW4gY2FzZXMsIHN1Y2ggYXMgRnVsbFNjcmVlbiBwbHVnaW4sIHdoZW4gd2UgbmVlZCB0byBmb3JjZSBzdHVmZiB0byBzdGF0aWMgcG9zaXRpb25pbmcuICovXG4uZGlqaXRGb3JjZVN0YXRpYyB7XG5cdHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbn1cblxuLyoqKiogRGlzYWJsZWQgY3Vyc29yICoqKioqL1xuLmRpaml0UmVhZE9ubHkgKixcbi5kaWppdERpc2FibGVkICosXG4uZGlqaXRSZWFkT25seSxcbi5kaWppdERpc2FibGVkIHtcblx0LyogYSByZWdpb24gdGhlIHVzZXIgd291bGQgYmUgYWJsZSB0byBjbGljayBvbiwgYnV0IGl0J3MgZGlzYWJsZWQgKi9cblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBEcmFnIGFuZCBEcm9wICovXG4uZG9qb0RuZEl0ZW0ge1xuICAgIHBhZGRpbmc6IDJweDsgIC8qIHdpbGwgYmUgcmVwbGFjZWQgYnkgYm9yZGVyIGR1cmluZyBkcmFnIG92ZXIgKGRvam9EbmRJdGVtQmVmb3JlLCBkb2pvRG5kSXRlbUFmdGVyKSAqL1xuXG5cdC8qIFByZXZlbnQgbWFnbmlmeWluZy1nbGFzcyB0ZXh0IHNlbGVjdGlvbiBpY29uIHRvIGFwcGVhciBvbiBtb2JpbGUgd2Via2l0IGFzIGl0IGNhdXNlcyBhIHRvdWNob3V0IGV2ZW50ICovXG5cdC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgLyogRGlzYWJsZSBzZWxlY3Rpb24vQ29weSBvZiBVSVdlYlZpZXcgKi9cbn1cbi5kb2pvRG5kSG9yaXpvbnRhbCAuZG9qb0RuZEl0ZW0ge1xuICAgIC8qIG1ha2UgY29udGVudHMgb2YgaG9yaXpvbnRhbCBjb250YWluZXIgYmUgc2lkZSBieSBzaWRlLCByYXRoZXIgdGhhbiB2ZXJ0aWNhbCAqL1xuICAgICNkaXNwbGF5OiBpbmxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZG9qb0RuZEl0ZW1CZWZvcmUsXG4uZG9qb0RuZEl0ZW1BZnRlciB7XG5cdGJvcmRlcjogMHB4IHNvbGlkICMzNjk7XG59XG4uZG9qb0RuZEl0ZW1CZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogMnB4IDAgMCAwO1xuICAgIHBhZGRpbmc6IDAgMnB4IDJweCAycHg7XG59XG4uZG9qb0RuZEl0ZW1BZnRlciB7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDAgMnB4IDA7XG4gICAgcGFkZGluZzogMnB4IDJweCAwIDJweDtcbn1cbi5kb2pvRG5kSG9yaXpvbnRhbCAuZG9qb0RuZEl0ZW1CZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogMCAwIDAgMnB4O1xuICAgIHBhZGRpbmc6IDJweCAycHggMnB4IDA7XG59XG4uZG9qb0RuZEhvcml6b250YWwgLmRvam9EbmRJdGVtQWZ0ZXIge1xuICAgIGJvcmRlci13aWR0aDogMCAycHggMCAwO1xuICAgIHBhZGRpbmc6IDJweCAwIDJweCAycHg7XG59XG5cbi5kb2pvRG5kSXRlbU92ZXIge1xuXHRjdXJzb3I6cG9pbnRlcjtcbn1cbi5kal9nZWNrbyAuZGlqaXRBcnJvd0J1dHRvbklubmVyIElOUFVULFxuLmRqX2dlY2tvIElOUFVULmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdC1tb3otdXNlci1mb2N1czppZ25vcmU7XG59XG4uZGlqaXRGb2N1c2VkIC5kaWppdE1lbnVJdGVtU2hvcnRjdXRLZXkge1xuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbiIsIi8qIERpaml0IGN1c3RvbSBzdHlsaW5nICovXG4uZGlqaXRCb3JkZXJDb250YWluZXIge1xuICAgIGhlaWdodDogMzUwcHg7XG59XG4uZGlqaXRUb29sdGlwQ29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuLmRpaml0Q29udGVudFBhbmUge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIG92ZXJmbG93OiBhdXRvICFpbXBvcnRhbnQ7IC8qIFdpZGdldHMgbGlrZSB0aGUgZGF0YSBncmlkIHBhc3MgdGhlaXIgc2Nyb2xsXG4gICAgb2Zmc2V0IHRvIHRoZSBwYXJlbnQgaWYgdGhlcmUgaXMgbm90IGVub3VnaCByb29tIHRvIGRpc3BsYXkgYSBzY3JvbGwgYmFyXG4gICAgaW4gdGhlIHdpZGdldCBpdHNlbGYsIHNvIGRvIG5vdCBoaWRlIHRoZSBvdmVyZmxvdy4gKi9cbn1cblxuLyogR2xvYmFsIEJvb3RzdHJhcCBjaGFuZ2VzICovXG5cbi8qIENsaWVudCBkZWZhdWx0cyBhbmQgaGVscGVycyAqL1xuLm14LWRhdGF2aWV3LWNvbnRlbnQsIC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcjpub3QoLm14LXNjcm9sbGNvbnRhaW5lci1uZXN0ZWQpLCAubXgtdGFiY29udGFpbmVyLWNvbnRlbnQsIC5teC1ncmlkLWNvbnRlbnQge1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cbmh0bWwsIGJvZHksICNjb250ZW50IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4jY29udGVudCA+IC5teC1wYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuXG4ubXgtbGVmdC1hbGlnbmVkIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LXJpZ2h0LWFsaWduZWQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLm14LWNlbnRlci1hbGlnbmVkIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teC10YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtdGFibGUgdGgsXG4ubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLm14LXRhYmxlIHRoLm5vcGFkZGluZyxcbi5teC10YWJsZSB0ZC5ub3BhZGRpbmcge1xuXHRwYWRkaW5nOiAwO1xufVxuXG4ubXgtb2Zmc2NyZWVuIHtcbiAgICAvKiBXaGVuIHBvc2l0aW9uIHJlbGF0aXZlIGlzIG5vdCBzZXQgSUUgZG9lc24ndCBwcm9wZXJseSByZW5kZXIgd2hlbiB0aGlzIGNsYXNzIGlzIHJlbW92ZWRcbiAgICAgKiB3aXRoIHRoZSBlZmZlY3QgdGhhdCBlbGVtZW50cyBhcmUgbm90IGRpc3BsYXllZCBvciBhcmUgbm90IGNsaWNrYWJsZS5cbiAgICAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm14LWllLWV2ZW50LXNoaWVsZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAtMTtcbn1cblxuLm14LXN3aXBlLW5hdmlnYXRpb24tcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDU0cHg7XG4gICAgd2lkdGg6IDU0cHg7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDI3cHgpO1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMjdweCk7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaE5nQTJBUE1BQVAvLy93QUFBSGg0ZUJ3Y0hBNE9EdGpZMkZSVVZOemMzTVRFeEVoSVNJcUtpZ0FBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQWtLQUFBQUlmNGFRM0psWVhSbFpDQjNhWFJvSUdGcVlYaHNiMkZrTG1sdVptOEFJZjhMVGtWVVUwTkJVRVV5TGpBREFRQUFBQ3dBQUFBQU5nQTJBQUFFeXhESVNhdTlPT3ZOdS85Z0tJNWt5U0VKUVNTSTZVcUtLaFBLV3lMejNOcGltcXNKbnVnM0U0YUlNaVBJOXdzcVBUamlUbGt3cUF3RlRDeFhleFlHczBIMmdnSk9MWUxCUURDeTVnd213WXg5SkpyQXNzSFFYc0tyOUNGdU0zQWxjakowSUFkK0JBTUhMbWxySkFkdUJvNVBsNWlabXB1Y25aNmZjV3FJbUpDamFIT1poaXFtRkl1QWw2NFpzWml6RjZvRXJFSzN1Uk9sbTc2Z3djTER4TVhHeDhYQWo2SWt1NCtvSXJVazBoL1UwV0Vqem5IUUlzcWhrY2pCM3NuY3hkYkM1K0xseWN6aDdrOFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRNRU1oSnE3MDQ2ODI3LzJBb2ptUnBubVZoRUlSUm9HY3hzT3p3d3VSS3N3Wk83anZmQ0VnVGluUzduaEYwbU5FR2h3c2l3VW9nbHBTRHpoQzFLSWlLa1dBd0VKZ1FSTllWSk5pWlNkUjBJdVNzbGRKRlVKMHd1T01KSVcwMGJ5TnhSSE9CWklRamFHbHJXQnhmUUdHUUhsTlZqNVdhbTV5ZG5wOUxZMldib29zV2dpeW1RcWdFcWhON2ZaQ3dHYk95TzdFWHJLNDR1aHFscElxZ3dzUEV4Y2JIeU1lL0tNc2l2U2JQZExjbnRkSlAxTlBPYmlmUmlhUE13Y25DemNyYnlOWEc2TVhkeHVUaTd6NFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRPRU1oSnE3MDQ2ODI3LzJBb2ptUnBubWlxQXNJd0NLc3BFRFFCeCtOUUV3T2U3ejFmYUZhN0NVR3QxMUZZTU5BTUJWTFNTQ3JvYW9Qb2NFY1ZPWGNFZytoS0M1TEF0VEhRaEthSmlMUnU2THNUdjEzeTBJSE1PeXc5QjE4R2ZuK0Zob2VJaVlvWkNBazBDUWlMRmdwb0NobFRSd2h0QkpFV2NEWkNqbTBKRjN4bU1adHVGcVpDcVFRWG4za29vbWlrc0hpWm01MlNBSlJnbHJ3VGpZKzd3Y2JIeU1uS0U1Z296VzljSjdFL1dDZXNhdFVtMTF0RjB0RWp6eks0eTRuaHh0UEkyOGJxd2VqSTV1VHhKaEVBSWZrRUNRb0FBQUFzQUFBQUFEWUFOZ0FBQk1zUXlFbXJ2VGpyemJ2L1lDaU9aR21lYUtvQ3dqQUlxeWtRTkFISDQxQVRBNTd2UFY5b1Zyc0pRYTNYY1lsS0dtV3VKM0luRlJGcDFZNnVGaXh0YVYzUWwzY2FoejlYMnltZDdUaFRiNlo4VHEvYjcvaTh2R0NnR1FvYWNVSUZab0FYYkVkOU93UUdHR1pIaXpXT1FKQ1JCQmlJUW9vN2paaFJTd2RtQjNvVUI0b0dvNlNxcTZ5dE1RZ0pOQWtJckFxUkNpT0NJd2lXQkxSVFJTV3hsZ2toanlTOU5NYVV5TWxEVk1LOXhVT2ZKYnlXdjNxMmk3aEx1aFd3c3RsQ21hdkg1c3lyNWVyVnJ1NDRFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWlaY2dVR05BWUZKSk1pQldhZ1E0TWxuVHNFQmlLTElxczFya0Ftc1RSV3FDU3FPNjFXa1JrSUNUUUpDQmNIWmdkSENyRUt4cW9HeVVJSXRnVEZlc0syQ1h2VXQzcmNCSHZZc2RwNjA3Yldlc3VyelpYQncrZ2lFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWdTQ0FrMENRaVdDanMwQ3BRSW9qV2ZKWk1kbktjRUNhcURJSzQxWGtBaHREUzJYQ0d0cDdBa2p4Nm1ycW5Ca1NLaG9xUVhCUVkwQmdWTG01M0dGUVZtMHBUUG9nYVZ0Tit1bGR3NzNwUUhaZ2VXQjl3RzZwa29FUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2dktVU0Nsa0RnTFFvN05BcC9Fd2lDTlg1Q2NSWjdpQVFKaTFRWGp6VkNacFNWQkpkQUY0NklrVDVzRjRlUGlxSlJHWUdDaElXR2puMnVzck8wdFhZRkJqUUdCYlFGWnJ4UVNpSzVnZ1l5a3lHVkpwakpqOHVkSWNRN3hpV2pJUWRtQjJ1cEl3ZkVCdHEySG95ejFyUE01OURseUxUazR1OHBFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3a1JDVm9Db1dtOWhCTEZqcWFBZGhEVEdyUGtOSDZTV1VLQ3UvTjJ3cldTcmhiOG9HbHFZQWljSFpPSU5ETUhHOTdlWFhvZFVsTlZWbGRnUzRhS2k0eU5qbzhGQmpRR0JZOFhCV3MwQTVWUVhSbVNVd2FkWlJob1VKazhwV0duY2hlZ082SkNlRFlZQjZnREIxYWVHUWVnQnJtV3djTER4TVhHeDF5QUtic2lzNEVnemo5c0o3ZlNtdFN0UTZReTI4M0tLTXpJamVIRTBjYlY1OW5sM2NYazR1OG9FUUE3KTtcbn1cblxuIiwiLyogQmFjYXVzZSB3ZSB1c2UgY2hlY2tib3hlcyB3aXRob3V0IGxhYmVscywgYWxpZ24gdGhlbSB3aXRoIG90aGVyIHdpZGdldHMuICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbjogOXB4IDA7XG59XG5cbi5teC1jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG59XG5cbi5mb3JtLXZlcnRpY2FsIC5mb3JtLWdyb3VwLm14LWNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5mb3JtLXZlcnRpY2FsIC5mb3JtLWdyb3VwLm14LWNoZWNrYm94LmxhYmVsLWFmdGVyIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwLm5vLWNvbHVtbnMge1xuICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuXG4ubXgtcmFkaW9idXR0b25zLmlubGluZSAucmFkaW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG5cbi5teC1yYWRpb2J1dHRvbnMgLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgLyogUmVzZXQgYm9vdHN0cmFwIHJ1bGVzICovXG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLm14LXJhZGlvYnV0dG9ucyAucmFkaW8gbGFiZWwge1xuICAgIC8qIFJlc2V0IGJvb3RzdHJhcCBydWxlcyAqL1xuICAgIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLmFsZXJ0IHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG59XG5cbi5teC1jb21wb3VuZC1jb250cm9sIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubXgtY29tcG91bmQtY29udHJvbCBidXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbltkaXI9XCJydGxcIl0gLm14LWNvbXBvdW5kLWNvbnRyb2wgYnV0dG9uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbiIsIi5teC10b29sdGlwIHtcbiAgICBtYXJnaW46IDEwcHg7XG59XG4ubXgtdG9vbHRpcC1jb250ZW50IHtcbiAgICB3aWR0aDogNDAwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbn1cbi5teC10b29sdGlwLXByZXBhcmUge1xuICAgIGhlaWdodDogMjRweDtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEdBQVlBTVFkQUtYWjhuZkY2NFRMN1F1WDNGZTQ1emFxNGhPYjNmTDYvZnI5L3JyaTlkWHQrWnJVOEN5bTRVbXk1Y0hsOXVQeisySzg2T2oxL056dytyRGQ5TTNxK0pEUTcyckE2aU9pMyszNC9FQ3U0OGpvOXgyZjNnV1YyLy8vL3dBQUFBQUFBQ0gvQzA1RlZGTkRRVkJGTWk0d0F3RUFBQUFoL3d0WVRWQWdSR0YwWVZoTlVEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF3SURjNUxqRTJNRFExTVN3Z01qQXhOeTh3TlM4d05pMHdNVG93T0RveU1TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tFMWhZMmx1ZEc5emFDa2lJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSVUpGTmtVNE5FWkNORVZETVRGRk9EazNNREJCTlVVMVJVTTRRamczUVRVaUlIaHRjRTFOT2tSdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJVSkZOa1U0TlRCQ05FVkRNVEZGT0RrM01EQkJOVVUxUlVNNFFqZzNRVFVpUGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRwRlFrVTJSVGcwUkVJMFJVTXhNVVU0T1Rjd01FRTFSVFZGUXpoQ09EZEJOU0lnYzNSU1pXWTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRHBGUWtVMlJUZzBSVUkwUlVNeE1VVTRPVGN3TUVFMVJUVkZRemhDT0RkQk5TSXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QZ0gvL3YzOCsvcjUrUGYyOWZUejh2SHc3Kzd0N092cTZlam41dVhrNCtMaDROL2UzZHpiMnRuWTE5YlYxTlBTMGREUHpzM015OHJKeU1mR3hjVER3c0hBdjc2OXZMdTZ1YmkzdHJXMHM3S3hzSyt1cmF5cnFxbW9wNmFscEtPaW9hQ2ZucDJjbTVxWm1KZVdsWlNUa3BHUWo0Nk5qSXVLaVlpSGhvV0VnNEtCZ0g5K2ZYeDdlbmw0ZDNaMWRITnljWEJ2Ym0xc2EycHBhR2RtWldSalltRmdYMTVkWEZ0YVdWaFhWbFZVVTFKUlVFOU9UVXhMU2tsSVIwWkZSRU5DUVVBL1BqMDhPem81T0RjMk5UUXpNakV3THk0dExDc3FLU2duSmlVa0l5SWhJQjhlSFJ3Ykdoa1lGeFlWRkJNU0VSQVBEZzBNQ3dvSkNBY0dCUVFEQWdFQUFDSDVCQVVFQUIwQUxBQUFBQUFZQUJnQUFBVWNZQ2VPWkdtZWFLcXViT3UrY0N6UGRHM2ZlSzd2Zk8vL3dPQXJCQUFoK1FRRkJBQWRBQ3dBQUFBQUFRQUJBQUFGQTJBWEFnQWgrUVFGQkFBZEFDd1VBQXdBQVFBQ0FBQUZBeURUaEFBaCtRUUZCQUFkQUN3VEFBc0FBZ0FHQUFBRkMyQVhkRnhuZE1UUU1WMElBQ0g1QkFVRUFCMEFMQkVBQ3dBRUFBZ0FBQVVSWUNjMllpbHlvcldkVm1jTnA4aTBYUWdBSWZrRUJRUUFIUUFzRHdBT0FBWUFCZ0FBQlE5Z0ozYUJNWjRqaDQ0V0I0bkZjSVlBSWZrRUNRUUFIUUFzRFFBUEFBZ0FCZ0FBQlJGZ0o0NGRSSGJCcVlvcEdRd2NPUmhxQ0FBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRkxXQW5qbVJwbm1pcXJtenJ2bkFzejNSdDMzaXVrOEpnRHdRYlIyaWhCVGlOV1c4WTR6aDlHaGxnUnkyRkFBQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZNMkFuam1ScG5taXFybXpydm5Bc3ozUnQzMmh6YzN0U0M3emFZT2VvY1NBMFlNWlZJUWtHd1JhUVE2VjJpaklBYnFzS0FRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZObUFuam1ScG5taXFybXpydm5Bc3ozUnQzMmh6Yy90VVY3eWFJV01MMGppRVZRVUZMS3dDSEVPcFlqQ3lNcHlzbGloYjRMNnJFQUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGT21BbmptUnBubWlxcm16cnZuQXN6M1J0MzJoemN6dFFWN3phcG1BTG1vQXNqZzdGTUI0NWpGV0RzeWxWTnM1VmdjUHRFbU8rQ202c0NnRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCVDlnSjQ1a2FaNW9xcTVzNjc1d0xNOTBiZDhvY1hPQ3plMm14c2ExWVp4K0xRN2cxRUNxT0prVWc3TkljWXlxNXJDMGdicW1uSENZc1lRdGU3aDBLZ1FBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQlVSZ0o0NWthWjVvcXE1czY3NXdMTTkwYmQ4b1lRWXdKNVNjbmluNElwSVlGOWNsV1ZvWVY1ekZLZk5FY1RLcFN4WElURkc3SXkyMnhlQ1l6eGNwVFBxajRONm9FQUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGU21BbmptUnBubWlxcm16cnZuQXN6M1ROYm5iQXdZUzV2NXdBcWZKekZVZEhWckt6WWJnWU9OK2t4YW1jQ2dQV29KRGFaRk9EYUtyQWNaWVlIRzVydzJtN04xWllSUmkzMlZjaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVlBZQ2VPWkdtZWFLcXViT3UrY0N6UDVVYlFJb2QzZ3I3N3JodkpBbXh4TEtVaVM5bmhURjVNQThQRk1KaDZMbzdneEJpd0JsUFV4cHNhYkZZTVRwaVVYcXNFQm81OGJ0akN0aGI3YnI4S0FRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZVMkFuam1ScG5taXFybXpydmpETFhERXBjRFZwWlBtSTk1MGJVUFJ6UVVxUVlvdHpKQ2xaejhsenhabVVEQVZYd1hDYW9yeWRDM2Rsb0tFTTQzTWFkZUZrU3dXT2VSVXdjTzU0UXlBbU9BcUdnQzBoQUNINUJBVUVBQjBBTEFBQUFBQVlBQmdBQUFWWFlDZU9aR21lYUtxdWJMdHVsbnNhaG14dXRVMEduRjRPRFIrcEp4VHhpaUpDemhYNzJRYUVIZEUxSFZWWkhNQXY0OG9NVE1jV0ozRENzUXliMUdBNSs2bzJIRzRwdzBtekFnTU9aNURmazIwQlVYOUloQzBoQUNINUJBa0VBQjBBTEFJQUF3QVVBQk1BQUFVL1lDZUsxdENNYUpweWhPcU93L2JPOUd6VmM0dnY5YzJuc2w5QVpQaDFpajZqY3JRUW5YYlBEc1E0SFFWcFYxUld0VTFGUjE5WDlWZ1VqV20rWkNvRUFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVmJZQ2VPWkdtZWFLcU9GckdpeE1CeHpHc2FuR3VidzdhZkJ0K3ZST0FNVGJsanlhaGtNWnVkaG5BWEtFbUhtOFp5K0JRdHVpL09ZcWw3RlUvZ1ZQSTJUVzBNcVo1cU0xamh5cU1pM0R6amJEWjllRFlRRFZwalVJZy9JUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGWUdBbmptUnBubWlxaWxXWFpjUnFFaHczWE5jZ2t3WUg3U2ZPQlhneURJa2xHdExrVzVZNFRoSkJGeFZsamtCQjZZcThaRXBVWUpnRkpYSmFwT1lPVXBhMlY1eVl5U2k3R0ZKQzFlVmRWSlBZZHpJME5qZ0ROWEpFQkYrSVZZMUFJUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGWldBbmptUnBubWlxaWtKWEZNUnFOaHhuTUlWUngvTEFXYWFBck1OaERGRUQ0M0hHV1o1K3pwS2dHUzBacXFTQ2Npa2NhWjA0RXVHNk5QQkcxR01hRFJ4YTFpS2F1bkZLeWhpRFZGSEZnSnQ4YlNSdmVUSTBOZ3dNT2h4MFRnUXZIUzFZa2xFaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVm1ZQ2VPWkdtZWFLcUtRY01VeldwbUhMZDF4VlpuY2pjTUFWUGdwMXB3Q2lyR0RUVkE5azZad1JQRm1aNENWV3Vwc2RTT1h0cmdWMXRna0xqV1RZeVVmYlpISExFTU81UDJCanhUVTFhd240NHFCVzhtQzBSQ2hpczBOZ1U1TzFZdFptdGVrNU1oQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFWbllDZU9aR21lYUtxS1FYWmQyV29XSEhkMURWTVhjc1VOSjRHQnMrTHdVclFLeWlpam5RcEFXY2R3NGdTa3FBQVJlM0p4VDdkdngwS0NmYjBqTk5aTTJtTGRJeXRXTzR2S0JzY1NjK1ZjNXA5d1ZYWWtBUU9CS0RRMkdTNDdYeTB2SFZkaWs1UWlJUUFoK1FRRkJBQWRBQ3dBQUFBQUdBQVlBQUFGYm1BbmptUnBubWlxaWxheGJjVnFNaHpIZEExdHl3Sm5uQUlEUjZEaVpGUVpUc29vUzU0WVAxbkhjQ3NOcFNJbHlhTEZjZ0trUWhWcjJwQkZpOUttY1c2WVIrSXpJMGJxU3UxWm9qZFJnbUtwSjB3clRpaUNLSVFvUFZFbFFYZ29PZ3dOT1RWalVpMW1kR2VhbXlVaEFDSDVCQVVFQUIwQUxBSUFBZ0FVQUJRQUFBVmJZQ2VPa01HZG5BR05MSWx5dy9DdWJjZWNXWjJkVEhzYk5aYXBKNEtrZ2kwVDdZU3NNWTI1Sm10WDRraWRKdXVWaFJwc1dUTFlkeFRXamsrbXNTZ0ZIVk03ekcvY0NMd3FSei9wMElmVDhZSkdYV1VjTkVoVktDbzFJUUFoK1FRRkJBQWRBQ3dCQUFFQUZnQVdBQUFGWjJBbmptUFZCV1NxbmdaSGNnYTZqc2JyMG5OMTEyVEZjNmFVNnpZYnBtckVXY2ZGTzRrRXloSFUyYWsxbzlYc0VydHlCYm1xWUpKN1E0MnhMaG00MlBsaVRUc3QxeXBTYzZkcUpGa3VHazVWQWtZcE9pSlhiVDlLVnh4Smhpb0JMUytOVVNaMktpRUFJZmtFQ1FRQUhRQXNBUUFCQUJZQUZnQUFCV3BnSjQ2aWxWMVgxazFrUzE2Y3kxMHUyY1MxeURVMU0zSUVFZ0hYOGRsR3dWcXl3L3ZsY2tSYVovbE1TbVBFcDY0VHM0aW8ycVJKcXoyUm42aHpMcVd1cWI1dEtyWTk3MGpCU3BHVTI5Nk9tbE01UzRBaVJseFVReU9HTmxreWhDNHdNbnRrSmlncUxDNGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVYrWUNlT1pHbWVwVlZjVjlaTjZMbHhkRTF2OGRqWWZOM0VEQnVFQkxFeFRqdmE4RlNrL1VxMW5DaEttbkdXdVNadVJKVjJ1aGFsbDh1eGlESzBNZG5WdWFUVlg4NUY1T2JBNC9NTzJnNm5zZU5ZVWsxbVUyOWVYUjFXZ1NoYUpBdUlLSkFkU1ZlTVBpZEJrRTAwUnlpVVBaZFNWajFiYWhZWkxCbUVkM0FoQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFXQllDZU9aR21lcFZWY1Y5Rk42TGx4ZEUxdjhkallmTjNFakpyQlpLZ3hUanRhVE9BejFYS2lKMm5HRVVDakhOeUlOcngyaXB5UlJlbnRNRGtXVVlGY3ByazZGN2FYZGhIRncrVU9YUzIvdXJkVlpXY2tYR1ZnVTMweE55UUxVamsxQ3lWSmdTZG5IRDhtUVlVa0FtQWNSeWlUUFUxUVZEMWFaU29zQldsNXJoMGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVdDWUNlT1pHbWVwVlZjVjlGTjZMbHhkRTF2OGRqWWZOM0VqTnJGZEtreFRqdk9JRGVnL1VxMFphN1Q1SlJtMXFub1JxSU50WjFpdG1PaGdVYzBpNmhnUG5kb3JuRDc3QldKM1cvT2x6MEd3OUY5VXdCcEloTjFZSGNqV0hRY09GMUtXbFVtU1FNQU1WVlBKVUdISXdCaUhFY29TVDAybVRGWVBZNW5LaXd1TUhodUlRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZlbUFuam1ScG5xV1ZNVXlHdmhjbnovTDFqZzJ0ejgxYnpLNVNabFk0NVRpR20wSFdLOG1TdDg2U1U0cFJvNklhU1JiRURxOGRpd3k3NVZoRVgvS0lLMktNMVIwWm8vMVd5OUYxTWpzTDF2ZjNYaklUSTFaMkhEWmxVRXA1SWtlS0oxTk5KVCtBSTE4Y1JTaEhPelNTTUp5SGNHRXJMUjJEb25BaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVjlZQ2VPWkdtZVpkQXdUSU8rRnlmUDh2V09CRDFjMTBBVHI4SU1Zb0xNQ3FjY3h3YVRBVXUxbXlqR0tWR2xvMmlXUThSMmpGVlJRT2JkQmtRTnpxQXM4bzBZUzNZbnhoREJtV1Y2ZHMzMnVUcGpZV1ZrVzExWVlDUlhYbHBiZUUyQ09Jd25WRThsUWpLR0kyQWNTQzg2UEQ0elhsUTBrbGhuTEg5eWNpRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCWDFnSjQ1a2FaNWwwQlJGZzc0TUo4OHk4NDRFZlhYWlJST3ZqR3h3RWd4a21WT09rd3pLZ0NYa1RTVGtsR0xFcWVob0c4bTBwSzhvSUFaM1pBRlJnN016ZDN5akF0UE40eFJFY25yOUxtTFQ0V05sWUdoZUhBSnVnbGhtWEZGelUxVW1TMDBvVlZBbFZWa2xSbEl2T2hrOU5HQXhORE5kWmlvZExYcDZJUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGZ0dBbmptUnBucVhRRkZrbm9HakJ6ZlJjd0NORUR4M1JaUU1hQk5hWWJWQ2JXZU9rNCtCNnM5UE05K3hFU2JKanRaTzhqYTViQUZqQTRXMUZ3WmVJMHpyL25LSU1oK3BteCtGdWdoM2FQc3ZwWlc0ZFFTUmdXNFpaWjEwbFUxVjZlRG1OTUk5REprVWNXaVpKa0ZJekF4aytRRUpWTWpVMFhtY3ZHYUNDclIwaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVjZZQ2VPWkdtZXBkQmxHWUcrR1NmUGN2YU8xcnk1UWJmTmxoZEJWa0FWWks2VDdOWUpMRTJ5SHJQekhNV0swODdSTnFwbXF3TE9KanY2cVVTY0pIbG81WkJKSEc1TVNuWnkyZThPSGoxK203dHViMTVYWkZzbFVWK0JKRG1LS0U0Y1FTWkRIRmdtUjJrM09qd0VQMTR3TkRSY1pDb3NIV2Q1YnlFQUlma0VDUVFBSFFBc0FBQUFBQmdBR0FBQUJYcGdKNDVrYVo1bDFXVk5wNkpueHMzMG5NRmpRQmR1RnhTMEFJd3dHeFpSbkFGT05PQUlTOGRsSnlxU0VhUWk0bTFFbFVZckhCNVdCQ1J4eG1hSXFNRjVqY0d0RGh2TmpVK2ZZOTBJTEI2WHVXZG9WRlpqV2xDQlhvaG1Ta3ROZUNSRUhGY25rWk1uT2pNOEtqOUJVakkxTkZ0b0VBMHRiblJqSVFBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRmdHQW5qbVJwbmlaRWRCYnFObHdzeDQwN0NyR3hkbE5IR0RHQkM4SVp1QUlEam90anNJbUF3bExST1VxV1lBR3FLTUNwalpqYUVaREUyWVU3U3BFbGZhNXdXajcydVN3aXlNTjBFYWR5N3JoSEMzZGFIQXRmVFdkakkxaGhYRjVmUmxwV0ptQk9pU2xGV1NkSUhCQXVPRXc3UFQ4eFdqQXpNbzVoRml0d2ZYMGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVYxWUNlT1pHbWVwa1YwQWVvU1hDekhxeXRXOFVWTzNSWGJIWTdCWnVCWVRqZ2QwSGNTQWtmRkV1dzVXbkJxSW82UzJ1T1FPQzF1ZGhUd2lqc1RzR2g2RG1MTlozaTVIUXpYei9PUjlzd2NzYmxYSlU1VVVTVkpUejRWS0VJTEtBdEZSeWc0ZXlNOFBuQTJNRE15V0Z3QkJDc0FkR0loQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFWellDZU9aR21lWmdCMUFlb1NBeWZQQStHU2NWWldHVGZjQWM3bGR1RzBUaHpkclZQZ25BYkRwZWp5SXhHYzBoSEhOaG9vczUxTVZZUUZrMGRCcy9ZSUtaczVxN082QXhlbDUyNU9SVjF4ZTlWaVZtNVNXeVZRWUZSSUJWSk5LRUZSS0VWSEtEazdQV00zTURNMFhHWXFjWE5xSVFBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRmQyQW5qbVJwbm1iUVdkMkVvdERBY1lZeEQ5QkxEZ05oRWp4ZGdKUFJaVGlxRThlbkUzRk9nMkpUbEJtVVl0TmRidFRMam9Da3AzY2s3Z2pLWTQ1Z1pCaXpSNWEydTJOZ09lZWQ4Z1R0NWJoRVhXTmdPMjQ0SlZGZVZTWUxTMU1FZkdGU0tFZE5QRXdrUUZaVE1UTTFOMXRqYXl4L2VGa2hBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVZvWUNlT1pHbWVwdEFGYU50WkJtY3dUR3hZN21nWXA3QzdBZzdFQmVHMGpMa1ZzbVFZSmpzUUhnbjIxT0YwVlpKVXRNd3VmVm1kU3NRSWswZUJzcG5CRW0yejcyNjFheGhYd1NNcTNOU3NSazl5UnloQlRpaEZkaWMvS1lvNU1ESTBObVlkS20yU1dTRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCV3hnSjQ1a2FaNW0xUVZvdXhvYzB6UU1aN0N1YURBb1k3Z1ZUazRnUkJWekhjN0VaQkFnUllJZktjQjdpcW9qcVZWSE9tNlBGZXlXb1JJMXRxT3pDSWZ1cUsvdERubmt0WG9OaTdaMjFXYXdkVTVQVVNkMUxZVWlRWUVvUkRrN1BYc3RBVEF5TkRaL1ZwZHhUeUVBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQldOZ0o0NWthWjVtMVFsbzJ3V2IwWFJRWTJ5Qk8yN3oyV3c2ZzY0alJCa2NRK0xFQkV5S21xTkF6emw5T2tsUTRuVlVGRldwcXRWMkJCa0p5bU8wZDl5cGRxL3ZyRE1yM1g2MThOUGJaVmlhRm50NkN5NDhLRDlKTURJME5qaGpLaXhzV3lFQUlma0VDUVFBSFFBc0FBQUFBQmdBR0FBQUJWaGdKNDVrYVo3bTBnbG91MjdGMmxuRjVwSTJhdVV0M3dNb24wc29JZzVMQXN1dHBNUXRUYjdZa3lRVk5hZldFUXRMMnNxNDN5ejQycWxpemNhYmtMeGtkOUxCRTd5VUJzeUxhcmYxUG9JcFdUVmdJaXdxZ2xnaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVlpZQ2VPWkdtZXA5QUJhTnN4aE5xcGpPeSt0c25jeGQzMUtLQlBTTnI1UnNaUjdyaE1Ia1ZPd3BQVUlDMmZyT21wSXVKcVI5N1pWenlTZnF2SXNaTThiV3JYSXFKTFRxS2I3TVdyU0FCSHdUb0xZbjArWGdwalV5RUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCVkZnSjQ1a2FaNW5oYTVqWm9sSloyVXNTYVBBdlJKMXg2Ty9YdERXSTVZQVJaS3FsVFNLWHMxb2JTSmFTcSttbUlpSzVjcXVVSkd1T2NhYXlqVzBMemtzdFUvdmtwclpxOUNRSFdURzJ1U2JleUVBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQlVsZ0o0NWthWjVuaGE0anBJcE9CN0Vrd2Rwc1FIYzYydSsvMms0NExNcU1MZVF1cHV4TVJJdW05QlNGVGErZGwyaW01R0pMdUdLWUZNeXR5dEt4U2IzeWlpcnU0clA2WllVQUFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVTVZQ2VPWkdtZUo0Q3VZMUNxS2l1Nk1ydlVkNjJiOU43dnRaOFBTQ3dtUkxHaU1yVkVKWnZMMzdNcGxGV2hwWnpOaW0zeGxxcGpseFVDQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFVM1lDZU9aR21lNklTdTRtSzY3RmpGTkoyc2Q2M0g4MTdEUHFCdlNDeUtWRVdrY1lrUzZweE1VUys2azFCWDAxT1dCWVhxbE5kVENBQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZMR0Fuam1ScG5taXFvdFBxdm5Bc3oySkxxL2F0Ny96cDlNRGdLQmNqQ284OHhVdXBNNmFjVHRnUGFRb0JBQ0g1QkFVRUFCMEFMQUFBQUFBWUFCZ0FBQVVqWUNlT1pHbWVhS3F1Yk91K2NMeFNjbTNmZUk3VGV0L3p2cUJ3eUFLV2pDOGtNUVFBT3c9PSkgbm8tcmVwZWF0IHNjcm9sbCBjZW50ZXIgY2VudGVyO1xufVxuLm14LXRvb2x0aXAtY29udGVudCAudGFibGUgdGgsXG4ubXgtdG9vbHRpcC1jb250ZW50IC50YWJsZSB0ZCB7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbn1cbiIsIi5teC10YWJjb250YWluZXItcGFuZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLm14LXRhYmNvbnRhaW5lci1jb250ZW50LmxvYWRpbmcge1xuICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaE5nQTJBUE1BQVAvLy93QUFBSGg0ZUJ3Y0hBNE9EdGpZMkZSVVZOemMzTVRFeEVoSVNJcUtpZ0FBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQWtLQUFBQUlmNGFRM0psWVhSbFpDQjNhWFJvSUdGcVlYaHNiMkZrTG1sdVptOEFJZjhMVGtWVVUwTkJVRVV5TGpBREFRQUFBQ3dBQUFBQU5nQTJBQUFFeXhESVNhdTlPT3ZOdS85Z0tJNWt5U0VKUVNTSTZVcUtLaFBLV3lMejNOcGltcXNKbnVnM0U0YUlNaVBJOXdzcVBUamlUbGt3cUF3RlRDeFhleFlHczBIMmdnSk9MWUxCUURDeTVnd213WXg5SkpyQXNzSFFYc0tyOUNGdU0zQWxjakowSUFkK0JBTUhMbWxySkFkdUJvNVBsNWlabXB1Y25aNmZjV3FJbUpDamFIT1poaXFtRkl1QWw2NFpzWml6RjZvRXJFSzN1Uk9sbTc2Z3djTER4TVhHeDhYQWo2SWt1NCtvSXJVazBoL1UwV0Vqem5IUUlzcWhrY2pCM3NuY3hkYkM1K0xseWN6aDdrOFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRNRU1oSnE3MDQ2ODI3LzJBb2ptUnBubVZoRUlSUm9HY3hzT3p3d3VSS3N3Wk83anZmQ0VnVGluUzduaEYwbU5FR2h3c2l3VW9nbHBTRHpoQzFLSWlLa1dBd0VKZ1FSTllWSk5pWlNkUjBJdVNzbGRKRlVKMHd1T01KSVcwMGJ5TnhSSE9CWklRamFHbHJXQnhmUUdHUUhsTlZqNVdhbTV5ZG5wOUxZMldib29zV2dpeW1RcWdFcWhON2ZaQ3dHYk95TzdFWHJLNDR1aHFscElxZ3dzUEV4Y2JIeU1lL0tNc2l2U2JQZExjbnRkSlAxTlBPYmlmUmlhUE13Y25DemNyYnlOWEc2TVhkeHVUaTd6NFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRPRU1oSnE3MDQ2ODI3LzJBb2ptUnBubWlxQXNJd0NLc3BFRFFCeCtOUUV3T2U3ejFmYUZhN0NVR3QxMUZZTU5BTUJWTFNTQ3JvYW9Qb2NFY1ZPWGNFZytoS0M1TEF0VEhRaEthSmlMUnU2THNUdjEzeTBJSE1PeXc5QjE4R2ZuK0Zob2VJaVlvWkNBazBDUWlMRmdwb0NobFRSd2h0QkpFV2NEWkNqbTBKRjN4bU1adHVGcVpDcVFRWG4za29vbWlrc0hpWm01MlNBSlJnbHJ3VGpZKzd3Y2JIeU1uS0U1Z296VzljSjdFL1dDZXNhdFVtMTF0RjB0RWp6eks0eTRuaHh0UEkyOGJxd2VqSTV1VHhKaEVBSWZrRUNRb0FBQUFzQUFBQUFEWUFOZ0FBQk1zUXlFbXJ2VGpyemJ2L1lDaU9aR21lYUtvQ3dqQUlxeWtRTkFISDQxQVRBNTd2UFY5b1Zyc0pRYTNYY1lsS0dtV3VKM0luRlJGcDFZNnVGaXh0YVYzUWwzY2FoejlYMnltZDdUaFRiNlo4VHEvYjcvaTh2R0NnR1FvYWNVSUZab0FYYkVkOU93UUdHR1pIaXpXT1FKQ1JCQmlJUW9vN2paaFJTd2RtQjNvVUI0b0dvNlNxcTZ5dE1RZ0pOQWtJckFxUkNpT0NJd2lXQkxSVFJTV3hsZ2toanlTOU5NYVV5TWxEVk1LOXhVT2ZKYnlXdjNxMmk3aEx1aFd3c3RsQ21hdkg1c3lyNWVyVnJ1NDRFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWlaY2dVR05BWUZKSk1pQldhZ1E0TWxuVHNFQmlLTElxczFya0Ftc1RSV3FDU3FPNjFXa1JrSUNUUUpDQmNIWmdkSENyRUt4cW9HeVVJSXRnVEZlc0syQ1h2VXQzcmNCSHZZc2RwNjA3Yldlc3VyelpYQncrZ2lFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWdTQ0FrMENRaVdDanMwQ3BRSW9qV2ZKWk1kbktjRUNhcURJSzQxWGtBaHREUzJYQ0d0cDdBa2p4Nm1ycW5Ca1NLaG9xUVhCUVkwQmdWTG01M0dGUVZtMHBUUG9nYVZ0Tit1bGR3NzNwUUhaZ2VXQjl3RzZwa29FUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2dktVU0Nsa0RnTFFvN05BcC9Fd2lDTlg1Q2NSWjdpQVFKaTFRWGp6VkNacFNWQkpkQUY0NklrVDVzRjRlUGlxSlJHWUdDaElXR2puMnVzck8wdFhZRkJqUUdCYlFGWnJ4UVNpSzVnZ1l5a3lHVkpwakpqOHVkSWNRN3hpV2pJUWRtQjJ1cEl3ZkVCdHEySG95ejFyUE01OURseUxUazR1OHBFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3a1JDVm9Db1dtOWhCTEZqcWFBZGhEVEdyUGtOSDZTV1VLQ3UvTjJ3cldTcmhiOG9HbHFZQWljSFpPSU5ETUhHOTdlWFhvZFVsTlZWbGRnUzRhS2k0eU5qbzhGQmpRR0JZOFhCV3MwQTVWUVhSbVNVd2FkWlJob1VKazhwV0duY2hlZ082SkNlRFlZQjZnREIxYWVHUWVnQnJtV3djTER4TVhHeDF5QUtic2lzNEVnemo5c0o3ZlNtdFN0UTZReTI4M0tLTXpJamVIRTBjYlY1OW5sM2NYazR1OG9FUUE3KSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDMycHggMzJweDtcbn1cbi5teC10YWJjb250YWluZXItdGFicyB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLm14LXRhYmNvbnRhaW5lci10YWJzIGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubXgtdGFiY29udGFpbmVyLWluZGljYXRvciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6ICNmMmRlZGU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGNvbG9yOiAjYjk0YTQ4O1xuICAgIHRvcDogMHB4O1xuICAgIHJpZ2h0OiAtNXB4O1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB6LWluZGV4OiAxOyAvKiBpbmRpY2F0b3Igc2hvdWxkIG5vdCBoaWRlIGJlaGluZCBvdGhlciB0YWIgKi9cbn1cbiIsIi8qIGJhc2Ugc3RydWN0dXJlICovXG4ubXgtZ3JpZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IC8qIHRvIHByZXZlbnQgYW55IG1hcmdpbiBmcm9tIGVzY2FwaW5nIGdyaWQgYW5kIGZvb2JhcmluZyBvdXIgc2l6ZSBjYWxjdWxhdGlvbnMgKi9cbn1cbi5teC1ncmlkLWNvbnRyb2xiYXIsIC5teC1ncmlkLXNlYXJjaGJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uLFxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIC5teC1idXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIC5teC1idXR0b24gKyAubXgtYnV0dG9uLFxuLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uICsgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xufVxuXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXNlYXJjaC1jb250cm9scyAubXgtYnV0dG9uICsgLm14LWJ1dHRvbixcbltkaXI9XCJydGxcIl0gLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uICsgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjNlbTtcbn1cblxuLm14LWdyaWQtcGFnaW5nYmFyLFxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4ubXgtZ3JpZC10b29sYmFyLCAubXgtZ3JpZC1zZWFyY2gtaW5wdXRzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBmbGV4OiAxO1xufVxuXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXRvb2xiYXIsXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXNlYXJjaC1pbnB1dHMge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXBhZ2luZ2JhcixcbltkaXI9XCJydGxcIl0gLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIHtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLm14LWdyaWQtcGFnaW5nLXN0YXR1cyB7XG4gICAgcGFkZGluZzogMCA4cHggNXB4O1xufVxuXG4vKiBzZWFyY2ggZmllbGRzICovXG4ubXgtZ3JpZC1zZWFyY2gtaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLm14LWdyaWQtc2VhcmNoLWxhYmVsIHtcbiAgICB3aWR0aDogMTEwcHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbltkaXI9XCJydGxcIl0gLm14LWdyaWQtc2VhcmNoLWxhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LWdyaWQtc2VhcmNoLWlucHV0IHtcbiAgICB3aWR0aDogMTUwcHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4ubXgtZ3JpZC1zZWFyY2gtbWVzc2FnZSB7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbn1cblxuLyogd2lkZ2V0IGNvbWJpbmF0aW9ucyAqL1xuLm14LWRhdGF2aWV3IC5teC1ncmlkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbiIsIi5teC1jYWxlbmRhciB7XG4gICAgei1pbmRleDogMTAwMDtcbn1cblxuLm14LWNhbGVuZGFyLW1vbnRoLWRyb3Bkb3duLW9wdGlvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLm14LWNhbGVuZGFyLCAubXgtY2FsZW5kYXItbW9udGgtZHJvcGRvd24ge1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ubXgtY2FsZW5kYXItbW9udGgtY3VycmVudCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ubXgtY2FsZW5kYXItbW9udGgtc3BhY2VyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5teC1jYWxlbmRhciwgLm14LWNhbGVuZGFyLW1vbnRoLWRyb3Bkb3duLW9wdGlvbnMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JleTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbiIsIi5teC1kYXRhZ3JpZCB0ciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXgtZGF0YWdyaWQgdHIubXgtZGF0YWdyaWQtcm93LWVtcHR5IHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5teC1kYXRhZ3JpZCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm14LWRhdGFncmlkIHRoLCAubXgtZGF0YWdyaWQgdGQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG5cbi8qIGhlYWQgKi9cbi5teC1kYXRhZ3JpZCB0aCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBSZXF1aXJlZCBmb3IgdGhlIHBvc2l0aW9uaW5nIG9mIHRoZSBjb2x1bW4gcmVzaXplcnMgKi9cbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG59XG4ubXgtZGF0YWdyaWQtaGVhZC1jYXB0aW9uIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubXgtZGF0YWdyaWQtc29ydC1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kYXRhZ3JpZC1zb3J0LWljb24ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmc6IDAgNXB4IDAgMDtcbn1cbi5teC1kYXRhZ3JpZC1jb2x1bW4tcmVzaXplciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAtNnB4O1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kYXRhZ3JpZC1jb2x1bW4tcmVzaXplciB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogLTZweDtcbn1cblxuLyogYm9keSAqL1xuLm14LWRhdGFncmlkIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICBib3JkZXItdG9wOiBub25lO1xufVxuLm14LWRhdGFncmlkIHRib2R5IHRyOm50aC1jaGlsZCgybisxKSB0ZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbn1cbi5teC1kYXRhZ3JpZCB0Ym9keSAuc2VsZWN0ZWQgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG59XG4ubXgtZGF0YWdyaWQtZGF0YS13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubXgtZGF0YWdyaWQgdGJvZHkgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE2cHg7XG4gICAgbWF4LWhlaWdodDogMTZweDtcbn1cbi5teC1kYXRhZ3JpZCBpbnB1dCxcbi5teC1kYXRhZ3JpZCBzZWxlY3QsXG4ubXgtZGF0YWdyaWQgdGV4dGFyZWEge1xuICAgIGN1cnNvcjogYXV0bztcbn1cblxuLyogZm9vdCAqL1xuLm14LWRhdGFncmlkIHRmb290IHRoLFxuLm14LWRhdGFncmlkIHRmb290IHRkIHtcbiAgICBwYWRkaW5nOiAzcHggOHB4O1xufVxuLm14LWRhdGFncmlkIHRmb290IHRoIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbn1cbi5teC1kYXRhZ3JpZC5teC1jb250ZW50LWxvYWRpbmcgLm14LWNvbnRlbnQtbG9hZGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBhbmltYXRpb246IHBsYWNlaG9sZGVyR3JhZGllbnQgMXMgbGluZWFyIGluZmluaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAjRjVGNUY1O1xuICAgIGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGNUY1RjUgMCUsICNGNUY1RjUgNSUsICNGOUY5RjkgNTAlLCAjRjVGNUY1IDk1JSwgI0Y1RjVGNSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMHB4IDEwMHB4O1xuICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG59XG5Aa2V5ZnJhbWVzIHBsYWNlaG9sZGVyR3JhZGllbnQge1xuICAgIDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwcHggMDsgfVxuICAgIDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTAwcHggMDsgfVxufVxuXG4ubXgtZGF0YWdyaWQtdGFibGUtcmVzaXppbmcgdGgsXG4ubXgtZGF0YWdyaWQtdGFibGUtcmVzaXppbmcgdGQge1xuICAgIGN1cnNvcjogY29sLXJlc2l6ZSAhaW1wb3J0YW50O1xufVxuIiwiLm14LXRlbXBsYXRlZ3JpZC1jb250ZW50LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5teC10ZW1wbGF0ZWdyaWQtcm93IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG59XG4ubXgtdGVtcGxhdGVncmlkLWl0ZW0ge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubXgtdGVtcGxhdGVncmlkLWVtcHR5IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuLm14LXRlbXBsYXRlZ3JpZC1pdGVtLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuLm14LXRlbXBsYXRlZ3JpZC1pdGVtIC5teC10YWJsZSB0aCxcbi5teC10ZW1wbGF0ZWdyaWQtaXRlbSAubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG59XG4iLCIubXgtc2Nyb2xsY29udGFpbmVyLWhvcml6b250YWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG4ubXgtc2Nyb2xsY29udGFpbmVyLWhvcml6b250YWwgPiBkaXYge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItd3JhcHBlciB7XG4gICAgcGFkZGluZzogMTBweDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItbmVzdGVkIHtcbiAgICBwYWRkaW5nOiAwO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1maXhlZCA+IC5teC1zY3JvbGxjb250YWluZXItbWlkZGxlID4gLm14LXNjcm9sbGNvbnRhaW5lci13cmFwcGVyLFxuLm14LXNjcm9sbGNvbnRhaW5lci1maXhlZCA+IC5teC1zY3JvbGxjb250YWluZXItbGVmdCA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcixcbi5teC1zY3JvbGxjb250YWluZXItZml4ZWQgPiAubXgtc2Nyb2xsY29udGFpbmVyLWNlbnRlciA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcixcbi5teC1zY3JvbGxjb250YWluZXItZml4ZWQgPiAubXgtc2Nyb2xsY29udGFpbmVyLXJpZ2h0ID4gLm14LXNjcm9sbGNvbnRhaW5lci13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLm14LXNjcm9sbGNvbnRhaW5lci1tb3ZlLWluIHtcbiAgICB0cmFuc2l0aW9uOiBsZWZ0IDI1MG1zIGVhc2Utb3V0O1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1tb3ZlLW91dCB7XG4gICAgdHJhbnNpdGlvbjogbGVmdCAyNTBtcyBlYXNlLWluO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zaHJpbmsgLm14LXNjcm9sbGNvbnRhaW5lci10b2dnbGVhYmxlIHtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB3aWR0aDtcbn1cblxuLm14LXNjcm9sbGNvbnRhaW5lci10b2dnbGVhYmxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zbGlkZSA+IC5teC1zY3JvbGxjb250YWluZXItdG9nZ2xlYWJsZSA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItcHVzaCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zaHJpbmsgPiAubXgtc2Nyb2xsY29udGFpbmVyLXRvZ2dsZWFibGUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubXgtc2Nyb2xsY29udGFpbmVyLXB1c2gubXgtc2Nyb2xsY29udGFpbmVyLW9wZW4gPiBkaXYsXG4ubXgtc2Nyb2xsY29udGFpbmVyLXNsaWRlLm14LXNjcm9sbGNvbnRhaW5lci1vcGVuID4gZGl2IHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5teC1zY3JvbGxjb250YWluZXItcHVzaC5teC1zY3JvbGxjb250YWluZXItb3BlbiA+IC5teC1zY3JvbGxjb250YWluZXItdG9nZ2xlYWJsZSxcbi5teC1zY3JvbGxjb250YWluZXItc2xpZGUubXgtc2Nyb2xsY29udGFpbmVyLW9wZW4gPiAubXgtc2Nyb2xsY29udGFpbmVyLXRvZ2dsZWFibGUge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuIiwiLm14LW5hdmJhci1pdGVtIGltZyxcbi5teC1uYXZiYXItc3ViaXRlbSBpbWcge1xuICAgIGhlaWdodDogMTZweDtcbn1cblxuIiwiLm14LW5hdmlnYXRpb250cmVlIC5uYXZiYXItaW5uZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RmZTZlYTtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSBsaTpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgY29sb3I6ICM3Nzc7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgYS5hY3RpdmUge1xuICAgIGNvbG9yOiAjRkZGO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQ6ICMzNDk4REI7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLm14LW5hdmlnYXRpb250cmVlIC5teC1uYXZpZ2F0aW9udHJlZS1jb2xsYXBzZWQgdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHtcbiAgICBwYWRkaW5nOiA1cHggMDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB7XG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICBwYWRkaW5nOiA1cHggMDtcbn1cbltkaXI9XCJydGxcIl0gLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHVsIGxpIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB1bCBsaSB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIHBhZGRpbmctdG9wOiAzcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB1bCBsaSBpbWcge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4iLCIubXgtbGluayBpbWcsXG4ubXgtYnV0dG9uIGltZyB7XG4gICAgaGVpZ2h0OiAxNnB4O1xufVxuLm14LWxpbmsge1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiIsIi5teC1ncm91cGJveCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5teC1ncm91cGJveC1oZWFkZXIge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gICAgY29sb3I6ICNlZWU7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG59XG4ubXgtZ3JvdXBib3gtY29sbGFwc2libGUgPiAubXgtZ3JvdXBib3gtaGVhZGVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZ3JvdXBib3guY29sbGFwc2VkID4gLm14LWdyb3VwYm94LWhlYWRlciB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLm14LWdyb3VwYm94LWJvZHkge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5teC1ncm91cGJveC5jb2xsYXBzZWQgPiAubXgtZ3JvdXBib3gtYm9keSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5teC1ncm91cGJveC1oZWFkZXIgKyAubXgtZ3JvdXBib3gtYm9keSB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgNHB4IDRweDtcbn1cbi5teC1ncm91cGJveC1jb2xsYXBzZS1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5bZGlyPVwicnRsXCJdIC5teC1ncm91cGJveC1jb2xsYXBzZS1pY29uIHtcbiAgICBmbG9hdDogbGVmdDtcbn1cbiIsIi5teC1kYXRhdmlldyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm14LWRhdGF2aWV3LWNvbnRyb2xzIHtcbiAgICBwYWRkaW5nOiAxOXB4IDIwcHggMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlO1xufVxuXG4ubXgtZGF0YXZpZXctY29udHJvbHMgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4ubXgtZGF0YXZpZXctY29udHJvbHMgLm14LWJ1dHRvbiArIC5teC1idXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjNlbTtcbn1cblxuLm14LWRhdGF2aWV3LW1lc3NhZ2Uge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbn1cbi5teC1kYXRhdmlldy1tZXNzYWdlID4gZGl2IHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4ubXgtZGF0YXZpZXctbWVzc2FnZSA+IGRpdiA+IHAge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qIFRvcC1sZXZlbCBkYXRhIHZpZXcgaW4gd2luZG93IGlzIGEgc3BlY2lhbCBjYXNlLCBoYW5kbGUgaXQgYXMgc3VjaC4gKi9cbi5teC13aW5kb3ctdmlldyAubXgtd2luZG93LWJvZHkge1xuICAgIHBhZGRpbmc6IDA7XG59XG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRlbnQsXG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LXBsYWNlaG9sZGVyID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDE1cHg7XG59XG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRyb2xzLFxuLm14LXdpbmRvdy12aWV3IC5teC13aW5kb3ctYm9keSA+IC5teC1wbGFjZWhvbGRlciA+IC5teC1kYXRhdmlldyA+IC5teC1kYXRhdmlldy1jb250cm9scyB7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4IDBweCA2cHggNnB4O1xufVxuIiwiLm14LWRpYWxvZyB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogNTAwcHg7XG4gICAgLyogSWYgdGhlIG1hcmdpbiBpcyBzZXQgdG8gYXV0bywgSUU5IHJlcG9ydHMgdGhlIGNhbGN1bGF0ZWQgdmFsdWUgb2YgdGhlXG4gICAgICogbWFyZ2luIGFzIHRoZSBhY3R1YWwgdmFsdWUuIE90aGVyIGJyb3dzZXJzIHdpbGwganVzdCByZXBvcnQgMC4gRWxpbWluYXRlXG4gICAgICogdGhpcyBkaWZmZXJlbmNlIGJ5IHNldHRpbmcgbWFyZ2luIHRvIDAgZm9yIGV2ZXJ5IGJyb3dzZXIuICovXG4gICAgbWFyZ2luOiAwO1xufVxuLm14LWRpYWxvZy1oZWFkZXIge1xuICAgIGN1cnNvcjogbW92ZTtcbn1cbi5teC1kaWFsb2ctYm9keSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG4iLCIubXgtd2luZG93IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiA2MDBweDtcbiAgICAvKiBJZiB0aGUgbWFyZ2luIGlzIHNldCB0byBhdXRvLCBJRTkgcmVwb3J0cyB0aGUgY2FsY3VsYXRlZCB2YWx1ZSBvZiB0aGVcbiAgICAgKiBtYXJnaW4gYXMgdGhlIGFjdHVhbCB2YWx1ZS4gT3RoZXIgYnJvd3NlcnMgd2lsbCBqdXN0IHJlcG9ydCAwLiBFbGltaW5hdGVcbiAgICAgKiB0aGlzIGRpZmZlcmVuY2UgYnkgc2V0dGluZyBtYXJnaW4gdG8gMCBmb3IgZXZlcnkgYnJvd3Nlci4gKi9cbiAgICBtYXJnaW46IDA7XG59XG4ubXgtd2luZG93LWNvbnRlbnQge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm14LXdpbmRvdy1hY3RpdmUgLm14LXdpbmRvdy1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4IDZweCAwIDA7XG59XG4ubXgtd2luZG93LWhlYWRlciB7XG4gICAgY3Vyc29yOiBtb3ZlO1xufVxuLm14LXdpbmRvdy1ib2R5IHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cbiIsIi5teC1kcm9wZG93bi1saXN0ICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1kcm9wZG93bi1saXN0IGltZyB7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kcm9wZG93bi1saXN0IGltZyB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4ubXgtZHJvcGRvd24tbGlzdCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LWRyb3Bkb3duLWxpc3QgPiBsaSB7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMTBweDtcbiAgICBib3JkZXI6IDFweCAjZGRkO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm14LWRyb3Bkb3duLWxpc3QgPiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4ubXgtZHJvcGRvd24tbGlzdCA+IGxpOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xufVxuLm14LWRyb3Bkb3duLWxpc3Qtc3RyaXBlZCA+IGxpOm50aC1jaGlsZCgybisxKSB7XG4gICAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbn1cbi5teC1kcm9wZG93bi1saXN0ID4gbGk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG59XG4iLCIubXgtaGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIGJhY2tncm91bmQ6ICMzMzM7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLm14LWhlYWRlci1jZW50ZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogI2VlZTtcbiAgICBsaW5lLWhlaWdodDogMzBweDsgLyogaGVpZ2h0IG9mIGJ1dHRvbnMgKi9cbn1cbmJvZHlbZGlyPVwibHRyXCJdIC5teC1oZWFkZXItbGVmdCxcbmJvZHlbZGlyPVwicnRsXCJdIC5teC1oZWFkZXItcmlnaHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDlweDtcbiAgICBsZWZ0OiA5cHg7XG59XG5ib2R5W2Rpcj1cImx0clwiXSAubXgtaGVhZGVyLXJpZ2h0LFxuYm9keVtkaXI9XCJydGxcIl0gLm14LWhlYWRlci1sZWZ0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA5cHg7XG4gICAgcmlnaHQ6IDlweDtcbn1cbiIsIi5teC10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIG1hcmdpbi10b3A6IDBweDtcbn1cbiIsIi5teC1saXN0dmlldyB7XG4gICAgcGFkZGluZzogOHB4O1xufVxuLm14LWxpc3R2aWV3ID4gdWwge1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LWxpc3R2aWV3ID4gdWwgPiBsaSB7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMTBweDtcbiAgICBib3JkZXI6IDFweCAjZGRkO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG4ubXgtbGlzdHZpZXcgPiB1bCA+IGxpOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbn1cbi5teC1saXN0dmlldyA+IHVsID4gbGk6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4ubXgtbGlzdHZpZXcgbGk6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xufVxuLm14LWxpc3R2aWV3IGxpOm50aC1jaGlsZCgybisxKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbn1cbi5teC1saXN0dmlldyA+IHVsID4gbGkuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICNlZWU7XG59XG4ubXgtbGlzdHZpZXctY2xpY2thYmxlIHVsICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1saXN0dmlldy1lbXB0eSB7XG4gICAgY29sb3I6ICM5OTk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLm14LWxpc3R2aWV3IC5teC1saXN0dmlldy1sb2FkaW5nIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5teC1saXN0dmlldy1zZWFyY2hiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5teC1saXN0dmlldy1zZWFyY2hiYXIgPiBpbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtbGlzdHZpZXctc2VhcmNoYmFyID4gYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xufVxuW2Rpcj1cInJ0bFwiXSAubXgtbGlzdHZpZXctc2VhcmNoYmFyID4gYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5teC1saXN0dmlldy1zZWxlY3Rpb24ge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBwYWRkaW5nOiAwIDE1cHggMCA1cHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1saXN0dmlldy1zZWxlY3Rpb24ge1xuICAgIHBhZGRpbmc6IDAgNXB4IDAgMTVweDtcbn1cbi5teC1saXN0dmlldy1zZWxlY3RhYmxlIC5teC1saXN0dmlldy1jb250ZW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtbGlzdHZpZXcgLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZGVmO1xufVxuLm14LWxpc3R2aWV3IC5teC10YWJsZSB0aCxcbi5teC1saXN0dmlldyAubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDJweDtcbn1cbiIsIi5teC1sb2dpbiAuZm9ybS1jb250cm9sIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuIiwiLm14LW1lbnViYXIge1xuICAgIHBhZGRpbmc6IDhweDtcbn1cbi5teC1tZW51YmFyLWljb24ge1xuICAgIGhlaWdodDogMTZweDtcbn1cbi5teC1tZW51YmFyLW1vcmUtaWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDTUFBQUFqQ0FZQUFBQWUyYk5aQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFLTkpSRUZVZU5waS9QLy9QOE5nQVV3TWd3aU1PbWJVTWFPT0dYWE1xR05HSFRQWUhNT0NUZkRzMmJNZVFLb09pSTFCWENCdU1qWTIza0ZyZFl6b1RRaWdSbThndFFXTEcwT0JCcXlobFRwYzBkU09JeFRyYUt3T3EyUFVjV2hXcDdFNnJJNjVpVVB6VFJxcncrcVlHaHlhbTJpc0R0TXh3RVMxQ1VnRkFmRnhxQkNJRGtKUGJOUldoelUzalJaNm80NFpkY3lvWTBZZE0rcVlVY2NNVXNjQUJCZ0FVWHBFakUvQnMvSUFBQUFBU1VWT1JLNUNZSUk9KSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuIiwiLm14LW5hdmlnYXRpb25saXN0IHtcbiAgICBwYWRkaW5nOiA4cHg7XG59XG4ubXgtbmF2aWdhdGlvbmxpc3QgbGk6aG92ZXIsXG4ubXgtbmF2aWdhdGlvbmxpc3QgbGk6Zm9jdXMsXG4ubXgtbmF2aWdhdGlvbmxpc3QgbGkuYWN0aXZlIHtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OERCO1xufVxuLm14LW5hdmlnYXRpb25saXN0ICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1uYXZpZ2F0aW9ubGlzdCAudGFibGUgdGgsXG4ubXgtbmF2aWdhdGlvbmxpc3QgLnRhYmxlIHRkIHtcbiAgICBwYWRkaW5nOiAycHg7XG59XG4iLCIubXgtcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDMwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICB3aWR0aDogMjUwcHg7XG4gICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBvcGFjaXR5OiAwLjg7XG4gICAgei1pbmRleDogNTAwMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgcGFkZGluZzogMjBweCAxNXB4O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLWluLW91dDtcbn1cbi5teC1wcm9ncmVzcy1oaWRkZW4ge1xuICAgIG9wYWNpdHk6IDA7XG59XG4ubXgtcHJvZ3Jlc3MtbWVzc2FnZSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG4ubXgtcHJvZ3Jlc3MtZW1wdHkgLm14LXByb2dyZXNzLW1lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ubXgtcHJvZ3Jlc3MtaW5kaWNhdG9yIHtcbiAgICB3aWR0aDogNzBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhSZ0FLQU1RQUFEbzZPb0dCZ1ZwYVduQndjSTZPanF5c3JGSlNVbVJrWkQ4L1AweE1UTTdPenFlbnAxaFlXRjFkWFVoSVNISnljb2VIaDB0TFMxZFhWNmlvcU0vUHoyVmxaVDA5UFRjM04wQkFRSVdGaGRiVzFseGNYSzJ0clVGQlFUTXpNd0FBQUNIL0MwNUZWRk5EUVZCRk1pNHdBd0VBQUFBaCtRUUVEQUFBQUN3QUFBQUFSZ0FLQUFBRms2RG5YUmFHV1plb3JxU0pybkI3cHJBcXY3VjQweDdRL1VCQXpnZjhDV3ZFNGhHV0RBNkx4aEVVeU5OTmYxWHBOWHU1ZHJoZWt0Y0NzNHpMNTVYNVNsYVBNVjRNREg2VnIraFR1d29QMVl2NFJTWnhjNE4zaFh1SGYzRnJVMjBxakZDT0lwQkZraDZVUUphWVB5aGhNWjRzb0RhaVZsczlVMHNyVFZGSXFFOVFxU3FySFVzN09Ub2xNN2NqdVRnNXRyZkFJUUFoK1FRRURBQUFBQ3dBQUFBQUNnQUtBQUFGSktEbkhZV2lGSWZvUVZyclFxTXJhK1RzbG5acjV0ckpvN3dVYXdZVFZRb1VDa29VQWdBaCtRUUVEQUFBQUN3QUFBQUFHUUFLQUFBRldhRG5NY1N5RUpLb3JrZWhLTVdoUGx4dFA2c0thWHdQZVJLYmtNUElIWHBJellFd3RCRnloV1N2c0dqV0ZqbUZsS2VvV3JFcjdWYkJ0RDVYMFcyQllTVWF0MG9QYllqTGVYYkpuNGcwbVJDS2RpSVZCUlFVTVNJaEFDSDVCQVFNQUFBQUxBQUFBQUFvQUFvQUFBV0tvT2NsUXhBTWthaXVETEVzaExUT1I2RW94YUUyV2U4M005R0RReXcrZ2g2SVpzbUVlQ0srYUNZeGt4U3ZIQWFOeWRVY0JsTGZZRWJBRmdtelFwZFpDSVI3Z2RuQ1RGek1GT3Vsd3YyT3IrWjBkaXQ0ZVFwZ2IyTXJaWFJvSzJwNUJRbHZVek1NZEZsYmVUbzhVa0JCUTFoSFFVcGRUaUlrSmdOVVNCNHRFeE1FV3F3VkJSUVVPU0loQUNINUJBUU1BQUFBTEFBQUFBQTNBQW9BQUFXOG9PY2hoaUFZaUtpdXlSQUVRN1RPRExFc2hEU3ZSNkVvaFlQS3NTa2FIVHRQSThOc05wSVBqblQ2U0VJMDJDeGtaT3h1VXF0SWM1eEp6Q1RUTkljeE8yVGZtb1BCYXpUTUJ1VG1ZRVpRVHdrekJYQlpCUUowUlFJekFYbE1BVE1MZmxJTE13cURXQXFHaDRrcmk0eU9LNUNSa3l1VmxncHpoM1lyZUl4N0szMlJnQ3VDbGdVSWgxOHpDWXhsTkpGcmJaWnhIa1JlU0R0TFpFODdVV3BWTzFkd1d5SVlKU2RnU1MwdkEyWkpIalVURXdSczNoVUZGQlJCSWlFQUlma0VCQXdBQUFBc0FBQUFBRVlBQ2dBQUJmQ2c1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkROSzhNc1N3RXlVNTFLQ2dVaFlNSzBHazZBVVBIWmtwMURCdVpyTFl4ZkhDKzRNY1FvaW1iSVNPbnVwTmlVZDhiMlNxaXJXY1NNd2w0ejJITURtYUJHZ2NXYTA0V013WndWQVl6QTNaYUF6TUVmR0FFTXdXQ1pnVVloazBZTXdLTFV3SXpBWkJaQVRNTGxWOExNd3FhWlFxZG5xQXJvcU9sSzZlb3FpdXNyYThyc2JJS2haNklLNHFqalN1UHFKSXJsSzJYSzVteUJSZWViRE1JbzNFMHFIY3pESzE5ZjdLREhreHJVRHRTY0ZZN1dIWmNPMTU4WWp0a2dtZ2lKRXlnR0NJQ2d3c1ljb2JVdURFQUQ4RWVFeVlROEVPd1FnRUtGSktJQ0FFQUlma0VCQXdBQUFBc0R3QUFBRGNBQ2dBQUJicWc1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkROSzhNc1N3RWlRclFLUm9CTzQ5ancydzZrbzJNZE5wSVBqalk3R05rN0haU3JLWjRJMXRGcHVoTVlpYkp1amtNaTlkb21SbkdUY05za0o0T1pnUnZXUVFZYzBVWU13SjRUQUl6QVgxU0FUTUxnbGdMaFlhSUs0cUxqU3VQa0pJcmxKVUxjb1oxSzNlTGVpdDhrSDhyZ1pVRUY0WmZNd2lMWkRTUWFqTU1sWEFlUkY1SU8wdGpUenRSYVZVN1YyOWJJaVFtS0VraUdDNHdaVWsxTndOcjJEMFRFd1FNSWlFQUlma0VCQXdBQUFBc0hnQUFBQ2dBQ2dBQUJZZWc1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkRwQUpkN3dNemtXTkRMRHFDbmtabXlXeU1mTkJPaWxXc2JtU3JDSE9iU1ZpaVBzdk1ZQzBhWmdNdWM0QUI5ekF6UVprb21BWFV5MERiRFYvSjUzVXJkM2dCWDI1aUsyUnpaeXRwZUFNWGJsSXpDSE5YTkhoZEhqeFJRRUZEVmtkQlNseE9JaVFtS0VnaUdDNHdXRWcxTndNSklpRUFJZmtFQkF3QUFBQXNMUUFBQUJrQUNnQUFCVldnNTEwV2hsbVhxSzZJSVFnR29nSmRiUU9yNm14ODc0eTJZQ2ZGNmhrM0NJdlFac2taamowRFpsbkQ1QVJRbm1CS3RhNndXWUdTMmx3OXM0WUxkWmhEWkpFZW1oQ1g4K3lPUHhISmhLcXJNQzR3TWg0aEFDSDVCQVFNQUFBQUxEd0FBQUFLQUFvQUFBVWlvT2RkRm9aWmwrZ0JYZXNDb3l0MzVPeVdkbXZtM2NtanZCUnJCaE9SVENoUkNBQTcpO1xufVxuIiwiLm14LXJlbG9hZC1ub3RpZmljYXRpb24ge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAxMDAxO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuXG4gICAgYm9yZGVyOiAxcHggc29saWQgaHNsKDIwMCwgOTYlLCA0MSUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgyMDAsIDk2JSwgNDQlKTtcblxuICAgIGJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgxLCAzNywgNTUsIDAuMTYpO1xuICAgIGNvbG9yOiB3aGl0ZTtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG4iLCIubXgtcmVzaXplci1uLFxuLm14LXJlc2l6ZXItcyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMHB4O1xufVxuLm14LXJlc2l6ZXItbiB7XG4gICAgdG9wOiAtNXB4O1xuICAgIGN1cnNvcjogbi1yZXNpemU7XG59XG4ubXgtcmVzaXplci1zIHtcbiAgICBib3R0b206IC01cHg7XG4gICAgY3Vyc29yOiBzLXJlc2l6ZTtcbn1cblxuLm14LXJlc2l6ZXItZSxcbi5teC1yZXNpemVyLXcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLm14LXJlc2l6ZXItZSB7XG4gICAgcmlnaHQ6IC01cHg7XG4gICAgY3Vyc29yOiBlLXJlc2l6ZTtcbn1cbi5teC1yZXNpemVyLXcge1xuICAgIGxlZnQ6IC01cHg7XG4gICAgY3Vyc29yOiB3LXJlc2l6ZTtcbn1cblxuLm14LXJlc2l6ZXItbncsXG4ubXgtcmVzaXplci1uZSxcbi5teC1yZXNpemVyLXN3LFxuLm14LXJlc2l6ZXItc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5teC1yZXNpemVyLW53LFxuLm14LXJlc2l6ZXItbmUge1xuICAgIHRvcDogLTVweDtcbn1cbi5teC1yZXNpemVyLXN3LFxuLm14LXJlc2l6ZXItc2Uge1xuICAgIGJvdHRvbTogLTVweDtcbn1cbi5teC1yZXNpemVyLW53LFxuLm14LXJlc2l6ZXItc3cge1xuICAgIGxlZnQ6IC01cHg7XG59XG4ubXgtcmVzaXplci1uZSxcbi5teC1yZXNpemVyLXNlIHtcbiAgICByaWdodDogLTVweDtcbn1cblxuLm14LXJlc2l6ZXItbncge1xuICAgIGN1cnNvcjogbnctcmVzaXplO1xufVxuLm14LXJlc2l6ZXItbmUge1xuICAgIGN1cnNvcjogbmUtcmVzaXplO1xufVxuLm14LXJlc2l6ZXItc3cge1xuICAgIGN1cnNvcjogc3ctcmVzaXplO1xufVxuLm14LXJlc2l6ZXItc2Uge1xuICAgIGN1cnNvcjogc2UtcmVzaXplO1xufVxuIiwiLm14LXRleHQge1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbn1cbiIsIi5teC10ZXh0YXJlYSB0ZXh0YXJlYSB7XG4gICAgcmVzaXplOiBub25lO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cbi5teC10ZXh0YXJlYSAubXgtdGV4dGFyZWEtbm9yZXNpemUge1xuICAgIGhlaWdodDogYXV0bztcbiAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG59XG4ubXgtdGV4dGFyZWEgLm14LXRleHRhcmVhLWNvdW50ZXIge1xuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcbn1cbi5teC10ZXh0YXJlYSAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gICAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xufVxuIiwiLm14LXVuZGVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xufVxuIiwiLm14LWltYWdlem9vbSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5O1xufVxuLm14LWltYWdlem9vbS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLm14LWltYWdlem9vbS1pbWFnZSB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xufVxuIiwiLm14LWRyb3Bkb3duIGxpIHtcbiAgICBwYWRkaW5nOiAzcHggMjBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZHJvcGRvd24gbGFiZWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZHJvcGRvd24gaW5wdXQge1xuICAgIG1hcmdpbjogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1kcm9wZG93biAuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG59XG4ubXgtc2VsZWN0Ym94IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LXNlbGVjdGJveC1jYXJldC13cmFwcGVyIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuIiwiLm14LWRlbW91c2Vyc3dpdGNoZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMzYwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IDIwMDAwO1xuICAgIGJveC1zaGFkb3c6IC0xcHggMCA1cHggcmdiYSgyOCw1OSw4NiwuMik7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlci1jb250ZW50IHtcbiAgICBwYWRkaW5nOiA4MHB4IDQwcHggMjBweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgY29sb3I6ICMzODdlYTI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU9nQUFBQmdDQVlBQUFBWFNqN05BQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlScFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TXkxak1ERXhJRFkyTGpFME5UWTJNU3dnTWpBeE1pOHdNaTh3TmkweE5EbzFOam95TnlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5pQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRG8wTXprd09UUkVNRFEyTkVZeE1VVTBRVFE0TVVJNU5UTkdNVVEzUXpFNU55SWdlRzF3VFUwNlJHOWpkVzFsYm5SSlJEMGllRzF3TG1ScFpEbzBNemt3T1RSRU1UUTJORVl4TVVVMFFUUTRNVUk1TlROR01VUTNRekU1TnlJK0lEeDRiWEJOVFRwRVpYSnBkbVZrUm5KdmJTQnpkRkpsWmpwcGJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qYzBSRU15TVVaR05EWTBRekV4UlRSQk5EZ3hRamsxTTBZeFJEZERNVGszSWlCemRGSmxaanBrYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pjMFJFTXlNakF3TkRZMFF6RXhSVFJCTkRneFFqazFNMFl4UkRkRE1UazNJaTgrSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGlBOEwzSmtaanBTUkVZK0lEd3ZlRHA0YlhCdFpYUmhQaUE4UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrZzF0Umx3QUFFRkZKUkVGVWVOcnNuWWwzVmNVZHgyZHU4ckpESUpDd0NnalZhclZvc1ZYYzZqbldubnBJUWxKV2w2T0NyUFlma2gxY2l1d2xMRm81dFQzbFZKUlZFVVVFUlFRSlM0Q1FRRWpDUzk3MCs1Mlo5M0lUREd1Uzk4ajcvVGp6N3IyL2U5OTlaTzU4N205K003K1owY05YYnNxS2FUTmVLVlZvbEttT0tiWDM5RXNWS2wxRVY2MklLSzN3QjV1SGNZZy8zM3lDNHgybS9FMmpSRVNTTE1HSmw4dXZZcnNIaWR1aFNBK21Vd2FZaWhsUk0zSEdPdXp1Wlg0Zy9SbHBpdDY4TkZ1S2gwalNEWWd4emxBTVc3V3BDQmIwNlJqTmlEWUh6azZ2UEpaMm1iRnArYStKTEN4b0hyYm5vVnB0eW1lZGxXSWlrblJBS1VOWFZRMERvT01BcUlKMlg4MzB5cFBwQitteVFsL2xIWTNES0xaYlRmbnNMNldvaUNRZFVNcmdWVlZqQWVoSWFHTXhaWGFlbi83WGMybVpNWnVYVm1MenFGSTJmL1lCMm85TTJleW9GQm1ScEFKS0tWbTk4UkZvUndCUUZzZ2RnTFErVFNFZEIwQkxzWnNCUUd1d3Y4NlV6VGtqeFVZa3FZQlNpbGR2SEFkQWgyRzNDUloxUisyMFNRM3BDZW1TZ2RpVUFkQlJBTFFGKzl1UWRnTlVhZVVWU1I2Z2xBR3IvL0U0Tm9NQWFBTjgweDExMHlZMXBXMUdiVmxDdi9SMy92QVE5amVac3JsWHBBaUpkS2NFTnpqUDdoZFU3VlErMGhOOTFxeVBwR3RHd2Yrc3dvYmRNWmVRSGtENm05Nnk2SDRwUWlKSnM2RGVpa1pnUVIrSEJTMUNsYmZXYVBQWjVhbFRXdFBYa2k0dXNGVmVaUjV3Q3ZhZm1vOU42YnlyVXB4RWVoeFFTdjgxRzNJQUtDQTFoUUQwSFBaM1hVbGpTQjJvaTU3QjVua0FpbHFJdVlEOWpZRDB1QlFwa1I0SGxGSzRaa01lQUIwUFFQTUI2TmxXWlhZM1Q1MGFTM05JaXdIb2l3QjBqSEw5TWJ1UVBoRnJLdExqZ0ZMZ2crWUQwUEdnTWcrQW5zRjJUelROSWJXWnVIVWhxcnpxOS82dzFqWWdsYzcvVVlxWFNJOENTaWxZdTQ0VzlDa0F5bXJ2S2ZpbmUxdW5URE1DNmNJaDJQd0o2VmNBbFBteEY5YjFYMmJDL0NZcFppSTlCaWdsRDVDMnVyamRiQUJhRGRVK2dUUnNUWTJ6cHRxMitQNFRrSDRqT1NQU1k0QlNzdGV1TFFDZ1R3UFFMQnhXd3ovZFo2Wk1GMGd0cEF0S3NIa0JnTWE3WVk0QTJnL05oTGRxSlhkRWVnUlFTb1NRYXNQV3pBZ0FQVVZMQ2toamtxMCtjejljOEFRMlR5TDFVeTVzY2p2U0RvRGFLcmtqMHUyQVVqTFdyV0cvNEZNQWxPTW56K0NPZTh6a2x3VFNOa2laTHhNQTZDTmV4UzZaandEcEVja2RrVzRIMUVPYUQwQ2Z3bTRPN3NqeGs0UlVyRVE3VU4rK2p5OHlwSHU5Nmp1a2p3SHFCY2tka1c0RjFONW8zV3FHQTQ3SEhmT1VEUTgwdTgza2x3WFNhMEY5RnBzL0lQVlZkcnlwK3N4WGU2VzFWNlQ3QUUxQXFnMzlybndmWGJNTGtNb1l5bXNoemNYbUw4cU9ON1hDb1B2L0lPMEZxT0llaUhRUG9QYUc2MWZsT1F0aGFDSHE4QXM3emFSWG1pV3JmeEhVVWI3YUcyL3Q1Y0NFYmVLZmluUWJvQjdTSE44WDJCKy93SEdrbndOU0daclZPYWkveGVZeHBGRmU5Wk5peU9DRXR5UzJWd0R0bnE1THZmNkRMRnZvdE9HQVovaFhCcEMrZWtteS9JYitLV0V0OGFyRFNQOEdxS2NsZHdUUTdvQTBFNy9BUWM2RGZUL2dia0I2WHJMOXVwQnE1VUlHQ1dxaGNrSDRqRVQ2TDBDdGtSd1NRTHYrUnphczVOdytuRDRscG9MWUY2Ynl0V3JKK2h1Q0NqZEJ2YURhZ3ZBOXFCcWd6aGRRQmRDdWh2VHY3S2dmQVVENWd3Y0I2VkhKL3BzQ2xZMXR6M2tmMVQ0eWIxRzNBMVNaczFjQTdWSkl4d0xRa2Q0Z0hIV2d2aTd4dTdjRXFuNHNaRkhwbzM0S1VLVXhTUUR0b2gvYytONFFWMjJ6djN0S2FmV0ZxWGhkQWhwdUd0UUZCUFdQb2FvdnM1S0EvZy9waUNtZEx5ODhBZlNPSVdYd09BTWFzZ0RvUmV6dk1oVnZTRi9wcllIS1lJZW5rZTREb0lPOG1sWGVuVGo3bFNtZEp3RWlBdWlkUVBwdXZ2V3JORnNxRGNQY2RnTFNlbmtrdDVHWFd4YzhZMEZWeXJzUG1uM09YQXhxRjBDVnJpMEI5TFlocFFYbDhncTBBQzJLWTBvclpzak03YmNQS2h2aXhtSnZqRmZSZFRpbzJMMGxFNW9Kb0xmOW42aDZoMzJsdy8xVUlkOEMwaC9rMGR3SnFBdHBTVG5wK0VNaExhdS91NUVPbU5LNUVwZ3ZnTjR5cEhqekcxZEYwK29rOXZlYmlUT2w4ZWpPUUdXZ0EwZk9qTURSQ0srK0NwLzFBTFpmbXJLNUp5U1hCTkJiZ0hURllNVVJIbHBGQUdpZHJacE5uTmtvajZrcllGM0V5Q1NtKzFYaWtXdXVYTWVsRmZlYnNqbmlxd3FnTndWcEhnQmw1RkYvKzdaWFpvK1orS2FFQjNZZHFNVUE5RkZ2VmUveGFnNXhvMXZ4RlhTSFpKbEZBZlQ2LzZsTkt6SUJKZ3ZSRU8rWEhnU2tFbm5VMWZtOFpUR0h1VDNTd1ZkbEZmZ1FmVldrbzZaOHRyZ1pBbWhub0M1SDRURWp2RjlhYmYzUzhsa3Q4dGk2SEZUT216UlcyVVdoOUppMktqQUhrdXR2bFdzSlBvYThGMWdGMEk2UUxodGlDNDlXV1FDMHdmcWw1YlBFWCtvMldKZjBBNkQwVlVjck8zK1NqcDlxeFA1M09FZGdmMENOUmw2VUFtZ0MwbHlVRTFyVFltWDc5c3dCVkwya0JiSzc4MzN6RXVTMy9vMXlBOGtkcks2NHdFZlZkRGtZQzN6WVRKd3BMOHgwQnJTdHdDeWxYM3FQTHlYSFVWNitObVhpSS9WUTNoZmg4MEZrL1JoblhST1dsUS9qRkk2UFlJOE5UVCtiaWhreXIxSTZBdW9MQ254U3d5cFlnREp5R2Z0N1Rka2NDUkhzNlJxTjBteGdZdklOVEFucjJvejlZOHExQ2g4MUZXK2NreHhMSTBCOTFhdkErNlVEVUNyNHR2NEdrQjZUeDVrTVdKZHJWd1cyalV0czBCc1JzcTY4NGhMMFA5a2Fqd08zeGxTK0ppTnVlak9nb1FZTnh2SEcrL0k0Ync4NzNHVnR6bVErazZvVnVUNFdlTFNIZFdBb01JSWZET1Evb1dMQno2d09RMWN0c3o3MlVrQWRwSXM1bFFvYk1qaEZTQ09BWlFpYlZLdFNCdGgzKzNyTE9zcUhHN29KMFdKQi9BcldnR284cktkd0xWKzBaMlErNVY0Q3FJYzBSN2wrdkVIZUVUcUtsL1VoVXpwWEdwQlM3Vmx0ZkkvRERJY0QwT0hLTnZqcFVhR3pjVDgyNXNNUUFhcytBeDBEL1dzQ3BldlNiWm5MWGdGb0NOUnd3RDJiL3I4QXBIV0NSUW8vc3cwcmFVcUxMYlJLRHdXTWpNY2UxdWJISnFCbHErQlZEMm9OZEJmd3hRc1pTbk1GZ3d0WHBrNXBFa0R2Q2tnWGNRVEhRNjRCaVc5aXc3NjY3MDNwUEdtWXVGdWU0Zm9QTXF6dmFxZHIxU1dBa2RYaVlvRFp6NE5xb1NYWkdSN2tER01IcWRkQ1YwOUxpLzJMZ2RGczNlZHhQYTY2Y25aNjVWMFJYUEhraXUyWitMdnp0VkY5ZWgyZ2lZZThkWkdiUmRDOWZpOHFOaUNWenBQdW1MdFlNdGF0eWZLZ011Qy9DREFXQWRBaXhhM1JPUTVlRHpDM1JzY3RiOXdlTjBGM09YQWhqQTJFRnNlMHZFM2FUcTZ1bTNDdVVSdE4vemVLL1didGZPU3IwTVZDOTJvKzlPcUw3ZnA2SDM1L1c0RC9VN1pPL0xvT3NNMENaTmhxNkRsQ1MwZXd6Y1YxT2REeC81dURxN0d2OHFETGc0N1Yvd0p0MjFPMG5iK3gxd0xxSVVYVnlUeWc3QUs2ZHNRR1Y3cUdOWjB2SGVtOVRQcXNXYy9DM1E5UUZhTFFzeFpWQ1BnNHdWcGZIUGZWZGtFdmxVRm9BMTkxMWlHSTQ1K0JyVmJHd1ZZSnRQVzFzRnRkK0Y2MEJTRkE3ZFpDMW5hWDBIVWQ3aGZTYVJzdGh4ZUlVZlg2K2NXZjI3UEdmeG9kUDhKV3U3MlkxYnR6aVd2dE9XTkxmZnc2NC8vRmRIdy9acjhUaTkveG11KzA3Y2V2aVlYMEhmZGpmcjhWKzYzdDlQRy9NUDZ5TVNyeFZ6TmxYL2JXMU9wb1JiOVVMYmwxMTE3YnlYSGlDWVpmWnAzcE81N3JvTHZ6MTg2MUtuTVQxNFIxNWdiWG1jN3VwYS96M2M3T2RhSnZhOFc5d2JYdGZGQjFuU3F1dWdrTG1nTmRRVUNMcFRRdFZXN2dMRyt1dDFxd2FMQnVSc1BhcVlqZFY1cGZoU1hVR2FGNzBaSUhIUUJsOGJ3YUFyUlZXOHRMQkRRdE5NTWpvOVpTRzFwc1o3bHhkYU5tNzROUnNPaWFzZWFYdlRXM3hUa3pMVjZ2elFYN0FTbG5zMmZrQzZ0RXo2ck14dStSQjBkVU5FZGFldE5IbW55NmF5UkltMGNUemF0QitsVFppQmI3a3VNc2VNK3BTRk94bEZzUkFUUjFRTjJQengzS2RZNjdWY0V6bThhcHpPWnNLUTRpS2RlTzBwc2JpVzc0eDMrNGdGVmVocVRSNTRDUFlEalc4YmlaOEpaMHlZZ0lvQ2tDS1dkbzU0aU1JYjQxb2hicGEwQjZVWXFIaUFDYU9xQnlYbDVhMC9pYW5Cd1EvaTFBbGVCN0VRRTBkVUI5bXpHOUkrTWVLOUozaXZQeFNMVlhSQUJOR1VnNTN2UkJaVVBOckxEdjlLQ3NjQzBpZ0tZV3FFT1ZuWXZIOXAxU3pucFFaUTRlRVFFMGhVQmxueWtqa2ZLOGY4b1pBZzREVkJsb0xDS0FwZ2lrakxwNlNDVkNCcmthbS9vZTZVZUFLbE5RaWdpZ0tRSXFBN0RaZnpyRXEyaEZqOUNxQWxRSndoY1JRRk1FMUJMdm41WjRGY2Nqc3NYM3BMVDRpZ2lncVFNcUc1TFlMVFBRcXk1NVVFOExxQ0lDYU9xQVN0K1U4K3dNOEtwNlgvVTlKYUNLQ0tDcEErcG83NThXdFZsVWZkaUJPbDh5VzBRQVRSRlE2WjhPZGFEcWVOV1hyYjdWQUZVYWswUUUwTlFCVlE4SlZYMjVZdmdQeXFqanBuUytEQllYRVVCVEE5UUZJNzFGZFkxSmhxdUhxeCtaQUtwTTBpd2lnS1lJcUlSMEJBQ056K1JBSzNxQ3kvbVowbmtOa2tNaUFtZ3FaUHpXQlFSMGxFb0U1TnNaenhpTXozVTNhd0NyWkpLSUFKb0NvREl5NlY2L2JrbGNMbmxRVHdKVThWTUZVSkhrZzdxUXNiN3NvcUZsalhmUlJIMzE5eWRUT3ZleTVKSUFLcElhc0RMZ1liaUhWZmx1bXZOSXg3ajZseW1iSzkwMEFxaElDb0JhcU5xVzdYTmliSEErcDJNNUFWREZxZ3FnSXNrSGRaRmZ4Vm9OQnFBRFEyZHFQYXpWcG15T2ROVUlvQ0pKZjJCYkZ0RS92Y2Y1cWJyQXE5bVFkTnI3cStkTTJXeDVxQUtvU1BKaFhVdy9sZjJxZzBKYUxtMVFEVXQ3MHBUUGxxbERCVkNSRkFBMTExdFZWSC8xQU8rclVoajRjQkk2d0RwTC9GVUJWQ1Q1c0M3aFVvdkR1SDZtY3NzdXFsQ3cvaWttd0NycnBBcWdJa2wvdUp1WERGUnVPWG5DV2hBNjAyQmhOWW9ydnRXWmlXOUtaZ21nSXNtRmRTbGg5ZU5VN2NLMjhXb3cxNkxrZEtKbkZFTU1KODZVeUNVQlZDUzVzQzRyc3JBYU93U3VNTFNJTGdNZ3p1SDRETTZkTlJVenJraHVDYUFpeVN3QW01YWg2cXZaQ2x5c3dwRkxiWTFNTlRobUVQOTVVL0dHOUxVS29DTEpnM1U1NDRFQnF5N3gxalUzQWF4RDlxSUg5anlPYWszbDYxSWRGa0JGa2xZNHFsYjBkVmJWZHQyRSsxcUphOHdCcXhramZJSEpWTDRtRTNnTG9DTEpnZlVkcnNaTzMzV0FiUlZPaEJ3bS9GY1VwS0FlMk5aNlM0dXR2bXdtdlNLWko0Q0s5SGpCMmZndWdlM25yU3ZCTFFHZ3JwbXA3YXFvQTlWYTJqb2dYR2Ntdjl3b3VTZUFpdlE0c08vQmxBWjlBV2gvSFBiMzhCWjBxQlpUb2haV1oyWHJzVjhQZllPWk1sMkcwQW1nSWoxYXVEYXNqSVJnN1FjUTZkUG1ocXJGWVgvMkNtR0ZEV1pJNHFWQTZVc0VOenAxYWt3QUZSSHBxUUszL29Nc2ZIS2NLMU5mR3pSaFZKODRySUcvTG5EZ21zQUZValJrdUxWdkdqS01qWUpxZ0w2eGJ0cmtxQUFxSXRMZGhYRGRhbktaajcwK2dRdEp4RmIzSWJpQkJ6ZkRYd3RBUGNCVzN4SzRlWWFiQXFPNWJmUkFOMnUzNmx3ejlNMm5YNnE0SzYzdytCWGJBd0ZVSkdVbHNuYXRCbkE1QUM0L3d3S3M4Z0VvdDNtQnF5cEhFaGEzUGJpSlNqVDFnWnZiQ2RCcXprVWNoWTdIVVczWGVOVlJmNzVGRzgxdUl1T09OZThZWmZVYjMydnRjTytXUTYrKzJBNmNoOS9meHAvTTFDWitsZjNNME81ckVmd21WUkZ0VCtsTWZHVGFZNlBwQm1UaW9peXY1M0dXTWpwYjIvTUNxTWhkS29Wck5tUTZVRlV1QU1peFd3ZHVGZ3AzTm81em9NOEtQRnR4Yk9NdzZ3N1ZhdjFMa0p2UTkwSjYzY2tMb1FPZzdWNFV2NlR2N0Q0QWxQc3hBVlNrMTh2UVZWVzBTckJJT3N0YnM0aTNaaEZ2aGVQV2pEWHB3QjNyd0ZvNW83QzErakJFc0pUV0lvWjF4bG5oZG9DMmF0ZngxSUxmdEZ0M2JQVnhxMjJ0dWJmYVVhKy9Da0NiZDg3NFkvVC9BZ3dBMk1pN0hkQWUraWtBQUFBQVNVVk9SSzVDWUlJPSkgdG9wIHJpZ2h0IG5vLXJlcGVhdCAjMWIzMTQ5O1xuICAgIC8qIGJhY2tncm91bmQtYXR0YWNoZW1lbnQgbG9jYWwgaXMgbm90IHN1cHBvcnRlZCBvbiBJRThcbiAgICAgKiB3aGVuIHRoaXMgaXMgcGFydCBvZiBiYWNrZ3JvdW5kIHRoZSBjb21wbGV0ZSBiYWNrZ3JvdW5kIGlzIGlnbm9yZWQgKi9cbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGxvY2FsO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXIgdWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM0OTYwNzY7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgY29sb3I6ICMzODdlYTI7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0OTYwNzY7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBoMiB7XG4gICAgbWFyZ2luOiAyMHB4IDAgNXB4O1xuICAgIGNvbG9yOiAjNWJjNGZlO1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbn1cbi5teC1kZW1vdXNlcnN3aXRjaGVyIGgzIHtcbiAgICBtYXJnaW46IDAgMCAycHg7XG4gICAgY29sb3I6ICM1YmM0ZmU7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXIgLmFjdGl2ZSBoMyB7XG4gICAgY29sb3I6ICMxMWVmZGI7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXItdG9nZ2xlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyNSU7XG4gICAgbGVmdDogLTM1cHg7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgaGVpZ2h0OiAzOHB4O1xuICAgIG1hcmdpbi10b3A6IC00MHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuICAgIGJveC1zaGFkb3c6IC0xcHggMCA1cHggcmdiYSgyOCw1OSw4NiwuMik7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQklBQUFBU0NBWUFBQUJXem81WEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVJwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVNeTFqTURFeElEWTJMakUwTlRZMk1Td2dNakF4TWk4d01pOHdOaTB4TkRvMU5qb3lOeUFnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5UTmlBb1RXRmphVzUwYjNOb0tTSWdlRzF3VFUwNlNXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEbzNORVJETWpGR1JEUTJORU14TVVVMFFUUTRNVUk1TlROR01VUTNRekU1TnlJZ2VHMXdUVTA2Ukc5amRXMWxiblJKUkQwaWVHMXdMbVJwWkRvM05FUkRNakZHUlRRMk5FTXhNVVUwUVRRNE1VSTVOVE5HTVVRM1F6RTVOeUkrSUR4NGJYQk5UVHBFWlhKcGRtVmtSbkp2YlNCemRGSmxaanBwYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pjMFJFTXlNVVpDTkRZMFF6RXhSVFJCTkRneFFqazFNMFl4UkRkRE1UazNJaUJ6ZEZKbFpqcGtiMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPamMwUkVNeU1VWkRORFkwUXpFeFJUUkJORGd4UWprMU0wWXhSRGRETVRrM0lpOCtJRHd2Y21SbU9rUmxjMk55YVhCMGFXOXVQaUE4TDNKa1pqcFNSRVkrSUR3dmVEcDRiWEJ0WlhSaFBpQThQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCsxWm92TkFBQUFXZEpSRUZVZU5xTTFNMHJSRkVZeC9FN1k1cUlRcE9VYklpeW1RV3lzQmd2SlZKSzJWZ3J5WlF0S1NVTFplbFBzQjBMWmFOWmpKVU5LMUZza0pxVXZDUzNOQXNaYzN6UDlOemlPT2ZlZWVwVGM4L2M4K3ZjOHhaVFNubU9ha0VHS2R6Z0RCWFh5NTRPTXNTd2pwTDZXOWNZc3J4ZlpXdmNVdTd5MFZkTFVDYytWWGdkMm9MaXhwZk9JT21GMTdUdEhUT296WXV1cEN4QWFOQjlEVUVmZURVYkU4YnpFWHhaZXJQMDBsOGhoM0xVaUhUSU1yNk45ajJrc1lvaWh2LzFkZXlMU1Z6S0ttMWpFVytXZlpWMkxmOGdza2pJY3djV3BPTSsrcEhDRlBMb3NnV3RvQ3lkN2pDUE9qemhHSEhMeURQWTFhY2hhSmhEeFJqNnJCd0pYVXVvTjBJRzhJSXY3T2lHQmp4YWR2QUlUdVQzcmV4NmMwU2JLQVNmbG5VY0JUM0pUVGhBanlXa0dVVnNCRUVGUjVDZXJ6WHBOSWFjckZJckpuQ0JCM211QnZraEIxVFAyN2hNL0x2eDN6bDZneEhxdTZjNzRraVU4SXhHaktKZExyclQzeGZkandBREFKYU14UDJidkQyQkFBQUFBRWxGVGtTdVFtQ0MpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0ICMxYjMxNDk7XG59XG4iLCIvKiBtYXN0ZXIgZGV0YWlscyBzY3JlZW4gZm9yIG1vYmlsZSAqL1xuLm14LW1hc3Rlci1kZXRhaWwtc2NyZWVuIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLXNjcmVlbiAubXgtbWFzdGVyLWRldGFpbC1kZXRhaWxzIHtcbiAgICBwYWRkaW5nOiAxNXB4O1xufVxuXG4ubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbn1cblxuLm14LW1hc3Rlci1kZXRhaWwtc2NyZWVuLWhlYWRlci1jYXB0aW9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLXNjcmVlbi1oZWFkZXItY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjMDA3YWZmO1xufVxuXG5ib2R5W2Rpcj1cInJ0bFwiXSAubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyLWNsb3NlIHtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvO1xufVxuXG4ubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyLWNsb3NlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFwyMDM5XCI7XG4gICAgZm9udC1zaXplOiA1MnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4vKiBjbGFzc2VzIGZvciBjb250ZW50IHBhZ2UgKi9cbi5teC1tYXN0ZXItZGV0YWlsLWNvbnRlbnQtZml4IHtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLWNvbnRlbnQtaGlkZGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMCUpO1xufVxuXG5ib2R5W2Rpcj1cInJ0bFwiXSAubXgtbWFzdGVyLWRldGFpbC1jb250ZW50LWhpZGRlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMCUpO1xufSIsIi5yZXBvcnRpbmdSZXBvcnQge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIC1tb3otYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbiIsIi5yZXBvcnRpbmdSZXBvcnRQYXJhbWV0ZXIgdGgge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuIiwiLnJlcG9ydGluZ0RhdGVSYW5nZSB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cbi5yZXBvcnRpbmdEYXRlUmFuZ2UgdGgge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuLnJlcG9ydGluZ0RhdGVSYW5nZSB0ZCB7XG4gICAgcGFkZGluZzogNXB4O1xufVxuIiwiLm14LXJlcG9ydG1hdHJpeCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0aCwgLm14LXJlcG9ydG1hdHJpeCB0ZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0Ym9keSB0cjpudGgtY2hpbGQoMm4rMSkgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG59XG5cbi5teC1yZXBvcnRtYXRyaXggdGJvZHkgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE2cHg7XG4gICAgbWF4LWhlaWdodDogMTZweDtcbn1cbiIsIi8qIFdBUk5JTkc6IElFOSBsaW1pdHMgbmVzdGVkIGltcG9ydHMgdG8gdGhyZWUgbGV2ZWxzIGRlZXA6IGh0dHA6Ly9qb3JnZWFsYmFsYWRlam8uY29tLzIwMTEvMDUvMjgvaW50ZXJuZXQtZXhwbG9yZXItbGltaXRzLW5lc3RlZC1pbXBvcnQtY3NzLXN0YXRlbWVudHMgKi9cblxuLyogZGlqaXQgYmFzZSAqL1xuXG4vKiBtZW5kaXggYmFzZSAqL1xuXG4vKiB3aWRnZXRzICovXG5cbi8qIHJlcG9ydGluZyAqL1xuIl0sInNvdXJjZVJvb3QiOiIifQ==*/
+/****
+ GENERIC PIECES
+****/
+.dijitReset {
+ /* Use this style to null out padding, margin, border in your template elements
+ so that page specific styles don't break them.
+ - Use in all TABLE, TR and TD tags.
+ */
+ margin: 0;
+ border: 0;
+ padding: 0;
+ font: inherit;
+ line-height: normal;
+ color: inherit;
+}
+
+.dj_a11y .dijitReset {
+ -moz-appearance: none;
+ /* remove predefined high-contrast styling in Firefox */
+}
+
+.dijitInline {
+ /* To inline block elements.
+ Similar to InlineBox below, but this has fewer side-effects in Moz.
+ Also, apparently works on a DIV as well as a FIELDSET.
+ */
+ display: inline-block;
+ /* webkit and FF3 */
+ border: 0;
+ padding: 0;
+ vertical-align: middle;
+}
+
+table.dijitInline {
+ /* To inline tables with a given width set */
+ display: inline-table;
+ box-sizing: content-box;
+}
+
+.dijitHidden {
+ /* To hide unselected panes in StackContainer etc. */
+ position: absolute;
+ /* remove from normal document flow to simulate display: none */
+ visibility: hidden;
+ /* hide element from view, but don't break scrolling, see #18612 */
+}
+
+.dijitHidden * {
+ visibility: hidden !important;
+ /* hide visibility:visible descendants of class=dijitHidden nodes, see #18799 */
+}
+
+.dijitVisible {
+ /* To show selected pane in StackContainer etc. */
+ display: block !important;
+ /* override user's display:none setting via style setting or indirectly via class */
+ position: relative;
+ /* to support setting width/height, see #2033 */
+ visibility: visible;
+}
+
+.dj_ie6 .dijitComboBox .dijitInputContainer,
+.dijitInputContainer {
+ /* for positioning of placeHolder */
+ overflow: hidden;
+ float: none !important;
+ /* needed to squeeze the INPUT in */
+ position: relative;
+}
+
+.dj_ie7 .dijitInputContainer {
+ float: left !important;
+ /* needed by IE to squeeze the INPUT in */
+ clear: left;
+ display: inline-block !important;
+ /* to fix wrong text alignment in textdir=rtl text box */
+}
+
+.dj_ie .dijitSelect input,
+.dj_ie input.dijitTextBox,
+.dj_ie .dijitTextBox input {
+ font-size: 100%;
+}
+
+.dijitSelect .dijitButtonText {
+ float: left;
+ vertical-align: top;
+}
+
+table.dijitSelect {
+ padding: 0 !important;
+ /* messes up border alignment */
+ border-collapse: separate;
+ /* so jsfiddle works with Normalized CSS checked */
+}
+
+.dijitTextBox .dijitSpinnerButtonContainer,
+.dijitTextBox .dijitArrowButtonContainer,
+.dijitValidationTextBox .dijitValidationContainer {
+ float: right;
+ text-align: center;
+}
+
+.dijitSelect input.dijitInputField,
+.dijitTextBox input.dijitInputField {
+ /* override unreasonable user styling of buttons and icons */
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+}
+
+.dijitValidationTextBox .dijitValidationContainer {
+ display: none;
+}
+
+.dijitTeeny {
+ font-size: 1px;
+ line-height: 1px;
+}
+
+.dijitOffScreen {
+ /* these class attributes should supersede any inline positioning style */
+ position: absolute !important;
+ left: -10000px !important;
+ top: -10000px !important;
+}
+
+/*
+* Popup items have a wrapper div (dijitPopup)
+* with the real popup inside, and maybe an iframe too
+*/
+.dijitPopup {
+ position: absolute;
+ background-color: transparent;
+ margin: 0;
+ border: 0;
+ padding: 0;
+ -webkit-overflow-scrolling: touch;
+}
+
+.dijitPositionOnly {
+ /* Null out all position-related properties */
+ padding: 0 !important;
+ border: 0 !important;
+ background-color: transparent !important;
+ background-image: none !important;
+ height: auto !important;
+ width: auto !important;
+}
+
+.dijitNonPositionOnly {
+ /* Null position-related properties */
+ float: none !important;
+ position: static !important;
+ margin: 0 0 0 0 !important;
+ vertical-align: middle !important;
+}
+
+.dijitBackgroundIframe {
+ /* iframe used to prevent problems with PDF or other applets overlaying menus etc */
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ z-index: -1;
+ border: 0;
+ padding: 0;
+ margin: 0;
+}
+
+.dijitDisplayNone {
+ /* hide something. Use this as a class rather than element.style so another class can override */
+ display: none !important;
+}
+
+.dijitContainer {
+ /* for all layout containers */
+ overflow: hidden;
+ /* need on IE so something can be reduced in size, and so scrollbars aren't temporarily displayed when resizing */
+}
+
+/****
+ A11Y
+****/
+.dj_a11y .dijitIcon,
+.dj_a11y div.dijitArrowButtonInner,
+.dj_a11y span.dijitArrowButtonInner,
+.dj_a11y img.dijitArrowButtonInner,
+.dj_a11y .dijitCalendarIncrementControl,
+.dj_a11y .dijitTreeExpando {
+ /* hide icon nodes in high contrast mode; when necessary they will be replaced by character equivalents
+ * exception for input.dijitArrowButtonInner, because the icon and character are controlled by the same node */
+ display: none;
+}
+
+.dijitSpinner div.dijitArrowButtonInner {
+ display: block;
+ /* override previous rule */
+}
+
+.dj_a11y .dijitA11ySideArrow {
+ display: inline !important;
+ /* display text instead */
+ cursor: pointer;
+}
+
+/*
+* Since we can't use shading in a11y mode, and since the underline indicates today's date,
+* use a border to show the selected date.
+* Avoid screen jitter when switching selected date by compensating for the selected node's
+* border w/padding on other nodes.
+*/
+.dj_a11y .dijitCalendarDateLabel {
+ padding: 1px;
+ border: 0px !important;
+}
+
+.dj_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel {
+ border-style: solid !important;
+ border-width: 1px !important;
+ padding: 0;
+}
+
+.dj_a11y .dijitCalendarDateTemplate {
+ padding-bottom: 0.1em !important;
+ /* otherwise bottom border doesn't appear on IE */
+ border: 0px !important;
+}
+
+.dj_a11y .dijitButtonNode {
+ border: black outset medium !important;
+ /* In claro, hovering a toolbar button reduces padding and adds a border.
+ * Not needed in a11y mode since Toolbar buttons always have a border.
+ */
+ padding: 0 !important;
+}
+
+.dj_a11y .dijitArrowButton {
+ padding: 0 !important;
+}
+
+.dj_a11y .dijitButtonContents {
+ margin: 0.15em;
+ /* Margin needed to make focus outline visible */
+}
+
+.dj_a11y .dijitTextBoxReadOnly .dijitInputField,
+.dj_a11y .dijitTextBoxReadOnly .dijitButtonNode {
+ border-style: outset !important;
+ border-width: medium !important;
+ border-color: #999 !important;
+ color: #999 !important;
+}
+
+/* button inner contents - labels, icons etc. */
+.dijitButtonNode * {
+ vertical-align: middle;
+}
+
+.dijitSelect .dijitArrowButtonInner,
+.dijitButtonNode .dijitArrowButtonInner {
+ /* the arrow icon node */
+ background: no-repeat center;
+ width: 12px;
+ height: 12px;
+ direction: ltr;
+ /* needed by IE/RTL */
+}
+
+/****
+3-element borders: ( dijitLeft + dijitStretch + dijitRight )
+These were added for rounded corners on dijit.form.*Button but never actually used.
+****/
+.dijitLeft {
+ /* Left part of a 3-element border */
+ background-position: left top;
+ background-repeat: no-repeat;
+}
+
+.dijitStretch {
+ /* Middle (stretchy) part of a 3-element border */
+ white-space: nowrap;
+ /* MOW: move somewhere else */
+ background-repeat: repeat-x;
+}
+
+.dijitRight {
+ /* Right part of a 3-element border */
+ background-position: right top;
+ background-repeat: no-repeat;
+}
+
+/* Buttons */
+.dj_gecko .dj_a11y .dijitButtonDisabled .dijitButtonNode {
+ opacity: 0.5;
+}
+
+.dijitToggleButton,
+.dijitButton,
+.dijitDropDownButton,
+.dijitComboButton {
+ /* outside of button */
+ margin: 0.2em;
+ vertical-align: middle;
+}
+
+.dijitButtonContents {
+ display: block;
+ /* to make focus border rectangular */
+}
+
+td.dijitButtonContents {
+ display: table-cell;
+ /* but don't affect Select, ComboButton */
+}
+
+.dijitButtonNode img {
+ /* make text and images line up cleanly */
+ vertical-align: middle;
+ /*margin-bottom:.2em;*/
+}
+
+.dijitToolbar .dijitComboButton {
+ /* because Toolbar only draws a border around the hovered thing */
+ border-collapse: separate;
+}
+
+.dijitToolbar .dijitToggleButton,
+.dijitToolbar .dijitButton,
+.dijitToolbar .dijitDropDownButton,
+.dijitToolbar .dijitComboButton {
+ margin: 0;
+}
+
+.dijitToolbar .dijitButtonContents {
+ /* just because it used to be this way */
+ padding: 1px 2px;
+}
+
+.dj_webkit .dijitToolbar .dijitDropDownButton {
+ padding-left: 0.3em;
+}
+
+.dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner {
+ padding: 0;
+}
+
+.dijitSelect {
+ border: 1px solid gray;
+}
+
+.dijitButtonNode {
+ /* Node that is acting as a button -- may or may not be a BUTTON element */
+ border: 1px solid gray;
+ margin: 0;
+ line-height: normal;
+ vertical-align: middle;
+ text-align: center;
+ white-space: nowrap;
+}
+
+.dj_webkit .dijitSpinner .dijitSpinnerButtonContainer {
+ /* apparent WebKit bug where messing with the font coupled with line-height:normal X 2 (dijitReset & dijitButtonNode)
+ can be different than just a single line-height:normal, visible in InlineEditBox/Spinner */
+ line-height: inherit;
+}
+
+.dijitTextBox .dijitButtonNode {
+ border-width: 0;
+}
+
+.dijitSelect,
+.dijitSelect *,
+.dijitButtonNode,
+.dijitButtonNode * {
+ cursor: pointer;
+ -webkit-tap-highlight-color: transparent;
+}
+
+.dj_ie .dijitButtonNode {
+ /* ensure hasLayout */
+ zoom: 1;
+}
+
+.dj_ie .dijitButtonNode button {
+ /*
+ disgusting hack to get rid of spurious padding around button elements
+ on IE. MSIE is truly the web's boat anchor.
+ */
+ overflow: visible;
+}
+
+div.dijitArrowButton {
+ float: right;
+}
+
+/******
+ TextBox related.
+ Everything that has an
+*******/
+.dijitTextBox {
+ border: solid black 1px;
+ width: 15em;
+ /* need to set default size on outer node since inner nodes say and . user can override */
+ vertical-align: middle;
+}
+
+.dijitTextBoxReadOnly,
+.dijitTextBoxDisabled {
+ color: gray;
+}
+
+.dj_safari .dijitTextBoxDisabled input {
+ color: #b0b0b0;
+ /* because Safari lightens disabled input/textarea no matter what color you specify */
+}
+
+.dj_safari textarea.dijitTextAreaDisabled {
+ color: #333;
+ /* because Safari lightens disabled input/textarea no matter what color you specify */
+}
+
+.dj_gecko .dijitTextBoxReadOnly input.dijitInputField,
+.dj_gecko .dijitTextBoxDisabled input {
+ -moz-user-input: none;
+ /* prevent focus of disabled textbox buttons */
+}
+
+.dijitPlaceHolder {
+ /* hint text that appears in a textbox until user starts typing */
+ color: #aaaaaa;
+ font-style: italic;
+ position: absolute;
+ top: 0;
+ left: 0;
+ white-space: nowrap;
+ pointer-events: none;
+ /* so cut/paste context menu shows up when right clicking */
+}
+
+.dijitTimeTextBox {
+ width: 8em;
+}
+
+/* rules for webkit to deal with fuzzy blue focus border */
+.dijitTextBox input:focus {
+ outline: none;
+ /* blue fuzzy line looks wrong on combobox or something w/validation icon showing */
+}
+
+.dijitTextBoxFocused {
+ outline: 5px -webkit-focus-ring-color;
+}
+
+.dijitSelect input,
+.dijitTextBox input {
+ float: left;
+ /* needed by IE to remove secret margin */
+}
+
+.dj_ie6 input.dijitTextBox,
+.dj_ie6 .dijitTextBox input {
+ float: none;
+}
+
+.dijitInputInner {
+ /* for when an is embedded inside an inline-block with a size and border */
+ border: 0 !important;
+ background-color: transparent !important;
+ width: 100% !important;
+ /* IE dislikes horizontal tweaking combined with width:100% so punish everyone for consistency */
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ margin-left: 0 !important;
+ margin-right: 0 !important;
+}
+
+.dj_a11y .dijitTextBox input {
+ margin: 0 !important;
+}
+
+.dijitValidationTextBoxError input.dijitValidationInner,
+.dijitSelect input,
+.dijitTextBox input.dijitArrowButtonInner {
+ /*
used to display arrow icon/validation icon, or in arrow character in high contrast mode.
+ * The css below is a trick to hide the character in non-high-contrast mode
+ */
+ text-indent: -2em !important;
+ direction: ltr !important;
+ text-align: left !important;
+ height: auto !important;
+}
+
+.dj_ie .dijitSelect input,
+.dj_ie .dijitTextBox input,
+.dj_ie input.dijitTextBox {
+ overflow-y: visible;
+ /* inputs need help expanding when padding is added or line-height is adjusted */
+ line-height: normal;
+ /* strict mode */
+}
+
+.dijitSelect .dijitSelectLabel span {
+ line-height: 100%;
+}
+
+.dj_ie .dijitSelect .dijitSelectLabel {
+ line-height: normal;
+}
+
+.dj_ie6 .dijitSelect .dijitSelectLabel,
+.dj_ie7 .dijitSelect .dijitSelectLabel,
+.dj_ie8 .dijitSelect .dijitSelectLabel,
+.dj_iequirks .dijitSelect .dijitSelectLabel,
+.dijitSelect td,
+.dj_ie6 .dijitSelect input,
+.dj_iequirks .dijitSelect input,
+.dj_ie6 .dijitSelect .dijitValidationContainer,
+.dj_ie6 .dijitTextBox input,
+.dj_ie6 input.dijitTextBox,
+.dj_iequirks .dijitTextBox input.dijitValidationInner,
+.dj_iequirks .dijitTextBox input.dijitArrowButtonInner,
+.dj_iequirks .dijitTextBox input.dijitSpinnerButtonInner,
+.dj_iequirks .dijitTextBox input.dijitInputInner,
+.dj_iequirks input.dijitTextBox {
+ line-height: 100%;
+ /* IE7 problem where the icon is vertically way too low w/o this */
+}
+
+.dj_a11y input.dijitValidationInner,
+.dj_a11y input.dijitArrowButtonInner {
+ /* (in high contrast mode) revert rules from above so character displays */
+ text-indent: 0 !important;
+ width: 1em !important;
+ color: black !important;
+}
+
+.dijitValidationTextBoxError .dijitValidationContainer {
+ display: inline;
+ cursor: default;
+}
+
+/* ComboBox & Spinner */
+.dijitSpinner .dijitSpinnerButtonContainer,
+.dijitComboBox .dijitArrowButtonContainer {
+ /* dividing line between input area and up/down button(s) for ComboBox and Spinner */
+ border-width: 0 0 0 1px !important;
+ /* !important needed due to wayward ".theme .dijitButtonNode" rules */
+}
+
+.dj_a11y .dijitSelect .dijitArrowButtonContainer,
+.dijitToolbar .dijitComboBox .dijitArrowButtonContainer {
+ /* overrides above rule plus mirror-image rule in dijit_rtl.css to have no divider when ComboBox in Toolbar */
+ border-width: 0 !important;
+}
+
+.dijitComboBoxMenu {
+ /* Drop down menu is implemented as
... but we don't want circles before each item */
+ list-style-type: none;
+}
+
+.dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {
+ /* dividing line between input area and up/down button(s) for ComboBox and Spinner */
+ border-width: 0;
+}
+
+.dj_ie .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {
+ clear: both;
+ /* IE workaround */
+}
+
+.dj_ie .dijitToolbar .dijitComboBox {
+ /* make combobox buttons align properly with other buttons in a toolbar */
+ vertical-align: middle;
+}
+
+/* Spinner */
+.dijitTextBox .dijitSpinnerButtonContainer {
+ width: 1em;
+ position: relative !important;
+ overflow: hidden;
+}
+
+.dijitSpinner .dijitSpinnerButtonInner {
+ width: 1em;
+ visibility: hidden !important;
+ /* just a sizing element */
+ overflow-x: hidden;
+}
+
+.dijitComboBox .dijitButtonNode,
+.dijitSpinnerButtonContainer .dijitButtonNode {
+ border-width: 0;
+}
+
+.dj_a11y .dijitSpinnerButtonContainer .dijitButtonNode {
+ border-width: 0px !important;
+ border-style: solid !important;
+}
+
+.dj_a11y .dijitTextBox .dijitSpinnerButtonContainer,
+.dj_a11y .dijitSpinner .dijitArrowButtonInner,
+.dj_a11y .dijitSpinnerButtonContainer input {
+ width: 1em !important;
+}
+
+.dj_a11y .dijitSpinner .dijitArrowButtonInner {
+ margin: 0 auto !important;
+ /* should auto-center */
+}
+
+.dj_ie .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {
+ padding-left: 0.3em !important;
+ padding-right: 0.3em !important;
+ margin-left: 0.3em !important;
+ margin-right: 0.3em !important;
+ width: 1.4em !important;
+}
+
+.dj_ie7 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {
+ padding-left: 0 !important;
+ /* manually center INPUT: character is .5em and total width = 1em */
+ padding-right: 0 !important;
+ width: 1em !important;
+}
+
+.dj_ie6 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {
+ margin-left: 0.1em !important;
+ margin-right: 0.1em !important;
+ width: 1em !important;
+}
+
+.dj_iequirks .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {
+ margin-left: 0 !important;
+ margin-right: 0 !important;
+ width: 2em !important;
+}
+
+.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {
+ /* note: .dijitInputLayoutContainer makes this rule override .dijitArrowButton settings
+ * for dijit.form.Button
+ */
+ padding: 0;
+ position: absolute !important;
+ right: 0;
+ float: none;
+ height: 50%;
+ width: 100%;
+ bottom: auto;
+ left: 0;
+ right: auto;
+}
+
+.dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {
+ width: auto;
+}
+
+.dj_a11y .dijitSpinnerButtonContainer .dijitArrowButton {
+ overflow: visible !important;
+}
+
+.dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton {
+ top: 50%;
+ border-top-width: 1px !important;
+}
+
+.dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton {
+ top: 0;
+}
+
+.dijitSpinner .dijitArrowButtonInner {
+ margin: auto;
+ overflow-x: hidden;
+ height: 100% !important;
+}
+
+.dj_iequirks .dijitSpinner .dijitArrowButtonInner {
+ height: auto !important;
+}
+
+.dijitSpinner .dijitArrowButtonInner .dijitInputField {
+ transform: scale(0.5);
+ transform-origin: left top;
+ padding-top: 0;
+ padding-bottom: 0;
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ width: 100%;
+ visibility: hidden;
+}
+
+.dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField {
+ zoom: 50%;
+ /* emulate transform: scale(0.5) */
+}
+
+.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner {
+ overflow: hidden;
+}
+
+.dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {
+ width: 100%;
+}
+
+.dj_iequirks .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {
+ width: 1em;
+ /* matches .dj_a11y .dijitTextBox .dijitSpinnerButtonContainer rule - 100% is the whole screen width in quirks */
+}
+
+.dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {
+ vertical-align: top;
+ visibility: visible;
+}
+
+.dj_a11y .dijitSpinnerButtonContainer {
+ width: 1em;
+}
+
+/****
+ dijit.form.CheckBox
+ &
+ dijit.form.RadioButton
+****/
+.dijitCheckBox,
+.dijitRadio,
+.dijitCheckBoxInput {
+ padding: 0;
+ border: 0;
+ width: 16px;
+ height: 16px;
+ background-position: center center;
+ background-repeat: no-repeat;
+ overflow: hidden;
+}
+
+.dijitCheckBox input,
+.dijitRadio input {
+ margin: 0;
+ padding: 0;
+ display: block;
+}
+
+.dijitCheckBoxInput {
+ /* place the actual input on top, but invisible */
+ opacity: 0;
+}
+
+.dj_ie .dijitCheckBoxInput {
+ filter: alpha(opacity=0);
+}
+
+.dj_a11y .dijitCheckBox,
+.dj_a11y .dijitRadio {
+ /* in a11y mode we display the native checkbox (not the icon), so don't restrict the size */
+ width: auto !important;
+ height: auto !important;
+}
+
+.dj_a11y .dijitCheckBoxInput {
+ opacity: 1;
+ filter: none;
+ width: auto;
+ height: auto;
+}
+
+.dj_a11y .dijitFocusedLabel {
+ /* for checkboxes or radio buttons in high contrast mode, use border rather than outline to indicate focus (outline does not work in FF)*/
+ border: 1px dotted;
+ outline: 0px !important;
+}
+
+/****
+ dijit.ProgressBar
+****/
+.dijitProgressBar {
+ z-index: 0;
+ /* so z-index settings below have no effect outside of the ProgressBar */
+}
+
+.dijitProgressBarEmpty {
+ /* outer container and background of the bar that's not finished yet*/
+ position: relative;
+ overflow: hidden;
+ border: 1px solid black;
+ /* a11y: border necessary for high-contrast mode */
+ z-index: 0;
+ /* establish a stacking context for this progress bar */
+}
+
+.dijitProgressBarFull {
+ /* outer container for background of bar that is finished */
+ position: absolute;
+ overflow: hidden;
+ z-index: -1;
+ top: 0;
+ width: 100%;
+}
+
+.dj_ie6 .dijitProgressBarFull {
+ height: 1.6em;
+}
+
+.dijitProgressBarTile {
+ /* inner container for finished portion */
+ position: absolute;
+ overflow: hidden;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ /* needed for IE/quirks */
+ height: auto;
+ background-color: #aaa;
+ background-attachment: fixed;
+}
+
+.dj_a11y .dijitProgressBarTile {
+ /* a11y: The border provides visibility in high-contrast mode */
+ border-width: 2px;
+ border-style: solid;
+ background-color: transparent !important;
+}
+
+.dj_ie6 .dijitProgressBarTile {
+ /* width:auto works in IE6 with position:static but not position:absolute */
+ position: static;
+ /* height:auto or 100% does not work in IE6 */
+ height: 1.6em;
+}
+
+.dijitProgressBarIndeterminate .dijitProgressBarTile {
+ /* animated gif for 'indeterminate' mode */
+}
+
+.dijitProgressBarIndeterminateHighContrastImage {
+ display: none;
+}
+
+.dj_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage {
+ display: block;
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: auto;
+}
+
+.dijitProgressBarLabel {
+ display: block;
+ position: static;
+ width: 100%;
+ text-align: center;
+ background-color: transparent !important;
+}
+
+/****
+ dijit.Tooltip
+****/
+.dijitTooltip {
+ position: absolute;
+ z-index: 2000;
+ display: block;
+ /* make visible but off screen */
+ left: 0;
+ top: -10000px;
+ overflow: visible;
+}
+
+.dijitTooltipContainer {
+ border: solid black 2px;
+ background: #b8b5b5;
+ color: black;
+ font-size: small;
+}
+
+.dijitTooltipFocusNode {
+ padding: 2px 2px 2px 2px;
+}
+
+.dijitTooltipConnector {
+ position: absolute;
+}
+
+.dj_a11y .dijitTooltipConnector {
+ display: none;
+ /* won't show b/c it's background-image; hide to avoid border gap */
+}
+
+.dijitTooltipData {
+ display: none;
+}
+
+/* Layout widgets. This is essential CSS to make layout work (it isn't "styling" CSS)
+make sure that the position:absolute in dijitAlign* overrides other classes */
+.dijitLayoutContainer {
+ position: relative;
+ display: block;
+ overflow: hidden;
+}
+
+.dijitAlignTop,
+.dijitAlignBottom,
+.dijitAlignLeft,
+.dijitAlignRight {
+ position: absolute;
+ overflow: hidden;
+}
+
+body .dijitAlignClient {
+ position: absolute;
+}
+
+/*
+* BorderContainer
+*
+* .dijitBorderContainer is a stylized layout where panes have border and margin.
+* .dijitBorderContainerNoGutter is a raw layout.
+*/
+.dijitBorderContainer,
+.dijitBorderContainerNoGutter {
+ position: relative;
+ overflow: hidden;
+ z-index: 0;
+ /* so z-index settings below have no effect outside of the BorderContainer */
+}
+
+.dijitBorderContainerPane,
+.dijitBorderContainerNoGutterPane {
+ position: absolute !important;
+ /* !important to override position:relative in dijitTabContainer etc. */
+ z-index: 2;
+ /* above the splitters so that off-by-one browser errors don't cover up border of pane */
+}
+
+.dijitBorderContainer > .dijitTextArea {
+ /* On Safari, for SimpleTextArea inside a BorderContainer,
+ don't want to display the grip to resize */
+ resize: none;
+}
+
+.dijitGutter {
+ /* gutter is just a place holder for empty space between panes in BorderContainer */
+ position: absolute;
+ font-size: 1px;
+ /* needed by IE6 even though div is empty, otherwise goes to 15px */
+}
+
+/* SplitContainer
+
+ 'V' == container that splits vertically (up/down)
+ 'H' = horizontal (left/right)
+*/
+.dijitSplitter {
+ position: absolute;
+ overflow: hidden;
+ z-index: 10;
+ /* above the panes so that splitter focus is visible on FF, see #7583*/
+ background-color: #fff;
+ border-color: gray;
+ border-style: solid;
+ border-width: 0;
+}
+
+.dj_ie .dijitSplitter {
+ z-index: 1;
+ /* behind the panes so that pane borders aren't obscured see test_Gui.html/[14392] */
+}
+
+.dijitSplitterActive {
+ z-index: 11 !important;
+}
+
+.dijitSplitterCover {
+ position: absolute;
+ z-index: -1;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.dijitSplitterCoverActive {
+ z-index: 3 !important;
+}
+
+/* #6945: stop mouse events */
+.dj_ie .dijitSplitterCover {
+ background: white;
+ opacity: 0;
+}
+
+.dj_ie6 .dijitSplitterCover,
+.dj_ie7 .dijitSplitterCover,
+.dj_ie8 .dijitSplitterCover {
+ filter: alpha(opacity=0);
+}
+
+.dijitSplitterH {
+ height: 7px;
+ border-top: 1px;
+ border-bottom: 1px;
+ cursor: row-resize;
+ -webkit-tap-highlight-color: transparent;
+}
+
+.dijitSplitterV {
+ width: 7px;
+ border-left: 1px;
+ border-right: 1px;
+ cursor: col-resize;
+ -webkit-tap-highlight-color: transparent;
+}
+
+.dijitSplitContainer {
+ position: relative;
+ overflow: hidden;
+ display: block;
+}
+
+.dijitSplitPane {
+ position: absolute;
+}
+
+.dijitSplitContainerSizerH,
+.dijitSplitContainerSizerV {
+ position: absolute;
+ font-size: 1px;
+ background-color: ThreeDFace;
+ border: 1px solid;
+ border-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight;
+ margin: 0;
+}
+
+.dijitSplitContainerSizerH .thumb,
+.dijitSplitterV .dijitSplitterThumb {
+ overflow: hidden;
+ position: absolute;
+ top: 49%;
+}
+
+.dijitSplitContainerSizerV .thumb,
+.dijitSplitterH .dijitSplitterThumb {
+ position: absolute;
+ left: 49%;
+}
+
+.dijitSplitterShadow,
+.dijitSplitContainerVirtualSizerH,
+.dijitSplitContainerVirtualSizerV {
+ font-size: 1px;
+ background-color: ThreeDShadow;
+ opacity: 0.5;
+ margin: 0;
+}
+
+.dijitSplitContainerSizerH,
+.dijitSplitContainerVirtualSizerH {
+ cursor: col-resize;
+}
+
+.dijitSplitContainerSizerV,
+.dijitSplitContainerVirtualSizerV {
+ cursor: row-resize;
+}
+
+.dj_a11y .dijitSplitterH {
+ border-top: 1px solid #d3d3d3 !important;
+ border-bottom: 1px solid #d3d3d3 !important;
+}
+
+.dj_a11y .dijitSplitterV {
+ border-left: 1px solid #d3d3d3 !important;
+ border-right: 1px solid #d3d3d3 !important;
+}
+
+/* ContentPane */
+.dijitContentPane {
+ display: block;
+ overflow: auto;
+ /* if we don't have this (or overflow:hidden), then Widget.resizeTo() doesn't make sense for ContentPane */
+ -webkit-overflow-scrolling: touch;
+}
+
+.dijitContentPaneSingleChild {
+ /*
+ * if the ContentPane holds a single layout widget child which is being sized to match the content pane,
+ * then the ContentPane should never get a scrollbar (but it does due to browser bugs, see #9449
+ */
+ overflow: hidden;
+}
+
+.dijitContentPaneLoading .dijitIconLoading,
+.dijitContentPaneError .dijitIconError {
+ margin-right: 9px;
+}
+
+/* TitlePane and Fieldset */
+.dijitTitlePane {
+ display: block;
+ overflow: hidden;
+}
+
+.dijitFieldset {
+ border: 1px solid gray;
+}
+
+.dijitTitlePaneTitle,
+.dijitFieldsetTitle {
+ cursor: pointer;
+ -webkit-tap-highlight-color: transparent;
+}
+
+.dijitTitlePaneTitleFixedOpen,
+.dijitTitlePaneTitleFixedClosed,
+.dijitFieldsetTitleFixedOpen,
+.dijitFieldsetTitleFixedClosed {
+ /* TitlePane or Fieldset that cannot be toggled */
+ cursor: default;
+}
+
+.dijitTitlePaneTitle * {
+ vertical-align: middle;
+}
+
+.dijitTitlePane .dijitArrowNodeInner,
+.dijitFieldset .dijitArrowNodeInner {
+ /* normally, hide arrow text in favor of icon */
+ display: none;
+}
+
+.dj_a11y .dijitTitlePane .dijitArrowNodeInner,
+.dj_a11y .dijitFieldset .dijitArrowNodeInner {
+ /* ... except in a11y mode, then show text arrow */
+ display: inline;
+ font-family: monospace;
+ /* because - and + are different widths */
+}
+
+.dj_a11y .dijitTitlePane .dijitArrowNode,
+.dj_a11y .dijitFieldset .dijitArrowNode {
+ /* ... and hide icon (TODO: just point dijitIcon class on the icon, and it hides automatically) */
+ display: none;
+}
+
+.dijitTitlePaneTitleFixedOpen .dijitArrowNode,
+.dijitTitlePaneTitleFixedOpen .dijitArrowNodeInner,
+.dijitTitlePaneTitleFixedClosed .dijitArrowNode,
+.dijitTitlePaneTitleFixedClosed .dijitArrowNodeInner,
+.dijitFieldsetTitleFixedOpen .dijitArrowNode,
+.dijitFieldsetTitleFixedOpen .dijitArrowNodeInner,
+.dijitFieldsetTitleFixedClosed .dijitArrowNode,
+.dijitFieldsetTitleFixedClosed .dijitArrowNodeInner {
+ /* don't show the open close icon or text arrow; it makes the user think the pane is closable */
+ display: none !important;
+ /* !important to override above a11y rules to show text arrow */
+}
+
+.dj_ie6 .dijitTitlePaneContentOuter,
+.dj_ie6 .dijitTitlePane .dijitTitlePaneTitle {
+ /* force hasLayout to ensure borders etc, show up */
+ zoom: 1;
+}
+
+/* Color Palette
+* Sizes designed so that table cell positions match icons in underlying image,
+* which appear at 20x20 intervals.
+*/
+.dijitColorPalette {
+ border: 1px solid #999;
+ background: #fff;
+ position: relative;
+}
+
+.dijitColorPalette .dijitPaletteTable {
+ /* Table that holds the palette cells, and overlays image file with color swatches.
+ * padding/margin to align table with image.
+ */
+ padding: 2px 3px 3px 3px;
+ position: relative;
+ overflow: hidden;
+ outline: 0;
+ border-collapse: separate;
+}
+
+.dj_ie6 .dijitColorPalette .dijitPaletteTable,
+.dj_ie7 .dijitColorPalette .dijitPaletteTable,
+.dj_iequirks .dijitColorPalette .dijitPaletteTable {
+ /* using padding above so that focus border isn't cutoff on moz/webkit,
+ * but using margin on IE because padding doesn't seem to work
+ */
+ padding: 0;
+ margin: 2px 3px 3px 3px;
+}
+
+.dijitColorPalette .dijitPaletteCell {
+ /* in the */
+ font-size: 1px;
+ vertical-align: middle;
+ text-align: center;
+ background: none;
+}
+
+.dijitColorPalette .dijitPaletteImg {
+ /* Called dijitPaletteImg for back-compat, this actually wraps the color swatch with a border and padding */
+ padding: 1px;
+ /* white area between gray border and color swatch */
+ border: 1px solid #999;
+ margin: 2px 1px;
+ cursor: default;
+ font-size: 1px;
+ /* prevent from getting bigger just to hold a character */
+}
+
+.dj_gecko .dijitColorPalette .dijitPaletteImg {
+ padding-bottom: 0;
+ /* workaround rendering glitch on FF, it adds an extra pixel at the bottom */
+}
+
+.dijitColorPalette .dijitColorPaletteSwatch {
+ /* the actual part where the color is */
+ width: 14px;
+ height: 12px;
+}
+
+.dijitPaletteTable td {
+ padding: 0;
+}
+
+.dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg {
+ /* hovered color swatch */
+ border: 1px solid #000;
+}
+
+.dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg,
+.dijitColorPalette .dijitPaletteTable .dijitPaletteCellSelected .dijitPaletteImg {
+ border: 2px solid #000;
+ margin: 1px 0;
+ /* reduce margin to compensate for increased border */
+}
+
+.dj_a11y .dijitColorPalette .dijitPaletteTable,
+.dj_a11y .dijitColorPalette .dijitPaletteTable * {
+ /* table cells are to catch events, but the swatches are in the PaletteImg behind the table */
+ background-color: transparent !important;
+}
+
+/* AccordionContainer */
+.dijitAccordionContainer {
+ border: 1px solid #b7b7b7;
+ border-top: 0 !important;
+}
+
+.dijitAccordionTitle {
+ cursor: pointer;
+ -webkit-tap-highlight-color: transparent;
+}
+
+.dijitAccordionTitleSelected {
+ cursor: default;
+}
+
+/* images off, high-contrast mode styles */
+.dijitAccordionTitle .arrowTextUp,
+.dijitAccordionTitle .arrowTextDown {
+ display: none;
+ font-size: 0.65em;
+ font-weight: normal !important;
+}
+
+.dj_a11y .dijitAccordionTitle .arrowTextUp,
+.dj_a11y .dijitAccordionTitleSelected .arrowTextDown {
+ display: inline;
+}
+
+.dj_a11y .dijitAccordionTitleSelected .arrowTextUp {
+ display: none;
+}
+
+.dijitAccordionChildWrapper {
+ /* this is the node whose height is adjusted */
+ overflow: hidden;
+}
+
+/* Calendar */
+.dijitCalendarContainer table {
+ width: auto;
+ /* in case user has specified a width for the TABLE nodes, see #10553 */
+ clear: both;
+ /* clear margin created for left/right month arrows; needed on IE10 for CalendarLite */
+}
+
+.dijitCalendarContainer th,
+.dijitCalendarContainer td {
+ padding: 0;
+ vertical-align: middle;
+}
+
+.dijitCalendarMonthContainer {
+ text-align: center;
+}
+
+.dijitCalendarDecrementArrow {
+ float: left;
+}
+
+.dijitCalendarIncrementArrow {
+ float: right;
+}
+
+.dijitCalendarYearLabel {
+ white-space: nowrap;
+ /* make sure previous, current, and next year appear on same row */
+}
+
+.dijitCalendarNextYear {
+ margin: 0 0 0 0.55em;
+}
+
+.dijitCalendarPreviousYear {
+ margin: 0 0.55em 0 0;
+}
+
+.dijitCalendarIncrementControl {
+ vertical-align: middle;
+}
+
+.dijitCalendarIncrementControl,
+.dijitCalendarDateTemplate,
+.dijitCalendarMonthLabel,
+.dijitCalendarPreviousYear,
+.dijitCalendarNextYear {
+ cursor: pointer;
+ -webkit-tap-highlight-color: transparent;
+}
+
+.dijitCalendarDisabledDate {
+ color: gray;
+ text-decoration: line-through;
+ cursor: default;
+}
+
+.dijitSpacer {
+ /* don't display it, but make it affect the width */
+ position: relative;
+ height: 1px;
+ overflow: hidden;
+ visibility: hidden;
+}
+
+/* Styling for month drop down list */
+.dijitCalendarMonthMenu .dijitCalendarMonthLabel {
+ text-align: center;
+}
+
+/* Menu */
+.dijitMenu {
+ border: 1px solid black;
+ background-color: white;
+}
+
+.dijitMenuTable {
+ border-collapse: collapse;
+ border-width: 0;
+ background-color: white;
+}
+
+/* workaround for webkit bug #8427, remove this when it is fixed upstream */
+.dj_webkit .dijitMenuTable td[colspan="2"] {
+ border-right: hidden;
+}
+
+.dijitMenuItem {
+ text-align: left;
+ white-space: nowrap;
+ padding: 0.1em 0.2em;
+ cursor: pointer;
+ -webkit-tap-highlight-color: transparent;
+}
+
+/*
+No need to show a focus border since it's obvious from the shading, and there's a .dj_a11y .dijitMenuItemSelected
+rule below that handles the high contrast case when there's no shading.
+Hiding the focus border also works around webkit bug https://code.google.com/p/chromium/issues/detail?id=125779.
+*/
+.dijitMenuItem:focus {
+ outline: none;
+}
+
+.dijitMenuPassive .dijitMenuItemHover,
+.dijitMenuItemSelected {
+ /*
+ * dijitMenuItemHover refers to actual mouse over
+ * dijitMenuItemSelected is used after a menu has been "activated" by
+ * clicking it, tabbing into it, or being opened from a parent menu,
+ * and denotes that the menu item has focus or that focus is on a child
+ * menu
+ */
+ background-color: black;
+ color: white;
+}
+
+.dijitMenuItemIcon,
+.dijitMenuExpand {
+ background-repeat: no-repeat;
+}
+
+.dijitMenuItemDisabled * {
+ /* for a disabled menu item, just set it to mostly transparent */
+ opacity: 0.5;
+ cursor: default;
+}
+
+.dj_ie .dj_a11y .dijitMenuItemDisabled,
+.dj_ie .dj_a11y .dijitMenuItemDisabled *,
+.dj_ie .dijitMenuItemDisabled * {
+ color: gray;
+ filter: alpha(opacity=35);
+}
+
+.dijitMenuItemLabel {
+ vertical-align: middle;
+}
+
+.dj_a11y .dijitMenuItemSelected {
+ border: 1px dotted black !important;
+ /* for 2.0 use outline instead, to prevent jitter */
+}
+
+.dj_a11y .dijitMenuItemSelected .dijitMenuItemLabel {
+ border-width: 1px;
+ border-style: solid;
+}
+
+.dj_ie8 .dj_a11y .dijitMenuItemLabel {
+ position: static;
+}
+
+.dijitMenuExpandA11y {
+ display: none;
+}
+
+.dj_a11y .dijitMenuExpandA11y {
+ display: inline;
+}
+
+.dijitMenuSeparator td {
+ border: 0;
+ padding: 0;
+}
+
+/* separator can be two pixels -- set border of either one to 0 to have only one */
+.dijitMenuSeparatorTop {
+ height: 50%;
+ margin: 0;
+ margin-top: 3px;
+ font-size: 1px;
+}
+
+.dijitMenuSeparatorBottom {
+ height: 50%;
+ margin: 0;
+ margin-bottom: 3px;
+ font-size: 1px;
+}
+
+/* CheckedMenuItem and RadioMenuItem */
+.dijitMenuItemIconChar {
+ display: none;
+ /* don't display except in high contrast mode */
+ visibility: hidden;
+ /* for high contrast mode when menuitem is unchecked: leave space for when it is checked */
+}
+
+.dj_a11y .dijitMenuItemIconChar {
+ display: inline;
+ /* display character in high contrast mode, since icon doesn't show */
+}
+
+.dijitCheckedMenuItemChecked .dijitMenuItemIconChar,
+.dijitRadioMenuItemChecked .dijitMenuItemIconChar {
+ visibility: visible;
+ /* menuitem is checked */
+}
+
+.dj_ie .dj_a11y .dijitMenuBar .dijitMenuItem {
+ /* so bottom border of MenuBar appears on IE7 in high-contrast mode */
+ margin: 0;
+}
+
+/* StackContainer */
+.dijitStackController .dijitToggleButtonChecked * {
+ cursor: default;
+ /* because pressing it has no effect */
+}
+
+/***
+TabContainer
+
+Main class hierarchy:
+
+.dijitTabContainer - the whole TabContainer
+ .dijitTabController / .dijitTabListContainer-top - wrapper for tab buttons, scroll buttons
+ .dijitTabListWrapper / .dijitTabContainerTopStrip - outer wrapper for tab buttons (normal width)
+ .nowrapTabStrip / .dijitTabContainerTop-tabs - inner wrapper for tab buttons (50K width)
+ .dijitTabPaneWrapper - wrapper for content panes, has all borders except the one between content and tabs
+***/
+.dijitTabContainer {
+ z-index: 0;
+ /* so z-index settings below have no effect outside of the TabContainer */
+ overflow: visible;
+ /* prevent off-by-one-pixel errors from hiding bottom border (opposite tab labels) */
+}
+
+.dj_ie6 .dijitTabContainer {
+ /* workaround IE6 problem when tall content overflows TabContainer, see editor/test_FullScreen.html */
+ overflow: hidden;
+}
+
+.dijitTabContainerNoLayout {
+ width: 100%;
+ /* otherwise ScrollingTabController goes to 50K pixels wide */
+}
+
+.dijitTabContainerBottom-tabs,
+.dijitTabContainerTop-tabs,
+.dijitTabContainerLeft-tabs,
+.dijitTabContainerRight-tabs {
+ z-index: 1;
+ overflow: visible !important;
+ /* so tabs can cover up border adjacent to container */
+}
+
+.dijitTabController {
+ z-index: 1;
+}
+
+.dijitTabContainerBottom-container,
+.dijitTabContainerTop-container,
+.dijitTabContainerLeft-container,
+.dijitTabContainerRight-container {
+ z-index: 0;
+ overflow: hidden;
+ border: 1px solid black;
+}
+
+.nowrapTabStrip {
+ width: 50000px;
+ display: block;
+ position: relative;
+ text-align: left;
+ /* just in case ancestor has non-standard setting */
+ z-index: 1;
+}
+
+.dijitTabListWrapper {
+ overflow: hidden;
+ z-index: 1;
+}
+
+.dj_a11y .tabStripButton img {
+ /* hide the icons (or rather the empty space where they normally appear) because text will appear instead */
+ display: none;
+}
+
+.dijitTabContainerTop-tabs {
+ border-bottom: 1px solid black;
+}
+
+.dijitTabContainerTop-container {
+ border-top: 0;
+}
+
+.dijitTabContainerLeft-tabs {
+ border-right: 1px solid black;
+ float: left;
+ /* needed for IE7 RTL mode */
+}
+
+.dijitTabContainerLeft-container {
+ border-left: 0;
+}
+
+.dijitTabContainerBottom-tabs {
+ border-top: 1px solid black;
+}
+
+.dijitTabContainerBottom-container {
+ border-bottom: 0;
+}
+
+.dijitTabContainerRight-tabs {
+ border-left: 1px solid black;
+ float: left;
+ /* needed for IE7 RTL mode */
+}
+
+.dijitTabContainerRight-container {
+ border-right: 0;
+}
+
+div.dijitTabDisabled,
+.dj_ie div.dijitTabDisabled {
+ cursor: auto;
+}
+
+.dijitTab {
+ position: relative;
+ cursor: pointer;
+ -webkit-tap-highlight-color: transparent;
+ white-space: nowrap;
+ z-index: 3;
+}
+
+.dijitTab * {
+ /* make tab icons and close icon line up w/text */
+ vertical-align: middle;
+}
+
+.dijitTabChecked {
+ cursor: default;
+ /* because clicking will have no effect */
+}
+
+.dijitTabContainerTop-tabs .dijitTab {
+ top: 1px;
+ /* to overlap border on .dijitTabContainerTop-tabs */
+}
+
+.dijitTabContainerBottom-tabs .dijitTab {
+ top: -1px;
+ /* to overlap border on .dijitTabContainerBottom-tabs */
+}
+
+.dijitTabContainerLeft-tabs .dijitTab {
+ left: 1px;
+ /* to overlap border on .dijitTabContainerLeft-tabs */
+}
+
+.dijitTabContainerRight-tabs .dijitTab {
+ left: -1px;
+ /* to overlap border on .dijitTabContainerRight-tabs */
+}
+
+.dijitTabContainerTop-tabs .dijitTab,
+.dijitTabContainerBottom-tabs .dijitTab {
+ /* Inline-block */
+ display: inline-block;
+ /* webkit and FF3 */
+}
+
+.tabStripButton {
+ z-index: 12;
+}
+
+.dijitTabButtonDisabled .tabStripButton {
+ display: none;
+}
+
+.dijitTabCloseButton {
+ margin-left: 1em;
+}
+
+.dijitTabCloseText {
+ display: none;
+}
+
+.dijitTab .tabLabel {
+ /* make sure tabs w/close button and w/out close button are same height, even w/small (<15px) font.
+ * assumes <=15px height for close button icon.
+ */
+ min-height: 15px;
+ display: inline-block;
+}
+
+.dijitNoIcon {
+ /* applied to / node when there is no icon specified */
+ display: none;
+}
+
+.dj_ie6 .dijitTab .dijitNoIcon {
+ /* because min-height (on .tabLabel, above) doesn't work on IE6 */
+ display: inline;
+ height: 15px;
+ width: 1px;
+}
+
+/* images off, high-contrast mode styles */
+.dj_a11y .dijitTabCloseButton {
+ background-image: none !important;
+ width: auto !important;
+ height: auto !important;
+}
+
+.dj_a11y .dijitTabCloseText {
+ display: inline;
+}
+
+.dijitTabPane,
+.dijitStackContainer-child,
+.dijitAccordionContainer-child {
+ /* children of TabContainer, StackContainer, and AccordionContainer shouldn't have borders
+ * b/c a border is already there from the TabContainer/StackContainer/AccordionContainer itself.
+ */
+ border: none !important;
+}
+
+/* InlineEditBox */
+.dijitInlineEditBoxDisplayMode {
+ border: 1px solid transparent;
+ /* so keyline (border) on hover can appear without screen jump */
+ cursor: text;
+}
+
+.dj_a11y .dijitInlineEditBoxDisplayMode,
+.dj_ie6 .dijitInlineEditBoxDisplayMode {
+ /* except that IE6 doesn't support transparent borders, nor does high contrast mode */
+ border: none;
+}
+
+.dijitInlineEditBoxDisplayModeHover,
+.dj_a11y .dijitInlineEditBoxDisplayModeHover,
+.dj_ie6 .dijitInlineEditBoxDisplayModeHover {
+ /* An InlineEditBox in view mode (click this to edit the text) */
+ background-color: #e2ebf2;
+ border: solid 1px black;
+}
+
+.dijitInlineEditBoxDisplayModeDisabled {
+ cursor: default;
+}
+
+/* Tree */
+.dijitTree {
+ overflow: auto;
+ /* for scrollbars when Tree has a height setting, and to prevent wrapping around float elements, see #11491 */
+ -webkit-tap-highlight-color: transparent;
+}
+
+.dijitTreeContainer {
+ float: left;
+ /* for correct highlighting during horizontal scroll, see #16132 */
+}
+
+.dijitTreeIndent {
+ /* amount to indent each tree node (relative to parent node) */
+ width: 19px;
+}
+
+.dijitTreeRow,
+.dijitTreeContent {
+ white-space: nowrap;
+}
+
+.dj_ie .dijitTreeLabel:focus {
+ /* workaround IE9 behavior where down arrowing through TreeNodes doesn't show focus outline */
+ outline: 1px dotted black;
+}
+
+.dijitTreeRow img {
+ /* make the expando and folder icons line up with the label */
+ vertical-align: middle;
+}
+
+.dijitTreeContent {
+ cursor: default;
+}
+
+.dijitExpandoText {
+ display: none;
+}
+
+.dj_a11y .dijitExpandoText {
+ display: inline;
+ padding-left: 10px;
+ padding-right: 10px;
+ font-family: monospace;
+ border-style: solid;
+ border-width: thin;
+ cursor: pointer;
+}
+
+.dijitTreeLabel {
+ margin: 0 4px;
+}
+
+/* Dialog */
+.dijitDialog {
+ position: absolute;
+ z-index: 999;
+ overflow: hidden;
+ /* override overflow: auto; from ContentPane to make dragging smoother */
+}
+
+.dijitDialogTitleBar {
+ cursor: move;
+}
+
+.dijitDialogFixed .dijitDialogTitleBar {
+ cursor: default;
+}
+
+.dijitDialogCloseIcon {
+ cursor: pointer;
+ -webkit-tap-highlight-color: transparent;
+}
+
+.dijitDialogPaneContent {
+ -webkit-overflow-scrolling: touch;
+}
+
+.dijitDialogUnderlayWrapper {
+ position: absolute;
+ left: 0;
+ top: 0;
+ z-index: 998;
+ display: none;
+ background: transparent !important;
+}
+
+.dijitDialogUnderlay {
+ background: #eee;
+ opacity: 0.5;
+}
+
+.dj_ie .dijitDialogUnderlay {
+ filter: alpha(opacity=50);
+}
+
+/* images off, high-contrast mode styles */
+.dj_a11y .dijitSpinnerButtonContainer,
+.dj_a11y .dijitDialog {
+ opacity: 1 !important;
+ background-color: white !important;
+}
+
+.dijitDialog .closeText {
+ display: none;
+ /* for the onhover border in high contrast on IE: */
+ position: absolute;
+}
+
+.dj_a11y .dijitDialog .closeText {
+ display: inline;
+}
+
+/* Slider */
+.dijitSliderMoveable {
+ z-index: 99;
+ position: absolute !important;
+ display: block;
+ vertical-align: middle;
+}
+
+.dijitSliderMoveableH {
+ right: 0;
+}
+
+.dijitSliderMoveableV {
+ right: 50%;
+}
+
+.dj_a11y div.dijitSliderImageHandle,
+.dijitSliderImageHandle {
+ margin: 0;
+ padding: 0;
+ position: relative !important;
+ border: 8px solid gray;
+ width: 0;
+ height: 0;
+ cursor: pointer;
+ -webkit-tap-highlight-color: transparent;
+}
+
+.dj_iequirks .dj_a11y .dijitSliderImageHandle {
+ font-size: 0;
+}
+
+.dj_ie7 .dijitSliderImageHandle {
+ overflow: hidden;
+ /* IE7 workaround to make slider handle VISIBLE in non-a11y mode */
+}
+
+.dj_ie7 .dj_a11y .dijitSliderImageHandle {
+ overflow: visible;
+ /* IE7 workaround to make slider handle VISIBLE in a11y mode */
+}
+
+.dj_a11y .dijitSliderFocused .dijitSliderImageHandle {
+ border: 4px solid #000;
+ height: 8px;
+ width: 8px;
+}
+
+.dijitSliderImageHandleV {
+ top: -8px;
+ right: -50%;
+}
+
+.dijitSliderImageHandleH {
+ left: 50%;
+ top: -5px;
+ vertical-align: top;
+}
+
+.dijitSliderBar {
+ border-style: solid;
+ border-color: black;
+ cursor: pointer;
+ -webkit-tap-highlight-color: transparent;
+}
+
+.dijitSliderBarContainerV {
+ position: relative;
+ height: 100%;
+ z-index: 1;
+}
+
+.dijitSliderBarContainerH {
+ position: relative;
+ z-index: 1;
+}
+
+.dijitSliderBarH {
+ height: 4px;
+ border-width: 1px 0;
+}
+
+.dijitSliderBarV {
+ width: 4px;
+ border-width: 0 1px;
+}
+
+.dijitSliderProgressBar {
+ background-color: red;
+ z-index: 1;
+}
+
+.dijitSliderProgressBarV {
+ position: static !important;
+ height: 0;
+ vertical-align: top;
+ text-align: left;
+}
+
+.dijitSliderProgressBarH {
+ position: absolute !important;
+ width: 0;
+ vertical-align: middle;
+ overflow: visible;
+}
+
+.dijitSliderRemainingBar {
+ overflow: hidden;
+ background-color: transparent;
+ z-index: 1;
+}
+
+.dijitSliderRemainingBarV {
+ height: 100%;
+ text-align: left;
+}
+
+.dijitSliderRemainingBarH {
+ width: 100% !important;
+}
+
+/* the slider bumper is the space consumed by the slider handle when it hangs over an edge */
+.dijitSliderBumper {
+ overflow: hidden;
+ z-index: 1;
+}
+
+.dijitSliderBumperV {
+ width: 4px;
+ height: 8px;
+ border-width: 0 1px;
+}
+
+.dijitSliderBumperH {
+ width: 8px;
+ height: 4px;
+ border-width: 1px 0;
+}
+
+.dijitSliderBottomBumper,
+.dijitSliderLeftBumper {
+ background-color: red;
+}
+
+.dijitSliderTopBumper,
+.dijitSliderRightBumper {
+ background-color: transparent;
+}
+
+.dijitSliderDecoration {
+ text-align: center;
+}
+
+.dijitSliderDecorationC,
+.dijitSliderDecorationV {
+ position: relative;
+ /* needed for IE+quirks+RTL+vertical (rendering bug) but add everywhere for custom styling consistency but this messes up IE horizontal sliders */
+}
+
+.dijitSliderDecorationH {
+ width: 100%;
+}
+
+.dijitSliderDecorationV {
+ height: 100%;
+ white-space: nowrap;
+}
+
+.dijitSliderButton {
+ font-family: monospace;
+ margin: 0;
+ padding: 0;
+ display: block;
+}
+
+.dj_a11y .dijitSliderButtonInner {
+ visibility: visible !important;
+}
+
+.dijitSliderButtonContainer {
+ text-align: center;
+ height: 0;
+ /* ??? */
+}
+
+.dijitSliderButtonContainer * {
+ cursor: pointer;
+ -webkit-tap-highlight-color: transparent;
+}
+
+.dijitSlider .dijitButtonNode {
+ padding: 0;
+ display: block;
+}
+
+.dijitRuleContainer {
+ position: relative;
+ overflow: visible;
+}
+
+.dijitRuleContainerV {
+ height: 100%;
+ line-height: 0;
+ float: left;
+ text-align: left;
+}
+
+.dj_opera .dijitRuleContainerV {
+ line-height: 2%;
+}
+
+.dj_ie .dijitRuleContainerV {
+ line-height: normal;
+}
+
+.dj_gecko .dijitRuleContainerV {
+ margin: 0 0 1px 0;
+ /* mozilla bug workaround for float:left,height:100% block elements */
+}
+
+.dijitRuleMark {
+ position: absolute;
+ border: 1px solid black;
+ line-height: 0;
+ height: 100%;
+}
+
+.dijitRuleMarkH {
+ width: 0;
+ border-top-width: 0 !important;
+ border-bottom-width: 0 !important;
+ border-left-width: 0 !important;
+}
+
+.dijitRuleLabelContainer {
+ position: absolute;
+}
+
+.dijitRuleLabelContainerH {
+ text-align: center;
+ display: inline-block;
+}
+
+.dijitRuleLabelH {
+ position: relative;
+ left: -50%;
+}
+
+.dijitRuleLabelV {
+ /* so that long labels don't overflow to multiple rows, or overwrite slider itself */
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+}
+
+.dijitRuleMarkV {
+ height: 0;
+ border-right-width: 0 !important;
+ border-bottom-width: 0 !important;
+ border-left-width: 0 !important;
+ width: 100%;
+ left: 0;
+}
+
+.dj_ie .dijitRuleLabelContainerV {
+ margin-top: -0.55em;
+}
+
+.dj_a11y .dijitSliderReadOnly,
+.dj_a11y .dijitSliderDisabled {
+ opacity: 0.6;
+}
+
+.dj_ie .dj_a11y .dijitSliderReadOnly .dijitSliderBar,
+.dj_ie .dj_a11y .dijitSliderDisabled .dijitSliderBar {
+ filter: alpha(opacity=40);
+}
+
+/* + and - Slider buttons: override theme settings to display icons */
+.dj_a11y .dijitSlider .dijitSliderButtonContainer div {
+ font-family: monospace;
+ /* otherwise hyphen is larger and more vertically centered */
+ font-size: 1em;
+ line-height: 1em;
+ height: auto;
+ width: auto;
+ margin: 0 4px;
+}
+
+/* Icon-only buttons (often in toolbars) still display the text in high-contrast mode */
+.dj_a11y .dijitButtonContents .dijitButtonText,
+.dj_a11y .dijitTab .tabLabel {
+ display: inline !important;
+}
+
+.dj_a11y .dijitSelect .dijitButtonText {
+ display: inline-block !important;
+}
+
+/* TextArea, SimpleTextArea */
+.dijitTextArea {
+ width: 100%;
+ overflow-y: auto;
+ /* w/out this IE's SimpleTextArea goes to overflow: scroll */
+}
+
+.dijitTextArea[cols] {
+ width: auto;
+ /* SimpleTextArea cols */
+}
+
+.dj_ie .dijitTextAreaCols {
+ width: auto;
+}
+
+.dijitExpandingTextArea {
+ /* for auto exanding textarea (called Textarea currently, rename for 2.0) don't want to display the grip to resize */
+ resize: none;
+}
+
+/* Toolbar
+* Note that other toolbar rules (for objects in toolbars) are scattered throughout this file.
+*/
+.dijitToolbarSeparator {
+ height: 18px;
+ width: 5px;
+ padding: 0 1px;
+ margin: 0;
+}
+
+/* Editor */
+.dijitIEFixedToolbar {
+ position: absolute;
+ /* top:0; */
+ top: expression(eval((document.documentElement||document.body) .scrollTop));
+}
+
+.dijitEditor {
+ display: block;
+ /* prevents glitch on FF with InlineEditBox, see #8404 */
+}
+
+.dijitEditorDisabled,
+.dijitEditorReadOnly {
+ color: gray;
+}
+
+/* TimePicker */
+.dijitTimePicker {
+ background-color: white;
+}
+
+.dijitTimePickerItem {
+ cursor: pointer;
+ -webkit-tap-highlight-color: transparent;
+}
+
+.dijitTimePickerItemHover {
+ background-color: gray;
+ color: white;
+}
+
+.dijitTimePickerItemSelected {
+ font-weight: bold;
+ color: #333;
+ background-color: #b7cdee;
+}
+
+.dijitTimePickerItemDisabled {
+ color: gray;
+ text-decoration: line-through;
+}
+
+.dijitTimePickerItemInner {
+ text-align: center;
+ border: 0;
+ padding: 2px 8px 2px 8px;
+}
+
+.dijitTimePickerTick,
+.dijitTimePickerMarker {
+ border-bottom: 1px solid gray;
+}
+
+.dijitTimePicker .dijitDownArrowButton {
+ border-top: none !important;
+}
+
+.dijitTimePickerTick {
+ color: #ccc;
+}
+
+.dijitTimePickerMarker {
+ color: black;
+ background-color: #ccc;
+}
+
+.dj_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner {
+ border: solid 4px black;
+}
+
+.dj_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner {
+ border: dashed 4px black;
+}
+
+.dijitToggleButtonIconChar {
+ /* character (instead of icon) to show that ToggleButton is checked */
+ display: none !important;
+}
+
+.dj_a11y .dijitToggleButton .dijitToggleButtonIconChar {
+ display: inline !important;
+ visibility: hidden;
+}
+
+.dj_ie6 .dijitToggleButtonIconChar,
+.dj_ie6 .tabStripButton .dijitButtonText {
+ font-family: "Arial Unicode MS";
+ /* otherwise the a11y character (checkmark, arrow, etc.) appears as a box */
+}
+
+.dj_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar {
+ display: inline !important;
+ /* In high contrast mode, display the check symbol */
+ visibility: visible !important;
+}
+
+.dijitArrowButtonChar {
+ display: none !important;
+}
+
+.dj_a11y .dijitArrowButtonChar {
+ display: inline !important;
+}
+
+.dj_a11y .dijitDropDownButton .dijitArrowButtonInner,
+.dj_a11y .dijitComboButton .dijitArrowButtonInner {
+ display: none !important;
+}
+
+/* Select */
+.dj_a11y .dijitSelect {
+ border-collapse: separate !important;
+ border-width: 1px;
+ border-style: solid;
+}
+
+.dj_ie .dijitSelect {
+ vertical-align: middle;
+ /* Set this back for what we hack in dijit inline */
+}
+
+.dj_ie6 .dijitSelect .dijitValidationContainer,
+.dj_ie8 .dijitSelect .dijitButtonText {
+ vertical-align: top;
+}
+
+.dj_ie6 .dijitTextBox .dijitInputContainer,
+.dj_iequirks .dijitTextBox .dijitInputContainer,
+.dj_ie6 .dijitTextBox .dijitArrowButtonInner,
+.dj_ie6 .dijitSpinner .dijitSpinnerButtonInner,
+.dijitSelect .dijitSelectLabel {
+ vertical-align: baseline;
+}
+
+.dijitNumberTextBox {
+ text-align: left;
+ direction: ltr;
+}
+
+.dijitNumberTextBox .dijitInputInner {
+ text-align: inherit;
+ /* input */
+}
+
+.dijitNumberTextBox input.dijitInputInner,
+.dijitCurrencyTextBox input.dijitInputInner,
+.dijitSpinner input.dijitInputInner {
+ text-align: right;
+}
+
+.dj_ie8 .dijitNumberTextBox input.dijitInputInner,
+.dj_ie9 .dijitNumberTextBox input.dijitInputInner,
+.dj_ie8 .dijitCurrencyTextBox input.dijitInputInner,
+.dj_ie9 .dijitCurrencyTextBox input.dijitInputInner,
+.dj_ie8 .dijitSpinner input.dijitInputInner,
+.dj_ie9 .dijitSpinner input.dijitInputInner {
+ /* workaround bug where caret invisible in empty textboxes */
+ padding-right: 1px !important;
+}
+
+.dijitToolbar .dijitSelect {
+ margin: 0;
+}
+
+.dj_webkit .dijitToolbar .dijitSelect {
+ padding-left: 0.3em;
+}
+
+.dijitSelect .dijitButtonContents {
+ padding: 0;
+ white-space: nowrap;
+ text-align: left;
+ border-style: none solid none none;
+ border-width: 1px;
+}
+
+.dijitSelectFixedWidth .dijitButtonContents {
+ width: 100%;
+}
+
+.dijitSelectMenu .dijitMenuItemIcon {
+ /* avoid blank area in left side of menu (since we have no icons) */
+ display: none;
+}
+
+.dj_ie6 .dijitSelectMenu .dijitMenuItemLabel,
+.dj_ie7 .dijitSelectMenu .dijitMenuItemLabel {
+ /* Set back to static due to bug in ie6/ie7 - See Bug #9651 */
+ position: static;
+}
+
+/* Fix the baseline of our label (for multi-size font elements) */
+.dijitSelectLabel * {
+ vertical-align: baseline;
+}
+
+/* Styling for the currently-selected option (rich text can mess this up) */
+.dijitSelectSelectedOption * {
+ font-weight: bold;
+}
+
+/* Fix the styling of the dropdown menu to be more combobox-like */
+.dijitSelectMenu {
+ border-width: 1px;
+}
+
+/* Used in cases, such as FullScreen plugin, when we need to force stuff to static positioning. */
+.dijitForceStatic {
+ position: static !important;
+}
+
+/**** Disabled cursor *****/
+.dijitReadOnly *,
+.dijitDisabled *,
+.dijitReadOnly,
+.dijitDisabled {
+ /* a region the user would be able to click on, but it's disabled */
+ cursor: default;
+}
+
+/* Drag and Drop */
+.dojoDndItem {
+ padding: 2px;
+ /* will be replaced by border during drag over (dojoDndItemBefore, dojoDndItemAfter) */
+ /* Prevent magnifying-glass text selection icon to appear on mobile webkit as it causes a touchout event */
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ /* Disable selection/Copy of UIWebView */
+}
+
+.dojoDndHorizontal .dojoDndItem {
+ /* make contents of horizontal container be side by side, rather than vertical */
+ display: inline-block;
+}
+
+.dojoDndItemBefore,
+.dojoDndItemAfter {
+ border: 0px solid #369;
+}
+
+.dojoDndItemBefore {
+ border-width: 2px 0 0 0;
+ padding: 0 2px 2px 2px;
+}
+
+.dojoDndItemAfter {
+ border-width: 0 0 2px 0;
+ padding: 2px 2px 0 2px;
+}
+
+.dojoDndHorizontal .dojoDndItemBefore {
+ border-width: 0 0 0 2px;
+ padding: 2px 2px 2px 0;
+}
+
+.dojoDndHorizontal .dojoDndItemAfter {
+ border-width: 0 2px 0 0;
+ padding: 2px 0 2px 2px;
+}
+
+.dojoDndItemOver {
+ cursor: pointer;
+}
+
+.dj_gecko .dijitArrowButtonInner input,
+.dj_gecko input.dijitArrowButtonInner {
+ -moz-user-focus: ignore;
+}
+
+.dijitFocused .dijitMenuItemShortcutKey {
+ text-decoration: underline;
+}
+
+/* Dijit custom styling */
+.dijitBorderContainer {
+ height: 350px;
+}
+
+.dijitTooltipContainer {
+ background: #fff;
+ border: 1px solid #ccc;
+ border-radius: 6px;
+}
+
+.dijitContentPane {
+ box-sizing: content-box;
+ overflow: auto !important;
+ /* Widgets like the data grid pass their scroll
+ offset to the parent if there is not enough room to display a scroll bar
+ in the widget itself, so do not hide the overflow. */
+}
+
+/* Global Bootstrap changes */
+/* Client defaults and helpers */
+.mx-dataview-content,
+.mx-scrollcontainer-wrapper:not(.mx-scrollcontainer-nested),
+.mx-tabcontainer-content,
+.mx-grid-content {
+ -webkit-overflow-scrolling: touch;
+}
+
+html,
+body,
+#content {
+ height: 100%;
+}
+
+#content > .mx-page {
+ width: 100%;
+ min-height: 100%;
+}
+
+.mx-left-aligned {
+ text-align: left;
+}
+
+.mx-right-aligned {
+ text-align: right;
+}
+
+.mx-center-aligned {
+ text-align: center;
+}
+
+.mx-table {
+ width: 100%;
+}
+
+.mx-table th,
+.mx-table td {
+ padding: 8px;
+ vertical-align: top;
+}
+
+.mx-table th.nopadding,
+.mx-table td.nopadding {
+ padding: 0;
+}
+
+.mx-offscreen {
+ /* When position relative is not set IE doesn't properly render when this class is removed
+ * with the effect that elements are not displayed or are not clickable.
+ */
+ position: relative;
+ height: 0;
+ overflow: hidden;
+}
+
+.mx-ie-event-shield {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: -1;
+}
+
+.mx-swipe-navigation-progress {
+ position: absolute;
+ height: 54px;
+ width: 54px;
+ top: calc(50% - 27px);
+ left: calc(50% - 27px);
+ background: url(resources/swipe-progress.gif);
+}
+
+/* Bacause we use checkboxes without labels, align them with other widgets. */
+input[type=checkbox] {
+ margin: 9px 0;
+}
+
+.mx-checkbox input[type=checkbox] {
+ margin-left: 0;
+ margin-right: 8px;
+ position: static;
+}
+
+.form-vertical .form-group.mx-checkbox input[type=checkbox] {
+ display: block;
+}
+
+.form-vertical .form-group.mx-checkbox.label-after input[type=checkbox] {
+ display: inline-block;
+}
+
+.form-horizontal .form-group.no-columns {
+ padding-left: 15px;
+ padding-right: 15px;
+}
+
+.mx-radiobuttons.inline .radio {
+ display: inline-block;
+ margin-right: 20px;
+}
+
+.mx-radiobuttons .radio input[type=radio] {
+ /* Reset bootstrap rules */
+ position: static;
+ margin-right: 8px;
+ margin-left: 0;
+}
+
+.mx-radiobuttons .radio label {
+ /* Reset bootstrap rules */
+ padding-left: 0;
+}
+
+.alert {
+ margin-top: 8px;
+ margin-bottom: 10px;
+ white-space: pre-line;
+}
+
+.mx-tooltip {
+ margin: 10px;
+}
+
+.mx-tooltip-content {
+ width: 400px;
+ overflow-y: auto;
+}
+
+.mx-tooltip-prepare {
+ height: 24px;
+ padding: 8px;
+ background: transparent url(resources/ttp.gif) no-repeat scroll center center;
+}
+
+.mx-tooltip-content .table th,
+.mx-tooltip-content .table td {
+ padding: 2px 8px;
+}
+
+.mx-tabcontainer-pane {
+ height: 100%;
+}
+
+.mx-tabcontainer-content.loading {
+ min-height: 48px;
+ background: url(resources/tabcontainer-loading.gif) no-repeat center center;
+ background-size: 32px 32px;
+}
+
+.mx-tabcontainer-tabs {
+ margin-bottom: 8px;
+}
+
+.mx-tabcontainer-tabs li {
+ position: relative;
+}
+
+.mx-tabcontainer-indicator {
+ position: absolute;
+ background: #f2dede;
+ border-radius: 8px;
+ color: #b94a48;
+ top: 0px;
+ right: -5px;
+ width: 16px;
+ height: 16px;
+ line-height: 16px;
+ text-align: center;
+ vertical-align: middle;
+ font-size: 10px;
+ font-weight: 600;
+ z-index: 1;
+ /* indicator should not hide behind other tab */
+}
+
+/* base structure */
+.mx-grid {
+ padding: 8px;
+ overflow: hidden;
+ /* to prevent any margin from escaping grid and foobaring our size calculations */
+}
+
+.mx-grid-controlbar,
+.mx-grid-searchbar {
+ display: flex;
+ justify-content: space-between;
+ flex-wrap: wrap;
+}
+
+.mx-grid-controlbar .mx-button,
+.mx-grid-search-controls .mx-button {
+ margin-bottom: 8px;
+}
+
+.mx-grid-search-controls .mx-button + .mx-button,
+.mx-grid-controlbar .mx-button + .mx-button {
+ margin-left: 0.3em;
+}
+
+[dir=rtl] .mx-grid-search-controls .mx-button + .mx-button,
+[dir=rtl] .mx-grid-controlbar .mx-button + .mx-button {
+ margin-left: 0;
+ margin-right: 0.3em;
+}
+
+.mx-grid-pagingbar,
+.mx-grid-search-controls {
+ display: flex;
+ white-space: nowrap;
+ align-items: baseline;
+ margin-left: auto;
+}
+
+.mx-grid-toolbar,
+.mx-grid-search-inputs {
+ margin-right: 5px;
+ flex: 1;
+}
+
+[dir=rtl] .mx-grid-toolbar,
+[dir=rtl] .mx-grid-search-inputs {
+ margin-left: 5px;
+ margin-right: 0px;
+}
+
+[dir=rtl] .mx-grid-pagingbar,
+[dir=rtl] .mx-grid-search-controls {
+ margin-left: 0px;
+ margin-right: auto;
+}
+
+.mx-grid-paging-status {
+ padding: 0 8px 5px;
+}
+
+/* search fields */
+.mx-grid-search-item {
+ display: inline-block;
+ vertical-align: top;
+ margin-bottom: 8px;
+}
+
+.mx-grid-search-label {
+ width: 110px;
+ padding: 0 5px;
+ text-align: right;
+ display: inline-block;
+ vertical-align: top;
+ overflow: hidden;
+}
+
+[dir=rtl] .mx-grid-search-label {
+ text-align: left;
+}
+
+.mx-grid-search-input {
+ width: 150px;
+ padding: 0 5px;
+ display: inline-block;
+ vertical-align: top;
+}
+
+.mx-grid-search-message {
+ flex-basis: 100%;
+}
+
+/* widget combinations */
+.mx-dataview .mx-grid {
+ border: 1px solid #ddd;
+ border-radius: 3px;
+}
+
+.mx-calendar {
+ z-index: 1000;
+}
+
+.mx-calendar-month-dropdown-options {
+ position: absolute;
+}
+
+.mx-calendar,
+.mx-calendar-month-dropdown {
+ user-select: none;
+}
+
+.mx-calendar-month-current {
+ display: inline-block;
+}
+
+.mx-calendar-month-spacer {
+ position: relative;
+ height: 0px;
+ overflow: hidden;
+ visibility: hidden;
+}
+
+.mx-calendar,
+.mx-calendar-month-dropdown-options {
+ border: 1px solid lightgrey;
+ background-color: white;
+}
+
+.mx-datagrid tr {
+ cursor: pointer;
+}
+
+.mx-datagrid tr.mx-datagrid-row-empty {
+ cursor: default;
+}
+
+.mx-datagrid table {
+ width: 100%;
+ max-width: 100%;
+ table-layout: fixed;
+ margin-bottom: 0;
+}
+
+.mx-datagrid th,
+.mx-datagrid td {
+ padding: 8px;
+ line-height: 1.42857143;
+ vertical-align: bottom;
+ border: 1px solid #ddd;
+}
+
+/* head */
+.mx-datagrid th {
+ position: relative;
+ /* Required for the positioning of the column resizers */
+ border-bottom-width: 2px;
+}
+
+.mx-datagrid-head-caption {
+ overflow: hidden;
+ white-space: nowrap;
+}
+
+.mx-datagrid-sort-icon {
+ float: right;
+ padding-left: 5px;
+}
+
+[dir=rtl] .mx-datagrid-sort-icon {
+ float: left;
+ padding: 0 5px 0 0;
+}
+
+.mx-datagrid-column-resizer {
+ position: absolute;
+ top: 0;
+ left: -6px;
+ width: 10px;
+ height: 100%;
+ cursor: col-resize;
+}
+
+[dir=rtl] .mx-datagrid-column-resizer {
+ left: auto;
+ right: -6px;
+}
+
+/* body */
+.mx-datagrid tbody tr:first-child td {
+ border-top: none;
+}
+
+.mx-datagrid tbody .selected td {
+ background-color: #eee;
+}
+
+.mx-datagrid-data-wrapper {
+ overflow: hidden;
+ white-space: nowrap;
+}
+
+.mx-datagrid tbody img {
+ max-width: 16px;
+ max-height: 16px;
+}
+
+.mx-datagrid input,
+.mx-datagrid select,
+.mx-datagrid textarea {
+ cursor: auto;
+}
+
+/* foot */
+.mx-datagrid tfoot th,
+.mx-datagrid tfoot td {
+ padding: 3px 8px;
+}
+
+.mx-datagrid tfoot th {
+ border-top: 1px solid #ddd;
+}
+
+.mx-datagrid.mx-content-loading .mx-content-loader {
+ display: inline-block;
+ width: 90%;
+ animation: placeholderGradient 1s linear infinite;
+ border-radius: 4px;
+ background: #f5f5f5;
+ background: repeating-linear-gradient(to right, #f5f5f5 0%, #f5f5f5 5%, #f9f9f9 50%, #f5f5f5 95%, #f5f5f5 100%);
+ background-size: 200px 100px;
+ animation-fill-mode: both;
+}
+
+@keyframes placeholderGradient {
+ 0% {
+ background-position: 100px 0;
+ }
+ 100% {
+ background-position: -100px 0;
+ }
+}
+.mx-datagrid-table-resizing th,
+.mx-datagrid-table-resizing td {
+ cursor: col-resize !important;
+}
+
+.mx-templategrid-content-wrapper {
+ display: table;
+ width: 100%;
+ border-collapse: collapse;
+ box-sizing: border-box;
+}
+
+.mx-templategrid-row {
+ display: table-row;
+}
+
+.mx-templategrid-item {
+ padding: 5px;
+ display: table-cell;
+ border: 1px solid #ddd;
+ cursor: pointer;
+ box-sizing: border-box;
+}
+
+.mx-templategrid-empty {
+ display: table-cell;
+}
+
+.mx-templategrid-item.selected {
+ background-color: #f5f5f5;
+}
+
+.mx-templategrid-item .mx-table th,
+.mx-templategrid-item .mx-table td {
+ padding: 2px 8px;
+}
+
+.mx-scrollcontainer-horizontal {
+ width: 100%;
+ display: table;
+ table-layout: fixed;
+}
+
+.mx-scrollcontainer-horizontal > div {
+ display: table-cell;
+ vertical-align: top;
+}
+
+.mx-scrollcontainer-nested {
+ padding: 0;
+}
+
+.mx-scrollcontainer-fixed > .mx-scrollcontainer-middle > .mx-scrollcontainer-wrapper,
+.mx-scrollcontainer-fixed > .mx-scrollcontainer-left > .mx-scrollcontainer-wrapper,
+.mx-scrollcontainer-fixed > .mx-scrollcontainer-center > .mx-scrollcontainer-wrapper,
+.mx-scrollcontainer-fixed > .mx-scrollcontainer-right > .mx-scrollcontainer-wrapper {
+ overflow: auto;
+}
+
+.mx-scrollcontainer-move-in {
+ transition: left 250ms ease-out;
+}
+
+.mx-scrollcontainer-move-out {
+ transition: left 250ms ease-in;
+}
+
+.mx-scrollcontainer-shrink .mx-scrollcontainer-toggleable {
+ transition-property: width;
+}
+
+.mx-scrollcontainer-toggleable {
+ background-color: #fff;
+}
+
+.mx-scrollcontainer-push {
+ position: relative;
+}
+
+.mx-scrollcontainer-shrink > .mx-scrollcontainer-toggleable {
+ overflow: hidden;
+}
+
+.mx-scrollcontainer-push.mx-scrollcontainer-open > div,
+.mx-scrollcontainer-slide.mx-scrollcontainer-open > div {
+ pointer-events: none;
+}
+
+.mx-scrollcontainer-push.mx-scrollcontainer-open > .mx-scrollcontainer-toggleable,
+.mx-scrollcontainer-slide.mx-scrollcontainer-open > .mx-scrollcontainer-toggleable {
+ pointer-events: auto;
+}
+
+.mx-navbar-item img,
+.mx-navbar-subitem img {
+ height: 16px;
+}
+
+.mx-navigationtree .navbar-inner {
+ padding-left: 0;
+ padding-right: 0;
+}
+
+.mx-navigationtree ul {
+ list-style: none;
+}
+
+.mx-navigationtree a {
+ display: block;
+ padding: 5px 10px;
+ color: #777;
+ text-shadow: 0 1px 0 #fff;
+ text-decoration: none;
+}
+
+.mx-navigationtree a.active {
+ color: #fff;
+ text-shadow: none;
+ background: #3498db;
+ border-radius: 3px;
+}
+
+.mx-navigationtree .mx-navigationtree-collapsed ul {
+ display: none;
+}
+
+.mx-navigationtree ul {
+ margin: 0;
+ padding: 0;
+}
+
+.mx-navigationtree ul li ul {
+ padding: 0;
+ margin-left: 10px;
+}
+
+.mx-navigationtree ul li ul li {
+ margin-left: 8px;
+ padding: 5px 0;
+}
+
+[dir=rtl] .mx-navigationtree ul li ul li {
+ margin-left: auto;
+ margin-right: 8px;
+}
+
+.mx-navigationtree ul li ul li ul li {
+ font-size: 10px;
+ padding-top: 3px;
+ padding-bottom: 3px;
+}
+
+.mx-navigationtree ul li ul li ul li img {
+ vertical-align: top;
+}
+
+.mx-link img,
+.mx-button img {
+ height: 16px;
+}
+
+.mx-link {
+ padding: 6px 12px;
+ display: inline-block;
+ cursor: pointer;
+}
+
+.mx-groupbox {
+ margin-bottom: 10px;
+}
+
+.mx-groupbox-header {
+ margin: 0;
+ padding: 10px 15px;
+ color: #eee;
+ background: #333;
+ font-size: inherit;
+ line-height: inherit;
+ border-radius: 4px 4px 0 0;
+}
+
+.mx-groupbox-collapsible > .mx-groupbox-header {
+ cursor: pointer;
+}
+
+.mx-groupbox.collapsed > .mx-groupbox-header {
+ border-radius: 4px;
+}
+
+.mx-groupbox-body {
+ padding: 8px;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+}
+
+.mx-groupbox.collapsed > .mx-groupbox-body {
+ display: none;
+}
+
+.mx-groupbox-header + .mx-groupbox-body {
+ border-top: none;
+ border-radius: 0 0 4px 4px;
+}
+
+.mx-groupbox-collapse-icon {
+ float: right;
+}
+
+[dir=rtl] .mx-groupbox-collapse-icon {
+ float: left;
+}
+
+.mx-dataview {
+ position: relative;
+}
+
+.mx-dataview-controls {
+ padding: 19px 20px 12px;
+ background-color: #f5f5f5;
+ border-top: 1px solid #eee;
+}
+
+.mx-dataview-controls .mx-button {
+ margin-bottom: 8px;
+}
+
+.mx-dataview-controls .mx-button + .mx-button {
+ margin-left: 0.3em;
+}
+
+.mx-dataview-message {
+ background: #fff;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+}
+
+.mx-dataview-message > div {
+ display: table;
+ width: 100%;
+ height: 100%;
+}
+
+.mx-dataview-message > div > p {
+ display: table-cell;
+ text-align: center;
+ vertical-align: middle;
+}
+
+/* Top-level data view in window is a special case, handle it as such. */
+.mx-window-view .mx-window-body {
+ padding: 0;
+}
+
+.mx-window-view .mx-window-body > .mx-dataview > .mx-dataview-content,
+.mx-window-view .mx-window-body > .mx-placeholder > .mx-dataview > .mx-dataview-content {
+ padding: 15px;
+}
+
+.mx-window-view .mx-window-body > .mx-dataview > .mx-dataview-controls,
+.mx-window-view .mx-window-body > .mx-placeholder > .mx-dataview > .mx-dataview-controls {
+ border-radius: 0px 0px 6px 6px;
+}
+
+.mx-dialog {
+ position: fixed;
+ left: auto;
+ right: auto;
+ padding: 0;
+ width: 500px;
+ /* If the margin is set to auto, IE9 reports the calculated value of the
+ * margin as the actual value. Other browsers will just report 0. Eliminate
+ * this difference by setting margin to 0 for every browser. */
+ margin: 0;
+}
+
+.mx-dialog-header {
+ cursor: move;
+}
+
+.mx-dialog-body {
+ overflow: auto;
+}
+
+.mx-window {
+ position: fixed;
+ left: auto;
+ right: auto;
+ padding: 0;
+ width: 600px;
+ /* If the margin is set to auto, IE9 reports the calculated value of the
+ * margin as the actual value. Other browsers will just report 0. Eliminate
+ * this difference by setting margin to 0 for every browser. */
+ margin: 0;
+}
+
+.mx-window-content {
+ height: 100%;
+ overflow: hidden;
+}
+
+.mx-window-active .mx-window-header {
+ background-color: #f5f5f5;
+ border-radius: 6px 6px 0 0;
+}
+
+.mx-window-header {
+ cursor: move;
+}
+
+.mx-window-body {
+ overflow: auto;
+}
+
+.mx-dropdown-list * {
+ cursor: pointer;
+}
+
+.mx-dropdown-list img {
+ width: 35px;
+ vertical-align: middle;
+ margin-right: 10px;
+}
+
+[dir=rtl] .mx-dropdown-list img {
+ margin-left: 10px;
+ margin-right: auto;
+}
+
+.mx-dropdown-list {
+ padding: 0;
+ list-style: none;
+}
+
+.mx-dropdown-list > li {
+ padding: 5px 10px 10px;
+ border: 1px #ddd;
+ border-style: solid solid none;
+ background-color: #fff;
+}
+
+.mx-dropdown-list > li:first-child {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+}
+
+.mx-dropdown-list > li:last-child {
+ border-bottom-style: solid;
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+}
+
+.mx-dropdown-list-striped > li:nth-child(2n+1) {
+ background: #f9f9f9;
+}
+
+.mx-dropdown-list > li:hover {
+ background: #f5f5f5;
+}
+
+.mx-header {
+ position: relative;
+ padding: 9px;
+ background: #333;
+ text-align: center;
+}
+
+.mx-header-center {
+ display: inline-block;
+ color: #eee;
+ line-height: 30px;
+ /* height of buttons */
+}
+
+body[dir=ltr] .mx-header-left,
+body[dir=rtl] .mx-header-right {
+ position: absolute;
+ top: 9px;
+ left: 9px;
+}
+
+body[dir=ltr] .mx-header-right,
+body[dir=rtl] .mx-header-left {
+ position: absolute;
+ top: 9px;
+ right: 9px;
+}
+
+.mx-title {
+ margin-bottom: 0px;
+ margin-top: 0px;
+}
+
+.mx-listview {
+ padding: 8px;
+}
+
+.mx-listview > ul {
+ padding: 0px;
+ list-style: none;
+}
+
+.mx-listview-clickable > ul > li {
+ cursor: pointer;
+}
+
+.mx-listview-empty {
+ color: #999;
+ text-align: center;
+}
+
+.mx-listview .mx-listview-loading {
+ padding: 10px;
+ line-height: 0;
+ text-align: center;
+}
+
+.mx-listview-searchbar {
+ display: flex;
+ margin-bottom: 10px;
+}
+
+.mx-listview-searchbar > input {
+ width: 100%;
+}
+
+.mx-listview-searchbar > button {
+ margin-left: 5px;
+}
+
+[dir=rtl] .mx-listview-searchbar > button {
+ margin-left: 0;
+ margin-right: 5px;
+}
+
+.mx-listview-selection {
+ display: table-cell;
+ vertical-align: middle;
+ padding: 0 15px 0 5px;
+}
+
+[dir=rtl] .mx-listview-selection {
+ padding: 0 5px 0 15px;
+}
+
+.mx-listview-selectable .mx-listview-content {
+ display: table-cell;
+ vertical-align: middle;
+ width: 100%;
+}
+
+.mx-listview .selected {
+ background: #def;
+}
+
+.mx-listview .mx-table th,
+.mx-listview .mx-table td {
+ padding: 2px;
+}
+
+.mx-login .form-control {
+ margin-top: 10px;
+}
+
+.mx-menubar {
+ padding: 8px;
+}
+
+.mx-menubar-icon {
+ height: 16px;
+}
+
+.mx-menubar-more-icon {
+ display: inline-block;
+ width: 16px;
+ height: 16px;
+ background: url(resources/menubar-more-icon.png) no-repeat center center;
+ background-size: 16px 16px;
+ vertical-align: middle;
+}
+
+.mx-navigationlist {
+ padding: 8px;
+}
+
+.mx-navigationlist li:hover,
+.mx-navigationlist li:focus,
+.mx-navigationlist li.active {
+ color: #fff;
+ background-color: #3498db;
+}
+
+.mx-navigationlist * {
+ cursor: pointer;
+}
+
+.mx-navigationlist .table th,
+.mx-navigationlist .table td {
+ padding: 2px;
+}
+
+.mx-progress {
+ position: fixed;
+ top: 30%;
+ left: 0;
+ right: 0;
+ margin: auto;
+ width: 250px;
+ max-width: 90%;
+ background: #333;
+ opacity: 0.8;
+ z-index: 5000;
+ border-radius: 4px;
+ padding: 20px 15px;
+ transition: opacity 0.4s ease-in-out;
+}
+
+.mx-progress-hidden {
+ opacity: 0;
+}
+
+.mx-progress-message {
+ color: #fff;
+ text-align: center;
+ margin-bottom: 15px;
+}
+
+.mx-progress-empty .mx-progress-message {
+ display: none;
+}
+
+.mx-progress-indicator {
+ width: 70px;
+ height: 10px;
+ margin: auto;
+ background: url(resources/progress-indicator.gif);
+}
+
+.mx-reload-notification {
+ position: fixed;
+ z-index: 1001;
+ top: 0;
+ width: 100%;
+ padding: 1rem;
+ border: 1px solid hsl(200deg, 96%, 41%);
+ background-color: hsl(200deg, 96%, 44%);
+ box-shadow: 0 5px 20px rgba(1, 37, 55, 0.16);
+ color: white;
+ text-align: center;
+ font-size: 14px;
+}
+
+.mx-resizer-n,
+.mx-resizer-s {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ height: 10px;
+}
+
+.mx-resizer-n {
+ top: -5px;
+ cursor: n-resize;
+}
+
+.mx-resizer-s {
+ bottom: -5px;
+ cursor: s-resize;
+}
+
+.mx-resizer-e,
+.mx-resizer-w {
+ position: absolute;
+ top: 0;
+ width: 10px;
+ height: 100%;
+}
+
+.mx-resizer-e {
+ right: -5px;
+ cursor: e-resize;
+}
+
+.mx-resizer-w {
+ left: -5px;
+ cursor: w-resize;
+}
+
+.mx-resizer-nw,
+.mx-resizer-ne,
+.mx-resizer-sw,
+.mx-resizer-se {
+ position: absolute;
+ width: 20px;
+ height: 20px;
+}
+
+.mx-resizer-nw,
+.mx-resizer-ne {
+ top: -5px;
+}
+
+.mx-resizer-sw,
+.mx-resizer-se {
+ bottom: -5px;
+}
+
+.mx-resizer-nw,
+.mx-resizer-sw {
+ left: -5px;
+}
+
+.mx-resizer-ne,
+.mx-resizer-se {
+ right: -5px;
+}
+
+.mx-resizer-nw {
+ cursor: nw-resize;
+}
+
+.mx-resizer-ne {
+ cursor: ne-resize;
+}
+
+.mx-resizer-sw {
+ cursor: sw-resize;
+}
+
+.mx-resizer-se {
+ cursor: se-resize;
+}
+
+.mx-text {
+ white-space: pre-line;
+}
+
+.mx-textarea textarea {
+ resize: none;
+ overflow-y: hidden;
+}
+
+.mx-textarea .mx-textarea-noresize {
+ height: auto;
+ resize: vertical;
+ overflow-y: auto;
+}
+
+.mx-textarea .mx-textarea-counter {
+ font-size: smaller;
+}
+
+.mx-textarea .form-control-static, .mx-textarea .form-group div[class*=textBox] > .control-label, .form-group .mx-textarea div[class*=textBox] > .control-label,
+.mx-textarea .form-group div[class*=textArea] > .control-label,
+.form-group .mx-textarea div[class*=textArea] > .control-label,
+.mx-textarea .form-group div[class*=datePicker] > .control-label,
+.form-group .mx-textarea div[class*=datePicker] > .control-label {
+ white-space: pre-line;
+}
+
+.mx-underlay {
+ position: fixed;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 1000;
+ opacity: 0.5;
+ background-color: #333;
+}
+
+.mx-imagezoom {
+ position: absolute;
+ display: table;
+ width: 100%;
+ height: 100%;
+ background-color: #999;
+}
+
+.mx-imagezoom-wrapper {
+ display: table-cell;
+ text-align: center;
+ vertical-align: middle;
+}
+
+.mx-imagezoom-image {
+ max-width: none;
+}
+
+.mx-dropdown li {
+ padding: 3px 20px;
+ cursor: pointer;
+}
+
+.mx-dropdown label {
+ padding: 0;
+ color: #333;
+ white-space: nowrap;
+ cursor: pointer;
+}
+
+.mx-dropdown input {
+ margin: 0;
+ vertical-align: middle;
+ cursor: pointer;
+}
+
+.mx-dropdown .selected {
+ background: #f8f8f8;
+}
+
+.mx-demouserswitcher {
+ position: fixed;
+ top: 0;
+ right: 0;
+ width: 360px;
+ height: 100%;
+ z-index: 20000;
+ box-shadow: -1px 0 5px rgba(28, 59, 86, 0.2);
+}
+
+.mx-demouserswitcher-content {
+ padding: 80px 40px 20px;
+ height: 100%;
+ color: #387ea2;
+ font-size: 14px;
+ overflow: auto;
+ background: url(resources/switcher.png) top right no-repeat #1b3149;
+ /* background-attachement local is not supported on IE8
+ * when this is part of background the complete background is ignored */
+ background-attachment: local;
+}
+
+.mx-demouserswitcher ul {
+ padding: 0;
+ margin-top: 25px;
+ list-style-type: none;
+ border-top: 1px solid #496076;
+}
+
+.mx-demouserswitcher a {
+ display: block;
+ padding: 10px 0;
+ color: #387ea2;
+ border-bottom: 1px solid #496076;
+}
+
+.mx-demouserswitcher h2 {
+ margin: 20px 0 5px;
+ color: #5bc4fe;
+ font-size: 28px;
+}
+
+.mx-demouserswitcher h3 {
+ margin: 0 0 2px;
+ color: #5bc4fe;
+ font-size: 18px;
+ font-weight: normal;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+
+.mx-demouserswitcher .active h3 {
+ color: #11efdb;
+}
+
+.mx-demouserswitcher p {
+ margin-bottom: 0;
+}
+
+.mx-demouserswitcher-toggle {
+ position: absolute;
+ top: 25%;
+ left: -35px;
+ width: 35px;
+ height: 38px;
+ margin-top: -40px;
+ cursor: pointer;
+ border-top-left-radius: 3px;
+ border-bottom-left-radius: 3px;
+ box-shadow: -1px 0 5px rgba(28, 59, 86, 0.2);
+ background: url(resources/switcher-toggle.png) center center no-repeat #1b3149;
+}
+
+/* master details screen for mobile */
+.mx-master-detail-screen {
+ top: 0;
+ left: 0;
+ overflow: auto;
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ background-color: white;
+ will-change: transform;
+}
+
+.mx-master-detail-screen .mx-master-detail-details {
+ padding: 15px;
+}
+
+.mx-master-detail-screen-header {
+ position: relative;
+ overflow: auto;
+ border-bottom: 1px solid #ccc;
+ background-color: #f7f7f7;
+}
+
+.mx-master-detail-screen-header-caption {
+ text-align: center;
+ font-size: 17px;
+ line-height: 24px;
+ font-weight: 600;
+}
+
+.mx-master-detail-screen-header-close {
+ position: absolute;
+ left: 0;
+ top: 0;
+ height: 100%;
+ width: 50px;
+ border: none;
+ background: transparent;
+ color: #007aff;
+}
+
+body[dir=rtl] .mx-master-detail-screen-header-close {
+ right: 0;
+ left: auto;
+}
+
+.mx-master-detail-screen-header-close::before {
+ content: "‹";
+ font-size: 52px;
+ line-height: 24px;
+}
+
+/* classes for content page */
+.mx-master-detail-content-fix {
+ height: 100vh;
+ overflow: hidden;
+}
+
+.mx-master-detail-content-hidden {
+ transform: translateX(-200%);
+}
+
+body[dir=rtl] .mx-master-detail-content-hidden {
+ transform: translateX(200%);
+}
+
+.reportingReport {
+ padding: 5px;
+ border: 1px solid #ddd;
+ border-radius: 3px;
+}
+
+.reportingReportParameter th {
+ text-align: right;
+}
+
+.reportingDateRange table {
+ width: 100%;
+ table-layout: fixed;
+}
+
+.reportingDateRange th {
+ padding: 5px;
+ text-align: right;
+ background-color: #eee;
+}
+
+.reportingDateRange td {
+ padding: 5px;
+}
+
+.mx-reportmatrix table {
+ width: 100%;
+ max-width: 100%;
+ table-layout: fixed;
+ margin-bottom: 0;
+}
+
+.mx-reportmatrix th,
+.mx-reportmatrix td {
+ padding: 8px;
+ line-height: 1.42857143;
+ vertical-align: bottom;
+ border: 1px solid #ddd;
+}
+
+.mx-reportmatrix tbody tr:first-child td {
+ border-top: none;
+}
+
+.mx-reportmatrix tbody tr:nth-child(2n+1) td {
+ background-color: #f9f9f9;
+}
+
+.mx-reportmatrix tbody img {
+ max-width: 16px;
+ max-height: 16px;
+}
+
+@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
+ .dijitInline {
+ zoom: 1;
+ /* set hasLayout:true to mimic inline-block */
+ display: inline;
+ /* don't use .dj_ie since that increases the priority */
+ vertical-align: auto;
+ /* makes TextBox,Button line up w/native counterparts on IE6 */
+ }
+
+ .dj_ie6 .dijitComboBox .dijitInputContainer,
+.dijitInputContainer {
+ zoom: 1;
+ }
+
+ .dijitRight {
+ /* Right part of a 3-element border */
+ display: inline;
+ /* IE7 sizes to outer size w/o this */
+ }
+
+ .dijitButtonNode {
+ vertical-align: auto;
+ }
+
+ .dijitTextBox {
+ overflow: hidden;
+ /* #6027, #6067 */
+ }
+
+ .dijitPlaceHolder {
+ filter: "";
+ /* make this show up in IE6 after the rendering of the widget */
+ }
+
+ .dijitValidationTextBoxError input.dijitValidationInner,
+.dijitSelect input,
+.dijitTextBox input.dijitArrowButtonInner {
+ text-indent: 0 !important;
+ letter-spacing: -5em !important;
+ text-align: right !important;
+ }
+
+ .dj_a11y input.dijitValidationInner,
+.dj_a11y input.dijitArrowButtonInner {
+ text-align: left !important;
+ }
+
+ .dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton {
+ bottom: 50%;
+ /* otherwise (on some machines) top arrow icon too close to splitter border (IE6/7) */
+ }
+
+ .dijitTabContainerTop-tabs .dijitTab,
+.dijitTabContainerBottom-tabs .dijitTab {
+ zoom: 1;
+ /* set hasLayout:true to mimic inline-block */
+ display: inline;
+ /* don't use .dj_ie since that increases the priority */
+ }
+
+ .dojoDndHorizontal .dojoDndItem {
+ /* make contents of horizontal container be side by side, rather than vertical */
+ display: inline;
+ }
+}
+@keyframes slideInUp {
+ from {
+ visibility: visible;
+ transform: translate3d(0, 100%, 0);
+ }
+ to {
+ transform: translate3d(0, 0, 0);
+ }
+}
+.animated {
+ animation-duration: 0.4s;
+ animation-fill-mode: both;
+}
+
+.slideInUp {
+ animation-name: slideInUp;
+}
+
+@keyframes slideInDown {
+ from {
+ visibility: visible;
+ transform: translate3d(0, -100%, 0);
+ }
+ to {
+ transform: translate3d(0, 0, 0);
+ }
+}
+.slideInDown {
+ animation-name: slideInDown;
+}
+
+@keyframes fadeIn {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 1;
+ }
+}
+.fadeIn {
+ animation-name: fadeIn;
+}
+
+/* ==========================================================================
+ Flex
+
+ Flex classes
+========================================================================== */
+.flexcontainer {
+ display: flex;
+ overflow: hidden;
+ flex: 1;
+ flex-direction: row;
+}
+.flexcontainer .flexitem {
+ margin-right: 8px;
+}
+.flexcontainer .flexitem:last-child {
+ margin-right: 0;
+}
+.flexcontainer .flexitem-main {
+ overflow: hidden;
+ flex: 1;
+}
+
+.flex-row {
+ flex-direction: row !important;
+}
+
+.flex-column {
+ flex-direction: column !important;
+}
+
+.flex-row-reverse {
+ flex-direction: row-reverse !important;
+}
+
+.flex-column-reverse {
+ flex-direction: column-reverse !important;
+}
+
+.flex-wrap {
+ flex-wrap: wrap !important;
+}
+
+.flex-nowrap {
+ flex-wrap: nowrap !important;
+}
+
+.flex-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+}
+
+.flex-center {
+ align-items: center !important;
+ justify-content: center !important;
+}
+
+.justify-content-start {
+ justify-content: flex-start !important;
+}
+
+.justify-content-end {
+ justify-content: flex-end !important;
+}
+
+.justify-content-center {
+ justify-content: center !important;
+}
+
+.justify-content-between {
+ justify-content: space-between !important;
+}
+
+.justify-content-around {
+ justify-content: space-around !important;
+}
+
+.justify-content-evenly {
+ justify-content: space-evenly !important;
+}
+
+.justify-content-stretch {
+ justify-content: stretch !important;
+}
+
+.align-children-start {
+ align-items: flex-start !important;
+}
+
+.align-children-end {
+ align-items: flex-end !important;
+}
+
+.align-children-center {
+ align-items: center !important;
+}
+
+.align-children-baseline {
+ align-items: baseline !important;
+}
+
+.align-children-stretch {
+ align-items: stretch !important;
+}
+
+.align-content-start {
+ align-content: flex-start !important;
+}
+
+.align-content-end {
+ align-content: flex-end !important;
+}
+
+.align-content-center {
+ align-content: center !important;
+}
+
+.align-content-between {
+ align-content: space-between !important;
+}
+
+.align-content-around {
+ align-content: space-around !important;
+}
+
+.align-content-stretch {
+ align-content: stretch !important;
+}
+
+.align-self-auto {
+ align-self: auto !important;
+}
+
+.align-self-start {
+ align-self: flex-start !important;
+}
+
+.align-self-end {
+ align-self: flex-end !important;
+}
+
+.align-self-center {
+ align-self: center !important;
+}
+
+.align-self-baseline {
+ align-self: baseline !important;
+}
+
+.align-self-stretch {
+ align-self: stretch !important;
+}
+
+.flexitem-1 {
+ flex: 1 1 1%;
+}
+
+.flexitem-2 {
+ flex: 2 2 1%;
+}
+
+.flexitem-3 {
+ flex: 3 3 1%;
+}
+
+.flexitem-4 {
+ flex: 4 4 1%;
+}
+
+.flexitem-5 {
+ flex: 5 5 1%;
+}
+
+.flexitem-6 {
+ flex: 6 6 1%;
+}
+
+.flexitem-7 {
+ flex: 7 7 1%;
+}
+
+.flexitem-8 {
+ flex: 8 8 1%;
+}
+
+.flexitem-9 {
+ flex: 9 9 1%;
+}
+
+.flexitem-10 {
+ flex: 10 10 1%;
+}
+
+.flexitem-11 {
+ flex: 11 11 1%;
+}
+
+.flexitem-12 {
+ flex: 12 12 1%;
+}
+
+/* ==========================================================================
+ Spacing
+
+ Spacing classes
+========================================================================== */
+.spacing-inner-none {
+ padding: 0 !important;
+}
+
+.spacing-inner-top-none {
+ padding-top: 0 !important;
+}
+
+.spacing-inner-right-none {
+ padding-right: 0 !important;
+}
+
+.spacing-inner-bottom-none {
+ padding-bottom: 0 !important;
+}
+
+.spacing-inner-left-none {
+ padding-left: 0 !important;
+}
+
+.spacing-outer-none {
+ margin: 0 !important;
+}
+
+.spacing-outer-top-none {
+ margin-top: 0 !important;
+}
+
+.spacing-outer-right-none {
+ margin-right: 0 !important;
+}
+
+.spacing-outer-bottom-none {
+ margin-bottom: 0 !important;
+}
+
+.spacing-outer-left-none {
+ margin-left: 0 !important;
+}
+
+.spacing-inner {
+ padding: 8px !important;
+}
+
+.spacing-inner-top {
+ padding-top: 8px !important;
+}
+
+.spacing-inner-right {
+ padding-right: 8px !important;
+}
+
+.spacing-inner-bottom {
+ padding-bottom: 8px !important;
+}
+
+.spacing-inner-left {
+ padding-left: 8px !important;
+}
+
+.spacing-inner-vertical {
+ padding-top: 8px !important;
+ padding-bottom: 8px !important;
+}
+
+.spacing-inner-horizontal {
+ padding-left: 8px !important;
+ padding-right: 8px !important;
+}
+
+.spacing-outer {
+ margin: 8px !important;
+}
+
+.spacing-outer-top {
+ margin-top: 8px !important;
+}
+
+.spacing-outer-right {
+ margin-right: 8px !important;
+}
+
+.spacing-outer-bottom {
+ margin-bottom: 8px !important;
+}
+
+.spacing-outer-left {
+ margin-left: 8px !important;
+}
+
+.spacing-outer-vertical {
+ margin-top: 8px !important;
+ margin-bottom: 8px !important;
+}
+
+.spacing-outer-horizontal {
+ margin-left: 8px !important;
+ margin-right: 8px !important;
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-medium {
+ padding: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-medium {
+ padding: 16px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-medium {
+ padding: 16px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-top-medium {
+ padding-top: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-top-medium {
+ padding-top: 16px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-top-medium {
+ padding-top: 16px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-right-medium {
+ padding-right: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-right-medium {
+ padding-right: 16px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-right-medium {
+ padding-right: 16px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-bottom-medium {
+ padding-bottom: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-bottom-medium {
+ padding-bottom: 16px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-bottom-medium {
+ padding-bottom: 16px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-left-medium {
+ padding-left: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-left-medium {
+ padding-left: 16px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-left-medium {
+ padding-left: 16px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-vertical-medium {
+ padding-top: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-vertical-medium {
+ padding-top: 16px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-vertical-medium {
+ padding-top: 16px !important;
+ }
+}
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-vertical-medium {
+ padding-bottom: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-vertical-medium {
+ padding-bottom: 16px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-vertical-medium {
+ padding-bottom: 16px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-horizontal-medium {
+ padding-left: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-horizontal-medium {
+ padding-left: 16px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-horizontal-medium {
+ padding-left: 16px !important;
+ }
+}
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-horizontal-medium {
+ padding-right: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-horizontal-medium {
+ padding-right: 16px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-horizontal-medium {
+ padding-right: 16px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-medium {
+ margin: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-medium {
+ margin: 16px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-medium {
+ margin: 16px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-top-medium {
+ margin-top: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-top-medium {
+ margin-top: 16px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-top-medium {
+ margin-top: 16px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-right-medium {
+ margin-right: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-right-medium {
+ margin-right: 16px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-right-medium {
+ margin-right: 16px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-bottom-medium {
+ margin-bottom: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-bottom-medium {
+ margin-bottom: 16px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-bottom-medium {
+ margin-bottom: 16px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-left-medium {
+ margin-left: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-left-medium {
+ margin-left: 16px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-left-medium {
+ margin-left: 16px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-vertical-medium {
+ margin-top: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-vertical-medium {
+ margin-top: 16px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-vertical-medium {
+ margin-top: 16px !important;
+ }
+}
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-vertical-medium {
+ margin-bottom: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-vertical-medium {
+ margin-bottom: 16px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-vertical-medium {
+ margin-bottom: 16px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-horizontal-medium {
+ margin-left: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-horizontal-medium {
+ margin-left: 16px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-horizontal-medium {
+ margin-left: 16px !important;
+ }
+}
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-horizontal-medium {
+ margin-right: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-horizontal-medium {
+ margin-right: 16px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-horizontal-medium {
+ margin-right: 16px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-large {
+ padding: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-large {
+ padding: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-large {
+ padding: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-top-large {
+ padding-top: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-top-large {
+ padding-top: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-top-large {
+ padding-top: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-right-large {
+ padding-right: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-right-large {
+ padding-right: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-right-large {
+ padding-right: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-bottom-large {
+ padding-bottom: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-bottom-large {
+ padding-bottom: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-bottom-large {
+ padding-bottom: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-left-large {
+ padding-left: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-left-large {
+ padding-left: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-left-large {
+ padding-left: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-vertical-large {
+ padding-top: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-vertical-large {
+ padding-top: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-vertical-large {
+ padding-top: 24px !important;
+ }
+}
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-vertical-large {
+ padding-bottom: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-vertical-large {
+ padding-bottom: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-vertical-large {
+ padding-bottom: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-horizontal-large {
+ padding-left: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-horizontal-large {
+ padding-left: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-horizontal-large {
+ padding-left: 24px !important;
+ }
+}
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-horizontal-large {
+ padding-right: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-horizontal-large {
+ padding-right: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-horizontal-large {
+ padding-right: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-large {
+ margin: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-large {
+ margin: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-large {
+ margin: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-top-large {
+ margin-top: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-top-large {
+ margin-top: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-top-large {
+ margin-top: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-right-large {
+ margin-right: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-right-large {
+ margin-right: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-right-large {
+ margin-right: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-bottom-large {
+ margin-bottom: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-bottom-large {
+ margin-bottom: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-bottom-large {
+ margin-bottom: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-left-large {
+ margin-left: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-left-large {
+ margin-left: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-left-large {
+ margin-left: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-vertical-large {
+ margin-top: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-vertical-large {
+ margin-top: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-vertical-large {
+ margin-top: 24px !important;
+ }
+}
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-vertical-large {
+ margin-bottom: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-vertical-large {
+ margin-bottom: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-vertical-large {
+ margin-bottom: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-horizontal-large {
+ margin-left: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-horizontal-large {
+ margin-left: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-horizontal-large {
+ margin-left: 24px !important;
+ }
+}
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-horizontal-large {
+ margin-right: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-horizontal-large {
+ margin-right: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-horizontal-large {
+ margin-right: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-layout {
+ padding: 16px 16px 16px 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-layout {
+ padding: 24px 24px 24px 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-layout {
+ padding: 24px 24px 24px 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-top-layout {
+ padding-top: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-top-layout {
+ padding-top: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-top-layout {
+ padding-top: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-right-layout {
+ padding-right: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-right-layout {
+ padding-right: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-right-layout {
+ padding-right: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-bottom-layout {
+ padding-bottom: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-bottom-layout {
+ padding-bottom: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-bottom-layout {
+ padding-bottom: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-left-layout {
+ padding-left: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-left-layout {
+ padding-left: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-left-layout {
+ padding-left: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-vertical-layout {
+ padding-top: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-vertical-layout {
+ padding-top: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-vertical-layout {
+ padding-top: 24px !important;
+ }
+}
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-vertical-layout {
+ padding-bottom: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-vertical-layout {
+ padding-bottom: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-vertical-layout {
+ padding-bottom: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-horizontal-layout {
+ padding-left: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-horizontal-layout {
+ padding-left: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-horizontal-layout {
+ padding-left: 24px !important;
+ }
+}
+@media (max-width: calc(768px - 1px)) {
+ .spacing-inner-horizontal-layout {
+ padding-right: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-inner-horizontal-layout {
+ padding-right: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-inner-horizontal-layout {
+ padding-right: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-layout {
+ margin: 16px 16px 16px 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-layout {
+ margin: 24px 24px 24px 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-layout {
+ margin: 24px 24px 24px 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-top-layout {
+ margin-top: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-top-layout {
+ margin-top: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-top-layout {
+ margin-top: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-right-layout {
+ margin-right: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-right-layout {
+ margin-right: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-right-layout {
+ margin-right: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-bottom-layout {
+ margin-bottom: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-bottom-layout {
+ margin-bottom: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-bottom-layout {
+ margin-bottom: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-left-layout {
+ margin-left: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-left-layout {
+ margin-left: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-left-layout {
+ margin-left: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-vertical-layout {
+ margin-top: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-vertical-layout {
+ margin-top: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-vertical-layout {
+ margin-top: 24px !important;
+ }
+}
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-vertical-layout {
+ margin-bottom: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-vertical-layout {
+ margin-bottom: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-vertical-layout {
+ margin-bottom: 24px !important;
+ }
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-horizontal-layout {
+ margin-left: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-horizontal-layout {
+ margin-left: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-horizontal-layout {
+ margin-left: 24px !important;
+ }
+}
+@media (max-width: calc(768px - 1px)) {
+ .spacing-outer-horizontal-layout {
+ margin-right: 16px !important;
+ }
+}
+@media (min-width: 768px) {
+ .spacing-outer-horizontal-layout {
+ margin-right: 24px !important;
+ }
+}
+@media (min-width: 992px) {
+ .spacing-outer-horizontal-layout {
+ margin-right: 24px !important;
+ }
+}
+
+.mx-scrollcontainer .mx-placeholder {
+ width: 100%;
+ height: 100%;
+}
+@media (max-width: calc(768px - 1px)) {
+ .mx-scrollcontainer .mx-placeholder .mx-layoutgrid,
+.mx-scrollcontainer .mx-placeholder .mx-layoutgrid-fluid {
+ padding: 16px 16px 16px 16px;
+ }
+}
+@media (min-width: 768px) {
+ .mx-scrollcontainer .mx-placeholder .mx-layoutgrid,
+.mx-scrollcontainer .mx-placeholder .mx-layoutgrid-fluid {
+ padding: 24px 24px 24px 24px;
+ }
+}
+@media (min-width: 992px) {
+ .mx-scrollcontainer .mx-placeholder .mx-layoutgrid,
+.mx-scrollcontainer .mx-placeholder .mx-layoutgrid-fluid {
+ padding: 24px 24px 24px 24px;
+ }
+}
+.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .mx-layoutgrid,
+.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .mx-layoutgrid-fluid,
+.mx-scrollcontainer .mx-placeholder .mx-layoutgrid-fluid .mx-layoutgrid,
+.mx-scrollcontainer .mx-placeholder .mx-layoutgrid-fluid .mx-layoutgrid-fluid {
+ padding: 0;
+}
+
+/* ==========================================================================
+ Base
+
+ Default settings
+========================================================================== */
+html {
+ height: 100%;
+}
+
+body {
+ min-height: 100%;
+ color: #0a1325;
+ background-color: #f8f8f8;
+ font-family: "Open Sans", sans-serif;
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 1.428571429;
+}
+
+a {
+ transition: 0.25s;
+ color: #264ae5;
+ -webkit-backface-visibility: hidden;
+}
+
+a:hover {
+ text-decoration: underline;
+ color: #1431aa;
+}
+
+a:focus {
+ outline: thin dotted;
+}
+
+a:active,
+a:hover {
+ outline: 0;
+}
+
+input:focus,
+button:focus,
+.mx-link:focus {
+ outline: 0;
+}
+
+div[tabindex] {
+ outline: 0;
+}
+
+.disabled,
+[disabled] {
+ cursor: not-allowed;
+ opacity: 0.65;
+ box-shadow: none;
+}
+
+.mx-underlay {
+ position: fixed;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 1000;
+ opacity: 0.5;
+ background-color: #0a1325;
+}
+
+body {
+ height: 100%;
+}
+
+.loginpage {
+ display: flex;
+ height: 100%;
+}
+
+.loginpage-logo {
+ position: absolute;
+ top: 30px;
+ right: 30px;
+}
+.loginpage-logo > svg {
+ width: 120px;
+}
+
+.loginpage-left {
+ display: none;
+}
+
+.loginpage-right {
+ display: flex;
+ flex: 1;
+ flex-direction: column;
+ justify-content: space-around;
+}
+
+.loginpage-formwrapper {
+ width: 400px;
+ margin: 0 auto;
+}
+
+.loginpage-fullscreenDiv {
+ background-color: #e8e8e8;
+ width: 100%;
+ height: auto;
+ bottom: 0;
+ top: 0;
+ left: 0;
+ position: absolute;
+}
+
+.loginpage-center {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+}
+
+.loginpage-form .alert {
+ display: none;
+}
+.loginpage-form .btn {
+ border-radius: 4px;
+}
+.loginpage-form .form-group {
+ width: 100%;
+ align-items: center;
+}
+@media only screen and (max-width: calc(768px - 1px)) {
+ .loginpage-form .form-group {
+ align-items: flex-start;
+ }
+}
+.loginpage-form .form-group .control-label {
+ flex: 4;
+ margin-bottom: 0;
+ font-size: 14px;
+ font-weight: 500;
+}
+@media only screen and (max-width: calc(768px - 1px)) {
+ .loginpage-form .form-group .control-label {
+ flex: 1;
+ margin-bottom: 8px;
+ }
+}
+.loginpage-form .form-group .inputwrapper {
+ flex: 8;
+ position: relative;
+ width: 100%;
+}
+@media only screen and (max-width: calc(768px - 1px)) {
+ .loginpage-form .form-group .inputwrapper {
+ flex: 1;
+ }
+}
+.loginpage-form .form-group .inputwrapper .glyphicon {
+ position: absolute;
+ top: 50%;
+ left: 8px;
+ transform: translateY(-50%);
+}
+.loginpage-form .form-group .inputwrapper .glyphicon:before {
+ transition: color 0.4s;
+}
+.loginpage-form .form-group .inputwrapper .glyphicon-eye-open:hover, .loginpage-form .form-group .inputwrapper .glyphicon-eye-close:hover {
+ cursor: pointer;
+ color: #264ae5;
+}
+.loginpage-form .form-group .inputwrapper .form-control {
+ padding: 8px 8px 8px 45px;
+ width: 100%;
+}
+.loginpage-form .form-group .inputwrapper .form-control:focus ~ .glyphicon:before {
+ color: #264ae5;
+}
+
+.loginpage-alternativelabel {
+ display: flex;
+ align-items: center;
+ flex-direction: row;
+ flex-wrap: nowrap;
+ justify-content: space-between;
+ margin: 25px 0px;
+}
+.loginpage-alternativelabel hr {
+ flex: 1;
+ margin: 20px 0 20px 10px;
+ border: 0;
+ border-color: #d8d8d8;
+ border-top: 1px solid #eeeeee;
+}
+
+.loginpage-signin {
+ color: #555555;
+}
+
+.loginpage-form .btn img {
+ vertical-align: middle;
+ top: -1px;
+ position: relative;
+}
+
+@media screen and (min-width: 1200px) {
+ .loginpage-left {
+ position: relative;
+ display: block;
+ flex: 1;
+ width: 100%;
+ height: 100%;
+ }
+
+ .loginpage-image {
+ height: 100%;
+ animation: makePointer 1s ease-out both;
+ background: left/cover no-repeat linear-gradient(to right, rgba(38, 74, 229, 0.9) 0%, rgba(38, 74, 229, 0.6) 100%), left/cover no-repeat url("./resources/work-do-more.jpeg");
+ -webkit-clip-path: polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%);
+ clip-path: polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%);
+ }
+
+ .loginpage-logo > svg {
+ width: 150px;
+ }
+
+ .loginpage-formwrapper {
+ width: 400px;
+ }
+}
+@keyframes makePointer {
+ 100% {
+ -webkit-clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);
+ clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);
+ }
+}
+@-webkit-keyframes makePointer {
+ 100% {
+ -webkit-clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);
+ clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);
+ }
+}
+/* ==========================================================================
+ Input
+
+ The form-control class style all inputs
+========================================================================== */
+.form-control {
+ display: flex;
+ flex: 1;
+ min-width: 50px;
+ height: auto;
+ padding: 8px 8px;
+ transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
+ color: #0a1325;
+ border: 1px solid #e7e7e9;
+ border-radius: 4px;
+ background-color: #fff;
+ background-image: none;
+ box-shadow: none;
+ font-size: 14px;
+ line-height: 1.428571429;
+ appearance: none;
+ -moz-appearance: none;
+ -webkit-appearance: none;
+}
+.form-control::placeholder {
+ color: #6c717c;
+}
+
+.form-control:not([readonly]):focus {
+ border-color: #264ae5;
+ outline: 0;
+ background-color: #fff;
+ box-shadow: none;
+}
+
+.form-control[disabled],
+.form-control[readonly],
+fieldset[disabled] .form-control {
+ opacity: 1;
+ background-color: #f8f8f8;
+}
+
+.form-control[disabled],
+fieldset[disabled] .form-control {
+ cursor: not-allowed;
+}
+
+.form-control-lined {
+ border: 0;
+ border-bottom: 1px solid #e7e7e9;
+ border-radius: 0;
+ background-color: transparent;
+}
+.form-control-lined:focus {
+ background-color: transparent;
+}
+
+.form-control-static, .form-group div[class*=textBox] > .control-label,
+.form-group div[class*=textArea] > .control-label,
+.form-group div[class*=datePicker] > .control-label {
+ overflow: hidden;
+ flex: 1;
+ min-height: auto;
+ padding: 8px 0;
+ font-size: 14px;
+ line-height: 1.428571429;
+}
+.form-control-static + .control-label, .form-group div[class*=textBox] > .control-label + .control-label,
+.form-group div[class*=textArea] > .control-label + .control-label,
+.form-group div[class*=datePicker] > .control-label + .control-label {
+ margin-left: 8px;
+}
+
+select.form-control {
+ padding-right: 30px;
+ background-image: url("resources/arrow.svg");
+ background-repeat: no-repeat;
+ background-position: calc(100% - 8px) center;
+ appearance: none;
+ -moz-appearance: none;
+ -webkit-appearance: none;
+}
+
+.form-control.mx-selectbox {
+ align-items: center;
+ flex-direction: row-reverse;
+ justify-content: space-between;
+}
+
+.mx-textarea .control-label {
+ height: auto;
+}
+
+.mx-textarea-counter {
+ display: block;
+ width: 100%;
+ text-align: right;
+ margin-top: 8px;
+}
+
+textarea.form-control {
+ flex-basis: auto;
+}
+
+.mx-compound-control {
+ display: flex;
+ flex: 1;
+ flex-wrap: wrap;
+ max-width: 100%;
+}
+.mx-compound-control .btn {
+ margin-left: 8px;
+}
+.mx-compound-control .mx-validation-message {
+ flex-basis: 100%;
+ margin-top: 4px;
+}
+
+.has-error .mx-validation-message {
+ margin-top: 8px;
+ margin-bottom: 0;
+ padding: 8px;
+ color: #88262f;
+ border-color: #9f2c37;
+ background-color: #f9d9dc;
+}
+
+.form-group {
+ display: flex;
+ flex-direction: row;
+ margin-bottom: 16px;
+}
+.form-group > div[class*=col-] {
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+}
+.form-group > [class*=col-] {
+ padding-right: 16px;
+ padding-left: 16px;
+}
+.form-group .control-label {
+ overflow: hidden;
+ margin-bottom: 4px;
+ text-align: left;
+ text-overflow: ellipsis;
+ color: #0a1325;
+ font-size: 14px;
+ font-weight: 600;
+}
+.form-group .mx-validation-message {
+ flex-basis: 100%;
+}
+.form-group.no-columns:not(.label-after) {
+ flex-direction: column;
+}
+
+.form-group.label-after .form-control-static, .form-group.label-after div[class*=textBox] > .control-label,
+.form-group.label-after div[class*=textArea] > .control-label,
+.form-group.label-after div[class*=datePicker] > .control-label {
+ flex: unset;
+}
+.form-group.label-after .control-label {
+ margin-bottom: 0;
+}
+
+.mx-dateinput,
+.mx-referenceselector,
+.mx-referencesetselector {
+ flex: 1;
+}
+
+.dj_webkit.dj_ios .form-control {
+ transform: translateZ(0);
+}
+
+@media only screen and (min-width: 768px) {
+ .form-horizontal .control-label {
+ margin-bottom: 0;
+ padding-top: 8px;
+ padding-bottom: 8px;
+ line-height: 1.428571429;
+ }
+}
+@media only screen and (max-width: calc(768px - 1px)) {
+ .form-group {
+ flex-direction: column;
+ }
+}
+@media only screen and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 0) {
+ input[type=date],
+input[type=time],
+input[type=datetime-local],
+input[type=month] {
+ line-height: 1;
+ }
+
+ input[type=time]:not(.has-value):before,
+input[type=date]:not(.has-value):before,
+input[type=month]:not(.has-value):before,
+input[type=datetime-local]:not(.has-value):before {
+ margin-right: 0.5em;
+ content: attr(placeholder) !important;
+ color: #aaaaaa;
+ }
+
+ input[type=time].has-value:before,
+input[type=date].has-value:before,
+input[type=month].has-value:before,
+input[type=datetime-local].has-value:before {
+ content: "" !important;
+ }
+}
+@media (-ms-high-contrast: none), (-ms-high-contrast: active) {
+ .form-group {
+ display: block;
+ }
+}
+[dir=rtl] select.form-control {
+ padding-right: 30px;
+ padding-left: 0;
+ background-position: 8px center;
+}
+[dir=rtl] .mx-compound-control .btn {
+ margin-right: 8px;
+ margin-left: 0;
+}
+
+/* ==========================================================================
+ Background
+
+ Different background components, all managed by variables
+========================================================================== */
+.background-main {
+ background-color: #f8f8f8 !important;
+}
+
+.background-primary {
+ background-color: #264ae5 !important;
+}
+
+.background-primary-darker {
+ background-color: #172c89 !important;
+}
+
+.background-primary.background-dark,
+.background-primary-dark {
+ background-color: #1b34a0 !important;
+}
+
+.background-primary.background-light,
+.background-primary-light {
+ background-color: #a8b7f5 !important;
+}
+
+.background-primary-lighter {
+ background-color: #d4dbfa !important;
+}
+
+.background-secondary {
+ background-color: #fff !important;
+}
+
+.background-secondary.background-light {
+ background-color: #fff !important;
+}
+
+.background-secondary.background-dark {
+ background-color: #fff !important;
+}
+
+.background-brand-gradient {
+ background-image: linear-gradient(to right top, #264ae5, #2239c5, #1b29a6, #111988, #03096c) !important;
+}
+
+.background-success {
+ background-color: #3cb33d !important;
+}
+
+.background-success-darker {
+ background-color: #246b25 !important;
+}
+
+.background-success.background-dark,
+.background-success-dark {
+ background-color: #2a7d2b !important;
+}
+
+.background-success.background-light,
+.background-success-light {
+ background-color: #b1e1b1 !important;
+}
+
+.background-success-lighter {
+ background-color: #d8f0d8 !important;
+}
+
+.background-warning {
+ background-color: #eca51c !important;
+}
+
+.background-warning-darker {
+ background-color: #8e6311 !important;
+}
+
+.background-warning.background-dark,
+.background-warning-dark {
+ background-color: #a57414 !important;
+}
+
+.background-warning.background-light,
+.background-warning-light {
+ background-color: #f7dba4 !important;
+}
+
+.background-warning-lighter {
+ background-color: #fbedd2 !important;
+}
+
+.background-danger {
+ background-color: #e33f4e !important;
+}
+
+.background-danger-darker {
+ background-color: #88262f !important;
+}
+
+.background-danger.background-dark,
+.background-danger-dark {
+ background-color: #9f2c37 !important;
+}
+
+.background-danger.background-light,
+.background-danger-light {
+ background-color: #f4b2b8 !important;
+}
+
+.background-danger-lighter {
+ background-color: #f9d9dc !important;
+}
+
+.background-default {
+ background-color: #e7e7e9 !important;
+}
+
+.background-default-darker {
+ background-color: #8b8b8c !important;
+}
+
+.background-default-dark {
+ background-color: #a2a2a3 !important;
+}
+
+.background-default-light {
+ background-color: #f5f5f6 !important;
+}
+
+.background-default-lighter {
+ background-color: #fafafb !important;
+}
+
+.background-inverse {
+ background-color: #24276c !important;
+}
+
+.background-inverse-darker {
+ background-color: #161741 !important;
+}
+
+.background-inverse-dark {
+ background-color: #191b4c !important;
+}
+
+.background-inverse-light {
+ background-color: #7c7da7 !important;
+}
+
+.background-inverse-lighter {
+ background-color: #d3d4e2 !important;
+}
+
+.background-info {
+ background-color: #0086d9 !important;
+}
+
+.background-info-darker {
+ background-color: #005082 !important;
+}
+
+.background-info-dark {
+ background-color: #005e98 !important;
+}
+
+.background-info-light {
+ background-color: #66b6e8 !important;
+}
+
+.background-info-lighter {
+ background-color: #cce7f7 !important;
+}
+
+/* ==========================================================================
+ Label
+
+ Default label combined with Bootstrap label
+========================================================================== */
+.label {
+ display: inline-block;
+ margin: 0;
+ padding: 4px 8px;
+ text-align: center;
+ vertical-align: baseline;
+ white-space: nowrap;
+ color: #ffffff;
+ border-radius: 0.25em;
+ font-size: 100%;
+ line-height: 1;
+}
+.label .form-control-static, .label .form-group div[class*=textBox] > .control-label, .form-group .label div[class*=textBox] > .control-label,
+.label .form-group div[class*=textArea] > .control-label,
+.form-group .label div[class*=textArea] > .control-label,
+.label .form-group div[class*=datePicker] > .control-label,
+.form-group .label div[class*=datePicker] > .control-label {
+ font-weight: normal;
+ all: unset;
+}
+
+/* ==========================================================================
+ Badge
+
+ Override of default Bootstrap badge style
+========================================================================== */
+.badge {
+ display: inline-block;
+ margin: 0;
+ padding: 4px 8px;
+ text-align: center;
+ vertical-align: baseline;
+ white-space: nowrap;
+ color: #ffffff;
+ font-size: 100%;
+ line-height: 1;
+}
+.badge .form-control-static, .badge .form-group div[class*=textBox] > .control-label, .form-group .badge div[class*=textBox] > .control-label,
+.badge .form-group div[class*=textArea] > .control-label,
+.form-group .badge div[class*=textArea] > .control-label,
+.badge .form-group div[class*=datePicker] > .control-label,
+.form-group .badge div[class*=datePicker] > .control-label {
+ font-weight: normal;
+ all: unset;
+}
+
+/* ==========================================================================
+ Badge-web
+
+ Widget styles
+========================================================================== */
+.widget-badge {
+ color: #fff;
+ background-color: #264ae5;
+}
+
+.widget-badge-clickable {
+ cursor: pointer;
+}
+
+.widget-badge.badge:empty {
+ display: initial;
+ /* Fix padding to stay round */
+ padding: 4px calc(8px + 2px);
+}
+
+.widget-badge.label:empty {
+ display: initial;
+ /* Fix padding to stay square */
+ padding: 4px calc(8px + 2px);
+}
+
+/* ==========================================================================
+ Label
+
+//== Design Properties
+//## Helper classes to change the look and feel of the component including
+badge widget
+========================================================================== */
+.label-secondary,
+.label-default {
+ color: #0a1325;
+ background-color: #e7e7e9;
+}
+
+.label-primary {
+ color: #fff;
+ background-color: #264ae5;
+}
+
+.label-success {
+ color: #fff;
+ background-color: #3cb33d;
+}
+
+.label-inverse {
+ color: #fff;
+ background-color: #24276c;
+}
+
+.label-info {
+ color: #fff;
+ background-color: #0086d9;
+}
+
+.label-warning {
+ color: #fff;
+ background-color: #eca51c;
+}
+
+.label-danger {
+ color: #fff;
+ background-color: #e33f4e;
+}
+
+/* ==========================================================================
+ Badge button
+
+ Widget styles
+========================================================================== */
+.widget-badge-button {
+ display: inline-block;
+}
+.widget-badge-button .widget-badge-button-text {
+ white-space: nowrap;
+ padding-right: 5px;
+}
+.widget-badge-button .badge {
+ top: unset;
+ display: inline-block;
+ margin: 0;
+ padding: 4px 8px;
+ text-align: center;
+ vertical-align: baseline;
+ white-space: nowrap;
+ background-color: #fff;
+ color: #264ae5;
+ font-size: 100%;
+ line-height: 1;
+}
+
+/* ==========================================================================
+ Badge button
+
+ Different background components, all managed by variables
+========================================================================== */
+.btn-secondary .badge,
+.btn-default .badge {
+ color: #fff;
+ background-color: #264ae5;
+}
+
+.btn-success .badge {
+ color: #3cb33d;
+}
+
+.btn-warning .badge {
+ color: #eca51c;
+}
+
+.btn-danger .badge {
+ color: #e33f4e;
+}
+
+.btn-bordered.btn-primary .badge, .datagrid-fullsearch.mx-grid .btn-bordered.mx-grid-search-button .badge {
+ background: #264ae5;
+ color: #fff;
+}
+.btn-bordered.btn-primary:hover .badge, .datagrid-fullsearch.mx-grid .btn-bordered.mx-grid-search-button:hover .badge, .btn-bordered.btn-primary:focus .badge, .datagrid-fullsearch.mx-grid .btn-bordered.mx-grid-search-button:focus .badge {
+ background-color: #fff;
+ color: #264ae5;
+}
+
+.btn-bordered.btn-success .badge {
+ background: #3cb33d;
+ color: #fff;
+}
+.btn-bordered.btn-success:hover .badge, .btn-bordered.btn-success:focus .badge {
+ background-color: #fff;
+ color: #3cb33d;
+}
+
+.btn-bordered.btn-warning .badge {
+ background: #eca51c;
+ color: #fff;
+}
+.btn-bordered.btn-warning:hover .badge, .btn-bordered.btn-warning:focus .badge {
+ background-color: #fff;
+ color: #eca51c;
+}
+
+.btn-bordered.btn-danger .badge {
+ background: #e33f4e;
+ color: #fff;
+}
+.btn-bordered.btn-danger:hover .badge, .btn-bordered.btn-danger:focus .badge {
+ background-color: #fff;
+ color: #e33f4e;
+}
+
+/* ==========================================================================
+ Button
+
+ Default Bootstrap and Mendix button
+========================================================================== */
+.btn,
+.mx-button {
+ display: inline-block;
+ margin-bottom: 0;
+ padding: 0.6em 1em;
+ cursor: pointer;
+ -webkit-user-select: none;
+ user-select: none;
+ transition: all 0.2s ease-in-out;
+ text-align: center;
+ vertical-align: middle;
+ white-space: nowrap;
+ color: #264ae5;
+ border: 1px solid #e7e7e9;
+ border-radius: 4px;
+ background-color: #fff;
+ background-image: none;
+ box-shadow: none;
+ text-shadow: none;
+ font-size: 14px;
+ line-height: 1.428571429;
+}
+.btn:hover, .btn:focus, .btn:active, .btn:active:focus,
+.mx-button:hover,
+.mx-button:focus,
+.mx-button:active,
+.mx-button:active:focus {
+ outline: none;
+ box-shadow: none;
+}
+.btn[aria-disabled],
+.mx-button[aria-disabled] {
+ cursor: not-allowed;
+ pointer-events: none;
+ opacity: 0.65;
+}
+
+.mx-link {
+ padding: 0;
+ color: #264ae5;
+}
+.mx-link[aria-disabled=true] {
+ cursor: not-allowed;
+ pointer-events: none;
+ opacity: 0.65;
+}
+
+.link-back {
+ color: #6c717e;
+}
+.link-back .glyphicon {
+ top: 2px;
+}
+
+.btn img,
+.mx-button img,
+.mx-link img {
+ height: calc(14px + 4px);
+ margin-right: 4px;
+ vertical-align: text-top;
+}
+
+.profile-phone .btn:active,
+.profile-phone .mx-link:active {
+ transform: translateY(1px);
+}
+
+/* ==========================================================================
+ Button
+
+//== Design Properties
+//## Helper classes to change the look and feel of the component
+========================================================================== */
+.btn,
+.btn-default {
+ color: #264ae5;
+ border-color: #e7e7e9;
+ background-color: #fff;
+}
+.btn:hover, .btn:focus, .btn:active, .btn.active, .open > .btn.dropdown-toggle,
+.btn-default:hover,
+.btn-default:focus,
+.btn-default:active,
+.btn-default.active,
+.open > .btn-default.dropdown-toggle {
+ color: #264ae5;
+ border-color: #e7e7e9;
+ background-color: #e7e7e9;
+}
+.btn:active, .btn.active, .open > .btn.dropdown-toggle,
+.btn-default:active,
+.btn-default.active,
+.open > .btn-default.dropdown-toggle {
+ background-image: none;
+}
+.btn.disabled, .btn.disabled:hover, .btn.disabled:focus, .btn.disabled:active, .btn.disabled.active, .btn[disabled], .btn[disabled]:hover, .btn[disabled]:focus, .btn[disabled]:active, .btn[disabled].active, .btn[aria-disabled], .btn[aria-disabled]:hover, .btn[aria-disabled]:focus, .btn[aria-disabled]:active, .btn[aria-disabled].active,
+.btn fieldset[disabled],
+.btn fieldset[disabled]:hover,
+.btn fieldset[disabled]:focus,
+.btn fieldset[disabled]:active,
+.btn fieldset[disabled].active,
+.btn-default.disabled,
+.btn-default.disabled:hover,
+.btn-default.disabled:focus,
+.btn-default.disabled:active,
+.btn-default.disabled.active,
+.btn-default[disabled],
+.btn-default[disabled]:hover,
+.btn-default[disabled]:focus,
+.btn-default[disabled]:active,
+.btn-default[disabled].active,
+.btn-default[aria-disabled],
+.btn-default[aria-disabled]:hover,
+.btn-default[aria-disabled]:focus,
+.btn-default[aria-disabled]:active,
+.btn-default[aria-disabled].active,
+.btn-default fieldset[disabled],
+.btn-default fieldset[disabled]:hover,
+.btn-default fieldset[disabled]:focus,
+.btn-default fieldset[disabled]:active,
+.btn-default fieldset[disabled].active {
+ border-color: #e7e7e9;
+ background-color: #fff;
+}
+.btn.btn-bordered,
+.btn-default.btn-bordered {
+ background-color: transparent;
+}
+.btn.btn-bordered:hover, .btn.btn-bordered:focus, .btn.btn-bordered:active, .btn.btn-bordered.active, .open > .btn.btn-bordered.dropdown-toggle,
+.btn-default.btn-bordered:hover,
+.btn-default.btn-bordered:focus,
+.btn-default.btn-bordered:active,
+.btn-default.btn-bordered.active,
+.open > .btn-default.btn-bordered.dropdown-toggle {
+ color: #264ae5;
+ border-color: #e7e7e9;
+ background-color: #e7e7e9;
+}
+.btn.btn-link,
+.btn-default.btn-link {
+ text-decoration: none;
+ border-color: transparent;
+ background-color: transparent;
+}
+.btn.btn-link:hover,
+.btn-default.btn-link:hover {
+ border-color: #f8f8f8;
+ background-color: #f8f8f8;
+}
+
+.btn-primary, .datagrid-fullsearch.mx-grid .mx-grid-search-button {
+ color: #fff;
+ border-color: #264ae5;
+ background-color: #264ae5;
+}
+.btn-primary:hover, .datagrid-fullsearch.mx-grid .mx-grid-search-button:hover, .btn-primary:focus, .datagrid-fullsearch.mx-grid .mx-grid-search-button:focus, .btn-primary:active, .datagrid-fullsearch.mx-grid .mx-grid-search-button:active, .btn-primary.active, .datagrid-fullsearch.mx-grid .active.mx-grid-search-button, .open > .btn-primary.dropdown-toggle, .datagrid-fullsearch.mx-grid .open > .dropdown-toggle.mx-grid-search-button {
+ color: #fff;
+ border-color: #1e3bb7;
+ background-color: #1e3bb7;
+}
+.btn-primary:active, .datagrid-fullsearch.mx-grid .mx-grid-search-button:active, .btn-primary.active, .datagrid-fullsearch.mx-grid .active.mx-grid-search-button, .open > .btn-primary.dropdown-toggle, .datagrid-fullsearch.mx-grid .open > .dropdown-toggle.mx-grid-search-button {
+ background-image: none;
+}
+.btn-primary.disabled, .datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button, .btn-primary.disabled:hover, .btn-primary.disabled:focus, .btn-primary.disabled:active, .btn-primary.disabled.active, .btn-primary[disabled], .datagrid-fullsearch.mx-grid [disabled].mx-grid-search-button, .btn-primary[disabled]:hover, .btn-primary[disabled]:focus, .btn-primary[disabled]:active, .btn-primary[disabled].active, .btn-primary[aria-disabled], .datagrid-fullsearch.mx-grid [aria-disabled].mx-grid-search-button, .btn-primary[aria-disabled]:hover, .btn-primary[aria-disabled]:focus, .btn-primary[aria-disabled]:active, .btn-primary[aria-disabled].active,
+.btn-primary fieldset[disabled],
+.datagrid-fullsearch.mx-grid .mx-grid-search-button fieldset[disabled],
+.btn-primary fieldset[disabled]:hover,
+.btn-primary fieldset[disabled]:focus,
+.btn-primary fieldset[disabled]:active,
+.btn-primary fieldset[disabled].active {
+ border-color: #264ae5;
+ background-color: #264ae5;
+}
+.btn-primary.btn-bordered, .datagrid-fullsearch.mx-grid .btn-bordered.mx-grid-search-button {
+ background-color: transparent;
+ color: #264ae5;
+}
+.btn-primary.btn-bordered:hover, .datagrid-fullsearch.mx-grid .btn-bordered.mx-grid-search-button:hover, .btn-primary.btn-bordered:focus, .datagrid-fullsearch.mx-grid .btn-bordered.mx-grid-search-button:focus, .btn-primary.btn-bordered:active, .datagrid-fullsearch.mx-grid .btn-bordered.mx-grid-search-button:active, .btn-primary.btn-bordered.active, .datagrid-fullsearch.mx-grid .btn-bordered.active.mx-grid-search-button, .open > .btn-primary.btn-bordered.dropdown-toggle, .datagrid-fullsearch.mx-grid .open > .btn-bordered.dropdown-toggle.mx-grid-search-button {
+ color: #fff;
+ border-color: #264ae5;
+ background-color: #264ae5;
+}
+.btn-primary.btn-link, .datagrid-fullsearch.mx-grid .btn-link.mx-grid-search-button {
+ text-decoration: none;
+ border-color: transparent;
+ background-color: transparent;
+ color: #264ae5;
+}
+.btn-primary.btn-link:hover, .datagrid-fullsearch.mx-grid .btn-link.mx-grid-search-button:hover {
+ border-color: #f8f8f8;
+ background-color: #f8f8f8;
+}
+
+.btn-inverse {
+ color: #fff;
+ border-color: #24276c;
+ background-color: #24276c;
+}
+.btn-inverse:hover, .btn-inverse:focus, .btn-inverse:active, .btn-inverse.active, .open > .btn-inverse.dropdown-toggle {
+ color: #fff;
+ border-color: #505289;
+ background-color: #505289;
+}
+.btn-inverse:active, .btn-inverse.active, .open > .btn-inverse.dropdown-toggle {
+ background-image: none;
+}
+.btn-inverse.disabled, .btn-inverse.disabled:hover, .btn-inverse.disabled:focus, .btn-inverse.disabled:active, .btn-inverse.disabled.active, .btn-inverse[disabled], .btn-inverse[disabled]:hover, .btn-inverse[disabled]:focus, .btn-inverse[disabled]:active, .btn-inverse[disabled].active, .btn-inverse[aria-disabled], .btn-inverse[aria-disabled]:hover, .btn-inverse[aria-disabled]:focus, .btn-inverse[aria-disabled]:active, .btn-inverse[aria-disabled].active,
+.btn-inverse fieldset[disabled],
+.btn-inverse fieldset[disabled]:hover,
+.btn-inverse fieldset[disabled]:focus,
+.btn-inverse fieldset[disabled]:active,
+.btn-inverse fieldset[disabled].active {
+ border-color: #24276c;
+ background-color: #24276c;
+}
+.btn-inverse.btn-bordered {
+ background-color: transparent;
+ color: #24276c;
+}
+.btn-inverse.btn-bordered:hover, .btn-inverse.btn-bordered:focus, .btn-inverse.btn-bordered:active, .btn-inverse.btn-bordered.active, .open > .btn-inverse.btn-bordered.dropdown-toggle {
+ color: #fff;
+ border-color: #24276c;
+ background-color: #24276c;
+}
+.btn-inverse.btn-link {
+ text-decoration: none;
+ border-color: transparent;
+ background-color: transparent;
+ color: #24276c;
+}
+.btn-inverse.btn-link:hover {
+ border-color: #f8f8f8;
+ background-color: #f8f8f8;
+}
+
+.btn-success {
+ color: #fff;
+ border-color: #3cb33d;
+ background-color: #3cb33d;
+}
+.btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active, .open > .btn-success.dropdown-toggle {
+ color: #fff;
+ border-color: #308f31;
+ background-color: #308f31;
+}
+.btn-success:active, .btn-success.active, .open > .btn-success.dropdown-toggle {
+ background-image: none;
+}
+.btn-success.disabled, .btn-success.disabled:hover, .btn-success.disabled:focus, .btn-success.disabled:active, .btn-success.disabled.active, .btn-success[disabled], .btn-success[disabled]:hover, .btn-success[disabled]:focus, .btn-success[disabled]:active, .btn-success[disabled].active, .btn-success[aria-disabled], .btn-success[aria-disabled]:hover, .btn-success[aria-disabled]:focus, .btn-success[aria-disabled]:active, .btn-success[aria-disabled].active,
+.btn-success fieldset[disabled],
+.btn-success fieldset[disabled]:hover,
+.btn-success fieldset[disabled]:focus,
+.btn-success fieldset[disabled]:active,
+.btn-success fieldset[disabled].active {
+ border-color: #3cb33d;
+ background-color: #3cb33d;
+}
+.btn-success.btn-bordered {
+ background-color: transparent;
+ color: #3cb33d;
+}
+.btn-success.btn-bordered:hover, .btn-success.btn-bordered:focus, .btn-success.btn-bordered:active, .btn-success.btn-bordered.active, .open > .btn-success.btn-bordered.dropdown-toggle {
+ color: #fff;
+ border-color: #3cb33d;
+ background-color: #3cb33d;
+}
+.btn-success.btn-link {
+ text-decoration: none;
+ border-color: transparent;
+ background-color: transparent;
+ color: #3cb33d;
+}
+.btn-success.btn-link:hover {
+ border-color: #f8f8f8;
+ background-color: #f8f8f8;
+}
+
+.btn-info {
+ color: #fff;
+ border-color: #0086d9;
+ background-color: #0086d9;
+}
+.btn-info:hover, .btn-info:focus, .btn-info:active, .btn-info.active, .open > .btn-info.dropdown-toggle {
+ color: #fff;
+ border-color: #006bae;
+ background-color: #006bae;
+}
+.btn-info:active, .btn-info.active, .open > .btn-info.dropdown-toggle {
+ background-image: none;
+}
+.btn-info.disabled, .btn-info.disabled:hover, .btn-info.disabled:focus, .btn-info.disabled:active, .btn-info.disabled.active, .btn-info[disabled], .btn-info[disabled]:hover, .btn-info[disabled]:focus, .btn-info[disabled]:active, .btn-info[disabled].active, .btn-info[aria-disabled], .btn-info[aria-disabled]:hover, .btn-info[aria-disabled]:focus, .btn-info[aria-disabled]:active, .btn-info[aria-disabled].active,
+.btn-info fieldset[disabled],
+.btn-info fieldset[disabled]:hover,
+.btn-info fieldset[disabled]:focus,
+.btn-info fieldset[disabled]:active,
+.btn-info fieldset[disabled].active {
+ border-color: #0086d9;
+ background-color: #0086d9;
+}
+.btn-info.btn-bordered {
+ background-color: transparent;
+ color: #0086d9;
+}
+.btn-info.btn-bordered:hover, .btn-info.btn-bordered:focus, .btn-info.btn-bordered:active, .btn-info.btn-bordered.active, .open > .btn-info.btn-bordered.dropdown-toggle {
+ color: #fff;
+ border-color: #0086d9;
+ background-color: #0086d9;
+}
+.btn-info.btn-link {
+ text-decoration: none;
+ border-color: transparent;
+ background-color: transparent;
+ color: #0086d9;
+}
+.btn-info.btn-link:hover {
+ border-color: #f8f8f8;
+ background-color: #f8f8f8;
+}
+
+.btn-warning {
+ color: #fff;
+ border-color: #eca51c;
+ background-color: #eca51c;
+}
+.btn-warning:hover, .btn-warning:focus, .btn-warning:active, .btn-warning.active, .open > .btn-warning.dropdown-toggle {
+ color: #fff;
+ border-color: #bd8416;
+ background-color: #bd8416;
+}
+.btn-warning:active, .btn-warning.active, .open > .btn-warning.dropdown-toggle {
+ background-image: none;
+}
+.btn-warning.disabled, .btn-warning.disabled:hover, .btn-warning.disabled:focus, .btn-warning.disabled:active, .btn-warning.disabled.active, .btn-warning[disabled], .btn-warning[disabled]:hover, .btn-warning[disabled]:focus, .btn-warning[disabled]:active, .btn-warning[disabled].active, .btn-warning[aria-disabled], .btn-warning[aria-disabled]:hover, .btn-warning[aria-disabled]:focus, .btn-warning[aria-disabled]:active, .btn-warning[aria-disabled].active,
+.btn-warning fieldset[disabled],
+.btn-warning fieldset[disabled]:hover,
+.btn-warning fieldset[disabled]:focus,
+.btn-warning fieldset[disabled]:active,
+.btn-warning fieldset[disabled].active {
+ border-color: #eca51c;
+ background-color: #eca51c;
+}
+.btn-warning.btn-bordered {
+ background-color: transparent;
+ color: #eca51c;
+}
+.btn-warning.btn-bordered:hover, .btn-warning.btn-bordered:focus, .btn-warning.btn-bordered:active, .btn-warning.btn-bordered.active, .open > .btn-warning.btn-bordered.dropdown-toggle {
+ color: #fff;
+ border-color: #eca51c;
+ background-color: #eca51c;
+}
+.btn-warning.btn-link {
+ text-decoration: none;
+ border-color: transparent;
+ background-color: transparent;
+ color: #eca51c;
+}
+.btn-warning.btn-link:hover {
+ border-color: #f8f8f8;
+ background-color: #f8f8f8;
+}
+
+.btn-danger {
+ color: #fff;
+ border-color: #e33f4e;
+ background-color: #e33f4e;
+}
+.btn-danger:hover, .btn-danger:focus, .btn-danger:active, .btn-danger.active, .open > .btn-danger.dropdown-toggle {
+ color: #fff;
+ border-color: #b6323e;
+ background-color: #b6323e;
+}
+.btn-danger:active, .btn-danger.active, .open > .btn-danger.dropdown-toggle {
+ background-image: none;
+}
+.btn-danger.disabled, .btn-danger.disabled:hover, .btn-danger.disabled:focus, .btn-danger.disabled:active, .btn-danger.disabled.active, .btn-danger[disabled], .btn-danger[disabled]:hover, .btn-danger[disabled]:focus, .btn-danger[disabled]:active, .btn-danger[disabled].active, .btn-danger[aria-disabled], .btn-danger[aria-disabled]:hover, .btn-danger[aria-disabled]:focus, .btn-danger[aria-disabled]:active, .btn-danger[aria-disabled].active,
+.btn-danger fieldset[disabled],
+.btn-danger fieldset[disabled]:hover,
+.btn-danger fieldset[disabled]:focus,
+.btn-danger fieldset[disabled]:active,
+.btn-danger fieldset[disabled].active {
+ border-color: #e33f4e;
+ background-color: #e33f4e;
+}
+.btn-danger.btn-bordered {
+ background-color: transparent;
+ color: #e33f4e;
+}
+.btn-danger.btn-bordered:hover, .btn-danger.btn-bordered:focus, .btn-danger.btn-bordered:active, .btn-danger.btn-bordered.active, .open > .btn-danger.btn-bordered.dropdown-toggle {
+ color: #fff;
+ border-color: #e33f4e;
+ background-color: #e33f4e;
+}
+.btn-danger.btn-link {
+ text-decoration: none;
+ border-color: transparent;
+ background-color: transparent;
+ color: #e33f4e;
+}
+.btn-danger.btn-link:hover {
+ border-color: #f8f8f8;
+ background-color: #f8f8f8;
+}
+
+.btn-lg {
+ font-size: 18px;
+}
+.btn-lg img {
+ height: calc(12px + 4px);
+}
+
+.btn-sm {
+ font-size: 12px;
+}
+.btn-sm img {
+ height: calc(12px + 4px);
+}
+
+.btn-image {
+ padding: 0;
+ vertical-align: middle;
+ border-style: none;
+ background-color: transparent;
+}
+.btn-image img {
+ display: block;
+ height: auto;
+}
+.btn-image:hover, .btn-image:focus {
+ background-color: transparent;
+}
+
+.btn-icon > img, .btn-icon-only > img, .btn-icon > .glyphicon, .btn-icon-only > .glyphicon {
+ margin: 0;
+}
+
+.btn-icon-right {
+ display: inline-flex;
+ flex-direction: row-reverse;
+ align-items: center;
+}
+.btn-icon-right > img, .btn-icon-right > .glyphicon {
+ top: 0;
+ margin-left: 4px;
+}
+
+.btn-icon-top {
+ padding-right: 0;
+ padding-left: 0;
+}
+.btn-icon-top > img, .btn-icon-top > .glyphicon {
+ display: block;
+ margin: 0 0 4px 0;
+}
+
+.btn-icon-only {
+ padding: 0;
+ color: #787d87;
+ border: none;
+}
+
+.btn-block {
+ display: block;
+ width: 100%;
+}
+
+.btn-block + .btn-block {
+ margin-top: 4px;
+}
+
+/* ==========================================================================
+ Check box
+
+ Default Mendix check box widget
+========================================================================== */
+.mx-checkbox.label-after {
+ flex-wrap: wrap;
+}
+.mx-checkbox.label-after .control-label {
+ display: flex;
+ align-items: center;
+ padding: 0;
+}
+
+input[type=checkbox] {
+ position: relative !important;
+ width: 16px;
+ height: 16px;
+ margin: 0 !important;
+ cursor: pointer;
+ -webkit-user-select: none;
+ user-select: none;
+ appearance: none;
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ transform: translateZ(0);
+}
+input[type=checkbox]:before, input[type=checkbox]:after {
+ position: absolute;
+ display: block;
+ transition: all 0.3s ease;
+}
+input[type=checkbox]:before {
+ width: 100%;
+ height: 100%;
+ content: "";
+ border: 1px solid #e7e7e9;
+ border-radius: 4px;
+ background-color: transparent;
+}
+input[type=checkbox]:after {
+ width: 8px;
+ height: 4px;
+ margin: 5px 4px;
+ transform: rotate(-45deg);
+ pointer-events: none;
+ border: 2px solid #ffffff;
+ border-top: 0;
+ border-right: 0;
+}
+input[type=checkbox]:not(:disabled):not(:checked):hover:after {
+ content: "";
+ border-color: #e7e7e9;
+}
+input[type=checkbox]:checked:before {
+ border-color: #264ae5;
+ background-color: #264ae5;
+}
+input[type=checkbox]:checked:after {
+ content: "";
+}
+input[type=checkbox]:disabled:before {
+ background-color: #f8f8f8;
+}
+input[type=checkbox]:checked:disabled:before {
+ border-color: transparent;
+ background-color: rgba(38, 74, 229, 0.4);
+}
+input[type=checkbox]:disabled:after, input[type=checkbox]:checked:disabled:after {
+ border-color: #f8f8f8;
+}
+input[type=checkbox] + .control-label {
+ margin-left: 8px;
+}
+
+/* ==========================================================================
+ Grid
+
+ Default Mendix grid (used for Mendix data grid)
+========================================================================== */
+.mx-grid {
+ padding: 0px;
+ border: 0;
+ border-radius: 0;
+}
+.mx-grid .mx-grid-controlbar {
+ margin: 10px 0;
+ /* Paging */
+}
+.mx-grid .mx-grid-controlbar .mx-grid-pagingbar {
+ /* Buttons */
+ /* Text Paging .. to .. to .. */
+}
+.mx-grid .mx-grid-controlbar .mx-grid-pagingbar .mx-button {
+ padding: 8px;
+ color: #a9acb3;
+ border-color: transparent;
+ background-color: transparent;
+}
+.mx-grid .mx-grid-controlbar .mx-grid-pagingbar .mx-button:hover {
+ color: #264ae5;
+ border-color: transparent;
+ background-color: transparent;
+}
+.mx-grid .mx-grid-controlbar .mx-grid-pagingbar .mx-grid-paging-status {
+ padding: 0 8px 8px;
+}
+.mx-grid .mx-grid-searchbar {
+ margin: 10px 0;
+}
+.mx-grid .mx-grid-searchbar .mx-grid-search-item .mx-grid-search-label {
+ vertical-align: middle;
+}
+.mx-grid .mx-grid-searchbar .mx-grid-search-item .mx-grid-search-label label {
+ padding-top: 5px;
+}
+.mx-grid .mx-grid-searchbar .mx-grid-search-item .mx-grid-search-input {
+ display: inline-flex;
+}
+.mx-grid .mx-grid-searchbar .mx-grid-search-item .mx-grid-search-input .form-control {
+ height: 28px;
+ font-size: 11px;
+}
+.mx-grid .mx-grid-searchbar .mx-grid-search-item .mx-grid-search-input select.form-control {
+ padding: 3px;
+ vertical-align: middle;
+}
+.mx-grid .mx-grid-searchbar .mx-grid-search-item .mx-grid-search-input .mx-button {
+ height: 28px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+}
+
+.mx-dataview .mx-grid {
+ border: 0;
+}
+
+/* ==========================================================================
+ Data grid default
+
+ Default Mendix data grid widget. The data grid shows a list of objects in a grid
+========================================================================== */
+.mx-datagrid table {
+ border-width: 0;
+ background-color: transparent;
+ /* Table header */
+ /* Table Body */
+ /* Table Footer */
+}
+.mx-datagrid table th {
+ border-style: solid;
+ border-color: #ced0d3;
+ border-top-width: 0;
+ border-right: 0;
+ border-bottom-width: 1px;
+ border-left: 0;
+ background-color: transparent;
+ padding: 16px 16px 16px 16px;
+ vertical-align: middle;
+}
+.mx-datagrid table th .mx-datagrid-head-caption {
+ white-space: normal;
+}
+.mx-datagrid table tbody tr td {
+ transition: all 0.3s 0s cubic-bezier(0.4, 0, 0.2, 1);
+ transform-style: initial;
+ padding: 16px 16px 16px 16px;
+ vertical-align: middle;
+ border-width: 0;
+ border-color: #ced0d3;
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ background-color: transparent;
+ /* Text without spaces */
+}
+.mx-datagrid table tbody tr td:focus {
+ outline: none;
+}
+.mx-datagrid table tbody tr td .mx-datagrid-data-wrapper {
+ text-overflow: ellipsis;
+}
+.mx-datagrid table tbody tr.selected td, .mx-datagrid table tbody tr.selected:hover td {
+ color: #0a1325;
+ background-color: #f0f1f2 !important;
+}
+.mx-datagrid table tfoot > tr > th {
+ padding: 16px 16px 16px 16px;
+ border-width: 0;
+ background-color: #e7e7e9;
+}
+.mx-datagrid table tfoot > tr > td {
+ padding: 16px 16px 16px 16px;
+ border-width: 0;
+ background-color: transparent;
+ font-weight: bold;
+}
+.mx-datagrid table *:focus {
+ outline: 0;
+}
+
+/* ==========================================================================
+ Data grid default
+
+//== Design Properties
+//## Helper classes to change the look and feel of the component
+========================================================================== */
+.datagrid-striped.mx-datagrid table th {
+ border-width: 0;
+}
+.datagrid-striped.mx-datagrid table tbody tr td {
+ border-top-width: 0;
+}
+.datagrid-striped.mx-datagrid table tbody tr:nth-child(odd) td {
+ background-color: #fafafb;
+}
+
+.datagrid-bordered.mx-datagrid table {
+ border: 1px solid;
+}
+.datagrid-bordered.mx-datagrid table th {
+ border: 1px solid #ced0d3;
+}
+.datagrid-bordered.mx-datagrid table tbody tr td {
+ border: 1px solid #ced0d3;
+}
+.datagrid-bordered.mx-datagrid tfoot > tr > th {
+ border-width: 0;
+ background-color: #e7e7e9;
+}
+.datagrid-bordered.mx-datagrid tfoot > tr > td {
+ border-width: 1px;
+}
+
+.datagrid-transparent.mx-datagrid table {
+ background-color: transparent;
+}
+.datagrid-transparent.mx-datagrid table tbody tr:nth-of-type(odd) {
+ background-color: transparent;
+}
+.datagrid-transparent.mx-datagrid table tbody tr td {
+ background-color: transparent;
+}
+
+.datagrid-hover.mx-datagrid table tbody tr:hover td {
+ background-color: #f5f6f6 !important;
+}
+.datagrid-hover.mx-datagrid table tbody tr.selected:hover td {
+ background-color: #e7e8e9 !important;
+}
+
+.datagrid-lg.mx-datagrid table th {
+ padding: 32px 32px 32px 32px;
+}
+.datagrid-lg.mx-datagrid table tbody tr td {
+ padding: 32px 32px 32px 32px;
+}
+
+.datagrid-sm.mx-datagrid table th {
+ padding: 8px 8px 8px 8px;
+}
+.datagrid-sm.mx-datagrid table tbody tr td {
+ padding: 8px 8px 8px 8px;
+}
+
+.datagrid-fullsearch.mx-grid .mx-grid-reset-button {
+ display: none;
+}
+.datagrid-fullsearch.mx-grid .mx-grid-search-item {
+ display: block;
+}
+.datagrid-fullsearch.mx-grid .mx-grid-search-label {
+ display: none;
+}
+.datagrid-fullsearch.mx-grid .mx-grid-searchbar .mx-grid-search-controls {
+ position: absolute;
+ right: 0;
+}
+.datagrid-fullsearch.mx-grid .mx-grid-searchbar .mx-grid-search-input {
+ width: 80%;
+ padding-left: 0;
+}
+.datagrid-fullsearch.mx-grid .mx-grid-searchbar .mx-grid-search-input .btn,
+.datagrid-fullsearch.mx-grid .mx-grid-searchbar .mx-grid-search-input .form-control {
+ height: 35px;
+ font-size: 12px;
+}
+
+/* ==========================================================================
+ Data view
+
+ Default Mendix data view widget. The data view is used for showing the contents of exactly one object
+========================================================================== */
+.mx-dataview {
+ /* Dataview-content gives problems for nexted layout grid containers */
+ /* Dataview empty message */
+}
+.mx-dataview > .mx-dataview-content > .mx-container-nested > .row {
+ margin-right: 0;
+ margin-left: 0;
+}
+.mx-dataview .mx-dataview-message {
+ color: #0a1325;
+ background: #f8f8f8;
+}
+
+.mx-dataview-controls {
+ margin-top: 16px;
+ padding: 16px 0 0;
+ border-top: 1px solid #ced0d3;
+ border-radius: 0;
+ background-color: transparent;
+ /* Buttons */
+ background-color: inherit;
+}
+.mx-dataview-controls .mx-button {
+ margin-right: 8px;
+ margin-bottom: 0;
+}
+.mx-dataview-controls .mx-button:last-child {
+ margin-right: 0;
+}
+
+/* ==========================================================================
+ Date picker
+
+ Default Mendix date picker widget
+========================================================================== */
+.mx-calendar {
+ /* (must be higher than popup z-index) */
+ z-index: 10010 !important;
+ padding: 8px;
+ font-size: 12px;
+ background: #f8f8f8;
+ border-radius: 4px;
+ border: 1px solid #ced0d3;
+ box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.06);
+}
+.mx-calendar .mx-calendar-month-header {
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ margin: 0 3px 10px 3px;
+}
+.mx-calendar .mx-calendar-month-next,
+.mx-calendar .mx-calendar-month-previous,
+.mx-calendar .mx-calendar-month-dropdown {
+ border: 0;
+ cursor: pointer;
+ background: transparent;
+}
+.mx-calendar .mx-calendar-month-next:hover,
+.mx-calendar .mx-calendar-month-previous:hover {
+ color: #264ae5;
+}
+.mx-calendar .mx-calendar-month-dropdown {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+}
+.mx-calendar .mx-calendar-month-dropdown .mx-calendar-month-current:first-child {
+ margin-right: 10px;
+}
+.mx-calendar th {
+ color: #264ae5;
+}
+.mx-calendar th,
+.mx-calendar td {
+ width: 35px;
+ height: 35px;
+ text-align: center;
+}
+.mx-calendar td {
+ color: #0a1325;
+}
+.mx-calendar td:hover {
+ cursor: pointer;
+ border-radius: 50%;
+ color: #264ae5;
+ background-color: #e7e7e9;
+}
+.mx-calendar .mx-calendar-day-month-next,
+.mx-calendar .mx-calendar-day-month-previous {
+ color: #4774cd;
+}
+.mx-calendar .mx-calendar-day-selected,
+.mx-calendar .mx-calendar-day-selected:hover {
+ color: #fff;
+ border-radius: 50%;
+ background: #264ae5;
+}
+.mx-calendar .mx-calendar-year-switcher {
+ text-align: center;
+ margin-top: 10px;
+ color: #afbcf5;
+}
+.mx-calendar .mx-calendar-year-switcher span.mx-calendar-year-selected {
+ color: #264ae5;
+ margin-left: 10px;
+ margin-right: 10px;
+}
+.mx-calendar .mx-calendar-year-switcher span:hover {
+ cursor: pointer;
+ text-decoration: underline;
+ background-color: transparent;
+}
+
+.mx-calendar-month-dropdown-options {
+ /* (must be higher than popup z-index) */
+ z-index: 10020 !important;
+ position: absolute;
+ top: 25px;
+ padding: 2px 10px;
+ border-radius: 4px;
+ background-color: #f8f8f8;
+}
+.mx-calendar-month-dropdown-options div {
+ cursor: pointer;
+ font-size: 12px;
+ padding: 2px 0;
+}
+.mx-calendar-month-dropdown-options div:hover, .mx-calendar-month-dropdown-options div:focus {
+ color: #264ae5;
+}
+
+/* ==========================================================================
+ Header
+
+ Default Mendix mobile header
+========================================================================== */
+.mx-header {
+ z-index: 100;
+ display: flex;
+ width: 100%;
+ height: 45px;
+ padding: 0;
+ text-align: initial;
+ color: #fff;
+ background-color: #020557;
+ box-shadow: 0px 2px 2px rgba(194, 196, 201, 0.30354);
+}
+.mx-header div.mx-header-left,
+.mx-header div.mx-header-right {
+ position: relative;
+ top: initial;
+ right: initial;
+ left: initial;
+ display: flex;
+ align-items: center;
+ width: 25%;
+ height: 100%;
+}
+.mx-header div.mx-header-left .mx-placeholder,
+.mx-header div.mx-header-right .mx-placeholder {
+ display: flex;
+ align-items: center;
+ height: 100%;
+}
+.mx-header div.mx-header-left .mx-placeholder {
+ order: 1;
+}
+.mx-header div.mx-header-left .mx-placeholder .mx-placeholder {
+ justify-content: flex-start;
+}
+.mx-header div.mx-header-center {
+ overflow: hidden;
+ flex: 1;
+ order: 2;
+ text-align: center;
+}
+.mx-header div.mx-header-center .mx-title {
+ overflow: hidden;
+ width: 100%;
+ margin: 0;
+ text-overflow: ellipsis;
+ color: #fff;
+ font-size: 16px;
+ line-height: 45px;
+}
+.mx-header div.mx-header-right {
+ order: 3;
+}
+.mx-header div.mx-header-right .mx-placeholder {
+ justify-content: flex-end;
+}
+.mx-header .mx-link {
+ display: flex;
+ align-items: center;
+ height: 100%;
+ transition: all 0.2s;
+ text-decoration: none;
+}
+.mx-header .mx-link .glyphicon {
+ top: 0;
+ font-size: 23px;
+}
+.mx-header .mx-link:active {
+ transform: translateY(1px);
+ color: #1431aa;
+}
+.mx-header .mx-link,
+.mx-header .btn,
+.mx-header img {
+ padding: 0 16px;
+}
+.mx-header .mx-sidebartoggle {
+ font-size: 24px;
+ line-height: 45px;
+}
+.mx-header .mx-sidebartoggle img {
+ height: 20px;
+}
+
+body[dir=rtl] .mx-header-left {
+ order: 3;
+}
+body[dir=rtl] .mx-header-right {
+ order: 1;
+}
+
+/* ==========================================================================
+ Glyphicon
+
+ Default Mendix glyphicon
+========================================================================== */
+.mx-glyphicon:before {
+ display: inline-block;
+ margin-top: -0.2em;
+ margin-right: 0.4555555em;
+ vertical-align: middle;
+ font-family: "Glyphicons Halflings";
+ font-weight: normal;
+ font-style: normal;
+ line-height: inherit;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+/* ==========================================================================
+ Group box
+
+ Default Mendix group box
+========================================================================== */
+.mx-groupbox {
+ margin: 0;
+}
+.mx-groupbox > .mx-groupbox-header {
+ margin: 0;
+ color: #0a1325;
+ border-width: 1px 1px 0 1px;
+ border-style: solid;
+ border-color: #e7e7e9;
+ background: #e7e7e9;
+ font-size: 14px;
+ border-radius: 4px 4px 0 0;
+ padding: 12px 16px;
+}
+.mx-groupbox > .mx-groupbox-header .mx-groupbox-collapse-icon {
+ margin-top: 0.1em;
+}
+.mx-groupbox > h1.mx-groupbox-header {
+ font-size: 31px;
+}
+.mx-groupbox > h2.mx-groupbox-header {
+ font-size: 26px;
+}
+.mx-groupbox > h3.mx-groupbox-header {
+ font-size: 24px;
+}
+.mx-groupbox > h4.mx-groupbox-header {
+ font-size: 18px;
+}
+.mx-groupbox > h5.mx-groupbox-header, .mx-groupbox > .mx-groupbox-header.widget-eventTime, .mx-groupbox > .mx-groupbox-header.widget-timeline-title {
+ font-size: 14px;
+}
+.mx-groupbox > h6.mx-groupbox-header {
+ font-size: 12px;
+}
+.mx-groupbox > .mx-groupbox-body {
+ padding: 12px 16px;
+ border-width: 1px;
+ border-style: solid;
+ border-color: #e7e7e9;
+ background-color: #ffffff;
+ border-radius: 4px;
+}
+.mx-groupbox .mx-groupbox-header + .mx-groupbox-body {
+ border-top: none;
+}
+.mx-groupbox-header ~ .mx-groupbox-body {
+ border-radius: 0 0 4px 4px;
+}
+
+/* ==========================================================================
+ Group box
+
+//== Design Properties
+//## Helper classes to change the look and feel of the component
+========================================================================== */
+.groupbox-secondary > .mx-groupbox-header,
+.groupbox-default > .mx-groupbox-header {
+ color: #0a1325;
+ border-color: #e7e7e9;
+ background: #e7e7e9;
+}
+.groupbox-secondary > .mx-groupbox-body,
+.groupbox-default > .mx-groupbox-body {
+ border-color: #e7e7e9;
+}
+
+.groupbox-primary > .mx-groupbox-header {
+ color: #fff;
+ border-color: #264ae5;
+ background: #264ae5;
+}
+.groupbox-primary > .mx-groupbox-body {
+ border-color: #264ae5;
+}
+
+.groupbox-success > .mx-groupbox-header {
+ color: #fff;
+ border-color: #3cb33d;
+ background: #3cb33d;
+}
+.groupbox-success > .mx-groupbox-body {
+ border-color: #3cb33d;
+}
+
+.groupbox-warning > .mx-groupbox-header {
+ color: #fff;
+ border-color: #eca51c;
+ background: #eca51c;
+}
+.groupbox-warning > .mx-groupbox-body {
+ border-color: #eca51c;
+}
+
+.groupbox-danger > .mx-groupbox-header {
+ color: #fff;
+ border-color: #e33f4e;
+ background: #e33f4e;
+}
+.groupbox-danger > .mx-groupbox-body {
+ border-color: #e33f4e;
+}
+
+.groupbox-transparent > .mx-groupbox-header {
+ padding: 12px 0;
+ color: #0a1325;
+ border-style: none;
+ background: transparent;
+ font-weight: 600;
+}
+.groupbox-transparent .mx-groupbox-body {
+ padding: 8px 0;
+ border-radius: 0;
+ border: 0;
+ border-bottom: 1px solid #e7e7e9;
+ background-color: transparent;
+}
+.groupbox-transparent .mx-groupbox-collapse-icon {
+ color: #264ae5;
+}
+
+.groupbox-callout > .mx-groupbox-header,
+.groupbox-callout > .mx-groupbox-body {
+ border: 0;
+ background-color: #e9edfc;
+}
+.groupbox-callout > .mx-groupbox-header {
+ color: #264ae5;
+}
+.groupbox-callout .mx-groupbox-header + .mx-groupbox-body {
+ padding-top: 0;
+}
+
+.groupbox-success.groupbox-callout > .mx-groupbox-header,
+.groupbox-success.groupbox-callout > .mx-groupbox-body {
+ background-color: #d8f0d8;
+}
+.groupbox-success.groupbox-callout > .mx-groupbox-header {
+ color: #3cb33d;
+}
+
+.groupbox-warning.groupbox-callout > .mx-groupbox-header,
+.groupbox-warning.groupbox-callout > .mx-groupbox-body {
+ background-color: #fbedd2;
+}
+.groupbox-warning.groupbox-callout > .mx-groupbox-header {
+ color: #eca51c;
+}
+
+.groupbox-danger.groupbox-callout > .mx-groupbox-header,
+.groupbox-danger.groupbox-callout > .mx-groupbox-body {
+ background-color: #f9d9dc;
+}
+.groupbox-danger.groupbox-callout > .mx-groupbox-header {
+ color: #e33f4e;
+}
+
+.groupbox-info > .mx-groupbox-header {
+ color: #fff;
+ border-color: #0086d9;
+ background: #0086d9;
+}
+.groupbox-info > .mx-groupbox-body {
+ border-color: #0086d9;
+}
+
+.groupbox-inverse > .mx-groupbox-header {
+ color: #fff;
+ border-color: #24276c;
+ background: #24276c;
+}
+.groupbox-inverse > .mx-groupbox-body {
+ border-color: #24276c;
+}
+
+.groupbox-white > .mx-groupbox-header {
+ color: #0a1325;
+ border-color: #fff;
+ background: #fff;
+}
+.groupbox-white > .mx-groupbox-body {
+ border-color: #fff;
+}
+
+.groupbox-info.groupbox-callout > .mx-groupbox-header,
+.groupbox-info.groupbox-callout > .mx-groupbox-body {
+ background-color: #cce7f7;
+}
+.groupbox-info.groupbox-callout > .mx-groupbox-header {
+ color: #0086d9;
+}
+
+/* ==========================================================================
+ Image
+
+ Default Mendix image widgets
+========================================================================== */
+img.img-rounded,
+.img-rounded img {
+ border-radius: 6px;
+}
+
+img.img-thumbnail,
+.img-thumbnail img {
+ display: inline-block;
+ max-width: 100%;
+ height: auto;
+ padding: 4px;
+ transition: all 0.2s ease-in-out;
+ border: 1px solid #e7e7e9;
+ border-radius: 4px;
+ background-color: #ffffff;
+ line-height: 1.428571429;
+}
+
+img.img-circle,
+.img-circle img {
+ border-radius: 50%;
+}
+
+img.img-auto,
+.img-auto img {
+ width: auto !important;
+ max-width: 100% !important;
+ height: auto !important;
+ max-height: 100% !important;
+}
+
+img.img-center,
+.img-center img {
+ margin-right: auto !important;
+ margin-left: auto !important;
+}
+
+img.img-icon {
+ width: 20px;
+ height: 20px;
+ padding: 2px;
+ border-radius: 50%;
+}
+
+img.img-fill,
+.img-fill img {
+ object-fit: fill;
+}
+
+img.img-contain,
+.img-contain img {
+ object-fit: contain;
+}
+
+img.img-cover,
+.img-cover img {
+ object-fit: cover;
+}
+
+img.img-scale-down,
+.img-scale-down img {
+ object-fit: scale-down;
+}
+
+.img-contain.mx-image-background {
+ background-size: contain;
+}
+
+.img-cover.mx-image-background {
+ background-size: cover;
+}
+
+.img-auto.mx-image-background {
+ background-size: auto;
+}
+
+.img-opacity-low img,
+.img-opacity-low.mx-image-background {
+ opacity: 0.3;
+}
+
+.img-opacity-medium img,
+.img-opacity-medium.mx-image-background {
+ opacity: 0.5;
+}
+
+.img-opacity-high img,
+.img-opacity-high.mx-image-background {
+ opacity: 0.7;
+}
+
+/* ==========================================================================
+ List view
+
+ Default Mendix list view widget. The list view shows a list of objects arranged vertically. Each object is shown using a template
+========================================================================== */
+.mx-listview {
+ padding: 0;
+ /* Clear search button (overrides load more button stying) */
+}
+.mx-listview > ul {
+ margin: 0 0 16px;
+}
+.mx-listview > ul .mx-listview-empty {
+ border-style: none;
+ background-color: transparent;
+}
+.mx-listview > ul > li {
+ transition: all 0.3s 0s cubic-bezier(0.4, 0, 0.2, 1);
+ transform-style: initial;
+ background-color: #fff;
+ padding: 16px;
+ border-top: 1px solid #ced0d3;
+}
+.mx-listview > ul > li:last-child {
+ border-bottom: 1px solid #ced0d3;
+}
+.mx-listview > ul > li:focus, .mx-listview > ul > li:active {
+ outline: 0;
+}
+.mx-listview .selected {
+ background: #a8b7f5;
+}
+.mx-listview .mx-layoutgrid {
+ padding: 0 !important;
+}
+
+.mx-listview-searchbar {
+ margin-bottom: 16px;
+}
+.mx-listview-searchbar .btn {
+ width: auto;
+}
+
+/* Load more button */
+.btn.mx-listview-loadMore {
+ width: 100%;
+ margin: 0 0 16px;
+}
+
+.profile-phone .mx-listview .mx-listview-searchbar {
+ margin-bottom: 3px;
+ background: #ffffff;
+ box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14);
+}
+.profile-phone .mx-listview .mx-listview-searchbar input {
+ padding: 14px 15px;
+ color: #555555;
+ border-style: none;
+ border-radius: 0;
+ box-shadow: none;
+}
+.profile-phone .mx-listview .mx-listview-searchbar .btn {
+ padding: 14px 15px;
+ color: inherit;
+ border-style: none;
+}
+.profile-phone .mx-listview > ul > li:first-child {
+ border-top: none;
+}
+
+/* ==========================================================================
+ List view
+
+//== Design Properties
+//## Helper classes to change the look and feel of the component
+========================================================================== */
+.listview-lined.mx-listview > ul > li {
+ border-top: 1px solid #ced0d3;
+}
+.listview-lined.mx-listview > ul > li:first-child {
+ border-top: 1px solid #ced0d3;
+}
+.listview-lined.mx-listview > ul > li:last-child {
+ border-bottom: 1px solid #ced0d3;
+}
+
+.listview-bordered.mx-listview > ul > li {
+ border: 1px solid #ced0d3;
+ border-top: 0;
+}
+.listview-bordered.mx-listview > ul > li:first-child {
+ border-top: 1px solid #ced0d3;
+}
+.listview-striped.mx-listview > ul > li:nth-child(2n+1) {
+ background-color: #fafafb;
+}
+
+.listview-seperated.mx-listview > ul > li {
+ margin-bottom: 16px;
+ border: 1px solid #ced0d3;
+ border-radius: 4px;
+}
+
+.listview-stylingless.mx-listview > ul > li {
+ padding: unset;
+ cursor: default;
+ border: unset;
+ background-color: transparent;
+}
+.listview-stylingless.mx-listview > ul > li:hover, .listview-stylingless.mx-listview > ul > li:focus, .listview-stylingless.mx-listview > ul > li:active {
+ background-color: transparent;
+}
+.listview-stylingless.mx-listview > ul > li.selected {
+ background-color: transparent !important;
+}
+.listview-stylingless.mx-listview > ul > li.selected:hover, .listview-stylingless.mx-listview > ul > li.selected:focus, .listview-stylingless.mx-listview > ul > li.selected:active {
+ background-color: transparent !important;
+}
+
+.listview-hover.mx-listview > ul > li {
+ cursor: pointer;
+}
+.listview-hover.mx-listview > ul > li:hover, .listview-hover.mx-listview > ul > li:focus, .listview-hover.mx-listview > ul > li:active {
+ background-color: #f5f6f6;
+}
+.listview-hover.mx-listview > ul > li.selected:hover, .listview-hover.mx-listview > ul > li.selected:focus, .listview-hover.mx-listview > ul > li.selected:active {
+ background-color: #e7e8e9;
+}
+
+.listview-sm.mx-listview > ul > li {
+ padding: 8px;
+}
+
+.listview-lg.mx-listview > ul > li {
+ padding: 24px;
+}
+
+.mx-listview[class*=lv-col] {
+ overflow: hidden;
+}
+.mx-listview[class*=lv-col] > ul {
+ display: flex;
+ flex-wrap: wrap;
+ margin-right: -8px;
+ margin-left: -8px;
+}
+.mx-listview[class*=lv-col] > ul::before, .mx-listview[class*=lv-col] > ul::after {
+ display: table;
+ clear: both;
+ content: " ";
+}
+.mx-listview[class*=lv-col] > ul > li {
+ position: relative;
+ min-height: 1px;
+ padding-right: 8px;
+ padding-left: 8px;
+ border: 0;
+}
+@media (max-width: calc(992px - 1px)) {
+ .mx-listview[class*=lv-col] > ul > li {
+ width: 100% !important;
+ }
+}
+.mx-listview[class*=lv-col] > ul > li > .mx-dataview {
+ overflow: hidden;
+}
+.mx-listview[class*=lv-col].lv-col-xs-12 > ul > li {
+ width: 100% !important;
+}
+.mx-listview[class*=lv-col].lv-col-xs-11 > ul > li {
+ width: 91.66666667% !important;
+}
+.mx-listview[class*=lv-col].lv-col-xs-10 > ul > li {
+ width: 83.33333333% !important;
+}
+.mx-listview[class*=lv-col].lv-col-xs-9 > ul > li {
+ width: 75% !important;
+}
+.mx-listview[class*=lv-col].lv-col-xs-8 > ul > li {
+ width: 66.66666667% !important;
+}
+.mx-listview[class*=lv-col].lv-col-xs-7 > ul > li {
+ width: 58.33333333% !important;
+}
+.mx-listview[class*=lv-col].lv-col-xs-6 > ul > li {
+ width: 50% !important;
+}
+.mx-listview[class*=lv-col].lv-col-xs-5 > ul > li {
+ width: 41.66666667% !important;
+}
+.mx-listview[class*=lv-col].lv-col-xs-4 > ul > li {
+ width: 33.33333333% !important;
+}
+.mx-listview[class*=lv-col].lv-col-xs-3 > ul > li {
+ width: 25% !important;
+}
+.mx-listview[class*=lv-col].lv-col-xs-2 > ul > li {
+ width: 16.66666667% !important;
+}
+.mx-listview[class*=lv-col].lv-col-xs-1 > ul > li {
+ width: 8.33333333% !important;
+}
+@media (min-width: 768px) {
+ .mx-listview[class*=lv-col].lv-col-sm-12 > ul > li {
+ width: 100% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-sm-11 > ul > li {
+ width: 91.66666667% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-sm-10 > ul > li {
+ width: 83.33333333% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-sm-9 > ul > li {
+ width: 75% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-sm-8 > ul > li {
+ width: 66.66666667% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-sm-7 > ul > li {
+ width: 58.33333333% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-sm-6 > ul > li {
+ width: 50% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-sm-5 > ul > li {
+ width: 41.66666667% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-sm-4 > ul > li {
+ width: 33.33333333% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-sm-3 > ul > li {
+ width: 25% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-sm-2 > ul > li {
+ width: 16.66666667% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-sm-1 > ul > li {
+ width: 8.33333333% !important;
+ }
+}
+@media (min-width: 992px) {
+ .mx-listview[class*=lv-col].lv-col-md-12 > ul > li {
+ width: 100% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-md-11 > ul > li {
+ width: 91.66666667% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-md-10 > ul > li {
+ width: 83.33333333% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-md-9 > ul > li {
+ width: 75% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-md-8 > ul > li {
+ width: 66.66666667% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-md-7 > ul > li {
+ width: 58.33333333% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-md-6 > ul > li {
+ width: 50% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-md-5 > ul > li {
+ width: 41.66666667% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-md-4 > ul > li {
+ width: 33.33333333% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-md-3 > ul > li {
+ width: 25% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-md-2 > ul > li {
+ width: 16.66666667% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-md-1 > ul > li {
+ width: 16.66666667% !important;
+ }
+}
+@media (min-width: 1200px) {
+ .mx-listview[class*=lv-col].lv-col-lg-12 > ul > li {
+ width: 100% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-lg-11 > ul > li {
+ width: 91.66666667% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-lg-10 > ul > li {
+ width: 83.33333333% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-lg-9 > ul > li {
+ width: 75% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-lg-8 > ul > li {
+ width: 66.66666667% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-lg-7 > ul > li {
+ width: 58.33333333% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-lg-6 > ul > li {
+ width: 50% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-lg-5 > ul > li {
+ width: 41.66666667% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-lg-4 > ul > li {
+ width: 33.33333333% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-lg-3 > ul > li {
+ width: 25% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-lg-2 > ul > li {
+ width: 16.66666667% !important;
+ }
+ .mx-listview[class*=lv-col].lv-col-lg-1 > ul > li {
+ width: 8.33333333% !important;
+ }
+}
+
+/* ==========================================================================
+ Modal
+
+ Default Mendix modals. Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults
+========================================================================== */
+.modal-dialog .modal-content {
+ border: 1px solid #ced0d3;
+ border-radius: 4px;
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
+}
+.modal-dialog .modal-content .modal-header {
+ padding: 15px 20px;
+ border-bottom-color: #ced0d3;
+ border-radius: 0;
+ background-color: transparent;
+}
+.modal-dialog .modal-content .modal-header h4 {
+ margin: 0;
+ color: #0a1325;
+ font-size: 16px;
+ font-weight: bold;
+}
+.modal-dialog .modal-content .modal-header .close {
+ margin-top: -3px;
+ opacity: 1;
+ /* For IE8 and earlier */
+ color: #0a1325;
+ text-shadow: none;
+}
+.modal-dialog .modal-content .modal-footer {
+ display: flex;
+ justify-content: flex-end;
+ margin-top: 0;
+ padding: 20px;
+ border-style: none;
+}
+
+.mx-window.mx-window-view .mx-window-body {
+ overflow: hidden;
+ padding: 0;
+}
+.mx-window.mx-window-view .mx-window-body > .mx-dataview > .mx-dataview-content,
+.mx-window.mx-window-view .mx-window-body > .mx-placeholder > .mx-dataview > .mx-dataview-content {
+ padding: 20px;
+}
+.mx-window.mx-window-view .mx-window-body > .mx-dataview > .mx-dataview-controls,
+.mx-window.mx-window-view .mx-window-body > .mx-placeholder > .mx-dataview > .mx-dataview-controls {
+ display: flex;
+ justify-content: flex-end;
+ margin: 0;
+ padding: 20px;
+ text-align: left;
+ border-top: 1px solid #ced0d3;
+}
+.mx-window .mx-dataview-controls {
+ padding-bottom: 0;
+}
+.mx-window .mx-layoutgrid {
+ padding-right: 0;
+ padding-left: 0;
+}
+
+.mx-dialog .modal-body {
+ padding: 24px;
+}
+
+.mx-login .modal-body {
+ padding: 0 15px;
+}
+.mx-login .modal-content input {
+ height: 56px;
+ padding: 12px 12px;
+ border: 1px solid #eeeeee;
+ background: #eeeeee;
+ box-shadow: none;
+ font-size: 16px;
+}
+.mx-login .modal-content input:focus {
+ border-color: #66afe9;
+}
+.mx-login .modal-header,
+.mx-login .modal-footer {
+ border: 0;
+}
+.mx-login button {
+ font-size: 16px;
+}
+.mx-login h4 {
+ color: #aaaaaa;
+ font-size: 20px;
+ font-weight: bold;
+}
+
+/* ==========================================================================
+ Navigation
+
+ Default Mendix navigation bar
+========================================================================== */
+.mx-navbar {
+ margin: 0;
+ border-style: none;
+ border-radius: 0;
+ background-color: #24276c;
+ /* remove focus */
+}
+.mx-navbar ul.nav {
+ margin: 0;
+ /* Navigation item */
+ /* When hovering or the dropdown is open */
+}
+.mx-navbar ul.nav > li.mx-navbar-item > a {
+ display: flex;
+ align-items: center;
+ padding: 8px;
+ vertical-align: middle;
+ color: #fff;
+ border-radius: 0;
+ font-size: 14px;
+ font-weight: normal;
+ border-radius: 4px;
+ /* Dropdown arrow */
+ /* Dropdown */
+}
+.mx-navbar ul.nav > li.mx-navbar-item > a .caret {
+ border-top-color: #fff;
+ border-bottom-color: #fff;
+}
+.mx-navbar ul.nav > li.mx-navbar-item > a:hover, .mx-navbar ul.nav > li.mx-navbar-item > a:focus, .mx-navbar ul.nav > li.mx-navbar-item > a.active {
+ text-decoration: none;
+ color: #fff;
+ background-color: #292d7b;
+}
+.mx-navbar ul.nav > li.mx-navbar-item > a:hover .caret, .mx-navbar ul.nav > li.mx-navbar-item > a:focus .caret, .mx-navbar ul.nav > li.mx-navbar-item > a.active .caret {
+ border-top-color: #fff;
+ border-bottom-color: #fff;
+}
+.mx-navbar ul.nav > li.mx-navbar-item > a.active {
+ color: #fff;
+ background-color: #2e328b;
+ opacity: 1;
+}
+.mx-navbar ul.nav > li.mx-navbar-item > a .mx-navbar-submenu::before {
+ position: absolute;
+ top: -9px;
+ left: 15px;
+ width: 0;
+ height: 0;
+ content: "";
+ transform: rotate(360deg);
+ border-width: 0 9px 9px 9px;
+ border-style: solid;
+ border-color: transparent transparent #292d7b transparent;
+}
+.mx-navbar ul.nav > li.mx-navbar-item > a img {
+ width: 20px;
+ height: auto;
+ margin-right: 0.5em;
+}
+.mx-navbar ul.nav > li.mx-navbar-item > a .glyphicon {
+ top: 0;
+ margin-right: 0.5em;
+ vertical-align: middle;
+ font-size: 20px;
+}
+.mx-navbar ul.nav > .mx-navbar-item.active a {
+ color: #fff;
+}
+.mx-navbar ul.nav > .mx-navbar-item > a:hover, .mx-navbar ul.nav > .mx-navbar-item > a:focus, .mx-navbar ul.nav > .mx-navbar-item.open > a, .mx-navbar ul.nav > .mx-navbar-item.open > a:hover, .mx-navbar ul.nav > .mx-navbar-item.open > a:focus {
+ text-decoration: none;
+ color: #fff;
+ background-color: #292d7b;
+}
+.mx-navbar ul.nav > .mx-navbar-item > a:hover .caret, .mx-navbar ul.nav > .mx-navbar-item > a:focus .caret, .mx-navbar ul.nav > .mx-navbar-item.open > a .caret, .mx-navbar ul.nav > .mx-navbar-item.open > a:hover .caret, .mx-navbar ul.nav > .mx-navbar-item.open > a:focus .caret {
+ border-top-color: #fff;
+ border-bottom-color: #fff;
+}
+.mx-navbar ul.nav > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a {
+ color: #fff;
+ background-color: #1f215d;
+}
+.mx-navbar ul.nav > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a .caret {
+ border-top-color: #fff;
+ border-bottom-color: #fff;
+}
+@media (max-width: 768px) {
+ .mx-navbar ul.nav > li.mx-navbar-item > a {
+ padding: 10px 24px;
+ }
+ .mx-navbar .mx-navbar-item.open .dropdown-menu {
+ padding: 0;
+ border-radius: 0;
+ background-color: #1f215d;
+ }
+ .mx-navbar .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem > a {
+ padding: 10px 24px;
+ color: #fff;
+ border-radius: 0;
+ font-size: 12px;
+ font-weight: normal;
+ }
+ .mx-navbar .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem > a:hover, .mx-navbar .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem > a:focus {
+ color: #fff;
+ background-color: #1f215d;
+ }
+ .mx-navbar .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem > a.active {
+ color: #fff;
+ background-color: #1f215d;
+ }
+}
+.mx-navbar:focus {
+ outline: 0;
+}
+
+/* ==========================================================================
+ Navigation
+
+//== Regions
+//## Behavior in the different regions
+========================================================================== */
+.region-topbar .mx-navbar {
+ background-color: #020557;
+ min-height: auto;
+}
+.region-topbar .mx-navbar ul.nav {
+ /* Navigation item */
+ /* When hovering or the dropdown is open */
+}
+.region-topbar .mx-navbar ul.nav > .mx-navbar-item {
+ margin-left: 8px;
+}
+.region-topbar .mx-navbar ul.nav > li.mx-navbar-item > a {
+ color: #fff;
+ font-size: 14px;
+ line-height: 1.2;
+ /* Dropdown arrow */
+ /* Dropdown */
+}
+.region-topbar .mx-navbar ul.nav > li.mx-navbar-item > a .caret {
+ border-top-color: #fff;
+ border-bottom-color: #fff;
+}
+.region-topbar .mx-navbar ul.nav > li.mx-navbar-item > a:hover, .region-topbar .mx-navbar ul.nav > li.mx-navbar-item > a:focus, .region-topbar .mx-navbar ul.nav > li.mx-navbar-item > a.active {
+ color: #fff;
+ background-color: #282b70;
+}
+.region-topbar .mx-navbar ul.nav > li.mx-navbar-item > a:hover .caret, .region-topbar .mx-navbar ul.nav > li.mx-navbar-item > a:focus .caret, .region-topbar .mx-navbar ul.nav > li.mx-navbar-item > a.active .caret {
+ border-top-color: #fff;
+ border-bottom-color: #fff;
+}
+.region-topbar .mx-navbar ul.nav > li.mx-navbar-item > a.active {
+ color: #fff;
+ background-color: #282b70;
+}
+.region-topbar .mx-navbar ul.nav > li.mx-navbar-item > a .mx-navbar-submenu::before {
+ border-color: transparent transparent #ced0d3 transparent;
+}
+.region-topbar .mx-navbar ul.nav > li.mx-navbar-item > a .glyphicon {
+ font-size: 1.2em;
+}
+.region-topbar .mx-navbar ul.nav > .mx-navbar-item > a:hover, .region-topbar .mx-navbar ul.nav > .mx-navbar-item > a:focus, .region-topbar .mx-navbar ul.nav > .mx-navbar-item.active a, .region-topbar .mx-navbar ul.nav > .mx-navbar-item.open > a, .region-topbar .mx-navbar ul.nav > .mx-navbar-item.open > a:hover, .region-topbar .mx-navbar ul.nav > .mx-navbar-item.open > a:focus {
+ color: #fff;
+ background-color: #282b70;
+}
+.region-topbar .mx-navbar ul.nav > .mx-navbar-item > a:hover .caret, .region-topbar .mx-navbar ul.nav > .mx-navbar-item > a:focus .caret, .region-topbar .mx-navbar ul.nav > .mx-navbar-item.active a .caret, .region-topbar .mx-navbar ul.nav > .mx-navbar-item.open > a .caret, .region-topbar .mx-navbar ul.nav > .mx-navbar-item.open > a:hover .caret, .region-topbar .mx-navbar ul.nav > .mx-navbar-item.open > a:focus .caret {
+ border-top-color: #fff;
+ border-bottom-color: #fff;
+}
+.region-topbar .mx-navbar ul.nav > .mx-navbar-item.open .dropdown-menu {
+ border-radius: 4px;
+ background-color: #020557;
+ padding: 8px 8px 0;
+ margin: 0;
+ border: 0;
+ box-shadow: 0px 2px 2px rgba(194, 196, 201, 0.30354);
+}
+.region-topbar .mx-navbar ul.nav > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem a {
+ padding: 8px;
+ color: #fff;
+ border-radius: 4px;
+ margin-bottom: 8px;
+ line-height: 1.2;
+}
+.region-topbar .mx-navbar ul.nav > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem a:hover, .region-topbar .mx-navbar ul.nav > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem a:focus {
+ color: #fff;
+ background-color: #282b70;
+}
+.region-topbar .mx-navbar ul.nav > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a {
+ color: #fff;
+ background-color: #282b70;
+}
+.region-topbar .mx-navbar ul.nav > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a .caret {
+ border-top-color: #fff;
+ border-bottom-color: #fff;
+}
+@media (max-width: 768px) {
+ .region-topbar .mx-navbar .mx-navbar-item.open .dropdown-menu {
+ background-color: #020557;
+ }
+ .region-topbar .mx-navbar .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem > a {
+ color: #fff;
+ font-size: 12px;
+ }
+ .region-topbar .mx-navbar .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem > a:hover, .region-topbar .mx-navbar .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem > a:focus {
+ color: #fff;
+ background-color: #282b70;
+ }
+ .region-topbar .mx-navbar .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem > a.active {
+ color: #fff;
+ background-color: #282b70;
+ }
+}
+
+.region-sidebar .mx-navbar {
+ background-color: #24276c;
+}
+.region-sidebar .mx-navbar ul.nav {
+ /* Navigation item */
+ /* When hovering or the dropdown is open */
+}
+.region-sidebar .mx-navbar ul.nav > li.mx-navbar-item > a {
+ color: #fff;
+ font-size: 14px;
+ /* Dropdown arrow */
+ /* Dropdown */
+}
+.region-sidebar .mx-navbar ul.nav > li.mx-navbar-item > a .caret {
+ border-top-color: #fff;
+ border-bottom-color: #fff;
+}
+.region-sidebar .mx-navbar ul.nav > li.mx-navbar-item > a:hover, .region-sidebar .mx-navbar ul.nav > li.mx-navbar-item > a:focus, .region-sidebar .mx-navbar ul.nav > li.mx-navbar-item > a.active {
+ color: #fff;
+ background-color: #171946;
+}
+.region-sidebar .mx-navbar ul.nav > li.mx-navbar-item > a:hover .caret, .region-sidebar .mx-navbar ul.nav > li.mx-navbar-item > a:focus .caret, .region-sidebar .mx-navbar ul.nav > li.mx-navbar-item > a.active .caret {
+ border-top-color: #fff;
+ border-bottom-color: #fff;
+}
+.region-sidebar .mx-navbar ul.nav > li.mx-navbar-item > a.active {
+ color: #fff;
+ background-color: #171946;
+}
+.region-sidebar .mx-navbar ul.nav > li.mx-navbar-item > a .mx-navbar-submenu::before {
+ border-color: transparent transparent #171946 transparent;
+}
+.region-sidebar .mx-navbar ul.nav > li.mx-navbar-item > a .glyphicon {
+ font-size: 20px;
+}
+.region-sidebar .mx-navbar ul.nav > .mx-navbar-item > a:hover, .region-sidebar .mx-navbar ul.nav > .mx-navbar-item > a:focus, .region-sidebar .mx-navbar ul.nav > .mx-navbar-item.active a, .region-sidebar .mx-navbar ul.nav > .mx-navbar-item.open > a, .region-sidebar .mx-navbar ul.nav > .mx-navbar-item.open > a:hover, .region-sidebar .mx-navbar ul.nav > .mx-navbar-item.open > a:focus {
+ color: #fff;
+ background-color: #171946;
+}
+.region-sidebar .mx-navbar ul.nav > .mx-navbar-item > a:hover .caret, .region-sidebar .mx-navbar ul.nav > .mx-navbar-item > a:focus .caret, .region-sidebar .mx-navbar ul.nav > .mx-navbar-item.active a .caret, .region-sidebar .mx-navbar ul.nav > .mx-navbar-item.open > a .caret, .region-sidebar .mx-navbar ul.nav > .mx-navbar-item.open > a:hover .caret, .region-sidebar .mx-navbar ul.nav > .mx-navbar-item.open > a:focus .caret {
+ border-top-color: #fff;
+ border-bottom-color: #fff;
+}
+.region-sidebar .mx-navbar ul.nav > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a {
+ color: #fff;
+ background-color: #24276c;
+}
+.region-sidebar .mx-navbar ul.nav > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a .caret {
+ border-top-color: #fff;
+ border-bottom-color: #fff;
+}
+@media (max-width: 768px) {
+ .region-sidebar .mx-navbar .mx-navbar-item.open .dropdown-menu {
+ background-color: #020557;
+ }
+ .region-sidebar .mx-navbar .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem > a {
+ color: #fff;
+ font-size: 12px;
+ }
+ .region-sidebar .mx-navbar .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem > a:hover, .region-sidebar .mx-navbar .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem > a:focus {
+ color: #fff;
+ background-color: #24276c;
+ }
+ .region-sidebar .mx-navbar .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem > a.active {
+ color: #fff;
+ background-color: #24276c;
+ }
+}
+
+.hide-icons.mx-navbar .glyphicon {
+ display: none;
+}
+
+/* ==========================================================================
+ Navigation list
+
+ Default Mendix navigation list widget. A navigation list can be used to attach an action to an entire row. Such a row is called a navigation list item
+========================================================================== */
+.mx-navigationlist {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+.mx-navigationlist li.mx-navigationlist-item {
+ transition: all 0.3s 0s cubic-bezier(0.4, 0, 0.2, 1);
+ transform-style: initial;
+ padding: 16px;
+ border-width: 1px;
+ border-style: none none solid none;
+ border-color: #ced0d3;
+ border-radius: 0;
+ background-color: transparent;
+}
+.mx-navigationlist li.mx-navigationlist-item:hover, .mx-navigationlist li.mx-navigationlist-item:focus {
+ color: inherit;
+ background-color: #f5f6f6;
+}
+.mx-navigationlist li.mx-navigationlist-item.active {
+ color: inherit;
+ background-color: #f0f1f2;
+}
+
+/* ==========================================================================
+ Navigation
+
+ Default Mendix navigation tree
+========================================================================== */
+.mx-navigationtree {
+ background-color: #24276c;
+ /* Every navigation item */
+ /* Sub navigation item specific */
+ /* remove focus */
+}
+.mx-navigationtree .navbar-inner > ul {
+ margin: 0;
+ padding-left: 0;
+}
+.mx-navigationtree .navbar-inner > ul > li {
+ padding: 0;
+ border-style: none;
+}
+.mx-navigationtree .navbar-inner > ul > li > a {
+ display: flex;
+ align-items: center;
+ height: unset;
+ padding: 8px;
+ color: #fff;
+ background-color: #24276c;
+ text-shadow: none;
+ font-size: 14px;
+ font-weight: normal;
+}
+.mx-navigationtree .navbar-inner > ul > li > a .caret {
+ border-top-color: #fff;
+ border-bottom-color: #fff;
+}
+.mx-navigationtree .navbar-inner > ul > li > a img {
+ width: 20px;
+ height: auto;
+ margin-right: 0.5em;
+}
+.mx-navigationtree .navbar-inner > ul > li > a .glyphicon {
+ top: 0;
+ margin-right: 0.5em;
+ vertical-align: middle;
+ font-size: 20px;
+}
+.mx-navigationtree .navbar-inner > ul > li a:hover,
+.mx-navigationtree .navbar-inner > ul > li a:focus,
+.mx-navigationtree .navbar-inner > ul > li a.active {
+ text-decoration: none;
+ color: #fff;
+ background-color: #292d7b;
+}
+.mx-navigationtree .navbar-inner > ul > li a:hover .caret,
+.mx-navigationtree .navbar-inner > ul > li a:focus .caret,
+.mx-navigationtree .navbar-inner > ul > li a.active .caret {
+ border-top-color: #fff;
+ border-bottom-color: #fff;
+}
+.mx-navigationtree .navbar-inner > ul > li a.active {
+ color: #fff;
+ border-left-color: #fff;
+ background-color: #2e328b;
+}
+.mx-navigationtree li.mx-navigationtree-has-items > ul {
+ margin: 0;
+ padding-left: 0;
+ background-color: #1f215d;
+}
+.mx-navigationtree li.mx-navigationtree-has-items > ul li {
+ margin: 0;
+ padding: 0;
+ border: 0;
+}
+.mx-navigationtree li.mx-navigationtree-has-items > ul li a {
+ padding: 16px;
+ text-decoration: none;
+ color: #fff;
+ border: 0;
+ background-color: #1f215d;
+ text-shadow: none;
+ font-size: 12px;
+ font-weight: normal;
+}
+.mx-navigationtree li.mx-navigationtree-has-items > ul li a .glyphicon {
+ margin-right: 8px;
+}
+.mx-navigationtree li.mx-navigationtree-has-items > ul li a:hover, .mx-navigationtree li.mx-navigationtree-has-items > ul li a:focus, .mx-navigationtree li.mx-navigationtree-has-items > ul li a.active {
+ color: #fff;
+ outline: 0;
+ background-color: #1f215d;
+}
+.mx-navigationtree li.mx-navigationtree-has-items > ul li a.active {
+ color: #fff;
+ border: 0;
+ background-color: #1f215d;
+}
+.mx-navigationtree:focus {
+ outline: 0;
+}
+
+/* ==========================================================================
+ Navigation
+
+//== Regions
+//## Behavior in the different regions
+========================================================================== */
+.region-topbar .mx-navigationtree {
+ background-color: #020557;
+ /* Sub navigation item specific */
+}
+.region-topbar .mx-navigationtree .navbar-inner > ul > li > a {
+ color: #fff;
+ border-color: #ced0d3;
+ background-color: #020557;
+ font-size: 14px;
+}
+.region-topbar .mx-navigationtree .navbar-inner > ul > li > a .caret {
+ border-top-color: #fff;
+ border-bottom-color: #fff;
+}
+.region-topbar .mx-navigationtree .navbar-inner > ul > li > a .glyphicon {
+ font-size: 1.2em;
+}
+.region-topbar .mx-navigationtree .navbar-inner > ul > li a:hover,
+.region-topbar .mx-navigationtree .navbar-inner > ul > li a:focus,
+.region-topbar .mx-navigationtree .navbar-inner > ul > li a.active {
+ color: #fff;
+ background-color: #282b70;
+}
+.region-topbar .mx-navigationtree .navbar-inner > ul > li a:hover .caret,
+.region-topbar .mx-navigationtree .navbar-inner > ul > li a:focus .caret,
+.region-topbar .mx-navigationtree .navbar-inner > ul > li a.active .caret {
+ border-top-color: #fff;
+ border-bottom-color: #fff;
+}
+.region-topbar .mx-navigationtree .navbar-inner > ul > li a.active {
+ color: #fff;
+ border-left-color: #fff;
+ background-color: #282b70;
+}
+.region-topbar .mx-navigationtree li.mx-navigationtree-has-items > ul {
+ background-color: #020557;
+}
+.region-topbar .mx-navigationtree li.mx-navigationtree-has-items > ul li a {
+ color: #fff;
+ background-color: #020557;
+ font-size: 12px;
+}
+.region-topbar .mx-navigationtree li.mx-navigationtree-has-items > ul li a:hover, .region-topbar .mx-navigationtree li.mx-navigationtree-has-items > ul li a:focus, .region-topbar .mx-navigationtree li.mx-navigationtree-has-items > ul li a.active {
+ color: #fff;
+ background-color: #282b70;
+}
+.region-topbar .mx-navigationtree li.mx-navigationtree-has-items > ul li a.active {
+ color: #fff;
+ background-color: #282b70;
+}
+
+.region-sidebar .mx-navigationtree {
+ background-color: #24276c;
+ /* Sub navigation item specific */
+}
+.region-sidebar .mx-navigationtree .navbar-inner > ul > li > a {
+ color: #fff;
+ border-color: #171946;
+ background-color: #24276c;
+ font-size: 14px;
+}
+.region-sidebar .mx-navigationtree .navbar-inner > ul > li > a .caret {
+ border-top-color: #fff;
+ border-bottom-color: #fff;
+}
+.region-sidebar .mx-navigationtree .navbar-inner > ul > li > a .glyphicon {
+ font-size: 20px;
+}
+.region-sidebar .mx-navigationtree .navbar-inner > ul > li a:hover,
+.region-sidebar .mx-navigationtree .navbar-inner > ul > li a:focus,
+.region-sidebar .mx-navigationtree .navbar-inner > ul > li a.active {
+ color: #fff;
+ background-color: #171946;
+}
+.region-sidebar .mx-navigationtree .navbar-inner > ul > li a:hover .caret,
+.region-sidebar .mx-navigationtree .navbar-inner > ul > li a:focus .caret,
+.region-sidebar .mx-navigationtree .navbar-inner > ul > li a.active .caret {
+ border-top-color: #fff;
+ border-bottom-color: #fff;
+}
+.region-sidebar .mx-navigationtree .navbar-inner > ul > li a.active {
+ color: #fff;
+ border-left-color: #fff;
+ background-color: #171946;
+}
+.region-sidebar .mx-navigationtree li.mx-navigationtree-has-items > ul {
+ background-color: #171946;
+}
+.region-sidebar .mx-navigationtree li.mx-navigationtree-has-items > ul li a {
+ color: #fff;
+ background-color: #171946;
+ font-size: 12px;
+}
+.region-sidebar .mx-navigationtree li.mx-navigationtree-has-items > ul li a:hover, .region-sidebar .mx-navigationtree li.mx-navigationtree-has-items > ul li a:focus, .region-sidebar .mx-navigationtree li.mx-navigationtree-has-items > ul li a.active {
+ color: #fff;
+ background-color: #24276c;
+}
+.region-sidebar .mx-navigationtree li.mx-navigationtree-has-items > ul li a.active {
+ color: #fff;
+ background-color: #24276c;
+}
+
+.nav-content-center-text-icons.mx-navigationtree .navbar-inner ul a {
+ flex-direction: column;
+ justify-content: center;
+}
+.nav-content-center-text-icons.mx-navigationtree .navbar-inner ul a .glyphicon {
+ margin: 0 0 5px 0;
+}
+
+.nav-content-center.mx-navigationtree .navbar-inner ul a {
+ justify-content: center;
+}
+
+.hide-icons.mx-navigationtree .glyphicon {
+ display: none;
+}
+
+/* ==========================================================================
+ Pop-up menu
+
+ Default Mendix pop-up menu
+========================================================================== */
+.popupmenu {
+ position: relative;
+ display: inline-flex;
+}
+
+.popupmenu-trigger {
+ cursor: pointer;
+}
+
+.popupmenu-menu {
+ position: absolute;
+ z-index: 999;
+ display: none;
+ flex-direction: column;
+ width: max-content;
+ border-radius: 8px;
+ background-color: #f8f8f8;
+ box-shadow: 0 2px 20px 1px rgba(5, 15, 129, 0.05), 0 2px 16px 0 rgba(33, 43, 54, 0.08);
+}
+.popupmenu-menu.popupmenu-position-left {
+ top: 0;
+ left: 0;
+ transform: translateX(-100%);
+}
+.popupmenu-menu.popupmenu-position-right {
+ top: 0;
+ right: 0;
+ transform: translateX(100%);
+}
+.popupmenu-menu.popupmenu-position-top {
+ top: 0;
+ transform: translateY(-100%);
+}
+.popupmenu-menu.popupmenu-position-bottom {
+ bottom: 0;
+ transform: translateY(100%);
+}
+.popupmenu-menu .popupmenu-basic-item:first-child,
+.popupmenu-menu .popupmenu-custom-item:first-child {
+ border-top-left-radius: 8px;
+ border-top-right-radius: 8px;
+}
+.popupmenu-menu .popupmenu-basic-item:last-child,
+.popupmenu-menu .popupmenu-custom-item:last-child {
+ border-bottom-left-radius: 8px;
+ border-bottom-right-radius: 8px;
+}
+
+.popupmenu-basic-divider {
+ width: 100%;
+ height: 1px;
+ background-color: #e7e7e9;
+}
+
+.popupmenu-basic-item {
+ padding: 12px 16px;
+ color: #0a1325;
+ font-size: 14px;
+}
+.popupmenu-basic-item:hover, .popupmenu-basic-item:focus, .popupmenu-basic-item:active {
+ cursor: pointer;
+ border-color: #fff;
+ background-color: #fff;
+}
+.popupmenu-basic-item-inverse {
+ color: #24276c;
+}
+.popupmenu-basic-item-primary {
+ color: #264ae5;
+}
+.popupmenu-basic-item-info {
+ color: #0086d9;
+}
+.popupmenu-basic-item-success {
+ color: #3cb33d;
+}
+.popupmenu-basic-item-warning {
+ color: #eca51c;
+}
+.popupmenu-basic-item-danger {
+ color: #e33f4e;
+}
+
+.popupmenu-custom-item:hover, .popupmenu-custom-item:focus, .popupmenu-custom-item:active {
+ cursor: pointer;
+ border-color: #fff;
+ background-color: #fff;
+}
+
+/* ==========================================================================
+ Navigation
+
+ Default Mendix simple menu bar
+========================================================================== */
+.mx-menubar {
+ padding: 0;
+ background-color: #24276c;
+ /* remove focus */
+}
+.mx-menubar ul.mx-menubar-list {
+ display: flex;
+ width: 100%;
+ min-height: 58px;
+}
+.mx-menubar ul.mx-menubar-list li.mx-menubar-item {
+ margin: 0;
+}
+.mx-menubar ul.mx-menubar-list li.mx-menubar-item > a {
+ display: flex;
+ overflow: hidden;
+ align-items: center;
+ justify-content: center;
+ height: 100%;
+ padding: 8px;
+ white-space: nowrap;
+ color: #fff;
+ border-radius: 0;
+ font-size: 14px;
+ font-weight: normal;
+}
+.mx-menubar ul.mx-menubar-list li.mx-menubar-item > a img {
+ margin-right: 0.5em;
+}
+.mx-menubar ul.mx-menubar-list li.mx-menubar-item > a .glyphicon {
+ top: -1px;
+ margin-right: 0.5em;
+ vertical-align: middle;
+ font-size: 20px;
+}
+.mx-menubar ul.mx-menubar-list li.mx-menubar-item a:hover,
+.mx-menubar ul.mx-menubar-list li.mx-menubar-item a:focus, .mx-menubar ul.mx-menubar-list li.mx-menubar-item:hover a, .mx-menubar ul.mx-menubar-list li.mx-menubar-item:focus a, .mx-menubar ul.mx-menubar-list li.mx-menubar-item.active a {
+ text-decoration: none;
+ color: #fff;
+ background-color: #292d7b;
+}
+.mx-menubar ul.mx-menubar-list li.mx-menubar-item.active a {
+ color: #fff;
+ background-color: #2e328b;
+}
+.mx-menubar:focus {
+ outline: 0;
+}
+
+.mx-menubar-vertical {
+ background-color: #24276c;
+}
+.mx-menubar-vertical ul.mx-menubar-list {
+ display: flex;
+ flex-direction: column;
+}
+.mx-menubar-vertical ul.mx-menubar-list li.mx-menubar-item {
+ display: block;
+}
+.mx-menubar-vertical ul.mx-menubar-list li.mx-menubar-item a {
+ border-bottom: 1px solid #292d7b;
+}
+
+.mx-menubar-horizontal {
+ box-shadow: 2px 0 4px 0 rgba(0, 0, 0, 0.14);
+ /* Two menu items */
+ /* Three menu items */
+ /* Four menu items */
+ /* Five menu items */
+}
+.mx-menubar-horizontal ul.mx-menubar-list li.mx-menubar-item {
+ width: auto;
+}
+.mx-menubar-horizontal ul.mx-menubar-list li.mx-menubar-item a {
+ width: 100%;
+}
+.mx-menubar-horizontal.menubar-col-6 ul.mx-menubar-list li.mx-menubar-item {
+ width: 50%;
+}
+.mx-menubar-horizontal.menubar-col-4 ul.mx-menubar-list li.mx-menubar-item {
+ width: 33.33333333%;
+}
+.mx-menubar-horizontal.menubar-col-3 ul.mx-menubar-list li.mx-menubar-item {
+ width: 25%;
+}
+.mx-menubar-horizontal.menubar-col-2 ul.mx-menubar-list li.mx-menubar-item {
+ width: 20%;
+}
+
+.region-topbar .mx-menubar {
+ background-color: #020557;
+}
+.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a {
+ color: #fff;
+ font-size: 14px;
+}
+.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a .glyphicon {
+ font-size: 1.2em;
+}
+.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a:hover,
+.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a:focus, .region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item:hover a, .region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item:focus a, .region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item.active a {
+ color: #fff;
+ background-color: #282b70;
+}
+.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item.active a {
+ color: #fff;
+ background-color: #282b70;
+}
+.region-topbar .mx-menubar-vertical {
+ background-color: #020557;
+}
+.region-topbar .mx-menubar-vertical ul.mx-menubar-list li.mx-menubar-item a {
+ height: unset;
+ border-color: #ced0d3;
+}
+
+.region-sidebar .mx-menubar {
+ background-color: #24276c;
+}
+.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a {
+ color: #fff;
+ font-size: 14px;
+}
+.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a .glyphicon {
+ font-size: 20px;
+}
+.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a:hover,
+.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a:focus, .region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item:hover a, .region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item:focus a, .region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item.active a {
+ color: #fff;
+ background-color: #171946;
+}
+.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item.active a {
+ color: #fff;
+ background-color: #171946;
+}
+.region-sidebar .mx-menubar-vertical {
+ background-color: #24276c;
+}
+.region-sidebar .mx-menubar-vertical ul.mx-menubar-list li.mx-menubar-item a {
+ border-color: #171946;
+}
+
+@supports (padding-bottom: env(safe-area-inset-bottom)) {
+ .mx-menubar {
+ padding-bottom: env(safe-area-inset-bottom);
+ }
+}
+/* ==========================================================================
+ Navigation
+
+//== Design Properties
+//## Helper classes to change the look and feel of the component
+========================================================================== */
+.bottom-nav-text-icons.mx-menubar ul.mx-menubar-list li.mx-menubar-item {
+ flex: 1;
+}
+.bottom-nav-text-icons.mx-menubar ul.mx-menubar-list li.mx-menubar-item a {
+ flex-direction: column;
+ padding: 8px 8px 4px;
+ line-height: normal;
+ font-size: 12px;
+}
+.bottom-nav-text-icons.mx-menubar ul.mx-menubar-list li.mx-menubar-item a .glyphicon {
+ display: block;
+ margin: 0 0 4px 0;
+ font-size: 18px;
+}
+.bottom-nav-text-icons.mx-menubar ul.mx-menubar-list li.mx-menubar-item a img {
+ display: block;
+ height: 18px;
+ margin: 0 0 4px 0;
+}
+
+.hide-icons.mx-menubar .glyphicon {
+ display: none;
+}
+
+/* ==========================================================================
+ Radio button
+
+ Default Mendix radio button widget
+========================================================================== */
+.mx-radiobuttons.inline .mx-radiogroup {
+ display: flex;
+ flex-direction: row;
+}
+.mx-radiobuttons.inline .mx-radiogroup .radio {
+ margin: 0 20px 0 0;
+}
+
+.mx-radiobuttons .radio:last-child {
+ margin-bottom: 0;
+}
+
+.radio {
+ display: flex !important;
+ align-items: center;
+ margin-top: 0;
+}
+
+input[type=radio] {
+ position: relative !important;
+ width: 16px;
+ height: 16px;
+ margin: 0;
+ cursor: pointer;
+ -webkit-user-select: none;
+ user-select: none;
+ appearance: none;
+ -moz-appearance: none;
+ -webkit-appearance: none;
+}
+input[type=radio]:before, input[type=radio]:after {
+ position: absolute;
+ display: block;
+ transition: all 0.3s ease-in-out;
+ border-radius: 50%;
+}
+input[type=radio]:before {
+ width: 100%;
+ height: 100%;
+ content: "";
+ border: 1px solid #e7e7e9;
+ background-color: transparent;
+}
+input[type=radio]:after {
+ top: 50%;
+ left: 50%;
+ width: 50%;
+ height: 50%;
+ transform: translate(-50%, -50%);
+ pointer-events: none;
+ background-color: #264ae5;
+}
+input[type=radio]:not(:checked):after {
+ transform: translate(-50%, -50%) scale(0);
+ opacity: 0;
+}
+input[type=radio]:not(:disabled):not(:checked):hover:after {
+ background-color: #e7e7e9;
+}
+input[type=radio]:checked:after, input[type=radio]:not(:disabled):not(:checked):hover:after {
+ content: "";
+ transform: translate(-50%, -50%) scale(1);
+ opacity: 1;
+}
+input[type=radio]:checked:before {
+ border-color: #264ae5;
+ background-color: #fff;
+}
+input[type=radio]:disabled:before {
+ background-color: #f8f8f8;
+}
+input[type=radio]:checked:disabled:before {
+ border-color: rgba(38, 74, 229, 0.4);
+}
+input[type=radio]:checked:disabled:after {
+ background-color: rgba(38, 74, 229, 0.4);
+}
+input[type=radio] + label {
+ margin-left: 8px;
+}
+
+/* ==========================================================================
+ Tab Container
+
+ Default Mendix Tab Container Widget. Tab containers are used to show information categorized into multiple tab pages.
+ This can be very useful if the amount of information that has to be displayed is larger than the amount of space on the screen
+========================================================================== */
+.mx-tabcontainer .mx-tabcontainer-tabs {
+ margin-bottom: 16px;
+ border-color: #ced0d3;
+ display: flex;
+}
+.mx-tabcontainer .mx-tabcontainer-tabs > li {
+ float: none;
+}
+.mx-tabcontainer .mx-tabcontainer-tabs > li > a {
+ margin-right: 0;
+ transition: all 0.2s ease-in-out;
+ color: #6c717e;
+ font-weight: normal;
+ border-radius: 4px 4px 0 0;
+}
+.mx-tabcontainer .mx-tabcontainer-tabs > li > a:hover, .mx-tabcontainer .mx-tabcontainer-tabs > li > a:focus {
+ background-color: #dbdddf;
+}
+.mx-tabcontainer .mx-tabcontainer-tabs > li.active > a, .mx-tabcontainer .mx-tabcontainer-tabs > li.active > a:hover, .mx-tabcontainer .mx-tabcontainer-tabs > li.active > a:focus {
+ color: #0a1325;
+ border: 1px solid #ced0d3;
+ border-bottom-color: #fff;
+ background-color: transparent;
+}
+
+.tab-mobile.mx-tabcontainer > .mx-tabcontainer-tabs {
+ margin: 0;
+ text-align: center;
+ border-style: none;
+ background-color: #264ae5;
+}
+.tab-mobile.mx-tabcontainer > .mx-tabcontainer-tabs li {
+ display: table-cell;
+ float: none;
+ width: 1%;
+ margin: 0;
+ text-align: center;
+ border-style: none;
+ border-radius: 0;
+}
+.tab-mobile.mx-tabcontainer > .mx-tabcontainer-tabs li a {
+ padding: 16px;
+ text-transform: uppercase;
+ color: #ffffff;
+ border-width: 0 1px 0 0;
+ border-style: solid;
+ border-color: rgba(255, 255, 255, 0.3);
+ border-radius: 0;
+ font-size: 12px;
+ font-weight: normal;
+}
+.tab-mobile.mx-tabcontainer > .mx-tabcontainer-tabs li a:hover, .tab-mobile.mx-tabcontainer > .mx-tabcontainer-tabs li a:focus {
+ background-color: inherit;
+}
+.tab-mobile.mx-tabcontainer > .mx-tabcontainer-tabs li:last-child a {
+ border-right: none;
+}
+.tab-mobile.mx-tabcontainer > .mx-tabcontainer-tabs li.active > a, .tab-mobile.mx-tabcontainer > .mx-tabcontainer-tabs li.active > a:hover, .tab-mobile.mx-tabcontainer > .mx-tabcontainer-tabs li.active > a:focus {
+ color: #ffffff;
+ border-style: none;
+ border-radius: 0;
+ background-color: #1e3bb7;
+}
+
+.mx-tabcontainer-badge {
+ margin-left: 8px;
+ border-radius: 12px;
+ background-color: #264ae5;
+ color: #fff;
+ font-size: 12px;
+ font-weight: bold;
+ line-height: 1;
+ padding: 4px 8px;
+}
+
+/* ==========================================================================
+ Tab container
+
+//== Design Properties
+//## Helper classes to change the look and feel of the component
+========================================================================== */
+.tab-pills.mx-tabcontainer > .mx-tabcontainer-tabs {
+ border: 0;
+}
+.tab-pills.mx-tabcontainer > .mx-tabcontainer-tabs > li {
+ margin-bottom: 8px;
+}
+.tab-pills.mx-tabcontainer > .mx-tabcontainer-tabs > li > a {
+ margin-right: 8px;
+ color: #6c717e;
+ border-radius: 4px;
+ background-color: #e7e7e9;
+}
+.tab-pills.mx-tabcontainer > .mx-tabcontainer-tabs > li > a:hover, .tab-pills.mx-tabcontainer > .mx-tabcontainer-tabs > li > a:focus {
+ background-color: #dbdddf;
+}
+.tab-pills.mx-tabcontainer > .mx-tabcontainer-tabs > li.active > a, .tab-pills.mx-tabcontainer > .mx-tabcontainer-tabs > li.active > a:hover, .tab-pills.mx-tabcontainer > .mx-tabcontainer-tabs > li.active > a:focus {
+ color: #ffffff;
+ border-color: #264ae5;
+ background-color: #264ae5;
+}
+
+.tab-lined.mx-tabcontainer > .mx-tabcontainer-tabs {
+ border-width: 1px;
+}
+.tab-lined.mx-tabcontainer > .mx-tabcontainer-tabs li {
+ margin-right: 24px;
+}
+.tab-lined.mx-tabcontainer > .mx-tabcontainer-tabs li > a {
+ padding: 16px 0 13px 0;
+ color: #6c717e;
+ border: 0;
+ border-bottom: 3px solid transparent;
+ border-radius: 0;
+}
+.tab-lined.mx-tabcontainer > .mx-tabcontainer-tabs li > a:hover, .tab-lined.mx-tabcontainer > .mx-tabcontainer-tabs li > a:focus {
+ color: #6c717e;
+ border: 0;
+ border-color: transparent;
+ background: transparent;
+}
+.tab-lined.mx-tabcontainer > .mx-tabcontainer-tabs li.active > a, .tab-lined.mx-tabcontainer > .mx-tabcontainer-tabs li.active > a:hover, .tab-lined.mx-tabcontainer > .mx-tabcontainer-tabs li.active > a:focus {
+ color: #0a1325;
+ border: 0;
+ border-bottom: 3px solid #264ae5;
+ background-color: transparent;
+}
+
+.tab-justified.mx-tabcontainer > .mx-tabcontainer-tabs {
+ width: 100%;
+ border-bottom: 0;
+}
+.tab-justified.mx-tabcontainer > .mx-tabcontainer-tabs > li {
+ flex: 1;
+ float: none;
+ margin: 0;
+}
+@media (max-width: calc(768px - 1px)) {
+ .tab-justified.mx-tabcontainer > .mx-tabcontainer-tabs > li {
+ display: block;
+ width: 100%;
+ }
+}
+.tab-justified.mx-tabcontainer > .mx-tabcontainer-tabs > li > a {
+ text-align: center;
+}
+
+.tab-bordered.mx-tabcontainer > .mx-tabcontainer-tabs {
+ margin: 0;
+}
+.tab-bordered.mx-tabcontainer > .mx-tabcontainer-content {
+ padding: 8px;
+ border-width: 0 1px 1px 1px;
+ border-style: solid;
+ border-color: #ced0d3;
+ background-color: transparent;
+}
+
+.tab-wizard.mx-tabcontainer > .mx-tabcontainer-tabs {
+ position: relative;
+ display: flex;
+ justify-content: space-between;
+ border-style: none;
+}
+.tab-wizard.mx-tabcontainer > .mx-tabcontainer-tabs::before {
+ position: absolute;
+ top: 16px;
+ display: block;
+ width: 100%;
+ height: 1px;
+ content: "";
+ background-color: #ced0d3;
+}
+.tab-wizard.mx-tabcontainer > .mx-tabcontainer-tabs > li {
+ position: relative;
+ float: none;
+ width: 100%;
+ text-align: center;
+}
+.tab-wizard.mx-tabcontainer > .mx-tabcontainer-tabs > li > a {
+ width: calc((16px * 2) + 1px);
+ height: calc((16px * 2) + 1px);
+ margin: auto;
+ padding: 0;
+ text-align: center;
+ color: #264ae5;
+ border: 1px solid #ced0d3;
+ border-radius: 100%;
+ background-color: #f8f8f8;
+ font-size: 18px;
+ font-weight: bold;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.tab-wizard.mx-tabcontainer > .mx-tabcontainer-tabs > li.active > a, .tab-wizard.mx-tabcontainer > .mx-tabcontainer-tabs > li.active > a:hover, .tab-wizard.mx-tabcontainer > .mx-tabcontainer-tabs > li.active > a:focus {
+ color: #ffffff;
+ border-color: #264ae5;
+ background-color: #264ae5;
+}
+
+.tab-center.mx-tabcontainer > .mx-tabcontainer-tabs {
+ display: flex;
+ align-items: center;
+ flex-flow: wrap;
+ justify-content: center;
+}
+
+.tab-left.mx-tabcontainer > .mx-tabcontainer-tabs {
+ display: flex;
+ align-items: center;
+ flex-flow: wrap;
+ justify-content: flex-start;
+}
+
+.tab-right.mx-tabcontainer > .mx-tabcontainer-tabs {
+ display: flex;
+ align-items: center;
+ flex-flow: wrap;
+ justify-content: flex-end;
+}
+
+/* ==========================================================================
+ Table
+
+ Default Mendix table widget. Tables can be used to lend structure to a page. They contain a number of rows (tr) and columns, the intersection of which is called a cell (td). Each cell can contain widgets
+========================================================================== */
+th {
+ font-weight: bold;
+}
+
+html body .mx-page table.mx-table th.nopadding,
+html body .mx-page table.mx-table td.nopadding {
+ padding: 0;
+}
+
+table.mx-table > tbody {
+ /* Table row */
+}
+table.mx-table > tbody > tr {
+ /* Table header */
+ /* Table cells */
+}
+table.mx-table > tbody > tr > th {
+ padding: 8px 8px 8px 8px;
+}
+table.mx-table > tbody > tr > th s * {
+ color: #0a1325;
+ font-weight: bold;
+ font-weight: 600;
+}
+table.mx-table > tbody > tr > th > label {
+ padding-top: 8px;
+ padding-bottom: 6px;
+}
+table.mx-table > tbody > tr > td {
+ padding: 8px 8px 8px 8px;
+}
+table.mx-table > tbody > tr > td > div > label,
+table.mx-table > tbody > tr > td .mx-referenceselector-input-wrapper label {
+ padding-top: 8px;
+ padding-bottom: 6px;
+}
+
+.mx-templategrid table.mx-table > tbody > tr > th,
+.mx-templategrid table.mx-table > tbody > tr > td {
+ padding: 8px 8px 8px 8px;
+}
+
+.mx-list table.mx-table > tbody > tr > th,
+.mx-list table.mx-table > tbody > tr > td {
+ padding: 8px 8px 8px 8px;
+}
+
+/* ==========================================================================
+ Table
+
+//== Design Properties
+//## Helper classes to change the look and feel of the component
+========================================================================== */
+table.table-lined.mx-table > tbody > tr > td {
+ border-width: 1px 0;
+ border-style: solid;
+ border-color: #ced0d3;
+}
+
+table.table-bordered.mx-table > tbody > tr > th,
+table.table-bordered.mx-table > tbody > tr > td {
+ border-width: 1px;
+ border-style: solid;
+ border-color: #ced0d3;
+}
+
+table.table-compact.mx-table > tbody > tr > th,
+table.table-compact.mx-table > tbody > tr > td {
+ padding-top: 2px;
+ padding-bottom: 2px;
+}
+
+table.table-vertical.mx-table > tbody > tr > th {
+ padding-bottom: 0;
+}
+table.table-vertical.mx-table > tbody > tr > th > label {
+ padding: 0;
+}
+table.table-vertical.mx-table > tbody > tr > th > div > label {
+ padding: 0;
+}
+
+table.table-align-vertical-middle.mx-table > tbody > tr > th,
+table.table-align-vertical-middle.mx-table > tbody > tr > td {
+ vertical-align: middle;
+}
+
+table.table-label-compact.mx-table > tbody > tr > th > label,
+table.table-label-compact.mx-table > tbody > tr > td > label {
+ margin: 0;
+ padding: 0;
+}
+table.table-label-compact.mx-table > tbody > tr > th > div > label,
+table.table-label-compact.mx-table > tbody > tr > th .mx-referenceselector-input-wrapper label,
+table.table-label-compact.mx-table > tbody > tr > td > div > label,
+table.table-label-compact.mx-table > tbody > tr > td .mx-referenceselector-input-wrapper label {
+ margin: 0;
+ padding: 0;
+}
+
+table.table-row-s.mx-table > tbody > tr > th,
+table.table-row-s.mx-table > tbody > tr > td {
+ height: 55px;
+}
+
+table.table-row-m.mx-table > tbody > tr > th,
+table.table-row-m.mx-table > tbody > tr > td {
+ height: 70px;
+}
+
+table.table-row-l.mx-table > tbody > tr > th,
+table.table-row-l.mx-table > tbody > tr > td {
+ height: 120px;
+}
+
+table.table-fixed {
+ table-layout: fixed;
+}
+
+/* ==========================================================================
+ Template grid
+
+ Default Mendix template grid Widget. The template grid shows a list of objects in a tile view. For example, a template grid can show a list of products. The template grid has a lot in common with the data grid. The main difference is that the objects are shown in templates (a sort of small data view) instead of rows
+========================================================================== */
+.mx-templategrid .mx-templategrid-content-wrapper {
+ table-layout: fixed;
+}
+.mx-templategrid .mx-templategrid-item {
+ padding: 16px 16px 16px 16px;
+ cursor: default;
+ background-color: transparent;
+}
+.mx-templategrid .mx-templategrid-item:hover {
+ background-color: transparent;
+}
+.mx-templategrid .mx-templategrid-item.selected {
+ background-color: #f0f1f2 !important;
+}
+.mx-templategrid .mx-layoutgrid {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+}
+
+/* ==========================================================================
+ Template grid
+
+//== Design Properties
+//## Helper classes to change the look and feel of the component
+========================================================================== */
+.templategrid-selectable.mx-templategrid .mx-templategrid-item {
+ cursor: pointer;
+}
+
+.templategrid-lined.mx-templategrid .mx-grid-content {
+ border-top-width: 2px;
+ border-top-style: solid;
+ border-top-color: #ced0d3;
+}
+.templategrid-lined.mx-templategrid .mx-templategrid-item {
+ border-top: 1px solid #ced0d3;
+ border-right: none;
+ border-bottom: 1px solid #ced0d3;
+ border-left: none;
+}
+
+.templategrid-striped.mx-templategrid .mx-templategrid-row:nth-child(odd) .mx-templategrid-item {
+ background-color: #f9f9f9;
+}
+
+.templategrid-stylingless.mx-templategrid .mx-templategrid-item {
+ padding: 0;
+ cursor: default;
+ border: 0;
+ background-color: transparent;
+}
+.templategrid-stylingless.mx-templategrid .mx-templategrid-item:hover {
+ background-color: transparent;
+}
+.templategrid-stylingless.mx-templategrid .mx-templategrid-item.selected {
+ background-color: transparent !important;
+}
+.templategrid-stylingless.mx-templategrid .mx-templategrid-item.selected:hover {
+ background-color: transparent !important;
+}
+
+.templategrid-transparent.mx-templategrid .mx-templategrid-item {
+ border: 0;
+ background-color: transparent;
+}
+
+.templategrid-hover.mx-templategrid .mx-templategrid-item:hover {
+ background-color: #f5f6f6 !important;
+}
+.templategrid-hover.mx-templategrid .mx-templategrid-item.selected {
+ background-color: #f0f1f2 !important;
+}
+.templategrid-hover.mx-templategrid .mx-templategrid-item.selected:hover {
+ background-color: #e7e8e9 !important;
+}
+
+.templategrid-lg.mx-templategrid .mx-templategrid-item {
+ padding: 32px 32px 32px 32px;
+}
+
+.templategrid-sm.mx-templategrid .mx-templategrid-item {
+ padding: 8px 8px 8px 8px;
+}
+
+.mx-templategrid[class*=tg-col] {
+ overflow: hidden;
+}
+.mx-templategrid[class*=tg-col] .mx-templategrid-content-wrapper {
+ display: block;
+}
+.mx-templategrid[class*=tg-col] .mx-templategrid-row {
+ display: block;
+ margin-right: -8px;
+ margin-left: -8px;
+}
+.mx-templategrid[class*=tg-col] .mx-templategrid-row::before, .mx-templategrid[class*=tg-col] .mx-templategrid-row::after {
+ display: table;
+ clear: both;
+ content: " ";
+}
+.mx-templategrid[class*=tg-col] .mx-templategrid-item {
+ position: relative;
+ display: block;
+ float: left;
+ min-height: 1px;
+ padding-right: 8px;
+ padding-left: 8px;
+ border: 0;
+}
+@media (max-width: 992px) {
+ .mx-templategrid[class*=tg-col] .mx-templategrid-item {
+ width: 100% !important;
+ }
+}
+.mx-templategrid[class*=tg-col] .mx-templategrid-item .mx-dataview {
+ overflow: hidden;
+}
+.mx-templategrid[class*=tg-col].tg-col-xs-12 .mx-templategrid-item {
+ width: 100% !important;
+}
+.mx-templategrid[class*=tg-col].tg-col-xs-11 .mx-templategrid-item {
+ width: 91.66666667% !important;
+}
+.mx-templategrid[class*=tg-col].tg-col-xs-10 .mx-templategrid-item {
+ width: 83.33333333% !important;
+}
+.mx-templategrid[class*=tg-col].tg-col-xs-9 .mx-templategrid-item {
+ width: 75% !important;
+}
+.mx-templategrid[class*=tg-col].tg-col-xs-8 .mx-templategrid-item {
+ width: 66.66666667% !important;
+}
+.mx-templategrid[class*=tg-col].tg-col-xs-7 .mx-templategrid-item {
+ width: 58.33333333% !important;
+}
+.mx-templategrid[class*=tg-col].tg-col-xs-6 .mx-templategrid-item {
+ width: 50% !important;
+}
+.mx-templategrid[class*=tg-col].tg-col-xs-5 .mx-templategrid-item {
+ width: 41.66666667% !important;
+}
+.mx-templategrid[class*=tg-col].tg-col-xs-4 .mx-templategrid-item {
+ width: 33.33333333% !important;
+}
+.mx-templategrid[class*=tg-col].tg-col-xs-3 .mx-templategrid-item {
+ width: 25% !important;
+}
+.mx-templategrid[class*=tg-col].tg-col-xs-2 .mx-templategrid-item {
+ width: 16.66666667% !important;
+}
+.mx-templategrid[class*=tg-col].tg-col-xs-1 .mx-templategrid-item {
+ width: 8.33333333% !important;
+}
+@media (min-width: 768px) {
+ .mx-templategrid[class*=tg-col].tg-col-sm-12 .mx-templategrid-item {
+ width: 100% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-sm-11 .mx-templategrid-item {
+ width: 91.66666667% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-sm-10 .mx-templategrid-item {
+ width: 83.33333333% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-sm-9 .mx-templategrid-item {
+ width: 75% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-sm-8 .mx-templategrid-item {
+ width: 66.66666667% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-sm-7 .mx-templategrid-item {
+ width: 58.33333333% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-sm-6 .mx-templategrid-item {
+ width: 50% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-sm-5 .mx-templategrid-item {
+ width: 41.66666667% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-sm-4 .mx-templategrid-item {
+ width: 33.33333333% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-sm-3 .mx-templategrid-item {
+ width: 25% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-sm-2 .mx-templategrid-item {
+ width: 16.66666667% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-sm-1 .mx-templategrid-item {
+ width: 8.33333333% !important;
+ }
+}
+@media (min-width: 992px) {
+ .mx-templategrid[class*=tg-col].tg-col-md-12 .mx-templategrid-item {
+ width: 100% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-md-11 .mx-templategrid-item {
+ width: 91.66666667% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-md-10 .mx-templategrid-item {
+ width: 83.33333333% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-md-9 .mx-templategrid-item {
+ width: 75% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-md-8 .mx-templategrid-item {
+ width: 66.66666667% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-md-7 .mx-templategrid-item {
+ width: 58.33333333% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-md-6 .mx-templategrid-item {
+ width: 50% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-md-5 .mx-templategrid-item {
+ width: 41.66666667% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-md-4 .mx-templategrid-item {
+ width: 33.33333333% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-md-3 .mx-templategrid-item {
+ width: 25% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-md-2 .mx-templategrid-item {
+ width: 16.66666667% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-md-1 .mx-templategrid-item {
+ width: 8.33333333% !important;
+ }
+}
+@media (min-width: 1200px) {
+ .mx-templategrid[class*=tg-col].tg-col-lg-12 .mx-templategrid-item {
+ width: 100% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-lg-11 .mx-templategrid-item {
+ width: 91.66666667% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-lg-10 .mx-templategrid-item {
+ width: 83.33333333% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-lg-9 .mx-templategrid-item {
+ width: 75% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-lg-8 .mx-templategrid-item {
+ width: 66.66666667% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-lg-7 .mx-templategrid-item {
+ width: 58.33333333% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-lg-6 .mx-templategrid-item {
+ width: 50% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-lg-5 .mx-templategrid-item {
+ width: 41.66666667% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-lg-4 .mx-templategrid-item {
+ width: 33.33333333% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-lg-3 .mx-templategrid-item {
+ width: 25% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-lg-2 .mx-templategrid-item {
+ width: 16.66666667% !important;
+ }
+ .mx-templategrid[class*=tg-col].tg-col-lg-1 .mx-templategrid-item {
+ width: 8.33333333% !important;
+ }
+}
+
+/* ==========================================================================
+ Typography
+========================================================================== */
+p {
+ line-height: 1.7857142863;
+ margin: 0 0 8px;
+}
+
+.mx-title {
+ margin: 0 0 8px 0;
+ color: #0a1325;
+ font-size: 31px;
+ font-weight: 600;
+}
+
+h1,
+.h1,
+.h1 > * {
+ font-size: 31px;
+}
+
+h2,
+.h2,
+.h2 > * {
+ font-size: 26px;
+}
+
+h3,
+.h3,
+.h3 > * {
+ font-size: 24px;
+}
+
+h4,
+.h4,
+.h4 > * {
+ font-size: 18px;
+}
+
+h5, .widget-eventTime, .widget-timeline-title,
+.h5,
+.h5 > * {
+ font-size: 14px;
+}
+
+h6,
+.h6,
+.h6 > * {
+ font-size: 12px;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+.widget-eventTime,
+.widget-timeline-title,
+h6,
+.h1,
+.h2,
+.h3,
+.h4,
+.h5,
+.h6 {
+ margin: 0 0 8px 0;
+ color: #0a1325;
+ font-weight: 600;
+ line-height: 1.3;
+}
+
+/* ==========================================================================
+ Typography
+
+//== Design Properties
+//## Helper classes to change the look and feel of the component
+========================================================================== */
+.text-small {
+ font-size: 12px !important;
+}
+
+.text-large {
+ font-size: 18px !important;
+}
+
+.text-light,
+.text-light > *,
+.text-light label {
+ font-weight: 100 !important;
+}
+
+.text-normal,
+.text-normal > *,
+.text-normal label {
+ font-weight: normal !important;
+}
+
+.text-semibold,
+.text-semibold > *,
+.text-semibold label {
+ font-weight: 600 !important;
+}
+
+.text-bold,
+.text-bold > *,
+.text-bold label {
+ font-weight: bold !important;
+}
+
+.text-secondary,
+.text-secondary:hover,
+.text-default,
+.text-default:hover {
+ color: #0a1325 !important;
+}
+
+.text-primary,
+.text-primary:hover {
+ color: #264ae5 !important;
+}
+
+.text-info,
+.text-info:hover {
+ color: #0086d9 !important;
+}
+
+.text-success,
+.text-success:hover {
+ color: #3cb33d !important;
+}
+
+.text-warning,
+.text-warning:hover {
+ color: #eca51c !important;
+}
+
+.text-danger,
+.text-danger:hover {
+ color: #e33f4e !important;
+}
+
+.text-header {
+ color: #0a1325 !important;
+}
+
+.text-detail {
+ color: #6c717e !important;
+}
+
+.text-white {
+ color: #ffffff;
+}
+
+.text-left {
+ text-align: left !important;
+}
+
+.text-center {
+ text-align: center !important;
+}
+
+.text-right {
+ text-align: right !important;
+}
+
+.text-justify {
+ text-align: justify !important;
+}
+
+.text-lowercase {
+ text-transform: lowercase !important;
+}
+
+.text-uppercase {
+ text-transform: uppercase !important;
+}
+
+.text-capitalize {
+ text-transform: capitalize !important;
+}
+
+.text-break {
+ word-break: break-all !important;
+ word-break: break-word !important;
+ -webkit-hyphens: auto !important;
+ hyphens: auto !important;
+}
+
+.text-nowrap {
+ white-space: nowrap !important;
+}
+
+.text-nowrap {
+ overflow: hidden !important;
+ max-width: 100% !important;
+ white-space: nowrap !important;
+ text-overflow: ellipsis !important;
+}
+
+/* ==========================================================================
+ Layout grid
+
+ Default Bootstrap containers
+========================================================================== */
+.mx-layoutgrid {
+ width: 100%;
+ margin-right: auto;
+ margin-left: auto;
+ padding-right: 8px;
+ padding-left: 8px;
+}
+
+.row {
+ display: flex;
+ flex-wrap: wrap;
+ margin-right: -8px;
+ margin-left: -8px;
+}
+.row::before, .row::after {
+ content: normal;
+}
+
+.no-gutters {
+ margin-right: 0;
+ margin-left: 0;
+}
+
+.no-gutters > .col,
+.no-gutters > [class*=col-] {
+ padding-right: 0;
+ padding-left: 0;
+}
+
+.col-1,
+.col-2,
+.col-3,
+.col-4,
+.col-5,
+.col-6,
+.col-7,
+.col-8,
+.col-9,
+.col-10,
+.col-11,
+.col-12,
+.col,
+.col-auto,
+.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-sm,
+.col-sm-auto,
+.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-md,
+.col-md-auto,
+.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,
+.col-lg,
+.col-lg-auto,
+.col-xl-1,
+.col-xl-2,
+.col-xl-3,
+.col-xl-4,
+.col-xl-5,
+.col-xl-6,
+.col-xl-7,
+.col-xl-8,
+.col-xl-9,
+.col-xl-10,
+.col-xl-11,
+.col-xl-12,
+.col-xl,
+.col-xl-auto {
+ position: relative;
+ width: 100%;
+ padding-right: 8px;
+ padding-left: 8px;
+}
+
+.col {
+ flex-basis: 0;
+ flex-grow: 1;
+ max-width: 100%;
+}
+
+.col-auto {
+ flex: 0 0 auto;
+ width: auto;
+ max-width: 100%;
+}
+
+.col-1 {
+ flex: 0 0 8.333333%;
+ max-width: 8.333333%;
+}
+
+.col-2 {
+ flex: 0 0 16.666667%;
+ max-width: 16.666667%;
+}
+
+.col-3 {
+ flex: 0 0 25%;
+ max-width: 25%;
+}
+
+.col-4 {
+ flex: 0 0 33.333333%;
+ max-width: 33.333333%;
+}
+
+.col-5 {
+ flex: 0 0 41.666667%;
+ max-width: 41.666667%;
+}
+
+.col-6 {
+ flex: 0 0 50%;
+ max-width: 50%;
+}
+
+.col-7 {
+ flex: 0 0 58.333333%;
+ max-width: 58.333333%;
+}
+
+.col-8 {
+ flex: 0 0 66.666667%;
+ max-width: 66.666667%;
+}
+
+.col-9 {
+ flex: 0 0 75%;
+ max-width: 75%;
+}
+
+.col-10 {
+ flex: 0 0 83.333333%;
+ max-width: 83.333333%;
+}
+
+.col-11 {
+ flex: 0 0 91.666667%;
+ max-width: 91.666667%;
+}
+
+.col-12 {
+ flex: 0 0 100%;
+ max-width: 100%;
+}
+
+.order-first {
+ order: -1;
+}
+
+.order-last {
+ order: 13;
+}
+
+.order-0 {
+ order: 0;
+}
+
+.order-1 {
+ order: 1;
+}
+
+.order-2 {
+ order: 2;
+}
+
+.order-3 {
+ order: 3;
+}
+
+.order-4 {
+ order: 4;
+}
+
+.order-5 {
+ order: 5;
+}
+
+.order-6 {
+ order: 6;
+}
+
+.order-7 {
+ order: 7;
+}
+
+.order-8 {
+ order: 8;
+}
+
+.order-9 {
+ order: 9;
+}
+
+.order-10 {
+ order: 10;
+}
+
+.order-11 {
+ order: 11;
+}
+
+.order-12 {
+ order: 12;
+}
+
+.offset-1,
+.col-offset-1 {
+ margin-left: 8.333333%;
+}
+
+.offset-2,
+.col-offset-2 {
+ margin-left: 16.666667%;
+}
+
+.offset-3,
+.col-offset-3 {
+ margin-left: 25%;
+}
+
+.offset-4,
+.col-offset-4 {
+ margin-left: 33.333333%;
+}
+
+.offset-5,
+.col-offset-5 {
+ margin-left: 41.666667%;
+}
+
+.offset-6,
+.col-offset-6 {
+ margin-left: 50%;
+}
+
+.offset-7,
+.col-offset-7 {
+ margin-left: 58.333333%;
+}
+
+.offset-8,
+.col-offset-8 {
+ margin-left: 66.666667%;
+}
+
+.offset-9,
+.col-offset-9 {
+ margin-left: 75%;
+}
+
+.offset-10,
+.col-offset-10 {
+ margin-left: 83.333333%;
+}
+
+.offset-11,
+.col-offset-11 {
+ margin-left: 91.666667%;
+}
+
+@media (min-width: 576px) {
+ .mx-layoutgrid-fixed {
+ max-width: 540px;
+ }
+}
+@media (min-width: 768px) {
+ .mx-layoutgrid-fixed {
+ max-width: 720px;
+ }
+}
+@media (min-width: 992px) {
+ .mx-layoutgrid-fixed {
+ max-width: 960px;
+ }
+}
+@media (min-width: 1200px) {
+ .mx-layoutgrid-fixed {
+ max-width: 1140px;
+ }
+}
+@media (min-width: 576px) {
+ .col-sm {
+ flex-basis: 0;
+ flex-grow: 1;
+ max-width: 100%;
+ }
+
+ .col-sm-auto {
+ flex: 0 0 auto;
+ width: auto;
+ max-width: 100%;
+ }
+
+ .col-sm-1 {
+ flex: 0 0 8.333333%;
+ max-width: 8.333333%;
+ }
+
+ .col-sm-2 {
+ flex: 0 0 16.666667%;
+ max-width: 16.666667%;
+ }
+
+ .col-sm-3 {
+ flex: 0 0 25%;
+ max-width: 25%;
+ }
+
+ .col-sm-4 {
+ flex: 0 0 33.333333%;
+ max-width: 33.333333%;
+ }
+
+ .col-sm-5 {
+ flex: 0 0 41.666667%;
+ max-width: 41.666667%;
+ }
+
+ .col-sm-6 {
+ flex: 0 0 50%;
+ max-width: 50%;
+ }
+
+ .col-sm-7 {
+ flex: 0 0 58.333333%;
+ max-width: 58.333333%;
+ }
+
+ .col-sm-8 {
+ flex: 0 0 66.666667%;
+ max-width: 66.666667%;
+ }
+
+ .col-sm-9 {
+ flex: 0 0 75%;
+ max-width: 75%;
+ }
+
+ .col-sm-10 {
+ flex: 0 0 83.333333%;
+ max-width: 83.333333%;
+ }
+
+ .col-sm-11 {
+ flex: 0 0 91.666667%;
+ max-width: 91.666667%;
+ }
+
+ .col-sm-12 {
+ flex: 0 0 100%;
+ max-width: 100%;
+ }
+
+ .order-sm-first {
+ order: -1;
+ }
+
+ .order-sm-last {
+ order: 13;
+ }
+
+ .order-sm-0 {
+ order: 0;
+ }
+
+ .order-sm-1 {
+ order: 1;
+ }
+
+ .order-sm-2 {
+ order: 2;
+ }
+
+ .order-sm-3 {
+ order: 3;
+ }
+
+ .order-sm-4 {
+ order: 4;
+ }
+
+ .order-sm-5 {
+ order: 5;
+ }
+
+ .order-sm-6 {
+ order: 6;
+ }
+
+ .order-sm-7 {
+ order: 7;
+ }
+
+ .order-sm-8 {
+ order: 8;
+ }
+
+ .order-sm-9 {
+ order: 9;
+ }
+
+ .order-sm-10 {
+ order: 10;
+ }
+
+ .order-sm-11 {
+ order: 11;
+ }
+
+ .order-sm-12 {
+ order: 12;
+ }
+
+ .offset-sm-0,
+.col-sm-offset-0 {
+ margin-left: 0;
+ }
+
+ .offset-sm-1,
+.col-sm-offset-1 {
+ margin-left: 8.333333%;
+ }
+
+ .offset-sm-2,
+.col-sm-offset-2 {
+ margin-left: 16.666667%;
+ }
+
+ .offset-sm-3,
+.col-sm-offset-3 {
+ margin-left: 25%;
+ }
+
+ .offset-sm-4,
+.col-sm-offset-4 {
+ margin-left: 33.333333%;
+ }
+
+ .offset-sm-5,
+.col-sm-offset-5 {
+ margin-left: 41.666667%;
+ }
+
+ .offset-sm-6,
+.col-sm-offset-6 {
+ margin-left: 50%;
+ }
+
+ .offset-sm-7,
+.col-sm-offset-7 {
+ margin-left: 58.333333%;
+ }
+
+ .offset-sm-8,
+.col-sm-offset-8 {
+ margin-left: 66.666667%;
+ }
+
+ .offset-sm-9,
+.col-sm-offset-9 {
+ margin-left: 75%;
+ }
+
+ .offset-sm-10,
+.col-sm-offset-10 {
+ margin-left: 83.333333%;
+ }
+
+ .offset-sm-11,
+.col-sm-offset-11 {
+ margin-left: 91.666667%;
+ }
+}
+@media (min-width: 768px) {
+ .col-md {
+ flex-basis: 0;
+ flex-grow: 1;
+ max-width: 100%;
+ }
+
+ .col-md-auto {
+ flex: 0 0 auto;
+ width: auto;
+ max-width: 100%;
+ }
+
+ .col-md-1 {
+ flex: 0 0 8.333333%;
+ max-width: 8.333333%;
+ }
+
+ .col-md-2 {
+ flex: 0 0 16.666667%;
+ max-width: 16.666667%;
+ }
+
+ .col-md-3 {
+ flex: 0 0 25%;
+ max-width: 25%;
+ }
+
+ .col-md-4 {
+ flex: 0 0 33.333333%;
+ max-width: 33.333333%;
+ }
+
+ .col-md-5 {
+ flex: 0 0 41.666667%;
+ max-width: 41.666667%;
+ }
+
+ .col-md-6 {
+ flex: 0 0 50%;
+ max-width: 50%;
+ }
+
+ .col-md-7 {
+ flex: 0 0 58.333333%;
+ max-width: 58.333333%;
+ }
+
+ .col-md-8 {
+ flex: 0 0 66.666667%;
+ max-width: 66.666667%;
+ }
+
+ .col-md-9 {
+ flex: 0 0 75%;
+ max-width: 75%;
+ }
+
+ .col-md-10 {
+ flex: 0 0 83.333333%;
+ max-width: 83.333333%;
+ }
+
+ .col-md-11 {
+ flex: 0 0 91.666667%;
+ max-width: 91.666667%;
+ }
+
+ .col-md-12 {
+ flex: 0 0 100%;
+ max-width: 100%;
+ }
+
+ .order-md-first {
+ order: -1;
+ }
+
+ .order-md-last {
+ order: 13;
+ }
+
+ .order-md-0 {
+ order: 0;
+ }
+
+ .order-md-1 {
+ order: 1;
+ }
+
+ .order-md-2 {
+ order: 2;
+ }
+
+ .order-md-3 {
+ order: 3;
+ }
+
+ .order-md-4 {
+ order: 4;
+ }
+
+ .order-md-5 {
+ order: 5;
+ }
+
+ .order-md-6 {
+ order: 6;
+ }
+
+ .order-md-7 {
+ order: 7;
+ }
+
+ .order-md-8 {
+ order: 8;
+ }
+
+ .order-md-9 {
+ order: 9;
+ }
+
+ .order-md-10 {
+ order: 10;
+ }
+
+ .order-md-11 {
+ order: 11;
+ }
+
+ .order-md-12 {
+ order: 12;
+ }
+
+ .offset-md-0,
+.col-md-offset-0 {
+ margin-left: 0;
+ }
+
+ .offset-md-1,
+.col-md-offset-1 {
+ margin-left: 8.333333%;
+ }
+
+ .offset-md-2,
+.col-md-offset-2 {
+ margin-left: 16.666667%;
+ }
+
+ .offset-md-3,
+.col-md-offset-3 {
+ margin-left: 25%;
+ }
+
+ .offset-md-4,
+.col-md-offset-4 {
+ margin-left: 33.333333%;
+ }
+
+ .offset-md-5,
+.col-md-offset-5 {
+ margin-left: 41.666667%;
+ }
+
+ .offset-md-6,
+.col-md-offset-6 {
+ margin-left: 50%;
+ }
+
+ .offset-md-7,
+.col-md-offset-7 {
+ margin-left: 58.333333%;
+ }
+
+ .offset-md-8,
+.col-md-offset-8 {
+ margin-left: 66.666667%;
+ }
+
+ .offset-md-9,
+.col-md-offset-9 {
+ margin-left: 75%;
+ }
+
+ .offset-md-10,
+.col-md-offset-10 {
+ margin-left: 83.333333%;
+ }
+
+ .offset-md-11,
+.col-md-offset-11 {
+ margin-left: 91.666667%;
+ }
+}
+@media (min-width: 992px) {
+ .col-lg {
+ flex-basis: 0;
+ flex-grow: 1;
+ max-width: 100%;
+ }
+
+ .col-lg-auto {
+ flex: 0 0 auto;
+ width: auto;
+ max-width: 100%;
+ }
+
+ .col-lg-1 {
+ flex: 0 0 8.333333%;
+ max-width: 8.333333%;
+ }
+
+ .col-lg-2 {
+ flex: 0 0 16.666667%;
+ max-width: 16.666667%;
+ }
+
+ .col-lg-3 {
+ flex: 0 0 25%;
+ max-width: 25%;
+ }
+
+ .col-lg-4 {
+ flex: 0 0 33.333333%;
+ max-width: 33.333333%;
+ }
+
+ .col-lg-5 {
+ flex: 0 0 41.666667%;
+ max-width: 41.666667%;
+ }
+
+ .col-lg-6 {
+ flex: 0 0 50%;
+ max-width: 50%;
+ }
+
+ .col-lg-7 {
+ flex: 0 0 58.333333%;
+ max-width: 58.333333%;
+ }
+
+ .col-lg-8 {
+ flex: 0 0 66.666667%;
+ max-width: 66.666667%;
+ }
+
+ .col-lg-9 {
+ flex: 0 0 75%;
+ max-width: 75%;
+ }
+
+ .col-lg-10 {
+ flex: 0 0 83.333333%;
+ max-width: 83.333333%;
+ }
+
+ .col-lg-11 {
+ flex: 0 0 91.666667%;
+ max-width: 91.666667%;
+ }
+
+ .col-lg-12 {
+ flex: 0 0 100%;
+ max-width: 100%;
+ }
+
+ .order-lg-first {
+ order: -1;
+ }
+
+ .order-lg-last {
+ order: 13;
+ }
+
+ .order-lg-0 {
+ order: 0;
+ }
+
+ .order-lg-1 {
+ order: 1;
+ }
+
+ .order-lg-2 {
+ order: 2;
+ }
+
+ .order-lg-3 {
+ order: 3;
+ }
+
+ .order-lg-4 {
+ order: 4;
+ }
+
+ .order-lg-5 {
+ order: 5;
+ }
+
+ .order-lg-6 {
+ order: 6;
+ }
+
+ .order-lg-7 {
+ order: 7;
+ }
+
+ .order-lg-8 {
+ order: 8;
+ }
+
+ .order-lg-9 {
+ order: 9;
+ }
+
+ .order-lg-10 {
+ order: 10;
+ }
+
+ .order-lg-11 {
+ order: 11;
+ }
+
+ .order-lg-12 {
+ order: 12;
+ }
+
+ .offset-lg-0,
+.col-lg-offset-0 {
+ margin-left: 0;
+ }
+
+ .offset-lg-1,
+.col-lg-offset-1 {
+ margin-left: 8.333333%;
+ }
+
+ .offset-lg-2,
+.col-lg-offset-2 {
+ margin-left: 16.666667%;
+ }
+
+ .offset-lg-3,
+.col-lg-offset-3 {
+ margin-left: 25%;
+ }
+
+ .offset-lg-4,
+.col-lg-offset-4 {
+ margin-left: 33.333333%;
+ }
+
+ .offset-lg-5,
+.col-lg-offset-5 {
+ margin-left: 41.666667%;
+ }
+
+ .offset-lg-6,
+.col-lg-offset-6 {
+ margin-left: 50%;
+ }
+
+ .offset-lg-7,
+.col-lg-offset-7 {
+ margin-left: 58.333333%;
+ }
+
+ .offset-lg-8,
+.col-lg-offset-8 {
+ margin-left: 66.666667%;
+ }
+
+ .offset-lg-9,
+.col-lg-offset-9 {
+ margin-left: 75%;
+ }
+
+ .offset-lg-10,
+.col-lg-offset-10 {
+ margin-left: 83.333333%;
+ }
+
+ .offset-lg-11,
+.col-lg-offset-11 {
+ margin-left: 91.666667%;
+ }
+}
+@media (min-width: 1200px) {
+ .col-xl {
+ flex-basis: 0;
+ flex-grow: 1;
+ max-width: 100%;
+ }
+
+ .col-xl-auto {
+ flex: 0 0 auto;
+ width: auto;
+ max-width: 100%;
+ }
+
+ .col-xl-1 {
+ flex: 0 0 8.333333%;
+ max-width: 8.333333%;
+ }
+
+ .col-xl-2 {
+ flex: 0 0 16.666667%;
+ max-width: 16.666667%;
+ }
+
+ .col-xl-3 {
+ flex: 0 0 25%;
+ max-width: 25%;
+ }
+
+ .col-xl-4 {
+ flex: 0 0 33.333333%;
+ max-width: 33.333333%;
+ }
+
+ .col-xl-5 {
+ flex: 0 0 41.666667%;
+ max-width: 41.666667%;
+ }
+
+ .col-xl-6 {
+ flex: 0 0 50%;
+ max-width: 50%;
+ }
+
+ .col-xl-7 {
+ flex: 0 0 58.333333%;
+ max-width: 58.333333%;
+ }
+
+ .col-xl-8 {
+ flex: 0 0 66.666667%;
+ max-width: 66.666667%;
+ }
+
+ .col-xl-9 {
+ flex: 0 0 75%;
+ max-width: 75%;
+ }
+
+ .col-xl-10 {
+ flex: 0 0 83.333333%;
+ max-width: 83.333333%;
+ }
+
+ .col-xl-11 {
+ flex: 0 0 91.666667%;
+ max-width: 91.666667%;
+ }
+
+ .col-xl-12 {
+ flex: 0 0 100%;
+ max-width: 100%;
+ }
+
+ .order-xl-first {
+ order: -1;
+ }
+
+ .order-xl-last {
+ order: 13;
+ }
+
+ .order-xl-0 {
+ order: 0;
+ }
+
+ .order-xl-1 {
+ order: 1;
+ }
+
+ .order-xl-2 {
+ order: 2;
+ }
+
+ .order-xl-3 {
+ order: 3;
+ }
+
+ .order-xl-4 {
+ order: 4;
+ }
+
+ .order-xl-5 {
+ order: 5;
+ }
+
+ .order-xl-6 {
+ order: 6;
+ }
+
+ .order-xl-7 {
+ order: 7;
+ }
+
+ .order-xl-8 {
+ order: 8;
+ }
+
+ .order-xl-9 {
+ order: 9;
+ }
+
+ .order-xl-10 {
+ order: 10;
+ }
+
+ .order-xl-11 {
+ order: 11;
+ }
+
+ .order-xl-12 {
+ order: 12;
+ }
+
+ .offset-xl-0,
+.col-xl-offset-0 {
+ margin-left: 0;
+ }
+
+ .offset-xl-1,
+.col-xl-offset-1 {
+ margin-left: 8.333333%;
+ }
+
+ .offset-xl-2,
+.col-xl-offset-2 {
+ margin-left: 16.666667%;
+ }
+
+ .offset-xl-3,
+.col-xl-offset-3 {
+ margin-left: 25%;
+ }
+
+ .offset-xl-4,
+.col-xl-offset-4 {
+ margin-left: 33.333333%;
+ }
+
+ .offset-xl-5,
+.col-xl-offset-5 {
+ margin-left: 41.666667%;
+ }
+
+ .offset-xl-6,
+.col-xl-offset-6 {
+ margin-left: 50%;
+ }
+
+ .offset-xl-7,
+.col-xl-offset-7 {
+ margin-left: 58.333333%;
+ }
+
+ .offset-xl-8,
+.col-xl-offset-8 {
+ margin-left: 66.666667%;
+ }
+
+ .offset-xl-9,
+.col-xl-offset-9 {
+ margin-left: 75%;
+ }
+
+ .offset-xl-10,
+.col-xl-offset-10 {
+ margin-left: 83.333333%;
+ }
+
+ .offset-xl-11,
+.col-xl-offset-11 {
+ margin-left: 91.666667%;
+ }
+}
+/* ==========================================================================
+ Pagination
+
+ Default Mendix pagination widget.
+========================================================================== */
+.widget-pagination {
+ overflow: unset;
+}
+.widget-pagination .pagination {
+ overflow: unset;
+}
+.widget-pagination .pagination .btn:hover {
+ color: #264ae5;
+ background-color: #e7e7e9;
+}
+.widget-pagination .pagination .btn:focus {
+ outline: unset;
+ outline-offset: unset;
+ box-shadow: 0 0 0 0.3rem #a8b7f5;
+}
+.widget-pagination .pagination ul {
+ margin-top: unset;
+ margin-bottom: unset;
+}
+.widget-pagination .pagination ul li {
+ display: inline-flex;
+ align-items: center;
+ width: unset;
+ min-width: 24px;
+ min-height: 24px;
+ margin-right: 16px;
+ padding: 4px 8px;
+ transition: all 0.2s ease-in-out;
+ color: #0a1325;
+ border-radius: 4px;
+}
+.widget-pagination .pagination ul li:last-child {
+ margin-right: 0;
+}
+.widget-pagination .pagination ul li:not(.break-view):hover {
+ color: #264ae5;
+ background-color: #e7e7e9;
+}
+.widget-pagination .pagination ul li:not(.break-view):focus {
+ outline: unset;
+ outline-offset: unset;
+ box-shadow: 0 0 0 0.3rem #a8b7f5;
+}
+.widget-pagination .pagination ul li:not(.break-view).active {
+ color: #fff;
+ background-color: #264ae5;
+}
+.widget-pagination .pagination ul li:not(.break-view).active:hover {
+ color: #fff;
+ background-color: #1e3bb7;
+}
+
+/* ==========================================================================
+ Progress
+
+ Default Mendix progress widget.
+========================================================================== */
+.mx-progress {
+ color: #0a1325;
+ background: #fff;
+}
+.mx-progress .mx-progress-message {
+ color: #0a1325;
+}
+.mx-progress .mx-progress-indicator {
+ position: relative;
+ overflow: hidden;
+ width: 100%;
+ max-width: 100%;
+ height: 2px;
+ margin: auto;
+ padding: 0;
+ border-radius: 0;
+ background: #f8f8f8;
+}
+.mx-progress .mx-progress-indicator:before, .mx-progress .mx-progress-indicator:after {
+ position: absolute;
+ top: 0;
+ left: 0;
+ display: block;
+ width: 50%;
+ height: 2px;
+ content: "";
+ transform: translate3d(-100%, 0, 0);
+ background: #264ae5;
+}
+.mx-progress .mx-progress-indicator::before {
+ animation: loader 2s infinite;
+}
+.mx-progress .mx-progress-indicator::after {
+ animation: loader 2s -2s infinite;
+}
+
+@keyframes loader {
+ 0% {
+ transform: translate3d(-100%, 0, 0);
+ }
+ 100% {
+ transform: translate3d(200%, 0, 0);
+ }
+}
+/* ==========================================================================
+ Progress bar
+
+ Default Mendix progress bar widget.
+========================================================================== */
+.progress {
+ overflow: hidden;
+ display: flex;
+ flex-direction: row;
+}
+
+.progress-bar {
+ align-self: flex-start;
+ width: 0;
+ height: 100%;
+ transition: width 0.6s ease;
+ text-align: center;
+ color: #ffffff;
+ border-radius: 4px;
+ font-weight: 600;
+}
+
+.progress-striped .progress-bar,
+.progress-bar-striped {
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-size: 40px 40px;
+}
+
+.widget-progress-bar.active .progress-bar,
+.progress.active .progress-bar,
+.progress-bar.active {
+ animation: progress-bar-stripes 2s linear infinite;
+}
+
+@keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+/* ==========================================================================
+ Progress Bar
+
+//== Design Properties
+//## Helper classes to change the look and feel of the component
+========================================================================== */
+.widget-progress-bar {
+ width: 100%;
+}
+.widget-progress-bar .progress {
+ border-radius: 4px;
+ background-color: #f8f8f8;
+}
+
+.progress-bar-medium .progress,
+.progress-bar-medium .progress-bar {
+ height: 16px;
+ line-height: 16px;
+ font-size: 12px;
+}
+
+.progress-bar-small .progress,
+.progress-bar-small .progress-bar {
+ height: 8px;
+ line-height: 8px;
+ font-size: 0px;
+}
+
+.progress-bar-small .progress-bar > * {
+ display: none;
+}
+
+.progress-bar-large .progress,
+.progress-bar-large .progress-bar {
+ height: 24px;
+ line-height: 24px;
+ font-size: 14px;
+}
+
+.widget-progress-bar-clickable:hover {
+ cursor: pointer;
+}
+
+.widget-progress-bar.progress-bar-primary .progress-bar {
+ background-color: #264ae5;
+}
+
+.widget-progress-bar.progress-bar-success .progress-bar {
+ background-color: #3cb33d;
+}
+
+.widget-progress-bar.progress-bar-warning .progress-bar {
+ background-color: #eca51c;
+}
+
+.widget-progress-bar.progress-bar-danger .progress-bar {
+ background-color: #e33f4e;
+}
+
+.widget-progress-bar-alert.widget-progress-bar-text-contrast .progress-bar {
+ color: #88262f;
+}
+
+.widget-progress-bar-text-contrast .progress-bar {
+ color: #0a1325;
+}
+
+.widget-progress-bar-negative {
+ float: right;
+ display: block;
+}
+
+.widget-progress-bar > .alert {
+ margin-top: 24px;
+}
+
+/* ==========================================================================
+ Progress Circle
+
+ Default Mendix progress circle widget.
+========================================================================== */
+.widget-progress-circle {
+ display: inline-block;
+}
+
+.widget-progress-circle-trail-path {
+ stroke: #f8f8f8;
+}
+
+/* ==========================================================================
+ Progress Circle
+
+//== Design Properties
+//## Helper classes to change the look and feel of the component
+========================================================================== */
+.widget-progress-circle-primary .widget-progress-circle-path {
+ stroke: #264ae5;
+}
+.widget-progress-circle-primary .progressbar-text {
+ color: #264ae5 !important;
+}
+
+.widget-progress-circle-success .widget-progress-circle-path {
+ stroke: #3cb33d;
+}
+.widget-progress-circle-success .progressbar-text {
+ color: #3cb33d !important;
+}
+
+.widget-progress-circle-warning .widget-progress-circle-path {
+ stroke: #eca51c;
+}
+.widget-progress-circle-warning .progressbar-text {
+ color: #eca51c !important;
+}
+
+.widget-progress-circle-danger .widget-progress-circle-path {
+ stroke: #e33f4e;
+}
+.widget-progress-circle-danger .progressbar-text {
+ color: #e33f4e !important;
+}
+
+.widget-progress-circle-thickness-medium .widget-progress-circle-trail-path,
+.widget-progress-circle-thickness-medium .widget-progress-circle-path {
+ stroke-width: 8px;
+}
+
+.widget-progress-circle-thickness-small .widget-progress-circle-trail-path,
+.widget-progress-circle-thickness-small .widget-progress-circle-path {
+ stroke-width: 4px;
+}
+
+.widget-progress-circle-thickness-large .widget-progress-circle-trail-path,
+.widget-progress-circle-thickness-large .widget-progress-circle-path {
+ stroke-width: 16px;
+}
+
+.progress-circle-label-container {
+ position: relative;
+ margin: 0;
+}
+.progress-circle-label-container .progressbar-text {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ padding: 0px;
+ margin: 0px;
+ transform: translate(-50%, -50%);
+ color: rgb(85, 85, 85);
+}
+
+.widget-progress-circle-clickable {
+ cursor: pointer;
+}
+
+@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
+ .widget-progress-circle > div {
+ height: 0;
+ padding: 0;
+ width: 100%;
+ padding-bottom: 100%;
+ }
+ .widget-progress-circle > div > svg {
+ top: 0;
+ left: 0;
+ height: 100%;
+ position: absolute;
+ }
+}
+/* ==========================================================================
+ Rating
+
+ Default Mendix rating widget.
+========================================================================== */
+.widget-star-rating-empty {
+ color: #cccccc;
+}
+
+.widget-star-rating-full-widget {
+ color: #ffa611;
+}
+
+.widget-star-rating-full-default {
+ color: #ced0d3;
+}
+
+.widget-star-rating-font-medium {
+ font-size: 30px;
+}
+
+.widget-rating .rating-icon {
+ font-size: 24px;
+}
+.widget-rating .rating-icon-empty {
+ color: #ccc;
+}
+.widget-rating .rating-icon-full {
+ color: #ffa611;
+}
+.widget-rating .rating-item:focus:not(:focus-visible) .rating-image,
+.widget-rating .rating-item:focus:not(:focus-visible) .rating-icon {
+ outline: none;
+}
+.widget-rating .rating-item:focus-visible .rating-image,
+.widget-rating .rating-item:focus-visible .rating-icon {
+ outline: 1px solid #264ae5;
+}
+
+/* ==========================================================================
+ Rating
+
+//== Design Properties
+//## Helper classes to change the look and feel of the component
+========================================================================== */
+.widget-star-rating-full-primary {
+ color: #264ae5;
+}
+
+.widget-star-rating-full-success {
+ color: #3cb33d;
+}
+
+.widget-star-rating-full-info {
+ color: #0086d9;
+}
+
+.widget-star-rating-full-warning {
+ color: #eca51c;
+}
+
+.widget-star-rating-full-danger {
+ color: #e33f4e;
+}
+
+.widget-star-rating-full-inverse {
+ color: #24276c;
+}
+
+.widget-rating.widget-rating-small .rating-icon {
+ font-size: 16px;
+}
+.widget-rating.widget-rating-small .rating-image {
+ height: 16px;
+}
+.widget-rating.widget-rating-large .rating-icon {
+ font-size: 32px;
+}
+.widget-rating.widget-rating-large .rating-image {
+ height: 32px;
+}
+
+/* ==========================================================================
+ Range slider
+
+ Default Mendix range slider widget.
+========================================================================== */
+.widget-range-slider {
+ margin-bottom: 16px;
+ padding: 5px 10px;
+}
+.widget-range-slider .rc-slider-handle {
+ border-color: #e7e7e9;
+}
+.widget-range-slider .rc-slider.rc-slider-with-marks {
+ padding-bottom: 25px;
+}
+.widget-range-slider .rc-slider:not(.rc-slider-disabled) .rc-slider-track {
+ background-color: #264ae5;
+}
+.widget-range-slider .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:focus {
+ border-color: #264ae5;
+ box-shadow: 0 0 0 5px #98a9f3;
+ outline: none;
+}
+.widget-range-slider .rc-slider:not(.rc-slider-disabled) .rc-slider-handle-click-focused:focus {
+ border-color: #98a9f3;
+ box-shadow: unset;
+}
+.widget-range-slider .rc-slider:not(.rc-slider-disabled) .rc-slider-dot-active,
+.widget-range-slider .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:hover {
+ border-color: #264ae5;
+}
+.widget-range-slider .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:active {
+ border-color: #264ae5;
+ box-shadow: 0 0 5px #264ae5;
+}
+
+/* ==========================================================================
+ Range Slider
+
+//== Design Properties
+//## Helper classes to change the look and feel of the component
+========================================================================== */
+.widget-range-slider-primary .rc-slider:not(.rc-slider-disabled) .rc-slider-track {
+ background-color: #264ae5;
+}
+.widget-range-slider-primary .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:focus {
+ border-color: #264ae5;
+ box-shadow: 0 0 0 5px #98a9f3;
+ outline: none;
+}
+.widget-range-slider-primary .rc-slider:not(.rc-slider-disabled) .rc-slider-handle-click-focused:focus {
+ border-color: #98a9f3;
+ box-shadow: unset;
+}
+.widget-range-slider-primary .rc-slider:not(.rc-slider-disabled) .rc-slider-dot-active,
+.widget-range-slider-primary .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:hover {
+ border-color: #264ae5;
+}
+.widget-range-slider-primary .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:active {
+ border-color: #264ae5;
+ box-shadow: 0 0 5px #264ae5;
+}
+
+.widget-range-slider-success .rc-slider:not(.rc-slider-disabled) .rc-slider-track {
+ background-color: #3cb33d;
+}
+.widget-range-slider-success .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:focus {
+ border-color: #3cb33d;
+ box-shadow: 0 0 0 5px #94db94;
+ outline: none;
+}
+.widget-range-slider-success .rc-slider:not(.rc-slider-disabled) .rc-slider-handle-click-focused:focus {
+ border-color: #94db94;
+ box-shadow: unset;
+}
+.widget-range-slider-success .rc-slider:not(.rc-slider-disabled) .rc-slider-dot-active,
+.widget-range-slider-success .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:hover {
+ border-color: #3cb33d;
+}
+.widget-range-slider-success .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:active {
+ border-color: #3cb33d;
+ box-shadow: 0 0 5px #3cb33d;
+}
+
+.widget-range-slider-warning .rc-slider:not(.rc-slider-disabled) .rc-slider-track {
+ background-color: #eca51c;
+}
+.widget-range-slider-warning .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:focus {
+ border-color: #eca51c;
+ box-shadow: 0 0 0 5px #f6d492;
+ outline: none;
+}
+.widget-range-slider-warning .rc-slider:not(.rc-slider-disabled) .rc-slider-handle-click-focused:focus {
+ border-color: #f6d492;
+ box-shadow: unset;
+}
+.widget-range-slider-warning .rc-slider:not(.rc-slider-disabled) .rc-slider-dot-active,
+.widget-range-slider-warning .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:hover {
+ border-color: #eca51c;
+}
+.widget-range-slider-warning .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:active {
+ border-color: #eca51c;
+ box-shadow: 0 0 5px #eca51c;
+}
+
+.widget-range-slider-danger .rc-slider:not(.rc-slider-disabled) .rc-slider-track {
+ background-color: #e33f4e;
+}
+.widget-range-slider-danger .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:focus {
+ border-color: #e33f4e;
+ box-shadow: 0 0 0 5px #f3aeb5;
+ outline: none;
+}
+.widget-range-slider-danger .rc-slider:not(.rc-slider-disabled) .rc-slider-handle-click-focused:focus {
+ border-color: #f3aeb5;
+ box-shadow: unset;
+}
+.widget-range-slider-danger .rc-slider:not(.rc-slider-disabled) .rc-slider-dot-active,
+.widget-range-slider-danger .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:hover {
+ border-color: #e33f4e;
+}
+.widget-range-slider-danger .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:active {
+ border-color: #e33f4e;
+ box-shadow: 0 0 5px #e33f4e;
+}
+
+/* ==========================================================================
+ Slider
+
+ Default Mendix slider widget.
+========================================================================== */
+.widget-slider {
+ margin-bottom: 16px;
+ padding: 5px 10px;
+}
+.widget-slider .rc-slider-handle {
+ border-color: #e7e7e9;
+}
+.widget-slider .rc-slider.rc-slider-with-marks {
+ padding-bottom: 25px;
+}
+.widget-slider .rc-slider:not(.rc-slider-disabled) .rc-slider-track {
+ background-color: #264ae5;
+}
+.widget-slider .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:focus {
+ border-color: #264ae5;
+ box-shadow: 0 0 0 5px #98a9f3;
+ outline: none;
+}
+.widget-slider .rc-slider:not(.rc-slider-disabled) .rc-slider-handle-click-focused:focus {
+ border-color: #98a9f3;
+ box-shadow: unset;
+}
+.widget-slider .rc-slider:not(.rc-slider-disabled) .rc-slider-dot-active,
+.widget-slider .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:hover {
+ border-color: #264ae5;
+}
+.widget-slider .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:active {
+ border-color: #264ae5;
+ box-shadow: 0 0 5px #264ae5;
+}
+
+/* ==========================================================================
+ Slider
+
+//== Design Properties
+//## Helper classes to change the look and feel of the component
+========================================================================== */
+.widget-slider-primary .rc-slider:not(.rc-slider-disabled) .rc-slider-track {
+ background-color: #264ae5;
+}
+.widget-slider-primary .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:focus {
+ border-color: #264ae5;
+ box-shadow: 0 0 0 5px #98a9f3;
+ outline: none;
+}
+.widget-slider-primary .rc-slider:not(.rc-slider-disabled) .rc-slider-handle-click-focused:focus {
+ border-color: #98a9f3;
+ box-shadow: unset;
+}
+.widget-slider-primary .rc-slider:not(.rc-slider-disabled) .rc-slider-dot-active,
+.widget-slider-primary .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:hover {
+ border-color: #264ae5;
+}
+.widget-slider-primary .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:active {
+ border-color: #264ae5;
+ box-shadow: 0 0 5px #264ae5;
+}
+
+.widget-slider-success .rc-slider:not(.rc-slider-disabled) .rc-slider-track {
+ background-color: #3cb33d;
+}
+.widget-slider-success .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:focus {
+ border-color: #3cb33d;
+ box-shadow: 0 0 0 5px #94db94;
+ outline: none;
+}
+.widget-slider-success .rc-slider:not(.rc-slider-disabled) .rc-slider-handle-click-focused:focus {
+ border-color: #94db94;
+ box-shadow: unset;
+}
+.widget-slider-success .rc-slider:not(.rc-slider-disabled) .rc-slider-dot-active,
+.widget-slider-success .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:hover {
+ border-color: #3cb33d;
+}
+.widget-slider-success .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:active {
+ border-color: #3cb33d;
+ box-shadow: 0 0 5px #3cb33d;
+}
+
+.widget-slider-warning .rc-slider:not(.rc-slider-disabled) .rc-slider-track {
+ background-color: #eca51c;
+}
+.widget-slider-warning .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:focus {
+ border-color: #eca51c;
+ box-shadow: 0 0 0 5px #f6d492;
+ outline: none;
+}
+.widget-slider-warning .rc-slider:not(.rc-slider-disabled) .rc-slider-handle-click-focused:focus {
+ border-color: #f6d492;
+ box-shadow: unset;
+}
+.widget-slider-warning .rc-slider:not(.rc-slider-disabled) .rc-slider-dot-active,
+.widget-slider-warning .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:hover {
+ border-color: #eca51c;
+}
+.widget-slider-warning .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:active {
+ border-color: #eca51c;
+ box-shadow: 0 0 5px #eca51c;
+}
+
+.widget-slider-danger .rc-slider:not(.rc-slider-disabled) .rc-slider-track {
+ background-color: #e33f4e;
+}
+.widget-slider-danger .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:focus {
+ border-color: #e33f4e;
+ box-shadow: 0 0 0 5px #f3aeb5;
+ outline: none;
+}
+.widget-slider-danger .rc-slider:not(.rc-slider-disabled) .rc-slider-handle-click-focused:focus {
+ border-color: #f3aeb5;
+ box-shadow: unset;
+}
+.widget-slider-danger .rc-slider:not(.rc-slider-disabled) .rc-slider-dot-active,
+.widget-slider-danger .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:hover {
+ border-color: #e33f4e;
+}
+.widget-slider-danger .rc-slider:not(.rc-slider-disabled) .rc-slider-handle:active {
+ border-color: #e33f4e;
+ box-shadow: 0 0 5px #e33f4e;
+}
+
+/* ==========================================================================
+ Timeline
+
+ Widget styles
+========================================================================== */
+.widget-timeline-date-header {
+ display: flex;
+ justify-content: center;
+ width: 120px;
+ overflow-wrap: break-word;
+ padding: 8px;
+ border: 1px solid #ced0d3;
+ border-radius: 30px;
+}
+
+.widget-timeline-events-wrapper {
+ display: flex;
+ flex: 1;
+ margin-left: 60px;
+ padding: 24px 0 0 0;
+ border-left: 1px solid #ced0d3;
+}
+.widget-timeline-events-wrapper ul {
+ flex: 1;
+ padding: 0;
+ list-style: none;
+ margin-bottom: 0;
+}
+
+.widget-timeline-event {
+ flex: 1;
+ position: relative;
+ margin-left: -1px;
+ padding: 0 24px 24px 24px;
+ margin-bottom: 16px;
+}
+.widget-timeline-event.clickable {
+ cursor: pointer;
+ transition: background 0.8s;
+}
+.widget-timeline-icon-wrapper {
+ position: absolute;
+ top: 0;
+ left: 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ transform: translateX(-50%);
+}
+.widget-timeline-icon-wrapper .glyphicon {
+ font-size: 18px;
+}
+.widget-timeline-icon-wrapper img {
+ max-width: 100%;
+ max-height: 100%;
+}
+
+.widget-timeline-content-wrapper {
+ display: flex;
+}
+.widget-timeline-content-wrapper .widget-timeline-date-time-wrapper {
+ order: 2;
+ margin-right: 0;
+}
+.widget-timeline-content-wrapper .widget-timeline-info-wrapper {
+ flex: 1;
+ order: 1;
+ margin-right: 16px;
+}
+
+.timeline-with-image .widget-timeline-content-wrapper {
+ display: flex;
+}
+.timeline-with-image .widget-timeline-content-wrapper .widget-timeline-date-time-wrapper {
+ order: 1;
+ margin-right: 16px;
+}
+.timeline-with-image .widget-timeline-content-wrapper .widget-timeline-info-wrapper {
+ flex: 1;
+ order: 2;
+}
+
+.widget-timeline-icon-circle {
+ width: 18px;
+ height: 18px;
+ border-radius: 50%;
+ background-color: #264ae5;
+}
+
+.widget-eventTime {
+ color: #264ae5;
+}
+
+.timeline-entry-image {
+ display: flex;
+ justify-content: center;
+ align-content: center;
+ border-radius: 4px;
+ height: 36px;
+ width: 36px;
+}
+
+/* ==========================================================================
+ Tooltip
+
+ Widget styles
+========================================================================== */
+.widget-tooltip-inline {
+ display: inline-block;
+}
+
+/* ==========================================================================
+ Helper
+
+ Default Mendix helpers
+========================================================================== */
+.d-none {
+ display: none !important;
+}
+
+.d-flex {
+ display: flex !important;
+}
+
+.d-inline-flex {
+ display: inline-flex !important;
+}
+
+.d-inline {
+ display: inline !important;
+}
+
+.d-inline-block {
+ display: inline-block !important;
+}
+
+.show,
+.d-block {
+ display: block !important;
+}
+
+.table,
+.d-table {
+ display: table !important;
+}
+
+.table-row,
+.d-table-row {
+ display: table-row !important;
+}
+
+.table-cell,
+.d-table-cell {
+ display: table-cell !important;
+}
+
+.hide,
+.hidden {
+ display: none !important;
+ visibility: hidden !important;
+}
+
+.invisible {
+ visibility: hidden !important;
+}
+
+.display-ie8-only:not([attr*=""]) {
+ display: none !important;
+ padding: 0 !important;
+}
+
+.list-nostyle ul {
+ margin: 0 !important;
+ padding: 0 !important;
+}
+.list-nostyle ul li {
+ list-style-type: none !important;
+}
+
+.nowrap,
+.nowrap * {
+ overflow: hidden !important;
+ white-space: nowrap !important;
+ text-overflow: ellipsis !important;
+}
+
+.table {
+ display: table !important;
+}
+
+.table-row {
+ display: table-row !important;
+}
+
+.table-cell {
+ display: table-cell !important;
+}
+
+.pull-left {
+ float: left !important;
+}
+
+.pull-right {
+ float: right !important;
+}
+
+.align-top {
+ vertical-align: top !important;
+}
+
+.align-middle {
+ vertical-align: middle !important;
+}
+
+.align-bottom {
+ vertical-align: bottom !important;
+}
+
+.row-left {
+ display: flex !important;
+ align-items: center !important;
+ flex-flow: row !important;
+ justify-content: flex-start !important;
+}
+
+.row-center {
+ display: flex !important;
+ align-items: center !important;
+ flex-flow: row !important;
+ justify-content: center !important;
+}
+
+.row-right {
+ display: flex !important;
+ align-items: center !important;
+ flex-flow: row !important;
+ justify-content: flex-end !important;
+}
+
+.col-left {
+ display: flex !important;
+ align-items: flex-start !important;
+ flex-direction: column !important;
+ justify-content: center !important;
+}
+
+.col-center {
+ display: flex !important;
+ align-items: center !important;
+ flex-direction: column !important;
+ justify-content: center !important;
+}
+
+.col-right {
+ display: flex !important;
+ align-items: flex-end !important;
+ flex-direction: column !important;
+ justify-content: center !important;
+}
+
+.shadow-small {
+ box-shadow: 0 2px 4px 0 rgba(206, 208, 211, 0.66);
+ margin-bottom: 5px;
+ border-width: 1px !important;
+ border-style: solid;
+ border-color: rgba(206, 208, 211, 0.5);
+}
+
+.shadow-medium {
+ box-shadow: 0 5px 7px 0 rgba(206, 208, 211, 0.66);
+ margin-bottom: 15px;
+ border-width: 1px !important;
+ border-style: solid;
+ border-color: rgba(206, 208, 211, 0.5);
+}
+
+.shadow-large {
+ box-shadow: 0 8px 10px 0 rgba(206, 208, 211, 0.66);
+ margin-bottom: 25px;
+ border-width: 1px !important;
+ border-style: solid;
+ border-color: rgba(206, 208, 211, 0.5);
+}
+
+@media (max-width: calc(768px - 1px)) {
+ .hide-phone {
+ display: none !important;
+ }
+}
+@media (min-width: 768px) and (max-width: calc(992px - 1px)) {
+ .hide-tablet {
+ display: none !important;
+ }
+}
+@media (min-width: 992px) {
+ .hide-desktop {
+ display: none !important;
+ }
+}
+@media (max-width: calc(576px - 1px)) {
+ .hide-xs,
+.hidden-xs,
+.d-xs-none {
+ display: none !important;
+ }
+
+ .d-xs-flex {
+ display: flex !important;
+ }
+
+ .d-xs-inline-flex {
+ display: inline-flex !important;
+ }
+
+ .d-xs-inline {
+ display: inline !important;
+ }
+
+ .d-xs-inline-block {
+ display: inline-block !important;
+ }
+
+ .d-xs-block {
+ display: block !important;
+ }
+
+ .d-xs-table {
+ display: table !important;
+ }
+
+ .d-xs-table-row {
+ display: table-row !important;
+ }
+
+ .d-xs-table-cell {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 576px) and (max-width: calc(768px - 1px)) {
+ .hide-sm,
+.hidden-sm,
+.d-sm-none {
+ display: none !important;
+ }
+
+ .d-sm-flex {
+ display: flex !important;
+ }
+
+ .d-sm-inline-flex {
+ display: inline-flex !important;
+ }
+
+ .d-sm-inline {
+ display: inline !important;
+ }
+
+ .d-sm-inline-block {
+ display: inline-block !important;
+ }
+
+ .d-sm-block {
+ display: block !important;
+ }
+
+ .d-sm-table {
+ display: table !important;
+ }
+
+ .d-sm-table-row {
+ display: table-row !important;
+ }
+
+ .d-sm-table-cell {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 768px) and (max-width: calc(992px - 1px)) {
+ .hide-md,
+.hidden-md,
+.d-md-none {
+ display: none !important;
+ }
+
+ .d-md-flex {
+ display: flex !important;
+ }
+
+ .d-md-inline-flex {
+ display: inline-flex !important;
+ }
+
+ .d-md-inline {
+ display: inline !important;
+ }
+
+ .d-md-inline-block {
+ display: inline-block !important;
+ }
+
+ .d-md-block {
+ display: block !important;
+ }
+
+ .d-md-table {
+ display: table !important;
+ }
+
+ .d-md-table-row {
+ display: table-row !important;
+ }
+
+ .d-md-table-cell {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1200px) {
+ .hide-lg,
+.hidden-lg,
+.d-lg-none {
+ display: none !important;
+ }
+
+ .d-lg-flex {
+ display: flex !important;
+ }
+
+ .d-lg-inline-flex {
+ display: inline-flex !important;
+ }
+
+ .d-lg-inline {
+ display: inline !important;
+ }
+
+ .d-lg-inline-block {
+ display: inline-block !important;
+ }
+
+ .d-lg-block {
+ display: block !important;
+ }
+
+ .d-lg-table {
+ display: table !important;
+ }
+
+ .d-lg-table-row {
+ display: table-row !important;
+ }
+
+ .d-lg-table-cell {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 1200px) {
+ .hide-xl,
+.hidden-xl,
+.d-xl-none {
+ display: none !important;
+ }
+
+ .d-xl-flex {
+ display: flex !important;
+ }
+
+ .d-xl-inline-flex {
+ display: inline-flex !important;
+ }
+
+ .d-xl-inline {
+ display: inline !important;
+ }
+
+ .d-xl-inline-block {
+ display: inline-block !important;
+ }
+
+ .d-xl-block {
+ display: block !important;
+ }
+
+ .d-xl-table {
+ display: table !important;
+ }
+
+ .d-xl-table-row {
+ display: table-row !important;
+ }
+
+ .d-xl-table-cell {
+ display: table-cell !important;
+ }
+}
+.shadow {
+ box-shadow: 0 2px 20px 1px rgba(5, 15, 129, 0.05) !important;
+}
+
+.h-25 {
+ height: 25% !important;
+}
+
+.h-50 {
+ height: 50% !important;
+}
+
+.h-75 {
+ height: 75% !important;
+}
+
+.h-100 {
+ height: 100% !important;
+}
+
+.w-25 {
+ width: 25% !important;
+}
+
+.w-50 {
+ width: 50% !important;
+}
+
+.w-75 {
+ width: 75% !important;
+}
+
+.w-100 {
+ width: 100% !important;
+}
+
+.border {
+ border: 1px solid #ced0d3 !important;
+}
+
+.border-top {
+ border-top: 1px solid #ced0d3 !important;
+}
+
+.border-bottom {
+ border-bottom: 1px solid #ced0d3 !important;
+}
+
+.border-left {
+ border-left: 1px solid #ced0d3 !important;
+}
+
+.border-right {
+ border-right: 1px solid #ced0d3 !important;
+}
+
+.border-rounded {
+ border-radius: 4px !important;
+}
+
+/* ==========================================================================
+ Barcode-scanner
+
+ Override of default Bootstrap barcode-scanner style
+========================================================================== */
+.mx-barcode-scanner {
+ background: #000000;
+ z-index: 110;
+}
+.mx-barcode-scanner .close-button {
+ color: white;
+}
+.mx-barcode-scanner .close-button .glyphicon {
+ font-size: 16px;
+}
+.mx-barcode-scanner .video-canvas .canvas-background {
+ background-color: rgba(0, 0, 0, 0.7);
+}
+.mx-barcode-scanner .video-canvas .canvas-middle .canvas-middle-middle .corner {
+ border-left: 5px solid #ffffff;
+ border-top: 5px solid #ffffff;
+}
+.mx-barcode-scanner .video-canvas .canvas-middle .canvas-middle-middle .corner.corner-top-left {
+ top: -13px;
+ left: -13px;
+}
+.mx-barcode-scanner .video-canvas .canvas-middle .canvas-middle-middle .corner.corner-top-right {
+ top: -13px;
+ right: -13px;
+ transform: rotate(90deg);
+}
+.mx-barcode-scanner .video-canvas .canvas-middle .canvas-middle-middle .corner.corner-bottom-right {
+ bottom: -13px;
+ right: -13px;
+ transform: rotate(180deg);
+}
+.mx-barcode-scanner .video-canvas .canvas-middle .canvas-middle-middle .corner.corner-bottom-left {
+ bottom: -13px;
+ left: -13px;
+ transform: rotate(270deg);
+}
+
+/* ==========================================================================
+ Accordion
+
+ Default Mendix accordion widget styles.
+========================================================================== */
+.widget-accordion .widget-accordion-group {
+ border-color: #ced0d3;
+ background-color: #fff;
+}
+.widget-accordion .widget-accordion-group:first-child {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+}
+.widget-accordion .widget-accordion-group:first-child > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ border-top-left-radius: calc(4px - 1px);
+ border-top-right-radius: calc(4px - 1px);
+}
+.widget-accordion .widget-accordion-group:last-child {
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-group-collapsed:last-child > .widget-accordion-group-header > .widget-accordion-group-header-button, .widget-accordion .widget-accordion-group.widget-accordion-group-collapsing:last-child > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ border-bottom-left-radius: calc(4px - 1px);
+ border-bottom-right-radius: calc(4px - 1px);
+}
+.widget-accordion .widget-accordion-group.widget-accordion-group-collapsing:last-child > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ transition: border-radius 5ms ease 200ms;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-group-expanding:last-child > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ transition: border-radius 5ms ease 80ms;
+}
+.widget-accordion .widget-accordion-group > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ cursor: auto;
+ background-color: #fff;
+ padding: 16px;
+}
+.widget-accordion .widget-accordion-group > .widget-accordion-group-header > .widget-accordion-group-header-button > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6) {
+ font-size: 14px;
+ font-weight: 600;
+}
+.widget-accordion .widget-accordion-group > .widget-accordion-group-header > .widget-accordion-group-header-button > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span) {
+ color: #0a1325;
+}
+.widget-accordion .widget-accordion-group > .widget-accordion-group-header > .widget-accordion-group-header-button .widget-accordion-group-header-button-icon {
+ fill: #0a1325;
+}
+.widget-accordion .widget-accordion-group > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:hover, .widget-accordion .widget-accordion-group > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:focus, .widget-accordion .widget-accordion-group > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:active {
+ background-color: #f8f8f8;
+}
+.widget-accordion .widget-accordion-group > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:hover > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span), .widget-accordion .widget-accordion-group > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:focus > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span), .widget-accordion .widget-accordion-group > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:active > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span) {
+ color: #264ae5;
+}
+.widget-accordion .widget-accordion-group > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:hover .widget-accordion-group-header-button-icon, .widget-accordion .widget-accordion-group > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:focus .widget-accordion-group-header-button-icon, .widget-accordion .widget-accordion-group > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:active .widget-accordion-group-header-button-icon {
+ fill: #264ae5;
+}
+.widget-accordion .widget-accordion-group > .widget-accordion-group-content-wrapper > .widget-accordion-group-content {
+ border-color: #ced0d3;
+ padding: 8px 16px 24px 16px;
+}
+.widget-accordion.widget-accordion-preview .widget-accordion-group .widget-accordion-group-header-button > div > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6) {
+ font-size: 14px;
+ font-weight: 600;
+}
+.widget-accordion.widget-accordion-preview .widget-accordion-group .widget-accordion-group-header-button > div > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span) {
+ color: #0a1325;
+}
+
+/* ==========================================================================
+ Accordion
+
+//== Design Properties
+//## Helper classes to change the look and feel of the component
+========================================================================== */
+.widget-accordion .widget-accordion-group.widget-accordion-brand-primary {
+ border-color: #264ae5;
+ background-color: #fff;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-primary:first-child {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-primary:first-child > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ border-top-left-radius: calc(4px - 1px);
+ border-top-right-radius: calc(4px - 1px);
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-primary:last-child {
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-primary.widget-accordion-group-collapsed:last-child > .widget-accordion-group-header > .widget-accordion-group-header-button, .widget-accordion .widget-accordion-group.widget-accordion-brand-primary.widget-accordion-group-collapsing:last-child > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ border-bottom-left-radius: calc(4px - 1px);
+ border-bottom-right-radius: calc(4px - 1px);
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-primary.widget-accordion-group-collapsing:last-child > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ transition: border-radius 5ms ease 200ms;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-primary.widget-accordion-group-expanding:last-child > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ transition: border-radius 5ms ease 80ms;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-primary > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ cursor: auto;
+ background-color: #264ae5;
+ padding: 16px;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-primary > .widget-accordion-group-header > .widget-accordion-group-header-button > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6) {
+ font-size: 14px;
+ font-weight: 600;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-primary > .widget-accordion-group-header > .widget-accordion-group-header-button > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span) {
+ color: #fff;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-primary > .widget-accordion-group-header > .widget-accordion-group-header-button .widget-accordion-group-header-button-icon {
+ fill: #fff;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-primary > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:hover, .widget-accordion .widget-accordion-group.widget-accordion-brand-primary > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:focus, .widget-accordion .widget-accordion-group.widget-accordion-brand-primary > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:active {
+ background-color: #1e3bb7;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-primary > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:hover > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span), .widget-accordion .widget-accordion-group.widget-accordion-brand-primary > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:focus > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span), .widget-accordion .widget-accordion-group.widget-accordion-brand-primary > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:active > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span) {
+ color: #fff;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-primary > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:hover .widget-accordion-group-header-button-icon, .widget-accordion .widget-accordion-group.widget-accordion-brand-primary > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:focus .widget-accordion-group-header-button-icon, .widget-accordion .widget-accordion-group.widget-accordion-brand-primary > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:active .widget-accordion-group-header-button-icon {
+ fill: #fff;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-primary > .widget-accordion-group-content-wrapper > .widget-accordion-group-content {
+ border-color: #264ae5;
+ padding: 8px 16px 24px 16px;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-secondary {
+ border-color: #e7e7e9;
+ background-color: #fff;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-secondary:first-child {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-secondary:first-child > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ border-top-left-radius: calc(4px - 1px);
+ border-top-right-radius: calc(4px - 1px);
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-secondary:last-child {
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-secondary.widget-accordion-group-collapsed:last-child > .widget-accordion-group-header > .widget-accordion-group-header-button, .widget-accordion .widget-accordion-group.widget-accordion-brand-secondary.widget-accordion-group-collapsing:last-child > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ border-bottom-left-radius: calc(4px - 1px);
+ border-bottom-right-radius: calc(4px - 1px);
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-secondary.widget-accordion-group-collapsing:last-child > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ transition: border-radius 5ms ease 200ms;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-secondary.widget-accordion-group-expanding:last-child > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ transition: border-radius 5ms ease 80ms;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-secondary > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ cursor: auto;
+ background-color: #fff;
+ padding: 16px;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-secondary > .widget-accordion-group-header > .widget-accordion-group-header-button > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6) {
+ font-size: 14px;
+ font-weight: 600;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-secondary > .widget-accordion-group-header > .widget-accordion-group-header-button > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span) {
+ color: #264ae5;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-secondary > .widget-accordion-group-header > .widget-accordion-group-header-button .widget-accordion-group-header-button-icon {
+ fill: #264ae5;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-secondary > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:hover, .widget-accordion .widget-accordion-group.widget-accordion-brand-secondary > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:focus, .widget-accordion .widget-accordion-group.widget-accordion-brand-secondary > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:active {
+ background-color: #e7e7e9;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-secondary > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:hover > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span), .widget-accordion .widget-accordion-group.widget-accordion-brand-secondary > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:focus > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span), .widget-accordion .widget-accordion-group.widget-accordion-brand-secondary > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:active > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span) {
+ color: #264ae5;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-secondary > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:hover .widget-accordion-group-header-button-icon, .widget-accordion .widget-accordion-group.widget-accordion-brand-secondary > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:focus .widget-accordion-group-header-button-icon, .widget-accordion .widget-accordion-group.widget-accordion-brand-secondary > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:active .widget-accordion-group-header-button-icon {
+ fill: #264ae5;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-secondary > .widget-accordion-group-content-wrapper > .widget-accordion-group-content {
+ border-color: #e7e7e9;
+ padding: 8px 16px 24px 16px;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-success {
+ border-color: #3cb33d;
+ background-color: #fff;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-success:first-child {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-success:first-child > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ border-top-left-radius: calc(4px - 1px);
+ border-top-right-radius: calc(4px - 1px);
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-success:last-child {
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-success.widget-accordion-group-collapsed:last-child > .widget-accordion-group-header > .widget-accordion-group-header-button, .widget-accordion .widget-accordion-group.widget-accordion-brand-success.widget-accordion-group-collapsing:last-child > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ border-bottom-left-radius: calc(4px - 1px);
+ border-bottom-right-radius: calc(4px - 1px);
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-success.widget-accordion-group-collapsing:last-child > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ transition: border-radius 5ms ease 200ms;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-success.widget-accordion-group-expanding:last-child > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ transition: border-radius 5ms ease 80ms;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-success > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ cursor: auto;
+ background-color: #3cb33d;
+ padding: 16px;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-success > .widget-accordion-group-header > .widget-accordion-group-header-button > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6) {
+ font-size: 14px;
+ font-weight: 600;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-success > .widget-accordion-group-header > .widget-accordion-group-header-button > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span) {
+ color: #fff;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-success > .widget-accordion-group-header > .widget-accordion-group-header-button .widget-accordion-group-header-button-icon {
+ fill: #fff;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-success > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:hover, .widget-accordion .widget-accordion-group.widget-accordion-brand-success > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:focus, .widget-accordion .widget-accordion-group.widget-accordion-brand-success > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:active {
+ background-color: #308f31;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-success > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:hover > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span), .widget-accordion .widget-accordion-group.widget-accordion-brand-success > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:focus > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span), .widget-accordion .widget-accordion-group.widget-accordion-brand-success > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:active > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span) {
+ color: #fff;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-success > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:hover .widget-accordion-group-header-button-icon, .widget-accordion .widget-accordion-group.widget-accordion-brand-success > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:focus .widget-accordion-group-header-button-icon, .widget-accordion .widget-accordion-group.widget-accordion-brand-success > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:active .widget-accordion-group-header-button-icon {
+ fill: #fff;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-success > .widget-accordion-group-content-wrapper > .widget-accordion-group-content {
+ border-color: #3cb33d;
+ padding: 8px 16px 24px 16px;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-warning {
+ border-color: #eca51c;
+ background-color: #fff;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-warning:first-child {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-warning:first-child > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ border-top-left-radius: calc(4px - 1px);
+ border-top-right-radius: calc(4px - 1px);
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-warning:last-child {
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-warning.widget-accordion-group-collapsed:last-child > .widget-accordion-group-header > .widget-accordion-group-header-button, .widget-accordion .widget-accordion-group.widget-accordion-brand-warning.widget-accordion-group-collapsing:last-child > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ border-bottom-left-radius: calc(4px - 1px);
+ border-bottom-right-radius: calc(4px - 1px);
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-warning.widget-accordion-group-collapsing:last-child > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ transition: border-radius 5ms ease 200ms;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-warning.widget-accordion-group-expanding:last-child > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ transition: border-radius 5ms ease 80ms;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-warning > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ cursor: auto;
+ background-color: #eca51c;
+ padding: 16px;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-warning > .widget-accordion-group-header > .widget-accordion-group-header-button > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6) {
+ font-size: 14px;
+ font-weight: 600;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-warning > .widget-accordion-group-header > .widget-accordion-group-header-button > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span) {
+ color: #fff;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-warning > .widget-accordion-group-header > .widget-accordion-group-header-button .widget-accordion-group-header-button-icon {
+ fill: #fff;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-warning > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:hover, .widget-accordion .widget-accordion-group.widget-accordion-brand-warning > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:focus, .widget-accordion .widget-accordion-group.widget-accordion-brand-warning > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:active {
+ background-color: #bd8416;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-warning > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:hover > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span), .widget-accordion .widget-accordion-group.widget-accordion-brand-warning > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:focus > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span), .widget-accordion .widget-accordion-group.widget-accordion-brand-warning > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:active > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span) {
+ color: #fff;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-warning > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:hover .widget-accordion-group-header-button-icon, .widget-accordion .widget-accordion-group.widget-accordion-brand-warning > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:focus .widget-accordion-group-header-button-icon, .widget-accordion .widget-accordion-group.widget-accordion-brand-warning > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:active .widget-accordion-group-header-button-icon {
+ fill: #fff;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-warning > .widget-accordion-group-content-wrapper > .widget-accordion-group-content {
+ border-color: #eca51c;
+ padding: 8px 16px 24px 16px;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-danger {
+ border-color: #e33f4e;
+ background-color: #fff;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-danger:first-child {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-danger:first-child > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ border-top-left-radius: calc(4px - 1px);
+ border-top-right-radius: calc(4px - 1px);
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-danger:last-child {
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-danger.widget-accordion-group-collapsed:last-child > .widget-accordion-group-header > .widget-accordion-group-header-button, .widget-accordion .widget-accordion-group.widget-accordion-brand-danger.widget-accordion-group-collapsing:last-child > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ border-bottom-left-radius: calc(4px - 1px);
+ border-bottom-right-radius: calc(4px - 1px);
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-danger.widget-accordion-group-collapsing:last-child > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ transition: border-radius 5ms ease 200ms;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-danger.widget-accordion-group-expanding:last-child > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ transition: border-radius 5ms ease 80ms;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-danger > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ cursor: auto;
+ background-color: #e33f4e;
+ padding: 16px;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-danger > .widget-accordion-group-header > .widget-accordion-group-header-button > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6) {
+ font-size: 14px;
+ font-weight: 600;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-danger > .widget-accordion-group-header > .widget-accordion-group-header-button > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span) {
+ color: #fff;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-danger > .widget-accordion-group-header > .widget-accordion-group-header-button .widget-accordion-group-header-button-icon {
+ fill: #fff;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-danger > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:hover, .widget-accordion .widget-accordion-group.widget-accordion-brand-danger > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:focus, .widget-accordion .widget-accordion-group.widget-accordion-brand-danger > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:active {
+ background-color: #b6323e;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-danger > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:hover > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span), .widget-accordion .widget-accordion-group.widget-accordion-brand-danger > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:focus > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span), .widget-accordion .widget-accordion-group.widget-accordion-brand-danger > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:active > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span) {
+ color: #fff;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-danger > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:hover .widget-accordion-group-header-button-icon, .widget-accordion .widget-accordion-group.widget-accordion-brand-danger > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:focus .widget-accordion-group-header-button-icon, .widget-accordion .widget-accordion-group.widget-accordion-brand-danger > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:active .widget-accordion-group-header-button-icon {
+ fill: #fff;
+}
+.widget-accordion .widget-accordion-group.widget-accordion-brand-danger > .widget-accordion-group-content-wrapper > .widget-accordion-group-content {
+ border-color: #e33f4e;
+ padding: 8px 16px 24px 16px;
+}
+.widget-accordion.widget-accordion-preview .widget-accordion-group.widget-accordion-brand-primary .widget-accordion-group-header-button > div > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6) {
+ font-size: 14px;
+ font-weight: 600;
+}
+.widget-accordion.widget-accordion-preview .widget-accordion-group.widget-accordion-brand-primary .widget-accordion-group-header-button > div > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span) {
+ color: #fff;
+}
+.widget-accordion.widget-accordion-preview .widget-accordion-group.widget-accordion-brand-secondary .widget-accordion-group-header-button > div > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6) {
+ font-size: 14px;
+ font-weight: 600;
+}
+.widget-accordion.widget-accordion-preview .widget-accordion-group.widget-accordion-brand-secondary .widget-accordion-group-header-button > div > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span) {
+ color: #264ae5;
+}
+.widget-accordion.widget-accordion-preview .widget-accordion-group.widget-accordion-brand-success .widget-accordion-group-header-button > div > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6) {
+ font-size: 14px;
+ font-weight: 600;
+}
+.widget-accordion.widget-accordion-preview .widget-accordion-group.widget-accordion-brand-success .widget-accordion-group-header-button > div > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span) {
+ color: #fff;
+}
+.widget-accordion.widget-accordion-preview .widget-accordion-group.widget-accordion-brand-warning .widget-accordion-group-header-button > div > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6) {
+ font-size: 14px;
+ font-weight: 600;
+}
+.widget-accordion.widget-accordion-preview .widget-accordion-group.widget-accordion-brand-warning .widget-accordion-group-header-button > div > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span) {
+ color: #fff;
+}
+.widget-accordion.widget-accordion-preview .widget-accordion-group.widget-accordion-brand-danger .widget-accordion-group-header-button > div > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6) {
+ font-size: 14px;
+ font-weight: 600;
+}
+.widget-accordion.widget-accordion-preview .widget-accordion-group.widget-accordion-brand-danger .widget-accordion-group-header-button > div > :is(h1, h2, h3, h4, h5, .widget-timeline-title, .widget-eventTime, h6, p, span) {
+ color: #fff;
+}
+.widget-accordion.widget-accordion-bordered-all > .widget-accordion-group {
+ border-right-style: solid;
+ border-left-style: solid;
+}
+.widget-accordion.widget-accordion-bordered-all > .widget-accordion-group:first-child {
+ border-top-style: solid;
+}
+.widget-accordion.widget-accordion-bordered-horizontal > .widget-accordion-group:first-child {
+ border-top-style: solid;
+}
+.widget-accordion.widget-accordion-bordered-none > .widget-accordion-group {
+ border-bottom: none;
+}
+.widget-accordion.widget-accordion-striped > .widget-accordion-group:not(:is(.widget-accordion-brand-primary, .widget-accordion-brand-secondary, .widget-accordion-brand-success, .widget-accordion-brand-warning, .widget-accordion-brand-danger)):nth-child(2n+1) > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ background-color: #fafafb;
+}
+.widget-accordion.widget-accordion-striped > .widget-accordion-group:not(:is(.widget-accordion-brand-primary, .widget-accordion-brand-secondary, .widget-accordion-brand-success, .widget-accordion-brand-warning, .widget-accordion-brand-danger)):nth-child(2n+1) > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:hover, .widget-accordion.widget-accordion-striped > .widget-accordion-group:not(:is(.widget-accordion-brand-primary, .widget-accordion-brand-secondary, .widget-accordion-brand-success, .widget-accordion-brand-warning, .widget-accordion-brand-danger)):nth-child(2n+1) > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:focus, .widget-accordion.widget-accordion-striped > .widget-accordion-group:not(:is(.widget-accordion-brand-primary, .widget-accordion-brand-secondary, .widget-accordion-brand-success, .widget-accordion-brand-warning, .widget-accordion-brand-danger)):nth-child(2n+1) > .widget-accordion-group-header > .widget-accordion-group-header-button.widget-accordion-group-header-button-clickable:active {
+ background-color: #f0f1f2;
+}
+.widget-accordion.widget-accordion-striped > .widget-accordion-group:not(:is(.widget-accordion-brand-primary, .widget-accordion-brand-secondary, .widget-accordion-brand-success, .widget-accordion-brand-warning, .widget-accordion-brand-danger)):nth-child(2n+1) > .widget-accordion-group-content {
+ background-color: #fafafb;
+}
+.widget-accordion.widget-accordion-compact > .widget-accordion-group > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ padding: 4px 8px;
+}
+.widget-accordion.widget-accordion-compact > .widget-accordion-group > .widget-accordion-group-content {
+ padding: 4px 8px 16px 8px;
+}
+
+/*
+* Mendix Documentation
+* Special styles for presenting components
+*/
+/*
+* Dijit Widgets
+*
+* Default Dojo Dijit Widgets
+*/
+/*
+ * Dijit Tooltip Widget
+ *
+ * Default tooltip used for Mendix widgets
+ */
+.mx-tooltip .dijitTooltipContainer {
+ border-width: 1px;
+ border-color: #a9acb3;
+ border-radius: 4px;
+ background: #ffffff;
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+}
+.mx-tooltip .dijitTooltipContainer .mx-tooltip-content {
+ padding: 12px;
+}
+.mx-tooltip .dijitTooltipContainer .form-group {
+ margin-bottom: 4px;
+}
+.mx-tooltip .dijitTooltipConnector {
+ width: 0;
+ height: 0;
+ margin-left: -8px;
+ border-width: 10px 10px 10px 0;
+ border-style: solid;
+ border-color: transparent;
+ border-right-color: #a9acb3;
+}
+
+/*
+ * Dijit Border Container
+ *
+ * Used in Mendix as split pane containers
+ */
+.dijitBorderContainer {
+ padding: 8px;
+ background-color: #fcfcfc;
+}
+.dijitBorderContainer .dijitSplitterV,
+.dijitBorderContainer .dijitGutterV {
+ width: 5px;
+ border: 0;
+ background: #fcfcfc;
+}
+.dijitBorderContainer .dijitSplitterH,
+.dijitBorderContainer .dijitGutterH {
+ height: 5px;
+ border: 0;
+ background: #fcfcfc;
+}
+.dijitBorderContainer .dijitSplitterH .dijitSplitterThumb {
+ top: 2px;
+ width: 19px;
+ height: 1px;
+ background: #b0b0b0;
+}
+.dijitBorderContainer .dijitSplitterV .dijitSplitterThumb {
+ left: 2px;
+ width: 1px;
+ height: 19px;
+ background: #b0b0b0;
+}
+.dijitBorderContainer .dijitSplitContainer-child,
+.dijitBorderContainer .dijitBorderContainer-child {
+ border: 1px solid #cccccc;
+}
+.dijitBorderContainer .dijitBorderContainer-dijitTabContainerTop,
+.dijitBorderContainer .dijitBorderContainer-dijitTabContainerBottom,
+.dijitBorderContainer .dijitBorderContainer-dijitTabContainerLeft,
+.dijitBorderContainer .dijitBorderContainer-dijitTabContainerRight {
+ border: none;
+}
+.dijitBorderContainer .dijitBorderContainer-dijitBorderContainer {
+ padding: 0;
+ border: none;
+}
+.dijitBorderContainer .dijitSplitterActive {
+ /* For IE8 and earlier */
+ margin: 0;
+ opacity: 0.6;
+ background-color: #aaaaaa;
+ background-image: none;
+ font-size: 1px;
+}
+.dijitBorderContainer .dijitSplitContainer-dijitContentPane,
+.dijitBorderContainer .dijitBorderContainer-dijitContentPane {
+ padding: 8px;
+ background-color: #ffffff;
+}
+
+/*
+ * Dijit Menu Popup
+ *
+ * Used in datepickers and calendar widgets
+ */
+.dijitMenuPopup {
+ margin-top: 8px;
+}
+.dijitMenuPopup .dijitMenu {
+ display: block;
+ width: 200px !important;
+ margin-top: 0;
+ padding: 12px 8px;
+ border-radius: 3px;
+ background: #24276c;
+}
+.dijitMenuPopup .dijitMenu:after {
+ position: absolute;
+ bottom: 100%;
+ left: 20px;
+ width: 0;
+ height: 0;
+ margin-left: -8px;
+ content: " ";
+ pointer-events: none;
+ border: medium solid transparent;
+ border-width: 8px;
+ border-bottom-color: #24276c;
+}
+.dijitMenuPopup .dijitMenu .dijitMenuItem {
+ background: transparent;
+}
+.dijitMenuPopup .dijitMenu .dijitMenuItem .dijitMenuItemLabel {
+ display: block;
+ overflow: hidden;
+ width: 180px !important;
+ padding: 8px;
+ text-overflow: ellipsis;
+ color: #ffffff;
+ border-radius: 3px;
+}
+.dijitMenuPopup .dijitMenu .dijitMenuItem.dijitMenuItemHover {
+ background: none;
+}
+.dijitMenuPopup .dijitMenu .dijitMenuItem.dijitMenuItemHover .dijitMenuItemLabel {
+ background: #264ae5;
+}
+.dijitMenuPopup .dijitMenu .tg_newlabelmenuitem .dijitMenuItemLabel {
+ font-weight: bold;
+}
+.dijitMenuPopup .dijitMenu .dijitMenuSeparator td {
+ padding: 0;
+ border-bottom-width: 3px;
+}
+.dijitMenuPopup .dijitMenu .dijitMenuSeparator .dijitMenuSeparatorIconCell > div {
+ margin: 0;
+}
+
+.widget-switch-btn-wrapper:focus {
+ outline: 1px solid #264ae5;
+}
+
+div.widget-switch-brand-primary .widget-switch .widget-switch-btn-wrapper.checked {
+ border-color: #264ae5;
+ background-color: #264ae5;
+ box-shadow: #264ae5 0 0 0 16px inset;
+}
+div.widget-switch-brand-primary.android .widget-switch .widget-switch-btn-wrapper.checked {
+ background-color: #5470ea;
+}
+div.widget-switch-brand-primary.android .widget-switch .widget-switch-btn-wrapper.checked .widget-switch-btn {
+ background: #264ae5;
+}
+
+div.widget-switch-brand-secondary .widget-switch .widget-switch-btn-wrapper.checked {
+ border-color: #e7e7e9;
+ background-color: #e7e7e9;
+ box-shadow: #e7e7e9 0 0 0 16px inset;
+}
+div.widget-switch-brand-secondary.android .widget-switch .widget-switch-btn-wrapper.checked {
+ background-color: white;
+}
+div.widget-switch-brand-secondary.android .widget-switch .widget-switch-btn-wrapper.checked .widget-switch-btn {
+ background: #e7e7e9;
+}
+
+div.widget-switch-brand-success .widget-switch .widget-switch-btn-wrapper.checked {
+ border-color: #3cb33d;
+ background-color: #3cb33d;
+ box-shadow: #3cb33d 0 0 0 16px inset;
+}
+div.widget-switch-brand-success.android .widget-switch .widget-switch-btn-wrapper.checked {
+ background-color: #5ac85b;
+}
+div.widget-switch-brand-success.android .widget-switch .widget-switch-btn-wrapper.checked .widget-switch-btn {
+ background: #3cb33d;
+}
+
+div.widget-switch-brand-warning .widget-switch .widget-switch-btn-wrapper.checked {
+ border-color: #eca51c;
+ background-color: #eca51c;
+ box-shadow: #eca51c 0 0 0 16px inset;
+}
+div.widget-switch-brand-warning.android .widget-switch .widget-switch-btn-wrapper.checked {
+ background-color: #f0b84b;
+}
+div.widget-switch-brand-warning.android .widget-switch .widget-switch-btn-wrapper.checked .widget-switch-btn {
+ background: #eca51c;
+}
+
+div.widget-switch-brand-danger .widget-switch .widget-switch-btn-wrapper.checked {
+ border-color: #e33f4e;
+ background-color: #e33f4e;
+ box-shadow: #e33f4e 0 0 0 16px inset;
+}
+div.widget-switch-brand-danger.android .widget-switch .widget-switch-btn-wrapper.checked {
+ background-color: #e96c77;
+}
+div.widget-switch-brand-danger.android .widget-switch .widget-switch-btn-wrapper.checked .widget-switch-btn {
+ background: #e33f4e;
+}
+
+div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default {
+ border-color: rgb(100, 189, 99);
+ background-color: rgb(100, 189, 99);
+ box-shadow: rgb(100, 189, 99) 0 0 0 16px inset;
+}
+div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success {
+ border-color: #3cb33d;
+ background-color: #3cb33d;
+ box-shadow: #3cb33d 0 0 0 16px inset;
+}
+div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info {
+ border-color: #0086d9;
+ background-color: #0086d9;
+ box-shadow: #0086d9 0 0 0 16px inset;
+}
+div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary {
+ border-color: #264ae5;
+ background-color: #264ae5;
+ box-shadow: #264ae5 0 0 0 16px inset;
+}
+div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning {
+ border-color: #eca51c;
+ background-color: #eca51c;
+ box-shadow: #eca51c 0 0 0 16px inset;
+}
+div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger {
+ border-color: #e33f4e;
+ background-color: #e33f4e;
+ box-shadow: #e33f4e 0 0 0 16px inset;
+}
+div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse {
+ border-color: #24276c;
+ background-color: #24276c;
+ box-shadow: #24276c 0 0 0 16px inset;
+}
+div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default {
+ background-color: #92cec7;
+}
+div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default .widget-switch-btn {
+ background: #6fbeb5;
+}
+div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success {
+ background-color: #5ac85b;
+}
+div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success .widget-switch-btn {
+ background: #3cb33d;
+}
+div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info {
+ background-color: #0da2ff;
+}
+div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info .widget-switch-btn {
+ background: #0086d9;
+}
+div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary {
+ background-color: #5470ea;
+}
+div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary .widget-switch-btn {
+ background: #264ae5;
+}
+div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning {
+ background-color: #f0b84b;
+}
+div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning .widget-switch-btn {
+ background: #eca51c;
+}
+div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger {
+ background-color: #e96c77;
+}
+div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger .widget-switch-btn {
+ background: #e33f4e;
+}
+div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse {
+ background-color: #313592;
+}
+div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse .widget-switch-btn {
+ background: #24276c;
+}
+div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default {
+ border-color: rgb(100, 189, 99);
+ background-color: rgb(100, 189, 99);
+ box-shadow: rgb(100, 189, 99) 0 0 0 16px inset;
+}
+div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success {
+ border-color: #3cb33d;
+ background-color: #3cb33d;
+ box-shadow: #3cb33d 0 0 0 16px inset;
+}
+div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info {
+ border-color: #0086d9;
+ background-color: #0086d9;
+ box-shadow: #0086d9 0 0 0 16px inset;
+}
+div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary {
+ border-color: #264ae5;
+ background-color: #264ae5;
+ box-shadow: #264ae5 0 0 0 16px inset;
+}
+div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning {
+ border-color: #eca51c;
+ background-color: #eca51c;
+ box-shadow: #eca51c 0 0 0 16px inset;
+}
+div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger {
+ border-color: #e33f4e;
+ background-color: #e33f4e;
+ box-shadow: #e33f4e 0 0 0 16px inset;
+}
+div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse {
+ border-color: #24276c;
+ background-color: #24276c;
+ box-shadow: #24276c 0 0 0 16px inset;
+}
+
+html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default {
+ background-color: #92cec7;
+}
+html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default .widget-switch-btn {
+ background: #6fbeb5;
+}
+html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success {
+ background-color: #5ac85b;
+}
+html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success .widget-switch-btn {
+ background: #3cb33d;
+}
+html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info {
+ background-color: #0da2ff;
+}
+html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info .widget-switch-btn {
+ background: #0086d9;
+}
+html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary {
+ background-color: #5470ea;
+}
+html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary .widget-switch-btn {
+ background: #264ae5;
+}
+html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning {
+ background-color: #f0b84b;
+}
+html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning .widget-switch-btn {
+ background: #eca51c;
+}
+html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger {
+ background-color: #e96c77;
+}
+html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger .widget-switch-btn {
+ background: #e33f4e;
+}
+html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse {
+ background-color: #313592;
+}
+html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse .widget-switch-btn {
+ background: #24276c;
+}
+html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default {
+ border-color: rgb(100, 189, 99);
+ background-color: rgb(100, 189, 99);
+ box-shadow: rgb(100, 189, 99) 0 0 0 16px inset;
+}
+html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success {
+ border-color: #3cb33d;
+ background-color: #3cb33d;
+ box-shadow: #3cb33d 0 0 0 16px inset;
+}
+html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info {
+ border-color: #0086d9;
+ background-color: #0086d9;
+ box-shadow: #0086d9 0 0 0 16px inset;
+}
+html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary {
+ border-color: #264ae5;
+ background-color: #264ae5;
+ box-shadow: #264ae5 0 0 0 16px inset;
+}
+html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning {
+ border-color: #eca51c;
+ background-color: #eca51c;
+ box-shadow: #eca51c 0 0 0 16px inset;
+}
+html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger {
+ border-color: #e33f4e;
+ background-color: #e33f4e;
+ box-shadow: #e33f4e 0 0 0 16px inset;
+}
+html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse {
+ border-color: #24276c;
+ background-color: #24276c;
+ box-shadow: #24276c 0 0 0 16px inset;
+}
+
+/* ==========================================================================
+ Atlas layout
+
+ The core stucture of all atlas layouts
+========================================================================== */
+.layout-atlas .toggle-btn > img,
+.layout-atlas .toggle-btn > .glyphicon {
+ margin: 0;
+}
+.layout-atlas .mx-scrollcontainer-open .expand-btn > img {
+ transform: rotate(180deg);
+}
+.layout-atlas .region-sidebar {
+ background-color: #24276c;
+ z-index: 101;
+ box-shadow: 0 0 4px rgba(0, 0, 0, 0.14), 2px 4px 8px rgba(0, 0, 0, 0.28);
+}
+.layout-atlas .region-sidebar .mx-scrollcontainer-wrapper {
+ display: flex;
+ flex-direction: column;
+ padding: 8px 0;
+}
+.layout-atlas .region-sidebar .mx-navigationtree .navbar-inner > ul > li > a {
+ padding: 16px;
+}
+.layout-atlas .region-sidebar .mx-navigationtree .navbar-inner > ul > li > a .glyphicon {
+ margin-right: 8px;
+}
+.layout-atlas .region-sidebar .sidebar-heading {
+ background: #171946;
+}
+.layout-atlas .region-sidebar .toggle-btn {
+ margin-right: 8px;
+ border-color: transparent;
+ border-radius: 0;
+ background: transparent;
+ padding: 16px;
+}
+.layout-atlas .region-topbar {
+ position: relative;
+ z-index: 2;
+ min-height: 48px;
+ background-color: #020557;
+}
+.layout-atlas .region-topbar .topbar-content {
+ display: flex;
+ align-items: center;
+ min-height: 48px;
+}
+.layout-atlas .region-topbar .toggle-btn {
+ padding: 0;
+ margin-right: 16px;
+ border-color: transparent;
+ border-radius: 0;
+ background: transparent;
+}
+.layout-atlas .region-topbar .navbar-brand {
+ display: inline-block;
+ float: none;
+ height: auto;
+ padding: 0;
+ line-height: inherit;
+ font-size: 16px;
+ margin-right: 8px;
+}
+.layout-atlas .region-topbar .navbar-brand img {
+ display: inline-block;
+ margin-right: 8px;
+ width: auto;
+ height: 32px;
+}
+.layout-atlas .region-topbar .navbar-brand a {
+ margin-left: 8px;
+ color: #fff;
+ font-size: 20px;
+}
+.layout-atlas .region-topbar .navbar-brand a:hover, .layout-atlas .region-topbar .navbar-brand a:focus {
+ text-decoration: none;
+}
+.layout-atlas .region-topbar .mx-navbar {
+ display: inline-flex;
+ vertical-align: middle;
+ background: transparent;
+ justify-content: center;
+ align-items: center;
+}
+.layout-atlas .region-topbar .mx-navbar > .mx-navbar-item > a {
+ margin-top: 5px;
+ padding: 0 20px;
+}
+.layout-atlas .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open) > .region-sidebar {
+ overflow: hidden;
+}
+
+/* ==========================================================================
+ Atlas layout
+
+ Extra styling for phone layouts
+========================================================================== */
+.layout-atlas-phone .region-topbar {
+ min-height: 45px;
+ border-style: none;
+ background-color: #020557;
+}
+.layout-atlas-phone .region-topbar::before {
+ display: none;
+}
+.layout-atlas-phone .region-sidebar .mx-navigationtree .navbar-inner > ul > li > a .glyphicon {
+ margin-right: 16px;
+}
+
+/* ==========================================================================
+ Atlas layout
+
+ Extra styling for responsive layouts
+========================================================================== */
+@media (min-width: 768px) {
+ .layout-atlas-responsive .mx-scrollcontainer-shrink:not(.mx-scrollcontainer-open) > .region-sidebar,
+.layout-atlas-responsive .mx-scrollcontainer-push:not(.mx-scrollcontainer-open) > .region-sidebar,
+.layout-atlas-responsive .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open) > .region-sidebar,
+.layout-atlas-responsive-default .mx-scrollcontainer-shrink:not(.mx-scrollcontainer-open) > .region-sidebar,
+.layout-atlas-responsive-default .mx-scrollcontainer-push:not(.mx-scrollcontainer-open) > .region-sidebar,
+.layout-atlas-responsive-default .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open) > .region-sidebar {
+ width: 52px !important;
+ }
+ .layout-atlas-responsive .mx-scrollcontainer-shrink:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-has-items a,
+.layout-atlas-responsive .mx-scrollcontainer-push:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-has-items a,
+.layout-atlas-responsive .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-has-items a,
+.layout-atlas-responsive-default .mx-scrollcontainer-shrink:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-has-items a,
+.layout-atlas-responsive-default .mx-scrollcontainer-push:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-has-items a,
+.layout-atlas-responsive-default .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-has-items a {
+ white-space: nowrap;
+ }
+ .layout-atlas-responsive .mx-scrollcontainer-shrink:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-has-items:hover > ul,
+.layout-atlas-responsive .mx-scrollcontainer-push:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-has-items:hover > ul,
+.layout-atlas-responsive .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-has-items:hover > ul,
+.layout-atlas-responsive-default .mx-scrollcontainer-shrink:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-has-items:hover > ul,
+.layout-atlas-responsive-default .mx-scrollcontainer-push:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-has-items:hover > ul,
+.layout-atlas-responsive-default .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-has-items:hover > ul {
+ position: absolute;
+ z-index: 100;
+ top: 0;
+ bottom: 0;
+ left: 52px;
+ display: block;
+ min-width: auto;
+ padding: 8px 0;
+ }
+ .layout-atlas-responsive .mx-scrollcontainer-shrink:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-has-items:hover > ul > li.mx-navigationtree-has-items:hover > ul,
+.layout-atlas-responsive .mx-scrollcontainer-push:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-has-items:hover > ul > li.mx-navigationtree-has-items:hover > ul,
+.layout-atlas-responsive .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-has-items:hover > ul > li.mx-navigationtree-has-items:hover > ul,
+.layout-atlas-responsive-default .mx-scrollcontainer-shrink:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-has-items:hover > ul > li.mx-navigationtree-has-items:hover > ul,
+.layout-atlas-responsive-default .mx-scrollcontainer-push:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-has-items:hover > ul > li.mx-navigationtree-has-items:hover > ul,
+.layout-atlas-responsive-default .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-has-items:hover > ul > li.mx-navigationtree-has-items:hover > ul {
+ left: 100%;
+ }
+ .layout-atlas-responsive .mx-scrollcontainer-shrink:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-collapsed ul, .layout-atlas-responsive .mx-scrollcontainer-shrink:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-has-items ul,
+.layout-atlas-responsive .mx-scrollcontainer-push:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-collapsed ul,
+.layout-atlas-responsive .mx-scrollcontainer-push:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-has-items ul,
+.layout-atlas-responsive .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-collapsed ul,
+.layout-atlas-responsive .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-has-items ul,
+.layout-atlas-responsive-default .mx-scrollcontainer-shrink:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-collapsed ul,
+.layout-atlas-responsive-default .mx-scrollcontainer-shrink:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-has-items ul,
+.layout-atlas-responsive-default .mx-scrollcontainer-push:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-collapsed ul,
+.layout-atlas-responsive-default .mx-scrollcontainer-push:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-has-items ul,
+.layout-atlas-responsive-default .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-collapsed ul,
+.layout-atlas-responsive-default .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree ul li.mx-navigationtree-has-items ul {
+ display: none;
+ }
+ .layout-atlas-responsive .widget-sidebar:not(.widget-sidebar-expanded) .mx-navigationtree ul li.mx-navigationtree-has-items:hover ul,
+.layout-atlas-responsive-default .widget-sidebar:not(.widget-sidebar-expanded) .mx-navigationtree ul li.mx-navigationtree-has-items:hover ul {
+ position: absolute;
+ z-index: 100;
+ top: 0;
+ bottom: 0;
+ left: 52px;
+ display: block;
+ overflow-y: auto;
+ min-width: auto;
+ padding: 8px 0;
+ }
+ .layout-atlas-responsive .widget-sidebar:not(.widget-sidebar-expanded) .mx-navigationtree ul li.mx-navigationtree-collapsed ul, .layout-atlas-responsive .widget-sidebar:not(.widget-sidebar-expanded) .mx-navigationtree ul li.mx-navigationtree-has-items ul,
+.layout-atlas-responsive-default .widget-sidebar:not(.widget-sidebar-expanded) .mx-navigationtree ul li.mx-navigationtree-collapsed ul,
+.layout-atlas-responsive-default .widget-sidebar:not(.widget-sidebar-expanded) .mx-navigationtree ul li.mx-navigationtree-has-items ul {
+ display: none;
+ }
+}
+.layout-atlas-responsive .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open) > .region-sidebar,
+.layout-atlas-responsive-default .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open) > .region-sidebar {
+ overflow: hidden;
+}
+.layout-atlas-responsive .mx-scrollcontainer-slide.mx-scrollcontainer-open > .region-sidebar,
+.layout-atlas-responsive-default .mx-scrollcontainer-slide.mx-scrollcontainer-open > .region-sidebar {
+ width: 52px !important;
+}
+.layout-atlas-responsive .mx-scrollcontainer-slide.mx-scrollcontainer-open > .region-sidebar > .mx-scrollcontainer-wrapper,
+.layout-atlas-responsive-default .mx-scrollcontainer-slide.mx-scrollcontainer-open > .region-sidebar > .mx-scrollcontainer-wrapper {
+ position: relative;
+}
+.layout-atlas-responsive .mx-scrollcontainer-slide .region-sidebar > .mx-scrollcontainer-wrapper,
+.layout-atlas-responsive-default .mx-scrollcontainer-slide .region-sidebar > .mx-scrollcontainer-wrapper {
+ z-index: 2;
+ left: -52px;
+ background-color: inherit;
+}
+@media (max-width: calc(768px - 1px)) {
+ .layout-atlas-responsive .mx-scrollcontainer-open:not(.mx-scrollcontainer-slide),
+.layout-atlas-responsive-default .mx-scrollcontainer-open:not(.mx-scrollcontainer-slide) {
+ width: 1100px;
+ }
+ .layout-atlas-responsive .mx-scrollcontainer-slide .toggle-btn,
+.layout-atlas-responsive-default .mx-scrollcontainer-slide .toggle-btn {
+ display: inline-block !important;
+ }
+}
+.layout-atlas-responsive .region-sidebar .toggle-btn,
+.layout-atlas-responsive-default .region-sidebar .toggle-btn {
+ width: 52px;
+ border-color: transparent;
+ border-radius: 0;
+ background: transparent;
+}
+.layout-atlas-responsive .region-sidebar .mx-scrollcontainer-wrapper .toggle-btn-wrapper,
+.layout-atlas-responsive-default .region-sidebar .mx-scrollcontainer-wrapper .toggle-btn-wrapper {
+ display: flex;
+ padding: 8px;
+ align-items: center;
+ min-height: calc(48px + 4px);
+ background: #171946;
+}
+.layout-atlas-responsive .region-sidebar .mx-scrollcontainer-wrapper .toggle-btn,
+.layout-atlas-responsive-default .region-sidebar .mx-scrollcontainer-wrapper .toggle-btn {
+ padding: 16px;
+}
+.layout-atlas-responsive .region-sidebar .mx-scrollcontainer-wrapper .toggle-btn img,
+.layout-atlas-responsive-default .region-sidebar .mx-scrollcontainer-wrapper .toggle-btn img {
+ width: 24px;
+ height: 24px;
+}
+.layout-atlas-responsive .region-sidebar .mx-scrollcontainer-wrapper .toggle-text,
+.layout-atlas-responsive-default .region-sidebar .mx-scrollcontainer-wrapper .toggle-text {
+ color: #fff;
+ font-weight: bold;
+}
+.layout-atlas-responsive .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree .navbar-inner > ul > li > a,
+.layout-atlas-responsive-default .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree .navbar-inner > ul > li > a {
+ height: 52px;
+ padding: 8px 0;
+ white-space: nowrap;
+ overflow: hidden;
+}
+.layout-atlas-responsive .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree .navbar-inner > ul > li > a .glyphicon,
+.layout-atlas-responsive-default .region-sidebar .mx-scrollcontainer-wrapper > .mx-navigationtree .navbar-inner > ul > li > a .glyphicon {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 52px;
+ height: 52px;
+ padding: 8px 16px;
+ border-radius: 4px;
+}
+.layout-atlas-responsive .region-topbar,
+.layout-atlas-responsive-default .region-topbar {
+ padding: 0 8px;
+}
+.layout-atlas-responsive .region-topbar .toggle-btn,
+.layout-atlas-responsive-default .region-topbar .toggle-btn {
+ padding: 0;
+ border-color: transparent;
+ border-radius: 0;
+ background: transparent;
+}
+
+.layout-atlas-responsive-topbar .region-topbar {
+ padding: 0 16px;
+}
+@media (max-width: calc(768px - 1px)) {
+ .layout-atlas-responsive-topbar .region-topbar {
+ padding: 0 8px;
+ }
+}
+
+.profile-tablet .mx-scrollcontainer:not(.mx-scrollcontainer-open) > .region-sidebar {
+ overflow-y: hidden;
+}
+.profile-tablet .mx-scrollcontainer:not(.mx-scrollcontainer-open) > .region-sidebar .mx-scrollcontainer-wrapper {
+ overflow: visible;
+}
+
+/* ==========================================================================
+ Atlas layout
+
+ Extra styling for tablet layouts
+========================================================================== */
+.layout-atlas-tablet .region-topbar {
+ min-height: 45px;
+ border-style: none;
+ background-color: #020557;
+}
+.layout-atlas-tablet .region-topbar::before {
+ display: none;
+}
+.layout-atlas-tablet .region-sidebar .mx-navigationtree .navbar-inner > ul > li > a .glyphicon {
+ margin-right: 16px;
+}
+
+/* ==========================================================================
+ Alerts
+
+ Default Bootstrap Alert boxes. Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages
+========================================================================== */
+.alert {
+ margin-top: 0;
+ padding: 16px;
+ border: 1px solid;
+ border-radius: 4px;
+ padding: 16px;
+}
+
+.alert-icon {
+ font-size: 24px;
+}
+
+.alert-title {
+ color: inherit;
+}
+
+.alert-description {
+ color: inherit;
+}
+
+.alert-primary,
+.alert {
+ color: #172c89;
+ border-color: #1b34a0;
+ background-color: #e9edfc;
+}
+
+.alert-secondary {
+ color: #172c89;
+ border-color: #1b34a0;
+ background-color: #e9edfc;
+}
+
+.alert-success {
+ color: #246b25;
+ border-color: #2a7d2b;
+ background-color: #d8f0d8;
+}
+
+.alert-warning {
+ color: #8e6311;
+ border-color: #a57414;
+ background-color: #fbedd2;
+}
+
+.alert-danger {
+ color: #88262f;
+ border-color: #9f2c37;
+ background-color: #f9d9dc;
+}
+
+.has-error .alert {
+ margin-top: 8px;
+ margin-bottom: 0;
+}
+
+/* ==========================================================================
+ Breadcrumbs
+
+========================================================================== */
+.breadcrumb {
+ margin: 0;
+ padding: 0;
+ border-radius: 0;
+ background-color: transparent;
+ font-size: 14px;
+ margin-bottom: 24px;
+}
+
+.breadcrumb-item {
+ display: inline-block;
+ margin: 0;
+}
+.breadcrumb-item:last-child {
+ color: #0a1325;
+}
+.breadcrumb-item:last-child a {
+ text-decoration: none;
+}
+
+.breadcrumb-item + .breadcrumb-item::before {
+ display: inline-block;
+ padding-right: 8px;
+ padding-left: 8px;
+ content: "/";
+ color: #a9acb3;
+}
+
+.breadcrumb-large {
+ font-size: 24px;
+}
+
+.breadcrumb-underline {
+ padding-bottom: 16px;
+ border-bottom: 1px solid #ced0d3;
+}
+
+/* ==========================================================================
+ Cards
+
+========================================================================== */
+.card {
+ border: 0;
+ border-radius: 4px;
+ background-color: #ffffff;
+ overflow: hidden;
+ position: relative;
+ padding: 24px;
+ margin-bottom: 24px;
+}
+
+.card-body {
+ padding: 24px;
+}
+
+.card-overlay {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ background: rgba(0, 0, 0, 0.6);
+ background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 8%, rgba(0, 0, 0, 0.99) 121%, #000 100%);
+ padding: 24px;
+}
+
+.card-image {
+ width: 100%;
+ height: auto;
+}
+
+.card-icon {
+ font-size: 31px;
+}
+
+.card-with-image {
+ overflow: hidden;
+}
+
+.card-with-background {
+ position: relative;
+}
+
+/* ==========================================================================
+ Chats
+
+========================================================================== */
+.chat {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+ background-color: #fff;
+}
+
+.chat-content {
+ display: flex;
+ overflow: auto;
+ flex: 1;
+ flex-direction: column;
+ justify-content: flex-end;
+}
+.chat-content .chat-list {
+ position: relative;
+ overflow: auto;
+}
+.chat-content .chat-list ul {
+ display: flex;
+ flex-direction: column-reverse;
+ margin-bottom: 16px;
+}
+.chat-content .chat-list li {
+ padding: 15px 30px;
+ animation: fadeIn 0.2s;
+ background-color: transparent;
+ animation-fill-mode: both;
+}
+.chat-content .chat-list li, .chat-content .chat-list li:last-child {
+ border: 0;
+}
+.chat-content .chat-list .mx-listview-loadMore {
+ position: absolute;
+ top: 0;
+ right: 0;
+ left: 0;
+ display: block;
+ width: 50%;
+ margin: 15px auto;
+ color: #ffffff;
+ background-color: #264ae5;
+ box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.05);
+}
+
+.chat-message {
+ display: flex;
+}
+
+.chat-avatar {
+ margin: 0 20px 0 0;
+ border-radius: 50%;
+}
+
+.chat-message-content {
+ display: inline-flex;
+ flex-direction: column;
+}
+
+.chat-message-balloon {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ padding: 10px 15px;
+ border-radius: 5px;
+ background-color: #f8f8f8;
+}
+.chat-message-balloon::after {
+ position: absolute;
+ top: 10px;
+ right: 100%;
+ width: 0;
+ height: 0;
+ content: "";
+ border: 10px solid transparent;
+ border-top: 0;
+ border-right-color: #f8f8f8;
+ border-left: 0;
+}
+
+.chat-message-time {
+ padding-top: 2px;
+}
+.chat-message-time .form-control-static {
+ border: 0;
+}
+
+.chat-footer {
+ z-index: 1;
+ padding: 16px;
+ background-color: #f8f8f8;
+ box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.05);
+}
+
+.chat-input {
+ display: flex;
+}
+.chat-input .chat-textbox {
+ flex: 1;
+ margin-right: 24px;
+ margin-bottom: 0;
+}
+.chat-input .chat-textbox .form-control {
+ border: 0;
+}
+
+.chat-message-self {
+ justify-content: flex-end;
+}
+.chat-message-self .chat-avatar {
+ margin: 0 0 0 20px;
+}
+.chat-message-self .chat-message-balloon {
+ background-color: #d4dbfa;
+}
+.chat-message-self .chat-message-balloon::after {
+ left: 100%;
+ border: 10px solid transparent;
+ border-top: 0;
+ border-right: 0;
+ border-left-color: #d4dbfa;
+}
+.chat-message-self .chat-message-time {
+ text-align: right;
+}
+
+/* ==========================================================================
+ Control Group
+
+ A group of buttons next to eachother
+========================================================================== */
+.controlgroup .btn,
+.controlgroup .btn-group {
+ margin-right: 8px;
+ margin-bottom: 8px;
+}
+.controlgroup .btn:last-child,
+.controlgroup .btn-group:last-child {
+ margin-right: 0;
+}
+.controlgroup .btn .btn,
+.controlgroup .btn-group .btn {
+ margin-right: 0;
+ margin-bottom: 0;
+}
+.controlgroup .btn-group .btn + .btn {
+ margin-left: -1px;
+}
+
+/* ==========================================================================
+ Full page blocks
+
+ Blocks that take up the full width and height
+========================================================================== */
+.fullpageblock {
+ position: relative;
+ height: 100%;
+ min-height: 100%;
+}
+.fullpageblock .fullheight {
+ height: 100% !important;
+}
+.fullpageblock .fullheight > .mx-dataview-content {
+ height: inherit !important;
+}
+.fullpageblock .fullpage-overlay {
+ position: absolute;
+ z-index: 10;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+}
+
+/* ==========================================================================
+ Pageheader
+========================================================================== */
+.pageheader {
+ width: 100%;
+ margin-bottom: 24px;
+}
+
+/* ==========================================================================
+ Hero header
+
+========================================================================== */
+.headerhero {
+ width: 100%;
+ min-height: 240px;
+ background-color: #264ae5;
+ position: relative;
+ overflow: hidden;
+ padding: 24px;
+ margin-bottom: 24px;
+}
+
+.headerhero-title {
+ color: #fff;
+}
+
+.headerhero-subtitle {
+ color: #fff;
+}
+
+.headerhero-backgroundimage {
+ position: absolute;
+ z-index: 0;
+ top: 0;
+ height: 100%;
+ width: 100%;
+ filter: brightness(60%);
+}
+
+.btn.headerhero-action {
+ color: #fff;
+}
+
+.heroheader-overlay {
+ z-index: 1;
+}
+
+/* ==========================================================================
+ Form Block
+
+ Used in default forms
+========================================================================== */
+.formblock {
+ width: 100%;
+ margin-bottom: 24px;
+}
+
+/* ==========================================================================
+ Master Detail
+
+ A list with a listening dataview
+========================================================================== */
+.masterdetail {
+ background: #fff;
+}
+.masterdetail .masterdetail-master {
+ border-right: 1px solid #ced0d3;
+}
+.masterdetail .masterdetail-detail {
+ padding: 24px;
+}
+
+.masterdetail-vertical {
+ background: #fff;
+}
+.masterdetail-vertical .masterdetail-master {
+ border-bottom: 1px solid #ced0d3;
+}
+.masterdetail-vertical .masterdetail-detail {
+ padding: 24px;
+}
+
+/* ==========================================================================
+ User profile blocks
+ -
+========================================================================== */
+.wizard {
+ display: flex;
+ justify-content: space-between;
+ width: 100%;
+ margin-bottom: 24px;
+}
+
+.wizard-step {
+ position: relative;
+ width: 100%;
+ display: flex;
+ align-items: center;
+}
+
+.wizard-step-number {
+ position: relative;
+ z-index: 1;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 64px;
+ height: 64px;
+ color: #0a1325;
+ font-size: 24px;
+ border-radius: 50%;
+ background-color: #fff;
+ border-color: #ced0d3;
+}
+
+.wizard-step-text {
+ overflow: hidden;
+ white-space: nowrap;
+ text-decoration: none;
+ text-overflow: ellipsis;
+ color: #0a1325;
+}
+
+.wizard-circle .wizard-step {
+ flex-direction: column;
+}
+.wizard-circle .wizard-step::before {
+ position: absolute;
+ z-index: 0;
+ top: 32px;
+ display: block;
+ width: 100%;
+ height: 2px;
+ content: "";
+ background-color: #ced0d3;
+}
+
+.wizard-arrow .wizard-step {
+ height: 48px;
+ margin-left: calc(0px - (48px / 2));
+ padding-left: 24px;
+ background-color: #fff;
+ justify-content: flex-start;
+ border: 1px solid #ced0d3;
+}
+.wizard-arrow .wizard-step::before, .wizard-arrow .wizard-step::after {
+ position: absolute;
+ z-index: 1;
+ left: 100%;
+ margin-left: calc(0px - ((48px / 2) - 1px));
+ content: " ";
+ border-style: solid;
+ border-color: transparent;
+}
+.wizard-arrow .wizard-step::after {
+ top: 0;
+ border-width: calc((48px / 2) - 1px);
+ border-left-color: #fff;
+}
+.wizard-arrow .wizard-step::before {
+ top: -1px;
+ border-width: 24px;
+ border-left-color: #ced0d3;
+}
+.wizard-arrow .wizard-step:first-child {
+ margin-left: 0;
+ padding-left: 0;
+ border-top-left-radius: 4px;
+ border-bottom-left-radius: 4px;
+}
+.wizard-arrow .wizard-step:last-child {
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 4px;
+}
+.wizard-arrow .wizard-step:last-child::before, .wizard-arrow .wizard-step:last-child::after {
+ display: none;
+}
+
+.wizard-circle .wizard-step-active .wizard-step-number {
+ color: #1b34a0;
+ border-color: #1b34a0;
+ background-color: #d4dbfa;
+}
+.wizard-circle .wizard-step-active .wizard-step-text {
+ color: #1b34a0;
+}
+
+.wizard-circle .wizard-step-visited .wizard-step-number {
+ color: #2a7d2b;
+ border-color: #2a7d2b;
+ background-color: #d8f0d8;
+}
+.wizard-circle .wizard-step-visited .wizard-step-text {
+ color: #2a7d2b;
+}
+
+.wizard-arrow .wizard-step-active {
+ background-color: #d4dbfa;
+}
+.wizard-arrow .wizard-step-active .wizard-step-text {
+ color: #1b34a0;
+}
+.wizard-arrow .wizard-step-active::after {
+ border-left-color: #d4dbfa;
+}
+
+.wizard-arrow .wizard-step-visited .wizard-step-text {
+ color: #264ae5;
+}
+
+.login-formblock {
+ display: flex;
+ flex-direction: column;
+}
+
+.login-form {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+}
+
+.listtab-tabs.mx-tabcontainer {
+ background: #fff;
+}
+.listtab-tabs.mx-tabcontainer .mx-tabcontainer-tabs {
+ background: #264ae5;
+ margin-bottom: 0;
+}
+.listtab-tabs.mx-tabcontainer .mx-tabcontainer-tabs li > a {
+ color: #fff;
+ opacity: 0.6;
+}
+.listtab-tabs.mx-tabcontainer .mx-tabcontainer-tabs li > a:hover, .listtab-tabs.mx-tabcontainer .mx-tabcontainer-tabs li > a:focus {
+ color: #fff;
+}
+.listtab-tabs.mx-tabcontainer .mx-tabcontainer-tabs li.active > a {
+ opacity: 1;
+ color: #fff;
+ border-color: #fff;
+}
+.listtab-tabs.mx-tabcontainer .mx-tabcontainer-tabs li.active > a:hover, .listtab-tabs.mx-tabcontainer .mx-tabcontainer-tabs li.active > a:focus {
+ color: #fff;
+ border-color: #fff;
+}
+
+.springboard-grid {
+ display: flex;
+ flex-direction: column;
+}
+.springboard-grid .row {
+ flex: 1;
+}
+.springboard-grid .row .col {
+ display: flex;
+}
+
+.springboard-header {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+}
+
+.springboard-card {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+}
+
+.statuspage-section {
+ display: flex;
+ flex-direction: column;
+}
+
+.statuspage-content {
+ flex: 1;
+}
+
+.statuspage-icon {
+ color: #fff;
+}
+
+.statuspage-subtitle {
+ opacity: 0.6;
+}
+
+/*# sourceMappingURL=theme.compiled.css.map */
diff --git a/theme-cache/web/theme.compiled.css.map b/theme-cache/web/theme.compiled.css.map
new file mode 100644
index 00000000..f8f75e05
--- /dev/null
+++ b/theme-cache/web/theme.compiled.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["../../themesource/atlas_core/web/main.scss","../../themesource/atlas_core/web/core/_legacy/bootstrap/_bootstrap.scss","../../themesource/atlas_core/web/core/_legacy/bootstrap/_bootstrap-rtl.scss","../../themesource/atlas_core/web/core/_legacy/_mxui.scss","../../themesource/atlas_core/web/core/base/_animation.scss","../../themesource/atlas_core/web/core/base/_flex.scss","../../theme/web/custom-variables.scss","../../themesource/atlas_core/web/core/base/_spacing.scss","../../themesource/atlas_core/web/core/base/mixins/_spacing.scss","../../themesource/atlas_core/web/core/base/mixins/_layout-spacing.scss","../../themesource/atlas_core/web/core/base/_base.scss","../../themesource/atlas_core/web/core/base/_login.scss","../../themesource/atlas_core/web/core/widgets/_input.scss","../../themesource/atlas_core/web/core/helpers/_background.scss","../../themesource/atlas_core/web/core/widgets/_label.scss","../../themesource/atlas_core/web/core/widgets/_badge.scss","../../themesource/atlas_core/web/core/helpers/_label.scss","../../themesource/atlas_core/web/core/widgets/_badge-button.scss","../../themesource/atlas_core/web/core/helpers/_badge-button.scss","../../themesource/atlas_core/web/core/widgets/_button.scss","../../themesource/atlas_core/web/core/helpers/_button.scss","../../themesource/atlas_core/web/core/base/mixins/_buttons.scss","../../themesource/atlas_core/web/core/widgets/_check-box.scss","../../themesource/atlas_core/web/core/widgets/_grid.scss","../../themesource/atlas_core/web/core/widgets/_data-grid.scss","../../themesource/atlas_core/web/core/base/mixins/_animations.scss","../../themesource/atlas_core/web/core/helpers/_data-grid.scss","../../themesource/atlas_core/web/core/widgets/_data-view.scss","../../themesource/atlas_core/web/core/widgets/_date-picker.scss","../../themesource/atlas_core/web/core/widgets/_header.scss","../../themesource/atlas_core/web/core/widgets/_glyphicon.scss","../../themesource/atlas_core/web/core/widgets/_group-box.scss","../../themesource/atlas_core/web/core/helpers/_group-box.scss","../../themesource/atlas_core/web/core/base/mixins/_groupbox.scss","../../themesource/atlas_core/web/_variables.scss","../../themesource/atlas_core/web/core/helpers/_image.scss","../../themesource/atlas_core/web/core/widgets/_list-view.scss","../../themesource/atlas_core/web/core/helpers/_list-view.scss","../../themesource/atlas_core/web/core/widgets/_modal.scss","../../themesource/atlas_core/web/core/widgets/_navigation-bar.scss","../../themesource/atlas_core/web/core/helpers/_navigation-bar.scss","../../themesource/atlas_core/web/core/widgets/_navigation-list.scss","../../themesource/atlas_core/web/core/widgets/_navigation-tree.scss","../../themesource/atlas_core/web/core/helpers/_navigation-tree.scss","../../themesource/atlas_core/web/core/widgets/_pop-up-menu.scss","../../themesource/atlas_core/web/core/widgets/_simple-menu-bar.scss","../../themesource/atlas_core/web/core/helpers/_simple-menu-bar.scss","../../themesource/atlas_core/web/core/widgets/_radio-button.scss","../../themesource/atlas_core/web/core/widgets/_tab-container.scss","../../themesource/atlas_core/web/core/helpers/_tab-container.scss","../../themesource/atlas_core/web/core/widgets/_table.scss","../../themesource/atlas_core/web/core/helpers/_table.scss","../../themesource/atlas_core/web/core/widgets/_template-grid.scss","../../themesource/atlas_core/web/core/helpers/_template-grid.scss","../../themesource/atlas_core/web/core/widgets/_typography.scss","../../themesource/atlas_core/web/core/helpers/_typography.scss","../../themesource/atlas_core/web/core/widgets/_layout-grid.scss","../../themesource/atlas_core/web/core/widgets/_pagination.scss","../../themesource/atlas_core/web/core/widgets/_progress.scss","../../themesource/atlas_core/web/core/widgets/_progress-bar.scss","../../themesource/atlas_core/web/core/helpers/_progress-bar.scss","../../themesource/atlas_core/web/core/widgets/_progress-circle.scss","../../themesource/atlas_core/web/core/helpers/_progress-circle.scss","../../themesource/atlas_core/web/core/widgets/_rating.scss","../../themesource/atlas_core/web/core/helpers/_rating.scss","../../themesource/atlas_core/web/core/widgets/_range-slider.scss","../../themesource/atlas_core/web/core/helpers/_slider-color-variant.scss","../../themesource/atlas_core/web/core/helpers/_range-slider.scss","../../themesource/atlas_core/web/core/widgets/_slider.scss","../../themesource/atlas_core/web/core/helpers/_slider.scss","../../themesource/atlas_core/web/core/widgets/_timeline.scss","../../themesource/atlas_core/web/core/widgets/_tooltip.scss","../../themesource/atlas_core/web/core/helpers/_helper-classes.scss","../../themesource/atlas_core/web/core/widgets/_barcode-scanner.scss","../../themesource/atlas_core/web/core/widgets/_accordion.scss","../../themesource/atlas_core/web/core/helpers/_accordion.scss","../../themesource/atlas_core/web/core/widgetscustom/_dijit-widget.scss","../../themesource/atlas_core/web/core/widgets/_switch.scss","../../themesource/atlas_core/web/layouts/_layout-atlas.scss","../../themesource/atlas_core/web/layouts/_layout-atlas-phone.scss","../../themesource/atlas_core/web/layouts/_layout-atlas-responsive.scss","../../themesource/atlas_core/web/layouts/_layout-atlas-tablet.scss","../../themesource/atlas_web_content/web/buildingblocks/_alert.scss","../../themesource/atlas_web_content/web/buildingblocks/_breadcrumb.scss","../../themesource/atlas_web_content/web/buildingblocks/_card.scss","../../themesource/atlas_web_content/web/buildingblocks/_chat.scss","../../themesource/atlas_web_content/web/buildingblocks/_controlgroup.scss","../../themesource/atlas_web_content/web/buildingblocks/_pageblocks.scss","../../themesource/atlas_web_content/web/buildingblocks/_pageheader.scss","../../themesource/atlas_web_content/web/buildingblocks/_heroheader.scss","../../themesource/atlas_web_content/web/buildingblocks/_formblock.scss","../../themesource/atlas_web_content/web/buildingblocks/_master-detail.scss","../../themesource/atlas_web_content/web/buildingblocks/_userprofile.scss","../../themesource/atlas_web_content/web/buildingblocks/_wizard.scss","../../themesource/atlas_web_content/web/pagetemplates/_login.scss","../../themesource/atlas_web_content/web/pagetemplates/_list-tab.scss","../../themesource/atlas_web_content/web/pagetemplates/_springboard.scss","../../themesource/atlas_web_content/web/pagetemplates/_statuspage.scss"],"names":[],"mappings":";AAQY;ACRZ;AAAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ADOI;AACA;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAaI;;;AAEJ;AAAA;AAAA;AAAA;EAII;EACA;;;AAEJ;EACI;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;AAAA;AAAA;EAII;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;EAKI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;AAAA;AAAA;EAII;EACA;;;AAMJ;AAAA;EAEI;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;EACA;EACA;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;AACA;EACI;AAAA;AAAA;IAGI;IACA;IACA;IACA;IACA;;;EAEJ;AAAA;IAEI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;IAEA;;;EAEJ;IACI;;;EAEJ;AAAA;IAEI;;;EAEJ;IACI;;;EAEJ;AAAA;AAAA;IAGI;IACA;;;EAEJ;AAAA;IAEI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;AAAA;IAEI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;AAGR;EACI;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;EACA;;;AAEJ;EACI;EAEA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;EAII;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;EAKI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYI;EACA;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAwBI;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAMI;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAMI;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYI;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;IACI;;;AAGR;AAAA;EAEI;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;AAAA;AAAA;EAII;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;;EAEJ;IACI;;;AAGR;AAAA;EAEI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;AAAA;AAAA;EAGI;EACA;EACA;EACA;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;AAAA;EAEI;EACA;EACA;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAMI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAMI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;EAII;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;IACI;;;AAGR;EACI;IACI;;;AAGR;EACI;IACI;;;AAGR;EACI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAytBJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAMI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAMI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAMI;;;AAEJ;EACI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAMI;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;EAKI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;EAKI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;EAKI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;EAKI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;EAKI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;IACI;IACA;IACA;IACA;IACA;;;EAEJ;IACI;;;EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;IAMI;;;EAEJ;IACI;;;EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;IAMI;;;EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;IAMI;;;EAEJ;AAAA;AAAA;AAAA;IAII;;;AAGR;EACI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;AAAA;EAGI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAmFJ;AAAA;EAEI;EACA;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;EACA;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;EAII;EACA;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAMI;;;AAEJ;AAAA;AAAA;AAAA;EAII;;;AAEJ;AAAA;AAAA;AAAA;EAII;;;AAEJ;AAAA;AAAA;EACI;EACA;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAUI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAUI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAUI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;IACI;IACA;IACA;;;EAEJ;IACI;IACA;IACA;;;EAEJ;AAAA;AAAA;AAAA;AAAA;IACI;;;EAEJ;IACI;IACA;;;EAEJ;AAAA;AAAA;IAGI;;;EAEJ;IACI;;;EAEJ;IACI;IACA;;;EAEJ;AAAA;IAEI;IACA;IACA;IACA;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;IACA;;;EAEJ;IACI;;;AAGR;AAAA;AAAA;AAAA;EAII;EACA;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;IACI;IACA;IACA;;;AAGR;EACI;;;AAEJ;EACI;IACI;;;AAGR;EACI;IACI;;;AAGR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAMI;EACA;EACA;;;AAEJ;AAAA;AAAA;EAGI;EACA;;;AAEJ;AAAA;EAEI;EACA;EACA;EACA;;;AAEJ;AAAA;AAAA;EAGI;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAMI;EACA;EACA;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAkBI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAMI;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;EAGI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAkBI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAMI;EACA;EACA;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAkBI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAMI;EACA;EACA;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAkBI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAMI;EACA;EACA;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAkBI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAMI;EACA;EACA;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAkBI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;EAKI;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;EAII;;;AAEJ;AAAA;EAEI;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;EAII;EACA;;;AAEJ;AAAA;EAEI;EACA;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;EACA;EACA;;;AAcJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;EACA;;;AAEJ;AAAA;AAAA;EAGI;EACA;EACA;EACA;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;AAAA;EAEI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;AAAA;EAEI;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;EACA;;;AAEJ;EACI;IACI;IACA;;;EAEJ;IACI;IACA;;;AAGR;AAAA;EAEI;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAQI;;;AAEJ;AAAA;AAAA;AAAA;EAII;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;AAAA;EAGI;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;AAAA;AAAA;EAII;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;AAAA;AAAA;AAAA;EAII;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;AAAA;AAAA;EAGI;EACA;EACA;EACA;EACA;;;AAEJ;AAAA;AAAA;EAGI;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAMI;;;AAEJ;AAAA;AAAA;EAGI;EACA;EACA;EACA;EACA;;;AAEJ;AAAA;AAAA;EAGI;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAMI;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;AAAA;EAEI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOI;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;EACA;EACA;EACA;;;AAEJ;AAAA;AAAA;EAGI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;AAAA;EAGI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;IACI;IACA;;;EAEJ;IACI;;;AAGR;EACI;EACA;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;EACI;IACI;IACA;;;EAEJ;AAAA;AAAA;IAGI;;;AAGR;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;AAAA;AAAA;EAGI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;IACI;IACA;;;EAEJ;IACI;;;AAGR;EACI;;;AAEJ;EACI;EACA;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;EACI;IACI;IACA;;;EAEJ;AAAA;AAAA;IAGI;;;AAGR;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;IACI;;;AAGR;EACI;IACI;;;AAGR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;IACI;IACA;IACA;IACA;;;EAEJ;IACI;IACA;IACA;IACA;;;EAEJ;IACI;;;EAEJ;AAAA;AAAA;IAGI;IACA;;;AAGR;AAAA;EAEI;;;AAEJ;EACI;AAAA;IAEI;;;AAGR;AAAA;AAAA;AAAA;EAII;EACA;;;AAEJ;EACI;AAAA;AAAA;AAAA;IAII;IACA;;;AAGR;EACI;EACA;;;AAEJ;EACI;IACI;;;AAGR;AAAA;EAEI;EACA;EACA;EACA;;;AAEJ;EACI;AAAA;IAEI;;;AAGR;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;;;AAEJ;EACI;AAAA;IAEI;;;AAGR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;IACI;;;AAGR;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;EAEJ;AAAA;IAEI;;;EAEJ;IACI;;;EAEJ;AAAA;IAEI;;;AAGR;EACI;IACI;IACA;;;EAEJ;IACI;;;EAEJ;IACI;IACA;;;AAGR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;IACI;IACA;IACA;;;EAEJ;IACI;IACA;IACA;;;EAEJ;AAAA;AAAA;AAAA;AAAA;IACI;;;EAEJ;IACI;IACA;;;EAEJ;AAAA;AAAA;IAGI;;;EAEJ;IACI;;;EAEJ;IACI;IACA;;;EAEJ;AAAA;IAEI;IACA;IACA;IACA;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;IACA;;;EAEJ;IACI;;;AAGR;EACI;IACI;;;EAEJ;IACI;;;AAGR;EACI;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;AAGR;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;IACI;IACA;IACA;;;AAGR;EACI;IACI;;;EAEJ;IACI;IACA;;;EAEJ;IACI;;;AAGR;EACI;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;AAAA;EAGI;EACA;;;AAEJ;AAAA;AAAA;EAGI;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;AAAA;EAGI;EACA;;;AAEJ;EACI;IACI;;;EAEJ;AAAA;IAEI;IACA;;;EAEJ;AAAA;AAAA;IAGI;IACA;;;EAEJ;AAAA;AAAA;IAGI;IACA;;;AAGR;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;AAAA;AAAA;EAII;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;AAAA;EAGI;EACA;;;AAEJ;AAAA;AAAA;EAGI;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;AAAA;EAGI;EACA;;;AAEJ;EACI;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;AAAA;IAEI;IACA;;;EAEJ;AAAA;AAAA;IAGI;IACA;;;EAEJ;AAAA;AAAA;IAGI;IACA;;;AAGR;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;AAAA;AAAA;EAII;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;AAAA;AAAA;EAII;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAMI;EACA;EACA;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAMI;EACA;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;EACA;EACA;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;AAAA;AAAA;EAII;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;EAEI;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;;;AAEJ;EACI;IACI;;;EAEJ;AAAA;IAEI;IACA;;;EAEJ;AAAA;IAEI;;;AAGR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;EAEI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAuOJ;EACI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;AAAA;EAGI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;EACA;EACA;;;AAEJ;AAAA;AAAA;EAGI;EACA;EACA;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;AAAA;AAAA;EAGI;EACA;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EASI;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;AAAA;EAGI;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;AAAA;EAGI;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;AAAA;EAGI;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;AAAA;EAGI;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;EAKI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;EAEI;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;AAAA;AAAA;EAGI;EACA;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;AAAA;AAAA;EAII;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAQI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAQI;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;AAAA;AAAA;EAII;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAQI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAQI;;;AAEJ;AAAA;AAAA;AAAA;EAII;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAQI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAQI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;EAKI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAMJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;;;AAGR;EACI;IACI;;;AAGR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;IACI;IACA;IACA;IAEA;IACA;IACA;IACA;;;EAEJ;AAAA;IAEI;IACA;IACA;;;EAEJ;AAAA;IAEI;IACA;IACA;;;EAEJ;AAAA;AAAA;IAGI;IACA;IACA;;;AAGR;AAAA;AAAA;EAGI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EAOA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EAOA;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;EACA;EACA;EACA;;;AAEJ;AAAA;AAAA;AAAA;EAII;EACA;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;EAEI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;AAAA;AAAA;AAAA;IAII;IACA;IACA;IACA;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;IACI;IACA;IACA;;;EAEJ;IACI;;;AAGR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EA8BI;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAeI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;AAEJ;AAAA;AAAA;AAAA;EAII;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYI;;;AAEJ;EACI;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;AAAA;IAEI;;;AAGR;EACI;IACI;;;AAGR;EACI;IACI;;;AAGR;EACI;IACI;;;AAGR;EACI;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;AAAA;IAEI;;;AAGR;EACI;IACI;;;AAGR;EACI;IACI;;;AAGR;EACI;IACI;;;AAGR;EACI;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;AAAA;IAEI;;;AAGR;EACI;IACI;;;AAGR;EACI;IACI;;;AAGR;EACI;IACI;;;AAGR;EACI;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;AAAA;IAEI;;;AAGR;EACI;IACI;;;AAGR;EACI;IACI;;;AAGR;EACI;IACI;;;AAGR;EACI;IACI;;;AAGR;EACI;IACI;;;AAGR;EACI;IACI;;;AAGR;EACI;IACI;;;AAGR;EACI;;;AAEJ;EACI;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;AAAA;IAEI;;;AAGR;EACI;;;AAEJ;EACI;IACI;;;AAGR;EACI;;;AAEJ;EACI;IACI;;;AAGR;EACI;;;AAEJ;EACI;IACI;;;AAGR;EACI;IACI;;;ACxpNJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;IACI;IACA;IACA;;EAEJ;IACI;IACA;;;AAIR;EACI;EACA;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;EACA;;AAGJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAgDI;EACA;EACA;EACA;;AAGJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;IAYI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;;AAGR;EACI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;IAYI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;;AAGR;EACI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;IAYI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;;AAIR;EACI;;AAGJ;EACI;;AAGJ;EACI;IACI;;EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;IAMI;IACA;;EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;IAMI;IACA;;;AAIR;AAAA;EAEI;EACA;;AAGJ;AAAA;AAAA;AAAA;EAII;EACA;;AAGJ;AAAA;EAEI;EACA;;AAGJ;AAAA;EAEI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;IACI;IACA;;EAEJ;AAAA;IAEI;IACA;;;AAGR;EACI;IACI;;;AAIR;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;IACI;IACA;;EAEJ;IACI;IACA;;;AAIR;AAAA;EAEI;;AAGJ;AAAA;AAAA;AAAA;EAII;EACA;;AAGJ;EACI;EACA;;AAGJ;AAAA;EAEI;;AAGJ;AAAA;AAAA;EAGI;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;;AAGJ;EACI;;AAGJ;AAAA;EAEI;;AAGJ;EACI;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;;AAGJ;AAAA;AAAA;AAAA;EAII;EACA;;AAGJ;EACI;;AAGJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOI;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;AAAA;EAEI;EACA;;AAGJ;AAAA;EAEI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;IACI;;;AAGR;EACI;IACI;;;AAIR;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;AAAA;IAEI;IACA;;;AAIR;EACI;EACA;EACA;;AAGJ;EACI;AAAA;IAEI;;;AAGR;EACI;IACI;;EAEJ;IACI;;;AAGR;EACI;IACI;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;IACA;;EAEJ;IACI;IACA;;;AAGR;EACI;IACI;;EAEJ;IACI;IACA;;;AAIR;EACI;;AAGJ;AAAA;EAEI;EACA;EACA;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;EACA;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;AAAA;EAEI;;AAGJ;AAAA;EAEI;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAGJ;AAAA;EAEI;EACA;;AAGJ;AAAA;EAEI;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAGJ;AAAA;EAEI;EACA;;AAGJ;AAAA;EAEI;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAaI;EACA;;AAGJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAQI;EACA;;AAGJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAQI;EACA;;AAGJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAQI;EACA;;AAGJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYI;EACA;;AAGJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYI;EACA;;AAGJ;AAAA;AAAA;AAAA;EAII;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;EAKA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EAKA;EACA;EACA;EACA;;AAGJ;AAAA;EAEI;EACA;EACA;;AAGJ;AAAA;EAEI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;AAAA;IAEI;IACA;;EAEJ;AAAA;IAEI;IACA;;EAEJ;IACI;IACA;IACA;;;AAIR;EACI;;AAGJ;EACI;;;ACzsDZ;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;AAAA;AA8+GA;AAEA;AAEA;AAEA;AAEA;AAEA;AAl/GI;AAAA;AAAA;AAIA;AACI;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;AAAuB;;;AAG3B;AACI;AAAA;AAAA;AAAA;EAIA;AAAuB;EACvB;EACA;EACA;;;AAGJ;AACI;EACA;EACA;;;AAGJ;AACI;EACA;AAAoB;EACpB;AAAoB;;;AAExB;EACI;AAA+B;;;AAGnC;AACI;EACA;AAA2B;EAC3B;AAAoB;EACpB;;;AAGJ;AAAA;AAEI;EACA;EACA;AAAwB;EACxB;;;AAEJ;EACI;AAAwB;EACxB;EACA;AAAkC;;;AAGtC;AAAA;AAAA;EAGI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;AAAuB;EACvB;AAA2B;;;AAE/B;AAAA;AAAA;EAGI;EACA;;;AAEJ;AAAA;AAEI;EACA;EACA;;;AAEJ;EACI;;;AAGJ;EACI;EACA;;;AAGJ;AACI;EACA;EACA;EACA;;;AAGJ;AAAA;AAAA;AAAA;AAIA;EACI;EACA;EACA;EACA;EACA;EACA;;;AAGJ;AACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;AACI;EACA;EACA;EACA;EACA;;;AAGJ;AACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;AACI;EACA;;;AAGJ;AACI;EACA;AAAkB;;;AAGtB;AAAA;AAAA;AAGA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMI;AAAA;EAEA;;;AAEJ;EACI;AAAgB;;;AAGpB;EACI;AAA4B;EAC5B;;;AAGJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;AAAkC;EAClC;;;AAEJ;EACI;AAEA;AAAA;AAAA;EAGA;;;AAEJ;EACI;;;AAGJ;EACI;AAAgB;;;AAGpB;AAAA;EAEI;EACA;EACA;EACA;;;AAGJ;AACA;EACI;;;AAEJ;AAAA;AAEI;EACA;EACA;EACA;EACA;AAAgB;;;AAGpB;AAAA;AAAA;AAAA;AAKA;AACI;EACA;EACA;;;AAGJ;AACI;EACA;AAAqB;EACrB;;;AAGJ;AACI;EACA;EACA;;;AAGJ;AACA;EACI;;;AAGJ;AAAA;AAAA;AAAA;AAII;EACA;EACA;;;AAGJ;EACI;AAAgB;;;AAEpB;EACI;AAAqB;;;AAGzB;AACI;EACA;AACA;;;AAGJ;AACI;EACA;;;AAGJ;AAAA;AAAA;AAAA;EAII;;;AAGJ;AACI;EACA;;;AAGJ;EACI;;;AAEJ;EACI;;;AAGJ;EACI;;;AAEJ;AACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;AACI;AAAA;EAEA;;;AAEJ;EACI;;;AAGJ;AAAA;AAAA;AAAA;EAII;EACA;;;AAGJ;AACI;EACA;;;AAGJ;AACI;AAAA;AAAA;AAAA;EAIA;;;AAGJ;EACI;;;AAGJ;AAAA;AAAA;AAAA;AAKA;EACI;EACA;AAAa;EACb;;;AAGJ;AAAA;EAEI;;;AAEJ;EACI;AAAgB;;;AAEpB;EACI;AAAa;;;AAEjB;AAAA;EAEI;AAAuB;;;AAG3B;AACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAAsB;;;AAG1B;EACI;;;AAGJ;AACA;EACI;AAAe;;;AAEnB;EACI;;;AAGJ;AAAA;EAEI;AAAa;;;AAEjB;AAAA;EAEI;;;AAEJ;AACI;EACA;EACA;EACA;AACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;AAAA;AAGI;AAAA;AAAA;EAGA;EACA;EACA;EACA;;;AAEJ;AAAA;AAAA;EAGI;AAAqB;EACrB;AAAqB;;;AAEzB;EACI;;;AAEJ;EACI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAeI;AAAmB;;;AAEvB;AAAA;AAEI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAGJ;AAEA;AAAA;AAEI;EACA;AAAoC;;;AAExC;AAAA;AAEI;EACA;;;AAGJ;AACI;EACA;;;AAEJ;AACI;EACA;;;AAEJ;EACI;AAAa;;;AAGjB;AACI;EACA;;;AAGJ;AAEA;EACI;EACA;EACA;;;AAEJ;EACI;EACA;AAA+B;EAC/B;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;EACA;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;EACI;AAA2B;;;AAE/B;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;AAA4B;EAC5B;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;AACI;AAAA;AAAA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;AAAW;;;AAEf;EACI;;;AAGJ;EACI;;;AAEJ;EACI;AAAY;;;AAEhB;EACI;EACA;;;AAEJ;EACI;;;AAGJ;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA;AAAA;EAGI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;AAAA;EAEI;EACA;EACA;;;AAGJ;AACI;EACA;;;AAGJ;EACI;;;AAGJ;AAAA;AAEI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAGJ;AACI;EACA;EACA;;;AAGJ;AAAA;AAAA;AAIA;EACI;AAAY;;;AAEhB;AACI;EACA;EACA;EACA;AAAyB;EACzB;AAAY;;;AAGhB;AACI;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAGJ;AACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAAa;EACb;EACA;EACA;;;AAGJ;AACI;EACA;EACA;EACA;;;AAGJ;AACI;EACA;AACA;EACA;;;AAGJ;AACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAGJ;AAAA;AAAA;AAIA;EACI;EACA;EACA;AACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;;AAEJ;EACI;AAAe;;;AAGnB;EACI;;;AAGJ;AAAA;AAGA;EACI;EACA;EACA;;;AAGJ;AAAA;AAAA;AAAA;EAII;EACA;;;AAGJ;EACI;;;AAGJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA;EAEI;EACA;EACA;AAAY;;;AAGhB;AAAA;EAEI;AAA+B;EAC/B;AAAY;;;AAGhB;AACI;AAAA;EAEA;;;AAGJ;AACI;EACA;EACA;AAAgB;;;AAGpB;;AAAA;AAAA;AAAA;AAMA;EACI;EACA;EACA;AAAa;EACb;EACA;EACA;EACA;;;AAEJ;EACI;AAAY;;;AAGhB;EACI;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;;;AAGJ;AACA;EACI;EACA;;;AAEJ;AAAA;AAAA;EAGI;;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAGJ;EACI;;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;;;AAGJ;AAAA;EAEI;EACA;EACA;;;AAGJ;AAAA;EAEI;EACA;;;AAGJ;AAAA;AAAA;EAGI;EACA;EACA;EACA;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAGJ;AAEA;EACI;EACA;AAAgB;EAChB;;;AAGJ;AACI;AAAA;AAAA;AAAA;EAIA;;;AAGJ;AAAA;EAEI;;;AAGJ;AAEA;EACI;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAII;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;AAEI;EACA;;;AAEJ;AAAA;AAEI;EACA;EACA;AAAwB;;;AAE5B;AAAA;AAEI;EACA;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQI;EACA;AAA0B;;;AAG9B;AAAA;AAEI;EACA;;;AAGJ;AAAA;AAAA;AAAA;AAKA;EACI;EACA;EACA;;;AAGJ;AACI;AAAA;AAAA;EAGA;EACA;EACA;EACA;EACA;;;AAEJ;AAAA;AAAA;AAGI;AAAA;AAAA;EAGA;EACA;;;AAGJ;AACI;EACA;EACA;EACA;EACA;;;AAEJ;AACI;EACA;AAAc;EACd;EACA;EACA;EACA;AAAgB;;;AAEpB;EACI;AAAmB;;;AAEvB;AACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;AACI;EACA;;;AAGJ;AAAA;EAEI;EACA;AAAe;;;AAGnB;AAAA;AAEI;EACA;;;AAGJ;AAEA;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAGJ;AACA;AAAA;EAEI;EACA;EACA;;;AAGJ;AAAA;EAEI;;;AAGJ;EACI;;;AAGJ;AACI;EACA;;;AAGJ;AAEA;EACI;AAAa;EACb;AAAa;;;AAEjB;AAAA;EAEI;EACA;;;AAGJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAGJ;EACI;AAAqB;;;AAGzB;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;AAAA;AAAA;AAAA;AAAA;EAKI;EACA;;;AAGJ;EACI;EACA;EACA;;;AAGJ;AACI;EACA;EACA;EACA;EACA;;;AAGJ;AAEA;EACI;;;AAGJ;AAEA;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAGJ;AACA;EACI;;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAGJ;AAAA;AAAA;AAAA;AAAA;AAKA;EACI;;;AAGJ;AAAA;AAEI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOA;EACA;;;AAGJ;AAAA;EAEI;;;AAGJ;AACI;EACA;EACA;;;AAEJ;AAAA;AAAA;EAGI;EACA;;;AAGJ;EACI;;;AAGJ;EACI;AAAqC;;;AAGzC;EACI;EACA;;;AAEJ;EACI;;;AAGJ;EACI;;;AAEJ;EACI;;;AAGJ;EACI;EACA;;;AAGJ;AACA;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;AACA;EACI;AAAe;EACf;AAAoB;;;AAExB;EACI;AAAiB;;;AAErB;AAAA;EAEI;AAAqB;;;AAEzB;AACI;EACA;;;AAGJ;AAEA;EACI;AAAiB;;;AAGrB;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA;EACI;AAAY;EACZ;AAAmB;;;AAEvB;AACI;EACA;;;AAEJ;EACI;AAAa;;;AAGjB;AAAA;AAAA;AAAA;EAII;EACA;AAA8B;;;AAGlC;EACI;;;AAEJ;AAAA;AAAA;AAAA;EAII;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;AAAkB;EAClB;;;AAEJ;EACI;EACA;;;AAGJ;AACI;EACA;;;AAGJ;EACI;;;AAEJ;EACI;;;AAGJ;EACI;EACA;AAAa;;;AAEjB;EACI;;;AAGJ;EACI;;;AAEJ;EACI;;;AAGJ;EACI;EACA;AAAa;;;AAEjB;EACI;;;AAGJ;AAAA;EAEI;;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;AACI;EACA;;;AAEJ;EACI;AAAiB;;;AAGrB;EACI;AAAU;;;AAEd;EACI;AAAW;;;AAEf;EACI;AAAW;;;AAEf;EACI;AAAY;;;AAGhB;AAAA;AAEI;EACA;AAAuB;;;AAG3B;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;AACI;AAAA;AAAA;EAGA;EACA;;;AAEJ;AACI;EACA;;;AAEJ;AACI;EACA;EACA;EACA;;;AAGJ;AAEA;EACI;EACA;EACA;;;AAGJ;EACI;;;AAGJ;AAAA;AAAA;AAGI;AAAA;AAAA;EAGA;;;AAGJ;AACA;EACI;AAA+B;EAC/B;;;AAGJ;AAAA;AAEI;EACA;;;AAGJ;AAAA;AAAA;AAGI;EACA;EACA;;;AAGJ;EACI;;;AAGJ;AACA;EACI;AAAgB;EAChB;;;AAGJ;EACI;AAAa;;;AAGjB;AACI;EACA;;;AAGJ;AAAA;EAEI;;;AAGJ;AACI;EACA;;;AAGJ;AACI;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;;;AAGJ;AAEA;EACI;EACA;EACA;AAAkB;;;AAGtB;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;;;AAGJ;AACA;AAAA;EAEI;EACA;;;AAGJ;EACI;AACA;EACA;;;AAGJ;EACI;;;AAGJ;AAEA;EACI;EACA;EACA;EACA;;;AAGJ;EACI;;;AAEJ;EACI;;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;AAAkB;;;AAEtB;EACI;AAAmB;;;AAEvB;EACI;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;;;AAGJ;AACA;EACI;EACA;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;EACI;;;AAGJ;AAAA;EAEI;AAAoB;;;AAGxB;EACI;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;AAAW;;;AAEf;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;AAAmB;;;AAGvB;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;AACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;;;AAGJ;AAAA;EAEI;;;AAEJ;AAAA;EAEI;;;AAGJ;AACA;EACI;AAAwB;EACxB;EACA;EACA;EACA;EACA;;;AAGJ;AACA;AAAA;EAEI;;;AAEJ;EACI;;;AAGJ;AACA;EACI;EACA;AAAkB;;;AAEtB;EACI;AAAa;;;AAEjB;EACI;;;AAGJ;AACI;EACA;;;AAGJ;AAAA;AAAA;AAIA;EACI;EACA;EACA;EACA;;;AAGJ;AACA;EACI;AACA;EACA;;;AAGJ;EACI;AAAgB;;;AAGpB;AAAA;EAEI;;;AAGJ;AAEA;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;;;AAGJ;AAAA;EAEI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;;;AAGJ;EACI;;;AAEJ;EACI;;;AAGJ;AACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;AAAA;EAEI;AAAiC;;;AAErC;EACI;AAA4B;EAC5B;;;AAGJ;EACI;;;AAEJ;EACI;;;AAGJ;AAAA;EAEI;;;AAGJ;AACA;EACI;EACA;EACA;;;AAEJ;EACI;AAAwB;;;AAE5B;AAAA;EAEI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;EAKI;;;AAGJ;EACI;EACA;;;AAGJ;EACI;AAAqB;;;AAGzB;AAAA;AAAA;EAGI;;;AAGJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAMI;EACA;;;AAGJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAGJ;AACI;EACA;;;AAEJ;AAAA;AAEI;EACA;;;AAGJ;AACA;EACI;;;AAGJ;AACA;EACI;;;AAGJ;AACA;EACI;;;AAGJ;AACA;EACI;;;AAGJ;AACA;AAAA;AAAA;AAAA;AAII;EACA;;;AAGJ;AACA;EACI;AAAc;AAEd;EACA;EACA;AAA2B;;;AAE/B;AACI;EACA;;;AAGJ;AAAA;EAEI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAGJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;;;AAGJ;AACA;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;AACA;AAAA;AAAA;;;AAKJ;AAEA;AACA;AAAA;AAAA;AAAA;EAII;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;EACI;EACA;;;AAGJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAGJ;EACI;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;EAEI;;;AAGJ;AACI;AAAA;AAAA;EAGA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAGJ;AACA;EACI;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;AACI;EACA;EACA;EACA;;;AAGJ;AACI;EACA;;;AAGJ;EACI;EACA;EACA;;;AAgBJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;AAAA;EAEI;;;AAGJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAAY;;;AAGhB;AACA;EACI;EACA;AAAkB;;;AAEtB;AAAA;EAEI;EACA;EACA;;;AAEJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;EACA;;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;;;AAGJ;AAAA;EAEI;EACA;;;AAGJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;EAEI;EACA;;;AAGJ;EACI;;;AAGJ;AACA;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;;;AAGJ;AACA;EACI;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;AAAA;EAEI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;AAAA;EAEI;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;;;AAGJ;AACA;EACI;AAAoB;EACpB;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAGJ;AACA;EACI;;;AAKJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;AAAA;AAAA;EAGI;;;AAGJ;AACA;AAAA;EAEI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;IACI;;EAEJ;IACI;;;AAIR;AAAA;EAEI;;;AAGJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAGJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;;;AAKJ;EACI;;;AAEJ;AAAA;AAAA;AAAA;EAII;;;AAGJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAGJ;EACI;;;AAOJ;EACI;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;EACI;EACA;;;AAEJ;EACI;;;AAQJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAKJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAGJ;AAAA;EAEI;;;AAEJ;EACI;EACA;EACA;;;AAGJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAGJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAGJ;AACA;EACI;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;EAEI;;;AAGJ;EACI;EACA;EACA;EACA;EACA;AACA;AAAA;AAAA;EAGA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;EACA;AACA;AAAA;AAAA;EAGA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAGJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;AAAmB;;;AAEvB;AAAA;EAEI;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;;;AAEJ;EACI;EACA;;;AA2BJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;;;AAEJ;AAAA;AAAA;EAGI;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EAEA;EACA;;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAGJ;AAAA;AAAA;AAAA;EAII;EACA;EACA;;;AAGJ;AAAA;EAEI;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;EAEI;;;AAGJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;EACI;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAGJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAUJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;AACA;AAAA;EAEA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;;;AAGJ;AACA;EACI;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;;;AAGJ;EACI;IACI;AAAS;IACT;AAAiB;IACjB;AAAsB;;;EAG1B;AAAA;IAEI;;;EAGJ;AACI;IACA;AAAiB;;;EAGrB;IACI;;;EAGJ;IACI;AAAkB;;;EAGtB;IACI;AAAY;;;EAGhB;AAAA;AAAA;IAGI;IACA;IACA;;;EAGJ;AAAA;IAEI;;;EAGJ;IACI;AAAa;;;EAGjB;AAAA;IAEI;AAAS;IACT;AAAiB;;;EAGrB;AACI;IACA;;;ACv+GR;EACI;IACI;IACA;;EAGJ;IACI;;;AAIR;EACI;EACA;;;AAGJ;EACI;;;AAGJ;EACI;IACI;IACA;;EAGJ;IACI;;;AAIR;EACI;;;AAGJ;EACI;IACI;;EAGJ;IACI;;;AAIR;EACI;;;AC/CR;AAAA;;AAAA;AAAA;AASI;EACI;EACA;EACA;EACA;;AAEA;EACI,cCkkBE;;ADhkBF;EACI;;AAIR;EACI;EACA;;;AAKR;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAIJ;EACI;EACA;;;AAIJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EAEI;;;AAGJ;EACI;;;AAIJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAIJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAIJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAUI;EACI;;;AADJ;EACI;;;AADJ;EACI;;;AADJ;EACI;;;AADJ;EACI;;;AADJ;EACI;;;AADJ;EACI;;;AADJ;EACI;;;AADJ;EACI;;;AADJ;EACI;;;AADJ;EACI;;;AADJ;EACI;;;AE7KhB;AAAA;;AAAA;AAAA;AASI;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAIJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;ACjEI;EDqER;ICpEY;;;AAEJ;EDkER;ICjEY;;;AAEJ;ED+DR;IC9DY;;;;AAGJ;EDmER;IClEY;;;AAEJ;EDgER;IC/DY;;;AAEJ;ED6DR;IC5DY;;;;AAPJ;ED2ER;IC1EY;;;AAEJ;EDwER;ICvEY;;;AAEJ;EDqER;ICpEY;;;;AAPJ;EDmFR;IClFY;;;AAEJ;EDgFR;IC/EY;;;AAEJ;ED6ER;IC5EY;;;;AAPJ;ED2FR;IC1FY;;;AAEJ;EDwFR;ICvFY;;;AAEJ;EDqFR;ICpFY;;;;AAPJ;EDmGR;IClGY;;;AAEJ;EDgGR;IC/FY;;;AAEJ;ED6FR;IC5FY;;;AAPJ;EDmGR;IClGY;;;AAEJ;EDgGR;IC/FY;;;AAEJ;ED6FR;IC5FY;;;;AAPJ;EDgHR;IC/GY;;;AAEJ;ED6GR;IC5GY;;;AAEJ;ED0GR;ICzGY;;;AAPJ;EDgHR;IC/GY;;;AAEJ;ED6GR;IC5GY;;;AAEJ;ED0GR;ICzGY;;;;AAjBJ;EDuIR;ICtIY;;;AAEJ;EDoIR;ICnIY;;;AAEJ;EDiIR;IChIY;;;;AAGJ;EDqIR;ICpIY;;;AAEJ;EDkIR;ICjIY;;;AAEJ;ED+HR;IC9HY;;;;AAPJ;ED6IR;IC5IY;;;AAEJ;ED0IR;ICzIY;;;AAEJ;EDuIR;ICtIY;;;;AAPJ;EDqJR;ICpJY;;;AAEJ;EDkJR;ICjJY;;;AAEJ;ED+IR;IC9IY;;;;AAPJ;ED6JR;IC5JY;;;AAEJ;ED0JR;ICzJY;;;AAEJ;EDuJR;ICtJY;;;;AAPJ;EDqKR;ICpKY;;;AAEJ;EDkKR;ICjKY;;;AAEJ;ED+JR;IC9JY;;;AAPJ;EDqKR;ICpKY;;;AAEJ;EDkKR;ICjKY;;;AAEJ;ED+JR;IC9JY;;;;AAPJ;EDkLR;ICjLY;;;AAEJ;ED+KR;IC9KY;;;AAEJ;ED4KR;IC3KY;;;AAPJ;EDkLR;ICjLY;;;AAEJ;ED+KR;IC9KY;;;AAEJ;ED4KR;IC3KY;;;;AAjDJ;ED0OR;ICzOY;;;AAEJ;EDuOR;ICtOY;;;AAEJ;EDoOR;ICnOY;;;;AAGJ;EDwOR;ICvOY;;;AAEJ;EDqOR;ICpOY;;;AAEJ;EDkOR;ICjOY;;;;AAPJ;EDgPR;IC/OY;;;AAEJ;ED6OR;IC5OY;;;AAEJ;ED0OR;ICzOY;;;;AAPJ;EDwPR;ICvPY;;;AAEJ;EDqPR;ICpPY;;;AAEJ;EDkPR;ICjPY;;;;AAPJ;EDgQR;IC/PY;;;AAEJ;ED6PR;IC5PY;;;AAEJ;ED0PR;ICzPY;;;;AAPJ;EDwQR;ICvQY;;;AAEJ;EDqQR;ICpQY;;;AAEJ;EDkQR;ICjQY;;;AAPJ;EDwQR;ICvQY;;;AAEJ;EDqQR;ICpQY;;;AAEJ;EDkQR;ICjQY;;;;AAPJ;EDqRR;ICpRY;;;AAEJ;EDkRR;ICjRY;;;AAEJ;ED+QR;IC9QY;;;AAPJ;EDqRR;ICpRY;;;AAEJ;EDkRR;ICjRY;;;AAEJ;ED+QR;IC9QY;;;;AAjBJ;ED4SR;IC3SY;;;AAEJ;EDySR;ICxSY;;;AAEJ;EDsSR;ICrSY;;;;AAGJ;ED0SR;ICzSY;;;AAEJ;EDuSR;ICtSY;;;AAEJ;EDoSR;ICnSY;;;;AAPJ;EDkTR;ICjTY;;;AAEJ;ED+SR;IC9SY;;;AAEJ;ED4SR;IC3SY;;;;AAPJ;ED0TR;ICzTY;;;AAEJ;EDuTR;ICtTY;;;AAEJ;EDoTR;ICnTY;;;;AAPJ;EDkUR;ICjUY;;;AAEJ;ED+TR;IC9TY;;;AAEJ;ED4TR;IC3TY;;;;AAPJ;ED0UR;ICzUY;;;AAEJ;EDuUR;ICtUY;;;AAEJ;EDoUR;ICnUY;;;AAPJ;ED0UR;ICzUY;;;AAEJ;EDuUR;ICtUY;;;AAEJ;EDoUR;ICnUY;;;;AAPJ;EDuVR;ICtVY;;;AAEJ;EDoVR;ICnVY;;;AAEJ;EDiVR;IChVY;;;AAPJ;EDuVR;ICtVY;;;AAEJ;EDoVR;ICnVY;;;AAEJ;EDiVR;IChVY;;;;AClBA;EFgXZ;IE/WgB;;;AAEJ;EF6WZ;IE5WgB;;;AAEJ;EF0WZ;IEzWgB;;;;AAGJ;EF+WZ;IE9WgB;;;AAEJ;EF4WZ;IE3WgB;;;AAEJ;EFyWZ;IExWgB;;;;AAGJ;EF8WZ;IE7WgB;;;AAEJ;EF2WZ;IE1WgB;;;AAEJ;EFwWZ;IEvWgB;;;;AAGJ;EF6WZ;IE5WgB;;;AAEJ;EF0WZ;IEzWgB;;;AAEJ;EFuWZ;IEtWgB;;;;AAGJ;EF4WZ;IE3WgB;;;AAEJ;EFyWZ;IExWgB;;;AAEJ;EFsWZ;IErWgB;;;;AArCJ;EFmZZ;IElZgB;;;AAEJ;EFgZZ;IE/YgB;;;AAEJ;EF6YZ;IE5YgB;;;AAaJ;EF+XZ;IE9XgB;;;AAEJ;EF4XZ;IE3XgB;;;AAEJ;EFyXZ;IExXgB;;;;AAGJ;EFmYZ;IElYgB;;;AAEJ;EFgYZ;IE/XgB;;;AAEJ;EF6XZ;IE5XgB;;;AA3BJ;EFuZZ;IEtZgB;;;AAEJ;EFoZZ;IEnZgB;;;AAEJ;EFiZZ;IEhZgB;;;;AA3BJ;EF0bZ;IEzbgB;;;AAEJ;EFubZ;IEtbgB;;;AAEJ;EFobZ;IEnbgB;;;;AAGJ;EFybZ;IExbgB;;;AAEJ;EFsbZ;IErbgB;;;AAEJ;EFmbZ;IElbgB;;;;AAGJ;EFwbZ;IEvbgB;;;AAEJ;EFqbZ;IEpbgB;;;AAEJ;EFkbZ;IEjbgB;;;;AAGJ;EFubZ;IEtbgB;;;AAEJ;EFobZ;IEnbgB;;;AAEJ;EFibZ;IEhbgB;;;;AAGJ;EFsbZ;IErbgB;;;AAEJ;EFmbZ;IElbgB;;;AAEJ;EFgbZ;IE/agB;;;;AArCJ;EF6dZ;IE5dgB;;;AAEJ;EF0dZ;IEzdgB;;;AAEJ;EFudZ;IEtdgB;;;AAaJ;EFycZ;IExcgB;;;AAEJ;EFscZ;IErcgB;;;AAEJ;EFmcZ;IElcgB;;;;AAGJ;EF6cZ;IE5cgB;;;AAEJ;EF0cZ;IEzcgB;;;AAEJ;EFucZ;IEtcgB;;;AA3BJ;EFieZ;IEhegB;;;AAEJ;EF8dZ;IE7dgB;;;AAEJ;EF2dZ;IE1dgB;;;;AF0ehB;EACI;EACA;;AEvgBQ;EFygBR;AAAA;IExgBY;;;AAEJ;EFsgBR;AAAA;IErgBY;;;AAEJ;EFmgBR;AAAA;IElgBY;;;AFsgBR;AAAA;AAAA;AAAA;EAEI;;;AGxhBhB;AAAA;;AAAA;AAAA;AAMI;EACI;;;AAGJ;EACI;EACA,OJea;EIdb,kBJuCG;EItCH,aJ6DW;EI5DX,WJWY;EIVZ,aJmEa;EIlEb,aJkFW;;;AI/Ef;EACI;EACA,OJRQ;EISR;;;AAGJ;EACI;EACA,OJ6BW;;;AIzBf;EACI;;;AAIJ;AAAA;EAEI;;;AAIJ;AAAA;AAAA;EAGI;;;AAIJ;EACI;;;AAIJ;AAAA;EAEI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;ACnEJ;EACI;;;AAGJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;AAEA;EACI;;;AAIR;EACI;;;AAGJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAKA;EACI;;AAGJ;EACI,eL5BY;;AKgChB;EACI;EACA;;AACA;EAHJ;IAIQ;;;AAGJ;EACI;EACA;EACA,WL/CI;EKgDJ;;AACA;EALJ;IAMQ;IACA,eL6dJ;;;AKzdJ;EACI;EACA;EACA;;AACA;EAJJ;IAKQ;;;AAGJ;EAKI;EACA;EACA,ML8FG;EK7FH;;AAPA;EACI;;AAQJ;EAEI;EACA,OLxFR;;AK4FA;EACI;EACA;;AAGJ;EACI,OLlGJ;;;AKyGZ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;;AAIR;EACI;;;AAIA;EACI;EACA;EACA;;;AAKR;EACI;IACI;IACA;IACA;IACA;IACA;;;EAGJ;IACI;IACA;IACA;IAGA;IACA;;;EAIA;IACI;;;EAIR;IACI;;;AAKR;EACI;IACI;IACA;;;AAGR;EACI;IACI;IACA;;;AC3LR;AAAA;;AAAA;AAAA;AAKA;EACI;EACA;EACA;EACA,QNiLY;EMhLZ;EACA;EACA,ONaa;EMZb;EACA,eNegB;EMdhB,kBNqLQ;EMpLR;EACA;EACA,WNMY;EMLZ,aN8EW;EM7EX;EACA;EACA;;AAKA;EACI,ON+KmB;;;AM3K3B;EACI,cNrBQ;EMsBR;EACA,kBNkKc;EMjKd;;;AAGJ;AAAA;AAAA;EAGI;EACA,kBNOG;;;AMJP;AAAA;EAEI;;;AAIJ;EACI;EACA;EACA;EACA;;AAEA;EACI;;;AAKR;AAAA;AAAA;EACI;EACA;EACA;EACA;EAEA,WN9CY;EM+CZ,aN0BW;;AMxBX;AAAA;AAAA;EACI,aN6GQ;;;AMxGhB;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;;;AAIJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA,YN+bQ;;;AM5bZ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI,aNibI;;AM9aR;EACI;EACA;;;AAIR;EACI,YNuaQ;EMtaR;EACA,SNqaQ;EMpaR,ONoKc;EMnKd,cNoKY;EMnKZ,kBNqKe;;;AMjKnB;EACI;EACA;EACA,eNsEmB;;AMpEnB;EACI;EACA;EACA;;AAGJ;EACI,eN8DQ;EM7DR,cN6DQ;;AMlDZ;EACI;EACA;EACA;EACA;EACA,ON9IS;EM+IT,WNhJQ;EMiJR,aNvFW;;AM0Ff;EACI;;AAGJ;EACI;;;AAKJ;AAAA;AAAA;EACI;;AAGJ;EACI;;;AAIR;AAAA;AAAA;EAGI;;;AAIJ;EACI;;;AAGJ;EAEQ;IACI;IACA,aNnBO;IMoBP,gBNpBO;IMqBP,aN/GG;;;AMoHf;EACI;IACI;;;AAIR;EAEI;AAAA;AAAA;AAAA;IAII;;;EAGJ;AAAA;AAAA;AAAA;IAII;IACA;IACA;;;EAEJ;AAAA;AAAA;AAAA;IAII;;;AAIR;EAEI;IACI;;;AAMJ;EACI;EACA;EACA;;AAGJ;EACI,cNoSI;EMnSJ;;;ACrQR;AAAA;;AAAA;AAAA;AAMA;EACI;;;AAKJ;EACI;;;AAGJ;EACI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAKJ;EACI;;;AAGJ;EACI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;EACI;;;AAKJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;ACjLJ;AAAA;;AAAA;AAAA;AAMA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EACI,aR8DS;EQ7DT;;;ACpBR;AAAA;;AAAA;AAAA;AAMA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EACI,aT+DS;ES9DT;;;AAIR;AAAA;;AAAA;AAAA;AAMA;EACI,OTkac;ESjad,kBTnBQ;;;ASsBZ;EACI;;;AAGJ;EACI;AACA;EACA;;;AAGJ;EACI;AACA;EACA;;;AC/CJ;AAAA;;AAAA;AAAA;AAAA;AAAA;AAQA;AAAA;EAEI,OVea;EUdb,kBVJO;;;AUOX;EACI,OVibc;EUhbd,kBVJQ;;;AUOZ;EACI,OV6ac;EU5ad,kBVRQ;;;AUWZ;EACI,OVypBc;EUxpBd,kBVylBQ;;;AUtlBZ;EACI,OVmpBW;EUlpBX,kBVqlBK;;;AUllBT;EACI,OV+Zc;EU9Zd,kBVtBQ;;;AUyBZ;EACI,OV2Za;EU1Zb,kBV1BO;;;AWfX;AAAA;;AAAA;AAAA;AAKA;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA,kBXyNQ;EWxNR,OXVI;EWWJ;EACA;;;ACxBR;AAAA;;AAAA;AAAA;AASI;AAAA;EACI,OZqNK;EYpNL,kBZCI;;;AYIR;EACI,OZJI;;;AYSR;EACI,OZTI;;;AYcR;EACI,OZdG;;;AYqBP;EACI,YZzBI;EY0BJ,OZwMQ;;AYnMR;EACI,kBZkMI;EYjMJ,OZjCA;;;AYuCR;EACI,YZvCI;EYwCJ,OZ0LQ;;AYrLR;EACI,kBZoLI;EYnLJ,OZ/CA;;;AYqDR;EACI,YZrDI;EYsDJ,OZ4KQ;;AYvKR;EACI,kBZsKI;EYrKJ,OZ7DA;;;AYmER;EACI,YZnEG;EYoEH,OZ8JO;;AYzJP;EACI,kBZwJG;EYvJH,OZ3ED;;;AafX;AAAA;;AAAA;AAAA;AAMA;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,ObNQ;EaOR;EACA,ebSgB;EaRhB,kBb0MS;EazMT;EACA;EACA;EACA,WbiMQ;EahMR,abuEW;;AarEX;AAAA;AAAA;AAAA;AAAA;EAII;EACA;;AAGJ;AAAA;EACI;EACA;EACA;;;AASR;EACI;EACA,ObtCQ;;AawCR;EACI;EACA;EACA;;;AAIR;EACI,Ob2CY;;AazCZ;EACI;;;AAQJ;AAAA;AAAA;EAEI;EACA;EACA;;;AASA;AAAA;EACI;;;ACrFZ;AAAA;;AAAA;AAAA;AAAA;AAOA;AAAA;ECNI,OfWQ;EeVR,cfKO;EeJP,kBf4NS;;Ae1NT;AAAA;AAAA;AAAA;AAAA;AAAA;EAKI,OfEI;EeDJ,cfJG;EeKH,kBfLG;;AeOP;AAAA;AAAA;AAAA;EAGI;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAKI,cfrBD;EesBC,kBfkMC;;Ae9LT;AAAA;EACI;;AAKA;AAAA;AAAA;AAAA;AAAA;AAAA;EAKI,OfhCA;EeiCA,cftCD;EeuCC,kBfvCD;;Ae2CP;AAAA;EACI;EACA;EACA;;AAKA;AAAA;EACI,cfnDD;EeoDC,kBfpDD;;;AcIX;ECXI,Of6OY;Ee5OZ,cfUQ;EeTR,kBfSQ;;AePR;EAKI,OfoOQ;EenOR,cf6OW;Ee5OX,kBf4OW;;Ae1Of;EAGI;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAKI,cfhBA;EeiBA,kBfjBA;;AeqBR;EACI;EAEI,OfxBA;;Ae2BJ;EAKI,OfkMI;EejMJ,cfjCA;EekCA,kBflCA;;AesCR;EACI;EACA;EACA;EAEI,Of3CA;;Ae8CJ;EACI,cfnDD;EeoDC,kBfpDD;;;AcQX;ECfI,OfmoBY;EeloBZ,cfinBQ;EehnBR,kBfgnBQ;;Ae9mBR;EAKI,Of0nBQ;EeznBR,cf6nBW;Ee5nBX,kBf4nBW;;Ae1nBf;EAGI;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;EAKI,cfulBA;EetlBA,kBfslBA;;AellBR;EACI;EAEI,Of+kBA;;Ae5kBJ;EAKI,OfwlBI;EevlBJ,cfskBA;EerkBA,kBfqkBA;;AejkBR;EACI;EACA;EACA;EAEI,Of4jBA;;AezjBJ;EACI,cfnDD;EeoDC,kBfpDD;;;AcYX;ECnBI,Of8OY;Ee7OZ,cfWQ;EeVR,kBfUQ;;AeRR;EAKI,OfqOQ;EepOR,cf8OW;Ee7OX,kBf6OW;;Ae3Of;EAGI;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;EAKI,cffA;EegBA,kBfhBA;;AeoBR;EACI;EAEI,OfvBA;;Ae0BJ;EAKI,OfmMI;EelMJ,cfhCA;EeiCA,kBfjCA;;AeqCR;EACI;EACA;EACA;EAEI,Of1CA;;Ae6CJ;EACI,cfnDD;EeoDC,kBfpDD;;;AcgBX;ECvBI,OfooBS;EenoBT,cfknBK;EejnBL,kBfinBK;;Ae/mBL;EAKI,Of2nBK;Ee1nBL,cf8nBQ;Ee7nBR,kBf6nBQ;;Ae3nBZ;EAGI;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;EAKI,cfwlBH;EevlBG,kBfulBH;;AenlBL;EACI;EAEI,OfglBH;;Ae7kBD;EAKI,OfylBC;EexlBD,cfukBH;EetkBG,kBfskBH;;AelkBL;EACI;EACA;EACA;EAEI,Of6jBH;;Ae1jBD;EACI,cfnDD;EeoDC,kBfpDD;;;AcoBX;EC3BI,Of+OY;Ee9OZ,cfYQ;EeXR,kBfWQ;;AeTR;EAKI,OfsOQ;EerOR,cf+OW;Ee9OX,kBf8OW;;Ae5Of;EAGI;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;EAKI,cfdA;EeeA,kBffA;;AemBR;EACI;EAEI,OftBA;;AeyBJ;EAKI,OfoMI;EenMJ,cf/BA;EegCA,kBfhCA;;AeoCR;EACI;EACA;EACA;EAEI,OfzCA;;Ae4CJ;EACI,cfnDD;EeoDC,kBfpDD;;;AcwBX;EC/BI,OfgPW;Ee/OX,cfaO;EeZP,kBfYO;;AeVP;EAKI,OfuOO;EetOP,cfgPU;Ee/OV,kBf+OU;;Ae7Od;EAGI;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;EAKI,cfbD;EecC,kBfdD;;AekBP;EACI;EAEI,OfrBD;;AewBH;EAKI,OfqMG;EepMH,cf9BD;Ee+BC,kBf/BD;;AemCP;EACI;EACA;EACA;EAEI,OfxCD;;Ae2CH;EACI,cfnDD;EeoDC,kBfpDD;;;Ac6BX;EACI,WdsCU;;AcpCV;EACI;;;AAIR;EACI,Wd+BU;;Ac7BV;EACI;;;AAKR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EAEI;;;AAMJ;EAEI;;;AAIR;EACI;EACA;EACA;;AAEA;EAEI;EACA;;;AAIR;EACI;EACA;;AAEA;EAEI;EACA;;;AAIR;EAEI;EACA,OdpGD;EcqGC;;;AAGJ;EACI;EACA;;;AAGJ;EACI;;;AEnHJ;AAAA;;AAAA;AAAA;AAMA;EACI;;AAEA;EACI;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEI;EACA;EACA;;AAGJ;EAEI;EACA;EACA;EACA;EACA,ehBbY;EgBcZ;;AAGJ;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA,chBrDG;;AgBwDP;EACI,chBpDI;EgBqDJ,kBhBrDI;;AgBwDR;EACI;;AAGJ;EACI,kBhBvBD;;AgB0BH;EACI;EACA;;AAGJ;EAEI,chBjCD;;AgBoCH;EACI,ahBgGQ;;;AiBvLhB;AAAA;;AAAA;AAAA;AAMA;EACI;EACA;EACA;;AAEA;EACI;AACA;;AACA;AACI;AAcA;;AAbA;EACI;EACA,OjBZP;EiBaO,cjBkUO;EiBjUP,kBjB+TH;;AiB7TG;EACI,OjBXR;EiBYQ,cjB8TS;EiB7TT,kBjB2TD;;AiBtTP;EACI;;AAKZ;EACI;;AAGI;EACI;;AAEA;EACI;;AAIR;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;;;AAQpB;EACI;;;ACzEJ;AAAA;;AAAA;AAAA;AAOI;EACI;EACA;AACA;AAiBA;AA6BA;;AA7CA;EACI;EACA,clBeO;EkBdP;EACA;EACA;EACA;EACA,kBlBkTC;EkBjTD;EACA;;AAEA;EACI;;AAMJ;ECtBR;EACA,iBARI;ED+BQ;EACA;EACA;EACA,clBNG;EkBOH;EACA;EACA,kBlB8RV;AkBxRU;;AAJA;EACI;;AAIJ;EACI;;AAIR;EAEI,OlB1BC;EkB2BD;;AAMJ;EACI;EACA;EACA,kBlBtDL;;AkByDC;EACI;EACA;EACA,kBlBgQV;EkB/PU,alBeD;;AkBXP;EACI;;;AEzEZ;AAAA;;AAAA;AAAA;AAAA;AASQ;EACI;;AAIA;EACI;;AAGJ;EACI,kBpBuTF;;;AoB/SV;EACI;;AAEA;EACI;;AAIA;EACI;;AAMR;EACI;EACA,kBpBrCD;;AoBwCH;EACI;;;AAOR;EACI;;AAGI;EACI;;AAGJ;EACI;;;AAUJ;EACI;;AAGJ;EACI;;;AASR;EACI;;AAKA;EACI;;;AASR;EACI;;AAKA;EACI;;;AAcZ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAIA;EACI;EACA;;AAGJ;EACI;EACA;;AAEA;AAAA;EAEI;EACA;;;ACtJhB;AAAA;;AAAA;AAAA;AAMA;AACI;AAQA;;AANI;EACI;EACA;;AAKR;EACI,OrBQS;EqBPT,YrBgCD;;;AqB5BP;EACI,YrBohBS;EqBnhBT;EACA;EACA;EACA,kBrBmWe;AqBlWf;EAUA;;AATA;EACI,crB0gBI;EqBzgBJ;;AAEA;EACI;;;AClCZ;AAAA;;AAAA;AAAA;AAMA;AACI;EACA;EACA;EACA;EACA,YtBuCG;EsBtCH,etBiBgB;EsBhBhB;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAGJ;AAAA;AAAA;EAGI;EACA;EACA;;AAKA;AAAA;EACI,OtBtBA;;AsB0BR;EACI;EACA;EACA;EACA;;AAEA;EACI;;AAIR;EACI,OtBtCI;;AsByCR;AAAA;EAEI;EACA;EACA;;AAGJ;EACI,OtBpCS;;AsBsCT;EACI;EACA;EACA,OtBtDA;EsBuDA,kBtB5DD;;AsBgEP;AAAA;EAEI;;AAGJ;AAAA;EAEI;EACA;EACA,YtBpEI;;AsByER;EACI;EACA;EACA;;AAEA;EACI,OtB/EA;EsBgFA;EACA;;AAGJ;EACI;EACA;EACA;;;AAKZ;AACI;EACA;EACA;EACA;EACA;EACA,etBjFgB;EsBkFhB,kBtB7DG;;AsB+DH;EACI;EACA;EACA;;AAEA;EAEI,OtB5GA;;;AuBZZ;AAAA;;AAAA;AAAA;AAMA;EACI;EACA;EACA;EACA,QvB8BU;EuB7BV;EACA;EACA,OvB6BS;EuB5BT,kBvBkBI;EuBjBJ;;AAGA;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;EACA;EACA;;AAIR;EACI;;AAEA;EACI;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA,OvBbC;EuBcD,WvBbM;EuBcN,avBjBE;;AuBqBV;EACI;;AAEA;EACI;;AAKR;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA,OvB7BG;;AuBiCX;AAAA;AAAA;EAGI;;AAGJ;EACI;EACA,avBxDM;;AuB0DN;EACI;;;AAOR;EACI;;AAGJ;EACI;;;AC/GR;AAAA;;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;EACA;EACA,axBoES;EwBnET;EACA;EACA;EACA;;;ACjBR;AAAA;;AAAA;AAAA;AAMA;EACI;;AAEA;EACI;EACA,OzBcS;EyBbT;EACA;EACA,czBPG;EyBQH,YzBRG;EyBSH,WzBQQ;EyBPR;EACA;;AAEA;EACI;;AAKR;EACI,WzB2DG;;AyBxDP;EACI,WzBwDG;;AyBrDP;EACI,WzBqDG;;AyBlDP;EACI,WzBkDG;;AyB/CP;EACI,WzBnBQ;;AyBsBZ;EACI,WzB4CG;;AyBzCP;EACI;EACA;EACA;EACA,czB/CG;EyBgDH;EACA,ezB3BY;;AyB8BhB;EACI;;AAQR;EACI;;;ACrEJ;AAAA;;AAAA;AAAA;AAAA;ACCI;AAAA;EACI,O3BuBS;E2BtBT,c3BIG;E2BHH,Y3BGG;;A2BDP;AAAA;EACI;;;AANJ;EACI,O3Bgda;E2B/cb,c3BSI;E2BRJ,Y3BQI;;A2BNR;EACI,c3BKI;;;A2BXR;EACI,O3Bida;E2Bhdb,c3BUI;E2BTJ,Y3BSI;;A2BPR;EACI,c3BMI;;;A2BZR;EACI,O3Bkda;E2Bjdb,c3BWI;E2BVJ,Y3BUI;;A2BRR;EACI,c3BOI;;;A2BbR;EACI,O3BmdY;E2BldZ,c3BYG;E2BXH,Y3BWG;;A2BTP;EACI,c3BQG;;;A0BiBP;EACI;EACA,O1B/BE;E0BgCF;EACA;EACA,a1B6CW;;A0B1Cf;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI,O1BrCI;;;A0B2CR;AAAA;EAEI;EACA,kBEoOY;;AFjOhB;EACI,OE5CI;;AF+CR;EACI;;;AAKJ;AAAA;EAEI,kB1BwNY;;A0BrNhB;EACI,O1BhEI;;;A0BqER;AAAA;EAEI,kB1BkNY;;A0B/MhB;EACI,O1B1EI;;;A0B+ER;AAAA;EAEI,kB1B4MW;;A0BzMf;EACI,O1BpFG;;;A2BdP;EACI,O3B2rBU;E2B1rBV,c3BinBC;E2BhnBD,Y3BgnBC;;A2B9mBL;EACI,c3B6mBC;;;A2BnnBL;EACI,O3B0rBa;E2BzrBb,c3BgnBI;E2B/mBJ,Y3B+mBI;;A2B7mBR;EACI,c3B4mBI;;;A2BlnBR;EACI,O3BuBS;E2BtBT,c3B2cQ;E2B1cR,Y3B0cQ;;A2BxcZ;EACI,c3BucQ;;;A0BxVZ;AAAA;EAEI,kB1B+hBS;;A0B5hBb;EACI,O1BwfC;;;A6BpnBT;AAAA;;AAAA;AAAA;AAMA;AAAA;EAEI;;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,a7B4EW;;;A6BzEf;AAAA;EAEI;;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;;;AAGJ;AAAA;EAEI;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AC9FJ;AAAA;;AAAA;AAAA;AAKA;EAEI;AACA;;AACA;EACI;;AAEA;EACI;EACA;;AAGJ;EXVJ;EACA,iBARI;EWmBI;EACA,S9BuhBC;E8BthBD;;AAEA;EACI;;AAGJ;EAEI;;AAKZ;EACI,Y9BwPU;;A8BrPd;EACI;;;AAKR;EACI,e9B8fS;;A8B5fT;EACI;;;AAIR;AACA;EACI;EACA;;;AAMA;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAKJ;EACI;;;ACnFZ;AAAA;;AAAA;AAAA;AAAA;AASI;EACI;;AAEA;EACI;;AAGJ;EACI;;;AAOR;EACI;EACA;;AAEA;EACI;;AAUR;EACI,kB/BkSM;;;A+B5RV;EACI,e/B4fK;E+B3fL;EACA,e/BpBY;;;A+B0BhB;EACI;EACA;EACA;EACA;;AAEA;EAGI;;AAGJ;EACI;;AAEA;EAGI;;;AAQZ;EACI;;AAEA;EAGI,kB/B8OA;;A+B1OA;EAGI,kB/ByOK;;;A+BhOjB;EACI,S/BgcI;;;A+B3bR;EACI,S/BkcI;;;A+B7bZ;EACI;;AACA;EACI;EACA;EACA;EACA;;AAEA;EAGI;EACA;EACA;;AAGJ;EAEI;EACA;EACA,e/BycF;E+BxcE,c/BwcF;E+BvcE;;AACA;EAPJ;IAQQ;;;AAGJ;EACI;;AAKZ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;;AAGR;EACI;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;;AAGR;EACI;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;;;ACnTZ;AAAA;;AAAA;AAAA;AAMI;EACI;EACA;EACA;;AAEA;EACI;EACA,qBhCeO;EgCdP;EACA,kBhCmWE;;AgCjWF;EACI;EACA,OhCMC;EgCLD;EACA,ahC8DD;;AgC3DH;EACI;EACA;AACA;EACA,OhCHC;EgCID;;AAOR;EACI;EACA;EACA;EACA;EACA;;;AAQR;EACI;EACA;;AAEA;AAAA;EAEI;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;;AAIR;EACI;;AAGJ;EACI;EACA;;;AAIR;EACI;;;AAKA;EACI;;AAIA;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAKZ;AAAA;EAEI;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA,ahCjCO;;;AiCnFf;AAAA;;AAAA;AAAA;AAKA;EACI;EACA;EACA;EACA,kBLynBQ;AKvfR;;AAhIA;EACI;AACA;AAsEA;;AArEA;EACI;EACA;EACA,SjC8FU;EiC7FV;EACA,OjCkGG;EiCjGH;EACA,WjC4FO;EiC3FP,ajC2DK;EiC1DL,ejCMQ;AiCJR;AAyBA;;AAxBA;EACI,kBjC0FD;EiCzFC,qBjCyFD;;AiCtFH;EAGI;EACA,OjCmFK;EiClFL,kBL0mBE;;AKxmBF;EACI,kBjCgFE;EiC/EF,qBjC+EE;;AiC3EV;EACI,OjC0EM;EiCzEN,kBLimBG;EKhmBH;;AAIJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA,WjCwCI;;AiCpCZ;EACI,OjCuCU;;AiCnCd;EAKI;EACA,OjC4BS;EiC3BT,kBLmjBM;;AKjjBN;EACI,kBjCwBK;EiCvBL,qBjCuBK;;AiCnBb;EACI,OjCuBc;EiCtBd,kBL4iBI;;AK1iBJ;EACI,kBjCmBU;EiClBV,qBjCkBU;;AiCdtB;EACI;IACI;;EAEJ;IACI;IACA;IACA,kBL6hBI;;EK3hBJ;IACI;IACA,OjCCG;IiCAH;IACA,WjC7CF;IiC8CE,ajC1CC;;EiC4CD;IAEI,OjCLK;IiCML,kBLihBJ;;EK9gBA;IACI,OjCTM;IiCUN,kBL4gBJ;;;AKrgBZ;EACI;;;AC7IR;AAAA;;AAAA;AAAA;AAAA;AAQI;EACI,kBlCuBA;EkCtBA;;AACA;AAII;AAoCA;;AAvCA;EACI,alC2hBJ;;AkCxhBA;EACI,OlC8IF;EkC7IE,WlCMA;EkCLA;AACA;AAoBA;;AAnBA;EACI,kBlCyIN;EkCxIM,qBlCwIN;;AkCtIE;EAGI,OlCmIN;EkClIM,kBlCgIH;;AkC/HG;EACI,kBlCgIV;EkC/HU,qBlC+HV;;AkC5HE;EACI,OlC2HN;EkC1HM,kBlCyHF;;AkCrHF;EACI;;AAIJ;EACI,WlC2GD;;AkCtGP;EAMI,OlCqGF;EkCpGE,kBlCkGC;;AkCjGD;EACI,kBlCkGN;EkCjGM,qBlCiGN;;AkC7FF;EACI,elCtCI;EkCuCJ,kBlCpCR;EkCqCQ;EACA;EACA;EACA;;AACA;EACI,SlC8dR;EkC7dQ,OlCoFN;EkCnFM,elC/CA;EkCgDA,elC2dR;EkC1dQ;;AACA;EAEI,OlC8EV;EkC7EU,kBlC2EP;;AkCvEL;EACI,OlCiFS;EkChFT,kBlCqEC;;AkCpED;EACI,kBlC8EK;EkC7EL,qBlC6EK;;AkCzEjB;EAGI;IACI,kBlCnER;;EkCoEQ;IACI,OlCiEF;IkChEE,WlCzBN;;EkC0BM;IAEI,OlC8DA;IkC7DA,kBlCmDP;;EkCjDG;IACI,OlC2DC;IkC1DD,kBlC+CP;;;;AkCrCb;EACI,kBlCpFC;;AkCqFD;AACI;AAoCA;;AAnCA;EACI,OlCeD;EkCdC,WlCtGA;AkCwGA;AAoBA;;AAnBA;EACI,kBlCUL;EkCTK,qBlCSL;;AkCPC;EAGI,OlCKC;EkCJD,kBlCVF;;AkCWE;EACI,kBlCGF;EkCFE,qBlCEF;;AkCCN;EACI,OlCFE;EkCGF,kBlCjBD;;AkCqBH;EACI;;AAIJ;EACI,WlCjBA;;AkCsBR;EAMI,OlCzBK;EkC0BL,kBlCxCE;;AkCyCF;EACI,kBlC5BC;EkC6BD,qBlC7BC;;AkCgCT;EACI,OlC5BU;EkC6BV,kBlC1IP;;AkC2IO;EACI,kBlC/BM;EkCgCN,qBlChCM;;AkCoClB;EAGI;IACI,kBlC1JR;;EkC2JQ;IACI,OlC5CD;IkC6CC,WlChHN;;EkCiHM;IAEI,OlC/CC;IkCgDD,kBlC5Jf;;EkC8JW;IACI,OlClDE;IkCmDF,kBlChKf;;;;AkCyKL;EACI;;;AC/MR;AAAA;;AAAA;AAAA;AAKA;EACI;EACA;EACA;;AAEA;EhBHA;EACA,iBARI;EgBYA,SnC+hBK;EmC9hBL;EACA;EACA,cnCaW;EmCZX;EACA,kBnCkTF;;AmChTE;EAEI;EACA,kBnC+SA;;AmC5SJ;EACI;EACA,kBnC2SG;;;AoCtUf;AAAA;;AAAA;AAAA;AAKA;EACI,kBR4nBQ;AQ1nBR;AA8DA;AA2CA;;AAxGA;EACI;EACA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;EACA,QpC0FK;EoCzFL,SpC0FM;EoCzFN,OpC+FD;EoC5FC,kBRymBJ;EQxmBI;EACA,WpCsFG;EoCrFH,apCqDC;;AoCnDD;EACI,kBpCsFL;EoCrFK,qBpCqFL;;AoClFC;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA,WpCsEA;;AoClER;AAAA;AAAA;EAGI;EACA,OpCiEK;EoChEL,kBRwlBE;;AQtlBF;AAAA;AAAA;EACI,kBpC8DE;EoC7DF,qBpC6DE;;AoCzDV;EACI,OpCwDM;EoCvDN,mBpCuDM;EoCtDN,kBR8kBG;;AQvkBX;EACI;EACA;EACA,kBRskBI;;AQpkBJ;EACI;EACA;EACA;;AAEA;EACI,SpCwdP;EoCvdO;EACA,OpCoCD;EoCnCC;EACA,kBR0jBJ;EQzjBI;EACA,WpCZN;EoCaM,apCTH;;AoCUG;EACI,cpC4cZ;;AoCzcQ;EAGI,OpCwBC;EoCvBD;EACA,kBR6iBR;;AQ1iBI;EACI,OpCmBE;EoClBF;EACA,kBRuiBR;;AQ/hBZ;EACI;;;ACnHR;AAAA;;AAAA;AAAA;AAAA;AAQI;EACI,kBrCuBA;AqCYA;;AAhCQ;EACI,OrCkJN;EqCjJM,crCcD;EqCbC,kBrCiBZ;EqChBY,WrCQJ;;AqCPI;EACI,kBrC6IV;EqC5IU,qBrC4IV;;AqCzIM;EACI,WrCmIL;;AqChIH;AAAA;AAAA;EAGI,OrCkIN;EqCjIM,kBrC+HH;;AqC9HG;AAAA;AAAA;EACI,kBrC+HV;EqC9HU,qBrC8HV;;AqC3HE;EACI,OrC0HN;EqCzHM,mBrCyHN;EqCxHM,kBrCuHF;;AqChHN;EACI,kBrCfR;;AqCiBY;EACI,OrCoHN;EqCnHM,kBrCnBhB;EqCoBgB,WrCyBV;;AqCxBU;EAGI,OrC+GJ;EqC9GI,kBrCoGX;;AqClGO;EACI,OrC4GH;EqC3GG,kBrCgGX;;;AqCrFb;EACI,kBrCpCC;AqCuED;;AAhCQ;EACI,OrC+DL;EqC9DK,crCiDF;EqChDE,kBrC1CX;EqC2CW,WrCxDJ;;AqCyDI;EACI,kBrC0DT;EqCzDS,qBrCyDT;;AqCtDK;EACI,WrCmDJ;;AqChDJ;AAAA;AAAA;EAGI,OrCgDC;EqC/CD,kBrCiCF;;AqChCE;AAAA;AAAA;EACI,kBrC8CF;EqC7CE,qBrC6CF;;AqC1CN;EACI,OrCyCE;EqCxCF,mBrCwCE;EqCvCF,kBrCyBD;;AqClBP;EACI,kBrCgBE;;AqCdE;EACI,OrC8BL;EqC7BK,kBrCYN;EqCXM,WrCvCV;;AqCwCU;EAGI,OrCyBH;EqCxBG,kBrCpFnB;;AqCsFe;EACI,OrCsBF;EqCrBE,kBrCxFnB;;;AqCuGD;EACI;EACA;;AACA;EACI;;;AASR;EACI;;;AAMR;EACI;;;ACjKR;AAAA;;AAAA;AAAA;AAKA;EACI;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA,kBtC6BG;EsC5BH;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;AAAA;EAEI;EACA;;AAGJ;AAAA;EAEI;EACA;;;AAIR;EACI;EACA;EACA,kBtCvDO;;;AsC0DX;EACI;EACA,OtC1Ca;EsC2Cb;;AAEA;EAGI;EACA,ctCvBS;EsCwBT,kBtCxBS;;AsC2Bb;EACI,OtCoiBI;;AsCjiBR;EACI,OtCvEI;;AsC0ER;EACI,OtC6hBC;;AsC1hBL;EACI,OtC9EI;;AsCiFR;EACI,OtCjFI;;AsCoFR;EACI,OtCpFG;;;AsCyFP;EAGI;EACA,ctCzDS;EsC0DT,kBtC1DS;;;AuCpDjB;AAAA;;AAAA;AAAA;AAKA;EACI;EACA,kBX4nBQ;AWxkBR;;AAlDA;EACI;EACA;EACA;;AAEA;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA,SvCyFM;EuCxFN;EACA,OvC6FD;EuC5FC;EACA,WvCuFG;EuCtFH,avCsDC;;AuCpDD;EACI;;AAGJ;EACI;EACA;EACA;EACA,WvC8EA;;AuC1ER;AAAA;EAKI;EACA,OvCuEK;EuCtEL,kBX8lBE;;AW3lBN;EACI,OvCmEM;EuClEN,kBX0lBG;;AWplBf;EACI;;;AAKR;EACI,kBXgkBQ;;AW9jBR;EACI;EACA;;AAEA;EACI;;AAEA;EACI;;;AAOhB;EACI;AAYA;AAKA;AAKA;AAKA;;AAxBI;EACI;;AAEA;EACI;;AAMZ;EACI;;AAIJ;EACI;;AAIJ;EACI;;AAIJ;EACI;;;AASJ;EACI,kBvC3FA;;AuC+FQ;EACI,OvC+BN;EuC9BM,WvCzGJ;;AuC2GI;EACI,WvCsBL;;AuClBH;AAAA;EAKI,OvCkBN;EuCjBM,kBvCeH;;AuCZD;EACI,OvCaN;EuCZM,kBvCWF;;AuCJd;EACI,kBvC3HA;;AuC+HQ;EACI,QvClDC;EuCmDD,cvCrID;;;AuC8If;EACI,kBvCtIC;;AuC0IO;EACI,OvCpCL;EuCqCK,WvCzJJ;;AuC2JI;EACI,WvC1CJ;;AuC8CJ;AAAA;EAKI,OvChDC;EuCiDD,kBvC/DF;;AuCkEF;EACI,OvCpDE;EuCqDF,kBvCnED;;AuC0Ef;EACI,kBvCtKC;;AuC0KO;EACI,cvCjFF;;;AuCwFlB;EACI;IACI;;;ACzNR;AAAA;;AAAA;AAAA;AAAA;AASQ;EACI;;AACA;EACI;EACA;EACA;EACA,WxC8DF;;AwC7DE;EACI;EACA;EACA,WxCyDN;;AwCvDE;EACI;EACA,QxCqDN;EwCpDM;;;AAQhB;EACI;;;ACjCR;AAAA;;AAAA;AAAA;AAKA;EACI;EACA;;AAEA;EACI;;;AAIR;EACI;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA,kBzC/CI;;AyCkDR;EACI;EACA;;AAGJ;EACI,kBzC7DG;;AyCgEP;EAEI;EACA;EACA;;AAGJ;EACI,czCnEI;EyCoEJ,kBzCoHI;;AyCjHR;EACI,kBzClCD;;AyCqCH;EACI;;AAGJ;EACI;;AAGJ;EACI,azCuFQ;;;A0CvLhB;AAAA;;AAAA;AAAA;AAAA;AAQI;EACI,e1CkiBK;E0CjiBL,c1CkBW;E0CjBX;;AAEA;EACI;;AAGJ;EACI;EACA;EACA,O1CmFI;E0ClFJ,a1C4DK;E0C3DL;;AAEA;EAEI,kB1CiVJ;;A0C7UJ;EAGI,O1CRK;E0CSL;EACA;EACA,kB1CqUN;;;A0C9TF;EACI;EACA;EACA;EACA,kB1CnCI;;A0CqCJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,a1CcC;;A0CZD;EAEI;;AAIR;EACI;;AAGJ;EAGI;EACA;EACA;EACA;;;AAMhB;EACI,a1C4cQ;E0C3cR,e1ChBU;E0CiBV,kB1ClFQ;E0CmFR,O1CiWc;E0ChWd,W1CnBU;E0CoBV,a1CdW;E0CeX;EACA;;;ACnGJ;AAAA;;AAAA;AAAA;AAAA;AAQI;EACI;;AAEA;EACI,e3C4hBA;;A2CzhBJ;EACI,c3CwhBA;E2CvhBA,O3CsFI;E2CrFJ,e3CWQ;E2CVR,kB3CuVA;;A2CrVA;EAEI,kB3CoVJ;;A2ChVJ;EAGI;EACA,c3CnBA;E2CoBA,kB3CpBA;;;A2C2BR;EACI;;AAEA;EACI,c3CqgBA;;A2CngBA;EACI;EACA,O3CwDA;E2CvDA;EACA;EACA;;AAEA;EAEI,O3CiDJ;E2ChDI;EACA;EACA;;AAIR;EAGI,O3CvCC;E2CwCD;EACA;EACA;;;AASZ;EACI;EACA;;AAEA;EACI;EACA;EACA;;AACA;EAJJ;IAKQ;IACA;;;AAGJ;EACI;;;AAQZ;EACI;;AAGJ;EACI,S3CicI;E2ChcJ;EACA;EACA,c3C9EW;E2C+EX;;;AAMJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA,K3CkbC;E2CjbD;EACA;EACA;EACA;EACA,kB3ClGO;;A2CqGX;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA,O3CjIJ;E2CkII;EACA;EACA,kB3C9FT;E2C+FS,W3CrEF;E2CsEE;EACA;EACA;EACA;;AAIA;EAGI;EACA,c3CjJR;E2CkJQ,kB3ClJR;;;A2C4JR;EACI;EACA;EACA;EACA;;;AAKJ;EACI;EACA;EACA;EACA;;;AAKJ;EACI;EACA;EACA;EACA;;;AC9LR;AAAA;;AAAA;AAAA;AAMA;EACI,a5C4EW;;;A4CtEP;AAAA;EACI;;;AAMR;AACI;;AACA;AACI;AAiBA;;AAhBA;EACI;;AAGA;EACI,O5CJH;E4CKG,a5CqDL;E4CpDK,a5CmDD;;A4ChDH;EACI;EACA;;AAKR;EACI;;AAGA;AAAA;EAEI;EACA;;;AAWR;AAAA;EAEI;;;AAWJ;AAAA;EAEI;;;AC1EhB;AAAA;;AAAA;AAAA;AAAA;AAaY;EACI;EACA;EACA,c7CYG;;;A6CCP;AAAA;EAEI;EACA;EACA,c7CLG;;;A6CkBP;AAAA;EAEI;EACA;;;AAaJ;EACI;;AAEA;EACI;;AAGJ;EACI;;;AAcR;AAAA;EAEI;;;AAeA;AAAA;EACI;EACA;;AAGJ;AAAA;AAAA;AAAA;EAEI;EACA;;;AAiBR;AAAA;EAEI,QAZD;;;AAyBH;AAAA;EAEI,QA1BD;;;AAuCH;AAAA;EAEI,QAxCD;;;AA+Cf;EACI;;;ACtKJ;AAAA;;AAAA;AAAA;AAOI;EACI;;AAGJ;EACI;EACA;EACA,kB9CqTF;;A8CnTE;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;;;AC3BR;AAAA;;AAAA;AAAA;AAAA;AAQI;EACI;;;AAMJ;EACI;EACA;EACA,kB/CUW;;A+CPf;EACI;EACA;EACA;EACA;;;AAMJ;EACI;;;AAMJ;EACI;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAEA;EACI;;;AAQZ;EACI;EACA;;;AAOA;EACI;;AAGJ;EACI;;AAEA;EACI;;;AAQZ;EACI;;;AAMJ;EACI;;;AAMR;EACI;;AACA;EACI;;AAGJ;EACI;EACA;EACA;;AAEA;EAGI;EACA;EACA;;AAIR;EAEI;EACA;EACA;EACA;EACA,e/CmdE;E+CldF,c/CkdE;E+CjdF;;AACA;EATJ;IAUQ;;;AAGJ;EACI;;AAIR;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;;AAGR;EACI;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;;AAGR;EACI;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;;;;ACxSZ;AAAA;AAAA;AAIA;EACI;EACA;;;AAGJ;EACI,QhD0Fa;EgDzFb,OhD6FY;EgD5FZ,WhD0EO;EgDzEP,ahDqEe;;;AgDlEnB;AAAA;AAAA;EAGI,WhDmEO;;;AgDhEX;AAAA;AAAA;EAGI,WhD8DO;;;AgD3DX;AAAA;AAAA;EAGI,WhDyDO;;;AgDtDX;AAAA;AAAA;EAGI,WhDoDO;;;AgDjDX;AAAA;AAAA;EAGI,WhDnBY;;;AgDsBhB;AAAA;AAAA;EAGI,WhD0CO;;;AgDvCX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYI,QhDoCa;EgDnCb,OhDuCY;EgDtCZ,ahDgBe;EgDff;;;ACnEJ;AAAA;;AAAA;AAAA;AAAA;AAOA;EACI;;;AAGJ;EACI;;;AAIJ;AAAA;AAAA;EAGI;;;AAGJ;AAAA;AAAA;EAGI;;;AAGJ;AAAA;AAAA;EAGI;;;AAGJ;AAAA;AAAA;EAGI;;;AAIJ;AAAA;AAAA;AAAA;EAII;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAIJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAIJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAIJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;;;AC9HJ;AAAA;;AAAA;AAAA;AAKA;EACI;EACA;EACA;EACA,elDukBM;EkDtkBN,clDskBM;;;AkDlkBV;EACI;EACA;EACA;EACA;;AAEA;EAEI;;;AAIR;EACI;EACA;;;AAGJ;AAAA;EAEI;EACA;;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAsEI;EACA;EACA,elDkeM;EkDjeN,clDieM;;;AkD9dV;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAIJ;EACI;IACI;;;AAIR;EACI;IACI;;;AAIR;EACI;IACI;;;AAIR;EACI;IACI;;;AAIR;EACI;IACI;IACA;IACA;;;EAEJ;IACI;IACA;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;AAIR;EACI;IACI;IACA;IACA;;;EAEJ;IACI;IACA;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;AAIR;EACI;IACI;IACA;IACA;;;EAEJ;IACI;IACA;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;AAIR;EACI;IACI;IACA;IACA;;;EAEJ;IACI;IACA;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;IACA;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;EAEJ;AAAA;IAEI;;;AC16BR;AAAA;;AAAA;AAAA;AAMA;EACI;;AAEA;EACI;;AAGI;EACI,OnDFJ;EmDGI,kBnDRL;;AmDWC;EACI;EACA;EACA;;AAIR;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OnDbC;EmDcD,enDVI;;AmDYJ;EACI;;AAIA;EACI,OnDnCZ;EmDoCY,kBnDzCb;;AmD4CS;EACI;EACA;EACA;;AAGJ;EACI,OnDoLR;EmDnLQ,kBnD/CZ;;AmDkDQ;EACI,OnD+KR;EmD9KQ,kBnDwLL;;;AoDxPnB;AAAA;;AAAA;AAAA;AAMA;EACI,OpDkBa;EoDjBb,YpD2Ca;;AoDzCb;EACI,OpDcS;;AoDXb;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YpDfG;;AoDiBH;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YpDvBA;;AoD0BJ;EACI;;AAGJ;EACI;;;AAKZ;EACI;IACI;;EAEJ;IACI;;;ACrDR;AAAA;;AAAA;AAAA;AAMA;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA,erDUgB;EqDThB,arD8De;;;AqD3DnB;AAAA;EAEI;EAUA;;;AAGJ;AAAA;AAAA;EAGI;;;AAGJ;EACI;IACI;;EAEJ;IACI;;;ACjDR;AAAA;;AAAA;AAAA;AAAA;AAOA;EACI;;AAEA;EACI,etDkBY;EsDjBZ,kBtDsCD;;;AsDlCP;AAAA;EAEI;EACA;EACA,WtDyDU;;;AsDtDd;AAAA;EAEI;EACA;EACA;;;AAGJ;EAEI;;;AAGJ;AAAA;EAEI;EACA;EACA,WtDfY;;;AsDkBhB;EACI;;;AAGJ;EACI,kBtDnCQ;;;AsDsCZ;EACI,kBtDtCQ;;;AsDyCZ;EACI,kBtDzCQ;;;AsD4CZ;EACI,kBtD5CO;;;AsD+CX;EACI,OtDyOc;;;AsDtOlB;EACI,OtD1Ca;;;AsD6CjB;EACI;EACA;;;AAGJ;EACI;;;AC5EJ;AAAA;;AAAA;AAAA;AAMA;EACI;;;AAGJ;EACI,QvDuCG;;;AwDlDP;AAAA;;AAAA;AAAA;AAAA;AASI;EACI,QxDEI;;AwDCR;EACI;;;AAKJ;EACI,QxDPI;;AwDUR;EACI;;;AAKJ;EACI,QxDhBI;;AwDmBR;EACI;;;AAKJ;EACI,QxDzBG;;AwD4BP;EACI;;;AAMJ;AAAA;EAEI;;;AAKJ;AAAA;EAEI;;;AAKJ;AAAA;EAEI;;;AAKR;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EAEA;;;AAIR;EACI;;;AAGJ;EACI;IACI;IACA;IACA;IACA;;EAEA;IACI;IACA;IACA;IACA;;;ACtGZ;AAAA;;AAAA;AAAA;AAMA;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAIA;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAKI;AAAA;EAEI;;AAKJ;AAAA;EAEI;;;AC9ChB;AAAA;;AAAA;AAAA;AAAA;AAOA;EACI,O1DIQ;;;A0DDZ;EACI,O1DCQ;;;A0DEZ;EACI,O1DomBK;;;A0DjmBT;EACI,O1DNQ;;;A0DSZ;EACI,O1DTO;;;A0DYX;EACI,O1DulBQ;;;A0DllBJ;EACI;;AAEJ;EACI;;AAIJ;EACI;;AAEJ;EACI;;;AC5CZ;AAAA;;AAAA;AAAA;AAMA;EACI;EACA;;AAEA;EACI,c3DLG;;A2DQP;EACI;;ACtBJ;EACI,kB5DiBI;;A4DdR;EACI,c5DaI;E4DZJ;EACA;;AAGJ;EACI;EACA;;AAGJ;AAAA;EAEI,c5DCI;;A4DER;EACI,c5DHI;E4DIJ;;;ACdR;AAAA;;AAAA;AAAA;AAAA;ADRI;EACI,kB5DiBI;;A4DdR;EACI,c5DaI;E4DZJ;EACA;;AAGJ;EACI;EACA;;AAGJ;AAAA;EAEI,c5DCI;;A4DER;EACI,c5DHI;E4DIJ;;;AAtBJ;EACI,kB5DkBI;;A4DfR;EACI,c5DcI;E4DbJ;EACA;;AAGJ;EACI;EACA;;AAGJ;AAAA;EAEI,c5DEI;;A4DCR;EACI,c5DFI;E4DGJ;;;AAtBJ;EACI,kB5DmBI;;A4DhBR;EACI,c5DeI;E4DdJ;EACA;;AAGJ;EACI;EACA;;AAGJ;AAAA;EAEI,c5DGI;;A4DAR;EACI,c5DDI;E4DEJ;;;AAtBJ;EACI,kB5DoBG;;A4DjBP;EACI,c5DgBG;E4DfH;EACA;;AAGJ;EACI;EACA;;AAGJ;AAAA;EAEI,c5DIG;;A4DDP;EACI;EACA;;;AEdR;AAAA;;AAAA;AAAA;AAMA;EACI;EACA;;AAEA;EACI,c9DNG;;A8DSP;EACI;;AFvBJ;EACI,kB5DiBI;;A4DdR;EACI,c5DaI;E4DZJ;EACA;;AAGJ;EACI;EACA;;AAGJ;AAAA;EAEI,c5DCI;;A4DER;EACI,c5DHI;E4DIJ;;;AGfR;AAAA;;AAAA;AAAA;AAAA;AHPI;EACI,kB5DiBI;;A4DdR;EACI,c5DaI;E4DZJ;EACA;;AAGJ;EACI;EACA;;AAGJ;AAAA;EAEI,c5DCI;;A4DER;EACI,c5DHI;E4DIJ;;;AAtBJ;EACI,kB5DkBI;;A4DfR;EACI,c5DcI;E4DbJ;EACA;;AAGJ;EACI;EACA;;AAGJ;AAAA;EAEI,c5DEI;;A4DCR;EACI,c5DFI;E4DGJ;;;AAtBJ;EACI,kB5DmBI;;A4DhBR;EACI,c5DeI;E4DdJ;EACA;;AAGJ;EACI;EACA;;AAGJ;AAAA;EAEI,c5DGI;;A4DAR;EACI,c5DDI;E4DEJ;;;AAtBJ;EACI,kB5DoBG;;A4DjBP;EACI,c5DgBG;E4DfH;EACA;;AAGJ;EACI;EACA;;AAGJ;AAAA;EAEI,c5DIG;;A4DDP;EACI;EACA;;;AIhBR;AAAA;;AAAA;AAAA;AAOA;EACI;EACA;EACA,OhEyeiB;EgExejB;EACA,ShE4hBQ;EgE3hBR;EACA,ehEse0B;;;AgEle9B;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;;AAKR;EACI;EACA;EACA;EACA;EACA,ehEogBS;;AgElgBT;EACI;EACA;;AAUR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI,WhEgbS;;AgE7ab;EACI;EACA;;;AAIR;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA,chEwdK;;;AgEpdb;EACI;;AAEA;EACI;EACA,chE+cK;;AgE5cT;EACI;EACA;;;AAKR;EACI,OhEwYa;EgEvYb,QhEuYa;EgEtYb;EACA,kBhE9FQ;;;AgE2GZ;EAEI,OhE7GQ;;;AgEgHZ;EACI;EACA;EACA;EACA,ehEnGgB;EgEoGhB,QhE+Wc;EgE9Wd,OhE8Wc;;;AiEhflB;AAAA;;AAAA;AAAA;AAOA;EACI;;;ACRJ;AAAA;;AAAA;AAAA;AAQA;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;;;AAIA;EACI;EACA;;AAEA;EACI;;;AAKZ;AAAA;EAEI;EAEA;EACA;;;AAIJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAIJ;EACI;;;AAGJ;EACI;;;AAIJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAIJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA,ctCPc;;;AsCUlB;EACI;EACA;EACA;EACA;EACA,ctCfc;;;AsCmBlB;EACI;IACI;;;AAIR;EACI;IACI;;;AAIR;EACI;IACI;;;AAIR;EACI;AAAA;AAAA;IAGI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;AAIR;EACI;AAAA;AAAA;IAGI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;AAIR;EACI;AAAA;AAAA;IAGI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;AAIR;EACI;AAAA;AAAA;IAGI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;AAIR;EACI;AAAA;AAAA;IAGI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;EAEJ;IACI;;;AAMR;EACI;;;AAKJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAKJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAIJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AC1aJ;AAAA;;AAAA;AAAA;AAMA;EACI;EACA;;AAEA;EACI;;AACA;EACI;;AAKJ;EACI;;AAMI;EAEI,aADgB;EAEhB,YAFgB;;AAIhB;EACI;EACA;;AAEJ;EACI;EACA;EACA;;AAEJ;EACI;EACA;EACA;;AAEJ;EACI;EACA;EACA;;;AC/CxB;AAAA;;AAAA;AAAA;AAOI;EAmBJ,cpEEmB;EoEDnB,kBpEwBiB;;AoEtBjB;EACI,wBpEDgB;EoEEhB,yBpEFgB;;AoEIhB;EACI;EACA;;AAIR;EACI,2BpEXgB;EoEYhB,4BpEZgB;;AoEiBhB;EACI;EACA;;AAKJ;EACI;;AAKJ;EACI;;AAIR;EACI;EACA,kBpEfa;EoEgBb,SpEweS;;AoEteT;EACI,WpE9CQ;EoE+CR,apEWW;;AoERf;EACI,OpE6BQ;;AoE1BZ;EACI,MpEyBQ;;AoErBR;EAGI,kBpEpCL;;AoEsCK;EACI,OpE7EJ;;AoEgFA;EACI,MpEjFJ;;AoEuFZ;EACI,cpExEe;EoEyEf;;AAMA;EACI,WpEpFQ;EoEqFR,apE3BW;;AoE8Bf;EACI,OpETQ;;;AqExGhB;AAAA;;AAAA;AAAA;AAAA;AASQ;EDiBR,cpEdY;EoEeZ,kBpEwBiB;;AoEtBjB;EACI,wBpEDgB;EoEEhB,yBpEFgB;;AoEIhB;EACI;EACA;;AAIR;EACI,2BpEXgB;EoEYhB,4BpEZgB;;AoEiBhB;EACI;EACA;;AAKJ;EACI;;AAKJ;EACI;;AAIR;EACI;EACA,kBpEtDQ;EoEuDR,SpEweS;;AoEteT;EACI,WpE9CQ;EoE+CR,apEWW;;AoERf;EACI,OpEmKQ;;AoEhKZ;EACI,MpE+JQ;;AoE3JR;EAGI,kBpEkKO;;AoEhKP;EACI,OpEqJA;;AoElJJ;EACI,MpEiJA;;AoE3IhB;EACI,cpExFQ;EoEyFR;;AClFI;EDOR,cpEnBW;EoEoBX,kBpEwBiB;;AoEtBjB;EACI,wBpEDgB;EoEEhB,yBpEFgB;;AoEIhB;EACI;EACA;;AAIR;EACI,2BpEXgB;EoEYhB,4BpEZgB;;AoEiBhB;EACI;EACA;;AAKJ;EACI;;AAKJ;EACI;;AAIR;EACI;EACA,kBpE6JS;EoE5JT,SpEweS;;AoEteT;EACI,WpE9CQ;EoE+CR,apEWW;;AoERf;EACI,OpE/DI;;AoEkER;EACI,MpEnEI;;AoEuEJ;EAGI,kBpE/ED;;AoEiFC;EACI,OpE7EJ;;AoEgFA;EACI,MpEjFJ;;AoEuFZ;EACI,cpE7FO;EoE8FP;;ACxEI;EDHR,cpEbY;EoEcZ,kBpEwBiB;;AoEtBjB;EACI,wBpEDgB;EoEEhB,yBpEFgB;;AoEIhB;EACI;EACA;;AAIR;EACI,2BpEXgB;EoEYhB,4BpEZgB;;AoEiBhB;EACI;EACA;;AAKJ;EACI;;AAKJ;EACI;;AAIR;EACI;EACA,kBpErDQ;EoEsDR,SpEweS;;AoEteT;EACI,WpE9CQ;EoE+CR,apEWW;;AoERf;EACI,OpEoKQ;;AoEjKZ;EACI,MpEgKQ;;AoE5JR;EAGI,kBpEmKO;;AoEjKP;EACI,OpEsJA;;AoEnJJ;EACI,MpEkJA;;AoE5IhB;EACI,cpEvFQ;EoEwFR;;AC9DI;EDbR,cpEZY;EoEaZ,kBpEwBiB;;AoEtBjB;EACI,wBpEDgB;EoEEhB,yBpEFgB;;AoEIhB;EACI;EACA;;AAIR;EACI,2BpEXgB;EoEYhB,4BpEZgB;;AoEiBhB;EACI;EACA;;AAKJ;EACI;;AAKJ;EACI;;AAIR;EACI;EACA,kBpEpDQ;EoEqDR,SpEweS;;AoEteT;EACI,WpE9CQ;EoE+CR,apEWW;;AoERf;EACI,OpEqKQ;;AoElKZ;EACI,MpEiKQ;;AoE7JR;EAGI,kBpEoKO;;AoElKP;EACI,OpEuJA;;AoEpJJ;EACI,MpEmJA;;AoE7IhB;EACI,cpEtFQ;EoEuFR;;ACpDI;EDvBR,cpEXW;EoEYX,kBpEwBiB;;AoEtBjB;EACI,wBpEDgB;EoEEhB,yBpEFgB;;AoEIhB;EACI;EACA;;AAIR;EACI,2BpEXgB;EoEYhB,4BpEZgB;;AoEiBhB;EACI;EACA;;AAKJ;EACI;;AAKJ;EACI;;AAIR;EACI;EACA,kBpEnDO;EoEoDP,SpEweS;;AoEteT;EACI,WpE9CQ;EoE+CR,apEWW;;AoERf;EACI,OpEsKO;;AoEnKX;EACI,MpEkKO;;AoE9JP;EAGI,kBpEqKM;;AoEnKN;EACI,OpEwJD;;AoErJH;EACI,MpEoJD;;AoE9If;EACI,cpErFO;EoEsFP;;AAMA;EACI,WpEpFQ;EoEqFR,apE3BW;;AoE8Bf;EACI,OpE6HQ;;AoEnIZ;EACI,WpEpFQ;EoEqFR,apE3BW;;AoE8Bf;EACI,OpErGI;;AoE+FR;EACI,WpEpFQ;EoEqFR,apE3BW;;AoE8Bf;EACI,OpE8HQ;;AoEpIZ;EACI,WpEpFQ;EoEqFR,apE3BW;;AoE8Bf;EACI,OpE+HQ;;AoErIZ;EACI,WpEpFQ;EoEqFR,apE3BW;;AoE8Bf;EACI,OpEgIO;;AqE5JP;EAKI;EACA;;AALA;EACI;;AAUJ;EACI;;AAMR;EACI;;AAOA;EACI,kBrEyNF;;AqEtNM;EAGI,kBrE+MT;;AqE1MH;EACI,kBrE6MF;;AqEtMF;EACI;;AAGJ;EACI;;;ACzIhB;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA,ctEdC;EsEeD;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA,oBtEnCC;;;AsEuCT;AAAA;AAAA;AAAA;AAAA;AAMA;EACI;EACA;;AAEA;AAAA;EAEI;EACA;EACA;;AAGJ;AAAA;EAEI;EACA;EACA;;AAIA;EACI;EACA;EACA;EACA;;AAKJ;EACI;EACA;EACA;EACA;;AAIR;AAAA;EAEI;;AAGJ;AAAA;AAAA;AAAA;EAII;;AAGJ;EACI;EACA;;AAGJ;AACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;AAAA;EAEI;EACA;;;AAIR;AAAA;AAAA;AAAA;AAAA;AAMA;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA,YtE4eI;;AsE1eJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,qBtE+dA;;AsE3dJ;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAIJ;EACI;;AAEA;EACI,YtE9JR;;AsEqKA;EACI,atE/FD;;AsEqGH;EACI;EACA;;AAIA;EACI;;;ACtDhB;EACI;;;AA1HI;EAbZ,cvESY;EuERZ,kBvEQY;EuEPZ;;AAmBgB;EAfhB;;AAkBoB;EACI,YvEhBZ;;;AuEIA;EAbZ,cvEIW;EuEHX,kBvEGW;EuEFX;;AAmBgB;EAfhB;;AAkBoB;EACI,YvErBb;;;AuESC;EAbZ,cvEUY;EuETZ,kBvESY;EuERZ;;AAmBgB;EAfhB;;AAkBoB;EACI,YvEfZ;;;AuEGA;EAbZ,cvEWY;EuEVZ,kBvEUY;EuETZ;;AAmBgB;EAfhB;;AAkBoB;EACI,YvEdZ;;;AuEEA;EAbZ,cvEYW;EuEXX,kBvEWW;EuEVX;;AAmBgB;EAfhB;;AAkBoB;EACI,YvEbb;;;AuE0BH;EAtCR,cAHgB;EAIhB,kBAJgB;EAKhB;;AAwCQ;EA1CR,cvEUY;EuETZ,kBvESY;EuERZ;;AA4CQ;EA9CR,cvEinBS;EuEhnBT,kBvEgnBS;EuE/mBT;;AAgDQ;EAlDR,cvESY;EuERZ,kBvEQY;EuEPZ;;AAoDQ;EAtDR,cvEWY;EuEVZ,kBvEUY;EuETZ;;AAwDQ;EA1DR,cvEYW;EuEXX,kBvEWW;EuEVX;;AA4DQ;EA9DR,cvEgnBY;EuE/mBZ,kBvE+mBY;EuE9mBZ;;AAuEQ;EAnER;;AAsEY;EACI,YAjFI;;AAqFZ;EA3ER;;AA8EY;EACI,YvE3EJ;;AuE+EJ;EAnFR;;AAsFY;EACI,YvEohBP;;AuEhhBD;EA3FR;;AA8FY;EACI,YvE5FJ;;AuEgGJ;EAnGR;;AAsGY;EACI,YvElGJ;;AuEsGJ;EA3GR;;AA8GY;EACI,YvEzGL;;AuE6GH;EAnHR;;AAsHY;EACI,YvEmfJ;;AuE1kBJ;EAtCR,cAHgB;EAIhB,kBAJgB;EAKhB;;AAwCQ;EA1CR,cvEUY;EuETZ,kBvESY;EuERZ;;AA4CQ;EA9CR,cvEinBS;EuEhnBT,kBvEgnBS;EuE/mBT;;AAgDQ;EAlDR,cvESY;EuERZ,kBvEQY;EuEPZ;;AAoDQ;EAtDR,cvEWY;EuEVZ,kBvEUY;EuETZ;;AAwDQ;EA1DR,cvEYW;EuEXX,kBvEWW;EuEVX;;AA4DQ;EA9DR,cvEgnBY;EuE/mBZ,kBvE+mBY;EuE9mBZ;;;AAuEQ;EAnER;;AAsEY;EACI,YAjFI;;AAqFZ;EA3ER;;AA8EY;EACI,YvE3EJ;;AuE+EJ;EAnFR;;AAsFY;EACI,YvEohBP;;AuEhhBD;EA3FR;;AA8FY;EACI,YvE5FJ;;AuEgGJ;EAnGR;;AAsGY;EACI,YvElGJ;;AuEsGJ;EA3GR;;AA8GY;EACI,YvEzGL;;AuE6GH;EAnHR;;AAsHY;EACI,YvEmfJ;;AuE1kBJ;EAtCR,cAHgB;EAIhB,kBAJgB;EAKhB;;AAwCQ;EA1CR,cvEUY;EuETZ,kBvESY;EuERZ;;AA4CQ;EA9CR,cvEinBS;EuEhnBT,kBvEgnBS;EuE/mBT;;AAgDQ;EAlDR,cvESY;EuERZ,kBvEQY;EuEPZ;;AAoDQ;EAtDR,cvEWY;EuEVZ,kBvEUY;EuETZ;;AAwDQ;EA1DR,cvEYW;EuEXX,kBvEWW;EuEVX;;AA4DQ;EA9DR,cvEgnBY;EuE/mBZ,kBvE+mBY;EuE9mBZ;;;ACbJ;AAAA;;AAAA;AAAA;AAQQ;AAAA;EAEI;;AAIA;EACI;;AAKR;EACI,kBxEwBC;EwEvBD;EACA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI,SxEmhBC;;AwEjhBD;EACI,cxE6gBJ;;AwEzgBJ;EACI,YxE+FM;;AwE5FV;EACI,cxEogBA;EwEngBA;EACA;EACA;EACA,SxEmgBC;;AwE9fT;EACI;EACA;EACA,YxEfW;EwEgBX,kBxEjBA;;AwEoBA;EACI;EACA;EACA,YxEtBO;;AwE0BX;EACI;EACA,cxE8eC;EwE7eD;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA,cxE6dA;;AwE3dA;EACI;EACA,cxEydJ;EwE/cQ;EACA,QxExEJ;;AwE4EJ;EACI,axEycJ;EwExcI,OxElDA;EwEmDA;;AAEA;EAEI;;AAKZ;EACI;EACA;EACA;EACA;EACA;;AAGI;EACI;EACA;;AAOZ;EACI;;;ACpIhB;AAAA;;AAAA;AAAA;AAOQ;EACI,YzEwCM;EyEvCN;EACA,kBzE8BA;;AyE5BA;EACI;;AAKJ;EACI,czEgiBC;;;A0EnjBjB;AAAA;;AAAA;AAAA;AAWQ;EACI;AAAA;AAAA;AAAA;AAAA;AAAA;IAGI;;EAGI;AAAA;AAAA;AAAA;AAAA;AAAA;IACI;;EAGJ;AAAA;AAAA;AAAA;AAAA;AAAA;IACI;IACA;IACA;IACA;IACA,MApBC;IAqBD;IACA;IACA;;EAEA;AAAA;AAAA;AAAA;AAAA;AAAA;IACI;;EAMJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;IACI;;EASJ;AAAA;IACI;IACA;IACA;IACA;IACA,MA/CH;IAgDG;IACA;IACA;IACA;;EAMJ;AAAA;AAAA;IACI;;;AAQhB;AAAA;EACI;;AAGJ;AAAA;EACI;;AAEA;AAAA;EACI;;AAIR;AAAA;EACI;EACA;EACA;;AAKR;EACI;AAAA;IACI;;EAGJ;AAAA;IACI;;;AAMJ;AAAA;EACI,OAnGS;EAoGT;EACA;EACA;;AAIA;AAAA;EACI;EACA,S1E6bJ;E0E5bI;EACA;EACA,Y1EiBE;;A0EdN;AAAA;EACI,S1EybH;;A0EvbG;AAAA;EACI;EACA;;AAIR;AAAA;EACI;EACA;;AAIA;AAAA;EACI,QAnIE;EAoIF;EACA;EACA;;AAEA;AAAA;EACI;EACA;EACA;EACA,OA3IH;EA4IG,QA7IF;EA8IE;EACA,e1EhHJ;;A0EwHhB;AAAA;EACI;;AAEA;AAAA;EACI;EACA;EACA;EACA;;;AAOR;EACI;;AACA;EAFJ;IAGQ;;;;AAOR;EACI;;AAEA;EACI;;;ACzLhB;AAAA;;AAAA;AAAA;AAOQ;EACI,Y3EwCM;E2EvCN;EACA,kB3E8BA;;A2E5BA;EACI;;AAKJ;EACI,c3EgiBC;;;A4E5iBjB;AAAA;;AAAA;AAAA;AAMA;EACI;EACA,S5EoiBa;E4EniBb;EACA,e5EoBoB;E4EnBpB,S5EiiBa;;;A4E9hBjB;EACI,W5E0EW;;;A4EvEf;EACI;;;AAGJ;EACI;;;AAKJ;AAAA;EAEI,OhD8PmB;EgD7PnB,chD8PiB;EgD7PjB,kBhD+PoB;;;AgD5PxB;EACI,OhDwPmB;EgDvPnB,chDwPiB;EgDvPjB,kBhDyPoB;;;AgDrPxB;EACI,O5EoPmB;E4EnPnB,c5EoPiB;E4EnPjB,kB5EqPoB;;;A4ElPxB;EACI,O5EmPmB;E4ElPnB,c5EmPiB;E4ElPjB,kB5EoPoB;;;A4EjPxB;EACI,O5EkPkB;E4EjPlB,c5EkPgB;E4EjPhB,kB5EmPmB;;;A4E7OvB;EACI,Y5EyeY;E4ExeZ;;;ACxEJ;AAAA;;AAAA;AAIA;EAEI;EACA;EACA;EACA;EACA,W7EsBgB;E6ErBhB,e7E6iBY;;;A6ExiBhB;EACI;EACA;;AACA;EACI,O7Eaa;;A6EZb;EACI;;;AAKR;EACI;EACA,e7EmhBQ;E6ElhBR,c7EkhBQ;E6EjhBR;EACA,O7ElBK;;;A6EwBb;EACI,W7EyDW;;;A6EvDf;EACI,gB7EygBa;E6ExgBb;;;AC3CJ;AAAA;;AAAA;AAIA;EACI;EACA,e9E+BoB;E8E9BpB;EACA;EACA;EACA,S9E8iBY;E8E7iBZ,e9E6iBY;;;A8ExiBhB;EACI,S9EuiBY;;;A8EpiBhB;EACI;EACA;EACA;EACA;EACA;EACA;EAOA,S9EuhBY;;;A8EjhBhB;EACI;EACA;;;AASJ;EACI,W9E2CW;;;A8EtCf;EACI;;;AAGJ;EACI;;;AC7DJ;AAAA;;AAAA;AAIA;EACI;EACA;EACA;EACA,kB/EmDiB;;;A+E9CrB;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;EACA,e/E+hBM;;A+E5hBV;EACI;EACA;EACA;EACA;;AAEA;EAEI;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,kB/E/BI;E+EgCJ;;;AAKZ;EACI;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA,kB/EnBO;;A+EqBP;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,oB/E9BG;E+E+BH;;;AAIR;EACI;;AAEA;EACI;;;AAIR;EACI;EACA,S/Emdc;E+Eldd,kB/E9CO;E+E+CP;;;AAGJ;EACI;;AAEA;EACI;EACA,c/EucQ;E+EtcR;;AAEA;EACI;;;AAOZ;EACI;;AAEA;EACI;;AAGJ;EACI,kB/EgKgB;;A+E9JhB;EACI;EACA;EACA;EACA;EACA,mB/EyJY;;A+ErJpB;EACI;;;AChJR;AAAA;;AAAA;AAAA;AAMI;AAAA;EAEI,chFwiBQ;EgFviBR,ehFuiBQ;;AgFriBR;AAAA;EACI;;AAEJ;AAAA;EACI;EACA;;AAIJ;EACI;;;ACrBZ;AAAA;;AAAA;AAAA;AAMA;EACI;EACA;EACA;;AAGA;EACI;;AAEA;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;;;ACzBR;AAAA;AAAA;AAMA;EACI;EACA,elFgjBY;;;AmFxjBhB;AAAA;;AAAA;AAKA;EACI;EACA,YnFkQgB;EmFjQhB,kBnFYY;EmFXZ;EACA;EACA,SnF6iBY;EmF5iBZ,enF4iBY;;;AmFviBhB;EACI,OnF0PgB;;;AmFvPpB;EACI,OnFsPgB;;;AmFnPpB;EACI;EACA;EACA;EACA;EACA;EACA,QnF4OoB;;;AmFzOxB;EACI,OnFyOgB;;;AmFtOpB;EACI;;;ACvCJ;AAAA;;AAAA;AAAA;AAKA;EACI;EACA,epFijBY;;;AqFxjBhB;AAAA;;AAAA;AAAA;AAKA;EACI;;AACA;EACI;;AAEJ;EACI,SrF6iBQ;;;AqFviBhB;EACI;;AACA;EACI;;AAEJ;EACI,SrFiiBQ;;;AsFxjBhB;AAAA;AAAA;AAAA;ACCA;EACI;EACA;EACA;EACA,evFmjBY;;;AuF/iBhB;EACI;EACA;EACA;EACA;;;AAIJ;EACI;EACA;EACA;EACA;EACA;EACA,OvF2YsB;EuF1YtB,QvF0YsB;EuFzYtB,OvFQiB;EuFPjB,WvFsEW;EuFrEX;EACA,kBvF0YgB;EuFzYhB,cvFOmB;;;AuFHvB;EACI;EACA;EACA;EACA;EACA,OvFLiB;;;AuFSrB;EACI;;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA,kBvFhBe;;;AuFqBvB;EACI,QvFuWiB;EuFtWjB;EACA;EACA,kBvFyWgB;EuFxWhB;EACA;;AACA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA,mBvFyVY;;AuFvVhB;EACI;EACA;EACA,mBvF9Ce;;AuFiDnB;EACI;EACA;EACA,wBvFnDgB;EuFoDhB,2BvFpDgB;;AuFuDpB;EACI,yBvFxDgB;EuFyDhB,4BvFzDgB;;AuF0DhB;EAEI;;;AAOR;EACI,OvFyLa;EuFxLb,cvFwLa;EuFvLb,kBvFyLgB;;AuFvLpB;EACI,OvFoLa;;;AuFhLjB;EACI,OvFoLa;EuFnLb,cvFmLa;EuFlLb,kBvFoLgB;;AuFlLpB;EACI,OvF+Ka;;;AuF3KrB;EACI,kBvFuKoB;;AuFtKpB;EACI,OvFmKa;;AuFjKjB;EACI,mBvFkKgB;;;AuF7JpB;EACI,OvFpHQ;;;AwFpBhB;EACI;EACA;;;AAGJ;EACI;EACA;EACA;;;ACRJ;EACI,YzF0DiB;;AyFzDjB;EACI,YzFiBQ;EyFhBR;;AAEI;EACI;EACA;;AACA;EAEI;;AAIJ;EACI;EACA;EACA;;AACA;EAEI;EACA;;;ACtBxB;EACI;EACA;;AACA;EACI;;AACA;EACI;;;AAKZ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;;;ACpBJ;EACI;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI","file":"theme.compiled.css","sourcesContent":["// Default variables\n@import \"exclusion-variables\";\n@import \"../../../theme/web/exclusion-variables\";\n@import \"variables\";\n@import \"../../../theme/web/custom-variables\";\n\n// Font Family Import\n@if $font-family-import != false {\n @import url($font-family-import);\n}\n\n//=============================== Bootstrap ================================\\\\\n\n// Utilities\n@import \"core/_legacy/bootstrap/bootstrap\";\n@import \"core/_legacy/bootstrap/bootstrap-rtl\";\n@if not $exclude-bootstrap {\n @include bootstrap();\n @include bootstrap-rtl();\n}\n@import \"core/_legacy/mxui\";\n@if not $exclude-mxui {\n @include mxui();\n}\n\n//================================== CORE ==================================\\\\\n\n// Base\n@import \"core/base/mixins/animations\";\n@import \"core/base/mixins/spacing\";\n@import \"core/base/mixins/layout-spacing\";\n@import \"core/base/mixins/buttons\";\n@import \"core/base/mixins/groupbox\";\n\n@import \"core/base/animation\";\n@if not $exclude-animations {\n @include animations();\n}\n@import \"core/base/flex\";\n@if not $exclude-flex {\n @include flex();\n}\n@import \"core/base/spacing\";\n@if not $exclude-spacing {\n @include spacing();\n}\n@import \"core/base/base\";\n@if not $exclude-base {\n @include base();\n}\n@import \"core/base/login\";\n@if not $exclude-login {\n @include login();\n}\n\n// Widgets\n@import \"core/widgets/input\";\n@if not $exclude-input {\n @include input();\n}\n\n@import \"core/helpers/background\";\n@if not $exclude-background-helpers {\n @include background-helpers();\n}\n\n@import \"core/widgets/label\";\n@if not $exclude-label {\n @include label();\n}\n\n@import \"core/widgets/badge\";\n@if not $exclude-badge {\n @include badge();\n}\n\n@import \"core/helpers/label\";\n@if not $exclude-label and not $exclude-label-helpers {\n @include label-helpers();\n}\n\n@import \"core/widgets/badge-button\";\n@if not $exclude-badge-button {\n @include badge-button();\n}\n\n@import \"core/helpers/badge-button\";\n@if not $exclude-badge-button and not $exclude-badge-button-helpers {\n @include badge-button-helpers();\n}\n\n@import \"core/widgets/button\";\n@if not $exclude-button {\n @include button();\n}\n\n@import \"core/helpers/button\";\n@if not $exclude-button and not $exclude-button-helpers {\n @include button-helpers();\n}\n\n@import \"core/widgets/check-box\";\n@if not $exclude-check-box {\n @include check-box();\n}\n\n@import \"core/widgets/grid\";\n@if not $exclude-grid {\n @include grid();\n}\n\n@import \"core/widgets/data-grid\";\n@if not $exclude-data-grid {\n @include data-grid();\n}\n\n@import \"core/helpers/data-grid\";\n@if not $exclude-data-grid and not $exclude-data-grid-helpers {\n @include data-grid-helpers();\n}\n\n@import \"core/widgets/data-view\";\n@if not $exclude-data-view {\n @include data-view();\n}\n\n@import \"core/widgets/date-picker\";\n@if not $exclude-data-picker {\n @include date-picker();\n}\n\n@import \"core/widgets/header\";\n@if not $exclude-header {\n @include header();\n}\n\n@import \"core/widgets/glyphicon\";\n@if not $exclude-glyphicon {\n @include glyphicon();\n}\n\n@import \"core/widgets/group-box\";\n@if not $exclude-group-box {\n @include group-box();\n}\n\n@import \"core/helpers/group-box\";\n@if not $exclude-group-box and not $exclude-group-box-helpers {\n @include group-box-helpers();\n}\n\n@import \"core/helpers/image\";\n@if not $exclude-image-helpers {\n @include image-helpers();\n}\n\n@import \"core/widgets/list-view\";\n@if not $exclude-list-view {\n @include list-view();\n}\n\n@import \"core/helpers/list-view\";\n@if not $exclude-list-view and not $exclude-list-view-helpers {\n @include list-view-helpers();\n}\n\n@import \"core/widgets/modal\";\n@if not $exclude-modal {\n @include modal();\n}\n\n@import \"core/widgets/navigation-bar\";\n@if not $exclude-navigation-bar {\n @include navigation-bar();\n}\n\n@import \"core/helpers/navigation-bar\";\n@if not $exclude-navigation-bar and not $exclude-navigation-bar-helpers {\n @include navigation-bar-helpers();\n}\n\n@import \"core/widgets/navigation-list\";\n@if not $exclude-navigation-list {\n @include navigation-list();\n}\n\n@import \"core/widgets/navigation-tree\";\n@if not $exclude-navigation-tree {\n @include navigation-tree();\n}\n\n@import \"core/helpers/navigation-tree\";\n@if not $exclude-navigation-tree and not $exclude-navigation-tree-helpers {\n @include navigation-tree-helpers();\n}\n\n@import \"core/widgets/pop-up-menu\";\n@if not $exclude-pop-up-menu {\n @include pop-up-menu();\n}\n\n@import \"core/widgets/simple-menu-bar\";\n@if not $exclude-simple-menu-bar {\n @include simple-menu-bar();\n}\n\n@import \"core/helpers/simple-menu-bar\";\n@if not $exclude-simple-menu-bar and not $exclude-simple-menu-bar-helpers {\n @include simple-menu-bar-helpers();\n}\n\n@import \"core/widgets/radio-button\";\n@if not $exclude-radio-button {\n @include radio-button();\n}\n\n@import \"core/widgets/tab-container\";\n@if not $exclude-tab-container {\n @include tab-container();\n}\n\n@import \"core/helpers/tab-container\";\n@if not $exclude-tab-container and not $exclude-tab-container-helpers {\n @include tab-container-helpers();\n}\n\n@import \"core/widgets/table\";\n@if not $exclude-table {\n @include table();\n}\n\n@import \"core/helpers/table\";\n@if not $exclude-table and not $exclude-table-helpers {\n @include table-helpers();\n}\n\n@import \"core/widgets/template-grid\";\n@if not $exclude-template-grid {\n @include template-grid();\n}\n\n@import \"core/helpers/template-grid\";\n@if not $exclude-template-grid and not $exclude-template-grid-helpers {\n @include template-grid-helpers();\n}\n\n@import \"core/widgets/typography\";\n@if not $exclude-typography {\n @include typography();\n}\n\n@import \"core/helpers/typography\";\n@if not $exclude-typography and not $exclude-typography-helpers {\n @include typography-helpers();\n}\n\n@import \"core/widgets/layout-grid\";\n@if not $exclude-layout-grid {\n @include layout-grid();\n}\n\n@import \"core/widgets/pagination\";\n@if not $exclude-pagination {\n @include pagination();\n}\n\n@import \"core/widgets/progress\";\n@if not $exclude-progress {\n @include progress();\n}\n\n@import \"core/widgets/progress-bar\";\n@if not $exclude-progress-bar {\n @include progress-bar();\n}\n\n@import \"core/helpers/progress-bar\";\n@if not $exclude-progress-bar and not $exclude-progress-bar-helpers {\n @include progress-bar-helpers();\n}\n\n@import \"core/widgets/progress-circle\";\n@if not $exclude-progress-circle {\n @include progress-circle();\n}\n\n@import \"core/helpers/progress-circle\";\n@if not $exclude-progress-circle and not $exclude-progress-circle-helpers {\n @include progress-circle-helpers();\n}\n\n@import \"core/widgets/rating\";\n@if not $exclude-rating {\n @include rating();\n}\n\n@import \"core/helpers/rating\";\n@if not $exclude-rating and not $exclude-rating-helpers {\n @include rating-helpers();\n}\n\n@import \"core/widgets/range-slider\";\n@if not $exclude-range-slider {\n @include range-slider();\n}\n\n@import \"core/helpers/range-slider\";\n@if not $exclude-range-slider and not $exclude-range-slider-helpers {\n @include range-slider-helpers();\n}\n\n@import \"core/widgets/slider\";\n@if not $exclude-slider {\n @include slider();\n}\n\n@import \"core/helpers/slider\";\n@if not $exclude-slider and not $exclude-slider-helpers {\n @include slider-helpers();\n}\n\n@import \"core/widgets/timeline\";\n@if not $exclude-timeline {\n @include timeline();\n}\n\n@import \"core/widgets/tooltip\";\n@if not $exclude-tooltip {\n @include tooltip();\n}\n\n@import \"core/helpers/helper-classes\";\n@if not $exclude-helper-classes {\n @include helper-classes();\n}\n\n@import \"core/widgets/barcode-scanner\";\n@if not $exclude-barcode-scanner {\n @include barcode-scanner();\n}\n\n@import \"core/widgets/accordion\";\n@if not $exclude-accordion {\n @include accordion();\n}\n\n@import \"core/helpers/accordion\";\n@if not $exclude-accordion and not $exclude-accordion-helpers {\n @include accordion-helpers();\n}\n\n// Custom widgets\n@import \"core/widgetscustom/dijit-widget\";\n@if not $exclude-custom-dijit-widget {\n @include dijit-widget();\n}\n\n@import \"core/widgets/switch\";\n@if not $exclude-custom-switch {\n @include switch();\n}\n\n//================================= CUSTOM =================================\\\\\n\n// Layouts\n@import \"layouts/layout-atlas\";\n@if not $exclude-layout-atlas {\n @include layout-atlas();\n}\n@import \"layouts/layout-atlas-phone\";\n@if not $exclude-layout-atlas-phone {\n @include layout-atlas-phone();\n}\n@import \"layouts/layout-atlas-responsive\";\n@if not $exclude-layout-atlas-responsive {\n @include layout-atlas-responsive();\n}\n@import \"layouts/layout-atlas-tablet\";\n@if not $exclude-layout-atlas-tablet {\n @include layout-atlas-tablet();\n}\n","/*!\n * Bootstrap v3.3.4 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@mixin bootstrap() {\n /*! normalize.css v3.0.2 | MIT License | git.io/normalize */\n html {\n font-family: sans-serif;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n }\n body {\n margin: 0;\n }\n article,\n aside,\n details,\n figcaption,\n figure,\n footer,\n header,\n hgroup,\n main,\n menu,\n nav,\n section,\n summary {\n display: block;\n }\n audio,\n canvas,\n progress,\n video {\n display: inline-block;\n vertical-align: baseline;\n }\n audio:not([controls]) {\n display: none;\n height: 0;\n }\n [hidden],\n template {\n display: none;\n }\n a {\n background-color: transparent;\n }\n a:active,\n a:hover {\n outline: 0;\n }\n abbr[title] {\n border-bottom: 1px dotted;\n }\n b,\n strong {\n font-weight: bold;\n }\n dfn {\n font-style: italic;\n }\n h1 {\n margin: 0.67em 0;\n font-size: 2em;\n }\n mark {\n color: #000;\n background: #ff0;\n }\n small {\n font-size: 80%;\n }\n sub,\n sup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n }\n sup {\n top: -0.5em;\n }\n sub {\n bottom: -0.25em;\n }\n img {\n border: 0;\n }\n svg:not(:root) {\n overflow: hidden;\n }\n figure {\n margin: 1em 40px;\n }\n hr {\n height: 0;\n -webkit-box-sizing: content-box;\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n }\n pre {\n overflow: auto;\n }\n code,\n kbd,\n pre,\n samp {\n font-family: monospace, monospace;\n font-size: 1em;\n }\n button,\n input,\n optgroup,\n select,\n textarea {\n margin: 0;\n font: inherit;\n color: inherit;\n }\n button {\n overflow: visible;\n }\n button,\n select {\n text-transform: none;\n }\n button,\n html input[type=\"button\"],\n input[type=\"reset\"],\n input[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer;\n }\n //button[disabled],\n //html input[disabled] {\n // cursor: default;\n //}\n button::-moz-focus-inner,\n input::-moz-focus-inner {\n padding: 0;\n border: 0;\n }\n input {\n line-height: normal;\n }\n input[type=\"checkbox\"],\n input[type=\"radio\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n padding: 0;\n }\n input[type=\"number\"]::-webkit-inner-spin-button,\n input[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n }\n input[type=\"search\"] {\n -webkit-box-sizing: content-box;\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n -webkit-appearance: textfield;\n }\n input[type=\"search\"]::-webkit-search-cancel-button,\n input[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n fieldset {\n padding: 0.35em 0.625em 0.75em;\n margin: 0 2px;\n border: 1px solid #c0c0c0;\n }\n legend {\n padding: 0;\n border: 0;\n }\n textarea {\n overflow: auto;\n }\n optgroup {\n font-weight: bold;\n }\n table {\n border-spacing: 0;\n border-collapse: collapse;\n }\n td,\n th {\n padding: 0;\n }\n /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n @media print {\n *,\n *:before,\n *:after {\n color: #000 !important;\n text-shadow: none !important;\n background: transparent !important;\n -webkit-box-shadow: none !important;\n box-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n pre,\n blockquote {\n border: 1px solid #999;\n\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n img {\n max-width: 100% !important;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n select {\n background: #fff !important;\n }\n .navbar {\n display: none;\n }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important;\n }\n .label {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n }\n @font-face {\n font-family: \"Glyphicons Halflings\";\n src: url(\"./resources/glyphicons-halflings-regular.woff2\") format(\"woff2\");\n }\n .glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: \"Glyphicons Halflings\";\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n .glyphicon-asterisk:before {\n content: \"\\2a\";\n }\n .glyphicon-plus:before {\n content: \"\\2b\";\n }\n .glyphicon-euro:before,\n .glyphicon-eur:before {\n content: \"\\20ac\";\n }\n .glyphicon-minus:before {\n content: \"\\2212\";\n }\n .glyphicon-cloud:before {\n content: \"\\2601\";\n }\n .glyphicon-envelope:before {\n content: \"\\2709\";\n }\n .glyphicon-pencil:before {\n content: \"\\270f\";\n }\n .glyphicon-glass:before {\n content: \"\\e001\";\n }\n .glyphicon-music:before {\n content: \"\\e002\";\n }\n .glyphicon-search:before {\n content: \"\\e003\";\n }\n .glyphicon-heart:before {\n content: \"\\e005\";\n }\n .glyphicon-star:before {\n content: \"\\e006\";\n }\n .glyphicon-star-empty:before {\n content: \"\\e007\";\n }\n .glyphicon-user:before {\n content: \"\\e008\";\n }\n .glyphicon-film:before {\n content: \"\\e009\";\n }\n .glyphicon-th-large:before {\n content: \"\\e010\";\n }\n .glyphicon-th:before {\n content: \"\\e011\";\n }\n .glyphicon-th-list:before {\n content: \"\\e012\";\n }\n .glyphicon-ok:before {\n content: \"\\e013\";\n }\n .glyphicon-remove:before {\n content: \"\\e014\";\n }\n .glyphicon-zoom-in:before {\n content: \"\\e015\";\n }\n .glyphicon-zoom-out:before {\n content: \"\\e016\";\n }\n .glyphicon-off:before {\n content: \"\\e017\";\n }\n .glyphicon-signal:before {\n content: \"\\e018\";\n }\n .glyphicon-cog:before {\n content: \"\\e019\";\n }\n .glyphicon-trash:before {\n content: \"\\e020\";\n }\n .glyphicon-home:before {\n content: \"\\e021\";\n }\n .glyphicon-file:before {\n content: \"\\e022\";\n }\n .glyphicon-time:before {\n content: \"\\e023\";\n }\n .glyphicon-road:before {\n content: \"\\e024\";\n }\n .glyphicon-download-alt:before {\n content: \"\\e025\";\n }\n .glyphicon-download:before {\n content: \"\\e026\";\n }\n .glyphicon-upload:before {\n content: \"\\e027\";\n }\n .glyphicon-inbox:before {\n content: \"\\e028\";\n }\n .glyphicon-play-circle:before {\n content: \"\\e029\";\n }\n .glyphicon-repeat:before {\n content: \"\\e030\";\n }\n .glyphicon-refresh:before {\n content: \"\\e031\";\n }\n .glyphicon-list-alt:before {\n content: \"\\e032\";\n }\n .glyphicon-lock:before {\n content: \"\\e033\";\n }\n .glyphicon-flag:before {\n content: \"\\e034\";\n }\n .glyphicon-headphones:before {\n content: \"\\e035\";\n }\n .glyphicon-volume-off:before {\n content: \"\\e036\";\n }\n .glyphicon-volume-down:before {\n content: \"\\e037\";\n }\n .glyphicon-volume-up:before {\n content: \"\\e038\";\n }\n .glyphicon-qrcode:before {\n content: \"\\e039\";\n }\n .glyphicon-barcode:before {\n content: \"\\e040\";\n }\n .glyphicon-tag:before {\n content: \"\\e041\";\n }\n .glyphicon-tags:before {\n content: \"\\e042\";\n }\n .glyphicon-book:before {\n content: \"\\e043\";\n }\n .glyphicon-bookmark:before {\n content: \"\\e044\";\n }\n .glyphicon-print:before {\n content: \"\\e045\";\n }\n .glyphicon-camera:before {\n content: \"\\e046\";\n }\n .glyphicon-font:before {\n content: \"\\e047\";\n }\n .glyphicon-bold:before {\n content: \"\\e048\";\n }\n .glyphicon-italic:before {\n content: \"\\e049\";\n }\n .glyphicon-text-height:before {\n content: \"\\e050\";\n }\n .glyphicon-text-width:before {\n content: \"\\e051\";\n }\n .glyphicon-align-left:before {\n content: \"\\e052\";\n }\n .glyphicon-align-center:before {\n content: \"\\e053\";\n }\n .glyphicon-align-right:before {\n content: \"\\e054\";\n }\n .glyphicon-align-justify:before {\n content: \"\\e055\";\n }\n .glyphicon-list:before {\n content: \"\\e056\";\n }\n .glyphicon-indent-left:before {\n content: \"\\e057\";\n }\n .glyphicon-indent-right:before {\n content: \"\\e058\";\n }\n .glyphicon-facetime-video:before {\n content: \"\\e059\";\n }\n .glyphicon-picture:before {\n content: \"\\e060\";\n }\n .glyphicon-map-marker:before {\n content: \"\\e062\";\n }\n .glyphicon-adjust:before {\n content: \"\\e063\";\n }\n .glyphicon-tint:before {\n content: \"\\e064\";\n }\n .glyphicon-edit:before {\n content: \"\\e065\";\n }\n .glyphicon-share:before {\n content: \"\\e066\";\n }\n .glyphicon-check:before {\n content: \"\\e067\";\n }\n .glyphicon-move:before {\n content: \"\\e068\";\n }\n .glyphicon-step-backward:before {\n content: \"\\e069\";\n }\n .glyphicon-fast-backward:before {\n content: \"\\e070\";\n }\n .glyphicon-backward:before {\n content: \"\\e071\";\n }\n .glyphicon-play:before {\n content: \"\\e072\";\n }\n .glyphicon-pause:before {\n content: \"\\e073\";\n }\n .glyphicon-stop:before {\n content: \"\\e074\";\n }\n .glyphicon-forward:before {\n content: \"\\e075\";\n }\n .glyphicon-fast-forward:before {\n content: \"\\e076\";\n }\n .glyphicon-step-forward:before {\n content: \"\\e077\";\n }\n .glyphicon-eject:before {\n content: \"\\e078\";\n }\n .glyphicon-chevron-left:before {\n content: \"\\e079\";\n }\n .glyphicon-chevron-right:before {\n content: \"\\e080\";\n }\n .glyphicon-plus-sign:before {\n content: \"\\e081\";\n }\n .glyphicon-minus-sign:before {\n content: \"\\e082\";\n }\n .glyphicon-remove-sign:before {\n content: \"\\e083\";\n }\n .glyphicon-ok-sign:before {\n content: \"\\e084\";\n }\n .glyphicon-question-sign:before {\n content: \"\\e085\";\n }\n .glyphicon-info-sign:before {\n content: \"\\e086\";\n }\n .glyphicon-screenshot:before {\n content: \"\\e087\";\n }\n .glyphicon-remove-circle:before {\n content: \"\\e088\";\n }\n .glyphicon-ok-circle:before {\n content: \"\\e089\";\n }\n .glyphicon-ban-circle:before {\n content: \"\\e090\";\n }\n .glyphicon-arrow-left:before {\n content: \"\\e091\";\n }\n .glyphicon-arrow-right:before {\n content: \"\\e092\";\n }\n .glyphicon-arrow-up:before {\n content: \"\\e093\";\n }\n .glyphicon-arrow-down:before {\n content: \"\\e094\";\n }\n .glyphicon-share-alt:before {\n content: \"\\e095\";\n }\n .glyphicon-resize-full:before {\n content: \"\\e096\";\n }\n .glyphicon-resize-small:before {\n content: \"\\e097\";\n }\n .glyphicon-exclamation-sign:before {\n content: \"\\e101\";\n }\n .glyphicon-gift:before {\n content: \"\\e102\";\n }\n .glyphicon-leaf:before {\n content: \"\\e103\";\n }\n .glyphicon-fire:before {\n content: \"\\e104\";\n }\n .glyphicon-eye-open:before {\n content: \"\\e105\";\n }\n .glyphicon-eye-close:before {\n content: \"\\e106\";\n }\n .glyphicon-warning-sign:before {\n content: \"\\e107\";\n }\n .glyphicon-plane:before {\n content: \"\\e108\";\n }\n .glyphicon-calendar:before {\n content: \"\\e109\";\n }\n .glyphicon-random:before {\n content: \"\\e110\";\n }\n .glyphicon-comment:before {\n content: \"\\e111\";\n }\n .glyphicon-magnet:before {\n content: \"\\e112\";\n }\n .glyphicon-chevron-up:before {\n content: \"\\e113\";\n }\n .glyphicon-chevron-down:before {\n content: \"\\e114\";\n }\n .glyphicon-retweet:before {\n content: \"\\e115\";\n }\n .glyphicon-shopping-cart:before {\n content: \"\\e116\";\n }\n .glyphicon-folder-close:before {\n content: \"\\e117\";\n }\n .glyphicon-folder-open:before {\n content: \"\\e118\";\n }\n .glyphicon-resize-vertical:before {\n content: \"\\e119\";\n }\n .glyphicon-resize-horizontal:before {\n content: \"\\e120\";\n }\n .glyphicon-hdd:before {\n content: \"\\e121\";\n }\n .glyphicon-bullhorn:before {\n content: \"\\e122\";\n }\n .glyphicon-bell:before {\n content: \"\\e123\";\n }\n .glyphicon-certificate:before {\n content: \"\\e124\";\n }\n .glyphicon-thumbs-up:before {\n content: \"\\e125\";\n }\n .glyphicon-thumbs-down:before {\n content: \"\\e126\";\n }\n .glyphicon-hand-right:before {\n content: \"\\e127\";\n }\n .glyphicon-hand-left:before {\n content: \"\\e128\";\n }\n .glyphicon-hand-up:before {\n content: \"\\e129\";\n }\n .glyphicon-hand-down:before {\n content: \"\\e130\";\n }\n .glyphicon-circle-arrow-right:before {\n content: \"\\e131\";\n }\n .glyphicon-circle-arrow-left:before {\n content: \"\\e132\";\n }\n .glyphicon-circle-arrow-up:before {\n content: \"\\e133\";\n }\n .glyphicon-circle-arrow-down:before {\n content: \"\\e134\";\n }\n .glyphicon-globe:before {\n content: \"\\e135\";\n }\n .glyphicon-wrench:before {\n content: \"\\e136\";\n }\n .glyphicon-tasks:before {\n content: \"\\e137\";\n }\n .glyphicon-filter:before {\n content: \"\\e138\";\n }\n .glyphicon-briefcase:before {\n content: \"\\e139\";\n }\n .glyphicon-fullscreen:before {\n content: \"\\e140\";\n }\n .glyphicon-dashboard:before {\n content: \"\\e141\";\n }\n .glyphicon-paperclip:before {\n content: \"\\e142\";\n }\n .glyphicon-heart-empty:before {\n content: \"\\e143\";\n }\n .glyphicon-link:before {\n content: \"\\e144\";\n }\n .glyphicon-phone:before {\n content: \"\\e145\";\n }\n .glyphicon-pushpin:before {\n content: \"\\e146\";\n }\n .glyphicon-usd:before {\n content: \"\\e148\";\n }\n .glyphicon-gbp:before {\n content: \"\\e149\";\n }\n .glyphicon-sort:before {\n content: \"\\e150\";\n }\n .glyphicon-sort-by-alphabet:before {\n content: \"\\e151\";\n }\n .glyphicon-sort-by-alphabet-alt:before {\n content: \"\\e152\";\n }\n .glyphicon-sort-by-order:before {\n content: \"\\e153\";\n }\n .glyphicon-sort-by-order-alt:before {\n content: \"\\e154\";\n }\n .glyphicon-sort-by-attributes:before {\n content: \"\\e155\";\n }\n .glyphicon-sort-by-attributes-alt:before {\n content: \"\\e156\";\n }\n .glyphicon-unchecked:before {\n content: \"\\e157\";\n }\n .glyphicon-expand:before {\n content: \"\\e158\";\n }\n .glyphicon-collapse-down:before {\n content: \"\\e159\";\n }\n .glyphicon-collapse-up:before {\n content: \"\\e160\";\n }\n .glyphicon-log-in:before {\n content: \"\\e161\";\n }\n .glyphicon-flash:before {\n content: \"\\e162\";\n }\n .glyphicon-log-out:before {\n content: \"\\e163\";\n }\n .glyphicon-new-window:before {\n content: \"\\e164\";\n }\n .glyphicon-record:before {\n content: \"\\e165\";\n }\n .glyphicon-save:before {\n content: \"\\e166\";\n }\n .glyphicon-open:before {\n content: \"\\e167\";\n }\n .glyphicon-saved:before {\n content: \"\\e168\";\n }\n .glyphicon-import:before {\n content: \"\\e169\";\n }\n .glyphicon-export:before {\n content: \"\\e170\";\n }\n .glyphicon-send:before {\n content: \"\\e171\";\n }\n .glyphicon-floppy-disk:before {\n content: \"\\e172\";\n }\n .glyphicon-floppy-saved:before {\n content: \"\\e173\";\n }\n .glyphicon-floppy-remove:before {\n content: \"\\e174\";\n }\n .glyphicon-floppy-save:before {\n content: \"\\e175\";\n }\n .glyphicon-floppy-open:before {\n content: \"\\e176\";\n }\n .glyphicon-credit-card:before {\n content: \"\\e177\";\n }\n .glyphicon-transfer:before {\n content: \"\\e178\";\n }\n .glyphicon-cutlery:before {\n content: \"\\e179\";\n }\n .glyphicon-header:before {\n content: \"\\e180\";\n }\n .glyphicon-compressed:before {\n content: \"\\e181\";\n }\n .glyphicon-earphone:before {\n content: \"\\e182\";\n }\n .glyphicon-phone-alt:before {\n content: \"\\e183\";\n }\n .glyphicon-tower:before {\n content: \"\\e184\";\n }\n .glyphicon-stats:before {\n content: \"\\e185\";\n }\n .glyphicon-sd-video:before {\n content: \"\\e186\";\n }\n .glyphicon-hd-video:before {\n content: \"\\e187\";\n }\n .glyphicon-subtitles:before {\n content: \"\\e188\";\n }\n .glyphicon-sound-stereo:before {\n content: \"\\e189\";\n }\n .glyphicon-sound-dolby:before {\n content: \"\\e190\";\n }\n .glyphicon-sound-5-1:before {\n content: \"\\e191\";\n }\n .glyphicon-sound-6-1:before {\n content: \"\\e192\";\n }\n .glyphicon-sound-7-1:before {\n content: \"\\e193\";\n }\n .glyphicon-copyright-mark:before {\n content: \"\\e194\";\n }\n .glyphicon-registration-mark:before {\n content: \"\\e195\";\n }\n .glyphicon-cloud-download:before {\n content: \"\\e197\";\n }\n .glyphicon-cloud-upload:before {\n content: \"\\e198\";\n }\n .glyphicon-tree-conifer:before {\n content: \"\\e199\";\n }\n .glyphicon-tree-deciduous:before {\n content: \"\\e200\";\n }\n .glyphicon-cd:before {\n content: \"\\e201\";\n }\n .glyphicon-save-file:before {\n content: \"\\e202\";\n }\n .glyphicon-open-file:before {\n content: \"\\e203\";\n }\n .glyphicon-level-up:before {\n content: \"\\e204\";\n }\n .glyphicon-copy:before {\n content: \"\\e205\";\n }\n .glyphicon-paste:before {\n content: \"\\e206\";\n }\n .glyphicon-alert:before {\n content: \"\\e209\";\n }\n .glyphicon-equalizer:before {\n content: \"\\e210\";\n }\n .glyphicon-king:before {\n content: \"\\e211\";\n }\n .glyphicon-queen:before {\n content: \"\\e212\";\n }\n .glyphicon-pawn:before {\n content: \"\\e213\";\n }\n .glyphicon-bishop:before {\n content: \"\\e214\";\n }\n .glyphicon-knight:before {\n content: \"\\e215\";\n }\n .glyphicon-baby-formula:before {\n content: \"\\e216\";\n }\n .glyphicon-tent:before {\n content: \"\\26fa\";\n }\n .glyphicon-blackboard:before {\n content: \"\\e218\";\n }\n .glyphicon-bed:before {\n content: \"\\e219\";\n }\n .glyphicon-apple:before {\n content: \"\\f8ff\";\n }\n .glyphicon-erase:before {\n content: \"\\e221\";\n }\n .glyphicon-hourglass:before {\n content: \"\\231b\";\n }\n .glyphicon-lamp:before {\n content: \"\\e223\";\n }\n .glyphicon-duplicate:before {\n content: \"\\e224\";\n }\n .glyphicon-piggy-bank:before {\n content: \"\\e225\";\n }\n .glyphicon-scissors:before {\n content: \"\\e226\";\n }\n .glyphicon-bitcoin:before {\n content: \"\\e227\";\n }\n .glyphicon-btc:before {\n content: \"\\e227\";\n }\n .glyphicon-xbt:before {\n content: \"\\e227\";\n }\n .glyphicon-yen:before {\n content: \"\\00a5\";\n }\n .glyphicon-jpy:before {\n content: \"\\00a5\";\n }\n .glyphicon-ruble:before {\n content: \"\\20bd\";\n }\n .glyphicon-rub:before {\n content: \"\\20bd\";\n }\n .glyphicon-scale:before {\n content: \"\\e230\";\n }\n .glyphicon-ice-lolly:before {\n content: \"\\e231\";\n }\n .glyphicon-ice-lolly-tasted:before {\n content: \"\\e232\";\n }\n .glyphicon-education:before {\n content: \"\\e233\";\n }\n .glyphicon-option-horizontal:before {\n content: \"\\e234\";\n }\n .glyphicon-option-vertical:before {\n content: \"\\e235\";\n }\n .glyphicon-menu-hamburger:before {\n content: \"\\e236\";\n }\n .glyphicon-modal-window:before {\n content: \"\\e237\";\n }\n .glyphicon-oil:before {\n content: \"\\e238\";\n }\n .glyphicon-grain:before {\n content: \"\\e239\";\n }\n .glyphicon-sunglasses:before {\n content: \"\\e240\";\n }\n .glyphicon-text-size:before {\n content: \"\\e241\";\n }\n .glyphicon-text-color:before {\n content: \"\\e242\";\n }\n .glyphicon-text-background:before {\n content: \"\\e243\";\n }\n .glyphicon-object-align-top:before {\n content: \"\\e244\";\n }\n .glyphicon-object-align-bottom:before {\n content: \"\\e245\";\n }\n .glyphicon-object-align-horizontal:before {\n content: \"\\e246\";\n }\n .glyphicon-object-align-left:before {\n content: \"\\e247\";\n }\n .glyphicon-object-align-vertical:before {\n content: \"\\e248\";\n }\n .glyphicon-object-align-right:before {\n content: \"\\e249\";\n }\n .glyphicon-triangle-right:before {\n content: \"\\e250\";\n }\n .glyphicon-triangle-left:before {\n content: \"\\e251\";\n }\n .glyphicon-triangle-bottom:before {\n content: \"\\e252\";\n }\n .glyphicon-triangle-top:before {\n content: \"\\e253\";\n }\n .glyphicon-console:before {\n content: \"\\e254\";\n }\n .glyphicon-superscript:before {\n content: \"\\e255\";\n }\n .glyphicon-subscript:before {\n content: \"\\e256\";\n }\n .glyphicon-menu-left:before {\n content: \"\\e257\";\n }\n .glyphicon-menu-right:before {\n content: \"\\e258\";\n }\n .glyphicon-menu-down:before {\n content: \"\\e259\";\n }\n .glyphicon-menu-up:before {\n content: \"\\e260\";\n }\n * {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n }\n *:before,\n *:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n }\n html {\n font-size: 10px;\n\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n }\n body {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n color: #333;\n background-color: #fff;\n }\n input,\n button,\n select,\n textarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n a {\n color: #337ab7;\n text-decoration: none;\n }\n a:hover,\n a:focus {\n color: #23527c;\n text-decoration: underline;\n }\n a:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n }\n figure {\n margin: 0;\n }\n img {\n vertical-align: middle;\n }\n .img-responsive,\n .thumbnail > img,\n .thumbnail a > img,\n .carousel-inner > .item > img,\n .carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n }\n .img-rounded {\n border-radius: 6px;\n }\n .img-thumbnail {\n display: inline-block;\n max-width: 100%;\n height: auto;\n padding: 4px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n }\n .img-circle {\n border-radius: 50%;\n }\n hr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #eee;\n }\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n }\n .sr-only-focusable:active,\n .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n }\n [role=\"button\"] {\n cursor: pointer;\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n .h1,\n .h2,\n .h3,\n .h4,\n .h5,\n .h6 {\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit;\n }\n h1 small,\n h2 small,\n h3 small,\n h4 small,\n h5 small,\n h6 small,\n .h1 small,\n .h2 small,\n .h3 small,\n .h4 small,\n .h5 small,\n .h6 small,\n h1 .small,\n h2 .small,\n h3 .small,\n h4 .small,\n h5 .small,\n h6 .small,\n .h1 .small,\n .h2 .small,\n .h3 .small,\n .h4 .small,\n .h5 .small,\n .h6 .small {\n font-weight: normal;\n line-height: 1;\n color: #777;\n }\n h1,\n .h1,\n h2,\n .h2,\n h3,\n .h3 {\n margin-top: 20px;\n margin-bottom: 10px;\n }\n h1 small,\n .h1 small,\n h2 small,\n .h2 small,\n h3 small,\n .h3 small,\n h1 .small,\n .h1 .small,\n h2 .small,\n .h2 .small,\n h3 .small,\n .h3 .small {\n font-size: 65%;\n }\n h4,\n .h4,\n h5,\n .h5,\n h6,\n .h6 {\n margin-top: 10px;\n margin-bottom: 10px;\n }\n h4 small,\n .h4 small,\n h5 small,\n .h5 small,\n h6 small,\n .h6 small,\n h4 .small,\n .h4 .small,\n h5 .small,\n .h5 .small,\n h6 .small,\n .h6 .small {\n font-size: 75%;\n }\n h1,\n .h1 {\n font-size: 36px;\n }\n h2,\n .h2 {\n font-size: 30px;\n }\n h3,\n .h3 {\n font-size: 24px;\n }\n h4,\n .h4 {\n font-size: 18px;\n }\n h5,\n .h5 {\n font-size: 14px;\n }\n h6,\n .h6 {\n font-size: 12px;\n }\n p {\n margin: 0 0 10px;\n }\n .lead {\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 300;\n line-height: 1.4;\n }\n @media (min-width: 768px) {\n .lead {\n font-size: 21px;\n }\n }\n small,\n .small {\n font-size: 85%;\n }\n mark,\n .mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n }\n .text-left {\n text-align: left;\n }\n .text-right {\n text-align: right;\n }\n .text-center {\n text-align: center;\n }\n .text-justify {\n text-align: justify;\n }\n .text-nowrap {\n white-space: nowrap;\n }\n .text-lowercase {\n text-transform: lowercase;\n }\n .text-uppercase {\n text-transform: uppercase;\n }\n .text-capitalize {\n text-transform: capitalize;\n }\n .text-muted {\n color: #777;\n }\n .text-primary {\n color: #337ab7;\n }\n a.text-primary:hover {\n color: #286090;\n }\n .text-success {\n color: #3c763d;\n }\n a.text-success:hover {\n color: #2b542c;\n }\n .text-info {\n color: #31708f;\n }\n a.text-info:hover {\n color: #245269;\n }\n .text-warning {\n color: #8a6d3b;\n }\n a.text-warning:hover {\n color: #66512c;\n }\n .text-danger {\n color: #a94442;\n }\n a.text-danger:hover {\n color: #843534;\n }\n .bg-primary {\n color: #fff;\n background-color: #337ab7;\n }\n a.bg-primary:hover {\n background-color: #286090;\n }\n .bg-success {\n background-color: #dff0d8;\n }\n a.bg-success:hover {\n background-color: #c1e2b3;\n }\n .bg-info {\n background-color: #d9edf7;\n }\n a.bg-info:hover {\n background-color: #afd9ee;\n }\n .bg-warning {\n background-color: #fcf8e3;\n }\n a.bg-warning:hover {\n background-color: #f7ecb5;\n }\n .bg-danger {\n background-color: #f2dede;\n }\n a.bg-danger:hover {\n background-color: #e4b9b9;\n }\n .page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #eee;\n }\n ul,\n ol {\n margin-top: 0;\n margin-bottom: 10px;\n }\n ul ul,\n ol ul,\n ul ol,\n ol ol {\n margin-bottom: 0;\n }\n .list-unstyled {\n padding-left: 0;\n list-style: none;\n }\n .list-inline {\n padding-left: 0;\n margin-left: -5px;\n list-style: none;\n }\n .list-inline > li {\n display: inline-block;\n padding-right: 5px;\n padding-left: 5px;\n }\n dl {\n margin-top: 0;\n margin-bottom: 20px;\n }\n dt,\n dd {\n line-height: 1.42857143;\n }\n dt {\n font-weight: bold;\n }\n dd {\n margin-left: 0;\n }\n @media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n overflow: hidden;\n clear: left;\n text-align: right;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dl-horizontal dd {\n margin-left: 180px;\n }\n }\n abbr[title],\n abbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted #777;\n }\n .initialism {\n font-size: 90%;\n text-transform: uppercase;\n }\n blockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n font-size: 17.5px;\n border-left: 5px solid #eee;\n }\n blockquote p:last-child,\n blockquote ul:last-child,\n blockquote ol:last-child {\n margin-bottom: 0;\n }\n blockquote footer,\n blockquote small,\n blockquote .small {\n display: block;\n font-size: 80%;\n line-height: 1.42857143;\n color: #777;\n }\n blockquote footer:before,\n blockquote small:before,\n blockquote .small:before {\n content: \"\\2014 \\00A0\";\n }\n .blockquote-reverse,\n blockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n text-align: right;\n border-right: 5px solid #eee;\n border-left: 0;\n }\n .blockquote-reverse footer:before,\n blockquote.pull-right footer:before,\n .blockquote-reverse small:before,\n blockquote.pull-right small:before,\n .blockquote-reverse .small:before,\n blockquote.pull-right .small:before {\n content: \"\";\n }\n .blockquote-reverse footer:after,\n blockquote.pull-right footer:after,\n .blockquote-reverse small:after,\n blockquote.pull-right small:after,\n .blockquote-reverse .small:after,\n blockquote.pull-right .small:after {\n content: \"\\00A0 \\2014\";\n }\n address {\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.42857143;\n }\n code,\n kbd,\n pre,\n samp {\n font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n }\n code {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n border-radius: 4px;\n }\n kbd {\n padding: 2px 4px;\n font-size: 90%;\n color: #fff;\n background-color: #333;\n border-radius: 3px;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n }\n kbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n pre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n color: #333;\n word-break: break-all;\n word-wrap: break-word;\n background-color: #f5f5f5;\n border: 1px solid #ccc;\n border-radius: 4px;\n }\n pre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n }\n .pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n }\n .container {\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n }\n @media (min-width: 768px) {\n .container {\n width: 750px;\n }\n }\n @media (min-width: 992px) {\n .container {\n width: 970px;\n }\n }\n @media (min-width: 1200px) {\n .container {\n width: 1170px;\n }\n }\n .container-fluid {\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n }\n .row {\n margin-right: -15px;\n margin-left: -15px;\n }\n //.col-xs-1,\n //.col-sm-1,\n //.col-md-1,\n //.col-lg-1,\n //.col-xs-2,\n //.col-sm-2,\n //.col-md-2,\n //.col-lg-2,\n //.col-xs-3,\n //.col-sm-3,\n //.col-md-3,\n //.col-lg-3,\n //.col-xs-4,\n //.col-sm-4,\n //.col-md-4,\n //.col-lg-4,\n //.col-xs-5,\n //.col-sm-5,\n //.col-md-5,\n //.col-lg-5,\n //.col-xs-6,\n //.col-sm-6,\n //.col-md-6,\n //.col-lg-6,\n //.col-xs-7,\n //.col-sm-7,\n //.col-md-7,\n //.col-lg-7,\n //.col-xs-8,\n //.col-sm-8,\n //.col-md-8,\n //.col-lg-8,\n //.col-xs-9,\n //.col-sm-9,\n //.col-md-9,\n //.col-lg-9,\n //.col-xs-10,\n //.col-sm-10,\n //.col-md-10,\n //.col-lg-10,\n //.col-xs-11,\n //.col-sm-11,\n //.col-md-11,\n //.col-lg-11,\n //.col-xs-12,\n //.col-sm-12,\n //.col-md-12,\n //.col-lg-12 {\n // position: relative;\n // min-height: 1px;\n // padding-right: 15px;\n // padding-left: 15px;\n //}\n //.col-xs-1,\n //.col-xs-2,\n //.col-xs-3,\n //.col-xs-4,\n //.col-xs-5,\n //.col-xs-6,\n //.col-xs-7,\n //.col-xs-8,\n //.col-xs-9,\n //.col-xs-10,\n //.col-xs-11,\n //.col-xs-12 {\n // float: left;\n //}\n //.col-xs-12 {\n // width: 100%;\n //}\n //.col-xs-11 {\n // width: 91.66666667%;\n //}\n //.col-xs-10 {\n // width: 83.33333333%;\n //}\n //.col-xs-9 {\n // width: 75%;\n //}\n //.col-xs-8 {\n // width: 66.66666667%;\n //}\n //.col-xs-7 {\n // width: 58.33333333%;\n //}\n //.col-xs-6 {\n // width: 50%;\n //}\n //.col-xs-5 {\n // width: 41.66666667%;\n //}\n //.col-xs-4 {\n // width: 33.33333333%;\n //}\n //.col-xs-3 {\n // width: 25%;\n //}\n //.col-xs-2 {\n // width: 16.66666667%;\n //}\n //.col-xs-1 {\n // width: 8.33333333%;\n //}\n //.col-xs-pull-12 {\n // right: 100%;\n //}\n //.col-xs-pull-11 {\n // right: 91.66666667%;\n //}\n //.col-xs-pull-10 {\n // right: 83.33333333%;\n //}\n //.col-xs-pull-9 {\n // right: 75%;\n //}\n //.col-xs-pull-8 {\n // right: 66.66666667%;\n //}\n //.col-xs-pull-7 {\n // right: 58.33333333%;\n //}\n //.col-xs-pull-6 {\n // right: 50%;\n //}\n //.col-xs-pull-5 {\n // right: 41.66666667%;\n //}\n //.col-xs-pull-4 {\n // right: 33.33333333%;\n //}\n //.col-xs-pull-3 {\n // right: 25%;\n //}\n //.col-xs-pull-2 {\n // right: 16.66666667%;\n //}\n //.col-xs-pull-1 {\n // right: 8.33333333%;\n //}\n //.col-xs-pull-0 {\n // right: auto;\n //}\n //.col-xs-push-12 {\n // left: 100%;\n //}\n //.col-xs-push-11 {\n // left: 91.66666667%;\n //}\n //.col-xs-push-10 {\n // left: 83.33333333%;\n //}\n //.col-xs-push-9 {\n // left: 75%;\n //}\n //.col-xs-push-8 {\n // left: 66.66666667%;\n //}\n //.col-xs-push-7 {\n // left: 58.33333333%;\n //}\n //.col-xs-push-6 {\n // left: 50%;\n //}\n //.col-xs-push-5 {\n // left: 41.66666667%;\n //}\n //.col-xs-push-4 {\n // left: 33.33333333%;\n //}\n //.col-xs-push-3 {\n // left: 25%;\n //}\n //.col-xs-push-2 {\n // left: 16.66666667%;\n //}\n //.col-xs-push-1 {\n // left: 8.33333333%;\n //}\n //.col-xs-push-0 {\n // left: auto;\n //}\n //.col-xs-offset-12 {\n // margin-left: 100%;\n //}\n //.col-xs-offset-11 {\n // margin-left: 91.66666667%;\n //}\n //.col-xs-offset-10 {\n // margin-left: 83.33333333%;\n //}\n //.col-xs-offset-9 {\n // margin-left: 75%;\n //}\n //.col-xs-offset-8 {\n // margin-left: 66.66666667%;\n //}\n //.col-xs-offset-7 {\n // margin-left: 58.33333333%;\n //}\n //.col-xs-offset-6 {\n // margin-left: 50%;\n //}\n //.col-xs-offset-5 {\n // margin-left: 41.66666667%;\n //}\n //.col-xs-offset-4 {\n // margin-left: 33.33333333%;\n //}\n //.col-xs-offset-3 {\n // margin-left: 25%;\n //}\n //.col-xs-offset-2 {\n // margin-left: 16.66666667%;\n //}\n //.col-xs-offset-1 {\n // margin-left: 8.33333333%;\n //}\n //.col-xs-offset-0 {\n // margin-left: 0;\n //}\n //@media (min-width: 768px) {\n // .col-sm-1,\n // .col-sm-2,\n // .col-sm-3,\n // .col-sm-4,\n // .col-sm-5,\n // .col-sm-6,\n // .col-sm-7,\n // .col-sm-8,\n // .col-sm-9,\n // .col-sm-10,\n // .col-sm-11,\n // .col-sm-12 {\n // float: left;\n // }\n // .col-sm-12 {\n // width: 100%;\n // }\n // .col-sm-11 {\n // width: 91.66666667%;\n // }\n // .col-sm-10 {\n // width: 83.33333333%;\n // }\n // .col-sm-9 {\n // width: 75%;\n // }\n // .col-sm-8 {\n // width: 66.66666667%;\n // }\n // .col-sm-7 {\n // width: 58.33333333%;\n // }\n // .col-sm-6 {\n // width: 50%;\n // }\n // .col-sm-5 {\n // width: 41.66666667%;\n // }\n // .col-sm-4 {\n // width: 33.33333333%;\n // }\n // .col-sm-3 {\n // width: 25%;\n // }\n // .col-sm-2 {\n // width: 16.66666667%;\n // }\n // .col-sm-1 {\n // width: 8.33333333%;\n // }\n // .col-sm-pull-12 {\n // right: 100%;\n // }\n // .col-sm-pull-11 {\n // right: 91.66666667%;\n // }\n // .col-sm-pull-10 {\n // right: 83.33333333%;\n // }\n // .col-sm-pull-9 {\n // right: 75%;\n // }\n // .col-sm-pull-8 {\n // right: 66.66666667%;\n // }\n // .col-sm-pull-7 {\n // right: 58.33333333%;\n // }\n // .col-sm-pull-6 {\n // right: 50%;\n // }\n // .col-sm-pull-5 {\n // right: 41.66666667%;\n // }\n // .col-sm-pull-4 {\n // right: 33.33333333%;\n // }\n // .col-sm-pull-3 {\n // right: 25%;\n // }\n // .col-sm-pull-2 {\n // right: 16.66666667%;\n // }\n // .col-sm-pull-1 {\n // right: 8.33333333%;\n // }\n // .col-sm-pull-0 {\n // right: auto;\n // }\n // .col-sm-push-12 {\n // left: 100%;\n // }\n // .col-sm-push-11 {\n // left: 91.66666667%;\n // }\n // .col-sm-push-10 {\n // left: 83.33333333%;\n // }\n // .col-sm-push-9 {\n // left: 75%;\n // }\n // .col-sm-push-8 {\n // left: 66.66666667%;\n // }\n // .col-sm-push-7 {\n // left: 58.33333333%;\n // }\n // .col-sm-push-6 {\n // left: 50%;\n // }\n // .col-sm-push-5 {\n // left: 41.66666667%;\n // }\n // .col-sm-push-4 {\n // left: 33.33333333%;\n // }\n // .col-sm-push-3 {\n // left: 25%;\n // }\n // .col-sm-push-2 {\n // left: 16.66666667%;\n // }\n // .col-sm-push-1 {\n // left: 8.33333333%;\n // }\n // .col-sm-push-0 {\n // left: auto;\n // }\n // .col-sm-offset-12 {\n // margin-left: 100%;\n // }\n // .col-sm-offset-11 {\n // margin-left: 91.66666667%;\n // }\n // .col-sm-offset-10 {\n // margin-left: 83.33333333%;\n // }\n // .col-sm-offset-9 {\n // margin-left: 75%;\n // }\n // .col-sm-offset-8 {\n // margin-left: 66.66666667%;\n // }\n // .col-sm-offset-7 {\n // margin-left: 58.33333333%;\n // }\n // .col-sm-offset-6 {\n // margin-left: 50%;\n // }\n // .col-sm-offset-5 {\n // margin-left: 41.66666667%;\n // }\n // .col-sm-offset-4 {\n // margin-left: 33.33333333%;\n // }\n // .col-sm-offset-3 {\n // margin-left: 25%;\n // }\n // .col-sm-offset-2 {\n // margin-left: 16.66666667%;\n // }\n // .col-sm-offset-1 {\n // margin-left: 8.33333333%;\n // }\n // .col-sm-offset-0 {\n // margin-left: 0;\n // }\n //}\n //@media (min-width: 992px) {\n // .col-md-1,\n // .col-md-2,\n // .col-md-3,\n // .col-md-4,\n // .col-md-5,\n // .col-md-6,\n // .col-md-7,\n // .col-md-8,\n // .col-md-9,\n // .col-md-10,\n // .col-md-11,\n // .col-md-12 {\n // float: left;\n // }\n // .col-md-12 {\n // width: 100%;\n // }\n // .col-md-11 {\n // width: 91.66666667%;\n // }\n // .col-md-10 {\n // width: 83.33333333%;\n // }\n // .col-md-9 {\n // width: 75%;\n // }\n // .col-md-8 {\n // width: 66.66666667%;\n // }\n // .col-md-7 {\n // width: 58.33333333%;\n // }\n // .col-md-6 {\n // width: 50%;\n // }\n // .col-md-5 {\n // width: 41.66666667%;\n // }\n // .col-md-4 {\n // width: 33.33333333%;\n // }\n // .col-md-3 {\n // width: 25%;\n // }\n // .col-md-2 {\n // width: 16.66666667%;\n // }\n // .col-md-1 {\n // width: 8.33333333%;\n // }\n // .col-md-pull-12 {\n // right: 100%;\n // }\n // .col-md-pull-11 {\n // right: 91.66666667%;\n // }\n // .col-md-pull-10 {\n // right: 83.33333333%;\n // }\n // .col-md-pull-9 {\n // right: 75%;\n // }\n // .col-md-pull-8 {\n // right: 66.66666667%;\n // }\n // .col-md-pull-7 {\n // right: 58.33333333%;\n // }\n // .col-md-pull-6 {\n // right: 50%;\n // }\n // .col-md-pull-5 {\n // right: 41.66666667%;\n // }\n // .col-md-pull-4 {\n // right: 33.33333333%;\n // }\n // .col-md-pull-3 {\n // right: 25%;\n // }\n // .col-md-pull-2 {\n // right: 16.66666667%;\n // }\n // .col-md-pull-1 {\n // right: 8.33333333%;\n // }\n // .col-md-pull-0 {\n // right: auto;\n // }\n // .col-md-push-12 {\n // left: 100%;\n // }\n // .col-md-push-11 {\n // left: 91.66666667%;\n // }\n // .col-md-push-10 {\n // left: 83.33333333%;\n // }\n // .col-md-push-9 {\n // left: 75%;\n // }\n // .col-md-push-8 {\n // left: 66.66666667%;\n // }\n // .col-md-push-7 {\n // left: 58.33333333%;\n // }\n // .col-md-push-6 {\n // left: 50%;\n // }\n // .col-md-push-5 {\n // left: 41.66666667%;\n // }\n // .col-md-push-4 {\n // left: 33.33333333%;\n // }\n // .col-md-push-3 {\n // left: 25%;\n // }\n // .col-md-push-2 {\n // left: 16.66666667%;\n // }\n // .col-md-push-1 {\n // left: 8.33333333%;\n // }\n // .col-md-push-0 {\n // left: auto;\n // }\n // .col-md-offset-12 {\n // margin-left: 100%;\n // }\n // .col-md-offset-11 {\n // margin-left: 91.66666667%;\n // }\n // .col-md-offset-10 {\n // margin-left: 83.33333333%;\n // }\n // .col-md-offset-9 {\n // margin-left: 75%;\n // }\n // .col-md-offset-8 {\n // margin-left: 66.66666667%;\n // }\n // .col-md-offset-7 {\n // margin-left: 58.33333333%;\n // }\n // .col-md-offset-6 {\n // margin-left: 50%;\n // }\n // .col-md-offset-5 {\n // margin-left: 41.66666667%;\n // }\n // .col-md-offset-4 {\n // margin-left: 33.33333333%;\n // }\n // .col-md-offset-3 {\n // margin-left: 25%;\n // }\n // .col-md-offset-2 {\n // margin-left: 16.66666667%;\n // }\n // .col-md-offset-1 {\n // margin-left: 8.33333333%;\n // }\n // .col-md-offset-0 {\n // margin-left: 0;\n // }\n //}\n //@media (min-width: 1200px) {\n // .col-lg-1,\n // .col-lg-2,\n // .col-lg-3,\n // .col-lg-4,\n // .col-lg-5,\n // .col-lg-6,\n // .col-lg-7,\n // .col-lg-8,\n // .col-lg-9,\n // .col-lg-10,\n // .col-lg-11,\n // .col-lg-12 {\n // float: left;\n // }\n // .col-lg-12 {\n // width: 100%;\n // }\n // .col-lg-11 {\n // width: 91.66666667%;\n // }\n // .col-lg-10 {\n // width: 83.33333333%;\n // }\n // .col-lg-9 {\n // width: 75%;\n // }\n // .col-lg-8 {\n // width: 66.66666667%;\n // }\n // .col-lg-7 {\n // width: 58.33333333%;\n // }\n // .col-lg-6 {\n // width: 50%;\n // }\n // .col-lg-5 {\n // width: 41.66666667%;\n // }\n // .col-lg-4 {\n // width: 33.33333333%;\n // }\n // .col-lg-3 {\n // width: 25%;\n // }\n // .col-lg-2 {\n // width: 16.66666667%;\n // }\n // .col-lg-1 {\n // width: 8.33333333%;\n // }\n // .col-lg-pull-12 {\n // right: 100%;\n // }\n // .col-lg-pull-11 {\n // right: 91.66666667%;\n // }\n // .col-lg-pull-10 {\n // right: 83.33333333%;\n // }\n // .col-lg-pull-9 {\n // right: 75%;\n // }\n // .col-lg-pull-8 {\n // right: 66.66666667%;\n // }\n // .col-lg-pull-7 {\n // right: 58.33333333%;\n // }\n // .col-lg-pull-6 {\n // right: 50%;\n // }\n // .col-lg-pull-5 {\n // right: 41.66666667%;\n // }\n // .col-lg-pull-4 {\n // right: 33.33333333%;\n // }\n // .col-lg-pull-3 {\n // right: 25%;\n // }\n // .col-lg-pull-2 {\n // right: 16.66666667%;\n // }\n // .col-lg-pull-1 {\n // right: 8.33333333%;\n // }\n // .col-lg-pull-0 {\n // right: auto;\n // }\n // .col-lg-push-12 {\n // left: 100%;\n // }\n // .col-lg-push-11 {\n // left: 91.66666667%;\n // }\n // .col-lg-push-10 {\n // left: 83.33333333%;\n // }\n // .col-lg-push-9 {\n // left: 75%;\n // }\n // .col-lg-push-8 {\n // left: 66.66666667%;\n // }\n // .col-lg-push-7 {\n // left: 58.33333333%;\n // }\n // .col-lg-push-6 {\n // left: 50%;\n // }\n // .col-lg-push-5 {\n // left: 41.66666667%;\n // }\n // .col-lg-push-4 {\n // left: 33.33333333%;\n // }\n // .col-lg-push-3 {\n // left: 25%;\n // }\n // .col-lg-push-2 {\n // left: 16.66666667%;\n // }\n // .col-lg-push-1 {\n // left: 8.33333333%;\n // }\n // .col-lg-push-0 {\n // left: auto;\n // }\n // .col-lg-offset-12 {\n // margin-left: 100%;\n // }\n // .col-lg-offset-11 {\n // margin-left: 91.66666667%;\n // }\n // .col-lg-offset-10 {\n // margin-left: 83.33333333%;\n // }\n // .col-lg-offset-9 {\n // margin-left: 75%;\n // }\n // .col-lg-offset-8 {\n // margin-left: 66.66666667%;\n // }\n // .col-lg-offset-7 {\n // margin-left: 58.33333333%;\n // }\n // .col-lg-offset-6 {\n // margin-left: 50%;\n // }\n // .col-lg-offset-5 {\n // margin-left: 41.66666667%;\n // }\n // .col-lg-offset-4 {\n // margin-left: 33.33333333%;\n // }\n // .col-lg-offset-3 {\n // margin-left: 25%;\n // }\n // .col-lg-offset-2 {\n // margin-left: 16.66666667%;\n // }\n // .col-lg-offset-1 {\n // margin-left: 8.33333333%;\n // }\n // .col-lg-offset-0 {\n // margin-left: 0;\n // }\n //}\n table {\n background-color: transparent;\n }\n caption {\n padding-top: 8px;\n padding-bottom: 8px;\n color: #777;\n text-align: left;\n }\n th {\n text-align: left;\n }\n .table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 20px;\n }\n .table > thead > tr > th,\n .table > tbody > tr > th,\n .table > tfoot > tr > th,\n .table > thead > tr > td,\n .table > tbody > tr > td,\n .table > tfoot > tr > td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: top;\n border-top: 1px solid #ddd;\n }\n .table > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #ddd;\n }\n .table > caption + thead > tr:first-child > th,\n .table > colgroup + thead > tr:first-child > th,\n .table > thead:first-child > tr:first-child > th,\n .table > caption + thead > tr:first-child > td,\n .table > colgroup + thead > tr:first-child > td,\n .table > thead:first-child > tr:first-child > td {\n border-top: 0;\n }\n .table > tbody + tbody {\n border-top: 2px solid #ddd;\n }\n .table .table {\n background-color: #fff;\n }\n .table-condensed > thead > tr > th,\n .table-condensed > tbody > tr > th,\n .table-condensed > tfoot > tr > th,\n .table-condensed > thead > tr > td,\n .table-condensed > tbody > tr > td,\n .table-condensed > tfoot > tr > td {\n padding: 5px;\n }\n .table-bordered {\n border: 1px solid #ddd;\n }\n .table-bordered > thead > tr > th,\n .table-bordered > tbody > tr > th,\n .table-bordered > tfoot > tr > th,\n .table-bordered > thead > tr > td,\n .table-bordered > tbody > tr > td,\n .table-bordered > tfoot > tr > td {\n border: 1px solid #ddd;\n }\n .table-bordered > thead > tr > th,\n .table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n }\n .table-striped > tbody > tr:nth-of-type(odd) {\n background-color: #f9f9f9;\n }\n .table-hover > tbody > tr:hover {\n background-color: #f5f5f5;\n }\n table col[class*=\"col-\"] {\n position: static;\n display: table-column;\n float: none;\n }\n table td[class*=\"col-\"],\n table th[class*=\"col-\"] {\n position: static;\n display: table-cell;\n float: none;\n }\n .table > thead > tr > td.active,\n .table > tbody > tr > td.active,\n .table > tfoot > tr > td.active,\n .table > thead > tr > th.active,\n .table > tbody > tr > th.active,\n .table > tfoot > tr > th.active,\n .table > thead > tr.active > td,\n .table > tbody > tr.active > td,\n .table > tfoot > tr.active > td,\n .table > thead > tr.active > th,\n .table > tbody > tr.active > th,\n .table > tfoot > tr.active > th {\n background-color: #f5f5f5;\n }\n .table-hover > tbody > tr > td.active:hover,\n .table-hover > tbody > tr > th.active:hover,\n .table-hover > tbody > tr.active:hover > td,\n .table-hover > tbody > tr:hover > .active,\n .table-hover > tbody > tr.active:hover > th {\n background-color: #e8e8e8;\n }\n .table > thead > tr > td.success,\n .table > tbody > tr > td.success,\n .table > tfoot > tr > td.success,\n .table > thead > tr > th.success,\n .table > tbody > tr > th.success,\n .table > tfoot > tr > th.success,\n .table > thead > tr.success > td,\n .table > tbody > tr.success > td,\n .table > tfoot > tr.success > td,\n .table > thead > tr.success > th,\n .table > tbody > tr.success > th,\n .table > tfoot > tr.success > th {\n background-color: #dff0d8;\n }\n .table-hover > tbody > tr > td.success:hover,\n .table-hover > tbody > tr > th.success:hover,\n .table-hover > tbody > tr.success:hover > td,\n .table-hover > tbody > tr:hover > .success,\n .table-hover > tbody > tr.success:hover > th {\n background-color: #d0e9c6;\n }\n .table > thead > tr > td.info,\n .table > tbody > tr > td.info,\n .table > tfoot > tr > td.info,\n .table > thead > tr > th.info,\n .table > tbody > tr > th.info,\n .table > tfoot > tr > th.info,\n .table > thead > tr.info > td,\n .table > tbody > tr.info > td,\n .table > tfoot > tr.info > td,\n .table > thead > tr.info > th,\n .table > tbody > tr.info > th,\n .table > tfoot > tr.info > th {\n background-color: #d9edf7;\n }\n .table-hover > tbody > tr > td.info:hover,\n .table-hover > tbody > tr > th.info:hover,\n .table-hover > tbody > tr.info:hover > td,\n .table-hover > tbody > tr:hover > .info,\n .table-hover > tbody > tr.info:hover > th {\n background-color: #c4e3f3;\n }\n .table > thead > tr > td.warning,\n .table > tbody > tr > td.warning,\n .table > tfoot > tr > td.warning,\n .table > thead > tr > th.warning,\n .table > tbody > tr > th.warning,\n .table > tfoot > tr > th.warning,\n .table > thead > tr.warning > td,\n .table > tbody > tr.warning > td,\n .table > tfoot > tr.warning > td,\n .table > thead > tr.warning > th,\n .table > tbody > tr.warning > th,\n .table > tfoot > tr.warning > th {\n background-color: #fcf8e3;\n }\n .table-hover > tbody > tr > td.warning:hover,\n .table-hover > tbody > tr > th.warning:hover,\n .table-hover > tbody > tr.warning:hover > td,\n .table-hover > tbody > tr:hover > .warning,\n .table-hover > tbody > tr.warning:hover > th {\n background-color: #faf2cc;\n }\n .table > thead > tr > td.danger,\n .table > tbody > tr > td.danger,\n .table > tfoot > tr > td.danger,\n .table > thead > tr > th.danger,\n .table > tbody > tr > th.danger,\n .table > tfoot > tr > th.danger,\n .table > thead > tr.danger > td,\n .table > tbody > tr.danger > td,\n .table > tfoot > tr.danger > td,\n .table > thead > tr.danger > th,\n .table > tbody > tr.danger > th,\n .table > tfoot > tr.danger > th {\n background-color: #f2dede;\n }\n .table-hover > tbody > tr > td.danger:hover,\n .table-hover > tbody > tr > th.danger:hover,\n .table-hover > tbody > tr.danger:hover > td,\n .table-hover > tbody > tr:hover > .danger,\n .table-hover > tbody > tr.danger:hover > th {\n background-color: #ebcccc;\n }\n .table-responsive {\n min-height: 0.01%;\n overflow-x: auto;\n }\n @media screen and (max-width: 767px) {\n .table-responsive {\n width: 100%;\n margin-bottom: 15px;\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid #ddd;\n }\n .table-responsive > .table {\n margin-bottom: 0;\n }\n .table-responsive > .table > thead > tr > th,\n .table-responsive > .table > tbody > tr > th,\n .table-responsive > .table > tfoot > tr > th,\n .table-responsive > .table > thead > tr > td,\n .table-responsive > .table > tbody > tr > td,\n .table-responsive > .table > tfoot > tr > td {\n white-space: nowrap;\n }\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n }\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n border-bottom: 0;\n }\n }\n fieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n }\n legend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n }\n label {\n display: inline-block;\n max-width: 100%;\n margin-bottom: 5px;\n font-weight: bold;\n }\n input[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n }\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal;\n }\n input[type=\"file\"] {\n display: block;\n }\n input[type=\"range\"] {\n display: block;\n width: 100%;\n }\n select[multiple],\n select[size] {\n height: auto;\n }\n input[type=\"file\"]:focus,\n input[type=\"radio\"]:focus,\n input[type=\"checkbox\"]:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n }\n output {\n display: block;\n padding-top: 7px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555;\n }\n //.form-control {\n // display: block;\n // width: 100%;\n // height: 34px;\n // padding: 6px 12px;\n // font-size: 14px;\n // line-height: 1.42857143;\n // color: #555;\n // background-color: #fff;\n // background-image: none;\n // border: 1px solid #ccc;\n // border-radius: 4px;\n // -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n // box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n // -webkit-transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s;\n // -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n // transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n //}\n //.form-control:focus {\n // border-color: #66afe9;\n // outline: 0;\n // -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n // box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n //}\n //.form-control::-moz-placeholder {\n // color: #999;\n // opacity: 1;\n //}\n //.form-control:-ms-input-placeholder {\n // color: #999;\n //}\n //.form-control::-webkit-input-placeholder {\n // color: #999;\n //}\n //.form-control[disabled],\n //.form-control[readonly],\n //fieldset[disabled] .form-control {\n // background-color: #eee;\n // opacity: 1;\n //}\n //.form-control[disabled],\n //fieldset[disabled] .form-control {\n // cursor: not-allowed;\n //}\n //textarea.form-control {\n // height: auto;\n //}\n //input[type='search'] {\n // -webkit-appearance: none;\n //}\n // @media screen and (-webkit-min-device-pixel-ratio: 0) {\n // input[type='date'],\n // input[type='time'],\n // input[type='datetime-local'],\n // input[type='month'] {\n // line-height: 34px;\n // }\n // input[type='date'].input-sm,\n // input[type='time'].input-sm,\n // input[type='datetime-local'].input-sm,\n // input[type='month'].input-sm,\n // .input-group-sm input[type='date'],\n // .input-group-sm input[type='time'],\n // .input-group-sm input[type='datetime-local'],\n // .input-group-sm input[type='month'] {\n // line-height: 30px;\n // }\n // input[type='date'].input-lg,\n // input[type='time'].input-lg,\n // input[type='datetime-local'].input-lg,\n // input[type='month'].input-lg,\n // .input-group-lg input[type='date'],\n // .input-group-lg input[type='time'],\n // .input-group-lg input[type='datetime-local'],\n // .input-group-lg input[type='month'] {\n // line-height: 46px;\n // }\n // }\n //.form-group {\n // margin-bottom: 15px;\n //}\n .radio,\n .checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n }\n .radio label,\n .checkbox label {\n min-height: 20px;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n }\n .radio input[type=\"radio\"],\n .radio-inline input[type=\"radio\"],\n .checkbox input[type=\"checkbox\"],\n .checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-top: 4px \\9;\n margin-left: -20px;\n }\n .radio + .radio,\n .checkbox + .checkbox {\n margin-top: -5px;\n }\n .radio-inline,\n .checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n vertical-align: middle;\n cursor: pointer;\n }\n .radio-inline + .radio-inline,\n .checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n }\n input[type=\"radio\"][disabled],\n input[type=\"checkbox\"][disabled],\n input[type=\"radio\"].disabled,\n input[type=\"checkbox\"].disabled,\n fieldset[disabled] input[type=\"radio\"],\n fieldset[disabled] input[type=\"checkbox\"] {\n cursor: not-allowed;\n }\n .radio-inline.disabled,\n .checkbox-inline.disabled,\n fieldset[disabled] .radio-inline,\n fieldset[disabled] .checkbox-inline {\n cursor: not-allowed;\n }\n .radio.disabled label,\n .checkbox.disabled label,\n fieldset[disabled] .radio label,\n fieldset[disabled] .checkbox label {\n cursor: not-allowed;\n }\n .form-control-static {\n min-height: 34px;\n padding-top: 7px;\n padding-bottom: 7px;\n margin-bottom: 0;\n }\n .form-control-static.input-lg,\n .form-control-static.input-sm {\n padding-right: 0;\n padding-left: 0;\n }\n .input-sm {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n }\n select.input-sm {\n height: 30px;\n line-height: 30px;\n }\n textarea.input-sm,\n select[multiple].input-sm {\n height: auto;\n }\n .form-group-sm .form-control {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n }\n select.form-group-sm .form-control {\n height: 30px;\n line-height: 30px;\n }\n textarea.form-group-sm .form-control,\n select[multiple].form-group-sm .form-control {\n height: auto;\n }\n .form-group-sm .form-control-static {\n height: 30px;\n min-height: 32px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n }\n .input-lg {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n }\n select.input-lg {\n height: 46px;\n line-height: 46px;\n }\n textarea.input-lg,\n select[multiple].input-lg {\n height: auto;\n }\n .form-group-lg .form-control {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n }\n select.form-group-lg .form-control {\n height: 46px;\n line-height: 46px;\n }\n textarea.form-group-lg .form-control,\n select[multiple].form-group-lg .form-control {\n height: auto;\n }\n .form-group-lg .form-control-static {\n height: 46px;\n min-height: 38px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n }\n .has-feedback {\n position: relative;\n }\n .has-feedback .form-control {\n padding-right: 42.5px;\n }\n .form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n display: block;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n pointer-events: none;\n }\n .input-lg + .form-control-feedback {\n width: 46px;\n height: 46px;\n line-height: 46px;\n }\n .input-sm + .form-control-feedback {\n width: 30px;\n height: 30px;\n line-height: 30px;\n }\n .has-success .help-block,\n .has-success .control-label,\n .has-success .radio,\n .has-success .checkbox,\n .has-success .radio-inline,\n .has-success .checkbox-inline,\n .has-success.radio label,\n .has-success.checkbox label,\n .has-success.radio-inline label,\n .has-success.checkbox-inline label {\n color: #3c763d;\n }\n .has-success .form-control {\n border-color: #3c763d;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n }\n .has-success .form-control:focus {\n border-color: #2b542c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n }\n .has-success .input-group-addon {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #3c763d;\n }\n .has-success .form-control-feedback {\n color: #3c763d;\n }\n .has-warning .help-block,\n .has-warning .control-label,\n .has-warning .radio,\n .has-warning .checkbox,\n .has-warning .radio-inline,\n .has-warning .checkbox-inline,\n .has-warning.radio label,\n .has-warning.checkbox label,\n .has-warning.radio-inline label,\n .has-warning.checkbox-inline label {\n color: #8a6d3b;\n }\n .has-warning .form-control {\n border-color: #8a6d3b;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n }\n .has-warning .form-control:focus {\n border-color: #66512c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n }\n .has-warning .input-group-addon {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #8a6d3b;\n }\n .has-warning .form-control-feedback {\n color: #8a6d3b;\n }\n .has-error .help-block,\n .has-error .control-label,\n .has-error .radio,\n .has-error .checkbox,\n .has-error .radio-inline,\n .has-error .checkbox-inline,\n .has-error.radio label,\n .has-error.checkbox label,\n .has-error.radio-inline label,\n .has-error.checkbox-inline label {\n color: #a94442;\n }\n .has-error .form-control {\n border-color: #a94442;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n }\n .has-error .form-control:focus {\n border-color: #843534;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n }\n .has-error .input-group-addon {\n color: #a94442;\n background-color: #f2dede;\n border-color: #a94442;\n }\n .has-error .form-control-feedback {\n color: #a94442;\n }\n .has-feedback label ~ .form-control-feedback {\n top: 25px;\n }\n .has-feedback label.sr-only ~ .form-control-feedback {\n top: 0;\n }\n .help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #737373;\n }\n @media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-static {\n display: inline-block;\n }\n .form-inline .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .form-inline .input-group .input-group-addon,\n .form-inline .input-group .input-group-btn,\n .form-inline .input-group .form-control {\n width: auto;\n }\n .form-inline .input-group > .form-control {\n width: 100%;\n }\n .form-inline .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio label,\n .form-inline .checkbox label {\n padding-left: 0;\n }\n .form-inline .radio input[type=\"radio\"],\n .form-inline .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .form-inline .has-feedback .form-control-feedback {\n top: 0;\n }\n }\n .form-horizontal .radio,\n .form-horizontal .checkbox,\n .form-horizontal .radio-inline,\n .form-horizontal .checkbox-inline {\n padding-top: 7px;\n margin-top: 0;\n margin-bottom: 0;\n }\n .form-horizontal .radio,\n .form-horizontal .checkbox {\n min-height: 27px;\n }\n .form-horizontal .form-group {\n margin-right: -15px;\n margin-left: -15px;\n }\n @media (min-width: 768px) {\n .form-horizontal .control-label {\n padding-top: 7px;\n margin-bottom: 0;\n text-align: right;\n }\n }\n .form-horizontal .has-feedback .form-control-feedback {\n right: 15px;\n }\n @media (min-width: 768px) {\n .form-horizontal .form-group-lg .control-label {\n padding-top: 14.333333px;\n }\n }\n @media (min-width: 768px) {\n .form-horizontal .form-group-sm .control-label {\n padding-top: 6px;\n }\n }\n .btn {\n display: inline-block;\n padding: 6px 12px;\n margin-bottom: 0;\n font-size: 14px;\n font-weight: normal;\n line-height: 1.42857143;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n -ms-touch-action: manipulation;\n touch-action: manipulation;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n }\n .btn:focus,\n .btn:active:focus,\n .btn.active:focus,\n .btn.focus,\n .btn:active.focus,\n .btn.active.focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n }\n .btn:hover,\n .btn:focus,\n .btn.focus {\n color: #333;\n text-decoration: none;\n }\n .btn:active,\n .btn.active {\n background-image: none;\n outline: 0;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n }\n .btn.disabled,\n .btn[disabled],\n fieldset[disabled] .btn {\n pointer-events: none;\n cursor: not-allowed;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none;\n opacity: 0.65;\n }\n .btn-default {\n color: #333;\n background-color: #fff;\n border-color: #ccc;\n }\n .btn-default:hover,\n .btn-default:focus,\n .btn-default.focus,\n .btn-default:active,\n .btn-default.active,\n .open > .dropdown-toggle.btn-default {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n }\n .btn-default:active,\n .btn-default.active,\n .open > .dropdown-toggle.btn-default {\n background-image: none;\n }\n .btn-default.disabled,\n .btn-default[disabled],\n fieldset[disabled] .btn-default,\n .btn-default.disabled:hover,\n .btn-default[disabled]:hover,\n fieldset[disabled] .btn-default:hover,\n .btn-default.disabled:focus,\n .btn-default[disabled]:focus,\n fieldset[disabled] .btn-default:focus,\n .btn-default.disabled.focus,\n .btn-default[disabled].focus,\n fieldset[disabled] .btn-default.focus,\n .btn-default.disabled:active,\n .btn-default[disabled]:active,\n fieldset[disabled] .btn-default:active,\n .btn-default.disabled.active,\n .btn-default[disabled].active,\n fieldset[disabled] .btn-default.active {\n background-color: #fff;\n border-color: #ccc;\n }\n .btn-default .badge {\n color: #fff;\n background-color: #333;\n }\n .btn-primary {\n color: #fff;\n background-color: #337ab7;\n border-color: #2e6da4;\n }\n .btn-primary:hover,\n .btn-primary:focus,\n .btn-primary.focus,\n .btn-primary:active,\n .btn-primary.active,\n .open > .dropdown-toggle.btn-primary {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n }\n .btn-primary:active,\n .btn-primary.active,\n .open > .dropdown-toggle.btn-primary {\n background-image: none;\n }\n .btn-primary.disabled,\n .btn-primary[disabled],\n fieldset[disabled] .btn-primary,\n .btn-primary.disabled:hover,\n .btn-primary[disabled]:hover,\n fieldset[disabled] .btn-primary:hover,\n .btn-primary.disabled:focus,\n .btn-primary[disabled]:focus,\n fieldset[disabled] .btn-primary:focus,\n .btn-primary.disabled.focus,\n .btn-primary[disabled].focus,\n fieldset[disabled] .btn-primary.focus,\n .btn-primary.disabled:active,\n .btn-primary[disabled]:active,\n fieldset[disabled] .btn-primary:active,\n .btn-primary.disabled.active,\n .btn-primary[disabled].active,\n fieldset[disabled] .btn-primary.active {\n background-color: #337ab7;\n border-color: #2e6da4;\n }\n .btn-primary .badge {\n color: #337ab7;\n background-color: #fff;\n }\n .btn-success {\n color: #fff;\n background-color: #5cb85c;\n border-color: #4cae4c;\n }\n .btn-success:hover,\n .btn-success:focus,\n .btn-success.focus,\n .btn-success:active,\n .btn-success.active,\n .open > .dropdown-toggle.btn-success {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n }\n .btn-success:active,\n .btn-success.active,\n .open > .dropdown-toggle.btn-success {\n background-image: none;\n }\n .btn-success.disabled,\n .btn-success[disabled],\n fieldset[disabled] .btn-success,\n .btn-success.disabled:hover,\n .btn-success[disabled]:hover,\n fieldset[disabled] .btn-success:hover,\n .btn-success.disabled:focus,\n .btn-success[disabled]:focus,\n fieldset[disabled] .btn-success:focus,\n .btn-success.disabled.focus,\n .btn-success[disabled].focus,\n fieldset[disabled] .btn-success.focus,\n .btn-success.disabled:active,\n .btn-success[disabled]:active,\n fieldset[disabled] .btn-success:active,\n .btn-success.disabled.active,\n .btn-success[disabled].active,\n fieldset[disabled] .btn-success.active {\n background-color: #5cb85c;\n border-color: #4cae4c;\n }\n .btn-success .badge {\n color: #5cb85c;\n background-color: #fff;\n }\n .btn-info {\n color: #fff;\n background-color: #5bc0de;\n border-color: #46b8da;\n }\n .btn-info:hover,\n .btn-info:focus,\n .btn-info.focus,\n .btn-info:active,\n .btn-info.active,\n .open > .dropdown-toggle.btn-info {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n }\n .btn-info:active,\n .btn-info.active,\n .open > .dropdown-toggle.btn-info {\n background-image: none;\n }\n .btn-info.disabled,\n .btn-info[disabled],\n fieldset[disabled] .btn-info,\n .btn-info.disabled:hover,\n .btn-info[disabled]:hover,\n fieldset[disabled] .btn-info:hover,\n .btn-info.disabled:focus,\n .btn-info[disabled]:focus,\n fieldset[disabled] .btn-info:focus,\n .btn-info.disabled.focus,\n .btn-info[disabled].focus,\n fieldset[disabled] .btn-info.focus,\n .btn-info.disabled:active,\n .btn-info[disabled]:active,\n fieldset[disabled] .btn-info:active,\n .btn-info.disabled.active,\n .btn-info[disabled].active,\n fieldset[disabled] .btn-info.active {\n background-color: #5bc0de;\n border-color: #46b8da;\n }\n .btn-info .badge {\n color: #5bc0de;\n background-color: #fff;\n }\n .btn-warning {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #eea236;\n }\n .btn-warning:hover,\n .btn-warning:focus,\n .btn-warning.focus,\n .btn-warning:active,\n .btn-warning.active,\n .open > .dropdown-toggle.btn-warning {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n }\n .btn-warning:active,\n .btn-warning.active,\n .open > .dropdown-toggle.btn-warning {\n background-image: none;\n }\n .btn-warning.disabled,\n .btn-warning[disabled],\n fieldset[disabled] .btn-warning,\n .btn-warning.disabled:hover,\n .btn-warning[disabled]:hover,\n fieldset[disabled] .btn-warning:hover,\n .btn-warning.disabled:focus,\n .btn-warning[disabled]:focus,\n fieldset[disabled] .btn-warning:focus,\n .btn-warning.disabled.focus,\n .btn-warning[disabled].focus,\n fieldset[disabled] .btn-warning.focus,\n .btn-warning.disabled:active,\n .btn-warning[disabled]:active,\n fieldset[disabled] .btn-warning:active,\n .btn-warning.disabled.active,\n .btn-warning[disabled].active,\n fieldset[disabled] .btn-warning.active {\n background-color: #f0ad4e;\n border-color: #eea236;\n }\n .btn-warning .badge {\n color: #f0ad4e;\n background-color: #fff;\n }\n .btn-danger {\n color: #fff;\n background-color: #d9534f;\n border-color: #d43f3a;\n }\n .btn-danger:hover,\n .btn-danger:focus,\n .btn-danger.focus,\n .btn-danger:active,\n .btn-danger.active,\n .open > .dropdown-toggle.btn-danger {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n }\n .btn-danger:active,\n .btn-danger.active,\n .open > .dropdown-toggle.btn-danger {\n background-image: none;\n }\n .btn-danger.disabled,\n .btn-danger[disabled],\n fieldset[disabled] .btn-danger,\n .btn-danger.disabled:hover,\n .btn-danger[disabled]:hover,\n fieldset[disabled] .btn-danger:hover,\n .btn-danger.disabled:focus,\n .btn-danger[disabled]:focus,\n fieldset[disabled] .btn-danger:focus,\n .btn-danger.disabled.focus,\n .btn-danger[disabled].focus,\n fieldset[disabled] .btn-danger.focus,\n .btn-danger.disabled:active,\n .btn-danger[disabled]:active,\n fieldset[disabled] .btn-danger:active,\n .btn-danger.disabled.active,\n .btn-danger[disabled].active,\n fieldset[disabled] .btn-danger.active {\n background-color: #d9534f;\n border-color: #d43f3a;\n }\n .btn-danger .badge {\n color: #d9534f;\n background-color: #fff;\n }\n .btn-link {\n font-weight: normal;\n color: #337ab7;\n border-radius: 0;\n }\n .btn-link,\n .btn-link:active,\n .btn-link.active,\n .btn-link[disabled],\n fieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n .btn-link,\n .btn-link:hover,\n .btn-link:focus,\n .btn-link:active {\n border-color: transparent;\n }\n .btn-link:hover,\n .btn-link:focus {\n color: #23527c;\n text-decoration: underline;\n background-color: transparent;\n }\n .btn-link[disabled]:hover,\n fieldset[disabled] .btn-link:hover,\n .btn-link[disabled]:focus,\n fieldset[disabled] .btn-link:focus {\n color: #777;\n text-decoration: none;\n }\n .btn-lg,\n .btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n }\n .btn-sm,\n .btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n }\n .btn-xs,\n .btn-group-xs > .btn {\n padding: 1px 5px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n }\n //.btn-block {\n // display: block;\n // width: 100%;\n //}\n //.btn-block + .btn-block {\n // margin-top: 5px;\n //}\n //input[type='submit'].btn-block,\n //input[type='reset'].btn-block,\n //input[type='button'].btn-block {\n // width: 100%;\n //}\n .fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n -o-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear;\n }\n .fade.in {\n opacity: 1;\n }\n .collapse {\n display: none;\n }\n .collapse.in {\n display: block;\n }\n tr.collapse.in {\n display: table-row;\n }\n tbody.collapse.in {\n display: table-row-group;\n }\n .collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-timing-function: ease;\n -o-transition-timing-function: ease;\n transition-timing-function: ease;\n -webkit-transition-duration: 0.35s;\n -o-transition-duration: 0.35s;\n transition-duration: 0.35s;\n -webkit-transition-property: height, visibility;\n -o-transition-property: height, visibility;\n transition-property: height, visibility;\n }\n .caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px dashed;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n }\n .dropup,\n .dropdown {\n position: relative;\n }\n .dropdown-toggle:focus {\n outline: 0;\n }\n .dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n font-size: 14px;\n text-align: left;\n list-style: none;\n background-color: #fff;\n -webkit-background-clip: padding-box;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n }\n .dropdown-menu.pull-right {\n right: 0;\n left: auto;\n }\n .dropdown-menu .divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n }\n .dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: 1.42857143;\n color: #333;\n white-space: nowrap;\n }\n .dropdown-menu > li > a:hover,\n .dropdown-menu > li > a:focus {\n color: #262626;\n text-decoration: none;\n background-color: #f5f5f5;\n }\n .dropdown-menu > .active > a,\n .dropdown-menu > .active > a:hover,\n .dropdown-menu > .active > a:focus {\n color: #fff;\n text-decoration: none;\n background-color: #337ab7;\n outline: 0;\n }\n .dropdown-menu > .disabled > a,\n .dropdown-menu > .disabled > a:hover,\n .dropdown-menu > .disabled > a:focus {\n color: #777;\n }\n .dropdown-menu > .disabled > a:hover,\n .dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n cursor: not-allowed;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n }\n .open > .dropdown-menu {\n display: block;\n }\n .open > a {\n outline: 0;\n }\n .dropdown-menu-right {\n right: 0;\n left: auto;\n }\n .dropdown-menu-left {\n right: auto;\n left: 0;\n }\n .dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.42857143;\n color: #777;\n white-space: nowrap;\n }\n .dropdown-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 990;\n }\n .pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n }\n .dropup .caret,\n .navbar-fixed-bottom .dropdown .caret {\n content: \"\";\n border-top: 0;\n border-bottom: 4px solid;\n }\n .dropup .dropdown-menu,\n .navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n }\n @media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n right: 0;\n left: auto;\n }\n .navbar-right .dropdown-menu-left {\n right: auto;\n left: 0;\n }\n }\n .btn-group,\n .btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n }\n .btn-group > .btn,\n .btn-group-vertical > .btn {\n position: relative;\n float: left;\n }\n .btn-group > .btn:hover,\n .btn-group-vertical > .btn:hover,\n .btn-group > .btn:focus,\n .btn-group-vertical > .btn:focus,\n .btn-group > .btn:active,\n .btn-group-vertical > .btn:active,\n .btn-group > .btn.active,\n .btn-group-vertical > .btn.active {\n z-index: 2;\n }\n .btn-group .btn + .btn,\n .btn-group .btn + .btn-group,\n .btn-group .btn-group + .btn,\n .btn-group .btn-group + .btn-group {\n margin-left: -1px;\n }\n .btn-toolbar {\n margin-left: -5px;\n }\n .btn-toolbar .btn-group,\n .btn-toolbar .input-group {\n float: left;\n }\n .btn-toolbar > .btn,\n .btn-toolbar > .btn-group,\n .btn-toolbar > .input-group {\n margin-left: 5px;\n }\n .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n }\n .btn-group > .btn:first-child {\n margin-left: 0;\n }\n .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .btn-group > .btn:last-child:not(:first-child),\n .btn-group > .dropdown-toggle:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .btn-group > .btn-group {\n float: left;\n }\n .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n }\n .btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .btn-group .dropdown-toggle:active,\n .btn-group.open .dropdown-toggle {\n outline: 0;\n }\n .btn-group > .btn + .dropdown-toggle {\n padding-right: 8px;\n padding-left: 8px;\n }\n .btn-group > .btn-lg + .dropdown-toggle {\n padding-right: 12px;\n padding-left: 12px;\n }\n .btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n }\n .btn-group.open .dropdown-toggle.btn-link {\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n .btn .caret {\n margin-left: 0;\n }\n .btn-lg .caret {\n border-width: 5px 5px 0;\n border-bottom-width: 0;\n }\n .dropup .btn-lg .caret {\n border-width: 0 5px 5px;\n }\n .btn-group-vertical > .btn,\n .btn-group-vertical > .btn-group,\n .btn-group-vertical > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n }\n .btn-group-vertical > .btn-group > .btn {\n float: none;\n }\n .btn-group-vertical > .btn + .btn,\n .btn-group-vertical > .btn + .btn-group,\n .btn-group-vertical > .btn-group + .btn,\n .btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n }\n .btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n .btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n }\n .btn-group-vertical > .btn:last-child:not(:first-child) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n border-bottom-left-radius: 4px;\n }\n .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n }\n .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n }\n .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n .btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n }\n .btn-group-justified > .btn,\n .btn-group-justified > .btn-group {\n display: table-cell;\n float: none;\n width: 1%;\n }\n .btn-group-justified > .btn-group .btn {\n width: 100%;\n }\n .btn-group-justified > .btn-group .dropdown-menu {\n left: auto;\n }\n [data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n [data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n [data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n [data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n .input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n }\n .input-group[class*=\"col-\"] {\n float: none;\n padding-right: 0;\n padding-left: 0;\n }\n .input-group .form-control {\n position: relative;\n z-index: 2;\n float: left;\n width: 100%;\n margin-bottom: 0;\n }\n .input-group-lg > .form-control,\n .input-group-lg > .input-group-addon,\n .input-group-lg > .input-group-btn > .btn {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n }\n select.input-group-lg > .form-control,\n select.input-group-lg > .input-group-addon,\n select.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n line-height: 46px;\n }\n textarea.input-group-lg > .form-control,\n textarea.input-group-lg > .input-group-addon,\n textarea.input-group-lg > .input-group-btn > .btn,\n select[multiple].input-group-lg > .form-control,\n select[multiple].input-group-lg > .input-group-addon,\n select[multiple].input-group-lg > .input-group-btn > .btn {\n height: auto;\n }\n .input-group-sm > .form-control,\n .input-group-sm > .input-group-addon,\n .input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n }\n select.input-group-sm > .form-control,\n select.input-group-sm > .input-group-addon,\n select.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n line-height: 30px;\n }\n textarea.input-group-sm > .form-control,\n textarea.input-group-sm > .input-group-addon,\n textarea.input-group-sm > .input-group-btn > .btn,\n select[multiple].input-group-sm > .form-control,\n select[multiple].input-group-sm > .input-group-addon,\n select[multiple].input-group-sm > .input-group-btn > .btn {\n height: auto;\n }\n .input-group-addon,\n .input-group-btn,\n .input-group .form-control {\n display: table-cell;\n }\n .input-group-addon:not(:first-child):not(:last-child),\n .input-group-btn:not(:first-child):not(:last-child),\n .input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n .input-group-addon,\n .input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n }\n .input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: normal;\n line-height: 1;\n color: #555;\n text-align: center;\n background-color: #eee;\n border: 1px solid #ccc;\n border-radius: 4px;\n }\n .input-group-addon.input-sm {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px;\n }\n .input-group-addon.input-lg {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 6px;\n }\n .input-group-addon input[type=\"radio\"],\n .input-group-addon input[type=\"checkbox\"] {\n margin-top: 0;\n }\n .input-group .form-control:first-child,\n .input-group-addon:first-child,\n .input-group-btn:first-child > .btn,\n .input-group-btn:first-child > .btn-group > .btn,\n .input-group-btn:first-child > .dropdown-toggle,\n .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .input-group-addon:first-child {\n border-right: 0;\n }\n .input-group .form-control:last-child,\n .input-group-addon:last-child,\n .input-group-btn:last-child > .btn,\n .input-group-btn:last-child > .btn-group > .btn,\n .input-group-btn:last-child > .dropdown-toggle,\n .input-group-btn:first-child > .btn:not(:first-child),\n .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .input-group-addon:last-child {\n border-left: 0;\n }\n .input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap;\n }\n .input-group-btn > .btn {\n position: relative;\n }\n .input-group-btn > .btn + .btn {\n margin-left: -1px;\n }\n .input-group-btn > .btn:hover,\n .input-group-btn > .btn:focus,\n .input-group-btn > .btn:active {\n z-index: 2;\n }\n .input-group-btn:first-child > .btn,\n .input-group-btn:first-child > .btn-group {\n margin-right: -1px;\n }\n .input-group-btn:last-child > .btn,\n .input-group-btn:last-child > .btn-group {\n margin-left: -1px;\n }\n .nav {\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n }\n .nav > li {\n position: relative;\n display: block;\n }\n .nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px;\n }\n .nav > li > a:hover,\n .nav > li > a:focus {\n text-decoration: none;\n background-color: #eee;\n }\n .nav > li.disabled > a {\n color: #777;\n }\n .nav > li.disabled > a:hover,\n .nav > li.disabled > a:focus {\n color: #777;\n text-decoration: none;\n cursor: not-allowed;\n background-color: transparent;\n }\n .nav .open > a,\n .nav .open > a:hover,\n .nav .open > a:focus {\n background-color: #eee;\n border-color: #337ab7;\n }\n .nav .nav-divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n }\n .nav > li > a > img {\n max-width: none;\n }\n .nav-tabs {\n border-bottom: 1px solid #ddd;\n }\n .nav-tabs > li {\n float: left;\n margin-bottom: -1px;\n }\n .nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.42857143;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs > li > a:hover {\n border-color: #eee #eee #ddd;\n }\n .nav-tabs > li.active > a,\n .nav-tabs > li.active > a:hover,\n .nav-tabs > li.active > a:focus {\n color: #555;\n cursor: default;\n background-color: #fff;\n border: 1px solid #ddd;\n border-bottom-color: transparent;\n }\n .nav-tabs.nav-justified {\n width: 100%;\n border-bottom: 0;\n }\n .nav-tabs.nav-justified > li {\n float: none;\n }\n .nav-tabs.nav-justified > li > a {\n margin-bottom: 5px;\n text-align: center;\n }\n .nav-tabs.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n }\n @media (min-width: 768px) {\n .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-tabs.nav-justified > li > a {\n margin-bottom: 0;\n }\n }\n .nav-tabs.nav-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n }\n .nav-tabs.nav-justified > .active > a,\n .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs.nav-justified > .active > a:focus {\n border: 1px solid #ddd;\n }\n @media (min-width: 768px) {\n .nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs.nav-justified > .active > a,\n .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs.nav-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n }\n .nav-pills > li {\n float: left;\n }\n .nav-pills > li > a {\n border-radius: 4px;\n }\n .nav-pills > li + li {\n margin-left: 2px;\n }\n .nav-pills > li.active > a,\n .nav-pills > li.active > a:hover,\n .nav-pills > li.active > a:focus {\n color: #fff;\n background-color: #337ab7;\n }\n .nav-stacked > li {\n float: none;\n }\n .nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0;\n }\n .nav-justified {\n width: 100%;\n }\n .nav-justified > li {\n float: none;\n }\n .nav-justified > li > a {\n margin-bottom: 5px;\n text-align: center;\n }\n .nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n }\n @media (min-width: 768px) {\n .nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-justified > li > a {\n margin-bottom: 0;\n }\n }\n .nav-tabs-justified {\n border-bottom: 0;\n }\n .nav-tabs-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n }\n .nav-tabs-justified > .active > a,\n .nav-tabs-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus {\n border: 1px solid #ddd;\n }\n @media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs-justified > .active > a,\n .nav-tabs-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n }\n .tab-content > .tab-pane {\n display: none;\n }\n .tab-content > .active {\n display: block;\n }\n .nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n .navbar {\n position: relative;\n min-height: 50px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n }\n @media (min-width: 768px) {\n .navbar {\n border-radius: 4px;\n }\n }\n @media (min-width: 768px) {\n .navbar-header {\n float: left;\n }\n }\n .navbar-collapse {\n padding-right: 15px;\n padding-left: 15px;\n overflow-x: visible;\n -webkit-overflow-scrolling: touch;\n border-top: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n }\n .navbar-collapse.in {\n overflow-y: auto;\n }\n @media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n border-top: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important;\n }\n .navbar-collapse.in {\n overflow-y: visible;\n }\n .navbar-fixed-top .navbar-collapse,\n .navbar-static-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n padding-right: 0;\n padding-left: 0;\n }\n }\n .navbar-fixed-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n max-height: 340px;\n }\n @media (max-device-width: 480px) and (orientation: landscape) {\n .navbar-fixed-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n max-height: 200px;\n }\n }\n .container > .navbar-header,\n .container-fluid > .navbar-header,\n .container > .navbar-collapse,\n .container-fluid > .navbar-collapse {\n margin-right: -15px;\n margin-left: -15px;\n }\n @media (min-width: 768px) {\n .container > .navbar-header,\n .container-fluid > .navbar-header,\n .container > .navbar-collapse,\n .container-fluid > .navbar-collapse {\n margin-right: 0;\n margin-left: 0;\n }\n }\n .navbar-static-top {\n z-index: 1000;\n border-width: 0 0 1px;\n }\n @media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0;\n }\n }\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030;\n }\n @media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0;\n }\n }\n .navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n }\n .navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n border-width: 1px 0 0;\n }\n .navbar-brand {\n float: left;\n height: 50px;\n padding: 15px 15px;\n font-size: 18px;\n line-height: 20px;\n }\n .navbar-brand:hover,\n .navbar-brand:focus {\n text-decoration: none;\n }\n .navbar-brand > img {\n display: block;\n }\n @media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-left: -15px;\n }\n }\n .navbar-toggle {\n position: relative;\n float: right;\n padding: 9px 10px;\n margin-top: 8px;\n margin-right: 15px;\n margin-bottom: 8px;\n background-color: transparent;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n }\n .navbar-toggle:focus {\n outline: 0;\n }\n .navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n }\n .navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px;\n }\n @media (min-width: 768px) {\n .navbar-toggle {\n display: none;\n }\n }\n .navbar-nav {\n margin: 7.5px -15px;\n }\n .navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: 20px;\n }\n @media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n .navbar-nav .open .dropdown-menu > li > a {\n line-height: 20px;\n }\n .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-nav .open .dropdown-menu > li > a:focus {\n background-image: none;\n }\n }\n @media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0;\n }\n .navbar-nav > li {\n float: left;\n }\n .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n }\n .navbar-form {\n padding: 10px 15px;\n margin-top: 8px;\n margin-right: -15px;\n margin-bottom: 8px;\n margin-left: -15px;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n }\n @media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .navbar-form .form-control-static {\n display: inline-block;\n }\n .navbar-form .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .navbar-form .input-group .input-group-addon,\n .navbar-form .input-group .input-group-btn,\n .navbar-form .input-group .form-control {\n width: auto;\n }\n .navbar-form .input-group > .form-control {\n width: 100%;\n }\n .navbar-form .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio label,\n .navbar-form .checkbox label {\n padding-left: 0;\n }\n .navbar-form .radio input[type=\"radio\"],\n .navbar-form .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .navbar-form .has-feedback .form-control-feedback {\n top: 0;\n }\n }\n @media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px;\n }\n .navbar-form .form-group:last-child {\n margin-bottom: 0;\n }\n }\n @media (min-width: 768px) {\n .navbar-form {\n width: auto;\n padding-top: 0;\n padding-bottom: 0;\n margin-right: 0;\n margin-left: 0;\n border: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n }\n .navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n }\n .navbar-btn {\n margin-top: 8px;\n margin-bottom: 8px;\n }\n .navbar-btn.btn-sm {\n margin-top: 10px;\n margin-bottom: 10px;\n }\n .navbar-btn.btn-xs {\n margin-top: 14px;\n margin-bottom: 14px;\n }\n .navbar-text {\n margin-top: 15px;\n margin-bottom: 15px;\n }\n @media (min-width: 768px) {\n .navbar-text {\n float: left;\n margin-right: 15px;\n margin-left: 15px;\n }\n }\n @media (min-width: 768px) {\n .navbar-left {\n float: left !important;\n }\n .navbar-right {\n float: right !important;\n margin-right: -15px;\n }\n .navbar-right ~ .navbar-right {\n margin-right: 0;\n }\n }\n .navbar-default {\n background-color: #f8f8f8;\n border-color: #e7e7e7;\n }\n .navbar-default .navbar-brand {\n color: #777;\n }\n .navbar-default .navbar-brand:hover,\n .navbar-default .navbar-brand:focus {\n color: #5e5e5e;\n background-color: transparent;\n }\n .navbar-default .navbar-text {\n color: #777;\n }\n .navbar-default .navbar-nav > li > a {\n color: #777;\n }\n .navbar-default .navbar-nav > li > a:hover,\n .navbar-default .navbar-nav > li > a:focus {\n color: #333;\n background-color: transparent;\n }\n .navbar-default .navbar-nav > .active > a,\n .navbar-default .navbar-nav > .active > a:hover,\n .navbar-default .navbar-nav > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n }\n .navbar-default .navbar-nav > .disabled > a,\n .navbar-default .navbar-nav > .disabled > a:hover,\n .navbar-default .navbar-nav > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n }\n .navbar-default .navbar-toggle {\n border-color: #ddd;\n }\n .navbar-default .navbar-toggle:hover,\n .navbar-default .navbar-toggle:focus {\n background-color: #ddd;\n }\n .navbar-default .navbar-toggle .icon-bar {\n background-color: #888;\n }\n .navbar-default .navbar-collapse,\n .navbar-default .navbar-form {\n border-color: #e7e7e7;\n }\n .navbar-default .navbar-nav > .open > a,\n .navbar-default .navbar-nav > .open > a:hover,\n .navbar-default .navbar-nav > .open > a:focus {\n color: #555;\n background-color: #e7e7e7;\n }\n @media (max-width: 767px) {\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n color: #777;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #333;\n background-color: transparent;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n }\n }\n .navbar-default .navbar-link {\n color: #777;\n }\n .navbar-default .navbar-link:hover {\n color: #333;\n }\n .navbar-default .btn-link {\n color: #777;\n }\n .navbar-default .btn-link:hover,\n .navbar-default .btn-link:focus {\n color: #333;\n }\n .navbar-default .btn-link[disabled]:hover,\n fieldset[disabled] .navbar-default .btn-link:hover,\n .navbar-default .btn-link[disabled]:focus,\n fieldset[disabled] .navbar-default .btn-link:focus {\n color: #ccc;\n }\n .navbar-inverse {\n background-color: #222;\n border-color: #080808;\n }\n .navbar-inverse .navbar-brand {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-brand:hover,\n .navbar-inverse .navbar-brand:focus {\n color: #fff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-text {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-nav > li > a {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-nav > li > a:hover,\n .navbar-inverse .navbar-nav > li > a:focus {\n color: #fff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav > .active > a,\n .navbar-inverse .navbar-nav > .active > a:hover,\n .navbar-inverse .navbar-nav > .active > a:focus {\n color: #fff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav > .disabled > a,\n .navbar-inverse .navbar-nav > .disabled > a:hover,\n .navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n }\n .navbar-inverse .navbar-toggle {\n border-color: #333;\n }\n .navbar-inverse .navbar-toggle:hover,\n .navbar-inverse .navbar-toggle:focus {\n background-color: #333;\n }\n .navbar-inverse .navbar-toggle .icon-bar {\n background-color: #fff;\n }\n .navbar-inverse .navbar-collapse,\n .navbar-inverse .navbar-form {\n border-color: #101010;\n }\n .navbar-inverse .navbar-nav > .open > a,\n .navbar-inverse .navbar-nav > .open > a:hover,\n .navbar-inverse .navbar-nav > .open > a:focus {\n color: #fff;\n background-color: #080808;\n }\n @media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #fff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n }\n }\n .navbar-inverse .navbar-link {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-link:hover {\n color: #fff;\n }\n .navbar-inverse .btn-link {\n color: #9d9d9d;\n }\n .navbar-inverse .btn-link:hover,\n .navbar-inverse .btn-link:focus {\n color: #fff;\n }\n .navbar-inverse .btn-link[disabled]:hover,\n fieldset[disabled] .navbar-inverse .btn-link:hover,\n .navbar-inverse .btn-link[disabled]:focus,\n fieldset[disabled] .navbar-inverse .btn-link:focus {\n color: #444;\n }\n .breadcrumb {\n padding: 8px 15px;\n margin-bottom: 20px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px;\n }\n .breadcrumb > li {\n display: inline-block;\n }\n .breadcrumb > li + li:before {\n padding: 0 5px;\n color: #ccc;\n content: \"/\\00a0\";\n }\n .breadcrumb > .active {\n color: #777;\n }\n .pagination {\n display: inline-block;\n padding-left: 0;\n margin: 20px 0;\n border-radius: 4px;\n }\n .pagination > li {\n display: inline;\n }\n .pagination > li > a,\n .pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n margin-left: -1px;\n line-height: 1.42857143;\n color: #337ab7;\n text-decoration: none;\n background-color: #fff;\n border: 1px solid #ddd;\n }\n .pagination > li:first-child > a,\n .pagination > li:first-child > span {\n margin-left: 0;\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n }\n .pagination > li:last-child > a,\n .pagination > li:last-child > span {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n }\n .pagination > li > a:hover,\n .pagination > li > span:hover,\n .pagination > li > a:focus,\n .pagination > li > span:focus {\n color: #23527c;\n background-color: #eee;\n border-color: #ddd;\n }\n .pagination > .active > a,\n .pagination > .active > span,\n .pagination > .active > a:hover,\n .pagination > .active > span:hover,\n .pagination > .active > a:focus,\n .pagination > .active > span:focus {\n z-index: 2;\n color: #fff;\n cursor: default;\n background-color: #337ab7;\n border-color: #337ab7;\n }\n .pagination > .disabled > span,\n .pagination > .disabled > span:hover,\n .pagination > .disabled > span:focus,\n .pagination > .disabled > a,\n .pagination > .disabled > a:hover,\n .pagination > .disabled > a:focus {\n color: #777;\n cursor: not-allowed;\n background-color: #fff;\n border-color: #ddd;\n }\n .pagination-lg > li > a,\n .pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 18px;\n }\n .pagination-lg > li:first-child > a,\n .pagination-lg > li:first-child > span {\n border-top-left-radius: 6px;\n border-bottom-left-radius: 6px;\n }\n .pagination-lg > li:last-child > a,\n .pagination-lg > li:last-child > span {\n border-top-right-radius: 6px;\n border-bottom-right-radius: 6px;\n }\n .pagination-sm > li > a,\n .pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n }\n .pagination-sm > li:first-child > a,\n .pagination-sm > li:first-child > span {\n border-top-left-radius: 3px;\n border-bottom-left-radius: 3px;\n }\n .pagination-sm > li:last-child > a,\n .pagination-sm > li:last-child > span {\n border-top-right-radius: 3px;\n border-bottom-right-radius: 3px;\n }\n .pager {\n padding-left: 0;\n margin: 20px 0;\n text-align: center;\n list-style: none;\n }\n .pager li {\n display: inline;\n }\n .pager li > a,\n .pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 15px;\n }\n .pager li > a:hover,\n .pager li > a:focus {\n text-decoration: none;\n background-color: #eee;\n }\n .pager .next > a,\n .pager .next > span {\n float: right;\n }\n .pager .previous > a,\n .pager .previous > span {\n float: left;\n }\n .pager .disabled > a,\n .pager .disabled > a:hover,\n .pager .disabled > a:focus,\n .pager .disabled > span {\n color: #777;\n cursor: not-allowed;\n background-color: #fff;\n }\n .label {\n display: inline;\n padding: 0.2em 0.6em 0.3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25em;\n }\n a.label:hover,\n a.label:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n }\n .label:empty {\n display: none;\n }\n .btn .label {\n position: relative;\n top: -1px;\n }\n .label-default {\n background-color: #777;\n }\n .label-default[href]:hover,\n .label-default[href]:focus {\n background-color: #5e5e5e;\n }\n .label-primary {\n background-color: #337ab7;\n }\n .label-primary[href]:hover,\n .label-primary[href]:focus {\n background-color: #286090;\n }\n .label-success {\n background-color: #5cb85c;\n }\n .label-success[href]:hover,\n .label-success[href]:focus {\n background-color: #449d44;\n }\n .label-info {\n background-color: #5bc0de;\n }\n .label-info[href]:hover,\n .label-info[href]:focus {\n background-color: #31b0d5;\n }\n .label-warning {\n background-color: #f0ad4e;\n }\n .label-warning[href]:hover,\n .label-warning[href]:focus {\n background-color: #ec971f;\n }\n .label-danger {\n background-color: #d9534f;\n }\n .label-danger[href]:hover,\n .label-danger[href]:focus {\n background-color: #c9302c;\n }\n .badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n background-color: #777;\n border-radius: 10px;\n }\n .badge:empty {\n display: none;\n }\n .btn .badge {\n position: relative;\n top: -1px;\n }\n .btn-xs .badge,\n .btn-group-xs > .btn .badge {\n top: 0;\n padding: 1px 5px;\n }\n a.badge:hover,\n a.badge:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n }\n .list-group-item.active > .badge,\n .nav-pills > .active > a > .badge {\n color: #337ab7;\n background-color: #fff;\n }\n .list-group-item > .badge {\n float: right;\n }\n .list-group-item > .badge + .badge {\n margin-right: 5px;\n }\n .nav-pills > li > a > .badge {\n margin-left: 3px;\n }\n .jumbotron {\n padding: 30px 15px;\n margin-bottom: 30px;\n color: inherit;\n background-color: #eee;\n }\n .jumbotron h1,\n .jumbotron .h1 {\n color: inherit;\n }\n .jumbotron p {\n margin-bottom: 15px;\n font-size: 21px;\n font-weight: 200;\n }\n .jumbotron > hr {\n border-top-color: #d5d5d5;\n }\n .container .jumbotron,\n .container-fluid .jumbotron {\n border-radius: 6px;\n }\n .jumbotron .container {\n max-width: 100%;\n }\n @media screen and (min-width: 768px) {\n .jumbotron {\n padding: 48px 0;\n }\n .container .jumbotron,\n .container-fluid .jumbotron {\n padding-right: 60px;\n padding-left: 60px;\n }\n .jumbotron h1,\n .jumbotron .h1 {\n font-size: 63px;\n }\n }\n .thumbnail {\n display: block;\n padding: 4px;\n margin-bottom: 20px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: border 0.2s ease-in-out;\n -o-transition: border 0.2s ease-in-out;\n transition: border 0.2s ease-in-out;\n }\n .thumbnail > img,\n .thumbnail a > img {\n margin-right: auto;\n margin-left: auto;\n }\n a.thumbnail:hover,\n a.thumbnail:focus,\n a.thumbnail.active {\n border-color: #337ab7;\n }\n .thumbnail .caption {\n padding: 9px;\n color: #333;\n }\n .alert {\n padding: 15px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n }\n .alert h4 {\n margin-top: 0;\n color: inherit;\n }\n .alert .alert-link {\n font-weight: bold;\n }\n .alert > p,\n .alert > ul {\n margin-bottom: 0;\n }\n .alert > p + p {\n margin-top: 5px;\n }\n .alert-dismissable,\n .alert-dismissible {\n padding-right: 35px;\n }\n .alert-dismissable .close,\n .alert-dismissible .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n }\n .alert-success {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n }\n .alert-success hr {\n border-top-color: #c9e2b3;\n }\n .alert-success .alert-link {\n color: #2b542c;\n }\n .alert-info {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n }\n .alert-info hr {\n border-top-color: #a6e1ec;\n }\n .alert-info .alert-link {\n color: #245269;\n }\n .alert-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n }\n .alert-warning hr {\n border-top-color: #f7e1b5;\n }\n .alert-warning .alert-link {\n color: #66512c;\n }\n .alert-danger {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n }\n .alert-danger hr {\n border-top-color: #e4b9c0;\n }\n .alert-danger .alert-link {\n color: #843534;\n }\n //@-webkit-keyframes progress-bar-stripes {\n // from {\n // background-position: 40px 0;\n // }\n // to {\n // background-position: 0 0;\n // }\n //}\n //@-o-keyframes progress-bar-stripes {\n // from {\n // background-position: 40px 0;\n // }\n // to {\n // background-position: 0 0;\n // }\n //}\n //@keyframes progress-bar-stripes {\n // from {\n // background-position: 40px 0;\n // }\n // to {\n // background-position: 0 0;\n // }\n //}\n //.progress {\n // height: 20px;\n // margin-bottom: 20px;\n // overflow: hidden;\n // background-color: #f5f5f5;\n // border-radius: 4px;\n // -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n // box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n //}\n //.progress-bar {\n // float: left;\n // width: 0;\n // height: 100%;\n // font-size: 12px;\n // line-height: 20px;\n // color: #fff;\n // text-align: center;\n // background-color: #337ab7;\n // -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n // box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n // -webkit-transition: width 0.6s ease;\n // -o-transition: width 0.6s ease;\n // transition: width 0.6s ease;\n //}\n //.progress-striped .progress-bar,\n //.progress-bar-striped {\n // background-image: -webkit-linear-gradient(\n // 45deg,\n // rgba(255, 255, 255, 0.15) 25%,\n // transparent 25%,\n // transparent 50%,\n // rgba(255, 255, 255, 0.15) 50%,\n // rgba(255, 255, 255, 0.15) 75%,\n // transparent 75%,\n // transparent\n // );\n // background-image: -o-linear-gradient(\n // 45deg,\n // rgba(255, 255, 255, 0.15) 25%,\n // transparent 25%,\n // transparent 50%,\n // rgba(255, 255, 255, 0.15) 50%,\n // rgba(255, 255, 255, 0.15) 75%,\n // transparent 75%,\n // transparent\n // );\n // background-image: linear-gradient(\n // 45deg,\n // rgba(255, 255, 255, 0.15) 25%,\n // transparent 25%,\n // transparent 50%,\n // rgba(255, 255, 255, 0.15) 50%,\n // rgba(255, 255, 255, 0.15) 75%,\n // transparent 75%,\n // transparent\n // );\n // -webkit-background-size: 40px 40px;\n // background-size: 40px 40px;\n //}\n //.progress.active .progress-bar,\n //.progress-bar.active {\n // -webkit-animation: progress-bar-stripes 2s linear infinite;\n // -o-animation: progress-bar-stripes 2s linear infinite;\n // animation: progress-bar-stripes 2s linear infinite;\n //}\n //.progress-bar-success {\n // background-color: #5cb85c;\n //}\n //.progress-striped .progress-bar-success {\n // background-image: -webkit-linear-gradient(\n // 45deg,\n // rgba(255, 255, 255, 0.15) 25%,\n // transparent 25%,\n // transparent 50%,\n // rgba(255, 255, 255, 0.15) 50%,\n // rgba(255, 255, 255, 0.15) 75%,\n // transparent 75%,\n // transparent\n // );\n // background-image: -o-linear-gradient(\n // 45deg,\n // rgba(255, 255, 255, 0.15) 25%,\n // transparent 25%,\n // transparent 50%,\n // rgba(255, 255, 255, 0.15) 50%,\n // rgba(255, 255, 255, 0.15) 75%,\n // transparent 75%,\n // transparent\n // );\n // background-image: linear-gradient(\n // 45deg,\n // rgba(255, 255, 255, 0.15) 25%,\n // transparent 25%,\n // transparent 50%,\n // rgba(255, 255, 255, 0.15) 50%,\n // rgba(255, 255, 255, 0.15) 75%,\n // transparent 75%,\n // transparent\n // );\n //}\n //.progress-bar-info {\n // background-color: #5bc0de;\n //}\n //.progress-striped .progress-bar-info {\n // background-image: -webkit-linear-gradient(\n // 45deg,\n // rgba(255, 255, 255, 0.15) 25%,\n // transparent 25%,\n // transparent 50%,\n // rgba(255, 255, 255, 0.15) 50%,\n // rgba(255, 255, 255, 0.15) 75%,\n // transparent 75%,\n // transparent\n // );\n // background-image: -o-linear-gradient(\n // 45deg,\n // rgba(255, 255, 255, 0.15) 25%,\n // transparent 25%,\n // transparent 50%,\n // rgba(255, 255, 255, 0.15) 50%,\n // rgba(255, 255, 255, 0.15) 75%,\n // transparent 75%,\n // transparent\n // );\n // background-image: linear-gradient(\n // 45deg,\n // rgba(255, 255, 255, 0.15) 25%,\n // transparent 25%,\n // transparent 50%,\n // rgba(255, 255, 255, 0.15) 50%,\n // rgba(255, 255, 255, 0.15) 75%,\n // transparent 75%,\n // transparent\n // );\n //}\n //.progress-bar-warning {\n // background-color: #f0ad4e;\n //}\n //.progress-striped .progress-bar-warning {\n // background-image: -webkit-linear-gradient(\n // 45deg,\n // rgba(255, 255, 255, 0.15) 25%,\n // transparent 25%,\n // transparent 50%,\n // rgba(255, 255, 255, 0.15) 50%,\n // rgba(255, 255, 255, 0.15) 75%,\n // transparent 75%,\n // transparent\n // );\n // background-image: -o-linear-gradient(\n // 45deg,\n // rgba(255, 255, 255, 0.15) 25%,\n // transparent 25%,\n // transparent 50%,\n // rgba(255, 255, 255, 0.15) 50%,\n // rgba(255, 255, 255, 0.15) 75%,\n // transparent 75%,\n // transparent\n // );\n // background-image: linear-gradient(\n // 45deg,\n // rgba(255, 255, 255, 0.15) 25%,\n // transparent 25%,\n // transparent 50%,\n // rgba(255, 255, 255, 0.15) 50%,\n // rgba(255, 255, 255, 0.15) 75%,\n // transparent 75%,\n // transparent\n // );\n //}\n //.progress-bar-danger {\n // background-color: #d9534f;\n //}\n //.progress-striped .progress-bar-danger {\n // background-image: -webkit-linear-gradient(\n // 45deg,\n // rgba(255, 255, 255, 0.15) 25%,\n // transparent 25%,\n // transparent 50%,\n // rgba(255, 255, 255, 0.15) 50%,\n // rgba(255, 255, 255, 0.15) 75%,\n // transparent 75%,\n // transparent\n // );\n // background-image: -o-linear-gradient(\n // 45deg,\n // rgba(255, 255, 255, 0.15) 25%,\n // transparent 25%,\n // transparent 50%,\n // rgba(255, 255, 255, 0.15) 50%,\n // rgba(255, 255, 255, 0.15) 75%,\n // transparent 75%,\n // transparent\n // );\n // background-image: linear-gradient(\n // 45deg,\n // rgba(255, 255, 255, 0.15) 25%,\n // transparent 25%,\n // transparent 50%,\n // rgba(255, 255, 255, 0.15) 50%,\n // rgba(255, 255, 255, 0.15) 75%,\n // transparent 75%,\n // transparent\n // );\n //}\n .media {\n margin-top: 15px;\n }\n .media:first-child {\n margin-top: 0;\n }\n .media,\n .media-body {\n overflow: hidden;\n zoom: 1;\n }\n .media-body {\n width: 10000px;\n }\n .media-object {\n display: block;\n }\n .media-right,\n .media > .pull-right {\n padding-left: 10px;\n }\n .media-left,\n .media > .pull-left {\n padding-right: 10px;\n }\n .media-left,\n .media-right,\n .media-body {\n display: table-cell;\n vertical-align: top;\n }\n .media-middle {\n vertical-align: middle;\n }\n .media-bottom {\n vertical-align: bottom;\n }\n .media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n }\n .media-list {\n padding-left: 0;\n list-style: none;\n }\n .list-group {\n padding-left: 0;\n margin-bottom: 20px;\n }\n .list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid #ddd;\n }\n .list-group-item:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n }\n .list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n }\n a.list-group-item {\n color: #555;\n }\n a.list-group-item .list-group-item-heading {\n color: #333;\n }\n a.list-group-item:hover,\n a.list-group-item:focus {\n color: #555;\n text-decoration: none;\n background-color: #f5f5f5;\n }\n .list-group-item.disabled,\n .list-group-item.disabled:hover,\n .list-group-item.disabled:focus {\n color: #777;\n cursor: not-allowed;\n background-color: #eee;\n }\n .list-group-item.disabled .list-group-item-heading,\n .list-group-item.disabled:hover .list-group-item-heading,\n .list-group-item.disabled:focus .list-group-item-heading {\n color: inherit;\n }\n .list-group-item.disabled .list-group-item-text,\n .list-group-item.disabled:hover .list-group-item-text,\n .list-group-item.disabled:focus .list-group-item-text {\n color: #777;\n }\n .list-group-item.active,\n .list-group-item.active:hover,\n .list-group-item.active:focus {\n z-index: 2;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n }\n .list-group-item.active .list-group-item-heading,\n .list-group-item.active:hover .list-group-item-heading,\n .list-group-item.active:focus .list-group-item-heading,\n .list-group-item.active .list-group-item-heading > small,\n .list-group-item.active:hover .list-group-item-heading > small,\n .list-group-item.active:focus .list-group-item-heading > small,\n .list-group-item.active .list-group-item-heading > .small,\n .list-group-item.active:hover .list-group-item-heading > .small,\n .list-group-item.active:focus .list-group-item-heading > .small {\n color: inherit;\n }\n .list-group-item.active .list-group-item-text,\n .list-group-item.active:hover .list-group-item-text,\n .list-group-item.active:focus .list-group-item-text {\n color: #c7ddef;\n }\n .list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8;\n }\n a.list-group-item-success {\n color: #3c763d;\n }\n a.list-group-item-success .list-group-item-heading {\n color: inherit;\n }\n a.list-group-item-success:hover,\n a.list-group-item-success:focus {\n color: #3c763d;\n background-color: #d0e9c6;\n }\n a.list-group-item-success.active,\n a.list-group-item-success.active:hover,\n a.list-group-item-success.active:focus {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d;\n }\n .list-group-item-info {\n color: #31708f;\n background-color: #d9edf7;\n }\n a.list-group-item-info {\n color: #31708f;\n }\n a.list-group-item-info .list-group-item-heading {\n color: inherit;\n }\n a.list-group-item-info:hover,\n a.list-group-item-info:focus {\n color: #31708f;\n background-color: #c4e3f3;\n }\n a.list-group-item-info.active,\n a.list-group-item-info.active:hover,\n a.list-group-item-info.active:focus {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f;\n }\n .list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n }\n a.list-group-item-warning {\n color: #8a6d3b;\n }\n a.list-group-item-warning .list-group-item-heading {\n color: inherit;\n }\n a.list-group-item-warning:hover,\n a.list-group-item-warning:focus {\n color: #8a6d3b;\n background-color: #faf2cc;\n }\n a.list-group-item-warning.active,\n a.list-group-item-warning.active:hover,\n a.list-group-item-warning.active:focus {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b;\n }\n .list-group-item-danger {\n color: #a94442;\n background-color: #f2dede;\n }\n a.list-group-item-danger {\n color: #a94442;\n }\n a.list-group-item-danger .list-group-item-heading {\n color: inherit;\n }\n a.list-group-item-danger:hover,\n a.list-group-item-danger:focus {\n color: #a94442;\n background-color: #ebcccc;\n }\n a.list-group-item-danger.active,\n a.list-group-item-danger.active:hover,\n a.list-group-item-danger.active:focus {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442;\n }\n .list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n }\n .list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n }\n .panel {\n margin-bottom: 20px;\n background-color: #fff;\n border: 1px solid transparent;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n }\n .panel-body {\n padding: 15px;\n }\n .panel-heading {\n padding: 10px 15px;\n border-bottom: 1px solid transparent;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n }\n .panel-heading > .dropdown .dropdown-toggle {\n color: inherit;\n }\n .panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n }\n .panel-title > a,\n .panel-title > small,\n .panel-title > .small,\n .panel-title > small > a,\n .panel-title > .small > a {\n color: inherit;\n }\n .panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #ddd;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n }\n .panel > .list-group,\n .panel > .panel-collapse > .list-group {\n margin-bottom: 0;\n }\n .panel > .list-group .list-group-item,\n .panel > .panel-collapse > .list-group .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n }\n .panel > .list-group:first-child .list-group-item:first-child,\n .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n border-top: 0;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n }\n .panel > .list-group:last-child .list-group-item:last-child,\n .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n border-bottom: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n }\n .panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0;\n }\n .list-group + .panel-footer {\n border-top-width: 0;\n }\n .panel > .table,\n .panel > .table-responsive > .table,\n .panel > .panel-collapse > .table {\n margin-bottom: 0;\n }\n .panel > .table caption,\n .panel > .table-responsive > .table caption,\n .panel > .panel-collapse > .table caption {\n padding-right: 15px;\n padding-left: 15px;\n }\n .panel > .table:first-child,\n .panel > .table-responsive:first-child > .table:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n }\n .panel > .table:first-child > thead:first-child > tr:first-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n }\n .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-left-radius: 3px;\n }\n .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-right-radius: 3px;\n }\n .panel > .table:last-child,\n .panel > .table-responsive:last-child > .table:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n }\n .panel > .table:last-child > tbody:last-child > tr:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n }\n .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n }\n .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n }\n .panel > .panel-body + .table,\n .panel > .panel-body + .table-responsive,\n .panel > .table + .panel-body,\n .panel > .table-responsive + .panel-body {\n border-top: 1px solid #ddd;\n }\n .panel > .table > tbody:first-child > tr:first-child th,\n .panel > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n }\n .panel > .table-bordered,\n .panel > .table-responsive > .table-bordered {\n border: 0;\n }\n .panel > .table-bordered > thead > tr > th:first-child,\n .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n .panel > .table-bordered > tbody > tr > th:first-child,\n .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .panel > .table-bordered > tfoot > tr > th:first-child,\n .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .panel > .table-bordered > thead > tr > td:first-child,\n .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n .panel > .table-bordered > tbody > tr > td:first-child,\n .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .panel > .table-bordered > tfoot > tr > td:first-child,\n .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n }\n .panel > .table-bordered > thead > tr > th:last-child,\n .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n .panel > .table-bordered > tbody > tr > th:last-child,\n .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .panel > .table-bordered > tfoot > tr > th:last-child,\n .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .panel > .table-bordered > thead > tr > td:last-child,\n .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n .panel > .table-bordered > tbody > tr > td:last-child,\n .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .panel > .table-bordered > tfoot > tr > td:last-child,\n .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n }\n .panel > .table-bordered > thead > tr:first-child > td,\n .panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n .panel > .table-bordered > tbody > tr:first-child > td,\n .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n .panel > .table-bordered > thead > tr:first-child > th,\n .panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n .panel > .table-bordered > tbody > tr:first-child > th,\n .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n border-bottom: 0;\n }\n .panel > .table-bordered > tbody > tr:last-child > td,\n .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .panel > .table-bordered > tfoot > tr:last-child > td,\n .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n .panel > .table-bordered > tbody > tr:last-child > th,\n .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .panel > .table-bordered > tfoot > tr:last-child > th,\n .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n border-bottom: 0;\n }\n .panel > .table-responsive {\n margin-bottom: 0;\n border: 0;\n }\n .panel-group {\n margin-bottom: 20px;\n }\n .panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px;\n }\n .panel-group .panel + .panel {\n margin-top: 5px;\n }\n .panel-group .panel-heading {\n border-bottom: 0;\n }\n .panel-group .panel-heading + .panel-collapse > .panel-body,\n .panel-group .panel-heading + .panel-collapse > .list-group {\n border-top: 1px solid #ddd;\n }\n .panel-group .panel-footer {\n border-top: 0;\n }\n .panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #ddd;\n }\n .panel-default {\n border-color: #ddd;\n }\n .panel-default > .panel-heading {\n color: #333;\n background-color: #f5f5f5;\n border-color: #ddd;\n }\n .panel-default > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ddd;\n }\n .panel-default > .panel-heading .badge {\n color: #f5f5f5;\n background-color: #333;\n }\n .panel-default > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ddd;\n }\n .panel-primary {\n border-color: #337ab7;\n }\n .panel-primary > .panel-heading {\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n }\n .panel-primary > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #337ab7;\n }\n .panel-primary > .panel-heading .badge {\n color: #337ab7;\n background-color: #fff;\n }\n .panel-primary > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #337ab7;\n }\n .panel-success {\n border-color: #d6e9c6;\n }\n .panel-success > .panel-heading {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n }\n .panel-success > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #d6e9c6;\n }\n .panel-success > .panel-heading .badge {\n color: #dff0d8;\n background-color: #3c763d;\n }\n .panel-success > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #d6e9c6;\n }\n .panel-info {\n border-color: #bce8f1;\n }\n .panel-info > .panel-heading {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n }\n .panel-info > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #bce8f1;\n }\n .panel-info > .panel-heading .badge {\n color: #d9edf7;\n background-color: #31708f;\n }\n .panel-info > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #bce8f1;\n }\n .panel-warning {\n border-color: #faebcc;\n }\n .panel-warning > .panel-heading {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n }\n .panel-warning > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #faebcc;\n }\n .panel-warning > .panel-heading .badge {\n color: #fcf8e3;\n background-color: #8a6d3b;\n }\n .panel-warning > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #faebcc;\n }\n .panel-danger {\n border-color: #ebccd1;\n }\n .panel-danger > .panel-heading {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n }\n .panel-danger > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ebccd1;\n }\n .panel-danger > .panel-heading .badge {\n color: #f2dede;\n background-color: #a94442;\n }\n .panel-danger > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ebccd1;\n }\n .embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n }\n .embed-responsive .embed-responsive-item,\n .embed-responsive iframe,\n .embed-responsive embed,\n .embed-responsive object,\n .embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n }\n .embed-responsive-16by9 {\n padding-bottom: 56.25%;\n }\n .embed-responsive-4by3 {\n padding-bottom: 75%;\n }\n .well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n }\n .well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, 0.15);\n }\n .well-lg {\n padding: 24px;\n border-radius: 6px;\n }\n .well-sm {\n padding: 9px;\n border-radius: 3px;\n }\n .close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n filter: alpha(opacity=20);\n opacity: 0.2;\n }\n .close:hover,\n .close:focus {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n filter: alpha(opacity=50);\n opacity: 0.5;\n }\n button.close {\n -webkit-appearance: none;\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n }\n .modal-open {\n overflow: hidden;\n }\n .modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n display: none;\n overflow: hidden;\n -webkit-overflow-scrolling: touch;\n outline: 0;\n }\n .modal.fade .modal-dialog {\n -webkit-transition: -webkit-transform 0.3s ease-out;\n -o-transition: -o-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n -o-transform: translate(0, -25%);\n transform: translate(0, -25%);\n }\n .modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n }\n .modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n }\n .modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n }\n .modal-content {\n position: relative;\n background-color: #fff;\n -webkit-background-clip: padding-box;\n background-clip: padding-box;\n border: 1px solid #999;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n outline: 0;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n }\n .modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n }\n .modal-backdrop.fade {\n filter: alpha(opacity=0);\n opacity: 0;\n }\n .modal-backdrop.in {\n filter: alpha(opacity=50);\n opacity: 0.5;\n }\n .modal-header {\n min-height: 16.42857143px;\n padding: 15px;\n border-bottom: 1px solid #e5e5e5;\n }\n .modal-header .close {\n margin-top: -2px;\n }\n .modal-title {\n margin: 0;\n line-height: 1.42857143;\n }\n //.modal-body {\n // position: relative;\n // padding: 15px;\n //}\n .modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5;\n }\n .modal-footer .btn + .btn {\n margin-bottom: 0;\n margin-left: 5px;\n }\n .modal-footer .btn-group .btn + .btn {\n margin-left: -1px;\n }\n .modal-footer .btn-block + .btn-block {\n margin-left: 0;\n }\n .modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n }\n @media (min-width: 768px) {\n .modal-dialog {\n width: 600px;\n margin: 30px auto;\n }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n }\n .modal-sm {\n width: 300px;\n }\n }\n @media (min-width: 992px) {\n .modal-lg {\n width: 900px;\n }\n }\n .tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 12px;\n font-weight: normal;\n line-height: 1.4;\n filter: alpha(opacity=0);\n opacity: 0;\n }\n .tooltip.in {\n filter: alpha(opacity=90);\n opacity: 0.9;\n }\n .tooltip.top {\n padding: 5px 0;\n margin-top: -3px;\n }\n .tooltip.right {\n padding: 0 5px;\n margin-left: 3px;\n }\n .tooltip.bottom {\n padding: 5px 0;\n margin-top: 3px;\n }\n .tooltip.left {\n padding: 0 5px;\n margin-left: -3px;\n }\n .tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #fff;\n text-align: center;\n text-decoration: none;\n background-color: #000;\n border-radius: 4px;\n }\n .tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n }\n .tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n }\n .tooltip.top-left .tooltip-arrow {\n right: 5px;\n bottom: 0;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n }\n .tooltip.top-right .tooltip-arrow {\n bottom: 0;\n left: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n }\n .tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000;\n }\n .tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000;\n }\n .tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n }\n .tooltip.bottom-left .tooltip-arrow {\n top: 0;\n right: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n }\n .tooltip.bottom-right .tooltip-arrow {\n top: 0;\n left: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n }\n .popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: none;\n max-width: 276px;\n padding: 1px;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n font-weight: normal;\n line-height: 1.42857143;\n text-align: left;\n white-space: normal;\n background-color: #fff;\n -webkit-background-clip: padding-box;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n }\n .popover.top {\n margin-top: -10px;\n }\n .popover.right {\n margin-left: 10px;\n }\n .popover.bottom {\n margin-top: 10px;\n }\n .popover.left {\n margin-left: -10px;\n }\n .popover-title {\n padding: 8px 14px;\n margin: 0;\n font-size: 14px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0;\n }\n .popover-content {\n padding: 9px 14px;\n }\n .popover > .arrow,\n .popover > .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n }\n .popover > .arrow {\n border-width: 11px;\n }\n .popover > .arrow:after {\n content: \"\";\n border-width: 10px;\n }\n .popover.top > .arrow {\n bottom: -11px;\n left: 50%;\n margin-left: -11px;\n border-top-color: #999;\n border-top-color: rgba(0, 0, 0, 0.25);\n border-bottom-width: 0;\n }\n .popover.top > .arrow:after {\n bottom: 1px;\n margin-left: -10px;\n content: \" \";\n border-top-color: #fff;\n border-bottom-width: 0;\n }\n .popover.right > .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-right-color: #999;\n border-right-color: rgba(0, 0, 0, 0.25);\n border-left-width: 0;\n }\n .popover.right > .arrow:after {\n bottom: -10px;\n left: 1px;\n content: \" \";\n border-right-color: #fff;\n border-left-width: 0;\n }\n .popover.bottom > .arrow {\n top: -11px;\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n }\n .popover.bottom > .arrow:after {\n top: 1px;\n margin-left: -10px;\n content: \" \";\n border-top-width: 0;\n border-bottom-color: #fff;\n }\n .popover.left > .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999;\n border-left-color: rgba(0, 0, 0, 0.25);\n }\n .popover.left > .arrow:after {\n right: 1px;\n bottom: -10px;\n content: \" \";\n border-right-width: 0;\n border-left-color: #fff;\n }\n .carousel {\n position: relative;\n }\n .carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n }\n .carousel-inner > .item {\n position: relative;\n display: none;\n -webkit-transition: 0.6s ease-in-out left;\n -o-transition: 0.6s ease-in-out left;\n transition: 0.6s ease-in-out left;\n }\n .carousel-inner > .item > img,\n .carousel-inner > .item > a > img {\n line-height: 1;\n }\n @media all and (transform-3d), (-webkit-transform-3d) {\n .carousel-inner > .item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n -o-transition: -o-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000;\n perspective: 1000;\n }\n .carousel-inner > .item.next,\n .carousel-inner > .item.active.right {\n left: 0;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n .carousel-inner > .item.prev,\n .carousel-inner > .item.active.left {\n left: 0;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n .carousel-inner > .item.next.left,\n .carousel-inner > .item.prev.right,\n .carousel-inner > .item.active {\n left: 0;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n }\n .carousel-inner > .active,\n .carousel-inner > .next,\n .carousel-inner > .prev {\n display: block;\n }\n .carousel-inner > .active {\n left: 0;\n }\n .carousel-inner > .next,\n .carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n }\n .carousel-inner > .next {\n left: 100%;\n }\n .carousel-inner > .prev {\n left: -100%;\n }\n .carousel-inner > .next.left,\n .carousel-inner > .prev.right {\n left: 0;\n }\n .carousel-inner > .active.left {\n left: -100%;\n }\n .carousel-inner > .active.right {\n left: 100%;\n }\n .carousel-control {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 15%;\n font-size: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n filter: alpha(opacity=50);\n opacity: 0.5;\n }\n .carousel-control.left {\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -webkit-gradient(\n linear,\n left top,\n right top,\n from(rgba(0, 0, 0, 0.5)),\n to(rgba(0, 0, 0, 0.0001))\n );\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n background-repeat: repeat-x;\n }\n .carousel-control.right {\n right: 0;\n left: auto;\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -webkit-gradient(\n linear,\n left top,\n right top,\n from(rgba(0, 0, 0, 0.0001)),\n to(rgba(0, 0, 0, 0.5))\n );\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n background-repeat: repeat-x;\n }\n .carousel-control:hover,\n .carousel-control:focus {\n color: #fff;\n text-decoration: none;\n filter: alpha(opacity=90);\n outline: 0;\n opacity: 0.9;\n }\n .carousel-control .icon-prev,\n .carousel-control .icon-next,\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n z-index: 5;\n display: inline-block;\n }\n .carousel-control .icon-prev,\n .carousel-control .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n }\n .carousel-control .icon-next,\n .carousel-control .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n }\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 20px;\n height: 20px;\n margin-top: -10px;\n font-family: serif;\n line-height: 1;\n }\n .carousel-control .icon-prev:before {\n content: \"\\2039\";\n }\n .carousel-control .icon-next:before {\n content: \"\\203a\";\n }\n .carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n padding-left: 0;\n margin-left: -30%;\n text-align: center;\n list-style: none;\n }\n .carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #000 \\9;\n background-color: rgba(0, 0, 0, 0);\n border: 1px solid #fff;\n border-radius: 10px;\n }\n .carousel-indicators .active {\n width: 12px;\n height: 12px;\n margin: 0;\n background-color: #fff;\n }\n .carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n }\n .carousel-caption .btn {\n text-shadow: none;\n }\n @media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -15px;\n font-size: 30px;\n }\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: -15px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-right: -15px;\n }\n .carousel-caption {\n right: 20%;\n left: 20%;\n padding-bottom: 30px;\n }\n .carousel-indicators {\n bottom: 20px;\n }\n }\n .clearfix:before,\n .clearfix:after,\n .dl-horizontal dd:before,\n .dl-horizontal dd:after,\n .container:before,\n .container:after,\n .container-fluid:before,\n .container-fluid:after,\n .row:before,\n .row:after,\n .form-horizontal .form-group:before,\n .form-horizontal .form-group:after,\n .btn-toolbar:before,\n .btn-toolbar:after,\n .btn-group-vertical > .btn-group:before,\n .btn-group-vertical > .btn-group:after,\n .nav:before,\n .nav:after,\n .navbar:before,\n .navbar:after,\n .navbar-header:before,\n .navbar-header:after,\n .navbar-collapse:before,\n .navbar-collapse:after,\n .pager:before,\n .pager:after,\n .panel-body:before,\n .panel-body:after,\n .modal-footer:before,\n .modal-footer:after {\n display: table;\n content: \" \";\n }\n .clearfix:after,\n .dl-horizontal dd:after,\n .container:after,\n .container-fluid:after,\n .row:after,\n .form-horizontal .form-group:after,\n .btn-toolbar:after,\n .btn-group-vertical > .btn-group:after,\n .nav:after,\n .navbar:after,\n .navbar-header:after,\n .navbar-collapse:after,\n .pager:after,\n .panel-body:after,\n .modal-footer:after {\n clear: both;\n }\n .center-block {\n display: block;\n margin-right: auto;\n margin-left: auto;\n }\n .pull-right {\n float: right !important;\n }\n .pull-left {\n float: left !important;\n }\n .hide {\n display: none !important;\n }\n .show {\n display: block !important;\n }\n .invisible {\n visibility: hidden;\n }\n .text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n }\n .hidden {\n display: none !important;\n }\n .affix {\n position: fixed;\n }\n @-ms-viewport {\n width: device-width;\n }\n .visible-xs,\n .visible-sm,\n .visible-md,\n .visible-lg {\n display: none !important;\n }\n .visible-xs-block,\n .visible-xs-inline,\n .visible-xs-inline-block,\n .visible-sm-block,\n .visible-sm-inline,\n .visible-sm-inline-block,\n .visible-md-block,\n .visible-md-inline,\n .visible-md-inline-block,\n .visible-lg-block,\n .visible-lg-inline,\n .visible-lg-inline-block {\n display: none !important;\n }\n @media (max-width: 767px) {\n .visible-xs {\n display: block !important;\n }\n table.visible-xs {\n display: table;\n }\n tr.visible-xs {\n display: table-row !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: table-cell !important;\n }\n }\n @media (max-width: 767px) {\n .visible-xs-block {\n display: block !important;\n }\n }\n @media (max-width: 767px) {\n .visible-xs-inline {\n display: inline !important;\n }\n }\n @media (max-width: 767px) {\n .visible-xs-inline-block {\n display: inline-block !important;\n }\n }\n @media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important;\n }\n table.visible-sm {\n display: table;\n }\n tr.visible-sm {\n display: table-row !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important;\n }\n }\n @media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-block {\n display: block !important;\n }\n }\n @media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline {\n display: inline !important;\n }\n }\n @media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline-block {\n display: inline-block !important;\n }\n }\n @media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important;\n }\n table.visible-md {\n display: table;\n }\n tr.visible-md {\n display: table-row !important;\n }\n th.visible-md,\n td.visible-md {\n display: table-cell !important;\n }\n }\n @media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-block {\n display: block !important;\n }\n }\n @media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline {\n display: inline !important;\n }\n }\n @media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline-block {\n display: inline-block !important;\n }\n }\n @media (min-width: 1200px) {\n .visible-lg {\n display: block !important;\n }\n table.visible-lg {\n display: table;\n }\n tr.visible-lg {\n display: table-row !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important;\n }\n }\n @media (min-width: 1200px) {\n .visible-lg-block {\n display: block !important;\n }\n }\n @media (min-width: 1200px) {\n .visible-lg-inline {\n display: inline !important;\n }\n }\n @media (min-width: 1200px) {\n .visible-lg-inline-block {\n display: inline-block !important;\n }\n }\n @media (max-width: 767px) {\n .hidden-xs {\n display: none !important;\n }\n }\n @media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important;\n }\n }\n @media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important;\n }\n }\n @media (min-width: 1200px) {\n .hidden-lg {\n display: none !important;\n }\n }\n .visible-print {\n display: none !important;\n }\n @media print {\n .visible-print {\n display: block !important;\n }\n table.visible-print {\n display: table;\n }\n tr.visible-print {\n display: table-row !important;\n }\n th.visible-print,\n td.visible-print {\n display: table-cell !important;\n }\n }\n .visible-print-block {\n display: none !important;\n }\n @media print {\n .visible-print-block {\n display: block !important;\n }\n }\n .visible-print-inline {\n display: none !important;\n }\n @media print {\n .visible-print-inline {\n display: inline !important;\n }\n }\n .visible-print-inline-block {\n display: none !important;\n }\n @media print {\n .visible-print-inline-block {\n display: inline-block !important;\n }\n }\n @media print {\n .hidden-print {\n display: none !important;\n }\n }\n}\n","/*******************************************************************************\n * bootstrap-rtl (version 3.3.4)\n * Author: Morteza Ansarinia (http://github.com/morteza)\n * Created on: August 13,2015\n * Project: bootstrap-rtl\n * Copyright: Unlicensed Public Domain\n *******************************************************************************/\n@mixin bootstrap-rtl() {\n [dir=\"rtl\"] {\n .flip.text-left {\n text-align: right;\n }\n\n .flip.text-right {\n text-align: left;\n }\n\n .list-unstyled {\n padding-right: 0;\n padding-left: initial;\n }\n\n .list-inline {\n padding-right: 0;\n padding-left: initial;\n margin-right: -5px;\n margin-left: 0;\n }\n\n dd {\n margin-right: 0;\n margin-left: initial;\n }\n\n @media (min-width: 768px) {\n .dl-horizontal dt {\n float: right;\n clear: right;\n text-align: left;\n }\n .dl-horizontal dd {\n margin-right: 180px;\n margin-left: 0;\n }\n }\n\n blockquote {\n border-right: 5px solid #eeeeee;\n border-left: 0;\n }\n\n .blockquote-reverse,\n blockquote.pull-left {\n padding-left: 15px;\n padding-right: 0;\n border-left: 5px solid #eeeeee;\n border-right: 0;\n text-align: left;\n }\n\n .col-xs-1,\n .col-sm-1,\n .col-md-1,\n .col-lg-1,\n .col-xs-2,\n .col-sm-2,\n .col-md-2,\n .col-lg-2,\n .col-xs-3,\n .col-sm-3,\n .col-md-3,\n .col-lg-3,\n .col-xs-4,\n .col-sm-4,\n .col-md-4,\n .col-lg-4,\n .col-xs-5,\n .col-sm-5,\n .col-md-5,\n .col-lg-5,\n .col-xs-6,\n .col-sm-6,\n .col-md-6,\n .col-lg-6,\n .col-xs-7,\n .col-sm-7,\n .col-md-7,\n .col-lg-7,\n .col-xs-8,\n .col-sm-8,\n .col-md-8,\n .col-lg-8,\n .col-xs-9,\n .col-sm-9,\n .col-md-9,\n .col-lg-9,\n .col-xs-10,\n .col-sm-10,\n .col-md-10,\n .col-lg-10,\n .col-xs-11,\n .col-sm-11,\n .col-md-11,\n .col-lg-11,\n .col-xs-12,\n .col-sm-12,\n .col-md-12,\n .col-lg-12 {\n position: relative;\n min-height: 1px;\n padding-left: 15px;\n padding-right: 15px;\n }\n\n .col-xs-1,\n .col-xs-2,\n .col-xs-3,\n .col-xs-4,\n .col-xs-5,\n .col-xs-6,\n .col-xs-7,\n .col-xs-8,\n .col-xs-9,\n .col-xs-10,\n .col-xs-11,\n .col-xs-12 {\n float: right;\n }\n\n .col-xs-12 {\n width: 100%;\n }\n\n .col-xs-11 {\n width: 91.66666667%;\n }\n\n .col-xs-10 {\n width: 83.33333333%;\n }\n\n .col-xs-9 {\n width: 75%;\n }\n\n .col-xs-8 {\n width: 66.66666667%;\n }\n\n .col-xs-7 {\n width: 58.33333333%;\n }\n\n .col-xs-6 {\n width: 50%;\n }\n\n .col-xs-5 {\n width: 41.66666667%;\n }\n\n .col-xs-4 {\n width: 33.33333333%;\n }\n\n .col-xs-3 {\n width: 25%;\n }\n\n .col-xs-2 {\n width: 16.66666667%;\n }\n\n .col-xs-1 {\n width: 8.33333333%;\n }\n\n .col-xs-pull-12 {\n left: 100%;\n right: auto;\n }\n\n .col-xs-pull-11 {\n left: 91.66666667%;\n right: auto;\n }\n\n .col-xs-pull-10 {\n left: 83.33333333%;\n right: auto;\n }\n\n .col-xs-pull-9 {\n left: 75%;\n right: auto;\n }\n\n .col-xs-pull-8 {\n left: 66.66666667%;\n right: auto;\n }\n\n .col-xs-pull-7 {\n left: 58.33333333%;\n right: auto;\n }\n\n .col-xs-pull-6 {\n left: 50%;\n right: auto;\n }\n\n .col-xs-pull-5 {\n left: 41.66666667%;\n right: auto;\n }\n\n .col-xs-pull-4 {\n left: 33.33333333%;\n right: auto;\n }\n\n .col-xs-pull-3 {\n left: 25%;\n right: auto;\n }\n\n .col-xs-pull-2 {\n left: 16.66666667%;\n right: auto;\n }\n\n .col-xs-pull-1 {\n left: 8.33333333%;\n right: auto;\n }\n\n .col-xs-pull-0 {\n left: auto;\n right: auto;\n }\n\n .col-xs-push-12 {\n right: 100%;\n left: 0;\n }\n\n .col-xs-push-11 {\n right: 91.66666667%;\n left: 0;\n }\n\n .col-xs-push-10 {\n right: 83.33333333%;\n left: 0;\n }\n\n .col-xs-push-9 {\n right: 75%;\n left: 0;\n }\n\n .col-xs-push-8 {\n right: 66.66666667%;\n left: 0;\n }\n\n .col-xs-push-7 {\n right: 58.33333333%;\n left: 0;\n }\n\n .col-xs-push-6 {\n right: 50%;\n left: 0;\n }\n\n .col-xs-push-5 {\n right: 41.66666667%;\n left: 0;\n }\n\n .col-xs-push-4 {\n right: 33.33333333%;\n left: 0;\n }\n\n .col-xs-push-3 {\n right: 25%;\n left: 0;\n }\n\n .col-xs-push-2 {\n right: 16.66666667%;\n left: 0;\n }\n\n .col-xs-push-1 {\n right: 8.33333333%;\n left: 0;\n }\n\n .col-xs-push-0 {\n right: auto;\n left: 0;\n }\n\n .col-xs-offset-12 {\n margin-right: 100%;\n margin-left: 0;\n }\n\n .col-xs-offset-11 {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n\n .col-xs-offset-10 {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n\n .col-xs-offset-9 {\n margin-right: 75%;\n margin-left: 0;\n }\n\n .col-xs-offset-8 {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n\n .col-xs-offset-7 {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n\n .col-xs-offset-6 {\n margin-right: 50%;\n margin-left: 0;\n }\n\n .col-xs-offset-5 {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n\n .col-xs-offset-4 {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n\n .col-xs-offset-3 {\n margin-right: 25%;\n margin-left: 0;\n }\n\n .col-xs-offset-2 {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n\n .col-xs-offset-1 {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n\n .col-xs-offset-0 {\n margin-right: 0%;\n margin-left: 0;\n }\n\n @media (min-width: 768px) {\n .col-sm-1,\n .col-sm-2,\n .col-sm-3,\n .col-sm-4,\n .col-sm-5,\n .col-sm-6,\n .col-sm-7,\n .col-sm-8,\n .col-sm-9,\n .col-sm-10,\n .col-sm-11,\n .col-sm-12 {\n float: right;\n }\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-11 {\n width: 91.66666667%;\n }\n .col-sm-10 {\n width: 83.33333333%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-8 {\n width: 66.66666667%;\n }\n .col-sm-7 {\n width: 58.33333333%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-5 {\n width: 41.66666667%;\n }\n .col-sm-4 {\n width: 33.33333333%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-2 {\n width: 16.66666667%;\n }\n .col-sm-1 {\n width: 8.33333333%;\n }\n .col-sm-pull-12 {\n left: 100%;\n right: auto;\n }\n .col-sm-pull-11 {\n left: 91.66666667%;\n right: auto;\n }\n .col-sm-pull-10 {\n left: 83.33333333%;\n right: auto;\n }\n .col-sm-pull-9 {\n left: 75%;\n right: auto;\n }\n .col-sm-pull-8 {\n left: 66.66666667%;\n right: auto;\n }\n .col-sm-pull-7 {\n left: 58.33333333%;\n right: auto;\n }\n .col-sm-pull-6 {\n left: 50%;\n right: auto;\n }\n .col-sm-pull-5 {\n left: 41.66666667%;\n right: auto;\n }\n .col-sm-pull-4 {\n left: 33.33333333%;\n right: auto;\n }\n .col-sm-pull-3 {\n left: 25%;\n right: auto;\n }\n .col-sm-pull-2 {\n left: 16.66666667%;\n right: auto;\n }\n .col-sm-pull-1 {\n left: 8.33333333%;\n right: auto;\n }\n .col-sm-pull-0 {\n left: auto;\n right: auto;\n }\n .col-sm-push-12 {\n right: 100%;\n left: 0;\n }\n .col-sm-push-11 {\n right: 91.66666667%;\n left: 0;\n }\n .col-sm-push-10 {\n right: 83.33333333%;\n left: 0;\n }\n .col-sm-push-9 {\n right: 75%;\n left: 0;\n }\n .col-sm-push-8 {\n right: 66.66666667%;\n left: 0;\n }\n .col-sm-push-7 {\n right: 58.33333333%;\n left: 0;\n }\n .col-sm-push-6 {\n right: 50%;\n left: 0;\n }\n .col-sm-push-5 {\n right: 41.66666667%;\n left: 0;\n }\n .col-sm-push-4 {\n right: 33.33333333%;\n left: 0;\n }\n .col-sm-push-3 {\n right: 25%;\n left: 0;\n }\n .col-sm-push-2 {\n right: 16.66666667%;\n left: 0;\n }\n .col-sm-push-1 {\n right: 8.33333333%;\n left: 0;\n }\n .col-sm-push-0 {\n right: auto;\n left: 0;\n }\n .col-sm-offset-12 {\n margin-right: 100%;\n margin-left: 0;\n }\n .col-sm-offset-11 {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .col-sm-offset-10 {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .col-sm-offset-9 {\n margin-right: 75%;\n margin-left: 0;\n }\n .col-sm-offset-8 {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .col-sm-offset-7 {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .col-sm-offset-6 {\n margin-right: 50%;\n margin-left: 0;\n }\n .col-sm-offset-5 {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .col-sm-offset-4 {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .col-sm-offset-3 {\n margin-right: 25%;\n margin-left: 0;\n }\n .col-sm-offset-2 {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .col-sm-offset-1 {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .col-sm-offset-0 {\n margin-right: 0%;\n margin-left: 0;\n }\n }\n @media (min-width: 992px) {\n .col-md-1,\n .col-md-2,\n .col-md-3,\n .col-md-4,\n .col-md-5,\n .col-md-6,\n .col-md-7,\n .col-md-8,\n .col-md-9,\n .col-md-10,\n .col-md-11,\n .col-md-12 {\n float: right;\n }\n .col-md-12 {\n width: 100%;\n }\n .col-md-11 {\n width: 91.66666667%;\n }\n .col-md-10 {\n width: 83.33333333%;\n }\n .col-md-9 {\n width: 75%;\n }\n .col-md-8 {\n width: 66.66666667%;\n }\n .col-md-7 {\n width: 58.33333333%;\n }\n .col-md-6 {\n width: 50%;\n }\n .col-md-5 {\n width: 41.66666667%;\n }\n .col-md-4 {\n width: 33.33333333%;\n }\n .col-md-3 {\n width: 25%;\n }\n .col-md-2 {\n width: 16.66666667%;\n }\n .col-md-1 {\n width: 8.33333333%;\n }\n .col-md-pull-12 {\n left: 100%;\n right: auto;\n }\n .col-md-pull-11 {\n left: 91.66666667%;\n right: auto;\n }\n .col-md-pull-10 {\n left: 83.33333333%;\n right: auto;\n }\n .col-md-pull-9 {\n left: 75%;\n right: auto;\n }\n .col-md-pull-8 {\n left: 66.66666667%;\n right: auto;\n }\n .col-md-pull-7 {\n left: 58.33333333%;\n right: auto;\n }\n .col-md-pull-6 {\n left: 50%;\n right: auto;\n }\n .col-md-pull-5 {\n left: 41.66666667%;\n right: auto;\n }\n .col-md-pull-4 {\n left: 33.33333333%;\n right: auto;\n }\n .col-md-pull-3 {\n left: 25%;\n right: auto;\n }\n .col-md-pull-2 {\n left: 16.66666667%;\n right: auto;\n }\n .col-md-pull-1 {\n left: 8.33333333%;\n right: auto;\n }\n .col-md-pull-0 {\n left: auto;\n right: auto;\n }\n .col-md-push-12 {\n right: 100%;\n left: 0;\n }\n .col-md-push-11 {\n right: 91.66666667%;\n left: 0;\n }\n .col-md-push-10 {\n right: 83.33333333%;\n left: 0;\n }\n .col-md-push-9 {\n right: 75%;\n left: 0;\n }\n .col-md-push-8 {\n right: 66.66666667%;\n left: 0;\n }\n .col-md-push-7 {\n right: 58.33333333%;\n left: 0;\n }\n .col-md-push-6 {\n right: 50%;\n left: 0;\n }\n .col-md-push-5 {\n right: 41.66666667%;\n left: 0;\n }\n .col-md-push-4 {\n right: 33.33333333%;\n left: 0;\n }\n .col-md-push-3 {\n right: 25%;\n left: 0;\n }\n .col-md-push-2 {\n right: 16.66666667%;\n left: 0;\n }\n .col-md-push-1 {\n right: 8.33333333%;\n left: 0;\n }\n .col-md-push-0 {\n right: auto;\n left: 0;\n }\n .col-md-offset-12 {\n margin-right: 100%;\n margin-left: 0;\n }\n .col-md-offset-11 {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .col-md-offset-10 {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .col-md-offset-9 {\n margin-right: 75%;\n margin-left: 0;\n }\n .col-md-offset-8 {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .col-md-offset-7 {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .col-md-offset-6 {\n margin-right: 50%;\n margin-left: 0;\n }\n .col-md-offset-5 {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .col-md-offset-4 {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .col-md-offset-3 {\n margin-right: 25%;\n margin-left: 0;\n }\n .col-md-offset-2 {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .col-md-offset-1 {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .col-md-offset-0 {\n margin-right: 0%;\n margin-left: 0;\n }\n }\n @media (min-width: 1200px) {\n .col-lg-1,\n .col-lg-2,\n .col-lg-3,\n .col-lg-4,\n .col-lg-5,\n .col-lg-6,\n .col-lg-7,\n .col-lg-8,\n .col-lg-9,\n .col-lg-10,\n .col-lg-11,\n .col-lg-12 {\n float: right;\n }\n .col-lg-12 {\n width: 100%;\n }\n .col-lg-11 {\n width: 91.66666667%;\n }\n .col-lg-10 {\n width: 83.33333333%;\n }\n .col-lg-9 {\n width: 75%;\n }\n .col-lg-8 {\n width: 66.66666667%;\n }\n .col-lg-7 {\n width: 58.33333333%;\n }\n .col-lg-6 {\n width: 50%;\n }\n .col-lg-5 {\n width: 41.66666667%;\n }\n .col-lg-4 {\n width: 33.33333333%;\n }\n .col-lg-3 {\n width: 25%;\n }\n .col-lg-2 {\n width: 16.66666667%;\n }\n .col-lg-1 {\n width: 8.33333333%;\n }\n .col-lg-pull-12 {\n left: 100%;\n right: auto;\n }\n .col-lg-pull-11 {\n left: 91.66666667%;\n right: auto;\n }\n .col-lg-pull-10 {\n left: 83.33333333%;\n right: auto;\n }\n .col-lg-pull-9 {\n left: 75%;\n right: auto;\n }\n .col-lg-pull-8 {\n left: 66.66666667%;\n right: auto;\n }\n .col-lg-pull-7 {\n left: 58.33333333%;\n right: auto;\n }\n .col-lg-pull-6 {\n left: 50%;\n right: auto;\n }\n .col-lg-pull-5 {\n left: 41.66666667%;\n right: auto;\n }\n .col-lg-pull-4 {\n left: 33.33333333%;\n right: auto;\n }\n .col-lg-pull-3 {\n left: 25%;\n right: auto;\n }\n .col-lg-pull-2 {\n left: 16.66666667%;\n right: auto;\n }\n .col-lg-pull-1 {\n left: 8.33333333%;\n right: auto;\n }\n .col-lg-pull-0 {\n left: auto;\n right: auto;\n }\n .col-lg-push-12 {\n right: 100%;\n left: 0;\n }\n .col-lg-push-11 {\n right: 91.66666667%;\n left: 0;\n }\n .col-lg-push-10 {\n right: 83.33333333%;\n left: 0;\n }\n .col-lg-push-9 {\n right: 75%;\n left: 0;\n }\n .col-lg-push-8 {\n right: 66.66666667%;\n left: 0;\n }\n .col-lg-push-7 {\n right: 58.33333333%;\n left: 0;\n }\n .col-lg-push-6 {\n right: 50%;\n left: 0;\n }\n .col-lg-push-5 {\n right: 41.66666667%;\n left: 0;\n }\n .col-lg-push-4 {\n right: 33.33333333%;\n left: 0;\n }\n .col-lg-push-3 {\n right: 25%;\n left: 0;\n }\n .col-lg-push-2 {\n right: 16.66666667%;\n left: 0;\n }\n .col-lg-push-1 {\n right: 8.33333333%;\n left: 0;\n }\n .col-lg-push-0 {\n right: auto;\n left: 0;\n }\n .col-lg-offset-12 {\n margin-right: 100%;\n margin-left: 0;\n }\n .col-lg-offset-11 {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .col-lg-offset-10 {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .col-lg-offset-9 {\n margin-right: 75%;\n margin-left: 0;\n }\n .col-lg-offset-8 {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .col-lg-offset-7 {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .col-lg-offset-6 {\n margin-right: 50%;\n margin-left: 0;\n }\n .col-lg-offset-5 {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .col-lg-offset-4 {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .col-lg-offset-3 {\n margin-right: 25%;\n margin-left: 0;\n }\n .col-lg-offset-2 {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .col-lg-offset-1 {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .col-lg-offset-0 {\n margin-right: 0%;\n margin-left: 0;\n }\n }\n\n caption {\n text-align: right;\n }\n\n th:not(.mx-left-aligned) {\n text-align: right;\n }\n\n @media screen and (max-width: 767px) {\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-right: 0;\n border-left: initial;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-left: 0;\n border-right: initial;\n }\n }\n\n .radio label,\n .checkbox label {\n padding-right: 20px;\n padding-left: initial;\n }\n\n .radio input[type=\"radio\"],\n .radio-inline input[type=\"radio\"],\n .checkbox input[type=\"checkbox\"],\n .checkbox-inline input[type=\"checkbox\"] {\n margin-right: -20px;\n margin-left: auto;\n }\n\n .radio-inline,\n .checkbox-inline {\n padding-right: 20px;\n padding-left: 0;\n }\n\n .radio-inline + .radio-inline,\n .checkbox-inline + .checkbox-inline {\n margin-right: 10px;\n margin-left: 0;\n }\n\n .has-feedback .form-control {\n padding-left: 42.5px;\n padding-right: 12px;\n }\n\n .form-control-feedback {\n left: 0;\n right: auto;\n }\n\n @media (min-width: 768px) {\n .form-inline label {\n padding-right: 0;\n padding-left: initial;\n }\n .form-inline .radio input[type=\"radio\"],\n .form-inline .checkbox input[type=\"checkbox\"] {\n margin-right: 0;\n margin-left: auto;\n }\n }\n @media (min-width: 768px) {\n .form-horizontal .control-label {\n text-align: left;\n }\n }\n\n .form-horizontal .has-feedback .form-control-feedback {\n left: 15px;\n right: auto;\n }\n\n .caret {\n margin-right: 2px;\n margin-left: 0;\n }\n\n .dropdown-menu {\n right: 0;\n left: auto;\n float: left;\n text-align: right;\n }\n\n .dropdown-menu.pull-right {\n left: 0;\n right: auto;\n float: right;\n }\n\n .dropdown-menu-right {\n left: auto;\n right: 0;\n }\n\n .dropdown-menu-left {\n left: 0;\n right: auto;\n }\n\n @media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n left: auto;\n right: 0;\n }\n .navbar-right .dropdown-menu-left {\n left: 0;\n right: auto;\n }\n }\n\n .btn-group > .btn,\n .btn-group-vertical > .btn {\n float: right;\n }\n\n .btn-group .btn + .btn,\n .btn-group .btn + .btn-group,\n .btn-group .btn-group + .btn,\n .btn-group .btn-group + .btn-group {\n margin-right: -1px;\n margin-left: 0px;\n }\n\n .btn-toolbar {\n margin-right: -5px;\n margin-left: 0px;\n }\n\n .btn-toolbar .btn-group,\n .btn-toolbar .input-group {\n float: right;\n }\n\n .btn-toolbar > .btn,\n .btn-toolbar > .btn-group,\n .btn-toolbar > .input-group {\n margin-right: 5px;\n margin-left: 0px;\n }\n\n .btn-group > .btn:first-child {\n margin-right: 0;\n }\n\n .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n }\n\n .btn-group > .btn:last-child:not(:first-child),\n .btn-group > .dropdown-toggle:not(:first-child) {\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n }\n\n .btn-group > .btn-group {\n float: right;\n }\n\n .btn-group.btn-group-justified > .btn,\n .btn-group.btn-group-justified > .btn-group {\n float: none;\n }\n\n .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n }\n\n .btn-group > .btn-group:first-child > .btn:last-child,\n .btn-group > .btn-group:first-child > .dropdown-toggle {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n }\n\n .btn-group > .btn-group:last-child > .btn:first-child {\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n }\n\n .btn .caret {\n margin-right: 0;\n }\n\n .btn-group-vertical > .btn + .btn,\n .btn-group-vertical > .btn + .btn-group,\n .btn-group-vertical > .btn-group + .btn,\n .btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-right: 0;\n }\n\n .input-group .form-control {\n float: right;\n }\n\n .input-group .form-control:first-child,\n .input-group-addon:first-child,\n .input-group-btn:first-child > .btn,\n .input-group-btn:first-child > .btn-group > .btn,\n .input-group-btn:first-child > .dropdown-toggle,\n .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n }\n\n .input-group-addon:first-child {\n border-left: 0px;\n border-right: 1px solid;\n }\n\n .input-group .form-control:last-child,\n .input-group-addon:last-child,\n .input-group-btn:last-child > .btn,\n .input-group-btn:last-child > .btn-group > .btn,\n .input-group-btn:last-child > .dropdown-toggle,\n .input-group-btn:first-child > .btn:not(:first-child),\n .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n }\n\n .input-group-addon:last-child {\n border-left-width: 1px;\n border-left-style: solid;\n border-right: 0px;\n }\n\n .input-group-btn > .btn + .btn {\n margin-right: -1px;\n margin-left: auto;\n }\n\n .input-group-btn:first-child > .btn,\n .input-group-btn:first-child > .btn-group {\n margin-left: -1px;\n margin-right: auto;\n }\n\n .input-group-btn:last-child > .btn,\n .input-group-btn:last-child > .btn-group {\n margin-right: -1px;\n margin-left: auto;\n }\n\n .nav {\n padding-right: 0;\n padding-left: initial;\n }\n\n .nav-tabs > li {\n float: right;\n }\n\n .nav-tabs > li > a {\n margin-left: auto;\n margin-right: -2px;\n border-radius: 4px 4px 0 0;\n }\n\n .nav-pills > li {\n float: right;\n }\n\n .nav-pills > li > a {\n border-radius: 4px;\n }\n\n .nav-pills > li + li {\n margin-right: 2px;\n margin-left: auto;\n }\n\n .nav-stacked > li {\n float: none;\n }\n\n .nav-stacked > li + li {\n margin-right: 0;\n margin-left: auto;\n }\n\n .nav-justified > .dropdown .dropdown-menu {\n right: auto;\n }\n\n .nav-tabs-justified > li > a {\n margin-left: 0;\n margin-right: auto;\n }\n\n @media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-radius: 4px 4px 0 0;\n }\n }\n @media (min-width: 768px) {\n .navbar-header {\n float: right;\n }\n }\n\n .navbar-collapse {\n padding-right: 15px;\n padding-left: 15px;\n }\n\n .navbar-brand {\n float: right;\n }\n\n @media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-right: -15px;\n margin-left: auto;\n }\n }\n\n .navbar-toggle {\n float: left;\n margin-left: 15px;\n margin-right: auto;\n }\n\n @media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 25px 5px 15px;\n }\n }\n @media (min-width: 768px) {\n .navbar-nav {\n float: right;\n }\n .navbar-nav > li {\n float: right;\n }\n }\n @media (min-width: 768px) {\n .navbar-left.flip {\n float: right !important;\n }\n .navbar-right:last-child {\n margin-left: -15px;\n margin-right: auto;\n }\n .navbar-right.flip {\n float: left !important;\n margin-left: -15px;\n margin-right: auto;\n }\n .navbar-right .dropdown-menu {\n left: 0;\n right: auto;\n }\n }\n @media (min-width: 768px) {\n .navbar-text {\n float: right;\n }\n .navbar-text.navbar-right:last-child {\n margin-left: 0;\n margin-right: auto;\n }\n }\n\n .pagination {\n padding-right: 0;\n }\n\n .pagination > li > a,\n .pagination > li > span {\n float: right;\n margin-right: -1px;\n margin-left: 0px;\n }\n\n .pagination > li:first-child > a,\n .pagination > li:first-child > span {\n margin-left: 0;\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n }\n\n .pagination > li:last-child > a,\n .pagination > li:last-child > span {\n margin-right: -1px;\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n }\n\n .pager {\n padding-right: 0;\n padding-left: initial;\n }\n\n .pager .next > a,\n .pager .next > span {\n float: left;\n }\n\n .pager .previous > a,\n .pager .previous > span {\n float: right;\n }\n\n .nav-pills > li > a > .badge {\n margin-left: 0px;\n margin-right: 3px;\n }\n\n .list-group-item > .badge {\n float: left;\n }\n\n .list-group-item > .badge + .badge {\n margin-left: 5px;\n margin-right: auto;\n }\n\n .alert-dismissable,\n .alert-dismissible {\n padding-left: 35px;\n padding-right: 15px;\n }\n\n .alert-dismissable .close,\n .alert-dismissible .close {\n right: auto;\n left: -21px;\n }\n\n .progress-bar {\n float: right;\n }\n\n .media > .pull-left {\n margin-right: 10px;\n }\n\n .media > .pull-left.flip {\n margin-right: 0;\n margin-left: 10px;\n }\n\n .media > .pull-right {\n margin-left: 10px;\n }\n\n .media > .pull-right.flip {\n margin-left: 0;\n margin-right: 10px;\n }\n\n .media-right,\n .media > .pull-right {\n padding-right: 10px;\n padding-left: initial;\n }\n\n .media-left,\n .media > .pull-left {\n padding-left: 10px;\n padding-right: initial;\n }\n\n .media-list {\n padding-right: 0;\n padding-left: initial;\n list-style: none;\n }\n\n .list-group {\n padding-right: 0;\n padding-left: initial;\n }\n\n .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n .panel\n > .table-responsive:first-child\n > .table:first-child\n > tbody:first-child\n > tr:first-child\n th:first-child {\n border-top-right-radius: 3px;\n border-top-left-radius: 0;\n }\n\n .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 0;\n }\n\n .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n border-top-right-radius: 0;\n }\n\n .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n border-top-left-radius: 0;\n }\n\n .panel > .table-bordered > thead > tr > th:first-child,\n .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n .panel > .table-bordered > tbody > tr > th:first-child,\n .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .panel > .table-bordered > tfoot > tr > th:first-child,\n .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .panel > .table-bordered > thead > tr > td:first-child,\n .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n .panel > .table-bordered > tbody > tr > td:first-child,\n .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .panel > .table-bordered > tfoot > tr > td:first-child,\n .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-right: 0;\n border-left: none;\n }\n\n .panel > .table-bordered > thead > tr > th:last-child,\n .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n .panel > .table-bordered > tbody > tr > th:last-child,\n .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .panel > .table-bordered > tfoot > tr > th:last-child,\n .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .panel > .table-bordered > thead > tr > td:last-child,\n .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n .panel > .table-bordered > tbody > tr > td:last-child,\n .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .panel > .table-bordered > tfoot > tr > td:last-child,\n .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: none;\n border-left: 0;\n }\n\n .embed-responsive .embed-responsive-item,\n .embed-responsive iframe,\n .embed-responsive embed,\n .embed-responsive object {\n right: 0;\n left: auto;\n }\n\n .close {\n float: left;\n }\n\n .modal-footer {\n text-align: left;\n }\n\n .modal-footer.flip {\n text-align: right;\n }\n\n .modal-footer .btn + .btn {\n margin-left: auto;\n margin-right: 5px;\n }\n\n .modal-footer .btn-group .btn + .btn {\n margin-right: -1px;\n margin-left: auto;\n }\n\n .modal-footer .btn-block + .btn-block {\n margin-right: 0;\n margin-left: auto;\n }\n\n .popover {\n left: auto;\n text-align: right;\n }\n\n .popover.top > .arrow {\n right: 50%;\n left: auto;\n margin-right: -11px;\n margin-left: auto;\n }\n\n .popover.top > .arrow:after {\n margin-right: -10px;\n margin-left: auto;\n }\n\n .popover.bottom > .arrow {\n right: 50%;\n left: auto;\n margin-right: -11px;\n margin-left: auto;\n }\n\n .popover.bottom > .arrow:after {\n margin-right: -10px;\n margin-left: auto;\n }\n\n .carousel-control {\n right: 0;\n bottom: 0;\n }\n\n .carousel-control.left {\n right: auto;\n left: 0;\n background-image: -webkit-linear-gradient(\n left,\n color-stop(rgba(0, 0, 0, 0.5) 0%),\n color-stop(rgba(0, 0, 0, 0.0001) 100%)\n );\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n }\n\n .carousel-control.right {\n left: auto;\n right: 0;\n background-image: -webkit-linear-gradient(\n left,\n color-stop(rgba(0, 0, 0, 0.0001) 0%),\n color-stop(rgba(0, 0, 0, 0.5) 100%)\n );\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n }\n\n .carousel-control .icon-prev,\n .carousel-control .glyphicon-chevron-left {\n left: 50%;\n right: auto;\n margin-right: -10px;\n }\n\n .carousel-control .icon-next,\n .carousel-control .glyphicon-chevron-right {\n right: 50%;\n left: auto;\n margin-left: -10px;\n }\n\n .carousel-indicators {\n right: 50%;\n left: 0;\n margin-right: -30%;\n margin-left: 0;\n padding-left: 0;\n }\n\n @media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: 0;\n margin-right: -15px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-left: 0;\n margin-right: -15px;\n }\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n }\n\n .pull-right.flip {\n float: left !important;\n }\n\n .pull-left.flip {\n float: right !important;\n }\n }\n}\n","/* @preserve\n Copyright (c) 2005-2016, Mendix bv. All rights reserved.\n See mxclientsystem/licenses.txt for third party licenses that apply.\n*/\n\n/*\n\tEssential styles that themes can inherit.\n\tIn other words, works but doesn't look great.\n*/\n\n@mixin mxui() {\n /****\n\t\tGENERIC PIECES\n ****/\n\n .dijitReset {\n /* Use this style to null out padding, margin, border in your template elements\n\t\tso that page specific styles don't break them.\n\t\t- Use in all TABLE, TR and TD tags.\n\t*/\n margin: 0;\n border: 0;\n padding: 0;\n font: inherit;\n line-height: normal;\n color: inherit;\n }\n .dj_a11y .dijitReset {\n -moz-appearance: none; /* remove predefined high-contrast styling in Firefox */\n }\n\n .dijitInline {\n /* To inline block elements.\n\t\tSimilar to InlineBox below, but this has fewer side-effects in Moz.\n\t\tAlso, apparently works on a DIV as well as a FIELDSET.\n\t*/\n display: inline-block; /* webkit and FF3 */\n border: 0;\n padding: 0;\n vertical-align: middle;\n }\n\n table.dijitInline {\n /* To inline tables with a given width set */\n display: inline-table;\n box-sizing: content-box;\n }\n\n .dijitHidden {\n /* To hide unselected panes in StackContainer etc. */\n position: absolute; /* remove from normal document flow to simulate display: none */\n visibility: hidden; /* hide element from view, but don't break scrolling, see #18612 */\n }\n .dijitHidden * {\n visibility: hidden !important; /* hide visibility:visible descendants of class=dijitHidden nodes, see #18799 */\n }\n\n .dijitVisible {\n /* To show selected pane in StackContainer etc. */\n display: block !important; /* override user's display:none setting via style setting or indirectly via class */\n position: relative; /* to support setting width/height, see #2033 */\n visibility: visible;\n }\n\n .dj_ie6 .dijitComboBox .dijitInputContainer,\n .dijitInputContainer {\n /* for positioning of placeHolder */\n overflow: hidden;\n float: none !important; /* needed to squeeze the INPUT in */\n position: relative;\n }\n .dj_ie7 .dijitInputContainer {\n float: left !important; /* needed by IE to squeeze the INPUT in */\n clear: left;\n display: inline-block !important; /* to fix wrong text alignment in textdir=rtl text box */\n }\n\n .dj_ie .dijitSelect input,\n .dj_ie input.dijitTextBox,\n .dj_ie .dijitTextBox input {\n font-size: 100%;\n }\n .dijitSelect .dijitButtonText {\n float: left;\n vertical-align: top;\n }\n table.dijitSelect {\n padding: 0 !important; /* messes up border alignment */\n border-collapse: separate; /* so jsfiddle works with Normalized CSS checked */\n }\n .dijitTextBox .dijitSpinnerButtonContainer,\n .dijitTextBox .dijitArrowButtonContainer,\n .dijitValidationTextBox .dijitValidationContainer {\n float: right;\n text-align: center;\n }\n .dijitSelect input.dijitInputField,\n .dijitTextBox input.dijitInputField {\n /* override unreasonable user styling of buttons and icons */\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .dijitValidationTextBox .dijitValidationContainer {\n display: none;\n }\n\n .dijitTeeny {\n font-size: 1px;\n line-height: 1px;\n }\n\n .dijitOffScreen {\n /* these class attributes should supersede any inline positioning style */\n position: absolute !important;\n left: -10000px !important;\n top: -10000px !important;\n }\n\n /*\n * Popup items have a wrapper div (dijitPopup)\n * with the real popup inside, and maybe an iframe too\n */\n .dijitPopup {\n position: absolute;\n background-color: transparent;\n margin: 0;\n border: 0;\n padding: 0;\n -webkit-overflow-scrolling: touch;\n }\n\n .dijitPositionOnly {\n /* Null out all position-related properties */\n padding: 0 !important;\n border: 0 !important;\n background-color: transparent !important;\n background-image: none !important;\n height: auto !important;\n width: auto !important;\n }\n\n .dijitNonPositionOnly {\n /* Null position-related properties */\n float: none !important;\n position: static !important;\n margin: 0 0 0 0 !important;\n vertical-align: middle !important;\n }\n\n .dijitBackgroundIframe {\n /* iframe used to prevent problems with PDF or other applets overlaying menus etc */\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n z-index: -1;\n border: 0;\n padding: 0;\n margin: 0;\n }\n\n .dijitDisplayNone {\n /* hide something. Use this as a class rather than element.style so another class can override */\n display: none !important;\n }\n\n .dijitContainer {\n /* for all layout containers */\n overflow: hidden; /* need on IE so something can be reduced in size, and so scrollbars aren't temporarily displayed when resizing */\n }\n\n /****\n\t\tA11Y\n ****/\n .dj_a11y .dijitIcon,\n .dj_a11y div.dijitArrowButtonInner, /* is this only for Spinner? if so, it should be deleted */\n .dj_a11y span.dijitArrowButtonInner,\n .dj_a11y img.dijitArrowButtonInner,\n .dj_a11y .dijitCalendarIncrementControl,\n .dj_a11y .dijitTreeExpando {\n /* hide icon nodes in high contrast mode; when necessary they will be replaced by character equivalents\n\t * exception for input.dijitArrowButtonInner, because the icon and character are controlled by the same node */\n display: none;\n }\n .dijitSpinner div.dijitArrowButtonInner {\n display: block; /* override previous rule */\n }\n\n .dj_a11y .dijitA11ySideArrow {\n display: inline !important; /* display text instead */\n cursor: pointer;\n }\n\n /*\n * Since we can't use shading in a11y mode, and since the underline indicates today's date,\n * use a border to show the selected date.\n * Avoid screen jitter when switching selected date by compensating for the selected node's\n * border w/padding on other nodes.\n */\n .dj_a11y .dijitCalendarDateLabel {\n padding: 1px;\n border: 0px !important;\n }\n .dj_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel {\n border-style: solid !important;\n border-width: 1px !important;\n padding: 0;\n }\n .dj_a11y .dijitCalendarDateTemplate {\n padding-bottom: 0.1em !important; /* otherwise bottom border doesn't appear on IE */\n border: 0px !important;\n }\n .dj_a11y .dijitButtonNode {\n border: black outset medium !important;\n\n /* In claro, hovering a toolbar button reduces padding and adds a border.\n\t * Not needed in a11y mode since Toolbar buttons always have a border.\n\t */\n padding: 0 !important;\n }\n .dj_a11y .dijitArrowButton {\n padding: 0 !important;\n }\n\n .dj_a11y .dijitButtonContents {\n margin: 0.15em; /* Margin needed to make focus outline visible */\n }\n\n .dj_a11y .dijitTextBoxReadOnly .dijitInputField,\n .dj_a11y .dijitTextBoxReadOnly .dijitButtonNode {\n border-style: outset !important;\n border-width: medium !important;\n border-color: #999 !important;\n color: #999 !important;\n }\n\n /* button inner contents - labels, icons etc. */\n .dijitButtonNode * {\n vertical-align: middle;\n }\n .dijitSelect .dijitArrowButtonInner,\n .dijitButtonNode .dijitArrowButtonInner {\n /* the arrow icon node */\n background: no-repeat center;\n width: 12px;\n height: 12px;\n direction: ltr; /* needed by IE/RTL */\n }\n\n /****\n\t3-element borders: ( dijitLeft + dijitStretch + dijitRight )\n\tThese were added for rounded corners on dijit.form.*Button but never actually used.\n ****/\n\n .dijitLeft {\n /* Left part of a 3-element border */\n background-position: left top;\n background-repeat: no-repeat;\n }\n\n .dijitStretch {\n /* Middle (stretchy) part of a 3-element border */\n white-space: nowrap; /* MOW: move somewhere else */\n background-repeat: repeat-x;\n }\n\n .dijitRight {\n /* Right part of a 3-element border */\n background-position: right top;\n background-repeat: no-repeat;\n }\n\n /* Buttons */\n .dj_gecko .dj_a11y .dijitButtonDisabled .dijitButtonNode {\n opacity: 0.5;\n }\n\n .dijitToggleButton,\n .dijitButton,\n .dijitDropDownButton,\n .dijitComboButton {\n /* outside of button */\n margin: 0.2em;\n vertical-align: middle;\n }\n\n .dijitButtonContents {\n display: block; /* to make focus border rectangular */\n }\n td.dijitButtonContents {\n display: table-cell; /* but don't affect Select, ComboButton */\n }\n\n .dijitButtonNode img {\n /* make text and images line up cleanly */\n vertical-align: middle;\n /*margin-bottom:.2em;*/\n }\n\n .dijitToolbar .dijitComboButton {\n /* because Toolbar only draws a border around the hovered thing */\n border-collapse: separate;\n }\n\n .dijitToolbar .dijitToggleButton,\n .dijitToolbar .dijitButton,\n .dijitToolbar .dijitDropDownButton,\n .dijitToolbar .dijitComboButton {\n margin: 0;\n }\n\n .dijitToolbar .dijitButtonContents {\n /* just because it used to be this way */\n padding: 1px 2px;\n }\n\n .dj_webkit .dijitToolbar .dijitDropDownButton {\n padding-left: 0.3em;\n }\n .dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner {\n padding: 0;\n }\n\n .dijitSelect {\n border: 1px solid gray;\n }\n .dijitButtonNode {\n /* Node that is acting as a button -- may or may not be a BUTTON element */\n border: 1px solid gray;\n margin: 0;\n line-height: normal;\n vertical-align: middle;\n text-align: center;\n white-space: nowrap;\n }\n .dj_webkit .dijitSpinner .dijitSpinnerButtonContainer {\n /* apparent WebKit bug where messing with the font coupled with line-height:normal X 2 (dijitReset & dijitButtonNode)\n\tcan be different than just a single line-height:normal, visible in InlineEditBox/Spinner */\n line-height: inherit;\n }\n .dijitTextBox .dijitButtonNode {\n border-width: 0;\n }\n\n .dijitSelect,\n .dijitSelect *,\n .dijitButtonNode,\n .dijitButtonNode * {\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n }\n\n .dj_ie .dijitButtonNode {\n /* ensure hasLayout */\n zoom: 1;\n }\n\n .dj_ie .dijitButtonNode button {\n /*\n\t\tdisgusting hack to get rid of spurious padding around button elements\n\t\ton IE. MSIE is truly the web's boat anchor.\n\t*/\n overflow: visible;\n }\n\n div.dijitArrowButton {\n float: right;\n }\n\n /******\n\tTextBox related.\n\tEverything that has an \n*******/\n\n .dijitTextBox {\n border: solid black 1px;\n width: 15em; /* need to set default size on outer node since inner nodes say and . user can override */\n vertical-align: middle;\n }\n\n .dijitTextBoxReadOnly,\n .dijitTextBoxDisabled {\n color: gray;\n }\n .dj_safari .dijitTextBoxDisabled input {\n color: #b0b0b0; /* because Safari lightens disabled input/textarea no matter what color you specify */\n }\n .dj_safari textarea.dijitTextAreaDisabled {\n color: #333; /* because Safari lightens disabled input/textarea no matter what color you specify */\n }\n .dj_gecko .dijitTextBoxReadOnly input.dijitInputField, /* disable arrow and validation presentation inputs but allow real input for text selection */\n .dj_gecko .dijitTextBoxDisabled input {\n -moz-user-input: none; /* prevent focus of disabled textbox buttons */\n }\n\n .dijitPlaceHolder {\n /* hint text that appears in a textbox until user starts typing */\n color: #aaaaaa;\n font-style: italic;\n position: absolute;\n top: 0;\n left: 0;\n white-space: nowrap;\n pointer-events: none; /* so cut/paste context menu shows up when right clicking */\n }\n\n .dijitTimeTextBox {\n width: 8em;\n }\n\n /* rules for webkit to deal with fuzzy blue focus border */\n .dijitTextBox input:focus {\n outline: none; /* blue fuzzy line looks wrong on combobox or something w/validation icon showing */\n }\n .dijitTextBoxFocused {\n outline: 5px -webkit-focus-ring-color;\n }\n\n .dijitSelect input,\n .dijitTextBox input {\n float: left; /* needed by IE to remove secret margin */\n }\n .dj_ie6 input.dijitTextBox,\n .dj_ie6 .dijitTextBox input {\n float: none;\n }\n .dijitInputInner {\n /* for when an is embedded inside an inline-block with a size and border */\n border: 0 !important;\n background-color: transparent !important;\n width: 100% !important;\n /* IE dislikes horizontal tweaking combined with width:100% so punish everyone for consistency */\n padding-left: 0 !important;\n padding-right: 0 !important;\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .dj_a11y .dijitTextBox input {\n margin: 0 !important;\n }\n .dijitValidationTextBoxError input.dijitValidationInner,\n .dijitSelect input,\n .dijitTextBox input.dijitArrowButtonInner {\n /*
used to display arrow icon/validation icon, or in arrow character in high contrast mode.\n\t * The css below is a trick to hide the character in non-high-contrast mode\n\t */\n text-indent: -2em !important;\n direction: ltr !important;\n text-align: left !important;\n height: auto !important;\n }\n .dj_ie .dijitSelect input,\n .dj_ie .dijitTextBox input,\n .dj_ie input.dijitTextBox {\n overflow-y: visible; /* inputs need help expanding when padding is added or line-height is adjusted */\n line-height: normal; /* strict mode */\n }\n .dijitSelect .dijitSelectLabel span {\n line-height: 100%;\n }\n .dj_ie .dijitSelect .dijitSelectLabel {\n line-height: normal;\n }\n .dj_ie6 .dijitSelect .dijitSelectLabel,\n .dj_ie7 .dijitSelect .dijitSelectLabel,\n .dj_ie8 .dijitSelect .dijitSelectLabel,\n .dj_iequirks .dijitSelect .dijitSelectLabel,\n .dijitSelect td,\n .dj_ie6 .dijitSelect input,\n .dj_iequirks .dijitSelect input,\n .dj_ie6 .dijitSelect .dijitValidationContainer,\n .dj_ie6 .dijitTextBox input,\n .dj_ie6 input.dijitTextBox,\n .dj_iequirks .dijitTextBox input.dijitValidationInner,\n .dj_iequirks .dijitTextBox input.dijitArrowButtonInner,\n .dj_iequirks .dijitTextBox input.dijitSpinnerButtonInner,\n .dj_iequirks .dijitTextBox input.dijitInputInner,\n .dj_iequirks input.dijitTextBox {\n line-height: 100%; /* IE7 problem where the icon is vertically way too low w/o this */\n }\n .dj_a11y input.dijitValidationInner,\n .dj_a11y input.dijitArrowButtonInner {\n /* (in high contrast mode) revert rules from above so character displays */\n text-indent: 0 !important;\n width: 1em !important;\n color: black !important;\n }\n .dijitValidationTextBoxError .dijitValidationContainer {\n display: inline;\n cursor: default;\n }\n\n /* ComboBox & Spinner */\n\n .dijitSpinner .dijitSpinnerButtonContainer,\n .dijitComboBox .dijitArrowButtonContainer {\n /* dividing line between input area and up/down button(s) for ComboBox and Spinner */\n border-width: 0 0 0 1px !important; /* !important needed due to wayward \".theme .dijitButtonNode\" rules */\n }\n .dj_a11y .dijitSelect .dijitArrowButtonContainer,\n .dijitToolbar .dijitComboBox .dijitArrowButtonContainer {\n /* overrides above rule plus mirror-image rule in dijit_rtl.css to have no divider when ComboBox in Toolbar */\n border-width: 0 !important;\n }\n\n .dijitComboBoxMenu {\n /* Drop down menu is implemented as
... but we don't want circles before each item */\n list-style-type: none;\n }\n .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {\n /* dividing line between input area and up/down button(s) for ComboBox and Spinner */\n border-width: 0;\n }\n .dj_ie .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {\n clear: both; /* IE workaround */\n }\n\n .dj_ie .dijitToolbar .dijitComboBox {\n /* make combobox buttons align properly with other buttons in a toolbar */\n vertical-align: middle;\n }\n\n /* Spinner */\n\n .dijitTextBox .dijitSpinnerButtonContainer {\n width: 1em;\n position: relative !important;\n overflow: hidden;\n }\n .dijitSpinner .dijitSpinnerButtonInner {\n width: 1em;\n visibility: hidden !important; /* just a sizing element */\n overflow-x: hidden;\n }\n .dijitComboBox .dijitButtonNode,\n .dijitSpinnerButtonContainer .dijitButtonNode {\n border-width: 0;\n }\n .dj_a11y .dijitSpinnerButtonContainer .dijitButtonNode {\n border-width: 0px !important;\n border-style: solid !important;\n }\n .dj_a11y .dijitTextBox .dijitSpinnerButtonContainer,\n .dj_a11y .dijitSpinner .dijitArrowButtonInner,\n .dj_a11y .dijitSpinnerButtonContainer input {\n width: 1em !important;\n }\n .dj_a11y .dijitSpinner .dijitArrowButtonInner {\n margin: 0 auto !important; /* should auto-center */\n }\n .dj_ie .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n padding-left: 0.3em !important;\n padding-right: 0.3em !important;\n margin-left: 0.3em !important;\n margin-right: 0.3em !important;\n width: 1.4em !important;\n }\n .dj_ie7 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n padding-left: 0 !important; /* manually center INPUT: character is .5em and total width = 1em */\n padding-right: 0 !important;\n width: 1em !important;\n }\n .dj_ie6 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n margin-left: 0.1em !important;\n margin-right: 0.1em !important;\n width: 1em !important;\n }\n .dj_iequirks .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n margin-left: 0 !important;\n margin-right: 0 !important;\n width: 2em !important;\n }\n .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {\n /* note: .dijitInputLayoutContainer makes this rule override .dijitArrowButton settings\n\t * for dijit.form.Button\n\t */\n padding: 0;\n position: absolute !important;\n right: 0;\n float: none;\n height: 50%;\n width: 100%;\n bottom: auto;\n left: 0;\n right: auto;\n }\n .dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {\n width: auto;\n }\n .dj_a11y .dijitSpinnerButtonContainer .dijitArrowButton {\n overflow: visible !important;\n }\n .dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton {\n top: 50%;\n border-top-width: 1px !important;\n }\n .dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton {\n top: 0;\n }\n .dijitSpinner .dijitArrowButtonInner {\n margin: auto;\n overflow-x: hidden;\n height: 100% !important;\n }\n .dj_iequirks .dijitSpinner .dijitArrowButtonInner {\n height: auto !important;\n }\n .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n transform: scale(0.5);\n transform-origin: left top;\n padding-top: 0;\n padding-bottom: 0;\n padding-left: 0 !important;\n padding-right: 0 !important;\n width: 100%;\n visibility: hidden;\n }\n .dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n zoom: 50%; /* emulate transform: scale(0.5) */\n }\n .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner {\n overflow: hidden;\n }\n\n .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {\n width: 100%;\n }\n .dj_iequirks .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {\n width: 1em; /* matches .dj_a11y .dijitTextBox .dijitSpinnerButtonContainer rule - 100% is the whole screen width in quirks */\n }\n .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n vertical-align: top;\n visibility: visible;\n }\n .dj_a11y .dijitSpinnerButtonContainer {\n width: 1em;\n }\n\n /****\n\t\tdijit.form.CheckBox\n \t &\n \t\tdijit.form.RadioButton\n ****/\n\n .dijitCheckBox,\n .dijitRadio,\n .dijitCheckBoxInput {\n padding: 0;\n border: 0;\n width: 16px;\n height: 16px;\n background-position: center center;\n background-repeat: no-repeat;\n overflow: hidden;\n }\n\n .dijitCheckBox input,\n .dijitRadio input {\n margin: 0;\n padding: 0;\n display: block;\n }\n\n .dijitCheckBoxInput {\n /* place the actual input on top, but invisible */\n opacity: 0;\n }\n\n .dj_ie .dijitCheckBoxInput {\n filter: alpha(opacity=0);\n }\n\n .dj_a11y .dijitCheckBox,\n .dj_a11y .dijitRadio {\n /* in a11y mode we display the native checkbox (not the icon), so don't restrict the size */\n width: auto !important;\n height: auto !important;\n }\n .dj_a11y .dijitCheckBoxInput {\n opacity: 1;\n filter: none;\n width: auto;\n height: auto;\n }\n\n .dj_a11y .dijitFocusedLabel {\n /* for checkboxes or radio buttons in high contrast mode, use border rather than outline to indicate focus (outline does not work in FF)*/\n border: 1px dotted;\n outline: 0px !important;\n }\n\n /****\n\t\tdijit.ProgressBar\n ****/\n\n .dijitProgressBar {\n z-index: 0; /* so z-index settings below have no effect outside of the ProgressBar */\n }\n .dijitProgressBarEmpty {\n /* outer container and background of the bar that's not finished yet*/\n position: relative;\n overflow: hidden;\n border: 1px solid black; /* a11y: border necessary for high-contrast mode */\n z-index: 0; /* establish a stacking context for this progress bar */\n }\n\n .dijitProgressBarFull {\n /* outer container for background of bar that is finished */\n position: absolute;\n overflow: hidden;\n z-index: -1;\n top: 0;\n width: 100%;\n }\n .dj_ie6 .dijitProgressBarFull {\n height: 1.6em;\n }\n\n .dijitProgressBarTile {\n /* inner container for finished portion */\n position: absolute;\n overflow: hidden;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: 0;\n padding: 0;\n width: 100%; /* needed for IE/quirks */\n height: auto;\n background-color: #aaa;\n background-attachment: fixed;\n }\n\n .dj_a11y .dijitProgressBarTile {\n /* a11y: The border provides visibility in high-contrast mode */\n border-width: 2px;\n border-style: solid;\n background-color: transparent !important;\n }\n\n .dj_ie6 .dijitProgressBarTile {\n /* width:auto works in IE6 with position:static but not position:absolute */\n position: static;\n /* height:auto or 100% does not work in IE6 */\n height: 1.6em;\n }\n\n .dijitProgressBarIndeterminate .dijitProgressBarTile {\n /* animated gif for 'indeterminate' mode */\n }\n\n .dijitProgressBarIndeterminateHighContrastImage {\n display: none;\n }\n\n .dj_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage {\n display: block;\n position: absolute;\n top: 0;\n bottom: 0;\n margin: 0;\n padding: 0;\n width: 100%;\n height: auto;\n }\n\n .dijitProgressBarLabel {\n display: block;\n position: static;\n width: 100%;\n text-align: center;\n background-color: transparent !important;\n }\n\n /****\n\t\tdijit.Tooltip\n ****/\n\n .dijitTooltip {\n position: absolute;\n z-index: 2000;\n display: block;\n /* make visible but off screen */\n left: 0;\n top: -10000px;\n overflow: visible;\n }\n\n .dijitTooltipContainer {\n border: solid black 2px;\n background: #b8b5b5;\n color: black;\n font-size: small;\n }\n\n .dijitTooltipFocusNode {\n padding: 2px 2px 2px 2px;\n }\n\n .dijitTooltipConnector {\n position: absolute;\n }\n .dj_a11y .dijitTooltipConnector {\n display: none; /* won't show b/c it's background-image; hide to avoid border gap */\n }\n\n .dijitTooltipData {\n display: none;\n }\n\n /* Layout widgets. This is essential CSS to make layout work (it isn't \"styling\" CSS)\n make sure that the position:absolute in dijitAlign* overrides other classes */\n\n .dijitLayoutContainer {\n position: relative;\n display: block;\n overflow: hidden;\n }\n\n .dijitAlignTop,\n .dijitAlignBottom,\n .dijitAlignLeft,\n .dijitAlignRight {\n position: absolute;\n overflow: hidden;\n }\n\n body .dijitAlignClient {\n position: absolute;\n }\n\n /*\n * BorderContainer\n *\n * .dijitBorderContainer is a stylized layout where panes have border and margin.\n * .dijitBorderContainerNoGutter is a raw layout.\n */\n .dijitBorderContainer,\n .dijitBorderContainerNoGutter {\n position: relative;\n overflow: hidden;\n z-index: 0; /* so z-index settings below have no effect outside of the BorderContainer */\n }\n\n .dijitBorderContainerPane,\n .dijitBorderContainerNoGutterPane {\n position: absolute !important; /* !important to override position:relative in dijitTabContainer etc. */\n z-index: 2; /* above the splitters so that off-by-one browser errors don't cover up border of pane */\n }\n\n .dijitBorderContainer > .dijitTextArea {\n /* On Safari, for SimpleTextArea inside a BorderContainer,\n\t\tdon't want to display the grip to resize */\n resize: none;\n }\n\n .dijitGutter {\n /* gutter is just a place holder for empty space between panes in BorderContainer */\n position: absolute;\n font-size: 1px; /* needed by IE6 even though div is empty, otherwise goes to 15px */\n }\n\n /* SplitContainer\n\n\t'V' == container that splits vertically (up/down)\n\t'H' = horizontal (left/right)\n*/\n\n .dijitSplitter {\n position: absolute;\n overflow: hidden;\n z-index: 10; /* above the panes so that splitter focus is visible on FF, see #7583*/\n background-color: #fff;\n border-color: gray;\n border-style: solid;\n border-width: 0;\n }\n .dj_ie .dijitSplitter {\n z-index: 1; /* behind the panes so that pane borders aren't obscured see test_Gui.html/[14392] */\n }\n\n .dijitSplitterActive {\n z-index: 11 !important;\n }\n\n .dijitSplitterCover {\n position: absolute;\n z-index: -1;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n\n .dijitSplitterCoverActive {\n z-index: 3 !important;\n }\n\n /* #6945: stop mouse events */\n .dj_ie .dijitSplitterCover {\n background: white;\n opacity: 0;\n }\n .dj_ie6 .dijitSplitterCover,\n .dj_ie7 .dijitSplitterCover,\n .dj_ie8 .dijitSplitterCover {\n filter: alpha(opacity=0);\n }\n\n .dijitSplitterH {\n height: 7px;\n border-top: 1px;\n border-bottom: 1px;\n cursor: row-resize;\n -webkit-tap-highlight-color: transparent;\n }\n .dijitSplitterV {\n width: 7px;\n border-left: 1px;\n border-right: 1px;\n cursor: col-resize;\n -webkit-tap-highlight-color: transparent;\n }\n .dijitSplitContainer {\n position: relative;\n overflow: hidden;\n display: block;\n }\n\n .dijitSplitPane {\n position: absolute;\n }\n\n .dijitSplitContainerSizerH,\n .dijitSplitContainerSizerV {\n position: absolute;\n font-size: 1px;\n background-color: ThreeDFace;\n border: 1px solid;\n border-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight;\n margin: 0;\n }\n\n .dijitSplitContainerSizerH .thumb,\n .dijitSplitterV .dijitSplitterThumb {\n overflow: hidden;\n position: absolute;\n top: 49%;\n }\n\n .dijitSplitContainerSizerV .thumb,\n .dijitSplitterH .dijitSplitterThumb {\n position: absolute;\n left: 49%;\n }\n\n .dijitSplitterShadow,\n .dijitSplitContainerVirtualSizerH,\n .dijitSplitContainerVirtualSizerV {\n font-size: 1px;\n background-color: ThreeDShadow;\n opacity: 0.5;\n margin: 0;\n }\n\n .dijitSplitContainerSizerH,\n .dijitSplitContainerVirtualSizerH {\n cursor: col-resize;\n }\n\n .dijitSplitContainerSizerV,\n .dijitSplitContainerVirtualSizerV {\n cursor: row-resize;\n }\n\n .dj_a11y .dijitSplitterH {\n border-top: 1px solid #d3d3d3 !important;\n border-bottom: 1px solid #d3d3d3 !important;\n }\n .dj_a11y .dijitSplitterV {\n border-left: 1px solid #d3d3d3 !important;\n border-right: 1px solid #d3d3d3 !important;\n }\n\n /* ContentPane */\n\n .dijitContentPane {\n display: block;\n overflow: auto; /* if we don't have this (or overflow:hidden), then Widget.resizeTo() doesn't make sense for ContentPane */\n -webkit-overflow-scrolling: touch;\n }\n\n .dijitContentPaneSingleChild {\n /*\n\t * if the ContentPane holds a single layout widget child which is being sized to match the content pane,\n\t * then the ContentPane should never get a scrollbar (but it does due to browser bugs, see #9449\n\t */\n overflow: hidden;\n }\n\n .dijitContentPaneLoading .dijitIconLoading,\n .dijitContentPaneError .dijitIconError {\n margin-right: 9px;\n }\n\n /* TitlePane and Fieldset */\n\n .dijitTitlePane {\n display: block;\n overflow: hidden;\n }\n .dijitFieldset {\n border: 1px solid gray;\n }\n .dijitTitlePaneTitle,\n .dijitFieldsetTitle {\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n }\n .dijitTitlePaneTitleFixedOpen,\n .dijitTitlePaneTitleFixedClosed,\n .dijitFieldsetTitleFixedOpen,\n .dijitFieldsetTitleFixedClosed {\n /* TitlePane or Fieldset that cannot be toggled */\n cursor: default;\n }\n .dijitTitlePaneTitle * {\n vertical-align: middle;\n }\n .dijitTitlePane .dijitArrowNodeInner,\n .dijitFieldset .dijitArrowNodeInner {\n /* normally, hide arrow text in favor of icon */\n display: none;\n }\n .dj_a11y .dijitTitlePane .dijitArrowNodeInner,\n .dj_a11y .dijitFieldset .dijitArrowNodeInner {\n /* ... except in a11y mode, then show text arrow */\n display: inline;\n font-family: monospace; /* because - and + are different widths */\n }\n .dj_a11y .dijitTitlePane .dijitArrowNode,\n .dj_a11y .dijitFieldset .dijitArrowNode {\n /* ... and hide icon (TODO: just point dijitIcon class on the icon, and it hides automatically) */\n display: none;\n }\n .dijitTitlePaneTitleFixedOpen .dijitArrowNode,\n .dijitTitlePaneTitleFixedOpen .dijitArrowNodeInner,\n .dijitTitlePaneTitleFixedClosed .dijitArrowNode,\n .dijitTitlePaneTitleFixedClosed .dijitArrowNodeInner,\n .dijitFieldsetTitleFixedOpen .dijitArrowNode,\n .dijitFieldsetTitleFixedOpen .dijitArrowNodeInner,\n .dijitFieldsetTitleFixedClosed .dijitArrowNode,\n .dijitFieldsetTitleFixedClosed .dijitArrowNodeInner {\n /* don't show the open close icon or text arrow; it makes the user think the pane is closable */\n display: none !important; /* !important to override above a11y rules to show text arrow */\n }\n\n .dj_ie6 .dijitTitlePaneContentOuter,\n .dj_ie6 .dijitTitlePane .dijitTitlePaneTitle {\n /* force hasLayout to ensure borders etc, show up */\n zoom: 1;\n }\n\n /* Color Palette\n * Sizes designed so that table cell positions match icons in underlying image,\n * which appear at 20x20 intervals.\n */\n\n .dijitColorPalette {\n border: 1px solid #999;\n background: #fff;\n position: relative;\n }\n\n .dijitColorPalette .dijitPaletteTable {\n /* Table that holds the palette cells, and overlays image file with color swatches.\n\t * padding/margin to align table with image.\n\t */\n padding: 2px 3px 3px 3px;\n position: relative;\n overflow: hidden;\n outline: 0;\n border-collapse: separate;\n }\n .dj_ie6 .dijitColorPalette .dijitPaletteTable,\n .dj_ie7 .dijitColorPalette .dijitPaletteTable,\n .dj_iequirks .dijitColorPalette .dijitPaletteTable {\n /* using padding above so that focus border isn't cutoff on moz/webkit,\n\t * but using margin on IE because padding doesn't seem to work\n\t */\n padding: 0;\n margin: 2px 3px 3px 3px;\n }\n\n .dijitColorPalette .dijitPaletteCell {\n /* in the */\n font-size: 1px;\n vertical-align: middle;\n text-align: center;\n background: none;\n }\n .dijitColorPalette .dijitPaletteImg {\n /* Called dijitPaletteImg for back-compat, this actually wraps the color swatch with a border and padding */\n padding: 1px; /* white area between gray border and color swatch */\n border: 1px solid #999;\n margin: 2px 1px;\n cursor: default;\n font-size: 1px; /* prevent from getting bigger just to hold a character */\n }\n .dj_gecko .dijitColorPalette .dijitPaletteImg {\n padding-bottom: 0; /* workaround rendering glitch on FF, it adds an extra pixel at the bottom */\n }\n .dijitColorPalette .dijitColorPaletteSwatch {\n /* the actual part where the color is */\n width: 14px;\n height: 12px;\n }\n .dijitPaletteTable td {\n padding: 0;\n }\n .dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg {\n /* hovered color swatch */\n border: 1px solid #000;\n }\n\n .dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg,\n .dijitColorPalette .dijitPaletteTable .dijitPaletteCellSelected .dijitPaletteImg {\n border: 2px solid #000;\n margin: 1px 0; /* reduce margin to compensate for increased border */\n }\n\n .dj_a11y .dijitColorPalette .dijitPaletteTable,\n .dj_a11y .dijitColorPalette .dijitPaletteTable * {\n /* table cells are to catch events, but the swatches are in the PaletteImg behind the table */\n background-color: transparent !important;\n }\n\n /* AccordionContainer */\n\n .dijitAccordionContainer {\n border: 1px solid #b7b7b7;\n border-top: 0 !important;\n }\n .dijitAccordionTitle {\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n }\n .dijitAccordionTitleSelected {\n cursor: default;\n }\n\n /* images off, high-contrast mode styles */\n .dijitAccordionTitle .arrowTextUp,\n .dijitAccordionTitle .arrowTextDown {\n display: none;\n font-size: 0.65em;\n font-weight: normal !important;\n }\n\n .dj_a11y .dijitAccordionTitle .arrowTextUp,\n .dj_a11y .dijitAccordionTitleSelected .arrowTextDown {\n display: inline;\n }\n\n .dj_a11y .dijitAccordionTitleSelected .arrowTextUp {\n display: none;\n }\n\n .dijitAccordionChildWrapper {\n /* this is the node whose height is adjusted */\n overflow: hidden;\n }\n\n /* Calendar */\n\n .dijitCalendarContainer table {\n width: auto; /* in case user has specified a width for the TABLE nodes, see #10553 */\n clear: both; /* clear margin created for left/right month arrows; needed on IE10 for CalendarLite */\n }\n .dijitCalendarContainer th,\n .dijitCalendarContainer td {\n padding: 0;\n vertical-align: middle;\n }\n\n .dijitCalendarMonthContainer {\n text-align: center;\n }\n .dijitCalendarDecrementArrow {\n float: left;\n }\n .dijitCalendarIncrementArrow {\n float: right;\n }\n\n .dijitCalendarYearLabel {\n white-space: nowrap; /* make sure previous, current, and next year appear on same row */\n }\n\n .dijitCalendarNextYear {\n margin: 0 0 0 0.55em;\n }\n\n .dijitCalendarPreviousYear {\n margin: 0 0.55em 0 0;\n }\n\n .dijitCalendarIncrementControl {\n vertical-align: middle;\n }\n\n .dijitCalendarIncrementControl,\n .dijitCalendarDateTemplate,\n .dijitCalendarMonthLabel,\n .dijitCalendarPreviousYear,\n .dijitCalendarNextYear {\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n }\n\n .dijitCalendarDisabledDate {\n color: gray;\n text-decoration: line-through;\n cursor: default;\n }\n\n .dijitSpacer {\n /* don't display it, but make it affect the width */\n position: relative;\n height: 1px;\n overflow: hidden;\n visibility: hidden;\n }\n\n /* Styling for month drop down list */\n\n .dijitCalendarMonthMenu .dijitCalendarMonthLabel {\n text-align: center;\n }\n\n /* Menu */\n\n .dijitMenu {\n border: 1px solid black;\n background-color: white;\n }\n .dijitMenuTable {\n border-collapse: collapse;\n border-width: 0;\n background-color: white;\n }\n\n /* workaround for webkit bug #8427, remove this when it is fixed upstream */\n .dj_webkit .dijitMenuTable td[colspan=\"2\"] {\n border-right: hidden;\n }\n\n .dijitMenuItem {\n text-align: left;\n white-space: nowrap;\n padding: 0.1em 0.2em;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n }\n\n /*\nNo need to show a focus border since it's obvious from the shading, and there's a .dj_a11y .dijitMenuItemSelected\nrule below that handles the high contrast case when there's no shading.\nHiding the focus border also works around webkit bug https://code.google.com/p/chromium/issues/detail?id=125779.\n*/\n .dijitMenuItem:focus {\n outline: none;\n }\n\n .dijitMenuPassive .dijitMenuItemHover,\n .dijitMenuItemSelected {\n /*\n\t * dijitMenuItemHover refers to actual mouse over\n\t * dijitMenuItemSelected is used after a menu has been \"activated\" by\n\t * clicking it, tabbing into it, or being opened from a parent menu,\n\t * and denotes that the menu item has focus or that focus is on a child\n\t * menu\n\t */\n background-color: black;\n color: white;\n }\n\n .dijitMenuItemIcon,\n .dijitMenuExpand {\n background-repeat: no-repeat;\n }\n\n .dijitMenuItemDisabled * {\n /* for a disabled menu item, just set it to mostly transparent */\n opacity: 0.5;\n cursor: default;\n }\n .dj_ie .dj_a11y .dijitMenuItemDisabled,\n .dj_ie .dj_a11y .dijitMenuItemDisabled *,\n .dj_ie .dijitMenuItemDisabled * {\n color: gray;\n filter: alpha(opacity=35);\n }\n\n .dijitMenuItemLabel {\n vertical-align: middle;\n }\n\n .dj_a11y .dijitMenuItemSelected {\n border: 1px dotted black !important; /* for 2.0 use outline instead, to prevent jitter */\n }\n\n .dj_a11y .dijitMenuItemSelected .dijitMenuItemLabel {\n border-width: 1px;\n border-style: solid;\n }\n .dj_ie8 .dj_a11y .dijitMenuItemLabel {\n position: static;\n }\n\n .dijitMenuExpandA11y {\n display: none;\n }\n .dj_a11y .dijitMenuExpandA11y {\n display: inline;\n }\n\n .dijitMenuSeparator td {\n border: 0;\n padding: 0;\n }\n\n /* separator can be two pixels -- set border of either one to 0 to have only one */\n .dijitMenuSeparatorTop {\n height: 50%;\n margin: 0;\n margin-top: 3px;\n font-size: 1px;\n }\n\n .dijitMenuSeparatorBottom {\n height: 50%;\n margin: 0;\n margin-bottom: 3px;\n font-size: 1px;\n }\n\n /* CheckedMenuItem and RadioMenuItem */\n .dijitMenuItemIconChar {\n display: none; /* don't display except in high contrast mode */\n visibility: hidden; /* for high contrast mode when menuitem is unchecked: leave space for when it is checked */\n }\n .dj_a11y .dijitMenuItemIconChar {\n display: inline; /* display character in high contrast mode, since icon doesn't show */\n }\n .dijitCheckedMenuItemChecked .dijitMenuItemIconChar,\n .dijitRadioMenuItemChecked .dijitMenuItemIconChar {\n visibility: visible; /* menuitem is checked */\n }\n .dj_ie .dj_a11y .dijitMenuBar .dijitMenuItem {\n /* so bottom border of MenuBar appears on IE7 in high-contrast mode */\n margin: 0;\n }\n\n /* StackContainer */\n\n .dijitStackController .dijitToggleButtonChecked * {\n cursor: default; /* because pressing it has no effect */\n }\n\n /***\nTabContainer\n\nMain class hierarchy:\n\n.dijitTabContainer - the whole TabContainer\n .dijitTabController / .dijitTabListContainer-top - wrapper for tab buttons, scroll buttons\n\t .dijitTabListWrapper / .dijitTabContainerTopStrip - outer wrapper for tab buttons (normal width)\n\t\t.nowrapTabStrip / .dijitTabContainerTop-tabs - inner wrapper for tab buttons (50K width)\n .dijitTabPaneWrapper - wrapper for content panes, has all borders except the one between content and tabs\n***/\n\n .dijitTabContainer {\n z-index: 0; /* so z-index settings below have no effect outside of the TabContainer */\n overflow: visible; /* prevent off-by-one-pixel errors from hiding bottom border (opposite tab labels) */\n }\n .dj_ie6 .dijitTabContainer {\n /* workaround IE6 problem when tall content overflows TabContainer, see editor/test_FullScreen.html */\n overflow: hidden;\n }\n .dijitTabContainerNoLayout {\n width: 100%; /* otherwise ScrollingTabController goes to 50K pixels wide */\n }\n\n .dijitTabContainerBottom-tabs,\n .dijitTabContainerTop-tabs,\n .dijitTabContainerLeft-tabs,\n .dijitTabContainerRight-tabs {\n z-index: 1;\n overflow: visible !important; /* so tabs can cover up border adjacent to container */\n }\n\n .dijitTabController {\n z-index: 1;\n }\n .dijitTabContainerBottom-container,\n .dijitTabContainerTop-container,\n .dijitTabContainerLeft-container,\n .dijitTabContainerRight-container {\n z-index: 0;\n overflow: hidden;\n border: 1px solid black;\n }\n .nowrapTabStrip {\n width: 50000px;\n display: block;\n position: relative;\n text-align: left; /* just in case ancestor has non-standard setting */\n z-index: 1;\n }\n .dijitTabListWrapper {\n overflow: hidden;\n z-index: 1;\n }\n\n .dj_a11y .tabStripButton img {\n /* hide the icons (or rather the empty space where they normally appear) because text will appear instead */\n display: none;\n }\n\n .dijitTabContainerTop-tabs {\n border-bottom: 1px solid black;\n }\n .dijitTabContainerTop-container {\n border-top: 0;\n }\n\n .dijitTabContainerLeft-tabs {\n border-right: 1px solid black;\n float: left; /* needed for IE7 RTL mode */\n }\n .dijitTabContainerLeft-container {\n border-left: 0;\n }\n\n .dijitTabContainerBottom-tabs {\n border-top: 1px solid black;\n }\n .dijitTabContainerBottom-container {\n border-bottom: 0;\n }\n\n .dijitTabContainerRight-tabs {\n border-left: 1px solid black;\n float: left; /* needed for IE7 RTL mode */\n }\n .dijitTabContainerRight-container {\n border-right: 0;\n }\n\n div.dijitTabDisabled,\n .dj_ie div.dijitTabDisabled {\n cursor: auto;\n }\n\n .dijitTab {\n position: relative;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n white-space: nowrap;\n z-index: 3;\n }\n .dijitTab * {\n /* make tab icons and close icon line up w/text */\n vertical-align: middle;\n }\n .dijitTabChecked {\n cursor: default; /* because clicking will have no effect */\n }\n\n .dijitTabContainerTop-tabs .dijitTab {\n top: 1px; /* to overlap border on .dijitTabContainerTop-tabs */\n }\n .dijitTabContainerBottom-tabs .dijitTab {\n top: -1px; /* to overlap border on .dijitTabContainerBottom-tabs */\n }\n .dijitTabContainerLeft-tabs .dijitTab {\n left: 1px; /* to overlap border on .dijitTabContainerLeft-tabs */\n }\n .dijitTabContainerRight-tabs .dijitTab {\n left: -1px; /* to overlap border on .dijitTabContainerRight-tabs */\n }\n\n .dijitTabContainerTop-tabs .dijitTab,\n .dijitTabContainerBottom-tabs .dijitTab {\n /* Inline-block */\n display: inline-block; /* webkit and FF3 */\n }\n\n .tabStripButton {\n z-index: 12;\n }\n\n .dijitTabButtonDisabled .tabStripButton {\n display: none;\n }\n\n .dijitTabCloseButton {\n margin-left: 1em;\n }\n\n .dijitTabCloseText {\n display: none;\n }\n\n .dijitTab .tabLabel {\n /* make sure tabs w/close button and w/out close button are same height, even w/small (<15px) font.\n\t * assumes <=15px height for close button icon.\n\t */\n min-height: 15px;\n display: inline-block;\n }\n .dijitNoIcon {\n /* applied to / node when there is no icon specified */\n display: none;\n }\n .dj_ie6 .dijitTab .dijitNoIcon {\n /* because min-height (on .tabLabel, above) doesn't work on IE6 */\n display: inline;\n height: 15px;\n width: 1px;\n }\n\n /* images off, high-contrast mode styles */\n\n .dj_a11y .dijitTabCloseButton {\n background-image: none !important;\n width: auto !important;\n height: auto !important;\n }\n\n .dj_a11y .dijitTabCloseText {\n display: inline;\n }\n\n .dijitTabPane,\n .dijitStackContainer-child,\n .dijitAccordionContainer-child {\n /* children of TabContainer, StackContainer, and AccordionContainer shouldn't have borders\n\t * b/c a border is already there from the TabContainer/StackContainer/AccordionContainer itself.\n\t */\n border: none !important;\n }\n\n /* InlineEditBox */\n .dijitInlineEditBoxDisplayMode {\n border: 1px solid transparent; /* so keyline (border) on hover can appear without screen jump */\n cursor: text;\n }\n\n .dj_a11y .dijitInlineEditBoxDisplayMode,\n .dj_ie6 .dijitInlineEditBoxDisplayMode {\n /* except that IE6 doesn't support transparent borders, nor does high contrast mode */\n border: none;\n }\n\n .dijitInlineEditBoxDisplayModeHover,\n .dj_a11y .dijitInlineEditBoxDisplayModeHover,\n .dj_ie6 .dijitInlineEditBoxDisplayModeHover {\n /* An InlineEditBox in view mode (click this to edit the text) */\n background-color: #e2ebf2;\n border: solid 1px black;\n }\n\n .dijitInlineEditBoxDisplayModeDisabled {\n cursor: default;\n }\n\n /* Tree */\n .dijitTree {\n overflow: auto; /* for scrollbars when Tree has a height setting, and to prevent wrapping around float elements, see #11491 */\n -webkit-tap-highlight-color: transparent;\n }\n\n .dijitTreeContainer {\n float: left; /* for correct highlighting during horizontal scroll, see #16132 */\n }\n\n .dijitTreeIndent {\n /* amount to indent each tree node (relative to parent node) */\n width: 19px;\n }\n\n .dijitTreeRow,\n .dijitTreeContent {\n white-space: nowrap;\n }\n\n .dj_ie .dijitTreeLabel:focus {\n /* workaround IE9 behavior where down arrowing through TreeNodes doesn't show focus outline */\n outline: 1px dotted black;\n }\n\n .dijitTreeRow img {\n /* make the expando and folder icons line up with the label */\n vertical-align: middle;\n }\n\n .dijitTreeContent {\n cursor: default;\n }\n\n .dijitExpandoText {\n display: none;\n }\n\n .dj_a11y .dijitExpandoText {\n display: inline;\n padding-left: 10px;\n padding-right: 10px;\n font-family: monospace;\n border-style: solid;\n border-width: thin;\n cursor: pointer;\n }\n\n .dijitTreeLabel {\n margin: 0 4px;\n }\n\n /* Dialog */\n\n .dijitDialog {\n position: absolute;\n z-index: 999;\n overflow: hidden; /* override overflow: auto; from ContentPane to make dragging smoother */\n }\n\n .dijitDialogTitleBar {\n cursor: move;\n }\n .dijitDialogFixed .dijitDialogTitleBar {\n cursor: default;\n }\n .dijitDialogCloseIcon {\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n }\n .dijitDialogPaneContent {\n -webkit-overflow-scrolling: touch;\n }\n .dijitDialogUnderlayWrapper {\n position: absolute;\n left: 0;\n top: 0;\n z-index: 998;\n display: none;\n background: transparent !important;\n }\n\n .dijitDialogUnderlay {\n background: #eee;\n opacity: 0.5;\n }\n\n .dj_ie .dijitDialogUnderlay {\n filter: alpha(opacity=50);\n }\n\n /* images off, high-contrast mode styles */\n .dj_a11y .dijitSpinnerButtonContainer,\n .dj_a11y .dijitDialog {\n opacity: 1 !important;\n background-color: white !important;\n }\n\n .dijitDialog .closeText {\n display: none;\n /* for the onhover border in high contrast on IE: */\n position: absolute;\n }\n\n .dj_a11y .dijitDialog .closeText {\n display: inline;\n }\n\n /* Slider */\n\n .dijitSliderMoveable {\n z-index: 99;\n position: absolute !important;\n display: block;\n vertical-align: middle;\n }\n\n .dijitSliderMoveableH {\n right: 0;\n }\n .dijitSliderMoveableV {\n right: 50%;\n }\n\n .dj_a11y div.dijitSliderImageHandle,\n .dijitSliderImageHandle {\n margin: 0;\n padding: 0;\n position: relative !important;\n border: 8px solid gray;\n width: 0;\n height: 0;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n }\n .dj_iequirks .dj_a11y .dijitSliderImageHandle {\n font-size: 0;\n }\n .dj_ie7 .dijitSliderImageHandle {\n overflow: hidden; /* IE7 workaround to make slider handle VISIBLE in non-a11y mode */\n }\n .dj_ie7 .dj_a11y .dijitSliderImageHandle {\n overflow: visible; /* IE7 workaround to make slider handle VISIBLE in a11y mode */\n }\n .dj_a11y .dijitSliderFocused .dijitSliderImageHandle {\n border: 4px solid #000;\n height: 8px;\n width: 8px;\n }\n\n .dijitSliderImageHandleV {\n top: -8px;\n right: -50%;\n }\n\n .dijitSliderImageHandleH {\n left: 50%;\n top: -5px;\n vertical-align: top;\n }\n\n .dijitSliderBar {\n border-style: solid;\n border-color: black;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n }\n\n .dijitSliderBarContainerV {\n position: relative;\n height: 100%;\n z-index: 1;\n }\n\n .dijitSliderBarContainerH {\n position: relative;\n z-index: 1;\n }\n\n .dijitSliderBarH {\n height: 4px;\n border-width: 1px 0;\n }\n\n .dijitSliderBarV {\n width: 4px;\n border-width: 0 1px;\n }\n\n .dijitSliderProgressBar {\n background-color: red;\n z-index: 1;\n }\n\n .dijitSliderProgressBarV {\n position: static !important;\n height: 0;\n vertical-align: top;\n text-align: left;\n }\n\n .dijitSliderProgressBarH {\n position: absolute !important;\n width: 0;\n vertical-align: middle;\n overflow: visible;\n }\n\n .dijitSliderRemainingBar {\n overflow: hidden;\n background-color: transparent;\n z-index: 1;\n }\n\n .dijitSliderRemainingBarV {\n height: 100%;\n text-align: left;\n }\n\n .dijitSliderRemainingBarH {\n width: 100% !important;\n }\n\n /* the slider bumper is the space consumed by the slider handle when it hangs over an edge */\n .dijitSliderBumper {\n overflow: hidden;\n z-index: 1;\n }\n\n .dijitSliderBumperV {\n width: 4px;\n height: 8px;\n border-width: 0 1px;\n }\n\n .dijitSliderBumperH {\n width: 8px;\n height: 4px;\n border-width: 1px 0;\n }\n\n .dijitSliderBottomBumper,\n .dijitSliderLeftBumper {\n background-color: red;\n }\n\n .dijitSliderTopBumper,\n .dijitSliderRightBumper {\n background-color: transparent;\n }\n\n .dijitSliderDecoration {\n text-align: center;\n }\n\n .dijitSliderDecorationC,\n .dijitSliderDecorationV {\n position: relative; /* needed for IE+quirks+RTL+vertical (rendering bug) but add everywhere for custom styling consistency but this messes up IE horizontal sliders */\n }\n\n .dijitSliderDecorationH {\n width: 100%;\n }\n\n .dijitSliderDecorationV {\n height: 100%;\n white-space: nowrap;\n }\n\n .dijitSliderButton {\n font-family: monospace;\n margin: 0;\n padding: 0;\n display: block;\n }\n\n .dj_a11y .dijitSliderButtonInner {\n visibility: visible !important;\n }\n\n .dijitSliderButtonContainer {\n text-align: center;\n height: 0; /* ??? */\n }\n .dijitSliderButtonContainer * {\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n }\n\n .dijitSlider .dijitButtonNode {\n padding: 0;\n display: block;\n }\n\n .dijitRuleContainer {\n position: relative;\n overflow: visible;\n }\n\n .dijitRuleContainerV {\n height: 100%;\n line-height: 0;\n float: left;\n text-align: left;\n }\n\n .dj_opera .dijitRuleContainerV {\n line-height: 2%;\n }\n\n .dj_ie .dijitRuleContainerV {\n line-height: normal;\n }\n\n .dj_gecko .dijitRuleContainerV {\n margin: 0 0 1px 0; /* mozilla bug workaround for float:left,height:100% block elements */\n }\n\n .dijitRuleMark {\n position: absolute;\n border: 1px solid black;\n line-height: 0;\n height: 100%;\n }\n\n .dijitRuleMarkH {\n width: 0;\n border-top-width: 0 !important;\n border-bottom-width: 0 !important;\n border-left-width: 0 !important;\n }\n\n .dijitRuleLabelContainer {\n position: absolute;\n }\n\n .dijitRuleLabelContainerH {\n text-align: center;\n display: inline-block;\n }\n\n .dijitRuleLabelH {\n position: relative;\n left: -50%;\n }\n\n .dijitRuleLabelV {\n /* so that long labels don't overflow to multiple rows, or overwrite slider itself */\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n }\n\n .dijitRuleMarkV {\n height: 0;\n border-right-width: 0 !important;\n border-bottom-width: 0 !important;\n border-left-width: 0 !important;\n width: 100%;\n left: 0;\n }\n\n .dj_ie .dijitRuleLabelContainerV {\n margin-top: -0.55em;\n }\n\n .dj_a11y .dijitSliderReadOnly,\n .dj_a11y .dijitSliderDisabled {\n opacity: 0.6;\n }\n .dj_ie .dj_a11y .dijitSliderReadOnly .dijitSliderBar,\n .dj_ie .dj_a11y .dijitSliderDisabled .dijitSliderBar {\n filter: alpha(opacity=40);\n }\n\n /* + and - Slider buttons: override theme settings to display icons */\n .dj_a11y .dijitSlider .dijitSliderButtonContainer div {\n font-family: monospace; /* otherwise hyphen is larger and more vertically centered */\n font-size: 1em;\n line-height: 1em;\n height: auto;\n width: auto;\n margin: 0 4px;\n }\n\n /* Icon-only buttons (often in toolbars) still display the text in high-contrast mode */\n .dj_a11y .dijitButtonContents .dijitButtonText,\n .dj_a11y .dijitTab .tabLabel {\n display: inline !important;\n }\n .dj_a11y .dijitSelect .dijitButtonText {\n display: inline-block !important;\n }\n\n /* TextArea, SimpleTextArea */\n .dijitTextArea {\n width: 100%;\n overflow-y: auto; /* w/out this IE's SimpleTextArea goes to overflow: scroll */\n }\n .dijitTextArea[cols] {\n width: auto; /* SimpleTextArea cols */\n }\n .dj_ie .dijitTextAreaCols {\n width: auto;\n }\n\n .dijitExpandingTextArea {\n /* for auto exanding textarea (called Textarea currently, rename for 2.0) don't want to display the grip to resize */\n resize: none;\n }\n\n /* Toolbar\n * Note that other toolbar rules (for objects in toolbars) are scattered throughout this file.\n */\n\n .dijitToolbarSeparator {\n height: 18px;\n width: 5px;\n padding: 0 1px;\n margin: 0;\n }\n\n /* Editor */\n .dijitIEFixedToolbar {\n position: absolute;\n /* top:0; */\n top: expression(eval((document.documentElement||document.body) .scrollTop));\n }\n\n .dijitEditor {\n display: block; /* prevents glitch on FF with InlineEditBox, see #8404 */\n }\n\n .dijitEditorDisabled,\n .dijitEditorReadOnly {\n color: gray;\n }\n\n /* TimePicker */\n\n .dijitTimePicker {\n background-color: white;\n }\n .dijitTimePickerItem {\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n }\n .dijitTimePickerItemHover {\n background-color: gray;\n color: white;\n }\n .dijitTimePickerItemSelected {\n font-weight: bold;\n color: #333;\n background-color: #b7cdee;\n }\n .dijitTimePickerItemDisabled {\n color: gray;\n text-decoration: line-through;\n }\n\n .dijitTimePickerItemInner {\n text-align: center;\n border: 0;\n padding: 2px 8px 2px 8px;\n }\n\n .dijitTimePickerTick,\n .dijitTimePickerMarker {\n border-bottom: 1px solid gray;\n }\n\n .dijitTimePicker .dijitDownArrowButton {\n border-top: none !important;\n }\n\n .dijitTimePickerTick {\n color: #ccc;\n }\n\n .dijitTimePickerMarker {\n color: black;\n background-color: #ccc;\n }\n\n .dj_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner {\n border: solid 4px black;\n }\n .dj_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner {\n border: dashed 4px black;\n }\n\n .dijitToggleButtonIconChar {\n /* character (instead of icon) to show that ToggleButton is checked */\n display: none !important;\n }\n .dj_a11y .dijitToggleButton .dijitToggleButtonIconChar {\n display: inline !important;\n visibility: hidden;\n }\n .dj_ie6 .dijitToggleButtonIconChar,\n .dj_ie6 .tabStripButton .dijitButtonText {\n font-family: \"Arial Unicode MS\"; /* otherwise the a11y character (checkmark, arrow, etc.) appears as a box */\n }\n .dj_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar {\n display: inline !important; /* In high contrast mode, display the check symbol */\n visibility: visible !important;\n }\n\n .dijitArrowButtonChar {\n display: none !important;\n }\n .dj_a11y .dijitArrowButtonChar {\n display: inline !important;\n }\n\n .dj_a11y .dijitDropDownButton .dijitArrowButtonInner,\n .dj_a11y .dijitComboButton .dijitArrowButtonInner {\n display: none !important;\n }\n\n /* Select */\n .dj_a11y .dijitSelect {\n border-collapse: separate !important;\n border-width: 1px;\n border-style: solid;\n }\n .dj_ie .dijitSelect {\n vertical-align: middle; /* Set this back for what we hack in dijit inline */\n }\n .dj_ie6 .dijitSelect .dijitValidationContainer,\n .dj_ie8 .dijitSelect .dijitButtonText {\n vertical-align: top;\n }\n .dj_ie6 .dijitTextBox .dijitInputContainer,\n .dj_iequirks .dijitTextBox .dijitInputContainer,\n .dj_ie6 .dijitTextBox .dijitArrowButtonInner,\n .dj_ie6 .dijitSpinner .dijitSpinnerButtonInner,\n .dijitSelect .dijitSelectLabel {\n vertical-align: baseline;\n }\n\n .dijitNumberTextBox {\n text-align: left;\n direction: ltr;\n }\n\n .dijitNumberTextBox .dijitInputInner {\n text-align: inherit; /* input */\n }\n\n .dijitNumberTextBox input.dijitInputInner,\n .dijitCurrencyTextBox input.dijitInputInner,\n .dijitSpinner input.dijitInputInner {\n text-align: right;\n }\n\n .dj_ie8 .dijitNumberTextBox input.dijitInputInner,\n .dj_ie9 .dijitNumberTextBox input.dijitInputInner,\n .dj_ie8 .dijitCurrencyTextBox input.dijitInputInner,\n .dj_ie9 .dijitCurrencyTextBox input.dijitInputInner,\n .dj_ie8 .dijitSpinner input.dijitInputInner,\n .dj_ie9 .dijitSpinner input.dijitInputInner {\n /* workaround bug where caret invisible in empty textboxes */\n padding-right: 1px !important;\n }\n\n .dijitToolbar .dijitSelect {\n margin: 0;\n }\n .dj_webkit .dijitToolbar .dijitSelect {\n padding-left: 0.3em;\n }\n .dijitSelect .dijitButtonContents {\n padding: 0;\n white-space: nowrap;\n text-align: left;\n border-style: none solid none none;\n border-width: 1px;\n }\n .dijitSelectFixedWidth .dijitButtonContents {\n width: 100%;\n }\n\n .dijitSelectMenu .dijitMenuItemIcon {\n /* avoid blank area in left side of menu (since we have no icons) */\n display: none;\n }\n .dj_ie6 .dijitSelectMenu .dijitMenuItemLabel,\n .dj_ie7 .dijitSelectMenu .dijitMenuItemLabel {\n /* Set back to static due to bug in ie6/ie7 - See Bug #9651 */\n position: static;\n }\n\n /* Fix the baseline of our label (for multi-size font elements) */\n .dijitSelectLabel * {\n vertical-align: baseline;\n }\n\n /* Styling for the currently-selected option (rich text can mess this up) */\n .dijitSelectSelectedOption * {\n font-weight: bold;\n }\n\n /* Fix the styling of the dropdown menu to be more combobox-like */\n .dijitSelectMenu {\n border-width: 1px;\n }\n\n /* Used in cases, such as FullScreen plugin, when we need to force stuff to static positioning. */\n .dijitForceStatic {\n position: static !important;\n }\n\n /**** Disabled cursor *****/\n .dijitReadOnly *,\n .dijitDisabled *,\n .dijitReadOnly,\n .dijitDisabled {\n /* a region the user would be able to click on, but it's disabled */\n cursor: default;\n }\n\n /* Drag and Drop */\n .dojoDndItem {\n padding: 2px; /* will be replaced by border during drag over (dojoDndItemBefore, dojoDndItemAfter) */\n\n /* Prevent magnifying-glass text selection icon to appear on mobile webkit as it causes a touchout event */\n -webkit-touch-callout: none;\n -webkit-user-select: none; /* Disable selection/Copy of UIWebView */\n }\n .dojoDndHorizontal .dojoDndItem {\n /* make contents of horizontal container be side by side, rather than vertical */\n display: inline-block;\n }\n\n .dojoDndItemBefore,\n .dojoDndItemAfter {\n border: 0px solid #369;\n }\n .dojoDndItemBefore {\n border-width: 2px 0 0 0;\n padding: 0 2px 2px 2px;\n }\n .dojoDndItemAfter {\n border-width: 0 0 2px 0;\n padding: 2px 2px 0 2px;\n }\n .dojoDndHorizontal .dojoDndItemBefore {\n border-width: 0 0 0 2px;\n padding: 2px 2px 2px 0;\n }\n .dojoDndHorizontal .dojoDndItemAfter {\n border-width: 0 2px 0 0;\n padding: 2px 0 2px 2px;\n }\n\n .dojoDndItemOver {\n cursor: pointer;\n }\n .dj_gecko .dijitArrowButtonInner input,\n .dj_gecko input.dijitArrowButtonInner {\n -moz-user-focus: ignore;\n }\n .dijitFocused .dijitMenuItemShortcutKey {\n text-decoration: underline;\n }\n\n /* Dijit custom styling */\n .dijitBorderContainer {\n height: 350px;\n }\n .dijitTooltipContainer {\n background: #fff;\n border: 1px solid #ccc;\n border-radius: 6px;\n }\n .dijitContentPane {\n box-sizing: content-box;\n overflow: auto !important;\n /* Widgets like the data grid pass their scroll\n offset to the parent if there is not enough room to display a scroll bar\n in the widget itself, so do not hide the overflow. */\n }\n\n /* Global Bootstrap changes */\n\n /* Client defaults and helpers */\n .mx-dataview-content,\n .mx-scrollcontainer-wrapper:not(.mx-scrollcontainer-nested),\n .mx-tabcontainer-content,\n .mx-grid-content {\n -webkit-overflow-scrolling: touch;\n }\n html,\n body,\n #content {\n height: 100%;\n }\n #content > .mx-page {\n width: 100%;\n min-height: 100%;\n }\n\n .mx-left-aligned {\n text-align: left;\n }\n .mx-right-aligned {\n text-align: right;\n }\n .mx-center-aligned {\n text-align: center;\n }\n\n .mx-table {\n width: 100%;\n }\n .mx-table th,\n .mx-table td {\n padding: 8px;\n vertical-align: top;\n }\n .mx-table th.nopadding,\n .mx-table td.nopadding {\n padding: 0;\n }\n\n .mx-offscreen {\n /* When position relative is not set IE doesn't properly render when this class is removed\n * with the effect that elements are not displayed or are not clickable.\n */\n position: relative;\n height: 0;\n overflow: hidden;\n }\n\n .mx-ie-event-shield {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: -1;\n }\n\n .mx-swipe-navigation-progress {\n position: absolute;\n height: 54px;\n width: 54px;\n top: calc(50% - 27px);\n left: calc(50% - 27px);\n background: url(resources/swipe-progress.gif);\n }\n\n /* Bacause we use checkboxes without labels, align them with other widgets. */\n input[type=\"checkbox\"] {\n margin: 9px 0;\n }\n\n .mx-checkbox input[type=\"checkbox\"] {\n margin-left: 0;\n margin-right: 8px;\n position: static;\n }\n\n .form-vertical .form-group.mx-checkbox input[type=\"checkbox\"] {\n display: block;\n }\n\n .form-vertical .form-group.mx-checkbox.label-after input[type=\"checkbox\"] {\n display: inline-block;\n }\n\n .form-horizontal .form-group.no-columns {\n padding-left: 15px;\n padding-right: 15px;\n }\n\n .mx-radiobuttons.inline .radio {\n display: inline-block;\n margin-right: 20px;\n }\n\n .mx-radiobuttons .radio input[type=\"radio\"] {\n /* Reset bootstrap rules */\n position: static;\n margin-right: 8px;\n margin-left: 0;\n }\n\n .mx-radiobuttons .radio label {\n /* Reset bootstrap rules */\n padding-left: 0;\n }\n\n .alert {\n margin-top: 8px;\n margin-bottom: 10px;\n white-space: pre-line;\n }\n\n //.mx-compound-control {\n // display: flex;\n //}\n\n //.mx-compound-control button {\n // margin-left: 5px;\n //}\n //\n //[dir=\"rtl\"] .mx-compound-control button {\n // margin-left: 0;\n // margin-right: 5px;\n //}\n\n .mx-tooltip {\n margin: 10px;\n }\n .mx-tooltip-content {\n width: 400px;\n overflow-y: auto;\n }\n .mx-tooltip-prepare {\n height: 24px;\n padding: 8px;\n background: transparent url(resources/ttp.gif) no-repeat scroll center center;\n }\n .mx-tooltip-content .table th,\n .mx-tooltip-content .table td {\n padding: 2px 8px;\n }\n\n .mx-tabcontainer-pane {\n height: 100%;\n }\n .mx-tabcontainer-content.loading {\n min-height: 48px;\n background: url(resources/tabcontainer-loading.gif) no-repeat center center;\n background-size: 32px 32px;\n }\n .mx-tabcontainer-tabs {\n margin-bottom: 8px;\n }\n .mx-tabcontainer-tabs li {\n position: relative;\n }\n .mx-tabcontainer-indicator {\n position: absolute;\n background: #f2dede;\n border-radius: 8px;\n color: #b94a48;\n top: 0px;\n right: -5px;\n width: 16px;\n height: 16px;\n line-height: 16px;\n text-align: center;\n vertical-align: middle;\n font-size: 10px;\n font-weight: 600;\n z-index: 1; /* indicator should not hide behind other tab */\n }\n\n /* base structure */\n .mx-grid {\n padding: 8px;\n overflow: hidden; /* to prevent any margin from escaping grid and foobaring our size calculations */\n }\n .mx-grid-controlbar,\n .mx-grid-searchbar {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n .mx-grid-controlbar .mx-button,\n .mx-grid-search-controls .mx-button {\n margin-bottom: 8px;\n }\n\n .mx-grid-search-controls .mx-button + .mx-button,\n .mx-grid-controlbar .mx-button + .mx-button {\n margin-left: 0.3em;\n }\n\n [dir=\"rtl\"] .mx-grid-search-controls .mx-button + .mx-button,\n [dir=\"rtl\"] .mx-grid-controlbar .mx-button + .mx-button {\n margin-left: 0;\n margin-right: 0.3em;\n }\n\n .mx-grid-pagingbar,\n .mx-grid-search-controls {\n display: flex;\n white-space: nowrap;\n align-items: baseline;\n margin-left: auto;\n }\n\n .mx-grid-toolbar,\n .mx-grid-search-inputs {\n margin-right: 5px;\n flex: 1;\n }\n\n [dir=\"rtl\"] .mx-grid-toolbar,\n [dir=\"rtl\"] .mx-grid-search-inputs {\n margin-left: 5px;\n margin-right: 0px;\n }\n [dir=\"rtl\"] .mx-grid-pagingbar,\n [dir=\"rtl\"] .mx-grid-search-controls {\n margin-left: 0px;\n margin-right: auto;\n }\n\n .mx-grid-paging-status {\n padding: 0 8px 5px;\n }\n\n /* search fields */\n .mx-grid-search-item {\n display: inline-block;\n vertical-align: top;\n margin-bottom: 8px;\n }\n .mx-grid-search-label {\n width: 110px;\n padding: 0 5px;\n text-align: right;\n display: inline-block;\n vertical-align: top;\n overflow: hidden;\n }\n [dir=\"rtl\"] .mx-grid-search-label {\n text-align: left;\n }\n .mx-grid-search-input {\n width: 150px;\n padding: 0 5px;\n display: inline-block;\n vertical-align: top;\n }\n .mx-grid-search-message {\n flex-basis: 100%;\n }\n\n /* widget combinations */\n .mx-dataview .mx-grid {\n border: 1px solid #ddd;\n border-radius: 3px;\n }\n\n .mx-calendar {\n z-index: 1000;\n }\n\n .mx-calendar-month-dropdown-options {\n position: absolute;\n }\n\n .mx-calendar,\n .mx-calendar-month-dropdown {\n user-select: none;\n }\n\n .mx-calendar-month-current {\n display: inline-block;\n }\n\n .mx-calendar-month-spacer {\n position: relative;\n height: 0px;\n overflow: hidden;\n visibility: hidden;\n }\n\n .mx-calendar,\n .mx-calendar-month-dropdown-options {\n border: 1px solid lightgrey;\n background-color: white;\n }\n\n .mx-datagrid tr {\n cursor: pointer;\n }\n\n .mx-datagrid tr.mx-datagrid-row-empty {\n cursor: default;\n }\n\n .mx-datagrid table {\n width: 100%;\n max-width: 100%;\n table-layout: fixed;\n margin-bottom: 0;\n }\n\n .mx-datagrid th,\n .mx-datagrid td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: bottom;\n border: 1px solid #ddd;\n }\n\n /* head */\n .mx-datagrid th {\n position: relative; /* Required for the positioning of the column resizers */\n border-bottom-width: 2px;\n }\n .mx-datagrid-head-caption {\n overflow: hidden;\n white-space: nowrap;\n }\n .mx-datagrid-sort-icon {\n float: right;\n padding-left: 5px;\n }\n [dir=\"rtl\"] .mx-datagrid-sort-icon {\n float: left;\n padding: 0 5px 0 0;\n }\n .mx-datagrid-column-resizer {\n position: absolute;\n top: 0;\n left: -6px;\n width: 10px;\n height: 100%;\n cursor: col-resize;\n }\n [dir=\"rtl\"] .mx-datagrid-column-resizer {\n left: auto;\n right: -6px;\n }\n\n /* body */\n .mx-datagrid tbody tr:first-child td {\n border-top: none;\n }\n //.mx-datagrid tbody tr:nth-child(2n+1) td {\n // background-color: #f9f9f9;\n //}\n .mx-datagrid tbody .selected td {\n background-color: #eee;\n }\n .mx-datagrid-data-wrapper {\n overflow: hidden;\n white-space: nowrap;\n }\n .mx-datagrid tbody img {\n max-width: 16px;\n max-height: 16px;\n }\n .mx-datagrid input,\n .mx-datagrid select,\n .mx-datagrid textarea {\n cursor: auto;\n }\n\n /* foot */\n .mx-datagrid tfoot th,\n .mx-datagrid tfoot td {\n padding: 3px 8px;\n }\n .mx-datagrid tfoot th {\n border-top: 1px solid #ddd;\n }\n .mx-datagrid.mx-content-loading .mx-content-loader {\n display: inline-block;\n width: 90%;\n animation: placeholderGradient 1s linear infinite;\n border-radius: 4px;\n background: #f5f5f5;\n background: repeating-linear-gradient(to right, #f5f5f5 0%, #f5f5f5 5%, #f9f9f9 50%, #f5f5f5 95%, #f5f5f5 100%);\n background-size: 200px 100px;\n animation-fill-mode: both;\n }\n @keyframes placeholderGradient {\n 0% {\n background-position: 100px 0;\n }\n 100% {\n background-position: -100px 0;\n }\n }\n\n .mx-datagrid-table-resizing th,\n .mx-datagrid-table-resizing td {\n cursor: col-resize !important;\n }\n\n .mx-templategrid-content-wrapper {\n display: table;\n width: 100%;\n border-collapse: collapse;\n box-sizing: border-box;\n }\n .mx-templategrid-row {\n display: table-row;\n }\n .mx-templategrid-item {\n padding: 5px;\n display: table-cell;\n border: 1px solid #ddd;\n cursor: pointer;\n box-sizing: border-box;\n }\n .mx-templategrid-empty {\n display: table-cell;\n }\n .mx-templategrid-item.selected {\n background-color: #f5f5f5;\n }\n .mx-templategrid-item .mx-table th,\n .mx-templategrid-item .mx-table td {\n padding: 2px 8px;\n }\n\n .mx-scrollcontainer-horizontal {\n width: 100%;\n display: table;\n table-layout: fixed;\n }\n .mx-scrollcontainer-horizontal > div {\n display: table-cell;\n vertical-align: top;\n }\n //.mx-scrollcontainer-wrapper {\n // padding: 10px;\n //}\n .mx-scrollcontainer-nested {\n padding: 0;\n }\n .mx-scrollcontainer-fixed > .mx-scrollcontainer-middle > .mx-scrollcontainer-wrapper,\n .mx-scrollcontainer-fixed > .mx-scrollcontainer-left > .mx-scrollcontainer-wrapper,\n .mx-scrollcontainer-fixed > .mx-scrollcontainer-center > .mx-scrollcontainer-wrapper,\n .mx-scrollcontainer-fixed > .mx-scrollcontainer-right > .mx-scrollcontainer-wrapper {\n overflow: auto;\n }\n\n .mx-scrollcontainer-move-in {\n transition: left 250ms ease-out;\n }\n .mx-scrollcontainer-move-out {\n transition: left 250ms ease-in;\n }\n .mx-scrollcontainer-shrink .mx-scrollcontainer-toggleable {\n transition-property: width;\n }\n\n .mx-scrollcontainer-toggleable {\n background-color: #fff;\n }\n //.mx-scrollcontainer-slide > .mx-scrollcontainer-toggleable > .mx-scrollcontainer-wrapper {\n // position: relative;\n // z-index: 1;\n // background-color: inherit;\n //}\n .mx-scrollcontainer-push {\n position: relative;\n }\n .mx-scrollcontainer-shrink > .mx-scrollcontainer-toggleable {\n overflow: hidden;\n }\n .mx-scrollcontainer-push.mx-scrollcontainer-open > div,\n .mx-scrollcontainer-slide.mx-scrollcontainer-open > div {\n pointer-events: none;\n }\n .mx-scrollcontainer-push.mx-scrollcontainer-open > .mx-scrollcontainer-toggleable,\n .mx-scrollcontainer-slide.mx-scrollcontainer-open > .mx-scrollcontainer-toggleable {\n pointer-events: auto;\n }\n\n .mx-navbar-item img,\n .mx-navbar-subitem img {\n height: 16px;\n }\n\n .mx-navigationtree .navbar-inner {\n padding-left: 0;\n padding-right: 0;\n }\n .mx-navigationtree ul {\n list-style: none;\n }\n //.mx-navigationtree ul li {\n // border-bottom: 1px solid #dfe6ea;\n //}\n //.mx-navigationtree li:last-child {\n // border-style: none;\n //}\n .mx-navigationtree a {\n display: block;\n padding: 5px 10px;\n color: #777;\n text-shadow: 0 1px 0 #fff;\n text-decoration: none;\n }\n .mx-navigationtree a.active {\n color: #fff;\n text-shadow: none;\n background: #3498db;\n border-radius: 3px;\n }\n .mx-navigationtree .mx-navigationtree-collapsed ul {\n display: none;\n }\n .mx-navigationtree ul {\n margin: 0;\n padding: 0;\n }\n //.mx-navigationtree ul li {\n // padding: 5px 0;\n //}\n .mx-navigationtree ul li ul {\n padding: 0;\n margin-left: 10px;\n }\n .mx-navigationtree ul li ul li {\n margin-left: 8px;\n padding: 5px 0;\n }\n [dir=\"rtl\"] .mx-navigationtree ul li ul li {\n margin-left: auto;\n margin-right: 8px;\n }\n .mx-navigationtree ul li ul li ul li {\n font-size: 10px;\n padding-top: 3px;\n padding-bottom: 3px;\n }\n .mx-navigationtree ul li ul li ul li img {\n vertical-align: top;\n }\n\n .mx-link img,\n .mx-button img {\n height: 16px;\n }\n .mx-link {\n padding: 6px 12px;\n display: inline-block;\n cursor: pointer;\n }\n\n .mx-groupbox {\n margin-bottom: 10px;\n }\n .mx-groupbox-header {\n margin: 0;\n padding: 10px 15px;\n color: #eee;\n background: #333;\n font-size: inherit;\n line-height: inherit;\n border-radius: 4px 4px 0 0;\n }\n .mx-groupbox-collapsible > .mx-groupbox-header {\n cursor: pointer;\n }\n .mx-groupbox.collapsed > .mx-groupbox-header {\n border-radius: 4px;\n }\n .mx-groupbox-body {\n padding: 8px;\n border: 1px solid #ddd;\n border-radius: 4px;\n }\n .mx-groupbox.collapsed > .mx-groupbox-body {\n display: none;\n }\n .mx-groupbox-header + .mx-groupbox-body {\n border-top: none;\n border-radius: 0 0 4px 4px;\n }\n .mx-groupbox-collapse-icon {\n float: right;\n }\n [dir=\"rtl\"] .mx-groupbox-collapse-icon {\n float: left;\n }\n\n .mx-dataview {\n position: relative;\n }\n .mx-dataview-controls {\n padding: 19px 20px 12px;\n background-color: #f5f5f5;\n border-top: 1px solid #eee;\n }\n\n .mx-dataview-controls .mx-button {\n margin-bottom: 8px;\n }\n\n .mx-dataview-controls .mx-button + .mx-button {\n margin-left: 0.3em;\n }\n\n .mx-dataview-message {\n background: #fff;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n .mx-dataview-message > div {\n display: table;\n width: 100%;\n height: 100%;\n }\n .mx-dataview-message > div > p {\n display: table-cell;\n text-align: center;\n vertical-align: middle;\n }\n\n /* Top-level data view in window is a special case, handle it as such. */\n .mx-window-view .mx-window-body {\n padding: 0;\n }\n .mx-window-view .mx-window-body > .mx-dataview > .mx-dataview-content,\n .mx-window-view .mx-window-body > .mx-placeholder > .mx-dataview > .mx-dataview-content {\n padding: 15px;\n }\n .mx-window-view .mx-window-body > .mx-dataview > .mx-dataview-controls,\n .mx-window-view .mx-window-body > .mx-placeholder > .mx-dataview > .mx-dataview-controls {\n border-radius: 0px 0px 6px 6px;\n }\n\n .mx-dialog {\n position: fixed;\n left: auto;\n right: auto;\n padding: 0;\n width: 500px;\n /* If the margin is set to auto, IE9 reports the calculated value of the\n * margin as the actual value. Other browsers will just report 0. Eliminate\n * this difference by setting margin to 0 for every browser. */\n margin: 0;\n }\n .mx-dialog-header {\n cursor: move;\n }\n .mx-dialog-body {\n overflow: auto;\n }\n\n .mx-window {\n position: fixed;\n left: auto;\n right: auto;\n padding: 0;\n width: 600px;\n /* If the margin is set to auto, IE9 reports the calculated value of the\n * margin as the actual value. Other browsers will just report 0. Eliminate\n * this difference by setting margin to 0 for every browser. */\n margin: 0;\n }\n .mx-window-content {\n height: 100%;\n overflow: hidden;\n }\n .mx-window-active .mx-window-header {\n background-color: #f5f5f5;\n border-radius: 6px 6px 0 0;\n }\n .mx-window-header {\n cursor: move;\n }\n .mx-window-body {\n overflow: auto;\n }\n\n .mx-dropdown-list * {\n cursor: pointer;\n }\n .mx-dropdown-list img {\n width: 35px;\n vertical-align: middle;\n margin-right: 10px;\n }\n [dir=\"rtl\"] .mx-dropdown-list img {\n margin-left: 10px;\n margin-right: auto;\n }\n\n .mx-dropdown-list {\n padding: 0;\n list-style: none;\n }\n .mx-dropdown-list > li {\n padding: 5px 10px 10px;\n border: 1px #ddd;\n border-style: solid solid none;\n background-color: #fff;\n }\n .mx-dropdown-list > li:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n }\n .mx-dropdown-list > li:last-child {\n border-bottom-style: solid;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n }\n .mx-dropdown-list-striped > li:nth-child(2n + 1) {\n background: #f9f9f9;\n }\n .mx-dropdown-list > li:hover {\n background: #f5f5f5;\n }\n\n .mx-header {\n position: relative;\n padding: 9px;\n background: #333;\n text-align: center;\n }\n .mx-header-center {\n display: inline-block;\n color: #eee;\n line-height: 30px; /* height of buttons */\n }\n body[dir=\"ltr\"] .mx-header-left,\n body[dir=\"rtl\"] .mx-header-right {\n position: absolute;\n top: 9px;\n left: 9px;\n }\n body[dir=\"ltr\"] .mx-header-right,\n body[dir=\"rtl\"] .mx-header-left {\n position: absolute;\n top: 9px;\n right: 9px;\n }\n\n .mx-title {\n margin-bottom: 0px;\n margin-top: 0px;\n }\n\n .mx-listview {\n padding: 8px;\n }\n .mx-listview > ul {\n padding: 0px;\n list-style: none;\n }\n // .mx-listview > ul > li {\n // padding: 5px 10px 10px;\n // border: 1px #ddd;\n // border-style: solid solid none;\n // background-color: #fff;\n // outline: none;\n // }\n // .mx-listview > ul > li:first-child {\n // border-top-left-radius: 4px;\n // border-top-right-radius: 4px;\n // }\n // .mx-listview > ul > li:last-child {\n // border-bottom-style: solid;\n // border-bottom-left-radius: 4px;\n // border-bottom-right-radius: 4px;\n // }\n //.mx-listview li:nth-child(2n+1) {\n // background: #f9f9f9;\n //}\n //.mx-listview li:nth-child(2n+1):hover {\n // background: #f5f5f5;\n //}\n .mx-listview > ul > li.selected {\n // background: #eee;\n }\n .mx-listview-clickable > ul > li {\n cursor: pointer;\n }\n .mx-listview-empty {\n color: #999;\n text-align: center;\n }\n .mx-listview .mx-listview-loading {\n padding: 10px;\n line-height: 0;\n text-align: center;\n }\n .mx-listview-searchbar {\n display: flex;\n margin-bottom: 10px;\n }\n .mx-listview-searchbar > input {\n width: 100%;\n }\n .mx-listview-searchbar > button {\n margin-left: 5px;\n }\n [dir=\"rtl\"] .mx-listview-searchbar > button {\n margin-left: 0;\n margin-right: 5px;\n }\n .mx-listview-selection {\n display: table-cell;\n vertical-align: middle;\n padding: 0 15px 0 5px;\n }\n [dir=\"rtl\"] .mx-listview-selection {\n padding: 0 5px 0 15px;\n }\n .mx-listview-selectable .mx-listview-content {\n display: table-cell;\n vertical-align: middle;\n width: 100%;\n }\n .mx-listview .selected {\n background: #def;\n }\n .mx-listview .mx-table th,\n .mx-listview .mx-table td {\n padding: 2px;\n }\n\n .mx-login .form-control {\n margin-top: 10px;\n }\n\n .mx-menubar {\n padding: 8px;\n }\n .mx-menubar-icon {\n height: 16px;\n }\n .mx-menubar-more-icon {\n display: inline-block;\n width: 16px;\n height: 16px;\n background: url(resources/menubar-more-icon.png) no-repeat center center;\n background-size: 16px 16px;\n vertical-align: middle;\n }\n\n .mx-navigationlist {\n padding: 8px;\n }\n .mx-navigationlist li:hover,\n .mx-navigationlist li:focus,\n .mx-navigationlist li.active {\n color: #fff;\n background-color: #3498db;\n }\n .mx-navigationlist * {\n cursor: pointer;\n }\n .mx-navigationlist .table th,\n .mx-navigationlist .table td {\n padding: 2px;\n }\n\n .mx-progress {\n position: fixed;\n top: 30%;\n left: 0;\n right: 0;\n margin: auto;\n width: 250px;\n max-width: 90%;\n background: #333;\n opacity: 0.8;\n z-index: 5000;\n border-radius: 4px;\n padding: 20px 15px;\n transition: opacity 0.4s ease-in-out;\n }\n .mx-progress-hidden {\n opacity: 0;\n }\n .mx-progress-message {\n color: #fff;\n text-align: center;\n margin-bottom: 15px;\n }\n .mx-progress-empty .mx-progress-message {\n display: none;\n }\n .mx-progress-indicator {\n width: 70px;\n height: 10px;\n margin: auto;\n background: url(resources/progress-indicator.gif);\n }\n\n .mx-reload-notification {\n position: fixed;\n z-index: 1001;\n top: 0;\n width: 100%;\n padding: 1rem;\n\n border: 1px solid hsl(200, 96%, 41%);\n background-color: hsl(200, 96%, 44%);\n\n box-shadow: 0 5px 20px rgba(1, 37, 55, 0.16);\n color: white;\n\n text-align: center;\n font-size: 14px;\n }\n\n .mx-resizer-n,\n .mx-resizer-s {\n position: absolute;\n left: 0;\n width: 100%;\n height: 10px;\n }\n .mx-resizer-n {\n top: -5px;\n cursor: n-resize;\n }\n .mx-resizer-s {\n bottom: -5px;\n cursor: s-resize;\n }\n\n .mx-resizer-e,\n .mx-resizer-w {\n position: absolute;\n top: 0;\n width: 10px;\n height: 100%;\n }\n .mx-resizer-e {\n right: -5px;\n cursor: e-resize;\n }\n .mx-resizer-w {\n left: -5px;\n cursor: w-resize;\n }\n\n .mx-resizer-nw,\n .mx-resizer-ne,\n .mx-resizer-sw,\n .mx-resizer-se {\n position: absolute;\n width: 20px;\n height: 20px;\n }\n\n .mx-resizer-nw,\n .mx-resizer-ne {\n top: -5px;\n }\n .mx-resizer-sw,\n .mx-resizer-se {\n bottom: -5px;\n }\n .mx-resizer-nw,\n .mx-resizer-sw {\n left: -5px;\n }\n .mx-resizer-ne,\n .mx-resizer-se {\n right: -5px;\n }\n\n .mx-resizer-nw {\n cursor: nw-resize;\n }\n .mx-resizer-ne {\n cursor: ne-resize;\n }\n .mx-resizer-sw {\n cursor: sw-resize;\n }\n .mx-resizer-se {\n cursor: se-resize;\n }\n\n .mx-text {\n white-space: pre-line;\n }\n\n .mx-textarea textarea {\n resize: none;\n overflow-y: hidden;\n }\n .mx-textarea .mx-textarea-noresize {\n height: auto;\n resize: vertical;\n overflow-y: auto;\n }\n .mx-textarea .mx-textarea-counter {\n font-size: smaller;\n }\n .mx-textarea .form-control-static {\n white-space: pre-line;\n }\n\n .mx-underlay {\n position: fixed;\n top: 0;\n width: 100%;\n height: 100%;\n z-index: 1000;\n opacity: 0.5;\n background-color: #333;\n }\n\n .mx-imagezoom {\n position: absolute;\n display: table;\n width: 100%;\n height: 100%;\n background-color: #999;\n }\n .mx-imagezoom-wrapper {\n display: table-cell;\n text-align: center;\n vertical-align: middle;\n }\n .mx-imagezoom-image {\n max-width: none;\n }\n\n .mx-dropdown li {\n padding: 3px 20px;\n cursor: pointer;\n }\n .mx-dropdown label {\n padding: 0;\n color: #333;\n white-space: nowrap;\n cursor: pointer;\n }\n .mx-dropdown input {\n margin: 0;\n vertical-align: middle;\n cursor: pointer;\n }\n .mx-dropdown .selected {\n background: #f8f8f8;\n }\n //.mx-selectbox {\n // text-align: left;\n //}\n //.mx-selectbox-caret-wrapper {\n // float: right;\n // height: 100%;\n //}\n\n .mx-demouserswitcher {\n position: fixed;\n top: 0;\n right: 0;\n width: 360px;\n height: 100%;\n z-index: 20000;\n box-shadow: -1px 0 5px rgba(28, 59, 86, 0.2);\n }\n .mx-demouserswitcher-content {\n padding: 80px 40px 20px;\n height: 100%;\n color: #387ea2;\n font-size: 14px;\n overflow: auto;\n background: url(resources/switcher.png) top right no-repeat #1b3149;\n /* background-attachement local is not supported on IE8\n * when this is part of background the complete background is ignored */\n background-attachment: local;\n }\n .mx-demouserswitcher ul {\n padding: 0;\n margin-top: 25px;\n list-style-type: none;\n border-top: 1px solid #496076;\n }\n .mx-demouserswitcher a {\n display: block;\n padding: 10px 0;\n color: #387ea2;\n border-bottom: 1px solid #496076;\n }\n .mx-demouserswitcher h2 {\n margin: 20px 0 5px;\n color: #5bc4fe;\n font-size: 28px;\n }\n .mx-demouserswitcher h3 {\n margin: 0 0 2px;\n color: #5bc4fe;\n font-size: 18px;\n font-weight: normal;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n .mx-demouserswitcher .active h3 {\n color: #11efdb;\n }\n .mx-demouserswitcher p {\n margin-bottom: 0;\n }\n .mx-demouserswitcher-toggle {\n position: absolute;\n top: 25%;\n left: -35px;\n width: 35px;\n height: 38px;\n margin-top: -40px;\n cursor: pointer;\n border-top-left-radius: 3px;\n border-bottom-left-radius: 3px;\n box-shadow: -1px 0 5px rgba(28, 59, 86, 0.2);\n background: url(resources/switcher-toggle.png) center center no-repeat #1b3149;\n }\n\n /* master details screen for mobile */\n .mx-master-detail-screen {\n top: 0;\n left: 0;\n overflow: auto;\n width: 100%;\n height: 100%;\n position: absolute;\n background-color: white;\n will-change: transform;\n }\n\n .mx-master-detail-screen .mx-master-detail-details {\n padding: 15px;\n }\n\n .mx-master-detail-screen-header {\n position: relative;\n overflow: auto;\n border-bottom: 1px solid #ccc;\n background-color: #f7f7f7;\n }\n\n .mx-master-detail-screen-header-caption {\n text-align: center;\n font-size: 17px;\n line-height: 24px;\n font-weight: 600;\n }\n\n .mx-master-detail-screen-header-close {\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n width: 50px;\n border: none;\n background: transparent;\n color: #007aff;\n }\n\n body[dir=\"rtl\"] .mx-master-detail-screen-header-close {\n right: 0;\n left: auto;\n }\n\n .mx-master-detail-screen-header-close::before {\n content: \"\\2039\";\n font-size: 52px;\n line-height: 24px;\n }\n\n /* classes for content page */\n .mx-master-detail-content-fix {\n height: 100vh;\n overflow: hidden;\n }\n\n .mx-master-detail-content-hidden {\n transform: translateX(-200%);\n }\n\n body[dir=\"rtl\"] .mx-master-detail-content-hidden {\n transform: translateX(200%);\n }\n .reportingReport {\n padding: 5px;\n border: 1px solid #ddd;\n border-radius: 3px;\n }\n\n .reportingReportParameter th {\n text-align: right;\n }\n\n .reportingDateRange table {\n width: 100%;\n table-layout: fixed;\n }\n .reportingDateRange th {\n padding: 5px;\n text-align: right;\n background-color: #eee;\n }\n .reportingDateRange td {\n padding: 5px;\n }\n\n .mx-reportmatrix table {\n width: 100%;\n max-width: 100%;\n table-layout: fixed;\n margin-bottom: 0;\n }\n\n .mx-reportmatrix th,\n .mx-reportmatrix td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: bottom;\n border: 1px solid #ddd;\n }\n\n .mx-reportmatrix tbody tr:first-child td {\n border-top: none;\n }\n\n .mx-reportmatrix tbody tr:nth-child(2n + 1) td {\n background-color: #f9f9f9;\n }\n\n .mx-reportmatrix tbody img {\n max-width: 16px;\n max-height: 16px;\n }\n\n @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n .dijitInline {\n zoom: 1; /* set hasLayout:true to mimic inline-block */\n display: inline; /* don't use .dj_ie since that increases the priority */\n vertical-align: auto; /* makes TextBox,Button line up w/native counterparts on IE6 */\n }\n\n .dj_ie6 .dijitComboBox .dijitInputContainer,\n .dijitInputContainer {\n zoom: 1;\n }\n\n .dijitRight {\n /* Right part of a 3-element border */\n display: inline; /* IE7 sizes to outer size w/o this */\n }\n\n .dijitButtonNode {\n vertical-align: auto;\n }\n\n .dijitTextBox {\n overflow: hidden; /* #6027, #6067 */\n }\n\n .dijitPlaceHolder {\n filter: \"\"; /* make this show up in IE6 after the rendering of the widget */\n }\n\n .dijitValidationTextBoxError input.dijitValidationInner,\n .dijitSelect input,\n .dijitTextBox input.dijitArrowButtonInner {\n text-indent: 0 !important;\n letter-spacing: -5em !important;\n text-align: right !important;\n }\n\n .dj_a11y input.dijitValidationInner,\n .dj_a11y input.dijitArrowButtonInner {\n text-align: left !important;\n }\n\n .dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton {\n bottom: 50%; /* otherwise (on some machines) top arrow icon too close to splitter border (IE6/7) */\n }\n\n .dijitTabContainerTop-tabs .dijitTab,\n .dijitTabContainerBottom-tabs .dijitTab {\n zoom: 1; /* set hasLayout:true to mimic inline-block */\n display: inline; /* don't use .dj_ie since that increases the priority */\n }\n\n .dojoDndHorizontal .dojoDndItem {\n /* make contents of horizontal container be side by side, rather than vertical */\n display: inline;\n }\n }\n}\n\n/* WARNING: IE9 limits nested imports to three levels deep: http://jorgealbaladejo.com/2011/05/28/internet-explorer-limits-nested-import-css-statements */\n\n/* dijit base */\n\n/* mendix base */\n\n/* widgets */\n\n/* reporting */\n\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9kb2pvL2Rpaml0L3RoZW1lcy9kaWppdC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS9iYXNlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL2Zvcm1zLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9Ub29sdGlwLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9UYWJDb250YWluZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L19HcmlkLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9DYWxlbmRhci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvRGF0YUdyaWQuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RlbXBsYXRlR3JpZC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvU2Nyb2xsQ29udGFpbmVyLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9OYXZiYXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L05hdmlnYXRpb25UcmVlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9CdXR0b24uY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0dyb3VwQm94LmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9EYXRhVmlldy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvRGlhbG9nLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9XaW5kb3cuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0Ryb3BEb3duLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9IZWFkZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RpdGxlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9MaXN0Vmlldy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvTG9naW5EaWFsb2cuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L01lbnVCYXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L05hdmlnYXRpb25MaXN0LmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9Qcm9ncmVzcy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvUmVsb2FkTm90aWZpY2F0aW9uLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9SZXNpemFibGUuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RleHQuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RleHRBcmVhLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9VbmRlcmxheS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvSW1hZ2Vab29tLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9TZWxlY3RCb3guY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0RlbW9Vc2VyU3dpdGNoZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L01hc3RlckRldGFpbC5jc3MiLCJ3ZWJwYWNrOi8vLy4vcmVwb3J0aW5nL3VpL3dpZGdldC9SZXBvcnQuY3NzIiwid2VicGFjazovLy8uL3JlcG9ydGluZy91aS93aWRnZXQvUmVwb3J0UGFyYW1ldGVyLmNzcyIsIndlYnBhY2s6Ly8vLi9yZXBvcnRpbmcvdWkvd2lkZ2V0L0RhdGVSYW5nZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vcmVwb3J0aW5nL3VpL3dpZGdldC9SZXBvcnRNYXRyaXguY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvbXh1aS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFJQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QixVQUFVO0FBQ1YsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QjtBQUN2Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7O0FBRUE7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQixvQkFBb0I7QUFDcEI7QUFDQTtBQUNBLCtCQUErQjtBQUMvQjs7QUFFQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCLG9CQUFvQjtBQUNwQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0Esa0NBQWtDO0FBQ2xDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7O0FBRUE7QUFDQSw0QkFBNEI7QUFDNUI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQztBQUNsQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsZ0JBQWdCO0FBQ2hCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CLGFBQWE7QUFDYjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxzQkFBc0I7QUFDdEI7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckIscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkIsd0JBQXdCO0FBQ3hCLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHlDQUF5QztBQUN4RDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHdCQUF3QixvQkFBb0I7O0FBRTVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjs7QUFFQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQsMEJBQTBCO0FBQzFCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsYUFBYTtBQUNiLGFBQWEsd0RBQXdEO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esd0JBQXdCO0FBQ3hCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHFDQUFxQztBQUNyQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Ysb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxpQkFBaUI7QUFDakI7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxlQUFlO0FBQ2Ysc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QjtBQUM5Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7O0FBRUE7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7OztBQUdBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QixVQUFVO0FBQ1YsaUJBQWlCO0FBQ2pCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwrQkFBK0I7QUFDL0I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7O0FBRUE7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsNEJBQTRCO0FBQzlDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrQkFBa0I7QUFDbEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQjtBQUNoQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQztBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHFCQUFxQjtBQUNyQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpQkFBaUI7O0FBRWpCO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdnNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQzs7O0FDOUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUN6REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOztBQzdCQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JGQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQzFCQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDhCQUE4QjtBQUN0QyxVQUFVLCtCQUErQjtBQUN6Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUN0R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyREE7QUFDQTtBQUNBO0FBQ0E7OztBQ0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RCQTtBQUNBO0FBQ0E7QUFDQTs7QUNIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0VBO0FBQ0E7QUFDQTs7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0E7O0FDYkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DOztBQy9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JFQTtBQUNBO0FBQ0E7O0FDRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQzs7QUMvREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxDO0FDaEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ05BO0FBQ0E7QUFDQTs7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDekJBOztBQUVBOztBQUVBOztBQUVBOztBQUVBIiwiZmlsZSI6Im14dWkvdWkvbXh1aS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuXHRFc3NlbnRpYWwgc3R5bGVzIHRoYXQgdGhlbWVzIGNhbiBpbmhlcml0LlxuXHRJbiBvdGhlciB3b3Jkcywgd29ya3MgYnV0IGRvZXNuJ3QgbG9vayBncmVhdC5cbiovXG5cblxuXG4vKioqKlxuXHRcdEdFTkVSSUMgUElFQ0VTXG4gKioqKi9cblxuLmRpaml0UmVzZXQge1xuXHQvKiBVc2UgdGhpcyBzdHlsZSB0byBudWxsIG91dCBwYWRkaW5nLCBtYXJnaW4sIGJvcmRlciBpbiB5b3VyIHRlbXBsYXRlIGVsZW1lbnRzXG5cdFx0c28gdGhhdCBwYWdlIHNwZWNpZmljIHN0eWxlcyBkb24ndCBicmVhayB0aGVtLlxuXHRcdC0gVXNlIGluIGFsbCBUQUJMRSwgVFIgYW5kIFREIHRhZ3MuXG5cdCovXG5cdG1hcmdpbjowO1xuXHRib3JkZXI6MDtcblx0cGFkZGluZzowO1xuXHRmb250OiBpbmhlcml0O1xuXHRsaW5lLWhlaWdodDpub3JtYWw7XG5cdGNvbG9yOiBpbmhlcml0O1xufVxuLmRqX2ExMXkgLmRpaml0UmVzZXQge1xuXHQtbW96LWFwcGVhcmFuY2U6IG5vbmU7IC8qIHJlbW92ZSBwcmVkZWZpbmVkIGhpZ2gtY29udHJhc3Qgc3R5bGluZyBpbiBGaXJlZm94ICovXG59XG5cbi5kaWppdElubGluZSB7XG5cdC8qICBUbyBpbmxpbmUgYmxvY2sgZWxlbWVudHMuXG5cdFx0U2ltaWxhciB0byBJbmxpbmVCb3ggYmVsb3csIGJ1dCB0aGlzIGhhcyBmZXdlciBzaWRlLWVmZmVjdHMgaW4gTW96LlxuXHRcdEFsc28sIGFwcGFyZW50bHkgd29ya3Mgb24gYSBESVYgYXMgd2VsbCBhcyBhIEZJRUxEU0VULlxuXHQqL1xuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcdFx0XHQvKiB3ZWJraXQgYW5kIEZGMyAqL1xuXHQjem9vbTogMTsgLyogc2V0IGhhc0xheW91dDp0cnVlIHRvIG1pbWljIGlubGluZS1ibG9jayAqL1xuXHQjZGlzcGxheTppbmxpbmU7IC8qIGRvbid0IHVzZSAuZGpfaWUgc2luY2UgdGhhdCBpbmNyZWFzZXMgdGhlIHByaW9yaXR5ICovXG5cdGJvcmRlcjowO1xuXHRwYWRkaW5nOjA7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0I3ZlcnRpY2FsLWFsaWduOiBhdXRvO1x0LyogbWFrZXMgVGV4dEJveCxCdXR0b24gbGluZSB1cCB3L25hdGl2ZSBjb3VudGVycGFydHMgb24gSUU2ICovXG59XG5cbnRhYmxlLmRpaml0SW5saW5lIHtcblx0LyogVG8gaW5saW5lIHRhYmxlcyB3aXRoIGEgZ2l2ZW4gd2lkdGggc2V0ICovXG5cdGRpc3BsYXk6aW5saW5lLXRhYmxlO1xuXHRib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLmRpaml0SGlkZGVuIHtcblx0LyogVG8gaGlkZSB1bnNlbGVjdGVkIHBhbmVzIGluIFN0YWNrQ29udGFpbmVyIGV0Yy4gKi9cblx0cG9zaXRpb246IGFic29sdXRlOyAvKiByZW1vdmUgZnJvbSBub3JtYWwgZG9jdW1lbnQgZmxvdyB0byBzaW11bGF0ZSBkaXNwbGF5OiBub25lICovXG5cdHZpc2liaWxpdHk6IGhpZGRlbjsgLyogaGlkZSBlbGVtZW50IGZyb20gdmlldywgYnV0IGRvbid0IGJyZWFrIHNjcm9sbGluZywgc2VlICMxODYxMiAqL1xufVxuLmRpaml0SGlkZGVuICoge1xuXHR2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsgLyogaGlkZSB2aXNpYmlsaXR5OnZpc2libGUgZGVzY2VuZGFudHMgb2YgY2xhc3M9ZGlqaXRIaWRkZW4gbm9kZXMsIHNlZSAjMTg3OTkgKi9cbn1cblxuLmRpaml0VmlzaWJsZSB7XG5cdC8qIFRvIHNob3cgc2VsZWN0ZWQgcGFuZSBpbiBTdGFja0NvbnRhaW5lciBldGMuICovXG5cdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHQvKiBvdmVycmlkZSB1c2VyJ3MgZGlzcGxheTpub25lIHNldHRpbmcgdmlhIHN0eWxlIHNldHRpbmcgb3IgaW5kaXJlY3RseSB2aWEgY2xhc3MgKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1x0XHRcdC8qIHRvIHN1cHBvcnQgc2V0dGluZyB3aWR0aC9oZWlnaHQsIHNlZSAjMjAzMyAqL1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4uZGpfaWU2IC5kaWppdENvbWJvQm94IC5kaWppdElucHV0Q29udGFpbmVyLFxuLmRpaml0SW5wdXRDb250YWluZXIge1xuXHQvKiBmb3IgcG9zaXRpb25pbmcgb2YgcGxhY2VIb2xkZXIgKi9cblx0I3pvb206IDE7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGZsb2F0OiBub25lICFpbXBvcnRhbnQ7IC8qIG5lZWRlZCB0byBzcXVlZXplIHRoZSBJTlBVVCBpbiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZGpfaWU3IC5kaWppdElucHV0Q29udGFpbmVyIHtcblx0ZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsgLyogbmVlZGVkIGJ5IElFIHRvIHNxdWVlemUgdGhlIElOUFVUIGluICovXG5cdGNsZWFyOiBsZWZ0O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgLyogdG8gZml4IHdyb25nIHRleHQgYWxpZ25tZW50IGluIHRleHRkaXI9cnRsIHRleHQgYm94ICovXG59XG5cbi5kal9pZSAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWUgaW5wdXQuZGlqaXRUZXh0Qm94LFxuLmRqX2llIC5kaWppdFRleHRCb3ggaW5wdXQge1xuXHRmb250LXNpemU6IDEwMCU7XG59XG4uZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uVGV4dCB7XG5cdGZsb2F0OiBsZWZ0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuVEFCTEUuZGlqaXRTZWxlY3Qge1xuXHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IC8qIG1lc3NlcyB1cCBib3JkZXIgYWxpZ25tZW50ICovXG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7IC8qIHNvIGpzZmlkZGxlIHdvcmtzIHdpdGggTm9ybWFsaXplZCBDU1MgY2hlY2tlZCAqL1xufVxuLmRpaml0VGV4dEJveCAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyLFxuLmRpaml0VGV4dEJveCAuZGlqaXRBcnJvd0J1dHRvbkNvbnRhaW5lcixcbi5kaWppdFZhbGlkYXRpb25UZXh0Qm94IC5kaWppdFZhbGlkYXRpb25Db250YWluZXIge1xuXHRmbG9hdDogcmlnaHQ7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5kaWppdFNlbGVjdCBpbnB1dC5kaWppdElucHV0RmllbGQsXG4uZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRGaWVsZCB7XG5cdC8qIG92ZXJyaWRlIHVucmVhc29uYWJsZSB1c2VyIHN0eWxpbmcgb2YgYnV0dG9ucyBhbmQgaWNvbnMgKi9cblx0cGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cbi5kaWppdFZhbGlkYXRpb25UZXh0Qm94IC5kaWppdFZhbGlkYXRpb25Db250YWluZXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZGlqaXRUZWVueSB7XG5cdGZvbnQtc2l6ZToxcHg7XG5cdGxpbmUtaGVpZ2h0OjFweDtcbn1cblxuLmRpaml0T2ZmU2NyZWVuIHsgLyogdGhlc2UgY2xhc3MgYXR0cmlidXRlcyBzaG91bGQgc3VwZXJzZWRlIGFueSBpbmxpbmUgcG9zaXRpb25pbmcgc3R5bGUgKi9cblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdGxlZnQ6IC0xMDAwMHB4ICFpbXBvcnRhbnQ7XG5cdHRvcDogLTEwMDAwcHggIWltcG9ydGFudDtcbn1cblxuLypcbiAqIFBvcHVwIGl0ZW1zIGhhdmUgYSB3cmFwcGVyIGRpdiAoZGlqaXRQb3B1cClcbiAqIHdpdGggdGhlIHJlYWwgcG9wdXAgaW5zaWRlLCBhbmQgbWF5YmUgYW4gaWZyYW1lIHRvb1xuICovXG4uZGlqaXRQb3B1cCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdG1hcmdpbjogMDtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5kaWppdFBvc2l0aW9uT25seSB7XG5cdC8qIE51bGwgb3V0IGFsbCBwb3NpdGlvbi1yZWxhdGVkIHByb3BlcnRpZXMgKi9cblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xuXHRib3JkZXI6IDAgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0d2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmRpaml0Tm9uUG9zaXRpb25Pbmx5IHtcblx0LyogTnVsbCBwb3NpdGlvbi1yZWxhdGVkIHByb3BlcnRpZXMgKi9cblx0ZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcblx0cG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDAgMCAwIDAgIWltcG9ydGFudDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xufVxuXG4uZGlqaXRCYWNrZ3JvdW5kSWZyYW1lIHtcblx0LyogaWZyYW1lIHVzZWQgdG8gcHJldmVudCBwcm9ibGVtcyB3aXRoIFBERiBvciBvdGhlciBhcHBsZXRzIG92ZXJsYXlpbmcgbWVudXMgZXRjICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0dG9wOiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR6LWluZGV4OiAtMTtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdERpc3BsYXlOb25lIHtcblx0LyogaGlkZSBzb21ldGhpbmcuICBVc2UgdGhpcyBhcyBhIGNsYXNzIHJhdGhlciB0aGFuIGVsZW1lbnQuc3R5bGUgc28gYW5vdGhlciBjbGFzcyBjYW4gb3ZlcnJpZGUgKi9cblx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdENvbnRhaW5lciB7XG5cdC8qIGZvciBhbGwgbGF5b3V0IGNvbnRhaW5lcnMgKi9cblx0b3ZlcmZsb3c6IGhpZGRlbjtcdC8qIG5lZWQgb24gSUUgc28gc29tZXRoaW5nIGNhbiBiZSByZWR1Y2VkIGluIHNpemUsIGFuZCBzbyBzY3JvbGxiYXJzIGFyZW4ndCB0ZW1wb3JhcmlseSBkaXNwbGF5ZWQgd2hlbiByZXNpemluZyAqL1xufVxuXG4vKioqKlxuXHRcdEExMVlcbiAqKioqL1xuLmRqX2ExMXkgLmRpaml0SWNvbixcbi5kal9hMTF5IGRpdi5kaWppdEFycm93QnV0dG9uSW5uZXIsIC8qIGlzIHRoaXMgb25seSBmb3IgU3Bpbm5lcj8gIGlmIHNvLCBpdCBzaG91bGQgYmUgZGVsZXRlZCAqL1xuLmRqX2ExMXkgc3Bhbi5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGpfYTExeSBpbWcuZGlqaXRBcnJvd0J1dHRvbklubmVyLFxuLmRqX2ExMXkgLmRpaml0Q2FsZW5kYXJJbmNyZW1lbnRDb250cm9sLFxuLmRqX2ExMXkgLmRpaml0VHJlZUV4cGFuZG8ge1xuXHQvKiBoaWRlIGljb24gbm9kZXMgaW4gaGlnaCBjb250cmFzdCBtb2RlOyB3aGVuIG5lY2Vzc2FyeSB0aGV5IHdpbGwgYmUgcmVwbGFjZWQgYnkgY2hhcmFjdGVyIGVxdWl2YWxlbnRzXG5cdCAqIGV4Y2VwdGlvbiBmb3IgaW5wdXQuZGlqaXRBcnJvd0J1dHRvbklubmVyLCBiZWNhdXNlIHRoZSBpY29uIGFuZCBjaGFyYWN0ZXIgYXJlIGNvbnRyb2xsZWQgYnkgdGhlIHNhbWUgbm9kZSAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRpaml0U3Bpbm5lciBkaXYuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0ZGlzcGxheTogYmxvY2s7IC8qIG92ZXJyaWRlIHByZXZpb3VzIHJ1bGUgKi9cbn1cblxuLmRqX2ExMXkgLmRpaml0QTExeVNpZGVBcnJvdyB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyAvKiBkaXNwbGF5IHRleHQgaW5zdGVhZCAqL1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qXG4gKiBTaW5jZSB3ZSBjYW4ndCB1c2Ugc2hhZGluZyBpbiBhMTF5IG1vZGUsIGFuZCBzaW5jZSB0aGUgdW5kZXJsaW5lIGluZGljYXRlcyB0b2RheSdzIGRhdGUsXG4gKiB1c2UgYSBib3JkZXIgdG8gc2hvdyB0aGUgc2VsZWN0ZWQgZGF0ZS5cbiAqIEF2b2lkIHNjcmVlbiBqaXR0ZXIgd2hlbiBzd2l0Y2hpbmcgc2VsZWN0ZWQgZGF0ZSBieSBjb21wZW5zYXRpbmcgZm9yIHRoZSBzZWxlY3RlZCBub2RlJ3NcbiAqIGJvcmRlciB3L3BhZGRpbmcgb24gb3RoZXIgbm9kZXMuXG4gKi9cbi5kal9hMTF5IC5kaWppdENhbGVuZGFyRGF0ZUxhYmVsIHtcblx0cGFkZGluZzogMXB4O1xuXHRib3JkZXI6IDBweCAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0Q2FsZW5kYXJTZWxlY3RlZERhdGUgLmRpaml0Q2FsZW5kYXJEYXRlTGFiZWwge1xuXHRib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG5cdGJvcmRlci13aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmc6IDA7XG59XG4uZGpfYTExeSAuZGlqaXRDYWxlbmRhckRhdGVUZW1wbGF0ZSB7XG5cdHBhZGRpbmctYm90dG9tOiAwLjFlbSAhaW1wb3J0YW50O1x0Lyogb3RoZXJ3aXNlIGJvdHRvbSBib3JkZXIgZG9lc24ndCBhcHBlYXIgb24gSUUgKi9cblx0Ym9yZGVyOiAwcHggIWltcG9ydGFudDtcbn1cbi5kal9hMTF5IC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXI6IGJsYWNrIG91dHNldCBtZWRpdW0gIWltcG9ydGFudDtcblxuXHQvKiBJbiBjbGFybywgaG92ZXJpbmcgYSB0b29sYmFyIGJ1dHRvbiByZWR1Y2VzIHBhZGRpbmcgYW5kIGFkZHMgYSBib3JkZXIuXG5cdCAqIE5vdCBuZWVkZWQgaW4gYTExeSBtb2RlIHNpbmNlIFRvb2xiYXIgYnV0dG9ucyBhbHdheXMgaGF2ZSBhIGJvcmRlci5cblx0ICovXG5cdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cbi5kal9hMTF5IC5kaWppdEFycm93QnV0dG9uIHtcblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXRCdXR0b25Db250ZW50cyB7XG5cdG1hcmdpbjogMC4xNWVtOyAvKiBNYXJnaW4gbmVlZGVkIHRvIG1ha2UgZm9jdXMgb3V0bGluZSB2aXNpYmxlICovXG59XG5cbi5kal9hMTF5IC5kaWppdFRleHRCb3hSZWFkT25seSAuZGlqaXRJbnB1dEZpZWxkLFxuLmRqX2ExMXkgLmRpaml0VGV4dEJveFJlYWRPbmx5IC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItc3R5bGU6IG91dHNldCFpbXBvcnRhbnQ7XG5cdGJvcmRlci13aWR0aDogbWVkaXVtIWltcG9ydGFudDtcblx0Ym9yZGVyLWNvbG9yOiAjOTk5ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiM5OTkgIWltcG9ydGFudDtcbn1cblxuLyogYnV0dG9uIGlubmVyIGNvbnRlbnRzIC0gbGFiZWxzLCBpY29ucyBldGMuICovXG4uZGlqaXRCdXR0b25Ob2RlICoge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmRpaml0U2VsZWN0IC5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGlqaXRCdXR0b25Ob2RlIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHQvKiB0aGUgYXJyb3cgaWNvbiBub2RlICovXG5cdGJhY2tncm91bmQ6IG5vLXJlcGVhdCBjZW50ZXI7XG5cdHdpZHRoOiAxMnB4O1xuXHRoZWlnaHQ6IDEycHg7XG5cdGRpcmVjdGlvbjogbHRyOyAvKiBuZWVkZWQgYnkgSUUvUlRMICovXG59XG5cbi8qKioqXG5cdDMtZWxlbWVudCBib3JkZXJzOiAgKCBkaWppdExlZnQgKyBkaWppdFN0cmV0Y2ggKyBkaWppdFJpZ2h0IClcblx0VGhlc2Ugd2VyZSBhZGRlZCBmb3Igcm91bmRlZCBjb3JuZXJzIG9uIGRpaml0LmZvcm0uKkJ1dHRvbiBidXQgbmV2ZXIgYWN0dWFsbHkgdXNlZC5cbiAqKioqL1xuXG4uZGlqaXRMZWZ0IHtcblx0LyogTGVmdCBwYXJ0IG9mIGEgMy1lbGVtZW50IGJvcmRlciAqL1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgdG9wO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG59XG5cbi5kaWppdFN0cmV0Y2gge1xuXHQvKiBNaWRkbGUgKHN0cmV0Y2h5KSBwYXJ0IG9mIGEgMy1lbGVtZW50IGJvcmRlciAqL1xuXHR3aGl0ZS1zcGFjZTpub3dyYXA7XHRcdFx0LyogTU9XOiBtb3ZlIHNvbWV3aGVyZSBlbHNlICovXG5cdGJhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O1xufVxuXG4uZGlqaXRSaWdodCB7XG5cdC8qIFJpZ2h0IHBhcnQgb2YgYSAzLWVsZW1lbnQgYm9yZGVyICovXG5cdCNkaXNwbGF5OmlubGluZTtcdFx0XHRcdC8qIElFNyBzaXplcyB0byBvdXRlciBzaXplIHcvbyB0aGlzICovXG5cdGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgdG9wO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG59XG5cbi8qIEJ1dHRvbnMgKi9cbi5kal9nZWNrbyAuZGpfYTExeSAuZGlqaXRCdXR0b25EaXNhYmxlZCAuZGlqaXRCdXR0b25Ob2RlIHtcblx0b3BhY2l0eTogMC41O1xufVxuXG4uZGlqaXRUb2dnbGVCdXR0b24sXG4uZGlqaXRCdXR0b24sXG4uZGlqaXREcm9wRG93bkJ1dHRvbixcbi5kaWppdENvbWJvQnV0dG9uIHtcblx0Lyogb3V0c2lkZSBvZiBidXR0b24gKi9cblx0bWFyZ2luOiAwLjJlbTtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRkaXNwbGF5OiBibG9jaztcdFx0LyogdG8gbWFrZSBmb2N1cyBib3JkZXIgcmVjdGFuZ3VsYXIgKi9cbn1cbnRkLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRkaXNwbGF5OiB0YWJsZS1jZWxsO1x0LyogYnV0IGRvbid0IGFmZmVjdCBTZWxlY3QsIENvbWJvQnV0dG9uICovXG59XG5cbi5kaWppdEJ1dHRvbk5vZGUgaW1nIHtcblx0LyogbWFrZSB0ZXh0IGFuZCBpbWFnZXMgbGluZSB1cCBjbGVhbmx5ICovXG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0LyptYXJnaW4tYm90dG9tOi4yZW07Ki9cbn1cblxuLmRpaml0VG9vbGJhciAuZGlqaXRDb21ib0J1dHRvbiB7XG5cdC8qIGJlY2F1c2UgVG9vbGJhciBvbmx5IGRyYXdzIGEgYm9yZGVyIGFyb3VuZCB0aGUgaG92ZXJlZCB0aGluZyAqL1xuXHRib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xufVxuXG4uZGlqaXRUb29sYmFyIC5kaWppdFRvZ2dsZUJ1dHRvbixcbi5kaWppdFRvb2xiYXIgLmRpaml0QnV0dG9uLFxuLmRpaml0VG9vbGJhciAuZGlqaXREcm9wRG93bkJ1dHRvbixcbi5kaWppdFRvb2xiYXIgLmRpaml0Q29tYm9CdXR0b24ge1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdFRvb2xiYXIgLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHQvKiBqdXN0IGJlY2F1c2UgaXQgdXNlZCB0byBiZSB0aGlzIHdheSAqL1xuXHRwYWRkaW5nOiAxcHggMnB4O1xufVxuXG5cbi5kal93ZWJraXQgLmRpaml0VG9vbGJhciAuZGlqaXREcm9wRG93bkJ1dHRvbiB7XG5cdHBhZGRpbmctbGVmdDogMC4zZW07XG59XG4uZGpfZ2Vja28gLmRpaml0VG9vbGJhciAuZGlqaXRCdXR0b25Ob2RlOjotbW96LWZvY3VzLWlubmVyIHtcblx0cGFkZGluZzowO1xufVxuXG4uZGlqaXRTZWxlY3Qge1xuXHRib3JkZXI6MXB4IHNvbGlkIGdyYXk7XG59XG4uZGlqaXRCdXR0b25Ob2RlIHtcblx0LyogTm9kZSB0aGF0IGlzIGFjdGluZyBhcyBhIGJ1dHRvbiAtLSBtYXkgb3IgbWF5IG5vdCBiZSBhIEJVVFRPTiBlbGVtZW50ICovXG5cdGJvcmRlcjoxcHggc29saWQgZ3JheTtcblx0bWFyZ2luOjA7XG5cdGxpbmUtaGVpZ2h0Om5vcm1hbDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0I3ZlcnRpY2FsLWFsaWduOiBhdXRvO1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5kal93ZWJraXQgLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIHtcblx0LyogYXBwYXJlbnQgV2ViS2l0IGJ1ZyB3aGVyZSBtZXNzaW5nIHdpdGggdGhlIGZvbnQgY291cGxlZCB3aXRoIGxpbmUtaGVpZ2h0Om5vcm1hbCBYIDIgKGRpaml0UmVzZXQgJiBkaWppdEJ1dHRvbk5vZGUpXG5cdGNhbiBiZSBkaWZmZXJlbnQgdGhhbiBqdXN0IGEgc2luZ2xlIGxpbmUtaGVpZ2h0Om5vcm1hbCwgdmlzaWJsZSBpbiBJbmxpbmVFZGl0Qm94L1NwaW5uZXIgKi9cblx0bGluZS1oZWlnaHQ6aW5oZXJpdDtcbn1cbi5kaWppdFRleHRCb3ggLmRpaml0QnV0dG9uTm9kZSB7XG5cdGJvcmRlci13aWR0aDogMDtcbn1cblxuLmRpaml0U2VsZWN0LFxuLmRpaml0U2VsZWN0ICosXG4uZGlqaXRCdXR0b25Ob2RlLFxuLmRpaml0QnV0dG9uTm9kZSAqIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGpfaWUgLmRpaml0QnV0dG9uTm9kZSB7XG5cdC8qIGVuc3VyZSBoYXNMYXlvdXQgKi9cblx0em9vbTogMTtcbn1cblxuLmRqX2llIC5kaWppdEJ1dHRvbk5vZGUgYnV0dG9uIHtcblx0Lypcblx0XHRkaXNndXN0aW5nIGhhY2sgdG8gZ2V0IHJpZCBvZiBzcHVyaW91cyBwYWRkaW5nIGFyb3VuZCBidXR0b24gZWxlbWVudHNcblx0XHRvbiBJRS4gTVNJRSBpcyB0cnVseSB0aGUgd2ViJ3MgYm9hdCBhbmNob3IuXG5cdCovXG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5kaXYuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdGZsb2F0OiByaWdodDtcbn1cblxuLyoqKioqKlxuXHRUZXh0Qm94IHJlbGF0ZWQuXG5cdEV2ZXJ5dGhpbmcgdGhhdCBoYXMgYW4gPGlucHV0PlxuKioqKioqKi9cblxuLmRpaml0VGV4dEJveCB7XG5cdGJvcmRlcjogc29saWQgYmxhY2sgMXB4O1xuXHQjb3ZlcmZsb3c6IGhpZGRlbjsgLyogIzYwMjcsICM2MDY3ICovXG5cdHdpZHRoOiAxNWVtO1x0LyogbmVlZCB0byBzZXQgZGVmYXVsdCBzaXplIG9uIG91dGVyIG5vZGUgc2luY2UgaW5uZXIgbm9kZXMgc2F5IDxpbnB1dCBzdHlsZT1cIndpZHRoOjEwMCVcIj4gYW5kIDx0ZCB3aWR0aD0xMDAlPi4gIHVzZXIgY2FuIG92ZXJyaWRlICovXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kaWppdFRleHRCb3hSZWFkT25seSxcbi5kaWppdFRleHRCb3hEaXNhYmxlZCB7XG5cdGNvbG9yOiBncmF5O1xufVxuLmRqX3NhZmFyaSAuZGlqaXRUZXh0Qm94RGlzYWJsZWQgaW5wdXQge1xuXHRjb2xvcjogI0IwQjBCMDsgLyogYmVjYXVzZSBTYWZhcmkgbGlnaHRlbnMgZGlzYWJsZWQgaW5wdXQvdGV4dGFyZWEgbm8gbWF0dGVyIHdoYXQgY29sb3IgeW91IHNwZWNpZnkgKi9cbn1cbi5kal9zYWZhcmkgdGV4dGFyZWEuZGlqaXRUZXh0QXJlYURpc2FibGVkIHtcblx0Y29sb3I6ICMzMzM7IC8qIGJlY2F1c2UgU2FmYXJpIGxpZ2h0ZW5zIGRpc2FibGVkIGlucHV0L3RleHRhcmVhIG5vIG1hdHRlciB3aGF0IGNvbG9yIHlvdSBzcGVjaWZ5ICovXG59XG4uZGpfZ2Vja28gLmRpaml0VGV4dEJveFJlYWRPbmx5IGlucHV0LmRpaml0SW5wdXRGaWVsZCwgLyogZGlzYWJsZSBhcnJvdyBhbmQgdmFsaWRhdGlvbiBwcmVzZW50YXRpb24gaW5wdXRzIGJ1dCBhbGxvdyByZWFsIGlucHV0IGZvciB0ZXh0IHNlbGVjdGlvbiAqL1xuLmRqX2dlY2tvIC5kaWppdFRleHRCb3hEaXNhYmxlZCBpbnB1dCB7XG5cdC1tb3otdXNlci1pbnB1dDogbm9uZTsgLyogcHJldmVudCBmb2N1cyBvZiBkaXNhYmxlZCB0ZXh0Ym94IGJ1dHRvbnMgKi9cbn1cblxuLmRpaml0UGxhY2VIb2xkZXIge1xuXHQvKiBoaW50IHRleHQgdGhhdCBhcHBlYXJzIGluIGEgdGV4dGJveCB1bnRpbCB1c2VyIHN0YXJ0cyB0eXBpbmcgKi9cblx0Y29sb3I6ICNBQUFBQUE7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdCNmaWx0ZXI6IFwiXCI7IC8qIG1ha2UgdGhpcyBzaG93IHVwIGluIElFNiBhZnRlciB0aGUgcmVuZGVyaW5nIG9mIHRoZSB3aWRnZXQgKi9cblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7ICAgLyogc28gY3V0L3Bhc3RlIGNvbnRleHQgbWVudSBzaG93cyB1cCB3aGVuIHJpZ2h0IGNsaWNraW5nICovXG59XG5cbi5kaWppdFRpbWVUZXh0Qm94IHtcblx0d2lkdGg6IDhlbTtcbn1cblxuLyogcnVsZXMgZm9yIHdlYmtpdCB0byBkZWFsIHdpdGggZnV6enkgYmx1ZSBmb2N1cyBib3JkZXIgKi9cbi5kaWppdFRleHRCb3ggaW5wdXQ6Zm9jdXMge1xuXHRvdXRsaW5lOiBub25lO1x0LyogYmx1ZSBmdXp6eSBsaW5lIGxvb2tzIHdyb25nIG9uIGNvbWJvYm94IG9yIHNvbWV0aGluZyB3L3ZhbGlkYXRpb24gaWNvbiBzaG93aW5nICovXG59XG4uZGlqaXRUZXh0Qm94Rm9jdXNlZCB7XG5cdG91dGxpbmU6IDVweCAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG59XG5cbi5kaWppdFNlbGVjdCBpbnB1dCxcbi5kaWppdFRleHRCb3ggaW5wdXQge1xuXHRmbG9hdDogbGVmdDsgLyogbmVlZGVkIGJ5IElFIHRvIHJlbW92ZSBzZWNyZXQgbWFyZ2luICovXG59XG4uZGpfaWU2IGlucHV0LmRpaml0VGV4dEJveCxcbi5kal9pZTYgLmRpaml0VGV4dEJveCBpbnB1dCB7XG5cdGZsb2F0OiBub25lO1xufVxuLmRpaml0SW5wdXRJbm5lciB7XG5cdC8qIGZvciB3aGVuIGFuIDxpbnB1dD4gaXMgZW1iZWRkZWQgaW5zaWRlIGFuIGlubGluZS1ibG9jayA8ZGl2PiB3aXRoIGEgc2l6ZSBhbmQgYm9yZGVyICovXG5cdGJvcmRlcjowICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuXHQvKiBJRSBkaXNsaWtlcyBob3Jpem9udGFsIHR3ZWFraW5nIGNvbWJpbmVkIHdpdGggd2lkdGg6MTAwJSBzbyBwdW5pc2ggZXZlcnlvbmUgZm9yIGNvbnNpc3RlbmN5ICovXG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0VGV4dEJveCBpbnB1dCB7XG5cdG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuLmRpaml0VmFsaWRhdGlvblRleHRCb3hFcnJvciBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kaWppdFNlbGVjdCBpbnB1dCxcbi5kaWppdFRleHRCb3ggaW5wdXQuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0LyogPGlucHV0PiB1c2VkIHRvIGRpc3BsYXkgYXJyb3cgaWNvbi92YWxpZGF0aW9uIGljb24sIG9yIGluIGFycm93IGNoYXJhY3RlciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuXG5cdCAqIFRoZSBjc3MgYmVsb3cgaXMgYSB0cmljayB0byBoaWRlIHRoZSBjaGFyYWN0ZXIgaW4gbm9uLWhpZ2gtY29udHJhc3QgbW9kZVxuXHQgKi9cblx0dGV4dC1pbmRlbnQ6IC0yZW0gIWltcG9ydGFudDtcblx0ZGlyZWN0aW9uOiBsdHIgIWltcG9ydGFudDtcblx0dGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0I3RleHQtaW5kZW50OiAwICFpbXBvcnRhbnQ7XG5cdCNsZXR0ZXItc3BhY2luZzogLTVlbSAhaW1wb3J0YW50O1xuXHQjdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbn1cbi5kal9pZSAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWUgLmRpaml0VGV4dEJveCBpbnB1dCxcbi5kal9pZSBpbnB1dC5kaWppdFRleHRCb3gge1xuXHRvdmVyZmxvdy15OiB2aXNpYmxlOyAvKiBpbnB1dHMgbmVlZCBoZWxwIGV4cGFuZGluZyB3aGVuIHBhZGRpbmcgaXMgYWRkZWQgb3IgbGluZS1oZWlnaHQgaXMgYWRqdXN0ZWQgKi9cblx0bGluZS1oZWlnaHQ6IG5vcm1hbDsgLyogc3RyaWN0IG1vZGUgKi9cbn1cbi5kaWppdFNlbGVjdCAuZGlqaXRTZWxlY3RMYWJlbCBzcGFuIHtcblx0bGluZS1oZWlnaHQ6IDEwMCU7XG59XG4uZGpfaWUgLmRpaml0U2VsZWN0IC5kaWppdFNlbGVjdExhYmVsIHtcblx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cbi5kal9pZTYgLmRpaml0U2VsZWN0IC5kaWppdFNlbGVjdExhYmVsLFxuLmRqX2llNyAuZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwsXG4uZGpfaWU4IC5kaWppdFNlbGVjdCAuZGlqaXRTZWxlY3RMYWJlbCxcbi5kal9pZXF1aXJrcyAuZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwsXG4uZGlqaXRTZWxlY3QgdGQsXG4uZGpfaWU2IC5kaWppdFNlbGVjdCBpbnB1dCxcbi5kal9pZXF1aXJrcyAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWU2IC5kaWppdFNlbGVjdCAuZGlqaXRWYWxpZGF0aW9uQ29udGFpbmVyLFxuLmRqX2llNiAuZGlqaXRUZXh0Qm94IGlucHV0LFxuLmRqX2llNiBpbnB1dC5kaWppdFRleHRCb3gsXG4uZGpfaWVxdWlya3MgLmRpaml0VGV4dEJveCBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kal9pZXF1aXJrcyAuZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0QXJyb3dCdXR0b25Jbm5lcixcbi5kal9pZXF1aXJrcyAuZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0U3Bpbm5lckJ1dHRvbklubmVyLFxuLmRqX2llcXVpcmtzIC5kaWppdFRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRqX2llcXVpcmtzIGlucHV0LmRpaml0VGV4dEJveCB7XG5cdGxpbmUtaGVpZ2h0OiAxMDAlOyAvKiBJRTcgcHJvYmxlbSB3aGVyZSB0aGUgaWNvbiBpcyB2ZXJ0aWNhbGx5IHdheSB0b28gbG93IHcvbyB0aGlzICovXG59XG4uZGpfYTExeSBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kal9hMTF5IGlucHV0LmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdC8qIChpbiBoaWdoIGNvbnRyYXN0IG1vZGUpIHJldmVydCBydWxlcyBmcm9tIGFib3ZlIHNvIGNoYXJhY3RlciBkaXNwbGF5cyAqL1xuXHR0ZXh0LWluZGVudDogMCAhaW1wb3J0YW50O1xuXHR3aWR0aDogMWVtICFpbXBvcnRhbnQ7XG5cdCN0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xufVxuLmRpaml0VmFsaWRhdGlvblRleHRCb3hFcnJvciAuZGlqaXRWYWxpZGF0aW9uQ29udGFpbmVyIHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qIENvbWJvQm94ICYgU3Bpbm5lciAqL1xuXG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGlqaXRDb21ib0JveCAuZGlqaXRBcnJvd0J1dHRvbkNvbnRhaW5lciB7XG5cdC8qIGRpdmlkaW5nIGxpbmUgYmV0d2VlbiBpbnB1dCBhcmVhIGFuZCB1cC9kb3duIGJ1dHRvbihzKSBmb3IgQ29tYm9Cb3ggYW5kIFNwaW5uZXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwIDAgMCAxcHggIWltcG9ydGFudDsgLyogIWltcG9ydGFudCBuZWVkZWQgZHVlIHRvIHdheXdhcmQgXCIudGhlbWUgLmRpaml0QnV0dG9uTm9kZVwiIHJ1bGVzICovXG59XG4uZGpfYTExeSAuZGlqaXRTZWxlY3QgLmRpaml0QXJyb3dCdXR0b25Db250YWluZXIsXG4uZGlqaXRUb29sYmFyIC5kaWppdENvbWJvQm94IC5kaWppdEFycm93QnV0dG9uQ29udGFpbmVyIHtcblx0Lyogb3ZlcnJpZGVzIGFib3ZlIHJ1bGUgcGx1cyBtaXJyb3ItaW1hZ2UgcnVsZSBpbiBkaWppdF9ydGwuY3NzIHRvIGhhdmUgbm8gZGl2aWRlciB3aGVuIENvbWJvQm94IGluIFRvb2xiYXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdENvbWJvQm94TWVudSB7XG5cdC8qIERyb3AgZG93biBtZW51IGlzIGltcGxlbWVudGVkIGFzIDx1bD4gPGxpLz4gPGxpLz4gLi4uIGJ1dCB3ZSBkb24ndCB3YW50IGNpcmNsZXMgYmVmb3JlIGVhY2ggaXRlbSAqL1xuXHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QnV0dG9uTm9kZSB7XG5cdC8qIGRpdmlkaW5nIGxpbmUgYmV0d2VlbiBpbnB1dCBhcmVhIGFuZCB1cC9kb3duIGJ1dHRvbihzKSBmb3IgQ29tYm9Cb3ggYW5kIFNwaW5uZXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwO1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdFNwaW5uZXIgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRCdXR0b25Ob2RlIHtcblx0Y2xlYXI6IGJvdGg7IC8qIElFIHdvcmthcm91bmQgKi9cbn1cblxuLmRqX2llIC5kaWppdFRvb2xiYXIgLmRpaml0Q29tYm9Cb3gge1xuXHQvKiBtYWtlIGNvbWJvYm94IGJ1dHRvbnMgYWxpZ24gcHJvcGVybHkgd2l0aCBvdGhlciBidXR0b25zIGluIGEgdG9vbGJhciAqL1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vKiBTcGlubmVyICovXG5cbi5kaWppdFRleHRCb3ggLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciB7XG5cdHdpZHRoOiAxZW07XG5cdHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uSW5uZXIge1xuXHR3aWR0aDoxZW07XG5cdHZpc2liaWxpdHk6aGlkZGVuICFpbXBvcnRhbnQ7IC8qIGp1c3QgYSBzaXppbmcgZWxlbWVudCAqL1xuXHRvdmVyZmxvdy14OmhpZGRlbjtcbn1cbi5kaWppdENvbWJvQm94IC5kaWppdEJ1dHRvbk5vZGUsXG4uZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItd2lkdGg6IDA7XG59XG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItd2lkdGg6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRUZXh0Qm94IC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIGlucHV0IHtcblx0d2lkdGg6IDFlbSAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0bWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDsgLyogc2hvdWxkIGF1dG8tY2VudGVyICovXG59XG4uZGpfaWUgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRwYWRkaW5nLWxlZnQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwLjNlbSAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxLjRlbSAhaW1wb3J0YW50O1xufVxuLmRqX2llNyAuZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIgLmRpaml0SW5wdXRGaWVsZCB7XG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyAvKiBtYW51YWxseSBjZW50ZXIgSU5QVVQ6IGNoYXJhY3RlciBpcyAuNWVtIGFuZCB0b3RhbCB3aWR0aCA9IDFlbSAqL1xuXHRwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxZW0gIWltcG9ydGFudDtcbn1cbi5kal9pZTYgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRtYXJnaW4tbGVmdDogMC4xZW0gIWltcG9ydGFudDtcblx0bWFyZ2luLXJpZ2h0OiAwLjFlbSAhaW1wb3J0YW50O1xuXHR3aWR0aDogMWVtICFpbXBvcnRhbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcblx0d2lkdGg6IDJlbSAhaW1wb3J0YW50O1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEFycm93QnV0dG9uIHtcblx0Lyogbm90ZTogLmRpaml0SW5wdXRMYXlvdXRDb250YWluZXIgbWFrZXMgdGhpcyBydWxlIG92ZXJyaWRlIC5kaWppdEFycm93QnV0dG9uIHNldHRpbmdzXG5cdCAqIGZvciBkaWppdC5mb3JtLkJ1dHRvblxuXHQgKi9cblx0cGFkZGluZzogMDtcblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHJpZ2h0OiAwO1xuXHRmbG9hdDogbm9uZTtcblx0aGVpZ2h0OiA1MCU7XG5cdHdpZHRoOiAxMDAlO1xuXHRib3R0b206IGF1dG87XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiBhdXRvO1xufVxuLmRqX2llcXVpcmtzIC5kaWppdFNwaW5uZXIgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdHdpZHRoOiBhdXRvO1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0RG93bkFycm93QnV0dG9uIHtcblx0dG9wOiA1MCU7XG5cdGJvcmRlci10b3Atd2lkdGg6IDFweCAhaW1wb3J0YW50O1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdFVwQXJyb3dCdXR0b24ge1xuXHQjYm90dG9tOiA1MCU7XHQvKiBvdGhlcndpc2UgKG9uIHNvbWUgbWFjaGluZXMpIHRvcCBhcnJvdyBpY29uIHRvbyBjbG9zZSB0byBzcGxpdHRlciBib3JkZXIgKElFNi83KSAqL1xuXHR0b3A6IDA7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHRtYXJnaW46IGF1dG87XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0aGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0aGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIgLmRpaml0SW5wdXRGaWVsZCB7XG5cdC1tb3otdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHQtbW96LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHQtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG5cdC1vLXRyYW5zZm9ybTogc2NhbGUoMC41KTtcblx0LW8tdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDtcblx0dHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHR0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcblx0cGFkZGluZy10b3A6IDA7XG5cdHBhZGRpbmctYm90dG9tOiAwO1xuXHRwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcblx0cGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuXHR3aWR0aDogMTAwJTtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmRqX2llIC5kaWppdFNwaW5uZXIgLmRpaml0QXJyb3dCdXR0b25Jbm5lciAuZGlqaXRJbnB1dEZpZWxkIHtcblx0em9vbTogNTAlOyAvKiBlbXVsYXRlIHRyYW5zZm9ybTogc2NhbGUoMC41KSAqL1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QXJyb3dCdXR0b24ge1xuXHR3aWR0aDogMTAwJTtcbn1cbi5kal9pZXF1aXJrcyAuZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QXJyb3dCdXR0b24ge1xuXHR3aWR0aDogMWVtOyAvKiBtYXRjaGVzIC5kal9hMTF5IC5kaWppdFRleHRCb3ggLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciBydWxlIC0gMTAwJSBpcyB0aGUgd2hvbGUgc2NyZWVuIHdpZHRoIGluIHF1aXJrcyAqL1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHR2ZXJ0aWNhbC1hbGlnbjp0b3A7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIHtcblx0d2lkdGg6IDFlbTtcbn1cblxuLyoqKipcblx0XHRkaWppdC5mb3JtLkNoZWNrQm94XG4gXHQgJlxuICBcdFx0ZGlqaXQuZm9ybS5SYWRpb0J1dHRvblxuICoqKiovXG5cbi5kaWppdENoZWNrQm94LFxuLmRpaml0UmFkaW8sXG4uZGlqaXRDaGVja0JveElucHV0IHtcblx0cGFkZGluZzogMDtcblx0Ym9yZGVyOiAwO1xuXHR3aWR0aDogMTZweDtcblx0aGVpZ2h0OiAxNnB4O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7XG5cdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRpaml0Q2hlY2tCb3ggaW5wdXQsXG4uZGlqaXRSYWRpbyBpbnB1dCB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi5kaWppdENoZWNrQm94SW5wdXQge1xuXHQvKiBwbGFjZSB0aGUgYWN0dWFsIGlucHV0IG9uIHRvcCwgYnV0IGludmlzaWJsZSAqL1xuXHRvcGFjaXR5OiAwO1xufVxuXG4uZGpfaWUgLmRpaml0Q2hlY2tCb3hJbnB1dCB7XG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbn1cblxuLmRqX2ExMXkgLmRpaml0Q2hlY2tCb3gsXG4uZGpfYTExeSAuZGlqaXRSYWRpbyB7XG5cdC8qIGluIGExMXkgbW9kZSB3ZSBkaXNwbGF5IHRoZSBuYXRpdmUgY2hlY2tib3ggKG5vdCB0aGUgaWNvbiksIHNvIGRvbid0IHJlc3RyaWN0IHRoZSBzaXplICovXG5cdHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG5cdGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0Q2hlY2tCb3hJbnB1dCB7XG5cdG9wYWNpdHk6IDE7XG5cdGZpbHRlcjogbm9uZTtcblx0d2lkdGg6IGF1dG87XG5cdGhlaWdodDogYXV0bztcbn1cblxuLmRqX2ExMXkgLmRpaml0Rm9jdXNlZExhYmVsIHtcblx0LyogZm9yIGNoZWNrYm94ZXMgb3IgcmFkaW8gYnV0dG9ucyBpbiBoaWdoIGNvbnRyYXN0IG1vZGUsIHVzZSBib3JkZXIgcmF0aGVyIHRoYW4gb3V0bGluZSB0byBpbmRpY2F0ZSBmb2N1cyAob3V0bGluZSBkb2VzIG5vdCB3b3JrIGluIEZGKSovXG5cdGJvcmRlcjogMXB4IGRvdHRlZDtcblx0b3V0bGluZTogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi8qKioqXG5cdFx0ZGlqaXQuUHJvZ3Jlc3NCYXJcbiAqKioqL1xuXG4uZGlqaXRQcm9ncmVzc0JhciB7XG4gICAgei1pbmRleDogMDsgLyogc28gei1pbmRleCBzZXR0aW5ncyBiZWxvdyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIG9mIHRoZSBQcm9ncmVzc0JhciAqL1xufVxuLmRpaml0UHJvZ3Jlc3NCYXJFbXB0eSB7XG5cdC8qIG91dGVyIGNvbnRhaW5lciBhbmQgYmFja2dyb3VuZCBvZiB0aGUgYmFyIHRoYXQncyBub3QgZmluaXNoZWQgeWV0Ki9cblx0cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO1xuXHRib3JkZXI6MXB4IHNvbGlkIGJsYWNrOyBcdC8qIGExMXk6IGJvcmRlciBuZWNlc3NhcnkgZm9yIGhpZ2gtY29udHJhc3QgbW9kZSAqL1xuXHR6LWluZGV4OjA7XHRcdFx0LyogZXN0YWJsaXNoIGEgc3RhY2tpbmcgY29udGV4dCBmb3IgdGhpcyBwcm9ncmVzcyBiYXIgKi9cbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJGdWxsIHtcblx0Lyogb3V0ZXIgY29udGFpbmVyIGZvciBiYWNrZ3JvdW5kIG9mIGJhciB0aGF0IGlzIGZpbmlzaGVkICovXG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHRvdmVyZmxvdzpoaWRkZW47XG5cdHotaW5kZXg6LTE7XG5cdHRvcDowO1xuXHR3aWR0aDoxMDAlO1xufVxuLmRqX2llNiAuZGlqaXRQcm9ncmVzc0JhckZ1bGwge1xuXHRoZWlnaHQ6MS42ZW07XG59XG5cbi5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGlubmVyIGNvbnRhaW5lciBmb3IgZmluaXNoZWQgcG9ydGlvbiAqL1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHRib3R0b206MDtcblx0cmlnaHQ6MDtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MDtcblx0d2lkdGg6IDEwMCU7ICAgIC8qIG5lZWRlZCBmb3IgSUUvcXVpcmtzICovXG5cdGhlaWdodDphdXRvO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiNhYWE7XG5cdGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG59XG5cbi5kal9hMTF5IC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGExMXk6ICBUaGUgYm9yZGVyIHByb3ZpZGVzIHZpc2liaWxpdHkgaW4gaGlnaC1jb250cmFzdCBtb2RlICovXG5cdGJvcmRlci13aWR0aDoycHg7XG5cdGJvcmRlci1zdHlsZTpzb2xpZDtcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4uZGpfaWU2IC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIHdpZHRoOmF1dG8gd29ya3MgaW4gSUU2IHdpdGggcG9zaXRpb246c3RhdGljIGJ1dCBub3QgcG9zaXRpb246YWJzb2x1dGUgKi9cblx0cG9zaXRpb246c3RhdGljO1xuXHQvKiBoZWlnaHQ6YXV0byBvciAxMDAlIGRvZXMgbm90IHdvcmsgaW4gSUU2ICovXG5cdGhlaWdodDoxLjZlbTtcbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJJbmRldGVybWluYXRlIC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGFuaW1hdGVkIGdpZiBmb3IgJ2luZGV0ZXJtaW5hdGUnIG1vZGUgKi9cbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJJbmRldGVybWluYXRlSGlnaENvbnRyYXN0SW1hZ2Uge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi5kal9hMTF5IC5kaWppdFByb2dyZXNzQmFySW5kZXRlcm1pbmF0ZSAuZGlqaXRQcm9ncmVzc0JhckluZGV0ZXJtaW5hdGVIaWdoQ29udHJhc3RJbWFnZSB7XG5cdGRpc3BsYXk6YmxvY2s7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHR0b3A6MDtcblx0Ym90dG9tOjA7XG5cdG1hcmdpbjowO1xuXHRwYWRkaW5nOjA7XG5cdHdpZHRoOjEwMCU7XG5cdGhlaWdodDphdXRvO1xufVxuXG4uZGlqaXRQcm9ncmVzc0JhckxhYmVsIHtcblx0ZGlzcGxheTpibG9jaztcblx0cG9zaXRpb246c3RhdGljO1xuXHR3aWR0aDoxMDAlO1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKioqKlxuXHRcdGRpaml0LlRvb2x0aXBcbiAqKioqL1xuXG4uZGlqaXRUb29sdGlwIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiAyMDAwO1xuXHRkaXNwbGF5OiBibG9jaztcblx0LyogbWFrZSB2aXNpYmxlIGJ1dCBvZmYgc2NyZWVuICovXG5cdGxlZnQ6IDA7XG5cdHRvcDogLTEwMDAwcHg7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4uZGlqaXRUb29sdGlwQ29udGFpbmVyIHtcblx0Ym9yZGVyOiBzb2xpZCBibGFjayAycHg7XG5cdGJhY2tncm91bmQ6ICNiOGI1YjU7XG5cdGNvbG9yOiBibGFjaztcblx0Zm9udC1zaXplOiBzbWFsbDtcbn1cblxuLmRpaml0VG9vbHRpcEZvY3VzTm9kZSB7XG5cdHBhZGRpbmc6IDJweCAycHggMnB4IDJweDtcbn1cblxuLmRpaml0VG9vbHRpcENvbm5lY3RvciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5kal9hMTF5IC5kaWppdFRvb2x0aXBDb25uZWN0b3Ige1xuXHRkaXNwbGF5OiBub25lO1x0Lyogd29uJ3Qgc2hvdyBiL2MgaXQncyBiYWNrZ3JvdW5kLWltYWdlOyBoaWRlIHRvIGF2b2lkIGJvcmRlciBnYXAgKi9cbn1cblxuLmRpaml0VG9vbHRpcERhdGEge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi8qIExheW91dCB3aWRnZXRzLiBUaGlzIGlzIGVzc2VudGlhbCBDU1MgdG8gbWFrZSBsYXlvdXQgd29yayAoaXQgaXNuJ3QgXCJzdHlsaW5nXCIgQ1NTKVxuICAgbWFrZSBzdXJlIHRoYXQgdGhlIHBvc2l0aW9uOmFic29sdXRlIGluIGRpaml0QWxpZ24qIG92ZXJyaWRlcyBvdGhlciBjbGFzc2VzICovXG5cbi5kaWppdExheW91dENvbnRhaW5lciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5kaWppdEFsaWduVG9wLFxuLmRpaml0QWxpZ25Cb3R0b20sXG4uZGlqaXRBbGlnbkxlZnQsXG4uZGlqaXRBbGlnblJpZ2h0IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5ib2R5IC5kaWppdEFsaWduQ2xpZW50IHsgcG9zaXRpb246IGFic29sdXRlOyB9XG5cbi8qXG4gKiBCb3JkZXJDb250YWluZXJcbiAqXG4gKiAuZGlqaXRCb3JkZXJDb250YWluZXIgaXMgYSBzdHlsaXplZCBsYXlvdXQgd2hlcmUgcGFuZXMgaGF2ZSBib3JkZXIgYW5kIG1hcmdpbi5cbiAqIC5kaWppdEJvcmRlckNvbnRhaW5lck5vR3V0dGVyIGlzIGEgcmF3IGxheW91dC5cbiAqL1xuLmRpaml0Qm9yZGVyQ29udGFpbmVyLCAuZGlqaXRCb3JkZXJDb250YWluZXJOb0d1dHRlciB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuICAgIHotaW5kZXg6IDA7IC8qIHNvIHotaW5kZXggc2V0dGluZ3MgYmVsb3cgaGF2ZSBubyBlZmZlY3Qgb3V0c2lkZSBvZiB0aGUgQm9yZGVyQ29udGFpbmVyICovXG59XG5cbi5kaWppdEJvcmRlckNvbnRhaW5lclBhbmUsXG4uZGlqaXRCb3JkZXJDb250YWluZXJOb0d1dHRlclBhbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcdC8qICFpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgcG9zaXRpb246cmVsYXRpdmUgaW4gZGlqaXRUYWJDb250YWluZXIgZXRjLiAqL1xuXHR6LWluZGV4OiAyO1x0XHQvKiBhYm92ZSB0aGUgc3BsaXR0ZXJzIHNvIHRoYXQgb2ZmLWJ5LW9uZSBicm93c2VyIGVycm9ycyBkb24ndCBjb3ZlciB1cCBib3JkZXIgb2YgcGFuZSAqL1xufVxuXG4uZGlqaXRCb3JkZXJDb250YWluZXIgPiAuZGlqaXRUZXh0QXJlYSB7XG5cdC8qIE9uIFNhZmFyaSwgZm9yIFNpbXBsZVRleHRBcmVhIGluc2lkZSBhIEJvcmRlckNvbnRhaW5lcixcblx0XHRkb24ndCB3YW50IHRvIGRpc3BsYXkgdGhlIGdyaXAgdG8gcmVzaXplICovXG5cdHJlc2l6ZTogbm9uZTtcbn1cblxuLmRpaml0R3V0dGVyIHtcblx0LyogZ3V0dGVyIGlzIGp1c3QgYSBwbGFjZSBob2xkZXIgZm9yIGVtcHR5IHNwYWNlIGJldHdlZW4gcGFuZXMgaW4gQm9yZGVyQ29udGFpbmVyICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Zm9udC1zaXplOiAxcHg7XHRcdC8qIG5lZWRlZCBieSBJRTYgZXZlbiB0aG91Z2ggZGl2IGlzIGVtcHR5LCBvdGhlcndpc2UgZ29lcyB0byAxNXB4ICovXG59XG5cbi8qIFNwbGl0Q29udGFpbmVyXG5cblx0J1YnID09IGNvbnRhaW5lciB0aGF0IHNwbGl0cyB2ZXJ0aWNhbGx5ICh1cC9kb3duKVxuXHQnSCcgPSBob3Jpem9udGFsIChsZWZ0L3JpZ2h0KVxuKi9cblxuLmRpaml0U3BsaXR0ZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHotaW5kZXg6IDEwO1x0XHQvKiBhYm92ZSB0aGUgcGFuZXMgc28gdGhhdCBzcGxpdHRlciBmb2N1cyBpcyB2aXNpYmxlIG9uIEZGLCBzZWUgIzc1ODMqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRib3JkZXItY29sb3I6IGdyYXk7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogMDtcbn1cbi5kal9pZSAuZGlqaXRTcGxpdHRlciB7XG5cdHotaW5kZXg6IDE7XHQvKiBiZWhpbmQgdGhlIHBhbmVzIHNvIHRoYXQgcGFuZSBib3JkZXJzIGFyZW4ndCBvYnNjdXJlZCBzZWUgdGVzdF9HdWkuaHRtbC9bMTQzOTJdICovXG59XG5cbi5kaWppdFNwbGl0dGVyQWN0aXZlIHtcblx0ei1pbmRleDogMTEgIWltcG9ydGFudDtcbn1cblxuLmRpaml0U3BsaXR0ZXJDb3ZlciB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHR6LWluZGV4Oi0xO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHR3aWR0aDoxMDAlO1xuXHRoZWlnaHQ6MTAwJTtcbn1cblxuLmRpaml0U3BsaXR0ZXJDb3ZlckFjdGl2ZSB7XG5cdHotaW5kZXg6MyAhaW1wb3J0YW50O1xufVxuXG4vKiAjNjk0NTogc3RvcCBtb3VzZSBldmVudHMgKi9cbi5kal9pZSAuZGlqaXRTcGxpdHRlckNvdmVyIHtcblx0YmFja2dyb3VuZDogd2hpdGU7XG5cdG9wYWNpdHk6IDA7XG59XG4uZGpfaWU2IC5kaWppdFNwbGl0dGVyQ292ZXIsXG4uZGpfaWU3IC5kaWppdFNwbGl0dGVyQ292ZXIsXG4uZGpfaWU4IC5kaWppdFNwbGl0dGVyQ292ZXIge1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XG59XG5cbi5kaWppdFNwbGl0dGVySCB7XG5cdGhlaWdodDogN3B4O1xuXHRib3JkZXItdG9wOjFweDtcblx0Ym9yZGVyLWJvdHRvbToxcHg7XG5cdGN1cnNvcjogcm93LXJlc2l6ZTtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kaWppdFNwbGl0dGVyViB7XG5cdHdpZHRoOiA3cHg7XG5cdGJvcmRlci1sZWZ0OjFweDtcblx0Ym9yZGVyLXJpZ2h0OjFweDtcblx0Y3Vyc29yOiBjb2wtcmVzaXplO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0U3BsaXRDb250YWluZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZGlqaXRTcGxpdFBhbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJILFxuLmRpaml0U3BsaXRDb250YWluZXJTaXplclYge1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0Zm9udC1zaXplOiAxcHg7XG5cdGJhY2tncm91bmQtY29sb3I6IFRocmVlREZhY2U7XG5cdGJvcmRlcjogMXB4IHNvbGlkO1xuXHRib3JkZXItY29sb3I6IFRocmVlREhpZ2hsaWdodCBUaHJlZURTaGFkb3cgVGhyZWVEU2hhZG93IFRocmVlREhpZ2hsaWdodDtcblx0bWFyZ2luOiAwO1xufVxuXG4uZGlqaXRTcGxpdENvbnRhaW5lclNpemVySCAudGh1bWIsIC5kaWppdFNwbGl0dGVyViAuZGlqaXRTcGxpdHRlclRodW1iIHtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0dG9wOjQ5JTtcbn1cblxuLmRpaml0U3BsaXRDb250YWluZXJTaXplclYgLnRodW1iLCAuZGlqaXRTcGxpdHRlckggLmRpaml0U3BsaXR0ZXJUaHVtYiB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHRsZWZ0OjQ5JTtcbn1cblxuLmRpaml0U3BsaXR0ZXJTaGFkb3csXG4uZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplckgsXG4uZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplclYge1xuXHRmb250LXNpemU6IDFweDtcblx0YmFja2dyb3VuZC1jb2xvcjogVGhyZWVEU2hhZG93O1xuXHQtbW96LW9wYWNpdHk6IDAuNTtcblx0b3BhY2l0eTogMC41O1xuXHRmaWx0ZXI6IEFscGhhKE9wYWNpdHk9NTApO1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJILCAuZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplckgge1xuXHRjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJWLCAuZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplclYge1xuXHRjdXJzb3I6IHJvdy1yZXNpemU7XG59XG5cbi5kal9hMTF5IC5kaWppdFNwbGl0dGVySCB7XG5cdGJvcmRlci10b3A6MXB4IHNvbGlkICNkM2QzZDMgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2QzZDNkMyAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0U3BsaXR0ZXJWIHtcblx0Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNkM2QzZDMgIWltcG9ydGFudDtcblx0Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZDNkM2QzICFpbXBvcnRhbnQ7XG59XG5cbi8qIENvbnRlbnRQYW5lICovXG5cbi5kaWppdENvbnRlbnRQYW5lIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBhdXRvO1x0LyogaWYgd2UgZG9uJ3QgaGF2ZSB0aGlzIChvciBvdmVyZmxvdzpoaWRkZW4pLCB0aGVuIFdpZGdldC5yZXNpemVUbygpIGRvZXNuJ3QgbWFrZSBzZW5zZSBmb3IgQ29udGVudFBhbmUgKi9cblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG4uZGlqaXRDb250ZW50UGFuZVNpbmdsZUNoaWxkIHtcblx0Lypcblx0ICogaWYgdGhlIENvbnRlbnRQYW5lIGhvbGRzIGEgc2luZ2xlIGxheW91dCB3aWRnZXQgY2hpbGQgd2hpY2ggaXMgYmVpbmcgc2l6ZWQgdG8gbWF0Y2ggdGhlIGNvbnRlbnQgcGFuZSxcblx0ICogdGhlbiB0aGUgQ29udGVudFBhbmUgc2hvdWxkIG5ldmVyIGdldCBhIHNjcm9sbGJhciAoYnV0IGl0IGRvZXMgZHVlIHRvIGJyb3dzZXIgYnVncywgc2VlICM5NDQ5XG5cdCAqL1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZGlqaXRDb250ZW50UGFuZUxvYWRpbmcgLmRpaml0SWNvbkxvYWRpbmcsXG4uZGlqaXRDb250ZW50UGFuZUVycm9yIC5kaWppdEljb25FcnJvciB7XG5cdG1hcmdpbi1yaWdodDogOXB4O1xufVxuXG4vKiBUaXRsZVBhbmUgYW5kIEZpZWxkc2V0ICovXG5cbi5kaWppdFRpdGxlUGFuZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRpaml0RmllbGRzZXQge1xuXHRib3JkZXI6IDFweCBzb2xpZCBncmF5O1xufVxuLmRpaml0VGl0bGVQYW5lVGl0bGUsIC5kaWppdEZpZWxkc2V0VGl0bGUge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGlqaXRUaXRsZVBhbmVUaXRsZUZpeGVkT3BlbiwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZENsb3NlZCxcbi5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZE9wZW4sIC5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZENsb3NlZCB7XG5cdC8qIFRpdGxlUGFuZSBvciBGaWVsZHNldCB0aGF0IGNhbm5vdCBiZSB0b2dnbGVkICovXG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cbi5kaWppdFRpdGxlUGFuZVRpdGxlICoge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZUlubmVyLCAuZGlqaXRGaWVsZHNldCAuZGlqaXRBcnJvd05vZGVJbm5lciB7XG5cdC8qIG5vcm1hbGx5LCBoaWRlIGFycm93IHRleHQgaW4gZmF2b3Igb2YgaWNvbiAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRqX2ExMXkgLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZUlubmVyLCAuZGpfYTExeSAuZGlqaXRGaWVsZHNldCAuZGlqaXRBcnJvd05vZGVJbm5lciB7XG5cdC8qIC4uLiBleGNlcHQgaW4gYTExeSBtb2RlLCB0aGVuIHNob3cgdGV4dCBhcnJvdyAqL1xuXHRkaXNwbGF5OiBpbmxpbmU7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XHRcdC8qIGJlY2F1c2UgLSBhbmQgKyBhcmUgZGlmZmVyZW50IHdpZHRocyAqL1xufVxuLmRqX2ExMXkgLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZSwgLmRqX2ExMXkgLmRpaml0RmllbGRzZXQgLmRpaml0QXJyb3dOb2RlIHtcblx0LyogLi4uIGFuZCBoaWRlIGljb24gKFRPRE86IGp1c3QgcG9pbnQgZGlqaXRJY29uIGNsYXNzIG9uIHRoZSBpY29uLCBhbmQgaXQgaGlkZXMgYXV0b21hdGljYWxseSkgKi9cblx0ZGlzcGxheTogbm9uZTtcbn1cbi5kaWppdFRpdGxlUGFuZVRpdGxlRml4ZWRPcGVuIC5kaWppdEFycm93Tm9kZSwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZE9wZW4gLmRpaml0QXJyb3dOb2RlSW5uZXIsXG4uZGlqaXRUaXRsZVBhbmVUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZSwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZENsb3NlZCAuZGlqaXRBcnJvd05vZGVJbm5lcixcbi5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZE9wZW4gLmRpaml0QXJyb3dOb2RlLCAuZGlqaXRGaWVsZHNldFRpdGxlRml4ZWRPcGVuIC5kaWppdEFycm93Tm9kZUlubmVyLFxuLmRpaml0RmllbGRzZXRUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZSwgLmRpaml0RmllbGRzZXRUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZUlubmVyIHtcblx0LyogZG9uJ3Qgc2hvdyB0aGUgb3BlbiBjbG9zZSBpY29uIG9yIHRleHQgYXJyb3c7IGl0IG1ha2VzIHRoZSB1c2VyIHRoaW5rIHRoZSBwYW5lIGlzIGNsb3NhYmxlICovXG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcdC8qICFpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgYWJvdmUgYTExeSBydWxlcyB0byBzaG93IHRleHQgYXJyb3cgKi9cbn1cblxuLmRqX2llNiAuZGlqaXRUaXRsZVBhbmVDb250ZW50T3V0ZXIsXG4uZGpfaWU2IC5kaWppdFRpdGxlUGFuZSAuZGlqaXRUaXRsZVBhbmVUaXRsZSB7XG5cdC8qIGZvcmNlIGhhc0xheW91dCB0byBlbnN1cmUgYm9yZGVycyBldGMsIHNob3cgdXAgKi9cblx0em9vbTogMTtcbn1cblxuLyogQ29sb3IgUGFsZXR0ZVxuICogU2l6ZXMgZGVzaWduZWQgc28gdGhhdCB0YWJsZSBjZWxsIHBvc2l0aW9ucyBtYXRjaCBpY29ucyBpbiB1bmRlcmx5aW5nIGltYWdlLFxuICogd2hpY2ggYXBwZWFyIGF0IDIweDIwIGludGVydmFscy5cbiAqL1xuXG4uZGlqaXRDb2xvclBhbGV0dGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUge1xuXHQvKiBUYWJsZSB0aGF0IGhvbGRzIHRoZSBwYWxldHRlIGNlbGxzLCBhbmQgb3ZlcmxheXMgaW1hZ2UgZmlsZSB3aXRoIGNvbG9yIHN3YXRjaGVzLlxuXHQgKiBwYWRkaW5nL21hcmdpbiB0byBhbGlnbiB0YWJsZSB3aXRoIGltYWdlLlxuXHQgKi9cblx0cGFkZGluZzogMnB4IDNweCAzcHggM3B4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdG91dGxpbmU6IDA7XG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG59XG4uZGpfaWU2IC5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUsXG4uZGpfaWU3IC5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUsXG4uZGpfaWVxdWlya3MgLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVUYWJsZSB7XG5cdC8qIHVzaW5nIHBhZGRpbmcgYWJvdmUgc28gdGhhdCBmb2N1cyBib3JkZXIgaXNuJ3QgY3V0b2ZmIG9uIG1vei93ZWJraXQsXG5cdCAqIGJ1dCB1c2luZyBtYXJnaW4gb24gSUUgYmVjYXVzZSBwYWRkaW5nIGRvZXNuJ3Qgc2VlbSB0byB3b3JrXG5cdCAqL1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDJweCAzcHggM3B4IDNweDtcbn1cblxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVDZWxsIHtcblx0LyogPHRkPiBpbiB0aGUgPHRhYmxlPiAqL1xuXHRmb250LXNpemU6IDFweDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kOiBub25lO1xufVxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVJbWcge1xuXHQvKiBDYWxsZWQgZGlqaXRQYWxldHRlSW1nIGZvciBiYWNrLWNvbXBhdCwgdGhpcyBhY3R1YWxseSB3cmFwcyB0aGUgY29sb3Igc3dhdGNoIHdpdGggYSBib3JkZXIgYW5kIHBhZGRpbmcgKi9cblx0cGFkZGluZzogMXB4O1x0XHQvKiB3aGl0ZSBhcmVhIGJldHdlZW4gZ3JheSBib3JkZXIgYW5kIGNvbG9yIHN3YXRjaCAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuXHRtYXJnaW46IDJweCAxcHg7XG5cdGN1cnNvcjogZGVmYXVsdDtcblx0Zm9udC1zaXplOiAxcHg7XHRcdC8qIHByZXZlbnQgPHNwYW4+IGZyb20gZ2V0dGluZyBiaWdnZXIganVzdCB0byBob2xkIGEgY2hhcmFjdGVyICovXG59XG4uZGpfZ2Vja28gLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVJbWcge1xuXHRwYWRkaW5nLWJvdHRvbTogMDtcdC8qIHdvcmthcm91bmQgcmVuZGVyaW5nIGdsaXRjaCBvbiBGRiwgaXQgYWRkcyBhbiBleHRyYSBwaXhlbCBhdCB0aGUgYm90dG9tICovXG59XG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0Q29sb3JQYWxldHRlU3dhdGNoIHtcblx0LyogdGhlIGFjdHVhbCBwYXJ0IHdoZXJlIHRoZSBjb2xvciBpcyAqL1xuXHR3aWR0aDogMTRweDtcblx0aGVpZ2h0OiAxMnB4O1xufVxuLmRpaml0UGFsZXR0ZVRhYmxlIHRkIHtcblx0XHRwYWRkaW5nOiAwO1xufVxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVDZWxsOmhvdmVyIC5kaWppdFBhbGV0dGVJbWcge1xuXHQvKiBob3ZlcmVkIGNvbG9yIHN3YXRjaCAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xufVxuXG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZUNlbGw6YWN0aXZlIC5kaWppdFBhbGV0dGVJbWcsXG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZVRhYmxlIC5kaWppdFBhbGV0dGVDZWxsU2VsZWN0ZWQgLmRpaml0UGFsZXR0ZUltZyB7XG5cdGJvcmRlcjogMnB4IHNvbGlkICMwMDA7XG5cdG1hcmdpbjogMXB4IDA7XHQvKiByZWR1Y2UgbWFyZ2luIHRvIGNvbXBlbnNhdGUgZm9yIGluY3JlYXNlZCBib3JkZXIgKi9cbn1cblxuXG4uZGpfYTExeSAuZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZVRhYmxlLFxuLmRqX2ExMXkgLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVUYWJsZSAqIHtcblx0LyogdGFibGUgY2VsbHMgYXJlIHRvIGNhdGNoIGV2ZW50cywgYnV0IHRoZSBzd2F0Y2hlcyBhcmUgaW4gdGhlIFBhbGV0dGVJbWcgYmVoaW5kIHRoZSB0YWJsZSAqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKiBBY2NvcmRpb25Db250YWluZXIgKi9cblxuLmRpaml0QWNjb3JkaW9uQ29udGFpbmVyIHtcblx0Ym9yZGVyOjFweCBzb2xpZCAjYjdiN2I3O1xuXHRib3JkZXItdG9wOjAgIWltcG9ydGFudDtcbn1cbi5kaWppdEFjY29yZGlvblRpdGxlIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0QWNjb3JkaW9uVGl0bGVTZWxlY3RlZCB7XG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyogaW1hZ2VzIG9mZiwgaGlnaC1jb250cmFzdCBtb2RlIHN0eWxlcyAqL1xuLmRpaml0QWNjb3JkaW9uVGl0bGUgLmFycm93VGV4dFVwLFxuLmRpaml0QWNjb3JkaW9uVGl0bGUgLmFycm93VGV4dERvd24ge1xuXHRkaXNwbGF5OiBub25lO1xuXHRmb250LXNpemU6IDAuNjVlbTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZSAuYXJyb3dUZXh0VXAsXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZVNlbGVjdGVkIC5hcnJvd1RleHREb3duIHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZVNlbGVjdGVkIC5hcnJvd1RleHRVcCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kaWppdEFjY29yZGlvbkNoaWxkV3JhcHBlciB7XG5cdC8qIHRoaXMgaXMgdGhlIG5vZGUgd2hvc2UgaGVpZ2h0IGlzIGFkanVzdGVkICovXG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIENhbGVuZGFyICovXG5cbi5kaWppdENhbGVuZGFyQ29udGFpbmVyIHRhYmxlIHtcblx0d2lkdGg6IGF1dG87XHQvKiBpbiBjYXNlIHVzZXIgaGFzIHNwZWNpZmllZCBhIHdpZHRoIGZvciB0aGUgVEFCTEUgbm9kZXMsIHNlZSAjMTA1NTMgKi9cblx0Y2xlYXI6IGJvdGg7ICAgIC8qIGNsZWFyIG1hcmdpbiBjcmVhdGVkIGZvciBsZWZ0L3JpZ2h0IG1vbnRoIGFycm93czsgbmVlZGVkIG9uIElFMTAgZm9yIENhbGVuZGFyTGl0ZSAqL1xufVxuLmRpaml0Q2FsZW5kYXJDb250YWluZXIgdGgsIC5kaWppdENhbGVuZGFyQ29udGFpbmVyIHRkIHtcblx0cGFkZGluZzogMDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRpaml0Q2FsZW5kYXJNb250aENvbnRhaW5lciB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5kaWppdENhbGVuZGFyRGVjcmVtZW50QXJyb3cge1xuXHRmbG9hdDogbGVmdDtcbn1cbi5kaWppdENhbGVuZGFySW5jcmVtZW50QXJyb3cge1xuXHRmbG9hdDogcmlnaHQ7XG59XG5cbi5kaWppdENhbGVuZGFyWWVhckxhYmVsIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyAgICAvKiBtYWtlIHN1cmUgcHJldmlvdXMsIGN1cnJlbnQsIGFuZCBuZXh0IHllYXIgYXBwZWFyIG9uIHNhbWUgcm93ICovXG59XG5cbi5kaWppdENhbGVuZGFyTmV4dFllYXIge1xuXHRtYXJnaW46MCAwIDAgMC41NWVtO1xufVxuXG4uZGlqaXRDYWxlbmRhclByZXZpb3VzWWVhciB7XG5cdG1hcmdpbjowIDAuNTVlbSAwIDA7XG59XG5cbi5kaWppdENhbGVuZGFySW5jcmVtZW50Q29udHJvbCB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kaWppdENhbGVuZGFySW5jcmVtZW50Q29udHJvbCxcbi5kaWppdENhbGVuZGFyRGF0ZVRlbXBsYXRlLFxuLmRpaml0Q2FsZW5kYXJNb250aExhYmVsLFxuLmRpaml0Q2FsZW5kYXJQcmV2aW91c1llYXIsXG4uZGlqaXRDYWxlbmRhck5leHRZZWFyIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGlqaXRDYWxlbmRhckRpc2FibGVkRGF0ZSB7XG5cdGNvbG9yOiBncmF5O1xuXHR0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZGlqaXRTcGFjZXIge1xuXHQvKiBkb24ndCBkaXNwbGF5IGl0LCBidXQgbWFrZSBpdCBhZmZlY3QgdGhlIHdpZHRoICovXG4gIFx0cG9zaXRpb246IHJlbGF0aXZlO1xuICBcdGhlaWdodDogMXB4O1xuICBcdG92ZXJmbG93OiBoaWRkZW47XG4gIFx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vKiBTdHlsaW5nIGZvciBtb250aCBkcm9wIGRvd24gbGlzdCAqL1xuXG4uZGlqaXRDYWxlbmRhck1vbnRoTWVudSAuZGlqaXRDYWxlbmRhck1vbnRoTGFiZWwge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcbn1cblxuLyogTWVudSAqL1xuXG4uZGlqaXRNZW51IHtcblx0Ym9yZGVyOjFweCBzb2xpZCBibGFjaztcblx0YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtcbn1cbi5kaWppdE1lbnVUYWJsZSB7XG5cdGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtcblx0Ym9yZGVyLXdpZHRoOjA7XG5cdGJhY2tncm91bmQtY29sb3I6d2hpdGU7XG59XG5cbi8qIHdvcmthcm91bmQgZm9yIHdlYmtpdCBidWcgIzg0MjcsIHJlbW92ZSB0aGlzIHdoZW4gaXQgaXMgZml4ZWQgdXBzdHJlYW0gKi9cbi5kal93ZWJraXQgLmRpaml0TWVudVRhYmxlIHRkW2NvbHNwYW49XCIyXCJde1xuXHRib3JkZXItcmlnaHQ6aGlkZGVuO1xufVxuXG4uZGlqaXRNZW51SXRlbSB7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdHBhZGRpbmc6LjFlbSAuMmVtO1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLypcbk5vIG5lZWQgdG8gc2hvdyBhIGZvY3VzIGJvcmRlciBzaW5jZSBpdCdzIG9idmlvdXMgZnJvbSB0aGUgc2hhZGluZywgYW5kIHRoZXJlJ3MgYSAuZGpfYTExeSAuZGlqaXRNZW51SXRlbVNlbGVjdGVkXG5ydWxlIGJlbG93IHRoYXQgaGFuZGxlcyB0aGUgaGlnaCBjb250cmFzdCBjYXNlIHdoZW4gdGhlcmUncyBubyBzaGFkaW5nLlxuSGlkaW5nIHRoZSBmb2N1cyBib3JkZXIgYWxzbyB3b3JrcyBhcm91bmQgd2Via2l0IGJ1ZyBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTI1Nzc5LlxuKi9cbi5kaWppdE1lbnVJdGVtOmZvY3VzIHtcblx0b3V0bGluZTogbm9uZVxufVxuXG4uZGlqaXRNZW51UGFzc2l2ZSAuZGlqaXRNZW51SXRlbUhvdmVyLFxuLmRpaml0TWVudUl0ZW1TZWxlY3RlZCB7XG5cdC8qXG5cdCAqIGRpaml0TWVudUl0ZW1Ib3ZlciByZWZlcnMgdG8gYWN0dWFsIG1vdXNlIG92ZXJcblx0ICogZGlqaXRNZW51SXRlbVNlbGVjdGVkIGlzIHVzZWQgYWZ0ZXIgYSBtZW51IGhhcyBiZWVuIFwiYWN0aXZhdGVkXCIgYnlcblx0ICogY2xpY2tpbmcgaXQsIHRhYmJpbmcgaW50byBpdCwgb3IgYmVpbmcgb3BlbmVkIGZyb20gYSBwYXJlbnQgbWVudSxcblx0ICogYW5kIGRlbm90ZXMgdGhhdCB0aGUgbWVudSBpdGVtIGhhcyBmb2N1cyBvciB0aGF0IGZvY3VzIGlzIG9uIGEgY2hpbGRcblx0ICogbWVudVxuXHQgKi9cblx0YmFja2dyb3VuZC1jb2xvcjpibGFjaztcblx0Y29sb3I6d2hpdGU7XG59XG5cbi5kaWppdE1lbnVJdGVtSWNvbiwgLmRpaml0TWVudUV4cGFuZCB7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi5kaWppdE1lbnVJdGVtRGlzYWJsZWQgKiB7XG5cdC8qIGZvciBhIGRpc2FibGVkIG1lbnUgaXRlbSwganVzdCBzZXQgaXQgdG8gbW9zdGx5IHRyYW5zcGFyZW50ICovXG5cdG9wYWNpdHk6MC41O1xuXHRjdXJzb3I6ZGVmYXVsdDtcbn1cbi5kal9pZSAuZGpfYTExeSAuZGlqaXRNZW51SXRlbURpc2FibGVkLFxuLmRqX2llIC5kal9hMTF5IC5kaWppdE1lbnVJdGVtRGlzYWJsZWQgKixcbi5kal9pZSAuZGlqaXRNZW51SXRlbURpc2FibGVkICoge1xuXHRjb2xvcjogZ3JheTtcblx0ZmlsdGVyOiBhbHBoYShvcGFjaXR5PTM1KTtcbn1cblxuLmRpaml0TWVudUl0ZW1MYWJlbCB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kal9hMTF5IC5kaWppdE1lbnVJdGVtU2VsZWN0ZWQge1xuXHRib3JkZXI6IDFweCBkb3R0ZWQgYmxhY2sgIWltcG9ydGFudDtcdC8qIGZvciAyLjAgdXNlIG91dGxpbmUgaW5zdGVhZCwgdG8gcHJldmVudCBqaXR0ZXIgKi9cbn1cblxuLmRqX2ExMXkgLmRpaml0TWVudUl0ZW1TZWxlY3RlZCAuZGlqaXRNZW51SXRlbUxhYmVsIHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZGpfaWU4IC5kal9hMTF5IC5kaWppdE1lbnVJdGVtTGFiZWwge1xuXHRwb3NpdGlvbjpzdGF0aWM7XG59XG5cbi5kaWppdE1lbnVFeHBhbmRBMTF5IHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi5kal9hMTF5IC5kaWppdE1lbnVFeHBhbmRBMTF5IHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGlqaXRNZW51U2VwYXJhdG9yIHRkIHtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKiBzZXBhcmF0b3IgY2FuIGJlIHR3byBwaXhlbHMgLS0gc2V0IGJvcmRlciBvZiBlaXRoZXIgb25lIHRvIDAgdG8gaGF2ZSBvbmx5IG9uZSAqL1xuLmRpaml0TWVudVNlcGFyYXRvclRvcCB7XG5cdGhlaWdodDogNTAlO1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi10b3A6M3B4O1xuXHRmb250LXNpemU6IDFweDtcbn1cblxuLmRpaml0TWVudVNlcGFyYXRvckJvdHRvbSB7XG5cdGhlaWdodDogNTAlO1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi1ib3R0b206M3B4O1xuXHRmb250LXNpemU6IDFweDtcbn1cblxuLyogQ2hlY2tlZE1lbnVJdGVtIGFuZCBSYWRpb01lbnVJdGVtICovXG4uZGlqaXRNZW51SXRlbUljb25DaGFyIHtcblx0ZGlzcGxheTogbm9uZTtcdFx0LyogZG9uJ3QgZGlzcGxheSBleGNlcHQgaW4gaGlnaCBjb250cmFzdCBtb2RlICovXG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcdC8qIGZvciBoaWdoIGNvbnRyYXN0IG1vZGUgd2hlbiBtZW51aXRlbSBpcyB1bmNoZWNrZWQ6IGxlYXZlIHNwYWNlIGZvciB3aGVuIGl0IGlzIGNoZWNrZWQgKi9cbn1cbi5kal9hMTF5IC5kaWppdE1lbnVJdGVtSWNvbkNoYXIge1xuXHRkaXNwbGF5OiBpbmxpbmU7XHQvKiBkaXNwbGF5IGNoYXJhY3RlciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUsIHNpbmNlIGljb24gZG9lc24ndCBzaG93ICovXG59XG4uZGlqaXRDaGVja2VkTWVudUl0ZW1DaGVja2VkIC5kaWppdE1lbnVJdGVtSWNvbkNoYXIsXG4uZGlqaXRSYWRpb01lbnVJdGVtQ2hlY2tlZCAuZGlqaXRNZW51SXRlbUljb25DaGFyIHtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTsgLyogbWVudWl0ZW0gaXMgY2hlY2tlZCAqL1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdE1lbnVCYXIgLmRpaml0TWVudUl0ZW0ge1xuXHQvKiBzbyBib3R0b20gYm9yZGVyIG9mIE1lbnVCYXIgYXBwZWFycyBvbiBJRTcgaW4gaGlnaC1jb250cmFzdCBtb2RlICovXG5cdG1hcmdpbjogMDtcbn1cblxuLyogU3RhY2tDb250YWluZXIgKi9cblxuLmRpaml0U3RhY2tDb250cm9sbGVyIC5kaWppdFRvZ2dsZUJ1dHRvbkNoZWNrZWQgKiB7XG5cdGN1cnNvcjogZGVmYXVsdDtcdC8qIGJlY2F1c2UgcHJlc3NpbmcgaXQgaGFzIG5vIGVmZmVjdCAqL1xufVxuXG4vKioqXG5UYWJDb250YWluZXJcblxuTWFpbiBjbGFzcyBoaWVyYXJjaHk6XG5cbi5kaWppdFRhYkNvbnRhaW5lciAtIHRoZSB3aG9sZSBUYWJDb250YWluZXJcbiAgIC5kaWppdFRhYkNvbnRyb2xsZXIgLyAuZGlqaXRUYWJMaXN0Q29udGFpbmVyLXRvcCAtIHdyYXBwZXIgZm9yIHRhYiBidXR0b25zLCBzY3JvbGwgYnV0dG9uc1xuXHQgLmRpaml0VGFiTGlzdFdyYXBwZXIgLyAuZGlqaXRUYWJDb250YWluZXJUb3BTdHJpcCAtIG91dGVyIHdyYXBwZXIgZm9yIHRhYiBidXR0b25zIChub3JtYWwgd2lkdGgpXG5cdFx0Lm5vd3JhcFRhYlN0cmlwIC8gLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgLSBpbm5lciB3cmFwcGVyIGZvciB0YWIgYnV0dG9ucyAoNTBLIHdpZHRoKVxuICAgLmRpaml0VGFiUGFuZVdyYXBwZXIgLSB3cmFwcGVyIGZvciBjb250ZW50IHBhbmVzLCBoYXMgYWxsIGJvcmRlcnMgZXhjZXB0IHRoZSBvbmUgYmV0d2VlbiBjb250ZW50IGFuZCB0YWJzXG4qKiovXG5cbi5kaWppdFRhYkNvbnRhaW5lciB7XG4gICAgei1pbmRleDogMDsgLyogc28gei1pbmRleCBzZXR0aW5ncyBiZWxvdyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIG9mIHRoZSBUYWJDb250YWluZXIgKi9cbiAgICBvdmVyZmxvdzogdmlzaWJsZTsgLyogcHJldmVudCBvZmYtYnktb25lLXBpeGVsIGVycm9ycyBmcm9tIGhpZGluZyBib3R0b20gYm9yZGVyIChvcHBvc2l0ZSB0YWIgbGFiZWxzKSAqL1xufVxuLmRqX2llNiAuZGlqaXRUYWJDb250YWluZXIge1xuICAgIC8qIHdvcmthcm91bmQgSUU2IHByb2JsZW0gd2hlbiB0YWxsIGNvbnRlbnQgb3ZlcmZsb3dzIFRhYkNvbnRhaW5lciwgc2VlIGVkaXRvci90ZXN0X0Z1bGxTY3JlZW4uaHRtbCAqL1xuICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxufVxuLmRpaml0VGFiQ29udGFpbmVyTm9MYXlvdXQge1xuXHR3aWR0aDogMTAwJTtcdC8qIG90aGVyd2lzZSBTY3JvbGxpbmdUYWJDb250cm9sbGVyIGdvZXMgdG8gNTBLIHBpeGVscyB3aWRlICovXG59XG5cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzLFxuLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMsXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMsXG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIHtcbiAgICB6LWluZGV4OiAxO1xuXHRvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OyAgLyogc28gdGFicyBjYW4gY292ZXIgdXAgYm9yZGVyIGFkamFjZW50IHRvIGNvbnRhaW5lciAqL1xufVxuXG4uZGlqaXRUYWJDb250cm9sbGVyIHtcbiAgICB6LWluZGV4OiAxO1xufVxuLmRpaml0VGFiQ29udGFpbmVyQm90dG9tLWNvbnRhaW5lcixcbi5kaWppdFRhYkNvbnRhaW5lclRvcC1jb250YWluZXIsXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LWNvbnRhaW5lcixcbi5kaWppdFRhYkNvbnRhaW5lclJpZ2h0LWNvbnRhaW5lciB7XG5cdHotaW5kZXg6MDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0Ym9yZGVyOiAxcHggc29saWQgYmxhY2s7XG59XG4ubm93cmFwVGFiU3RyaXAge1xuXHR3aWR0aDogNTAwMDBweDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyAgLyoganVzdCBpbiBjYXNlIGFuY2VzdG9yIGhhcyBub24tc3RhbmRhcmQgc2V0dGluZyAqL1xuICAgIHotaW5kZXg6IDE7XG59XG4uZGlqaXRUYWJMaXN0V3JhcHBlciB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogMTtcbn1cblxuLmRqX2ExMXkgLnRhYlN0cmlwQnV0dG9uIGltZyB7XG5cdC8qIGhpZGUgdGhlIGljb25zIChvciByYXRoZXIgdGhlIGVtcHR5IHNwYWNlIHdoZXJlIHRoZXkgbm9ybWFsbHkgYXBwZWFyKSBiZWNhdXNlIHRleHQgd2lsbCBhcHBlYXIgaW5zdGVhZCAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJUb3AtdGFicyB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjaztcbn1cbi5kaWppdFRhYkNvbnRhaW5lclRvcC1jb250YWluZXIge1xuXHRib3JkZXItdG9wOiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMge1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBibGFjaztcblx0ZmxvYXQ6IGxlZnQ7ICAgIC8qIG5lZWRlZCBmb3IgSUU3IFJUTCBtb2RlICovXG59XG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LWNvbnRhaW5lciB7XG5cdGJvcmRlci1sZWZ0OiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJCb3R0b20tdGFicyB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjaztcbn1cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS1jb250YWluZXIge1xuXHRib3JkZXItYm90dG9tOiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIHtcblx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCBibGFjaztcblx0ZmxvYXQ6IGxlZnQ7ICAgIC8qIG5lZWRlZCBmb3IgSUU3IFJUTCBtb2RlICovXG59XG4uZGlqaXRUYWJDb250YWluZXJSaWdodC1jb250YWluZXIge1xuXHRib3JkZXItcmlnaHQ6IDA7XG59XG5cbmRpdi5kaWppdFRhYkRpc2FibGVkLCAuZGpfaWUgZGl2LmRpaml0VGFiRGlzYWJsZWQge1xuXHRjdXJzb3I6IGF1dG87XG59XG5cbi5kaWppdFRhYiB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcblx0d2hpdGUtc3BhY2U6bm93cmFwO1xuXHR6LWluZGV4OjM7XG59XG4uZGlqaXRUYWIgKiB7XG5cdC8qIG1ha2UgdGFiIGljb25zIGFuZCBjbG9zZSBpY29uIGxpbmUgdXAgdy90ZXh0ICovXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uZGlqaXRUYWJDaGVja2VkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1x0LyogYmVjYXVzZSBjbGlja2luZyB3aWxsIGhhdmUgbm8gZWZmZWN0ICovXG59XG5cbi5kaWppdFRhYkNvbnRhaW5lclRvcC10YWJzIC5kaWppdFRhYiB7XG5cdHRvcDogMXB4O1x0LyogdG8gb3ZlcmxhcCBib3JkZXIgb24gLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgKi9cbn1cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzIC5kaWppdFRhYiB7XG5cdHRvcDogLTFweDtcdC8qIHRvIG92ZXJsYXAgYm9yZGVyIG9uIC5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzICovXG59XG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMgLmRpaml0VGFiIHtcblx0bGVmdDogMXB4O1x0LyogdG8gb3ZlcmxhcCBib3JkZXIgb24gLmRpaml0VGFiQ29udGFpbmVyTGVmdC10YWJzICovXG59XG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIC5kaWppdFRhYiB7XG5cdGxlZnQ6IC0xcHg7XHQvKiB0byBvdmVybGFwIGJvcmRlciBvbiAuZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzICovXG59XG5cblxuLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgLmRpaml0VGFiLFxuLmRpaml0VGFiQ29udGFpbmVyQm90dG9tLXRhYnMgLmRpaml0VGFiIHtcblx0LyogSW5saW5lLWJsb2NrICovXG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1x0XHRcdC8qIHdlYmtpdCBhbmQgRkYzICovXG5cdCN6b29tOiAxOyAvKiBzZXQgaGFzTGF5b3V0OnRydWUgdG8gbWltaWMgaW5saW5lLWJsb2NrICovXG5cdCNkaXNwbGF5OmlubGluZTsgLyogZG9uJ3QgdXNlIC5kal9pZSBzaW5jZSB0aGF0IGluY3JlYXNlcyB0aGUgcHJpb3JpdHkgKi9cbn1cblxuLnRhYlN0cmlwQnV0dG9uIHtcblx0ei1pbmRleDogMTI7XG59XG5cbi5kaWppdFRhYkJ1dHRvbkRpc2FibGVkIC50YWJTdHJpcEJ1dHRvbiB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cblxuLmRpaml0VGFiQ2xvc2VCdXR0b24ge1xuXHRtYXJnaW4tbGVmdDogMWVtO1xufVxuXG4uZGlqaXRUYWJDbG9zZVRleHQge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi5kaWppdFRhYiAudGFiTGFiZWwge1xuXHQvKiBtYWtlIHN1cmUgdGFicyB3L2Nsb3NlIGJ1dHRvbiBhbmQgdy9vdXQgY2xvc2UgYnV0dG9uIGFyZSBzYW1lIGhlaWdodCwgZXZlbiB3L3NtYWxsICg8MTVweCkgZm9udC5cblx0ICogYXNzdW1lcyA8PTE1cHggaGVpZ2h0IGZvciBjbG9zZSBidXR0b24gaWNvbi5cblx0ICovXG5cdG1pbi1oZWlnaHQ6IDE1cHg7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5kaWppdE5vSWNvbiB7XG5cdC8qIGFwcGxpZWQgdG8gPGltZz4vPHNwYW4+IG5vZGUgd2hlbiB0aGVyZSBpcyBubyBpY29uIHNwZWNpZmllZCAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRqX2llNiAuZGlqaXRUYWIgLmRpaml0Tm9JY29uIHtcblx0LyogYmVjYXVzZSBtaW4taGVpZ2h0IChvbiAudGFiTGFiZWwsIGFib3ZlKSBkb2Vzbid0IHdvcmsgb24gSUU2ICovXG5cdGRpc3BsYXk6IGlubGluZTtcblx0aGVpZ2h0OiAxNXB4O1xuXHR3aWR0aDogMXB4O1xufVxuXG4vKiBpbWFnZXMgb2ZmLCBoaWdoLWNvbnRyYXN0IG1vZGUgc3R5bGVzICovXG5cbi5kal9hMTF5IC5kaWppdFRhYkNsb3NlQnV0dG9uIHtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHR3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmRqX2ExMXkgLmRpaml0VGFiQ2xvc2VUZXh0IHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGlqaXRUYWJQYW5lLFxuLmRpaml0U3RhY2tDb250YWluZXItY2hpbGQsXG4uZGlqaXRBY2NvcmRpb25Db250YWluZXItY2hpbGQge1xuXHQvKiBjaGlsZHJlbiBvZiBUYWJDb250YWluZXIsIFN0YWNrQ29udGFpbmVyLCBhbmQgQWNjb3JkaW9uQ29udGFpbmVyIHNob3VsZG4ndCBoYXZlIGJvcmRlcnNcblx0ICogYi9jIGEgYm9yZGVyIGlzIGFscmVhZHkgdGhlcmUgZnJvbSB0aGUgVGFiQ29udGFpbmVyL1N0YWNrQ29udGFpbmVyL0FjY29yZGlvbkNvbnRhaW5lciBpdHNlbGYuXG5cdCAqL1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBJbmxpbmVFZGl0Qm94ICovXG4uZGlqaXRJbmxpbmVFZGl0Qm94RGlzcGxheU1vZGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcdC8qIHNvIGtleWxpbmUgKGJvcmRlcikgb24gaG92ZXIgY2FuIGFwcGVhciB3aXRob3V0IHNjcmVlbiBqdW1wICovXG5cdGN1cnNvcjogdGV4dDtcbn1cblxuLmRqX2ExMXkgLmRpaml0SW5saW5lRWRpdEJveERpc3BsYXlNb2RlLFxuLmRqX2llNiAuZGlqaXRJbmxpbmVFZGl0Qm94RGlzcGxheU1vZGUge1xuXHQvKiBleGNlcHQgdGhhdCBJRTYgZG9lc24ndCBzdXBwb3J0IHRyYW5zcGFyZW50IGJvcmRlcnMsIG5vciBkb2VzIGhpZ2ggY29udHJhc3QgbW9kZSAqL1xuXHRib3JkZXI6IG5vbmU7XG59XG5cbi5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZUhvdmVyLFxuLmRqX2ExMXkgLmRpaml0SW5saW5lRWRpdEJveERpc3BsYXlNb2RlSG92ZXIsXG4uZGpfaWU2IC5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZUhvdmVyIHtcblx0LyogQW4gSW5saW5lRWRpdEJveCBpbiB2aWV3IG1vZGUgKGNsaWNrIHRoaXMgdG8gZWRpdCB0aGUgdGV4dCkgKi9cblx0YmFja2dyb3VuZC1jb2xvcjogI2UyZWJmMjtcblx0Ym9yZGVyOiBzb2xpZCAxcHggYmxhY2s7XG59XG5cbi5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZURpc2FibGVkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBUcmVlICovXG4uZGlqaXRUcmVlIHtcblx0b3ZlcmZsb3c6IGF1dG87XHQvKiBmb3Igc2Nyb2xsYmFycyB3aGVuIFRyZWUgaGFzIGEgaGVpZ2h0IHNldHRpbmcsIGFuZCB0byBwcmV2ZW50IHdyYXBwaW5nIGFyb3VuZCBmbG9hdCBlbGVtZW50cywgc2VlICMxMTQ5MSAqL1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGlqaXRUcmVlQ29udGFpbmVyIHtcblx0ZmxvYXQ6IGxlZnQ7XHQvKiBmb3IgY29ycmVjdCBoaWdobGlnaHRpbmcgZHVyaW5nIGhvcml6b250YWwgc2Nyb2xsLCBzZWUgIzE2MTMyICovXG59XG5cbi5kaWppdFRyZWVJbmRlbnQge1xuXHQvKiBhbW91bnQgdG8gaW5kZW50IGVhY2ggdHJlZSBub2RlIChyZWxhdGl2ZSB0byBwYXJlbnQgbm9kZSkgKi9cblx0d2lkdGg6IDE5cHg7XG59XG5cbi5kaWppdFRyZWVSb3csIC5kaWppdFRyZWVDb250ZW50IHtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmRqX2llIC5kaWppdFRyZWVMYWJlbDpmb2N1cyB7XG5cdC8qIHdvcmthcm91bmQgSUU5IGJlaGF2aW9yIHdoZXJlIGRvd24gYXJyb3dpbmcgdGhyb3VnaCBUcmVlTm9kZXMgZG9lc24ndCBzaG93IGZvY3VzIG91dGxpbmUgKi9cblx0b3V0bGluZTogMXB4IGRvdHRlZCBibGFjaztcbn1cblxuLmRpaml0VHJlZVJvdyBpbWcge1xuXHQvKiBtYWtlIHRoZSBleHBhbmRvIGFuZCBmb2xkZXIgaWNvbnMgbGluZSB1cCB3aXRoIHRoZSBsYWJlbCAqL1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uZGlqaXRUcmVlQ29udGVudCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZGlqaXRFeHBhbmRvVGV4dCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kal9hMTF5IC5kaWppdEV4cGFuZG9UZXh0IHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogdGhpbjtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZGlqaXRUcmVlTGFiZWwge1xuXHRtYXJnaW46IDAgNHB4O1xufVxuXG4vKiBEaWFsb2cgKi9cblxuLmRpaml0RGlhbG9nIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiA5OTk7XG5cdG92ZXJmbG93OiBoaWRkZW47XHQvKiBvdmVycmlkZSBvdmVyZmxvdzogYXV0bzsgZnJvbSBDb250ZW50UGFuZSB0byBtYWtlIGRyYWdnaW5nIHNtb290aGVyICovXG59XG5cbi5kaWppdERpYWxvZ1RpdGxlQmFyIHtcblx0Y3Vyc29yOiBtb3ZlO1xufVxuLmRpaml0RGlhbG9nRml4ZWQgLmRpaml0RGlhbG9nVGl0bGVCYXIge1xuXHRjdXJzb3I6ZGVmYXVsdDtcbn1cbi5kaWppdERpYWxvZ0Nsb3NlSWNvbiB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kaWppdERpYWxvZ1BhbmVDb250ZW50IHtcblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuLmRpaml0RGlhbG9nVW5kZXJsYXlXcmFwcGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdHotaW5kZXg6IDk5ODtcblx0ZGlzcGxheTogbm9uZTtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuLmRpaml0RGlhbG9nVW5kZXJsYXkge1xuXHRiYWNrZ3JvdW5kOiAjZWVlO1xuXHRvcGFjaXR5OiAwLjU7XG59XG5cbi5kal9pZSAuZGlqaXREaWFsb2dVbmRlcmxheSB7XG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7XG59XG5cbi8qIGltYWdlcyBvZmYsIGhpZ2gtY29udHJhc3QgbW9kZSBzdHlsZXMgKi9cbi5kal9hMTF5IC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGpfYTExeSAuZGlqaXREaWFsb2cge1xuXHRvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdERpYWxvZyAuY2xvc2VUZXh0IHtcblx0ZGlzcGxheTpub25lO1xuXHQvKiBmb3IgdGhlIG9uaG92ZXIgYm9yZGVyIGluIGhpZ2ggY29udHJhc3Qgb24gSUU6ICovXG5cdHBvc2l0aW9uOmFic29sdXRlO1xufVxuXG4uZGpfYTExeSAuZGlqaXREaWFsb2cgLmNsb3NlVGV4dCB7XG5cdGRpc3BsYXk6aW5saW5lO1xufVxuXG4vKiBTbGlkZXIgKi9cblxuLmRpaml0U2xpZGVyTW92ZWFibGUge1xuXHR6LWluZGV4Ojk5O1xuXHRwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50O1xuXHRkaXNwbGF5OmJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG59XG5cbi5kaWppdFNsaWRlck1vdmVhYmxlSCB7XG5cdHJpZ2h0OjA7XG59XG4uZGlqaXRTbGlkZXJNb3ZlYWJsZVYge1xuXHRyaWdodDo1MCU7XG59XG5cbi5kal9hMTF5IGRpdi5kaWppdFNsaWRlckltYWdlSGFuZGxlLFxuLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRtYXJnaW46MDtcblx0cGFkZGluZzowO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZSAhaW1wb3J0YW50O1xuXHRib3JkZXI6OHB4IHNvbGlkIGdyYXk7XG5cdHdpZHRoOjA7XG5cdGhlaWdodDowO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRqX2ExMXkgLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRmb250LXNpemU6IDA7XG59XG4uZGpfaWU3IC5kaWppdFNsaWRlckltYWdlSGFuZGxlIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjsgLyogSUU3IHdvcmthcm91bmQgdG8gbWFrZSBzbGlkZXIgaGFuZGxlIFZJU0lCTEUgaW4gbm9uLWExMXkgbW9kZSAqL1xufVxuLmRqX2llNyAuZGpfYTExeSAuZGlqaXRTbGlkZXJJbWFnZUhhbmRsZSB7XG5cdG92ZXJmbG93OiB2aXNpYmxlOyAvKiBJRTcgd29ya2Fyb3VuZCB0byBtYWtlIHNsaWRlciBoYW5kbGUgVklTSUJMRSBpbiBhMTF5IG1vZGUgKi9cbn1cbi5kal9hMTF5IC5kaWppdFNsaWRlckZvY3VzZWQgLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRib3JkZXI6NHB4IHNvbGlkICMwMDA7XG5cdGhlaWdodDo4cHg7XG5cdHdpZHRoOjhweDtcbn1cblxuLmRpaml0U2xpZGVySW1hZ2VIYW5kbGVWIHtcblx0dG9wOi04cHg7XG5cdHJpZ2h0OiAtNTAlO1xufVxuXG4uZGlqaXRTbGlkZXJJbWFnZUhhbmRsZUgge1xuXHRsZWZ0OjUwJTtcblx0dG9wOi01cHg7XG5cdHZlcnRpY2FsLWFsaWduOnRvcDtcbn1cblxuLmRpaml0U2xpZGVyQmFyIHtcblx0Ym9yZGVyLXN0eWxlOnNvbGlkO1xuXHRib3JkZXItY29sb3I6YmxhY2s7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmRpaml0U2xpZGVyQmFyQ29udGFpbmVyViB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRoZWlnaHQ6MTAwJTtcblx0ei1pbmRleDoxO1xufVxuXG4uZGlqaXRTbGlkZXJCYXJDb250YWluZXJIIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdHotaW5kZXg6MTtcbn1cblxuLmRpaml0U2xpZGVyQmFySCB7XG5cdGhlaWdodDo0cHg7XG5cdGJvcmRlci13aWR0aDoxcHggMDtcbn1cblxuLmRpaml0U2xpZGVyQmFyViB7XG5cdHdpZHRoOjRweDtcblx0Ym9yZGVyLXdpZHRoOjAgMXB4O1xufVxuXG4uZGlqaXRTbGlkZXJQcm9ncmVzc0JhciB7XG5cdGJhY2tncm91bmQtY29sb3I6cmVkO1xuXHR6LWluZGV4OjE7XG59XG5cbi5kaWppdFNsaWRlclByb2dyZXNzQmFyViB7XG5cdHBvc2l0aW9uOnN0YXRpYyAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6MDtcblx0dmVydGljYWwtYWxpZ246dG9wO1xuXHR0ZXh0LWFsaWduOmxlZnQ7XG59XG5cbi5kaWppdFNsaWRlclByb2dyZXNzQmFySCB7XG5cdHBvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHdpZHRoOjA7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0b3ZlcmZsb3c6dmlzaWJsZTtcbn1cblxuLmRpaml0U2xpZGVyUmVtYWluaW5nQmFyIHtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xuXHR6LWluZGV4OjE7XG59XG5cbi5kaWppdFNsaWRlclJlbWFpbmluZ0JhclYge1xuXHRoZWlnaHQ6MTAwJTtcblx0dGV4dC1hbGlnbjpsZWZ0O1xufVxuXG4uZGlqaXRTbGlkZXJSZW1haW5pbmdCYXJIIHtcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xufVxuXG4vKiB0aGUgc2xpZGVyIGJ1bXBlciBpcyB0aGUgc3BhY2UgY29uc3VtZWQgYnkgdGhlIHNsaWRlciBoYW5kbGUgd2hlbiBpdCBoYW5ncyBvdmVyIGFuIGVkZ2UgKi9cbi5kaWppdFNsaWRlckJ1bXBlciB7XG5cdG92ZXJmbG93OmhpZGRlbjtcblx0ei1pbmRleDoxO1xufVxuXG4uZGlqaXRTbGlkZXJCdW1wZXJWIHtcblx0d2lkdGg6NHB4O1xuXHRoZWlnaHQ6OHB4O1xuXHRib3JkZXItd2lkdGg6MCAxcHg7XG59XG5cbi5kaWppdFNsaWRlckJ1bXBlckgge1xuXHR3aWR0aDo4cHg7XG5cdGhlaWdodDo0cHg7XG5cdGJvcmRlci13aWR0aDoxcHggMDtcbn1cblxuLmRpaml0U2xpZGVyQm90dG9tQnVtcGVyLFxuLmRpaml0U2xpZGVyTGVmdEJ1bXBlciB7XG5cdGJhY2tncm91bmQtY29sb3I6cmVkO1xufVxuXG4uZGlqaXRTbGlkZXJUb3BCdW1wZXIsXG4uZGlqaXRTbGlkZXJSaWdodEJ1bXBlciB7XG5cdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XG59XG5cbi5kaWppdFNsaWRlckRlY29yYXRpb24ge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvbkMsXG4uZGlqaXRTbGlkZXJEZWNvcmF0aW9uViB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogbmVlZGVkIGZvciBJRStxdWlya3MrUlRMK3ZlcnRpY2FsIChyZW5kZXJpbmcgYnVnKSBidXQgYWRkIGV2ZXJ5d2hlcmUgZm9yIGN1c3RvbSBzdHlsaW5nIGNvbnNpc3RlbmN5IGJ1dCB0aGlzIG1lc3NlcyB1cCBJRSBob3Jpem9udGFsIHNsaWRlcnMgKi9cbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvbkgge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvblYge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5kaWppdFNsaWRlckJ1dHRvbiB7XG5cdGZvbnQtZmFtaWx5Om1vbm9zcGFjZTtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MDtcblx0ZGlzcGxheTpibG9jaztcbn1cblxuLmRqX2ExMXkgLmRpaml0U2xpZGVyQnV0dG9uSW5uZXIge1xuXHR2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0U2xpZGVyQnV0dG9uQ29udGFpbmVyIHtcblx0dGV4dC1hbGlnbjpjZW50ZXI7XG5cdGhlaWdodDowO1x0LyogPz8/ICovXG59XG4uZGlqaXRTbGlkZXJCdXR0b25Db250YWluZXIgKiB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmRpaml0U2xpZGVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRwYWRkaW5nOjA7XG5cdGRpc3BsYXk6YmxvY2s7XG59XG5cbi5kaWppdFJ1bGVDb250YWluZXIge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0b3ZlcmZsb3c6dmlzaWJsZTtcbn1cblxuLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRoZWlnaHQ6MTAwJTtcblx0bGluZS1oZWlnaHQ6MDtcblx0ZmxvYXQ6bGVmdDtcblx0dGV4dC1hbGlnbjpsZWZ0O1xufVxuXG4uZGpfb3BlcmEgLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRsaW5lLWhlaWdodDoyJTtcbn1cblxuLmRqX2llIC5kaWppdFJ1bGVDb250YWluZXJWIHtcblx0bGluZS1oZWlnaHQ6bm9ybWFsO1xufVxuXG4uZGpfZ2Vja28gLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRtYXJnaW46MCAwIDFweCAwOyAvKiBtb3ppbGxhIGJ1ZyB3b3JrYXJvdW5kIGZvciBmbG9hdDpsZWZ0LGhlaWdodDoxMDAlIGJsb2NrIGVsZW1lbnRzICovXG59XG5cbi5kaWppdFJ1bGVNYXJrIHtcblx0cG9zaXRpb246YWJzb2x1dGU7XG5cdGJvcmRlcjoxcHggc29saWQgYmxhY2s7XG5cdGxpbmUtaGVpZ2h0OjA7XG5cdGhlaWdodDoxMDAlO1xufVxuXG4uZGlqaXRSdWxlTWFya0gge1xuXHR3aWR0aDowO1xuXHRib3JkZXItdG9wLXdpZHRoOjAgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbS13aWR0aDowICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1sZWZ0LXdpZHRoOjAgIWltcG9ydGFudDtcbn1cblxuLmRpaml0UnVsZUxhYmVsQ29udGFpbmVyIHtcblx0cG9zaXRpb246YWJzb2x1dGU7XG59XG5cbi5kaWppdFJ1bGVMYWJlbENvbnRhaW5lckgge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG59XG5cbi5kaWppdFJ1bGVMYWJlbEgge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0bGVmdDotNTAlO1xufVxuXG4uZGlqaXRSdWxlTGFiZWxWIHtcblx0Lyogc28gdGhhdCBsb25nIGxhYmVscyBkb24ndCBvdmVyZmxvdyB0byBtdWx0aXBsZSByb3dzLCBvciBvdmVyd3JpdGUgc2xpZGVyIGl0c2VsZiAqL1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRpaml0UnVsZU1hcmtWIHtcblx0aGVpZ2h0OjA7XG5cdGJvcmRlci1yaWdodC13aWR0aDowICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1ib3R0b20td2lkdGg6MCAhaW1wb3J0YW50O1xuXHRib3JkZXItbGVmdC13aWR0aDowICFpbXBvcnRhbnQ7XG5cdHdpZHRoOjEwMCU7XG5cdGxlZnQ6MDtcbn1cblxuLmRqX2llIC5kaWppdFJ1bGVMYWJlbENvbnRhaW5lclYge1xuXHRtYXJnaW4tdG9wOi0uNTVlbTtcbn1cblxuLmRqX2ExMXkgLmRpaml0U2xpZGVyUmVhZE9ubHksXG4uZGpfYTExeSAuZGlqaXRTbGlkZXJEaXNhYmxlZCB7XG5cdG9wYWNpdHk6MC42O1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdFNsaWRlclJlYWRPbmx5IC5kaWppdFNsaWRlckJhcixcbi5kal9pZSAuZGpfYTExeSAuZGlqaXRTbGlkZXJEaXNhYmxlZCAuZGlqaXRTbGlkZXJCYXIge1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NDApO1xufVxuXG4vKiArIGFuZCAtIFNsaWRlciBidXR0b25zOiBvdmVycmlkZSB0aGVtZSBzZXR0aW5ncyB0byBkaXNwbGF5IGljb25zICovXG4uZGpfYTExeSAuZGlqaXRTbGlkZXIgLmRpaml0U2xpZGVyQnV0dG9uQ29udGFpbmVyIGRpdiB7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IC8qIG90aGVyd2lzZSBoeXBoZW4gaXMgbGFyZ2VyIGFuZCBtb3JlIHZlcnRpY2FsbHkgY2VudGVyZWQgKi9cblx0Zm9udC1zaXplOiAxZW07XG5cdGxpbmUtaGVpZ2h0OiAxZW07XG5cdGhlaWdodDogYXV0bztcblx0d2lkdGg6IGF1dG87XG5cdG1hcmdpbjogMCA0cHg7XG59XG5cbi8qIEljb24tb25seSBidXR0b25zIChvZnRlbiBpbiB0b29sYmFycykgc3RpbGwgZGlzcGxheSB0aGUgdGV4dCBpbiBoaWdoLWNvbnRyYXN0IG1vZGUgKi9cbi5kal9hMTF5IC5kaWppdEJ1dHRvbkNvbnRlbnRzIC5kaWppdEJ1dHRvblRleHQsXG4uZGpfYTExeSAuZGlqaXRUYWIgLnRhYkxhYmVsIHtcblx0ZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uVGV4dCB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xufVxuXG4vKiBUZXh0QXJlYSwgU2ltcGxlVGV4dEFyZWEgKi9cbi5kaWppdFRleHRBcmVhIHtcblx0d2lkdGg6MTAwJTtcblx0b3ZlcmZsb3cteTogYXV0bztcdC8qIHcvb3V0IHRoaXMgSUUncyBTaW1wbGVUZXh0QXJlYSBnb2VzIHRvIG92ZXJmbG93OiBzY3JvbGwgKi9cbn1cbi5kaWppdFRleHRBcmVhW2NvbHNdIHtcblx0d2lkdGg6YXV0bzsgLyogU2ltcGxlVGV4dEFyZWEgY29scyAqL1xufVxuLmRqX2llIC5kaWppdFRleHRBcmVhQ29scyB7XG5cdHdpZHRoOmF1dG87XG59XG5cbi5kaWppdEV4cGFuZGluZ1RleHRBcmVhIHtcblx0LyogZm9yIGF1dG8gZXhhbmRpbmcgdGV4dGFyZWEgKGNhbGxlZCBUZXh0YXJlYSBjdXJyZW50bHksIHJlbmFtZSBmb3IgMi4wKSBkb24ndCB3YW50IHRvIGRpc3BsYXkgdGhlIGdyaXAgdG8gcmVzaXplICovXG5cdHJlc2l6ZTogbm9uZTtcbn1cblxuXG4vKiBUb29sYmFyXG4gKiBOb3RlIHRoYXQgb3RoZXIgdG9vbGJhciBydWxlcyAoZm9yIG9iamVjdHMgaW4gdG9vbGJhcnMpIGFyZSBzY2F0dGVyZWQgdGhyb3VnaG91dCB0aGlzIGZpbGUuXG4gKi9cblxuLmRpaml0VG9vbGJhclNlcGFyYXRvciB7XG5cdGhlaWdodDogMThweDtcblx0d2lkdGg6IDVweDtcblx0cGFkZGluZzogMCAxcHg7XG5cdG1hcmdpbjogMDtcbn1cblxuLyogRWRpdG9yICovXG4uZGlqaXRJRUZpeGVkVG9vbGJhciB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHQvKiB0b3A6MDsgKi9cblx0dG9wOiBleHByZXNzaW9uKGV2YWwoKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudHx8ZG9jdW1lbnQuYm9keSkuc2Nyb2xsVG9wKSk7XG59XG5cbi5kaWppdEVkaXRvciB7XG5cdGRpc3BsYXk6IGJsb2NrO1x0LyogcHJldmVudHMgZ2xpdGNoIG9uIEZGIHdpdGggSW5saW5lRWRpdEJveCwgc2VlICM4NDA0ICovXG59XG5cbi5kaWppdEVkaXRvckRpc2FibGVkLFxuLmRpaml0RWRpdG9yUmVhZE9ubHkge1xuXHRjb2xvcjogZ3JheTtcbn1cblxuLyogVGltZVBpY2tlciAqL1xuXG4uZGlqaXRUaW1lUGlja2VyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZGlqaXRUaW1lUGlja2VySXRlbSB7XG5cdGN1cnNvcjpwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0VGltZVBpY2tlckl0ZW1Ib3ZlciB7XG5cdGJhY2tncm91bmQtY29sb3I6Z3JheTtcblx0Y29sb3I6d2hpdGU7XG59XG4uZGlqaXRUaW1lUGlja2VySXRlbVNlbGVjdGVkIHtcblx0Zm9udC13ZWlnaHQ6Ym9sZDtcblx0Y29sb3I6IzMzMztcblx0YmFja2dyb3VuZC1jb2xvcjojYjdjZGVlO1xufVxuLmRpaml0VGltZVBpY2tlckl0ZW1EaXNhYmxlZCB7XG5cdGNvbG9yOmdyYXk7XG5cdHRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7XG59XG5cbi5kaWppdFRpbWVQaWNrZXJJdGVtSW5uZXIge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0Ym9yZGVyOjA7XG5cdHBhZGRpbmc6MnB4IDhweCAycHggOHB4O1xufVxuXG4uZGlqaXRUaW1lUGlja2VyVGljayxcbi5kaWppdFRpbWVQaWNrZXJNYXJrZXIge1xuXHRib3JkZXItYm90dG9tOjFweCBzb2xpZCBncmF5O1xufVxuXG4uZGlqaXRUaW1lUGlja2VyIC5kaWppdERvd25BcnJvd0J1dHRvbiB7XG5cdGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0VGltZVBpY2tlclRpY2sge1xuXHRjb2xvcjojQ0NDO1xufVxuXG4uZGlqaXRUaW1lUGlja2VyTWFya2VyIHtcblx0Y29sb3I6YmxhY2s7XG5cdGJhY2tncm91bmQtY29sb3I6I0NDQztcbn1cblxuLmRqX2ExMXkgLmRpaml0VGltZVBpY2tlckl0ZW1TZWxlY3RlZCAuZGlqaXRUaW1lUGlja2VySXRlbUlubmVyIHtcblx0Ym9yZGVyOiBzb2xpZCA0cHggYmxhY2s7XG59XG4uZGpfYTExeSAuZGlqaXRUaW1lUGlja2VySXRlbUhvdmVyIC5kaWppdFRpbWVQaWNrZXJJdGVtSW5uZXIge1xuXHRib3JkZXI6IGRhc2hlZCA0cHggYmxhY2s7XG59XG5cblxuLmRpaml0VG9nZ2xlQnV0dG9uSWNvbkNoYXIge1xuXHQvKiBjaGFyYWN0ZXIgKGluc3RlYWQgb2YgaWNvbikgdG8gc2hvdyB0aGF0IFRvZ2dsZUJ1dHRvbiBpcyBjaGVja2VkICovXG5cdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0VG9nZ2xlQnV0dG9uIC5kaWppdFRvZ2dsZUJ1dHRvbkljb25DaGFyIHtcblx0ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDtcblx0dmlzaWJpbGl0eTpoaWRkZW47XG59XG4uZGpfaWU2IC5kaWppdFRvZ2dsZUJ1dHRvbkljb25DaGFyLCAuZGpfaWU2IC50YWJTdHJpcEJ1dHRvbiAuZGlqaXRCdXR0b25UZXh0IHtcblx0Zm9udC1mYW1pbHk6IFwiQXJpYWwgVW5pY29kZSBNU1wiO1x0Lyogb3RoZXJ3aXNlIHRoZSBhMTF5IGNoYXJhY3RlciAoY2hlY2ttYXJrLCBhcnJvdywgZXRjLikgYXBwZWFycyBhcyBhIGJveCAqL1xufVxuLmRqX2ExMXkgLmRpaml0VG9nZ2xlQnV0dG9uQ2hlY2tlZCAuZGlqaXRUb2dnbGVCdXR0b25JY29uQ2hhciB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyAvKiBJbiBoaWdoIGNvbnRyYXN0IG1vZGUsIGRpc3BsYXkgdGhlIGNoZWNrIHN5bWJvbCAqL1xuXHR2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0QXJyb3dCdXR0b25DaGFyIHtcblx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRBcnJvd0J1dHRvbkNoYXIge1xuXHRkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXREcm9wRG93bkJ1dHRvbiAuZGlqaXRBcnJvd0J1dHRvbklubmVyLFxuLmRqX2ExMXkgLmRpaml0Q29tYm9CdXR0b24gLmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBTZWxlY3QgKi9cbi5kal9hMTF5IC5kaWppdFNlbGVjdCB7XG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGUgIWltcG9ydGFudDtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZGpfaWUgLmRpaml0U2VsZWN0IHtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTsgLyogU2V0IHRoaXMgYmFjayBmb3Igd2hhdCB3ZSBoYWNrIGluIGRpaml0IGlubGluZSAqL1xufVxuLmRqX2llNiAuZGlqaXRTZWxlY3QgLmRpaml0VmFsaWRhdGlvbkNvbnRhaW5lcixcbi5kal9pZTggLmRpaml0U2VsZWN0IC5kaWppdEJ1dHRvblRleHQge1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLmRqX2llNiAuZGlqaXRUZXh0Qm94IC5kaWppdElucHV0Q29udGFpbmVyLFxuLmRqX2llcXVpcmtzIC5kaWppdFRleHRCb3ggLmRpaml0SW5wdXRDb250YWluZXIsXG4uZGpfaWU2IC5kaWppdFRleHRCb3ggLmRpaml0QXJyb3dCdXR0b25Jbm5lcixcbi5kal9pZTYgLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uSW5uZXIsXG4uZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwge1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi5kaWppdE51bWJlclRleHRCb3gge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRkaXJlY3Rpb246IGx0cjtcbn1cblxuLmRpaml0TnVtYmVyVGV4dEJveCAuZGlqaXRJbnB1dElubmVyIHtcblx0dGV4dC1hbGlnbjogaW5oZXJpdDsgLyogaW5wdXQgKi9cbn1cblxuLmRpaml0TnVtYmVyVGV4dEJveCBpbnB1dC5kaWppdElucHV0SW5uZXIsXG4uZGlqaXRDdXJyZW5jeVRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRpaml0U3Bpbm5lciBpbnB1dC5kaWppdElucHV0SW5uZXIge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmRqX2llOCAuZGlqaXROdW1iZXJUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXROdW1iZXJUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lcixcbi5kal9pZTggLmRpaml0Q3VycmVuY3lUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXRDdXJyZW5jeVRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRqX2llOCAuZGlqaXRTcGlubmVyIGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXRTcGlubmVyIGlucHV0LmRpaml0SW5wdXRJbm5lciB7XG5cdC8qIHdvcmthcm91bmQgYnVnIHdoZXJlIGNhcmV0IGludmlzaWJsZSBpbiBlbXB0eSB0ZXh0Ym94ZXMgKi9cblx0cGFkZGluZy1yaWdodDogMXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdFRvb2xiYXIgLmRpaml0U2VsZWN0IHtcblx0bWFyZ2luOiAwO1xufVxuLmRqX3dlYmtpdCAuZGlqaXRUb29sYmFyIC5kaWppdFNlbGVjdCB7XG5cdHBhZGRpbmctbGVmdDogMC4zZW07XG59XG4uZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRwYWRkaW5nOiAwO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRib3JkZXItc3R5bGU6IG5vbmUgc29saWQgbm9uZSBub25lO1xuXHRib3JkZXItd2lkdGg6IDFweDtcbn1cbi5kaWppdFNlbGVjdEZpeGVkV2lkdGggLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmRpaml0U2VsZWN0TWVudSAuZGlqaXRNZW51SXRlbUljb24ge1xuXHQvKiBhdm9pZCBibGFuayBhcmVhIGluIGxlZnQgc2lkZSBvZiBtZW51IChzaW5jZSB3ZSBoYXZlIG5vIGljb25zKSAqL1xuXHRkaXNwbGF5Om5vbmU7XG59XG4uZGpfaWU2IC5kaWppdFNlbGVjdE1lbnUgLmRpaml0TWVudUl0ZW1MYWJlbCxcbi5kal9pZTcgLmRpaml0U2VsZWN0TWVudSAuZGlqaXRNZW51SXRlbUxhYmVsIHtcblx0LyogU2V0IGJhY2sgdG8gc3RhdGljIGR1ZSB0byBidWcgaW4gaWU2L2llNyAtIFNlZSBCdWcgIzk2NTEgKi9cblx0cG9zaXRpb246IHN0YXRpYztcbn1cblxuLyogRml4IHRoZSBiYXNlbGluZSBvZiBvdXIgbGFiZWwgKGZvciBtdWx0aS1zaXplIGZvbnQgZWxlbWVudHMpICovXG4uZGlqaXRTZWxlY3RMYWJlbCAqXG57XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyogU3R5bGluZyBmb3IgdGhlIGN1cnJlbnRseS1zZWxlY3RlZCBvcHRpb24gKHJpY2ggdGV4dCBjYW4gbWVzcyB0aGlzIHVwKSAqL1xuLmRpaml0U2VsZWN0U2VsZWN0ZWRPcHRpb24gKiB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBGaXggdGhlIHN0eWxpbmcgb2YgdGhlIGRyb3Bkb3duIG1lbnUgdG8gYmUgbW9yZSBjb21ib2JveC1saWtlICovXG4uZGlqaXRTZWxlY3RNZW51IHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbi8qIFVzZWQgaW4gY2FzZXMsIHN1Y2ggYXMgRnVsbFNjcmVlbiBwbHVnaW4sIHdoZW4gd2UgbmVlZCB0byBmb3JjZSBzdHVmZiB0byBzdGF0aWMgcG9zaXRpb25pbmcuICovXG4uZGlqaXRGb3JjZVN0YXRpYyB7XG5cdHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbn1cblxuLyoqKiogRGlzYWJsZWQgY3Vyc29yICoqKioqL1xuLmRpaml0UmVhZE9ubHkgKixcbi5kaWppdERpc2FibGVkICosXG4uZGlqaXRSZWFkT25seSxcbi5kaWppdERpc2FibGVkIHtcblx0LyogYSByZWdpb24gdGhlIHVzZXIgd291bGQgYmUgYWJsZSB0byBjbGljayBvbiwgYnV0IGl0J3MgZGlzYWJsZWQgKi9cblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBEcmFnIGFuZCBEcm9wICovXG4uZG9qb0RuZEl0ZW0ge1xuICAgIHBhZGRpbmc6IDJweDsgIC8qIHdpbGwgYmUgcmVwbGFjZWQgYnkgYm9yZGVyIGR1cmluZyBkcmFnIG92ZXIgKGRvam9EbmRJdGVtQmVmb3JlLCBkb2pvRG5kSXRlbUFmdGVyKSAqL1xuXG5cdC8qIFByZXZlbnQgbWFnbmlmeWluZy1nbGFzcyB0ZXh0IHNlbGVjdGlvbiBpY29uIHRvIGFwcGVhciBvbiBtb2JpbGUgd2Via2l0IGFzIGl0IGNhdXNlcyBhIHRvdWNob3V0IGV2ZW50ICovXG5cdC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgLyogRGlzYWJsZSBzZWxlY3Rpb24vQ29weSBvZiBVSVdlYlZpZXcgKi9cbn1cbi5kb2pvRG5kSG9yaXpvbnRhbCAuZG9qb0RuZEl0ZW0ge1xuICAgIC8qIG1ha2UgY29udGVudHMgb2YgaG9yaXpvbnRhbCBjb250YWluZXIgYmUgc2lkZSBieSBzaWRlLCByYXRoZXIgdGhhbiB2ZXJ0aWNhbCAqL1xuICAgICNkaXNwbGF5OiBpbmxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZG9qb0RuZEl0ZW1CZWZvcmUsXG4uZG9qb0RuZEl0ZW1BZnRlciB7XG5cdGJvcmRlcjogMHB4IHNvbGlkICMzNjk7XG59XG4uZG9qb0RuZEl0ZW1CZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogMnB4IDAgMCAwO1xuICAgIHBhZGRpbmc6IDAgMnB4IDJweCAycHg7XG59XG4uZG9qb0RuZEl0ZW1BZnRlciB7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDAgMnB4IDA7XG4gICAgcGFkZGluZzogMnB4IDJweCAwIDJweDtcbn1cbi5kb2pvRG5kSG9yaXpvbnRhbCAuZG9qb0RuZEl0ZW1CZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogMCAwIDAgMnB4O1xuICAgIHBhZGRpbmc6IDJweCAycHggMnB4IDA7XG59XG4uZG9qb0RuZEhvcml6b250YWwgLmRvam9EbmRJdGVtQWZ0ZXIge1xuICAgIGJvcmRlci13aWR0aDogMCAycHggMCAwO1xuICAgIHBhZGRpbmc6IDJweCAwIDJweCAycHg7XG59XG5cbi5kb2pvRG5kSXRlbU92ZXIge1xuXHRjdXJzb3I6cG9pbnRlcjtcbn1cbi5kal9nZWNrbyAuZGlqaXRBcnJvd0J1dHRvbklubmVyIElOUFVULFxuLmRqX2dlY2tvIElOUFVULmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdC1tb3otdXNlci1mb2N1czppZ25vcmU7XG59XG4uZGlqaXRGb2N1c2VkIC5kaWppdE1lbnVJdGVtU2hvcnRjdXRLZXkge1xuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbiIsIi8qIERpaml0IGN1c3RvbSBzdHlsaW5nICovXG4uZGlqaXRCb3JkZXJDb250YWluZXIge1xuICAgIGhlaWdodDogMzUwcHg7XG59XG4uZGlqaXRUb29sdGlwQ29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuLmRpaml0Q29udGVudFBhbmUge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIG92ZXJmbG93OiBhdXRvICFpbXBvcnRhbnQ7IC8qIFdpZGdldHMgbGlrZSB0aGUgZGF0YSBncmlkIHBhc3MgdGhlaXIgc2Nyb2xsXG4gICAgb2Zmc2V0IHRvIHRoZSBwYXJlbnQgaWYgdGhlcmUgaXMgbm90IGVub3VnaCByb29tIHRvIGRpc3BsYXkgYSBzY3JvbGwgYmFyXG4gICAgaW4gdGhlIHdpZGdldCBpdHNlbGYsIHNvIGRvIG5vdCBoaWRlIHRoZSBvdmVyZmxvdy4gKi9cbn1cblxuLyogR2xvYmFsIEJvb3RzdHJhcCBjaGFuZ2VzICovXG5cbi8qIENsaWVudCBkZWZhdWx0cyBhbmQgaGVscGVycyAqL1xuLm14LWRhdGF2aWV3LWNvbnRlbnQsIC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcjpub3QoLm14LXNjcm9sbGNvbnRhaW5lci1uZXN0ZWQpLCAubXgtdGFiY29udGFpbmVyLWNvbnRlbnQsIC5teC1ncmlkLWNvbnRlbnQge1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cbmh0bWwsIGJvZHksICNjb250ZW50IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4jY29udGVudCA+IC5teC1wYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuXG4ubXgtbGVmdC1hbGlnbmVkIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LXJpZ2h0LWFsaWduZWQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLm14LWNlbnRlci1hbGlnbmVkIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teC10YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtdGFibGUgdGgsXG4ubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLm14LXRhYmxlIHRoLm5vcGFkZGluZyxcbi5teC10YWJsZSB0ZC5ub3BhZGRpbmcge1xuXHRwYWRkaW5nOiAwO1xufVxuXG4ubXgtb2Zmc2NyZWVuIHtcbiAgICAvKiBXaGVuIHBvc2l0aW9uIHJlbGF0aXZlIGlzIG5vdCBzZXQgSUUgZG9lc24ndCBwcm9wZXJseSByZW5kZXIgd2hlbiB0aGlzIGNsYXNzIGlzIHJlbW92ZWRcbiAgICAgKiB3aXRoIHRoZSBlZmZlY3QgdGhhdCBlbGVtZW50cyBhcmUgbm90IGRpc3BsYXllZCBvciBhcmUgbm90IGNsaWNrYWJsZS5cbiAgICAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm14LWllLWV2ZW50LXNoaWVsZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAtMTtcbn1cblxuLm14LXN3aXBlLW5hdmlnYXRpb24tcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDU0cHg7XG4gICAgd2lkdGg6IDU0cHg7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDI3cHgpO1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMjdweCk7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaE5nQTJBUE1BQVAvLy93QUFBSGg0ZUJ3Y0hBNE9EdGpZMkZSVVZOemMzTVRFeEVoSVNJcUtpZ0FBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQWtLQUFBQUlmNGFRM0psWVhSbFpDQjNhWFJvSUdGcVlYaHNiMkZrTG1sdVptOEFJZjhMVGtWVVUwTkJVRVV5TGpBREFRQUFBQ3dBQUFBQU5nQTJBQUFFeXhESVNhdTlPT3ZOdS85Z0tJNWt5U0VKUVNTSTZVcUtLaFBLV3lMejNOcGltcXNKbnVnM0U0YUlNaVBJOXdzcVBUamlUbGt3cUF3RlRDeFhleFlHczBIMmdnSk9MWUxCUURDeTVnd213WXg5SkpyQXNzSFFYc0tyOUNGdU0zQWxjakowSUFkK0JBTUhMbWxySkFkdUJvNVBsNWlabXB1Y25aNmZjV3FJbUpDamFIT1poaXFtRkl1QWw2NFpzWml6RjZvRXJFSzN1Uk9sbTc2Z3djTER4TVhHeDhYQWo2SWt1NCtvSXJVazBoL1UwV0Vqem5IUUlzcWhrY2pCM3NuY3hkYkM1K0xseWN6aDdrOFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRNRU1oSnE3MDQ2ODI3LzJBb2ptUnBubVZoRUlSUm9HY3hzT3p3d3VSS3N3Wk83anZmQ0VnVGluUzduaEYwbU5FR2h3c2l3VW9nbHBTRHpoQzFLSWlLa1dBd0VKZ1FSTllWSk5pWlNkUjBJdVNzbGRKRlVKMHd1T01KSVcwMGJ5TnhSSE9CWklRamFHbHJXQnhmUUdHUUhsTlZqNVdhbTV5ZG5wOUxZMldib29zV2dpeW1RcWdFcWhON2ZaQ3dHYk95TzdFWHJLNDR1aHFscElxZ3dzUEV4Y2JIeU1lL0tNc2l2U2JQZExjbnRkSlAxTlBPYmlmUmlhUE13Y25DemNyYnlOWEc2TVhkeHVUaTd6NFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRPRU1oSnE3MDQ2ODI3LzJBb2ptUnBubWlxQXNJd0NLc3BFRFFCeCtOUUV3T2U3ejFmYUZhN0NVR3QxMUZZTU5BTUJWTFNTQ3JvYW9Qb2NFY1ZPWGNFZytoS0M1TEF0VEhRaEthSmlMUnU2THNUdjEzeTBJSE1PeXc5QjE4R2ZuK0Zob2VJaVlvWkNBazBDUWlMRmdwb0NobFRSd2h0QkpFV2NEWkNqbTBKRjN4bU1adHVGcVpDcVFRWG4za29vbWlrc0hpWm01MlNBSlJnbHJ3VGpZKzd3Y2JIeU1uS0U1Z296VzljSjdFL1dDZXNhdFVtMTF0RjB0RWp6eks0eTRuaHh0UEkyOGJxd2VqSTV1VHhKaEVBSWZrRUNRb0FBQUFzQUFBQUFEWUFOZ0FBQk1zUXlFbXJ2VGpyemJ2L1lDaU9aR21lYUtvQ3dqQUlxeWtRTkFISDQxQVRBNTd2UFY5b1Zyc0pRYTNYY1lsS0dtV3VKM0luRlJGcDFZNnVGaXh0YVYzUWwzY2FoejlYMnltZDdUaFRiNlo4VHEvYjcvaTh2R0NnR1FvYWNVSUZab0FYYkVkOU93UUdHR1pIaXpXT1FKQ1JCQmlJUW9vN2paaFJTd2RtQjNvVUI0b0dvNlNxcTZ5dE1RZ0pOQWtJckFxUkNpT0NJd2lXQkxSVFJTV3hsZ2toanlTOU5NYVV5TWxEVk1LOXhVT2ZKYnlXdjNxMmk3aEx1aFd3c3RsQ21hdkg1c3lyNWVyVnJ1NDRFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWlaY2dVR05BWUZKSk1pQldhZ1E0TWxuVHNFQmlLTElxczFya0Ftc1RSV3FDU3FPNjFXa1JrSUNUUUpDQmNIWmdkSENyRUt4cW9HeVVJSXRnVEZlc0syQ1h2VXQzcmNCSHZZc2RwNjA3Yldlc3VyelpYQncrZ2lFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWdTQ0FrMENRaVdDanMwQ3BRSW9qV2ZKWk1kbktjRUNhcURJSzQxWGtBaHREUzJYQ0d0cDdBa2p4Nm1ycW5Ca1NLaG9xUVhCUVkwQmdWTG01M0dGUVZtMHBUUG9nYVZ0Tit1bGR3NzNwUUhaZ2VXQjl3RzZwa29FUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2dktVU0Nsa0RnTFFvN05BcC9Fd2lDTlg1Q2NSWjdpQVFKaTFRWGp6VkNacFNWQkpkQUY0NklrVDVzRjRlUGlxSlJHWUdDaElXR2puMnVzck8wdFhZRkJqUUdCYlFGWnJ4UVNpSzVnZ1l5a3lHVkpwakpqOHVkSWNRN3hpV2pJUWRtQjJ1cEl3ZkVCdHEySG95ejFyUE01OURseUxUazR1OHBFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3a1JDVm9Db1dtOWhCTEZqcWFBZGhEVEdyUGtOSDZTV1VLQ3UvTjJ3cldTcmhiOG9HbHFZQWljSFpPSU5ETUhHOTdlWFhvZFVsTlZWbGRnUzRhS2k0eU5qbzhGQmpRR0JZOFhCV3MwQTVWUVhSbVNVd2FkWlJob1VKazhwV0duY2hlZ082SkNlRFlZQjZnREIxYWVHUWVnQnJtV3djTER4TVhHeDF5QUtic2lzNEVnemo5c0o3ZlNtdFN0UTZReTI4M0tLTXpJamVIRTBjYlY1OW5sM2NYazR1OG9FUUE3KTtcbn1cblxuIiwiLyogQmFjYXVzZSB3ZSB1c2UgY2hlY2tib3hlcyB3aXRob3V0IGxhYmVscywgYWxpZ24gdGhlbSB3aXRoIG90aGVyIHdpZGdldHMuICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbjogOXB4IDA7XG59XG5cbi5teC1jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG59XG5cbi5mb3JtLXZlcnRpY2FsIC5mb3JtLWdyb3VwLm14LWNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5mb3JtLXZlcnRpY2FsIC5mb3JtLWdyb3VwLm14LWNoZWNrYm94LmxhYmVsLWFmdGVyIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwLm5vLWNvbHVtbnMge1xuICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuXG4ubXgtcmFkaW9idXR0b25zLmlubGluZSAucmFkaW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG5cbi5teC1yYWRpb2J1dHRvbnMgLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgLyogUmVzZXQgYm9vdHN0cmFwIHJ1bGVzICovXG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLm14LXJhZGlvYnV0dG9ucyAucmFkaW8gbGFiZWwge1xuICAgIC8qIFJlc2V0IGJvb3RzdHJhcCBydWxlcyAqL1xuICAgIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLmFsZXJ0IHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG59XG5cbi5teC1jb21wb3VuZC1jb250cm9sIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubXgtY29tcG91bmQtY29udHJvbCBidXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbltkaXI9XCJydGxcIl0gLm14LWNvbXBvdW5kLWNvbnRyb2wgYnV0dG9uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbiIsIi5teC10b29sdGlwIHtcbiAgICBtYXJnaW46IDEwcHg7XG59XG4ubXgtdG9vbHRpcC1jb250ZW50IHtcbiAgICB3aWR0aDogNDAwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbn1cbi5teC10b29sdGlwLXByZXBhcmUge1xuICAgIGhlaWdodDogMjRweDtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEdBQVlBTVFkQUtYWjhuZkY2NFRMN1F1WDNGZTQ1emFxNGhPYjNmTDYvZnI5L3JyaTlkWHQrWnJVOEN5bTRVbXk1Y0hsOXVQeisySzg2T2oxL056dytyRGQ5TTNxK0pEUTcyckE2aU9pMyszNC9FQ3U0OGpvOXgyZjNnV1YyLy8vL3dBQUFBQUFBQ0gvQzA1RlZGTkRRVkJGTWk0d0F3RUFBQUFoL3d0WVRWQWdSR0YwWVZoTlVEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF3SURjNUxqRTJNRFExTVN3Z01qQXhOeTh3TlM4d05pMHdNVG93T0RveU1TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tFMWhZMmx1ZEc5emFDa2lJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSVUpGTmtVNE5FWkNORVZETVRGRk9EazNNREJCTlVVMVJVTTRRamczUVRVaUlIaHRjRTFOT2tSdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJVSkZOa1U0TlRCQ05FVkRNVEZGT0RrM01EQkJOVVUxUlVNNFFqZzNRVFVpUGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRwRlFrVTJSVGcwUkVJMFJVTXhNVVU0T1Rjd01FRTFSVFZGUXpoQ09EZEJOU0lnYzNSU1pXWTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRHBGUWtVMlJUZzBSVUkwUlVNeE1VVTRPVGN3TUVFMVJUVkZRemhDT0RkQk5TSXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QZ0gvL3YzOCsvcjUrUGYyOWZUejh2SHc3Kzd0N092cTZlam41dVhrNCtMaDROL2UzZHpiMnRuWTE5YlYxTlBTMGREUHpzM015OHJKeU1mR3hjVER3c0hBdjc2OXZMdTZ1YmkzdHJXMHM3S3hzSyt1cmF5cnFxbW9wNmFscEtPaW9hQ2ZucDJjbTVxWm1KZVdsWlNUa3BHUWo0Nk5qSXVLaVlpSGhvV0VnNEtCZ0g5K2ZYeDdlbmw0ZDNaMWRITnljWEJ2Ym0xc2EycHBhR2RtWldSalltRmdYMTVkWEZ0YVdWaFhWbFZVVTFKUlVFOU9UVXhMU2tsSVIwWkZSRU5DUVVBL1BqMDhPem81T0RjMk5UUXpNakV3THk0dExDc3FLU2duSmlVa0l5SWhJQjhlSFJ3Ykdoa1lGeFlWRkJNU0VSQVBEZzBNQ3dvSkNBY0dCUVFEQWdFQUFDSDVCQVVFQUIwQUxBQUFBQUFZQUJnQUFBVWNZQ2VPWkdtZWFLcXViT3UrY0N6UGRHM2ZlSzd2Zk8vL3dPQXJCQUFoK1FRRkJBQWRBQ3dBQUFBQUFRQUJBQUFGQTJBWEFnQWgrUVFGQkFBZEFDd1VBQXdBQVFBQ0FBQUZBeURUaEFBaCtRUUZCQUFkQUN3VEFBc0FBZ0FHQUFBRkMyQVhkRnhuZE1UUU1WMElBQ0g1QkFVRUFCMEFMQkVBQ3dBRUFBZ0FBQVVSWUNjMllpbHlvcldkVm1jTnA4aTBYUWdBSWZrRUJRUUFIUUFzRHdBT0FBWUFCZ0FBQlE5Z0ozYUJNWjRqaDQ0V0I0bkZjSVlBSWZrRUNRUUFIUUFzRFFBUEFBZ0FCZ0FBQlJGZ0o0NGRSSGJCcVlvcEdRd2NPUmhxQ0FBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRkxXQW5qbVJwbm1pcXJtenJ2bkFzejNSdDMzaXVrOEpnRHdRYlIyaWhCVGlOV1c4WTR6aDlHaGxnUnkyRkFBQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZNMkFuam1ScG5taXFybXpydm5Bc3ozUnQzMmh6YzN0U0M3emFZT2VvY1NBMFlNWlZJUWtHd1JhUVE2VjJpaklBYnFzS0FRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZObUFuam1ScG5taXFybXpydm5Bc3ozUnQzMmh6Yy90VVY3eWFJV01MMGppRVZRVUZMS3dDSEVPcFlqQ3lNcHlzbGloYjRMNnJFQUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGT21BbmptUnBubWlxcm16cnZuQXN6M1J0MzJoemN6dFFWN3phcG1BTG1vQXNqZzdGTUI0NWpGV0RzeWxWTnM1VmdjUHRFbU8rQ202c0NnRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCVDlnSjQ1a2FaNW9xcTVzNjc1d0xNOTBiZDhvY1hPQ3plMm14c2ExWVp4K0xRN2cxRUNxT0prVWc3TkljWXlxNXJDMGdicW1uSENZc1lRdGU3aDBLZ1FBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQlVSZ0o0NWthWjVvcXE1czY3NXdMTTkwYmQ4b1lRWXdKNVNjbmluNElwSVlGOWNsV1ZvWVY1ekZLZk5FY1RLcFN4WElURkc3SXkyMnhlQ1l6eGNwVFBxajRONm9FQUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGU21BbmptUnBubWlxcm16cnZuQXN6M1ROYm5iQXdZUzV2NXdBcWZKekZVZEhWckt6WWJnWU9OK2t4YW1jQ2dQV29KRGFaRk9EYUtyQWNaWVlIRzVydzJtN04xWllSUmkzMlZjaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVlBZQ2VPWkdtZWFLcXViT3UrY0N6UDVVYlFJb2QzZ3I3N3JodkpBbXh4TEtVaVM5bmhURjVNQThQRk1KaDZMbzdneEJpd0JsUFV4cHNhYkZZTVRwaVVYcXNFQm81OGJ0akN0aGI3YnI4S0FRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZVMkFuam1ScG5taXFybXpydmpETFhERXBjRFZwWlBtSTk1MGJVUFJ6UVVxUVlvdHpKQ2xaejhsenhabVVEQVZYd1hDYW9yeWRDM2Rsb0tFTTQzTWFkZUZrU3dXT2VSVXdjTzU0UXlBbU9BcUdnQzBoQUNINUJBVUVBQjBBTEFBQUFBQVlBQmdBQUFWWFlDZU9aR21lYUtxdWJMdHVsbnNhaG14dXRVMEduRjRPRFIrcEp4VHhpaUpDemhYNzJRYUVIZEUxSFZWWkhNQXY0OG9NVE1jV0ozRENzUXliMUdBNSs2bzJIRzRwdzBtekFnTU9aNURmazIwQlVYOUloQzBoQUNINUJBa0VBQjBBTEFJQUF3QVVBQk1BQUFVL1lDZUsxdENNYUpweWhPcU93L2JPOUd6VmM0dnY5YzJuc2w5QVpQaDFpajZqY3JRUW5YYlBEc1E0SFFWcFYxUld0VTFGUjE5WDlWZ1VqV20rWkNvRUFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVmJZQ2VPWkdtZWFLcU9GckdpeE1CeHpHc2FuR3VidzdhZkJ0K3ZST0FNVGJsanlhaGtNWnVkaG5BWEtFbUhtOFp5K0JRdHVpL09ZcWw3RlUvZ1ZQSTJUVzBNcVo1cU0xamh5cU1pM0R6amJEWjllRFlRRFZwalVJZy9JUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGWUdBbmptUnBubWlxaWxXWFpjUnFFaHczWE5jZ2t3WUg3U2ZPQlhneURJa2xHdExrVzVZNFRoSkJGeFZsamtCQjZZcThaRXBVWUpnRkpYSmFwT1lPVXBhMlY1eVl5U2k3R0ZKQzFlVmRWSlBZZHpJME5qZ0ROWEpFQkYrSVZZMUFJUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGWldBbmptUnBubWlxaWtKWEZNUnFOaHhuTUlWUngvTEFXYWFBck1OaERGRUQ0M0hHV1o1K3pwS2dHUzBacXFTQ2Npa2NhWjA0RXVHNk5QQkcxR01hRFJ4YTFpS2F1bkZLeWhpRFZGSEZnSnQ4YlNSdmVUSTBOZ3dNT2h4MFRnUXZIUzFZa2xFaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVm1ZQ2VPWkdtZWFLcUtRY01VeldwbUhMZDF4VlpuY2pjTUFWUGdwMXB3Q2lyR0RUVkE5azZad1JQRm1aNENWV3Vwc2RTT1h0cmdWMXRna0xqV1RZeVVmYlpISExFTU81UDJCanhUVTFhd240NHFCVzhtQzBSQ2hpczBOZ1U1TzFZdFptdGVrNU1oQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFWbllDZU9aR21lYUtxS1FYWmQyV29XSEhkMURWTVhjc1VOSjRHQnMrTHdVclFLeWlpam5RcEFXY2R3NGdTa3FBQVJlM0p4VDdkdngwS0NmYjBqTk5aTTJtTGRJeXRXTzR2S0JzY1NjK1ZjNXA5d1ZYWWtBUU9CS0RRMkdTNDdYeTB2SFZkaWs1UWlJUUFoK1FRRkJBQWRBQ3dBQUFBQUdBQVlBQUFGYm1BbmptUnBubWlxaWxheGJjVnFNaHpIZEExdHl3Sm5uQUlEUjZEaVpGUVpUc29vUzU0WVAxbkhjQ3NOcFNJbHlhTEZjZ0trUWhWcjJwQkZpOUttY1c2WVIrSXpJMGJxU3UxWm9qZFJnbUtwSjB3clRpaUNLSVFvUFZFbFFYZ29PZ3dOT1RWalVpMW1kR2VhbXlVaEFDSDVCQVVFQUIwQUxBSUFBZ0FVQUJRQUFBVmJZQ2VPa01HZG5BR05MSWx5dy9DdWJjZWNXWjJkVEhzYk5aYXBKNEtrZ2kwVDdZU3NNWTI1Sm10WDRraWRKdXVWaFJwc1dUTFlkeFRXamsrbXNTZ0ZIVk03ekcvY0NMd3FSei9wMElmVDhZSkdYV1VjTkVoVktDbzFJUUFoK1FRRkJBQWRBQ3dCQUFFQUZnQVdBQUFGWjJBbmptUFZCV1NxbmdaSGNnYTZqc2JyMG5OMTEyVEZjNmFVNnpZYnBtckVXY2ZGTzRrRXloSFUyYWsxbzlYc0VydHlCYm1xWUpKN1E0MnhMaG00MlBsaVRUc3QxeXBTYzZkcUpGa3VHazVWQWtZcE9pSlhiVDlLVnh4Smhpb0JMUytOVVNaMktpRUFJZmtFQ1FRQUhRQXNBUUFCQUJZQUZnQUFCV3BnSjQ2aWxWMVgxazFrUzE2Y3kxMHUyY1MxeURVMU0zSUVFZ0hYOGRsR3dWcXl3L3ZsY2tSYVovbE1TbVBFcDY0VHM0aW8ycVJKcXoyUm42aHpMcVd1cWI1dEtyWTk3MGpCU3BHVTI5Nk9tbE01UzRBaVJseFVReU9HTmxreWhDNHdNbnRrSmlncUxDNGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVYrWUNlT1pHbWVwVlZjVjlaTjZMbHhkRTF2OGRqWWZOM0VEQnVFQkxFeFRqdmE4RlNrL1VxMW5DaEttbkdXdVNadVJKVjJ1aGFsbDh1eGlESzBNZG5WdWFUVlg4NUY1T2JBNC9NTzJnNm5zZU5ZVWsxbVUyOWVYUjFXZ1NoYUpBdUlLSkFkU1ZlTVBpZEJrRTAwUnlpVVBaZFNWajFiYWhZWkxCbUVkM0FoQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFXQllDZU9aR21lcFZWY1Y5Rk42TGx4ZEUxdjhkallmTjNFakpyQlpLZ3hUanRhVE9BejFYS2lKMm5HRVVDakhOeUlOcngyaXB5UlJlbnRNRGtXVVlGY3ByazZGN2FYZGhIRncrVU9YUzIvdXJkVlpXY2tYR1ZnVTMweE55UUxVamsxQ3lWSmdTZG5IRDhtUVlVa0FtQWNSeWlUUFUxUVZEMWFaU29zQldsNXJoMGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVdDWUNlT1pHbWVwVlZjVjlGTjZMbHhkRTF2OGRqWWZOM0VqTnJGZEtreFRqdk9JRGVnL1VxMFphN1Q1SlJtMXFub1JxSU50WjFpdG1PaGdVYzBpNmhnUG5kb3JuRDc3QldKM1cvT2x6MEd3OUY5VXdCcEloTjFZSGNqV0hRY09GMUtXbFVtU1FNQU1WVlBKVUdISXdCaUhFY29TVDAybVRGWVBZNW5LaXd1TUhodUlRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZlbUFuam1ScG5xV1ZNVXlHdmhjbnovTDFqZzJ0ejgxYnpLNVNabFk0NVRpR20wSFdLOG1TdDg2U1U0cFJvNklhU1JiRURxOGRpd3k3NVZoRVgvS0lLMktNMVIwWm8vMVd5OUYxTWpzTDF2ZjNYaklUSTFaMkhEWmxVRXA1SWtlS0oxTk5KVCtBSTE4Y1JTaEhPelNTTUp5SGNHRXJMUjJEb25BaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVjlZQ2VPWkdtZVpkQXdUSU8rRnlmUDh2V09CRDFjMTBBVHI4SU1Zb0xNQ3FjY3h3YVRBVXUxbXlqR0tWR2xvMmlXUThSMmpGVlJRT2JkQmtRTnpxQXM4bzBZUzNZbnhoREJtV1Y2ZHMzMnVUcGpZV1ZrVzExWVlDUlhYbHBiZUUyQ09Jd25WRThsUWpLR0kyQWNTQzg2UEQ0elhsUTBrbGhuTEg5eWNpRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCWDFnSjQ1a2FaNWwwQlJGZzc0TUo4OHk4NDRFZlhYWlJST3ZqR3h3RWd4a21WT09rd3pLZ0NYa1RTVGtsR0xFcWVob0c4bTBwSzhvSUFaM1pBRlJnN016ZDN5akF0UE40eFJFY25yOUxtTFQ0V05sWUdoZUhBSnVnbGhtWEZGelUxVW1TMDBvVlZBbFZWa2xSbEl2T2hrOU5HQXhORE5kWmlvZExYcDZJUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGZ0dBbmptUnBucVhRRkZrbm9HakJ6ZlJjd0NORUR4M1JaUU1hQk5hWWJWQ2JXZU9rNCtCNnM5UE05K3hFU2JKanRaTzhqYTViQUZqQTRXMUZ3WmVJMHpyL25LSU1oK3BteCtGdWdoM2FQc3ZwWlc0ZFFTUmdXNFpaWjEwbFUxVjZlRG1OTUk5REprVWNXaVpKa0ZJekF4aytRRUpWTWpVMFhtY3ZHYUNDclIwaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVjZZQ2VPWkdtZXBkQmxHWUcrR1NmUGN2YU8xcnk1UWJmTmxoZEJWa0FWWks2VDdOWUpMRTJ5SHJQekhNV0swODdSTnFwbXF3TE9KanY2cVVTY0pIbG81WkJKSEc1TVNuWnkyZThPSGoxK203dHViMTVYWkZzbFVWK0JKRG1LS0U0Y1FTWkRIRmdtUjJrM09qd0VQMTR3TkRSY1pDb3NIV2Q1YnlFQUlma0VDUVFBSFFBc0FBQUFBQmdBR0FBQUJYcGdKNDVrYVo1bDFXVk5wNkpueHMzMG5NRmpRQmR1RnhTMEFJd3dHeFpSbkFGT05PQUlTOGRsSnlxU0VhUWk0bTFFbFVZckhCNVdCQ1J4eG1hSXFNRjVqY0d0RGh2TmpVK2ZZOTBJTEI2WHVXZG9WRlpqV2xDQlhvaG1Ta3ROZUNSRUhGY25rWk1uT2pNOEtqOUJVakkxTkZ0b0VBMHRiblJqSVFBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRmdHQW5qbVJwbmlaRWRCYnFObHdzeDQwN0NyR3hkbE5IR0RHQkM4SVp1QUlEam90anNJbUF3bExST1VxV1lBR3FLTUNwalpqYUVaREUyWVU3U3BFbGZhNXdXajcydVN3aXlNTjBFYWR5N3JoSEMzZGFIQXRmVFdkakkxaGhYRjVmUmxwV0ptQk9pU2xGV1NkSUhCQXVPRXc3UFQ4eFdqQXpNbzVoRml0d2ZYMGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVYxWUNlT1pHbWVwa1YwQWVvU1hDekhxeXRXOFVWTzNSWGJIWTdCWnVCWVRqZ2QwSGNTQWtmRkV1dzVXbkJxSW82UzJ1T1FPQzF1ZGhUd2lqc1RzR2g2RG1MTlozaTVIUXpYei9PUjlzd2NzYmxYSlU1VVVTVkpUejRWS0VJTEtBdEZSeWc0ZXlNOFBuQTJNRE15V0Z3QkJDc0FkR0loQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFWellDZU9aR21lWmdCMUFlb1NBeWZQQStHU2NWWldHVGZjQWM3bGR1RzBUaHpkclZQZ25BYkRwZWp5SXhHYzBoSEhOaG9vczUxTVZZUUZrMGRCcy9ZSUtaczVxN082QXhlbDUyNU9SVjF4ZTlWaVZtNVNXeVZRWUZSSUJWSk5LRUZSS0VWSEtEazdQV00zTURNMFhHWXFjWE5xSVFBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRmQyQW5qbVJwbm1iUVdkMkVvdERBY1lZeEQ5QkxEZ05oRWp4ZGdKUFJaVGlxRThlbkUzRk9nMkpUbEJtVVl0TmRidFRMam9Da3AzY2s3Z2pLWTQ1Z1pCaXpSNWEydTJOZ09lZWQ4Z1R0NWJoRVhXTmdPMjQ0SlZGZVZTWUxTMU1FZkdGU0tFZE5QRXdrUUZaVE1UTTFOMXRqYXl4L2VGa2hBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVZvWUNlT1pHbWVwdEFGYU50WkJtY3dUR3hZN21nWXA3QzdBZzdFQmVHMGpMa1ZzbVFZSmpzUUhnbjIxT0YwVlpKVXRNd3VmVm1kU3NRSWswZUJzcG5CRW0yejcyNjFheGhYd1NNcTNOU3NSazl5UnloQlRpaEZkaWMvS1lvNU1ESTBObVlkS20yU1dTRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCV3hnSjQ1a2FaNW0xUVZvdXhvYzB6UU1aN0N1YURBb1k3Z1ZUazRnUkJWekhjN0VaQkFnUllJZktjQjdpcW9qcVZWSE9tNlBGZXlXb1JJMXRxT3pDSWZ1cUsvdERubmt0WG9OaTdaMjFXYXdkVTVQVVNkMUxZVWlRWUVvUkRrN1BYc3RBVEF5TkRaL1ZwZHhUeUVBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQldOZ0o0NWthWjVtMVFsbzJ3V2IwWFJRWTJ5Qk8yN3oyV3c2ZzY0alJCa2NRK0xFQkV5S21xTkF6emw5T2tsUTRuVlVGRldwcXRWMkJCa0p5bU8wZDl5cGRxL3ZyRE1yM1g2MThOUGJaVmlhRm50NkN5NDhLRDlKTURJME5qaGpLaXhzV3lFQUlma0VDUVFBSFFBc0FBQUFBQmdBR0FBQUJWaGdKNDVrYVo3bTBnbG91MjdGMmxuRjVwSTJhdVV0M3dNb24wc29JZzVMQXN1dHBNUXRUYjdZa3lRVk5hZldFUXRMMnNxNDN5ejQycWxpemNhYmtMeGtkOUxCRTd5VUJzeUxhcmYxUG9JcFdUVmdJaXdxZ2xnaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVlpZQ2VPWkdtZXA5QUJhTnN4aE5xcGpPeSt0c25jeGQzMUtLQlBTTnI1UnNaUjdyaE1Ia1ZPd3BQVUlDMmZyT21wSXVKcVI5N1pWenlTZnF2SXNaTThiV3JYSXFKTFRxS2I3TVdyU0FCSHdUb0xZbjArWGdwalV5RUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCVkZnSjQ1a2FaNW5oYTVqWm9sSloyVXNTYVBBdlJKMXg2Ty9YdERXSTVZQVJaS3FsVFNLWHMxb2JTSmFTcSttbUlpSzVjcXVVSkd1T2NhYXlqVzBMemtzdFUvdmtwclpxOUNRSFdURzJ1U2JleUVBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQlVsZ0o0NWthWjVuaGE0anBJcE9CN0Vrd2Rwc1FIYzYydSsvMms0NExNcU1MZVF1cHV4TVJJdW05QlNGVGErZGwyaW01R0pMdUdLWUZNeXR5dEt4U2IzeWlpcnU0clA2WllVQUFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVTVZQ2VPWkdtZUo0Q3VZMUNxS2l1Nk1ydlVkNjJiOU43dnRaOFBTQ3dtUkxHaU1yVkVKWnZMMzdNcGxGV2hwWnpOaW0zeGxxcGpseFVDQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFVM1lDZU9aR21lNklTdTRtSzY3RmpGTkoyc2Q2M0g4MTdEUHFCdlNDeUtWRVdrY1lrUzZweE1VUys2azFCWDAxT1dCWVhxbE5kVENBQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZMR0Fuam1ScG5taXFvdFBxdm5Bc3oySkxxL2F0Ny96cDlNRGdLQmNqQ284OHhVdXBNNmFjVHRnUGFRb0JBQ0g1QkFVRUFCMEFMQUFBQUFBWUFCZ0FBQVVqWUNlT1pHbWVhS3F1Yk91K2NMeFNjbTNmZUk3VGV0L3p2cUJ3eUFLV2pDOGtNUVFBT3c9PSkgbm8tcmVwZWF0IHNjcm9sbCBjZW50ZXIgY2VudGVyO1xufVxuLm14LXRvb2x0aXAtY29udGVudCAudGFibGUgdGgsXG4ubXgtdG9vbHRpcC1jb250ZW50IC50YWJsZSB0ZCB7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbn1cbiIsIi5teC10YWJjb250YWluZXItcGFuZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLm14LXRhYmNvbnRhaW5lci1jb250ZW50LmxvYWRpbmcge1xuICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaE5nQTJBUE1BQVAvLy93QUFBSGg0ZUJ3Y0hBNE9EdGpZMkZSVVZOemMzTVRFeEVoSVNJcUtpZ0FBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQWtLQUFBQUlmNGFRM0psWVhSbFpDQjNhWFJvSUdGcVlYaHNiMkZrTG1sdVptOEFJZjhMVGtWVVUwTkJVRVV5TGpBREFRQUFBQ3dBQUFBQU5nQTJBQUFFeXhESVNhdTlPT3ZOdS85Z0tJNWt5U0VKUVNTSTZVcUtLaFBLV3lMejNOcGltcXNKbnVnM0U0YUlNaVBJOXdzcVBUamlUbGt3cUF3RlRDeFhleFlHczBIMmdnSk9MWUxCUURDeTVnd213WXg5SkpyQXNzSFFYc0tyOUNGdU0zQWxjakowSUFkK0JBTUhMbWxySkFkdUJvNVBsNWlabXB1Y25aNmZjV3FJbUpDamFIT1poaXFtRkl1QWw2NFpzWml6RjZvRXJFSzN1Uk9sbTc2Z3djTER4TVhHeDhYQWo2SWt1NCtvSXJVazBoL1UwV0Vqem5IUUlzcWhrY2pCM3NuY3hkYkM1K0xseWN6aDdrOFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRNRU1oSnE3MDQ2ODI3LzJBb2ptUnBubVZoRUlSUm9HY3hzT3p3d3VSS3N3Wk83anZmQ0VnVGluUzduaEYwbU5FR2h3c2l3VW9nbHBTRHpoQzFLSWlLa1dBd0VKZ1FSTllWSk5pWlNkUjBJdVNzbGRKRlVKMHd1T01KSVcwMGJ5TnhSSE9CWklRamFHbHJXQnhmUUdHUUhsTlZqNVdhbTV5ZG5wOUxZMldib29zV2dpeW1RcWdFcWhON2ZaQ3dHYk95TzdFWHJLNDR1aHFscElxZ3dzUEV4Y2JIeU1lL0tNc2l2U2JQZExjbnRkSlAxTlBPYmlmUmlhUE13Y25DemNyYnlOWEc2TVhkeHVUaTd6NFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRPRU1oSnE3MDQ2ODI3LzJBb2ptUnBubWlxQXNJd0NLc3BFRFFCeCtOUUV3T2U3ejFmYUZhN0NVR3QxMUZZTU5BTUJWTFNTQ3JvYW9Qb2NFY1ZPWGNFZytoS0M1TEF0VEhRaEthSmlMUnU2THNUdjEzeTBJSE1PeXc5QjE4R2ZuK0Zob2VJaVlvWkNBazBDUWlMRmdwb0NobFRSd2h0QkpFV2NEWkNqbTBKRjN4bU1adHVGcVpDcVFRWG4za29vbWlrc0hpWm01MlNBSlJnbHJ3VGpZKzd3Y2JIeU1uS0U1Z296VzljSjdFL1dDZXNhdFVtMTF0RjB0RWp6eks0eTRuaHh0UEkyOGJxd2VqSTV1VHhKaEVBSWZrRUNRb0FBQUFzQUFBQUFEWUFOZ0FBQk1zUXlFbXJ2VGpyemJ2L1lDaU9aR21lYUtvQ3dqQUlxeWtRTkFISDQxQVRBNTd2UFY5b1Zyc0pRYTNYY1lsS0dtV3VKM0luRlJGcDFZNnVGaXh0YVYzUWwzY2FoejlYMnltZDdUaFRiNlo4VHEvYjcvaTh2R0NnR1FvYWNVSUZab0FYYkVkOU93UUdHR1pIaXpXT1FKQ1JCQmlJUW9vN2paaFJTd2RtQjNvVUI0b0dvNlNxcTZ5dE1RZ0pOQWtJckFxUkNpT0NJd2lXQkxSVFJTV3hsZ2toanlTOU5NYVV5TWxEVk1LOXhVT2ZKYnlXdjNxMmk3aEx1aFd3c3RsQ21hdkg1c3lyNWVyVnJ1NDRFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWlaY2dVR05BWUZKSk1pQldhZ1E0TWxuVHNFQmlLTElxczFya0Ftc1RSV3FDU3FPNjFXa1JrSUNUUUpDQmNIWmdkSENyRUt4cW9HeVVJSXRnVEZlc0syQ1h2VXQzcmNCSHZZc2RwNjA3Yldlc3VyelpYQncrZ2lFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWdTQ0FrMENRaVdDanMwQ3BRSW9qV2ZKWk1kbktjRUNhcURJSzQxWGtBaHREUzJYQ0d0cDdBa2p4Nm1ycW5Ca1NLaG9xUVhCUVkwQmdWTG01M0dGUVZtMHBUUG9nYVZ0Tit1bGR3NzNwUUhaZ2VXQjl3RzZwa29FUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2dktVU0Nsa0RnTFFvN05BcC9Fd2lDTlg1Q2NSWjdpQVFKaTFRWGp6VkNacFNWQkpkQUY0NklrVDVzRjRlUGlxSlJHWUdDaElXR2puMnVzck8wdFhZRkJqUUdCYlFGWnJ4UVNpSzVnZ1l5a3lHVkpwakpqOHVkSWNRN3hpV2pJUWRtQjJ1cEl3ZkVCdHEySG95ejFyUE01OURseUxUazR1OHBFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3a1JDVm9Db1dtOWhCTEZqcWFBZGhEVEdyUGtOSDZTV1VLQ3UvTjJ3cldTcmhiOG9HbHFZQWljSFpPSU5ETUhHOTdlWFhvZFVsTlZWbGRnUzRhS2k0eU5qbzhGQmpRR0JZOFhCV3MwQTVWUVhSbVNVd2FkWlJob1VKazhwV0duY2hlZ082SkNlRFlZQjZnREIxYWVHUWVnQnJtV3djTER4TVhHeDF5QUtic2lzNEVnemo5c0o3ZlNtdFN0UTZReTI4M0tLTXpJamVIRTBjYlY1OW5sM2NYazR1OG9FUUE3KSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDMycHggMzJweDtcbn1cbi5teC10YWJjb250YWluZXItdGFicyB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLm14LXRhYmNvbnRhaW5lci10YWJzIGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubXgtdGFiY29udGFpbmVyLWluZGljYXRvciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6ICNmMmRlZGU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGNvbG9yOiAjYjk0YTQ4O1xuICAgIHRvcDogMHB4O1xuICAgIHJpZ2h0OiAtNXB4O1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB6LWluZGV4OiAxOyAvKiBpbmRpY2F0b3Igc2hvdWxkIG5vdCBoaWRlIGJlaGluZCBvdGhlciB0YWIgKi9cbn1cbiIsIi8qIGJhc2Ugc3RydWN0dXJlICovXG4ubXgtZ3JpZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IC8qIHRvIHByZXZlbnQgYW55IG1hcmdpbiBmcm9tIGVzY2FwaW5nIGdyaWQgYW5kIGZvb2JhcmluZyBvdXIgc2l6ZSBjYWxjdWxhdGlvbnMgKi9cbn1cbi5teC1ncmlkLWNvbnRyb2xiYXIsIC5teC1ncmlkLXNlYXJjaGJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uLFxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIC5teC1idXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIC5teC1idXR0b24gKyAubXgtYnV0dG9uLFxuLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uICsgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xufVxuXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXNlYXJjaC1jb250cm9scyAubXgtYnV0dG9uICsgLm14LWJ1dHRvbixcbltkaXI9XCJydGxcIl0gLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uICsgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjNlbTtcbn1cblxuLm14LWdyaWQtcGFnaW5nYmFyLFxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4ubXgtZ3JpZC10b29sYmFyLCAubXgtZ3JpZC1zZWFyY2gtaW5wdXRzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBmbGV4OiAxO1xufVxuXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXRvb2xiYXIsXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXNlYXJjaC1pbnB1dHMge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXBhZ2luZ2JhcixcbltkaXI9XCJydGxcIl0gLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIHtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLm14LWdyaWQtcGFnaW5nLXN0YXR1cyB7XG4gICAgcGFkZGluZzogMCA4cHggNXB4O1xufVxuXG4vKiBzZWFyY2ggZmllbGRzICovXG4ubXgtZ3JpZC1zZWFyY2gtaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLm14LWdyaWQtc2VhcmNoLWxhYmVsIHtcbiAgICB3aWR0aDogMTEwcHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbltkaXI9XCJydGxcIl0gLm14LWdyaWQtc2VhcmNoLWxhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LWdyaWQtc2VhcmNoLWlucHV0IHtcbiAgICB3aWR0aDogMTUwcHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4ubXgtZ3JpZC1zZWFyY2gtbWVzc2FnZSB7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbn1cblxuLyogd2lkZ2V0IGNvbWJpbmF0aW9ucyAqL1xuLm14LWRhdGF2aWV3IC5teC1ncmlkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbiIsIi5teC1jYWxlbmRhciB7XG4gICAgei1pbmRleDogMTAwMDtcbn1cblxuLm14LWNhbGVuZGFyLW1vbnRoLWRyb3Bkb3duLW9wdGlvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLm14LWNhbGVuZGFyLCAubXgtY2FsZW5kYXItbW9udGgtZHJvcGRvd24ge1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ubXgtY2FsZW5kYXItbW9udGgtY3VycmVudCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ubXgtY2FsZW5kYXItbW9udGgtc3BhY2VyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5teC1jYWxlbmRhciwgLm14LWNhbGVuZGFyLW1vbnRoLWRyb3Bkb3duLW9wdGlvbnMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JleTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbiIsIi5teC1kYXRhZ3JpZCB0ciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXgtZGF0YWdyaWQgdHIubXgtZGF0YWdyaWQtcm93LWVtcHR5IHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5teC1kYXRhZ3JpZCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm14LWRhdGFncmlkIHRoLCAubXgtZGF0YWdyaWQgdGQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG5cbi8qIGhlYWQgKi9cbi5teC1kYXRhZ3JpZCB0aCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBSZXF1aXJlZCBmb3IgdGhlIHBvc2l0aW9uaW5nIG9mIHRoZSBjb2x1bW4gcmVzaXplcnMgKi9cbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG59XG4ubXgtZGF0YWdyaWQtaGVhZC1jYXB0aW9uIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubXgtZGF0YWdyaWQtc29ydC1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kYXRhZ3JpZC1zb3J0LWljb24ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmc6IDAgNXB4IDAgMDtcbn1cbi5teC1kYXRhZ3JpZC1jb2x1bW4tcmVzaXplciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAtNnB4O1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kYXRhZ3JpZC1jb2x1bW4tcmVzaXplciB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogLTZweDtcbn1cblxuLyogYm9keSAqL1xuLm14LWRhdGFncmlkIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICBib3JkZXItdG9wOiBub25lO1xufVxuLm14LWRhdGFncmlkIHRib2R5IHRyOm50aC1jaGlsZCgybisxKSB0ZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbn1cbi5teC1kYXRhZ3JpZCB0Ym9keSAuc2VsZWN0ZWQgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG59XG4ubXgtZGF0YWdyaWQtZGF0YS13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubXgtZGF0YWdyaWQgdGJvZHkgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE2cHg7XG4gICAgbWF4LWhlaWdodDogMTZweDtcbn1cbi5teC1kYXRhZ3JpZCBpbnB1dCxcbi5teC1kYXRhZ3JpZCBzZWxlY3QsXG4ubXgtZGF0YWdyaWQgdGV4dGFyZWEge1xuICAgIGN1cnNvcjogYXV0bztcbn1cblxuLyogZm9vdCAqL1xuLm14LWRhdGFncmlkIHRmb290IHRoLFxuLm14LWRhdGFncmlkIHRmb290IHRkIHtcbiAgICBwYWRkaW5nOiAzcHggOHB4O1xufVxuLm14LWRhdGFncmlkIHRmb290IHRoIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbn1cbi5teC1kYXRhZ3JpZC5teC1jb250ZW50LWxvYWRpbmcgLm14LWNvbnRlbnQtbG9hZGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBhbmltYXRpb246IHBsYWNlaG9sZGVyR3JhZGllbnQgMXMgbGluZWFyIGluZmluaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAjRjVGNUY1O1xuICAgIGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGNUY1RjUgMCUsICNGNUY1RjUgNSUsICNGOUY5RjkgNTAlLCAjRjVGNUY1IDk1JSwgI0Y1RjVGNSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMHB4IDEwMHB4O1xuICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG59XG5Aa2V5ZnJhbWVzIHBsYWNlaG9sZGVyR3JhZGllbnQge1xuICAgIDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwcHggMDsgfVxuICAgIDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTAwcHggMDsgfVxufVxuXG4ubXgtZGF0YWdyaWQtdGFibGUtcmVzaXppbmcgdGgsXG4ubXgtZGF0YWdyaWQtdGFibGUtcmVzaXppbmcgdGQge1xuICAgIGN1cnNvcjogY29sLXJlc2l6ZSAhaW1wb3J0YW50O1xufVxuIiwiLm14LXRlbXBsYXRlZ3JpZC1jb250ZW50LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5teC10ZW1wbGF0ZWdyaWQtcm93IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG59XG4ubXgtdGVtcGxhdGVncmlkLWl0ZW0ge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubXgtdGVtcGxhdGVncmlkLWVtcHR5IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuLm14LXRlbXBsYXRlZ3JpZC1pdGVtLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuLm14LXRlbXBsYXRlZ3JpZC1pdGVtIC5teC10YWJsZSB0aCxcbi5teC10ZW1wbGF0ZWdyaWQtaXRlbSAubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG59XG4iLCIubXgtc2Nyb2xsY29udGFpbmVyLWhvcml6b250YWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG4ubXgtc2Nyb2xsY29udGFpbmVyLWhvcml6b250YWwgPiBkaXYge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItd3JhcHBlciB7XG4gICAgcGFkZGluZzogMTBweDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItbmVzdGVkIHtcbiAgICBwYWRkaW5nOiAwO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1maXhlZCA+IC5teC1zY3JvbGxjb250YWluZXItbWlkZGxlID4gLm14LXNjcm9sbGNvbnRhaW5lci13cmFwcGVyLFxuLm14LXNjcm9sbGNvbnRhaW5lci1maXhlZCA+IC5teC1zY3JvbGxjb250YWluZXItbGVmdCA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcixcbi5teC1zY3JvbGxjb250YWluZXItZml4ZWQgPiAubXgtc2Nyb2xsY29udGFpbmVyLWNlbnRlciA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcixcbi5teC1zY3JvbGxjb250YWluZXItZml4ZWQgPiAubXgtc2Nyb2xsY29udGFpbmVyLXJpZ2h0ID4gLm14LXNjcm9sbGNvbnRhaW5lci13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLm14LXNjcm9sbGNvbnRhaW5lci1tb3ZlLWluIHtcbiAgICB0cmFuc2l0aW9uOiBsZWZ0IDI1MG1zIGVhc2Utb3V0O1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1tb3ZlLW91dCB7XG4gICAgdHJhbnNpdGlvbjogbGVmdCAyNTBtcyBlYXNlLWluO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zaHJpbmsgLm14LXNjcm9sbGNvbnRhaW5lci10b2dnbGVhYmxlIHtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB3aWR0aDtcbn1cblxuLm14LXNjcm9sbGNvbnRhaW5lci10b2dnbGVhYmxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zbGlkZSA+IC5teC1zY3JvbGxjb250YWluZXItdG9nZ2xlYWJsZSA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItcHVzaCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zaHJpbmsgPiAubXgtc2Nyb2xsY29udGFpbmVyLXRvZ2dsZWFibGUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubXgtc2Nyb2xsY29udGFpbmVyLXB1c2gubXgtc2Nyb2xsY29udGFpbmVyLW9wZW4gPiBkaXYsXG4ubXgtc2Nyb2xsY29udGFpbmVyLXNsaWRlLm14LXNjcm9sbGNvbnRhaW5lci1vcGVuID4gZGl2IHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5teC1zY3JvbGxjb250YWluZXItcHVzaC5teC1zY3JvbGxjb250YWluZXItb3BlbiA+IC5teC1zY3JvbGxjb250YWluZXItdG9nZ2xlYWJsZSxcbi5teC1zY3JvbGxjb250YWluZXItc2xpZGUubXgtc2Nyb2xsY29udGFpbmVyLW9wZW4gPiAubXgtc2Nyb2xsY29udGFpbmVyLXRvZ2dsZWFibGUge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuIiwiLm14LW5hdmJhci1pdGVtIGltZyxcbi5teC1uYXZiYXItc3ViaXRlbSBpbWcge1xuICAgIGhlaWdodDogMTZweDtcbn1cblxuIiwiLm14LW5hdmlnYXRpb250cmVlIC5uYXZiYXItaW5uZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RmZTZlYTtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSBsaTpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgY29sb3I6ICM3Nzc7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgYS5hY3RpdmUge1xuICAgIGNvbG9yOiAjRkZGO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQ6ICMzNDk4REI7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLm14LW5hdmlnYXRpb250cmVlIC5teC1uYXZpZ2F0aW9udHJlZS1jb2xsYXBzZWQgdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHtcbiAgICBwYWRkaW5nOiA1cHggMDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB7XG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICBwYWRkaW5nOiA1cHggMDtcbn1cbltkaXI9XCJydGxcIl0gLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHVsIGxpIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB1bCBsaSB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIHBhZGRpbmctdG9wOiAzcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB1bCBsaSBpbWcge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4iLCIubXgtbGluayBpbWcsXG4ubXgtYnV0dG9uIGltZyB7XG4gICAgaGVpZ2h0OiAxNnB4O1xufVxuLm14LWxpbmsge1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiIsIi5teC1ncm91cGJveCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5teC1ncm91cGJveC1oZWFkZXIge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gICAgY29sb3I6ICNlZWU7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG59XG4ubXgtZ3JvdXBib3gtY29sbGFwc2libGUgPiAubXgtZ3JvdXBib3gtaGVhZGVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZ3JvdXBib3guY29sbGFwc2VkID4gLm14LWdyb3VwYm94LWhlYWRlciB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLm14LWdyb3VwYm94LWJvZHkge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5teC1ncm91cGJveC5jb2xsYXBzZWQgPiAubXgtZ3JvdXBib3gtYm9keSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5teC1ncm91cGJveC1oZWFkZXIgKyAubXgtZ3JvdXBib3gtYm9keSB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgNHB4IDRweDtcbn1cbi5teC1ncm91cGJveC1jb2xsYXBzZS1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5bZGlyPVwicnRsXCJdIC5teC1ncm91cGJveC1jb2xsYXBzZS1pY29uIHtcbiAgICBmbG9hdDogbGVmdDtcbn1cbiIsIi5teC1kYXRhdmlldyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm14LWRhdGF2aWV3LWNvbnRyb2xzIHtcbiAgICBwYWRkaW5nOiAxOXB4IDIwcHggMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlO1xufVxuXG4ubXgtZGF0YXZpZXctY29udHJvbHMgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4ubXgtZGF0YXZpZXctY29udHJvbHMgLm14LWJ1dHRvbiArIC5teC1idXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjNlbTtcbn1cblxuLm14LWRhdGF2aWV3LW1lc3NhZ2Uge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbn1cbi5teC1kYXRhdmlldy1tZXNzYWdlID4gZGl2IHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4ubXgtZGF0YXZpZXctbWVzc2FnZSA+IGRpdiA+IHAge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qIFRvcC1sZXZlbCBkYXRhIHZpZXcgaW4gd2luZG93IGlzIGEgc3BlY2lhbCBjYXNlLCBoYW5kbGUgaXQgYXMgc3VjaC4gKi9cbi5teC13aW5kb3ctdmlldyAubXgtd2luZG93LWJvZHkge1xuICAgIHBhZGRpbmc6IDA7XG59XG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRlbnQsXG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LXBsYWNlaG9sZGVyID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDE1cHg7XG59XG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRyb2xzLFxuLm14LXdpbmRvdy12aWV3IC5teC13aW5kb3ctYm9keSA+IC5teC1wbGFjZWhvbGRlciA+IC5teC1kYXRhdmlldyA+IC5teC1kYXRhdmlldy1jb250cm9scyB7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4IDBweCA2cHggNnB4O1xufVxuIiwiLm14LWRpYWxvZyB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogNTAwcHg7XG4gICAgLyogSWYgdGhlIG1hcmdpbiBpcyBzZXQgdG8gYXV0bywgSUU5IHJlcG9ydHMgdGhlIGNhbGN1bGF0ZWQgdmFsdWUgb2YgdGhlXG4gICAgICogbWFyZ2luIGFzIHRoZSBhY3R1YWwgdmFsdWUuIE90aGVyIGJyb3dzZXJzIHdpbGwganVzdCByZXBvcnQgMC4gRWxpbWluYXRlXG4gICAgICogdGhpcyBkaWZmZXJlbmNlIGJ5IHNldHRpbmcgbWFyZ2luIHRvIDAgZm9yIGV2ZXJ5IGJyb3dzZXIuICovXG4gICAgbWFyZ2luOiAwO1xufVxuLm14LWRpYWxvZy1oZWFkZXIge1xuICAgIGN1cnNvcjogbW92ZTtcbn1cbi5teC1kaWFsb2ctYm9keSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG4iLCIubXgtd2luZG93IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiA2MDBweDtcbiAgICAvKiBJZiB0aGUgbWFyZ2luIGlzIHNldCB0byBhdXRvLCBJRTkgcmVwb3J0cyB0aGUgY2FsY3VsYXRlZCB2YWx1ZSBvZiB0aGVcbiAgICAgKiBtYXJnaW4gYXMgdGhlIGFjdHVhbCB2YWx1ZS4gT3RoZXIgYnJvd3NlcnMgd2lsbCBqdXN0IHJlcG9ydCAwLiBFbGltaW5hdGVcbiAgICAgKiB0aGlzIGRpZmZlcmVuY2UgYnkgc2V0dGluZyBtYXJnaW4gdG8gMCBmb3IgZXZlcnkgYnJvd3Nlci4gKi9cbiAgICBtYXJnaW46IDA7XG59XG4ubXgtd2luZG93LWNvbnRlbnQge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm14LXdpbmRvdy1hY3RpdmUgLm14LXdpbmRvdy1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4IDZweCAwIDA7XG59XG4ubXgtd2luZG93LWhlYWRlciB7XG4gICAgY3Vyc29yOiBtb3ZlO1xufVxuLm14LXdpbmRvdy1ib2R5IHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cbiIsIi5teC1kcm9wZG93bi1saXN0ICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1kcm9wZG93bi1saXN0IGltZyB7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kcm9wZG93bi1saXN0IGltZyB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4ubXgtZHJvcGRvd24tbGlzdCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LWRyb3Bkb3duLWxpc3QgPiBsaSB7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMTBweDtcbiAgICBib3JkZXI6IDFweCAjZGRkO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm14LWRyb3Bkb3duLWxpc3QgPiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4ubXgtZHJvcGRvd24tbGlzdCA+IGxpOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xufVxuLm14LWRyb3Bkb3duLWxpc3Qtc3RyaXBlZCA+IGxpOm50aC1jaGlsZCgybisxKSB7XG4gICAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbn1cbi5teC1kcm9wZG93bi1saXN0ID4gbGk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG59XG4iLCIubXgtaGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIGJhY2tncm91bmQ6ICMzMzM7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLm14LWhlYWRlci1jZW50ZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogI2VlZTtcbiAgICBsaW5lLWhlaWdodDogMzBweDsgLyogaGVpZ2h0IG9mIGJ1dHRvbnMgKi9cbn1cbmJvZHlbZGlyPVwibHRyXCJdIC5teC1oZWFkZXItbGVmdCxcbmJvZHlbZGlyPVwicnRsXCJdIC5teC1oZWFkZXItcmlnaHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDlweDtcbiAgICBsZWZ0OiA5cHg7XG59XG5ib2R5W2Rpcj1cImx0clwiXSAubXgtaGVhZGVyLXJpZ2h0LFxuYm9keVtkaXI9XCJydGxcIl0gLm14LWhlYWRlci1sZWZ0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA5cHg7XG4gICAgcmlnaHQ6IDlweDtcbn1cbiIsIi5teC10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIG1hcmdpbi10b3A6IDBweDtcbn1cbiIsIi5teC1saXN0dmlldyB7XG4gICAgcGFkZGluZzogOHB4O1xufVxuLm14LWxpc3R2aWV3ID4gdWwge1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LWxpc3R2aWV3ID4gdWwgPiBsaSB7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMTBweDtcbiAgICBib3JkZXI6IDFweCAjZGRkO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG4ubXgtbGlzdHZpZXcgPiB1bCA+IGxpOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbn1cbi5teC1saXN0dmlldyA+IHVsID4gbGk6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4ubXgtbGlzdHZpZXcgbGk6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xufVxuLm14LWxpc3R2aWV3IGxpOm50aC1jaGlsZCgybisxKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbn1cbi5teC1saXN0dmlldyA+IHVsID4gbGkuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICNlZWU7XG59XG4ubXgtbGlzdHZpZXctY2xpY2thYmxlIHVsICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1saXN0dmlldy1lbXB0eSB7XG4gICAgY29sb3I6ICM5OTk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLm14LWxpc3R2aWV3IC5teC1saXN0dmlldy1sb2FkaW5nIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5teC1saXN0dmlldy1zZWFyY2hiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5teC1saXN0dmlldy1zZWFyY2hiYXIgPiBpbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtbGlzdHZpZXctc2VhcmNoYmFyID4gYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xufVxuW2Rpcj1cInJ0bFwiXSAubXgtbGlzdHZpZXctc2VhcmNoYmFyID4gYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5teC1saXN0dmlldy1zZWxlY3Rpb24ge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBwYWRkaW5nOiAwIDE1cHggMCA1cHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1saXN0dmlldy1zZWxlY3Rpb24ge1xuICAgIHBhZGRpbmc6IDAgNXB4IDAgMTVweDtcbn1cbi5teC1saXN0dmlldy1zZWxlY3RhYmxlIC5teC1saXN0dmlldy1jb250ZW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtbGlzdHZpZXcgLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZGVmO1xufVxuLm14LWxpc3R2aWV3IC5teC10YWJsZSB0aCxcbi5teC1saXN0dmlldyAubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDJweDtcbn1cbiIsIi5teC1sb2dpbiAuZm9ybS1jb250cm9sIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuIiwiLm14LW1lbnViYXIge1xuICAgIHBhZGRpbmc6IDhweDtcbn1cbi5teC1tZW51YmFyLWljb24ge1xuICAgIGhlaWdodDogMTZweDtcbn1cbi5teC1tZW51YmFyLW1vcmUtaWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDTUFBQUFqQ0FZQUFBQWUyYk5aQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFLTkpSRUZVZU5waS9QLy9QOE5nQVV3TWd3aU1PbWJVTWFPT0dYWE1xR05HSFRQWUhNT0NUZkRzMmJNZVFLb09pSTFCWENCdU1qWTIza0ZyZFl6b1RRaWdSbThndFFXTEcwT0JCcXlobFRwYzBkU09JeFRyYUt3T3EyUFVjV2hXcDdFNnJJNjVpVVB6VFJxcncrcVlHaHlhbTJpc0R0TXh3RVMxQ1VnRkFmRnhxQkNJRGtKUGJOUldoelUzalJaNm80NFpkY3lvWTBZZE0rcVlVY2NNVXNjQUJCZ0FVWHBFakUvQnMvSUFBQUFBU1VWT1JLNUNZSUk9KSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuIiwiLm14LW5hdmlnYXRpb25saXN0IHtcbiAgICBwYWRkaW5nOiA4cHg7XG59XG4ubXgtbmF2aWdhdGlvbmxpc3QgbGk6aG92ZXIsXG4ubXgtbmF2aWdhdGlvbmxpc3QgbGk6Zm9jdXMsXG4ubXgtbmF2aWdhdGlvbmxpc3QgbGkuYWN0aXZlIHtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OERCO1xufVxuLm14LW5hdmlnYXRpb25saXN0ICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1uYXZpZ2F0aW9ubGlzdCAudGFibGUgdGgsXG4ubXgtbmF2aWdhdGlvbmxpc3QgLnRhYmxlIHRkIHtcbiAgICBwYWRkaW5nOiAycHg7XG59XG4iLCIubXgtcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDMwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICB3aWR0aDogMjUwcHg7XG4gICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBvcGFjaXR5OiAwLjg7XG4gICAgei1pbmRleDogNTAwMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgcGFkZGluZzogMjBweCAxNXB4O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLWluLW91dDtcbn1cbi5teC1wcm9ncmVzcy1oaWRkZW4ge1xuICAgIG9wYWNpdHk6IDA7XG59XG4ubXgtcHJvZ3Jlc3MtbWVzc2FnZSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG4ubXgtcHJvZ3Jlc3MtZW1wdHkgLm14LXByb2dyZXNzLW1lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ubXgtcHJvZ3Jlc3MtaW5kaWNhdG9yIHtcbiAgICB3aWR0aDogNzBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhSZ0FLQU1RQUFEbzZPb0dCZ1ZwYVduQndjSTZPanF5c3JGSlNVbVJrWkQ4L1AweE1UTTdPenFlbnAxaFlXRjFkWFVoSVNISnljb2VIaDB0TFMxZFhWNmlvcU0vUHoyVmxaVDA5UFRjM04wQkFRSVdGaGRiVzFseGNYSzJ0clVGQlFUTXpNd0FBQUNIL0MwNUZWRk5EUVZCRk1pNHdBd0VBQUFBaCtRUUVEQUFBQUN3QUFBQUFSZ0FLQUFBRms2RG5YUmFHV1plb3JxU0pybkI3cHJBcXY3VjQweDdRL1VCQXpnZjhDV3ZFNGhHV0RBNkx4aEVVeU5OTmYxWHBOWHU1ZHJoZWt0Y0NzNHpMNTVYNVNsYVBNVjRNREg2VnIraFR1d29QMVl2NFJTWnhjNE4zaFh1SGYzRnJVMjBxakZDT0lwQkZraDZVUUphWVB5aGhNWjRzb0RhaVZsczlVMHNyVFZGSXFFOVFxU3FySFVzN09Ub2xNN2NqdVRnNXRyZkFJUUFoK1FRRURBQUFBQ3dBQUFBQUNnQUtBQUFGSktEbkhZV2lGSWZvUVZyclFxTXJhK1RzbG5acjV0ckpvN3dVYXdZVFZRb1VDa29VQWdBaCtRUUVEQUFBQUN3QUFBQUFHUUFLQUFBRldhRG5NY1N5RUpLb3JrZWhLTVdoUGx4dFA2c0thWHdQZVJLYmtNUElIWHBJellFd3RCRnloV1N2c0dqV0ZqbUZsS2VvV3JFcjdWYkJ0RDVYMFcyQllTVWF0MG9QYllqTGVYYkpuNGcwbVJDS2RpSVZCUlFVTVNJaEFDSDVCQVFNQUFBQUxBQUFBQUFvQUFvQUFBV0tvT2NsUXhBTWthaXVETEVzaExUT1I2RW94YUUyV2U4M005R0RReXcrZ2g2SVpzbUVlQ0srYUNZeGt4U3ZIQWFOeWRVY0JsTGZZRWJBRmdtelFwZFpDSVI3Z2RuQ1RGek1GT3Vsd3YyT3IrWjBkaXQ0ZVFwZ2IyTXJaWFJvSzJwNUJRbHZVek1NZEZsYmVUbzhVa0JCUTFoSFFVcGRUaUlrSmdOVVNCNHRFeE1FV3F3VkJSUVVPU0loQUNINUJBUU1BQUFBTEFBQUFBQTNBQW9BQUFXOG9PY2hoaUFZaUtpdXlSQUVRN1RPRExFc2hEU3ZSNkVvaFlQS3NTa2FIVHRQSThOc05wSVBqblQ2U0VJMDJDeGtaT3h1VXF0SWM1eEp6Q1RUTkljeE8yVGZtb1BCYXpUTUJ1VG1ZRVpRVHdrekJYQlpCUUowUlFJekFYbE1BVE1MZmxJTE13cURXQXFHaDRrcmk0eU9LNUNSa3l1VmxncHpoM1lyZUl4N0szMlJnQ3VDbGdVSWgxOHpDWXhsTkpGcmJaWnhIa1JlU0R0TFpFODdVV3BWTzFkd1d5SVlKU2RnU1MwdkEyWkpIalVURXdSczNoVUZGQlJCSWlFQUlma0VCQXdBQUFBc0FBQUFBRVlBQ2dBQUJmQ2c1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkROSzhNc1N3RXlVNTFLQ2dVaFlNSzBHazZBVVBIWmtwMURCdVpyTFl4ZkhDKzRNY1FvaW1iSVNPbnVwTmlVZDhiMlNxaXJXY1NNd2w0ejJITURtYUJHZ2NXYTA0V013WndWQVl6QTNaYUF6TUVmR0FFTXdXQ1pnVVloazBZTXdLTFV3SXpBWkJaQVRNTGxWOExNd3FhWlFxZG5xQXJvcU9sSzZlb3FpdXNyYThyc2JJS2haNklLNHFqalN1UHFKSXJsSzJYSzVteUJSZWViRE1JbzNFMHFIY3pESzE5ZjdLREhreHJVRHRTY0ZZN1dIWmNPMTU4WWp0a2dtZ2lKRXlnR0NJQ2d3c1ljb2JVdURFQUQ4RWVFeVlROEVPd1FnRUtGSktJQ0FFQUlma0VCQXdBQUFBc0R3QUFBRGNBQ2dBQUJicWc1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkROSzhNc1N3RWlRclFLUm9CTzQ5ancydzZrbzJNZE5wSVBqalk3R05rN0haU3JLWjRJMXRGcHVoTVlpYkp1amtNaTlkb21SbkdUY05za0o0T1pnUnZXUVFZYzBVWU13SjRUQUl6QVgxU0FUTUxnbGdMaFlhSUs0cUxqU3VQa0pJcmxKVUxjb1oxSzNlTGVpdDhrSDhyZ1pVRUY0WmZNd2lMWkRTUWFqTU1sWEFlUkY1SU8wdGpUenRSYVZVN1YyOWJJaVFtS0VraUdDNHdaVWsxTndOcjJEMFRFd1FNSWlFQUlma0VCQXdBQUFBc0hnQUFBQ2dBQ2dBQUJZZWc1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkRwQUpkN3dNemtXTkRMRHFDbmtabXlXeU1mTkJPaWxXc2JtU3JDSE9iU1ZpaVBzdk1ZQzBhWmdNdWM0QUI5ekF6UVprb21BWFV5MERiRFYvSjUzVXJkM2dCWDI1aUsyUnpaeXRwZUFNWGJsSXpDSE5YTkhoZEhqeFJRRUZEVmtkQlNseE9JaVFtS0VnaUdDNHdXRWcxTndNSklpRUFJZmtFQkF3QUFBQXNMUUFBQUJrQUNnQUFCVldnNTEwV2hsbVhxSzZJSVFnR29nSmRiUU9yNm14ODc0eTJZQ2ZGNmhrM0NJdlFac2taamowRFpsbkQ1QVJRbm1CS3RhNndXWUdTMmx3OXM0WUxkWmhEWkpFZW1oQ1g4K3lPUHhISmhLcXJNQzR3TWg0aEFDSDVCQVFNQUFBQUxEd0FBQUFLQUFvQUFBVWlvT2RkRm9aWmwrZ0JYZXNDb3l0MzVPeVdkbXZtM2NtanZCUnJCaE9SVENoUkNBQTcpO1xufVxuIiwiLm14LXJlbG9hZC1ub3RpZmljYXRpb24ge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAxMDAxO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuXG4gICAgYm9yZGVyOiAxcHggc29saWQgaHNsKDIwMCwgOTYlLCA0MSUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgyMDAsIDk2JSwgNDQlKTtcblxuICAgIGJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgxLCAzNywgNTUsIDAuMTYpO1xuICAgIGNvbG9yOiB3aGl0ZTtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG4iLCIubXgtcmVzaXplci1uLFxuLm14LXJlc2l6ZXItcyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMHB4O1xufVxuLm14LXJlc2l6ZXItbiB7XG4gICAgdG9wOiAtNXB4O1xuICAgIGN1cnNvcjogbi1yZXNpemU7XG59XG4ubXgtcmVzaXplci1zIHtcbiAgICBib3R0b206IC01cHg7XG4gICAgY3Vyc29yOiBzLXJlc2l6ZTtcbn1cblxuLm14LXJlc2l6ZXItZSxcbi5teC1yZXNpemVyLXcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLm14LXJlc2l6ZXItZSB7XG4gICAgcmlnaHQ6IC01cHg7XG4gICAgY3Vyc29yOiBlLXJlc2l6ZTtcbn1cbi5teC1yZXNpemVyLXcge1xuICAgIGxlZnQ6IC01cHg7XG4gICAgY3Vyc29yOiB3LXJlc2l6ZTtcbn1cblxuLm14LXJlc2l6ZXItbncsXG4ubXgtcmVzaXplci1uZSxcbi5teC1yZXNpemVyLXN3LFxuLm14LXJlc2l6ZXItc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5teC1yZXNpemVyLW53LFxuLm14LXJlc2l6ZXItbmUge1xuICAgIHRvcDogLTVweDtcbn1cbi5teC1yZXNpemVyLXN3LFxuLm14LXJlc2l6ZXItc2Uge1xuICAgIGJvdHRvbTogLTVweDtcbn1cbi5teC1yZXNpemVyLW53LFxuLm14LXJlc2l6ZXItc3cge1xuICAgIGxlZnQ6IC01cHg7XG59XG4ubXgtcmVzaXplci1uZSxcbi5teC1yZXNpemVyLXNlIHtcbiAgICByaWdodDogLTVweDtcbn1cblxuLm14LXJlc2l6ZXItbncge1xuICAgIGN1cnNvcjogbnctcmVzaXplO1xufVxuLm14LXJlc2l6ZXItbmUge1xuICAgIGN1cnNvcjogbmUtcmVzaXplO1xufVxuLm14LXJlc2l6ZXItc3cge1xuICAgIGN1cnNvcjogc3ctcmVzaXplO1xufVxuLm14LXJlc2l6ZXItc2Uge1xuICAgIGN1cnNvcjogc2UtcmVzaXplO1xufVxuIiwiLm14LXRleHQge1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbn1cbiIsIi5teC10ZXh0YXJlYSB0ZXh0YXJlYSB7XG4gICAgcmVzaXplOiBub25lO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cbi5teC10ZXh0YXJlYSAubXgtdGV4dGFyZWEtbm9yZXNpemUge1xuICAgIGhlaWdodDogYXV0bztcbiAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG59XG4ubXgtdGV4dGFyZWEgLm14LXRleHRhcmVhLWNvdW50ZXIge1xuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcbn1cbi5teC10ZXh0YXJlYSAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gICAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xufVxuIiwiLm14LXVuZGVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xufVxuIiwiLm14LWltYWdlem9vbSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5O1xufVxuLm14LWltYWdlem9vbS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLm14LWltYWdlem9vbS1pbWFnZSB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xufVxuIiwiLm14LWRyb3Bkb3duIGxpIHtcbiAgICBwYWRkaW5nOiAzcHggMjBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZHJvcGRvd24gbGFiZWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZHJvcGRvd24gaW5wdXQge1xuICAgIG1hcmdpbjogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1kcm9wZG93biAuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG59XG4ubXgtc2VsZWN0Ym94IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LXNlbGVjdGJveC1jYXJldC13cmFwcGVyIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuIiwiLm14LWRlbW91c2Vyc3dpdGNoZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMzYwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IDIwMDAwO1xuICAgIGJveC1zaGFkb3c6IC0xcHggMCA1cHggcmdiYSgyOCw1OSw4NiwuMik7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlci1jb250ZW50IHtcbiAgICBwYWRkaW5nOiA4MHB4IDQwcHggMjBweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgY29sb3I6ICMzODdlYTI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU9nQUFBQmdDQVlBQUFBWFNqN05BQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlScFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TXkxak1ERXhJRFkyTGpFME5UWTJNU3dnTWpBeE1pOHdNaTh3TmkweE5EbzFOam95TnlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5pQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRG8wTXprd09UUkVNRFEyTkVZeE1VVTBRVFE0TVVJNU5UTkdNVVEzUXpFNU55SWdlRzF3VFUwNlJHOWpkVzFsYm5SSlJEMGllRzF3TG1ScFpEbzBNemt3T1RSRU1UUTJORVl4TVVVMFFUUTRNVUk1TlROR01VUTNRekU1TnlJK0lEeDRiWEJOVFRwRVpYSnBkbVZrUm5KdmJTQnpkRkpsWmpwcGJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qYzBSRU15TVVaR05EWTBRekV4UlRSQk5EZ3hRamsxTTBZeFJEZERNVGszSWlCemRGSmxaanBrYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pjMFJFTXlNakF3TkRZMFF6RXhSVFJCTkRneFFqazFNMFl4UkRkRE1UazNJaTgrSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGlBOEwzSmtaanBTUkVZK0lEd3ZlRHA0YlhCdFpYUmhQaUE4UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrZzF0Umx3QUFFRkZKUkVGVWVOcnNuWWwzVmNVZHgyZHU4ckpESUpDd0NnalZhclZvc1ZYYzZqbldubnBJUWxKV2w2T0NyUFlma2gxY2l1d2xMRm81dFQzbFZKUlZFVVVFUlFRSlM0Q1FRRWpDUzk3MCs1Mlo5M0lUREd1Uzk4ajcvVGp6N3IyL2U5OTlaTzU4N205K003K1owY05YYnNxS2FUTmVLVlZvbEttT0tiWDM5RXNWS2wxRVY2MklLSzN3QjV1SGNZZy8zM3lDNHgybS9FMmpSRVNTTE1HSmw4dXZZcnNIaWR1aFNBK21Vd2FZaWhsUk0zSEdPdXp1Wlg0Zy9SbHBpdDY4TkZ1S2gwalNEWWd4emxBTVc3V3BDQmIwNlJqTmlEWUh6azZ2UEpaMm1iRnArYStKTEN4b0hyYm5vVnB0eW1lZGxXSWlrblJBS1VOWFZRMERvT01BcUlKMlg4MzB5cFBwQitteVFsL2xIWTNES0xaYlRmbnNMNldvaUNRZFVNcmdWVlZqQWVoSWFHTXhaWGFlbi83WGMybVpNWnVYVm1MenFGSTJmL1lCMm85TTJleW9GQm1ScEFKS0tWbTk4UkZvUndCUUZzZ2RnTFErVFNFZEIwQkxzWnNCUUd1d3Y4NlV6VGtqeFVZa3FZQlNpbGR2SEFkQWgyRzNDUloxUisyMFNRM3BDZW1TZ2RpVUFkQlJBTFFGKzl1UWRnTlVhZVVWU1I2Z2xBR3IvL0U0Tm9NQWFBTjgweDExMHlZMXBXMUdiVmxDdi9SMy92QVE5amVac3JsWHBBaUpkS2NFTnpqUDdoZFU3VlErMGhOOTFxeVBwR3RHd2Yrc3dvYmRNWmVRSGtENm05Nnk2SDRwUWlKSnM2RGVpa1pnUVIrSEJTMUNsYmZXYVBQWjVhbFRXdFBYa2k0dXNGVmVaUjV3Q3ZhZm1vOU42YnlyVXB4RWVoeFFTdjgxRzNJQUtDQTFoUUQwSFBaM1hVbGpTQjJvaTU3QjVua0FpbHFJdVlEOWpZRDB1QlFwa1I0SGxGSzRaa01lQUIwUFFQTUI2TmxXWlhZM1Q1MGFTM05JaXdIb2l3QjBqSEw5TWJ1UVBoRnJLdExqZ0ZMZ2crWUQwUEdnTWcrQW5zRjJUelROSWJXWnVIVWhxcnpxOS82dzFqWWdsYzcvVVlxWFNJOENTaWxZdTQ0VzlDa0F5bXJ2S2ZpbmUxdW5URE1DNmNJaDJQd0o2VmNBbFBteEY5YjFYMmJDL0NZcFppSTlCaWdsRDVDMnVyamRiQUJhRGRVK2dUUnNUWTJ6cHRxMitQNFRrSDRqT1NQU1k0QlNzdGV1TFFDZ1R3UFFMQnhXd3ovZFo2Wk1GMGd0cEF0S3NIa0JnTWE3WVk0QTJnL05oTGRxSlhkRWVnUlFTb1NRYXNQV3pBZ0FQVVZMQ2toamtxMCtjejljOEFRMlR5TDFVeTVzY2p2U0RvRGFLcmtqMHUyQVVqTFdyV0cvNEZNQWxPTW56K0NPZTh6a2x3VFNOa2laTHhNQTZDTmV4UzZaandEcEVja2RrVzRIMUVPYUQwQ2Z3bTRPN3NqeGs0UlVyRVE3VU4rK2p5OHlwSHU5Nmp1a2p3SHFCY2tka1c0RjFONW8zV3FHQTQ3SEhmT1VEUTgwdTgza2x3WFNhMEY5RnBzL0lQVlZkcnlwK3N4WGU2VzFWNlQ3QUUxQXFnMzlybndmWGJNTGtNb1l5bXNoemNYbUw4cU9ON1hDb1B2L0lPMEZxT0llaUhRUG9QYUc2MWZsT1F0aGFDSHE4QXM3emFSWG1pV3JmeEhVVWI3YUcyL3Q1Y0NFYmVLZmluUWJvQjdTSE44WDJCKy93SEdrbndOU0daclZPYWkveGVZeHBGRmU5Wk5peU9DRXR5UzJWd0R0bnE1THZmNkRMRnZvdE9HQVovaFhCcEMrZWtteS9JYitLV0V0OGFyRFNQOEdxS2NsZHdUUTdvQTBFNy9BUWM2RGZUL2dia0I2WHJMOXVwQnE1VUlHQ1dxaGNrSDRqRVQ2TDBDdGtSd1NRTHYrUnphczVOdytuRDRscG9MWUY2Ynl0V3JKK2h1Q0NqZEJ2YURhZ3ZBOXFCcWd6aGRRQmRDdWh2VHY3S2dmQVVENWd3Y0I2VkhKL3BzQ2xZMXR6M2tmMVQ0eWIxRzNBMVNaczFjQTdWSkl4d0xRa2Q0Z0hIV2d2aTd4dTdjRXFuNHNaRkhwbzM0S1VLVXhTUUR0b2gvYytONFFWMjJ6djN0S2FmV0ZxWGhkQWhwdUd0UUZCUFdQb2FvdnM1S0EvZy9waUNtZEx5ODhBZlNPSVdYd09BTWFzZ0RvUmV6dk1oVnZTRi9wcllIS1lJZW5rZTREb0lPOG1sWGVuVGo3bFNtZEp3RWlBdWlkUVBwdXZ2V3JORnNxRGNQY2RnTFNlbmtrdDVHWFd4YzhZMEZWeXJzUG1uM09YQXhxRjBDVnJpMEI5TFlocFFYbDhncTBBQzJLWTBvclpzak03YmNQS2h2aXhtSnZqRmZSZFRpbzJMMGxFNW9Kb0xmOW42aDZoMzJsdy8xVUlkOEMwaC9rMGR3SnFBdHBTVG5wK0VNaExhdS91NUVPbU5LNUVwZ3ZnTjR5cEhqekcxZEYwK29rOXZlYmlUT2w4ZWpPUUdXZ0EwZk9qTURSQ0srK0NwLzFBTFpmbXJLNUp5U1hCTkJiZ0hURllNVVJIbHBGQUdpZHJacE5uTmtvajZrcllGM0V5Q1NtKzFYaWtXdXVYTWVsRmZlYnNqbmlxd3FnTndWcEhnQmw1RkYvKzdaWFpvK1orS2FFQjNZZHFNVUE5RkZ2VmUveGFnNXhvMXZ4RlhTSFpKbEZBZlQ2LzZsTkt6SUJKZ3ZSRU8rWEhnU2tFbm5VMWZtOFpUR0h1VDNTd1ZkbEZmZ1FmVldrbzZaOHRyZ1pBbWhub0M1SDRURWp2RjlhYmYzUzhsa3Q4dGk2SEZUT216UlcyVVdoOUppMktqQUhrdXR2bFdzSlBvYThGMWdGMEk2UUxodGlDNDlXV1FDMHdmcWw1YlBFWCtvMldKZjBBNkQwVlVjck8zK1NqcDlxeFA1M09FZGdmMENOUmw2VUFtZ0MwbHlVRTFyVFltWDc5c3dCVkwya0JiSzc4MzN6RXVTMy9vMXlBOGtkcks2NHdFZlZkRGtZQzN6WVRKd3BMOHgwQnJTdHdDeWxYM3FQTHlYSFVWNitObVhpSS9WUTNoZmg4MEZrL1JoblhST1dsUS9qRkk2UFlJOE5UVCtiaWhreXIxSTZBdW9MQ254U3d5cFlnREp5R2Z0N1Rka2NDUkhzNlJxTjBteGdZdklOVEFucjJvejlZOHExQ2g4MUZXK2NreHhMSTBCOTFhdkErNlVEVUNyNHR2NEdrQjZUeDVrTVdKZHJWd1cyalV0czBCc1JzcTY4NGhMMFA5a2Fqd08zeGxTK0ppTnVlak9nb1FZTnh2SEcrL0k0Ync4NzNHVnR6bVErazZvVnVUNFdlTFNIZFdBb01JSWZET1Evb1dMQno2d09RMWN0c3o3MlVrQWRwSXM1bFFvYk1qaEZTQ09BWlFpYlZLdFNCdGgzKzNyTE9zcUhHN29KMFdKQi9BcldnR284cktkd0xWKzBaMlErNVY0Q3FJYzBSN2wrdkVIZUVUcUtsL1VoVXpwWEdwQlM3Vmx0ZkkvRERJY0QwT0hLTnZqcFVhR3pjVDgyNXNNUUFhcytBeDBEL1dzQ3BldlNiWm5MWGdGb0NOUnd3RDJiL3I4QXBIV0NSUW8vc3cwcmFVcUxMYlJLRHdXTWpNY2UxdWJISnFCbHErQlZEMm9OZEJmd3hRc1pTbk1GZ3d0WHBrNXBFa0R2Q2tnWGNRVEhRNjRCaVc5aXc3NjY3MDNwUEdtWXVGdWU0Zm9QTXF6dmFxZHIxU1dBa2RYaVlvRFp6NE5xb1NYWkdSN2tER01IcWRkQ1YwOUxpLzJMZ2RGczNlZHhQYTY2Y25aNjVWMFJYUEhraXUyWitMdnp0VkY5ZWgyZ2lZZThkWkdiUmRDOWZpOHFOaUNWenBQdW1MdFlNdGF0eWZLZ011Qy9DREFXQWRBaXhhM1JPUTVlRHpDM1JzY3RiOXdlTjBGM09YQWhqQTJFRnNlMHZFM2FUcTZ1bTNDdVVSdE4vemVLL1didGZPU3IwTVZDOTJvKzlPcUw3ZnA2SDM1L1c0RC9VN1pPL0xvT3NNMENaTmhxNkRsQ1MwZXd6Y1YxT2REeC81dURxN0d2OHFETGc0N1Yvd0p0MjFPMG5iK3gxd0xxSVVYVnlUeWc3QUs2ZHNRR1Y3cUdOWjB2SGVtOVRQcXNXYy9DM1E5UUZhTFFzeFpWQ1BnNHdWcGZIUGZWZGtFdmxVRm9BMTkxMWlHSTQ1K0JyVmJHd1ZZSnRQVzFzRnRkK0Y2MEJTRkE3ZFpDMW5hWDBIVWQ3aGZTYVJzdGh4ZUlVZlg2K2NXZjI3UEdmeG9kUDhKV3U3MlkxYnR6aVd2dE9XTkxmZnc2NC8vRmRIdy9acjhUaTkveG11KzA3Y2V2aVlYMEhmZGpmcjhWKzYzdDlQRy9NUDZ5TVNyeFZ6TmxYL2JXMU9wb1JiOVVMYmwxMTE3YnlYSGlDWVpmWnAzcE81N3JvTHZ6MTg2MUtuTVQxNFIxNWdiWG1jN3VwYS96M2M3T2RhSnZhOFc5d2JYdGZGQjFuU3F1dWdrTG1nTmRRVUNMcFRRdFZXN2dMRyt1dDFxd2FMQnVSc1BhcVlqZFY1cGZoU1hVR2FGNzBaSUhIUUJsOGJ3YUFyUlZXOHRMQkRRdE5NTWpvOVpTRzFwc1o3bHhkYU5tNzROUnNPaWFzZWFYdlRXM3hUa3pMVjZ2elFYN0FTbG5zMmZrQzZ0RXo2ck14dStSQjBkVU5FZGFldE5IbW55NmF5UkltMGNUemF0QitsVFppQmI3a3VNc2VNK3BTRk94bEZzUkFUUjFRTjJQengzS2RZNjdWY0V6bThhcHpPWnNLUTRpS2RlTzBwc2JpVzc0eDMrNGdGVmVocVRSNTRDUFlEalc4YmlaOEpaMHlZZ0lvQ2tDS1dkbzU0aU1JYjQxb2hicGEwQjZVWXFIaUFDYU9xQnlYbDVhMC9pYW5Cd1EvaTFBbGVCN0VRRTBkVUI5bXpHOUkrTWVLOUozaXZQeFNMVlhSQUJOR1VnNTN2UkJaVVBOckxEdjlLQ3NjQzBpZ0tZV3FFT1ZuWXZIOXAxU3pucFFaUTRlRVFFMGhVQmxueWtqa2ZLOGY4b1pBZzREVkJsb0xDS0FwZ2lrakxwNlNDVkNCcmthbS9vZTZVZUFLbE5RaWdpZ0tRSXFBN0RaZnpyRXEyaEZqOUNxQWxRSndoY1JRRk1FMUJMdm41WjRGY2Nqc3NYM3BMVDRpZ2lncVFNcUc1TFlMVFBRcXk1NVVFOExxQ0lDYU9xQVN0K1U4K3dNOEtwNlgvVTlKYUNLQ0tDcEErcG83NThXdFZsVWZkaUJPbDh5VzBRQVRSRlE2WjhPZGFEcWVOV1hyYjdWQUZVYWswUUUwTlFCVlE4SlZYMjVZdmdQeXFqanBuUytEQllYRVVCVEE5UUZJNzFGZFkxSmhxdUhxeCtaQUtwTTBpd2lnS1lJcUlSMEJBQ056K1JBSzNxQ3kvbVowbmtOa2tNaUFtZ3FaUHpXQlFSMGxFb0U1TnNaenhpTXozVTNhd0NyWkpLSUFKb0NvREl5NlY2L2JrbGNMbmxRVHdKVThWTUZVSkhrZzdxUXNiN3NvcUZsalhmUlJIMzE5eWRUT3ZleTVKSUFLcElhc0RMZ1liaUhWZmx1bXZOSXg3ajZseW1iSzkwMEFxaElDb0JhcU5xVzdYTmliSEErcDJNNUFWREZxZ3FnSXNrSGRaRmZ4Vm9OQnFBRFEyZHFQYXpWcG15T2ROVUlvQ0pKZjJCYkZ0RS92Y2Y1cWJyQXE5bVFkTnI3cStkTTJXeDVxQUtvU1BKaFhVdy9sZjJxZzBKYUxtMVFEVXQ3MHBUUGxxbERCVkNSRkFBMTExdFZWSC8xQU8rclVoajRjQkk2d0RwTC9GVUJWQ1Q1c0M3aFVvdkR1SDZtY3NzdXFsQ3cvaWttd0NycnBBcWdJa2wvdUp1WERGUnVPWG5DV2hBNjAyQmhOWW9ydnRXWmlXOUtaZ21nSXNtRmRTbGg5ZU5VN2NLMjhXb3cxNkxrZEtKbkZFTU1KODZVeUNVQlZDUzVzQzRyc3JBYU93U3VNTFNJTGdNZ3p1SDRETTZkTlJVenJraHVDYUFpeVN3QW01YWg2cXZaQ2x5c3dwRkxiWTFNTlRobUVQOTVVL0dHOUxVS29DTEpnM1U1NDRFQnF5N3gxalUzQWF4RDlxSUg5anlPYWszbDYxSWRGa0JGa2xZNHFsYjBkVmJWZHQyRSsxcUphOHdCcXhramZJSEpWTDRtRTNnTG9DTEpnZlVkcnNaTzMzV0FiUlZPaEJ3bS9GY1VwS0FlMk5aNlM0dXR2bXdtdlNLWko0Q0s5SGpCMmZndWdlM25yU3ZCTFFHZ3JwbXA3YXFvQTlWYTJqb2dYR2Ntdjl3b3VTZUFpdlE0c08vQmxBWjlBV2gvSFBiMzhCWjBxQlpUb2haV1oyWHJzVjhQZllPWk1sMkcwQW1nSWoxYXVEYXNqSVJnN1FjUTZkUG1ocXJGWVgvMkNtR0ZEV1pJNHFWQTZVc0VOenAxYWt3QUZSSHBxUUszL29Nc2ZIS2NLMU5mR3pSaFZKODRySUcvTG5EZ21zQUZValJrdUxWdkdqS01qWUpxZ0w2eGJ0cmtxQUFxSXRMZGhYRGRhbktaajcwK2dRdEp4RmIzSWJpQkJ6ZkRYd3RBUGNCVzN4SzRlWWFiQXFPNWJmUkFOMnUzNmx3ejlNMm5YNnE0SzYzdytCWGJBd0ZVSkdVbHNuYXRCbkE1QUM0L3d3S3M4Z0VvdDNtQnF5cEhFaGEzUGJpSlNqVDFnWnZiQ2RCcXprVWNoWTdIVVczWGVOVlJmNzVGRzgxdUl1T09OZThZWmZVYjMydnRjTytXUTYrKzJBNmNoOS9meHAvTTFDWitsZjNNME81ckVmd21WUkZ0VCtsTWZHVGFZNlBwQm1UaW9peXY1M0dXTWpwYjIvTUNxTWhkS29Wck5tUTZVRlV1QU1peFd3ZHVGZ3AzTm81em9NOEtQRnR4Yk9NdzZ3N1ZhdjFMa0p2UTkwSjYzY2tMb1FPZzdWNFV2NlR2N0Q0QWxQc3hBVlNrMTh2UVZWVzBTckJJT3N0YnM0aTNaaEZ2aGVQV2pEWHB3QjNyd0ZvNW83QzErakJFc0pUV0lvWjF4bG5oZG9DMmF0ZngxSUxmdEZ0M2JQVnhxMjJ0dWJmYVVhKy9Da0NiZDg3NFkvVC9BZ3dBMk1pN0hkQWUraWtBQUFBQVNVVk9SSzVDWUlJPSkgdG9wIHJpZ2h0IG5vLXJlcGVhdCAjMWIzMTQ5O1xuICAgIC8qIGJhY2tncm91bmQtYXR0YWNoZW1lbnQgbG9jYWwgaXMgbm90IHN1cHBvcnRlZCBvbiBJRThcbiAgICAgKiB3aGVuIHRoaXMgaXMgcGFydCBvZiBiYWNrZ3JvdW5kIHRoZSBjb21wbGV0ZSBiYWNrZ3JvdW5kIGlzIGlnbm9yZWQgKi9cbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGxvY2FsO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXIgdWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM0OTYwNzY7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgY29sb3I6ICMzODdlYTI7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0OTYwNzY7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBoMiB7XG4gICAgbWFyZ2luOiAyMHB4IDAgNXB4O1xuICAgIGNvbG9yOiAjNWJjNGZlO1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbn1cbi5teC1kZW1vdXNlcnN3aXRjaGVyIGgzIHtcbiAgICBtYXJnaW46IDAgMCAycHg7XG4gICAgY29sb3I6ICM1YmM0ZmU7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXIgLmFjdGl2ZSBoMyB7XG4gICAgY29sb3I6ICMxMWVmZGI7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXItdG9nZ2xlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyNSU7XG4gICAgbGVmdDogLTM1cHg7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgaGVpZ2h0OiAzOHB4O1xuICAgIG1hcmdpbi10b3A6IC00MHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuICAgIGJveC1zaGFkb3c6IC0xcHggMCA1cHggcmdiYSgyOCw1OSw4NiwuMik7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQklBQUFBU0NBWUFBQUJXem81WEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVJwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVNeTFqTURFeElEWTJMakUwTlRZMk1Td2dNakF4TWk4d01pOHdOaTB4TkRvMU5qb3lOeUFnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5UTmlBb1RXRmphVzUwYjNOb0tTSWdlRzF3VFUwNlNXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEbzNORVJETWpGR1JEUTJORU14TVVVMFFUUTRNVUk1TlROR01VUTNRekU1TnlJZ2VHMXdUVTA2Ukc5amRXMWxiblJKUkQwaWVHMXdMbVJwWkRvM05FUkRNakZHUlRRMk5FTXhNVVUwUVRRNE1VSTVOVE5HTVVRM1F6RTVOeUkrSUR4NGJYQk5UVHBFWlhKcGRtVmtSbkp2YlNCemRGSmxaanBwYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pjMFJFTXlNVVpDTkRZMFF6RXhSVFJCTkRneFFqazFNMFl4UkRkRE1UazNJaUJ6ZEZKbFpqcGtiMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPamMwUkVNeU1VWkRORFkwUXpFeFJUUkJORGd4UWprMU0wWXhSRGRETVRrM0lpOCtJRHd2Y21SbU9rUmxjMk55YVhCMGFXOXVQaUE4TDNKa1pqcFNSRVkrSUR3dmVEcDRiWEJ0WlhSaFBpQThQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCsxWm92TkFBQUFXZEpSRUZVZU5xTTFNMHJSRkVZeC9FN1k1cUlRcE9VYklpeW1RV3lzQmd2SlZKSzJWZ3J5WlF0S1NVTFplbFBzQjBMWmFOWmpKVU5LMUZza0pxVXZDUzNOQXNaYzN6UDlOemlPT2ZlZWVwVGM4L2M4K3ZjOHhaVFNubU9ha0VHS2R6Z0RCWFh5NTRPTXNTd2pwTDZXOWNZc3J4ZlpXdmNVdTd5MFZkTFVDYytWWGdkMm9MaXhwZk9JT21GMTdUdEhUT296WXV1cEN4QWFOQjlEVUVmZURVYkU4YnpFWHhaZXJQMDBsOGhoM0xVaUhUSU1yNk45ajJrc1lvaWh2LzFkZXlMU1Z6S0ttMWpFVytXZlpWMkxmOGdza2pJY3djV3BPTSsrcEhDRlBMb3NnV3RvQ3lkN2pDUE9qemhHSEhMeURQWTFhY2hhSmhEeFJqNnJCd0pYVXVvTjBJRzhJSXY3T2lHQmp4YWR2QUlUdVQzcmV4NmMwU2JLQVNmbG5VY0JUM0pUVGhBanlXa0dVVnNCRUVGUjVDZXJ6WHBOSWFjckZJckpuQ0JCM211QnZraEIxVFAyN2hNL0x2eDN6bDZneEhxdTZjNzRraVU4SXhHaktKZExyclQzeGZkandBREFKYU14UDJidkQyQkFBQUFBRWxGVGtTdVFtQ0MpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0ICMxYjMxNDk7XG59XG4iLCIvKiBtYXN0ZXIgZGV0YWlscyBzY3JlZW4gZm9yIG1vYmlsZSAqL1xuLm14LW1hc3Rlci1kZXRhaWwtc2NyZWVuIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLXNjcmVlbiAubXgtbWFzdGVyLWRldGFpbC1kZXRhaWxzIHtcbiAgICBwYWRkaW5nOiAxNXB4O1xufVxuXG4ubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbn1cblxuLm14LW1hc3Rlci1kZXRhaWwtc2NyZWVuLWhlYWRlci1jYXB0aW9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLXNjcmVlbi1oZWFkZXItY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjMDA3YWZmO1xufVxuXG5ib2R5W2Rpcj1cInJ0bFwiXSAubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyLWNsb3NlIHtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvO1xufVxuXG4ubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyLWNsb3NlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFwyMDM5XCI7XG4gICAgZm9udC1zaXplOiA1MnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4vKiBjbGFzc2VzIGZvciBjb250ZW50IHBhZ2UgKi9cbi5teC1tYXN0ZXItZGV0YWlsLWNvbnRlbnQtZml4IHtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLWNvbnRlbnQtaGlkZGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMCUpO1xufVxuXG5ib2R5W2Rpcj1cInJ0bFwiXSAubXgtbWFzdGVyLWRldGFpbC1jb250ZW50LWhpZGRlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMCUpO1xufSIsIi5yZXBvcnRpbmdSZXBvcnQge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIC1tb3otYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbiIsIi5yZXBvcnRpbmdSZXBvcnRQYXJhbWV0ZXIgdGgge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuIiwiLnJlcG9ydGluZ0RhdGVSYW5nZSB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cbi5yZXBvcnRpbmdEYXRlUmFuZ2UgdGgge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuLnJlcG9ydGluZ0RhdGVSYW5nZSB0ZCB7XG4gICAgcGFkZGluZzogNXB4O1xufVxuIiwiLm14LXJlcG9ydG1hdHJpeCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0aCwgLm14LXJlcG9ydG1hdHJpeCB0ZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0Ym9keSB0cjpudGgtY2hpbGQoMm4rMSkgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG59XG5cbi5teC1yZXBvcnRtYXRyaXggdGJvZHkgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE2cHg7XG4gICAgbWF4LWhlaWdodDogMTZweDtcbn1cbiIsIi8qIFdBUk5JTkc6IElFOSBsaW1pdHMgbmVzdGVkIGltcG9ydHMgdG8gdGhyZWUgbGV2ZWxzIGRlZXA6IGh0dHA6Ly9qb3JnZWFsYmFsYWRlam8uY29tLzIwMTEvMDUvMjgvaW50ZXJuZXQtZXhwbG9yZXItbGltaXRzLW5lc3RlZC1pbXBvcnQtY3NzLXN0YXRlbWVudHMgKi9cblxuLyogZGlqaXQgYmFzZSAqL1xuXG4vKiBtZW5kaXggYmFzZSAqL1xuXG4vKiB3aWRnZXRzICovXG5cbi8qIHJlcG9ydGluZyAqL1xuIl0sInNvdXJjZVJvb3QiOiIifQ==*/\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n@mixin animations() {\n @keyframes slideInUp {\n from {\n visibility: visible;\n transform: translate3d(0, 100%, 0);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n }\n\n .animated {\n animation-duration: 0.4s;\n animation-fill-mode: both;\n }\n\n .slideInUp {\n animation-name: slideInUp;\n }\n\n @keyframes slideInDown {\n from {\n visibility: visible;\n transform: translate3d(0, -100%, 0);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n }\n\n .slideInDown {\n animation-name: slideInDown;\n }\n\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n }\n\n .fadeIn {\n animation-name: fadeIn;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Flex\n\n Flex classes\n========================================================================== */\n@mixin flex() {\n $important-flex-value: if($important-flex, \" !important\", \"\");\n\n // Flex layout\n .flexcontainer {\n display: flex;\n overflow: hidden;\n flex: 1;\n flex-direction: row;\n\n .flexitem {\n margin-right: $gutter-size;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n .flexitem-main {\n overflow: hidden;\n flex: 1;\n }\n }\n\n // These classes define the order of the children\n .flex-row {\n flex-direction: row #{$important-flex-value};\n }\n\n .flex-column {\n flex-direction: column #{$important-flex-value};\n }\n\n .flex-row-reverse {\n flex-direction: row-reverse #{$important-flex-value};\n }\n\n .flex-column-reverse {\n flex-direction: column-reverse #{$important-flex-value};\n }\n\n .flex-wrap {\n flex-wrap: wrap #{$important-flex-value};\n }\n\n .flex-nowrap {\n flex-wrap: nowrap #{$important-flex-value};\n }\n\n .flex-wrap-reverse {\n flex-wrap: wrap-reverse #{$important-flex-value};\n }\n\n // Align children in both directions\n .flex-center {\n align-items: center #{$important-flex-value};\n justify-content: center #{$important-flex-value};\n }\n\n // These classes define the alignment of the children\n .justify-content-start {\n justify-content: flex-start #{$important-flex-value};\n }\n\n .justify-content-end {\n justify-content: flex-end #{$important-flex-value};\n }\n\n .justify-content-center {\n justify-content: center #{$important-flex-value};\n }\n\n .justify-content-between {\n justify-content: space-between #{$important-flex-value};\n }\n\n .justify-content-around {\n justify-content: space-around #{$important-flex-value};\n }\n\n .justify-content-evenly {\n // Not Supported in IE11\n justify-content: space-evenly #{$important-flex-value};\n }\n\n .justify-content-stretch {\n justify-content: stretch #{$important-flex-value};\n }\n\n /// These classes define the alignment of the children in the cross-direction\n .align-children-start {\n align-items: flex-start #{$important-flex-value};\n }\n\n .align-children-end {\n align-items: flex-end #{$important-flex-value};\n }\n\n .align-children-center {\n align-items: center #{$important-flex-value};\n }\n\n .align-children-baseline {\n align-items: baseline #{$important-flex-value};\n }\n\n .align-children-stretch {\n align-items: stretch #{$important-flex-value};\n }\n\n /// These classes define the alignment of the rows of children in the cross-direction\n .align-content-start {\n align-content: flex-start #{$important-flex-value};\n }\n\n .align-content-end {\n align-content: flex-end #{$important-flex-value};\n }\n\n .align-content-center {\n align-content: center #{$important-flex-value};\n }\n\n .align-content-between {\n align-content: space-between #{$important-flex-value};\n }\n\n .align-content-around {\n align-content: space-around #{$important-flex-value};\n }\n\n .align-content-stretch {\n align-content: stretch #{$important-flex-value};\n }\n\n /// These classes allow the default alignment to be overridden for individual items\n .align-self-auto {\n align-self: auto #{$important-flex-value};\n }\n\n .align-self-start {\n align-self: flex-start #{$important-flex-value};\n }\n\n .align-self-end {\n align-self: flex-end #{$important-flex-value};\n }\n\n .align-self-center {\n align-self: center #{$important-flex-value};\n }\n\n .align-self-baseline {\n align-self: baseline #{$important-flex-value};\n }\n\n .align-self-stretch {\n align-self: stretch #{$important-flex-value};\n }\n\n @include flex-items($number: 12);\n}\n\n/// These classes define the percentage of available free space within a flex container a flex item will take.\n@mixin flex-items($number) {\n @if not $exclude-flex {\n @for $i from 1 through $number {\n .flexitem-#{$i} {\n flex: #{$i} #{$i} 1%;\n }\n }\n }\n}\n","//\n// ██████╗ █████╗ ███████╗██╗ ██████╗\n// ██╔══██╗██╔══██╗██╔════╝██║██╔════╝\n// ██████╔╝███████║███████╗██║██║\n// ██╔══██╗██╔══██║╚════██║██║██║\n// ██████╔╝██║ ██║███████║██║╚██████╗\n// ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═════╝\n//\n\n//== Gray Shades\n//## Different gray shades to be used for our variables and components\n$gray-darker: #0a1325;\n$gray-dark: #474e5c;\n$gray: #787d87;\n$gray-light: #a9acb3;\n$gray-primary: #e7e7e9;\n$gray-lighter: #f8f8f8;\n\n//== Step 1: Brand Colors\n$brand-default: $gray-primary;\n$brand-primary: #264ae5;\n$brand-success: #3cb33d;\n$brand-warning: #eca51c;\n$brand-danger: #e33f4e;\n\n$brand-logo: false;\n$brand-logo-height: 32px;\n$brand-logo-width: 32px; // Only used for CSS brand logo\n\n//== Step 2: UI Customization\n\n// Default Font Size & Color\n$font-size-default: 14px;\n$font-color-default: #0a1325;\n\n// Global Border Color\n$border-color-default: #ced0d3;\n$border-radius-default: 4px;\n\n// Topbar\n$topbar-bg: #020557;\n$topbar-minimalheight: 48px;\n$topbar-border-color: $border-color-default;\n\n// Sidebar\n$sidebar-bg: #24276c;\n\n// Topbar mobile\n$m-header-height: 45px;\n$m-header-bg: $topbar-bg;\n$m-header-color: #fff;\n$m-header-title-size: 16px;\n\n// Navbar Brand Name / For your company, product, or project name (used in layouts/base/)\n$navbar-brand-name: #fff;\n\n// Background Colors\n// Backgrounds\n$bg-color: #f8f8f8;\n$bg-color-secondary: #fff;\n\n// Default Link Color\n$link-color: $brand-primary;\n$link-hover-color: darken($link-color, 15%);\n\n//\n// █████╗ ██████╗ ██╗ ██╗ █████╗ ███╗ ██╗ ██████╗███████╗██████╗\n// ██╔══██╗██╔══██╗██║ ██║██╔══██╗████╗ ██║██╔════╝██╔════╝██╔══██╗\n// ███████║██║ ██║██║ ██║███████║██╔██╗ ██║██║ █████╗ ██║ ██║\n// ██╔══██║██║ ██║╚██╗ ██╔╝██╔══██║██║╚██╗██║██║ ██╔══╝ ██║ ██║\n// ██║ ██║██████╔╝ ╚████╔╝ ██║ ██║██║ ╚████║╚██████╗███████╗██████╔╝\n// ╚═╝ ╚═╝╚═════╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝\n//\n\n//== Typography\n//## Change your font family, weight, line-height, headings and more (used in components/typography)\n\n// Font Family Import (Used for google font plugin in theme creater)\n$font-family-import: \"resources/fonts/open-sans/open-sans.css\";\n\n// Font Family / False = fallback from Bootstrap (Helvetica Neue)\n$font-family-base: \"Open Sans\", sans-serif;\n\n// Font Sizes\n$font-size-large: 18px;\n$font-size-small: 12px;\n\n// Font Weights\n$font-weight-light: 100;\n$font-weight-normal: normal;\n$font-weight-semibold: 600;\n$font-weight-bold: bold;\n\n// Font Size Headers\n$font-size-h1: 31px;\n$font-size-h2: 26px;\n$font-size-h3: 24px;\n$font-size-h4: 18px;\n$font-size-h5: $font-size-default;\n$font-size-h6: 12px;\n\n// Font Weight Headers\n$font-weight-header: $font-weight-semibold;\n\n// Line Height\n$line-height-base: 1.428571429;\n\n// Spacing\n$font-header-margin: 0 0 8px 0;\n\n// Text Colors\n$font-color-detail: #6c717e;\n$font-color-header: #0a1325;\n\n//== Navigation\n//## Used in components/navigation\n\n// Default Navigation styling\n$navigation-item-height: unset;\n$navigation-item-padding: 8px;\n\n$navigation-font-size: 14px;\n$navigation-sub-font-size: $font-size-small;\n$navigation-glyph-size: 20px; // For glyphicons that you can select in the Mendix Modeler\n\n$navigation-color: #fff;\n$navigation-color-hover: #fff;\n$navigation-color-active: #fff;\n\n$navigation-sub-color: #fff;\n$navigation-sub-color-hover: #fff;\n$navigation-sub-color-active: #fff;\n\n// Navigation Sidebar\n$navsidebar-bg: $sidebar-bg;\n$navsidebar-bg-hover: darken($navsidebar-bg, 10%);\n$navsidebar-bg-active: darken($navsidebar-bg, 10%);\n\n$navsidebar-sub-bg: $navsidebar-bg-hover;\n$navsidebar-sub-bg-hover: $navsidebar-bg;\n$navsidebar-sub-bg-active: $navsidebar-bg;\n\n$navsidebar-border-color: $navsidebar-bg-hover;\n\n$navsidebar-font-size: $font-size-default;\n$navsidebar-sub-font-size: $font-size-small;\n$navsidebar-glyph-size: 20px; // For glyphicons that you can select in the Mendix Modeler\n\n$navsidebar-color: #fff;\n$navsidebar-color-hover: #fff;\n$navsidebar-color-active: #fff;\n\n$navsidebar-sub-color: #fff;\n$navsidebar-sub-color-hover: #fff;\n$navsidebar-sub-color-active: #fff;\n\n$navsidebar-width-closed: 52px;\n$navsidebar-width-open: 232px;\n\n// Navigation topbar\n$navtopbar-font-size: $font-size-default;\n$navtopbar-sub-font-size: $font-size-small;\n$navtopbar-glyph-size: 1.2em; // For glyphicons that you can select in the Mendix Modeler\n\n$navtopbar-bg: $topbar-bg;\n$navtopbar-bg-hover: mix($topbar-bg, white, 85%);\n$navtopbar-bg-active: mix($topbar-bg, white, 85%);\n$navtopbar-color: #fff;\n$navtopbar-color-hover: $navtopbar-color;\n$navtopbar-color-active: $navtopbar-color;\n\n$navtopbar-sub-bg: $topbar-bg;\n$navtopbar-sub-bg-hover: $navtopbar-bg-hover;\n$navtopbar-sub-bg-active: $navtopbar-bg-hover;\n$navtopbar-sub-color: #fff;\n$navtopbar-sub-color-hover: #fff;\n$navtopbar-sub-color-active: #fff;\n\n//## Used in layouts/base\n$navtopbar-border-color: $topbar-border-color;\n\n//== Form\n//## Used in components/inputs\n\n// Values that can be used default | lined\n$form-input-style: default;\n\n// Form Label\n$form-label-color: $font-color-default;\n$form-label-size: $font-size-default;\n$form-label-weight: $font-weight-semibold;\n$form-label-gutter: 8px;\n\n// Form Input dimensions\n$form-input-height: auto;\n$form-input-padding-y: 8px;\n$form-input-padding-x: 8px;\n$form-input-static-padding-y: 8px;\n$form-input-static-padding-x: 0;\n$form-input-font-size: $form-label-size;\n$form-input-line-height: $line-height-base;\n$form-input-border-radius: $border-radius-default;\n\n// Form Input styling\n$form-input-bg: #fff;\n$form-input-bg-focus: #fff;\n$form-input-bg-hover: $gray-primary;\n$form-input-bg-disabled: $bg-color;\n$form-input-color: $font-color-default;\n$form-input-focus-color: $form-input-color;\n$form-input-disabled-color: #9da1a8;\n$form-input-placeholder-color: #6c717c;\n$form-input-border-color: $gray-primary;\n$form-input-border-focus-color: $brand-primary;\n\n// Form Input Static styling\n$form-input-static-border-color: $gray-primary;\n\n// Form Group\n$form-group-margin-bottom: 16px;\n$form-group-gutter: 16px;\n\n//== Buttons\n//## Define background-color, border-color and text. Used in components/buttons\n\n// Default button style\n$btn-font-size: 14px;\n$btn-bordered: false; // Default value false, set to true if you want this effect\n$btn-border-radius: $border-radius-default;\n\n// Button Background Color\n$btn-default-bg: #fff;\n$btn-primary-bg: $brand-primary;\n$btn-success-bg: $brand-success;\n$btn-warning-bg: $brand-warning;\n$btn-danger-bg: $brand-danger;\n\n// Button Border Color\n$btn-default-border-color: $gray-primary;\n$btn-primary-border-color: $brand-primary;\n$btn-success-border-color: $brand-success;\n$btn-warning-border-color: $brand-warning;\n$btn-danger-border-color: $brand-danger;\n\n// Button Text Color\n$btn-default-color: $brand-primary;\n$btn-primary-color: #fff;\n$btn-success-color: #fff;\n$btn-warning-color: #fff;\n$btn-danger-color: #fff;\n\n// Button Icon Color\n$btn-default-icon-color: $gray;\n\n// Button Background Color\n$btn-default-bg-hover: $btn-default-border-color;\n$btn-primary-bg-hover: mix($btn-primary-bg, black, 80%);\n$btn-success-bg-hover: mix($btn-success-bg, black, 80%);\n$btn-warning-bg-hover: mix($btn-warning-bg, black, 80%);\n$btn-danger-bg-hover: mix($btn-danger-bg, black, 80%);\n$btn-link-bg-hover: $gray-lighter;\n\n//== Header blocks\n//## Define look and feel over multible building blocks that serve as header\n\n$header-min-height: 240px;\n$header-bg-color: $brand-primary;\n$header-bgimage-filter: brightness(60%);\n$header-text-color: #fff;\n$header-text-color-detail: rgba(0, 0, 0, 0.2);\n\n//\n// ███████╗██╗ ██╗██████╗ ███████╗██████╗ ████████╗\n// ██╔════╝╚██╗██╔╝██╔══██╗██╔════╝██╔══██╗╚══██╔══╝\n// █████╗ ╚███╔╝ ██████╔╝█████╗ ██████╔╝ ██║\n// ██╔══╝ ██╔██╗ ██╔═══╝ ██╔══╝ ██╔══██╗ ██║\n// ███████╗██╔╝ ██╗██║ ███████╗██║ ██║ ██║\n// ╚══════╝╚═╝ ╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝\n//\n\n//== Color variations\n//## These variations are used to support several other variables and components\n\n// Color variations\n$color-default-darker: mix($brand-default, black, 60%);\n$color-default-dark: mix($brand-default, black, 70%);\n$color-default-light: mix($brand-default, white, 40%);\n$color-default-lighter: mix($brand-default, white, 20%);\n\n$color-primary-darker: mix($brand-primary, black, 60%);\n$color-primary-dark: mix($brand-primary, black, 70%);\n$color-primary-light: mix($brand-primary, white, 40%);\n$color-primary-lighter: mix($brand-primary, white, 20%);\n\n$color-success-darker: mix($brand-success, black, 60%);\n$color-success-dark: mix($brand-success, black, 70%);\n$color-success-light: mix($brand-success, white, 40%);\n$color-success-lighter: mix($brand-success, white, 20%);\n\n$color-warning-darker: mix($brand-warning, black, 60%);\n$color-warning-dark: mix($brand-warning, black, 70%);\n$color-warning-light: mix($brand-warning, white, 40%);\n$color-warning-lighter: mix($brand-warning, white, 20%);\n\n$color-danger-darker: mix($brand-danger, black, 60%);\n$color-danger-dark: mix($brand-danger, black, 70%);\n$color-danger-light: mix($brand-danger, white, 40%);\n$color-danger-lighter: mix($brand-danger, white, 20%);\n\n$brand-gradient: linear-gradient(to right top, #264ae5, #2239c5, #1b29a6, #111988, #03096c);\n\n//== Grids\n//## Used for Datagrid, Templategrid, Listview & Tables (see components folder)\n\n// Default Border Colors\n$grid-border-color: $border-color-default;\n\n// Spacing\n// Default\n$grid-padding-top: 16px;\n$grid-padding-right: 16px;\n$grid-padding-bottom: 16px;\n$grid-padding-left: 16px;\n\n// Listview\n$listview-padding-top: 16px;\n$listview-padding-right: 16px;\n$listview-padding-bottom: 16px;\n$listview-padding-left: 16px;\n\n// Background Colors\n$grid-bg: transparent;\n$grid-bg-header: transparent; // Grid Headers\n$grid-bg-hover: mix($grid-border-color, #fff, 20%);\n$grid-bg-selected: mix($grid-border-color, #fff, 30%);\n$grid-bg-selected-hover: mix($grid-border-color, #fff, 50%);\n\n// Striped Background Color\n$grid-bg-striped: mix($grid-border-color, #fff, 10%);\n\n// Background Footer Color\n$grid-footer-bg: $gray-primary;\n\n// Text Color\n$grid-selected-color: $font-color-default;\n\n// Paging Colors\n$grid-paging-bg: transparent;\n$grid-paging-bg-hover: transparent;\n$grid-paging-border-color: transparent;\n$grid-paging-border-color-hover: transparent;\n$grid-paging-color: $gray-light;\n$grid-paging-color-hover: $brand-primary;\n\n//== Tabs\n//## Default variables for Tab Container Widget (used in components/tabcontainer)\n\n// Text Color\n$tabs-color: $font-color-detail;\n$tabs-color-active: $font-color-default;\n$tabs-lined-color-active: $font-color-default;\n\n$tabs-lined-border-width: 3px;\n\n// Border Color\n$tabs-border-color: $border-color-default;\n$tabs-lined-border-color: $brand-primary;\n\n// Background Color\n$tabs-bg: transparent;\n$tabs-bg-pills: #e7e7e9;\n$tabs-bg-hover: lighten($tabs-border-color, 5);\n$tabs-bg-active: $brand-primary;\n\n//== Modals\n//## Default Mendix Modal, Blocking Modal and Login Modal (used in components/modals)\n\n// Background Color\n$modal-header-bg: transparent;\n\n// Border Color\n$modal-header-border-color: $border-color-default;\n\n// Text Color\n$modal-header-color: $font-color-default;\n\n//== Dataview\n//## Default variables for Dataview Widget (used in components/dataview)\n\n// Controls\n$dataview-controls-bg: transparent;\n$dataview-controls-border-color: $border-color-default;\n\n// Empty Message\n$dataview-emptymessage-bg: $bg-color;\n$dataview-emptymessage-color: $font-color-default;\n\n//== Alerts\n//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts)\n\n// Background Color\n$alert-success-bg: $color-success-lighter;\n$alert-warning-bg: $color-warning-lighter;\n$alert-danger-bg: $color-danger-lighter;\n\n// Text Color\n$alert-success-color: $color-success-darker;\n$alert-warning-color: $color-warning-darker;\n$alert-danger-color: $color-danger-darker;\n\n// Border Color\n$alert-success-border-color: $color-success-dark;\n$alert-warning-border-color: $color-warning-dark;\n$alert-danger-border-color: $color-danger-dark;\n\n//== Wizard\n\n$wizard-step-height: 48px;\n$wizard-step-number-size: 64px;\n$wizard-step-number-font-size: $font-size-h3;\n\n//Wizard step states\n$wizard-default-bg: #fff;\n$wizard-default-color: #fff;\n$wizard-default-step-color: $font-color-default;\n$wizard-default-border-color: $border-color-default;\n\n$wizard-active-bg: $color-primary-lighter;\n$wizard-active-color: $color-primary-dark;\n$wizard-active-step-color: $color-primary-dark;\n$wizard-active-border-color: $color-primary-dark;\n\n$wizard-visited-bg: $color-success-lighter;\n$wizard-visited-color: $color-success-dark;\n$wizard-visited-step-color: $color-success-dark;\n$wizard-visited-border-color: $color-success-dark;\n\n//== Labels\n//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels)\n\n// Background Color\n$label-default-bg: $brand-default;\n$label-primary-bg: $brand-primary;\n$label-success-bg: $brand-success;\n$label-warning-bg: $brand-warning;\n$label-danger-bg: $brand-danger;\n\n// Border Color\n$label-default-border-color: $brand-default;\n$label-primary-border-color: $brand-primary;\n$label-success-border-color: $brand-success;\n$label-warning-border-color: $brand-warning;\n$label-danger-border-color: $brand-danger;\n\n// Text Color\n$label-default-color: $font-color-default;\n$label-primary-color: #fff;\n$label-success-color: #fff;\n$label-warning-color: #fff;\n$label-danger-color: #fff;\n\n//== Groupbox\n//## Default variables for Groupbox Widget (used in components/groupbox)\n\n// Background Color\n$groupbox-default-bg: $gray-primary;\n$groupbox-primary-bg: $brand-primary;\n$groupbox-success-bg: $brand-success;\n$groupbox-warning-bg: $brand-warning;\n$groupbox-danger-bg: $brand-danger;\n$groupbox-white-bg: #fff;\n\n// Text Color\n$groupbox-default-color: $font-color-default;\n$groupbox-primary-color: #fff;\n$groupbox-success-color: #fff;\n$groupbox-warning-color: #fff;\n$groupbox-danger-color: #fff;\n$groupbox-white-color: $font-color-default;\n\n//== Callout (groupbox) Colors\n//## Extended variables for Groupbox Widget (used in components/groupbox)\n\n// Text and Border Color\n$callout-default-color: $font-color-default;\n$callout-success-color: $brand-success;\n$callout-warning-color: $brand-warning;\n$callout-danger-color: $brand-danger;\n\n// Background Color\n$callout-default-bg: $color-default-lighter;\n$callout-success-bg: $color-success-lighter;\n$callout-warning-bg: $color-warning-lighter;\n$callout-danger-bg: $color-danger-lighter;\n\n//== Timeline\n//## Extended variables for Timeline Widget\n// Colors\n$timeline-icon-color: $brand-primary;\n$timeline-border-color: $border-color-default;\n$timeline-event-time-color: $brand-primary;\n\n// Sizes\n$timeline-icon-size: 18px;\n$timeline-image-size: 36px;\n\n//Timeline grouping\n$timeline-grouping-size: 120px;\n$timeline-grouping-border-radius: 30px;\n$timeline-grouping-border-color: $timeline-border-color;\n\n//== Accordions\n//## Extended variables for Accordion Widget\n\n// Default\n$accordion-header-default-bg: $bg-color-secondary;\n$accordion-header-default-bg-hover: $bg-color;\n$accordion-header-default-color: $font-color-header;\n$accordion-default-border-color: $border-color-default;\n\n$accordion-bg-striped: $grid-bg-striped;\n$accordion-bg-striped-hover: $grid-bg-selected;\n\n// Semantic background colors\n$accordion-header-primary-bg: $btn-primary-bg;\n$accordion-header-secondary-bg: $btn-default-bg;\n$accordion-header-success-bg: $btn-success-bg;\n$accordion-header-warning-bg: $btn-warning-bg;\n$accordion-header-danger-bg: $btn-danger-bg;\n\n$accordion-header-primary-bg-hover: $btn-primary-bg-hover;\n$accordion-header-secondary-bg-hover: $btn-default-bg-hover;\n$accordion-header-success-bg-hover: $btn-success-bg-hover;\n$accordion-header-warning-bg-hover: $btn-warning-bg-hover;\n$accordion-header-danger-bg-hover: $btn-danger-bg-hover;\n\n// Semantic text colors\n$accordion-header-primary-color: $btn-primary-color;\n$accordion-header-secondary-color: $btn-default-color;\n$accordion-header-success-color: $btn-success-color;\n$accordion-header-warning-color: $btn-warning-color;\n$accordion-header-danger-color: $btn-danger-color;\n\n// Semantic border colors\n$accordion-primary-border-color: $btn-primary-border-color;\n$accordion-secondary-border-color: $btn-default-border-color;\n$accordion-success-border-color: $btn-success-border-color;\n$accordion-warning-border-color: $btn-warning-border-color;\n$accordion-danger-border-color: $btn-danger-border-color;\n\n//== Spacing\n//## Advanced layout options (used in base/mixins/default-spacing)\n\n// Smallest spacing\n$spacing-smallest: 2px;\n\n// Smaller spacing\n$spacing-smaller: 4px;\n\n// Small spacing\n$spacing-small: 8px;\n\n// Medium spacing\n$spacing-medium: 16px;\n$t-spacing-medium: 16px;\n$m-spacing-medium: 16px;\n\n// Large spacing\n$spacing-large: 24px;\n$t-spacing-large: 24px;\n$m-spacing-large: 16px;\n\n// Larger spacing\n$spacing-larger: 32px;\n\n// Largest spacing\n$spacing-largest: 48px;\n\n// Layout spacing\n$layout-spacing-top: 24px;\n$layout-spacing-right: 24px;\n$layout-spacing-bottom: 24px;\n$layout-spacing-left: 24px;\n\n$t-layout-spacing-top: 24px;\n$t-layout-spacing-right: 24px;\n$t-layout-spacing-bottom: 24px;\n$t-layout-spacing-left: 24px;\n\n$m-layout-spacing-top: 16px;\n$m-layout-spacing-right: 16px;\n$m-layout-spacing-bottom: 16px;\n$m-layout-spacing-left: 16px;\n\n// Combined layout spacing\n$layout-spacing: $layout-spacing-top $layout-spacing-right $layout-spacing-bottom $layout-spacing-left;\n$m-layout-spacing: $m-layout-spacing-top $m-layout-spacing-right $m-layout-spacing-bottom $m-layout-spacing-left;\n$t-layout-spacing: $t-layout-spacing-top $t-layout-spacing-right $t-layout-spacing-bottom $t-layout-spacing-left;\n\n// Gutter size\n$gutter-size: 8px;\n\n//== Tables\n//## Table spacing options (used in components/tables)\n\n$padding-table-cell-top: 8px;\n$padding-table-cell-bottom: 8px;\n$padding-table-cell-left: 8px;\n$padding-table-cell-right: 8px;\n\n//== Media queries breakpoints\n//## Define the breakpoints at which your layout will change, adapting to different screen sizes.\n\n$screen-xs: 480px;\n$screen-sm: 576px;\n$screen-md: 768px;\n$screen-lg: 992px;\n$screen-xl: 1200px;\n\n// So media queries don't overlap when required, provide a maximum (used for max-width)\n$screen-xs-max: calc(#{$screen-sm} - 1px);\n$screen-sm-max: calc(#{$screen-md} - 1px);\n$screen-md-max: calc(#{$screen-lg} - 1px);\n$screen-lg-max: calc(#{$screen-xl} - 1px);\n\n//== Settings\n//## Enable or disable your desired framework features\n// Use of !important\n$important-flex: true; // ./base/flex.scss\n$important-spacing: true; // ./base/spacing.scss\n$important-helpers: true; // ./helpers/helperclasses.scss\n\n//===== Legacy variables =====\n\n//== Step 1: Brand Colors\n$brand-inverse: #24276c;\n$brand-info: #0086d9;\n\n//== Step 2: UI Customization\n\n//== Buttons\n//## Define background-color, border-color and text. Used in components/buttons\n\n// Button Background Color\n$btn-inverse-bg: $brand-inverse;\n$btn-info-bg: $brand-info;\n\n// Button Border Color\n$btn-inverse-border-color: $brand-inverse;\n$btn-info-border-color: $brand-info;\n\n// Button Text Color\n$btn-inverse-color: #fff;\n$btn-info-color: #fff;\n\n// Button Background Color\n$btn-inverse-bg-hover: mix($btn-inverse-bg, white, 80%);\n$btn-info-bg-hover: mix($btn-info-bg, black, 80%);\n\n//== Color variations\n//## These variations are used to support several other variables and components\n\n// Color variations\n$color-inverse-darker: mix($brand-inverse, black, 60%);\n$color-inverse-dark: mix($brand-inverse, black, 70%);\n$color-inverse-light: mix($brand-inverse, white, 60%);\n$color-inverse-lighter: mix($brand-inverse, white, 20%);\n\n$color-info-darker: mix($brand-info, black, 60%);\n$color-info-dark: mix($brand-info, black, 70%);\n$color-info-light: mix($brand-info, white, 60%);\n$color-info-lighter: mix($brand-info, white, 20%);\n\n//== Alerts\n//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts)\n\n// Background Color\n$alert-info-bg: $color-primary-lighter;\n\n// Text Color\n$alert-info-color: $color-primary-darker;\n\n// Border Color\n$alert-info-border-color: $color-primary-dark;\n\n//== Labels\n//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels)\n\n// Background Color\n$label-info-bg: $brand-info;\n$label-inverse-bg: $brand-inverse;\n\n// Border Color\n$label-info-border-color: $brand-info;\n$label-inverse-border-color: $brand-inverse;\n\n// Text Color\n$label-info-color: #fff;\n$label-inverse-color: #fff;\n\n//== Groupbox\n//## Default variables for Groupbox Widget (used in components/groupbox)\n\n// Background Color\n$groupbox-inverse-bg: $brand-inverse;\n$groupbox-info-bg: $brand-info;\n\n// Text Color\n$groupbox-inverse-color: #fff;\n$groupbox-info-color: #fff;\n\n//== Callout (groupbox) Colors\n//## Extended variables for Groupbox Widget (used in components/groupbox)\n\n// Text and Border Color\n$callout-info-color: $brand-info;\n\n// Background Color\n$callout-info-bg: $color-info-lighter;\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Spacing\n\n Spacing classes\n========================================================================== */\n@mixin spacing() {\n $important-spacing-value: if($important-spacing, \" !important\", \"\");\n\n // Spacing none\n .spacing-inner-none {\n padding: 0 #{$important-spacing-value};\n }\n\n .spacing-inner-top-none {\n padding-top: 0 #{$important-spacing-value};\n }\n\n .spacing-inner-right-none {\n padding-right: 0 #{$important-spacing-value};\n }\n\n .spacing-inner-bottom-none {\n padding-bottom: 0 #{$important-spacing-value};\n }\n\n .spacing-inner-left-none {\n padding-left: 0 #{$important-spacing-value};\n }\n\n .spacing-outer-none {\n margin: 0 #{$important-spacing-value};\n }\n\n .spacing-outer-top-none {\n margin-top: 0 #{$important-spacing-value};\n }\n\n .spacing-outer-right-none {\n margin-right: 0 #{$important-spacing-value};\n }\n\n .spacing-outer-bottom-none {\n margin-bottom: 0 #{$important-spacing-value};\n }\n\n .spacing-outer-left-none {\n margin-left: 0 #{$important-spacing-value};\n }\n\n // Spacing small\n .spacing-inner {\n padding: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-inner-top {\n padding-top: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-inner-right {\n padding-right: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-inner-bottom {\n padding-bottom: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-inner-left {\n padding-left: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-inner-vertical {\n padding-top: $spacing-small #{$important-spacing-value};\n padding-bottom: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-inner-horizontal {\n padding-left: $spacing-small #{$important-spacing-value};\n padding-right: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-outer {\n margin: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-outer-top {\n margin-top: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-outer-right {\n margin-right: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-outer-bottom {\n margin-bottom: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-outer-left {\n margin-left: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-outer-vertical {\n margin-top: $spacing-small #{$important-spacing-value};\n margin-bottom: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-outer-horizontal {\n margin-left: $spacing-small #{$important-spacing-value};\n margin-right: $spacing-small #{$important-spacing-value};\n }\n\n // Spacing Medium\n .spacing-inner-medium {\n @include get-responsive-spacing-medium(\n $type: padding,\n $direction: all,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-top-medium {\n @include get-responsive-spacing-medium(\n $type: padding,\n $direction: top,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-right-medium {\n @include get-responsive-spacing-medium(\n $type: padding,\n $direction: right,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-bottom-medium {\n @include get-responsive-spacing-medium(\n $type: padding,\n $direction: bottom,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-left-medium {\n @include get-responsive-spacing-medium(\n $type: padding,\n $direction: left,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-vertical-medium {\n @include get-responsive-spacing-medium(\n $type: padding,\n $direction: top,\n $is_important: #{$important-spacing-value}\n );\n @include get-responsive-spacing-medium(\n $type: padding,\n $direction: bottom,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-horizontal-medium {\n @include get-responsive-spacing-medium(\n $type: padding,\n $direction: left,\n $is_important: #{$important-spacing-value}\n );\n @include get-responsive-spacing-medium(\n $type: padding,\n $direction: right,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-medium {\n @include get-responsive-spacing-medium(\n $type: margin,\n $direction: all,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-top-medium {\n @include get-responsive-spacing-medium(\n $type: margin,\n $direction: top,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-right-medium {\n @include get-responsive-spacing-medium(\n $type: margin,\n $direction: right,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-bottom-medium {\n @include get-responsive-spacing-medium(\n $type: margin,\n $direction: bottom,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-left-medium {\n @include get-responsive-spacing-medium(\n $type: margin,\n $direction: left,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-vertical-medium {\n @include get-responsive-spacing-medium(\n $type: margin,\n $direction: top,\n $is_important: #{$important-spacing-value}\n );\n @include get-responsive-spacing-medium(\n $type: margin,\n $direction: bottom,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-horizontal-medium {\n @include get-responsive-spacing-medium(\n $type: margin,\n $direction: left,\n $is_important: #{$important-spacing-value}\n );\n @include get-responsive-spacing-medium(\n $type: margin,\n $direction: right,\n $is_important: #{$important-spacing-value}\n );\n }\n\n // Spacing Large\n .spacing-inner-large {\n @include get-responsive-spacing-large(\n $type: padding,\n $direction: all,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-top-large {\n @include get-responsive-spacing-large(\n $type: padding,\n $direction: top,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-right-large {\n @include get-responsive-spacing-large(\n $type: padding,\n $direction: right,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-bottom-large {\n @include get-responsive-spacing-large(\n $type: padding,\n $direction: bottom,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-left-large {\n @include get-responsive-spacing-large(\n $type: padding,\n $direction: left,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-vertical-large {\n @include get-responsive-spacing-large(\n $type: padding,\n $direction: top,\n $is_important: #{$important-spacing-value}\n );\n @include get-responsive-spacing-large(\n $type: padding,\n $direction: bottom,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-horizontal-large {\n @include get-responsive-spacing-large(\n $type: padding,\n $direction: left,\n $is_important: #{$important-spacing-value}\n );\n @include get-responsive-spacing-large(\n $type: padding,\n $direction: right,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-large {\n @include get-responsive-spacing-large(\n $type: margin,\n $direction: all,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-top-large {\n @include get-responsive-spacing-large(\n $type: margin,\n $direction: top,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-right-large {\n @include get-responsive-spacing-large(\n $type: margin,\n $direction: right,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-bottom-large {\n @include get-responsive-spacing-large(\n $type: margin,\n $direction: bottom,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-left-large {\n @include get-responsive-spacing-large(\n $type: margin,\n $direction: left,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-vertical-large {\n @include get-responsive-spacing-large(\n $type: margin,\n $direction: top,\n $is_important: #{$important-spacing-value}\n );\n @include get-responsive-spacing-large(\n $type: margin,\n $direction: bottom,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-horizontal-large {\n @include get-responsive-spacing-large(\n $type: margin,\n $direction: left,\n $is_important: #{$important-spacing-value}\n );\n @include get-responsive-spacing-large(\n $type: margin,\n $direction: right,\n $is_important: #{$important-spacing-value}\n );\n }\n\n // Spacing layouts\n .spacing-inner-layout {\n @include layout-spacing(\n $type: padding,\n $direction: all,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-top-layout {\n @include layout-spacing(\n $type: padding,\n $direction: top,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-right-layout {\n @include layout-spacing(\n $type: padding,\n $direction: right,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-bottom-layout {\n @include layout-spacing(\n $type: padding,\n $direction: bottom,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-left-layout {\n @include layout-spacing(\n $type: padding,\n $direction: left,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-vertical-layout {\n @include layout-spacing(\n $type: padding,\n $direction: top,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n @include layout-spacing(\n $type: padding,\n $direction: bottom,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n .spacing-inner-horizontal-layout {\n @include layout-spacing(\n $type: padding,\n $direction: left,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n @include layout-spacing(\n $type: padding,\n $direction: right,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-layout {\n @include layout-spacing(\n $type: margin,\n $direction: all,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-top-layout {\n @include layout-spacing(\n $type: margin,\n $direction: top,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-right-layout {\n @include layout-spacing(\n $type: margin,\n $direction: right,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-bottom-layout {\n @include layout-spacing(\n $type: margin,\n $direction: bottom,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-left-layout {\n @include layout-spacing(\n $type: margin,\n $direction: left,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-vertical-layout {\n @include layout-spacing(\n $type: margin,\n $direction: top,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n @include layout-spacing(\n $type: margin,\n $direction: bottom,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n .spacing-outer-horizontal-layout {\n @include layout-spacing(\n $type: margin,\n $direction: left,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n @include layout-spacing(\n $type: margin,\n $direction: right,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n\n // Scroll container spacing\n .mx-scrollcontainer .mx-placeholder {\n width: 100%;\n height: 100%;\n\n .mx-layoutgrid,\n .mx-layoutgrid-fluid {\n @include layout-spacing($type: padding, $direction: all, $device: responsive);\n\n .mx-layoutgrid,\n .mx-layoutgrid-fluid {\n padding: 0;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin get-responsive-spacing-large($type: padding, $direction: all, $is_important: false) {\n @if not $exclude-spacing {\n $suffix: \"\";\n $dash: \"-\"; // Otherwise it will be interpreted as a minus symbol. Needed for the Gonzales PE version: 3.4.7 compiler (used by the Webmodeler)\n\n @if $is_important != false {\n $suffix: \" !important\";\n }\n @if $direction==all {\n @media (max-width: $screen-sm-max) {\n #{$type}: #{$m-spacing-large}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}: #{$t-spacing-large}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}: #{$spacing-large}#{$suffix};\n }\n } @else {\n @media (max-width: $screen-sm-max) {\n #{$type}#{$dash}#{$direction}: #{$m-spacing-large}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}#{$dash}#{$direction}: #{$t-spacing-large}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}#{$dash}#{$direction}: #{$spacing-large}#{$suffix};\n }\n }\n }\n}\n\n@mixin get-responsive-spacing-medium($type: padding, $direction: all, $is_important: false) {\n @if not $exclude-spacing {\n $suffix: \"\";\n $dash: \"-\"; // Otherwise it will be interpreted as a minus symbol. Needed for the Gonzales PE version: 3.4.7 compiler (used by the Webmodeler)\n\n @if $is_important != false {\n $suffix: \" !important\";\n }\n @if $direction==all {\n @media (max-width: $screen-sm-max) {\n #{$type}: #{$m-spacing-medium}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}: #{$t-spacing-medium}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}: #{$spacing-medium}#{$suffix};\n }\n } @else {\n @media (max-width: $screen-sm-max) {\n #{$type}#{$dash}#{$direction}: #{$m-spacing-medium}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}#{$dash}#{$direction}: #{$t-spacing-medium}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}#{$dash}#{$direction}: #{$spacing-medium}#{$suffix};\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin layout-spacing($type: padding, $direction: all, $device: responsive, $is_important: false) {\n @if not $exclude-spacing {\n $suffix: \"\";\n @if $is_important != false {\n $suffix: \" !important\";\n }\n @if $device==responsive {\n @if $direction==all {\n @media (max-width: $screen-sm-max) {\n #{$type}: #{$m-layout-spacing}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}: #{$t-layout-spacing}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}: #{$layout-spacing}#{$suffix};\n }\n } @else if $direction==top {\n @media (max-width: $screen-sm-max) {\n #{$type}-top: #{$m-layout-spacing-top}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}-top: #{$t-layout-spacing-top}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}-top: #{$layout-spacing-top}#{$suffix};\n }\n } @else if $direction==right {\n @media (max-width: $screen-sm-max) {\n #{$type}-right: #{$m-layout-spacing-right}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}-right: #{$t-layout-spacing-right}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}-right: #{$layout-spacing-right}#{$suffix};\n }\n } @else if $direction==bottom {\n @media (max-width: $screen-sm-max) {\n #{$type}-bottom: #{$m-layout-spacing-bottom}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}-bottom: #{$t-layout-spacing-bottom}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}-bottom: #{$layout-spacing-bottom}#{$suffix};\n }\n } @else if $direction==left {\n @media (max-width: $screen-sm-max) {\n #{$type}-left: #{$m-layout-spacing-left}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}-left: #{$t-layout-spacing-left}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}-left: #{$layout-spacing-left}#{$suffix};\n }\n }\n } @else if $device==tablet {\n @if $direction==all {\n #{$type}: #{$t-layout-spacing}#{$suffix};\n } @else if $direction==top {\n #{$type}-top: #{$t-layout-spacing-top}#{$suffix};\n } @else if $direction==right {\n #{$type}-right: #{$t-layout-spacing-right}#{$suffix};\n } @else if $direction==bottom {\n #{$type}-bottom: #{$t-layout-spacing-bottom}#{$suffix};\n } @else if $direction==left {\n #{$type}-left: #{$t-layout-spacing-left}#{$suffix};\n }\n } @else if $device==mobile {\n @if $direction==all {\n #{$type}: #{$m-layout-spacing}#{$suffix};\n } @else if $direction==top {\n #{$type}-top: #{$m-layout-spacing-top}#{$suffix};\n } @else if $direction==right {\n #{$type}-right: #{$m-layout-spacing-right}#{$suffix};\n } @else if $direction==bottom {\n #{$type}-bottom: #{$m-layout-spacing-bottom}#{$suffix};\n } @else if $direction==left {\n #{$type}-left: #{$m-layout-spacing-left}#{$suffix};\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Base\n\n Default settings\n========================================================================== */\n@mixin base() {\n html {\n height: 100%;\n }\n\n body {\n min-height: 100%;\n color: $font-color-default;\n background-color: $bg-color;\n font-family: $font-family-base;\n font-size: $font-size-default;\n font-weight: $font-weight-normal;\n line-height: $line-height-base;\n }\n\n a {\n transition: 0.25s;\n color: $link-color;\n -webkit-backface-visibility: hidden;\n }\n\n a:hover {\n text-decoration: underline;\n color: $link-hover-color;\n }\n\n // Address `outline` inconsistency between Chrome and other browsers.\n a:focus {\n outline: thin dotted;\n }\n\n // Improve readability when focused and also mouse hovered in all browsers\n a:active,\n a:hover {\n outline: 0;\n }\n\n // Removes large blue border in chrome on focus and active states\n input:focus,\n button:focus,\n .mx-link:focus {\n outline: 0;\n }\n\n // Removes large blue border for tabindexes from widgets\n div[tabindex] {\n outline: 0;\n }\n\n // Disabled State\n .disabled,\n [disabled] {\n cursor: not-allowed;\n opacity: 0.65;\n box-shadow: none;\n }\n\n .mx-underlay {\n position: fixed;\n top: 0;\n width: 100%;\n height: 100%;\n z-index: 1000;\n opacity: 0.5;\n background-color: #0a1325;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin login() {\n body {\n height: 100%;\n }\n\n .loginpage {\n display: flex;\n height: 100%;\n }\n .loginpage-logo {\n position: absolute;\n top: 30px;\n right: 30px;\n\n & > svg {\n width: 120px;\n }\n }\n\n .loginpage-left {\n display: none;\n }\n\n .loginpage-right {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: space-around;\n }\n .loginpage-formwrapper {\n width: 400px;\n margin: 0 auto;\n }\n\n .loginpage-fullscreenDiv {\n background-color: #e8e8e8;\n width: 100%;\n height: auto;\n bottom: 0;\n top: 0;\n left: 0;\n position: absolute;\n }\n\n .loginpage-center {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n // Form\n .loginpage-form {\n .alert {\n display: none;\n }\n\n .btn {\n border-radius: $border-radius-default;\n }\n\n // Form label + input\n .form-group {\n width: 100%;\n align-items: center;\n @media only screen and (max-width: $screen-sm-max) {\n align-items: flex-start;\n }\n\n .control-label {\n flex: 4;\n margin-bottom: 0;\n font-size: $font-size-default;\n font-weight: 500;\n @media only screen and (max-width: $screen-sm-max) {\n flex: 1;\n margin-bottom: $spacing-small;\n }\n }\n\n .inputwrapper {\n flex: 8;\n position: relative;\n width: 100%;\n @media only screen and (max-width: $screen-sm-max) {\n flex: 1;\n }\n\n .glyphicon {\n &:before {\n transition: color 0.4s;\n }\n\n position: absolute;\n top: 50%;\n left: $form-input-padding-x;\n transform: translateY(-50%);\n\n &-eye-open:hover,\n &-eye-close:hover {\n cursor: pointer;\n color: $brand-primary;\n }\n }\n\n .form-control {\n padding: $form-input-padding-y $form-input-padding-x $form-input-padding-y 45px;\n width: 100%;\n }\n\n .form-control:focus ~ .glyphicon:before {\n color: $brand-primary;\n }\n }\n }\n }\n\n // Divider - only on login-with-mendixsso-button.html\n .loginpage-alternativelabel {\n display: flex;\n align-items: center;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: space-between;\n margin: 25px 0px;\n\n hr {\n flex: 1;\n margin: 20px 0 20px 10px;\n border: 0;\n border-color: #d8d8d8;\n border-top: 1px solid #eeeeee;\n }\n }\n\n .loginpage-signin {\n color: #555555;\n }\n\n .loginpage-form .btn {\n img {\n vertical-align: middle;\n top: -1px;\n position: relative;\n }\n }\n\n // Show only on wide screens\n @media screen and (min-width: $screen-xl) {\n .loginpage-left {\n position: relative;\n display: block;\n flex: 1;\n width: 100%;\n height: 100%;\n }\n // Image and clipping mask\n .loginpage-image {\n height: 100%;\n animation: makePointer 1s ease-out both;\n background: left / cover no-repeat\n linear-gradient(to right, rgba($brand-primary, 0.9) 0%, rgba($brand-primary, 0.6) 100%),\n left / cover no-repeat url(\"./resources/work-do-more.jpeg\");\n -webkit-clip-path: polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%);\n clip-path: polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%);\n }\n\n .loginpage-logo {\n & > svg {\n width: 150px;\n }\n }\n\n .loginpage-formwrapper {\n width: 400px;\n }\n }\n\n // Animate image clipping mask\n @keyframes makePointer {\n 100% {\n -webkit-clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);\n clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);\n }\n }\n @-webkit-keyframes makePointer {\n 100% {\n -webkit-clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);\n clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin input() {\n /* ==========================================================================\n Input\n\n The form-control class style all inputs\n ========================================================================== */\n .form-control {\n display: flex;\n flex: 1;\n min-width: 50px;\n height: $form-input-height;\n padding: $form-input-padding-y $form-input-padding-x;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n color: $form-input-color;\n border: 1px solid $form-input-border-color;\n border-radius: $form-input-border-radius;\n background-color: $form-input-bg;\n background-image: none;\n box-shadow: none;\n font-size: $form-input-font-size;\n line-height: $form-input-line-height;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n @if $form-input-style==lined {\n @extend .form-control-lined;\n }\n\n &::placeholder {\n color: $form-input-placeholder-color;\n }\n }\n\n .form-control:not([readonly]):focus {\n border-color: $form-input-border-focus-color;\n outline: 0;\n background-color: $form-input-bg-focus;\n box-shadow: none;\n }\n\n .form-control[disabled],\n .form-control[readonly],\n fieldset[disabled] .form-control {\n opacity: 1;\n background-color: $form-input-bg-disabled;\n }\n\n .form-control[disabled],\n fieldset[disabled] .form-control {\n cursor: not-allowed;\n }\n\n // Lined\n .form-control-lined {\n border: 0;\n border-bottom: 1px solid $form-input-border-color;\n border-radius: 0;\n background-color: transparent;\n\n &:focus {\n background-color: transparent;\n }\n }\n\n // Read only form control class\n .form-control-static {\n overflow: hidden;\n flex: 1;\n min-height: auto;\n padding: $form-input-static-padding-y $form-input-static-padding-x;\n //border-bottom: 1px solid $form-input-static-border-color;\n font-size: $form-input-font-size;\n line-height: $form-input-line-height;\n\n & + .control-label {\n margin-left: $form-label-gutter;\n }\n }\n\n // Dropdown input widget\n select.form-control {\n $arrow: \"resources/arrow.svg\";\n padding-right: 30px;\n background-image: url($arrow);\n background-repeat: no-repeat;\n background-position: calc(100% - #{$form-input-padding-x}) center;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n }\n\n .form-control.mx-selectbox {\n align-items: center;\n flex-direction: row-reverse;\n justify-content: space-between;\n }\n\n // Not editable textarea, textarea will be rendered as a label\n .mx-textarea .control-label {\n height: auto;\n }\n\n .mx-textarea-counter {\n display: block;\n width: 100%;\n text-align: right;\n margin-top: $spacing-small;\n }\n\n textarea.form-control {\n flex-basis: auto;\n }\n\n .mx-compound-control {\n display: flex;\n flex: 1;\n flex-wrap: wrap;\n max-width: 100%;\n\n .btn {\n margin-left: $spacing-small;\n }\n\n .mx-validation-message {\n flex-basis: 100%;\n margin-top: 4px;\n }\n }\n\n .has-error .mx-validation-message {\n margin-top: $spacing-small;\n margin-bottom: 0;\n padding: $spacing-small;\n color: $alert-danger-color;\n border-color: $alert-danger-border-color;\n background-color: $alert-danger-bg;\n }\n\n // Form Group\n .form-group {\n display: flex;\n flex-direction: row;\n margin-bottom: $form-group-margin-bottom;\n\n & > div[class*=\"col-\"] {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n }\n\n & > [class*=\"col-\"] {\n padding-right: $form-group-gutter;\n padding-left: $form-group-gutter;\n }\n\n // Alignment content\n div[class*=\"textBox\"] > .control-label,\n div[class*=\"textArea\"] > .control-label,\n div[class*=\"datePicker\"] > .control-label {\n @extend .form-control-static;\n }\n\n // Label\n .control-label {\n overflow: hidden;\n margin-bottom: 4px;\n text-align: left;\n text-overflow: ellipsis;\n color: $form-label-color;\n font-size: $form-label-size;\n font-weight: $form-label-weight;\n }\n\n .mx-validation-message {\n flex-basis: 100%;\n }\n\n &.no-columns:not(.label-after) {\n flex-direction: column;\n }\n }\n\n .form-group.label-after {\n .form-control-static {\n flex: unset;\n }\n\n .control-label {\n margin-bottom: 0;\n }\n }\n\n .mx-dateinput,\n .mx-referenceselector,\n .mx-referencesetselector {\n flex: 1;\n }\n\n // Targets only webkit iOS devices\n .dj_webkit.dj_ios .form-control {\n transform: translateZ(0);\n }\n\n @media only screen and (min-width: $screen-md) {\n .form-horizontal {\n .control-label {\n margin-bottom: 0;\n padding-top: $form-input-padding-y;\n padding-bottom: $form-input-padding-y;\n line-height: $form-input-line-height;\n }\n }\n }\n\n @media only screen and (max-width: $screen-sm-max) {\n .form-group {\n flex-direction: column;\n }\n }\n\n @media only screen and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 0) {\n // Fixes alignment bug on iPads / iPhones where datefield is not aligned vertically\n input[type=\"date\"],\n input[type=\"time\"],\n input[type=\"datetime-local\"],\n input[type=\"month\"] {\n line-height: 1;\n }\n // Fix shrinking of date inputs because inability of setting a placeholder\n input[type=\"time\"]:not(.has-value):before,\n input[type=\"date\"]:not(.has-value):before,\n input[type=\"month\"]:not(.has-value):before,\n input[type=\"datetime-local\"]:not(.has-value):before {\n margin-right: 0.5em;\n content: attr(placeholder) !important;\n color: #aaaaaa;\n }\n input[type=\"time\"].has-value:before,\n input[type=\"date\"].has-value:before,\n input[type=\"month\"].has-value:before,\n input[type=\"datetime-local\"].has-value:before {\n content: \"\" !important;\n }\n }\n\n @media (-ms-high-contrast: none), (-ms-high-contrast: active) {\n // Target IE10+\n .form-group {\n display: block;\n }\n }\n\n [dir=\"rtl\"] {\n // Dropdown input widget\n select.form-control {\n padding-right: 30px;\n padding-left: 0;\n background-position: #{$form-input-padding-x} center;\n }\n\n .mx-compound-control .btn {\n margin-right: $spacing-small;\n margin-left: 0;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin background-helpers() {\n /* ==========================================================================\n Background\n\n Different background components, all managed by variables\n ========================================================================== */\n\n .background-main {\n background-color: $bg-color !important;\n }\n\n //Brand variations\n\n .background-primary {\n background-color: $brand-primary !important;\n }\n\n .background-primary-darker {\n background-color: $color-primary-darker !important;\n }\n\n .background-primary.background-dark,\n .background-primary-dark {\n background-color: $color-primary-dark !important;\n }\n\n .background-primary.background-light,\n .background-primary-light {\n background-color: $color-primary-light !important;\n }\n\n .background-primary-lighter {\n background-color: $color-primary-lighter !important;\n }\n\n .background-secondary {\n background-color: $bg-color-secondary !important;\n }\n\n .background-secondary.background-light {\n background-color: $bg-color-secondary !important;\n }\n\n .background-secondary.background-dark {\n background-color: $bg-color-secondary !important;\n }\n\n .background-brand-gradient {\n background-image: $brand-gradient !important;\n }\n\n //Semantic variations\n\n .background-success {\n background-color: $brand-success !important;\n }\n\n .background-success-darker {\n background-color: $color-success-darker !important;\n }\n\n .background-success.background-dark,\n .background-success-dark {\n background-color: $color-success-dark !important;\n }\n\n .background-success.background-light,\n .background-success-light {\n background-color: $color-success-light !important;\n }\n\n .background-success-lighter {\n background-color: $color-success-lighter !important;\n }\n\n .background-warning {\n background-color: $brand-warning !important;\n }\n\n .background-warning-darker {\n background-color: $color-warning-darker !important;\n }\n\n .background-warning.background-dark,\n .background-warning-dark {\n background-color: $color-warning-dark !important;\n }\n\n .background-warning.background-light,\n .background-warning-light {\n background-color: $color-warning-light !important;\n }\n\n .background-warning-lighter {\n background-color: $color-warning-lighter !important;\n }\n\n .background-danger {\n background-color: $brand-danger !important;\n }\n\n .background-danger-darker {\n background-color: $color-danger-darker !important;\n }\n\n .background-danger.background-dark,\n .background-danger-dark {\n background-color: $color-danger-dark !important;\n }\n\n .background-danger.background-light,\n .background-danger-light {\n background-color: $color-danger-light !important;\n }\n\n .background-danger-lighter {\n background-color: $color-danger-lighter !important;\n }\n\n //Bootstrap variations\n\n .background-default {\n background-color: $brand-default !important;\n }\n\n .background-default-darker {\n background-color: $color-default-darker !important;\n }\n\n .background-default-dark {\n background-color: $color-default-dark !important;\n }\n\n .background-default-light {\n background-color: $color-default-light !important;\n }\n\n .background-default-lighter {\n background-color: $color-default-lighter !important;\n }\n\n .background-inverse {\n background-color: $brand-inverse !important;\n }\n\n .background-inverse-darker {\n background-color: $color-inverse-darker !important;\n }\n\n .background-inverse-dark {\n background-color: $color-inverse-dark !important;\n }\n\n .background-inverse-light {\n background-color: $color-inverse-light !important;\n }\n\n .background-inverse-lighter {\n background-color: $color-inverse-lighter !important;\n }\n\n .background-info {\n background-color: $brand-info !important;\n }\n\n .background-info-darker {\n background-color: $color-info-darker !important;\n }\n\n .background-info-dark {\n background-color: $color-info-dark !important;\n }\n\n .background-info-light {\n background-color: $color-info-light !important;\n }\n\n .background-info-lighter {\n background-color: $color-info-lighter !important;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin label() {\n /* ==========================================================================\n Label\n\n Default label combined with Bootstrap label\n ========================================================================== */\n\n .label {\n display: inline-block;\n margin: 0;\n padding: $spacing-smaller $spacing-small;\n text-align: center;\n vertical-align: baseline;\n white-space: nowrap;\n color: #ffffff;\n border-radius: 0.25em;\n font-size: 100%;\n line-height: 1;\n\n .form-control-static {\n font-weight: $font-weight-normal;\n all: unset;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin badge() {\n /* ==========================================================================\n Badge\n\n Override of default Bootstrap badge style\n ========================================================================== */\n\n .badge {\n display: inline-block;\n margin: 0;\n padding: $spacing-smaller $spacing-small;\n text-align: center;\n vertical-align: baseline;\n white-space: nowrap;\n color: #ffffff;\n font-size: 100%;\n line-height: 1;\n\n .form-control-static {\n font-weight: $font-weight-normal;\n all: unset;\n }\n }\n\n /* ==========================================================================\n Badge-web\n\n Widget styles\n ========================================================================== */\n\n .widget-badge {\n color: $label-primary-color;\n background-color: $label-primary-bg;\n }\n\n .widget-badge-clickable {\n cursor: pointer;\n }\n\n .widget-badge.badge:empty {\n display: initial;\n /* Fix padding to stay round */\n padding: $spacing-smaller calc(#{$spacing-small} + 2px);\n }\n\n .widget-badge.label:empty {\n display: initial;\n /* Fix padding to stay square */\n padding: $spacing-smaller calc(#{$spacing-small} + 2px);\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin label-helpers() {\n /* ==========================================================================\n Label\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component including\n badge widget\n ========================================================================== */\n // Color variations\n .label-secondary,\n .label-default {\n color: $label-default-color;\n background-color: $label-default-bg;\n }\n\n .label-primary {\n color: $label-primary-color;\n background-color: $label-primary-bg;\n }\n\n .label-success {\n color: $label-success-color;\n background-color: $label-success-bg;\n }\n\n .label-inverse {\n color: $label-inverse-color;\n background-color: $label-inverse-bg;\n }\n\n .label-info {\n color: $label-info-color;\n background-color: $label-info-bg;\n }\n\n .label-warning {\n color: $label-warning-color;\n background-color: $label-warning-bg;\n }\n\n .label-danger {\n color: $label-danger-color;\n background-color: $label-danger-bg;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin badge-button() {\n /* ==========================================================================\n Badge button\n\n Widget styles\n ========================================================================== */\n .widget-badge-button {\n display: inline-block;\n\n .widget-badge-button-text {\n white-space: nowrap;\n padding-right: 5px;\n }\n\n .badge {\n top: unset;\n display: inline-block;\n margin: 0;\n padding: $spacing-smaller $spacing-small;\n text-align: center;\n vertical-align: baseline;\n white-space: nowrap;\n background-color: $btn-primary-color;\n color: $btn-primary-bg;\n font-size: 100%;\n line-height: 1;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin badge-button-helpers() {\n /* ==========================================================================\n Badge button\n\n Different background components, all managed by variables\n ========================================================================== */\n\n //Badge button color variation\n .btn-secondary,\n .btn-default {\n .badge {\n color: $btn-default-bg;\n background-color: $btn-primary-bg;\n }\n }\n\n .btn-success {\n .badge {\n color: $btn-success-bg;\n }\n }\n\n .btn-warning {\n .badge {\n color: $btn-warning-bg;\n }\n }\n\n .btn-danger {\n .badge {\n color: $btn-danger-bg;\n }\n }\n\n //Badge button bordered variation\n\n .btn-bordered.btn-primary {\n .badge {\n background: $btn-primary-bg;\n color: $btn-primary-color;\n }\n\n &:hover,\n &:focus {\n .badge {\n background-color: $btn-primary-color;\n color: $btn-primary-bg;\n }\n }\n }\n\n .btn-bordered.btn-success {\n .badge {\n background: $btn-success-bg;\n color: $btn-success-color;\n }\n\n &:hover,\n &:focus {\n .badge {\n background-color: $btn-success-color;\n color: $btn-success-bg;\n }\n }\n }\n\n .btn-bordered.btn-warning {\n .badge {\n background: $btn-warning-bg;\n color: $btn-warning-color;\n }\n\n &:hover,\n &:focus {\n .badge {\n background-color: $btn-warning-color;\n color: $btn-warning-bg;\n }\n }\n }\n\n .btn-bordered.btn-danger {\n .badge {\n background: $btn-danger-bg;\n color: $btn-danger-color;\n }\n\n &:hover,\n &:focus {\n .badge {\n background-color: $btn-danger-color;\n color: $btn-danger-bg;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin button() {\n /* ==========================================================================\n Button\n\n Default Bootstrap and Mendix button\n ========================================================================== */\n\n .btn,\n .mx-button {\n display: inline-block;\n margin-bottom: 0;\n padding: 0.6em 1em;\n cursor: pointer;\n -webkit-user-select: none;\n user-select: none;\n transition: all 0.2s ease-in-out;\n text-align: center;\n vertical-align: middle;\n white-space: nowrap;\n color: $btn-default-color;\n border: 1px solid $btn-default-border-color;\n border-radius: $btn-border-radius;\n background-color: $btn-default-bg;\n background-image: none;\n box-shadow: none;\n text-shadow: none;\n font-size: $btn-font-size;\n line-height: $line-height-base;\n\n &:hover,\n &:focus,\n &:active,\n &:active:focus {\n outline: none;\n box-shadow: none;\n }\n\n &[aria-disabled] {\n cursor: not-allowed;\n pointer-events: none;\n opacity: 0.65;\n }\n\n @if $btn-bordered != false {\n @extend .btn-bordered;\n }\n }\n\n // Mendix button link\n .mx-link {\n padding: 0;\n color: $link-color;\n\n &[aria-disabled=\"true\"] {\n cursor: not-allowed;\n pointer-events: none;\n opacity: 0.65;\n }\n }\n\n .link-back {\n color: $font-color-detail;\n\n .glyphicon {\n top: 2px;\n }\n }\n\n // Images and icons in buttons\n .btn,\n .mx-button,\n .mx-link {\n img {\n //height: auto; // MXUI override who set the height on 16px default\n height: calc(#{$font-size-default} + 4px);\n margin-right: 4px;\n vertical-align: text-top;\n }\n }\n\n //== Phone specific\n //-------------------------------------------------------------------------------------------------------------------//\n .profile-phone {\n .btn,\n .mx-link {\n &:active {\n transform: translateY(1px);\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin button-helpers() {\n /* ==========================================================================\n Button\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n // Color variations\n .btn,\n .btn-default {\n @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border-color, $btn-default-bg-hover);\n }\n\n .btn-primary {\n @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border-color, $btn-primary-bg-hover);\n }\n\n .btn-inverse {\n @include button-variant($btn-inverse-color, $btn-inverse-bg, $btn-inverse-border-color, $btn-inverse-bg-hover);\n }\n\n .btn-success {\n @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border-color, $btn-success-bg-hover);\n }\n\n .btn-info {\n @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border-color, $btn-info-bg-hover);\n }\n\n .btn-warning {\n @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border-color, $btn-warning-bg-hover);\n }\n\n .btn-danger {\n @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border-color, $btn-danger-bg-hover);\n }\n\n // Button Sizes\n .btn-lg {\n font-size: $font-size-large;\n\n img {\n height: calc(#{$font-size-small} + 4px);\n }\n }\n\n .btn-sm {\n font-size: $font-size-small;\n\n img {\n height: calc(#{$font-size-small} + 4px);\n }\n }\n\n // Button Image\n .btn-image {\n padding: 0;\n vertical-align: middle;\n border-style: none;\n background-color: transparent;\n\n img {\n display: block; // or else the button doesn't get a width\n height: auto; // Image set height\n }\n\n &:hover,\n &:focus {\n background-color: transparent;\n }\n }\n\n // Icon buttons\n .btn-icon {\n & > img,\n & > .glyphicon {\n margin: 0;\n }\n }\n\n .btn-icon-right {\n display: inline-flex;\n flex-direction: row-reverse;\n align-items: center;\n\n & > img,\n & > .glyphicon {\n top: 0;\n margin-left: 4px;\n }\n }\n\n .btn-icon-top {\n padding-right: 0;\n padding-left: 0;\n\n & > img,\n & > .glyphicon {\n display: block;\n margin: 0 0 4px 0;\n }\n }\n\n .btn-icon-only {\n @extend .btn-icon;\n padding: 0;\n color: $btn-default-icon-color;\n border: none;\n }\n\n .btn-block {\n display: block;\n width: 100%;\n }\n\n .btn-block + .btn-block {\n margin-top: 4px;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin button-variant($color, $background, $border, $hover) {\n @if not $exclude-button {\n color: $color;\n border-color: $border;\n background-color: $background;\n\n &:hover,\n &:focus,\n &:active,\n &.active,\n .open > &.dropdown-toggle {\n color: $color;\n border-color: $hover;\n background-color: $hover;\n }\n &:active,\n &.active,\n .open > &.dropdown-toggle {\n background-image: none;\n }\n &.disabled,\n &[disabled],\n &[aria-disabled],\n fieldset[disabled] {\n &,\n &:hover,\n &:focus,\n &:active,\n &.active {\n border-color: $border;\n background-color: $background;\n }\n }\n // Button bordered\n &.btn-bordered {\n background-color: transparent;\n @if $color != $btn-default-color {\n color: $border;\n }\n\n &:hover,\n &:focus,\n &:active,\n &.active,\n .open > &.dropdown-toggle {\n color: $color;\n border-color: $border;\n background-color: $border;\n }\n }\n // Button as link\n &.btn-link {\n text-decoration: none;\n border-color: transparent;\n background-color: transparent;\n @if $color != $btn-default-color {\n color: $background;\n }\n\n &:hover {\n border-color: $btn-link-bg-hover;\n background-color: $btn-link-bg-hover;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin check-box() {\n /* ==========================================================================\n Check box\n\n Default Mendix check box widget\n ========================================================================== */\n\n .mx-checkbox.label-after {\n flex-wrap: wrap;\n\n .control-label {\n display: flex;\n align-items: center;\n padding: 0;\n }\n }\n\n input[type=\"checkbox\"] {\n position: relative !important; //Remove after mxui merge\n width: 16px;\n height: 16px;\n margin: 0 !important; // Remove after mxui merge\n cursor: pointer;\n -webkit-user-select: none;\n user-select: none;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n transform: translateZ(0);\n\n &:before,\n &:after {\n position: absolute;\n display: block;\n transition: all 0.3s ease;\n }\n\n &:before {\n // Checkbox\n width: 100%;\n height: 100%;\n content: \"\";\n border: 1px solid $form-input-border-color;\n border-radius: $form-input-border-radius;\n background-color: transparent;\n }\n\n &:after {\n // Checkmark\n width: 8px;\n height: 4px;\n margin: 5px 4px;\n transform: rotate(-45deg);\n pointer-events: none;\n border: 2px solid #ffffff;\n border-top: 0;\n border-right: 0;\n }\n\n &:not(:disabled):not(:checked):hover:after {\n content: \"\";\n border-color: $form-input-bg-hover; // color of checkmark on hover\n }\n\n &:checked:before {\n border-color: $form-input-border-focus-color;\n background-color: $form-input-border-focus-color;\n }\n\n &:checked:after {\n content: \"\";\n }\n\n &:disabled:before {\n background-color: $form-input-bg-disabled;\n }\n\n &:checked:disabled:before {\n border-color: transparent;\n background-color: rgba($form-input-border-focus-color, 0.4);\n }\n\n &:disabled:after,\n &:checked:disabled:after {\n border-color: $form-input-bg-disabled;\n }\n\n & + .control-label {\n margin-left: $form-label-gutter;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin grid() {\n /* ==========================================================================\n Grid\n\n Default Mendix grid (used for Mendix data grid)\n ========================================================================== */\n\n .mx-grid {\n padding: 0px;\n border: 0;\n border-radius: 0;\n\n .mx-grid-controlbar {\n margin: 10px 0;\n /* Paging */\n .mx-grid-pagingbar {\n /* Buttons */\n .mx-button {\n padding: 8px;\n color: $grid-paging-color;\n border-color: $grid-paging-border-color;\n background-color: $grid-paging-bg;\n\n &:hover {\n color: $grid-paging-color-hover;\n border-color: $grid-paging-border-color-hover;\n background-color: $grid-paging-bg-hover;\n }\n }\n\n /* Text Paging .. to .. to .. */\n .mx-grid-paging-status {\n padding: 0 8px 8px;\n }\n }\n }\n\n .mx-grid-searchbar {\n margin: 10px 0;\n\n .mx-grid-search-item {\n .mx-grid-search-label {\n vertical-align: middle;\n\n label {\n padding-top: 5px;\n }\n }\n\n .mx-grid-search-input {\n display: inline-flex;\n\n .form-control {\n height: 28px;\n font-size: 11px;\n }\n\n select.form-control {\n padding: 3px;\n vertical-align: middle;\n }\n\n .mx-button {\n height: 28px;\n padding-top: 2px;\n padding-bottom: 2px;\n }\n }\n }\n }\n }\n\n // Remove default border from grid inside a Mendix Dataview\n .mx-dataview .mx-grid {\n border: 0;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin data-grid() {\n /* ==========================================================================\n Data grid default\n\n Default Mendix data grid widget. The data grid shows a list of objects in a grid\n ========================================================================== */\n\n .mx-datagrid {\n table {\n border-width: 0;\n background-color: transparent;\n /* Table header */\n th {\n border-style: solid;\n border-color: $grid-border-color;\n border-top-width: 0;\n border-right: 0;\n border-bottom-width: 1px;\n border-left: 0;\n background-color: $grid-bg-header;\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n vertical-align: middle;\n\n .mx-datagrid-head-caption {\n white-space: normal;\n }\n }\n\n /* Table Body */\n tbody tr {\n td {\n @include transition();\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n vertical-align: middle;\n border-width: 0;\n border-color: $grid-border-color;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n background-color: $grid-bg;\n\n &:focus {\n outline: none;\n }\n\n /* Text without spaces */\n .mx-datagrid-data-wrapper {\n text-overflow: ellipsis;\n }\n }\n\n &.selected td,\n &.selected:hover td {\n color: $grid-selected-color;\n background-color: $grid-bg-selected !important;\n }\n }\n\n /* Table Footer */\n tfoot {\n > tr > th {\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n border-width: 0;\n background-color: $grid-footer-bg;\n }\n\n > tr > td {\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n border-width: 0;\n background-color: $grid-bg;\n font-weight: $font-weight-bold;\n }\n }\n\n & *:focus {\n outline: 0;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin transition(\n $style: initial,\n $delay: 0s,\n $duration: 0.3s,\n $property: all,\n $timing-function: cubic-bezier(0.4, 0, 0.2, 1)\n) {\n @if not $exclude-animations {\n transition: $property $duration $delay $timing-function;\n transform-style: $style;\n }\n}\n\n@mixin ripple($color: #000, $transparency: 10%, $scale: 10) {\n @if not $exclude-animations {\n position: relative;\n overflow: hidden;\n transform: translate3d(0, 0, 0);\n\n &:after {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n pointer-events: none;\n background-image: radial-gradient(circle, $color $transparency, transparent $transparency);\n background-repeat: no-repeat;\n background-position: 50%;\n transform: scale($scale, $scale);\n opacity: 0;\n transition: transform 0.5s, opacity 1s;\n }\n\n &:active:after {\n transform: scale(0, 0);\n opacity: 0.1;\n transition: 0s;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin data-grid-helpers() {\n /* ==========================================================================\n Data grid default\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n // Striped style\n .datagrid-striped.mx-datagrid {\n table {\n th {\n border-width: 0;\n }\n\n tbody tr {\n td {\n border-top-width: 0;\n }\n\n &:nth-child(odd) td {\n background-color: $grid-bg-striped;\n }\n }\n }\n }\n\n // Bordered style\n .datagrid-bordered.mx-datagrid {\n table {\n border: 1px solid;\n\n th {\n border: 1px solid $grid-border-color;\n }\n\n tbody tr {\n td {\n border: 1px solid $grid-border-color;\n }\n }\n }\n\n tfoot {\n > tr > th {\n border-width: 0;\n background-color: $grid-footer-bg;\n }\n\n > tr > td {\n border-width: 1px;\n }\n }\n }\n\n // Transparent style so you can see the background\n .datagrid-transparent.mx-datagrid {\n table {\n background-color: transparent;\n\n tbody tr {\n &:nth-of-type(odd) {\n background-color: transparent;\n }\n\n td {\n background-color: transparent;\n }\n }\n }\n }\n\n // Hover style activated\n .datagrid-hover.mx-datagrid {\n table {\n tbody tr {\n &:hover td {\n background-color: $grid-bg-hover !important;\n }\n\n &.selected:hover td {\n background-color: $grid-bg-selected-hover !important;\n }\n }\n }\n }\n\n // Datagrid Row Sizes\n .datagrid-lg.mx-datagrid {\n table {\n th {\n padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2)\n ($grid-padding-left * 2);\n }\n\n tbody tr {\n td {\n padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2)\n ($grid-padding-left * 2);\n }\n }\n }\n }\n\n .datagrid-sm.mx-datagrid {\n table {\n th {\n padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2)\n ($grid-padding-left / 2);\n }\n\n tbody tr {\n td {\n padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2)\n ($grid-padding-left/ 2);\n }\n }\n }\n }\n\n // Datagrid Full Search\n // Default Mendix Datagrid Widget with adjusted search field. Only 1 search field is allowed\n .datagrid-fullsearch.mx-grid {\n .mx-grid-search-button {\n @extend .btn-primary;\n }\n\n .mx-grid-reset-button {\n display: none;\n }\n\n .mx-grid-search-item {\n display: block;\n }\n\n .mx-grid-search-label {\n display: none;\n }\n\n .mx-grid-searchbar {\n .mx-grid-search-controls {\n position: absolute;\n right: 0;\n }\n\n .mx-grid-search-input {\n width: 80%;\n padding-left: 0;\n\n .btn,\n .form-control {\n height: 35px;\n font-size: 12px;\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin data-view() {\n /* ==========================================================================\n Data view\n\n Default Mendix data view widget. The data view is used for showing the contents of exactly one object\n ========================================================================== */\n\n .mx-dataview {\n /* Dataview-content gives problems for nexted layout grid containers */\n > .mx-dataview-content > .mx-container-nested {\n > .row {\n margin-right: 0;\n margin-left: 0;\n }\n }\n\n /* Dataview empty message */\n .mx-dataview-message {\n color: $dataview-emptymessage-color;\n background: $dataview-emptymessage-bg;\n }\n }\n\n .mx-dataview-controls {\n margin-top: $spacing-medium;\n padding: $spacing-medium 0 0;\n border-top: 1px solid $dataview-controls-border-color;\n border-radius: 0;\n background-color: $dataview-controls-bg;\n /* Buttons */\n .mx-button {\n margin-right: $spacing-small;\n margin-bottom: 0;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n background-color: inherit;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin date-picker() {\n /* ==========================================================================\n Date picker\n\n Default Mendix date picker widget\n ========================================================================== */\n\n .mx-calendar {\n /* (must be higher than popup z-index) */\n z-index: 10010 !important;\n padding: 8px;\n font-size: 12px;\n background: $bg-color;\n border-radius: $border-radius-default;\n border: 1px solid $border-color-default;\n box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.06);\n\n .mx-calendar-month-header {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n margin: 0 3px 10px 3px;\n }\n\n .mx-calendar-month-next,\n .mx-calendar-month-previous,\n .mx-calendar-month-dropdown {\n border: 0;\n cursor: pointer;\n background: transparent;\n }\n\n .mx-calendar-month-next,\n .mx-calendar-month-previous {\n &:hover {\n color: $brand-primary;\n }\n }\n\n .mx-calendar-month-dropdown {\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n\n .mx-calendar-month-current:first-child {\n margin-right: 10px;\n }\n }\n\n th {\n color: $brand-primary;\n }\n\n th,\n td {\n width: 35px;\n height: 35px;\n text-align: center;\n }\n\n td {\n color: $font-color-default;\n\n &:hover {\n cursor: pointer;\n border-radius: 50%;\n color: $brand-primary;\n background-color: $brand-default;\n }\n }\n\n .mx-calendar-day-month-next,\n .mx-calendar-day-month-previous {\n color: lighten($font-color-default, 45%);\n }\n\n .mx-calendar-day-selected,\n .mx-calendar-day-selected:hover {\n color: #fff;\n border-radius: 50%;\n background: $brand-primary;\n }\n\n //\n\n .mx-calendar-year-switcher {\n text-align: center;\n margin-top: 10px;\n color: lighten($brand-primary, 30%);\n\n span.mx-calendar-year-selected {\n color: $brand-primary;\n margin-left: 10px;\n margin-right: 10px;\n }\n\n span:hover {\n cursor: pointer;\n text-decoration: underline;\n background-color: transparent;\n }\n }\n }\n\n .mx-calendar-month-dropdown-options {\n /* (must be higher than popup z-index) */\n z-index: 10020 !important;\n position: absolute;\n top: 25px;\n padding: 2px 10px;\n border-radius: $border-radius-default;\n background-color: $bg-color;\n\n div {\n cursor: pointer;\n font-size: 12px;\n padding: 2px 0;\n\n &:hover,\n &:focus {\n color: $brand-primary;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin header() {\n /* ==========================================================================\n Header\n\n Default Mendix mobile header\n ========================================================================== */\n\n .mx-header {\n z-index: 100;\n display: flex;\n width: 100%;\n height: $m-header-height;\n padding: 0;\n text-align: initial;\n color: $m-header-color;\n background-color: $m-header-bg;\n box-shadow: 0px 2px 2px rgba(194, 196, 201, 0.30354);\n\n // Reset mxui\n div.mx-header-left,\n div.mx-header-right {\n position: relative;\n top: initial;\n right: initial;\n left: initial;\n display: flex;\n align-items: center;\n width: 25%;\n height: 100%;\n\n .mx-placeholder {\n display: flex;\n align-items: center;\n height: 100%;\n }\n }\n\n div.mx-header-left .mx-placeholder {\n order: 1;\n\n .mx-placeholder {\n justify-content: flex-start;\n }\n }\n\n div.mx-header-center {\n overflow: hidden;\n flex: 1;\n order: 2;\n text-align: center;\n\n .mx-title {\n overflow: hidden;\n width: 100%;\n margin: 0;\n text-overflow: ellipsis;\n color: $m-header-color;\n font-size: $m-header-title-size;\n line-height: $m-header-height;\n }\n }\n\n div.mx-header-right {\n order: 3;\n\n .mx-placeholder {\n justify-content: flex-end;\n }\n }\n\n // Content magic\n .mx-link {\n display: flex;\n align-items: center;\n height: 100%;\n transition: all 0.2s;\n text-decoration: none;\n\n .glyphicon {\n top: 0;\n font-size: 23px;\n }\n\n &:active {\n transform: translateY(1px);\n color: $link-hover-color;\n }\n }\n\n .mx-link,\n .btn,\n img {\n padding: 0 $spacing-medium;\n }\n\n .mx-sidebartoggle {\n font-size: 24px;\n line-height: $m-header-height;\n\n img {\n height: 20px;\n }\n }\n }\n\n // RTL support\n body[dir=\"rtl\"] {\n .mx-header-left {\n order: 3;\n }\n\n .mx-header-right {\n order: 1;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin glyphicon() {\n /* ==========================================================================\n Glyphicon\n\n Default Mendix glyphicon\n ========================================================================== */\n\n .mx-glyphicon {\n &:before {\n display: inline-block;\n margin-top: -0.2em;\n margin-right: 0.4555555em;\n vertical-align: middle;\n font-family: \"Glyphicons Halflings\";\n font-weight: $font-weight-normal;\n font-style: normal;\n line-height: inherit;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin group-box() {\n /* ==========================================================================\n Group box\n\n Default Mendix group box\n ========================================================================== */\n\n .mx-groupbox {\n margin: 0;\n\n > .mx-groupbox-header {\n margin: 0;\n color: $groupbox-default-color;\n border-width: 1px 1px 0 1px;\n border-style: solid;\n border-color: $groupbox-default-bg;\n background: $groupbox-default-bg;\n font-size: $font-size-h5;\n border-radius: $border-radius-default $border-radius-default 0 0;\n padding: $spacing-small * 1.5 $spacing-medium;\n\n .mx-groupbox-collapse-icon {\n margin-top: 0.1em;\n }\n }\n\n // Header options\n > h1.mx-groupbox-header {\n font-size: $font-size-h1;\n }\n\n > h2.mx-groupbox-header {\n font-size: $font-size-h2;\n }\n\n > h3.mx-groupbox-header {\n font-size: $font-size-h3;\n }\n\n > h4.mx-groupbox-header {\n font-size: $font-size-h4;\n }\n\n > h5.mx-groupbox-header {\n font-size: $font-size-h5;\n }\n\n > h6.mx-groupbox-header {\n font-size: $font-size-h6;\n }\n\n > .mx-groupbox-body {\n padding: $spacing-small * 1.5 $spacing-medium;\n border-width: 1px;\n border-style: solid;\n border-color: $groupbox-default-bg;\n background-color: #ffffff;\n border-radius: $border-radius-default;\n }\n\n .mx-groupbox-header + .mx-groupbox-body {\n border-top: none;\n }\n\n &.collapsed > .mx-groupbox-header {\n }\n }\n\n //With header\n .mx-groupbox-header ~ .mx-groupbox-body {\n border-radius: 0 0 $border-radius-default $border-radius-default;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin group-box-helpers() {\n /* ==========================================================================\n Group box\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n // Color variations\n .groupbox-secondary,\n .groupbox-default {\n @include groupbox-variant($groupbox-default-color, $groupbox-default-bg);\n }\n\n .groupbox-primary {\n @include groupbox-variant($groupbox-primary-color, $groupbox-primary-bg);\n }\n\n // Success appears as green\n .groupbox-success {\n @include groupbox-variant($groupbox-success-color, $groupbox-success-bg);\n }\n\n // Warning appears as orange\n .groupbox-warning {\n @include groupbox-variant($groupbox-warning-color, $groupbox-warning-bg);\n }\n\n // Danger and error appear as red\n .groupbox-danger {\n @include groupbox-variant($groupbox-danger-color, $groupbox-danger-bg);\n }\n\n .groupbox-transparent {\n > .mx-groupbox-header {\n padding: $spacing-small * 1.5 0;\n color: $gray-darker;\n border-style: none;\n background: transparent;\n font-weight: $font-weight-semibold;\n }\n\n .mx-groupbox-body {\n padding: $spacing-small 0;\n border-radius: 0;\n border: 0;\n border-bottom: 1px solid $groupbox-default-bg;\n background-color: transparent;\n }\n\n .mx-groupbox-collapse-icon {\n color: $brand-primary;\n }\n }\n\n // Callout Look and Feel\n .groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n border: 0;\n background-color: $callout-primary-bg;\n }\n\n > .mx-groupbox-header {\n color: $callout-primary-color;\n }\n\n .mx-groupbox-header + .mx-groupbox-body {\n padding-top: 0;\n }\n }\n\n .groupbox-success.groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n background-color: $callout-success-bg;\n }\n\n > .mx-groupbox-header {\n color: $callout-success-color;\n }\n }\n\n .groupbox-warning.groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n background-color: $callout-warning-bg;\n }\n\n > .mx-groupbox-header {\n color: $callout-warning-color;\n }\n }\n\n .groupbox-danger.groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n background-color: $callout-danger-bg;\n }\n\n > .mx-groupbox-header {\n color: $callout-danger-color;\n }\n }\n\n //Bootstrap variations\n\n .groupbox-info {\n @include groupbox-variant($groupbox-info-color, $groupbox-info-bg);\n }\n\n .groupbox-inverse {\n @include groupbox-variant($groupbox-inverse-color, $groupbox-inverse-bg);\n }\n\n .groupbox-white {\n @include groupbox-variant($groupbox-white-color, $groupbox-white-bg);\n }\n\n .groupbox-info.groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n background-color: $callout-info-bg;\n }\n\n > .mx-groupbox-header {\n color: $callout-info-color;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin groupbox-variant($color, $background) {\n @if not $exclude-group-box {\n > .mx-groupbox-header {\n color: $color;\n border-color: $background;\n background: $background;\n }\n > .mx-groupbox-body {\n border-color: $background;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n//\n// ██████╗ █████╗ ███████╗██╗ ██████╗\n// ██╔══██╗██╔══██╗██╔════╝██║██╔════╝\n// ██████╔╝███████║███████╗██║██║\n// ██╔══██╗██╔══██║╚════██║██║██║\n// ██████╔╝██║ ██║███████║██║╚██████╗\n// ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═════╝\n//\n\n//== Gray Shades\n//## Different gray shades to be used for our variables and components\n$gray-darker: #3b4251 !default;\n$gray-dark: #606671 !default;\n$gray: #787d87 !default;\n$gray-light: #6c7180 !default;\n$gray-primary: #ced0d3 !default;\n$gray-lighter: #f8f8f8 !default;\n\n//== Step 1: Brand Colors\n$brand-default: $gray-primary !default;\n$brand-primary: #264ae5 !default;\n$brand-success: #3cb33d !default;\n$brand-warning: #eca51c !default;\n$brand-danger: #e33f4e !default;\n\n$brand-logo: false !default;\n$brand-logo-height: 26px !default;\n$brand-logo-width: 26px !default; // Only used for CSS brand logo\n\n//== Step 2: UI Customization\n\n// Default Font Size & Color\n$font-size-default: 14px !default;\n$font-color-default: #6c717e !default;\n\n// Global Border Color\n$border-color-default: #ced0d3 !default;\n$border-radius-default: 5px !default;\n\n// Topbar\n$topbar-bg: #fff !default;\n$topbar-minimalheight: 60px !default;\n$topbar-border-color: $border-color-default !default;\n\n// Topbar mobile\n$m-header-height: 45px !default;\n$m-header-bg: $brand-primary !default;\n$m-header-color: #fff !default;\n$m-header-title-size: 16px !default;\n\n// Navbar Brand Name / For your company, product, or project name (used in layouts/base/)\n$navbar-brand-name: $font-color-default !default;\n\n// Background Colors\n// Backgrounds\n$bg-color: #f8f8f8 !default;\n$bg-color-secondary: #fff !default;\n\n// Default Link Color\n$link-color: $brand-primary !default;\n$link-hover-color: darken($link-color, 15%) !default;\n\n//\n// █████╗ ██████╗ ██╗ ██╗ █████╗ ███╗ ██╗ ██████╗███████╗██████╗\n// ██╔══██╗██╔══██╗██║ ██║██╔══██╗████╗ ██║██╔════╝██╔════╝██╔══██╗\n// ███████║██║ ██║██║ ██║███████║██╔██╗ ██║██║ █████╗ ██║ ██║\n// ██╔══██║██║ ██║╚██╗ ██╔╝██╔══██║██║╚██╗██║██║ ██╔══╝ ██║ ██║\n// ██║ ██║██████╔╝ ╚████╔╝ ██║ ██║██║ ╚████║╚██████╗███████╗██████╔╝\n// ╚═╝ ╚═╝╚═════╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝\n//\n\n//== Typography\n//## Change your font family, weight, line-height, headings and more (used in components/typography)\n\n// Font Family Import (Used for google font plugin in theme creater)\n$font-family-import: \"resources/fonts/open-sans/open-sans.css\" !default;\n\n// Font Family / False = fallback from Bootstrap (Helvetica Neue)\n$font-family-base: \"Open Sans\", sans-serif !default;\n\n// Font Sizes\n$font-size-large: 18px !default;\n$font-size-small: 12px !default;\n\n// Font Weights\n$font-weight-light: 100 !default;\n$font-weight-normal: normal !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: bold !default;\n\n// Font Size Headers\n$font-size-h1: 31px !default;\n$font-size-h2: 26px !default;\n$font-size-h3: 24px !default;\n$font-size-h4: 18px !default;\n$font-size-h5: $font-size-default !default;\n$font-size-h6: 12px !default;\n\n// Font Weight Headers\n$font-weight-header: $font-weight-semibold !default;\n\n// Line Height\n$line-height-base: 1.428571429 !default;\n\n// Spacing\n$font-header-margin: 0 0 8px 0 !default;\n\n// Text Colors\n$font-color-detail: #6c717e !default;\n$font-color-header: #0a1326 !default;\n\n//== Navigation\n//## Used in components/navigation\n\n// Default Navigation styling\n$navigation-item-height: unset !default;\n$navigation-item-padding: 16px !default;\n\n$navigation-font-size: $font-size-default !default;\n$navigation-sub-font-size: $font-size-small !default;\n$navigation-glyph-size: 20px !default; // For glyphicons that you can select in the Mendix Modeler\n\n$navigation-color: #fff !default;\n$navigation-color-hover: #fff !default;\n$navigation-color-active: #fff !default;\n\n$navigation-sub-color: #aaa !default;\n$navigation-sub-color-hover: $brand-primary !default;\n$navigation-sub-color-active: $brand-primary !default;\n\n// Navigation Sidebar\n$navsidebar-font-size: $font-size-default !default;\n$navsidebar-sub-font-size: $font-size-small !default;\n$navsidebar-glyph-size: 20px !default; // For glyphicons that you can select in the Mendix Modeler\n\n$navsidebar-color: #fff !default;\n$navsidebar-color-hover: #fff !default;\n$navsidebar-color-active: #fff !default;\n\n$navsidebar-sub-color: #aaa !default;\n$navsidebar-sub-color-hover: $brand-primary !default;\n$navsidebar-sub-color-active: $brand-primary !default;\n\n$navsidebar-width-closed: 52px !default;\n$navsidebar-width-open: 232px !default;\n\n// Navigation topbar\n$navtopbar-font-size: $font-size-default !default;\n$navtopbar-sub-font-size: $font-size-small !default;\n$navtopbar-glyph-size: 1.2em !default; // For glyphicons that you can select in the Mendix Modeler\n\n$navtopbar-bg: $topbar-bg !default;\n$navtopbar-bg-hover: darken($navtopbar-bg, 4) !default;\n$navtopbar-bg-active: darken($navtopbar-bg, 8) !default;\n$navtopbar-color: $font-color-default !default;\n$navtopbar-color-hover: $navtopbar-color !default;\n$navtopbar-color-active: $navtopbar-color !default;\n\n$navtopbar-sub-bg: lighten($navtopbar-bg, 4) !default;\n$navtopbar-sub-bg-hover: $navtopbar-sub-bg !default;\n$navtopbar-sub-bg-active: $navtopbar-sub-bg !default;\n$navtopbar-sub-color: #aaa !default;\n$navtopbar-sub-color-hover: $brand-primary !default;\n$navtopbar-sub-color-active: $brand-primary !default;\n\n//== Cards\n// Shadow color\n$shadow-color-border: rgba($gray-primary, 0.5);\n$shadow-color: rgba($gray-primary, 0.66);\n\n//Shadow size\n$shadow-small: 0 2px 4px 0;\n$shadow-medium: 0 5px 7px 0;\n$shadow-large: 0 8px 10px 0;\n\n//## Used in layouts/base\n$navtopbar-border-color: $topbar-border-color !default;\n\n//== Form\n//## Used in components/inputs\n\n// Values that can be used default | lined\n$form-input-style: default !default;\n\n// Form Label\n$form-label-size: $font-size-default !default;\n$form-label-weight: $font-weight-semibold !default;\n$form-label-gutter: 8px !default;\n\n// Form Input dimensions\n$form-input-height: auto !default;\n$form-input-padding-y: 8px !default;\n$form-input-padding-x: 8px !default;\n$form-input-static-padding-y: 8px !default;\n$form-input-static-padding-x: 0 !default;\n$form-input-font-size: $form-label-size !default;\n$form-input-line-height: $line-height-base !default;\n$form-input-border-radius: $border-radius-default !default;\n\n// Form Input styling\n$form-input-bg: #fff !default;\n$form-input-bg-focus: #fff !default;\n$form-input-bg-hover: $gray-primary !default;\n$form-input-bg-disabled: $bg-color !default;\n$form-input-color: $font-color-default !default;\n$form-input-focus-color: $form-input-color !default;\n$form-input-disabled-color: #9da1a8 !default;\n$form-input-placeholder-color: #6c717c !default;\n$form-input-border-color: $gray-primary !default;\n$form-input-border-focus-color: $brand-primary !default;\n\n// Form Input Static styling\n$form-input-static-border-color: $gray-primary !default;\n\n// Form Group\n$form-group-margin-bottom: 16px !default;\n$form-group-gutter: 16px !default;\n\n//== Buttons\n//## Define background-color, border-color and text. Used in components/buttons\n\n// Default button style\n$btn-font-size: 14px !default;\n$btn-bordered: false !default; // Default value false, set to true if you want this effect\n$btn-border-radius: $border-radius-default !default;\n\n// Button Background Color\n$btn-default-bg: #fff !default;\n$btn-primary-bg: $brand-primary !default;\n$btn-success-bg: $brand-success !default;\n$btn-warning-bg: $brand-warning !default;\n$btn-danger-bg: $brand-danger !default;\n\n// Button Border Color\n$btn-default-border-color: $gray-primary !default;\n$btn-primary-border-color: $brand-primary !default;\n$btn-success-border-color: $brand-success !default;\n$btn-warning-border-color: $brand-warning !default;\n$btn-danger-border-color: $brand-danger !default;\n\n// Button Text Color\n$btn-default-color: $brand-primary !default;\n$btn-primary-color: #fff !default;\n$btn-success-color: #fff !default;\n$btn-warning-color: #fff !default;\n$btn-danger-color: #fff !default;\n\n// Button Icon Color\n$btn-default-icon-color: $gray !default;\n\n// Button Background Color\n$btn-default-bg-hover: $btn-default-border-color !default;\n$btn-primary-bg-hover: mix($btn-primary-bg, black, 80%) !default;\n$btn-success-bg-hover: mix($btn-success-bg, black, 80%) !default;\n$btn-warning-bg-hover: mix($btn-warning-bg, black, 80%) !default;\n$btn-danger-bg-hover: mix($btn-danger-bg, black, 80%) !default;\n$btn-link-bg-hover: $gray-lighter !default;\n\n//== Header blocks\n//## Define look and feel over multible building blocks that serve as header\n\n$header-min-height: 240px !default;\n$header-bg-color: $brand-primary !default;\n$header-bgimage-filter: brightness(60%) !default;\n$header-text-color: #fff !default;\n$header-text-color-detail: rgba(0, 0, 0, 0.2) !default;\n\n//\n// ███████╗██╗ ██╗██████╗ ███████╗██████╗ ████████╗\n// ██╔════╝╚██╗██╔╝██╔══██╗██╔════╝██╔══██╗╚══██╔══╝\n// █████╗ ╚███╔╝ ██████╔╝█████╗ ██████╔╝ ██║\n// ██╔══╝ ██╔██╗ ██╔═══╝ ██╔══╝ ██╔══██╗ ██║\n// ███████╗██╔╝ ██╗██║ ███████╗██║ ██║ ██║\n// ╚══════╝╚═╝ ╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝\n//\n\n//== Color variations\n//## These variations are used to support several other variables and components\n\n// Color variations\n$color-default-darker: mix($brand-default, black, 60%) !default;\n$color-default-dark: mix($brand-default, black, 70%) !default;\n$color-default-light: mix($brand-default, white, 20%) !default;\n$color-default-lighter: mix($brand-default, white, 10%) !default;\n\n$color-primary-darker: mix($brand-primary, black, 60%) !default;\n$color-primary-dark: mix($brand-primary, black, 70%) !default;\n$color-primary-light: mix($brand-primary, white, 20%) !default;\n$color-primary-lighter: mix($brand-primary, white, 10%) !default;\n\n$color-success-darker: mix($brand-success, black, 60%) !default;\n$color-success-dark: mix($brand-success, black, 70%) !default;\n$color-success-light: mix($brand-success, white, 20%) !default;\n$color-success-lighter: mix($brand-success, white, 10%) !default;\n\n$color-warning-darker: mix($brand-warning, black, 60%) !default;\n$color-warning-dark: mix($brand-warning, black, 70%) !default;\n$color-warning-light: mix($brand-warning, white, 20%) !default;\n$color-warning-lighter: mix($brand-warning, white, 10%) !default;\n\n$color-danger-darker: mix($brand-danger, black, 60%) !default;\n$color-danger-dark: mix($brand-danger, black, 70%) !default;\n$color-danger-light: mix($brand-danger, white, 20%) !default;\n$color-danger-lighter: mix($brand-danger, white, 10%) !default;\n\n$brand-gradient: linear-gradient(to right top, #264ae5, #2239c5, #1b29a6, #111988, #03096c) !default;\n\n//== Grids\n//## Used for Datagrid, Templategrid, Listview & Tables (see components folder)\n\n// Default Border Colors\n$grid-border-color: $border-color-default !default;\n\n// Spacing\n// Default\n$grid-padding-top: 16px !default;\n$grid-padding-right: 16px !default;\n$grid-padding-bottom: 16px !default;\n$grid-padding-left: 16px !default;\n\n// Listview\n$listview-padding-top: 16px !default;\n$listview-padding-right: 16px !default;\n$listview-padding-bottom: 16px !default;\n$listview-padding-left: 16px !default;\n\n// Background Colors\n$grid-bg: transparent !default;\n$grid-bg-header: transparent !default; // Grid Headers\n$grid-bg-hover: mix($grid-border-color, #fff, 20%) !default;\n$grid-bg-selected: mix($grid-border-color, #fff, 30%) !default;\n$grid-bg-selected-hover: mix($grid-border-color, #fff, 50%) !default;\n\n// Striped Background Color\n$grid-bg-striped: mix($grid-border-color, #fff, 10%) !default;\n\n// Background Footer Color\n$grid-footer-bg: $gray-primary !default;\n\n// Text Color\n$grid-selected-color: $font-color-default !default;\n\n// Paging Colors\n$grid-paging-bg: transparent !default;\n$grid-paging-bg-hover: transparent !default;\n$grid-paging-border-color: transparent !default;\n$grid-paging-border-color-hover: transparent !default;\n$grid-paging-color: $gray-light !default;\n$grid-paging-color-hover: $brand-primary !default;\n\n//== Tabs\n//## Default variables for Tab Container Widget (used in components/tabcontainer)\n\n// Text Color\n$tabs-color: $font-color-detail !default;\n$tabs-color-active: $font-color-default !default;\n$tabs-lined-color-active: $font-color-default !default;\n\n$tabs-lined-border-width: 3px !default;\n\n// Border Color\n$tabs-border-color: $border-color-default !default;\n$tabs-lined-border-color: $brand-primary !default;\n\n// Background Color\n$tabs-bg: transparent !default;\n$tabs-bg-pills: #e7e7e9 !default;\n$tabs-bg-hover: lighten($tabs-border-color, 5) !default;\n$tabs-bg-active: $brand-primary !default;\n\n//== Modals\n//## Default Mendix Modal, Blocking Modal and Login Modal (used in components/modals)\n\n// Background Color\n$modal-header-bg: transparent !default;\n\n// Border Color\n$modal-header-border-color: $border-color-default !default;\n\n// Text Color\n$modal-header-color: $font-color-default !default;\n\n//== Dataview\n//## Default variables for Dataview Widget (used in components/dataview)\n\n// Controls\n$dataview-controls-bg: transparent !default;\n$dataview-controls-border-color: $border-color-default !default;\n\n// Empty Message\n$dataview-emptymessage-bg: $bg-color !default;\n$dataview-emptymessage-color: $font-color-default !default;\n\n//== Alerts\n//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts)\n\n// Background Color\n$alert-primary-bg: $color-primary-lighter !default;\n$alert-secondary-bg: $color-primary-lighter !default;\n$alert-success-bg: $color-success-lighter !default;\n$alert-warning-bg: $color-warning-lighter !default;\n$alert-danger-bg: $color-danger-lighter !default;\n\n// Text Color\n$alert-primary-color: $color-primary-darker !default;\n$alert-secondary-color: $color-primary-darker !default;\n$alert-success-color: $color-success-darker !default;\n$alert-warning-color: $color-warning-darker !default;\n$alert-danger-color: $color-danger-darker !default;\n\n// Border Color\n$alert-primary-border-color: $color-primary-dark !default;\n$alert-secondary-border-color: $color-primary-dark !default;\n$alert-success-border-color: $color-success-dark !default;\n$alert-warning-border-color: $color-warning-dark !default;\n$alert-danger-border-color: $color-danger-dark !default;\n\n//== Wizard\n\n$wizard-step-height: 48px !default;\n$wizard-step-number-size: 64px !default;\n$wizard-step-number-font-size: $font-size-h3 !default;\n\n//Wizard states\n$wizard-default: #fff !default;\n$wizard-active: $brand-primary !default;\n$wizard-visited: $brand-success !default;\n\n//Wizard step states\n$wizard-default-bg: $wizard-default !default;\n$wizard-default-color: $wizard-default !default;\n$wizard-default-step-color: $font-color-default !default;\n$wizard-default-border-color: $border-color-default !default;\n\n$wizard-active-bg: $wizard-active !default;\n$wizard-active-color: $wizard-default !default;\n$wizard-active-step-color: $wizard-active !default;\n$wizard-active-border-color: $wizard-active !default;\n\n$wizard-visited-bg: $wizard-visited !default;\n$wizard-visited-color: $wizard-default !default;\n$wizard-visited-step-color: $wizard-visited !default;\n$wizard-visited-border-color: $wizard-visited !default;\n\n//== Labels\n//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels)\n\n// Background Color\n$label-default-bg: $brand-default !default;\n$label-primary-bg: $brand-primary !default;\n$label-success-bg: $brand-success !default;\n$label-warning-bg: $brand-warning !default;\n$label-danger-bg: $brand-danger !default;\n\n// Border Color\n$label-default-border-color: $brand-default !default;\n$label-primary-border-color: $brand-primary !default;\n$label-success-border-color: $brand-success !default;\n$label-warning-border-color: $brand-warning !default;\n$label-danger-border-color: $brand-danger !default;\n\n// Text Color\n$label-default-color: $font-color-default !default;\n$label-primary-color: #fff !default;\n$label-success-color: #fff !default;\n$label-warning-color: #fff !default;\n$label-danger-color: #fff !default;\n\n//== Groupbox\n//## Default variables for Groupbox Widget (used in components/groupbox)\n\n// Background Color\n$groupbox-default-bg: $gray-primary !default;\n$groupbox-primary-bg: $brand-primary !default;\n$groupbox-success-bg: $brand-success !default;\n$groupbox-warning-bg: $brand-warning !default;\n$groupbox-danger-bg: $brand-danger !default;\n$groupbox-white-bg: #fff !default;\n\n// Text Color\n$groupbox-default-color: $font-color-default !default;\n$groupbox-primary-color: #fff !default;\n$groupbox-success-color: #fff !default;\n$groupbox-warning-color: #fff !default;\n$groupbox-danger-color: #fff !default;\n$groupbox-white-color: $font-color-default !default;\n\n//== Callout (groupbox) Colors\n//## Extended variables for Groupbox Widget (used in components/groupbox)\n\n// Text and Border Color\n$callout-default-color: $font-color-default !default;\n$callout-primary-color: $brand-primary !default;\n$callout-success-color: $brand-success !default;\n$callout-warning-color: $brand-warning !default;\n$callout-danger-color: $brand-danger !default;\n\n// Background Color\n$callout-default-bg: $color-default-lighter !default;\n$callout-primary-bg: $color-primary-lighter !default;\n$callout-success-bg: $color-success-lighter !default;\n$callout-warning-bg: $color-warning-lighter !default;\n$callout-danger-bg: $color-danger-lighter !default;\n\n//== Timeline\n//## Extended variables for Timeline Widget\n// Colors\n$timeline-icon-color: $brand-primary !default;\n$timeline-border-color: $border-color-default !default;\n$timeline-event-time-color: $brand-primary !default;\n\n// Sizes\n$timeline-icon-size: 18px !default;\n$timeline-image-size: 36px !default;\n\n//Timeline grouping\n$timeline-grouping-size: 120px !default;\n$timeline-grouping-border-radius: 30px !default;\n$timeline-grouping-border-color: $timeline-border-color !default;\n\n//== Accordions\n//## Extended variables for Accordion Widget\n\n// Default\n$accordion-header-default-bg: $bg-color-secondary !default;\n$accordion-header-default-bg-hover: $bg-color !default;\n$accordion-header-default-color: $font-color-header !default;\n$accordion-default-border-color: $border-color-default !default;\n\n$accordion-bg-striped: $grid-bg-striped !default;\n$accordion-bg-striped-hover: $grid-bg-selected !default;\n\n// Semantic background colors\n$accordion-header-primary-bg: $btn-primary-bg !default;\n$accordion-header-secondary-bg: $btn-default-bg !default;\n$accordion-header-success-bg: $btn-success-bg !default;\n$accordion-header-warning-bg: $btn-warning-bg !default;\n$accordion-header-danger-bg: $btn-danger-bg !default;\n\n$accordion-header-primary-bg-hover: $btn-primary-bg-hover !default;\n$accordion-header-secondary-bg-hover: $btn-default-bg-hover !default;\n$accordion-header-success-bg-hover: $btn-success-bg-hover !default;\n$accordion-header-warning-bg-hover: $btn-warning-bg-hover !default;\n$accordion-header-danger-bg-hover: $btn-danger-bg-hover !default;\n\n// Semantic text colors\n$accordion-header-primary-color: $btn-primary-color !default;\n$accordion-header-secondary-color: $btn-default-color !default;\n$accordion-header-success-color: $btn-success-color !default;\n$accordion-header-warning-color: $btn-warning-color !default;\n$accordion-header-danger-color: $btn-danger-color !default;\n\n// Semantic border colors\n$accordion-primary-border-color: $btn-primary-border-color !default;\n$accordion-secondary-border-color: $btn-default-border-color !default;\n$accordion-success-border-color: $btn-success-border-color !default;\n$accordion-warning-border-color: $btn-warning-border-color !default;\n$accordion-danger-border-color: $btn-danger-border-color !default;\n\n//== Spacing\n//## Advanced layout options (used in base/mixins/default-spacing)\n\n// Smallest spacing\n$spacing-smallest: 2px !default;\n\n// Smaller spacing\n$spacing-smaller: 4px !default;\n\n// Small spacing\n$spacing-small: 8px !default;\n\n// Medium spacing\n$spacing-medium: 16px !default;\n$t-spacing-medium: 16px !default;\n$m-spacing-medium: 16px !default;\n\n// Large spacing\n$spacing-large: 24px !default;\n$t-spacing-large: 24px !default;\n$m-spacing-large: 16px !default;\n\n// Larger spacing\n$spacing-larger: 32px !default;\n\n// Largest spacing\n$spacing-largest: 48px !default;\n\n// Layout spacing\n$layout-spacing-top: 24px !default;\n$layout-spacing-right: 24px !default;\n$layout-spacing-bottom: 24px !default;\n$layout-spacing-left: 24px !default;\n\n$t-layout-spacing-top: 24px !default;\n$t-layout-spacing-right: 24px !default;\n$t-layout-spacing-bottom: 24px !default;\n$t-layout-spacing-left: 24px !default;\n\n$m-layout-spacing-top: 16px !default;\n$m-layout-spacing-right: 16px !default;\n$m-layout-spacing-bottom: 16px !default;\n$m-layout-spacing-left: 16px !default;\n\n// Combined layout spacing\n$layout-spacing: $layout-spacing-top $layout-spacing-right $layout-spacing-bottom $layout-spacing-left !default;\n$m-layout-spacing: $m-layout-spacing-top $m-layout-spacing-right $m-layout-spacing-bottom $m-layout-spacing-left !default;\n$t-layout-spacing: $t-layout-spacing-top $t-layout-spacing-right $t-layout-spacing-bottom $t-layout-spacing-left !default;\n\n// Gutter size\n$gutter-size: 8px !default;\n\n//== Tables\n//## Table spacing options (used in components/tables)\n\n$padding-table-cell-top: 8px !default;\n$padding-table-cell-bottom: 8px !default;\n$padding-table-cell-left: 8px !default;\n$padding-table-cell-right: 8px !default;\n\n//== Media queries breakpoints\n//## Define the breakpoints at which your layout will change, adapting to different screen sizes.\n\n$screen-xs: 480px !default;\n$screen-sm: 576px !default;\n$screen-md: 768px !default;\n$screen-lg: 992px !default;\n$screen-xl: 1200px !default;\n\n// So media queries don't overlap when required, provide a maximum (used for max-width)\n$screen-xs-max: calc(#{$screen-sm} - 1px) !default;\n$screen-sm-max: calc(#{$screen-md} - 1px) !default;\n$screen-md-max: calc(#{$screen-lg} - 1px) !default;\n$screen-lg-max: calc(#{$screen-xl} - 1px) !default;\n\n//== Settings\n//## Enable or disable your desired framework features\n// Use of !important\n$important-flex: true !default; // ./base/flex.scss\n$important-spacing: true !default; // ./base/spacing.scss\n$important-helpers: true !default; // ./helpers/helperclasses.scss\n\n//===== Legacy variables =====\n\n//== Step 1: Brand Colors\n$brand-inverse: #24276c !default;\n$brand-info: #0086d9 !default;\n\n//== Step 2: UI Customization\n// Sidebar\n$sidebar-bg: $brand-inverse !default;\n\n//== Navigation\n//## Used in components/navigation\n\n// Default Navigation styling\n$navigation-bg: $brand-inverse !default;\n$navigation-bg-hover: lighten($navigation-bg, 4) !default;\n$navigation-bg-active: lighten($navigation-bg, 8) !default;\n\n$navigation-sub-bg: darken($navigation-bg, 4) !default;\n$navigation-sub-bg-hover: $navigation-sub-bg !default;\n$navigation-sub-bg-active: $navigation-sub-bg !default;\n\n$navigation-border-color: $navigation-bg-hover !default;\n\n// Navigation Sidebar\n$navsidebar-bg: $sidebar-bg !default;\n$navsidebar-bg-hover: darken($navsidebar-bg, 4) !default;\n$navsidebar-bg-active: darken($navsidebar-bg, 8) !default;\n\n$navsidebar-sub-bg: darken($navsidebar-bg, 4) !default;\n$navsidebar-sub-bg-hover: $navsidebar-sub-bg !default;\n$navsidebar-sub-bg-active: $navsidebar-sub-bg !default;\n\n$navsidebar-border-color: $navsidebar-bg-hover !default;\n\n//== Form\n//## Used in components/inputs\n\n// Form Label\n$form-label-color: $brand-inverse !default;\n\n//== Buttons\n//## Define background-color, border-color and text. Used in components/buttons\n\n// Button Background Color\n$btn-inverse-bg: $brand-inverse !default;\n$btn-info-bg: $brand-info !default;\n\n// Button Border Color\n$btn-inverse-border-color: $brand-inverse !default;\n$btn-info-border-color: $brand-info !default;\n\n// Button Text Color\n$btn-inverse-color: #fff !default;\n$btn-info-color: #fff !default;\n\n// Button Background Color\n$btn-inverse-bg-hover: mix($btn-inverse-bg, white, 80%) !default;\n$btn-info-bg-hover: mix($btn-info-bg, black, 80%) !default;\n\n//== Color variations\n//## These variations are used to support several other variables and components\n\n// Color variations\n$color-inverse-darker: mix($brand-inverse, black, 60%) !default;\n$color-inverse-dark: mix($brand-inverse, black, 70%) !default;\n$color-inverse-light: mix($brand-inverse, white, 40%) !default;\n$color-inverse-lighter: mix($brand-inverse, white, 20%) !default;\n\n$color-info-darker: mix($brand-info, black, 60%) !default;\n$color-info-dark: mix($brand-info, black, 70%) !default;\n$color-info-light: mix($brand-info, white, 60%) !default;\n$color-info-lighter: mix($brand-info, white, 20%) !default;\n\n//== Alerts\n//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts)\n\n// Background Color\n$alert-info-bg: $color-primary-lighter !default;\n\n// Text Color\n$alert-info-color: $color-primary-darker !default;\n\n// Border Color\n$alert-info-border-color: $color-primary-dark !default;\n//== Labels\n//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels)\n\n// Background Color\n$label-info-bg: $brand-info !default;\n$label-inverse-bg: $brand-inverse !default;\n\n// Border Color\n$label-info-border-color: $brand-info !default;\n$label-inverse-border-color: $brand-inverse !default;\n\n// Text Color\n$label-info-color: #fff !default;\n$label-inverse-color: #fff !default;\n\n//== Groupbox\n//## Default variables for Groupbox Widget (used in components/groupbox)\n\n// Background Color\n$groupbox-inverse-bg: $brand-inverse !default;\n$groupbox-info-bg: $brand-info !default;\n\n// Text Color\n$groupbox-inverse-color: #fff !default;\n$groupbox-info-color: #fff !default;\n//== Callout (groupbox) Colors\n//## Extended variables for Groupbox Widget (used in components/groupbox)\n\n// Text and Border Color\n$callout-info-color: $brand-info !default;\n\n// Background Color\n$callout-info-bg: $color-info-lighter !default;\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin image-helpers() {\n /* ==========================================================================\n Image\n\n Default Mendix image widgets\n ========================================================================== */\n\n img.img-rounded,\n .img-rounded img {\n border-radius: 6px;\n }\n\n img.img-thumbnail,\n .img-thumbnail img {\n display: inline-block;\n max-width: 100%;\n height: auto;\n padding: 4px;\n transition: all 0.2s ease-in-out;\n border: 1px solid $brand-default;\n border-radius: 4px;\n background-color: #ffffff;\n line-height: $line-height-base;\n }\n\n img.img-circle,\n .img-circle img {\n border-radius: 50%;\n }\n\n img.img-auto,\n .img-auto img {\n width: auto !important;\n max-width: 100% !important;\n height: auto !important;\n max-height: 100% !important;\n }\n\n img.img-center,\n .img-center img {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n img.img-icon {\n width: 20px;\n height: 20px;\n padding: 2px;\n border-radius: 50%;\n }\n\n img.img-fill,\n .img-fill img {\n object-fit: fill;\n }\n\n img.img-contain,\n .img-contain img {\n object-fit: contain;\n }\n\n img.img-cover,\n .img-cover img {\n object-fit: cover;\n }\n\n img.img-scale-down,\n .img-scale-down img {\n object-fit: scale-down;\n }\n\n .img-contain.mx-image-background {\n background-size: contain;\n }\n\n .img-cover.mx-image-background {\n background-size: cover;\n }\n\n .img-auto.mx-image-background {\n background-size: auto;\n }\n\n .img-opacity-low img,\n .img-opacity-low.mx-image-background {\n opacity: 0.3;\n }\n\n .img-opacity-medium img,\n .img-opacity-medium.mx-image-background {\n opacity: 0.5;\n }\n\n .img-opacity-high img,\n .img-opacity-high.mx-image-background {\n opacity: 0.7;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin list-view() {\n /* ==========================================================================\n List view\n\n Default Mendix list view widget. The list view shows a list of objects arranged vertically. Each object is shown using a template\n ========================================================================== */\n .mx-listview {\n // Remove widget padding\n padding: 0;\n /* Clear search button (overrides load more button stying) */\n & > ul {\n margin: 0 0 $spacing-medium;\n\n .mx-listview-empty {\n border-style: none;\n background-color: transparent;\n }\n\n & > li {\n @include transition();\n background-color: #fff;\n padding: $spacing-medium;\n border-top: 1px solid $grid-border-color;\n\n &:last-child {\n border-bottom: 1px solid $grid-border-color;\n }\n\n &:focus,\n &:active {\n outline: 0;\n }\n }\n }\n\n .selected {\n background: $color-primary-light;\n }\n\n .mx-layoutgrid {\n padding: 0 !important;\n }\n }\n\n // Search bar\n .mx-listview-searchbar {\n margin-bottom: $spacing-medium;\n\n .btn {\n width: auto;\n }\n }\n\n /* Load more button */\n .btn.mx-listview-loadMore {\n width: 100%;\n margin: 0 0 $spacing-medium;\n }\n\n //== Phone specific\n //-------------------------------------------------------------------------------------------------------------------//\n .profile-phone .mx-listview {\n .mx-listview-searchbar {\n margin-bottom: 3px;\n background: #ffffff;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14);\n\n input {\n padding: 14px 15px;\n color: #555555;\n border-style: none;\n border-radius: 0;\n box-shadow: none;\n }\n\n .btn {\n padding: 14px 15px;\n color: inherit;\n border-style: none;\n }\n }\n\n & > ul > li {\n &:first-child {\n border-top: none;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin list-view-helpers() {\n /* ==========================================================================\n List view\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n\n // List items lined\n .listview-lined.mx-listview {\n & > ul > li {\n border-top: 1px solid $grid-border-color;\n\n &:first-child {\n border-top: 1px solid $grid-border-color;\n }\n\n &:last-child {\n border-bottom: 1px solid $grid-border-color;\n }\n }\n }\n\n //List items Bordered\n .listview-bordered.mx-listview {\n & > ul > li {\n border: 1px solid $grid-border-color;\n border-top: 0;\n\n &:first-child {\n border-top: 1px solid $grid-border-color;\n }\n\n &:last-child {\n }\n }\n }\n\n // List items striped\n .listview-striped.mx-listview {\n & > ul > li:nth-child(2n + 1) {\n background-color: $grid-bg-striped;\n }\n }\n\n // Items as seperated blocks\n .listview-seperated.mx-listview {\n & > ul > li {\n margin-bottom: $spacing-medium;\n border: 1px solid $grid-border-color;\n border-radius: $border-radius-default;\n }\n }\n\n // Remove all styling - deprecated\n .listview-stylingless.mx-listview {\n & > ul > li {\n padding: unset;\n cursor: default;\n border: unset;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background-color: transparent;\n }\n\n &.selected {\n background-color: transparent !important;\n\n &:hover,\n &:focus,\n &:active {\n background-color: transparent !important;\n }\n }\n }\n }\n\n // Hover style activated\n .listview-hover.mx-listview {\n & > ul > li {\n cursor: pointer;\n\n &:hover,\n &:focus,\n &:active {\n background-color: $grid-bg-hover;\n }\n\n &.selected {\n &:hover,\n &:focus,\n &:active {\n background-color: $grid-bg-selected-hover;\n }\n }\n }\n }\n\n // Row Sizes\n\n .listview-sm.mx-listview {\n & > ul > li {\n padding: $spacing-small;\n }\n }\n\n .listview-lg.mx-listview {\n & > ul > li {\n padding: $spacing-large;\n }\n }\n\n // Bootstrap columns\n .mx-listview[class*=\"lv-col\"] {\n overflow: hidden; // For if it is not in a layout, to prevent scrollbars\n & > ul {\n display: flex; // normal a table\n flex-wrap: wrap;\n margin-right: -1 * $gutter-size;\n margin-left: -1 * $gutter-size;\n\n &::before,\n &::after {\n // clearfix\n display: table;\n clear: both;\n content: \" \";\n }\n\n & > li {\n // bootstrap col\n position: relative;\n min-height: 1px;\n padding-right: $gutter-size;\n padding-left: $gutter-size;\n border: 0;\n @media (max-width: $screen-md-max) {\n width: 100% !important;\n }\n\n & > .mx-dataview {\n overflow: hidden;\n }\n }\n }\n\n &.lv-col-xs-12 > ul > li {\n width: 100% !important;\n }\n\n &.lv-col-xs-11 > ul > li {\n width: 91.66666667% !important;\n }\n\n &.lv-col-xs-10 > ul > li {\n width: 83.33333333% !important;\n }\n\n &.lv-col-xs-9 > ul > li {\n width: 75% !important;\n }\n\n &.lv-col-xs-8 > ul > li {\n width: 66.66666667% !important;\n }\n\n &.lv-col-xs-7 > ul > li {\n width: 58.33333333% !important;\n }\n\n &.lv-col-xs-6 > ul > li {\n width: 50% !important;\n }\n\n &.lv-col-xs-5 > ul > li {\n width: 41.66666667% !important;\n }\n\n &.lv-col-xs-4 > ul > li {\n width: 33.33333333% !important;\n }\n\n &.lv-col-xs-3 > ul > li {\n width: 25% !important;\n }\n\n &.lv-col-xs-2 > ul > li {\n width: 16.66666667% !important;\n }\n\n &.lv-col-xs-1 > ul > li {\n width: 8.33333333% !important;\n }\n\n @media (min-width: $screen-md) {\n &.lv-col-sm-12 > ul > li {\n width: 100% !important;\n }\n &.lv-col-sm-11 > ul > li {\n width: 91.66666667% !important;\n }\n &.lv-col-sm-10 > ul > li {\n width: 83.33333333% !important;\n }\n &.lv-col-sm-9 > ul > li {\n width: 75% !important;\n }\n &.lv-col-sm-8 > ul > li {\n width: 66.66666667% !important;\n }\n &.lv-col-sm-7 > ul > li {\n width: 58.33333333% !important;\n }\n &.lv-col-sm-6 > ul > li {\n width: 50% !important;\n }\n &.lv-col-sm-5 > ul > li {\n width: 41.66666667% !important;\n }\n &.lv-col-sm-4 > ul > li {\n width: 33.33333333% !important;\n }\n &.lv-col-sm-3 > ul > li {\n width: 25% !important;\n }\n &.lv-col-sm-2 > ul > li {\n width: 16.66666667% !important;\n }\n &.lv-col-sm-1 > ul > li {\n width: 8.33333333% !important;\n }\n }\n @media (min-width: $screen-lg) {\n &.lv-col-md-12 > ul > li {\n width: 100% !important;\n }\n &.lv-col-md-11 > ul > li {\n width: 91.66666667% !important;\n }\n &.lv-col-md-10 > ul > li {\n width: 83.33333333% !important;\n }\n &.lv-col-md-9 > ul > li {\n width: 75% !important;\n }\n &.lv-col-md-8 > ul > li {\n width: 66.66666667% !important;\n }\n &.lv-col-md-7 > ul > li {\n width: 58.33333333% !important;\n }\n &.lv-col-md-6 > ul > li {\n width: 50% !important;\n }\n &.lv-col-md-5 > ul > li {\n width: 41.66666667% !important;\n }\n &.lv-col-md-4 > ul > li {\n width: 33.33333333% !important;\n }\n &.lv-col-md-3 > ul > li {\n width: 25% !important;\n }\n &.lv-col-md-2 > ul > li {\n width: 16.66666667% !important;\n }\n &.lv-col-md-1 > ul > li {\n width: 16.66666667% !important;\n }\n }\n @media (min-width: $screen-xl) {\n &.lv-col-lg-12 > ul > li {\n width: 100% !important;\n }\n &.lv-col-lg-11 > ul > li {\n width: 91.66666667% !important;\n }\n &.lv-col-lg-10 > ul > li {\n width: 83.33333333% !important;\n }\n &.lv-col-lg-9 > ul > li {\n width: 75% !important;\n }\n &.lv-col-lg-8 > ul > li {\n width: 66.66666667% !important;\n }\n &.lv-col-lg-7 > ul > li {\n width: 58.33333333% !important;\n }\n &.lv-col-lg-6 > ul > li {\n width: 50% !important;\n }\n &.lv-col-lg-5 > ul > li {\n width: 41.66666667% !important;\n }\n &.lv-col-lg-4 > ul > li {\n width: 33.33333333% !important;\n }\n &.lv-col-lg-3 > ul > li {\n width: 25% !important;\n }\n &.lv-col-lg-2 > ul > li {\n width: 16.66666667% !important;\n }\n &.lv-col-lg-1 > ul > li {\n width: 8.33333333% !important;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin modal() {\n /* ==========================================================================\n Modal\n\n Default Mendix modals. Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults\n ========================================================================== */\n .modal-dialog {\n .modal-content {\n border: 1px solid $modal-header-border-color;\n border-radius: 4px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n\n .modal-header {\n padding: 15px 20px;\n border-bottom-color: $modal-header-border-color;\n border-radius: 0; // Because of the class .mx-window-active in mxui.css\n background-color: $modal-header-bg;\n\n h4 {\n margin: 0;\n color: $modal-header-color;\n font-size: 16px;\n font-weight: $font-weight-bold;\n }\n\n .close {\n margin-top: -3px;\n opacity: 1;\n /* For IE8 and earlier */\n color: $modal-header-color;\n text-shadow: none;\n }\n }\n\n .modal-body {\n }\n\n .modal-footer {\n display: flex;\n justify-content: flex-end;\n margin-top: 0;\n padding: 20px;\n border-style: none;\n }\n }\n }\n\n // Default Mendix Window Modal\n .mx-window {\n // If popup direct child is a dataview it gets the class mx-window-view\n &.mx-window-view .mx-window-body {\n overflow: hidden; // hide second scrollbar in edit page\n padding: 0;\n // Dataview in popup\n > .mx-dataview > .mx-dataview-content,\n > .mx-placeholder > .mx-dataview > .mx-dataview-content {\n padding: 20px;\n }\n\n > .mx-dataview > .mx-dataview-controls,\n > .mx-placeholder > .mx-dataview > .mx-dataview-controls {\n display: flex;\n justify-content: flex-end;\n margin: 0;\n padding: 20px;\n text-align: left;\n border-top: 1px solid $modal-header-border-color;\n }\n }\n\n .mx-dataview-controls {\n padding-bottom: 0;\n }\n\n .mx-layoutgrid {\n padding-right: 0;\n padding-left: 0;\n }\n }\n\n .mx-dialog .modal-body {\n padding: 24px;\n }\n\n // Login modal\n .mx-login {\n .modal-body {\n padding: 0 15px;\n }\n\n .modal-content {\n input {\n height: 56px;\n padding: 12px 12px;\n border: 1px solid #eeeeee;\n background: #eeeeee;\n box-shadow: none;\n font-size: 16px;\n\n &:focus {\n border-color: #66afe9;\n }\n }\n }\n\n .modal-header,\n .modal-footer {\n border: 0;\n }\n\n button {\n font-size: 16px;\n }\n\n h4 {\n color: #aaaaaa;\n font-size: 20px;\n font-weight: $font-weight-bold;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin navigation-bar() {\n /* ==========================================================================\n Navigation\n\n Default Mendix navigation bar\n ========================================================================== */\n .mx-navbar {\n margin: 0;\n border-style: none;\n border-radius: 0;\n background-color: $navigation-bg;\n\n ul.nav {\n margin: 0; // weird -margin if screen gets small (bootstrap)\n /* Navigation item */\n & > li.mx-navbar-item > a {\n display: flex;\n align-items: center;\n padding: $navigation-item-padding;\n vertical-align: middle;\n color: $navigation-color;\n border-radius: 0;\n font-size: $navigation-font-size;\n font-weight: $font-weight-normal;\n border-radius: $border-radius-default;\n\n /* Dropdown arrow */\n .caret {\n border-top-color: $navigation-color;\n border-bottom-color: $navigation-color;\n }\n\n &:hover,\n &:focus,\n &.active {\n text-decoration: none;\n color: $navigation-color-hover;\n background-color: $navigation-bg-hover;\n\n .caret {\n border-top-color: $navigation-color-active;\n border-bottom-color: $navigation-color-active;\n }\n }\n\n &.active {\n color: $navigation-color-active;\n background-color: $navigation-bg-active;\n opacity: 1;\n }\n\n /* Dropdown */\n .mx-navbar-submenu::before {\n position: absolute;\n top: -9px;\n left: 15px;\n width: 0;\n height: 0;\n content: \"\";\n transform: rotate(360deg);\n border-width: 0 9px 9px 9px;\n border-style: solid;\n border-color: transparent transparent $navigation-border-color transparent;\n }\n\n // Image\n img {\n width: 20px; // Default size (so it looks good)\n height: auto;\n margin-right: 0.5em;\n }\n\n .glyphicon {\n top: 0;\n margin-right: 0.5em;\n vertical-align: middle;\n font-size: $navigation-glyph-size;\n }\n }\n\n & > .mx-navbar-item.active a {\n color: $navigation-color-active;\n }\n\n /* When hovering or the dropdown is open */\n & > .mx-navbar-item > a:hover,\n & > .mx-navbar-item > a:focus,\n & > .mx-navbar-item.open > a,\n & > .mx-navbar-item.open > a:hover,\n & > .mx-navbar-item.open > a:focus {\n text-decoration: none;\n color: $navigation-color-hover;\n background-color: $navigation-bg-hover;\n\n .caret {\n border-top-color: $navigation-color-hover;\n border-bottom-color: $navigation-color-hover;\n }\n }\n\n & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a {\n color: $navigation-sub-color-active;\n background-color: $navigation-sub-bg-active;\n\n .caret {\n border-top-color: $navigation-sub-color-active;\n border-bottom-color: $navigation-sub-color-active;\n }\n }\n }\n @media (max-width: $screen-md) {\n ul.nav > li.mx-navbar-item > a {\n padding: 10px 24px;\n }\n .mx-navbar-item.open .dropdown-menu {\n padding: 0;\n border-radius: 0;\n background-color: $navigation-sub-bg;\n\n & > li.mx-navbar-subitem > a {\n padding: 10px 24px;\n color: $navigation-sub-color;\n border-radius: 0;\n font-size: $navigation-sub-font-size;\n font-weight: $font-weight-normal;\n\n &:hover,\n &:focus {\n color: $navigation-sub-color-hover;\n background-color: $navigation-sub-bg-hover;\n }\n\n &.active {\n color: $navigation-sub-color-active;\n background-color: $navigation-sub-bg-active;\n }\n }\n }\n }\n\n /* remove focus */\n &:focus {\n outline: 0;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin navigation-bar-helpers() {\n /* ==========================================================================\n Navigation\n\n //== Regions\n //## Behavior in the different regions\n ========================================================================== */\n // When used in topbar\n .region-topbar {\n .mx-navbar {\n background-color: $navtopbar-bg;\n min-height: auto;\n ul.nav {\n > .mx-navbar-item {\n margin-left: $spacing-small;\n }\n /* Navigation item */\n & > li.mx-navbar-item > a {\n color: $navtopbar-color;\n font-size: $navtopbar-font-size;\n line-height: 1.2;\n /* Dropdown arrow */\n .caret {\n border-top-color: $navtopbar-color;\n border-bottom-color: $navtopbar-color;\n }\n &:hover,\n &:focus,\n &.active {\n color: $navtopbar-color-hover;\n background-color: $navtopbar-bg-hover;\n .caret {\n border-top-color: $navtopbar-color-active;\n border-bottom-color: $navtopbar-color-active;\n }\n }\n &.active {\n color: $navtopbar-color-active;\n background-color: $navtopbar-bg-active;\n }\n\n /* Dropdown */\n .mx-navbar-submenu::before {\n border-color: transparent transparent $navtopbar-border-color transparent;\n }\n\n // Image\n .glyphicon {\n font-size: $navtopbar-glyph-size;\n }\n }\n\n /* When hovering or the dropdown is open */\n & > .mx-navbar-item > a:hover,\n & > .mx-navbar-item > a:focus,\n & > .mx-navbar-item.active a,\n & > .mx-navbar-item.open > a,\n & > .mx-navbar-item.open > a:hover,\n & > .mx-navbar-item.open > a:focus {\n color: $navtopbar-color-hover;\n background-color: $navtopbar-bg-hover;\n .caret {\n border-top-color: $navtopbar-color-hover;\n border-bottom-color: $navtopbar-color-hover;\n }\n }\n\n & > .mx-navbar-item.open .dropdown-menu {\n border-radius: $border-radius-default;\n background-color: $navtopbar-sub-bg;\n padding: $spacing-small $spacing-small 0;\n margin: 0;\n border: 0;\n box-shadow: 0px 2px 2px rgba(194, 196, 201, 0.30354);\n & > li.mx-navbar-subitem a {\n padding: $spacing-small;\n color: $navtopbar-color;\n border-radius: $border-radius-default;\n margin-bottom: $spacing-small;\n line-height: 1.2;\n &:hover,\n &:focus {\n color: $navtopbar-color-hover;\n background-color: $navtopbar-sub-bg-hover;\n }\n }\n }\n & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a {\n color: $navtopbar-sub-color-active;\n background-color: $navtopbar-sub-bg-active;\n .caret {\n border-top-color: $navtopbar-sub-color-active;\n border-bottom-color: $navtopbar-sub-color-active;\n }\n }\n }\n @media (max-width: $screen-md) {\n ul.nav > li.mx-navbar-item > a {\n }\n .mx-navbar-item.open .dropdown-menu {\n background-color: $navtopbar-sub-bg;\n & > li.mx-navbar-subitem > a {\n color: $navtopbar-sub-color;\n font-size: $navtopbar-sub-font-size;\n &:hover,\n &:focus {\n color: $navtopbar-sub-color-hover;\n background-color: $navtopbar-sub-bg-hover;\n }\n &.active {\n color: $navtopbar-sub-color-active;\n background-color: $navtopbar-sub-bg-active;\n }\n }\n }\n }\n }\n }\n\n // When used in sidebar\n .region-sidebar {\n .mx-navbar {\n background-color: $navsidebar-bg;\n ul.nav {\n /* Navigation item */\n & > li.mx-navbar-item > a {\n color: $navsidebar-color;\n font-size: $navsidebar-font-size;\n\n /* Dropdown arrow */\n .caret {\n border-top-color: $navsidebar-color;\n border-bottom-color: $navsidebar-color;\n }\n &:hover,\n &:focus,\n &.active {\n color: $navsidebar-color-hover;\n background-color: $navsidebar-bg-hover;\n .caret {\n border-top-color: $navsidebar-color-active;\n border-bottom-color: $navsidebar-color-active;\n }\n }\n &.active {\n color: $navsidebar-color-active;\n background-color: $navsidebar-bg-active;\n }\n\n /* Dropdown */\n .mx-navbar-submenu::before {\n border-color: transparent transparent $navsidebar-border-color transparent;\n }\n\n // Image\n .glyphicon {\n font-size: $navsidebar-glyph-size;\n }\n }\n\n /* When hovering or the dropdown is open */\n & > .mx-navbar-item > a:hover,\n & > .mx-navbar-item > a:focus,\n & > .mx-navbar-item.active a,\n & > .mx-navbar-item.open > a,\n & > .mx-navbar-item.open > a:hover,\n & > .mx-navbar-item.open > a:focus {\n color: $navsidebar-color-hover;\n background-color: $navsidebar-bg-hover;\n .caret {\n border-top-color: $navsidebar-color-hover;\n border-bottom-color: $navsidebar-color-hover;\n }\n }\n & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a {\n color: $navsidebar-sub-color-active;\n background-color: $navsidebar-sub-bg-active;\n .caret {\n border-top-color: $navsidebar-sub-color-active;\n border-bottom-color: $navsidebar-sub-color-active;\n }\n }\n }\n @media (max-width: $screen-md) {\n ul.nav > li.mx-navbar-item > a {\n }\n .mx-navbar-item.open .dropdown-menu {\n background-color: $navtopbar-sub-bg;\n & > li.mx-navbar-subitem > a {\n color: $navsidebar-sub-color;\n font-size: $navsidebar-sub-font-size;\n &:hover,\n &:focus {\n color: $navsidebar-sub-color-hover;\n background-color: $navsidebar-sub-bg-hover;\n }\n &.active {\n color: $navsidebar-sub-color-active;\n background-color: $navsidebar-sub-bg-active;\n }\n }\n }\n }\n }\n }\n\n .hide-icons.mx-navbar {\n .glyphicon {\n display: none;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin navigation-list() {\n /* ==========================================================================\n Navigation list\n\n Default Mendix navigation list widget. A navigation list can be used to attach an action to an entire row. Such a row is called a navigation list item\n ========================================================================== */\n .mx-navigationlist {\n margin: 0;\n padding: 0;\n list-style: none;\n\n li.mx-navigationlist-item {\n @include transition();\n padding: $spacing-medium;\n border-width: 1px;\n border-style: none none solid none;\n border-color: $grid-border-color;\n border-radius: 0;\n background-color: $grid-bg;\n\n &:hover,\n &:focus {\n color: inherit;\n background-color: $grid-bg-hover;\n }\n\n &.active {\n color: inherit;\n background-color: $grid-bg-selected;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin navigation-tree() {\n /* ==========================================================================\n Navigation\n\n Default Mendix navigation tree\n ========================================================================== */\n .mx-navigationtree {\n background-color: $navigation-bg;\n\n /* Every navigation item */\n .navbar-inner > ul {\n margin: 0;\n padding-left: 0;\n\n & > li {\n padding: 0;\n border-style: none;\n\n & > a {\n display: flex;\n align-items: center;\n height: $navigation-item-height;\n padding: $navigation-item-padding;\n color: $navigation-color;\n //border-bottom: 1px solid $navigation-border-color;\n //border-radius: 0;\n background-color: $navigation-bg;\n text-shadow: none;\n font-size: $navigation-font-size;\n font-weight: $font-weight-normal;\n\n .caret {\n border-top-color: $navigation-color;\n border-bottom-color: $navigation-color;\n }\n\n img {\n width: 20px; // Default size\n height: auto;\n margin-right: 0.5em;\n }\n\n .glyphicon {\n top: 0;\n margin-right: 0.5em;\n vertical-align: middle;\n font-size: $navigation-glyph-size;\n }\n }\n\n a:hover,\n a:focus,\n a.active {\n text-decoration: none;\n color: $navigation-color-hover;\n background-color: $navigation-bg-hover;\n\n .caret {\n border-top-color: $navigation-color-active;\n border-bottom-color: $navigation-color-active;\n }\n }\n\n a.active {\n color: $navigation-color-active;\n border-left-color: $navigation-color-active;\n background-color: $navigation-bg-active;\n }\n }\n }\n\n /* Sub navigation item specific */\n li.mx-navigationtree-has-items {\n & > ul {\n margin: 0;\n padding-left: 0;\n background-color: $navigation-sub-bg;\n\n li {\n margin: 0;\n padding: 0;\n border: 0;\n\n a {\n padding: $spacing-medium;\n text-decoration: none;\n color: $navigation-sub-color;\n border: 0;\n background-color: $navigation-sub-bg;\n text-shadow: none;\n font-size: $navigation-sub-font-size;\n font-weight: $font-weight-normal;\n .glyphicon {\n margin-right: $spacing-small;\n }\n\n &:hover,\n &:focus,\n &.active {\n color: $navigation-sub-color-hover;\n outline: 0;\n background-color: $navigation-sub-bg-hover;\n }\n\n &.active {\n color: $navigation-sub-color-active;\n border: 0;\n background-color: $navigation-sub-bg-active;\n }\n }\n }\n }\n }\n\n /* remove focus */\n &:focus {\n outline: 0;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin navigation-tree-helpers() {\n /* ==========================================================================\n Navigation\n\n //== Regions\n //## Behavior in the different regions\n ========================================================================== */\n // When used in topbar\n .region-topbar {\n .mx-navigationtree {\n background-color: $navtopbar-bg;\n .navbar-inner > ul {\n & > li {\n & > a {\n color: $navtopbar-color;\n border-color: $navtopbar-border-color;\n background-color: $navtopbar-bg;\n font-size: $navtopbar-font-size;\n .caret {\n border-top-color: $navtopbar-color;\n border-bottom-color: $navtopbar-color;\n }\n\n .glyphicon {\n font-size: $navtopbar-glyph-size;\n }\n }\n a:hover,\n a:focus,\n a.active {\n color: $navtopbar-color-hover;\n background-color: $navtopbar-bg-hover;\n .caret {\n border-top-color: $navtopbar-color-active;\n border-bottom-color: $navtopbar-color-active;\n }\n }\n a.active {\n color: $navtopbar-color-active;\n border-left-color: $navtopbar-color-active;\n background-color: $navtopbar-bg-active;\n }\n }\n }\n\n /* Sub navigation item specific */\n li.mx-navigationtree-has-items {\n & > ul {\n background-color: $navtopbar-sub-bg;\n li {\n a {\n color: $navtopbar-sub-color;\n background-color: $navtopbar-sub-bg;\n font-size: $navtopbar-sub-font-size;\n &:hover,\n &:focus,\n &.active {\n color: $navtopbar-sub-color-hover;\n background-color: $navtopbar-sub-bg-hover;\n }\n &.active {\n color: $navtopbar-sub-color-active;\n background-color: $navtopbar-sub-bg-active;\n }\n }\n }\n }\n }\n }\n }\n\n // When used in sidebar\n .region-sidebar {\n .mx-navigationtree {\n background-color: $navsidebar-bg;\n .navbar-inner > ul {\n & > li {\n & > a {\n color: $navsidebar-color;\n border-color: $navsidebar-border-color;\n background-color: $navsidebar-bg;\n font-size: $navsidebar-font-size;\n .caret {\n border-top-color: $navsidebar-color;\n border-bottom-color: $navsidebar-color;\n }\n\n .glyphicon {\n font-size: $navsidebar-glyph-size;\n }\n }\n a:hover,\n a:focus,\n a.active {\n color: $navsidebar-color-hover;\n background-color: $navsidebar-bg-hover;\n .caret {\n border-top-color: $navsidebar-color-active;\n border-bottom-color: $navsidebar-color-active;\n }\n }\n a.active {\n color: $navsidebar-color-active;\n border-left-color: $navsidebar-color-active;\n background-color: $navsidebar-bg-active;\n }\n }\n }\n\n /* Sub navigation item specific */\n li.mx-navigationtree-has-items {\n & > ul {\n background-color: $navsidebar-sub-bg;\n li {\n a {\n color: $navsidebar-sub-color;\n background-color: $navsidebar-sub-bg;\n font-size: $navsidebar-sub-font-size;\n &:hover,\n &:focus,\n &.active {\n color: $navsidebar-sub-color-hover;\n background-color: $navsidebar-sub-bg-hover;\n }\n &.active {\n color: $navsidebar-sub-color-active;\n background-color: $navsidebar-sub-bg-active;\n }\n }\n }\n }\n }\n }\n }\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n //-------------------------------------------------------------------------------------------------------------------//\n // Content Centerd text and icons\n .nav-content-center-text-icons.mx-navigationtree {\n .navbar-inner ul {\n a {\n flex-direction: column;\n justify-content: center;\n .glyphicon {\n margin: 0 0 5px 0;\n }\n }\n }\n }\n\n // Content Centerd icons only\n .nav-content-center.mx-navigationtree {\n .navbar-inner ul {\n a {\n justify-content: center;\n }\n }\n }\n\n .hide-icons.mx-navigationtree {\n .glyphicon {\n display: none;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin pop-up-menu() {\n /* ==========================================================================\n Pop-up menu\n\n Default Mendix pop-up menu\n ========================================================================== */\n .popupmenu {\n position: relative;\n display: inline-flex;\n }\n\n .popupmenu-trigger {\n cursor: pointer;\n }\n\n .popupmenu-menu {\n position: absolute;\n z-index: 999;\n display: none;\n flex-direction: column;\n width: max-content;\n border-radius: 8px;\n background-color: $bg-color;\n box-shadow: 0 2px 20px 1px rgba(5, 15, 129, 0.05), 0 2px 16px 0 rgba(33, 43, 54, 0.08);\n\n &.popupmenu-position-left {\n top: 0;\n left: 0;\n transform: translateX(-100%);\n }\n\n &.popupmenu-position-right {\n top: 0;\n right: 0;\n transform: translateX(100%);\n }\n\n &.popupmenu-position-top {\n top: 0;\n transform: translateY(-100%);\n }\n\n &.popupmenu-position-bottom {\n bottom: 0;\n transform: translateY(100%);\n }\n\n .popupmenu-basic-item:first-child,\n .popupmenu-custom-item:first-child {\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n }\n\n .popupmenu-basic-item:last-child,\n .popupmenu-custom-item:last-child {\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n }\n }\n\n .popupmenu-basic-divider {\n width: 100%;\n height: 1px;\n background-color: $brand-default;\n }\n\n .popupmenu-basic-item {\n padding: 12px 16px;\n color: $font-color-default;\n font-size: 14px;\n\n &:hover,\n &:focus,\n &:active {\n cursor: pointer;\n border-color: $bg-color-secondary;\n background-color: $bg-color-secondary;\n }\n\n &-inverse {\n color: $brand-inverse;\n }\n\n &-primary {\n color: $brand-primary;\n }\n\n &-info {\n color: $brand-info;\n }\n\n &-success {\n color: $brand-success;\n }\n\n &-warning {\n color: $brand-warning;\n }\n\n &-danger {\n color: $brand-danger;\n }\n }\n\n .popupmenu-custom-item {\n &:hover,\n &:focus,\n &:active {\n cursor: pointer;\n border-color: $bg-color-secondary;\n background-color: $bg-color-secondary;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n@mixin simple-menu-bar() {\n /* ==========================================================================\n Navigation\n\n Default Mendix simple menu bar\n ========================================================================== */\n .mx-menubar {\n padding: 0;\n background-color: $navigation-bg;\n\n ul.mx-menubar-list {\n display: flex;\n width: 100%;\n min-height: 58px;\n\n li.mx-menubar-item {\n margin: 0;\n\n > a {\n display: flex;\n overflow: hidden;\n align-items: center;\n justify-content: center;\n height: 100%;\n padding: $navigation-item-padding;\n white-space: nowrap;\n color: $navigation-color;\n border-radius: 0;\n font-size: $navigation-font-size;\n font-weight: $font-weight-normal;\n\n img {\n margin-right: 0.5em;\n }\n\n .glyphicon {\n top: -1px;\n margin-right: 0.5em;\n vertical-align: middle;\n font-size: $navigation-glyph-size;\n }\n }\n\n a:hover,\n a:focus,\n &:hover a,\n &:focus a,\n &.active a {\n text-decoration: none;\n color: $navigation-color-hover;\n background-color: $navigation-bg-hover;\n }\n\n &.active a {\n color: $navigation-color-active;\n background-color: $navigation-bg-active;\n }\n }\n }\n\n /* remove focus */\n &:focus {\n outline: 0;\n }\n }\n\n // Vertical variation specifics\n .mx-menubar-vertical {\n background-color: $navigation-bg;\n\n ul.mx-menubar-list {\n display: flex;\n flex-direction: column;\n\n li.mx-menubar-item {\n display: block;\n\n a {\n border-bottom: 1px solid $navigation-border-color;\n }\n }\n }\n }\n\n // Horizontal variation specifics\n .mx-menubar-horizontal {\n box-shadow: 2px 0 4px 0 rgba(0, 0, 0, 0.14);\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n width: auto;\n\n a {\n width: 100%;\n }\n }\n }\n\n /* Two menu items */\n &.menubar-col-6 ul.mx-menubar-list li.mx-menubar-item {\n width: 50%;\n }\n\n /* Three menu items */\n &.menubar-col-4 ul.mx-menubar-list li.mx-menubar-item {\n width: 33.33333333%;\n }\n\n /* Four menu items */\n &.menubar-col-3 ul.mx-menubar-list li.mx-menubar-item {\n width: 25%;\n }\n\n /* Five menu items */\n &.menubar-col-2 ul.mx-menubar-list li.mx-menubar-item {\n width: 20%;\n }\n }\n\n //== Regions\n //## Behavior in the different regions\n //-------------------------------------------------------------------------------------------------------------------//\n // When used in topbar\n .region-topbar {\n .mx-menubar {\n background-color: $navtopbar-bg;\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n a {\n color: $navtopbar-color;\n font-size: $navtopbar-font-size;\n\n .glyphicon {\n font-size: $navtopbar-glyph-size;\n }\n }\n\n a:hover,\n a:focus,\n &:hover a,\n &:focus a,\n &.active a {\n color: $navtopbar-color-hover;\n background-color: $navtopbar-bg-hover;\n }\n\n &.active a {\n color: $navtopbar-color-active;\n background-color: $navtopbar-bg-active;\n }\n }\n }\n }\n\n // Vertical variation specifics\n .mx-menubar-vertical {\n background-color: $navtopbar-bg;\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n a {\n height: $navigation-item-height;\n border-color: $navtopbar-border-color;\n }\n }\n }\n }\n }\n\n // When used in sidebar\n .region-sidebar {\n .mx-menubar {\n background-color: $navsidebar-bg;\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n a {\n color: $navsidebar-color;\n font-size: $navsidebar-font-size;\n\n .glyphicon {\n font-size: $navsidebar-glyph-size;\n }\n }\n\n a:hover,\n a:focus,\n &:hover a,\n &:focus a,\n &.active a {\n color: $navsidebar-color-hover;\n background-color: $navsidebar-bg-hover;\n }\n\n &.active a {\n color: $navsidebar-color-active;\n background-color: $navsidebar-bg-active;\n }\n }\n }\n }\n\n // Vertical variation specifics\n .mx-menubar-vertical {\n background-color: $navsidebar-bg;\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n a {\n border-color: $navsidebar-border-color;\n }\n }\n }\n }\n }\n\n @supports (padding-bottom: env(safe-area-inset-bottom)) {\n .mx-menubar {\n padding-bottom: env(safe-area-inset-bottom);\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin simple-menu-bar-helpers() {\n /* ==========================================================================\n Navigation\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n // Center text and icons\n .bottom-nav-text-icons.mx-menubar {\n ul.mx-menubar-list {\n li.mx-menubar-item {\n flex: 1;\n a {\n flex-direction: column;\n padding: $spacing-small $spacing-small $spacing-small/2;\n line-height: normal;\n font-size: $font-size-small;\n .glyphicon {\n display: block;\n margin: 0 0 $spacing-small/2 0;\n font-size: $font-size-large;\n }\n img {\n display: block;\n height: $font-size-large;\n margin: 0 0 $spacing-small/2 0;\n }\n }\n }\n }\n }\n\n .hide-icons.mx-menubar {\n .glyphicon {\n display: none;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin radio-button() {\n /* ==========================================================================\n Radio button\n\n Default Mendix radio button widget\n ========================================================================== */\n .mx-radiobuttons.inline .mx-radiogroup {\n display: flex;\n flex-direction: row;\n\n .radio {\n margin: 0 20px 0 0;\n }\n }\n\n .mx-radiobuttons .radio:last-child {\n margin-bottom: 0;\n }\n\n .radio {\n display: flex !important; // Remove after mxui merge\n align-items: center;\n margin-top: 0;\n }\n\n input[type=\"radio\"] {\n position: relative !important; // Remove after mxui merge\n width: 16px;\n height: 16px;\n margin: 0;\n cursor: pointer;\n -webkit-user-select: none;\n user-select: none;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n\n &:before,\n &:after {\n position: absolute;\n display: block;\n transition: all 0.3s ease-in-out;\n border-radius: 50%;\n }\n\n &:before {\n width: 100%;\n height: 100%;\n content: \"\";\n border: 1px solid $form-input-border-color;\n background-color: transparent;\n }\n\n &:after {\n top: 50%;\n left: 50%;\n width: 50%;\n height: 50%;\n transform: translate(-50%, -50%);\n pointer-events: none;\n background-color: $form-input-border-focus-color;\n }\n\n &:not(:checked):after {\n transform: translate(-50%, -50%) scale(0);\n opacity: 0;\n }\n\n &:not(:disabled):not(:checked):hover:after {\n background-color: $form-input-bg-hover;\n }\n\n &:checked:after,\n &:not(:disabled):not(:checked):hover:after {\n content: \"\";\n transform: translate(-50%, -50%) scale(1);\n opacity: 1;\n }\n\n &:checked:before {\n border-color: $form-input-border-focus-color;\n background-color: $form-input-bg;\n }\n\n &:disabled:before {\n background-color: $form-input-bg-disabled;\n }\n\n &:checked:disabled:before {\n border-color: rgba($form-input-border-focus-color, 0.4);\n }\n\n &:checked:disabled:after {\n background-color: rgba($form-input-border-focus-color, 0.4);\n }\n\n & + label {\n margin-left: $form-label-gutter;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin tab-container() {\n /* ==========================================================================\n Tab Container\n\n Default Mendix Tab Container Widget. Tab containers are used to show information categorized into multiple tab pages.\n This can be very useful if the amount of information that has to be displayed is larger than the amount of space on the screen\n ========================================================================== */\n\n .mx-tabcontainer {\n .mx-tabcontainer-tabs {\n margin-bottom: $spacing-medium;\n border-color: $tabs-border-color;\n display: flex;\n\n > li {\n float: none;\n }\n\n & > li > a {\n margin-right: 0;\n transition: all 0.2s ease-in-out;\n color: $tabs-color;\n font-weight: $font-weight-normal;\n border-radius: $border-radius-default $border-radius-default 0 0;\n\n &:hover,\n &:focus {\n background-color: $tabs-bg-hover;\n }\n }\n\n & > li.active > a,\n & > li.active > a:hover,\n & > li.active > a:focus {\n color: $tabs-color-active;\n border: 1px solid $tabs-border-color;\n border-bottom-color: #fff;\n background-color: $tabs-bg;\n }\n }\n }\n\n // Tab Styling Specific for mobile\n .tab-mobile.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n margin: 0;\n text-align: center;\n border-style: none;\n background-color: $brand-primary;\n\n li {\n display: table-cell;\n float: none; // reset bootstrap\n width: 1%;\n margin: 0;\n text-align: center;\n border-style: none;\n border-radius: 0;\n\n a {\n padding: 16px;\n text-transform: uppercase;\n color: #ffffff;\n border-width: 0 1px 0 0;\n border-style: solid;\n border-color: rgba(255, 255, 255, 0.3);\n border-radius: 0;\n font-size: 12px;\n font-weight: $font-weight-normal;\n\n &:hover,\n &:focus {\n background-color: inherit;\n }\n }\n\n &:last-child a {\n border-right: none;\n }\n\n &.active > a,\n &.active > a:hover,\n &.active > a:focus {\n color: #ffffff;\n border-style: none;\n border-radius: 0;\n background-color: mix($brand-primary, #000000, 80%);\n }\n }\n }\n }\n\n .mx-tabcontainer-badge {\n margin-left: $spacing-small;\n border-radius: $font-size-small;\n background-color: $label-primary-bg;\n color: $label-primary-color;\n font-size: $font-size-small;\n font-weight: $font-weight-bold;\n line-height: 1;\n padding: $spacing-small/2 $spacing-small;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin tab-container-helpers() {\n /* ==========================================================================\n Tab container\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n // Style as pills\n .tab-pills.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n border: 0;\n\n & > li {\n margin-bottom: $spacing-small;\n }\n\n & > li > a {\n margin-right: $spacing-small;\n color: $tabs-color;\n border-radius: $border-radius-default;\n background-color: $tabs-bg-pills;\n\n &:hover,\n &:focus {\n background-color: $tabs-bg-hover;\n }\n }\n\n & > li.active > a,\n & > li.active > a:hover,\n & > li.active > a:focus {\n color: #ffffff;\n border-color: $tabs-bg-active;\n background-color: $tabs-bg-active;\n }\n }\n }\n\n // Style with lines\n .tab-lined.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n border-width: 1px;\n\n li {\n margin-right: $spacing-large;\n\n & > a {\n padding: $spacing-medium 0 ($spacing-medium - $tabs-lined-border-width) 0; // border is 3px\n color: $tabs-color;\n border: 0;\n border-bottom: $tabs-lined-border-width solid transparent;\n border-radius: 0;\n\n &:hover,\n &:focus {\n color: $tabs-color;\n border: 0;\n border-color: transparent;\n background: transparent;\n }\n }\n\n &.active > a,\n &.active > a:hover,\n &.active > a:focus {\n color: $tabs-lined-color-active;\n border: 0;\n border-bottom: $tabs-lined-border-width solid $tabs-lined-border-color;\n background-color: transparent;\n }\n }\n }\n }\n\n // Justified style\n // Lets your tabs take 100% of the width\n .tab-justified.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n width: 100%;\n border-bottom: 0;\n\n & > li {\n flex: 1;\n float: none; // reset bootstrap\n margin: 0;\n @media (max-width: $screen-sm-max) {\n display: block;\n width: 100%;\n }\n\n & > a {\n text-align: center;\n }\n }\n }\n }\n\n // Bordered\n .tab-bordered.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n margin: 0;\n }\n\n & > .mx-tabcontainer-content {\n padding: $spacing-small;\n border-width: 0 1px 1px 1px;\n border-style: solid;\n border-color: $tabs-border-color;\n background-color: transparent;\n }\n }\n\n // Wizard\n .tab-wizard.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n position: relative;\n display: flex;\n justify-content: space-between;\n border-style: none;\n\n &::before {\n position: absolute;\n top: $spacing-medium;\n display: block;\n width: 100%;\n height: 1px;\n content: \"\";\n background-color: $tabs-border-color;\n }\n\n & > li {\n position: relative;\n float: none; // reset bootstrap\n width: 100%;\n text-align: center;\n\n & > a {\n width: calc((#{$spacing-medium} * 2) + 1px);\n height: calc((#{$spacing-medium} * 2) + 1px);\n margin: auto;\n padding: 0;\n text-align: center;\n color: $brand-primary;\n border: 1px solid $tabs-border-color;\n border-radius: 100%;\n background-color: $bg-color;\n font-size: $font-size-large;\n font-weight: bold;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n &.active {\n & > a,\n & > a:hover,\n & > a:focus {\n color: #ffffff;\n border-color: $tabs-bg-active;\n background-color: $tabs-bg-active;\n }\n }\n }\n }\n }\n\n //add tabcontainer flex classes\n\n .tab-center.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n display: flex;\n align-items: center;\n flex-flow: wrap;\n justify-content: center;\n }\n }\n\n .tab-left.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n display: flex;\n align-items: center;\n flex-flow: wrap;\n justify-content: flex-start;\n }\n }\n\n .tab-right.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n display: flex;\n align-items: center;\n flex-flow: wrap;\n justify-content: flex-end;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin table() {\n /* ==========================================================================\n Table\n\n Default Mendix table widget. Tables can be used to lend structure to a page. They contain a number of rows (tr) and columns, the intersection of which is called a cell (td). Each cell can contain widgets\n ========================================================================== */\n\n th {\n font-weight: $font-weight-bold;\n }\n\n html body .mx-page table.mx-table {\n th,\n td {\n &.nopadding {\n padding: 0;\n }\n }\n }\n\n table.mx-table {\n > tbody {\n /* Table row */\n > tr {\n /* Table header */\n > th {\n padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom\n $padding-table-cell-left;\n\n s * {\n color: $form-label-color;\n font-weight: $font-weight-bold;\n font-weight: $form-label-weight;\n }\n\n > label {\n padding-top: 8px;\n padding-bottom: 6px; // Aligns label in the middle if there is no input field next to it.\n }\n }\n\n /* Table cells */\n > td {\n padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom\n $padding-table-cell-left;\n\n > div > label,\n .mx-referenceselector-input-wrapper label {\n padding-top: 8px;\n padding-bottom: 6px; // Aligns label in the middle if there is no input field next to it.\n }\n }\n }\n }\n }\n\n // Default Mendix Table Widget inside TemplateGrid\n .mx-templategrid table.mx-table {\n > tbody {\n > tr {\n > th,\n > td {\n padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom\n $padding-table-cell-left;\n }\n }\n }\n }\n\n // Default Mendix Table Widget inside Listview\n .mx-list table.mx-table {\n > tbody {\n > tr {\n > th,\n > td {\n padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom\n $padding-table-cell-left;\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin table-helpers() {\n /* ==========================================================================\n Table\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n // Lined\n table.table-lined.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > td {\n border-width: 1px 0;\n border-style: solid;\n border-color: $grid-border-color;\n }\n }\n }\n }\n\n // Bordered\n table.table-bordered.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n border-width: 1px;\n border-style: solid;\n border-color: $grid-border-color;\n }\n }\n }\n }\n\n // Makes table compact\n table.table-compact.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n padding-top: 2px;\n padding-bottom: 2px;\n }\n }\n }\n }\n\n // Tables Vertical\n // Will remove unwanted paddings\n table.table-vertical.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n > th {\n padding-bottom: 0;\n\n > label {\n padding: 0;\n }\n\n > div > label {\n padding: 0;\n }\n }\n }\n }\n }\n\n // Align content in middle\n table.table-align-vertical-middle.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n vertical-align: middle;\n }\n }\n }\n }\n\n // Compact labels\n table.table-label-compact.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n > label {\n margin: 0;\n padding: 0;\n }\n\n > div > label,\n .mx-referenceselector-input-wrapper label {\n margin: 0;\n padding: 0;\n }\n }\n }\n }\n }\n\n $height-row-s: 55px;\n $height-row-m: 70px;\n $height-row-l: 120px;\n // Small rows\n table.table-row-s.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n height: $height-row-s;\n }\n }\n }\n }\n\n // Medium rows\n table.table-row-m.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n height: $height-row-m;\n }\n }\n }\n }\n\n // Large rows\n table.table-row-l.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n height: $height-row-l;\n }\n }\n }\n }\n\n // Makes the columns fixed\n table.table-fixed {\n table-layout: fixed;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin template-grid() {\n /* ==========================================================================\n Template grid\n\n Default Mendix template grid Widget. The template grid shows a list of objects in a tile view. For example, a template grid can show a list of products. The template grid has a lot in common with the data grid. The main difference is that the objects are shown in templates (a sort of small data view) instead of rows\n ========================================================================== */\n\n .mx-templategrid {\n .mx-templategrid-content-wrapper {\n table-layout: fixed;\n }\n\n .mx-templategrid-item {\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n cursor: default;\n background-color: $grid-bg;\n\n &:hover {\n background-color: transparent;\n }\n\n &.selected {\n background-color: $grid-bg-selected !important;\n }\n }\n\n .mx-layoutgrid {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin template-grid-helpers() {\n /* ==========================================================================\n Template grid\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n // Make sure your content looks selectable\n .templategrid-selectable.mx-templategrid {\n .mx-templategrid-item {\n cursor: pointer;\n }\n }\n\n // Lined\n .templategrid-lined.mx-templategrid {\n .mx-grid-content {\n border-top-width: 2px;\n border-top-style: solid;\n border-top-color: $grid-border-color;\n }\n\n .mx-templategrid-item {\n border-top: 1px solid $grid-border-color;\n border-right: none;\n border-bottom: 1px solid $grid-border-color;\n border-left: none;\n }\n }\n\n // Striped\n .templategrid-striped.mx-templategrid {\n .mx-templategrid-row:nth-child(odd) .mx-templategrid-item {\n background-color: #f9f9f9;\n }\n }\n\n // Stylingless\n .templategrid-stylingless.mx-templategrid {\n .mx-templategrid-item {\n padding: 0;\n cursor: default;\n border: 0;\n background-color: transparent;\n\n &:hover {\n background-color: transparent;\n }\n\n &.selected {\n background-color: transparent !important;\n\n &:hover {\n background-color: transparent !important;\n }\n }\n }\n }\n\n // Transparent items\n .templategrid-transparent.mx-templategrid {\n .mx-templategrid-item {\n border: 0;\n background-color: transparent;\n }\n }\n\n // Hover\n .templategrid-hover.mx-templategrid {\n .mx-templategrid-item {\n &:hover {\n background-color: $grid-bg-hover !important;\n }\n\n &.selected {\n background-color: $grid-bg-selected !important;\n\n &:hover {\n background-color: $grid-bg-selected-hover !important;\n }\n }\n }\n }\n\n // Templategrid Row Sizes\n .templategrid-lg.mx-templategrid {\n .mx-templategrid-item {\n padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2)\n ($grid-padding-left * 2);\n }\n }\n\n .templategrid-sm.mx-templategrid {\n .mx-templategrid-item {\n padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2)\n ($grid-padding-left / 2);\n }\n }\n\n // Templategrid Layoutgrid styles\n .mx-templategrid[class*=\"tg-col\"] {\n overflow: hidden; // For if it is not in a layout, to prevent scrollbars\n .mx-templategrid-content-wrapper {\n display: block;\n }\n\n .mx-templategrid-row {\n display: block;\n margin-right: -1 * $gutter-size;\n margin-left: -1 * $gutter-size;\n\n &::before,\n &::after {\n // clearfix\n display: table;\n clear: both;\n content: \" \";\n }\n }\n\n .mx-templategrid-item {\n // bootstrap col\n position: relative;\n display: block;\n float: left;\n min-height: 1px;\n padding-right: $gutter-size;\n padding-left: $gutter-size;\n border: 0;\n @media (max-width: 992px) {\n width: 100% !important;\n }\n\n .mx-dataview {\n overflow: hidden;\n }\n }\n\n &.tg-col-xs-12 .mx-templategrid-item {\n width: 100% !important;\n }\n\n &.tg-col-xs-11 .mx-templategrid-item {\n width: 91.66666667% !important;\n }\n\n &.tg-col-xs-10 .mx-templategrid-item {\n width: 83.33333333% !important;\n }\n\n &.tg-col-xs-9 .mx-templategrid-item {\n width: 75% !important;\n }\n\n &.tg-col-xs-8 .mx-templategrid-item {\n width: 66.66666667% !important;\n }\n\n &.tg-col-xs-7 .mx-templategrid-item {\n width: 58.33333333% !important;\n }\n\n &.tg-col-xs-6 .mx-templategrid-item {\n width: 50% !important;\n }\n\n &.tg-col-xs-5 .mx-templategrid-item {\n width: 41.66666667% !important;\n }\n\n &.tg-col-xs-4 .mx-templategrid-item {\n width: 33.33333333% !important;\n }\n\n &.tg-col-xs-3 .mx-templategrid-item {\n width: 25% !important;\n }\n\n &.tg-col-xs-2 .mx-templategrid-item {\n width: 16.66666667% !important;\n }\n\n &.tg-col-xs-1 .mx-templategrid-item {\n width: 8.33333333% !important;\n }\n\n @media (min-width: 768px) {\n &.tg-col-sm-12 .mx-templategrid-item {\n width: 100% !important;\n }\n &.tg-col-sm-11 .mx-templategrid-item {\n width: 91.66666667% !important;\n }\n &.tg-col-sm-10 .mx-templategrid-item {\n width: 83.33333333% !important;\n }\n &.tg-col-sm-9 .mx-templategrid-item {\n width: 75% !important;\n }\n &.tg-col-sm-8 .mx-templategrid-item {\n width: 66.66666667% !important;\n }\n &.tg-col-sm-7 .mx-templategrid-item {\n width: 58.33333333% !important;\n }\n &.tg-col-sm-6 .mx-templategrid-item {\n width: 50% !important;\n }\n &.tg-col-sm-5 .mx-templategrid-item {\n width: 41.66666667% !important;\n }\n &.tg-col-sm-4 .mx-templategrid-item {\n width: 33.33333333% !important;\n }\n &.tg-col-sm-3 .mx-templategrid-item {\n width: 25% !important;\n }\n &.tg-col-sm-2 .mx-templategrid-item {\n width: 16.66666667% !important;\n }\n &.tg-col-sm-1 .mx-templategrid-item {\n width: 8.33333333% !important;\n }\n }\n @media (min-width: 992px) {\n &.tg-col-md-12 .mx-templategrid-item {\n width: 100% !important;\n }\n &.tg-col-md-11 .mx-templategrid-item {\n width: 91.66666667% !important;\n }\n &.tg-col-md-10 .mx-templategrid-item {\n width: 83.33333333% !important;\n }\n &.tg-col-md-9 .mx-templategrid-item {\n width: 75% !important;\n }\n &.tg-col-md-8 .mx-templategrid-item {\n width: 66.66666667% !important;\n }\n &.tg-col-md-7 .mx-templategrid-item {\n width: 58.33333333% !important;\n }\n &.tg-col-md-6 .mx-templategrid-item {\n width: 50% !important;\n }\n &.tg-col-md-5 .mx-templategrid-item {\n width: 41.66666667% !important;\n }\n &.tg-col-md-4 .mx-templategrid-item {\n width: 33.33333333% !important;\n }\n &.tg-col-md-3 .mx-templategrid-item {\n width: 25% !important;\n }\n &.tg-col-md-2 .mx-templategrid-item {\n width: 16.66666667% !important;\n }\n &.tg-col-md-1 .mx-templategrid-item {\n width: 8.33333333% !important;\n }\n }\n @media (min-width: 1200px) {\n &.tg-col-lg-12 .mx-templategrid-item {\n width: 100% !important;\n }\n &.tg-col-lg-11 .mx-templategrid-item {\n width: 91.66666667% !important;\n }\n &.tg-col-lg-10 .mx-templategrid-item {\n width: 83.33333333% !important;\n }\n &.tg-col-lg-9 .mx-templategrid-item {\n width: 75% !important;\n }\n &.tg-col-lg-8 .mx-templategrid-item {\n width: 66.66666667% !important;\n }\n &.tg-col-lg-7 .mx-templategrid-item {\n width: 58.33333333% !important;\n }\n &.tg-col-lg-6 .mx-templategrid-item {\n width: 50% !important;\n }\n &.tg-col-lg-5 .mx-templategrid-item {\n width: 41.66666667% !important;\n }\n &.tg-col-lg-4 .mx-templategrid-item {\n width: 33.33333333% !important;\n }\n &.tg-col-lg-3 .mx-templategrid-item {\n width: 25% !important;\n }\n &.tg-col-lg-2 .mx-templategrid-item {\n width: 16.66666667% !important;\n }\n &.tg-col-lg-1 .mx-templategrid-item {\n width: 8.33333333% !important;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin typography() {\n /* ==========================================================================\n Typography\n ========================================================================== */\n\n p {\n line-height: $line-height-base * 1.25;\n margin: 0 0 $spacing-small;\n }\n\n .mx-title {\n margin: $font-header-margin;\n color: $font-color-header;\n font-size: $font-size-h1;\n font-weight: $font-weight-header;\n }\n\n h1,\n .h1,\n .h1 > * {\n font-size: $font-size-h1;\n }\n\n h2,\n .h2,\n .h2 > * {\n font-size: $font-size-h2;\n }\n\n h3,\n .h3,\n .h3 > * {\n font-size: $font-size-h3;\n }\n\n h4,\n .h4,\n .h4 > * {\n font-size: $font-size-h4;\n }\n\n h5,\n .h5,\n .h5 > * {\n font-size: $font-size-h5;\n }\n\n h6,\n .h6,\n .h6 > * {\n font-size: $font-size-h6;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n .h1,\n .h2,\n .h3,\n .h4,\n .h5,\n .h6 {\n margin: $font-header-margin;\n color: $font-color-header;\n font-weight: $font-weight-header;\n line-height: 1.3;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin typography-helpers() {\n /* ==========================================================================\n Typography\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n // Text size\n .text-small {\n font-size: $font-size-small !important;\n }\n\n .text-large {\n font-size: $font-size-large !important;\n }\n\n // Text Weights\n .text-light,\n .text-light > *,\n .text-light label {\n font-weight: $font-weight-light !important;\n }\n\n .text-normal,\n .text-normal > *,\n .text-normal label {\n font-weight: $font-weight-normal !important;\n }\n\n .text-semibold,\n .text-semibold > *,\n .text-semibold label {\n font-weight: $font-weight-semibold !important;\n }\n\n .text-bold,\n .text-bold > *,\n .text-bold label {\n font-weight: $font-weight-bold !important;\n }\n\n // Color variations\n .text-secondary,\n .text-secondary:hover,\n .text-default,\n .text-default:hover {\n color: $font-color-default !important;\n }\n\n .text-primary,\n .text-primary:hover {\n color: $brand-primary !important;\n }\n\n .text-info,\n .text-info:hover {\n color: $brand-info !important;\n }\n\n .text-success,\n .text-success:hover {\n color: $brand-success !important;\n }\n\n .text-warning,\n .text-warning:hover {\n color: $brand-warning !important;\n }\n\n .text-danger,\n .text-danger:hover {\n color: $brand-danger !important;\n }\n\n .text-header {\n color: $font-color-header !important;\n }\n\n .text-detail {\n color: $font-color-detail !important;\n }\n\n .text-white {\n color: #ffffff;\n }\n\n // Alignment options\n .text-left {\n text-align: left !important;\n }\n .text-center {\n text-align: center !important;\n }\n .text-right {\n text-align: right !important;\n }\n .text-justify {\n text-align: justify !important;\n }\n\n // Transform options\n .text-lowercase {\n text-transform: lowercase !important;\n }\n .text-uppercase {\n text-transform: uppercase !important;\n }\n .text-capitalize {\n text-transform: capitalize !important;\n }\n\n // Wrap options\n .text-break {\n word-break: break-all !important;\n word-break: break-word !important;\n -webkit-hyphens: auto !important;\n hyphens: auto !important;\n }\n\n .text-nowrap {\n white-space: nowrap !important;\n }\n\n .text-nowrap {\n overflow: hidden !important;\n max-width: 100% !important;\n white-space: nowrap !important;\n text-overflow: ellipsis !important;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin layout-grid() {\n /* ==========================================================================\n Layout grid\n\n Default Bootstrap containers\n ========================================================================== */\n .mx-layoutgrid {\n width: 100%;\n margin-right: auto;\n margin-left: auto;\n padding-right: $gutter-size;\n padding-left: $gutter-size;\n }\n\n // Row\n .row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter-size;\n margin-left: -$gutter-size;\n\n &::before,\n &::after {\n content: normal;\n }\n }\n\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n }\n\n .no-gutters > .col,\n .no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n\n // Columns\n .col-1,\n .col-2,\n .col-3,\n .col-4,\n .col-5,\n .col-6,\n .col-7,\n .col-8,\n .col-9,\n .col-10,\n .col-11,\n .col-12,\n .col,\n .col-auto,\n .col-sm-1,\n .col-sm-2,\n .col-sm-3,\n .col-sm-4,\n .col-sm-5,\n .col-sm-6,\n .col-sm-7,\n .col-sm-8,\n .col-sm-9,\n .col-sm-10,\n .col-sm-11,\n .col-sm-12,\n .col-sm,\n .col-sm-auto,\n .col-md-1,\n .col-md-2,\n .col-md-3,\n .col-md-4,\n .col-md-5,\n .col-md-6,\n .col-md-7,\n .col-md-8,\n .col-md-9,\n .col-md-10,\n .col-md-11,\n .col-md-12,\n .col-md,\n .col-md-auto,\n .col-lg-1,\n .col-lg-2,\n .col-lg-3,\n .col-lg-4,\n .col-lg-5,\n .col-lg-6,\n .col-lg-7,\n .col-lg-8,\n .col-lg-9,\n .col-lg-10,\n .col-lg-11,\n .col-lg-12,\n .col-lg,\n .col-lg-auto,\n .col-xl-1,\n .col-xl-2,\n .col-xl-3,\n .col-xl-4,\n .col-xl-5,\n .col-xl-6,\n .col-xl-7,\n .col-xl-8,\n .col-xl-9,\n .col-xl-10,\n .col-xl-11,\n .col-xl-12,\n .col-xl,\n .col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: $gutter-size;\n padding-left: $gutter-size;\n }\n\n .col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n .col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n\n .col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n\n .col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n\n .col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n\n .col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n\n .col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n\n .col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n\n .col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n\n .col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n\n .col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n\n .col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n\n .col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n\n .col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n\n .order-first {\n order: -1;\n }\n\n .order-last {\n order: 13;\n }\n\n .order-0 {\n order: 0;\n }\n\n .order-1 {\n order: 1;\n }\n\n .order-2 {\n order: 2;\n }\n\n .order-3 {\n order: 3;\n }\n\n .order-4 {\n order: 4;\n }\n\n .order-5 {\n order: 5;\n }\n\n .order-6 {\n order: 6;\n }\n\n .order-7 {\n order: 7;\n }\n\n .order-8 {\n order: 8;\n }\n\n .order-9 {\n order: 9;\n }\n\n .order-10 {\n order: 10;\n }\n\n .order-11 {\n order: 11;\n }\n\n .order-12 {\n order: 12;\n }\n\n .offset-1,\n .col-offset-1 {\n margin-left: 8.333333%;\n }\n\n .offset-2,\n .col-offset-2 {\n margin-left: 16.666667%;\n }\n\n .offset-3,\n .col-offset-3 {\n margin-left: 25%;\n }\n\n .offset-4,\n .col-offset-4 {\n margin-left: 33.333333%;\n }\n\n .offset-5,\n .col-offset-5 {\n margin-left: 41.666667%;\n }\n\n .offset-6,\n .col-offset-6 {\n margin-left: 50%;\n }\n\n .offset-7,\n .col-offset-7 {\n margin-left: 58.333333%;\n }\n\n .offset-8,\n .col-offset-8 {\n margin-left: 66.666667%;\n }\n\n .offset-9,\n .col-offset-9 {\n margin-left: 75%;\n }\n\n .offset-10,\n .col-offset-10 {\n margin-left: 83.333333%;\n }\n\n .offset-11,\n .col-offset-11 {\n margin-left: 91.666667%;\n }\n\n // Responsiveness\n @media (min-width: $screen-sm) {\n .mx-layoutgrid-fixed {\n max-width: 540px;\n }\n }\n\n @media (min-width: $screen-md) {\n .mx-layoutgrid-fixed {\n max-width: 720px;\n }\n }\n\n @media (min-width: $screen-lg) {\n .mx-layoutgrid-fixed {\n max-width: 960px;\n }\n }\n\n @media (min-width: $screen-xl) {\n .mx-layoutgrid-fixed {\n max-width: 1140px;\n }\n }\n\n @media (min-width: $screen-sm) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0,\n .col-sm-offset-0 {\n margin-left: 0;\n }\n .offset-sm-1,\n .col-sm-offset-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2,\n .col-sm-offset-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3,\n .col-sm-offset-3 {\n margin-left: 25%;\n }\n .offset-sm-4,\n .col-sm-offset-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5,\n .col-sm-offset-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6,\n .col-sm-offset-6 {\n margin-left: 50%;\n }\n .offset-sm-7,\n .col-sm-offset-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8,\n .col-sm-offset-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9,\n .col-sm-offset-9 {\n margin-left: 75%;\n }\n .offset-sm-10,\n .col-sm-offset-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11,\n .col-sm-offset-11 {\n margin-left: 91.666667%;\n }\n }\n\n @media (min-width: $screen-md) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0,\n .col-md-offset-0 {\n margin-left: 0;\n }\n .offset-md-1,\n .col-md-offset-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2,\n .col-md-offset-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3,\n .col-md-offset-3 {\n margin-left: 25%;\n }\n .offset-md-4,\n .col-md-offset-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5,\n .col-md-offset-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6,\n .col-md-offset-6 {\n margin-left: 50%;\n }\n .offset-md-7,\n .col-md-offset-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8,\n .col-md-offset-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9,\n .col-md-offset-9 {\n margin-left: 75%;\n }\n .offset-md-10,\n .col-md-offset-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11,\n .col-md-offset-11 {\n margin-left: 91.666667%;\n }\n }\n\n @media (min-width: $screen-lg) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0,\n .col-lg-offset-0 {\n margin-left: 0;\n }\n .offset-lg-1,\n .col-lg-offset-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2,\n .col-lg-offset-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3,\n .col-lg-offset-3 {\n margin-left: 25%;\n }\n .offset-lg-4,\n .col-lg-offset-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5,\n .col-lg-offset-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6,\n .col-lg-offset-6 {\n margin-left: 50%;\n }\n .offset-lg-7,\n .col-lg-offset-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8,\n .col-lg-offset-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9,\n .col-lg-offset-9 {\n margin-left: 75%;\n }\n .offset-lg-10,\n .col-lg-offset-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11,\n .col-lg-offset-11 {\n margin-left: 91.666667%;\n }\n }\n\n @media (min-width: $screen-xl) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0,\n .col-xl-offset-0 {\n margin-left: 0;\n }\n .offset-xl-1,\n .col-xl-offset-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2,\n .col-xl-offset-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3,\n .col-xl-offset-3 {\n margin-left: 25%;\n }\n .offset-xl-4,\n .col-xl-offset-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5,\n .col-xl-offset-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6,\n .col-xl-offset-6 {\n margin-left: 50%;\n }\n .offset-xl-7,\n .col-xl-offset-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8,\n .col-xl-offset-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9,\n .col-xl-offset-9 {\n margin-left: 75%;\n }\n .offset-xl-10,\n .col-xl-offset-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11,\n .col-xl-offset-11 {\n margin-left: 91.666667%;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin pagination() {\n /* ==========================================================================\n Pagination\n\n Default Mendix pagination widget.\n ========================================================================== */\n\n .widget-pagination {\n overflow: unset;\n\n .pagination {\n overflow: unset;\n\n .btn {\n &:hover {\n color: $btn-default-color;\n background-color: $btn-default-bg-hover;\n }\n\n &:focus {\n outline: unset;\n outline-offset: unset;\n box-shadow: 0 0 0 0.3rem $color-primary-light;\n }\n }\n\n ul {\n margin-top: unset;\n margin-bottom: unset;\n\n li {\n display: inline-flex;\n align-items: center;\n width: unset;\n min-width: 24px;\n min-height: 24px;\n margin-right: 16px;\n padding: 4px 8px;\n transition: all 0.2s ease-in-out;\n color: $font-color-default;\n border-radius: $border-radius-default;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:not(.break-view) {\n &:hover {\n color: $btn-default-color;\n background-color: $btn-default-bg-hover;\n }\n\n &:focus {\n outline: unset;\n outline-offset: unset;\n box-shadow: 0 0 0 0.3rem $color-primary-light;\n }\n\n &.active {\n color: $btn-primary-color;\n background-color: $btn-primary-bg;\n }\n\n &.active:hover {\n color: $btn-primary-color;\n background-color: $btn-primary-bg-hover;\n }\n }\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin progress() {\n /* ==========================================================================\n Progress\n\n Default Mendix progress widget.\n ========================================================================== */\n\n .mx-progress {\n color: $font-color-default;\n background: $bg-color-secondary;\n\n .mx-progress-message {\n color: $font-color-default;\n }\n\n .mx-progress-indicator {\n position: relative;\n overflow: hidden;\n width: 100%;\n max-width: 100%;\n height: 2px;\n margin: auto;\n padding: 0;\n border-radius: 0;\n background: $gray-lighter;\n\n &:before,\n &:after {\n position: absolute;\n top: 0;\n left: 0;\n display: block;\n width: 50%;\n height: 2px;\n content: \"\";\n transform: translate3d(-100%, 0, 0);\n background: $brand-primary;\n }\n\n &::before {\n animation: loader 2s infinite;\n }\n\n &::after {\n animation: loader 2s -2s infinite;\n }\n }\n }\n\n @keyframes loader {\n 0% {\n transform: translate3d(-100%, 0, 0);\n }\n 100% {\n transform: translate3d(200%, 0, 0);\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin progress-bar() {\n /* ==========================================================================\n Progress bar\n\n Default Mendix progress bar widget.\n ========================================================================== */\n\n .progress {\n overflow: hidden;\n display: flex;\n flex-direction: row;\n }\n\n .progress-bar {\n align-self: flex-start;\n width: 0;\n height: 100%;\n transition: width 0.6s ease;\n text-align: center;\n color: #ffffff;\n border-radius: $border-radius-default;\n font-weight: $font-weight-semibold;\n }\n\n .progress-striped .progress-bar,\n .progress-bar-striped {\n background-image: linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-size: 40px 40px;\n }\n\n .widget-progress-bar.active .progress-bar,\n .progress.active .progress-bar,\n .progress-bar.active {\n animation: progress-bar-stripes 2s linear infinite;\n }\n\n @keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin progress-bar-helpers() {\n /* ==========================================================================\n Progress Bar\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n\n .widget-progress-bar {\n width: 100%;\n\n .progress {\n border-radius: $border-radius-default;\n background-color: $bg-color;\n }\n }\n\n .progress-bar-medium .progress,\n .progress-bar-medium .progress-bar {\n height: 16px;\n line-height: 16px;\n font-size: $font-size-small;\n }\n\n .progress-bar-small .progress,\n .progress-bar-small .progress-bar {\n height: 8px;\n line-height: 8px;\n font-size: 0px;\n }\n\n .progress-bar-small .progress-bar > * {\n // Specifically to hide custom labels.\n display: none;\n }\n\n .progress-bar-large .progress,\n .progress-bar-large .progress-bar {\n height: 24px;\n line-height: 24px;\n font-size: $font-size-default;\n }\n\n .widget-progress-bar-clickable:hover {\n cursor: pointer;\n }\n\n .widget-progress-bar.progress-bar-primary .progress-bar {\n background-color: $brand-primary;\n }\n\n .widget-progress-bar.progress-bar-success .progress-bar {\n background-color: $brand-success;\n }\n\n .widget-progress-bar.progress-bar-warning .progress-bar {\n background-color: $brand-warning;\n }\n\n .widget-progress-bar.progress-bar-danger .progress-bar {\n background-color: $brand-danger;\n }\n\n .widget-progress-bar-alert.widget-progress-bar-text-contrast .progress-bar {\n color: $color-danger-darker;\n }\n\n .widget-progress-bar-text-contrast .progress-bar {\n color: $font-color-default;\n }\n\n .widget-progress-bar-negative {\n float: right;\n display: block;\n }\n\n .widget-progress-bar > .alert {\n margin-top: 24px;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin progress-circle() {\n /* ==========================================================================\n Progress Circle\n\n Default Mendix progress circle widget.\n ========================================================================== */\n\n .widget-progress-circle {\n display: inline-block;\n }\n\n .widget-progress-circle-trail-path {\n stroke: $bg-color;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin progress-circle-helpers() {\n /* ==========================================================================\n Progress Circle\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n\n //== Progress circle and label colors\n .widget-progress-circle-primary {\n .widget-progress-circle-path {\n stroke: $brand-primary;\n }\n\n .progressbar-text {\n color: $brand-primary !important;\n }\n }\n\n .widget-progress-circle-success {\n .widget-progress-circle-path {\n stroke: $brand-success;\n }\n\n .progressbar-text {\n color: $brand-success !important;\n }\n }\n\n .widget-progress-circle-warning {\n .widget-progress-circle-path {\n stroke: $brand-warning;\n }\n\n .progressbar-text {\n color: $brand-warning !important;\n }\n }\n\n .widget-progress-circle-danger {\n .widget-progress-circle-path {\n stroke: $brand-danger;\n }\n\n .progressbar-text {\n color: $brand-danger !important;\n }\n }\n\n //== Sizes\n .widget-progress-circle-thickness-medium {\n .widget-progress-circle-trail-path,\n .widget-progress-circle-path {\n stroke-width: 8px;\n }\n }\n\n .widget-progress-circle-thickness-small {\n .widget-progress-circle-trail-path,\n .widget-progress-circle-path {\n stroke-width: 4px;\n }\n }\n\n .widget-progress-circle-thickness-large {\n .widget-progress-circle-trail-path,\n .widget-progress-circle-path {\n stroke-width: 16px;\n }\n }\n\n //== Progress label container\n .progress-circle-label-container {\n position: relative;\n margin: 0;\n\n .progressbar-text {\n position: absolute;\n left: 50%;\n top: 50%;\n padding: 0px;\n margin: 0px;\n transform: translate(-50%, -50%);\n // Original default from the `progressbar.js` library\n color: rgb(85, 85, 85);\n }\n }\n\n .widget-progress-circle-clickable {\n cursor: pointer;\n }\n\n @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n .widget-progress-circle > div {\n height: 0;\n padding: 0;\n width: 100%;\n padding-bottom: 100%;\n\n & > svg {\n top: 0;\n left: 0;\n height: 100%;\n position: absolute;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin rating() {\n /* ==========================================================================\n Rating\n\n Default Mendix rating widget.\n ========================================================================== */\n\n .widget-star-rating-empty {\n color: #cccccc;\n }\n\n .widget-star-rating-full-widget {\n color: #ffa611;\n }\n\n .widget-star-rating-full-default {\n color: #ced0d3;\n }\n\n .widget-star-rating-font-medium {\n font-size: 30px;\n }\n\n .widget-rating {\n .rating-icon {\n font-size: 24px;\n }\n\n .rating-icon-empty {\n color: #ccc;\n }\n\n .rating-icon-full {\n color: #ffa611;\n }\n\n .rating-item {\n &:focus:not(:focus-visible) {\n .rating-image,\n .rating-icon {\n outline: none;\n }\n }\n\n &:focus-visible {\n .rating-image,\n .rating-icon {\n outline: 1px solid $brand-primary;\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin rating-helpers() {\n /* ==========================================================================\n Rating\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n\n .widget-star-rating-full-primary {\n color: $brand-primary;\n }\n\n .widget-star-rating-full-success {\n color: $brand-success;\n }\n\n .widget-star-rating-full-info {\n color: $brand-info;\n }\n\n .widget-star-rating-full-warning {\n color: $brand-warning;\n }\n\n .widget-star-rating-full-danger {\n color: $brand-danger;\n }\n\n .widget-star-rating-full-inverse {\n color: $brand-inverse;\n }\n\n .widget-rating {\n &.widget-rating-small {\n .rating-icon {\n font-size: 16px;\n }\n .rating-image {\n height: 16px;\n }\n }\n &.widget-rating-large {\n .rating-icon {\n font-size: 32px;\n }\n .rating-image {\n height: 32px;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n@import \"../helpers/slider-color-variant\";\n\n@mixin range-slider() {\n /* ==========================================================================\n Range slider\n\n Default Mendix range slider widget.\n ========================================================================== */\n\n .widget-range-slider {\n margin-bottom: 16px;\n padding: 5px 10px;\n\n .rc-slider-handle {\n border-color: $brand-default;\n }\n\n .rc-slider.rc-slider-with-marks {\n padding-bottom: 25px;\n }\n\n @include slider-color-variant($brand-primary);\n }\n}\n","@mixin slider-color-variant($color) {\n .rc-slider:not(.rc-slider-disabled) {\n .rc-slider-track {\n background-color: $color;\n }\n\n .rc-slider-handle:focus {\n border-color: $color;\n box-shadow: 0 0 0 5px lighten($color, 25%);\n outline: none;\n }\n\n .rc-slider-handle-click-focused:focus {\n border-color: lighten($color, 25%);\n box-shadow: unset;\n }\n\n .rc-slider-dot-active,\n .rc-slider-handle:hover {\n border-color: $color;\n }\n\n .rc-slider-handle:active {\n border-color: $color;\n box-shadow: 0 0 5px $color;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@import \"slider-color-variant\";\n\n@mixin range-slider-helpers() {\n /* ==========================================================================\n Range Slider\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n\n .widget-range-slider-primary {\n @include slider-color-variant($brand-primary);\n }\n\n .widget-range-slider-success {\n @include slider-color-variant($brand-success);\n }\n\n .widget-range-slider-warning {\n @include slider-color-variant($brand-warning);\n }\n\n .widget-range-slider-danger {\n @include slider-color-variant($brand-danger);\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@import \"../helpers/slider-color-variant\";\n\n@mixin slider() {\n /* ==========================================================================\n Slider\n\n Default Mendix slider widget.\n ========================================================================== */\n\n .widget-slider {\n margin-bottom: 16px;\n padding: 5px 10px;\n\n .rc-slider-handle {\n border-color: $brand-default;\n }\n\n .rc-slider.rc-slider-with-marks {\n padding-bottom: 25px;\n }\n\n @include slider-color-variant($brand-primary);\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n@import \"slider-color-variant\";\n\n@mixin slider-helpers() {\n /* ==========================================================================\n Slider\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n\n .widget-slider-primary {\n @include slider-color-variant($brand-primary);\n }\n\n .widget-slider-success {\n @include slider-color-variant($brand-success);\n }\n\n .widget-slider-warning {\n @include slider-color-variant($brand-warning);\n }\n\n .widget-slider-danger {\n @include slider-color-variant($brand-danger);\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin timeline() {\n /* ==========================================================================\n Timeline\n\n Widget styles\n ========================================================================== */\n\n //Timeline grouping\n .widget-timeline-date-header {\n display: flex;\n justify-content: center;\n width: $timeline-grouping-size;\n overflow-wrap: break-word;\n padding: $spacing-small;\n border: 1px solid $timeline-grouping-border-color;\n border-radius: $timeline-grouping-border-radius;\n }\n\n //Timeline entries\n .widget-timeline-events-wrapper {\n display: flex;\n flex: 1;\n margin-left: $timeline-grouping-size/2;\n padding: $spacing-large 0 0 0;\n border-left: 1px solid $timeline-border-color;\n\n ul {\n flex: 1;\n padding: 0;\n list-style: none;\n margin-bottom: 0;\n }\n }\n\n //Timeline entry\n .widget-timeline-event {\n flex: 1;\n position: relative;\n margin-left: -1px;\n padding: 0 $spacing-large $spacing-large $spacing-large;\n margin-bottom: $spacing-medium;\n\n &.clickable {\n cursor: pointer;\n transition: background 0.8s;\n\n &:hover {\n .widget-timeline-title {\n }\n }\n }\n }\n\n //Timeline entry content wrapper\n .widget-timeline-icon-wrapper {\n position: absolute;\n top: 0;\n left: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n transform: translateX(-50%);\n\n .glyphicon {\n font-size: $timeline-icon-size;\n }\n\n img {\n max-width: 100%;\n max-height: 100%;\n }\n }\n\n .widget-timeline-content-wrapper {\n display: flex;\n\n .widget-timeline-date-time-wrapper {\n order: 2;\n margin-right: 0;\n }\n\n .widget-timeline-info-wrapper {\n flex: 1;\n order: 1;\n margin-right: $spacing-medium;\n }\n }\n\n .timeline-with-image .widget-timeline-content-wrapper {\n display: flex;\n\n .widget-timeline-date-time-wrapper {\n order: 1;\n margin-right: $spacing-medium;\n }\n\n .widget-timeline-info-wrapper {\n flex: 1;\n order: 2;\n }\n }\n\n //Timeline entry components\n .widget-timeline-icon-circle {\n width: $timeline-icon-size;\n height: $timeline-icon-size;\n border-radius: 50%;\n background-color: $timeline-icon-color;\n }\n\n .widget-timeline-title {\n @extend h5;\n }\n\n .widget-timeline-description {\n }\n\n .widget-timeline-no-divider {\n }\n\n .widget-eventTime {\n @extend h5;\n color: $timeline-event-time-color;\n }\n\n .timeline-entry-image {\n display: flex;\n justify-content: center;\n align-content: center;\n border-radius: $border-radius-default;\n height: $timeline-image-size;\n width: $timeline-image-size;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin tooltip() {\n /* ==========================================================================\n Tooltip\n\n Widget styles\n ========================================================================== */\n\n // Tooltip inline\n .widget-tooltip-inline {\n display: inline-block;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin helper-classes() {\n /* ==========================================================================\n Helper\n\n Default Mendix helpers\n ========================================================================== */\n $important-helpers-value: if($important-helpers, \" !important\", \"\");\n\n // Display properties\n .d-none {\n display: none #{$important-helpers-value};\n }\n\n .d-flex {\n display: flex #{$important-helpers-value};\n }\n\n .d-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n\n .d-inline {\n display: inline #{$important-helpers-value};\n }\n\n .d-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n\n .show,\n .d-block {\n display: block #{$important-helpers-value};\n }\n\n .table,\n .d-table {\n display: table #{$important-helpers-value};\n }\n\n .table-row,\n .d-table-row {\n display: table-row #{$important-helpers-value};\n }\n\n .table-cell,\n .d-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n\n .hide,\n .hidden {\n display: none #{$important-helpers-value};\n visibility: hidden #{$important-helpers-value};\n }\n\n .invisible {\n visibility: hidden #{$important-helpers-value};\n }\n\n .display-ie8-only:not([attr*=\"\"]) {\n display: none #{$important-helpers-value};\n padding: 0 #{$important-helpers-value};\n }\n\n .list-nostyle {\n ul {\n margin: 0 #{$important-helpers-value};\n padding: 0 #{$important-helpers-value};\n\n li {\n list-style-type: none #{$important-helpers-value};\n }\n }\n }\n\n .nowrap,\n .nowrap * {\n overflow: hidden #{$important-helpers-value};\n // Star for inside an element, IE8 span > a\n white-space: nowrap #{$important-helpers-value};\n text-overflow: ellipsis #{$important-helpers-value};\n }\n\n // Render DIV as Table Cells\n .table {\n display: table #{$important-helpers-value};\n }\n\n .table-row {\n display: table-row #{$important-helpers-value};\n }\n\n .table-cell {\n display: table-cell #{$important-helpers-value};\n }\n\n // Quick floats\n .pull-left {\n float: left #{$important-helpers-value};\n }\n\n .pull-right {\n float: right #{$important-helpers-value};\n }\n\n // Align options\n .align-top {\n vertical-align: top #{$important-helpers-value};\n }\n\n .align-middle {\n vertical-align: middle #{$important-helpers-value};\n }\n\n .align-bottom {\n vertical-align: bottom #{$important-helpers-value};\n }\n\n // Flex alignments\n .row-left {\n display: flex #{$important-helpers-value};\n align-items: center #{$important-helpers-value};\n flex-flow: row #{$important-helpers-value};\n justify-content: flex-start #{$important-helpers-value};\n }\n\n .row-center {\n display: flex #{$important-helpers-value};\n align-items: center #{$important-helpers-value};\n flex-flow: row #{$important-helpers-value};\n justify-content: center #{$important-helpers-value};\n }\n\n .row-right {\n display: flex #{$important-helpers-value};\n align-items: center #{$important-helpers-value};\n flex-flow: row #{$important-helpers-value};\n justify-content: flex-end #{$important-helpers-value};\n }\n\n .col-left {\n display: flex #{$important-helpers-value};\n align-items: flex-start #{$important-helpers-value};\n flex-direction: column #{$important-helpers-value};\n justify-content: center #{$important-helpers-value};\n }\n\n .col-center {\n display: flex #{$important-helpers-value};\n align-items: center #{$important-helpers-value};\n flex-direction: column #{$important-helpers-value};\n justify-content: center #{$important-helpers-value};\n }\n\n .col-right {\n display: flex #{$important-helpers-value};\n align-items: flex-end #{$important-helpers-value};\n flex-direction: column #{$important-helpers-value};\n justify-content: center #{$important-helpers-value};\n }\n\n .shadow-small {\n box-shadow: $shadow-small $shadow-color;\n margin-bottom: 5px;\n border-width: 1px #{$important-helpers-value};\n border-style: solid;\n border-color: $shadow-color-border;\n }\n .shadow-medium {\n box-shadow: $shadow-medium $shadow-color;\n margin-bottom: 15px;\n border-width: 1px #{$important-helpers-value};\n border-style: solid;\n border-color: $shadow-color-border;\n }\n\n .shadow-large {\n box-shadow: $shadow-large $shadow-color;\n margin-bottom: 25px;\n border-width: 1px #{$important-helpers-value};\n border-style: solid;\n border-color: $shadow-color-border;\n }\n\n // Media\n @media (max-width: $screen-sm-max) {\n .hide-phone {\n display: none #{$important-helpers-value};\n }\n }\n\n @media (min-width: $screen-md) and (max-width: $screen-md-max) {\n .hide-tablet {\n display: none #{$important-helpers-value};\n }\n }\n\n @media (min-width: $screen-lg) {\n .hide-desktop {\n display: none #{$important-helpers-value};\n }\n }\n\n @media (max-width: $screen-xs-max) {\n .hide-xs,\n .hidden-xs,\n .d-xs-none {\n display: none #{$important-helpers-value};\n }\n .d-xs-flex {\n display: flex #{$important-helpers-value};\n }\n .d-xs-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-xs-inline {\n display: inline #{$important-helpers-value};\n }\n .d-xs-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-xs-block {\n display: block #{$important-helpers-value};\n }\n .d-xs-table {\n display: table #{$important-helpers-value};\n }\n .d-xs-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-xs-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n }\n\n @media (min-width: $screen-sm) and (max-width: $screen-sm-max) {\n .hide-sm,\n .hidden-sm,\n .d-sm-none {\n display: none #{$important-helpers-value};\n }\n .d-sm-flex {\n display: flex #{$important-helpers-value};\n }\n .d-sm-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-sm-inline {\n display: inline #{$important-helpers-value};\n }\n .d-sm-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-sm-block {\n display: block #{$important-helpers-value};\n }\n .d-sm-table {\n display: table #{$important-helpers-value};\n }\n .d-sm-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-sm-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n }\n\n @media (min-width: $screen-md) and (max-width: $screen-md-max) {\n .hide-md,\n .hidden-md,\n .d-md-none {\n display: none #{$important-helpers-value};\n }\n .d-md-flex {\n display: flex #{$important-helpers-value};\n }\n .d-md-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-md-inline {\n display: inline #{$important-helpers-value};\n }\n .d-md-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-md-block {\n display: block #{$important-helpers-value};\n }\n .d-md-table {\n display: table #{$important-helpers-value};\n }\n .d-md-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-md-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n }\n\n @media (min-width: $screen-lg) and (max-width: $screen-xl) {\n .hide-lg,\n .hidden-lg,\n .d-lg-none {\n display: none #{$important-helpers-value};\n }\n .d-lg-flex {\n display: flex #{$important-helpers-value};\n }\n .d-lg-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-lg-inline {\n display: inline #{$important-helpers-value};\n }\n .d-lg-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-lg-block {\n display: block #{$important-helpers-value};\n }\n .d-lg-table {\n display: table #{$important-helpers-value};\n }\n .d-lg-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-lg-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n }\n\n @media (min-width: $screen-xl) {\n .hide-xl,\n .hidden-xl,\n .d-xl-none {\n display: none #{$important-helpers-value};\n }\n .d-xl-flex {\n display: flex #{$important-helpers-value};\n }\n .d-xl-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-xl-inline {\n display: inline #{$important-helpers-value};\n }\n .d-xl-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-xl-block {\n display: block #{$important-helpers-value};\n }\n .d-xl-table {\n display: table #{$important-helpers-value};\n }\n .d-xl-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-xl-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n }\n\n //Box-shadow\n\n .shadow {\n box-shadow: 0 2px 20px 1px rgba(5, 15, 129, 0.05) #{$important-helpers-value};\n }\n\n //Height helpers\n\n .h-25 {\n height: 25% #{$important-helpers-value};\n }\n\n .h-50 {\n height: 50% #{$important-helpers-value};\n }\n\n .h-75 {\n height: 75% #{$important-helpers-value};\n }\n\n .h-100 {\n height: 100% #{$important-helpers-value};\n }\n\n //Width helpers\n\n .w-25 {\n width: 25% #{$important-helpers-value};\n }\n\n .w-50 {\n width: 50% #{$important-helpers-value};\n }\n\n .w-75 {\n width: 75% #{$important-helpers-value};\n }\n\n .w-100 {\n width: 100% #{$important-helpers-value};\n }\n\n //Border helpers\n .border {\n border: 1px solid $border-color-default #{$important-helpers-value};\n }\n\n .border-top {\n border-top: 1px solid $border-color-default #{$important-helpers-value};\n }\n\n .border-bottom {\n border-bottom: 1px solid $border-color-default #{$important-helpers-value};\n }\n\n .border-left {\n border-left: 1px solid $border-color-default #{$important-helpers-value};\n }\n\n .border-right {\n border-right: 1px solid $border-color-default #{$important-helpers-value};\n }\n\n .border-rounded {\n border-radius: $border-radius-default #{$important-helpers-value};\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin barcode-scanner() {\n /* ==========================================================================\n Barcode-scanner\n\n Override of default Bootstrap barcode-scanner style\n ========================================================================== */\n\n .mx-barcode-scanner {\n background: #000000;\n z-index: 110;\n\n .close-button {\n color: white;\n .glyphicon {\n font-size: 16px;\n }\n }\n\n .video-canvas {\n .canvas-background {\n background-color: rgba(0, 0, 0, 0.7);\n }\n\n .canvas-middle {\n .canvas-middle-middle {\n $corner-offset: 13px;\n .corner {\n $corner-border: 5px solid #ffffff;\n border-left: $corner-border;\n border-top: $corner-border;\n\n &.corner-top-left {\n top: -$corner-offset;\n left: -$corner-offset;\n }\n &.corner-top-right {\n top: -$corner-offset;\n right: -$corner-offset;\n transform: rotate(90deg);\n }\n &.corner-bottom-right {\n bottom: -$corner-offset;\n right: -$corner-offset;\n transform: rotate(180deg);\n }\n &.corner-bottom-left {\n bottom: -$corner-offset;\n left: -$corner-offset;\n transform: rotate(270deg);\n }\n }\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin accordion() {\n /* ==========================================================================\n Accordion\n\n Default Mendix accordion widget styles.\n ========================================================================== */\n\n .widget-accordion {\n .widget-accordion-group {\n @include get-accordion-group-styles(\n $accordion-header-default-bg,\n $accordion-header-default-bg-hover,\n $accordion-header-default-color,\n $brand-primary,\n $accordion-default-border-color\n );\n }\n\n &.widget-accordion-preview {\n .widget-accordion-group {\n @include get-accordion-preview-group-styles($accordion-header-default-color);\n }\n }\n }\n}\n\n@mixin get-accordion-group-styles($background-color, $background-color-hover, $color, $color-hover, $border-color) {\n border-color: $border-color;\n background-color: $bg-color-secondary;\n\n &:first-child {\n border-top-left-radius: $border-radius-default;\n border-top-right-radius: $border-radius-default;\n\n > .widget-accordion-group-header > .widget-accordion-group-header-button {\n border-top-left-radius: calc(#{$border-radius-default} - 1px);\n border-top-right-radius: calc(#{$border-radius-default} - 1px);\n }\n }\n\n &:last-child {\n border-bottom-left-radius: $border-radius-default;\n border-bottom-right-radius: $border-radius-default;\n }\n\n &.widget-accordion-group-collapsed:last-child,\n &.widget-accordion-group-collapsing:last-child {\n > .widget-accordion-group-header > .widget-accordion-group-header-button {\n border-bottom-left-radius: calc(#{$border-radius-default} - 1px);\n border-bottom-right-radius: calc(#{$border-radius-default} - 1px);\n }\n }\n\n &.widget-accordion-group-collapsing:last-child {\n > .widget-accordion-group-header > .widget-accordion-group-header-button {\n transition: border-radius 5ms ease 200ms;\n }\n }\n\n &.widget-accordion-group-expanding:last-child {\n > .widget-accordion-group-header > .widget-accordion-group-header-button {\n transition: border-radius 5ms ease 80ms;\n }\n }\n\n > .widget-accordion-group-header > .widget-accordion-group-header-button {\n cursor: auto;\n background-color: $background-color;\n padding: $spacing-medium;\n\n > :is(h1, h2, h3, h4, h5, h6) {\n font-size: $font-size-h5;\n font-weight: $font-weight-header;\n }\n\n > :is(h1, h2, h3, h4, h5, h6, p, span) {\n color: $color;\n }\n\n .widget-accordion-group-header-button-icon {\n fill: $color;\n }\n\n &.widget-accordion-group-header-button-clickable {\n &:hover,\n &:focus,\n &:active {\n background-color: $background-color-hover;\n\n > :is(h1, h2, h3, h4, h5, h6, p, span) {\n color: $color-hover;\n }\n\n .widget-accordion-group-header-button-icon {\n fill: $color-hover;\n }\n }\n }\n }\n\n > .widget-accordion-group-content-wrapper > .widget-accordion-group-content {\n border-color: $border-color;\n padding: $spacing-small $spacing-medium $spacing-large $spacing-medium;\n }\n}\n\n@mixin get-accordion-preview-group-styles($color) {\n .widget-accordion-group-header-button {\n > div > :is(h1, h2, h3, h4, h5, h6) {\n font-size: $font-size-h5;\n font-weight: $font-weight-header;\n }\n\n > div > :is(h1, h2, h3, h4, h5, h6, p, span) {\n color: $color;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin accordion-helpers() {\n /* ==========================================================================\n Accordion\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n\n .widget-accordion {\n .widget-accordion-group {\n &.widget-accordion-brand-primary {\n @include get-accordion-group-styles(\n $accordion-header-primary-bg,\n $accordion-header-primary-bg-hover,\n $accordion-header-primary-color,\n $accordion-header-primary-color,\n $accordion-primary-border-color\n );\n }\n\n &.widget-accordion-brand-secondary {\n @include get-accordion-group-styles(\n $accordion-header-secondary-bg,\n $accordion-header-secondary-bg-hover,\n $accordion-header-secondary-color,\n $accordion-header-secondary-color,\n $accordion-secondary-border-color\n );\n }\n\n &.widget-accordion-brand-success {\n @include get-accordion-group-styles(\n $accordion-header-success-bg,\n $accordion-header-success-bg-hover,\n $accordion-header-success-color,\n $accordion-header-success-color,\n $accordion-success-border-color\n );\n }\n\n &.widget-accordion-brand-warning {\n @include get-accordion-group-styles(\n $accordion-header-warning-bg,\n $accordion-header-warning-bg-hover,\n $accordion-header-warning-color,\n $accordion-header-warning-color,\n $accordion-warning-border-color\n );\n }\n\n &.widget-accordion-brand-danger {\n @include get-accordion-group-styles(\n $accordion-header-danger-bg,\n $accordion-header-danger-bg-hover,\n $accordion-header-danger-color,\n $accordion-header-danger-color,\n $accordion-danger-border-color\n );\n }\n }\n\n &.widget-accordion-preview {\n .widget-accordion-group {\n &.widget-accordion-brand-primary {\n @include get-accordion-preview-group-styles($accordion-header-primary-color);\n }\n\n &.widget-accordion-brand-secondary {\n @include get-accordion-preview-group-styles($accordion-header-secondary-color);\n }\n\n &.widget-accordion-brand-success {\n @include get-accordion-preview-group-styles($accordion-header-success-color);\n }\n\n &.widget-accordion-brand-warning {\n @include get-accordion-preview-group-styles($accordion-header-warning-color);\n }\n\n &.widget-accordion-brand-danger {\n @include get-accordion-preview-group-styles($accordion-header-danger-color);\n }\n }\n }\n\n &.widget-accordion-bordered-all {\n > .widget-accordion-group {\n &:first-child {\n border-top-style: solid;\n }\n\n border-right-style: solid;\n border-left-style: solid;\n }\n }\n\n &.widget-accordion-bordered-horizontal {\n > .widget-accordion-group {\n &:first-child {\n border-top-style: solid;\n }\n }\n }\n\n &.widget-accordion-bordered-none {\n > .widget-accordion-group {\n border-bottom: none;\n }\n }\n\n &.widget-accordion-striped {\n > .widget-accordion-group:not(:is(.widget-accordion-brand-primary, .widget-accordion-brand-secondary, .widget-accordion-brand-success, .widget-accordion-brand-warning, .widget-accordion-brand-danger)):nth-child(2n\n + 1) {\n > .widget-accordion-group-header > .widget-accordion-group-header-button {\n background-color: $accordion-bg-striped;\n\n &.widget-accordion-group-header-button-clickable {\n &:hover,\n &:focus,\n &:active {\n background-color: $accordion-bg-striped-hover;\n }\n }\n }\n\n > .widget-accordion-group-content {\n background-color: $accordion-bg-striped;\n }\n }\n }\n\n &.widget-accordion-compact {\n > .widget-accordion-group {\n > .widget-accordion-group-header > .widget-accordion-group-header-button {\n padding: $spacing-smaller $spacing-small;\n }\n\n > .widget-accordion-group-content {\n padding: $spacing-smaller $spacing-small $spacing-medium $spacing-small;\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin dijit-widget() {\n /*\n * Mendix Documentation\n * Special styles for presenting components\n */\n\n /*\n * Dijit Widgets\n *\n * Default Dojo Dijit Widgets\n */\n\n /*\n * Dijit Tooltip Widget\n *\n * Default tooltip used for Mendix widgets\n */\n\n .mx-tooltip {\n .dijitTooltipContainer {\n border-width: 1px;\n border-color: $gray-light;\n border-radius: 4px;\n background: #ffffff;\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n\n .mx-tooltip-content {\n padding: 12px;\n }\n\n .form-group {\n margin-bottom: 4px;\n }\n }\n\n .dijitTooltipConnector {\n width: 0;\n height: 0;\n margin-left: -8px;\n border-width: 10px 10px 10px 0;\n border-style: solid;\n border-color: transparent;\n border-right-color: $gray-light;\n }\n }\n\n /*\n * Dijit Border Container\n *\n * Used in Mendix as split pane containers\n */\n\n .dijitBorderContainer {\n padding: 8px;\n background-color: #fcfcfc;\n\n .dijitSplitterV,\n .dijitGutterV {\n width: 5px;\n border: 0;\n background: #fcfcfc;\n }\n\n .dijitSplitterH,\n .dijitGutterH {\n height: 5px;\n border: 0;\n background: #fcfcfc;\n }\n\n .dijitSplitterH {\n .dijitSplitterThumb {\n top: 2px;\n width: 19px;\n height: 1px;\n background: #b0b0b0;\n }\n }\n\n .dijitSplitterV {\n .dijitSplitterThumb {\n left: 2px;\n width: 1px;\n height: 19px;\n background: #b0b0b0;\n }\n }\n\n .dijitSplitContainer-child,\n .dijitBorderContainer-child {\n border: 1px solid #cccccc;\n }\n\n .dijitBorderContainer-dijitTabContainerTop,\n .dijitBorderContainer-dijitTabContainerBottom,\n .dijitBorderContainer-dijitTabContainerLeft,\n .dijitBorderContainer-dijitTabContainerRight {\n border: none;\n }\n\n .dijitBorderContainer-dijitBorderContainer {\n padding: 0;\n border: none;\n }\n\n .dijitSplitterActive {\n /* For IE8 and earlier */\n margin: 0;\n opacity: 0.6;\n background-color: #aaaaaa;\n background-image: none;\n font-size: 1px;\n }\n\n .dijitSplitContainer-dijitContentPane,\n .dijitBorderContainer-dijitContentPane {\n padding: 8px;\n background-color: #ffffff;\n }\n }\n\n /*\n * Dijit Menu Popup\n *\n * Used in datepickers and calendar widgets\n */\n\n .dijitMenuPopup {\n margin-top: 8px;\n\n .dijitMenu {\n display: block;\n width: 200px !important;\n margin-top: 0; // No top margin because there is no parent with margin bottom\n padding: 12px 8px;\n border-radius: 3px;\n background: $brand-inverse;\n\n &:after {\n position: absolute;\n bottom: 100%;\n left: 20px;\n width: 0;\n height: 0;\n margin-left: -8px;\n content: \" \";\n pointer-events: none;\n border: medium solid transparent;\n border-width: 8px;\n border-bottom-color: $brand-inverse;\n }\n\n // Menu item\n .dijitMenuItem {\n background: transparent;\n\n .dijitMenuItemLabel {\n display: block;\n overflow: hidden;\n width: 180px !important;\n padding: 8px;\n text-overflow: ellipsis;\n color: #ffffff;\n border-radius: 3px;\n }\n\n // Hover\n &.dijitMenuItemHover {\n background: none;\n\n .dijitMenuItemLabel {\n background: $brand-primary;\n }\n }\n }\n\n // New label\n .tg_newlabelmenuitem {\n .dijitMenuItemLabel {\n font-weight: $font-weight-bold;\n }\n }\n\n // Seperator\n .dijitMenuSeparator {\n td {\n padding: 0;\n border-bottom-width: 3px;\n }\n\n .dijitMenuSeparatorIconCell {\n > div {\n margin: 0; //override dijit styling\n }\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n$default-android-color: #6fbeb5;\n$default-ios-color: rgb(100, 189, 99);\n\n@mixin bootstrap-style-ios($brand-style) {\n border-color: $brand-style;\n background-color: $brand-style;\n box-shadow: $brand-style 0 0 0 16px inset;\n}\n\n@mixin bootstrap-style-android($brand-style) {\n background-color: lighten($brand-style, 10%);\n}\n\n@mixin style($brand-key, $brand-variable) {\n div.widget-switch-brand-#{$brand-key} {\n .widget-switch {\n .widget-switch-btn-wrapper {\n &.checked {\n @include bootstrap-style-ios($brand-variable);\n }\n }\n }\n &.android {\n .widget-switch {\n .widget-switch-btn-wrapper {\n &.checked {\n @include bootstrap-style-android($brand-variable);\n\n .widget-switch-btn {\n background: $brand-variable;\n }\n }\n }\n }\n }\n }\n}\n\n// maintained for backwards compatibility prior to Switch 3.0.0.\n@mixin ios {\n .widget-switch-btn-wrapper {\n &.checked {\n &.widget-switch-btn-wrapper-default {\n @include bootstrap-style-ios($default-ios-color);\n }\n\n &.widget-switch-btn-wrapper-success {\n @include bootstrap-style-ios($brand-success);\n }\n\n &.widget-switch-btn-wrapper-info {\n @include bootstrap-style-ios($brand-info);\n }\n\n &.widget-switch-btn-wrapper-primary {\n @include bootstrap-style-ios($brand-primary);\n }\n\n &.widget-switch-btn-wrapper-warning {\n @include bootstrap-style-ios($brand-warning);\n }\n\n &.widget-switch-btn-wrapper-danger {\n @include bootstrap-style-ios($brand-danger);\n }\n\n &.widget-switch-btn-wrapper-inverse {\n @include bootstrap-style-ios($brand-inverse);\n }\n }\n }\n}\n\n// maintained for backwards compatibility prior to Switch 3.0.0.\n@mixin android {\n .widget-switch-btn-wrapper {\n &.checked {\n &.widget-switch-btn-wrapper-default {\n @include bootstrap-style-android($default-android-color);\n\n .widget-switch-btn {\n background: $default-android-color;\n }\n }\n\n &.widget-switch-btn-wrapper-success {\n @include bootstrap-style-android($brand-success);\n\n .widget-switch-btn {\n background: $brand-success;\n }\n }\n\n &.widget-switch-btn-wrapper-info {\n @include bootstrap-style-android($brand-info);\n\n .widget-switch-btn {\n background: $brand-info;\n }\n }\n\n &.widget-switch-btn-wrapper-primary {\n @include bootstrap-style-android($brand-primary);\n\n .widget-switch-btn {\n background: $brand-primary;\n }\n }\n\n &.widget-switch-btn-wrapper-warning {\n @include bootstrap-style-android($brand-warning);\n\n .widget-switch-btn {\n background: $brand-warning;\n }\n }\n\n &.widget-switch-btn-wrapper-danger {\n @include bootstrap-style-android($brand-danger);\n\n .widget-switch-btn {\n background: $brand-danger;\n }\n }\n\n &.widget-switch-btn-wrapper-inverse {\n @include bootstrap-style-android($brand-inverse);\n\n .widget-switch-btn {\n background: $brand-inverse;\n }\n }\n }\n }\n}\n\n@mixin switch() {\n .widget-switch-btn-wrapper {\n &:focus {\n outline: 1px solid $brand-primary;\n }\n }\n\n @include style(\"primary\", $brand-primary);\n @include style(\"secondary\", $brand-default);\n @include style(\"success\", $brand-success);\n @include style(\"warning\", $brand-warning);\n @include style(\"danger\", $brand-danger);\n\n // below is maintained for backwards compatibility prior to Switch 3.0.0.\n div {\n &.widget-switch {\n &.iOS {\n @include ios;\n }\n\n &.android {\n @include android;\n }\n\n &.auto {\n @include ios;\n }\n }\n }\n\n html {\n div {\n &.dj_android {\n .widget-switch {\n &.auto {\n @include android;\n }\n }\n }\n\n &.dj_ios {\n .widget-switch {\n &.auto {\n @include ios;\n }\n }\n }\n }\n }\n}\n","/* ==========================================================================\n Atlas layout\n\n The core stucture of all atlas layouts\n========================================================================== */\n@mixin layout-atlas() {\n .layout-atlas {\n // Toggle button\n .toggle-btn > img,\n .toggle-btn > .glyphicon {\n margin: 0;\n }\n\n .mx-scrollcontainer-open {\n .expand-btn > img {\n transform: rotate(180deg);\n }\n }\n\n // Sidebar\n .region-sidebar {\n background-color: $navsidebar-bg;\n z-index: 101;\n box-shadow: 0 0 4px rgb(0 0 0 / 14%), 2px 4px 8px rgb(0 0 0 / 28%);\n\n .mx-scrollcontainer-wrapper {\n display: flex;\n flex-direction: column;\n padding: $spacing-small 0;\n }\n\n .mx-navigationtree .navbar-inner > ul > li > a {\n padding: $spacing-medium;\n\n .glyphicon {\n margin-right: $spacing-small;\n }\n }\n\n .sidebar-heading {\n background: $navsidebar-sub-bg;\n }\n\n .toggle-btn {\n margin-right: $spacing-small;\n border-color: transparent;\n border-radius: 0;\n background: transparent;\n padding: $spacing-medium;\n }\n }\n\n // Topbar\n .region-topbar {\n position: relative;\n z-index: 2; // Show dropshadow\n min-height: $topbar-minimalheight;\n background-color: $navtopbar-bg;\n\n // Topbar Content\n .topbar-content {\n display: flex;\n align-items: center;\n min-height: $topbar-minimalheight;\n }\n\n // Toggle btn\n .toggle-btn {\n padding: 0;\n margin-right: $spacing-medium;\n border-color: transparent;\n border-radius: 0;\n background: transparent;\n }\n\n // For your company, product, or project name\n .navbar-brand {\n display: inline-block;\n float: none; // reset bootstrap\n height: auto;\n padding: 0;\n line-height: inherit;\n font-size: 16px;\n margin-right: $spacing-small;\n\n img {\n display: inline-block;\n margin-right: $spacing-small;\n @if $brand-logo !=false {\n width: 0;\n height: 0;\n padding: ($brand-logo-height / 2) ($brand-logo-width / 2);\n background-image: url($brand-logo);\n background-repeat: no-repeat;\n background-position: left center;\n background-size: $brand-logo-width;\n } @else {\n width: auto;\n height: $brand-logo-height;\n }\n }\n\n a {\n margin-left: $spacing-small;\n color: $navbar-brand-name;\n font-size: 20px;\n\n &:hover,\n &:focus {\n text-decoration: none;\n }\n }\n }\n\n .mx-navbar {\n display: inline-flex;\n vertical-align: middle;\n background: transparent;\n justify-content: center;\n align-items: center;\n\n & > .mx-navbar-item {\n & > a {\n margin-top: 5px;\n padding: 0 20px;\n }\n }\n }\n }\n\n .mx-scrollcontainer-slide {\n &:not(.mx-scrollcontainer-open) > .region-sidebar {\n overflow: hidden;\n }\n }\n }\n}\n","/* ==========================================================================\n Atlas layout\n\n Extra styling for phone layouts\n========================================================================== */\n@mixin layout-atlas-phone() {\n .layout-atlas-phone {\n .region-topbar {\n min-height: $m-header-height;\n border-style: none;\n background-color: $m-header-bg;\n\n &::before {\n display: none;\n }\n }\n\n .region-sidebar {\n .mx-navigationtree .navbar-inner > ul > li > a .glyphicon {\n margin-right: $spacing-medium;\n }\n }\n }\n}\n","/* ==========================================================================\n Atlas layout\n\n Extra styling for responsive layouts\n========================================================================== */\n@mixin layout-atlas-responsive() {\n $sidebar-icon-height: 52px;\n $sidebar-icon-width: 52px;\n\n .layout-atlas-responsive,\n .layout-atlas-responsive-default {\n @media (min-width: $screen-md) {\n .mx-scrollcontainer-shrink:not(.mx-scrollcontainer-open) > .region-sidebar,\n .mx-scrollcontainer-push:not(.mx-scrollcontainer-open) > .region-sidebar,\n .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open) > .region-sidebar {\n width: $navsidebar-width-closed !important;\n\n .mx-scrollcontainer-wrapper > .mx-navigationtree ul li {\n &.mx-navigationtree-has-items a {\n white-space: nowrap;\n }\n\n &.mx-navigationtree-has-items:hover > ul {\n position: absolute;\n z-index: 100;\n top: 0;\n bottom: 0;\n left: $sidebar-icon-width;\n display: block;\n min-width: auto;\n padding: $spacing-small 0;\n\n & > li.mx-navigationtree-has-items:hover > ul {\n left: 100%;\n }\n }\n\n &.mx-navigationtree-collapsed,\n &.mx-navigationtree-has-items {\n ul {\n display: none;\n }\n }\n }\n }\n\n .widget-sidebar:not(.widget-sidebar-expanded) {\n .mx-navigationtree ul li {\n &.mx-navigationtree-has-items:hover {\n ul {\n position: absolute;\n z-index: 100;\n top: 0;\n bottom: 0;\n left: $sidebar-icon-width;\n display: block;\n overflow-y: auto;\n min-width: auto;\n padding: $spacing-small 0;\n }\n }\n\n &.mx-navigationtree-collapsed,\n &.mx-navigationtree-has-items {\n ul {\n display: none;\n }\n }\n }\n }\n }\n\n .mx-scrollcontainer-slide {\n &:not(.mx-scrollcontainer-open) > .region-sidebar {\n overflow: hidden;\n }\n\n &.mx-scrollcontainer-open > .region-sidebar {\n width: $navsidebar-width-closed !important;\n\n & > .mx-scrollcontainer-wrapper {\n position: relative;\n }\n }\n\n .region-sidebar > .mx-scrollcontainer-wrapper {\n z-index: 2;\n left: -$navsidebar-width-closed;\n background-color: inherit;\n }\n }\n\n // Push aside for mobile\n @media (max-width: $screen-sm-max) {\n .mx-scrollcontainer-open:not(.mx-scrollcontainer-slide) {\n width: 1100px;\n }\n\n .mx-scrollcontainer-slide .toggle-btn {\n display: inline-block !important;\n }\n }\n\n // Sidebar\n .region-sidebar {\n .toggle-btn {\n width: $sidebar-icon-width;\n border-color: transparent;\n border-radius: 0;\n background: transparent;\n }\n\n .mx-scrollcontainer-wrapper {\n .toggle-btn-wrapper {\n display: flex;\n padding: $spacing-small;\n align-items: center;\n min-height: calc(#{$topbar-minimalheight} + 4px);\n background: $navsidebar-sub-bg;\n }\n\n .toggle-btn {\n padding: $spacing-medium;\n\n img {\n width: 24px;\n height: 24px;\n }\n }\n\n .toggle-text {\n color: #fff;\n font-weight: bold;\n }\n\n & > .mx-navigationtree .navbar-inner > ul > li {\n & > a {\n height: $sidebar-icon-height;\n padding: $spacing-small 0;\n white-space: nowrap;\n overflow: hidden;\n // Glyph icon\n .glyphicon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: $sidebar-icon-width;\n height: $sidebar-icon-height;\n padding: $spacing-small $spacing-medium;\n border-radius: $border-radius-default;\n }\n }\n }\n }\n }\n\n // Topbar\n .region-topbar {\n padding: 0 $spacing-small;\n\n .toggle-btn {\n padding: 0;\n border-color: transparent;\n border-radius: 0;\n background: transparent;\n }\n }\n }\n\n // Topbar variant\n .layout-atlas-responsive-topbar {\n .region-topbar {\n padding: 0 $spacing-medium;\n @media (max-width: $screen-sm-max) {\n padding: 0 $spacing-small;\n }\n }\n }\n\n // Fix Safari issue of sidebar disappearing\n .profile-tablet {\n .mx-scrollcontainer:not(.mx-scrollcontainer-open) > .region-sidebar {\n overflow-y: hidden;\n\n .mx-scrollcontainer-wrapper {\n overflow: visible;\n }\n }\n }\n}\n","/* ==========================================================================\n Atlas layout\n\n Extra styling for tablet layouts\n========================================================================== */\n@mixin layout-atlas-tablet() {\n .layout-atlas-tablet {\n .region-topbar {\n min-height: $m-header-height;\n border-style: none;\n background-color: $m-header-bg;\n\n &::before {\n display: none;\n }\n }\n\n .region-sidebar {\n .mx-navigationtree .navbar-inner > ul > li > a .glyphicon {\n margin-right: $spacing-medium;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Alerts\n\n Default Bootstrap Alert boxes. Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages\n========================================================================== */\n\n.alert {\n margin-top: 0;\n padding: $spacing-medium;\n border: 1px solid;\n border-radius: $border-radius-default;\n padding: $spacing-medium;\n}\n\n.alert-icon {\n font-size: $font-size-h3;\n}\n\n.alert-title {\n color: inherit;\n}\n\n.alert-description {\n color: inherit;\n}\n\n//Variations\n\n.alert-primary,\n.alert {\n color: $alert-primary-color;\n border-color: $alert-primary-border-color;\n background-color: $alert-primary-bg;\n}\n\n.alert-secondary {\n color: $alert-secondary-color;\n border-color: $alert-secondary-border-color;\n background-color: $alert-secondary-bg;\n}\n\n// Semantic variations\n.alert-success {\n color: $alert-success-color;\n border-color: $alert-success-border-color;\n background-color: $alert-success-bg;\n}\n\n.alert-warning {\n color: $alert-warning-color;\n border-color: $alert-warning-border-color;\n background-color: $alert-warning-bg;\n}\n\n.alert-danger {\n color: $alert-danger-color;\n border-color: $alert-danger-border-color;\n background-color: $alert-danger-bg;\n}\n\n//== State\n//## Styling when component is in certain state\n//-------------------------------------------------------------------------------------------------------------------//\n.has-error .alert {\n margin-top: $spacing-small;\n margin-bottom: 0;\n}\n","/* ==========================================================================\n Breadcrumbs\n\n========================================================================== */\n.breadcrumb {\n //reset\n margin: 0;\n padding: 0;\n border-radius: 0;\n background-color: transparent;\n font-size: $font-size-default;\n margin-bottom: $spacing-large;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.breadcrumb-item {\n display: inline-block;\n margin: 0;\n &:last-child {\n color: $font-color-default;\n a {\n text-decoration: none;\n }\n }\n}\n.breadcrumb-item + .breadcrumb-item {\n &::before {\n display: inline-block;\n padding-right: $spacing-small;\n padding-left: $spacing-small;\n content: \"/\";\n color: $gray-light;\n }\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.breadcrumb-large {\n font-size: $font-size-h3;\n}\n.breadcrumb-underline {\n padding-bottom: $spacing-medium;\n border-bottom: 1px solid $border-color-default;\n}\n","/* ==========================================================================\n Cards\n\n========================================================================== */\n.card {\n border: 0;\n border-radius: $border-radius-default;\n background-color: #ffffff;\n overflow: hidden;\n position: relative;\n padding: $spacing-large;\n margin-bottom: $spacing-large;\n}\n\n//== Card components\n//-------------------------------------------------------------------------------------------------------------------//\n.card-body {\n padding: $spacing-large;\n}\n\n.card-overlay {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n background: rgba(0, 0, 0, 0.6);\n background: linear-gradient(\n to bottom,\n rgba(255, 255, 255, 0) 0%,\n rgba(250, 250, 250, 0) 8%,\n rgba(0, 0, 0, 0.99) 121%,\n #000 100%\n );\n padding: $spacing-large;\n}\n\n.card-title {\n}\n\n.card-image {\n width: 100%;\n height: auto;\n}\n\n.card-supportingtext {\n}\n\n.card-action {\n}\n\n.card-icon {\n font-size: $font-size-h1;\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.card-with-image {\n overflow: hidden;\n}\n\n.card-with-background {\n position: relative;\n}\n","/* ==========================================================================\n Chats\n\n========================================================================== */\n.chat {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: $bg-color-secondary;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.chat-content {\n display: flex;\n overflow: auto;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n .chat-list {\n position: relative;\n overflow: auto;\n\n ul {\n display: flex;\n flex-direction: column-reverse;\n margin-bottom: $m-spacing-large;\n }\n\n li {\n padding: 15px 30px;\n animation: fadeIn 0.2s;\n background-color: transparent;\n animation-fill-mode: both;\n\n &,\n &:last-child {\n border: 0;\n }\n }\n\n .mx-listview-loadMore {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n display: block;\n width: 50%;\n margin: 15px auto;\n color: #ffffff;\n background-color: $brand-primary;\n box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.05);\n }\n }\n}\n\n.chat-message {\n display: flex;\n}\n\n.chat-avatar {\n margin: 0 20px 0 0;\n border-radius: 50%;\n}\n\n.chat-message-content {\n display: inline-flex;\n flex-direction: column;\n}\n\n.chat-message-balloon {\n position: relative;\n display: flex;\n flex-direction: column;\n padding: 10px 15px;\n border-radius: 5px;\n background-color: $bg-color;\n\n &::after {\n position: absolute;\n top: 10px;\n right: 100%;\n width: 0;\n height: 0;\n content: \"\";\n border: 10px solid transparent;\n border-top: 0;\n border-right-color: $bg-color;\n border-left: 0;\n }\n}\n\n.chat-message-time {\n padding-top: 2px;\n\n .form-control-static {\n border: 0;\n }\n}\n\n.chat-footer {\n z-index: 1;\n padding: $m-spacing-large;\n background-color: $bg-color;\n box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.05);\n}\n\n.chat-input {\n display: flex;\n\n .chat-textbox {\n flex: 1;\n margin-right: $spacing-large;\n margin-bottom: 0;\n\n .form-control {\n border: 0;\n }\n }\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.chat-message-self {\n justify-content: flex-end;\n\n .chat-avatar {\n margin: 0 0 0 20px;\n }\n\n .chat-message-balloon {\n background-color: $color-primary-lighter;\n\n &::after {\n left: 100%;\n border: 10px solid transparent;\n border-top: 0;\n border-right: 0;\n border-left-color: $color-primary-lighter;\n }\n }\n\n .chat-message-time {\n text-align: right;\n }\n}\n","/* ==========================================================================\n Control Group\n \n A group of buttons next to eachother\n========================================================================== */\n.controlgroup {\n .btn,\n .btn-group {\n margin-right: $spacing-small;\n margin-bottom: $spacing-small;\n\n &:last-child {\n margin-right: 0;\n }\n .btn {\n margin-right: 0;\n margin-bottom: 0;\n }\n }\n .btn-group {\n .btn + .btn {\n margin-left: -1px;\n }\n }\n}\n","/* ==========================================================================\n Full page blocks\n\n Blocks that take up the full width and height\n========================================================================== */\n\n.fullpageblock {\n position: relative;\n height: 100%;\n min-height: 100%;\n\n // Helper to make it fullheight\n .fullheight {\n height: 100% !important;\n\n & > .mx-dataview-content {\n height: inherit !important;\n }\n }\n\n .fullpage-overlay {\n position: absolute;\n z-index: 10;\n bottom: 0;\n left: 0;\n width: 100%;\n }\n}\n","/* ==========================================================================\n Pageheader\n========================================================================== */\n\n//== Default\n//-------------------------------------------------------------------------------------------------------------------//\n.pageheader {\n width: 100%;\n margin-bottom: $spacing-large;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.pageheader-title {\n}\n\n.pageheader-subtitle {\n}\n\n.pageheader-image {\n}\n","/* ==========================================================================\n Hero header\n\n========================================================================== */\n\n.headerhero {\n width: 100%;\n min-height: $header-min-height;\n background-color: $header-bg-color;\n position: relative;\n overflow: hidden;\n padding: $spacing-large;\n margin-bottom: $spacing-large;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.headerhero-title {\n color: $header-text-color;\n}\n\n.headerhero-subtitle {\n color: $header-text-color;\n}\n\n.headerhero-backgroundimage {\n position: absolute;\n z-index: 0;\n top: 0;\n height: 100%;\n width: 100%;\n filter: $header-bgimage-filter;\n}\n\n.btn.headerhero-action {\n color: $header-text-color;\n}\n\n.heroheader-overlay {\n z-index: 1;\n}\n","/* ==========================================================================\n Form Block\n\n Used in default forms\n========================================================================== */\n.formblock {\n width: 100%;\n margin-bottom: $spacing-large;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.form-title {\n}\n","/* ==========================================================================\n Master Detail\n\n A list with a listening dataview\n========================================================================== */\n.masterdetail {\n background: #fff;\n .masterdetail-master {\n border-right: 1px solid $border-color-default;\n }\n .masterdetail-detail {\n padding: $spacing-large;\n }\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.masterdetail-vertical {\n background: #fff;\n .masterdetail-master {\n border-bottom: 1px solid $border-color-default;\n }\n .masterdetail-detail {\n padding: $spacing-large;\n }\n}\n","/* ==========================================================================\n User profile blocks\n -\n========================================================================== */\n.userprofile {\n .userprofile-img {\n }\n .userprofile-title {\n }\n .userprofile-subtitle {\n }\n}\n","//Wizard\n.wizard {\n display: flex;\n justify-content: space-between;\n width: 100%;\n margin-bottom: $spacing-large;\n}\n\n//Wizard step\n.wizard-step {\n position: relative;\n width: 100%;\n display: flex;\n align-items: center;\n}\n\n//Wizard step number\n.wizard-step-number {\n position: relative;\n z-index: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n width: $wizard-step-number-size;\n height: $wizard-step-number-size;\n color: $wizard-default-step-color;\n font-size: $wizard-step-number-font-size;\n border-radius: 50%;\n background-color: $wizard-default-bg;\n border-color: $wizard-default-border-color;\n}\n\n//Wizard step text\n.wizard-step-text {\n overflow: hidden;\n white-space: nowrap;\n text-decoration: none;\n text-overflow: ellipsis;\n color: $wizard-default-step-color;\n}\n\n//Wizard circle\n.wizard-circle .wizard-step {\n flex-direction: column;\n &::before {\n position: absolute;\n z-index: 0;\n top: $wizard-step-number-size / 2;\n display: block;\n width: 100%;\n height: 2px;\n content: \"\";\n background-color: $wizard-default-border-color;\n }\n}\n\n//Wizard arrow\n.wizard-arrow .wizard-step {\n height: $wizard-step-height;\n margin-left: calc(0px - (#{$wizard-step-height} / 2));\n padding-left: ($wizard-step-height / 2);\n background-color: $wizard-default-bg;\n justify-content: flex-start;\n border: 1px solid $wizard-default-border-color;\n &::before,\n &::after {\n position: absolute;\n z-index: 1;\n left: 100%;\n margin-left: calc(0px - ((#{$wizard-step-height} / 2) - 1px));\n content: \" \";\n border-style: solid;\n border-color: transparent;\n }\n &::after {\n top: 0;\n border-width: calc((#{$wizard-step-height} / 2) - 1px);\n border-left-color: $wizard-default-bg;\n }\n &::before {\n top: -1px;\n border-width: $wizard-step-height / 2;\n border-left-color: $wizard-default-border-color;\n }\n\n &:first-child {\n margin-left: 0;\n padding-left: 0;\n border-top-left-radius: $border-radius-default;\n border-bottom-left-radius: $border-radius-default;\n }\n\n &:last-child {\n border-top-right-radius: $border-radius-default;\n border-bottom-right-radius: $border-radius-default;\n &::before,\n &::after {\n display: none;\n }\n }\n}\n\n//Wizard states\n.wizard-circle .wizard-step-active {\n .wizard-step-number {\n color: $wizard-active-color;\n border-color: $wizard-active-border-color;\n background-color: $wizard-active-bg;\n }\n .wizard-step-text {\n color: $wizard-active-step-color;\n }\n}\n.wizard-circle .wizard-step-visited {\n .wizard-step-number {\n color: $wizard-visited-color;\n border-color: $wizard-visited-border-color;\n background-color: $wizard-visited-bg;\n }\n .wizard-step-text {\n color: $wizard-visited-step-color;\n }\n}\n\n.wizard-arrow .wizard-step-active {\n background-color: $wizard-active-bg;\n .wizard-step-text {\n color: $wizard-active-color;\n }\n &::after {\n border-left-color: $wizard-active-bg;\n }\n}\n\n.wizard-arrow .wizard-step-visited {\n .wizard-step-text {\n color: $link-color;\n }\n}\n",".login-formblock {\n display: flex;\n flex-direction: column;\n}\n\n.login-form {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n",".listtab-tabs.mx-tabcontainer {\n background: $bg-color-secondary;\n .mx-tabcontainer-tabs {\n background: $brand-primary;\n margin-bottom: 0;\n li {\n > a {\n color: #fff;\n opacity: 0.6;\n &:hover,\n &:focus {\n color: #fff;\n }\n }\n &.active {\n > a {\n opacity: 1;\n color: #fff;\n border-color: #fff;\n &:hover,\n &:focus {\n color: #fff;\n border-color: #fff;\n }\n }\n }\n }\n }\n}\n",".springboard-grid {\n display: flex;\n flex-direction: column;\n .row {\n flex: 1;\n .col {\n display: flex;\n }\n }\n}\n\n.springboard-header {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n\n.springboard-card {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n",".statuspage-section {\n display: flex;\n flex-direction: column;\n}\n\n.statuspage-content {\n flex: 1;\n}\n\n.statuspage-icon {\n color: #fff;\n}\n\n.statuspage-subtitle {\n opacity: 0.6;\n}\n\n.statuspage-buttons {\n}\n"]}
\ No newline at end of file
diff --git a/theme/native/custom-variables.js b/theme/native/custom-variables.js
new file mode 100644
index 00000000..e21e6af7
--- /dev/null
+++ b/theme/native/custom-variables.js
@@ -0,0 +1,792 @@
+import { Appearance, Platform } from "react-native";
+import { adjustFont, anyColorToRgbString, setContrastScale } from "../../themesource/atlas_core/native/api";
+import "./exclusion-variables";
+/*
+
+==> You can find a copy of the core variables below. (From styles/native/core/variables.js)
+==> You can freely change any value in this file.
+==> DO NOT change the core variable file (or any other file in core), as that makes updating Atlas a lot harder in the future.
+
+*/
+// == Global variables
+// ## Variables to be used during styling
+// -------------------------------------------------------------------------------------------------------------------//
+// Brand Styles
+export const brand = {
+ primary: "#264AE5",
+ success: "#3CB33D",
+ warning: "#ECA51C",
+ danger: "#E33F4E",
+ info: "#0086D9",
+ primaryLight: "#F3F5FF",
+ successLight: "#F1FCF1",
+ warningLight: "#FFF9E6",
+ dangerLight: "#FFEEF0",
+ infoLight: "#ECF9FF"
+};
+//
+// Dark Mode - Inherits OS theme if possible
+export const darkMode = Appearance.getColorScheme() === "dark";
+//
+// Background Colors
+export const backgroundDefaults = {
+ primaryLight: "#FFF",
+ primaryDark: "#0A1325",
+ secondaryLight: "#F8F8F8",
+ secondaryDark: "#161F30"
+};
+export const background = {
+ primary: darkMode ? backgroundDefaults.primaryDark : backgroundDefaults.primaryLight,
+ secondary: darkMode ? backgroundDefaults.secondaryDark : backgroundDefaults.secondaryLight,
+ brandPrimary: brand.primary,
+ brandSuccess: brand.success,
+ brandWarning: brand.warning,
+ brandDanger: brand.danger,
+ brandInfo: brand.info
+};
+//
+// Contrast (Gray) colors based on background.primary
+export const contrast = {
+ highest: setContrastScale(0.95, background.primary),
+ higher: setContrastScale(0.8, background.primary),
+ high: setContrastScale(0.65, background.primary),
+ regular: setContrastScale(0.5, background.primary),
+ low: setContrastScale(0.35, background.primary),
+ lower: setContrastScale(0.2, background.primary),
+ lowest: setContrastScale(0.05, background.primary)
+};
+//
+// Border Style
+export const border = {
+ color: darkMode ? "#3B4251" : "#CED0D3",
+ width: 1,
+ radiusSmall: 4,
+ radiusLarge: 8,
+ radiusLargest: 9999
+};
+//
+// Font Styles
+export const fontDefaults = {
+ colorTitleDark: "#0A1326",
+ colorTitleLight: "#FDFDFD",
+ colorParagraphDark: "#6C717E",
+ colorParagraphLight: "#E7E7E9",
+ colorDisabledDark: "#9DA1A8",
+ colorDisabledLight: "#9DA1A8"
+};
+export const font = {
+ size: adjustFont(14),
+ sizeSmallest: adjustFont(10),
+ sizeSmall: adjustFont(12),
+ sizeLarge: adjustFont(16),
+ sizeLargest: adjustFont(18),
+ sizeH1: adjustFont(40),
+ sizeH2: adjustFont(34),
+ sizeH3: adjustFont(28),
+ sizeH4: adjustFont(24),
+ sizeH5: adjustFont(20),
+ sizeH6: adjustFont(16),
+ lineHeight: adjustFont(14) * 1.5,
+ lineHeightSmallest: adjustFont(10) * 1.5,
+ lineHeightSmall: adjustFont(12) * 1.5,
+ lineHeightLarge: adjustFont(16) * 1.5,
+ lineHeightLargest: adjustFont(18) * 1.5,
+ lineHeightH1: adjustFont(40) * 1.5,
+ lineHeightH2: adjustFont(34) * 1.5,
+ lineHeightH3: adjustFont(28) * 1.5,
+ lineHeightH4: adjustFont(24) * 1.5,
+ lineHeightH5: adjustFont(20) * 1.5,
+ lineHeightH6: adjustFont(16) * 1.5,
+ colorTitle: darkMode ? fontDefaults.colorTitleLight : fontDefaults.colorTitleDark,
+ colorParagraph: darkMode ? fontDefaults.colorParagraphLight : fontDefaults.colorParagraphDark,
+ colorDisabled: darkMode ? fontDefaults.colorDisabledLight : fontDefaults.colorDisabledDark,
+ weightLight: "100",
+ weightNormal: "normal",
+ weightSemiBold: "600",
+ weightBold: "bold",
+ family: Platform.select({ ios: "System", android: "normal" })
+};
+//
+// Spacing
+export const spacing = {
+ smallest: 2,
+ smaller: 4,
+ small: 8,
+ regular: 16,
+ large: 24,
+ larger: 32,
+ largest: 40
+};
+//
+// Button Styles
+export const button = {
+ // Start default styles
+ container: {
+ rippleColor: contrast.lowest,
+ borderRadius: border.radiusLarge,
+ minWidth: 48,
+ minHeight: 48,
+ paddingVertical: spacing.small,
+ paddingHorizontal: spacing.small
+ },
+ containerDisabled: {
+ borderColor: border.color,
+ backgroundColor: border.color
+ },
+ icon: {
+ size: font.sizeSmall
+ },
+ iconDisabled: {
+ color: font.colorDisabled
+ },
+ caption: {
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightBold
+ },
+ captionDisabled: {
+ color: font.colorDisabled
+ },
+ // End default styles
+ header: {
+ color: contrast.highest,
+ borderColor: "transparent",
+ backgroundColor: "transparent",
+ fontSize: font.sizeSmall,
+ fontSizeIcon: font.sizeSmall,
+ paddingLeft: 0,
+ paddingRight: 10
+ },
+ primary: {
+ color: "#FFF",
+ borderColor: brand.primary,
+ backgroundColor: brand.primary
+ },
+ secondary: {
+ color: brand.primary,
+ borderColor: brand.primary,
+ backgroundColor: "transparent",
+ inversedColor: "#FFF"
+ },
+ success: {
+ color: "#FFF",
+ borderColor: brand.success,
+ backgroundColor: brand.success
+ },
+ warning: {
+ color: "#FFF",
+ borderColor: brand.warning,
+ backgroundColor: brand.warning
+ },
+ danger: {
+ color: "#FFF",
+ borderColor: brand.danger,
+ backgroundColor: brand.danger
+ }
+};
+//
+// Input Styles
+export const input = {
+ label: {
+ numberOfLines: 1,
+ color: font.colorTitle,
+ fontSize: font.sizeSmall,
+ textAlign: "left"
+ },
+ labelDisabled: {
+ color: font.colorTitle
+ },
+ input: {
+ color: font.colorTitle,
+ borderColor: contrast.lower,
+ backgroundColor: background.primary,
+ selectionColor: contrast.lower,
+ placeholderTextColor: contrast.low,
+ fontSize: font.size,
+ lineHeight: font.lineHeight,
+ borderWidth: border.width,
+ borderRadius: border.radiusLarge,
+ minWidth: 48,
+ minHeight: 48,
+ paddingVertical: spacing.small,
+ paddingHorizontal: spacing.small
+ },
+ inputContainer: {
+ underlayColor: `rgba(${anyColorToRgbString(contrast.low)},0.4)`
+ },
+ inputDisabled: {
+ color: font.colorDisabled,
+ borderColor: border.color,
+ backgroundColor: background.secondary
+ },
+ inputError: {
+ color: brand.danger,
+ borderColor: brand.danger,
+ placeholderTextColor: brand.danger,
+ backgroundColor: brand.dangerLight
+ },
+ validationMessage: {
+ color: brand.danger,
+ fontSize: font.size
+ },
+ // Only used for the DropDown & ReferenceSelector
+ valueContainer: {
+ rippleColor: contrast.lowest
+ },
+ itemContainer: {
+ paddingVertical: 12,
+ paddingHorizontal: spacing.regular,
+ backgroundColor: background.primary
+ },
+ item: {
+ color: font.colorTitle,
+ fontSize: font.size
+ },
+ selectedItemContainer: {
+ borderWidth: border.width,
+ borderRadius: border.radiusLarge,
+ borderColor: brand.primary,
+ backgroundColor: "transparent"
+ },
+ selectedItem: {
+ color: font.colorTitle,
+ fontSize: font.size
+ }
+};
+export const image = {
+ image: {
+ small: 24,
+ medium: 40,
+ large: 56,
+ larger: 72
+ },
+ imageDisabled: {
+ opacity: 0.6
+ },
+ icon: 16
+};
+//
+// Navigation Styles
+export const navigation = {
+ statusBar: {
+ backgroundColor: background.primary,
+ barStyle: darkMode ? "light-content" : "dark-content"
+ },
+ topBar: {
+ backgroundColor: brand.primary,
+ backButtonColor: "#FFF",
+ titleColor: "#FFF",
+ titleFontSize: font.sizeH6
+ },
+ bottomBar: {
+ color: contrast.high,
+ selectedTextColor: brand.primary,
+ selectedIconColor: brand.primary,
+ backgroundColor: background.primary,
+ fontSize: font.sizeSmall,
+ iconSize: font.sizeSmall
+ },
+ progressOverlay: {
+ color: font.colorTitle,
+ activityIndicatorColor: font.colorTitle,
+ backgroundColor: "rgba(0, 0, 0, 0.5)",
+ containerBackgroundColor: background.secondary,
+ fontSize: font.size,
+ borderRadius: border.radiusSmall,
+ elevation: 1.5,
+ shadowColor: "#000",
+ shadowOpacity: 0.1,
+ shadowRadius: 10 // Only for iOS
+ }
+};
+//
+// Checkbox styles
+export const checkbox = {
+ checkboxInput: {
+ color: brand.primary,
+ size: 20,
+ backgroundColor: background.primary,
+ borderColor: border.color,
+ borderWidth: border.width,
+ borderRadius: border.radiusSmall,
+ width: 40,
+ height: 40
+ },
+ checkboxInputDisabled: {
+ color: brand.primaryLight,
+ backgroundColor: background.secondary
+ },
+ checkboxInputError: {
+ color: brand.danger,
+ borderColor: brand.danger
+ }
+};
+//
+// Container Styles
+export const container = {
+ containerDisabled: {
+ opacity: 0.6
+ }
+};
+//
+// Accordion Styles
+export const accordion = {
+ container: {
+ backgroundColor: background.primary,
+ borderColor: border.color
+ },
+ groupHeader: {
+ container: {
+ paddingVertical: spacing.regular,
+ paddingHorizontal: spacing.regular
+ },
+ heading: {
+ color: font.colorTitle
+ },
+ icon: {
+ size: font.sizeLarge,
+ color: font.colorTitle
+ }
+ },
+ groupContent: {
+ paddingTop: spacing.small,
+ paddingBottom: spacing.large,
+ paddingHorizontal: spacing.regular
+ }
+};
+//
+// Badge Styles
+export const badge = {
+ fontWeight: font.weightNormal,
+ borderRadius: border.radiusLarge,
+ paddingVertical: spacing.smaller,
+ paddingHorizontal: spacing.small,
+ default: {
+ color: contrast.higher,
+ backgroundColor: contrast.lowest
+ },
+ primary: {
+ color: brand.primary,
+ backgroundColor: brand.primaryLight
+ },
+ success: {
+ color: brand.success,
+ backgroundColor: brand.successLight
+ },
+ warning: {
+ color: brand.warning,
+ backgroundColor: brand.warningLight
+ },
+ danger: {
+ color: brand.danger,
+ backgroundColor: brand.dangerLight
+ }
+};
+//
+// Tabcontainer Styles
+export const tabContainer = {
+ tabBar: {
+ pressColor: contrast.lower,
+ backgroundColor: brand.primary
+ },
+ tab: {
+ paddingVertical: 12
+ },
+ indicator: {
+ backgroundColor: fontDefaults.colorTitleLight,
+ height: Platform.select({ ios: 2, android: 2 })
+ },
+ label: {
+ color: fontDefaults.colorTitleLight,
+ fontSize: font.size,
+ fontWeight: font.weightSemiBold,
+ textTransform: "capitalize"
+ },
+ activeLabel: {
+ color: fontDefaults.colorTitleLight,
+ fontSize: font.size,
+ fontWeight: font.weightSemiBold,
+ textTransform: "capitalize"
+ },
+ badgeContainer: {
+ borderRadius: border.radiusLargest,
+ backgroundColor: badge.default.backgroundColor,
+ paddingVertical: spacing.smallest,
+ paddingHorizontal: spacing.small,
+ marginLeft: 8
+ },
+ badgeCaption: {
+ fontSize: font.size,
+ color: badge.default.color,
+ fontWeight: badge.fontWeight
+ }
+};
+//
+// ListView Styles
+export const listView = {
+ listItemDisabled: {
+ opacity: 0.6
+ },
+ border: {
+ color: border.color,
+ width: border.width
+ }
+};
+//
+// Layoutgrid Styles
+export const layoutGrid = {
+ gutterSize: 16
+};
+//
+//
+// Floating Action Button Styles
+export const floatingActionButton = {
+ container: {
+ margin: 30
+ },
+ button: {
+ size: 50,
+ rippleColor: contrast.lowest,
+ borderColor: brand.primary,
+ backgroundColor: brand.primary
+ },
+ buttonIcon: {
+ size: font.sizeLarge,
+ color: contrast.lowest
+ },
+ secondaryButton: {
+ size: 30,
+ backgroundColor: background.secondary
+ },
+ secondaryButtonIcon: {
+ size: font.sizeSmall,
+ color: contrast.high
+ },
+ secondaryButtonCaption: {
+ color: contrast.high,
+ fontSize: font.sizeSmall
+ },
+ secondaryButtonCaptionContainer: {
+ backgroundColor: background.primary,
+ borderColor: background.primary
+ }
+};
+//
+// Intro Screen Styles
+export const introScreen = {
+ fullscreenContainer: {
+ backgroundColor: background.primary
+ },
+ popupContainer: {
+ paddingVertical: 150,
+ paddingHorizontal: 50,
+ backgroundColor: "rgba(0, 0, 0, 0.5)"
+ },
+ pagination: {
+ text: {
+ color: font.colorTitle,
+ fontSize: font.size
+ },
+ dotStyle: {
+ size: spacing.small,
+ backgroundColor: contrast.lower
+ },
+ activeDotStyle: {
+ size: spacing.small,
+ backgroundColor: font.colorTitle
+ }
+ },
+ button: {
+ icon: {
+ color: font.colorTitle,
+ size: button.icon.size
+ },
+ caption: {
+ color: font.colorTitle,
+ fontSize: button.caption.fontSize,
+ fontWeight: font.weightBold,
+ textTransform: "uppercase",
+ paddingHorizontal: spacing.smallest
+ }
+ },
+ buttonPaginationAbove: {
+ container: {
+ paddingVertical: spacing.regular,
+ backgroundColor: button.primary.backgroundColor
+ }
+ }
+};
+//
+// List View Swipe Styles
+export const listViewSwipe = {
+ leftAction: {
+ panelSize: 160,
+ panelSizeSmall: 80,
+ panelSizeLarge: 240,
+ backgroundColor: background.primary
+ },
+ rightAction: {
+ panelSize: 160,
+ panelSizeSmall: 80,
+ panelSizeLarge: 240,
+ backgroundColor: background.primary
+ }
+};
+//
+// Progress Bar Styles
+export const progressBar = {
+ bar: {
+ height: 8,
+ heightSmall: 4,
+ heightLarge: 12,
+ backgroundColor: contrast.lowest
+ },
+ fill: {
+ backgroundColor: brand.primary
+ }
+};
+//
+// Progress Circle Styles
+export const progressCircle = {
+ circle: {
+ size: 64
+ },
+ fill: {
+ width: 4,
+ lineCapRounded: true,
+ backgroundColor: brand.primary
+ },
+ text: {
+ color: contrast.regular,
+ fontSize: font.size,
+ fontWeight: font.weightSemiBold
+ }
+};
+//
+// Rating Styles
+export const rating = {
+ containerDisabled: {
+ opacity: 0.5
+ },
+ icon: {
+ size: 24,
+ color: contrast.lower,
+ selectedColor: brand.warning
+ }
+};
+//
+// (Range)Slider styles
+export const slider = {
+ track: {
+ height: 4,
+ backgroundColor: contrast.lowest
+ },
+ trackDisabled: {
+ backgroundColor: contrast.lower,
+ opacity: 0.4
+ },
+ highlight: {
+ backgroundColor: brand.primary
+ },
+ highlightDisabled: {
+ backgroundColor: brand.primary
+ },
+ marker: {
+ size: 24,
+ borderColor: contrast.lowest,
+ backgroundColor: background.secondary
+ },
+ markerActive: {
+ size: 32
+ },
+ markerDisabled: {
+ size: 24,
+ borderColor: contrast.lowest,
+ backgroundColor: background.secondary
+ }
+};
+// Radio buttons styles
+export const radioButtons = {
+ labelTextStyle: {
+ color: font.colorTitle,
+ fontSize: font.sizeSmall,
+ lineHeight: font.lineHeightSmall,
+ marginBottom: spacing.small
+ },
+ radioButtonItemContainerStyle: {
+ marginBottom: spacing.small
+ },
+ radioButtonItemContainerDisabledStyle: {
+ opacity: 0.5
+ },
+ radioButtonItemContainerHorizontalStyle: {
+ marginEnd: spacing.small
+ },
+ circularButtonStyle: {
+ width: 16,
+ height: 16,
+ borderRadius: 8,
+ borderColor: border.color,
+ marginEnd: spacing.smaller
+ },
+ activeButtonStyle: {
+ width: 8,
+ height: 8,
+ borderRadius: 4,
+ backgroundColor: brand.primary
+ },
+ radioButtonItemTitleStyle: {
+ color: font.colorTitle,
+ fontSize: font.sizeSmall,
+ lineHeight: font.lineHeightSmall
+ },
+ validationMessage: {
+ color: brand.danger,
+ fontSize: font.sizeSmall
+ }
+};
+//
+// Background gradient style
+export const backgroundGradient = {
+ container: {},
+ angle: 0,
+ opacity: 100
+};
+// column chart styles
+export const columnChart = {
+ container: {},
+ errorMessage: {
+ fontFamily: font.family,
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightNormal
+ },
+ chart: {},
+ grid: {
+ lineColor: border.color
+ },
+ xAxis: {
+ color: font.colorTitle,
+ fontFamily: font.family,
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightNormal,
+ label: {
+ color: font.colorParagraph,
+ alignSelf: "center",
+ marginHorizontal: 0,
+ marginVertical: 8,
+ fontFamily: font.family,
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightNormal
+ },
+ lineColor: border.color
+ },
+ yAxis: {
+ color: font.colorTitle,
+ fontFamily: font.family,
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightNormal,
+ label: {
+ color: font.colorParagraph,
+ marginHorizontal: 0,
+ marginVertical: 8,
+ fontFamily: font.family,
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightNormal
+ },
+ lineColor: border.color
+ },
+ columns: {
+ columnColorPalette: Object.entries(brand)
+ .reduce((accumulator, [key, value]) => (key.endsWith("Light") ? accumulator : [...accumulator, value]), [])
+ .join(";"),
+ columnsOffset: 20,
+ customColumnStyles: {
+ your_static_or_dynamic_attribute_value: {
+ column: {},
+ label: {}
+ }
+ }
+ },
+ legend: {
+ container: {
+ justifyContent: "flex-start",
+ marginHorizontal: 0,
+ marginVertical: spacing.small
+ },
+ item: {
+ padding: 0,
+ paddingRight: spacing.regular
+ },
+ indicator: {
+ marginRight: spacing.small
+ },
+ label: {
+ color: font.colorTitle,
+ fontFamily: font.family,
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightNormal
+ }
+ }
+};
+// TODO add bar chart styles
+// Gallery style
+export const gallery = {
+ container: {},
+ emptyPlaceholder: {},
+ firstItem: {},
+ lastItem: {},
+ list: {},
+ listItem: { flexGrow: 1 },
+ loadMoreButtonContainer: {
+ alignSelf: "stretch"
+ },
+ loadMoreButtonPressableContainer: {
+ // Ripplecolor and all ViewStyle properties are allowed
+ borderWidth: 1,
+ borderStyle: "solid",
+ rippleColor: button.container.rippleColor,
+ borderColor: button.primary.borderColor,
+ backgroundColor: button.primary.backgroundColor,
+ alignItems: "center",
+ justifyContent: "center",
+ borderRadius: button.container.borderRadius,
+ minWidth: button.container.minWidth,
+ minHeight: button.container.minHeight,
+ paddingVertical: button.container.paddingVertical,
+ paddingHorizontal: button.container.paddingHorizontal
+ },
+ loadMoreButtonCaption: {
+ // All TextStyle properties are allowed
+ color: button.primary.color,
+ fontSize: button.caption.fontSize,
+ fontFamily: font.family,
+ fontWeight: button.caption.fontWeight,
+ lineHeight: font.lineHeight
+ }
+};
+// Gallery text filter style
+export const galleryTextFilter = {
+ textInputContainer: {
+ flexDirection: "row",
+ justifyContent: "space-between",
+ borderWidth: input.input.borderWidth,
+ borderColor: input.input.borderColor,
+ borderRadius: input.input.borderRadius,
+ paddingEnd: 8
+ },
+ textInputContainerFocused: {
+ borderColor: brand.primary
+ },
+ textInput: {
+ height: 40,
+ marginStart: spacing.regular,
+ width: "90%",
+ color: input.input.color,
+ backgroundColor: input.input.backgroundColor,
+ selectionColor: input.input.selectionColor,
+ placeholderTextColor: input.input.placeholderTextColor
+ },
+ textInputClearIcon: {
+ justifyContent: "center",
+ alignContent: "center"
+ }
+};
diff --git a/theme/native/exclusion-variables.js b/theme/native/exclusion-variables.js
new file mode 100644
index 00000000..dcb0cdda
--- /dev/null
+++ b/theme/native/exclusion-variables.js
@@ -0,0 +1,124 @@
+// == Variables to exclude files
+// ## Reduce the amount of files imported from the Atlas_Core module
+// -------------------------------------------------------------------------------------------------------------------//
+// Accordion
+export const excludeAccordion = false;
+export const excludeAccordionHelpers = false;
+// Activity Indicator
+export const excludeActivityIndicator = false;
+export const excludeActivityIndicatorHelpers = false;
+// Animation
+export const excludeAnimation = false;
+// Background Image
+export const excludeBackgroundImage = false;
+// Badge
+export const excludeBadge = false;
+export const excludeBadgeHelpers = false;
+// Bottom Sheet
+export const excludeBottomSheet = false;
+// Buttons
+export const excludeButtons = false;
+export const excludeButtonsHelpers = false;
+// Carousel
+export const excludeCarousel = false;
+// CheckBox
+export const excludeCheckBox = false;
+// Color Picker
+export const excludeColorPicker = false;
+// Container
+export const excludeContainer = false;
+// Date Picker
+export const excludeDatePicker = false;
+// Drop Down
+export const excludeDropDown = false;
+// Feedback
+export const excludeFeedback = false;
+// Floating Action Button
+export const excludeFAB = false;
+export const excludeFABHelpers = false;
+// Image
+export const excludeImage = false;
+export const excludeImageHelpers = false;
+// Intro Screen
+export const excludeIntroScreen = false;
+export const excludeIntroScreenHelpers = false;
+// Layout Grid
+export const excludeLayoutGrid = false;
+// Line Chart
+export const excludeLineChart = false;
+export const excludeLineChartHelpers = false;
+// Bar Chart
+export const excludeBarChart = false;
+export const excludeBarChartHelpers = false;
+// List View
+export const excludeListView = false;
+export const excludeListViewHelpers = false;
+// List View Swipe
+export const excludeListViewSwipe = false;
+export const excludeListViewSwipeHelpers = false;
+// Maps
+export const excludeMaps = false;
+export const excludeMapsHelpers = false;
+// Page Title
+export const excludePageTitle = false;
+// Pie Doughnut Chart
+export const excludePieDoughnutChart = false;
+// Progress Bar
+export const excludeProgressBar = false;
+export const excludeProgressBarHelpers = false;
+// Progress Circle
+export const excludeProgressCircle = false;
+export const excludeProgressCircleHelpers = false;
+// Pop Up Menu
+export const excludePopUpMenu = false;
+// QR Code
+export const excludeQRCode = false;
+// Range Slider
+export const excludeRangeSlider = false;
+export const excludeRangeSliderHelpers = false;
+// Rating
+export const excludeRating = false;
+// Reference Selector
+export const excludeReferenceSelector = false;
+// Safe Area View
+export const excludeSafeAreaView = false;
+// Slider
+export const excludeSlider = false;
+export const excludeSliderHelpers = false;
+// Switch
+export const excludeSwitch = false;
+export const excludeSwitchHelpers = false;
+// Tab Container
+export const excludeTabContainer = false;
+export const excludeTabContainerHelpers = false;
+// Text Area
+export const excludeTextArea = false;
+// Text Box
+export const excludeTextBox = false;
+export const excludeTextBoxHelpers = false;
+// Toggle Buttons
+export const excludeToggleButtons = false;
+// Typography
+export const excludeTypography = false;
+export const excludeTypographyHelpers = false;
+// VideoPlayer
+export const excludeVideoPlayer = false;
+// Web View
+export const excludeWebView = false;
+// Helper Classes
+export const excludeHelpers = false;
+// Radio Buttons
+export const excludeRadioButtons = false;
+export const excludeRadioButtonsHelper = false;
+// Background Gradient
+export const excludeBackgroundGradient = false;
+export const excludeBackgroundGradientHelper = false;
+// Column Chart
+export const excludeColumnChart = false;
+export const excludeColumnChartHelper = false;
+// Gallery
+export const excludeGallery = false;
+export const excludeGalleryHelper = false;
+// Gallery Text Filter
+export const excludeGalleryTextFilter = false;
+export const excludeGalleryTextFilterHelper = false;
diff --git a/theme/native/main.js b/theme/native/main.js
new file mode 100644
index 00000000..cb0ff5c3
--- /dev/null
+++ b/theme/native/main.js
@@ -0,0 +1 @@
+export {};
diff --git a/theme/web/custom-variables.scss b/theme/web/custom-variables.scss
new file mode 100644
index 00000000..04a84ce4
--- /dev/null
+++ b/theme/web/custom-variables.scss
@@ -0,0 +1,719 @@
+//
+// ██████╗ █████╗ ███████╗██╗ ██████╗
+// ██╔══██╗██╔══██╗██╔════╝██║██╔════╝
+// ██████╔╝███████║███████╗██║██║
+// ██╔══██╗██╔══██║╚════██║██║██║
+// ██████╔╝██║ ██║███████║██║╚██████╗
+// ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═════╝
+//
+
+//== Gray Shades
+//## Different gray shades to be used for our variables and components
+$gray-darker: #0a1325;
+$gray-dark: #474e5c;
+$gray: #787d87;
+$gray-light: #a9acb3;
+$gray-primary: #e7e7e9;
+$gray-lighter: #f8f8f8;
+
+//== Step 1: Brand Colors
+$brand-default: $gray-primary;
+$brand-primary: #264ae5;
+$brand-success: #3cb33d;
+$brand-warning: #eca51c;
+$brand-danger: #e33f4e;
+
+$brand-logo: false;
+$brand-logo-height: 32px;
+$brand-logo-width: 32px; // Only used for CSS brand logo
+
+//== Step 2: UI Customization
+
+// Default Font Size & Color
+$font-size-default: 14px;
+$font-color-default: #0a1325;
+
+// Global Border Color
+$border-color-default: #ced0d3;
+$border-radius-default: 4px;
+
+// Topbar
+$topbar-bg: #020557;
+$topbar-minimalheight: 48px;
+$topbar-border-color: $border-color-default;
+
+// Sidebar
+$sidebar-bg: #24276c;
+
+// Topbar mobile
+$m-header-height: 45px;
+$m-header-bg: $topbar-bg;
+$m-header-color: #fff;
+$m-header-title-size: 16px;
+
+// Navbar Brand Name / For your company, product, or project name (used in layouts/base/)
+$navbar-brand-name: #fff;
+
+// Background Colors
+// Backgrounds
+$bg-color: #f8f8f8;
+$bg-color-secondary: #fff;
+
+// Default Link Color
+$link-color: $brand-primary;
+$link-hover-color: darken($link-color, 15%);
+
+//
+// █████╗ ██████╗ ██╗ ██╗ █████╗ ███╗ ██╗ ██████╗███████╗██████╗
+// ██╔══██╗██╔══██╗██║ ██║██╔══██╗████╗ ██║██╔════╝██╔════╝██╔══██╗
+// ███████║██║ ██║██║ ██║███████║██╔██╗ ██║██║ █████╗ ██║ ██║
+// ██╔══██║██║ ██║╚██╗ ██╔╝██╔══██║██║╚██╗██║██║ ██╔══╝ ██║ ██║
+// ██║ ██║██████╔╝ ╚████╔╝ ██║ ██║██║ ╚████║╚██████╗███████╗██████╔╝
+// ╚═╝ ╚═╝╚═════╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝
+//
+
+//== Typography
+//## Change your font family, weight, line-height, headings and more (used in components/typography)
+
+// Font Family Import (Used for google font plugin in theme creater)
+$font-family-import: "resources/fonts/open-sans/open-sans.css";
+
+// Font Family / False = fallback from Bootstrap (Helvetica Neue)
+$font-family-base: "Open Sans", sans-serif;
+
+// Font Sizes
+$font-size-large: 18px;
+$font-size-small: 12px;
+
+// Font Weights
+$font-weight-light: 100;
+$font-weight-normal: normal;
+$font-weight-semibold: 600;
+$font-weight-bold: bold;
+
+// Font Size Headers
+$font-size-h1: 31px;
+$font-size-h2: 26px;
+$font-size-h3: 24px;
+$font-size-h4: 18px;
+$font-size-h5: $font-size-default;
+$font-size-h6: 12px;
+
+// Font Weight Headers
+$font-weight-header: $font-weight-semibold;
+
+// Line Height
+$line-height-base: 1.428571429;
+
+// Spacing
+$font-header-margin: 0 0 8px 0;
+
+// Text Colors
+$font-color-detail: #6c717e;
+$font-color-header: #0a1325;
+
+//== Navigation
+//## Used in components/navigation
+
+// Default Navigation styling
+$navigation-item-height: unset;
+$navigation-item-padding: 8px;
+
+$navigation-font-size: 14px;
+$navigation-sub-font-size: $font-size-small;
+$navigation-glyph-size: 20px; // For glyphicons that you can select in the Mendix Modeler
+
+$navigation-color: #fff;
+$navigation-color-hover: #fff;
+$navigation-color-active: #fff;
+
+$navigation-sub-color: #fff;
+$navigation-sub-color-hover: #fff;
+$navigation-sub-color-active: #fff;
+
+// Navigation Sidebar
+$navsidebar-bg: $sidebar-bg;
+$navsidebar-bg-hover: darken($navsidebar-bg, 10%);
+$navsidebar-bg-active: darken($navsidebar-bg, 10%);
+
+$navsidebar-sub-bg: $navsidebar-bg-hover;
+$navsidebar-sub-bg-hover: $navsidebar-bg;
+$navsidebar-sub-bg-active: $navsidebar-bg;
+
+$navsidebar-border-color: $navsidebar-bg-hover;
+
+$navsidebar-font-size: $font-size-default;
+$navsidebar-sub-font-size: $font-size-small;
+$navsidebar-glyph-size: 20px; // For glyphicons that you can select in the Mendix Modeler
+
+$navsidebar-color: #fff;
+$navsidebar-color-hover: #fff;
+$navsidebar-color-active: #fff;
+
+$navsidebar-sub-color: #fff;
+$navsidebar-sub-color-hover: #fff;
+$navsidebar-sub-color-active: #fff;
+
+$navsidebar-width-closed: 52px;
+$navsidebar-width-open: 232px;
+
+// Navigation topbar
+$navtopbar-font-size: $font-size-default;
+$navtopbar-sub-font-size: $font-size-small;
+$navtopbar-glyph-size: 1.2em; // For glyphicons that you can select in the Mendix Modeler
+
+$navtopbar-bg: $topbar-bg;
+$navtopbar-bg-hover: mix($topbar-bg, white, 85%);
+$navtopbar-bg-active: mix($topbar-bg, white, 85%);
+$navtopbar-color: #fff;
+$navtopbar-color-hover: $navtopbar-color;
+$navtopbar-color-active: $navtopbar-color;
+
+$navtopbar-sub-bg: $topbar-bg;
+$navtopbar-sub-bg-hover: $navtopbar-bg-hover;
+$navtopbar-sub-bg-active: $navtopbar-bg-hover;
+$navtopbar-sub-color: #fff;
+$navtopbar-sub-color-hover: #fff;
+$navtopbar-sub-color-active: #fff;
+
+//## Used in layouts/base
+$navtopbar-border-color: $topbar-border-color;
+
+//== Form
+//## Used in components/inputs
+
+// Values that can be used default | lined
+$form-input-style: default;
+
+// Form Label
+$form-label-color: $font-color-default;
+$form-label-size: $font-size-default;
+$form-label-weight: $font-weight-semibold;
+$form-label-gutter: 8px;
+
+// Form Input dimensions
+$form-input-height: auto;
+$form-input-padding-y: 8px;
+$form-input-padding-x: 8px;
+$form-input-static-padding-y: 8px;
+$form-input-static-padding-x: 0;
+$form-input-font-size: $form-label-size;
+$form-input-line-height: $line-height-base;
+$form-input-border-radius: $border-radius-default;
+
+// Form Input styling
+$form-input-bg: #fff;
+$form-input-bg-focus: #fff;
+$form-input-bg-hover: $gray-primary;
+$form-input-bg-disabled: $bg-color;
+$form-input-color: $font-color-default;
+$form-input-focus-color: $form-input-color;
+$form-input-disabled-color: #9da1a8;
+$form-input-placeholder-color: #6c717c;
+$form-input-border-color: $gray-primary;
+$form-input-border-focus-color: $brand-primary;
+
+// Form Input Static styling
+$form-input-static-border-color: $gray-primary;
+
+// Form Group
+$form-group-margin-bottom: 16px;
+$form-group-gutter: 16px;
+
+//== Buttons
+//## Define background-color, border-color and text. Used in components/buttons
+
+// Default button style
+$btn-font-size: 14px;
+$btn-bordered: false; // Default value false, set to true if you want this effect
+$btn-border-radius: $border-radius-default;
+
+// Button Background Color
+$btn-default-bg: #fff;
+$btn-primary-bg: $brand-primary;
+$btn-success-bg: $brand-success;
+$btn-warning-bg: $brand-warning;
+$btn-danger-bg: $brand-danger;
+
+// Button Border Color
+$btn-default-border-color: $gray-primary;
+$btn-primary-border-color: $brand-primary;
+$btn-success-border-color: $brand-success;
+$btn-warning-border-color: $brand-warning;
+$btn-danger-border-color: $brand-danger;
+
+// Button Text Color
+$btn-default-color: $brand-primary;
+$btn-primary-color: #fff;
+$btn-success-color: #fff;
+$btn-warning-color: #fff;
+$btn-danger-color: #fff;
+
+// Button Icon Color
+$btn-default-icon-color: $gray;
+
+// Button Background Color
+$btn-default-bg-hover: $btn-default-border-color;
+$btn-primary-bg-hover: mix($btn-primary-bg, black, 80%);
+$btn-success-bg-hover: mix($btn-success-bg, black, 80%);
+$btn-warning-bg-hover: mix($btn-warning-bg, black, 80%);
+$btn-danger-bg-hover: mix($btn-danger-bg, black, 80%);
+$btn-link-bg-hover: $gray-lighter;
+
+//== Header blocks
+//## Define look and feel over multible building blocks that serve as header
+
+$header-min-height: 240px;
+$header-bg-color: $brand-primary;
+$header-bgimage-filter: brightness(60%);
+$header-text-color: #fff;
+$header-text-color-detail: rgba(0, 0, 0, 0.2);
+
+//
+// ███████╗██╗ ██╗██████╗ ███████╗██████╗ ████████╗
+// ██╔════╝╚██╗██╔╝██╔══██╗██╔════╝██╔══██╗╚══██╔══╝
+// █████╗ ╚███╔╝ ██████╔╝█████╗ ██████╔╝ ██║
+// ██╔══╝ ██╔██╗ ██╔═══╝ ██╔══╝ ██╔══██╗ ██║
+// ███████╗██╔╝ ██╗██║ ███████╗██║ ██║ ██║
+// ╚══════╝╚═╝ ╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝
+//
+
+//== Color variations
+//## These variations are used to support several other variables and components
+
+// Color variations
+$color-default-darker: mix($brand-default, black, 60%);
+$color-default-dark: mix($brand-default, black, 70%);
+$color-default-light: mix($brand-default, white, 40%);
+$color-default-lighter: mix($brand-default, white, 20%);
+
+$color-primary-darker: mix($brand-primary, black, 60%);
+$color-primary-dark: mix($brand-primary, black, 70%);
+$color-primary-light: mix($brand-primary, white, 40%);
+$color-primary-lighter: mix($brand-primary, white, 20%);
+
+$color-success-darker: mix($brand-success, black, 60%);
+$color-success-dark: mix($brand-success, black, 70%);
+$color-success-light: mix($brand-success, white, 40%);
+$color-success-lighter: mix($brand-success, white, 20%);
+
+$color-warning-darker: mix($brand-warning, black, 60%);
+$color-warning-dark: mix($brand-warning, black, 70%);
+$color-warning-light: mix($brand-warning, white, 40%);
+$color-warning-lighter: mix($brand-warning, white, 20%);
+
+$color-danger-darker: mix($brand-danger, black, 60%);
+$color-danger-dark: mix($brand-danger, black, 70%);
+$color-danger-light: mix($brand-danger, white, 40%);
+$color-danger-lighter: mix($brand-danger, white, 20%);
+
+$brand-gradient: linear-gradient(to right top, #264ae5, #2239c5, #1b29a6, #111988, #03096c);
+
+//== Grids
+//## Used for Datagrid, Templategrid, Listview & Tables (see components folder)
+
+// Default Border Colors
+$grid-border-color: $border-color-default;
+
+// Spacing
+// Default
+$grid-padding-top: 16px;
+$grid-padding-right: 16px;
+$grid-padding-bottom: 16px;
+$grid-padding-left: 16px;
+
+// Listview
+$listview-padding-top: 16px;
+$listview-padding-right: 16px;
+$listview-padding-bottom: 16px;
+$listview-padding-left: 16px;
+
+// Background Colors
+$grid-bg: transparent;
+$grid-bg-header: transparent; // Grid Headers
+$grid-bg-hover: mix($grid-border-color, #fff, 20%);
+$grid-bg-selected: mix($grid-border-color, #fff, 30%);
+$grid-bg-selected-hover: mix($grid-border-color, #fff, 50%);
+
+// Striped Background Color
+$grid-bg-striped: mix($grid-border-color, #fff, 10%);
+
+// Background Footer Color
+$grid-footer-bg: $gray-primary;
+
+// Text Color
+$grid-selected-color: $font-color-default;
+
+// Paging Colors
+$grid-paging-bg: transparent;
+$grid-paging-bg-hover: transparent;
+$grid-paging-border-color: transparent;
+$grid-paging-border-color-hover: transparent;
+$grid-paging-color: $gray-light;
+$grid-paging-color-hover: $brand-primary;
+
+//== Tabs
+//## Default variables for Tab Container Widget (used in components/tabcontainer)
+
+// Text Color
+$tabs-color: $font-color-detail;
+$tabs-color-active: $font-color-default;
+$tabs-lined-color-active: $font-color-default;
+
+$tabs-lined-border-width: 3px;
+
+// Border Color
+$tabs-border-color: $border-color-default;
+$tabs-lined-border-color: $brand-primary;
+
+// Background Color
+$tabs-bg: transparent;
+$tabs-bg-pills: #e7e7e9;
+$tabs-bg-hover: lighten($tabs-border-color, 5);
+$tabs-bg-active: $brand-primary;
+
+//== Modals
+//## Default Mendix Modal, Blocking Modal and Login Modal (used in components/modals)
+
+// Background Color
+$modal-header-bg: transparent;
+
+// Border Color
+$modal-header-border-color: $border-color-default;
+
+// Text Color
+$modal-header-color: $font-color-default;
+
+//== Dataview
+//## Default variables for Dataview Widget (used in components/dataview)
+
+// Controls
+$dataview-controls-bg: transparent;
+$dataview-controls-border-color: $border-color-default;
+
+// Empty Message
+$dataview-emptymessage-bg: $bg-color;
+$dataview-emptymessage-color: $font-color-default;
+
+//== Alerts
+//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts)
+
+// Background Color
+$alert-success-bg: $color-success-lighter;
+$alert-warning-bg: $color-warning-lighter;
+$alert-danger-bg: $color-danger-lighter;
+
+// Text Color
+$alert-success-color: $color-success-darker;
+$alert-warning-color: $color-warning-darker;
+$alert-danger-color: $color-danger-darker;
+
+// Border Color
+$alert-success-border-color: $color-success-dark;
+$alert-warning-border-color: $color-warning-dark;
+$alert-danger-border-color: $color-danger-dark;
+
+//== Wizard
+
+$wizard-step-height: 48px;
+$wizard-step-number-size: 64px;
+$wizard-step-number-font-size: $font-size-h3;
+
+//Wizard step states
+$wizard-default-bg: #fff;
+$wizard-default-color: #fff;
+$wizard-default-step-color: $font-color-default;
+$wizard-default-border-color: $border-color-default;
+
+$wizard-active-bg: $color-primary-lighter;
+$wizard-active-color: $color-primary-dark;
+$wizard-active-step-color: $color-primary-dark;
+$wizard-active-border-color: $color-primary-dark;
+
+$wizard-visited-bg: $color-success-lighter;
+$wizard-visited-color: $color-success-dark;
+$wizard-visited-step-color: $color-success-dark;
+$wizard-visited-border-color: $color-success-dark;
+
+//== Labels
+//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels)
+
+// Background Color
+$label-default-bg: $brand-default;
+$label-primary-bg: $brand-primary;
+$label-success-bg: $brand-success;
+$label-warning-bg: $brand-warning;
+$label-danger-bg: $brand-danger;
+
+// Border Color
+$label-default-border-color: $brand-default;
+$label-primary-border-color: $brand-primary;
+$label-success-border-color: $brand-success;
+$label-warning-border-color: $brand-warning;
+$label-danger-border-color: $brand-danger;
+
+// Text Color
+$label-default-color: $font-color-default;
+$label-primary-color: #fff;
+$label-success-color: #fff;
+$label-warning-color: #fff;
+$label-danger-color: #fff;
+
+//== Groupbox
+//## Default variables for Groupbox Widget (used in components/groupbox)
+
+// Background Color
+$groupbox-default-bg: $gray-primary;
+$groupbox-primary-bg: $brand-primary;
+$groupbox-success-bg: $brand-success;
+$groupbox-warning-bg: $brand-warning;
+$groupbox-danger-bg: $brand-danger;
+$groupbox-white-bg: #fff;
+
+// Text Color
+$groupbox-default-color: $font-color-default;
+$groupbox-primary-color: #fff;
+$groupbox-success-color: #fff;
+$groupbox-warning-color: #fff;
+$groupbox-danger-color: #fff;
+$groupbox-white-color: $font-color-default;
+
+//== Callout (groupbox) Colors
+//## Extended variables for Groupbox Widget (used in components/groupbox)
+
+// Text and Border Color
+$callout-default-color: $font-color-default;
+$callout-success-color: $brand-success;
+$callout-warning-color: $brand-warning;
+$callout-danger-color: $brand-danger;
+
+// Background Color
+$callout-default-bg: $color-default-lighter;
+$callout-success-bg: $color-success-lighter;
+$callout-warning-bg: $color-warning-lighter;
+$callout-danger-bg: $color-danger-lighter;
+
+//== Timeline
+//## Extended variables for Timeline Widget
+// Colors
+$timeline-icon-color: $brand-primary;
+$timeline-border-color: $border-color-default;
+$timeline-event-time-color: $brand-primary;
+
+// Sizes
+$timeline-icon-size: 18px;
+$timeline-image-size: 36px;
+
+//Timeline grouping
+$timeline-grouping-size: 120px;
+$timeline-grouping-border-radius: 30px;
+$timeline-grouping-border-color: $timeline-border-color;
+
+//== Accordions
+//## Extended variables for Accordion Widget
+
+// Default
+$accordion-header-default-bg: $bg-color-secondary;
+$accordion-header-default-bg-hover: $bg-color;
+$accordion-header-default-color: $font-color-header;
+$accordion-default-border-color: $border-color-default;
+
+$accordion-bg-striped: $grid-bg-striped;
+$accordion-bg-striped-hover: $grid-bg-selected;
+
+// Semantic background colors
+$accordion-header-primary-bg: $btn-primary-bg;
+$accordion-header-secondary-bg: $btn-default-bg;
+$accordion-header-success-bg: $btn-success-bg;
+$accordion-header-warning-bg: $btn-warning-bg;
+$accordion-header-danger-bg: $btn-danger-bg;
+
+$accordion-header-primary-bg-hover: $btn-primary-bg-hover;
+$accordion-header-secondary-bg-hover: $btn-default-bg-hover;
+$accordion-header-success-bg-hover: $btn-success-bg-hover;
+$accordion-header-warning-bg-hover: $btn-warning-bg-hover;
+$accordion-header-danger-bg-hover: $btn-danger-bg-hover;
+
+// Semantic text colors
+$accordion-header-primary-color: $btn-primary-color;
+$accordion-header-secondary-color: $btn-default-color;
+$accordion-header-success-color: $btn-success-color;
+$accordion-header-warning-color: $btn-warning-color;
+$accordion-header-danger-color: $btn-danger-color;
+
+// Semantic border colors
+$accordion-primary-border-color: $btn-primary-border-color;
+$accordion-secondary-border-color: $btn-default-border-color;
+$accordion-success-border-color: $btn-success-border-color;
+$accordion-warning-border-color: $btn-warning-border-color;
+$accordion-danger-border-color: $btn-danger-border-color;
+
+//== Spacing
+//## Advanced layout options (used in base/mixins/default-spacing)
+
+// Smallest spacing
+$spacing-smallest: 2px;
+
+// Smaller spacing
+$spacing-smaller: 4px;
+
+// Small spacing
+$spacing-small: 8px;
+
+// Medium spacing
+$spacing-medium: 16px;
+$t-spacing-medium: 16px;
+$m-spacing-medium: 16px;
+
+// Large spacing
+$spacing-large: 24px;
+$t-spacing-large: 24px;
+$m-spacing-large: 16px;
+
+// Larger spacing
+$spacing-larger: 32px;
+
+// Largest spacing
+$spacing-largest: 48px;
+
+// Layout spacing
+$layout-spacing-top: 24px;
+$layout-spacing-right: 24px;
+$layout-spacing-bottom: 24px;
+$layout-spacing-left: 24px;
+
+$t-layout-spacing-top: 24px;
+$t-layout-spacing-right: 24px;
+$t-layout-spacing-bottom: 24px;
+$t-layout-spacing-left: 24px;
+
+$m-layout-spacing-top: 16px;
+$m-layout-spacing-right: 16px;
+$m-layout-spacing-bottom: 16px;
+$m-layout-spacing-left: 16px;
+
+// Combined layout spacing
+$layout-spacing: $layout-spacing-top $layout-spacing-right $layout-spacing-bottom $layout-spacing-left;
+$m-layout-spacing: $m-layout-spacing-top $m-layout-spacing-right $m-layout-spacing-bottom $m-layout-spacing-left;
+$t-layout-spacing: $t-layout-spacing-top $t-layout-spacing-right $t-layout-spacing-bottom $t-layout-spacing-left;
+
+// Gutter size
+$gutter-size: 8px;
+
+//== Tables
+//## Table spacing options (used in components/tables)
+
+$padding-table-cell-top: 8px;
+$padding-table-cell-bottom: 8px;
+$padding-table-cell-left: 8px;
+$padding-table-cell-right: 8px;
+
+//== Media queries breakpoints
+//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
+
+$screen-xs: 480px;
+$screen-sm: 576px;
+$screen-md: 768px;
+$screen-lg: 992px;
+$screen-xl: 1200px;
+
+// So media queries don't overlap when required, provide a maximum (used for max-width)
+$screen-xs-max: calc(#{$screen-sm} - 1px);
+$screen-sm-max: calc(#{$screen-md} - 1px);
+$screen-md-max: calc(#{$screen-lg} - 1px);
+$screen-lg-max: calc(#{$screen-xl} - 1px);
+
+//== Settings
+//## Enable or disable your desired framework features
+// Use of !important
+$important-flex: true; // ./base/flex.scss
+$important-spacing: true; // ./base/spacing.scss
+$important-helpers: true; // ./helpers/helperclasses.scss
+
+//===== Legacy variables =====
+
+//== Step 1: Brand Colors
+$brand-inverse: #24276c;
+$brand-info: #0086d9;
+
+//== Step 2: UI Customization
+
+//== Buttons
+//## Define background-color, border-color and text. Used in components/buttons
+
+// Button Background Color
+$btn-inverse-bg: $brand-inverse;
+$btn-info-bg: $brand-info;
+
+// Button Border Color
+$btn-inverse-border-color: $brand-inverse;
+$btn-info-border-color: $brand-info;
+
+// Button Text Color
+$btn-inverse-color: #fff;
+$btn-info-color: #fff;
+
+// Button Background Color
+$btn-inverse-bg-hover: mix($btn-inverse-bg, white, 80%);
+$btn-info-bg-hover: mix($btn-info-bg, black, 80%);
+
+//== Color variations
+//## These variations are used to support several other variables and components
+
+// Color variations
+$color-inverse-darker: mix($brand-inverse, black, 60%);
+$color-inverse-dark: mix($brand-inverse, black, 70%);
+$color-inverse-light: mix($brand-inverse, white, 60%);
+$color-inverse-lighter: mix($brand-inverse, white, 20%);
+
+$color-info-darker: mix($brand-info, black, 60%);
+$color-info-dark: mix($brand-info, black, 70%);
+$color-info-light: mix($brand-info, white, 60%);
+$color-info-lighter: mix($brand-info, white, 20%);
+
+//== Alerts
+//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts)
+
+// Background Color
+$alert-info-bg: $color-primary-lighter;
+
+// Text Color
+$alert-info-color: $color-primary-darker;
+
+// Border Color
+$alert-info-border-color: $color-primary-dark;
+
+//== Labels
+//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels)
+
+// Background Color
+$label-info-bg: $brand-info;
+$label-inverse-bg: $brand-inverse;
+
+// Border Color
+$label-info-border-color: $brand-info;
+$label-inverse-border-color: $brand-inverse;
+
+// Text Color
+$label-info-color: #fff;
+$label-inverse-color: #fff;
+
+//== Groupbox
+//## Default variables for Groupbox Widget (used in components/groupbox)
+
+// Background Color
+$groupbox-inverse-bg: $brand-inverse;
+$groupbox-info-bg: $brand-info;
+
+// Text Color
+$groupbox-inverse-color: #fff;
+$groupbox-info-color: #fff;
+
+//== Callout (groupbox) Colors
+//## Extended variables for Groupbox Widget (used in components/groupbox)
+
+// Text and Border Color
+$callout-info-color: $brand-info;
+
+// Background Color
+$callout-info-bg: $color-info-lighter;
diff --git a/theme/web/exclusion-variables.scss b/theme/web/exclusion-variables.scss
new file mode 100644
index 00000000..97e82071
--- /dev/null
+++ b/theme/web/exclusion-variables.scss
@@ -0,0 +1,80 @@
+//== Core style exclusion
+$exclude-bootstrap: false;
+$exclude-mxui: false;
+$exclude-animations: false;
+$exclude-flex: false;
+$exclude-spacing: false;
+$exclude-base: false;
+$exclude-login: false;
+
+//== Widget style exclusion
+$exclude-accordion: false;
+$exclude-accordion-helpers: false;
+$exclude-background-helpers: false;
+$exclude-badge: false;
+$exclude-badge-button: false;
+$exclude-badge-button-helpers: false;
+$exclude-barcode-scanner: false;
+$exclude-button: false;
+$exclude-button-helpers: false;
+$exclude-check-box: false;
+$exclude-custom-dijit-widget: false;
+$exclude-custom-switch: false;
+$exclude-data-grid: false;
+$exclude-data-grid-helpers: false;
+$exclude-data-view: false;
+$exclude-data-picker: false;
+$exclude-gallery: false;
+$exclude-gallery-helpers: false;
+$exclude-glyphicon: false;
+$exclude-grid: false;
+$exclude-group-box: false;
+$exclude-group-box-helpers: false;
+$exclude-header: false;
+$exclude-helper-classes: false;
+$exclude-input: false;
+$exclude-image-helpers: false;
+$exclude-label: false;
+$exclude-label-helpers: false;
+$exclude-layout-grid: false;
+$exclude-list-view: false;
+$exclude-list-view-helpers: false;
+$exclude-modal: false;
+$exclude-navigation-bar: false;
+$exclude-navigation-bar-helpers: false;
+$exclude-navigation-list: false;
+$exclude-navigation-tree: false;
+$exclude-navigation-tree-helpers: false;
+$exclude-pagination: false;
+$exclude-pop-up-menu: false;
+$exclude-progress: false;
+$exclude-progress-bar: false;
+$exclude-progress-bar-helpers: false;
+$exclude-progress-circle: false;
+$exclude-progress-circle-helpers: false;
+$exclude-radio-button: false;
+$exclude-range-slider: false;
+$exclude-range-slider-helpers: false;
+$exclude-rating: false;
+$exclude-rating-helpers: false;
+$exclude-simple-menu-bar: false;
+$exclude-simple-menu-bar-helpers: false;
+$exclude-slider: false;
+$exclude-slider-helpers: false;
+$exclude-table: false;
+$exclude-table-helpers: false;
+$exclude-tab-container: false;
+$exclude-tab-container-helpers: false;
+$exclude-template-grid: false;
+$exclude-template-grid-helpers: false;
+$exclude-timeline: false;
+$exclude-tree-node: false;
+$exclude-tree-node-helpers: false;
+$exclude-typography: false;
+$exclude-typography-helpers: false;
+
+//== Layouts style exclusion
+$exclude-layout-atlas: false;
+$exclude-layout-atlas-phone: false;
+$exclude-layout-atlas-responsive: false;
+$exclude-layout-atlas-tablet: false;
diff --git a/theme/web/login-with-mendixsso-automatically.html b/theme/web/login-with-mendixsso-automatically.html
new file mode 100644
index 00000000..bdf46556
--- /dev/null
+++ b/theme/web/login-with-mendixsso-automatically.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+ Your browser does not support JavaScript! You need to enable JavaScript to continue.
+
+
+
+
+
diff --git a/theme/web/login-with-mendixsso-button.html b/theme/web/login-with-mendixsso-button.html
new file mode 100644
index 00000000..a1b8c1c5
--- /dev/null
+++ b/theme/web/login-with-mendixsso-button.html
@@ -0,0 +1,88 @@
+
+
+
+
+ Login
+
+
+
+ {{themecss}} {{appicons}} {{manifest}} {{startupimages}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/theme/web/login.html b/theme/web/login.html
new file mode 100644
index 00000000..dc487c19
--- /dev/null
+++ b/theme/web/login.html
@@ -0,0 +1,78 @@
+
+
+
+
+ Login
+
+
+
+ {{themecss}} {{appicons}} {{manifest}} {{startupimages}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/theme/web/logo.png b/theme/web/logo.png
new file mode 100644
index 00000000..e49703b3
Binary files /dev/null and b/theme/web/logo.png differ
diff --git a/theme/web/main.scss b/theme/web/main.scss
new file mode 100644
index 00000000..fffc4128
--- /dev/null
+++ b/theme/web/main.scss
@@ -0,0 +1 @@
+@import "custom-variables";
diff --git a/theme/web/manifest-overrides.webmanifest b/theme/web/manifest-overrides.webmanifest
new file mode 100644
index 00000000..10161cd8
--- /dev/null
+++ b/theme/web/manifest-overrides.webmanifest
@@ -0,0 +1,3 @@
+{
+ "background_color": "#FFFFFF"
+}
diff --git a/theme/web/robots.txt b/theme/web/robots.txt
new file mode 100644
index 00000000..46169dbf
--- /dev/null
+++ b/theme/web/robots.txt
@@ -0,0 +1,4 @@
+# For more information, see https://support.google.com/webmasters/answer/6062608?hl=en&ref_topic=6061961
+
+User-agent: *
+Disallow:
diff --git a/theme/web/settings.json b/theme/web/settings.json
new file mode 100644
index 00000000..9dbd93bd
--- /dev/null
+++ b/theme/web/settings.json
@@ -0,0 +1,3 @@
+{
+ "cssFiles": ["theme.compiled.css"]
+}
diff --git a/themesource/atlas_core/.version b/themesource/atlas_core/.version
new file mode 100644
index 00000000..a08ffae0
--- /dev/null
+++ b/themesource/atlas_core/.version
@@ -0,0 +1 @@
+3.8.2
diff --git a/themesource/atlas_core/native/api.js b/themesource/atlas_core/native/api.js
new file mode 100644
index 00000000..f40d0cd2
--- /dev/null
+++ b/themesource/atlas_core/native/api.js
@@ -0,0 +1,3 @@
+import adjustFont from "./core/helpers/_functions/adjustfont";
+import { anyColorToRgbString, setColorBasedOnBackground, setContrastScale } from "./core/helpers/_functions/convertcolors";
+export { adjustFont, anyColorToRgbString, setColorBasedOnBackground, setContrastScale };
diff --git a/themesource/atlas_core/native/core/base/flex.js b/themesource/atlas_core/native/core/base/flex.js
new file mode 100644
index 00000000..1a0ece08
--- /dev/null
+++ b/themesource/atlas_core/native/core/base/flex.js
@@ -0,0 +1,203 @@
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+*/
+// == Flex layout
+export const flexMain = {
+ container: {
+ // flex 1 will take all available space not taken by flexItems.
+ flex: 1
+ }
+};
+export const flexItem = {
+ container: {
+ // When flex is -1, the component is normally sized according width and height.
+ // However, if there's not enough space, the component will shrink to its minWidth and minHeight
+ flex: -1
+ }
+};
+export const flexRow = {
+ container: {
+ flexDirection: "row"
+ }
+};
+export const flexColumn = {
+ container: {
+ flexDirection: "column"
+ }
+};
+export const flexRowReverse = {
+ container: {
+ flexDirection: "row-reverse"
+ }
+};
+export const flexColumnReverse = {
+ container: {
+ flexDirection: "column-reverse"
+ }
+};
+export const flexWrap = {
+ container: {
+ // flexWrap controls whether children can wrap around after they hit the end of a flex container.
+ flexWrap: "wrap"
+ }
+};
+export const justifyContentStart = {
+ container: {
+ // justifyContent aligns children in the main direction.
+ // For example, if children are flowing vertically, justifyContent controls how they align vertically.
+ justifyContent: "flex-start"
+ }
+};
+export const justifyContentCenter = {
+ container: {
+ // justifyContent aligns children in the main direction.
+ // For example, if children are flowing vertically, justifyContent controls how they align vertically.
+ justifyContent: "center"
+ }
+};
+export const justifyContentEnd = {
+ container: {
+ // justifyContent aligns children in the main direction.
+ // For example, if children are flowing vertically, justifyContent controls how they align vertically.
+ justifyContent: "flex-end"
+ }
+};
+export const justifyContentSpaceBetween = {
+ container: {
+ // justifyContent aligns children in the main direction.
+ // For example, if children are flowing vertically, justifyContent controls how they align vertically.
+ justifyContent: "space-between"
+ }
+};
+export const justifyContentSpaceAround = {
+ container: {
+ // justifyContent aligns children in the main direction.
+ // For example, if children are flowing vertically, justifyContent controls how they align vertically.
+ justifyContent: "space-around"
+ }
+};
+export const justifyContentSpaceEvenly = {
+ container: {
+ // justifyContent aligns children in the main direction.
+ // For example, if children are flowing vertically, justifyContent controls how they align vertically.
+ justifyContent: "space-evenly"
+ }
+};
+export const alignChildrenStart = {
+ container: {
+ // alignItems aligns children in the cross direction.
+ // For example, if children are flowing vertically, alignItems controls how they align horizontally.
+ alignItems: "flex-start"
+ }
+};
+export const alignChildrenCenter = {
+ container: {
+ // alignItems aligns children in the cross direction.
+ // For example, if children are flowing vertically, alignItems controls how they align horizontally.
+ alignItems: "center"
+ }
+};
+export const alignChildrenEnd = {
+ container: {
+ // alignItems aligns children in the cross direction.
+ // For example, if children are flowing vertically, alignItems controls how they align horizontally.
+ alignItems: "flex-end"
+ }
+};
+export const alignChildrenStretch = {
+ container: {
+ // alignItems aligns children in the cross direction.
+ // For example, if children are flowing vertically, alignItems controls how they align horizontally.
+ alignItems: "stretch"
+ }
+};
+export const alignChildrenBaseline = {
+ container: {
+ // alignContent aligns children in the cross direction.
+ // For example, if children are flowing vertically, alignContent controls how they align horizontally.
+ alignItems: "baseline"
+ }
+};
+export const childrenCenter = {
+ container: {
+ ...justifyContentCenter.container,
+ ...alignChildrenCenter.container
+ }
+};
+export const alignContentStart = {
+ container: {
+ // alignContent aligns rows of children in the cross direction.
+ // For example, if children are flowing vertically, alignContent controls how they align horizontally.
+ alignContent: "flex-start"
+ }
+};
+export const alignContentCenter = {
+ container: {
+ // alignContent aligns rows of children in the cross direction.
+ // For example, if children are flowing vertically, alignContent controls how they align horizontally.
+ alignContent: "center"
+ }
+};
+export const alignContentEnd = {
+ container: {
+ // alignContent aligns rows of children in the cross direction.
+ // For example, if children are flowing vertically, alignContent controls how they align horizontally.
+ alignContent: "flex-end"
+ }
+};
+export const alignContentStretch = {
+ container: {
+ // alignContent aligns rows of children in the cross direction.
+ // For example, if children are flowing vertically, alignContent controls how they align horizontally.
+ alignContent: "stretch"
+ }
+};
+export const alignContentSpaceAround = {
+ container: {
+ // alignContent aligns rows of children in the cross direction.
+ // For example, if children are flowing vertically, alignContent controls how they align horizontally.
+ alignContent: "space-around"
+ }
+};
+export const alignContentSpaceBetween = {
+ container: {
+ // alignContent aligns rows of children in the cross direction.
+ // For example, if children are flowing vertically, alignContent controls how they align horizontally.
+ alignContent: "space-between"
+ }
+};
+export const alignSelfStart = {
+ container: {
+ // controls how a child aligns in the cross direction, overriding the alignItems of the parent.
+ alignSelf: "flex-start"
+ }
+};
+export const alignSelfCenter = {
+ container: {
+ // controls how a child aligns in the cross direction, overriding the alignItems of the parent.
+ alignSelf: "center"
+ }
+};
+export const alignSelfEnd = {
+ container: {
+ // controls how a child aligns in the cross direction, overriding the alignItems of the parent.
+ alignSelf: "flex-end"
+ }
+};
+export const alignSelfStretch = {
+ container: {
+ // controls how a child aligns in the cross direction, overriding the alignItems of the parent.
+ alignSelf: "stretch"
+ }
+};
+export const alignSelfBaseline = {
+ container: {
+ // controls how a child aligns in the cross direction, overriding the alignItems of the parent.
+ alignSelf: "baseline"
+ }
+};
diff --git a/themesource/atlas_core/native/core/base/spacing.js b/themesource/atlas_core/native/core/base/spacing.js
new file mode 100644
index 00000000..de7138c0
--- /dev/null
+++ b/themesource/atlas_core/native/core/base/spacing.js
@@ -0,0 +1,503 @@
+import { spacing } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+*/
+// == Inner Spacing
+export const spacingInnerSmallest = {
+ container: {
+ padding: spacing.smallest
+ }
+};
+export const spacingInnerVerticalSmallest = {
+ container: {
+ paddingVertical: spacing.smallest
+ }
+};
+export const spacingInnerHorizontalSmallest = {
+ container: {
+ paddingHorizontal: spacing.smallest
+ }
+};
+export const spacingInnerTopSmallest = {
+ container: {
+ paddingTop: spacing.smallest
+ }
+};
+export const spacingInnerRightSmallest = {
+ container: {
+ paddingRight: spacing.smallest
+ }
+};
+export const spacingInnerLeftSmallest = {
+ container: {
+ paddingLeft: spacing.smallest
+ }
+};
+export const spacingInnerBottomSmallest = {
+ container: {
+ paddingBottom: spacing.smallest
+ }
+};
+export const spacingInnerSmaller = {
+ container: {
+ padding: spacing.smaller
+ }
+};
+export const spacingInnerVerticalSmaller = {
+ container: {
+ paddingVertical: spacing.smaller
+ }
+};
+export const spacingInnerHorizontalSmaller = {
+ container: {
+ paddingHorizontal: spacing.smaller
+ }
+};
+export const spacingInnerTopSmaller = {
+ container: {
+ paddingTop: spacing.smaller
+ }
+};
+export const spacingInnerRightSmaller = {
+ container: {
+ paddingRight: spacing.smaller
+ }
+};
+export const spacingInnerLeftSmaller = {
+ container: {
+ paddingLeft: spacing.smaller
+ }
+};
+export const spacingInnerBottomSmaller = {
+ container: {
+ paddingBottom: spacing.smaller
+ }
+};
+export const spacingInnerSmall = {
+ container: {
+ padding: spacing.small
+ }
+};
+export const spacingInnerVerticalSmall = {
+ container: {
+ paddingVertical: spacing.small
+ }
+};
+export const spacingInnerHorizontalSmall = {
+ container: {
+ paddingHorizontal: spacing.small
+ }
+};
+export const spacingInnerTopSmall = {
+ container: {
+ paddingTop: spacing.small
+ }
+};
+export const spacingInnerRightSmall = {
+ container: {
+ paddingRight: spacing.small
+ }
+};
+export const spacingInnerLeftSmall = {
+ container: {
+ paddingLeft: spacing.small
+ }
+};
+export const spacingInnerBottomSmall = {
+ container: {
+ paddingBottom: spacing.small
+ }
+};
+export const spacingInnerMedium = {
+ container: {
+ padding: spacing.regular
+ }
+};
+export const spacingInnerVerticalMedium = {
+ container: {
+ paddingVertical: spacing.regular
+ }
+};
+export const spacingInnerHorizontalMedium = {
+ container: {
+ paddingHorizontal: spacing.regular
+ }
+};
+export const spacingInnerTopMedium = {
+ container: {
+ paddingTop: spacing.regular
+ }
+};
+export const spacingInnerRightMedium = {
+ container: {
+ paddingRight: spacing.regular
+ }
+};
+export const spacingInnerLeftMedium = {
+ container: {
+ paddingLeft: spacing.regular
+ }
+};
+export const spacingInnerBottomMedium = {
+ container: {
+ paddingBottom: spacing.regular
+ }
+};
+export const spacingInnerLarge = {
+ container: {
+ padding: spacing.large
+ }
+};
+export const spacingInnerVerticalLarge = {
+ container: {
+ paddingVertical: spacing.large
+ }
+};
+export const spacingInnerHorizontalLarge = {
+ container: {
+ paddingHorizontal: spacing.large
+ }
+};
+export const spacingInnerTopLarge = {
+ container: {
+ paddingTop: spacing.large
+ }
+};
+export const spacingInnerRightLarge = {
+ container: {
+ paddingRight: spacing.large
+ }
+};
+export const spacingInnerLeftLarge = {
+ container: {
+ paddingLeft: spacing.large
+ }
+};
+export const spacingInnerBottomLarge = {
+ container: {
+ paddingBottom: spacing.large
+ }
+};
+export const spacingInnerLarger = {
+ container: {
+ padding: spacing.larger
+ }
+};
+export const spacingInnerVerticalLarger = {
+ container: {
+ paddingVertical: spacing.larger
+ }
+};
+export const spacingInnerHorizontalLarger = {
+ container: {
+ paddingHorizontal: spacing.larger
+ }
+};
+export const spacingInnerTopLarger = {
+ container: {
+ paddingTop: spacing.larger
+ }
+};
+export const spacingInnerRightLarger = {
+ container: {
+ paddingRight: spacing.larger
+ }
+};
+export const spacingInnerLeftLarger = {
+ container: {
+ paddingLeft: spacing.larger
+ }
+};
+export const spacingInnerBottomLarger = {
+ container: {
+ paddingBottom: spacing.larger
+ }
+};
+export const spacingInnerLargest = {
+ container: {
+ padding: spacing.largest
+ }
+};
+export const spacingInnerVerticalLargest = {
+ container: {
+ paddingVertical: spacing.largest
+ }
+};
+export const spacingInnerHorizontalLargest = {
+ container: {
+ paddingHorizontal: spacing.largest
+ }
+};
+export const spacingInnerTopLargest = {
+ container: {
+ paddingTop: spacing.largest
+ }
+};
+export const spacingInnerRightLargest = {
+ container: {
+ paddingRight: spacing.largest
+ }
+};
+export const spacingInnerLeftLargest = {
+ container: {
+ paddingLeft: spacing.largest
+ }
+};
+export const spacingInnerBottomLargest = {
+ container: {
+ paddingBottom: spacing.largest
+ }
+};
+//
+//
+// == Outer Spacing
+export const spacingOuterSmallest = {
+ container: {
+ margin: spacing.smallest
+ }
+};
+export const spacingOuterVerticalSmallest = {
+ container: {
+ marginVertical: spacing.smallest
+ }
+};
+export const spacingOuterHorizontalSmallest = {
+ container: {
+ marginHorizontal: spacing.smallest
+ }
+};
+export const spacingOuterTopSmallest = {
+ container: {
+ marginTop: spacing.smallest
+ }
+};
+export const spacingOuterRightSmallest = {
+ container: {
+ marginRight: spacing.smallest
+ }
+};
+export const spacingOuterLeftSmallest = {
+ container: {
+ marginLeft: spacing.smallest
+ }
+};
+export const spacingOuterBottomSmallest = {
+ container: {
+ marginBottom: spacing.smallest
+ }
+};
+export const spacingOuterSmaller = {
+ container: {
+ margin: spacing.smaller
+ }
+};
+export const spacingOuterVerticalSmaller = {
+ container: {
+ marginVertical: spacing.smaller
+ }
+};
+export const spacingOuterHorizontalSmaller = {
+ container: {
+ marginHorizontal: spacing.smaller
+ }
+};
+export const spacingOuterTopSmaller = {
+ container: {
+ marginTop: spacing.smaller
+ }
+};
+export const spacingOuterRightSmaller = {
+ container: {
+ marginRight: spacing.smaller
+ }
+};
+export const spacingOuterLeftSmaller = {
+ container: {
+ marginLeft: spacing.smaller
+ }
+};
+export const spacingOuterBottomSmaller = {
+ container: {
+ marginBottom: spacing.smaller
+ }
+};
+export const spacingOuterSmall = {
+ container: {
+ margin: spacing.small
+ }
+};
+export const spacingOuterVerticalSmall = {
+ container: {
+ marginVertical: spacing.small
+ }
+};
+export const spacingOuterHorizontalSmall = {
+ container: {
+ marginHorizontal: spacing.small
+ }
+};
+export const spacingOuterTopSmall = {
+ container: {
+ marginTop: spacing.small
+ }
+};
+export const spacingOuterRightSmall = {
+ container: {
+ marginRight: spacing.small
+ }
+};
+export const spacingOuterLeftSmall = {
+ container: {
+ marginLeft: spacing.small
+ }
+};
+export const spacingOuterBottomSmall = {
+ container: {
+ marginBottom: spacing.small
+ }
+};
+export const spacingOuterMedium = {
+ container: {
+ margin: spacing.regular
+ }
+};
+export const spacingOuterVerticalMedium = {
+ container: {
+ marginVertical: spacing.regular
+ }
+};
+export const spacingOuterHorizontalMedium = {
+ container: {
+ marginHorizontal: spacing.regular
+ }
+};
+export const spacingOuterTopMedium = {
+ container: {
+ marginTop: spacing.regular
+ }
+};
+export const spacingOuterRightMedium = {
+ container: {
+ marginRight: spacing.regular
+ }
+};
+export const spacingOuterLeftMedium = {
+ container: {
+ marginLeft: spacing.regular
+ }
+};
+export const spacingOuterBottomMedium = {
+ container: {
+ marginBottom: spacing.regular
+ }
+};
+export const spacingOuterLarge = {
+ container: {
+ margin: spacing.large
+ }
+};
+export const spacingOuterVerticalLarge = {
+ container: {
+ marginVertical: spacing.large
+ }
+};
+export const spacingOuterHorizontalLarge = {
+ container: {
+ marginHorizontal: spacing.large
+ }
+};
+export const spacingOuterTopLarge = {
+ container: {
+ marginTop: spacing.large
+ }
+};
+export const spacingOuterRightLarge = {
+ container: {
+ marginRight: spacing.large
+ }
+};
+export const spacingOuterLeftLarge = {
+ container: {
+ marginLeft: spacing.large
+ }
+};
+export const spacingOuterBottomLarge = {
+ container: {
+ marginBottom: spacing.large
+ }
+};
+export const spacingOuterLarger = {
+ container: {
+ margin: spacing.larger
+ }
+};
+export const spacingOuterVerticalLarger = {
+ container: {
+ marginVertical: spacing.larger
+ }
+};
+export const spacingOuterHorizontalLarger = {
+ container: {
+ marginHorizontal: spacing.larger
+ }
+};
+export const spacingOuterTopLarger = {
+ container: {
+ marginTop: spacing.larger
+ }
+};
+export const spacingOuterRightLarger = {
+ container: {
+ marginRight: spacing.larger
+ }
+};
+export const spacingOuterLeftLarger = {
+ container: {
+ marginLeft: spacing.larger
+ }
+};
+export const spacingOuterBottomLarger = {
+ container: {
+ marginBottom: spacing.larger
+ }
+};
+export const spacingOuterLargest = {
+ container: {
+ margin: spacing.largest
+ }
+};
+export const spacingOuterVerticalLargest = {
+ container: {
+ marginVertical: spacing.largest
+ }
+};
+export const spacingOuterHorizontalLargest = {
+ container: {
+ marginHorizontal: spacing.largest
+ }
+};
+export const spacingOuterTopLargest = {
+ container: {
+ marginTop: spacing.largest
+ }
+};
+export const spacingOuterRightLargest = {
+ container: {
+ marginRight: spacing.largest
+ }
+};
+export const spacingOuterLeftLargest = {
+ container: {
+ marginLeft: spacing.largest
+ }
+};
+export const spacingOuterBottomLargest = {
+ container: {
+ marginBottom: spacing.largest
+ }
+};
diff --git a/themesource/atlas_core/native/core/helpers/_functions/adjustfont.js b/themesource/atlas_core/native/core/helpers/_functions/adjustfont.js
new file mode 100644
index 00000000..41fb6063
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/_functions/adjustfont.js
@@ -0,0 +1,68 @@
+import { Dimensions, PixelRatio } from "react-native";
+const { height, width } = Dimensions.get("window");
+const pixelRatio = PixelRatio.get();
+/**
+ *
+ * Adjust the font size based on the screen size
+ *
+ * @param {number} size Font size
+ *
+ * @return {number} Returns adjusted font size
+ */
+function adjustFont(size) {
+ if (pixelRatio === 2) {
+ // iphone 5s and older Androids
+ if (width < 360) {
+ return size * 0.95;
+ }
+ // iphone 5
+ if (height < 667) {
+ return size;
+ }
+ // iphone 6-6s
+ else if (height >= 667 && height <= 735) {
+ return size * 1.15;
+ }
+ // older phablets
+ return size * 1.25;
+ }
+ if (pixelRatio === 3) {
+ // catch Android font scaling on small machines
+ // where pixel ratio / font scale ratio => 3:3
+ if (width <= 360) {
+ return size;
+ }
+ // Catch other weird android width sizings
+ if (height < 667) {
+ return size * 1.15;
+ }
+ // catch in-between size Androids and scale font up
+ if (height >= 667 && height <= 735) {
+ return size * 1.2;
+ }
+ // catch larger devices
+ // ie iphone 6s plus / 7 plus / mi note
+ return size * 1.27;
+ }
+ if (pixelRatio === 3.5) {
+ // catch Android font scaling on small machines
+ // where pixel ratio / font scale ratio => 3:3
+ if (width <= 360) {
+ return size;
+ }
+ // Catch other smaller android height sizings
+ if (height < 667) {
+ return size * 1.2;
+ }
+ // catch in-between size Androids and scale font up
+ if (height >= 667 && height <= 735) {
+ return size * 1.25;
+ }
+ // catch larger phablet devices
+ return size * 1.4;
+ }
+ // if older device ie pixelRatio !== 2 || 3 || 3.5
+ return size;
+}
+//
+export { adjustFont as default, height, width };
diff --git a/themesource/atlas_core/native/core/helpers/_functions/colorwords.js b/themesource/atlas_core/native/core/helpers/_functions/colorwords.js
new file mode 100644
index 00000000..00e6f4ca
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/_functions/colorwords.js
@@ -0,0 +1,153 @@
+//
+const colors = {
+ aliceblue: { r: 240, g: 248, b: 255 },
+ antiquewhite: { r: 250, g: 235, b: 215 },
+ aqua: { r: 0, g: 255, b: 255 },
+ aquamarine: { r: 127, g: 255, b: 212 },
+ azure: { r: 240, g: 255, b: 255 },
+ beige: { r: 245, g: 245, b: 220 },
+ bisque: { r: 255, g: 228, b: 196 },
+ black: { r: 0, g: 0, b: 0 },
+ blanchedalmond: { r: 255, g: 235, b: 205 },
+ blue: { r: 0, g: 0, b: 255 },
+ blueviolet: { r: 138, g: 43, b: 226 },
+ brown: { r: 165, g: 42, b: 42 },
+ burlywood: { r: 222, g: 184, b: 135 },
+ cadetblue: { r: 95, g: 158, b: 160 },
+ chartreuse: { r: 127, g: 255, b: 0 },
+ chocolate: { r: 210, g: 105, b: 30 },
+ coral: { r: 255, g: 127, b: 80 },
+ cornflowerblue: { r: 100, g: 149, b: 237 },
+ cornsilk: { r: 255, g: 248, b: 220 },
+ crimson: { r: 220, g: 20, b: 60 },
+ cyan: { r: 0, g: 255, b: 255 },
+ darkblue: { r: 0, g: 0, b: 139 },
+ darkcyan: { r: 0, g: 139, b: 139 },
+ darkgoldenrod: { r: 184, g: 134, b: 11 },
+ darkgray: { r: 169, g: 169, b: 169 },
+ darkgreen: { r: 0, g: 100, b: 0 },
+ darkgrey: { r: 169, g: 169, b: 169 },
+ darkkhaki: { r: 189, g: 183, b: 107 },
+ darkmagenta: { r: 139, g: 0, b: 139 },
+ darkolivegreen: { r: 85, g: 107, b: 47 },
+ darkorange: { r: 255, g: 140, b: 0 },
+ darkorchid: { r: 153, g: 50, b: 204 },
+ darkred: { r: 139, g: 0, b: 0 },
+ darksalmon: { r: 233, g: 150, b: 122 },
+ darkseagreen: { r: 143, g: 188, b: 143 },
+ darkslateblue: { r: 72, g: 61, b: 139 },
+ darkslategray: { r: 47, g: 79, b: 79 },
+ darkslategrey: { r: 47, g: 79, b: 79 },
+ darkturquoise: { r: 0, g: 206, b: 209 },
+ darkviolet: { r: 148, g: 0, b: 211 },
+ deeppink: { r: 255, g: 20, b: 147 },
+ deepskyblue: { r: 0, g: 191, b: 255 },
+ dimgray: { r: 105, g: 105, b: 105 },
+ dimgrey: { r: 105, g: 105, b: 105 },
+ dodgerblue: { r: 30, g: 144, b: 255 },
+ firebrick: { r: 178, g: 34, b: 34 },
+ floralwhite: { r: 255, g: 250, b: 240 },
+ forestgreen: { r: 34, g: 139, b: 34 },
+ fuchsia: { r: 255, g: 0, b: 255 },
+ gainsboro: { r: 220, g: 220, b: 220 },
+ ghostwhite: { r: 248, g: 248, b: 255 },
+ gold: { r: 255, g: 215, b: 0 },
+ goldenrod: { r: 218, g: 165, b: 32 },
+ gray: { r: 128, g: 128, b: 128 },
+ green: { r: 0, g: 128, b: 0 },
+ greenyellow: { r: 173, g: 255, b: 47 },
+ grey: { r: 128, g: 128, b: 128 },
+ honeydew: { r: 240, g: 255, b: 240 },
+ hotpink: { r: 255, g: 105, b: 180 },
+ indianred: { r: 205, g: 92, b: 92 },
+ indigo: { r: 75, g: 0, b: 130 },
+ ivory: { r: 255, g: 255, b: 240 },
+ khaki: { r: 240, g: 230, b: 140 },
+ lavender: { r: 230, g: 230, b: 250 },
+ lavenderblush: { r: 255, g: 240, b: 245 },
+ lawngreen: { r: 124, g: 252, b: 0 },
+ lemonchiffon: { r: 255, g: 250, b: 205 },
+ lightblue: { r: 173, g: 216, b: 230 },
+ lightcoral: { r: 240, g: 128, b: 128 },
+ lightcyan: { r: 224, g: 255, b: 255 },
+ lightgoldenrodyellow: { r: 250, g: 250, b: 210 },
+ lightgray: { r: 211, g: 211, b: 211 },
+ lightgreen: { r: 144, g: 238, b: 144 },
+ lightgrey: { r: 211, g: 211, b: 211 },
+ lightpink: { r: 255, g: 182, b: 193 },
+ lightsalmon: { r: 255, g: 160, b: 122 },
+ lightseagreen: { r: 32, g: 178, b: 170 },
+ lightskyblue: { r: 135, g: 206, b: 250 },
+ lightslategray: { r: 119, g: 136, b: 153 },
+ lightslategrey: { r: 119, g: 136, b: 153 },
+ lightsteelblue: { r: 176, g: 196, b: 222 },
+ lightyellow: { r: 255, g: 255, b: 224 },
+ lime: { r: 0, g: 255, b: 0 },
+ limegreen: { r: 50, g: 205, b: 50 },
+ linen: { r: 250, g: 240, b: 230 },
+ magenta: { r: 255, g: 0, b: 255 },
+ maroon: { r: 128, g: 0, b: 0 },
+ mediumaquamarine: { r: 102, g: 205, b: 170 },
+ mediumblue: { r: 0, g: 0, b: 205 },
+ mediumorchid: { r: 186, g: 85, b: 211 },
+ mediumpurple: { r: 147, g: 112, b: 219 },
+ mediumseagreen: { r: 60, g: 179, b: 113 },
+ mediumslateblue: { r: 123, g: 104, b: 238 },
+ mediumspringgreen: { r: 0, g: 250, b: 154 },
+ mediumturquoise: { r: 72, g: 209, b: 204 },
+ mediumvioletred: { r: 199, g: 21, b: 133 },
+ midnightblue: { r: 25, g: 25, b: 112 },
+ mintcream: { r: 245, g: 255, b: 250 },
+ mistyrose: { r: 255, g: 228, b: 225 },
+ moccasin: { r: 255, g: 228, b: 181 },
+ navajowhite: { r: 255, g: 222, b: 173 },
+ navy: { r: 0, g: 0, b: 128 },
+ oldlace: { r: 253, g: 245, b: 230 },
+ olive: { r: 128, g: 128, b: 0 },
+ olivedrab: { r: 107, g: 142, b: 35 },
+ orange: { r: 255, g: 165, b: 0 },
+ orangered: { r: 255, g: 69, b: 0 },
+ orchid: { r: 218, g: 112, b: 214 },
+ palegoldenrod: { r: 238, g: 232, b: 170 },
+ palegreen: { r: 152, g: 251, b: 152 },
+ paleturquoise: { r: 175, g: 238, b: 238 },
+ palevioletred: { r: 219, g: 112, b: 147 },
+ papayawhip: { r: 255, g: 239, b: 213 },
+ peachpuff: { r: 255, g: 218, b: 185 },
+ peru: { r: 205, g: 133, b: 63 },
+ pink: { r: 255, g: 192, b: 203 },
+ plum: { r: 221, g: 160, b: 221 },
+ powderblue: { r: 176, g: 224, b: 230 },
+ purple: { r: 128, g: 0, b: 128 },
+ rebeccapurple: { r: 102, g: 51, b: 153 },
+ red: { r: 255, g: 0, b: 0 },
+ rosybrown: { r: 188, g: 143, b: 143 },
+ royalblue: { r: 65, g: 105, b: 225 },
+ saddlebrown: { r: 139, g: 69, b: 19 },
+ salmon: { r: 250, g: 128, b: 114 },
+ sandybrown: { r: 244, g: 164, b: 96 },
+ seagreen: { r: 46, g: 139, b: 87 },
+ seashell: { r: 255, g: 245, b: 238 },
+ sienna: { r: 160, g: 82, b: 45 },
+ silver: { r: 192, g: 192, b: 192 },
+ skyblue: { r: 135, g: 206, b: 235 },
+ slateblue: { r: 106, g: 90, b: 205 },
+ slategray: { r: 112, g: 128, b: 144 },
+ slategrey: { r: 112, g: 128, b: 144 },
+ snow: { r: 255, g: 250, b: 250 },
+ springgreen: { r: 0, g: 255, b: 127 },
+ steelblue: { r: 70, g: 130, b: 180 },
+ tan: { r: 210, g: 180, b: 140 },
+ teal: { r: 0, g: 128, b: 128 },
+ thistle: { r: 216, g: 191, b: 216 },
+ tomato: { r: 255, g: 99, b: 71 },
+ turquoise: { r: 64, g: 224, b: 208 },
+ violet: { r: 238, g: 130, b: 238 },
+ wheat: { r: 245, g: 222, b: 179 },
+ white: { r: 255, g: 255, b: 255 },
+ whitesmoke: { r: 245, g: 245, b: 245 },
+ yellow: { r: 255, g: 255, b: 0 },
+ yellowgreen: { r: 154, g: 205, b: 50 }
+};
+//
+export default colors;
diff --git a/themesource/atlas_core/native/core/helpers/_functions/convertcolors.js b/themesource/atlas_core/native/core/helpers/_functions/convertcolors.js
new file mode 100644
index 00000000..8d1ff99d
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/_functions/convertcolors.js
@@ -0,0 +1,259 @@
+import colors from "./colorwords";
+/**
+ *
+ * Converts RGB color to HEX
+ *
+ * @param {number || string} r Accepts RGB as string || Accepts R as string or number
+ * @param {number || string} g Accepts G as string or number
+ * @param {number || string} b Accepts B as string or number
+ *
+ * @return {string} Returns HEX color
+ */
+function RgbToHex(r, g, b) {
+ if (typeof r === "string" && !g && !b) {
+ const color = r.replace(/rgb[(]|[)]/gm, "");
+ [r, g, b] = color.split(",");
+ }
+ // eslint-disable-next-line no-bitwise
+ return "#" + ((1 << 24) + (Number(r) << 16) + (Number(g) << 8) + Number(b)).toString(16).slice(1);
+}
+/**
+ *
+ * Converts HEX or HEX Alpha to RGB
+ *
+ * @param {string} hex Accepts HEX color
+ *
+ * @return {object} Returns RGB color; {r,g,b}
+ */
+function hexToRgb(hex) {
+ hex = hex.substring(1);
+ hex = hex.length === 3 || hex.length === 4 ? [...hex].map(x => x + x).join("") : hex;
+ return rgbaToRgb({
+ r: parseInt("0x" + hex[0] + hex[1], 16),
+ g: parseInt("0x" + hex[2] + hex[3], 16),
+ b: parseInt("0x" + hex[4] + hex[5], 16),
+ a: parseInt("0x" + hex[6] + hex[7], 16) / 255 || 1
+ });
+}
+/**
+ *
+ * Converts any color format to RGB string
+ *
+ * @param {string} anyColor Accepts any color format
+ *
+ * @return {string} Returns RGB color; `r,g,b`
+ */
+export function anyColorToRgbString(anyColor) {
+ const { r, g, b } = checkColor(anyColor);
+ return [r, g, b].join(",");
+}
+/**
+ *
+ * Converts HSL to RGB color
+ *
+ * @param {string} hsl Accepts HSL color
+ *
+ * @return {object} Returns RGB color; {r,g,b}
+ */
+function hslToRgb(hsl) {
+ const hslArray = hsl
+ .replace(/hsla?[(]|[%]|[)]/gm, "")
+ .split(",")
+ .map(x => x.trim());
+ let h = hslArray[0];
+ const s = Number(hslArray[1]) / 100;
+ const l = Number(hslArray[2]) / 100;
+ const a = 1;
+ // Strip label and convert to degrees (if necessary)
+ // eslint-disable-next-line no-bitwise
+ if (~h.indexOf("deg")) {
+ h = h.substr(0, h.length - 3);
+ // eslint-disable-next-line no-bitwise
+ }
+ else if (~h.indexOf("rad")) {
+ h = Math.round(Number(h.substr(0, h.length - 3)) * (180 / Math.PI));
+ // eslint-disable-next-line no-bitwise
+ }
+ else if (~h.indexOf("turn")) {
+ h = Math.round(Number(h.substr(0, h.length - 4)) * 360);
+ }
+ h = Number(h);
+ if (h >= 360) {
+ h %= 360;
+ } // Keep hue fraction of 360 if h is higher than 360
+ let r = 255;
+ let g = 255;
+ let b = 255;
+ const c = (1 - Math.abs(2 * l - 1)) * s; // chroma -> color intensity
+ const x = c * (1 - Math.abs(((h / 60) % 2) - 1)); // Second largest component (first being chroma)
+ const m = l - c / 2; // Amount to add to each channel to match lightness
+ if (0 <= h && h < 60) {
+ r = c;
+ g = x;
+ b = 0;
+ }
+ else if (60 <= h && h < 120) {
+ r = x;
+ g = c;
+ b = 0;
+ }
+ else if (120 <= h && h < 180) {
+ r = 0;
+ g = c;
+ b = x;
+ }
+ else if (180 <= h && h < 240) {
+ r = 0;
+ g = x;
+ b = c;
+ }
+ else if (240 <= h && h < 300) {
+ r = x;
+ g = 0;
+ b = c;
+ }
+ else if (300 <= h && h < 360) {
+ r = c;
+ g = 0;
+ b = x;
+ }
+ return rgbaToRgb({
+ r: Math.round((r + m) * 255),
+ g: Math.round((g + m) * 255),
+ b: Math.round((b + m) * 255),
+ a
+ });
+}
+/**
+ *
+ * Convert RGB string with HEX or Word inside to RGB object
+ *
+ * @param {string} rgb Accepts RGB color as string
+ *
+ * @return {object} Returns RGB color; {r,g,b}
+ */
+function rgbStringToRgb(rgb) {
+ const color = rgb.replace(/rgb[(]|[)]/gm, "");
+ // if RGB has hex color definition
+ // eslint-disable-next-line no-bitwise
+ if (~rgb.indexOf("#")) {
+ return hexToRgb(color);
+ }
+ // if RGB has word color definition
+ else if (!/\d/.test(rgb)) {
+ return colors[color.toLowerCase()];
+ }
+ // if RGB has RGB color definition
+ else {
+ const [r, g, b] = color.split(",");
+ [r, g, b].forEach(x => x.trim());
+ return { r: Number(r), g: Number(g), b: Number(b) };
+ }
+}
+/**
+ *
+ * Converts RGB Alpha to RGB object
+ *
+ * @param {string} rgba Accepts RGB Alpha color
+ *
+ * @return {object} Returns RGB color; {r,g,b}
+ */
+function rgbaToRgb(rgba) {
+ let newAlpha = 1;
+ let RGB = typeof rgba === "object" ? rgba : { r: 255, g: 255, b: 255 };
+ const calc = (val) => Math.round(newAlpha * (val / 255) * 255); // Calc best color contrast values
+ // const calc = val => Math.round((RGB.a * (val / 255) + (RGB.a * ( 0 / 255))) * 255); // Calc best color contrast values
+ if (typeof rgba === "string") {
+ const val = rgba.replace(/rgba[(]|[)]/gm, "");
+ const color = val.slice(0, val.lastIndexOf(",")).trim();
+ const alpha = Number(val.slice(val.lastIndexOf(",") + 1).trim());
+ // if RGBA has HEX color definition
+ if (color[0] === "#") {
+ RGB = hexToRgb(color);
+ }
+ // if RGBA has word color definition
+ else if (!/\d/.test(color)) {
+ RGB = colors[color.toLowerCase()];
+ }
+ // if RGBA has RGB color definition
+ else {
+ const [r, g, b] = color.split(",");
+ [r, g, b].forEach(x => Number(x.trim()));
+ RGB = { r: Number(r), g: Number(g), b: Number(b) };
+ }
+ // RGB.a = alpha;
+ newAlpha = alpha === 1 ? 1 : Number((1 - alpha).toPrecision(2));
+ }
+ return { r: calc(RGB.r), g: calc(RGB.g), b: calc(RGB.b) };
+}
+/**
+ *
+ * Check what color format is being used.
+ *
+ * @param {string} color Accepts any color format
+ *
+ * @return {object} Returns RGB color; {r,g,b}
+ */
+function checkColor(color) {
+ if (color in colors) {
+ return colors[color.toLowerCase()];
+ }
+ else if (color[0] === "#") {
+ return hexToRgb(color);
+ // eslint-disable-next-line no-bitwise
+ }
+ else if (~color.indexOf("hsl")) {
+ return hslToRgb(color);
+ // eslint-disable-next-line no-bitwise
+ }
+ else if (~color.indexOf("rgba")) {
+ return rgbaToRgb(color);
+ // eslint-disable-next-line no-bitwise
+ }
+ else if (~color.indexOf("rgb")) {
+ return rgbStringToRgb(color);
+ }
+ return { r: 255, g: 255, b: 255 };
+}
+/**
+ *
+ * Set best contrast color based on a (background) color
+ *
+ * @param {string} color Accepts any color format
+ *
+ * @return {string} Returns RGB Alpha color
+ */
+export function setColorBasedOnBackground(color) {
+ const c = checkColor(color);
+ const RGB = typeof c === "object" ? c : { r: 255, g: 255, b: 255 };
+ // https://www.w3.org/TR/AERT/#color-contrast
+ const o = Math.round((RGB.r * 299 + RGB.g * 587 + RGB.b * 114) / 1000);
+ return o > 125 ? "rgba(0,0,0,.87)" : "rgba(255,255,255,.87)";
+}
+/**
+ *
+ * Expects a color and a contrast value between 0 and 1.'
+ * It will look at the supplied color's brightness and will start the contrast scale either from #000 (black) or #FFF (white).
+ * This function will work best when you supply a very dark or very bright color.
+ * It will return a gray color with the desired contrast which is based on the specified color.
+ *
+ * @param {string} color Accepts any color format
+ * @param {number} contrast Accepts a value between 0 and 1
+ *
+ * @return {string} Returns HEX color
+ */
+export function setContrastScale(contrast, color) {
+ if (contrast > 1) {
+ contrast = 1;
+ }
+ if (contrast < 0) {
+ contrast = 0;
+ }
+ const max = 256;
+ const c = checkColor(color);
+ const { r, g, b } = typeof c === "object" ? c : { r: 255, g: 255, b: 255 };
+ // https://www.w3.org/TR/AERT/#color-contrast
+ const brightness = Math.round((r * 299 + g * 587 + b * 114) / 1000);
+ const value = Math.round(brightness > max / 2 ? max - max * contrast : max * contrast);
+ return RgbToHex(value, value, value);
+}
diff --git a/themesource/atlas_core/native/core/helpers/_functions/device.js b/themesource/atlas_core/native/core/helpers/_functions/device.js
new file mode 100644
index 00000000..a44011c1
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/_functions/device.js
@@ -0,0 +1,24 @@
+import { Platform } from "react-native";
+import DeviceInfo from "react-native-device-info";
+//
+const isiPhoneModelWithNotch = () => {
+ const model = DeviceInfo.getDeviceId();
+ if (model.includes("iPhone")) {
+ switch (model) {
+ case "iPhone10,6": // iPhone X GSM
+ case "iPhone11,2": // iPhone XS
+ case "iPhone11,4": // iPhone XS Max
+ case "iPhone11,6": // iPhone XS Max Global
+ case "iPhone11,8": // Iphone XR
+ case "iPhone12,1": // Iphone 11
+ case "iPhone12,3": // Iphone 11 Pro
+ case "iPhone12,5": // Iphone 11 Pro Max
+ return true;
+ default:
+ return false;
+ }
+ }
+ return false;
+};
+//
+export const isIphoneWithNotch = DeviceInfo.hasNotch() || (Platform.OS === "ios" && isiPhoneModelWithNotch());
diff --git a/themesource/atlas_core/native/core/helpers/_functions/mergeobjects.js b/themesource/atlas_core/native/core/helpers/_functions/mergeobjects.js
new file mode 100644
index 00000000..6385209d
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/_functions/mergeobjects.js
@@ -0,0 +1,35 @@
+/**
+ * Merge 2 objects
+ * This function will look at every object property of the second object and will override the matching property in the first object
+ *
+ * @param {object[]} sources Array of 2 objects
+ *
+ * @return {object} Returns merged object
+ *
+ */
+export default function (...sources) {
+ function mergeDeep(target, ...sources) {
+ function isObject(item) {
+ return item && typeof item === "object" && !Array.isArray(item);
+ }
+ if (!sources.length) {
+ return target;
+ }
+ const source = sources.shift();
+ if (isObject(target) && isObject(source)) {
+ Object.keys(source).forEach(key => {
+ if (isObject(source[key])) {
+ if (!target[key]) {
+ Object.assign(target, { [key]: {} });
+ }
+ mergeDeep(target[key], source[key]);
+ }
+ else {
+ Object.assign(target, { [key]: source[key] || target[key] });
+ }
+ });
+ }
+ return mergeDeep(target, ...sources);
+ }
+ return mergeDeep({}, ...sources);
+}
diff --git a/themesource/atlas_core/native/core/helpers/accordion.js b/themesource/atlas_core/native/core/helpers/accordion.js
new file mode 100644
index 00000000..1fbd13de
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/accordion.js
@@ -0,0 +1,165 @@
+import { brand, background, fontDefaults, accordion } from "../../variables";
+import merge from "./_functions/mergeobjects";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Accordion
+
+ Default Class For Mendix Accordion Widget
+========================================================================== */
+export const accordionPrimary = {
+ container: {},
+ group: {
+ container: {
+ borderWidth: 1,
+ borderColor: brand.primary
+ },
+ header: {
+ container: {
+ backgroundColor: brand.primary,
+ borderColor: brand.primary,
+ borderBottomWidth: 0
+ },
+ heading1: {
+ color: fontDefaults.colorTitleLight
+ },
+ heading2: {
+ color: fontDefaults.colorTitleLight
+ },
+ heading3: {
+ color: fontDefaults.colorTitleLight
+ },
+ heading4: {
+ color: fontDefaults.colorTitleLight
+ },
+ heading5: {
+ color: fontDefaults.colorTitleLight
+ },
+ heading6: {
+ color: fontDefaults.colorTitleLight
+ },
+ icon: {
+ color: fontDefaults.colorTitleLight
+ }
+ }
+ }
+};
+export const accordionSecondary = {
+ container: {},
+ group: {
+ container: {
+ borderWidth: 1,
+ borderColor: "#CED0D3"
+ },
+ header: {
+ container: {
+ backgroundColor: background.primary,
+ borderColor: "#CED0D3",
+ borderBottomWidth: 0
+ },
+ heading1: {
+ color: brand.primary
+ },
+ heading2: {
+ color: brand.primary
+ },
+ heading3: {
+ color: brand.primary
+ },
+ heading4: {
+ color: brand.primary
+ },
+ heading5: {
+ color: brand.primary
+ },
+ heading6: {
+ color: brand.primary
+ },
+ icon: {
+ color: brand.primary
+ }
+ }
+ }
+};
+export const accordionSuccess = merge(accordionPrimary, {
+ group: {
+ container: {
+ borderColor: brand.success
+ },
+ header: {
+ container: {
+ backgroundColor: brand.success,
+ borderColor: brand.success
+ }
+ }
+ }
+});
+export const accordionWarning = merge(accordionPrimary, {
+ group: {
+ container: {
+ borderColor: brand.warning
+ },
+ header: {
+ container: {
+ backgroundColor: brand.warning,
+ borderColor: brand.warning
+ }
+ }
+ }
+});
+export const accordionDanger = merge(accordionPrimary, {
+ group: {
+ container: {
+ borderColor: brand.danger
+ },
+ header: {
+ container: {
+ backgroundColor: brand.danger,
+ borderColor: brand.danger
+ }
+ }
+ }
+});
+export const accordionLined = {
+ container: {
+ borderTopWidth: 1
+ },
+ group: {
+ container: {
+ borderWidth: 0,
+ borderBottomWidth: 1
+ }
+ }
+};
+export const accordionDividerNone = {
+ container: {
+ borderWidth: 0,
+ borderTopWidth: 0
+ },
+ group: {
+ container: {
+ borderWidth: 0,
+ borderBottomWidth: 0
+ }
+ }
+};
+export const accordionCompact = {
+ group: {
+ header: {
+ container: {
+ paddingVertical: accordion.groupHeader.container.paddingVertical / 2,
+ paddingHorizontal: accordion.groupHeader.container.paddingHorizontal / 2
+ }
+ },
+ content: {
+ paddingTop: accordion.groupContent.paddingTop / 2,
+ paddingBottom: accordion.groupContent.paddingBottom / 2,
+ paddingHorizontal: accordion.groupContent.paddingHorizontal / 2
+ }
+ }
+};
diff --git a/themesource/atlas_core/native/core/helpers/activityindicator.js b/themesource/atlas_core/native/core/helpers/activityindicator.js
new file mode 100644
index 00000000..c047f47d
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/activityindicator.js
@@ -0,0 +1,30 @@
+import { brand } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Activity Indicator
+
+//== Design Properties
+//## Helper classes to change the look and feel of the widget
+========================================================================== */
+// Activity indicator Colors
+export const activityIndicatorSuccess = {
+ indicator: {
+ color: brand.success
+ }
+};
+export const activityIndicatorWarning = {
+ indicator: {
+ color: brand.warning
+ }
+};
+export const activityIndicatorDanger = {
+ indicator: {
+ color: brand.danger
+ }
+};
diff --git a/themesource/atlas_core/native/core/helpers/backgroundgradient.js b/themesource/atlas_core/native/core/helpers/backgroundgradient.js
new file mode 100644
index 00000000..b7b5e4a8
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/backgroundgradient.js
@@ -0,0 +1,33 @@
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+==========================================================================
+*/
+// Background Gradient properties
+export const backgroundGradient = {
+ container: {}
+};
+export const opacity25 = {
+ opacity: 25
+};
+export const opacity50 = {
+ opacity: 50
+};
+export const opacity75 = {
+ opacity: 75
+};
+export const opacity100 = {
+ opacity: 100
+};
+export const angle0 = {
+ angle: 0
+};
+export const angle45 = {
+ angle: 45
+};
+export const angle90 = {
+ angle: 90
+};
diff --git a/themesource/atlas_core/native/core/helpers/badge.js b/themesource/atlas_core/native/core/helpers/badge.js
new file mode 100644
index 00000000..04eb76e8
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/badge.js
@@ -0,0 +1,47 @@
+import { badge } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Badge
+
+//== Design Properties
+//## Helper classes to change the look and feel of the widget
+========================================================================== */
+// Badge Colors
+export const badgePrimary = {
+ container: {
+ backgroundColor: badge.primary.backgroundColor
+ },
+ caption: {
+ color: badge.primary.color
+ }
+};
+export const badgeSuccess = {
+ container: {
+ backgroundColor: badge.success.backgroundColor
+ },
+ caption: {
+ color: badge.success.color
+ }
+};
+export const badgeWarning = {
+ container: {
+ backgroundColor: badge.warning.backgroundColor
+ },
+ caption: {
+ color: badge.warning.color
+ }
+};
+export const badgeDanger = {
+ container: {
+ backgroundColor: badge.danger.backgroundColor
+ },
+ caption: {
+ color: badge.danger.color
+ }
+};
diff --git a/themesource/atlas_core/native/core/helpers/barchart.js b/themesource/atlas_core/native/core/helpers/barchart.js
new file mode 100644
index 00000000..834992c1
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/barchart.js
@@ -0,0 +1,11 @@
+export const barChartSquare = {
+ chart: {
+ aspectRatio: 1
+ }
+};
+export const barChartMaxSpace = {
+ chart: {
+ flex: 1,
+ aspectRatio: undefined
+ }
+};
diff --git a/themesource/atlas_core/native/core/helpers/buttons.js b/themesource/atlas_core/native/core/helpers/buttons.js
new file mode 100644
index 00000000..08134acb
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/buttons.js
@@ -0,0 +1,214 @@
+import { brand, button, contrast, font } from "../../variables";
+import merge from "./_functions/mergeobjects";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Button
+
+//== Design Properties
+//## Helper classes to change the look and feel of the widget
+========================================================================== */
+// Button Colors
+export const btnSecondary = {
+ container: {
+ borderColor: button.secondary.borderColor,
+ backgroundColor: button.secondary.backgroundColor
+ },
+ icon: {
+ color: button.secondary.color
+ },
+ caption: {
+ color: button.secondary.color
+ }
+};
+export const btnSuccess = {
+ container: {
+ borderColor: button.success.borderColor,
+ backgroundColor: button.success.backgroundColor
+ },
+ icon: {
+ color: button.success.color
+ },
+ caption: {
+ color: button.success.color
+ }
+};
+export const btnWarning = {
+ container: {
+ borderColor: button.warning.borderColor,
+ backgroundColor: button.warning.backgroundColor
+ },
+ icon: {
+ color: button.warning.color
+ },
+ caption: {
+ color: button.warning.color
+ }
+};
+export const btnDanger = {
+ container: {
+ borderColor: button.danger.borderColor,
+ backgroundColor: button.danger.backgroundColor
+ },
+ icon: {
+ color: button.danger.color
+ },
+ caption: {
+ color: button.danger.color
+ }
+};
+export const btnPrimaryInversed = {
+ container: {
+ borderColor: button.primary.color,
+ backgroundColor: button.primary.color
+ },
+ icon: {
+ color: button.primary.backgroundColor
+ },
+ caption: {
+ color: button.primary.backgroundColor
+ }
+};
+//
+// == Extra Classes
+// ## Helper classes to change the look and feel of the widget
+// -------------------------------------------------------------------------------------------------------------------//
+//
+// Button Icon Only
+export const btnIcon = {
+ container: {
+ borderWidth: 0,
+ backgroundColor: "transparent",
+ width: font.sizeLarge,
+ height: font.sizeLarge,
+ minWidth: undefined,
+ minHeight: undefined,
+ paddingVertical: 0,
+ paddingHorizontal: 0
+ },
+ icon: {
+ color: font.colorTitle
+ },
+ caption: {
+ fontSize: 0
+ }
+};
+export const btnIconPrimary = merge(btnIcon, {
+ icon: {
+ color: button.primary.backgroundColor
+ }
+});
+export const btnIconSecondary = merge(btnIcon, {
+ icon: {
+ color: contrast.low
+ }
+});
+export const btnIconSuccess = merge(btnIcon, {
+ icon: {
+ color: button.success.backgroundColor
+ }
+});
+export const btnIconWarning = merge(btnIcon, {
+ icon: {
+ color: button.warning.backgroundColor
+ }
+});
+export const btnIconDanger = merge(btnIcon, {
+ icon: {
+ color: button.danger.backgroundColor
+ }
+});
+export const btnIconWhite = merge(btnIcon, {
+ icon: {
+ color: "#FFF"
+ }
+});
+//
+export const btnIconGrayRounded = {
+ container: {
+ height: 80,
+ width: 80,
+ padding: 10,
+ borderRadius: 20,
+ borderWidth: 0,
+ backgroundColor: contrast.lowest
+ },
+ icon: {
+ size: 30,
+ color: contrast.high
+ },
+ caption: {
+ fontSize: 0
+ }
+};
+//
+// Round Button Icon With Background
+export const btnIconPrimaryBackground = {
+ container: {
+ width: 40,
+ height: 40,
+ borderRadius: 20,
+ paddingVertical: 0,
+ paddingHorizontal: 0
+ },
+ icon: {
+ width: "100%",
+ height: "100%",
+ alignItems: "center",
+ justifyContent: "center",
+ size: font.sizeLarge,
+ color: button.primary.color
+ }
+};
+//
+//
+// Text only
+export const btnAsText = {
+ container: {
+ maxHeight: 22,
+ borderWidth: 0,
+ borderRadius: 0,
+ rippleColor: contrast.lowest,
+ backgroundColor: "transparent"
+ // paddingVertical: 0,
+ // paddingHorizontal: 0,
+ },
+ icon: {
+ size: button.icon.size
+ },
+ caption: {
+ fontWeight: font.weightSemiBold,
+ fontSize: button.caption.fontSize
+ }
+};
+export const btnAsTextPrimary = merge(btnAsText, {
+ icon: {
+ color: brand.primary
+ },
+ caption: {
+ color: brand.primary
+ }
+});
+export const btnAsTextSecondary = merge(btnAsText, {
+ icon: {
+ color: font.colorTitle
+ },
+ caption: {
+ color: font.colorTitle
+ }
+});
+//
+// Button sizes
+export const btnLarge = {
+ icon: {
+ size: font.size
+ },
+ caption: {
+ fontSize: font.size
+ }
+};
diff --git a/themesource/atlas_core/native/core/helpers/columnchart.js b/themesource/atlas_core/native/core/helpers/columnchart.js
new file mode 100644
index 00000000..b90d1ca7
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/columnchart.js
@@ -0,0 +1,11 @@
+export const columnChartSquare = {
+ chart: {
+ aspectRatio: 1
+ }
+};
+export const columnChartMaxSpace = {
+ chart: {
+ flex: 1,
+ aspectRatio: undefined
+ }
+};
diff --git a/themesource/atlas_core/native/core/helpers/floatingactionbutton.js b/themesource/atlas_core/native/core/helpers/floatingactionbutton.js
new file mode 100644
index 00000000..0f5e777d
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/floatingactionbutton.js
@@ -0,0 +1,41 @@
+import { background, brand } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Floating Action Button
+
+//== Design Properties
+//## Helper classes to change the look and feel of the widget
+========================================================================== */
+// Floating Action Button Colors
+export const floatingActionButtonSecondary = {
+ button: {
+ backgroundColor: background.primary
+ },
+ buttonIcon: {
+ color: brand.primary
+ }
+};
+export const floatingActionButtonSuccess = {
+ button: {
+ backgroundColor: brand.success,
+ borderColor: brand.success
+ }
+};
+export const floatingActionButtonWarning = {
+ button: {
+ backgroundColor: brand.warning,
+ borderColor: brand.warning
+ }
+};
+export const floatingActionButtonDanger = {
+ button: {
+ backgroundColor: brand.danger,
+ borderColor: brand.danger
+ }
+};
diff --git a/themesource/atlas_core/native/core/helpers/gallery.js b/themesource/atlas_core/native/core/helpers/gallery.js
new file mode 100644
index 00000000..86bb210a
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/gallery.js
@@ -0,0 +1,182 @@
+import { button, border, spacing } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+==========================================================================
+*/
+export const justifyPaginationLeft = {
+ loadMoreButtonPressableContainer: {
+ alignSelf: "flex-start"
+ }
+};
+export const justifyPaginationCenter = {
+ loadMoreButtonPressableContainer: {
+ alignSelf: "center"
+ }
+};
+export const justifyPaginationRight = {
+ loadMoreButtonPressableContainer: {
+ alignSelf: "flex-end"
+ }
+};
+export const listItemBorderHorizontal = {
+ listItem: {
+ borderBottomWidth: border.width,
+ borderTopWidth: border.width,
+ borderBottomColor: border.color,
+ borderTopColor: border.color
+ }
+};
+export const listItemBorderVertical = {
+ listItem: {
+ borderStartWidth: border.width,
+ borderEndWidth: border.width,
+ borderStartColor: border.color,
+ borderEndColor: border.color
+ }
+};
+export const listItemBorder = {
+ listItem: {
+ ...listItemBorderVertical.listItem,
+ ...listItemBorderHorizontal.listItem
+ }
+};
+export const gridGapInnerSmall = {
+ listItem: {
+ padding: spacing.smaller
+ }
+};
+export const gridGapInnerMedium = {
+ listItem: {
+ padding: spacing.regular
+ }
+};
+export const gridGapInnerLarge = {
+ listItem: {
+ padding: spacing.larger
+ }
+};
+export const gridGapOuterSmall = {
+ listItem: {
+ margin: spacing.smaller
+ }
+};
+export const gridGapOuterMedium = {
+ listItem: {
+ margin: spacing.regular
+ }
+};
+export const gridGapOuterLarge = {
+ listItem: {
+ margin: spacing.larger
+ }
+};
+export const galleryGridAlignSelfStart = {
+ listItem: {
+ alignSelf: "flex-start"
+ }
+};
+export const galleryGridAlignSelfCenter = {
+ listItem: {
+ alignSelf: "center"
+ }
+};
+export const galleryGridAlignSelfEnd = {
+ listItem: {
+ alignSelf: "flex-end"
+ }
+};
+export const galleryGridAlignSelfStretch = {
+ listItem: {
+ alignSelf: "stretch"
+ }
+};
+export const galleryGridAlignSelfBaseline = {
+ listItem: {
+ alignSelf: "baseline"
+ }
+};
+export const galleryGridFlexRow = {
+ listItem: {
+ flexDirection: "row"
+ }
+};
+export const galleryGridFlexWrap = {
+ listItem: {
+ flexWrap: "wrap"
+ }
+};
+export const galleryGridJustifyContentStart = {
+ listItem: {
+ justifyContent: "flex-start"
+ }
+};
+export const galleryGridJustifyContentCenter = {
+ listItem: {
+ justifyContent: "center"
+ }
+};
+export const galleryGridJustifyContentEnd = {
+ listItem: {
+ justifyContent: "flex-end"
+ }
+};
+export const galleryGridJustifyContentSpaceBetween = {
+ listItem: {
+ justifyContent: "space-between"
+ }
+};
+export const galleryGridJustifyContentSpaceAround = {
+ listItem: {
+ justifyContent: "space-around"
+ }
+};
+export const galleryGridJustifyContentSpaceEvenly = {
+ listItem: {
+ justifyContent: "space-evenly"
+ }
+};
+export const loadMoreButtonBackgroundSecondary = {
+ loadMoreButtonPressableContainer: {
+ borderColor: button.secondary.borderColor,
+ backgroundColor: button.secondary.backgroundColor
+ },
+ loadMoreButtonCaption: {
+ color: button.secondary.color
+ }
+};
+export const loadMoreButtonBackgroundSuccess = {
+ loadMoreButtonPressableContainer: {
+ borderColor: button.success.borderColor,
+ backgroundColor: button.success.backgroundColor
+ },
+ loadMoreButtonCaption: {
+ color: button.success.color
+ }
+};
+export const loadMoreButtonBackgroundWarning = {
+ loadMoreButtonPressableContainer: {
+ borderColor: button.warning.borderColor,
+ backgroundColor: button.warning.backgroundColor
+ },
+ loadMoreButtonCaption: {
+ color: button.warning.color
+ }
+};
+export const loadMoreButtonBackgroundDanger = {
+ loadMoreButtonPressableContainer: {
+ borderColor: button.danger.borderColor,
+ backgroundColor: button.danger.backgroundColor
+ },
+ loadMoreButtonCaption: {
+ color: button.danger.color
+ }
+};
+export const loadMoreButtonFixedSize = {
+ loadMoreButtonPressableContainer: {
+ alignSelf: "baseline"
+ }
+};
diff --git a/themesource/atlas_core/native/core/helpers/gallerytextfilter.js b/themesource/atlas_core/native/core/helpers/gallerytextfilter.js
new file mode 100644
index 00000000..b5751af4
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/gallerytextfilter.js
@@ -0,0 +1,149 @@
+import { spacing } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+==========================================================================
+*/
+export const galleryTextFilterSpacingOuterTopSmallest = {
+ textInputContainer: {
+ marginTop: spacing.smallest
+ }
+};
+export const galleryTextFilterSpacingOuterTopSmaller = {
+ textInputContainer: {
+ marginTop: spacing.smaller
+ }
+};
+export const galleryTextFilterSpacingOuterTopSmall = {
+ textInputContainer: {
+ marginTop: spacing.small
+ }
+};
+export const galleryTextFilterSpacingOuterTopMedium = {
+ textInputContainer: {
+ marginTop: spacing.regular
+ }
+};
+export const galleryTextFilterSpacingOuterTopLarge = {
+ textInputContainer: {
+ marginTop: spacing.large
+ }
+};
+export const galleryTextFilterSpacingOuterTopLarger = {
+ textInputContainer: {
+ marginTop: spacing.larger
+ }
+};
+export const galleryTextFilterSpacingOuterTopLargest = {
+ textInputContainer: {
+ marginTop: spacing.largest
+ }
+};
+export const galleryTextFilterSpacingOuterBottomSmallest = {
+ textInputContainer: {
+ marginBottom: spacing.smallest
+ }
+};
+export const galleryTextFilterSpacingOuterBottomSmaller = {
+ textInputContainer: {
+ marginBottom: spacing.smaller
+ }
+};
+export const galleryTextFilterSpacingOuterBottomSmall = {
+ textInputContainer: {
+ marginBottom: spacing.small
+ }
+};
+export const galleryTextFilterSpacingOuterBottomMedium = {
+ textInputContainer: {
+ marginBottom: spacing.regular
+ }
+};
+export const galleryTextFilterSpacingOuterBottomLarge = {
+ textInputContainer: {
+ marginBottom: spacing.large
+ }
+};
+export const galleryTextFilterSpacingOuterBottomLarger = {
+ textInputContainer: {
+ marginBottom: spacing.larger
+ }
+};
+export const galleryTextFilterSpacingOuterBottomLargest = {
+ textInputContainer: {
+ marginBottom: spacing.largest
+ }
+};
+export const galleryTextFilterSpacingOuterRightSmallest = {
+ textInputContainer: {
+ marginRight: spacing.smallest
+ }
+};
+export const galleryTextFilterSpacingOuterRightSmaller = {
+ textInputContainer: {
+ marginRight: spacing.smaller
+ }
+};
+export const galleryTextFilterSpacingOuterRightSmall = {
+ textInputContainer: {
+ marginRight: spacing.small
+ }
+};
+export const galleryTextFilterSpacingOuterRightMedium = {
+ textInputContainer: {
+ marginRight: spacing.regular
+ }
+};
+export const galleryTextFilterSpacingOuterRightLarge = {
+ textInputContainer: {
+ marginRight: spacing.large
+ }
+};
+export const galleryTextFilterSpacingOuterRightLarger = {
+ textInputContainer: {
+ marginRight: spacing.larger
+ }
+};
+export const galleryTextFilterSpacingOuterRightLargest = {
+ textInputContainer: {
+ marginRight: spacing.largest
+ }
+};
+export const galleryTextFilterSpacingOuterLeftSmallest = {
+ textInputContainer: {
+ marginLeft: spacing.smallest
+ }
+};
+export const galleryTextFilterSpacingOuterLeftSmaller = {
+ textInputContainer: {
+ marginLeft: spacing.smaller
+ }
+};
+export const galleryTextFilterSpacingOuterLeftSmall = {
+ textInputContainer: {
+ marginLeft: spacing.small
+ }
+};
+export const galleryTextFilterSpacingOuterLeftMedium = {
+ textInputContainer: {
+ marginLeft: spacing.regular
+ }
+};
+export const galleryTextFilterSpacingOuterLeftLarge = {
+ textInputContainer: {
+ marginLeft: spacing.large
+ }
+};
+export const galleryTextFilterSpacingOuterLeftLarger = {
+ textInputContainer: {
+ marginLeft: spacing.larger
+ }
+};
+export const galleryTextFilterSpacingOuterLeftLargest = {
+ textInputContainer: {
+ marginLeft: spacing.largest
+ }
+};
diff --git a/themesource/atlas_core/native/core/helpers/helperclasses.js b/themesource/atlas_core/native/core/helpers/helperclasses.js
new file mode 100644
index 00000000..f1ae5384
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/helperclasses.js
@@ -0,0 +1,111 @@
+import { Platform } from "react-native";
+import { background, border } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+*/
+// Hide on Android
+export const hideOnAndroid = {
+ container: {
+ display: Platform.select({ ios: "flex", android: "none" })
+ }
+};
+// Hide on iOS
+export const hideOnIos = {
+ container: {
+ display: Platform.select({ ios: "none", android: "flex" })
+ }
+};
+//
+// == Background Colors
+export const backgroundPrimary = {
+ container: {
+ backgroundColor: background.primary
+ }
+};
+export const backgroundSecondary = {
+ container: {
+ backgroundColor: background.secondary
+ }
+};
+export const backgroundBrandPrimary = {
+ container: {
+ backgroundColor: background.brandPrimary
+ }
+};
+export const backgroundBrandSuccess = {
+ container: {
+ backgroundColor: background.brandSuccess
+ }
+};
+export const backgroundBrandWarning = {
+ container: {
+ backgroundColor: background.brandWarning
+ }
+};
+export const backgroundBrandDanger = {
+ container: {
+ backgroundColor: background.brandDanger
+ }
+};
+export const backgroundBrandInfo = {
+ container: {
+ backgroundColor: background.brandInfo
+ }
+};
+//
+// borders
+export const borderTop = {
+ container: {
+ borderColor: border.color,
+ borderTopWidth: border.width
+ }
+};
+export const borderRight = {
+ container: {
+ borderColor: border.color,
+ borderRightWidth: border.width
+ }
+};
+export const borderBottom = {
+ container: {
+ borderColor: border.color,
+ borderBottomWidth: border.width
+ }
+};
+export const borderRadiusSmall = {
+ container: {
+ overflow: "hidden",
+ borderRadius: border.radiusSmall
+ }
+};
+export const borderRadiusLarge = {
+ container: {
+ overflow: "hidden",
+ borderRadius: border.radiusLarge
+ }
+};
+//
+// Positioning
+export const absoluteBottom = {
+ container: {
+ position: "absolute",
+ bottom: 0,
+ width: "100%",
+ maxWidth: "100%",
+ zIndex: 99
+ }
+};
+export const absoluteTop = {
+ container: {
+ position: "absolute",
+ top: 0,
+ width: "100%",
+ maxWidth: "100%",
+ zIndex: 99
+ }
+};
diff --git a/themesource/atlas_core/native/core/helpers/image.js b/themesource/atlas_core/native/core/helpers/image.js
new file mode 100644
index 00000000..d0094290
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/image.js
@@ -0,0 +1,142 @@
+import { border, brand, contrast, image } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Image
+
+//== Design Properties
+//## Helper classes to change the look and feel of the widget
+========================================================================== */
+//
+//
+// == Extra Classes
+// ## Helper classes to change the look and feel of the widget
+// -------------------------------------------------------------------------------------------------------------------//
+// Image Overlay
+export const imageOverlay = {
+ container: {
+ zIndex: 10,
+ width: "100%",
+ height: "100%",
+ position: "absolute",
+ backgroundColor: "rgba(0,0,0,0.4)"
+ }
+};
+//
+// Image Shapes
+export const imageSquare = {
+ image: {
+ width: "100%",
+ height: "auto",
+ aspectRatio: 1,
+ borderRadius: border.radiusSmall
+ }
+};
+export const imageCircle = {
+ image: {
+ width: "100%",
+ height: "auto",
+ aspectRatio: 1,
+ borderRadius: 50000
+ }
+};
+// Image Sizes
+export const imageIcon = {
+ image: {
+ maxWidth: image.icon,
+ maxHeight: image.icon
+ },
+ container: {
+ maxWidth: image.icon,
+ maxHeight: image.icon
+ }
+};
+export const imageSmall = {
+ image: {
+ maxWidth: image.image.small,
+ maxHeight: image.image.small
+ },
+ container: {
+ maxWidth: image.image.small,
+ maxHeight: image.image.small
+ }
+};
+export const imageMedium = {
+ image: {
+ maxWidth: image.image.medium,
+ maxHeight: image.image.medium
+ },
+ container: {
+ maxWidth: image.image.medium,
+ maxHeight: image.image.medium
+ }
+};
+export const imageLarge = {
+ image: {
+ maxWidth: image.image.large,
+ maxHeight: image.image.large
+ },
+ container: {
+ maxWidth: image.image.large,
+ maxHeight: image.image.large
+ }
+};
+export const imageLarger = {
+ image: {
+ maxWidth: image.image.larger,
+ maxHeight: image.image.larger
+ },
+ container: {
+ maxWidth: image.image.larger,
+ maxHeight: image.image.larger
+ }
+};
+export const imageFullSize = {
+ image: {
+ maxWidth: "100%",
+ maxHeight: "auto"
+ }
+};
+//
+// Image / SVG Styles
+export const imageIconPrimary = {
+ image: {
+ fill: brand.primary,
+ color: brand.primary
+ }
+};
+export const imageIconSecondary = {
+ image: {
+ fill: contrast.low,
+ color: contrast.low
+ }
+};
+export const imageIconSuccess = {
+ image: {
+ fill: brand.success,
+ color: brand.success
+ }
+};
+export const imageIconWarning = {
+ image: {
+ fill: brand.warning,
+ color: brand.warning
+ }
+};
+export const imageIconDanger = {
+ image: {
+ fill: brand.danger,
+ color: brand.danger
+ }
+};
+export const imageIconInfo = {
+ image: {
+ fill: brand.info,
+ color: brand.info
+ }
+};
diff --git a/themesource/atlas_core/native/core/helpers/introscreen.js b/themesource/atlas_core/native/core/helpers/introscreen.js
new file mode 100644
index 00000000..bc3ff898
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/introscreen.js
@@ -0,0 +1,75 @@
+import { backgroundDefaults, brand, fontDefaults } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Intro Screen
+
+//== Design Properties
+//## Helper classes to change the look and feel of the widget
+========================================================================== */
+//
+//
+// == Extra Classes
+// ## Helper classes to change the look and feel of the widget
+// -------------------------------------------------------------------------------------------------------------------//
+const introScreenButton = {
+ icon: {
+ // Size and color are allowed
+ color: fontDefaults.colorTitleDark
+ },
+ caption: {
+ // All TextStyle properties are allowed
+ color: fontDefaults.colorTitleDark
+ }
+};
+export const introScreenLightMode = {
+ fullscreenContainer: {
+ // All ViewStyle properties are allowed
+ backgroundColor: backgroundDefaults.primaryLight
+ },
+ popupContainer: {
+ // All ViewStyle properties are allowed
+ backgroundColor: backgroundDefaults.primaryLight
+ },
+ paginationText: {
+ // All TextStyle properties are allowed
+ color: fontDefaults.colorTitleLight
+ },
+ dotStyle: {
+ // All ViewStyle properties are allowed
+ backgroundColor: fontDefaults.colorDisabledLight
+ },
+ activeDotStyle: {
+ // All ViewStyle properties are allowed
+ backgroundColor: backgroundDefaults.secondaryDark
+ },
+ // Button styles
+ paginationAbove: {
+ buttonSkip: introScreenButton,
+ buttonPrevious: introScreenButton,
+ buttonNext: introScreenButton,
+ buttonDone: introScreenButton
+ },
+ paginationBetween: {
+ buttonSkip: introScreenButton,
+ buttonPrevious: introScreenButton,
+ buttonNext: introScreenButton,
+ buttonDone: introScreenButton
+ }
+};
+// Background colors
+export const introScreenBackgroundBrandPrimary = {
+ fullscreenContainer: {
+ // All ViewStyle properties are allowed
+ backgroundColor: brand.primary
+ },
+ popupContainer: {
+ // All ViewStyle properties are allowed
+ backgroundColor: brand.primary
+ }
+};
diff --git a/themesource/atlas_core/native/core/helpers/linechart.js b/themesource/atlas_core/native/core/helpers/linechart.js
new file mode 100644
index 00000000..32eabbd3
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/linechart.js
@@ -0,0 +1,11 @@
+export const lineChartSquare = {
+ chart: {
+ aspectRatio: 1
+ }
+};
+export const lineChartMaxSpace = {
+ chart: {
+ flex: 1,
+ aspectRatio: undefined
+ }
+};
diff --git a/themesource/atlas_core/native/core/helpers/listview.js b/themesource/atlas_core/native/core/helpers/listview.js
new file mode 100644
index 00000000..7fa30dd3
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/listview.js
@@ -0,0 +1,46 @@
+import { background, border, listView, spacing } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ List View
+
+//== Design Properties
+//## Helper classes to change the look and feel of the widget
+========================================================================== */
+// List item dividers
+export const listItemBorderBottom = {
+ listItem: {
+ borderColor: listView.border.color,
+ borderBottomWidth: listView.border.width
+ }
+};
+export const listItemBorderRight = {
+ listItem: {
+ borderColor: listView.border.color,
+ borderRightWidth: listView.border.width
+ }
+};
+//
+// == Extra Classes
+// ## Helper classes to change the look and feel of the widget
+// -------------------------------------------------------------------------------------------------------------------//
+export const listItemImage = {
+ container: {
+ height: 88,
+ width: 128,
+ overflow: "hidden",
+ backgroundColor: background.primary,
+ borderRadius: border.radiusLarge,
+ marginRight: spacing.regular
+ }
+};
+export const horizontalListItemCard = {
+ container: {
+ width: 280
+ }
+};
diff --git a/themesource/atlas_core/native/core/helpers/listviewswipe.js b/themesource/atlas_core/native/core/helpers/listviewswipe.js
new file mode 100644
index 00000000..31fb38b4
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/listviewswipe.js
@@ -0,0 +1,38 @@
+import { listViewSwipe } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ List View Swipe
+
+//== Design Properties
+//## Helper classes to change the look and feel of the widget
+========================================================================== */
+export const listViewSwipeSmallPanels = {
+ leftAction: {
+ // PanelSize & All ViewStyle properties are allowed
+ panelSize: listViewSwipe.leftAction.panelSizeSmall
+ },
+ rightAction: {
+ // PanelSize & All ViewStyle properties are allowed
+ panelSize: listViewSwipe.rightAction.panelSizeSmall
+ }
+};
+export const listViewSwipeLargePanels = {
+ leftAction: {
+ // PanelSize & All ViewStyle properties are allowed
+ panelSize: listViewSwipe.leftAction.panelSizeLarge
+ },
+ rightAction: {
+ // PanelSize & All ViewStyle properties are allowed
+ panelSize: listViewSwipe.rightAction.panelSizeLarge
+ }
+};
+//
+// == Extra Classes
+// ## Helper classes to change the look and feel of the widget
+// -------------------------------------------------------------------------------------------------------------------//
diff --git a/themesource/atlas_core/native/core/helpers/maps.js b/themesource/atlas_core/native/core/helpers/maps.js
new file mode 100644
index 00000000..1c797dc9
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/maps.js
@@ -0,0 +1,55 @@
+import { border, brand } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Maps
+
+//== Design Properties
+//## Helper classes to change the look and feel of the widget
+========================================================================== */
+// Maps Colors
+export const mapsSuccess = {
+ marker: {
+ color: brand.success
+ }
+};
+export const mapsWarning = {
+ marker: {
+ color: brand.warning
+ }
+};
+export const mapsDanger = {
+ marker: {
+ color: brand.danger
+ }
+};
+//
+// Maps Size
+export const mapsSquare = {
+ container: {
+ aspectRatio: 1 / 1
+ }
+};
+export const mapsMaxSpace = {
+ container: {
+ flex: 1,
+ minHeight: 50,
+ aspectRatio: undefined
+ }
+};
+//
+// == Extra Classes
+// ## Helper classes to change the look and feel of the widget
+// -------------------------------------------------------------------------------------------------------------------//
+// Maps Shape
+export const mapsRounded = {
+ container: {
+ borderRadius: border.radiusSmall,
+ overflow: "hidden"
+ }
+};
diff --git a/themesource/atlas_core/native/core/helpers/progressbar.js b/themesource/atlas_core/native/core/helpers/progressbar.js
new file mode 100644
index 00000000..571e5b9c
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/progressbar.js
@@ -0,0 +1,44 @@
+import { brand, progressBar } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Progress Bar
+
+//== Design Properties
+//## Helper classes to change the look and feel of the widget
+========================================================================== */
+// Progress Bar Color
+export const progressBarSuccess = {
+ fill: {
+ backgroundColor: brand.success
+ }
+};
+export const progressBarWarning = {
+ fill: {
+ backgroundColor: brand.warning
+ }
+};
+export const progressBarDanger = {
+ fill: {
+ backgroundColor: brand.danger
+ }
+};
+//
+// Progress Bar Size
+export const progressBarSmall = {
+ bar: {
+ height: progressBar.bar.heightSmall,
+ borderRadius: progressBar.bar.heightSmall / 2
+ }
+};
+export const progressBarLarge = {
+ bar: {
+ height: progressBar.bar.heightLarge,
+ borderRadius: progressBar.bar.heightLarge / 2
+ }
+};
diff --git a/themesource/atlas_core/native/core/helpers/progresscircle.js b/themesource/atlas_core/native/core/helpers/progresscircle.js
new file mode 100644
index 00000000..ca16a0d5
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/progresscircle.js
@@ -0,0 +1,60 @@
+import { brand, contrast, font } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Progress Circle
+
+//== Design Properties
+//## Helper classes to change the look and feel of the widget
+========================================================================== */
+// Progress Circle Color
+export const progressCircleSuccess = {
+ fill: {
+ backgroundColor: brand.success
+ },
+ text: {
+ color: brand.success
+ }
+};
+export const progressCircleWarning = {
+ fill: {
+ backgroundColor: brand.warning
+ },
+ text: {
+ color: brand.warning
+ }
+};
+export const progressCircleDanger = {
+ fill: {
+ backgroundColor: brand.danger
+ },
+ text: {
+ color: brand.danger
+ }
+};
+export const progressCircleGray = {
+ fill: {
+ backgroundColor: contrast.regular
+ },
+ text: {
+ color: contrast.regular
+ }
+};
+//
+// Sizes
+export const progressCircleSmall = {
+ circle: {
+ size: 50
+ },
+ fill: {
+ width: 3
+ },
+ text: {
+ fontSize: font.sizeSmall
+ }
+};
diff --git a/themesource/atlas_core/native/core/helpers/radiobuttons.js b/themesource/atlas_core/native/core/helpers/radiobuttons.js
new file mode 100644
index 00000000..c686f2ac
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/radiobuttons.js
@@ -0,0 +1,91 @@
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+==========================================================================
+*/
+import { brand } from "../../../../../theme/native/custom-variables";
+// Radio buttons properties
+export const radioButtonsPrimary = {
+ circularButtonStyle: {
+ borderColor: brand.primary
+ },
+ activeButtonStyle: {
+ backgroundColor: brand.primary
+ },
+ radioButtonItemTitleStyle: {
+ color: brand.primary
+ }
+};
+export const radioButtonsSuccess = {
+ circularButtonStyle: {
+ borderColor: brand.success
+ },
+ activeButtonStyle: {
+ backgroundColor: brand.success
+ },
+ radioButtonItemTitleStyle: {
+ color: brand.success
+ }
+};
+export const radioButtonsWarning = {
+ circularButtonStyle: {
+ borderColor: brand.warning
+ },
+ activeButtonStyle: {
+ backgroundColor: brand.warning
+ },
+ radioButtonItemTitleStyle: {
+ color: brand.warning
+ }
+};
+export const radioButtonsDanger = {
+ circularButtonStyle: {
+ borderColor: brand.danger
+ },
+ activeButtonStyle: {
+ backgroundColor: brand.danger
+ },
+ radioButtonItemTitleStyle: {
+ color: brand.danger
+ }
+};
+export const radioButtonsInfo = {
+ circularButtonStyle: {
+ borderColor: brand.info
+ },
+ activeButtonStyle: {
+ backgroundColor: brand.info
+ },
+ radioButtonItemTitleStyle: {
+ color: brand.info
+ }
+};
+// Radio buttons label properties
+export const radioButtonsLabelPrimary = {
+ labelTextStyle: {
+ color: brand.primary
+ }
+};
+export const radioButtonsLabelSuccess = {
+ labelTextStyle: {
+ color: brand.success
+ }
+};
+export const radioButtonsLabelWarning = {
+ labelTextStyle: {
+ color: brand.warning
+ }
+};
+export const radioButtonsLabelDanger = {
+ labelTextStyle: {
+ color: brand.danger
+ }
+};
+export const radioButtonsLabelInfo = {
+ labelTextStyle: {
+ color: brand.info
+ }
+};
diff --git a/themesource/atlas_core/native/core/helpers/rangeslider.js b/themesource/atlas_core/native/core/helpers/rangeslider.js
new file mode 100644
index 00000000..09d0e581
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/rangeslider.js
@@ -0,0 +1,18 @@
+import { sliderDanger, sliderSuccess, sliderWarning } from "./slider";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Range Slider
+
+//== Design Properties
+//## Helper classes to change the look and feel of the widget
+========================================================================== */
+// Range Slider Color
+export const rangeSliderSuccess = sliderSuccess;
+export const rangeSliderWarning = sliderWarning;
+export const rangeSliderDanger = sliderDanger;
diff --git a/themesource/atlas_core/native/core/helpers/slider.js b/themesource/atlas_core/native/core/helpers/slider.js
new file mode 100644
index 00000000..fd707ffd
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/slider.js
@@ -0,0 +1,39 @@
+import { brand } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Slider
+
+//== Design Properties
+//## Helper classes to change the look and feel of the widget
+========================================================================== */
+// Slider Color
+export const sliderSuccess = {
+ highlight: {
+ backgroundColor: brand.success
+ },
+ highlightDisabled: {
+ backgroundColor: brand.success
+ }
+};
+export const sliderWarning = {
+ highlight: {
+ backgroundColor: brand.warning
+ },
+ highlightDisabled: {
+ backgroundColor: brand.warning
+ }
+};
+export const sliderDanger = {
+ highlight: {
+ backgroundColor: brand.danger
+ },
+ highlightDisabled: {
+ backgroundColor: brand.danger
+ }
+};
diff --git a/themesource/atlas_core/native/core/helpers/switch.js b/themesource/atlas_core/native/core/helpers/switch.js
new file mode 100644
index 00000000..b3913104
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/switch.js
@@ -0,0 +1,29 @@
+import { brand } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Switch
+
+ Default Class For Mendix Switch Widget
+========================================================================== */
+// Switch Color
+export const switchSuccess = {
+ input: {
+ trackColorOn: brand.success
+ }
+};
+export const switchWarning = {
+ input: {
+ trackColorOn: brand.warning
+ }
+};
+export const switchDanger = {
+ input: {
+ trackColorOn: brand.danger
+ }
+};
diff --git a/themesource/atlas_core/native/core/helpers/tabcontainer.js b/themesource/atlas_core/native/core/helpers/tabcontainer.js
new file mode 100644
index 00000000..08884fe0
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/tabcontainer.js
@@ -0,0 +1,33 @@
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Tab Container
+
+//== Design Properties
+//## Helper classes to change the look and feel of the widget
+========================================================================== */
+// Enable scroll for the tab bar
+export const tabContainerScroll = {
+ tabBar: {
+ scrollEnabled: true
+ }
+};
+//
+// == Extra Classes
+// ## Helper classes to change the look and feel of the widget
+// -------------------------------------------------------------------------------------------------------------------//
+// Tab container as content of page
+export const tabContainerMinimal = {
+ container: {
+ backgroundColor: "transparent"
+ },
+ tabBar: {
+ backgroundColor: "transparent",
+ elevation: 0
+ }
+};
diff --git a/themesource/atlas_core/native/core/helpers/textbox.js b/themesource/atlas_core/native/core/helpers/textbox.js
new file mode 100644
index 00000000..5309bc45
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/textbox.js
@@ -0,0 +1,34 @@
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Text Box
+
+//== Design Properties
+//## Helper classes to change the look and feel of the widget
+========================================================================== */
+// Text Box Color
+export const textInputCapitalizeNone = {
+ input: {
+ autoCapitalize: "none"
+ }
+};
+export const textInputCapitalizeCharacters = {
+ input: {
+ autoCapitalize: "characters"
+ }
+};
+export const textInputCapitalizeWords = {
+ input: {
+ autoCapitalize: "words"
+ }
+};
+export const textInputCapitalizeSentences = {
+ input: {
+ autoCapitalize: "sentences"
+ }
+};
diff --git a/themesource/atlas_core/native/core/helpers/typography.js b/themesource/atlas_core/native/core/helpers/typography.js
new file mode 100644
index 00000000..9fbdb931
--- /dev/null
+++ b/themesource/atlas_core/native/core/helpers/typography.js
@@ -0,0 +1,156 @@
+import { brand, font, fontDefaults } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Text
+
+//== Design Properties
+//## Helper classes to change the look and feel of the widget
+========================================================================== */
+// Text Colors
+export const textTitle = {
+ text: {
+ color: font.colorTitle
+ }
+};
+export const textParagraph = {
+ text: {
+ color: font.colorParagraph
+ }
+};
+export const textDisabled = {
+ text: {
+ color: font.colorDisabled
+ }
+};
+export const textWhite = {
+ text: {
+ color: fontDefaults.colorTitleLight
+ }
+};
+export const textBlack = {
+ text: {
+ color: fontDefaults.colorTitleDark
+ }
+};
+export const textPrimary = {
+ text: {
+ color: brand.primary
+ }
+};
+export const textSuccess = {
+ text: {
+ color: brand.success
+ }
+};
+export const textWarning = {
+ text: {
+ color: brand.warning
+ }
+};
+export const textDanger = {
+ text: {
+ color: brand.danger
+ }
+};
+//
+// Text Alignment
+export const textLeft = {
+ text: {
+ textAlign: "left"
+ }
+};
+export const textCenter = {
+ text: {
+ textAlign: "center"
+ }
+};
+export const textRight = {
+ text: {
+ textAlign: "right"
+ }
+};
+//
+// Text Weights
+export const textLight = {
+ text: {
+ fontWeight: font.weightLight
+ }
+};
+export const textNormal = {
+ text: {
+ fontWeight: font.weightNormal
+ }
+};
+export const textSemiBold = {
+ text: {
+ fontWeight: font.weightSemiBold
+ }
+};
+export const textBold = {
+ text: {
+ fontWeight: font.weightBold
+ }
+};
+//
+// Text Sizes
+export const textSmallest = {
+ text: {
+ fontSize: font.sizeSmallest,
+ lineHeight: font.lineHeightSmallest
+ }
+};
+export const textSmall = {
+ text: {
+ fontSize: font.sizeSmall,
+ lineHeight: font.lineHeightSmall
+ }
+};
+export const textLarge = {
+ text: {
+ fontSize: font.sizeLarge,
+ lineHeight: font.lineHeightLarge
+ }
+};
+export const textLargest = {
+ text: {
+ fontSize: font.sizeLargest,
+ lineHeight: font.lineHeightLargest
+ }
+};
+//
+// == Extra Classes
+// ## Helper classes to change the look and feel of the widget
+// -------------------------------------------------------------------------------------------------------------------//
+//
+// Text Transformations
+export const textLowercase = {
+ text: {
+ textTransform: "lowercase"
+ }
+};
+export const textUppercase = {
+ text: {
+ textTransform: "uppercase"
+ }
+};
+export const textCapitalize = {
+ text: {
+ textTransform: "capitalize"
+ }
+};
+export const textUnderline = {
+ text: {
+ textDecorationLine: "underline"
+ }
+};
+export const textLineThrough = {
+ text: {
+ textDecorationLine: "line-through"
+ }
+};
diff --git a/themesource/atlas_core/native/core/manifest.json b/themesource/atlas_core/native/core/manifest.json
new file mode 100644
index 00000000..b6b47f56
--- /dev/null
+++ b/themesource/atlas_core/native/core/manifest.json
@@ -0,0 +1,4 @@
+{
+ "name": "Atlas-UI-Framework",
+ "version": "3.0.0"
+}
diff --git a/themesource/atlas_core/native/core/widgets/accordion.js b/themesource/atlas_core/native/core/widgets/accordion.js
new file mode 100644
index 00000000..113ca976
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/accordion.js
@@ -0,0 +1,87 @@
+import { accordion } from "../../variables";
+import { TextHeading1, TextHeading2, TextHeading3, TextHeading4, TextHeading5, TextHeading6 } from "./typography";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Activity Indicator
+
+ Default Class For Mendix Activity Indicator Widget
+========================================================================== */
+export const com_mendix_widget_native_accordion_Accordion = {
+ container: {
+ // All ViewStyle properties are allowed
+ flexGrow: 1,
+ backgroundColor: accordion.container.backgroundColor,
+ borderColor: accordion.container.borderColor
+ },
+ group: {
+ container: {
+ // All ViewStyle properties are allowed
+ borderWidth: 1,
+ borderColor: accordion.container.borderColor
+ },
+ header: {
+ container: {
+ // All ViewStyle properties are allowed
+ borderColor: accordion.container.borderColor,
+ flexDirection: "row",
+ alignItems: "center",
+ justifyContent: "space-between",
+ paddingVertical: accordion.groupHeader.container.paddingVertical,
+ paddingHorizontal: accordion.groupHeader.container.paddingHorizontal
+ },
+ heading1: {
+ // All TextStyle properties are allowed
+ ...TextHeading1.text,
+ fontWeight: "normal",
+ color: accordion.groupHeader.heading.color
+ },
+ heading2: {
+ // All TextStyle properties are allowed
+ ...TextHeading2.text,
+ fontWeight: "normal",
+ color: accordion.groupHeader.heading.color
+ },
+ heading3: {
+ // All TextStyle properties are allowed
+ ...TextHeading3.text,
+ fontWeight: "normal",
+ color: accordion.groupHeader.heading.color
+ },
+ heading4: {
+ // All TextStyle properties are allowed
+ ...TextHeading4.text,
+ fontWeight: "normal",
+ color: accordion.groupHeader.heading.color
+ },
+ heading5: {
+ // All TextStyle properties are allowed
+ ...TextHeading5.text,
+ fontWeight: "normal",
+ color: accordion.groupHeader.heading.color
+ },
+ heading6: {
+ // All TextStyle properties are allowed
+ ...TextHeading6.text,
+ fontWeight: "normal",
+ color: accordion.groupHeader.heading.color
+ },
+ icon: {
+ // Size, Color and all ViewStyle properties are allowed
+ size: accordion.groupHeader.icon.size,
+ color: accordion.groupHeader.icon.color
+ }
+ },
+ content: {
+ // All ViewStyle properties are allowed
+ paddingTop: accordion.groupContent.paddingTop,
+ paddingBottom: accordion.groupContent.paddingBottom,
+ paddingHorizontal: accordion.groupContent.paddingHorizontal
+ }
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/activityindicator.js b/themesource/atlas_core/native/core/widgets/activityindicator.js
new file mode 100644
index 00000000..1ae32d74
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/activityindicator.js
@@ -0,0 +1,23 @@
+import { brand } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Activity Indicator
+
+ Default Class For Mendix Activity Indicator Widget
+========================================================================== */
+export const com_mendix_widget_native_activityindicator_ActivityIndicator = {
+ container: {
+ // All ViewStyle properties are allowed
+ },
+ indicator: {
+ // Color and size are allowed
+ color: brand.primary,
+ size: "large"
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/animation.js b/themesource/atlas_core/native/core/widgets/animation.js
new file mode 100644
index 00000000..4b143de3
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/animation.js
@@ -0,0 +1,17 @@
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Animation
+
+ Default Class For Mendix Animation Widget
+========================================================================== */
+export const com_mendix_widget_native_animation_Animation = {
+ container: {
+ // All ViewStyle properties are allowed
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/backgroundgradient.js b/themesource/atlas_core/native/core/widgets/backgroundgradient.js
new file mode 100644
index 00000000..4ce87c78
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/backgroundgradient.js
@@ -0,0 +1,21 @@
+import { backgroundGradient } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ BackgroundGradient
+
+ Default Class For Mendix BackgroundGradient Widget
+========================================================================== */
+export const com_mendix_widget_native_backgroundgradient_BackgroundGradient = {
+ container: {
+ // All ViewStyle properties are allowed
+ ...backgroundGradient.container
+ },
+ angle: backgroundGradient.angle,
+ opacity: backgroundGradient.opacity
+};
diff --git a/themesource/atlas_core/native/core/widgets/backgroundimage.js b/themesource/atlas_core/native/core/widgets/backgroundimage.js
new file mode 100644
index 00000000..40d6829b
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/backgroundimage.js
@@ -0,0 +1,19 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+//
+/* ==========================================================================
+ Background Image
+
+ Default Class For Mendix Background Image Widget
+========================================================================== */
+export const com_mendix_widget_native_backgroundimage_BackgroundImage = {
+ container: {
+ // All ViewStyle properties are allowed
+ },
+ image: {
+ // svgColor and all ImageStyle properties are allowed
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/badge.js b/themesource/atlas_core/native/core/widgets/badge.js
new file mode 100644
index 00000000..260c6da0
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/badge.js
@@ -0,0 +1,29 @@
+import { badge, font } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Badge
+
+ Default Class For Mendix Badge Widget
+========================================================================== */
+export const com_mendix_widget_native_badge_Badge = {
+ container: {
+ // All ViewStyle properties are allowed
+ backgroundColor: badge.default.backgroundColor,
+ borderRadius: badge.borderRadius,
+ paddingVertical: badge.paddingVertical,
+ paddingHorizontal: badge.paddingHorizontal
+ },
+ caption: {
+ // All TextStyle properties are allowed
+ color: badge.default.color,
+ fontFamily: font.family,
+ fontWeight: badge.fontWeight,
+ marginTop: -1
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/barchart.js b/themesource/atlas_core/native/core/widgets/barchart.js
new file mode 100644
index 00000000..c2b09c0d
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/barchart.js
@@ -0,0 +1,166 @@
+import { border, brand, font, spacing } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Bar Chart
+
+ Default Class For Mendix Bar Chart Widget
+========================================================================== */
+export const com_mendix_widget_native_barchart_BarChart = {
+ container: {
+ // All ViewStyle properties are allowed
+ },
+ errorMessage: {
+ // All TextStyle properties are allowed
+ fontFamily: font.family,
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightNormal
+ },
+ chart: {
+ // All ViewStyle properties are allowed
+ },
+ grid: {
+ /*
+ Allowed properties:
+ - backgroundColor (string)
+ - dashArray (string)
+ - lineColor (string)
+ - padding (number)
+ - paddingBottom (number)
+ - paddingHorizontal (number)
+ - paddingLeft (number)
+ - paddingRight (number)
+ - paddingTop (number)
+ - paddingVertical (number)
+ - width (number)
+ */
+ lineColor: border.color,
+ paddingBottom: 32,
+ paddingLeft: 32,
+ paddingRight: 8,
+ paddingTop: 8
+ },
+ xAxis: {
+ /*
+ Allowed properties:
+ - color (string)
+ - dashArray (string)
+ - fontFamily (string)
+ - fontSize (number)
+ - fontStyle ("normal" or "italic")
+ - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900")
+ - lineColor (string)
+ - width (number)
+ */
+ color: font.colorTitle,
+ fontFamily: font.family,
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightNormal,
+ label: {
+ /*
+ All TextStyle properties are allowed and:
+ - relativePositionGrid ("bottom" or "right")
+ */
+ color: font.colorParagraph,
+ alignSelf: "center",
+ marginHorizontal: 0,
+ marginVertical: 8,
+ fontFamily: font.family,
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightNormal
+ },
+ lineColor: border.color
+ },
+ yAxis: {
+ /*
+ Allowed properties:
+ - color (string)
+ - dashArray (string)
+ - fontFamily (string)
+ - fontSize (number)
+ - fontStyle ("normal" or "italic")
+ - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900")
+ - lineColor (string)
+ - width (number)
+ */
+ color: font.colorTitle,
+ fontFamily: font.family,
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightNormal,
+ label: {
+ /*
+ All TextStyle properties are allowed and:
+ - relativePositionGrid ("top" or "left")
+ */
+ color: font.colorParagraph,
+ marginHorizontal: 0,
+ marginVertical: 8,
+ fontFamily: font.family,
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightNormal
+ },
+ lineColor: border.color
+ },
+ bars: {
+ /*
+ Allowed properties:
+ - barColorPalette (string with array of colors separated by ';')
+ - barsOffset (number)
+
+ */
+ barColorPalette: Object.entries(brand)
+ .reduce((accumulator, [key, value]) => (key.endsWith("Light") ? accumulator : [...accumulator, value]), [])
+ .join(";"),
+ barsOffset: 20,
+ customBarStyles: {
+ your_static_or_dynamic_attribute_value: {
+ bar: {
+ /*
+ Allowed properties:
+ - ending (number)
+ - barColor (string)
+ - width (number)
+ */
+ },
+ label: {
+ /*
+ Allowed properties:
+ - fontFamily (string)
+ - fontSize (number)
+ - fontStyle ("normal" or "italic")
+ - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900")
+ */
+ }
+ }
+ }
+ },
+ legend: {
+ container: {
+ // All ViewStyle properties are allowed
+ justifyContent: "flex-start",
+ marginHorizontal: 0,
+ marginVertical: spacing.small
+ },
+ item: {
+ // All ViewStyle properties are allowed
+ padding: 0,
+ paddingRight: spacing.regular
+ },
+ indicator: {
+ // All ViewStyle properties are allowed
+ marginRight: spacing.small
+ },
+ label: {
+ // All TextStyle properties are allowed
+ color: font.colorTitle,
+ fontFamily: font.family,
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightNormal
+ }
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/bottomsheet.js b/themesource/atlas_core/native/core/widgets/bottomsheet.js
new file mode 100644
index 00000000..32fe4f8c
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/bottomsheet.js
@@ -0,0 +1,67 @@
+import { background, border, brand, contrast, font } from "../../variables";
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+//
+/* ==========================================================================
+ Bottom Sheet
+
+ Default Class For Mendix Bottom Sheet Widget
+========================================================================== */
+export const com_mendix_widget_native_bottomsheet_BottomSheet = {
+ container: {
+ // All ViewStyle properties are allowed
+ backgroundColor: background.primary,
+ borderRadius: border.radiusLarge,
+ elevation: 20,
+ shadowColor: "#000",
+ shadowOpacity: 0.1,
+ shadowRadius: 6,
+ shadowOffset: {
+ width: 0,
+ height: -4
+ }
+ },
+ containerWhenExpandedFullscreen: {
+ // All ViewStyle properties are allowed
+ height: "100%",
+ alignSelf: "stretch",
+ backgroundColor: background.primary
+ },
+ modal: {
+ // All ViewStyle properties are allowed
+ margin: 0,
+ justifyContent: "flex-end"
+ },
+ modalItems: {
+ container: {
+ // rippleColor & All TextStyle properties are allowed
+ height: 50,
+ marginTop: 0,
+ rippleColor: contrast.lower,
+ backgroundColor: background.primary
+ },
+ defaultStyle: {
+ // All TextStyle properties are allowed
+ fontSize: 16,
+ color: font.colorTitle
+ },
+ primaryStyle: {
+ // All TextStyle properties are allowed
+ fontSize: 16,
+ color: brand.primary
+ },
+ dangerStyle: {
+ // All TextStyle properties are allowed
+ fontSize: 16,
+ color: brand.danger
+ },
+ customStyle: {
+ // All TextStyle properties are allowed
+ fontSize: 16,
+ color: font.colorTitle
+ }
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/buttons.js b/themesource/atlas_core/native/core/widgets/buttons.js
new file mode 100644
index 00000000..752b2b7f
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/buttons.js
@@ -0,0 +1,75 @@
+import { button, font } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Button
+
+ Default Class For Mendix Button Widget
+========================================================================== */
+export const ActionButton = {
+ container: {
+ // Ripplecolor and all ViewStyle properties are allowed
+ borderWidth: 1,
+ borderStyle: "solid",
+ rippleColor: button.container.rippleColor,
+ borderColor: button.primary.borderColor,
+ backgroundColor: button.primary.backgroundColor,
+ alignItems: "center",
+ justifyContent: "center",
+ borderRadius: button.container.borderRadius,
+ minWidth: button.container.minWidth,
+ minHeight: button.container.minHeight,
+ paddingVertical: button.container.paddingVertical,
+ paddingHorizontal: button.container.paddingHorizontal
+ },
+ containerDisabled: {
+ // All ViewStyle properties are allowed
+ borderColor: button.containerDisabled.borderColor,
+ backgroundColor: button.containerDisabled.backgroundColor
+ },
+ icon: {
+ // Size and color are allowed
+ color: button.primary.color,
+ size: button.icon.size
+ },
+ iconDisabled: {
+ // Size and color are allowed
+ color: button.iconDisabled.color
+ },
+ caption: {
+ // All TextStyle properties are allowed
+ color: button.primary.color,
+ fontSize: button.caption.fontSize,
+ fontFamily: font.family,
+ fontWeight: button.caption.fontWeight,
+ lineHeight: font.lineHeight
+ },
+ captionDisabled: {
+ // All TextStyle properties are allowed
+ color: button.captionDisabled.color
+ }
+};
+//
+// Default style for button inside a header
+export const ActionButtonHeader = {
+ container: {
+ borderColor: button.header.borderColor,
+ backgroundColor: button.header.backgroundColor,
+ paddingLeft: button.header.paddingLeft,
+ paddingRight: button.header.paddingRight
+ },
+ icon: {
+ color: button.header.color,
+ size: button.header.fontSizeIcon
+ },
+ caption: {
+ color: button.header.color,
+ fontSize: button.header.fontSize,
+ fontFamily: font.family
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/carousel.js b/themesource/atlas_core/native/core/widgets/carousel.js
new file mode 100644
index 00000000..cd2819e0
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/carousel.js
@@ -0,0 +1,119 @@
+import { brand, contrast, font, spacing } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Button
+
+ Default Class For Mendix Carousel Widget
+========================================================================== */
+// Card
+const carouselFullWidthLayout = {
+ slideItem: {
+ // All ViewStyle properties are allowed
+ height: 250
+ },
+ inactiveSlideItem: {
+ // Only opacity and scale are allowed
+ },
+ pagination: {
+ container: {
+ // All ViewStyle properties are allowed
+ position: "absolute",
+ bottom: 0,
+ width: "100%",
+ justifyContent: "center",
+ paddingHorizontal: spacing.regular,
+ paddingBottom: spacing.regular
+ },
+ text: {
+ // All TextStyle properties are allowed
+ color: "#FFF",
+ fontSize: font.size,
+ fontFamily: font.family,
+ textAlign: "center",
+ textShadowColor: "#888",
+ textShadowRadius: 3,
+ textShadowOffset: {
+ width: 0,
+ height: 1
+ }
+ },
+ dotContainerStyle: {
+ // All ViewStyle properties are allowed
+ marginHorizontal: 3
+ },
+ dotStyle: {
+ // Color and all ViewStyle properties are allowed
+ color: "#FFF"
+ },
+ inactiveDotStyle: {
+ // Only opacity, scale and color are allowed
+ color: "rgba(255, 255, 255, 0.45)",
+ scale: 1
+ }
+ }
+};
+const carouselCardLayout = {
+ slideItem: {
+ // All ViewStyle properties are allowed
+ width: "70%",
+ height: 250,
+ padding: 8,
+ paddingBottom: spacing.regular,
+ elevation: 1.5,
+ shadowColor: "#000",
+ shadowOpacity: 0.5,
+ shadowRadius: 6,
+ shadowOffset: {
+ width: 0,
+ height: 4
+ }
+ },
+ inactiveSlideItem: {
+ // Only opacity and scale are allowed
+ opacity: 0.8
+ },
+ pagination: {
+ container: {
+ // All ViewStyle properties are allowed
+ paddingHorizontal: spacing.regular,
+ paddingBottom: spacing.smaller
+ },
+ text: {
+ // All TextStyle properties are allowed
+ color: font.colorTitle,
+ fontSize: font.size,
+ fontFamily: font.family,
+ textAlign: "center"
+ },
+ dotContainerStyle: {
+ // All ViewStyle properties are allowed
+ marginHorizontal: 3
+ },
+ dotStyle: {
+ // Color and all ViewStyle properties are allowed
+ color: brand.primary
+ },
+ inactiveDotStyle: {
+ // Only opacity, scale and color are allowed
+ color: contrast.lower,
+ scale: 1
+ }
+ }
+};
+export const com_mendix_widget_native_carousel_Carousel = {
+ container: {
+ // All ViewStyle properties are allowed
+ },
+ fullWidthLayout: carouselFullWidthLayout,
+ cardLayout: carouselCardLayout,
+ activityIndicator: {
+ // Only color is allowed
+ color: font.colorTitle
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/checkbox.js b/themesource/atlas_core/native/core/widgets/checkbox.js
new file mode 100644
index 00000000..36dbdfde
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/checkbox.js
@@ -0,0 +1,99 @@
+import { background, brand, contrast, spacing, checkbox } from "../../variables";
+import { TextBox, TextBoxVertical } from "./textbox";
+import { com_mendix_widget_native_switch_Switch } from "./switch";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ CheckBox
+
+ Default Class For Mendix CheckBox Widget
+========================================================================== */
+export const CheckBox = {
+ container: {
+ // All ViewStyle properties are allowed
+ ...TextBox.container,
+ paddingVertical: spacing.smallest,
+ justifyContent: "center"
+ },
+ containerDisabled: {
+ // All ViewStyle properties are allowed
+ ...TextBox.containerDisabled
+ },
+ label: {
+ // numberOfLines and all TextStyle properties are allowed
+ ...TextBox.label
+ },
+ labelDisabled: {
+ // All TextStyle properties are allowed
+ ...TextBox.labelDisabled
+ },
+ // the below properties (input, inputDisabled & inputError) are only used when render mode is `switch`
+ input: {
+ // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all ViewStyle properties are allowed
+ ...com_mendix_widget_native_switch_Switch.input
+ },
+ inputDisabled: {
+ // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all ViewStyle properties are allowed
+ ...com_mendix_widget_native_switch_Switch.inputDisabled
+ },
+ inputError: {
+ // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all ViewStyle properties are allowed
+ ...com_mendix_widget_native_switch_Switch.inputError
+ },
+ // the below properties (checkboxInput, checkboxInputDisabled & checkboxInputError) are only used when render mode is `checkbox`
+ checkboxInput: {
+ // color, size & all ViewStyle properties are allowed
+ ...checkbox.checkboxInput,
+ justifyContent: "center",
+ alignItems: "center"
+ },
+ checkboxInputDisabled: {
+ // color, size & all ViewStyle properties are allowed
+ ...checkbox.checkboxInputDisabled
+ },
+ checkboxInputError: {
+ // color, size & all ViewStyle properties are allowed
+ ...checkbox.checkboxInputError
+ },
+ validationMessage: {
+ // All TextStyle properties are allowed
+ ...TextBox.validationMessage,
+ alignSelf: "stretch"
+ }
+};
+export const CheckBoxVertical = {
+ container: TextBoxVertical.container,
+ containerDisabled: TextBoxVertical.containerDisabled,
+ label: TextBoxVertical.label,
+ labelDisabled: TextBoxVertical.labelDisabled,
+ // the below properties (input, inputDisabled & inputError) are only used when render mode is `switch`
+ input: {
+ ...CheckBox.input,
+ alignSelf: "flex-start"
+ },
+ inputDisabled: CheckBox.inputDisabled,
+ inputError: {
+ ...TextBoxVertical.inputError,
+ thumbColorOn: background.primary,
+ trackColorOn: brand.danger,
+ thumbColorOff: contrast.low,
+ trackColorOff: brand.danger
+ },
+ // the below properties (checkboxInput, checkboxInputDisabled & checkboxInputError) are only used when render mode is `checkbox`
+ checkboxInput: {
+ ...CheckBox.checkboxInput
+ },
+ checkboxInputDisabled: CheckBox.checkboxInputDisabled,
+ checkboxInputError: {
+ ...TextBoxVertical.inputError
+ },
+ validationMessage: {
+ ...TextBoxVertical.validationMessage,
+ alignSelf: "stretch"
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/colorpicker.js b/themesource/atlas_core/native/core/widgets/colorpicker.js
new file mode 100644
index 00000000..dd0aadf9
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/colorpicker.js
@@ -0,0 +1,20 @@
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Color Picker
+
+ Default Class For Mendix Color Picker Widget
+========================================================================== */
+export const com_mendix_widget_native_colorpicker_ColorPicker = {
+ container: {
+ // All ViewStyle properties are allowed
+ },
+ thumbnail: {
+ // All ViewStyle properties are allowed
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/columnchart.js b/themesource/atlas_core/native/core/widgets/columnchart.js
new file mode 100644
index 00000000..02a78655
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/columnchart.js
@@ -0,0 +1,119 @@
+var _a, _b, _c, _d;
+import { columnChart } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Column Chart
+
+ Default Class For Mendix Column Chart Widget
+========================================================================== */
+export const com_mendix_widget_native_columnchart_ColumnChart = {
+ container: {
+ // All ViewStyle properties are allowed
+ ...columnChart.container
+ },
+ errorMessage: {
+ // All TextStyle properties are allowed
+ ...columnChart.errorMessage
+ },
+ chart: {
+ // All ViewStyle properties are allowed
+ ...columnChart.chart
+ },
+ grid: {
+ /*
+ Allowed properties:
+ - backgroundColor (string)
+ - dashArray (string)
+ - lineColor (string)
+ - padding (number)
+ - paddingBottom (number)
+ - paddingHorizontal (number)
+ - paddingLeft (number)
+ - paddingRight (number)
+ - paddingTop (number)
+ - paddingVertical (number)
+ - width (number)
+ */
+ ...columnChart.grid
+ },
+ xAxis: {
+ /*
+ Allowed properties:
+ - color (string)
+ - dashArray (string)
+ - fontFamily (string)
+ - fontSize (number)
+ - fontStyle ("normal" or "italic")
+ - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900")
+ - lineColor (string)
+ - width (number)
+ - label: All TextStyle properties are allowed and:
+ -relativePositionGrid ("bottom" or "right")
+ */
+ ...columnChart.xAxis
+ },
+ yAxis: {
+ /*
+ Allowed properties:
+ - color (string)
+ - dashArray (string)
+ - fontFamily (string)
+ - fontSize (number)
+ - fontStyle ("normal" or "italic")
+ - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900")
+ - lineColor (string)
+ - width (number)
+ - label: All TextStyle properties are allowed and:
+ - relativePositionGrid ("top" or "left")
+ */
+ ...columnChart.yAxis
+ },
+ columns: {
+ /*
+ Allowed properties:
+ - columnColorPalette (string with array of colors separated by ';')
+ - columnsOffset (number)
+ - customColumnStyles:{
+ your_static_or_dynamic_attribute_value:{
+ column:
+ Allowed properties:
+ - ending (number)
+ - columnColor (string)
+ - width (number)
+ label:
+ Allowed properties:
+ - fontFamily (string)
+ - fontSize (number)
+ - fontStyle ("normal" or "italic")
+ - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900")
+
+ }
+ }
+ */
+ ...columnChart.columns
+ },
+ legend: {
+ container: {
+ // All ViewStyle properties are allowed
+ ...(_a = columnChart.legend) === null || _a === void 0 ? void 0 : _a.container
+ },
+ item: {
+ // All ViewStyle properties are allowed
+ ...(_b = columnChart.legend) === null || _b === void 0 ? void 0 : _b.item
+ },
+ indicator: {
+ // All ViewStyle properties are allowed
+ ...(_c = columnChart.legend) === null || _c === void 0 ? void 0 : _c.indicator
+ },
+ label: {
+ // All TextStyle properties are allowed
+ ...(_d = columnChart.legend) === null || _d === void 0 ? void 0 : _d.label
+ }
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/container.js b/themesource/atlas_core/native/core/widgets/container.js
new file mode 100644
index 00000000..3636ff54
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/container.js
@@ -0,0 +1,27 @@
+import { container } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Container
+
+ Default Class For Mendix Container Widget
+========================================================================== */
+export const Container = {
+ container: {
+ // rippleColor & all ViewStyle properties are allowed
+ },
+ containerDisabled: {
+ // All ViewStyle properties are allowed
+ opacity: container.containerDisabled.opacity
+ }
+};
+export const ScrollContainer = {
+ container: {
+ // All ViewStyle properties are allowed
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/datepicker.js b/themesource/atlas_core/native/core/widgets/datepicker.js
new file mode 100644
index 00000000..173d75b1
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/datepicker.js
@@ -0,0 +1,94 @@
+var _a, _b, _c, _d;
+import { background, font, input } from "../../variables";
+import { TextBox, TextBoxVertical } from "./textbox";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Date Picker
+
+ Default Class For Mendix Date Picker Widget
+========================================================================== */
+export const DatePicker = {
+ container: {
+ // All ViewStyle properties are allowed
+ ...TextBox.container
+ },
+ containerDisabled: {
+ // All ViewStyle properties are allowed
+ ...TextBox.containerDisabled
+ },
+ valueContainerError: {
+ // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed
+ color: input.inputError.color,
+ borderColor: input.inputError.borderColor
+ },
+ label: {
+ // numberOfLines and all TextStyle properties are allowed
+ ...TextBox.label
+ },
+ labelDisabled: {
+ // All TextStyle properties are allowed
+ ...TextBox.labelDisabled
+ },
+ pickerIOS: {
+ // All ViewStyle properties & "color" (type: string) are allowed
+ backgroundColor: background.primary,
+ color: font.colorTitle
+ },
+ pickerBackdropIOS: {
+ // All ViewStyle properties are allowed
+ },
+ pickerTopIOS: {
+ // All ViewStyle properties are allowed
+ backgroundColor: background.primary
+ },
+ value: {
+ // All TextStyle properties are allowed
+ color: input.input.color,
+ borderColor: input.input.borderColor,
+ backgroundColor: input.input.backgroundColor,
+ fontSize: input.input.fontSize,
+ lineHeight: input.input.lineHeight,
+ fontFamily: font.family,
+ borderWidth: input.input.borderWidth,
+ borderRadius: input.input.borderRadius,
+ textAlignVertical: "center",
+ minWidth: input.input.minWidth,
+ minHeight: input.input.minHeight,
+ paddingHorizontal: input.input.paddingHorizontal,
+ paddingVertical: input.input.paddingVertical
+ },
+ valueDisabled: {
+ // All TextStyle properties are allowed
+ color: (_a = TextBox.inputDisabled) === null || _a === void 0 ? void 0 : _a.color,
+ borderColor: (_b = TextBox.inputDisabled) === null || _b === void 0 ? void 0 : _b.borderColor,
+ backgroundColor: (_c = TextBox.inputDisabled) === null || _c === void 0 ? void 0 : _c.backgroundColor
+ },
+ placeholder: {
+ // All TextStyle properties are allowed
+ color: input.input.placeholderTextColor
+ },
+ placeholderDisabled: {
+ // All TextStyle properties are allowed
+ color: (_d = TextBox.inputDisabled) === null || _d === void 0 ? void 0 : _d.color
+ },
+ validationMessage: {
+ // All TextStyle properties are allowed
+ ...TextBox.validationMessage
+ }
+};
+export const DatePickerVertical = {
+ container: TextBoxVertical.container,
+ containerDisabled: TextBoxVertical.containerDisabled,
+ label: TextBoxVertical.label,
+ labelDisabled: TextBoxVertical.labelDisabled,
+ value: DatePicker.value,
+ valueDisabled: DatePicker.valueDisabled,
+ placeholder: DatePicker.placeholder,
+ validationMessage: TextBoxVertical.validationMessage
+};
diff --git a/themesource/atlas_core/native/core/widgets/dropdown.js b/themesource/atlas_core/native/core/widgets/dropdown.js
new file mode 100644
index 00000000..660af012
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/dropdown.js
@@ -0,0 +1,162 @@
+var _a, _b, _c;
+import { font, input } from "../../variables";
+import { TextBox, TextBoxVertical } from "./textbox";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Drop Down
+
+ Default Class For Mendix Drop Down Widget
+========================================================================== */
+export const DropDown = {
+ container: {
+ // All ViewStyle properties are allowed
+ ...TextBox.container
+ },
+ containerDisabled: {
+ // All ViewStyle properties are allowed
+ ...TextBox.containerDisabled
+ },
+ label: {
+ // numberOfLines and all TextStyle properties are allowed
+ ...TextBox.label
+ },
+ labelDisabled: {
+ // All TextStyle properties are allowed
+ ...TextBox.labelDisabled
+ },
+ value: {
+ // All TextStyle properties & placeholderTextColor are allowed
+ color: input.input.color,
+ placeholderTextColor: input.input.placeholderTextColor,
+ fontSize: input.input.fontSize,
+ lineHeight: input.input.lineHeight,
+ fontFamily: font.family,
+ overflow: "hidden",
+ textAlignVertical: "center"
+ },
+ valueDisabled: {
+ // All TextStyle properties are allowed
+ color: (_a = TextBox.inputDisabled) === null || _a === void 0 ? void 0 : _a.color,
+ borderColor: (_b = TextBox.inputDisabled) === null || _b === void 0 ? void 0 : _b.borderColor,
+ backgroundColor: (_c = TextBox.inputDisabled) === null || _c === void 0 ? void 0 : _c.backgroundColor
+ },
+ valueFocused: {
+ // All TextStyle properties are allowed
+ },
+ validationMessage: {
+ // All TextStyle properties are allowed
+ ...TextBox.validationMessage
+ },
+ /* New dropdown styles start */
+ valueContainer: {
+ // All ViewStyle properties & rippleColor & activeOpacity & underlayColor are allowed
+ flexDirection: "row",
+ justifyContent: "space-between",
+ alignItems: "center",
+ rippleColor: input.valueContainer.rippleColor,
+ borderWidth: input.input.borderWidth,
+ borderRadius: input.input.borderRadius,
+ paddingHorizontal: input.input.paddingHorizontal,
+ paddingVertical: input.input.paddingVertical,
+ backgroundColor: input.input.backgroundColor,
+ borderColor: input.input.borderColor,
+ minWidth: input.input.minWidth,
+ minHeight: input.input.minHeight
+ },
+ valueContainerDisabled: {
+ // All ViewStyle properties are allowed
+ },
+ valueContainerFocused: {
+ // All ViewStyle properties are allowed
+ },
+ valueContainerError: {
+ // All ViewStyle properties are allowed
+ color: input.inputError.color,
+ borderColor: input.inputError.borderColor
+ },
+ iconStyle: {
+ // All TextStyle properties are allowed
+ color: input.input.color
+ },
+ menuWrapper: {
+ // All ViewStyle properties are allowed
+ borderRadius: input.input.borderRadius,
+ shadowColor: "#000",
+ shadowOpacity: 0.2,
+ shadowRadius: 10,
+ elevation: 16,
+ backgroundColor: input.input.backgroundColor
+ },
+ itemContainer: {
+ // All ViewStyle properties & rippleColor & activeOpacity & underlayColor are allowed
+ width: "100%",
+ maxWidth: undefined,
+ paddingVertical: input.itemContainer.paddingVertical,
+ paddingHorizontal: input.itemContainer.paddingHorizontal,
+ backgroundColor: input.itemContainer.backgroundColor,
+ underlayColor: input.inputContainer.underlayColor,
+ overflow: "hidden"
+ },
+ item: {
+ // All TextStyle properties are allowed
+ color: input.item.color,
+ fontSize: input.item.fontSize
+ },
+ selectedItem: {
+ // All TextStyle properties are allowed
+ color: input.selectedItem.color,
+ fontSize: input.selectedItem.fontSize,
+ backgroundColor: "transparent"
+ },
+ selectedItemContainer: {
+ // All ViewStyle properties are allowed
+ width: "100%",
+ maxWidth: undefined,
+ borderWidth: input.selectedItemContainer.borderWidth,
+ borderRadius: input.selectedItemContainer.borderRadius,
+ borderColor: input.selectedItemContainer.borderColor,
+ backgroundColor: input.selectedItemContainer.backgroundColor
+ },
+ /* New dropdown styles end */
+ useUniformDesign: true,
+ /* Old dropdown styles start */
+ pickerIOS: {
+ // All ViewStyle properties are allowed
+ backgroundColor: input.input.backgroundColor
+ },
+ pickerItemIOS: {
+ // All TextStyle properties are allowed
+ },
+ pickerBackdropIOS: {
+ // All ViewStyle properties are allowed
+ },
+ pickerTopIOS: {
+ // All ViewStyle properties are allowed
+ backgroundColor: input.input.backgroundColor
+ }
+ /* Old dropdown styles end */
+};
+export const DropDownVertical = {
+ container: TextBoxVertical.container,
+ label: TextBoxVertical.label,
+ value: DropDown.value,
+ valueFocused: DropDown.valueFocused,
+ validationMessage: TextBoxVertical.validationMessage,
+ valueContainer: DropDown.valueContainer,
+ valueContainerFocused: DropDown.valueContainerFocused,
+ iconStyle: DropDown.iconStyle,
+ menuWrapper: DropDown.menuWrapper,
+ itemContainer: DropDown.itemContainer,
+ item: DropDown.item,
+ useUniformDesign: DropDown.useUniformDesign,
+ pickerIOS: DropDown.pickerIOS,
+ pickerItemIOS: DropDown.pickerItemIOS,
+ pickerBackdropIOS: DropDown.pickerBackdropIOS,
+ pickerTopIOS: DropDown.pickerTopIOS
+};
diff --git a/themesource/atlas_core/native/core/widgets/feedback.js b/themesource/atlas_core/native/core/widgets/feedback.js
new file mode 100644
index 00000000..85f5e403
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/feedback.js
@@ -0,0 +1,85 @@
+import { Platform } from "react-native";
+import { background, border, brand, button, contrast, font, input } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Feedback
+
+ Default Class For Mendix Feedback Widget
+========================================================================== */
+export const com_mendix_widget_native_feedback_Feedback = {
+ floatingButton: {
+ // All ViewStyle properties are allowed
+ borderRadius: 0,
+ backgroundColor: background.secondary,
+ borderTopLeftRadius: button.container.borderRadius,
+ borderBottomLeftRadius: button.container.borderRadius,
+ elevation: 1.5,
+ shadowColor: "#000",
+ shadowOpacity: 0.2,
+ shadowRadius: 10,
+ shadowOffset: {
+ width: 0,
+ height: 2
+ }
+ },
+ dialog: {
+ // All ViewStyle properties are allowed
+ backgroundColor: background.primary
+ },
+ title: {
+ // All TextStyle properties are allowed
+ color: font.colorTitle,
+ fontFamily: font.family
+ },
+ textAreaInput: {
+ // placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed
+ color: input.input.color,
+ borderColor: input.input.borderColor,
+ backgroundColor: input.input.backgroundColor,
+ selectionColor: input.input.selectionColor,
+ placeholderTextColor: input.input.placeholderTextColor,
+ underlineColorAndroid: "transparent",
+ height: 100,
+ fontSize: input.input.fontSize,
+ fontFamily: font.family,
+ borderRadius: input.input.borderRadius,
+ borderTopWidth: input.input.borderWidth,
+ borderBottomWidth: input.input.borderWidth,
+ borderWidth: Platform.select({ android: border.width }),
+ textAlignVertical: "top",
+ paddingVertical: input.input.paddingVertical,
+ paddingHorizontal: input.input.paddingHorizontal
+ },
+ switchLabel: {
+ // All TextStyle properties are allowed
+ color: input.label.color,
+ fontSize: input.label.fontSize,
+ fontFamily: font.family
+ },
+ switchInput: {
+ // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all TextStyle properties are allowed
+ margin: 0,
+ padding: 0,
+ marginRight: Platform.select({ ios: 0, android: -5 }),
+ thumbColorOn: background.primary,
+ trackColorOn: brand.success,
+ thumbColorOff: contrast.regular,
+ trackColorOff: contrast.lower
+ },
+ button: {
+ // Just these 3 properties are allowed
+ color: brand.primary,
+ borderColor: border.color,
+ borderWidth: border.width // Required for IOS
+ },
+ activityIndicator: {
+ // Only color is allowed
+ color: font.colorTitle
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/floatingactionbutton.js b/themesource/atlas_core/native/core/widgets/floatingactionbutton.js
new file mode 100644
index 00000000..eda9fe74
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/floatingactionbutton.js
@@ -0,0 +1,81 @@
+import { floatingActionButton, font } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Floating Action Button
+
+ Default Class For Mendix Floating Action Button Widget
+========================================================================== */
+export const com_mendix_widget_native_floatingactionbutton_FloatingActionButton = {
+ container: {
+ // All ViewStyle properties are allowed
+ margin: floatingActionButton.container.margin
+ },
+ button: {
+ // Size, ripplecolor and all ViewStyle properties are allowed
+ size: floatingActionButton.button.size,
+ height: floatingActionButton.button.size,
+ width: floatingActionButton.button.size,
+ rippleColor: floatingActionButton.button.rippleColor,
+ backgroundColor: floatingActionButton.button.backgroundColor,
+ borderColor: floatingActionButton.button.borderColor,
+ borderRadius: floatingActionButton.button.size / 2,
+ borderWidth: 1,
+ elevation: 3,
+ shadowColor: "#000",
+ shadowOpacity: 0.3,
+ shadowRadius: 4,
+ shadowOffset: {
+ width: 0,
+ height: 2
+ }
+ },
+ buttonIcon: {
+ // Size and color are allowed
+ size: floatingActionButton.buttonIcon.size,
+ color: floatingActionButton.buttonIcon.color
+ },
+ secondaryButton: {
+ // Size and all ViewStyle properties are allowed
+ size: floatingActionButton.secondaryButton.size,
+ backgroundColor: floatingActionButton.secondaryButton.backgroundColor,
+ elevation: 2,
+ shadowColor: "#000",
+ shadowOpacity: 0.3,
+ shadowRadius: 4,
+ shadowOffset: {
+ width: 0,
+ height: 2
+ }
+ },
+ secondaryButtonIcon: {
+ // Size and color are allowed
+ size: floatingActionButton.secondaryButtonIcon.size,
+ color: floatingActionButton.secondaryButtonIcon.color
+ },
+ secondaryButtonCaption: {
+ // All TextStyle properties are allowed
+ color: floatingActionButton.secondaryButtonCaption.color,
+ fontSize: floatingActionButton.secondaryButtonCaption.fontSize,
+ lineHeight: floatingActionButton.secondaryButtonCaption.fontSize,
+ fontFamily: font.family
+ },
+ secondaryButtonCaptionContainer: {
+ // All ViewStyle properties are allowed
+ backgroundColor: floatingActionButton.secondaryButtonCaptionContainer.backgroundColor,
+ borderColor: floatingActionButton.secondaryButtonCaptionContainer.borderColor,
+ marginHorizontal: 5,
+ elevation: 2,
+ shadowOpacity: 0.3,
+ shadowRadius: 4,
+ shadowOffset: {
+ width: 0,
+ height: 2
+ }
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/gallery.js b/themesource/atlas_core/native/core/widgets/gallery.js
new file mode 100644
index 00000000..fd4063d1
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/gallery.js
@@ -0,0 +1,60 @@
+import { font, button } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Gallery
+
+ Default Class For Mendix Gallery Widget
+========================================================================== */
+export const com_mendix_widget_native_gallery_Gallery = {
+ container: {
+ // All ViewStyle properties are allowed
+ },
+ emptyPlaceholder: {
+ // All ViewStyle properties are allowed
+ },
+ firstItem: {
+ // All ViewStyle properties are allowed
+ },
+ lastItem: {
+ // All ViewStyle properties are allowed
+ },
+ list: {
+ // All ViewStyle properties are allowed
+ },
+ listItem: {
+ // All ViewStyle properties are allowed
+ },
+ loadMoreButtonContainer: {
+ // All ViewStyle properties are allowed
+ alignSelf: "stretch"
+ },
+ loadMoreButtonPressableContainer: {
+ // Ripplecolor and all ViewStyle properties are allowed
+ borderWidth: 1,
+ borderStyle: "solid",
+ rippleColor: button.container.rippleColor,
+ borderColor: button.primary.borderColor,
+ backgroundColor: button.primary.backgroundColor,
+ alignItems: "center",
+ justifyContent: "center",
+ borderRadius: button.container.borderRadius,
+ minWidth: button.container.minWidth,
+ minHeight: button.container.minHeight,
+ paddingVertical: button.container.paddingVertical,
+ paddingHorizontal: button.container.paddingHorizontal
+ },
+ loadMoreButtonCaption: {
+ // All TextStyle properties are allowed
+ color: button.primary.color,
+ fontSize: button.caption.fontSize,
+ fontFamily: font.family,
+ fontWeight: button.caption.fontWeight,
+ lineHeight: font.lineHeight
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/gallerytextfilter.js b/themesource/atlas_core/native/core/widgets/gallerytextfilter.js
new file mode 100644
index 00000000..197649b6
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/gallerytextfilter.js
@@ -0,0 +1,43 @@
+import { brand, input, spacing } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Gallery text filter
+
+ Default Class For Mendix Gallery Text Filter Widget
+========================================================================== */
+export const com_mendix_widget_native_gallerytextfilter_GalleryTextFilter = {
+ textInputContainer: {
+ // All ViewStyle properties are allowed
+ flexDirection: "row",
+ justifyContent: "space-between",
+ borderWidth: input.input.borderWidth,
+ borderColor: input.input.borderColor,
+ borderRadius: input.input.borderRadius,
+ paddingEnd: spacing.small
+ },
+ textInputContainerFocused: {
+ // All ViewStyle properties are allowed
+ borderColor: brand.primary
+ },
+ textInput: {
+ // All TextStyle properties are allowed
+ height: 40,
+ marginStart: spacing.regular,
+ width: "90%",
+ color: input.input.color,
+ backgroundColor: input.input.backgroundColor,
+ selectionColor: input.input.selectionColor,
+ placeholderTextColor: input.input.placeholderTextColor
+ },
+ textInputClearIcon: {
+ // All ViewStyle properties are allowed
+ justifyContent: "center",
+ alignContent: "center"
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/image.js b/themesource/atlas_core/native/core/widgets/image.js
new file mode 100644
index 00000000..8c5d2c96
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/image.js
@@ -0,0 +1,55 @@
+import { contrast, image } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Image
+
+ Default Class For Mendix Image Widgets
+========================================================================== */
+export const Image = {
+ container: {
+ // rippleColor & all ViewStyle properties are allowed
+ rippleColor: contrast.lowest,
+ maxWidth: "100%",
+ maxHeight: "100%"
+ },
+ containerDisabled: {
+ // All ViewStyle properties are allowed
+ },
+ image: {
+ // All ImageStyle properties are allowed
+ maxWidth: "100%",
+ maxHeight: "100%",
+ resizeMode: "cover"
+ },
+ imageDisabled: {
+ // All ImageStyle properties are allowed
+ opacity: image.imageDisabled.opacity
+ }
+};
+export const ImageViewer = {
+ container: {
+ // RippleColor & All ViewStyle properties are allowed
+ rippleColor: contrast.lowest,
+ maxWidth: "100%",
+ maxHeight: "100%"
+ },
+ containerDisabled: {
+ // All ViewStyle properties are allowed
+ },
+ image: {
+ // All ImageStyle properties are allowed
+ maxWidth: "100%",
+ maxHeight: "100%",
+ resizeMode: "cover"
+ },
+ imageDisabled: {
+ // All ImageStyle properties are allowed
+ opacity: image.imageDisabled.opacity
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/introscreen.js b/themesource/atlas_core/native/core/widgets/introscreen.js
new file mode 100644
index 00000000..4e2dc34d
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/introscreen.js
@@ -0,0 +1,127 @@
+import { isIphoneWithNotch } from "../helpers/_functions/device";
+import { font, spacing, introScreen } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Intro Screen
+
+ Default Class For Mendix Intro Screen Widget
+========================================================================== */
+// Button styles when the chose to show the indicator above the buttons
+export const introScreenButtonPaginationAbove = {
+ container: {
+ // Ripplecolor and all ViewStyle properties are allowed
+ flex: 1,
+ flexDirection: "row",
+ alignSelf: "stretch",
+ alignItems: "center",
+ justifyContent: "center",
+ paddingVertical: introScreen.buttonPaginationAbove.container.paddingVertical,
+ backgroundColor: introScreen.buttonPaginationAbove.container.backgroundColor
+ },
+ icon: {
+ // Size and color are allowed
+ color: introScreen.button.icon.color,
+ size: introScreen.button.icon.size
+ },
+ caption: {
+ // All TextStyle properties are allowed
+ color: introScreen.button.caption.color,
+ fontSize: introScreen.button.caption.fontSize,
+ fontFamily: font.family,
+ fontWeight: introScreen.button.caption.fontWeight,
+ textTransform: introScreen.button.caption.textTransform,
+ paddingHorizontal: introScreen.button.caption.paddingHorizontal
+ }
+};
+// Button styles when the chose to show the indicator between the buttons
+export const introScreenButtonPaginationBetween = {
+ container: {
+ // Ripplecolor and all ViewStyle properties are allowed
+ flexDirection: "row",
+ alignItems: "center",
+ justifyContent: "center"
+ },
+ icon: {
+ // Size and color are allowed
+ color: introScreen.button.icon.color,
+ size: introScreen.button.icon.size
+ },
+ caption: {
+ // All TextStyle properties are allowed
+ color: introScreen.button.caption.color,
+ fontSize: introScreen.button.caption.fontSize,
+ fontFamily: font.family,
+ fontWeight: introScreen.button.caption.fontWeight,
+ textTransform: introScreen.button.caption.textTransform,
+ paddingHorizontal: introScreen.button.caption.paddingHorizontal
+ }
+};
+// Default styles
+export const com_mendix_widget_native_introscreen_IntroScreen = {
+ fullscreenContainer: {
+ // All ViewStyle properties are allowed
+ backgroundColor: introScreen.fullscreenContainer.backgroundColor
+ },
+ popupContainer: {
+ // All ViewStyle properties are allowed
+ paddingVertical: introScreen.popupContainer.paddingVertical,
+ paddingHorizontal: introScreen.popupContainer.paddingHorizontal,
+ backgroundColor: introScreen.popupContainer.backgroundColor
+ },
+ // Pagination styles
+ paginationContainer: {
+ // All ViewStyle properties are allowed
+ position: "absolute",
+ left: 0,
+ right: 0,
+ width: "100%",
+ marginTop: spacing.largest,
+ bottom: isIphoneWithNotch ? 22 : 0,
+ justifyContent: "space-between",
+ alignItems: "center"
+ },
+ paginationText: {
+ // All TextStyle properties are allowed
+ color: introScreen.pagination.text.color,
+ fontSize: introScreen.pagination.text.fontSize,
+ fontFamily: font.family
+ },
+ dotStyle: {
+ // All ViewStyle properties are allowed
+ width: introScreen.pagination.dotStyle.size,
+ height: introScreen.pagination.dotStyle.size,
+ backgroundColor: introScreen.pagination.dotStyle.backgroundColor
+ },
+ activeDotStyle: {
+ // All ViewStyle properties are allowed
+ width: introScreen.pagination.activeDotStyle.size,
+ height: introScreen.pagination.activeDotStyle.size,
+ backgroundColor: introScreen.pagination.activeDotStyle.backgroundColor
+ },
+ // Button styles
+ paginationAbove: {
+ buttonsContainer: {
+ // All ViewStyle properties are allowed
+ flex: 1,
+ flexDirection: "row",
+ justifyContent: "center",
+ width: "100%"
+ },
+ buttonSkip: introScreenButtonPaginationAbove,
+ buttonPrevious: introScreenButtonPaginationAbove,
+ buttonNext: introScreenButtonPaginationAbove,
+ buttonDone: introScreenButtonPaginationAbove
+ },
+ paginationBetween: {
+ buttonSkip: introScreenButtonPaginationBetween,
+ buttonPrevious: introScreenButtonPaginationBetween,
+ buttonNext: introScreenButtonPaginationBetween,
+ buttonDone: introScreenButtonPaginationBetween
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/layoutgrid.js b/themesource/atlas_core/native/core/widgets/layoutgrid.js
new file mode 100644
index 00000000..a0c83650
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/layoutgrid.js
@@ -0,0 +1,121 @@
+import { layoutGrid } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Intro Screen
+
+ Default Class For Mendix Layoutgrid Widget
+========================================================================== */
+export const LayoutGrid = {
+ container: {}
+};
+export const row = {
+ container: {
+ flexDirection: "row",
+ flexWrap: "wrap",
+ marginHorizontal: -layoutGrid.gutterSize
+ }
+};
+export const col = {
+ container: {
+ flex: 1,
+ paddingHorizontal: layoutGrid.gutterSize
+ }
+};
+export const colFitToContent = {
+ container: {
+ flex: -1,
+ paddingHorizontal: layoutGrid.gutterSize
+ }
+};
+export const col1 = {
+ container: {
+ flexBasis: "8.333%",
+ paddingHorizontal: layoutGrid.gutterSize
+ }
+};
+export const col2 = {
+ container: {
+ flexBasis: "16.666%",
+ paddingHorizontal: layoutGrid.gutterSize
+ }
+};
+export const col3 = {
+ container: {
+ flexBasis: "25%",
+ paddingHorizontal: layoutGrid.gutterSize
+ }
+};
+export const col4 = {
+ container: {
+ flexBasis: "33.333%",
+ paddingHorizontal: layoutGrid.gutterSize
+ }
+};
+export const col5 = {
+ container: {
+ flexBasis: "41.666%",
+ paddingHorizontal: layoutGrid.gutterSize
+ }
+};
+export const col6 = {
+ container: {
+ flexBasis: "50%",
+ paddingHorizontal: layoutGrid.gutterSize
+ }
+};
+export const col7 = {
+ container: {
+ flexBasis: "58.333%",
+ paddingHorizontal: layoutGrid.gutterSize
+ }
+};
+export const col8 = {
+ container: {
+ flexBasis: "66.666%",
+ paddingHorizontal: layoutGrid.gutterSize
+ }
+};
+export const col9 = {
+ container: {
+ flexBasis: "75%",
+ paddingHorizontal: layoutGrid.gutterSize
+ }
+};
+export const col10 = {
+ container: {
+ flexBasis: "83.333%",
+ paddingHorizontal: layoutGrid.gutterSize
+ }
+};
+export const col11 = {
+ container: {
+ flexBasis: "91.666%",
+ paddingHorizontal: layoutGrid.gutterSize
+ }
+};
+export const col12 = {
+ container: {
+ flexBasis: "100%",
+ paddingHorizontal: layoutGrid.gutterSize
+ }
+};
+export const noGutters = {
+ container: {
+ paddingLeft: 0,
+ paddingRight: 0,
+ paddingHorizontal: 0
+ }
+};
+export const noGuttersRow = {
+ container: {
+ marginLeft: 0,
+ marginRight: 0,
+ marginHorizontal: 0
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/linechart.js b/themesource/atlas_core/native/core/widgets/linechart.js
new file mode 100644
index 00000000..99b7ba6e
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/linechart.js
@@ -0,0 +1,168 @@
+import { border, brand, font, spacing } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Line Chart
+
+ Default Class For Mendix Line Chart Widget
+========================================================================== */
+export const com_mendix_widget_native_linechart_LineChart = {
+ container: {
+ // All ViewStyle properties are allowed
+ },
+ errorMessage: {
+ // All TextStyle properties are allowed
+ fontFamily: font.family,
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightNormal
+ },
+ chart: {
+ // All ViewStyle properties are allowed
+ },
+ grid: {
+ /*
+ Allowed properties:
+ - backgroundColor (string)
+ - dashArray (string)
+ - lineColor (string)
+ - lineWidth (number)
+ - padding (number)
+ - paddingBottom (number)
+ - paddingHorizontal (number)
+ - paddingLeft (number)
+ - paddingRight (number)
+ - paddingTop (number)
+ - paddingVertical (number)
+ */
+ lineColor: border.color,
+ paddingBottom: 32,
+ paddingLeft: 32,
+ paddingRight: 8,
+ paddingTop: 8
+ },
+ xAxis: {
+ /*
+ Allowed properties:
+ - color (string)
+ - dashArray (string)
+ - fontFamily (string)
+ - fontSize (number)
+ - fontStyle ("normal" or "italic")
+ - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900")
+ - lineColor (string)
+ - lineWidth (number)
+ */
+ color: font.colorTitle,
+ fontFamily: font.family,
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightNormal,
+ lineColor: border.color,
+ label: {
+ /*
+ All TextStyle properties are allowed and:
+ - relativePositionGrid ("bottom" or "right")
+ */
+ color: font.colorParagraph,
+ alignSelf: "center",
+ marginHorizontal: 0,
+ marginVertical: spacing.small,
+ fontFamily: font.family,
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightNormal,
+ relativePositionGrid: "bottom"
+ }
+ },
+ yAxis: {
+ /*
+ Allowed properties:
+ - color (string)
+ - dashArray (string)
+ - fontFamily (string)
+ - fontSize (number)
+ - fontStyle ("normal" or "italic")
+ - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900")
+ - lineColor (string)
+ - lineWidth (number)
+ */
+ color: font.colorTitle,
+ fontFamily: font.family,
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightNormal,
+ lineColor: border.color,
+ label: {
+ /*
+ All TextStyle properties are allowed and:
+ - relativePositionGrid ("top" or "left")
+ */
+ color: font.colorParagraph,
+ marginHorizontal: 0,
+ marginVertical: spacing.small,
+ fontFamily: font.family,
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightNormal,
+ relativePositionGrid: "top"
+ }
+ },
+ lines: {
+ /*
+ Allowed properties:
+ - lineColorPalette (string with array of colors separated by ';')
+ */
+ lineColorPalette: Object.entries(brand)
+ .reduce((accumulator, [key, value]) => (key.endsWith("Light") ? accumulator : [...accumulator, value]), [])
+ .join(";"),
+ customLineStyles: {
+ any_custom_line_style_name: {
+ line: {
+ /*
+ Allowed properties:
+ - dashArray (string)
+ - ending ("flat" or "round")
+ - lineColor (string)
+ - lineWidth (number)
+ */
+ },
+ markers: {
+ /*
+ Allowed properties:
+ - backgroundColor (string)
+ - borderColor (string)
+ - borderWidth (number)
+ - display ("false" or "underneath" or "onTop")
+ - size (number)
+ - symbol ("circle" or "diamond" or "plus" or "minus" or "square" or "star" or "triangleDown" or "triangleUp")
+ */
+ }
+ }
+ }
+ },
+ legend: {
+ container: {
+ // All ViewStyle properties are allowed
+ justifyContent: "flex-start",
+ marginHorizontal: 0,
+ marginVertical: spacing.small
+ },
+ item: {
+ // All ViewStyle properties are allowed
+ padding: 0,
+ paddingRight: spacing.regular
+ },
+ indicator: {
+ // All ViewStyle properties are allowed
+ marginRight: spacing.small
+ },
+ label: {
+ // All TextStyle properties are allowed
+ color: font.colorTitle,
+ fontFamily: font.family,
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightNormal
+ }
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/listview.js b/themesource/atlas_core/native/core/widgets/listview.js
new file mode 100644
index 00000000..5ec4e2cb
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/listview.js
@@ -0,0 +1,24 @@
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ List View
+
+ Default Class For Mendix List View Widget
+========================================================================== */
+export const ListView = {
+ container: {
+ // All ViewStyle properties are allowed
+ },
+ listItem: {
+ // All ViewStyle properties are allowed
+ },
+ listItemDisabled: {
+ // All ViewStyle properties are allowed
+ opacity: 0.6
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/listviewswipe.js b/themesource/atlas_core/native/core/widgets/listviewswipe.js
new file mode 100644
index 00000000..63443524
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/listviewswipe.js
@@ -0,0 +1,38 @@
+import { background, listViewSwipe } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ List View Swipe
+
+ Default Class For Mendix List View Swipe Widget
+========================================================================== */
+export const com_mendix_widget_native_listviewswipe_ListViewSwipe = {
+ container: {
+ // All ViewStyle properties are allowed
+ flex: 1,
+ alignItems: "stretch",
+ justifyContent: "space-between",
+ backgroundColor: background.primary
+ },
+ leftAction: {
+ // PanelSize & All ViewStyle properties are allowed
+ panelSize: listViewSwipe.leftAction.panelSize,
+ flex: 1,
+ flexDirection: "row",
+ alignItems: "stretch",
+ backgroundColor: listViewSwipe.leftAction.backgroundColor
+ },
+ rightAction: {
+ // PanelSize & All ViewStyle properties are allowed
+ panelSize: listViewSwipe.rightAction.panelSize,
+ flex: 1,
+ flexDirection: "row",
+ alignItems: "stretch",
+ backgroundColor: listViewSwipe.rightAction.backgroundColor
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/maps.js b/themesource/atlas_core/native/core/widgets/maps.js
new file mode 100644
index 00000000..1f5e42b2
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/maps.js
@@ -0,0 +1,33 @@
+import { brand } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Maps
+
+ Default Class For Mendix Maps Widget
+========================================================================== */
+export const com_mendix_widget_native_maps_Maps = {
+ container: {
+ // All ViewStyle properties are allowed
+ flex: 1,
+ maxWidth: "100%",
+ aspectRatio: 4 / 2
+ },
+ loadingOverlay: {
+ // All ViewStyle properties are allowed
+ },
+ loadingIndicator: {
+ // Only color is allowed
+ color: brand.primary
+ },
+ marker: {
+ // Only color & opacity are allowed
+ color: brand.primary,
+ opacity: 1
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/navigation.js b/themesource/atlas_core/native/core/widgets/navigation.js
new file mode 100644
index 00000000..e77a35cc
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/navigation.js
@@ -0,0 +1,75 @@
+import { border, font, navigation, spacing } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ BottomBar / ProgressOverlay
+
+ Default Class For Mendix BottomBar and ProgressOverlay
+========================================================================== */
+export const navigationStyle = {
+ bottomBar: {
+ container: {
+ // All ViewStyle properties are allowed
+ backgroundColor: navigation.bottomBar.backgroundColor
+ },
+ label: {
+ // All TextStyle properties are allowed
+ color: navigation.bottomBar.color,
+ fontFamily: font.family,
+ fontSize: navigation.bottomBar.fontSize
+ },
+ selectedLabel: {
+ // All TextStyle properties are allowed
+ color: navigation.bottomBar.selectedTextColor,
+ fontFamily: font.family,
+ fontSize: navigation.bottomBar.fontSize
+ },
+ icon: {
+ // All TextStyle properties are allowed
+ color: navigation.bottomBar.color,
+ fontSize: navigation.bottomBar.iconSize
+ },
+ selectedIcon: {
+ // All TextStyle properties are allowed
+ color: navigation.bottomBar.selectedIconColor,
+ fontSize: navigation.bottomBar.iconSize
+ }
+ },
+ progressOverlay: {
+ background: {
+ // All ViewStyle properties are allowed
+ backgroundColor: navigation.progressOverlay.backgroundColor
+ },
+ container: {
+ // All ViewStyle properties are allowed
+ backgroundColor: navigation.progressOverlay.containerBackgroundColor,
+ paddingHorizontal: spacing.largest,
+ paddingVertical: spacing.large,
+ borderRadius: border.radiusSmall,
+ elevation: navigation.progressOverlay.elevation,
+ shadowColor: navigation.progressOverlay.shadowColor,
+ shadowOpacity: navigation.progressOverlay.shadowOpacity,
+ shadowRadius: navigation.progressOverlay.shadowRadius,
+ shadowOffset: {
+ width: 0,
+ height: 2
+ }
+ },
+ activityIndicator: {
+ // Color, Size & All ViewStyle properties are allowed
+ color: navigation.progressOverlay.activityIndicatorColor
+ },
+ text: {
+ // All TextStyle properties are allowed
+ color: navigation.progressOverlay.color,
+ marginTop: spacing.small,
+ fontFamily: font.family,
+ fontSize: navigation.progressOverlay.fontSize
+ }
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/pagetitle.js b/themesource/atlas_core/native/core/widgets/pagetitle.js
new file mode 100644
index 00000000..aa20b259
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/pagetitle.js
@@ -0,0 +1,24 @@
+import { font } from "../../variables";
+import { TextHeading1 } from "./typography";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Page Title
+
+ Default Class For Mendix Page Title Widget
+========================================================================== */
+export const PageTitle = {
+ container: {
+ // All ViewStyle properties are allowed
+ },
+ text: {
+ // All TextStyle properties are allowed
+ ...TextHeading1.text,
+ color: font.colorTitle
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/piedoughnutchart.js b/themesource/atlas_core/native/core/widgets/piedoughnutchart.js
new file mode 100644
index 00000000..7639a0cf
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/piedoughnutchart.js
@@ -0,0 +1,57 @@
+import { brand } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Bar Chart
+
+ Default Class For Mendix Bar Chart Widget
+========================================================================== */
+export const com_mendix_widget_native_piedoughnutchart_PieDoughnutChart = {
+ container: {
+ // All ViewStyle properties are allowed
+ flex: 1
+ },
+ slices: {
+ /*
+ Allowed properties:
+ - colorPalette (string with array of colors separated by ';')
+ - innerRadius (number)
+ - padding (number)
+ - paddingBottom (number)
+ - paddingHorizontal (number)
+ - paddingLeft (number)
+ - paddingRight (number)
+ - paddingTop (number)
+ - paddingVertical (number)
+ */
+ padding: 40,
+ colorPalette: Object.entries(brand)
+ .reduce((accumulator, [key, value]) => (key.endsWith("Light") ? accumulator : [...accumulator, value]), [])
+ .join(";"),
+ customStyles: {
+ your_defined_key: {
+ slice: {
+ /*
+ Allowed properties:
+ - color (string)
+ */
+ },
+ label: {
+ /*
+ Allowed properties:
+ - color (string)
+ - fontFamily (string)
+ - fontSize (number)
+ - fontStyle ("normal" or "italic")
+ - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900")
+ */
+ }
+ }
+ }
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/popupmenu.js b/themesource/atlas_core/native/core/widgets/popupmenu.js
new file mode 100644
index 00000000..0cb77001
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/popupmenu.js
@@ -0,0 +1,59 @@
+import { brand, contrast, font, background, border } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Popup Menu
+
+ Default Class For Mendix Popup Menu Widget
+========================================================================== */
+export const com_mendix_widget_native_popupmenu_PopupMenu = {
+ container: {
+ // All ViewStyle properties are allowed
+ backgroundColor: background.secondary,
+ borderRadius: 10,
+ shadowColor: "#000",
+ shadowOpacity: 0.2,
+ shadowRadius: 10,
+ elevation: 16
+ },
+ custom: {
+ container: {
+ // All ViewStyle properties are allowed
+ },
+ itemStyle: {
+ rippleColor: contrast.lower
+ }
+ },
+ basic: {
+ dividerColor: border.color,
+ container: {
+ // All ViewStyle properties are allowed
+ height: 40
+ },
+ itemStyle: {
+ ellipsizeMode: "tail",
+ rippleColor: contrast.lower,
+ defaultStyle: {
+ // All TextStyle properties are allowed
+ fontSize: font.size,
+ color: font.colorTitle
+ },
+ primaryStyle: {
+ // All TextStyle properties are allowed
+ color: brand.primary
+ },
+ dangerStyle: {
+ // All TextStyle properties are allowed
+ color: brand.danger
+ },
+ customStyle: {
+ // All TextStyle properties are allowed
+ }
+ }
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/progressbar.js b/themesource/atlas_core/native/core/widgets/progressbar.js
new file mode 100644
index 00000000..7e4dc946
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/progressbar.js
@@ -0,0 +1,35 @@
+import { progressBar } from "../../variables";
+import { TextBox } from "./textbox";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Progress Bar
+
+ Default Class For Mendix Progress Bar Widget
+========================================================================== */
+export const com_mendix_widget_native_progressbar_ProgressBar = {
+ container: {
+ // All ViewStyle properties are allowed
+ alignSelf: "stretch"
+ },
+ bar: {
+ // All ViewStyle properties are allowed
+ height: progressBar.bar.height,
+ borderWidth: 0,
+ borderRadius: progressBar.bar.height / 2,
+ backgroundColor: progressBar.bar.backgroundColor
+ },
+ fill: {
+ // Only the backgroundColor property is allowed
+ backgroundColor: progressBar.fill.backgroundColor
+ },
+ validationMessage: {
+ // All TextStyle properties are allowed
+ ...TextBox.validationMessage
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/progresscircle.js b/themesource/atlas_core/native/core/widgets/progresscircle.js
new file mode 100644
index 00000000..a0cd98c3
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/progresscircle.js
@@ -0,0 +1,41 @@
+import { font, progressCircle } from "../../variables";
+import { TextBox } from "./textbox";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Progress Circle
+
+ Default Class For Mendix Progress Circle Widget
+========================================================================== */
+export const com_mendix_widget_native_progresscircle_ProgressCircle = {
+ container: {
+ // All ViewStyle properties are allowed
+ },
+ circle: {
+ // Only the size & borderWidth & borderColor properties are allowed
+ size: progressCircle.circle.size,
+ borderWidth: 0
+ },
+ fill: {
+ // Only the width & backgroundColor & lineCapRounded properties are allowed
+ width: progressCircle.fill.width,
+ lineCapRounded: progressCircle.fill.lineCapRounded,
+ backgroundColor: progressCircle.fill.backgroundColor
+ },
+ text: {
+ // All TextStyle properties are allowed
+ color: progressCircle.text.color,
+ fontSize: progressCircle.text.fontSize,
+ fontWeight: progressCircle.text.fontWeight,
+ fontFamily: font.family
+ },
+ validationMessage: {
+ // All TextStyle properties are allowed
+ ...TextBox.validationMessage
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/qrcode.js b/themesource/atlas_core/native/core/widgets/qrcode.js
new file mode 100644
index 00000000..ce19cdb2
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/qrcode.js
@@ -0,0 +1,24 @@
+import { background, contrast } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ QR Code
+
+ Default Class For Mendix QR Code Widget
+========================================================================== */
+export const com_mendix_widget_native_qrcode_QRCode = {
+ container: {
+ // All ViewStyle properties are allowed
+ },
+ qrcode: {
+ // Only size, color and backgroundColor are allowed
+ size: 100,
+ color: contrast.highest,
+ backgroundColor: background.primary
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/radiobuttons.js b/themesource/atlas_core/native/core/widgets/radiobuttons.js
new file mode 100644
index 00000000..c60d7533
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/radiobuttons.js
@@ -0,0 +1,48 @@
+import { radioButtons } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ RadioButtons
+
+ Default Class For Mendix RadioButtons Widget
+========================================================================== */
+export const com_mendix_widget_native_radiobuttons_RadioButtons = {
+ labelTextStyle: {
+ // All TextStyle properties are allowed
+ ...radioButtons.labelTextStyle
+ },
+ radioButtonItemContainerStyle: {
+ // All ViewStyle properties are allowed
+ ...radioButtons.radioButtonItemContainerStyle
+ },
+ radioButtonItemContainerHorizontalStyle: {
+ // All ViewStyle properties are allowed
+ ...radioButtons.radioButtonItemContainerHorizontalStyle
+ },
+ circularButtonStyle: {
+ // All ViewStyle properties are allowed
+ ...radioButtons.circularButtonStyle
+ },
+ activeButtonStyle: {
+ // All ViewStyle properties are allowed
+ ...radioButtons.activeButtonStyle
+ },
+ radioButtonItemContainerDisabledStyle: {
+ // In case radio buttons is not selectable
+ // All ViewStyle properties are allowed
+ ...radioButtons.radioButtonItemContainerDisabledStyle
+ },
+ radioButtonItemTitleStyle: {
+ // All TextStyle properties are allowed
+ ...radioButtons.radioButtonItemTitleStyle
+ },
+ validationMessage: {
+ // All TextStyle properties are allowed
+ ...radioButtons.validationMessage
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/rangeslider.js b/themesource/atlas_core/native/core/widgets/rangeslider.js
new file mode 100644
index 00000000..7e431042
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/rangeslider.js
@@ -0,0 +1,14 @@
+import { com_mendix_widget_native_slider_Slider as Slider } from "./slider";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Range Slider
+
+ Default Class For Mendix Range Slider Widget
+========================================================================== */
+export const com_mendix_widget_native_rangeslider_RangeSlider = Slider;
diff --git a/themesource/atlas_core/native/core/widgets/rating.js b/themesource/atlas_core/native/core/widgets/rating.js
new file mode 100644
index 00000000..a6250cfc
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/rating.js
@@ -0,0 +1,30 @@
+import { spacing, rating } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Rating
+
+ Default Class For Mendix Rating Widget
+========================================================================== */
+export const com_mendix_widget_native_rating_Rating = {
+ container: {
+ // All ViewStyle properties are allowed
+ justifyContent: "center"
+ },
+ containerDisabled: {
+ // All ViewStyle properties are allowed
+ opacity: rating.containerDisabled.opacity
+ },
+ icon: {
+ // Size, color, selectedColor & all ViewStyle properties are allowed
+ size: rating.icon.size,
+ marginRight: spacing.smaller,
+ color: rating.icon.color,
+ selectedColor: rating.icon.selectedColor
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/referenceselector.js b/themesource/atlas_core/native/core/widgets/referenceselector.js
new file mode 100644
index 00000000..7dc95897
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/referenceselector.js
@@ -0,0 +1,125 @@
+import { DropDown, DropDownVertical } from "./dropdown";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Reference Selector
+
+ Default Class For Mendix Reference Selector Widget
+========================================================================== */
+export const ReferenceSelector = {
+ container: {
+ // All ViewStyle properties are allowed
+ ...DropDown.container
+ },
+ containerDisabled: {
+ // All ViewStyle properties are allowed
+ ...DropDown.containerDisabled
+ },
+ label: {
+ // numberOfLines and all TextStyle properties are allowed
+ ...DropDown.label
+ },
+ labelDisabled: {
+ // All TextStyle properties are allowed
+ ...DropDown.labelDisabled
+ },
+ value: {
+ // All TextStyle properties & placeholderTextColor are allowed
+ ...DropDown.value
+ },
+ valueDisabled: {
+ // All TextStyle properties are allowed
+ ...DropDown.valueDisabled
+ },
+ valueFocused: {
+ // All TextStyle properties are allowed
+ ...DropDown.valueFocused
+ },
+ validationMessage: {
+ // All TextStyle properties are allowed
+ ...DropDown.validationMessage
+ },
+ /* New dropdown styles start */
+ valueContainer: {
+ // All ViewStyle properties & rippleColor are allowed
+ ...DropDown.valueContainer
+ },
+ valueContainerDisabled: {
+ // All ViewStyle properties are allowed
+ },
+ valueContainerFocused: {
+ // All ViewStyle properties are allowed
+ ...DropDown.valueContainerFocused
+ },
+ valueContainerError: {
+ // All ViewStyle properties are allowed
+ ...DropDown.valueContainerError
+ },
+ iconStyle: {
+ // All TextStyle properties are allowed
+ ...DropDown.iconStyle
+ },
+ menuWrapper: {
+ // All ViewStyle properties are allowed
+ ...DropDown.menuWrapper
+ },
+ itemContainer: {
+ // All ViewStyle properties are allowed
+ ...DropDown.itemContainer
+ },
+ item: {
+ // All TextStyle properties are allowed
+ ...DropDown.item
+ },
+ selectedItem: {
+ // All TextStyle properties are allowed
+ ...DropDown.selectedItem
+ },
+ selectedItemContainer: {
+ // All ViewStyle properties are allowed
+ ...DropDown.selectedItemContainer
+ },
+ /* New dropdown styles end */
+ useUniformDesign: DropDown.useUniformDesign,
+ /* Old dropdown styles start */
+ pickerIOS: {
+ // All ViewStyle properties are allowed
+ ...DropDown.pickerIOS
+ },
+ pickerItemIOS: {
+ // All TextStyle properties are allowed
+ ...DropDown.pickerItemIOS
+ },
+ pickerBackdropIOS: {
+ // All ViewStyle properties are allowed
+ ...DropDown.pickerBackdropIOS
+ },
+ pickerTopIOS: {
+ // All ViewStyle properties are allowed
+ ...DropDown.pickerTopIOS
+ }
+ /* Old dropdown styles end */
+};
+export const ReferenceSelectorVertical = {
+ container: DropDownVertical.container,
+ label: DropDownVertical.label,
+ value: DropDownVertical.value,
+ valueFocused: DropDownVertical.valueFocused,
+ validationMessage: DropDownVertical.validationMessage,
+ valueContainer: DropDownVertical.valueContainer,
+ valueContainerFocused: DropDownVertical.valueContainerFocused,
+ iconStyle: DropDownVertical.iconStyle,
+ menuWrapper: DropDownVertical.menuWrapper,
+ itemContainer: DropDownVertical.itemContainer,
+ item: DropDownVertical.item,
+ useUniformDesign: DropDownVertical.useUniformDesign,
+ pickerIOS: DropDownVertical.pickerIOS,
+ pickerItemIOS: DropDownVertical.pickerItemIOS,
+ pickerBackdropIOS: DropDownVertical.pickerBackdropIOS,
+ pickerTopIOS: DropDownVertical.pickerTopIOS
+};
diff --git a/themesource/atlas_core/native/core/widgets/safeareaview.js b/themesource/atlas_core/native/core/widgets/safeareaview.js
new file mode 100644
index 00000000..5d187b58
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/safeareaview.js
@@ -0,0 +1,17 @@
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Container
+
+ Default Class For Mendix Safe Area View Widget
+========================================================================== */
+export const com_mendix_widget_native_safeareaview_SafeAreaView = {
+ container: {
+ // All ViewStyle properties are allowed
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/slider.js b/themesource/atlas_core/native/core/widgets/slider.js
new file mode 100644
index 00000000..2e8f83d9
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/slider.js
@@ -0,0 +1,76 @@
+import { slider } from "../../variables";
+import { TextBox } from "./textbox";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Slider
+
+ Default Class For Mendix Slider Widget
+========================================================================== */
+export const com_mendix_widget_native_slider_Slider = {
+ container: {
+ // All ViewStyle properties are allowed
+ alignSelf: "stretch"
+ },
+ track: {
+ // All ViewStyle properties are allowed
+ height: slider.track.height,
+ backgroundColor: slider.track.backgroundColor
+ },
+ trackDisabled: {
+ // All ViewStyle properties are allowed
+ height: slider.track.height,
+ backgroundColor: slider.trackDisabled.backgroundColor,
+ opacity: slider.trackDisabled.opacity
+ },
+ highlight: {
+ // All ViewStyle properties are allowed
+ height: slider.track.height,
+ backgroundColor: slider.highlight.backgroundColor
+ },
+ highlightDisabled: {
+ // All ViewStyle properties are allowed
+ height: slider.track.height,
+ backgroundColor: slider.highlightDisabled.backgroundColor
+ },
+ marker: {
+ // All ViewStyle properties are allowed
+ backgroundColor: slider.marker.backgroundColor,
+ width: slider.marker.size,
+ height: slider.marker.size,
+ borderRadius: slider.marker.size / 2,
+ borderColor: slider.marker.borderColor,
+ elevation: 2,
+ shadowColor: "#000",
+ shadowOpacity: 0.1,
+ shadowOffset: { width: 0, height: 1 }
+ },
+ markerActive: {
+ // All ViewStyle properties are allowed
+ width: slider.markerActive.size,
+ height: slider.markerActive.size,
+ borderRadius: slider.markerActive.size / 2,
+ borderWidth: 0
+ },
+ markerDisabled: {
+ // All ViewStyle properties are allowed
+ backgroundColor: slider.markerDisabled.backgroundColor,
+ width: slider.markerDisabled.size,
+ height: slider.markerDisabled.size,
+ borderRadius: slider.markerDisabled.size / 2,
+ borderColor: slider.markerDisabled.borderColor,
+ elevation: 2,
+ shadowColor: "#000",
+ shadowOpacity: 0.1,
+ shadowOffset: { width: 0, height: 1 }
+ },
+ validationMessage: {
+ // All TextStyle properties are allowed
+ ...TextBox.validationMessage
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/switch.js b/themesource/atlas_core/native/core/widgets/switch.js
new file mode 100644
index 00000000..402a48a1
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/switch.js
@@ -0,0 +1,63 @@
+import { Platform } from "react-native";
+import { background, backgroundDefaults, border, brand, font, spacing } from "../../variables";
+import { TextBox } from "./textbox";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Switch
+
+ Default Class For Mendix Switch Widget
+========================================================================== */
+export const com_mendix_widget_native_switch_Switch = {
+ container: {
+ // All ViewStyle properties are allowed
+ ...TextBox.container,
+ paddingVertical: spacing.smallest,
+ justifyContent: "center"
+ },
+ containerDisabled: {
+ // All ViewStyle properties are allowed
+ ...TextBox.containerDisabled
+ },
+ label: {
+ // numberOfLines and all TextStyle properties are allowed
+ ...TextBox.label
+ },
+ labelDisabled: {
+ // All TextStyle properties are allowed
+ ...TextBox.labelDisabled
+ },
+ input: {
+ // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all TextStyle properties are allowed
+ backgroundColor: "transparent",
+ marginRight: Platform.select({ android: -3 }),
+ thumbColorOn: backgroundDefaults.primaryLight,
+ trackColorOn: brand.primary,
+ thumbColorOff: "#FFF",
+ trackColorOff: border.color
+ },
+ inputDisabled: {
+ // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all TextStyle properties are allowed
+ thumbColorOn: background.secondary,
+ trackColorOn: font.colorDisabled,
+ thumbColorOff: background.secondary,
+ trackColorOff: border.color
+ },
+ inputError: {
+ // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all TextStyle properties are allowed
+ thumbColorOn: backgroundDefaults.primaryLight,
+ trackColorOn: brand.danger,
+ thumbColorOff: "#FFF",
+ trackColorOff: brand.danger
+ },
+ validationMessage: {
+ // All TextStyle properties are allowed
+ ...TextBox.validationMessage,
+ alignSelf: "stretch"
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/tabcontainer.js b/themesource/atlas_core/native/core/widgets/tabcontainer.js
new file mode 100644
index 00000000..1f683721
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/tabcontainer.js
@@ -0,0 +1,71 @@
+import { badge, font, tabContainer } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Tab Container
+
+ Default Class For Mendix Tab Container Widget
+========================================================================== */
+export const TabContainer = {
+ container: {
+ // All ViewStyle properties are allowed
+ flex: 1
+ },
+ tabBar: {
+ // bounces, pressColor, pressOpacity, scrollEnabled and all ViewStyle properties are allowed
+ bounces: true,
+ scrollEnabled: false,
+ pressOpacity: 0.8,
+ pressColor: tabContainer.tabBar.pressColor,
+ backgroundColor: tabContainer.tabBar.backgroundColor,
+ height: 48,
+ justifyContent: "center"
+ },
+ indicator: {
+ // All ViewStyle properties are allowed
+ backgroundColor: tabContainer.indicator.backgroundColor,
+ height: tabContainer.indicator.height
+ },
+ tab: {
+ // All ViewStyle properties are allowed
+ padding: undefined,
+ minHeight: undefined,
+ paddingVertical: tabContainer.tab.paddingVertical
+ },
+ label: {
+ // All TextStyle properties are allowed
+ color: tabContainer.label.color,
+ fontSize: tabContainer.label.fontSize,
+ fontFamily: font.family,
+ fontWeight: tabContainer.label.fontWeight,
+ textTransform: tabContainer.label.textTransform
+ },
+ activeLabel: {
+ // All TextStyle properties are allowed
+ color: tabContainer.activeLabel.color,
+ fontSize: tabContainer.activeLabel.fontSize,
+ fontFamily: font.family,
+ fontWeight: tabContainer.activeLabel.fontWeight,
+ textTransform: tabContainer.activeLabel.textTransform
+ },
+ badgeContainer: {
+ // All ViewStyle properties are allowed
+ borderRadius: tabContainer.badgeContainer.borderRadius,
+ backgroundColor: badge.default.backgroundColor,
+ paddingVertical: tabContainer.badgeContainer.paddingVertical,
+ paddingHorizontal: tabContainer.badgeContainer.paddingHorizontal,
+ marginLeft: 8
+ },
+ badgeCaption: {
+ // All TextStyle properties are allowed
+ fontSize: font.size,
+ color: badge.default.color,
+ fontFamily: font.family,
+ fontWeight: badge.fontWeight
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/textarea.js b/themesource/atlas_core/native/core/widgets/textarea.js
new file mode 100644
index 00000000..ab4f5525
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/textarea.js
@@ -0,0 +1,83 @@
+var _a, _b, _c, _d, _e, _f;
+import { TextBox, TextBoxVertical } from "./textbox";
+import { input } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Text Area
+
+ Default Class For Mendix Text Area Widget
+========================================================================== */
+export const TextArea = {
+ container: {
+ // All ViewStyle properties are allowed
+ ...TextBox.container
+ },
+ containerDisabled: {
+ // All ViewStyle properties are allowed
+ ...TextBox.containerDisabled
+ },
+ label: {
+ // numberOfLines and all TextStyle properties are allowed
+ ...TextBox.label,
+ lineHeight: input.input.lineHeight,
+ height: "100%",
+ textAlignVertical: "top",
+ paddingVertical: (_a = TextBox.input) === null || _a === void 0 ? void 0 : _a.paddingVertical
+ },
+ labelDisabled: {
+ color: (_b = TextBox.labelDisabled) === null || _b === void 0 ? void 0 : _b.color
+ },
+ input: {
+ // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed
+ ...TextBox.input,
+ textAlignVertical: "top",
+ paddingTop: (_c = TextBox.input) === null || _c === void 0 ? void 0 : _c.paddingVertical
+ },
+ inputDisabled: {
+ // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed
+ backgroundColor: (_d = TextBox.inputDisabled) === null || _d === void 0 ? void 0 : _d.backgroundColor,
+ borderColor: (_e = TextBox.inputDisabled) === null || _e === void 0 ? void 0 : _e.borderColor,
+ color: (_f = TextBox.inputDisabled) === null || _f === void 0 ? void 0 : _f.color
+ },
+ inputFocused: {
+ // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed
+ },
+ inputError: {
+ // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed
+ ...TextBox.inputError
+ },
+ validationMessage: {
+ // All TextStyle properties are allowed
+ ...TextBox.validationMessage
+ }
+};
+export const TextAreaVertical = {
+ container: TextBoxVertical.container,
+ containerDisabled: TextBoxVertical.containerDisabled,
+ label: {
+ ...TextBoxVertical.label,
+ height: undefined,
+ paddingVertical: undefined,
+ textAlignVertical: undefined
+ },
+ labelDisabled: {
+ ...TextBoxVertical.labelDisabled,
+ height: undefined,
+ paddingVertical: undefined,
+ textAlignVertical: undefined
+ },
+ input: {
+ ...TextBoxVertical.input,
+ lineHeight: input.input.lineHeight
+ },
+ inputDisabled: TextBoxVertical.inputDisabled,
+ inputFocused: TextBoxVertical.inputFocused,
+ inputError: TextBoxVertical.inputError,
+ validationMessage: TextBoxVertical.validationMessage
+};
diff --git a/themesource/atlas_core/native/core/widgets/textbox.js b/themesource/atlas_core/native/core/widgets/textbox.js
new file mode 100644
index 00000000..6c1aff1c
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/textbox.js
@@ -0,0 +1,108 @@
+import { font, input, spacing } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Text Box
+
+ Default Class For Mendix Text Box Widget
+========================================================================== */
+export const TextBox = {
+ container: {
+ // All ViewStyle properties are allowed
+ },
+ containerDisabled: {
+ // All ViewStyle properties are allowed
+ },
+ label: {
+ // numberOfLines and all TextStyle properties are allowed
+ numberOfLines: input.label.numberOfLines,
+ color: input.label.color,
+ fontSize: input.label.fontSize,
+ fontFamily: font.family,
+ textAlign: input.label.textAlign,
+ marginRight: spacing.small
+ },
+ labelDisabled: {
+ // TextStyle properties are allowed
+ color: input.labelDisabled.color
+ },
+ input: {
+ // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed
+ color: input.input.color,
+ borderColor: input.input.borderColor,
+ backgroundColor: input.input.backgroundColor,
+ selectionColor: input.input.selectionColor,
+ placeholderTextColor: input.input.placeholderTextColor,
+ fontSize: input.input.fontSize,
+ fontFamily: font.family,
+ borderWidth: input.input.borderWidth,
+ borderRadius: input.input.borderRadius,
+ // textAlignVertical: "center",
+ minWidth: input.input.minWidth,
+ minHeight: input.input.minHeight,
+ paddingHorizontal: input.input.paddingHorizontal,
+ paddingVertical: input.input.paddingVertical
+ },
+ inputDisabled: {
+ // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed
+ color: input.inputDisabled.color,
+ borderColor: input.inputDisabled.borderColor,
+ backgroundColor: input.inputDisabled.backgroundColor
+ },
+ inputFocused: {
+ // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed
+ },
+ inputError: {
+ // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed
+ color: input.inputError.color,
+ borderColor: input.inputError.borderColor,
+ placeholderTextColor: input.inputError.placeholderTextColor,
+ underlineColorAndroid: "transparent"
+ },
+ validationMessage: {
+ // All TextStyle properties are allowed
+ color: input.validationMessage.color,
+ fontSize: input.validationMessage.fontSize,
+ fontFamily: font.family
+ }
+};
+export const TextBoxVertical = {
+ container: {},
+ containerDisabled: {},
+ label: {
+ numberOfLines: input.label.numberOfLines,
+ color: input.label.color,
+ fontSize: input.label.fontSize,
+ fontFamily: font.family,
+ textAlign: input.label.textAlign,
+ marginBottom: spacing.small
+ },
+ labelDisabled: {
+ color: input.labelDisabled.color
+ },
+ input: {
+ color: input.input.color,
+ borderColor: input.input.borderColor,
+ backgroundColor: input.input.backgroundColor,
+ selectionColor: input.input.selectionColor,
+ placeholderTextColor: input.input.placeholderTextColor,
+ fontSize: input.input.fontSize,
+ fontFamily: font.family,
+ borderWidth: input.input.borderWidth,
+ borderRadius: input.input.borderRadius,
+ // textAlignVertical: "center",
+ minWidth: input.input.minWidth,
+ minHeight: input.input.minHeight,
+ paddingHorizontal: input.input.paddingHorizontal,
+ paddingVertical: input.input.paddingVertical
+ },
+ inputDisabled: TextBox.inputDisabled,
+ inputFocused: TextBox.inputFocused,
+ inputError: TextBox.inputError,
+ validationMessage: TextBox.validationMessage
+};
diff --git a/themesource/atlas_core/native/core/widgets/togglebuttons.js b/themesource/atlas_core/native/core/widgets/togglebuttons.js
new file mode 100644
index 00000000..4769dbe7
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/togglebuttons.js
@@ -0,0 +1,54 @@
+import { background, brand, contrast, font } from "../../variables";
+import { TextBox } from "./textbox";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Segmented Controls
+
+ Default Class For Mendix Segmented Controls Widget
+========================================================================== */
+export const com_mendix_widget_native_togglebuttons_ToggleButtons = {
+ container: {
+ // All ViewStyle properties are allowed
+ backgroundColor: background.secondary,
+ borderRadius: 16,
+ alignSelf: "stretch"
+ },
+ containerDisabled: {
+ opacity: 0.6,
+ alignSelf: "stretch"
+ },
+ button: {
+ // All ViewStyle properties are allowed
+ backgroundColor: "transparent",
+ borderColor: "transparent",
+ borderRadius: 16
+ },
+ text: {
+ // All TextStyle properties are allowed
+ color: contrast.low,
+ fontSize: font.size,
+ fontFamily: font.family
+ },
+ activeButton: {
+ // All ViewStyle properties are allowed
+ backgroundColor: brand.primary,
+ borderColor: brand.primary,
+ borderRadius: 16
+ },
+ activeButtonText: {
+ // All TextStyle properties are allowed
+ color: "#FFF",
+ fontSize: font.size,
+ fontFamily: font.family
+ },
+ validationMessage: {
+ // All TextStyle properties are allowed
+ ...TextBox.validationMessage
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/typography.js b/themesource/atlas_core/native/core/widgets/typography.js
new file mode 100644
index 00000000..3ed8cbeb
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/typography.js
@@ -0,0 +1,79 @@
+import { font } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Text
+
+ Default Class For Mendix Text Widget
+========================================================================== */
+export const Text = {
+ container: {
+ // All ViewStyle properties are allowed
+ },
+ text: {
+ // numberOfLines & All TextStyle properties are allowed
+ color: font.colorTitle,
+ fontSize: font.size,
+ fontFamily: font.family,
+ lineHeight: font.lineHeight
+ }
+};
+export const TextHeading1 = {
+ container: {},
+ text: {
+ fontWeight: font.weightSemiBold,
+ fontSize: font.sizeH1,
+ fontFamily: font.family,
+ lineHeight: font.lineHeightH1
+ }
+};
+export const TextHeading2 = {
+ container: {},
+ text: {
+ fontWeight: font.weightSemiBold,
+ fontSize: font.sizeH2,
+ fontFamily: font.family,
+ lineHeight: font.lineHeightH2
+ }
+};
+export const TextHeading3 = {
+ container: {},
+ text: {
+ fontWeight: font.weightSemiBold,
+ fontSize: font.sizeH3,
+ fontFamily: font.family,
+ lineHeight: font.lineHeightH3
+ }
+};
+export const TextHeading4 = {
+ container: {},
+ text: {
+ fontWeight: font.weightSemiBold,
+ fontSize: font.sizeH4,
+ fontFamily: font.family,
+ lineHeight: font.lineHeightH4
+ }
+};
+export const TextHeading5 = {
+ container: {},
+ text: {
+ fontWeight: font.weightSemiBold,
+ fontSize: font.sizeH5,
+ fontFamily: font.family,
+ lineHeight: font.lineHeightH5
+ }
+};
+export const TextHeading6 = {
+ container: {},
+ text: {
+ fontWeight: font.weightSemiBold,
+ fontSize: font.sizeH6,
+ fontFamily: font.family,
+ lineHeight: font.lineHeightH6
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/videoplayer.js b/themesource/atlas_core/native/core/widgets/videoplayer.js
new file mode 100644
index 00000000..caa1dd95
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/videoplayer.js
@@ -0,0 +1,35 @@
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Video Player
+
+ Default Class For Mendix Video Player Widget
+========================================================================== */
+export const com_mendix_widget_native_videoplayer_VideoPlayer = {
+ container: {
+ // All ViewStyle properties are allowed
+ },
+ indicator: {
+ // Only the backgroundColor property is allowed
+ },
+ video: {
+ // All ViewStyle properties are allowed
+ },
+ fullScreenVideoPlayer: {
+ // All ViewStyle properties are allowed
+ },
+ controlBtnContainerStyle: {
+ // All ViewStyle properties are allowed
+ },
+ fullScreenVideoStyle: {
+ // All ViewStyle properties are allowed
+ },
+ fullScreenActivityIndicatorStyle: {
+ // All ViewStyle properties are allowed
+ }
+};
diff --git a/themesource/atlas_core/native/core/widgets/webview.js b/themesource/atlas_core/native/core/widgets/webview.js
new file mode 100644
index 00000000..e2240c71
--- /dev/null
+++ b/themesource/atlas_core/native/core/widgets/webview.js
@@ -0,0 +1,26 @@
+import { font } from "../../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Web View
+
+ Default Class For Mendix Web View Widget
+========================================================================== */
+export const com_mendix_widget_native_webview_WebView = {
+ container: {
+ // All ViewStyle properties are allowed
+ },
+ errorContainer: {
+ // All ViewStyle properties are allowed
+ },
+ errorText: {
+ // All TextStyle properties are allowed
+ fontSize: font.size,
+ fontFamily: font.family
+ }
+};
diff --git a/themesource/atlas_core/native/design-properties.json b/themesource/atlas_core/native/design-properties.json
new file mode 100644
index 00000000..e0dd05ee
--- /dev/null
+++ b/themesource/atlas_core/native/design-properties.json
@@ -0,0 +1,3292 @@
+{
+ "Document": [
+ {
+ "name": "Spacing top",
+ "type": "Dropdown",
+ "description": "The spacing above this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerTopSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerTopMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerTopLarger"
+ }
+ ]
+ },
+ {
+ "name": "Spacing bottom",
+ "type": "Dropdown",
+ "description": "The spacing below this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerBottomSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerBottomMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerBottomLarger"
+ }
+ ]
+ },
+ {
+ "name": "Spacing left",
+ "type": "Dropdown",
+ "description": "The spacing to the left of this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerLeftSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerLeftMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerLeftLarger"
+ }
+ ]
+ },
+ {
+ "name": "Spacing right",
+ "type": "Dropdown",
+ "description": "The spacing to the right of this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerRightSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerRightMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerRightLarger"
+ }
+ ]
+ },
+ {
+ "name": "Background color",
+ "type": "Dropdown",
+ "description": "Change the background color of the container.",
+ "options": [
+ {
+ "name": "Background Primary",
+ "oldNames": ["Primary"],
+ "class": "backgroundPrimary"
+ },
+ {
+ "name": "Background Secondary",
+ "oldNames": ["Gray", "Secondary"],
+ "class": "backgroundSecondary"
+ },
+ {
+ "name": "Brand Primary",
+ "class": "backgroundBrandPrimary"
+ },
+ {
+ "name": "Brand Success",
+ "class": "backgroundBrandSuccess"
+ },
+ {
+ "name": "Brand Warning",
+ "class": "backgroundBrandWarning"
+ },
+ {
+ "name": "Brand Danger",
+ "class": "backgroundBrandDanger"
+ },
+ {
+ "name": "Brand Info",
+ "class": "backgroundBrandInfo"
+ }
+ ]
+ },
+ {
+ "name": "Render children horizontal",
+ "type": "Toggle",
+ "description": "Determines the direction in which children are rendered.",
+ "class": "flexRow"
+ },
+ {
+ "name": "Wrap children",
+ "type": "Toggle",
+ "description": "Determines if children can flow into multiple lines if they hit the end of the container.",
+ "class": "flexWrap"
+ },
+ {
+ "name": "Align children",
+ "type": "Dropdown",
+ "description": "Align children in the opposite direction.",
+ "options": [
+ {
+ "name": "Start",
+ "class": "alignChildrenStart"
+ },
+ {
+ "name": "Center",
+ "class": "alignChildrenCenter"
+ },
+ {
+ "name": "End",
+ "class": "alignChildrenEnd"
+ },
+ {
+ "name": "Stretch",
+ "class": "alignChildrenStretch"
+ },
+ {
+ "name": "Baseline",
+ "class": "alignChildrenBaseline"
+ }
+ ]
+ },
+ {
+ "name": "Justify content",
+ "type": "Dropdown",
+ "description": "Justify content in the active direction.",
+ "options": [
+ {
+ "name": "Start",
+ "class": "justifyContentStart"
+ },
+ {
+ "name": "Center",
+ "class": "justifyContentCenter"
+ },
+ {
+ "name": "End",
+ "class": "justifyContentEnd"
+ },
+ {
+ "name": "Space between",
+ "class": "justifyContentSpaceBetween"
+ },
+ {
+ "name": "Space around",
+ "class": "justifyContentSpaceAround"
+ },
+ {
+ "name": "Space evenly",
+ "class": "justifyContentSpaceEvenly"
+ }
+ ]
+ }
+ ],
+ "Page": [
+ {
+ "name": "Hide header bottom border",
+ "type": "Toggle",
+ "description": "Hide the bottom border (iOS) and elevation (Android) of the header.",
+ "class": "pageHeaderBorderNone"
+ }
+ ],
+ "Widget": [
+ {
+ "name": "Spacing top",
+ "type": "Dropdown",
+ "description": "The spacing above this element.",
+ "options": [
+ {
+ "name": "Smallest",
+ "class": "spacingOuterTopSmallest"
+ },
+ {
+ "name": "Smaller",
+ "class": "spacingOuterTopSmaller"
+ },
+ {
+ "name": "Small",
+ "class": "spacingOuterTopSmall"
+ },
+ {
+ "name": "Medium",
+ "class": "spacingOuterTopMedium"
+ },
+ {
+ "name": "Large",
+ "class": "spacingOuterTopLarge"
+ },
+ {
+ "name": "Larger",
+ "class": "spacingOuterTopLarger"
+ },
+ {
+ "name": "Largest",
+ "class": "spacingOuterTopLargest"
+ }
+ ]
+ },
+ {
+ "name": "Spacing bottom",
+ "type": "Dropdown",
+ "description": "The spacing below this element.",
+ "options": [
+ {
+ "name": "Smallest",
+ "class": "spacingOuterBottomSmallest"
+ },
+ {
+ "name": "Smaller",
+ "class": "spacingOuterBottomSmaller"
+ },
+ {
+ "name": "Small",
+ "class": "spacingOuterBottomSmall"
+ },
+ {
+ "name": "Medium",
+ "class": "spacingOuterBottomMedium"
+ },
+ {
+ "name": "Large",
+ "class": "spacingOuterBottomLarge"
+ },
+ {
+ "name": "Larger",
+ "class": "spacingOuterBottomLarger"
+ },
+ {
+ "name": "Largest",
+ "class": "spacingOuterBottomLargest"
+ }
+ ]
+ },
+ {
+ "name": "Spacing left",
+ "type": "Dropdown",
+ "description": "The spacing to the left of this element.",
+ "options": [
+ {
+ "name": "Smallest",
+ "class": "spacingOuterLeftSmallest"
+ },
+ {
+ "name": "Smaller",
+ "class": "spacingOuterLeftSmaller"
+ },
+ {
+ "name": "Small",
+ "class": "spacingOuterLeftSmall"
+ },
+ {
+ "name": "Medium",
+ "class": "spacingOuterLeftMedium"
+ },
+ {
+ "name": "Large",
+ "class": "spacingOuterLeftLarge"
+ },
+ {
+ "name": "Larger",
+ "class": "spacingOuterLeftLarger"
+ },
+ {
+ "name": "Largest",
+ "class": "spacingOuterLeftLargest"
+ }
+ ]
+ },
+ {
+ "name": "Spacing right",
+ "type": "Dropdown",
+ "description": "The spacing to the right of this element.",
+ "options": [
+ {
+ "name": "Smallest",
+ "class": "spacingOuterRightSmallest"
+ },
+ {
+ "name": "Smaller",
+ "class": "spacingOuterRightSmaller"
+ },
+ {
+ "name": "Small",
+ "class": "spacingOuterRightSmall"
+ },
+ {
+ "name": "Medium",
+ "class": "spacingOuterRightMedium"
+ },
+ {
+ "name": "Large",
+ "class": "spacingOuterRightLarge"
+ },
+ {
+ "name": "Larger",
+ "class": "spacingOuterRightLarger"
+ },
+ {
+ "name": "Largest",
+ "class": "spacingOuterRightLargest"
+ }
+ ]
+ }
+ ],
+ "DivContainer": [
+ {
+ "name": "Spacing top",
+ "type": "Dropdown",
+ "description": "The spacing above this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerTopSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerTopMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerTopLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterTopSmaller"
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterTopMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterTopLarger"
+ }
+ ]
+ },
+ {
+ "name": "Spacing bottom",
+ "type": "Dropdown",
+ "description": "The spacing below this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerBottomSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerBottomMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerBottomLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterBottomSmaller"
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterBottomMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterBottomLarger"
+ }
+ ]
+ },
+ {
+ "name": "Spacing left",
+ "type": "Dropdown",
+ "description": "The spacing to the left of this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerLeftSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerLeftMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerLeftLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterLeftSmaller"
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterLeftMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterLeftLarger"
+ }
+ ]
+ },
+ {
+ "name": "Spacing right",
+ "type": "Dropdown",
+ "description": "The spacing to the right of this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerRightSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerRightMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerRightLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterRightSmaller"
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterRightMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterRightLarger"
+ }
+ ]
+ },
+ {
+ "name": "Size",
+ "type": "Dropdown",
+ "description": "Change the size of the widget relative to its sibling(s).",
+ "options": [
+ {
+ "name": "Maximum space",
+ "class": "flexMain"
+ },
+ {
+ "name": "Minimum space",
+ "class": "flexItem"
+ }
+ ]
+ },
+ {
+ "name": "Background color",
+ "type": "Dropdown",
+ "description": "Change the background color of the container.",
+ "options": [
+ {
+ "name": "Background Primary",
+ "oldNames": ["Primary"],
+ "class": "backgroundPrimary"
+ },
+ {
+ "name": "Background Secondary",
+ "oldNames": ["Gray", "Secondary"],
+ "class": "backgroundSecondary"
+ },
+ {
+ "name": "Brand Primary",
+ "class": "backgroundBrandPrimary"
+ },
+ {
+ "name": "Brand Success",
+ "class": "backgroundBrandSuccess"
+ },
+ {
+ "name": "Brand Warning",
+ "class": "backgroundBrandWarning"
+ },
+ {
+ "name": "Brand Danger",
+ "class": "backgroundBrandDanger"
+ },
+ {
+ "name": "Brand Info",
+ "class": "backgroundBrandInfo"
+ }
+ ]
+ },
+ {
+ "name": "Align",
+ "type": "Dropdown",
+ "description": "Aligns the element. This overrides 'Align children' of the parent.",
+ "options": [
+ {
+ "name": "Start",
+ "class": "alignSelfStart"
+ },
+ {
+ "name": "Center",
+ "class": "alignSelfCenter"
+ },
+ {
+ "name": "End",
+ "class": "alignSelfEnd"
+ },
+ {
+ "name": "Stretch",
+ "class": "alignSelfStretch"
+ },
+ {
+ "name": "Baseline",
+ "class": "alignSelfBaseline"
+ }
+ ]
+ },
+ {
+ "name": "Render children horizontal",
+ "type": "Toggle",
+ "description": "Determines the direction in which children are rendered.",
+ "class": "flexRow"
+ },
+ {
+ "name": "Wrap children",
+ "type": "Toggle",
+ "description": "Determines if children can flow into multiple lines if they hit the end of the container.",
+ "class": "flexWrap"
+ },
+ {
+ "name": "Align children",
+ "type": "Dropdown",
+ "description": "Align children in the opposite direction.",
+ "options": [
+ {
+ "name": "Start",
+ "class": "alignChildrenStart"
+ },
+ {
+ "name": "Center",
+ "class": "alignChildrenCenter"
+ },
+ {
+ "name": "End",
+ "class": "alignChildrenEnd"
+ },
+ {
+ "name": "Stretch",
+ "class": "alignChildrenStretch"
+ },
+ {
+ "name": "Baseline",
+ "class": "alignChildrenBaseline"
+ }
+ ]
+ },
+ {
+ "name": "Justify content",
+ "type": "Dropdown",
+ "description": "Justify content in the active direction.",
+ "options": [
+ {
+ "name": "Start",
+ "class": "justifyContentStart"
+ },
+ {
+ "name": "Center",
+ "class": "justifyContentCenter"
+ },
+ {
+ "name": "End",
+ "class": "justifyContentEnd"
+ },
+ {
+ "name": "Space between",
+ "class": "justifyContentSpaceBetween"
+ },
+ {
+ "name": "Space around",
+ "class": "justifyContentSpaceAround"
+ },
+ {
+ "name": "Space evenly",
+ "class": "justifyContentSpaceEvenly"
+ }
+ ]
+ }
+ ],
+ "ScrollContainer": [
+ {
+ "name": "Spacing top",
+ "type": "Dropdown",
+ "description": "The spacing above this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerTopSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerTopMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerTopLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterTopSmaller"
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterTopMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterTopLarger"
+ }
+ ]
+ },
+ {
+ "name": "Spacing bottom",
+ "type": "Dropdown",
+ "description": "The spacing below this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerBottomSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerBottomMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerBottomLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterBottomSmaller"
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterBottomMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterBottomLarger"
+ }
+ ]
+ },
+ {
+ "name": "Spacing left",
+ "type": "Dropdown",
+ "description": "The spacing to the left of this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerLeftSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerLeftMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerLeftLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterLeftSmaller"
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterLeftMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterLeftLarger"
+ }
+ ]
+ },
+ {
+ "name": "Spacing right",
+ "type": "Dropdown",
+ "description": "The spacing to the right of this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerRightSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerRightMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerRightLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterRightSmaller"
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterRightMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterRightLarger"
+ }
+ ]
+ },
+ {
+ "name": "Size",
+ "type": "Dropdown",
+ "description": "Change the size of the widget relative to its sibling(s).",
+ "options": [
+ {
+ "name": "Maximum space",
+ "class": "flexMain"
+ },
+ {
+ "name": "Minimum space",
+ "class": "flexItem"
+ }
+ ]
+ },
+ {
+ "name": "Background color",
+ "type": "Dropdown",
+ "description": "Change the background color of the container.",
+ "options": [
+ {
+ "name": "Background Primary",
+ "oldNames": ["Primary"],
+ "class": "backgroundPrimary"
+ },
+ {
+ "name": "Background Secondary",
+ "oldNames": ["Gray", "Secondary"],
+ "class": "backgroundSecondary"
+ },
+ {
+ "name": "Brand Primary",
+ "class": "backgroundBrandPrimary"
+ },
+ {
+ "name": "Brand Success",
+ "class": "backgroundBrandSuccess"
+ },
+ {
+ "name": "Brand Warning",
+ "class": "backgroundBrandWarning"
+ },
+ {
+ "name": "Brand Danger",
+ "class": "backgroundBrandDanger"
+ },
+ {
+ "name": "Brand Info",
+ "class": "backgroundBrandInfo"
+ }
+ ]
+ },
+ {
+ "name": "Align",
+ "type": "Dropdown",
+ "description": "Aligns the element. This overrides 'Align children' of the parent.",
+ "options": [
+ {
+ "name": "Start",
+ "class": "alignSelfStart"
+ },
+ {
+ "name": "Center",
+ "class": "alignSelfCenter"
+ },
+ {
+ "name": "End",
+ "class": "alignSelfEnd"
+ },
+ {
+ "name": "Stretch",
+ "class": "alignSelfStretch"
+ },
+ {
+ "name": "Baseline",
+ "class": "alignSelfBaseline"
+ }
+ ]
+ },
+ {
+ "name": "Render children horizontal",
+ "type": "Toggle",
+ "description": "Determines the direction in which children are rendered.",
+ "class": "flexRow"
+ },
+ {
+ "name": "Wrap children",
+ "type": "Toggle",
+ "description": "Determines if children can flow into multiple lines if they hit the end of the container.",
+ "class": "flexWrap"
+ },
+ {
+ "name": "Align children",
+ "type": "Dropdown",
+ "description": "Align children in the opposite direction.",
+ "options": [
+ {
+ "name": "Start",
+ "class": "alignChildrenStart"
+ },
+ {
+ "name": "Center",
+ "class": "alignChildrenCenter"
+ },
+ {
+ "name": "End",
+ "class": "alignChildrenEnd"
+ },
+ {
+ "name": "Stretch",
+ "class": "alignChildrenStretch"
+ },
+ {
+ "name": "Baseline",
+ "class": "alignChildrenBaseline"
+ }
+ ]
+ },
+ {
+ "name": "Justify content",
+ "type": "Dropdown",
+ "description": "Justify content in the active direction.",
+ "options": [
+ {
+ "name": "Start",
+ "class": "justifyContentStart"
+ },
+ {
+ "name": "Center",
+ "class": "justifyContentCenter"
+ },
+ {
+ "name": "End",
+ "class": "justifyContentEnd"
+ },
+ {
+ "name": "Space between",
+ "class": "justifyContentSpaceBetween"
+ },
+ {
+ "name": "Space around",
+ "class": "justifyContentSpaceAround"
+ }
+ ]
+ }
+ ],
+ "ActionButton": [
+ {
+ "name": "Button style",
+ "type": "Dropdown",
+ "description": "Style of the button",
+ "options": [
+ {
+ "name": "Secondary",
+ "class": "btnSecondary"
+ },
+ {
+ "name": "Success",
+ "class": "btnSuccess"
+ },
+ {
+ "name": "Warning",
+ "class": "btnWarning"
+ },
+ {
+ "name": "Danger",
+ "class": "btnDanger"
+ },
+ {
+ "name": "Inversed",
+ "class": "btnPrimaryInversed"
+ }
+ ]
+ },
+ {
+ "name": "Align",
+ "type": "Dropdown",
+ "description": "Aligns the element. This overrides 'Align children' of the parent.",
+ "options": [
+ {
+ "name": "Start",
+ "class": "alignSelfStart"
+ },
+ {
+ "name": "Center",
+ "class": "alignSelfCenter"
+ },
+ {
+ "name": "End",
+ "class": "alignSelfEnd"
+ },
+ {
+ "name": "Stretch",
+ "class": "alignSelfStretch"
+ },
+ {
+ "name": "Baseline",
+ "class": "alignSelfBaseline"
+ }
+ ]
+ }
+ ],
+ "StaticImageViewer": [
+ {
+ "name": "Shape",
+ "type": "Dropdown",
+ "description": "Change the shape of the image",
+ "options": [
+ {
+ "name": "Square",
+ "class": "imageSquare"
+ },
+ {
+ "name": "Circle",
+ "class": "imageCircle"
+ }
+ ]
+ },
+ {
+ "name": "Size",
+ "type": "Dropdown",
+ "description": "Make the image smaller or larger.",
+ "options": [
+ {
+ "name": "Icon",
+ "class": "imageIcon",
+ "oldNames": ["imageCircleIcon", "imageSquareIcon"]
+ },
+ {
+ "name": "Small",
+ "class": "imageSmall",
+ "oldNames": ["imageCircleSmall", "imageSquareSmall"]
+ },
+ {
+ "name": "Medium",
+ "class": "imageMedium",
+ "oldNames": ["imageCircleMedium", "imageSquareMedium"]
+ },
+ {
+ "name": "Large",
+ "class": "imageLarge",
+ "oldNames": ["imageCircleLarge", "imageSquareLarge"]
+ },
+ {
+ "name": "Larger",
+ "class": "imageLarger",
+ "oldNames": ["imageCircleLarger", "imageSquareLarger"]
+ },
+ {
+ "name": "FullSize",
+ "class": "imageFullSize"
+ }
+ ]
+ }
+ ],
+ "DynamicImageViewer": [
+ {
+ "name": "Shape",
+ "type": "Dropdown",
+ "description": "Change the shape of the image",
+ "options": [
+ {
+ "name": "Square",
+ "class": "imageSquare"
+ },
+ {
+ "name": "Circle",
+ "class": "imageCircle"
+ }
+ ]
+ },
+ {
+ "name": "Size",
+ "type": "Dropdown",
+ "description": "Make the image smaller or larger.",
+ "options": [
+ {
+ "name": "Icon",
+ "class": "imageIcon",
+ "oldNames": ["imageCircleIcon", "imageSquareIcon"]
+ },
+ {
+ "name": "Small",
+ "class": "imageSmall",
+ "oldNames": ["imageCircleSmall", "imageSquareSmall"]
+ },
+ {
+ "name": "Medium",
+ "class": "imageMedium",
+ "oldNames": ["imageCircleMedium", "imageSquareMedium"]
+ },
+ {
+ "name": "Large",
+ "class": "imageLarge",
+ "oldNames": ["imageCircleLarge", "imageSquareLarge"]
+ },
+ {
+ "name": "Larger",
+ "class": "imageLarger",
+ "oldNames": ["imageCircleLarger", "imageSquareLarger"]
+ },
+ {
+ "name": "FullSize",
+ "class": "imageFullSize"
+ }
+ ]
+ }
+ ],
+ "DynamicText": [
+ {
+ "name": "Color",
+ "type": "Dropdown",
+ "description": "Change the color of text.",
+ "options": [
+ {
+ "name": "Paragraph",
+ "class": "textParagraph"
+ },
+ {
+ "name": "Disabled",
+ "class": "textDisabled"
+ },
+ {
+ "name": "White",
+ "class": "textWhite"
+ },
+ {
+ "name": "Black",
+ "class": "textBlack"
+ },
+ {
+ "name": "Brand primary",
+ "class": "textPrimary"
+ },
+ {
+ "name": "Brand success",
+ "class": "textSuccess"
+ },
+ {
+ "name": "Brand warning",
+ "class": "textWarning"
+ },
+ {
+ "name": "Brand danger",
+ "class": "textDanger"
+ }
+ ]
+ },
+ {
+ "name": "Size",
+ "type": "Dropdown",
+ "description": "Make the text smaller or larger.",
+ "options": [
+ {
+ "name": "Smallest",
+ "class": "textSmallest"
+ },
+ {
+ "name": "Small",
+ "class": "textSmall"
+ },
+ {
+ "name": "Large",
+ "class": "textLarge"
+ },
+ {
+ "name": "Largest",
+ "class": "textLargest"
+ }
+ ]
+ },
+ {
+ "name": "Weight",
+ "type": "Dropdown",
+ "description": "Emphasize the text with a heavier or lighter font weight",
+ "options": [
+ {
+ "name": "Default",
+ "class": "textNormal"
+ },
+ {
+ "name": "Bold",
+ "class": "textBold"
+ }
+ ]
+ },
+ {
+ "name": "Decoration",
+ "type": "Dropdown",
+ "description": "Decorate the text with an underline or a line through",
+ "options": [
+ {
+ "name": "Underline",
+ "class": "textUnderline"
+ },
+ {
+ "name": "Line Through",
+ "class": "textLineThrough"
+ }
+ ]
+ },
+ {
+ "name": "Alignment",
+ "type": "Dropdown",
+ "description": "Align the text.",
+ "options": [
+ {
+ "name": "Left",
+ "class": "textLeft"
+ },
+ {
+ "name": "Center",
+ "class": "textCenter"
+ },
+ {
+ "name": "Right",
+ "class": "textRight"
+ }
+ ]
+ }
+ ],
+ "LayoutGrid": [
+ {
+ "name": "Spacing top",
+ "type": "Dropdown",
+ "description": "The spacing above this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerTopSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerTopMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerTopLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterTopSmaller",
+ "oldNames": ["Small"]
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterTopMedium",
+ "oldNames": ["Medium"]
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterTopLarger",
+ "oldNames": ["Large"]
+ }
+ ]
+ },
+ {
+ "name": "Spacing bottom",
+ "type": "Dropdown",
+ "description": "The spacing below this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerBottomSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerBottomMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerBottomLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterBottomSmaller",
+ "oldNames": ["Small"]
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterBottomMedium",
+ "oldNames": ["Medium"]
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterBottomLarger",
+ "oldNames": ["Large"]
+ }
+ ]
+ },
+ {
+ "name": "Spacing left",
+ "type": "Dropdown",
+ "description": "The spacing to the left of this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerLeftSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerLeftMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerLeftLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterLeftSmaller",
+ "oldNames": ["Small"]
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterLeftMedium",
+ "oldNames": ["Medium"]
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterLeftLarger",
+ "oldNames": ["Large"]
+ }
+ ]
+ },
+ {
+ "name": "Spacing right",
+ "type": "Dropdown",
+ "description": "The spacing to the right of this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerRightSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerRightMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerRightLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterRightSmaller",
+ "oldNames": ["Small"]
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterRightMedium",
+ "oldNames": ["Medium"]
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterRightLarger",
+ "oldNames": ["Large"]
+ }
+ ]
+ },
+ {
+ "name": "Background color",
+ "type": "Dropdown",
+ "description": "Change the background color of the container.",
+ "options": [
+ {
+ "name": "Background Primary",
+ "oldNames": ["Primary"],
+ "class": "backgroundPrimary"
+ },
+ {
+ "name": "Background Secondary",
+ "oldNames": ["Gray", "Secondary"],
+ "class": "backgroundSecondary"
+ },
+ {
+ "name": "Brand Primary",
+ "class": "backgroundBrandPrimary"
+ },
+ {
+ "name": "Brand Success",
+ "class": "backgroundBrandSuccess"
+ },
+ {
+ "name": "Brand Warning",
+ "class": "backgroundBrandWarning"
+ },
+ {
+ "name": "Brand Danger",
+ "class": "backgroundBrandDanger"
+ },
+ {
+ "name": "Brand Info",
+ "class": "backgroundBrandInfo"
+ }
+ ]
+ }
+ ],
+ "LayoutGridRow": [
+ {
+ "name": "Spacing top",
+ "type": "Dropdown",
+ "description": "The spacing above this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerTopSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerTopMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerTopLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterTopSmaller"
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterTopMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterTopLarger"
+ }
+ ]
+ },
+ {
+ "name": "Spacing bottom",
+ "type": "Dropdown",
+ "description": "The spacing below this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerBottomSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerBottomMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerBottomLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterBottomSmaller"
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterBottomMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterBottomLarger"
+ }
+ ]
+ },
+ {
+ "name": "Spacing left",
+ "type": "Dropdown",
+ "description": "The spacing to the left of this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerLeftSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerLeftMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerLeftLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterLeftSmaller"
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterLeftMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterLeftLarger"
+ }
+ ]
+ },
+ {
+ "name": "Spacing right",
+ "type": "Dropdown",
+ "description": "The spacing to the right of this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerRightSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerRightMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerRightLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterRightSmaller"
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterRightMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterRightLarger"
+ }
+ ]
+ },
+ {
+ "name": "Background color",
+ "type": "Dropdown",
+ "description": "Change the background color of the container.",
+ "options": [
+ {
+ "name": "Background Primary",
+ "oldNames": ["Primary"],
+ "class": "backgroundPrimary"
+ },
+ {
+ "name": "Background Secondary",
+ "oldNames": ["Gray", "Secondary"],
+ "class": "backgroundSecondary"
+ },
+ {
+ "name": "Brand Primary",
+ "class": "backgroundBrandPrimary"
+ },
+ {
+ "name": "Brand Success",
+ "class": "backgroundBrandSuccess"
+ },
+ {
+ "name": "Brand Warning",
+ "class": "backgroundBrandWarning"
+ },
+ {
+ "name": "Brand Danger",
+ "class": "backgroundBrandDanger"
+ },
+ {
+ "name": "Brand Info",
+ "class": "backgroundBrandInfo"
+ }
+ ]
+ }
+ ],
+ "LayoutGridColumn": [
+ {
+ "name": "Background color",
+ "type": "Dropdown",
+ "description": "Change the background color of the container.",
+ "options": [
+ {
+ "name": "Background Primary",
+ "oldNames": ["Primary"],
+ "class": "backgroundPrimary"
+ },
+ {
+ "name": "Background Secondary",
+ "oldNames": ["Gray", "Secondary"],
+ "class": "backgroundSecondary"
+ },
+ {
+ "name": "Brand Primary",
+ "class": "backgroundBrandPrimary"
+ },
+ {
+ "name": "Brand Success",
+ "class": "backgroundBrandSuccess"
+ },
+ {
+ "name": "Brand Warning",
+ "class": "backgroundBrandWarning"
+ },
+ {
+ "name": "Brand Danger",
+ "class": "backgroundBrandDanger"
+ },
+ {
+ "name": "Brand Info",
+ "class": "backgroundBrandInfo"
+ }
+ ]
+ }
+ ],
+ "ListView": [
+ {
+ "name": "List item divider",
+ "type": "Dropdown",
+ "description": "Give each list item a border.",
+ "options": [
+ {
+ "name": "Vertical",
+ "class": "listItemBorderBottom"
+ },
+ {
+ "name": "Horizontal",
+ "class": "listItemBorderRight"
+ }
+ ]
+ },
+ {
+ "name": "Background color",
+ "type": "Dropdown",
+ "description": "Change the background color of the container.",
+ "options": [
+ {
+ "name": "Background Primary",
+ "oldNames": ["Primary"],
+ "class": "backgroundPrimary"
+ },
+ {
+ "name": "Background Secondary",
+ "oldNames": ["Gray", "Secondary"],
+ "class": "backgroundSecondary"
+ },
+ {
+ "name": "Brand Primary",
+ "class": "backgroundBrandPrimary"
+ },
+ {
+ "name": "Brand Success",
+ "class": "backgroundBrandSuccess"
+ },
+ {
+ "name": "Brand Warning",
+ "class": "backgroundBrandWarning"
+ },
+ {
+ "name": "Brand Danger",
+ "class": "backgroundBrandDanger"
+ },
+ {
+ "name": "Brand Info",
+ "class": "backgroundBrandInfo"
+ }
+ ]
+ }
+ ],
+ "TabContainer": [
+ {
+ "name": "Tab bar scroll",
+ "type": "Toggle",
+ "description": "Enable horizontal scroll for the tab bar.",
+ "class": "tabContainerScroll"
+ }
+ ],
+ "TextBox": [
+ {
+ "name": "Capitalize",
+ "type": "Dropdown",
+ "description": "Change the capitalization of the input.",
+ "options": [
+ {
+ "name": "None",
+ "class": "textInputCapitalizeNone"
+ },
+ {
+ "name": "Characters",
+ "class": "textInputCapitalizeCharacters"
+ },
+ {
+ "name": "Words",
+ "class": "textInputCapitalizeWords"
+ },
+ {
+ "name": "Sentences",
+ "class": "textInputCapitalizeSentences"
+ }
+ ]
+ }
+ ],
+ "TextArea": [
+ {
+ "name": "Capitalize",
+ "type": "Dropdown",
+ "description": "Change the capitalization of the input.",
+ "options": [
+ {
+ "name": "None",
+ "class": "textInputCapitalizeNone"
+ },
+ {
+ "name": "Characters",
+ "class": "textInputCapitalizeCharacters"
+ },
+ {
+ "name": "Words",
+ "class": "textInputCapitalizeWords"
+ },
+ {
+ "name": "Sentences",
+ "class": "textInputCapitalizeSentences"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.native.activityindicator.ActivityIndicator": [
+ {
+ "name": "Activity indicator style",
+ "type": "Dropdown",
+ "description": "Style of the Activity indicator.",
+ "options": [
+ {
+ "name": "Success",
+ "class": "activityIndicatorSuccess"
+ },
+ {
+ "name": "Warning",
+ "class": "activityIndicatorWarning"
+ },
+ {
+ "name": "Danger",
+ "class": "activityIndicatorDanger"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.native.animation.Animation": [
+ {
+ "name": "Spacing top",
+ "type": "Dropdown",
+ "description": "The spacing above this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerTopSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerTopMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerTopLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterTopSmaller"
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterTopMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterTopLarger"
+ }
+ ]
+ },
+ {
+ "name": "Spacing bottom",
+ "type": "Dropdown",
+ "description": "The spacing below this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerBottomSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerBottomMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerBottomLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterBottomSmaller"
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterBottomMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterBottomLarger"
+ }
+ ]
+ },
+ {
+ "name": "Spacing left",
+ "type": "Dropdown",
+ "description": "The spacing to the left of this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerLeftSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerLeftMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerLeftLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterLeftSmaller"
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterLeftMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterLeftLarger"
+ }
+ ]
+ },
+ {
+ "name": "Spacing right",
+ "type": "Dropdown",
+ "description": "The spacing to the right of this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerRightSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerRightMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerRightLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterRightSmaller"
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterRightMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterRightLarger"
+ }
+ ]
+ },
+ {
+ "name": "Size",
+ "type": "Dropdown",
+ "description": "Change the size of the widget relative to its sibling(s).",
+ "options": [
+ {
+ "name": "Maximum space",
+ "class": "flexMain"
+ },
+ {
+ "name": "Minimum space",
+ "class": "flexItem"
+ }
+ ]
+ },
+ {
+ "name": "Background color",
+ "type": "Dropdown",
+ "description": "Change the background color of the container.",
+ "options": [
+ {
+ "name": "Background Primary",
+ "oldNames": ["Primary"],
+ "class": "backgroundPrimary"
+ },
+ {
+ "name": "Background Secondary",
+ "oldNames": ["Gray", "Secondary"],
+ "class": "backgroundSecondary"
+ },
+ {
+ "name": "Brand Primary",
+ "class": "backgroundBrandPrimary"
+ },
+ {
+ "name": "Brand Success",
+ "class": "backgroundBrandSuccess"
+ },
+ {
+ "name": "Brand Warning",
+ "class": "backgroundBrandWarning"
+ },
+ {
+ "name": "Brand Danger",
+ "class": "backgroundBrandDanger"
+ },
+ {
+ "name": "Brand Info",
+ "class": "backgroundBrandInfo"
+ }
+ ]
+ },
+ {
+ "name": "Align",
+ "type": "Dropdown",
+ "description": "Aligns the element. This overrides 'Align children' of the parent.",
+ "options": [
+ {
+ "name": "Stretch",
+ "class": "alignSelfStretch"
+ },
+ {
+ "name": "Start",
+ "class": "alignSelfStart"
+ },
+ {
+ "name": "Center",
+ "class": "alignSelfCenter"
+ },
+ {
+ "name": "End",
+ "class": "alignSelfEnd"
+ }
+ ]
+ },
+ {
+ "name": "Render children horizontal",
+ "type": "Toggle",
+ "description": "Determines the direction in which children are rendered.",
+ "class": "flexRow"
+ },
+ {
+ "name": "Wrap children",
+ "type": "Toggle",
+ "description": "Determines if children can flow into multiple lines if they hit the end of the container.",
+ "class": "flexWrap"
+ },
+ {
+ "name": "Align children",
+ "type": "Dropdown",
+ "description": "Align children in the opposite direction.",
+ "options": [
+ {
+ "name": "Start",
+ "class": "alignChildrenStart"
+ },
+ {
+ "name": "Center",
+ "class": "alignChildrenCenter"
+ },
+ {
+ "name": "End",
+ "class": "alignChildrenEnd"
+ },
+ {
+ "name": "Stretch",
+ "class": "alignChildrenStretch"
+ }
+ ]
+ },
+ {
+ "name": "Justify children",
+ "type": "Dropdown",
+ "description": "Justify children in the active direction.",
+ "options": [
+ {
+ "name": "Center",
+ "class": "justifyChildrenCenter"
+ },
+ {
+ "name": "End",
+ "class": "justifyChildrenEnd"
+ },
+ {
+ "name": "Space between",
+ "class": "justifyChildrenSpaceBetween"
+ },
+ {
+ "name": "Space around",
+ "class": "justifyChildrenSpaceAround"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.native.accordion.Accordion": [
+ {
+ "name": "Compact",
+ "type": "Toggle",
+ "description": "Reduces the spacing in the header and the content.",
+ "class": "accordionCompact"
+ },
+ {
+ "name": "Dividers",
+ "type": "Dropdown",
+ "description": "Configure the dividers between the groups.",
+ "options": [
+ {
+ "name": "Lined",
+ "class": "accordionLined"
+ },
+ {
+ "name": "None",
+ "class": "accordionDividerNone"
+ }
+ ]
+ },
+ {
+ "name": "Accordion style",
+ "type": "Dropdown",
+ "description": "Style of the Accordion.",
+ "options": [
+ {
+ "name": "Primary",
+ "class": "accordionPrimary"
+ },
+ {
+ "name": "Secondary",
+ "class": "accordionSecondary"
+ },
+ {
+ "name": "Success",
+ "class": "accordionSuccess"
+ },
+ {
+ "name": "Warning",
+ "class": "accordionWarning"
+ },
+ {
+ "name": "Danger",
+ "class": "accordionDanger"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.native.badge.Badge": [
+ {
+ "name": "Badge style",
+ "type": "Dropdown",
+ "description": "Style of the Badge.",
+ "options": [
+ {
+ "name": "Primary",
+ "class": "badgePrimary"
+ },
+ {
+ "name": "Success",
+ "class": "badgeSuccess"
+ },
+ {
+ "name": "Warning",
+ "class": "badgeWarning"
+ },
+ {
+ "name": "Danger",
+ "class": "badgeDanger"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.native.floatingactionbutton.FloatingActionButton": [
+ {
+ "name": "Style",
+ "type": "Dropdown",
+ "description": "Style of the Floating Action Button.",
+ "options": [
+ {
+ "name": "Secondary",
+ "class": "floatingActionButtonSecondary"
+ },
+ {
+ "name": "Success",
+ "class": "floatingActionButtonSuccess"
+ },
+ {
+ "name": "Warning",
+ "class": "floatingActionButtonWarning"
+ },
+ {
+ "name": "Danger",
+ "class": "floatingActionButtonDanger"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.native.linechart.LineChart": [
+ {
+ "name": "Chart size",
+ "type": "Dropdown",
+ "description": "Size of the chart.",
+ "options": [
+ {
+ "name": "Square",
+ "class": "lineChartSquare"
+ },
+ {
+ "name": "Maximum space",
+ "class": "lineChartMaxSpace"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.native.listviewswipe.ListViewSwipe": [
+ {
+ "name": "Panel size",
+ "type": "Dropdown",
+ "description": "Size of the left and right panel.",
+ "options": [
+ {
+ "name": "Small",
+ "class": "listViewSwipeSmallPanels"
+ },
+ {
+ "name": "Large",
+ "class": "listViewSwipeLargePanels"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.native.maps.Maps": [
+ {
+ "name": "Maps size",
+ "type": "Dropdown",
+ "description": "Size of the maps.",
+ "options": [
+ {
+ "name": "Square",
+ "class": "mapsSquare"
+ },
+ {
+ "name": "Maximum space",
+ "class": "mapsMaxSpace"
+ }
+ ]
+ },
+ {
+ "name": "Maps marker style",
+ "type": "Dropdown",
+ "description": "Style of the marker.",
+ "options": [
+ {
+ "name": "Success",
+ "class": "mapsSuccess"
+ },
+ {
+ "name": "Warning",
+ "class": "mapsWarning"
+ },
+ {
+ "name": "Danger",
+ "class": "mapsDanger"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.native.barchart.BarChart": [
+ {
+ "name": "Chart size",
+ "type": "Dropdown",
+ "description": "Size of the chart.",
+ "options": [
+ {
+ "name": "Square",
+ "class": "barChartSquare"
+ },
+ {
+ "name": "Maximum space",
+ "class": "barChartMaxSpace"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.native.columnchart.ColumnChart": [
+ {
+ "name": "Chart size",
+ "type": "Dropdown",
+ "description": "Size of the chart.",
+ "options": [
+ {
+ "name": "Square",
+ "class": "columnChartSquare"
+ },
+ {
+ "name": "Maximum space",
+ "class": "columnChartMaxSpace"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.native.progressbar.ProgressBar": [
+ {
+ "name": "Progress bar style",
+ "type": "Dropdown",
+ "description": "Style of the progress bar.",
+ "options": [
+ {
+ "name": "Success",
+ "class": "progressBarSuccess"
+ },
+ {
+ "name": "Warning",
+ "class": "progressBarWarning"
+ },
+ {
+ "name": "Danger",
+ "class": "progressBarDanger"
+ }
+ ]
+ },
+ {
+ "name": "Progress bar size",
+ "type": "Dropdown",
+ "description": "Size of the progress bar.",
+ "options": [
+ {
+ "name": "Small",
+ "class": "progressBarSmall"
+ },
+ {
+ "name": "Large",
+ "class": "progressBarLarge"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.native.progresscircle.ProgressCircle": [
+ {
+ "name": "Progress circle style",
+ "type": "Dropdown",
+ "description": "Style of the progress circle.",
+ "options": [
+ {
+ "name": "Success",
+ "class": "progressCircleSuccess"
+ },
+ {
+ "name": "Warning",
+ "class": "progressCircleWarning"
+ },
+ {
+ "name": "Danger",
+ "class": "progressCircleDanger"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.native.rangeslider.RangeSlider": [
+ {
+ "name": "Range Slider style",
+ "type": "Dropdown",
+ "description": "Style of the range slider.",
+ "options": [
+ {
+ "name": "Success",
+ "class": "rangeSliderSuccess"
+ },
+ {
+ "name": "Warning",
+ "class": "rangeSliderWarning"
+ },
+ {
+ "name": "Danger",
+ "class": "rangeSliderDanger"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.native.safeareaview.SafeAreaView": [
+ {
+ "name": "Spacing top",
+ "type": "Dropdown",
+ "description": "The spacing above this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerTopSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerTopMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerTopLarger"
+ }
+ ]
+ },
+ {
+ "name": "Spacing bottom",
+ "type": "Dropdown",
+ "description": "The spacing below this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerBottomSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerBottomMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerBottomLarger"
+ }
+ ]
+ },
+ {
+ "name": "Spacing left",
+ "type": "Dropdown",
+ "description": "The spacing to the left of this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerLeftSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerLeftMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerLeftLarger"
+ }
+ ]
+ },
+ {
+ "name": "Spacing right",
+ "type": "Dropdown",
+ "description": "The spacing to the right of this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerRightSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerRightMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerRightLarger"
+ }
+ ]
+ },
+ {
+ "name": "Background color",
+ "type": "Dropdown",
+ "description": "Change the background color of the container.",
+ "options": [
+ {
+ "name": "Background Primary",
+ "oldNames": ["Primary"],
+ "class": "backgroundPrimary"
+ },
+ {
+ "name": "Background Secondary",
+ "oldNames": ["Gray", "Secondary"],
+ "class": "backgroundSecondary"
+ },
+ {
+ "name": "Brand Primary",
+ "class": "backgroundBrandPrimary"
+ },
+ {
+ "name": "Brand Success",
+ "class": "backgroundBrandSuccess"
+ },
+ {
+ "name": "Brand Warning",
+ "class": "backgroundBrandWarning"
+ },
+ {
+ "name": "Brand Danger",
+ "class": "backgroundBrandDanger"
+ },
+ {
+ "name": "Brand Info",
+ "class": "backgroundBrandInfo"
+ }
+ ]
+ },
+ {
+ "name": "Render children horizontal",
+ "type": "Toggle",
+ "description": "Determines the direction in which children are rendered.",
+ "class": "flexRow"
+ },
+ {
+ "name": "Wrap children",
+ "type": "Toggle",
+ "description": "Determines if children can flow into multiple lines if they hit the end of the container.",
+ "class": "flexWrap"
+ },
+ {
+ "name": "Align children",
+ "type": "Dropdown",
+ "description": "Align children in the opposite direction.",
+ "options": [
+ {
+ "name": "Start",
+ "class": "alignChildrenStart"
+ },
+ {
+ "name": "Center",
+ "class": "alignChildrenCenter"
+ },
+ {
+ "name": "End",
+ "class": "alignChildrenEnd"
+ },
+ {
+ "name": "Stretch",
+ "class": "alignChildrenStretch"
+ },
+ {
+ "name": "Baseline",
+ "class": "alignChildrenBaseline"
+ }
+ ]
+ },
+ {
+ "name": "Justify content",
+ "type": "Dropdown",
+ "description": "Justify content in the active direction.",
+ "options": [
+ {
+ "name": "Start",
+ "class": "justifyContentStart"
+ },
+ {
+ "name": "Center",
+ "class": "justifyContentCenter"
+ },
+ {
+ "name": "End",
+ "class": "justifyContentEnd"
+ },
+ {
+ "name": "Space between",
+ "class": "justifyContentSpaceBetween"
+ },
+ {
+ "name": "Space around",
+ "class": "justifyContentSpaceAround"
+ },
+ {
+ "name": "Space evenly",
+ "class": "justifyContentSpaceEvenly"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.native.slider.Slider": [
+ {
+ "name": "Slider style",
+ "type": "Dropdown",
+ "description": "Style of the slider.",
+ "options": [
+ {
+ "name": "Success",
+ "class": "sliderSuccess"
+ },
+ {
+ "name": "Warning",
+ "class": "sliderWarning"
+ },
+ {
+ "name": "Danger",
+ "class": "sliderDanger"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.native.switch.Switch": [
+ {
+ "name": "Switch style",
+ "type": "Dropdown",
+ "description": "Style of the switch track color.",
+ "options": [
+ {
+ "name": "Success",
+ "class": "switchSuccess"
+ },
+ {
+ "name": "Warning",
+ "class": "switchWarning"
+ },
+ {
+ "name": "Danger",
+ "class": "switchDanger"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.native.radiobuttons.RadioButtons": [
+ {
+ "name": "Radio button color",
+ "type": "Dropdown",
+ "description": "Change the color of radio button.",
+ "options": [
+ {
+ "name": "Brand Primary",
+ "class": "radioButtonsPrimary"
+ },
+ {
+ "name": "Brand Success",
+ "class": "radioButtonsSuccess"
+ },
+ {
+ "name": "Brand Warning",
+ "class": "radioButtonsWarning"
+ },
+ {
+ "name": "Brand Danger",
+ "class": "radioButtonsDanger"
+ },
+ {
+ "name": "Brand Info",
+ "class": "radioButtonsInfo"
+ }
+ ]
+ },
+ {
+ "name": "Radio button label color",
+ "type": "Dropdown",
+ "description": "Change the color of label.",
+ "options": [
+ {
+ "name": "Brand Primary",
+ "class": "radioButtonsLabelPrimary"
+ },
+ {
+ "name": "Brand Success",
+ "class": "radioButtonsLabelSuccess"
+ },
+ {
+ "name": "Brand Warning",
+ "class": "radioButtonsLabelWarning"
+ },
+ {
+ "name": "Brand Danger",
+ "class": "radioButtonsLabelDanger"
+ },
+ {
+ "name": "Brand Info",
+ "class": "radioButtonsLabelInfo"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.native.backgroundgradient.BackgroundGradient": [
+ {
+ "name": "Spacing top",
+ "type": "Dropdown",
+ "description": "The spacing above this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerTopSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerTopMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerTopLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterTopSmaller"
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterTopMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterTopLarger"
+ }
+ ]
+ },
+ {
+ "name": "Spacing bottom",
+ "type": "Dropdown",
+ "description": "The spacing below this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerBottomSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerBottomMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerBottomLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterBottomSmaller"
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterBottomMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterBottomLarger"
+ }
+ ]
+ },
+ {
+ "name": "Spacing left",
+ "type": "Dropdown",
+ "description": "The spacing to the left of this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerLeftSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerLeftMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerLeftLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterLeftSmaller"
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterLeftMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterLeftLarger"
+ }
+ ]
+ },
+ {
+ "name": "Spacing right",
+ "type": "Dropdown",
+ "description": "The spacing to the right of this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerRightSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerRightMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerRightLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterRightSmaller"
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterRightMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterRightLarger"
+ }
+ ]
+ },
+ {
+ "name": "Size",
+ "type": "Dropdown",
+ "description": "Change the size of the widget relative to its sibling(s).",
+ "options": [
+ {
+ "name": "Maximum space",
+ "class": "flexMain"
+ },
+ {
+ "name": "Minimum space",
+ "class": "flexItem"
+ }
+ ]
+ },
+ {
+ "name": "Align",
+ "type": "Dropdown",
+ "description": "Aligns the element. This overrides 'Align children' of the parent.",
+ "options": [
+ {
+ "name": "Start",
+ "class": "alignSelfStart"
+ },
+ {
+ "name": "Center",
+ "class": "alignSelfCenter"
+ },
+ {
+ "name": "End",
+ "class": "alignSelfEnd"
+ },
+ {
+ "name": "Stretch",
+ "class": "alignSelfStretch"
+ },
+ {
+ "name": "Baseline",
+ "class": "alignSelfBaseline"
+ }
+ ]
+ },
+ {
+ "name": "Render children horizontal",
+ "type": "Toggle",
+ "description": "Determines the direction in which children are rendered.",
+ "class": "flexRow"
+ },
+ {
+ "name": "Wrap children",
+ "type": "Toggle",
+ "description": "Determines if children can flow into multiple lines if they hit the end of the container.",
+ "class": "flexWrap"
+ },
+ {
+ "name": "Align children",
+ "type": "Dropdown",
+ "description": "Align children in the opposite direction.",
+ "options": [
+ {
+ "name": "Start",
+ "class": "alignChildrenStart"
+ },
+ {
+ "name": "Center",
+ "class": "alignChildrenCenter"
+ },
+ {
+ "name": "End",
+ "class": "alignChildrenEnd"
+ },
+ {
+ "name": "Stretch",
+ "class": "alignChildrenStretch"
+ },
+ {
+ "name": "Baseline",
+ "class": "alignChildrenBaseline"
+ }
+ ]
+ },
+ {
+ "name": "Justify content",
+ "type": "Dropdown",
+ "description": "Justify content in the active direction.",
+ "options": [
+ {
+ "name": "Start",
+ "class": "justifyContentStart"
+ },
+ {
+ "name": "Center",
+ "class": "justifyContentCenter"
+ },
+ {
+ "name": "End",
+ "class": "justifyContentEnd"
+ },
+ {
+ "name": "Space between",
+ "class": "justifyContentSpaceBetween"
+ },
+ {
+ "name": "Space around",
+ "class": "justifyContentSpaceAround"
+ },
+ {
+ "name": "Space evenly",
+ "class": "justifyContentSpaceEvenly"
+ }
+ ]
+ },
+ {
+ "name": "Angle",
+ "type": "Dropdown",
+ "description": "Line of direction. A value of 0 is equivalent to top; increasing values rotates clockwise.",
+ "options": [
+ {
+ "name": "0 degrees",
+ "class": "angle0"
+ },
+ {
+ "name": "45 degrees",
+ "class": "angle45"
+ },
+ {
+ "name": "90 degrees",
+ "class": "angle90"
+ }
+ ]
+ },
+ {
+ "name": "Opacity",
+ "type": "Dropdown",
+ "description": "Sets the opacity of the element.",
+ "options": [
+ {
+ "name": "25%",
+ "class": "opacity25"
+ },
+ {
+ "name": "50%",
+ "class": "opacity50"
+ },
+ {
+ "name": "75%",
+ "class": "opacity75"
+ },
+ {
+ "name": "100%",
+ "class": "opacity100"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.native.gallery.Gallery": [
+ {
+ "name": "Spacing top",
+ "type": "Dropdown",
+ "description": "The spacing above this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerTopSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerTopMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerTopLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterTopSmaller"
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterTopMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterTopLarger"
+ }
+ ]
+ },
+ {
+ "name": "Spacing bottom",
+ "type": "Dropdown",
+ "description": "The spacing below this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerBottomSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerBottomMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerBottomLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterBottomSmaller"
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterBottomMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterBottomLarger"
+ }
+ ]
+ },
+ {
+ "name": "Spacing left",
+ "type": "Dropdown",
+ "description": "The spacing to the left of this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerLeftSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerLeftMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerLeftLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterLeftSmaller"
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterLeftMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterLeftLarger"
+ }
+ ]
+ },
+ {
+ "name": "Spacing right",
+ "type": "Dropdown",
+ "description": "The spacing to the right of this element.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "spacingInnerRightSmaller"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacingInnerRightMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacingInnerRightLarger"
+ },
+ {
+ "name": "Outer small",
+ "class": "spacingOuterRightSmaller"
+ },
+ {
+ "name": "Outer medium",
+ "class": "spacingOuterRightMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "spacingOuterRightLarger"
+ }
+ ]
+ },
+ {
+ "name": "Background color",
+ "type": "Dropdown",
+ "description": "Change the background color of the container.",
+ "options": [
+ {
+ "name": "Background Primary",
+ "oldNames": ["Primary"],
+ "class": "backgroundPrimary"
+ },
+ {
+ "name": "Background Secondary",
+ "oldNames": ["Gray", "Secondary"],
+ "class": "backgroundSecondary"
+ },
+ {
+ "name": "Brand Primary",
+ "class": "backgroundBrandPrimary"
+ },
+ {
+ "name": "Brand Success",
+ "class": "backgroundBrandSuccess"
+ },
+ {
+ "name": "Brand Warning",
+ "class": "backgroundBrandWarning"
+ },
+ {
+ "name": "Brand Danger",
+ "class": "backgroundBrandDanger"
+ },
+ {
+ "name": "Brand Info",
+ "class": "backgroundBrandInfo"
+ }
+ ]
+ },
+ {
+ "name": "Size",
+ "type": "Dropdown",
+ "description": "Change the size of the widget relative to its sibling(s).",
+ "options": [
+ {
+ "name": "Maximum space",
+ "class": "flexMain"
+ },
+ {
+ "name": "Minimum space",
+ "class": "flexItem"
+ }
+ ]
+ },
+ {
+ "name": "Align",
+ "type": "Dropdown",
+ "description": "Aligns the element. This overrides 'Align children' of the parent.",
+ "options": [
+ {
+ "name": "Start",
+ "class": "alignSelfStart"
+ },
+ {
+ "name": "Center",
+ "class": "alignSelfCenter"
+ },
+ {
+ "name": "End",
+ "class": "alignSelfEnd"
+ },
+ {
+ "name": "Stretch",
+ "class": "alignSelfStretch"
+ },
+ {
+ "name": "Baseline",
+ "class": "alignSelfBaseline"
+ }
+ ]
+ },
+ {
+ "name": "Render children horizontal",
+ "type": "Toggle",
+ "description": "Determines the direction in which children are rendered.",
+ "class": "galleryGridFlexRow"
+ },
+ {
+ "name": "Wrap children",
+ "type": "Toggle",
+ "description": "Determines if children can flow into multiple lines if they hit the end of the container.",
+ "class": "galleryGridFlexWrap"
+ },
+ {
+ "name": "Align children",
+ "type": "Dropdown",
+ "description": "Align children in the opposite direction.",
+ "options": [
+ {
+ "name": "Start",
+ "class": "galleryGridAlignSelfStart"
+ },
+ {
+ "name": "Center",
+ "class": "galleryGridAlignSelfCenter"
+ },
+ {
+ "name": "End",
+ "class": "galleryGridAlignSelfEnd"
+ },
+ {
+ "name": "Stretch",
+ "class": "galleryGridAlignSelfStretch"
+ },
+ {
+ "name": "Baseline",
+ "class": "galleryGridAlignSelfBaseline"
+ }
+ ]
+ },
+ {
+ "name": "Justify content",
+ "type": "Dropdown",
+ "description": "Justify content in the active direction.",
+ "options": [
+ {
+ "name": "Start",
+ "class": "galleryGridJustifyContentStart"
+ },
+ {
+ "name": "Center",
+ "class": "galleryGridJustifyContentCenter"
+ },
+ {
+ "name": "End",
+ "class": "galleryGridJustifyContentEnd"
+ },
+ {
+ "name": "Space between",
+ "class": "galleryGridJustifyContentSpaceBetween"
+ },
+ {
+ "name": "Space around",
+ "class": "galleryGridJustifyContentSpaceAround"
+ },
+ {
+ "name": "Space evenly",
+ "class": "galleryGridJustifyContentSpaceEvenly"
+ }
+ ]
+ },
+ {
+ "name": "Justify load more button",
+ "type": "Dropdown",
+ "description": "Justify the load more button in the active direction.",
+ "options": [
+ {
+ "name": "Left",
+ "class": "justifyPaginationLeft"
+ },
+ {
+ "name": "Center",
+ "class": "justifyPaginationCenter"
+ },
+ {
+ "name": "Right",
+ "class": "justifyPaginationRight"
+ }
+ ]
+ },
+ {
+ "name": "Load more button style",
+ "type": "Dropdown",
+ "description": "Style of the Load more button.",
+ "options": [
+ {
+ "name": "Secondary",
+ "class": "loadMoreButtonBackgroundSecondary"
+ },
+ {
+ "name": "Success",
+ "class": "loadMoreButtonBackgroundSuccess"
+ },
+ {
+ "name": "Warning",
+ "class": "loadMoreButtonBackgroundWarning"
+ },
+ {
+ "name": "Danger",
+ "class": "loadMoreButtonBackgroundDanger"
+ }
+ ]
+ },
+ {
+ "name": "Load more button size",
+ "type": "Dropdown",
+ "description": "Style of the Load more button.",
+ "options": [
+ {
+ "name": "Fixed size",
+ "class": "loadMoreButtonFixedSize"
+ }
+ ]
+ },
+ {
+ "name": "List item divider",
+ "type": "Dropdown",
+ "description": "Give each list item a border.",
+ "options": [
+ {
+ "name": "Vertical",
+ "class": "listItemBorderHorizontal"
+ },
+ {
+ "name": "Horizontal",
+ "class": "listItemBorderVertical"
+ },
+ {
+ "name": "Both",
+ "class": "listItemBorder"
+ }
+ ]
+ },
+ {
+ "name": "Grid gap",
+ "type": "Dropdown",
+ "description": "The spacing around the list items.",
+ "options": [
+ {
+ "name": "Inner small",
+ "class": "gridGapInnerSmall"
+ },
+ {
+ "name": "Inner medium",
+ "class": "gridGapInnerMedium"
+ },
+ {
+ "name": "Inner large",
+ "class": "gridGapInnerLarge"
+ },
+ {
+ "name": "Outer small",
+ "class": "gridGapOuterSmall"
+ },
+ {
+ "name": "Outer medium",
+ "class": "gridGapOuterMedium"
+ },
+ {
+ "name": "Outer large",
+ "class": "gridGapOuterLarge"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.native.gallerytextfilter.GalleryTextFilter": [
+ {
+ "name": "Spacing top",
+ "type": "Dropdown",
+ "description": "The spacing above this element.",
+ "options": [
+ {
+ "name": "Smallest",
+ "class": "galleryTextFilterSpacingOuterTopSmallest"
+ },
+ {
+ "name": "Smaller",
+ "class": "galleryTextFilterSpacingOuterTopSmaller"
+ },
+ {
+ "name": "Small",
+ "class": "galleryTextFilterSpacingOuterTopSmall"
+ },
+ {
+ "name": "Medium",
+ "class": "galleryTextFilterSpacingOuterTopMedium"
+ },
+ {
+ "name": "Large",
+ "class": "galleryTextFilterSpacingOuterTopLarge"
+ },
+ {
+ "name": "Larger",
+ "class": "galleryTextFilterSpacingOuterTopLarger"
+ },
+ {
+ "name": "Largest",
+ "class": "galleryTextFilterSpacingOuterTopLargest"
+ }
+ ]
+ },
+ {
+ "name": "Spacing bottom",
+ "type": "Dropdown",
+ "description": "The spacing below this element.",
+ "options": [
+ {
+ "name": "Smallest",
+ "class": "galleryTextFilterSpacingOuterBottomSmallest"
+ },
+ {
+ "name": "Smaller",
+ "class": "galleryTextFilterSpacingOuterBottomSmaller"
+ },
+ {
+ "name": "Small",
+ "class": "galleryTextFilterSpacingOuterBottomSmall"
+ },
+ {
+ "name": "Medium",
+ "class": "galleryTextFilterSpacingOuterBottomMedium"
+ },
+ {
+ "name": "Large",
+ "class": "galleryTextFilterSpacingOuterBottomLarge"
+ },
+ {
+ "name": "Larger",
+ "class": "galleryTextFilterSpacingOuterBottomLarger"
+ },
+ {
+ "name": "Largest",
+ "class": "galleryTextFilterSpacingOuterBottomLargest"
+ }
+ ]
+ },
+ {
+ "name": "Spacing left",
+ "type": "Dropdown",
+ "description": "The spacing to the left of this element.",
+ "options": [
+ {
+ "name": "Smallest",
+ "class": "galleryTextFilterSpacingOuterLeftSmallest"
+ },
+ {
+ "name": "Smaller",
+ "class": "galleryTextFilterSpacingOuterLeftSmaller"
+ },
+ {
+ "name": "Small",
+ "class": "galleryTextFilterSpacingOuterLeftSmall"
+ },
+ {
+ "name": "Medium",
+ "class": "galleryTextFilterSpacingOuterLeftMedium"
+ },
+ {
+ "name": "Large",
+ "class": "galleryTextFilterSpacingOuterLeftLarge"
+ },
+ {
+ "name": "Larger",
+ "class": "galleryTextFilterSpacingOuterLeftLarger"
+ },
+ {
+ "name": "Largest",
+ "class": "galleryTextFilterSpacingOuterLeftLargest"
+ }
+ ]
+ },
+ {
+ "name": "Spacing right",
+ "type": "Dropdown",
+ "description": "The spacing to the right of this element.",
+ "options": [
+ {
+ "name": "Smallest",
+ "class": "galleryTextFilterSpacingOuterRightSmallest"
+ },
+ {
+ "name": "Smaller",
+ "class": "galleryTextFilterSpacingOuterRightSmaller"
+ },
+ {
+ "name": "Small",
+ "class": "galleryTextFilterSpacingOuterRightSmall"
+ },
+ {
+ "name": "Medium",
+ "class": "galleryTextFilterSpacingOuterRightMedium"
+ },
+ {
+ "name": "Large",
+ "class": "galleryTextFilterSpacingOuterRightLarge"
+ },
+ {
+ "name": "Larger",
+ "class": "galleryTextFilterSpacingOuterRightLarger"
+ },
+ {
+ "name": "Largest",
+ "class": "galleryTextFilterSpacingOuterRightLargest"
+ }
+ ]
+ }
+ ]
+}
diff --git a/themesource/atlas_core/native/layouts/layout.js b/themesource/atlas_core/native/layouts/layout.js
new file mode 100644
index 00000000..dc2b6e11
--- /dev/null
+++ b/themesource/atlas_core/native/layouts/layout.js
@@ -0,0 +1,67 @@
+import { NativeModules } from "react-native";
+import { darkMode } from "../../../../theme/native/custom-variables";
+import { background, font, navigation } from "../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Sidebar / Statusbar / Header
+
+ Default Class For Mendix Sidebar, Statusbar and Header
+========================================================================== */
+// backgroundColor of the native iOS statusbar can not be changed.
+// To fix this we change the barStyle of the statusbar if OS theme is dark and app theme is light (And the other way around).
+const isOSDarkMode = NativeModules &&
+ NativeModules.RNDarkMode &&
+ NativeModules.RNDarkMode.initialMode &&
+ NativeModules.RNDarkMode.initialMode === "dark";
+const statusBarStyle = !darkMode && isOSDarkMode
+ ? "dark-content"
+ : darkMode && !isOSDarkMode
+ ? "light-content"
+ : navigation.statusBar.barStyle;
+//
+export const Layout = {
+ sidebar: {
+ // All ViewStyle properties are allowed
+ },
+ statusBar: {
+ // Only backgroundColor and barStyle are allowed
+ backgroundColor: navigation.statusBar.backgroundColor,
+ barStyle: statusBarStyle
+ },
+ header: {
+ container: {
+ // All ViewStyle properties are allowed
+ backgroundColor: navigation.topBar.backgroundColor,
+ elevation: 0,
+ shadowOpacity: 0,
+ shadowOffset: undefined,
+ borderBottomWidth: undefined
+ },
+ title: {
+ // All TextStyle properties are allowed
+ color: navigation.topBar.titleColor,
+ fontSize: navigation.topBar.titleFontSize,
+ fontFamily: font.family,
+ fontWeight: font.weightBold
+ },
+ backButtonText: {
+ // All TextStyle properties are allowed
+ color: navigation.topBar.backButtonColor,
+ fontFamily: font.family
+ },
+ backButtonIcon: {
+ // All ImageStyle properties are allowed
+ tintColor: navigation.topBar.backButtonColor
+ }
+ },
+ container: {
+ // All ViewStyle properties are allowed
+ backgroundColor: background.primary
+ }
+};
diff --git a/themesource/atlas_core/native/layouts/page.js b/themesource/atlas_core/native/layouts/page.js
new file mode 100644
index 00000000..71c6e92a
--- /dev/null
+++ b/themesource/atlas_core/native/layouts/page.js
@@ -0,0 +1,53 @@
+import { background, font, navigation } from "../variables";
+/*
+
+DISCLAIMER:
+Do not change this file because it is core styling.
+Customizing core files will make updating Atlas much more difficult in the future.
+To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten.
+
+==========================================================================
+ Page
+
+ Default Class For Mendix Page
+========================================================================== */
+export const Page = {
+ sidebar: {
+ // All ViewStyle properties are allowed
+ },
+ statusBar: {
+ // Only backgroundColor and barStyle are allowed
+ backgroundColor: navigation.statusBar.backgroundColor,
+ barStyle: navigation.statusBar.barStyle
+ },
+ header: {
+ container: {
+ // All ViewStyle properties are allowed
+ backgroundColor: navigation.topBar.backgroundColor,
+ elevation: 0,
+ shadowOpacity: 0,
+ shadowOffset: undefined,
+ borderBottomWidth: undefined
+ },
+ title: {
+ // All TextStyle properties are allowed
+ color: navigation.topBar.titleColor,
+ fontSize: navigation.topBar.titleFontSize,
+ fontFamily: font.family,
+ fontWeight: font.weightBold
+ },
+ backButtonText: {
+ // All TextStyle properties are allowed
+ color: navigation.topBar.backButtonColor,
+ fontFamily: font.family
+ },
+ backButtonIcon: {
+ // All ImageStyle properties are allowed
+ tintColor: navigation.topBar.backButtonColor
+ }
+ },
+ container: {
+ // All ViewStyle properties are allowed
+ backgroundColor: background.primary
+ }
+};
diff --git a/themesource/atlas_core/native/main.js b/themesource/atlas_core/native/main.js
new file mode 100644
index 00000000..770045b8
--- /dev/null
+++ b/themesource/atlas_core/native/main.js
@@ -0,0 +1,184 @@
+import * as exclusionVariables from "../../../theme/native/exclusion-variables";
+// ================================== CORE ==================================\\
+//
+//
+// Base
+import * as flex from "./core/base/flex";
+import * as spacing from "./core/base/spacing";
+//
+//
+// Components
+import * as widgetsAccordion from "./core/widgets/accordion";
+import * as helpersAccordion from "./core/helpers/accordion";
+import * as widgetsActivityIndicator from "./core/widgets/activityindicator";
+import * as helpersActivityIndicator from "./core/helpers/activityindicator";
+import * as widgetsAnimation from "./core/widgets/animation";
+import * as widgetsBackgroundImage from "./core/widgets/backgroundimage";
+import * as widgetsBadge from "./core/widgets/badge";
+import * as helpersBadge from "./core/helpers/badge";
+import * as widgetsBottomSheet from "./core/widgets/bottomsheet";
+import * as widgetsButtons from "./core/widgets/buttons";
+import * as helpersButtons from "./core/helpers/buttons";
+import * as widgetsCarousel from "./core/widgets/carousel";
+import * as widgetsCheckBox from "./core/widgets/checkbox";
+import * as widgetsColorPicker from "./core/widgets/colorpicker";
+import * as widgetsContainer from "./core/widgets/container";
+import * as widgetsDatePicker from "./core/widgets/datepicker";
+import * as widgetsDropDown from "./core/widgets/dropdown";
+import * as widgetsFeedback from "./core/widgets/feedback";
+import * as widgetsFloatingActionButton from "./core/widgets/floatingactionbutton";
+import * as helpersFloatingActionButton from "./core/helpers/floatingactionbutton";
+import * as widgetsImage from "./core/widgets/image";
+import * as helpersImage from "./core/helpers/image";
+import * as widgetsIntroScreen from "./core/widgets/introscreen";
+import * as helpersIntroScreen from "./core/helpers/introscreen";
+import * as widgetsLayoutGrid from "./core/widgets/layoutgrid";
+import * as widgetsLineChart from "./core/widgets/linechart";
+import * as helpersLineChart from "./core/helpers/linechart";
+import * as widgetsBarChart from "./core/widgets/barchart";
+import * as helpersBarChart from "./core/helpers/barchart";
+import * as widgetsListView from "./core/widgets/listview";
+import * as helpersListView from "./core/helpers/listview";
+import * as widgetsListViewSwipe from "./core/widgets/listviewswipe";
+import * as helpersListViewSwipe from "./core/helpers/listviewswipe";
+import * as widgetsMaps from "./core/widgets/maps";
+import * as helpersMaps from "./core/helpers/maps";
+import * as widgetsNavigation from "./core/widgets/navigation";
+import * as widgetsPageTitle from "./core/widgets/pagetitle";
+import * as widgetsPieDoughnutChart from "./core/widgets/piedoughnutchart";
+import * as widgetsProgressBar from "./core/widgets/progressbar";
+import * as helpersProgressBar from "./core/helpers/progressbar";
+import * as widgetsProgressCircle from "./core/widgets/progresscircle";
+import * as helpersProgressCircle from "./core/helpers/progresscircle";
+import * as widgetsPopUpMenu from "./core/widgets/popupmenu";
+import * as widgetsQRCode from "./core/widgets/qrcode";
+import * as widgetsRangeSlider from "./core/widgets/rangeslider";
+import * as helpersRangeSlider from "./core/helpers/rangeslider";
+import * as widgetsRating from "./core/widgets/rating";
+import * as widgetsReferenceSelector from "./core/widgets/referenceselector";
+import * as widgetsSafeAreaView from "./core/widgets/safeareaview";
+import * as widgetsSlider from "./core/widgets/slider";
+import * as helpersSlider from "./core/helpers/slider";
+import * as widgetsSwitch from "./core/widgets/switch";
+import * as helpersSwitch from "./core/helpers/switch";
+import * as widgetsTabContainer from "./core/widgets/tabcontainer";
+import * as helpersTabContainer from "./core/helpers/tabcontainer";
+import * as widgetsTextArea from "./core/widgets/textarea";
+import * as widgetsTextBox from "./core/widgets/textbox";
+import * as helpersTextBox from "./core/helpers/textbox";
+import * as widgetsToggleButtons from "./core/widgets/togglebuttons";
+import * as widgetsTypography from "./core/widgets/typography";
+import * as helpersTypography from "./core/helpers/typography";
+import * as widgetsVideoPlayer from "./core/widgets/videoplayer";
+import * as widgetsWebView from "./core/widgets/webview";
+import * as helperClasses from "./core/helpers/helperclasses";
+import * as radioButtons from "./core/widgets/radiobuttons";
+import * as helperRadioButtons from "./core/helpers/radiobuttons";
+import * as backgroundGradient from "./core/widgets/backgroundgradient";
+import * as helperBackgroundGradient from "./core/helpers/backgroundgradient";
+import * as widgetsColumnChart from "./core/widgets/columnchart";
+import * as helpersColumnChart from "./core/helpers/columnchart";
+import * as widgetsGallery from "./core/widgets/gallery";
+import * as helpersGallery from "./core/helpers/gallery";
+import * as widgetsGalleryTextFilter from "./core/widgets/gallerytextfilter";
+import * as helpersGalleryTextFilter from "./core/helpers/gallerytextfilter";
+//
+//
+// ================================= CUSTOM =================================\\
+//
+//
+// Layouts
+import * as layout from "./layouts/layout";
+import * as page from "./layouts/page";
+module.exports = [
+ flex,
+ spacing,
+ !exclusionVariables.excludeAccordion ? widgetsAccordion : {},
+ !exclusionVariables.excludeAccordion && !exclusionVariables.excludeAccordionHelpers ? helpersAccordion : {},
+ !exclusionVariables.excludeActivityIndicator ? widgetsActivityIndicator : {},
+ !exclusionVariables.excludeActivityIndicator && !exclusionVariables.excludeActivityIndicatorHelpers
+ ? helpersActivityIndicator
+ : {},
+ !exclusionVariables.excludeAnimation ? widgetsAnimation : {},
+ !exclusionVariables.excludeBackgroundImage ? widgetsBackgroundImage : {},
+ !exclusionVariables.excludeBadge ? widgetsBadge : {},
+ !exclusionVariables.excludeBadge && !exclusionVariables.excludeBadgeHelpers ? helpersBadge : {},
+ !exclusionVariables.excludeBottomSheet ? widgetsBottomSheet : {},
+ !exclusionVariables.excludeButtons ? widgetsButtons : {},
+ !exclusionVariables.excludeButtons && !exclusionVariables.excludeButtonsHelpers ? helpersButtons : {},
+ !exclusionVariables.excludeCarousel ? widgetsCarousel : {},
+ !exclusionVariables.excludeCheckBox ? widgetsCheckBox : {},
+ !exclusionVariables.excludeColorPicker ? widgetsColorPicker : {},
+ !exclusionVariables.excludeContainer ? widgetsContainer : {},
+ !exclusionVariables.excludeDatePicker ? widgetsDatePicker : {},
+ !exclusionVariables.excludeDropDown ? widgetsDropDown : {},
+ !exclusionVariables.excludeFeedback ? widgetsFeedback : {},
+ !exclusionVariables.excludeFAB ? widgetsFloatingActionButton : {},
+ !exclusionVariables.excludeFAB && !exclusionVariables.excludeFABHelpers ? helpersFloatingActionButton : {},
+ !exclusionVariables.excludeImage ? widgetsImage : {},
+ !exclusionVariables.excludeImage && !exclusionVariables.excludeImageHelpers ? helpersImage : {},
+ !exclusionVariables.excludeIntroScreen ? widgetsIntroScreen : {},
+ !exclusionVariables.excludeIntroScreen && !exclusionVariables.excludeIntroScreenHelpers ? helpersIntroScreen : {},
+ !exclusionVariables.excludeLayoutGrid ? widgetsLayoutGrid : {},
+ !exclusionVariables.excludeLineChart ? widgetsLineChart : {},
+ !exclusionVariables.excludeLineChart && !exclusionVariables.excludeLineChartHelpers ? helpersLineChart : {},
+ !exclusionVariables.excludeBarChart ? widgetsBarChart : {},
+ !exclusionVariables.excludeBarChart && !exclusionVariables.excludeBarChartHelpers ? helpersBarChart : {},
+ !exclusionVariables.excludeListView ? widgetsListView : {},
+ !exclusionVariables.excludeListView && !exclusionVariables.excludeListViewHelpers ? helpersListView : {},
+ !exclusionVariables.excludeListViewSwipe ? widgetsListViewSwipe : {},
+ !exclusionVariables.excludeListViewSwipe && !exclusionVariables.excludeListViewSwipeHelpers
+ ? helpersListViewSwipe
+ : {},
+ !exclusionVariables.excludeMaps ? widgetsMaps : {},
+ !exclusionVariables.excludeMaps && !exclusionVariables.excludeMapsHelpers ? helpersMaps : {},
+ widgetsNavigation,
+ !exclusionVariables.excludePageTitle ? widgetsPageTitle : {},
+ !exclusionVariables.excludePieDoughnutChart ? widgetsPieDoughnutChart : {},
+ !exclusionVariables.excludeProgressBar ? widgetsProgressBar : {},
+ !exclusionVariables.excludeProgressBar && !exclusionVariables.excludeProgressBarHelpers ? helpersProgressBar : {},
+ !exclusionVariables.excludeProgressCircle ? widgetsProgressCircle : {},
+ !exclusionVariables.excludeProgressCircle && !exclusionVariables.excludeProgressCircleHelpers
+ ? helpersProgressCircle
+ : {},
+ !exclusionVariables.excludePopUpMenu ? widgetsPopUpMenu : {},
+ !exclusionVariables.excludeQRCode ? widgetsQRCode : {},
+ !exclusionVariables.excludeRangeSlider ? widgetsRangeSlider : {},
+ !exclusionVariables.excludeRangeSlider && !exclusionVariables.excludeRangeSliderHelpers ? helpersRangeSlider : {},
+ !exclusionVariables.excludeRating ? widgetsRating : {},
+ !exclusionVariables.excludeReferenceSelector ? widgetsReferenceSelector : {},
+ !exclusionVariables.excludeSafeAreaView ? widgetsSafeAreaView : {},
+ !exclusionVariables.excludeSlider ? widgetsSlider : {},
+ !exclusionVariables.excludeSlider && !exclusionVariables.excludeSliderHelpers ? helpersSlider : {},
+ !exclusionVariables.excludeSwitch ? widgetsSwitch : {},
+ !exclusionVariables.excludeSwitch && !exclusionVariables.excludeSwitchHelpers ? helpersSwitch : {},
+ !exclusionVariables.excludeTabContainer ? widgetsTabContainer : {},
+ !exclusionVariables.excludeTabContainer && !exclusionVariables.excludeTabContainerHelpers
+ ? helpersTabContainer
+ : {},
+ !exclusionVariables.excludeTextArea ? widgetsTextArea : {},
+ !exclusionVariables.excludeTextBox ? widgetsTextBox : {},
+ !exclusionVariables.excludeTextBox && !exclusionVariables.excludeTextBoxHelpers ? helpersTextBox : {},
+ !exclusionVariables.excludeToggleButtons ? widgetsToggleButtons : {},
+ !exclusionVariables.excludeTypography ? widgetsTypography : {},
+ !exclusionVariables.excludeTypography && !exclusionVariables.excludeTypographyHelpers ? helpersTypography : {},
+ !exclusionVariables.excludeVideoPlayer ? widgetsVideoPlayer : {},
+ !exclusionVariables.excludeWebView ? widgetsWebView : {},
+ !exclusionVariables.excludeHelpers ? helperClasses : {},
+ !exclusionVariables.excludeRadioButtons ? radioButtons : {},
+ !exclusionVariables.excludeRadioButtons && !exclusionVariables.excludeRadioButtonsHelper ? helperRadioButtons : {},
+ !exclusionVariables.excludeBackgroundGradient ? backgroundGradient : {},
+ !exclusionVariables.excludeBackgroundGradient && !exclusionVariables.excludeBackgroundGradientHelper
+ ? helperBackgroundGradient
+ : {},
+ !exclusionVariables.excludeColumnChart ? widgetsColumnChart : {},
+ !exclusionVariables.excludeColumnChart && !exclusionVariables.excludeColumnChartHelper ? helpersColumnChart : {},
+ !exclusionVariables.excludeGallery ? widgetsGallery : {},
+ !exclusionVariables.excludeGallery && !exclusionVariables.excludeGalleryHelper ? helpersGallery : {},
+ !exclusionVariables.excludeGalleryTextFilter ? widgetsGalleryTextFilter : {},
+ !exclusionVariables.excludeGalleryTextFilter && !exclusionVariables.excludeGalleryTextFilterHelper
+ ? helpersGalleryTextFilter
+ : {},
+ layout,
+ page
+].reduce((merged, object) => ({ ...merged, ...object }), {});
diff --git a/themesource/atlas_core/native/variables.js b/themesource/atlas_core/native/variables.js
new file mode 100644
index 00000000..3d58bd5b
--- /dev/null
+++ b/themesource/atlas_core/native/variables.js
@@ -0,0 +1,759 @@
+import { Platform } from "react-native";
+import * as custom from "../../../theme/native/custom-variables";
+import adjustFont, { height, width } from "./core/helpers/_functions/adjustfont";
+import { anyColorToRgbString, setContrastScale } from "./core/helpers/_functions/convertcolors";
+import merge from "./core/helpers/_functions/mergeobjects";
+//
+//
+// == Global variables
+// ## Variables to be used during styling
+// -------------------------------------------------------------------------------------------------------------------//
+// System defined read-only values
+export const deviceHeight = height;
+export const deviceWidth = width;
+//
+// Brand Style
+let brand = {
+ primary: "#264AE5",
+ success: "#3CB33D",
+ warning: "#ECA51C",
+ danger: "#E33F4E",
+ info: "#0086D9",
+ primaryLight: "#F3F5FF",
+ successLight: "#F1FCF1",
+ warningLight: "#FFF9E6",
+ dangerLight: "#FFEEF0",
+ infoLight: "#ECF9FF"
+};
+brand = merge(brand, custom.brand || {});
+//
+// Background colors
+const backgroundDefaults = {
+ primaryLight: "#FFF",
+ primaryDark: "#0A1325",
+ secondaryLight: "#F8F8F8",
+ secondaryDark: "#161F30"
+};
+let background = {
+ primary: custom.darkMode ? backgroundDefaults.primaryDark : backgroundDefaults.primaryLight,
+ secondary: custom.darkMode ? backgroundDefaults.secondaryDark : backgroundDefaults.secondaryLight,
+ brandPrimary: brand.primary,
+ brandSuccess: brand.success,
+ brandWarning: brand.warning,
+ brandDanger: brand.danger,
+ brandInfo: brand.info
+};
+background = merge(background, custom.background || {});
+//
+// Contrast (Gray) colors based on background.primary
+let contrast = {
+ highest: setContrastScale(0.95, background.primary),
+ higher: setContrastScale(0.8, background.primary),
+ high: setContrastScale(0.65, background.primary),
+ regular: setContrastScale(0.5, background.primary),
+ low: setContrastScale(0.35, background.primary),
+ lower: setContrastScale(0.2, background.primary),
+ lowest: setContrastScale(0.05, background.primary)
+};
+contrast = merge(contrast, custom.contrast || {});
+//
+// Border Style
+let border = {
+ color: custom.darkMode ? "#3B4251" : "#CED0D3",
+ width: 1,
+ radiusSmall: 4,
+ radiusLarge: 8,
+ radiusLargest: 9999
+};
+border = merge(border, custom.border || {});
+//
+// Font Styles
+const fontDefaults = {
+ colorTitleDark: "#0A1326",
+ colorTitleLight: "#FDFDFD",
+ colorParagraphDark: "#6C717E",
+ colorParagraphLight: "#E7E7E9",
+ colorDisabledDark: "#9DA1A8",
+ colorDisabledLight: "#9DA1A8"
+};
+let font = {
+ size: adjustFont(14),
+ sizeSmallest: adjustFont(10),
+ sizeSmall: adjustFont(12),
+ sizeLarge: adjustFont(16),
+ sizeLargest: adjustFont(18),
+ sizeH1: adjustFont(40),
+ sizeH2: adjustFont(34),
+ sizeH3: adjustFont(28),
+ sizeH4: adjustFont(24),
+ sizeH5: adjustFont(20),
+ sizeH6: adjustFont(16),
+ lineHeight: adjustFont(14) * 1.5,
+ lineHeightSmallest: adjustFont(10) * 1.5,
+ lineHeightSmall: adjustFont(12) * 1.5,
+ lineHeightLarge: adjustFont(16) * 1.5,
+ lineHeightLargest: adjustFont(18) * 1.5,
+ lineHeightH1: adjustFont(40) * 1.5,
+ lineHeightH2: adjustFont(34) * 1.5,
+ lineHeightH3: adjustFont(28) * 1.5,
+ lineHeightH4: adjustFont(24) * 1.5,
+ lineHeightH5: adjustFont(20) * 1.5,
+ lineHeightH6: adjustFont(16) * 1.5,
+ colorTitle: custom.darkMode ? fontDefaults.colorTitleLight : fontDefaults.colorTitleDark,
+ colorParagraph: custom.darkMode ? fontDefaults.colorParagraphLight : fontDefaults.colorParagraphDark,
+ colorDisabled: custom.darkMode ? fontDefaults.colorDisabledLight : fontDefaults.colorDisabledDark,
+ weightLight: "100",
+ weightNormal: "normal",
+ weightSemiBold: "600",
+ weightBold: "bold",
+ family: Platform.select({ ios: "System", android: "normal" })
+};
+font = merge(font, custom.font || {});
+//
+// Spacing
+let spacing = {
+ smallest: 2,
+ smaller: 4,
+ small: 8,
+ regular: 16,
+ large: 24,
+ larger: 32,
+ largest: 40
+};
+spacing = merge(spacing, custom.spacing || {});
+//
+// Button Styles
+let button = {
+ // Start default styles
+ container: {
+ rippleColor: contrast.lowest,
+ borderRadius: border.radiusLarge,
+ minWidth: 48,
+ minHeight: 48,
+ paddingVertical: spacing.small,
+ paddingHorizontal: spacing.small
+ },
+ containerDisabled: {
+ borderColor: border.color,
+ backgroundColor: border.color
+ },
+ icon: {
+ size: font.sizeSmall
+ },
+ iconDisabled: {
+ color: font.colorDisabled
+ },
+ caption: {
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightBold
+ },
+ captionDisabled: {
+ color: font.colorDisabled
+ },
+ // End default styles
+ header: {
+ color: contrast.highest,
+ borderColor: "transparent",
+ backgroundColor: "transparent",
+ fontSize: font.sizeSmall,
+ fontSizeIcon: font.sizeSmall,
+ paddingLeft: 0,
+ paddingRight: 10
+ },
+ primary: {
+ color: "#FFF",
+ borderColor: brand.primary,
+ backgroundColor: brand.primary
+ },
+ secondary: {
+ color: brand.primary,
+ borderColor: brand.primary,
+ backgroundColor: "transparent",
+ inversedColor: "#FFF"
+ },
+ success: {
+ color: "#FFF",
+ borderColor: brand.success,
+ backgroundColor: brand.success
+ },
+ warning: {
+ color: "#FFF",
+ borderColor: brand.warning,
+ backgroundColor: brand.warning
+ },
+ danger: {
+ color: "#FFF",
+ borderColor: brand.danger,
+ backgroundColor: brand.danger
+ }
+};
+button = merge(button, custom.button || {});
+//
+// Input Styles
+let input = {
+ label: {
+ numberOfLines: 1,
+ color: font.colorTitle,
+ fontSize: font.sizeSmall,
+ textAlign: "left"
+ },
+ labelDisabled: {
+ color: font.colorTitle
+ },
+ input: {
+ color: font.colorTitle,
+ borderColor: contrast.lower,
+ backgroundColor: background.primary,
+ selectionColor: contrast.lower,
+ placeholderTextColor: contrast.low,
+ fontSize: font.size,
+ lineHeight: font.lineHeight,
+ borderWidth: border.width,
+ borderRadius: border.radiusLarge,
+ minWidth: 48,
+ minHeight: 48,
+ paddingVertical: spacing.small,
+ paddingHorizontal: spacing.small
+ },
+ inputContainer: {
+ underlayColor: `rgba(${anyColorToRgbString(contrast.low)},0.4)`
+ },
+ inputDisabled: {
+ color: font.colorDisabled,
+ borderColor: border.color,
+ backgroundColor: background.secondary
+ },
+ inputError: {
+ color: brand.danger,
+ borderColor: brand.danger,
+ placeholderTextColor: brand.danger,
+ backgroundColor: brand.dangerLight
+ },
+ validationMessage: {
+ color: brand.danger,
+ fontSize: font.size
+ },
+ // Only used for the DropDown & ReferenceSelector
+ valueContainer: {
+ rippleColor: contrast.lowest
+ },
+ itemContainer: {
+ paddingVertical: 12,
+ paddingHorizontal: spacing.regular,
+ backgroundColor: background.primary
+ },
+ item: {
+ color: font.colorTitle,
+ fontSize: font.size
+ },
+ selectedItemContainer: {
+ borderWidth: border.width,
+ borderRadius: border.radiusLarge,
+ borderColor: brand.primary,
+ backgroundColor: "transparent"
+ },
+ selectedItem: {
+ color: font.colorTitle,
+ fontSize: font.size
+ }
+};
+input = merge(input, custom.input || {});
+//
+// Image Styles
+let image = {
+ image: {
+ small: 24,
+ medium: 40,
+ large: 56,
+ larger: 72
+ },
+ imageDisabled: {
+ opacity: 0.6
+ },
+ icon: 16
+};
+image = merge(image, custom.image || {});
+//
+// Navigation Styles
+let navigation = {
+ statusBar: {
+ backgroundColor: background.primary,
+ barStyle: custom.darkMode ? "light-content" : "dark-content"
+ },
+ topBar: {
+ backgroundColor: brand.primary,
+ backButtonColor: "#FFF",
+ titleColor: "#FFF",
+ titleFontSize: font.sizeH6
+ },
+ bottomBar: {
+ color: contrast.high,
+ selectedTextColor: brand.primary,
+ selectedIconColor: brand.primary,
+ backgroundColor: background.primary,
+ fontSize: font.sizeSmall,
+ iconSize: font.sizeSmall
+ },
+ progressOverlay: {
+ color: font.colorTitle,
+ activityIndicatorColor: font.colorTitle,
+ backgroundColor: "rgba(0, 0, 0, 0.5)",
+ containerBackgroundColor: background.secondary,
+ fontSize: font.size,
+ borderRadius: border.radiusSmall,
+ elevation: 1.5,
+ shadowColor: "#000",
+ shadowOpacity: 0.1,
+ shadowRadius: 10 // Only for iOS
+ }
+};
+navigation = merge(navigation, custom.navigation || {});
+//
+// Container Styles
+let container = {
+ containerDisabled: {
+ opacity: 0.6
+ }
+};
+container = merge(container, custom.container || {});
+//
+// Accordion Styles
+let accordion = {
+ container: {
+ backgroundColor: background.primary,
+ borderColor: border.color
+ },
+ groupHeader: {
+ container: {
+ paddingVertical: spacing.regular,
+ paddingHorizontal: spacing.regular
+ },
+ heading: {
+ color: font.colorTitle
+ },
+ icon: {
+ size: font.sizeLarge,
+ color: font.colorTitle
+ }
+ },
+ groupContent: {
+ paddingTop: spacing.small,
+ paddingBottom: spacing.large,
+ paddingHorizontal: spacing.regular
+ }
+};
+accordion = merge(accordion, custom.accordion || {});
+//
+// Badge Styles
+let badge = {
+ fontWeight: font.weightNormal,
+ borderRadius: border.radiusLarge,
+ paddingVertical: spacing.smaller,
+ paddingHorizontal: spacing.small,
+ default: {
+ color: contrast.higher,
+ backgroundColor: contrast.lowest
+ },
+ primary: {
+ color: brand.primary,
+ backgroundColor: brand.primaryLight
+ },
+ success: {
+ color: brand.success,
+ backgroundColor: brand.successLight
+ },
+ warning: {
+ color: brand.warning,
+ backgroundColor: brand.warningLight
+ },
+ danger: {
+ color: brand.danger,
+ backgroundColor: brand.dangerLight
+ }
+};
+badge = merge(badge, custom.badge || {});
+//
+// Tabcontainer Styles
+let tabContainer = {
+ tabBar: {
+ pressColor: contrast.lower,
+ backgroundColor: brand.primary
+ },
+ tab: {
+ paddingVertical: 12
+ },
+ indicator: {
+ backgroundColor: fontDefaults.colorTitleLight,
+ height: Platform.select({ ios: 2, android: 2 })
+ },
+ label: {
+ color: fontDefaults.colorTitleLight,
+ fontSize: font.size,
+ fontWeight: font.weightSemiBold,
+ textTransform: "capitalize"
+ },
+ activeLabel: {
+ color: fontDefaults.colorTitleLight,
+ fontSize: font.size,
+ fontWeight: font.weightSemiBold,
+ textTransform: "capitalize"
+ },
+ badgeContainer: {
+ borderRadius: border.radiusLargest,
+ backgroundColor: badge.default.backgroundColor,
+ paddingVertical: spacing.smallest,
+ paddingHorizontal: spacing.small,
+ marginLeft: 8
+ },
+ badgeCaption: {
+ fontSize: font.size,
+ color: badge.default.color,
+ fontWeight: badge.fontWeight
+ }
+};
+tabContainer = merge(tabContainer, custom.tabContainer || {});
+//
+// Listview Styles
+let listView = {
+ listItemDisabled: {
+ opacity: 0.6
+ },
+ border: {
+ color: border.color,
+ width: border.width
+ }
+};
+listView = merge(listView, custom.listView || {});
+//
+// Checkbox Styles
+let checkbox = {
+ checkboxInput: {
+ color: brand.primary,
+ size: 20,
+ backgroundColor: background.primary,
+ borderColor: border.color,
+ borderWidth: border.width,
+ borderRadius: border.radiusSmall,
+ width: 40,
+ height: 40
+ },
+ checkboxInputDisabled: {
+ color: brand.primaryLight,
+ backgroundColor: background.secondary
+ },
+ checkboxInputError: {
+ color: brand.danger,
+ borderColor: brand.danger
+ }
+};
+checkbox = merge(checkbox, custom.checkbox || {});
+//
+// Layoutgrid Styles
+let layoutGrid = {
+ gutterSize: 16
+};
+layoutGrid = merge(layoutGrid, custom.layoutGrid || {});
+//
+//
+// Floating Action Button Styles
+let floatingActionButton = {
+ container: {
+ margin: 30
+ },
+ button: {
+ size: 50,
+ rippleColor: contrast.lowest,
+ borderColor: brand.primary,
+ backgroundColor: brand.primary
+ },
+ buttonIcon: {
+ size: font.sizeLarge,
+ color: contrast.lowest
+ },
+ secondaryButton: {
+ size: 30,
+ backgroundColor: background.secondary
+ },
+ secondaryButtonIcon: {
+ size: font.sizeSmall,
+ color: contrast.high
+ },
+ secondaryButtonCaption: {
+ color: contrast.high,
+ fontSize: font.sizeSmall
+ },
+ secondaryButtonCaptionContainer: {
+ backgroundColor: background.primary,
+ borderColor: background.primary
+ }
+};
+floatingActionButton = merge(floatingActionButton, custom.floatingActionButton || {});
+//
+// Intro Screen Styles
+let introScreen = {
+ fullscreenContainer: {
+ backgroundColor: background.primary
+ },
+ popupContainer: {
+ paddingVertical: 150,
+ paddingHorizontal: 50,
+ backgroundColor: "rgba(0, 0, 0, 0.5)"
+ },
+ pagination: {
+ text: {
+ color: font.colorTitle,
+ fontSize: font.size
+ },
+ dotStyle: {
+ size: spacing.small,
+ backgroundColor: contrast.lower
+ },
+ activeDotStyle: {
+ size: spacing.small,
+ backgroundColor: font.colorTitle
+ }
+ },
+ button: {
+ icon: {
+ color: font.colorTitle,
+ size: button.icon.size
+ },
+ caption: {
+ color: font.colorTitle,
+ fontSize: button.caption.fontSize,
+ fontWeight: font.weightBold,
+ textTransform: "uppercase",
+ paddingHorizontal: spacing.smallest
+ }
+ },
+ buttonPaginationAbove: {
+ container: {
+ paddingVertical: spacing.regular,
+ backgroundColor: button.primary.backgroundColor
+ }
+ }
+};
+introScreen = merge(introScreen, custom.introScreen || {});
+//
+// List View Swipe Styles
+let listViewSwipe = {
+ leftAction: {
+ panelSize: 160,
+ panelSizeSmall: 80,
+ panelSizeLarge: 240,
+ backgroundColor: background.primary
+ },
+ rightAction: {
+ panelSize: 160,
+ panelSizeSmall: 80,
+ panelSizeLarge: 240,
+ backgroundColor: background.primary
+ }
+};
+listViewSwipe = merge(listViewSwipe, custom.listViewSwipe || {});
+//
+// Progress Bar Styles
+let progressBar = {
+ bar: {
+ height: 8,
+ heightSmall: 4,
+ heightLarge: 12,
+ backgroundColor: contrast.lowest
+ },
+ fill: {
+ backgroundColor: brand.primary
+ }
+};
+progressBar = merge(progressBar, custom.progressBar || {});
+//
+// Progress Circle Styles
+let progressCircle = {
+ circle: {
+ size: 64
+ },
+ fill: {
+ width: 4,
+ lineCapRounded: true,
+ backgroundColor: brand.primary
+ },
+ text: {
+ color: contrast.regular,
+ fontSize: font.size,
+ fontWeight: font.weightSemiBold
+ }
+};
+progressCircle = merge(progressCircle, custom.progressCircle || {});
+//
+// Rating Styles
+let rating = {
+ containerDisabled: {
+ opacity: 0.5
+ },
+ icon: {
+ size: 24,
+ color: contrast.lower,
+ selectedColor: brand.warning
+ }
+};
+rating = merge(rating, custom.rating || {});
+//
+// (Range)Slider Styles
+let slider = {
+ track: {
+ height: 4,
+ backgroundColor: contrast.lowest
+ },
+ trackDisabled: {
+ backgroundColor: contrast.lower,
+ opacity: 0.4
+ },
+ highlight: {
+ backgroundColor: brand.primary
+ },
+ highlightDisabled: {
+ backgroundColor: brand.primary
+ },
+ marker: {
+ size: 24,
+ borderColor: contrast.lowest,
+ backgroundColor: background.secondary
+ },
+ markerActive: {
+ size: 32
+ },
+ markerDisabled: {
+ size: 24,
+ borderColor: contrast.lowest,
+ backgroundColor: background.secondary
+ }
+};
+slider = merge(slider, custom.slider || {});
+//
+// Radio Buttons
+let radioButtons = {
+ labelTextStyle: {
+ color: font.colorTitle,
+ fontSize: font.sizeSmall,
+ lineHeight: font.lineHeightSmall,
+ marginBottom: spacing.small
+ },
+ radioButtonItemContainerStyle: {
+ marginBottom: spacing.small
+ },
+ radioButtonItemContainerDisabledStyle: {
+ opacity: 0.5
+ },
+ radioButtonItemContainerHorizontalStyle: {
+ marginEnd: spacing.small
+ },
+ circularButtonStyle: {
+ width: 16,
+ height: 16,
+ borderRadius: 8,
+ borderColor: border.color,
+ marginEnd: spacing.smaller
+ },
+ activeButtonStyle: {
+ width: 8,
+ height: 8,
+ borderRadius: 4,
+ backgroundColor: brand.primary
+ },
+ radioButtonItemTitleStyle: {
+ color: font.colorTitle,
+ fontSize: font.sizeSmall,
+ lineHeight: font.lineHeightSmall
+ },
+ validationMessage: {
+ color: brand.danger,
+ fontSize: font.sizeSmall
+ }
+};
+radioButtons = merge(radioButtons, custom.radioButtons || {});
+//
+// Background Gradient
+let backgroundGradient = {
+ container: {},
+ angle: 0,
+ opacity: 100
+};
+backgroundGradient = merge(backgroundGradient, custom.backgroundGradient || {});
+// column chart styles
+let columnChart = {
+ container: {},
+ errorMessage: {
+ fontFamily: font.family,
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightNormal
+ },
+ chart: {},
+ grid: {
+ lineColor: border.color
+ },
+ xAxis: {
+ color: font.colorTitle,
+ fontFamily: font.family,
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightNormal,
+ label: {
+ color: font.colorParagraph,
+ alignSelf: "center",
+ marginHorizontal: 0,
+ marginVertical: 8,
+ fontFamily: font.family,
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightNormal
+ },
+ lineColor: border.color
+ },
+ yAxis: {
+ color: font.colorTitle,
+ fontFamily: font.family,
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightNormal,
+ label: {
+ color: font.colorParagraph,
+ marginHorizontal: 0,
+ marginVertical: 8,
+ fontFamily: font.family,
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightNormal
+ },
+ lineColor: border.color
+ },
+ columns: {
+ columnColorPalette: Object.entries(brand)
+ .reduce((accumulator, [key, value]) => (key.endsWith("Light") ? accumulator : [...accumulator, value]), [])
+ .join(";"),
+ columnsOffset: 20,
+ customColumnStyles: {
+ your_static_or_dynamic_attribute_value: {
+ column: {},
+ label: {}
+ }
+ }
+ },
+ legend: {
+ container: {
+ justifyContent: "flex-start",
+ marginHorizontal: 0,
+ marginVertical: spacing.small
+ },
+ item: {
+ padding: 0,
+ paddingRight: spacing.regular
+ },
+ indicator: {
+ marginRight: spacing.small
+ },
+ label: {
+ color: font.colorTitle,
+ fontFamily: font.family,
+ fontSize: font.sizeSmall,
+ fontWeight: font.weightNormal
+ }
+ }
+};
+columnChart = merge(columnChart, custom.columnChart || {});
+export * from "../../../theme/native/custom-variables";
+export { accordion, brand, backgroundDefaults, background, border, button, contrast, checkbox, fontDefaults, font, input, image, layoutGrid, listView, navigation, spacing, container, tabContainer, badge, floatingActionButton, introScreen, listViewSwipe, progressBar, progressCircle, slider, rating, radioButtons, backgroundGradient, columnChart };
diff --git a/themesource/atlas_core/public/resources/arrow.svg b/themesource/atlas_core/public/resources/arrow.svg
new file mode 100644
index 00000000..d289b3a6
--- /dev/null
+++ b/themesource/atlas_core/public/resources/arrow.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/themesource/atlas_core/public/resources/fonts/LICENSE.txt b/themesource/atlas_core/public/resources/fonts/LICENSE.txt
new file mode 100644
index 00000000..261eeb9e
--- /dev/null
+++ b/themesource/atlas_core/public/resources/fonts/LICENSE.txt
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/themesource/atlas_core/public/resources/fonts/OpenSans-Bold.woff b/themesource/atlas_core/public/resources/fonts/OpenSans-Bold.woff
new file mode 100644
index 00000000..fe266947
Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/OpenSans-Bold.woff differ
diff --git a/themesource/atlas_core/public/resources/fonts/OpenSans-BoldItalic.woff b/themesource/atlas_core/public/resources/fonts/OpenSans-BoldItalic.woff
new file mode 100644
index 00000000..4ff9673e
Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/OpenSans-BoldItalic.woff differ
diff --git a/themesource/atlas_core/public/resources/fonts/OpenSans-Italic.woff b/themesource/atlas_core/public/resources/fonts/OpenSans-Italic.woff
new file mode 100644
index 00000000..d54cc24d
Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/OpenSans-Italic.woff differ
diff --git a/themesource/atlas_core/public/resources/fonts/OpenSans-Light.woff b/themesource/atlas_core/public/resources/fonts/OpenSans-Light.woff
new file mode 100644
index 00000000..a823caa8
Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/OpenSans-Light.woff differ
diff --git a/themesource/atlas_core/public/resources/fonts/OpenSans-LightItalic.woff b/themesource/atlas_core/public/resources/fonts/OpenSans-LightItalic.woff
new file mode 100644
index 00000000..fa8d9347
Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/OpenSans-LightItalic.woff differ
diff --git a/themesource/atlas_core/public/resources/fonts/OpenSans-Regular.woff b/themesource/atlas_core/public/resources/fonts/OpenSans-Regular.woff
new file mode 100644
index 00000000..99c5d475
Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/OpenSans-Regular.woff differ
diff --git a/themesource/atlas_core/public/resources/fonts/OpenSans-SemiBold.woff b/themesource/atlas_core/public/resources/fonts/OpenSans-SemiBold.woff
new file mode 100644
index 00000000..50c2bc19
Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/OpenSans-SemiBold.woff differ
diff --git a/themesource/atlas_core/public/resources/fonts/OpenSans-SemiBoldItalic.woff b/themesource/atlas_core/public/resources/fonts/OpenSans-SemiBoldItalic.woff
new file mode 100644
index 00000000..a0c3de79
Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/OpenSans-SemiBoldItalic.woff differ
diff --git a/themesource/atlas_core/public/resources/fonts/open-sans.css b/themesource/atlas_core/public/resources/fonts/open-sans.css
new file mode 100644
index 00000000..63b2bf61
--- /dev/null
+++ b/themesource/atlas_core/public/resources/fonts/open-sans.css
@@ -0,0 +1,48 @@
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 700;
+ src: local('Open Sans'), url('./OpenSans-Bold.woff') format('woff');
+}
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 700;
+ src: local('Open Sans'), url('./OpenSans-BoldItalic.woff') format('woff');
+}
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ src: local('Open Sans'), url('./OpenSans-Italic.woff') format('woff');
+}
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 300;
+ src: local('Open Sans'), url('./OpenSans-Light.woff') format('woff');
+}
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 300;
+ src: local('Open Sans'), url('./OpenSans-LightItalic.woff') format('woff');
+}
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ src: local('Open Sans'), url('./OpenSans-Regular.woff') format('woff');
+}
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 600;
+ src: local('Open Sans'), url('./OpenSans-SemiBold.woff') format('woff');
+}
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 600;
+ src: local('Open Sans'), url('./OpenSans-SemiBoldItalic.woff') format('woff');
+}
diff --git a/themesource/atlas_core/public/resources/fonts/open-sans/LICENSE.txt b/themesource/atlas_core/public/resources/fonts/open-sans/LICENSE.txt
new file mode 100644
index 00000000..261eeb9e
--- /dev/null
+++ b/themesource/atlas_core/public/resources/fonts/open-sans/LICENSE.txt
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-Bold.woff b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-Bold.woff
new file mode 100644
index 00000000..fe266947
Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-Bold.woff differ
diff --git a/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-BoldItalic.woff b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-BoldItalic.woff
new file mode 100644
index 00000000..4ff9673e
Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-BoldItalic.woff differ
diff --git a/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-Italic.woff b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-Italic.woff
new file mode 100644
index 00000000..d54cc24d
Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-Italic.woff differ
diff --git a/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-Light.woff b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-Light.woff
new file mode 100644
index 00000000..a823caa8
Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-Light.woff differ
diff --git a/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-LightItalic.woff b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-LightItalic.woff
new file mode 100644
index 00000000..fa8d9347
Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-LightItalic.woff differ
diff --git a/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-Regular.woff b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-Regular.woff
new file mode 100644
index 00000000..99c5d475
Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-Regular.woff differ
diff --git a/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-SemiBold.woff b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-SemiBold.woff
new file mode 100644
index 00000000..50c2bc19
Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-SemiBold.woff differ
diff --git a/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-SemiBoldItalic.woff b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-SemiBoldItalic.woff
new file mode 100644
index 00000000..a0c3de79
Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-SemiBoldItalic.woff differ
diff --git a/themesource/atlas_core/public/resources/fonts/open-sans/open-sans.css b/themesource/atlas_core/public/resources/fonts/open-sans/open-sans.css
new file mode 100644
index 00000000..63b2bf61
--- /dev/null
+++ b/themesource/atlas_core/public/resources/fonts/open-sans/open-sans.css
@@ -0,0 +1,48 @@
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 700;
+ src: local('Open Sans'), url('./OpenSans-Bold.woff') format('woff');
+}
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 700;
+ src: local('Open Sans'), url('./OpenSans-BoldItalic.woff') format('woff');
+}
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ src: local('Open Sans'), url('./OpenSans-Italic.woff') format('woff');
+}
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 300;
+ src: local('Open Sans'), url('./OpenSans-Light.woff') format('woff');
+}
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 300;
+ src: local('Open Sans'), url('./OpenSans-LightItalic.woff') format('woff');
+}
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ src: local('Open Sans'), url('./OpenSans-Regular.woff') format('woff');
+}
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 600;
+ src: local('Open Sans'), url('./OpenSans-SemiBold.woff') format('woff');
+}
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 600;
+ src: local('Open Sans'), url('./OpenSans-SemiBoldItalic.woff') format('woff');
+}
diff --git a/themesource/atlas_core/public/resources/glyphicons-halflings-regular.woff b/themesource/atlas_core/public/resources/glyphicons-halflings-regular.woff
new file mode 100644
index 00000000..9e612858
Binary files /dev/null and b/themesource/atlas_core/public/resources/glyphicons-halflings-regular.woff differ
diff --git a/themesource/atlas_core/public/resources/glyphicons-halflings-regular.woff2 b/themesource/atlas_core/public/resources/glyphicons-halflings-regular.woff2
new file mode 100644
index 00000000..64539b54
Binary files /dev/null and b/themesource/atlas_core/public/resources/glyphicons-halflings-regular.woff2 differ
diff --git a/themesource/atlas_core/public/resources/menubar-more-icon.png b/themesource/atlas_core/public/resources/menubar-more-icon.png
new file mode 100644
index 00000000..9111d0e6
Binary files /dev/null and b/themesource/atlas_core/public/resources/menubar-more-icon.png differ
diff --git a/themesource/atlas_core/public/resources/progress-indicator.gif b/themesource/atlas_core/public/resources/progress-indicator.gif
new file mode 100644
index 00000000..c8c58934
Binary files /dev/null and b/themesource/atlas_core/public/resources/progress-indicator.gif differ
diff --git a/themesource/atlas_core/public/resources/swipe-progress.gif b/themesource/atlas_core/public/resources/swipe-progress.gif
new file mode 100644
index 00000000..f76d56d1
Binary files /dev/null and b/themesource/atlas_core/public/resources/swipe-progress.gif differ
diff --git a/themesource/atlas_core/public/resources/switcher-toggle.png b/themesource/atlas_core/public/resources/switcher-toggle.png
new file mode 100644
index 00000000..85f65198
Binary files /dev/null and b/themesource/atlas_core/public/resources/switcher-toggle.png differ
diff --git a/themesource/atlas_core/public/resources/switcher.png b/themesource/atlas_core/public/resources/switcher.png
new file mode 100644
index 00000000..6a61a7a4
Binary files /dev/null and b/themesource/atlas_core/public/resources/switcher.png differ
diff --git a/themesource/atlas_core/public/resources/tabcontainer-loading.gif b/themesource/atlas_core/public/resources/tabcontainer-loading.gif
new file mode 100644
index 00000000..f76d56d1
Binary files /dev/null and b/themesource/atlas_core/public/resources/tabcontainer-loading.gif differ
diff --git a/themesource/atlas_core/public/resources/ttp.gif b/themesource/atlas_core/public/resources/ttp.gif
new file mode 100644
index 00000000..1578b10a
Binary files /dev/null and b/themesource/atlas_core/public/resources/ttp.gif differ
diff --git a/themesource/atlas_core/public/resources/work-do-more.jpeg b/themesource/atlas_core/public/resources/work-do-more.jpeg
new file mode 100644
index 00000000..5aa1de2c
Binary files /dev/null and b/themesource/atlas_core/public/resources/work-do-more.jpeg differ
diff --git a/themesource/atlas_core/web/_exclusion-variables.scss b/themesource/atlas_core/web/_exclusion-variables.scss
new file mode 100644
index 00000000..d7bb67a0
--- /dev/null
+++ b/themesource/atlas_core/web/_exclusion-variables.scss
@@ -0,0 +1,82 @@
+//
+// DISCLAIMER:
+// Do not change this file, because it is core styling.
+//
+
+//== Core style exclusion
+$exclude-bootstrap: false;
+$exclude-mxui: false;
+$exclude-animations: false;
+$exclude-flex: false;
+$exclude-spacing: false;
+$exclude-base: false;
+$exclude-login: false;
+
+//== Widget style exclusion
+$exclude-accordion: false;
+$exclude-accordion-helpers: false;
+$exclude-background-helpers: false;
+$exclude-badge: false;
+$exclude-badge-button: false;
+$exclude-badge-button-helpers: false;
+$exclude-barcode-scanner: false;
+$exclude-button: false;
+$exclude-button-helpers: false;
+$exclude-check-box: false;
+$exclude-custom-dijit-widget: false;
+$exclude-custom-switch: false;
+$exclude-data-grid: false;
+$exclude-data-grid-helpers: false;
+$exclude-data-view: false;
+$exclude-data-picker: false;
+$exclude-glyphicon: false;
+$exclude-grid: false;
+$exclude-group-box: false;
+$exclude-group-box-helpers: false;
+$exclude-header: false;
+$exclude-helper-classes: false;
+$exclude-input: false;
+$exclude-image-helpers: false;
+$exclude-label: false;
+$exclude-label-helpers: false;
+$exclude-layout-grid: false;
+$exclude-list-view: false;
+$exclude-list-view-helpers: false;
+$exclude-modal: false;
+$exclude-navigation-bar: false;
+$exclude-navigation-bar-helpers: false;
+$exclude-navigation-list: false;
+$exclude-navigation-tree: false;
+$exclude-navigation-tree-helpers: false;
+$exclude-pagination: false;
+$exclude-pop-up-menu: false;
+$exclude-progress: false;
+$exclude-progress-bar: false;
+$exclude-progress-bar-helpers: false;
+$exclude-progress-circle: false;
+$exclude-progress-circle-helpers: false;
+$exclude-radio-button: false;
+$exclude-range-slider: false;
+$exclude-range-slider-helpers: false;
+$exclude-rating: false;
+$exclude-rating-helpers: false;
+$exclude-simple-menu-bar: false;
+$exclude-simple-menu-bar-helpers: false;
+$exclude-slider: false;
+$exclude-slider-helpers: false;
+$exclude-table: false;
+$exclude-table-helpers: false;
+$exclude-tab-container: false;
+$exclude-tab-container-helpers: false;
+$exclude-template-grid: false;
+$exclude-template-grid-helpers: false;
+$exclude-timeline: false;
+$exclude-tooltip: false;
+$exclude-typography: false;
+$exclude-typography-helpers: false;
+
+//== Layouts style exclusion
+$exclude-layout-atlas: false;
+$exclude-layout-atlas-phone: false;
+$exclude-layout-atlas-responsive: false;
+$exclude-layout-atlas-tablet: false;
diff --git a/themesource/atlas_core/web/_variables.scss b/themesource/atlas_core/web/_variables.scss
new file mode 100644
index 00000000..ed029cd1
--- /dev/null
+++ b/themesource/atlas_core/web/_variables.scss
@@ -0,0 +1,765 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+//
+// ██████╗ █████╗ ███████╗██╗ ██████╗
+// ██╔══██╗██╔══██╗██╔════╝██║██╔════╝
+// ██████╔╝███████║███████╗██║██║
+// ██╔══██╗██╔══██║╚════██║██║██║
+// ██████╔╝██║ ██║███████║██║╚██████╗
+// ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═════╝
+//
+
+//== Gray Shades
+//## Different gray shades to be used for our variables and components
+$gray-darker: #3b4251 !default;
+$gray-dark: #606671 !default;
+$gray: #787d87 !default;
+$gray-light: #6c7180 !default;
+$gray-primary: #ced0d3 !default;
+$gray-lighter: #f8f8f8 !default;
+
+//== Step 1: Brand Colors
+$brand-default: $gray-primary !default;
+$brand-primary: #264ae5 !default;
+$brand-success: #3cb33d !default;
+$brand-warning: #eca51c !default;
+$brand-danger: #e33f4e !default;
+
+$brand-logo: false !default;
+$brand-logo-height: 26px !default;
+$brand-logo-width: 26px !default; // Only used for CSS brand logo
+
+//== Step 2: UI Customization
+
+// Default Font Size & Color
+$font-size-default: 14px !default;
+$font-color-default: #6c717e !default;
+
+// Global Border Color
+$border-color-default: #ced0d3 !default;
+$border-radius-default: 5px !default;
+
+// Topbar
+$topbar-bg: #fff !default;
+$topbar-minimalheight: 60px !default;
+$topbar-border-color: $border-color-default !default;
+
+// Topbar mobile
+$m-header-height: 45px !default;
+$m-header-bg: $brand-primary !default;
+$m-header-color: #fff !default;
+$m-header-title-size: 16px !default;
+
+// Navbar Brand Name / For your company, product, or project name (used in layouts/base/)
+$navbar-brand-name: $font-color-default !default;
+
+// Background Colors
+// Backgrounds
+$bg-color: #f8f8f8 !default;
+$bg-color-secondary: #fff !default;
+
+// Default Link Color
+$link-color: $brand-primary !default;
+$link-hover-color: darken($link-color, 15%) !default;
+
+//
+// █████╗ ██████╗ ██╗ ██╗ █████╗ ███╗ ██╗ ██████╗███████╗██████╗
+// ██╔══██╗██╔══██╗██║ ██║██╔══██╗████╗ ██║██╔════╝██╔════╝██╔══██╗
+// ███████║██║ ██║██║ ██║███████║██╔██╗ ██║██║ █████╗ ██║ ██║
+// ██╔══██║██║ ██║╚██╗ ██╔╝██╔══██║██║╚██╗██║██║ ██╔══╝ ██║ ██║
+// ██║ ██║██████╔╝ ╚████╔╝ ██║ ██║██║ ╚████║╚██████╗███████╗██████╔╝
+// ╚═╝ ╚═╝╚═════╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝
+//
+
+//== Typography
+//## Change your font family, weight, line-height, headings and more (used in components/typography)
+
+// Font Family Import (Used for google font plugin in theme creater)
+$font-family-import: "resources/fonts/open-sans/open-sans.css" !default;
+
+// Font Family / False = fallback from Bootstrap (Helvetica Neue)
+$font-family-base: "Open Sans", sans-serif !default;
+
+// Font Sizes
+$font-size-large: 18px !default;
+$font-size-small: 12px !default;
+
+// Font Weights
+$font-weight-light: 100 !default;
+$font-weight-normal: normal !default;
+$font-weight-semibold: 600 !default;
+$font-weight-bold: bold !default;
+
+// Font Size Headers
+$font-size-h1: 31px !default;
+$font-size-h2: 26px !default;
+$font-size-h3: 24px !default;
+$font-size-h4: 18px !default;
+$font-size-h5: $font-size-default !default;
+$font-size-h6: 12px !default;
+
+// Font Weight Headers
+$font-weight-header: $font-weight-semibold !default;
+
+// Line Height
+$line-height-base: 1.428571429 !default;
+
+// Spacing
+$font-header-margin: 0 0 8px 0 !default;
+
+// Text Colors
+$font-color-detail: #6c717e !default;
+$font-color-header: #0a1326 !default;
+
+//== Navigation
+//## Used in components/navigation
+
+// Default Navigation styling
+$navigation-item-height: unset !default;
+$navigation-item-padding: 16px !default;
+
+$navigation-font-size: $font-size-default !default;
+$navigation-sub-font-size: $font-size-small !default;
+$navigation-glyph-size: 20px !default; // For glyphicons that you can select in the Mendix Modeler
+
+$navigation-color: #fff !default;
+$navigation-color-hover: #fff !default;
+$navigation-color-active: #fff !default;
+
+$navigation-sub-color: #aaa !default;
+$navigation-sub-color-hover: $brand-primary !default;
+$navigation-sub-color-active: $brand-primary !default;
+
+// Navigation Sidebar
+$navsidebar-font-size: $font-size-default !default;
+$navsidebar-sub-font-size: $font-size-small !default;
+$navsidebar-glyph-size: 20px !default; // For glyphicons that you can select in the Mendix Modeler
+
+$navsidebar-color: #fff !default;
+$navsidebar-color-hover: #fff !default;
+$navsidebar-color-active: #fff !default;
+
+$navsidebar-sub-color: #aaa !default;
+$navsidebar-sub-color-hover: $brand-primary !default;
+$navsidebar-sub-color-active: $brand-primary !default;
+
+$navsidebar-width-closed: 52px !default;
+$navsidebar-width-open: 232px !default;
+
+// Navigation topbar
+$navtopbar-font-size: $font-size-default !default;
+$navtopbar-sub-font-size: $font-size-small !default;
+$navtopbar-glyph-size: 1.2em !default; // For glyphicons that you can select in the Mendix Modeler
+
+$navtopbar-bg: $topbar-bg !default;
+$navtopbar-bg-hover: darken($navtopbar-bg, 4) !default;
+$navtopbar-bg-active: darken($navtopbar-bg, 8) !default;
+$navtopbar-color: $font-color-default !default;
+$navtopbar-color-hover: $navtopbar-color !default;
+$navtopbar-color-active: $navtopbar-color !default;
+
+$navtopbar-sub-bg: lighten($navtopbar-bg, 4) !default;
+$navtopbar-sub-bg-hover: $navtopbar-sub-bg !default;
+$navtopbar-sub-bg-active: $navtopbar-sub-bg !default;
+$navtopbar-sub-color: #aaa !default;
+$navtopbar-sub-color-hover: $brand-primary !default;
+$navtopbar-sub-color-active: $brand-primary !default;
+
+//== Cards
+// Shadow color
+$shadow-color-border: rgba($gray-primary, 0.5);
+$shadow-color: rgba($gray-primary, 0.66);
+
+//Shadow size
+$shadow-small: 0 2px 4px 0;
+$shadow-medium: 0 5px 7px 0;
+$shadow-large: 0 8px 10px 0;
+
+//## Used in layouts/base
+$navtopbar-border-color: $topbar-border-color !default;
+
+//== Form
+//## Used in components/inputs
+
+// Values that can be used default | lined
+$form-input-style: default !default;
+
+// Form Label
+$form-label-size: $font-size-default !default;
+$form-label-weight: $font-weight-semibold !default;
+$form-label-gutter: 8px !default;
+
+// Form Input dimensions
+$form-input-height: auto !default;
+$form-input-padding-y: 8px !default;
+$form-input-padding-x: 8px !default;
+$form-input-static-padding-y: 8px !default;
+$form-input-static-padding-x: 0 !default;
+$form-input-font-size: $form-label-size !default;
+$form-input-line-height: $line-height-base !default;
+$form-input-border-radius: $border-radius-default !default;
+
+// Form Input styling
+$form-input-bg: #fff !default;
+$form-input-bg-focus: #fff !default;
+$form-input-bg-hover: $gray-primary !default;
+$form-input-bg-disabled: $bg-color !default;
+$form-input-color: $font-color-default !default;
+$form-input-focus-color: $form-input-color !default;
+$form-input-disabled-color: #9da1a8 !default;
+$form-input-placeholder-color: #6c717c !default;
+$form-input-border-color: $gray-primary !default;
+$form-input-border-focus-color: $brand-primary !default;
+
+// Form Input Static styling
+$form-input-static-border-color: $gray-primary !default;
+
+// Form Group
+$form-group-margin-bottom: 16px !default;
+$form-group-gutter: 16px !default;
+
+//== Buttons
+//## Define background-color, border-color and text. Used in components/buttons
+
+// Default button style
+$btn-font-size: 14px !default;
+$btn-bordered: false !default; // Default value false, set to true if you want this effect
+$btn-border-radius: $border-radius-default !default;
+
+// Button Background Color
+$btn-default-bg: #fff !default;
+$btn-primary-bg: $brand-primary !default;
+$btn-success-bg: $brand-success !default;
+$btn-warning-bg: $brand-warning !default;
+$btn-danger-bg: $brand-danger !default;
+
+// Button Border Color
+$btn-default-border-color: $gray-primary !default;
+$btn-primary-border-color: $brand-primary !default;
+$btn-success-border-color: $brand-success !default;
+$btn-warning-border-color: $brand-warning !default;
+$btn-danger-border-color: $brand-danger !default;
+
+// Button Text Color
+$btn-default-color: $brand-primary !default;
+$btn-primary-color: #fff !default;
+$btn-success-color: #fff !default;
+$btn-warning-color: #fff !default;
+$btn-danger-color: #fff !default;
+
+// Button Icon Color
+$btn-default-icon-color: $gray !default;
+
+// Button Background Color
+$btn-default-bg-hover: $btn-default-border-color !default;
+$btn-primary-bg-hover: mix($btn-primary-bg, black, 80%) !default;
+$btn-success-bg-hover: mix($btn-success-bg, black, 80%) !default;
+$btn-warning-bg-hover: mix($btn-warning-bg, black, 80%) !default;
+$btn-danger-bg-hover: mix($btn-danger-bg, black, 80%) !default;
+$btn-link-bg-hover: $gray-lighter !default;
+
+//== Header blocks
+//## Define look and feel over multible building blocks that serve as header
+
+$header-min-height: 240px !default;
+$header-bg-color: $brand-primary !default;
+$header-bgimage-filter: brightness(60%) !default;
+$header-text-color: #fff !default;
+$header-text-color-detail: rgba(0, 0, 0, 0.2) !default;
+
+//
+// ███████╗██╗ ██╗██████╗ ███████╗██████╗ ████████╗
+// ██╔════╝╚██╗██╔╝██╔══██╗██╔════╝██╔══██╗╚══██╔══╝
+// █████╗ ╚███╔╝ ██████╔╝█████╗ ██████╔╝ ██║
+// ██╔══╝ ██╔██╗ ██╔═══╝ ██╔══╝ ██╔══██╗ ██║
+// ███████╗██╔╝ ██╗██║ ███████╗██║ ██║ ██║
+// ╚══════╝╚═╝ ╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝
+//
+
+//== Color variations
+//## These variations are used to support several other variables and components
+
+// Color variations
+$color-default-darker: mix($brand-default, black, 60%) !default;
+$color-default-dark: mix($brand-default, black, 70%) !default;
+$color-default-light: mix($brand-default, white, 20%) !default;
+$color-default-lighter: mix($brand-default, white, 10%) !default;
+
+$color-primary-darker: mix($brand-primary, black, 60%) !default;
+$color-primary-dark: mix($brand-primary, black, 70%) !default;
+$color-primary-light: mix($brand-primary, white, 20%) !default;
+$color-primary-lighter: mix($brand-primary, white, 10%) !default;
+
+$color-success-darker: mix($brand-success, black, 60%) !default;
+$color-success-dark: mix($brand-success, black, 70%) !default;
+$color-success-light: mix($brand-success, white, 20%) !default;
+$color-success-lighter: mix($brand-success, white, 10%) !default;
+
+$color-warning-darker: mix($brand-warning, black, 60%) !default;
+$color-warning-dark: mix($brand-warning, black, 70%) !default;
+$color-warning-light: mix($brand-warning, white, 20%) !default;
+$color-warning-lighter: mix($brand-warning, white, 10%) !default;
+
+$color-danger-darker: mix($brand-danger, black, 60%) !default;
+$color-danger-dark: mix($brand-danger, black, 70%) !default;
+$color-danger-light: mix($brand-danger, white, 20%) !default;
+$color-danger-lighter: mix($brand-danger, white, 10%) !default;
+
+$brand-gradient: linear-gradient(to right top, #264ae5, #2239c5, #1b29a6, #111988, #03096c) !default;
+
+//== Grids
+//## Used for Datagrid, Templategrid, Listview & Tables (see components folder)
+
+// Default Border Colors
+$grid-border-color: $border-color-default !default;
+
+// Spacing
+// Default
+$grid-padding-top: 16px !default;
+$grid-padding-right: 16px !default;
+$grid-padding-bottom: 16px !default;
+$grid-padding-left: 16px !default;
+
+// Listview
+$listview-padding-top: 16px !default;
+$listview-padding-right: 16px !default;
+$listview-padding-bottom: 16px !default;
+$listview-padding-left: 16px !default;
+
+// Background Colors
+$grid-bg: transparent !default;
+$grid-bg-header: transparent !default; // Grid Headers
+$grid-bg-hover: mix($grid-border-color, #fff, 20%) !default;
+$grid-bg-selected: mix($grid-border-color, #fff, 30%) !default;
+$grid-bg-selected-hover: mix($grid-border-color, #fff, 50%) !default;
+
+// Striped Background Color
+$grid-bg-striped: mix($grid-border-color, #fff, 10%) !default;
+
+// Background Footer Color
+$grid-footer-bg: $gray-primary !default;
+
+// Text Color
+$grid-selected-color: $font-color-default !default;
+
+// Paging Colors
+$grid-paging-bg: transparent !default;
+$grid-paging-bg-hover: transparent !default;
+$grid-paging-border-color: transparent !default;
+$grid-paging-border-color-hover: transparent !default;
+$grid-paging-color: $gray-light !default;
+$grid-paging-color-hover: $brand-primary !default;
+
+//== Tabs
+//## Default variables for Tab Container Widget (used in components/tabcontainer)
+
+// Text Color
+$tabs-color: $font-color-detail !default;
+$tabs-color-active: $font-color-default !default;
+$tabs-lined-color-active: $font-color-default !default;
+
+$tabs-lined-border-width: 3px !default;
+
+// Border Color
+$tabs-border-color: $border-color-default !default;
+$tabs-lined-border-color: $brand-primary !default;
+
+// Background Color
+$tabs-bg: transparent !default;
+$tabs-bg-pills: #e7e7e9 !default;
+$tabs-bg-hover: lighten($tabs-border-color, 5) !default;
+$tabs-bg-active: $brand-primary !default;
+
+//== Modals
+//## Default Mendix Modal, Blocking Modal and Login Modal (used in components/modals)
+
+// Background Color
+$modal-header-bg: transparent !default;
+
+// Border Color
+$modal-header-border-color: $border-color-default !default;
+
+// Text Color
+$modal-header-color: $font-color-default !default;
+
+//== Dataview
+//## Default variables for Dataview Widget (used in components/dataview)
+
+// Controls
+$dataview-controls-bg: transparent !default;
+$dataview-controls-border-color: $border-color-default !default;
+
+// Empty Message
+$dataview-emptymessage-bg: $bg-color !default;
+$dataview-emptymessage-color: $font-color-default !default;
+
+//== Alerts
+//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts)
+
+// Background Color
+$alert-primary-bg: $color-primary-lighter !default;
+$alert-secondary-bg: $color-primary-lighter !default;
+$alert-success-bg: $color-success-lighter !default;
+$alert-warning-bg: $color-warning-lighter !default;
+$alert-danger-bg: $color-danger-lighter !default;
+
+// Text Color
+$alert-primary-color: $color-primary-darker !default;
+$alert-secondary-color: $color-primary-darker !default;
+$alert-success-color: $color-success-darker !default;
+$alert-warning-color: $color-warning-darker !default;
+$alert-danger-color: $color-danger-darker !default;
+
+// Border Color
+$alert-primary-border-color: $color-primary-dark !default;
+$alert-secondary-border-color: $color-primary-dark !default;
+$alert-success-border-color: $color-success-dark !default;
+$alert-warning-border-color: $color-warning-dark !default;
+$alert-danger-border-color: $color-danger-dark !default;
+
+//== Wizard
+
+$wizard-step-height: 48px !default;
+$wizard-step-number-size: 64px !default;
+$wizard-step-number-font-size: $font-size-h3 !default;
+
+//Wizard states
+$wizard-default: #fff !default;
+$wizard-active: $brand-primary !default;
+$wizard-visited: $brand-success !default;
+
+//Wizard step states
+$wizard-default-bg: $wizard-default !default;
+$wizard-default-color: $wizard-default !default;
+$wizard-default-step-color: $font-color-default !default;
+$wizard-default-border-color: $border-color-default !default;
+
+$wizard-active-bg: $wizard-active !default;
+$wizard-active-color: $wizard-default !default;
+$wizard-active-step-color: $wizard-active !default;
+$wizard-active-border-color: $wizard-active !default;
+
+$wizard-visited-bg: $wizard-visited !default;
+$wizard-visited-color: $wizard-default !default;
+$wizard-visited-step-color: $wizard-visited !default;
+$wizard-visited-border-color: $wizard-visited !default;
+
+//== Labels
+//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels)
+
+// Background Color
+$label-default-bg: $brand-default !default;
+$label-primary-bg: $brand-primary !default;
+$label-success-bg: $brand-success !default;
+$label-warning-bg: $brand-warning !default;
+$label-danger-bg: $brand-danger !default;
+
+// Border Color
+$label-default-border-color: $brand-default !default;
+$label-primary-border-color: $brand-primary !default;
+$label-success-border-color: $brand-success !default;
+$label-warning-border-color: $brand-warning !default;
+$label-danger-border-color: $brand-danger !default;
+
+// Text Color
+$label-default-color: $font-color-default !default;
+$label-primary-color: #fff !default;
+$label-success-color: #fff !default;
+$label-warning-color: #fff !default;
+$label-danger-color: #fff !default;
+
+//== Groupbox
+//## Default variables for Groupbox Widget (used in components/groupbox)
+
+// Background Color
+$groupbox-default-bg: $gray-primary !default;
+$groupbox-primary-bg: $brand-primary !default;
+$groupbox-success-bg: $brand-success !default;
+$groupbox-warning-bg: $brand-warning !default;
+$groupbox-danger-bg: $brand-danger !default;
+$groupbox-white-bg: #fff !default;
+
+// Text Color
+$groupbox-default-color: $font-color-default !default;
+$groupbox-primary-color: #fff !default;
+$groupbox-success-color: #fff !default;
+$groupbox-warning-color: #fff !default;
+$groupbox-danger-color: #fff !default;
+$groupbox-white-color: $font-color-default !default;
+
+//== Callout (groupbox) Colors
+//## Extended variables for Groupbox Widget (used in components/groupbox)
+
+// Text and Border Color
+$callout-default-color: $font-color-default !default;
+$callout-primary-color: $brand-primary !default;
+$callout-success-color: $brand-success !default;
+$callout-warning-color: $brand-warning !default;
+$callout-danger-color: $brand-danger !default;
+
+// Background Color
+$callout-default-bg: $color-default-lighter !default;
+$callout-primary-bg: $color-primary-lighter !default;
+$callout-success-bg: $color-success-lighter !default;
+$callout-warning-bg: $color-warning-lighter !default;
+$callout-danger-bg: $color-danger-lighter !default;
+
+//== Timeline
+//## Extended variables for Timeline Widget
+// Colors
+$timeline-icon-color: $brand-primary !default;
+$timeline-border-color: $border-color-default !default;
+$timeline-event-time-color: $brand-primary !default;
+
+// Sizes
+$timeline-icon-size: 18px !default;
+$timeline-image-size: 36px !default;
+
+//Timeline grouping
+$timeline-grouping-size: 120px !default;
+$timeline-grouping-border-radius: 30px !default;
+$timeline-grouping-border-color: $timeline-border-color !default;
+
+//== Accordions
+//## Extended variables for Accordion Widget
+
+// Default
+$accordion-header-default-bg: $bg-color-secondary !default;
+$accordion-header-default-bg-hover: $bg-color !default;
+$accordion-header-default-color: $font-color-header !default;
+$accordion-default-border-color: $border-color-default !default;
+
+$accordion-bg-striped: $grid-bg-striped !default;
+$accordion-bg-striped-hover: $grid-bg-selected !default;
+
+// Semantic background colors
+$accordion-header-primary-bg: $btn-primary-bg !default;
+$accordion-header-secondary-bg: $btn-default-bg !default;
+$accordion-header-success-bg: $btn-success-bg !default;
+$accordion-header-warning-bg: $btn-warning-bg !default;
+$accordion-header-danger-bg: $btn-danger-bg !default;
+
+$accordion-header-primary-bg-hover: $btn-primary-bg-hover !default;
+$accordion-header-secondary-bg-hover: $btn-default-bg-hover !default;
+$accordion-header-success-bg-hover: $btn-success-bg-hover !default;
+$accordion-header-warning-bg-hover: $btn-warning-bg-hover !default;
+$accordion-header-danger-bg-hover: $btn-danger-bg-hover !default;
+
+// Semantic text colors
+$accordion-header-primary-color: $btn-primary-color !default;
+$accordion-header-secondary-color: $btn-default-color !default;
+$accordion-header-success-color: $btn-success-color !default;
+$accordion-header-warning-color: $btn-warning-color !default;
+$accordion-header-danger-color: $btn-danger-color !default;
+
+// Semantic border colors
+$accordion-primary-border-color: $btn-primary-border-color !default;
+$accordion-secondary-border-color: $btn-default-border-color !default;
+$accordion-success-border-color: $btn-success-border-color !default;
+$accordion-warning-border-color: $btn-warning-border-color !default;
+$accordion-danger-border-color: $btn-danger-border-color !default;
+
+//== Spacing
+//## Advanced layout options (used in base/mixins/default-spacing)
+
+// Smallest spacing
+$spacing-smallest: 2px !default;
+
+// Smaller spacing
+$spacing-smaller: 4px !default;
+
+// Small spacing
+$spacing-small: 8px !default;
+
+// Medium spacing
+$spacing-medium: 16px !default;
+$t-spacing-medium: 16px !default;
+$m-spacing-medium: 16px !default;
+
+// Large spacing
+$spacing-large: 24px !default;
+$t-spacing-large: 24px !default;
+$m-spacing-large: 16px !default;
+
+// Larger spacing
+$spacing-larger: 32px !default;
+
+// Largest spacing
+$spacing-largest: 48px !default;
+
+// Layout spacing
+$layout-spacing-top: 24px !default;
+$layout-spacing-right: 24px !default;
+$layout-spacing-bottom: 24px !default;
+$layout-spacing-left: 24px !default;
+
+$t-layout-spacing-top: 24px !default;
+$t-layout-spacing-right: 24px !default;
+$t-layout-spacing-bottom: 24px !default;
+$t-layout-spacing-left: 24px !default;
+
+$m-layout-spacing-top: 16px !default;
+$m-layout-spacing-right: 16px !default;
+$m-layout-spacing-bottom: 16px !default;
+$m-layout-spacing-left: 16px !default;
+
+// Combined layout spacing
+$layout-spacing: $layout-spacing-top $layout-spacing-right $layout-spacing-bottom $layout-spacing-left !default;
+$m-layout-spacing: $m-layout-spacing-top $m-layout-spacing-right $m-layout-spacing-bottom $m-layout-spacing-left !default;
+$t-layout-spacing: $t-layout-spacing-top $t-layout-spacing-right $t-layout-spacing-bottom $t-layout-spacing-left !default;
+
+// Gutter size
+$gutter-size: 8px !default;
+
+//== Tables
+//## Table spacing options (used in components/tables)
+
+$padding-table-cell-top: 8px !default;
+$padding-table-cell-bottom: 8px !default;
+$padding-table-cell-left: 8px !default;
+$padding-table-cell-right: 8px !default;
+
+//== Media queries breakpoints
+//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
+
+$screen-xs: 480px !default;
+$screen-sm: 576px !default;
+$screen-md: 768px !default;
+$screen-lg: 992px !default;
+$screen-xl: 1200px !default;
+
+// So media queries don't overlap when required, provide a maximum (used for max-width)
+$screen-xs-max: calc(#{$screen-sm} - 1px) !default;
+$screen-sm-max: calc(#{$screen-md} - 1px) !default;
+$screen-md-max: calc(#{$screen-lg} - 1px) !default;
+$screen-lg-max: calc(#{$screen-xl} - 1px) !default;
+
+//== Settings
+//## Enable or disable your desired framework features
+// Use of !important
+$important-flex: true !default; // ./base/flex.scss
+$important-spacing: true !default; // ./base/spacing.scss
+$important-helpers: true !default; // ./helpers/helperclasses.scss
+
+//===== Legacy variables =====
+
+//== Step 1: Brand Colors
+$brand-inverse: #24276c !default;
+$brand-info: #0086d9 !default;
+
+//== Step 2: UI Customization
+// Sidebar
+$sidebar-bg: $brand-inverse !default;
+
+//== Navigation
+//## Used in components/navigation
+
+// Default Navigation styling
+$navigation-bg: $brand-inverse !default;
+$navigation-bg-hover: lighten($navigation-bg, 4) !default;
+$navigation-bg-active: lighten($navigation-bg, 8) !default;
+
+$navigation-sub-bg: darken($navigation-bg, 4) !default;
+$navigation-sub-bg-hover: $navigation-sub-bg !default;
+$navigation-sub-bg-active: $navigation-sub-bg !default;
+
+$navigation-border-color: $navigation-bg-hover !default;
+
+// Navigation Sidebar
+$navsidebar-bg: $sidebar-bg !default;
+$navsidebar-bg-hover: darken($navsidebar-bg, 4) !default;
+$navsidebar-bg-active: darken($navsidebar-bg, 8) !default;
+
+$navsidebar-sub-bg: darken($navsidebar-bg, 4) !default;
+$navsidebar-sub-bg-hover: $navsidebar-sub-bg !default;
+$navsidebar-sub-bg-active: $navsidebar-sub-bg !default;
+
+$navsidebar-border-color: $navsidebar-bg-hover !default;
+
+//== Form
+//## Used in components/inputs
+
+// Form Label
+$form-label-color: $brand-inverse !default;
+
+//== Buttons
+//## Define background-color, border-color and text. Used in components/buttons
+
+// Button Background Color
+$btn-inverse-bg: $brand-inverse !default;
+$btn-info-bg: $brand-info !default;
+
+// Button Border Color
+$btn-inverse-border-color: $brand-inverse !default;
+$btn-info-border-color: $brand-info !default;
+
+// Button Text Color
+$btn-inverse-color: #fff !default;
+$btn-info-color: #fff !default;
+
+// Button Background Color
+$btn-inverse-bg-hover: mix($btn-inverse-bg, white, 80%) !default;
+$btn-info-bg-hover: mix($btn-info-bg, black, 80%) !default;
+
+//== Color variations
+//## These variations are used to support several other variables and components
+
+// Color variations
+$color-inverse-darker: mix($brand-inverse, black, 60%) !default;
+$color-inverse-dark: mix($brand-inverse, black, 70%) !default;
+$color-inverse-light: mix($brand-inverse, white, 40%) !default;
+$color-inverse-lighter: mix($brand-inverse, white, 20%) !default;
+
+$color-info-darker: mix($brand-info, black, 60%) !default;
+$color-info-dark: mix($brand-info, black, 70%) !default;
+$color-info-light: mix($brand-info, white, 60%) !default;
+$color-info-lighter: mix($brand-info, white, 20%) !default;
+
+//== Alerts
+//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts)
+
+// Background Color
+$alert-info-bg: $color-primary-lighter !default;
+
+// Text Color
+$alert-info-color: $color-primary-darker !default;
+
+// Border Color
+$alert-info-border-color: $color-primary-dark !default;
+//== Labels
+//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels)
+
+// Background Color
+$label-info-bg: $brand-info !default;
+$label-inverse-bg: $brand-inverse !default;
+
+// Border Color
+$label-info-border-color: $brand-info !default;
+$label-inverse-border-color: $brand-inverse !default;
+
+// Text Color
+$label-info-color: #fff !default;
+$label-inverse-color: #fff !default;
+
+//== Groupbox
+//## Default variables for Groupbox Widget (used in components/groupbox)
+
+// Background Color
+$groupbox-inverse-bg: $brand-inverse !default;
+$groupbox-info-bg: $brand-info !default;
+
+// Text Color
+$groupbox-inverse-color: #fff !default;
+$groupbox-info-color: #fff !default;
+//== Callout (groupbox) Colors
+//## Extended variables for Groupbox Widget (used in components/groupbox)
+
+// Text and Border Color
+$callout-info-color: $brand-info !default;
+
+// Background Color
+$callout-info-bg: $color-info-lighter !default;
diff --git a/themesource/atlas_core/web/core/_legacy/_mxui.scss b/themesource/atlas_core/web/core/_legacy/_mxui.scss
new file mode 100644
index 00000000..1e7a2b19
--- /dev/null
+++ b/themesource/atlas_core/web/core/_legacy/_mxui.scss
@@ -0,0 +1,3582 @@
+/* @preserve
+ Copyright (c) 2005-2016, Mendix bv. All rights reserved.
+ See mxclientsystem/licenses.txt for third party licenses that apply.
+*/
+
+/*
+ Essential styles that themes can inherit.
+ In other words, works but doesn't look great.
+*/
+
+@mixin mxui() {
+ /****
+ GENERIC PIECES
+ ****/
+
+ .dijitReset {
+ /* Use this style to null out padding, margin, border in your template elements
+ so that page specific styles don't break them.
+ - Use in all TABLE, TR and TD tags.
+ */
+ margin: 0;
+ border: 0;
+ padding: 0;
+ font: inherit;
+ line-height: normal;
+ color: inherit;
+ }
+ .dj_a11y .dijitReset {
+ -moz-appearance: none; /* remove predefined high-contrast styling in Firefox */
+ }
+
+ .dijitInline {
+ /* To inline block elements.
+ Similar to InlineBox below, but this has fewer side-effects in Moz.
+ Also, apparently works on a DIV as well as a FIELDSET.
+ */
+ display: inline-block; /* webkit and FF3 */
+ border: 0;
+ padding: 0;
+ vertical-align: middle;
+ }
+
+ table.dijitInline {
+ /* To inline tables with a given width set */
+ display: inline-table;
+ box-sizing: content-box;
+ }
+
+ .dijitHidden {
+ /* To hide unselected panes in StackContainer etc. */
+ position: absolute; /* remove from normal document flow to simulate display: none */
+ visibility: hidden; /* hide element from view, but don't break scrolling, see #18612 */
+ }
+ .dijitHidden * {
+ visibility: hidden !important; /* hide visibility:visible descendants of class=dijitHidden nodes, see #18799 */
+ }
+
+ .dijitVisible {
+ /* To show selected pane in StackContainer etc. */
+ display: block !important; /* override user's display:none setting via style setting or indirectly via class */
+ position: relative; /* to support setting width/height, see #2033 */
+ visibility: visible;
+ }
+
+ .dj_ie6 .dijitComboBox .dijitInputContainer,
+ .dijitInputContainer {
+ /* for positioning of placeHolder */
+ overflow: hidden;
+ float: none !important; /* needed to squeeze the INPUT in */
+ position: relative;
+ }
+ .dj_ie7 .dijitInputContainer {
+ float: left !important; /* needed by IE to squeeze the INPUT in */
+ clear: left;
+ display: inline-block !important; /* to fix wrong text alignment in textdir=rtl text box */
+ }
+
+ .dj_ie .dijitSelect input,
+ .dj_ie input.dijitTextBox,
+ .dj_ie .dijitTextBox input {
+ font-size: 100%;
+ }
+ .dijitSelect .dijitButtonText {
+ float: left;
+ vertical-align: top;
+ }
+ table.dijitSelect {
+ padding: 0 !important; /* messes up border alignment */
+ border-collapse: separate; /* so jsfiddle works with Normalized CSS checked */
+ }
+ .dijitTextBox .dijitSpinnerButtonContainer,
+ .dijitTextBox .dijitArrowButtonContainer,
+ .dijitValidationTextBox .dijitValidationContainer {
+ float: right;
+ text-align: center;
+ }
+ .dijitSelect input.dijitInputField,
+ .dijitTextBox input.dijitInputField {
+ /* override unreasonable user styling of buttons and icons */
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ }
+ .dijitValidationTextBox .dijitValidationContainer {
+ display: none;
+ }
+
+ .dijitTeeny {
+ font-size: 1px;
+ line-height: 1px;
+ }
+
+ .dijitOffScreen {
+ /* these class attributes should supersede any inline positioning style */
+ position: absolute !important;
+ left: -10000px !important;
+ top: -10000px !important;
+ }
+
+ /*
+ * Popup items have a wrapper div (dijitPopup)
+ * with the real popup inside, and maybe an iframe too
+ */
+ .dijitPopup {
+ position: absolute;
+ background-color: transparent;
+ margin: 0;
+ border: 0;
+ padding: 0;
+ -webkit-overflow-scrolling: touch;
+ }
+
+ .dijitPositionOnly {
+ /* Null out all position-related properties */
+ padding: 0 !important;
+ border: 0 !important;
+ background-color: transparent !important;
+ background-image: none !important;
+ height: auto !important;
+ width: auto !important;
+ }
+
+ .dijitNonPositionOnly {
+ /* Null position-related properties */
+ float: none !important;
+ position: static !important;
+ margin: 0 0 0 0 !important;
+ vertical-align: middle !important;
+ }
+
+ .dijitBackgroundIframe {
+ /* iframe used to prevent problems with PDF or other applets overlaying menus etc */
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ z-index: -1;
+ border: 0;
+ padding: 0;
+ margin: 0;
+ }
+
+ .dijitDisplayNone {
+ /* hide something. Use this as a class rather than element.style so another class can override */
+ display: none !important;
+ }
+
+ .dijitContainer {
+ /* for all layout containers */
+ overflow: hidden; /* need on IE so something can be reduced in size, and so scrollbars aren't temporarily displayed when resizing */
+ }
+
+ /****
+ A11Y
+ ****/
+ .dj_a11y .dijitIcon,
+ .dj_a11y div.dijitArrowButtonInner, /* is this only for Spinner? if so, it should be deleted */
+ .dj_a11y span.dijitArrowButtonInner,
+ .dj_a11y img.dijitArrowButtonInner,
+ .dj_a11y .dijitCalendarIncrementControl,
+ .dj_a11y .dijitTreeExpando {
+ /* hide icon nodes in high contrast mode; when necessary they will be replaced by character equivalents
+ * exception for input.dijitArrowButtonInner, because the icon and character are controlled by the same node */
+ display: none;
+ }
+ .dijitSpinner div.dijitArrowButtonInner {
+ display: block; /* override previous rule */
+ }
+
+ .dj_a11y .dijitA11ySideArrow {
+ display: inline !important; /* display text instead */
+ cursor: pointer;
+ }
+
+ /*
+ * Since we can't use shading in a11y mode, and since the underline indicates today's date,
+ * use a border to show the selected date.
+ * Avoid screen jitter when switching selected date by compensating for the selected node's
+ * border w/padding on other nodes.
+ */
+ .dj_a11y .dijitCalendarDateLabel {
+ padding: 1px;
+ border: 0px !important;
+ }
+ .dj_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel {
+ border-style: solid !important;
+ border-width: 1px !important;
+ padding: 0;
+ }
+ .dj_a11y .dijitCalendarDateTemplate {
+ padding-bottom: 0.1em !important; /* otherwise bottom border doesn't appear on IE */
+ border: 0px !important;
+ }
+ .dj_a11y .dijitButtonNode {
+ border: black outset medium !important;
+
+ /* In claro, hovering a toolbar button reduces padding and adds a border.
+ * Not needed in a11y mode since Toolbar buttons always have a border.
+ */
+ padding: 0 !important;
+ }
+ .dj_a11y .dijitArrowButton {
+ padding: 0 !important;
+ }
+
+ .dj_a11y .dijitButtonContents {
+ margin: 0.15em; /* Margin needed to make focus outline visible */
+ }
+
+ .dj_a11y .dijitTextBoxReadOnly .dijitInputField,
+ .dj_a11y .dijitTextBoxReadOnly .dijitButtonNode {
+ border-style: outset !important;
+ border-width: medium !important;
+ border-color: #999 !important;
+ color: #999 !important;
+ }
+
+ /* button inner contents - labels, icons etc. */
+ .dijitButtonNode * {
+ vertical-align: middle;
+ }
+ .dijitSelect .dijitArrowButtonInner,
+ .dijitButtonNode .dijitArrowButtonInner {
+ /* the arrow icon node */
+ background: no-repeat center;
+ width: 12px;
+ height: 12px;
+ direction: ltr; /* needed by IE/RTL */
+ }
+
+ /****
+ 3-element borders: ( dijitLeft + dijitStretch + dijitRight )
+ These were added for rounded corners on dijit.form.*Button but never actually used.
+ ****/
+
+ .dijitLeft {
+ /* Left part of a 3-element border */
+ background-position: left top;
+ background-repeat: no-repeat;
+ }
+
+ .dijitStretch {
+ /* Middle (stretchy) part of a 3-element border */
+ white-space: nowrap; /* MOW: move somewhere else */
+ background-repeat: repeat-x;
+ }
+
+ .dijitRight {
+ /* Right part of a 3-element border */
+ background-position: right top;
+ background-repeat: no-repeat;
+ }
+
+ /* Buttons */
+ .dj_gecko .dj_a11y .dijitButtonDisabled .dijitButtonNode {
+ opacity: 0.5;
+ }
+
+ .dijitToggleButton,
+ .dijitButton,
+ .dijitDropDownButton,
+ .dijitComboButton {
+ /* outside of button */
+ margin: 0.2em;
+ vertical-align: middle;
+ }
+
+ .dijitButtonContents {
+ display: block; /* to make focus border rectangular */
+ }
+ td.dijitButtonContents {
+ display: table-cell; /* but don't affect Select, ComboButton */
+ }
+
+ .dijitButtonNode img {
+ /* make text and images line up cleanly */
+ vertical-align: middle;
+ /*margin-bottom:.2em;*/
+ }
+
+ .dijitToolbar .dijitComboButton {
+ /* because Toolbar only draws a border around the hovered thing */
+ border-collapse: separate;
+ }
+
+ .dijitToolbar .dijitToggleButton,
+ .dijitToolbar .dijitButton,
+ .dijitToolbar .dijitDropDownButton,
+ .dijitToolbar .dijitComboButton {
+ margin: 0;
+ }
+
+ .dijitToolbar .dijitButtonContents {
+ /* just because it used to be this way */
+ padding: 1px 2px;
+ }
+
+ .dj_webkit .dijitToolbar .dijitDropDownButton {
+ padding-left: 0.3em;
+ }
+ .dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner {
+ padding: 0;
+ }
+
+ .dijitSelect {
+ border: 1px solid gray;
+ }
+ .dijitButtonNode {
+ /* Node that is acting as a button -- may or may not be a BUTTON element */
+ border: 1px solid gray;
+ margin: 0;
+ line-height: normal;
+ vertical-align: middle;
+ text-align: center;
+ white-space: nowrap;
+ }
+ .dj_webkit .dijitSpinner .dijitSpinnerButtonContainer {
+ /* apparent WebKit bug where messing with the font coupled with line-height:normal X 2 (dijitReset & dijitButtonNode)
+ can be different than just a single line-height:normal, visible in InlineEditBox/Spinner */
+ line-height: inherit;
+ }
+ .dijitTextBox .dijitButtonNode {
+ border-width: 0;
+ }
+
+ .dijitSelect,
+ .dijitSelect *,
+ .dijitButtonNode,
+ .dijitButtonNode * {
+ cursor: pointer;
+ -webkit-tap-highlight-color: transparent;
+ }
+
+ .dj_ie .dijitButtonNode {
+ /* ensure hasLayout */
+ zoom: 1;
+ }
+
+ .dj_ie .dijitButtonNode button {
+ /*
+ disgusting hack to get rid of spurious padding around button elements
+ on IE. MSIE is truly the web's boat anchor.
+ */
+ overflow: visible;
+ }
+
+ div.dijitArrowButton {
+ float: right;
+ }
+
+ /******
+ TextBox related.
+ Everything that has an
+*******/
+
+ .dijitTextBox {
+ border: solid black 1px;
+ width: 15em; /* need to set default size on outer node since inner nodes say and . user can override */
+ vertical-align: middle;
+ }
+
+ .dijitTextBoxReadOnly,
+ .dijitTextBoxDisabled {
+ color: gray;
+ }
+ .dj_safari .dijitTextBoxDisabled input {
+ color: #b0b0b0; /* because Safari lightens disabled input/textarea no matter what color you specify */
+ }
+ .dj_safari textarea.dijitTextAreaDisabled {
+ color: #333; /* because Safari lightens disabled input/textarea no matter what color you specify */
+ }
+ .dj_gecko .dijitTextBoxReadOnly input.dijitInputField, /* disable arrow and validation presentation inputs but allow real input for text selection */
+ .dj_gecko .dijitTextBoxDisabled input {
+ -moz-user-input: none; /* prevent focus of disabled textbox buttons */
+ }
+
+ .dijitPlaceHolder {
+ /* hint text that appears in a textbox until user starts typing */
+ color: #aaaaaa;
+ font-style: italic;
+ position: absolute;
+ top: 0;
+ left: 0;
+ white-space: nowrap;
+ pointer-events: none; /* so cut/paste context menu shows up when right clicking */
+ }
+
+ .dijitTimeTextBox {
+ width: 8em;
+ }
+
+ /* rules for webkit to deal with fuzzy blue focus border */
+ .dijitTextBox input:focus {
+ outline: none; /* blue fuzzy line looks wrong on combobox or something w/validation icon showing */
+ }
+ .dijitTextBoxFocused {
+ outline: 5px -webkit-focus-ring-color;
+ }
+
+ .dijitSelect input,
+ .dijitTextBox input {
+ float: left; /* needed by IE to remove secret margin */
+ }
+ .dj_ie6 input.dijitTextBox,
+ .dj_ie6 .dijitTextBox input {
+ float: none;
+ }
+ .dijitInputInner {
+ /* for when an is embedded inside an inline-block with a size and border */
+ border: 0 !important;
+ background-color: transparent !important;
+ width: 100% !important;
+ /* IE dislikes horizontal tweaking combined with width:100% so punish everyone for consistency */
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ margin-left: 0 !important;
+ margin-right: 0 !important;
+ }
+ .dj_a11y .dijitTextBox input {
+ margin: 0 !important;
+ }
+ .dijitValidationTextBoxError input.dijitValidationInner,
+ .dijitSelect input,
+ .dijitTextBox input.dijitArrowButtonInner {
+ /*
used to display arrow icon/validation icon, or in arrow character in high contrast mode.
+ * The css below is a trick to hide the character in non-high-contrast mode
+ */
+ text-indent: -2em !important;
+ direction: ltr !important;
+ text-align: left !important;
+ height: auto !important;
+ }
+ .dj_ie .dijitSelect input,
+ .dj_ie .dijitTextBox input,
+ .dj_ie input.dijitTextBox {
+ overflow-y: visible; /* inputs need help expanding when padding is added or line-height is adjusted */
+ line-height: normal; /* strict mode */
+ }
+ .dijitSelect .dijitSelectLabel span {
+ line-height: 100%;
+ }
+ .dj_ie .dijitSelect .dijitSelectLabel {
+ line-height: normal;
+ }
+ .dj_ie6 .dijitSelect .dijitSelectLabel,
+ .dj_ie7 .dijitSelect .dijitSelectLabel,
+ .dj_ie8 .dijitSelect .dijitSelectLabel,
+ .dj_iequirks .dijitSelect .dijitSelectLabel,
+ .dijitSelect td,
+ .dj_ie6 .dijitSelect input,
+ .dj_iequirks .dijitSelect input,
+ .dj_ie6 .dijitSelect .dijitValidationContainer,
+ .dj_ie6 .dijitTextBox input,
+ .dj_ie6 input.dijitTextBox,
+ .dj_iequirks .dijitTextBox input.dijitValidationInner,
+ .dj_iequirks .dijitTextBox input.dijitArrowButtonInner,
+ .dj_iequirks .dijitTextBox input.dijitSpinnerButtonInner,
+ .dj_iequirks .dijitTextBox input.dijitInputInner,
+ .dj_iequirks input.dijitTextBox {
+ line-height: 100%; /* IE7 problem where the icon is vertically way too low w/o this */
+ }
+ .dj_a11y input.dijitValidationInner,
+ .dj_a11y input.dijitArrowButtonInner {
+ /* (in high contrast mode) revert rules from above so character displays */
+ text-indent: 0 !important;
+ width: 1em !important;
+ color: black !important;
+ }
+ .dijitValidationTextBoxError .dijitValidationContainer {
+ display: inline;
+ cursor: default;
+ }
+
+ /* ComboBox & Spinner */
+
+ .dijitSpinner .dijitSpinnerButtonContainer,
+ .dijitComboBox .dijitArrowButtonContainer {
+ /* dividing line between input area and up/down button(s) for ComboBox and Spinner */
+ border-width: 0 0 0 1px !important; /* !important needed due to wayward ".theme .dijitButtonNode" rules */
+ }
+ .dj_a11y .dijitSelect .dijitArrowButtonContainer,
+ .dijitToolbar .dijitComboBox .dijitArrowButtonContainer {
+ /* overrides above rule plus mirror-image rule in dijit_rtl.css to have no divider when ComboBox in Toolbar */
+ border-width: 0 !important;
+ }
+
+ .dijitComboBoxMenu {
+ /* Drop down menu is implemented as
... but we don't want circles before each item */
+ list-style-type: none;
+ }
+ .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {
+ /* dividing line between input area and up/down button(s) for ComboBox and Spinner */
+ border-width: 0;
+ }
+ .dj_ie .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {
+ clear: both; /* IE workaround */
+ }
+
+ .dj_ie .dijitToolbar .dijitComboBox {
+ /* make combobox buttons align properly with other buttons in a toolbar */
+ vertical-align: middle;
+ }
+
+ /* Spinner */
+
+ .dijitTextBox .dijitSpinnerButtonContainer {
+ width: 1em;
+ position: relative !important;
+ overflow: hidden;
+ }
+ .dijitSpinner .dijitSpinnerButtonInner {
+ width: 1em;
+ visibility: hidden !important; /* just a sizing element */
+ overflow-x: hidden;
+ }
+ .dijitComboBox .dijitButtonNode,
+ .dijitSpinnerButtonContainer .dijitButtonNode {
+ border-width: 0;
+ }
+ .dj_a11y .dijitSpinnerButtonContainer .dijitButtonNode {
+ border-width: 0px !important;
+ border-style: solid !important;
+ }
+ .dj_a11y .dijitTextBox .dijitSpinnerButtonContainer,
+ .dj_a11y .dijitSpinner .dijitArrowButtonInner,
+ .dj_a11y .dijitSpinnerButtonContainer input {
+ width: 1em !important;
+ }
+ .dj_a11y .dijitSpinner .dijitArrowButtonInner {
+ margin: 0 auto !important; /* should auto-center */
+ }
+ .dj_ie .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {
+ padding-left: 0.3em !important;
+ padding-right: 0.3em !important;
+ margin-left: 0.3em !important;
+ margin-right: 0.3em !important;
+ width: 1.4em !important;
+ }
+ .dj_ie7 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {
+ padding-left: 0 !important; /* manually center INPUT: character is .5em and total width = 1em */
+ padding-right: 0 !important;
+ width: 1em !important;
+ }
+ .dj_ie6 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {
+ margin-left: 0.1em !important;
+ margin-right: 0.1em !important;
+ width: 1em !important;
+ }
+ .dj_iequirks .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {
+ margin-left: 0 !important;
+ margin-right: 0 !important;
+ width: 2em !important;
+ }
+ .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {
+ /* note: .dijitInputLayoutContainer makes this rule override .dijitArrowButton settings
+ * for dijit.form.Button
+ */
+ padding: 0;
+ position: absolute !important;
+ right: 0;
+ float: none;
+ height: 50%;
+ width: 100%;
+ bottom: auto;
+ left: 0;
+ right: auto;
+ }
+ .dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {
+ width: auto;
+ }
+ .dj_a11y .dijitSpinnerButtonContainer .dijitArrowButton {
+ overflow: visible !important;
+ }
+ .dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton {
+ top: 50%;
+ border-top-width: 1px !important;
+ }
+ .dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton {
+ top: 0;
+ }
+ .dijitSpinner .dijitArrowButtonInner {
+ margin: auto;
+ overflow-x: hidden;
+ height: 100% !important;
+ }
+ .dj_iequirks .dijitSpinner .dijitArrowButtonInner {
+ height: auto !important;
+ }
+ .dijitSpinner .dijitArrowButtonInner .dijitInputField {
+ transform: scale(0.5);
+ transform-origin: left top;
+ padding-top: 0;
+ padding-bottom: 0;
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ width: 100%;
+ visibility: hidden;
+ }
+ .dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField {
+ zoom: 50%; /* emulate transform: scale(0.5) */
+ }
+ .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner {
+ overflow: hidden;
+ }
+
+ .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {
+ width: 100%;
+ }
+ .dj_iequirks .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {
+ width: 1em; /* matches .dj_a11y .dijitTextBox .dijitSpinnerButtonContainer rule - 100% is the whole screen width in quirks */
+ }
+ .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {
+ vertical-align: top;
+ visibility: visible;
+ }
+ .dj_a11y .dijitSpinnerButtonContainer {
+ width: 1em;
+ }
+
+ /****
+ dijit.form.CheckBox
+ &
+ dijit.form.RadioButton
+ ****/
+
+ .dijitCheckBox,
+ .dijitRadio,
+ .dijitCheckBoxInput {
+ padding: 0;
+ border: 0;
+ width: 16px;
+ height: 16px;
+ background-position: center center;
+ background-repeat: no-repeat;
+ overflow: hidden;
+ }
+
+ .dijitCheckBox input,
+ .dijitRadio input {
+ margin: 0;
+ padding: 0;
+ display: block;
+ }
+
+ .dijitCheckBoxInput {
+ /* place the actual input on top, but invisible */
+ opacity: 0;
+ }
+
+ .dj_ie .dijitCheckBoxInput {
+ filter: alpha(opacity=0);
+ }
+
+ .dj_a11y .dijitCheckBox,
+ .dj_a11y .dijitRadio {
+ /* in a11y mode we display the native checkbox (not the icon), so don't restrict the size */
+ width: auto !important;
+ height: auto !important;
+ }
+ .dj_a11y .dijitCheckBoxInput {
+ opacity: 1;
+ filter: none;
+ width: auto;
+ height: auto;
+ }
+
+ .dj_a11y .dijitFocusedLabel {
+ /* for checkboxes or radio buttons in high contrast mode, use border rather than outline to indicate focus (outline does not work in FF)*/
+ border: 1px dotted;
+ outline: 0px !important;
+ }
+
+ /****
+ dijit.ProgressBar
+ ****/
+
+ .dijitProgressBar {
+ z-index: 0; /* so z-index settings below have no effect outside of the ProgressBar */
+ }
+ .dijitProgressBarEmpty {
+ /* outer container and background of the bar that's not finished yet*/
+ position: relative;
+ overflow: hidden;
+ border: 1px solid black; /* a11y: border necessary for high-contrast mode */
+ z-index: 0; /* establish a stacking context for this progress bar */
+ }
+
+ .dijitProgressBarFull {
+ /* outer container for background of bar that is finished */
+ position: absolute;
+ overflow: hidden;
+ z-index: -1;
+ top: 0;
+ width: 100%;
+ }
+ .dj_ie6 .dijitProgressBarFull {
+ height: 1.6em;
+ }
+
+ .dijitProgressBarTile {
+ /* inner container for finished portion */
+ position: absolute;
+ overflow: hidden;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ margin: 0;
+ padding: 0;
+ width: 100%; /* needed for IE/quirks */
+ height: auto;
+ background-color: #aaa;
+ background-attachment: fixed;
+ }
+
+ .dj_a11y .dijitProgressBarTile {
+ /* a11y: The border provides visibility in high-contrast mode */
+ border-width: 2px;
+ border-style: solid;
+ background-color: transparent !important;
+ }
+
+ .dj_ie6 .dijitProgressBarTile {
+ /* width:auto works in IE6 with position:static but not position:absolute */
+ position: static;
+ /* height:auto or 100% does not work in IE6 */
+ height: 1.6em;
+ }
+
+ .dijitProgressBarIndeterminate .dijitProgressBarTile {
+ /* animated gif for 'indeterminate' mode */
+ }
+
+ .dijitProgressBarIndeterminateHighContrastImage {
+ display: none;
+ }
+
+ .dj_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage {
+ display: block;
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: auto;
+ }
+
+ .dijitProgressBarLabel {
+ display: block;
+ position: static;
+ width: 100%;
+ text-align: center;
+ background-color: transparent !important;
+ }
+
+ /****
+ dijit.Tooltip
+ ****/
+
+ .dijitTooltip {
+ position: absolute;
+ z-index: 2000;
+ display: block;
+ /* make visible but off screen */
+ left: 0;
+ top: -10000px;
+ overflow: visible;
+ }
+
+ .dijitTooltipContainer {
+ border: solid black 2px;
+ background: #b8b5b5;
+ color: black;
+ font-size: small;
+ }
+
+ .dijitTooltipFocusNode {
+ padding: 2px 2px 2px 2px;
+ }
+
+ .dijitTooltipConnector {
+ position: absolute;
+ }
+ .dj_a11y .dijitTooltipConnector {
+ display: none; /* won't show b/c it's background-image; hide to avoid border gap */
+ }
+
+ .dijitTooltipData {
+ display: none;
+ }
+
+ /* Layout widgets. This is essential CSS to make layout work (it isn't "styling" CSS)
+ make sure that the position:absolute in dijitAlign* overrides other classes */
+
+ .dijitLayoutContainer {
+ position: relative;
+ display: block;
+ overflow: hidden;
+ }
+
+ .dijitAlignTop,
+ .dijitAlignBottom,
+ .dijitAlignLeft,
+ .dijitAlignRight {
+ position: absolute;
+ overflow: hidden;
+ }
+
+ body .dijitAlignClient {
+ position: absolute;
+ }
+
+ /*
+ * BorderContainer
+ *
+ * .dijitBorderContainer is a stylized layout where panes have border and margin.
+ * .dijitBorderContainerNoGutter is a raw layout.
+ */
+ .dijitBorderContainer,
+ .dijitBorderContainerNoGutter {
+ position: relative;
+ overflow: hidden;
+ z-index: 0; /* so z-index settings below have no effect outside of the BorderContainer */
+ }
+
+ .dijitBorderContainerPane,
+ .dijitBorderContainerNoGutterPane {
+ position: absolute !important; /* !important to override position:relative in dijitTabContainer etc. */
+ z-index: 2; /* above the splitters so that off-by-one browser errors don't cover up border of pane */
+ }
+
+ .dijitBorderContainer > .dijitTextArea {
+ /* On Safari, for SimpleTextArea inside a BorderContainer,
+ don't want to display the grip to resize */
+ resize: none;
+ }
+
+ .dijitGutter {
+ /* gutter is just a place holder for empty space between panes in BorderContainer */
+ position: absolute;
+ font-size: 1px; /* needed by IE6 even though div is empty, otherwise goes to 15px */
+ }
+
+ /* SplitContainer
+
+ 'V' == container that splits vertically (up/down)
+ 'H' = horizontal (left/right)
+*/
+
+ .dijitSplitter {
+ position: absolute;
+ overflow: hidden;
+ z-index: 10; /* above the panes so that splitter focus is visible on FF, see #7583*/
+ background-color: #fff;
+ border-color: gray;
+ border-style: solid;
+ border-width: 0;
+ }
+ .dj_ie .dijitSplitter {
+ z-index: 1; /* behind the panes so that pane borders aren't obscured see test_Gui.html/[14392] */
+ }
+
+ .dijitSplitterActive {
+ z-index: 11 !important;
+ }
+
+ .dijitSplitterCover {
+ position: absolute;
+ z-index: -1;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ }
+
+ .dijitSplitterCoverActive {
+ z-index: 3 !important;
+ }
+
+ /* #6945: stop mouse events */
+ .dj_ie .dijitSplitterCover {
+ background: white;
+ opacity: 0;
+ }
+ .dj_ie6 .dijitSplitterCover,
+ .dj_ie7 .dijitSplitterCover,
+ .dj_ie8 .dijitSplitterCover {
+ filter: alpha(opacity=0);
+ }
+
+ .dijitSplitterH {
+ height: 7px;
+ border-top: 1px;
+ border-bottom: 1px;
+ cursor: row-resize;
+ -webkit-tap-highlight-color: transparent;
+ }
+ .dijitSplitterV {
+ width: 7px;
+ border-left: 1px;
+ border-right: 1px;
+ cursor: col-resize;
+ -webkit-tap-highlight-color: transparent;
+ }
+ .dijitSplitContainer {
+ position: relative;
+ overflow: hidden;
+ display: block;
+ }
+
+ .dijitSplitPane {
+ position: absolute;
+ }
+
+ .dijitSplitContainerSizerH,
+ .dijitSplitContainerSizerV {
+ position: absolute;
+ font-size: 1px;
+ background-color: ThreeDFace;
+ border: 1px solid;
+ border-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight;
+ margin: 0;
+ }
+
+ .dijitSplitContainerSizerH .thumb,
+ .dijitSplitterV .dijitSplitterThumb {
+ overflow: hidden;
+ position: absolute;
+ top: 49%;
+ }
+
+ .dijitSplitContainerSizerV .thumb,
+ .dijitSplitterH .dijitSplitterThumb {
+ position: absolute;
+ left: 49%;
+ }
+
+ .dijitSplitterShadow,
+ .dijitSplitContainerVirtualSizerH,
+ .dijitSplitContainerVirtualSizerV {
+ font-size: 1px;
+ background-color: ThreeDShadow;
+ opacity: 0.5;
+ margin: 0;
+ }
+
+ .dijitSplitContainerSizerH,
+ .dijitSplitContainerVirtualSizerH {
+ cursor: col-resize;
+ }
+
+ .dijitSplitContainerSizerV,
+ .dijitSplitContainerVirtualSizerV {
+ cursor: row-resize;
+ }
+
+ .dj_a11y .dijitSplitterH {
+ border-top: 1px solid #d3d3d3 !important;
+ border-bottom: 1px solid #d3d3d3 !important;
+ }
+ .dj_a11y .dijitSplitterV {
+ border-left: 1px solid #d3d3d3 !important;
+ border-right: 1px solid #d3d3d3 !important;
+ }
+
+ /* ContentPane */
+
+ .dijitContentPane {
+ display: block;
+ overflow: auto; /* if we don't have this (or overflow:hidden), then Widget.resizeTo() doesn't make sense for ContentPane */
+ -webkit-overflow-scrolling: touch;
+ }
+
+ .dijitContentPaneSingleChild {
+ /*
+ * if the ContentPane holds a single layout widget child which is being sized to match the content pane,
+ * then the ContentPane should never get a scrollbar (but it does due to browser bugs, see #9449
+ */
+ overflow: hidden;
+ }
+
+ .dijitContentPaneLoading .dijitIconLoading,
+ .dijitContentPaneError .dijitIconError {
+ margin-right: 9px;
+ }
+
+ /* TitlePane and Fieldset */
+
+ .dijitTitlePane {
+ display: block;
+ overflow: hidden;
+ }
+ .dijitFieldset {
+ border: 1px solid gray;
+ }
+ .dijitTitlePaneTitle,
+ .dijitFieldsetTitle {
+ cursor: pointer;
+ -webkit-tap-highlight-color: transparent;
+ }
+ .dijitTitlePaneTitleFixedOpen,
+ .dijitTitlePaneTitleFixedClosed,
+ .dijitFieldsetTitleFixedOpen,
+ .dijitFieldsetTitleFixedClosed {
+ /* TitlePane or Fieldset that cannot be toggled */
+ cursor: default;
+ }
+ .dijitTitlePaneTitle * {
+ vertical-align: middle;
+ }
+ .dijitTitlePane .dijitArrowNodeInner,
+ .dijitFieldset .dijitArrowNodeInner {
+ /* normally, hide arrow text in favor of icon */
+ display: none;
+ }
+ .dj_a11y .dijitTitlePane .dijitArrowNodeInner,
+ .dj_a11y .dijitFieldset .dijitArrowNodeInner {
+ /* ... except in a11y mode, then show text arrow */
+ display: inline;
+ font-family: monospace; /* because - and + are different widths */
+ }
+ .dj_a11y .dijitTitlePane .dijitArrowNode,
+ .dj_a11y .dijitFieldset .dijitArrowNode {
+ /* ... and hide icon (TODO: just point dijitIcon class on the icon, and it hides automatically) */
+ display: none;
+ }
+ .dijitTitlePaneTitleFixedOpen .dijitArrowNode,
+ .dijitTitlePaneTitleFixedOpen .dijitArrowNodeInner,
+ .dijitTitlePaneTitleFixedClosed .dijitArrowNode,
+ .dijitTitlePaneTitleFixedClosed .dijitArrowNodeInner,
+ .dijitFieldsetTitleFixedOpen .dijitArrowNode,
+ .dijitFieldsetTitleFixedOpen .dijitArrowNodeInner,
+ .dijitFieldsetTitleFixedClosed .dijitArrowNode,
+ .dijitFieldsetTitleFixedClosed .dijitArrowNodeInner {
+ /* don't show the open close icon or text arrow; it makes the user think the pane is closable */
+ display: none !important; /* !important to override above a11y rules to show text arrow */
+ }
+
+ .dj_ie6 .dijitTitlePaneContentOuter,
+ .dj_ie6 .dijitTitlePane .dijitTitlePaneTitle {
+ /* force hasLayout to ensure borders etc, show up */
+ zoom: 1;
+ }
+
+ /* Color Palette
+ * Sizes designed so that table cell positions match icons in underlying image,
+ * which appear at 20x20 intervals.
+ */
+
+ .dijitColorPalette {
+ border: 1px solid #999;
+ background: #fff;
+ position: relative;
+ }
+
+ .dijitColorPalette .dijitPaletteTable {
+ /* Table that holds the palette cells, and overlays image file with color swatches.
+ * padding/margin to align table with image.
+ */
+ padding: 2px 3px 3px 3px;
+ position: relative;
+ overflow: hidden;
+ outline: 0;
+ border-collapse: separate;
+ }
+ .dj_ie6 .dijitColorPalette .dijitPaletteTable,
+ .dj_ie7 .dijitColorPalette .dijitPaletteTable,
+ .dj_iequirks .dijitColorPalette .dijitPaletteTable {
+ /* using padding above so that focus border isn't cutoff on moz/webkit,
+ * but using margin on IE because padding doesn't seem to work
+ */
+ padding: 0;
+ margin: 2px 3px 3px 3px;
+ }
+
+ .dijitColorPalette .dijitPaletteCell {
+ /* in the */
+ font-size: 1px;
+ vertical-align: middle;
+ text-align: center;
+ background: none;
+ }
+ .dijitColorPalette .dijitPaletteImg {
+ /* Called dijitPaletteImg for back-compat, this actually wraps the color swatch with a border and padding */
+ padding: 1px; /* white area between gray border and color swatch */
+ border: 1px solid #999;
+ margin: 2px 1px;
+ cursor: default;
+ font-size: 1px; /* prevent from getting bigger just to hold a character */
+ }
+ .dj_gecko .dijitColorPalette .dijitPaletteImg {
+ padding-bottom: 0; /* workaround rendering glitch on FF, it adds an extra pixel at the bottom */
+ }
+ .dijitColorPalette .dijitColorPaletteSwatch {
+ /* the actual part where the color is */
+ width: 14px;
+ height: 12px;
+ }
+ .dijitPaletteTable td {
+ padding: 0;
+ }
+ .dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg {
+ /* hovered color swatch */
+ border: 1px solid #000;
+ }
+
+ .dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg,
+ .dijitColorPalette .dijitPaletteTable .dijitPaletteCellSelected .dijitPaletteImg {
+ border: 2px solid #000;
+ margin: 1px 0; /* reduce margin to compensate for increased border */
+ }
+
+ .dj_a11y .dijitColorPalette .dijitPaletteTable,
+ .dj_a11y .dijitColorPalette .dijitPaletteTable * {
+ /* table cells are to catch events, but the swatches are in the PaletteImg behind the table */
+ background-color: transparent !important;
+ }
+
+ /* AccordionContainer */
+
+ .dijitAccordionContainer {
+ border: 1px solid #b7b7b7;
+ border-top: 0 !important;
+ }
+ .dijitAccordionTitle {
+ cursor: pointer;
+ -webkit-tap-highlight-color: transparent;
+ }
+ .dijitAccordionTitleSelected {
+ cursor: default;
+ }
+
+ /* images off, high-contrast mode styles */
+ .dijitAccordionTitle .arrowTextUp,
+ .dijitAccordionTitle .arrowTextDown {
+ display: none;
+ font-size: 0.65em;
+ font-weight: normal !important;
+ }
+
+ .dj_a11y .dijitAccordionTitle .arrowTextUp,
+ .dj_a11y .dijitAccordionTitleSelected .arrowTextDown {
+ display: inline;
+ }
+
+ .dj_a11y .dijitAccordionTitleSelected .arrowTextUp {
+ display: none;
+ }
+
+ .dijitAccordionChildWrapper {
+ /* this is the node whose height is adjusted */
+ overflow: hidden;
+ }
+
+ /* Calendar */
+
+ .dijitCalendarContainer table {
+ width: auto; /* in case user has specified a width for the TABLE nodes, see #10553 */
+ clear: both; /* clear margin created for left/right month arrows; needed on IE10 for CalendarLite */
+ }
+ .dijitCalendarContainer th,
+ .dijitCalendarContainer td {
+ padding: 0;
+ vertical-align: middle;
+ }
+
+ .dijitCalendarMonthContainer {
+ text-align: center;
+ }
+ .dijitCalendarDecrementArrow {
+ float: left;
+ }
+ .dijitCalendarIncrementArrow {
+ float: right;
+ }
+
+ .dijitCalendarYearLabel {
+ white-space: nowrap; /* make sure previous, current, and next year appear on same row */
+ }
+
+ .dijitCalendarNextYear {
+ margin: 0 0 0 0.55em;
+ }
+
+ .dijitCalendarPreviousYear {
+ margin: 0 0.55em 0 0;
+ }
+
+ .dijitCalendarIncrementControl {
+ vertical-align: middle;
+ }
+
+ .dijitCalendarIncrementControl,
+ .dijitCalendarDateTemplate,
+ .dijitCalendarMonthLabel,
+ .dijitCalendarPreviousYear,
+ .dijitCalendarNextYear {
+ cursor: pointer;
+ -webkit-tap-highlight-color: transparent;
+ }
+
+ .dijitCalendarDisabledDate {
+ color: gray;
+ text-decoration: line-through;
+ cursor: default;
+ }
+
+ .dijitSpacer {
+ /* don't display it, but make it affect the width */
+ position: relative;
+ height: 1px;
+ overflow: hidden;
+ visibility: hidden;
+ }
+
+ /* Styling for month drop down list */
+
+ .dijitCalendarMonthMenu .dijitCalendarMonthLabel {
+ text-align: center;
+ }
+
+ /* Menu */
+
+ .dijitMenu {
+ border: 1px solid black;
+ background-color: white;
+ }
+ .dijitMenuTable {
+ border-collapse: collapse;
+ border-width: 0;
+ background-color: white;
+ }
+
+ /* workaround for webkit bug #8427, remove this when it is fixed upstream */
+ .dj_webkit .dijitMenuTable td[colspan="2"] {
+ border-right: hidden;
+ }
+
+ .dijitMenuItem {
+ text-align: left;
+ white-space: nowrap;
+ padding: 0.1em 0.2em;
+ cursor: pointer;
+ -webkit-tap-highlight-color: transparent;
+ }
+
+ /*
+No need to show a focus border since it's obvious from the shading, and there's a .dj_a11y .dijitMenuItemSelected
+rule below that handles the high contrast case when there's no shading.
+Hiding the focus border also works around webkit bug https://code.google.com/p/chromium/issues/detail?id=125779.
+*/
+ .dijitMenuItem:focus {
+ outline: none;
+ }
+
+ .dijitMenuPassive .dijitMenuItemHover,
+ .dijitMenuItemSelected {
+ /*
+ * dijitMenuItemHover refers to actual mouse over
+ * dijitMenuItemSelected is used after a menu has been "activated" by
+ * clicking it, tabbing into it, or being opened from a parent menu,
+ * and denotes that the menu item has focus or that focus is on a child
+ * menu
+ */
+ background-color: black;
+ color: white;
+ }
+
+ .dijitMenuItemIcon,
+ .dijitMenuExpand {
+ background-repeat: no-repeat;
+ }
+
+ .dijitMenuItemDisabled * {
+ /* for a disabled menu item, just set it to mostly transparent */
+ opacity: 0.5;
+ cursor: default;
+ }
+ .dj_ie .dj_a11y .dijitMenuItemDisabled,
+ .dj_ie .dj_a11y .dijitMenuItemDisabled *,
+ .dj_ie .dijitMenuItemDisabled * {
+ color: gray;
+ filter: alpha(opacity=35);
+ }
+
+ .dijitMenuItemLabel {
+ vertical-align: middle;
+ }
+
+ .dj_a11y .dijitMenuItemSelected {
+ border: 1px dotted black !important; /* for 2.0 use outline instead, to prevent jitter */
+ }
+
+ .dj_a11y .dijitMenuItemSelected .dijitMenuItemLabel {
+ border-width: 1px;
+ border-style: solid;
+ }
+ .dj_ie8 .dj_a11y .dijitMenuItemLabel {
+ position: static;
+ }
+
+ .dijitMenuExpandA11y {
+ display: none;
+ }
+ .dj_a11y .dijitMenuExpandA11y {
+ display: inline;
+ }
+
+ .dijitMenuSeparator td {
+ border: 0;
+ padding: 0;
+ }
+
+ /* separator can be two pixels -- set border of either one to 0 to have only one */
+ .dijitMenuSeparatorTop {
+ height: 50%;
+ margin: 0;
+ margin-top: 3px;
+ font-size: 1px;
+ }
+
+ .dijitMenuSeparatorBottom {
+ height: 50%;
+ margin: 0;
+ margin-bottom: 3px;
+ font-size: 1px;
+ }
+
+ /* CheckedMenuItem and RadioMenuItem */
+ .dijitMenuItemIconChar {
+ display: none; /* don't display except in high contrast mode */
+ visibility: hidden; /* for high contrast mode when menuitem is unchecked: leave space for when it is checked */
+ }
+ .dj_a11y .dijitMenuItemIconChar {
+ display: inline; /* display character in high contrast mode, since icon doesn't show */
+ }
+ .dijitCheckedMenuItemChecked .dijitMenuItemIconChar,
+ .dijitRadioMenuItemChecked .dijitMenuItemIconChar {
+ visibility: visible; /* menuitem is checked */
+ }
+ .dj_ie .dj_a11y .dijitMenuBar .dijitMenuItem {
+ /* so bottom border of MenuBar appears on IE7 in high-contrast mode */
+ margin: 0;
+ }
+
+ /* StackContainer */
+
+ .dijitStackController .dijitToggleButtonChecked * {
+ cursor: default; /* because pressing it has no effect */
+ }
+
+ /***
+TabContainer
+
+Main class hierarchy:
+
+.dijitTabContainer - the whole TabContainer
+ .dijitTabController / .dijitTabListContainer-top - wrapper for tab buttons, scroll buttons
+ .dijitTabListWrapper / .dijitTabContainerTopStrip - outer wrapper for tab buttons (normal width)
+ .nowrapTabStrip / .dijitTabContainerTop-tabs - inner wrapper for tab buttons (50K width)
+ .dijitTabPaneWrapper - wrapper for content panes, has all borders except the one between content and tabs
+***/
+
+ .dijitTabContainer {
+ z-index: 0; /* so z-index settings below have no effect outside of the TabContainer */
+ overflow: visible; /* prevent off-by-one-pixel errors from hiding bottom border (opposite tab labels) */
+ }
+ .dj_ie6 .dijitTabContainer {
+ /* workaround IE6 problem when tall content overflows TabContainer, see editor/test_FullScreen.html */
+ overflow: hidden;
+ }
+ .dijitTabContainerNoLayout {
+ width: 100%; /* otherwise ScrollingTabController goes to 50K pixels wide */
+ }
+
+ .dijitTabContainerBottom-tabs,
+ .dijitTabContainerTop-tabs,
+ .dijitTabContainerLeft-tabs,
+ .dijitTabContainerRight-tabs {
+ z-index: 1;
+ overflow: visible !important; /* so tabs can cover up border adjacent to container */
+ }
+
+ .dijitTabController {
+ z-index: 1;
+ }
+ .dijitTabContainerBottom-container,
+ .dijitTabContainerTop-container,
+ .dijitTabContainerLeft-container,
+ .dijitTabContainerRight-container {
+ z-index: 0;
+ overflow: hidden;
+ border: 1px solid black;
+ }
+ .nowrapTabStrip {
+ width: 50000px;
+ display: block;
+ position: relative;
+ text-align: left; /* just in case ancestor has non-standard setting */
+ z-index: 1;
+ }
+ .dijitTabListWrapper {
+ overflow: hidden;
+ z-index: 1;
+ }
+
+ .dj_a11y .tabStripButton img {
+ /* hide the icons (or rather the empty space where they normally appear) because text will appear instead */
+ display: none;
+ }
+
+ .dijitTabContainerTop-tabs {
+ border-bottom: 1px solid black;
+ }
+ .dijitTabContainerTop-container {
+ border-top: 0;
+ }
+
+ .dijitTabContainerLeft-tabs {
+ border-right: 1px solid black;
+ float: left; /* needed for IE7 RTL mode */
+ }
+ .dijitTabContainerLeft-container {
+ border-left: 0;
+ }
+
+ .dijitTabContainerBottom-tabs {
+ border-top: 1px solid black;
+ }
+ .dijitTabContainerBottom-container {
+ border-bottom: 0;
+ }
+
+ .dijitTabContainerRight-tabs {
+ border-left: 1px solid black;
+ float: left; /* needed for IE7 RTL mode */
+ }
+ .dijitTabContainerRight-container {
+ border-right: 0;
+ }
+
+ div.dijitTabDisabled,
+ .dj_ie div.dijitTabDisabled {
+ cursor: auto;
+ }
+
+ .dijitTab {
+ position: relative;
+ cursor: pointer;
+ -webkit-tap-highlight-color: transparent;
+ white-space: nowrap;
+ z-index: 3;
+ }
+ .dijitTab * {
+ /* make tab icons and close icon line up w/text */
+ vertical-align: middle;
+ }
+ .dijitTabChecked {
+ cursor: default; /* because clicking will have no effect */
+ }
+
+ .dijitTabContainerTop-tabs .dijitTab {
+ top: 1px; /* to overlap border on .dijitTabContainerTop-tabs */
+ }
+ .dijitTabContainerBottom-tabs .dijitTab {
+ top: -1px; /* to overlap border on .dijitTabContainerBottom-tabs */
+ }
+ .dijitTabContainerLeft-tabs .dijitTab {
+ left: 1px; /* to overlap border on .dijitTabContainerLeft-tabs */
+ }
+ .dijitTabContainerRight-tabs .dijitTab {
+ left: -1px; /* to overlap border on .dijitTabContainerRight-tabs */
+ }
+
+ .dijitTabContainerTop-tabs .dijitTab,
+ .dijitTabContainerBottom-tabs .dijitTab {
+ /* Inline-block */
+ display: inline-block; /* webkit and FF3 */
+ }
+
+ .tabStripButton {
+ z-index: 12;
+ }
+
+ .dijitTabButtonDisabled .tabStripButton {
+ display: none;
+ }
+
+ .dijitTabCloseButton {
+ margin-left: 1em;
+ }
+
+ .dijitTabCloseText {
+ display: none;
+ }
+
+ .dijitTab .tabLabel {
+ /* make sure tabs w/close button and w/out close button are same height, even w/small (<15px) font.
+ * assumes <=15px height for close button icon.
+ */
+ min-height: 15px;
+ display: inline-block;
+ }
+ .dijitNoIcon {
+ /* applied to / node when there is no icon specified */
+ display: none;
+ }
+ .dj_ie6 .dijitTab .dijitNoIcon {
+ /* because min-height (on .tabLabel, above) doesn't work on IE6 */
+ display: inline;
+ height: 15px;
+ width: 1px;
+ }
+
+ /* images off, high-contrast mode styles */
+
+ .dj_a11y .dijitTabCloseButton {
+ background-image: none !important;
+ width: auto !important;
+ height: auto !important;
+ }
+
+ .dj_a11y .dijitTabCloseText {
+ display: inline;
+ }
+
+ .dijitTabPane,
+ .dijitStackContainer-child,
+ .dijitAccordionContainer-child {
+ /* children of TabContainer, StackContainer, and AccordionContainer shouldn't have borders
+ * b/c a border is already there from the TabContainer/StackContainer/AccordionContainer itself.
+ */
+ border: none !important;
+ }
+
+ /* InlineEditBox */
+ .dijitInlineEditBoxDisplayMode {
+ border: 1px solid transparent; /* so keyline (border) on hover can appear without screen jump */
+ cursor: text;
+ }
+
+ .dj_a11y .dijitInlineEditBoxDisplayMode,
+ .dj_ie6 .dijitInlineEditBoxDisplayMode {
+ /* except that IE6 doesn't support transparent borders, nor does high contrast mode */
+ border: none;
+ }
+
+ .dijitInlineEditBoxDisplayModeHover,
+ .dj_a11y .dijitInlineEditBoxDisplayModeHover,
+ .dj_ie6 .dijitInlineEditBoxDisplayModeHover {
+ /* An InlineEditBox in view mode (click this to edit the text) */
+ background-color: #e2ebf2;
+ border: solid 1px black;
+ }
+
+ .dijitInlineEditBoxDisplayModeDisabled {
+ cursor: default;
+ }
+
+ /* Tree */
+ .dijitTree {
+ overflow: auto; /* for scrollbars when Tree has a height setting, and to prevent wrapping around float elements, see #11491 */
+ -webkit-tap-highlight-color: transparent;
+ }
+
+ .dijitTreeContainer {
+ float: left; /* for correct highlighting during horizontal scroll, see #16132 */
+ }
+
+ .dijitTreeIndent {
+ /* amount to indent each tree node (relative to parent node) */
+ width: 19px;
+ }
+
+ .dijitTreeRow,
+ .dijitTreeContent {
+ white-space: nowrap;
+ }
+
+ .dj_ie .dijitTreeLabel:focus {
+ /* workaround IE9 behavior where down arrowing through TreeNodes doesn't show focus outline */
+ outline: 1px dotted black;
+ }
+
+ .dijitTreeRow img {
+ /* make the expando and folder icons line up with the label */
+ vertical-align: middle;
+ }
+
+ .dijitTreeContent {
+ cursor: default;
+ }
+
+ .dijitExpandoText {
+ display: none;
+ }
+
+ .dj_a11y .dijitExpandoText {
+ display: inline;
+ padding-left: 10px;
+ padding-right: 10px;
+ font-family: monospace;
+ border-style: solid;
+ border-width: thin;
+ cursor: pointer;
+ }
+
+ .dijitTreeLabel {
+ margin: 0 4px;
+ }
+
+ /* Dialog */
+
+ .dijitDialog {
+ position: absolute;
+ z-index: 999;
+ overflow: hidden; /* override overflow: auto; from ContentPane to make dragging smoother */
+ }
+
+ .dijitDialogTitleBar {
+ cursor: move;
+ }
+ .dijitDialogFixed .dijitDialogTitleBar {
+ cursor: default;
+ }
+ .dijitDialogCloseIcon {
+ cursor: pointer;
+ -webkit-tap-highlight-color: transparent;
+ }
+ .dijitDialogPaneContent {
+ -webkit-overflow-scrolling: touch;
+ }
+ .dijitDialogUnderlayWrapper {
+ position: absolute;
+ left: 0;
+ top: 0;
+ z-index: 998;
+ display: none;
+ background: transparent !important;
+ }
+
+ .dijitDialogUnderlay {
+ background: #eee;
+ opacity: 0.5;
+ }
+
+ .dj_ie .dijitDialogUnderlay {
+ filter: alpha(opacity=50);
+ }
+
+ /* images off, high-contrast mode styles */
+ .dj_a11y .dijitSpinnerButtonContainer,
+ .dj_a11y .dijitDialog {
+ opacity: 1 !important;
+ background-color: white !important;
+ }
+
+ .dijitDialog .closeText {
+ display: none;
+ /* for the onhover border in high contrast on IE: */
+ position: absolute;
+ }
+
+ .dj_a11y .dijitDialog .closeText {
+ display: inline;
+ }
+
+ /* Slider */
+
+ .dijitSliderMoveable {
+ z-index: 99;
+ position: absolute !important;
+ display: block;
+ vertical-align: middle;
+ }
+
+ .dijitSliderMoveableH {
+ right: 0;
+ }
+ .dijitSliderMoveableV {
+ right: 50%;
+ }
+
+ .dj_a11y div.dijitSliderImageHandle,
+ .dijitSliderImageHandle {
+ margin: 0;
+ padding: 0;
+ position: relative !important;
+ border: 8px solid gray;
+ width: 0;
+ height: 0;
+ cursor: pointer;
+ -webkit-tap-highlight-color: transparent;
+ }
+ .dj_iequirks .dj_a11y .dijitSliderImageHandle {
+ font-size: 0;
+ }
+ .dj_ie7 .dijitSliderImageHandle {
+ overflow: hidden; /* IE7 workaround to make slider handle VISIBLE in non-a11y mode */
+ }
+ .dj_ie7 .dj_a11y .dijitSliderImageHandle {
+ overflow: visible; /* IE7 workaround to make slider handle VISIBLE in a11y mode */
+ }
+ .dj_a11y .dijitSliderFocused .dijitSliderImageHandle {
+ border: 4px solid #000;
+ height: 8px;
+ width: 8px;
+ }
+
+ .dijitSliderImageHandleV {
+ top: -8px;
+ right: -50%;
+ }
+
+ .dijitSliderImageHandleH {
+ left: 50%;
+ top: -5px;
+ vertical-align: top;
+ }
+
+ .dijitSliderBar {
+ border-style: solid;
+ border-color: black;
+ cursor: pointer;
+ -webkit-tap-highlight-color: transparent;
+ }
+
+ .dijitSliderBarContainerV {
+ position: relative;
+ height: 100%;
+ z-index: 1;
+ }
+
+ .dijitSliderBarContainerH {
+ position: relative;
+ z-index: 1;
+ }
+
+ .dijitSliderBarH {
+ height: 4px;
+ border-width: 1px 0;
+ }
+
+ .dijitSliderBarV {
+ width: 4px;
+ border-width: 0 1px;
+ }
+
+ .dijitSliderProgressBar {
+ background-color: red;
+ z-index: 1;
+ }
+
+ .dijitSliderProgressBarV {
+ position: static !important;
+ height: 0;
+ vertical-align: top;
+ text-align: left;
+ }
+
+ .dijitSliderProgressBarH {
+ position: absolute !important;
+ width: 0;
+ vertical-align: middle;
+ overflow: visible;
+ }
+
+ .dijitSliderRemainingBar {
+ overflow: hidden;
+ background-color: transparent;
+ z-index: 1;
+ }
+
+ .dijitSliderRemainingBarV {
+ height: 100%;
+ text-align: left;
+ }
+
+ .dijitSliderRemainingBarH {
+ width: 100% !important;
+ }
+
+ /* the slider bumper is the space consumed by the slider handle when it hangs over an edge */
+ .dijitSliderBumper {
+ overflow: hidden;
+ z-index: 1;
+ }
+
+ .dijitSliderBumperV {
+ width: 4px;
+ height: 8px;
+ border-width: 0 1px;
+ }
+
+ .dijitSliderBumperH {
+ width: 8px;
+ height: 4px;
+ border-width: 1px 0;
+ }
+
+ .dijitSliderBottomBumper,
+ .dijitSliderLeftBumper {
+ background-color: red;
+ }
+
+ .dijitSliderTopBumper,
+ .dijitSliderRightBumper {
+ background-color: transparent;
+ }
+
+ .dijitSliderDecoration {
+ text-align: center;
+ }
+
+ .dijitSliderDecorationC,
+ .dijitSliderDecorationV {
+ position: relative; /* needed for IE+quirks+RTL+vertical (rendering bug) but add everywhere for custom styling consistency but this messes up IE horizontal sliders */
+ }
+
+ .dijitSliderDecorationH {
+ width: 100%;
+ }
+
+ .dijitSliderDecorationV {
+ height: 100%;
+ white-space: nowrap;
+ }
+
+ .dijitSliderButton {
+ font-family: monospace;
+ margin: 0;
+ padding: 0;
+ display: block;
+ }
+
+ .dj_a11y .dijitSliderButtonInner {
+ visibility: visible !important;
+ }
+
+ .dijitSliderButtonContainer {
+ text-align: center;
+ height: 0; /* ??? */
+ }
+ .dijitSliderButtonContainer * {
+ cursor: pointer;
+ -webkit-tap-highlight-color: transparent;
+ }
+
+ .dijitSlider .dijitButtonNode {
+ padding: 0;
+ display: block;
+ }
+
+ .dijitRuleContainer {
+ position: relative;
+ overflow: visible;
+ }
+
+ .dijitRuleContainerV {
+ height: 100%;
+ line-height: 0;
+ float: left;
+ text-align: left;
+ }
+
+ .dj_opera .dijitRuleContainerV {
+ line-height: 2%;
+ }
+
+ .dj_ie .dijitRuleContainerV {
+ line-height: normal;
+ }
+
+ .dj_gecko .dijitRuleContainerV {
+ margin: 0 0 1px 0; /* mozilla bug workaround for float:left,height:100% block elements */
+ }
+
+ .dijitRuleMark {
+ position: absolute;
+ border: 1px solid black;
+ line-height: 0;
+ height: 100%;
+ }
+
+ .dijitRuleMarkH {
+ width: 0;
+ border-top-width: 0 !important;
+ border-bottom-width: 0 !important;
+ border-left-width: 0 !important;
+ }
+
+ .dijitRuleLabelContainer {
+ position: absolute;
+ }
+
+ .dijitRuleLabelContainerH {
+ text-align: center;
+ display: inline-block;
+ }
+
+ .dijitRuleLabelH {
+ position: relative;
+ left: -50%;
+ }
+
+ .dijitRuleLabelV {
+ /* so that long labels don't overflow to multiple rows, or overwrite slider itself */
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ }
+
+ .dijitRuleMarkV {
+ height: 0;
+ border-right-width: 0 !important;
+ border-bottom-width: 0 !important;
+ border-left-width: 0 !important;
+ width: 100%;
+ left: 0;
+ }
+
+ .dj_ie .dijitRuleLabelContainerV {
+ margin-top: -0.55em;
+ }
+
+ .dj_a11y .dijitSliderReadOnly,
+ .dj_a11y .dijitSliderDisabled {
+ opacity: 0.6;
+ }
+ .dj_ie .dj_a11y .dijitSliderReadOnly .dijitSliderBar,
+ .dj_ie .dj_a11y .dijitSliderDisabled .dijitSliderBar {
+ filter: alpha(opacity=40);
+ }
+
+ /* + and - Slider buttons: override theme settings to display icons */
+ .dj_a11y .dijitSlider .dijitSliderButtonContainer div {
+ font-family: monospace; /* otherwise hyphen is larger and more vertically centered */
+ font-size: 1em;
+ line-height: 1em;
+ height: auto;
+ width: auto;
+ margin: 0 4px;
+ }
+
+ /* Icon-only buttons (often in toolbars) still display the text in high-contrast mode */
+ .dj_a11y .dijitButtonContents .dijitButtonText,
+ .dj_a11y .dijitTab .tabLabel {
+ display: inline !important;
+ }
+ .dj_a11y .dijitSelect .dijitButtonText {
+ display: inline-block !important;
+ }
+
+ /* TextArea, SimpleTextArea */
+ .dijitTextArea {
+ width: 100%;
+ overflow-y: auto; /* w/out this IE's SimpleTextArea goes to overflow: scroll */
+ }
+ .dijitTextArea[cols] {
+ width: auto; /* SimpleTextArea cols */
+ }
+ .dj_ie .dijitTextAreaCols {
+ width: auto;
+ }
+
+ .dijitExpandingTextArea {
+ /* for auto exanding textarea (called Textarea currently, rename for 2.0) don't want to display the grip to resize */
+ resize: none;
+ }
+
+ /* Toolbar
+ * Note that other toolbar rules (for objects in toolbars) are scattered throughout this file.
+ */
+
+ .dijitToolbarSeparator {
+ height: 18px;
+ width: 5px;
+ padding: 0 1px;
+ margin: 0;
+ }
+
+ /* Editor */
+ .dijitIEFixedToolbar {
+ position: absolute;
+ /* top:0; */
+ top: expression(eval((document.documentElement||document.body) .scrollTop));
+ }
+
+ .dijitEditor {
+ display: block; /* prevents glitch on FF with InlineEditBox, see #8404 */
+ }
+
+ .dijitEditorDisabled,
+ .dijitEditorReadOnly {
+ color: gray;
+ }
+
+ /* TimePicker */
+
+ .dijitTimePicker {
+ background-color: white;
+ }
+ .dijitTimePickerItem {
+ cursor: pointer;
+ -webkit-tap-highlight-color: transparent;
+ }
+ .dijitTimePickerItemHover {
+ background-color: gray;
+ color: white;
+ }
+ .dijitTimePickerItemSelected {
+ font-weight: bold;
+ color: #333;
+ background-color: #b7cdee;
+ }
+ .dijitTimePickerItemDisabled {
+ color: gray;
+ text-decoration: line-through;
+ }
+
+ .dijitTimePickerItemInner {
+ text-align: center;
+ border: 0;
+ padding: 2px 8px 2px 8px;
+ }
+
+ .dijitTimePickerTick,
+ .dijitTimePickerMarker {
+ border-bottom: 1px solid gray;
+ }
+
+ .dijitTimePicker .dijitDownArrowButton {
+ border-top: none !important;
+ }
+
+ .dijitTimePickerTick {
+ color: #ccc;
+ }
+
+ .dijitTimePickerMarker {
+ color: black;
+ background-color: #ccc;
+ }
+
+ .dj_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner {
+ border: solid 4px black;
+ }
+ .dj_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner {
+ border: dashed 4px black;
+ }
+
+ .dijitToggleButtonIconChar {
+ /* character (instead of icon) to show that ToggleButton is checked */
+ display: none !important;
+ }
+ .dj_a11y .dijitToggleButton .dijitToggleButtonIconChar {
+ display: inline !important;
+ visibility: hidden;
+ }
+ .dj_ie6 .dijitToggleButtonIconChar,
+ .dj_ie6 .tabStripButton .dijitButtonText {
+ font-family: "Arial Unicode MS"; /* otherwise the a11y character (checkmark, arrow, etc.) appears as a box */
+ }
+ .dj_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar {
+ display: inline !important; /* In high contrast mode, display the check symbol */
+ visibility: visible !important;
+ }
+
+ .dijitArrowButtonChar {
+ display: none !important;
+ }
+ .dj_a11y .dijitArrowButtonChar {
+ display: inline !important;
+ }
+
+ .dj_a11y .dijitDropDownButton .dijitArrowButtonInner,
+ .dj_a11y .dijitComboButton .dijitArrowButtonInner {
+ display: none !important;
+ }
+
+ /* Select */
+ .dj_a11y .dijitSelect {
+ border-collapse: separate !important;
+ border-width: 1px;
+ border-style: solid;
+ }
+ .dj_ie .dijitSelect {
+ vertical-align: middle; /* Set this back for what we hack in dijit inline */
+ }
+ .dj_ie6 .dijitSelect .dijitValidationContainer,
+ .dj_ie8 .dijitSelect .dijitButtonText {
+ vertical-align: top;
+ }
+ .dj_ie6 .dijitTextBox .dijitInputContainer,
+ .dj_iequirks .dijitTextBox .dijitInputContainer,
+ .dj_ie6 .dijitTextBox .dijitArrowButtonInner,
+ .dj_ie6 .dijitSpinner .dijitSpinnerButtonInner,
+ .dijitSelect .dijitSelectLabel {
+ vertical-align: baseline;
+ }
+
+ .dijitNumberTextBox {
+ text-align: left;
+ direction: ltr;
+ }
+
+ .dijitNumberTextBox .dijitInputInner {
+ text-align: inherit; /* input */
+ }
+
+ .dijitNumberTextBox input.dijitInputInner,
+ .dijitCurrencyTextBox input.dijitInputInner,
+ .dijitSpinner input.dijitInputInner {
+ text-align: right;
+ }
+
+ .dj_ie8 .dijitNumberTextBox input.dijitInputInner,
+ .dj_ie9 .dijitNumberTextBox input.dijitInputInner,
+ .dj_ie8 .dijitCurrencyTextBox input.dijitInputInner,
+ .dj_ie9 .dijitCurrencyTextBox input.dijitInputInner,
+ .dj_ie8 .dijitSpinner input.dijitInputInner,
+ .dj_ie9 .dijitSpinner input.dijitInputInner {
+ /* workaround bug where caret invisible in empty textboxes */
+ padding-right: 1px !important;
+ }
+
+ .dijitToolbar .dijitSelect {
+ margin: 0;
+ }
+ .dj_webkit .dijitToolbar .dijitSelect {
+ padding-left: 0.3em;
+ }
+ .dijitSelect .dijitButtonContents {
+ padding: 0;
+ white-space: nowrap;
+ text-align: left;
+ border-style: none solid none none;
+ border-width: 1px;
+ }
+ .dijitSelectFixedWidth .dijitButtonContents {
+ width: 100%;
+ }
+
+ .dijitSelectMenu .dijitMenuItemIcon {
+ /* avoid blank area in left side of menu (since we have no icons) */
+ display: none;
+ }
+ .dj_ie6 .dijitSelectMenu .dijitMenuItemLabel,
+ .dj_ie7 .dijitSelectMenu .dijitMenuItemLabel {
+ /* Set back to static due to bug in ie6/ie7 - See Bug #9651 */
+ position: static;
+ }
+
+ /* Fix the baseline of our label (for multi-size font elements) */
+ .dijitSelectLabel * {
+ vertical-align: baseline;
+ }
+
+ /* Styling for the currently-selected option (rich text can mess this up) */
+ .dijitSelectSelectedOption * {
+ font-weight: bold;
+ }
+
+ /* Fix the styling of the dropdown menu to be more combobox-like */
+ .dijitSelectMenu {
+ border-width: 1px;
+ }
+
+ /* Used in cases, such as FullScreen plugin, when we need to force stuff to static positioning. */
+ .dijitForceStatic {
+ position: static !important;
+ }
+
+ /**** Disabled cursor *****/
+ .dijitReadOnly *,
+ .dijitDisabled *,
+ .dijitReadOnly,
+ .dijitDisabled {
+ /* a region the user would be able to click on, but it's disabled */
+ cursor: default;
+ }
+
+ /* Drag and Drop */
+ .dojoDndItem {
+ padding: 2px; /* will be replaced by border during drag over (dojoDndItemBefore, dojoDndItemAfter) */
+
+ /* Prevent magnifying-glass text selection icon to appear on mobile webkit as it causes a touchout event */
+ -webkit-touch-callout: none;
+ -webkit-user-select: none; /* Disable selection/Copy of UIWebView */
+ }
+ .dojoDndHorizontal .dojoDndItem {
+ /* make contents of horizontal container be side by side, rather than vertical */
+ display: inline-block;
+ }
+
+ .dojoDndItemBefore,
+ .dojoDndItemAfter {
+ border: 0px solid #369;
+ }
+ .dojoDndItemBefore {
+ border-width: 2px 0 0 0;
+ padding: 0 2px 2px 2px;
+ }
+ .dojoDndItemAfter {
+ border-width: 0 0 2px 0;
+ padding: 2px 2px 0 2px;
+ }
+ .dojoDndHorizontal .dojoDndItemBefore {
+ border-width: 0 0 0 2px;
+ padding: 2px 2px 2px 0;
+ }
+ .dojoDndHorizontal .dojoDndItemAfter {
+ border-width: 0 2px 0 0;
+ padding: 2px 0 2px 2px;
+ }
+
+ .dojoDndItemOver {
+ cursor: pointer;
+ }
+ .dj_gecko .dijitArrowButtonInner input,
+ .dj_gecko input.dijitArrowButtonInner {
+ -moz-user-focus: ignore;
+ }
+ .dijitFocused .dijitMenuItemShortcutKey {
+ text-decoration: underline;
+ }
+
+ /* Dijit custom styling */
+ .dijitBorderContainer {
+ height: 350px;
+ }
+ .dijitTooltipContainer {
+ background: #fff;
+ border: 1px solid #ccc;
+ border-radius: 6px;
+ }
+ .dijitContentPane {
+ box-sizing: content-box;
+ overflow: auto !important;
+ /* Widgets like the data grid pass their scroll
+ offset to the parent if there is not enough room to display a scroll bar
+ in the widget itself, so do not hide the overflow. */
+ }
+
+ /* Global Bootstrap changes */
+
+ /* Client defaults and helpers */
+ .mx-dataview-content,
+ .mx-scrollcontainer-wrapper:not(.mx-scrollcontainer-nested),
+ .mx-tabcontainer-content,
+ .mx-grid-content {
+ -webkit-overflow-scrolling: touch;
+ }
+ html,
+ body,
+ #content {
+ height: 100%;
+ }
+ #content > .mx-page {
+ width: 100%;
+ min-height: 100%;
+ }
+
+ .mx-left-aligned {
+ text-align: left;
+ }
+ .mx-right-aligned {
+ text-align: right;
+ }
+ .mx-center-aligned {
+ text-align: center;
+ }
+
+ .mx-table {
+ width: 100%;
+ }
+ .mx-table th,
+ .mx-table td {
+ padding: 8px;
+ vertical-align: top;
+ }
+ .mx-table th.nopadding,
+ .mx-table td.nopadding {
+ padding: 0;
+ }
+
+ .mx-offscreen {
+ /* When position relative is not set IE doesn't properly render when this class is removed
+ * with the effect that elements are not displayed or are not clickable.
+ */
+ position: relative;
+ height: 0;
+ overflow: hidden;
+ }
+
+ .mx-ie-event-shield {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: -1;
+ }
+
+ .mx-swipe-navigation-progress {
+ position: absolute;
+ height: 54px;
+ width: 54px;
+ top: calc(50% - 27px);
+ left: calc(50% - 27px);
+ background: url(resources/swipe-progress.gif);
+ }
+
+ /* Bacause we use checkboxes without labels, align them with other widgets. */
+ input[type="checkbox"] {
+ margin: 9px 0;
+ }
+
+ .mx-checkbox input[type="checkbox"] {
+ margin-left: 0;
+ margin-right: 8px;
+ position: static;
+ }
+
+ .form-vertical .form-group.mx-checkbox input[type="checkbox"] {
+ display: block;
+ }
+
+ .form-vertical .form-group.mx-checkbox.label-after input[type="checkbox"] {
+ display: inline-block;
+ }
+
+ .form-horizontal .form-group.no-columns {
+ padding-left: 15px;
+ padding-right: 15px;
+ }
+
+ .mx-radiobuttons.inline .radio {
+ display: inline-block;
+ margin-right: 20px;
+ }
+
+ .mx-radiobuttons .radio input[type="radio"] {
+ /* Reset bootstrap rules */
+ position: static;
+ margin-right: 8px;
+ margin-left: 0;
+ }
+
+ .mx-radiobuttons .radio label {
+ /* Reset bootstrap rules */
+ padding-left: 0;
+ }
+
+ .alert {
+ margin-top: 8px;
+ margin-bottom: 10px;
+ white-space: pre-line;
+ }
+
+ //.mx-compound-control {
+ // display: flex;
+ //}
+
+ //.mx-compound-control button {
+ // margin-left: 5px;
+ //}
+ //
+ //[dir="rtl"] .mx-compound-control button {
+ // margin-left: 0;
+ // margin-right: 5px;
+ //}
+
+ .mx-tooltip {
+ margin: 10px;
+ }
+ .mx-tooltip-content {
+ width: 400px;
+ overflow-y: auto;
+ }
+ .mx-tooltip-prepare {
+ height: 24px;
+ padding: 8px;
+ background: transparent url(resources/ttp.gif) no-repeat scroll center center;
+ }
+ .mx-tooltip-content .table th,
+ .mx-tooltip-content .table td {
+ padding: 2px 8px;
+ }
+
+ .mx-tabcontainer-pane {
+ height: 100%;
+ }
+ .mx-tabcontainer-content.loading {
+ min-height: 48px;
+ background: url(resources/tabcontainer-loading.gif) no-repeat center center;
+ background-size: 32px 32px;
+ }
+ .mx-tabcontainer-tabs {
+ margin-bottom: 8px;
+ }
+ .mx-tabcontainer-tabs li {
+ position: relative;
+ }
+ .mx-tabcontainer-indicator {
+ position: absolute;
+ background: #f2dede;
+ border-radius: 8px;
+ color: #b94a48;
+ top: 0px;
+ right: -5px;
+ width: 16px;
+ height: 16px;
+ line-height: 16px;
+ text-align: center;
+ vertical-align: middle;
+ font-size: 10px;
+ font-weight: 600;
+ z-index: 1; /* indicator should not hide behind other tab */
+ }
+
+ /* base structure */
+ .mx-grid {
+ padding: 8px;
+ overflow: hidden; /* to prevent any margin from escaping grid and foobaring our size calculations */
+ }
+ .mx-grid-controlbar,
+ .mx-grid-searchbar {
+ display: flex;
+ justify-content: space-between;
+ flex-wrap: wrap;
+ }
+ .mx-grid-controlbar .mx-button,
+ .mx-grid-search-controls .mx-button {
+ margin-bottom: 8px;
+ }
+
+ .mx-grid-search-controls .mx-button + .mx-button,
+ .mx-grid-controlbar .mx-button + .mx-button {
+ margin-left: 0.3em;
+ }
+
+ [dir="rtl"] .mx-grid-search-controls .mx-button + .mx-button,
+ [dir="rtl"] .mx-grid-controlbar .mx-button + .mx-button {
+ margin-left: 0;
+ margin-right: 0.3em;
+ }
+
+ .mx-grid-pagingbar,
+ .mx-grid-search-controls {
+ display: flex;
+ white-space: nowrap;
+ align-items: baseline;
+ margin-left: auto;
+ }
+
+ .mx-grid-toolbar,
+ .mx-grid-search-inputs {
+ margin-right: 5px;
+ flex: 1;
+ }
+
+ [dir="rtl"] .mx-grid-toolbar,
+ [dir="rtl"] .mx-grid-search-inputs {
+ margin-left: 5px;
+ margin-right: 0px;
+ }
+ [dir="rtl"] .mx-grid-pagingbar,
+ [dir="rtl"] .mx-grid-search-controls {
+ margin-left: 0px;
+ margin-right: auto;
+ }
+
+ .mx-grid-paging-status {
+ padding: 0 8px 5px;
+ }
+
+ /* search fields */
+ .mx-grid-search-item {
+ display: inline-block;
+ vertical-align: top;
+ margin-bottom: 8px;
+ }
+ .mx-grid-search-label {
+ width: 110px;
+ padding: 0 5px;
+ text-align: right;
+ display: inline-block;
+ vertical-align: top;
+ overflow: hidden;
+ }
+ [dir="rtl"] .mx-grid-search-label {
+ text-align: left;
+ }
+ .mx-grid-search-input {
+ width: 150px;
+ padding: 0 5px;
+ display: inline-block;
+ vertical-align: top;
+ }
+ .mx-grid-search-message {
+ flex-basis: 100%;
+ }
+
+ /* widget combinations */
+ .mx-dataview .mx-grid {
+ border: 1px solid #ddd;
+ border-radius: 3px;
+ }
+
+ .mx-calendar {
+ z-index: 1000;
+ }
+
+ .mx-calendar-month-dropdown-options {
+ position: absolute;
+ }
+
+ .mx-calendar,
+ .mx-calendar-month-dropdown {
+ user-select: none;
+ }
+
+ .mx-calendar-month-current {
+ display: inline-block;
+ }
+
+ .mx-calendar-month-spacer {
+ position: relative;
+ height: 0px;
+ overflow: hidden;
+ visibility: hidden;
+ }
+
+ .mx-calendar,
+ .mx-calendar-month-dropdown-options {
+ border: 1px solid lightgrey;
+ background-color: white;
+ }
+
+ .mx-datagrid tr {
+ cursor: pointer;
+ }
+
+ .mx-datagrid tr.mx-datagrid-row-empty {
+ cursor: default;
+ }
+
+ .mx-datagrid table {
+ width: 100%;
+ max-width: 100%;
+ table-layout: fixed;
+ margin-bottom: 0;
+ }
+
+ .mx-datagrid th,
+ .mx-datagrid td {
+ padding: 8px;
+ line-height: 1.42857143;
+ vertical-align: bottom;
+ border: 1px solid #ddd;
+ }
+
+ /* head */
+ .mx-datagrid th {
+ position: relative; /* Required for the positioning of the column resizers */
+ border-bottom-width: 2px;
+ }
+ .mx-datagrid-head-caption {
+ overflow: hidden;
+ white-space: nowrap;
+ }
+ .mx-datagrid-sort-icon {
+ float: right;
+ padding-left: 5px;
+ }
+ [dir="rtl"] .mx-datagrid-sort-icon {
+ float: left;
+ padding: 0 5px 0 0;
+ }
+ .mx-datagrid-column-resizer {
+ position: absolute;
+ top: 0;
+ left: -6px;
+ width: 10px;
+ height: 100%;
+ cursor: col-resize;
+ }
+ [dir="rtl"] .mx-datagrid-column-resizer {
+ left: auto;
+ right: -6px;
+ }
+
+ /* body */
+ .mx-datagrid tbody tr:first-child td {
+ border-top: none;
+ }
+ //.mx-datagrid tbody tr:nth-child(2n+1) td {
+ // background-color: #f9f9f9;
+ //}
+ .mx-datagrid tbody .selected td {
+ background-color: #eee;
+ }
+ .mx-datagrid-data-wrapper {
+ overflow: hidden;
+ white-space: nowrap;
+ }
+ .mx-datagrid tbody img {
+ max-width: 16px;
+ max-height: 16px;
+ }
+ .mx-datagrid input,
+ .mx-datagrid select,
+ .mx-datagrid textarea {
+ cursor: auto;
+ }
+
+ /* foot */
+ .mx-datagrid tfoot th,
+ .mx-datagrid tfoot td {
+ padding: 3px 8px;
+ }
+ .mx-datagrid tfoot th {
+ border-top: 1px solid #ddd;
+ }
+ .mx-datagrid.mx-content-loading .mx-content-loader {
+ display: inline-block;
+ width: 90%;
+ animation: placeholderGradient 1s linear infinite;
+ border-radius: 4px;
+ background: #f5f5f5;
+ background: repeating-linear-gradient(to right, #f5f5f5 0%, #f5f5f5 5%, #f9f9f9 50%, #f5f5f5 95%, #f5f5f5 100%);
+ background-size: 200px 100px;
+ animation-fill-mode: both;
+ }
+ @keyframes placeholderGradient {
+ 0% {
+ background-position: 100px 0;
+ }
+ 100% {
+ background-position: -100px 0;
+ }
+ }
+
+ .mx-datagrid-table-resizing th,
+ .mx-datagrid-table-resizing td {
+ cursor: col-resize !important;
+ }
+
+ .mx-templategrid-content-wrapper {
+ display: table;
+ width: 100%;
+ border-collapse: collapse;
+ box-sizing: border-box;
+ }
+ .mx-templategrid-row {
+ display: table-row;
+ }
+ .mx-templategrid-item {
+ padding: 5px;
+ display: table-cell;
+ border: 1px solid #ddd;
+ cursor: pointer;
+ box-sizing: border-box;
+ }
+ .mx-templategrid-empty {
+ display: table-cell;
+ }
+ .mx-templategrid-item.selected {
+ background-color: #f5f5f5;
+ }
+ .mx-templategrid-item .mx-table th,
+ .mx-templategrid-item .mx-table td {
+ padding: 2px 8px;
+ }
+
+ .mx-scrollcontainer-horizontal {
+ width: 100%;
+ display: table;
+ table-layout: fixed;
+ }
+ .mx-scrollcontainer-horizontal > div {
+ display: table-cell;
+ vertical-align: top;
+ }
+ //.mx-scrollcontainer-wrapper {
+ // padding: 10px;
+ //}
+ .mx-scrollcontainer-nested {
+ padding: 0;
+ }
+ .mx-scrollcontainer-fixed > .mx-scrollcontainer-middle > .mx-scrollcontainer-wrapper,
+ .mx-scrollcontainer-fixed > .mx-scrollcontainer-left > .mx-scrollcontainer-wrapper,
+ .mx-scrollcontainer-fixed > .mx-scrollcontainer-center > .mx-scrollcontainer-wrapper,
+ .mx-scrollcontainer-fixed > .mx-scrollcontainer-right > .mx-scrollcontainer-wrapper {
+ overflow: auto;
+ }
+
+ .mx-scrollcontainer-move-in {
+ transition: left 250ms ease-out;
+ }
+ .mx-scrollcontainer-move-out {
+ transition: left 250ms ease-in;
+ }
+ .mx-scrollcontainer-shrink .mx-scrollcontainer-toggleable {
+ transition-property: width;
+ }
+
+ .mx-scrollcontainer-toggleable {
+ background-color: #fff;
+ }
+ //.mx-scrollcontainer-slide > .mx-scrollcontainer-toggleable > .mx-scrollcontainer-wrapper {
+ // position: relative;
+ // z-index: 1;
+ // background-color: inherit;
+ //}
+ .mx-scrollcontainer-push {
+ position: relative;
+ }
+ .mx-scrollcontainer-shrink > .mx-scrollcontainer-toggleable {
+ overflow: hidden;
+ }
+ .mx-scrollcontainer-push.mx-scrollcontainer-open > div,
+ .mx-scrollcontainer-slide.mx-scrollcontainer-open > div {
+ pointer-events: none;
+ }
+ .mx-scrollcontainer-push.mx-scrollcontainer-open > .mx-scrollcontainer-toggleable,
+ .mx-scrollcontainer-slide.mx-scrollcontainer-open > .mx-scrollcontainer-toggleable {
+ pointer-events: auto;
+ }
+
+ .mx-navbar-item img,
+ .mx-navbar-subitem img {
+ height: 16px;
+ }
+
+ .mx-navigationtree .navbar-inner {
+ padding-left: 0;
+ padding-right: 0;
+ }
+ .mx-navigationtree ul {
+ list-style: none;
+ }
+ //.mx-navigationtree ul li {
+ // border-bottom: 1px solid #dfe6ea;
+ //}
+ //.mx-navigationtree li:last-child {
+ // border-style: none;
+ //}
+ .mx-navigationtree a {
+ display: block;
+ padding: 5px 10px;
+ color: #777;
+ text-shadow: 0 1px 0 #fff;
+ text-decoration: none;
+ }
+ .mx-navigationtree a.active {
+ color: #fff;
+ text-shadow: none;
+ background: #3498db;
+ border-radius: 3px;
+ }
+ .mx-navigationtree .mx-navigationtree-collapsed ul {
+ display: none;
+ }
+ .mx-navigationtree ul {
+ margin: 0;
+ padding: 0;
+ }
+ //.mx-navigationtree ul li {
+ // padding: 5px 0;
+ //}
+ .mx-navigationtree ul li ul {
+ padding: 0;
+ margin-left: 10px;
+ }
+ .mx-navigationtree ul li ul li {
+ margin-left: 8px;
+ padding: 5px 0;
+ }
+ [dir="rtl"] .mx-navigationtree ul li ul li {
+ margin-left: auto;
+ margin-right: 8px;
+ }
+ .mx-navigationtree ul li ul li ul li {
+ font-size: 10px;
+ padding-top: 3px;
+ padding-bottom: 3px;
+ }
+ .mx-navigationtree ul li ul li ul li img {
+ vertical-align: top;
+ }
+
+ .mx-link img,
+ .mx-button img {
+ height: 16px;
+ }
+ .mx-link {
+ padding: 6px 12px;
+ display: inline-block;
+ cursor: pointer;
+ }
+
+ .mx-groupbox {
+ margin-bottom: 10px;
+ }
+ .mx-groupbox-header {
+ margin: 0;
+ padding: 10px 15px;
+ color: #eee;
+ background: #333;
+ font-size: inherit;
+ line-height: inherit;
+ border-radius: 4px 4px 0 0;
+ }
+ .mx-groupbox-collapsible > .mx-groupbox-header {
+ cursor: pointer;
+ }
+ .mx-groupbox.collapsed > .mx-groupbox-header {
+ border-radius: 4px;
+ }
+ .mx-groupbox-body {
+ padding: 8px;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ }
+ .mx-groupbox.collapsed > .mx-groupbox-body {
+ display: none;
+ }
+ .mx-groupbox-header + .mx-groupbox-body {
+ border-top: none;
+ border-radius: 0 0 4px 4px;
+ }
+ .mx-groupbox-collapse-icon {
+ float: right;
+ }
+ [dir="rtl"] .mx-groupbox-collapse-icon {
+ float: left;
+ }
+
+ .mx-dataview {
+ position: relative;
+ }
+ .mx-dataview-controls {
+ padding: 19px 20px 12px;
+ background-color: #f5f5f5;
+ border-top: 1px solid #eee;
+ }
+
+ .mx-dataview-controls .mx-button {
+ margin-bottom: 8px;
+ }
+
+ .mx-dataview-controls .mx-button + .mx-button {
+ margin-left: 0.3em;
+ }
+
+ .mx-dataview-message {
+ background: #fff;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ }
+ .mx-dataview-message > div {
+ display: table;
+ width: 100%;
+ height: 100%;
+ }
+ .mx-dataview-message > div > p {
+ display: table-cell;
+ text-align: center;
+ vertical-align: middle;
+ }
+
+ /* Top-level data view in window is a special case, handle it as such. */
+ .mx-window-view .mx-window-body {
+ padding: 0;
+ }
+ .mx-window-view .mx-window-body > .mx-dataview > .mx-dataview-content,
+ .mx-window-view .mx-window-body > .mx-placeholder > .mx-dataview > .mx-dataview-content {
+ padding: 15px;
+ }
+ .mx-window-view .mx-window-body > .mx-dataview > .mx-dataview-controls,
+ .mx-window-view .mx-window-body > .mx-placeholder > .mx-dataview > .mx-dataview-controls {
+ border-radius: 0px 0px 6px 6px;
+ }
+
+ .mx-dialog {
+ position: fixed;
+ left: auto;
+ right: auto;
+ padding: 0;
+ width: 500px;
+ /* If the margin is set to auto, IE9 reports the calculated value of the
+ * margin as the actual value. Other browsers will just report 0. Eliminate
+ * this difference by setting margin to 0 for every browser. */
+ margin: 0;
+ }
+ .mx-dialog-header {
+ cursor: move;
+ }
+ .mx-dialog-body {
+ overflow: auto;
+ }
+
+ .mx-window {
+ position: fixed;
+ left: auto;
+ right: auto;
+ padding: 0;
+ width: 600px;
+ /* If the margin is set to auto, IE9 reports the calculated value of the
+ * margin as the actual value. Other browsers will just report 0. Eliminate
+ * this difference by setting margin to 0 for every browser. */
+ margin: 0;
+ }
+ .mx-window-content {
+ height: 100%;
+ overflow: hidden;
+ }
+ .mx-window-active .mx-window-header {
+ background-color: #f5f5f5;
+ border-radius: 6px 6px 0 0;
+ }
+ .mx-window-header {
+ cursor: move;
+ }
+ .mx-window-body {
+ overflow: auto;
+ }
+
+ .mx-dropdown-list * {
+ cursor: pointer;
+ }
+ .mx-dropdown-list img {
+ width: 35px;
+ vertical-align: middle;
+ margin-right: 10px;
+ }
+ [dir="rtl"] .mx-dropdown-list img {
+ margin-left: 10px;
+ margin-right: auto;
+ }
+
+ .mx-dropdown-list {
+ padding: 0;
+ list-style: none;
+ }
+ .mx-dropdown-list > li {
+ padding: 5px 10px 10px;
+ border: 1px #ddd;
+ border-style: solid solid none;
+ background-color: #fff;
+ }
+ .mx-dropdown-list > li:first-child {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ }
+ .mx-dropdown-list > li:last-child {
+ border-bottom-style: solid;
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+ }
+ .mx-dropdown-list-striped > li:nth-child(2n + 1) {
+ background: #f9f9f9;
+ }
+ .mx-dropdown-list > li:hover {
+ background: #f5f5f5;
+ }
+
+ .mx-header {
+ position: relative;
+ padding: 9px;
+ background: #333;
+ text-align: center;
+ }
+ .mx-header-center {
+ display: inline-block;
+ color: #eee;
+ line-height: 30px; /* height of buttons */
+ }
+ body[dir="ltr"] .mx-header-left,
+ body[dir="rtl"] .mx-header-right {
+ position: absolute;
+ top: 9px;
+ left: 9px;
+ }
+ body[dir="ltr"] .mx-header-right,
+ body[dir="rtl"] .mx-header-left {
+ position: absolute;
+ top: 9px;
+ right: 9px;
+ }
+
+ .mx-title {
+ margin-bottom: 0px;
+ margin-top: 0px;
+ }
+
+ .mx-listview {
+ padding: 8px;
+ }
+ .mx-listview > ul {
+ padding: 0px;
+ list-style: none;
+ }
+ // .mx-listview > ul > li {
+ // padding: 5px 10px 10px;
+ // border: 1px #ddd;
+ // border-style: solid solid none;
+ // background-color: #fff;
+ // outline: none;
+ // }
+ // .mx-listview > ul > li:first-child {
+ // border-top-left-radius: 4px;
+ // border-top-right-radius: 4px;
+ // }
+ // .mx-listview > ul > li:last-child {
+ // border-bottom-style: solid;
+ // border-bottom-left-radius: 4px;
+ // border-bottom-right-radius: 4px;
+ // }
+ //.mx-listview li:nth-child(2n+1) {
+ // background: #f9f9f9;
+ //}
+ //.mx-listview li:nth-child(2n+1):hover {
+ // background: #f5f5f5;
+ //}
+ .mx-listview > ul > li.selected {
+ // background: #eee;
+ }
+ .mx-listview-clickable > ul > li {
+ cursor: pointer;
+ }
+ .mx-listview-empty {
+ color: #999;
+ text-align: center;
+ }
+ .mx-listview .mx-listview-loading {
+ padding: 10px;
+ line-height: 0;
+ text-align: center;
+ }
+ .mx-listview-searchbar {
+ display: flex;
+ margin-bottom: 10px;
+ }
+ .mx-listview-searchbar > input {
+ width: 100%;
+ }
+ .mx-listview-searchbar > button {
+ margin-left: 5px;
+ }
+ [dir="rtl"] .mx-listview-searchbar > button {
+ margin-left: 0;
+ margin-right: 5px;
+ }
+ .mx-listview-selection {
+ display: table-cell;
+ vertical-align: middle;
+ padding: 0 15px 0 5px;
+ }
+ [dir="rtl"] .mx-listview-selection {
+ padding: 0 5px 0 15px;
+ }
+ .mx-listview-selectable .mx-listview-content {
+ display: table-cell;
+ vertical-align: middle;
+ width: 100%;
+ }
+ .mx-listview .selected {
+ background: #def;
+ }
+ .mx-listview .mx-table th,
+ .mx-listview .mx-table td {
+ padding: 2px;
+ }
+
+ .mx-login .form-control {
+ margin-top: 10px;
+ }
+
+ .mx-menubar {
+ padding: 8px;
+ }
+ .mx-menubar-icon {
+ height: 16px;
+ }
+ .mx-menubar-more-icon {
+ display: inline-block;
+ width: 16px;
+ height: 16px;
+ background: url(resources/menubar-more-icon.png) no-repeat center center;
+ background-size: 16px 16px;
+ vertical-align: middle;
+ }
+
+ .mx-navigationlist {
+ padding: 8px;
+ }
+ .mx-navigationlist li:hover,
+ .mx-navigationlist li:focus,
+ .mx-navigationlist li.active {
+ color: #fff;
+ background-color: #3498db;
+ }
+ .mx-navigationlist * {
+ cursor: pointer;
+ }
+ .mx-navigationlist .table th,
+ .mx-navigationlist .table td {
+ padding: 2px;
+ }
+
+ .mx-progress {
+ position: fixed;
+ top: 30%;
+ left: 0;
+ right: 0;
+ margin: auto;
+ width: 250px;
+ max-width: 90%;
+ background: #333;
+ opacity: 0.8;
+ z-index: 5000;
+ border-radius: 4px;
+ padding: 20px 15px;
+ transition: opacity 0.4s ease-in-out;
+ }
+ .mx-progress-hidden {
+ opacity: 0;
+ }
+ .mx-progress-message {
+ color: #fff;
+ text-align: center;
+ margin-bottom: 15px;
+ }
+ .mx-progress-empty .mx-progress-message {
+ display: none;
+ }
+ .mx-progress-indicator {
+ width: 70px;
+ height: 10px;
+ margin: auto;
+ background: url(resources/progress-indicator.gif);
+ }
+
+ .mx-reload-notification {
+ position: fixed;
+ z-index: 1001;
+ top: 0;
+ width: 100%;
+ padding: 1rem;
+
+ border: 1px solid hsl(200, 96%, 41%);
+ background-color: hsl(200, 96%, 44%);
+
+ box-shadow: 0 5px 20px rgba(1, 37, 55, 0.16);
+ color: white;
+
+ text-align: center;
+ font-size: 14px;
+ }
+
+ .mx-resizer-n,
+ .mx-resizer-s {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ height: 10px;
+ }
+ .mx-resizer-n {
+ top: -5px;
+ cursor: n-resize;
+ }
+ .mx-resizer-s {
+ bottom: -5px;
+ cursor: s-resize;
+ }
+
+ .mx-resizer-e,
+ .mx-resizer-w {
+ position: absolute;
+ top: 0;
+ width: 10px;
+ height: 100%;
+ }
+ .mx-resizer-e {
+ right: -5px;
+ cursor: e-resize;
+ }
+ .mx-resizer-w {
+ left: -5px;
+ cursor: w-resize;
+ }
+
+ .mx-resizer-nw,
+ .mx-resizer-ne,
+ .mx-resizer-sw,
+ .mx-resizer-se {
+ position: absolute;
+ width: 20px;
+ height: 20px;
+ }
+
+ .mx-resizer-nw,
+ .mx-resizer-ne {
+ top: -5px;
+ }
+ .mx-resizer-sw,
+ .mx-resizer-se {
+ bottom: -5px;
+ }
+ .mx-resizer-nw,
+ .mx-resizer-sw {
+ left: -5px;
+ }
+ .mx-resizer-ne,
+ .mx-resizer-se {
+ right: -5px;
+ }
+
+ .mx-resizer-nw {
+ cursor: nw-resize;
+ }
+ .mx-resizer-ne {
+ cursor: ne-resize;
+ }
+ .mx-resizer-sw {
+ cursor: sw-resize;
+ }
+ .mx-resizer-se {
+ cursor: se-resize;
+ }
+
+ .mx-text {
+ white-space: pre-line;
+ }
+
+ .mx-textarea textarea {
+ resize: none;
+ overflow-y: hidden;
+ }
+ .mx-textarea .mx-textarea-noresize {
+ height: auto;
+ resize: vertical;
+ overflow-y: auto;
+ }
+ .mx-textarea .mx-textarea-counter {
+ font-size: smaller;
+ }
+ .mx-textarea .form-control-static {
+ white-space: pre-line;
+ }
+
+ .mx-underlay {
+ position: fixed;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 1000;
+ opacity: 0.5;
+ background-color: #333;
+ }
+
+ .mx-imagezoom {
+ position: absolute;
+ display: table;
+ width: 100%;
+ height: 100%;
+ background-color: #999;
+ }
+ .mx-imagezoom-wrapper {
+ display: table-cell;
+ text-align: center;
+ vertical-align: middle;
+ }
+ .mx-imagezoom-image {
+ max-width: none;
+ }
+
+ .mx-dropdown li {
+ padding: 3px 20px;
+ cursor: pointer;
+ }
+ .mx-dropdown label {
+ padding: 0;
+ color: #333;
+ white-space: nowrap;
+ cursor: pointer;
+ }
+ .mx-dropdown input {
+ margin: 0;
+ vertical-align: middle;
+ cursor: pointer;
+ }
+ .mx-dropdown .selected {
+ background: #f8f8f8;
+ }
+ //.mx-selectbox {
+ // text-align: left;
+ //}
+ //.mx-selectbox-caret-wrapper {
+ // float: right;
+ // height: 100%;
+ //}
+
+ .mx-demouserswitcher {
+ position: fixed;
+ top: 0;
+ right: 0;
+ width: 360px;
+ height: 100%;
+ z-index: 20000;
+ box-shadow: -1px 0 5px rgba(28, 59, 86, 0.2);
+ }
+ .mx-demouserswitcher-content {
+ padding: 80px 40px 20px;
+ height: 100%;
+ color: #387ea2;
+ font-size: 14px;
+ overflow: auto;
+ background: url(resources/switcher.png) top right no-repeat #1b3149;
+ /* background-attachement local is not supported on IE8
+ * when this is part of background the complete background is ignored */
+ background-attachment: local;
+ }
+ .mx-demouserswitcher ul {
+ padding: 0;
+ margin-top: 25px;
+ list-style-type: none;
+ border-top: 1px solid #496076;
+ }
+ .mx-demouserswitcher a {
+ display: block;
+ padding: 10px 0;
+ color: #387ea2;
+ border-bottom: 1px solid #496076;
+ }
+ .mx-demouserswitcher h2 {
+ margin: 20px 0 5px;
+ color: #5bc4fe;
+ font-size: 28px;
+ }
+ .mx-demouserswitcher h3 {
+ margin: 0 0 2px;
+ color: #5bc4fe;
+ font-size: 18px;
+ font-weight: normal;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
+ .mx-demouserswitcher .active h3 {
+ color: #11efdb;
+ }
+ .mx-demouserswitcher p {
+ margin-bottom: 0;
+ }
+ .mx-demouserswitcher-toggle {
+ position: absolute;
+ top: 25%;
+ left: -35px;
+ width: 35px;
+ height: 38px;
+ margin-top: -40px;
+ cursor: pointer;
+ border-top-left-radius: 3px;
+ border-bottom-left-radius: 3px;
+ box-shadow: -1px 0 5px rgba(28, 59, 86, 0.2);
+ background: url(resources/switcher-toggle.png) center center no-repeat #1b3149;
+ }
+
+ /* master details screen for mobile */
+ .mx-master-detail-screen {
+ top: 0;
+ left: 0;
+ overflow: auto;
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ background-color: white;
+ will-change: transform;
+ }
+
+ .mx-master-detail-screen .mx-master-detail-details {
+ padding: 15px;
+ }
+
+ .mx-master-detail-screen-header {
+ position: relative;
+ overflow: auto;
+ border-bottom: 1px solid #ccc;
+ background-color: #f7f7f7;
+ }
+
+ .mx-master-detail-screen-header-caption {
+ text-align: center;
+ font-size: 17px;
+ line-height: 24px;
+ font-weight: 600;
+ }
+
+ .mx-master-detail-screen-header-close {
+ position: absolute;
+ left: 0;
+ top: 0;
+ height: 100%;
+ width: 50px;
+ border: none;
+ background: transparent;
+ color: #007aff;
+ }
+
+ body[dir="rtl"] .mx-master-detail-screen-header-close {
+ right: 0;
+ left: auto;
+ }
+
+ .mx-master-detail-screen-header-close::before {
+ content: "\2039";
+ font-size: 52px;
+ line-height: 24px;
+ }
+
+ /* classes for content page */
+ .mx-master-detail-content-fix {
+ height: 100vh;
+ overflow: hidden;
+ }
+
+ .mx-master-detail-content-hidden {
+ transform: translateX(-200%);
+ }
+
+ body[dir="rtl"] .mx-master-detail-content-hidden {
+ transform: translateX(200%);
+ }
+ .reportingReport {
+ padding: 5px;
+ border: 1px solid #ddd;
+ border-radius: 3px;
+ }
+
+ .reportingReportParameter th {
+ text-align: right;
+ }
+
+ .reportingDateRange table {
+ width: 100%;
+ table-layout: fixed;
+ }
+ .reportingDateRange th {
+ padding: 5px;
+ text-align: right;
+ background-color: #eee;
+ }
+ .reportingDateRange td {
+ padding: 5px;
+ }
+
+ .mx-reportmatrix table {
+ width: 100%;
+ max-width: 100%;
+ table-layout: fixed;
+ margin-bottom: 0;
+ }
+
+ .mx-reportmatrix th,
+ .mx-reportmatrix td {
+ padding: 8px;
+ line-height: 1.42857143;
+ vertical-align: bottom;
+ border: 1px solid #ddd;
+ }
+
+ .mx-reportmatrix tbody tr:first-child td {
+ border-top: none;
+ }
+
+ .mx-reportmatrix tbody tr:nth-child(2n + 1) td {
+ background-color: #f9f9f9;
+ }
+
+ .mx-reportmatrix tbody img {
+ max-width: 16px;
+ max-height: 16px;
+ }
+
+ @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
+ .dijitInline {
+ zoom: 1; /* set hasLayout:true to mimic inline-block */
+ display: inline; /* don't use .dj_ie since that increases the priority */
+ vertical-align: auto; /* makes TextBox,Button line up w/native counterparts on IE6 */
+ }
+
+ .dj_ie6 .dijitComboBox .dijitInputContainer,
+ .dijitInputContainer {
+ zoom: 1;
+ }
+
+ .dijitRight {
+ /* Right part of a 3-element border */
+ display: inline; /* IE7 sizes to outer size w/o this */
+ }
+
+ .dijitButtonNode {
+ vertical-align: auto;
+ }
+
+ .dijitTextBox {
+ overflow: hidden; /* #6027, #6067 */
+ }
+
+ .dijitPlaceHolder {
+ filter: ""; /* make this show up in IE6 after the rendering of the widget */
+ }
+
+ .dijitValidationTextBoxError input.dijitValidationInner,
+ .dijitSelect input,
+ .dijitTextBox input.dijitArrowButtonInner {
+ text-indent: 0 !important;
+ letter-spacing: -5em !important;
+ text-align: right !important;
+ }
+
+ .dj_a11y input.dijitValidationInner,
+ .dj_a11y input.dijitArrowButtonInner {
+ text-align: left !important;
+ }
+
+ .dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton {
+ bottom: 50%; /* otherwise (on some machines) top arrow icon too close to splitter border (IE6/7) */
+ }
+
+ .dijitTabContainerTop-tabs .dijitTab,
+ .dijitTabContainerBottom-tabs .dijitTab {
+ zoom: 1; /* set hasLayout:true to mimic inline-block */
+ display: inline; /* don't use .dj_ie since that increases the priority */
+ }
+
+ .dojoDndHorizontal .dojoDndItem {
+ /* make contents of horizontal container be side by side, rather than vertical */
+ display: inline;
+ }
+ }
+}
+
+/* WARNING: IE9 limits nested imports to three levels deep: http://jorgealbaladejo.com/2011/05/28/internet-explorer-limits-nested-import-css-statements */
+
+/* dijit base */
+
+/* mendix base */
+
+/* widgets */
+
+/* reporting */
+
+/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9kb2pvL2Rpaml0L3RoZW1lcy9kaWppdC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS9iYXNlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL2Zvcm1zLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9Ub29sdGlwLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9UYWJDb250YWluZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L19HcmlkLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9DYWxlbmRhci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvRGF0YUdyaWQuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RlbXBsYXRlR3JpZC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvU2Nyb2xsQ29udGFpbmVyLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9OYXZiYXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L05hdmlnYXRpb25UcmVlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9CdXR0b24uY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0dyb3VwQm94LmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9EYXRhVmlldy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvRGlhbG9nLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9XaW5kb3cuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0Ryb3BEb3duLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9IZWFkZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RpdGxlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9MaXN0Vmlldy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvTG9naW5EaWFsb2cuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L01lbnVCYXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L05hdmlnYXRpb25MaXN0LmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9Qcm9ncmVzcy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvUmVsb2FkTm90aWZpY2F0aW9uLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9SZXNpemFibGUuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RleHQuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RleHRBcmVhLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9VbmRlcmxheS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvSW1hZ2Vab29tLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9TZWxlY3RCb3guY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0RlbW9Vc2VyU3dpdGNoZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L01hc3RlckRldGFpbC5jc3MiLCJ3ZWJwYWNrOi8vLy4vcmVwb3J0aW5nL3VpL3dpZGdldC9SZXBvcnQuY3NzIiwid2VicGFjazovLy8uL3JlcG9ydGluZy91aS93aWRnZXQvUmVwb3J0UGFyYW1ldGVyLmNzcyIsIndlYnBhY2s6Ly8vLi9yZXBvcnRpbmcvdWkvd2lkZ2V0L0RhdGVSYW5nZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vcmVwb3J0aW5nL3VpL3dpZGdldC9SZXBvcnRNYXRyaXguY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvbXh1aS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFJQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QixVQUFVO0FBQ1YsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QjtBQUN2Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7O0FBRUE7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQixvQkFBb0I7QUFDcEI7QUFDQTtBQUNBLCtCQUErQjtBQUMvQjs7QUFFQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCLG9CQUFvQjtBQUNwQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0Esa0NBQWtDO0FBQ2xDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7O0FBRUE7QUFDQSw0QkFBNEI7QUFDNUI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQztBQUNsQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsZ0JBQWdCO0FBQ2hCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CLGFBQWE7QUFDYjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxzQkFBc0I7QUFDdEI7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckIscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkIsd0JBQXdCO0FBQ3hCLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHlDQUF5QztBQUN4RDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHdCQUF3QixvQkFBb0I7O0FBRTVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjs7QUFFQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQsMEJBQTBCO0FBQzFCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsYUFBYTtBQUNiLGFBQWEsd0RBQXdEO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esd0JBQXdCO0FBQ3hCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHFDQUFxQztBQUNyQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Ysb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxpQkFBaUI7QUFDakI7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxlQUFlO0FBQ2Ysc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QjtBQUM5Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7O0FBRUE7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7OztBQUdBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QixVQUFVO0FBQ1YsaUJBQWlCO0FBQ2pCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwrQkFBK0I7QUFDL0I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7O0FBRUE7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsNEJBQTRCO0FBQzlDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrQkFBa0I7QUFDbEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQjtBQUNoQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQztBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHFCQUFxQjtBQUNyQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpQkFBaUI7O0FBRWpCO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdnNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQzs7O0FDOUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUN6REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOztBQzdCQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JGQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQzFCQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDhCQUE4QjtBQUN0QyxVQUFVLCtCQUErQjtBQUN6Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUN0R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyREE7QUFDQTtBQUNBO0FBQ0E7OztBQ0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RCQTtBQUNBO0FBQ0E7QUFDQTs7QUNIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0VBO0FBQ0E7QUFDQTs7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0E7O0FDYkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DOztBQy9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JFQTtBQUNBO0FBQ0E7O0FDRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQzs7QUMvREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxDO0FDaEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ05BO0FBQ0E7QUFDQTs7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDekJBOztBQUVBOztBQUVBOztBQUVBOztBQUVBIiwiZmlsZSI6Im14dWkvdWkvbXh1aS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuXHRFc3NlbnRpYWwgc3R5bGVzIHRoYXQgdGhlbWVzIGNhbiBpbmhlcml0LlxuXHRJbiBvdGhlciB3b3Jkcywgd29ya3MgYnV0IGRvZXNuJ3QgbG9vayBncmVhdC5cbiovXG5cblxuXG4vKioqKlxuXHRcdEdFTkVSSUMgUElFQ0VTXG4gKioqKi9cblxuLmRpaml0UmVzZXQge1xuXHQvKiBVc2UgdGhpcyBzdHlsZSB0byBudWxsIG91dCBwYWRkaW5nLCBtYXJnaW4sIGJvcmRlciBpbiB5b3VyIHRlbXBsYXRlIGVsZW1lbnRzXG5cdFx0c28gdGhhdCBwYWdlIHNwZWNpZmljIHN0eWxlcyBkb24ndCBicmVhayB0aGVtLlxuXHRcdC0gVXNlIGluIGFsbCBUQUJMRSwgVFIgYW5kIFREIHRhZ3MuXG5cdCovXG5cdG1hcmdpbjowO1xuXHRib3JkZXI6MDtcblx0cGFkZGluZzowO1xuXHRmb250OiBpbmhlcml0O1xuXHRsaW5lLWhlaWdodDpub3JtYWw7XG5cdGNvbG9yOiBpbmhlcml0O1xufVxuLmRqX2ExMXkgLmRpaml0UmVzZXQge1xuXHQtbW96LWFwcGVhcmFuY2U6IG5vbmU7IC8qIHJlbW92ZSBwcmVkZWZpbmVkIGhpZ2gtY29udHJhc3Qgc3R5bGluZyBpbiBGaXJlZm94ICovXG59XG5cbi5kaWppdElubGluZSB7XG5cdC8qICBUbyBpbmxpbmUgYmxvY2sgZWxlbWVudHMuXG5cdFx0U2ltaWxhciB0byBJbmxpbmVCb3ggYmVsb3csIGJ1dCB0aGlzIGhhcyBmZXdlciBzaWRlLWVmZmVjdHMgaW4gTW96LlxuXHRcdEFsc28sIGFwcGFyZW50bHkgd29ya3Mgb24gYSBESVYgYXMgd2VsbCBhcyBhIEZJRUxEU0VULlxuXHQqL1xuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcdFx0XHQvKiB3ZWJraXQgYW5kIEZGMyAqL1xuXHQjem9vbTogMTsgLyogc2V0IGhhc0xheW91dDp0cnVlIHRvIG1pbWljIGlubGluZS1ibG9jayAqL1xuXHQjZGlzcGxheTppbmxpbmU7IC8qIGRvbid0IHVzZSAuZGpfaWUgc2luY2UgdGhhdCBpbmNyZWFzZXMgdGhlIHByaW9yaXR5ICovXG5cdGJvcmRlcjowO1xuXHRwYWRkaW5nOjA7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0I3ZlcnRpY2FsLWFsaWduOiBhdXRvO1x0LyogbWFrZXMgVGV4dEJveCxCdXR0b24gbGluZSB1cCB3L25hdGl2ZSBjb3VudGVycGFydHMgb24gSUU2ICovXG59XG5cbnRhYmxlLmRpaml0SW5saW5lIHtcblx0LyogVG8gaW5saW5lIHRhYmxlcyB3aXRoIGEgZ2l2ZW4gd2lkdGggc2V0ICovXG5cdGRpc3BsYXk6aW5saW5lLXRhYmxlO1xuXHRib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLmRpaml0SGlkZGVuIHtcblx0LyogVG8gaGlkZSB1bnNlbGVjdGVkIHBhbmVzIGluIFN0YWNrQ29udGFpbmVyIGV0Yy4gKi9cblx0cG9zaXRpb246IGFic29sdXRlOyAvKiByZW1vdmUgZnJvbSBub3JtYWwgZG9jdW1lbnQgZmxvdyB0byBzaW11bGF0ZSBkaXNwbGF5OiBub25lICovXG5cdHZpc2liaWxpdHk6IGhpZGRlbjsgLyogaGlkZSBlbGVtZW50IGZyb20gdmlldywgYnV0IGRvbid0IGJyZWFrIHNjcm9sbGluZywgc2VlICMxODYxMiAqL1xufVxuLmRpaml0SGlkZGVuICoge1xuXHR2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsgLyogaGlkZSB2aXNpYmlsaXR5OnZpc2libGUgZGVzY2VuZGFudHMgb2YgY2xhc3M9ZGlqaXRIaWRkZW4gbm9kZXMsIHNlZSAjMTg3OTkgKi9cbn1cblxuLmRpaml0VmlzaWJsZSB7XG5cdC8qIFRvIHNob3cgc2VsZWN0ZWQgcGFuZSBpbiBTdGFja0NvbnRhaW5lciBldGMuICovXG5cdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHQvKiBvdmVycmlkZSB1c2VyJ3MgZGlzcGxheTpub25lIHNldHRpbmcgdmlhIHN0eWxlIHNldHRpbmcgb3IgaW5kaXJlY3RseSB2aWEgY2xhc3MgKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1x0XHRcdC8qIHRvIHN1cHBvcnQgc2V0dGluZyB3aWR0aC9oZWlnaHQsIHNlZSAjMjAzMyAqL1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4uZGpfaWU2IC5kaWppdENvbWJvQm94IC5kaWppdElucHV0Q29udGFpbmVyLFxuLmRpaml0SW5wdXRDb250YWluZXIge1xuXHQvKiBmb3IgcG9zaXRpb25pbmcgb2YgcGxhY2VIb2xkZXIgKi9cblx0I3pvb206IDE7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGZsb2F0OiBub25lICFpbXBvcnRhbnQ7IC8qIG5lZWRlZCB0byBzcXVlZXplIHRoZSBJTlBVVCBpbiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZGpfaWU3IC5kaWppdElucHV0Q29udGFpbmVyIHtcblx0ZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsgLyogbmVlZGVkIGJ5IElFIHRvIHNxdWVlemUgdGhlIElOUFVUIGluICovXG5cdGNsZWFyOiBsZWZ0O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgLyogdG8gZml4IHdyb25nIHRleHQgYWxpZ25tZW50IGluIHRleHRkaXI9cnRsIHRleHQgYm94ICovXG59XG5cbi5kal9pZSAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWUgaW5wdXQuZGlqaXRUZXh0Qm94LFxuLmRqX2llIC5kaWppdFRleHRCb3ggaW5wdXQge1xuXHRmb250LXNpemU6IDEwMCU7XG59XG4uZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uVGV4dCB7XG5cdGZsb2F0OiBsZWZ0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuVEFCTEUuZGlqaXRTZWxlY3Qge1xuXHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IC8qIG1lc3NlcyB1cCBib3JkZXIgYWxpZ25tZW50ICovXG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7IC8qIHNvIGpzZmlkZGxlIHdvcmtzIHdpdGggTm9ybWFsaXplZCBDU1MgY2hlY2tlZCAqL1xufVxuLmRpaml0VGV4dEJveCAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyLFxuLmRpaml0VGV4dEJveCAuZGlqaXRBcnJvd0J1dHRvbkNvbnRhaW5lcixcbi5kaWppdFZhbGlkYXRpb25UZXh0Qm94IC5kaWppdFZhbGlkYXRpb25Db250YWluZXIge1xuXHRmbG9hdDogcmlnaHQ7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5kaWppdFNlbGVjdCBpbnB1dC5kaWppdElucHV0RmllbGQsXG4uZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRGaWVsZCB7XG5cdC8qIG92ZXJyaWRlIHVucmVhc29uYWJsZSB1c2VyIHN0eWxpbmcgb2YgYnV0dG9ucyBhbmQgaWNvbnMgKi9cblx0cGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cbi5kaWppdFZhbGlkYXRpb25UZXh0Qm94IC5kaWppdFZhbGlkYXRpb25Db250YWluZXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZGlqaXRUZWVueSB7XG5cdGZvbnQtc2l6ZToxcHg7XG5cdGxpbmUtaGVpZ2h0OjFweDtcbn1cblxuLmRpaml0T2ZmU2NyZWVuIHsgLyogdGhlc2UgY2xhc3MgYXR0cmlidXRlcyBzaG91bGQgc3VwZXJzZWRlIGFueSBpbmxpbmUgcG9zaXRpb25pbmcgc3R5bGUgKi9cblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdGxlZnQ6IC0xMDAwMHB4ICFpbXBvcnRhbnQ7XG5cdHRvcDogLTEwMDAwcHggIWltcG9ydGFudDtcbn1cblxuLypcbiAqIFBvcHVwIGl0ZW1zIGhhdmUgYSB3cmFwcGVyIGRpdiAoZGlqaXRQb3B1cClcbiAqIHdpdGggdGhlIHJlYWwgcG9wdXAgaW5zaWRlLCBhbmQgbWF5YmUgYW4gaWZyYW1lIHRvb1xuICovXG4uZGlqaXRQb3B1cCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdG1hcmdpbjogMDtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5kaWppdFBvc2l0aW9uT25seSB7XG5cdC8qIE51bGwgb3V0IGFsbCBwb3NpdGlvbi1yZWxhdGVkIHByb3BlcnRpZXMgKi9cblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xuXHRib3JkZXI6IDAgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0d2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmRpaml0Tm9uUG9zaXRpb25Pbmx5IHtcblx0LyogTnVsbCBwb3NpdGlvbi1yZWxhdGVkIHByb3BlcnRpZXMgKi9cblx0ZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcblx0cG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDAgMCAwIDAgIWltcG9ydGFudDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xufVxuXG4uZGlqaXRCYWNrZ3JvdW5kSWZyYW1lIHtcblx0LyogaWZyYW1lIHVzZWQgdG8gcHJldmVudCBwcm9ibGVtcyB3aXRoIFBERiBvciBvdGhlciBhcHBsZXRzIG92ZXJsYXlpbmcgbWVudXMgZXRjICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0dG9wOiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR6LWluZGV4OiAtMTtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdERpc3BsYXlOb25lIHtcblx0LyogaGlkZSBzb21ldGhpbmcuICBVc2UgdGhpcyBhcyBhIGNsYXNzIHJhdGhlciB0aGFuIGVsZW1lbnQuc3R5bGUgc28gYW5vdGhlciBjbGFzcyBjYW4gb3ZlcnJpZGUgKi9cblx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdENvbnRhaW5lciB7XG5cdC8qIGZvciBhbGwgbGF5b3V0IGNvbnRhaW5lcnMgKi9cblx0b3ZlcmZsb3c6IGhpZGRlbjtcdC8qIG5lZWQgb24gSUUgc28gc29tZXRoaW5nIGNhbiBiZSByZWR1Y2VkIGluIHNpemUsIGFuZCBzbyBzY3JvbGxiYXJzIGFyZW4ndCB0ZW1wb3JhcmlseSBkaXNwbGF5ZWQgd2hlbiByZXNpemluZyAqL1xufVxuXG4vKioqKlxuXHRcdEExMVlcbiAqKioqL1xuLmRqX2ExMXkgLmRpaml0SWNvbixcbi5kal9hMTF5IGRpdi5kaWppdEFycm93QnV0dG9uSW5uZXIsIC8qIGlzIHRoaXMgb25seSBmb3IgU3Bpbm5lcj8gIGlmIHNvLCBpdCBzaG91bGQgYmUgZGVsZXRlZCAqL1xuLmRqX2ExMXkgc3Bhbi5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGpfYTExeSBpbWcuZGlqaXRBcnJvd0J1dHRvbklubmVyLFxuLmRqX2ExMXkgLmRpaml0Q2FsZW5kYXJJbmNyZW1lbnRDb250cm9sLFxuLmRqX2ExMXkgLmRpaml0VHJlZUV4cGFuZG8ge1xuXHQvKiBoaWRlIGljb24gbm9kZXMgaW4gaGlnaCBjb250cmFzdCBtb2RlOyB3aGVuIG5lY2Vzc2FyeSB0aGV5IHdpbGwgYmUgcmVwbGFjZWQgYnkgY2hhcmFjdGVyIGVxdWl2YWxlbnRzXG5cdCAqIGV4Y2VwdGlvbiBmb3IgaW5wdXQuZGlqaXRBcnJvd0J1dHRvbklubmVyLCBiZWNhdXNlIHRoZSBpY29uIGFuZCBjaGFyYWN0ZXIgYXJlIGNvbnRyb2xsZWQgYnkgdGhlIHNhbWUgbm9kZSAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRpaml0U3Bpbm5lciBkaXYuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0ZGlzcGxheTogYmxvY2s7IC8qIG92ZXJyaWRlIHByZXZpb3VzIHJ1bGUgKi9cbn1cblxuLmRqX2ExMXkgLmRpaml0QTExeVNpZGVBcnJvdyB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyAvKiBkaXNwbGF5IHRleHQgaW5zdGVhZCAqL1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qXG4gKiBTaW5jZSB3ZSBjYW4ndCB1c2Ugc2hhZGluZyBpbiBhMTF5IG1vZGUsIGFuZCBzaW5jZSB0aGUgdW5kZXJsaW5lIGluZGljYXRlcyB0b2RheSdzIGRhdGUsXG4gKiB1c2UgYSBib3JkZXIgdG8gc2hvdyB0aGUgc2VsZWN0ZWQgZGF0ZS5cbiAqIEF2b2lkIHNjcmVlbiBqaXR0ZXIgd2hlbiBzd2l0Y2hpbmcgc2VsZWN0ZWQgZGF0ZSBieSBjb21wZW5zYXRpbmcgZm9yIHRoZSBzZWxlY3RlZCBub2RlJ3NcbiAqIGJvcmRlciB3L3BhZGRpbmcgb24gb3RoZXIgbm9kZXMuXG4gKi9cbi5kal9hMTF5IC5kaWppdENhbGVuZGFyRGF0ZUxhYmVsIHtcblx0cGFkZGluZzogMXB4O1xuXHRib3JkZXI6IDBweCAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0Q2FsZW5kYXJTZWxlY3RlZERhdGUgLmRpaml0Q2FsZW5kYXJEYXRlTGFiZWwge1xuXHRib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG5cdGJvcmRlci13aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmc6IDA7XG59XG4uZGpfYTExeSAuZGlqaXRDYWxlbmRhckRhdGVUZW1wbGF0ZSB7XG5cdHBhZGRpbmctYm90dG9tOiAwLjFlbSAhaW1wb3J0YW50O1x0Lyogb3RoZXJ3aXNlIGJvdHRvbSBib3JkZXIgZG9lc24ndCBhcHBlYXIgb24gSUUgKi9cblx0Ym9yZGVyOiAwcHggIWltcG9ydGFudDtcbn1cbi5kal9hMTF5IC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXI6IGJsYWNrIG91dHNldCBtZWRpdW0gIWltcG9ydGFudDtcblxuXHQvKiBJbiBjbGFybywgaG92ZXJpbmcgYSB0b29sYmFyIGJ1dHRvbiByZWR1Y2VzIHBhZGRpbmcgYW5kIGFkZHMgYSBib3JkZXIuXG5cdCAqIE5vdCBuZWVkZWQgaW4gYTExeSBtb2RlIHNpbmNlIFRvb2xiYXIgYnV0dG9ucyBhbHdheXMgaGF2ZSBhIGJvcmRlci5cblx0ICovXG5cdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cbi5kal9hMTF5IC5kaWppdEFycm93QnV0dG9uIHtcblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXRCdXR0b25Db250ZW50cyB7XG5cdG1hcmdpbjogMC4xNWVtOyAvKiBNYXJnaW4gbmVlZGVkIHRvIG1ha2UgZm9jdXMgb3V0bGluZSB2aXNpYmxlICovXG59XG5cbi5kal9hMTF5IC5kaWppdFRleHRCb3hSZWFkT25seSAuZGlqaXRJbnB1dEZpZWxkLFxuLmRqX2ExMXkgLmRpaml0VGV4dEJveFJlYWRPbmx5IC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItc3R5bGU6IG91dHNldCFpbXBvcnRhbnQ7XG5cdGJvcmRlci13aWR0aDogbWVkaXVtIWltcG9ydGFudDtcblx0Ym9yZGVyLWNvbG9yOiAjOTk5ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiM5OTkgIWltcG9ydGFudDtcbn1cblxuLyogYnV0dG9uIGlubmVyIGNvbnRlbnRzIC0gbGFiZWxzLCBpY29ucyBldGMuICovXG4uZGlqaXRCdXR0b25Ob2RlICoge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmRpaml0U2VsZWN0IC5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGlqaXRCdXR0b25Ob2RlIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHQvKiB0aGUgYXJyb3cgaWNvbiBub2RlICovXG5cdGJhY2tncm91bmQ6IG5vLXJlcGVhdCBjZW50ZXI7XG5cdHdpZHRoOiAxMnB4O1xuXHRoZWlnaHQ6IDEycHg7XG5cdGRpcmVjdGlvbjogbHRyOyAvKiBuZWVkZWQgYnkgSUUvUlRMICovXG59XG5cbi8qKioqXG5cdDMtZWxlbWVudCBib3JkZXJzOiAgKCBkaWppdExlZnQgKyBkaWppdFN0cmV0Y2ggKyBkaWppdFJpZ2h0IClcblx0VGhlc2Ugd2VyZSBhZGRlZCBmb3Igcm91bmRlZCBjb3JuZXJzIG9uIGRpaml0LmZvcm0uKkJ1dHRvbiBidXQgbmV2ZXIgYWN0dWFsbHkgdXNlZC5cbiAqKioqL1xuXG4uZGlqaXRMZWZ0IHtcblx0LyogTGVmdCBwYXJ0IG9mIGEgMy1lbGVtZW50IGJvcmRlciAqL1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgdG9wO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG59XG5cbi5kaWppdFN0cmV0Y2gge1xuXHQvKiBNaWRkbGUgKHN0cmV0Y2h5KSBwYXJ0IG9mIGEgMy1lbGVtZW50IGJvcmRlciAqL1xuXHR3aGl0ZS1zcGFjZTpub3dyYXA7XHRcdFx0LyogTU9XOiBtb3ZlIHNvbWV3aGVyZSBlbHNlICovXG5cdGJhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O1xufVxuXG4uZGlqaXRSaWdodCB7XG5cdC8qIFJpZ2h0IHBhcnQgb2YgYSAzLWVsZW1lbnQgYm9yZGVyICovXG5cdCNkaXNwbGF5OmlubGluZTtcdFx0XHRcdC8qIElFNyBzaXplcyB0byBvdXRlciBzaXplIHcvbyB0aGlzICovXG5cdGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgdG9wO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG59XG5cbi8qIEJ1dHRvbnMgKi9cbi5kal9nZWNrbyAuZGpfYTExeSAuZGlqaXRCdXR0b25EaXNhYmxlZCAuZGlqaXRCdXR0b25Ob2RlIHtcblx0b3BhY2l0eTogMC41O1xufVxuXG4uZGlqaXRUb2dnbGVCdXR0b24sXG4uZGlqaXRCdXR0b24sXG4uZGlqaXREcm9wRG93bkJ1dHRvbixcbi5kaWppdENvbWJvQnV0dG9uIHtcblx0Lyogb3V0c2lkZSBvZiBidXR0b24gKi9cblx0bWFyZ2luOiAwLjJlbTtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRkaXNwbGF5OiBibG9jaztcdFx0LyogdG8gbWFrZSBmb2N1cyBib3JkZXIgcmVjdGFuZ3VsYXIgKi9cbn1cbnRkLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRkaXNwbGF5OiB0YWJsZS1jZWxsO1x0LyogYnV0IGRvbid0IGFmZmVjdCBTZWxlY3QsIENvbWJvQnV0dG9uICovXG59XG5cbi5kaWppdEJ1dHRvbk5vZGUgaW1nIHtcblx0LyogbWFrZSB0ZXh0IGFuZCBpbWFnZXMgbGluZSB1cCBjbGVhbmx5ICovXG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0LyptYXJnaW4tYm90dG9tOi4yZW07Ki9cbn1cblxuLmRpaml0VG9vbGJhciAuZGlqaXRDb21ib0J1dHRvbiB7XG5cdC8qIGJlY2F1c2UgVG9vbGJhciBvbmx5IGRyYXdzIGEgYm9yZGVyIGFyb3VuZCB0aGUgaG92ZXJlZCB0aGluZyAqL1xuXHRib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xufVxuXG4uZGlqaXRUb29sYmFyIC5kaWppdFRvZ2dsZUJ1dHRvbixcbi5kaWppdFRvb2xiYXIgLmRpaml0QnV0dG9uLFxuLmRpaml0VG9vbGJhciAuZGlqaXREcm9wRG93bkJ1dHRvbixcbi5kaWppdFRvb2xiYXIgLmRpaml0Q29tYm9CdXR0b24ge1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdFRvb2xiYXIgLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHQvKiBqdXN0IGJlY2F1c2UgaXQgdXNlZCB0byBiZSB0aGlzIHdheSAqL1xuXHRwYWRkaW5nOiAxcHggMnB4O1xufVxuXG5cbi5kal93ZWJraXQgLmRpaml0VG9vbGJhciAuZGlqaXREcm9wRG93bkJ1dHRvbiB7XG5cdHBhZGRpbmctbGVmdDogMC4zZW07XG59XG4uZGpfZ2Vja28gLmRpaml0VG9vbGJhciAuZGlqaXRCdXR0b25Ob2RlOjotbW96LWZvY3VzLWlubmVyIHtcblx0cGFkZGluZzowO1xufVxuXG4uZGlqaXRTZWxlY3Qge1xuXHRib3JkZXI6MXB4IHNvbGlkIGdyYXk7XG59XG4uZGlqaXRCdXR0b25Ob2RlIHtcblx0LyogTm9kZSB0aGF0IGlzIGFjdGluZyBhcyBhIGJ1dHRvbiAtLSBtYXkgb3IgbWF5IG5vdCBiZSBhIEJVVFRPTiBlbGVtZW50ICovXG5cdGJvcmRlcjoxcHggc29saWQgZ3JheTtcblx0bWFyZ2luOjA7XG5cdGxpbmUtaGVpZ2h0Om5vcm1hbDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0I3ZlcnRpY2FsLWFsaWduOiBhdXRvO1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5kal93ZWJraXQgLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIHtcblx0LyogYXBwYXJlbnQgV2ViS2l0IGJ1ZyB3aGVyZSBtZXNzaW5nIHdpdGggdGhlIGZvbnQgY291cGxlZCB3aXRoIGxpbmUtaGVpZ2h0Om5vcm1hbCBYIDIgKGRpaml0UmVzZXQgJiBkaWppdEJ1dHRvbk5vZGUpXG5cdGNhbiBiZSBkaWZmZXJlbnQgdGhhbiBqdXN0IGEgc2luZ2xlIGxpbmUtaGVpZ2h0Om5vcm1hbCwgdmlzaWJsZSBpbiBJbmxpbmVFZGl0Qm94L1NwaW5uZXIgKi9cblx0bGluZS1oZWlnaHQ6aW5oZXJpdDtcbn1cbi5kaWppdFRleHRCb3ggLmRpaml0QnV0dG9uTm9kZSB7XG5cdGJvcmRlci13aWR0aDogMDtcbn1cblxuLmRpaml0U2VsZWN0LFxuLmRpaml0U2VsZWN0ICosXG4uZGlqaXRCdXR0b25Ob2RlLFxuLmRpaml0QnV0dG9uTm9kZSAqIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGpfaWUgLmRpaml0QnV0dG9uTm9kZSB7XG5cdC8qIGVuc3VyZSBoYXNMYXlvdXQgKi9cblx0em9vbTogMTtcbn1cblxuLmRqX2llIC5kaWppdEJ1dHRvbk5vZGUgYnV0dG9uIHtcblx0Lypcblx0XHRkaXNndXN0aW5nIGhhY2sgdG8gZ2V0IHJpZCBvZiBzcHVyaW91cyBwYWRkaW5nIGFyb3VuZCBidXR0b24gZWxlbWVudHNcblx0XHRvbiBJRS4gTVNJRSBpcyB0cnVseSB0aGUgd2ViJ3MgYm9hdCBhbmNob3IuXG5cdCovXG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5kaXYuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdGZsb2F0OiByaWdodDtcbn1cblxuLyoqKioqKlxuXHRUZXh0Qm94IHJlbGF0ZWQuXG5cdEV2ZXJ5dGhpbmcgdGhhdCBoYXMgYW4gPGlucHV0PlxuKioqKioqKi9cblxuLmRpaml0VGV4dEJveCB7XG5cdGJvcmRlcjogc29saWQgYmxhY2sgMXB4O1xuXHQjb3ZlcmZsb3c6IGhpZGRlbjsgLyogIzYwMjcsICM2MDY3ICovXG5cdHdpZHRoOiAxNWVtO1x0LyogbmVlZCB0byBzZXQgZGVmYXVsdCBzaXplIG9uIG91dGVyIG5vZGUgc2luY2UgaW5uZXIgbm9kZXMgc2F5IDxpbnB1dCBzdHlsZT1cIndpZHRoOjEwMCVcIj4gYW5kIDx0ZCB3aWR0aD0xMDAlPi4gIHVzZXIgY2FuIG92ZXJyaWRlICovXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kaWppdFRleHRCb3hSZWFkT25seSxcbi5kaWppdFRleHRCb3hEaXNhYmxlZCB7XG5cdGNvbG9yOiBncmF5O1xufVxuLmRqX3NhZmFyaSAuZGlqaXRUZXh0Qm94RGlzYWJsZWQgaW5wdXQge1xuXHRjb2xvcjogI0IwQjBCMDsgLyogYmVjYXVzZSBTYWZhcmkgbGlnaHRlbnMgZGlzYWJsZWQgaW5wdXQvdGV4dGFyZWEgbm8gbWF0dGVyIHdoYXQgY29sb3IgeW91IHNwZWNpZnkgKi9cbn1cbi5kal9zYWZhcmkgdGV4dGFyZWEuZGlqaXRUZXh0QXJlYURpc2FibGVkIHtcblx0Y29sb3I6ICMzMzM7IC8qIGJlY2F1c2UgU2FmYXJpIGxpZ2h0ZW5zIGRpc2FibGVkIGlucHV0L3RleHRhcmVhIG5vIG1hdHRlciB3aGF0IGNvbG9yIHlvdSBzcGVjaWZ5ICovXG59XG4uZGpfZ2Vja28gLmRpaml0VGV4dEJveFJlYWRPbmx5IGlucHV0LmRpaml0SW5wdXRGaWVsZCwgLyogZGlzYWJsZSBhcnJvdyBhbmQgdmFsaWRhdGlvbiBwcmVzZW50YXRpb24gaW5wdXRzIGJ1dCBhbGxvdyByZWFsIGlucHV0IGZvciB0ZXh0IHNlbGVjdGlvbiAqL1xuLmRqX2dlY2tvIC5kaWppdFRleHRCb3hEaXNhYmxlZCBpbnB1dCB7XG5cdC1tb3otdXNlci1pbnB1dDogbm9uZTsgLyogcHJldmVudCBmb2N1cyBvZiBkaXNhYmxlZCB0ZXh0Ym94IGJ1dHRvbnMgKi9cbn1cblxuLmRpaml0UGxhY2VIb2xkZXIge1xuXHQvKiBoaW50IHRleHQgdGhhdCBhcHBlYXJzIGluIGEgdGV4dGJveCB1bnRpbCB1c2VyIHN0YXJ0cyB0eXBpbmcgKi9cblx0Y29sb3I6ICNBQUFBQUE7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdCNmaWx0ZXI6IFwiXCI7IC8qIG1ha2UgdGhpcyBzaG93IHVwIGluIElFNiBhZnRlciB0aGUgcmVuZGVyaW5nIG9mIHRoZSB3aWRnZXQgKi9cblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7ICAgLyogc28gY3V0L3Bhc3RlIGNvbnRleHQgbWVudSBzaG93cyB1cCB3aGVuIHJpZ2h0IGNsaWNraW5nICovXG59XG5cbi5kaWppdFRpbWVUZXh0Qm94IHtcblx0d2lkdGg6IDhlbTtcbn1cblxuLyogcnVsZXMgZm9yIHdlYmtpdCB0byBkZWFsIHdpdGggZnV6enkgYmx1ZSBmb2N1cyBib3JkZXIgKi9cbi5kaWppdFRleHRCb3ggaW5wdXQ6Zm9jdXMge1xuXHRvdXRsaW5lOiBub25lO1x0LyogYmx1ZSBmdXp6eSBsaW5lIGxvb2tzIHdyb25nIG9uIGNvbWJvYm94IG9yIHNvbWV0aGluZyB3L3ZhbGlkYXRpb24gaWNvbiBzaG93aW5nICovXG59XG4uZGlqaXRUZXh0Qm94Rm9jdXNlZCB7XG5cdG91dGxpbmU6IDVweCAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG59XG5cbi5kaWppdFNlbGVjdCBpbnB1dCxcbi5kaWppdFRleHRCb3ggaW5wdXQge1xuXHRmbG9hdDogbGVmdDsgLyogbmVlZGVkIGJ5IElFIHRvIHJlbW92ZSBzZWNyZXQgbWFyZ2luICovXG59XG4uZGpfaWU2IGlucHV0LmRpaml0VGV4dEJveCxcbi5kal9pZTYgLmRpaml0VGV4dEJveCBpbnB1dCB7XG5cdGZsb2F0OiBub25lO1xufVxuLmRpaml0SW5wdXRJbm5lciB7XG5cdC8qIGZvciB3aGVuIGFuIDxpbnB1dD4gaXMgZW1iZWRkZWQgaW5zaWRlIGFuIGlubGluZS1ibG9jayA8ZGl2PiB3aXRoIGEgc2l6ZSBhbmQgYm9yZGVyICovXG5cdGJvcmRlcjowICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuXHQvKiBJRSBkaXNsaWtlcyBob3Jpem9udGFsIHR3ZWFraW5nIGNvbWJpbmVkIHdpdGggd2lkdGg6MTAwJSBzbyBwdW5pc2ggZXZlcnlvbmUgZm9yIGNvbnNpc3RlbmN5ICovXG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0VGV4dEJveCBpbnB1dCB7XG5cdG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuLmRpaml0VmFsaWRhdGlvblRleHRCb3hFcnJvciBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kaWppdFNlbGVjdCBpbnB1dCxcbi5kaWppdFRleHRCb3ggaW5wdXQuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0LyogPGlucHV0PiB1c2VkIHRvIGRpc3BsYXkgYXJyb3cgaWNvbi92YWxpZGF0aW9uIGljb24sIG9yIGluIGFycm93IGNoYXJhY3RlciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuXG5cdCAqIFRoZSBjc3MgYmVsb3cgaXMgYSB0cmljayB0byBoaWRlIHRoZSBjaGFyYWN0ZXIgaW4gbm9uLWhpZ2gtY29udHJhc3QgbW9kZVxuXHQgKi9cblx0dGV4dC1pbmRlbnQ6IC0yZW0gIWltcG9ydGFudDtcblx0ZGlyZWN0aW9uOiBsdHIgIWltcG9ydGFudDtcblx0dGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0I3RleHQtaW5kZW50OiAwICFpbXBvcnRhbnQ7XG5cdCNsZXR0ZXItc3BhY2luZzogLTVlbSAhaW1wb3J0YW50O1xuXHQjdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbn1cbi5kal9pZSAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWUgLmRpaml0VGV4dEJveCBpbnB1dCxcbi5kal9pZSBpbnB1dC5kaWppdFRleHRCb3gge1xuXHRvdmVyZmxvdy15OiB2aXNpYmxlOyAvKiBpbnB1dHMgbmVlZCBoZWxwIGV4cGFuZGluZyB3aGVuIHBhZGRpbmcgaXMgYWRkZWQgb3IgbGluZS1oZWlnaHQgaXMgYWRqdXN0ZWQgKi9cblx0bGluZS1oZWlnaHQ6IG5vcm1hbDsgLyogc3RyaWN0IG1vZGUgKi9cbn1cbi5kaWppdFNlbGVjdCAuZGlqaXRTZWxlY3RMYWJlbCBzcGFuIHtcblx0bGluZS1oZWlnaHQ6IDEwMCU7XG59XG4uZGpfaWUgLmRpaml0U2VsZWN0IC5kaWppdFNlbGVjdExhYmVsIHtcblx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cbi5kal9pZTYgLmRpaml0U2VsZWN0IC5kaWppdFNlbGVjdExhYmVsLFxuLmRqX2llNyAuZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwsXG4uZGpfaWU4IC5kaWppdFNlbGVjdCAuZGlqaXRTZWxlY3RMYWJlbCxcbi5kal9pZXF1aXJrcyAuZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwsXG4uZGlqaXRTZWxlY3QgdGQsXG4uZGpfaWU2IC5kaWppdFNlbGVjdCBpbnB1dCxcbi5kal9pZXF1aXJrcyAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWU2IC5kaWppdFNlbGVjdCAuZGlqaXRWYWxpZGF0aW9uQ29udGFpbmVyLFxuLmRqX2llNiAuZGlqaXRUZXh0Qm94IGlucHV0LFxuLmRqX2llNiBpbnB1dC5kaWppdFRleHRCb3gsXG4uZGpfaWVxdWlya3MgLmRpaml0VGV4dEJveCBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kal9pZXF1aXJrcyAuZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0QXJyb3dCdXR0b25Jbm5lcixcbi5kal9pZXF1aXJrcyAuZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0U3Bpbm5lckJ1dHRvbklubmVyLFxuLmRqX2llcXVpcmtzIC5kaWppdFRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRqX2llcXVpcmtzIGlucHV0LmRpaml0VGV4dEJveCB7XG5cdGxpbmUtaGVpZ2h0OiAxMDAlOyAvKiBJRTcgcHJvYmxlbSB3aGVyZSB0aGUgaWNvbiBpcyB2ZXJ0aWNhbGx5IHdheSB0b28gbG93IHcvbyB0aGlzICovXG59XG4uZGpfYTExeSBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kal9hMTF5IGlucHV0LmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdC8qIChpbiBoaWdoIGNvbnRyYXN0IG1vZGUpIHJldmVydCBydWxlcyBmcm9tIGFib3ZlIHNvIGNoYXJhY3RlciBkaXNwbGF5cyAqL1xuXHR0ZXh0LWluZGVudDogMCAhaW1wb3J0YW50O1xuXHR3aWR0aDogMWVtICFpbXBvcnRhbnQ7XG5cdCN0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xufVxuLmRpaml0VmFsaWRhdGlvblRleHRCb3hFcnJvciAuZGlqaXRWYWxpZGF0aW9uQ29udGFpbmVyIHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qIENvbWJvQm94ICYgU3Bpbm5lciAqL1xuXG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGlqaXRDb21ib0JveCAuZGlqaXRBcnJvd0J1dHRvbkNvbnRhaW5lciB7XG5cdC8qIGRpdmlkaW5nIGxpbmUgYmV0d2VlbiBpbnB1dCBhcmVhIGFuZCB1cC9kb3duIGJ1dHRvbihzKSBmb3IgQ29tYm9Cb3ggYW5kIFNwaW5uZXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwIDAgMCAxcHggIWltcG9ydGFudDsgLyogIWltcG9ydGFudCBuZWVkZWQgZHVlIHRvIHdheXdhcmQgXCIudGhlbWUgLmRpaml0QnV0dG9uTm9kZVwiIHJ1bGVzICovXG59XG4uZGpfYTExeSAuZGlqaXRTZWxlY3QgLmRpaml0QXJyb3dCdXR0b25Db250YWluZXIsXG4uZGlqaXRUb29sYmFyIC5kaWppdENvbWJvQm94IC5kaWppdEFycm93QnV0dG9uQ29udGFpbmVyIHtcblx0Lyogb3ZlcnJpZGVzIGFib3ZlIHJ1bGUgcGx1cyBtaXJyb3ItaW1hZ2UgcnVsZSBpbiBkaWppdF9ydGwuY3NzIHRvIGhhdmUgbm8gZGl2aWRlciB3aGVuIENvbWJvQm94IGluIFRvb2xiYXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdENvbWJvQm94TWVudSB7XG5cdC8qIERyb3AgZG93biBtZW51IGlzIGltcGxlbWVudGVkIGFzIDx1bD4gPGxpLz4gPGxpLz4gLi4uIGJ1dCB3ZSBkb24ndCB3YW50IGNpcmNsZXMgYmVmb3JlIGVhY2ggaXRlbSAqL1xuXHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QnV0dG9uTm9kZSB7XG5cdC8qIGRpdmlkaW5nIGxpbmUgYmV0d2VlbiBpbnB1dCBhcmVhIGFuZCB1cC9kb3duIGJ1dHRvbihzKSBmb3IgQ29tYm9Cb3ggYW5kIFNwaW5uZXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwO1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdFNwaW5uZXIgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRCdXR0b25Ob2RlIHtcblx0Y2xlYXI6IGJvdGg7IC8qIElFIHdvcmthcm91bmQgKi9cbn1cblxuLmRqX2llIC5kaWppdFRvb2xiYXIgLmRpaml0Q29tYm9Cb3gge1xuXHQvKiBtYWtlIGNvbWJvYm94IGJ1dHRvbnMgYWxpZ24gcHJvcGVybHkgd2l0aCBvdGhlciBidXR0b25zIGluIGEgdG9vbGJhciAqL1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vKiBTcGlubmVyICovXG5cbi5kaWppdFRleHRCb3ggLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciB7XG5cdHdpZHRoOiAxZW07XG5cdHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uSW5uZXIge1xuXHR3aWR0aDoxZW07XG5cdHZpc2liaWxpdHk6aGlkZGVuICFpbXBvcnRhbnQ7IC8qIGp1c3QgYSBzaXppbmcgZWxlbWVudCAqL1xuXHRvdmVyZmxvdy14OmhpZGRlbjtcbn1cbi5kaWppdENvbWJvQm94IC5kaWppdEJ1dHRvbk5vZGUsXG4uZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItd2lkdGg6IDA7XG59XG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItd2lkdGg6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRUZXh0Qm94IC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIGlucHV0IHtcblx0d2lkdGg6IDFlbSAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0bWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDsgLyogc2hvdWxkIGF1dG8tY2VudGVyICovXG59XG4uZGpfaWUgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRwYWRkaW5nLWxlZnQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwLjNlbSAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxLjRlbSAhaW1wb3J0YW50O1xufVxuLmRqX2llNyAuZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIgLmRpaml0SW5wdXRGaWVsZCB7XG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyAvKiBtYW51YWxseSBjZW50ZXIgSU5QVVQ6IGNoYXJhY3RlciBpcyAuNWVtIGFuZCB0b3RhbCB3aWR0aCA9IDFlbSAqL1xuXHRwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxZW0gIWltcG9ydGFudDtcbn1cbi5kal9pZTYgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRtYXJnaW4tbGVmdDogMC4xZW0gIWltcG9ydGFudDtcblx0bWFyZ2luLXJpZ2h0OiAwLjFlbSAhaW1wb3J0YW50O1xuXHR3aWR0aDogMWVtICFpbXBvcnRhbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcblx0d2lkdGg6IDJlbSAhaW1wb3J0YW50O1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEFycm93QnV0dG9uIHtcblx0Lyogbm90ZTogLmRpaml0SW5wdXRMYXlvdXRDb250YWluZXIgbWFrZXMgdGhpcyBydWxlIG92ZXJyaWRlIC5kaWppdEFycm93QnV0dG9uIHNldHRpbmdzXG5cdCAqIGZvciBkaWppdC5mb3JtLkJ1dHRvblxuXHQgKi9cblx0cGFkZGluZzogMDtcblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHJpZ2h0OiAwO1xuXHRmbG9hdDogbm9uZTtcblx0aGVpZ2h0OiA1MCU7XG5cdHdpZHRoOiAxMDAlO1xuXHRib3R0b206IGF1dG87XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiBhdXRvO1xufVxuLmRqX2llcXVpcmtzIC5kaWppdFNwaW5uZXIgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdHdpZHRoOiBhdXRvO1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0RG93bkFycm93QnV0dG9uIHtcblx0dG9wOiA1MCU7XG5cdGJvcmRlci10b3Atd2lkdGg6IDFweCAhaW1wb3J0YW50O1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdFVwQXJyb3dCdXR0b24ge1xuXHQjYm90dG9tOiA1MCU7XHQvKiBvdGhlcndpc2UgKG9uIHNvbWUgbWFjaGluZXMpIHRvcCBhcnJvdyBpY29uIHRvbyBjbG9zZSB0byBzcGxpdHRlciBib3JkZXIgKElFNi83KSAqL1xuXHR0b3A6IDA7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHRtYXJnaW46IGF1dG87XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0aGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0aGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIgLmRpaml0SW5wdXRGaWVsZCB7XG5cdC1tb3otdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHQtbW96LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHQtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG5cdC1vLXRyYW5zZm9ybTogc2NhbGUoMC41KTtcblx0LW8tdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDtcblx0dHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHR0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcblx0cGFkZGluZy10b3A6IDA7XG5cdHBhZGRpbmctYm90dG9tOiAwO1xuXHRwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcblx0cGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuXHR3aWR0aDogMTAwJTtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmRqX2llIC5kaWppdFNwaW5uZXIgLmRpaml0QXJyb3dCdXR0b25Jbm5lciAuZGlqaXRJbnB1dEZpZWxkIHtcblx0em9vbTogNTAlOyAvKiBlbXVsYXRlIHRyYW5zZm9ybTogc2NhbGUoMC41KSAqL1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QXJyb3dCdXR0b24ge1xuXHR3aWR0aDogMTAwJTtcbn1cbi5kal9pZXF1aXJrcyAuZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QXJyb3dCdXR0b24ge1xuXHR3aWR0aDogMWVtOyAvKiBtYXRjaGVzIC5kal9hMTF5IC5kaWppdFRleHRCb3ggLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciBydWxlIC0gMTAwJSBpcyB0aGUgd2hvbGUgc2NyZWVuIHdpZHRoIGluIHF1aXJrcyAqL1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHR2ZXJ0aWNhbC1hbGlnbjp0b3A7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIHtcblx0d2lkdGg6IDFlbTtcbn1cblxuLyoqKipcblx0XHRkaWppdC5mb3JtLkNoZWNrQm94XG4gXHQgJlxuICBcdFx0ZGlqaXQuZm9ybS5SYWRpb0J1dHRvblxuICoqKiovXG5cbi5kaWppdENoZWNrQm94LFxuLmRpaml0UmFkaW8sXG4uZGlqaXRDaGVja0JveElucHV0IHtcblx0cGFkZGluZzogMDtcblx0Ym9yZGVyOiAwO1xuXHR3aWR0aDogMTZweDtcblx0aGVpZ2h0OiAxNnB4O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7XG5cdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRpaml0Q2hlY2tCb3ggaW5wdXQsXG4uZGlqaXRSYWRpbyBpbnB1dCB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi5kaWppdENoZWNrQm94SW5wdXQge1xuXHQvKiBwbGFjZSB0aGUgYWN0dWFsIGlucHV0IG9uIHRvcCwgYnV0IGludmlzaWJsZSAqL1xuXHRvcGFjaXR5OiAwO1xufVxuXG4uZGpfaWUgLmRpaml0Q2hlY2tCb3hJbnB1dCB7XG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbn1cblxuLmRqX2ExMXkgLmRpaml0Q2hlY2tCb3gsXG4uZGpfYTExeSAuZGlqaXRSYWRpbyB7XG5cdC8qIGluIGExMXkgbW9kZSB3ZSBkaXNwbGF5IHRoZSBuYXRpdmUgY2hlY2tib3ggKG5vdCB0aGUgaWNvbiksIHNvIGRvbid0IHJlc3RyaWN0IHRoZSBzaXplICovXG5cdHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG5cdGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0Q2hlY2tCb3hJbnB1dCB7XG5cdG9wYWNpdHk6IDE7XG5cdGZpbHRlcjogbm9uZTtcblx0d2lkdGg6IGF1dG87XG5cdGhlaWdodDogYXV0bztcbn1cblxuLmRqX2ExMXkgLmRpaml0Rm9jdXNlZExhYmVsIHtcblx0LyogZm9yIGNoZWNrYm94ZXMgb3IgcmFkaW8gYnV0dG9ucyBpbiBoaWdoIGNvbnRyYXN0IG1vZGUsIHVzZSBib3JkZXIgcmF0aGVyIHRoYW4gb3V0bGluZSB0byBpbmRpY2F0ZSBmb2N1cyAob3V0bGluZSBkb2VzIG5vdCB3b3JrIGluIEZGKSovXG5cdGJvcmRlcjogMXB4IGRvdHRlZDtcblx0b3V0bGluZTogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi8qKioqXG5cdFx0ZGlqaXQuUHJvZ3Jlc3NCYXJcbiAqKioqL1xuXG4uZGlqaXRQcm9ncmVzc0JhciB7XG4gICAgei1pbmRleDogMDsgLyogc28gei1pbmRleCBzZXR0aW5ncyBiZWxvdyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIG9mIHRoZSBQcm9ncmVzc0JhciAqL1xufVxuLmRpaml0UHJvZ3Jlc3NCYXJFbXB0eSB7XG5cdC8qIG91dGVyIGNvbnRhaW5lciBhbmQgYmFja2dyb3VuZCBvZiB0aGUgYmFyIHRoYXQncyBub3QgZmluaXNoZWQgeWV0Ki9cblx0cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO1xuXHRib3JkZXI6MXB4IHNvbGlkIGJsYWNrOyBcdC8qIGExMXk6IGJvcmRlciBuZWNlc3NhcnkgZm9yIGhpZ2gtY29udHJhc3QgbW9kZSAqL1xuXHR6LWluZGV4OjA7XHRcdFx0LyogZXN0YWJsaXNoIGEgc3RhY2tpbmcgY29udGV4dCBmb3IgdGhpcyBwcm9ncmVzcyBiYXIgKi9cbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJGdWxsIHtcblx0Lyogb3V0ZXIgY29udGFpbmVyIGZvciBiYWNrZ3JvdW5kIG9mIGJhciB0aGF0IGlzIGZpbmlzaGVkICovXG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHRvdmVyZmxvdzpoaWRkZW47XG5cdHotaW5kZXg6LTE7XG5cdHRvcDowO1xuXHR3aWR0aDoxMDAlO1xufVxuLmRqX2llNiAuZGlqaXRQcm9ncmVzc0JhckZ1bGwge1xuXHRoZWlnaHQ6MS42ZW07XG59XG5cbi5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGlubmVyIGNvbnRhaW5lciBmb3IgZmluaXNoZWQgcG9ydGlvbiAqL1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHRib3R0b206MDtcblx0cmlnaHQ6MDtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MDtcblx0d2lkdGg6IDEwMCU7ICAgIC8qIG5lZWRlZCBmb3IgSUUvcXVpcmtzICovXG5cdGhlaWdodDphdXRvO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiNhYWE7XG5cdGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG59XG5cbi5kal9hMTF5IC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGExMXk6ICBUaGUgYm9yZGVyIHByb3ZpZGVzIHZpc2liaWxpdHkgaW4gaGlnaC1jb250cmFzdCBtb2RlICovXG5cdGJvcmRlci13aWR0aDoycHg7XG5cdGJvcmRlci1zdHlsZTpzb2xpZDtcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4uZGpfaWU2IC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIHdpZHRoOmF1dG8gd29ya3MgaW4gSUU2IHdpdGggcG9zaXRpb246c3RhdGljIGJ1dCBub3QgcG9zaXRpb246YWJzb2x1dGUgKi9cblx0cG9zaXRpb246c3RhdGljO1xuXHQvKiBoZWlnaHQ6YXV0byBvciAxMDAlIGRvZXMgbm90IHdvcmsgaW4gSUU2ICovXG5cdGhlaWdodDoxLjZlbTtcbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJJbmRldGVybWluYXRlIC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGFuaW1hdGVkIGdpZiBmb3IgJ2luZGV0ZXJtaW5hdGUnIG1vZGUgKi9cbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJJbmRldGVybWluYXRlSGlnaENvbnRyYXN0SW1hZ2Uge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi5kal9hMTF5IC5kaWppdFByb2dyZXNzQmFySW5kZXRlcm1pbmF0ZSAuZGlqaXRQcm9ncmVzc0JhckluZGV0ZXJtaW5hdGVIaWdoQ29udHJhc3RJbWFnZSB7XG5cdGRpc3BsYXk6YmxvY2s7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHR0b3A6MDtcblx0Ym90dG9tOjA7XG5cdG1hcmdpbjowO1xuXHRwYWRkaW5nOjA7XG5cdHdpZHRoOjEwMCU7XG5cdGhlaWdodDphdXRvO1xufVxuXG4uZGlqaXRQcm9ncmVzc0JhckxhYmVsIHtcblx0ZGlzcGxheTpibG9jaztcblx0cG9zaXRpb246c3RhdGljO1xuXHR3aWR0aDoxMDAlO1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKioqKlxuXHRcdGRpaml0LlRvb2x0aXBcbiAqKioqL1xuXG4uZGlqaXRUb29sdGlwIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiAyMDAwO1xuXHRkaXNwbGF5OiBibG9jaztcblx0LyogbWFrZSB2aXNpYmxlIGJ1dCBvZmYgc2NyZWVuICovXG5cdGxlZnQ6IDA7XG5cdHRvcDogLTEwMDAwcHg7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4uZGlqaXRUb29sdGlwQ29udGFpbmVyIHtcblx0Ym9yZGVyOiBzb2xpZCBibGFjayAycHg7XG5cdGJhY2tncm91bmQ6ICNiOGI1YjU7XG5cdGNvbG9yOiBibGFjaztcblx0Zm9udC1zaXplOiBzbWFsbDtcbn1cblxuLmRpaml0VG9vbHRpcEZvY3VzTm9kZSB7XG5cdHBhZGRpbmc6IDJweCAycHggMnB4IDJweDtcbn1cblxuLmRpaml0VG9vbHRpcENvbm5lY3RvciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5kal9hMTF5IC5kaWppdFRvb2x0aXBDb25uZWN0b3Ige1xuXHRkaXNwbGF5OiBub25lO1x0Lyogd29uJ3Qgc2hvdyBiL2MgaXQncyBiYWNrZ3JvdW5kLWltYWdlOyBoaWRlIHRvIGF2b2lkIGJvcmRlciBnYXAgKi9cbn1cblxuLmRpaml0VG9vbHRpcERhdGEge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi8qIExheW91dCB3aWRnZXRzLiBUaGlzIGlzIGVzc2VudGlhbCBDU1MgdG8gbWFrZSBsYXlvdXQgd29yayAoaXQgaXNuJ3QgXCJzdHlsaW5nXCIgQ1NTKVxuICAgbWFrZSBzdXJlIHRoYXQgdGhlIHBvc2l0aW9uOmFic29sdXRlIGluIGRpaml0QWxpZ24qIG92ZXJyaWRlcyBvdGhlciBjbGFzc2VzICovXG5cbi5kaWppdExheW91dENvbnRhaW5lciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5kaWppdEFsaWduVG9wLFxuLmRpaml0QWxpZ25Cb3R0b20sXG4uZGlqaXRBbGlnbkxlZnQsXG4uZGlqaXRBbGlnblJpZ2h0IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5ib2R5IC5kaWppdEFsaWduQ2xpZW50IHsgcG9zaXRpb246IGFic29sdXRlOyB9XG5cbi8qXG4gKiBCb3JkZXJDb250YWluZXJcbiAqXG4gKiAuZGlqaXRCb3JkZXJDb250YWluZXIgaXMgYSBzdHlsaXplZCBsYXlvdXQgd2hlcmUgcGFuZXMgaGF2ZSBib3JkZXIgYW5kIG1hcmdpbi5cbiAqIC5kaWppdEJvcmRlckNvbnRhaW5lck5vR3V0dGVyIGlzIGEgcmF3IGxheW91dC5cbiAqL1xuLmRpaml0Qm9yZGVyQ29udGFpbmVyLCAuZGlqaXRCb3JkZXJDb250YWluZXJOb0d1dHRlciB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuICAgIHotaW5kZXg6IDA7IC8qIHNvIHotaW5kZXggc2V0dGluZ3MgYmVsb3cgaGF2ZSBubyBlZmZlY3Qgb3V0c2lkZSBvZiB0aGUgQm9yZGVyQ29udGFpbmVyICovXG59XG5cbi5kaWppdEJvcmRlckNvbnRhaW5lclBhbmUsXG4uZGlqaXRCb3JkZXJDb250YWluZXJOb0d1dHRlclBhbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcdC8qICFpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgcG9zaXRpb246cmVsYXRpdmUgaW4gZGlqaXRUYWJDb250YWluZXIgZXRjLiAqL1xuXHR6LWluZGV4OiAyO1x0XHQvKiBhYm92ZSB0aGUgc3BsaXR0ZXJzIHNvIHRoYXQgb2ZmLWJ5LW9uZSBicm93c2VyIGVycm9ycyBkb24ndCBjb3ZlciB1cCBib3JkZXIgb2YgcGFuZSAqL1xufVxuXG4uZGlqaXRCb3JkZXJDb250YWluZXIgPiAuZGlqaXRUZXh0QXJlYSB7XG5cdC8qIE9uIFNhZmFyaSwgZm9yIFNpbXBsZVRleHRBcmVhIGluc2lkZSBhIEJvcmRlckNvbnRhaW5lcixcblx0XHRkb24ndCB3YW50IHRvIGRpc3BsYXkgdGhlIGdyaXAgdG8gcmVzaXplICovXG5cdHJlc2l6ZTogbm9uZTtcbn1cblxuLmRpaml0R3V0dGVyIHtcblx0LyogZ3V0dGVyIGlzIGp1c3QgYSBwbGFjZSBob2xkZXIgZm9yIGVtcHR5IHNwYWNlIGJldHdlZW4gcGFuZXMgaW4gQm9yZGVyQ29udGFpbmVyICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Zm9udC1zaXplOiAxcHg7XHRcdC8qIG5lZWRlZCBieSBJRTYgZXZlbiB0aG91Z2ggZGl2IGlzIGVtcHR5LCBvdGhlcndpc2UgZ29lcyB0byAxNXB4ICovXG59XG5cbi8qIFNwbGl0Q29udGFpbmVyXG5cblx0J1YnID09IGNvbnRhaW5lciB0aGF0IHNwbGl0cyB2ZXJ0aWNhbGx5ICh1cC9kb3duKVxuXHQnSCcgPSBob3Jpem9udGFsIChsZWZ0L3JpZ2h0KVxuKi9cblxuLmRpaml0U3BsaXR0ZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHotaW5kZXg6IDEwO1x0XHQvKiBhYm92ZSB0aGUgcGFuZXMgc28gdGhhdCBzcGxpdHRlciBmb2N1cyBpcyB2aXNpYmxlIG9uIEZGLCBzZWUgIzc1ODMqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRib3JkZXItY29sb3I6IGdyYXk7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogMDtcbn1cbi5kal9pZSAuZGlqaXRTcGxpdHRlciB7XG5cdHotaW5kZXg6IDE7XHQvKiBiZWhpbmQgdGhlIHBhbmVzIHNvIHRoYXQgcGFuZSBib3JkZXJzIGFyZW4ndCBvYnNjdXJlZCBzZWUgdGVzdF9HdWkuaHRtbC9bMTQzOTJdICovXG59XG5cbi5kaWppdFNwbGl0dGVyQWN0aXZlIHtcblx0ei1pbmRleDogMTEgIWltcG9ydGFudDtcbn1cblxuLmRpaml0U3BsaXR0ZXJDb3ZlciB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHR6LWluZGV4Oi0xO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHR3aWR0aDoxMDAlO1xuXHRoZWlnaHQ6MTAwJTtcbn1cblxuLmRpaml0U3BsaXR0ZXJDb3ZlckFjdGl2ZSB7XG5cdHotaW5kZXg6MyAhaW1wb3J0YW50O1xufVxuXG4vKiAjNjk0NTogc3RvcCBtb3VzZSBldmVudHMgKi9cbi5kal9pZSAuZGlqaXRTcGxpdHRlckNvdmVyIHtcblx0YmFja2dyb3VuZDogd2hpdGU7XG5cdG9wYWNpdHk6IDA7XG59XG4uZGpfaWU2IC5kaWppdFNwbGl0dGVyQ292ZXIsXG4uZGpfaWU3IC5kaWppdFNwbGl0dGVyQ292ZXIsXG4uZGpfaWU4IC5kaWppdFNwbGl0dGVyQ292ZXIge1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XG59XG5cbi5kaWppdFNwbGl0dGVySCB7XG5cdGhlaWdodDogN3B4O1xuXHRib3JkZXItdG9wOjFweDtcblx0Ym9yZGVyLWJvdHRvbToxcHg7XG5cdGN1cnNvcjogcm93LXJlc2l6ZTtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kaWppdFNwbGl0dGVyViB7XG5cdHdpZHRoOiA3cHg7XG5cdGJvcmRlci1sZWZ0OjFweDtcblx0Ym9yZGVyLXJpZ2h0OjFweDtcblx0Y3Vyc29yOiBjb2wtcmVzaXplO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0U3BsaXRDb250YWluZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZGlqaXRTcGxpdFBhbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJILFxuLmRpaml0U3BsaXRDb250YWluZXJTaXplclYge1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0Zm9udC1zaXplOiAxcHg7XG5cdGJhY2tncm91bmQtY29sb3I6IFRocmVlREZhY2U7XG5cdGJvcmRlcjogMXB4IHNvbGlkO1xuXHRib3JkZXItY29sb3I6IFRocmVlREhpZ2hsaWdodCBUaHJlZURTaGFkb3cgVGhyZWVEU2hhZG93IFRocmVlREhpZ2hsaWdodDtcblx0bWFyZ2luOiAwO1xufVxuXG4uZGlqaXRTcGxpdENvbnRhaW5lclNpemVySCAudGh1bWIsIC5kaWppdFNwbGl0dGVyViAuZGlqaXRTcGxpdHRlclRodW1iIHtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0dG9wOjQ5JTtcbn1cblxuLmRpaml0U3BsaXRDb250YWluZXJTaXplclYgLnRodW1iLCAuZGlqaXRTcGxpdHRlckggLmRpaml0U3BsaXR0ZXJUaHVtYiB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHRsZWZ0OjQ5JTtcbn1cblxuLmRpaml0U3BsaXR0ZXJTaGFkb3csXG4uZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplckgsXG4uZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplclYge1xuXHRmb250LXNpemU6IDFweDtcblx0YmFja2dyb3VuZC1jb2xvcjogVGhyZWVEU2hhZG93O1xuXHQtbW96LW9wYWNpdHk6IDAuNTtcblx0b3BhY2l0eTogMC41O1xuXHRmaWx0ZXI6IEFscGhhKE9wYWNpdHk9NTApO1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJILCAuZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplckgge1xuXHRjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJWLCAuZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplclYge1xuXHRjdXJzb3I6IHJvdy1yZXNpemU7XG59XG5cbi5kal9hMTF5IC5kaWppdFNwbGl0dGVySCB7XG5cdGJvcmRlci10b3A6MXB4IHNvbGlkICNkM2QzZDMgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2QzZDNkMyAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0U3BsaXR0ZXJWIHtcblx0Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNkM2QzZDMgIWltcG9ydGFudDtcblx0Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZDNkM2QzICFpbXBvcnRhbnQ7XG59XG5cbi8qIENvbnRlbnRQYW5lICovXG5cbi5kaWppdENvbnRlbnRQYW5lIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBhdXRvO1x0LyogaWYgd2UgZG9uJ3QgaGF2ZSB0aGlzIChvciBvdmVyZmxvdzpoaWRkZW4pLCB0aGVuIFdpZGdldC5yZXNpemVUbygpIGRvZXNuJ3QgbWFrZSBzZW5zZSBmb3IgQ29udGVudFBhbmUgKi9cblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG4uZGlqaXRDb250ZW50UGFuZVNpbmdsZUNoaWxkIHtcblx0Lypcblx0ICogaWYgdGhlIENvbnRlbnRQYW5lIGhvbGRzIGEgc2luZ2xlIGxheW91dCB3aWRnZXQgY2hpbGQgd2hpY2ggaXMgYmVpbmcgc2l6ZWQgdG8gbWF0Y2ggdGhlIGNvbnRlbnQgcGFuZSxcblx0ICogdGhlbiB0aGUgQ29udGVudFBhbmUgc2hvdWxkIG5ldmVyIGdldCBhIHNjcm9sbGJhciAoYnV0IGl0IGRvZXMgZHVlIHRvIGJyb3dzZXIgYnVncywgc2VlICM5NDQ5XG5cdCAqL1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZGlqaXRDb250ZW50UGFuZUxvYWRpbmcgLmRpaml0SWNvbkxvYWRpbmcsXG4uZGlqaXRDb250ZW50UGFuZUVycm9yIC5kaWppdEljb25FcnJvciB7XG5cdG1hcmdpbi1yaWdodDogOXB4O1xufVxuXG4vKiBUaXRsZVBhbmUgYW5kIEZpZWxkc2V0ICovXG5cbi5kaWppdFRpdGxlUGFuZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRpaml0RmllbGRzZXQge1xuXHRib3JkZXI6IDFweCBzb2xpZCBncmF5O1xufVxuLmRpaml0VGl0bGVQYW5lVGl0bGUsIC5kaWppdEZpZWxkc2V0VGl0bGUge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGlqaXRUaXRsZVBhbmVUaXRsZUZpeGVkT3BlbiwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZENsb3NlZCxcbi5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZE9wZW4sIC5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZENsb3NlZCB7XG5cdC8qIFRpdGxlUGFuZSBvciBGaWVsZHNldCB0aGF0IGNhbm5vdCBiZSB0b2dnbGVkICovXG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cbi5kaWppdFRpdGxlUGFuZVRpdGxlICoge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZUlubmVyLCAuZGlqaXRGaWVsZHNldCAuZGlqaXRBcnJvd05vZGVJbm5lciB7XG5cdC8qIG5vcm1hbGx5LCBoaWRlIGFycm93IHRleHQgaW4gZmF2b3Igb2YgaWNvbiAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRqX2ExMXkgLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZUlubmVyLCAuZGpfYTExeSAuZGlqaXRGaWVsZHNldCAuZGlqaXRBcnJvd05vZGVJbm5lciB7XG5cdC8qIC4uLiBleGNlcHQgaW4gYTExeSBtb2RlLCB0aGVuIHNob3cgdGV4dCBhcnJvdyAqL1xuXHRkaXNwbGF5OiBpbmxpbmU7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XHRcdC8qIGJlY2F1c2UgLSBhbmQgKyBhcmUgZGlmZmVyZW50IHdpZHRocyAqL1xufVxuLmRqX2ExMXkgLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZSwgLmRqX2ExMXkgLmRpaml0RmllbGRzZXQgLmRpaml0QXJyb3dOb2RlIHtcblx0LyogLi4uIGFuZCBoaWRlIGljb24gKFRPRE86IGp1c3QgcG9pbnQgZGlqaXRJY29uIGNsYXNzIG9uIHRoZSBpY29uLCBhbmQgaXQgaGlkZXMgYXV0b21hdGljYWxseSkgKi9cblx0ZGlzcGxheTogbm9uZTtcbn1cbi5kaWppdFRpdGxlUGFuZVRpdGxlRml4ZWRPcGVuIC5kaWppdEFycm93Tm9kZSwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZE9wZW4gLmRpaml0QXJyb3dOb2RlSW5uZXIsXG4uZGlqaXRUaXRsZVBhbmVUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZSwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZENsb3NlZCAuZGlqaXRBcnJvd05vZGVJbm5lcixcbi5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZE9wZW4gLmRpaml0QXJyb3dOb2RlLCAuZGlqaXRGaWVsZHNldFRpdGxlRml4ZWRPcGVuIC5kaWppdEFycm93Tm9kZUlubmVyLFxuLmRpaml0RmllbGRzZXRUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZSwgLmRpaml0RmllbGRzZXRUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZUlubmVyIHtcblx0LyogZG9uJ3Qgc2hvdyB0aGUgb3BlbiBjbG9zZSBpY29uIG9yIHRleHQgYXJyb3c7IGl0IG1ha2VzIHRoZSB1c2VyIHRoaW5rIHRoZSBwYW5lIGlzIGNsb3NhYmxlICovXG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcdC8qICFpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgYWJvdmUgYTExeSBydWxlcyB0byBzaG93IHRleHQgYXJyb3cgKi9cbn1cblxuLmRqX2llNiAuZGlqaXRUaXRsZVBhbmVDb250ZW50T3V0ZXIsXG4uZGpfaWU2IC5kaWppdFRpdGxlUGFuZSAuZGlqaXRUaXRsZVBhbmVUaXRsZSB7XG5cdC8qIGZvcmNlIGhhc0xheW91dCB0byBlbnN1cmUgYm9yZGVycyBldGMsIHNob3cgdXAgKi9cblx0em9vbTogMTtcbn1cblxuLyogQ29sb3IgUGFsZXR0ZVxuICogU2l6ZXMgZGVzaWduZWQgc28gdGhhdCB0YWJsZSBjZWxsIHBvc2l0aW9ucyBtYXRjaCBpY29ucyBpbiB1bmRlcmx5aW5nIGltYWdlLFxuICogd2hpY2ggYXBwZWFyIGF0IDIweDIwIGludGVydmFscy5cbiAqL1xuXG4uZGlqaXRDb2xvclBhbGV0dGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUge1xuXHQvKiBUYWJsZSB0aGF0IGhvbGRzIHRoZSBwYWxldHRlIGNlbGxzLCBhbmQgb3ZlcmxheXMgaW1hZ2UgZmlsZSB3aXRoIGNvbG9yIHN3YXRjaGVzLlxuXHQgKiBwYWRkaW5nL21hcmdpbiB0byBhbGlnbiB0YWJsZSB3aXRoIGltYWdlLlxuXHQgKi9cblx0cGFkZGluZzogMnB4IDNweCAzcHggM3B4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdG91dGxpbmU6IDA7XG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG59XG4uZGpfaWU2IC5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUsXG4uZGpfaWU3IC5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUsXG4uZGpfaWVxdWlya3MgLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVUYWJsZSB7XG5cdC8qIHVzaW5nIHBhZGRpbmcgYWJvdmUgc28gdGhhdCBmb2N1cyBib3JkZXIgaXNuJ3QgY3V0b2ZmIG9uIG1vei93ZWJraXQsXG5cdCAqIGJ1dCB1c2luZyBtYXJnaW4gb24gSUUgYmVjYXVzZSBwYWRkaW5nIGRvZXNuJ3Qgc2VlbSB0byB3b3JrXG5cdCAqL1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDJweCAzcHggM3B4IDNweDtcbn1cblxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVDZWxsIHtcblx0LyogPHRkPiBpbiB0aGUgPHRhYmxlPiAqL1xuXHRmb250LXNpemU6IDFweDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kOiBub25lO1xufVxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVJbWcge1xuXHQvKiBDYWxsZWQgZGlqaXRQYWxldHRlSW1nIGZvciBiYWNrLWNvbXBhdCwgdGhpcyBhY3R1YWxseSB3cmFwcyB0aGUgY29sb3Igc3dhdGNoIHdpdGggYSBib3JkZXIgYW5kIHBhZGRpbmcgKi9cblx0cGFkZGluZzogMXB4O1x0XHQvKiB3aGl0ZSBhcmVhIGJldHdlZW4gZ3JheSBib3JkZXIgYW5kIGNvbG9yIHN3YXRjaCAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuXHRtYXJnaW46IDJweCAxcHg7XG5cdGN1cnNvcjogZGVmYXVsdDtcblx0Zm9udC1zaXplOiAxcHg7XHRcdC8qIHByZXZlbnQgPHNwYW4+IGZyb20gZ2V0dGluZyBiaWdnZXIganVzdCB0byBob2xkIGEgY2hhcmFjdGVyICovXG59XG4uZGpfZ2Vja28gLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVJbWcge1xuXHRwYWRkaW5nLWJvdHRvbTogMDtcdC8qIHdvcmthcm91bmQgcmVuZGVyaW5nIGdsaXRjaCBvbiBGRiwgaXQgYWRkcyBhbiBleHRyYSBwaXhlbCBhdCB0aGUgYm90dG9tICovXG59XG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0Q29sb3JQYWxldHRlU3dhdGNoIHtcblx0LyogdGhlIGFjdHVhbCBwYXJ0IHdoZXJlIHRoZSBjb2xvciBpcyAqL1xuXHR3aWR0aDogMTRweDtcblx0aGVpZ2h0OiAxMnB4O1xufVxuLmRpaml0UGFsZXR0ZVRhYmxlIHRkIHtcblx0XHRwYWRkaW5nOiAwO1xufVxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVDZWxsOmhvdmVyIC5kaWppdFBhbGV0dGVJbWcge1xuXHQvKiBob3ZlcmVkIGNvbG9yIHN3YXRjaCAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xufVxuXG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZUNlbGw6YWN0aXZlIC5kaWppdFBhbGV0dGVJbWcsXG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZVRhYmxlIC5kaWppdFBhbGV0dGVDZWxsU2VsZWN0ZWQgLmRpaml0UGFsZXR0ZUltZyB7XG5cdGJvcmRlcjogMnB4IHNvbGlkICMwMDA7XG5cdG1hcmdpbjogMXB4IDA7XHQvKiByZWR1Y2UgbWFyZ2luIHRvIGNvbXBlbnNhdGUgZm9yIGluY3JlYXNlZCBib3JkZXIgKi9cbn1cblxuXG4uZGpfYTExeSAuZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZVRhYmxlLFxuLmRqX2ExMXkgLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVUYWJsZSAqIHtcblx0LyogdGFibGUgY2VsbHMgYXJlIHRvIGNhdGNoIGV2ZW50cywgYnV0IHRoZSBzd2F0Y2hlcyBhcmUgaW4gdGhlIFBhbGV0dGVJbWcgYmVoaW5kIHRoZSB0YWJsZSAqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKiBBY2NvcmRpb25Db250YWluZXIgKi9cblxuLmRpaml0QWNjb3JkaW9uQ29udGFpbmVyIHtcblx0Ym9yZGVyOjFweCBzb2xpZCAjYjdiN2I3O1xuXHRib3JkZXItdG9wOjAgIWltcG9ydGFudDtcbn1cbi5kaWppdEFjY29yZGlvblRpdGxlIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0QWNjb3JkaW9uVGl0bGVTZWxlY3RlZCB7XG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyogaW1hZ2VzIG9mZiwgaGlnaC1jb250cmFzdCBtb2RlIHN0eWxlcyAqL1xuLmRpaml0QWNjb3JkaW9uVGl0bGUgLmFycm93VGV4dFVwLFxuLmRpaml0QWNjb3JkaW9uVGl0bGUgLmFycm93VGV4dERvd24ge1xuXHRkaXNwbGF5OiBub25lO1xuXHRmb250LXNpemU6IDAuNjVlbTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZSAuYXJyb3dUZXh0VXAsXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZVNlbGVjdGVkIC5hcnJvd1RleHREb3duIHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZVNlbGVjdGVkIC5hcnJvd1RleHRVcCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kaWppdEFjY29yZGlvbkNoaWxkV3JhcHBlciB7XG5cdC8qIHRoaXMgaXMgdGhlIG5vZGUgd2hvc2UgaGVpZ2h0IGlzIGFkanVzdGVkICovXG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIENhbGVuZGFyICovXG5cbi5kaWppdENhbGVuZGFyQ29udGFpbmVyIHRhYmxlIHtcblx0d2lkdGg6IGF1dG87XHQvKiBpbiBjYXNlIHVzZXIgaGFzIHNwZWNpZmllZCBhIHdpZHRoIGZvciB0aGUgVEFCTEUgbm9kZXMsIHNlZSAjMTA1NTMgKi9cblx0Y2xlYXI6IGJvdGg7ICAgIC8qIGNsZWFyIG1hcmdpbiBjcmVhdGVkIGZvciBsZWZ0L3JpZ2h0IG1vbnRoIGFycm93czsgbmVlZGVkIG9uIElFMTAgZm9yIENhbGVuZGFyTGl0ZSAqL1xufVxuLmRpaml0Q2FsZW5kYXJDb250YWluZXIgdGgsIC5kaWppdENhbGVuZGFyQ29udGFpbmVyIHRkIHtcblx0cGFkZGluZzogMDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRpaml0Q2FsZW5kYXJNb250aENvbnRhaW5lciB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5kaWppdENhbGVuZGFyRGVjcmVtZW50QXJyb3cge1xuXHRmbG9hdDogbGVmdDtcbn1cbi5kaWppdENhbGVuZGFySW5jcmVtZW50QXJyb3cge1xuXHRmbG9hdDogcmlnaHQ7XG59XG5cbi5kaWppdENhbGVuZGFyWWVhckxhYmVsIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyAgICAvKiBtYWtlIHN1cmUgcHJldmlvdXMsIGN1cnJlbnQsIGFuZCBuZXh0IHllYXIgYXBwZWFyIG9uIHNhbWUgcm93ICovXG59XG5cbi5kaWppdENhbGVuZGFyTmV4dFllYXIge1xuXHRtYXJnaW46MCAwIDAgMC41NWVtO1xufVxuXG4uZGlqaXRDYWxlbmRhclByZXZpb3VzWWVhciB7XG5cdG1hcmdpbjowIDAuNTVlbSAwIDA7XG59XG5cbi5kaWppdENhbGVuZGFySW5jcmVtZW50Q29udHJvbCB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kaWppdENhbGVuZGFySW5jcmVtZW50Q29udHJvbCxcbi5kaWppdENhbGVuZGFyRGF0ZVRlbXBsYXRlLFxuLmRpaml0Q2FsZW5kYXJNb250aExhYmVsLFxuLmRpaml0Q2FsZW5kYXJQcmV2aW91c1llYXIsXG4uZGlqaXRDYWxlbmRhck5leHRZZWFyIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGlqaXRDYWxlbmRhckRpc2FibGVkRGF0ZSB7XG5cdGNvbG9yOiBncmF5O1xuXHR0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZGlqaXRTcGFjZXIge1xuXHQvKiBkb24ndCBkaXNwbGF5IGl0LCBidXQgbWFrZSBpdCBhZmZlY3QgdGhlIHdpZHRoICovXG4gIFx0cG9zaXRpb246IHJlbGF0aXZlO1xuICBcdGhlaWdodDogMXB4O1xuICBcdG92ZXJmbG93OiBoaWRkZW47XG4gIFx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vKiBTdHlsaW5nIGZvciBtb250aCBkcm9wIGRvd24gbGlzdCAqL1xuXG4uZGlqaXRDYWxlbmRhck1vbnRoTWVudSAuZGlqaXRDYWxlbmRhck1vbnRoTGFiZWwge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcbn1cblxuLyogTWVudSAqL1xuXG4uZGlqaXRNZW51IHtcblx0Ym9yZGVyOjFweCBzb2xpZCBibGFjaztcblx0YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtcbn1cbi5kaWppdE1lbnVUYWJsZSB7XG5cdGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtcblx0Ym9yZGVyLXdpZHRoOjA7XG5cdGJhY2tncm91bmQtY29sb3I6d2hpdGU7XG59XG5cbi8qIHdvcmthcm91bmQgZm9yIHdlYmtpdCBidWcgIzg0MjcsIHJlbW92ZSB0aGlzIHdoZW4gaXQgaXMgZml4ZWQgdXBzdHJlYW0gKi9cbi5kal93ZWJraXQgLmRpaml0TWVudVRhYmxlIHRkW2NvbHNwYW49XCIyXCJde1xuXHRib3JkZXItcmlnaHQ6aGlkZGVuO1xufVxuXG4uZGlqaXRNZW51SXRlbSB7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdHBhZGRpbmc6LjFlbSAuMmVtO1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLypcbk5vIG5lZWQgdG8gc2hvdyBhIGZvY3VzIGJvcmRlciBzaW5jZSBpdCdzIG9idmlvdXMgZnJvbSB0aGUgc2hhZGluZywgYW5kIHRoZXJlJ3MgYSAuZGpfYTExeSAuZGlqaXRNZW51SXRlbVNlbGVjdGVkXG5ydWxlIGJlbG93IHRoYXQgaGFuZGxlcyB0aGUgaGlnaCBjb250cmFzdCBjYXNlIHdoZW4gdGhlcmUncyBubyBzaGFkaW5nLlxuSGlkaW5nIHRoZSBmb2N1cyBib3JkZXIgYWxzbyB3b3JrcyBhcm91bmQgd2Via2l0IGJ1ZyBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTI1Nzc5LlxuKi9cbi5kaWppdE1lbnVJdGVtOmZvY3VzIHtcblx0b3V0bGluZTogbm9uZVxufVxuXG4uZGlqaXRNZW51UGFzc2l2ZSAuZGlqaXRNZW51SXRlbUhvdmVyLFxuLmRpaml0TWVudUl0ZW1TZWxlY3RlZCB7XG5cdC8qXG5cdCAqIGRpaml0TWVudUl0ZW1Ib3ZlciByZWZlcnMgdG8gYWN0dWFsIG1vdXNlIG92ZXJcblx0ICogZGlqaXRNZW51SXRlbVNlbGVjdGVkIGlzIHVzZWQgYWZ0ZXIgYSBtZW51IGhhcyBiZWVuIFwiYWN0aXZhdGVkXCIgYnlcblx0ICogY2xpY2tpbmcgaXQsIHRhYmJpbmcgaW50byBpdCwgb3IgYmVpbmcgb3BlbmVkIGZyb20gYSBwYXJlbnQgbWVudSxcblx0ICogYW5kIGRlbm90ZXMgdGhhdCB0aGUgbWVudSBpdGVtIGhhcyBmb2N1cyBvciB0aGF0IGZvY3VzIGlzIG9uIGEgY2hpbGRcblx0ICogbWVudVxuXHQgKi9cblx0YmFja2dyb3VuZC1jb2xvcjpibGFjaztcblx0Y29sb3I6d2hpdGU7XG59XG5cbi5kaWppdE1lbnVJdGVtSWNvbiwgLmRpaml0TWVudUV4cGFuZCB7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi5kaWppdE1lbnVJdGVtRGlzYWJsZWQgKiB7XG5cdC8qIGZvciBhIGRpc2FibGVkIG1lbnUgaXRlbSwganVzdCBzZXQgaXQgdG8gbW9zdGx5IHRyYW5zcGFyZW50ICovXG5cdG9wYWNpdHk6MC41O1xuXHRjdXJzb3I6ZGVmYXVsdDtcbn1cbi5kal9pZSAuZGpfYTExeSAuZGlqaXRNZW51SXRlbURpc2FibGVkLFxuLmRqX2llIC5kal9hMTF5IC5kaWppdE1lbnVJdGVtRGlzYWJsZWQgKixcbi5kal9pZSAuZGlqaXRNZW51SXRlbURpc2FibGVkICoge1xuXHRjb2xvcjogZ3JheTtcblx0ZmlsdGVyOiBhbHBoYShvcGFjaXR5PTM1KTtcbn1cblxuLmRpaml0TWVudUl0ZW1MYWJlbCB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kal9hMTF5IC5kaWppdE1lbnVJdGVtU2VsZWN0ZWQge1xuXHRib3JkZXI6IDFweCBkb3R0ZWQgYmxhY2sgIWltcG9ydGFudDtcdC8qIGZvciAyLjAgdXNlIG91dGxpbmUgaW5zdGVhZCwgdG8gcHJldmVudCBqaXR0ZXIgKi9cbn1cblxuLmRqX2ExMXkgLmRpaml0TWVudUl0ZW1TZWxlY3RlZCAuZGlqaXRNZW51SXRlbUxhYmVsIHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZGpfaWU4IC5kal9hMTF5IC5kaWppdE1lbnVJdGVtTGFiZWwge1xuXHRwb3NpdGlvbjpzdGF0aWM7XG59XG5cbi5kaWppdE1lbnVFeHBhbmRBMTF5IHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi5kal9hMTF5IC5kaWppdE1lbnVFeHBhbmRBMTF5IHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGlqaXRNZW51U2VwYXJhdG9yIHRkIHtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKiBzZXBhcmF0b3IgY2FuIGJlIHR3byBwaXhlbHMgLS0gc2V0IGJvcmRlciBvZiBlaXRoZXIgb25lIHRvIDAgdG8gaGF2ZSBvbmx5IG9uZSAqL1xuLmRpaml0TWVudVNlcGFyYXRvclRvcCB7XG5cdGhlaWdodDogNTAlO1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi10b3A6M3B4O1xuXHRmb250LXNpemU6IDFweDtcbn1cblxuLmRpaml0TWVudVNlcGFyYXRvckJvdHRvbSB7XG5cdGhlaWdodDogNTAlO1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi1ib3R0b206M3B4O1xuXHRmb250LXNpemU6IDFweDtcbn1cblxuLyogQ2hlY2tlZE1lbnVJdGVtIGFuZCBSYWRpb01lbnVJdGVtICovXG4uZGlqaXRNZW51SXRlbUljb25DaGFyIHtcblx0ZGlzcGxheTogbm9uZTtcdFx0LyogZG9uJ3QgZGlzcGxheSBleGNlcHQgaW4gaGlnaCBjb250cmFzdCBtb2RlICovXG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcdC8qIGZvciBoaWdoIGNvbnRyYXN0IG1vZGUgd2hlbiBtZW51aXRlbSBpcyB1bmNoZWNrZWQ6IGxlYXZlIHNwYWNlIGZvciB3aGVuIGl0IGlzIGNoZWNrZWQgKi9cbn1cbi5kal9hMTF5IC5kaWppdE1lbnVJdGVtSWNvbkNoYXIge1xuXHRkaXNwbGF5OiBpbmxpbmU7XHQvKiBkaXNwbGF5IGNoYXJhY3RlciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUsIHNpbmNlIGljb24gZG9lc24ndCBzaG93ICovXG59XG4uZGlqaXRDaGVja2VkTWVudUl0ZW1DaGVja2VkIC5kaWppdE1lbnVJdGVtSWNvbkNoYXIsXG4uZGlqaXRSYWRpb01lbnVJdGVtQ2hlY2tlZCAuZGlqaXRNZW51SXRlbUljb25DaGFyIHtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTsgLyogbWVudWl0ZW0gaXMgY2hlY2tlZCAqL1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdE1lbnVCYXIgLmRpaml0TWVudUl0ZW0ge1xuXHQvKiBzbyBib3R0b20gYm9yZGVyIG9mIE1lbnVCYXIgYXBwZWFycyBvbiBJRTcgaW4gaGlnaC1jb250cmFzdCBtb2RlICovXG5cdG1hcmdpbjogMDtcbn1cblxuLyogU3RhY2tDb250YWluZXIgKi9cblxuLmRpaml0U3RhY2tDb250cm9sbGVyIC5kaWppdFRvZ2dsZUJ1dHRvbkNoZWNrZWQgKiB7XG5cdGN1cnNvcjogZGVmYXVsdDtcdC8qIGJlY2F1c2UgcHJlc3NpbmcgaXQgaGFzIG5vIGVmZmVjdCAqL1xufVxuXG4vKioqXG5UYWJDb250YWluZXJcblxuTWFpbiBjbGFzcyBoaWVyYXJjaHk6XG5cbi5kaWppdFRhYkNvbnRhaW5lciAtIHRoZSB3aG9sZSBUYWJDb250YWluZXJcbiAgIC5kaWppdFRhYkNvbnRyb2xsZXIgLyAuZGlqaXRUYWJMaXN0Q29udGFpbmVyLXRvcCAtIHdyYXBwZXIgZm9yIHRhYiBidXR0b25zLCBzY3JvbGwgYnV0dG9uc1xuXHQgLmRpaml0VGFiTGlzdFdyYXBwZXIgLyAuZGlqaXRUYWJDb250YWluZXJUb3BTdHJpcCAtIG91dGVyIHdyYXBwZXIgZm9yIHRhYiBidXR0b25zIChub3JtYWwgd2lkdGgpXG5cdFx0Lm5vd3JhcFRhYlN0cmlwIC8gLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgLSBpbm5lciB3cmFwcGVyIGZvciB0YWIgYnV0dG9ucyAoNTBLIHdpZHRoKVxuICAgLmRpaml0VGFiUGFuZVdyYXBwZXIgLSB3cmFwcGVyIGZvciBjb250ZW50IHBhbmVzLCBoYXMgYWxsIGJvcmRlcnMgZXhjZXB0IHRoZSBvbmUgYmV0d2VlbiBjb250ZW50IGFuZCB0YWJzXG4qKiovXG5cbi5kaWppdFRhYkNvbnRhaW5lciB7XG4gICAgei1pbmRleDogMDsgLyogc28gei1pbmRleCBzZXR0aW5ncyBiZWxvdyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIG9mIHRoZSBUYWJDb250YWluZXIgKi9cbiAgICBvdmVyZmxvdzogdmlzaWJsZTsgLyogcHJldmVudCBvZmYtYnktb25lLXBpeGVsIGVycm9ycyBmcm9tIGhpZGluZyBib3R0b20gYm9yZGVyIChvcHBvc2l0ZSB0YWIgbGFiZWxzKSAqL1xufVxuLmRqX2llNiAuZGlqaXRUYWJDb250YWluZXIge1xuICAgIC8qIHdvcmthcm91bmQgSUU2IHByb2JsZW0gd2hlbiB0YWxsIGNvbnRlbnQgb3ZlcmZsb3dzIFRhYkNvbnRhaW5lciwgc2VlIGVkaXRvci90ZXN0X0Z1bGxTY3JlZW4uaHRtbCAqL1xuICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxufVxuLmRpaml0VGFiQ29udGFpbmVyTm9MYXlvdXQge1xuXHR3aWR0aDogMTAwJTtcdC8qIG90aGVyd2lzZSBTY3JvbGxpbmdUYWJDb250cm9sbGVyIGdvZXMgdG8gNTBLIHBpeGVscyB3aWRlICovXG59XG5cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzLFxuLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMsXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMsXG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIHtcbiAgICB6LWluZGV4OiAxO1xuXHRvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OyAgLyogc28gdGFicyBjYW4gY292ZXIgdXAgYm9yZGVyIGFkamFjZW50IHRvIGNvbnRhaW5lciAqL1xufVxuXG4uZGlqaXRUYWJDb250cm9sbGVyIHtcbiAgICB6LWluZGV4OiAxO1xufVxuLmRpaml0VGFiQ29udGFpbmVyQm90dG9tLWNvbnRhaW5lcixcbi5kaWppdFRhYkNvbnRhaW5lclRvcC1jb250YWluZXIsXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LWNvbnRhaW5lcixcbi5kaWppdFRhYkNvbnRhaW5lclJpZ2h0LWNvbnRhaW5lciB7XG5cdHotaW5kZXg6MDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0Ym9yZGVyOiAxcHggc29saWQgYmxhY2s7XG59XG4ubm93cmFwVGFiU3RyaXAge1xuXHR3aWR0aDogNTAwMDBweDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyAgLyoganVzdCBpbiBjYXNlIGFuY2VzdG9yIGhhcyBub24tc3RhbmRhcmQgc2V0dGluZyAqL1xuICAgIHotaW5kZXg6IDE7XG59XG4uZGlqaXRUYWJMaXN0V3JhcHBlciB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogMTtcbn1cblxuLmRqX2ExMXkgLnRhYlN0cmlwQnV0dG9uIGltZyB7XG5cdC8qIGhpZGUgdGhlIGljb25zIChvciByYXRoZXIgdGhlIGVtcHR5IHNwYWNlIHdoZXJlIHRoZXkgbm9ybWFsbHkgYXBwZWFyKSBiZWNhdXNlIHRleHQgd2lsbCBhcHBlYXIgaW5zdGVhZCAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJUb3AtdGFicyB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjaztcbn1cbi5kaWppdFRhYkNvbnRhaW5lclRvcC1jb250YWluZXIge1xuXHRib3JkZXItdG9wOiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMge1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBibGFjaztcblx0ZmxvYXQ6IGxlZnQ7ICAgIC8qIG5lZWRlZCBmb3IgSUU3IFJUTCBtb2RlICovXG59XG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LWNvbnRhaW5lciB7XG5cdGJvcmRlci1sZWZ0OiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJCb3R0b20tdGFicyB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjaztcbn1cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS1jb250YWluZXIge1xuXHRib3JkZXItYm90dG9tOiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIHtcblx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCBibGFjaztcblx0ZmxvYXQ6IGxlZnQ7ICAgIC8qIG5lZWRlZCBmb3IgSUU3IFJUTCBtb2RlICovXG59XG4uZGlqaXRUYWJDb250YWluZXJSaWdodC1jb250YWluZXIge1xuXHRib3JkZXItcmlnaHQ6IDA7XG59XG5cbmRpdi5kaWppdFRhYkRpc2FibGVkLCAuZGpfaWUgZGl2LmRpaml0VGFiRGlzYWJsZWQge1xuXHRjdXJzb3I6IGF1dG87XG59XG5cbi5kaWppdFRhYiB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcblx0d2hpdGUtc3BhY2U6bm93cmFwO1xuXHR6LWluZGV4OjM7XG59XG4uZGlqaXRUYWIgKiB7XG5cdC8qIG1ha2UgdGFiIGljb25zIGFuZCBjbG9zZSBpY29uIGxpbmUgdXAgdy90ZXh0ICovXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uZGlqaXRUYWJDaGVja2VkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1x0LyogYmVjYXVzZSBjbGlja2luZyB3aWxsIGhhdmUgbm8gZWZmZWN0ICovXG59XG5cbi5kaWppdFRhYkNvbnRhaW5lclRvcC10YWJzIC5kaWppdFRhYiB7XG5cdHRvcDogMXB4O1x0LyogdG8gb3ZlcmxhcCBib3JkZXIgb24gLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgKi9cbn1cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzIC5kaWppdFRhYiB7XG5cdHRvcDogLTFweDtcdC8qIHRvIG92ZXJsYXAgYm9yZGVyIG9uIC5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzICovXG59XG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMgLmRpaml0VGFiIHtcblx0bGVmdDogMXB4O1x0LyogdG8gb3ZlcmxhcCBib3JkZXIgb24gLmRpaml0VGFiQ29udGFpbmVyTGVmdC10YWJzICovXG59XG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIC5kaWppdFRhYiB7XG5cdGxlZnQ6IC0xcHg7XHQvKiB0byBvdmVybGFwIGJvcmRlciBvbiAuZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzICovXG59XG5cblxuLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgLmRpaml0VGFiLFxuLmRpaml0VGFiQ29udGFpbmVyQm90dG9tLXRhYnMgLmRpaml0VGFiIHtcblx0LyogSW5saW5lLWJsb2NrICovXG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1x0XHRcdC8qIHdlYmtpdCBhbmQgRkYzICovXG5cdCN6b29tOiAxOyAvKiBzZXQgaGFzTGF5b3V0OnRydWUgdG8gbWltaWMgaW5saW5lLWJsb2NrICovXG5cdCNkaXNwbGF5OmlubGluZTsgLyogZG9uJ3QgdXNlIC5kal9pZSBzaW5jZSB0aGF0IGluY3JlYXNlcyB0aGUgcHJpb3JpdHkgKi9cbn1cblxuLnRhYlN0cmlwQnV0dG9uIHtcblx0ei1pbmRleDogMTI7XG59XG5cbi5kaWppdFRhYkJ1dHRvbkRpc2FibGVkIC50YWJTdHJpcEJ1dHRvbiB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cblxuLmRpaml0VGFiQ2xvc2VCdXR0b24ge1xuXHRtYXJnaW4tbGVmdDogMWVtO1xufVxuXG4uZGlqaXRUYWJDbG9zZVRleHQge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi5kaWppdFRhYiAudGFiTGFiZWwge1xuXHQvKiBtYWtlIHN1cmUgdGFicyB3L2Nsb3NlIGJ1dHRvbiBhbmQgdy9vdXQgY2xvc2UgYnV0dG9uIGFyZSBzYW1lIGhlaWdodCwgZXZlbiB3L3NtYWxsICg8MTVweCkgZm9udC5cblx0ICogYXNzdW1lcyA8PTE1cHggaGVpZ2h0IGZvciBjbG9zZSBidXR0b24gaWNvbi5cblx0ICovXG5cdG1pbi1oZWlnaHQ6IDE1cHg7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5kaWppdE5vSWNvbiB7XG5cdC8qIGFwcGxpZWQgdG8gPGltZz4vPHNwYW4+IG5vZGUgd2hlbiB0aGVyZSBpcyBubyBpY29uIHNwZWNpZmllZCAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRqX2llNiAuZGlqaXRUYWIgLmRpaml0Tm9JY29uIHtcblx0LyogYmVjYXVzZSBtaW4taGVpZ2h0IChvbiAudGFiTGFiZWwsIGFib3ZlKSBkb2Vzbid0IHdvcmsgb24gSUU2ICovXG5cdGRpc3BsYXk6IGlubGluZTtcblx0aGVpZ2h0OiAxNXB4O1xuXHR3aWR0aDogMXB4O1xufVxuXG4vKiBpbWFnZXMgb2ZmLCBoaWdoLWNvbnRyYXN0IG1vZGUgc3R5bGVzICovXG5cbi5kal9hMTF5IC5kaWppdFRhYkNsb3NlQnV0dG9uIHtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHR3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmRqX2ExMXkgLmRpaml0VGFiQ2xvc2VUZXh0IHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGlqaXRUYWJQYW5lLFxuLmRpaml0U3RhY2tDb250YWluZXItY2hpbGQsXG4uZGlqaXRBY2NvcmRpb25Db250YWluZXItY2hpbGQge1xuXHQvKiBjaGlsZHJlbiBvZiBUYWJDb250YWluZXIsIFN0YWNrQ29udGFpbmVyLCBhbmQgQWNjb3JkaW9uQ29udGFpbmVyIHNob3VsZG4ndCBoYXZlIGJvcmRlcnNcblx0ICogYi9jIGEgYm9yZGVyIGlzIGFscmVhZHkgdGhlcmUgZnJvbSB0aGUgVGFiQ29udGFpbmVyL1N0YWNrQ29udGFpbmVyL0FjY29yZGlvbkNvbnRhaW5lciBpdHNlbGYuXG5cdCAqL1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBJbmxpbmVFZGl0Qm94ICovXG4uZGlqaXRJbmxpbmVFZGl0Qm94RGlzcGxheU1vZGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcdC8qIHNvIGtleWxpbmUgKGJvcmRlcikgb24gaG92ZXIgY2FuIGFwcGVhciB3aXRob3V0IHNjcmVlbiBqdW1wICovXG5cdGN1cnNvcjogdGV4dDtcbn1cblxuLmRqX2ExMXkgLmRpaml0SW5saW5lRWRpdEJveERpc3BsYXlNb2RlLFxuLmRqX2llNiAuZGlqaXRJbmxpbmVFZGl0Qm94RGlzcGxheU1vZGUge1xuXHQvKiBleGNlcHQgdGhhdCBJRTYgZG9lc24ndCBzdXBwb3J0IHRyYW5zcGFyZW50IGJvcmRlcnMsIG5vciBkb2VzIGhpZ2ggY29udHJhc3QgbW9kZSAqL1xuXHRib3JkZXI6IG5vbmU7XG59XG5cbi5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZUhvdmVyLFxuLmRqX2ExMXkgLmRpaml0SW5saW5lRWRpdEJveERpc3BsYXlNb2RlSG92ZXIsXG4uZGpfaWU2IC5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZUhvdmVyIHtcblx0LyogQW4gSW5saW5lRWRpdEJveCBpbiB2aWV3IG1vZGUgKGNsaWNrIHRoaXMgdG8gZWRpdCB0aGUgdGV4dCkgKi9cblx0YmFja2dyb3VuZC1jb2xvcjogI2UyZWJmMjtcblx0Ym9yZGVyOiBzb2xpZCAxcHggYmxhY2s7XG59XG5cbi5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZURpc2FibGVkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBUcmVlICovXG4uZGlqaXRUcmVlIHtcblx0b3ZlcmZsb3c6IGF1dG87XHQvKiBmb3Igc2Nyb2xsYmFycyB3aGVuIFRyZWUgaGFzIGEgaGVpZ2h0IHNldHRpbmcsIGFuZCB0byBwcmV2ZW50IHdyYXBwaW5nIGFyb3VuZCBmbG9hdCBlbGVtZW50cywgc2VlICMxMTQ5MSAqL1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGlqaXRUcmVlQ29udGFpbmVyIHtcblx0ZmxvYXQ6IGxlZnQ7XHQvKiBmb3IgY29ycmVjdCBoaWdobGlnaHRpbmcgZHVyaW5nIGhvcml6b250YWwgc2Nyb2xsLCBzZWUgIzE2MTMyICovXG59XG5cbi5kaWppdFRyZWVJbmRlbnQge1xuXHQvKiBhbW91bnQgdG8gaW5kZW50IGVhY2ggdHJlZSBub2RlIChyZWxhdGl2ZSB0byBwYXJlbnQgbm9kZSkgKi9cblx0d2lkdGg6IDE5cHg7XG59XG5cbi5kaWppdFRyZWVSb3csIC5kaWppdFRyZWVDb250ZW50IHtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmRqX2llIC5kaWppdFRyZWVMYWJlbDpmb2N1cyB7XG5cdC8qIHdvcmthcm91bmQgSUU5IGJlaGF2aW9yIHdoZXJlIGRvd24gYXJyb3dpbmcgdGhyb3VnaCBUcmVlTm9kZXMgZG9lc24ndCBzaG93IGZvY3VzIG91dGxpbmUgKi9cblx0b3V0bGluZTogMXB4IGRvdHRlZCBibGFjaztcbn1cblxuLmRpaml0VHJlZVJvdyBpbWcge1xuXHQvKiBtYWtlIHRoZSBleHBhbmRvIGFuZCBmb2xkZXIgaWNvbnMgbGluZSB1cCB3aXRoIHRoZSBsYWJlbCAqL1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uZGlqaXRUcmVlQ29udGVudCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZGlqaXRFeHBhbmRvVGV4dCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kal9hMTF5IC5kaWppdEV4cGFuZG9UZXh0IHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogdGhpbjtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZGlqaXRUcmVlTGFiZWwge1xuXHRtYXJnaW46IDAgNHB4O1xufVxuXG4vKiBEaWFsb2cgKi9cblxuLmRpaml0RGlhbG9nIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiA5OTk7XG5cdG92ZXJmbG93OiBoaWRkZW47XHQvKiBvdmVycmlkZSBvdmVyZmxvdzogYXV0bzsgZnJvbSBDb250ZW50UGFuZSB0byBtYWtlIGRyYWdnaW5nIHNtb290aGVyICovXG59XG5cbi5kaWppdERpYWxvZ1RpdGxlQmFyIHtcblx0Y3Vyc29yOiBtb3ZlO1xufVxuLmRpaml0RGlhbG9nRml4ZWQgLmRpaml0RGlhbG9nVGl0bGVCYXIge1xuXHRjdXJzb3I6ZGVmYXVsdDtcbn1cbi5kaWppdERpYWxvZ0Nsb3NlSWNvbiB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kaWppdERpYWxvZ1BhbmVDb250ZW50IHtcblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuLmRpaml0RGlhbG9nVW5kZXJsYXlXcmFwcGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdHotaW5kZXg6IDk5ODtcblx0ZGlzcGxheTogbm9uZTtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuLmRpaml0RGlhbG9nVW5kZXJsYXkge1xuXHRiYWNrZ3JvdW5kOiAjZWVlO1xuXHRvcGFjaXR5OiAwLjU7XG59XG5cbi5kal9pZSAuZGlqaXREaWFsb2dVbmRlcmxheSB7XG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7XG59XG5cbi8qIGltYWdlcyBvZmYsIGhpZ2gtY29udHJhc3QgbW9kZSBzdHlsZXMgKi9cbi5kal9hMTF5IC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGpfYTExeSAuZGlqaXREaWFsb2cge1xuXHRvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdERpYWxvZyAuY2xvc2VUZXh0IHtcblx0ZGlzcGxheTpub25lO1xuXHQvKiBmb3IgdGhlIG9uaG92ZXIgYm9yZGVyIGluIGhpZ2ggY29udHJhc3Qgb24gSUU6ICovXG5cdHBvc2l0aW9uOmFic29sdXRlO1xufVxuXG4uZGpfYTExeSAuZGlqaXREaWFsb2cgLmNsb3NlVGV4dCB7XG5cdGRpc3BsYXk6aW5saW5lO1xufVxuXG4vKiBTbGlkZXIgKi9cblxuLmRpaml0U2xpZGVyTW92ZWFibGUge1xuXHR6LWluZGV4Ojk5O1xuXHRwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50O1xuXHRkaXNwbGF5OmJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG59XG5cbi5kaWppdFNsaWRlck1vdmVhYmxlSCB7XG5cdHJpZ2h0OjA7XG59XG4uZGlqaXRTbGlkZXJNb3ZlYWJsZVYge1xuXHRyaWdodDo1MCU7XG59XG5cbi5kal9hMTF5IGRpdi5kaWppdFNsaWRlckltYWdlSGFuZGxlLFxuLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRtYXJnaW46MDtcblx0cGFkZGluZzowO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZSAhaW1wb3J0YW50O1xuXHRib3JkZXI6OHB4IHNvbGlkIGdyYXk7XG5cdHdpZHRoOjA7XG5cdGhlaWdodDowO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRqX2ExMXkgLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRmb250LXNpemU6IDA7XG59XG4uZGpfaWU3IC5kaWppdFNsaWRlckltYWdlSGFuZGxlIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjsgLyogSUU3IHdvcmthcm91bmQgdG8gbWFrZSBzbGlkZXIgaGFuZGxlIFZJU0lCTEUgaW4gbm9uLWExMXkgbW9kZSAqL1xufVxuLmRqX2llNyAuZGpfYTExeSAuZGlqaXRTbGlkZXJJbWFnZUhhbmRsZSB7XG5cdG92ZXJmbG93OiB2aXNpYmxlOyAvKiBJRTcgd29ya2Fyb3VuZCB0byBtYWtlIHNsaWRlciBoYW5kbGUgVklTSUJMRSBpbiBhMTF5IG1vZGUgKi9cbn1cbi5kal9hMTF5IC5kaWppdFNsaWRlckZvY3VzZWQgLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRib3JkZXI6NHB4IHNvbGlkICMwMDA7XG5cdGhlaWdodDo4cHg7XG5cdHdpZHRoOjhweDtcbn1cblxuLmRpaml0U2xpZGVySW1hZ2VIYW5kbGVWIHtcblx0dG9wOi04cHg7XG5cdHJpZ2h0OiAtNTAlO1xufVxuXG4uZGlqaXRTbGlkZXJJbWFnZUhhbmRsZUgge1xuXHRsZWZ0OjUwJTtcblx0dG9wOi01cHg7XG5cdHZlcnRpY2FsLWFsaWduOnRvcDtcbn1cblxuLmRpaml0U2xpZGVyQmFyIHtcblx0Ym9yZGVyLXN0eWxlOnNvbGlkO1xuXHRib3JkZXItY29sb3I6YmxhY2s7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmRpaml0U2xpZGVyQmFyQ29udGFpbmVyViB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRoZWlnaHQ6MTAwJTtcblx0ei1pbmRleDoxO1xufVxuXG4uZGlqaXRTbGlkZXJCYXJDb250YWluZXJIIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdHotaW5kZXg6MTtcbn1cblxuLmRpaml0U2xpZGVyQmFySCB7XG5cdGhlaWdodDo0cHg7XG5cdGJvcmRlci13aWR0aDoxcHggMDtcbn1cblxuLmRpaml0U2xpZGVyQmFyViB7XG5cdHdpZHRoOjRweDtcblx0Ym9yZGVyLXdpZHRoOjAgMXB4O1xufVxuXG4uZGlqaXRTbGlkZXJQcm9ncmVzc0JhciB7XG5cdGJhY2tncm91bmQtY29sb3I6cmVkO1xuXHR6LWluZGV4OjE7XG59XG5cbi5kaWppdFNsaWRlclByb2dyZXNzQmFyViB7XG5cdHBvc2l0aW9uOnN0YXRpYyAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6MDtcblx0dmVydGljYWwtYWxpZ246dG9wO1xuXHR0ZXh0LWFsaWduOmxlZnQ7XG59XG5cbi5kaWppdFNsaWRlclByb2dyZXNzQmFySCB7XG5cdHBvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHdpZHRoOjA7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0b3ZlcmZsb3c6dmlzaWJsZTtcbn1cblxuLmRpaml0U2xpZGVyUmVtYWluaW5nQmFyIHtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xuXHR6LWluZGV4OjE7XG59XG5cbi5kaWppdFNsaWRlclJlbWFpbmluZ0JhclYge1xuXHRoZWlnaHQ6MTAwJTtcblx0dGV4dC1hbGlnbjpsZWZ0O1xufVxuXG4uZGlqaXRTbGlkZXJSZW1haW5pbmdCYXJIIHtcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xufVxuXG4vKiB0aGUgc2xpZGVyIGJ1bXBlciBpcyB0aGUgc3BhY2UgY29uc3VtZWQgYnkgdGhlIHNsaWRlciBoYW5kbGUgd2hlbiBpdCBoYW5ncyBvdmVyIGFuIGVkZ2UgKi9cbi5kaWppdFNsaWRlckJ1bXBlciB7XG5cdG92ZXJmbG93OmhpZGRlbjtcblx0ei1pbmRleDoxO1xufVxuXG4uZGlqaXRTbGlkZXJCdW1wZXJWIHtcblx0d2lkdGg6NHB4O1xuXHRoZWlnaHQ6OHB4O1xuXHRib3JkZXItd2lkdGg6MCAxcHg7XG59XG5cbi5kaWppdFNsaWRlckJ1bXBlckgge1xuXHR3aWR0aDo4cHg7XG5cdGhlaWdodDo0cHg7XG5cdGJvcmRlci13aWR0aDoxcHggMDtcbn1cblxuLmRpaml0U2xpZGVyQm90dG9tQnVtcGVyLFxuLmRpaml0U2xpZGVyTGVmdEJ1bXBlciB7XG5cdGJhY2tncm91bmQtY29sb3I6cmVkO1xufVxuXG4uZGlqaXRTbGlkZXJUb3BCdW1wZXIsXG4uZGlqaXRTbGlkZXJSaWdodEJ1bXBlciB7XG5cdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XG59XG5cbi5kaWppdFNsaWRlckRlY29yYXRpb24ge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvbkMsXG4uZGlqaXRTbGlkZXJEZWNvcmF0aW9uViB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogbmVlZGVkIGZvciBJRStxdWlya3MrUlRMK3ZlcnRpY2FsIChyZW5kZXJpbmcgYnVnKSBidXQgYWRkIGV2ZXJ5d2hlcmUgZm9yIGN1c3RvbSBzdHlsaW5nIGNvbnNpc3RlbmN5IGJ1dCB0aGlzIG1lc3NlcyB1cCBJRSBob3Jpem9udGFsIHNsaWRlcnMgKi9cbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvbkgge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvblYge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5kaWppdFNsaWRlckJ1dHRvbiB7XG5cdGZvbnQtZmFtaWx5Om1vbm9zcGFjZTtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MDtcblx0ZGlzcGxheTpibG9jaztcbn1cblxuLmRqX2ExMXkgLmRpaml0U2xpZGVyQnV0dG9uSW5uZXIge1xuXHR2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0U2xpZGVyQnV0dG9uQ29udGFpbmVyIHtcblx0dGV4dC1hbGlnbjpjZW50ZXI7XG5cdGhlaWdodDowO1x0LyogPz8/ICovXG59XG4uZGlqaXRTbGlkZXJCdXR0b25Db250YWluZXIgKiB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmRpaml0U2xpZGVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRwYWRkaW5nOjA7XG5cdGRpc3BsYXk6YmxvY2s7XG59XG5cbi5kaWppdFJ1bGVDb250YWluZXIge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0b3ZlcmZsb3c6dmlzaWJsZTtcbn1cblxuLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRoZWlnaHQ6MTAwJTtcblx0bGluZS1oZWlnaHQ6MDtcblx0ZmxvYXQ6bGVmdDtcblx0dGV4dC1hbGlnbjpsZWZ0O1xufVxuXG4uZGpfb3BlcmEgLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRsaW5lLWhlaWdodDoyJTtcbn1cblxuLmRqX2llIC5kaWppdFJ1bGVDb250YWluZXJWIHtcblx0bGluZS1oZWlnaHQ6bm9ybWFsO1xufVxuXG4uZGpfZ2Vja28gLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRtYXJnaW46MCAwIDFweCAwOyAvKiBtb3ppbGxhIGJ1ZyB3b3JrYXJvdW5kIGZvciBmbG9hdDpsZWZ0LGhlaWdodDoxMDAlIGJsb2NrIGVsZW1lbnRzICovXG59XG5cbi5kaWppdFJ1bGVNYXJrIHtcblx0cG9zaXRpb246YWJzb2x1dGU7XG5cdGJvcmRlcjoxcHggc29saWQgYmxhY2s7XG5cdGxpbmUtaGVpZ2h0OjA7XG5cdGhlaWdodDoxMDAlO1xufVxuXG4uZGlqaXRSdWxlTWFya0gge1xuXHR3aWR0aDowO1xuXHRib3JkZXItdG9wLXdpZHRoOjAgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbS13aWR0aDowICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1sZWZ0LXdpZHRoOjAgIWltcG9ydGFudDtcbn1cblxuLmRpaml0UnVsZUxhYmVsQ29udGFpbmVyIHtcblx0cG9zaXRpb246YWJzb2x1dGU7XG59XG5cbi5kaWppdFJ1bGVMYWJlbENvbnRhaW5lckgge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG59XG5cbi5kaWppdFJ1bGVMYWJlbEgge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0bGVmdDotNTAlO1xufVxuXG4uZGlqaXRSdWxlTGFiZWxWIHtcblx0Lyogc28gdGhhdCBsb25nIGxhYmVscyBkb24ndCBvdmVyZmxvdyB0byBtdWx0aXBsZSByb3dzLCBvciBvdmVyd3JpdGUgc2xpZGVyIGl0c2VsZiAqL1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRpaml0UnVsZU1hcmtWIHtcblx0aGVpZ2h0OjA7XG5cdGJvcmRlci1yaWdodC13aWR0aDowICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1ib3R0b20td2lkdGg6MCAhaW1wb3J0YW50O1xuXHRib3JkZXItbGVmdC13aWR0aDowICFpbXBvcnRhbnQ7XG5cdHdpZHRoOjEwMCU7XG5cdGxlZnQ6MDtcbn1cblxuLmRqX2llIC5kaWppdFJ1bGVMYWJlbENvbnRhaW5lclYge1xuXHRtYXJnaW4tdG9wOi0uNTVlbTtcbn1cblxuLmRqX2ExMXkgLmRpaml0U2xpZGVyUmVhZE9ubHksXG4uZGpfYTExeSAuZGlqaXRTbGlkZXJEaXNhYmxlZCB7XG5cdG9wYWNpdHk6MC42O1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdFNsaWRlclJlYWRPbmx5IC5kaWppdFNsaWRlckJhcixcbi5kal9pZSAuZGpfYTExeSAuZGlqaXRTbGlkZXJEaXNhYmxlZCAuZGlqaXRTbGlkZXJCYXIge1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NDApO1xufVxuXG4vKiArIGFuZCAtIFNsaWRlciBidXR0b25zOiBvdmVycmlkZSB0aGVtZSBzZXR0aW5ncyB0byBkaXNwbGF5IGljb25zICovXG4uZGpfYTExeSAuZGlqaXRTbGlkZXIgLmRpaml0U2xpZGVyQnV0dG9uQ29udGFpbmVyIGRpdiB7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IC8qIG90aGVyd2lzZSBoeXBoZW4gaXMgbGFyZ2VyIGFuZCBtb3JlIHZlcnRpY2FsbHkgY2VudGVyZWQgKi9cblx0Zm9udC1zaXplOiAxZW07XG5cdGxpbmUtaGVpZ2h0OiAxZW07XG5cdGhlaWdodDogYXV0bztcblx0d2lkdGg6IGF1dG87XG5cdG1hcmdpbjogMCA0cHg7XG59XG5cbi8qIEljb24tb25seSBidXR0b25zIChvZnRlbiBpbiB0b29sYmFycykgc3RpbGwgZGlzcGxheSB0aGUgdGV4dCBpbiBoaWdoLWNvbnRyYXN0IG1vZGUgKi9cbi5kal9hMTF5IC5kaWppdEJ1dHRvbkNvbnRlbnRzIC5kaWppdEJ1dHRvblRleHQsXG4uZGpfYTExeSAuZGlqaXRUYWIgLnRhYkxhYmVsIHtcblx0ZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uVGV4dCB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xufVxuXG4vKiBUZXh0QXJlYSwgU2ltcGxlVGV4dEFyZWEgKi9cbi5kaWppdFRleHRBcmVhIHtcblx0d2lkdGg6MTAwJTtcblx0b3ZlcmZsb3cteTogYXV0bztcdC8qIHcvb3V0IHRoaXMgSUUncyBTaW1wbGVUZXh0QXJlYSBnb2VzIHRvIG92ZXJmbG93OiBzY3JvbGwgKi9cbn1cbi5kaWppdFRleHRBcmVhW2NvbHNdIHtcblx0d2lkdGg6YXV0bzsgLyogU2ltcGxlVGV4dEFyZWEgY29scyAqL1xufVxuLmRqX2llIC5kaWppdFRleHRBcmVhQ29scyB7XG5cdHdpZHRoOmF1dG87XG59XG5cbi5kaWppdEV4cGFuZGluZ1RleHRBcmVhIHtcblx0LyogZm9yIGF1dG8gZXhhbmRpbmcgdGV4dGFyZWEgKGNhbGxlZCBUZXh0YXJlYSBjdXJyZW50bHksIHJlbmFtZSBmb3IgMi4wKSBkb24ndCB3YW50IHRvIGRpc3BsYXkgdGhlIGdyaXAgdG8gcmVzaXplICovXG5cdHJlc2l6ZTogbm9uZTtcbn1cblxuXG4vKiBUb29sYmFyXG4gKiBOb3RlIHRoYXQgb3RoZXIgdG9vbGJhciBydWxlcyAoZm9yIG9iamVjdHMgaW4gdG9vbGJhcnMpIGFyZSBzY2F0dGVyZWQgdGhyb3VnaG91dCB0aGlzIGZpbGUuXG4gKi9cblxuLmRpaml0VG9vbGJhclNlcGFyYXRvciB7XG5cdGhlaWdodDogMThweDtcblx0d2lkdGg6IDVweDtcblx0cGFkZGluZzogMCAxcHg7XG5cdG1hcmdpbjogMDtcbn1cblxuLyogRWRpdG9yICovXG4uZGlqaXRJRUZpeGVkVG9vbGJhciB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHQvKiB0b3A6MDsgKi9cblx0dG9wOiBleHByZXNzaW9uKGV2YWwoKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudHx8ZG9jdW1lbnQuYm9keSkuc2Nyb2xsVG9wKSk7XG59XG5cbi5kaWppdEVkaXRvciB7XG5cdGRpc3BsYXk6IGJsb2NrO1x0LyogcHJldmVudHMgZ2xpdGNoIG9uIEZGIHdpdGggSW5saW5lRWRpdEJveCwgc2VlICM4NDA0ICovXG59XG5cbi5kaWppdEVkaXRvckRpc2FibGVkLFxuLmRpaml0RWRpdG9yUmVhZE9ubHkge1xuXHRjb2xvcjogZ3JheTtcbn1cblxuLyogVGltZVBpY2tlciAqL1xuXG4uZGlqaXRUaW1lUGlja2VyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZGlqaXRUaW1lUGlja2VySXRlbSB7XG5cdGN1cnNvcjpwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0VGltZVBpY2tlckl0ZW1Ib3ZlciB7XG5cdGJhY2tncm91bmQtY29sb3I6Z3JheTtcblx0Y29sb3I6d2hpdGU7XG59XG4uZGlqaXRUaW1lUGlja2VySXRlbVNlbGVjdGVkIHtcblx0Zm9udC13ZWlnaHQ6Ym9sZDtcblx0Y29sb3I6IzMzMztcblx0YmFja2dyb3VuZC1jb2xvcjojYjdjZGVlO1xufVxuLmRpaml0VGltZVBpY2tlckl0ZW1EaXNhYmxlZCB7XG5cdGNvbG9yOmdyYXk7XG5cdHRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7XG59XG5cbi5kaWppdFRpbWVQaWNrZXJJdGVtSW5uZXIge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0Ym9yZGVyOjA7XG5cdHBhZGRpbmc6MnB4IDhweCAycHggOHB4O1xufVxuXG4uZGlqaXRUaW1lUGlja2VyVGljayxcbi5kaWppdFRpbWVQaWNrZXJNYXJrZXIge1xuXHRib3JkZXItYm90dG9tOjFweCBzb2xpZCBncmF5O1xufVxuXG4uZGlqaXRUaW1lUGlja2VyIC5kaWppdERvd25BcnJvd0J1dHRvbiB7XG5cdGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0VGltZVBpY2tlclRpY2sge1xuXHRjb2xvcjojQ0NDO1xufVxuXG4uZGlqaXRUaW1lUGlja2VyTWFya2VyIHtcblx0Y29sb3I6YmxhY2s7XG5cdGJhY2tncm91bmQtY29sb3I6I0NDQztcbn1cblxuLmRqX2ExMXkgLmRpaml0VGltZVBpY2tlckl0ZW1TZWxlY3RlZCAuZGlqaXRUaW1lUGlja2VySXRlbUlubmVyIHtcblx0Ym9yZGVyOiBzb2xpZCA0cHggYmxhY2s7XG59XG4uZGpfYTExeSAuZGlqaXRUaW1lUGlja2VySXRlbUhvdmVyIC5kaWppdFRpbWVQaWNrZXJJdGVtSW5uZXIge1xuXHRib3JkZXI6IGRhc2hlZCA0cHggYmxhY2s7XG59XG5cblxuLmRpaml0VG9nZ2xlQnV0dG9uSWNvbkNoYXIge1xuXHQvKiBjaGFyYWN0ZXIgKGluc3RlYWQgb2YgaWNvbikgdG8gc2hvdyB0aGF0IFRvZ2dsZUJ1dHRvbiBpcyBjaGVja2VkICovXG5cdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0VG9nZ2xlQnV0dG9uIC5kaWppdFRvZ2dsZUJ1dHRvbkljb25DaGFyIHtcblx0ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDtcblx0dmlzaWJpbGl0eTpoaWRkZW47XG59XG4uZGpfaWU2IC5kaWppdFRvZ2dsZUJ1dHRvbkljb25DaGFyLCAuZGpfaWU2IC50YWJTdHJpcEJ1dHRvbiAuZGlqaXRCdXR0b25UZXh0IHtcblx0Zm9udC1mYW1pbHk6IFwiQXJpYWwgVW5pY29kZSBNU1wiO1x0Lyogb3RoZXJ3aXNlIHRoZSBhMTF5IGNoYXJhY3RlciAoY2hlY2ttYXJrLCBhcnJvdywgZXRjLikgYXBwZWFycyBhcyBhIGJveCAqL1xufVxuLmRqX2ExMXkgLmRpaml0VG9nZ2xlQnV0dG9uQ2hlY2tlZCAuZGlqaXRUb2dnbGVCdXR0b25JY29uQ2hhciB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyAvKiBJbiBoaWdoIGNvbnRyYXN0IG1vZGUsIGRpc3BsYXkgdGhlIGNoZWNrIHN5bWJvbCAqL1xuXHR2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0QXJyb3dCdXR0b25DaGFyIHtcblx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRBcnJvd0J1dHRvbkNoYXIge1xuXHRkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXREcm9wRG93bkJ1dHRvbiAuZGlqaXRBcnJvd0J1dHRvbklubmVyLFxuLmRqX2ExMXkgLmRpaml0Q29tYm9CdXR0b24gLmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBTZWxlY3QgKi9cbi5kal9hMTF5IC5kaWppdFNlbGVjdCB7XG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGUgIWltcG9ydGFudDtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZGpfaWUgLmRpaml0U2VsZWN0IHtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTsgLyogU2V0IHRoaXMgYmFjayBmb3Igd2hhdCB3ZSBoYWNrIGluIGRpaml0IGlubGluZSAqL1xufVxuLmRqX2llNiAuZGlqaXRTZWxlY3QgLmRpaml0VmFsaWRhdGlvbkNvbnRhaW5lcixcbi5kal9pZTggLmRpaml0U2VsZWN0IC5kaWppdEJ1dHRvblRleHQge1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLmRqX2llNiAuZGlqaXRUZXh0Qm94IC5kaWppdElucHV0Q29udGFpbmVyLFxuLmRqX2llcXVpcmtzIC5kaWppdFRleHRCb3ggLmRpaml0SW5wdXRDb250YWluZXIsXG4uZGpfaWU2IC5kaWppdFRleHRCb3ggLmRpaml0QXJyb3dCdXR0b25Jbm5lcixcbi5kal9pZTYgLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uSW5uZXIsXG4uZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwge1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi5kaWppdE51bWJlclRleHRCb3gge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRkaXJlY3Rpb246IGx0cjtcbn1cblxuLmRpaml0TnVtYmVyVGV4dEJveCAuZGlqaXRJbnB1dElubmVyIHtcblx0dGV4dC1hbGlnbjogaW5oZXJpdDsgLyogaW5wdXQgKi9cbn1cblxuLmRpaml0TnVtYmVyVGV4dEJveCBpbnB1dC5kaWppdElucHV0SW5uZXIsXG4uZGlqaXRDdXJyZW5jeVRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRpaml0U3Bpbm5lciBpbnB1dC5kaWppdElucHV0SW5uZXIge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmRqX2llOCAuZGlqaXROdW1iZXJUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXROdW1iZXJUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lcixcbi5kal9pZTggLmRpaml0Q3VycmVuY3lUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXRDdXJyZW5jeVRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRqX2llOCAuZGlqaXRTcGlubmVyIGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXRTcGlubmVyIGlucHV0LmRpaml0SW5wdXRJbm5lciB7XG5cdC8qIHdvcmthcm91bmQgYnVnIHdoZXJlIGNhcmV0IGludmlzaWJsZSBpbiBlbXB0eSB0ZXh0Ym94ZXMgKi9cblx0cGFkZGluZy1yaWdodDogMXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdFRvb2xiYXIgLmRpaml0U2VsZWN0IHtcblx0bWFyZ2luOiAwO1xufVxuLmRqX3dlYmtpdCAuZGlqaXRUb29sYmFyIC5kaWppdFNlbGVjdCB7XG5cdHBhZGRpbmctbGVmdDogMC4zZW07XG59XG4uZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRwYWRkaW5nOiAwO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRib3JkZXItc3R5bGU6IG5vbmUgc29saWQgbm9uZSBub25lO1xuXHRib3JkZXItd2lkdGg6IDFweDtcbn1cbi5kaWppdFNlbGVjdEZpeGVkV2lkdGggLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmRpaml0U2VsZWN0TWVudSAuZGlqaXRNZW51SXRlbUljb24ge1xuXHQvKiBhdm9pZCBibGFuayBhcmVhIGluIGxlZnQgc2lkZSBvZiBtZW51IChzaW5jZSB3ZSBoYXZlIG5vIGljb25zKSAqL1xuXHRkaXNwbGF5Om5vbmU7XG59XG4uZGpfaWU2IC5kaWppdFNlbGVjdE1lbnUgLmRpaml0TWVudUl0ZW1MYWJlbCxcbi5kal9pZTcgLmRpaml0U2VsZWN0TWVudSAuZGlqaXRNZW51SXRlbUxhYmVsIHtcblx0LyogU2V0IGJhY2sgdG8gc3RhdGljIGR1ZSB0byBidWcgaW4gaWU2L2llNyAtIFNlZSBCdWcgIzk2NTEgKi9cblx0cG9zaXRpb246IHN0YXRpYztcbn1cblxuLyogRml4IHRoZSBiYXNlbGluZSBvZiBvdXIgbGFiZWwgKGZvciBtdWx0aS1zaXplIGZvbnQgZWxlbWVudHMpICovXG4uZGlqaXRTZWxlY3RMYWJlbCAqXG57XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyogU3R5bGluZyBmb3IgdGhlIGN1cnJlbnRseS1zZWxlY3RlZCBvcHRpb24gKHJpY2ggdGV4dCBjYW4gbWVzcyB0aGlzIHVwKSAqL1xuLmRpaml0U2VsZWN0U2VsZWN0ZWRPcHRpb24gKiB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBGaXggdGhlIHN0eWxpbmcgb2YgdGhlIGRyb3Bkb3duIG1lbnUgdG8gYmUgbW9yZSBjb21ib2JveC1saWtlICovXG4uZGlqaXRTZWxlY3RNZW51IHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbi8qIFVzZWQgaW4gY2FzZXMsIHN1Y2ggYXMgRnVsbFNjcmVlbiBwbHVnaW4sIHdoZW4gd2UgbmVlZCB0byBmb3JjZSBzdHVmZiB0byBzdGF0aWMgcG9zaXRpb25pbmcuICovXG4uZGlqaXRGb3JjZVN0YXRpYyB7XG5cdHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbn1cblxuLyoqKiogRGlzYWJsZWQgY3Vyc29yICoqKioqL1xuLmRpaml0UmVhZE9ubHkgKixcbi5kaWppdERpc2FibGVkICosXG4uZGlqaXRSZWFkT25seSxcbi5kaWppdERpc2FibGVkIHtcblx0LyogYSByZWdpb24gdGhlIHVzZXIgd291bGQgYmUgYWJsZSB0byBjbGljayBvbiwgYnV0IGl0J3MgZGlzYWJsZWQgKi9cblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBEcmFnIGFuZCBEcm9wICovXG4uZG9qb0RuZEl0ZW0ge1xuICAgIHBhZGRpbmc6IDJweDsgIC8qIHdpbGwgYmUgcmVwbGFjZWQgYnkgYm9yZGVyIGR1cmluZyBkcmFnIG92ZXIgKGRvam9EbmRJdGVtQmVmb3JlLCBkb2pvRG5kSXRlbUFmdGVyKSAqL1xuXG5cdC8qIFByZXZlbnQgbWFnbmlmeWluZy1nbGFzcyB0ZXh0IHNlbGVjdGlvbiBpY29uIHRvIGFwcGVhciBvbiBtb2JpbGUgd2Via2l0IGFzIGl0IGNhdXNlcyBhIHRvdWNob3V0IGV2ZW50ICovXG5cdC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgLyogRGlzYWJsZSBzZWxlY3Rpb24vQ29weSBvZiBVSVdlYlZpZXcgKi9cbn1cbi5kb2pvRG5kSG9yaXpvbnRhbCAuZG9qb0RuZEl0ZW0ge1xuICAgIC8qIG1ha2UgY29udGVudHMgb2YgaG9yaXpvbnRhbCBjb250YWluZXIgYmUgc2lkZSBieSBzaWRlLCByYXRoZXIgdGhhbiB2ZXJ0aWNhbCAqL1xuICAgICNkaXNwbGF5OiBpbmxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZG9qb0RuZEl0ZW1CZWZvcmUsXG4uZG9qb0RuZEl0ZW1BZnRlciB7XG5cdGJvcmRlcjogMHB4IHNvbGlkICMzNjk7XG59XG4uZG9qb0RuZEl0ZW1CZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogMnB4IDAgMCAwO1xuICAgIHBhZGRpbmc6IDAgMnB4IDJweCAycHg7XG59XG4uZG9qb0RuZEl0ZW1BZnRlciB7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDAgMnB4IDA7XG4gICAgcGFkZGluZzogMnB4IDJweCAwIDJweDtcbn1cbi5kb2pvRG5kSG9yaXpvbnRhbCAuZG9qb0RuZEl0ZW1CZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogMCAwIDAgMnB4O1xuICAgIHBhZGRpbmc6IDJweCAycHggMnB4IDA7XG59XG4uZG9qb0RuZEhvcml6b250YWwgLmRvam9EbmRJdGVtQWZ0ZXIge1xuICAgIGJvcmRlci13aWR0aDogMCAycHggMCAwO1xuICAgIHBhZGRpbmc6IDJweCAwIDJweCAycHg7XG59XG5cbi5kb2pvRG5kSXRlbU92ZXIge1xuXHRjdXJzb3I6cG9pbnRlcjtcbn1cbi5kal9nZWNrbyAuZGlqaXRBcnJvd0J1dHRvbklubmVyIElOUFVULFxuLmRqX2dlY2tvIElOUFVULmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdC1tb3otdXNlci1mb2N1czppZ25vcmU7XG59XG4uZGlqaXRGb2N1c2VkIC5kaWppdE1lbnVJdGVtU2hvcnRjdXRLZXkge1xuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbiIsIi8qIERpaml0IGN1c3RvbSBzdHlsaW5nICovXG4uZGlqaXRCb3JkZXJDb250YWluZXIge1xuICAgIGhlaWdodDogMzUwcHg7XG59XG4uZGlqaXRUb29sdGlwQ29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuLmRpaml0Q29udGVudFBhbmUge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIG92ZXJmbG93OiBhdXRvICFpbXBvcnRhbnQ7IC8qIFdpZGdldHMgbGlrZSB0aGUgZGF0YSBncmlkIHBhc3MgdGhlaXIgc2Nyb2xsXG4gICAgb2Zmc2V0IHRvIHRoZSBwYXJlbnQgaWYgdGhlcmUgaXMgbm90IGVub3VnaCByb29tIHRvIGRpc3BsYXkgYSBzY3JvbGwgYmFyXG4gICAgaW4gdGhlIHdpZGdldCBpdHNlbGYsIHNvIGRvIG5vdCBoaWRlIHRoZSBvdmVyZmxvdy4gKi9cbn1cblxuLyogR2xvYmFsIEJvb3RzdHJhcCBjaGFuZ2VzICovXG5cbi8qIENsaWVudCBkZWZhdWx0cyBhbmQgaGVscGVycyAqL1xuLm14LWRhdGF2aWV3LWNvbnRlbnQsIC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcjpub3QoLm14LXNjcm9sbGNvbnRhaW5lci1uZXN0ZWQpLCAubXgtdGFiY29udGFpbmVyLWNvbnRlbnQsIC5teC1ncmlkLWNvbnRlbnQge1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cbmh0bWwsIGJvZHksICNjb250ZW50IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4jY29udGVudCA+IC5teC1wYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuXG4ubXgtbGVmdC1hbGlnbmVkIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LXJpZ2h0LWFsaWduZWQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLm14LWNlbnRlci1hbGlnbmVkIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teC10YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtdGFibGUgdGgsXG4ubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLm14LXRhYmxlIHRoLm5vcGFkZGluZyxcbi5teC10YWJsZSB0ZC5ub3BhZGRpbmcge1xuXHRwYWRkaW5nOiAwO1xufVxuXG4ubXgtb2Zmc2NyZWVuIHtcbiAgICAvKiBXaGVuIHBvc2l0aW9uIHJlbGF0aXZlIGlzIG5vdCBzZXQgSUUgZG9lc24ndCBwcm9wZXJseSByZW5kZXIgd2hlbiB0aGlzIGNsYXNzIGlzIHJlbW92ZWRcbiAgICAgKiB3aXRoIHRoZSBlZmZlY3QgdGhhdCBlbGVtZW50cyBhcmUgbm90IGRpc3BsYXllZCBvciBhcmUgbm90IGNsaWNrYWJsZS5cbiAgICAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm14LWllLWV2ZW50LXNoaWVsZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAtMTtcbn1cblxuLm14LXN3aXBlLW5hdmlnYXRpb24tcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDU0cHg7XG4gICAgd2lkdGg6IDU0cHg7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDI3cHgpO1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMjdweCk7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaE5nQTJBUE1BQVAvLy93QUFBSGg0ZUJ3Y0hBNE9EdGpZMkZSVVZOemMzTVRFeEVoSVNJcUtpZ0FBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQWtLQUFBQUlmNGFRM0psWVhSbFpDQjNhWFJvSUdGcVlYaHNiMkZrTG1sdVptOEFJZjhMVGtWVVUwTkJVRVV5TGpBREFRQUFBQ3dBQUFBQU5nQTJBQUFFeXhESVNhdTlPT3ZOdS85Z0tJNWt5U0VKUVNTSTZVcUtLaFBLV3lMejNOcGltcXNKbnVnM0U0YUlNaVBJOXdzcVBUamlUbGt3cUF3RlRDeFhleFlHczBIMmdnSk9MWUxCUURDeTVnd213WXg5SkpyQXNzSFFYc0tyOUNGdU0zQWxjakowSUFkK0JBTUhMbWxySkFkdUJvNVBsNWlabXB1Y25aNmZjV3FJbUpDamFIT1poaXFtRkl1QWw2NFpzWml6RjZvRXJFSzN1Uk9sbTc2Z3djTER4TVhHeDhYQWo2SWt1NCtvSXJVazBoL1UwV0Vqem5IUUlzcWhrY2pCM3NuY3hkYkM1K0xseWN6aDdrOFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRNRU1oSnE3MDQ2ODI3LzJBb2ptUnBubVZoRUlSUm9HY3hzT3p3d3VSS3N3Wk83anZmQ0VnVGluUzduaEYwbU5FR2h3c2l3VW9nbHBTRHpoQzFLSWlLa1dBd0VKZ1FSTllWSk5pWlNkUjBJdVNzbGRKRlVKMHd1T01KSVcwMGJ5TnhSSE9CWklRamFHbHJXQnhmUUdHUUhsTlZqNVdhbTV5ZG5wOUxZMldib29zV2dpeW1RcWdFcWhON2ZaQ3dHYk95TzdFWHJLNDR1aHFscElxZ3dzUEV4Y2JIeU1lL0tNc2l2U2JQZExjbnRkSlAxTlBPYmlmUmlhUE13Y25DemNyYnlOWEc2TVhkeHVUaTd6NFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRPRU1oSnE3MDQ2ODI3LzJBb2ptUnBubWlxQXNJd0NLc3BFRFFCeCtOUUV3T2U3ejFmYUZhN0NVR3QxMUZZTU5BTUJWTFNTQ3JvYW9Qb2NFY1ZPWGNFZytoS0M1TEF0VEhRaEthSmlMUnU2THNUdjEzeTBJSE1PeXc5QjE4R2ZuK0Zob2VJaVlvWkNBazBDUWlMRmdwb0NobFRSd2h0QkpFV2NEWkNqbTBKRjN4bU1adHVGcVpDcVFRWG4za29vbWlrc0hpWm01MlNBSlJnbHJ3VGpZKzd3Y2JIeU1uS0U1Z296VzljSjdFL1dDZXNhdFVtMTF0RjB0RWp6eks0eTRuaHh0UEkyOGJxd2VqSTV1VHhKaEVBSWZrRUNRb0FBQUFzQUFBQUFEWUFOZ0FBQk1zUXlFbXJ2VGpyemJ2L1lDaU9aR21lYUtvQ3dqQUlxeWtRTkFISDQxQVRBNTd2UFY5b1Zyc0pRYTNYY1lsS0dtV3VKM0luRlJGcDFZNnVGaXh0YVYzUWwzY2FoejlYMnltZDdUaFRiNlo4VHEvYjcvaTh2R0NnR1FvYWNVSUZab0FYYkVkOU93UUdHR1pIaXpXT1FKQ1JCQmlJUW9vN2paaFJTd2RtQjNvVUI0b0dvNlNxcTZ5dE1RZ0pOQWtJckFxUkNpT0NJd2lXQkxSVFJTV3hsZ2toanlTOU5NYVV5TWxEVk1LOXhVT2ZKYnlXdjNxMmk3aEx1aFd3c3RsQ21hdkg1c3lyNWVyVnJ1NDRFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWlaY2dVR05BWUZKSk1pQldhZ1E0TWxuVHNFQmlLTElxczFya0Ftc1RSV3FDU3FPNjFXa1JrSUNUUUpDQmNIWmdkSENyRUt4cW9HeVVJSXRnVEZlc0syQ1h2VXQzcmNCSHZZc2RwNjA3Yldlc3VyelpYQncrZ2lFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWdTQ0FrMENRaVdDanMwQ3BRSW9qV2ZKWk1kbktjRUNhcURJSzQxWGtBaHREUzJYQ0d0cDdBa2p4Nm1ycW5Ca1NLaG9xUVhCUVkwQmdWTG01M0dGUVZtMHBUUG9nYVZ0Tit1bGR3NzNwUUhaZ2VXQjl3RzZwa29FUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2dktVU0Nsa0RnTFFvN05BcC9Fd2lDTlg1Q2NSWjdpQVFKaTFRWGp6VkNacFNWQkpkQUY0NklrVDVzRjRlUGlxSlJHWUdDaElXR2puMnVzck8wdFhZRkJqUUdCYlFGWnJ4UVNpSzVnZ1l5a3lHVkpwakpqOHVkSWNRN3hpV2pJUWRtQjJ1cEl3ZkVCdHEySG95ejFyUE01OURseUxUazR1OHBFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3a1JDVm9Db1dtOWhCTEZqcWFBZGhEVEdyUGtOSDZTV1VLQ3UvTjJ3cldTcmhiOG9HbHFZQWljSFpPSU5ETUhHOTdlWFhvZFVsTlZWbGRnUzRhS2k0eU5qbzhGQmpRR0JZOFhCV3MwQTVWUVhSbVNVd2FkWlJob1VKazhwV0duY2hlZ082SkNlRFlZQjZnREIxYWVHUWVnQnJtV3djTER4TVhHeDF5QUtic2lzNEVnemo5c0o3ZlNtdFN0UTZReTI4M0tLTXpJamVIRTBjYlY1OW5sM2NYazR1OG9FUUE3KTtcbn1cblxuIiwiLyogQmFjYXVzZSB3ZSB1c2UgY2hlY2tib3hlcyB3aXRob3V0IGxhYmVscywgYWxpZ24gdGhlbSB3aXRoIG90aGVyIHdpZGdldHMuICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbjogOXB4IDA7XG59XG5cbi5teC1jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG59XG5cbi5mb3JtLXZlcnRpY2FsIC5mb3JtLWdyb3VwLm14LWNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5mb3JtLXZlcnRpY2FsIC5mb3JtLWdyb3VwLm14LWNoZWNrYm94LmxhYmVsLWFmdGVyIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwLm5vLWNvbHVtbnMge1xuICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuXG4ubXgtcmFkaW9idXR0b25zLmlubGluZSAucmFkaW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG5cbi5teC1yYWRpb2J1dHRvbnMgLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgLyogUmVzZXQgYm9vdHN0cmFwIHJ1bGVzICovXG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLm14LXJhZGlvYnV0dG9ucyAucmFkaW8gbGFiZWwge1xuICAgIC8qIFJlc2V0IGJvb3RzdHJhcCBydWxlcyAqL1xuICAgIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLmFsZXJ0IHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG59XG5cbi5teC1jb21wb3VuZC1jb250cm9sIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubXgtY29tcG91bmQtY29udHJvbCBidXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbltkaXI9XCJydGxcIl0gLm14LWNvbXBvdW5kLWNvbnRyb2wgYnV0dG9uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbiIsIi5teC10b29sdGlwIHtcbiAgICBtYXJnaW46IDEwcHg7XG59XG4ubXgtdG9vbHRpcC1jb250ZW50IHtcbiAgICB3aWR0aDogNDAwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbn1cbi5teC10b29sdGlwLXByZXBhcmUge1xuICAgIGhlaWdodDogMjRweDtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEdBQVlBTVFkQUtYWjhuZkY2NFRMN1F1WDNGZTQ1emFxNGhPYjNmTDYvZnI5L3JyaTlkWHQrWnJVOEN5bTRVbXk1Y0hsOXVQeisySzg2T2oxL056dytyRGQ5TTNxK0pEUTcyckE2aU9pMyszNC9FQ3U0OGpvOXgyZjNnV1YyLy8vL3dBQUFBQUFBQ0gvQzA1RlZGTkRRVkJGTWk0d0F3RUFBQUFoL3d0WVRWQWdSR0YwWVZoTlVEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF3SURjNUxqRTJNRFExTVN3Z01qQXhOeTh3TlM4d05pMHdNVG93T0RveU1TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tFMWhZMmx1ZEc5emFDa2lJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSVUpGTmtVNE5FWkNORVZETVRGRk9EazNNREJCTlVVMVJVTTRRamczUVRVaUlIaHRjRTFOT2tSdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJVSkZOa1U0TlRCQ05FVkRNVEZGT0RrM01EQkJOVVUxUlVNNFFqZzNRVFVpUGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRwRlFrVTJSVGcwUkVJMFJVTXhNVVU0T1Rjd01FRTFSVFZGUXpoQ09EZEJOU0lnYzNSU1pXWTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRHBGUWtVMlJUZzBSVUkwUlVNeE1VVTRPVGN3TUVFMVJUVkZRemhDT0RkQk5TSXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QZ0gvL3YzOCsvcjUrUGYyOWZUejh2SHc3Kzd0N092cTZlam41dVhrNCtMaDROL2UzZHpiMnRuWTE5YlYxTlBTMGREUHpzM015OHJKeU1mR3hjVER3c0hBdjc2OXZMdTZ1YmkzdHJXMHM3S3hzSyt1cmF5cnFxbW9wNmFscEtPaW9hQ2ZucDJjbTVxWm1KZVdsWlNUa3BHUWo0Nk5qSXVLaVlpSGhvV0VnNEtCZ0g5K2ZYeDdlbmw0ZDNaMWRITnljWEJ2Ym0xc2EycHBhR2RtWldSalltRmdYMTVkWEZ0YVdWaFhWbFZVVTFKUlVFOU9UVXhMU2tsSVIwWkZSRU5DUVVBL1BqMDhPem81T0RjMk5UUXpNakV3THk0dExDc3FLU2duSmlVa0l5SWhJQjhlSFJ3Ykdoa1lGeFlWRkJNU0VSQVBEZzBNQ3dvSkNBY0dCUVFEQWdFQUFDSDVCQVVFQUIwQUxBQUFBQUFZQUJnQUFBVWNZQ2VPWkdtZWFLcXViT3UrY0N6UGRHM2ZlSzd2Zk8vL3dPQXJCQUFoK1FRRkJBQWRBQ3dBQUFBQUFRQUJBQUFGQTJBWEFnQWgrUVFGQkFBZEFDd1VBQXdBQVFBQ0FBQUZBeURUaEFBaCtRUUZCQUFkQUN3VEFBc0FBZ0FHQUFBRkMyQVhkRnhuZE1UUU1WMElBQ0g1QkFVRUFCMEFMQkVBQ3dBRUFBZ0FBQVVSWUNjMllpbHlvcldkVm1jTnA4aTBYUWdBSWZrRUJRUUFIUUFzRHdBT0FBWUFCZ0FBQlE5Z0ozYUJNWjRqaDQ0V0I0bkZjSVlBSWZrRUNRUUFIUUFzRFFBUEFBZ0FCZ0FBQlJGZ0o0NGRSSGJCcVlvcEdRd2NPUmhxQ0FBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRkxXQW5qbVJwbm1pcXJtenJ2bkFzejNSdDMzaXVrOEpnRHdRYlIyaWhCVGlOV1c4WTR6aDlHaGxnUnkyRkFBQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZNMkFuam1ScG5taXFybXpydm5Bc3ozUnQzMmh6YzN0U0M3emFZT2VvY1NBMFlNWlZJUWtHd1JhUVE2VjJpaklBYnFzS0FRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZObUFuam1ScG5taXFybXpydm5Bc3ozUnQzMmh6Yy90VVY3eWFJV01MMGppRVZRVUZMS3dDSEVPcFlqQ3lNcHlzbGloYjRMNnJFQUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGT21BbmptUnBubWlxcm16cnZuQXN6M1J0MzJoemN6dFFWN3phcG1BTG1vQXNqZzdGTUI0NWpGV0RzeWxWTnM1VmdjUHRFbU8rQ202c0NnRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCVDlnSjQ1a2FaNW9xcTVzNjc1d0xNOTBiZDhvY1hPQ3plMm14c2ExWVp4K0xRN2cxRUNxT0prVWc3TkljWXlxNXJDMGdicW1uSENZc1lRdGU3aDBLZ1FBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQlVSZ0o0NWthWjVvcXE1czY3NXdMTTkwYmQ4b1lRWXdKNVNjbmluNElwSVlGOWNsV1ZvWVY1ekZLZk5FY1RLcFN4WElURkc3SXkyMnhlQ1l6eGNwVFBxajRONm9FQUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGU21BbmptUnBubWlxcm16cnZuQXN6M1ROYm5iQXdZUzV2NXdBcWZKekZVZEhWckt6WWJnWU9OK2t4YW1jQ2dQV29KRGFaRk9EYUtyQWNaWVlIRzVydzJtN04xWllSUmkzMlZjaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVlBZQ2VPWkdtZWFLcXViT3UrY0N6UDVVYlFJb2QzZ3I3N3JodkpBbXh4TEtVaVM5bmhURjVNQThQRk1KaDZMbzdneEJpd0JsUFV4cHNhYkZZTVRwaVVYcXNFQm81OGJ0akN0aGI3YnI4S0FRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZVMkFuam1ScG5taXFybXpydmpETFhERXBjRFZwWlBtSTk1MGJVUFJ6UVVxUVlvdHpKQ2xaejhsenhabVVEQVZYd1hDYW9yeWRDM2Rsb0tFTTQzTWFkZUZrU3dXT2VSVXdjTzU0UXlBbU9BcUdnQzBoQUNINUJBVUVBQjBBTEFBQUFBQVlBQmdBQUFWWFlDZU9aR21lYUtxdWJMdHVsbnNhaG14dXRVMEduRjRPRFIrcEp4VHhpaUpDemhYNzJRYUVIZEUxSFZWWkhNQXY0OG9NVE1jV0ozRENzUXliMUdBNSs2bzJIRzRwdzBtekFnTU9aNURmazIwQlVYOUloQzBoQUNINUJBa0VBQjBBTEFJQUF3QVVBQk1BQUFVL1lDZUsxdENNYUpweWhPcU93L2JPOUd6VmM0dnY5YzJuc2w5QVpQaDFpajZqY3JRUW5YYlBEc1E0SFFWcFYxUld0VTFGUjE5WDlWZ1VqV20rWkNvRUFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVmJZQ2VPWkdtZWFLcU9GckdpeE1CeHpHc2FuR3VidzdhZkJ0K3ZST0FNVGJsanlhaGtNWnVkaG5BWEtFbUhtOFp5K0JRdHVpL09ZcWw3RlUvZ1ZQSTJUVzBNcVo1cU0xamh5cU1pM0R6amJEWjllRFlRRFZwalVJZy9JUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGWUdBbmptUnBubWlxaWxXWFpjUnFFaHczWE5jZ2t3WUg3U2ZPQlhneURJa2xHdExrVzVZNFRoSkJGeFZsamtCQjZZcThaRXBVWUpnRkpYSmFwT1lPVXBhMlY1eVl5U2k3R0ZKQzFlVmRWSlBZZHpJME5qZ0ROWEpFQkYrSVZZMUFJUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGWldBbmptUnBubWlxaWtKWEZNUnFOaHhuTUlWUngvTEFXYWFBck1OaERGRUQ0M0hHV1o1K3pwS2dHUzBacXFTQ2Npa2NhWjA0RXVHNk5QQkcxR01hRFJ4YTFpS2F1bkZLeWhpRFZGSEZnSnQ4YlNSdmVUSTBOZ3dNT2h4MFRnUXZIUzFZa2xFaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVm1ZQ2VPWkdtZWFLcUtRY01VeldwbUhMZDF4VlpuY2pjTUFWUGdwMXB3Q2lyR0RUVkE5azZad1JQRm1aNENWV3Vwc2RTT1h0cmdWMXRna0xqV1RZeVVmYlpISExFTU81UDJCanhUVTFhd240NHFCVzhtQzBSQ2hpczBOZ1U1TzFZdFptdGVrNU1oQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFWbllDZU9aR21lYUtxS1FYWmQyV29XSEhkMURWTVhjc1VOSjRHQnMrTHdVclFLeWlpam5RcEFXY2R3NGdTa3FBQVJlM0p4VDdkdngwS0NmYjBqTk5aTTJtTGRJeXRXTzR2S0JzY1NjK1ZjNXA5d1ZYWWtBUU9CS0RRMkdTNDdYeTB2SFZkaWs1UWlJUUFoK1FRRkJBQWRBQ3dBQUFBQUdBQVlBQUFGYm1BbmptUnBubWlxaWxheGJjVnFNaHpIZEExdHl3Sm5uQUlEUjZEaVpGUVpUc29vUzU0WVAxbkhjQ3NOcFNJbHlhTEZjZ0trUWhWcjJwQkZpOUttY1c2WVIrSXpJMGJxU3UxWm9qZFJnbUtwSjB3clRpaUNLSVFvUFZFbFFYZ29PZ3dOT1RWalVpMW1kR2VhbXlVaEFDSDVCQVVFQUIwQUxBSUFBZ0FVQUJRQUFBVmJZQ2VPa01HZG5BR05MSWx5dy9DdWJjZWNXWjJkVEhzYk5aYXBKNEtrZ2kwVDdZU3NNWTI1Sm10WDRraWRKdXVWaFJwc1dUTFlkeFRXamsrbXNTZ0ZIVk03ekcvY0NMd3FSei9wMElmVDhZSkdYV1VjTkVoVktDbzFJUUFoK1FRRkJBQWRBQ3dCQUFFQUZnQVdBQUFGWjJBbmptUFZCV1NxbmdaSGNnYTZqc2JyMG5OMTEyVEZjNmFVNnpZYnBtckVXY2ZGTzRrRXloSFUyYWsxbzlYc0VydHlCYm1xWUpKN1E0MnhMaG00MlBsaVRUc3QxeXBTYzZkcUpGa3VHazVWQWtZcE9pSlhiVDlLVnh4Smhpb0JMUytOVVNaMktpRUFJZmtFQ1FRQUhRQXNBUUFCQUJZQUZnQUFCV3BnSjQ2aWxWMVgxazFrUzE2Y3kxMHUyY1MxeURVMU0zSUVFZ0hYOGRsR3dWcXl3L3ZsY2tSYVovbE1TbVBFcDY0VHM0aW8ycVJKcXoyUm42aHpMcVd1cWI1dEtyWTk3MGpCU3BHVTI5Nk9tbE01UzRBaVJseFVReU9HTmxreWhDNHdNbnRrSmlncUxDNGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVYrWUNlT1pHbWVwVlZjVjlaTjZMbHhkRTF2OGRqWWZOM0VEQnVFQkxFeFRqdmE4RlNrL1VxMW5DaEttbkdXdVNadVJKVjJ1aGFsbDh1eGlESzBNZG5WdWFUVlg4NUY1T2JBNC9NTzJnNm5zZU5ZVWsxbVUyOWVYUjFXZ1NoYUpBdUlLSkFkU1ZlTVBpZEJrRTAwUnlpVVBaZFNWajFiYWhZWkxCbUVkM0FoQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFXQllDZU9aR21lcFZWY1Y5Rk42TGx4ZEUxdjhkallmTjNFakpyQlpLZ3hUanRhVE9BejFYS2lKMm5HRVVDakhOeUlOcngyaXB5UlJlbnRNRGtXVVlGY3ByazZGN2FYZGhIRncrVU9YUzIvdXJkVlpXY2tYR1ZnVTMweE55UUxVamsxQ3lWSmdTZG5IRDhtUVlVa0FtQWNSeWlUUFUxUVZEMWFaU29zQldsNXJoMGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVdDWUNlT1pHbWVwVlZjVjlGTjZMbHhkRTF2OGRqWWZOM0VqTnJGZEtreFRqdk9JRGVnL1VxMFphN1Q1SlJtMXFub1JxSU50WjFpdG1PaGdVYzBpNmhnUG5kb3JuRDc3QldKM1cvT2x6MEd3OUY5VXdCcEloTjFZSGNqV0hRY09GMUtXbFVtU1FNQU1WVlBKVUdISXdCaUhFY29TVDAybVRGWVBZNW5LaXd1TUhodUlRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZlbUFuam1ScG5xV1ZNVXlHdmhjbnovTDFqZzJ0ejgxYnpLNVNabFk0NVRpR20wSFdLOG1TdDg2U1U0cFJvNklhU1JiRURxOGRpd3k3NVZoRVgvS0lLMktNMVIwWm8vMVd5OUYxTWpzTDF2ZjNYaklUSTFaMkhEWmxVRXA1SWtlS0oxTk5KVCtBSTE4Y1JTaEhPelNTTUp5SGNHRXJMUjJEb25BaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVjlZQ2VPWkdtZVpkQXdUSU8rRnlmUDh2V09CRDFjMTBBVHI4SU1Zb0xNQ3FjY3h3YVRBVXUxbXlqR0tWR2xvMmlXUThSMmpGVlJRT2JkQmtRTnpxQXM4bzBZUzNZbnhoREJtV1Y2ZHMzMnVUcGpZV1ZrVzExWVlDUlhYbHBiZUUyQ09Jd25WRThsUWpLR0kyQWNTQzg2UEQ0elhsUTBrbGhuTEg5eWNpRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCWDFnSjQ1a2FaNWwwQlJGZzc0TUo4OHk4NDRFZlhYWlJST3ZqR3h3RWd4a21WT09rd3pLZ0NYa1RTVGtsR0xFcWVob0c4bTBwSzhvSUFaM1pBRlJnN016ZDN5akF0UE40eFJFY25yOUxtTFQ0V05sWUdoZUhBSnVnbGhtWEZGelUxVW1TMDBvVlZBbFZWa2xSbEl2T2hrOU5HQXhORE5kWmlvZExYcDZJUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGZ0dBbmptUnBucVhRRkZrbm9HakJ6ZlJjd0NORUR4M1JaUU1hQk5hWWJWQ2JXZU9rNCtCNnM5UE05K3hFU2JKanRaTzhqYTViQUZqQTRXMUZ3WmVJMHpyL25LSU1oK3BteCtGdWdoM2FQc3ZwWlc0ZFFTUmdXNFpaWjEwbFUxVjZlRG1OTUk5REprVWNXaVpKa0ZJekF4aytRRUpWTWpVMFhtY3ZHYUNDclIwaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVjZZQ2VPWkdtZXBkQmxHWUcrR1NmUGN2YU8xcnk1UWJmTmxoZEJWa0FWWks2VDdOWUpMRTJ5SHJQekhNV0swODdSTnFwbXF3TE9KanY2cVVTY0pIbG81WkJKSEc1TVNuWnkyZThPSGoxK203dHViMTVYWkZzbFVWK0JKRG1LS0U0Y1FTWkRIRmdtUjJrM09qd0VQMTR3TkRSY1pDb3NIV2Q1YnlFQUlma0VDUVFBSFFBc0FBQUFBQmdBR0FBQUJYcGdKNDVrYVo1bDFXVk5wNkpueHMzMG5NRmpRQmR1RnhTMEFJd3dHeFpSbkFGT05PQUlTOGRsSnlxU0VhUWk0bTFFbFVZckhCNVdCQ1J4eG1hSXFNRjVqY0d0RGh2TmpVK2ZZOTBJTEI2WHVXZG9WRlpqV2xDQlhvaG1Ta3ROZUNSRUhGY25rWk1uT2pNOEtqOUJVakkxTkZ0b0VBMHRiblJqSVFBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRmdHQW5qbVJwbmlaRWRCYnFObHdzeDQwN0NyR3hkbE5IR0RHQkM4SVp1QUlEam90anNJbUF3bExST1VxV1lBR3FLTUNwalpqYUVaREUyWVU3U3BFbGZhNXdXajcydVN3aXlNTjBFYWR5N3JoSEMzZGFIQXRmVFdkakkxaGhYRjVmUmxwV0ptQk9pU2xGV1NkSUhCQXVPRXc3UFQ4eFdqQXpNbzVoRml0d2ZYMGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVYxWUNlT1pHbWVwa1YwQWVvU1hDekhxeXRXOFVWTzNSWGJIWTdCWnVCWVRqZ2QwSGNTQWtmRkV1dzVXbkJxSW82UzJ1T1FPQzF1ZGhUd2lqc1RzR2g2RG1MTlozaTVIUXpYei9PUjlzd2NzYmxYSlU1VVVTVkpUejRWS0VJTEtBdEZSeWc0ZXlNOFBuQTJNRE15V0Z3QkJDc0FkR0loQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFWellDZU9aR21lWmdCMUFlb1NBeWZQQStHU2NWWldHVGZjQWM3bGR1RzBUaHpkclZQZ25BYkRwZWp5SXhHYzBoSEhOaG9vczUxTVZZUUZrMGRCcy9ZSUtaczVxN082QXhlbDUyNU9SVjF4ZTlWaVZtNVNXeVZRWUZSSUJWSk5LRUZSS0VWSEtEazdQV00zTURNMFhHWXFjWE5xSVFBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRmQyQW5qbVJwbm1iUVdkMkVvdERBY1lZeEQ5QkxEZ05oRWp4ZGdKUFJaVGlxRThlbkUzRk9nMkpUbEJtVVl0TmRidFRMam9Da3AzY2s3Z2pLWTQ1Z1pCaXpSNWEydTJOZ09lZWQ4Z1R0NWJoRVhXTmdPMjQ0SlZGZVZTWUxTMU1FZkdGU0tFZE5QRXdrUUZaVE1UTTFOMXRqYXl4L2VGa2hBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVZvWUNlT1pHbWVwdEFGYU50WkJtY3dUR3hZN21nWXA3QzdBZzdFQmVHMGpMa1ZzbVFZSmpzUUhnbjIxT0YwVlpKVXRNd3VmVm1kU3NRSWswZUJzcG5CRW0yejcyNjFheGhYd1NNcTNOU3NSazl5UnloQlRpaEZkaWMvS1lvNU1ESTBObVlkS20yU1dTRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCV3hnSjQ1a2FaNW0xUVZvdXhvYzB6UU1aN0N1YURBb1k3Z1ZUazRnUkJWekhjN0VaQkFnUllJZktjQjdpcW9qcVZWSE9tNlBGZXlXb1JJMXRxT3pDSWZ1cUsvdERubmt0WG9OaTdaMjFXYXdkVTVQVVNkMUxZVWlRWUVvUkRrN1BYc3RBVEF5TkRaL1ZwZHhUeUVBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQldOZ0o0NWthWjVtMVFsbzJ3V2IwWFJRWTJ5Qk8yN3oyV3c2ZzY0alJCa2NRK0xFQkV5S21xTkF6emw5T2tsUTRuVlVGRldwcXRWMkJCa0p5bU8wZDl5cGRxL3ZyRE1yM1g2MThOUGJaVmlhRm50NkN5NDhLRDlKTURJME5qaGpLaXhzV3lFQUlma0VDUVFBSFFBc0FBQUFBQmdBR0FBQUJWaGdKNDVrYVo3bTBnbG91MjdGMmxuRjVwSTJhdVV0M3dNb24wc29JZzVMQXN1dHBNUXRUYjdZa3lRVk5hZldFUXRMMnNxNDN5ejQycWxpemNhYmtMeGtkOUxCRTd5VUJzeUxhcmYxUG9JcFdUVmdJaXdxZ2xnaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVlpZQ2VPWkdtZXA5QUJhTnN4aE5xcGpPeSt0c25jeGQzMUtLQlBTTnI1UnNaUjdyaE1Ia1ZPd3BQVUlDMmZyT21wSXVKcVI5N1pWenlTZnF2SXNaTThiV3JYSXFKTFRxS2I3TVdyU0FCSHdUb0xZbjArWGdwalV5RUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCVkZnSjQ1a2FaNW5oYTVqWm9sSloyVXNTYVBBdlJKMXg2Ty9YdERXSTVZQVJaS3FsVFNLWHMxb2JTSmFTcSttbUlpSzVjcXVVSkd1T2NhYXlqVzBMemtzdFUvdmtwclpxOUNRSFdURzJ1U2JleUVBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQlVsZ0o0NWthWjVuaGE0anBJcE9CN0Vrd2Rwc1FIYzYydSsvMms0NExNcU1MZVF1cHV4TVJJdW05QlNGVGErZGwyaW01R0pMdUdLWUZNeXR5dEt4U2IzeWlpcnU0clA2WllVQUFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVTVZQ2VPWkdtZUo0Q3VZMUNxS2l1Nk1ydlVkNjJiOU43dnRaOFBTQ3dtUkxHaU1yVkVKWnZMMzdNcGxGV2hwWnpOaW0zeGxxcGpseFVDQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFVM1lDZU9aR21lNklTdTRtSzY3RmpGTkoyc2Q2M0g4MTdEUHFCdlNDeUtWRVdrY1lrUzZweE1VUys2azFCWDAxT1dCWVhxbE5kVENBQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZMR0Fuam1ScG5taXFvdFBxdm5Bc3oySkxxL2F0Ny96cDlNRGdLQmNqQ284OHhVdXBNNmFjVHRnUGFRb0JBQ0g1QkFVRUFCMEFMQUFBQUFBWUFCZ0FBQVVqWUNlT1pHbWVhS3F1Yk91K2NMeFNjbTNmZUk3VGV0L3p2cUJ3eUFLV2pDOGtNUVFBT3c9PSkgbm8tcmVwZWF0IHNjcm9sbCBjZW50ZXIgY2VudGVyO1xufVxuLm14LXRvb2x0aXAtY29udGVudCAudGFibGUgdGgsXG4ubXgtdG9vbHRpcC1jb250ZW50IC50YWJsZSB0ZCB7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbn1cbiIsIi5teC10YWJjb250YWluZXItcGFuZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLm14LXRhYmNvbnRhaW5lci1jb250ZW50LmxvYWRpbmcge1xuICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaE5nQTJBUE1BQVAvLy93QUFBSGg0ZUJ3Y0hBNE9EdGpZMkZSVVZOemMzTVRFeEVoSVNJcUtpZ0FBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQWtLQUFBQUlmNGFRM0psWVhSbFpDQjNhWFJvSUdGcVlYaHNiMkZrTG1sdVptOEFJZjhMVGtWVVUwTkJVRVV5TGpBREFRQUFBQ3dBQUFBQU5nQTJBQUFFeXhESVNhdTlPT3ZOdS85Z0tJNWt5U0VKUVNTSTZVcUtLaFBLV3lMejNOcGltcXNKbnVnM0U0YUlNaVBJOXdzcVBUamlUbGt3cUF3RlRDeFhleFlHczBIMmdnSk9MWUxCUURDeTVnd213WXg5SkpyQXNzSFFYc0tyOUNGdU0zQWxjakowSUFkK0JBTUhMbWxySkFkdUJvNVBsNWlabXB1Y25aNmZjV3FJbUpDamFIT1poaXFtRkl1QWw2NFpzWml6RjZvRXJFSzN1Uk9sbTc2Z3djTER4TVhHeDhYQWo2SWt1NCtvSXJVazBoL1UwV0Vqem5IUUlzcWhrY2pCM3NuY3hkYkM1K0xseWN6aDdrOFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRNRU1oSnE3MDQ2ODI3LzJBb2ptUnBubVZoRUlSUm9HY3hzT3p3d3VSS3N3Wk83anZmQ0VnVGluUzduaEYwbU5FR2h3c2l3VW9nbHBTRHpoQzFLSWlLa1dBd0VKZ1FSTllWSk5pWlNkUjBJdVNzbGRKRlVKMHd1T01KSVcwMGJ5TnhSSE9CWklRamFHbHJXQnhmUUdHUUhsTlZqNVdhbTV5ZG5wOUxZMldib29zV2dpeW1RcWdFcWhON2ZaQ3dHYk95TzdFWHJLNDR1aHFscElxZ3dzUEV4Y2JIeU1lL0tNc2l2U2JQZExjbnRkSlAxTlBPYmlmUmlhUE13Y25DemNyYnlOWEc2TVhkeHVUaTd6NFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRPRU1oSnE3MDQ2ODI3LzJBb2ptUnBubWlxQXNJd0NLc3BFRFFCeCtOUUV3T2U3ejFmYUZhN0NVR3QxMUZZTU5BTUJWTFNTQ3JvYW9Qb2NFY1ZPWGNFZytoS0M1TEF0VEhRaEthSmlMUnU2THNUdjEzeTBJSE1PeXc5QjE4R2ZuK0Zob2VJaVlvWkNBazBDUWlMRmdwb0NobFRSd2h0QkpFV2NEWkNqbTBKRjN4bU1adHVGcVpDcVFRWG4za29vbWlrc0hpWm01MlNBSlJnbHJ3VGpZKzd3Y2JIeU1uS0U1Z296VzljSjdFL1dDZXNhdFVtMTF0RjB0RWp6eks0eTRuaHh0UEkyOGJxd2VqSTV1VHhKaEVBSWZrRUNRb0FBQUFzQUFBQUFEWUFOZ0FBQk1zUXlFbXJ2VGpyemJ2L1lDaU9aR21lYUtvQ3dqQUlxeWtRTkFISDQxQVRBNTd2UFY5b1Zyc0pRYTNYY1lsS0dtV3VKM0luRlJGcDFZNnVGaXh0YVYzUWwzY2FoejlYMnltZDdUaFRiNlo4VHEvYjcvaTh2R0NnR1FvYWNVSUZab0FYYkVkOU93UUdHR1pIaXpXT1FKQ1JCQmlJUW9vN2paaFJTd2RtQjNvVUI0b0dvNlNxcTZ5dE1RZ0pOQWtJckFxUkNpT0NJd2lXQkxSVFJTV3hsZ2toanlTOU5NYVV5TWxEVk1LOXhVT2ZKYnlXdjNxMmk3aEx1aFd3c3RsQ21hdkg1c3lyNWVyVnJ1NDRFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWlaY2dVR05BWUZKSk1pQldhZ1E0TWxuVHNFQmlLTElxczFya0Ftc1RSV3FDU3FPNjFXa1JrSUNUUUpDQmNIWmdkSENyRUt4cW9HeVVJSXRnVEZlc0syQ1h2VXQzcmNCSHZZc2RwNjA3Yldlc3VyelpYQncrZ2lFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWdTQ0FrMENRaVdDanMwQ3BRSW9qV2ZKWk1kbktjRUNhcURJSzQxWGtBaHREUzJYQ0d0cDdBa2p4Nm1ycW5Ca1NLaG9xUVhCUVkwQmdWTG01M0dGUVZtMHBUUG9nYVZ0Tit1bGR3NzNwUUhaZ2VXQjl3RzZwa29FUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2dktVU0Nsa0RnTFFvN05BcC9Fd2lDTlg1Q2NSWjdpQVFKaTFRWGp6VkNacFNWQkpkQUY0NklrVDVzRjRlUGlxSlJHWUdDaElXR2puMnVzck8wdFhZRkJqUUdCYlFGWnJ4UVNpSzVnZ1l5a3lHVkpwakpqOHVkSWNRN3hpV2pJUWRtQjJ1cEl3ZkVCdHEySG95ejFyUE01OURseUxUazR1OHBFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3a1JDVm9Db1dtOWhCTEZqcWFBZGhEVEdyUGtOSDZTV1VLQ3UvTjJ3cldTcmhiOG9HbHFZQWljSFpPSU5ETUhHOTdlWFhvZFVsTlZWbGRnUzRhS2k0eU5qbzhGQmpRR0JZOFhCV3MwQTVWUVhSbVNVd2FkWlJob1VKazhwV0duY2hlZ082SkNlRFlZQjZnREIxYWVHUWVnQnJtV3djTER4TVhHeDF5QUtic2lzNEVnemo5c0o3ZlNtdFN0UTZReTI4M0tLTXpJamVIRTBjYlY1OW5sM2NYazR1OG9FUUE3KSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDMycHggMzJweDtcbn1cbi5teC10YWJjb250YWluZXItdGFicyB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLm14LXRhYmNvbnRhaW5lci10YWJzIGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubXgtdGFiY29udGFpbmVyLWluZGljYXRvciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6ICNmMmRlZGU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGNvbG9yOiAjYjk0YTQ4O1xuICAgIHRvcDogMHB4O1xuICAgIHJpZ2h0OiAtNXB4O1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB6LWluZGV4OiAxOyAvKiBpbmRpY2F0b3Igc2hvdWxkIG5vdCBoaWRlIGJlaGluZCBvdGhlciB0YWIgKi9cbn1cbiIsIi8qIGJhc2Ugc3RydWN0dXJlICovXG4ubXgtZ3JpZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IC8qIHRvIHByZXZlbnQgYW55IG1hcmdpbiBmcm9tIGVzY2FwaW5nIGdyaWQgYW5kIGZvb2JhcmluZyBvdXIgc2l6ZSBjYWxjdWxhdGlvbnMgKi9cbn1cbi5teC1ncmlkLWNvbnRyb2xiYXIsIC5teC1ncmlkLXNlYXJjaGJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uLFxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIC5teC1idXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIC5teC1idXR0b24gKyAubXgtYnV0dG9uLFxuLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uICsgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xufVxuXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXNlYXJjaC1jb250cm9scyAubXgtYnV0dG9uICsgLm14LWJ1dHRvbixcbltkaXI9XCJydGxcIl0gLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uICsgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjNlbTtcbn1cblxuLm14LWdyaWQtcGFnaW5nYmFyLFxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4ubXgtZ3JpZC10b29sYmFyLCAubXgtZ3JpZC1zZWFyY2gtaW5wdXRzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBmbGV4OiAxO1xufVxuXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXRvb2xiYXIsXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXNlYXJjaC1pbnB1dHMge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXBhZ2luZ2JhcixcbltkaXI9XCJydGxcIl0gLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIHtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLm14LWdyaWQtcGFnaW5nLXN0YXR1cyB7XG4gICAgcGFkZGluZzogMCA4cHggNXB4O1xufVxuXG4vKiBzZWFyY2ggZmllbGRzICovXG4ubXgtZ3JpZC1zZWFyY2gtaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLm14LWdyaWQtc2VhcmNoLWxhYmVsIHtcbiAgICB3aWR0aDogMTEwcHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbltkaXI9XCJydGxcIl0gLm14LWdyaWQtc2VhcmNoLWxhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LWdyaWQtc2VhcmNoLWlucHV0IHtcbiAgICB3aWR0aDogMTUwcHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4ubXgtZ3JpZC1zZWFyY2gtbWVzc2FnZSB7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbn1cblxuLyogd2lkZ2V0IGNvbWJpbmF0aW9ucyAqL1xuLm14LWRhdGF2aWV3IC5teC1ncmlkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbiIsIi5teC1jYWxlbmRhciB7XG4gICAgei1pbmRleDogMTAwMDtcbn1cblxuLm14LWNhbGVuZGFyLW1vbnRoLWRyb3Bkb3duLW9wdGlvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLm14LWNhbGVuZGFyLCAubXgtY2FsZW5kYXItbW9udGgtZHJvcGRvd24ge1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ubXgtY2FsZW5kYXItbW9udGgtY3VycmVudCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ubXgtY2FsZW5kYXItbW9udGgtc3BhY2VyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5teC1jYWxlbmRhciwgLm14LWNhbGVuZGFyLW1vbnRoLWRyb3Bkb3duLW9wdGlvbnMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JleTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbiIsIi5teC1kYXRhZ3JpZCB0ciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXgtZGF0YWdyaWQgdHIubXgtZGF0YWdyaWQtcm93LWVtcHR5IHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5teC1kYXRhZ3JpZCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm14LWRhdGFncmlkIHRoLCAubXgtZGF0YWdyaWQgdGQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG5cbi8qIGhlYWQgKi9cbi5teC1kYXRhZ3JpZCB0aCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBSZXF1aXJlZCBmb3IgdGhlIHBvc2l0aW9uaW5nIG9mIHRoZSBjb2x1bW4gcmVzaXplcnMgKi9cbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG59XG4ubXgtZGF0YWdyaWQtaGVhZC1jYXB0aW9uIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubXgtZGF0YWdyaWQtc29ydC1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kYXRhZ3JpZC1zb3J0LWljb24ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmc6IDAgNXB4IDAgMDtcbn1cbi5teC1kYXRhZ3JpZC1jb2x1bW4tcmVzaXplciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAtNnB4O1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kYXRhZ3JpZC1jb2x1bW4tcmVzaXplciB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogLTZweDtcbn1cblxuLyogYm9keSAqL1xuLm14LWRhdGFncmlkIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICBib3JkZXItdG9wOiBub25lO1xufVxuLm14LWRhdGFncmlkIHRib2R5IHRyOm50aC1jaGlsZCgybisxKSB0ZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbn1cbi5teC1kYXRhZ3JpZCB0Ym9keSAuc2VsZWN0ZWQgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG59XG4ubXgtZGF0YWdyaWQtZGF0YS13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubXgtZGF0YWdyaWQgdGJvZHkgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE2cHg7XG4gICAgbWF4LWhlaWdodDogMTZweDtcbn1cbi5teC1kYXRhZ3JpZCBpbnB1dCxcbi5teC1kYXRhZ3JpZCBzZWxlY3QsXG4ubXgtZGF0YWdyaWQgdGV4dGFyZWEge1xuICAgIGN1cnNvcjogYXV0bztcbn1cblxuLyogZm9vdCAqL1xuLm14LWRhdGFncmlkIHRmb290IHRoLFxuLm14LWRhdGFncmlkIHRmb290IHRkIHtcbiAgICBwYWRkaW5nOiAzcHggOHB4O1xufVxuLm14LWRhdGFncmlkIHRmb290IHRoIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbn1cbi5teC1kYXRhZ3JpZC5teC1jb250ZW50LWxvYWRpbmcgLm14LWNvbnRlbnQtbG9hZGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBhbmltYXRpb246IHBsYWNlaG9sZGVyR3JhZGllbnQgMXMgbGluZWFyIGluZmluaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAjRjVGNUY1O1xuICAgIGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGNUY1RjUgMCUsICNGNUY1RjUgNSUsICNGOUY5RjkgNTAlLCAjRjVGNUY1IDk1JSwgI0Y1RjVGNSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMHB4IDEwMHB4O1xuICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG59XG5Aa2V5ZnJhbWVzIHBsYWNlaG9sZGVyR3JhZGllbnQge1xuICAgIDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwcHggMDsgfVxuICAgIDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTAwcHggMDsgfVxufVxuXG4ubXgtZGF0YWdyaWQtdGFibGUtcmVzaXppbmcgdGgsXG4ubXgtZGF0YWdyaWQtdGFibGUtcmVzaXppbmcgdGQge1xuICAgIGN1cnNvcjogY29sLXJlc2l6ZSAhaW1wb3J0YW50O1xufVxuIiwiLm14LXRlbXBsYXRlZ3JpZC1jb250ZW50LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5teC10ZW1wbGF0ZWdyaWQtcm93IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG59XG4ubXgtdGVtcGxhdGVncmlkLWl0ZW0ge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubXgtdGVtcGxhdGVncmlkLWVtcHR5IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuLm14LXRlbXBsYXRlZ3JpZC1pdGVtLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuLm14LXRlbXBsYXRlZ3JpZC1pdGVtIC5teC10YWJsZSB0aCxcbi5teC10ZW1wbGF0ZWdyaWQtaXRlbSAubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG59XG4iLCIubXgtc2Nyb2xsY29udGFpbmVyLWhvcml6b250YWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG4ubXgtc2Nyb2xsY29udGFpbmVyLWhvcml6b250YWwgPiBkaXYge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItd3JhcHBlciB7XG4gICAgcGFkZGluZzogMTBweDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItbmVzdGVkIHtcbiAgICBwYWRkaW5nOiAwO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1maXhlZCA+IC5teC1zY3JvbGxjb250YWluZXItbWlkZGxlID4gLm14LXNjcm9sbGNvbnRhaW5lci13cmFwcGVyLFxuLm14LXNjcm9sbGNvbnRhaW5lci1maXhlZCA+IC5teC1zY3JvbGxjb250YWluZXItbGVmdCA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcixcbi5teC1zY3JvbGxjb250YWluZXItZml4ZWQgPiAubXgtc2Nyb2xsY29udGFpbmVyLWNlbnRlciA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcixcbi5teC1zY3JvbGxjb250YWluZXItZml4ZWQgPiAubXgtc2Nyb2xsY29udGFpbmVyLXJpZ2h0ID4gLm14LXNjcm9sbGNvbnRhaW5lci13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLm14LXNjcm9sbGNvbnRhaW5lci1tb3ZlLWluIHtcbiAgICB0cmFuc2l0aW9uOiBsZWZ0IDI1MG1zIGVhc2Utb3V0O1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1tb3ZlLW91dCB7XG4gICAgdHJhbnNpdGlvbjogbGVmdCAyNTBtcyBlYXNlLWluO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zaHJpbmsgLm14LXNjcm9sbGNvbnRhaW5lci10b2dnbGVhYmxlIHtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB3aWR0aDtcbn1cblxuLm14LXNjcm9sbGNvbnRhaW5lci10b2dnbGVhYmxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zbGlkZSA+IC5teC1zY3JvbGxjb250YWluZXItdG9nZ2xlYWJsZSA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItcHVzaCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zaHJpbmsgPiAubXgtc2Nyb2xsY29udGFpbmVyLXRvZ2dsZWFibGUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubXgtc2Nyb2xsY29udGFpbmVyLXB1c2gubXgtc2Nyb2xsY29udGFpbmVyLW9wZW4gPiBkaXYsXG4ubXgtc2Nyb2xsY29udGFpbmVyLXNsaWRlLm14LXNjcm9sbGNvbnRhaW5lci1vcGVuID4gZGl2IHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5teC1zY3JvbGxjb250YWluZXItcHVzaC5teC1zY3JvbGxjb250YWluZXItb3BlbiA+IC5teC1zY3JvbGxjb250YWluZXItdG9nZ2xlYWJsZSxcbi5teC1zY3JvbGxjb250YWluZXItc2xpZGUubXgtc2Nyb2xsY29udGFpbmVyLW9wZW4gPiAubXgtc2Nyb2xsY29udGFpbmVyLXRvZ2dsZWFibGUge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuIiwiLm14LW5hdmJhci1pdGVtIGltZyxcbi5teC1uYXZiYXItc3ViaXRlbSBpbWcge1xuICAgIGhlaWdodDogMTZweDtcbn1cblxuIiwiLm14LW5hdmlnYXRpb250cmVlIC5uYXZiYXItaW5uZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RmZTZlYTtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSBsaTpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgY29sb3I6ICM3Nzc7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgYS5hY3RpdmUge1xuICAgIGNvbG9yOiAjRkZGO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQ6ICMzNDk4REI7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLm14LW5hdmlnYXRpb250cmVlIC5teC1uYXZpZ2F0aW9udHJlZS1jb2xsYXBzZWQgdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHtcbiAgICBwYWRkaW5nOiA1cHggMDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB7XG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICBwYWRkaW5nOiA1cHggMDtcbn1cbltkaXI9XCJydGxcIl0gLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHVsIGxpIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB1bCBsaSB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIHBhZGRpbmctdG9wOiAzcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB1bCBsaSBpbWcge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4iLCIubXgtbGluayBpbWcsXG4ubXgtYnV0dG9uIGltZyB7XG4gICAgaGVpZ2h0OiAxNnB4O1xufVxuLm14LWxpbmsge1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiIsIi5teC1ncm91cGJveCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5teC1ncm91cGJveC1oZWFkZXIge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gICAgY29sb3I6ICNlZWU7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG59XG4ubXgtZ3JvdXBib3gtY29sbGFwc2libGUgPiAubXgtZ3JvdXBib3gtaGVhZGVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZ3JvdXBib3guY29sbGFwc2VkID4gLm14LWdyb3VwYm94LWhlYWRlciB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLm14LWdyb3VwYm94LWJvZHkge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5teC1ncm91cGJveC5jb2xsYXBzZWQgPiAubXgtZ3JvdXBib3gtYm9keSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5teC1ncm91cGJveC1oZWFkZXIgKyAubXgtZ3JvdXBib3gtYm9keSB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgNHB4IDRweDtcbn1cbi5teC1ncm91cGJveC1jb2xsYXBzZS1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5bZGlyPVwicnRsXCJdIC5teC1ncm91cGJveC1jb2xsYXBzZS1pY29uIHtcbiAgICBmbG9hdDogbGVmdDtcbn1cbiIsIi5teC1kYXRhdmlldyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm14LWRhdGF2aWV3LWNvbnRyb2xzIHtcbiAgICBwYWRkaW5nOiAxOXB4IDIwcHggMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlO1xufVxuXG4ubXgtZGF0YXZpZXctY29udHJvbHMgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4ubXgtZGF0YXZpZXctY29udHJvbHMgLm14LWJ1dHRvbiArIC5teC1idXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjNlbTtcbn1cblxuLm14LWRhdGF2aWV3LW1lc3NhZ2Uge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbn1cbi5teC1kYXRhdmlldy1tZXNzYWdlID4gZGl2IHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4ubXgtZGF0YXZpZXctbWVzc2FnZSA+IGRpdiA+IHAge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qIFRvcC1sZXZlbCBkYXRhIHZpZXcgaW4gd2luZG93IGlzIGEgc3BlY2lhbCBjYXNlLCBoYW5kbGUgaXQgYXMgc3VjaC4gKi9cbi5teC13aW5kb3ctdmlldyAubXgtd2luZG93LWJvZHkge1xuICAgIHBhZGRpbmc6IDA7XG59XG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRlbnQsXG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LXBsYWNlaG9sZGVyID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDE1cHg7XG59XG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRyb2xzLFxuLm14LXdpbmRvdy12aWV3IC5teC13aW5kb3ctYm9keSA+IC5teC1wbGFjZWhvbGRlciA+IC5teC1kYXRhdmlldyA+IC5teC1kYXRhdmlldy1jb250cm9scyB7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4IDBweCA2cHggNnB4O1xufVxuIiwiLm14LWRpYWxvZyB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogNTAwcHg7XG4gICAgLyogSWYgdGhlIG1hcmdpbiBpcyBzZXQgdG8gYXV0bywgSUU5IHJlcG9ydHMgdGhlIGNhbGN1bGF0ZWQgdmFsdWUgb2YgdGhlXG4gICAgICogbWFyZ2luIGFzIHRoZSBhY3R1YWwgdmFsdWUuIE90aGVyIGJyb3dzZXJzIHdpbGwganVzdCByZXBvcnQgMC4gRWxpbWluYXRlXG4gICAgICogdGhpcyBkaWZmZXJlbmNlIGJ5IHNldHRpbmcgbWFyZ2luIHRvIDAgZm9yIGV2ZXJ5IGJyb3dzZXIuICovXG4gICAgbWFyZ2luOiAwO1xufVxuLm14LWRpYWxvZy1oZWFkZXIge1xuICAgIGN1cnNvcjogbW92ZTtcbn1cbi5teC1kaWFsb2ctYm9keSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG4iLCIubXgtd2luZG93IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiA2MDBweDtcbiAgICAvKiBJZiB0aGUgbWFyZ2luIGlzIHNldCB0byBhdXRvLCBJRTkgcmVwb3J0cyB0aGUgY2FsY3VsYXRlZCB2YWx1ZSBvZiB0aGVcbiAgICAgKiBtYXJnaW4gYXMgdGhlIGFjdHVhbCB2YWx1ZS4gT3RoZXIgYnJvd3NlcnMgd2lsbCBqdXN0IHJlcG9ydCAwLiBFbGltaW5hdGVcbiAgICAgKiB0aGlzIGRpZmZlcmVuY2UgYnkgc2V0dGluZyBtYXJnaW4gdG8gMCBmb3IgZXZlcnkgYnJvd3Nlci4gKi9cbiAgICBtYXJnaW46IDA7XG59XG4ubXgtd2luZG93LWNvbnRlbnQge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm14LXdpbmRvdy1hY3RpdmUgLm14LXdpbmRvdy1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4IDZweCAwIDA7XG59XG4ubXgtd2luZG93LWhlYWRlciB7XG4gICAgY3Vyc29yOiBtb3ZlO1xufVxuLm14LXdpbmRvdy1ib2R5IHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cbiIsIi5teC1kcm9wZG93bi1saXN0ICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1kcm9wZG93bi1saXN0IGltZyB7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kcm9wZG93bi1saXN0IGltZyB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4ubXgtZHJvcGRvd24tbGlzdCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LWRyb3Bkb3duLWxpc3QgPiBsaSB7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMTBweDtcbiAgICBib3JkZXI6IDFweCAjZGRkO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm14LWRyb3Bkb3duLWxpc3QgPiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4ubXgtZHJvcGRvd24tbGlzdCA+IGxpOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xufVxuLm14LWRyb3Bkb3duLWxpc3Qtc3RyaXBlZCA+IGxpOm50aC1jaGlsZCgybisxKSB7XG4gICAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbn1cbi5teC1kcm9wZG93bi1saXN0ID4gbGk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG59XG4iLCIubXgtaGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIGJhY2tncm91bmQ6ICMzMzM7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLm14LWhlYWRlci1jZW50ZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogI2VlZTtcbiAgICBsaW5lLWhlaWdodDogMzBweDsgLyogaGVpZ2h0IG9mIGJ1dHRvbnMgKi9cbn1cbmJvZHlbZGlyPVwibHRyXCJdIC5teC1oZWFkZXItbGVmdCxcbmJvZHlbZGlyPVwicnRsXCJdIC5teC1oZWFkZXItcmlnaHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDlweDtcbiAgICBsZWZ0OiA5cHg7XG59XG5ib2R5W2Rpcj1cImx0clwiXSAubXgtaGVhZGVyLXJpZ2h0LFxuYm9keVtkaXI9XCJydGxcIl0gLm14LWhlYWRlci1sZWZ0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA5cHg7XG4gICAgcmlnaHQ6IDlweDtcbn1cbiIsIi5teC10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIG1hcmdpbi10b3A6IDBweDtcbn1cbiIsIi5teC1saXN0dmlldyB7XG4gICAgcGFkZGluZzogOHB4O1xufVxuLm14LWxpc3R2aWV3ID4gdWwge1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LWxpc3R2aWV3ID4gdWwgPiBsaSB7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMTBweDtcbiAgICBib3JkZXI6IDFweCAjZGRkO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG4ubXgtbGlzdHZpZXcgPiB1bCA+IGxpOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbn1cbi5teC1saXN0dmlldyA+IHVsID4gbGk6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4ubXgtbGlzdHZpZXcgbGk6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xufVxuLm14LWxpc3R2aWV3IGxpOm50aC1jaGlsZCgybisxKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbn1cbi5teC1saXN0dmlldyA+IHVsID4gbGkuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICNlZWU7XG59XG4ubXgtbGlzdHZpZXctY2xpY2thYmxlIHVsICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1saXN0dmlldy1lbXB0eSB7XG4gICAgY29sb3I6ICM5OTk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLm14LWxpc3R2aWV3IC5teC1saXN0dmlldy1sb2FkaW5nIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5teC1saXN0dmlldy1zZWFyY2hiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5teC1saXN0dmlldy1zZWFyY2hiYXIgPiBpbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtbGlzdHZpZXctc2VhcmNoYmFyID4gYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xufVxuW2Rpcj1cInJ0bFwiXSAubXgtbGlzdHZpZXctc2VhcmNoYmFyID4gYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5teC1saXN0dmlldy1zZWxlY3Rpb24ge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBwYWRkaW5nOiAwIDE1cHggMCA1cHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1saXN0dmlldy1zZWxlY3Rpb24ge1xuICAgIHBhZGRpbmc6IDAgNXB4IDAgMTVweDtcbn1cbi5teC1saXN0dmlldy1zZWxlY3RhYmxlIC5teC1saXN0dmlldy1jb250ZW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtbGlzdHZpZXcgLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZGVmO1xufVxuLm14LWxpc3R2aWV3IC5teC10YWJsZSB0aCxcbi5teC1saXN0dmlldyAubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDJweDtcbn1cbiIsIi5teC1sb2dpbiAuZm9ybS1jb250cm9sIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuIiwiLm14LW1lbnViYXIge1xuICAgIHBhZGRpbmc6IDhweDtcbn1cbi5teC1tZW51YmFyLWljb24ge1xuICAgIGhlaWdodDogMTZweDtcbn1cbi5teC1tZW51YmFyLW1vcmUtaWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDTUFBQUFqQ0FZQUFBQWUyYk5aQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFLTkpSRUZVZU5waS9QLy9QOE5nQVV3TWd3aU1PbWJVTWFPT0dYWE1xR05HSFRQWUhNT0NUZkRzMmJNZVFLb09pSTFCWENCdU1qWTIza0ZyZFl6b1RRaWdSbThndFFXTEcwT0JCcXlobFRwYzBkU09JeFRyYUt3T3EyUFVjV2hXcDdFNnJJNjVpVVB6VFJxcncrcVlHaHlhbTJpc0R0TXh3RVMxQ1VnRkFmRnhxQkNJRGtKUGJOUldoelUzalJaNm80NFpkY3lvWTBZZE0rcVlVY2NNVXNjQUJCZ0FVWHBFakUvQnMvSUFBQUFBU1VWT1JLNUNZSUk9KSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuIiwiLm14LW5hdmlnYXRpb25saXN0IHtcbiAgICBwYWRkaW5nOiA4cHg7XG59XG4ubXgtbmF2aWdhdGlvbmxpc3QgbGk6aG92ZXIsXG4ubXgtbmF2aWdhdGlvbmxpc3QgbGk6Zm9jdXMsXG4ubXgtbmF2aWdhdGlvbmxpc3QgbGkuYWN0aXZlIHtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OERCO1xufVxuLm14LW5hdmlnYXRpb25saXN0ICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1uYXZpZ2F0aW9ubGlzdCAudGFibGUgdGgsXG4ubXgtbmF2aWdhdGlvbmxpc3QgLnRhYmxlIHRkIHtcbiAgICBwYWRkaW5nOiAycHg7XG59XG4iLCIubXgtcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDMwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICB3aWR0aDogMjUwcHg7XG4gICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBvcGFjaXR5OiAwLjg7XG4gICAgei1pbmRleDogNTAwMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgcGFkZGluZzogMjBweCAxNXB4O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLWluLW91dDtcbn1cbi5teC1wcm9ncmVzcy1oaWRkZW4ge1xuICAgIG9wYWNpdHk6IDA7XG59XG4ubXgtcHJvZ3Jlc3MtbWVzc2FnZSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG4ubXgtcHJvZ3Jlc3MtZW1wdHkgLm14LXByb2dyZXNzLW1lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ubXgtcHJvZ3Jlc3MtaW5kaWNhdG9yIHtcbiAgICB3aWR0aDogNzBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhSZ0FLQU1RQUFEbzZPb0dCZ1ZwYVduQndjSTZPanF5c3JGSlNVbVJrWkQ4L1AweE1UTTdPenFlbnAxaFlXRjFkWFVoSVNISnljb2VIaDB0TFMxZFhWNmlvcU0vUHoyVmxaVDA5UFRjM04wQkFRSVdGaGRiVzFseGNYSzJ0clVGQlFUTXpNd0FBQUNIL0MwNUZWRk5EUVZCRk1pNHdBd0VBQUFBaCtRUUVEQUFBQUN3QUFBQUFSZ0FLQUFBRms2RG5YUmFHV1plb3JxU0pybkI3cHJBcXY3VjQweDdRL1VCQXpnZjhDV3ZFNGhHV0RBNkx4aEVVeU5OTmYxWHBOWHU1ZHJoZWt0Y0NzNHpMNTVYNVNsYVBNVjRNREg2VnIraFR1d29QMVl2NFJTWnhjNE4zaFh1SGYzRnJVMjBxakZDT0lwQkZraDZVUUphWVB5aGhNWjRzb0RhaVZsczlVMHNyVFZGSXFFOVFxU3FySFVzN09Ub2xNN2NqdVRnNXRyZkFJUUFoK1FRRURBQUFBQ3dBQUFBQUNnQUtBQUFGSktEbkhZV2lGSWZvUVZyclFxTXJhK1RzbG5acjV0ckpvN3dVYXdZVFZRb1VDa29VQWdBaCtRUUVEQUFBQUN3QUFBQUFHUUFLQUFBRldhRG5NY1N5RUpLb3JrZWhLTVdoUGx4dFA2c0thWHdQZVJLYmtNUElIWHBJellFd3RCRnloV1N2c0dqV0ZqbUZsS2VvV3JFcjdWYkJ0RDVYMFcyQllTVWF0MG9QYllqTGVYYkpuNGcwbVJDS2RpSVZCUlFVTVNJaEFDSDVCQVFNQUFBQUxBQUFBQUFvQUFvQUFBV0tvT2NsUXhBTWthaXVETEVzaExUT1I2RW94YUUyV2U4M005R0RReXcrZ2g2SVpzbUVlQ0srYUNZeGt4U3ZIQWFOeWRVY0JsTGZZRWJBRmdtelFwZFpDSVI3Z2RuQ1RGek1GT3Vsd3YyT3IrWjBkaXQ0ZVFwZ2IyTXJaWFJvSzJwNUJRbHZVek1NZEZsYmVUbzhVa0JCUTFoSFFVcGRUaUlrSmdOVVNCNHRFeE1FV3F3VkJSUVVPU0loQUNINUJBUU1BQUFBTEFBQUFBQTNBQW9BQUFXOG9PY2hoaUFZaUtpdXlSQUVRN1RPRExFc2hEU3ZSNkVvaFlQS3NTa2FIVHRQSThOc05wSVBqblQ2U0VJMDJDeGtaT3h1VXF0SWM1eEp6Q1RUTkljeE8yVGZtb1BCYXpUTUJ1VG1ZRVpRVHdrekJYQlpCUUowUlFJekFYbE1BVE1MZmxJTE13cURXQXFHaDRrcmk0eU9LNUNSa3l1VmxncHpoM1lyZUl4N0szMlJnQ3VDbGdVSWgxOHpDWXhsTkpGcmJaWnhIa1JlU0R0TFpFODdVV3BWTzFkd1d5SVlKU2RnU1MwdkEyWkpIalVURXdSczNoVUZGQlJCSWlFQUlma0VCQXdBQUFBc0FBQUFBRVlBQ2dBQUJmQ2c1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkROSzhNc1N3RXlVNTFLQ2dVaFlNSzBHazZBVVBIWmtwMURCdVpyTFl4ZkhDKzRNY1FvaW1iSVNPbnVwTmlVZDhiMlNxaXJXY1NNd2w0ejJITURtYUJHZ2NXYTA0V013WndWQVl6QTNaYUF6TUVmR0FFTXdXQ1pnVVloazBZTXdLTFV3SXpBWkJaQVRNTGxWOExNd3FhWlFxZG5xQXJvcU9sSzZlb3FpdXNyYThyc2JJS2haNklLNHFqalN1UHFKSXJsSzJYSzVteUJSZWViRE1JbzNFMHFIY3pESzE5ZjdLREhreHJVRHRTY0ZZN1dIWmNPMTU4WWp0a2dtZ2lKRXlnR0NJQ2d3c1ljb2JVdURFQUQ4RWVFeVlROEVPd1FnRUtGSktJQ0FFQUlma0VCQXdBQUFBc0R3QUFBRGNBQ2dBQUJicWc1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkROSzhNc1N3RWlRclFLUm9CTzQ5ancydzZrbzJNZE5wSVBqalk3R05rN0haU3JLWjRJMXRGcHVoTVlpYkp1amtNaTlkb21SbkdUY05za0o0T1pnUnZXUVFZYzBVWU13SjRUQUl6QVgxU0FUTUxnbGdMaFlhSUs0cUxqU3VQa0pJcmxKVUxjb1oxSzNlTGVpdDhrSDhyZ1pVRUY0WmZNd2lMWkRTUWFqTU1sWEFlUkY1SU8wdGpUenRSYVZVN1YyOWJJaVFtS0VraUdDNHdaVWsxTndOcjJEMFRFd1FNSWlFQUlma0VCQXdBQUFBc0hnQUFBQ2dBQ2dBQUJZZWc1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkRwQUpkN3dNemtXTkRMRHFDbmtabXlXeU1mTkJPaWxXc2JtU3JDSE9iU1ZpaVBzdk1ZQzBhWmdNdWM0QUI5ekF6UVprb21BWFV5MERiRFYvSjUzVXJkM2dCWDI1aUsyUnpaeXRwZUFNWGJsSXpDSE5YTkhoZEhqeFJRRUZEVmtkQlNseE9JaVFtS0VnaUdDNHdXRWcxTndNSklpRUFJZmtFQkF3QUFBQXNMUUFBQUJrQUNnQUFCVldnNTEwV2hsbVhxSzZJSVFnR29nSmRiUU9yNm14ODc0eTJZQ2ZGNmhrM0NJdlFac2taamowRFpsbkQ1QVJRbm1CS3RhNndXWUdTMmx3OXM0WUxkWmhEWkpFZW1oQ1g4K3lPUHhISmhLcXJNQzR3TWg0aEFDSDVCQVFNQUFBQUxEd0FBQUFLQUFvQUFBVWlvT2RkRm9aWmwrZ0JYZXNDb3l0MzVPeVdkbXZtM2NtanZCUnJCaE9SVENoUkNBQTcpO1xufVxuIiwiLm14LXJlbG9hZC1ub3RpZmljYXRpb24ge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAxMDAxO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuXG4gICAgYm9yZGVyOiAxcHggc29saWQgaHNsKDIwMCwgOTYlLCA0MSUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgyMDAsIDk2JSwgNDQlKTtcblxuICAgIGJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgxLCAzNywgNTUsIDAuMTYpO1xuICAgIGNvbG9yOiB3aGl0ZTtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG4iLCIubXgtcmVzaXplci1uLFxuLm14LXJlc2l6ZXItcyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMHB4O1xufVxuLm14LXJlc2l6ZXItbiB7XG4gICAgdG9wOiAtNXB4O1xuICAgIGN1cnNvcjogbi1yZXNpemU7XG59XG4ubXgtcmVzaXplci1zIHtcbiAgICBib3R0b206IC01cHg7XG4gICAgY3Vyc29yOiBzLXJlc2l6ZTtcbn1cblxuLm14LXJlc2l6ZXItZSxcbi5teC1yZXNpemVyLXcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLm14LXJlc2l6ZXItZSB7XG4gICAgcmlnaHQ6IC01cHg7XG4gICAgY3Vyc29yOiBlLXJlc2l6ZTtcbn1cbi5teC1yZXNpemVyLXcge1xuICAgIGxlZnQ6IC01cHg7XG4gICAgY3Vyc29yOiB3LXJlc2l6ZTtcbn1cblxuLm14LXJlc2l6ZXItbncsXG4ubXgtcmVzaXplci1uZSxcbi5teC1yZXNpemVyLXN3LFxuLm14LXJlc2l6ZXItc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5teC1yZXNpemVyLW53LFxuLm14LXJlc2l6ZXItbmUge1xuICAgIHRvcDogLTVweDtcbn1cbi5teC1yZXNpemVyLXN3LFxuLm14LXJlc2l6ZXItc2Uge1xuICAgIGJvdHRvbTogLTVweDtcbn1cbi5teC1yZXNpemVyLW53LFxuLm14LXJlc2l6ZXItc3cge1xuICAgIGxlZnQ6IC01cHg7XG59XG4ubXgtcmVzaXplci1uZSxcbi5teC1yZXNpemVyLXNlIHtcbiAgICByaWdodDogLTVweDtcbn1cblxuLm14LXJlc2l6ZXItbncge1xuICAgIGN1cnNvcjogbnctcmVzaXplO1xufVxuLm14LXJlc2l6ZXItbmUge1xuICAgIGN1cnNvcjogbmUtcmVzaXplO1xufVxuLm14LXJlc2l6ZXItc3cge1xuICAgIGN1cnNvcjogc3ctcmVzaXplO1xufVxuLm14LXJlc2l6ZXItc2Uge1xuICAgIGN1cnNvcjogc2UtcmVzaXplO1xufVxuIiwiLm14LXRleHQge1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbn1cbiIsIi5teC10ZXh0YXJlYSB0ZXh0YXJlYSB7XG4gICAgcmVzaXplOiBub25lO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cbi5teC10ZXh0YXJlYSAubXgtdGV4dGFyZWEtbm9yZXNpemUge1xuICAgIGhlaWdodDogYXV0bztcbiAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG59XG4ubXgtdGV4dGFyZWEgLm14LXRleHRhcmVhLWNvdW50ZXIge1xuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcbn1cbi5teC10ZXh0YXJlYSAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gICAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xufVxuIiwiLm14LXVuZGVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xufVxuIiwiLm14LWltYWdlem9vbSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5O1xufVxuLm14LWltYWdlem9vbS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLm14LWltYWdlem9vbS1pbWFnZSB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xufVxuIiwiLm14LWRyb3Bkb3duIGxpIHtcbiAgICBwYWRkaW5nOiAzcHggMjBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZHJvcGRvd24gbGFiZWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZHJvcGRvd24gaW5wdXQge1xuICAgIG1hcmdpbjogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1kcm9wZG93biAuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG59XG4ubXgtc2VsZWN0Ym94IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LXNlbGVjdGJveC1jYXJldC13cmFwcGVyIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuIiwiLm14LWRlbW91c2Vyc3dpdGNoZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMzYwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IDIwMDAwO1xuICAgIGJveC1zaGFkb3c6IC0xcHggMCA1cHggcmdiYSgyOCw1OSw4NiwuMik7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlci1jb250ZW50IHtcbiAgICBwYWRkaW5nOiA4MHB4IDQwcHggMjBweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgY29sb3I6ICMzODdlYTI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU9nQUFBQmdDQVlBQUFBWFNqN05BQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlScFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TXkxak1ERXhJRFkyTGpFME5UWTJNU3dnTWpBeE1pOHdNaTh3TmkweE5EbzFOam95TnlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5pQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRG8wTXprd09UUkVNRFEyTkVZeE1VVTBRVFE0TVVJNU5UTkdNVVEzUXpFNU55SWdlRzF3VFUwNlJHOWpkVzFsYm5SSlJEMGllRzF3TG1ScFpEbzBNemt3T1RSRU1UUTJORVl4TVVVMFFUUTRNVUk1TlROR01VUTNRekU1TnlJK0lEeDRiWEJOVFRwRVpYSnBkbVZrUm5KdmJTQnpkRkpsWmpwcGJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qYzBSRU15TVVaR05EWTBRekV4UlRSQk5EZ3hRamsxTTBZeFJEZERNVGszSWlCemRGSmxaanBrYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pjMFJFTXlNakF3TkRZMFF6RXhSVFJCTkRneFFqazFNMFl4UkRkRE1UazNJaTgrSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGlBOEwzSmtaanBTUkVZK0lEd3ZlRHA0YlhCdFpYUmhQaUE4UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrZzF0Umx3QUFFRkZKUkVGVWVOcnNuWWwzVmNVZHgyZHU4ckpESUpDd0NnalZhclZvc1ZYYzZqbldubnBJUWxKV2w2T0NyUFlma2gxY2l1d2xMRm81dFQzbFZKUlZFVVVFUlFRSlM0Q1FRRWpDUzk3MCs1Mlo5M0lUREd1Uzk4ajcvVGp6N3IyL2U5OTlaTzU4N205K003K1owY05YYnNxS2FUTmVLVlZvbEttT0tiWDM5RXNWS2wxRVY2MklLSzN3QjV1SGNZZy8zM3lDNHgybS9FMmpSRVNTTE1HSmw4dXZZcnNIaWR1aFNBK21Vd2FZaWhsUk0zSEdPdXp1Wlg0Zy9SbHBpdDY4TkZ1S2gwalNEWWd4emxBTVc3V3BDQmIwNlJqTmlEWUh6azZ2UEpaMm1iRnArYStKTEN4b0hyYm5vVnB0eW1lZGxXSWlrblJBS1VOWFZRMERvT01BcUlKMlg4MzB5cFBwQitteVFsL2xIWTNES0xaYlRmbnNMNldvaUNRZFVNcmdWVlZqQWVoSWFHTXhaWGFlbi83WGMybVpNWnVYVm1MenFGSTJmL1lCMm85TTJleW9GQm1ScEFKS0tWbTk4UkZvUndCUUZzZ2RnTFErVFNFZEIwQkxzWnNCUUd1d3Y4NlV6VGtqeFVZa3FZQlNpbGR2SEFkQWgyRzNDUloxUisyMFNRM3BDZW1TZ2RpVUFkQlJBTFFGKzl1UWRnTlVhZVVWU1I2Z2xBR3IvL0U0Tm9NQWFBTjgweDExMHlZMXBXMUdiVmxDdi9SMy92QVE5amVac3JsWHBBaUpkS2NFTnpqUDdoZFU3VlErMGhOOTFxeVBwR3RHd2Yrc3dvYmRNWmVRSGtENm05Nnk2SDRwUWlKSnM2RGVpa1pnUVIrSEJTMUNsYmZXYVBQWjVhbFRXdFBYa2k0dXNGVmVaUjV3Q3ZhZm1vOU42YnlyVXB4RWVoeFFTdjgxRzNJQUtDQTFoUUQwSFBaM1hVbGpTQjJvaTU3QjVua0FpbHFJdVlEOWpZRDB1QlFwa1I0SGxGSzRaa01lQUIwUFFQTUI2TmxXWlhZM1Q1MGFTM05JaXdIb2l3QjBqSEw5TWJ1UVBoRnJLdExqZ0ZMZ2crWUQwUEdnTWcrQW5zRjJUelROSWJXWnVIVWhxcnpxOS82dzFqWWdsYzcvVVlxWFNJOENTaWxZdTQ0VzlDa0F5bXJ2S2ZpbmUxdW5URE1DNmNJaDJQd0o2VmNBbFBteEY5YjFYMmJDL0NZcFppSTlCaWdsRDVDMnVyamRiQUJhRGRVK2dUUnNUWTJ6cHRxMitQNFRrSDRqT1NQU1k0QlNzdGV1TFFDZ1R3UFFMQnhXd3ovZFo2Wk1GMGd0cEF0S3NIa0JnTWE3WVk0QTJnL05oTGRxSlhkRWVnUlFTb1NRYXNQV3pBZ0FQVVZMQ2toamtxMCtjejljOEFRMlR5TDFVeTVzY2p2U0RvRGFLcmtqMHUyQVVqTFdyV0cvNEZNQWxPTW56K0NPZTh6a2x3VFNOa2laTHhNQTZDTmV4UzZaandEcEVja2RrVzRIMUVPYUQwQ2Z3bTRPN3NqeGs0UlVyRVE3VU4rK2p5OHlwSHU5Nmp1a2p3SHFCY2tka1c0RjFONW8zV3FHQTQ3SEhmT1VEUTgwdTgza2x3WFNhMEY5RnBzL0lQVlZkcnlwK3N4WGU2VzFWNlQ3QUUxQXFnMzlybndmWGJNTGtNb1l5bXNoemNYbUw4cU9ON1hDb1B2L0lPMEZxT0llaUhRUG9QYUc2MWZsT1F0aGFDSHE4QXM3emFSWG1pV3JmeEhVVWI3YUcyL3Q1Y0NFYmVLZmluUWJvQjdTSE44WDJCKy93SEdrbndOU0daclZPYWkveGVZeHBGRmU5Wk5peU9DRXR5UzJWd0R0bnE1THZmNkRMRnZvdE9HQVovaFhCcEMrZWtteS9JYitLV0V0OGFyRFNQOEdxS2NsZHdUUTdvQTBFNy9BUWM2RGZUL2dia0I2WHJMOXVwQnE1VUlHQ1dxaGNrSDRqRVQ2TDBDdGtSd1NRTHYrUnphczVOdytuRDRscG9MWUY2Ynl0V3JKK2h1Q0NqZEJ2YURhZ3ZBOXFCcWd6aGRRQmRDdWh2VHY3S2dmQVVENWd3Y0I2VkhKL3BzQ2xZMXR6M2tmMVQ0eWIxRzNBMVNaczFjQTdWSkl4d0xRa2Q0Z0hIV2d2aTd4dTdjRXFuNHNaRkhwbzM0S1VLVXhTUUR0b2gvYytONFFWMjJ6djN0S2FmV0ZxWGhkQWhwdUd0UUZCUFdQb2FvdnM1S0EvZy9waUNtZEx5ODhBZlNPSVdYd09BTWFzZ0RvUmV6dk1oVnZTRi9wcllIS1lJZW5rZTREb0lPOG1sWGVuVGo3bFNtZEp3RWlBdWlkUVBwdXZ2V3JORnNxRGNQY2RnTFNlbmtrdDVHWFd4YzhZMEZWeXJzUG1uM09YQXhxRjBDVnJpMEI5TFlocFFYbDhncTBBQzJLWTBvclpzak03YmNQS2h2aXhtSnZqRmZSZFRpbzJMMGxFNW9Kb0xmOW42aDZoMzJsdy8xVUlkOEMwaC9rMGR3SnFBdHBTVG5wK0VNaExhdS91NUVPbU5LNUVwZ3ZnTjR5cEhqekcxZEYwK29rOXZlYmlUT2w4ZWpPUUdXZ0EwZk9qTURSQ0srK0NwLzFBTFpmbXJLNUp5U1hCTkJiZ0hURllNVVJIbHBGQUdpZHJacE5uTmtvajZrcllGM0V5Q1NtKzFYaWtXdXVYTWVsRmZlYnNqbmlxd3FnTndWcEhnQmw1RkYvKzdaWFpvK1orS2FFQjNZZHFNVUE5RkZ2VmUveGFnNXhvMXZ4RlhTSFpKbEZBZlQ2LzZsTkt6SUJKZ3ZSRU8rWEhnU2tFbm5VMWZtOFpUR0h1VDNTd1ZkbEZmZ1FmVldrbzZaOHRyZ1pBbWhub0M1SDRURWp2RjlhYmYzUzhsa3Q4dGk2SEZUT216UlcyVVdoOUppMktqQUhrdXR2bFdzSlBvYThGMWdGMEk2UUxodGlDNDlXV1FDMHdmcWw1YlBFWCtvMldKZjBBNkQwVlVjck8zK1NqcDlxeFA1M09FZGdmMENOUmw2VUFtZ0MwbHlVRTFyVFltWDc5c3dCVkwya0JiSzc4MzN6RXVTMy9vMXlBOGtkcks2NHdFZlZkRGtZQzN6WVRKd3BMOHgwQnJTdHdDeWxYM3FQTHlYSFVWNitObVhpSS9WUTNoZmg4MEZrL1JoblhST1dsUS9qRkk2UFlJOE5UVCtiaWhreXIxSTZBdW9MQ254U3d5cFlnREp5R2Z0N1Rka2NDUkhzNlJxTjBteGdZdklOVEFucjJvejlZOHExQ2g4MUZXK2NreHhMSTBCOTFhdkErNlVEVUNyNHR2NEdrQjZUeDVrTVdKZHJWd1cyalV0czBCc1JzcTY4NGhMMFA5a2Fqd08zeGxTK0ppTnVlak9nb1FZTnh2SEcrL0k0Ync4NzNHVnR6bVErazZvVnVUNFdlTFNIZFdBb01JSWZET1Evb1dMQno2d09RMWN0c3o3MlVrQWRwSXM1bFFvYk1qaEZTQ09BWlFpYlZLdFNCdGgzKzNyTE9zcUhHN29KMFdKQi9BcldnR284cktkd0xWKzBaMlErNVY0Q3FJYzBSN2wrdkVIZUVUcUtsL1VoVXpwWEdwQlM3Vmx0ZkkvRERJY0QwT0hLTnZqcFVhR3pjVDgyNXNNUUFhcytBeDBEL1dzQ3BldlNiWm5MWGdGb0NOUnd3RDJiL3I4QXBIV0NSUW8vc3cwcmFVcUxMYlJLRHdXTWpNY2UxdWJISnFCbHErQlZEMm9OZEJmd3hRc1pTbk1GZ3d0WHBrNXBFa0R2Q2tnWGNRVEhRNjRCaVc5aXc3NjY3MDNwUEdtWXVGdWU0Zm9QTXF6dmFxZHIxU1dBa2RYaVlvRFp6NE5xb1NYWkdSN2tER01IcWRkQ1YwOUxpLzJMZ2RGczNlZHhQYTY2Y25aNjVWMFJYUEhraXUyWitMdnp0VkY5ZWgyZ2lZZThkWkdiUmRDOWZpOHFOaUNWenBQdW1MdFlNdGF0eWZLZ011Qy9DREFXQWRBaXhhM1JPUTVlRHpDM1JzY3RiOXdlTjBGM09YQWhqQTJFRnNlMHZFM2FUcTZ1bTNDdVVSdE4vemVLL1didGZPU3IwTVZDOTJvKzlPcUw3ZnA2SDM1L1c0RC9VN1pPL0xvT3NNMENaTmhxNkRsQ1MwZXd6Y1YxT2REeC81dURxN0d2OHFETGc0N1Yvd0p0MjFPMG5iK3gxd0xxSVVYVnlUeWc3QUs2ZHNRR1Y3cUdOWjB2SGVtOVRQcXNXYy9DM1E5UUZhTFFzeFpWQ1BnNHdWcGZIUGZWZGtFdmxVRm9BMTkxMWlHSTQ1K0JyVmJHd1ZZSnRQVzFzRnRkK0Y2MEJTRkE3ZFpDMW5hWDBIVWQ3aGZTYVJzdGh4ZUlVZlg2K2NXZjI3UEdmeG9kUDhKV3U3MlkxYnR6aVd2dE9XTkxmZnc2NC8vRmRIdy9acjhUaTkveG11KzA3Y2V2aVlYMEhmZGpmcjhWKzYzdDlQRy9NUDZ5TVNyeFZ6TmxYL2JXMU9wb1JiOVVMYmwxMTE3YnlYSGlDWVpmWnAzcE81N3JvTHZ6MTg2MUtuTVQxNFIxNWdiWG1jN3VwYS96M2M3T2RhSnZhOFc5d2JYdGZGQjFuU3F1dWdrTG1nTmRRVUNMcFRRdFZXN2dMRyt1dDFxd2FMQnVSc1BhcVlqZFY1cGZoU1hVR2FGNzBaSUhIUUJsOGJ3YUFyUlZXOHRMQkRRdE5NTWpvOVpTRzFwc1o3bHhkYU5tNzROUnNPaWFzZWFYdlRXM3hUa3pMVjZ2elFYN0FTbG5zMmZrQzZ0RXo2ck14dStSQjBkVU5FZGFldE5IbW55NmF5UkltMGNUemF0QitsVFppQmI3a3VNc2VNK3BTRk94bEZzUkFUUjFRTjJQengzS2RZNjdWY0V6bThhcHpPWnNLUTRpS2RlTzBwc2JpVzc0eDMrNGdGVmVocVRSNTRDUFlEalc4YmlaOEpaMHlZZ0lvQ2tDS1dkbzU0aU1JYjQxb2hicGEwQjZVWXFIaUFDYU9xQnlYbDVhMC9pYW5Cd1EvaTFBbGVCN0VRRTBkVUI5bXpHOUkrTWVLOUozaXZQeFNMVlhSQUJOR1VnNTN2UkJaVVBOckxEdjlLQ3NjQzBpZ0tZV3FFT1ZuWXZIOXAxU3pucFFaUTRlRVFFMGhVQmxueWtqa2ZLOGY4b1pBZzREVkJsb0xDS0FwZ2lrakxwNlNDVkNCcmthbS9vZTZVZUFLbE5RaWdpZ0tRSXFBN0RaZnpyRXEyaEZqOUNxQWxRSndoY1JRRk1FMUJMdm41WjRGY2Nqc3NYM3BMVDRpZ2lncVFNcUc1TFlMVFBRcXk1NVVFOExxQ0lDYU9xQVN0K1U4K3dNOEtwNlgvVTlKYUNLQ0tDcEErcG83NThXdFZsVWZkaUJPbDh5VzBRQVRSRlE2WjhPZGFEcWVOV1hyYjdWQUZVYWswUUUwTlFCVlE4SlZYMjVZdmdQeXFqanBuUytEQllYRVVCVEE5UUZJNzFGZFkxSmhxdUhxeCtaQUtwTTBpd2lnS1lJcUlSMEJBQ056K1JBSzNxQ3kvbVowbmtOa2tNaUFtZ3FaUHpXQlFSMGxFb0U1TnNaenhpTXozVTNhd0NyWkpLSUFKb0NvREl5NlY2L2JrbGNMbmxRVHdKVThWTUZVSkhrZzdxUXNiN3NvcUZsalhmUlJIMzE5eWRUT3ZleTVKSUFLcElhc0RMZ1liaUhWZmx1bXZOSXg3ajZseW1iSzkwMEFxaElDb0JhcU5xVzdYTmliSEErcDJNNUFWREZxZ3FnSXNrSGRaRmZ4Vm9OQnFBRFEyZHFQYXpWcG15T2ROVUlvQ0pKZjJCYkZ0RS92Y2Y1cWJyQXE5bVFkTnI3cStkTTJXeDVxQUtvU1BKaFhVdy9sZjJxZzBKYUxtMVFEVXQ3MHBUUGxxbERCVkNSRkFBMTExdFZWSC8xQU8rclVoajRjQkk2d0RwTC9GVUJWQ1Q1c0M3aFVvdkR1SDZtY3NzdXFsQ3cvaWttd0NycnBBcWdJa2wvdUp1WERGUnVPWG5DV2hBNjAyQmhOWW9ydnRXWmlXOUtaZ21nSXNtRmRTbGg5ZU5VN2NLMjhXb3cxNkxrZEtKbkZFTU1KODZVeUNVQlZDUzVzQzRyc3JBYU93U3VNTFNJTGdNZ3p1SDRETTZkTlJVenJraHVDYUFpeVN3QW01YWg2cXZaQ2x5c3dwRkxiWTFNTlRobUVQOTVVL0dHOUxVS29DTEpnM1U1NDRFQnF5N3gxalUzQWF4RDlxSUg5anlPYWszbDYxSWRGa0JGa2xZNHFsYjBkVmJWZHQyRSsxcUphOHdCcXhramZJSEpWTDRtRTNnTG9DTEpnZlVkcnNaTzMzV0FiUlZPaEJ3bS9GY1VwS0FlMk5aNlM0dXR2bXdtdlNLWko0Q0s5SGpCMmZndWdlM25yU3ZCTFFHZ3JwbXA3YXFvQTlWYTJqb2dYR2Ntdjl3b3VTZUFpdlE0c08vQmxBWjlBV2gvSFBiMzhCWjBxQlpUb2haV1oyWHJzVjhQZllPWk1sMkcwQW1nSWoxYXVEYXNqSVJnN1FjUTZkUG1ocXJGWVgvMkNtR0ZEV1pJNHFWQTZVc0VOenAxYWt3QUZSSHBxUUszL29Nc2ZIS2NLMU5mR3pSaFZKODRySUcvTG5EZ21zQUZValJrdUxWdkdqS01qWUpxZ0w2eGJ0cmtxQUFxSXRMZGhYRGRhbktaajcwK2dRdEp4RmIzSWJpQkJ6ZkRYd3RBUGNCVzN4SzRlWWFiQXFPNWJmUkFOMnUzNmx3ejlNMm5YNnE0SzYzdytCWGJBd0ZVSkdVbHNuYXRCbkE1QUM0L3d3S3M4Z0VvdDNtQnF5cEhFaGEzUGJpSlNqVDFnWnZiQ2RCcXprVWNoWTdIVVczWGVOVlJmNzVGRzgxdUl1T09OZThZWmZVYjMydnRjTytXUTYrKzJBNmNoOS9meHAvTTFDWitsZjNNME81ckVmd21WUkZ0VCtsTWZHVGFZNlBwQm1UaW9peXY1M0dXTWpwYjIvTUNxTWhkS29Wck5tUTZVRlV1QU1peFd3ZHVGZ3AzTm81em9NOEtQRnR4Yk9NdzZ3N1ZhdjFMa0p2UTkwSjYzY2tMb1FPZzdWNFV2NlR2N0Q0QWxQc3hBVlNrMTh2UVZWVzBTckJJT3N0YnM0aTNaaEZ2aGVQV2pEWHB3QjNyd0ZvNW83QzErakJFc0pUV0lvWjF4bG5oZG9DMmF0ZngxSUxmdEZ0M2JQVnhxMjJ0dWJmYVVhKy9Da0NiZDg3NFkvVC9BZ3dBMk1pN0hkQWUraWtBQUFBQVNVVk9SSzVDWUlJPSkgdG9wIHJpZ2h0IG5vLXJlcGVhdCAjMWIzMTQ5O1xuICAgIC8qIGJhY2tncm91bmQtYXR0YWNoZW1lbnQgbG9jYWwgaXMgbm90IHN1cHBvcnRlZCBvbiBJRThcbiAgICAgKiB3aGVuIHRoaXMgaXMgcGFydCBvZiBiYWNrZ3JvdW5kIHRoZSBjb21wbGV0ZSBiYWNrZ3JvdW5kIGlzIGlnbm9yZWQgKi9cbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGxvY2FsO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXIgdWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM0OTYwNzY7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgY29sb3I6ICMzODdlYTI7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0OTYwNzY7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBoMiB7XG4gICAgbWFyZ2luOiAyMHB4IDAgNXB4O1xuICAgIGNvbG9yOiAjNWJjNGZlO1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbn1cbi5teC1kZW1vdXNlcnN3aXRjaGVyIGgzIHtcbiAgICBtYXJnaW46IDAgMCAycHg7XG4gICAgY29sb3I6ICM1YmM0ZmU7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXIgLmFjdGl2ZSBoMyB7XG4gICAgY29sb3I6ICMxMWVmZGI7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXItdG9nZ2xlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyNSU7XG4gICAgbGVmdDogLTM1cHg7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgaGVpZ2h0OiAzOHB4O1xuICAgIG1hcmdpbi10b3A6IC00MHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuICAgIGJveC1zaGFkb3c6IC0xcHggMCA1cHggcmdiYSgyOCw1OSw4NiwuMik7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQklBQUFBU0NBWUFBQUJXem81WEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVJwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVNeTFqTURFeElEWTJMakUwTlRZMk1Td2dNakF4TWk4d01pOHdOaTB4TkRvMU5qb3lOeUFnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5UTmlBb1RXRmphVzUwYjNOb0tTSWdlRzF3VFUwNlNXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEbzNORVJETWpGR1JEUTJORU14TVVVMFFUUTRNVUk1TlROR01VUTNRekU1TnlJZ2VHMXdUVTA2Ukc5amRXMWxiblJKUkQwaWVHMXdMbVJwWkRvM05FUkRNakZHUlRRMk5FTXhNVVUwUVRRNE1VSTVOVE5HTVVRM1F6RTVOeUkrSUR4NGJYQk5UVHBFWlhKcGRtVmtSbkp2YlNCemRGSmxaanBwYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pjMFJFTXlNVVpDTkRZMFF6RXhSVFJCTkRneFFqazFNMFl4UkRkRE1UazNJaUJ6ZEZKbFpqcGtiMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPamMwUkVNeU1VWkRORFkwUXpFeFJUUkJORGd4UWprMU0wWXhSRGRETVRrM0lpOCtJRHd2Y21SbU9rUmxjMk55YVhCMGFXOXVQaUE4TDNKa1pqcFNSRVkrSUR3dmVEcDRiWEJ0WlhSaFBpQThQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCsxWm92TkFBQUFXZEpSRUZVZU5xTTFNMHJSRkVZeC9FN1k1cUlRcE9VYklpeW1RV3lzQmd2SlZKSzJWZ3J5WlF0S1NVTFplbFBzQjBMWmFOWmpKVU5LMUZza0pxVXZDUzNOQXNaYzN6UDlOemlPT2ZlZWVwVGM4L2M4K3ZjOHhaVFNubU9ha0VHS2R6Z0RCWFh5NTRPTXNTd2pwTDZXOWNZc3J4ZlpXdmNVdTd5MFZkTFVDYytWWGdkMm9MaXhwZk9JT21GMTdUdEhUT296WXV1cEN4QWFOQjlEVUVmZURVYkU4YnpFWHhaZXJQMDBsOGhoM0xVaUhUSU1yNk45ajJrc1lvaWh2LzFkZXlMU1Z6S0ttMWpFVytXZlpWMkxmOGdza2pJY3djV3BPTSsrcEhDRlBMb3NnV3RvQ3lkN2pDUE9qemhHSEhMeURQWTFhY2hhSmhEeFJqNnJCd0pYVXVvTjBJRzhJSXY3T2lHQmp4YWR2QUlUdVQzcmV4NmMwU2JLQVNmbG5VY0JUM0pUVGhBanlXa0dVVnNCRUVGUjVDZXJ6WHBOSWFjckZJckpuQ0JCM211QnZraEIxVFAyN2hNL0x2eDN6bDZneEhxdTZjNzRraVU4SXhHaktKZExyclQzeGZkandBREFKYU14UDJidkQyQkFBQUFBRWxGVGtTdVFtQ0MpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0ICMxYjMxNDk7XG59XG4iLCIvKiBtYXN0ZXIgZGV0YWlscyBzY3JlZW4gZm9yIG1vYmlsZSAqL1xuLm14LW1hc3Rlci1kZXRhaWwtc2NyZWVuIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLXNjcmVlbiAubXgtbWFzdGVyLWRldGFpbC1kZXRhaWxzIHtcbiAgICBwYWRkaW5nOiAxNXB4O1xufVxuXG4ubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbn1cblxuLm14LW1hc3Rlci1kZXRhaWwtc2NyZWVuLWhlYWRlci1jYXB0aW9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLXNjcmVlbi1oZWFkZXItY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjMDA3YWZmO1xufVxuXG5ib2R5W2Rpcj1cInJ0bFwiXSAubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyLWNsb3NlIHtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvO1xufVxuXG4ubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyLWNsb3NlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFwyMDM5XCI7XG4gICAgZm9udC1zaXplOiA1MnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4vKiBjbGFzc2VzIGZvciBjb250ZW50IHBhZ2UgKi9cbi5teC1tYXN0ZXItZGV0YWlsLWNvbnRlbnQtZml4IHtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLWNvbnRlbnQtaGlkZGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMCUpO1xufVxuXG5ib2R5W2Rpcj1cInJ0bFwiXSAubXgtbWFzdGVyLWRldGFpbC1jb250ZW50LWhpZGRlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMCUpO1xufSIsIi5yZXBvcnRpbmdSZXBvcnQge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIC1tb3otYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbiIsIi5yZXBvcnRpbmdSZXBvcnRQYXJhbWV0ZXIgdGgge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuIiwiLnJlcG9ydGluZ0RhdGVSYW5nZSB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cbi5yZXBvcnRpbmdEYXRlUmFuZ2UgdGgge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuLnJlcG9ydGluZ0RhdGVSYW5nZSB0ZCB7XG4gICAgcGFkZGluZzogNXB4O1xufVxuIiwiLm14LXJlcG9ydG1hdHJpeCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0aCwgLm14LXJlcG9ydG1hdHJpeCB0ZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0Ym9keSB0cjpudGgtY2hpbGQoMm4rMSkgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG59XG5cbi5teC1yZXBvcnRtYXRyaXggdGJvZHkgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE2cHg7XG4gICAgbWF4LWhlaWdodDogMTZweDtcbn1cbiIsIi8qIFdBUk5JTkc6IElFOSBsaW1pdHMgbmVzdGVkIGltcG9ydHMgdG8gdGhyZWUgbGV2ZWxzIGRlZXA6IGh0dHA6Ly9qb3JnZWFsYmFsYWRlam8uY29tLzIwMTEvMDUvMjgvaW50ZXJuZXQtZXhwbG9yZXItbGltaXRzLW5lc3RlZC1pbXBvcnQtY3NzLXN0YXRlbWVudHMgKi9cblxuLyogZGlqaXQgYmFzZSAqL1xuXG4vKiBtZW5kaXggYmFzZSAqL1xuXG4vKiB3aWRnZXRzICovXG5cbi8qIHJlcG9ydGluZyAqL1xuIl0sInNvdXJjZVJvb3QiOiIifQ==*/
diff --git a/themesource/atlas_core/web/core/_legacy/bootstrap/_bootstrap-rtl.scss b/themesource/atlas_core/web/core/_legacy/bootstrap/_bootstrap-rtl.scss
new file mode 100644
index 00000000..3bf6ffa7
--- /dev/null
+++ b/themesource/atlas_core/web/core/_legacy/bootstrap/_bootstrap-rtl.scss
@@ -0,0 +1,1741 @@
+/*******************************************************************************
+ * bootstrap-rtl (version 3.3.4)
+ * Author: Morteza Ansarinia (http://github.com/morteza)
+ * Created on: August 13,2015
+ * Project: bootstrap-rtl
+ * Copyright: Unlicensed Public Domain
+ *******************************************************************************/
+@mixin bootstrap-rtl() {
+ [dir="rtl"] {
+ .flip.text-left {
+ text-align: right;
+ }
+
+ .flip.text-right {
+ text-align: left;
+ }
+
+ .list-unstyled {
+ padding-right: 0;
+ padding-left: initial;
+ }
+
+ .list-inline {
+ padding-right: 0;
+ padding-left: initial;
+ margin-right: -5px;
+ margin-left: 0;
+ }
+
+ dd {
+ margin-right: 0;
+ margin-left: initial;
+ }
+
+ @media (min-width: 768px) {
+ .dl-horizontal dt {
+ float: right;
+ clear: right;
+ text-align: left;
+ }
+ .dl-horizontal dd {
+ margin-right: 180px;
+ margin-left: 0;
+ }
+ }
+
+ blockquote {
+ border-right: 5px solid #eeeeee;
+ border-left: 0;
+ }
+
+ .blockquote-reverse,
+ blockquote.pull-left {
+ padding-left: 15px;
+ padding-right: 0;
+ border-left: 5px solid #eeeeee;
+ border-right: 0;
+ text-align: left;
+ }
+
+ .col-xs-1,
+ .col-sm-1,
+ .col-md-1,
+ .col-lg-1,
+ .col-xs-2,
+ .col-sm-2,
+ .col-md-2,
+ .col-lg-2,
+ .col-xs-3,
+ .col-sm-3,
+ .col-md-3,
+ .col-lg-3,
+ .col-xs-4,
+ .col-sm-4,
+ .col-md-4,
+ .col-lg-4,
+ .col-xs-5,
+ .col-sm-5,
+ .col-md-5,
+ .col-lg-5,
+ .col-xs-6,
+ .col-sm-6,
+ .col-md-6,
+ .col-lg-6,
+ .col-xs-7,
+ .col-sm-7,
+ .col-md-7,
+ .col-lg-7,
+ .col-xs-8,
+ .col-sm-8,
+ .col-md-8,
+ .col-lg-8,
+ .col-xs-9,
+ .col-sm-9,
+ .col-md-9,
+ .col-lg-9,
+ .col-xs-10,
+ .col-sm-10,
+ .col-md-10,
+ .col-lg-10,
+ .col-xs-11,
+ .col-sm-11,
+ .col-md-11,
+ .col-lg-11,
+ .col-xs-12,
+ .col-sm-12,
+ .col-md-12,
+ .col-lg-12 {
+ position: relative;
+ min-height: 1px;
+ padding-left: 15px;
+ padding-right: 15px;
+ }
+
+ .col-xs-1,
+ .col-xs-2,
+ .col-xs-3,
+ .col-xs-4,
+ .col-xs-5,
+ .col-xs-6,
+ .col-xs-7,
+ .col-xs-8,
+ .col-xs-9,
+ .col-xs-10,
+ .col-xs-11,
+ .col-xs-12 {
+ float: right;
+ }
+
+ .col-xs-12 {
+ width: 100%;
+ }
+
+ .col-xs-11 {
+ width: 91.66666667%;
+ }
+
+ .col-xs-10 {
+ width: 83.33333333%;
+ }
+
+ .col-xs-9 {
+ width: 75%;
+ }
+
+ .col-xs-8 {
+ width: 66.66666667%;
+ }
+
+ .col-xs-7 {
+ width: 58.33333333%;
+ }
+
+ .col-xs-6 {
+ width: 50%;
+ }
+
+ .col-xs-5 {
+ width: 41.66666667%;
+ }
+
+ .col-xs-4 {
+ width: 33.33333333%;
+ }
+
+ .col-xs-3 {
+ width: 25%;
+ }
+
+ .col-xs-2 {
+ width: 16.66666667%;
+ }
+
+ .col-xs-1 {
+ width: 8.33333333%;
+ }
+
+ .col-xs-pull-12 {
+ left: 100%;
+ right: auto;
+ }
+
+ .col-xs-pull-11 {
+ left: 91.66666667%;
+ right: auto;
+ }
+
+ .col-xs-pull-10 {
+ left: 83.33333333%;
+ right: auto;
+ }
+
+ .col-xs-pull-9 {
+ left: 75%;
+ right: auto;
+ }
+
+ .col-xs-pull-8 {
+ left: 66.66666667%;
+ right: auto;
+ }
+
+ .col-xs-pull-7 {
+ left: 58.33333333%;
+ right: auto;
+ }
+
+ .col-xs-pull-6 {
+ left: 50%;
+ right: auto;
+ }
+
+ .col-xs-pull-5 {
+ left: 41.66666667%;
+ right: auto;
+ }
+
+ .col-xs-pull-4 {
+ left: 33.33333333%;
+ right: auto;
+ }
+
+ .col-xs-pull-3 {
+ left: 25%;
+ right: auto;
+ }
+
+ .col-xs-pull-2 {
+ left: 16.66666667%;
+ right: auto;
+ }
+
+ .col-xs-pull-1 {
+ left: 8.33333333%;
+ right: auto;
+ }
+
+ .col-xs-pull-0 {
+ left: auto;
+ right: auto;
+ }
+
+ .col-xs-push-12 {
+ right: 100%;
+ left: 0;
+ }
+
+ .col-xs-push-11 {
+ right: 91.66666667%;
+ left: 0;
+ }
+
+ .col-xs-push-10 {
+ right: 83.33333333%;
+ left: 0;
+ }
+
+ .col-xs-push-9 {
+ right: 75%;
+ left: 0;
+ }
+
+ .col-xs-push-8 {
+ right: 66.66666667%;
+ left: 0;
+ }
+
+ .col-xs-push-7 {
+ right: 58.33333333%;
+ left: 0;
+ }
+
+ .col-xs-push-6 {
+ right: 50%;
+ left: 0;
+ }
+
+ .col-xs-push-5 {
+ right: 41.66666667%;
+ left: 0;
+ }
+
+ .col-xs-push-4 {
+ right: 33.33333333%;
+ left: 0;
+ }
+
+ .col-xs-push-3 {
+ right: 25%;
+ left: 0;
+ }
+
+ .col-xs-push-2 {
+ right: 16.66666667%;
+ left: 0;
+ }
+
+ .col-xs-push-1 {
+ right: 8.33333333%;
+ left: 0;
+ }
+
+ .col-xs-push-0 {
+ right: auto;
+ left: 0;
+ }
+
+ .col-xs-offset-12 {
+ margin-right: 100%;
+ margin-left: 0;
+ }
+
+ .col-xs-offset-11 {
+ margin-right: 91.66666667%;
+ margin-left: 0;
+ }
+
+ .col-xs-offset-10 {
+ margin-right: 83.33333333%;
+ margin-left: 0;
+ }
+
+ .col-xs-offset-9 {
+ margin-right: 75%;
+ margin-left: 0;
+ }
+
+ .col-xs-offset-8 {
+ margin-right: 66.66666667%;
+ margin-left: 0;
+ }
+
+ .col-xs-offset-7 {
+ margin-right: 58.33333333%;
+ margin-left: 0;
+ }
+
+ .col-xs-offset-6 {
+ margin-right: 50%;
+ margin-left: 0;
+ }
+
+ .col-xs-offset-5 {
+ margin-right: 41.66666667%;
+ margin-left: 0;
+ }
+
+ .col-xs-offset-4 {
+ margin-right: 33.33333333%;
+ margin-left: 0;
+ }
+
+ .col-xs-offset-3 {
+ margin-right: 25%;
+ margin-left: 0;
+ }
+
+ .col-xs-offset-2 {
+ margin-right: 16.66666667%;
+ margin-left: 0;
+ }
+
+ .col-xs-offset-1 {
+ margin-right: 8.33333333%;
+ margin-left: 0;
+ }
+
+ .col-xs-offset-0 {
+ margin-right: 0%;
+ margin-left: 0;
+ }
+
+ @media (min-width: 768px) {
+ .col-sm-1,
+ .col-sm-2,
+ .col-sm-3,
+ .col-sm-4,
+ .col-sm-5,
+ .col-sm-6,
+ .col-sm-7,
+ .col-sm-8,
+ .col-sm-9,
+ .col-sm-10,
+ .col-sm-11,
+ .col-sm-12 {
+ float: right;
+ }
+ .col-sm-12 {
+ width: 100%;
+ }
+ .col-sm-11 {
+ width: 91.66666667%;
+ }
+ .col-sm-10 {
+ width: 83.33333333%;
+ }
+ .col-sm-9 {
+ width: 75%;
+ }
+ .col-sm-8 {
+ width: 66.66666667%;
+ }
+ .col-sm-7 {
+ width: 58.33333333%;
+ }
+ .col-sm-6 {
+ width: 50%;
+ }
+ .col-sm-5 {
+ width: 41.66666667%;
+ }
+ .col-sm-4 {
+ width: 33.33333333%;
+ }
+ .col-sm-3 {
+ width: 25%;
+ }
+ .col-sm-2 {
+ width: 16.66666667%;
+ }
+ .col-sm-1 {
+ width: 8.33333333%;
+ }
+ .col-sm-pull-12 {
+ left: 100%;
+ right: auto;
+ }
+ .col-sm-pull-11 {
+ left: 91.66666667%;
+ right: auto;
+ }
+ .col-sm-pull-10 {
+ left: 83.33333333%;
+ right: auto;
+ }
+ .col-sm-pull-9 {
+ left: 75%;
+ right: auto;
+ }
+ .col-sm-pull-8 {
+ left: 66.66666667%;
+ right: auto;
+ }
+ .col-sm-pull-7 {
+ left: 58.33333333%;
+ right: auto;
+ }
+ .col-sm-pull-6 {
+ left: 50%;
+ right: auto;
+ }
+ .col-sm-pull-5 {
+ left: 41.66666667%;
+ right: auto;
+ }
+ .col-sm-pull-4 {
+ left: 33.33333333%;
+ right: auto;
+ }
+ .col-sm-pull-3 {
+ left: 25%;
+ right: auto;
+ }
+ .col-sm-pull-2 {
+ left: 16.66666667%;
+ right: auto;
+ }
+ .col-sm-pull-1 {
+ left: 8.33333333%;
+ right: auto;
+ }
+ .col-sm-pull-0 {
+ left: auto;
+ right: auto;
+ }
+ .col-sm-push-12 {
+ right: 100%;
+ left: 0;
+ }
+ .col-sm-push-11 {
+ right: 91.66666667%;
+ left: 0;
+ }
+ .col-sm-push-10 {
+ right: 83.33333333%;
+ left: 0;
+ }
+ .col-sm-push-9 {
+ right: 75%;
+ left: 0;
+ }
+ .col-sm-push-8 {
+ right: 66.66666667%;
+ left: 0;
+ }
+ .col-sm-push-7 {
+ right: 58.33333333%;
+ left: 0;
+ }
+ .col-sm-push-6 {
+ right: 50%;
+ left: 0;
+ }
+ .col-sm-push-5 {
+ right: 41.66666667%;
+ left: 0;
+ }
+ .col-sm-push-4 {
+ right: 33.33333333%;
+ left: 0;
+ }
+ .col-sm-push-3 {
+ right: 25%;
+ left: 0;
+ }
+ .col-sm-push-2 {
+ right: 16.66666667%;
+ left: 0;
+ }
+ .col-sm-push-1 {
+ right: 8.33333333%;
+ left: 0;
+ }
+ .col-sm-push-0 {
+ right: auto;
+ left: 0;
+ }
+ .col-sm-offset-12 {
+ margin-right: 100%;
+ margin-left: 0;
+ }
+ .col-sm-offset-11 {
+ margin-right: 91.66666667%;
+ margin-left: 0;
+ }
+ .col-sm-offset-10 {
+ margin-right: 83.33333333%;
+ margin-left: 0;
+ }
+ .col-sm-offset-9 {
+ margin-right: 75%;
+ margin-left: 0;
+ }
+ .col-sm-offset-8 {
+ margin-right: 66.66666667%;
+ margin-left: 0;
+ }
+ .col-sm-offset-7 {
+ margin-right: 58.33333333%;
+ margin-left: 0;
+ }
+ .col-sm-offset-6 {
+ margin-right: 50%;
+ margin-left: 0;
+ }
+ .col-sm-offset-5 {
+ margin-right: 41.66666667%;
+ margin-left: 0;
+ }
+ .col-sm-offset-4 {
+ margin-right: 33.33333333%;
+ margin-left: 0;
+ }
+ .col-sm-offset-3 {
+ margin-right: 25%;
+ margin-left: 0;
+ }
+ .col-sm-offset-2 {
+ margin-right: 16.66666667%;
+ margin-left: 0;
+ }
+ .col-sm-offset-1 {
+ margin-right: 8.33333333%;
+ margin-left: 0;
+ }
+ .col-sm-offset-0 {
+ margin-right: 0%;
+ margin-left: 0;
+ }
+ }
+ @media (min-width: 992px) {
+ .col-md-1,
+ .col-md-2,
+ .col-md-3,
+ .col-md-4,
+ .col-md-5,
+ .col-md-6,
+ .col-md-7,
+ .col-md-8,
+ .col-md-9,
+ .col-md-10,
+ .col-md-11,
+ .col-md-12 {
+ float: right;
+ }
+ .col-md-12 {
+ width: 100%;
+ }
+ .col-md-11 {
+ width: 91.66666667%;
+ }
+ .col-md-10 {
+ width: 83.33333333%;
+ }
+ .col-md-9 {
+ width: 75%;
+ }
+ .col-md-8 {
+ width: 66.66666667%;
+ }
+ .col-md-7 {
+ width: 58.33333333%;
+ }
+ .col-md-6 {
+ width: 50%;
+ }
+ .col-md-5 {
+ width: 41.66666667%;
+ }
+ .col-md-4 {
+ width: 33.33333333%;
+ }
+ .col-md-3 {
+ width: 25%;
+ }
+ .col-md-2 {
+ width: 16.66666667%;
+ }
+ .col-md-1 {
+ width: 8.33333333%;
+ }
+ .col-md-pull-12 {
+ left: 100%;
+ right: auto;
+ }
+ .col-md-pull-11 {
+ left: 91.66666667%;
+ right: auto;
+ }
+ .col-md-pull-10 {
+ left: 83.33333333%;
+ right: auto;
+ }
+ .col-md-pull-9 {
+ left: 75%;
+ right: auto;
+ }
+ .col-md-pull-8 {
+ left: 66.66666667%;
+ right: auto;
+ }
+ .col-md-pull-7 {
+ left: 58.33333333%;
+ right: auto;
+ }
+ .col-md-pull-6 {
+ left: 50%;
+ right: auto;
+ }
+ .col-md-pull-5 {
+ left: 41.66666667%;
+ right: auto;
+ }
+ .col-md-pull-4 {
+ left: 33.33333333%;
+ right: auto;
+ }
+ .col-md-pull-3 {
+ left: 25%;
+ right: auto;
+ }
+ .col-md-pull-2 {
+ left: 16.66666667%;
+ right: auto;
+ }
+ .col-md-pull-1 {
+ left: 8.33333333%;
+ right: auto;
+ }
+ .col-md-pull-0 {
+ left: auto;
+ right: auto;
+ }
+ .col-md-push-12 {
+ right: 100%;
+ left: 0;
+ }
+ .col-md-push-11 {
+ right: 91.66666667%;
+ left: 0;
+ }
+ .col-md-push-10 {
+ right: 83.33333333%;
+ left: 0;
+ }
+ .col-md-push-9 {
+ right: 75%;
+ left: 0;
+ }
+ .col-md-push-8 {
+ right: 66.66666667%;
+ left: 0;
+ }
+ .col-md-push-7 {
+ right: 58.33333333%;
+ left: 0;
+ }
+ .col-md-push-6 {
+ right: 50%;
+ left: 0;
+ }
+ .col-md-push-5 {
+ right: 41.66666667%;
+ left: 0;
+ }
+ .col-md-push-4 {
+ right: 33.33333333%;
+ left: 0;
+ }
+ .col-md-push-3 {
+ right: 25%;
+ left: 0;
+ }
+ .col-md-push-2 {
+ right: 16.66666667%;
+ left: 0;
+ }
+ .col-md-push-1 {
+ right: 8.33333333%;
+ left: 0;
+ }
+ .col-md-push-0 {
+ right: auto;
+ left: 0;
+ }
+ .col-md-offset-12 {
+ margin-right: 100%;
+ margin-left: 0;
+ }
+ .col-md-offset-11 {
+ margin-right: 91.66666667%;
+ margin-left: 0;
+ }
+ .col-md-offset-10 {
+ margin-right: 83.33333333%;
+ margin-left: 0;
+ }
+ .col-md-offset-9 {
+ margin-right: 75%;
+ margin-left: 0;
+ }
+ .col-md-offset-8 {
+ margin-right: 66.66666667%;
+ margin-left: 0;
+ }
+ .col-md-offset-7 {
+ margin-right: 58.33333333%;
+ margin-left: 0;
+ }
+ .col-md-offset-6 {
+ margin-right: 50%;
+ margin-left: 0;
+ }
+ .col-md-offset-5 {
+ margin-right: 41.66666667%;
+ margin-left: 0;
+ }
+ .col-md-offset-4 {
+ margin-right: 33.33333333%;
+ margin-left: 0;
+ }
+ .col-md-offset-3 {
+ margin-right: 25%;
+ margin-left: 0;
+ }
+ .col-md-offset-2 {
+ margin-right: 16.66666667%;
+ margin-left: 0;
+ }
+ .col-md-offset-1 {
+ margin-right: 8.33333333%;
+ margin-left: 0;
+ }
+ .col-md-offset-0 {
+ margin-right: 0%;
+ margin-left: 0;
+ }
+ }
+ @media (min-width: 1200px) {
+ .col-lg-1,
+ .col-lg-2,
+ .col-lg-3,
+ .col-lg-4,
+ .col-lg-5,
+ .col-lg-6,
+ .col-lg-7,
+ .col-lg-8,
+ .col-lg-9,
+ .col-lg-10,
+ .col-lg-11,
+ .col-lg-12 {
+ float: right;
+ }
+ .col-lg-12 {
+ width: 100%;
+ }
+ .col-lg-11 {
+ width: 91.66666667%;
+ }
+ .col-lg-10 {
+ width: 83.33333333%;
+ }
+ .col-lg-9 {
+ width: 75%;
+ }
+ .col-lg-8 {
+ width: 66.66666667%;
+ }
+ .col-lg-7 {
+ width: 58.33333333%;
+ }
+ .col-lg-6 {
+ width: 50%;
+ }
+ .col-lg-5 {
+ width: 41.66666667%;
+ }
+ .col-lg-4 {
+ width: 33.33333333%;
+ }
+ .col-lg-3 {
+ width: 25%;
+ }
+ .col-lg-2 {
+ width: 16.66666667%;
+ }
+ .col-lg-1 {
+ width: 8.33333333%;
+ }
+ .col-lg-pull-12 {
+ left: 100%;
+ right: auto;
+ }
+ .col-lg-pull-11 {
+ left: 91.66666667%;
+ right: auto;
+ }
+ .col-lg-pull-10 {
+ left: 83.33333333%;
+ right: auto;
+ }
+ .col-lg-pull-9 {
+ left: 75%;
+ right: auto;
+ }
+ .col-lg-pull-8 {
+ left: 66.66666667%;
+ right: auto;
+ }
+ .col-lg-pull-7 {
+ left: 58.33333333%;
+ right: auto;
+ }
+ .col-lg-pull-6 {
+ left: 50%;
+ right: auto;
+ }
+ .col-lg-pull-5 {
+ left: 41.66666667%;
+ right: auto;
+ }
+ .col-lg-pull-4 {
+ left: 33.33333333%;
+ right: auto;
+ }
+ .col-lg-pull-3 {
+ left: 25%;
+ right: auto;
+ }
+ .col-lg-pull-2 {
+ left: 16.66666667%;
+ right: auto;
+ }
+ .col-lg-pull-1 {
+ left: 8.33333333%;
+ right: auto;
+ }
+ .col-lg-pull-0 {
+ left: auto;
+ right: auto;
+ }
+ .col-lg-push-12 {
+ right: 100%;
+ left: 0;
+ }
+ .col-lg-push-11 {
+ right: 91.66666667%;
+ left: 0;
+ }
+ .col-lg-push-10 {
+ right: 83.33333333%;
+ left: 0;
+ }
+ .col-lg-push-9 {
+ right: 75%;
+ left: 0;
+ }
+ .col-lg-push-8 {
+ right: 66.66666667%;
+ left: 0;
+ }
+ .col-lg-push-7 {
+ right: 58.33333333%;
+ left: 0;
+ }
+ .col-lg-push-6 {
+ right: 50%;
+ left: 0;
+ }
+ .col-lg-push-5 {
+ right: 41.66666667%;
+ left: 0;
+ }
+ .col-lg-push-4 {
+ right: 33.33333333%;
+ left: 0;
+ }
+ .col-lg-push-3 {
+ right: 25%;
+ left: 0;
+ }
+ .col-lg-push-2 {
+ right: 16.66666667%;
+ left: 0;
+ }
+ .col-lg-push-1 {
+ right: 8.33333333%;
+ left: 0;
+ }
+ .col-lg-push-0 {
+ right: auto;
+ left: 0;
+ }
+ .col-lg-offset-12 {
+ margin-right: 100%;
+ margin-left: 0;
+ }
+ .col-lg-offset-11 {
+ margin-right: 91.66666667%;
+ margin-left: 0;
+ }
+ .col-lg-offset-10 {
+ margin-right: 83.33333333%;
+ margin-left: 0;
+ }
+ .col-lg-offset-9 {
+ margin-right: 75%;
+ margin-left: 0;
+ }
+ .col-lg-offset-8 {
+ margin-right: 66.66666667%;
+ margin-left: 0;
+ }
+ .col-lg-offset-7 {
+ margin-right: 58.33333333%;
+ margin-left: 0;
+ }
+ .col-lg-offset-6 {
+ margin-right: 50%;
+ margin-left: 0;
+ }
+ .col-lg-offset-5 {
+ margin-right: 41.66666667%;
+ margin-left: 0;
+ }
+ .col-lg-offset-4 {
+ margin-right: 33.33333333%;
+ margin-left: 0;
+ }
+ .col-lg-offset-3 {
+ margin-right: 25%;
+ margin-left: 0;
+ }
+ .col-lg-offset-2 {
+ margin-right: 16.66666667%;
+ margin-left: 0;
+ }
+ .col-lg-offset-1 {
+ margin-right: 8.33333333%;
+ margin-left: 0;
+ }
+ .col-lg-offset-0 {
+ margin-right: 0%;
+ margin-left: 0;
+ }
+ }
+
+ caption {
+ text-align: right;
+ }
+
+ th:not(.mx-left-aligned) {
+ text-align: right;
+ }
+
+ @media screen and (max-width: 767px) {
+ .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-right: 0;
+ border-left: initial;
+ }
+ .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-left: 0;
+ border-right: initial;
+ }
+ }
+
+ .radio label,
+ .checkbox label {
+ padding-right: 20px;
+ padding-left: initial;
+ }
+
+ .radio input[type="radio"],
+ .radio-inline input[type="radio"],
+ .checkbox input[type="checkbox"],
+ .checkbox-inline input[type="checkbox"] {
+ margin-right: -20px;
+ margin-left: auto;
+ }
+
+ .radio-inline,
+ .checkbox-inline {
+ padding-right: 20px;
+ padding-left: 0;
+ }
+
+ .radio-inline + .radio-inline,
+ .checkbox-inline + .checkbox-inline {
+ margin-right: 10px;
+ margin-left: 0;
+ }
+
+ .has-feedback .form-control {
+ padding-left: 42.5px;
+ padding-right: 12px;
+ }
+
+ .form-control-feedback {
+ left: 0;
+ right: auto;
+ }
+
+ @media (min-width: 768px) {
+ .form-inline label {
+ padding-right: 0;
+ padding-left: initial;
+ }
+ .form-inline .radio input[type="radio"],
+ .form-inline .checkbox input[type="checkbox"] {
+ margin-right: 0;
+ margin-left: auto;
+ }
+ }
+ @media (min-width: 768px) {
+ .form-horizontal .control-label {
+ text-align: left;
+ }
+ }
+
+ .form-horizontal .has-feedback .form-control-feedback {
+ left: 15px;
+ right: auto;
+ }
+
+ .caret {
+ margin-right: 2px;
+ margin-left: 0;
+ }
+
+ .dropdown-menu {
+ right: 0;
+ left: auto;
+ float: left;
+ text-align: right;
+ }
+
+ .dropdown-menu.pull-right {
+ left: 0;
+ right: auto;
+ float: right;
+ }
+
+ .dropdown-menu-right {
+ left: auto;
+ right: 0;
+ }
+
+ .dropdown-menu-left {
+ left: 0;
+ right: auto;
+ }
+
+ @media (min-width: 768px) {
+ .navbar-right .dropdown-menu {
+ left: auto;
+ right: 0;
+ }
+ .navbar-right .dropdown-menu-left {
+ left: 0;
+ right: auto;
+ }
+ }
+
+ .btn-group > .btn,
+ .btn-group-vertical > .btn {
+ float: right;
+ }
+
+ .btn-group .btn + .btn,
+ .btn-group .btn + .btn-group,
+ .btn-group .btn-group + .btn,
+ .btn-group .btn-group + .btn-group {
+ margin-right: -1px;
+ margin-left: 0px;
+ }
+
+ .btn-toolbar {
+ margin-right: -5px;
+ margin-left: 0px;
+ }
+
+ .btn-toolbar .btn-group,
+ .btn-toolbar .input-group {
+ float: right;
+ }
+
+ .btn-toolbar > .btn,
+ .btn-toolbar > .btn-group,
+ .btn-toolbar > .input-group {
+ margin-right: 5px;
+ margin-left: 0px;
+ }
+
+ .btn-group > .btn:first-child {
+ margin-right: 0;
+ }
+
+ .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 4px;
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+ }
+
+ .btn-group > .btn:last-child:not(:first-child),
+ .btn-group > .dropdown-toggle:not(:first-child) {
+ border-top-left-radius: 4px;
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ }
+
+ .btn-group > .btn-group {
+ float: right;
+ }
+
+ .btn-group.btn-group-justified > .btn,
+ .btn-group.btn-group-justified > .btn-group {
+ float: none;
+ }
+
+ .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: 4px;
+ border-bottom-right-radius: 4px;
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+ }
+
+ .btn-group > .btn-group:last-child > .btn:first-child {
+ border-top-left-radius: 4px;
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ }
+
+ .btn .caret {
+ margin-right: 0;
+ }
+
+ .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-right: 0;
+ }
+
+ .input-group .form-control {
+ float: right;
+ }
+
+ .input-group .form-control:first-child,
+ .input-group-addon:first-child,
+ .input-group-btn:first-child > .btn,
+ .input-group-btn:first-child > .btn-group > .btn,
+ .input-group-btn:first-child > .dropdown-toggle,
+ .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
+ .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
+ border-bottom-right-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+ }
+
+ .input-group-addon:first-child {
+ border-left: 0px;
+ border-right: 1px solid;
+ }
+
+ .input-group .form-control:last-child,
+ .input-group-addon:last-child,
+ .input-group-btn:last-child > .btn,
+ .input-group-btn:last-child > .btn-group > .btn,
+ .input-group-btn:last-child > .dropdown-toggle,
+ .input-group-btn:first-child > .btn:not(:first-child),
+ .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
+ border-bottom-left-radius: 4px;
+ border-top-left-radius: 4px;
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ }
+
+ .input-group-addon:last-child {
+ border-left-width: 1px;
+ border-left-style: solid;
+ border-right: 0px;
+ }
+
+ .input-group-btn > .btn + .btn {
+ margin-right: -1px;
+ margin-left: auto;
+ }
+
+ .input-group-btn:first-child > .btn,
+ .input-group-btn:first-child > .btn-group {
+ margin-left: -1px;
+ margin-right: auto;
+ }
+
+ .input-group-btn:last-child > .btn,
+ .input-group-btn:last-child > .btn-group {
+ margin-right: -1px;
+ margin-left: auto;
+ }
+
+ .nav {
+ padding-right: 0;
+ padding-left: initial;
+ }
+
+ .nav-tabs > li {
+ float: right;
+ }
+
+ .nav-tabs > li > a {
+ margin-left: auto;
+ margin-right: -2px;
+ border-radius: 4px 4px 0 0;
+ }
+
+ .nav-pills > li {
+ float: right;
+ }
+
+ .nav-pills > li > a {
+ border-radius: 4px;
+ }
+
+ .nav-pills > li + li {
+ margin-right: 2px;
+ margin-left: auto;
+ }
+
+ .nav-stacked > li {
+ float: none;
+ }
+
+ .nav-stacked > li + li {
+ margin-right: 0;
+ margin-left: auto;
+ }
+
+ .nav-justified > .dropdown .dropdown-menu {
+ right: auto;
+ }
+
+ .nav-tabs-justified > li > a {
+ margin-left: 0;
+ margin-right: auto;
+ }
+
+ @media (min-width: 768px) {
+ .nav-tabs-justified > li > a {
+ border-radius: 4px 4px 0 0;
+ }
+ }
+ @media (min-width: 768px) {
+ .navbar-header {
+ float: right;
+ }
+ }
+
+ .navbar-collapse {
+ padding-right: 15px;
+ padding-left: 15px;
+ }
+
+ .navbar-brand {
+ float: right;
+ }
+
+ @media (min-width: 768px) {
+ .navbar > .container .navbar-brand,
+ .navbar > .container-fluid .navbar-brand {
+ margin-right: -15px;
+ margin-left: auto;
+ }
+ }
+
+ .navbar-toggle {
+ float: left;
+ margin-left: 15px;
+ margin-right: auto;
+ }
+
+ @media (max-width: 767px) {
+ .navbar-nav .open .dropdown-menu > li > a,
+ .navbar-nav .open .dropdown-menu .dropdown-header {
+ padding: 5px 25px 5px 15px;
+ }
+ }
+ @media (min-width: 768px) {
+ .navbar-nav {
+ float: right;
+ }
+ .navbar-nav > li {
+ float: right;
+ }
+ }
+ @media (min-width: 768px) {
+ .navbar-left.flip {
+ float: right !important;
+ }
+ .navbar-right:last-child {
+ margin-left: -15px;
+ margin-right: auto;
+ }
+ .navbar-right.flip {
+ float: left !important;
+ margin-left: -15px;
+ margin-right: auto;
+ }
+ .navbar-right .dropdown-menu {
+ left: 0;
+ right: auto;
+ }
+ }
+ @media (min-width: 768px) {
+ .navbar-text {
+ float: right;
+ }
+ .navbar-text.navbar-right:last-child {
+ margin-left: 0;
+ margin-right: auto;
+ }
+ }
+
+ .pagination {
+ padding-right: 0;
+ }
+
+ .pagination > li > a,
+ .pagination > li > span {
+ float: right;
+ margin-right: -1px;
+ margin-left: 0px;
+ }
+
+ .pagination > li:first-child > a,
+ .pagination > li:first-child > span {
+ margin-left: 0;
+ border-bottom-right-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+ }
+
+ .pagination > li:last-child > a,
+ .pagination > li:last-child > span {
+ margin-right: -1px;
+ border-bottom-left-radius: 4px;
+ border-top-left-radius: 4px;
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ }
+
+ .pager {
+ padding-right: 0;
+ padding-left: initial;
+ }
+
+ .pager .next > a,
+ .pager .next > span {
+ float: left;
+ }
+
+ .pager .previous > a,
+ .pager .previous > span {
+ float: right;
+ }
+
+ .nav-pills > li > a > .badge {
+ margin-left: 0px;
+ margin-right: 3px;
+ }
+
+ .list-group-item > .badge {
+ float: left;
+ }
+
+ .list-group-item > .badge + .badge {
+ margin-left: 5px;
+ margin-right: auto;
+ }
+
+ .alert-dismissable,
+ .alert-dismissible {
+ padding-left: 35px;
+ padding-right: 15px;
+ }
+
+ .alert-dismissable .close,
+ .alert-dismissible .close {
+ right: auto;
+ left: -21px;
+ }
+
+ .progress-bar {
+ float: right;
+ }
+
+ .media > .pull-left {
+ margin-right: 10px;
+ }
+
+ .media > .pull-left.flip {
+ margin-right: 0;
+ margin-left: 10px;
+ }
+
+ .media > .pull-right {
+ margin-left: 10px;
+ }
+
+ .media > .pull-right.flip {
+ margin-left: 0;
+ margin-right: 10px;
+ }
+
+ .media-right,
+ .media > .pull-right {
+ padding-right: 10px;
+ padding-left: initial;
+ }
+
+ .media-left,
+ .media > .pull-left {
+ padding-left: 10px;
+ padding-right: initial;
+ }
+
+ .media-list {
+ padding-right: 0;
+ padding-left: initial;
+ list-style: none;
+ }
+
+ .list-group {
+ padding-right: 0;
+ padding-left: initial;
+ }
+
+ .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
+ .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
+ .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+ .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+ .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
+ .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
+ .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
+ .panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > tbody:first-child
+ > tr:first-child
+ th:first-child {
+ border-top-right-radius: 3px;
+ border-top-left-radius: 0;
+ }
+
+ .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
+ .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
+ .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+ .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+ .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
+ .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
+ .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
+ .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
+ border-top-left-radius: 3px;
+ border-top-right-radius: 0;
+ }
+
+ .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+ .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+ .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+ .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
+ border-bottom-left-radius: 3px;
+ border-top-right-radius: 0;
+ }
+
+ .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+ .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+ .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+ .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
+ border-bottom-right-radius: 3px;
+ border-top-left-radius: 0;
+ }
+
+ .panel > .table-bordered > thead > tr > th:first-child,
+ .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
+ .panel > .table-bordered > tbody > tr > th:first-child,
+ .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
+ .panel > .table-bordered > tfoot > tr > th:first-child,
+ .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+ .panel > .table-bordered > thead > tr > td:first-child,
+ .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
+ .panel > .table-bordered > tbody > tr > td:first-child,
+ .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
+ .panel > .table-bordered > tfoot > tr > td:first-child,
+ .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-right: 0;
+ border-left: none;
+ }
+
+ .panel > .table-bordered > thead > tr > th:last-child,
+ .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
+ .panel > .table-bordered > tbody > tr > th:last-child,
+ .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
+ .panel > .table-bordered > tfoot > tr > th:last-child,
+ .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+ .panel > .table-bordered > thead > tr > td:last-child,
+ .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
+ .panel > .table-bordered > tbody > tr > td:last-child,
+ .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
+ .panel > .table-bordered > tfoot > tr > td:last-child,
+ .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: none;
+ border-left: 0;
+ }
+
+ .embed-responsive .embed-responsive-item,
+ .embed-responsive iframe,
+ .embed-responsive embed,
+ .embed-responsive object {
+ right: 0;
+ left: auto;
+ }
+
+ .close {
+ float: left;
+ }
+
+ .modal-footer {
+ text-align: left;
+ }
+
+ .modal-footer.flip {
+ text-align: right;
+ }
+
+ .modal-footer .btn + .btn {
+ margin-left: auto;
+ margin-right: 5px;
+ }
+
+ .modal-footer .btn-group .btn + .btn {
+ margin-right: -1px;
+ margin-left: auto;
+ }
+
+ .modal-footer .btn-block + .btn-block {
+ margin-right: 0;
+ margin-left: auto;
+ }
+
+ .popover {
+ left: auto;
+ text-align: right;
+ }
+
+ .popover.top > .arrow {
+ right: 50%;
+ left: auto;
+ margin-right: -11px;
+ margin-left: auto;
+ }
+
+ .popover.top > .arrow:after {
+ margin-right: -10px;
+ margin-left: auto;
+ }
+
+ .popover.bottom > .arrow {
+ right: 50%;
+ left: auto;
+ margin-right: -11px;
+ margin-left: auto;
+ }
+
+ .popover.bottom > .arrow:after {
+ margin-right: -10px;
+ margin-left: auto;
+ }
+
+ .carousel-control {
+ right: 0;
+ bottom: 0;
+ }
+
+ .carousel-control.left {
+ right: auto;
+ left: 0;
+ 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: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
+ }
+
+ .carousel-control.right {
+ left: auto;
+ right: 0;
+ background-image: -webkit-linear-gradient(
+ left,
+ color-stop(rgba(0, 0, 0, 0.0001) 0%),
+ color-stop(rgba(0, 0, 0, 0.5) 100%)
+ );
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
+ }
+
+ .carousel-control .icon-prev,
+ .carousel-control .glyphicon-chevron-left {
+ left: 50%;
+ right: auto;
+ margin-right: -10px;
+ }
+
+ .carousel-control .icon-next,
+ .carousel-control .glyphicon-chevron-right {
+ right: 50%;
+ left: auto;
+ margin-left: -10px;
+ }
+
+ .carousel-indicators {
+ right: 50%;
+ left: 0;
+ margin-right: -30%;
+ margin-left: 0;
+ padding-left: 0;
+ }
+
+ @media screen and (min-width: 768px) {
+ .carousel-control .glyphicon-chevron-left,
+ .carousel-control .icon-prev {
+ margin-left: 0;
+ margin-right: -15px;
+ }
+ .carousel-control .glyphicon-chevron-right,
+ .carousel-control .icon-next {
+ margin-left: 0;
+ margin-right: -15px;
+ }
+ .carousel-caption {
+ left: 20%;
+ right: 20%;
+ padding-bottom: 30px;
+ }
+ }
+
+ .pull-right.flip {
+ float: left !important;
+ }
+
+ .pull-left.flip {
+ float: right !important;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/_legacy/bootstrap/_bootstrap.scss b/themesource/atlas_core/web/core/_legacy/bootstrap/_bootstrap.scss
new file mode 100644
index 00000000..304deb6b
--- /dev/null
+++ b/themesource/atlas_core/web/core/_legacy/bootstrap/_bootstrap.scss
@@ -0,0 +1,6821 @@
+/*!
+ * Bootstrap v3.3.4 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+@mixin bootstrap() {
+ /*! normalize.css v3.0.2 | MIT License | git.io/normalize */
+ html {
+ font-family: sans-serif;
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
+ }
+ body {
+ margin: 0;
+ }
+ article,
+ aside,
+ details,
+ figcaption,
+ figure,
+ footer,
+ header,
+ hgroup,
+ main,
+ menu,
+ nav,
+ section,
+ summary {
+ display: block;
+ }
+ audio,
+ canvas,
+ progress,
+ video {
+ display: inline-block;
+ vertical-align: baseline;
+ }
+ audio:not([controls]) {
+ display: none;
+ height: 0;
+ }
+ [hidden],
+ template {
+ display: none;
+ }
+ a {
+ background-color: transparent;
+ }
+ a:active,
+ a:hover {
+ outline: 0;
+ }
+ abbr[title] {
+ border-bottom: 1px dotted;
+ }
+ b,
+ strong {
+ font-weight: bold;
+ }
+ dfn {
+ font-style: italic;
+ }
+ h1 {
+ margin: 0.67em 0;
+ font-size: 2em;
+ }
+ mark {
+ color: #000;
+ background: #ff0;
+ }
+ small {
+ font-size: 80%;
+ }
+ sub,
+ sup {
+ position: relative;
+ font-size: 75%;
+ line-height: 0;
+ vertical-align: baseline;
+ }
+ sup {
+ top: -0.5em;
+ }
+ sub {
+ bottom: -0.25em;
+ }
+ img {
+ border: 0;
+ }
+ svg:not(:root) {
+ overflow: hidden;
+ }
+ figure {
+ margin: 1em 40px;
+ }
+ hr {
+ height: 0;
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ }
+ pre {
+ overflow: auto;
+ }
+ code,
+ kbd,
+ pre,
+ samp {
+ font-family: monospace, monospace;
+ font-size: 1em;
+ }
+ button,
+ input,
+ optgroup,
+ select,
+ textarea {
+ margin: 0;
+ font: inherit;
+ color: inherit;
+ }
+ button {
+ overflow: visible;
+ }
+ button,
+ select {
+ text-transform: none;
+ }
+ button,
+ html input[type="button"],
+ input[type="reset"],
+ input[type="submit"] {
+ -webkit-appearance: button;
+ cursor: pointer;
+ }
+ //button[disabled],
+ //html input[disabled] {
+ // cursor: default;
+ //}
+ button::-moz-focus-inner,
+ input::-moz-focus-inner {
+ padding: 0;
+ border: 0;
+ }
+ input {
+ line-height: normal;
+ }
+ input[type="checkbox"],
+ input[type="radio"] {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: 0;
+ }
+ input[type="number"]::-webkit-inner-spin-button,
+ input[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+ }
+ input[type="search"] {
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ -webkit-appearance: textfield;
+ }
+ input[type="search"]::-webkit-search-cancel-button,
+ input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+ }
+ fieldset {
+ padding: 0.35em 0.625em 0.75em;
+ margin: 0 2px;
+ border: 1px solid #c0c0c0;
+ }
+ legend {
+ padding: 0;
+ border: 0;
+ }
+ textarea {
+ overflow: auto;
+ }
+ optgroup {
+ font-weight: bold;
+ }
+ table {
+ border-spacing: 0;
+ border-collapse: collapse;
+ }
+ td,
+ th {
+ padding: 0;
+ }
+ /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
+ @media print {
+ *,
+ *:before,
+ *:after {
+ color: #000 !important;
+ text-shadow: none !important;
+ background: transparent !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+ }
+ a,
+ a:visited {
+ text-decoration: underline;
+ }
+ a[href]:after {
+ content: " (" attr(href) ")";
+ }
+ abbr[title]:after {
+ content: " (" attr(title) ")";
+ }
+ a[href^="#"]:after,
+ a[href^="javascript:"]:after {
+ content: "";
+ }
+ pre,
+ blockquote {
+ border: 1px solid #999;
+
+ page-break-inside: avoid;
+ }
+ thead {
+ display: table-header-group;
+ }
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+ img {
+ max-width: 100% !important;
+ }
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+ select {
+ background: #fff !important;
+ }
+ .navbar {
+ display: none;
+ }
+ .btn > .caret,
+ .dropup > .btn > .caret {
+ border-top-color: #000 !important;
+ }
+ .label {
+ border: 1px solid #000;
+ }
+ .table {
+ border-collapse: collapse !important;
+ }
+ .table td,
+ .table th {
+ background-color: #fff !important;
+ }
+ .table-bordered th,
+ .table-bordered td {
+ border: 1px solid #ddd !important;
+ }
+ }
+ @font-face {
+ font-family: "Glyphicons Halflings";
+ src: url("./resources/glyphicons-halflings-regular.woff2") format("woff2");
+ }
+ .glyphicon {
+ position: relative;
+ top: 1px;
+ display: inline-block;
+ font-family: "Glyphicons Halflings";
+ font-style: normal;
+ font-weight: normal;
+ line-height: 1;
+
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ }
+ .glyphicon-asterisk:before {
+ content: "\2a";
+ }
+ .glyphicon-plus:before {
+ content: "\2b";
+ }
+ .glyphicon-euro:before,
+ .glyphicon-eur:before {
+ content: "\20ac";
+ }
+ .glyphicon-minus:before {
+ content: "\2212";
+ }
+ .glyphicon-cloud:before {
+ content: "\2601";
+ }
+ .glyphicon-envelope:before {
+ content: "\2709";
+ }
+ .glyphicon-pencil:before {
+ content: "\270f";
+ }
+ .glyphicon-glass:before {
+ content: "\e001";
+ }
+ .glyphicon-music:before {
+ content: "\e002";
+ }
+ .glyphicon-search:before {
+ content: "\e003";
+ }
+ .glyphicon-heart:before {
+ content: "\e005";
+ }
+ .glyphicon-star:before {
+ content: "\e006";
+ }
+ .glyphicon-star-empty:before {
+ content: "\e007";
+ }
+ .glyphicon-user:before {
+ content: "\e008";
+ }
+ .glyphicon-film:before {
+ content: "\e009";
+ }
+ .glyphicon-th-large:before {
+ content: "\e010";
+ }
+ .glyphicon-th:before {
+ content: "\e011";
+ }
+ .glyphicon-th-list:before {
+ content: "\e012";
+ }
+ .glyphicon-ok:before {
+ content: "\e013";
+ }
+ .glyphicon-remove:before {
+ content: "\e014";
+ }
+ .glyphicon-zoom-in:before {
+ content: "\e015";
+ }
+ .glyphicon-zoom-out:before {
+ content: "\e016";
+ }
+ .glyphicon-off:before {
+ content: "\e017";
+ }
+ .glyphicon-signal:before {
+ content: "\e018";
+ }
+ .glyphicon-cog:before {
+ content: "\e019";
+ }
+ .glyphicon-trash:before {
+ content: "\e020";
+ }
+ .glyphicon-home:before {
+ content: "\e021";
+ }
+ .glyphicon-file:before {
+ content: "\e022";
+ }
+ .glyphicon-time:before {
+ content: "\e023";
+ }
+ .glyphicon-road:before {
+ content: "\e024";
+ }
+ .glyphicon-download-alt:before {
+ content: "\e025";
+ }
+ .glyphicon-download:before {
+ content: "\e026";
+ }
+ .glyphicon-upload:before {
+ content: "\e027";
+ }
+ .glyphicon-inbox:before {
+ content: "\e028";
+ }
+ .glyphicon-play-circle:before {
+ content: "\e029";
+ }
+ .glyphicon-repeat:before {
+ content: "\e030";
+ }
+ .glyphicon-refresh:before {
+ content: "\e031";
+ }
+ .glyphicon-list-alt:before {
+ content: "\e032";
+ }
+ .glyphicon-lock:before {
+ content: "\e033";
+ }
+ .glyphicon-flag:before {
+ content: "\e034";
+ }
+ .glyphicon-headphones:before {
+ content: "\e035";
+ }
+ .glyphicon-volume-off:before {
+ content: "\e036";
+ }
+ .glyphicon-volume-down:before {
+ content: "\e037";
+ }
+ .glyphicon-volume-up:before {
+ content: "\e038";
+ }
+ .glyphicon-qrcode:before {
+ content: "\e039";
+ }
+ .glyphicon-barcode:before {
+ content: "\e040";
+ }
+ .glyphicon-tag:before {
+ content: "\e041";
+ }
+ .glyphicon-tags:before {
+ content: "\e042";
+ }
+ .glyphicon-book:before {
+ content: "\e043";
+ }
+ .glyphicon-bookmark:before {
+ content: "\e044";
+ }
+ .glyphicon-print:before {
+ content: "\e045";
+ }
+ .glyphicon-camera:before {
+ content: "\e046";
+ }
+ .glyphicon-font:before {
+ content: "\e047";
+ }
+ .glyphicon-bold:before {
+ content: "\e048";
+ }
+ .glyphicon-italic:before {
+ content: "\e049";
+ }
+ .glyphicon-text-height:before {
+ content: "\e050";
+ }
+ .glyphicon-text-width:before {
+ content: "\e051";
+ }
+ .glyphicon-align-left:before {
+ content: "\e052";
+ }
+ .glyphicon-align-center:before {
+ content: "\e053";
+ }
+ .glyphicon-align-right:before {
+ content: "\e054";
+ }
+ .glyphicon-align-justify:before {
+ content: "\e055";
+ }
+ .glyphicon-list:before {
+ content: "\e056";
+ }
+ .glyphicon-indent-left:before {
+ content: "\e057";
+ }
+ .glyphicon-indent-right:before {
+ content: "\e058";
+ }
+ .glyphicon-facetime-video:before {
+ content: "\e059";
+ }
+ .glyphicon-picture:before {
+ content: "\e060";
+ }
+ .glyphicon-map-marker:before {
+ content: "\e062";
+ }
+ .glyphicon-adjust:before {
+ content: "\e063";
+ }
+ .glyphicon-tint:before {
+ content: "\e064";
+ }
+ .glyphicon-edit:before {
+ content: "\e065";
+ }
+ .glyphicon-share:before {
+ content: "\e066";
+ }
+ .glyphicon-check:before {
+ content: "\e067";
+ }
+ .glyphicon-move:before {
+ content: "\e068";
+ }
+ .glyphicon-step-backward:before {
+ content: "\e069";
+ }
+ .glyphicon-fast-backward:before {
+ content: "\e070";
+ }
+ .glyphicon-backward:before {
+ content: "\e071";
+ }
+ .glyphicon-play:before {
+ content: "\e072";
+ }
+ .glyphicon-pause:before {
+ content: "\e073";
+ }
+ .glyphicon-stop:before {
+ content: "\e074";
+ }
+ .glyphicon-forward:before {
+ content: "\e075";
+ }
+ .glyphicon-fast-forward:before {
+ content: "\e076";
+ }
+ .glyphicon-step-forward:before {
+ content: "\e077";
+ }
+ .glyphicon-eject:before {
+ content: "\e078";
+ }
+ .glyphicon-chevron-left:before {
+ content: "\e079";
+ }
+ .glyphicon-chevron-right:before {
+ content: "\e080";
+ }
+ .glyphicon-plus-sign:before {
+ content: "\e081";
+ }
+ .glyphicon-minus-sign:before {
+ content: "\e082";
+ }
+ .glyphicon-remove-sign:before {
+ content: "\e083";
+ }
+ .glyphicon-ok-sign:before {
+ content: "\e084";
+ }
+ .glyphicon-question-sign:before {
+ content: "\e085";
+ }
+ .glyphicon-info-sign:before {
+ content: "\e086";
+ }
+ .glyphicon-screenshot:before {
+ content: "\e087";
+ }
+ .glyphicon-remove-circle:before {
+ content: "\e088";
+ }
+ .glyphicon-ok-circle:before {
+ content: "\e089";
+ }
+ .glyphicon-ban-circle:before {
+ content: "\e090";
+ }
+ .glyphicon-arrow-left:before {
+ content: "\e091";
+ }
+ .glyphicon-arrow-right:before {
+ content: "\e092";
+ }
+ .glyphicon-arrow-up:before {
+ content: "\e093";
+ }
+ .glyphicon-arrow-down:before {
+ content: "\e094";
+ }
+ .glyphicon-share-alt:before {
+ content: "\e095";
+ }
+ .glyphicon-resize-full:before {
+ content: "\e096";
+ }
+ .glyphicon-resize-small:before {
+ content: "\e097";
+ }
+ .glyphicon-exclamation-sign:before {
+ content: "\e101";
+ }
+ .glyphicon-gift:before {
+ content: "\e102";
+ }
+ .glyphicon-leaf:before {
+ content: "\e103";
+ }
+ .glyphicon-fire:before {
+ content: "\e104";
+ }
+ .glyphicon-eye-open:before {
+ content: "\e105";
+ }
+ .glyphicon-eye-close:before {
+ content: "\e106";
+ }
+ .glyphicon-warning-sign:before {
+ content: "\e107";
+ }
+ .glyphicon-plane:before {
+ content: "\e108";
+ }
+ .glyphicon-calendar:before {
+ content: "\e109";
+ }
+ .glyphicon-random:before {
+ content: "\e110";
+ }
+ .glyphicon-comment:before {
+ content: "\e111";
+ }
+ .glyphicon-magnet:before {
+ content: "\e112";
+ }
+ .glyphicon-chevron-up:before {
+ content: "\e113";
+ }
+ .glyphicon-chevron-down:before {
+ content: "\e114";
+ }
+ .glyphicon-retweet:before {
+ content: "\e115";
+ }
+ .glyphicon-shopping-cart:before {
+ content: "\e116";
+ }
+ .glyphicon-folder-close:before {
+ content: "\e117";
+ }
+ .glyphicon-folder-open:before {
+ content: "\e118";
+ }
+ .glyphicon-resize-vertical:before {
+ content: "\e119";
+ }
+ .glyphicon-resize-horizontal:before {
+ content: "\e120";
+ }
+ .glyphicon-hdd:before {
+ content: "\e121";
+ }
+ .glyphicon-bullhorn:before {
+ content: "\e122";
+ }
+ .glyphicon-bell:before {
+ content: "\e123";
+ }
+ .glyphicon-certificate:before {
+ content: "\e124";
+ }
+ .glyphicon-thumbs-up:before {
+ content: "\e125";
+ }
+ .glyphicon-thumbs-down:before {
+ content: "\e126";
+ }
+ .glyphicon-hand-right:before {
+ content: "\e127";
+ }
+ .glyphicon-hand-left:before {
+ content: "\e128";
+ }
+ .glyphicon-hand-up:before {
+ content: "\e129";
+ }
+ .glyphicon-hand-down:before {
+ content: "\e130";
+ }
+ .glyphicon-circle-arrow-right:before {
+ content: "\e131";
+ }
+ .glyphicon-circle-arrow-left:before {
+ content: "\e132";
+ }
+ .glyphicon-circle-arrow-up:before {
+ content: "\e133";
+ }
+ .glyphicon-circle-arrow-down:before {
+ content: "\e134";
+ }
+ .glyphicon-globe:before {
+ content: "\e135";
+ }
+ .glyphicon-wrench:before {
+ content: "\e136";
+ }
+ .glyphicon-tasks:before {
+ content: "\e137";
+ }
+ .glyphicon-filter:before {
+ content: "\e138";
+ }
+ .glyphicon-briefcase:before {
+ content: "\e139";
+ }
+ .glyphicon-fullscreen:before {
+ content: "\e140";
+ }
+ .glyphicon-dashboard:before {
+ content: "\e141";
+ }
+ .glyphicon-paperclip:before {
+ content: "\e142";
+ }
+ .glyphicon-heart-empty:before {
+ content: "\e143";
+ }
+ .glyphicon-link:before {
+ content: "\e144";
+ }
+ .glyphicon-phone:before {
+ content: "\e145";
+ }
+ .glyphicon-pushpin:before {
+ content: "\e146";
+ }
+ .glyphicon-usd:before {
+ content: "\e148";
+ }
+ .glyphicon-gbp:before {
+ content: "\e149";
+ }
+ .glyphicon-sort:before {
+ content: "\e150";
+ }
+ .glyphicon-sort-by-alphabet:before {
+ content: "\e151";
+ }
+ .glyphicon-sort-by-alphabet-alt:before {
+ content: "\e152";
+ }
+ .glyphicon-sort-by-order:before {
+ content: "\e153";
+ }
+ .glyphicon-sort-by-order-alt:before {
+ content: "\e154";
+ }
+ .glyphicon-sort-by-attributes:before {
+ content: "\e155";
+ }
+ .glyphicon-sort-by-attributes-alt:before {
+ content: "\e156";
+ }
+ .glyphicon-unchecked:before {
+ content: "\e157";
+ }
+ .glyphicon-expand:before {
+ content: "\e158";
+ }
+ .glyphicon-collapse-down:before {
+ content: "\e159";
+ }
+ .glyphicon-collapse-up:before {
+ content: "\e160";
+ }
+ .glyphicon-log-in:before {
+ content: "\e161";
+ }
+ .glyphicon-flash:before {
+ content: "\e162";
+ }
+ .glyphicon-log-out:before {
+ content: "\e163";
+ }
+ .glyphicon-new-window:before {
+ content: "\e164";
+ }
+ .glyphicon-record:before {
+ content: "\e165";
+ }
+ .glyphicon-save:before {
+ content: "\e166";
+ }
+ .glyphicon-open:before {
+ content: "\e167";
+ }
+ .glyphicon-saved:before {
+ content: "\e168";
+ }
+ .glyphicon-import:before {
+ content: "\e169";
+ }
+ .glyphicon-export:before {
+ content: "\e170";
+ }
+ .glyphicon-send:before {
+ content: "\e171";
+ }
+ .glyphicon-floppy-disk:before {
+ content: "\e172";
+ }
+ .glyphicon-floppy-saved:before {
+ content: "\e173";
+ }
+ .glyphicon-floppy-remove:before {
+ content: "\e174";
+ }
+ .glyphicon-floppy-save:before {
+ content: "\e175";
+ }
+ .glyphicon-floppy-open:before {
+ content: "\e176";
+ }
+ .glyphicon-credit-card:before {
+ content: "\e177";
+ }
+ .glyphicon-transfer:before {
+ content: "\e178";
+ }
+ .glyphicon-cutlery:before {
+ content: "\e179";
+ }
+ .glyphicon-header:before {
+ content: "\e180";
+ }
+ .glyphicon-compressed:before {
+ content: "\e181";
+ }
+ .glyphicon-earphone:before {
+ content: "\e182";
+ }
+ .glyphicon-phone-alt:before {
+ content: "\e183";
+ }
+ .glyphicon-tower:before {
+ content: "\e184";
+ }
+ .glyphicon-stats:before {
+ content: "\e185";
+ }
+ .glyphicon-sd-video:before {
+ content: "\e186";
+ }
+ .glyphicon-hd-video:before {
+ content: "\e187";
+ }
+ .glyphicon-subtitles:before {
+ content: "\e188";
+ }
+ .glyphicon-sound-stereo:before {
+ content: "\e189";
+ }
+ .glyphicon-sound-dolby:before {
+ content: "\e190";
+ }
+ .glyphicon-sound-5-1:before {
+ content: "\e191";
+ }
+ .glyphicon-sound-6-1:before {
+ content: "\e192";
+ }
+ .glyphicon-sound-7-1:before {
+ content: "\e193";
+ }
+ .glyphicon-copyright-mark:before {
+ content: "\e194";
+ }
+ .glyphicon-registration-mark:before {
+ content: "\e195";
+ }
+ .glyphicon-cloud-download:before {
+ content: "\e197";
+ }
+ .glyphicon-cloud-upload:before {
+ content: "\e198";
+ }
+ .glyphicon-tree-conifer:before {
+ content: "\e199";
+ }
+ .glyphicon-tree-deciduous:before {
+ content: "\e200";
+ }
+ .glyphicon-cd:before {
+ content: "\e201";
+ }
+ .glyphicon-save-file:before {
+ content: "\e202";
+ }
+ .glyphicon-open-file:before {
+ content: "\e203";
+ }
+ .glyphicon-level-up:before {
+ content: "\e204";
+ }
+ .glyphicon-copy:before {
+ content: "\e205";
+ }
+ .glyphicon-paste:before {
+ content: "\e206";
+ }
+ .glyphicon-alert:before {
+ content: "\e209";
+ }
+ .glyphicon-equalizer:before {
+ content: "\e210";
+ }
+ .glyphicon-king:before {
+ content: "\e211";
+ }
+ .glyphicon-queen:before {
+ content: "\e212";
+ }
+ .glyphicon-pawn:before {
+ content: "\e213";
+ }
+ .glyphicon-bishop:before {
+ content: "\e214";
+ }
+ .glyphicon-knight:before {
+ content: "\e215";
+ }
+ .glyphicon-baby-formula:before {
+ content: "\e216";
+ }
+ .glyphicon-tent:before {
+ content: "\26fa";
+ }
+ .glyphicon-blackboard:before {
+ content: "\e218";
+ }
+ .glyphicon-bed:before {
+ content: "\e219";
+ }
+ .glyphicon-apple:before {
+ content: "\f8ff";
+ }
+ .glyphicon-erase:before {
+ content: "\e221";
+ }
+ .glyphicon-hourglass:before {
+ content: "\231b";
+ }
+ .glyphicon-lamp:before {
+ content: "\e223";
+ }
+ .glyphicon-duplicate:before {
+ content: "\e224";
+ }
+ .glyphicon-piggy-bank:before {
+ content: "\e225";
+ }
+ .glyphicon-scissors:before {
+ content: "\e226";
+ }
+ .glyphicon-bitcoin:before {
+ content: "\e227";
+ }
+ .glyphicon-btc:before {
+ content: "\e227";
+ }
+ .glyphicon-xbt:before {
+ content: "\e227";
+ }
+ .glyphicon-yen:before {
+ content: "\00a5";
+ }
+ .glyphicon-jpy:before {
+ content: "\00a5";
+ }
+ .glyphicon-ruble:before {
+ content: "\20bd";
+ }
+ .glyphicon-rub:before {
+ content: "\20bd";
+ }
+ .glyphicon-scale:before {
+ content: "\e230";
+ }
+ .glyphicon-ice-lolly:before {
+ content: "\e231";
+ }
+ .glyphicon-ice-lolly-tasted:before {
+ content: "\e232";
+ }
+ .glyphicon-education:before {
+ content: "\e233";
+ }
+ .glyphicon-option-horizontal:before {
+ content: "\e234";
+ }
+ .glyphicon-option-vertical:before {
+ content: "\e235";
+ }
+ .glyphicon-menu-hamburger:before {
+ content: "\e236";
+ }
+ .glyphicon-modal-window:before {
+ content: "\e237";
+ }
+ .glyphicon-oil:before {
+ content: "\e238";
+ }
+ .glyphicon-grain:before {
+ content: "\e239";
+ }
+ .glyphicon-sunglasses:before {
+ content: "\e240";
+ }
+ .glyphicon-text-size:before {
+ content: "\e241";
+ }
+ .glyphicon-text-color:before {
+ content: "\e242";
+ }
+ .glyphicon-text-background:before {
+ content: "\e243";
+ }
+ .glyphicon-object-align-top:before {
+ content: "\e244";
+ }
+ .glyphicon-object-align-bottom:before {
+ content: "\e245";
+ }
+ .glyphicon-object-align-horizontal:before {
+ content: "\e246";
+ }
+ .glyphicon-object-align-left:before {
+ content: "\e247";
+ }
+ .glyphicon-object-align-vertical:before {
+ content: "\e248";
+ }
+ .glyphicon-object-align-right:before {
+ content: "\e249";
+ }
+ .glyphicon-triangle-right:before {
+ content: "\e250";
+ }
+ .glyphicon-triangle-left:before {
+ content: "\e251";
+ }
+ .glyphicon-triangle-bottom:before {
+ content: "\e252";
+ }
+ .glyphicon-triangle-top:before {
+ content: "\e253";
+ }
+ .glyphicon-console:before {
+ content: "\e254";
+ }
+ .glyphicon-superscript:before {
+ content: "\e255";
+ }
+ .glyphicon-subscript:before {
+ content: "\e256";
+ }
+ .glyphicon-menu-left:before {
+ content: "\e257";
+ }
+ .glyphicon-menu-right:before {
+ content: "\e258";
+ }
+ .glyphicon-menu-down:before {
+ content: "\e259";
+ }
+ .glyphicon-menu-up:before {
+ content: "\e260";
+ }
+ * {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ }
+ *:before,
+ *:after {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ }
+ html {
+ font-size: 10px;
+
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ }
+ body {
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 14px;
+ line-height: 1.42857143;
+ color: #333;
+ background-color: #fff;
+ }
+ input,
+ button,
+ select,
+ textarea {
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit;
+ }
+ a {
+ color: #337ab7;
+ text-decoration: none;
+ }
+ a:hover,
+ a:focus {
+ color: #23527c;
+ text-decoration: underline;
+ }
+ a:focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+ }
+ figure {
+ margin: 0;
+ }
+ img {
+ vertical-align: middle;
+ }
+ .img-responsive,
+ .thumbnail > img,
+ .thumbnail a > img,
+ .carousel-inner > .item > img,
+ .carousel-inner > .item > a > img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+ }
+ .img-rounded {
+ border-radius: 6px;
+ }
+ .img-thumbnail {
+ display: inline-block;
+ max-width: 100%;
+ height: auto;
+ padding: 4px;
+ line-height: 1.42857143;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ -webkit-transition: all 0.2s ease-in-out;
+ -o-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 #eee;
+ }
+ .sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0;
+ }
+ .sr-only-focusable:active,
+ .sr-only-focusable:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+ }
+ [role="button"] {
+ cursor: pointer;
+ }
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6,
+ .h1,
+ .h2,
+ .h3,
+ .h4,
+ .h5,
+ .h6 {
+ font-family: inherit;
+ font-weight: 500;
+ line-height: 1.1;
+ color: inherit;
+ }
+ h1 small,
+ h2 small,
+ h3 small,
+ h4 small,
+ h5 small,
+ h6 small,
+ .h1 small,
+ .h2 small,
+ .h3 small,
+ .h4 small,
+ .h5 small,
+ .h6 small,
+ h1 .small,
+ h2 .small,
+ h3 .small,
+ h4 .small,
+ h5 .small,
+ h6 .small,
+ .h1 .small,
+ .h2 .small,
+ .h3 .small,
+ .h4 .small,
+ .h5 .small,
+ .h6 .small {
+ font-weight: normal;
+ line-height: 1;
+ color: #777;
+ }
+ h1,
+ .h1,
+ h2,
+ .h2,
+ h3,
+ .h3 {
+ margin-top: 20px;
+ margin-bottom: 10px;
+ }
+ h1 small,
+ .h1 small,
+ h2 small,
+ .h2 small,
+ h3 small,
+ .h3 small,
+ h1 .small,
+ .h1 .small,
+ h2 .small,
+ .h2 .small,
+ h3 .small,
+ .h3 .small {
+ font-size: 65%;
+ }
+ h4,
+ .h4,
+ h5,
+ .h5,
+ h6,
+ .h6 {
+ margin-top: 10px;
+ margin-bottom: 10px;
+ }
+ h4 small,
+ .h4 small,
+ h5 small,
+ .h5 small,
+ h6 small,
+ .h6 small,
+ h4 .small,
+ .h4 .small,
+ h5 .small,
+ .h5 .small,
+ h6 .small,
+ .h6 .small {
+ font-size: 75%;
+ }
+ h1,
+ .h1 {
+ font-size: 36px;
+ }
+ h2,
+ .h2 {
+ font-size: 30px;
+ }
+ h3,
+ .h3 {
+ font-size: 24px;
+ }
+ h4,
+ .h4 {
+ font-size: 18px;
+ }
+ h5,
+ .h5 {
+ font-size: 14px;
+ }
+ h6,
+ .h6 {
+ font-size: 12px;
+ }
+ p {
+ margin: 0 0 10px;
+ }
+ .lead {
+ margin-bottom: 20px;
+ font-size: 16px;
+ font-weight: 300;
+ line-height: 1.4;
+ }
+ @media (min-width: 768px) {
+ .lead {
+ font-size: 21px;
+ }
+ }
+ small,
+ .small {
+ font-size: 85%;
+ }
+ mark,
+ .mark {
+ padding: 0.2em;
+ background-color: #fcf8e3;
+ }
+ .text-left {
+ text-align: left;
+ }
+ .text-right {
+ text-align: right;
+ }
+ .text-center {
+ text-align: center;
+ }
+ .text-justify {
+ text-align: justify;
+ }
+ .text-nowrap {
+ white-space: nowrap;
+ }
+ .text-lowercase {
+ text-transform: lowercase;
+ }
+ .text-uppercase {
+ text-transform: uppercase;
+ }
+ .text-capitalize {
+ text-transform: capitalize;
+ }
+ .text-muted {
+ color: #777;
+ }
+ .text-primary {
+ color: #337ab7;
+ }
+ a.text-primary:hover {
+ color: #286090;
+ }
+ .text-success {
+ color: #3c763d;
+ }
+ a.text-success:hover {
+ color: #2b542c;
+ }
+ .text-info {
+ color: #31708f;
+ }
+ a.text-info:hover {
+ color: #245269;
+ }
+ .text-warning {
+ color: #8a6d3b;
+ }
+ a.text-warning:hover {
+ color: #66512c;
+ }
+ .text-danger {
+ color: #a94442;
+ }
+ a.text-danger:hover {
+ color: #843534;
+ }
+ .bg-primary {
+ color: #fff;
+ background-color: #337ab7;
+ }
+ a.bg-primary:hover {
+ background-color: #286090;
+ }
+ .bg-success {
+ background-color: #dff0d8;
+ }
+ a.bg-success:hover {
+ background-color: #c1e2b3;
+ }
+ .bg-info {
+ background-color: #d9edf7;
+ }
+ a.bg-info:hover {
+ background-color: #afd9ee;
+ }
+ .bg-warning {
+ background-color: #fcf8e3;
+ }
+ a.bg-warning:hover {
+ background-color: #f7ecb5;
+ }
+ .bg-danger {
+ background-color: #f2dede;
+ }
+ a.bg-danger:hover {
+ background-color: #e4b9b9;
+ }
+ .page-header {
+ padding-bottom: 9px;
+ margin: 40px 0 20px;
+ border-bottom: 1px solid #eee;
+ }
+ ul,
+ ol {
+ margin-top: 0;
+ margin-bottom: 10px;
+ }
+ ul ul,
+ ol ul,
+ ul ol,
+ ol ol {
+ margin-bottom: 0;
+ }
+ .list-unstyled {
+ padding-left: 0;
+ list-style: none;
+ }
+ .list-inline {
+ padding-left: 0;
+ margin-left: -5px;
+ list-style: none;
+ }
+ .list-inline > li {
+ display: inline-block;
+ padding-right: 5px;
+ padding-left: 5px;
+ }
+ dl {
+ margin-top: 0;
+ margin-bottom: 20px;
+ }
+ dt,
+ dd {
+ line-height: 1.42857143;
+ }
+ dt {
+ font-weight: bold;
+ }
+ dd {
+ margin-left: 0;
+ }
+ @media (min-width: 768px) {
+ .dl-horizontal dt {
+ float: left;
+ width: 160px;
+ overflow: hidden;
+ clear: left;
+ text-align: right;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+ .dl-horizontal dd {
+ margin-left: 180px;
+ }
+ }
+ abbr[title],
+ abbr[data-original-title] {
+ cursor: help;
+ border-bottom: 1px dotted #777;
+ }
+ .initialism {
+ font-size: 90%;
+ text-transform: uppercase;
+ }
+ blockquote {
+ padding: 10px 20px;
+ margin: 0 0 20px;
+ font-size: 17.5px;
+ border-left: 5px solid #eee;
+ }
+ blockquote p:last-child,
+ blockquote ul:last-child,
+ blockquote ol:last-child {
+ margin-bottom: 0;
+ }
+ blockquote footer,
+ blockquote small,
+ blockquote .small {
+ display: block;
+ font-size: 80%;
+ line-height: 1.42857143;
+ color: #777;
+ }
+ blockquote footer:before,
+ blockquote small:before,
+ blockquote .small:before {
+ content: "\2014 \00A0";
+ }
+ .blockquote-reverse,
+ blockquote.pull-right {
+ padding-right: 15px;
+ padding-left: 0;
+ text-align: right;
+ border-right: 5px solid #eee;
+ border-left: 0;
+ }
+ .blockquote-reverse footer:before,
+ blockquote.pull-right footer:before,
+ .blockquote-reverse small:before,
+ blockquote.pull-right small:before,
+ .blockquote-reverse .small:before,
+ blockquote.pull-right .small:before {
+ content: "";
+ }
+ .blockquote-reverse footer:after,
+ blockquote.pull-right footer:after,
+ .blockquote-reverse small:after,
+ blockquote.pull-right small:after,
+ .blockquote-reverse .small:after,
+ blockquote.pull-right .small:after {
+ content: "\00A0 \2014";
+ }
+ address {
+ margin-bottom: 20px;
+ font-style: normal;
+ line-height: 1.42857143;
+ }
+ code,
+ kbd,
+ pre,
+ samp {
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
+ }
+ code {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #c7254e;
+ background-color: #f9f2f4;
+ border-radius: 4px;
+ }
+ kbd {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #fff;
+ background-color: #333;
+ border-radius: 3px;
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
+ }
+ kbd kbd {
+ padding: 0;
+ font-size: 100%;
+ font-weight: bold;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ }
+ pre {
+ display: block;
+ padding: 9.5px;
+ margin: 0 0 10px;
+ font-size: 13px;
+ line-height: 1.42857143;
+ color: #333;
+ word-break: break-all;
+ word-wrap: break-word;
+ background-color: #f5f5f5;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+ }
+ pre code {
+ padding: 0;
+ font-size: inherit;
+ color: inherit;
+ white-space: pre-wrap;
+ background-color: transparent;
+ border-radius: 0;
+ }
+ .pre-scrollable {
+ max-height: 340px;
+ overflow-y: scroll;
+ }
+ .container {
+ padding-right: 15px;
+ padding-left: 15px;
+ margin-right: auto;
+ margin-left: auto;
+ }
+ @media (min-width: 768px) {
+ .container {
+ width: 750px;
+ }
+ }
+ @media (min-width: 992px) {
+ .container {
+ width: 970px;
+ }
+ }
+ @media (min-width: 1200px) {
+ .container {
+ width: 1170px;
+ }
+ }
+ .container-fluid {
+ padding-right: 15px;
+ padding-left: 15px;
+ margin-right: auto;
+ margin-left: auto;
+ }
+ .row {
+ margin-right: -15px;
+ margin-left: -15px;
+ }
+ //.col-xs-1,
+ //.col-sm-1,
+ //.col-md-1,
+ //.col-lg-1,
+ //.col-xs-2,
+ //.col-sm-2,
+ //.col-md-2,
+ //.col-lg-2,
+ //.col-xs-3,
+ //.col-sm-3,
+ //.col-md-3,
+ //.col-lg-3,
+ //.col-xs-4,
+ //.col-sm-4,
+ //.col-md-4,
+ //.col-lg-4,
+ //.col-xs-5,
+ //.col-sm-5,
+ //.col-md-5,
+ //.col-lg-5,
+ //.col-xs-6,
+ //.col-sm-6,
+ //.col-md-6,
+ //.col-lg-6,
+ //.col-xs-7,
+ //.col-sm-7,
+ //.col-md-7,
+ //.col-lg-7,
+ //.col-xs-8,
+ //.col-sm-8,
+ //.col-md-8,
+ //.col-lg-8,
+ //.col-xs-9,
+ //.col-sm-9,
+ //.col-md-9,
+ //.col-lg-9,
+ //.col-xs-10,
+ //.col-sm-10,
+ //.col-md-10,
+ //.col-lg-10,
+ //.col-xs-11,
+ //.col-sm-11,
+ //.col-md-11,
+ //.col-lg-11,
+ //.col-xs-12,
+ //.col-sm-12,
+ //.col-md-12,
+ //.col-lg-12 {
+ // position: relative;
+ // min-height: 1px;
+ // padding-right: 15px;
+ // padding-left: 15px;
+ //}
+ //.col-xs-1,
+ //.col-xs-2,
+ //.col-xs-3,
+ //.col-xs-4,
+ //.col-xs-5,
+ //.col-xs-6,
+ //.col-xs-7,
+ //.col-xs-8,
+ //.col-xs-9,
+ //.col-xs-10,
+ //.col-xs-11,
+ //.col-xs-12 {
+ // float: left;
+ //}
+ //.col-xs-12 {
+ // width: 100%;
+ //}
+ //.col-xs-11 {
+ // width: 91.66666667%;
+ //}
+ //.col-xs-10 {
+ // width: 83.33333333%;
+ //}
+ //.col-xs-9 {
+ // width: 75%;
+ //}
+ //.col-xs-8 {
+ // width: 66.66666667%;
+ //}
+ //.col-xs-7 {
+ // width: 58.33333333%;
+ //}
+ //.col-xs-6 {
+ // width: 50%;
+ //}
+ //.col-xs-5 {
+ // width: 41.66666667%;
+ //}
+ //.col-xs-4 {
+ // width: 33.33333333%;
+ //}
+ //.col-xs-3 {
+ // width: 25%;
+ //}
+ //.col-xs-2 {
+ // width: 16.66666667%;
+ //}
+ //.col-xs-1 {
+ // width: 8.33333333%;
+ //}
+ //.col-xs-pull-12 {
+ // right: 100%;
+ //}
+ //.col-xs-pull-11 {
+ // right: 91.66666667%;
+ //}
+ //.col-xs-pull-10 {
+ // right: 83.33333333%;
+ //}
+ //.col-xs-pull-9 {
+ // right: 75%;
+ //}
+ //.col-xs-pull-8 {
+ // right: 66.66666667%;
+ //}
+ //.col-xs-pull-7 {
+ // right: 58.33333333%;
+ //}
+ //.col-xs-pull-6 {
+ // right: 50%;
+ //}
+ //.col-xs-pull-5 {
+ // right: 41.66666667%;
+ //}
+ //.col-xs-pull-4 {
+ // right: 33.33333333%;
+ //}
+ //.col-xs-pull-3 {
+ // right: 25%;
+ //}
+ //.col-xs-pull-2 {
+ // right: 16.66666667%;
+ //}
+ //.col-xs-pull-1 {
+ // right: 8.33333333%;
+ //}
+ //.col-xs-pull-0 {
+ // right: auto;
+ //}
+ //.col-xs-push-12 {
+ // left: 100%;
+ //}
+ //.col-xs-push-11 {
+ // left: 91.66666667%;
+ //}
+ //.col-xs-push-10 {
+ // left: 83.33333333%;
+ //}
+ //.col-xs-push-9 {
+ // left: 75%;
+ //}
+ //.col-xs-push-8 {
+ // left: 66.66666667%;
+ //}
+ //.col-xs-push-7 {
+ // left: 58.33333333%;
+ //}
+ //.col-xs-push-6 {
+ // left: 50%;
+ //}
+ //.col-xs-push-5 {
+ // left: 41.66666667%;
+ //}
+ //.col-xs-push-4 {
+ // left: 33.33333333%;
+ //}
+ //.col-xs-push-3 {
+ // left: 25%;
+ //}
+ //.col-xs-push-2 {
+ // left: 16.66666667%;
+ //}
+ //.col-xs-push-1 {
+ // left: 8.33333333%;
+ //}
+ //.col-xs-push-0 {
+ // left: auto;
+ //}
+ //.col-xs-offset-12 {
+ // margin-left: 100%;
+ //}
+ //.col-xs-offset-11 {
+ // margin-left: 91.66666667%;
+ //}
+ //.col-xs-offset-10 {
+ // margin-left: 83.33333333%;
+ //}
+ //.col-xs-offset-9 {
+ // margin-left: 75%;
+ //}
+ //.col-xs-offset-8 {
+ // margin-left: 66.66666667%;
+ //}
+ //.col-xs-offset-7 {
+ // margin-left: 58.33333333%;
+ //}
+ //.col-xs-offset-6 {
+ // margin-left: 50%;
+ //}
+ //.col-xs-offset-5 {
+ // margin-left: 41.66666667%;
+ //}
+ //.col-xs-offset-4 {
+ // margin-left: 33.33333333%;
+ //}
+ //.col-xs-offset-3 {
+ // margin-left: 25%;
+ //}
+ //.col-xs-offset-2 {
+ // margin-left: 16.66666667%;
+ //}
+ //.col-xs-offset-1 {
+ // margin-left: 8.33333333%;
+ //}
+ //.col-xs-offset-0 {
+ // margin-left: 0;
+ //}
+ //@media (min-width: 768px) {
+ // .col-sm-1,
+ // .col-sm-2,
+ // .col-sm-3,
+ // .col-sm-4,
+ // .col-sm-5,
+ // .col-sm-6,
+ // .col-sm-7,
+ // .col-sm-8,
+ // .col-sm-9,
+ // .col-sm-10,
+ // .col-sm-11,
+ // .col-sm-12 {
+ // float: left;
+ // }
+ // .col-sm-12 {
+ // width: 100%;
+ // }
+ // .col-sm-11 {
+ // width: 91.66666667%;
+ // }
+ // .col-sm-10 {
+ // width: 83.33333333%;
+ // }
+ // .col-sm-9 {
+ // width: 75%;
+ // }
+ // .col-sm-8 {
+ // width: 66.66666667%;
+ // }
+ // .col-sm-7 {
+ // width: 58.33333333%;
+ // }
+ // .col-sm-6 {
+ // width: 50%;
+ // }
+ // .col-sm-5 {
+ // width: 41.66666667%;
+ // }
+ // .col-sm-4 {
+ // width: 33.33333333%;
+ // }
+ // .col-sm-3 {
+ // width: 25%;
+ // }
+ // .col-sm-2 {
+ // width: 16.66666667%;
+ // }
+ // .col-sm-1 {
+ // width: 8.33333333%;
+ // }
+ // .col-sm-pull-12 {
+ // right: 100%;
+ // }
+ // .col-sm-pull-11 {
+ // right: 91.66666667%;
+ // }
+ // .col-sm-pull-10 {
+ // right: 83.33333333%;
+ // }
+ // .col-sm-pull-9 {
+ // right: 75%;
+ // }
+ // .col-sm-pull-8 {
+ // right: 66.66666667%;
+ // }
+ // .col-sm-pull-7 {
+ // right: 58.33333333%;
+ // }
+ // .col-sm-pull-6 {
+ // right: 50%;
+ // }
+ // .col-sm-pull-5 {
+ // right: 41.66666667%;
+ // }
+ // .col-sm-pull-4 {
+ // right: 33.33333333%;
+ // }
+ // .col-sm-pull-3 {
+ // right: 25%;
+ // }
+ // .col-sm-pull-2 {
+ // right: 16.66666667%;
+ // }
+ // .col-sm-pull-1 {
+ // right: 8.33333333%;
+ // }
+ // .col-sm-pull-0 {
+ // right: auto;
+ // }
+ // .col-sm-push-12 {
+ // left: 100%;
+ // }
+ // .col-sm-push-11 {
+ // left: 91.66666667%;
+ // }
+ // .col-sm-push-10 {
+ // left: 83.33333333%;
+ // }
+ // .col-sm-push-9 {
+ // left: 75%;
+ // }
+ // .col-sm-push-8 {
+ // left: 66.66666667%;
+ // }
+ // .col-sm-push-7 {
+ // left: 58.33333333%;
+ // }
+ // .col-sm-push-6 {
+ // left: 50%;
+ // }
+ // .col-sm-push-5 {
+ // left: 41.66666667%;
+ // }
+ // .col-sm-push-4 {
+ // left: 33.33333333%;
+ // }
+ // .col-sm-push-3 {
+ // left: 25%;
+ // }
+ // .col-sm-push-2 {
+ // left: 16.66666667%;
+ // }
+ // .col-sm-push-1 {
+ // left: 8.33333333%;
+ // }
+ // .col-sm-push-0 {
+ // left: auto;
+ // }
+ // .col-sm-offset-12 {
+ // margin-left: 100%;
+ // }
+ // .col-sm-offset-11 {
+ // margin-left: 91.66666667%;
+ // }
+ // .col-sm-offset-10 {
+ // margin-left: 83.33333333%;
+ // }
+ // .col-sm-offset-9 {
+ // margin-left: 75%;
+ // }
+ // .col-sm-offset-8 {
+ // margin-left: 66.66666667%;
+ // }
+ // .col-sm-offset-7 {
+ // margin-left: 58.33333333%;
+ // }
+ // .col-sm-offset-6 {
+ // margin-left: 50%;
+ // }
+ // .col-sm-offset-5 {
+ // margin-left: 41.66666667%;
+ // }
+ // .col-sm-offset-4 {
+ // margin-left: 33.33333333%;
+ // }
+ // .col-sm-offset-3 {
+ // margin-left: 25%;
+ // }
+ // .col-sm-offset-2 {
+ // margin-left: 16.66666667%;
+ // }
+ // .col-sm-offset-1 {
+ // margin-left: 8.33333333%;
+ // }
+ // .col-sm-offset-0 {
+ // margin-left: 0;
+ // }
+ //}
+ //@media (min-width: 992px) {
+ // .col-md-1,
+ // .col-md-2,
+ // .col-md-3,
+ // .col-md-4,
+ // .col-md-5,
+ // .col-md-6,
+ // .col-md-7,
+ // .col-md-8,
+ // .col-md-9,
+ // .col-md-10,
+ // .col-md-11,
+ // .col-md-12 {
+ // float: left;
+ // }
+ // .col-md-12 {
+ // width: 100%;
+ // }
+ // .col-md-11 {
+ // width: 91.66666667%;
+ // }
+ // .col-md-10 {
+ // width: 83.33333333%;
+ // }
+ // .col-md-9 {
+ // width: 75%;
+ // }
+ // .col-md-8 {
+ // width: 66.66666667%;
+ // }
+ // .col-md-7 {
+ // width: 58.33333333%;
+ // }
+ // .col-md-6 {
+ // width: 50%;
+ // }
+ // .col-md-5 {
+ // width: 41.66666667%;
+ // }
+ // .col-md-4 {
+ // width: 33.33333333%;
+ // }
+ // .col-md-3 {
+ // width: 25%;
+ // }
+ // .col-md-2 {
+ // width: 16.66666667%;
+ // }
+ // .col-md-1 {
+ // width: 8.33333333%;
+ // }
+ // .col-md-pull-12 {
+ // right: 100%;
+ // }
+ // .col-md-pull-11 {
+ // right: 91.66666667%;
+ // }
+ // .col-md-pull-10 {
+ // right: 83.33333333%;
+ // }
+ // .col-md-pull-9 {
+ // right: 75%;
+ // }
+ // .col-md-pull-8 {
+ // right: 66.66666667%;
+ // }
+ // .col-md-pull-7 {
+ // right: 58.33333333%;
+ // }
+ // .col-md-pull-6 {
+ // right: 50%;
+ // }
+ // .col-md-pull-5 {
+ // right: 41.66666667%;
+ // }
+ // .col-md-pull-4 {
+ // right: 33.33333333%;
+ // }
+ // .col-md-pull-3 {
+ // right: 25%;
+ // }
+ // .col-md-pull-2 {
+ // right: 16.66666667%;
+ // }
+ // .col-md-pull-1 {
+ // right: 8.33333333%;
+ // }
+ // .col-md-pull-0 {
+ // right: auto;
+ // }
+ // .col-md-push-12 {
+ // left: 100%;
+ // }
+ // .col-md-push-11 {
+ // left: 91.66666667%;
+ // }
+ // .col-md-push-10 {
+ // left: 83.33333333%;
+ // }
+ // .col-md-push-9 {
+ // left: 75%;
+ // }
+ // .col-md-push-8 {
+ // left: 66.66666667%;
+ // }
+ // .col-md-push-7 {
+ // left: 58.33333333%;
+ // }
+ // .col-md-push-6 {
+ // left: 50%;
+ // }
+ // .col-md-push-5 {
+ // left: 41.66666667%;
+ // }
+ // .col-md-push-4 {
+ // left: 33.33333333%;
+ // }
+ // .col-md-push-3 {
+ // left: 25%;
+ // }
+ // .col-md-push-2 {
+ // left: 16.66666667%;
+ // }
+ // .col-md-push-1 {
+ // left: 8.33333333%;
+ // }
+ // .col-md-push-0 {
+ // left: auto;
+ // }
+ // .col-md-offset-12 {
+ // margin-left: 100%;
+ // }
+ // .col-md-offset-11 {
+ // margin-left: 91.66666667%;
+ // }
+ // .col-md-offset-10 {
+ // margin-left: 83.33333333%;
+ // }
+ // .col-md-offset-9 {
+ // margin-left: 75%;
+ // }
+ // .col-md-offset-8 {
+ // margin-left: 66.66666667%;
+ // }
+ // .col-md-offset-7 {
+ // margin-left: 58.33333333%;
+ // }
+ // .col-md-offset-6 {
+ // margin-left: 50%;
+ // }
+ // .col-md-offset-5 {
+ // margin-left: 41.66666667%;
+ // }
+ // .col-md-offset-4 {
+ // margin-left: 33.33333333%;
+ // }
+ // .col-md-offset-3 {
+ // margin-left: 25%;
+ // }
+ // .col-md-offset-2 {
+ // margin-left: 16.66666667%;
+ // }
+ // .col-md-offset-1 {
+ // margin-left: 8.33333333%;
+ // }
+ // .col-md-offset-0 {
+ // margin-left: 0;
+ // }
+ //}
+ //@media (min-width: 1200px) {
+ // .col-lg-1,
+ // .col-lg-2,
+ // .col-lg-3,
+ // .col-lg-4,
+ // .col-lg-5,
+ // .col-lg-6,
+ // .col-lg-7,
+ // .col-lg-8,
+ // .col-lg-9,
+ // .col-lg-10,
+ // .col-lg-11,
+ // .col-lg-12 {
+ // float: left;
+ // }
+ // .col-lg-12 {
+ // width: 100%;
+ // }
+ // .col-lg-11 {
+ // width: 91.66666667%;
+ // }
+ // .col-lg-10 {
+ // width: 83.33333333%;
+ // }
+ // .col-lg-9 {
+ // width: 75%;
+ // }
+ // .col-lg-8 {
+ // width: 66.66666667%;
+ // }
+ // .col-lg-7 {
+ // width: 58.33333333%;
+ // }
+ // .col-lg-6 {
+ // width: 50%;
+ // }
+ // .col-lg-5 {
+ // width: 41.66666667%;
+ // }
+ // .col-lg-4 {
+ // width: 33.33333333%;
+ // }
+ // .col-lg-3 {
+ // width: 25%;
+ // }
+ // .col-lg-2 {
+ // width: 16.66666667%;
+ // }
+ // .col-lg-1 {
+ // width: 8.33333333%;
+ // }
+ // .col-lg-pull-12 {
+ // right: 100%;
+ // }
+ // .col-lg-pull-11 {
+ // right: 91.66666667%;
+ // }
+ // .col-lg-pull-10 {
+ // right: 83.33333333%;
+ // }
+ // .col-lg-pull-9 {
+ // right: 75%;
+ // }
+ // .col-lg-pull-8 {
+ // right: 66.66666667%;
+ // }
+ // .col-lg-pull-7 {
+ // right: 58.33333333%;
+ // }
+ // .col-lg-pull-6 {
+ // right: 50%;
+ // }
+ // .col-lg-pull-5 {
+ // right: 41.66666667%;
+ // }
+ // .col-lg-pull-4 {
+ // right: 33.33333333%;
+ // }
+ // .col-lg-pull-3 {
+ // right: 25%;
+ // }
+ // .col-lg-pull-2 {
+ // right: 16.66666667%;
+ // }
+ // .col-lg-pull-1 {
+ // right: 8.33333333%;
+ // }
+ // .col-lg-pull-0 {
+ // right: auto;
+ // }
+ // .col-lg-push-12 {
+ // left: 100%;
+ // }
+ // .col-lg-push-11 {
+ // left: 91.66666667%;
+ // }
+ // .col-lg-push-10 {
+ // left: 83.33333333%;
+ // }
+ // .col-lg-push-9 {
+ // left: 75%;
+ // }
+ // .col-lg-push-8 {
+ // left: 66.66666667%;
+ // }
+ // .col-lg-push-7 {
+ // left: 58.33333333%;
+ // }
+ // .col-lg-push-6 {
+ // left: 50%;
+ // }
+ // .col-lg-push-5 {
+ // left: 41.66666667%;
+ // }
+ // .col-lg-push-4 {
+ // left: 33.33333333%;
+ // }
+ // .col-lg-push-3 {
+ // left: 25%;
+ // }
+ // .col-lg-push-2 {
+ // left: 16.66666667%;
+ // }
+ // .col-lg-push-1 {
+ // left: 8.33333333%;
+ // }
+ // .col-lg-push-0 {
+ // left: auto;
+ // }
+ // .col-lg-offset-12 {
+ // margin-left: 100%;
+ // }
+ // .col-lg-offset-11 {
+ // margin-left: 91.66666667%;
+ // }
+ // .col-lg-offset-10 {
+ // margin-left: 83.33333333%;
+ // }
+ // .col-lg-offset-9 {
+ // margin-left: 75%;
+ // }
+ // .col-lg-offset-8 {
+ // margin-left: 66.66666667%;
+ // }
+ // .col-lg-offset-7 {
+ // margin-left: 58.33333333%;
+ // }
+ // .col-lg-offset-6 {
+ // margin-left: 50%;
+ // }
+ // .col-lg-offset-5 {
+ // margin-left: 41.66666667%;
+ // }
+ // .col-lg-offset-4 {
+ // margin-left: 33.33333333%;
+ // }
+ // .col-lg-offset-3 {
+ // margin-left: 25%;
+ // }
+ // .col-lg-offset-2 {
+ // margin-left: 16.66666667%;
+ // }
+ // .col-lg-offset-1 {
+ // margin-left: 8.33333333%;
+ // }
+ // .col-lg-offset-0 {
+ // margin-left: 0;
+ // }
+ //}
+ table {
+ background-color: transparent;
+ }
+ caption {
+ padding-top: 8px;
+ padding-bottom: 8px;
+ color: #777;
+ text-align: left;
+ }
+ th {
+ text-align: left;
+ }
+ .table {
+ width: 100%;
+ max-width: 100%;
+ margin-bottom: 20px;
+ }
+ .table > thead > tr > th,
+ .table > tbody > tr > th,
+ .table > tfoot > tr > th,
+ .table > thead > tr > td,
+ .table > tbody > tr > td,
+ .table > tfoot > tr > td {
+ padding: 8px;
+ line-height: 1.42857143;
+ vertical-align: top;
+ border-top: 1px solid #ddd;
+ }
+ .table > thead > tr > th {
+ vertical-align: bottom;
+ border-bottom: 2px solid #ddd;
+ }
+ .table > caption + thead > tr:first-child > th,
+ .table > colgroup + thead > tr:first-child > th,
+ .table > thead:first-child > tr:first-child > th,
+ .table > caption + thead > tr:first-child > td,
+ .table > colgroup + thead > tr:first-child > td,
+ .table > thead:first-child > tr:first-child > td {
+ border-top: 0;
+ }
+ .table > tbody + tbody {
+ border-top: 2px solid #ddd;
+ }
+ .table .table {
+ background-color: #fff;
+ }
+ .table-condensed > thead > tr > th,
+ .table-condensed > tbody > tr > th,
+ .table-condensed > tfoot > tr > th,
+ .table-condensed > thead > tr > td,
+ .table-condensed > tbody > tr > td,
+ .table-condensed > tfoot > tr > td {
+ padding: 5px;
+ }
+ .table-bordered {
+ border: 1px solid #ddd;
+ }
+ .table-bordered > thead > tr > th,
+ .table-bordered > tbody > tr > th,
+ .table-bordered > tfoot > tr > th,
+ .table-bordered > thead > tr > td,
+ .table-bordered > tbody > tr > td,
+ .table-bordered > tfoot > tr > td {
+ border: 1px solid #ddd;
+ }
+ .table-bordered > thead > tr > th,
+ .table-bordered > thead > tr > td {
+ border-bottom-width: 2px;
+ }
+ .table-striped > tbody > tr:nth-of-type(odd) {
+ background-color: #f9f9f9;
+ }
+ .table-hover > tbody > tr:hover {
+ background-color: #f5f5f5;
+ }
+ table col[class*="col-"] {
+ position: static;
+ display: table-column;
+ float: none;
+ }
+ table td[class*="col-"],
+ table th[class*="col-"] {
+ position: static;
+ display: table-cell;
+ float: none;
+ }
+ .table > thead > tr > td.active,
+ .table > tbody > tr > td.active,
+ .table > tfoot > tr > td.active,
+ .table > thead > tr > th.active,
+ .table > tbody > tr > th.active,
+ .table > tfoot > tr > th.active,
+ .table > thead > tr.active > td,
+ .table > tbody > tr.active > td,
+ .table > tfoot > tr.active > td,
+ .table > thead > tr.active > th,
+ .table > tbody > tr.active > th,
+ .table > tfoot > tr.active > th {
+ background-color: #f5f5f5;
+ }
+ .table-hover > tbody > tr > td.active:hover,
+ .table-hover > tbody > tr > th.active:hover,
+ .table-hover > tbody > tr.active:hover > td,
+ .table-hover > tbody > tr:hover > .active,
+ .table-hover > tbody > tr.active:hover > th {
+ background-color: #e8e8e8;
+ }
+ .table > thead > tr > td.success,
+ .table > tbody > tr > td.success,
+ .table > tfoot > tr > td.success,
+ .table > thead > tr > th.success,
+ .table > tbody > tr > th.success,
+ .table > tfoot > tr > th.success,
+ .table > thead > tr.success > td,
+ .table > tbody > tr.success > td,
+ .table > tfoot > tr.success > td,
+ .table > thead > tr.success > th,
+ .table > tbody > tr.success > th,
+ .table > tfoot > tr.success > th {
+ background-color: #dff0d8;
+ }
+ .table-hover > tbody > tr > td.success:hover,
+ .table-hover > tbody > tr > th.success:hover,
+ .table-hover > tbody > tr.success:hover > td,
+ .table-hover > tbody > tr:hover > .success,
+ .table-hover > tbody > tr.success:hover > th {
+ background-color: #d0e9c6;
+ }
+ .table > thead > tr > td.info,
+ .table > tbody > tr > td.info,
+ .table > tfoot > tr > td.info,
+ .table > thead > tr > th.info,
+ .table > tbody > tr > th.info,
+ .table > tfoot > tr > th.info,
+ .table > thead > tr.info > td,
+ .table > tbody > tr.info > td,
+ .table > tfoot > tr.info > td,
+ .table > thead > tr.info > th,
+ .table > tbody > tr.info > th,
+ .table > tfoot > tr.info > th {
+ background-color: #d9edf7;
+ }
+ .table-hover > tbody > tr > td.info:hover,
+ .table-hover > tbody > tr > th.info:hover,
+ .table-hover > tbody > tr.info:hover > td,
+ .table-hover > tbody > tr:hover > .info,
+ .table-hover > tbody > tr.info:hover > th {
+ background-color: #c4e3f3;
+ }
+ .table > thead > tr > td.warning,
+ .table > tbody > tr > td.warning,
+ .table > tfoot > tr > td.warning,
+ .table > thead > tr > th.warning,
+ .table > tbody > tr > th.warning,
+ .table > tfoot > tr > th.warning,
+ .table > thead > tr.warning > td,
+ .table > tbody > tr.warning > td,
+ .table > tfoot > tr.warning > td,
+ .table > thead > tr.warning > th,
+ .table > tbody > tr.warning > th,
+ .table > tfoot > tr.warning > th {
+ background-color: #fcf8e3;
+ }
+ .table-hover > tbody > tr > td.warning:hover,
+ .table-hover > tbody > tr > th.warning:hover,
+ .table-hover > tbody > tr.warning:hover > td,
+ .table-hover > tbody > tr:hover > .warning,
+ .table-hover > tbody > tr.warning:hover > th {
+ background-color: #faf2cc;
+ }
+ .table > thead > tr > td.danger,
+ .table > tbody > tr > td.danger,
+ .table > tfoot > tr > td.danger,
+ .table > thead > tr > th.danger,
+ .table > tbody > tr > th.danger,
+ .table > tfoot > tr > th.danger,
+ .table > thead > tr.danger > td,
+ .table > tbody > tr.danger > td,
+ .table > tfoot > tr.danger > td,
+ .table > thead > tr.danger > th,
+ .table > tbody > tr.danger > th,
+ .table > tfoot > tr.danger > th {
+ background-color: #f2dede;
+ }
+ .table-hover > tbody > tr > td.danger:hover,
+ .table-hover > tbody > tr > th.danger:hover,
+ .table-hover > tbody > tr.danger:hover > td,
+ .table-hover > tbody > tr:hover > .danger,
+ .table-hover > tbody > tr.danger:hover > th {
+ background-color: #ebcccc;
+ }
+ .table-responsive {
+ min-height: 0.01%;
+ overflow-x: auto;
+ }
+ @media screen and (max-width: 767px) {
+ .table-responsive {
+ width: 100%;
+ margin-bottom: 15px;
+ overflow-y: hidden;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ border: 1px solid #ddd;
+ }
+ .table-responsive > .table {
+ margin-bottom: 0;
+ }
+ .table-responsive > .table > thead > tr > th,
+ .table-responsive > .table > tbody > tr > th,
+ .table-responsive > .table > tfoot > tr > th,
+ .table-responsive > .table > thead > tr > td,
+ .table-responsive > .table > tbody > tr > td,
+ .table-responsive > .table > tfoot > tr > td {
+ white-space: nowrap;
+ }
+ .table-responsive > .table-bordered {
+ border: 0;
+ }
+ .table-responsive > .table-bordered > thead > tr > th:first-child,
+ .table-responsive > .table-bordered > tbody > tr > th:first-child,
+ .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+ .table-responsive > .table-bordered > thead > tr > td:first-child,
+ .table-responsive > .table-bordered > tbody > tr > td:first-child,
+ .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-left: 0;
+ }
+ .table-responsive > .table-bordered > thead > tr > th:last-child,
+ .table-responsive > .table-bordered > tbody > tr > th:last-child,
+ .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+ .table-responsive > .table-bordered > thead > tr > td:last-child,
+ .table-responsive > .table-bordered > tbody > tr > td:last-child,
+ .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: 0;
+ }
+ .table-responsive > .table-bordered > tbody > tr:last-child > th,
+ .table-responsive > .table-bordered > tfoot > tr:last-child > th,
+ .table-responsive > .table-bordered > tbody > tr:last-child > td,
+ .table-responsive > .table-bordered > tfoot > tr:last-child > td {
+ border-bottom: 0;
+ }
+ }
+ fieldset {
+ min-width: 0;
+ padding: 0;
+ margin: 0;
+ border: 0;
+ }
+ legend {
+ display: block;
+ width: 100%;
+ padding: 0;
+ margin-bottom: 20px;
+ font-size: 21px;
+ line-height: inherit;
+ color: #333;
+ border: 0;
+ border-bottom: 1px solid #e5e5e5;
+ }
+ label {
+ display: inline-block;
+ max-width: 100%;
+ margin-bottom: 5px;
+ font-weight: bold;
+ }
+ input[type="search"] {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ }
+ input[type="radio"],
+ input[type="checkbox"] {
+ margin: 4px 0 0;
+ margin-top: 1px \9;
+ line-height: normal;
+ }
+ input[type="file"] {
+ display: block;
+ }
+ input[type="range"] {
+ display: block;
+ width: 100%;
+ }
+ select[multiple],
+ select[size] {
+ height: auto;
+ }
+ input[type="file"]:focus,
+ input[type="radio"]:focus,
+ input[type="checkbox"]:focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+ }
+ output {
+ display: block;
+ padding-top: 7px;
+ font-size: 14px;
+ line-height: 1.42857143;
+ color: #555;
+ }
+ //.form-control {
+ // display: block;
+ // width: 100%;
+ // height: 34px;
+ // padding: 6px 12px;
+ // font-size: 14px;
+ // line-height: 1.42857143;
+ // color: #555;
+ // background-color: #fff;
+ // background-image: none;
+ // border: 1px solid #ccc;
+ // border-radius: 4px;
+ // -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ // box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ // -webkit-transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s;
+ // -o-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::-moz-placeholder {
+ // color: #999;
+ // opacity: 1;
+ //}
+ //.form-control:-ms-input-placeholder {
+ // color: #999;
+ //}
+ //.form-control::-webkit-input-placeholder {
+ // color: #999;
+ //}
+ //.form-control[disabled],
+ //.form-control[readonly],
+ //fieldset[disabled] .form-control {
+ // background-color: #eee;
+ // opacity: 1;
+ //}
+ //.form-control[disabled],
+ //fieldset[disabled] .form-control {
+ // cursor: not-allowed;
+ //}
+ //textarea.form-control {
+ // height: auto;
+ //}
+ //input[type='search'] {
+ // -webkit-appearance: none;
+ //}
+ // @media screen and (-webkit-min-device-pixel-ratio: 0) {
+ // input[type='date'],
+ // input[type='time'],
+ // input[type='datetime-local'],
+ // input[type='month'] {
+ // line-height: 34px;
+ // }
+ // input[type='date'].input-sm,
+ // input[type='time'].input-sm,
+ // input[type='datetime-local'].input-sm,
+ // input[type='month'].input-sm,
+ // .input-group-sm input[type='date'],
+ // .input-group-sm input[type='time'],
+ // .input-group-sm input[type='datetime-local'],
+ // .input-group-sm input[type='month'] {
+ // line-height: 30px;
+ // }
+ // input[type='date'].input-lg,
+ // input[type='time'].input-lg,
+ // input[type='datetime-local'].input-lg,
+ // input[type='month'].input-lg,
+ // .input-group-lg input[type='date'],
+ // .input-group-lg input[type='time'],
+ // .input-group-lg input[type='datetime-local'],
+ // .input-group-lg input[type='month'] {
+ // line-height: 46px;
+ // }
+ // }
+ //.form-group {
+ // margin-bottom: 15px;
+ //}
+ .radio,
+ .checkbox {
+ position: relative;
+ display: block;
+ margin-top: 10px;
+ margin-bottom: 10px;
+ }
+ .radio label,
+ .checkbox label {
+ min-height: 20px;
+ padding-left: 20px;
+ margin-bottom: 0;
+ font-weight: normal;
+ cursor: pointer;
+ }
+ .radio input[type="radio"],
+ .radio-inline input[type="radio"],
+ .checkbox input[type="checkbox"],
+ .checkbox-inline input[type="checkbox"] {
+ position: absolute;
+ margin-top: 4px \9;
+ margin-left: -20px;
+ }
+ .radio + .radio,
+ .checkbox + .checkbox {
+ margin-top: -5px;
+ }
+ .radio-inline,
+ .checkbox-inline {
+ position: relative;
+ display: inline-block;
+ padding-left: 20px;
+ margin-bottom: 0;
+ font-weight: normal;
+ vertical-align: middle;
+ cursor: pointer;
+ }
+ .radio-inline + .radio-inline,
+ .checkbox-inline + .checkbox-inline {
+ margin-top: 0;
+ margin-left: 10px;
+ }
+ input[type="radio"][disabled],
+ input[type="checkbox"][disabled],
+ input[type="radio"].disabled,
+ input[type="checkbox"].disabled,
+ fieldset[disabled] input[type="radio"],
+ fieldset[disabled] input[type="checkbox"] {
+ cursor: not-allowed;
+ }
+ .radio-inline.disabled,
+ .checkbox-inline.disabled,
+ fieldset[disabled] .radio-inline,
+ fieldset[disabled] .checkbox-inline {
+ cursor: not-allowed;
+ }
+ .radio.disabled label,
+ .checkbox.disabled label,
+ fieldset[disabled] .radio label,
+ fieldset[disabled] .checkbox label {
+ cursor: not-allowed;
+ }
+ .form-control-static {
+ min-height: 34px;
+ padding-top: 7px;
+ padding-bottom: 7px;
+ margin-bottom: 0;
+ }
+ .form-control-static.input-lg,
+ .form-control-static.input-sm {
+ padding-right: 0;
+ padding-left: 0;
+ }
+ .input-sm {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+ }
+ select.input-sm {
+ height: 30px;
+ line-height: 30px;
+ }
+ textarea.input-sm,
+ select[multiple].input-sm {
+ height: auto;
+ }
+ .form-group-sm .form-control {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+ }
+ select.form-group-sm .form-control {
+ height: 30px;
+ line-height: 30px;
+ }
+ textarea.form-group-sm .form-control,
+ select[multiple].form-group-sm .form-control {
+ height: auto;
+ }
+ .form-group-sm .form-control-static {
+ height: 30px;
+ min-height: 32px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ }
+ .input-lg {
+ height: 46px;
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.3333333;
+ border-radius: 6px;
+ }
+ select.input-lg {
+ height: 46px;
+ line-height: 46px;
+ }
+ textarea.input-lg,
+ select[multiple].input-lg {
+ height: auto;
+ }
+ .form-group-lg .form-control {
+ height: 46px;
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.3333333;
+ border-radius: 6px;
+ }
+ select.form-group-lg .form-control {
+ height: 46px;
+ line-height: 46px;
+ }
+ textarea.form-group-lg .form-control,
+ select[multiple].form-group-lg .form-control {
+ height: auto;
+ }
+ .form-group-lg .form-control-static {
+ height: 46px;
+ min-height: 38px;
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.3333333;
+ }
+ .has-feedback {
+ position: relative;
+ }
+ .has-feedback .form-control {
+ padding-right: 42.5px;
+ }
+ .form-control-feedback {
+ position: absolute;
+ top: 0;
+ right: 0;
+ z-index: 2;
+ display: block;
+ width: 34px;
+ height: 34px;
+ line-height: 34px;
+ text-align: center;
+ pointer-events: none;
+ }
+ .input-lg + .form-control-feedback {
+ width: 46px;
+ height: 46px;
+ line-height: 46px;
+ }
+ .input-sm + .form-control-feedback {
+ width: 30px;
+ height: 30px;
+ line-height: 30px;
+ }
+ .has-success .help-block,
+ .has-success .control-label,
+ .has-success .radio,
+ .has-success .checkbox,
+ .has-success .radio-inline,
+ .has-success .checkbox-inline,
+ .has-success.radio label,
+ .has-success.checkbox label,
+ .has-success.radio-inline label,
+ .has-success.checkbox-inline label {
+ color: #3c763d;
+ }
+ .has-success .form-control {
+ border-color: #3c763d;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ }
+ .has-success .form-control:focus {
+ border-color: #2b542c;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
+ }
+ .has-success .input-group-addon {
+ color: #3c763d;
+ background-color: #dff0d8;
+ border-color: #3c763d;
+ }
+ .has-success .form-control-feedback {
+ color: #3c763d;
+ }
+ .has-warning .help-block,
+ .has-warning .control-label,
+ .has-warning .radio,
+ .has-warning .checkbox,
+ .has-warning .radio-inline,
+ .has-warning .checkbox-inline,
+ .has-warning.radio label,
+ .has-warning.checkbox label,
+ .has-warning.radio-inline label,
+ .has-warning.checkbox-inline label {
+ color: #8a6d3b;
+ }
+ .has-warning .form-control {
+ border-color: #8a6d3b;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ }
+ .has-warning .form-control:focus {
+ border-color: #66512c;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
+ }
+ .has-warning .input-group-addon {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+ border-color: #8a6d3b;
+ }
+ .has-warning .form-control-feedback {
+ color: #8a6d3b;
+ }
+ .has-error .help-block,
+ .has-error .control-label,
+ .has-error .radio,
+ .has-error .checkbox,
+ .has-error .radio-inline,
+ .has-error .checkbox-inline,
+ .has-error.radio label,
+ .has-error.checkbox label,
+ .has-error.radio-inline label,
+ .has-error.checkbox-inline label {
+ color: #a94442;
+ }
+ .has-error .form-control {
+ border-color: #a94442;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ }
+ .has-error .form-control:focus {
+ border-color: #843534;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
+ }
+ .has-error .input-group-addon {
+ color: #a94442;
+ background-color: #f2dede;
+ border-color: #a94442;
+ }
+ .has-error .form-control-feedback {
+ color: #a94442;
+ }
+ .has-feedback label ~ .form-control-feedback {
+ top: 25px;
+ }
+ .has-feedback label.sr-only ~ .form-control-feedback {
+ top: 0;
+ }
+ .help-block {
+ display: block;
+ margin-top: 5px;
+ margin-bottom: 10px;
+ color: #737373;
+ }
+ @media (min-width: 768px) {
+ .form-inline .form-group {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .form-inline .form-control {
+ display: inline-block;
+ width: auto;
+ vertical-align: middle;
+ }
+ .form-inline .form-control-static {
+ display: inline-block;
+ }
+ .form-inline .input-group {
+ display: inline-table;
+ vertical-align: middle;
+ }
+ .form-inline .input-group .input-group-addon,
+ .form-inline .input-group .input-group-btn,
+ .form-inline .input-group .form-control {
+ width: auto;
+ }
+ .form-inline .input-group > .form-control {
+ width: 100%;
+ }
+ .form-inline .control-label {
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .form-inline .radio,
+ .form-inline .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .form-inline .radio label,
+ .form-inline .checkbox label {
+ padding-left: 0;
+ }
+ .form-inline .radio input[type="radio"],
+ .form-inline .checkbox input[type="checkbox"] {
+ position: relative;
+ margin-left: 0;
+ }
+ .form-inline .has-feedback .form-control-feedback {
+ top: 0;
+ }
+ }
+ .form-horizontal .radio,
+ .form-horizontal .checkbox,
+ .form-horizontal .radio-inline,
+ .form-horizontal .checkbox-inline {
+ padding-top: 7px;
+ margin-top: 0;
+ margin-bottom: 0;
+ }
+ .form-horizontal .radio,
+ .form-horizontal .checkbox {
+ min-height: 27px;
+ }
+ .form-horizontal .form-group {
+ margin-right: -15px;
+ margin-left: -15px;
+ }
+ @media (min-width: 768px) {
+ .form-horizontal .control-label {
+ padding-top: 7px;
+ margin-bottom: 0;
+ text-align: right;
+ }
+ }
+ .form-horizontal .has-feedback .form-control-feedback {
+ right: 15px;
+ }
+ @media (min-width: 768px) {
+ .form-horizontal .form-group-lg .control-label {
+ padding-top: 14.333333px;
+ }
+ }
+ @media (min-width: 768px) {
+ .form-horizontal .form-group-sm .control-label {
+ padding-top: 6px;
+ }
+ }
+ .btn {
+ display: inline-block;
+ padding: 6px 12px;
+ margin-bottom: 0;
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 1.42857143;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: middle;
+ -ms-touch-action: manipulation;
+ touch-action: manipulation;
+ cursor: pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ background-image: none;
+ border: 1px solid transparent;
+ border-radius: 4px;
+ }
+ .btn:focus,
+ .btn:active:focus,
+ .btn.active:focus,
+ .btn.focus,
+ .btn:active.focus,
+ .btn.active.focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+ }
+ .btn:hover,
+ .btn:focus,
+ .btn.focus {
+ color: #333;
+ text-decoration: none;
+ }
+ .btn:active,
+ .btn.active {
+ background-image: none;
+ outline: 0;
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 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;
+ filter: alpha(opacity=65);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ opacity: 0.65;
+ }
+ .btn-default {
+ color: #333;
+ background-color: #fff;
+ border-color: #ccc;
+ }
+ .btn-default:hover,
+ .btn-default:focus,
+ .btn-default.focus,
+ .btn-default:active,
+ .btn-default.active,
+ .open > .dropdown-toggle.btn-default {
+ color: #333;
+ background-color: #e6e6e6;
+ border-color: #adadad;
+ }
+ .btn-default:active,
+ .btn-default.active,
+ .open > .dropdown-toggle.btn-default {
+ background-image: none;
+ }
+ .btn-default.disabled,
+ .btn-default[disabled],
+ fieldset[disabled] .btn-default,
+ .btn-default.disabled:hover,
+ .btn-default[disabled]:hover,
+ fieldset[disabled] .btn-default:hover,
+ .btn-default.disabled:focus,
+ .btn-default[disabled]:focus,
+ fieldset[disabled] .btn-default:focus,
+ .btn-default.disabled.focus,
+ .btn-default[disabled].focus,
+ fieldset[disabled] .btn-default.focus,
+ .btn-default.disabled:active,
+ .btn-default[disabled]:active,
+ fieldset[disabled] .btn-default:active,
+ .btn-default.disabled.active,
+ .btn-default[disabled].active,
+ fieldset[disabled] .btn-default.active {
+ background-color: #fff;
+ border-color: #ccc;
+ }
+ .btn-default .badge {
+ color: #fff;
+ background-color: #333;
+ }
+ .btn-primary {
+ color: #fff;
+ background-color: #337ab7;
+ border-color: #2e6da4;
+ }
+ .btn-primary:hover,
+ .btn-primary:focus,
+ .btn-primary.focus,
+ .btn-primary:active,
+ .btn-primary.active,
+ .open > .dropdown-toggle.btn-primary {
+ color: #fff;
+ background-color: #286090;
+ border-color: #204d74;
+ }
+ .btn-primary:active,
+ .btn-primary.active,
+ .open > .dropdown-toggle.btn-primary {
+ background-image: none;
+ }
+ .btn-primary.disabled,
+ .btn-primary[disabled],
+ fieldset[disabled] .btn-primary,
+ .btn-primary.disabled:hover,
+ .btn-primary[disabled]:hover,
+ fieldset[disabled] .btn-primary:hover,
+ .btn-primary.disabled:focus,
+ .btn-primary[disabled]:focus,
+ fieldset[disabled] .btn-primary:focus,
+ .btn-primary.disabled.focus,
+ .btn-primary[disabled].focus,
+ fieldset[disabled] .btn-primary.focus,
+ .btn-primary.disabled:active,
+ .btn-primary[disabled]:active,
+ fieldset[disabled] .btn-primary:active,
+ .btn-primary.disabled.active,
+ .btn-primary[disabled].active,
+ fieldset[disabled] .btn-primary.active {
+ background-color: #337ab7;
+ border-color: #2e6da4;
+ }
+ .btn-primary .badge {
+ color: #337ab7;
+ background-color: #fff;
+ }
+ .btn-success {
+ color: #fff;
+ background-color: #5cb85c;
+ border-color: #4cae4c;
+ }
+ .btn-success:hover,
+ .btn-success:focus,
+ .btn-success.focus,
+ .btn-success:active,
+ .btn-success.active,
+ .open > .dropdown-toggle.btn-success {
+ color: #fff;
+ background-color: #449d44;
+ border-color: #398439;
+ }
+ .btn-success:active,
+ .btn-success.active,
+ .open > .dropdown-toggle.btn-success {
+ background-image: none;
+ }
+ .btn-success.disabled,
+ .btn-success[disabled],
+ fieldset[disabled] .btn-success,
+ .btn-success.disabled:hover,
+ .btn-success[disabled]:hover,
+ fieldset[disabled] .btn-success:hover,
+ .btn-success.disabled:focus,
+ .btn-success[disabled]:focus,
+ fieldset[disabled] .btn-success:focus,
+ .btn-success.disabled.focus,
+ .btn-success[disabled].focus,
+ fieldset[disabled] .btn-success.focus,
+ .btn-success.disabled:active,
+ .btn-success[disabled]:active,
+ fieldset[disabled] .btn-success:active,
+ .btn-success.disabled.active,
+ .btn-success[disabled].active,
+ fieldset[disabled] .btn-success.active {
+ background-color: #5cb85c;
+ border-color: #4cae4c;
+ }
+ .btn-success .badge {
+ color: #5cb85c;
+ background-color: #fff;
+ }
+ .btn-info {
+ color: #fff;
+ background-color: #5bc0de;
+ border-color: #46b8da;
+ }
+ .btn-info:hover,
+ .btn-info:focus,
+ .btn-info.focus,
+ .btn-info:active,
+ .btn-info.active,
+ .open > .dropdown-toggle.btn-info {
+ color: #fff;
+ background-color: #31b0d5;
+ border-color: #269abc;
+ }
+ .btn-info:active,
+ .btn-info.active,
+ .open > .dropdown-toggle.btn-info {
+ background-image: none;
+ }
+ .btn-info.disabled,
+ .btn-info[disabled],
+ fieldset[disabled] .btn-info,
+ .btn-info.disabled:hover,
+ .btn-info[disabled]:hover,
+ fieldset[disabled] .btn-info:hover,
+ .btn-info.disabled:focus,
+ .btn-info[disabled]:focus,
+ fieldset[disabled] .btn-info:focus,
+ .btn-info.disabled.focus,
+ .btn-info[disabled].focus,
+ fieldset[disabled] .btn-info.focus,
+ .btn-info.disabled:active,
+ .btn-info[disabled]:active,
+ fieldset[disabled] .btn-info:active,
+ .btn-info.disabled.active,
+ .btn-info[disabled].active,
+ fieldset[disabled] .btn-info.active {
+ background-color: #5bc0de;
+ border-color: #46b8da;
+ }
+ .btn-info .badge {
+ color: #5bc0de;
+ background-color: #fff;
+ }
+ .btn-warning {
+ color: #fff;
+ background-color: #f0ad4e;
+ border-color: #eea236;
+ }
+ .btn-warning:hover,
+ .btn-warning:focus,
+ .btn-warning.focus,
+ .btn-warning:active,
+ .btn-warning.active,
+ .open > .dropdown-toggle.btn-warning {
+ color: #fff;
+ background-color: #ec971f;
+ border-color: #d58512;
+ }
+ .btn-warning:active,
+ .btn-warning.active,
+ .open > .dropdown-toggle.btn-warning {
+ background-image: none;
+ }
+ .btn-warning.disabled,
+ .btn-warning[disabled],
+ fieldset[disabled] .btn-warning,
+ .btn-warning.disabled:hover,
+ .btn-warning[disabled]:hover,
+ fieldset[disabled] .btn-warning:hover,
+ .btn-warning.disabled:focus,
+ .btn-warning[disabled]:focus,
+ fieldset[disabled] .btn-warning:focus,
+ .btn-warning.disabled.focus,
+ .btn-warning[disabled].focus,
+ fieldset[disabled] .btn-warning.focus,
+ .btn-warning.disabled:active,
+ .btn-warning[disabled]:active,
+ fieldset[disabled] .btn-warning:active,
+ .btn-warning.disabled.active,
+ .btn-warning[disabled].active,
+ fieldset[disabled] .btn-warning.active {
+ background-color: #f0ad4e;
+ border-color: #eea236;
+ }
+ .btn-warning .badge {
+ color: #f0ad4e;
+ background-color: #fff;
+ }
+ .btn-danger {
+ color: #fff;
+ background-color: #d9534f;
+ border-color: #d43f3a;
+ }
+ .btn-danger:hover,
+ .btn-danger:focus,
+ .btn-danger.focus,
+ .btn-danger:active,
+ .btn-danger.active,
+ .open > .dropdown-toggle.btn-danger {
+ color: #fff;
+ background-color: #c9302c;
+ border-color: #ac2925;
+ }
+ .btn-danger:active,
+ .btn-danger.active,
+ .open > .dropdown-toggle.btn-danger {
+ background-image: none;
+ }
+ .btn-danger.disabled,
+ .btn-danger[disabled],
+ fieldset[disabled] .btn-danger,
+ .btn-danger.disabled:hover,
+ .btn-danger[disabled]:hover,
+ fieldset[disabled] .btn-danger:hover,
+ .btn-danger.disabled:focus,
+ .btn-danger[disabled]:focus,
+ fieldset[disabled] .btn-danger:focus,
+ .btn-danger.disabled.focus,
+ .btn-danger[disabled].focus,
+ fieldset[disabled] .btn-danger.focus,
+ .btn-danger.disabled:active,
+ .btn-danger[disabled]:active,
+ fieldset[disabled] .btn-danger:active,
+ .btn-danger.disabled.active,
+ .btn-danger[disabled].active,
+ fieldset[disabled] .btn-danger.active {
+ background-color: #d9534f;
+ border-color: #d43f3a;
+ }
+ .btn-danger .badge {
+ color: #d9534f;
+ background-color: #fff;
+ }
+ .btn-link {
+ font-weight: normal;
+ color: #337ab7;
+ border-radius: 0;
+ }
+ .btn-link,
+ .btn-link:active,
+ .btn-link.active,
+ .btn-link[disabled],
+ fieldset[disabled] .btn-link {
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ }
+ .btn-link,
+ .btn-link:hover,
+ .btn-link:focus,
+ .btn-link:active {
+ border-color: transparent;
+ }
+ .btn-link:hover,
+ .btn-link:focus {
+ color: #23527c;
+ text-decoration: underline;
+ background-color: transparent;
+ }
+ .btn-link[disabled]:hover,
+ fieldset[disabled] .btn-link:hover,
+ .btn-link[disabled]:focus,
+ fieldset[disabled] .btn-link:focus {
+ color: #777;
+ text-decoration: none;
+ }
+ .btn-lg,
+ .btn-group-lg > .btn {
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.3333333;
+ border-radius: 6px;
+ }
+ .btn-sm,
+ .btn-group-sm > .btn {
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+ }
+ .btn-xs,
+ .btn-group-xs > .btn {
+ padding: 1px 5px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+ }
+ //.btn-block {
+ // display: block;
+ // width: 100%;
+ //}
+ //.btn-block + .btn-block {
+ // margin-top: 5px;
+ //}
+ //input[type='submit'].btn-block,
+ //input[type='reset'].btn-block,
+ //input[type='button'].btn-block {
+ // width: 100%;
+ //}
+ .fade {
+ opacity: 0;
+ -webkit-transition: opacity 0.15s linear;
+ -o-transition: opacity 0.15s linear;
+ transition: opacity 0.15s linear;
+ }
+ .fade.in {
+ opacity: 1;
+ }
+ .collapse {
+ display: none;
+ }
+ .collapse.in {
+ display: block;
+ }
+ tr.collapse.in {
+ display: table-row;
+ }
+ tbody.collapse.in {
+ display: table-row-group;
+ }
+ .collapsing {
+ position: relative;
+ height: 0;
+ overflow: hidden;
+ -webkit-transition-timing-function: ease;
+ -o-transition-timing-function: ease;
+ transition-timing-function: ease;
+ -webkit-transition-duration: 0.35s;
+ -o-transition-duration: 0.35s;
+ transition-duration: 0.35s;
+ -webkit-transition-property: height, visibility;
+ -o-transition-property: height, visibility;
+ transition-property: height, visibility;
+ }
+ .caret {
+ display: inline-block;
+ width: 0;
+ height: 0;
+ margin-left: 2px;
+ vertical-align: middle;
+ border-top: 4px dashed;
+ border-right: 4px solid transparent;
+ border-left: 4px solid transparent;
+ }
+ .dropup,
+ .dropdown {
+ position: relative;
+ }
+ .dropdown-toggle:focus {
+ outline: 0;
+ }
+ .dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: 1000;
+ display: none;
+ float: left;
+ min-width: 160px;
+ padding: 5px 0;
+ margin: 2px 0 0;
+ font-size: 14px;
+ text-align: left;
+ list-style: none;
+ background-color: #fff;
+ -webkit-background-clip: padding-box;
+ background-clip: padding-box;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 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);
+ }
+ .dropdown-menu.pull-right {
+ right: 0;
+ left: auto;
+ }
+ .dropdown-menu .divider {
+ height: 1px;
+ margin: 9px 0;
+ overflow: hidden;
+ background-color: #e5e5e5;
+ }
+ .dropdown-menu > li > a {
+ display: block;
+ padding: 3px 20px;
+ clear: both;
+ font-weight: normal;
+ line-height: 1.42857143;
+ color: #333;
+ white-space: nowrap;
+ }
+ .dropdown-menu > li > a:hover,
+ .dropdown-menu > li > a:focus {
+ color: #262626;
+ text-decoration: none;
+ background-color: #f5f5f5;
+ }
+ .dropdown-menu > .active > a,
+ .dropdown-menu > .active > a:hover,
+ .dropdown-menu > .active > a:focus {
+ color: #fff;
+ text-decoration: none;
+ background-color: #337ab7;
+ outline: 0;
+ }
+ .dropdown-menu > .disabled > a,
+ .dropdown-menu > .disabled > a:hover,
+ .dropdown-menu > .disabled > a:focus {
+ color: #777;
+ }
+ .dropdown-menu > .disabled > a:hover,
+ .dropdown-menu > .disabled > a:focus {
+ text-decoration: none;
+ cursor: not-allowed;
+ background-color: transparent;
+ background-image: none;
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+ }
+ .open > .dropdown-menu {
+ display: block;
+ }
+ .open > a {
+ outline: 0;
+ }
+ .dropdown-menu-right {
+ right: 0;
+ left: auto;
+ }
+ .dropdown-menu-left {
+ right: auto;
+ left: 0;
+ }
+ .dropdown-header {
+ display: block;
+ padding: 3px 20px;
+ font-size: 12px;
+ line-height: 1.42857143;
+ color: #777;
+ white-space: nowrap;
+ }
+ .dropdown-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 990;
+ }
+ .pull-right > .dropdown-menu {
+ right: 0;
+ left: auto;
+ }
+ .dropup .caret,
+ .navbar-fixed-bottom .dropdown .caret {
+ content: "";
+ border-top: 0;
+ border-bottom: 4px solid;
+ }
+ .dropup .dropdown-menu,
+ .navbar-fixed-bottom .dropdown .dropdown-menu {
+ top: auto;
+ bottom: 100%;
+ margin-bottom: 2px;
+ }
+ @media (min-width: 768px) {
+ .navbar-right .dropdown-menu {
+ right: 0;
+ left: auto;
+ }
+ .navbar-right .dropdown-menu-left {
+ right: auto;
+ left: 0;
+ }
+ }
+ .btn-group,
+ .btn-group-vertical {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+ }
+ .btn-group > .btn,
+ .btn-group-vertical > .btn {
+ position: relative;
+ float: left;
+ }
+ .btn-group > .btn:hover,
+ .btn-group-vertical > .btn:hover,
+ .btn-group > .btn:focus,
+ .btn-group-vertical > .btn:focus,
+ .btn-group > .btn:active,
+ .btn-group-vertical > .btn:active,
+ .btn-group > .btn.active,
+ .btn-group-vertical > .btn.active {
+ z-index: 2;
+ }
+ .btn-group .btn + .btn,
+ .btn-group .btn + .btn-group,
+ .btn-group .btn-group + .btn,
+ .btn-group .btn-group + .btn-group {
+ margin-left: -1px;
+ }
+ .btn-toolbar {
+ margin-left: -5px;
+ }
+ .btn-toolbar .btn-group,
+ .btn-toolbar .input-group {
+ float: left;
+ }
+ .btn-toolbar > .btn,
+ .btn-toolbar > .btn-group,
+ .btn-toolbar > .input-group {
+ margin-left: 5px;
+ }
+ .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
+ border-radius: 0;
+ }
+ .btn-group > .btn:first-child {
+ margin-left: 0;
+ }
+ .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ .btn-group > .btn:last-child:not(:first-child),
+ .btn-group > .dropdown-toggle:not(:first-child) {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ .btn-group > .btn-group {
+ float: left;
+ }
+ .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0;
+ }
+ .btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
+ .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ .btn-group .dropdown-toggle:active,
+ .btn-group.open .dropdown-toggle {
+ outline: 0;
+ }
+ .btn-group > .btn + .dropdown-toggle {
+ padding-right: 8px;
+ padding-left: 8px;
+ }
+ .btn-group > .btn-lg + .dropdown-toggle {
+ padding-right: 12px;
+ padding-left: 12px;
+ }
+ .btn-group.open .dropdown-toggle {
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ }
+ .btn-group.open .dropdown-toggle.btn-link {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ }
+ .btn .caret {
+ margin-left: 0;
+ }
+ .btn-lg .caret {
+ border-width: 5px 5px 0;
+ border-bottom-width: 0;
+ }
+ .dropup .btn-lg .caret {
+ border-width: 0 5px 5px;
+ }
+ .btn-group-vertical > .btn,
+ .btn-group-vertical > .btn-group,
+ .btn-group-vertical > .btn-group > .btn {
+ display: block;
+ float: none;
+ width: 100%;
+ max-width: 100%;
+ }
+ .btn-group-vertical > .btn-group > .btn {
+ float: none;
+ }
+ .btn-group-vertical > .btn + .btn,
+ .btn-group-vertical > .btn + .btn-group,
+ .btn-group-vertical > .btn-group + .btn,
+ .btn-group-vertical > .btn-group + .btn-group {
+ margin-top: -1px;
+ margin-left: 0;
+ }
+ .btn-group-vertical > .btn:not(:first-child):not(:last-child) {
+ border-radius: 0;
+ }
+ .btn-group-vertical > .btn:first-child:not(:last-child) {
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ .btn-group-vertical > .btn:last-child:not(:first-child) {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+ border-bottom-left-radius: 4px;
+ }
+ .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0;
+ }
+ .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
+ .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+ }
+ .btn-group-justified {
+ display: table;
+ width: 100%;
+ table-layout: fixed;
+ border-collapse: separate;
+ }
+ .btn-group-justified > .btn,
+ .btn-group-justified > .btn-group {
+ display: table-cell;
+ float: none;
+ width: 1%;
+ }
+ .btn-group-justified > .btn-group .btn {
+ width: 100%;
+ }
+ .btn-group-justified > .btn-group .dropdown-menu {
+ left: auto;
+ }
+ [data-toggle="buttons"] > .btn input[type="radio"],
+ [data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
+ [data-toggle="buttons"] > .btn input[type="checkbox"],
+ [data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
+ position: absolute;
+ clip: rect(0, 0, 0, 0);
+ pointer-events: none;
+ }
+ .input-group {
+ position: relative;
+ display: table;
+ border-collapse: separate;
+ }
+ .input-group[class*="col-"] {
+ float: none;
+ padding-right: 0;
+ padding-left: 0;
+ }
+ .input-group .form-control {
+ position: relative;
+ z-index: 2;
+ float: left;
+ width: 100%;
+ margin-bottom: 0;
+ }
+ .input-group-lg > .form-control,
+ .input-group-lg > .input-group-addon,
+ .input-group-lg > .input-group-btn > .btn {
+ height: 46px;
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.3333333;
+ border-radius: 6px;
+ }
+ select.input-group-lg > .form-control,
+ select.input-group-lg > .input-group-addon,
+ select.input-group-lg > .input-group-btn > .btn {
+ height: 46px;
+ line-height: 46px;
+ }
+ textarea.input-group-lg > .form-control,
+ textarea.input-group-lg > .input-group-addon,
+ textarea.input-group-lg > .input-group-btn > .btn,
+ select[multiple].input-group-lg > .form-control,
+ select[multiple].input-group-lg > .input-group-addon,
+ select[multiple].input-group-lg > .input-group-btn > .btn {
+ height: auto;
+ }
+ .input-group-sm > .form-control,
+ .input-group-sm > .input-group-addon,
+ .input-group-sm > .input-group-btn > .btn {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+ }
+ select.input-group-sm > .form-control,
+ select.input-group-sm > .input-group-addon,
+ select.input-group-sm > .input-group-btn > .btn {
+ height: 30px;
+ line-height: 30px;
+ }
+ textarea.input-group-sm > .form-control,
+ textarea.input-group-sm > .input-group-addon,
+ textarea.input-group-sm > .input-group-btn > .btn,
+ select[multiple].input-group-sm > .form-control,
+ select[multiple].input-group-sm > .input-group-addon,
+ select[multiple].input-group-sm > .input-group-btn > .btn {
+ height: auto;
+ }
+ .input-group-addon,
+ .input-group-btn,
+ .input-group .form-control {
+ display: table-cell;
+ }
+ .input-group-addon:not(:first-child):not(:last-child),
+ .input-group-btn:not(:first-child):not(:last-child),
+ .input-group .form-control:not(:first-child):not(:last-child) {
+ border-radius: 0;
+ }
+ .input-group-addon,
+ .input-group-btn {
+ width: 1%;
+ white-space: nowrap;
+ vertical-align: middle;
+ }
+ .input-group-addon {
+ padding: 6px 12px;
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 1;
+ color: #555;
+ text-align: center;
+ background-color: #eee;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+ }
+ .input-group-addon.input-sm {
+ padding: 5px 10px;
+ font-size: 12px;
+ border-radius: 3px;
+ }
+ .input-group-addon.input-lg {
+ padding: 10px 16px;
+ font-size: 18px;
+ border-radius: 6px;
+ }
+ .input-group-addon input[type="radio"],
+ .input-group-addon input[type="checkbox"] {
+ margin-top: 0;
+ }
+ .input-group .form-control:first-child,
+ .input-group-addon:first-child,
+ .input-group-btn:first-child > .btn,
+ .input-group-btn:first-child > .btn-group > .btn,
+ .input-group-btn:first-child > .dropdown-toggle,
+ .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
+ .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ .input-group-addon:first-child {
+ border-right: 0;
+ }
+ .input-group .form-control:last-child,
+ .input-group-addon:last-child,
+ .input-group-btn:last-child > .btn,
+ .input-group-btn:last-child > .btn-group > .btn,
+ .input-group-btn:last-child > .dropdown-toggle,
+ .input-group-btn:first-child > .btn:not(:first-child),
+ .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ .input-group-addon:last-child {
+ border-left: 0;
+ }
+ .input-group-btn {
+ position: relative;
+ font-size: 0;
+ white-space: nowrap;
+ }
+ .input-group-btn > .btn {
+ position: relative;
+ }
+ .input-group-btn > .btn + .btn {
+ margin-left: -1px;
+ }
+ .input-group-btn > .btn:hover,
+ .input-group-btn > .btn:focus,
+ .input-group-btn > .btn:active {
+ z-index: 2;
+ }
+ .input-group-btn:first-child > .btn,
+ .input-group-btn:first-child > .btn-group {
+ margin-right: -1px;
+ }
+ .input-group-btn:last-child > .btn,
+ .input-group-btn:last-child > .btn-group {
+ margin-left: -1px;
+ }
+ .nav {
+ padding-left: 0;
+ margin-bottom: 0;
+ list-style: none;
+ }
+ .nav > li {
+ position: relative;
+ display: block;
+ }
+ .nav > li > a {
+ position: relative;
+ display: block;
+ padding: 10px 15px;
+ }
+ .nav > li > a:hover,
+ .nav > li > a:focus {
+ text-decoration: none;
+ background-color: #eee;
+ }
+ .nav > li.disabled > a {
+ color: #777;
+ }
+ .nav > li.disabled > a:hover,
+ .nav > li.disabled > a:focus {
+ color: #777;
+ text-decoration: none;
+ cursor: not-allowed;
+ background-color: transparent;
+ }
+ .nav .open > a,
+ .nav .open > a:hover,
+ .nav .open > a:focus {
+ background-color: #eee;
+ border-color: #337ab7;
+ }
+ .nav .nav-divider {
+ height: 1px;
+ margin: 9px 0;
+ overflow: hidden;
+ background-color: #e5e5e5;
+ }
+ .nav > li > a > img {
+ max-width: none;
+ }
+ .nav-tabs {
+ border-bottom: 1px solid #ddd;
+ }
+ .nav-tabs > li {
+ float: left;
+ margin-bottom: -1px;
+ }
+ .nav-tabs > li > a {
+ margin-right: 2px;
+ line-height: 1.42857143;
+ border: 1px solid transparent;
+ border-radius: 4px 4px 0 0;
+ }
+ .nav-tabs > li > a:hover {
+ border-color: #eee #eee #ddd;
+ }
+ .nav-tabs > li.active > a,
+ .nav-tabs > li.active > a:hover,
+ .nav-tabs > li.active > a:focus {
+ color: #555;
+ cursor: default;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-bottom-color: transparent;
+ }
+ .nav-tabs.nav-justified {
+ width: 100%;
+ border-bottom: 0;
+ }
+ .nav-tabs.nav-justified > li {
+ float: none;
+ }
+ .nav-tabs.nav-justified > li > a {
+ margin-bottom: 5px;
+ text-align: center;
+ }
+ .nav-tabs.nav-justified > .dropdown .dropdown-menu {
+ top: auto;
+ left: auto;
+ }
+ @media (min-width: 768px) {
+ .nav-tabs.nav-justified > li {
+ display: table-cell;
+ width: 1%;
+ }
+ .nav-tabs.nav-justified > li > a {
+ margin-bottom: 0;
+ }
+ }
+ .nav-tabs.nav-justified > li > a {
+ margin-right: 0;
+ border-radius: 4px;
+ }
+ .nav-tabs.nav-justified > .active > a,
+ .nav-tabs.nav-justified > .active > a:hover,
+ .nav-tabs.nav-justified > .active > a:focus {
+ border: 1px solid #ddd;
+ }
+ @media (min-width: 768px) {
+ .nav-tabs.nav-justified > li > a {
+ border-bottom: 1px solid #ddd;
+ border-radius: 4px 4px 0 0;
+ }
+ .nav-tabs.nav-justified > .active > a,
+ .nav-tabs.nav-justified > .active > a:hover,
+ .nav-tabs.nav-justified > .active > a:focus {
+ border-bottom-color: #fff;
+ }
+ }
+ .nav-pills > li {
+ float: left;
+ }
+ .nav-pills > li > a {
+ border-radius: 4px;
+ }
+ .nav-pills > li + li {
+ margin-left: 2px;
+ }
+ .nav-pills > li.active > a,
+ .nav-pills > li.active > a:hover,
+ .nav-pills > li.active > a:focus {
+ color: #fff;
+ background-color: #337ab7;
+ }
+ .nav-stacked > li {
+ float: none;
+ }
+ .nav-stacked > li + li {
+ margin-top: 2px;
+ margin-left: 0;
+ }
+ .nav-justified {
+ width: 100%;
+ }
+ .nav-justified > li {
+ float: none;
+ }
+ .nav-justified > li > a {
+ margin-bottom: 5px;
+ text-align: center;
+ }
+ .nav-justified > .dropdown .dropdown-menu {
+ top: auto;
+ left: auto;
+ }
+ @media (min-width: 768px) {
+ .nav-justified > li {
+ display: table-cell;
+ width: 1%;
+ }
+ .nav-justified > li > a {
+ margin-bottom: 0;
+ }
+ }
+ .nav-tabs-justified {
+ border-bottom: 0;
+ }
+ .nav-tabs-justified > li > a {
+ margin-right: 0;
+ border-radius: 4px;
+ }
+ .nav-tabs-justified > .active > a,
+ .nav-tabs-justified > .active > a:hover,
+ .nav-tabs-justified > .active > a:focus {
+ border: 1px solid #ddd;
+ }
+ @media (min-width: 768px) {
+ .nav-tabs-justified > li > a {
+ border-bottom: 1px solid #ddd;
+ border-radius: 4px 4px 0 0;
+ }
+ .nav-tabs-justified > .active > a,
+ .nav-tabs-justified > .active > a:hover,
+ .nav-tabs-justified > .active > a:focus {
+ border-bottom-color: #fff;
+ }
+ }
+ .tab-content > .tab-pane {
+ display: none;
+ }
+ .tab-content > .active {
+ display: block;
+ }
+ .nav-tabs .dropdown-menu {
+ margin-top: -1px;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+ }
+ .navbar {
+ position: relative;
+ min-height: 50px;
+ margin-bottom: 20px;
+ border: 1px solid transparent;
+ }
+ @media (min-width: 768px) {
+ .navbar {
+ border-radius: 4px;
+ }
+ }
+ @media (min-width: 768px) {
+ .navbar-header {
+ float: left;
+ }
+ }
+ .navbar-collapse {
+ padding-right: 15px;
+ padding-left: 15px;
+ overflow-x: visible;
+ -webkit-overflow-scrolling: touch;
+ border-top: 1px solid transparent;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
+ }
+ .navbar-collapse.in {
+ overflow-y: auto;
+ }
+ @media (min-width: 768px) {
+ .navbar-collapse {
+ width: auto;
+ border-top: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ }
+ .navbar-collapse.collapse {
+ display: block !important;
+ height: auto !important;
+ padding-bottom: 0;
+ overflow: visible !important;
+ }
+ .navbar-collapse.in {
+ overflow-y: visible;
+ }
+ .navbar-fixed-top .navbar-collapse,
+ .navbar-static-top .navbar-collapse,
+ .navbar-fixed-bottom .navbar-collapse {
+ padding-right: 0;
+ padding-left: 0;
+ }
+ }
+ .navbar-fixed-top .navbar-collapse,
+ .navbar-fixed-bottom .navbar-collapse {
+ max-height: 340px;
+ }
+ @media (max-device-width: 480px) and (orientation: landscape) {
+ .navbar-fixed-top .navbar-collapse,
+ .navbar-fixed-bottom .navbar-collapse {
+ max-height: 200px;
+ }
+ }
+ .container > .navbar-header,
+ .container-fluid > .navbar-header,
+ .container > .navbar-collapse,
+ .container-fluid > .navbar-collapse {
+ margin-right: -15px;
+ margin-left: -15px;
+ }
+ @media (min-width: 768px) {
+ .container > .navbar-header,
+ .container-fluid > .navbar-header,
+ .container > .navbar-collapse,
+ .container-fluid > .navbar-collapse {
+ margin-right: 0;
+ margin-left: 0;
+ }
+ }
+ .navbar-static-top {
+ z-index: 1000;
+ border-width: 0 0 1px;
+ }
+ @media (min-width: 768px) {
+ .navbar-static-top {
+ border-radius: 0;
+ }
+ }
+ .navbar-fixed-top,
+ .navbar-fixed-bottom {
+ position: fixed;
+ right: 0;
+ left: 0;
+ z-index: 1030;
+ }
+ @media (min-width: 768px) {
+ .navbar-fixed-top,
+ .navbar-fixed-bottom {
+ border-radius: 0;
+ }
+ }
+ .navbar-fixed-top {
+ top: 0;
+ border-width: 0 0 1px;
+ }
+ .navbar-fixed-bottom {
+ bottom: 0;
+ margin-bottom: 0;
+ border-width: 1px 0 0;
+ }
+ .navbar-brand {
+ float: left;
+ height: 50px;
+ padding: 15px 15px;
+ font-size: 18px;
+ line-height: 20px;
+ }
+ .navbar-brand:hover,
+ .navbar-brand:focus {
+ text-decoration: none;
+ }
+ .navbar-brand > img {
+ display: block;
+ }
+ @media (min-width: 768px) {
+ .navbar > .container .navbar-brand,
+ .navbar > .container-fluid .navbar-brand {
+ margin-left: -15px;
+ }
+ }
+ .navbar-toggle {
+ position: relative;
+ float: right;
+ padding: 9px 10px;
+ margin-top: 8px;
+ margin-right: 15px;
+ margin-bottom: 8px;
+ background-color: transparent;
+ background-image: none;
+ border: 1px solid transparent;
+ border-radius: 4px;
+ }
+ .navbar-toggle:focus {
+ outline: 0;
+ }
+ .navbar-toggle .icon-bar {
+ display: block;
+ width: 22px;
+ height: 2px;
+ border-radius: 1px;
+ }
+ .navbar-toggle .icon-bar + .icon-bar {
+ margin-top: 4px;
+ }
+ @media (min-width: 768px) {
+ .navbar-toggle {
+ display: none;
+ }
+ }
+ .navbar-nav {
+ margin: 7.5px -15px;
+ }
+ .navbar-nav > li > a {
+ padding-top: 10px;
+ padding-bottom: 10px;
+ line-height: 20px;
+ }
+ @media (max-width: 767px) {
+ .navbar-nav .open .dropdown-menu {
+ position: static;
+ float: none;
+ width: auto;
+ margin-top: 0;
+ background-color: transparent;
+ border: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ }
+ .navbar-nav .open .dropdown-menu > li > a,
+ .navbar-nav .open .dropdown-menu .dropdown-header {
+ padding: 5px 15px 5px 25px;
+ }
+ .navbar-nav .open .dropdown-menu > li > a {
+ line-height: 20px;
+ }
+ .navbar-nav .open .dropdown-menu > li > a:hover,
+ .navbar-nav .open .dropdown-menu > li > a:focus {
+ background-image: none;
+ }
+ }
+ @media (min-width: 768px) {
+ .navbar-nav {
+ float: left;
+ margin: 0;
+ }
+ .navbar-nav > li {
+ float: left;
+ }
+ .navbar-nav > li > a {
+ padding-top: 15px;
+ padding-bottom: 15px;
+ }
+ }
+ .navbar-form {
+ padding: 10px 15px;
+ margin-top: 8px;
+ margin-right: -15px;
+ margin-bottom: 8px;
+ margin-left: -15px;
+ border-top: 1px solid transparent;
+ border-bottom: 1px solid transparent;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 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;
+ width: auto;
+ vertical-align: middle;
+ }
+ .navbar-form .form-control-static {
+ display: inline-block;
+ }
+ .navbar-form .input-group {
+ display: inline-table;
+ vertical-align: middle;
+ }
+ .navbar-form .input-group .input-group-addon,
+ .navbar-form .input-group .input-group-btn,
+ .navbar-form .input-group .form-control {
+ width: auto;
+ }
+ .navbar-form .input-group > .form-control {
+ width: 100%;
+ }
+ .navbar-form .control-label {
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .navbar-form .radio,
+ .navbar-form .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .navbar-form .radio label,
+ .navbar-form .checkbox label {
+ padding-left: 0;
+ }
+ .navbar-form .radio input[type="radio"],
+ .navbar-form .checkbox input[type="checkbox"] {
+ position: relative;
+ margin-left: 0;
+ }
+ .navbar-form .has-feedback .form-control-feedback {
+ top: 0;
+ }
+ }
+ @media (max-width: 767px) {
+ .navbar-form .form-group {
+ margin-bottom: 5px;
+ }
+ .navbar-form .form-group:last-child {
+ margin-bottom: 0;
+ }
+ }
+ @media (min-width: 768px) {
+ .navbar-form {
+ width: auto;
+ padding-top: 0;
+ padding-bottom: 0;
+ margin-right: 0;
+ margin-left: 0;
+ border: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ }
+ }
+ .navbar-nav > li > .dropdown-menu {
+ margin-top: 0;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+ }
+ .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
+ margin-bottom: 0;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ .navbar-btn {
+ margin-top: 8px;
+ margin-bottom: 8px;
+ }
+ .navbar-btn.btn-sm {
+ margin-top: 10px;
+ margin-bottom: 10px;
+ }
+ .navbar-btn.btn-xs {
+ margin-top: 14px;
+ margin-bottom: 14px;
+ }
+ .navbar-text {
+ margin-top: 15px;
+ margin-bottom: 15px;
+ }
+ @media (min-width: 768px) {
+ .navbar-text {
+ float: left;
+ margin-right: 15px;
+ margin-left: 15px;
+ }
+ }
+ @media (min-width: 768px) {
+ .navbar-left {
+ float: left !important;
+ }
+ .navbar-right {
+ float: right !important;
+ margin-right: -15px;
+ }
+ .navbar-right ~ .navbar-right {
+ margin-right: 0;
+ }
+ }
+ .navbar-default {
+ background-color: #f8f8f8;
+ border-color: #e7e7e7;
+ }
+ .navbar-default .navbar-brand {
+ color: #777;
+ }
+ .navbar-default .navbar-brand:hover,
+ .navbar-default .navbar-brand:focus {
+ color: #5e5e5e;
+ background-color: transparent;
+ }
+ .navbar-default .navbar-text {
+ color: #777;
+ }
+ .navbar-default .navbar-nav > li > a {
+ color: #777;
+ }
+ .navbar-default .navbar-nav > li > a:hover,
+ .navbar-default .navbar-nav > li > a:focus {
+ color: #333;
+ background-color: transparent;
+ }
+ .navbar-default .navbar-nav > .active > a,
+ .navbar-default .navbar-nav > .active > a:hover,
+ .navbar-default .navbar-nav > .active > a:focus {
+ color: #555;
+ background-color: #e7e7e7;
+ }
+ .navbar-default .navbar-nav > .disabled > a,
+ .navbar-default .navbar-nav > .disabled > a:hover,
+ .navbar-default .navbar-nav > .disabled > a:focus {
+ color: #ccc;
+ background-color: transparent;
+ }
+ .navbar-default .navbar-toggle {
+ border-color: #ddd;
+ }
+ .navbar-default .navbar-toggle:hover,
+ .navbar-default .navbar-toggle:focus {
+ background-color: #ddd;
+ }
+ .navbar-default .navbar-toggle .icon-bar {
+ background-color: #888;
+ }
+ .navbar-default .navbar-collapse,
+ .navbar-default .navbar-form {
+ border-color: #e7e7e7;
+ }
+ .navbar-default .navbar-nav > .open > a,
+ .navbar-default .navbar-nav > .open > a:hover,
+ .navbar-default .navbar-nav > .open > a:focus {
+ color: #555;
+ background-color: #e7e7e7;
+ }
+ @media (max-width: 767px) {
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a {
+ color: #777;
+ }
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
+ color: #333;
+ background-color: transparent;
+ }
+ .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
+ .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
+ .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
+ color: #555;
+ background-color: #e7e7e7;
+ }
+ .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
+ .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
+ .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+ color: #ccc;
+ background-color: transparent;
+ }
+ }
+ .navbar-default .navbar-link {
+ color: #777;
+ }
+ .navbar-default .navbar-link:hover {
+ color: #333;
+ }
+ .navbar-default .btn-link {
+ color: #777;
+ }
+ .navbar-default .btn-link:hover,
+ .navbar-default .btn-link:focus {
+ color: #333;
+ }
+ .navbar-default .btn-link[disabled]:hover,
+ fieldset[disabled] .navbar-default .btn-link:hover,
+ .navbar-default .btn-link[disabled]:focus,
+ fieldset[disabled] .navbar-default .btn-link:focus {
+ color: #ccc;
+ }
+ .navbar-inverse {
+ background-color: #222;
+ border-color: #080808;
+ }
+ .navbar-inverse .navbar-brand {
+ color: #9d9d9d;
+ }
+ .navbar-inverse .navbar-brand:hover,
+ .navbar-inverse .navbar-brand:focus {
+ color: #fff;
+ background-color: transparent;
+ }
+ .navbar-inverse .navbar-text {
+ color: #9d9d9d;
+ }
+ .navbar-inverse .navbar-nav > li > a {
+ color: #9d9d9d;
+ }
+ .navbar-inverse .navbar-nav > li > a:hover,
+ .navbar-inverse .navbar-nav > li > a:focus {
+ color: #fff;
+ background-color: transparent;
+ }
+ .navbar-inverse .navbar-nav > .active > a,
+ .navbar-inverse .navbar-nav > .active > a:hover,
+ .navbar-inverse .navbar-nav > .active > a:focus {
+ color: #fff;
+ background-color: #080808;
+ }
+ .navbar-inverse .navbar-nav > .disabled > a,
+ .navbar-inverse .navbar-nav > .disabled > a:hover,
+ .navbar-inverse .navbar-nav > .disabled > a:focus {
+ color: #444;
+ background-color: transparent;
+ }
+ .navbar-inverse .navbar-toggle {
+ border-color: #333;
+ }
+ .navbar-inverse .navbar-toggle:hover,
+ .navbar-inverse .navbar-toggle:focus {
+ background-color: #333;
+ }
+ .navbar-inverse .navbar-toggle .icon-bar {
+ background-color: #fff;
+ }
+ .navbar-inverse .navbar-collapse,
+ .navbar-inverse .navbar-form {
+ border-color: #101010;
+ }
+ .navbar-inverse .navbar-nav > .open > a,
+ .navbar-inverse .navbar-nav > .open > a:hover,
+ .navbar-inverse .navbar-nav > .open > a:focus {
+ color: #fff;
+ background-color: #080808;
+ }
+ @media (max-width: 767px) {
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
+ border-color: #080808;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
+ background-color: #080808;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
+ color: #9d9d9d;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
+ color: #fff;
+ background-color: transparent;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
+ color: #fff;
+ background-color: #080808;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+ color: #444;
+ background-color: transparent;
+ }
+ }
+ .navbar-inverse .navbar-link {
+ color: #9d9d9d;
+ }
+ .navbar-inverse .navbar-link:hover {
+ color: #fff;
+ }
+ .navbar-inverse .btn-link {
+ color: #9d9d9d;
+ }
+ .navbar-inverse .btn-link:hover,
+ .navbar-inverse .btn-link:focus {
+ color: #fff;
+ }
+ .navbar-inverse .btn-link[disabled]:hover,
+ fieldset[disabled] .navbar-inverse .btn-link:hover,
+ .navbar-inverse .btn-link[disabled]:focus,
+ fieldset[disabled] .navbar-inverse .btn-link:focus {
+ color: #444;
+ }
+ .breadcrumb {
+ padding: 8px 15px;
+ margin-bottom: 20px;
+ list-style: none;
+ background-color: #f5f5f5;
+ border-radius: 4px;
+ }
+ .breadcrumb > li {
+ display: inline-block;
+ }
+ .breadcrumb > li + li:before {
+ padding: 0 5px;
+ color: #ccc;
+ content: "/\00a0";
+ }
+ .breadcrumb > .active {
+ color: #777;
+ }
+ .pagination {
+ display: inline-block;
+ padding-left: 0;
+ margin: 20px 0;
+ border-radius: 4px;
+ }
+ .pagination > li {
+ display: inline;
+ }
+ .pagination > li > a,
+ .pagination > li > span {
+ position: relative;
+ float: left;
+ padding: 6px 12px;
+ margin-left: -1px;
+ line-height: 1.42857143;
+ color: #337ab7;
+ text-decoration: none;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ }
+ .pagination > li:first-child > a,
+ .pagination > li:first-child > span {
+ margin-left: 0;
+ border-top-left-radius: 4px;
+ border-bottom-left-radius: 4px;
+ }
+ .pagination > li:last-child > a,
+ .pagination > li:last-child > span {
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 4px;
+ }
+ .pagination > li > a:hover,
+ .pagination > li > span:hover,
+ .pagination > li > a:focus,
+ .pagination > li > span:focus {
+ color: #23527c;
+ background-color: #eee;
+ border-color: #ddd;
+ }
+ .pagination > .active > a,
+ .pagination > .active > span,
+ .pagination > .active > a:hover,
+ .pagination > .active > span:hover,
+ .pagination > .active > a:focus,
+ .pagination > .active > span:focus {
+ z-index: 2;
+ color: #fff;
+ cursor: default;
+ background-color: #337ab7;
+ border-color: #337ab7;
+ }
+ .pagination > .disabled > span,
+ .pagination > .disabled > span:hover,
+ .pagination > .disabled > span:focus,
+ .pagination > .disabled > a,
+ .pagination > .disabled > a:hover,
+ .pagination > .disabled > a:focus {
+ color: #777;
+ cursor: not-allowed;
+ background-color: #fff;
+ border-color: #ddd;
+ }
+ .pagination-lg > li > a,
+ .pagination-lg > li > span {
+ padding: 10px 16px;
+ font-size: 18px;
+ }
+ .pagination-lg > li:first-child > a,
+ .pagination-lg > li:first-child > span {
+ border-top-left-radius: 6px;
+ border-bottom-left-radius: 6px;
+ }
+ .pagination-lg > li:last-child > a,
+ .pagination-lg > li:last-child > span {
+ border-top-right-radius: 6px;
+ border-bottom-right-radius: 6px;
+ }
+ .pagination-sm > li > a,
+ .pagination-sm > li > span {
+ padding: 5px 10px;
+ font-size: 12px;
+ }
+ .pagination-sm > li:first-child > a,
+ .pagination-sm > li:first-child > span {
+ border-top-left-radius: 3px;
+ border-bottom-left-radius: 3px;
+ }
+ .pagination-sm > li:last-child > a,
+ .pagination-sm > li:last-child > span {
+ border-top-right-radius: 3px;
+ border-bottom-right-radius: 3px;
+ }
+ .pager {
+ padding-left: 0;
+ margin: 20px 0;
+ text-align: center;
+ list-style: none;
+ }
+ .pager li {
+ display: inline;
+ }
+ .pager li > a,
+ .pager li > span {
+ display: inline-block;
+ padding: 5px 14px;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 15px;
+ }
+ .pager li > a:hover,
+ .pager li > a:focus {
+ text-decoration: none;
+ background-color: #eee;
+ }
+ .pager .next > a,
+ .pager .next > span {
+ float: right;
+ }
+ .pager .previous > a,
+ .pager .previous > span {
+ float: left;
+ }
+ .pager .disabled > a,
+ .pager .disabled > a:hover,
+ .pager .disabled > a:focus,
+ .pager .disabled > span {
+ color: #777;
+ cursor: not-allowed;
+ background-color: #fff;
+ }
+ .label {
+ display: inline;
+ padding: 0.2em 0.6em 0.3em;
+ font-size: 75%;
+ font-weight: bold;
+ line-height: 1;
+ color: #fff;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: 0.25em;
+ }
+ a.label:hover,
+ a.label:focus {
+ color: #fff;
+ text-decoration: none;
+ cursor: pointer;
+ }
+ .label:empty {
+ display: none;
+ }
+ .btn .label {
+ position: relative;
+ top: -1px;
+ }
+ .label-default {
+ background-color: #777;
+ }
+ .label-default[href]:hover,
+ .label-default[href]:focus {
+ background-color: #5e5e5e;
+ }
+ .label-primary {
+ background-color: #337ab7;
+ }
+ .label-primary[href]:hover,
+ .label-primary[href]:focus {
+ background-color: #286090;
+ }
+ .label-success {
+ background-color: #5cb85c;
+ }
+ .label-success[href]:hover,
+ .label-success[href]:focus {
+ background-color: #449d44;
+ }
+ .label-info {
+ background-color: #5bc0de;
+ }
+ .label-info[href]:hover,
+ .label-info[href]:focus {
+ background-color: #31b0d5;
+ }
+ .label-warning {
+ background-color: #f0ad4e;
+ }
+ .label-warning[href]:hover,
+ .label-warning[href]:focus {
+ background-color: #ec971f;
+ }
+ .label-danger {
+ background-color: #d9534f;
+ }
+ .label-danger[href]:hover,
+ .label-danger[href]:focus {
+ background-color: #c9302c;
+ }
+ .badge {
+ display: inline-block;
+ min-width: 10px;
+ padding: 3px 7px;
+ font-size: 12px;
+ font-weight: bold;
+ line-height: 1;
+ color: #fff;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ background-color: #777;
+ border-radius: 10px;
+ }
+ .badge:empty {
+ display: none;
+ }
+ .btn .badge {
+ position: relative;
+ top: -1px;
+ }
+ .btn-xs .badge,
+ .btn-group-xs > .btn .badge {
+ top: 0;
+ padding: 1px 5px;
+ }
+ a.badge:hover,
+ a.badge:focus {
+ color: #fff;
+ text-decoration: none;
+ cursor: pointer;
+ }
+ .list-group-item.active > .badge,
+ .nav-pills > .active > a > .badge {
+ color: #337ab7;
+ background-color: #fff;
+ }
+ .list-group-item > .badge {
+ float: right;
+ }
+ .list-group-item > .badge + .badge {
+ margin-right: 5px;
+ }
+ .nav-pills > li > a > .badge {
+ margin-left: 3px;
+ }
+ .jumbotron {
+ padding: 30px 15px;
+ margin-bottom: 30px;
+ color: inherit;
+ background-color: #eee;
+ }
+ .jumbotron h1,
+ .jumbotron .h1 {
+ color: inherit;
+ }
+ .jumbotron p {
+ margin-bottom: 15px;
+ font-size: 21px;
+ font-weight: 200;
+ }
+ .jumbotron > hr {
+ border-top-color: #d5d5d5;
+ }
+ .container .jumbotron,
+ .container-fluid .jumbotron {
+ border-radius: 6px;
+ }
+ .jumbotron .container {
+ max-width: 100%;
+ }
+ @media screen and (min-width: 768px) {
+ .jumbotron {
+ padding: 48px 0;
+ }
+ .container .jumbotron,
+ .container-fluid .jumbotron {
+ padding-right: 60px;
+ padding-left: 60px;
+ }
+ .jumbotron h1,
+ .jumbotron .h1 {
+ font-size: 63px;
+ }
+ }
+ .thumbnail {
+ display: block;
+ padding: 4px;
+ margin-bottom: 20px;
+ line-height: 1.42857143;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ -webkit-transition: border 0.2s ease-in-out;
+ -o-transition: border 0.2s ease-in-out;
+ transition: border 0.2s ease-in-out;
+ }
+ .thumbnail > img,
+ .thumbnail a > img {
+ margin-right: auto;
+ margin-left: auto;
+ }
+ a.thumbnail:hover,
+ a.thumbnail:focus,
+ a.thumbnail.active {
+ border-color: #337ab7;
+ }
+ .thumbnail .caption {
+ padding: 9px;
+ color: #333;
+ }
+ .alert {
+ padding: 15px;
+ margin-bottom: 20px;
+ border: 1px solid transparent;
+ border-radius: 4px;
+ }
+ .alert h4 {
+ margin-top: 0;
+ color: inherit;
+ }
+ .alert .alert-link {
+ font-weight: bold;
+ }
+ .alert > p,
+ .alert > ul {
+ margin-bottom: 0;
+ }
+ .alert > p + p {
+ margin-top: 5px;
+ }
+ .alert-dismissable,
+ .alert-dismissible {
+ padding-right: 35px;
+ }
+ .alert-dismissable .close,
+ .alert-dismissible .close {
+ position: relative;
+ top: -2px;
+ right: -21px;
+ color: inherit;
+ }
+ .alert-success {
+ color: #3c763d;
+ background-color: #dff0d8;
+ border-color: #d6e9c6;
+ }
+ .alert-success hr {
+ border-top-color: #c9e2b3;
+ }
+ .alert-success .alert-link {
+ color: #2b542c;
+ }
+ .alert-info {
+ color: #31708f;
+ background-color: #d9edf7;
+ border-color: #bce8f1;
+ }
+ .alert-info hr {
+ border-top-color: #a6e1ec;
+ }
+ .alert-info .alert-link {
+ color: #245269;
+ }
+ .alert-warning {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+ border-color: #faebcc;
+ }
+ .alert-warning hr {
+ border-top-color: #f7e1b5;
+ }
+ .alert-warning .alert-link {
+ color: #66512c;
+ }
+ .alert-danger {
+ color: #a94442;
+ background-color: #f2dede;
+ border-color: #ebccd1;
+ }
+ .alert-danger hr {
+ border-top-color: #e4b9c0;
+ }
+ .alert-danger .alert-link {
+ color: #843534;
+ }
+ //@-webkit-keyframes progress-bar-stripes {
+ // from {
+ // background-position: 40px 0;
+ // }
+ // to {
+ // background-position: 0 0;
+ // }
+ //}
+ //@-o-keyframes progress-bar-stripes {
+ // from {
+ // background-position: 40px 0;
+ // }
+ // to {
+ // background-position: 0 0;
+ // }
+ //}
+ //@keyframes progress-bar-stripes {
+ // from {
+ // background-position: 40px 0;
+ // }
+ // to {
+ // background-position: 0 0;
+ // }
+ //}
+ //.progress {
+ // height: 20px;
+ // margin-bottom: 20px;
+ // overflow: hidden;
+ // background-color: #f5f5f5;
+ // border-radius: 4px;
+ // -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+ // box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+ //}
+ //.progress-bar {
+ // float: left;
+ // width: 0;
+ // height: 100%;
+ // font-size: 12px;
+ // line-height: 20px;
+ // color: #fff;
+ // text-align: center;
+ // background-color: #337ab7;
+ // -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ // box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ // -webkit-transition: width 0.6s ease;
+ // -o-transition: width 0.6s ease;
+ // transition: width 0.6s ease;
+ //}
+ //.progress-striped .progress-bar,
+ //.progress-bar-striped {
+ // background-image: -webkit-linear-gradient(
+ // 45deg,
+ // rgba(255, 255, 255, 0.15) 25%,
+ // transparent 25%,
+ // transparent 50%,
+ // rgba(255, 255, 255, 0.15) 50%,
+ // rgba(255, 255, 255, 0.15) 75%,
+ // transparent 75%,
+ // transparent
+ // );
+ // background-image: -o-linear-gradient(
+ // 45deg,
+ // rgba(255, 255, 255, 0.15) 25%,
+ // transparent 25%,
+ // transparent 50%,
+ // rgba(255, 255, 255, 0.15) 50%,
+ // rgba(255, 255, 255, 0.15) 75%,
+ // transparent 75%,
+ // transparent
+ // );
+ // background-image: linear-gradient(
+ // 45deg,
+ // rgba(255, 255, 255, 0.15) 25%,
+ // transparent 25%,
+ // transparent 50%,
+ // rgba(255, 255, 255, 0.15) 50%,
+ // rgba(255, 255, 255, 0.15) 75%,
+ // transparent 75%,
+ // transparent
+ // );
+ // -webkit-background-size: 40px 40px;
+ // background-size: 40px 40px;
+ //}
+ //.progress.active .progress-bar,
+ //.progress-bar.active {
+ // -webkit-animation: progress-bar-stripes 2s linear infinite;
+ // -o-animation: progress-bar-stripes 2s linear infinite;
+ // animation: progress-bar-stripes 2s linear infinite;
+ //}
+ //.progress-bar-success {
+ // background-color: #5cb85c;
+ //}
+ //.progress-striped .progress-bar-success {
+ // background-image: -webkit-linear-gradient(
+ // 45deg,
+ // rgba(255, 255, 255, 0.15) 25%,
+ // transparent 25%,
+ // transparent 50%,
+ // rgba(255, 255, 255, 0.15) 50%,
+ // rgba(255, 255, 255, 0.15) 75%,
+ // transparent 75%,
+ // transparent
+ // );
+ // background-image: -o-linear-gradient(
+ // 45deg,
+ // rgba(255, 255, 255, 0.15) 25%,
+ // transparent 25%,
+ // transparent 50%,
+ // rgba(255, 255, 255, 0.15) 50%,
+ // rgba(255, 255, 255, 0.15) 75%,
+ // transparent 75%,
+ // transparent
+ // );
+ // background-image: linear-gradient(
+ // 45deg,
+ // rgba(255, 255, 255, 0.15) 25%,
+ // transparent 25%,
+ // transparent 50%,
+ // rgba(255, 255, 255, 0.15) 50%,
+ // rgba(255, 255, 255, 0.15) 75%,
+ // transparent 75%,
+ // transparent
+ // );
+ //}
+ //.progress-bar-info {
+ // background-color: #5bc0de;
+ //}
+ //.progress-striped .progress-bar-info {
+ // background-image: -webkit-linear-gradient(
+ // 45deg,
+ // rgba(255, 255, 255, 0.15) 25%,
+ // transparent 25%,
+ // transparent 50%,
+ // rgba(255, 255, 255, 0.15) 50%,
+ // rgba(255, 255, 255, 0.15) 75%,
+ // transparent 75%,
+ // transparent
+ // );
+ // background-image: -o-linear-gradient(
+ // 45deg,
+ // rgba(255, 255, 255, 0.15) 25%,
+ // transparent 25%,
+ // transparent 50%,
+ // rgba(255, 255, 255, 0.15) 50%,
+ // rgba(255, 255, 255, 0.15) 75%,
+ // transparent 75%,
+ // transparent
+ // );
+ // background-image: linear-gradient(
+ // 45deg,
+ // rgba(255, 255, 255, 0.15) 25%,
+ // transparent 25%,
+ // transparent 50%,
+ // rgba(255, 255, 255, 0.15) 50%,
+ // rgba(255, 255, 255, 0.15) 75%,
+ // transparent 75%,
+ // transparent
+ // );
+ //}
+ //.progress-bar-warning {
+ // background-color: #f0ad4e;
+ //}
+ //.progress-striped .progress-bar-warning {
+ // background-image: -webkit-linear-gradient(
+ // 45deg,
+ // rgba(255, 255, 255, 0.15) 25%,
+ // transparent 25%,
+ // transparent 50%,
+ // rgba(255, 255, 255, 0.15) 50%,
+ // rgba(255, 255, 255, 0.15) 75%,
+ // transparent 75%,
+ // transparent
+ // );
+ // background-image: -o-linear-gradient(
+ // 45deg,
+ // rgba(255, 255, 255, 0.15) 25%,
+ // transparent 25%,
+ // transparent 50%,
+ // rgba(255, 255, 255, 0.15) 50%,
+ // rgba(255, 255, 255, 0.15) 75%,
+ // transparent 75%,
+ // transparent
+ // );
+ // background-image: linear-gradient(
+ // 45deg,
+ // rgba(255, 255, 255, 0.15) 25%,
+ // transparent 25%,
+ // transparent 50%,
+ // rgba(255, 255, 255, 0.15) 50%,
+ // rgba(255, 255, 255, 0.15) 75%,
+ // transparent 75%,
+ // transparent
+ // );
+ //}
+ //.progress-bar-danger {
+ // background-color: #d9534f;
+ //}
+ //.progress-striped .progress-bar-danger {
+ // background-image: -webkit-linear-gradient(
+ // 45deg,
+ // rgba(255, 255, 255, 0.15) 25%,
+ // transparent 25%,
+ // transparent 50%,
+ // rgba(255, 255, 255, 0.15) 50%,
+ // rgba(255, 255, 255, 0.15) 75%,
+ // transparent 75%,
+ // transparent
+ // );
+ // background-image: -o-linear-gradient(
+ // 45deg,
+ // rgba(255, 255, 255, 0.15) 25%,
+ // transparent 25%,
+ // transparent 50%,
+ // rgba(255, 255, 255, 0.15) 50%,
+ // rgba(255, 255, 255, 0.15) 75%,
+ // transparent 75%,
+ // transparent
+ // );
+ // background-image: linear-gradient(
+ // 45deg,
+ // rgba(255, 255, 255, 0.15) 25%,
+ // transparent 25%,
+ // transparent 50%,
+ // rgba(255, 255, 255, 0.15) 50%,
+ // rgba(255, 255, 255, 0.15) 75%,
+ // transparent 75%,
+ // transparent
+ // );
+ //}
+ .media {
+ margin-top: 15px;
+ }
+ .media:first-child {
+ margin-top: 0;
+ }
+ .media,
+ .media-body {
+ overflow: hidden;
+ zoom: 1;
+ }
+ .media-body {
+ width: 10000px;
+ }
+ .media-object {
+ display: block;
+ }
+ .media-right,
+ .media > .pull-right {
+ padding-left: 10px;
+ }
+ .media-left,
+ .media > .pull-left {
+ padding-right: 10px;
+ }
+ .media-left,
+ .media-right,
+ .media-body {
+ display: table-cell;
+ vertical-align: top;
+ }
+ .media-middle {
+ vertical-align: middle;
+ }
+ .media-bottom {
+ vertical-align: bottom;
+ }
+ .media-heading {
+ margin-top: 0;
+ margin-bottom: 5px;
+ }
+ .media-list {
+ padding-left: 0;
+ list-style: none;
+ }
+ .list-group {
+ padding-left: 0;
+ margin-bottom: 20px;
+ }
+ .list-group-item {
+ position: relative;
+ display: block;
+ padding: 10px 15px;
+ margin-bottom: -1px;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ }
+ .list-group-item:first-child {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ }
+ .list-group-item:last-child {
+ margin-bottom: 0;
+ border-bottom-right-radius: 4px;
+ border-bottom-left-radius: 4px;
+ }
+ a.list-group-item {
+ color: #555;
+ }
+ a.list-group-item .list-group-item-heading {
+ color: #333;
+ }
+ a.list-group-item:hover,
+ a.list-group-item:focus {
+ color: #555;
+ text-decoration: none;
+ background-color: #f5f5f5;
+ }
+ .list-group-item.disabled,
+ .list-group-item.disabled:hover,
+ .list-group-item.disabled:focus {
+ color: #777;
+ cursor: not-allowed;
+ background-color: #eee;
+ }
+ .list-group-item.disabled .list-group-item-heading,
+ .list-group-item.disabled:hover .list-group-item-heading,
+ .list-group-item.disabled:focus .list-group-item-heading {
+ color: inherit;
+ }
+ .list-group-item.disabled .list-group-item-text,
+ .list-group-item.disabled:hover .list-group-item-text,
+ .list-group-item.disabled:focus .list-group-item-text {
+ color: #777;
+ }
+ .list-group-item.active,
+ .list-group-item.active:hover,
+ .list-group-item.active:focus {
+ z-index: 2;
+ color: #fff;
+ background-color: #337ab7;
+ border-color: #337ab7;
+ }
+ .list-group-item.active .list-group-item-heading,
+ .list-group-item.active:hover .list-group-item-heading,
+ .list-group-item.active:focus .list-group-item-heading,
+ .list-group-item.active .list-group-item-heading > small,
+ .list-group-item.active:hover .list-group-item-heading > small,
+ .list-group-item.active:focus .list-group-item-heading > small,
+ .list-group-item.active .list-group-item-heading > .small,
+ .list-group-item.active:hover .list-group-item-heading > .small,
+ .list-group-item.active:focus .list-group-item-heading > .small {
+ color: inherit;
+ }
+ .list-group-item.active .list-group-item-text,
+ .list-group-item.active:hover .list-group-item-text,
+ .list-group-item.active:focus .list-group-item-text {
+ color: #c7ddef;
+ }
+ .list-group-item-success {
+ color: #3c763d;
+ background-color: #dff0d8;
+ }
+ a.list-group-item-success {
+ color: #3c763d;
+ }
+ a.list-group-item-success .list-group-item-heading {
+ color: inherit;
+ }
+ a.list-group-item-success:hover,
+ a.list-group-item-success:focus {
+ color: #3c763d;
+ background-color: #d0e9c6;
+ }
+ a.list-group-item-success.active,
+ a.list-group-item-success.active:hover,
+ a.list-group-item-success.active:focus {
+ color: #fff;
+ background-color: #3c763d;
+ border-color: #3c763d;
+ }
+ .list-group-item-info {
+ color: #31708f;
+ background-color: #d9edf7;
+ }
+ a.list-group-item-info {
+ color: #31708f;
+ }
+ a.list-group-item-info .list-group-item-heading {
+ color: inherit;
+ }
+ a.list-group-item-info:hover,
+ a.list-group-item-info:focus {
+ color: #31708f;
+ background-color: #c4e3f3;
+ }
+ a.list-group-item-info.active,
+ a.list-group-item-info.active:hover,
+ a.list-group-item-info.active:focus {
+ color: #fff;
+ background-color: #31708f;
+ border-color: #31708f;
+ }
+ .list-group-item-warning {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+ }
+ a.list-group-item-warning {
+ color: #8a6d3b;
+ }
+ a.list-group-item-warning .list-group-item-heading {
+ color: inherit;
+ }
+ a.list-group-item-warning:hover,
+ a.list-group-item-warning:focus {
+ color: #8a6d3b;
+ background-color: #faf2cc;
+ }
+ a.list-group-item-warning.active,
+ a.list-group-item-warning.active:hover,
+ a.list-group-item-warning.active:focus {
+ color: #fff;
+ background-color: #8a6d3b;
+ border-color: #8a6d3b;
+ }
+ .list-group-item-danger {
+ color: #a94442;
+ background-color: #f2dede;
+ }
+ a.list-group-item-danger {
+ color: #a94442;
+ }
+ a.list-group-item-danger .list-group-item-heading {
+ color: inherit;
+ }
+ a.list-group-item-danger:hover,
+ a.list-group-item-danger:focus {
+ color: #a94442;
+ background-color: #ebcccc;
+ }
+ a.list-group-item-danger.active,
+ a.list-group-item-danger.active:hover,
+ a.list-group-item-danger.active:focus {
+ color: #fff;
+ background-color: #a94442;
+ border-color: #a94442;
+ }
+ .list-group-item-heading {
+ margin-top: 0;
+ margin-bottom: 5px;
+ }
+ .list-group-item-text {
+ margin-bottom: 0;
+ line-height: 1.3;
+ }
+ .panel {
+ margin-bottom: 20px;
+ background-color: #fff;
+ 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-heading {
+ padding: 10px 15px;
+ border-bottom: 1px solid transparent;
+ border-top-left-radius: 3px;
+ border-top-right-radius: 3px;
+ }
+ .panel-heading > .dropdown .dropdown-toggle {
+ color: inherit;
+ }
+ .panel-title {
+ margin-top: 0;
+ margin-bottom: 0;
+ font-size: 16px;
+ color: inherit;
+ }
+ .panel-title > a,
+ .panel-title > small,
+ .panel-title > .small,
+ .panel-title > small > a,
+ .panel-title > .small > a {
+ color: inherit;
+ }
+ .panel-footer {
+ padding: 10px 15px;
+ background-color: #f5f5f5;
+ border-top: 1px solid #ddd;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+ }
+ .panel > .list-group,
+ .panel > .panel-collapse > .list-group {
+ margin-bottom: 0;
+ }
+ .panel > .list-group .list-group-item,
+ .panel > .panel-collapse > .list-group .list-group-item {
+ border-width: 1px 0;
+ border-radius: 0;
+ }
+ .panel > .list-group:first-child .list-group-item:first-child,
+ .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
+ border-top: 0;
+ border-top-left-radius: 3px;
+ border-top-right-radius: 3px;
+ }
+ .panel > .list-group:last-child .list-group-item:last-child,
+ .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
+ border-bottom: 0;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+ }
+ .panel-heading + .list-group .list-group-item:first-child {
+ border-top-width: 0;
+ }
+ .list-group + .panel-footer {
+ border-top-width: 0;
+ }
+ .panel > .table,
+ .panel > .table-responsive > .table,
+ .panel > .panel-collapse > .table {
+ margin-bottom: 0;
+ }
+ .panel > .table caption,
+ .panel > .table-responsive > .table caption,
+ .panel > .panel-collapse > .table caption {
+ padding-right: 15px;
+ padding-left: 15px;
+ }
+ .panel > .table:first-child,
+ .panel > .table-responsive:first-child > .table:first-child {
+ border-top-left-radius: 3px;
+ border-top-right-radius: 3px;
+ }
+ .panel > .table:first-child > thead:first-child > tr:first-child,
+ .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
+ .panel > .table:first-child > tbody:first-child > tr:first-child,
+ .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
+ border-top-left-radius: 3px;
+ border-top-right-radius: 3px;
+ }
+ .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
+ .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
+ .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+ .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+ .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
+ .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
+ .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
+ .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
+ border-top-left-radius: 3px;
+ }
+ .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
+ .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
+ .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+ .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+ .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
+ .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
+ .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
+ .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
+ border-top-right-radius: 3px;
+ }
+ .panel > .table:last-child,
+ .panel > .table-responsive:last-child > .table:last-child {
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+ }
+ .panel > .table:last-child > tbody:last-child > tr:last-child,
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
+ .panel > .table:last-child > tfoot:last-child > tr:last-child,
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+ }
+ .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+ .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+ .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+ .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
+ border-bottom-left-radius: 3px;
+ }
+ .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+ .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+ .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+ .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
+ border-bottom-right-radius: 3px;
+ }
+ .panel > .panel-body + .table,
+ .panel > .panel-body + .table-responsive,
+ .panel > .table + .panel-body,
+ .panel > .table-responsive + .panel-body {
+ border-top: 1px solid #ddd;
+ }
+ .panel > .table > tbody:first-child > tr:first-child th,
+ .panel > .table > tbody:first-child > tr:first-child td {
+ border-top: 0;
+ }
+ .panel > .table-bordered,
+ .panel > .table-responsive > .table-bordered {
+ border: 0;
+ }
+ .panel > .table-bordered > thead > tr > th:first-child,
+ .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
+ .panel > .table-bordered > tbody > tr > th:first-child,
+ .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
+ .panel > .table-bordered > tfoot > tr > th:first-child,
+ .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+ .panel > .table-bordered > thead > tr > td:first-child,
+ .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
+ .panel > .table-bordered > tbody > tr > td:first-child,
+ .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
+ .panel > .table-bordered > tfoot > tr > td:first-child,
+ .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-left: 0;
+ }
+ .panel > .table-bordered > thead > tr > th:last-child,
+ .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
+ .panel > .table-bordered > tbody > tr > th:last-child,
+ .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
+ .panel > .table-bordered > tfoot > tr > th:last-child,
+ .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+ .panel > .table-bordered > thead > tr > td:last-child,
+ .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
+ .panel > .table-bordered > tbody > tr > td:last-child,
+ .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
+ .panel > .table-bordered > tfoot > tr > td:last-child,
+ .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: 0;
+ }
+ .panel > .table-bordered > thead > tr:first-child > td,
+ .panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
+ .panel > .table-bordered > tbody > tr:first-child > td,
+ .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
+ .panel > .table-bordered > thead > tr:first-child > th,
+ .panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
+ .panel > .table-bordered > tbody > tr:first-child > th,
+ .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
+ border-bottom: 0;
+ }
+ .panel > .table-bordered > tbody > tr:last-child > td,
+ .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
+ .panel > .table-bordered > tfoot > tr:last-child > td,
+ .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
+ .panel > .table-bordered > tbody > tr:last-child > th,
+ .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
+ .panel > .table-bordered > tfoot > tr:last-child > th,
+ .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
+ border-bottom: 0;
+ }
+ .panel > .table-responsive {
+ margin-bottom: 0;
+ border: 0;
+ }
+ .panel-group {
+ margin-bottom: 20px;
+ }
+ .panel-group .panel {
+ margin-bottom: 0;
+ border-radius: 4px;
+ }
+ .panel-group .panel + .panel {
+ margin-top: 5px;
+ }
+ .panel-group .panel-heading {
+ border-bottom: 0;
+ }
+ .panel-group .panel-heading + .panel-collapse > .panel-body,
+ .panel-group .panel-heading + .panel-collapse > .list-group {
+ border-top: 1px solid #ddd;
+ }
+ .panel-group .panel-footer {
+ border-top: 0;
+ }
+ .panel-group .panel-footer + .panel-collapse .panel-body {
+ border-bottom: 1px solid #ddd;
+ }
+ .panel-default {
+ border-color: #ddd;
+ }
+ .panel-default > .panel-heading {
+ color: #333;
+ background-color: #f5f5f5;
+ border-color: #ddd;
+ }
+ .panel-default > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #ddd;
+ }
+ .panel-default > .panel-heading .badge {
+ color: #f5f5f5;
+ background-color: #333;
+ }
+ .panel-default > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #ddd;
+ }
+ .panel-primary {
+ border-color: #337ab7;
+ }
+ .panel-primary > .panel-heading {
+ color: #fff;
+ background-color: #337ab7;
+ border-color: #337ab7;
+ }
+ .panel-primary > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #337ab7;
+ }
+ .panel-primary > .panel-heading .badge {
+ color: #337ab7;
+ background-color: #fff;
+ }
+ .panel-primary > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #337ab7;
+ }
+ .panel-success {
+ border-color: #d6e9c6;
+ }
+ .panel-success > .panel-heading {
+ color: #3c763d;
+ background-color: #dff0d8;
+ border-color: #d6e9c6;
+ }
+ .panel-success > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #d6e9c6;
+ }
+ .panel-success > .panel-heading .badge {
+ color: #dff0d8;
+ background-color: #3c763d;
+ }
+ .panel-success > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #d6e9c6;
+ }
+ .panel-info {
+ border-color: #bce8f1;
+ }
+ .panel-info > .panel-heading {
+ color: #31708f;
+ background-color: #d9edf7;
+ border-color: #bce8f1;
+ }
+ .panel-info > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #bce8f1;
+ }
+ .panel-info > .panel-heading .badge {
+ color: #d9edf7;
+ background-color: #31708f;
+ }
+ .panel-info > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #bce8f1;
+ }
+ .panel-warning {
+ border-color: #faebcc;
+ }
+ .panel-warning > .panel-heading {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+ border-color: #faebcc;
+ }
+ .panel-warning > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #faebcc;
+ }
+ .panel-warning > .panel-heading .badge {
+ color: #fcf8e3;
+ background-color: #8a6d3b;
+ }
+ .panel-warning > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #faebcc;
+ }
+ .panel-danger {
+ border-color: #ebccd1;
+ }
+ .panel-danger > .panel-heading {
+ color: #a94442;
+ background-color: #f2dede;
+ border-color: #ebccd1;
+ }
+ .panel-danger > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #ebccd1;
+ }
+ .panel-danger > .panel-heading .badge {
+ color: #f2dede;
+ background-color: #a94442;
+ }
+ .panel-danger > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #ebccd1;
+ }
+ .embed-responsive {
+ position: relative;
+ display: block;
+ height: 0;
+ padding: 0;
+ overflow: hidden;
+ }
+ .embed-responsive .embed-responsive-item,
+ .embed-responsive iframe,
+ .embed-responsive embed,
+ .embed-responsive object,
+ .embed-responsive video {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ border: 0;
+ }
+ .embed-responsive-16by9 {
+ padding-bottom: 56.25%;
+ }
+ .embed-responsive-4by3 {
+ padding-bottom: 75%;
+ }
+ .well {
+ min-height: 20px;
+ padding: 19px;
+ margin-bottom: 20px;
+ background-color: #f5f5f5;
+ border: 1px solid #e3e3e3;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 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: #000;
+ text-shadow: 0 1px 0 #fff;
+ filter: alpha(opacity=20);
+ opacity: 0.2;
+ }
+ .close:hover,
+ .close:focus {
+ color: #000;
+ text-decoration: none;
+ cursor: pointer;
+ filter: alpha(opacity=50);
+ opacity: 0.5;
+ }
+ button.close {
+ -webkit-appearance: none;
+ padding: 0;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+ }
+ .modal-open {
+ overflow: hidden;
+ }
+ .modal {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1050;
+ display: none;
+ overflow: hidden;
+ -webkit-overflow-scrolling: touch;
+ outline: 0;
+ }
+ .modal.fade .modal-dialog {
+ -webkit-transition: -webkit-transform 0.3s ease-out;
+ -o-transition: -o-transform 0.3s ease-out;
+ transition: transform 0.3s ease-out;
+ -webkit-transform: translate(0, -25%);
+ -ms-transform: translate(0, -25%);
+ -o-transform: translate(0, -25%);
+ transform: translate(0, -25%);
+ }
+ .modal.in .modal-dialog {
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ -o-transform: translate(0, 0);
+ transform: translate(0, 0);
+ }
+ .modal-open .modal {
+ overflow-x: hidden;
+ overflow-y: auto;
+ }
+ .modal-dialog {
+ position: relative;
+ width: auto;
+ margin: 10px;
+ }
+ .modal-content {
+ position: relative;
+ background-color: #fff;
+ -webkit-background-clip: padding-box;
+ background-clip: padding-box;
+ border: 1px solid #999;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 6px;
+ outline: 0;
+ -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ }
+ .modal-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1040;
+ background-color: #000;
+ }
+ .modal-backdrop.fade {
+ filter: alpha(opacity=0);
+ opacity: 0;
+ }
+ .modal-backdrop.in {
+ filter: alpha(opacity=50);
+ opacity: 0.5;
+ }
+ .modal-header {
+ min-height: 16.42857143px;
+ padding: 15px;
+ border-bottom: 1px solid #e5e5e5;
+ }
+ .modal-header .close {
+ margin-top: -2px;
+ }
+ .modal-title {
+ margin: 0;
+ line-height: 1.42857143;
+ }
+ //.modal-body {
+ // position: relative;
+ // padding: 15px;
+ //}
+ .modal-footer {
+ padding: 15px;
+ text-align: right;
+ border-top: 1px solid #e5e5e5;
+ }
+ .modal-footer .btn + .btn {
+ margin-bottom: 0;
+ margin-left: 5px;
+ }
+ .modal-footer .btn-group .btn + .btn {
+ margin-left: -1px;
+ }
+ .modal-footer .btn-block + .btn-block {
+ margin-left: 0;
+ }
+ .modal-scrollbar-measure {
+ position: absolute;
+ top: -9999px;
+ width: 50px;
+ height: 50px;
+ overflow: scroll;
+ }
+ @media (min-width: 768px) {
+ .modal-dialog {
+ width: 600px;
+ margin: 30px auto;
+ }
+ .modal-content {
+ -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+ }
+ .modal-sm {
+ width: 300px;
+ }
+ }
+ @media (min-width: 992px) {
+ .modal-lg {
+ width: 900px;
+ }
+ }
+ .tooltip {
+ position: absolute;
+ z-index: 1070;
+ display: block;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 12px;
+ font-weight: normal;
+ line-height: 1.4;
+ filter: alpha(opacity=0);
+ opacity: 0;
+ }
+ .tooltip.in {
+ filter: alpha(opacity=90);
+ opacity: 0.9;
+ }
+ .tooltip.top {
+ padding: 5px 0;
+ margin-top: -3px;
+ }
+ .tooltip.right {
+ padding: 0 5px;
+ margin-left: 3px;
+ }
+ .tooltip.bottom {
+ padding: 5px 0;
+ margin-top: 3px;
+ }
+ .tooltip.left {
+ padding: 0 5px;
+ margin-left: -3px;
+ }
+ .tooltip-inner {
+ max-width: 200px;
+ padding: 3px 8px;
+ color: #fff;
+ text-align: center;
+ text-decoration: none;
+ background-color: #000;
+ border-radius: 4px;
+ }
+ .tooltip-arrow {
+ position: absolute;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+ }
+ .tooltip.top .tooltip-arrow {
+ bottom: 0;
+ left: 50%;
+ margin-left: -5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000;
+ }
+ .tooltip.top-left .tooltip-arrow {
+ right: 5px;
+ bottom: 0;
+ margin-bottom: -5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000;
+ }
+ .tooltip.top-right .tooltip-arrow {
+ bottom: 0;
+ left: 5px;
+ margin-bottom: -5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000;
+ }
+ .tooltip.right .tooltip-arrow {
+ top: 50%;
+ left: 0;
+ margin-top: -5px;
+ border-width: 5px 5px 5px 0;
+ border-right-color: #000;
+ }
+ .tooltip.left .tooltip-arrow {
+ top: 50%;
+ right: 0;
+ margin-top: -5px;
+ border-width: 5px 0 5px 5px;
+ border-left-color: #000;
+ }
+ .tooltip.bottom .tooltip-arrow {
+ top: 0;
+ left: 50%;
+ margin-left: -5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000;
+ }
+ .tooltip.bottom-left .tooltip-arrow {
+ top: 0;
+ right: 5px;
+ margin-top: -5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000;
+ }
+ .tooltip.bottom-right .tooltip-arrow {
+ top: 0;
+ left: 5px;
+ margin-top: -5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000;
+ }
+ .popover {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 1060;
+ display: none;
+ max-width: 276px;
+ padding: 1px;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 1.42857143;
+ text-align: left;
+ white-space: normal;
+ background-color: #fff;
+ -webkit-background-clip: padding-box;
+ background-clip: padding-box;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 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);
+ }
+ .popover.top {
+ margin-top: -10px;
+ }
+ .popover.right {
+ margin-left: 10px;
+ }
+ .popover.bottom {
+ margin-top: 10px;
+ }
+ .popover.left {
+ margin-left: -10px;
+ }
+ .popover-title {
+ padding: 8px 14px;
+ margin: 0;
+ font-size: 14px;
+ background-color: #f7f7f7;
+ border-bottom: 1px solid #ebebeb;
+ border-radius: 5px 5px 0 0;
+ }
+ .popover-content {
+ padding: 9px 14px;
+ }
+ .popover > .arrow,
+ .popover > .arrow:after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+ }
+ .popover > .arrow {
+ border-width: 11px;
+ }
+ .popover > .arrow:after {
+ content: "";
+ border-width: 10px;
+ }
+ .popover.top > .arrow {
+ bottom: -11px;
+ left: 50%;
+ margin-left: -11px;
+ border-top-color: #999;
+ border-top-color: rgba(0, 0, 0, 0.25);
+ border-bottom-width: 0;
+ }
+ .popover.top > .arrow:after {
+ bottom: 1px;
+ margin-left: -10px;
+ content: " ";
+ border-top-color: #fff;
+ border-bottom-width: 0;
+ }
+ .popover.right > .arrow {
+ top: 50%;
+ left: -11px;
+ margin-top: -11px;
+ border-right-color: #999;
+ border-right-color: rgba(0, 0, 0, 0.25);
+ border-left-width: 0;
+ }
+ .popover.right > .arrow:after {
+ bottom: -10px;
+ left: 1px;
+ content: " ";
+ border-right-color: #fff;
+ border-left-width: 0;
+ }
+ .popover.bottom > .arrow {
+ top: -11px;
+ left: 50%;
+ margin-left: -11px;
+ border-top-width: 0;
+ border-bottom-color: #999;
+ border-bottom-color: rgba(0, 0, 0, 0.25);
+ }
+ .popover.bottom > .arrow:after {
+ top: 1px;
+ margin-left: -10px;
+ content: " ";
+ border-top-width: 0;
+ border-bottom-color: #fff;
+ }
+ .popover.left > .arrow {
+ top: 50%;
+ right: -11px;
+ margin-top: -11px;
+ border-right-width: 0;
+ border-left-color: #999;
+ border-left-color: rgba(0, 0, 0, 0.25);
+ }
+ .popover.left > .arrow:after {
+ right: 1px;
+ bottom: -10px;
+ content: " ";
+ border-right-width: 0;
+ border-left-color: #fff;
+ }
+ .carousel {
+ position: relative;
+ }
+ .carousel-inner {
+ position: relative;
+ width: 100%;
+ overflow: hidden;
+ }
+ .carousel-inner > .item {
+ position: relative;
+ display: none;
+ -webkit-transition: 0.6s ease-in-out left;
+ -o-transition: 0.6s ease-in-out left;
+ transition: 0.6s ease-in-out left;
+ }
+ .carousel-inner > .item > img,
+ .carousel-inner > .item > a > img {
+ line-height: 1;
+ }
+ @media all and (transform-3d), (-webkit-transform-3d) {
+ .carousel-inner > .item {
+ -webkit-transition: -webkit-transform 0.6s ease-in-out;
+ -o-transition: -o-transform 0.6s ease-in-out;
+ transition: transform 0.6s ease-in-out;
+
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-perspective: 1000;
+ perspective: 1000;
+ }
+ .carousel-inner > .item.next,
+ .carousel-inner > .item.active.right {
+ left: 0;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ }
+ .carousel-inner > .item.prev,
+ .carousel-inner > .item.active.left {
+ left: 0;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ }
+ .carousel-inner > .item.next.left,
+ .carousel-inner > .item.prev.right,
+ .carousel-inner > .item.active {
+ left: 0;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+ }
+ .carousel-inner > .active,
+ .carousel-inner > .next,
+ .carousel-inner > .prev {
+ display: block;
+ }
+ .carousel-inner > .active {
+ left: 0;
+ }
+ .carousel-inner > .next,
+ .carousel-inner > .prev {
+ position: absolute;
+ top: 0;
+ width: 100%;
+ }
+ .carousel-inner > .next {
+ left: 100%;
+ }
+ .carousel-inner > .prev {
+ left: -100%;
+ }
+ .carousel-inner > .next.left,
+ .carousel-inner > .prev.right {
+ left: 0;
+ }
+ .carousel-inner > .active.left {
+ left: -100%;
+ }
+ .carousel-inner > .active.right {
+ left: 100%;
+ }
+ .carousel-control {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ width: 15%;
+ font-size: 20px;
+ color: #fff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+ filter: alpha(opacity=50);
+ opacity: 0.5;
+ }
+ .carousel-control.left {
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ background-image: -webkit-gradient(
+ linear,
+ left top,
+ right top,
+ from(rgba(0, 0, 0, 0.5)),
+ to(rgba(0, 0, 0, 0.0001))
+ );
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
+ background-repeat: repeat-x;
+ }
+ .carousel-control.right {
+ right: 0;
+ left: auto;
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ background-image: -webkit-gradient(
+ linear,
+ left top,
+ right top,
+ from(rgba(0, 0, 0, 0.0001)),
+ to(rgba(0, 0, 0, 0.5))
+ );
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
+ background-repeat: repeat-x;
+ }
+ .carousel-control:hover,
+ .carousel-control:focus {
+ color: #fff;
+ text-decoration: none;
+ filter: alpha(opacity=90);
+ outline: 0;
+ opacity: 0.9;
+ }
+ .carousel-control .icon-prev,
+ .carousel-control .icon-next,
+ .carousel-control .glyphicon-chevron-left,
+ .carousel-control .glyphicon-chevron-right {
+ position: absolute;
+ top: 50%;
+ z-index: 5;
+ display: inline-block;
+ }
+ .carousel-control .icon-prev,
+ .carousel-control .glyphicon-chevron-left {
+ left: 50%;
+ margin-left: -10px;
+ }
+ .carousel-control .icon-next,
+ .carousel-control .glyphicon-chevron-right {
+ right: 50%;
+ margin-right: -10px;
+ }
+ .carousel-control .icon-prev,
+ .carousel-control .icon-next {
+ width: 20px;
+ height: 20px;
+ margin-top: -10px;
+ font-family: serif;
+ line-height: 1;
+ }
+ .carousel-control .icon-prev:before {
+ content: "\2039";
+ }
+ .carousel-control .icon-next:before {
+ content: "\203a";
+ }
+ .carousel-indicators {
+ position: absolute;
+ bottom: 10px;
+ left: 50%;
+ z-index: 15;
+ width: 60%;
+ padding-left: 0;
+ margin-left: -30%;
+ text-align: center;
+ list-style: none;
+ }
+ .carousel-indicators li {
+ display: inline-block;
+ width: 10px;
+ height: 10px;
+ margin: 1px;
+ text-indent: -999px;
+ cursor: pointer;
+ background-color: #000 \9;
+ background-color: rgba(0, 0, 0, 0);
+ border: 1px solid #fff;
+ border-radius: 10px;
+ }
+ .carousel-indicators .active {
+ width: 12px;
+ height: 12px;
+ margin: 0;
+ background-color: #fff;
+ }
+ .carousel-caption {
+ position: absolute;
+ right: 15%;
+ bottom: 20px;
+ left: 15%;
+ z-index: 10;
+ padding-top: 20px;
+ padding-bottom: 20px;
+ color: #fff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+ }
+ .carousel-caption .btn {
+ text-shadow: none;
+ }
+ @media screen and (min-width: 768px) {
+ .carousel-control .glyphicon-chevron-left,
+ .carousel-control .glyphicon-chevron-right,
+ .carousel-control .icon-prev,
+ .carousel-control .icon-next {
+ width: 30px;
+ height: 30px;
+ margin-top: -15px;
+ font-size: 30px;
+ }
+ .carousel-control .glyphicon-chevron-left,
+ .carousel-control .icon-prev {
+ margin-left: -15px;
+ }
+ .carousel-control .glyphicon-chevron-right,
+ .carousel-control .icon-next {
+ margin-right: -15px;
+ }
+ .carousel-caption {
+ right: 20%;
+ left: 20%;
+ padding-bottom: 30px;
+ }
+ .carousel-indicators {
+ bottom: 20px;
+ }
+ }
+ .clearfix:before,
+ .clearfix:after,
+ .dl-horizontal dd:before,
+ .dl-horizontal dd:after,
+ .container:before,
+ .container:after,
+ .container-fluid:before,
+ .container-fluid:after,
+ .row:before,
+ .row:after,
+ .form-horizontal .form-group:before,
+ .form-horizontal .form-group:after,
+ .btn-toolbar:before,
+ .btn-toolbar:after,
+ .btn-group-vertical > .btn-group:before,
+ .btn-group-vertical > .btn-group:after,
+ .nav:before,
+ .nav:after,
+ .navbar:before,
+ .navbar:after,
+ .navbar-header:before,
+ .navbar-header:after,
+ .navbar-collapse:before,
+ .navbar-collapse:after,
+ .pager:before,
+ .pager:after,
+ .panel-body:before,
+ .panel-body:after,
+ .modal-footer:before,
+ .modal-footer:after {
+ display: table;
+ content: " ";
+ }
+ .clearfix:after,
+ .dl-horizontal dd:after,
+ .container:after,
+ .container-fluid:after,
+ .row:after,
+ .form-horizontal .form-group:after,
+ .btn-toolbar:after,
+ .btn-group-vertical > .btn-group:after,
+ .nav:after,
+ .navbar:after,
+ .navbar-header:after,
+ .navbar-collapse:after,
+ .pager:after,
+ .panel-body:after,
+ .modal-footer:after {
+ clear: both;
+ }
+ .center-block {
+ display: block;
+ margin-right: auto;
+ margin-left: auto;
+ }
+ .pull-right {
+ float: right !important;
+ }
+ .pull-left {
+ float: left !important;
+ }
+ .hide {
+ display: none !important;
+ }
+ .show {
+ display: block !important;
+ }
+ .invisible {
+ visibility: hidden;
+ }
+ .text-hide {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+ }
+ .hidden {
+ display: none !important;
+ }
+ .affix {
+ position: fixed;
+ }
+ @-ms-viewport {
+ width: device-width;
+ }
+ .visible-xs,
+ .visible-sm,
+ .visible-md,
+ .visible-lg {
+ display: none !important;
+ }
+ .visible-xs-block,
+ .visible-xs-inline,
+ .visible-xs-inline-block,
+ .visible-sm-block,
+ .visible-sm-inline,
+ .visible-sm-inline-block,
+ .visible-md-block,
+ .visible-md-inline,
+ .visible-md-inline-block,
+ .visible-lg-block,
+ .visible-lg-inline,
+ .visible-lg-inline-block {
+ display: none !important;
+ }
+ @media (max-width: 767px) {
+ .visible-xs {
+ display: block !important;
+ }
+ table.visible-xs {
+ display: table;
+ }
+ tr.visible-xs {
+ display: table-row !important;
+ }
+ th.visible-xs,
+ td.visible-xs {
+ display: table-cell !important;
+ }
+ }
+ @media (max-width: 767px) {
+ .visible-xs-block {
+ display: block !important;
+ }
+ }
+ @media (max-width: 767px) {
+ .visible-xs-inline {
+ display: inline !important;
+ }
+ }
+ @media (max-width: 767px) {
+ .visible-xs-inline-block {
+ display: inline-block !important;
+ }
+ }
+ @media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm {
+ display: block !important;
+ }
+ table.visible-sm {
+ display: table;
+ }
+ tr.visible-sm {
+ display: table-row !important;
+ }
+ th.visible-sm,
+ td.visible-sm {
+ display: table-cell !important;
+ }
+ }
+ @media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm-block {
+ display: block !important;
+ }
+ }
+ @media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm-inline {
+ display: inline !important;
+ }
+ }
+ @media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm-inline-block {
+ display: inline-block !important;
+ }
+ }
+ @media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md {
+ display: block !important;
+ }
+ table.visible-md {
+ display: table;
+ }
+ tr.visible-md {
+ display: table-row !important;
+ }
+ th.visible-md,
+ td.visible-md {
+ display: table-cell !important;
+ }
+ }
+ @media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md-block {
+ display: block !important;
+ }
+ }
+ @media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md-inline {
+ display: inline !important;
+ }
+ }
+ @media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md-inline-block {
+ display: inline-block !important;
+ }
+ }
+ @media (min-width: 1200px) {
+ .visible-lg {
+ display: block !important;
+ }
+ table.visible-lg {
+ display: table;
+ }
+ tr.visible-lg {
+ display: table-row !important;
+ }
+ th.visible-lg,
+ td.visible-lg {
+ display: table-cell !important;
+ }
+ }
+ @media (min-width: 1200px) {
+ .visible-lg-block {
+ display: block !important;
+ }
+ }
+ @media (min-width: 1200px) {
+ .visible-lg-inline {
+ display: inline !important;
+ }
+ }
+ @media (min-width: 1200px) {
+ .visible-lg-inline-block {
+ display: inline-block !important;
+ }
+ }
+ @media (max-width: 767px) {
+ .hidden-xs {
+ display: none !important;
+ }
+ }
+ @media (min-width: 768px) and (max-width: 991px) {
+ .hidden-sm {
+ display: none !important;
+ }
+ }
+ @media (min-width: 992px) and (max-width: 1199px) {
+ .hidden-md {
+ display: none !important;
+ }
+ }
+ @media (min-width: 1200px) {
+ .hidden-lg {
+ display: none !important;
+ }
+ }
+ .visible-print {
+ display: none !important;
+ }
+ @media print {
+ .visible-print {
+ display: block !important;
+ }
+ table.visible-print {
+ display: table;
+ }
+ tr.visible-print {
+ display: table-row !important;
+ }
+ th.visible-print,
+ td.visible-print {
+ display: table-cell !important;
+ }
+ }
+ .visible-print-block {
+ display: none !important;
+ }
+ @media print {
+ .visible-print-block {
+ display: block !important;
+ }
+ }
+ .visible-print-inline {
+ display: none !important;
+ }
+ @media print {
+ .visible-print-inline {
+ display: inline !important;
+ }
+ }
+ .visible-print-inline-block {
+ display: none !important;
+ }
+ @media print {
+ .visible-print-inline-block {
+ display: inline-block !important;
+ }
+ }
+ @media print {
+ .hidden-print {
+ display: none !important;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/base/_animation.scss b/themesource/atlas_core/web/core/base/_animation.scss
new file mode 100644
index 00000000..fb712a8b
--- /dev/null
+++ b/themesource/atlas_core/web/core/base/_animation.scss
@@ -0,0 +1,56 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+@mixin animations() {
+ @keyframes slideInUp {
+ from {
+ visibility: visible;
+ transform: translate3d(0, 100%, 0);
+ }
+
+ to {
+ transform: translate3d(0, 0, 0);
+ }
+ }
+
+ .animated {
+ animation-duration: 0.4s;
+ animation-fill-mode: both;
+ }
+
+ .slideInUp {
+ animation-name: slideInUp;
+ }
+
+ @keyframes slideInDown {
+ from {
+ visibility: visible;
+ transform: translate3d(0, -100%, 0);
+ }
+
+ to {
+ transform: translate3d(0, 0, 0);
+ }
+ }
+
+ .slideInDown {
+ animation-name: slideInDown;
+ }
+
+ @keyframes fadeIn {
+ from {
+ opacity: 0;
+ }
+
+ to {
+ opacity: 1;
+ }
+ }
+
+ .fadeIn {
+ animation-name: fadeIn;
+ }
+}
diff --git a/themesource/atlas_core/web/core/base/_base.scss b/themesource/atlas_core/web/core/base/_base.scss
new file mode 100644
index 00000000..4d64a016
--- /dev/null
+++ b/themesource/atlas_core/web/core/base/_base.scss
@@ -0,0 +1,78 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+/* ==========================================================================
+ Base
+
+ Default settings
+========================================================================== */
+@mixin base() {
+ html {
+ height: 100%;
+ }
+
+ body {
+ min-height: 100%;
+ color: $font-color-default;
+ background-color: $bg-color;
+ font-family: $font-family-base;
+ font-size: $font-size-default;
+ font-weight: $font-weight-normal;
+ line-height: $line-height-base;
+ }
+
+ a {
+ transition: 0.25s;
+ color: $link-color;
+ -webkit-backface-visibility: hidden;
+ }
+
+ a:hover {
+ text-decoration: underline;
+ color: $link-hover-color;
+ }
+
+ // Address `outline` inconsistency between Chrome and other browsers.
+ a:focus {
+ outline: thin dotted;
+ }
+
+ // Improve readability when focused and also mouse hovered in all browsers
+ a:active,
+ a:hover {
+ outline: 0;
+ }
+
+ // Removes large blue border in chrome on focus and active states
+ input:focus,
+ button:focus,
+ .mx-link:focus {
+ outline: 0;
+ }
+
+ // Removes large blue border for tabindexes from widgets
+ div[tabindex] {
+ outline: 0;
+ }
+
+ // Disabled State
+ .disabled,
+ [disabled] {
+ cursor: not-allowed;
+ opacity: 0.65;
+ box-shadow: none;
+ }
+
+ .mx-underlay {
+ position: fixed;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 1000;
+ opacity: 0.5;
+ background-color: #0a1325;
+ }
+}
diff --git a/themesource/atlas_core/web/core/base/_flex.scss b/themesource/atlas_core/web/core/base/_flex.scss
new file mode 100644
index 00000000..90eb0e69
--- /dev/null
+++ b/themesource/atlas_core/web/core/base/_flex.scss
@@ -0,0 +1,184 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+/* ==========================================================================
+ Flex
+
+ Flex classes
+========================================================================== */
+@mixin flex() {
+ $important-flex-value: if($important-flex, " !important", "");
+
+ // Flex layout
+ .flexcontainer {
+ display: flex;
+ overflow: hidden;
+ flex: 1;
+ flex-direction: row;
+
+ .flexitem {
+ margin-right: $gutter-size;
+
+ &:last-child {
+ margin-right: 0;
+ }
+ }
+
+ .flexitem-main {
+ overflow: hidden;
+ flex: 1;
+ }
+ }
+
+ // These classes define the order of the children
+ .flex-row {
+ flex-direction: row #{$important-flex-value};
+ }
+
+ .flex-column {
+ flex-direction: column #{$important-flex-value};
+ }
+
+ .flex-row-reverse {
+ flex-direction: row-reverse #{$important-flex-value};
+ }
+
+ .flex-column-reverse {
+ flex-direction: column-reverse #{$important-flex-value};
+ }
+
+ .flex-wrap {
+ flex-wrap: wrap #{$important-flex-value};
+ }
+
+ .flex-nowrap {
+ flex-wrap: nowrap #{$important-flex-value};
+ }
+
+ .flex-wrap-reverse {
+ flex-wrap: wrap-reverse #{$important-flex-value};
+ }
+
+ // Align children in both directions
+ .flex-center {
+ align-items: center #{$important-flex-value};
+ justify-content: center #{$important-flex-value};
+ }
+
+ // These classes define the alignment of the children
+ .justify-content-start {
+ justify-content: flex-start #{$important-flex-value};
+ }
+
+ .justify-content-end {
+ justify-content: flex-end #{$important-flex-value};
+ }
+
+ .justify-content-center {
+ justify-content: center #{$important-flex-value};
+ }
+
+ .justify-content-between {
+ justify-content: space-between #{$important-flex-value};
+ }
+
+ .justify-content-around {
+ justify-content: space-around #{$important-flex-value};
+ }
+
+ .justify-content-evenly {
+ // Not Supported in IE11
+ justify-content: space-evenly #{$important-flex-value};
+ }
+
+ .justify-content-stretch {
+ justify-content: stretch #{$important-flex-value};
+ }
+
+ /// These classes define the alignment of the children in the cross-direction
+ .align-children-start {
+ align-items: flex-start #{$important-flex-value};
+ }
+
+ .align-children-end {
+ align-items: flex-end #{$important-flex-value};
+ }
+
+ .align-children-center {
+ align-items: center #{$important-flex-value};
+ }
+
+ .align-children-baseline {
+ align-items: baseline #{$important-flex-value};
+ }
+
+ .align-children-stretch {
+ align-items: stretch #{$important-flex-value};
+ }
+
+ /// These classes define the alignment of the rows of children in the cross-direction
+ .align-content-start {
+ align-content: flex-start #{$important-flex-value};
+ }
+
+ .align-content-end {
+ align-content: flex-end #{$important-flex-value};
+ }
+
+ .align-content-center {
+ align-content: center #{$important-flex-value};
+ }
+
+ .align-content-between {
+ align-content: space-between #{$important-flex-value};
+ }
+
+ .align-content-around {
+ align-content: space-around #{$important-flex-value};
+ }
+
+ .align-content-stretch {
+ align-content: stretch #{$important-flex-value};
+ }
+
+ /// These classes allow the default alignment to be overridden for individual items
+ .align-self-auto {
+ align-self: auto #{$important-flex-value};
+ }
+
+ .align-self-start {
+ align-self: flex-start #{$important-flex-value};
+ }
+
+ .align-self-end {
+ align-self: flex-end #{$important-flex-value};
+ }
+
+ .align-self-center {
+ align-self: center #{$important-flex-value};
+ }
+
+ .align-self-baseline {
+ align-self: baseline #{$important-flex-value};
+ }
+
+ .align-self-stretch {
+ align-self: stretch #{$important-flex-value};
+ }
+
+ @include flex-items($number: 12);
+}
+
+/// These classes define the percentage of available free space within a flex container a flex item will take.
+@mixin flex-items($number) {
+ @if not $exclude-flex {
+ @for $i from 1 through $number {
+ .flexitem-#{$i} {
+ flex: #{$i} #{$i} 1%;
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/base/_login.scss b/themesource/atlas_core/web/core/base/_login.scss
new file mode 100644
index 00000000..aaf9f154
--- /dev/null
+++ b/themesource/atlas_core/web/core/base/_login.scss
@@ -0,0 +1,199 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin login() {
+ body {
+ height: 100%;
+ }
+
+ .loginpage {
+ display: flex;
+ height: 100%;
+ }
+ .loginpage-logo {
+ position: absolute;
+ top: 30px;
+ right: 30px;
+
+ & > svg {
+ width: 120px;
+ }
+ }
+
+ .loginpage-left {
+ display: none;
+ }
+
+ .loginpage-right {
+ display: flex;
+ flex: 1;
+ flex-direction: column;
+ justify-content: space-around;
+ }
+ .loginpage-formwrapper {
+ width: 400px;
+ margin: 0 auto;
+ }
+
+ .loginpage-fullscreenDiv {
+ background-color: #e8e8e8;
+ width: 100%;
+ height: auto;
+ bottom: 0;
+ top: 0;
+ left: 0;
+ position: absolute;
+ }
+
+ .loginpage-center {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ }
+
+ // Form
+ .loginpage-form {
+ .alert {
+ display: none;
+ }
+
+ .btn {
+ border-radius: $border-radius-default;
+ }
+
+ // Form label + input
+ .form-group {
+ width: 100%;
+ align-items: center;
+ @media only screen and (max-width: $screen-sm-max) {
+ align-items: flex-start;
+ }
+
+ .control-label {
+ flex: 4;
+ margin-bottom: 0;
+ font-size: $font-size-default;
+ font-weight: 500;
+ @media only screen and (max-width: $screen-sm-max) {
+ flex: 1;
+ margin-bottom: $spacing-small;
+ }
+ }
+
+ .inputwrapper {
+ flex: 8;
+ position: relative;
+ width: 100%;
+ @media only screen and (max-width: $screen-sm-max) {
+ flex: 1;
+ }
+
+ .glyphicon {
+ &:before {
+ transition: color 0.4s;
+ }
+
+ position: absolute;
+ top: 50%;
+ left: $form-input-padding-x;
+ transform: translateY(-50%);
+
+ &-eye-open:hover,
+ &-eye-close:hover {
+ cursor: pointer;
+ color: $brand-primary;
+ }
+ }
+
+ .form-control {
+ padding: $form-input-padding-y $form-input-padding-x $form-input-padding-y 45px;
+ width: 100%;
+ }
+
+ .form-control:focus ~ .glyphicon:before {
+ color: $brand-primary;
+ }
+ }
+ }
+ }
+
+ // Divider - only on login-with-mendixsso-button.html
+ .loginpage-alternativelabel {
+ display: flex;
+ align-items: center;
+ flex-direction: row;
+ flex-wrap: nowrap;
+ justify-content: space-between;
+ margin: 25px 0px;
+
+ hr {
+ flex: 1;
+ margin: 20px 0 20px 10px;
+ border: 0;
+ border-color: #d8d8d8;
+ border-top: 1px solid #eeeeee;
+ }
+ }
+
+ .loginpage-signin {
+ color: #555555;
+ }
+
+ .loginpage-form .btn {
+ img {
+ vertical-align: middle;
+ top: -1px;
+ position: relative;
+ }
+ }
+
+ // Show only on wide screens
+ @media screen and (min-width: $screen-xl) {
+ .loginpage-left {
+ position: relative;
+ display: block;
+ flex: 1;
+ width: 100%;
+ height: 100%;
+ }
+ // Image and clipping mask
+ .loginpage-image {
+ height: 100%;
+ animation: makePointer 1s ease-out both;
+ background: left / cover no-repeat
+ linear-gradient(to right, rgba($brand-primary, 0.9) 0%, rgba($brand-primary, 0.6) 100%),
+ left / cover no-repeat url("./resources/work-do-more.jpeg");
+ -webkit-clip-path: polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%);
+ clip-path: polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%);
+ }
+
+ .loginpage-logo {
+ & > svg {
+ width: 150px;
+ }
+ }
+
+ .loginpage-formwrapper {
+ width: 400px;
+ }
+ }
+
+ // Animate image clipping mask
+ @keyframes makePointer {
+ 100% {
+ -webkit-clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);
+ clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);
+ }
+ }
+ @-webkit-keyframes makePointer {
+ 100% {
+ -webkit-clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);
+ clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/base/_spacing.scss b/themesource/atlas_core/web/core/base/_spacing.scss
new file mode 100644
index 00000000..83d166e7
--- /dev/null
+++ b/themesource/atlas_core/web/core/base/_spacing.scss
@@ -0,0 +1,547 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+/* ==========================================================================
+ Spacing
+
+ Spacing classes
+========================================================================== */
+@mixin spacing() {
+ $important-spacing-value: if($important-spacing, " !important", "");
+
+ // Spacing none
+ .spacing-inner-none {
+ padding: 0 #{$important-spacing-value};
+ }
+
+ .spacing-inner-top-none {
+ padding-top: 0 #{$important-spacing-value};
+ }
+
+ .spacing-inner-right-none {
+ padding-right: 0 #{$important-spacing-value};
+ }
+
+ .spacing-inner-bottom-none {
+ padding-bottom: 0 #{$important-spacing-value};
+ }
+
+ .spacing-inner-left-none {
+ padding-left: 0 #{$important-spacing-value};
+ }
+
+ .spacing-outer-none {
+ margin: 0 #{$important-spacing-value};
+ }
+
+ .spacing-outer-top-none {
+ margin-top: 0 #{$important-spacing-value};
+ }
+
+ .spacing-outer-right-none {
+ margin-right: 0 #{$important-spacing-value};
+ }
+
+ .spacing-outer-bottom-none {
+ margin-bottom: 0 #{$important-spacing-value};
+ }
+
+ .spacing-outer-left-none {
+ margin-left: 0 #{$important-spacing-value};
+ }
+
+ // Spacing small
+ .spacing-inner {
+ padding: $spacing-small #{$important-spacing-value};
+ }
+
+ .spacing-inner-top {
+ padding-top: $spacing-small #{$important-spacing-value};
+ }
+
+ .spacing-inner-right {
+ padding-right: $spacing-small #{$important-spacing-value};
+ }
+
+ .spacing-inner-bottom {
+ padding-bottom: $spacing-small #{$important-spacing-value};
+ }
+
+ .spacing-inner-left {
+ padding-left: $spacing-small #{$important-spacing-value};
+ }
+
+ .spacing-inner-vertical {
+ padding-top: $spacing-small #{$important-spacing-value};
+ padding-bottom: $spacing-small #{$important-spacing-value};
+ }
+
+ .spacing-inner-horizontal {
+ padding-left: $spacing-small #{$important-spacing-value};
+ padding-right: $spacing-small #{$important-spacing-value};
+ }
+
+ .spacing-outer {
+ margin: $spacing-small #{$important-spacing-value};
+ }
+
+ .spacing-outer-top {
+ margin-top: $spacing-small #{$important-spacing-value};
+ }
+
+ .spacing-outer-right {
+ margin-right: $spacing-small #{$important-spacing-value};
+ }
+
+ .spacing-outer-bottom {
+ margin-bottom: $spacing-small #{$important-spacing-value};
+ }
+
+ .spacing-outer-left {
+ margin-left: $spacing-small #{$important-spacing-value};
+ }
+
+ .spacing-outer-vertical {
+ margin-top: $spacing-small #{$important-spacing-value};
+ margin-bottom: $spacing-small #{$important-spacing-value};
+ }
+
+ .spacing-outer-horizontal {
+ margin-left: $spacing-small #{$important-spacing-value};
+ margin-right: $spacing-small #{$important-spacing-value};
+ }
+
+ // Spacing Medium
+ .spacing-inner-medium {
+ @include get-responsive-spacing-medium(
+ $type: padding,
+ $direction: all,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-inner-top-medium {
+ @include get-responsive-spacing-medium(
+ $type: padding,
+ $direction: top,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-inner-right-medium {
+ @include get-responsive-spacing-medium(
+ $type: padding,
+ $direction: right,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-inner-bottom-medium {
+ @include get-responsive-spacing-medium(
+ $type: padding,
+ $direction: bottom,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-inner-left-medium {
+ @include get-responsive-spacing-medium(
+ $type: padding,
+ $direction: left,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-inner-vertical-medium {
+ @include get-responsive-spacing-medium(
+ $type: padding,
+ $direction: top,
+ $is_important: #{$important-spacing-value}
+ );
+ @include get-responsive-spacing-medium(
+ $type: padding,
+ $direction: bottom,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-inner-horizontal-medium {
+ @include get-responsive-spacing-medium(
+ $type: padding,
+ $direction: left,
+ $is_important: #{$important-spacing-value}
+ );
+ @include get-responsive-spacing-medium(
+ $type: padding,
+ $direction: right,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-outer-medium {
+ @include get-responsive-spacing-medium(
+ $type: margin,
+ $direction: all,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-outer-top-medium {
+ @include get-responsive-spacing-medium(
+ $type: margin,
+ $direction: top,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-outer-right-medium {
+ @include get-responsive-spacing-medium(
+ $type: margin,
+ $direction: right,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-outer-bottom-medium {
+ @include get-responsive-spacing-medium(
+ $type: margin,
+ $direction: bottom,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-outer-left-medium {
+ @include get-responsive-spacing-medium(
+ $type: margin,
+ $direction: left,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-outer-vertical-medium {
+ @include get-responsive-spacing-medium(
+ $type: margin,
+ $direction: top,
+ $is_important: #{$important-spacing-value}
+ );
+ @include get-responsive-spacing-medium(
+ $type: margin,
+ $direction: bottom,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-outer-horizontal-medium {
+ @include get-responsive-spacing-medium(
+ $type: margin,
+ $direction: left,
+ $is_important: #{$important-spacing-value}
+ );
+ @include get-responsive-spacing-medium(
+ $type: margin,
+ $direction: right,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ // Spacing Large
+ .spacing-inner-large {
+ @include get-responsive-spacing-large(
+ $type: padding,
+ $direction: all,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-inner-top-large {
+ @include get-responsive-spacing-large(
+ $type: padding,
+ $direction: top,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-inner-right-large {
+ @include get-responsive-spacing-large(
+ $type: padding,
+ $direction: right,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-inner-bottom-large {
+ @include get-responsive-spacing-large(
+ $type: padding,
+ $direction: bottom,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-inner-left-large {
+ @include get-responsive-spacing-large(
+ $type: padding,
+ $direction: left,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-inner-vertical-large {
+ @include get-responsive-spacing-large(
+ $type: padding,
+ $direction: top,
+ $is_important: #{$important-spacing-value}
+ );
+ @include get-responsive-spacing-large(
+ $type: padding,
+ $direction: bottom,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-inner-horizontal-large {
+ @include get-responsive-spacing-large(
+ $type: padding,
+ $direction: left,
+ $is_important: #{$important-spacing-value}
+ );
+ @include get-responsive-spacing-large(
+ $type: padding,
+ $direction: right,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-outer-large {
+ @include get-responsive-spacing-large(
+ $type: margin,
+ $direction: all,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-outer-top-large {
+ @include get-responsive-spacing-large(
+ $type: margin,
+ $direction: top,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-outer-right-large {
+ @include get-responsive-spacing-large(
+ $type: margin,
+ $direction: right,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-outer-bottom-large {
+ @include get-responsive-spacing-large(
+ $type: margin,
+ $direction: bottom,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-outer-left-large {
+ @include get-responsive-spacing-large(
+ $type: margin,
+ $direction: left,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-outer-vertical-large {
+ @include get-responsive-spacing-large(
+ $type: margin,
+ $direction: top,
+ $is_important: #{$important-spacing-value}
+ );
+ @include get-responsive-spacing-large(
+ $type: margin,
+ $direction: bottom,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-outer-horizontal-large {
+ @include get-responsive-spacing-large(
+ $type: margin,
+ $direction: left,
+ $is_important: #{$important-spacing-value}
+ );
+ @include get-responsive-spacing-large(
+ $type: margin,
+ $direction: right,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ // Spacing layouts
+ .spacing-inner-layout {
+ @include layout-spacing(
+ $type: padding,
+ $direction: all,
+ $device: responsive,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-inner-top-layout {
+ @include layout-spacing(
+ $type: padding,
+ $direction: top,
+ $device: responsive,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-inner-right-layout {
+ @include layout-spacing(
+ $type: padding,
+ $direction: right,
+ $device: responsive,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-inner-bottom-layout {
+ @include layout-spacing(
+ $type: padding,
+ $direction: bottom,
+ $device: responsive,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-inner-left-layout {
+ @include layout-spacing(
+ $type: padding,
+ $direction: left,
+ $device: responsive,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-inner-vertical-layout {
+ @include layout-spacing(
+ $type: padding,
+ $direction: top,
+ $device: responsive,
+ $is_important: #{$important-spacing-value}
+ );
+ @include layout-spacing(
+ $type: padding,
+ $direction: bottom,
+ $device: responsive,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+ .spacing-inner-horizontal-layout {
+ @include layout-spacing(
+ $type: padding,
+ $direction: left,
+ $device: responsive,
+ $is_important: #{$important-spacing-value}
+ );
+ @include layout-spacing(
+ $type: padding,
+ $direction: right,
+ $device: responsive,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-outer-layout {
+ @include layout-spacing(
+ $type: margin,
+ $direction: all,
+ $device: responsive,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-outer-top-layout {
+ @include layout-spacing(
+ $type: margin,
+ $direction: top,
+ $device: responsive,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-outer-right-layout {
+ @include layout-spacing(
+ $type: margin,
+ $direction: right,
+ $device: responsive,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-outer-bottom-layout {
+ @include layout-spacing(
+ $type: margin,
+ $direction: bottom,
+ $device: responsive,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-outer-left-layout {
+ @include layout-spacing(
+ $type: margin,
+ $direction: left,
+ $device: responsive,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ .spacing-outer-vertical-layout {
+ @include layout-spacing(
+ $type: margin,
+ $direction: top,
+ $device: responsive,
+ $is_important: #{$important-spacing-value}
+ );
+ @include layout-spacing(
+ $type: margin,
+ $direction: bottom,
+ $device: responsive,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+ .spacing-outer-horizontal-layout {
+ @include layout-spacing(
+ $type: margin,
+ $direction: left,
+ $device: responsive,
+ $is_important: #{$important-spacing-value}
+ );
+ @include layout-spacing(
+ $type: margin,
+ $direction: right,
+ $device: responsive,
+ $is_important: #{$important-spacing-value}
+ );
+ }
+
+ // Scroll container spacing
+ .mx-scrollcontainer .mx-placeholder {
+ width: 100%;
+ height: 100%;
+
+ .mx-layoutgrid,
+ .mx-layoutgrid-fluid {
+ @include layout-spacing($type: padding, $direction: all, $device: responsive);
+
+ .mx-layoutgrid,
+ .mx-layoutgrid-fluid {
+ padding: 0;
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/base/mixins/_animations.scss b/themesource/atlas_core/web/core/base/mixins/_animations.scss
new file mode 100644
index 00000000..bb4afcd8
--- /dev/null
+++ b/themesource/atlas_core/web/core/base/mixins/_animations.scss
@@ -0,0 +1,50 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin transition(
+ $style: initial,
+ $delay: 0s,
+ $duration: 0.3s,
+ $property: all,
+ $timing-function: cubic-bezier(0.4, 0, 0.2, 1)
+) {
+ @if not $exclude-animations {
+ transition: $property $duration $delay $timing-function;
+ transform-style: $style;
+ }
+}
+
+@mixin ripple($color: #000, $transparency: 10%, $scale: 10) {
+ @if not $exclude-animations {
+ position: relative;
+ overflow: hidden;
+ transform: translate3d(0, 0, 0);
+
+ &:after {
+ content: "";
+ display: block;
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ pointer-events: none;
+ background-image: radial-gradient(circle, $color $transparency, transparent $transparency);
+ background-repeat: no-repeat;
+ background-position: 50%;
+ transform: scale($scale, $scale);
+ opacity: 0;
+ transition: transform 0.5s, opacity 1s;
+ }
+
+ &:active:after {
+ transform: scale(0, 0);
+ opacity: 0.1;
+ transition: 0s;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/base/mixins/_buttons.scss b/themesource/atlas_core/web/core/base/mixins/_buttons.scss
new file mode 100644
index 00000000..42a9079d
--- /dev/null
+++ b/themesource/atlas_core/web/core/base/mixins/_buttons.scss
@@ -0,0 +1,73 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin button-variant($color, $background, $border, $hover) {
+ @if not $exclude-button {
+ color: $color;
+ border-color: $border;
+ background-color: $background;
+
+ &:hover,
+ &:focus,
+ &:active,
+ &.active,
+ .open > &.dropdown-toggle {
+ color: $color;
+ border-color: $hover;
+ background-color: $hover;
+ }
+ &:active,
+ &.active,
+ .open > &.dropdown-toggle {
+ background-image: none;
+ }
+ &.disabled,
+ &[disabled],
+ &[aria-disabled],
+ fieldset[disabled] {
+ &,
+ &:hover,
+ &:focus,
+ &:active,
+ &.active {
+ border-color: $border;
+ background-color: $background;
+ }
+ }
+ // Button bordered
+ &.btn-bordered {
+ background-color: transparent;
+ @if $color != $btn-default-color {
+ color: $border;
+ }
+
+ &:hover,
+ &:focus,
+ &:active,
+ &.active,
+ .open > &.dropdown-toggle {
+ color: $color;
+ border-color: $border;
+ background-color: $border;
+ }
+ }
+ // Button as link
+ &.btn-link {
+ text-decoration: none;
+ border-color: transparent;
+ background-color: transparent;
+ @if $color != $btn-default-color {
+ color: $background;
+ }
+
+ &:hover {
+ border-color: $btn-link-bg-hover;
+ background-color: $btn-link-bg-hover;
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/base/mixins/_groupbox.scss b/themesource/atlas_core/web/core/base/mixins/_groupbox.scss
new file mode 100644
index 00000000..ecc6e4cb
--- /dev/null
+++ b/themesource/atlas_core/web/core/base/mixins/_groupbox.scss
@@ -0,0 +1,19 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin groupbox-variant($color, $background) {
+ @if not $exclude-group-box {
+ > .mx-groupbox-header {
+ color: $color;
+ border-color: $background;
+ background: $background;
+ }
+ > .mx-groupbox-body {
+ border-color: $background;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/base/mixins/_layout-spacing.scss b/themesource/atlas_core/web/core/base/mixins/_layout-spacing.scss
new file mode 100644
index 00000000..4287d92c
--- /dev/null
+++ b/themesource/atlas_core/web/core/base/mixins/_layout-spacing.scss
@@ -0,0 +1,92 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin layout-spacing($type: padding, $direction: all, $device: responsive, $is_important: false) {
+ @if not $exclude-spacing {
+ $suffix: "";
+ @if $is_important != false {
+ $suffix: " !important";
+ }
+ @if $device==responsive {
+ @if $direction==all {
+ @media (max-width: $screen-sm-max) {
+ #{$type}: #{$m-layout-spacing}#{$suffix};
+ }
+ @media (min-width: $screen-md) {
+ #{$type}: #{$t-layout-spacing}#{$suffix};
+ }
+ @media (min-width: $screen-lg) {
+ #{$type}: #{$layout-spacing}#{$suffix};
+ }
+ } @else if $direction==top {
+ @media (max-width: $screen-sm-max) {
+ #{$type}-top: #{$m-layout-spacing-top}#{$suffix};
+ }
+ @media (min-width: $screen-md) {
+ #{$type}-top: #{$t-layout-spacing-top}#{$suffix};
+ }
+ @media (min-width: $screen-lg) {
+ #{$type}-top: #{$layout-spacing-top}#{$suffix};
+ }
+ } @else if $direction==right {
+ @media (max-width: $screen-sm-max) {
+ #{$type}-right: #{$m-layout-spacing-right}#{$suffix};
+ }
+ @media (min-width: $screen-md) {
+ #{$type}-right: #{$t-layout-spacing-right}#{$suffix};
+ }
+ @media (min-width: $screen-lg) {
+ #{$type}-right: #{$layout-spacing-right}#{$suffix};
+ }
+ } @else if $direction==bottom {
+ @media (max-width: $screen-sm-max) {
+ #{$type}-bottom: #{$m-layout-spacing-bottom}#{$suffix};
+ }
+ @media (min-width: $screen-md) {
+ #{$type}-bottom: #{$t-layout-spacing-bottom}#{$suffix};
+ }
+ @media (min-width: $screen-lg) {
+ #{$type}-bottom: #{$layout-spacing-bottom}#{$suffix};
+ }
+ } @else if $direction==left {
+ @media (max-width: $screen-sm-max) {
+ #{$type}-left: #{$m-layout-spacing-left}#{$suffix};
+ }
+ @media (min-width: $screen-md) {
+ #{$type}-left: #{$t-layout-spacing-left}#{$suffix};
+ }
+ @media (min-width: $screen-lg) {
+ #{$type}-left: #{$layout-spacing-left}#{$suffix};
+ }
+ }
+ } @else if $device==tablet {
+ @if $direction==all {
+ #{$type}: #{$t-layout-spacing}#{$suffix};
+ } @else if $direction==top {
+ #{$type}-top: #{$t-layout-spacing-top}#{$suffix};
+ } @else if $direction==right {
+ #{$type}-right: #{$t-layout-spacing-right}#{$suffix};
+ } @else if $direction==bottom {
+ #{$type}-bottom: #{$t-layout-spacing-bottom}#{$suffix};
+ } @else if $direction==left {
+ #{$type}-left: #{$t-layout-spacing-left}#{$suffix};
+ }
+ } @else if $device==mobile {
+ @if $direction==all {
+ #{$type}: #{$m-layout-spacing}#{$suffix};
+ } @else if $direction==top {
+ #{$type}-top: #{$m-layout-spacing-top}#{$suffix};
+ } @else if $direction==right {
+ #{$type}-right: #{$m-layout-spacing-right}#{$suffix};
+ } @else if $direction==bottom {
+ #{$type}-bottom: #{$m-layout-spacing-bottom}#{$suffix};
+ } @else if $direction==left {
+ #{$type}-left: #{$m-layout-spacing-left}#{$suffix};
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/base/mixins/_spacing.scss b/themesource/atlas_core/web/core/base/mixins/_spacing.scss
new file mode 100644
index 00000000..939de645
--- /dev/null
+++ b/themesource/atlas_core/web/core/base/mixins/_spacing.scss
@@ -0,0 +1,70 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin get-responsive-spacing-large($type: padding, $direction: all, $is_important: false) {
+ @if not $exclude-spacing {
+ $suffix: "";
+ $dash: "-"; // Otherwise it will be interpreted as a minus symbol. Needed for the Gonzales PE version: 3.4.7 compiler (used by the Webmodeler)
+
+ @if $is_important != false {
+ $suffix: " !important";
+ }
+ @if $direction==all {
+ @media (max-width: $screen-sm-max) {
+ #{$type}: #{$m-spacing-large}#{$suffix};
+ }
+ @media (min-width: $screen-md) {
+ #{$type}: #{$t-spacing-large}#{$suffix};
+ }
+ @media (min-width: $screen-lg) {
+ #{$type}: #{$spacing-large}#{$suffix};
+ }
+ } @else {
+ @media (max-width: $screen-sm-max) {
+ #{$type}#{$dash}#{$direction}: #{$m-spacing-large}#{$suffix};
+ }
+ @media (min-width: $screen-md) {
+ #{$type}#{$dash}#{$direction}: #{$t-spacing-large}#{$suffix};
+ }
+ @media (min-width: $screen-lg) {
+ #{$type}#{$dash}#{$direction}: #{$spacing-large}#{$suffix};
+ }
+ }
+ }
+}
+
+@mixin get-responsive-spacing-medium($type: padding, $direction: all, $is_important: false) {
+ @if not $exclude-spacing {
+ $suffix: "";
+ $dash: "-"; // Otherwise it will be interpreted as a minus symbol. Needed for the Gonzales PE version: 3.4.7 compiler (used by the Webmodeler)
+
+ @if $is_important != false {
+ $suffix: " !important";
+ }
+ @if $direction==all {
+ @media (max-width: $screen-sm-max) {
+ #{$type}: #{$m-spacing-medium}#{$suffix};
+ }
+ @media (min-width: $screen-md) {
+ #{$type}: #{$t-spacing-medium}#{$suffix};
+ }
+ @media (min-width: $screen-lg) {
+ #{$type}: #{$spacing-medium}#{$suffix};
+ }
+ } @else {
+ @media (max-width: $screen-sm-max) {
+ #{$type}#{$dash}#{$direction}: #{$m-spacing-medium}#{$suffix};
+ }
+ @media (min-width: $screen-md) {
+ #{$type}#{$dash}#{$direction}: #{$t-spacing-medium}#{$suffix};
+ }
+ @media (min-width: $screen-lg) {
+ #{$type}#{$dash}#{$direction}: #{$spacing-medium}#{$suffix};
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/helpers/_accordion.scss b/themesource/atlas_core/web/core/helpers/_accordion.scss
new file mode 100644
index 00000000..c13ee7ad
--- /dev/null
+++ b/themesource/atlas_core/web/core/helpers/_accordion.scss
@@ -0,0 +1,151 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin accordion-helpers() {
+ /* ==========================================================================
+ Accordion
+
+ //== Design Properties
+ //## Helper classes to change the look and feel of the component
+ ========================================================================== */
+
+ .widget-accordion {
+ .widget-accordion-group {
+ &.widget-accordion-brand-primary {
+ @include get-accordion-group-styles(
+ $accordion-header-primary-bg,
+ $accordion-header-primary-bg-hover,
+ $accordion-header-primary-color,
+ $accordion-header-primary-color,
+ $accordion-primary-border-color
+ );
+ }
+
+ &.widget-accordion-brand-secondary {
+ @include get-accordion-group-styles(
+ $accordion-header-secondary-bg,
+ $accordion-header-secondary-bg-hover,
+ $accordion-header-secondary-color,
+ $accordion-header-secondary-color,
+ $accordion-secondary-border-color
+ );
+ }
+
+ &.widget-accordion-brand-success {
+ @include get-accordion-group-styles(
+ $accordion-header-success-bg,
+ $accordion-header-success-bg-hover,
+ $accordion-header-success-color,
+ $accordion-header-success-color,
+ $accordion-success-border-color
+ );
+ }
+
+ &.widget-accordion-brand-warning {
+ @include get-accordion-group-styles(
+ $accordion-header-warning-bg,
+ $accordion-header-warning-bg-hover,
+ $accordion-header-warning-color,
+ $accordion-header-warning-color,
+ $accordion-warning-border-color
+ );
+ }
+
+ &.widget-accordion-brand-danger {
+ @include get-accordion-group-styles(
+ $accordion-header-danger-bg,
+ $accordion-header-danger-bg-hover,
+ $accordion-header-danger-color,
+ $accordion-header-danger-color,
+ $accordion-danger-border-color
+ );
+ }
+ }
+
+ &.widget-accordion-preview {
+ .widget-accordion-group {
+ &.widget-accordion-brand-primary {
+ @include get-accordion-preview-group-styles($accordion-header-primary-color);
+ }
+
+ &.widget-accordion-brand-secondary {
+ @include get-accordion-preview-group-styles($accordion-header-secondary-color);
+ }
+
+ &.widget-accordion-brand-success {
+ @include get-accordion-preview-group-styles($accordion-header-success-color);
+ }
+
+ &.widget-accordion-brand-warning {
+ @include get-accordion-preview-group-styles($accordion-header-warning-color);
+ }
+
+ &.widget-accordion-brand-danger {
+ @include get-accordion-preview-group-styles($accordion-header-danger-color);
+ }
+ }
+ }
+
+ &.widget-accordion-bordered-all {
+ > .widget-accordion-group {
+ &:first-child {
+ border-top-style: solid;
+ }
+
+ border-right-style: solid;
+ border-left-style: solid;
+ }
+ }
+
+ &.widget-accordion-bordered-horizontal {
+ > .widget-accordion-group {
+ &:first-child {
+ border-top-style: solid;
+ }
+ }
+ }
+
+ &.widget-accordion-bordered-none {
+ > .widget-accordion-group {
+ border-bottom: none;
+ }
+ }
+
+ &.widget-accordion-striped {
+ > .widget-accordion-group:not(:is(.widget-accordion-brand-primary, .widget-accordion-brand-secondary, .widget-accordion-brand-success, .widget-accordion-brand-warning, .widget-accordion-brand-danger)):nth-child(2n
+ + 1) {
+ > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ background-color: $accordion-bg-striped;
+
+ &.widget-accordion-group-header-button-clickable {
+ &:hover,
+ &:focus,
+ &:active {
+ background-color: $accordion-bg-striped-hover;
+ }
+ }
+ }
+
+ > .widget-accordion-group-content {
+ background-color: $accordion-bg-striped;
+ }
+ }
+ }
+
+ &.widget-accordion-compact {
+ > .widget-accordion-group {
+ > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ padding: $spacing-smaller $spacing-small;
+ }
+
+ > .widget-accordion-group-content {
+ padding: $spacing-smaller $spacing-small $spacing-medium $spacing-small;
+ }
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/helpers/_background.scss b/themesource/atlas_core/web/core/helpers/_background.scss
new file mode 100644
index 00000000..9f757845
--- /dev/null
+++ b/themesource/atlas_core/web/core/helpers/_background.scss
@@ -0,0 +1,188 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin background-helpers() {
+ /* ==========================================================================
+ Background
+
+ Different background components, all managed by variables
+ ========================================================================== */
+
+ .background-main {
+ background-color: $bg-color !important;
+ }
+
+ //Brand variations
+
+ .background-primary {
+ background-color: $brand-primary !important;
+ }
+
+ .background-primary-darker {
+ background-color: $color-primary-darker !important;
+ }
+
+ .background-primary.background-dark,
+ .background-primary-dark {
+ background-color: $color-primary-dark !important;
+ }
+
+ .background-primary.background-light,
+ .background-primary-light {
+ background-color: $color-primary-light !important;
+ }
+
+ .background-primary-lighter {
+ background-color: $color-primary-lighter !important;
+ }
+
+ .background-secondary {
+ background-color: $bg-color-secondary !important;
+ }
+
+ .background-secondary.background-light {
+ background-color: $bg-color-secondary !important;
+ }
+
+ .background-secondary.background-dark {
+ background-color: $bg-color-secondary !important;
+ }
+
+ .background-brand-gradient {
+ background-image: $brand-gradient !important;
+ }
+
+ //Semantic variations
+
+ .background-success {
+ background-color: $brand-success !important;
+ }
+
+ .background-success-darker {
+ background-color: $color-success-darker !important;
+ }
+
+ .background-success.background-dark,
+ .background-success-dark {
+ background-color: $color-success-dark !important;
+ }
+
+ .background-success.background-light,
+ .background-success-light {
+ background-color: $color-success-light !important;
+ }
+
+ .background-success-lighter {
+ background-color: $color-success-lighter !important;
+ }
+
+ .background-warning {
+ background-color: $brand-warning !important;
+ }
+
+ .background-warning-darker {
+ background-color: $color-warning-darker !important;
+ }
+
+ .background-warning.background-dark,
+ .background-warning-dark {
+ background-color: $color-warning-dark !important;
+ }
+
+ .background-warning.background-light,
+ .background-warning-light {
+ background-color: $color-warning-light !important;
+ }
+
+ .background-warning-lighter {
+ background-color: $color-warning-lighter !important;
+ }
+
+ .background-danger {
+ background-color: $brand-danger !important;
+ }
+
+ .background-danger-darker {
+ background-color: $color-danger-darker !important;
+ }
+
+ .background-danger.background-dark,
+ .background-danger-dark {
+ background-color: $color-danger-dark !important;
+ }
+
+ .background-danger.background-light,
+ .background-danger-light {
+ background-color: $color-danger-light !important;
+ }
+
+ .background-danger-lighter {
+ background-color: $color-danger-lighter !important;
+ }
+
+ //Bootstrap variations
+
+ .background-default {
+ background-color: $brand-default !important;
+ }
+
+ .background-default-darker {
+ background-color: $color-default-darker !important;
+ }
+
+ .background-default-dark {
+ background-color: $color-default-dark !important;
+ }
+
+ .background-default-light {
+ background-color: $color-default-light !important;
+ }
+
+ .background-default-lighter {
+ background-color: $color-default-lighter !important;
+ }
+
+ .background-inverse {
+ background-color: $brand-inverse !important;
+ }
+
+ .background-inverse-darker {
+ background-color: $color-inverse-darker !important;
+ }
+
+ .background-inverse-dark {
+ background-color: $color-inverse-dark !important;
+ }
+
+ .background-inverse-light {
+ background-color: $color-inverse-light !important;
+ }
+
+ .background-inverse-lighter {
+ background-color: $color-inverse-lighter !important;
+ }
+
+ .background-info {
+ background-color: $brand-info !important;
+ }
+
+ .background-info-darker {
+ background-color: $color-info-darker !important;
+ }
+
+ .background-info-dark {
+ background-color: $color-info-dark !important;
+ }
+
+ .background-info-light {
+ background-color: $color-info-light !important;
+ }
+
+ .background-info-lighter {
+ background-color: $color-info-lighter !important;
+ }
+}
diff --git a/themesource/atlas_core/web/core/helpers/_badge-button.scss b/themesource/atlas_core/web/core/helpers/_badge-button.scss
new file mode 100644
index 00000000..f08728dd
--- /dev/null
+++ b/themesource/atlas_core/web/core/helpers/_badge-button.scss
@@ -0,0 +1,103 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin badge-button-helpers() {
+ /* ==========================================================================
+ Badge button
+
+ Different background components, all managed by variables
+ ========================================================================== */
+
+ //Badge button color variation
+ .btn-secondary,
+ .btn-default {
+ .badge {
+ color: $btn-default-bg;
+ background-color: $btn-primary-bg;
+ }
+ }
+
+ .btn-success {
+ .badge {
+ color: $btn-success-bg;
+ }
+ }
+
+ .btn-warning {
+ .badge {
+ color: $btn-warning-bg;
+ }
+ }
+
+ .btn-danger {
+ .badge {
+ color: $btn-danger-bg;
+ }
+ }
+
+ //Badge button bordered variation
+
+ .btn-bordered.btn-primary {
+ .badge {
+ background: $btn-primary-bg;
+ color: $btn-primary-color;
+ }
+
+ &:hover,
+ &:focus {
+ .badge {
+ background-color: $btn-primary-color;
+ color: $btn-primary-bg;
+ }
+ }
+ }
+
+ .btn-bordered.btn-success {
+ .badge {
+ background: $btn-success-bg;
+ color: $btn-success-color;
+ }
+
+ &:hover,
+ &:focus {
+ .badge {
+ background-color: $btn-success-color;
+ color: $btn-success-bg;
+ }
+ }
+ }
+
+ .btn-bordered.btn-warning {
+ .badge {
+ background: $btn-warning-bg;
+ color: $btn-warning-color;
+ }
+
+ &:hover,
+ &:focus {
+ .badge {
+ background-color: $btn-warning-color;
+ color: $btn-warning-bg;
+ }
+ }
+ }
+
+ .btn-bordered.btn-danger {
+ .badge {
+ background: $btn-danger-bg;
+ color: $btn-danger-color;
+ }
+
+ &:hover,
+ &:focus {
+ .badge {
+ background-color: $btn-danger-color;
+ color: $btn-danger-bg;
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/helpers/_button.scss b/themesource/atlas_core/web/core/helpers/_button.scss
new file mode 100644
index 00000000..d740a054
--- /dev/null
+++ b/themesource/atlas_core/web/core/helpers/_button.scss
@@ -0,0 +1,126 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin button-helpers() {
+ /* ==========================================================================
+ Button
+
+ //== Design Properties
+ //## Helper classes to change the look and feel of the component
+ ========================================================================== */
+ // Color variations
+ .btn,
+ .btn-default {
+ @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border-color, $btn-default-bg-hover);
+ }
+
+ .btn-primary {
+ @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border-color, $btn-primary-bg-hover);
+ }
+
+ .btn-inverse {
+ @include button-variant($btn-inverse-color, $btn-inverse-bg, $btn-inverse-border-color, $btn-inverse-bg-hover);
+ }
+
+ .btn-success {
+ @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border-color, $btn-success-bg-hover);
+ }
+
+ .btn-info {
+ @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border-color, $btn-info-bg-hover);
+ }
+
+ .btn-warning {
+ @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border-color, $btn-warning-bg-hover);
+ }
+
+ .btn-danger {
+ @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border-color, $btn-danger-bg-hover);
+ }
+
+ // Button Sizes
+ .btn-lg {
+ font-size: $font-size-large;
+
+ img {
+ height: calc(#{$font-size-small} + 4px);
+ }
+ }
+
+ .btn-sm {
+ font-size: $font-size-small;
+
+ img {
+ height: calc(#{$font-size-small} + 4px);
+ }
+ }
+
+ // Button Image
+ .btn-image {
+ padding: 0;
+ vertical-align: middle;
+ border-style: none;
+ background-color: transparent;
+
+ img {
+ display: block; // or else the button doesn't get a width
+ height: auto; // Image set height
+ }
+
+ &:hover,
+ &:focus {
+ background-color: transparent;
+ }
+ }
+
+ // Icon buttons
+ .btn-icon {
+ & > img,
+ & > .glyphicon {
+ margin: 0;
+ }
+ }
+
+ .btn-icon-right {
+ display: inline-flex;
+ flex-direction: row-reverse;
+ align-items: center;
+
+ & > img,
+ & > .glyphicon {
+ top: 0;
+ margin-left: 4px;
+ }
+ }
+
+ .btn-icon-top {
+ padding-right: 0;
+ padding-left: 0;
+
+ & > img,
+ & > .glyphicon {
+ display: block;
+ margin: 0 0 4px 0;
+ }
+ }
+
+ .btn-icon-only {
+ @extend .btn-icon;
+ padding: 0;
+ color: $btn-default-icon-color;
+ border: none;
+ }
+
+ .btn-block {
+ display: block;
+ width: 100%;
+ }
+
+ .btn-block + .btn-block {
+ margin-top: 4px;
+ }
+}
diff --git a/themesource/atlas_core/web/core/helpers/_data-grid.scss b/themesource/atlas_core/web/core/helpers/_data-grid.scss
new file mode 100644
index 00000000..f81e3165
--- /dev/null
+++ b/themesource/atlas_core/web/core/helpers/_data-grid.scss
@@ -0,0 +1,164 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin data-grid-helpers() {
+ /* ==========================================================================
+ Data grid default
+
+ //== Design Properties
+ //## Helper classes to change the look and feel of the component
+ ========================================================================== */
+ // Striped style
+ .datagrid-striped.mx-datagrid {
+ table {
+ th {
+ border-width: 0;
+ }
+
+ tbody tr {
+ td {
+ border-top-width: 0;
+ }
+
+ &:nth-child(odd) td {
+ background-color: $grid-bg-striped;
+ }
+ }
+ }
+ }
+
+ // Bordered style
+ .datagrid-bordered.mx-datagrid {
+ table {
+ border: 1px solid;
+
+ th {
+ border: 1px solid $grid-border-color;
+ }
+
+ tbody tr {
+ td {
+ border: 1px solid $grid-border-color;
+ }
+ }
+ }
+
+ tfoot {
+ > tr > th {
+ border-width: 0;
+ background-color: $grid-footer-bg;
+ }
+
+ > tr > td {
+ border-width: 1px;
+ }
+ }
+ }
+
+ // Transparent style so you can see the background
+ .datagrid-transparent.mx-datagrid {
+ table {
+ background-color: transparent;
+
+ tbody tr {
+ &:nth-of-type(odd) {
+ background-color: transparent;
+ }
+
+ td {
+ background-color: transparent;
+ }
+ }
+ }
+ }
+
+ // Hover style activated
+ .datagrid-hover.mx-datagrid {
+ table {
+ tbody tr {
+ &:hover td {
+ background-color: $grid-bg-hover !important;
+ }
+
+ &.selected:hover td {
+ background-color: $grid-bg-selected-hover !important;
+ }
+ }
+ }
+ }
+
+ // Datagrid Row Sizes
+ .datagrid-lg.mx-datagrid {
+ table {
+ th {
+ padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2)
+ ($grid-padding-left * 2);
+ }
+
+ tbody tr {
+ td {
+ padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2)
+ ($grid-padding-left * 2);
+ }
+ }
+ }
+ }
+
+ .datagrid-sm.mx-datagrid {
+ table {
+ th {
+ padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2)
+ ($grid-padding-left / 2);
+ }
+
+ tbody tr {
+ td {
+ padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2)
+ ($grid-padding-left/ 2);
+ }
+ }
+ }
+ }
+
+ // Datagrid Full Search
+ // Default Mendix Datagrid Widget with adjusted search field. Only 1 search field is allowed
+ .datagrid-fullsearch.mx-grid {
+ .mx-grid-search-button {
+ @extend .btn-primary;
+ }
+
+ .mx-grid-reset-button {
+ display: none;
+ }
+
+ .mx-grid-search-item {
+ display: block;
+ }
+
+ .mx-grid-search-label {
+ display: none;
+ }
+
+ .mx-grid-searchbar {
+ .mx-grid-search-controls {
+ position: absolute;
+ right: 0;
+ }
+
+ .mx-grid-search-input {
+ width: 80%;
+ padding-left: 0;
+
+ .btn,
+ .form-control {
+ height: 35px;
+ font-size: 12px;
+ }
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/helpers/_group-box.scss b/themesource/atlas_core/web/core/helpers/_group-box.scss
new file mode 100644
index 00000000..889d28c4
--- /dev/null
+++ b/themesource/atlas_core/web/core/helpers/_group-box.scss
@@ -0,0 +1,136 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin group-box-helpers() {
+ /* ==========================================================================
+ Group box
+
+ //== Design Properties
+ //## Helper classes to change the look and feel of the component
+ ========================================================================== */
+ // Color variations
+ .groupbox-secondary,
+ .groupbox-default {
+ @include groupbox-variant($groupbox-default-color, $groupbox-default-bg);
+ }
+
+ .groupbox-primary {
+ @include groupbox-variant($groupbox-primary-color, $groupbox-primary-bg);
+ }
+
+ // Success appears as green
+ .groupbox-success {
+ @include groupbox-variant($groupbox-success-color, $groupbox-success-bg);
+ }
+
+ // Warning appears as orange
+ .groupbox-warning {
+ @include groupbox-variant($groupbox-warning-color, $groupbox-warning-bg);
+ }
+
+ // Danger and error appear as red
+ .groupbox-danger {
+ @include groupbox-variant($groupbox-danger-color, $groupbox-danger-bg);
+ }
+
+ .groupbox-transparent {
+ > .mx-groupbox-header {
+ padding: $spacing-small * 1.5 0;
+ color: $gray-darker;
+ border-style: none;
+ background: transparent;
+ font-weight: $font-weight-semibold;
+ }
+
+ .mx-groupbox-body {
+ padding: $spacing-small 0;
+ border-radius: 0;
+ border: 0;
+ border-bottom: 1px solid $groupbox-default-bg;
+ background-color: transparent;
+ }
+
+ .mx-groupbox-collapse-icon {
+ color: $brand-primary;
+ }
+ }
+
+ // Callout Look and Feel
+ .groupbox-callout {
+ > .mx-groupbox-header,
+ > .mx-groupbox-body {
+ border: 0;
+ background-color: $callout-primary-bg;
+ }
+
+ > .mx-groupbox-header {
+ color: $callout-primary-color;
+ }
+
+ .mx-groupbox-header + .mx-groupbox-body {
+ padding-top: 0;
+ }
+ }
+
+ .groupbox-success.groupbox-callout {
+ > .mx-groupbox-header,
+ > .mx-groupbox-body {
+ background-color: $callout-success-bg;
+ }
+
+ > .mx-groupbox-header {
+ color: $callout-success-color;
+ }
+ }
+
+ .groupbox-warning.groupbox-callout {
+ > .mx-groupbox-header,
+ > .mx-groupbox-body {
+ background-color: $callout-warning-bg;
+ }
+
+ > .mx-groupbox-header {
+ color: $callout-warning-color;
+ }
+ }
+
+ .groupbox-danger.groupbox-callout {
+ > .mx-groupbox-header,
+ > .mx-groupbox-body {
+ background-color: $callout-danger-bg;
+ }
+
+ > .mx-groupbox-header {
+ color: $callout-danger-color;
+ }
+ }
+
+ //Bootstrap variations
+
+ .groupbox-info {
+ @include groupbox-variant($groupbox-info-color, $groupbox-info-bg);
+ }
+
+ .groupbox-inverse {
+ @include groupbox-variant($groupbox-inverse-color, $groupbox-inverse-bg);
+ }
+
+ .groupbox-white {
+ @include groupbox-variant($groupbox-white-color, $groupbox-white-bg);
+ }
+
+ .groupbox-info.groupbox-callout {
+ > .mx-groupbox-header,
+ > .mx-groupbox-body {
+ background-color: $callout-info-bg;
+ }
+
+ > .mx-groupbox-header {
+ color: $callout-info-color;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/helpers/_helper-classes.scss b/themesource/atlas_core/web/core/helpers/_helper-classes.scss
new file mode 100644
index 00000000..e3b7d6f9
--- /dev/null
+++ b/themesource/atlas_core/web/core/helpers/_helper-classes.scss
@@ -0,0 +1,437 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin helper-classes() {
+ /* ==========================================================================
+ Helper
+
+ Default Mendix helpers
+ ========================================================================== */
+ $important-helpers-value: if($important-helpers, " !important", "");
+
+ // Display properties
+ .d-none {
+ display: none #{$important-helpers-value};
+ }
+
+ .d-flex {
+ display: flex #{$important-helpers-value};
+ }
+
+ .d-inline-flex {
+ display: inline-flex #{$important-helpers-value};
+ }
+
+ .d-inline {
+ display: inline #{$important-helpers-value};
+ }
+
+ .d-inline-block {
+ display: inline-block #{$important-helpers-value};
+ }
+
+ .show,
+ .d-block {
+ display: block #{$important-helpers-value};
+ }
+
+ .table,
+ .d-table {
+ display: table #{$important-helpers-value};
+ }
+
+ .table-row,
+ .d-table-row {
+ display: table-row #{$important-helpers-value};
+ }
+
+ .table-cell,
+ .d-table-cell {
+ display: table-cell #{$important-helpers-value};
+ }
+
+ .hide,
+ .hidden {
+ display: none #{$important-helpers-value};
+ visibility: hidden #{$important-helpers-value};
+ }
+
+ .invisible {
+ visibility: hidden #{$important-helpers-value};
+ }
+
+ .display-ie8-only:not([attr*=""]) {
+ display: none #{$important-helpers-value};
+ padding: 0 #{$important-helpers-value};
+ }
+
+ .list-nostyle {
+ ul {
+ margin: 0 #{$important-helpers-value};
+ padding: 0 #{$important-helpers-value};
+
+ li {
+ list-style-type: none #{$important-helpers-value};
+ }
+ }
+ }
+
+ .nowrap,
+ .nowrap * {
+ overflow: hidden #{$important-helpers-value};
+ // Star for inside an element, IE8 span > a
+ white-space: nowrap #{$important-helpers-value};
+ text-overflow: ellipsis #{$important-helpers-value};
+ }
+
+ // Render DIV as Table Cells
+ .table {
+ display: table #{$important-helpers-value};
+ }
+
+ .table-row {
+ display: table-row #{$important-helpers-value};
+ }
+
+ .table-cell {
+ display: table-cell #{$important-helpers-value};
+ }
+
+ // Quick floats
+ .pull-left {
+ float: left #{$important-helpers-value};
+ }
+
+ .pull-right {
+ float: right #{$important-helpers-value};
+ }
+
+ // Align options
+ .align-top {
+ vertical-align: top #{$important-helpers-value};
+ }
+
+ .align-middle {
+ vertical-align: middle #{$important-helpers-value};
+ }
+
+ .align-bottom {
+ vertical-align: bottom #{$important-helpers-value};
+ }
+
+ // Flex alignments
+ .row-left {
+ display: flex #{$important-helpers-value};
+ align-items: center #{$important-helpers-value};
+ flex-flow: row #{$important-helpers-value};
+ justify-content: flex-start #{$important-helpers-value};
+ }
+
+ .row-center {
+ display: flex #{$important-helpers-value};
+ align-items: center #{$important-helpers-value};
+ flex-flow: row #{$important-helpers-value};
+ justify-content: center #{$important-helpers-value};
+ }
+
+ .row-right {
+ display: flex #{$important-helpers-value};
+ align-items: center #{$important-helpers-value};
+ flex-flow: row #{$important-helpers-value};
+ justify-content: flex-end #{$important-helpers-value};
+ }
+
+ .col-left {
+ display: flex #{$important-helpers-value};
+ align-items: flex-start #{$important-helpers-value};
+ flex-direction: column #{$important-helpers-value};
+ justify-content: center #{$important-helpers-value};
+ }
+
+ .col-center {
+ display: flex #{$important-helpers-value};
+ align-items: center #{$important-helpers-value};
+ flex-direction: column #{$important-helpers-value};
+ justify-content: center #{$important-helpers-value};
+ }
+
+ .col-right {
+ display: flex #{$important-helpers-value};
+ align-items: flex-end #{$important-helpers-value};
+ flex-direction: column #{$important-helpers-value};
+ justify-content: center #{$important-helpers-value};
+ }
+
+ .shadow-small {
+ box-shadow: $shadow-small $shadow-color;
+ margin-bottom: 5px;
+ border-width: 1px #{$important-helpers-value};
+ border-style: solid;
+ border-color: $shadow-color-border;
+ }
+ .shadow-medium {
+ box-shadow: $shadow-medium $shadow-color;
+ margin-bottom: 15px;
+ border-width: 1px #{$important-helpers-value};
+ border-style: solid;
+ border-color: $shadow-color-border;
+ }
+
+ .shadow-large {
+ box-shadow: $shadow-large $shadow-color;
+ margin-bottom: 25px;
+ border-width: 1px #{$important-helpers-value};
+ border-style: solid;
+ border-color: $shadow-color-border;
+ }
+
+ // Media
+ @media (max-width: $screen-sm-max) {
+ .hide-phone {
+ display: none #{$important-helpers-value};
+ }
+ }
+
+ @media (min-width: $screen-md) and (max-width: $screen-md-max) {
+ .hide-tablet {
+ display: none #{$important-helpers-value};
+ }
+ }
+
+ @media (min-width: $screen-lg) {
+ .hide-desktop {
+ display: none #{$important-helpers-value};
+ }
+ }
+
+ @media (max-width: $screen-xs-max) {
+ .hide-xs,
+ .hidden-xs,
+ .d-xs-none {
+ display: none #{$important-helpers-value};
+ }
+ .d-xs-flex {
+ display: flex #{$important-helpers-value};
+ }
+ .d-xs-inline-flex {
+ display: inline-flex #{$important-helpers-value};
+ }
+ .d-xs-inline {
+ display: inline #{$important-helpers-value};
+ }
+ .d-xs-inline-block {
+ display: inline-block #{$important-helpers-value};
+ }
+ .d-xs-block {
+ display: block #{$important-helpers-value};
+ }
+ .d-xs-table {
+ display: table #{$important-helpers-value};
+ }
+ .d-xs-table-row {
+ display: table-row #{$important-helpers-value};
+ }
+ .d-xs-table-cell {
+ display: table-cell #{$important-helpers-value};
+ }
+ }
+
+ @media (min-width: $screen-sm) and (max-width: $screen-sm-max) {
+ .hide-sm,
+ .hidden-sm,
+ .d-sm-none {
+ display: none #{$important-helpers-value};
+ }
+ .d-sm-flex {
+ display: flex #{$important-helpers-value};
+ }
+ .d-sm-inline-flex {
+ display: inline-flex #{$important-helpers-value};
+ }
+ .d-sm-inline {
+ display: inline #{$important-helpers-value};
+ }
+ .d-sm-inline-block {
+ display: inline-block #{$important-helpers-value};
+ }
+ .d-sm-block {
+ display: block #{$important-helpers-value};
+ }
+ .d-sm-table {
+ display: table #{$important-helpers-value};
+ }
+ .d-sm-table-row {
+ display: table-row #{$important-helpers-value};
+ }
+ .d-sm-table-cell {
+ display: table-cell #{$important-helpers-value};
+ }
+ }
+
+ @media (min-width: $screen-md) and (max-width: $screen-md-max) {
+ .hide-md,
+ .hidden-md,
+ .d-md-none {
+ display: none #{$important-helpers-value};
+ }
+ .d-md-flex {
+ display: flex #{$important-helpers-value};
+ }
+ .d-md-inline-flex {
+ display: inline-flex #{$important-helpers-value};
+ }
+ .d-md-inline {
+ display: inline #{$important-helpers-value};
+ }
+ .d-md-inline-block {
+ display: inline-block #{$important-helpers-value};
+ }
+ .d-md-block {
+ display: block #{$important-helpers-value};
+ }
+ .d-md-table {
+ display: table #{$important-helpers-value};
+ }
+ .d-md-table-row {
+ display: table-row #{$important-helpers-value};
+ }
+ .d-md-table-cell {
+ display: table-cell #{$important-helpers-value};
+ }
+ }
+
+ @media (min-width: $screen-lg) and (max-width: $screen-xl) {
+ .hide-lg,
+ .hidden-lg,
+ .d-lg-none {
+ display: none #{$important-helpers-value};
+ }
+ .d-lg-flex {
+ display: flex #{$important-helpers-value};
+ }
+ .d-lg-inline-flex {
+ display: inline-flex #{$important-helpers-value};
+ }
+ .d-lg-inline {
+ display: inline #{$important-helpers-value};
+ }
+ .d-lg-inline-block {
+ display: inline-block #{$important-helpers-value};
+ }
+ .d-lg-block {
+ display: block #{$important-helpers-value};
+ }
+ .d-lg-table {
+ display: table #{$important-helpers-value};
+ }
+ .d-lg-table-row {
+ display: table-row #{$important-helpers-value};
+ }
+ .d-lg-table-cell {
+ display: table-cell #{$important-helpers-value};
+ }
+ }
+
+ @media (min-width: $screen-xl) {
+ .hide-xl,
+ .hidden-xl,
+ .d-xl-none {
+ display: none #{$important-helpers-value};
+ }
+ .d-xl-flex {
+ display: flex #{$important-helpers-value};
+ }
+ .d-xl-inline-flex {
+ display: inline-flex #{$important-helpers-value};
+ }
+ .d-xl-inline {
+ display: inline #{$important-helpers-value};
+ }
+ .d-xl-inline-block {
+ display: inline-block #{$important-helpers-value};
+ }
+ .d-xl-block {
+ display: block #{$important-helpers-value};
+ }
+ .d-xl-table {
+ display: table #{$important-helpers-value};
+ }
+ .d-xl-table-row {
+ display: table-row #{$important-helpers-value};
+ }
+ .d-xl-table-cell {
+ display: table-cell #{$important-helpers-value};
+ }
+ }
+
+ //Box-shadow
+
+ .shadow {
+ box-shadow: 0 2px 20px 1px rgba(5, 15, 129, 0.05) #{$important-helpers-value};
+ }
+
+ //Height helpers
+
+ .h-25 {
+ height: 25% #{$important-helpers-value};
+ }
+
+ .h-50 {
+ height: 50% #{$important-helpers-value};
+ }
+
+ .h-75 {
+ height: 75% #{$important-helpers-value};
+ }
+
+ .h-100 {
+ height: 100% #{$important-helpers-value};
+ }
+
+ //Width helpers
+
+ .w-25 {
+ width: 25% #{$important-helpers-value};
+ }
+
+ .w-50 {
+ width: 50% #{$important-helpers-value};
+ }
+
+ .w-75 {
+ width: 75% #{$important-helpers-value};
+ }
+
+ .w-100 {
+ width: 100% #{$important-helpers-value};
+ }
+
+ //Border helpers
+ .border {
+ border: 1px solid $border-color-default #{$important-helpers-value};
+ }
+
+ .border-top {
+ border-top: 1px solid $border-color-default #{$important-helpers-value};
+ }
+
+ .border-bottom {
+ border-bottom: 1px solid $border-color-default #{$important-helpers-value};
+ }
+
+ .border-left {
+ border-left: 1px solid $border-color-default #{$important-helpers-value};
+ }
+
+ .border-right {
+ border-right: 1px solid $border-color-default #{$important-helpers-value};
+ }
+
+ .border-rounded {
+ border-radius: $border-radius-default #{$important-helpers-value};
+ }
+}
diff --git a/themesource/atlas_core/web/core/helpers/_image.scss b/themesource/atlas_core/web/core/helpers/_image.scss
new file mode 100644
index 00000000..701ec99e
--- /dev/null
+++ b/themesource/atlas_core/web/core/helpers/_image.scss
@@ -0,0 +1,105 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin image-helpers() {
+ /* ==========================================================================
+ Image
+
+ Default Mendix image widgets
+ ========================================================================== */
+
+ img.img-rounded,
+ .img-rounded img {
+ border-radius: 6px;
+ }
+
+ img.img-thumbnail,
+ .img-thumbnail img {
+ display: inline-block;
+ max-width: 100%;
+ height: auto;
+ padding: 4px;
+ transition: all 0.2s ease-in-out;
+ border: 1px solid $brand-default;
+ border-radius: 4px;
+ background-color: #ffffff;
+ line-height: $line-height-base;
+ }
+
+ img.img-circle,
+ .img-circle img {
+ border-radius: 50%;
+ }
+
+ img.img-auto,
+ .img-auto img {
+ width: auto !important;
+ max-width: 100% !important;
+ height: auto !important;
+ max-height: 100% !important;
+ }
+
+ img.img-center,
+ .img-center img {
+ margin-right: auto !important;
+ margin-left: auto !important;
+ }
+
+ img.img-icon {
+ width: 20px;
+ height: 20px;
+ padding: 2px;
+ border-radius: 50%;
+ }
+
+ img.img-fill,
+ .img-fill img {
+ object-fit: fill;
+ }
+
+ img.img-contain,
+ .img-contain img {
+ object-fit: contain;
+ }
+
+ img.img-cover,
+ .img-cover img {
+ object-fit: cover;
+ }
+
+ img.img-scale-down,
+ .img-scale-down img {
+ object-fit: scale-down;
+ }
+
+ .img-contain.mx-image-background {
+ background-size: contain;
+ }
+
+ .img-cover.mx-image-background {
+ background-size: cover;
+ }
+
+ .img-auto.mx-image-background {
+ background-size: auto;
+ }
+
+ .img-opacity-low img,
+ .img-opacity-low.mx-image-background {
+ opacity: 0.3;
+ }
+
+ .img-opacity-medium img,
+ .img-opacity-medium.mx-image-background {
+ opacity: 0.5;
+ }
+
+ .img-opacity-high img,
+ .img-opacity-high.mx-image-background {
+ opacity: 0.7;
+ }
+}
diff --git a/themesource/atlas_core/web/core/helpers/_label.scss b/themesource/atlas_core/web/core/helpers/_label.scss
new file mode 100644
index 00000000..02663f05
--- /dev/null
+++ b/themesource/atlas_core/web/core/helpers/_label.scss
@@ -0,0 +1,52 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin label-helpers() {
+ /* ==========================================================================
+ Label
+
+ //== Design Properties
+ //## Helper classes to change the look and feel of the component including
+ badge widget
+ ========================================================================== */
+ // Color variations
+ .label-secondary,
+ .label-default {
+ color: $label-default-color;
+ background-color: $label-default-bg;
+ }
+
+ .label-primary {
+ color: $label-primary-color;
+ background-color: $label-primary-bg;
+ }
+
+ .label-success {
+ color: $label-success-color;
+ background-color: $label-success-bg;
+ }
+
+ .label-inverse {
+ color: $label-inverse-color;
+ background-color: $label-inverse-bg;
+ }
+
+ .label-info {
+ color: $label-info-color;
+ background-color: $label-info-bg;
+ }
+
+ .label-warning {
+ color: $label-warning-color;
+ background-color: $label-warning-bg;
+ }
+
+ .label-danger {
+ color: $label-danger-color;
+ background-color: $label-danger-bg;
+ }
+}
diff --git a/themesource/atlas_core/web/core/helpers/_list-view.scss b/themesource/atlas_core/web/core/helpers/_list-view.scss
new file mode 100644
index 00000000..1fc5d5ff
--- /dev/null
+++ b/themesource/atlas_core/web/core/helpers/_list-view.scss
@@ -0,0 +1,320 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin list-view-helpers() {
+ /* ==========================================================================
+ List view
+
+ //== Design Properties
+ //## Helper classes to change the look and feel of the component
+ ========================================================================== */
+
+ // List items lined
+ .listview-lined.mx-listview {
+ & > ul > li {
+ border-top: 1px solid $grid-border-color;
+
+ &:first-child {
+ border-top: 1px solid $grid-border-color;
+ }
+
+ &:last-child {
+ border-bottom: 1px solid $grid-border-color;
+ }
+ }
+ }
+
+ //List items Bordered
+ .listview-bordered.mx-listview {
+ & > ul > li {
+ border: 1px solid $grid-border-color;
+ border-top: 0;
+
+ &:first-child {
+ border-top: 1px solid $grid-border-color;
+ }
+
+ &:last-child {
+ }
+ }
+ }
+
+ // List items striped
+ .listview-striped.mx-listview {
+ & > ul > li:nth-child(2n + 1) {
+ background-color: $grid-bg-striped;
+ }
+ }
+
+ // Items as seperated blocks
+ .listview-seperated.mx-listview {
+ & > ul > li {
+ margin-bottom: $spacing-medium;
+ border: 1px solid $grid-border-color;
+ border-radius: $border-radius-default;
+ }
+ }
+
+ // Remove all styling - deprecated
+ .listview-stylingless.mx-listview {
+ & > ul > li {
+ padding: unset;
+ cursor: default;
+ border: unset;
+ background-color: transparent;
+
+ &:hover,
+ &:focus,
+ &:active {
+ background-color: transparent;
+ }
+
+ &.selected {
+ background-color: transparent !important;
+
+ &:hover,
+ &:focus,
+ &:active {
+ background-color: transparent !important;
+ }
+ }
+ }
+ }
+
+ // Hover style activated
+ .listview-hover.mx-listview {
+ & > ul > li {
+ cursor: pointer;
+
+ &:hover,
+ &:focus,
+ &:active {
+ background-color: $grid-bg-hover;
+ }
+
+ &.selected {
+ &:hover,
+ &:focus,
+ &:active {
+ background-color: $grid-bg-selected-hover;
+ }
+ }
+ }
+ }
+
+ // Row Sizes
+
+ .listview-sm.mx-listview {
+ & > ul > li {
+ padding: $spacing-small;
+ }
+ }
+
+ .listview-lg.mx-listview {
+ & > ul > li {
+ padding: $spacing-large;
+ }
+ }
+
+ // Bootstrap columns
+ .mx-listview[class*="lv-col"] {
+ overflow: hidden; // For if it is not in a layout, to prevent scrollbars
+ & > ul {
+ display: flex; // normal a table
+ flex-wrap: wrap;
+ margin-right: -1 * $gutter-size;
+ margin-left: -1 * $gutter-size;
+
+ &::before,
+ &::after {
+ // clearfix
+ display: table;
+ clear: both;
+ content: " ";
+ }
+
+ & > li {
+ // bootstrap col
+ position: relative;
+ min-height: 1px;
+ padding-right: $gutter-size;
+ padding-left: $gutter-size;
+ border: 0;
+ @media (max-width: $screen-md-max) {
+ width: 100% !important;
+ }
+
+ & > .mx-dataview {
+ overflow: hidden;
+ }
+ }
+ }
+
+ &.lv-col-xs-12 > ul > li {
+ width: 100% !important;
+ }
+
+ &.lv-col-xs-11 > ul > li {
+ width: 91.66666667% !important;
+ }
+
+ &.lv-col-xs-10 > ul > li {
+ width: 83.33333333% !important;
+ }
+
+ &.lv-col-xs-9 > ul > li {
+ width: 75% !important;
+ }
+
+ &.lv-col-xs-8 > ul > li {
+ width: 66.66666667% !important;
+ }
+
+ &.lv-col-xs-7 > ul > li {
+ width: 58.33333333% !important;
+ }
+
+ &.lv-col-xs-6 > ul > li {
+ width: 50% !important;
+ }
+
+ &.lv-col-xs-5 > ul > li {
+ width: 41.66666667% !important;
+ }
+
+ &.lv-col-xs-4 > ul > li {
+ width: 33.33333333% !important;
+ }
+
+ &.lv-col-xs-3 > ul > li {
+ width: 25% !important;
+ }
+
+ &.lv-col-xs-2 > ul > li {
+ width: 16.66666667% !important;
+ }
+
+ &.lv-col-xs-1 > ul > li {
+ width: 8.33333333% !important;
+ }
+
+ @media (min-width: $screen-md) {
+ &.lv-col-sm-12 > ul > li {
+ width: 100% !important;
+ }
+ &.lv-col-sm-11 > ul > li {
+ width: 91.66666667% !important;
+ }
+ &.lv-col-sm-10 > ul > li {
+ width: 83.33333333% !important;
+ }
+ &.lv-col-sm-9 > ul > li {
+ width: 75% !important;
+ }
+ &.lv-col-sm-8 > ul > li {
+ width: 66.66666667% !important;
+ }
+ &.lv-col-sm-7 > ul > li {
+ width: 58.33333333% !important;
+ }
+ &.lv-col-sm-6 > ul > li {
+ width: 50% !important;
+ }
+ &.lv-col-sm-5 > ul > li {
+ width: 41.66666667% !important;
+ }
+ &.lv-col-sm-4 > ul > li {
+ width: 33.33333333% !important;
+ }
+ &.lv-col-sm-3 > ul > li {
+ width: 25% !important;
+ }
+ &.lv-col-sm-2 > ul > li {
+ width: 16.66666667% !important;
+ }
+ &.lv-col-sm-1 > ul > li {
+ width: 8.33333333% !important;
+ }
+ }
+ @media (min-width: $screen-lg) {
+ &.lv-col-md-12 > ul > li {
+ width: 100% !important;
+ }
+ &.lv-col-md-11 > ul > li {
+ width: 91.66666667% !important;
+ }
+ &.lv-col-md-10 > ul > li {
+ width: 83.33333333% !important;
+ }
+ &.lv-col-md-9 > ul > li {
+ width: 75% !important;
+ }
+ &.lv-col-md-8 > ul > li {
+ width: 66.66666667% !important;
+ }
+ &.lv-col-md-7 > ul > li {
+ width: 58.33333333% !important;
+ }
+ &.lv-col-md-6 > ul > li {
+ width: 50% !important;
+ }
+ &.lv-col-md-5 > ul > li {
+ width: 41.66666667% !important;
+ }
+ &.lv-col-md-4 > ul > li {
+ width: 33.33333333% !important;
+ }
+ &.lv-col-md-3 > ul > li {
+ width: 25% !important;
+ }
+ &.lv-col-md-2 > ul > li {
+ width: 16.66666667% !important;
+ }
+ &.lv-col-md-1 > ul > li {
+ width: 16.66666667% !important;
+ }
+ }
+ @media (min-width: $screen-xl) {
+ &.lv-col-lg-12 > ul > li {
+ width: 100% !important;
+ }
+ &.lv-col-lg-11 > ul > li {
+ width: 91.66666667% !important;
+ }
+ &.lv-col-lg-10 > ul > li {
+ width: 83.33333333% !important;
+ }
+ &.lv-col-lg-9 > ul > li {
+ width: 75% !important;
+ }
+ &.lv-col-lg-8 > ul > li {
+ width: 66.66666667% !important;
+ }
+ &.lv-col-lg-7 > ul > li {
+ width: 58.33333333% !important;
+ }
+ &.lv-col-lg-6 > ul > li {
+ width: 50% !important;
+ }
+ &.lv-col-lg-5 > ul > li {
+ width: 41.66666667% !important;
+ }
+ &.lv-col-lg-4 > ul > li {
+ width: 33.33333333% !important;
+ }
+ &.lv-col-lg-3 > ul > li {
+ width: 25% !important;
+ }
+ &.lv-col-lg-2 > ul > li {
+ width: 16.66666667% !important;
+ }
+ &.lv-col-lg-1 > ul > li {
+ width: 8.33333333% !important;
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/helpers/_navigation-bar.scss b/themesource/atlas_core/web/core/helpers/_navigation-bar.scss
new file mode 100644
index 00000000..c20fc08a
--- /dev/null
+++ b/themesource/atlas_core/web/core/helpers/_navigation-bar.scss
@@ -0,0 +1,219 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin navigation-bar-helpers() {
+ /* ==========================================================================
+ Navigation
+
+ //== Regions
+ //## Behavior in the different regions
+ ========================================================================== */
+ // When used in topbar
+ .region-topbar {
+ .mx-navbar {
+ background-color: $navtopbar-bg;
+ min-height: auto;
+ ul.nav {
+ > .mx-navbar-item {
+ margin-left: $spacing-small;
+ }
+ /* Navigation item */
+ & > li.mx-navbar-item > a {
+ color: $navtopbar-color;
+ font-size: $navtopbar-font-size;
+ line-height: 1.2;
+ /* Dropdown arrow */
+ .caret {
+ border-top-color: $navtopbar-color;
+ border-bottom-color: $navtopbar-color;
+ }
+ &:hover,
+ &:focus,
+ &.active {
+ color: $navtopbar-color-hover;
+ background-color: $navtopbar-bg-hover;
+ .caret {
+ border-top-color: $navtopbar-color-active;
+ border-bottom-color: $navtopbar-color-active;
+ }
+ }
+ &.active {
+ color: $navtopbar-color-active;
+ background-color: $navtopbar-bg-active;
+ }
+
+ /* Dropdown */
+ .mx-navbar-submenu::before {
+ border-color: transparent transparent $navtopbar-border-color transparent;
+ }
+
+ // Image
+ .glyphicon {
+ font-size: $navtopbar-glyph-size;
+ }
+ }
+
+ /* When hovering or the dropdown is open */
+ & > .mx-navbar-item > a:hover,
+ & > .mx-navbar-item > a:focus,
+ & > .mx-navbar-item.active a,
+ & > .mx-navbar-item.open > a,
+ & > .mx-navbar-item.open > a:hover,
+ & > .mx-navbar-item.open > a:focus {
+ color: $navtopbar-color-hover;
+ background-color: $navtopbar-bg-hover;
+ .caret {
+ border-top-color: $navtopbar-color-hover;
+ border-bottom-color: $navtopbar-color-hover;
+ }
+ }
+
+ & > .mx-navbar-item.open .dropdown-menu {
+ border-radius: $border-radius-default;
+ background-color: $navtopbar-sub-bg;
+ padding: $spacing-small $spacing-small 0;
+ margin: 0;
+ border: 0;
+ box-shadow: 0px 2px 2px rgba(194, 196, 201, 0.30354);
+ & > li.mx-navbar-subitem a {
+ padding: $spacing-small;
+ color: $navtopbar-color;
+ border-radius: $border-radius-default;
+ margin-bottom: $spacing-small;
+ line-height: 1.2;
+ &:hover,
+ &:focus {
+ color: $navtopbar-color-hover;
+ background-color: $navtopbar-sub-bg-hover;
+ }
+ }
+ }
+ & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a {
+ color: $navtopbar-sub-color-active;
+ background-color: $navtopbar-sub-bg-active;
+ .caret {
+ border-top-color: $navtopbar-sub-color-active;
+ border-bottom-color: $navtopbar-sub-color-active;
+ }
+ }
+ }
+ @media (max-width: $screen-md) {
+ ul.nav > li.mx-navbar-item > a {
+ }
+ .mx-navbar-item.open .dropdown-menu {
+ background-color: $navtopbar-sub-bg;
+ & > li.mx-navbar-subitem > a {
+ color: $navtopbar-sub-color;
+ font-size: $navtopbar-sub-font-size;
+ &:hover,
+ &:focus {
+ color: $navtopbar-sub-color-hover;
+ background-color: $navtopbar-sub-bg-hover;
+ }
+ &.active {
+ color: $navtopbar-sub-color-active;
+ background-color: $navtopbar-sub-bg-active;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // When used in sidebar
+ .region-sidebar {
+ .mx-navbar {
+ background-color: $navsidebar-bg;
+ ul.nav {
+ /* Navigation item */
+ & > li.mx-navbar-item > a {
+ color: $navsidebar-color;
+ font-size: $navsidebar-font-size;
+
+ /* Dropdown arrow */
+ .caret {
+ border-top-color: $navsidebar-color;
+ border-bottom-color: $navsidebar-color;
+ }
+ &:hover,
+ &:focus,
+ &.active {
+ color: $navsidebar-color-hover;
+ background-color: $navsidebar-bg-hover;
+ .caret {
+ border-top-color: $navsidebar-color-active;
+ border-bottom-color: $navsidebar-color-active;
+ }
+ }
+ &.active {
+ color: $navsidebar-color-active;
+ background-color: $navsidebar-bg-active;
+ }
+
+ /* Dropdown */
+ .mx-navbar-submenu::before {
+ border-color: transparent transparent $navsidebar-border-color transparent;
+ }
+
+ // Image
+ .glyphicon {
+ font-size: $navsidebar-glyph-size;
+ }
+ }
+
+ /* When hovering or the dropdown is open */
+ & > .mx-navbar-item > a:hover,
+ & > .mx-navbar-item > a:focus,
+ & > .mx-navbar-item.active a,
+ & > .mx-navbar-item.open > a,
+ & > .mx-navbar-item.open > a:hover,
+ & > .mx-navbar-item.open > a:focus {
+ color: $navsidebar-color-hover;
+ background-color: $navsidebar-bg-hover;
+ .caret {
+ border-top-color: $navsidebar-color-hover;
+ border-bottom-color: $navsidebar-color-hover;
+ }
+ }
+ & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a {
+ color: $navsidebar-sub-color-active;
+ background-color: $navsidebar-sub-bg-active;
+ .caret {
+ border-top-color: $navsidebar-sub-color-active;
+ border-bottom-color: $navsidebar-sub-color-active;
+ }
+ }
+ }
+ @media (max-width: $screen-md) {
+ ul.nav > li.mx-navbar-item > a {
+ }
+ .mx-navbar-item.open .dropdown-menu {
+ background-color: $navtopbar-sub-bg;
+ & > li.mx-navbar-subitem > a {
+ color: $navsidebar-sub-color;
+ font-size: $navsidebar-sub-font-size;
+ &:hover,
+ &:focus {
+ color: $navsidebar-sub-color-hover;
+ background-color: $navsidebar-sub-bg-hover;
+ }
+ &.active {
+ color: $navsidebar-sub-color-active;
+ background-color: $navsidebar-sub-bg-active;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ .hide-icons.mx-navbar {
+ .glyphicon {
+ display: none;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/helpers/_navigation-tree.scss b/themesource/atlas_core/web/core/helpers/_navigation-tree.scss
new file mode 100644
index 00000000..cc32c567
--- /dev/null
+++ b/themesource/atlas_core/web/core/helpers/_navigation-tree.scss
@@ -0,0 +1,173 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin navigation-tree-helpers() {
+ /* ==========================================================================
+ Navigation
+
+ //== Regions
+ //## Behavior in the different regions
+ ========================================================================== */
+ // When used in topbar
+ .region-topbar {
+ .mx-navigationtree {
+ background-color: $navtopbar-bg;
+ .navbar-inner > ul {
+ & > li {
+ & > a {
+ color: $navtopbar-color;
+ border-color: $navtopbar-border-color;
+ background-color: $navtopbar-bg;
+ font-size: $navtopbar-font-size;
+ .caret {
+ border-top-color: $navtopbar-color;
+ border-bottom-color: $navtopbar-color;
+ }
+
+ .glyphicon {
+ font-size: $navtopbar-glyph-size;
+ }
+ }
+ a:hover,
+ a:focus,
+ a.active {
+ color: $navtopbar-color-hover;
+ background-color: $navtopbar-bg-hover;
+ .caret {
+ border-top-color: $navtopbar-color-active;
+ border-bottom-color: $navtopbar-color-active;
+ }
+ }
+ a.active {
+ color: $navtopbar-color-active;
+ border-left-color: $navtopbar-color-active;
+ background-color: $navtopbar-bg-active;
+ }
+ }
+ }
+
+ /* Sub navigation item specific */
+ li.mx-navigationtree-has-items {
+ & > ul {
+ background-color: $navtopbar-sub-bg;
+ li {
+ a {
+ color: $navtopbar-sub-color;
+ background-color: $navtopbar-sub-bg;
+ font-size: $navtopbar-sub-font-size;
+ &:hover,
+ &:focus,
+ &.active {
+ color: $navtopbar-sub-color-hover;
+ background-color: $navtopbar-sub-bg-hover;
+ }
+ &.active {
+ color: $navtopbar-sub-color-active;
+ background-color: $navtopbar-sub-bg-active;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // When used in sidebar
+ .region-sidebar {
+ .mx-navigationtree {
+ background-color: $navsidebar-bg;
+ .navbar-inner > ul {
+ & > li {
+ & > a {
+ color: $navsidebar-color;
+ border-color: $navsidebar-border-color;
+ background-color: $navsidebar-bg;
+ font-size: $navsidebar-font-size;
+ .caret {
+ border-top-color: $navsidebar-color;
+ border-bottom-color: $navsidebar-color;
+ }
+
+ .glyphicon {
+ font-size: $navsidebar-glyph-size;
+ }
+ }
+ a:hover,
+ a:focus,
+ a.active {
+ color: $navsidebar-color-hover;
+ background-color: $navsidebar-bg-hover;
+ .caret {
+ border-top-color: $navsidebar-color-active;
+ border-bottom-color: $navsidebar-color-active;
+ }
+ }
+ a.active {
+ color: $navsidebar-color-active;
+ border-left-color: $navsidebar-color-active;
+ background-color: $navsidebar-bg-active;
+ }
+ }
+ }
+
+ /* Sub navigation item specific */
+ li.mx-navigationtree-has-items {
+ & > ul {
+ background-color: $navsidebar-sub-bg;
+ li {
+ a {
+ color: $navsidebar-sub-color;
+ background-color: $navsidebar-sub-bg;
+ font-size: $navsidebar-sub-font-size;
+ &:hover,
+ &:focus,
+ &.active {
+ color: $navsidebar-sub-color-hover;
+ background-color: $navsidebar-sub-bg-hover;
+ }
+ &.active {
+ color: $navsidebar-sub-color-active;
+ background-color: $navsidebar-sub-bg-active;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ //== Design Properties
+ //## Helper classes to change the look and feel of the component
+ //-------------------------------------------------------------------------------------------------------------------//
+ // Content Centerd text and icons
+ .nav-content-center-text-icons.mx-navigationtree {
+ .navbar-inner ul {
+ a {
+ flex-direction: column;
+ justify-content: center;
+ .glyphicon {
+ margin: 0 0 5px 0;
+ }
+ }
+ }
+ }
+
+ // Content Centerd icons only
+ .nav-content-center.mx-navigationtree {
+ .navbar-inner ul {
+ a {
+ justify-content: center;
+ }
+ }
+ }
+
+ .hide-icons.mx-navigationtree {
+ .glyphicon {
+ display: none;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/helpers/_progress-bar.scss b/themesource/atlas_core/web/core/helpers/_progress-bar.scss
new file mode 100644
index 00000000..b461b41b
--- /dev/null
+++ b/themesource/atlas_core/web/core/helpers/_progress-bar.scss
@@ -0,0 +1,87 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin progress-bar-helpers() {
+ /* ==========================================================================
+ Progress Bar
+
+ //== Design Properties
+ //## Helper classes to change the look and feel of the component
+ ========================================================================== */
+
+ .widget-progress-bar {
+ width: 100%;
+
+ .progress {
+ border-radius: $border-radius-default;
+ background-color: $bg-color;
+ }
+ }
+
+ .progress-bar-medium .progress,
+ .progress-bar-medium .progress-bar {
+ height: 16px;
+ line-height: 16px;
+ font-size: $font-size-small;
+ }
+
+ .progress-bar-small .progress,
+ .progress-bar-small .progress-bar {
+ height: 8px;
+ line-height: 8px;
+ font-size: 0px;
+ }
+
+ .progress-bar-small .progress-bar > * {
+ // Specifically to hide custom labels.
+ display: none;
+ }
+
+ .progress-bar-large .progress,
+ .progress-bar-large .progress-bar {
+ height: 24px;
+ line-height: 24px;
+ font-size: $font-size-default;
+ }
+
+ .widget-progress-bar-clickable:hover {
+ cursor: pointer;
+ }
+
+ .widget-progress-bar.progress-bar-primary .progress-bar {
+ background-color: $brand-primary;
+ }
+
+ .widget-progress-bar.progress-bar-success .progress-bar {
+ background-color: $brand-success;
+ }
+
+ .widget-progress-bar.progress-bar-warning .progress-bar {
+ background-color: $brand-warning;
+ }
+
+ .widget-progress-bar.progress-bar-danger .progress-bar {
+ background-color: $brand-danger;
+ }
+
+ .widget-progress-bar-alert.widget-progress-bar-text-contrast .progress-bar {
+ color: $color-danger-darker;
+ }
+
+ .widget-progress-bar-text-contrast .progress-bar {
+ color: $font-color-default;
+ }
+
+ .widget-progress-bar-negative {
+ float: right;
+ display: block;
+ }
+
+ .widget-progress-bar > .alert {
+ margin-top: 24px;
+ }
+}
diff --git a/themesource/atlas_core/web/core/helpers/_progress-circle.scss b/themesource/atlas_core/web/core/helpers/_progress-circle.scss
new file mode 100644
index 00000000..860bad2a
--- /dev/null
+++ b/themesource/atlas_core/web/core/helpers/_progress-circle.scss
@@ -0,0 +1,115 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin progress-circle-helpers() {
+ /* ==========================================================================
+ Progress Circle
+
+ //== Design Properties
+ //## Helper classes to change the look and feel of the component
+ ========================================================================== */
+
+ //== Progress circle and label colors
+ .widget-progress-circle-primary {
+ .widget-progress-circle-path {
+ stroke: $brand-primary;
+ }
+
+ .progressbar-text {
+ color: $brand-primary !important;
+ }
+ }
+
+ .widget-progress-circle-success {
+ .widget-progress-circle-path {
+ stroke: $brand-success;
+ }
+
+ .progressbar-text {
+ color: $brand-success !important;
+ }
+ }
+
+ .widget-progress-circle-warning {
+ .widget-progress-circle-path {
+ stroke: $brand-warning;
+ }
+
+ .progressbar-text {
+ color: $brand-warning !important;
+ }
+ }
+
+ .widget-progress-circle-danger {
+ .widget-progress-circle-path {
+ stroke: $brand-danger;
+ }
+
+ .progressbar-text {
+ color: $brand-danger !important;
+ }
+ }
+
+ //== Sizes
+ .widget-progress-circle-thickness-medium {
+ .widget-progress-circle-trail-path,
+ .widget-progress-circle-path {
+ stroke-width: 8px;
+ }
+ }
+
+ .widget-progress-circle-thickness-small {
+ .widget-progress-circle-trail-path,
+ .widget-progress-circle-path {
+ stroke-width: 4px;
+ }
+ }
+
+ .widget-progress-circle-thickness-large {
+ .widget-progress-circle-trail-path,
+ .widget-progress-circle-path {
+ stroke-width: 16px;
+ }
+ }
+
+ //== Progress label container
+ .progress-circle-label-container {
+ position: relative;
+ margin: 0;
+
+ .progressbar-text {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ padding: 0px;
+ margin: 0px;
+ transform: translate(-50%, -50%);
+ // Original default from the `progressbar.js` library
+ color: rgb(85, 85, 85);
+ }
+ }
+
+ .widget-progress-circle-clickable {
+ cursor: pointer;
+ }
+
+ @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
+ .widget-progress-circle > div {
+ height: 0;
+ padding: 0;
+ width: 100%;
+ padding-bottom: 100%;
+
+ & > svg {
+ top: 0;
+ left: 0;
+ height: 100%;
+ position: absolute;
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/helpers/_range-slider.scss b/themesource/atlas_core/web/core/helpers/_range-slider.scss
new file mode 100644
index 00000000..63bd758c
--- /dev/null
+++ b/themesource/atlas_core/web/core/helpers/_range-slider.scss
@@ -0,0 +1,33 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@import "slider-color-variant";
+
+@mixin range-slider-helpers() {
+ /* ==========================================================================
+ Range Slider
+
+ //== Design Properties
+ //## Helper classes to change the look and feel of the component
+ ========================================================================== */
+
+ .widget-range-slider-primary {
+ @include slider-color-variant($brand-primary);
+ }
+
+ .widget-range-slider-success {
+ @include slider-color-variant($brand-success);
+ }
+
+ .widget-range-slider-warning {
+ @include slider-color-variant($brand-warning);
+ }
+
+ .widget-range-slider-danger {
+ @include slider-color-variant($brand-danger);
+ }
+}
diff --git a/themesource/atlas_core/web/core/helpers/_rating.scss b/themesource/atlas_core/web/core/helpers/_rating.scss
new file mode 100644
index 00000000..f15d2d8e
--- /dev/null
+++ b/themesource/atlas_core/web/core/helpers/_rating.scss
@@ -0,0 +1,58 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin rating-helpers() {
+ /* ==========================================================================
+ Rating
+
+ //== Design Properties
+ //## Helper classes to change the look and feel of the component
+ ========================================================================== */
+
+ .widget-star-rating-full-primary {
+ color: $brand-primary;
+ }
+
+ .widget-star-rating-full-success {
+ color: $brand-success;
+ }
+
+ .widget-star-rating-full-info {
+ color: $brand-info;
+ }
+
+ .widget-star-rating-full-warning {
+ color: $brand-warning;
+ }
+
+ .widget-star-rating-full-danger {
+ color: $brand-danger;
+ }
+
+ .widget-star-rating-full-inverse {
+ color: $brand-inverse;
+ }
+
+ .widget-rating {
+ &.widget-rating-small {
+ .rating-icon {
+ font-size: 16px;
+ }
+ .rating-image {
+ height: 16px;
+ }
+ }
+ &.widget-rating-large {
+ .rating-icon {
+ font-size: 32px;
+ }
+ .rating-image {
+ height: 32px;
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/helpers/_simple-menu-bar.scss b/themesource/atlas_core/web/core/helpers/_simple-menu-bar.scss
new file mode 100644
index 00000000..90cd79fb
--- /dev/null
+++ b/themesource/atlas_core/web/core/helpers/_simple-menu-bar.scss
@@ -0,0 +1,45 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin simple-menu-bar-helpers() {
+ /* ==========================================================================
+ Navigation
+
+ //== Design Properties
+ //## Helper classes to change the look and feel of the component
+ ========================================================================== */
+ // Center text and icons
+ .bottom-nav-text-icons.mx-menubar {
+ ul.mx-menubar-list {
+ li.mx-menubar-item {
+ flex: 1;
+ a {
+ flex-direction: column;
+ padding: $spacing-small $spacing-small $spacing-small/2;
+ line-height: normal;
+ font-size: $font-size-small;
+ .glyphicon {
+ display: block;
+ margin: 0 0 $spacing-small/2 0;
+ font-size: $font-size-large;
+ }
+ img {
+ display: block;
+ height: $font-size-large;
+ margin: 0 0 $spacing-small/2 0;
+ }
+ }
+ }
+ }
+ }
+
+ .hide-icons.mx-menubar {
+ .glyphicon {
+ display: none;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/helpers/_slider-color-variant.scss b/themesource/atlas_core/web/core/helpers/_slider-color-variant.scss
new file mode 100644
index 00000000..ded60164
--- /dev/null
+++ b/themesource/atlas_core/web/core/helpers/_slider-color-variant.scss
@@ -0,0 +1,28 @@
+@mixin slider-color-variant($color) {
+ .rc-slider:not(.rc-slider-disabled) {
+ .rc-slider-track {
+ background-color: $color;
+ }
+
+ .rc-slider-handle:focus {
+ border-color: $color;
+ box-shadow: 0 0 0 5px lighten($color, 25%);
+ outline: none;
+ }
+
+ .rc-slider-handle-click-focused:focus {
+ border-color: lighten($color, 25%);
+ box-shadow: unset;
+ }
+
+ .rc-slider-dot-active,
+ .rc-slider-handle:hover {
+ border-color: $color;
+ }
+
+ .rc-slider-handle:active {
+ border-color: $color;
+ box-shadow: 0 0 5px $color;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/helpers/_slider.scss b/themesource/atlas_core/web/core/helpers/_slider.scss
new file mode 100644
index 00000000..cc259d2a
--- /dev/null
+++ b/themesource/atlas_core/web/core/helpers/_slider.scss
@@ -0,0 +1,32 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+@import "slider-color-variant";
+
+@mixin slider-helpers() {
+ /* ==========================================================================
+ Slider
+
+ //== Design Properties
+ //## Helper classes to change the look and feel of the component
+ ========================================================================== */
+
+ .widget-slider-primary {
+ @include slider-color-variant($brand-primary);
+ }
+
+ .widget-slider-success {
+ @include slider-color-variant($brand-success);
+ }
+
+ .widget-slider-warning {
+ @include slider-color-variant($brand-warning);
+ }
+
+ .widget-slider-danger {
+ @include slider-color-variant($brand-danger);
+ }
+}
diff --git a/themesource/atlas_core/web/core/helpers/_tab-container.scss b/themesource/atlas_core/web/core/helpers/_tab-container.scss
new file mode 100644
index 00000000..e4719d88
--- /dev/null
+++ b/themesource/atlas_core/web/core/helpers/_tab-container.scss
@@ -0,0 +1,202 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin tab-container-helpers() {
+ /* ==========================================================================
+ Tab container
+
+ //== Design Properties
+ //## Helper classes to change the look and feel of the component
+ ========================================================================== */
+ // Style as pills
+ .tab-pills.mx-tabcontainer {
+ & > .mx-tabcontainer-tabs {
+ border: 0;
+
+ & > li {
+ margin-bottom: $spacing-small;
+ }
+
+ & > li > a {
+ margin-right: $spacing-small;
+ color: $tabs-color;
+ border-radius: $border-radius-default;
+ background-color: $tabs-bg-pills;
+
+ &:hover,
+ &:focus {
+ background-color: $tabs-bg-hover;
+ }
+ }
+
+ & > li.active > a,
+ & > li.active > a:hover,
+ & > li.active > a:focus {
+ color: #ffffff;
+ border-color: $tabs-bg-active;
+ background-color: $tabs-bg-active;
+ }
+ }
+ }
+
+ // Style with lines
+ .tab-lined.mx-tabcontainer {
+ & > .mx-tabcontainer-tabs {
+ border-width: 1px;
+
+ li {
+ margin-right: $spacing-large;
+
+ & > a {
+ padding: $spacing-medium 0 ($spacing-medium - $tabs-lined-border-width) 0; // border is 3px
+ color: $tabs-color;
+ border: 0;
+ border-bottom: $tabs-lined-border-width solid transparent;
+ border-radius: 0;
+
+ &:hover,
+ &:focus {
+ color: $tabs-color;
+ border: 0;
+ border-color: transparent;
+ background: transparent;
+ }
+ }
+
+ &.active > a,
+ &.active > a:hover,
+ &.active > a:focus {
+ color: $tabs-lined-color-active;
+ border: 0;
+ border-bottom: $tabs-lined-border-width solid $tabs-lined-border-color;
+ background-color: transparent;
+ }
+ }
+ }
+ }
+
+ // Justified style
+ // Lets your tabs take 100% of the width
+ .tab-justified.mx-tabcontainer {
+ & > .mx-tabcontainer-tabs {
+ width: 100%;
+ border-bottom: 0;
+
+ & > li {
+ flex: 1;
+ float: none; // reset bootstrap
+ margin: 0;
+ @media (max-width: $screen-sm-max) {
+ display: block;
+ width: 100%;
+ }
+
+ & > a {
+ text-align: center;
+ }
+ }
+ }
+ }
+
+ // Bordered
+ .tab-bordered.mx-tabcontainer {
+ & > .mx-tabcontainer-tabs {
+ margin: 0;
+ }
+
+ & > .mx-tabcontainer-content {
+ padding: $spacing-small;
+ border-width: 0 1px 1px 1px;
+ border-style: solid;
+ border-color: $tabs-border-color;
+ background-color: transparent;
+ }
+ }
+
+ // Wizard
+ .tab-wizard.mx-tabcontainer {
+ & > .mx-tabcontainer-tabs {
+ position: relative;
+ display: flex;
+ justify-content: space-between;
+ border-style: none;
+
+ &::before {
+ position: absolute;
+ top: $spacing-medium;
+ display: block;
+ width: 100%;
+ height: 1px;
+ content: "";
+ background-color: $tabs-border-color;
+ }
+
+ & > li {
+ position: relative;
+ float: none; // reset bootstrap
+ width: 100%;
+ text-align: center;
+
+ & > a {
+ width: calc((#{$spacing-medium} * 2) + 1px);
+ height: calc((#{$spacing-medium} * 2) + 1px);
+ margin: auto;
+ padding: 0;
+ text-align: center;
+ color: $brand-primary;
+ border: 1px solid $tabs-border-color;
+ border-radius: 100%;
+ background-color: $bg-color;
+ font-size: $font-size-large;
+ font-weight: bold;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+
+ &.active {
+ & > a,
+ & > a:hover,
+ & > a:focus {
+ color: #ffffff;
+ border-color: $tabs-bg-active;
+ background-color: $tabs-bg-active;
+ }
+ }
+ }
+ }
+ }
+
+ //add tabcontainer flex classes
+
+ .tab-center.mx-tabcontainer {
+ & > .mx-tabcontainer-tabs {
+ display: flex;
+ align-items: center;
+ flex-flow: wrap;
+ justify-content: center;
+ }
+ }
+
+ .tab-left.mx-tabcontainer {
+ & > .mx-tabcontainer-tabs {
+ display: flex;
+ align-items: center;
+ flex-flow: wrap;
+ justify-content: flex-start;
+ }
+ }
+
+ .tab-right.mx-tabcontainer {
+ & > .mx-tabcontainer-tabs {
+ display: flex;
+ align-items: center;
+ flex-flow: wrap;
+ justify-content: flex-end;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/helpers/_table.scss b/themesource/atlas_core/web/core/helpers/_table.scss
new file mode 100644
index 00000000..ce575a45
--- /dev/null
+++ b/themesource/atlas_core/web/core/helpers/_table.scss
@@ -0,0 +1,177 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin table-helpers() {
+ /* ==========================================================================
+ Table
+
+ //== Design Properties
+ //## Helper classes to change the look and feel of the component
+ ========================================================================== */
+ // Lined
+ table.table-lined.mx-table {
+ > tbody {
+ // Table row
+ > tr {
+ // Table header
+ // Table data
+ > td {
+ border-width: 1px 0;
+ border-style: solid;
+ border-color: $grid-border-color;
+ }
+ }
+ }
+ }
+
+ // Bordered
+ table.table-bordered.mx-table {
+ > tbody {
+ // Table row
+ > tr {
+ // Table header
+ // Table data
+ > th,
+ > td {
+ border-width: 1px;
+ border-style: solid;
+ border-color: $grid-border-color;
+ }
+ }
+ }
+ }
+
+ // Makes table compact
+ table.table-compact.mx-table {
+ > tbody {
+ // Table row
+ > tr {
+ // Table header
+ // Table data
+ > th,
+ > td {
+ padding-top: 2px;
+ padding-bottom: 2px;
+ }
+ }
+ }
+ }
+
+ // Tables Vertical
+ // Will remove unwanted paddings
+ table.table-vertical.mx-table {
+ > tbody {
+ // Table row
+ > tr {
+ // Table header
+ > th {
+ padding-bottom: 0;
+
+ > label {
+ padding: 0;
+ }
+
+ > div > label {
+ padding: 0;
+ }
+ }
+ }
+ }
+ }
+
+ // Align content in middle
+ table.table-align-vertical-middle.mx-table {
+ > tbody {
+ // Table row
+ > tr {
+ // Table header
+ // Table data
+ > th,
+ > td {
+ vertical-align: middle;
+ }
+ }
+ }
+ }
+
+ // Compact labels
+ table.table-label-compact.mx-table {
+ > tbody {
+ // Table row
+ > tr {
+ // Table header
+ // Table data
+ > th,
+ > td {
+ > label {
+ margin: 0;
+ padding: 0;
+ }
+
+ > div > label,
+ .mx-referenceselector-input-wrapper label {
+ margin: 0;
+ padding: 0;
+ }
+ }
+ }
+ }
+ }
+
+ $height-row-s: 55px;
+ $height-row-m: 70px;
+ $height-row-l: 120px;
+ // Small rows
+ table.table-row-s.mx-table {
+ > tbody {
+ // Table row
+ > tr {
+ // Table header
+ // Table data
+ > th,
+ > td {
+ height: $height-row-s;
+ }
+ }
+ }
+ }
+
+ // Medium rows
+ table.table-row-m.mx-table {
+ > tbody {
+ // Table row
+ > tr {
+ // Table header
+ // Table data
+ > th,
+ > td {
+ height: $height-row-m;
+ }
+ }
+ }
+ }
+
+ // Large rows
+ table.table-row-l.mx-table {
+ > tbody {
+ // Table row
+ > tr {
+ // Table header
+ // Table data
+ > th,
+ > td {
+ height: $height-row-l;
+ }
+ }
+ }
+ }
+
+ // Makes the columns fixed
+ table.table-fixed {
+ table-layout: fixed;
+ }
+}
diff --git a/themesource/atlas_core/web/core/helpers/_template-grid.scss b/themesource/atlas_core/web/core/helpers/_template-grid.scss
new file mode 100644
index 00000000..71db23ec
--- /dev/null
+++ b/themesource/atlas_core/web/core/helpers/_template-grid.scss
@@ -0,0 +1,309 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin template-grid-helpers() {
+ /* ==========================================================================
+ Template grid
+
+ //== Design Properties
+ //## Helper classes to change the look and feel of the component
+ ========================================================================== */
+ // Make sure your content looks selectable
+ .templategrid-selectable.mx-templategrid {
+ .mx-templategrid-item {
+ cursor: pointer;
+ }
+ }
+
+ // Lined
+ .templategrid-lined.mx-templategrid {
+ .mx-grid-content {
+ border-top-width: 2px;
+ border-top-style: solid;
+ border-top-color: $grid-border-color;
+ }
+
+ .mx-templategrid-item {
+ border-top: 1px solid $grid-border-color;
+ border-right: none;
+ border-bottom: 1px solid $grid-border-color;
+ border-left: none;
+ }
+ }
+
+ // Striped
+ .templategrid-striped.mx-templategrid {
+ .mx-templategrid-row:nth-child(odd) .mx-templategrid-item {
+ background-color: #f9f9f9;
+ }
+ }
+
+ // Stylingless
+ .templategrid-stylingless.mx-templategrid {
+ .mx-templategrid-item {
+ padding: 0;
+ cursor: default;
+ border: 0;
+ background-color: transparent;
+
+ &:hover {
+ background-color: transparent;
+ }
+
+ &.selected {
+ background-color: transparent !important;
+
+ &:hover {
+ background-color: transparent !important;
+ }
+ }
+ }
+ }
+
+ // Transparent items
+ .templategrid-transparent.mx-templategrid {
+ .mx-templategrid-item {
+ border: 0;
+ background-color: transparent;
+ }
+ }
+
+ // Hover
+ .templategrid-hover.mx-templategrid {
+ .mx-templategrid-item {
+ &:hover {
+ background-color: $grid-bg-hover !important;
+ }
+
+ &.selected {
+ background-color: $grid-bg-selected !important;
+
+ &:hover {
+ background-color: $grid-bg-selected-hover !important;
+ }
+ }
+ }
+ }
+
+ // Templategrid Row Sizes
+ .templategrid-lg.mx-templategrid {
+ .mx-templategrid-item {
+ padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2)
+ ($grid-padding-left * 2);
+ }
+ }
+
+ .templategrid-sm.mx-templategrid {
+ .mx-templategrid-item {
+ padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2)
+ ($grid-padding-left / 2);
+ }
+ }
+
+ // Templategrid Layoutgrid styles
+ .mx-templategrid[class*="tg-col"] {
+ overflow: hidden; // For if it is not in a layout, to prevent scrollbars
+ .mx-templategrid-content-wrapper {
+ display: block;
+ }
+
+ .mx-templategrid-row {
+ display: block;
+ margin-right: -1 * $gutter-size;
+ margin-left: -1 * $gutter-size;
+
+ &::before,
+ &::after {
+ // clearfix
+ display: table;
+ clear: both;
+ content: " ";
+ }
+ }
+
+ .mx-templategrid-item {
+ // bootstrap col
+ position: relative;
+ display: block;
+ float: left;
+ min-height: 1px;
+ padding-right: $gutter-size;
+ padding-left: $gutter-size;
+ border: 0;
+ @media (max-width: 992px) {
+ width: 100% !important;
+ }
+
+ .mx-dataview {
+ overflow: hidden;
+ }
+ }
+
+ &.tg-col-xs-12 .mx-templategrid-item {
+ width: 100% !important;
+ }
+
+ &.tg-col-xs-11 .mx-templategrid-item {
+ width: 91.66666667% !important;
+ }
+
+ &.tg-col-xs-10 .mx-templategrid-item {
+ width: 83.33333333% !important;
+ }
+
+ &.tg-col-xs-9 .mx-templategrid-item {
+ width: 75% !important;
+ }
+
+ &.tg-col-xs-8 .mx-templategrid-item {
+ width: 66.66666667% !important;
+ }
+
+ &.tg-col-xs-7 .mx-templategrid-item {
+ width: 58.33333333% !important;
+ }
+
+ &.tg-col-xs-6 .mx-templategrid-item {
+ width: 50% !important;
+ }
+
+ &.tg-col-xs-5 .mx-templategrid-item {
+ width: 41.66666667% !important;
+ }
+
+ &.tg-col-xs-4 .mx-templategrid-item {
+ width: 33.33333333% !important;
+ }
+
+ &.tg-col-xs-3 .mx-templategrid-item {
+ width: 25% !important;
+ }
+
+ &.tg-col-xs-2 .mx-templategrid-item {
+ width: 16.66666667% !important;
+ }
+
+ &.tg-col-xs-1 .mx-templategrid-item {
+ width: 8.33333333% !important;
+ }
+
+ @media (min-width: 768px) {
+ &.tg-col-sm-12 .mx-templategrid-item {
+ width: 100% !important;
+ }
+ &.tg-col-sm-11 .mx-templategrid-item {
+ width: 91.66666667% !important;
+ }
+ &.tg-col-sm-10 .mx-templategrid-item {
+ width: 83.33333333% !important;
+ }
+ &.tg-col-sm-9 .mx-templategrid-item {
+ width: 75% !important;
+ }
+ &.tg-col-sm-8 .mx-templategrid-item {
+ width: 66.66666667% !important;
+ }
+ &.tg-col-sm-7 .mx-templategrid-item {
+ width: 58.33333333% !important;
+ }
+ &.tg-col-sm-6 .mx-templategrid-item {
+ width: 50% !important;
+ }
+ &.tg-col-sm-5 .mx-templategrid-item {
+ width: 41.66666667% !important;
+ }
+ &.tg-col-sm-4 .mx-templategrid-item {
+ width: 33.33333333% !important;
+ }
+ &.tg-col-sm-3 .mx-templategrid-item {
+ width: 25% !important;
+ }
+ &.tg-col-sm-2 .mx-templategrid-item {
+ width: 16.66666667% !important;
+ }
+ &.tg-col-sm-1 .mx-templategrid-item {
+ width: 8.33333333% !important;
+ }
+ }
+ @media (min-width: 992px) {
+ &.tg-col-md-12 .mx-templategrid-item {
+ width: 100% !important;
+ }
+ &.tg-col-md-11 .mx-templategrid-item {
+ width: 91.66666667% !important;
+ }
+ &.tg-col-md-10 .mx-templategrid-item {
+ width: 83.33333333% !important;
+ }
+ &.tg-col-md-9 .mx-templategrid-item {
+ width: 75% !important;
+ }
+ &.tg-col-md-8 .mx-templategrid-item {
+ width: 66.66666667% !important;
+ }
+ &.tg-col-md-7 .mx-templategrid-item {
+ width: 58.33333333% !important;
+ }
+ &.tg-col-md-6 .mx-templategrid-item {
+ width: 50% !important;
+ }
+ &.tg-col-md-5 .mx-templategrid-item {
+ width: 41.66666667% !important;
+ }
+ &.tg-col-md-4 .mx-templategrid-item {
+ width: 33.33333333% !important;
+ }
+ &.tg-col-md-3 .mx-templategrid-item {
+ width: 25% !important;
+ }
+ &.tg-col-md-2 .mx-templategrid-item {
+ width: 16.66666667% !important;
+ }
+ &.tg-col-md-1 .mx-templategrid-item {
+ width: 8.33333333% !important;
+ }
+ }
+ @media (min-width: 1200px) {
+ &.tg-col-lg-12 .mx-templategrid-item {
+ width: 100% !important;
+ }
+ &.tg-col-lg-11 .mx-templategrid-item {
+ width: 91.66666667% !important;
+ }
+ &.tg-col-lg-10 .mx-templategrid-item {
+ width: 83.33333333% !important;
+ }
+ &.tg-col-lg-9 .mx-templategrid-item {
+ width: 75% !important;
+ }
+ &.tg-col-lg-8 .mx-templategrid-item {
+ width: 66.66666667% !important;
+ }
+ &.tg-col-lg-7 .mx-templategrid-item {
+ width: 58.33333333% !important;
+ }
+ &.tg-col-lg-6 .mx-templategrid-item {
+ width: 50% !important;
+ }
+ &.tg-col-lg-5 .mx-templategrid-item {
+ width: 41.66666667% !important;
+ }
+ &.tg-col-lg-4 .mx-templategrid-item {
+ width: 33.33333333% !important;
+ }
+ &.tg-col-lg-3 .mx-templategrid-item {
+ width: 25% !important;
+ }
+ &.tg-col-lg-2 .mx-templategrid-item {
+ width: 16.66666667% !important;
+ }
+ &.tg-col-lg-1 .mx-templategrid-item {
+ width: 8.33333333% !important;
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/helpers/_typography.scss b/themesource/atlas_core/web/core/helpers/_typography.scss
new file mode 100644
index 00000000..f8c9f20c
--- /dev/null
+++ b/themesource/atlas_core/web/core/helpers/_typography.scss
@@ -0,0 +1,137 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin typography-helpers() {
+ /* ==========================================================================
+ Typography
+
+ //== Design Properties
+ //## Helper classes to change the look and feel of the component
+ ========================================================================== */
+ // Text size
+ .text-small {
+ font-size: $font-size-small !important;
+ }
+
+ .text-large {
+ font-size: $font-size-large !important;
+ }
+
+ // Text Weights
+ .text-light,
+ .text-light > *,
+ .text-light label {
+ font-weight: $font-weight-light !important;
+ }
+
+ .text-normal,
+ .text-normal > *,
+ .text-normal label {
+ font-weight: $font-weight-normal !important;
+ }
+
+ .text-semibold,
+ .text-semibold > *,
+ .text-semibold label {
+ font-weight: $font-weight-semibold !important;
+ }
+
+ .text-bold,
+ .text-bold > *,
+ .text-bold label {
+ font-weight: $font-weight-bold !important;
+ }
+
+ // Color variations
+ .text-secondary,
+ .text-secondary:hover,
+ .text-default,
+ .text-default:hover {
+ color: $font-color-default !important;
+ }
+
+ .text-primary,
+ .text-primary:hover {
+ color: $brand-primary !important;
+ }
+
+ .text-info,
+ .text-info:hover {
+ color: $brand-info !important;
+ }
+
+ .text-success,
+ .text-success:hover {
+ color: $brand-success !important;
+ }
+
+ .text-warning,
+ .text-warning:hover {
+ color: $brand-warning !important;
+ }
+
+ .text-danger,
+ .text-danger:hover {
+ color: $brand-danger !important;
+ }
+
+ .text-header {
+ color: $font-color-header !important;
+ }
+
+ .text-detail {
+ color: $font-color-detail !important;
+ }
+
+ .text-white {
+ color: #ffffff;
+ }
+
+ // Alignment options
+ .text-left {
+ text-align: left !important;
+ }
+ .text-center {
+ text-align: center !important;
+ }
+ .text-right {
+ text-align: right !important;
+ }
+ .text-justify {
+ text-align: justify !important;
+ }
+
+ // Transform options
+ .text-lowercase {
+ text-transform: lowercase !important;
+ }
+ .text-uppercase {
+ text-transform: uppercase !important;
+ }
+ .text-capitalize {
+ text-transform: capitalize !important;
+ }
+
+ // Wrap options
+ .text-break {
+ word-break: break-all !important;
+ word-break: break-word !important;
+ -webkit-hyphens: auto !important;
+ hyphens: auto !important;
+ }
+
+ .text-nowrap {
+ white-space: nowrap !important;
+ }
+
+ .text-nowrap {
+ overflow: hidden !important;
+ max-width: 100% !important;
+ white-space: nowrap !important;
+ text-overflow: ellipsis !important;
+ }
+}
diff --git a/themesource/atlas_core/web/core/manifest.json b/themesource/atlas_core/web/core/manifest.json
new file mode 100644
index 00000000..b6b47f56
--- /dev/null
+++ b/themesource/atlas_core/web/core/manifest.json
@@ -0,0 +1,4 @@
+{
+ "name": "Atlas-UI-Framework",
+ "version": "3.0.0"
+}
diff --git a/themesource/atlas_core/web/core/widgets/_accordion.scss b/themesource/atlas_core/web/core/widgets/_accordion.scss
new file mode 100644
index 00000000..79415592
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_accordion.scss
@@ -0,0 +1,125 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin accordion() {
+ /* ==========================================================================
+ Accordion
+
+ Default Mendix accordion widget styles.
+ ========================================================================== */
+
+ .widget-accordion {
+ .widget-accordion-group {
+ @include get-accordion-group-styles(
+ $accordion-header-default-bg,
+ $accordion-header-default-bg-hover,
+ $accordion-header-default-color,
+ $brand-primary,
+ $accordion-default-border-color
+ );
+ }
+
+ &.widget-accordion-preview {
+ .widget-accordion-group {
+ @include get-accordion-preview-group-styles($accordion-header-default-color);
+ }
+ }
+ }
+}
+
+@mixin get-accordion-group-styles($background-color, $background-color-hover, $color, $color-hover, $border-color) {
+ border-color: $border-color;
+ background-color: $bg-color-secondary;
+
+ &:first-child {
+ border-top-left-radius: $border-radius-default;
+ border-top-right-radius: $border-radius-default;
+
+ > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ border-top-left-radius: calc(#{$border-radius-default} - 1px);
+ border-top-right-radius: calc(#{$border-radius-default} - 1px);
+ }
+ }
+
+ &:last-child {
+ border-bottom-left-radius: $border-radius-default;
+ border-bottom-right-radius: $border-radius-default;
+ }
+
+ &.widget-accordion-group-collapsed:last-child,
+ &.widget-accordion-group-collapsing:last-child {
+ > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ border-bottom-left-radius: calc(#{$border-radius-default} - 1px);
+ border-bottom-right-radius: calc(#{$border-radius-default} - 1px);
+ }
+ }
+
+ &.widget-accordion-group-collapsing:last-child {
+ > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ transition: border-radius 5ms ease 200ms;
+ }
+ }
+
+ &.widget-accordion-group-expanding:last-child {
+ > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ transition: border-radius 5ms ease 80ms;
+ }
+ }
+
+ > .widget-accordion-group-header > .widget-accordion-group-header-button {
+ cursor: auto;
+ background-color: $background-color;
+ padding: $spacing-medium;
+
+ > :is(h1, h2, h3, h4, h5, h6) {
+ font-size: $font-size-h5;
+ font-weight: $font-weight-header;
+ }
+
+ > :is(h1, h2, h3, h4, h5, h6, p, span) {
+ color: $color;
+ }
+
+ .widget-accordion-group-header-button-icon {
+ fill: $color;
+ }
+
+ &.widget-accordion-group-header-button-clickable {
+ &:hover,
+ &:focus,
+ &:active {
+ background-color: $background-color-hover;
+
+ > :is(h1, h2, h3, h4, h5, h6, p, span) {
+ color: $color-hover;
+ }
+
+ .widget-accordion-group-header-button-icon {
+ fill: $color-hover;
+ }
+ }
+ }
+ }
+
+ > .widget-accordion-group-content-wrapper > .widget-accordion-group-content {
+ border-color: $border-color;
+ padding: $spacing-small $spacing-medium $spacing-large $spacing-medium;
+ }
+}
+
+@mixin get-accordion-preview-group-styles($color) {
+ .widget-accordion-group-header-button {
+ > div > :is(h1, h2, h3, h4, h5, h6) {
+ font-size: $font-size-h5;
+ font-weight: $font-weight-header;
+ }
+
+ > div > :is(h1, h2, h3, h4, h5, h6, p, span) {
+ color: $color;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_badge-button.scss b/themesource/atlas_core/web/core/widgets/_badge-button.scss
new file mode 100644
index 00000000..80339487
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_badge-button.scss
@@ -0,0 +1,36 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin badge-button() {
+ /* ==========================================================================
+ Badge button
+
+ Widget styles
+ ========================================================================== */
+ .widget-badge-button {
+ display: inline-block;
+
+ .widget-badge-button-text {
+ white-space: nowrap;
+ padding-right: 5px;
+ }
+
+ .badge {
+ top: unset;
+ display: inline-block;
+ margin: 0;
+ padding: $spacing-smaller $spacing-small;
+ text-align: center;
+ vertical-align: baseline;
+ white-space: nowrap;
+ background-color: $btn-primary-color;
+ color: $btn-primary-bg;
+ font-size: 100%;
+ line-height: 1;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_badge.scss b/themesource/atlas_core/web/core/widgets/_badge.scss
new file mode 100644
index 00000000..0e1c997a
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_badge.scss
@@ -0,0 +1,58 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin badge() {
+ /* ==========================================================================
+ Badge
+
+ Override of default Bootstrap badge style
+ ========================================================================== */
+
+ .badge {
+ display: inline-block;
+ margin: 0;
+ padding: $spacing-smaller $spacing-small;
+ text-align: center;
+ vertical-align: baseline;
+ white-space: nowrap;
+ color: #ffffff;
+ font-size: 100%;
+ line-height: 1;
+
+ .form-control-static {
+ font-weight: $font-weight-normal;
+ all: unset;
+ }
+ }
+
+ /* ==========================================================================
+ Badge-web
+
+ Widget styles
+ ========================================================================== */
+
+ .widget-badge {
+ color: $label-primary-color;
+ background-color: $label-primary-bg;
+ }
+
+ .widget-badge-clickable {
+ cursor: pointer;
+ }
+
+ .widget-badge.badge:empty {
+ display: initial;
+ /* Fix padding to stay round */
+ padding: $spacing-smaller calc(#{$spacing-small} + 2px);
+ }
+
+ .widget-badge.label:empty {
+ display: initial;
+ /* Fix padding to stay square */
+ padding: $spacing-smaller calc(#{$spacing-small} + 2px);
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_barcode-scanner.scss b/themesource/atlas_core/web/core/widgets/_barcode-scanner.scss
new file mode 100644
index 00000000..4c0a5c5b
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_barcode-scanner.scss
@@ -0,0 +1,63 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin barcode-scanner() {
+ /* ==========================================================================
+ Barcode-scanner
+
+ Override of default Bootstrap barcode-scanner style
+ ========================================================================== */
+
+ .mx-barcode-scanner {
+ background: #000000;
+ z-index: 110;
+
+ .close-button {
+ color: white;
+ .glyphicon {
+ font-size: 16px;
+ }
+ }
+
+ .video-canvas {
+ .canvas-background {
+ background-color: rgba(0, 0, 0, 0.7);
+ }
+
+ .canvas-middle {
+ .canvas-middle-middle {
+ $corner-offset: 13px;
+ .corner {
+ $corner-border: 5px solid #ffffff;
+ border-left: $corner-border;
+ border-top: $corner-border;
+
+ &.corner-top-left {
+ top: -$corner-offset;
+ left: -$corner-offset;
+ }
+ &.corner-top-right {
+ top: -$corner-offset;
+ right: -$corner-offset;
+ transform: rotate(90deg);
+ }
+ &.corner-bottom-right {
+ bottom: -$corner-offset;
+ right: -$corner-offset;
+ transform: rotate(180deg);
+ }
+ &.corner-bottom-left {
+ bottom: -$corner-offset;
+ left: -$corner-offset;
+ transform: rotate(270deg);
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_button.scss b/themesource/atlas_core/web/core/widgets/_button.scss
new file mode 100644
index 00000000..eecfac4a
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_button.scss
@@ -0,0 +1,98 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin button() {
+ /* ==========================================================================
+ Button
+
+ Default Bootstrap and Mendix button
+ ========================================================================== */
+
+ .btn,
+ .mx-button {
+ display: inline-block;
+ margin-bottom: 0;
+ padding: 0.6em 1em;
+ cursor: pointer;
+ -webkit-user-select: none;
+ user-select: none;
+ transition: all 0.2s ease-in-out;
+ text-align: center;
+ vertical-align: middle;
+ white-space: nowrap;
+ color: $btn-default-color;
+ border: 1px solid $btn-default-border-color;
+ border-radius: $btn-border-radius;
+ background-color: $btn-default-bg;
+ background-image: none;
+ box-shadow: none;
+ text-shadow: none;
+ font-size: $btn-font-size;
+ line-height: $line-height-base;
+
+ &:hover,
+ &:focus,
+ &:active,
+ &:active:focus {
+ outline: none;
+ box-shadow: none;
+ }
+
+ &[aria-disabled] {
+ cursor: not-allowed;
+ pointer-events: none;
+ opacity: 0.65;
+ }
+
+ @if $btn-bordered != false {
+ @extend .btn-bordered;
+ }
+ }
+
+ // Mendix button link
+ .mx-link {
+ padding: 0;
+ color: $link-color;
+
+ &[aria-disabled="true"] {
+ cursor: not-allowed;
+ pointer-events: none;
+ opacity: 0.65;
+ }
+ }
+
+ .link-back {
+ color: $font-color-detail;
+
+ .glyphicon {
+ top: 2px;
+ }
+ }
+
+ // Images and icons in buttons
+ .btn,
+ .mx-button,
+ .mx-link {
+ img {
+ //height: auto; // MXUI override who set the height on 16px default
+ height: calc(#{$font-size-default} + 4px);
+ margin-right: 4px;
+ vertical-align: text-top;
+ }
+ }
+
+ //== Phone specific
+ //-------------------------------------------------------------------------------------------------------------------//
+ .profile-phone {
+ .btn,
+ .mx-link {
+ &:active {
+ transform: translateY(1px);
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_check-box.scss b/themesource/atlas_core/web/core/widgets/_check-box.scss
new file mode 100644
index 00000000..3a67fda9
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_check-box.scss
@@ -0,0 +1,99 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin check-box() {
+ /* ==========================================================================
+ Check box
+
+ Default Mendix check box widget
+ ========================================================================== */
+
+ .mx-checkbox.label-after {
+ flex-wrap: wrap;
+
+ .control-label {
+ display: flex;
+ align-items: center;
+ padding: 0;
+ }
+ }
+
+ input[type="checkbox"] {
+ position: relative !important; //Remove after mxui merge
+ width: 16px;
+ height: 16px;
+ margin: 0 !important; // Remove after mxui merge
+ cursor: pointer;
+ -webkit-user-select: none;
+ user-select: none;
+ appearance: none;
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ transform: translateZ(0);
+
+ &:before,
+ &:after {
+ position: absolute;
+ display: block;
+ transition: all 0.3s ease;
+ }
+
+ &:before {
+ // Checkbox
+ width: 100%;
+ height: 100%;
+ content: "";
+ border: 1px solid $form-input-border-color;
+ border-radius: $form-input-border-radius;
+ background-color: transparent;
+ }
+
+ &:after {
+ // Checkmark
+ width: 8px;
+ height: 4px;
+ margin: 5px 4px;
+ transform: rotate(-45deg);
+ pointer-events: none;
+ border: 2px solid #ffffff;
+ border-top: 0;
+ border-right: 0;
+ }
+
+ &:not(:disabled):not(:checked):hover:after {
+ content: "";
+ border-color: $form-input-bg-hover; // color of checkmark on hover
+ }
+
+ &:checked:before {
+ border-color: $form-input-border-focus-color;
+ background-color: $form-input-border-focus-color;
+ }
+
+ &:checked:after {
+ content: "";
+ }
+
+ &:disabled:before {
+ background-color: $form-input-bg-disabled;
+ }
+
+ &:checked:disabled:before {
+ border-color: transparent;
+ background-color: rgba($form-input-border-focus-color, 0.4);
+ }
+
+ &:disabled:after,
+ &:checked:disabled:after {
+ border-color: $form-input-bg-disabled;
+ }
+
+ & + .control-label {
+ margin-left: $form-label-gutter;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_data-grid.scss b/themesource/atlas_core/web/core/widgets/_data-grid.scss
new file mode 100644
index 00000000..b6b08e66
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_data-grid.scss
@@ -0,0 +1,86 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin data-grid() {
+ /* ==========================================================================
+ Data grid default
+
+ Default Mendix data grid widget. The data grid shows a list of objects in a grid
+ ========================================================================== */
+
+ .mx-datagrid {
+ table {
+ border-width: 0;
+ background-color: transparent;
+ /* Table header */
+ th {
+ border-style: solid;
+ border-color: $grid-border-color;
+ border-top-width: 0;
+ border-right: 0;
+ border-bottom-width: 1px;
+ border-left: 0;
+ background-color: $grid-bg-header;
+ padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;
+ vertical-align: middle;
+
+ .mx-datagrid-head-caption {
+ white-space: normal;
+ }
+ }
+
+ /* Table Body */
+ tbody tr {
+ td {
+ @include transition();
+ padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;
+ vertical-align: middle;
+ border-width: 0;
+ border-color: $grid-border-color;
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ background-color: $grid-bg;
+
+ &:focus {
+ outline: none;
+ }
+
+ /* Text without spaces */
+ .mx-datagrid-data-wrapper {
+ text-overflow: ellipsis;
+ }
+ }
+
+ &.selected td,
+ &.selected:hover td {
+ color: $grid-selected-color;
+ background-color: $grid-bg-selected !important;
+ }
+ }
+
+ /* Table Footer */
+ tfoot {
+ > tr > th {
+ padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;
+ border-width: 0;
+ background-color: $grid-footer-bg;
+ }
+
+ > tr > td {
+ padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;
+ border-width: 0;
+ background-color: $grid-bg;
+ font-weight: $font-weight-bold;
+ }
+ }
+
+ & *:focus {
+ outline: 0;
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_data-view.scss b/themesource/atlas_core/web/core/widgets/_data-view.scss
new file mode 100644
index 00000000..7404814e
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_data-view.scss
@@ -0,0 +1,49 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin data-view() {
+ /* ==========================================================================
+ Data view
+
+ Default Mendix data view widget. The data view is used for showing the contents of exactly one object
+ ========================================================================== */
+
+ .mx-dataview {
+ /* Dataview-content gives problems for nexted layout grid containers */
+ > .mx-dataview-content > .mx-container-nested {
+ > .row {
+ margin-right: 0;
+ margin-left: 0;
+ }
+ }
+
+ /* Dataview empty message */
+ .mx-dataview-message {
+ color: $dataview-emptymessage-color;
+ background: $dataview-emptymessage-bg;
+ }
+ }
+
+ .mx-dataview-controls {
+ margin-top: $spacing-medium;
+ padding: $spacing-medium 0 0;
+ border-top: 1px solid $dataview-controls-border-color;
+ border-radius: 0;
+ background-color: $dataview-controls-bg;
+ /* Buttons */
+ .mx-button {
+ margin-right: $spacing-small;
+ margin-bottom: 0;
+
+ &:last-child {
+ margin-right: 0;
+ }
+ }
+
+ background-color: inherit;
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_date-picker.scss b/themesource/atlas_core/web/core/widgets/_date-picker.scss
new file mode 100644
index 00000000..8af59645
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_date-picker.scss
@@ -0,0 +1,133 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin date-picker() {
+ /* ==========================================================================
+ Date picker
+
+ Default Mendix date picker widget
+ ========================================================================== */
+
+ .mx-calendar {
+ /* (must be higher than popup z-index) */
+ z-index: 10010 !important;
+ padding: 8px;
+ font-size: 12px;
+ background: $bg-color;
+ border-radius: $border-radius-default;
+ border: 1px solid $border-color-default;
+ box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.06);
+
+ .mx-calendar-month-header {
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ margin: 0 3px 10px 3px;
+ }
+
+ .mx-calendar-month-next,
+ .mx-calendar-month-previous,
+ .mx-calendar-month-dropdown {
+ border: 0;
+ cursor: pointer;
+ background: transparent;
+ }
+
+ .mx-calendar-month-next,
+ .mx-calendar-month-previous {
+ &:hover {
+ color: $brand-primary;
+ }
+ }
+
+ .mx-calendar-month-dropdown {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+
+ .mx-calendar-month-current:first-child {
+ margin-right: 10px;
+ }
+ }
+
+ th {
+ color: $brand-primary;
+ }
+
+ th,
+ td {
+ width: 35px;
+ height: 35px;
+ text-align: center;
+ }
+
+ td {
+ color: $font-color-default;
+
+ &:hover {
+ cursor: pointer;
+ border-radius: 50%;
+ color: $brand-primary;
+ background-color: $brand-default;
+ }
+ }
+
+ .mx-calendar-day-month-next,
+ .mx-calendar-day-month-previous {
+ color: lighten($font-color-default, 45%);
+ }
+
+ .mx-calendar-day-selected,
+ .mx-calendar-day-selected:hover {
+ color: #fff;
+ border-radius: 50%;
+ background: $brand-primary;
+ }
+
+ //
+
+ .mx-calendar-year-switcher {
+ text-align: center;
+ margin-top: 10px;
+ color: lighten($brand-primary, 30%);
+
+ span.mx-calendar-year-selected {
+ color: $brand-primary;
+ margin-left: 10px;
+ margin-right: 10px;
+ }
+
+ span:hover {
+ cursor: pointer;
+ text-decoration: underline;
+ background-color: transparent;
+ }
+ }
+ }
+
+ .mx-calendar-month-dropdown-options {
+ /* (must be higher than popup z-index) */
+ z-index: 10020 !important;
+ position: absolute;
+ top: 25px;
+ padding: 2px 10px;
+ border-radius: $border-radius-default;
+ background-color: $bg-color;
+
+ div {
+ cursor: pointer;
+ font-size: 12px;
+ padding: 2px 0;
+
+ &:hover,
+ &:focus {
+ color: $brand-primary;
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_glyphicon.scss b/themesource/atlas_core/web/core/widgets/_glyphicon.scss
new file mode 100644
index 00000000..37ec8077
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_glyphicon.scss
@@ -0,0 +1,29 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin glyphicon() {
+ /* ==========================================================================
+ Glyphicon
+
+ Default Mendix glyphicon
+ ========================================================================== */
+
+ .mx-glyphicon {
+ &:before {
+ display: inline-block;
+ margin-top: -0.2em;
+ margin-right: 0.4555555em;
+ vertical-align: middle;
+ font-family: "Glyphicons Halflings";
+ font-weight: $font-weight-normal;
+ font-style: normal;
+ line-height: inherit;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_grid.scss b/themesource/atlas_core/web/core/widgets/_grid.scss
new file mode 100644
index 00000000..047b4e20
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_grid.scss
@@ -0,0 +1,84 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin grid() {
+ /* ==========================================================================
+ Grid
+
+ Default Mendix grid (used for Mendix data grid)
+ ========================================================================== */
+
+ .mx-grid {
+ padding: 0px;
+ border: 0;
+ border-radius: 0;
+
+ .mx-grid-controlbar {
+ margin: 10px 0;
+ /* Paging */
+ .mx-grid-pagingbar {
+ /* Buttons */
+ .mx-button {
+ padding: 8px;
+ color: $grid-paging-color;
+ border-color: $grid-paging-border-color;
+ background-color: $grid-paging-bg;
+
+ &:hover {
+ color: $grid-paging-color-hover;
+ border-color: $grid-paging-border-color-hover;
+ background-color: $grid-paging-bg-hover;
+ }
+ }
+
+ /* Text Paging .. to .. to .. */
+ .mx-grid-paging-status {
+ padding: 0 8px 8px;
+ }
+ }
+ }
+
+ .mx-grid-searchbar {
+ margin: 10px 0;
+
+ .mx-grid-search-item {
+ .mx-grid-search-label {
+ vertical-align: middle;
+
+ label {
+ padding-top: 5px;
+ }
+ }
+
+ .mx-grid-search-input {
+ display: inline-flex;
+
+ .form-control {
+ height: 28px;
+ font-size: 11px;
+ }
+
+ select.form-control {
+ padding: 3px;
+ vertical-align: middle;
+ }
+
+ .mx-button {
+ height: 28px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ }
+ }
+ }
+ }
+ }
+
+ // Remove default border from grid inside a Mendix Dataview
+ .mx-dataview .mx-grid {
+ border: 0;
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_group-box.scss b/themesource/atlas_core/web/core/widgets/_group-box.scss
new file mode 100644
index 00000000..a80e4e08
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_group-box.scss
@@ -0,0 +1,80 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin group-box() {
+ /* ==========================================================================
+ Group box
+
+ Default Mendix group box
+ ========================================================================== */
+
+ .mx-groupbox {
+ margin: 0;
+
+ > .mx-groupbox-header {
+ margin: 0;
+ color: $groupbox-default-color;
+ border-width: 1px 1px 0 1px;
+ border-style: solid;
+ border-color: $groupbox-default-bg;
+ background: $groupbox-default-bg;
+ font-size: $font-size-h5;
+ border-radius: $border-radius-default $border-radius-default 0 0;
+ padding: $spacing-small * 1.5 $spacing-medium;
+
+ .mx-groupbox-collapse-icon {
+ margin-top: 0.1em;
+ }
+ }
+
+ // Header options
+ > h1.mx-groupbox-header {
+ font-size: $font-size-h1;
+ }
+
+ > h2.mx-groupbox-header {
+ font-size: $font-size-h2;
+ }
+
+ > h3.mx-groupbox-header {
+ font-size: $font-size-h3;
+ }
+
+ > h4.mx-groupbox-header {
+ font-size: $font-size-h4;
+ }
+
+ > h5.mx-groupbox-header {
+ font-size: $font-size-h5;
+ }
+
+ > h6.mx-groupbox-header {
+ font-size: $font-size-h6;
+ }
+
+ > .mx-groupbox-body {
+ padding: $spacing-small * 1.5 $spacing-medium;
+ border-width: 1px;
+ border-style: solid;
+ border-color: $groupbox-default-bg;
+ background-color: #ffffff;
+ border-radius: $border-radius-default;
+ }
+
+ .mx-groupbox-header + .mx-groupbox-body {
+ border-top: none;
+ }
+
+ &.collapsed > .mx-groupbox-header {
+ }
+ }
+
+ //With header
+ .mx-groupbox-header ~ .mx-groupbox-body {
+ border-radius: 0 0 $border-radius-default $border-radius-default;
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_header.scss b/themesource/atlas_core/web/core/widgets/_header.scss
new file mode 100644
index 00000000..07e2f2a8
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_header.scss
@@ -0,0 +1,123 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin header() {
+ /* ==========================================================================
+ Header
+
+ Default Mendix mobile header
+ ========================================================================== */
+
+ .mx-header {
+ z-index: 100;
+ display: flex;
+ width: 100%;
+ height: $m-header-height;
+ padding: 0;
+ text-align: initial;
+ color: $m-header-color;
+ background-color: $m-header-bg;
+ box-shadow: 0px 2px 2px rgba(194, 196, 201, 0.30354);
+
+ // Reset mxui
+ div.mx-header-left,
+ div.mx-header-right {
+ position: relative;
+ top: initial;
+ right: initial;
+ left: initial;
+ display: flex;
+ align-items: center;
+ width: 25%;
+ height: 100%;
+
+ .mx-placeholder {
+ display: flex;
+ align-items: center;
+ height: 100%;
+ }
+ }
+
+ div.mx-header-left .mx-placeholder {
+ order: 1;
+
+ .mx-placeholder {
+ justify-content: flex-start;
+ }
+ }
+
+ div.mx-header-center {
+ overflow: hidden;
+ flex: 1;
+ order: 2;
+ text-align: center;
+
+ .mx-title {
+ overflow: hidden;
+ width: 100%;
+ margin: 0;
+ text-overflow: ellipsis;
+ color: $m-header-color;
+ font-size: $m-header-title-size;
+ line-height: $m-header-height;
+ }
+ }
+
+ div.mx-header-right {
+ order: 3;
+
+ .mx-placeholder {
+ justify-content: flex-end;
+ }
+ }
+
+ // Content magic
+ .mx-link {
+ display: flex;
+ align-items: center;
+ height: 100%;
+ transition: all 0.2s;
+ text-decoration: none;
+
+ .glyphicon {
+ top: 0;
+ font-size: 23px;
+ }
+
+ &:active {
+ transform: translateY(1px);
+ color: $link-hover-color;
+ }
+ }
+
+ .mx-link,
+ .btn,
+ img {
+ padding: 0 $spacing-medium;
+ }
+
+ .mx-sidebartoggle {
+ font-size: 24px;
+ line-height: $m-header-height;
+
+ img {
+ height: 20px;
+ }
+ }
+ }
+
+ // RTL support
+ body[dir="rtl"] {
+ .mx-header-left {
+ order: 3;
+ }
+
+ .mx-header-right {
+ order: 1;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_input.scss b/themesource/atlas_core/web/core/widgets/_input.scss
new file mode 100644
index 00000000..fe8f666a
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_input.scss
@@ -0,0 +1,273 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin input() {
+ /* ==========================================================================
+ Input
+
+ The form-control class style all inputs
+ ========================================================================== */
+ .form-control {
+ display: flex;
+ flex: 1;
+ min-width: 50px;
+ height: $form-input-height;
+ padding: $form-input-padding-y $form-input-padding-x;
+ transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
+ color: $form-input-color;
+ border: 1px solid $form-input-border-color;
+ border-radius: $form-input-border-radius;
+ background-color: $form-input-bg;
+ background-image: none;
+ box-shadow: none;
+ font-size: $form-input-font-size;
+ line-height: $form-input-line-height;
+ appearance: none;
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ @if $form-input-style==lined {
+ @extend .form-control-lined;
+ }
+
+ &::placeholder {
+ color: $form-input-placeholder-color;
+ }
+ }
+
+ .form-control:not([readonly]):focus {
+ border-color: $form-input-border-focus-color;
+ outline: 0;
+ background-color: $form-input-bg-focus;
+ box-shadow: none;
+ }
+
+ .form-control[disabled],
+ .form-control[readonly],
+ fieldset[disabled] .form-control {
+ opacity: 1;
+ background-color: $form-input-bg-disabled;
+ }
+
+ .form-control[disabled],
+ fieldset[disabled] .form-control {
+ cursor: not-allowed;
+ }
+
+ // Lined
+ .form-control-lined {
+ border: 0;
+ border-bottom: 1px solid $form-input-border-color;
+ border-radius: 0;
+ background-color: transparent;
+
+ &:focus {
+ background-color: transparent;
+ }
+ }
+
+ // Read only form control class
+ .form-control-static {
+ overflow: hidden;
+ flex: 1;
+ min-height: auto;
+ padding: $form-input-static-padding-y $form-input-static-padding-x;
+ //border-bottom: 1px solid $form-input-static-border-color;
+ font-size: $form-input-font-size;
+ line-height: $form-input-line-height;
+
+ & + .control-label {
+ margin-left: $form-label-gutter;
+ }
+ }
+
+ // Dropdown input widget
+ select.form-control {
+ $arrow: "resources/arrow.svg";
+ padding-right: 30px;
+ background-image: url($arrow);
+ background-repeat: no-repeat;
+ background-position: calc(100% - #{$form-input-padding-x}) center;
+ appearance: none;
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ }
+
+ .form-control.mx-selectbox {
+ align-items: center;
+ flex-direction: row-reverse;
+ justify-content: space-between;
+ }
+
+ // Not editable textarea, textarea will be rendered as a label
+ .mx-textarea .control-label {
+ height: auto;
+ }
+
+ .mx-textarea-counter {
+ display: block;
+ width: 100%;
+ text-align: right;
+ margin-top: $spacing-small;
+ }
+
+ textarea.form-control {
+ flex-basis: auto;
+ }
+
+ .mx-compound-control {
+ display: flex;
+ flex: 1;
+ flex-wrap: wrap;
+ max-width: 100%;
+
+ .btn {
+ margin-left: $spacing-small;
+ }
+
+ .mx-validation-message {
+ flex-basis: 100%;
+ margin-top: 4px;
+ }
+ }
+
+ .has-error .mx-validation-message {
+ margin-top: $spacing-small;
+ margin-bottom: 0;
+ padding: $spacing-small;
+ color: $alert-danger-color;
+ border-color: $alert-danger-border-color;
+ background-color: $alert-danger-bg;
+ }
+
+ // Form Group
+ .form-group {
+ display: flex;
+ flex-direction: row;
+ margin-bottom: $form-group-margin-bottom;
+
+ & > div[class*="col-"] {
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ }
+
+ & > [class*="col-"] {
+ padding-right: $form-group-gutter;
+ padding-left: $form-group-gutter;
+ }
+
+ // Alignment content
+ div[class*="textBox"] > .control-label,
+ div[class*="textArea"] > .control-label,
+ div[class*="datePicker"] > .control-label {
+ @extend .form-control-static;
+ }
+
+ // Label
+ .control-label {
+ overflow: hidden;
+ margin-bottom: 4px;
+ text-align: left;
+ text-overflow: ellipsis;
+ color: $form-label-color;
+ font-size: $form-label-size;
+ font-weight: $form-label-weight;
+ }
+
+ .mx-validation-message {
+ flex-basis: 100%;
+ }
+
+ &.no-columns:not(.label-after) {
+ flex-direction: column;
+ }
+ }
+
+ .form-group.label-after {
+ .form-control-static {
+ flex: unset;
+ }
+
+ .control-label {
+ margin-bottom: 0;
+ }
+ }
+
+ .mx-dateinput,
+ .mx-referenceselector,
+ .mx-referencesetselector {
+ flex: 1;
+ }
+
+ // Targets only webkit iOS devices
+ .dj_webkit.dj_ios .form-control {
+ transform: translateZ(0);
+ }
+
+ @media only screen and (min-width: $screen-md) {
+ .form-horizontal {
+ .control-label {
+ margin-bottom: 0;
+ padding-top: $form-input-padding-y;
+ padding-bottom: $form-input-padding-y;
+ line-height: $form-input-line-height;
+ }
+ }
+ }
+
+ @media only screen and (max-width: $screen-sm-max) {
+ .form-group {
+ flex-direction: column;
+ }
+ }
+
+ @media only screen and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 0) {
+ // Fixes alignment bug on iPads / iPhones where datefield is not aligned vertically
+ input[type="date"],
+ input[type="time"],
+ input[type="datetime-local"],
+ input[type="month"] {
+ line-height: 1;
+ }
+ // Fix shrinking of date inputs because inability of setting a placeholder
+ input[type="time"]:not(.has-value):before,
+ input[type="date"]:not(.has-value):before,
+ input[type="month"]:not(.has-value):before,
+ input[type="datetime-local"]:not(.has-value):before {
+ margin-right: 0.5em;
+ content: attr(placeholder) !important;
+ color: #aaaaaa;
+ }
+ input[type="time"].has-value:before,
+ input[type="date"].has-value:before,
+ input[type="month"].has-value:before,
+ input[type="datetime-local"].has-value:before {
+ content: "" !important;
+ }
+ }
+
+ @media (-ms-high-contrast: none), (-ms-high-contrast: active) {
+ // Target IE10+
+ .form-group {
+ display: block;
+ }
+ }
+
+ [dir="rtl"] {
+ // Dropdown input widget
+ select.form-control {
+ padding-right: 30px;
+ padding-left: 0;
+ background-position: #{$form-input-padding-x} center;
+ }
+
+ .mx-compound-control .btn {
+ margin-right: $spacing-small;
+ margin-left: 0;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_label.scss b/themesource/atlas_core/web/core/widgets/_label.scss
new file mode 100644
index 00000000..af9469dd
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_label.scss
@@ -0,0 +1,32 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin label() {
+ /* ==========================================================================
+ Label
+
+ Default label combined with Bootstrap label
+ ========================================================================== */
+
+ .label {
+ display: inline-block;
+ margin: 0;
+ padding: $spacing-smaller $spacing-small;
+ text-align: center;
+ vertical-align: baseline;
+ white-space: nowrap;
+ color: #ffffff;
+ border-radius: 0.25em;
+ font-size: 100%;
+ line-height: 1;
+
+ .form-control-static {
+ font-weight: $font-weight-normal;
+ all: unset;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_layout-grid.scss b/themesource/atlas_core/web/core/widgets/_layout-grid.scss
new file mode 100644
index 00000000..3aa38195
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_layout-grid.scss
@@ -0,0 +1,950 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin layout-grid() {
+ /* ==========================================================================
+ Layout grid
+
+ Default Bootstrap containers
+ ========================================================================== */
+ .mx-layoutgrid {
+ width: 100%;
+ margin-right: auto;
+ margin-left: auto;
+ padding-right: $gutter-size;
+ padding-left: $gutter-size;
+ }
+
+ // Row
+ .row {
+ display: flex;
+ flex-wrap: wrap;
+ margin-right: -$gutter-size;
+ margin-left: -$gutter-size;
+
+ &::before,
+ &::after {
+ content: normal;
+ }
+ }
+
+ .no-gutters {
+ margin-right: 0;
+ margin-left: 0;
+ }
+
+ .no-gutters > .col,
+ .no-gutters > [class*="col-"] {
+ padding-right: 0;
+ padding-left: 0;
+ }
+
+ // Columns
+ .col-1,
+ .col-2,
+ .col-3,
+ .col-4,
+ .col-5,
+ .col-6,
+ .col-7,
+ .col-8,
+ .col-9,
+ .col-10,
+ .col-11,
+ .col-12,
+ .col,
+ .col-auto,
+ .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-sm,
+ .col-sm-auto,
+ .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-md,
+ .col-md-auto,
+ .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,
+ .col-lg,
+ .col-lg-auto,
+ .col-xl-1,
+ .col-xl-2,
+ .col-xl-3,
+ .col-xl-4,
+ .col-xl-5,
+ .col-xl-6,
+ .col-xl-7,
+ .col-xl-8,
+ .col-xl-9,
+ .col-xl-10,
+ .col-xl-11,
+ .col-xl-12,
+ .col-xl,
+ .col-xl-auto {
+ position: relative;
+ width: 100%;
+ padding-right: $gutter-size;
+ padding-left: $gutter-size;
+ }
+
+ .col {
+ flex-basis: 0;
+ flex-grow: 1;
+ max-width: 100%;
+ }
+
+ .col-auto {
+ flex: 0 0 auto;
+ width: auto;
+ max-width: 100%;
+ }
+
+ .col-1 {
+ flex: 0 0 8.333333%;
+ max-width: 8.333333%;
+ }
+
+ .col-2 {
+ flex: 0 0 16.666667%;
+ max-width: 16.666667%;
+ }
+
+ .col-3 {
+ flex: 0 0 25%;
+ max-width: 25%;
+ }
+
+ .col-4 {
+ flex: 0 0 33.333333%;
+ max-width: 33.333333%;
+ }
+
+ .col-5 {
+ flex: 0 0 41.666667%;
+ max-width: 41.666667%;
+ }
+
+ .col-6 {
+ flex: 0 0 50%;
+ max-width: 50%;
+ }
+
+ .col-7 {
+ flex: 0 0 58.333333%;
+ max-width: 58.333333%;
+ }
+
+ .col-8 {
+ flex: 0 0 66.666667%;
+ max-width: 66.666667%;
+ }
+
+ .col-9 {
+ flex: 0 0 75%;
+ max-width: 75%;
+ }
+
+ .col-10 {
+ flex: 0 0 83.333333%;
+ max-width: 83.333333%;
+ }
+
+ .col-11 {
+ flex: 0 0 91.666667%;
+ max-width: 91.666667%;
+ }
+
+ .col-12 {
+ flex: 0 0 100%;
+ max-width: 100%;
+ }
+
+ .order-first {
+ order: -1;
+ }
+
+ .order-last {
+ order: 13;
+ }
+
+ .order-0 {
+ order: 0;
+ }
+
+ .order-1 {
+ order: 1;
+ }
+
+ .order-2 {
+ order: 2;
+ }
+
+ .order-3 {
+ order: 3;
+ }
+
+ .order-4 {
+ order: 4;
+ }
+
+ .order-5 {
+ order: 5;
+ }
+
+ .order-6 {
+ order: 6;
+ }
+
+ .order-7 {
+ order: 7;
+ }
+
+ .order-8 {
+ order: 8;
+ }
+
+ .order-9 {
+ order: 9;
+ }
+
+ .order-10 {
+ order: 10;
+ }
+
+ .order-11 {
+ order: 11;
+ }
+
+ .order-12 {
+ order: 12;
+ }
+
+ .offset-1,
+ .col-offset-1 {
+ margin-left: 8.333333%;
+ }
+
+ .offset-2,
+ .col-offset-2 {
+ margin-left: 16.666667%;
+ }
+
+ .offset-3,
+ .col-offset-3 {
+ margin-left: 25%;
+ }
+
+ .offset-4,
+ .col-offset-4 {
+ margin-left: 33.333333%;
+ }
+
+ .offset-5,
+ .col-offset-5 {
+ margin-left: 41.666667%;
+ }
+
+ .offset-6,
+ .col-offset-6 {
+ margin-left: 50%;
+ }
+
+ .offset-7,
+ .col-offset-7 {
+ margin-left: 58.333333%;
+ }
+
+ .offset-8,
+ .col-offset-8 {
+ margin-left: 66.666667%;
+ }
+
+ .offset-9,
+ .col-offset-9 {
+ margin-left: 75%;
+ }
+
+ .offset-10,
+ .col-offset-10 {
+ margin-left: 83.333333%;
+ }
+
+ .offset-11,
+ .col-offset-11 {
+ margin-left: 91.666667%;
+ }
+
+ // Responsiveness
+ @media (min-width: $screen-sm) {
+ .mx-layoutgrid-fixed {
+ max-width: 540px;
+ }
+ }
+
+ @media (min-width: $screen-md) {
+ .mx-layoutgrid-fixed {
+ max-width: 720px;
+ }
+ }
+
+ @media (min-width: $screen-lg) {
+ .mx-layoutgrid-fixed {
+ max-width: 960px;
+ }
+ }
+
+ @media (min-width: $screen-xl) {
+ .mx-layoutgrid-fixed {
+ max-width: 1140px;
+ }
+ }
+
+ @media (min-width: $screen-sm) {
+ .col-sm {
+ flex-basis: 0;
+ flex-grow: 1;
+ max-width: 100%;
+ }
+ .col-sm-auto {
+ flex: 0 0 auto;
+ width: auto;
+ max-width: 100%;
+ }
+ .col-sm-1 {
+ flex: 0 0 8.333333%;
+ max-width: 8.333333%;
+ }
+ .col-sm-2 {
+ flex: 0 0 16.666667%;
+ max-width: 16.666667%;
+ }
+ .col-sm-3 {
+ flex: 0 0 25%;
+ max-width: 25%;
+ }
+ .col-sm-4 {
+ flex: 0 0 33.333333%;
+ max-width: 33.333333%;
+ }
+ .col-sm-5 {
+ flex: 0 0 41.666667%;
+ max-width: 41.666667%;
+ }
+ .col-sm-6 {
+ flex: 0 0 50%;
+ max-width: 50%;
+ }
+ .col-sm-7 {
+ flex: 0 0 58.333333%;
+ max-width: 58.333333%;
+ }
+ .col-sm-8 {
+ flex: 0 0 66.666667%;
+ max-width: 66.666667%;
+ }
+ .col-sm-9 {
+ flex: 0 0 75%;
+ max-width: 75%;
+ }
+ .col-sm-10 {
+ flex: 0 0 83.333333%;
+ max-width: 83.333333%;
+ }
+ .col-sm-11 {
+ flex: 0 0 91.666667%;
+ max-width: 91.666667%;
+ }
+ .col-sm-12 {
+ flex: 0 0 100%;
+ max-width: 100%;
+ }
+ .order-sm-first {
+ order: -1;
+ }
+ .order-sm-last {
+ order: 13;
+ }
+ .order-sm-0 {
+ order: 0;
+ }
+ .order-sm-1 {
+ order: 1;
+ }
+ .order-sm-2 {
+ order: 2;
+ }
+ .order-sm-3 {
+ order: 3;
+ }
+ .order-sm-4 {
+ order: 4;
+ }
+ .order-sm-5 {
+ order: 5;
+ }
+ .order-sm-6 {
+ order: 6;
+ }
+ .order-sm-7 {
+ order: 7;
+ }
+ .order-sm-8 {
+ order: 8;
+ }
+ .order-sm-9 {
+ order: 9;
+ }
+ .order-sm-10 {
+ order: 10;
+ }
+ .order-sm-11 {
+ order: 11;
+ }
+ .order-sm-12 {
+ order: 12;
+ }
+ .offset-sm-0,
+ .col-sm-offset-0 {
+ margin-left: 0;
+ }
+ .offset-sm-1,
+ .col-sm-offset-1 {
+ margin-left: 8.333333%;
+ }
+ .offset-sm-2,
+ .col-sm-offset-2 {
+ margin-left: 16.666667%;
+ }
+ .offset-sm-3,
+ .col-sm-offset-3 {
+ margin-left: 25%;
+ }
+ .offset-sm-4,
+ .col-sm-offset-4 {
+ margin-left: 33.333333%;
+ }
+ .offset-sm-5,
+ .col-sm-offset-5 {
+ margin-left: 41.666667%;
+ }
+ .offset-sm-6,
+ .col-sm-offset-6 {
+ margin-left: 50%;
+ }
+ .offset-sm-7,
+ .col-sm-offset-7 {
+ margin-left: 58.333333%;
+ }
+ .offset-sm-8,
+ .col-sm-offset-8 {
+ margin-left: 66.666667%;
+ }
+ .offset-sm-9,
+ .col-sm-offset-9 {
+ margin-left: 75%;
+ }
+ .offset-sm-10,
+ .col-sm-offset-10 {
+ margin-left: 83.333333%;
+ }
+ .offset-sm-11,
+ .col-sm-offset-11 {
+ margin-left: 91.666667%;
+ }
+ }
+
+ @media (min-width: $screen-md) {
+ .col-md {
+ flex-basis: 0;
+ flex-grow: 1;
+ max-width: 100%;
+ }
+ .col-md-auto {
+ flex: 0 0 auto;
+ width: auto;
+ max-width: 100%;
+ }
+ .col-md-1 {
+ flex: 0 0 8.333333%;
+ max-width: 8.333333%;
+ }
+ .col-md-2 {
+ flex: 0 0 16.666667%;
+ max-width: 16.666667%;
+ }
+ .col-md-3 {
+ flex: 0 0 25%;
+ max-width: 25%;
+ }
+ .col-md-4 {
+ flex: 0 0 33.333333%;
+ max-width: 33.333333%;
+ }
+ .col-md-5 {
+ flex: 0 0 41.666667%;
+ max-width: 41.666667%;
+ }
+ .col-md-6 {
+ flex: 0 0 50%;
+ max-width: 50%;
+ }
+ .col-md-7 {
+ flex: 0 0 58.333333%;
+ max-width: 58.333333%;
+ }
+ .col-md-8 {
+ flex: 0 0 66.666667%;
+ max-width: 66.666667%;
+ }
+ .col-md-9 {
+ flex: 0 0 75%;
+ max-width: 75%;
+ }
+ .col-md-10 {
+ flex: 0 0 83.333333%;
+ max-width: 83.333333%;
+ }
+ .col-md-11 {
+ flex: 0 0 91.666667%;
+ max-width: 91.666667%;
+ }
+ .col-md-12 {
+ flex: 0 0 100%;
+ max-width: 100%;
+ }
+ .order-md-first {
+ order: -1;
+ }
+ .order-md-last {
+ order: 13;
+ }
+ .order-md-0 {
+ order: 0;
+ }
+ .order-md-1 {
+ order: 1;
+ }
+ .order-md-2 {
+ order: 2;
+ }
+ .order-md-3 {
+ order: 3;
+ }
+ .order-md-4 {
+ order: 4;
+ }
+ .order-md-5 {
+ order: 5;
+ }
+ .order-md-6 {
+ order: 6;
+ }
+ .order-md-7 {
+ order: 7;
+ }
+ .order-md-8 {
+ order: 8;
+ }
+ .order-md-9 {
+ order: 9;
+ }
+ .order-md-10 {
+ order: 10;
+ }
+ .order-md-11 {
+ order: 11;
+ }
+ .order-md-12 {
+ order: 12;
+ }
+ .offset-md-0,
+ .col-md-offset-0 {
+ margin-left: 0;
+ }
+ .offset-md-1,
+ .col-md-offset-1 {
+ margin-left: 8.333333%;
+ }
+ .offset-md-2,
+ .col-md-offset-2 {
+ margin-left: 16.666667%;
+ }
+ .offset-md-3,
+ .col-md-offset-3 {
+ margin-left: 25%;
+ }
+ .offset-md-4,
+ .col-md-offset-4 {
+ margin-left: 33.333333%;
+ }
+ .offset-md-5,
+ .col-md-offset-5 {
+ margin-left: 41.666667%;
+ }
+ .offset-md-6,
+ .col-md-offset-6 {
+ margin-left: 50%;
+ }
+ .offset-md-7,
+ .col-md-offset-7 {
+ margin-left: 58.333333%;
+ }
+ .offset-md-8,
+ .col-md-offset-8 {
+ margin-left: 66.666667%;
+ }
+ .offset-md-9,
+ .col-md-offset-9 {
+ margin-left: 75%;
+ }
+ .offset-md-10,
+ .col-md-offset-10 {
+ margin-left: 83.333333%;
+ }
+ .offset-md-11,
+ .col-md-offset-11 {
+ margin-left: 91.666667%;
+ }
+ }
+
+ @media (min-width: $screen-lg) {
+ .col-lg {
+ flex-basis: 0;
+ flex-grow: 1;
+ max-width: 100%;
+ }
+ .col-lg-auto {
+ flex: 0 0 auto;
+ width: auto;
+ max-width: 100%;
+ }
+ .col-lg-1 {
+ flex: 0 0 8.333333%;
+ max-width: 8.333333%;
+ }
+ .col-lg-2 {
+ flex: 0 0 16.666667%;
+ max-width: 16.666667%;
+ }
+ .col-lg-3 {
+ flex: 0 0 25%;
+ max-width: 25%;
+ }
+ .col-lg-4 {
+ flex: 0 0 33.333333%;
+ max-width: 33.333333%;
+ }
+ .col-lg-5 {
+ flex: 0 0 41.666667%;
+ max-width: 41.666667%;
+ }
+ .col-lg-6 {
+ flex: 0 0 50%;
+ max-width: 50%;
+ }
+ .col-lg-7 {
+ flex: 0 0 58.333333%;
+ max-width: 58.333333%;
+ }
+ .col-lg-8 {
+ flex: 0 0 66.666667%;
+ max-width: 66.666667%;
+ }
+ .col-lg-9 {
+ flex: 0 0 75%;
+ max-width: 75%;
+ }
+ .col-lg-10 {
+ flex: 0 0 83.333333%;
+ max-width: 83.333333%;
+ }
+ .col-lg-11 {
+ flex: 0 0 91.666667%;
+ max-width: 91.666667%;
+ }
+ .col-lg-12 {
+ flex: 0 0 100%;
+ max-width: 100%;
+ }
+ .order-lg-first {
+ order: -1;
+ }
+ .order-lg-last {
+ order: 13;
+ }
+ .order-lg-0 {
+ order: 0;
+ }
+ .order-lg-1 {
+ order: 1;
+ }
+ .order-lg-2 {
+ order: 2;
+ }
+ .order-lg-3 {
+ order: 3;
+ }
+ .order-lg-4 {
+ order: 4;
+ }
+ .order-lg-5 {
+ order: 5;
+ }
+ .order-lg-6 {
+ order: 6;
+ }
+ .order-lg-7 {
+ order: 7;
+ }
+ .order-lg-8 {
+ order: 8;
+ }
+ .order-lg-9 {
+ order: 9;
+ }
+ .order-lg-10 {
+ order: 10;
+ }
+ .order-lg-11 {
+ order: 11;
+ }
+ .order-lg-12 {
+ order: 12;
+ }
+ .offset-lg-0,
+ .col-lg-offset-0 {
+ margin-left: 0;
+ }
+ .offset-lg-1,
+ .col-lg-offset-1 {
+ margin-left: 8.333333%;
+ }
+ .offset-lg-2,
+ .col-lg-offset-2 {
+ margin-left: 16.666667%;
+ }
+ .offset-lg-3,
+ .col-lg-offset-3 {
+ margin-left: 25%;
+ }
+ .offset-lg-4,
+ .col-lg-offset-4 {
+ margin-left: 33.333333%;
+ }
+ .offset-lg-5,
+ .col-lg-offset-5 {
+ margin-left: 41.666667%;
+ }
+ .offset-lg-6,
+ .col-lg-offset-6 {
+ margin-left: 50%;
+ }
+ .offset-lg-7,
+ .col-lg-offset-7 {
+ margin-left: 58.333333%;
+ }
+ .offset-lg-8,
+ .col-lg-offset-8 {
+ margin-left: 66.666667%;
+ }
+ .offset-lg-9,
+ .col-lg-offset-9 {
+ margin-left: 75%;
+ }
+ .offset-lg-10,
+ .col-lg-offset-10 {
+ margin-left: 83.333333%;
+ }
+ .offset-lg-11,
+ .col-lg-offset-11 {
+ margin-left: 91.666667%;
+ }
+ }
+
+ @media (min-width: $screen-xl) {
+ .col-xl {
+ flex-basis: 0;
+ flex-grow: 1;
+ max-width: 100%;
+ }
+ .col-xl-auto {
+ flex: 0 0 auto;
+ width: auto;
+ max-width: 100%;
+ }
+ .col-xl-1 {
+ flex: 0 0 8.333333%;
+ max-width: 8.333333%;
+ }
+ .col-xl-2 {
+ flex: 0 0 16.666667%;
+ max-width: 16.666667%;
+ }
+ .col-xl-3 {
+ flex: 0 0 25%;
+ max-width: 25%;
+ }
+ .col-xl-4 {
+ flex: 0 0 33.333333%;
+ max-width: 33.333333%;
+ }
+ .col-xl-5 {
+ flex: 0 0 41.666667%;
+ max-width: 41.666667%;
+ }
+ .col-xl-6 {
+ flex: 0 0 50%;
+ max-width: 50%;
+ }
+ .col-xl-7 {
+ flex: 0 0 58.333333%;
+ max-width: 58.333333%;
+ }
+ .col-xl-8 {
+ flex: 0 0 66.666667%;
+ max-width: 66.666667%;
+ }
+ .col-xl-9 {
+ flex: 0 0 75%;
+ max-width: 75%;
+ }
+ .col-xl-10 {
+ flex: 0 0 83.333333%;
+ max-width: 83.333333%;
+ }
+ .col-xl-11 {
+ flex: 0 0 91.666667%;
+ max-width: 91.666667%;
+ }
+ .col-xl-12 {
+ flex: 0 0 100%;
+ max-width: 100%;
+ }
+ .order-xl-first {
+ order: -1;
+ }
+ .order-xl-last {
+ order: 13;
+ }
+ .order-xl-0 {
+ order: 0;
+ }
+ .order-xl-1 {
+ order: 1;
+ }
+ .order-xl-2 {
+ order: 2;
+ }
+ .order-xl-3 {
+ order: 3;
+ }
+ .order-xl-4 {
+ order: 4;
+ }
+ .order-xl-5 {
+ order: 5;
+ }
+ .order-xl-6 {
+ order: 6;
+ }
+ .order-xl-7 {
+ order: 7;
+ }
+ .order-xl-8 {
+ order: 8;
+ }
+ .order-xl-9 {
+ order: 9;
+ }
+ .order-xl-10 {
+ order: 10;
+ }
+ .order-xl-11 {
+ order: 11;
+ }
+ .order-xl-12 {
+ order: 12;
+ }
+ .offset-xl-0,
+ .col-xl-offset-0 {
+ margin-left: 0;
+ }
+ .offset-xl-1,
+ .col-xl-offset-1 {
+ margin-left: 8.333333%;
+ }
+ .offset-xl-2,
+ .col-xl-offset-2 {
+ margin-left: 16.666667%;
+ }
+ .offset-xl-3,
+ .col-xl-offset-3 {
+ margin-left: 25%;
+ }
+ .offset-xl-4,
+ .col-xl-offset-4 {
+ margin-left: 33.333333%;
+ }
+ .offset-xl-5,
+ .col-xl-offset-5 {
+ margin-left: 41.666667%;
+ }
+ .offset-xl-6,
+ .col-xl-offset-6 {
+ margin-left: 50%;
+ }
+ .offset-xl-7,
+ .col-xl-offset-7 {
+ margin-left: 58.333333%;
+ }
+ .offset-xl-8,
+ .col-xl-offset-8 {
+ margin-left: 66.666667%;
+ }
+ .offset-xl-9,
+ .col-xl-offset-9 {
+ margin-left: 75%;
+ }
+ .offset-xl-10,
+ .col-xl-offset-10 {
+ margin-left: 83.333333%;
+ }
+ .offset-xl-11,
+ .col-xl-offset-11 {
+ margin-left: 91.666667%;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_list-view.scss b/themesource/atlas_core/web/core/widgets/_list-view.scss
new file mode 100644
index 00000000..efef3382
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_list-view.scss
@@ -0,0 +1,96 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin list-view() {
+ /* ==========================================================================
+ List view
+
+ Default Mendix list view widget. The list view shows a list of objects arranged vertically. Each object is shown using a template
+ ========================================================================== */
+ .mx-listview {
+ // Remove widget padding
+ padding: 0;
+ /* Clear search button (overrides load more button stying) */
+ & > ul {
+ margin: 0 0 $spacing-medium;
+
+ .mx-listview-empty {
+ border-style: none;
+ background-color: transparent;
+ }
+
+ & > li {
+ @include transition();
+ background-color: #fff;
+ padding: $spacing-medium;
+ border-top: 1px solid $grid-border-color;
+
+ &:last-child {
+ border-bottom: 1px solid $grid-border-color;
+ }
+
+ &:focus,
+ &:active {
+ outline: 0;
+ }
+ }
+ }
+
+ .selected {
+ background: $color-primary-light;
+ }
+
+ .mx-layoutgrid {
+ padding: 0 !important;
+ }
+ }
+
+ // Search bar
+ .mx-listview-searchbar {
+ margin-bottom: $spacing-medium;
+
+ .btn {
+ width: auto;
+ }
+ }
+
+ /* Load more button */
+ .btn.mx-listview-loadMore {
+ width: 100%;
+ margin: 0 0 $spacing-medium;
+ }
+
+ //== Phone specific
+ //-------------------------------------------------------------------------------------------------------------------//
+ .profile-phone .mx-listview {
+ .mx-listview-searchbar {
+ margin-bottom: 3px;
+ background: #ffffff;
+ box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14);
+
+ input {
+ padding: 14px 15px;
+ color: #555555;
+ border-style: none;
+ border-radius: 0;
+ box-shadow: none;
+ }
+
+ .btn {
+ padding: 14px 15px;
+ color: inherit;
+ border-style: none;
+ }
+ }
+
+ & > ul > li {
+ &:first-child {
+ border-top: none;
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_modal.scss b/themesource/atlas_core/web/core/widgets/_modal.scss
new file mode 100644
index 00000000..6130c360
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_modal.scss
@@ -0,0 +1,128 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin modal() {
+ /* ==========================================================================
+ Modal
+
+ Default Mendix modals. Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults
+ ========================================================================== */
+ .modal-dialog {
+ .modal-content {
+ border: 1px solid $modal-header-border-color;
+ border-radius: 4px;
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
+
+ .modal-header {
+ padding: 15px 20px;
+ border-bottom-color: $modal-header-border-color;
+ border-radius: 0; // Because of the class .mx-window-active in mxui.css
+ background-color: $modal-header-bg;
+
+ h4 {
+ margin: 0;
+ color: $modal-header-color;
+ font-size: 16px;
+ font-weight: $font-weight-bold;
+ }
+
+ .close {
+ margin-top: -3px;
+ opacity: 1;
+ /* For IE8 and earlier */
+ color: $modal-header-color;
+ text-shadow: none;
+ }
+ }
+
+ .modal-body {
+ }
+
+ .modal-footer {
+ display: flex;
+ justify-content: flex-end;
+ margin-top: 0;
+ padding: 20px;
+ border-style: none;
+ }
+ }
+ }
+
+ // Default Mendix Window Modal
+ .mx-window {
+ // If popup direct child is a dataview it gets the class mx-window-view
+ &.mx-window-view .mx-window-body {
+ overflow: hidden; // hide second scrollbar in edit page
+ padding: 0;
+ // Dataview in popup
+ > .mx-dataview > .mx-dataview-content,
+ > .mx-placeholder > .mx-dataview > .mx-dataview-content {
+ padding: 20px;
+ }
+
+ > .mx-dataview > .mx-dataview-controls,
+ > .mx-placeholder > .mx-dataview > .mx-dataview-controls {
+ display: flex;
+ justify-content: flex-end;
+ margin: 0;
+ padding: 20px;
+ text-align: left;
+ border-top: 1px solid $modal-header-border-color;
+ }
+ }
+
+ .mx-dataview-controls {
+ padding-bottom: 0;
+ }
+
+ .mx-layoutgrid {
+ padding-right: 0;
+ padding-left: 0;
+ }
+ }
+
+ .mx-dialog .modal-body {
+ padding: 24px;
+ }
+
+ // Login modal
+ .mx-login {
+ .modal-body {
+ padding: 0 15px;
+ }
+
+ .modal-content {
+ input {
+ height: 56px;
+ padding: 12px 12px;
+ border: 1px solid #eeeeee;
+ background: #eeeeee;
+ box-shadow: none;
+ font-size: 16px;
+
+ &:focus {
+ border-color: #66afe9;
+ }
+ }
+ }
+
+ .modal-header,
+ .modal-footer {
+ border: 0;
+ }
+
+ button {
+ font-size: 16px;
+ }
+
+ h4 {
+ color: #aaaaaa;
+ font-size: 20px;
+ font-weight: $font-weight-bold;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_navigation-bar.scss b/themesource/atlas_core/web/core/widgets/_navigation-bar.scss
new file mode 100644
index 00000000..fbf84d3a
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_navigation-bar.scss
@@ -0,0 +1,153 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin navigation-bar() {
+ /* ==========================================================================
+ Navigation
+
+ Default Mendix navigation bar
+ ========================================================================== */
+ .mx-navbar {
+ margin: 0;
+ border-style: none;
+ border-radius: 0;
+ background-color: $navigation-bg;
+
+ ul.nav {
+ margin: 0; // weird -margin if screen gets small (bootstrap)
+ /* Navigation item */
+ & > li.mx-navbar-item > a {
+ display: flex;
+ align-items: center;
+ padding: $navigation-item-padding;
+ vertical-align: middle;
+ color: $navigation-color;
+ border-radius: 0;
+ font-size: $navigation-font-size;
+ font-weight: $font-weight-normal;
+ border-radius: $border-radius-default;
+
+ /* Dropdown arrow */
+ .caret {
+ border-top-color: $navigation-color;
+ border-bottom-color: $navigation-color;
+ }
+
+ &:hover,
+ &:focus,
+ &.active {
+ text-decoration: none;
+ color: $navigation-color-hover;
+ background-color: $navigation-bg-hover;
+
+ .caret {
+ border-top-color: $navigation-color-active;
+ border-bottom-color: $navigation-color-active;
+ }
+ }
+
+ &.active {
+ color: $navigation-color-active;
+ background-color: $navigation-bg-active;
+ opacity: 1;
+ }
+
+ /* Dropdown */
+ .mx-navbar-submenu::before {
+ position: absolute;
+ top: -9px;
+ left: 15px;
+ width: 0;
+ height: 0;
+ content: "";
+ transform: rotate(360deg);
+ border-width: 0 9px 9px 9px;
+ border-style: solid;
+ border-color: transparent transparent $navigation-border-color transparent;
+ }
+
+ // Image
+ img {
+ width: 20px; // Default size (so it looks good)
+ height: auto;
+ margin-right: 0.5em;
+ }
+
+ .glyphicon {
+ top: 0;
+ margin-right: 0.5em;
+ vertical-align: middle;
+ font-size: $navigation-glyph-size;
+ }
+ }
+
+ & > .mx-navbar-item.active a {
+ color: $navigation-color-active;
+ }
+
+ /* When hovering or the dropdown is open */
+ & > .mx-navbar-item > a:hover,
+ & > .mx-navbar-item > a:focus,
+ & > .mx-navbar-item.open > a,
+ & > .mx-navbar-item.open > a:hover,
+ & > .mx-navbar-item.open > a:focus {
+ text-decoration: none;
+ color: $navigation-color-hover;
+ background-color: $navigation-bg-hover;
+
+ .caret {
+ border-top-color: $navigation-color-hover;
+ border-bottom-color: $navigation-color-hover;
+ }
+ }
+
+ & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a {
+ color: $navigation-sub-color-active;
+ background-color: $navigation-sub-bg-active;
+
+ .caret {
+ border-top-color: $navigation-sub-color-active;
+ border-bottom-color: $navigation-sub-color-active;
+ }
+ }
+ }
+ @media (max-width: $screen-md) {
+ ul.nav > li.mx-navbar-item > a {
+ padding: 10px 24px;
+ }
+ .mx-navbar-item.open .dropdown-menu {
+ padding: 0;
+ border-radius: 0;
+ background-color: $navigation-sub-bg;
+
+ & > li.mx-navbar-subitem > a {
+ padding: 10px 24px;
+ color: $navigation-sub-color;
+ border-radius: 0;
+ font-size: $navigation-sub-font-size;
+ font-weight: $font-weight-normal;
+
+ &:hover,
+ &:focus {
+ color: $navigation-sub-color-hover;
+ background-color: $navigation-sub-bg-hover;
+ }
+
+ &.active {
+ color: $navigation-sub-color-active;
+ background-color: $navigation-sub-bg-active;
+ }
+ }
+ }
+ }
+
+ /* remove focus */
+ &:focus {
+ outline: 0;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_navigation-list.scss b/themesource/atlas_core/web/core/widgets/_navigation-list.scss
new file mode 100644
index 00000000..9dd97888
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_navigation-list.scss
@@ -0,0 +1,40 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin navigation-list() {
+ /* ==========================================================================
+ Navigation list
+
+ Default Mendix navigation list widget. A navigation list can be used to attach an action to an entire row. Such a row is called a navigation list item
+ ========================================================================== */
+ .mx-navigationlist {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+
+ li.mx-navigationlist-item {
+ @include transition();
+ padding: $spacing-medium;
+ border-width: 1px;
+ border-style: none none solid none;
+ border-color: $grid-border-color;
+ border-radius: 0;
+ background-color: $grid-bg;
+
+ &:hover,
+ &:focus {
+ color: inherit;
+ background-color: $grid-bg-hover;
+ }
+
+ &.active {
+ color: inherit;
+ background-color: $grid-bg-selected;
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_navigation-tree.scss b/themesource/atlas_core/web/core/widgets/_navigation-tree.scss
new file mode 100644
index 00000000..5eb54dce
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_navigation-tree.scss
@@ -0,0 +1,127 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin navigation-tree() {
+ /* ==========================================================================
+ Navigation
+
+ Default Mendix navigation tree
+ ========================================================================== */
+ .mx-navigationtree {
+ background-color: $navigation-bg;
+
+ /* Every navigation item */
+ .navbar-inner > ul {
+ margin: 0;
+ padding-left: 0;
+
+ & > li {
+ padding: 0;
+ border-style: none;
+
+ & > a {
+ display: flex;
+ align-items: center;
+ height: $navigation-item-height;
+ padding: $navigation-item-padding;
+ color: $navigation-color;
+ //border-bottom: 1px solid $navigation-border-color;
+ //border-radius: 0;
+ background-color: $navigation-bg;
+ text-shadow: none;
+ font-size: $navigation-font-size;
+ font-weight: $font-weight-normal;
+
+ .caret {
+ border-top-color: $navigation-color;
+ border-bottom-color: $navigation-color;
+ }
+
+ img {
+ width: 20px; // Default size
+ height: auto;
+ margin-right: 0.5em;
+ }
+
+ .glyphicon {
+ top: 0;
+ margin-right: 0.5em;
+ vertical-align: middle;
+ font-size: $navigation-glyph-size;
+ }
+ }
+
+ a:hover,
+ a:focus,
+ a.active {
+ text-decoration: none;
+ color: $navigation-color-hover;
+ background-color: $navigation-bg-hover;
+
+ .caret {
+ border-top-color: $navigation-color-active;
+ border-bottom-color: $navigation-color-active;
+ }
+ }
+
+ a.active {
+ color: $navigation-color-active;
+ border-left-color: $navigation-color-active;
+ background-color: $navigation-bg-active;
+ }
+ }
+ }
+
+ /* Sub navigation item specific */
+ li.mx-navigationtree-has-items {
+ & > ul {
+ margin: 0;
+ padding-left: 0;
+ background-color: $navigation-sub-bg;
+
+ li {
+ margin: 0;
+ padding: 0;
+ border: 0;
+
+ a {
+ padding: $spacing-medium;
+ text-decoration: none;
+ color: $navigation-sub-color;
+ border: 0;
+ background-color: $navigation-sub-bg;
+ text-shadow: none;
+ font-size: $navigation-sub-font-size;
+ font-weight: $font-weight-normal;
+ .glyphicon {
+ margin-right: $spacing-small;
+ }
+
+ &:hover,
+ &:focus,
+ &.active {
+ color: $navigation-sub-color-hover;
+ outline: 0;
+ background-color: $navigation-sub-bg-hover;
+ }
+
+ &.active {
+ color: $navigation-sub-color-active;
+ border: 0;
+ background-color: $navigation-sub-bg-active;
+ }
+ }
+ }
+ }
+ }
+
+ /* remove focus */
+ &:focus {
+ outline: 0;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_pagination.scss b/themesource/atlas_core/web/core/widgets/_pagination.scss
new file mode 100644
index 00000000..1a60d75d
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_pagination.scss
@@ -0,0 +1,80 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin pagination() {
+ /* ==========================================================================
+ Pagination
+
+ Default Mendix pagination widget.
+ ========================================================================== */
+
+ .widget-pagination {
+ overflow: unset;
+
+ .pagination {
+ overflow: unset;
+
+ .btn {
+ &:hover {
+ color: $btn-default-color;
+ background-color: $btn-default-bg-hover;
+ }
+
+ &:focus {
+ outline: unset;
+ outline-offset: unset;
+ box-shadow: 0 0 0 0.3rem $color-primary-light;
+ }
+ }
+
+ ul {
+ margin-top: unset;
+ margin-bottom: unset;
+
+ li {
+ display: inline-flex;
+ align-items: center;
+ width: unset;
+ min-width: 24px;
+ min-height: 24px;
+ margin-right: 16px;
+ padding: 4px 8px;
+ transition: all 0.2s ease-in-out;
+ color: $font-color-default;
+ border-radius: $border-radius-default;
+
+ &:last-child {
+ margin-right: 0;
+ }
+
+ &:not(.break-view) {
+ &:hover {
+ color: $btn-default-color;
+ background-color: $btn-default-bg-hover;
+ }
+
+ &:focus {
+ outline: unset;
+ outline-offset: unset;
+ box-shadow: 0 0 0 0.3rem $color-primary-light;
+ }
+
+ &.active {
+ color: $btn-primary-color;
+ background-color: $btn-primary-bg;
+ }
+
+ &.active:hover {
+ color: $btn-primary-color;
+ background-color: $btn-primary-bg-hover;
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_pop-up-menu.scss b/themesource/atlas_core/web/core/widgets/_pop-up-menu.scss
new file mode 100644
index 00000000..c042877c
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_pop-up-menu.scss
@@ -0,0 +1,121 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin pop-up-menu() {
+ /* ==========================================================================
+ Pop-up menu
+
+ Default Mendix pop-up menu
+ ========================================================================== */
+ .popupmenu {
+ position: relative;
+ display: inline-flex;
+ }
+
+ .popupmenu-trigger {
+ cursor: pointer;
+ }
+
+ .popupmenu-menu {
+ position: absolute;
+ z-index: 999;
+ display: none;
+ flex-direction: column;
+ width: max-content;
+ border-radius: 8px;
+ background-color: $bg-color;
+ box-shadow: 0 2px 20px 1px rgba(5, 15, 129, 0.05), 0 2px 16px 0 rgba(33, 43, 54, 0.08);
+
+ &.popupmenu-position-left {
+ top: 0;
+ left: 0;
+ transform: translateX(-100%);
+ }
+
+ &.popupmenu-position-right {
+ top: 0;
+ right: 0;
+ transform: translateX(100%);
+ }
+
+ &.popupmenu-position-top {
+ top: 0;
+ transform: translateY(-100%);
+ }
+
+ &.popupmenu-position-bottom {
+ bottom: 0;
+ transform: translateY(100%);
+ }
+
+ .popupmenu-basic-item:first-child,
+ .popupmenu-custom-item:first-child {
+ border-top-left-radius: 8px;
+ border-top-right-radius: 8px;
+ }
+
+ .popupmenu-basic-item:last-child,
+ .popupmenu-custom-item:last-child {
+ border-bottom-left-radius: 8px;
+ border-bottom-right-radius: 8px;
+ }
+ }
+
+ .popupmenu-basic-divider {
+ width: 100%;
+ height: 1px;
+ background-color: $brand-default;
+ }
+
+ .popupmenu-basic-item {
+ padding: 12px 16px;
+ color: $font-color-default;
+ font-size: 14px;
+
+ &:hover,
+ &:focus,
+ &:active {
+ cursor: pointer;
+ border-color: $bg-color-secondary;
+ background-color: $bg-color-secondary;
+ }
+
+ &-inverse {
+ color: $brand-inverse;
+ }
+
+ &-primary {
+ color: $brand-primary;
+ }
+
+ &-info {
+ color: $brand-info;
+ }
+
+ &-success {
+ color: $brand-success;
+ }
+
+ &-warning {
+ color: $brand-warning;
+ }
+
+ &-danger {
+ color: $brand-danger;
+ }
+ }
+
+ .popupmenu-custom-item {
+ &:hover,
+ &:focus,
+ &:active {
+ cursor: pointer;
+ border-color: $bg-color-secondary;
+ background-color: $bg-color-secondary;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_progress-bar.scss b/themesource/atlas_core/web/core/widgets/_progress-bar.scss
new file mode 100644
index 00000000..474fb70d
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_progress-bar.scss
@@ -0,0 +1,61 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin progress-bar() {
+ /* ==========================================================================
+ Progress bar
+
+ Default Mendix progress bar widget.
+ ========================================================================== */
+
+ .progress {
+ overflow: hidden;
+ display: flex;
+ flex-direction: row;
+ }
+
+ .progress-bar {
+ align-self: flex-start;
+ width: 0;
+ height: 100%;
+ transition: width 0.6s ease;
+ text-align: center;
+ color: #ffffff;
+ border-radius: $border-radius-default;
+ font-weight: $font-weight-semibold;
+ }
+
+ .progress-striped .progress-bar,
+ .progress-bar-striped {
+ background-image: linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+ background-size: 40px 40px;
+ }
+
+ .widget-progress-bar.active .progress-bar,
+ .progress.active .progress-bar,
+ .progress-bar.active {
+ animation: progress-bar-stripes 2s linear infinite;
+ }
+
+ @keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_progress-circle.scss b/themesource/atlas_core/web/core/widgets/_progress-circle.scss
new file mode 100644
index 00000000..86b28b51
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_progress-circle.scss
@@ -0,0 +1,22 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin progress-circle() {
+ /* ==========================================================================
+ Progress Circle
+
+ Default Mendix progress circle widget.
+ ========================================================================== */
+
+ .widget-progress-circle {
+ display: inline-block;
+ }
+
+ .widget-progress-circle-trail-path {
+ stroke: $bg-color;
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_progress.scss b/themesource/atlas_core/web/core/widgets/_progress.scss
new file mode 100644
index 00000000..fc87d33f
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_progress.scss
@@ -0,0 +1,65 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin progress() {
+ /* ==========================================================================
+ Progress
+
+ Default Mendix progress widget.
+ ========================================================================== */
+
+ .mx-progress {
+ color: $font-color-default;
+ background: $bg-color-secondary;
+
+ .mx-progress-message {
+ color: $font-color-default;
+ }
+
+ .mx-progress-indicator {
+ position: relative;
+ overflow: hidden;
+ width: 100%;
+ max-width: 100%;
+ height: 2px;
+ margin: auto;
+ padding: 0;
+ border-radius: 0;
+ background: $gray-lighter;
+
+ &:before,
+ &:after {
+ position: absolute;
+ top: 0;
+ left: 0;
+ display: block;
+ width: 50%;
+ height: 2px;
+ content: "";
+ transform: translate3d(-100%, 0, 0);
+ background: $brand-primary;
+ }
+
+ &::before {
+ animation: loader 2s infinite;
+ }
+
+ &::after {
+ animation: loader 2s -2s infinite;
+ }
+ }
+ }
+
+ @keyframes loader {
+ 0% {
+ transform: translate3d(-100%, 0, 0);
+ }
+ 100% {
+ transform: translate3d(200%, 0, 0);
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_radio-button.scss b/themesource/atlas_core/web/core/widgets/_radio-button.scss
new file mode 100644
index 00000000..ad2771a3
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_radio-button.scss
@@ -0,0 +1,108 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin radio-button() {
+ /* ==========================================================================
+ Radio button
+
+ Default Mendix radio button widget
+ ========================================================================== */
+ .mx-radiobuttons.inline .mx-radiogroup {
+ display: flex;
+ flex-direction: row;
+
+ .radio {
+ margin: 0 20px 0 0;
+ }
+ }
+
+ .mx-radiobuttons .radio:last-child {
+ margin-bottom: 0;
+ }
+
+ .radio {
+ display: flex !important; // Remove after mxui merge
+ align-items: center;
+ margin-top: 0;
+ }
+
+ input[type="radio"] {
+ position: relative !important; // Remove after mxui merge
+ width: 16px;
+ height: 16px;
+ margin: 0;
+ cursor: pointer;
+ -webkit-user-select: none;
+ user-select: none;
+ appearance: none;
+ -moz-appearance: none;
+ -webkit-appearance: none;
+
+ &:before,
+ &:after {
+ position: absolute;
+ display: block;
+ transition: all 0.3s ease-in-out;
+ border-radius: 50%;
+ }
+
+ &:before {
+ width: 100%;
+ height: 100%;
+ content: "";
+ border: 1px solid $form-input-border-color;
+ background-color: transparent;
+ }
+
+ &:after {
+ top: 50%;
+ left: 50%;
+ width: 50%;
+ height: 50%;
+ transform: translate(-50%, -50%);
+ pointer-events: none;
+ background-color: $form-input-border-focus-color;
+ }
+
+ &:not(:checked):after {
+ transform: translate(-50%, -50%) scale(0);
+ opacity: 0;
+ }
+
+ &:not(:disabled):not(:checked):hover:after {
+ background-color: $form-input-bg-hover;
+ }
+
+ &:checked:after,
+ &:not(:disabled):not(:checked):hover:after {
+ content: "";
+ transform: translate(-50%, -50%) scale(1);
+ opacity: 1;
+ }
+
+ &:checked:before {
+ border-color: $form-input-border-focus-color;
+ background-color: $form-input-bg;
+ }
+
+ &:disabled:before {
+ background-color: $form-input-bg-disabled;
+ }
+
+ &:checked:disabled:before {
+ border-color: rgba($form-input-border-focus-color, 0.4);
+ }
+
+ &:checked:disabled:after {
+ background-color: rgba($form-input-border-focus-color, 0.4);
+ }
+
+ & + label {
+ margin-left: $form-label-gutter;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_range-slider.scss b/themesource/atlas_core/web/core/widgets/_range-slider.scss
new file mode 100644
index 00000000..4cb59d45
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_range-slider.scss
@@ -0,0 +1,30 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+@import "../helpers/slider-color-variant";
+
+@mixin range-slider() {
+ /* ==========================================================================
+ Range slider
+
+ Default Mendix range slider widget.
+ ========================================================================== */
+
+ .widget-range-slider {
+ margin-bottom: 16px;
+ padding: 5px 10px;
+
+ .rc-slider-handle {
+ border-color: $brand-default;
+ }
+
+ .rc-slider.rc-slider-with-marks {
+ padding-bottom: 25px;
+ }
+
+ @include slider-color-variant($brand-primary);
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_rating.scss b/themesource/atlas_core/web/core/widgets/_rating.scss
new file mode 100644
index 00000000..14c65bef
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_rating.scss
@@ -0,0 +1,60 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin rating() {
+ /* ==========================================================================
+ Rating
+
+ Default Mendix rating widget.
+ ========================================================================== */
+
+ .widget-star-rating-empty {
+ color: #cccccc;
+ }
+
+ .widget-star-rating-full-widget {
+ color: #ffa611;
+ }
+
+ .widget-star-rating-full-default {
+ color: #ced0d3;
+ }
+
+ .widget-star-rating-font-medium {
+ font-size: 30px;
+ }
+
+ .widget-rating {
+ .rating-icon {
+ font-size: 24px;
+ }
+
+ .rating-icon-empty {
+ color: #ccc;
+ }
+
+ .rating-icon-full {
+ color: #ffa611;
+ }
+
+ .rating-item {
+ &:focus:not(:focus-visible) {
+ .rating-image,
+ .rating-icon {
+ outline: none;
+ }
+ }
+
+ &:focus-visible {
+ .rating-image,
+ .rating-icon {
+ outline: 1px solid $brand-primary;
+ }
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_simple-menu-bar.scss b/themesource/atlas_core/web/core/widgets/_simple-menu-bar.scss
new file mode 100644
index 00000000..1f84b669
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_simple-menu-bar.scss
@@ -0,0 +1,229 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+@mixin simple-menu-bar() {
+ /* ==========================================================================
+ Navigation
+
+ Default Mendix simple menu bar
+ ========================================================================== */
+ .mx-menubar {
+ padding: 0;
+ background-color: $navigation-bg;
+
+ ul.mx-menubar-list {
+ display: flex;
+ width: 100%;
+ min-height: 58px;
+
+ li.mx-menubar-item {
+ margin: 0;
+
+ > a {
+ display: flex;
+ overflow: hidden;
+ align-items: center;
+ justify-content: center;
+ height: 100%;
+ padding: $navigation-item-padding;
+ white-space: nowrap;
+ color: $navigation-color;
+ border-radius: 0;
+ font-size: $navigation-font-size;
+ font-weight: $font-weight-normal;
+
+ img {
+ margin-right: 0.5em;
+ }
+
+ .glyphicon {
+ top: -1px;
+ margin-right: 0.5em;
+ vertical-align: middle;
+ font-size: $navigation-glyph-size;
+ }
+ }
+
+ a:hover,
+ a:focus,
+ &:hover a,
+ &:focus a,
+ &.active a {
+ text-decoration: none;
+ color: $navigation-color-hover;
+ background-color: $navigation-bg-hover;
+ }
+
+ &.active a {
+ color: $navigation-color-active;
+ background-color: $navigation-bg-active;
+ }
+ }
+ }
+
+ /* remove focus */
+ &:focus {
+ outline: 0;
+ }
+ }
+
+ // Vertical variation specifics
+ .mx-menubar-vertical {
+ background-color: $navigation-bg;
+
+ ul.mx-menubar-list {
+ display: flex;
+ flex-direction: column;
+
+ li.mx-menubar-item {
+ display: block;
+
+ a {
+ border-bottom: 1px solid $navigation-border-color;
+ }
+ }
+ }
+ }
+
+ // Horizontal variation specifics
+ .mx-menubar-horizontal {
+ box-shadow: 2px 0 4px 0 rgba(0, 0, 0, 0.14);
+
+ ul.mx-menubar-list {
+ li.mx-menubar-item {
+ width: auto;
+
+ a {
+ width: 100%;
+ }
+ }
+ }
+
+ /* Two menu items */
+ &.menubar-col-6 ul.mx-menubar-list li.mx-menubar-item {
+ width: 50%;
+ }
+
+ /* Three menu items */
+ &.menubar-col-4 ul.mx-menubar-list li.mx-menubar-item {
+ width: 33.33333333%;
+ }
+
+ /* Four menu items */
+ &.menubar-col-3 ul.mx-menubar-list li.mx-menubar-item {
+ width: 25%;
+ }
+
+ /* Five menu items */
+ &.menubar-col-2 ul.mx-menubar-list li.mx-menubar-item {
+ width: 20%;
+ }
+ }
+
+ //== Regions
+ //## Behavior in the different regions
+ //-------------------------------------------------------------------------------------------------------------------//
+ // When used in topbar
+ .region-topbar {
+ .mx-menubar {
+ background-color: $navtopbar-bg;
+
+ ul.mx-menubar-list {
+ li.mx-menubar-item {
+ a {
+ color: $navtopbar-color;
+ font-size: $navtopbar-font-size;
+
+ .glyphicon {
+ font-size: $navtopbar-glyph-size;
+ }
+ }
+
+ a:hover,
+ a:focus,
+ &:hover a,
+ &:focus a,
+ &.active a {
+ color: $navtopbar-color-hover;
+ background-color: $navtopbar-bg-hover;
+ }
+
+ &.active a {
+ color: $navtopbar-color-active;
+ background-color: $navtopbar-bg-active;
+ }
+ }
+ }
+ }
+
+ // Vertical variation specifics
+ .mx-menubar-vertical {
+ background-color: $navtopbar-bg;
+
+ ul.mx-menubar-list {
+ li.mx-menubar-item {
+ a {
+ height: $navigation-item-height;
+ border-color: $navtopbar-border-color;
+ }
+ }
+ }
+ }
+ }
+
+ // When used in sidebar
+ .region-sidebar {
+ .mx-menubar {
+ background-color: $navsidebar-bg;
+
+ ul.mx-menubar-list {
+ li.mx-menubar-item {
+ a {
+ color: $navsidebar-color;
+ font-size: $navsidebar-font-size;
+
+ .glyphicon {
+ font-size: $navsidebar-glyph-size;
+ }
+ }
+
+ a:hover,
+ a:focus,
+ &:hover a,
+ &:focus a,
+ &.active a {
+ color: $navsidebar-color-hover;
+ background-color: $navsidebar-bg-hover;
+ }
+
+ &.active a {
+ color: $navsidebar-color-active;
+ background-color: $navsidebar-bg-active;
+ }
+ }
+ }
+ }
+
+ // Vertical variation specifics
+ .mx-menubar-vertical {
+ background-color: $navsidebar-bg;
+
+ ul.mx-menubar-list {
+ li.mx-menubar-item {
+ a {
+ border-color: $navsidebar-border-color;
+ }
+ }
+ }
+ }
+ }
+
+ @supports (padding-bottom: env(safe-area-inset-bottom)) {
+ .mx-menubar {
+ padding-bottom: env(safe-area-inset-bottom);
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_slider.scss b/themesource/atlas_core/web/core/widgets/_slider.scss
new file mode 100644
index 00000000..e4f1fce4
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_slider.scss
@@ -0,0 +1,31 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@import "../helpers/slider-color-variant";
+
+@mixin slider() {
+ /* ==========================================================================
+ Slider
+
+ Default Mendix slider widget.
+ ========================================================================== */
+
+ .widget-slider {
+ margin-bottom: 16px;
+ padding: 5px 10px;
+
+ .rc-slider-handle {
+ border-color: $brand-default;
+ }
+
+ .rc-slider.rc-slider-with-marks {
+ padding-bottom: 25px;
+ }
+
+ @include slider-color-variant($brand-primary);
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_switch.scss b/themesource/atlas_core/web/core/widgets/_switch.scss
new file mode 100644
index 00000000..01b89c4a
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_switch.scss
@@ -0,0 +1,193 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+$default-android-color: #6fbeb5;
+$default-ios-color: rgb(100, 189, 99);
+
+@mixin bootstrap-style-ios($brand-style) {
+ border-color: $brand-style;
+ background-color: $brand-style;
+ box-shadow: $brand-style 0 0 0 16px inset;
+}
+
+@mixin bootstrap-style-android($brand-style) {
+ background-color: lighten($brand-style, 10%);
+}
+
+@mixin style($brand-key, $brand-variable) {
+ div.widget-switch-brand-#{$brand-key} {
+ .widget-switch {
+ .widget-switch-btn-wrapper {
+ &.checked {
+ @include bootstrap-style-ios($brand-variable);
+ }
+ }
+ }
+ &.android {
+ .widget-switch {
+ .widget-switch-btn-wrapper {
+ &.checked {
+ @include bootstrap-style-android($brand-variable);
+
+ .widget-switch-btn {
+ background: $brand-variable;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+// maintained for backwards compatibility prior to Switch 3.0.0.
+@mixin ios {
+ .widget-switch-btn-wrapper {
+ &.checked {
+ &.widget-switch-btn-wrapper-default {
+ @include bootstrap-style-ios($default-ios-color);
+ }
+
+ &.widget-switch-btn-wrapper-success {
+ @include bootstrap-style-ios($brand-success);
+ }
+
+ &.widget-switch-btn-wrapper-info {
+ @include bootstrap-style-ios($brand-info);
+ }
+
+ &.widget-switch-btn-wrapper-primary {
+ @include bootstrap-style-ios($brand-primary);
+ }
+
+ &.widget-switch-btn-wrapper-warning {
+ @include bootstrap-style-ios($brand-warning);
+ }
+
+ &.widget-switch-btn-wrapper-danger {
+ @include bootstrap-style-ios($brand-danger);
+ }
+
+ &.widget-switch-btn-wrapper-inverse {
+ @include bootstrap-style-ios($brand-inverse);
+ }
+ }
+ }
+}
+
+// maintained for backwards compatibility prior to Switch 3.0.0.
+@mixin android {
+ .widget-switch-btn-wrapper {
+ &.checked {
+ &.widget-switch-btn-wrapper-default {
+ @include bootstrap-style-android($default-android-color);
+
+ .widget-switch-btn {
+ background: $default-android-color;
+ }
+ }
+
+ &.widget-switch-btn-wrapper-success {
+ @include bootstrap-style-android($brand-success);
+
+ .widget-switch-btn {
+ background: $brand-success;
+ }
+ }
+
+ &.widget-switch-btn-wrapper-info {
+ @include bootstrap-style-android($brand-info);
+
+ .widget-switch-btn {
+ background: $brand-info;
+ }
+ }
+
+ &.widget-switch-btn-wrapper-primary {
+ @include bootstrap-style-android($brand-primary);
+
+ .widget-switch-btn {
+ background: $brand-primary;
+ }
+ }
+
+ &.widget-switch-btn-wrapper-warning {
+ @include bootstrap-style-android($brand-warning);
+
+ .widget-switch-btn {
+ background: $brand-warning;
+ }
+ }
+
+ &.widget-switch-btn-wrapper-danger {
+ @include bootstrap-style-android($brand-danger);
+
+ .widget-switch-btn {
+ background: $brand-danger;
+ }
+ }
+
+ &.widget-switch-btn-wrapper-inverse {
+ @include bootstrap-style-android($brand-inverse);
+
+ .widget-switch-btn {
+ background: $brand-inverse;
+ }
+ }
+ }
+ }
+}
+
+@mixin switch() {
+ .widget-switch-btn-wrapper {
+ &:focus {
+ outline: 1px solid $brand-primary;
+ }
+ }
+
+ @include style("primary", $brand-primary);
+ @include style("secondary", $brand-default);
+ @include style("success", $brand-success);
+ @include style("warning", $brand-warning);
+ @include style("danger", $brand-danger);
+
+ // below is maintained for backwards compatibility prior to Switch 3.0.0.
+ div {
+ &.widget-switch {
+ &.iOS {
+ @include ios;
+ }
+
+ &.android {
+ @include android;
+ }
+
+ &.auto {
+ @include ios;
+ }
+ }
+ }
+
+ html {
+ div {
+ &.dj_android {
+ .widget-switch {
+ &.auto {
+ @include android;
+ }
+ }
+ }
+
+ &.dj_ios {
+ .widget-switch {
+ &.auto {
+ @include ios;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_tab-container.scss b/themesource/atlas_core/web/core/widgets/_tab-container.scss
new file mode 100644
index 00000000..6720d8d3
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_tab-container.scss
@@ -0,0 +1,110 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin tab-container() {
+ /* ==========================================================================
+ Tab Container
+
+ Default Mendix Tab Container Widget. Tab containers are used to show information categorized into multiple tab pages.
+ This can be very useful if the amount of information that has to be displayed is larger than the amount of space on the screen
+ ========================================================================== */
+
+ .mx-tabcontainer {
+ .mx-tabcontainer-tabs {
+ margin-bottom: $spacing-medium;
+ border-color: $tabs-border-color;
+ display: flex;
+
+ > li {
+ float: none;
+ }
+
+ & > li > a {
+ margin-right: 0;
+ transition: all 0.2s ease-in-out;
+ color: $tabs-color;
+ font-weight: $font-weight-normal;
+ border-radius: $border-radius-default $border-radius-default 0 0;
+
+ &:hover,
+ &:focus {
+ background-color: $tabs-bg-hover;
+ }
+ }
+
+ & > li.active > a,
+ & > li.active > a:hover,
+ & > li.active > a:focus {
+ color: $tabs-color-active;
+ border: 1px solid $tabs-border-color;
+ border-bottom-color: #fff;
+ background-color: $tabs-bg;
+ }
+ }
+ }
+
+ // Tab Styling Specific for mobile
+ .tab-mobile.mx-tabcontainer {
+ & > .mx-tabcontainer-tabs {
+ margin: 0;
+ text-align: center;
+ border-style: none;
+ background-color: $brand-primary;
+
+ li {
+ display: table-cell;
+ float: none; // reset bootstrap
+ width: 1%;
+ margin: 0;
+ text-align: center;
+ border-style: none;
+ border-radius: 0;
+
+ a {
+ padding: 16px;
+ text-transform: uppercase;
+ color: #ffffff;
+ border-width: 0 1px 0 0;
+ border-style: solid;
+ border-color: rgba(255, 255, 255, 0.3);
+ border-radius: 0;
+ font-size: 12px;
+ font-weight: $font-weight-normal;
+
+ &:hover,
+ &:focus {
+ background-color: inherit;
+ }
+ }
+
+ &:last-child a {
+ border-right: none;
+ }
+
+ &.active > a,
+ &.active > a:hover,
+ &.active > a:focus {
+ color: #ffffff;
+ border-style: none;
+ border-radius: 0;
+ background-color: mix($brand-primary, #000000, 80%);
+ }
+ }
+ }
+ }
+
+ .mx-tabcontainer-badge {
+ margin-left: $spacing-small;
+ border-radius: $font-size-small;
+ background-color: $label-primary-bg;
+ color: $label-primary-color;
+ font-size: $font-size-small;
+ font-weight: $font-weight-bold;
+ line-height: 1;
+ padding: $spacing-small/2 $spacing-small;
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_table.scss b/themesource/atlas_core/web/core/widgets/_table.scss
new file mode 100644
index 00000000..0e8aa2c3
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_table.scss
@@ -0,0 +1,89 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin table() {
+ /* ==========================================================================
+ Table
+
+ Default Mendix table widget. Tables can be used to lend structure to a page. They contain a number of rows (tr) and columns, the intersection of which is called a cell (td). Each cell can contain widgets
+ ========================================================================== */
+
+ th {
+ font-weight: $font-weight-bold;
+ }
+
+ html body .mx-page table.mx-table {
+ th,
+ td {
+ &.nopadding {
+ padding: 0;
+ }
+ }
+ }
+
+ table.mx-table {
+ > tbody {
+ /* Table row */
+ > tr {
+ /* Table header */
+ > th {
+ padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom
+ $padding-table-cell-left;
+
+ s * {
+ color: $form-label-color;
+ font-weight: $font-weight-bold;
+ font-weight: $form-label-weight;
+ }
+
+ > label {
+ padding-top: 8px;
+ padding-bottom: 6px; // Aligns label in the middle if there is no input field next to it.
+ }
+ }
+
+ /* Table cells */
+ > td {
+ padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom
+ $padding-table-cell-left;
+
+ > div > label,
+ .mx-referenceselector-input-wrapper label {
+ padding-top: 8px;
+ padding-bottom: 6px; // Aligns label in the middle if there is no input field next to it.
+ }
+ }
+ }
+ }
+ }
+
+ // Default Mendix Table Widget inside TemplateGrid
+ .mx-templategrid table.mx-table {
+ > tbody {
+ > tr {
+ > th,
+ > td {
+ padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom
+ $padding-table-cell-left;
+ }
+ }
+ }
+ }
+
+ // Default Mendix Table Widget inside Listview
+ .mx-list table.mx-table {
+ > tbody {
+ > tr {
+ > th,
+ > td {
+ padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom
+ $padding-table-cell-left;
+ }
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_template-grid.scss b/themesource/atlas_core/web/core/widgets/_template-grid.scss
new file mode 100644
index 00000000..7c9ecdb9
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_template-grid.scss
@@ -0,0 +1,39 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin template-grid() {
+ /* ==========================================================================
+ Template grid
+
+ Default Mendix template grid Widget. The template grid shows a list of objects in a tile view. For example, a template grid can show a list of products. The template grid has a lot in common with the data grid. The main difference is that the objects are shown in templates (a sort of small data view) instead of rows
+ ========================================================================== */
+
+ .mx-templategrid {
+ .mx-templategrid-content-wrapper {
+ table-layout: fixed;
+ }
+
+ .mx-templategrid-item {
+ padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;
+ cursor: default;
+ background-color: $grid-bg;
+
+ &:hover {
+ background-color: transparent;
+ }
+
+ &.selected {
+ background-color: $grid-bg-selected !important;
+ }
+ }
+
+ .mx-layoutgrid {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_timeline.scss b/themesource/atlas_core/web/core/widgets/_timeline.scss
new file mode 100644
index 00000000..4d83fe88
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_timeline.scss
@@ -0,0 +1,141 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin timeline() {
+ /* ==========================================================================
+ Timeline
+
+ Widget styles
+ ========================================================================== */
+
+ //Timeline grouping
+ .widget-timeline-date-header {
+ display: flex;
+ justify-content: center;
+ width: $timeline-grouping-size;
+ overflow-wrap: break-word;
+ padding: $spacing-small;
+ border: 1px solid $timeline-grouping-border-color;
+ border-radius: $timeline-grouping-border-radius;
+ }
+
+ //Timeline entries
+ .widget-timeline-events-wrapper {
+ display: flex;
+ flex: 1;
+ margin-left: $timeline-grouping-size/2;
+ padding: $spacing-large 0 0 0;
+ border-left: 1px solid $timeline-border-color;
+
+ ul {
+ flex: 1;
+ padding: 0;
+ list-style: none;
+ margin-bottom: 0;
+ }
+ }
+
+ //Timeline entry
+ .widget-timeline-event {
+ flex: 1;
+ position: relative;
+ margin-left: -1px;
+ padding: 0 $spacing-large $spacing-large $spacing-large;
+ margin-bottom: $spacing-medium;
+
+ &.clickable {
+ cursor: pointer;
+ transition: background 0.8s;
+
+ &:hover {
+ .widget-timeline-title {
+ }
+ }
+ }
+ }
+
+ //Timeline entry content wrapper
+ .widget-timeline-icon-wrapper {
+ position: absolute;
+ top: 0;
+ left: 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ transform: translateX(-50%);
+
+ .glyphicon {
+ font-size: $timeline-icon-size;
+ }
+
+ img {
+ max-width: 100%;
+ max-height: 100%;
+ }
+ }
+
+ .widget-timeline-content-wrapper {
+ display: flex;
+
+ .widget-timeline-date-time-wrapper {
+ order: 2;
+ margin-right: 0;
+ }
+
+ .widget-timeline-info-wrapper {
+ flex: 1;
+ order: 1;
+ margin-right: $spacing-medium;
+ }
+ }
+
+ .timeline-with-image .widget-timeline-content-wrapper {
+ display: flex;
+
+ .widget-timeline-date-time-wrapper {
+ order: 1;
+ margin-right: $spacing-medium;
+ }
+
+ .widget-timeline-info-wrapper {
+ flex: 1;
+ order: 2;
+ }
+ }
+
+ //Timeline entry components
+ .widget-timeline-icon-circle {
+ width: $timeline-icon-size;
+ height: $timeline-icon-size;
+ border-radius: 50%;
+ background-color: $timeline-icon-color;
+ }
+
+ .widget-timeline-title {
+ @extend h5;
+ }
+
+ .widget-timeline-description {
+ }
+
+ .widget-timeline-no-divider {
+ }
+
+ .widget-eventTime {
+ @extend h5;
+ color: $timeline-event-time-color;
+ }
+
+ .timeline-entry-image {
+ display: flex;
+ justify-content: center;
+ align-content: center;
+ border-radius: $border-radius-default;
+ height: $timeline-image-size;
+ width: $timeline-image-size;
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_tooltip.scss b/themesource/atlas_core/web/core/widgets/_tooltip.scss
new file mode 100644
index 00000000..49043271
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_tooltip.scss
@@ -0,0 +1,19 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin tooltip() {
+ /* ==========================================================================
+ Tooltip
+
+ Widget styles
+ ========================================================================== */
+
+ // Tooltip inline
+ .widget-tooltip-inline {
+ display: inline-block;
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgets/_typography.scss b/themesource/atlas_core/web/core/widgets/_typography.scss
new file mode 100644
index 00000000..2b001f30
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgets/_typography.scss
@@ -0,0 +1,78 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin typography() {
+ /* ==========================================================================
+ Typography
+ ========================================================================== */
+
+ p {
+ line-height: $line-height-base * 1.25;
+ margin: 0 0 $spacing-small;
+ }
+
+ .mx-title {
+ margin: $font-header-margin;
+ color: $font-color-header;
+ font-size: $font-size-h1;
+ font-weight: $font-weight-header;
+ }
+
+ h1,
+ .h1,
+ .h1 > * {
+ font-size: $font-size-h1;
+ }
+
+ h2,
+ .h2,
+ .h2 > * {
+ font-size: $font-size-h2;
+ }
+
+ h3,
+ .h3,
+ .h3 > * {
+ font-size: $font-size-h3;
+ }
+
+ h4,
+ .h4,
+ .h4 > * {
+ font-size: $font-size-h4;
+ }
+
+ h5,
+ .h5,
+ .h5 > * {
+ font-size: $font-size-h5;
+ }
+
+ h6,
+ .h6,
+ .h6 > * {
+ font-size: $font-size-h6;
+ }
+
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6,
+ .h1,
+ .h2,
+ .h3,
+ .h4,
+ .h5,
+ .h6 {
+ margin: $font-header-margin;
+ color: $font-color-header;
+ font-weight: $font-weight-header;
+ line-height: 1.3;
+ }
+}
diff --git a/themesource/atlas_core/web/core/widgetscustom/_dijit-widget.scss b/themesource/atlas_core/web/core/widgetscustom/_dijit-widget.scss
new file mode 100644
index 00000000..8e338f7e
--- /dev/null
+++ b/themesource/atlas_core/web/core/widgetscustom/_dijit-widget.scss
@@ -0,0 +1,206 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+@mixin dijit-widget() {
+ /*
+ * Mendix Documentation
+ * Special styles for presenting components
+ */
+
+ /*
+ * Dijit Widgets
+ *
+ * Default Dojo Dijit Widgets
+ */
+
+ /*
+ * Dijit Tooltip Widget
+ *
+ * Default tooltip used for Mendix widgets
+ */
+
+ .mx-tooltip {
+ .dijitTooltipContainer {
+ border-width: 1px;
+ border-color: $gray-light;
+ border-radius: 4px;
+ background: #ffffff;
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+
+ .mx-tooltip-content {
+ padding: 12px;
+ }
+
+ .form-group {
+ margin-bottom: 4px;
+ }
+ }
+
+ .dijitTooltipConnector {
+ width: 0;
+ height: 0;
+ margin-left: -8px;
+ border-width: 10px 10px 10px 0;
+ border-style: solid;
+ border-color: transparent;
+ border-right-color: $gray-light;
+ }
+ }
+
+ /*
+ * Dijit Border Container
+ *
+ * Used in Mendix as split pane containers
+ */
+
+ .dijitBorderContainer {
+ padding: 8px;
+ background-color: #fcfcfc;
+
+ .dijitSplitterV,
+ .dijitGutterV {
+ width: 5px;
+ border: 0;
+ background: #fcfcfc;
+ }
+
+ .dijitSplitterH,
+ .dijitGutterH {
+ height: 5px;
+ border: 0;
+ background: #fcfcfc;
+ }
+
+ .dijitSplitterH {
+ .dijitSplitterThumb {
+ top: 2px;
+ width: 19px;
+ height: 1px;
+ background: #b0b0b0;
+ }
+ }
+
+ .dijitSplitterV {
+ .dijitSplitterThumb {
+ left: 2px;
+ width: 1px;
+ height: 19px;
+ background: #b0b0b0;
+ }
+ }
+
+ .dijitSplitContainer-child,
+ .dijitBorderContainer-child {
+ border: 1px solid #cccccc;
+ }
+
+ .dijitBorderContainer-dijitTabContainerTop,
+ .dijitBorderContainer-dijitTabContainerBottom,
+ .dijitBorderContainer-dijitTabContainerLeft,
+ .dijitBorderContainer-dijitTabContainerRight {
+ border: none;
+ }
+
+ .dijitBorderContainer-dijitBorderContainer {
+ padding: 0;
+ border: none;
+ }
+
+ .dijitSplitterActive {
+ /* For IE8 and earlier */
+ margin: 0;
+ opacity: 0.6;
+ background-color: #aaaaaa;
+ background-image: none;
+ font-size: 1px;
+ }
+
+ .dijitSplitContainer-dijitContentPane,
+ .dijitBorderContainer-dijitContentPane {
+ padding: 8px;
+ background-color: #ffffff;
+ }
+ }
+
+ /*
+ * Dijit Menu Popup
+ *
+ * Used in datepickers and calendar widgets
+ */
+
+ .dijitMenuPopup {
+ margin-top: 8px;
+
+ .dijitMenu {
+ display: block;
+ width: 200px !important;
+ margin-top: 0; // No top margin because there is no parent with margin bottom
+ padding: 12px 8px;
+ border-radius: 3px;
+ background: $brand-inverse;
+
+ &:after {
+ position: absolute;
+ bottom: 100%;
+ left: 20px;
+ width: 0;
+ height: 0;
+ margin-left: -8px;
+ content: " ";
+ pointer-events: none;
+ border: medium solid transparent;
+ border-width: 8px;
+ border-bottom-color: $brand-inverse;
+ }
+
+ // Menu item
+ .dijitMenuItem {
+ background: transparent;
+
+ .dijitMenuItemLabel {
+ display: block;
+ overflow: hidden;
+ width: 180px !important;
+ padding: 8px;
+ text-overflow: ellipsis;
+ color: #ffffff;
+ border-radius: 3px;
+ }
+
+ // Hover
+ &.dijitMenuItemHover {
+ background: none;
+
+ .dijitMenuItemLabel {
+ background: $brand-primary;
+ }
+ }
+ }
+
+ // New label
+ .tg_newlabelmenuitem {
+ .dijitMenuItemLabel {
+ font-weight: $font-weight-bold;
+ }
+ }
+
+ // Seperator
+ .dijitMenuSeparator {
+ td {
+ padding: 0;
+ border-bottom-width: 3px;
+ }
+
+ .dijitMenuSeparatorIconCell {
+ > div {
+ margin: 0; //override dijit styling
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/design-properties.json b/themesource/atlas_core/web/design-properties.json
new file mode 100644
index 00000000..7ec31ee8
--- /dev/null
+++ b/themesource/atlas_core/web/design-properties.json
@@ -0,0 +1,1347 @@
+{
+ "Widget": [
+ {
+ "name": "Spacing top",
+ "type": "Dropdown",
+ "description": "The spacing above this element.",
+ "options": [
+ {
+ "name": "Outer none",
+ "oldNames": ["None"],
+ "class": "spacing-outer-top-none"
+ },
+ {
+ "name": "Outer small",
+ "oldNames": ["Small"],
+ "class": "spacing-outer-top"
+ },
+ {
+ "name": "Outer medium",
+ "oldNames": ["Medium"],
+ "class": "spacing-outer-top-medium"
+ },
+ {
+ "name": "Outer large",
+ "oldNames": ["Large"],
+ "class": "spacing-outer-top-large"
+ },
+ {
+ "name": "Inner none",
+ "class": "spacing-inner-top-none"
+ },
+ {
+ "name": "Inner small",
+ "class": "spacing-inner-top"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacing-inner-top-medium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacing-inner-top-large"
+ }
+ ]
+ },
+ {
+ "name": "Spacing bottom",
+ "type": "Dropdown",
+ "description": "The spacing below this element.",
+ "options": [
+ {
+ "name": "Outer none",
+ "oldNames": ["None"],
+ "class": "spacing-outer-bottom-none"
+ },
+ {
+ "name": "Outer small",
+ "oldNames": ["Small"],
+ "class": "spacing-outer-bottom"
+ },
+ {
+ "name": "Outer medium",
+ "oldNames": ["Medium"],
+ "class": "spacing-outer-bottom-medium"
+ },
+ {
+ "name": "Outer large",
+ "oldNames": ["Large"],
+ "class": "spacing-outer-bottom-large"
+ },
+ {
+ "name": "Inner none",
+ "class": "spacing-inner-bottom-none"
+ },
+ {
+ "name": "Inner small",
+ "class": "spacing-inner-bottom"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacing-inner-bottom-medium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacing-inner-bottom-large"
+ }
+ ]
+ },
+ {
+ "name": "Spacing left",
+ "type": "Dropdown",
+ "description": "The spacing to the left of this element.",
+ "options": [
+ {
+ "name": "Outer none",
+ "oldNames": ["None"],
+ "class": "spacing-outer-left-none"
+ },
+ {
+ "name": "Outer small",
+ "oldNames": ["Small"],
+ "class": "spacing-outer-left"
+ },
+ {
+ "name": "Outer medium",
+ "oldNames": ["Medium"],
+ "class": "spacing-outer-left-medium"
+ },
+ {
+ "name": "Outer large",
+ "oldNames": ["Large"],
+ "class": "spacing-outer-left-large"
+ },
+ {
+ "name": "Inner none",
+ "class": "spacing-inner-left-none"
+ },
+ {
+ "name": "Inner small",
+ "class": "spacing-inner-left"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacing-inner-left-medium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacing-inner-left-large"
+ }
+ ]
+ },
+ {
+ "name": "Spacing right",
+ "type": "Dropdown",
+ "description": "The spacing to the right of this element.",
+ "options": [
+ {
+ "name": "Outer none",
+ "oldNames": ["None"],
+ "class": "spacing-outer-right-none"
+ },
+ {
+ "name": "Outer small",
+ "oldNames": ["Small"],
+ "class": "spacing-outer-right"
+ },
+ {
+ "name": "Outer medium",
+ "oldNames": ["Medium"],
+ "class": "spacing-outer-right-medium"
+ },
+ {
+ "name": "Outer large",
+ "oldNames": ["Large"],
+ "class": "spacing-outer-right-large"
+ },
+ {
+ "name": "Inner none",
+ "class": "spacing-inner-right-none"
+ },
+ {
+ "name": "Inner small",
+ "class": "spacing-inner-right"
+ },
+ {
+ "name": "Inner medium",
+ "class": "spacing-inner-right-medium"
+ },
+ {
+ "name": "Inner large",
+ "class": "spacing-inner-right-large"
+ }
+ ]
+ },
+ {
+ "name": "Align self",
+ "oldNames": ["Align Self"],
+ "type": "Dropdown",
+ "description": "Float the element to the left or to the right.",
+ "options": [
+ {
+ "name": "Left",
+ "class": "pull-left"
+ },
+ {
+ "name": "Right",
+ "class": "pull-right"
+ }
+ ]
+ },
+ {
+ "name": "Hide on phone",
+ "oldNames": ["Hide On Phone"],
+ "type": "Toggle",
+ "description": "Hide element on phone.",
+ "class": "hide-phone"
+ },
+ {
+ "name": "Hide on tablet",
+ "oldNames": ["Hide On Tablet"],
+ "type": "Toggle",
+ "description": "Hide element on tablet.",
+ "class": "hide-tablet"
+ },
+ {
+ "name": "Hide on desktop",
+ "oldNames": ["Hide On Desktop"],
+ "type": "Toggle",
+ "description": "Hide element on desktop.",
+ "class": "hide-desktop"
+ }
+ ],
+ "DivContainer": [
+ {
+ "name": "Align content",
+ "type": "Dropdown",
+ "description": "Align content of this element left, right or center it. Align elements inside the container as a row or as a column.",
+ "options": [
+ {
+ "name": "Left align as a row",
+ "oldNames": ["Left align as row"],
+ "class": "row-left"
+ },
+ {
+ "name": "Center align as a row",
+ "oldNames": ["Center align as row"],
+ "class": "row-center"
+ },
+ {
+ "name": "Right align as a row",
+ "oldNames": ["Right align as row"],
+ "class": "row-right"
+ },
+ {
+ "name": "Left align as a column",
+ "oldNames": ["Left align as column"],
+ "class": "col-left"
+ },
+ {
+ "name": "Center align as a column",
+ "oldNames": ["Center align as column"],
+ "class": "col-center"
+ },
+ {
+ "name": "Right align as a column",
+ "oldNames": ["Right align as column"],
+ "class": "col-right"
+ }
+ ]
+ },
+ {
+ "name": "Background color",
+ "type": "Dropdown",
+ "description": "Change the background color of the container.",
+ "options": [
+ {
+ "name": "Background Primary",
+ "oldNames": ["Background Default"],
+ "class": "background-main"
+ },
+ {
+ "name": "Background Secondary",
+ "oldNames": ["Background Dashboard"],
+ "class": "background-secondary"
+ },
+ {
+ "name": "Brand Primary",
+ "oldNames": ["Primary"],
+ "class": "background-primary"
+ },
+ {
+ "name": "Brand Secondary",
+ "oldNames": ["Default", "Brand Default"],
+ "class": "background-default"
+ },
+ {
+ "name": "Brand Success",
+ "oldNames": ["Success"],
+ "class": "background-success"
+ },
+ {
+ "name": "Brand Warning",
+ "oldNames": ["Warning"],
+ "class": "background-warning"
+ },
+ {
+ "name": "Brand Danger",
+ "oldNames": ["Danger"],
+ "class": "background-danger"
+ },
+ {
+ "name": "Brand Gradient",
+ "class": "background-brand-gradient"
+ }
+ ]
+ },
+ {
+ "name": "Shade",
+ "type": "Dropdown",
+ "description": "Apply a shade to your background color",
+ "options": [
+ {
+ "name": "Light",
+ "class": "background-light"
+ },
+ {
+ "name": "Dark",
+ "class": "background-dark"
+ }
+ ]
+ },
+ {
+ "name": "Add shadow",
+ "type": "Dropdown",
+ "description": "Add a shadow to this element",
+ "options": [
+ {
+ "name": "Small",
+ "class": "shadow-small"
+ },
+ {
+ "name": "Medium",
+ "class": "shadow-medium"
+ },
+ {
+ "name": "Large",
+ "class": "shadow-large"
+ }
+ ]
+ }
+ ],
+ "Button": [
+ {
+ "name": "Size",
+ "type": "Dropdown",
+ "description": "Size of the buttons",
+ "options": [
+ {
+ "name": "Small",
+ "class": "btn-sm"
+ },
+ {
+ "name": "Large",
+ "class": "btn-lg"
+ }
+ ]
+ },
+ {
+ "name": "Full width",
+ "type": "Toggle",
+ "description": "Extend the button to the full width of the container it is placed in.",
+ "class": "btn-block"
+ },
+ {
+ "name": "Border",
+ "oldNames": ["Bordered"],
+ "type": "Toggle",
+ "description": "Style the button with a transparent background, a colored border, and colored text.",
+ "class": "btn-bordered"
+ },
+ {
+ "name": "Align icon",
+ "type": "Dropdown",
+ "description": "Place the icon to the right or on top of the button.",
+ "options": [
+ {
+ "name": "Right",
+ "class": "btn-icon-right"
+ },
+ {
+ "name": "Top",
+ "class": "btn-icon-top"
+ }
+ ]
+ }
+ ],
+ "ListView": [
+ {
+ "name": "Style",
+ "type": "Dropdown",
+ "description": "Change the appearance of rows in the list view.",
+ "options": [
+ {
+ "name": "Lined",
+ "class": "listview-lined"
+ },
+ {
+ "name": "Striped",
+ "class": "listview-striped"
+ },
+ {
+ "name": "Bordered",
+ "class": "listview-bordered"
+ },
+ {
+ "name": "No Styling",
+ "class": "listview-stylingless"
+ }
+ ]
+ },
+ {
+ "name": "Hover style",
+ "type": "Toggle",
+ "description": "Highlight a row when hovering over it. Only useful when the row is clickable.",
+ "class": "listview-hover"
+ },
+ {
+ "name": "Row Size",
+ "type": "Dropdown",
+ "description": "Change the row spacing of the list view.",
+ "options": [
+ {
+ "name": "Small",
+ "class": "listview-sm"
+ },
+ {
+ "name": "Large",
+ "class": "listview-lg"
+ }
+ ]
+ }
+ ],
+ "DataGrid": [
+ {
+ "name": "Style",
+ "type": "Dropdown",
+ "description": "Choose one of the following styles to change the appearance of the data grid.",
+ "options": [
+ {
+ "name": "Striped",
+ "class": "datagrid-striped"
+ },
+ {
+ "name": "Bordered",
+ "class": "datagrid-bordered"
+ },
+ {
+ "name": "Lined",
+ "class": "datagrid-lined"
+ }
+ ]
+ },
+ {
+ "name": "Hover style",
+ "type": "Toggle",
+ "description": "Enable data grid hover to make the rows hoverable.",
+ "class": "datagrid-hover"
+ },
+ {
+ "name": "Row size",
+ "type": "Dropdown",
+ "description": "Increase or decrease the row spacing of the data grid row.",
+ "options": [
+ {
+ "name": "Small",
+ "class": "datagrid-sm"
+ },
+ {
+ "name": "Large",
+ "class": "datagrid-lg"
+ }
+ ]
+ }
+ ],
+ "TemplateGrid": [
+ {
+ "name": "Style",
+ "type": "Dropdown",
+ "description": "Choose one of the following styles to change the appearance of the template grid.",
+ "options": [
+ {
+ "name": "Striped",
+ "class": "templategrid-striped"
+ },
+ {
+ "name": "Bordered",
+ "class": "templategrid-bordered"
+ },
+ {
+ "name": "Lined",
+ "class": "templategrid-lined"
+ },
+ {
+ "name": "No styling",
+ "class": "templategrid-stylingless"
+ }
+ ]
+ },
+ {
+ "name": "Hover style",
+ "type": "Toggle",
+ "description": "Enable template grid hover to make the rows hoverable.",
+ "class": "templategrid-hover"
+ }
+ ],
+ "GroupBox": [
+ {
+ "name": "Style",
+ "type": "Dropdown",
+ "description": "Choose one of the following styles to change the appearance of the groupbox.",
+ "options": [
+ {
+ "name": "Brand Primary",
+ "oldNames": ["Primary"],
+ "class": "groupbox-primary"
+ },
+ {
+ "name": "Brand Secondary",
+ "oldNames": ["Default", "Brand Default"],
+ "class": "groupbox-secondary"
+ },
+ {
+ "name": "Brand Success",
+ "oldNames": ["Success"],
+ "class": "groupbox-success"
+ },
+ {
+ "name": "Brand Warning",
+ "oldNames": ["Warning"],
+ "class": "groupbox-warning"
+ },
+ {
+ "name": "Brand Danger",
+ "oldNames": ["Danger"],
+ "class": "groupbox-danger"
+ },
+ {
+ "name": "Transparent",
+ "class": "groupbox-transparent"
+ }
+ ]
+ },
+ {
+ "name": "Callout style",
+ "type": "Toggle",
+ "description": "Enable the groupbox callout functionality to highlight the importance of the groupbox.",
+ "class": "groupbox-callout"
+ }
+ ],
+ "StaticImageViewer": [
+ {
+ "name": "Style",
+ "type": "Dropdown",
+ "description": "Choose the style of your image.",
+ "options": [
+ {
+ "name": "Rounded",
+ "class": "img-rounded"
+ },
+ {
+ "name": "Thumbnail",
+ "class": "img-thumbnail"
+ },
+ {
+ "name": "Circle",
+ "class": "img-circle"
+ }
+ ]
+ },
+ {
+ "name": "Center",
+ "type": "Toggle",
+ "description": "Align the image in the center of an element.",
+ "class": "img-center"
+ },
+ {
+ "name": "Fit",
+ "type": "Dropdown",
+ "description": "Choose the image fit.",
+ "options": [
+ {
+ "name": "Fill",
+ "class": "img-fill"
+ },
+ {
+ "name": "Contain",
+ "class": "img-contain"
+ },
+ {
+ "name": "Cover",
+ "class": "img-cover"
+ },
+ {
+ "name": "Scale-down",
+ "class": "img-scale-down"
+ }
+ ]
+ }
+ ],
+ "DynamicImageViewer": [
+ {
+ "name": "Style",
+ "type": "Dropdown",
+ "description": "Choose the style of your image.",
+ "options": [
+ {
+ "name": "Rounded",
+ "class": "img-rounded"
+ },
+ {
+ "name": "Thumbnail",
+ "class": "img-thumbnail"
+ },
+ {
+ "name": "Circle",
+ "class": "img-circle"
+ }
+ ]
+ },
+ {
+ "name": "Center",
+ "type": "Toggle",
+ "description": "Align the image in the center of an element.",
+ "class": "img-center"
+ },
+ {
+ "name": "Fit",
+ "type": "Dropdown",
+ "description": "Choose the image fit.",
+ "options": [
+ {
+ "name": "Fill",
+ "class": "img-fill"
+ },
+ {
+ "name": "Contain",
+ "class": "img-contain"
+ },
+ {
+ "name": "Cover",
+ "class": "img-cover"
+ },
+ {
+ "name": "Scale-down",
+ "class": "img-scale-down"
+ }
+ ]
+ }
+ ],
+ "Label": [
+ {
+ "name": "Style",
+ "type": "Dropdown",
+ "description": "Change the appearance of a label.",
+ "options": [
+ {
+ "name": "Brand Primary",
+ "oldNames": ["Primary"],
+ "class": "label-primary"
+ },
+ {
+ "name": "Brand Secondary",
+ "oldNames": ["Default", "Brand Default"],
+ "class": "label-secondary"
+ },
+ {
+ "name": "Brand Success",
+ "oldNames": ["Success"],
+ "class": "label-success"
+ },
+ {
+ "name": "Brand Warning",
+ "oldNames": ["Warning"],
+ "class": "label-warning"
+ },
+ {
+ "name": "Brand Danger",
+ "oldNames": ["Danger"],
+ "class": "label-danger"
+ }
+ ]
+ }
+ ],
+ "TabContainer": [
+ {
+ "name": "Style",
+ "type": "Dropdown",
+ "description": "Change the appearance of the tab container",
+ "options": [
+ {
+ "name": "Pills",
+ "class": "tab-pills"
+ },
+ {
+ "name": "Lined",
+ "class": "tab-lined"
+ },
+ {
+ "name": "Bordered",
+ "class": "tab-bordered"
+ },
+ {
+ "name": "Wizard",
+ "class": "tab-wizard"
+ }
+ ]
+ },
+ {
+ "name": "Tab Position",
+ "type": "Dropdown",
+ "description": "Change the position of the tabs",
+ "options": [
+ {
+ "name": "Left",
+ "class": "tab-left"
+ },
+ {
+ "name": "Center",
+ "class": "tab-center"
+ },
+ {
+ "name": "Right",
+ "class": "tab-right"
+ }
+ ]
+ },
+ {
+ "name": "Justify",
+ "type": "Toggle",
+ "description": "Justify the tabs to 100%",
+ "class": "tab-justified"
+ }
+ ],
+ "DynamicText": [
+ {
+ "name": "Size",
+ "type": "Dropdown",
+ "description": "Make the text smaller or larger.",
+ "options": [
+ {
+ "name": "Small",
+ "class": "text-small"
+ },
+ {
+ "name": "Large",
+ "class": "text-large"
+ }
+ ]
+ },
+ {
+ "name": "Weight",
+ "oldNames": ["Font Weight"],
+ "type": "Dropdown",
+ "description": "Emphasize the text with a heavier or lighter font weight",
+ "options": [
+ {
+ "name": "Light",
+ "class": "text-light"
+ },
+ {
+ "name": "Normal",
+ "class": "text-normal"
+ },
+ {
+ "name": "Semibold",
+ "class": "text-semibold"
+ },
+ {
+ "name": "Bold",
+ "class": "text-bold"
+ }
+ ]
+ },
+ {
+ "name": "Color",
+ "type": "Dropdown",
+ "description": "Change the color of text.",
+ "options": [
+ {
+ "name": "Header color",
+ "class": "text-header"
+ },
+ {
+ "name": "Detail color",
+ "class": "text-detail"
+ },
+ {
+ "name": "Brand Primary",
+ "oldNames": ["Primary"],
+ "class": "text-primary"
+ },
+ {
+ "name": "Brand Secondary",
+ "oldNames": ["Default", "Brand Default"],
+ "class": "text-secondary"
+ },
+ {
+ "name": "Brand Success",
+ "oldNames": ["Success"],
+ "class": "text-success"
+ },
+ {
+ "name": "Brand Warning",
+ "oldNames": ["Warning"],
+ "class": "text-warning"
+ },
+ {
+ "name": "Brand Danger",
+ "oldNames": ["Danger"],
+ "class": "text-danger"
+ },
+ {
+ "name": "White",
+ "class": "text-white"
+ }
+ ]
+ },
+ {
+ "name": "Alignment",
+ "type": "Dropdown",
+ "description": "Align the text.",
+ "options": [
+ {
+ "name": "Left",
+ "class": "text-left d-block"
+ },
+ {
+ "name": "Center",
+ "class": "text-center d-block"
+ },
+ {
+ "name": "Right",
+ "class": "text-right d-block"
+ }
+ ]
+ },
+ {
+ "name": "Transform",
+ "type": "Dropdown",
+ "description": "Change the letter case of the text.",
+ "options": [
+ {
+ "name": "Lowercase",
+ "class": "text-lowercase"
+ },
+ {
+ "name": "Uppercase",
+ "class": "text-uppercase"
+ },
+ {
+ "name": "Capitalize",
+ "class": "text-capitalize"
+ }
+ ]
+ },
+ {
+ "name": "Wrap options",
+ "type": "Dropdown",
+ "description": "Break long words and sentences into multiple lines.",
+ "options": [
+ {
+ "name": "Wrap",
+ "class": "text-break"
+ },
+ {
+ "name": "No Wrap",
+ "class": "text-nowrap"
+ }
+ ]
+ }
+ ],
+ "Table": [
+ {
+ "name": "Style",
+ "type": "Dropdown",
+ "description": "Change the appearance of cells in the table.",
+ "options": [
+ {
+ "name": "Bordered",
+ "class": "table-bordered"
+ },
+ {
+ "name": "Lined",
+ "class": "table-lined"
+ }
+ ]
+ },
+ {
+ "name": "Compact",
+ "type": "Toggle",
+ "description": "Change the spacing between cells to be compact.",
+ "class": "table-compact"
+ }
+ ],
+ "com.mendix.widget.custom.badge.Badge": [
+ {
+ "name": "Style",
+ "type": "Dropdown",
+ "description": "The brand style affecting this element's appearance.",
+ "options": [
+ {
+ "name": "Brand Primary",
+ "class": "label-primary"
+ },
+ {
+ "name": "Brand Secondary",
+ "class": "label-secondary"
+ },
+ {
+ "name": "Brand Success",
+ "class": "label-success"
+ },
+ {
+ "name": "Brand Warning",
+ "class": "label-warning"
+ },
+ {
+ "name": "Brand Danger",
+ "class": "label-danger"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.custom.progressbar.ProgressBar": [
+ {
+ "name": "Striped bar",
+ "type": "Toggle",
+ "description": "Striped progress bar",
+ "class": "progress-striped"
+ },
+ {
+ "name": "Bar color",
+ "type": "Dropdown",
+ "description": "Color of the progress bar",
+ "options": [
+ {
+ "name": "Primary",
+ "class": "progress-bar-primary"
+ },
+ {
+ "name": "Success",
+ "class": "progress-bar-success"
+ },
+ {
+ "name": "Warning",
+ "class": "progress-bar-warning"
+ },
+ {
+ "name": "Danger",
+ "class": "progress-bar-danger"
+ }
+ ]
+ },
+ {
+ "name": "Size",
+ "type": "Dropdown",
+ "description": "Size of the progress bar",
+ "options": [
+ {
+ "name": "Small",
+ "class": "progress-bar-small"
+ },
+ {
+ "name": "Medium",
+ "class": "progress-bar-medium"
+ },
+ {
+ "name": "Large",
+ "class": "progress-bar-large"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.custom.badgebutton.BadgeButton": [
+ {
+ "name": "Style",
+ "type": "Dropdown",
+ "description": "The brand style affecting this element's appearance.",
+ "options": [
+ {
+ "name": "Brand Primary",
+ "class": "btn-primary"
+ },
+ {
+ "name": "Brand Secondary",
+ "class": "btn-secondary"
+ },
+ {
+ "name": "Brand Success",
+ "class": "btn-success"
+ },
+ {
+ "name": "Brand Warning",
+ "class": "btn-warning"
+ },
+ {
+ "name": "Brand Danger",
+ "class": "btn-danger"
+ }
+ ]
+ },
+ {
+ "name": "Size",
+ "type": "Dropdown",
+ "description": "Size of the buttons",
+ "options": [
+ {
+ "name": "Small",
+ "class": "btn-sm"
+ },
+ {
+ "name": "Large",
+ "class": "btn-lg"
+ }
+ ]
+ },
+ {
+ "name": "Full width",
+ "type": "Toggle",
+ "description": "Extend the button to the full width of the container it is placed in.",
+ "class": "btn-block"
+ },
+ {
+ "name": "Border",
+ "oldNames": ["Bordered"],
+ "type": "Toggle",
+ "description": "Style the button with a transparent background, a colored border, and colored text.",
+ "class": "btn-bordered"
+ }
+ ],
+ "com.mendix.widget.custom.progresscircle.ProgressCircle": [
+ {
+ "name": "Bar color",
+ "type": "Dropdown",
+ "description": "Color of the progress bar",
+ "options": [
+ {
+ "name": "Primary",
+ "class": "widget-progress-circle-primary"
+ },
+ {
+ "name": "Success",
+ "class": "widget-progress-circle-success"
+ },
+ {
+ "name": "Warning",
+ "class": "widget-progress-circle-warning"
+ },
+ {
+ "name": "Danger",
+ "class": "widget-progress-circle-danger"
+ }
+ ]
+ },
+ {
+ "name": "Size",
+ "type": "Dropdown",
+ "description": "Thickness of the progress circle",
+ "options": [
+ {
+ "name": "Small",
+ "class": "widget-progress-circle-thickness-small"
+ },
+ {
+ "name": "Medium",
+ "class": "widget-progress-circle-thickness-medium"
+ },
+ {
+ "name": "Large",
+ "class": "widget-progress-circle-thickness-large"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.custom.switch.Switch": [
+ {
+ "name": "Style",
+ "type": "Dropdown",
+ "description": "The brand style affecting this element's appearance.",
+ "options": [
+ {
+ "name": "Brand Primary",
+ "class": "widget-switch-brand-primary"
+ },
+ {
+ "name": "Brand Secondary",
+ "class": "widget-switch-brand-secondary"
+ },
+ {
+ "name": "Brand Success",
+ "class": "widget-switch-brand-success"
+ },
+ {
+ "name": "Brand Warning",
+ "class": "widget-switch-brand-warning"
+ },
+ {
+ "name": "Brand Danger",
+ "class": "widget-switch-brand-danger"
+ }
+ ]
+ },
+ {
+ "name": "Device style",
+ "type": "Dropdown",
+ "description": "The general appearance of the switch. When no option selected iOS styles are applied",
+ "options": [
+ {
+ "name": "iOS",
+ "class": "iOS"
+ },
+ {
+ "name": "Android",
+ "class": "android"
+ }
+ ]
+ }
+ ],
+ "MenuBar": [
+ {
+ "name": "Hide icons",
+ "type": "Toggle",
+ "description": "Hide the navigation items icon",
+ "class": "hide-icons"
+ }
+ ],
+ "NavigationTree": [
+ {
+ "name": "Hide icons",
+ "type": "Toggle",
+ "description": "Hide the navigation items icon",
+ "class": "hide-icons"
+ }
+ ],
+ "SimpleMenuBar": [
+ {
+ "name": "Hide icons",
+ "type": "Toggle",
+ "description": "Hide the navigation items icon",
+ "class": "hide-icons"
+ }
+ ],
+ "com.mendix.widget.custom.starrating.StarRating": [
+ {
+ "name": "Size",
+ "type": "Dropdown",
+ "description": "Change size of the rating icon/image. Default is medium.",
+ "options": [
+ {
+ "name": "Small",
+ "class": "widget-rating-small"
+ },
+ {
+ "name": "Large",
+ "class": "widget-rating-large"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.web.accordion.Accordion": [
+ {
+ "name": "Borders",
+ "type": "Dropdown",
+ "description": "Change the border appearance. By default, only horizontal borders between groups are applied.",
+ "options": [
+ {
+ "name": "All",
+ "class": "widget-accordion-bordered-all"
+ },
+ {
+ "name": "Horizontal",
+ "class": "widget-accordion-bordered-horizontal"
+ },
+ {
+ "name": "None",
+ "class": "widget-accordion-bordered-none"
+ }
+ ]
+ },
+ {
+ "name": "Striped",
+ "type": "Toggle",
+ "description": "Add alternating background colors to groups in the accordion.",
+ "class": "widget-accordion-striped"
+ },
+ {
+ "name": "Compact",
+ "type": "Toggle",
+ "description": "Make groups in the accordion more compact.",
+ "class": "widget-accordion-compact"
+ }
+ ],
+ "com.mendix.widget.web.image.Image": [
+ {
+ "name": "Align content",
+ "type": "Dropdown",
+ "description": "Align content of this element left, right or center it. Align elements inside the container as a row or as a column.",
+ "options": [
+ {
+ "name": "Left align as a row",
+ "class": "row-left"
+ },
+ {
+ "name": "Center align as a row",
+ "class": "row-center"
+ },
+ {
+ "name": "Right align as a row",
+ "class": "row-right"
+ },
+ {
+ "name": "Left align as a column",
+ "class": "col-left"
+ },
+ {
+ "name": "Center align as a column",
+ "class": "col-center"
+ },
+ {
+ "name": "Right align as a column",
+ "class": "col-right"
+ }
+ ]
+ },
+ {
+ "name": "Image style",
+ "type": "Dropdown",
+ "description": "Change the image style.",
+ "options": [
+ {
+ "name": "Rounded",
+ "class": "img-rounded"
+ },
+ {
+ "name": "Circle",
+ "class": "img-circle"
+ },
+ {
+ "name": "Square",
+ "class": "img-square"
+ }
+ ]
+ },
+ {
+ "name": "Center image",
+ "type": "Toggle",
+ "description": "Center the image.",
+ "class": "img-center"
+ },
+ {
+ "name": "Image fit",
+ "type": "Dropdown",
+ "description": "Change the fit of the image.",
+ "options": [
+ {
+ "name": "Fill",
+ "class": "img-fill"
+ },
+ {
+ "name": "Contain",
+ "class": "img-contain"
+ },
+ {
+ "name": "Cover",
+ "class": "img-cover"
+ },
+ {
+ "name": "Scale-down",
+ "class": "img-scale-down"
+ },
+ {
+ "name": "Auto",
+ "class": "img-auto"
+ }
+ ]
+ },
+ {
+ "name": "Opacity",
+ "type": "Dropdown",
+ "description": "Change the opacity of the image.",
+ "options": [
+ {
+ "name": "Low",
+ "class": "img-opacity-low"
+ },
+ {
+ "name": "Medium",
+ "class": "img-opacity-medium"
+ },
+ {
+ "name": "High",
+ "class": "img-opacity-high"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.custom.slider.Slider": [
+ {
+ "name": "Style",
+ "type": "Dropdown",
+ "description": "The brand style affecting this element's appearance.",
+ "options": [
+ {
+ "name": "Brand Primary",
+ "class": "widget-slider-primary"
+ },
+
+ {
+ "name": "Brand Success",
+ "class": "widget-slider-success"
+ },
+ {
+ "name": "Brand Warning",
+ "class": "widget-slider-warning"
+ },
+ {
+ "name": "Brand Danger",
+ "class": "widget-slider-danger"
+ }
+ ]
+ }
+ ],
+ "com.mendix.widget.web.tooltip.Tooltip": [
+ {
+ "name": "Show inline",
+ "type": "Toggle",
+ "description": "Show the widget as an inline element.",
+ "class": "widget-tooltip-inline"
+ }
+ ],
+ "com.mendix.widget.custom.RangeSlider.RangeSlider": [
+ {
+ "name": "Style",
+ "type": "Dropdown",
+ "description": "The brand style affecting this element's appearance.",
+ "options": [
+ {
+ "name": "Brand Primary",
+ "class": "widget-range-slider-primary"
+ },
+
+ {
+ "name": "Brand Success",
+ "class": "widget-range-slider-success"
+ },
+ {
+ "name": "Brand Warning",
+ "class": "widget-range-slider-warning"
+ },
+ {
+ "name": "Brand Danger",
+ "class": "widget-range-slider-danger"
+ }
+ ]
+ }
+ ]
+}
diff --git a/themesource/atlas_core/web/layouts/_layout-atlas-phone.scss b/themesource/atlas_core/web/layouts/_layout-atlas-phone.scss
new file mode 100644
index 00000000..59fcc6a4
--- /dev/null
+++ b/themesource/atlas_core/web/layouts/_layout-atlas-phone.scss
@@ -0,0 +1,24 @@
+/* ==========================================================================
+ Atlas layout
+
+ Extra styling for phone layouts
+========================================================================== */
+@mixin layout-atlas-phone() {
+ .layout-atlas-phone {
+ .region-topbar {
+ min-height: $m-header-height;
+ border-style: none;
+ background-color: $m-header-bg;
+
+ &::before {
+ display: none;
+ }
+ }
+
+ .region-sidebar {
+ .mx-navigationtree .navbar-inner > ul > li > a .glyphicon {
+ margin-right: $spacing-medium;
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/layouts/_layout-atlas-responsive.scss b/themesource/atlas_core/web/layouts/_layout-atlas-responsive.scss
new file mode 100644
index 00000000..1e4339e6
--- /dev/null
+++ b/themesource/atlas_core/web/layouts/_layout-atlas-responsive.scss
@@ -0,0 +1,190 @@
+/* ==========================================================================
+ Atlas layout
+
+ Extra styling for responsive layouts
+========================================================================== */
+@mixin layout-atlas-responsive() {
+ $sidebar-icon-height: 52px;
+ $sidebar-icon-width: 52px;
+
+ .layout-atlas-responsive,
+ .layout-atlas-responsive-default {
+ @media (min-width: $screen-md) {
+ .mx-scrollcontainer-shrink:not(.mx-scrollcontainer-open) > .region-sidebar,
+ .mx-scrollcontainer-push:not(.mx-scrollcontainer-open) > .region-sidebar,
+ .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open) > .region-sidebar {
+ width: $navsidebar-width-closed !important;
+
+ .mx-scrollcontainer-wrapper > .mx-navigationtree ul li {
+ &.mx-navigationtree-has-items a {
+ white-space: nowrap;
+ }
+
+ &.mx-navigationtree-has-items:hover > ul {
+ position: absolute;
+ z-index: 100;
+ top: 0;
+ bottom: 0;
+ left: $sidebar-icon-width;
+ display: block;
+ min-width: auto;
+ padding: $spacing-small 0;
+
+ & > li.mx-navigationtree-has-items:hover > ul {
+ left: 100%;
+ }
+ }
+
+ &.mx-navigationtree-collapsed,
+ &.mx-navigationtree-has-items {
+ ul {
+ display: none;
+ }
+ }
+ }
+ }
+
+ .widget-sidebar:not(.widget-sidebar-expanded) {
+ .mx-navigationtree ul li {
+ &.mx-navigationtree-has-items:hover {
+ ul {
+ position: absolute;
+ z-index: 100;
+ top: 0;
+ bottom: 0;
+ left: $sidebar-icon-width;
+ display: block;
+ overflow-y: auto;
+ min-width: auto;
+ padding: $spacing-small 0;
+ }
+ }
+
+ &.mx-navigationtree-collapsed,
+ &.mx-navigationtree-has-items {
+ ul {
+ display: none;
+ }
+ }
+ }
+ }
+ }
+
+ .mx-scrollcontainer-slide {
+ &:not(.mx-scrollcontainer-open) > .region-sidebar {
+ overflow: hidden;
+ }
+
+ &.mx-scrollcontainer-open > .region-sidebar {
+ width: $navsidebar-width-closed !important;
+
+ & > .mx-scrollcontainer-wrapper {
+ position: relative;
+ }
+ }
+
+ .region-sidebar > .mx-scrollcontainer-wrapper {
+ z-index: 2;
+ left: -$navsidebar-width-closed;
+ background-color: inherit;
+ }
+ }
+
+ // Push aside for mobile
+ @media (max-width: $screen-sm-max) {
+ .mx-scrollcontainer-open:not(.mx-scrollcontainer-slide) {
+ width: 1100px;
+ }
+
+ .mx-scrollcontainer-slide .toggle-btn {
+ display: inline-block !important;
+ }
+ }
+
+ // Sidebar
+ .region-sidebar {
+ .toggle-btn {
+ width: $sidebar-icon-width;
+ border-color: transparent;
+ border-radius: 0;
+ background: transparent;
+ }
+
+ .mx-scrollcontainer-wrapper {
+ .toggle-btn-wrapper {
+ display: flex;
+ padding: $spacing-small;
+ align-items: center;
+ min-height: calc(#{$topbar-minimalheight} + 4px);
+ background: $navsidebar-sub-bg;
+ }
+
+ .toggle-btn {
+ padding: $spacing-medium;
+
+ img {
+ width: 24px;
+ height: 24px;
+ }
+ }
+
+ .toggle-text {
+ color: #fff;
+ font-weight: bold;
+ }
+
+ & > .mx-navigationtree .navbar-inner > ul > li {
+ & > a {
+ height: $sidebar-icon-height;
+ padding: $spacing-small 0;
+ white-space: nowrap;
+ overflow: hidden;
+ // Glyph icon
+ .glyphicon {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: $sidebar-icon-width;
+ height: $sidebar-icon-height;
+ padding: $spacing-small $spacing-medium;
+ border-radius: $border-radius-default;
+ }
+ }
+ }
+ }
+ }
+
+ // Topbar
+ .region-topbar {
+ padding: 0 $spacing-small;
+
+ .toggle-btn {
+ padding: 0;
+ border-color: transparent;
+ border-radius: 0;
+ background: transparent;
+ }
+ }
+ }
+
+ // Topbar variant
+ .layout-atlas-responsive-topbar {
+ .region-topbar {
+ padding: 0 $spacing-medium;
+ @media (max-width: $screen-sm-max) {
+ padding: 0 $spacing-small;
+ }
+ }
+ }
+
+ // Fix Safari issue of sidebar disappearing
+ .profile-tablet {
+ .mx-scrollcontainer:not(.mx-scrollcontainer-open) > .region-sidebar {
+ overflow-y: hidden;
+
+ .mx-scrollcontainer-wrapper {
+ overflow: visible;
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/layouts/_layout-atlas-tablet.scss b/themesource/atlas_core/web/layouts/_layout-atlas-tablet.scss
new file mode 100644
index 00000000..71fc74db
--- /dev/null
+++ b/themesource/atlas_core/web/layouts/_layout-atlas-tablet.scss
@@ -0,0 +1,24 @@
+/* ==========================================================================
+ Atlas layout
+
+ Extra styling for tablet layouts
+========================================================================== */
+@mixin layout-atlas-tablet() {
+ .layout-atlas-tablet {
+ .region-topbar {
+ min-height: $m-header-height;
+ border-style: none;
+ background-color: $m-header-bg;
+
+ &::before {
+ display: none;
+ }
+ }
+
+ .region-sidebar {
+ .mx-navigationtree .navbar-inner > ul > li > a .glyphicon {
+ margin-right: $spacing-medium;
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/layouts/_layout-atlas.scss b/themesource/atlas_core/web/layouts/_layout-atlas.scss
new file mode 100644
index 00000000..97005a8d
--- /dev/null
+++ b/themesource/atlas_core/web/layouts/_layout-atlas.scss
@@ -0,0 +1,137 @@
+/* ==========================================================================
+ Atlas layout
+
+ The core stucture of all atlas layouts
+========================================================================== */
+@mixin layout-atlas() {
+ .layout-atlas {
+ // Toggle button
+ .toggle-btn > img,
+ .toggle-btn > .glyphicon {
+ margin: 0;
+ }
+
+ .mx-scrollcontainer-open {
+ .expand-btn > img {
+ transform: rotate(180deg);
+ }
+ }
+
+ // Sidebar
+ .region-sidebar {
+ background-color: $navsidebar-bg;
+ z-index: 101;
+ box-shadow: 0 0 4px rgb(0 0 0 / 14%), 2px 4px 8px rgb(0 0 0 / 28%);
+
+ .mx-scrollcontainer-wrapper {
+ display: flex;
+ flex-direction: column;
+ padding: $spacing-small 0;
+ }
+
+ .mx-navigationtree .navbar-inner > ul > li > a {
+ padding: $spacing-medium;
+
+ .glyphicon {
+ margin-right: $spacing-small;
+ }
+ }
+
+ .sidebar-heading {
+ background: $navsidebar-sub-bg;
+ }
+
+ .toggle-btn {
+ margin-right: $spacing-small;
+ border-color: transparent;
+ border-radius: 0;
+ background: transparent;
+ padding: $spacing-medium;
+ }
+ }
+
+ // Topbar
+ .region-topbar {
+ position: relative;
+ z-index: 2; // Show dropshadow
+ min-height: $topbar-minimalheight;
+ background-color: $navtopbar-bg;
+
+ // Topbar Content
+ .topbar-content {
+ display: flex;
+ align-items: center;
+ min-height: $topbar-minimalheight;
+ }
+
+ // Toggle btn
+ .toggle-btn {
+ padding: 0;
+ margin-right: $spacing-medium;
+ border-color: transparent;
+ border-radius: 0;
+ background: transparent;
+ }
+
+ // For your company, product, or project name
+ .navbar-brand {
+ display: inline-block;
+ float: none; // reset bootstrap
+ height: auto;
+ padding: 0;
+ line-height: inherit;
+ font-size: 16px;
+ margin-right: $spacing-small;
+
+ img {
+ display: inline-block;
+ margin-right: $spacing-small;
+ @if $brand-logo !=false {
+ width: 0;
+ height: 0;
+ padding: ($brand-logo-height / 2) ($brand-logo-width / 2);
+ background-image: url($brand-logo);
+ background-repeat: no-repeat;
+ background-position: left center;
+ background-size: $brand-logo-width;
+ } @else {
+ width: auto;
+ height: $brand-logo-height;
+ }
+ }
+
+ a {
+ margin-left: $spacing-small;
+ color: $navbar-brand-name;
+ font-size: 20px;
+
+ &:hover,
+ &:focus {
+ text-decoration: none;
+ }
+ }
+ }
+
+ .mx-navbar {
+ display: inline-flex;
+ vertical-align: middle;
+ background: transparent;
+ justify-content: center;
+ align-items: center;
+
+ & > .mx-navbar-item {
+ & > a {
+ margin-top: 5px;
+ padding: 0 20px;
+ }
+ }
+ }
+ }
+
+ .mx-scrollcontainer-slide {
+ &:not(.mx-scrollcontainer-open) > .region-sidebar {
+ overflow: hidden;
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_core/web/main.scss b/themesource/atlas_core/web/main.scss
new file mode 100644
index 00000000..3ce7fbee
--- /dev/null
+++ b/themesource/atlas_core/web/main.scss
@@ -0,0 +1,381 @@
+// Default variables
+@import "exclusion-variables";
+@import "../../../theme/web/exclusion-variables";
+@import "variables";
+@import "../../../theme/web/custom-variables";
+
+// Font Family Import
+@if $font-family-import != false {
+ @import url($font-family-import);
+}
+
+//=============================== Bootstrap ================================\\
+
+// Utilities
+@import "core/_legacy/bootstrap/bootstrap";
+@import "core/_legacy/bootstrap/bootstrap-rtl";
+@if not $exclude-bootstrap {
+ @include bootstrap();
+ @include bootstrap-rtl();
+}
+@import "core/_legacy/mxui";
+@if not $exclude-mxui {
+ @include mxui();
+}
+
+//================================== CORE ==================================\\
+
+// Base
+@import "core/base/mixins/animations";
+@import "core/base/mixins/spacing";
+@import "core/base/mixins/layout-spacing";
+@import "core/base/mixins/buttons";
+@import "core/base/mixins/groupbox";
+
+@import "core/base/animation";
+@if not $exclude-animations {
+ @include animations();
+}
+@import "core/base/flex";
+@if not $exclude-flex {
+ @include flex();
+}
+@import "core/base/spacing";
+@if not $exclude-spacing {
+ @include spacing();
+}
+@import "core/base/base";
+@if not $exclude-base {
+ @include base();
+}
+@import "core/base/login";
+@if not $exclude-login {
+ @include login();
+}
+
+// Widgets
+@import "core/widgets/input";
+@if not $exclude-input {
+ @include input();
+}
+
+@import "core/helpers/background";
+@if not $exclude-background-helpers {
+ @include background-helpers();
+}
+
+@import "core/widgets/label";
+@if not $exclude-label {
+ @include label();
+}
+
+@import "core/widgets/badge";
+@if not $exclude-badge {
+ @include badge();
+}
+
+@import "core/helpers/label";
+@if not $exclude-label and not $exclude-label-helpers {
+ @include label-helpers();
+}
+
+@import "core/widgets/badge-button";
+@if not $exclude-badge-button {
+ @include badge-button();
+}
+
+@import "core/helpers/badge-button";
+@if not $exclude-badge-button and not $exclude-badge-button-helpers {
+ @include badge-button-helpers();
+}
+
+@import "core/widgets/button";
+@if not $exclude-button {
+ @include button();
+}
+
+@import "core/helpers/button";
+@if not $exclude-button and not $exclude-button-helpers {
+ @include button-helpers();
+}
+
+@import "core/widgets/check-box";
+@if not $exclude-check-box {
+ @include check-box();
+}
+
+@import "core/widgets/grid";
+@if not $exclude-grid {
+ @include grid();
+}
+
+@import "core/widgets/data-grid";
+@if not $exclude-data-grid {
+ @include data-grid();
+}
+
+@import "core/helpers/data-grid";
+@if not $exclude-data-grid and not $exclude-data-grid-helpers {
+ @include data-grid-helpers();
+}
+
+@import "core/widgets/data-view";
+@if not $exclude-data-view {
+ @include data-view();
+}
+
+@import "core/widgets/date-picker";
+@if not $exclude-data-picker {
+ @include date-picker();
+}
+
+@import "core/widgets/header";
+@if not $exclude-header {
+ @include header();
+}
+
+@import "core/widgets/glyphicon";
+@if not $exclude-glyphicon {
+ @include glyphicon();
+}
+
+@import "core/widgets/group-box";
+@if not $exclude-group-box {
+ @include group-box();
+}
+
+@import "core/helpers/group-box";
+@if not $exclude-group-box and not $exclude-group-box-helpers {
+ @include group-box-helpers();
+}
+
+@import "core/helpers/image";
+@if not $exclude-image-helpers {
+ @include image-helpers();
+}
+
+@import "core/widgets/list-view";
+@if not $exclude-list-view {
+ @include list-view();
+}
+
+@import "core/helpers/list-view";
+@if not $exclude-list-view and not $exclude-list-view-helpers {
+ @include list-view-helpers();
+}
+
+@import "core/widgets/modal";
+@if not $exclude-modal {
+ @include modal();
+}
+
+@import "core/widgets/navigation-bar";
+@if not $exclude-navigation-bar {
+ @include navigation-bar();
+}
+
+@import "core/helpers/navigation-bar";
+@if not $exclude-navigation-bar and not $exclude-navigation-bar-helpers {
+ @include navigation-bar-helpers();
+}
+
+@import "core/widgets/navigation-list";
+@if not $exclude-navigation-list {
+ @include navigation-list();
+}
+
+@import "core/widgets/navigation-tree";
+@if not $exclude-navigation-tree {
+ @include navigation-tree();
+}
+
+@import "core/helpers/navigation-tree";
+@if not $exclude-navigation-tree and not $exclude-navigation-tree-helpers {
+ @include navigation-tree-helpers();
+}
+
+@import "core/widgets/pop-up-menu";
+@if not $exclude-pop-up-menu {
+ @include pop-up-menu();
+}
+
+@import "core/widgets/simple-menu-bar";
+@if not $exclude-simple-menu-bar {
+ @include simple-menu-bar();
+}
+
+@import "core/helpers/simple-menu-bar";
+@if not $exclude-simple-menu-bar and not $exclude-simple-menu-bar-helpers {
+ @include simple-menu-bar-helpers();
+}
+
+@import "core/widgets/radio-button";
+@if not $exclude-radio-button {
+ @include radio-button();
+}
+
+@import "core/widgets/tab-container";
+@if not $exclude-tab-container {
+ @include tab-container();
+}
+
+@import "core/helpers/tab-container";
+@if not $exclude-tab-container and not $exclude-tab-container-helpers {
+ @include tab-container-helpers();
+}
+
+@import "core/widgets/table";
+@if not $exclude-table {
+ @include table();
+}
+
+@import "core/helpers/table";
+@if not $exclude-table and not $exclude-table-helpers {
+ @include table-helpers();
+}
+
+@import "core/widgets/template-grid";
+@if not $exclude-template-grid {
+ @include template-grid();
+}
+
+@import "core/helpers/template-grid";
+@if not $exclude-template-grid and not $exclude-template-grid-helpers {
+ @include template-grid-helpers();
+}
+
+@import "core/widgets/typography";
+@if not $exclude-typography {
+ @include typography();
+}
+
+@import "core/helpers/typography";
+@if not $exclude-typography and not $exclude-typography-helpers {
+ @include typography-helpers();
+}
+
+@import "core/widgets/layout-grid";
+@if not $exclude-layout-grid {
+ @include layout-grid();
+}
+
+@import "core/widgets/pagination";
+@if not $exclude-pagination {
+ @include pagination();
+}
+
+@import "core/widgets/progress";
+@if not $exclude-progress {
+ @include progress();
+}
+
+@import "core/widgets/progress-bar";
+@if not $exclude-progress-bar {
+ @include progress-bar();
+}
+
+@import "core/helpers/progress-bar";
+@if not $exclude-progress-bar and not $exclude-progress-bar-helpers {
+ @include progress-bar-helpers();
+}
+
+@import "core/widgets/progress-circle";
+@if not $exclude-progress-circle {
+ @include progress-circle();
+}
+
+@import "core/helpers/progress-circle";
+@if not $exclude-progress-circle and not $exclude-progress-circle-helpers {
+ @include progress-circle-helpers();
+}
+
+@import "core/widgets/rating";
+@if not $exclude-rating {
+ @include rating();
+}
+
+@import "core/helpers/rating";
+@if not $exclude-rating and not $exclude-rating-helpers {
+ @include rating-helpers();
+}
+
+@import "core/widgets/range-slider";
+@if not $exclude-range-slider {
+ @include range-slider();
+}
+
+@import "core/helpers/range-slider";
+@if not $exclude-range-slider and not $exclude-range-slider-helpers {
+ @include range-slider-helpers();
+}
+
+@import "core/widgets/slider";
+@if not $exclude-slider {
+ @include slider();
+}
+
+@import "core/helpers/slider";
+@if not $exclude-slider and not $exclude-slider-helpers {
+ @include slider-helpers();
+}
+
+@import "core/widgets/timeline";
+@if not $exclude-timeline {
+ @include timeline();
+}
+
+@import "core/widgets/tooltip";
+@if not $exclude-tooltip {
+ @include tooltip();
+}
+
+@import "core/helpers/helper-classes";
+@if not $exclude-helper-classes {
+ @include helper-classes();
+}
+
+@import "core/widgets/barcode-scanner";
+@if not $exclude-barcode-scanner {
+ @include barcode-scanner();
+}
+
+@import "core/widgets/accordion";
+@if not $exclude-accordion {
+ @include accordion();
+}
+
+@import "core/helpers/accordion";
+@if not $exclude-accordion and not $exclude-accordion-helpers {
+ @include accordion-helpers();
+}
+
+// Custom widgets
+@import "core/widgetscustom/dijit-widget";
+@if not $exclude-custom-dijit-widget {
+ @include dijit-widget();
+}
+
+@import "core/widgets/switch";
+@if not $exclude-custom-switch {
+ @include switch();
+}
+
+//================================= CUSTOM =================================\\
+
+// Layouts
+@import "layouts/layout-atlas";
+@if not $exclude-layout-atlas {
+ @include layout-atlas();
+}
+@import "layouts/layout-atlas-phone";
+@if not $exclude-layout-atlas-phone {
+ @include layout-atlas-phone();
+}
+@import "layouts/layout-atlas-responsive";
+@if not $exclude-layout-atlas-responsive {
+ @include layout-atlas-responsive();
+}
+@import "layouts/layout-atlas-tablet";
+@if not $exclude-layout-atlas-tablet {
+ @include layout-atlas-tablet();
+}
diff --git a/themesource/atlas_web_content/.version b/themesource/atlas_web_content/.version
new file mode 100644
index 00000000..ef538c28
--- /dev/null
+++ b/themesource/atlas_web_content/.version
@@ -0,0 +1 @@
+3.1.2
diff --git a/themesource/atlas_web_content/web/buildingblocks/_alert.scss b/themesource/atlas_web_content/web/buildingblocks/_alert.scss
new file mode 100644
index 00000000..a07c84f3
--- /dev/null
+++ b/themesource/atlas_web_content/web/buildingblocks/_alert.scss
@@ -0,0 +1,74 @@
+//
+// DISCLAIMER:
+// Do not change this file because it is core styling.
+// Customizing core files will make updating Atlas much more difficult in the future.
+// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.
+//
+
+/* ==========================================================================
+ Alerts
+
+ Default Bootstrap Alert boxes. Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages
+========================================================================== */
+
+.alert {
+ margin-top: 0;
+ padding: $spacing-medium;
+ border: 1px solid;
+ border-radius: $border-radius-default;
+ padding: $spacing-medium;
+}
+
+.alert-icon {
+ font-size: $font-size-h3;
+}
+
+.alert-title {
+ color: inherit;
+}
+
+.alert-description {
+ color: inherit;
+}
+
+//Variations
+
+.alert-primary,
+.alert {
+ color: $alert-primary-color;
+ border-color: $alert-primary-border-color;
+ background-color: $alert-primary-bg;
+}
+
+.alert-secondary {
+ color: $alert-secondary-color;
+ border-color: $alert-secondary-border-color;
+ background-color: $alert-secondary-bg;
+}
+
+// Semantic variations
+.alert-success {
+ color: $alert-success-color;
+ border-color: $alert-success-border-color;
+ background-color: $alert-success-bg;
+}
+
+.alert-warning {
+ color: $alert-warning-color;
+ border-color: $alert-warning-border-color;
+ background-color: $alert-warning-bg;
+}
+
+.alert-danger {
+ color: $alert-danger-color;
+ border-color: $alert-danger-border-color;
+ background-color: $alert-danger-bg;
+}
+
+//== State
+//## Styling when component is in certain state
+//-------------------------------------------------------------------------------------------------------------------//
+.has-error .alert {
+ margin-top: $spacing-small;
+ margin-bottom: 0;
+}
diff --git a/themesource/atlas_web_content/web/buildingblocks/_breadcrumb.scss b/themesource/atlas_web_content/web/buildingblocks/_breadcrumb.scss
new file mode 100644
index 00000000..d6a4bbf3
--- /dev/null
+++ b/themesource/atlas_web_content/web/buildingblocks/_breadcrumb.scss
@@ -0,0 +1,45 @@
+/* ==========================================================================
+ Breadcrumbs
+
+========================================================================== */
+.breadcrumb {
+ //reset
+ margin: 0;
+ padding: 0;
+ border-radius: 0;
+ background-color: transparent;
+ font-size: $font-size-default;
+ margin-bottom: $spacing-large;
+}
+
+//== Elements
+//-------------------------------------------------------------------------------------------------------------------//
+.breadcrumb-item {
+ display: inline-block;
+ margin: 0;
+ &:last-child {
+ color: $font-color-default;
+ a {
+ text-decoration: none;
+ }
+ }
+}
+.breadcrumb-item + .breadcrumb-item {
+ &::before {
+ display: inline-block;
+ padding-right: $spacing-small;
+ padding-left: $spacing-small;
+ content: "/";
+ color: $gray-light;
+ }
+}
+
+//== Variations
+//-------------------------------------------------------------------------------------------------------------------//
+.breadcrumb-large {
+ font-size: $font-size-h3;
+}
+.breadcrumb-underline {
+ padding-bottom: $spacing-medium;
+ border-bottom: 1px solid $border-color-default;
+}
diff --git a/themesource/atlas_web_content/web/buildingblocks/_card.scss b/themesource/atlas_web_content/web/buildingblocks/_card.scss
new file mode 100644
index 00000000..7f71a8fa
--- /dev/null
+++ b/themesource/atlas_web_content/web/buildingblocks/_card.scss
@@ -0,0 +1,63 @@
+/* ==========================================================================
+ Cards
+
+========================================================================== */
+.card {
+ border: 0;
+ border-radius: $border-radius-default;
+ background-color: #ffffff;
+ overflow: hidden;
+ position: relative;
+ padding: $spacing-large;
+ margin-bottom: $spacing-large;
+}
+
+//== Card components
+//-------------------------------------------------------------------------------------------------------------------//
+.card-body {
+ padding: $spacing-large;
+}
+
+.card-overlay {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ background: rgba(0, 0, 0, 0.6);
+ background: linear-gradient(
+ to bottom,
+ rgba(255, 255, 255, 0) 0%,
+ rgba(250, 250, 250, 0) 8%,
+ rgba(0, 0, 0, 0.99) 121%,
+ #000 100%
+ );
+ padding: $spacing-large;
+}
+
+.card-title {
+}
+
+.card-image {
+ width: 100%;
+ height: auto;
+}
+
+.card-supportingtext {
+}
+
+.card-action {
+}
+
+.card-icon {
+ font-size: $font-size-h1;
+}
+
+//== Variations
+//-------------------------------------------------------------------------------------------------------------------//
+.card-with-image {
+ overflow: hidden;
+}
+
+.card-with-background {
+ position: relative;
+}
diff --git a/themesource/atlas_web_content/web/buildingblocks/_chat.scss b/themesource/atlas_web_content/web/buildingblocks/_chat.scss
new file mode 100644
index 00000000..2fe5ce92
--- /dev/null
+++ b/themesource/atlas_web_content/web/buildingblocks/_chat.scss
@@ -0,0 +1,147 @@
+/* ==========================================================================
+ Chats
+
+========================================================================== */
+.chat {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+ background-color: $bg-color-secondary;
+}
+
+//== Elements
+//-------------------------------------------------------------------------------------------------------------------//
+.chat-content {
+ display: flex;
+ overflow: auto;
+ flex: 1;
+ flex-direction: column;
+ justify-content: flex-end;
+
+ .chat-list {
+ position: relative;
+ overflow: auto;
+
+ ul {
+ display: flex;
+ flex-direction: column-reverse;
+ margin-bottom: $m-spacing-large;
+ }
+
+ li {
+ padding: 15px 30px;
+ animation: fadeIn 0.2s;
+ background-color: transparent;
+ animation-fill-mode: both;
+
+ &,
+ &:last-child {
+ border: 0;
+ }
+ }
+
+ .mx-listview-loadMore {
+ position: absolute;
+ top: 0;
+ right: 0;
+ left: 0;
+ display: block;
+ width: 50%;
+ margin: 15px auto;
+ color: #ffffff;
+ background-color: $brand-primary;
+ box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.05);
+ }
+ }
+}
+
+.chat-message {
+ display: flex;
+}
+
+.chat-avatar {
+ margin: 0 20px 0 0;
+ border-radius: 50%;
+}
+
+.chat-message-content {
+ display: inline-flex;
+ flex-direction: column;
+}
+
+.chat-message-balloon {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ padding: 10px 15px;
+ border-radius: 5px;
+ background-color: $bg-color;
+
+ &::after {
+ position: absolute;
+ top: 10px;
+ right: 100%;
+ width: 0;
+ height: 0;
+ content: "";
+ border: 10px solid transparent;
+ border-top: 0;
+ border-right-color: $bg-color;
+ border-left: 0;
+ }
+}
+
+.chat-message-time {
+ padding-top: 2px;
+
+ .form-control-static {
+ border: 0;
+ }
+}
+
+.chat-footer {
+ z-index: 1;
+ padding: $m-spacing-large;
+ background-color: $bg-color;
+ box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.05);
+}
+
+.chat-input {
+ display: flex;
+
+ .chat-textbox {
+ flex: 1;
+ margin-right: $spacing-large;
+ margin-bottom: 0;
+
+ .form-control {
+ border: 0;
+ }
+ }
+}
+
+//== Variations
+//-------------------------------------------------------------------------------------------------------------------//
+.chat-message-self {
+ justify-content: flex-end;
+
+ .chat-avatar {
+ margin: 0 0 0 20px;
+ }
+
+ .chat-message-balloon {
+ background-color: $color-primary-lighter;
+
+ &::after {
+ left: 100%;
+ border: 10px solid transparent;
+ border-top: 0;
+ border-right: 0;
+ border-left-color: $color-primary-lighter;
+ }
+ }
+
+ .chat-message-time {
+ text-align: right;
+ }
+}
diff --git a/themesource/atlas_web_content/web/buildingblocks/_controlgroup.scss b/themesource/atlas_web_content/web/buildingblocks/_controlgroup.scss
new file mode 100644
index 00000000..9ce1f840
--- /dev/null
+++ b/themesource/atlas_web_content/web/buildingblocks/_controlgroup.scss
@@ -0,0 +1,25 @@
+/* ==========================================================================
+ Control Group
+
+ A group of buttons next to eachother
+========================================================================== */
+.controlgroup {
+ .btn,
+ .btn-group {
+ margin-right: $spacing-small;
+ margin-bottom: $spacing-small;
+
+ &:last-child {
+ margin-right: 0;
+ }
+ .btn {
+ margin-right: 0;
+ margin-bottom: 0;
+ }
+ }
+ .btn-group {
+ .btn + .btn {
+ margin-left: -1px;
+ }
+ }
+}
diff --git a/themesource/atlas_web_content/web/buildingblocks/_formblock.scss b/themesource/atlas_web_content/web/buildingblocks/_formblock.scss
new file mode 100644
index 00000000..c6a22645
--- /dev/null
+++ b/themesource/atlas_web_content/web/buildingblocks/_formblock.scss
@@ -0,0 +1,14 @@
+/* ==========================================================================
+ Form Block
+
+ Used in default forms
+========================================================================== */
+.formblock {
+ width: 100%;
+ margin-bottom: $spacing-large;
+}
+
+//== Elements
+//-------------------------------------------------------------------------------------------------------------------//
+.form-title {
+}
diff --git a/themesource/atlas_web_content/web/buildingblocks/_heroheader.scss b/themesource/atlas_web_content/web/buildingblocks/_heroheader.scss
new file mode 100644
index 00000000..e5e8fd45
--- /dev/null
+++ b/themesource/atlas_web_content/web/buildingblocks/_heroheader.scss
@@ -0,0 +1,41 @@
+/* ==========================================================================
+ Hero header
+
+========================================================================== */
+
+.headerhero {
+ width: 100%;
+ min-height: $header-min-height;
+ background-color: $header-bg-color;
+ position: relative;
+ overflow: hidden;
+ padding: $spacing-large;
+ margin-bottom: $spacing-large;
+}
+
+//== Elements
+//-------------------------------------------------------------------------------------------------------------------//
+.headerhero-title {
+ color: $header-text-color;
+}
+
+.headerhero-subtitle {
+ color: $header-text-color;
+}
+
+.headerhero-backgroundimage {
+ position: absolute;
+ z-index: 0;
+ top: 0;
+ height: 100%;
+ width: 100%;
+ filter: $header-bgimage-filter;
+}
+
+.btn.headerhero-action {
+ color: $header-text-color;
+}
+
+.heroheader-overlay {
+ z-index: 1;
+}
diff --git a/themesource/atlas_web_content/web/buildingblocks/_master-detail.scss b/themesource/atlas_web_content/web/buildingblocks/_master-detail.scss
new file mode 100644
index 00000000..4cb80dd9
--- /dev/null
+++ b/themesource/atlas_web_content/web/buildingblocks/_master-detail.scss
@@ -0,0 +1,26 @@
+/* ==========================================================================
+ Master Detail
+
+ A list with a listening dataview
+========================================================================== */
+.masterdetail {
+ background: #fff;
+ .masterdetail-master {
+ border-right: 1px solid $border-color-default;
+ }
+ .masterdetail-detail {
+ padding: $spacing-large;
+ }
+}
+
+//== Variations
+//-------------------------------------------------------------------------------------------------------------------//
+.masterdetail-vertical {
+ background: #fff;
+ .masterdetail-master {
+ border-bottom: 1px solid $border-color-default;
+ }
+ .masterdetail-detail {
+ padding: $spacing-large;
+ }
+}
diff --git a/themesource/atlas_web_content/web/buildingblocks/_pageblocks.scss b/themesource/atlas_web_content/web/buildingblocks/_pageblocks.scss
new file mode 100644
index 00000000..a1bfd9a5
--- /dev/null
+++ b/themesource/atlas_web_content/web/buildingblocks/_pageblocks.scss
@@ -0,0 +1,28 @@
+/* ==========================================================================
+ Full page blocks
+
+ Blocks that take up the full width and height
+========================================================================== */
+
+.fullpageblock {
+ position: relative;
+ height: 100%;
+ min-height: 100%;
+
+ // Helper to make it fullheight
+ .fullheight {
+ height: 100% !important;
+
+ & > .mx-dataview-content {
+ height: inherit !important;
+ }
+ }
+
+ .fullpage-overlay {
+ position: absolute;
+ z-index: 10;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ }
+}
diff --git a/themesource/atlas_web_content/web/buildingblocks/_pageheader.scss b/themesource/atlas_web_content/web/buildingblocks/_pageheader.scss
new file mode 100644
index 00000000..f649e9aa
--- /dev/null
+++ b/themesource/atlas_web_content/web/buildingblocks/_pageheader.scss
@@ -0,0 +1,21 @@
+/* ==========================================================================
+ Pageheader
+========================================================================== */
+
+//== Default
+//-------------------------------------------------------------------------------------------------------------------//
+.pageheader {
+ width: 100%;
+ margin-bottom: $spacing-large;
+}
+
+//== Elements
+//-------------------------------------------------------------------------------------------------------------------//
+.pageheader-title {
+}
+
+.pageheader-subtitle {
+}
+
+.pageheader-image {
+}
diff --git a/themesource/atlas_web_content/web/buildingblocks/_userprofile.scss b/themesource/atlas_web_content/web/buildingblocks/_userprofile.scss
new file mode 100644
index 00000000..eee81f10
--- /dev/null
+++ b/themesource/atlas_web_content/web/buildingblocks/_userprofile.scss
@@ -0,0 +1,12 @@
+/* ==========================================================================
+ User profile blocks
+ -
+========================================================================== */
+.userprofile {
+ .userprofile-img {
+ }
+ .userprofile-title {
+ }
+ .userprofile-subtitle {
+ }
+}
diff --git a/themesource/atlas_web_content/web/buildingblocks/_wizard.scss b/themesource/atlas_web_content/web/buildingblocks/_wizard.scss
new file mode 100644
index 00000000..91cd9d85
--- /dev/null
+++ b/themesource/atlas_web_content/web/buildingblocks/_wizard.scss
@@ -0,0 +1,139 @@
+//Wizard
+.wizard {
+ display: flex;
+ justify-content: space-between;
+ width: 100%;
+ margin-bottom: $spacing-large;
+}
+
+//Wizard step
+.wizard-step {
+ position: relative;
+ width: 100%;
+ display: flex;
+ align-items: center;
+}
+
+//Wizard step number
+.wizard-step-number {
+ position: relative;
+ z-index: 1;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: $wizard-step-number-size;
+ height: $wizard-step-number-size;
+ color: $wizard-default-step-color;
+ font-size: $wizard-step-number-font-size;
+ border-radius: 50%;
+ background-color: $wizard-default-bg;
+ border-color: $wizard-default-border-color;
+}
+
+//Wizard step text
+.wizard-step-text {
+ overflow: hidden;
+ white-space: nowrap;
+ text-decoration: none;
+ text-overflow: ellipsis;
+ color: $wizard-default-step-color;
+}
+
+//Wizard circle
+.wizard-circle .wizard-step {
+ flex-direction: column;
+ &::before {
+ position: absolute;
+ z-index: 0;
+ top: $wizard-step-number-size / 2;
+ display: block;
+ width: 100%;
+ height: 2px;
+ content: "";
+ background-color: $wizard-default-border-color;
+ }
+}
+
+//Wizard arrow
+.wizard-arrow .wizard-step {
+ height: $wizard-step-height;
+ margin-left: calc(0px - (#{$wizard-step-height} / 2));
+ padding-left: ($wizard-step-height / 2);
+ background-color: $wizard-default-bg;
+ justify-content: flex-start;
+ border: 1px solid $wizard-default-border-color;
+ &::before,
+ &::after {
+ position: absolute;
+ z-index: 1;
+ left: 100%;
+ margin-left: calc(0px - ((#{$wizard-step-height} / 2) - 1px));
+ content: " ";
+ border-style: solid;
+ border-color: transparent;
+ }
+ &::after {
+ top: 0;
+ border-width: calc((#{$wizard-step-height} / 2) - 1px);
+ border-left-color: $wizard-default-bg;
+ }
+ &::before {
+ top: -1px;
+ border-width: $wizard-step-height / 2;
+ border-left-color: $wizard-default-border-color;
+ }
+
+ &:first-child {
+ margin-left: 0;
+ padding-left: 0;
+ border-top-left-radius: $border-radius-default;
+ border-bottom-left-radius: $border-radius-default;
+ }
+
+ &:last-child {
+ border-top-right-radius: $border-radius-default;
+ border-bottom-right-radius: $border-radius-default;
+ &::before,
+ &::after {
+ display: none;
+ }
+ }
+}
+
+//Wizard states
+.wizard-circle .wizard-step-active {
+ .wizard-step-number {
+ color: $wizard-active-color;
+ border-color: $wizard-active-border-color;
+ background-color: $wizard-active-bg;
+ }
+ .wizard-step-text {
+ color: $wizard-active-step-color;
+ }
+}
+.wizard-circle .wizard-step-visited {
+ .wizard-step-number {
+ color: $wizard-visited-color;
+ border-color: $wizard-visited-border-color;
+ background-color: $wizard-visited-bg;
+ }
+ .wizard-step-text {
+ color: $wizard-visited-step-color;
+ }
+}
+
+.wizard-arrow .wizard-step-active {
+ background-color: $wizard-active-bg;
+ .wizard-step-text {
+ color: $wizard-active-color;
+ }
+ &::after {
+ border-left-color: $wizard-active-bg;
+ }
+}
+
+.wizard-arrow .wizard-step-visited {
+ .wizard-step-text {
+ color: $link-color;
+ }
+}
diff --git a/themesource/atlas_web_content/web/main.scss b/themesource/atlas_web_content/web/main.scss
new file mode 100644
index 00000000..df04c6f5
--- /dev/null
+++ b/themesource/atlas_web_content/web/main.scss
@@ -0,0 +1,23 @@
+// Default variables
+@import "../../atlas_core/web/variables";
+@import "../../../theme/web/custom-variables";
+
+// Building blocks
+@import "buildingblocks/alert";
+@import "buildingblocks/breadcrumb";
+@import "buildingblocks/card";
+@import "buildingblocks/chat";
+@import "buildingblocks/controlgroup";
+@import "buildingblocks/pageblocks";
+@import "buildingblocks/pageheader";
+@import "buildingblocks/heroheader";
+@import "buildingblocks/formblock";
+@import "buildingblocks/master-detail";
+@import "buildingblocks/userprofile";
+@import "buildingblocks/wizard";
+
+// Page templates
+@import "pagetemplates/login";
+@import "pagetemplates/list-tab";
+@import "pagetemplates/springboard";
+@import "pagetemplates/statuspage";
diff --git a/themesource/atlas_web_content/web/pagetemplates/_list-tab.scss b/themesource/atlas_web_content/web/pagetemplates/_list-tab.scss
new file mode 100644
index 00000000..ff29615d
--- /dev/null
+++ b/themesource/atlas_web_content/web/pagetemplates/_list-tab.scss
@@ -0,0 +1,29 @@
+.listtab-tabs.mx-tabcontainer {
+ background: $bg-color-secondary;
+ .mx-tabcontainer-tabs {
+ background: $brand-primary;
+ margin-bottom: 0;
+ li {
+ > a {
+ color: #fff;
+ opacity: 0.6;
+ &:hover,
+ &:focus {
+ color: #fff;
+ }
+ }
+ &.active {
+ > a {
+ opacity: 1;
+ color: #fff;
+ border-color: #fff;
+ &:hover,
+ &:focus {
+ color: #fff;
+ border-color: #fff;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/themesource/atlas_web_content/web/pagetemplates/_login.scss b/themesource/atlas_web_content/web/pagetemplates/_login.scss
new file mode 100644
index 00000000..d3dcb55b
--- /dev/null
+++ b/themesource/atlas_web_content/web/pagetemplates/_login.scss
@@ -0,0 +1,10 @@
+.login-formblock {
+ display: flex;
+ flex-direction: column;
+}
+
+.login-form {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+}
diff --git a/themesource/atlas_web_content/web/pagetemplates/_springboard.scss b/themesource/atlas_web_content/web/pagetemplates/_springboard.scss
new file mode 100644
index 00000000..eb30e1a8
--- /dev/null
+++ b/themesource/atlas_web_content/web/pagetemplates/_springboard.scss
@@ -0,0 +1,22 @@
+.springboard-grid {
+ display: flex;
+ flex-direction: column;
+ .row {
+ flex: 1;
+ .col {
+ display: flex;
+ }
+ }
+}
+
+.springboard-header {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+}
+
+.springboard-card {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+}
diff --git a/themesource/atlas_web_content/web/pagetemplates/_statuspage.scss b/themesource/atlas_web_content/web/pagetemplates/_statuspage.scss
new file mode 100644
index 00000000..de73a6e0
--- /dev/null
+++ b/themesource/atlas_web_content/web/pagetemplates/_statuspage.scss
@@ -0,0 +1,19 @@
+.statuspage-section {
+ display: flex;
+ flex-direction: column;
+}
+
+.statuspage-content {
+ flex: 1;
+}
+
+.statuspage-icon {
+ color: #fff;
+}
+
+.statuspage-subtitle {
+ opacity: 0.6;
+}
+
+.statuspage-buttons {
+}
diff --git a/themesource/fileuploader/.version b/themesource/fileuploader/.version
new file mode 100644
index 00000000..fad066f8
--- /dev/null
+++ b/themesource/fileuploader/.version
@@ -0,0 +1 @@
+2.5.0
\ No newline at end of file
diff --git a/themesource/fileuploader/LICENSE b/themesource/fileuploader/LICENSE
new file mode 100644
index 00000000..8c705ebe
--- /dev/null
+++ b/themesource/fileuploader/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "{}"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright 2022 Mendix Technology B.V.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
diff --git a/themesource/fileuploader/native/design-properties.json b/themesource/fileuploader/native/design-properties.json
new file mode 100644
index 00000000..49d1a202
--- /dev/null
+++ b/themesource/fileuploader/native/design-properties.json
@@ -0,0 +1,3 @@
+{
+
+}
diff --git a/themesource/fileuploader/native/main.js b/themesource/fileuploader/native/main.js
new file mode 100644
index 00000000..b611ae1e
--- /dev/null
+++ b/themesource/fileuploader/native/main.js
@@ -0,0 +1,2 @@
+import * as variables from "../../../theme/native/custom-variables";
+
diff --git a/themesource/fileuploader/settings.json b/themesource/fileuploader/settings.json
new file mode 100644
index 00000000..49d1a202
--- /dev/null
+++ b/themesource/fileuploader/settings.json
@@ -0,0 +1,3 @@
+{
+
+}
diff --git a/themesource/fileuploader/web/design-properties.json b/themesource/fileuploader/web/design-properties.json
new file mode 100644
index 00000000..49d1a202
--- /dev/null
+++ b/themesource/fileuploader/web/design-properties.json
@@ -0,0 +1,3 @@
+{
+
+}
diff --git a/themesource/fileuploader/web/main.scss b/themesource/fileuploader/web/main.scss
new file mode 100644
index 00000000..122370f7
--- /dev/null
+++ b/themesource/fileuploader/web/main.scss
@@ -0,0 +1,2 @@
+@import '../../../theme/web/custom-variables';
+
diff --git a/themesource/myfirstmodule/native/design-properties.json b/themesource/myfirstmodule/native/design-properties.json
new file mode 100644
index 00000000..49d1a202
--- /dev/null
+++ b/themesource/myfirstmodule/native/design-properties.json
@@ -0,0 +1,3 @@
+{
+
+}
diff --git a/themesource/myfirstmodule/native/main.js b/themesource/myfirstmodule/native/main.js
new file mode 100644
index 00000000..b611ae1e
--- /dev/null
+++ b/themesource/myfirstmodule/native/main.js
@@ -0,0 +1,2 @@
+import * as variables from "../../../theme/native/custom-variables";
+
diff --git a/themesource/myfirstmodule/settings.json b/themesource/myfirstmodule/settings.json
new file mode 100644
index 00000000..49d1a202
--- /dev/null
+++ b/themesource/myfirstmodule/settings.json
@@ -0,0 +1,3 @@
+{
+
+}
diff --git a/themesource/myfirstmodule/web/design-properties.json b/themesource/myfirstmodule/web/design-properties.json
new file mode 100644
index 00000000..49d1a202
--- /dev/null
+++ b/themesource/myfirstmodule/web/design-properties.json
@@ -0,0 +1,3 @@
+{
+
+}
diff --git a/themesource/myfirstmodule/web/main.scss b/themesource/myfirstmodule/web/main.scss
new file mode 100644
index 00000000..122370f7
--- /dev/null
+++ b/themesource/myfirstmodule/web/main.scss
@@ -0,0 +1,2 @@
+@import '../../../theme/web/custom-variables';
+
diff --git a/widgets/com.mendix.widget.web.FileUploader.mpk b/widgets/com.mendix.widget.web.FileUploader.mpk
new file mode 100644
index 00000000..a327509a
Binary files /dev/null and b/widgets/com.mendix.widget.web.FileUploader.mpk differ
diff --git a/widgets/com.mendix.widget.web.LanguageSelector.mpk b/widgets/com.mendix.widget.web.LanguageSelector.mpk
new file mode 100644
index 00000000..f472cbc6
Binary files /dev/null and b/widgets/com.mendix.widget.web.LanguageSelector.mpk differ