flipflop 2.7.1 → 2.8.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 69f214599b32e0544ade72b6c07a928af76acc4355a3730395239182fa0a5107
4
- data.tar.gz: 6b5f36a45bbd650e123976dd372ce8be63e546485f7cb2cfe2313d65723b45d3
3
+ metadata.gz: 6f8f879bd4aa597cf0fd129d36e455b7c47f4a4d0f4840d9a51af134361c33f9
4
+ data.tar.gz: 44c2106f24eb4ecf0a113b63bc0389651b14c84c5b305672d2e466f14df42e77
5
5
  SHA512:
6
- metadata.gz: c9631d29ec55a231c775a5b7df53ecd7a8704f2a7e97b3c845ce8fcefa0629111ab921759e39d34db0c8d5e41a38e1d05dfdbe487e620950623cb928fde82c60
7
- data.tar.gz: 343a0dc013172165af8f10bf81417d1e1cfb47784886a77dc7dc03d9dd69bba9f14973b96aeed1da188f14a8d4a4e7ba5a2d1a74fa00d82dbf38b120fd19ee0b
6
+ metadata.gz: 4b2eb20838420e0b2fe576676c5e245a95bfca3215457819685f7e29546cb9153d65d0976a713d57bafcdf6c2469b6ed36ccb4cade8ec4933d2dbfe3172dcdbd
7
+ data.tar.gz: 65594d6cbeba472ab66b81f7efc7969937b28d167bf6bd9ef93f1ba92a93a5817d641972949360ab81acf0b26479cab2042e3516dc6630e579b5044fbef45546
data/CHANGES.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 2.8.0
2
+
3
+ * Allow eager loading of features for ActiveRecord and Sequel strategies.
4
+
1
5
  ## 2.7.1
2
6
 
3
7
  * Admin page redirection enhancements after updating a feature switch. Now after flipping a switch it will take you back to the section that you were navigating previously. This is very helpful when having several feature switches.
data/Gemfile CHANGED
@@ -15,7 +15,7 @@ group :test do
15
15
  gem "fakeredis", require: false
16
16
 
17
17
  if version == "master" || version >= "6"
18
- gem "sqlite3", "~> 1.4.0", platform: :ruby
18
+ gem "sqlite3", "~> 1.4", platform: :ruby
19
19
  else
20
20
  gem "sqlite3", "~> 1.3.6", platform: :ruby
21
21
  end
@@ -23,8 +23,8 @@ group :test do
23
23
  gem 'sassc-rails'
24
24
  end
25
25
 
26
- gem "activerecord-jdbcsqlite3-adapter", platform: :jruby,
27
- github: "jruby/activerecord-jdbc-adapter"
26
+ # gem "activerecord-jdbcsqlite3-adapter", platform: :jruby,
27
+ # github: "jruby/activerecord-jdbc-adapter"
28
28
 
29
29
  gem "minitest", ">= 4.2"
30
30
  gem "capybara", ">= 2.6"
data/README.md CHANGED
@@ -11,6 +11,7 @@ application functionality at run-time. It is originally based on
11
11
  * manage features via console (using rake tasks)
12
12
  * thread safety
13
13
  * better database performance due to per-request caching, enabled by default
14
+ * optional eager loading (if you expect to use many features per request)
14
15
  * more strategies (Sequel, Redis, query strings, sessions, custom code)
15
16
  * more strategy options (cookie options, strategy names and descriptions, custom database models)
16
17
  * the ability to use the same strategy twice, with different options
@@ -104,6 +105,7 @@ Feature definitions support these options:
104
105
  The following strategies are provided:
105
106
  * `:active_record`/`:sequel` – Save feature settings in the database.
106
107
  * `:class` – Provide the feature model. `Flipflop::Feature` by default (which is defined automatically and uses the table `flipflop_features`). The `ActiveRecord` version honors `default_scope` when features are resolved or switched on/off.
108
+ * `:eager` – Whether to eagerly fetch all features from the database when the first feature is resolved. Useful if you expect you'll need more than 1 feature on average and you have a limited number of features. NOTE: When using outside Rails, make sure you use `Flipflop::FeatureCache::Middleware` or enable the feature cache manually. Default is `false`.
107
109
  * `:cookie` – Save feature settings in browser cookies for the current user.
108
110
  * `:prefix` – String prefix for all cookie names. Defaults to no prefix.
109
111
  * `:path` – The path for which the cookies apply. Defaults to the root of the application.
