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 +4 -4
- data/CHANGES.md +4 -0
- data/Gemfile +3 -3
- data/README.md +2 -0
- data/app/views/flipflop/stylesheets/_flipflop.html.erb +1 -1
- data/lib/flipflop/facade.rb +2 -6
- data/lib/flipflop/feature_set.rb +10 -0
- data/lib/flipflop/strategies/active_record_strategy.rb +14 -4
- data/lib/flipflop/strategies/sequel_strategy.rb +15 -5
- data/lib/flipflop/version.rb +1 -1
- data/src/stylesheets/_flipflop.scss +5 -1
- data/test/integration/app_test.rb +1 -0
- data/test/integration/dashboard_test.rb +8 -0
- data/test/unit/strategies/active_record_strategy_test.rb +102 -0
- data/test/unit/strategies/sequel_strategy_test.rb +102 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6f8f879bd4aa597cf0fd129d36e455b7c47f4a4d0f4840d9a51af134361c33f9
|
4
|
+
data.tar.gz: 44c2106f24eb4ecf0a113b63bc0389651b14c84c5b305672d2e466f14df42e77
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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}
|
data/lib/flipflop/facade.rb
CHANGED
@@ -11,15 +11,11 @@ module Flipflop
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def respond_to_missing?(method, include_private = false)
|
14
|
-
method
|
14
|
+
FeatureSet.current.facade.respond_to?(method, include_private) || super
|
15
15
|
end
|
16
16
|
|
17
17
|
def method_missing(method, *args)
|
18
|
-
|
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
|
data/lib/flipflop/feature_set.rb
CHANGED
@@ -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
|
-
|
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 =
|
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
|
-
|
46
|
+
scoped(feature).first.try(:destroy)
|
41
47
|
end
|
42
48
|
|
43
49
|
protected
|
44
50
|
|
45
|
-
def
|
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
|
-
|
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
|
-
|
49
|
+
scoped(feature).first.try(:destroy)
|
44
50
|
end
|
45
51
|
|
46
52
|
protected
|
47
53
|
|
48
54
|
def find_or_new(feature)
|
49
|
-
|
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
|
53
|
-
@class.
|
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
|
data/lib/flipflop/version.rb
CHANGED
@@ -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.
|
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:
|
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.
|
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.
|