@@ -1 +1 @@
1
- /*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:0.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace, monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,html [type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-cancel-button,[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}@media print{*,*::before,*::after,p::first-letter,div::first-letter,blockquote::first-letter,li::first-letter,p::first-line,div::first-line,blockquote::first-line,li::first-line{text-shadow:none !important;box-shadow:none !important}a,a:visited{text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap !important}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.badge,section.flipflop table tbody tr td.status span.enabled,section.flipflop table tbody tr td.status span.disabled{border:1px solid #000}.table,section.flipflop table{border-collapse:collapse !important}.table td,section.flipflop table td,.table th,section.flipflop table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}@-ms-viewport{width:device-width}html{-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}body{font-family:-apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;font-size:1rem;font-weight:normal;line-height:1.5;color:#292b2c;background-color:#fff}[tabindex="-1"]:focus{outline:none !important}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-original-title]{cursor:help}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:bold}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}a{color:#0275d8;text-decoration:none}a:focus,a:hover{color:#014c8c;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle}[role="button"]{cursor:pointer}a,area,button,[role="button"],input,label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse;background-color:transparent}caption{padding-top:0.75rem;padding-bottom:0.75rem;color:#636c72;text-align:left;caption-side:bottom}th{text-align:left}label{display:inline-block;margin-bottom:.5rem}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}input,button,select,textarea{line-height:inherit}input[type="radio"]:disabled,input[type="checkbox"]:disabled{cursor:not-allowed}input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{-webkit-appearance:listbox}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit}input[type="search"]{-webkit-appearance:none}output{display:inline-block}[hidden]{display:none !important}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin-bottom:0.5rem;font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1,.h1{font-size:2.5rem}h2,.h2{font-size:2rem}h3,.h3{font-size:1.75rem}h4,.h4{font-size:1.5rem}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.1}.display-2{font-size:5.5rem;font-weight:300;line-height:1.1}.display-3{font-size:4.5rem;font-weight:300;line-height:1.1}.display-4{font-size:3.5rem;font-weight:300;line-height:1.1}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,0.1)}small,.small{font-size:80%;font-weight:normal}mark,.mark{padding:0.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:5px}.initialism{font-size:90%;text-transform:uppercase}.blockquote{padding:0.5rem 1rem;margin-bottom:1rem;font-size:1.25rem;border-left:0.25rem solid #eceeef}.blockquote-footer{display:block;font-size:80%;color:#636c72}.blockquote-footer::before{content:"\2014 \00A0"}.blockquote-reverse{padding-right:1rem;padding-left:0;text-align:right;border-right:0.25rem solid #eceeef;border-left:0}.blockquote-reverse .blockquote-footer::before{content:""}.blockquote-reverse .blockquote-footer::after{content:"\00A0 \2014"}.table,section.flipflop table{width:100%;max-width:100%;margin-bottom:1rem}.table th,section.flipflop table th,.table td,section.flipflop table td{padding:0.75rem;vertical-align:top;border-top:1px solid #eceeef}.table thead th,section.flipflop table thead th{vertical-align:bottom;border-bottom:2px solid #eceeef}.table tbody+tbody,section.flipflop table tbody+tbody{border-top:2px solid #eceeef}.table .table,section.flipflop table .table,.table section.flipflop table,section.flipflop .table table,section.flipflop table table{background-color:#fff}.table-sm th,.table-sm td{padding:0.3rem}.table-bordered{border:1px solid #eceeef}.table-bordered th,.table-bordered td{border:1px solid #eceeef}.table-bordered thead th,.table-bordered thead td{border-bottom-width:2px}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,0.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,0.075)}.table-active,.table-active>th,.table-active>td{background-color:rgba(0,0,0,0.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,0.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,0.075)}.table-success,.table-success>th,.table-success>td{background-color:#dff0d8}.table-hover .table-success:hover{background-color:#d0e9c6}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#d0e9c6}.table-info,.table-info>th,.table-info>td{background-color:#d9edf7}.table-hover .table-info:hover{background-color:#c4e3f3}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#c4e3f3}.table-warning,.table-warning>th,.table-warning>td{background-color:#fcf8e3}.table-hover .table-warning:hover{background-color:#faf2cc}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#faf2cc}.table-danger,.table-danger>th,.table-danger>td{background-color:#f2dede}.table-hover .table-danger:hover{background-color:#ebcccc}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#ebcccc}.thead-inverse th,section.flipflop table thead th{color:#fff;background-color:#292b2c}.thead-default th{color:#464a4c;background-color:#eceeef}.table-inverse{color:#fff;background-color:#292b2c}.table-inverse th,.table-inverse td,.table-inverse thead th{border-color:#fff}.table-inverse.table-bordered{border:0}.table-responsive{display:block;width:100%;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive.table-bordered{border:0}.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group button{display:inline-block;font-weight:normal;line-height:1.25;text-align:center;white-space:nowrap;vertical-align:middle;user-select:none;border:1px solid transparent;padding:0.5rem 1rem;font-size:1rem;border-radius:0.25rem;transition:all 0.2s ease-in-out}.btn:focus,section.flipflop table tbody tr td.toggle div.toolbar div.group button:focus,.btn:hover,section.flipflop table tbody tr td.toggle div.toolbar div.group button:hover{text-decoration:none}.btn:focus,section.flipflop table tbody tr td.toggle div.toolbar div.group button:focus,.btn.focus,section.flipflop table tbody tr td.toggle div.toolbar div.group button.focus{outline:0;box-shadow:0 0 0 2px rgba(2,117,216,0.25)}.btn.disabled,section.flipflop table tbody tr td.toggle div.toolbar div.group button.disabled,.btn:disabled,section.flipflop table tbody tr td.toggle div.toolbar div.group button:disabled{cursor:not-allowed;opacity:.65}.btn:active,section.flipflop table tbody tr td.toggle div.toolbar div.group button:active,.btn.active,section.flipflop table tbody tr td.toggle div.toolbar div.group button.active{background-image:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-primary,section.flipflop table tbody tr td.toggle div.toolbar div.group button.active{color:#fff;background-color:#0275d8;border-color:#0275d8}.btn-primary:hover,section.flipflop table tbody tr td.toggle div.toolbar div.group button.active:hover{color:#fff;background-color:#025aa5;border-color:#01549b}.btn-primary:focus,section.flipflop table tbody tr td.toggle div.toolbar div.group button.active:focus,.btn-primary.focus,section.flipflop table tbody tr td.toggle div.toolbar div.group button.focus.active{box-shadow:0 0 0 2px rgba(2,117,216,0.5)}.btn-primary.disabled,section.flipflop table tbody tr td.toggle div.toolbar div.group button.disabled.active,.btn-primary:disabled,section.flipflop table tbody tr td.toggle div.toolbar div.group button.active:disabled{background-color:#0275d8;border-color:#0275d8}.btn-primary:active,section.flipflop table tbody tr td.toggle div.toolbar div.group button.active:active,.btn-primary.active,section.flipflop table tbody tr td.toggle div.toolbar div.group button.active,.show>.btn-primary.dropdown-toggle,section.flipflop table tbody tr td.toggle div.toolbar div.group .show>button.dropdown-toggle.active{color:#fff;background-color:#025aa5;background-image:none;border-color:#01549b}.btn-secondary,section.flipflop table tbody tr td.toggle div.toolbar div.group button:not(.active){color:#292b2c;background-color:#fff;border-color:#ccc}.btn-secondary:hover,section.flipflop table tbody tr td.toggle div.toolbar div.group button:hover:not(.active){color:#292b2c;background-color:#e6e6e6;border-color:#adadad}.btn-secondary:focus,section.flipflop table tbody tr td.toggle div.toolbar div.group button:focus:not(.active),.btn-secondary.focus,section.flipflop table tbody tr td.toggle div.toolbar div.group button.focus:not(.active){box-shadow:0 0 0 2px rgba(204,204,204,0.5)}.btn-secondary.disabled,section.flipflop table tbody tr td.toggle div.toolbar div.group button.disabled:not(.active),.btn-secondary:disabled,section.flipflop table tbody tr td.toggle div.toolbar div.group button:disabled:not(.active){background-color:#fff;border-color:#ccc}.btn-secondary:active,section.flipflop table tbody tr td.toggle div.toolbar div.group button:active:not(.active),.btn-secondary.active,section.flipflop table tbody tr td.toggle div.toolbar div.group button.active:not(.active),.show>.btn-secondary.dropdown-toggle,section.flipflop table tbody tr td.toggle div.toolbar div.group .show>button.dropdown-toggle:not(.active){color:#292b2c;background-color:#e6e6e6;background-image:none;border-color:#adadad}.btn-info{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#2aabd2}.btn-info:focus,.btn-info.focus{box-shadow:0 0 0 2px rgba(91,192,222,0.5)}.btn-info.disabled,.btn-info:disabled{background-color:#5bc0de;border-color:#5bc0de}.btn-info:active,.btn-info.active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#31b0d5;background-image:none;border-color:#2aabd2}.btn-success{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#419641}.btn-success:focus,.btn-success.focus{box-shadow:0 0 0 2px rgba(92,184,92,0.5)}.btn-success.disabled,.btn-success:disabled{background-color:#5cb85c;border-color:#5cb85c}.btn-success:active,.btn-success.active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#449d44;background-image:none;border-color:#419641}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#eb9316}.btn-warning:focus,.btn-warning.focus{box-shadow:0 0 0 2px rgba(240,173,78,0.5)}.btn-warning.disabled,.btn-warning:disabled{background-color:#f0ad4e;border-color:#f0ad4e}.btn-warning:active,.btn-warning.active,.show>.btn-warning.dropdown-toggle{color:#fff;background-color:#ec971f;background-image:none;border-color:#eb9316}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d9534f}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#c12e2a}.btn-danger:focus,.btn-danger.focus{box-shadow:0 0 0 2px rgba(217,83,79,0.5)}.btn-danger.disabled,.btn-danger:disabled{background-color:#d9534f;border-color:#d9534f}.btn-danger:active,.btn-danger.active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#c9302c;background-image:none;border-color:#c12e2a}.btn-outline-primary{color:#0275d8;background-image:none;background-color:transparent;border-color:#0275d8}.btn-outline-primary:hover{color:#fff;background-color:#0275d8;border-color:#0275d8}.btn-outline-primary:focus,.btn-outline-primary.focus{box-shadow:0 0 0 2px rgba(2,117,216,0.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0275d8;background-color:transparent}.btn-outline-primary:active,.btn-outline-primary.active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#0275d8;border-color:#0275d8}.btn-outline-secondary{color:#ccc;background-image:none;background-color:transparent;border-color:#ccc}.btn-outline-secondary:hover{color:#fff;background-color:#ccc;border-color:#ccc}.btn-outline-secondary:focus,.btn-outline-secondary.focus{box-shadow:0 0 0 2px rgba(204,204,204,0.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#ccc;background-color:transparent}.btn-outline-secondary:active,.btn-outline-secondary.active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#ccc;border-color:#ccc}.btn-outline-info{color:#5bc0de;background-image:none;background-color:transparent;border-color:#5bc0de}.btn-outline-info:hover{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.btn-outline-info:focus,.btn-outline-info.focus{box-shadow:0 0 0 2px rgba(91,192,222,0.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#5bc0de;background-color:transparent}.btn-outline-info:active,.btn-outline-info.active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.btn-outline-success{color:#5cb85c;background-image:none;background-color:transparent;border-color:#5cb85c}.btn-outline-success:hover{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.btn-outline-success:focus,.btn-outline-success.focus{box-shadow:0 0 0 2px rgba(92,184,92,0.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#5cb85c;background-color:transparent}.btn-outline-success:active,.btn-outline-success.active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.btn-outline-warning{color:#f0ad4e;background-image:none;background-color:transparent;border-color:#f0ad4e}.btn-outline-warning:hover{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.btn-outline-warning:focus,.btn-outline-warning.focus{box-shadow:0 0 0 2px rgba(240,173,78,0.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#f0ad4e;background-color:transparent}.btn-outline-warning:active,.btn-outline-warning.active,.show>.btn-outline-warning.dropdown-toggle{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.btn-outline-danger{color:#d9534f;background-image:none;background-color:transparent;border-color:#d9534f}.btn-outline-danger:hover{color:#fff;background-color:#d9534f;border-color:#d9534f}.btn-outline-danger:focus,.btn-outline-danger.focus{box-shadow:0 0 0 2px rgba(217,83,79,0.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#d9534f;background-color:transparent}.btn-outline-danger:active,.btn-outline-danger.active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#d9534f;border-color:#d9534f}.btn-link{font-weight:normal;color:#0275d8;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link:disabled{background-color:transparent}.btn-link,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#014c8c;text-decoration:underline;background-color:transparent}.btn-link:disabled{color:#636c72}.btn-link:disabled:focus,.btn-link:disabled:hover{text-decoration:none}.btn-lg,.btn-group-lg>.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-lg>button{padding:0.75rem 1.5rem;font-size:1.25rem;border-radius:0.3rem}.btn-sm,.btn-group-sm>.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group button{padding:0.25rem 0.5rem;font-size:0.875rem;border-radius:0.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:0.5rem}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-group,section.flipflop table tbody tr td.toggle div.toolbar div.group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group>button,section.flipflop table tbody tr td.toggle div.toolbar div.group>button,.btn-group-vertical>.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>button{position:relative;flex:0 1 auto}.btn-group>.btn:hover,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn:hover,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group>button:hover,section.flipflop table tbody tr td.toggle div.toolbar div.group>button:hover,.btn-group-vertical>.btn:hover,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>button:hover{z-index:2}.btn-group>.btn:focus,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn:focus,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group>button:focus,section.flipflop table tbody tr td.toggle div.toolbar div.group>button:focus,.btn-group>.btn:active,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn:active,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group>button:active,section.flipflop table tbody tr td.toggle div.toolbar div.group>button:active,.btn-group>.btn.active,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn.active,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group>button.active,section.flipflop table tbody tr td.toggle div.toolbar div.group>button.active,.btn-group-vertical>.btn:focus,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>button:focus,.btn-group-vertical>.btn:active,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>button:active,.btn-group-vertical>.btn.active,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>button.active{z-index:2}.btn-group .btn+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group button+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group button+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group .btn+button,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn+button,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group button+button,section.flipflop table tbody tr td.toggle div.toolbar div.group button+button,.btn-group .btn+.btn-group,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn+.btn-group,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group button+.btn-group,section.flipflop table tbody tr td.toggle div.toolbar div.group button+.btn-group,.btn-group section.flipflop table tbody tr td.toggle div.toolbar .btn+div.group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group .btn+div.group,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn+div.group,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group button+div.group,section.flipflop table tbody tr td.toggle div.toolbar div.group button+div.group,.btn-group .btn-group+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group+.btn,.btn-group section.flipflop table tbody tr td.toggle div.toolbar div.group+.btn,section.flipflop table tbody tr td.toggle div.toolbar .btn-group div.group+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group div.group+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group .btn-group+button,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group+button,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group div.group+button,section.flipflop table tbody tr td.toggle div.toolbar div.group div.group+button,.btn-group .btn-group+.btn-group,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group+.btn-group,.btn-group section.flipflop table tbody tr td.toggle div.toolbar div.group+.btn-group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group div.group+.btn-group,section.flipflop table tbody tr td.toggle div.toolbar div.group div.group+.btn-group,.btn-group section.flipflop table tbody tr td.toggle div.toolbar .btn-group+div.group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group .btn-group+div.group,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group+div.group,.btn-group section.flipflop table tbody tr td.toggle div.toolbar div.group+div.group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group div.group+div.group,section.flipflop table tbody tr td.toggle div.toolbar div.group div.group+div.group,.btn-group-vertical .btn+.btn,.btn-group-vertical section.flipflop table tbody tr td.toggle div.toolbar div.group button+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical button+.btn,.btn-group-vertical section.flipflop table tbody tr td.toggle div.toolbar div.group .btn+button,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical .btn+button,.btn-group-vertical section.flipflop table tbody tr td.toggle div.toolbar div.group button+button,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical button+button,.btn-group-vertical .btn+.btn-group,.btn-group-vertical section.flipflop table tbody tr td.toggle div.toolbar div.group button+.btn-group,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical button+.btn-group,.btn-group-vertical section.flipflop table tbody tr td.toggle div.toolbar .btn+div.group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical .btn+div.group,.btn-group-vertical section.flipflop table tbody tr td.toggle div.toolbar div.group button+div.group,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical button+div.group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical section.flipflop table tbody tr td.toggle div.toolbar div.group+.btn,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical div.group+.btn,.btn-group-vertical section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group+button,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical .btn-group+button,.btn-group-vertical section.flipflop table tbody tr td.toggle div.toolbar div.group div.group+button,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical div.group div.group+button,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical div.group+button,.btn-group-vertical .btn-group+.btn-group,.btn-group-vertical section.flipflop table tbody tr td.toggle div.toolbar div.group+.btn-group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical div.group+.btn-group,.btn-group-vertical section.flipflop table tbody tr td.toggle div.toolbar .btn-group+div.group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical .btn-group+div.group,.btn-group-vertical section.flipflop table tbody tr td.toggle div.toolbar div.group+div.group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical div.group+div.group{margin-left:-1px}.btn-toolbar,section.flipflop table tbody tr td.toggle div.toolbar{display:flex;justify-content:flex-start}.btn-toolbar .input-group,section.flipflop table tbody tr td.toggle div.toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle),section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle),section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group>button:not(:first-child):not(:last-child):not(.dropdown-toggle),section.flipflop table tbody tr td.toggle div.toolbar div.group>button:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn:first-child,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group>button:first-child,section.flipflop table tbody tr td.toggle div.toolbar div.group>button:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle),section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn:first-child:not(:last-child):not(.dropdown-toggle),section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group>button:first-child:not(:last-child):not(.dropdown-toggle),section.flipflop table tbody tr td.toggle div.toolbar div.group>button:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn:last-child:not(:first-child),section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group>button:last-child:not(:first-child),section.flipflop table tbody tr td.toggle div.toolbar div.group>button:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child),section.flipflop table tbody tr td.toggle div.toolbar div.group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn-group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group>div.group,section.flipflop table tbody tr td.toggle div.toolbar div.group>div.group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn-group:not(:first-child):not(:last-child)>.btn,section.flipflop table tbody tr td.toggle div.toolbar .btn-group>div.group:not(:first-child):not(:last-child)>.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group>div.group:not(:first-child):not(:last-child)>.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group>.btn-group:not(:first-child):not(:last-child)>button,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn-group:not(:first-child):not(:last-child)>button,section.flipflop table tbody tr td.toggle div.toolbar .btn-group>div.group:not(:first-child):not(:last-child)>button,section.flipflop table tbody tr td.toggle div.toolbar div.group>div.group:not(:first-child):not(:last-child)>button{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn-group:first-child:not(:last-child)>.btn:last-child,section.flipflop table tbody tr td.toggle div.toolbar .btn-group>div.group:first-child:not(:last-child)>.btn:last-child,section.flipflop table tbody tr td.toggle div.toolbar div.group>div.group:first-child:not(:last-child)>.btn:last-child,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group>.btn-group:first-child:not(:last-child)>button:last-child,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn-group:first-child:not(:last-child)>button:last-child,section.flipflop table tbody tr td.toggle div.toolbar .btn-group>div.group:first-child:not(:last-child)>button:last-child,section.flipflop table tbody tr td.toggle div.toolbar div.group>div.group:first-child:not(:last-child)>button:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn-group:first-child:not(:last-child)>.dropdown-toggle,section.flipflop table tbody tr td.toggle div.toolbar .btn-group>div.group:first-child:not(:last-child)>.dropdown-toggle,section.flipflop table tbody tr td.toggle div.toolbar div.group>div.group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn-group:last-child:not(:first-child)>.btn:first-child,section.flipflop table tbody tr td.toggle div.toolbar .btn-group>div.group:last-child:not(:first-child)>.btn:first-child,section.flipflop table tbody tr td.toggle div.toolbar div.group>div.group:last-child:not(:first-child)>.btn:first-child,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group>.btn-group:last-child:not(:first-child)>button:first-child,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn-group:last-child:not(:first-child)>button:first-child,section.flipflop table tbody tr td.toggle div.toolbar .btn-group>div.group:last-child:not(:first-child)>button:first-child,section.flipflop table tbody tr td.toggle div.toolbar div.group>div.group:last-child:not(:first-child)>button:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,section.flipflop table tbody tr td.toggle div.toolbar div.group .dropdown-toggle:active,.btn-group.open .dropdown-toggle,section.flipflop table tbody tr td.toggle div.toolbar div.open.group .dropdown-toggle{outline:0}.btn+.dropdown-toggle-split,section.flipflop table tbody tr td.toggle div.toolbar div.group button+.dropdown-toggle-split{padding-right:0.75rem;padding-left:0.75rem}.btn+.dropdown-toggle-split::after,section.flipflop table tbody tr td.toggle div.toolbar div.group button+.dropdown-toggle-split::after{margin-left:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn+.dropdown-toggle-split,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-sm>button+.dropdown-toggle-split,section.flipflop table tbody tr td.toggle div.toolbar div.group button+.dropdown-toggle-split{padding-right:0.375rem;padding-left:0.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-lg>button+.dropdown-toggle-split{padding-right:1.125rem;padding-left:1.125rem}.btn-group-vertical{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical section.flipflop table tbody tr td.toggle div.toolbar div.group button,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical button,.btn-group-vertical .btn-group,.btn-group-vertical section.flipflop table tbody tr td.toggle div.toolbar div.group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical div.group{width:100%}.btn-group-vertical>.btn+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>button+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>.btn+button,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>button+button,.btn-group-vertical>.btn+.btn-group,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>button+.btn-group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical>.btn+div.group,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>button+div.group,.btn-group-vertical>.btn-group+.btn,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical>div.group+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>.btn-group+button,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>div.group+button,.btn-group-vertical>.btn-group+.btn-group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical>div.group+.btn-group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical>.btn-group+div.group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical>div.group+div.group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child),section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>button:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child),section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>button:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child),section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>button:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical>div.group:not(:first-child):not(:last-child)>.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>button,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical>div.group:not(:first-child):not(:last-child)>button{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical>div.group:first-child:not(:last-child)>.btn:last-child,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>.btn-group:first-child:not(:last-child)>button:last-child,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical>div.group:first-child:not(:last-child)>button:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical>div.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,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical>div.group:last-child:not(:first-child)>.btn:first-child,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>.btn-group:last-child:not(:first-child)>button:first-child,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical>div.group:last-child:not(:first-child)>button:first-child{border-top-right-radius:0;border-top-left-radius:0}[data-toggle="buttons"]>.btn input[type="radio"],section.flipflop table tbody tr td.toggle div.toolbar div.group [data-toggle="buttons"]>button input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],section.flipflop table tbody tr td.toggle div.toolbar div.group [data-toggle="buttons"]>button input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],section.flipflop table tbody tr td.toggle div.toolbar [data-toggle="buttons"]>div.group>.btn input[type="radio"],section.flipflop table tbody tr td.toggle div.toolbar div.group [data-toggle="buttons"]>.btn-group>button input[type="radio"],section.flipflop table tbody tr td.toggle div.toolbar [data-toggle="buttons"]>div.group>button input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"],section.flipflop table tbody tr td.toggle div.toolbar [data-toggle="buttons"]>div.group>.btn input[type="checkbox"],section.flipflop table tbody tr td.toggle div.toolbar div.group [data-toggle="buttons"]>.btn-group>button input[type="checkbox"],section.flipflop table tbody tr td.toggle div.toolbar [data-toggle="buttons"]>div.group>button input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.badge,section.flipflop table tbody tr td.status span.enabled,section.flipflop table tbody tr td.status span.disabled{display:inline-block;padding:0.25em 0.4em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:0.25rem}.badge:empty,section.flipflop table tbody tr td.status span.enabled:empty,section.flipflop table tbody tr td.status span.disabled:empty{display:none}.btn .badge,section.flipflop table tbody tr td.toggle div.toolbar div.group button .badge,.btn section.flipflop table tbody tr td.status span.enabled,section.flipflop table tbody tr td.status .btn span.enabled,section.flipflop table tbody tr td.toggle div.toolbar div.group button td.status span.enabled,section.flipflop table tbody tr td.status td.toggle div.toolbar div.group button span.enabled,.btn section.flipflop table tbody tr td.status span.disabled,section.flipflop table tbody tr td.status .btn span.disabled,section.flipflop table tbody tr td.toggle div.toolbar div.group button td.status span.disabled,section.flipflop table tbody tr td.status td.toggle div.toolbar div.group button span.disabled{position:relative;top:-1px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.badge-pill,section.flipflop table tbody tr td.status span.enabled,section.flipflop table tbody tr td.status span.disabled{padding-right:0.6em;padding-left:0.6em;border-radius:10rem}.badge-default,section.flipflop table tbody tr td.status span.disabled{background-color:#636c72}.badge-default[href]:focus,section.flipflop table tbody tr td.status span[href].disabled:focus,.badge-default[href]:hover,section.flipflop table tbody tr td.status span[href].disabled:hover{background-color:#4b5257}.badge-primary{background-color:#0275d8}.badge-primary[href]:focus,.badge-primary[href]:hover{background-color:#025aa5}.badge-success,section.flipflop table tbody tr td.status span.enabled{background-color:#5cb85c}.badge-success[href]:focus,section.flipflop table tbody tr td.status span[href].enabled:focus,.badge-success[href]:hover,section.flipflop table tbody tr td.status span[href].enabled:hover{background-color:#449d44}.badge-info{background-color:#5bc0de}.badge-info[href]:focus,.badge-info[href]:hover{background-color:#31b0d5}.badge-warning{background-color:#f0ad4e}.badge-warning[href]:focus,.badge-warning[href]:hover{background-color:#ec971f}.badge-danger{background-color:#d9534f}.badge-danger[href]:focus,.badge-danger[href]:hover{background-color:#c9302c}.m-0{margin:0 0 !important}.mt-0{margin-top:0 !important}.mr-0{margin-right:0 !important}.mb-0{margin-bottom:0 !important}.ml-0{margin-left:0 !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.m-1{margin:0.25rem 0.25rem !important}.mt-1{margin-top:0.25rem !important}.mr-1{margin-right:0.25rem !important}.mb-1{margin-bottom:0.25rem !important}.ml-1{margin-left:0.25rem !important}.mx-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.m-2{margin:0.5rem 0.5rem !important}.mt-2{margin-top:0.5rem !important}.mr-2,section.flipflop table tbody tr td.toggle div.toolbar div.group{margin-right:0.5rem !important}.mb-2{margin-bottom:0.5rem !important}.ml-2{margin-left:0.5rem !important}.mx-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.m-3{margin:1rem 1rem !important}.mt-3{margin-top:1rem !important}.mr-3{margin-right:1rem !important}.mb-3{margin-bottom:1rem !important}.ml-3{margin-left:1rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.m-4{margin:1.5rem 1.5rem !important}.mt-4{margin-top:1.5rem !important}.mr-4{margin-right:1.5rem !important}.mb-4{margin-bottom:1.5rem !important}.ml-4{margin-left:1.5rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-5{margin:3rem 3rem !important}.mt-5{margin-top:3rem !important}.mr-5{margin-right:3rem !important}.mb-5{margin-bottom:3rem !important}.ml-5{margin-left:3rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.p-0{padding:0 0 !important}.pt-0{padding-top:0 !important}.pr-0{padding-right:0 !important}.pb-0{padding-bottom:0 !important}.pl-0{padding-left:0 !important}.px-0{padding-right:0 !important;padding-left:0 !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.p-1{padding:0.25rem 0.25rem !important}.pt-1{padding-top:0.25rem !important}.pr-1{padding-right:0.25rem !important}.pb-1{padding-bottom:0.25rem !important}.pl-1{padding-left:0.25rem !important}.px-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-2{padding:0.5rem 0.5rem !important}.pt-2{padding-top:0.5rem !important}.pr-2{padding-right:0.5rem !important}.pb-2{padding-bottom:0.5rem !important}.pl-2{padding-left:0.5rem !important}.px-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-3{padding:1rem 1rem !important}.pt-3{padding-top:1rem !important}.pr-3{padding-right:1rem !important}.pb-3{padding-bottom:1rem !important}.pl-3{padding-left:1rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.p-4{padding:1.5rem 1.5rem !important}.pt-4{padding-top:1.5rem !important}.pr-4{padding-right:1.5rem !important}.pb-4{padding-bottom:1.5rem !important}.pl-4{padding-left:1.5rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-5{padding:3rem 3rem !important}.pt-5{padding-top:3rem !important}.pr-5{padding-right:3rem !important}.pb-5{padding-bottom:3rem !important}.pl-5{padding-left:3rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.m-auto{margin:auto !important}.mt-auto{margin-top:auto !important}.mr-auto{margin-right:auto !important}.mb-auto{margin-bottom:auto !important}.ml-auto{margin-left:auto !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}@media (min-width: 576px){.m-sm-0{margin:0 0 !important}.mt-sm-0{margin-top:0 !important}.mr-sm-0{margin-right:0 !important}.mb-sm-0{margin-bottom:0 !important}.ml-sm-0{margin-left:0 !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.m-sm-1{margin:0.25rem 0.25rem !important}.mt-sm-1{margin-top:0.25rem !important}.mr-sm-1{margin-right:0.25rem !important}.mb-sm-1{margin-bottom:0.25rem !important}.ml-sm-1{margin-left:0.25rem !important}.mx-sm-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-sm-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.m-sm-2{margin:0.5rem 0.5rem !important}.mt-sm-2{margin-top:0.5rem !important}.mr-sm-2{margin-right:0.5rem !important}.mb-sm-2{margin-bottom:0.5rem !important}.ml-sm-2{margin-left:0.5rem !important}.mx-sm-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-sm-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.m-sm-3{margin:1rem 1rem !important}.mt-sm-3{margin-top:1rem !important}.mr-sm-3{margin-right:1rem !important}.mb-sm-3{margin-bottom:1rem !important}.ml-sm-3{margin-left:1rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.m-sm-4{margin:1.5rem 1.5rem !important}.mt-sm-4{margin-top:1.5rem !important}.mr-sm-4{margin-right:1.5rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.ml-sm-4{margin-left:1.5rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-sm-5{margin:3rem 3rem !important}.mt-sm-5{margin-top:3rem !important}.mr-sm-5{margin-right:3rem !important}.mb-sm-5{margin-bottom:3rem !important}.ml-sm-5{margin-left:3rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.p-sm-0{padding:0 0 !important}.pt-sm-0{padding-top:0 !important}.pr-sm-0{padding-right:0 !important}.pb-sm-0{padding-bottom:0 !important}.pl-sm-0{padding-left:0 !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.p-sm-1{padding:0.25rem 0.25rem !important}.pt-sm-1{padding-top:0.25rem !important}.pr-sm-1{padding-right:0.25rem !important}.pb-sm-1{padding-bottom:0.25rem !important}.pl-sm-1{padding-left:0.25rem !important}.px-sm-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-sm-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-sm-2{padding:0.5rem 0.5rem !important}.pt-sm-2{padding-top:0.5rem !important}.pr-sm-2{padding-right:0.5rem !important}.pb-sm-2{padding-bottom:0.5rem !important}.pl-sm-2{padding-left:0.5rem !important}.px-sm-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-sm-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-sm-3{padding:1rem 1rem !important}.pt-sm-3{padding-top:1rem !important}.pr-sm-3{padding-right:1rem !important}.pb-sm-3{padding-bottom:1rem !important}.pl-sm-3{padding-left:1rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.p-sm-4{padding:1.5rem 1.5rem !important}.pt-sm-4{padding-top:1.5rem !important}.pr-sm-4{padding-right:1.5rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pl-sm-4{padding-left:1.5rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-sm-5{padding:3rem 3rem !important}.pt-sm-5{padding-top:3rem !important}.pr-sm-5{padding-right:3rem !important}.pb-sm-5{padding-bottom:3rem !important}.pl-sm-5{padding-left:3rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.m-sm-auto{margin:auto !important}.mt-sm-auto{margin-top:auto !important}.mr-sm-auto{margin-right:auto !important}.mb-sm-auto{margin-bottom:auto !important}.ml-sm-auto{margin-left:auto !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}}@media (min-width: 768px){.m-md-0{margin:0 0 !important}.mt-md-0{margin-top:0 !important}.mr-md-0{margin-right:0 !important}.mb-md-0{margin-bottom:0 !important}.ml-md-0{margin-left:0 !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.m-md-1{margin:0.25rem 0.25rem !important}.mt-md-1{margin-top:0.25rem !important}.mr-md-1{margin-right:0.25rem !important}.mb-md-1{margin-bottom:0.25rem !important}.ml-md-1{margin-left:0.25rem !important}.mx-md-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-md-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.m-md-2{margin:0.5rem 0.5rem !important}.mt-md-2{margin-top:0.5rem !important}.mr-md-2{margin-right:0.5rem !important}.mb-md-2{margin-bottom:0.5rem !important}.ml-md-2{margin-left:0.5rem !important}.mx-md-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-md-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.m-md-3{margin:1rem 1rem !important}.mt-md-3{margin-top:1rem !important}.mr-md-3{margin-right:1rem !important}.mb-md-3{margin-bottom:1rem !important}.ml-md-3{margin-left:1rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.m-md-4{margin:1.5rem 1.5rem !important}.mt-md-4{margin-top:1.5rem !important}.mr-md-4{margin-right:1.5rem !important}.mb-md-4{margin-bottom:1.5rem !important}.ml-md-4{margin-left:1.5rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-md-5{margin:3rem 3rem !important}.mt-md-5{margin-top:3rem !important}.mr-md-5{margin-right:3rem !important}.mb-md-5{margin-bottom:3rem !important}.ml-md-5{margin-left:3rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.p-md-0{padding:0 0 !important}.pt-md-0{padding-top:0 !important}.pr-md-0{padding-right:0 !important}.pb-md-0{padding-bottom:0 !important}.pl-md-0{padding-left:0 !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.p-md-1{padding:0.25rem 0.25rem !important}.pt-md-1{padding-top:0.25rem !important}.pr-md-1{padding-right:0.25rem !important}.pb-md-1{padding-bottom:0.25rem !important}.pl-md-1{padding-left:0.25rem !important}.px-md-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-md-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-md-2{padding:0.5rem 0.5rem !important}.pt-md-2{padding-top:0.5rem !important}.pr-md-2{padding-right:0.5rem !important}.pb-md-2{padding-bottom:0.5rem !important}.pl-md-2{padding-left:0.5rem !important}.px-md-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-md-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-md-3{padding:1rem 1rem !important}.pt-md-3{padding-top:1rem !important}.pr-md-3{padding-right:1rem !important}.pb-md-3{padding-bottom:1rem !important}.pl-md-3{padding-left:1rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.p-md-4{padding:1.5rem 1.5rem !important}.pt-md-4{padding-top:1.5rem !important}.pr-md-4{padding-right:1.5rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pl-md-4{padding-left:1.5rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-md-5{padding:3rem 3rem !important}.pt-md-5{padding-top:3rem !important}.pr-md-5{padding-right:3rem !important}.pb-md-5{padding-bottom:3rem !important}.pl-md-5{padding-left:3rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.m-md-auto{margin:auto !important}.mt-md-auto{margin-top:auto !important}.mr-md-auto{margin-right:auto !important}.mb-md-auto{margin-bottom:auto !important}.ml-md-auto{margin-left:auto !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}}@media (min-width: 992px){.m-lg-0{margin:0 0 !important}.mt-lg-0{margin-top:0 !important}.mr-lg-0{margin-right:0 !important}.mb-lg-0{margin-bottom:0 !important}.ml-lg-0{margin-left:0 !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.m-lg-1{margin:0.25rem 0.25rem !important}.mt-lg-1{margin-top:0.25rem !important}.mr-lg-1{margin-right:0.25rem !important}.mb-lg-1{margin-bottom:0.25rem !important}.ml-lg-1{margin-left:0.25rem !important}.mx-lg-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-lg-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.m-lg-2{margin:0.5rem 0.5rem !important}.mt-lg-2{margin-top:0.5rem !important}.mr-lg-2{margin-right:0.5rem !important}.mb-lg-2{margin-bottom:0.5rem !important}.ml-lg-2{margin-left:0.5rem !important}.mx-lg-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-lg-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.m-lg-3{margin:1rem 1rem !important}.mt-lg-3{margin-top:1rem !important}.mr-lg-3{margin-right:1rem !important}.mb-lg-3{margin-bottom:1rem !important}.ml-lg-3{margin-left:1rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.m-lg-4{margin:1.5rem 1.5rem !important}.mt-lg-4{margin-top:1.5rem !important}.mr-lg-4{margin-right:1.5rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.ml-lg-4{margin-left:1.5rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-lg-5{margin:3rem 3rem !important}.mt-lg-5{margin-top:3rem !important}.mr-lg-5{margin-right:3rem !important}.mb-lg-5{margin-bottom:3rem !important}.ml-lg-5{margin-left:3rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.p-lg-0{padding:0 0 !important}.pt-lg-0{padding-top:0 !important}.pr-lg-0{padding-right:0 !important}.pb-lg-0{padding-bottom:0 !important}.pl-lg-0{padding-left:0 !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.p-lg-1{padding:0.25rem 0.25rem !important}.pt-lg-1{padding-top:0.25rem !important}.pr-lg-1{padding-right:0.25rem !important}.pb-lg-1{padding-bottom:0.25rem !important}.pl-lg-1{padding-left:0.25rem !important}.px-lg-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-lg-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-lg-2{padding:0.5rem 0.5rem !important}.pt-lg-2{padding-top:0.5rem !important}.pr-lg-2{padding-right:0.5rem !important}.pb-lg-2{padding-bottom:0.5rem !important}.pl-lg-2{padding-left:0.5rem !important}.px-lg-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-lg-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-lg-3{padding:1rem 1rem !important}.pt-lg-3{padding-top:1rem !important}.pr-lg-3{padding-right:1rem !important}.pb-lg-3{padding-bottom:1rem !important}.pl-lg-3{padding-left:1rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.p-lg-4{padding:1.5rem 1.5rem !important}.pt-lg-4{padding-top:1.5rem !important}.pr-lg-4{padding-right:1.5rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pl-lg-4{padding-left:1.5rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-lg-5{padding:3rem 3rem !important}.pt-lg-5{padding-top:3rem !important}.pr-lg-5{padding-right:3rem !important}.pb-lg-5{padding-bottom:3rem !important}.pl-lg-5{padding-left:3rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.m-lg-auto{margin:auto !important}.mt-lg-auto{margin-top:auto !important}.mr-lg-auto{margin-right:auto !important}.mb-lg-auto{margin-bottom:auto !important}.ml-lg-auto{margin-left:auto !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}}@media (min-width: 1200px){.m-xl-0{margin:0 0 !important}.mt-xl-0{margin-top:0 !important}.mr-xl-0{margin-right:0 !important}.mb-xl-0{margin-bottom:0 !important}.ml-xl-0{margin-left:0 !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.m-xl-1{margin:0.25rem 0.25rem !important}.mt-xl-1{margin-top:0.25rem !important}.mr-xl-1{margin-right:0.25rem !important}.mb-xl-1{margin-bottom:0.25rem !important}.ml-xl-1{margin-left:0.25rem !important}.mx-xl-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-xl-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.m-xl-2{margin:0.5rem 0.5rem !important}.mt-xl-2{margin-top:0.5rem !important}.mr-xl-2{margin-right:0.5rem !important}.mb-xl-2{margin-bottom:0.5rem !important}.ml-xl-2{margin-left:0.5rem !important}.mx-xl-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-xl-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.m-xl-3{margin:1rem 1rem !important}.mt-xl-3{margin-top:1rem !important}.mr-xl-3{margin-right:1rem !important}.mb-xl-3{margin-bottom:1rem !important}.ml-xl-3{margin-left:1rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.m-xl-4{margin:1.5rem 1.5rem !important}.mt-xl-4{margin-top:1.5rem !important}.mr-xl-4{margin-right:1.5rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.ml-xl-4{margin-left:1.5rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-xl-5{margin:3rem 3rem !important}.mt-xl-5{margin-top:3rem !important}.mr-xl-5{margin-right:3rem !important}.mb-xl-5{margin-bottom:3rem !important}.ml-xl-5{margin-left:3rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.p-xl-0{padding:0 0 !important}.pt-xl-0{padding-top:0 !important}.pr-xl-0{padding-right:0 !important}.pb-xl-0{padding-bottom:0 !important}.pl-xl-0{padding-left:0 !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.p-xl-1{padding:0.25rem 0.25rem !important}.pt-xl-1{padding-top:0.25rem !important}.pr-xl-1{padding-right:0.25rem !important}.pb-xl-1{padding-bottom:0.25rem !important}.pl-xl-1{padding-left:0.25rem !important}.px-xl-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-xl-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-xl-2{padding:0.5rem 0.5rem !important}.pt-xl-2{padding-top:0.5rem !important}.pr-xl-2{padding-right:0.5rem !important}.pb-xl-2{padding-bottom:0.5rem !important}.pl-xl-2{padding-left:0.5rem !important}.px-xl-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-xl-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-xl-3{padding:1rem 1rem !important}.pt-xl-3{padding-top:1rem !important}.pr-xl-3{padding-right:1rem !important}.pb-xl-3{padding-bottom:1rem !important}.pl-xl-3{padding-left:1rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.p-xl-4{padding:1.5rem 1.5rem !important}.pt-xl-4{padding-top:1.5rem !important}.pr-xl-4{padding-right:1.5rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pl-xl-4{padding-left:1.5rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-xl-5{padding:3rem 3rem !important}.pt-xl-5{padding-top:3rem !important}.pr-xl-5{padding-right:3rem !important}.pb-xl-5{padding-bottom:3rem !important}.pl-xl-5{padding-left:3rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.m-xl-auto{margin:auto !important}.mt-xl-auto{margin-top:auto !important}.mr-xl-auto{margin-right:auto !important}.mb-xl-auto{margin-bottom:auto !important}.ml-xl-auto{margin-left:auto !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}}section.flipflop{position:relative;margin-left:auto;margin-right:auto;padding-right:0;padding-left:0;margin:5rem 0 0}@media (min-width: 576px){section.flipflop{padding-right:0;padding-left:0}}@media (min-width: 768px){section.flipflop{padding-right:0;padding-left:0}}@media (min-width: 992px){section.flipflop{padding-right:0;padding-left:0}}@media (min-width: 1200px){section.flipflop{padding-right:0;padding-left:0}}section.flipflop h1{padding:0 1.4rem}section.flipflop table td:first-child{padding-left:1.5rem}section.flipflop table td:last-child{padding-right:1.5rem}section.flipflop table thead tr th{position:relative;cursor:default}section.flipflop table thead tr th[data-tooltip]:before,section.flipflop table thead tr th[data-tooltip]:after{transition:all 0.2s ease-out;transform:translateY(0.2rem) translateZ(0);opacity:0;display:block;position:absolute}section.flipflop table thead tr th[data-tooltip]:before{content:attr(data-tooltip);width:98%;left:0;bottom:3.75rem;margin:0;padding:0.5rem 0.75rem;background:#464a4c;border-radius:0.2rem;font-size:0.875rem;font-weight:normal;pointer-events:none}section.flipflop table thead tr th[data-tooltip]:after{content:" ";width:0;height:0;left:1rem;bottom:3.25rem;border-left:solid transparent 0.5rem;border-right:solid transparent 0.5rem;border-top:solid #464a4c 0.5rem}section.flipflop table thead tr th:hover[data-tooltip]:before,section.flipflop table thead tr th:hover[data-tooltip]:after{transform:translateY(0) translateZ(0);opacity:1}section.flipflop table tbody tr td.status{width:2.2rem;font-size:1.1rem}section.flipflop table tbody tr td.status span.enabled,section.flipflop table tbody tr td.status span.disabled{width:2rem}section.flipflop table tbody tr td.status span.enabled span,section.flipflop table tbody tr td.status span.disabled span{width:auto;text-align:center;margin:0 -2rem}section.flipflop table tbody tr td.name{min-width:12rem;padding-top:0.9rem;font-weight:bold}section.flipflop table tbody tr td.description{min-width:12rem;padding-top:0.9rem}section.flipflop table tbody tr td.toggle{min-width:10rem}section.flipflop table tbody tr td.toggle div.toolbar{margin-left:0}section.flipflop table tbody tr td.toggle div.toolbar div.group button{cursor:pointer}section.flipflop table tbody tr.group{background-color:rgba(0,0,0,0.05)}section.flipflop table tbody tr.group td h2{margin:0;line-height:inherit;font-size:1.4rem;font-weight:bold}
1
+ /*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:0.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace, monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,html [type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-cancel-button,[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}@media print{*,*::before,*::after,p::first-letter,div::first-letter,blockquote::first-letter,li::first-letter,p::first-line,div::first-line,blockquote::first-line,li::first-line{text-shadow:none !important;box-shadow:none !important}a,a:visited{text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap !important}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.badge,section.flipflop table tbody tr td.status span.enabled,section.flipflop table tbody tr td.status span.disabled{border:1px solid #000}.table,section.flipflop table{border-collapse:collapse !important}.table td,section.flipflop table td,.table th,section.flipflop table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}@-ms-viewport{width:device-width}html{-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}body{font-family:-apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;font-size:1rem;font-weight:normal;line-height:1.5;color:#292b2c;background-color:#fff}[tabindex="-1"]:focus{outline:none !important}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-original-title]{cursor:help}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:bold}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}a{color:#0275d8;text-decoration:none}a:focus,a:hover{color:#014c8c;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle}[role="button"]{cursor:pointer}a,area,button,[role="button"],input,label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse;background-color:transparent}caption{padding-top:0.75rem;padding-bottom:0.75rem;color:#636c72;text-align:left;caption-side:bottom}th{text-align:left}label{display:inline-block;margin-bottom:.5rem}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}input,button,select,textarea{line-height:inherit}input[type="radio"]:disabled,input[type="checkbox"]:disabled{cursor:not-allowed}input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{-webkit-appearance:listbox}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit}input[type="search"]{-webkit-appearance:none}output{display:inline-block}[hidden]{display:none !important}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin-bottom:0.5rem;font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1,.h1{font-size:2.5rem}h2,.h2{font-size:2rem}h3,.h3{font-size:1.75rem}h4,.h4{font-size:1.5rem}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.1}.display-2{font-size:5.5rem;font-weight:300;line-height:1.1}.display-3{font-size:4.5rem;font-weight:300;line-height:1.1}.display-4{font-size:3.5rem;font-weight:300;line-height:1.1}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,0.1)}small,.small{font-size:80%;font-weight:normal}mark,.mark{padding:0.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:5px}.initialism{font-size:90%;text-transform:uppercase}.blockquote{padding:0.5rem 1rem;margin-bottom:1rem;font-size:1.25rem;border-left:0.25rem solid #eceeef}.blockquote-footer{display:block;font-size:80%;color:#636c72}.blockquote-footer::before{content:"\2014 \00A0"}.blockquote-reverse{padding-right:1rem;padding-left:0;text-align:right;border-right:0.25rem solid #eceeef;border-left:0}.blockquote-reverse .blockquote-footer::before{content:""}.blockquote-reverse .blockquote-footer::after{content:"\00A0 \2014"}.table,section.flipflop table{width:100%;max-width:100%;margin-bottom:1rem}.table th,section.flipflop table th,.table td,section.flipflop table td{padding:0.75rem;vertical-align:top;border-top:1px solid #eceeef}.table thead th,section.flipflop table thead th{vertical-align:bottom;border-bottom:2px solid #eceeef}.table tbody+tbody,section.flipflop table tbody+tbody{border-top:2px solid #eceeef}.table .table,section.flipflop table .table,.table section.flipflop table,section.flipflop .table table,section.flipflop table table{background-color:#fff}.table-sm th,.table-sm td{padding:0.3rem}.table-bordered{border:1px solid #eceeef}.table-bordered th,.table-bordered td{border:1px solid #eceeef}.table-bordered thead th,.table-bordered thead td{border-bottom-width:2px}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,0.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,0.075)}.table-active,.table-active>th,.table-active>td{background-color:rgba(0,0,0,0.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,0.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,0.075)}.table-success,.table-success>th,.table-success>td{background-color:#dff0d8}.table-hover .table-success:hover{background-color:#d0e9c6}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#d0e9c6}.table-info,.table-info>th,.table-info>td{background-color:#d9edf7}.table-hover .table-info:hover{background-color:#c4e3f3}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#c4e3f3}.table-warning,.table-warning>th,.table-warning>td{background-color:#fcf8e3}.table-hover .table-warning:hover{background-color:#faf2cc}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#faf2cc}.table-danger,.table-danger>th,.table-danger>td{background-color:#f2dede}.table-hover .table-danger:hover{background-color:#ebcccc}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#ebcccc}.thead-inverse th,section.flipflop table thead th{color:#fff;background-color:#292b2c}.thead-default th{color:#464a4c;background-color:#eceeef}.table-inverse{color:#fff;background-color:#292b2c}.table-inverse th,.table-inverse td,.table-inverse thead th{border-color:#fff}.table-inverse.table-bordered{border:0}.table-responsive{display:block;width:100%;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive.table-bordered{border:0}.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group button{display:inline-block;font-weight:normal;line-height:1.25;text-align:center;white-space:nowrap;vertical-align:middle;user-select:none;border:1px solid transparent;padding:0.5rem 1rem;font-size:1rem;border-radius:0.25rem;transition:all 0.2s ease-in-out}.btn:focus,section.flipflop table tbody tr td.toggle div.toolbar div.group button:focus,.btn:hover,section.flipflop table tbody tr td.toggle div.toolbar div.group button:hover{text-decoration:none}.btn:focus,section.flipflop table tbody tr td.toggle div.toolbar div.group button:focus,.btn.focus,section.flipflop table tbody tr td.toggle div.toolbar div.group button.focus{outline:0;box-shadow:0 0 0 2px rgba(2,117,216,0.25)}.btn.disabled,section.flipflop table tbody tr td.toggle div.toolbar div.group button.disabled,.btn:disabled,section.flipflop table tbody tr td.toggle div.toolbar div.group button:disabled{cursor:not-allowed;opacity:.65}.btn:active,section.flipflop table tbody tr td.toggle div.toolbar div.group button:active,.btn.active,section.flipflop table tbody tr td.toggle div.toolbar div.group button.active{background-image:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-primary,section.flipflop table tbody tr td.toggle div.toolbar div.group button.active{color:#fff;background-color:#0275d8;border-color:#0275d8}.btn-primary:hover,section.flipflop table tbody tr td.toggle div.toolbar div.group button.active:hover{color:#fff;background-color:#025aa5;border-color:#01549b}.btn-primary:focus,section.flipflop table tbody tr td.toggle div.toolbar div.group button.active:focus,.btn-primary.focus,section.flipflop table tbody tr td.toggle div.toolbar div.group button.focus.active{box-shadow:0 0 0 2px rgba(2,117,216,0.5)}.btn-primary.disabled,section.flipflop table tbody tr td.toggle div.toolbar div.group button.disabled.active,.btn-primary:disabled,section.flipflop table tbody tr td.toggle div.toolbar div.group button.active:disabled{background-color:#0275d8;border-color:#0275d8}.btn-primary:active,.btn-primary.active,section.flipflop table tbody tr td.toggle div.toolbar div.group button.active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#025aa5;background-image:none;border-color:#01549b}.btn-secondary,section.flipflop table tbody tr td.toggle div.toolbar div.group button:not(.active){color:#292b2c;background-color:#fff;border-color:#ccc}.btn-secondary:hover,section.flipflop table tbody tr td.toggle div.toolbar div.group button:hover:not(.active){color:#292b2c;background-color:#e6e6e6;border-color:#adadad}.btn-secondary:focus,section.flipflop table tbody tr td.toggle div.toolbar div.group button:focus:not(.active),.btn-secondary.focus,section.flipflop table tbody tr td.toggle div.toolbar div.group button.focus:not(.active){box-shadow:0 0 0 2px rgba(204,204,204,0.5)}.btn-secondary.disabled,section.flipflop table tbody tr td.toggle div.toolbar div.group button.disabled:not(.active),.btn-secondary:disabled,section.flipflop table tbody tr td.toggle div.toolbar div.group button:disabled:not(.active){background-color:#fff;border-color:#ccc}.btn-secondary:active,section.flipflop table tbody tr td.toggle div.toolbar div.group button:active:not(.active),.btn-secondary.active,section.flipflop table tbody tr td.toggle div.toolbar div.group button.active:not(.active),.show>.btn-secondary.dropdown-toggle,section.flipflop table tbody tr td.toggle div.toolbar div.group .show>button.dropdown-toggle:not(.active){color:#292b2c;background-color:#e6e6e6;background-image:none;border-color:#adadad}.btn-info{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#2aabd2}.btn-info:focus,.btn-info.focus{box-shadow:0 0 0 2px rgba(91,192,222,0.5)}.btn-info.disabled,.btn-info:disabled{background-color:#5bc0de;border-color:#5bc0de}.btn-info:active,.btn-info.active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#31b0d5;background-image:none;border-color:#2aabd2}.btn-success{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#419641}.btn-success:focus,.btn-success.focus{box-shadow:0 0 0 2px rgba(92,184,92,0.5)}.btn-success.disabled,.btn-success:disabled{background-color:#5cb85c;border-color:#5cb85c}.btn-success:active,.btn-success.active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#449d44;background-image:none;border-color:#419641}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#eb9316}.btn-warning:focus,.btn-warning.focus{box-shadow:0 0 0 2px rgba(240,173,78,0.5)}.btn-warning.disabled,.btn-warning:disabled{background-color:#f0ad4e;border-color:#f0ad4e}.btn-warning:active,.btn-warning.active,.show>.btn-warning.dropdown-toggle{color:#fff;background-color:#ec971f;background-image:none;border-color:#eb9316}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d9534f}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#c12e2a}.btn-danger:focus,.btn-danger.focus{box-shadow:0 0 0 2px rgba(217,83,79,0.5)}.btn-danger.disabled,.btn-danger:disabled{background-color:#d9534f;border-color:#d9534f}.btn-danger:active,.btn-danger.active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#c9302c;background-image:none;border-color:#c12e2a}.btn-outline-primary{color:#0275d8;background-image:none;background-color:transparent;border-color:#0275d8}.btn-outline-primary:hover{color:#fff;background-color:#0275d8;border-color:#0275d8}.btn-outline-primary:focus,.btn-outline-primary.focus{box-shadow:0 0 0 2px rgba(2,117,216,0.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0275d8;background-color:transparent}.btn-outline-primary:active,.btn-outline-primary.active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#0275d8;border-color:#0275d8}.btn-outline-secondary{color:#ccc;background-image:none;background-color:transparent;border-color:#ccc}.btn-outline-secondary:hover{color:#fff;background-color:#ccc;border-color:#ccc}.btn-outline-secondary:focus,.btn-outline-secondary.focus{box-shadow:0 0 0 2px rgba(204,204,204,0.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#ccc;background-color:transparent}.btn-outline-secondary:active,.btn-outline-secondary.active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#ccc;border-color:#ccc}.btn-outline-info{color:#5bc0de;background-image:none;background-color:transparent;border-color:#5bc0de}.btn-outline-info:hover{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.btn-outline-info:focus,.btn-outline-info.focus{box-shadow:0 0 0 2px rgba(91,192,222,0.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#5bc0de;background-color:transparent}.btn-outline-info:active,.btn-outline-info.active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.btn-outline-success{color:#5cb85c;background-image:none;background-color:transparent;border-color:#5cb85c}.btn-outline-success:hover{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.btn-outline-success:focus,.btn-outline-success.focus{box-shadow:0 0 0 2px rgba(92,184,92,0.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#5cb85c;background-color:transparent}.btn-outline-success:active,.btn-outline-success.active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.btn-outline-warning{color:#f0ad4e;background-image:none;background-color:transparent;border-color:#f0ad4e}.btn-outline-warning:hover{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.btn-outline-warning:focus,.btn-outline-warning.focus{box-shadow:0 0 0 2px rgba(240,173,78,0.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#f0ad4e;background-color:transparent}.btn-outline-warning:active,.btn-outline-warning.active,.show>.btn-outline-warning.dropdown-toggle{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.btn-outline-danger{color:#d9534f;background-image:none;background-color:transparent;border-color:#d9534f}.btn-outline-danger:hover{color:#fff;background-color:#d9534f;border-color:#d9534f}.btn-outline-danger:focus,.btn-outline-danger.focus{box-shadow:0 0 0 2px rgba(217,83,79,0.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#d9534f;background-color:transparent}.btn-outline-danger:active,.btn-outline-danger.active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#d9534f;border-color:#d9534f}.btn-link{font-weight:normal;color:#0275d8;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link:disabled{background-color:transparent}.btn-link,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#014c8c;text-decoration:underline;background-color:transparent}.btn-link:disabled{color:#636c72}.btn-link:disabled:focus,.btn-link:disabled:hover{text-decoration:none}.btn-lg,.btn-group-lg>.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-lg>button{padding:0.75rem 1.5rem;font-size:1.25rem;border-radius:0.3rem}.btn-sm,section.flipflop table tbody tr td.toggle div.toolbar div.group button,.btn-group-sm>.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn{padding:0.25rem 0.5rem;font-size:0.875rem;border-radius:0.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:0.5rem}input.btn-block[type="submit"],input.btn-block[type="reset"],input.btn-block[type="button"]{width:100%}.btn-group,section.flipflop table tbody tr td.toggle div.toolbar div.group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group>button,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group>button,.btn-group-vertical>.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>button{position:relative;flex:0 1 auto}.btn-group>.btn:hover,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group>button:hover,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn:hover,section.flipflop table tbody tr td.toggle div.toolbar div.group>button:hover,.btn-group-vertical>.btn:hover,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>button:hover{z-index:2}.btn-group>.btn:focus,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group>button:focus,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn:focus,section.flipflop table tbody tr td.toggle div.toolbar div.group>button:focus,.btn-group>.btn:active,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group>button:active,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn:active,section.flipflop table tbody tr td.toggle div.toolbar div.group>button:active,.btn-group>.btn.active,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group>button.active,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn.active,section.flipflop table tbody tr td.toggle div.toolbar div.group>button.active,.btn-group-vertical>.btn:focus,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>button:focus,.btn-group-vertical>.btn:active,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>button:active,.btn-group-vertical>.btn.active,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>button.active{z-index:2}.btn-group .btn+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group button+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group .btn+button,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group button+button,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group button+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn+button,section.flipflop table tbody tr td.toggle div.toolbar div.group button+button,.btn-group .btn+.btn-group,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group button+.btn-group,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn+.btn-group,section.flipflop table tbody tr td.toggle div.toolbar div.group button+.btn-group,.btn-group section.flipflop table tbody tr td.toggle div.toolbar .btn+div.group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group .btn+div.group,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group button+div.group,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn+div.group,section.flipflop table tbody tr td.toggle div.toolbar div.group button+div.group,.btn-group .btn-group+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group .btn-group+button,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group+button,.btn-group section.flipflop table tbody tr td.toggle div.toolbar div.group+.btn,section.flipflop table tbody tr td.toggle div.toolbar .btn-group div.group+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group div.group+button,section.flipflop table tbody tr td.toggle div.toolbar div.group div.group+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group div.group+button,.btn-group .btn-group+.btn-group,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group+.btn-group,.btn-group section.flipflop table tbody tr td.toggle div.toolbar div.group+.btn-group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group div.group+.btn-group,section.flipflop table tbody tr td.toggle div.toolbar div.group div.group+.btn-group,.btn-group section.flipflop table tbody tr td.toggle div.toolbar .btn-group+div.group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group .btn-group+div.group,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group+div.group,.btn-group section.flipflop table tbody tr td.toggle div.toolbar div.group+div.group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group div.group+div.group,section.flipflop table tbody tr td.toggle div.toolbar div.group div.group+div.group,.btn-group-vertical .btn+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical button+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical .btn+button,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical button+button,.btn-group-vertical .btn+.btn-group,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical button+.btn-group,.btn-group-vertical section.flipflop table tbody tr td.toggle div.toolbar .btn+div.group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical .btn+div.group,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical button+div.group,.btn-group-vertical .btn-group+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical .btn-group+button,.btn-group-vertical section.flipflop table tbody tr td.toggle div.toolbar div.group+.btn,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical div.group+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical div.group+button,.btn-group-vertical .btn-group+.btn-group,.btn-group-vertical section.flipflop table tbody tr td.toggle div.toolbar div.group+.btn-group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical div.group+.btn-group,.btn-group-vertical section.flipflop table tbody tr td.toggle div.toolbar .btn-group+div.group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical .btn-group+div.group,.btn-group-vertical section.flipflop table tbody tr td.toggle div.toolbar div.group+div.group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical div.group+div.group{margin-left:-1px}.btn-toolbar,section.flipflop table tbody tr td.toggle div.toolbar{display:flex;justify-content:flex-start}.btn-toolbar .input-group,section.flipflop table tbody tr td.toggle div.toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle),section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group>button:not(:first-child):not(:last-child):not(.dropdown-toggle),section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle),section.flipflop table tbody tr td.toggle div.toolbar div.group>button:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group>button:first-child,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn:first-child,section.flipflop table tbody tr td.toggle div.toolbar div.group>button:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle),section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group>button:first-child:not(:last-child):not(.dropdown-toggle),section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn:first-child:not(:last-child):not(.dropdown-toggle),section.flipflop table tbody tr td.toggle div.toolbar div.group>button:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group>button:last-child:not(:first-child),section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn:last-child:not(:first-child),section.flipflop table tbody tr td.toggle div.toolbar div.group>button:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child),section.flipflop table tbody tr td.toggle div.toolbar div.group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn-group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group>div.group,section.flipflop table tbody tr td.toggle div.toolbar div.group>div.group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group>.btn-group:not(:first-child):not(:last-child)>button,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn-group:not(:first-child):not(:last-child)>.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn-group:not(:first-child):not(:last-child)>button,section.flipflop table tbody tr td.toggle div.toolbar .btn-group>div.group:not(:first-child):not(:last-child)>.btn,section.flipflop table tbody tr td.toggle div.toolbar .btn-group>div.group:not(:first-child):not(:last-child)>button,section.flipflop table tbody tr td.toggle div.toolbar div.group>div.group:not(:first-child):not(:last-child)>.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group>div.group:not(:first-child):not(:last-child)>button{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group>.btn-group:first-child:not(:last-child)>button:last-child,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn-group:first-child:not(:last-child)>.btn:last-child,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn-group:first-child:not(:last-child)>button:last-child,section.flipflop table tbody tr td.toggle div.toolbar .btn-group>div.group:first-child:not(:last-child)>.btn:last-child,section.flipflop table tbody tr td.toggle div.toolbar .btn-group>div.group:first-child:not(:last-child)>button:last-child,section.flipflop table tbody tr td.toggle div.toolbar div.group>div.group:first-child:not(:last-child)>.btn:last-child,section.flipflop table tbody tr td.toggle div.toolbar div.group>div.group:first-child:not(:last-child)>button:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn-group:first-child:not(:last-child)>.dropdown-toggle,section.flipflop table tbody tr td.toggle div.toolbar .btn-group>div.group:first-child:not(:last-child)>.dropdown-toggle,section.flipflop table tbody tr td.toggle div.toolbar div.group>div.group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group>.btn-group:last-child:not(:first-child)>button:first-child,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn-group:last-child:not(:first-child)>.btn:first-child,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn-group:last-child:not(:first-child)>button:first-child,section.flipflop table tbody tr td.toggle div.toolbar .btn-group>div.group:last-child:not(:first-child)>.btn:first-child,section.flipflop table tbody tr td.toggle div.toolbar .btn-group>div.group:last-child:not(:first-child)>button:first-child,section.flipflop table tbody tr td.toggle div.toolbar div.group>div.group:last-child:not(:first-child)>.btn:first-child,section.flipflop table tbody tr td.toggle div.toolbar div.group>div.group:last-child:not(:first-child)>button:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,section.flipflop table tbody tr td.toggle div.toolbar div.group .dropdown-toggle:active,.btn-group.open .dropdown-toggle,section.flipflop table tbody tr td.toggle div.toolbar div.open.group .dropdown-toggle{outline:0}.btn+.dropdown-toggle-split,section.flipflop table tbody tr td.toggle div.toolbar div.group button+.dropdown-toggle-split{padding-right:0.75rem;padding-left:0.75rem}.btn+.dropdown-toggle-split::after,section.flipflop table tbody tr td.toggle div.toolbar div.group button+.dropdown-toggle-split::after{margin-left:0}.btn-sm+.dropdown-toggle-split,section.flipflop table tbody tr td.toggle div.toolbar div.group button+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-sm>button+.dropdown-toggle-split,section.flipflop table tbody tr td.toggle div.toolbar div.group>.btn+.dropdown-toggle-split{padding-right:0.375rem;padding-left:0.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-lg>button+.dropdown-toggle-split{padding-right:1.125rem;padding-left:1.125rem}.btn-group-vertical{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical section.flipflop table tbody tr td.toggle div.toolbar div.group button,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical button,.btn-group-vertical .btn-group,.btn-group-vertical section.flipflop table tbody tr td.toggle div.toolbar div.group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical div.group{width:100%}.btn-group-vertical>.btn+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>button+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>.btn+button,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>button+button,.btn-group-vertical>.btn+.btn-group,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>button+.btn-group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical>.btn+div.group,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>button+div.group,.btn-group-vertical>.btn-group+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>.btn-group+button,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical>div.group+.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>div.group+button,.btn-group-vertical>.btn-group+.btn-group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical>div.group+.btn-group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical>.btn-group+div.group,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical>div.group+div.group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child),section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>button:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child),section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>button:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child),section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>button:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>button,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical>div.group:not(:first-child):not(:last-child)>.btn,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical>div.group:not(:first-child):not(:last-child)>button{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>.btn-group:first-child:not(:last-child)>button:last-child,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical>div.group:first-child:not(:last-child)>.btn:last-child,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical>div.group:first-child:not(:last-child)>button:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical>div.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,section.flipflop table tbody tr td.toggle div.toolbar div.group .btn-group-vertical>.btn-group:last-child:not(:first-child)>button:first-child,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical>div.group:last-child:not(:first-child)>.btn:first-child,section.flipflop table tbody tr td.toggle div.toolbar .btn-group-vertical>div.group:last-child:not(:first-child)>button:first-child{border-top-right-radius:0;border-top-left-radius:0}[data-toggle="buttons"]>.btn input[type="radio"],section.flipflop table tbody tr td.toggle div.toolbar div.group [data-toggle="buttons"]>button input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],section.flipflop table tbody tr td.toggle div.toolbar div.group [data-toggle="buttons"]>button input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],section.flipflop table tbody tr td.toggle div.toolbar [data-toggle="buttons"]>div.group>.btn input[type="radio"],section.flipflop table tbody tr td.toggle div.toolbar [data-toggle="buttons"]>div.group>button input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"],section.flipflop table tbody tr td.toggle div.toolbar [data-toggle="buttons"]>div.group>.btn input[type="checkbox"],section.flipflop table tbody tr td.toggle div.toolbar [data-toggle="buttons"]>div.group>button input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.badge,section.flipflop table tbody tr td.status span.enabled,section.flipflop table tbody tr td.status span.disabled{display:inline-block;padding:0.25em 0.4em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:0.25rem}.badge:empty,section.flipflop table tbody tr td.status span.enabled:empty,section.flipflop table tbody tr td.status span.disabled:empty{display:none}.btn .badge,section.flipflop table tbody tr td.toggle div.toolbar div.group button .badge,.btn section.flipflop table tbody tr td.status span.enabled,section.flipflop table tbody tr td.toggle div.toolbar div.group button section.flipflop table tbody tr td.status span.enabled,section.flipflop table tbody tr td.status .btn span.enabled,section.flipflop table tbody tr td.status td.toggle div.toolbar div.group button span.enabled,section.flipflop table tbody tr td.toggle div.toolbar div.group td.status button span.enabled,.btn section.flipflop table tbody tr td.status span.disabled,section.flipflop table tbody tr td.toggle div.toolbar div.group button section.flipflop table tbody tr td.status span.disabled,section.flipflop table tbody tr td.status .btn span.disabled,section.flipflop table tbody tr td.status td.toggle div.toolbar div.group button span.disabled,section.flipflop table tbody tr td.toggle div.toolbar div.group td.status button span.disabled{position:relative;top:-1px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.badge-pill,section.flipflop table tbody tr td.status span.enabled,section.flipflop table tbody tr td.status span.disabled{padding-right:0.6em;padding-left:0.6em;border-radius:10rem}.badge-default,section.flipflop table tbody tr td.status span.disabled{background-color:#636c72}.badge-default[href]:focus,section.flipflop table tbody tr td.status span.disabled[href]:focus,.badge-default[href]:hover,section.flipflop table tbody tr td.status span.disabled[href]:hover{background-color:#4b5257}.badge-primary{background-color:#0275d8}.badge-primary[href]:focus,.badge-primary[href]:hover{background-color:#025aa5}.badge-success,section.flipflop table tbody tr td.status span.enabled{background-color:#5cb85c}.badge-success[href]:focus,section.flipflop table tbody tr td.status span.enabled[href]:focus,.badge-success[href]:hover,section.flipflop table tbody tr td.status span.enabled[href]:hover{background-color:#449d44}.badge-info{background-color:#5bc0de}.badge-info[href]:focus,.badge-info[href]:hover{background-color:#31b0d5}.badge-warning{background-color:#f0ad4e}.badge-warning[href]:focus,.badge-warning[href]:hover{background-color:#ec971f}.badge-danger{background-color:#d9534f}.badge-danger[href]:focus,.badge-danger[href]:hover{background-color:#c9302c}.m-0{margin:0 0 !important}.mt-0{margin-top:0 !important}.mr-0{margin-right:0 !important}.mb-0{margin-bottom:0 !important}.ml-0{margin-left:0 !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.m-1{margin:0.25rem 0.25rem !important}.mt-1{margin-top:0.25rem !important}.mr-1{margin-right:0.25rem !important}.mb-1{margin-bottom:0.25rem !important}.ml-1{margin-left:0.25rem !important}.mx-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.m-2{margin:0.5rem 0.5rem !important}.mt-2{margin-top:0.5rem !important}.mr-2,section.flipflop table tbody tr td.toggle div.toolbar div.group{margin-right:0.5rem !important}.mb-2{margin-bottom:0.5rem !important}.ml-2{margin-left:0.5rem !important}.mx-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.m-3{margin:1rem 1rem !important}.mt-3{margin-top:1rem !important}.mr-3{margin-right:1rem !important}.mb-3{margin-bottom:1rem !important}.ml-3{margin-left:1rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.m-4{margin:1.5rem 1.5rem !important}.mt-4{margin-top:1.5rem !important}.mr-4{margin-right:1.5rem !important}.mb-4{margin-bottom:1.5rem !important}.ml-4{margin-left:1.5rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-5{margin:3rem 3rem !important}.mt-5{margin-top:3rem !important}.mr-5{margin-right:3rem !important}.mb-5{margin-bottom:3rem !important}.ml-5{margin-left:3rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.p-0{padding:0 0 !important}.pt-0{padding-top:0 !important}.pr-0{padding-right:0 !important}.pb-0{padding-bottom:0 !important}.pl-0{padding-left:0 !important}.px-0{padding-right:0 !important;padding-left:0 !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.p-1{padding:0.25rem 0.25rem !important}.pt-1{padding-top:0.25rem !important}.pr-1{padding-right:0.25rem !important}.pb-1{padding-bottom:0.25rem !important}.pl-1{padding-left:0.25rem !important}.px-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-2{padding:0.5rem 0.5rem !important}.pt-2{padding-top:0.5rem !important}.pr-2{padding-right:0.5rem !important}.pb-2{padding-bottom:0.5rem !important}.pl-2{padding-left:0.5rem !important}.px-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-3{padding:1rem 1rem !important}.pt-3{padding-top:1rem !important}.pr-3{padding-right:1rem !important}.pb-3{padding-bottom:1rem !important}.pl-3{padding-left:1rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.p-4{padding:1.5rem 1.5rem !important}.pt-4{padding-top:1.5rem !important}.pr-4{padding-right:1.5rem !important}.pb-4{padding-bottom:1.5rem !important}.pl-4{padding-left:1.5rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-5{padding:3rem 3rem !important}.pt-5{padding-top:3rem !important}.pr-5{padding-right:3rem !important}.pb-5{padding-bottom:3rem !important}.pl-5{padding-left:3rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.m-auto{margin:auto !important}.mt-auto{margin-top:auto !important}.mr-auto{margin-right:auto !important}.mb-auto{margin-bottom:auto !important}.ml-auto{margin-left:auto !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}@media (min-width: 576px){.m-sm-0{margin:0 0 !important}.mt-sm-0{margin-top:0 !important}.mr-sm-0{margin-right:0 !important}.mb-sm-0{margin-bottom:0 !important}.ml-sm-0{margin-left:0 !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.m-sm-1{margin:0.25rem 0.25rem !important}.mt-sm-1{margin-top:0.25rem !important}.mr-sm-1{margin-right:0.25rem !important}.mb-sm-1{margin-bottom:0.25rem !important}.ml-sm-1{margin-left:0.25rem !important}.mx-sm-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-sm-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.m-sm-2{margin:0.5rem 0.5rem !important}.mt-sm-2{margin-top:0.5rem !important}.mr-sm-2{margin-right:0.5rem !important}.mb-sm-2{margin-bottom:0.5rem !important}.ml-sm-2{margin-left:0.5rem !important}.mx-sm-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-sm-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.m-sm-3{margin:1rem 1rem !important}.mt-sm-3{margin-top:1rem !important}.mr-sm-3{margin-right:1rem !important}.mb-sm-3{margin-bottom:1rem !important}.ml-sm-3{margin-left:1rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.m-sm-4{margin:1.5rem 1.5rem !important}.mt-sm-4{margin-top:1.5rem !important}.mr-sm-4{margin-right:1.5rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.ml-sm-4{margin-left:1.5rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-sm-5{margin:3rem 3rem !important}.mt-sm-5{margin-top:3rem !important}.mr-sm-5{margin-right:3rem !important}.mb-sm-5{margin-bottom:3rem !important}.ml-sm-5{margin-left:3rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.p-sm-0{padding:0 0 !important}.pt-sm-0{padding-top:0 !important}.pr-sm-0{padding-right:0 !important}.pb-sm-0{padding-bottom:0 !important}.pl-sm-0{padding-left:0 !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.p-sm-1{padding:0.25rem 0.25rem !important}.pt-sm-1{padding-top:0.25rem !important}.pr-sm-1{padding-right:0.25rem !important}.pb-sm-1{padding-bottom:0.25rem !important}.pl-sm-1{padding-left:0.25rem !important}.px-sm-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-sm-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-sm-2{padding:0.5rem 0.5rem !important}.pt-sm-2{padding-top:0.5rem !important}.pr-sm-2{padding-right:0.5rem !important}.pb-sm-2{padding-bottom:0.5rem !important}.pl-sm-2{padding-left:0.5rem !important}.px-sm-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-sm-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-sm-3{padding:1rem 1rem !important}.pt-sm-3{padding-top:1rem !important}.pr-sm-3{padding-right:1rem !important}.pb-sm-3{padding-bottom:1rem !important}.pl-sm-3{padding-left:1rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.p-sm-4{padding:1.5rem 1.5rem !important}.pt-sm-4{padding-top:1.5rem !important}.pr-sm-4{padding-right:1.5rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pl-sm-4{padding-left:1.5rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-sm-5{padding:3rem 3rem !important}.pt-sm-5{padding-top:3rem !important}.pr-sm-5{padding-right:3rem !important}.pb-sm-5{padding-bottom:3rem !important}.pl-sm-5{padding-left:3rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.m-sm-auto{margin:auto !important}.mt-sm-auto{margin-top:auto !important}.mr-sm-auto{margin-right:auto !important}.mb-sm-auto{margin-bottom:auto !important}.ml-sm-auto{margin-left:auto !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}}@media (min-width: 768px){.m-md-0{margin:0 0 !important}.mt-md-0{margin-top:0 !important}.mr-md-0{margin-right:0 !important}.mb-md-0{margin-bottom:0 !important}.ml-md-0{margin-left:0 !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.m-md-1{margin:0.25rem 0.25rem !important}.mt-md-1{margin-top:0.25rem !important}.mr-md-1{margin-right:0.25rem !important}.mb-md-1{margin-bottom:0.25rem !important}.ml-md-1{margin-left:0.25rem !important}.mx-md-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-md-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.m-md-2{margin:0.5rem 0.5rem !important}.mt-md-2{margin-top:0.5rem !important}.mr-md-2{margin-right:0.5rem !important}.mb-md-2{margin-bottom:0.5rem !important}.ml-md-2{margin-left:0.5rem !important}.mx-md-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-md-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.m-md-3{margin:1rem 1rem !important}.mt-md-3{margin-top:1rem !important}.mr-md-3{margin-right:1rem !important}.mb-md-3{margin-bottom:1rem !important}.ml-md-3{margin-left:1rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.m-md-4{margin:1.5rem 1.5rem !important}.mt-md-4{margin-top:1.5rem !important}.mr-md-4{margin-right:1.5rem !important}.mb-md-4{margin-bottom:1.5rem !important}.ml-md-4{margin-left:1.5rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-md-5{margin:3rem 3rem !important}.mt-md-5{margin-top:3rem !important}.mr-md-5{margin-right:3rem !important}.mb-md-5{margin-bottom:3rem !important}.ml-md-5{margin-left:3rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.p-md-0{padding:0 0 !important}.pt-md-0{padding-top:0 !important}.pr-md-0{padding-right:0 !important}.pb-md-0{padding-bottom:0 !important}.pl-md-0{padding-left:0 !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.p-md-1{padding:0.25rem 0.25rem !important}.pt-md-1{padding-top:0.25rem !important}.pr-md-1{padding-right:0.25rem !important}.pb-md-1{padding-bottom:0.25rem !important}.pl-md-1{padding-left:0.25rem !important}.px-md-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-md-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-md-2{padding:0.5rem 0.5rem !important}.pt-md-2{padding-top:0.5rem !important}.pr-md-2{padding-right:0.5rem !important}.pb-md-2{padding-bottom:0.5rem !important}.pl-md-2{padding-left:0.5rem !important}.px-md-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-md-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-md-3{padding:1rem 1rem !important}.pt-md-3{padding-top:1rem !important}.pr-md-3{padding-right:1rem !important}.pb-md-3{padding-bottom:1rem !important}.pl-md-3{padding-left:1rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.p-md-4{padding:1.5rem 1.5rem !important}.pt-md-4{padding-top:1.5rem !important}.pr-md-4{padding-right:1.5rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pl-md-4{padding-left:1.5rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-md-5{padding:3rem 3rem !important}.pt-md-5{padding-top:3rem !important}.pr-md-5{padding-right:3rem !important}.pb-md-5{padding-bottom:3rem !important}.pl-md-5{padding-left:3rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.m-md-auto{margin:auto !important}.mt-md-auto{margin-top:auto !important}.mr-md-auto{margin-right:auto !important}.mb-md-auto{margin-bottom:auto !important}.ml-md-auto{margin-left:auto !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}}@media (min-width: 992px){.m-lg-0{margin:0 0 !important}.mt-lg-0{margin-top:0 !important}.mr-lg-0{margin-right:0 !important}.mb-lg-0{margin-bottom:0 !important}.ml-lg-0{margin-left:0 !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.m-lg-1{margin:0.25rem 0.25rem !important}.mt-lg-1{margin-top:0.25rem !important}.mr-lg-1{margin-right:0.25rem !important}.mb-lg-1{margin-bottom:0.25rem !important}.ml-lg-1{margin-left:0.25rem !important}.mx-lg-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-lg-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.m-lg-2{margin:0.5rem 0.5rem !important}.mt-lg-2{margin-top:0.5rem !important}.mr-lg-2{margin-right:0.5rem !important}.mb-lg-2{margin-bottom:0.5rem !important}.ml-lg-2{margin-left:0.5rem !important}.mx-lg-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-lg-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.m-lg-3{margin:1rem 1rem !important}.mt-lg-3{margin-top:1rem !important}.mr-lg-3{margin-right:1rem !important}.mb-lg-3{margin-bottom:1rem !important}.ml-lg-3{margin-left:1rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.m-lg-4{margin:1.5rem 1.5rem !important}.mt-lg-4{margin-top:1.5rem !important}.mr-lg-4{margin-right:1.5rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.ml-lg-4{margin-left:1.5rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-lg-5{margin:3rem 3rem !important}.mt-lg-5{margin-top:3rem !important}.mr-lg-5{margin-right:3rem !important}.mb-lg-5{margin-bottom:3rem !important}.ml-lg-5{margin-left:3rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.p-lg-0{padding:0 0 !important}.pt-lg-0{padding-top:0 !important}.pr-lg-0{padding-right:0 !important}.pb-lg-0{padding-bottom:0 !important}.pl-lg-0{padding-left:0 !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.p-lg-1{padding:0.25rem 0.25rem !important}.pt-lg-1{padding-top:0.25rem !important}.pr-lg-1{padding-right:0.25rem !important}.pb-lg-1{padding-bottom:0.25rem !important}.pl-lg-1{padding-left:0.25rem !important}.px-lg-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-lg-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-lg-2{padding:0.5rem 0.5rem !important}.pt-lg-2{padding-top:0.5rem !important}.pr-lg-2{padding-right:0.5rem !important}.pb-lg-2{padding-bottom:0.5rem !important}.pl-lg-2{padding-left:0.5rem !important}.px-lg-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-lg-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-lg-3{padding:1rem 1rem !important}.pt-lg-3{padding-top:1rem !important}.pr-lg-3{padding-right:1rem !important}.pb-lg-3{padding-bottom:1rem !important}.pl-lg-3{padding-left:1rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.p-lg-4{padding:1.5rem 1.5rem !important}.pt-lg-4{padding-top:1.5rem !important}.pr-lg-4{padding-right:1.5rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pl-lg-4{padding-left:1.5rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-lg-5{padding:3rem 3rem !important}.pt-lg-5{padding-top:3rem !important}.pr-lg-5{padding-right:3rem !important}.pb-lg-5{padding-bottom:3rem !important}.pl-lg-5{padding-left:3rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.m-lg-auto{margin:auto !important}.mt-lg-auto{margin-top:auto !important}.mr-lg-auto{margin-right:auto !important}.mb-lg-auto{margin-bottom:auto !important}.ml-lg-auto{margin-left:auto !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}}@media (min-width: 1200px){.m-xl-0{margin:0 0 !important}.mt-xl-0{margin-top:0 !important}.mr-xl-0{margin-right:0 !important}.mb-xl-0{margin-bottom:0 !important}.ml-xl-0{margin-left:0 !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.m-xl-1{margin:0.25rem 0.25rem !important}.mt-xl-1{margin-top:0.25rem !important}.mr-xl-1{margin-right:0.25rem !important}.mb-xl-1{margin-bottom:0.25rem !important}.ml-xl-1{margin-left:0.25rem !important}.mx-xl-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-xl-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.m-xl-2{margin:0.5rem 0.5rem !important}.mt-xl-2{margin-top:0.5rem !important}.mr-xl-2{margin-right:0.5rem !important}.mb-xl-2{margin-bottom:0.5rem !important}.ml-xl-2{margin-left:0.5rem !important}.mx-xl-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-xl-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.m-xl-3{margin:1rem 1rem !important}.mt-xl-3{margin-top:1rem !important}.mr-xl-3{margin-right:1rem !important}.mb-xl-3{margin-bottom:1rem !important}.ml-xl-3{margin-left:1rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.m-xl-4{margin:1.5rem 1.5rem !important}.mt-xl-4{margin-top:1.5rem !important}.mr-xl-4{margin-right:1.5rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.ml-xl-4{margin-left:1.5rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-xl-5{margin:3rem 3rem !important}.mt-xl-5{margin-top:3rem !important}.mr-xl-5{margin-right:3rem !important}.mb-xl-5{margin-bottom:3rem !important}.ml-xl-5{margin-left:3rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.p-xl-0{padding:0 0 !important}.pt-xl-0{padding-top:0 !important}.pr-xl-0{padding-right:0 !important}.pb-xl-0{padding-bottom:0 !important}.pl-xl-0{padding-left:0 !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.p-xl-1{padding:0.25rem 0.25rem !important}.pt-xl-1{padding-top:0.25rem !important}.pr-xl-1{padding-right:0.25rem !important}.pb-xl-1{padding-bottom:0.25rem !important}.pl-xl-1{padding-left:0.25rem !important}.px-xl-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-xl-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-xl-2{padding:0.5rem 0.5rem !important}.pt-xl-2{padding-top:0.5rem !important}.pr-xl-2{padding-right:0.5rem !important}.pb-xl-2{padding-bottom:0.5rem !important}.pl-xl-2{padding-left:0.5rem !important}.px-xl-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-xl-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-xl-3{padding:1rem 1rem !important}.pt-xl-3{padding-top:1rem !important}.pr-xl-3{padding-right:1rem !important}.pb-xl-3{padding-bottom:1rem !important}.pl-xl-3{padding-left:1rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.p-xl-4{padding:1.5rem 1.5rem !important}.pt-xl-4{padding-top:1.5rem !important}.pr-xl-4{padding-right:1.5rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pl-xl-4{padding-left:1.5rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-xl-5{padding:3rem 3rem !important}.pt-xl-5{padding-top:3rem !important}.pr-xl-5{padding-right:3rem !important}.pb-xl-5{padding-bottom:3rem !important}.pl-xl-5{padding-left:3rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.m-xl-auto{margin:auto !important}.mt-xl-auto{margin-top:auto !important}.mr-xl-auto{margin-right:auto !important}.mb-xl-auto{margin-bottom:auto !important}.ml-xl-auto{margin-left:auto !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}}section.flipflop{position:relative;margin-left:auto;margin-right:auto;padding-right:0;padding-left:0;margin:5rem 0 0}@media (min-width: 576px){section.flipflop{padding-right:0;padding-left:0}}@media (min-width: 768px){section.flipflop{padding-right:0;padding-left:0}}@media (min-width: 992px){section.flipflop{padding-right:0;padding-left:0}}@media (min-width: 1200px){section.flipflop{padding-right:0;padding-left:0}}section.flipflop h1{padding:0 1.4rem}section.flipflop table td:first-child{padding-left:1.5rem}section.flipflop table td:last-child{padding-right:1.5rem}section.flipflop table thead tr th{position:relative;cursor:default}section.flipflop table thead tr th[data-tooltip]:before,section.flipflop table thead tr th[data-tooltip]:after{transition:all 0.2s ease-out;transform:translateY(0.2rem) translateZ(0);opacity:0;display:block;position:absolute}section.flipflop table thead tr th[data-tooltip]:before{content:attr(data-tooltip);width:98%;left:0;bottom:3.75rem;margin:0;padding:0.5rem 0.75rem;background:#464a4c;border-radius:0.2rem;font-size:0.875rem;font-weight:normal;pointer-events:none}section.flipflop table thead tr th[data-tooltip]:after{content:" ";width:0;height:0;left:1rem;bottom:3.25rem;border-left:solid transparent 0.5rem;border-right:solid transparent 0.5rem;border-top:solid #464a4c 0.5rem}section.flipflop table thead tr th[data-tooltip]:hover:before,section.flipflop table thead tr th[data-tooltip]:hover:after{transform:translateY(0) translateZ(0);opacity:1}section.flipflop table tbody tr td.status{width:2.2rem;font-size:1.1rem}section.flipflop table tbody tr td.status span.enabled,section.flipflop table tbody tr td.status span.disabled{width:2rem}section.flipflop table tbody tr td.status span.enabled span,section.flipflop table tbody tr td.status span.disabled span{width:auto;text-align:center;margin:0 -2rem}section.flipflop table tbody tr td.status span.enabled{background-color:#238637}section.flipflop table tbody tr td.name{min-width:12rem;padding-top:0.9rem;font-weight:bold}section.flipflop table tbody tr td.description{min-width:12rem;padding-top:0.9rem}section.flipflop table tbody tr td.toggle{min-width:10rem}section.flipflop table tbody tr td.toggle div.toolbar{margin-left:0}section.flipflop table tbody tr td.toggle div.toolbar div.group button{cursor:pointer}section.flipflop table tbody tr.group{background-color:rgba(0,0,0,0.05)}section.flipflop table tbody tr.group td h2{margin:0;line-height:inherit;font-size:1.4rem;font-weight:bold}
@@ -11,15 +11,11 @@ module Flipflop
11
11
  end
12
12
 
13
13
  def respond_to_missing?(method, include_private = false)
14
- method[-1] == "?"
14
+ FeatureSet.current.facade.respond_to?(method, include_private) || super
15
15
  end
16
16
 
17
17
  def method_missing(method, *args)
18
- if method[-1] == "?"
19
- FeatureSet.current.enabled?(method[0..-2].to_sym)
20
- else
21
- super
22
- end
18
+ FeatureSet.current.facade.send(method, *args)
23
19
  end
24
20
  end
25
21
  end
@@ -30,9 +30,12 @@ module Flipflop
30
30
 
31
31
  attr_accessor :raise_strategy_errors
32
32
 
33
+ attr_reader :facade
34
+
33
35
  def initialize
34
36
  @features = {}
35
37
  @strategies = {}
38
+ @facade = Class.new.new
36
39
  end
37
40
 
38
41
  def configure(&block)
@@ -49,6 +52,7 @@ module Flipflop
49
52
  yield if block_given?
50
53
  @features.freeze
51
54
  @strategies.freeze
55
+ @facade.class.freeze
52
56
  end
53
57
  self
54
58
  end
@@ -66,6 +70,12 @@ module Flipflop
66
70
  raise FeatureError.new(feature.key, "already defined")
67
71
  end
68
72
  @features[feature.key] = feature.freeze
73
+
74
+ @facade.class.class_eval <<-RUBY, __FILE__, __LINE__ + 1
75
+ def #{feature.key}?
76
+ FeatureSet.current.enabled?(:#{feature.key})
77
+ end
78
+ RUBY
69
79
  end
70
80
  end
71
81
 
@@ -16,6 +16,7 @@ module Flipflop
16
16
 
17
17
  def initialize(**options)
18
18
  @class = options.delete(:class) || self.class.define_feature_class
19
+ @eager = options.delete(:eager) || false
19
20
  if !@class.kind_of?(Class)
20
21
  @class = ActiveSupport::Inflector.constantize(@class.to_s)
21
22
  end
@@ -27,24 +28,33 @@ module Flipflop
27
28
  end
28
29
 
29
30
  def enabled?(feature)
30
- find(feature).first.try(:enabled?)
31
+ cache = FeatureCache.current if @eager
32
+ if cache
33
+ cache.fetch(key) { all_features }[feature]
34
+ else
35
+ scoped(feature).first.try(:enabled?)
36
+ end
31
37
  end
32
38
 
33
39
  def switch!(feature, enabled)
34
- record = find(feature).first_or_initialize
40
+ record = scoped(feature).first_or_initialize
35
41
  record.enabled = enabled
36
42
  record.save!
37
43
  end
38
44
 
39
45
  def clear!(feature)
40
- find(feature).first.try(:destroy)
46
+ scoped(feature).first.try(:destroy)
41
47
  end
42
48
 
43
49
  protected
44
50
 
45
- def find(feature)
51
+ def scoped(feature)
46
52
  @class.where(key: feature.to_s)
47
53
  end
54
+
55
+ def all_features
56
+ @class.all.to_h { |feature| [feature.key.to_sym, feature.enabled?] }
57
+ end
48
58
  end
49
59
  end
50
60
  end
@@ -19,6 +19,7 @@ module Flipflop
19
19
 
20
20
  def initialize(**options)
21
21
  @class = options.delete(:class) || self.class.define_feature_class
22
+ @eager = options.delete(:eager) || false
22
23
  if !@class.kind_of?(Class)
23
24
  @class = ActiveSupport::Inflector.constantize(@class.to_s)
24
25
  end
@@ -30,7 +31,12 @@ module Flipflop
30
31
  end
31
32
 
32
33
  def enabled?(feature)
33
- find(feature).try(:enabled?)
34
+ cache = FeatureCache.current if @eager
35
+ if cache
36
+ cache.fetch(key) { all_features }[feature]
37
+ else
38
+ scoped(feature).first.try(:enabled?)
39
+ end
34
40
  end
35
41
 
36
42
  def switch!(feature, enabled)
@@ -40,17 +46,21 @@ module Flipflop
40
46
  end
41
47
 
42
48
  def clear!(feature)
43
- find(feature).try(:destroy)
49
+ scoped(feature).first.try(:destroy)
44
50
  end
45
51
 
46
52
  protected
47
53
 
48
54
  def find_or_new(feature)
49
- find(feature) || @class.new(key: feature.to_s)
55
+ scoped(feature).first || @class.new(key: feature.to_s)
56
+ end
57
+
58
+ def scoped(feature)
59
+ @class.where(key: feature.to_s)
50
60
  end
51
61
 
52
- def find(feature)
53
- @class.where(key: feature.to_s).first
62
+ def all_features
63
+ @class.all.to_h { |feature| [feature.key.to_sym, feature.enabled?] }
54
64
  end
55
65
  end
56
66
  end
@@ -1,3 +1,3 @@
1
1
  module Flipflop
2
- VERSION = "2.7.1"
2
+ VERSION = "2.8.0"
3
3
  end
@@ -104,7 +104,11 @@ section.flipflop {
104
104
  }
105
105
  }
106
106
 
107
- span.enabled { @extend .badge-success; }
107
+ span.enabled {
108
+ @extend .badge-success;
109
+
110
+ background-color: #238637;
111
+ }
108
112
  span.disabled { @extend .badge-default; }
109
113
  }
110
114
 
@@ -41,6 +41,7 @@ describe Flipflop do
41
41
  describe "module" do
42
42
  before do
43
43
  Flipflop::FeatureSet.current.instance_variable_set(:@features, {})
44
+ Flipflop::FeatureSet.current.instance_variable_set(:@facade, Class.new.new)
44
45
  Module.new do
45
46
  extend Flipflop::Configurable
46
47
  feature :world_domination
@@ -40,6 +40,7 @@ describe Flipflop do
40
40
  describe "with features" do
41
41
  before do
42
42
  Flipflop::FeatureSet.current.instance_variable_set(:@features, {})
43
+ Flipflop::FeatureSet.current.instance_variable_set(:@facade, Class.new.new)
43
44
  Module.new do
44
45
  extend Flipflop::Configurable
45
46
  feature :world_domination, description: "Try and take over the world!"
@@ -74,6 +75,7 @@ describe Flipflop do
74
75
  describe "with grouped features" do
75
76
  before do
76
77
  Flipflop::FeatureSet.current.instance_variable_set(:@features, {})
78
+ Flipflop::FeatureSet.current.instance_variable_set(:@facade, Class.new.new)
77
79
  Module.new do
78
80
  extend Flipflop::Configurable
79
81
  group "world" do
@@ -110,6 +112,7 @@ describe Flipflop do
110
112
  describe "with cookie strategy" do
111
113
  before do
112
114
  Flipflop::FeatureSet.current.instance_variable_set(:@features, {})
115
+ Flipflop::FeatureSet.current.instance_variable_set(:@facade, Class.new.new)
113
116
  Module.new do
114
117
  extend Flipflop::Configurable
115
118
  feature :world_domination, description: "Try and take over the world!"
@@ -181,6 +184,7 @@ describe Flipflop do
181
184
  describe "with active record strategy" do
182
185
  before do
183
186
  Flipflop::FeatureSet.current.instance_variable_set(:@features, {})
187
+ Flipflop::FeatureSet.current.instance_variable_set(:@facade, Class.new.new)
184
188
  Module.new do
185
189
  extend Flipflop::Configurable
186
190
  feature :world_domination, description: "Try and take over the world!"
@@ -305,6 +309,7 @@ describe Flipflop do
305
309
  describe "with features" do
306
310
  before do
307
311
  Flipflop::FeatureSet.current.instance_variable_set(:@features, {})
312
+ Flipflop::FeatureSet.current.instance_variable_set(:@facade, Class.new.new)
308
313
  Module.new do
309
314
  extend Flipflop::Configurable
310
315
  feature :world_domination, description: "Try and take over the world!"
@@ -339,6 +344,7 @@ describe Flipflop do
339
344
  describe "with grouped features" do
340
345
  before do
341
346
  Flipflop::FeatureSet.current.instance_variable_set(:@features, {})
347
+ Flipflop::FeatureSet.current.instance_variable_set(:@facade, Class.new.new)
342
348
  Module.new do
343
349
  extend Flipflop::Configurable
344
350
  group "world" do
@@ -375,6 +381,7 @@ describe Flipflop do
375
381
  describe "with cookie strategy" do
376
382
  before do
377
383
  Flipflop::FeatureSet.current.instance_variable_set(:@features, {})
384
+ Flipflop::FeatureSet.current.instance_variable_set(:@facade, Class.new.new)
378
385
  Module.new do
379
386
  extend Flipflop::Configurable
380
387
  feature :world_domination, description: "Try and take over the world!"
@@ -446,6 +453,7 @@ describe Flipflop do
446
453
  describe "with active record strategy" do
447
454
  before do
448
455
  Flipflop::FeatureSet.current.instance_variable_set(:@features, {})
456
+ Flipflop::FeatureSet.current.instance_variable_set(:@facade, Class.new.new)
449
457
  Module.new do
450
458
  extend Flipflop::Configurable
451
459
  feature :world_domination, description: "Try and take over the world!"
@@ -1,6 +1,8 @@
1
1
  require File.expand_path("../../../test_helper", __FILE__)
2
2
 
3
3
  class ResultSet
4
+ attr_reader :results
5
+
4
6
  def initialize(key, results = [])
5
7
  @key, @results = key, results
6
8
  end
@@ -22,6 +24,10 @@ module MyAr
22
24
  def where(conditions)
23
25
  results[conditions[:key].to_sym]
24
26
  end
27
+
28
+ def all
29
+ results.values.flat_map(&:results)
30
+ end
25
31
  end
26
32
 
27
33
  alias_method :enabled?, :enabled
@@ -158,4 +164,100 @@ describe Flipflop::Strategies::ActiveRecordStrategy do
158
164
  assert_equal false, subject.enabled?(:one)
159
165
  end
160
166
  end
167
+
168
+ describe "with eager loading" do
169
+ before do
170
+ Flipflop::FeatureCache.current.enable!
171
+ end
172
+
173
+ after do
174
+ Flipflop::FeatureCache.current.disable!
175
+ end
176
+
177
+ subject do
178
+ Flipflop::Strategies::ActiveRecordStrategy.new(class: MyAr::Feature, eager: true).freeze
179
+ end
180
+
181
+ it "should have default name" do
182
+ assert_equal "active_record", subject.name
183
+ end
184
+
185
+ it "should have title derived from name" do
186
+ assert_equal "Active record", subject.title
187
+ end
188
+
189
+ it "should have default description" do
190
+ assert_equal "Stores features in database. Applies to all users.",
191
+ subject.description
192
+ end
193
+
194
+ it "should be switchable" do
195
+ assert_equal true, subject.switchable?
196
+ end
197
+
198
+ it "should have unique key" do
199
+ assert_match /^\w+$/, subject.key
200
+ end
201
+
202
+ describe "with enabled feature" do
203
+ before do
204
+ MyAr::Feature.results = {
205
+ one: ResultSet.new(:one, [MyAr::Feature.new(:one, true)]),
206
+ }
207
+ end
208
+
209
+ it "should have feature enabled" do
210
+ assert_equal true, subject.enabled?(:one)
211
+ end
212
+
213
+ it "should be able to switch feature off" do
214
+ subject.switch!(:one, false)
215
+ assert_equal false, subject.enabled?(:one)
216
+ end
217
+
218
+ it "should be able to clear feature" do
219
+ subject.clear!(:one)
220
+ assert_nil subject.enabled?(:one)
221
+ end
222
+ end
223
+
224
+ describe "with disabled feature" do
225
+ before do
226
+ MyAr::Feature.results = {
227
+ two: ResultSet.new(:two, [MyAr::Feature.new(:two, false)]),
228
+ }
229
+ end
230
+
231
+ it "should not have feature enabled" do
232
+ assert_equal false, subject.enabled?(:two)
233
+ end
234
+
235
+ it "should be able to switch feature on" do
236
+ subject.switch!(:two, true)
237
+ assert_equal true, subject.enabled?(:two)
238
+ end
239
+
240
+ it "should be able to clear feature" do
241
+ subject.clear!(:two)
242
+ assert_nil subject.enabled?(:two)
243
+ end
244
+ end
245
+
246
+ describe "with unsaved feature" do
247
+ before do
248
+ MyAr::Feature.results = {
249
+ three: ResultSet.new(:three),
250
+ }
251
+ end
252
+
253
+ it "should not know feature" do
254
+ assert_nil subject.enabled?(:three)
255
+ end
256
+
257
+ it "should be able to switch feature on" do
258
+ subject.switch!(:three, true)
259
+ assert_equal true, subject.enabled?(:three)
260
+ end
261
+ end
262
+ end
161
263
  end
@@ -1,6 +1,8 @@
1
1
  require File.expand_path("../../../test_helper", __FILE__)
2
2
 
3
3
  class ResultSet
4
+ attr_reader :results
5
+
4
6
  def initialize(key, results = [])
5
7
  @key, @results = key, results
6
8
  end
@@ -18,6 +20,10 @@ module MySq
18
20
  def where(conditions)
19
21
  results[conditions[:key].to_sym]
20
22
  end
23
+
24
+ def all
25
+ results.values.flat_map(&:results)
26
+ end
21
27
  end
22
28
 
23
29
  alias_method :enabled?, :enabled
@@ -162,4 +168,100 @@ describe Flipflop::Strategies::SequelStrategy do
162
168
  assert_equal false, subject.enabled?(:one)
163
169
  end
164
170
  end
171
+
172
+ describe "with eager loading" do
173
+ before do
174
+ Flipflop::FeatureCache.current.enable!
175
+ end
176
+
177
+ after do
178
+ Flipflop::FeatureCache.current.disable!
179
+ end
180
+
181
+ subject do
182
+ Flipflop::Strategies::SequelStrategy.new(class: MySq::Feature, eager: true).freeze
183
+ end
184
+
185
+ it "should have default name" do
186
+ assert_equal "sequel", subject.name
187
+ end
188
+
189
+ it "should have title derived from name" do
190
+ assert_equal "Sequel", subject.title
191
+ end
192
+
193
+ it "should have default description" do
194
+ assert_equal "Stores features in database. Applies to all users.",
195
+ subject.description
196
+ end
197
+
198
+ it "should be switchable" do
199
+ assert_equal true, subject.switchable?
200
+ end
201
+
202
+ it "should have unique key" do
203
+ assert_match /^\w+$/, subject.key
204
+ end
205
+
206
+ describe "with enabled feature" do
207
+ before do
208
+ MySq::Feature.results = {
209
+ one: ResultSet.new(:one, [MySq::Feature.new(:one, true)]),
210
+ }
211
+ end
212
+
213
+ it "should have feature enabled" do
214
+ assert_equal true, subject.enabled?(:one)
215
+ end
216
+
217
+ it "should be able to switch feature off" do
218
+ subject.switch!(:one, false)
219
+ assert_equal false, subject.enabled?(:one)
220
+ end
221
+
222
+ it "should be able to clear feature" do
223
+ subject.clear!(:one)
224
+ assert_nil subject.enabled?(:one)
225
+ end
226
+ end
227
+
228
+ describe "with disabled feature" do
229
+ before do
230
+ MySq::Feature.results = {
231
+ two: ResultSet.new(:two, [MySq::Feature.new(:two, false)]),
232
+ }
233
+ end
234
+
235
+ it "should not have feature enabled" do
236
+ assert_equal false, subject.enabled?(:two)
237
+ end
238
+
239
+ it "should be able to switch feature on" do
240
+ subject.switch!(:two, true)
241
+ assert_equal true, subject.enabled?(:two)
242
+ end
243
+
244
+ it "should be able to clear feature" do
245
+ subject.clear!(:two)
246
+ assert_nil subject.enabled?(:two)
247
+ end
248
+ end
249
+
250
+ describe "with unsaved feature" do
251
+ before do
252
+ MySq::Feature.results = {
253
+ three: ResultSet.new(:three),
254
+ }
255
+ end
256
+
257
+ it "should not know feature" do
258
+ assert_nil subject.enabled?(:three)
259
+ end
260
+
261
+ it "should be able to switch feature on" do
262
+ subject.switch!(:three, true)
263
+ assert_equal true, subject.enabled?(:three)
264
+ end
265
+ end
266
+ end
165
267
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flipflop
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.1
4
+ version: 2.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Annesley
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2023-03-31 00:00:00.000000000 Z
13
+ date: 2024-11-11 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
@@ -146,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
146
146
  - !ruby/object:Gem::Version
147
147
  version: '0'
148
148
  requirements: []
149
- rubygems_version: 3.1.6
149
+ rubygems_version: 3.5.3
150
150
  signing_key:
151
151
  specification_version: 4
152
152
  summary: A feature flipflopper for Rails web applications.