Subscribe To Comments Reloaded - Version 220512

Version Description

Download this release

Release Info

Developer wpkube
Plugin Icon 128x128 Subscribe To Comments Reloaded
Version 220512
Comparing to
See all releases

Code changes from version 220502 to 220512

classes/stcr_i18n.php CHANGED
@@ -1,116 +1,116 @@
1
- <?php
2
- /**
3
- * Class with management functions for Subscribe to Comments Reloaded
4
- * @author reedyseth
5
- * @since 27-Mar-2018
6
- * @version 1.0.0
7
- */
8
- namespace stcr;
9
-
10
- // Avoid direct access to this piece of code
11
- if ( ! function_exists( 'add_action' ) ) {
12
- header( 'Location: /' );
13
- exit;
14
- }
15
-
16
- class stcr_i18n {
17
-
18
- private $js_subs_translation = array();
19
- private $wp_locale = null;
20
-
21
- public function __construct() {
22
- add_action( 'plugins_loaded', array( $this, 'register_js_subs_translation' ) );
23
- global $wp_locale;
24
- $this->wp_locale = get_locale();
25
- }
26
-
27
- /**
28
- * Enqueue a script a translated array into a Object Name that will be use in the handle JS file.
29
- *
30
- * @since 28-Mar-2018
31
- * @author reedyseth
32
- * @param string $handle Script handle that will be enqueue
33
- * @param string $object_name Name for the JavaScript object. Passed directly, so it should be qualified JS variable.
34
- * Example: '/[a-zA-Z0-9_]+/'.
35
- * @param string $l10n The data itself. The data can be either a single or multi-dimensional array.
36
- */
37
- public function stcr_localize_script( $handle, $object_name, $l10n ) {
38
- wp_localize_script( $handle, $object_name, $l10n );
39
- }
40
- /**
41
- * Create the translation array for the plugin jQuery Datatables.
42
- *
43
- * @since 28-Mar-2018
44
- * @author reedyseth
45
- */
46
- public function register_js_subs_translation() {
47
- $translation_array = array (
48
- "decimal" => __( " ", 'subscribe-to-comments-reloaded' ),
49
- "emptyTable" => __( "No data available in table", 'subscribe-to-comments-reloaded' ),
50
- "info" => __( "Showing _START_ to _END_ of _TOTAL_ entries", 'subscribe-to-comments-reloaded' ),
51
- "infoEmpty" => __( "Showing 0 to 0 of 0 entries", 'subscribe-to-comments-reloaded' ),
52
- "infoFiltered" => __( "(filtered from _MAX_ total entries)", 'subscribe-to-comments-reloaded' ),
53
- "infoPostFix" => __( " ", 'subscribe-to-comments-reloaded' ),
54
- "thousands" => __( ",", 'subscribe-to-comments-reloaded' ),
55
- "lengthMenu" => __( "Show _MENU_ entries", 'subscribe-to-comments-reloaded' ),
56
- "loadingRecords" => __( "Loading...", 'subscribe-to-comments-reloaded' ),
57
- "processing" => __( "Processing...", 'subscribe-to-comments-reloaded' ),
58
- "search" => __( "Search", 'subscribe-to-comments-reloaded' ),
59
- "zeroRecords" => __( "No matching records found", 'subscribe-to-comments-reloaded' ),
60
- "paginate" => array(
61
- "first" => __( "First", 'subscribe-to-comments-reloaded' ),
62
- "last" => __( "Last", 'subscribe-to-comments-reloaded' ),
63
- "next" => __( "Next", 'subscribe-to-comments-reloaded' ),
64
- "previous" => __( "Previous", 'subscribe-to-comments-reloaded' )
65
- ),
66
- "aria" => array(
67
- "sortAscending" => __( "activate to sort column ascending", 'subscribe-to-comments-reloaded' ),
68
- "sortDescending"=> __( "activate to sort column descending", 'subscribe-to-comments-reloaded' )
69
- ),
70
- "langTextDirection" => $this->get_text_direction()
71
- );
72
-
73
- $this->set_js_subs_translation( $translation_array );
74
- }
75
-
76
- /**
77
- * @return mixed
78
- */
79
- public function get_js_subs_translation() {
80
- return $this->js_subs_translation;
81
- }
82
-
83
- /**
84
- * @param mixed $translation_array
85
- */
86
- public function set_js_subs_translation( $translation_array ) {
87
- $this->js_subs_translation = array_merge( $this->get_js_subs_translation(), $translation_array );
88
- }
89
-
90
- /**
91
- * @return null
92
- */
93
- public function get_wp_locale() {
94
- return $this->wp_locale;
95
- }
96
-
97
- public function get_text_direction() {
98
-
99
- if ( function_exists( 'is_rtl' ) && is_rtl() ) {
100
- $text_direction = "rtl";
101
- } else {
102
- $text_direction = "ltr";
103
- }
104
-
105
- return $text_direction;
106
-
107
- }
108
-
109
- /**
110
- * @param null $wp_locale
111
- */
112
- public function set_wp_locale($wp_locale) {
113
- $this->wp_locale = $wp_locale;
114
- }
115
-
116
- }
1
+ <?php
2
+ /**
3
+ * Class with management functions for Subscribe to Comments Reloaded
4
+ * @author reedyseth
5
+ * @since 27-Mar-2018
6
+ * @version 1.0.0
7
+ */
8
+ namespace stcr;
9
+
10
+ // Avoid direct access to this piece of code
11
+ if ( ! function_exists( 'add_action' ) ) {
12
+ header( 'Location: /' );
13
+ exit;
14
+ }
15
+
16
+ class stcr_i18n {
17
+
18
+ private $js_subs_translation = array();
19
+ private $wp_locale = null;
20
+
21
+ public function __construct() {
22
+ add_action( 'plugins_loaded', array( $this, 'register_js_subs_translation' ) );
23
+ global $wp_locale;
24
+ $this->wp_locale = get_locale();
25
+ }
26
+
27
+ /**
28
+ * Enqueue a script a translated array into a Object Name that will be use in the handle JS file.
29
+ *
30
+ * @since 28-Mar-2018
31
+ * @author reedyseth
32
+ * @param string $handle Script handle that will be enqueue
33
+ * @param string $object_name Name for the JavaScript object. Passed directly, so it should be qualified JS variable.
34
+ * Example: '/[a-zA-Z0-9_]+/'.
35
+ * @param string $l10n The data itself. The data can be either a single or multi-dimensional array.
36
+ */
37
+ public function stcr_localize_script( $handle, $object_name, $l10n ) {
38
+ wp_localize_script( $handle, $object_name, $l10n );
39
+ }
40
+ /**
41
+ * Create the translation array for the plugin jQuery Datatables.
42
+ *
43
+ * @since 28-Mar-2018
44
+ * @author reedyseth
45
+ */
46
+ public function register_js_subs_translation() {
47
+ $translation_array = array (
48
+ "decimal" => esc_html__( " ", 'subscribe-to-comments-reloaded' ),
49
+ "emptyTable" => esc_html__( "No data available in table", 'subscribe-to-comments-reloaded' ),
50
+ "info" => esc_html__( "Showing _START_ to _END_ of _TOTAL_ entries", 'subscribe-to-comments-reloaded' ),
51
+ "infoEmpty" => esc_html__( "Showing 0 to 0 of 0 entries", 'subscribe-to-comments-reloaded' ),
52
+ "infoFiltered" => esc_html__( "(filtered from _MAX_ total entries)", 'subscribe-to-comments-reloaded' ),
53
+ "infoPostFix" => esc_html__( " ", 'subscribe-to-comments-reloaded' ),
54
+ "thousands" => esc_html__( ",", 'subscribe-to-comments-reloaded' ),
55
+ "lengthMenu" => esc_html__( "Show _MENU_ entries", 'subscribe-to-comments-reloaded' ),
56
+ "loadingRecords" => esc_html__( "Loading...", 'subscribe-to-comments-reloaded' ),
57
+ "processing" => esc_html__( "Processing...", 'subscribe-to-comments-reloaded' ),
58
+ "search" => esc_html__( "Search", 'subscribe-to-comments-reloaded' ),
59
+ "zeroRecords" => esc_html__( "No matching records found", 'subscribe-to-comments-reloaded' ),
60
+ "paginate" => array(
61
+ "first" => esc_html__( "First", 'subscribe-to-comments-reloaded' ),
62
+ "last" => esc_html__( "Last", 'subscribe-to-comments-reloaded' ),
63
+ "next" => esc_html__( "Next", 'subscribe-to-comments-reloaded' ),
64
+ "previous" => esc_html__( "Previous", 'subscribe-to-comments-reloaded' )
65
+ ),
66
+ "aria" => array(
67
+ "sortAscending" => esc_html__( "activate to sort column ascending", 'subscribe-to-comments-reloaded' ),
68
+ "sortDescending"=> esc_html__( "activate to sort column descending", 'subscribe-to-comments-reloaded' )
69
+ ),
70
+ "langTextDirection" => $this->get_text_direction()
71
+ );
72
+
73
+ $this->set_js_subs_translation( $translation_array );
74
+ }
75
+
76
+ /**
77
+ * @return mixed
78
+ */
79
+ public function get_js_subs_translation() {
80
+ return $this->js_subs_translation;
81
+ }
82
+
83
+ /**
84
+ * @param mixed $translation_array
85
+ */
86
+ public function set_js_subs_translation( $translation_array ) {
87
+ $this->js_subs_translation = array_merge( $this->get_js_subs_translation(), $translation_array );
88
+ }
89
+
90
+ /**
91
+ * @return null
92
+ */
93
+ public function get_wp_locale() {
94
+ return $this->wp_locale;
95
+ }
96
+
97
+ public function get_text_direction() {
98
+
99
+ if ( function_exists( 'is_rtl' ) && is_rtl() ) {
100
+ $text_direction = "rtl";
101
+ } else {
102
+ $text_direction = "ltr";
103
+ }
104
+
105
+ return $text_direction;
106
+
107
+ }
108
+
109
+ /**
110
+ * @param null $wp_locale
111
+ */
112
+ public function set_wp_locale($wp_locale) {
113
+ $this->wp_locale = $wp_locale;
114
+ }
115
+
116
+ }
includes/css/stcr-admin-style.css CHANGED
@@ -4,6 +4,10 @@
4
  @author reedyseth
5
  @since 21-Sep-2015
6
  */
 
 
 
 
7
  /* ----------------------------------------------------------
8
  Common styles and utilities on pages.
9
  @author Israel Barragan (Reedyseth)
@@ -156,6 +160,10 @@ Styles use on form styles. Helpful to customize Bootstrap behavior.
156
  display: inline !important;
157
  }
158
 
 
 
 
 
159
  .form-control-select {
160
  width: 42% !important;
161
  display: inline !important;
@@ -339,6 +347,14 @@ Styles use on form styles. Helpful to customize Bootstrap behavior.
339
  height: 2px !important;
340
  }
341
 
 
 
 
 
 
 
 
 
342
  /* ----------------------------------------------------------
343
  Styles use on Cards styles. Helpful to customize Bootstrap Cards behavior.
344
  @author Israel Barragan (Reedyseth)
@@ -346,6 +362,7 @@ Styles use on Cards styles. Helpful to customize Bootstrap Cards behavior.
346
  ---------------------------------------------------------- */
347
  .card {
348
  padding: 0 !important;
 
349
  }
350
 
351
  .card-subscribers {
@@ -375,6 +392,10 @@ Styles use on Table styles. Helpful to customize Bootstrap Tables behavior.
375
  @author Israel Barragan (Reedyseth)
376
  @since 01-Apr-2018
377
  ---------------------------------------------------------- */
 
 
 
 
378
  table.subscribers-table {
379
  width: 100% !important;
380
  }
@@ -446,6 +467,10 @@ Styles use on form styles. Helpful to customize Bootstrap Buttons behavior.
446
  @author Israel Barragan (Reedyseth)
447
  @since 01-Apr-2018
448
  ---------------------------------------------------------- */
 
 
 
 
449
  .btn-primary {
450
  color: #fff !important;
451
  background-color: #0085ba !important;
@@ -472,13 +497,13 @@ Styles use on form styles. Helpful to customize Bootstrap Buttons behavior.
472
 
473
  .btn-download {
474
  color: #445435;
475
- background-color: #7bd774;
476
  border-color: #28a745 !important;
477
  }
478
 
479
  .btn-download:hover {
480
  color: #445435;
481
- background-color: #78c771;
482
  border-color: #28a745 !important;
483
  }
484
 
4
  @author reedyseth
5
  @since 21-Sep-2015
6
  */
7
+ .h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
8
+ color: inherit;
9
+ }
10
+
11
  /* ----------------------------------------------------------
12
  Common styles and utilities on pages.
13
  @author Israel Barragan (Reedyseth)
160
  display: inline !important;
161
  }
162
 
163
+ .form-control {
164
+ height: auto !important;
165
+ }
166
+
167
  .form-control-select {
168
  width: 42% !important;
169
  display: inline !important;
347
  height: 2px !important;
348
  }
349
 
350
+ select.form-control:not([size]):not([multiple]) {
351
+ height: calc(2.25rem + 2px) !important;
352
+ }
353
+
354
+ .input-group-sm > .input-group-append > select.btn:not([size]):not([multiple]), .input-group-sm > .input-group-append > select.input-group-text:not([size]):not([multiple]), .input-group-sm > .input-group-prepend > select.btn:not([size]):not([multiple]), .input-group-sm > .input-group-prepend > select.input-group-text:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]), select.form-control-sm:not([size]):not([multiple]) {
355
+ height: calc(1.8125rem + 2px) !important;
356
+ }
357
+
358
  /* ----------------------------------------------------------
359
  Styles use on Cards styles. Helpful to customize Bootstrap Cards behavior.
360
  @author Israel Barragan (Reedyseth)
362
  ---------------------------------------------------------- */
363
  .card {
364
  padding: 0 !important;
365
+ border-bottom: 0;
366
  }
367
 
368
  .card-subscribers {
392
  @author Israel Barragan (Reedyseth)
393
  @since 01-Apr-2018
394
  ---------------------------------------------------------- */
395
+ .table {
396
+ color: #464646 !important;
397
+ }
398
+
399
  table.subscribers-table {
400
  width: 100% !important;
401
  }
467
  @author Israel Barragan (Reedyseth)
468
  @since 01-Apr-2018
469
  ---------------------------------------------------------- */
470
+ .btn {
471
+ white-space: nowrap;
472
+ }
473
+
474
  .btn-primary {
475
  color: #fff !important;
476
  background-color: #0085ba !important;
497
 
498
  .btn-download {
499
  color: #445435;
500
+ background-color: #7bd774 !important;
501
  border-color: #28a745 !important;
502
  }
503
 
504
  .btn-download:hover {
505
  color: #445435;
506
+ background-color: #78c771 !important;
507
  border-color: #28a745 !important;
508
  }
509
 
includes/sass/_buttons.scss CHANGED
@@ -1,41 +1,45 @@
1
- /* ----------------------------------------------------------
2
- Styles use on form styles. Helpful to customize Bootstrap Buttons behavior.
3
- @author Israel Barragan (Reedyseth)
4
- @since 01-Apr-2018
5
- ---------------------------------------------------------- */
6
- .btn-primary {
7
- color: #fff !important;
8
- background-color: #0085ba !important;
9
- border-color: #80bbd2 !important;
10
- }
11
-
12
- .btn-primary:hover {
13
- color: #fff !important;
14
- background-color: #4299b9 !important;
15
- border-color: #5495ad !important;
16
- }
17
-
18
- .btn-third {
19
- color: #444 !important;
20
- background-color: #ffc63c !important;
21
- border-color: #dcb456 !important;
22
- }
23
-
24
- .btn-third:hover {
25
- color: #444 !important;
26
- background-color: #fdd575 !important;
27
- border-color: #dcb456 !important;
28
- }
29
-
30
- .btn-download {
31
- color: #445435;
32
- background-color: #7bd774;
33
- border-color: #28a745 !important;
34
- }
35
-
36
-
37
- .btn-download:hover {
38
- color: #445435;
39
- background-color: #78c771;
40
- border-color: #28a745 !important;
41
- }
 
 
 
 
1
+ /* ----------------------------------------------------------
2
+ Styles use on form styles. Helpful to customize Bootstrap Buttons behavior.
3
+ @author Israel Barragan (Reedyseth)
4
+ @since 01-Apr-2018
5
+ ---------------------------------------------------------- */
6
+ .btn {
7
+ white-space: nowrap;
8
+ }
9
+
10
+ .btn-primary {
11
+ color: #fff !important;
12
+ background-color: #0085ba !important;
13
+ border-color: #80bbd2 !important;
14
+ }
15
+
16
+ .btn-primary:hover {
17
+ color: #fff !important;
18
+ background-color: #4299b9 !important;
19
+ border-color: #5495ad !important;
20
+ }
21
+
22
+ .btn-third {
23
+ color: #444 !important;
24
+ background-color: #ffc63c !important;
25
+ border-color: #dcb456 !important;
26
+ }
27
+
28
+ .btn-third:hover {
29
+ color: #444 !important;
30
+ background-color: #fdd575 !important;
31
+ border-color: #dcb456 !important;
32
+ }
33
+
34
+ .btn-download {
35
+ color: #445435;
36
+ background-color: #7bd774 !important;
37
+ border-color: #28a745 !important;
38
+ }
39
+
40
+
41
+ .btn-download:hover {
42
+ color: #445435;
43
+ background-color: #78c771 !important;
44
+ border-color: #28a745 !important;
45
+ }
includes/sass/_cards.scss CHANGED
@@ -1,30 +1,31 @@
1
- /* ----------------------------------------------------------
2
- Styles use on Cards styles. Helpful to customize Bootstrap Cards behavior.
3
- @author Israel Barragan (Reedyseth)
4
- @since 01-Apr-2018
5
- ---------------------------------------------------------- */
6
- .card {
7
- padding: 0 !important;
8
- }
9
-
10
- .card-subscribers {
11
- -webkit-box-shadow: 0 0 6px 0 #9E9E9E;
12
- box-shadow: 0 0 6px 0 #9E9E9E;
13
- }
14
-
15
- .card-header{
16
- background-color: #008ec2 !important;
17
- color: #ffffff;
18
- }
19
-
20
- .card-font-size {
21
- font-size: 0.85em;
22
- }
23
-
24
- .original-card-padding {
25
- padding: 1.25rem !important;
26
- }
27
-
28
- .card-no-max-width {
29
- max-width: 100% !important;
30
- }
 
1
+ /* ----------------------------------------------------------
2
+ Styles use on Cards styles. Helpful to customize Bootstrap Cards behavior.
3
+ @author Israel Barragan (Reedyseth)
4
+ @since 01-Apr-2018
5
+ ---------------------------------------------------------- */
6
+ .card {
7
+ padding: 0 !important;
8
+ border-bottom: 0;
9
+ }
10
+
11
+ .card-subscribers {
12
+ -webkit-box-shadow: 0 0 6px 0 #9E9E9E;
13
+ box-shadow: 0 0 6px 0 #9E9E9E;
14
+ }
15
+
16
+ .card-header{
17
+ background-color: #008ec2 !important;
18
+ color: #ffffff;
19
+ }
20
+
21
+ .card-font-size {
22
+ font-size: 0.85em;
23
+ }
24
+
25
+ .original-card-padding {
26
+ padding: 1.25rem !important;
27
+ }
28
+
29
+ .card-no-max-width {
30
+ max-width: 100% !important;
31
+ }
includes/sass/_forms.scss CHANGED
@@ -1,239 +1,251 @@
1
- /* ----------------------------------------------------------
2
- Styles use on form styles. Helpful to customize Bootstrap behavior.
3
- @author Israel Barragan (Reedyseth)
4
- @since 01-Apr-2018
5
- ---------------------------------------------------------- */
6
- .form-controls-font {
7
- font-size: 1em !important;
8
-
9
- }
10
-
11
- .col-form-label {
12
- font-size: 0.95rem !important;
13
- font-weight: 600 !important;
14
- }
15
-
16
- .subscribers-mass-actions
17
- {
18
- margin-top: 20px;
19
- font-size: 0.9rem;
20
- }
21
-
22
- .subscribers-mass-actions select,
23
- .subscribers-mass-actions button,
24
- .subscribers-mass-actions input
25
- {
26
- font-size: 0.9rem !important;
27
- }
28
-
29
- .mass-update-subs {
30
- /*height: 100%;*/
31
- margin-top: 0 !important;
32
- }
33
-
34
- .mass-update-select-status {
35
- width: 70% !important;
36
- display: inline !important;
37
- }
38
-
39
- .new-sub-select-status {
40
- width: 76% !important;
41
- display: inline !important;
42
- }
43
-
44
- .form-control-select {
45
- width: 42% !important;
46
- display: inline !important;
47
- font-size: 0.9rem !important;
48
- }
49
-
50
- .form-control-input-3 {
51
- width: 30% !important;
52
- display: inline !important;
53
- font-size: 0.9rem !important;
54
- }
55
-
56
- .form-control-input-4 {
57
- width: 40% !important;
58
- display: inline !important;
59
- font-size: 0.9rem !important;
60
- }
61
-
62
- .form-control-input-5 {
63
- width: 50% !important;
64
- display: inline !important;
65
- font-size: 0.9rem !important;
66
- }
67
-
68
- .form-control-input-6 {
69
- width: 60% !important;
70
- display: inline !important;
71
- font-size: 0.9rem !important;
72
- }
73
-
74
- .form-control-input-7 {
75
- width: 70% !important;
76
- display: inline !important;
77
- font-size: 0.9rem !important;
78
- }
79
-
80
- .form-control-input-8 {
81
- width: 80% !important;
82
- display: inline !important;
83
- font-size: 0.9rem !important;
84
- }
85
-
86
- .form-control-input-9 {
87
- width: 90% !important;
88
- display: inline !important;
89
- font-size: 0.9rem !important;
90
- }
91
-
92
- .add-new-subs {
93
- /*height: 100%;*/
94
- margin-top: 0 !important;
95
- }
96
-
97
- .mass-update-subs h6,
98
- .add-new-subs h6 {
99
- cursor: pointer;
100
- }
101
-
102
- .subscribe-form-button {
103
- font-size: 0.8rem !important;
104
- }
105
-
106
- // https://php.quicoto.com/toggle-switches-using-input-radio-and-css3/
107
- .switch {
108
- position: relative;
109
- display: inline-flex;
110
- margin-top: 7px;
111
- height: 26px;
112
- width: 120px;
113
- background: rgba(45, 43, 42, 0.1);
114
- border-radius: 3px;
115
- -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.13), 0 1px rgba(255, 255, 255, 0.1);
116
- box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.13), 0 1px rgba(255, 255, 255, 0.1);
117
- }
118
-
119
- .switch-label {
120
- position: relative;
121
- z-index: 2;
122
- float: left;
123
- width: 58px;
124
- line-height: 26px;
125
- font-size: 11px;
126
- color: rgba(148, 148, 148, 1);
127
- text-align: center;
128
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.45);
129
- cursor: pointer;
130
- }
131
-
132
- .switch-label:active {
133
- font-weight: bold;
134
- }
135
-
136
- .switch-label-off {
137
- padding-left: 2px;
138
- }
139
-
140
- .switch-label-on {
141
- padding-right: 2px;
142
- }
143
-
144
- .switch-input {
145
- display: none !important;
146
- }
147
-
148
- .switch-input:checked + .switch-label {
149
- font-weight: bold;
150
- color: rgba(0, 0, 0, 0.65);
151
- text-shadow: 0 1px rgba(255, 255, 255, 0.25);
152
- -webkit-transition: 0.15s ease-out;
153
- -moz-transition: 0.15s ease-out;
154
- -o-transition: 0.15s ease-out;
155
- transition: 0.15s ease-out;
156
- }
157
-
158
- $switch-initial-bg: #46d443;
159
- $switch-final-bg: #9dd993;
160
- $switch-initial-bg-dis: #82928f;
161
- $switch-final-bg-dis: #f3e4f6;
162
-
163
- .switch-input:checked + .switch-label-on ~ .switch-selection{
164
- /* Note: left: 50% doesn't transition in WebKit */
165
- left: 60px;
166
- background-image: -webkit-linear-gradient(top, $switch-final-bg-dis, $switch-initial-bg-dis);
167
- background-image: -moz-linear-gradient(top, $switch-final-bg-dis, $switch-initial-bg-dis);
168
- background-image: -o-linear-gradient(top, $switch-final-bg-dis, $switch-initial-bg-dis);
169
- background-image: linear-gradient(to bottom, $switch-final-bg-dis, $switch-initial-bg-dis);
170
- }
171
-
172
- .switch-selection {
173
- display: block;
174
- position: absolute;
175
- z-index: 1;
176
- top: 2px;
177
- left: 2px;
178
- width: 58px;
179
- height: 22px;
180
- background: #65bd63;
181
- border-radius: 3px;
182
- background-image: -webkit-linear-gradient(top, $switch-final-bg, $switch-initial-bg);
183
- background-image: -moz-linear-gradient(top, $switch-final-bg, $switch-initial-bg);
184
- background-image: -o-linear-gradient(top, $switch-final-bg, $switch-initial-bg);
185
- background-image: linear-gradient(to bottom, $switch-final-bg, $switch-initial-bg);
186
- -webkit-box-shadow: inset 0 1px rgba(255, 255, 255, 0.5), 0 0 2px rgba(0, 0, 0, 0.2);
187
- box-shadow: inset 0 1px rgba(255, 255, 255, 0.5), 0 0 2px rgba(0, 0, 0, 0.2);
188
- -webkit-transition: left 0.15s ease-out;
189
- -moz-transition: left 0.15s ease-out;
190
- -o-transition: left 0.15s ease-out;
191
- transition: left 0.15s ease-out;
192
- }
193
-
194
- .switch-blue .switch-selection {
195
- background: #3aa2d0;
196
- background-image: -webkit-linear-gradient(top, #4fc9ee, #3aa2d0);
197
- background-image: -moz-linear-gradient(top, #4fc9ee, #3aa2d0);
198
- background-image: -o-linear-gradient(top, #4fc9ee, #3aa2d0);
199
- background-image: linear-gradient(to bottom, #4fc9ee, #3aa2d0);
200
- }
201
-
202
- .switch-yellow .switch-selection {
203
- background: #c4bb61;
204
- background-image: -webkit-linear-gradient(top, #e0dd94, #c4bb61);
205
- background-image: -moz-linear-gradient(top, #e0dd94, #c4bb61);
206
- background-image: -o-linear-gradient(top, #e0dd94, #c4bb61);
207
- background-image: linear-gradient(to bottom, #e0dd94, #c4bb61);
208
- }
209
-
210
- .helpDescription {
211
- margin-left: 10px;
212
- display: inline-flex;
213
- color: #008ec2;
214
- font-size: 0.9rem;
215
- cursor: pointer;
216
- }
217
-
218
- .webui-popover-helpDescriptionContent {
219
- font-size: 0.85rem;
220
- }
221
-
222
-
223
- .arrow {
224
- left: -8px !important;
225
- }
226
-
227
- .arrow:after{
228
- left: 4px !important;
229
- top: 0px !important;
230
- width: 17px !important;
231
- height: 2px !important;
232
- }
233
- //.popover .arrow {
234
- // position: absolute;
235
- // display: block;
236
- // width: 1rem !important;
237
- // height: .5rem !important;
238
- // margin: 0 .3rem !important;
239
- //}
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ----------------------------------------------------------
2
+ Styles use on form styles. Helpful to customize Bootstrap behavior.
3
+ @author Israel Barragan (Reedyseth)
4
+ @since 01-Apr-2018
5
+ ---------------------------------------------------------- */
6
+ .form-controls-font {
7
+ font-size: 1em !important;
8
+
9
+ }
10
+
11
+ .col-form-label {
12
+ font-size: 0.95rem !important;
13
+ font-weight: 600 !important;
14
+ }
15
+
16
+ .subscribers-mass-actions
17
+ {
18
+ margin-top: 20px;
19
+ font-size: 0.9rem;
20
+ }
21
+
22
+ .subscribers-mass-actions select,
23
+ .subscribers-mass-actions button,
24
+ .subscribers-mass-actions input
25
+ {
26
+ font-size: 0.9rem !important;
27
+ }
28
+
29
+ .mass-update-subs {
30
+ /*height: 100%;*/
31
+ margin-top: 0 !important;
32
+ }
33
+
34
+ .mass-update-select-status {
35
+ width: 70% !important;
36
+ display: inline !important;
37
+ }
38
+
39
+ .new-sub-select-status {
40
+ width: 76% !important;
41
+ display: inline !important;
42
+ }
43
+
44
+ .form-control {
45
+ height: auto !important;
46
+ }
47
+
48
+ .form-control-select {
49
+ width: 42% !important;
50
+ display: inline !important;
51
+ font-size: 0.9rem !important;
52
+ }
53
+
54
+ .form-control-input-3 {
55
+ width: 30% !important;
56
+ display: inline !important;
57
+ font-size: 0.9rem !important;
58
+ }
59
+
60
+ .form-control-input-4 {
61
+ width: 40% !important;
62
+ display: inline !important;
63
+ font-size: 0.9rem !important;
64
+ }
65
+
66
+ .form-control-input-5 {
67
+ width: 50% !important;
68
+ display: inline !important;
69
+ font-size: 0.9rem !important;
70
+ }
71
+
72
+ .form-control-input-6 {
73
+ width: 60% !important;
74
+ display: inline !important;
75
+ font-size: 0.9rem !important;
76
+ }
77
+
78
+ .form-control-input-7 {
79
+ width: 70% !important;
80
+ display: inline !important;
81
+ font-size: 0.9rem !important;
82
+ }
83
+
84
+ .form-control-input-8 {
85
+ width: 80% !important;
86
+ display: inline !important;
87
+ font-size: 0.9rem !important;
88
+ }
89
+
90
+ .form-control-input-9 {
91
+ width: 90% !important;
92
+ display: inline !important;
93
+ font-size: 0.9rem !important;
94
+ }
95
+
96
+ .add-new-subs {
97
+ /*height: 100%;*/
98
+ margin-top: 0 !important;
99
+ }
100
+
101
+ .mass-update-subs h6,
102
+ .add-new-subs h6 {
103
+ cursor: pointer;
104
+ }
105
+
106
+ .subscribe-form-button {
107
+ font-size: 0.8rem !important;
108
+ }
109
+
110
+ // https://php.quicoto.com/toggle-switches-using-input-radio-and-css3/
111
+ .switch {
112
+ position: relative;
113
+ display: inline-flex;
114
+ margin-top: 7px;
115
+ height: 26px;
116
+ width: 120px;
117
+ background: rgba(45, 43, 42, 0.1);
118
+ border-radius: 3px;
119
+ -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.13), 0 1px rgba(255, 255, 255, 0.1);
120
+ box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.13), 0 1px rgba(255, 255, 255, 0.1);
121
+ }
122
+
123
+ .switch-label {
124
+ position: relative;
125
+ z-index: 2;
126
+ float: left;
127
+ width: 58px;
128
+ line-height: 26px;
129
+ font-size: 11px;
130
+ color: rgba(148, 148, 148, 1);
131
+ text-align: center;
132
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.45);
133
+ cursor: pointer;
134
+ }
135
+
136
+ .switch-label:active {
137
+ font-weight: bold;
138
+ }
139
+
140
+ .switch-label-off {
141
+ padding-left: 2px;
142
+ }
143
+
144
+ .switch-label-on {
145
+ padding-right: 2px;
146
+ }
147
+
148
+ .switch-input {
149
+ display: none !important;
150
+ }
151
+
152
+ .switch-input:checked + .switch-label {
153
+ font-weight: bold;
154
+ color: rgba(0, 0, 0, 0.65);
155
+ text-shadow: 0 1px rgba(255, 255, 255, 0.25);
156
+ -webkit-transition: 0.15s ease-out;
157
+ -moz-transition: 0.15s ease-out;
158
+ -o-transition: 0.15s ease-out;
159
+ transition: 0.15s ease-out;
160
+ }
161
+
162
+ $switch-initial-bg: #46d443;
163
+ $switch-final-bg: #9dd993;
164
+ $switch-initial-bg-dis: #82928f;
165
+ $switch-final-bg-dis: #f3e4f6;
166
+
167
+ .switch-input:checked + .switch-label-on ~ .switch-selection{
168
+ /* Note: left: 50% doesn't transition in WebKit */
169
+ left: 60px;
170
+ background-image: -webkit-linear-gradient(top, $switch-final-bg-dis, $switch-initial-bg-dis);
171
+ background-image: -moz-linear-gradient(top, $switch-final-bg-dis, $switch-initial-bg-dis);
172
+ background-image: -o-linear-gradient(top, $switch-final-bg-dis, $switch-initial-bg-dis);
173
+ background-image: linear-gradient(to bottom, $switch-final-bg-dis, $switch-initial-bg-dis);
174
+ }
175
+
176
+ .switch-selection {
177
+ display: block;
178
+ position: absolute;
179
+ z-index: 1;
180
+ top: 2px;
181
+ left: 2px;
182
+ width: 58px;
183
+ height: 22px;
184
+ background: #65bd63;
185
+ border-radius: 3px;
186
+ background-image: -webkit-linear-gradient(top, $switch-final-bg, $switch-initial-bg);
187
+ background-image: -moz-linear-gradient(top, $switch-final-bg, $switch-initial-bg);
188
+ background-image: -o-linear-gradient(top, $switch-final-bg, $switch-initial-bg);
189
+ background-image: linear-gradient(to bottom, $switch-final-bg, $switch-initial-bg);
190
+ -webkit-box-shadow: inset 0 1px rgba(255, 255, 255, 0.5), 0 0 2px rgba(0, 0, 0, 0.2);
191
+ box-shadow: inset 0 1px rgba(255, 255, 255, 0.5), 0 0 2px rgba(0, 0, 0, 0.2);
192
+ -webkit-transition: left 0.15s ease-out;
193
+ -moz-transition: left 0.15s ease-out;
194
+ -o-transition: left 0.15s ease-out;
195
+ transition: left 0.15s ease-out;
196
+ }
197
+
198
+ .switch-blue .switch-selection {
199
+ background: #3aa2d0;
200
+ background-image: -webkit-linear-gradient(top, #4fc9ee, #3aa2d0);
201
+ background-image: -moz-linear-gradient(top, #4fc9ee, #3aa2d0);
202
+ background-image: -o-linear-gradient(top, #4fc9ee, #3aa2d0);
203
+ background-image: linear-gradient(to bottom, #4fc9ee, #3aa2d0);
204
+ }
205
+
206
+ .switch-yellow .switch-selection {
207
+ background: #c4bb61;
208
+ background-image: -webkit-linear-gradient(top, #e0dd94, #c4bb61);
209
+ background-image: -moz-linear-gradient(top, #e0dd94, #c4bb61);
210
+ background-image: -o-linear-gradient(top, #e0dd94, #c4bb61);
211
+ background-image: linear-gradient(to bottom, #e0dd94, #c4bb61);
212
+ }
213
+
214
+ .helpDescription {
215
+ margin-left: 10px;
216
+ display: inline-flex;
217
+ color: #008ec2;
218
+ font-size: 0.9rem;
219
+ cursor: pointer;
220
+ }
221
+
222
+ .webui-popover-helpDescriptionContent {
223
+ font-size: 0.85rem;
224
+ }
225
+
226
+
227
+ .arrow {
228
+ left: -8px !important;
229
+ }
230
+
231
+ .arrow:after{
232
+ left: 4px !important;
233
+ top: 0px !important;
234
+ width: 17px !important;
235
+ height: 2px !important;
236
+ }
237
+ //.popover .arrow {
238
+ // position: absolute;
239
+ // display: block;
240
+ // width: 1rem !important;
241
+ // height: .5rem !important;
242
+ // margin: 0 .3rem !important;
243
+ //}
244
+
245
+ select.form-control:not([size]):not([multiple]) {
246
+ height: calc(2.25rem + 2px) !important;
247
+ }
248
+
249
+ .input-group-sm > .input-group-append > select.btn:not([size]):not([multiple]), .input-group-sm > .input-group-append > select.input-group-text:not([size]):not([multiple]), .input-group-sm > .input-group-prepend > select.btn:not([size]):not([multiple]), .input-group-sm > .input-group-prepend > select.input-group-text:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]), select.form-control-sm:not([size]):not([multiple]) {
250
+ height: calc(1.8125rem + 2px) !important;
251
+ }
includes/sass/_init.scss CHANGED
@@ -0,0 +1,3 @@
 
 
 
1
+ .h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
2
+ color: inherit;
3
+ }
includes/sass/_tables.scss CHANGED
@@ -1,72 +1,76 @@
1
- /* ----------------------------------------------------------
2
- Styles use on Table styles. Helpful to customize Bootstrap Tables behavior.
3
- @author Israel Barragan (Reedyseth)
4
- @since 01-Apr-2018
5
- ---------------------------------------------------------- */
6
- table.subscribers-table {
7
- width: 100% !important;
8
- }
9
-
10
- table.subscribers-table thead{
11
- background-color: #b3e0f1;
12
- }
13
-
14
- table.subscribers-table thead th{
15
- line-height: normal;
16
- vertical-align: middle;
17
- padding: 0.55rem;
18
- }
19
-
20
- table.subscribers-table thead th:first-child {
21
- width: 15%;
22
- text-align: center;
23
- }
24
-
25
- table.subscribers-table tbody tr td:first-child {
26
- text-align: center;
27
- }
28
-
29
- table.subscribers-table thead th i{
30
- margin-right: 5px;
31
- font-size: 1.0rem;
32
- }
33
- table.subscribers-table thead th span{
34
- vertical-align: text-bottom;
35
- font-size: 0.9rem;
36
- text-transform: uppercase;
37
- }
38
-
39
- @media screen and ( max-width: 651px ) {
40
- table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>td:first-child,
41
- table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>th:first-child {
42
- padding-left: 40px !important;
43
- }
44
- }
45
-
46
- @media screen and ( max-width: 350px ) {
47
- table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>td:first-child,
48
- table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>th:first-child {
49
- padding-left: 57px !important;
50
- }
51
- }
52
-
53
- /* Override rules from DataTables causing styling issues.*/
54
- .dataTables_wrapper .dataTables_paginate .paginate_button
55
- {
56
- padding: 0 !important;
57
- margin-left: 0 !important;
58
- border: none !important;
59
- border-radius: 0px !important;
60
- }
61
-
62
- .dataTables_wrapper .dataTables_paginate .paginate_button:hover,
63
- .dataTables_wrapper .dataTables_paginate .paginate_button:hover {
64
- background: none !important;
65
- -webkit-box-shadow: none !important;
66
- -moz-box-shadow: none !important;
67
- box-shadow: none !important;
68
- }
69
-
70
- .system-info-table a {
71
- color: #0073aa;
72
- }
 
 
 
 
1
+ /* ----------------------------------------------------------
2
+ Styles use on Table styles. Helpful to customize Bootstrap Tables behavior.
3
+ @author Israel Barragan (Reedyseth)
4
+ @since 01-Apr-2018
5
+ ---------------------------------------------------------- */
6
+ .table {
7
+ color: #464646 !important;
8
+ }
9
+
10
+ table.subscribers-table {
11
+ width: 100% !important;
12
+ }
13
+
14
+ table.subscribers-table thead{
15
+ background-color: #b3e0f1;
16
+ }
17
+
18
+ table.subscribers-table thead th{
19
+ line-height: normal;
20
+ vertical-align: middle;
21
+ padding: 0.55rem;
22
+ }
23
+
24
+ table.subscribers-table thead th:first-child {
25
+ width: 15%;
26
+ text-align: center;
27
+ }
28
+
29
+ table.subscribers-table tbody tr td:first-child {
30
+ text-align: center;
31
+ }
32
+
33
+ table.subscribers-table thead th i{
34
+ margin-right: 5px;
35
+ font-size: 1.0rem;
36
+ }
37
+ table.subscribers-table thead th span{
38
+ vertical-align: text-bottom;
39
+ font-size: 0.9rem;
40
+ text-transform: uppercase;
41
+ }
42
+
43
+ @media screen and ( max-width: 651px ) {
44
+ table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>td:first-child,
45
+ table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>th:first-child {
46
+ padding-left: 40px !important;
47
+ }
48
+ }
49
+
50
+ @media screen and ( max-width: 350px ) {
51
+ table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>td:first-child,
52
+ table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>th:first-child {
53
+ padding-left: 57px !important;
54
+ }
55
+ }
56
+
57
+ /* Override rules from DataTables causing styling issues.*/
58
+ .dataTables_wrapper .dataTables_paginate .paginate_button
59
+ {
60
+ padding: 0 !important;
61
+ margin-left: 0 !important;
62
+ border: none !important;
63
+ border-radius: 0px !important;
64
+ }
65
+
66
+ .dataTables_wrapper .dataTables_paginate .paginate_button:hover,
67
+ .dataTables_wrapper .dataTables_paginate .paginate_button:hover {
68
+ background: none !important;
69
+ -webkit-box-shadow: none !important;
70
+ -moz-box-shadow: none !important;
71
+ box-shadow: none !important;
72
+ }
73
+
74
+ .system-info-table a {
75
+ color: #0073aa;
76
+ }
options/options_template.php CHANGED
@@ -47,21 +47,19 @@ if ( isset( $_POST['options'] ) ) {
47
  if ( empty( $_POST['stcr_action_nonce'] ) ) {
48
  return;
49
  }
50
-
51
  if ( ! wp_verify_nonce( $_POST['stcr_action_nonce'], 'stcr_action_nonce' ) ) {
52
  return;
53
  }
54
-
55
  if ( ! current_user_can( 'manage_options' ) ) {
56
  return;
57
  }
58
 
59
- $faulty_fields = array();
60
-
61
- foreach ( $_POST['options'] as $option => $value )
62
  {
63
- // echo $option . '<br>';
64
-
65
  if ( ! $wp_subscribe_reloaded->stcr->utils->stcr_update_menu_options( $option, $value, $options[$option] ) )
66
  {
67
  array_push( $faulty_fields, $option );
@@ -71,12 +69,12 @@ if ( isset( $_POST['options'] ) ) {
71
  // Display an alert in the admin interface if something went wrong
72
  echo '<div class="updated"><p>';
73
  if ( sizeof( $faulty_fields ) == 0 ) {
74
- _e( 'Your settings have been successfully updated.', 'subscribe-to-comments-reloaded' );
75
  } else {
76
- _e( 'There was an error updating the options.', 'subscribe-to-comments-reloaded' );
77
  // echo ' <strong>' . substr( $faulty_fields, 0, - 2 ) . '</strong>';
78
  }
79
- echo "</p></div>";
80
  }
81
  wp_print_scripts( 'quicktags' );
82
 
@@ -94,7 +92,7 @@ wp_print_scripts( 'quicktags' );
94
  <div class="form-group row">
95
  <div class="col-sm-9 offset-sm-1">
96
  <button type="submit" class="btn btn-primary subscribe-form-button" name="Submit">
97
- <?php _e( 'Save Changes', 'subscribe-to-comments-reloaded' ) ?>
98
  </button>
99
  </div>
100
  </div>
47
  if ( empty( $_POST['stcr_action_nonce'] ) ) {
48
  return;
49
  }
50
+
51
  if ( ! wp_verify_nonce( $_POST['stcr_action_nonce'], 'stcr_action_nonce' ) ) {
52
  return;
53
  }
54
+
55
  if ( ! current_user_can( 'manage_options' ) ) {
56
  return;
57
  }
58
 
59
+ $faulty_fields = array();
60
+ $subscribe_options = wp_unslash( $_POST['options'] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput
61
+ foreach ( $subscribe_options as $option => $value )
62
  {
 
 
63
  if ( ! $wp_subscribe_reloaded->stcr->utils->stcr_update_menu_options( $option, $value, $options[$option] ) )
64
  {
65
  array_push( $faulty_fields, $option );
69
  // Display an alert in the admin interface if something went wrong
70
  echo '<div class="updated"><p>';
71
  if ( sizeof( $faulty_fields ) == 0 ) {
72
+ esc_html_e( 'Your settings have been successfully updated.', 'subscribe-to-comments-reloaded' );
73
  } else {
74
+ esc_html_e( 'There was an error updating the options.', 'subscribe-to-comments-reloaded' );
75
  // echo ' <strong>' . substr( $faulty_fields, 0, - 2 ) . '</strong>';
76
  }
77
+ echo '</p></div>';
78
  }
79
  wp_print_scripts( 'quicktags' );
80
 
92
  <div class="form-group row">
93
  <div class="col-sm-9 offset-sm-1">
94
  <button type="submit" class="btn btn-primary subscribe-form-button" name="Submit">
95
+ <?php esc_html_e( 'Save Changes', 'subscribe-to-comments-reloaded' ) ?>
96
  </button>
97
  </div>
98
  </div>
options/panel1-add-subscription.php CHANGED
@@ -1,35 +1,40 @@
1
- <?php
2
- if ( ! function_exists( 'is_admin' ) || ! is_admin() ) {
3
- header( 'Location: /' );
4
- exit;
5
- }
6
- ?>
7
- <div class="postbox">
8
- <h3><?php _e( 'Add New Subscription', 'subscribe-to-comments-reloaded' ) ?></h3>
9
-
10
- <form action="" method="post" id="update_address_form"
11
- onsubmit="if (this.srp.value == '' || this.sre.value == '') return false;">
12
- <fieldset style="border:0">
13
- <p><?php _e( 'Post:', 'subscribe-to-comments-reloaded' );
14
- echo ' <strong>' . get_the_title( intval( $_GET['srp'] ) ) . " (" . intval( $_GET['srp'] ) . ")"; ?></strong></p>
15
-
16
- <p class="liquid"><label for='sre'><?php _e( 'Email', 'subscribe-to-comments-reloaded' ) ?></label>
17
- <input readonly='readonly' type='text' size='30' name='sre' id='sre' value='<?php echo esc_attr($_GET['sre']) ?>' />
18
- </p>
19
-
20
- <p class="liquid"><label for='srs'><?php _e( 'Status', 'subscribe-to-comments-reloaded' ) ?></label>
21
- <select name="srs" id="srs">
22
- <option value='Y'><?php _e( 'Active', 'subscribe-to-comments-reloaded' ) ?></option>
23
- <option value='R'><?php _e( 'Replies only', 'subscribe-to-comments-reloaded' ) ?></option>
24
- <option value='YC'><?php _e( 'Ask user to confirm', 'subscribe-to-comments-reloaded' ) ?></option>
25
- </select>
26
- <input type='submit' class='subscribe-form-button' value='<?php esc_attr_e( 'Update', 'subscribe-to-comments-reloaded' ) ?>' />
27
- </p>
28
- <input type='hidden' name='sra' value='add' />
29
- <input type='hidden' name='srp' value='<?php echo intval( $_GET['srp'] ) ?>' />
30
- </fieldset>
31
-
32
- <?php wp_nonce_field( 'stcr_add_subscription_nonce', 'stcr_add_subscription_nonce' ); ?>
33
-
34
- </form>
35
- </div>
 
 
 
 
 
1
+ <?php
2
+ if ( ! function_exists( 'is_admin' ) || ! is_admin() ) {
3
+ header( 'Location: /' );
4
+ exit;
5
+ }
6
+ ?>
7
+ <div class="postbox">
8
+ <h3><?php esc_html_e( 'Add New Subscription', 'subscribe-to-comments-reloaded' ) ?></h3>
9
+
10
+ <form action="" method="post" id="update_address_form"
11
+ onsubmit="if (this.srp.value == '' || this.sre.value == '') return false;">
12
+ <fieldset style="border:0">
13
+ <p>
14
+ <?php
15
+ esc_html_e( 'Post:', 'subscribe-to-comments-reloaded' );
16
+ echo ' <strong>' . esc_html( get_the_title( intval( $_GET['srp'] ) ) ) . ' (' . intval( $_GET['srp'] ) . ')</strong>';
17
+ ?>
18
+ </p>
19
+
20
+ <p class="liquid"><label for='sre'><?php esc_html_e( 'Email', 'subscribe-to-comments-reloaded' ) ?></label>
21
+ <?php $sre = isset( $_GET['sre'] ) ? sanitize_text_field( wp_unslash( $_GET['sre'] ) ) : ''; ?>
22
+ <input readonly='readonly' type='text' size='30' name='sre' id='sre' value='<?php echo esc_attr( $sre ); ?>' />
23
+ </p>
24
+
25
+ <p class="liquid"><label for='srs'><?php esc_html_e( 'Status', 'subscribe-to-comments-reloaded' ) ?></label>
26
+ <select name="srs" id="srs">
27
+ <option value='Y'><?php esc_html_e( 'Active', 'subscribe-to-comments-reloaded' ) ?></option>
28
+ <option value='R'><?php esc_html_e( 'Replies only', 'subscribe-to-comments-reloaded' ) ?></option>
29
+ <option value='YC'><?php esc_html_e( 'Ask user to confirm', 'subscribe-to-comments-reloaded' ) ?></option>
30
+ </select>
31
+ <input type='submit' class='subscribe-form-button' value='<?php esc_attr_e( 'Update', 'subscribe-to-comments-reloaded' ) ?>' />
32
+ </p>
33
+ <input type='hidden' name='sra' value='add' />
34
+ <input type='hidden' name='srp' value='<?php echo intval( $_GET['srp'] ) ?>' />
35
+ </fieldset>
36
+
37
+ <?php wp_nonce_field( 'stcr_add_subscription_nonce', 'stcr_add_subscription_nonce' ); ?>
38
+
39
+ </form>
40
+ </div>
options/panel1-business-logic.php CHANGED
@@ -1,208 +1,201 @@
1
- <?php
2
- // Avoid direct access to this piece of code
3
- if ( ! function_exists( 'is_admin' ) || ! is_admin() ) {
4
- header( 'Location: /' );
5
- exit;
6
- }
7
-
8
- $stcr_post_email = ! empty( $_POST['sre'] ) ? $_POST['sre'] : ( ! empty( $_GET['sre'] ) ? $_GET['sre'] : '' );
9
- $stcr_old_post_email = ! empty( $_POST['oldsre'] ) ? $_POST['oldsre'] : ( ! empty( $_GET['oldsre'] ) ? $_GET['oldsre'] : '' );
10
- $status = ! empty( $_POST['srs'] ) ? $_POST['srs'] : ( ! empty( $_GET['srs'] ) ? $_GET['srs'] : '' );
11
- $post_id = ! empty( $_POST['srp'] ) ? $_POST['srp'] : ( ! empty( $_GET['srp'] ) ? $_GET['srp'] : 0 );
12
- $valid_email = true;
13
- $valid_post_id = true;
14
- // Clean data
15
- $post_id = sanitize_text_field( trim( $post_id ) );
16
- $status = sanitize_text_field( trim( $status ) );
17
-
18
- switch ( $action ) {
19
- case 'add':
20
-
21
- if ( empty( $_POST['stcr_add_subscription_nonce'] ) ) {
22
- exit();
23
- }
24
-
25
- if ( ! wp_verify_nonce( $_POST['stcr_add_subscription_nonce'], 'stcr_add_subscription_nonce' ) ) {
26
- exit();
27
- }
28
-
29
- if ( ! current_user_can( 'manage_options' ) ) {
30
- exit();
31
- }
32
-
33
- $stcr_post_email = $wp_subscribe_reloaded->stcr->utils->check_valid_email( $stcr_post_email );
34
- $valid_post_id = $wp_subscribe_reloaded->stcr->utils->check_valid_number( $post_id );
35
-
36
- if ( $stcr_post_email === false )
37
- {
38
- $valid_email = false;
39
- break;
40
- }
41
-
42
- if ( $valid_post_id === false )
43
- {
44
- break;
45
- }
46
-
47
- $wp_subscribe_reloaded->stcr->add_subscription( $post_id, $stcr_post_email, $status );
48
-
49
- if ( strpos( $status, 'C' ) !== false ) {
50
- $wp_subscribe_reloaded->stcr->confirmation_email( $post_id, $email );
51
- }
52
-
53
- echo '<div class="updated"><p>' . __( 'Subscription added.', 'subscribe-to-comments-reloaded' ) . '</p></div>';
54
- break;
55
-
56
- case 'edit':
57
-
58
- if ( empty( $_POST['stcr_edit_subscription_nonce'] ) ) {
59
- exit();
60
- }
61
-
62
- if ( ! wp_verify_nonce( $_POST['stcr_edit_subscription_nonce'], 'stcr_edit_subscription_nonce' ) ) {
63
- exit();
64
- }
65
-
66
- if ( ! current_user_can( 'manage_options' ) ) {
67
- exit();
68
- }
69
-
70
- $stcr_post_email = $wp_subscribe_reloaded->stcr->utils->check_valid_email( $stcr_post_email );
71
- $stcr_old_post_email = $wp_subscribe_reloaded->stcr->utils->check_valid_email( $stcr_old_post_email );
72
- $valid_post_id = $wp_subscribe_reloaded->stcr->utils->check_valid_number( $post_id );
73
-
74
- if ( $stcr_post_email === false || $stcr_old_post_email === false )
75
- {
76
- $valid_email = false;
77
- break;
78
- }
79
-
80
- if ( $valid_post_id === false )
81
- {
82
- break;
83
- }
84
-
85
- $old_email = $stcr_old_post_email;
86
- $new_email = $stcr_post_email;
87
-
88
- $wp_subscribe_reloaded->stcr->update_subscription_status( $post_id, $old_email, $status );
89
- $wp_subscribe_reloaded->stcr->update_subscription_email( $post_id, $old_email, $new_email );
90
-
91
- echo '<div class="updated"><p>' . __( 'Subscriptions updated.', 'subscribe-to-comments-reloaded' ) . '</p></div>';
92
- break;
93
-
94
- case 'delete-subscription':
95
-
96
- if ( empty( $_GET['stcr_delete_subscription_nonce'] ) ) {
97
- exit();
98
- }
99
-
100
- if ( ! wp_verify_nonce( $_GET['stcr_delete_subscription_nonce'], 'stcr_delete_subscription_nonce' ) ) {
101
- exit();
102
- }
103
-
104
- if ( ! current_user_can( 'manage_options' ) ) {
105
- exit();
106
- }
107
-
108
- $stcr_post_email = $wp_subscribe_reloaded->stcr->utils->check_valid_email( $stcr_post_email );
109
- $valid_post_id = $wp_subscribe_reloaded->stcr->utils->check_valid_number( $post_id );
110
-
111
- if ( $stcr_post_email === false )
112
- {
113
- $valid_email = false;
114
- break;
115
- }
116
-
117
- $wp_subscribe_reloaded->stcr->delete_subscriptions( $post_id, $stcr_post_email );
118
-
119
- echo '<div class="updated"><p>' . __( 'Subscription deleted.', 'subscribe-to-comments-reloaded' ) . '</p></div>';
120
- break;
121
-
122
- default:
123
- if ( ! empty( $_POST['subscriptions_list'] ) ) {
124
-
125
- if ( empty( $_POST['stcr_update_subscriptions_nonce'] ) ) {
126
- exit();
127
- }
128
-
129
- if ( ! wp_verify_nonce( $_POST['stcr_update_subscriptions_nonce'], 'stcr_update_subscriptions_nonce' ) ) {
130
- exit();
131
- }
132
-
133
- if ( ! current_user_can( 'manage_options' ) ) {
134
- exit();
135
- }
136
-
137
- $post_list = $email_list = array();
138
- foreach ( $_POST['subscriptions_list'] as $a_subscription ) {
139
- list( $a_post, $a_email ) = explode( ',', $a_subscription );
140
- if ( ! in_array( $a_post, $post_list ) ) {
141
- $post_list[] = $a_post;
142
- }
143
- if ( ! in_array( $a_email, $email_list ) ) {
144
- $email_list[] = urldecode( $a_email );
145
- }
146
- }
147
-
148
- switch ( $action ) {
149
- case 'delete':
150
- $rows_affected = $wp_subscribe_reloaded->stcr->delete_subscriptions( $post_list, $email_list );
151
- echo '<div class="updated"><p>' . __( 'Subscriptions deleted:', 'subscribe-to-comments-reloaded' ) . " $rows_affected</p></div>";
152
- break;
153
- case 'suspend':
154
- $rows_affected = $wp_subscribe_reloaded->stcr->update_subscription_status( $post_list, $email_list, 'C' );
155
- echo '<div class="updated"><p>' . __( 'Subscriptions suspended:', 'subscribe-to-comments-reloaded' ) . " $rows_affected</p></div>";
156
- break;
157
- case 'activate':
158
- $rows_affected = $wp_subscribe_reloaded->stcr->update_subscription_status( $post_list, $email_list, '-C' );
159
- echo '<div class="updated"><p>' . __( 'Subscriptions activated:', 'subscribe-to-comments-reloaded' ) . " $rows_affected</p></div>";
160
- break;
161
- case 'force_y':
162
- $rows_affected = $wp_subscribe_reloaded->stcr->update_subscription_status( $post_list, $email_list, 'Y' );
163
- echo '<div class="updated"><p>' . __( 'Subscriptions updated:', 'subscribe-to-comments-reloaded' ) . " $rows_affected</p></div>";
164
- break;
165
- case 'force_r':
166
- $rows_affected = $wp_subscribe_reloaded->stcr->update_subscription_status( $post_list, $email_list, 'R' );
167
- echo '<div class="updated"><p>' . __( 'Subscriptions updated:', 'subscribe-to-comments-reloaded' ) . " $rows_affected</p></div>";
168
- break;
169
- default:
170
- break;
171
- }
172
- }
173
- }
174
-
175
- $initial_limit_results = 1000;
176
- $official_limit_results = '18446744073709551610';
177
-
178
- $search_field = ! empty( $_POST['srf'] ) ? $_POST['srf'] : ( ! empty( $_GET['srf'] ) ? $_GET['srf'] : 'email' );
179
- $operator = ! empty( $_POST['srt'] ) ? $_POST['srt'] : ( ! empty( $_GET['srt'] ) ? $_GET['srt'] : 'contains' );
180
- $search_value = ! empty( $_POST['srv'] ) ? $_POST['srv'] : ( ! empty( $_GET['srv'] ) ? $_GET['srv'] : '@' );
181
- $order_by = ! empty( $_POST['srob'] ) ? $_POST['srob'] : ( ! empty( $_GET['srob'] ) ? $_GET['srob'] : 'dt' );
182
- $order = ! empty( $_POST['sro'] ) ? $_POST['sro'] : ( ! empty( $_GET['sro'] ) ? $_GET['sro'] : 'DESC' );
183
- $offset = ! empty( $_POST['srsf'] ) ? intval( $_POST['srsf'] ) : ( ! empty( $_GET['srsf'] ) ? intval( $_GET['srsf'] ) : 0 );
184
- $limit_results = ! empty( $_POST['srrp'] ) ? intval( $_POST['srrp'] ) : ( ! empty( $_GET['srrp'] ) ? intval( $_GET['srrp'] ) : $initial_limit_results );
185
- // Clean data
186
- $search_field = sanitize_text_field($search_field);
187
- $operator = sanitize_text_field($operator);
188
- $order_by = sanitize_text_field($order_by);
189
- $order = sanitize_text_field($order);
190
- $offset = sanitize_text_field($offset);
191
- $search_value = sanitize_text_field(trim($search_value));
192
- $limit_results = sanitize_text_field(trim($limit_results));
193
-
194
- $subscriptions = $wp_subscribe_reloaded->stcr->get_subscriptions( $search_field, $operator, $search_value, $order_by, $order, $offset, $limit_results );
195
- $count_total = count( $wp_subscribe_reloaded->stcr->get_subscriptions( $search_field, $operator, $search_value ) );
196
-
197
- $count_results = count( $subscriptions ); // 0 if $results is null
198
- $ending_to = min( $count_total, $offset + $limit_results );
199
- $previous_link = $next_link = $next_page_link = $previous_page_link = '';
200
-
201
- if ( $offset > 0 ) {
202
- $new_starting = ( $offset > $limit_results ) ? $offset - $limit_results : 0;
203
- $previous_link = "<a href='admin.php?page=stcr_manage_subscriptions&amp;srf=$search_field&amp;srt=" . urlencode( $operator ) . "&amp;srv=$search_value&amp;srob=$order_by&amp;sro=$order&amp;srsf=$new_starting&amp;srrp=$limit_results'>" . __( '&laquo; Previous', 'subscribe-to-comments-reloaded' ) . "</a> ";
204
- }
205
- if ( ( $ending_to < $count_total ) && ( $count_results > 0 ) ) {
206
- $new_starting = $offset + $limit_results;
207
- $next_link = "<a href='admin.php?page=stcr_manage_subscriptions&amp;srf=$search_field&amp;srt=" . urlencode( $operator ) . "&amp;srv=$search_value&amp;srob=$order_by&amp;sro=$order&amp;srsf=$new_starting&amp;srrp=$limit_results'>" . __( 'Next &raquo;', 'subscribe-to-comments-reloaded' ) . "</a> ";
208
- }
1
+ <?php
2
+ // Avoid direct access to this piece of code
3
+ if ( ! function_exists( 'is_admin' ) || ! is_admin() ) {
4
+ header( 'Location: /' );
5
+ exit;
6
+ }
7
+
8
+ $stcr_post_email = ! empty( $_POST['sre'] ) ? sanitize_text_field( wp_unslash( $_POST['sre'] ) ) : ( ! empty( $_GET['sre'] ) ? sanitize_text_field( wp_unslash( $_GET['sre'] ) ) : '' );
9
+ $stcr_old_post_email = ! empty( $_POST['oldsre'] ) ? sanitize_text_field( wp_unslash( $_POST['oldsre'] ) ) : ( ! empty( $_GET['oldsre'] ) ? sanitize_text_field( wp_unslash( $_GET['oldsre'] ) ) : '' );
10
+ $status = ! empty( $_POST['srs'] ) ? sanitize_text_field( wp_unslash( $_POST['srs'] ) ) : ( ! empty( $_GET['srs'] ) ? sanitize_text_field( wp_unslash( $_GET['srs'] ) ) : '' );
11
+ $post_id = ! empty( $_POST['srp'] ) ? sanitize_text_field( wp_unslash( $_POST['srp'] ) ) : ( ! empty( $_GET['srp'] ) ? sanitize_text_field( wp_unslash( $_GET['srp'] ) ) : 0 );
12
+ $valid_email = true;
13
+ $valid_post_id = true;
14
+ // Clean data
15
+ $post_id = sanitize_text_field( trim( $post_id ) );
16
+ $status = sanitize_text_field( trim( $status ) );
17
+
18
+ switch ( $action ) {
19
+ case 'add':
20
+
21
+ if ( empty( $_POST['stcr_add_subscription_nonce'] ) ) {
22
+ exit();
23
+ }
24
+
25
+ if ( ! wp_verify_nonce( $_POST['stcr_add_subscription_nonce'], 'stcr_add_subscription_nonce' ) ) {
26
+ exit();
27
+ }
28
+
29
+ if ( ! current_user_can( 'manage_options' ) ) {
30
+ exit();
31
+ }
32
+
33
+ $stcr_post_email = $wp_subscribe_reloaded->stcr->utils->check_valid_email( $stcr_post_email );
34
+ $valid_post_id = $wp_subscribe_reloaded->stcr->utils->check_valid_number( $post_id );
35
+
36
+ if ( $stcr_post_email === false )
37
+ {
38
+ $valid_email = false;
39
+ break;
40
+ }
41
+
42
+ if ( $valid_post_id === false )
43
+ {
44
+ break;
45
+ }
46
+
47
+ $wp_subscribe_reloaded->stcr->add_subscription( $post_id, $stcr_post_email, $status );
48
+
49
+ if ( strpos( $status, 'C' ) !== false ) {
50
+ $wp_subscribe_reloaded->stcr->confirmation_email( $post_id, $email );
51
+ }
52
+
53
+ echo '<div class="updated"><p>' . esc_html__( 'Subscription added.', 'subscribe-to-comments-reloaded' ) . '</p></div>';
54
+ break;
55
+
56
+ case 'edit':
57
+
58
+ if ( empty( $_POST['stcr_edit_subscription_nonce'] ) ) {
59
+ exit();
60
+ }
61
+
62
+ if ( ! wp_verify_nonce( $_POST['stcr_edit_subscription_nonce'], 'stcr_edit_subscription_nonce' ) ) {
63
+ exit();
64
+ }
65
+
66
+ if ( ! current_user_can( 'manage_options' ) ) {
67
+ exit();
68
+ }
69
+
70
+ $stcr_post_email = $wp_subscribe_reloaded->stcr->utils->check_valid_email( $stcr_post_email );
71
+ $stcr_old_post_email = $wp_subscribe_reloaded->stcr->utils->check_valid_email( $stcr_old_post_email );
72
+ $valid_post_id = $wp_subscribe_reloaded->stcr->utils->check_valid_number( $post_id );
73
+
74
+ if ( $stcr_post_email === false || $stcr_old_post_email === false )
75
+ {
76
+ $valid_email = false;
77
+ break;
78
+ }
79
+
80
+ if ( $valid_post_id === false )
81
+ {
82
+ break;
83
+ }
84
+
85
+ $old_email = $stcr_old_post_email;
86
+ $new_email = $stcr_post_email;
87
+
88
+ $wp_subscribe_reloaded->stcr->update_subscription_status( $post_id, $old_email, $status );
89
+ $wp_subscribe_reloaded->stcr->update_subscription_email( $post_id, $old_email, $new_email );
90
+
91
+ echo '<div class="updated"><p>' . esc_html__( 'Subscriptions updated.', 'subscribe-to-comments-reloaded' ) . '</p></div>';
92
+ break;
93
+
94
+ case 'delete-subscription':
95
+
96
+ if ( empty( $_GET['stcr_delete_subscription_nonce'] ) ) {
97
+ exit();
98
+ }
99
+
100
+ if ( ! wp_verify_nonce( $_GET['stcr_delete_subscription_nonce'], 'stcr_delete_subscription_nonce' ) ) {
101
+ exit();
102
+ }
103
+
104
+ if ( ! current_user_can( 'manage_options' ) ) {
105
+ exit();
106
+ }
107
+
108
+ $stcr_post_email = $wp_subscribe_reloaded->stcr->utils->check_valid_email( $stcr_post_email );
109
+ $valid_post_id = $wp_subscribe_reloaded->stcr->utils->check_valid_number( $post_id );
110
+
111
+ if ( $stcr_post_email === false )
112
+ {
113
+ $valid_email = false;
114
+ break;
115
+ }
116
+
117
+ $wp_subscribe_reloaded->stcr->delete_subscriptions( $post_id, $stcr_post_email );
118
+
119
+ echo '<div class="updated"><p>' . esc_html__( 'Subscription deleted.', 'subscribe-to-comments-reloaded' ) . '</p></div>';
120
+ break;
121
+
122
+ default:
123
+ if ( ! empty( $_POST['subscriptions_list'] ) ) {
124
+
125
+ if ( empty( $_POST['stcr_update_subscriptions_nonce'] ) ) {
126
+ exit();
127
+ }
128
+
129
+ if ( ! wp_verify_nonce( $_POST['stcr_update_subscriptions_nonce'], 'stcr_update_subscriptions_nonce' ) ) {
130
+ exit();
131
+ }
132
+
133
+ if ( ! current_user_can( 'manage_options' ) ) {
134
+ exit();
135
+ }
136
+
137
+ $post_list = $email_list = array();
138
+ $subscription_lists = wp_unslash( $_POST['subscriptions_list'] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput
139
+ foreach ( $subscription_lists as $a_subscription ) {
140
+ list( $a_post, $a_email ) = explode( ',', $a_subscription );
141
+ if ( ! in_array( $a_post, $post_list ) ) {
142
+ $post_list[] = $a_post;
143
+ }
144
+ if ( ! in_array( $a_email, $email_list ) ) {
145
+ $email_list[] = urldecode( $a_email );
146
+ }
147
+ }
148
+
149
+ switch ( $action ) {
150
+ case 'delete':
151
+ $rows_affected = $wp_subscribe_reloaded->stcr->delete_subscriptions( $post_list, $email_list );
152
+ echo '<div class="updated"><p>' . esc_html__( 'Subscriptions deleted:', 'subscribe-to-comments-reloaded' ) . esc_html( $rows_affected ) . '</p></div>';
153
+ break;
154
+ case 'suspend':
155
+ $rows_affected = $wp_subscribe_reloaded->stcr->update_subscription_status( $post_list, $email_list, 'C' );
156
+ echo '<div class="updated"><p>' . esc_html__( 'Subscriptions suspended:', 'subscribe-to-comments-reloaded' ) . esc_html( $rows_affected ) . '</p></div>';
157
+ break;
158
+ case 'activate':
159
+ $rows_affected = $wp_subscribe_reloaded->stcr->update_subscription_status( $post_list, $email_list, '-C' );
160
+ echo '<div class="updated"><p>' . esc_html__( 'Subscriptions activated:', 'subscribe-to-comments-reloaded' ) . esc_html( $rows_affected ) . '</p></div>';
161
+ break;
162
+ case 'force_y':
163
+ $rows_affected = $wp_subscribe_reloaded->stcr->update_subscription_status( $post_list, $email_list, 'Y' );
164
+ echo '<div class="updated"><p>' . esc_html__( 'Subscriptions updated:', 'subscribe-to-comments-reloaded' ) . esc_html( $rows_affected ) . '</p></div>';
165
+ break;
166
+ case 'force_r':
167
+ $rows_affected = $wp_subscribe_reloaded->stcr->update_subscription_status( $post_list, $email_list, 'R' );
168
+ echo '<div class="updated"><p>' . esc_html__( 'Subscriptions updated:', 'subscribe-to-comments-reloaded' ) . esc_html( $rows_affected ) . '</p></div>';
169
+ break;
170
+ default:
171
+ break;
172
+ }
173
+ }
174
+ }
175
+
176
+ $initial_limit_results = 1000;
177
+ $official_limit_results = '18446744073709551610';
178
+
179
+ $search_field = ! empty( $_POST['srf'] ) ? sanitize_text_field( wp_unslash( $_POST['srf'] ) ) : ( ! empty( $_GET['srf'] ) ? sanitize_text_field( wp_unslash( $_GET['srf'] ) ) : 'email' );
180
+ $operator = ! empty( $_POST['srt'] ) ? sanitize_text_field( wp_unslash( $_POST['srt'] ) ) : ( ! empty( $_GET['srt'] ) ? sanitize_text_field( wp_unslash( $_GET['srt'] ) ) : 'contains' );
181
+ $search_value = ! empty( $_POST['srv'] ) ? sanitize_text_field( wp_unslash( $_POST['srv'] ) ) : ( ! empty( $_GET['srv'] ) ? sanitize_text_field( wp_unslash( $_GET['srv'] ) ) : '@' );
182
+ $order_by = ! empty( $_POST['srob'] ) ? sanitize_text_field( wp_unslash( $_POST['srob'] ) ) : ( ! empty( $_GET['srob'] ) ? sanitize_text_field( wp_unslash( $_GET['srob'] ) ) : 'dt' );
183
+ $order = ! empty( $_POST['sro'] ) ? sanitize_text_field( wp_unslash( $_POST['sro'] ) ) : ( ! empty( $_GET['sro'] ) ? sanitize_text_field( wp_unslash( $_GET['sro'] ) ) : 'DESC' );
184
+ $offset = ! empty( $_POST['srsf'] ) ? intval( $_POST['srsf'] ) : ( ! empty( $_GET['srsf'] ) ? intval( $_GET['srsf'] ) : 0 );
185
+ $limit_results = ! empty( $_POST['srrp'] ) ? intval( $_POST['srrp'] ) : ( ! empty( $_GET['srrp'] ) ? intval( $_GET['srrp'] ) : $initial_limit_results );
186
+
187
+ $subscriptions = $wp_subscribe_reloaded->stcr->get_subscriptions( $search_field, $operator, $search_value, $order_by, $order, $offset, $limit_results );
188
+ $count_total = count( $wp_subscribe_reloaded->stcr->get_subscriptions( $search_field, $operator, $search_value ) );
189
+
190
+ $count_results = count( $subscriptions ); // 0 if $results is null
191
+ $ending_to = min( $count_total, $offset + $limit_results );
192
+ $previous_link = $next_link = $next_page_link = $previous_page_link = '';
193
+
194
+ if ( $offset > 0 ) {
195
+ $new_starting = ( $offset > $limit_results ) ? $offset - $limit_results : 0;
196
+ $previous_link = "<a href='admin.php?page=stcr_manage_subscriptions&amp;srf=$search_field&amp;srt=" . urlencode( $operator ) . "&amp;srv=$search_value&amp;srob=$order_by&amp;sro=$order&amp;srsf=$new_starting&amp;srrp=$limit_results'>" . esc_html__( '&laquo; Previous', 'subscribe-to-comments-reloaded' ) . "</a> ";
197
+ }
198
+ if ( ( $ending_to < $count_total ) && ( $count_results > 0 ) ) {
199
+ $new_starting = $offset + $limit_results;
200
+ $next_link = "<a href='admin.php?page=stcr_manage_subscriptions&amp;srf=$search_field&amp;srt=" . urlencode( $operator ) . "&amp;srv=$search_value&amp;srob=$order_by&amp;sro=$order&amp;srsf=$new_starting&amp;srrp=$limit_results'>" . esc_html__( 'Next &raquo;', 'subscribe-to-comments-reloaded' ) . "</a> ";
201
+ }
 
 
 
 
 
 
 
options/panel1-edit-subscription.php CHANGED
@@ -1,40 +1,45 @@
1
- <?php
2
- if ( ! function_exists( 'is_admin' ) || ! is_admin() ) {
3
- header( 'Location: /' );
4
- exit;
5
- }
6
- ?>
7
- <div class="postbox">
8
- <h3><?php _e( 'Update Subscription', 'subscribe-to-comments-reloaded' ) ?></h3>
9
-
10
- <form action="" method="post" id="update_address_form"
11
- onsubmit="if (this.sre.value != '<?php _e( 'optional', 'subscribe-to-comments-reloaded' ) ?>') return confirm('<?php _e( 'Please remember: this operation cannot be undone. Are you sure you want to proceed?', 'subscribe-to-comments-reloaded' ) ?>')">
12
- <fieldset style="border:0">
13
- <p><?php _e( 'Post:', 'subscribe-to-comments-reloaded' );
14
- echo ' <strong>' . get_the_title( intval( $_GET['srp'] ) ) . " (" . intval( $_GET['srp'] ) . ")"; ?></strong></p>
15
-
16
- <p class="liquid"><label for='oldsre'><?php _e( 'From', 'subscribe-to-comments-reloaded' ) ?></label>
17
- <input readonly='readonly' type='text' size='30' name='oldsre' id='oldsre' value='<?php echo esc_attr($_GET['sre']) ?>' />
18
- </p>
19
-
20
- <p class="liquid"><label for='sre'><?php _e( 'To', 'subscribe-to-comments-reloaded' ) ?></label>
21
- <input type='text' size='30' name='sre' id='sre' value='<?php esc_attr_e( 'optional', 'subscribe-to-comments-reloaded' ) ?>' style="color:#ccc"
22
- onfocus='if (this.value == "<?php _e( 'optional', 'subscribe-to-comments-reloaded' ) ?>") this.value="";this.style.color="#000"'
23
- onblur='if (this.value == ""){this.value="<?php _e( 'optional', 'subscribe-to-comments-reloaded' ) ?>";this.style.color="#ccc"}' />
24
- </p>
25
-
26
- <p class="liquid"><label for='srs'><?php _e( 'Status', 'subscribe-to-comments-reloaded' ) ?></label>
27
- <select name="srs" id="srs">
28
- <option value=''><?php _e( 'Keep unchanged', 'subscribe-to-comments-reloaded' ) ?></option>
29
- <option value='Y'><?php _e( 'Active', 'subscribe-to-comments-reloaded' ) ?></option>
30
- <option value='R'><?php _e( 'Replies only', 'subscribe-to-comments-reloaded' ) ?></option>
31
- <option value='C'><?php _e( 'Suspended', 'subscribe-to-comments-reloaded' ) ?></option>
32
- </select>
33
- <input type='submit' class='subscribe-form-button' value='<?php esc_attr_e( 'Update', 'subscribe-to-comments-reloaded' ) ?>' />
34
- </p>
35
- <input type='hidden' name='sra' value='edit' />
36
- <input type='hidden' name='srp' value='<?php echo intval( $_GET['srp'] ) ?>' />
37
- <?php wp_nonce_field( 'stcr_edit_subscription_nonce', 'stcr_edit_subscription_nonce' ); ?>
38
- </fieldset>
39
- </form>
40
- </div>
 
 
 
 
 
1
+ <?php
2
+ if ( ! function_exists( 'is_admin' ) || ! is_admin() ) {
3
+ header( 'Location: /' );
4
+ exit;
5
+ }
6
+ ?>
7
+ <div class="postbox">
8
+ <h3><?php esc_html_e( 'Update Subscription', 'subscribe-to-comments-reloaded' ) ?></h3>
9
+
10
+ <form action="" method="post" id="update_address_form"
11
+ onsubmit="if (this.sre.value != '<?php esc_attr_e( 'optional', 'subscribe-to-comments-reloaded' ) ?>') return confirm('<?php esc_attr_e( 'Please remember: this operation cannot be undone. Are you sure you want to proceed?', 'subscribe-to-comments-reloaded' ) ?>')">
12
+ <fieldset style="border:0">
13
+ <p>
14
+ <?php
15
+ esc_html_e( 'Post:', 'subscribe-to-comments-reloaded' );
16
+ echo ' <strong>' . esc_html( get_the_title( intval( $_GET['srp'] ) ) ) . ' (' . intval( $_GET['srp'] ) . ')</strong>';
17
+ ?>
18
+ </p>
19
+
20
+ <p class="liquid"><label for='oldsre'><?php esc_html_e( 'From', 'subscribe-to-comments-reloaded' ) ?></label>
21
+ <?php $sre = isset( $_GET['sre'] ) ? sanitize_text_field( wp_unslash( $_GET['sre'] ) ) : ''; ?>
22
+ <input readonly='readonly' type='text' size='30' name='oldsre' id='oldsre' value='<?php echo esc_attr( $sre ); ?>' />
23
+ </p>
24
+
25
+ <p class="liquid"><label for='sre'><?php esc_html_e( 'To', 'subscribe-to-comments-reloaded' ) ?></label>
26
+ <input type='text' size='30' name='sre' id='sre' value='<?php esc_attr_e( 'optional', 'subscribe-to-comments-reloaded' ) ?>' style="color:#ccc"
27
+ onfocus='if (this.value == "<?php esc_attr_e( 'optional', 'subscribe-to-comments-reloaded' ) ?>") this.value="";this.style.color="#000"'
28
+ onblur='if (this.value == ""){this.value="<?php esc_attr_e( 'optional', 'subscribe-to-comments-reloaded' ) ?>";this.style.color="#ccc"}' />
29
+ </p>
30
+
31
+ <p class="liquid"><label for='srs'><?php esc_html_e( 'Status', 'subscribe-to-comments-reloaded' ) ?></label>
32
+ <select name="srs" id="srs">
33
+ <option value=''><?php esc_html_e( 'Keep unchanged', 'subscribe-to-comments-reloaded' ) ?></option>
34
+ <option value='Y'><?php esc_html_e( 'Active', 'subscribe-to-comments-reloaded' ) ?></option>
35
+ <option value='R'><?php esc_html_e( 'Replies only', 'subscribe-to-comments-reloaded' ) ?></option>
36
+ <option value='C'><?php esc_html_e( 'Suspended', 'subscribe-to-comments-reloaded' ) ?></option>
37
+ </select>
38
+ <input type='submit' class='subscribe-form-button' value='<?php esc_attr_e( 'Update', 'subscribe-to-comments-reloaded' ) ?>' />
39
+ </p>
40
+ <input type='hidden' name='sra' value='edit' />
41
+ <input type='hidden' name='srp' value='<?php echo intval( $_GET['srp'] ) ?>' />
42
+ <?php wp_nonce_field( 'stcr_edit_subscription_nonce', 'stcr_edit_subscription_nonce' ); ?>
43
+ </fieldset>
44
+ </form>
45
+ </div>
options/stcr_comment_form.php CHANGED
@@ -27,18 +27,18 @@ if ( isset( $_POST['options'] ) ) {
27
  if ( empty( $_POST['stcr_save_comment_form_nonce'] ) ) {
28
  return;
29
  }
30
-
31
  if ( ! wp_verify_nonce( $_POST['stcr_save_comment_form_nonce'], 'stcr_save_comment_form_nonce' ) ) {
32
  return;
33
  }
34
-
35
  if ( ! current_user_can( 'manage_options' ) ) {
36
  return;
37
  }
38
 
39
- $faulty_fields = array();
40
-
41
- foreach ( $_POST['options'] as $option => $value )
42
  {
43
 
44
  if ( ! $wp_subscribe_reloaded->stcr->utils->stcr_update_menu_options( $option, $value, $options[$option] ) )
@@ -50,12 +50,12 @@ if ( isset( $_POST['options'] ) ) {
50
  // Display an alert in the admin interface if something went wrong
51
  echo '<div class="updated"><p>';
52
  if ( sizeof( $faulty_fields ) == 0 ) {
53
- _e( 'Your settings have been successfully updated.', 'subscribe-to-comments-reloaded' );
54
  } else {
55
- _e( 'There was an error updating the following fields:', 'subscribe-to-comments-reloaded' );
56
  // echo ' <strong>' . substr( $faulty_fields, 0, - 2 ) . '</strong>';
57
  }
58
- echo "</p></div>";
59
  }
60
  ?>
61
  <link href="<?php echo esc_url( plugins_url( '/vendor/webui-popover/dist/jquery.webui-popover.min.css', STCR_PLUGIN_FILE ) ); ?>" rel="stylesheet"/>
@@ -66,50 +66,50 @@ if ( isset( $_POST['options'] ) ) {
66
  <div class="col-sm-9">
67
  <form action="" method="post">
68
  <div class="form-group row">
69
- <label for="show_subscription_box" class="col-sm-3 col-form-label text-right"><?php _e( 'Enable default checkbox', 'subscribe-to-comments-reloaded' ) ?></label>
70
  <div class="col-sm-7">
71
  <div class="switch">
72
  <input type="radio" class="switch-input" name="options[show_subscription_box]"
73
  value="yes" id="show_subscription_box-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'show_subscription_box' ) == 'yes' ) ? ' checked' : ''; ?> />
74
  <label for="show_subscription_box-yes" class="switch-label switch-label-off">
75
- <?php _e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
76
  </label>
77
  <input type="radio" class="switch-input" name="options[show_subscription_box]" value="no" id="show_subscription_box-no"
78
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'show_subscription_box' ) == 'no' ) ? ' checked' : ''; ?> />
79
  <label for="show_subscription_box-no" class="switch-label switch-label-on">
80
- <?php _e( 'No', 'subscribe-to-comments-reloaded' ) ?>
81
  </label>
82
  <span class="switch-selection"></span>
83
  </div>
84
  <div class="helpDescription subsOptDescriptions"
85
- data-content="<?php _e( 'Disable this option if you want to move the subscription checkbox to a different place on your page.', 'subscribe-to-comments-reloaded' ); ?>"
86
  data-placement="right"
87
- aria-label="<?php _e( 'Disable this option if you want to move the subscription checkbox to a different place on your page.', 'subscribe-to-comments-reloaded' ); ?>">
88
  <i class="fas fa-question-circle"></i>
89
  </div>
90
  </div>
91
  </div>
92
 
93
  <div class="form-group row">
94
- <label for="checked_by_default" class="col-sm-3 col-form-label text-right"><?php _e( 'Checked by default', 'subscribe-to-comments-reloaded' ) ?></label>
95
  <div class="col-sm-7">
96
  <div class="switch">
97
  <input type="radio" class="switch-input" name="options[checked_by_default]"
98
  value="yes" id="checked_by_default-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'checked_by_default' ) == 'yes' ) ? ' checked' : ''; ?> />
99
  <label for="checked_by_default-yes" class="switch-label switch-label-off">
100
- <?php _e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
101
  </label>
102
  <input type="radio" class="switch-input" name="options[checked_by_default]" value="no" id="checked_by_default-no"
103
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'checked_by_default' ) == 'no' ) ? ' checked' : ''; ?> />
104
  <label for="checked_by_default-no" class="switch-label switch-label-on">
105
- <?php _e( 'No', 'subscribe-to-comments-reloaded' ) ?>
106
  </label>
107
  <span class="switch-selection"></span>
108
  </div>
109
  <div class="helpDescription subsOptDescriptions"
110
- data-content="<?php _e( 'Decide if the checkbox should be checked by default or not.', 'subscribe-to-comments-reloaded' ); ?>"
111
  data-placement="right"
112
- aria-label="<?php _e( 'Decide if the checkbox should be checked by default or not.', 'subscribe-to-comments-reloaded' ); ?>">
113
  <i class="fas fa-question-circle"></i>
114
  </div>
115
  </div>
@@ -119,16 +119,16 @@ if ( isset( $_POST['options'] ) ) {
119
  if ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_advanced_subscriptions' ) == 'no' ) :
120
  ?>
121
  <div class="form-group row">
122
- <label for="checked_by_default_value" class="col-sm-3 col-form-label text-right"><?php _e( 'Subscription type', 'subscribe-to-comments-reloaded' ) ?></label>
123
  <div class="col-sm-7">
124
  <select name="options[checked_by_default_value]" id="checked_by_default_value" class="form-control form-control-select">
125
- <option value="0" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'checked_by_default_value' ) === '0' ) ? "selected='selected'" : ''; ?>><?php _e( 'All new comments', 'subscribe-to-comments-reloaded' ); ?></option>
126
- <option value="1" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'checked_by_default_value' ) === '1' ) ? "selected='selected'" : ''; ?>><?php _e( 'Replies to this comment', 'subscribe-to-comments-reloaded' ); ?></option>
127
  </select>
128
  <div class="helpDescription subsOptDescriptions"
129
- data-content="<?php _e( 'Select the type of subscription.', 'subscribe-to-comments-reloaded' ); ?>"
130
  data-placement="right"
131
- aria-label="<?php _e( 'Select the type of subscription.', 'subscribe-to-comments-reloaded' ); ?>">
132
  <i class="fas fa-question-circle"></i>
133
  </div>
134
  </div>
@@ -140,26 +140,26 @@ if ( isset( $_POST['options'] ) ) {
140
 
141
  <div class="form-group row">
142
  <label for="enable_advanced_subscriptions" class="col-sm-3 col-form-label text-right">
143
- <?php _e( 'Advanced subscription', 'subscribe-to-comments-reloaded' ) ?></label>
144
  <div class="col-sm-7">
145
  <div class="switch">
146
  <input type="radio" class="switch-input" name="options[enable_advanced_subscriptions]"
147
  value="yes" id="enable_advanced_subscriptions-yes"
148
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_advanced_subscriptions' ) == 'yes' ) ? ' checked' : ''; ?> />
149
  <label for="enable_advanced_subscriptions-yes" class="switch-label switch-label-off">
150
- <?php _e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
151
  </label>
152
  <input type="radio" class="switch-input" name="options[enable_advanced_subscriptions]" value="no" id="enable_advanced_subscriptions-no"
153
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_advanced_subscriptions' ) == 'no' ) ? ' checked' : ''; ?> />
154
  <label for="enable_advanced_subscriptions-no" class="switch-label switch-label-on">
155
- <?php _e( 'No', 'subscribe-to-comments-reloaded' ) ?>
156
  </label>
157
  <span class="switch-selection"></span>
158
  </div>
159
  <div class="helpDescription subsOptDescriptions"
160
- data-content="<?php _e( 'Allow users to choose from different subscription types (all, replies only).', 'subscribe-to-comments-reloaded' ); ?>"
161
  data-placement="right"
162
- aria-label="<?php _e( 'Allow users to choose from different subscription types (all, replies only).', 'subscribe-to-comments-reloaded' ); ?>">
163
  <i class="fas fa-question-circle"></i>
164
  </div>
165
  </div>
@@ -170,17 +170,17 @@ if ( isset( $_POST['options'] ) ) {
170
  if ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_advanced_subscriptions' ) == 'yes' ): ?>
171
  <div class="form-group row">
172
  <label for="default_subscription_type" class="col-sm-3 col-form-label text-right">
173
- <?php _e( 'Advanced default', 'subscribe-to-comments-reloaded' ) ?></label>
174
  <div class="col-sm-7">
175
  <select name="options[default_subscription_type]" id="default_subscription_type" class="form-control form-control-select">
176
- <option value="0" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'default_subscription_type' ) === '0' ) ? "selected='selected'" : ''; ?>><?php _e( 'None', 'subscribe-to-comments-reloaded' ); ?></option>
177
- <option value="1" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'default_subscription_type' ) === '1' ) ? "selected='selected'" : ''; ?>><?php _e( 'All new comments', 'subscribe-to-comments-reloaded' ); ?></option>
178
- <option value="2" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'default_subscription_type' ) === '2' ) ? "selected='selected'" : ''; ?>><?php _e( 'Replies to this comment', 'subscribe-to-comments-reloaded' ); ?></option>
179
  </select>
180
  <div class="helpDescription subsOptDescriptions"
181
- data-content="<?php _e( 'The default subscription type that should be selected when Advanced subscriptions are enable.', 'subscribe-to-comments-reloaded' ); ?>"
182
  data-placement="right"
183
- aria-label="<?php _e( 'The default subscription type that should be selected when Advanced subscriptions are enable.', 'subscribe-to-comments-reloaded' ); ?>">
184
  <i class="fas fa-question-circle"></i>
185
  </div>
186
  </div>
@@ -192,16 +192,16 @@ if ( isset( $_POST['options'] ) ) {
192
 
193
  <div class="form-group row">
194
  <label for="checkbox_inline_style" class="col-sm-3 col-form-label text-right">
195
- <?php _e( 'Custom inline style', 'subscribe-to-comments-reloaded' ) ?></label>
196
  <div class="col-sm-7">
197
  <input type="text" name="options[checkbox_inline_style]" id="checkbox_inline_style"
198
  class="form-control form-control-input-8"
199
  value="<?php echo esc_attr( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'checkbox_inline_style' ) ); ?>" size="20">
200
 
201
  <div class="helpDescription subsOptDescriptions"
202
- data-content="<?php _e( 'Custom inline CSS to add to the checkbox.', 'subscribe-to-comments-reloaded' ); ?>"
203
  data-placement="right"
204
- aria-label="<?php _e( 'Custom inline CSS to add to the checkbox.', 'subscribe-to-comments-reloaded' ); ?>">
205
  <i class="fas fa-question-circle"></i>
206
  </div>
207
  </div>
@@ -209,12 +209,12 @@ if ( isset( $_POST['options'] ) ) {
209
 
210
  <div class="form-group row">
211
  <label for="checkbox_html" class="col-sm-3 offset-sm-1 col-form-label">
212
- <?php _e( 'Custom HTML', 'subscribe-to-comments-reloaded' ) ?>
213
 
214
  <div class="helpDescription subsOptDescriptions"
215
- data-content="<?php _e( 'Custom HTML code to be used when displaying the checkbox. Allowed tags: [checkbox_field], [checkbox_label]', 'subscribe-to-comments-reloaded' ); ?>"
216
  data-placement="right"
217
- aria-label="<?php _e( 'Custom HTML code to be used when displaying the checkbox. Allowed tags: [checkbox_field], [checkbox_label]', 'subscribe-to-comments-reloaded' ); ?>">
218
  <i class="fas fa-question-circle"></i>
219
  </div>
220
 
@@ -235,16 +235,16 @@ if ( isset( $_POST['options'] ) ) {
235
  </div>
236
  </div>
237
 
238
- <h3><?php _e( 'Messages for your visitors', 'subscribe-to-comments-reloaded' ) ?></h3>
239
 
240
  <div class="form-group row">
241
  <label for="checkbox_label" class="col-sm-3 offset-sm-1 col-form-label" style="z-index: 9999;">
242
- <?php _e( 'Default label', 'subscribe-to-comments-reloaded' ) ?>
243
 
244
  <div class="helpDescription subsOptDescriptions"
245
- data-content="<?php _e( 'Label associated to the checkbox. Allowed tag: [subscribe_link]', 'subscribe-to-comments-reloaded' ); ?>"
246
  data-placement="right"
247
- aria-label="<?php _e( 'Label associated to the checkbox. Allowed tag: [subscribe_link]', 'subscribe-to-comments-reloaded' ); ?>">
248
  <i class="fas fa-question-circle"></i>
249
  </div>
250
 
@@ -266,12 +266,12 @@ if ( isset( $_POST['options'] ) ) {
266
 
267
  <div class="form-group row">
268
  <label for="subscribed_label" class="col-sm-3 offset-sm-1 col-form-label" style="z-index: 9999;">
269
- <?php _e( 'Subscribed label', 'subscribe-to-comments-reloaded' ) ?>
270
 
271
  <div class="helpDescription subsOptDescriptions"
272
- data-content="<?php _e( 'Label shown to those who are already subscribed to a post. Allowed tag: [manager_link]', 'subscribe-to-comments-reloaded' ); ?>"
273
  data-placement="right"
274
- aria-label="<?php _e( 'Label shown to those who are already subscribed to a post. Allowed tag: [manager_link]', 'subscribe-to-comments-reloaded' ); ?>">
275
  <i class="fas fa-question-circle"></i>
276
  </div>
277
 
@@ -293,12 +293,12 @@ if ( isset( $_POST['options'] ) ) {
293
 
294
  <div class="form-group row">
295
  <label for="subscribed_waiting_label" class="col-sm-3 offset-sm-1 col-form-label" style="z-index: 9999;">
296
- <?php _e( 'Pending label', 'subscribe-to-comments-reloaded' ) ?>
297
 
298
  <div class="helpDescription subsOptDescriptions"
299
- data-content="<?php _e( "Label shown to those who are already subscribed, but haven't clicked on the confirmation link yet. Allowed tag: [manager_link]", 'subscribe-to-comments-reloaded' ); ?>"
300
  data-placement="right"
301
- aria-label="<?php _e( "Label shown to those who are already subscribed, but haven't clicked on the confirmation link yet. Allowed tag: [manager_link]", 'subscribe-to-comments-reloaded' ); ?>">
302
  <i class="fas fa-question-circle"></i>
303
  </div>
304
 
@@ -320,12 +320,12 @@ if ( isset( $_POST['options'] ) ) {
320
 
321
  <div class="form-group row">
322
  <label for="author_label" class="col-sm-3 offset-sm-1 col-form-label" style="z-index: 9999;">
323
- <?php _e( 'Author label', 'subscribe-to-comments-reloaded' ) ?>
324
 
325
  <div class="helpDescription subsOptDescriptions"
326
- data-content="<?php _e( "Label shown to authors (and administrators). Allowed tag: [manager_link]", 'subscribe-to-comments-reloaded' ); ?>"
327
  data-placement="right"
328
- aria-label="<?php _e( "Label shown to authors (and administrators). Allowed tag: [manager_link]", 'subscribe-to-comments-reloaded' ); ?>">
329
  <i class="fas fa-question-circle"></i>
330
  </div>
331
 
@@ -348,7 +348,7 @@ if ( isset( $_POST['options'] ) ) {
348
  <div class="form-group row">
349
  <div class="col-sm-9 offset-sm-1">
350
  <button type="submit" class="btn btn-primary subscribe-form-button" name="Submit">
351
- <?php _e( 'Save Changes', 'subscribe-to-comments-reloaded' ) ?>
352
  </button>
353
  </div>
354
  </div>
27
  if ( empty( $_POST['stcr_save_comment_form_nonce'] ) ) {
28
  return;
29
  }
30
+
31
  if ( ! wp_verify_nonce( $_POST['stcr_save_comment_form_nonce'], 'stcr_save_comment_form_nonce' ) ) {
32
  return;
33
  }
34
+
35
  if ( ! current_user_can( 'manage_options' ) ) {
36
  return;
37
  }
38
 
39
+ $faulty_fields = array();
40
+ $subscribe_options = wp_unslash( $_POST['options'] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput
41
+ foreach ( $subscribe_options as $option => $value )
42
  {
43
 
44
  if ( ! $wp_subscribe_reloaded->stcr->utils->stcr_update_menu_options( $option, $value, $options[$option] ) )
50
  // Display an alert in the admin interface if something went wrong
51
  echo '<div class="updated"><p>';
52
  if ( sizeof( $faulty_fields ) == 0 ) {
53
+ esc_html_e( 'Your settings have been successfully updated.', 'subscribe-to-comments-reloaded' );
54
  } else {
55
+ esc_html_e( 'There was an error updating the following fields:', 'subscribe-to-comments-reloaded' );
56
  // echo ' <strong>' . substr( $faulty_fields, 0, - 2 ) . '</strong>';
57
  }
58
+ echo '</p></div>';
59
  }
60
  ?>
61
  <link href="<?php echo esc_url( plugins_url( '/vendor/webui-popover/dist/jquery.webui-popover.min.css', STCR_PLUGIN_FILE ) ); ?>" rel="stylesheet"/>
66
  <div class="col-sm-9">
67
  <form action="" method="post">
68
  <div class="form-group row">
69
+ <label for="show_subscription_box" class="col-sm-3 col-form-label text-right"><?php esc_html_e( 'Enable default checkbox', 'subscribe-to-comments-reloaded' ) ?></label>
70
  <div class="col-sm-7">
71
  <div class="switch">
72
  <input type="radio" class="switch-input" name="options[show_subscription_box]"
73
  value="yes" id="show_subscription_box-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'show_subscription_box' ) == 'yes' ) ? ' checked' : ''; ?> />
74
  <label for="show_subscription_box-yes" class="switch-label switch-label-off">
75
+ <?php esc_html_e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
76
  </label>
77
  <input type="radio" class="switch-input" name="options[show_subscription_box]" value="no" id="show_subscription_box-no"
78
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'show_subscription_box' ) == 'no' ) ? ' checked' : ''; ?> />
79
  <label for="show_subscription_box-no" class="switch-label switch-label-on">
80
+ <?php esc_html_e( 'No', 'subscribe-to-comments-reloaded' ) ?>
81
  </label>
82
  <span class="switch-selection"></span>
83
  </div>
84
  <div class="helpDescription subsOptDescriptions"
85
+ data-content="<?php esc_attr_e( 'Disable this option if you want to move the subscription checkbox to a different place on your page.', 'subscribe-to-comments-reloaded' ); ?>"
86
  data-placement="right"
87
+ aria-label="<?php esc_attr_e( 'Disable this option if you want to move the subscription checkbox to a different place on your page.', 'subscribe-to-comments-reloaded' ); ?>">
88
  <i class="fas fa-question-circle"></i>
89
  </div>
90
  </div>
91
  </div>
92
 
93
  <div class="form-group row">
94
+ <label for="checked_by_default" class="col-sm-3 col-form-label text-right"><?php esc_html_e( 'Checked by default', 'subscribe-to-comments-reloaded' ) ?></label>
95
  <div class="col-sm-7">
96
  <div class="switch">
97
  <input type="radio" class="switch-input" name="options[checked_by_default]"
98
  value="yes" id="checked_by_default-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'checked_by_default' ) == 'yes' ) ? ' checked' : ''; ?> />
99
  <label for="checked_by_default-yes" class="switch-label switch-label-off">
100
+ <?php esc_html_e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
101
  </label>
102
  <input type="radio" class="switch-input" name="options[checked_by_default]" value="no" id="checked_by_default-no"
103
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'checked_by_default' ) == 'no' ) ? ' checked' : ''; ?> />
104
  <label for="checked_by_default-no" class="switch-label switch-label-on">
105
+ <?php esc_html_e( 'No', 'subscribe-to-comments-reloaded' ) ?>
106
  </label>
107
  <span class="switch-selection"></span>
108
  </div>
109
  <div class="helpDescription subsOptDescriptions"
110
+ data-content="<?php esc_attr_e( 'Decide if the checkbox should be checked by default or not.', 'subscribe-to-comments-reloaded' ); ?>"
111
  data-placement="right"
112
+ aria-label="<?php esc_attr_e( 'Decide if the checkbox should be checked by default or not.', 'subscribe-to-comments-reloaded' ); ?>">
113
  <i class="fas fa-question-circle"></i>
114
  </div>
115
  </div>
119
  if ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_advanced_subscriptions' ) == 'no' ) :
120
  ?>
121
  <div class="form-group row">
122
+ <label for="checked_by_default_value" class="col-sm-3 col-form-label text-right"><?php esc_html_e( 'Subscription type', 'subscribe-to-comments-reloaded' ) ?></label>
123
  <div class="col-sm-7">
124
  <select name="options[checked_by_default_value]" id="checked_by_default_value" class="form-control form-control-select">
125
+ <option value="0" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'checked_by_default_value' ) === '0' ) ? "selected='selected'" : ''; ?>><?php esc_html_e( 'All new comments', 'subscribe-to-comments-reloaded' ); ?></option>
126
+ <option value="1" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'checked_by_default_value' ) === '1' ) ? "selected='selected'" : ''; ?>><?php esc_html_e( 'Replies to this comment', 'subscribe-to-comments-reloaded' ); ?></option>
127
  </select>
128
  <div class="helpDescription subsOptDescriptions"
129
+ data-content="<?php esc_attr_e( 'Select the type of subscription.', 'subscribe-to-comments-reloaded' ); ?>"
130
  data-placement="right"
131
+ aria-label="<?php esc_attr_e( 'Select the type of subscription.', 'subscribe-to-comments-reloaded' ); ?>">
132
  <i class="fas fa-question-circle"></i>
133
  </div>
134
  </div>
140
 
141
  <div class="form-group row">
142
  <label for="enable_advanced_subscriptions" class="col-sm-3 col-form-label text-right">
143
+ <?php esc_html_e( 'Advanced subscription', 'subscribe-to-comments-reloaded' ) ?></label>
144
  <div class="col-sm-7">
145
  <div class="switch">
146
  <input type="radio" class="switch-input" name="options[enable_advanced_subscriptions]"
147
  value="yes" id="enable_advanced_subscriptions-yes"
148
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_advanced_subscriptions' ) == 'yes' ) ? ' checked' : ''; ?> />
149
  <label for="enable_advanced_subscriptions-yes" class="switch-label switch-label-off">
150
+ <?php esc_html_e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
151
  </label>
152
  <input type="radio" class="switch-input" name="options[enable_advanced_subscriptions]" value="no" id="enable_advanced_subscriptions-no"
153
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_advanced_subscriptions' ) == 'no' ) ? ' checked' : ''; ?> />
154
  <label for="enable_advanced_subscriptions-no" class="switch-label switch-label-on">
155
+ <?php esc_html_e( 'No', 'subscribe-to-comments-reloaded' ) ?>
156
  </label>
157
  <span class="switch-selection"></span>
158
  </div>
159
  <div class="helpDescription subsOptDescriptions"
160
+ data-content="<?php esc_attr_e( 'Allow users to choose from different subscription types (all, replies only).', 'subscribe-to-comments-reloaded' ); ?>"
161
  data-placement="right"
162
+ aria-label="<?php esc_attr_e( 'Allow users to choose from different subscription types (all, replies only).', 'subscribe-to-comments-reloaded' ); ?>">
163
  <i class="fas fa-question-circle"></i>
164
  </div>
165
  </div>
170
  if ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_advanced_subscriptions' ) == 'yes' ): ?>
171
  <div class="form-group row">
172
  <label for="default_subscription_type" class="col-sm-3 col-form-label text-right">
173
+ <?php esc_html_e( 'Advanced default', 'subscribe-to-comments-reloaded' ) ?></label>
174
  <div class="col-sm-7">
175
  <select name="options[default_subscription_type]" id="default_subscription_type" class="form-control form-control-select">
176
+ <option value="0" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'default_subscription_type' ) === '0' ) ? "selected='selected'" : ''; ?>><?php esc_html_e( 'None', 'subscribe-to-comments-reloaded' ); ?></option>
177
+ <option value="1" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'default_subscription_type' ) === '1' ) ? "selected='selected'" : ''; ?>><?php esc_html_e( 'All new comments', 'subscribe-to-comments-reloaded' ); ?></option>
178
+ <option value="2" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'default_subscription_type' ) === '2' ) ? "selected='selected'" : ''; ?>><?php esc_html_e( 'Replies to this comment', 'subscribe-to-comments-reloaded' ); ?></option>
179
  </select>
180
  <div class="helpDescription subsOptDescriptions"
181
+ data-content="<?php esc_attr_e( 'The default subscription type that should be selected when Advanced subscriptions are enable.', 'subscribe-to-comments-reloaded' ); ?>"
182
  data-placement="right"
183
+ aria-label="<?php esc_attr_e( 'The default subscription type that should be selected when Advanced subscriptions are enable.', 'subscribe-to-comments-reloaded' ); ?>">
184
  <i class="fas fa-question-circle"></i>
185
  </div>
186
  </div>
192
 
193
  <div class="form-group row">
194
  <label for="checkbox_inline_style" class="col-sm-3 col-form-label text-right">
195
+ <?php esc_html_e( 'Custom inline style', 'subscribe-to-comments-reloaded' ) ?></label>
196
  <div class="col-sm-7">
197
  <input type="text" name="options[checkbox_inline_style]" id="checkbox_inline_style"
198
  class="form-control form-control-input-8"
199
  value="<?php echo esc_attr( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'checkbox_inline_style' ) ); ?>" size="20">
200
 
201
  <div class="helpDescription subsOptDescriptions"
202
+ data-content="<?php esc_attr_e( 'Custom inline CSS to add to the checkbox.', 'subscribe-to-comments-reloaded' ); ?>"
203
  data-placement="right"
204
+ aria-label="<?php esc_attr_e( 'Custom inline CSS to add to the checkbox.', 'subscribe-to-comments-reloaded' ); ?>">
205
  <i class="fas fa-question-circle"></i>
206
  </div>
207
  </div>
209
 
210
  <div class="form-group row">
211
  <label for="checkbox_html" class="col-sm-3 offset-sm-1 col-form-label">
212
+ <?php esc_html_e( 'Custom HTML', 'subscribe-to-comments-reloaded' ) ?>
213
 
214
  <div class="helpDescription subsOptDescriptions"
215
+ data-content="<?php esc_attr_e( 'Custom HTML code to be used when displaying the checkbox. Allowed tags: [checkbox_field], [checkbox_label]', 'subscribe-to-comments-reloaded' ); ?>"
216
  data-placement="right"
217
+ aria-label="<?php esc_attr_e( 'Custom HTML code to be used when displaying the checkbox. Allowed tags: [checkbox_field], [checkbox_label]', 'subscribe-to-comments-reloaded' ); ?>">
218
  <i class="fas fa-question-circle"></i>
219
  </div>
220
 
235
  </div>
236
  </div>
237
 
238
+ <h3><?php esc_html_e( 'Messages for your visitors', 'subscribe-to-comments-reloaded' ) ?></h3>
239
 
240
  <div class="form-group row">
241
  <label for="checkbox_label" class="col-sm-3 offset-sm-1 col-form-label" style="z-index: 9999;">
242
+ <?php esc_html_e( 'Default label', 'subscribe-to-comments-reloaded' ) ?>
243
 
244
  <div class="helpDescription subsOptDescriptions"
245
+ data-content="<?php esc_attr_e( 'Label associated to the checkbox. Allowed tag: [subscribe_link]', 'subscribe-to-comments-reloaded' ); ?>"
246
  data-placement="right"
247
+ aria-label="<?php esc_attr_e( 'Label associated to the checkbox. Allowed tag: [subscribe_link]', 'subscribe-to-comments-reloaded' ); ?>">
248
  <i class="fas fa-question-circle"></i>
249
  </div>
250
 
266
 
267
  <div class="form-group row">
268
  <label for="subscribed_label" class="col-sm-3 offset-sm-1 col-form-label" style="z-index: 9999;">
269
+ <?php esc_html_e( 'Subscribed label', 'subscribe-to-comments-reloaded' ) ?>
270
 
271
  <div class="helpDescription subsOptDescriptions"
272
+ data-content="<?php esc_attr_e( 'Label shown to those who are already subscribed to a post. Allowed tag: [manager_link]', 'subscribe-to-comments-reloaded' ); ?>"
273
  data-placement="right"
274
+ aria-label="<?php esc_attr_e( 'Label shown to those who are already subscribed to a post. Allowed tag: [manager_link]', 'subscribe-to-comments-reloaded' ); ?>">
275
  <i class="fas fa-question-circle"></i>
276
  </div>
277
 
293
 
294
  <div class="form-group row">
295
  <label for="subscribed_waiting_label" class="col-sm-3 offset-sm-1 col-form-label" style="z-index: 9999;">
296
+ <?php esc_html_e( 'Pending label', 'subscribe-to-comments-reloaded' ) ?>
297
 
298
  <div class="helpDescription subsOptDescriptions"
299
+ data-content="<?php esc_attr_e( "Label shown to those who are already subscribed, but haven't clicked on the confirmation link yet. Allowed tag: [manager_link]", 'subscribe-to-comments-reloaded' ); ?>"
300
  data-placement="right"
301
+ aria-label="<?php esc_attr_e( "Label shown to those who are already subscribed, but haven't clicked on the confirmation link yet. Allowed tag: [manager_link]", 'subscribe-to-comments-reloaded' ); ?>">
302
  <i class="fas fa-question-circle"></i>
303
  </div>
304
 
320
 
321
  <div class="form-group row">
322
  <label for="author_label" class="col-sm-3 offset-sm-1 col-form-label" style="z-index: 9999;">
323
+ <?php esc_html_e( 'Author label', 'subscribe-to-comments-reloaded' ) ?>
324
 
325
  <div class="helpDescription subsOptDescriptions"
326
+ data-content="<?php esc_attr_e( "Label shown to authors (and administrators). Allowed tag: [manager_link]", 'subscribe-to-comments-reloaded' ); ?>"
327
  data-placement="right"
328
+ aria-label="<?php esc_attr_e( "Label shown to authors (and administrators). Allowed tag: [manager_link]", 'subscribe-to-comments-reloaded' ); ?>">
329
  <i class="fas fa-question-circle"></i>
330
  </div>
331
 
348
  <div class="form-group row">
349
  <div class="col-sm-9 offset-sm-1">
350
  <button type="submit" class="btn btn-primary subscribe-form-button" name="Submit">
351
+ <?php esc_html_e( 'Save Changes', 'subscribe-to-comments-reloaded' ) ?>
352
  </button>
353
  </div>
354
  </div>
options/stcr_manage_subscriptions.php CHANGED
@@ -5,7 +5,7 @@ if ( ! function_exists( 'is_admin' ) || ! is_admin() ) {
5
  exit;
6
  }
7
 
8
- $action = esc_attr( ! empty( $_POST['sra'] ) ? $_POST['sra'] : ( ! empty( $_GET['sra'] ) ? $_GET['sra'] : '' ) );
9
  if ( $action == 'edit-subscription' || $action == 'add-subscription' ) {
10
  require_once trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/panel1-' . $action . '.php';
11
 
@@ -19,15 +19,15 @@ if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/pane
19
  if ( ! $valid_email )
20
  {
21
  echo '<div class="notice notice-error is-dismissible"><p>';
22
- _e( 'The email that you typed is not correct.', 'subscribe-to-comments-reloaded' );
23
- echo "</p></div>";
24
  }
25
 
26
  if ( ! $valid_post_id )
27
  {
28
  echo '<div class="notice notice-error is-dismissible"><p>';
29
- _e( 'Please enter a valid Post ID.', 'subscribe-to-comments-reloaded' );
30
- echo "</p></div>";
31
  }
32
  }
33
 
@@ -46,7 +46,7 @@ if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/pane
46
  <div class="col-sm-6">
47
  <div class="card card-font-size mass-update-subs">
48
  <h6 class="card-header">
49
- <i class="fas fa-exchange-alt"></i> <?php _e( 'Mass Update Subscriptions', 'subscribe-to-comments-reloaded' ) ?>
50
  <i class="fas fa-caret-down pull-right"></i>
51
  </h6>
52
  <div class="card-body cbody-mass" style="padding: 0;">
@@ -55,30 +55,30 @@ if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/pane
55
 
56
  <table>
57
  <tr>
58
- <td><label for='oldsre'><?php _e( 'From', 'subscribe-to-comments-reloaded' ) ?></label></td>
59
  <td><input class="form-control form-controls-font" type='text' size='30' name='oldsre' id='oldsre' value='<?php esc_attr_e( 'email address', 'subscribe-to-comments-reloaded' ) ?>' style="color:#ccc;"></td>
60
  <td><span class="validate-error-text validate-error-text-oldsre stcr-hidden "></span></td>
61
  </tr>
62
  <tr>
63
- <td><label for='sre'><?php _e( 'To', 'subscribe-to-comments-reloaded' ) ?></label></td>
64
  <td><input class="form-control form-controls-font" type='text' size='30' name='sre' id='sre' value='<?php esc_attr_e( 'optional - new email address', 'subscribe-to-comments-reloaded' ) ?>' style="color:#ccc;"
65
  >
66
  </td>
67
  <td><span class="validate-error-text validate-error-text-sre stcr-hidden "></span></td>
68
  </tr>
69
  <tr>
70
- <td><label for='srs'><?php _e( 'Status', 'subscribe-to-comments-reloaded' ) ?></label></td>
71
  <td><select class="form-control form-controls-font mass-update-select-status" name="srs" id="srs">
72
- <option value=''><?php _e( 'Keep unchanged', 'subscribe-to-comments-reloaded' ) ?></option>
73
- <option value='Y'><?php _e( 'Active', 'subscribe-to-comments-reloaded' ) ?></option>
74
- <option value='R'><?php _e( 'Replies only', 'subscribe-to-comments-reloaded' ) ?></option>
75
- <option value='C'><?php _e( 'Suspended', 'subscribe-to-comments-reloaded' ) ?></option>
76
  </select>
77
  <input type='submit' style="font-size: 0.8rem;" class='subscribe-form-button btn btn-primary' value='<?php esc_attr_e( 'Update', 'subscribe-to-comments-reloaded' ) ?>' ></td>
78
  </tr>
79
  <tr>
80
  <td colspan="2">
81
- <div class="more-info" data-infopanel="info-panel-mass-update" aria-label="<?php _e("More info", 'subscribe-to-comments-reloaded'); ?>">
82
  <i class="fas fa-question-circle"></i>
83
  </div>
84
  </td>
@@ -90,9 +90,9 @@ if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/pane
90
  </table>
91
 
92
  <div class="alert alert-info hidden info-panel-mass-update" role="alert">
93
- <?php _e('This option will allow you to change an email address for another one or to update the same status for all the subscription on a specific email address.', 'subscribe-to-comments-reloaded' ); ?>
94
  </div>
95
-
96
  <?php wp_nonce_field( 'stcr_edit_subscription_nonce', 'stcr_edit_subscription_nonce' ); ?>
97
  </form>
98
  </div>
@@ -103,7 +103,7 @@ if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/pane
103
  <div class="col-sm-6">
104
  <div class="card card-font-size add-new-subs">
105
  <h6 class="card-header">
106
- <i class="fas fa-plus-square"></i> <?php _e( 'Add New Subscription', 'subscribe-to-comments-reloaded' ) ?>
107
  <i class="fas fa-caret-down pull-right"></i>
108
  </h6>
109
  <div class="card-body" style="padding: 0;">
@@ -112,22 +112,22 @@ if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/pane
112
  <fieldset style="border:0">
113
  <table>
114
  <tr>
115
- <td><?php _e( 'Post ID', 'subscribe-to-comments-reloaded' ) ?></td>
116
  <td><input class="form-control form-controls-font" type='text' size='30' name='srp' value='' ></td>
117
  <td><span class="validate-error-text validate-error-text-srp stcr-hidden "></span></td>
118
  </tr>
119
  <tr>
120
- <td><?php _e( 'Email', 'subscribe-to-comments-reloaded' ) ?></td>
121
  <td><input class="form-control form-controls-font" type='text' size='30' name='sre' value='' ></td>
122
  <td><span class="validate-error-text validate-error-text-sre stcr-hidden "></span></td>
123
  </tr>
124
  <tr>
125
- <td><?php _e( 'Status', 'subscribe-to-comments-reloaded' ) ?></td>
126
  <td>
127
  <select name="srs" class="form-control form-controls-font new-sub-select-status">
128
- <option value='Y'><?php _e( 'Active', 'subscribe-to-comments-reloaded' ) ?></option>
129
- <option value='R'><?php _e( 'Replies only', 'subscribe-to-comments-reloaded' ) ?></option>
130
- <option value='YC'><?php _e( 'Ask user to confirm', 'subscribe-to-comments-reloaded' ) ?></option>
131
  </select>
132
  <input type='submit' style="font-size: 0.8rem;" class='subscribe-form-button btn btn-primary' value='<?php esc_attr_e( 'Add', 'subscribe-to-comments-reloaded' ) ?>' >
133
  </td>
@@ -155,14 +155,14 @@ if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/pane
155
 
156
  <div class="card-text postbox" style="border: none;">
157
 
158
- <h4><i class="fas fa-search"></i> <?php _e( 'Search subscriptions', 'subscribe-to-comments-reloaded' ) ?></h4>
159
 
160
  <?php if ( ! empty( $_POST['srv'] ) || ( is_array( $subscriptions ) && count( $subscriptions ) == 1000 ) ) : ?>
161
 
162
  <?php
163
  $search_term = '';
164
  if ( ! empty( $_POST['srv'] ) ) {
165
- $search_term = sanitize_text_field( $_POST['srv'] );
166
  }
167
  ?>
168
  <form action="" method="post" style="background: #f5f5f5; padding: 15px; margin-top: 20px;">
@@ -178,12 +178,12 @@ if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/pane
178
 
179
  <?php endif; ?>
180
 
181
- <div class="col-md-2 subs-spinner mx-auto"><h5><?php _e( "Loading", 'subscribe-to-comments-reloaded'); ?> <i class="fas fa-play-circle"></i></h5></div>
182
 
183
  <div class="clearfix"></div>
184
 
185
  <form style="border: 1px solid #eee; padding: 15px; margin-top: 20px;" action="" method="post" id="subscription_form" name="subscription_form"
186
- onsubmit="if(this.sra[0].checked) return confirm('<?php _e( 'Please remember: this operation cannot be undone. Are you sure you want to proceed?', 'subscribe-to-comments-reloaded' ) ?>')">
187
 
188
  <?php
189
 
@@ -191,18 +191,18 @@ if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/pane
191
  $date_time_format = get_option( 'date_format' ) . ' ' . get_option( 'time_format' );
192
  // Let us form those status
193
  $status_arry = array(
194
- 'R' => __( 'Replies', 'subscribe-to-comments-reloaded'),
195
- 'RC' => __( 'Replies Unconfirmed', 'subscribe-to-comments-reloaded'),
196
- 'Y' => __( "All Comments", 'subscribe-to-comments-reloaded'),
197
- 'YC' => __( "Unconfirmed", 'subscribe-to-comments-reloaded'),
198
- 'C' => __( "Inactive", 'subscribe-to-comments-reloaded'),
199
- '-C' => __( "Active", 'subscribe-to-comments-reloaded')
200
  );
201
 
202
  if ( ! empty( $subscriptions ) && is_array( $subscriptions ) ) {
203
 
204
- $show_post_column = ( $operator != 'equals' || $search_field != 'post_id' ) ? __( 'Post (ID)', 'subscribe-to-comments-reloaded' ) : '';
205
- $show_email_column = ( $operator != 'equals' || $search_field != 'email' ) ? __( 'Email', 'subscribe-to-comments-reloaded' ) : '';
206
 
207
  echo "<table class=\"table table-smx table-hover table-striped subscribers-table stcr-hidden\" style=\"font-size: 0.8em\">
208
  <thead>";
@@ -212,13 +212,13 @@ if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/pane
212
 
213
  echo "<tr>
214
  <th scope=\"col\">
215
- &nbsp;&nbsp;&nbsp;<i class=\"fas fa-exchange-alt\"></i> <span>" . __('Actions', 'subscribe-to-comments-reloaded') ."</span>
216
  <input class='checkbox' type='checkbox' name='subscription_list_select_all' id='stcr_select_all' class='stcr_select_all'/>
217
  </th>
218
- <th scope=\"col\"><i class=\"fas fa-thumbtack\"></i><span>$show_post_column</span></th>
219
- <th scope=\"col\"><i class=\"fas fa-address-card\"></i><span>$show_email_column</span></th>
220
- <th scope=\"col\"><i class=\"fas fa-calendar-alt\"></i><span>". __( 'Date and Time', 'subscribe-to-comments-reloaded' ) . "</span></th>
221
- <th scope=\"col\"><i class=\"fas fa-info-circle\"></i><span>". __( 'Status', 'subscribe-to-comments-reloaded' ) . "</span></th>
222
  </tr>";
223
  }
224
  else
@@ -226,12 +226,12 @@ if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/pane
226
  echo "<tr>
227
  <th scope=\"col\">
228
  <input class='checkbox' type='checkbox' name='subscription_list_select_all' id='stcr_select_all' class='stcr_select_all'/>
229
- &nbsp;&nbsp;&nbsp;<i class=\"fas fa-exchange-alt\"></i> <span>" . __('Actions', 'subscribe-to-comments-reloaded') ."</span>
230
  </th>
231
- <th scope=\"col\"><i class=\"fas fa-thumbtack\"></i><span>$show_post_column</span></th>
232
- <th scope=\"col\"><i class=\"fas fa-address-card\"></i><span>$show_email_column</span></th>
233
- <th scope=\"col\"><i class=\"fas fa-calendar-alt\"></i><span>". __( 'Date and Time', 'subscribe-to-comments-reloaded' ) . "</span></th>
234
- <th scope=\"col\"><i class=\"fas fa-info-circle\"></i><span>". __( 'Status', 'subscribe-to-comments-reloaded' ) . "</span></th>
235
  </tr>";
236
  }
237
 
@@ -263,30 +263,30 @@ if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/pane
263
  {
264
  echo "<tr>
265
  <td>
266
- <label for='sub_{$a_subscription->meta_id}' class='hidden'>" . __( 'Subscription', 'subscribe-to-comments-reloaded' ) . " {$a_subscription->meta_id}</label>
267
- <input class='checkbox' type='checkbox' name='subscriptions_list[]' value='$a_subscription->post_id," . urlencode( $a_subscription->email ) . "' id='sub_{$a_subscription->meta_id}' />
268
- <a href='admin.php?page=stcr_manage_subscriptions&amp;sra=edit-subscription&amp;srp=" . $a_subscription->post_id . "&amp;sre=" . urlencode( $a_subscription->email ) . "' alt='" . __( 'Edit', 'subscribe-to-comments-reloaded' ) . "'><i class=\"fas fa-edit\" style='font-size: 1.1em;color: #ffc53a;'></i></a>
269
- &nbsp;&nbsp;&nbsp;&nbsp;<a href='$delete_url' onclick='return confirm(\"" . __( 'Please remember: this operation cannot be undone. Are you sure you want to proceed?', 'subscribe-to-comments-reloaded' ) . "\");' alt='" . __( 'Delete', 'subscribe-to-comments-reloaded' ) . "'><i class=\"fas fa-trash-alt\" style='font-size: 1.1em;color: #ff695a;'></i></a>
270
  </td>
271
- <td>$row_post</td>
272
- <td>$row_email</td>
273
- <td data-sort='$date_time_sort'>$date_time</td>
274
- <td>$status_desc</td>
275
  </tr>";
276
  }
277
  else
278
  {
279
  echo "<tr>
280
  <td>
281
- <label for='sub_{$a_subscription->meta_id}' class='hidden'>" . __( 'Subscription', 'subscribe-to-comments-reloaded' ) . " {$a_subscription->meta_id}</label>
282
- <input class='checkbox' type='checkbox' name='subscriptions_list[]' value='$a_subscription->post_id," . urlencode( $a_subscription->email ) . "' id='sub_{$a_subscription->meta_id}' />
283
- <a href='admin.php?page=stcr_manage_subscriptions&amp;sra=edit-subscription&amp;srp=" . $a_subscription->post_id . "&amp;sre=" . urlencode( $a_subscription->email ) . "' alt='" . __( 'Edit', 'subscribe-to-comments-reloaded' ) . "'><i class=\"fas fa-edit\" style='font-size: 1.1em;color: #ffc53a;'></i></a>
284
- &nbsp;&nbsp;&nbsp;&nbsp;<a href='$delete_url' onclick='return confirm(\"" . __( 'Please remember: this operation cannot be undone. Are you sure you want to proceed?', 'subscribe-to-comments-reloaded' ) . "\");' alt='" . __( 'Delete', 'subscribe-to-comments-reloaded' ) . "'><i class=\"fas fa-trash-alt\" style='font-size: 1.1em;color: #ff695a;'></i></a>
285
  </td>
286
- <td>$row_post</td>
287
- <td>$row_email</td>
288
- <td data-sort='$date_time_sort'>$date_time</td>
289
- <td>$status_desc</td>
290
  </tr>";
291
  }
292
 
@@ -296,23 +296,23 @@ if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/pane
296
  echo "</table>";
297
 
298
  echo "<div class='subscribers-mass-actions form-group row'>";
299
- echo '<label for="action_type" class="col-sm-1 col-form-label">' . __( 'Action:', 'subscribe-to-comments-reloaded' ) . '</label >' ;
300
  ?> <div class="col-sm-3">
301
  <select name="sra" id="action_type" class="form-control">
302
- <option value="delete"><?php _e( 'Delete forever', 'subscribe-to-comments-reloaded' ) ?></option>
303
- <option value="suspend"><?php _e( 'Suspend', 'subscribe-to-comments-reloaded' ) ?></option>
304
- <option value="force_y"><?php _e( 'Activate and set to notify on all comments', 'subscribe-to-comments-reloaded' ) ?></option>
305
- <option value="force_r"><?php _e( 'Activate and set to notify on replies only ', 'subscribe-to-comments-reloaded' ) ?></option>
306
- <option value="activate"><?php _e( 'Activate', 'subscribe-to-comments-reloaded' ) ?></option>
307
  </select>
308
  </div>
309
  <?php
310
- echo '<div class="col-sm-2"><button type="submit" class="subscribe-form-button btn btn-primary" >' . __( 'Update subscriptions', 'subscribe-to-comments-reloaded' ) . '</button></div>';
311
- echo "<input type='hidden' name='srf' value='$search_field'/><input type='hidden' name='srt' value='$operator'/><input type='hidden' name='srv' value='$search_value'/><input type='hidden' name='srsf' value='$offset'/><input type='hidden' name='srrp' value='$limit_results'/><input type='hidden' name='srob' value='$order_by'/><input type='hidden' name='sro' value='$order'/>";
312
- echo "</div>";
313
 
314
  } elseif ( $action == 'search' ) {
315
- echo '<p>' . __( 'Sorry, no subscriptions match your search criteria.', 'subscribe-to-comments-reloaded' ) . "</p>";
316
  }
317
  ?>
318
 
5
  exit;
6
  }
7
 
8
+ $action = ! empty( $_POST['sra'] ) ? sanitize_text_field( wp_unslash( $_POST['sra'] ) ) : ( ! empty( $_GET['sra'] ) ? sanitize_text_field( wp_unslash( $_GET['sra'] ) ) : '' );
9
  if ( $action == 'edit-subscription' || $action == 'add-subscription' ) {
10
  require_once trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/panel1-' . $action . '.php';
11
 
19
  if ( ! $valid_email )
20
  {
21
  echo '<div class="notice notice-error is-dismissible"><p>';
22
+ esc_html_e( 'The email that you typed is not correct.', 'subscribe-to-comments-reloaded' );
23
+ echo '</p></div>';
24
  }
25
 
26
  if ( ! $valid_post_id )
27
  {
28
  echo '<div class="notice notice-error is-dismissible"><p>';
29
+ esc_html_e( 'Please enter a valid Post ID.', 'subscribe-to-comments-reloaded' );
30
+ echo '</p></div>';
31
  }
32
  }
33
 
46
  <div class="col-sm-6">
47
  <div class="card card-font-size mass-update-subs">
48
  <h6 class="card-header">
49
+ <i class="fas fa-exchange-alt"></i> <?php esc_html_e( 'Mass Update Subscriptions', 'subscribe-to-comments-reloaded' ) ?>
50
  <i class="fas fa-caret-down pull-right"></i>
51
  </h6>
52
  <div class="card-body cbody-mass" style="padding: 0;">
55
 
56
  <table>
57
  <tr>
58
+ <td><label for='oldsre'><?php esc_html_e( 'From', 'subscribe-to-comments-reloaded' ) ?></label></td>
59
  <td><input class="form-control form-controls-font" type='text' size='30' name='oldsre' id='oldsre' value='<?php esc_attr_e( 'email address', 'subscribe-to-comments-reloaded' ) ?>' style="color:#ccc;"></td>
60
  <td><span class="validate-error-text validate-error-text-oldsre stcr-hidden "></span></td>
61
  </tr>
62
  <tr>
63
+ <td><label for='sre'><?php esc_html_e( 'To', 'subscribe-to-comments-reloaded' ) ?></label></td>
64
  <td><input class="form-control form-controls-font" type='text' size='30' name='sre' id='sre' value='<?php esc_attr_e( 'optional - new email address', 'subscribe-to-comments-reloaded' ) ?>' style="color:#ccc;"
65
  >
66
  </td>
67
  <td><span class="validate-error-text validate-error-text-sre stcr-hidden "></span></td>
68
  </tr>
69
  <tr>
70
+ <td><label for='srs'><?php esc_html_e( 'Status', 'subscribe-to-comments-reloaded' ) ?></label></td>
71
  <td><select class="form-control form-controls-font mass-update-select-status" name="srs" id="srs">
72
+ <option value=''><?php esc_html_e( 'Keep unchanged', 'subscribe-to-comments-reloaded' ) ?></option>
73
+ <option value='Y'><?php esc_html_e( 'Active', 'subscribe-to-comments-reloaded' ) ?></option>
74
+ <option value='R'><?php esc_html_e( 'Replies only', 'subscribe-to-comments-reloaded' ) ?></option>
75
+ <option value='C'><?php esc_html_e( 'Suspended', 'subscribe-to-comments-reloaded' ) ?></option>
76
  </select>
77
  <input type='submit' style="font-size: 0.8rem;" class='subscribe-form-button btn btn-primary' value='<?php esc_attr_e( 'Update', 'subscribe-to-comments-reloaded' ) ?>' ></td>
78
  </tr>
79
  <tr>
80
  <td colspan="2">
81
+ <div class="more-info" data-infopanel="info-panel-mass-update" aria-label="<?php esc_html_e("More info", 'subscribe-to-comments-reloaded'); ?>">
82
  <i class="fas fa-question-circle"></i>
83
  </div>
84
  </td>
90
  </table>
91
 
92
  <div class="alert alert-info hidden info-panel-mass-update" role="alert">
93
+ <?php esc_html_e('This option will allow you to change an email address for another one or to update the same status for all the subscription on a specific email address.', 'subscribe-to-comments-reloaded' ); ?>
94
  </div>
95
+
96
  <?php wp_nonce_field( 'stcr_edit_subscription_nonce', 'stcr_edit_subscription_nonce' ); ?>
97
  </form>
98
  </div>
103
  <div class="col-sm-6">
104
  <div class="card card-font-size add-new-subs">
105
  <h6 class="card-header">
106
+ <i class="fas fa-plus-square"></i> <?php esc_html_e( 'Add New Subscription', 'subscribe-to-comments-reloaded' ) ?>
107
  <i class="fas fa-caret-down pull-right"></i>
108
  </h6>
109
  <div class="card-body" style="padding: 0;">
112
  <fieldset style="border:0">
113
  <table>
114
  <tr>
115
+ <td><?php esc_html_e( 'Post ID', 'subscribe-to-comments-reloaded' ) ?></td>
116
  <td><input class="form-control form-controls-font" type='text' size='30' name='srp' value='' ></td>
117
  <td><span class="validate-error-text validate-error-text-srp stcr-hidden "></span></td>
118
  </tr>
119
  <tr>
120
+ <td><?php esc_html_e( 'Email', 'subscribe-to-comments-reloaded' ) ?></td>
121
  <td><input class="form-control form-controls-font" type='text' size='30' name='sre' value='' ></td>
122
  <td><span class="validate-error-text validate-error-text-sre stcr-hidden "></span></td>
123
  </tr>
124
  <tr>
125
+ <td><?php esc_html_e( 'Status', 'subscribe-to-comments-reloaded' ) ?></td>
126
  <td>
127
  <select name="srs" class="form-control form-controls-font new-sub-select-status">
128
+ <option value='Y'><?php esc_html_e( 'Active', 'subscribe-to-comments-reloaded' ) ?></option>
129
+ <option value='R'><?php esc_html_e( 'Replies only', 'subscribe-to-comments-reloaded' ) ?></option>
130
+ <option value='YC'><?php esc_html_e( 'Ask user to confirm', 'subscribe-to-comments-reloaded' ) ?></option>
131
  </select>
132
  <input type='submit' style="font-size: 0.8rem;" class='subscribe-form-button btn btn-primary' value='<?php esc_attr_e( 'Add', 'subscribe-to-comments-reloaded' ) ?>' >
133
  </td>
155
 
156
  <div class="card-text postbox" style="border: none;">
157
 
158
+ <h4><i class="fas fa-search"></i> <?php esc_html_e( 'Search subscriptions', 'subscribe-to-comments-reloaded' ) ?></h4>
159
 
160
  <?php if ( ! empty( $_POST['srv'] ) || ( is_array( $subscriptions ) && count( $subscriptions ) == 1000 ) ) : ?>
161
 
162
  <?php
163
  $search_term = '';
164
  if ( ! empty( $_POST['srv'] ) ) {
165
+ $search_term = sanitize_text_field( wp_unslash( $_POST['srv'] ) );
166
  }
167
  ?>
168
  <form action="" method="post" style="background: #f5f5f5; padding: 15px; margin-top: 20px;">
178
 
179
  <?php endif; ?>
180
 
181
+ <div class="col-md-2 subs-spinner mx-auto"><h5><?php esc_html_e( "Loading", 'subscribe-to-comments-reloaded'); ?> <i class="fas fa-play-circle"></i></h5></div>
182
 
183
  <div class="clearfix"></div>
184
 
185
  <form style="border: 1px solid #eee; padding: 15px; margin-top: 20px;" action="" method="post" id="subscription_form" name="subscription_form"
186
+ onsubmit="if(this.sra[0].checked) return confirm('<?php esc_attr_e( 'Please remember: this operation cannot be undone. Are you sure you want to proceed?', 'subscribe-to-comments-reloaded' ) ?>')">
187
 
188
  <?php
189
 
191
  $date_time_format = get_option( 'date_format' ) . ' ' . get_option( 'time_format' );
192
  // Let us form those status
193
  $status_arry = array(
194
+ 'R' => esc_html__( 'Replies', 'subscribe-to-comments-reloaded'),
195
+ 'RC' => esc_html__( 'Replies Unconfirmed', 'subscribe-to-comments-reloaded'),
196
+ 'Y' => esc_html__( "All Comments", 'subscribe-to-comments-reloaded'),
197
+ 'YC' => esc_html__( "Unconfirmed", 'subscribe-to-comments-reloaded'),
198
+ 'C' => esc_html__( "Inactive", 'subscribe-to-comments-reloaded'),
199
+ '-C' => esc_html__( "Active", 'subscribe-to-comments-reloaded')
200
  );
201
 
202
  if ( ! empty( $subscriptions ) && is_array( $subscriptions ) ) {
203
 
204
+ $show_post_column = ( $operator != 'equals' || $search_field != 'post_id' ) ? esc_html__( 'Post (ID)', 'subscribe-to-comments-reloaded' ) : '';
205
+ $show_email_column = ( $operator != 'equals' || $search_field != 'email' ) ? esc_html__( 'Email', 'subscribe-to-comments-reloaded' ) : '';
206
 
207
  echo "<table class=\"table table-smx table-hover table-striped subscribers-table stcr-hidden\" style=\"font-size: 0.8em\">
208
  <thead>";
212
 
213
  echo "<tr>
214
  <th scope=\"col\">
215
+ &nbsp;&nbsp;&nbsp;<i class=\"fas fa-exchange-alt\"></i> <span>" . esc_html__( 'Actions', 'subscribe-to-comments-reloaded' ) . "</span>
216
  <input class='checkbox' type='checkbox' name='subscription_list_select_all' id='stcr_select_all' class='stcr_select_all'/>
217
  </th>
218
+ <th scope=\"col\"><i class=\"fas fa-thumbtack\"></i><span>" . esc_html( $show_post_column ) . "</span></th>
219
+ <th scope=\"col\"><i class=\"fas fa-address-card\"></i><span>" . esc_html( $show_email_column ) . "</span></th>
220
+ <th scope=\"col\"><i class=\"fas fa-calendar-alt\"></i><span>" . esc_html__( 'Date and Time', 'subscribe-to-comments-reloaded' ) . "</span></th>
221
+ <th scope=\"col\"><i class=\"fas fa-info-circle\"></i><span>" . esc_html__( 'Status', 'subscribe-to-comments-reloaded' ) . "</span></th>
222
  </tr>";
223
  }
224
  else
226
  echo "<tr>
227
  <th scope=\"col\">
228
  <input class='checkbox' type='checkbox' name='subscription_list_select_all' id='stcr_select_all' class='stcr_select_all'/>
229
+ &nbsp;&nbsp;&nbsp;<i class=\"fas fa-exchange-alt\"></i> <span>" . esc_html__( 'Actions', 'subscribe-to-comments-reloaded' ) . "</span>
230
  </th>
231
+ <th scope=\"col\"><i class=\"fas fa-thumbtack\"></i><span>" . esc_html( $show_post_column ) . "</span></th>
232
+ <th scope=\"col\"><i class=\"fas fa-address-card\"></i><span>" . esc_html( $show_email_column ) . "</span></th>
233
+ <th scope=\"col\"><i class=\"fas fa-calendar-alt\"></i><span>" . esc_html__( 'Date and Time', 'subscribe-to-comments-reloaded' ) . "</span></th>
234
+ <th scope=\"col\"><i class=\"fas fa-info-circle\"></i><span>" . esc_html__( 'Status', 'subscribe-to-comments-reloaded' ) . "</span></th>
235
  </tr>";
236
  }
237
 
263
  {
264
  echo "<tr>
265
  <td>
266
+ <label for='sub_" . esc_attr( $a_subscription->meta_id ) . "' class='hidden'>" . esc_html__( 'Subscription', 'subscribe-to-comments-reloaded' ) . esc_attr( $a_subscription->meta_id ) . "</label>
267
+ <input class='checkbox' type='checkbox' name='subscriptions_list[]' value='" . esc_attr( $a_subscription->post_id ) . "," . urlencode( $a_subscription->email ) . "' id='sub_" . esc_attr( $a_subscription->meta_id ) . "' />
268
+ <a href='admin.php?page=stcr_manage_subscriptions&amp;sra=edit-subscription&amp;srp=" . esc_attr( $a_subscription->post_id ) . "&amp;sre=" . urlencode( $a_subscription->email ) . "' alt='" . esc_html__( 'Edit', 'subscribe-to-comments-reloaded' ) . "'><i class=\"fas fa-edit\" style='font-size: 1.1em;color: #ffc53a;'></i></a>
269
+ &nbsp;&nbsp;&nbsp;&nbsp;<a href='" . esc_url( $delete_url ) . "' onclick='return confirm(\"" . esc_html__( 'Please remember: this operation cannot be undone. Are you sure you want to proceed?', 'subscribe-to-comments-reloaded' ) . "\");' alt='" . esc_html__( 'Delete', 'subscribe-to-comments-reloaded' ) . "'><i class=\"fas fa-trash-alt\" style='font-size: 1.1em;color: #ff695a;'></i></a>
270
  </td>
271
+ <td>" . wp_kses( $row_post, wp_kses_allowed_html( 'post' ) ) . "</td>
272
+ <td>" . wp_kses( $row_email, wp_kses_allowed_html( 'post' ) ) . "</td>
273
+ <td data-sort='" . esc_attr( $date_time_sort ) . "'>" . esc_html( $date_time ) . "</td>
274
+ <td>" . esc_html( $status_desc ) . "</td>
275
  </tr>";
276
  }
277
  else
278
  {
279
  echo "<tr>
280
  <td>
281
+ <label for='sub_" . esc_attr( $a_subscription->meta_id ) . "' class='hidden'>" . esc_html__( 'Subscription', 'subscribe-to-comments-reloaded' ) . esc_attr( $a_subscription->meta_id ) . "</label>
282
+ <input class='checkbox' type='checkbox' name='subscriptions_list[]' value='" . esc_attr( $a_subscription->post_id ) . "," . urlencode( $a_subscription->email ) . "' id='sub_" . esc_attr( $a_subscription->meta_id ) . "' />
283
+ <a href='admin.php?page=stcr_manage_subscriptions&amp;sra=edit-subscription&amp;srp=" . esc_attr( $a_subscription->post_id ) . "&amp;sre=" . urlencode( $a_subscription->email ) . "' alt='" . esc_html__( 'Edit', 'subscribe-to-comments-reloaded' ) . "'><i class=\"fas fa-edit\" style='font-size: 1.1em;color: #ffc53a;'></i></a>
284
+ &nbsp;&nbsp;&nbsp;&nbsp;<a href='" . esc_url( $delete_url ) . "' onclick='return confirm(\"" . esc_html__( 'Please remember: this operation cannot be undone. Are you sure you want to proceed?', 'subscribe-to-comments-reloaded' ) . "\");' alt='" . esc_html__( 'Delete', 'subscribe-to-comments-reloaded' ) . "'><i class=\"fas fa-trash-alt\" style='font-size: 1.1em;color: #ff695a;'></i></a>
285
  </td>
286
+ <td>" . wp_kses( $row_post, wp_kses_allowed_html( 'post' ) ) . "</td>
287
+ <td>" . wp_kses( $row_email, wp_kses_allowed_html( 'post' ) ) . "</td>
288
+ <td data-sort='" . esc_attr( $date_time_sort ) . "'>" . esc_html( $date_time ) . "</td>
289
+ <td>" . esc_html( $status_desc ) . "</td>
290
  </tr>";
291
  }
292
 
296
  echo "</table>";
297
 
298
  echo "<div class='subscribers-mass-actions form-group row'>";
299
+ echo '<label for="action_type" class="col-sm-1 col-form-label">' . esc_html__( 'Action:', 'subscribe-to-comments-reloaded' ) . '</label >' ;
300
  ?> <div class="col-sm-3">
301
  <select name="sra" id="action_type" class="form-control">
302
+ <option value="delete"><?php esc_html_e( 'Delete forever', 'subscribe-to-comments-reloaded' ) ?></option>
303
+ <option value="suspend"><?php esc_html_e( 'Suspend', 'subscribe-to-comments-reloaded' ) ?></option>
304
+ <option value="force_y"><?php esc_html_e( 'Activate and set to notify on all comments', 'subscribe-to-comments-reloaded' ) ?></option>
305
+ <option value="force_r"><?php esc_html_e( 'Activate and set to notify on replies only ', 'subscribe-to-comments-reloaded' ) ?></option>
306
+ <option value="activate"><?php esc_html_e( 'Activate', 'subscribe-to-comments-reloaded' ) ?></option>
307
  </select>
308
  </div>
309
  <?php
310
+ echo '<div class="col-sm-2"><button type="submit" class="subscribe-form-button btn btn-primary" >' . esc_html__( 'Update subscriptions', 'subscribe-to-comments-reloaded' ) . '</button></div>';
311
+ echo "<input type='hidden' name='srf' value='" . esc_attr( $search_field ) . "'/><input type='hidden' name='srt' value='" . esc_attr( $operator ) . "'/><input type='hidden' name='srv' value='" . esc_attr( $search_value ) . "'/><input type='hidden' name='srsf' value='" .esc_attr( $offset ) . "'/><input type='hidden' name='srrp' value='" . esc_attr( $limit_results ) . "'/><input type='hidden' name='srob' value='" . esc_attr( $order_by ) . "'/><input type='hidden' name='sro' value='" . esc_attr( $order ) . "'/>";
312
+ echo '</div>';
313
 
314
  } elseif ( $action == 'search' ) {
315
+ echo '<p>' . esc_html__( 'Sorry, no subscriptions match your search criteria.', 'subscribe-to-comments-reloaded' ) . '</p>';
316
  }
317
  ?>
318
 
options/stcr_management_page.php CHANGED
@@ -24,7 +24,7 @@ $options = array(
24
  );
25
 
26
  $options_readable = array(
27
- "manager_page" => __("Management URL",'subscribe-to-comments-reloaded')
28
  );
29
 
30
  // Update options
@@ -33,18 +33,18 @@ if ( isset( $_POST['options'] ) ) {
33
  if ( empty( $_POST['stcr_save_management_page_nonce'] ) ) {
34
  return;
35
  }
36
-
37
  if ( ! wp_verify_nonce( $_POST['stcr_save_management_page_nonce'], 'stcr_save_management_page_nonce' ) ) {
38
  return;
39
  }
40
-
41
  if ( ! current_user_can( 'manage_options' ) ) {
42
  return;
43
  }
44
 
45
  $faulty_fields = array();
46
-
47
- foreach ( $_POST['options'] as $option => $value )
48
  {
49
  if ( ! $wp_subscribe_reloaded->stcr->utils->stcr_update_menu_options( $option, $value, $options[$option] ) )
50
  {
@@ -59,18 +59,18 @@ if ( isset( $_POST['options'] ) ) {
59
  // Display an alert in the admin interface if something went wrong
60
  if ( sizeof( $faulty_fields ) == 0 ) {
61
  echo '<div class="updated"><p>';
62
- _e( 'Your settings have been successfully updated.', 'subscribe-to-comments-reloaded' );
63
- echo "</p></div>";
64
  } else {
65
  echo '<div class="error"><p>';
66
- _e( 'There was an error updating the following fields:', 'subscribe-to-comments-reloaded' );
67
- echo "<ul style='font-size: 0.8em;'>";
68
  foreach( $faulty_fields as $field )
69
  {
70
- echo ' <li>> ' . $options_readable[$field] . '</li>';
71
  }
72
- echo "</ul>";
73
- echo "</p></div>";
74
  }
75
  }
76
  wp_print_scripts( 'quicktags' );
@@ -85,25 +85,25 @@ wp_print_scripts( 'quicktags' );
85
  <form class="management_page_form" action="" method="post">
86
 
87
  <div class="form-group row">
88
- <label for="manager_page_enabled" class="col-sm-3 col-form-label text-right"><?php _e( 'Virtual Management Page', 'subscribe-to-comments-reloaded' ) ?></label>
89
  <div class="col-sm-7">
90
  <div class="switch">
91
  <input type="radio" class="switch-input" name="options[manager_page_enabled]"
92
  value="yes" id="manager_page_enabled-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'manager_page_enabled' ) == 'yes' ) ? ' checked' : ''; ?> />
93
  <label for="manager_page_enabled-yes" class="switch-label switch-label-off">
94
- <?php _e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
95
  </label>
96
  <input type="radio" class="switch-input" name="options[manager_page_enabled]" value="no" id="manager_page_enabled-no"
97
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'manager_page_enabled' ) == 'no' ) ? ' checked' : ''; ?> />
98
  <label for="manager_page_enabled-no" class="switch-label switch-label-on">
99
- <?php _e( 'No', 'subscribe-to-comments-reloaded' ) ?>
100
  </label>
101
  <span class="switch-selection"></span>
102
  </div>
103
  <div class="helpDescription subsOptDescriptions"
104
- data-content="<?php _e( "Disable the virtual management page if you need to create a <a href='https://github.com/stcr/subscribe-to-comments-reloaded/wiki/KB#create-a-real-management-page'>real page</a> to make your theme happy.", 'subscribe-to-comments-reloaded' ); ?>"
105
  data-placement="right"
106
- aria-label="<?php _e( "Disable the virtual management page if you need to create a <a href='https://github.com/stcr/subscribe-to-comments-reloaded/wiki/KB#create-a-real-management-page'>real page</a> to make your theme happy.", 'subscribe-to-comments-reloaded' ); ?>">
107
  <i class="fas fa-question-circle"></i>
108
  </div>
109
  </div>
@@ -111,16 +111,16 @@ wp_print_scripts( 'quicktags' );
111
 
112
  <div class="form-group row">
113
  <label for="manager_page_title" class="col-sm-3 col-form-label text-right">
114
- <?php _e( 'Page title', 'subscribe-to-comments-reloaded' ) ?></label>
115
  <div class="col-sm-7">
116
  <input type="text" name="options[manager_page_title]" id="manager_page_title"
117
  class="form-control form-control-input-8"
118
  value="<?php echo esc_attr( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'manager_page_title' ) ); ?>" size="20">
119
 
120
  <div class="helpDescription subsOptDescriptions"
121
- data-content="<?php _e( 'Title of the page your visitors will use to manage their subscriptions.', 'subscribe-to-comments-reloaded' ); ?>"
122
  data-placement="right"
123
- aria-label="<?php _e( 'Title of the page your visitors will use to manage their subscriptions.', 'subscribe-to-comments-reloaded' ); ?>">
124
  <i class="fas fa-question-circle"></i>
125
  </div>
126
  </div>
@@ -128,24 +128,24 @@ wp_print_scripts( 'quicktags' );
128
 
129
  <div class="form-group row">
130
  <label for="manager_page" class="col-sm-3 col-form-label text-right">
131
- <?php _e( 'Management URL', 'subscribe-to-comments-reloaded' ) ?></label>
132
  <div class="col-sm-7">
133
- <code><?php echo get_bloginfo( 'url' ) ?></code>
134
  <input type="text" name="options[manager_page]" id="manager_page"
135
  class="form-control form-control-input-8"
136
  value="<?php echo esc_attr( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'manager_page' ) ); ?>" style=" width: 60% !important;">
137
 
138
  <div class="helpDescription subsOptDescriptions"
139
- data-content="<?php _e( "The permalink for your management page (something like <code>/manage-subscriptions</code> or <code>/?page_id=345</code>). This page <b>does not</b> actually exist in the system, but its link must follow your permalink structure.", 'subscribe-to-comments-reloaded' ); ?>"
140
  data-placement="bottom"
141
- aria-label="<?php _e( "The permalink for your management page (something like <code>/manage-subscriptions</code> or <code>/?page_id=345</code>). This page <b>does not</b> actually exist in the system, but its link must follow your permalink structure.", 'subscribe-to-comments-reloaded' ); ?>">
142
  <i class="fas fa-question-circle"></i>
143
  </div>
144
 
145
  <?php
146
  if ( ( get_option( 'permalink_structure' ) == '' ) && ( strpos( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'manager_page' ), '?page_id=' ) === false ) ) {
147
  echo "<div class=\"alert alert-danger\" role=\"alert\">";
148
- echo '<strong>' . __( "Warning: it looks like the value you are using may be incompatible with your permalink structure", 'subscribe-to-comments-reloaded' ) . '</strong>';
149
  echo "</div>";
150
  }
151
  ?>
@@ -154,81 +154,81 @@ wp_print_scripts( 'quicktags' );
154
 
155
  <div class="form-group row">
156
  <label for="custom_header_meta" class="col-sm-3 col-form-label text-right">
157
- <?php _e( 'Custom HEAD meta', 'subscribe-to-comments-reloaded' ) ?></label>
158
  <div class="col-sm-7">
159
  <input type="text" name="options[custom_header_meta]" id="custom_header_meta"
160
  class="form-control form-control-input-8"
161
  value="<?php echo esc_attr( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'custom_header_meta' ) ); ?>" size="20">
162
 
163
  <div class="helpDescription subsOptDescriptions"
164
- data-content="<?php _e( 'Specify your custom HTML code to be added to the HEAD section of the page. Use <strong>single</strong> quotes for values.', 'subscribe-to-comments-reloaded' ); ?>"
165
  data-placement="right"
166
- aria-label="<?php _e( 'Specify your custom HTML code to be added to the HEAD section of the page. Use <strong>single</strong> quotes for values.', 'subscribe-to-comments-reloaded' ); ?>">
167
  <i class="fas fa-question-circle"></i>
168
  </div>
169
  </div>
170
  </div>
171
 
172
  <div class="form-group row">
173
- <label for="allow_subscribe_without_comment" class="col-sm-3 col-form-label text-right"><?php _e( 'Allow "Subscribe Without Comment"', 'subscribe-to-comments-reloaded' ) ?></label>
174
  <div class="col-sm-7">
175
  <div class="switch">
176
  <input type="radio" class="switch-input" name="options[allow_subscribe_without_comment]"
177
  value="yes" id="allow_subscribe_without_comment-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'allow_subscribe_without_comment', 'yes' ) == 'yes' ) ? ' checked' : ''; ?> />
178
  <label for="allow_subscribe_without_comment-yes" class="switch-label switch-label-off">
179
- <?php _e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
180
  </label>
181
  <input type="radio" class="switch-input" name="options[allow_subscribe_without_comment]" value="no" id="allow_subscribe_without_comment-no"
182
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'allow_subscribe_without_comment', 'yes' ) == 'no' ) ? ' checked' : ''; ?> />
183
  <label for="allow_subscribe_without_comment-no" class="switch-label switch-label-on">
184
- <?php _e( 'No', 'subscribe-to-comments-reloaded' ) ?>
185
  </label>
186
  <span class="switch-selection"></span>
187
  </div>
188
  <div class="helpDescription subsOptDescriptions"
189
- data-content="<?php _e( "Enable or disable the form that allows visitors to subscribe to comments notifications without commenting.", 'subscribe-to-comments-reloaded' ); ?>"
190
  data-placement="right"
191
- aria-label="<?php _e( "Enable or disable the form that allows visitors to subscribe to comments notifications without commenting.", 'subscribe-to-comments-reloaded' ); ?>">
192
  <i class="fas fa-question-circle"></i>
193
  </div>
194
  </div>
195
  </div>
196
 
197
  <div class="form-group row">
198
- <label for="allow_request_management_link" class="col-sm-3 col-form-label text-right"><?php _e( 'Allow "Request Management Link"', 'subscribe-to-comments-reloaded' ) ?></label>
199
  <div class="col-sm-7">
200
  <div class="switch">
201
  <input type="radio" class="switch-input" name="options[allow_request_management_link]"
202
  value="yes" id="allow_request_management_link-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'allow_request_management_link', 'yes' ) == 'yes' ) ? ' checked' : ''; ?> />
203
  <label for="allow_request_management_link-yes" class="switch-label switch-label-off">
204
- <?php _e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
205
  </label>
206
  <input type="radio" class="switch-input" name="options[allow_request_management_link]" value="no" id="allow_request_management_link-no"
207
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'allow_request_management_link', 'yes' ) == 'no' ) ? ' checked' : ''; ?> />
208
  <label for="allow_request_management_link-no" class="switch-label switch-label-on">
209
- <?php _e( 'No', 'subscribe-to-comments-reloaded' ) ?>
210
  </label>
211
  <span class="switch-selection"></span>
212
  </div>
213
  <div class="helpDescription subsOptDescriptions"
214
- data-content="<?php _e( "Enable or disable the form that allows visitors to to request a subscription management link.", 'subscribe-to-comments-reloaded' ); ?>"
215
  data-placement="right"
216
- aria-label="<?php _e( "Enable or disable the form that allows visitors to to request a subscription management link.", 'subscribe-to-comments-reloaded' ); ?>">
217
  <i class="fas fa-question-circle"></i>
218
  </div>
219
  </div>
220
  </div>
221
 
222
- <h3><?php _e( 'Messages', 'subscribe-to-comments-reloaded' ) ?></h3>
223
 
224
  <div class="form-group row">
225
  <label for="request_mgmt_link" class="col-sm-2 offset-sm-1 col-form-label" style="z-index: 9999;">
226
- <?php _e( 'Request link', 'subscribe-to-comments-reloaded' ) ?>
227
 
228
  <div class="helpDescription subsOptDescriptions"
229
- data-content="<?php _e( 'Text shown to those who request to manage their subscriptions.', 'subscribe-to-comments-reloaded' ); ?>"
230
  data-placement="right"
231
- aria-label="<?php _e( 'Text shown to those who request to manage their subscriptions.', 'subscribe-to-comments-reloaded' ); ?>">
232
  <i class="fas fa-question-circle"></i>
233
  </div>
234
 
@@ -250,12 +250,12 @@ wp_print_scripts( 'quicktags' );
250
 
251
  <div class="form-group row" style="display: none;">
252
  <label for="request_mgmt_link_thankyou" class="col-sm-3 offset-sm-1 col-form-label" style="z-index: 9999;">
253
- <?php _e( 'Request submitted', 'subscribe-to-comments-reloaded' ) ?>
254
 
255
  <div class="helpDescription subsOptDescriptions"
256
- data-content="<?php _e( 'Thank you note shown after the request here above has been processed. Allowed tags: [post_title], [post_permalink]', 'subscribe-to-comments-reloaded' ); ?>"
257
  data-placement="right"
258
- aria-label="<?php _e( 'Thank you note shown after the request here above has been processed. Allowed tags: [post_title], [post_permalink]', 'subscribe-to-comments-reloaded' ); ?>">
259
  <i class="fas fa-question-circle"></i>
260
  </div>
261
 
@@ -277,12 +277,12 @@ wp_print_scripts( 'quicktags' );
277
 
278
  <div class="form-group row">
279
  <label for="subscribe_without_commenting" class="col-sm-4 offset-sm-1 col-form-label" style="z-index: 9999;">
280
- <?php _e( 'Subscribe without commenting', 'subscribe-to-comments-reloaded' ) ?>
281
 
282
  <div class="helpDescription subsOptDescriptions"
283
- data-content="<?php _e( 'Text shown to those who want to subscribe without commenting. Allowed tags: [post_title], [post_permalink]', 'subscribe-to-comments-reloaded' ); ?>"
284
  data-placement="right"
285
- aria-label="<?php _e( 'Text shown to those who want to subscribe without commenting. Allowed tags: [post_title], [post_permalink]', 'subscribe-to-comments-reloaded' ); ?>">
286
  <i class="fas fa-question-circle"></i>
287
  </div>
288
 
@@ -304,12 +304,12 @@ wp_print_scripts( 'quicktags' );
304
 
305
  <div class="form-group row">
306
  <label for="subscription_confirmed" class="col-sm-4 offset-sm-1 col-form-label" style="z-index: 9999;">
307
- <?php _e( 'Subscription processed', 'subscribe-to-comments-reloaded' ) ?>
308
 
309
  <div class="helpDescription subsOptDescriptions"
310
- data-content="<?php _e( 'Thank you note shown after the subscription request has been processed (double check-in disabled). Allowed tags: [post_title], [post_permalink]', 'subscribe-to-comments-reloaded' ); ?>"
311
  data-placement="right"
312
- aria-label="<?php _e( 'Thank you note shown after the subscription request has been processed (double check-in disabled). Allowed tags: [post_title], [post_permalink]', 'subscribe-to-comments-reloaded' ); ?>">
313
  <i class="fas fa-question-circle"></i>
314
  </div>
315
 
@@ -331,12 +331,12 @@ wp_print_scripts( 'quicktags' );
331
 
332
  <div class="form-group row">
333
  <label for="subscription_confirmed_dci" class="col-sm-4 offset-sm-1 col-form-label" style="z-index: 9999;">
334
- <?php _e( 'Subscription processed (DCI)', 'subscribe-to-comments-reloaded' ) ?>
335
 
336
  <div class="helpDescription subsOptDescriptions"
337
- data-content="<?php _e( 'Thank you note shown after the subscription request has been processed (double check-in enabled). Allowed tags: [post_title], [post_permalink]', 'subscribe-to-comments-reloaded' ); ?>"
338
  data-placement="right"
339
- aria-label="<?php _e( 'Thank you note shown after the subscription request has been processed (double check-in enabled). Allowed tags: [post_title], [post_permalink]', 'subscribe-to-comments-reloaded' ); ?>">
340
  <i class="fas fa-question-circle"></i>
341
  </div>
342
 
@@ -358,12 +358,12 @@ wp_print_scripts( 'quicktags' );
358
 
359
  <div class="form-group row">
360
  <label for="author_text" class="col-sm-4 offset-sm-1 col-form-label" style="z-index: 9999;">
361
- <?php _e( 'Authors', 'subscribe-to-comments-reloaded' ) ?>
362
 
363
  <div class="helpDescription subsOptDescriptions"
364
- data-content="<?php _e( "Introductory text for the authors' management page.", 'subscribe-to-comments-reloaded' ); ?>"
365
  data-placement="right"
366
- aria-label="<?php _e( "Introductory text for the authors' management page.", 'subscribe-to-comments-reloaded' ); ?>">
367
  <i class="fas fa-question-circle"></i>
368
  </div>
369
 
@@ -385,12 +385,12 @@ wp_print_scripts( 'quicktags' );
385
 
386
  <div class="form-group row">
387
  <label for="user_text" class="col-sm-4 offset-sm-1 col-form-label" style="z-index: 9999;">
388
- <?php _e( 'Users', 'subscribe-to-comments-reloaded' ) ?>
389
 
390
  <div class="helpDescription subsOptDescriptions"
391
- data-content="<?php _e( "Introductory text for the users' management page.", 'subscribe-to-comments-reloaded' ); ?>"
392
  data-placement="right"
393
- aria-label="<?php _e( "Introductory text for the users' management page.", 'subscribe-to-comments-reloaded' ); ?>">
394
  <i class="fas fa-question-circle"></i>
395
  </div>
396
 
@@ -413,7 +413,7 @@ wp_print_scripts( 'quicktags' );
413
  <div class="form-group row">
414
  <div class="col-sm-9 offset-sm-1">
415
  <button type="submit" class="btn btn-primary subscribe-form-button" name="Submit">
416
- <?php _e( 'Save Changes', 'subscribe-to-comments-reloaded' ) ?>
417
  </button>
418
  </div>
419
  </div>
24
  );
25
 
26
  $options_readable = array(
27
+ "manager_page" => esc_html__("Management URL",'subscribe-to-comments-reloaded')
28
  );
29
 
30
  // Update options
33
  if ( empty( $_POST['stcr_save_management_page_nonce'] ) ) {
34
  return;
35
  }
36
+
37
  if ( ! wp_verify_nonce( $_POST['stcr_save_management_page_nonce'], 'stcr_save_management_page_nonce' ) ) {
38
  return;
39
  }
40
+
41
  if ( ! current_user_can( 'manage_options' ) ) {
42
  return;
43
  }
44
 
45
  $faulty_fields = array();
46
+ $subscribe_options = wp_unslash( $_POST['options'] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput
47
+ foreach ( $subscribe_options as $option => $value )
48
  {
49
  if ( ! $wp_subscribe_reloaded->stcr->utils->stcr_update_menu_options( $option, $value, $options[$option] ) )
50
  {
59
  // Display an alert in the admin interface if something went wrong
60
  if ( sizeof( $faulty_fields ) == 0 ) {
61
  echo '<div class="updated"><p>';
62
+ esc_html_e( 'Your settings have been successfully updated.', 'subscribe-to-comments-reloaded' );
63
+ echo '</p></div>';
64
  } else {
65
  echo '<div class="error"><p>';
66
+ esc_html_e( 'There was an error updating the following fields:', 'subscribe-to-comments-reloaded' );
67
+ echo '<ul style="font-size: 0.8em;">';
68
  foreach( $faulty_fields as $field )
69
  {
70
+ echo ' <li>> ' . esc_html( $options_readable[$field] ) . '</li>';
71
  }
72
+ echo '</ul>';
73
+ echo '</p></div>';
74
  }
75
  }
76
  wp_print_scripts( 'quicktags' );
85
  <form class="management_page_form" action="" method="post">
86
 
87
  <div class="form-group row">
88
+ <label for="manager_page_enabled" class="col-sm-3 col-form-label text-right"><?php esc_html_e( 'Virtual Management Page', 'subscribe-to-comments-reloaded' ) ?></label>
89
  <div class="col-sm-7">
90
  <div class="switch">
91
  <input type="radio" class="switch-input" name="options[manager_page_enabled]"
92
  value="yes" id="manager_page_enabled-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'manager_page_enabled' ) == 'yes' ) ? ' checked' : ''; ?> />
93
  <label for="manager_page_enabled-yes" class="switch-label switch-label-off">
94
+ <?php esc_html_e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
95
  </label>
96
  <input type="radio" class="switch-input" name="options[manager_page_enabled]" value="no" id="manager_page_enabled-no"
97
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'manager_page_enabled' ) == 'no' ) ? ' checked' : ''; ?> />
98
  <label for="manager_page_enabled-no" class="switch-label switch-label-on">
99
+ <?php esc_html_e( 'No', 'subscribe-to-comments-reloaded' ) ?>
100
  </label>
101
  <span class="switch-selection"></span>
102
  </div>
103
  <div class="helpDescription subsOptDescriptions"
104
+ data-content="<?php echo wp_kses( __( "Disable the virtual management page if you need to create a <a href='https://github.com/stcr/subscribe-to-comments-reloaded/wiki/KB#create-a-real-management-page'>real page</a> to make your theme happy.", 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ); ?>"
105
  data-placement="right"
106
+ aria-label="<?php echo wp_kses( __( "Disable the virtual management page if you need to create a <a href='https://github.com/stcr/subscribe-to-comments-reloaded/wiki/KB#create-a-real-management-page'>real page</a> to make your theme happy.", 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ); ?>">
107
  <i class="fas fa-question-circle"></i>
108
  </div>
109
  </div>
111
 
112
  <div class="form-group row">
113
  <label for="manager_page_title" class="col-sm-3 col-form-label text-right">
114
+ <?php esc_html_e( 'Page title', 'subscribe-to-comments-reloaded' ) ?></label>
115
  <div class="col-sm-7">
116
  <input type="text" name="options[manager_page_title]" id="manager_page_title"
117
  class="form-control form-control-input-8"
118
  value="<?php echo esc_attr( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'manager_page_title' ) ); ?>" size="20">
119
 
120
  <div class="helpDescription subsOptDescriptions"
121
+ data-content="<?php esc_attr_e( 'Title of the page your visitors will use to manage their subscriptions.', 'subscribe-to-comments-reloaded' ); ?>"
122
  data-placement="right"
123
+ aria-label="<?php esc_attr_e( 'Title of the page your visitors will use to manage their subscriptions.', 'subscribe-to-comments-reloaded' ); ?>">
124
  <i class="fas fa-question-circle"></i>
125
  </div>
126
  </div>
128
 
129
  <div class="form-group row">
130
  <label for="manager_page" class="col-sm-3 col-form-label text-right">
131
+ <?php esc_html_e( 'Management URL', 'subscribe-to-comments-reloaded' ) ?></label>
132
  <div class="col-sm-7">
133
+ <code><?php echo esc_url( get_bloginfo( 'url' ) ); ?></code>
134
  <input type="text" name="options[manager_page]" id="manager_page"
135
  class="form-control form-control-input-8"
136
  value="<?php echo esc_attr( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'manager_page' ) ); ?>" style=" width: 60% !important;">
137
 
138
  <div class="helpDescription subsOptDescriptions"
139
+ data-content="<?php echo wp_kses( __( "The permalink for your management page (something like <code>/manage-subscriptions</code> or <code>/?page_id=345</code>). This page <b>does not</b> actually exist in the system, but its link must follow your permalink structure.", 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ); ?>"
140
  data-placement="bottom"
141
+ aria-label="<?php echo wp_kses( __( "The permalink for your management page (something like <code>/manage-subscriptions</code> or <code>/?page_id=345</code>). This page <b>does not</b> actually exist in the system, but its link must follow your permalink structure.", 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ); ?>">
142
  <i class="fas fa-question-circle"></i>
143
  </div>
144
 
145
  <?php
146
  if ( ( get_option( 'permalink_structure' ) == '' ) && ( strpos( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'manager_page' ), '?page_id=' ) === false ) ) {
147
  echo "<div class=\"alert alert-danger\" role=\"alert\">";
148
+ echo '<strong>' . esc_html__( "Warning: it looks like the value you are using may be incompatible with your permalink structure", 'subscribe-to-comments-reloaded' ) . '</strong>';
149
  echo "</div>";
150
  }
151
  ?>
154
 
155
  <div class="form-group row">
156
  <label for="custom_header_meta" class="col-sm-3 col-form-label text-right">
157
+ <?php esc_html_e( 'Custom HEAD meta', 'subscribe-to-comments-reloaded' ) ?></label>
158
  <div class="col-sm-7">
159
  <input type="text" name="options[custom_header_meta]" id="custom_header_meta"
160
  class="form-control form-control-input-8"
161
  value="<?php echo esc_attr( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'custom_header_meta' ) ); ?>" size="20">
162
 
163
  <div class="helpDescription subsOptDescriptions"
164
+ data-content="<?php echo wp_kses( __( 'Specify your custom HTML code to be added to the HEAD section of the page. Use <strong>single</strong> quotes for values.', 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ); ?>"
165
  data-placement="right"
166
+ aria-label="<?php echo wp_kses( __( 'Specify your custom HTML code to be added to the HEAD section of the page. Use <strong>single</strong> quotes for values.', 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ); ?>">
167
  <i class="fas fa-question-circle"></i>
168
  </div>
169
  </div>
170
  </div>
171
 
172
  <div class="form-group row">
173
+ <label for="allow_subscribe_without_comment" class="col-sm-3 col-form-label text-right"><?php esc_html_e( 'Allow "Subscribe Without Comment"', 'subscribe-to-comments-reloaded' ) ?></label>
174
  <div class="col-sm-7">
175
  <div class="switch">
176
  <input type="radio" class="switch-input" name="options[allow_subscribe_without_comment]"
177
  value="yes" id="allow_subscribe_without_comment-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'allow_subscribe_without_comment', 'yes' ) == 'yes' ) ? ' checked' : ''; ?> />
178
  <label for="allow_subscribe_without_comment-yes" class="switch-label switch-label-off">
179
+ <?php esc_html_e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
180
  </label>
181
  <input type="radio" class="switch-input" name="options[allow_subscribe_without_comment]" value="no" id="allow_subscribe_without_comment-no"
182
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'allow_subscribe_without_comment', 'yes' ) == 'no' ) ? ' checked' : ''; ?> />
183
  <label for="allow_subscribe_without_comment-no" class="switch-label switch-label-on">
184
+ <?php esc_html_e( 'No', 'subscribe-to-comments-reloaded' ) ?>
185
  </label>
186
  <span class="switch-selection"></span>
187
  </div>
188
  <div class="helpDescription subsOptDescriptions"
189
+ data-content="<?php esc_attr_e( "Enable or disable the form that allows visitors to subscribe to comments notifications without commenting.", 'subscribe-to-comments-reloaded' ); ?>"
190
  data-placement="right"
191
+ aria-label="<?php esc_attr_e( "Enable or disable the form that allows visitors to subscribe to comments notifications without commenting.", 'subscribe-to-comments-reloaded' ); ?>">
192
  <i class="fas fa-question-circle"></i>
193
  </div>
194
  </div>
195
  </div>
196
 
197
  <div class="form-group row">
198
+ <label for="allow_request_management_link" class="col-sm-3 col-form-label text-right"><?php esc_html_e( 'Allow "Request Management Link"', 'subscribe-to-comments-reloaded' ) ?></label>
199
  <div class="col-sm-7">
200
  <div class="switch">
201
  <input type="radio" class="switch-input" name="options[allow_request_management_link]"
202
  value="yes" id="allow_request_management_link-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'allow_request_management_link', 'yes' ) == 'yes' ) ? ' checked' : ''; ?> />
203
  <label for="allow_request_management_link-yes" class="switch-label switch-label-off">
204
+ <?php esc_html_e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
205
  </label>
206
  <input type="radio" class="switch-input" name="options[allow_request_management_link]" value="no" id="allow_request_management_link-no"
207
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'allow_request_management_link', 'yes' ) == 'no' ) ? ' checked' : ''; ?> />
208
  <label for="allow_request_management_link-no" class="switch-label switch-label-on">
209
+ <?php esc_html_e( 'No', 'subscribe-to-comments-reloaded' ) ?>
210
  </label>
211
  <span class="switch-selection"></span>
212
  </div>
213
  <div class="helpDescription subsOptDescriptions"
214
+ data-content="<?php esc_attr_e( "Enable or disable the form that allows visitors to to request a subscription management link.", 'subscribe-to-comments-reloaded' ); ?>"
215
  data-placement="right"
216
+ aria-label="<?php esc_attr_e( "Enable or disable the form that allows visitors to to request a subscription management link.", 'subscribe-to-comments-reloaded' ); ?>">
217
  <i class="fas fa-question-circle"></i>
218
  </div>
219
  </div>
220
  </div>
221
 
222
+ <h3><?php esc_html_e( 'Messages', 'subscribe-to-comments-reloaded' ) ?></h3>
223
 
224
  <div class="form-group row">
225
  <label for="request_mgmt_link" class="col-sm-2 offset-sm-1 col-form-label" style="z-index: 9999;">
226
+ <?php esc_html_e( 'Request link', 'subscribe-to-comments-reloaded' ) ?>
227
 
228
  <div class="helpDescription subsOptDescriptions"
229
+ data-content="<?php esc_attr_e( 'Text shown to those who request to manage their subscriptions.', 'subscribe-to-comments-reloaded' ); ?>"
230
  data-placement="right"
231
+ aria-label="<?php esc_attr_e( 'Text shown to those who request to manage their subscriptions.', 'subscribe-to-comments-reloaded' ); ?>">
232
  <i class="fas fa-question-circle"></i>
233
  </div>
234
 
250
 
251
  <div class="form-group row" style="display: none;">
252
  <label for="request_mgmt_link_thankyou" class="col-sm-3 offset-sm-1 col-form-label" style="z-index: 9999;">
253
+ <?php esc_html_e( 'Request submitted', 'subscribe-to-comments-reloaded' ) ?>
254
 
255
  <div class="helpDescription subsOptDescriptions"
256
+ data-content="<?php esc_attr_e( 'Thank you note shown after the request here above has been processed. Allowed tags: [post_title], [post_permalink]', 'subscribe-to-comments-reloaded' ); ?>"
257
  data-placement="right"
258
+ aria-label="<?php esc_attr_e( 'Thank you note shown after the request here above has been processed. Allowed tags: [post_title], [post_permalink]', 'subscribe-to-comments-reloaded' ); ?>">
259
  <i class="fas fa-question-circle"></i>
260
  </div>
261
 
277
 
278
  <div class="form-group row">
279
  <label for="subscribe_without_commenting" class="col-sm-4 offset-sm-1 col-form-label" style="z-index: 9999;">
280
+ <?php esc_html_e( 'Subscribe without commenting', 'subscribe-to-comments-reloaded' ) ?>
281
 
282
  <div class="helpDescription subsOptDescriptions"
283
+ data-content="<?php esc_attr_e( 'Text shown to those who want to subscribe without commenting. Allowed tags: [post_title], [post_permalink]', 'subscribe-to-comments-reloaded' ); ?>"
284
  data-placement="right"
285
+ aria-label="<?php esc_attr_e( 'Text shown to those who want to subscribe without commenting. Allowed tags: [post_title], [post_permalink]', 'subscribe-to-comments-reloaded' ); ?>">
286
  <i class="fas fa-question-circle"></i>
287
  </div>
288
 
304
 
305
  <div class="form-group row">
306
  <label for="subscription_confirmed" class="col-sm-4 offset-sm-1 col-form-label" style="z-index: 9999;">
307
+ <?php esc_html_e( 'Subscription processed', 'subscribe-to-comments-reloaded' ) ?>
308
 
309
  <div class="helpDescription subsOptDescriptions"
310
+ data-content="<?php esc_attr_e( 'Thank you note shown after the subscription request has been processed (double check-in disabled). Allowed tags: [post_title], [post_permalink]', 'subscribe-to-comments-reloaded' ); ?>"
311
  data-placement="right"
312
+ aria-label="<?php esc_attr_e( 'Thank you note shown after the subscription request has been processed (double check-in disabled). Allowed tags: [post_title], [post_permalink]', 'subscribe-to-comments-reloaded' ); ?>">
313
  <i class="fas fa-question-circle"></i>
314
  </div>
315
 
331
 
332
  <div class="form-group row">
333
  <label for="subscription_confirmed_dci" class="col-sm-4 offset-sm-1 col-form-label" style="z-index: 9999;">
334
+ <?php esc_html_e( 'Subscription processed (DCI)', 'subscribe-to-comments-reloaded' ) ?>
335
 
336
  <div class="helpDescription subsOptDescriptions"
337
+ data-content="<?php esc_attr_e( 'Thank you note shown after the subscription request has been processed (double check-in enabled). Allowed tags: [post_title], [post_permalink]', 'subscribe-to-comments-reloaded' ); ?>"
338
  data-placement="right"
339
+ aria-label="<?php esc_attr_e( 'Thank you note shown after the subscription request has been processed (double check-in enabled). Allowed tags: [post_title], [post_permalink]', 'subscribe-to-comments-reloaded' ); ?>">
340
  <i class="fas fa-question-circle"></i>
341
  </div>
342
 
358
 
359
  <div class="form-group row">
360
  <label for="author_text" class="col-sm-4 offset-sm-1 col-form-label" style="z-index: 9999;">
361
+ <?php esc_html_e( 'Authors', 'subscribe-to-comments-reloaded' ) ?>
362
 
363
  <div class="helpDescription subsOptDescriptions"
364
+ data-content="<?php esc_attr_e( "Introductory text for the authors' management page.", 'subscribe-to-comments-reloaded' ); ?>"
365
  data-placement="right"
366
+ aria-label="<?php esc_attr_e( "Introductory text for the authors' management page.", 'subscribe-to-comments-reloaded' ); ?>">
367
  <i class="fas fa-question-circle"></i>
368
  </div>
369
 
385
 
386
  <div class="form-group row">
387
  <label for="user_text" class="col-sm-4 offset-sm-1 col-form-label" style="z-index: 9999;">
388
+ <?php esc_html_e( 'Users', 'subscribe-to-comments-reloaded' ) ?>
389
 
390
  <div class="helpDescription subsOptDescriptions"
391
+ data-content="<?php esc_attr_e( "Introductory text for the users' management page.", 'subscribe-to-comments-reloaded' ); ?>"
392
  data-placement="right"
393
+ aria-label="<?php esc_attr_e( "Introductory text for the users' management page.", 'subscribe-to-comments-reloaded' ); ?>">
394
  <i class="fas fa-question-circle"></i>
395
  </div>
396
 
413
  <div class="form-group row">
414
  <div class="col-sm-9 offset-sm-1">
415
  <button type="submit" class="btn btn-primary subscribe-form-button" name="Submit">
416
+ <?php esc_html_e( 'Save Changes', 'subscribe-to-comments-reloaded' ) ?>
417
  </button>
418
  </div>
419
  </div>
options/stcr_notifications.php CHANGED
@@ -27,18 +27,18 @@ if ( isset( $_POST['options'] ) ) {
27
  if ( empty( $_POST['stcr_save_notifications_nonce'] ) ) {
28
  return;
29
  }
30
-
31
  if ( ! wp_verify_nonce( $_POST['stcr_save_notifications_nonce'], 'stcr_save_notifications_nonce' ) ) {
32
  return;
33
  }
34
-
35
  if ( ! current_user_can( 'manage_options' ) ) {
36
  return;
37
  }
38
 
39
  $faulty_fields = array();
40
-
41
- foreach ( $_POST['options'] as $option => $value )
42
  {
43
 
44
  if ( $option === "notification_content" )
@@ -64,12 +64,12 @@ if ( isset( $_POST['options'] ) ) {
64
  // Display an alert in the admin interface if something went wrong
65
  echo '<div class="updated"><p>';
66
  if ( sizeof( $faulty_fields ) == 0 ) {
67
- _e( 'Your settings have been successfully updated.', 'subscribe-to-comments-reloaded' );
68
  } else {
69
- _e( 'There was an error updating the options.', 'subscribe-to-comments-reloaded' );
70
  // echo ' <strong>' . substr( $faulty_fields, 0, - 2 ) . '</strong>';
71
  }
72
- echo "</p></div>";
73
  }
74
  wp_print_scripts( 'quicktags' );
75
 
@@ -84,7 +84,7 @@ wp_print_scripts( 'quicktags' );
84
 
85
  <div class="form-group row">
86
  <label for="from_name" class="col-sm-3 col-form-label text-right">
87
- <?php _e( 'Sender email address', 'subscribe-to-comments-reloaded' ) ?></label>
88
  <div class="col-sm-7">
89
  <input type="text" name="options[from_name]" id="from_name"
90
  class="form-control form-control-input-8"
@@ -101,7 +101,7 @@ wp_print_scripts( 'quicktags' );
101
 
102
  <div class="form-group row">
103
  <label for="from_email" class="col-sm-3 col-form-label text-right">
104
- <?php _e( 'Sender email address', 'subscribe-to-comments-reloaded' ) ?></label>
105
  <div class="col-sm-7">
106
  <input type="text" name="options[from_email]" id="from_email"
107
  class="form-control form-control-input-8"
@@ -118,7 +118,7 @@ wp_print_scripts( 'quicktags' );
118
 
119
  <div class="form-group row">
120
  <label for="reply_to" class="col-sm-3 col-form-label text-right">
121
- <?php _e( 'Reply To', 'subscribe-to-comments-reloaded' ) ?></label>
122
  <div class="col-sm-7">
123
  <input type="text" name="options[reply_to]" id="reply_to"
124
  class="form-control form-control-input-8"
@@ -133,11 +133,11 @@ wp_print_scripts( 'quicktags' );
133
  </div>
134
  </div>
135
 
136
- <h3><?php _e( 'Messages', 'subscribe-to-comments-reloaded' ) ?></h3>
137
 
138
  <div class="form-group row">
139
  <label for="notification_subject" class="col-sm-3 col-form-label text-right">
140
- <?php _e( 'Notification subject', 'subscribe-to-comments-reloaded' ) ?></label>
141
  <div class="col-sm-7">
142
  <input type="text" name="options[notification_subject]" id="notification_subject"
143
  class="form-control form-control-input-8"
@@ -154,7 +154,7 @@ wp_print_scripts( 'quicktags' );
154
 
155
  <div class="form-group row">
156
  <label for="notification_content" class="col-sm-4 offset-sm-1 col-form-label" style="z-index: 9999;">
157
- <?php _e( 'Notification message', 'subscribe-to-comments-reloaded' ) ?>
158
 
159
  <div class="helpDescription subsOptDescriptions"
160
  data-content="<?php esc_attr_e( "Content of the notification email. Allowed tags: [post_title], [comment_permalink], [comment_author], [comment_content], [post_permalink], [manager_link], [comment_gravatar]<p style='color: #156dc7;'><strong>Note: To get a default template clear all the content and save the options.</strong></p>", 'subscribe-to-comments-reloaded' ); ?>"
@@ -185,7 +185,7 @@ wp_print_scripts( 'quicktags' );
185
 
186
  <div class="form-group row">
187
  <label for="double_check_subject" class="col-sm-3 col-form-label text-right">
188
- <?php _e( 'Double check subject', 'subscribe-to-comments-reloaded' ) ?></label>
189
  <div class="col-sm-7">
190
  <input type="text" name="options[double_check_subject]" id="double_check_subject"
191
  class="form-control form-control-input-8"
@@ -202,7 +202,7 @@ wp_print_scripts( 'quicktags' );
202
 
203
  <div class="form-group row">
204
  <label for="double_check_content" class="col-sm-3 offset-sm-1 col-form-label" style="z-index: 9999;">
205
- <?php _e( 'Double check message', 'subscribe-to-comments-reloaded' ) ?>
206
 
207
  <div class="helpDescription subsOptDescriptions"
208
  data-content="<?php esc_attr_e( "Content of the confirmation email. Allowed tags: [post_permalink], [confirm_link], [post_title], [manager_link]", 'subscribe-to-comments-reloaded' ); ?>"
@@ -229,7 +229,7 @@ wp_print_scripts( 'quicktags' );
229
 
230
  <div class="form-group row">
231
  <label for="management_subject" class="col-sm-3 col-form-label text-right">
232
- <?php _e( 'Management subject', 'subscribe-to-comments-reloaded' ) ?></label>
233
  <div class="col-sm-7">
234
  <input type="text" name="options[management_subject]" id="management_subject"
235
  class="form-control form-control-input-8"
@@ -249,12 +249,12 @@ wp_print_scripts( 'quicktags' );
249
  $management_page_message = $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'management_content' );
250
  if ( empty( $management_page_message ) ) { $management_page_message = ''; }
251
  if ( strpos( $management_page_message, '[manager_link]' ) ) {
252
- $disallowed_tags['manager_link'] = __( '[manager_link] tag only works for "Management Email message". It is a private link that takes to a management page and for security reasons has to be sent to the email address.', 'subscribe-to-comments-reloaded' );
253
  }
254
  ?>
255
  <div class="form-group row">
256
  <label for="management_content" class="col-sm-4 offset-sm-1 col-form-label" style="z-index: 9999;">
257
- <?php _e( 'Management Page message', 'subscribe-to-comments-reloaded' ) ?>
258
 
259
  <div class="helpDescription subsOptDescriptions"
260
  data-content="<?php esc_attr_e( "Content of the management Page message. Allowed tags: [blog_name].", 'subscribe-to-comments-reloaded' ); ?>"
@@ -269,7 +269,7 @@ wp_print_scripts( 'quicktags' );
269
  <?php if ( ! empty( $disallowed_tags ) ) : ?>
270
  <p class="notice notice-error" style="margin: 0;padding:8px;">
271
  <?php foreach ( $disallowed_tags as $disallowed_tag_id => $disallowed_tag_message ) : ?>
272
- <?php echo $disallowed_tag_message; ?>
273
  <?php endforeach; ?>
274
  </ul>
275
  </p>
@@ -290,7 +290,7 @@ wp_print_scripts( 'quicktags' );
290
 
291
  <div class="form-group row">
292
  <label for="management_email_content" class="col-sm-4 offset-sm-1 col-form-label" style="z-index: 9999;">
293
- <?php _e( 'Management Email message', 'subscribe-to-comments-reloaded' ) ?>
294
 
295
  <div class="helpDescription subsOptDescriptions"
296
  data-content="<?php esc_attr_e( "Content of the management email message. Allowed tags: [blog_name], [manager_link].", 'subscribe-to-comments-reloaded' ); ?>"
@@ -317,7 +317,7 @@ wp_print_scripts( 'quicktags' );
317
 
318
  <div class="form-group row">
319
  <label for="oneclick_text" class="col-sm-4 offset-sm-1 col-form-label" style="z-index: 9999;">
320
- <?php _e( 'One Click Unsubscribe', 'subscribe-to-comments-reloaded' ) ?>
321
 
322
  <div class="helpDescription subsOptDescriptions"
323
  data-content="<?php esc_attr_e( "Content of the One Click confirmation. Allowed tags: [post_title], [blog_name].", 'subscribe-to-comments-reloaded' ); ?>"
@@ -345,7 +345,7 @@ wp_print_scripts( 'quicktags' );
345
  <div class="form-group row">
346
  <div class="col-sm-9 offset-sm-1">
347
  <button type="submit" class="btn btn-primary subscribe-form-button" name="Submit">
348
- <?php _e( 'Save Changes', 'subscribe-to-comments-reloaded' ) ?>
349
  </button>
350
  </div>
351
  </div>
27
  if ( empty( $_POST['stcr_save_notifications_nonce'] ) ) {
28
  return;
29
  }
30
+
31
  if ( ! wp_verify_nonce( $_POST['stcr_save_notifications_nonce'], 'stcr_save_notifications_nonce' ) ) {
32
  return;
33
  }
34
+
35
  if ( ! current_user_can( 'manage_options' ) ) {
36
  return;
37
  }
38
 
39
  $faulty_fields = array();
40
+ $subscribe_options = wp_unslash( $_POST['options'] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput
41
+ foreach ( $subscribe_options as $option => $value )
42
  {
43
 
44
  if ( $option === "notification_content" )
64
  // Display an alert in the admin interface if something went wrong
65
  echo '<div class="updated"><p>';
66
  if ( sizeof( $faulty_fields ) == 0 ) {
67
+ esc_html_e( 'Your settings have been successfully updated.', 'subscribe-to-comments-reloaded' );
68
  } else {
69
+ esc_html_e( 'There was an error updating the options.', 'subscribe-to-comments-reloaded' );
70
  // echo ' <strong>' . substr( $faulty_fields, 0, - 2 ) . '</strong>';
71
  }
72
+ echo '</p></div>';
73
  }
74
  wp_print_scripts( 'quicktags' );
75
 
84
 
85
  <div class="form-group row">
86
  <label for="from_name" class="col-sm-3 col-form-label text-right">
87
+ <?php esc_html_e( 'Sender email address', 'subscribe-to-comments-reloaded' ) ?></label>
88
  <div class="col-sm-7">
89
  <input type="text" name="options[from_name]" id="from_name"
90
  class="form-control form-control-input-8"
101
 
102
  <div class="form-group row">
103
  <label for="from_email" class="col-sm-3 col-form-label text-right">
104
+ <?php esc_html_e( 'Sender email address', 'subscribe-to-comments-reloaded' ) ?></label>
105
  <div class="col-sm-7">
106
  <input type="text" name="options[from_email]" id="from_email"
107
  class="form-control form-control-input-8"
118
 
119
  <div class="form-group row">
120
  <label for="reply_to" class="col-sm-3 col-form-label text-right">
121
+ <?php esc_html_e( 'Reply To', 'subscribe-to-comments-reloaded' ) ?></label>
122
  <div class="col-sm-7">
123
  <input type="text" name="options[reply_to]" id="reply_to"
124
  class="form-control form-control-input-8"
133
  </div>
134
  </div>
135
 
136
+ <h3><?php esc_html_e( 'Messages', 'subscribe-to-comments-reloaded' ) ?></h3>
137
 
138
  <div class="form-group row">
139
  <label for="notification_subject" class="col-sm-3 col-form-label text-right">
140
+ <?php esc_html_e( 'Notification subject', 'subscribe-to-comments-reloaded' ) ?></label>
141
  <div class="col-sm-7">
142
  <input type="text" name="options[notification_subject]" id="notification_subject"
143
  class="form-control form-control-input-8"
154
 
155
  <div class="form-group row">
156
  <label for="notification_content" class="col-sm-4 offset-sm-1 col-form-label" style="z-index: 9999;">
157
+ <?php esc_html_e( 'Notification message', 'subscribe-to-comments-reloaded' ) ?>
158
 
159
  <div class="helpDescription subsOptDescriptions"
160
  data-content="<?php esc_attr_e( "Content of the notification email. Allowed tags: [post_title], [comment_permalink], [comment_author], [comment_content], [post_permalink], [manager_link], [comment_gravatar]<p style='color: #156dc7;'><strong>Note: To get a default template clear all the content and save the options.</strong></p>", 'subscribe-to-comments-reloaded' ); ?>"
185
 
186
  <div class="form-group row">
187
  <label for="double_check_subject" class="col-sm-3 col-form-label text-right">
188
+ <?php esc_html_e( 'Double check subject', 'subscribe-to-comments-reloaded' ) ?></label>
189
  <div class="col-sm-7">
190
  <input type="text" name="options[double_check_subject]" id="double_check_subject"
191
  class="form-control form-control-input-8"
202
 
203
  <div class="form-group row">
204
  <label for="double_check_content" class="col-sm-3 offset-sm-1 col-form-label" style="z-index: 9999;">
205
+ <?php esc_html_e( 'Double check message', 'subscribe-to-comments-reloaded' ) ?>
206
 
207
  <div class="helpDescription subsOptDescriptions"
208
  data-content="<?php esc_attr_e( "Content of the confirmation email. Allowed tags: [post_permalink], [confirm_link], [post_title], [manager_link]", 'subscribe-to-comments-reloaded' ); ?>"
229
 
230
  <div class="form-group row">
231
  <label for="management_subject" class="col-sm-3 col-form-label text-right">
232
+ <?php esc_html_e( 'Management subject', 'subscribe-to-comments-reloaded' ) ?></label>
233
  <div class="col-sm-7">
234
  <input type="text" name="options[management_subject]" id="management_subject"
235
  class="form-control form-control-input-8"
249
  $management_page_message = $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'management_content' );
250
  if ( empty( $management_page_message ) ) { $management_page_message = ''; }
251
  if ( strpos( $management_page_message, '[manager_link]' ) ) {
252
+ $disallowed_tags['manager_link'] = esc_html__( '[manager_link] tag only works for "Management Email message". It is a private link that takes to a management page and for security reasons has to be sent to the email address.', 'subscribe-to-comments-reloaded' );
253
  }
254
  ?>
255
  <div class="form-group row">
256
  <label for="management_content" class="col-sm-4 offset-sm-1 col-form-label" style="z-index: 9999;">
257
+ <?php esc_html_e( 'Management Page message', 'subscribe-to-comments-reloaded' ) ?>
258
 
259
  <div class="helpDescription subsOptDescriptions"
260
  data-content="<?php esc_attr_e( "Content of the management Page message. Allowed tags: [blog_name].", 'subscribe-to-comments-reloaded' ); ?>"
269
  <?php if ( ! empty( $disallowed_tags ) ) : ?>
270
  <p class="notice notice-error" style="margin: 0;padding:8px;">
271
  <?php foreach ( $disallowed_tags as $disallowed_tag_id => $disallowed_tag_message ) : ?>
272
+ <?php echo esc_html( $disallowed_tag_message ); ?>
273
  <?php endforeach; ?>
274
  </ul>
275
  </p>
290
 
291
  <div class="form-group row">
292
  <label for="management_email_content" class="col-sm-4 offset-sm-1 col-form-label" style="z-index: 9999;">
293
+ <?php esc_html_e( 'Management Email message', 'subscribe-to-comments-reloaded' ) ?>
294
 
295
  <div class="helpDescription subsOptDescriptions"
296
  data-content="<?php esc_attr_e( "Content of the management email message. Allowed tags: [blog_name], [manager_link].", 'subscribe-to-comments-reloaded' ); ?>"
317
 
318
  <div class="form-group row">
319
  <label for="oneclick_text" class="col-sm-4 offset-sm-1 col-form-label" style="z-index: 9999;">
320
+ <?php esc_html_e( 'One Click Unsubscribe', 'subscribe-to-comments-reloaded' ) ?>
321
 
322
  <div class="helpDescription subsOptDescriptions"
323
  data-content="<?php esc_attr_e( "Content of the One Click confirmation. Allowed tags: [post_title], [blog_name].", 'subscribe-to-comments-reloaded' ); ?>"
345
  <div class="form-group row">
346
  <div class="col-sm-9 offset-sm-1">
347
  <button type="submit" class="btn btn-primary subscribe-form-button" name="Submit">
348
+ <?php esc_html_e( 'Save Changes', 'subscribe-to-comments-reloaded' ) ?>
349
  </button>
350
  </div>
351
  </div>
options/stcr_options.php CHANGED
@@ -41,11 +41,11 @@ if ( array_key_exists( "generate_key", $_POST ) ) {
41
  if ( empty( $_POST['stcr_save_options_nonce'] ) ) {
42
  return;
43
  }
44
-
45
  if ( ! wp_verify_nonce( $_POST['stcr_save_options_nonce'], 'stcr_save_options_nonce' ) ) {
46
  return;
47
  }
48
-
49
  if ( ! current_user_can( 'manage_options' ) ) {
50
  return;
51
  }
@@ -54,24 +54,24 @@ if ( array_key_exists( "generate_key", $_POST ) ) {
54
  $wp_subscribe_reloaded->stcr->utils->stcr_update_menu_options( 'unique_key', $unique_key, 'text' );
55
 
56
  echo '<div class="updated"><p>';
57
- echo __( 'Your settings have been successfully updated.', 'subscribe-to-comments-reloaded' );
58
- echo "</p></div>";
59
 
60
  } elseif ( array_key_exists( "reset_all_options", $_POST ) ) {
61
 
62
  if ( empty( $_POST['stcr_save_options_nonce'] ) ) {
63
  return;
64
  }
65
-
66
  if ( ! wp_verify_nonce( $_POST['stcr_save_options_nonce'], 'stcr_save_options_nonce' ) ) {
67
  return;
68
  }
69
-
70
  if ( ! current_user_can( 'manage_options' ) ) {
71
  return;
72
  }
73
 
74
- $delete_subscriptions_selection = $_POST['options']['delete_options_subscriptions'];
75
  $deletion_result = $wp_subscribe_reloaded->stcr->utils->delete_all_settings( $delete_subscriptions_selection );
76
 
77
  if( $deletion_result )
@@ -84,21 +84,19 @@ if ( array_key_exists( "generate_key", $_POST ) ) {
84
  if ( empty( $_POST['stcr_save_options_nonce'] ) ) {
85
  return;
86
  }
87
-
88
  if ( ! wp_verify_nonce( $_POST['stcr_save_options_nonce'], 'stcr_save_options_nonce' ) ) {
89
  return;
90
  }
91
-
92
  if ( ! current_user_can( 'manage_options' ) ) {
93
  return;
94
  }
95
 
96
- $faulty_fields = array();
97
-
98
- foreach ( $_POST['options'] as $option => $value )
99
  {
100
- // echo $option . '<br>';
101
-
102
  if ( ! $wp_subscribe_reloaded->stcr->utils->stcr_update_menu_options( $option, $value, $options[$option] ) )
103
  {
104
  array_push( $faulty_fields, $option );
@@ -108,12 +106,12 @@ if ( array_key_exists( "generate_key", $_POST ) ) {
108
  // Display an alert in the admin interface if something went wrong
109
  echo '<div class="updated"><p>';
110
  if ( sizeof( $faulty_fields ) == 0 ) {
111
- _e( 'Your settings have been successfully updated.', 'subscribe-to-comments-reloaded' );
112
  } else {
113
- _e( 'There was an error updating the options.', 'subscribe-to-comments-reloaded' );
114
  // echo ' <strong>' . substr( $faulty_fields, 0, - 2 ) . '</strong>';
115
  }
116
- echo "</p></div>";
117
  }
118
  wp_print_scripts( 'quicktags' );
119
 
@@ -127,50 +125,50 @@ wp_print_scripts( 'quicktags' );
127
  <form action="" method="post">
128
 
129
  <div class="form-group row" style="margin-bottom: 0;">
130
- <label for="show_subscription_box" class="col-sm-3 col-form-label text-right"><?php _e( 'Show StCR checkbox / dropdown', 'subscribe-to-comments-reloaded' ) ?></label>
131
  <div class="col-sm-7">
132
  <div class="switch">
133
  <input type="radio" class="switch-input" name="options[show_subscription_box]"
134
  value="yes" id="show_subscription_box-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'show_subscription_box' ) == 'yes' ) ? ' checked' : ''; ?> />
135
  <label for="show_subscription_box-yes" class="switch-label switch-label-off">
136
- <?php _e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
137
  </label>
138
  <input type="radio" class="switch-input" name="options[show_subscription_box]" value="no" id="show_subscription_box-no"
139
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'show_subscription_box' ) == 'no' ) ? ' checked' : ''; ?> />
140
  <label for="show_subscription_box-no" class="switch-label switch-label-on">
141
- <?php _e( 'No', 'subscribe-to-comments-reloaded' ) ?>
142
  </label>
143
  <span class="switch-selection"></span>
144
  </div>
145
  <div class="helpDescription subsOptDescriptions"
146
- data-content="<?php _e( "This option will disable the StCR checkbox or dropdown in your comment form. You should leave it to Yes always.", 'subscribe-to-comments-reloaded' ); ?>"
147
  data-placement="right"
148
- aria-label="<?php _e( "This option will disable the StCR checkbox or dropdown in your comment form. You should leave it to Yes always.", 'subscribe-to-comments-reloaded' ); ?>">
149
  <i class="fas fa-question-circle"></i>
150
  </div>
151
  </div>
152
  </div>
153
 
154
  <div class="form-group row">
155
- <label for="safely_uninstall" class="col-sm-3 col-form-label text-right"><?php _e( 'Safely Uninstall', 'subscribe-to-comments-reloaded' ) ?></label>
156
  <div class="col-sm-7">
157
  <div class="switch">
158
  <input type="radio" class="switch-input" name="options[safely_uninstall]"
159
  value="yes" id="safely_uninstall-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'safely_uninstall' ) == 'yes' ) ? ' checked' : ''; ?> />
160
  <label for="safely_uninstall-yes" class="switch-label switch-label-off">
161
- <?php _e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
162
  </label>
163
  <input type="radio" class="switch-input" name="options[safely_uninstall]" value="no" id="safely_uninstall-no"
164
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'safely_uninstall' ) == 'no' ) ? ' checked' : ''; ?> />
165
  <label for="safely_uninstall-no" class="switch-label switch-label-on">
166
- <?php _e( 'No', 'subscribe-to-comments-reloaded' ) ?>
167
  </label>
168
  <span class="switch-selection"></span>
169
  </div>
170
  <div class="helpDescription subsOptDescriptions"
171
- data-content="<?php _e( "This option will allow you to delete the plugin with WordPress without loosing your subscribers. Any database table and plugin options are wipeout.", 'subscribe-to-comments-reloaded' ); ?>"
172
  data-placement="right"
173
- aria-label="<?php _e( "This option will allow you to delete the plugin with WordPress without loosing your subscribers. Any database table and plugin options are wipeout.", 'subscribe-to-comments-reloaded' ); ?>">
174
  <i class="fas fa-question-circle"></i>
175
  </div>
176
  </div>
@@ -178,16 +176,16 @@ wp_print_scripts( 'quicktags' );
178
 
179
  <div class="form-group row">
180
  <label for="purge_days" class="col-sm-3 col-form-label text-right">
181
- <?php _e( 'Autopurge requests', 'subscribe-to-comments-reloaded' ) ?></label>
182
  <div class="col-sm-7">
183
  <input type="number" name="options[purge_days]" id="purge_days"
184
  class="form-control form-control-input-3"
185
  value="<?php echo esc_attr( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'purge_days' ) ); ?>" size="20">
186
 
187
  <div class="helpDescription subsOptDescriptions"
188
- data-content="<?php _e( "Delete pending subscriptions (not confirmed) after X days. Zero disables this feature.", 'subscribe-to-comments-reloaded' ); ?>"
189
  data-placement="right"
190
- aria-label="<?php _e( "Delete pending subscriptions (not confirmed) after X days. Zero disables this feature.", 'subscribe-to-comments-reloaded' ); ?>">
191
  <i class="fas fa-question-circle"></i>
192
  </div>
193
  </div>
@@ -195,41 +193,41 @@ wp_print_scripts( 'quicktags' );
195
 
196
  <div class="form-group row">
197
  <label for="date_format" class="col-sm-3 col-form-label text-right">
198
- <?php _e( 'Date Format', 'subscribe-to-comments-reloaded' ) ?></label>
199
  <div class="col-sm-7">
200
  <input type="text" name="options[date_format]" id="date_format"
201
  class="form-control form-control-input-3"
202
  value="<?php echo esc_attr( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'date_format' ) ); ?>" size="20">
203
 
204
  <div class="helpDescription subsOptDescriptions"
205
- data-content="<?php _e( "Date format that will be display on the management page. Use <a href='https://secure.php.net/manual/en/function.date.php#refsect1-function.date-parameters' target='_blank'>PHP Date Format</a>", 'subscribe-to-comments-reloaded' ); ?>"
206
  data-placement="right"
207
- aria-label="<?php _e( "Date format that will be display on the management page. Use <a href='https://secure.php.net/manual/en/function.date.php#refsect1-function.date-parameters' target='_blank'>PHP Date Format</a>", 'subscribe-to-comments-reloaded' ); ?>">
208
  <i class="fas fa-question-circle"></i>
209
  </div>
210
  </div>
211
  </div>
212
 
213
  <div class="form-group row">
214
- <label for="stcr_position" class="col-sm-3 col-form-label text-right"><?php _e( 'StCR Position', 'subscribe-to-comments-reloaded' ) ?></label>
215
  <div class="col-sm-7">
216
  <div class="switch">
217
  <input type="radio" class="switch-input" name="options[stcr_position]"
218
  value="yes" id="stcr_position-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'stcr_position' ) == 'yes' ) ? ' checked' : ''; ?> />
219
  <label for="stcr_position-yes" class="switch-label switch-label-off">
220
- <?php _e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
221
  </label>
222
  <input type="radio" class="switch-input" name="options[stcr_position]" value="no" id="stcr_position-no"
223
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'stcr_position' ) == 'no' ) ? ' checked' : ''; ?> />
224
  <label for="stcr_position-no" class="switch-label switch-label-on">
225
- <?php _e( 'No', 'subscribe-to-comments-reloaded' ) ?>
226
  </label>
227
  <span class="switch-selection"></span>
228
  </div>
229
  <div class="helpDescription subsOptDescriptions"
230
- data-content="<?php _e( "If this option is enable the subscription box will be above the submit button in your comment form. Use this when your theme is outdated and using the incorrect WordPress Hooks and the checkbox is not displayed.", 'subscribe-to-comments-reloaded' ); ?>"
231
  data-placement="right"
232
- aria-label="<?php _e( "If this option is enable the subscription box will be above the submit button in your comment form. Use this when your theme is outdated and using the incorrect WordPress Hooks and the checkbox is not displayed.", 'subscribe-to-comments-reloaded' ); ?>">
233
  <i class="fas fa-question-circle"></i>
234
  </div>
235
  </div>
@@ -237,26 +235,26 @@ wp_print_scripts( 'quicktags' );
237
 
238
  <div class="form-group row">
239
  <label for="enable_double_check" class="col-sm-3 col-form-label text-right">
240
- <?php _e( 'Enable double check', 'subscribe-to-comments-reloaded' ) ?>
241
  </label>
242
  <div class="col-sm-7">
243
  <div class="switch">
244
  <input type="radio" class="switch-input" name="options[enable_double_check]"
245
  value="yes" id="enable_double_check-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_double_check' ) == 'yes' ) ? ' checked' : ''; ?> />
246
  <label for="enable_double_check-yes" class="switch-label switch-label-off">
247
- <?php _e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
248
  </label>
249
  <input type="radio" class="switch-input" name="options[enable_double_check]" value="no" id="enable_double_check-no"
250
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_double_check' ) == 'no' ) ? ' checked' : ''; ?> />
251
  <label for="enable_double_check-no" class="switch-label switch-label-on">
252
- <?php _e( 'No', 'subscribe-to-comments-reloaded' ) ?>
253
  </label>
254
  <span class="switch-selection"></span>
255
  </div>
256
  <div class="helpDescription subsOptDescriptions"
257
- data-content="<?php _e( "Send a notification email to confirm the subscription (to avoid addresses misuse).", 'subscribe-to-comments-reloaded' ); ?>"
258
  data-placement="right"
259
- aria-label="<?php _e( "Send a notification email to confirm the subscription (to avoid addresses misuse).", 'subscribe-to-comments-reloaded' ); ?>">
260
  <i class="fas fa-question-circle"></i>
261
  </div>
262
  </div>
@@ -264,26 +262,26 @@ wp_print_scripts( 'quicktags' );
264
 
265
  <div class="form-group row">
266
  <label for="notify_authors" class="col-sm-3 col-form-label text-right">
267
- <?php _e( 'Subscribe authors', 'subscribe-to-comments-reloaded' ) ?>
268
  </label>
269
  <div class="col-sm-7">
270
  <div class="switch">
271
  <input type="radio" class="switch-input" name="options[notify_authors]"
272
  value="yes" id="notify_authors-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'notify_authors' ) == 'yes' ) ? ' checked' : ''; ?> />
273
  <label for="notify_authors-yes" class="switch-label switch-label-off">
274
- <?php _e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
275
  </label>
276
  <input type="radio" class="switch-input" name="options[notify_authors]" value="no" id="notify_authors-no"
277
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'notify_authors' ) == 'no' ) ? ' checked' : ''; ?> />
278
  <label for="notify_authors-no" class="switch-label switch-label-on">
279
- <?php _e( 'No', 'subscribe-to-comments-reloaded' ) ?>
280
  </label>
281
  <span class="switch-selection"></span>
282
  </div>
283
  <div class="helpDescription subsOptDescriptions"
284
- data-content="<?php _e( "Automatically subscribe authors to their own articles (not retroactive).", 'subscribe-to-comments-reloaded' ); ?>"
285
  data-placement="right"
286
- aria-label="<?php _e( "Automatically subscribe authors to their own articles (not retroactive).", 'subscribe-to-comments-reloaded' ); ?>">
287
  <i class="fas fa-question-circle"></i>
288
  </div>
289
  </div>
@@ -291,26 +289,26 @@ wp_print_scripts( 'quicktags' );
291
 
292
  <div class="form-group row">
293
  <label for="enable_html_emails" class="col-sm-3 col-form-label text-right">
294
- <?php _e( 'Enable HTML emails', 'subscribe-to-comments-reloaded' ) ?>
295
  </label>
296
  <div class="col-sm-7">
297
  <div class="switch">
298
  <input type="radio" class="switch-input" name="options[enable_html_emails]"
299
  value="yes" id="enable_html_emails-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_html_emails' ) == 'yes' ) ? ' checked' : ''; ?> />
300
  <label for="enable_html_emails-yes" class="switch-label switch-label-off">
301
- <?php _e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
302
  </label>
303
  <input type="radio" class="switch-input" name="options[enable_html_emails]" value="no" id="enable_html_emails-no"
304
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_html_emails' ) == 'no' ) ? ' checked' : ''; ?> />
305
  <label for="enable_html_emails-no" class="switch-label switch-label-on">
306
- <?php _e( 'No', 'subscribe-to-comments-reloaded' ) ?>
307
  </label>
308
  <span class="switch-selection"></span>
309
  </div>
310
  <div class="helpDescription subsOptDescriptions"
311
- data-content="<?php _e( "If enabled, will send email messages with content-type = text/html instead of text/plain", 'subscribe-to-comments-reloaded' ); ?>"
312
  data-placement="right"
313
- aria-label="<?php _e( "If enabled, will send email messages with content-type = text/html instead of text/plain", 'subscribe-to-comments-reloaded' ); ?>">
314
  <i class="fas fa-question-circle"></i>
315
  </div>
316
  </div>
@@ -318,26 +316,26 @@ wp_print_scripts( 'quicktags' );
318
 
319
  <div class="form-group row">
320
  <label for="process_trackbacks" class="col-sm-3 col-form-label text-right">
321
- <?php _e( 'Process trackbacks', 'subscribe-to-comments-reloaded' ) ?>
322
  </label>
323
  <div class="col-sm-7">
324
  <div class="switch">
325
  <input type="radio" class="switch-input" name="options[process_trackbacks]"
326
  value="yes" id="process_trackbacks-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'process_trackbacks' ) == 'yes' ) ? ' checked' : ''; ?> />
327
  <label for="process_trackbacks-yes" class="switch-label switch-label-off">
328
- <?php _e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
329
  </label>
330
  <input type="radio" class="switch-input" name="options[process_trackbacks]" value="no" id="process_trackbacks-no"
331
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'process_trackbacks' ) == 'no' ) ? ' checked' : ''; ?> />
332
  <label for="process_trackbacks-no" class="switch-label switch-label-on">
333
- <?php _e( 'No', 'subscribe-to-comments-reloaded' ) ?>
334
  </label>
335
  <span class="switch-selection"></span>
336
  </div>
337
  <div class="helpDescription subsOptDescriptions"
338
- data-content="<?php _e( "Notify users when a new trackback or pingback is added to the discussion.", 'subscribe-to-comments-reloaded' ); ?>"
339
  data-placement="right"
340
- aria-label="<?php _e( "Notify users when a new trackback or pingback is added to the discussion.", 'subscribe-to-comments-reloaded' ); ?>">
341
  <i class="fas fa-question-circle"></i>
342
  </div>
343
  </div>
@@ -345,26 +343,26 @@ wp_print_scripts( 'quicktags' );
345
 
346
  <div class="form-group row">
347
  <label for="enable_admin_messages" class="col-sm-3 col-form-label text-right">
348
- <?php _e( 'Track all subscriptions', 'subscribe-to-comments-reloaded' ) ?>
349
  </label>
350
  <div class="col-sm-7">
351
  <div class="switch">
352
  <input type="radio" class="switch-input" name="options[enable_admin_messages]"
353
  value="yes" id="enable_admin_messages-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_admin_messages' ) == 'yes' ) ? ' checked' : ''; ?> />
354
  <label for="enable_admin_messages-yes" class="switch-label switch-label-off">
355
- <?php _e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
356
  </label>
357
  <input type="radio" class="switch-input" name="options[enable_admin_messages]" value="no" id="enable_admin_messages-no"
358
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_admin_messages' ) == 'no' ) ? ' checked' : ''; ?> />
359
  <label for="enable_admin_messages-no" class="switch-label switch-label-on">
360
- <?php _e( 'No', 'subscribe-to-comments-reloaded' ) ?>
361
  </label>
362
  <span class="switch-selection"></span>
363
  </div>
364
  <div class="helpDescription subsOptDescriptions"
365
- data-content="<?php _e( "Notify the administrator when users subscribe without commenting.", 'subscribe-to-comments-reloaded' ); ?>"
366
  data-placement="right"
367
- aria-label="<?php _e( "Notify the administrator when users subscribe without commenting.", 'subscribe-to-comments-reloaded' ); ?>">
368
  <i class="fas fa-question-circle"></i>
369
  </div>
370
  </div>
@@ -372,26 +370,26 @@ wp_print_scripts( 'quicktags' );
372
 
373
  <div class="form-group row">
374
  <label for="admin_subscribe" class="col-sm-3 col-form-label text-right">
375
- <?php _e( 'Let Admin Subscribe', 'subscribe-to-comments-reloaded' ) ?>
376
  </label>
377
  <div class="col-sm-7">
378
  <div class="switch">
379
  <input type="radio" class="switch-input" name="options[admin_subscribe]"
380
  value="yes" id="admin_subscribe-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'admin_subscribe' ) == 'yes' ) ? ' checked' : ''; ?> />
381
  <label for="admin_subscribe-yes" class="switch-label switch-label-off">
382
- <?php _e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
383
  </label>
384
  <input type="radio" class="switch-input" name="options[admin_subscribe]" value="no" id="admin_subscribe-no"
385
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'admin_subscribe' ) == 'no' ) ? ' checked' : ''; ?> />
386
  <label for="admin_subscribe-no" class="switch-label switch-label-on">
387
- <?php _e( 'No', 'subscribe-to-comments-reloaded' ) ?>
388
  </label>
389
  <span class="switch-selection"></span>
390
  </div>
391
  <div class="helpDescription subsOptDescriptions"
392
- data-content="<?php _e( "Let the administrator subscribe to comments when logged in.", 'subscribe-to-comments-reloaded' ); ?>"
393
  data-placement="right"
394
- aria-label="<?php _e( "Let the administrator subscribe to comments when logged in.", 'subscribe-to-comments-reloaded' ); ?>">
395
  <i class="fas fa-question-circle"></i>
396
  </div>
397
  </div>
@@ -399,26 +397,26 @@ wp_print_scripts( 'quicktags' );
399
 
400
  <div class="form-group row" style="margin-bottom: 0;">
401
  <label for="admin_bcc" class="col-sm-3 col-form-label text-right">
402
- <?php _e( 'BCC admin on Notifications', 'subscribe-to-comments-reloaded' ) ?>
403
  </label>
404
  <div class="col-sm-7">
405
  <div class="switch">
406
  <input type="radio" class="switch-input" name="options[admin_bcc]"
407
  value="yes" id="admin_bcc-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'admin_bcc' ) == 'yes' ) ? ' checked' : ''; ?> />
408
  <label for="admin_bcc-yes" class="switch-label switch-label-off">
409
- <?php _e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
410
  </label>
411
  <input type="radio" class="switch-input" name="options[admin_bcc]" value="no" id="admin_bcc-no"
412
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'admin_bcc' ) == 'no' ) ? ' checked' : ''; ?> />
413
  <label for="admin_bcc-no" class="switch-label switch-label-on">
414
- <?php _e( 'No', 'subscribe-to-comments-reloaded' ) ?>
415
  </label>
416
  <span class="switch-selection"></span>
417
  </div>
418
  <div class="helpDescription subsOptDescriptions"
419
- data-content="<?php _e( "Send a copy of all Notifications to the administrator.", 'subscribe-to-comments-reloaded' ); ?>"
420
  data-placement="right"
421
- aria-label="<?php _e( "Send a copy of all Notifications to the administrator.", 'subscribe-to-comments-reloaded' ); ?>">
422
  <i class="fas fa-question-circle"></i>
423
  </div>
424
  </div>
@@ -426,26 +424,26 @@ wp_print_scripts( 'quicktags' );
426
 
427
  <div class="form-group row">
428
  <label for="enable_font_awesome" class="col-sm-3 col-form-label text-right">
429
- <?php _e( 'Enable Font Awesome', 'subscribe-to-comments-reloaded' ) ?>
430
  </label>
431
  <div class="col-sm-7">
432
  <div class="switch">
433
  <input type="radio" class="switch-input" name="options[enable_font_awesome]"
434
  value="yes" id="enable_font_awesome-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_font_awesome' ) == 'yes' ) ? ' checked' : ''; ?> />
435
  <label for="enable_font_awesome-yes" class="switch-label switch-label-off">
436
- <?php _e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
437
  </label>
438
  <input type="radio" class="switch-input" name="options[enable_font_awesome]" value="no" id="enable_font_awesome-no"
439
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_font_awesome' ) == 'no' ) ? ' checked' : ''; ?> />
440
  <label for="enable_font_awesome-no" class="switch-label switch-label-on">
441
- <?php _e( 'No', 'subscribe-to-comments-reloaded' ) ?>
442
  </label>
443
  <span class="switch-selection"></span>
444
  </div>
445
  <div class="helpDescription subsOptDescriptions"
446
- data-content="<?php _e( "Let you control the inclusion of the Font Awesome into your site. Disable if your theme already add this into your site.", 'subscribe-to-comments-reloaded' ); ?>"
447
  data-placement="right"
448
- aria-label="<?php _e( "Let you control the inclusion of the Font Awesome into your site. Disable if your theme already add this into your site.", 'subscribe-to-comments-reloaded' ); ?>">
449
  <i class="fas fa-question-circle"></i>
450
  </div>
451
  </div>
@@ -479,7 +477,7 @@ wp_print_scripts( 'quicktags' );
479
  }
480
  ?>
481
  <div class="form-check pl-0">
482
- <input type="checkbox" id="<?php echo esc_attr( $post_type ); ?>" name="options[post_type_supports][]" value="<?php echo esc_attr( $post_type ) ?>" <?php echo $checked; ?> />
483
 
484
  <label for="<?php echo esc_attr( $post_type ); ?>">
485
  <?php echo esc_html( get_post_type_object( $post_type )->label ); ?>
@@ -491,9 +489,9 @@ wp_print_scripts( 'quicktags' );
491
  </div>
492
 
493
  <div class="helpDescription subsOptDescriptions ml-0"
494
- data-content="<?php _e( "Enable for these specific post types only.", 'subscribe-to-comments-reloaded' ); ?>"
495
  data-placement="right"
496
- aria-label="<?php _e( "Enable for these specific post types only.", 'subscribe-to-comments-reloaded' ); ?>">
497
  <i class="fas fa-question-circle"></i>
498
  </div>
499
  </div>
@@ -501,26 +499,26 @@ wp_print_scripts( 'quicktags' );
501
 
502
  <div class="form-group row">
503
  <label for="only_for_logged_in" class="col-sm-3 col-form-label text-right">
504
- <?php _e( 'Enable only for logged in users', 'subscribe-to-comments-reloaded' ) ?>
505
  </label>
506
  <div class="col-sm-7">
507
  <div class="switch">
508
  <input type="radio" class="switch-input" name="options[only_for_logged_in]"
509
  value="yes" id="only_for_logged_in-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'only_for_logged_in', 'no' ) == 'yes' ) ? ' checked' : ''; ?> />
510
  <label for="only_for_logged_in-yes" class="switch-label switch-label-off">
511
- <?php _e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
512
  </label>
513
  <input type="radio" class="switch-input" name="options[only_for_logged_in]" value="no" id="only_for_logged_in-no"
514
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'only_for_logged_in', 'no' ) == 'no' ) ? ' checked' : ''; ?> />
515
  <label for="only_for_logged_in-no" class="switch-label switch-label-on">
516
- <?php _e( 'No', 'subscribe-to-comments-reloaded' ) ?>
517
  </label>
518
  <span class="switch-selection"></span>
519
  </div>
520
  <div class="helpDescription subsOptDescriptions"
521
- data-content="<?php _e( "Enable subscription only for logged in users.", 'subscribe-to-comments-reloaded' ); ?>"
522
  data-placement="right"
523
- aria-label="<?php _e( "Enable subscription only for logged in users.", 'subscribe-to-comments-reloaded' ); ?>">
524
  <i class="fas fa-question-circle"></i>
525
  </div>
526
  </div>
@@ -528,26 +526,26 @@ wp_print_scripts( 'quicktags' );
528
 
529
  <div class="form-group row">
530
  <label for="use_cookies" class="col-sm-3 col-form-label text-right">
531
- <?php _e( 'Enable cookies', 'subscribe-to-comments-reloaded' ) ?>
532
  </label>
533
  <div class="col-sm-7">
534
  <div class="switch">
535
  <input type="radio" class="switch-input" name="options[use_cookies]"
536
  value="yes" id="use_cookies-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'use_cookies', 'yes' ) == 'yes' ) ? ' checked' : ''; ?> />
537
  <label for="use_cookies-yes" class="switch-label switch-label-off">
538
- <?php _e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
539
  </label>
540
  <input type="radio" class="switch-input" name="options[use_cookies]" value="no" id="use_cookies-no"
541
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'use_cookies', 'no' ) == 'no' ) ? ' checked' : ''; ?> />
542
  <label for="use_cookies-no" class="switch-label switch-label-on">
543
- <?php _e( 'No', 'subscribe-to-comments-reloaded' ) ?>
544
  </label>
545
  <span class="switch-selection"></span>
546
  </div>
547
  <div class="helpDescription subsOptDescriptions"
548
- data-content="<?php _e( "Remembers the email address to prepopulate StCR forms.", 'subscribe-to-comments-reloaded' ); ?>"
549
  data-placement="right"
550
- aria-label="<?php _e( "Remembers the email address to prepopulate StCR forms.", 'subscribe-to-comments-reloaded' ); ?>">
551
  <i class="fas fa-question-circle"></i>
552
  </div>
553
  </div>
@@ -555,26 +553,26 @@ wp_print_scripts( 'quicktags' );
555
 
556
  <div class="form-group row">
557
  <label for="use_challenge_question" class="col-sm-3 col-form-label text-right">
558
- <?php _e( 'Enable challenge question', 'subscribe-to-comments-reloaded' ) ?>
559
  </label>
560
  <div class="col-sm-7">
561
  <div class="switch">
562
  <input type="radio" class="switch-input" name="options[use_challenge_question]"
563
  value="yes" id="use_challenge_question-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'use_challenge_question', 'no' ) == 'yes' ) ? ' checked' : ''; ?> />
564
  <label for="use_challenge_question-yes" class="switch-label switch-label-off">
565
- <?php _e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
566
  </label>
567
  <input type="radio" class="switch-input" name="options[use_challenge_question]" value="no" id="use_challenge_question-no"
568
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'use_challenge_question', 'no' ) == 'no' ) ? ' checked' : ''; ?> />
569
  <label for="use_challenge_question-no" class="switch-label switch-label-on">
570
- <?php _e( 'No', 'subscribe-to-comments-reloaded' ) ?>
571
  </label>
572
  <span class="switch-selection"></span>
573
  </div>
574
  <div class="helpDescription subsOptDescriptions"
575
- data-content="<?php _e( "Enables input for challenge question/answer on the subscription form.", 'subscribe-to-comments-reloaded' ); ?>"
576
  data-placement="right"
577
- aria-label="<?php _e( "Enables input for challenge question/answer on the subscription form.", 'subscribe-to-comments-reloaded' ); ?>">
578
  <i class="fas fa-question-circle"></i>
579
  </div>
580
  </div>
@@ -582,16 +580,16 @@ wp_print_scripts( 'quicktags' );
582
 
583
  <div class="form-group row">
584
  <label for="challenge_question" class="col-sm-3 col-form-label text-right">
585
- <?php _e( 'Challenge question', 'subscribe-to-comments-reloaded' ) ?></label>
586
  <div class="col-sm-7">
587
  <input type="text" name="options[challenge_question]" id="challenge_question"
588
  class="form-control form-control-input-3"
589
  value="<?php echo esc_attr( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'challenge_question', 'What is 1 + 2?' ) ); ?>">
590
 
591
  <div class="helpDescription subsOptDescriptions"
592
- data-content="<?php _e( "The question shown to visitor when subscribing without commenting or when requesting a subscription management link.", 'subscribe-to-comments-reloaded' ); ?>"
593
  data-placement="right"
594
- aria-label="<?php _e( "The question shown to visitor when subscribing without commenting or when requesting a subscription management link", 'subscribe-to-comments-reloaded' ); ?>">
595
  <i class="fas fa-question-circle"></i>
596
  </div>
597
  </div>
@@ -599,16 +597,16 @@ wp_print_scripts( 'quicktags' );
599
 
600
  <div class="form-group row">
601
  <label for="challenge_answer" class="col-sm-3 col-form-label text-right">
602
- <?php _e( 'Challenge answer', 'subscribe-to-comments-reloaded' ) ?></label>
603
  <div class="col-sm-7">
604
  <input type="text" name="options[challenge_answer]" id="challenge_answer"
605
  class="form-control form-control-input-3"
606
  value="<?php echo esc_attr( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'challenge_answer', 3 ) ); ?>">
607
 
608
  <div class="helpDescription subsOptDescriptions"
609
- data-content="<?php _e( "The visitor needs to provide this answer to proceed with subscription.", 'subscribe-to-comments-reloaded' ); ?>"
610
  data-placement="right"
611
- aria-label="<?php _e( "The visitor needs to provide this answer to proceed with subscription.", 'subscribe-to-comments-reloaded' ); ?>">
612
  <i class="fas fa-question-circle"></i>
613
  </div>
614
  </div>
@@ -618,26 +616,26 @@ wp_print_scripts( 'quicktags' );
618
 
619
  <div class="form-group row">
620
  <label for="use_captcha" class="col-sm-3 col-form-label text-right">
621
- <?php _e( 'Enable Google reCAPTCHA', 'subscribe-to-comments-reloaded' ) ?>
622
  </label>
623
  <div class="col-sm-7">
624
  <div class="switch">
625
  <input type="radio" class="switch-input" name="options[use_captcha]"
626
  value="yes" id="use_captcha-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'use_captcha', 'no' ) == 'yes' ) ? ' checked' : ''; ?> />
627
  <label for="use_captcha-yes" class="switch-label switch-label-off">
628
- <?php _e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
629
  </label>
630
  <input type="radio" class="switch-input" name="options[use_captcha]" value="no" id="use_captcha-no"
631
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'use_captcha', 'no' ) == 'no' ) ? ' checked' : ''; ?> />
632
  <label for="use_captcha-no" class="switch-label switch-label-on">
633
- <?php _e( 'No', 'subscribe-to-comments-reloaded' ) ?>
634
  </label>
635
  <span class="switch-selection"></span>
636
  </div>
637
  <div class="helpDescription subsOptDescriptions"
638
- data-content="<?php _e( "Shown to visitor when subscribing without commenting or when requesting a subscription management link.", 'subscribe-to-comments-reloaded' ); ?>"
639
  data-placement="right"
640
- aria-label="<?php _e( "Shown to visitor when subscribing without commenting or when requesting a subscription management link.", 'subscribe-to-comments-reloaded' ); ?>">
641
  <i class="fas fa-question-circle"></i>
642
  </div>
643
  </div>
@@ -654,9 +652,9 @@ wp_print_scripts( 'quicktags' );
654
  </select>
655
 
656
  <div class="helpDescription subsOptDescriptions"
657
- data-content="<?php esc_html_e( "reCAPTCHA version to be used.", 'subscribe-to-comments-reloaded' ); ?>"
658
  data-placement="right"
659
- aria-label="<?php esc_html_e( "reCAPTCHA version to be used.", 'subscribe-to-comments-reloaded' ); ?>">
660
  <i class="fas fa-question-circle"></i>
661
  </div>
662
  </div>
@@ -664,16 +662,16 @@ wp_print_scripts( 'quicktags' );
664
 
665
  <div class="form-group row">
666
  <label for="captcha_site_key" class="col-sm-3 col-form-label text-right">
667
- <?php _e( 'reCAPTCHA site key', 'subscribe-to-comments-reloaded' ) ?></label>
668
  <div class="col-sm-7">
669
  <input type="text" name="options[captcha_site_key]" id="captcha_site_key"
670
  class="form-control form-control-input-3"
671
  value="<?php echo esc_attr( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'captcha_site_key', '' ) ); ?>">
672
 
673
  <div class="helpDescription subsOptDescriptions"
674
- data-content="<?php _e( "The site key for Google reCAPTCHA.", 'subscribe-to-comments-reloaded' ); ?>"
675
  data-placement="right"
676
- aria-label="<?php _e( "The site key for Google reCAPTCHA.", 'subscribe-to-comments-reloaded' ); ?>">
677
  <i class="fas fa-question-circle"></i>
678
  </div>
679
  </div>
@@ -681,16 +679,16 @@ wp_print_scripts( 'quicktags' );
681
 
682
  <div class="form-group row">
683
  <label for="captcha_secret_key" class="col-sm-3 col-form-label text-right">
684
- <?php _e( 'reCAPTCHA secret key', 'subscribe-to-comments-reloaded' ) ?></label>
685
  <div class="col-sm-7">
686
  <input type="text" name="options[captcha_secret_key]" id="captcha_secret_key"
687
  class="form-control form-control-input-3"
688
  value="<?php echo esc_attr( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'captcha_secret_key', '' ) ); ?>">
689
 
690
  <div class="helpDescription subsOptDescriptions"
691
- data-content="<?php _e( "The secret key for Google reCAPTCHA.", 'subscribe-to-comments-reloaded' ); ?>"
692
  data-placement="right"
693
- aria-label="<?php _e( "The secret key for Google reCAPTCHA.", 'subscribe-to-comments-reloaded' ); ?>">
694
  <i class="fas fa-question-circle"></i>
695
  </div>
696
  </div>
@@ -698,16 +696,16 @@ wp_print_scripts( 'quicktags' );
698
 
699
  <div class="form-group row">
700
  <label for="blacklisted_emails" class="col-sm-3 col-form-label text-right">
701
- <?php _e( 'Blacklisted Emails', 'subscribe-to-comments-reloaded' ) ?></label>
702
  <div class="col-sm-7">
703
  <textarea name="options[blacklisted_emails]" id="blacklisted_emails"
704
  class="form-control form-control-input-9" cols="10" rows="6"
705
  ><?php echo esc_textarea( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'blacklisted_emails', '' ) ); ?></textarea>
706
 
707
  <div class="helpDescription subsOptDescriptions"
708
- data-content="<?php esc_html_e( "Add a comma separated list of emails to blacklist them from subscribing to comments. Example: example@example.com, mail@mail.com", 'subscribe-to-comments-reloaded' ); ?>"
709
  data-placement="right"
710
- aria-label="<?php esc_html_e( "Add a comma separated list of emails to blacklist them from subscribing to comments. Example: example@example.com, mail@mail.com", 'subscribe-to-comments-reloaded' ); ?>">
711
  <i class="fas fa-question-circle"></i>
712
  </div>
713
  </div>
@@ -717,15 +715,15 @@ wp_print_scripts( 'quicktags' );
717
 
718
  <div class="form-group row">
719
  <label for="unique_key" class="col-sm-3 col-form-label text-right">
720
- <?php _e( 'StCR Unique Key', 'subscribe-to-comments-reloaded' ) ?></label>
721
  <div class="col-sm-7">
722
 
723
  <?php
724
  if ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'unique_key' ) == "" ) {
725
 
726
  echo "<div class=\"alert alert-danger\" role=\"alert\" style='font-size: 0.85rem;'>";
727
- echo '<strong>' . __( "This Unique Key is not set, please click the following button to ", 'subscribe-to-comments-reloaded' ) . '</strong>';
728
- echo "<input type='submit' value='" . __( 'Generate' ) ."' class='btn btn-secondary subscribe-form-button' name='generate_key' >";
729
  echo "</div>";
730
  }
731
  else {
@@ -739,9 +737,9 @@ wp_print_scripts( 'quicktags' );
739
 
740
 
741
  <div class="helpDescription subsOptDescriptions"
742
- data-content="<?php _e( "This Unique Key will be use to send the notification to your subscribers with more security.", 'subscribe-to-comments-reloaded' ); ?>"
743
  data-placement="right"
744
- aria-label="<?php _e( "This Unique Key will be use to send the notification to your subscribers with more security.", 'subscribe-to-comments-reloaded' ); ?>">
745
  <i class="fas fa-question-circle"></i>
746
  </div>
747
  </div>
@@ -749,19 +747,19 @@ wp_print_scripts( 'quicktags' );
749
 
750
  <div class="form-group row">
751
  <label for="" class="col-sm-3 col-form-label text-right">
752
- <?php _e( 'Reset All Options', 'subscribe-to-comments-reloaded' ) ?>
753
  </label>
754
  <div class="col-sm-7">
755
 
756
  <div class="alert alert-danger" role="alert">
757
  <strong>Danger!</strong>
758
  <p>
759
- <?php _e( 'This will reset all the options and messages of the plugin. Please proceed with caution.', 'subscribe-to-comments-reloaded' ); ?>
760
  </p>
761
 
762
  <p>
763
- <?php _e( '<strong>Yes</strong> = Delete Options including subscriptions.', 'subscribe-to-comments-reloaded' ) ?><br/>
764
- <?php _e( '<strong>No</strong> = Only delete the StCR Options.', 'subscribe-to-comments-reloaded' ) ?>
765
  </p>
766
 
767
 
@@ -769,12 +767,12 @@ wp_print_scripts( 'quicktags' );
769
  <input type="radio" class="switch-input" name="options[delete_options_subscriptions]"
770
  value="yes" id="delete_options_subscriptions-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'delete_options_subscriptions' ) == 'yes' ) ? ' checked' : ''; ?> />
771
  <label for="delete_options_subscriptions-yes" class="switch-label switch-label-off">
772
- <?php _e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
773
  </label>
774
  <input type="radio" class="switch-input" name="options[delete_options_subscriptions]" value="no" id="delete_options_subscriptions-no"
775
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'delete_options_subscriptions' ) == 'no' ) ? ' checked' : ''; ?> />
776
  <label for="delete_options_subscriptions-no" class="switch-label switch-label-on">
777
- <?php _e( 'No', 'subscribe-to-comments-reloaded' ) ?>
778
  </label>
779
  <span class="switch-selection"></span>
780
  </div>
@@ -788,7 +786,7 @@ wp_print_scripts( 'quicktags' );
788
  <div class="form-group row">
789
  <div class="col-sm-9 offset-sm-1">
790
  <button type="submit" class="btn btn-primary subscribe-form-button" name="Submit">
791
- <?php _e( 'Save Changes', 'subscribe-to-comments-reloaded' ) ?>
792
  </button>
793
  </div>
794
  </div>
41
  if ( empty( $_POST['stcr_save_options_nonce'] ) ) {
42
  return;
43
  }
44
+
45
  if ( ! wp_verify_nonce( $_POST['stcr_save_options_nonce'], 'stcr_save_options_nonce' ) ) {
46
  return;
47
  }
48
+
49
  if ( ! current_user_can( 'manage_options' ) ) {
50
  return;
51
  }
54
  $wp_subscribe_reloaded->stcr->utils->stcr_update_menu_options( 'unique_key', $unique_key, 'text' );
55
 
56
  echo '<div class="updated"><p>';
57
+ esc_html_e( 'Your settings have been successfully updated.', 'subscribe-to-comments-reloaded' );
58
+ echo '</p></div>';
59
 
60
  } elseif ( array_key_exists( "reset_all_options", $_POST ) ) {
61
 
62
  if ( empty( $_POST['stcr_save_options_nonce'] ) ) {
63
  return;
64
  }
65
+
66
  if ( ! wp_verify_nonce( $_POST['stcr_save_options_nonce'], 'stcr_save_options_nonce' ) ) {
67
  return;
68
  }
69
+
70
  if ( ! current_user_can( 'manage_options' ) ) {
71
  return;
72
  }
73
 
74
+ $delete_subscriptions_selection = isset( $_POST['options']['delete_options_subscriptions'] ) ? sanitize_text_field( wp_unslash( $_POST['options']['delete_options_subscriptions'] ) ) : '';
75
  $deletion_result = $wp_subscribe_reloaded->stcr->utils->delete_all_settings( $delete_subscriptions_selection );
76
 
77
  if( $deletion_result )
84
  if ( empty( $_POST['stcr_save_options_nonce'] ) ) {
85
  return;
86
  }
87
+
88
  if ( ! wp_verify_nonce( $_POST['stcr_save_options_nonce'], 'stcr_save_options_nonce' ) ) {
89
  return;
90
  }
91
+
92
  if ( ! current_user_can( 'manage_options' ) ) {
93
  return;
94
  }
95
 
96
+ $faulty_fields = array();
97
+ $subscribe_options = wp_unslash( $_POST['options'] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput
98
+ foreach ( $subscribe_options as $option => $value )
99
  {
 
 
100
  if ( ! $wp_subscribe_reloaded->stcr->utils->stcr_update_menu_options( $option, $value, $options[$option] ) )
101
  {
102
  array_push( $faulty_fields, $option );
106
  // Display an alert in the admin interface if something went wrong
107
  echo '<div class="updated"><p>';
108
  if ( sizeof( $faulty_fields ) == 0 ) {
109
+ esc_html_e( 'Your settings have been successfully updated.', 'subscribe-to-comments-reloaded' );
110
  } else {
111
+ esc_html_e( 'There was an error updating the options.', 'subscribe-to-comments-reloaded' );
112
  // echo ' <strong>' . substr( $faulty_fields, 0, - 2 ) . '</strong>';
113
  }
114
+ echo '</p></div>';
115
  }
116
  wp_print_scripts( 'quicktags' );
117
 
125
  <form action="" method="post">
126
 
127
  <div class="form-group row" style="margin-bottom: 0;">
128
+ <label for="show_subscription_box" class="col-sm-3 col-form-label text-right"><?php esc_html_e( 'Show StCR checkbox / dropdown', 'subscribe-to-comments-reloaded' ) ?></label>
129
  <div class="col-sm-7">
130
  <div class="switch">
131
  <input type="radio" class="switch-input" name="options[show_subscription_box]"
132
  value="yes" id="show_subscription_box-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'show_subscription_box' ) == 'yes' ) ? ' checked' : ''; ?> />
133
  <label for="show_subscription_box-yes" class="switch-label switch-label-off">
134
+ <?php esc_html_e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
135
  </label>
136
  <input type="radio" class="switch-input" name="options[show_subscription_box]" value="no" id="show_subscription_box-no"
137
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'show_subscription_box' ) == 'no' ) ? ' checked' : ''; ?> />
138
  <label for="show_subscription_box-no" class="switch-label switch-label-on">
139
+ <?php esc_html_e( 'No', 'subscribe-to-comments-reloaded' ) ?>
140
  </label>
141
  <span class="switch-selection"></span>
142
  </div>
143
  <div class="helpDescription subsOptDescriptions"
144
+ data-content="<?php esc_attr_e( "This option will disable the StCR checkbox or dropdown in your comment form. You should leave it to Yes always.", 'subscribe-to-comments-reloaded' ); ?>"
145
  data-placement="right"
146
+ aria-label="<?php esc_attr_e( "This option will disable the StCR checkbox or dropdown in your comment form. You should leave it to Yes always.", 'subscribe-to-comments-reloaded' ); ?>">
147
  <i class="fas fa-question-circle"></i>
148
  </div>
149
  </div>
150
  </div>
151
 
152
  <div class="form-group row">
153
+ <label for="safely_uninstall" class="col-sm-3 col-form-label text-right"><?php esc_html_e( 'Safely Uninstall', 'subscribe-to-comments-reloaded' ) ?></label>
154
  <div class="col-sm-7">
155
  <div class="switch">
156
  <input type="radio" class="switch-input" name="options[safely_uninstall]"
157
  value="yes" id="safely_uninstall-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'safely_uninstall' ) == 'yes' ) ? ' checked' : ''; ?> />
158
  <label for="safely_uninstall-yes" class="switch-label switch-label-off">
159
+ <?php esc_html_e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
160
  </label>
161
  <input type="radio" class="switch-input" name="options[safely_uninstall]" value="no" id="safely_uninstall-no"
162
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'safely_uninstall' ) == 'no' ) ? ' checked' : ''; ?> />
163
  <label for="safely_uninstall-no" class="switch-label switch-label-on">
164
+ <?php esc_html_e( 'No', 'subscribe-to-comments-reloaded' ) ?>
165
  </label>
166
  <span class="switch-selection"></span>
167
  </div>
168
  <div class="helpDescription subsOptDescriptions"
169
+ data-content="<?php esc_attr_e( "This option will allow you to delete the plugin with WordPress without loosing your subscribers. Any database table and plugin options are wipeout.", 'subscribe-to-comments-reloaded' ); ?>"
170
  data-placement="right"
171
+ aria-label="<?php esc_attr_e( "This option will allow you to delete the plugin with WordPress without loosing your subscribers. Any database table and plugin options are wipeout.", 'subscribe-to-comments-reloaded' ); ?>">
172
  <i class="fas fa-question-circle"></i>
173
  </div>
174
  </div>
176
 
177
  <div class="form-group row">
178
  <label for="purge_days" class="col-sm-3 col-form-label text-right">
179
+ <?php esc_html_e( 'Autopurge requests', 'subscribe-to-comments-reloaded' ) ?></label>
180
  <div class="col-sm-7">
181
  <input type="number" name="options[purge_days]" id="purge_days"
182
  class="form-control form-control-input-3"
183
  value="<?php echo esc_attr( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'purge_days' ) ); ?>" size="20">
184
 
185
  <div class="helpDescription subsOptDescriptions"
186
+ data-content="<?php esc_attr_e( "Delete pending subscriptions (not confirmed) after X days. Zero disables this feature.", 'subscribe-to-comments-reloaded' ); ?>"
187
  data-placement="right"
188
+ aria-label="<?php esc_attr_e( "Delete pending subscriptions (not confirmed) after X days. Zero disables this feature.", 'subscribe-to-comments-reloaded' ); ?>">
189
  <i class="fas fa-question-circle"></i>
190
  </div>
191
  </div>
193
 
194
  <div class="form-group row">
195
  <label for="date_format" class="col-sm-3 col-form-label text-right">
196
+ <?php esc_html_e( 'Date Format', 'subscribe-to-comments-reloaded' ) ?></label>
197
  <div class="col-sm-7">
198
  <input type="text" name="options[date_format]" id="date_format"
199
  class="form-control form-control-input-3"
200
  value="<?php echo esc_attr( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'date_format' ) ); ?>" size="20">
201
 
202
  <div class="helpDescription subsOptDescriptions"
203
+ data-content="<?php echo wp_kses( __( "Date format that will be display on the management page. Use <a href='https://secure.php.net/manual/en/function.date.php#refsect1-function.date-parameters' target='_blank'>PHP Date Format</a>", 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ); ?>"
204
  data-placement="right"
205
+ aria-label="<?php echo wp_kses( __( "Date format that will be display on the management page. Use <a href='https://secure.php.net/manual/en/function.date.php#refsect1-function.date-parameters' target='_blank'>PHP Date Format</a>", 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ); ?>">
206
  <i class="fas fa-question-circle"></i>
207
  </div>
208
  </div>
209
  </div>
210
 
211
  <div class="form-group row">
212
+ <label for="stcr_position" class="col-sm-3 col-form-label text-right"><?php esc_html_e( 'StCR Position', 'subscribe-to-comments-reloaded' ) ?></label>
213
  <div class="col-sm-7">
214
  <div class="switch">
215
  <input type="radio" class="switch-input" name="options[stcr_position]"
216
  value="yes" id="stcr_position-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'stcr_position' ) == 'yes' ) ? ' checked' : ''; ?> />
217
  <label for="stcr_position-yes" class="switch-label switch-label-off">
218
+ <?php esc_html_e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
219
  </label>
220
  <input type="radio" class="switch-input" name="options[stcr_position]" value="no" id="stcr_position-no"
221
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'stcr_position' ) == 'no' ) ? ' checked' : ''; ?> />
222
  <label for="stcr_position-no" class="switch-label switch-label-on">
223
+ <?php esc_html_e( 'No', 'subscribe-to-comments-reloaded' ) ?>
224
  </label>
225
  <span class="switch-selection"></span>
226
  </div>
227
  <div class="helpDescription subsOptDescriptions"
228
+ data-content="<?php esc_attr_e( "If this option is enable the subscription box will be above the submit button in your comment form. Use this when your theme is outdated and using the incorrect WordPress Hooks and the checkbox is not displayed.", 'subscribe-to-comments-reloaded' ); ?>"
229
  data-placement="right"
230
+ aria-label="<?php esc_attr_e( "If this option is enable the subscription box will be above the submit button in your comment form. Use this when your theme is outdated and using the incorrect WordPress Hooks and the checkbox is not displayed.", 'subscribe-to-comments-reloaded' ); ?>">
231
  <i class="fas fa-question-circle"></i>
232
  </div>
233
  </div>
235
 
236
  <div class="form-group row">
237
  <label for="enable_double_check" class="col-sm-3 col-form-label text-right">
238
+ <?php esc_html_e( 'Enable double check', 'subscribe-to-comments-reloaded' ) ?>
239
  </label>
240
  <div class="col-sm-7">
241
  <div class="switch">
242
  <input type="radio" class="switch-input" name="options[enable_double_check]"
243
  value="yes" id="enable_double_check-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_double_check' ) == 'yes' ) ? ' checked' : ''; ?> />
244
  <label for="enable_double_check-yes" class="switch-label switch-label-off">
245
+ <?php esc_html_e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
246
  </label>
247
  <input type="radio" class="switch-input" name="options[enable_double_check]" value="no" id="enable_double_check-no"
248
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_double_check' ) == 'no' ) ? ' checked' : ''; ?> />
249
  <label for="enable_double_check-no" class="switch-label switch-label-on">
250
+ <?php esc_html_e( 'No', 'subscribe-to-comments-reloaded' ) ?>
251
  </label>
252
  <span class="switch-selection"></span>
253
  </div>
254
  <div class="helpDescription subsOptDescriptions"
255
+ data-content="<?php esc_attr_e( "Send a notification email to confirm the subscription (to avoid addresses misuse).", 'subscribe-to-comments-reloaded' ); ?>"
256
  data-placement="right"
257
+ aria-label="<?php esc_attr_e( "Send a notification email to confirm the subscription (to avoid addresses misuse).", 'subscribe-to-comments-reloaded' ); ?>">
258
  <i class="fas fa-question-circle"></i>
259
  </div>
260
  </div>
262
 
263
  <div class="form-group row">
264
  <label for="notify_authors" class="col-sm-3 col-form-label text-right">
265
+ <?php esc_html_e( 'Subscribe authors', 'subscribe-to-comments-reloaded' ) ?>
266
  </label>
267
  <div class="col-sm-7">
268
  <div class="switch">
269
  <input type="radio" class="switch-input" name="options[notify_authors]"
270
  value="yes" id="notify_authors-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'notify_authors' ) == 'yes' ) ? ' checked' : ''; ?> />
271
  <label for="notify_authors-yes" class="switch-label switch-label-off">
272
+ <?php esc_html_e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
273
  </label>
274
  <input type="radio" class="switch-input" name="options[notify_authors]" value="no" id="notify_authors-no"
275
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'notify_authors' ) == 'no' ) ? ' checked' : ''; ?> />
276
  <label for="notify_authors-no" class="switch-label switch-label-on">
277
+ <?php esc_html_e( 'No', 'subscribe-to-comments-reloaded' ) ?>
278
  </label>
279
  <span class="switch-selection"></span>
280
  </div>
281
  <div class="helpDescription subsOptDescriptions"
282
+ data-content="<?php esc_attr_e( "Automatically subscribe authors to their own articles (not retroactive).", 'subscribe-to-comments-reloaded' ); ?>"
283
  data-placement="right"
284
+ aria-label="<?php esc_attr_e( "Automatically subscribe authors to their own articles (not retroactive).", 'subscribe-to-comments-reloaded' ); ?>">
285
  <i class="fas fa-question-circle"></i>
286
  </div>
287
  </div>
289
 
290
  <div class="form-group row">
291
  <label for="enable_html_emails" class="col-sm-3 col-form-label text-right">
292
+ <?php esc_html_e( 'Enable HTML emails', 'subscribe-to-comments-reloaded' ) ?>
293
  </label>
294
  <div class="col-sm-7">
295
  <div class="switch">
296
  <input type="radio" class="switch-input" name="options[enable_html_emails]"
297
  value="yes" id="enable_html_emails-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_html_emails' ) == 'yes' ) ? ' checked' : ''; ?> />
298
  <label for="enable_html_emails-yes" class="switch-label switch-label-off">
299
+ <?php esc_html_e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
300
  </label>
301
  <input type="radio" class="switch-input" name="options[enable_html_emails]" value="no" id="enable_html_emails-no"
302
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_html_emails' ) == 'no' ) ? ' checked' : ''; ?> />
303
  <label for="enable_html_emails-no" class="switch-label switch-label-on">
304
+ <?php esc_html_e( 'No', 'subscribe-to-comments-reloaded' ) ?>
305
  </label>
306
  <span class="switch-selection"></span>
307
  </div>
308
  <div class="helpDescription subsOptDescriptions"
309
+ data-content="<?php esc_attr_e( "If enabled, will send email messages with content-type = text/html instead of text/plain", 'subscribe-to-comments-reloaded' ); ?>"
310
  data-placement="right"
311
+ aria-label="<?php esc_attr_e( "If enabled, will send email messages with content-type = text/html instead of text/plain", 'subscribe-to-comments-reloaded' ); ?>">
312
  <i class="fas fa-question-circle"></i>
313
  </div>
314
  </div>
316
 
317
  <div class="form-group row">
318
  <label for="process_trackbacks" class="col-sm-3 col-form-label text-right">
319
+ <?php esc_html_e( 'Process trackbacks', 'subscribe-to-comments-reloaded' ) ?>
320
  </label>
321
  <div class="col-sm-7">
322
  <div class="switch">
323
  <input type="radio" class="switch-input" name="options[process_trackbacks]"
324
  value="yes" id="process_trackbacks-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'process_trackbacks' ) == 'yes' ) ? ' checked' : ''; ?> />
325
  <label for="process_trackbacks-yes" class="switch-label switch-label-off">
326
+ <?php esc_html_e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
327
  </label>
328
  <input type="radio" class="switch-input" name="options[process_trackbacks]" value="no" id="process_trackbacks-no"
329
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'process_trackbacks' ) == 'no' ) ? ' checked' : ''; ?> />
330
  <label for="process_trackbacks-no" class="switch-label switch-label-on">
331
+ <?php esc_html_e( 'No', 'subscribe-to-comments-reloaded' ) ?>
332
  </label>
333
  <span class="switch-selection"></span>
334
  </div>
335
  <div class="helpDescription subsOptDescriptions"
336
+ data-content="<?php esc_attr_e( "Notify users when a new trackback or pingback is added to the discussion.", 'subscribe-to-comments-reloaded' ); ?>"
337
  data-placement="right"
338
+ aria-label="<?php esc_attr_e( "Notify users when a new trackback or pingback is added to the discussion.", 'subscribe-to-comments-reloaded' ); ?>">
339
  <i class="fas fa-question-circle"></i>
340
  </div>
341
  </div>
343
 
344
  <div class="form-group row">
345
  <label for="enable_admin_messages" class="col-sm-3 col-form-label text-right">
346
+ <?php esc_html_e( 'Track all subscriptions', 'subscribe-to-comments-reloaded' ) ?>
347
  </label>
348
  <div class="col-sm-7">
349
  <div class="switch">
350
  <input type="radio" class="switch-input" name="options[enable_admin_messages]"
351
  value="yes" id="enable_admin_messages-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_admin_messages' ) == 'yes' ) ? ' checked' : ''; ?> />
352
  <label for="enable_admin_messages-yes" class="switch-label switch-label-off">
353
+ <?php esc_html_e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
354
  </label>
355
  <input type="radio" class="switch-input" name="options[enable_admin_messages]" value="no" id="enable_admin_messages-no"
356
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_admin_messages' ) == 'no' ) ? ' checked' : ''; ?> />
357
  <label for="enable_admin_messages-no" class="switch-label switch-label-on">
358
+ <?php esc_html_e( 'No', 'subscribe-to-comments-reloaded' ) ?>
359
  </label>
360
  <span class="switch-selection"></span>
361
  </div>
362
  <div class="helpDescription subsOptDescriptions"
363
+ data-content="<?php esc_attr_e( "Notify the administrator when users subscribe without commenting.", 'subscribe-to-comments-reloaded' ); ?>"
364
  data-placement="right"
365
+ aria-label="<?php esc_attr_e( "Notify the administrator when users subscribe without commenting.", 'subscribe-to-comments-reloaded' ); ?>">
366
  <i class="fas fa-question-circle"></i>
367
  </div>
368
  </div>
370
 
371
  <div class="form-group row">
372
  <label for="admin_subscribe" class="col-sm-3 col-form-label text-right">
373
+ <?php esc_html_e( 'Let Admin Subscribe', 'subscribe-to-comments-reloaded' ) ?>
374
  </label>
375
  <div class="col-sm-7">
376
  <div class="switch">
377
  <input type="radio" class="switch-input" name="options[admin_subscribe]"
378
  value="yes" id="admin_subscribe-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'admin_subscribe' ) == 'yes' ) ? ' checked' : ''; ?> />
379
  <label for="admin_subscribe-yes" class="switch-label switch-label-off">
380
+ <?php esc_html_e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
381
  </label>
382
  <input type="radio" class="switch-input" name="options[admin_subscribe]" value="no" id="admin_subscribe-no"
383
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'admin_subscribe' ) == 'no' ) ? ' checked' : ''; ?> />
384
  <label for="admin_subscribe-no" class="switch-label switch-label-on">
385
+ <?php esc_html_e( 'No', 'subscribe-to-comments-reloaded' ) ?>
386
  </label>
387
  <span class="switch-selection"></span>
388
  </div>
389
  <div class="helpDescription subsOptDescriptions"
390
+ data-content="<?php esc_attr_e( "Let the administrator subscribe to comments when logged in.", 'subscribe-to-comments-reloaded' ); ?>"
391
  data-placement="right"
392
+ aria-label="<?php esc_attr_e( "Let the administrator subscribe to comments when logged in.", 'subscribe-to-comments-reloaded' ); ?>">
393
  <i class="fas fa-question-circle"></i>
394
  </div>
395
  </div>
397
 
398
  <div class="form-group row" style="margin-bottom: 0;">
399
  <label for="admin_bcc" class="col-sm-3 col-form-label text-right">
400
+ <?php esc_html_e( 'BCC admin on Notifications', 'subscribe-to-comments-reloaded' ) ?>
401
  </label>
402
  <div class="col-sm-7">
403
  <div class="switch">
404
  <input type="radio" class="switch-input" name="options[admin_bcc]"
405
  value="yes" id="admin_bcc-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'admin_bcc' ) == 'yes' ) ? ' checked' : ''; ?> />
406
  <label for="admin_bcc-yes" class="switch-label switch-label-off">
407
+ <?php esc_html_e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
408
  </label>
409
  <input type="radio" class="switch-input" name="options[admin_bcc]" value="no" id="admin_bcc-no"
410
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'admin_bcc' ) == 'no' ) ? ' checked' : ''; ?> />
411
  <label for="admin_bcc-no" class="switch-label switch-label-on">
412
+ <?php esc_html_e( 'No', 'subscribe-to-comments-reloaded' ) ?>
413
  </label>
414
  <span class="switch-selection"></span>
415
  </div>
416
  <div class="helpDescription subsOptDescriptions"
417
+ data-content="<?php esc_attr_e( "Send a copy of all Notifications to the administrator.", 'subscribe-to-comments-reloaded' ); ?>"
418
  data-placement="right"
419
+ aria-label="<?php esc_attr_e( "Send a copy of all Notifications to the administrator.", 'subscribe-to-comments-reloaded' ); ?>">
420
  <i class="fas fa-question-circle"></i>
421
  </div>
422
  </div>
424
 
425
  <div class="form-group row">
426
  <label for="enable_font_awesome" class="col-sm-3 col-form-label text-right">
427
+ <?php esc_html_e( 'Enable Font Awesome', 'subscribe-to-comments-reloaded' ) ?>
428
  </label>
429
  <div class="col-sm-7">
430
  <div class="switch">
431
  <input type="radio" class="switch-input" name="options[enable_font_awesome]"
432
  value="yes" id="enable_font_awesome-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_font_awesome' ) == 'yes' ) ? ' checked' : ''; ?> />
433
  <label for="enable_font_awesome-yes" class="switch-label switch-label-off">
434
+ <?php esc_html_e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
435
  </label>
436
  <input type="radio" class="switch-input" name="options[enable_font_awesome]" value="no" id="enable_font_awesome-no"
437
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_font_awesome' ) == 'no' ) ? ' checked' : ''; ?> />
438
  <label for="enable_font_awesome-no" class="switch-label switch-label-on">
439
+ <?php esc_html_e( 'No', 'subscribe-to-comments-reloaded' ) ?>
440
  </label>
441
  <span class="switch-selection"></span>
442
  </div>
443
  <div class="helpDescription subsOptDescriptions"
444
+ data-content="<?php esc_attr_e( "Let you control the inclusion of the Font Awesome into your site. Disable if your theme already add this into your site.", 'subscribe-to-comments-reloaded' ); ?>"
445
  data-placement="right"
446
+ aria-label="<?php esc_attr_e( "Let you control the inclusion of the Font Awesome into your site. Disable if your theme already add this into your site.", 'subscribe-to-comments-reloaded' ); ?>">
447
  <i class="fas fa-question-circle"></i>
448
  </div>
449
  </div>
477
  }
478
  ?>
479
  <div class="form-check pl-0">
480
+ <input type="checkbox" id="<?php echo esc_attr( $post_type ); ?>" name="options[post_type_supports][]" value="<?php echo esc_attr( $post_type ) ?>" <?php echo $checked; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> />
481
 
482
  <label for="<?php echo esc_attr( $post_type ); ?>">
483
  <?php echo esc_html( get_post_type_object( $post_type )->label ); ?>
489
  </div>
490
 
491
  <div class="helpDescription subsOptDescriptions ml-0"
492
+ data-content="<?php esc_attr_e( "Enable for these specific post types only.", 'subscribe-to-comments-reloaded' ); ?>"
493
  data-placement="right"
494
+ aria-label="<?php esc_attr_e( "Enable for these specific post types only.", 'subscribe-to-comments-reloaded' ); ?>">
495
  <i class="fas fa-question-circle"></i>
496
  </div>
497
  </div>
499
 
500
  <div class="form-group row">
501
  <label for="only_for_logged_in" class="col-sm-3 col-form-label text-right">
502
+ <?php esc_html_e( 'Enable only for logged in users', 'subscribe-to-comments-reloaded' ) ?>
503
  </label>
504
  <div class="col-sm-7">
505
  <div class="switch">
506
  <input type="radio" class="switch-input" name="options[only_for_logged_in]"
507
  value="yes" id="only_for_logged_in-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'only_for_logged_in', 'no' ) == 'yes' ) ? ' checked' : ''; ?> />
508
  <label for="only_for_logged_in-yes" class="switch-label switch-label-off">
509
+ <?php esc_html_e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
510
  </label>
511
  <input type="radio" class="switch-input" name="options[only_for_logged_in]" value="no" id="only_for_logged_in-no"
512
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'only_for_logged_in', 'no' ) == 'no' ) ? ' checked' : ''; ?> />
513
  <label for="only_for_logged_in-no" class="switch-label switch-label-on">
514
+ <?php esc_html_e( 'No', 'subscribe-to-comments-reloaded' ) ?>
515
  </label>
516
  <span class="switch-selection"></span>
517
  </div>
518
  <div class="helpDescription subsOptDescriptions"
519
+ data-content="<?php esc_attr_e( "Enable subscription only for logged in users.", 'subscribe-to-comments-reloaded' ); ?>"
520
  data-placement="right"
521
+ aria-label="<?php esc_attr_e( "Enable subscription only for logged in users.", 'subscribe-to-comments-reloaded' ); ?>">
522
  <i class="fas fa-question-circle"></i>
523
  </div>
524
  </div>
526
 
527
  <div class="form-group row">
528
  <label for="use_cookies" class="col-sm-3 col-form-label text-right">
529
+ <?php esc_html_e( 'Enable cookies', 'subscribe-to-comments-reloaded' ) ?>
530
  </label>
531
  <div class="col-sm-7">
532
  <div class="switch">
533
  <input type="radio" class="switch-input" name="options[use_cookies]"
534
  value="yes" id="use_cookies-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'use_cookies', 'yes' ) == 'yes' ) ? ' checked' : ''; ?> />
535
  <label for="use_cookies-yes" class="switch-label switch-label-off">
536
+ <?php esc_html_e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
537
  </label>
538
  <input type="radio" class="switch-input" name="options[use_cookies]" value="no" id="use_cookies-no"
539
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'use_cookies', 'no' ) == 'no' ) ? ' checked' : ''; ?> />
540
  <label for="use_cookies-no" class="switch-label switch-label-on">
541
+ <?php esc_html_e( 'No', 'subscribe-to-comments-reloaded' ) ?>
542
  </label>
543
  <span class="switch-selection"></span>
544
  </div>
545
  <div class="helpDescription subsOptDescriptions"
546
+ data-content="<?php esc_attr_e( "Remembers the email address to prepopulate StCR forms.", 'subscribe-to-comments-reloaded' ); ?>"
547
  data-placement="right"
548
+ aria-label="<?php esc_attr_e( "Remembers the email address to prepopulate StCR forms.", 'subscribe-to-comments-reloaded' ); ?>">
549
  <i class="fas fa-question-circle"></i>
550
  </div>
551
  </div>
553
 
554
  <div class="form-group row">
555
  <label for="use_challenge_question" class="col-sm-3 col-form-label text-right">
556
+ <?php esc_html_e( 'Enable challenge question', 'subscribe-to-comments-reloaded' ) ?>
557
  </label>
558
  <div class="col-sm-7">
559
  <div class="switch">
560
  <input type="radio" class="switch-input" name="options[use_challenge_question]"
561
  value="yes" id="use_challenge_question-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'use_challenge_question', 'no' ) == 'yes' ) ? ' checked' : ''; ?> />
562
  <label for="use_challenge_question-yes" class="switch-label switch-label-off">
563
+ <?php esc_html_e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
564
  </label>
565
  <input type="radio" class="switch-input" name="options[use_challenge_question]" value="no" id="use_challenge_question-no"
566
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'use_challenge_question', 'no' ) == 'no' ) ? ' checked' : ''; ?> />
567
  <label for="use_challenge_question-no" class="switch-label switch-label-on">
568
+ <?php esc_html_e( 'No', 'subscribe-to-comments-reloaded' ) ?>
569
  </label>
570
  <span class="switch-selection"></span>
571
  </div>
572
  <div class="helpDescription subsOptDescriptions"
573
+ data-content="<?php esc_attr_e( "Enables input for challenge question/answer on the subscription form.", 'subscribe-to-comments-reloaded' ); ?>"
574
  data-placement="right"
575
+ aria-label="<?php esc_attr_e( "Enables input for challenge question/answer on the subscription form.", 'subscribe-to-comments-reloaded' ); ?>">
576
  <i class="fas fa-question-circle"></i>
577
  </div>
578
  </div>
580
 
581
  <div class="form-group row">
582
  <label for="challenge_question" class="col-sm-3 col-form-label text-right">
583
+ <?php esc_html_e( 'Challenge question', 'subscribe-to-comments-reloaded' ) ?></label>
584
  <div class="col-sm-7">
585
  <input type="text" name="options[challenge_question]" id="challenge_question"
586
  class="form-control form-control-input-3"
587
  value="<?php echo esc_attr( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'challenge_question', 'What is 1 + 2?' ) ); ?>">
588
 
589
  <div class="helpDescription subsOptDescriptions"
590
+ data-content="<?php esc_attr_e( "The question shown to visitor when subscribing without commenting or when requesting a subscription management link.", 'subscribe-to-comments-reloaded' ); ?>"
591
  data-placement="right"
592
+ aria-label="<?php esc_attr_e( "The question shown to visitor when subscribing without commenting or when requesting a subscription management link", 'subscribe-to-comments-reloaded' ); ?>">
593
  <i class="fas fa-question-circle"></i>
594
  </div>
595
  </div>
597
 
598
  <div class="form-group row">
599
  <label for="challenge_answer" class="col-sm-3 col-form-label text-right">
600
+ <?php esc_html_e( 'Challenge answer', 'subscribe-to-comments-reloaded' ) ?></label>
601
  <div class="col-sm-7">
602
  <input type="text" name="options[challenge_answer]" id="challenge_answer"
603
  class="form-control form-control-input-3"
604
  value="<?php echo esc_attr( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'challenge_answer', 3 ) ); ?>">
605
 
606
  <div class="helpDescription subsOptDescriptions"
607
+ data-content="<?php esc_attr_e( "The visitor needs to provide this answer to proceed with subscription.", 'subscribe-to-comments-reloaded' ); ?>"
608
  data-placement="right"
609
+ aria-label="<?php esc_attr_e( "The visitor needs to provide this answer to proceed with subscription.", 'subscribe-to-comments-reloaded' ); ?>">
610
  <i class="fas fa-question-circle"></i>
611
  </div>
612
  </div>
616
 
617
  <div class="form-group row">
618
  <label for="use_captcha" class="col-sm-3 col-form-label text-right">
619
+ <?php esc_html_e( 'Enable Google reCAPTCHA', 'subscribe-to-comments-reloaded' ) ?>
620
  </label>
621
  <div class="col-sm-7">
622
  <div class="switch">
623
  <input type="radio" class="switch-input" name="options[use_captcha]"
624
  value="yes" id="use_captcha-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'use_captcha', 'no' ) == 'yes' ) ? ' checked' : ''; ?> />
625
  <label for="use_captcha-yes" class="switch-label switch-label-off">
626
+ <?php esc_html_e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
627
  </label>
628
  <input type="radio" class="switch-input" name="options[use_captcha]" value="no" id="use_captcha-no"
629
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'use_captcha', 'no' ) == 'no' ) ? ' checked' : ''; ?> />
630
  <label for="use_captcha-no" class="switch-label switch-label-on">
631
+ <?php esc_html_e( 'No', 'subscribe-to-comments-reloaded' ) ?>
632
  </label>
633
  <span class="switch-selection"></span>
634
  </div>
635
  <div class="helpDescription subsOptDescriptions"
636
+ data-content="<?php esc_attr_e( "Shown to visitor when subscribing without commenting or when requesting a subscription management link.", 'subscribe-to-comments-reloaded' ); ?>"
637
  data-placement="right"
638
+ aria-label="<?php esc_attr_e( "Shown to visitor when subscribing without commenting or when requesting a subscription management link.", 'subscribe-to-comments-reloaded' ); ?>">
639
  <i class="fas fa-question-circle"></i>
640
  </div>
641
  </div>
652
  </select>
653
 
654
  <div class="helpDescription subsOptDescriptions"
655
+ data-content="<?php esc_attr_e( "reCAPTCHA version to be used.", 'subscribe-to-comments-reloaded' ); ?>"
656
  data-placement="right"
657
+ aria-label="<?php esc_attr_e( "reCAPTCHA version to be used.", 'subscribe-to-comments-reloaded' ); ?>">
658
  <i class="fas fa-question-circle"></i>
659
  </div>
660
  </div>
662
 
663
  <div class="form-group row">
664
  <label for="captcha_site_key" class="col-sm-3 col-form-label text-right">
665
+ <?php esc_html_e( 'reCAPTCHA site key', 'subscribe-to-comments-reloaded' ) ?></label>
666
  <div class="col-sm-7">
667
  <input type="text" name="options[captcha_site_key]" id="captcha_site_key"
668
  class="form-control form-control-input-3"
669
  value="<?php echo esc_attr( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'captcha_site_key', '' ) ); ?>">
670
 
671
  <div class="helpDescription subsOptDescriptions"
672
+ data-content="<?php esc_attr_e( "The site key for Google reCAPTCHA.", 'subscribe-to-comments-reloaded' ); ?>"
673
  data-placement="right"
674
+ aria-label="<?php esc_attr_e( "The site key for Google reCAPTCHA.", 'subscribe-to-comments-reloaded' ); ?>">
675
  <i class="fas fa-question-circle"></i>
676
  </div>
677
  </div>
679
 
680
  <div class="form-group row">
681
  <label for="captcha_secret_key" class="col-sm-3 col-form-label text-right">
682
+ <?php esc_html_e( 'reCAPTCHA secret key', 'subscribe-to-comments-reloaded' ) ?></label>
683
  <div class="col-sm-7">
684
  <input type="text" name="options[captcha_secret_key]" id="captcha_secret_key"
685
  class="form-control form-control-input-3"
686
  value="<?php echo esc_attr( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'captcha_secret_key', '' ) ); ?>">
687
 
688
  <div class="helpDescription subsOptDescriptions"
689
+ data-content="<?php esc_attr_e( "The secret key for Google reCAPTCHA.", 'subscribe-to-comments-reloaded' ); ?>"
690
  data-placement="right"
691
+ aria-label="<?php esc_attr_e( "The secret key for Google reCAPTCHA.", 'subscribe-to-comments-reloaded' ); ?>">
692
  <i class="fas fa-question-circle"></i>
693
  </div>
694
  </div>
696
 
697
  <div class="form-group row">
698
  <label for="blacklisted_emails" class="col-sm-3 col-form-label text-right">
699
+ <?php esc_html_e( 'Blacklisted Emails', 'subscribe-to-comments-reloaded' ) ?></label>
700
  <div class="col-sm-7">
701
  <textarea name="options[blacklisted_emails]" id="blacklisted_emails"
702
  class="form-control form-control-input-9" cols="10" rows="6"
703
  ><?php echo esc_textarea( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'blacklisted_emails', '' ) ); ?></textarea>
704
 
705
  <div class="helpDescription subsOptDescriptions"
706
+ data-content="<?php esc_attr_e( "Add a comma separated list of emails to blacklist them from subscribing to comments. Example: example@example.com, mail@mail.com", 'subscribe-to-comments-reloaded' ); ?>"
707
  data-placement="right"
708
+ aria-label="<?php esc_attr_e( "Add a comma separated list of emails to blacklist them from subscribing to comments. Example: example@example.com, mail@mail.com", 'subscribe-to-comments-reloaded' ); ?>">
709
  <i class="fas fa-question-circle"></i>
710
  </div>
711
  </div>
715
 
716
  <div class="form-group row">
717
  <label for="unique_key" class="col-sm-3 col-form-label text-right">
718
+ <?php esc_html_e( 'StCR Unique Key', 'subscribe-to-comments-reloaded' ) ?></label>
719
  <div class="col-sm-7">
720
 
721
  <?php
722
  if ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'unique_key' ) == "" ) {
723
 
724
  echo "<div class=\"alert alert-danger\" role=\"alert\" style='font-size: 0.85rem;'>";
725
+ echo '<strong>' . esc_html__( "This Unique Key is not set, please click the following button to ", 'subscribe-to-comments-reloaded' ) . '</strong>';
726
+ echo "<input type='submit' value='" . esc_attr__( 'Generate', 'subscribe-to-comments-reloaded' ) ."' class='btn btn-secondary subscribe-form-button' name='generate_key' >";
727
  echo "</div>";
728
  }
729
  else {
737
 
738
 
739
  <div class="helpDescription subsOptDescriptions"
740
+ data-content="<?php esc_attr_e( "This Unique Key will be use to send the notification to your subscribers with more security.", 'subscribe-to-comments-reloaded' ); ?>"
741
  data-placement="right"
742
+ aria-label="<?php esc_attr_e( "This Unique Key will be use to send the notification to your subscribers with more security.", 'subscribe-to-comments-reloaded' ); ?>">
743
  <i class="fas fa-question-circle"></i>
744
  </div>
745
  </div>
747
 
748
  <div class="form-group row">
749
  <label for="" class="col-sm-3 col-form-label text-right">
750
+ <?php esc_html_e( 'Reset All Options', 'subscribe-to-comments-reloaded' ) ?>
751
  </label>
752
  <div class="col-sm-7">
753
 
754
  <div class="alert alert-danger" role="alert">
755
  <strong>Danger!</strong>
756
  <p>
757
+ <?php esc_html_e( 'This will reset all the options and messages of the plugin. Please proceed with caution.', 'subscribe-to-comments-reloaded' ); ?>
758
  </p>
759
 
760
  <p>
761
+ <?php echo wp_kses( __( '<strong>Yes</strong> = Delete Options including subscriptions.', 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ); ?><br/>
762
+ <?php echo wp_kses( __( '<strong>No</strong> = Only delete the StCR Options.', 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ); ?>
763
  </p>
764
 
765
 
767
  <input type="radio" class="switch-input" name="options[delete_options_subscriptions]"
768
  value="yes" id="delete_options_subscriptions-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'delete_options_subscriptions' ) == 'yes' ) ? ' checked' : ''; ?> />
769
  <label for="delete_options_subscriptions-yes" class="switch-label switch-label-off">
770
+ <?php esc_html_e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
771
  </label>
772
  <input type="radio" class="switch-input" name="options[delete_options_subscriptions]" value="no" id="delete_options_subscriptions-no"
773
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'delete_options_subscriptions' ) == 'no' ) ? ' checked' : ''; ?> />
774
  <label for="delete_options_subscriptions-no" class="switch-label switch-label-on">
775
+ <?php esc_html_e( 'No', 'subscribe-to-comments-reloaded' ) ?>
776
  </label>
777
  <span class="switch-selection"></span>
778
  </div>
786
  <div class="form-group row">
787
  <div class="col-sm-9 offset-sm-1">
788
  <button type="submit" class="btn btn-primary subscribe-form-button" name="Submit">
789
+ <?php esc_html_e( 'Save Changes', 'subscribe-to-comments-reloaded' ) ?>
790
  </button>
791
  </div>
792
  </div>
options/stcr_support.php CHANGED
@@ -17,21 +17,21 @@ if ( ! function_exists( 'is_admin' ) || ! is_admin() ) {
17
  <div class="card-body">
18
  <div class="card-text">
19
 
20
- <h5><?php _e( "You can help", 'subscribe-to-comments-reloaded' ) ?></h5>
21
- <p><?php _e( "Please consider blogging about my plugin with a link to the plugin's page. Please let your readers know what makes your blog better. You can also contribute donating your time: do not hesitate to send me bug reports, your localization files, ideas on how to improve <strong>Subscribe to Comments Reloaded</strong> and so on. Whatever you do, thanks for using my plugin!", 'subscribe-to-comments-reloaded' ) ?></p>
22
 
23
- <h5><?php _e( "Subscribe to the Beta testers", 'subscribe-to-comments-reloaded' ) ?></h5>
24
- <p><?php _e( "Before a new Update we release a Beta version so that our current users can give us feedback if they find a bug, If you want to join the tester list you can add your email <a href='http://eepurl.com/biCk1b' target='_blank'>here</a>", 'subscribe-to-comments-reloaded' ) ?></h5></p>
25
 
26
- <h5><?php _e( "Vote and show your appreciation", 'subscribe-to-comments-reloaded' ) ?></h5>
27
- <p><?php _e( 'Tell other people if <strong>Subscribe to Comments Reloaded</strong> works for you and how good it is. <a href="http://wordpress.org/extend/plugins/subscribe-to-comments-reloaded/">Rate it</a> on its Plugin Directory page.', 'subscribe-to-comments-reloaded' ) ?></p>
28
 
29
- <h5><?php _e( "Did you find a Bug on the plugin?", 'subscribe-to-comments-reloaded' ) ?></h5>
30
- <p><?php _e( 'Please report any bug on the <a href="https://github.com/stcr/subscribe-to-comments-reloaded/issues/new?title=Bug%20Report:%20%3Cshort%20description%3E&labels=bug" target="_blank">GitHub</a> Page rather than on the WordPress Support page.', 'subscribe-to-comments-reloaded' ) ?>
31
  </p>
32
  <div class="alert alert-info" role="alert">
33
  <strong>Heads up!</strong>
34
- <p><?php printf( __( 'The options on the WordPress forum at very limited to share media information, so I urge you to use GitHub to report any issue, you will get a better and faster experience than in WordPress. And you can use <a href="%s" target="_blank" >Markdown syntax</a>.', 'subscribe-to-comments-reloaded' ), "https://guides.github.com/features/mastering-markdown/" ); ?></p>
35
  </div>
36
  </div>
37
  </div>
17
  <div class="card-body">
18
  <div class="card-text">
19
 
20
+ <h5><?php esc_html_e( "You can help", 'subscribe-to-comments-reloaded' ) ?></h5>
21
+ <p><?php echo wp_kses( __( "Please consider blogging about my plugin with a link to the plugin's page. Please let your readers know what makes your blog better. You can also contribute donating your time: do not hesitate to send me bug reports, your localization files, ideas on how to improve <strong>Subscribe to Comments Reloaded</strong> and so on. Whatever you do, thanks for using my plugin!", 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ); ?></p>
22
 
23
+ <h5><?php esc_html_e( "Subscribe to the Beta testers", 'subscribe-to-comments-reloaded' ) ?></h5>
24
+ <p><?php echo wp_kses( __( "Before a new Update we release a Beta version so that our current users can give us feedback if they find a bug, If you want to join the tester list you can add your email <a href='http://eepurl.com/biCk1b' target='_blank'>here</a>", 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ); ?></h5></p>
25
 
26
+ <h5><?php esc_html_e( "Vote and show your appreciation", 'subscribe-to-comments-reloaded' ) ?></h5>
27
+ <p><?php echo wp_kses( __( 'Tell other people if <strong>Subscribe to Comments Reloaded</strong> works for you and how good it is. <a href="http://wordpress.org/extend/plugins/subscribe-to-comments-reloaded/">Rate it</a> on its Plugin Directory page.', 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ); ?></p>
28
 
29
+ <h5><?php esc_html_e( "Did you find a Bug on the plugin?", 'subscribe-to-comments-reloaded' ) ?></h5>
30
+ <p><?php echo wp_kses( __( 'Please report any bug on the <a href="https://github.com/stcr/subscribe-to-comments-reloaded/issues/new?title=Bug%20Report:%20%3Cshort%20description%3E&labels=bug" target="_blank">GitHub</a> Page rather than on the WordPress Support page.', 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ); ?>
31
  </p>
32
  <div class="alert alert-info" role="alert">
33
  <strong>Heads up!</strong>
34
+ <p><?php printf( wp_kses( __( 'The options on the WordPress forum at very limited to share media information, so I urge you to use GitHub to report any issue, you will get a better and faster experience than in WordPress. And you can use <a href="%s" target="_blank" >Markdown syntax</a>.', 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ), "https://guides.github.com/features/mastering-markdown/" ); ?></p>
35
  </div>
36
  </div>
37
  </div>
options/stcr_system.php CHANGED
@@ -45,7 +45,7 @@ if ( array_key_exists( "purge_log", $_POST ) ) {
45
  if ( empty( $_POST['stcr_purge_log_nonce'] ) ) {
46
  return;
47
  }
48
-
49
  if ( ! wp_verify_nonce( $_POST['stcr_purge_log_nonce'], 'stcr_purge_log_nonce' ) ) {
50
  return;
51
  }
@@ -67,47 +67,44 @@ if ( array_key_exists( "purge_log", $_POST ) ) {
67
  if( unlink($file_path) )
68
  {
69
  // show success message.
70
- $message = __( 'The log file has been successfully deleted.', 'subscribe-to-comments-reloaded' );
71
  $message_type = "notice-success";
72
  }
73
  else
74
  {
75
- $message = __( 'Can\'t delete the log file, check the file permissions.', 'subscribe-to-comments-reloaded' );
76
  $message_type = "notice-warning";
77
  }
78
  }
79
  else
80
  {
81
- $message = __( 'The log file does not exists.', 'subscribe-to-comments-reloaded' );
82
  $message_type = "notice-warning";
83
  }
84
- echo "<div class='notice $message_type'><p>";
85
- echo $message;
86
- // echo "<br><pre>$file_path$file_name</pre>";
87
  echo "</p></div>\n";
88
  }
89
  else {
90
-
91
  if( isset( $_POST['options'] ) ) { // Update options
92
 
93
  if ( empty( $_POST['stcr_save_system_nonce'] ) ) {
94
  return;
95
  }
96
-
97
  if ( ! wp_verify_nonce( $_POST['stcr_save_system_nonce'], 'stcr_save_system_nonce' ) ) {
98
  return;
99
  }
100
-
101
  if ( ! current_user_can( 'manage_options' ) ) {
102
  return;
103
  }
104
 
105
- $faulty_fields = array();
106
-
107
- foreach ( $_POST['options'] as $option => $value )
108
  {
109
- // echo $option . '<br>';
110
-
111
  if ( ! $wp_subscribe_reloaded->stcr->utils->stcr_update_menu_options( $option, $value, $options[$option] ) )
112
  {
113
  array_push( $faulty_fields, $option );
@@ -133,12 +130,12 @@ else {
133
  // Display an alert in the admin interface if something went wrong
134
  echo '<div class="updated"><p>';
135
  if ( sizeof( $faulty_fields ) == 0 ) {
136
- _e( 'Your settings have been successfully updated.', 'subscribe-to-comments-reloaded' );
137
  } else {
138
- _e( 'There was an error updating the options.', 'subscribe-to-comments-reloaded' );
139
  // echo ' <strong>' . substr( $faulty_fields, 0, - 2 ) . '</strong>';
140
  }
141
- echo "</p></div>";
142
  }
143
  }
144
  ?>
@@ -161,58 +158,58 @@ else {
161
  <form action="" method="post">
162
 
163
  <div class="form-group row" style="margin-bottom: 0;">
164
- <label for="enable_log_data" class="col-sm-3 col-form-label text-right"><?php _e( 'Enable Log Information', 'subscribe-to-comments-reloaded' ) ?></label>
165
  <div class="col-sm-7">
166
  <div class="switch">
167
  <input type="radio" class="switch-input" name="options[enable_log_data]"
168
  value="yes" id="enable_log_data-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_log_data' ) == 'yes' ) ? ' checked' : ''; ?> />
169
  <label for="enable_log_data-yes" class="switch-label switch-label-off">
170
- <?php _e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
171
  </label>
172
  <input type="radio" class="switch-input" name="options[enable_log_data]" value="no" id="enable_log_data-no"
173
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_log_data' ) == 'no' ) ? ' checked' : ''; ?> />
174
  <label for="enable_log_data-no" class="switch-label switch-label-on">
175
- <?php _e( 'No', 'subscribe-to-comments-reloaded' ) ?>
176
  </label>
177
  <span class="switch-selection"></span>
178
  </div>
179
 
180
  <div class="helpDescription subsOptDescriptions"
181
- data-content="<?php _e( "If enabled, will log information of the plugin. Helpful for debugging purposes.<p>The file is stored under the path <code>Plugins Dir>subscribe-to-comments-reloaded>utils>log.txt</code></code></p>", 'subscribe-to-comments-reloaded' ); ?>"
182
  data-placement="right"
183
- aria-label="<?php _e( "If enabled, will log information of the plugin. Helpful for debugging purposes.", 'subscribe-to-comments-reloaded' ); ?>">
184
  <i class="fas fa-question-circle"></i>
185
  </div>
186
  </div>
187
  </div>
188
 
189
  <div class="form-group row" style="margin-bottom: 0;">
190
- <label for="auto_clean_log_data" class="col-sm-3 col-form-label text-right"><?php _e( 'Enable Auto clean log data', 'subscribe-to-comments-reloaded' ) ?></label>
191
  <div class="col-sm-7">
192
  <div class="switch">
193
  <input type="radio" class="switch-input" name="options[auto_clean_log_data]"
194
  value="yes" id="auto_clean_log_data-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'auto_clean_log_data' ) == 'yes' ) ? ' checked' : ''; ?> />
195
  <label for="auto_clean_log_data-yes" class="switch-label switch-label-off">
196
- <?php _e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
197
  </label>
198
  <input type="radio" class="switch-input" name="options[auto_clean_log_data]" value="no" id="auto_clean_log_data-no"
199
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'auto_clean_log_data' ) == 'no' ) ? ' checked' : ''; ?> />
200
  <label for="auto_clean_log_data-no" class="switch-label switch-label-on">
201
- <?php _e( 'No', 'subscribe-to-comments-reloaded' ) ?>
202
  </label>
203
  <span class="switch-selection"></span>
204
  </div>
205
 
206
  <select class="auto_clean_log_frecuency form-control form-control-select" name="options[auto_clean_log_frecuency]">
207
- <option value="hourly" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'auto_clean_log_frecuency' ) === 'hourly' ) ? "selected='selected'" : ''; ?>><?php _e( 'Hourly', 'subscribe-to-comments-reloaded' ); ?></option>
208
- <option value="twicedaily" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'auto_clean_log_frecuency' ) === 'twicedaily' ) ? "selected='selected'" : ''; ?>><?php _e( 'Twice Daily', 'subscribe-to-comments-reloaded' ); ?></option>
209
- <option value="daily" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'auto_clean_log_frecuency' ) === 'daily' ) ? "selected='selected'" : ''; ?>><?php _e( 'Daily', 'subscribe-to-comments-reloaded' ); ?></option>
210
  </select>
211
 
212
  <div class="helpDescription subsOptDescriptions"
213
- data-content="<?php _e( "If enabled, StCR will auto clean your information according to the frequency that you defined on the dropdown.", 'subscribe-to-comments-reloaded' ); ?>"
214
  data-placement="right"
215
- aria-label="<?php _e( "If enabled, StCR will auto clean your information according to the frequency that you defined on the dropdown.", 'subscribe-to-comments-reloaded' ); ?>">
216
  <i class="fas fa-question-circle"></i>
217
  </div>
218
  </div>
@@ -220,10 +217,10 @@ else {
220
 
221
  <div class="form-group row">
222
  <label for="purge_log" class="col-sm-3 col-form-label text-right">
223
- <?php _e( 'Clean Up Log Archive', 'subscribe-to-comments-reloaded' ) ?></label>
224
  <div class="col-sm-7">
225
 
226
- <span style="font-size: 0.9rem;"><?php _e(
227
  "If you want to clean up the log archive please click the following button",
228
  'subscribe-to-comments-reloaded'
229
  ); ?>
@@ -236,10 +233,10 @@ else {
236
 
237
  <div class="form-group row">
238
  <label for="generate_system_info" class="col-sm-3 col-form-label text-right">
239
- <?php _e( 'Download System Info File', 'subscribe-to-comments-reloaded' ) ?></label>
240
  <div class="col-sm-7">
241
  <a class="download_report btn btn-download subscribe-form-button" href="#">
242
- <?php _e( 'Download', 'subscribe-to-comments-reloaded' ); ?>
243
  </a>
244
  </div>
245
  </div>
@@ -247,12 +244,12 @@ else {
247
  <div class="form-group row">
248
  <div class="col-sm-9 offset-sm-3">
249
  <button type="submit" class="btn btn-primary subscribe-form-button" name="Submit">
250
- <?php _e( 'Save Changes', 'subscribe-to-comments-reloaded' ) ?>
251
  </button>
252
  </div>
253
  </div>
254
 
255
- <h4><?php _e( 'System Information', 'subscribe-to-comments-reloaded' ) ?></h4><br>
256
 
257
  <!-- Plugin Info -->
258
  <?php
@@ -262,23 +259,23 @@ else {
262
  ?>
263
  <table class="table table-sm table-hover table-striped system-info-table" style="font-size: 0.8em">
264
  <thead style="background-color: #4688d2; color: #ffffff;">
265
- <th style="textalilfe" class="text-left" colspan="2"><?php _e( 'Plugin Info', 'subscribe-to-comments-reloaded' ) ?></th>
266
  </thead>
267
  <tbody>
268
  <tr>
269
- <td class="text-left"><?php _e( 'Subscribers', 'subscribe-toc-omments-reloaded' ); ?></td>
270
- <td class="text-left"><?php echo $total_subscribers; ?></td>
271
  </tr>
272
  <tr>
273
- <td class="text-left"><?php _e( 'Subscriptions', 'subscribe-toc-omments-reloaded' ); ?></td>
274
- <td class="text-left"><?php echo $total_subscriptions; ?></td>
275
  </tr>
276
  </tbody>
277
  </table>
278
 
279
  <table class="table table-sm table-hover table-striped system-info-table" style="font-size: 0.8em">
280
  <thead style="background-color: #4688d2; color: #ffffff;">
281
- <th style="textalilfe" class="text-left" colspan="2"><?php _e( 'WordPress Environment', 'subscribe-to-comments-reloaded' ) ?></th>
282
  </thead>
283
  <?php
284
 
@@ -316,7 +313,7 @@ else {
316
  }
317
 
318
  if ( $memory < 67108864 ) {
319
- $memoryValue = '<div class="system-error"><span class="dashicons dashicons-warning"></span> ' . sprintf( __( '%s - We recommend setting memory to at least 64 MB. See: %s', 'subscribe-to-comments-reloaded' ), size_format( $memory ), '<a href="https://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP" target="_blank">' . __( 'Increasing memory allocated to PHP', 'subscribe-to-comments-reloaded' ) . '</a>' ) . '</div>';
320
  $stcr_system_information['Wordpress Environment']["Memory Limit"] = "Memory under 64MB";
321
  }
322
  else {
@@ -348,15 +345,15 @@ else {
348
 
349
  $wordpressEnvironment = array(
350
  1 => array(
351
- __( "Home URL", 'subscribe-to-comments-reloaded' ),
352
  $wpHome
353
  ),
354
  2 => array(
355
- __( "Site URL", 'subscribe-to-comments-reloaded' ),
356
  $wpsiteurl
357
  ),
358
  3 => array(
359
- __( "WordPress Version", 'subscribe-to-comments-reloaded' ),
360
  $wpVersion
361
  ),
362
  4 => array(
@@ -364,39 +361,39 @@ else {
364
  $wpMultisite ? '<span class="dashicons dashicons-yes"></span>' : 'No'
365
  ),
366
  5 => array(
367
- __( "Memory Limit", 'subscribe-to-comments-reloaded' ),
368
  $memoryValue
369
  ),
370
  6 => array(
371
- __( "WP Debug Mode", 'subscribe-to-comments-reloaded' ),
372
  $wpDebug
373
  ),
374
  7 => array(
375
- __( "WP Cron", 'subscribe-to-comments-reloaded' ),
376
  $wpCron
377
  ),
378
  8 => array(
379
- __( "Language", 'subscribe-to-comments-reloaded' ),
380
  $wpLanguage
381
  ),
382
  9 => array(
383
- __( "Permalink Structure", 'subscribe-to-comments-reloaded' ),
384
  $wpPermalink
385
  ),
386
  10 => array(
387
- __( "Table Prefix", 'subscribe-to-comments-reloaded' ),
388
  $wpTablePrefix
389
  ),
390
  11 => array(
391
- __( "Table Prefix Length", 'subscribe-to-comments-reloaded' ),
392
  $wpTablePrefixLength
393
  ),
394
  12 => array(
395
- __( "Table Prefix Status", 'subscribe-to-comments-reloaded' ),
396
  $wpTablePrefixStatus
397
  ),
398
  13 => array(
399
- __( "Registered Post Statuses", 'subscribe-to-comments-reloaded' ),
400
  $wpRegisteredPostStatuses
401
  )
402
  );
@@ -406,8 +403,8 @@ else {
406
  foreach ( $wordpressEnvironment as $key => $opt )
407
  {
408
  echo "<tr>";
409
- echo "<td class='text-left' style='min-width: 50px;'>{$opt[0]}</td>";
410
- echo "<td class='text-left'>{$opt[1]}</td>";
411
  echo "</tr>";
412
  }
413
  ?>
@@ -417,18 +414,18 @@ else {
417
  <!-- Server Environment -->
418
  <table class="table table-sm table-hover table-striped system-info-table" style="font-size: 0.8em">
419
  <thead style="background-color: #4688d2; color: #ffffff;">
420
- <th style="textalilfe" class="text-left" colspan="2"><?php _e( 'Server Environment', 'subscribe-to-comments-reloaded' ) ?></th>
421
  </thead>
422
  <?php
423
 
424
  $tlsCheck = false;
425
- $tlsCheckValue = __( 'Cannot Evaluate', 'subscribe-to-comments-reloaded' );
426
- $tlsRating = __( 'Not Available', 'subscribe-to-comments-reloaded' );
427
- $phpVersion = __( 'Not Available', 'subscribe-to-comments-reloaded' );
428
- $cURLVersion = __( 'Not Available', 'subscribe-to-comments-reloaded' );
429
- $MySQLSVersion = __( 'Not Available', 'subscribe-to-comments-reloaded' );
430
- $defaultTimezone = __( 'Not Available', 'subscribe-to-comments-reloaded' );
431
- $serverInfo = esc_html( $_SERVER['SERVER_SOFTWARE'] );
432
  $maxPostSize = size_format( $wp_subscribe_reloaded->stcr->utils->to_num_ini_notation( ini_get( 'post_max_size' ) ) );
433
 
434
  // Get the SSL status.
@@ -440,7 +437,7 @@ else {
440
  {
441
  $tlsCheck = json_decode( $tlsCheck );
442
  /* translators: %s: SSL connection response */
443
- $tlsCheckValue = sprintf( __( 'Connection uses %s', 'subscribe-to-comments-reloaded' ), esc_html( $tlsCheck->tls_version ) );
444
  }
445
  $stcr_system_information['Server Environment']["TLS Connection"] = $tlsCheckValue;
446
  // Check TSL Rating
@@ -457,7 +454,7 @@ else {
457
 
458
  if ( version_compare( $phpVersion, '5.6', '<' ) )
459
  {
460
- $phpVersion = '<div class="system-error"><span class="dashicons dashicons-warning"></span> ' . sprintf( __( '%s - We recommend a minimum PHP version of 5.6. See: %s', 'subscribe-to-comments-reloaded' ), esc_html( $phpVersion ), '<a href="http://subscribe-reloaded.com/about/" target="_blank">' . __( 'PHP Requirements in StCR', 'subscribe-to-comments-reloaded' ) . '</a>' ) . '</div>';
461
  $stcr_system_information['Server Environment']["PHP Version"] = sprintf( '%s - We recommend a minimum PHP version of 5.6. See: %s', esc_html( $phpVersion ), '<a href="http://subscribe-reloaded.com/about/" target="_blank">PHP Requirements in StCR</a>' );
462
  }
463
  else
@@ -468,7 +465,7 @@ else {
468
  }
469
  else
470
  {
471
- $phpVersion = __( "Couldn't determine PHP version because the function phpversion() doesn't exist.", 'subscribe-to-comments-reloaded' );
472
  $stcr_system_information['Server Environment']["PHP Version"] = "Couldn't determine PHP version because the function phpversion() doesn't exist.";
473
  }
474
 
@@ -486,7 +483,7 @@ else {
486
 
487
  if ( version_compare( $cURLVersionNumber, '7.40', '<' ) )
488
  {
489
- $cURLVersion = '<div class="system-error"><span class="dashicons dashicons-warning"></span> ' . sprintf( __( '%s - We recommend a minimum cURL version of 7.40.', 'subscribe-to-comments-reloaded' ), esc_html( $cURLVersionNumber . ', ' . $cURLSSLVersion ) ) . '</div>';
490
  $stcr_system_information['Server Environment']["cURL Version"] = sprintf('%s - We recommend a minimum cURL version of 7.40.', esc_html( $cURLVersionNumber . ', ' . $cURLSSLVersion ) );
491
  }
492
  else
@@ -504,7 +501,7 @@ else {
504
  // check MySQL version
505
  global $wp_version, $required_mysql_version;
506
  if ( version_compare( $wpdb->db_version(), $required_mysql_version, '<' ) ) {
507
- $MySQLSVersion = '<div class="system-error"><span class="dashicons dashicons-warning"></span> ' . sprintf( __( '<strong>ERROR</strong>: WordPress %1$s requires MySQL %2$s or higher' ), $wp_version, $required_mysql_version ) . '</div>';
508
  $stcr_system_information['Server Environment']["MySQL Version"] = $wpdb->db_version();
509
  } else {
510
  $MySQLSVersion = '<div class="system-success">' . $wpdb->db_version() . '</div>';
@@ -516,7 +513,7 @@ else {
516
 
517
  if ( 'UTC' !== $defaultTimezone )
518
  {
519
- $defaultTimezone = '<div class="system-error"><span class="dashicons dashicons-warning"></span> ' . sprintf( __( 'Default timezone is %s - it should be UTC', 'subscribe-to-comments-reloaded' ), $defaultTimezone ) . '</div>';
520
  $stcr_system_information['Server Environment']["Default Timezone is UTC"] = sprintf('Default timezone is %s - it should be UTC', $defaultTimezone );
521
  }
522
  else
@@ -525,28 +522,28 @@ else {
525
  $stcr_system_information['Server Environment']["Default Timezone is UTC"] = "Yes";
526
  }
527
  // DOMDocument
528
- $DOMDocument = __( 'Not Available', 'subscribe-to-comments-reloaded' );
529
  if ( class_exists( 'DOMDocument' ) )
530
  {
531
  $DOMDocument = '<div class="system-success"><span class="dashicons dashicons-yes"></span></div>';
532
  $stcr_system_information['Server Environment']["DOMDocument"] = "Yes";
533
  }
534
  else {
535
- $DOMDocument = sprintf( __( 'Your server does not have the %s class enabled - HTML/Multipart emails, and also some extensions, will not work without DOMDocument.', 'subscribe-to-comments-reloaded' ), '<a href="https://php.net/manual/en/class.domdocument.php">DOMDocument</a>' );
536
  $stcr_system_information['Server Environment']["DOMDocument"] = sprintf( 'Your server does not have the %s class enabled - HTML/Multipart emails, and also some extensions, will not work without DOMDocument.', '<a href="https://php.net/manual/en/class.domdocument.php">DOMDocument</a>' );
537
  }
538
  // Check gzip
539
- $gzip = __( 'Not Available', 'subscribe-to-comments-reloaded' );
540
  if ( is_callable( 'gzopen' ) )
541
  {
542
  $gzip = '<div class="system-success"><span class="dashicons dashicons-yes"></span></div>';
543
  $stcr_system_information['Server Environment']["gzip"] = "Yes";
544
  }
545
  else {
546
- $gzip = sprintf( __( 'Your server does not support the %s function - this is used for file compression and decompression.', 'subscribe-to-comments-reloaded' ), '<a href="https://php.net/manual/en/zlib.installation.php">gzopen</a>' );
547
  $stcr_system_information['Server Environment']["gzip"] = sprintf( 'Your server does not support the %s function - this is used for file compression and decompression.', '<a href="https://php.net/manual/en/zlib.installation.php">gzopen</a>' );
548
  }// Check GD
549
- $gd = __( 'Not Available', 'subscribe-to-comments-reloaded' );
550
  if ( extension_loaded( 'gd' ) && function_exists( 'gd_info' ) )
551
  {
552
  $gd = '<div class="system-success"><span class="dashicons dashicons-yes"></span></div>';
@@ -560,59 +557,59 @@ else {
560
  // Define array of values
561
  $serverEnvironment = array(
562
  1 => array(
563
- __( "TLS Connection", 'subscribe-to-comments-reloaded' ),
564
  $tlsCheckValue
565
  ),
566
  2 => array(
567
- __( "TLS Rating", 'subscribe-to-comments-reloaded' ),
568
  $tlsRating
569
  ),
570
  3 => array(
571
- __( "Server Info", 'subscribe-to-comments-reloaded' ),
572
  $serverInfo
573
  ),
574
  4 => array(
575
- __( "PHP Version", 'subscribe-to-comments-reloaded' ),
576
  $phpVersion
577
  ),
578
  5 => array(
579
- __( "PHP Post Max Size", 'subscribe-to-comments-reloaded' ),
580
  $maxPostSize
581
  ),
582
  6 => array(
583
- __( "PHP Max Execution Time", 'subscribe-to-comments-reloaded' ),
584
  ini_get( 'max_execution_time' )
585
  ),
586
  7 => array(
587
- __( "PHP Max Input Vars", 'subscribe-to-comments-reloaded' ),
588
  ini_get( 'max_input_vars' )
589
  ),
590
  8 => array(
591
- __( "PHP Max Upload Size", 'subscribe-to-comments-reloaded' ),
592
  size_format( wp_max_upload_size() )
593
  ),
594
  9 => array(
595
- __( "cURL Version", 'subscribe-to-comments-reloaded' ),
596
  $cURLVersion
597
  ),
598
  10 => array(
599
- __( "MySQL Version", 'subscribe-to-comments-reloaded' ),
600
  $MySQLSVersion
601
  ),
602
  11 => array(
603
- __( "Default Timezone is UTC", 'subscribe-to-comments-reloaded' ),
604
  $defaultTimezone
605
  ),
606
  12 => array(
607
- __( "DOMDocument", 'subscribe-to-comments-reloaded' ),
608
  $DOMDocument
609
  ),
610
  13 => array(
611
- __( "gzip", 'subscribe-to-comments-reloaded' ),
612
  $gzip
613
  ),
614
  14 => array(
615
- __( "GD Graphics Library", 'subscribe-to-comments-reloaded' ),
616
  $gd
617
  )
618
  );
@@ -622,8 +619,8 @@ else {
622
  foreach ( $serverEnvironment as $key => $opt )
623
  {
624
  echo "<tr>";
625
- echo "<td class='text-left' style='min-width: 50px;'>{$opt[0]}</td>";
626
- echo "<td class='text-left'>{$opt[1]}</td>";
627
  echo "</tr>";
628
  }
629
  ?>
@@ -636,7 +633,7 @@ else {
636
  <!-- Active Plugins -->
637
  <table class="table table-sm table-hover table-striped system-info-table" style="font-size: 0.8em">
638
  <thead style="background-color: #4688d2; color: #ffffff;">
639
- <th style="textalilfe" class="text-left" colspan="2"><?php _e( 'Active Plugins', 'subscribe-to-comments-reloaded' ) ?></th>
640
  </thead>
641
 
642
  <tbody>
@@ -681,8 +678,8 @@ else {
681
  . esc_html( $plugin_data['Version'] );
682
  }
683
  echo "<tr>";
684
- echo "<td class='text-left' style='min-width: 50px;'>{$plugin_name}</td>";
685
- echo "<td class='text-left'>{$author_name}</td>";
686
  echo "</tr>";
687
  $stcr_system_information['WordPress Active Plugins'][$plugin_data['Name']] = $plugin_data;
688
  }
@@ -693,7 +690,7 @@ else {
693
  <!-- Inactive Plugins -->
694
  <table class="table table-sm table-hover table-striped system-info-table" style="font-size: 0.8em">
695
  <thead style="background-color: #4688d2; color: #ffffff;">
696
- <th style="textalilfe" class="text-left" colspan="2"><?php _e( 'Inactive Plugins', 'subscribe-to-comments-reloaded' ) ?></th>
697
  </thead>
698
 
699
  <tbody>
@@ -738,8 +735,8 @@ else {
738
  . esc_html( $plugin_data['Version'] );
739
  }
740
  echo "<tr>";
741
- echo "<td class='text-left' style='min-width: 50px;'>{$plugin_name}</td>";
742
- echo "<td class='text-left'>{$author_name}</td>";
743
  echo "</tr>";
744
  $stcr_system_information['WordPress Inactive Plugins'][$plugin_data['Name']] = $plugin_data;
745
  }
45
  if ( empty( $_POST['stcr_purge_log_nonce'] ) ) {
46
  return;
47
  }
48
+
49
  if ( ! wp_verify_nonce( $_POST['stcr_purge_log_nonce'], 'stcr_purge_log_nonce' ) ) {
50
  return;
51
  }
67
  if( unlink($file_path) )
68
  {
69
  // show success message.
70
+ $message = esc_html__( 'The log file has been successfully deleted.', 'subscribe-to-comments-reloaded' );
71
  $message_type = "notice-success";
72
  }
73
  else
74
  {
75
+ $message = esc_html__( 'Can\'t delete the log file, check the file permissions.', 'subscribe-to-comments-reloaded' );
76
  $message_type = "notice-warning";
77
  }
78
  }
79
  else
80
  {
81
+ $message = esc_html__( 'The log file does not exists.', 'subscribe-to-comments-reloaded' );
82
  $message_type = "notice-warning";
83
  }
84
+ echo "<div class='notice " . esc_attr( $message_type ) . "'><p>";
85
+ echo esc_html( $message );
 
86
  echo "</p></div>\n";
87
  }
88
  else {
89
+
90
  if( isset( $_POST['options'] ) ) { // Update options
91
 
92
  if ( empty( $_POST['stcr_save_system_nonce'] ) ) {
93
  return;
94
  }
95
+
96
  if ( ! wp_verify_nonce( $_POST['stcr_save_system_nonce'], 'stcr_save_system_nonce' ) ) {
97
  return;
98
  }
99
+
100
  if ( ! current_user_can( 'manage_options' ) ) {
101
  return;
102
  }
103
 
104
+ $faulty_fields = array();
105
+ $subscribe_options = wp_unslash( $_POST['options'] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput
106
+ foreach ( $subscribe_options as $option => $value )
107
  {
 
 
108
  if ( ! $wp_subscribe_reloaded->stcr->utils->stcr_update_menu_options( $option, $value, $options[$option] ) )
109
  {
110
  array_push( $faulty_fields, $option );
130
  // Display an alert in the admin interface if something went wrong
131
  echo '<div class="updated"><p>';
132
  if ( sizeof( $faulty_fields ) == 0 ) {
133
+ esc_html_e( 'Your settings have been successfully updated.', 'subscribe-to-comments-reloaded' );
134
  } else {
135
+ esc_html_e( 'There was an error updating the options.', 'subscribe-to-comments-reloaded' );
136
  // echo ' <strong>' . substr( $faulty_fields, 0, - 2 ) . '</strong>';
137
  }
138
+ echo '</p></div>';
139
  }
140
  }
141
  ?>
158
  <form action="" method="post">
159
 
160
  <div class="form-group row" style="margin-bottom: 0;">
161
+ <label for="enable_log_data" class="col-sm-3 col-form-label text-right"><?php esc_html_e( 'Enable Log Information', 'subscribe-to-comments-reloaded' ) ?></label>
162
  <div class="col-sm-7">
163
  <div class="switch">
164
  <input type="radio" class="switch-input" name="options[enable_log_data]"
165
  value="yes" id="enable_log_data-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_log_data' ) == 'yes' ) ? ' checked' : ''; ?> />
166
  <label for="enable_log_data-yes" class="switch-label switch-label-off">
167
+ <?php esc_html_e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
168
  </label>
169
  <input type="radio" class="switch-input" name="options[enable_log_data]" value="no" id="enable_log_data-no"
170
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'enable_log_data' ) == 'no' ) ? ' checked' : ''; ?> />
171
  <label for="enable_log_data-no" class="switch-label switch-label-on">
172
+ <?php esc_html_e( 'No', 'subscribe-to-comments-reloaded' ) ?>
173
  </label>
174
  <span class="switch-selection"></span>
175
  </div>
176
 
177
  <div class="helpDescription subsOptDescriptions"
178
+ data-content="<?php esc_attr_e( "If enabled, will log information of the plugin. Helpful for debugging purposes.<p>The file is stored under the path <code>Plugins Dir>subscribe-to-comments-reloaded>utils>log.txt</code></code></p>", 'subscribe-to-comments-reloaded' ); ?>"
179
  data-placement="right"
180
+ aria-label="<?php esc_attr_e( "If enabled, will log information of the plugin. Helpful for debugging purposes.", 'subscribe-to-comments-reloaded' ); ?>">
181
  <i class="fas fa-question-circle"></i>
182
  </div>
183
  </div>
184
  </div>
185
 
186
  <div class="form-group row" style="margin-bottom: 0;">
187
+ <label for="auto_clean_log_data" class="col-sm-3 col-form-label text-right"><?php esc_html_e( 'Enable Auto clean log data', 'subscribe-to-comments-reloaded' ) ?></label>
188
  <div class="col-sm-7">
189
  <div class="switch">
190
  <input type="radio" class="switch-input" name="options[auto_clean_log_data]"
191
  value="yes" id="auto_clean_log_data-yes" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'auto_clean_log_data' ) == 'yes' ) ? ' checked' : ''; ?> />
192
  <label for="auto_clean_log_data-yes" class="switch-label switch-label-off">
193
+ <?php esc_html_e( 'Yes', 'subscribe-to-comments-reloaded' ) ?>
194
  </label>
195
  <input type="radio" class="switch-input" name="options[auto_clean_log_data]" value="no" id="auto_clean_log_data-no"
196
  <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'auto_clean_log_data' ) == 'no' ) ? ' checked' : ''; ?> />
197
  <label for="auto_clean_log_data-no" class="switch-label switch-label-on">
198
+ <?php esc_html_e( 'No', 'subscribe-to-comments-reloaded' ) ?>
199
  </label>
200
  <span class="switch-selection"></span>
201
  </div>
202
 
203
  <select class="auto_clean_log_frecuency form-control form-control-select" name="options[auto_clean_log_frecuency]">
204
+ <option value="hourly" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'auto_clean_log_frecuency' ) === 'hourly' ) ? "selected='selected'" : ''; ?>><?php esc_html_e( 'Hourly', 'subscribe-to-comments-reloaded' ); ?></option>
205
+ <option value="twicedaily" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'auto_clean_log_frecuency' ) === 'twicedaily' ) ? "selected='selected'" : ''; ?>><?php esc_html_e( 'Twice Daily', 'subscribe-to-comments-reloaded' ); ?></option>
206
+ <option value="daily" <?php echo ( $wp_subscribe_reloaded->stcr->utils->stcr_get_menu_options( 'auto_clean_log_frecuency' ) === 'daily' ) ? "selected='selected'" : ''; ?>><?php esc_html_e( 'Daily', 'subscribe-to-comments-reloaded' ); ?></option>
207
  </select>
208
 
209
  <div class="helpDescription subsOptDescriptions"
210
+ data-content="<?php esc_attr_e( "If enabled, StCR will auto clean your information according to the frequency that you defined on the dropdown.", 'subscribe-to-comments-reloaded' ); ?>"
211
  data-placement="right"
212
+ aria-label="<?php esc_attr_e( "If enabled, StCR will auto clean your information according to the frequency that you defined on the dropdown.", 'subscribe-to-comments-reloaded' ); ?>">
213
  <i class="fas fa-question-circle"></i>
214
  </div>
215
  </div>
217
 
218
  <div class="form-group row">
219
  <label for="purge_log" class="col-sm-3 col-form-label text-right">
220
+ <?php esc_html_e( 'Clean Up Log Archive', 'subscribe-to-comments-reloaded' ) ?></label>
221
  <div class="col-sm-7">
222
 
223
+ <span style="font-size: 0.9rem;"><?php esc_html_e(
224
  "If you want to clean up the log archive please click the following button",
225
  'subscribe-to-comments-reloaded'
226
  ); ?>
233
 
234
  <div class="form-group row">
235
  <label for="generate_system_info" class="col-sm-3 col-form-label text-right">
236
+ <?php esc_html_e( 'Download System Info File', 'subscribe-to-comments-reloaded' ) ?></label>
237
  <div class="col-sm-7">
238
  <a class="download_report btn btn-download subscribe-form-button" href="#">
239
+ <?php esc_html_e( 'Download', 'subscribe-to-comments-reloaded' ); ?>
240
  </a>
241
  </div>
242
  </div>
244
  <div class="form-group row">
245
  <div class="col-sm-9 offset-sm-3">
246
  <button type="submit" class="btn btn-primary subscribe-form-button" name="Submit">
247
+ <?php esc_html_e( 'Save Changes', 'subscribe-to-comments-reloaded' ) ?>
248
  </button>
249
  </div>
250
  </div>
251
 
252
+ <h4><?php esc_html_e( 'System Information', 'subscribe-to-comments-reloaded' ) ?></h4><br>
253
 
254
  <!-- Plugin Info -->
255
  <?php
259
  ?>
260
  <table class="table table-sm table-hover table-striped system-info-table" style="font-size: 0.8em">
261
  <thead style="background-color: #4688d2; color: #ffffff;">
262
+ <th style="textalilfe" class="text-left" colspan="2"><?php esc_html_e( 'Plugin Info', 'subscribe-to-comments-reloaded' ) ?></th>
263
  </thead>
264
  <tbody>
265
  <tr>
266
+ <td class="text-left"><?php esc_html_e( 'Subscribers', 'subscribe-toc-omments-reloaded' ); ?></td>
267
+ <td class="text-left"><?php echo esc_html( $total_subscribers ); ?></td>
268
  </tr>
269
  <tr>
270
+ <td class="text-left"><?php esc_html_e( 'Subscriptions', 'subscribe-toc-omments-reloaded' ); ?></td>
271
+ <td class="text-left"><?php echo esc_html( $total_subscriptions ); ?></td>
272
  </tr>
273
  </tbody>
274
  </table>
275
 
276
  <table class="table table-sm table-hover table-striped system-info-table" style="font-size: 0.8em">
277
  <thead style="background-color: #4688d2; color: #ffffff;">
278
+ <th style="textalilfe" class="text-left" colspan="2"><?php esc_html_e( 'WordPress Environment', 'subscribe-to-comments-reloaded' ) ?></th>
279
  </thead>
280
  <?php
281
 
313
  }
314
 
315
  if ( $memory < 67108864 ) {
316
+ $memoryValue = '<div class="system-error"><span class="dashicons dashicons-warning"></span> ' . sprintf( esc_html__( '%s - We recommend setting memory to at least 64 MB. See: %s', 'subscribe-to-comments-reloaded' ), size_format( $memory ), '<a href="https://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP" target="_blank">' . esc_html__( 'Increasing memory allocated to PHP', 'subscribe-to-comments-reloaded' ) . '</a>' ) . '</div>';
317
  $stcr_system_information['Wordpress Environment']["Memory Limit"] = "Memory under 64MB";
318
  }
319
  else {
345
 
346
  $wordpressEnvironment = array(
347
  1 => array(
348
+ esc_html__( "Home URL", 'subscribe-to-comments-reloaded' ),
349
  $wpHome
350
  ),
351
  2 => array(
352
+ esc_html__( "Site URL", 'subscribe-to-comments-reloaded' ),
353
  $wpsiteurl
354
  ),
355
  3 => array(
356
+ esc_html__( "WordPress Version", 'subscribe-to-comments-reloaded' ),
357
  $wpVersion
358
  ),
359
  4 => array(
361
  $wpMultisite ? '<span class="dashicons dashicons-yes"></span>' : 'No'
362
  ),
363
  5 => array(
364
+ esc_html__( "Memory Limit", 'subscribe-to-comments-reloaded' ),
365
  $memoryValue
366
  ),
367
  6 => array(
368
+ esc_html__( "WP Debug Mode", 'subscribe-to-comments-reloaded' ),
369
  $wpDebug
370
  ),
371
  7 => array(
372
+ esc_html__( "WP Cron", 'subscribe-to-comments-reloaded' ),
373
  $wpCron
374
  ),
375
  8 => array(
376
+ esc_html__( "Language", 'subscribe-to-comments-reloaded' ),
377
  $wpLanguage
378
  ),
379
  9 => array(
380
+ esc_html__( "Permalink Structure", 'subscribe-to-comments-reloaded' ),
381
  $wpPermalink
382
  ),
383
  10 => array(
384
+ esc_html__( "Table Prefix", 'subscribe-to-comments-reloaded' ),
385
  $wpTablePrefix
386
  ),
387
  11 => array(
388
+ esc_html__( "Table Prefix Length", 'subscribe-to-comments-reloaded' ),
389
  $wpTablePrefixLength
390
  ),
391
  12 => array(
392
+ esc_html__( "Table Prefix Status", 'subscribe-to-comments-reloaded' ),
393
  $wpTablePrefixStatus
394
  ),
395
  13 => array(
396
+ esc_html__( "Registered Post Statuses", 'subscribe-to-comments-reloaded' ),
397
  $wpRegisteredPostStatuses
398
  )
399
  );
403
  foreach ( $wordpressEnvironment as $key => $opt )
404
  {
405
  echo "<tr>";
406
+ echo "<td class='text-left' style='min-width: 50px;'>" . esc_html( $opt[0] ) . "</td>";
407
+ echo "<td class='text-left'>" . wp_kses( $opt[1], wp_kses_allowed_html( 'post' ) ) . "</td>";
408
  echo "</tr>";
409
  }
410
  ?>
414
  <!-- Server Environment -->
415
  <table class="table table-sm table-hover table-striped system-info-table" style="font-size: 0.8em">
416
  <thead style="background-color: #4688d2; color: #ffffff;">
417
+ <th style="textalilfe" class="text-left" colspan="2"><?php esc_html_e( 'Server Environment', 'subscribe-to-comments-reloaded' ) ?></th>
418
  </thead>
419
  <?php
420
 
421
  $tlsCheck = false;
422
+ $tlsCheckValue = esc_html__( 'Cannot Evaluate', 'subscribe-to-comments-reloaded' );
423
+ $tlsRating = esc_html__( 'Not Available', 'subscribe-to-comments-reloaded' );
424
+ $phpVersion = esc_html__( 'Not Available', 'subscribe-to-comments-reloaded' );
425
+ $cURLVersion = esc_html__( 'Not Available', 'subscribe-to-comments-reloaded' );
426
+ $MySQLSVersion = esc_html__( 'Not Available', 'subscribe-to-comments-reloaded' );
427
+ $defaultTimezone = esc_html__( 'Not Available', 'subscribe-to-comments-reloaded' );
428
+ $serverInfo = isset( $_SERVER['SERVER_SOFTWARE'] ) ? sanitize_text_field( wp_unslash( $_SERVER['SERVER_SOFTWARE'] ) ) : '';
429
  $maxPostSize = size_format( $wp_subscribe_reloaded->stcr->utils->to_num_ini_notation( ini_get( 'post_max_size' ) ) );
430
 
431
  // Get the SSL status.
437
  {
438
  $tlsCheck = json_decode( $tlsCheck );
439
  /* translators: %s: SSL connection response */
440
+ $tlsCheckValue = sprintf( esc_html__( 'Connection uses %s', 'subscribe-to-comments-reloaded' ), esc_html( $tlsCheck->tls_version ) );
441
  }
442
  $stcr_system_information['Server Environment']["TLS Connection"] = $tlsCheckValue;
443
  // Check TSL Rating
454
 
455
  if ( version_compare( $phpVersion, '5.6', '<' ) )
456
  {
457
+ $phpVersion = '<div class="system-error"><span class="dashicons dashicons-warning"></span> ' . sprintf( esc_html__( '%s - We recommend a minimum PHP version of 5.6. See: %s', 'subscribe-to-comments-reloaded' ), esc_html( $phpVersion ), '<a href="http://subscribe-reloaded.com/about/" target="_blank">' . esc_html__( 'PHP Requirements in StCR', 'subscribe-to-comments-reloaded' ) . '</a>' ) . '</div>';
458
  $stcr_system_information['Server Environment']["PHP Version"] = sprintf( '%s - We recommend a minimum PHP version of 5.6. See: %s', esc_html( $phpVersion ), '<a href="http://subscribe-reloaded.com/about/" target="_blank">PHP Requirements in StCR</a>' );
459
  }
460
  else
465
  }
466
  else
467
  {
468
+ $phpVersion = esc_html__( "Couldn't determine PHP version because the function phpversion() doesn't exist.", 'subscribe-to-comments-reloaded' );
469
  $stcr_system_information['Server Environment']["PHP Version"] = "Couldn't determine PHP version because the function phpversion() doesn't exist.";
470
  }
471
 
483
 
484
  if ( version_compare( $cURLVersionNumber, '7.40', '<' ) )
485
  {
486
+ $cURLVersion = '<div class="system-error"><span class="dashicons dashicons-warning"></span> ' . sprintf( esc_html__( '%s - We recommend a minimum cURL version of 7.40.', 'subscribe-to-comments-reloaded' ), esc_html( $cURLVersionNumber . ', ' . $cURLSSLVersion ) ) . '</div>';
487
  $stcr_system_information['Server Environment']["cURL Version"] = sprintf('%s - We recommend a minimum cURL version of 7.40.', esc_html( $cURLVersionNumber . ', ' . $cURLSSLVersion ) );
488
  }
489
  else
501
  // check MySQL version
502
  global $wp_version, $required_mysql_version;
503
  if ( version_compare( $wpdb->db_version(), $required_mysql_version, '<' ) ) {
504
+ $MySQLSVersion = '<div class="system-error"><span class="dashicons dashicons-warning"></span> ' . sprintf( wp_kses( __( '<strong>ERROR</strong>: WordPress %1$s requires MySQL %2$s or higher' ), wp_kses_allowed_html( 'post' ) ), $wp_version, $required_mysql_version ) . '</div>';
505
  $stcr_system_information['Server Environment']["MySQL Version"] = $wpdb->db_version();
506
  } else {
507
  $MySQLSVersion = '<div class="system-success">' . $wpdb->db_version() . '</div>';
513
 
514
  if ( 'UTC' !== $defaultTimezone )
515
  {
516
+ $defaultTimezone = '<div class="system-error"><span class="dashicons dashicons-warning"></span> ' . sprintf( esc_html__( 'Default timezone is %s - it should be UTC', 'subscribe-to-comments-reloaded' ), $defaultTimezone ) . '</div>';
517
  $stcr_system_information['Server Environment']["Default Timezone is UTC"] = sprintf('Default timezone is %s - it should be UTC', $defaultTimezone );
518
  }
519
  else
522
  $stcr_system_information['Server Environment']["Default Timezone is UTC"] = "Yes";
523
  }
524
  // DOMDocument
525
+ $DOMDocument = esc_html__( 'Not Available', 'subscribe-to-comments-reloaded' );
526
  if ( class_exists( 'DOMDocument' ) )
527
  {
528
  $DOMDocument = '<div class="system-success"><span class="dashicons dashicons-yes"></span></div>';
529
  $stcr_system_information['Server Environment']["DOMDocument"] = "Yes";
530
  }
531
  else {
532
+ $DOMDocument = sprintf( wp_kses( __( 'Your server does not have the %s class enabled - HTML/Multipart emails, and also some extensions, will not work without DOMDocument.', 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ), '<a href="https://php.net/manual/en/class.domdocument.php">DOMDocument</a>' );
533
  $stcr_system_information['Server Environment']["DOMDocument"] = sprintf( 'Your server does not have the %s class enabled - HTML/Multipart emails, and also some extensions, will not work without DOMDocument.', '<a href="https://php.net/manual/en/class.domdocument.php">DOMDocument</a>' );
534
  }
535
  // Check gzip
536
+ $gzip = esc_html__( 'Not Available', 'subscribe-to-comments-reloaded' );
537
  if ( is_callable( 'gzopen' ) )
538
  {
539
  $gzip = '<div class="system-success"><span class="dashicons dashicons-yes"></span></div>';
540
  $stcr_system_information['Server Environment']["gzip"] = "Yes";
541
  }
542
  else {
543
+ $gzip = sprintf( wp_kses( __( 'Your server does not support the %s function - this is used for file compression and decompression.', 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ), '<a href="https://php.net/manual/en/zlib.installation.php">gzopen</a>' );
544
  $stcr_system_information['Server Environment']["gzip"] = sprintf( 'Your server does not support the %s function - this is used for file compression and decompression.', '<a href="https://php.net/manual/en/zlib.installation.php">gzopen</a>' );
545
  }// Check GD
546
+ $gd = esc_html__( 'Not Available', 'subscribe-to-comments-reloaded' );
547
  if ( extension_loaded( 'gd' ) && function_exists( 'gd_info' ) )
548
  {
549
  $gd = '<div class="system-success"><span class="dashicons dashicons-yes"></span></div>';
557
  // Define array of values
558
  $serverEnvironment = array(
559
  1 => array(
560
+ esc_html__( "TLS Connection", 'subscribe-to-comments-reloaded' ),
561
  $tlsCheckValue
562
  ),
563
  2 => array(
564
+ esc_html__( "TLS Rating", 'subscribe-to-comments-reloaded' ),
565
  $tlsRating
566
  ),
567
  3 => array(
568
+ esc_html__( "Server Info", 'subscribe-to-comments-reloaded' ),
569
  $serverInfo
570
  ),
571
  4 => array(
572
+ esc_html__( "PHP Version", 'subscribe-to-comments-reloaded' ),
573
  $phpVersion
574
  ),
575
  5 => array(
576
+ esc_html__( "PHP Post Max Size", 'subscribe-to-comments-reloaded' ),
577
  $maxPostSize
578
  ),
579
  6 => array(
580
+ esc_html__( "PHP Max Execution Time", 'subscribe-to-comments-reloaded' ),
581
  ini_get( 'max_execution_time' )
582
  ),
583
  7 => array(
584
+ esc_html__( "PHP Max Input Vars", 'subscribe-to-comments-reloaded' ),
585
  ini_get( 'max_input_vars' )
586
  ),
587
  8 => array(
588
+ esc_html__( "PHP Max Upload Size", 'subscribe-to-comments-reloaded' ),
589
  size_format( wp_max_upload_size() )
590
  ),
591
  9 => array(
592
+ esc_html__( "cURL Version", 'subscribe-to-comments-reloaded' ),
593
  $cURLVersion
594
  ),
595
  10 => array(
596
+ esc_html__( "MySQL Version", 'subscribe-to-comments-reloaded' ),
597
  $MySQLSVersion
598
  ),
599
  11 => array(
600
+ esc_html__( "Default Timezone is UTC", 'subscribe-to-comments-reloaded' ),
601
  $defaultTimezone
602
  ),
603
  12 => array(
604
+ esc_html__( "DOMDocument", 'subscribe-to-comments-reloaded' ),
605
  $DOMDocument
606
  ),
607
  13 => array(
608
+ esc_html__( "gzip", 'subscribe-to-comments-reloaded' ),
609
  $gzip
610
  ),
611
  14 => array(
612
+ esc_html__( "GD Graphics Library", 'subscribe-to-comments-reloaded' ),
613
  $gd
614
  )
615
  );
619
  foreach ( $serverEnvironment as $key => $opt )
620
  {
621
  echo "<tr>";
622
+ echo "<td class='text-left' style='min-width: 50px;'>" . esc_html( $opt[0] ) . "</td>";
623
+ echo "<td class='text-left'>" . wp_kses( $opt[1], wp_kses_allowed_html( 'post' ) ) . "</td>";
624
  echo "</tr>";
625
  }
626
  ?>
633
  <!-- Active Plugins -->
634
  <table class="table table-sm table-hover table-striped system-info-table" style="font-size: 0.8em">
635
  <thead style="background-color: #4688d2; color: #ffffff;">
636
+ <th style="textalilfe" class="text-left" colspan="2"><?php esc_html_e( 'Active Plugins', 'subscribe-to-comments-reloaded' ) ?></th>
637
  </thead>
638
 
639
  <tbody>
678
  . esc_html( $plugin_data['Version'] );
679
  }
680
  echo "<tr>";
681
+ echo "<td class='text-left' style='min-width: 50px;'>" . wp_kses( $plugin_name, wp_kses_allowed_html( 'post' ) ) . "</td>";
682
+ echo "<td class='text-left'>" . wp_kses( $author_name, wp_kses_allowed_html( 'post' ) ) . "</td>";
683
  echo "</tr>";
684
  $stcr_system_information['WordPress Active Plugins'][$plugin_data['Name']] = $plugin_data;
685
  }
690
  <!-- Inactive Plugins -->
691
  <table class="table table-sm table-hover table-striped system-info-table" style="font-size: 0.8em">
692
  <thead style="background-color: #4688d2; color: #ffffff;">
693
+ <th style="textalilfe" class="text-left" colspan="2"><?php esc_html_e( 'Inactive Plugins', 'subscribe-to-comments-reloaded' ) ?></th>
694
  </thead>
695
 
696
  <tbody>
735
  . esc_html( $plugin_data['Version'] );
736
  }
737
  echo "<tr>";
738
+ echo "<td class='text-left' style='min-width: 50px;'>" . wp_kses( $plugin_name, wp_kses_allowed_html( 'post' ) ) . "</td>";
739
+ echo "<td class='text-left'>" . wp_kses( $author_name, wp_kses_allowed_html( 'post' ) ) . "</td>";
740
  echo "</tr>";
741
  $stcr_system_information['WordPress Inactive Plugins'][$plugin_data['Name']] = $plugin_data;
742
  }
readme.txt CHANGED
@@ -1,296 +1,299 @@
1
- === Subscribe To Comments Reloaded ===
2
- Author: WPKube
3
- Contributors: WPKube
4
- Tags: comments, subscribe, subscribe to comments, subscribe to comments reloaded, email, email notification, subscriptions, commenting, reply, reply to comments, post notification, comment notification, automatic comment notification, email signup
5
- Plugin URI: http://subscribe-reloaded.com/
6
- Requires at least: 4.0
7
- Requires PHP: 5.6
8
- Requires MySQL: 5.6
9
- Tested up to: 5.9
10
- Stable tag: 220502
11
- License: GPLv2 or later
12
- License URI: http://www.gnu.org/licenses/gpl-2.0.html
13
-
14
- Subscribe to Comments Reloaded allows commenters to sign up for e-mail notifications of subsequent replies. Don't miss any comment.
15
-
16
- == Description ==
17
- Subscribe to Comments Reloaded is a robust plugin that enables commenters to sign up for e-mail notification of subsequent entries. The plugin includes a full-featured subscription manager that your commenters can use to unsubscribe to certain posts or suspend all notifications. It solves most of the issues that affect Mark Jaquith's version, using the latest Wordpress features and functionality. Plus, allows administrators to enable a double opt-in mechanism, requiring users to confirm their subscription clicking on a link they will receive via email or even One Click Unsubscribe.
18
-
19
- ## Requirements
20
- * Wordpress 4.0 or higher
21
- * PHP 5.6 or higher
22
- * MySQL 5.x or higher
23
-
24
- ## Main Features
25
- * Easily manage and search among your subscriptions
26
- * Imports Mark Jaquith's Subscribe To Comments (and its clones) data
27
- * Messages are fully customizable, no poEdit required (and you can use HTML!) with a Rich Text Editor - WYSIWYG
28
- * Disable subscriptions for specific posts
29
- * One Click Unsubscribe
30
- * Get and Download your System information for better support.
31
-
32
- == Installation ==
33
-
34
-
35
- 1. If you are using Subscribe To Comments by Mark Jaquith, disable it (no need to uninstall it, though)
36
- 2. Upload the entire folder and all the subfolders to your Wordpress plugins' folder. You can also use the downloaded ZIP file to upload it.
37
- 3. Activate it
38
- 5. Customize the Permalink value under Settings > Subscribe to Comments > Management Page > Management URL. It **must** reflect your permalinks' structure
39
- 5. If you don't see the checkbox to subscribe, you will have to manually edit your template, and add `<?php global $wp_subscribe_reloaded; if (isset($wp_subscribe_reloaded)){ echo $wp_subscribe_reloaded->stcr->subscribe_reloaded_show(); } ?>` somewhere in your `comments.php`
40
- 6. If you're upgrading from a previous version, please **make sure to deactivate/activate** StCR.
41
- 7. You can always install the latest development version by taking a look at this [Video](https://youtu.be/uQwkBciyFGY)
42
-
43
- == Frequently Asked Questions ==
44
-
45
- = Are there any video tutorials? =
46
- Yeah, I have uploaded a few videos for the following topics:
47
-
48
- 1. Issues [Updating StCR via WordPress Update](https://youtu.be/Lb6cVx2bBU8)
49
- 2. Issues with StCR links see [StCR Clickable Links](https://youtu.be/eFW-2NIRzBA)
50
- 3. Issues with empty emails or management messages? see [StCR Management Message](https://youtu.be/yRxOY8yq_cc)
51
- 4. Upgrading from the latest development version see [Upgrading](https://youtu.be/uQwkBciyFGY)
52
-
53
- = Why my notifications are not in HTML format? =
54
- Don't worry, just go to the Options tab an set to Yes the **Enable HTML emails** option.
55
-
56
- = How can I reset all the plugin options? =
57
- There is a new feature called **Safely Uninstall** that allow you to delete the plugin using the WordPress plugin interface. If you have the option set to **Yes** everything but the subscriptions created by the plugin will be wipeout. So after you made sure that you have this option to **Yes** you can deactivate the plugin and the delete it. Now you have to install the plugin via WordPress or Upload the plugin `zip` file and activate it, after this step all your settings will be as default and your subscriptions will remain.
58
- There is a new feature added on the Options tab where you can reset all the settings by using only one click. You can either wipe out all the subscriptions or keep them.
59
-
60
- = What can I do if the **Safely Uninstall** does not have any value? =
61
- Just deactivate and activate the plugin and you are all set. The default value will be **Yes**.
62
-
63
- = Aaargh! Were did all my subscriptions go? =
64
- No panic. If you upgraded from 1.6 or earlier to 2.0+, you need to deactivate/activate StCR, in order to update the DB structure. After the version 180212 a fix was applied so that you can see all the subscriptions.
65
-
66
- = Can I customize the layout of the management page? =
67
- Yes, each HTML tag has a CSS class or ID that you can use to change its position or look-and-feel.
68
-
69
- = How do I disable subscriptions for a given post? =
70
- Add a custom field called `stcr_disable_subscriptions` to it, with value 'yes'
71
-
72
- = How do I add the management page URL to my posts? =
73
- Use the shortcode `[subscribe-url]`, or use the following code in your theme:
74
- `global $wp_subscribe_reloaded; if (isset($wp_subscribe_reloaded)){ echo '<a href="'.do_shortcode('[subscribe-url]').'">Subscribe</a>";`
75
-
76
- = Can I move the subscription checkbox to another position? =
77
- Yes! Just disable the corresponding option under Settings > Comment Form and then add the following code where you want to display the checkbox:
78
- `<?php global $wp_subscribe_reloaded; if (isset($wp_subscribe_reloaded)){ echo $wp_subscribe_reloaded->stcr->subscribe_reloaded_show(); } ?>`
79
-
80
- = What if after update to the version 141024 I still see plain HTML messages? =
81
- The information of your configuration needs to be updated. Go to the Subscribe to Comments Reloaded settings and click the `Save Changes` button on the tab
82
- where you have you messages with HTML.
83
-
84
- = How to generate a new Key for my Site? =
85
- Just go to the Options Panel and click the generate button. By generating a new key you prevent the spam bots to steal your links.
86
-
87
- == Screenshots ==
88
-
89
- 1. Manage your subscriptions
90
- 2. Use your own messages to interact with your users
91
- 3. Configure the Virtual Management page
92
- 4. Customize the notification messages with a the wonderful WordPress Rich Text Editor - WYSIWYG
93
- 5. Customize the plugin's behavior
94
- 6. Check the number of subscribers in your posts.
95
- 7. Manage the subscriptions on the Frontend Side.
96
-
97
- == Changelog ==
98
- = v220502 =
99
- * **Important** Security fixes
100
- * **New** Option to set for which post types the subscription will be available
101
- * **New** Option to define blacklisted emails (that won't be allowed to subscribe). Option located in WP Admin > StCR > Options.
102
- * **Improvement** reCaptcha v3 now available
103
- * **Fix** General code improvements
104
- * **Fix** Issue with "comment-subscriptions" page showing a 404 error
105
-
106
- = v211130 =
107
- * **Fix** Removed custom error handler (thanks to JakeQZ for bringing the issue to our attention)
108
- * **Fix** Processing form submission in subscribe.php is now stopped in case "subscribe without commenting" is enabled
109
-
110
- = v211019 =
111
- * **Fix** Issue with STCR output on non-virtual management page
112
-
113
- = v210315 =
114
- * **Fix** Removed the "need help" added via "contextual_help" (deprecated)
115
- * **Fix** PHP 8 deprecated notice
116
- * **Fix** Fix issue with missing submit button when using "stcr_disable_subscription" custom field
117
- * **Tweak** Bump up WP "tested up to" version to 5.7
118
-
119
- = v210126 =
120
- * **New** Option to disable the "subscribe without commenting" and "request management link" pages. ( WP Admin > StCR > Management Page )
121
-
122
- = v210110 =
123
- * **Fix** Limit subscription types on the management page when only a specific subscription is allowed
124
- * **Fix** JS error on front-end
125
-
126
- = v210104 =
127
- * **New** Google reCAPTCHA now available for the "subscribe without commenting" and "request management subscription" form (WP admin > StCR > Options)
128
- * **Improvement** When using the checkbox (not the select box from advanced subscription) you can now select the subscription type (all or replies) (WP admin > StCR > Comment Form)
129
- * **Improvement** [comment_author] can now be used in the Notification subject (WP admin > StCR > Notifications)
130
- * **Improvement** Replaced final instances of jQuery code to be raw JavaScript (not rely on jQuery)
131
- * **Fix** The form to "request management link" will now check if that email is a subscriber before sending a link
132
- * **Fix** Issue with broken option tooltips on Notifications settings page
133
- * **Tweak** Removed HTML comments around the plugin's output on the frontend
134
-
135
- = v200813 =
136
- * **Fix** Error when permanently deleting a post/page/... (related to WP 5.5 change in the "delete_post" hook coming with a 2nd parameter)
137
-
138
- = v200629 =
139
- * **New** Option to show the subscription checkbox/select only for logged in users (option called "Enable only for logged in users" and located in WP admin > StCR > Options)
140
- * **New** Added [comment_date] and [comment_time] shortcodes which can be used in the "notification message".
141
- * **Improvement** Challenge question/answer now shows on "request management link" page as well
142
- * **Improvement** Replaced multiple instances of jQuery code to be raw JavaScript (not rely on jQuery)
143
- * **Tweak** Added label for the checkbox in "Screen Options"
144
- * **Tweak** Email input value fallback to "email" removed
145
- * **Fix** Subscriptions will no longer duplicate when post is copied/duplicated with the "Duplicate Post" plugin
146
- * **Fix** Fixed issue with PHP notice when $comment object does not have comment_approved set
147
- * **Fix** The jQuery code that handles moving the position of the checkbox is now added later on in the code to avoid issue when jQuery gets loaded in the footer
148
-
149
- = v200422 =
150
- * **New** Arabic translation, thanks to [Yaser Maadan](https://github.com/stcr/subscribe-to-comments-reloaded/issues/571)
151
- * **Fix** WP_PLUGIN_URL replaced by plugins_url()
152
- * **Fix** Issue with "generate new key" button for "StCR Unique Key" not working (WP Admin > StCR > Options)
153
- * **Fix** Issue with ordering by date in the subscription management table (WP Admin > StCR > Manage subscriptions)
154
- * **Fix** Issue with management page ( /comment-subscriptions/ ) being shown for child pages as well ( /comment-subscriptions/something-else/ )
155
- * **Fix** Corrections in Hungarian translation
156
- * **Tweak** Some other minor tweaks
157
-
158
- = v200205 =
159
- * **New** Function for developers to add subscribers. [Check the guide](https://subscribe-reloaded.com/function-to-add-subscribers-manually/)
160
- * **New** Option to set a challenge (question + answer) for the "subscribe without commenting" form to prevent automatic bot submissions
161
- * **Fix** It is now possible to send out plain text emails instead of HTML emails. [Check the guide](https://subscribe-reloaded.com/send-plain-text-emails-instead-of-html-emails/)
162
- * **Fix** It is now possible for visitors to subscribe to comments when the comments are only open for logged in users and the visitor is not logged in
163
- * **Fix** Corrections in German translation
164
-
165
- = v191217 =
166
- * **Improvement** Option to enable/disable the plugin from setting cookies (email address after subscription)
167
- * **Improvement** German translation improvements (thanks to Greendroid)
168
-
169
- = v191209 =
170
- * **Improvement** Logged in users no longer need to submit the "email" form on a subscription page in order to access their subscriptions
171
- * **Improvement** Ability to filter/search the subscriptions table ( WP admin > StCR > Manage Subscriptions ) when there are more than 1000 subscriptions
172
-
173
- = v191028 =
174
- * **Fix** Issue with "Default Checkbox Value" not being saved
175
- * **Fix** Issue with /comment-subscriptions taking to 404 ( when it does not end with / )
176
- * **Tweak** Error notification when [manager_link] used in "Management Page message".
177
-
178
- = v191011 =
179
- * **Fix** Revert changes to error logging due to PHP errors/warnings
180
-
181
- = v191009 =
182
- * **Fix** Issue with post slug being displayed instead of the post title on unsubscribe
183
- * **Fix** HTML validation error in subscribe template
184
- * **Fix** Fix German translation "Nicht abonnieren"
185
- * **Fix** Fix import data from Subscribe Reloaded by Mark Jaquith
186
- * **Fix** Issue with using double quotes in options
187
- * **Tweak** Show a message to the comment author to check his email to confirm subscription
188
- * **Tweak** Performance improvement for error logging
189
-
190
- = v190529 =
191
- * **Fix** Issue with being unable to dismiss admin notices shown by StCR
192
- * **Fix** Virtual management page was still being shown even when disabled
193
-
194
- = v190523 =
195
- * **Fix** Remove the old system information functionality
196
-
197
- = v190510 =
198
- * **New** Option to only enable the functionality for blog posts ( option named "Enable only for blog posts" located in WP admin > StCR > StCR Options)
199
- * **Tweak** Info on subscriber and subscriptions amount moved into separate table
200
- * **Fix** Text domain
201
-
202
- = v190426 =
203
- * **New** Info on the amount of subscribers and subscriptions added in WP admin > StCR > StCR System
204
- * **Fix** Text domain (for translations) has been changed to the correct domain (from subscribe-reloaded to subscribe-to-comments-reloaded)
205
- * **Fix** Issue with undefined is_rtl function
206
- * **Fix** Missing blank space between sentences (below comment form when subscribed)
207
- * **Fix** Undefined variable notices for $order_status and $order_dt
208
- * **Fix** Temporarily hidden an unused option in StCR > Management Page to avoid confusion.
209
- * **Fix** Removed localization for non textual strings
210
- * **Fix** Fixed incorrectly localized textual strings
211
-
212
- = v190412 =
213
-
214
- * **Fix** Issue with JavaScript code that is supposed to show the form when "StCR Position" is enabled
215
-
216
- = v190409 =
217
-
218
- * **Fix** Post author was notified of new comments even if they are awaiting approval, no need for this since WordPress itself sends out an email in that case
219
- * **Fix** Post author was notified twice ( if he was subscribed and "subscribe authors" was enabled )
220
- * **Fix** Issue with "StCR Position" option ( for older/outdated themes ) not working properly
221
- * **Fix** Issue with wrong translation in German
222
- * **Tweak** The "Action" select box labels on "Manage Subscriptions" page tweaked to be more descriptive
223
-
224
- = v190325 =
225
-
226
- * **New** Shortcode for manage page content (to be used on non-virtual management page). The shortcode is [stcr_management_page]
227
- * **Rewrite** New method for downloading system information file
228
- * **Fix** The admin panel CSS and JavaScript files now load only on StCR pages
229
- * **Fix** Tooltips not showing up on System options page
230
- * **Fix** Conflict with MailChimp for WP plugin (comment filter received echo instead of return which caused the issue)
231
- * **Fix** Issue with select/deselect all on management page
232
- * **Tweak** The MySQL requirements info on the system page now uses WordPress requirements
233
- * **Tweak** The post author will no longer be notified of his/her own comments
234
-
235
- = v190305 =
236
-
237
- * **Fix** Issue with "Subscribe authors" functionality sending the emails to administrator instead of the post author
238
-
239
- = v190214 =
240
-
241
- * **Fix** String error calling the Curl Array.
242
- * **Fix** wrong array definition that was breaking the site in some newer PHP versions.
243
- * **Fix** error by calling `$wp_locale` that was not needed.
244
- * **Fix** wrong label on option issue #467.
245
- * **Fix** typo en help description issue #468.
246
-
247
- = v190117 =
248
-
249
- * **Fix** missing checkbox when the option **StCR Position** was set to **Yes**.
250
- * **Fix** styles on admin notices.
251
- * **Fix** filenames to match the correct menu name.
252
- * **Fix** [# issue#431](https://github.com/stcr/subscribe-to-comments-reloaded/issues/431) and [issue#444](https://github.com/stcr/subscribe-to-comments-reloaded/issues/444).
253
- * **Fix** warning message that was notifying the server when the Management URL was empty. Now the field must have a value. Props @breezynetworks on [WordPress Forum](https://wordpress.org/support/topic/php-warning-strpos-empty-needle/)
254
- * **Fix** value of management page to get it on the event insteadof page load.
255
- * **Add** translation for Subs Table, Add PHP error logger.
256
- * **Add** Plugin information on Cards.
257
- * **Add** the Phing build script to automate the deployment and testings.
258
- * **Add** WebUI Popover library to display the help messages in a clear way.
259
- * **Add** dropdown menu on the options tab to include the System menu.
260
- * **Add** option to download the system report.
261
- * **Add** functionality to create the system report via Ajax.
262
- * **Add** cron to clean house the system report file.
263
- * **Upgrade** the **Comment Form** Panel 2 options.
264
- * **Upgrade** the **Management Page** panel.
265
- * **Upgrade** the **Options** Panel.
266
- * **Upgrade** the **Support** Panel.
267
- * **Upgrade** the **StCR System** Menu.
268
- * **Update** font awesome refrences.
269
- * **Update** Admin Menus with Bootstrap.
270
- * **Implement** Pagination using plugins and fix responsive layout of management page.
271
- * **Implement** SASS for the CSS files.
272
- * **Implement** a cache array for the menu options.
273
- * **Remove** unecessary components from Composer.
274
- * **Remove** double inclusion of Font Awesome.
275
- * **Modify** Bower, Gulp and Phing files to implement WebUI Popover.
276
- * **Refactor** the options saving process.
277
- * **Refactor** code to move the functional saving options to the Utils Class.
278
- * **Set** the Double Verification option to yes.
279
- * **Create** array of options for improve support.
280
- * **Sanitize** input and out of data preventing XSS. Code modification and suggestion by @jnorell.
281
- * **Re Word** option to avoid missleading to new users. Props @padraigobeirn.
282
- * **Move** the plugin core files to the folder **src** in order to implement `npm` and `bower` task managers.
283
-
284
- = v180225 =
285
-
286
- * **Fix** error when a user subscribe to a new post and the double opt-in was enable, preventing the double opt-in not sending the email message. [Issue#350](https://github.com/stcr/subscribe-to-comments-reloaded/issues/350).
287
- * **Add** email and post id validation on the StCR backened.
288
- * **Add** email, search and post id validation on the frontend.
289
- * **Add** backened validation for input data (email) on the subscribe and request management pages.
290
- * **Add** debug messages to improve support.
291
- * **Add** feature to change the date format output on the management page for both the User page and Author. See [issue#345](https://github.com/stcr/subscribe-to-comments-reloaded/issues/345).
292
- * **Remove** the inclusion of the plugin scripts with WP enqueue. This will load only the needed script on specific pages. Will remove request to the server to get scripts.
293
-
294
- == Language Localization ==
295
-
 
 
 
296
  If you would like to help out translating the plugin to your language you can do so through the [official WordPress plugin translation system](https://translate.wordpress.org/projects/wp-plugins/subscribe-to-comments-reloaded/)
1
+ === Subscribe To Comments Reloaded ===
2
+ Author: WPKube
3
+ Contributors: WPKube
4
+ Tags: comments, subscribe, subscribe to comments, subscribe to comments reloaded, email, email notification, subscriptions, commenting, reply, reply to comments, post notification, comment notification, automatic comment notification, email signup
5
+ Plugin URI: http://subscribe-reloaded.com/
6
+ Requires at least: 4.0
7
+ Requires PHP: 5.6
8
+ Requires MySQL: 5.6
9
+ Tested up to: 5.9
10
+ Stable tag: 220512
11
+ License: GPLv2 or later
12
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
13
+
14
+ Subscribe to Comments Reloaded allows commenters to sign up for e-mail notifications of subsequent replies. Don't miss any comment.
15
+
16
+ == Description ==
17
+ Subscribe to Comments Reloaded is a robust plugin that enables commenters to sign up for e-mail notification of subsequent entries. The plugin includes a full-featured subscription manager that your commenters can use to unsubscribe to certain posts or suspend all notifications. It solves most of the issues that affect Mark Jaquith's version, using the latest Wordpress features and functionality. Plus, allows administrators to enable a double opt-in mechanism, requiring users to confirm their subscription clicking on a link they will receive via email or even One Click Unsubscribe.
18
+
19
+ ## Requirements
20
+ * Wordpress 4.0 or higher
21
+ * PHP 5.6 or higher
22
+ * MySQL 5.x or higher
23
+
24
+ ## Main Features
25
+ * Easily manage and search among your subscriptions
26
+ * Imports Mark Jaquith's Subscribe To Comments (and its clones) data
27
+ * Messages are fully customizable, no poEdit required (and you can use HTML!) with a Rich Text Editor - WYSIWYG
28
+ * Disable subscriptions for specific posts
29
+ * One Click Unsubscribe
30
+ * Get and Download your System information for better support.
31
+
32
+ == Installation ==
33
+
34
+
35
+ 1. If you are using Subscribe To Comments by Mark Jaquith, disable it (no need to uninstall it, though)
36
+ 2. Upload the entire folder and all the subfolders to your Wordpress plugins' folder. You can also use the downloaded ZIP file to upload it.
37
+ 3. Activate it
38
+ 5. Customize the Permalink value under Settings > Subscribe to Comments > Management Page > Management URL. It **must** reflect your permalinks' structure
39
+ 5. If you don't see the checkbox to subscribe, you will have to manually edit your template, and add `<?php global $wp_subscribe_reloaded; if (isset($wp_subscribe_reloaded)){ echo $wp_subscribe_reloaded->stcr->subscribe_reloaded_show(); } ?>` somewhere in your `comments.php`
40
+ 6. If you're upgrading from a previous version, please **make sure to deactivate/activate** StCR.
41
+ 7. You can always install the latest development version by taking a look at this [Video](https://youtu.be/uQwkBciyFGY)
42
+
43
+ == Frequently Asked Questions ==
44
+
45
+ = Are there any video tutorials? =
46
+ Yeah, I have uploaded a few videos for the following topics:
47
+
48
+ 1. Issues [Updating StCR via WordPress Update](https://youtu.be/Lb6cVx2bBU8)
49
+ 2. Issues with StCR links see [StCR Clickable Links](https://youtu.be/eFW-2NIRzBA)
50
+ 3. Issues with empty emails or management messages? see [StCR Management Message](https://youtu.be/yRxOY8yq_cc)
51
+ 4. Upgrading from the latest development version see [Upgrading](https://youtu.be/uQwkBciyFGY)
52
+
53
+ = Why my notifications are not in HTML format? =
54
+ Don't worry, just go to the Options tab an set to Yes the **Enable HTML emails** option.
55
+
56
+ = How can I reset all the plugin options? =
57
+ There is a new feature called **Safely Uninstall** that allow you to delete the plugin using the WordPress plugin interface. If you have the option set to **Yes** everything but the subscriptions created by the plugin will be wipeout. So after you made sure that you have this option to **Yes** you can deactivate the plugin and the delete it. Now you have to install the plugin via WordPress or Upload the plugin `zip` file and activate it, after this step all your settings will be as default and your subscriptions will remain.
58
+ There is a new feature added on the Options tab where you can reset all the settings by using only one click. You can either wipe out all the subscriptions or keep them.
59
+
60
+ = What can I do if the **Safely Uninstall** does not have any value? =
61
+ Just deactivate and activate the plugin and you are all set. The default value will be **Yes**.
62
+
63
+ = Aaargh! Were did all my subscriptions go? =
64
+ No panic. If you upgraded from 1.6 or earlier to 2.0+, you need to deactivate/activate StCR, in order to update the DB structure. After the version 180212 a fix was applied so that you can see all the subscriptions.
65
+
66
+ = Can I customize the layout of the management page? =
67
+ Yes, each HTML tag has a CSS class or ID that you can use to change its position or look-and-feel.
68
+
69
+ = How do I disable subscriptions for a given post? =
70
+ Add a custom field called `stcr_disable_subscriptions` to it, with value 'yes'
71
+
72
+ = How do I add the management page URL to my posts? =
73
+ Use the shortcode `[subscribe-url]`, or use the following code in your theme:
74
+ `global $wp_subscribe_reloaded; if (isset($wp_subscribe_reloaded)){ echo '<a href="'.do_shortcode('[subscribe-url]').'">Subscribe</a>";`
75
+
76
+ = Can I move the subscription checkbox to another position? =
77
+ Yes! Just disable the corresponding option under Settings > Comment Form and then add the following code where you want to display the checkbox:
78
+ `<?php global $wp_subscribe_reloaded; if (isset($wp_subscribe_reloaded)){ echo $wp_subscribe_reloaded->stcr->subscribe_reloaded_show(); } ?>`
79
+
80
+ = What if after update to the version 141024 I still see plain HTML messages? =
81
+ The information of your configuration needs to be updated. Go to the Subscribe to Comments Reloaded settings and click the `Save Changes` button on the tab
82
+ where you have you messages with HTML.
83
+
84
+ = How to generate a new Key for my Site? =
85
+ Just go to the Options Panel and click the generate button. By generating a new key you prevent the spam bots to steal your links.
86
+
87
+ == Screenshots ==
88
+
89
+ 1. Manage your subscriptions
90
+ 2. Use your own messages to interact with your users
91
+ 3. Configure the Virtual Management page
92
+ 4. Customize the notification messages with a the wonderful WordPress Rich Text Editor - WYSIWYG
93
+ 5. Customize the plugin's behavior
94
+ 6. Check the number of subscribers in your posts.
95
+ 7. Manage the subscriptions on the Frontend Side.
96
+
97
+ == Changelog ==
98
+ = v220512 =
99
+ * **Important** Security fixes
100
+
101
+ = v220502 =
102
+ * **Important** Security fixes
103
+ * **New** Option to set for which post types the subscription will be available
104
+ * **New** Option to define blacklisted emails (that won't be allowed to subscribe). Option located in WP Admin > StCR > Options.
105
+ * **Improvement** reCaptcha v3 now available
106
+ * **Fix** General code improvements
107
+ * **Fix** Issue with "comment-subscriptions" page showing a 404 error
108
+
109
+ = v211130 =
110
+ * **Fix** Removed custom error handler (thanks to JakeQZ for bringing the issue to our attention)
111
+ * **Fix** Processing form submission in subscribe.php is now stopped in case "subscribe without commenting" is enabled
112
+
113
+ = v211019 =
114
+ * **Fix** Issue with STCR output on non-virtual management page
115
+
116
+ = v210315 =
117
+ * **Fix** Removed the "need help" added via "contextual_help" (deprecated)
118
+ * **Fix** PHP 8 deprecated notice
119
+ * **Fix** Fix issue with missing submit button when using "stcr_disable_subscription" custom field
120
+ * **Tweak** Bump up WP "tested up to" version to 5.7
121
+
122
+ = v210126 =
123
+ * **New** Option to disable the "subscribe without commenting" and "request management link" pages. ( WP Admin > StCR > Management Page )
124
+
125
+ = v210110 =
126
+ * **Fix** Limit subscription types on the management page when only a specific subscription is allowed
127
+ * **Fix** JS error on front-end
128
+
129
+ = v210104 =
130
+ * **New** Google reCAPTCHA now available for the "subscribe without commenting" and "request management subscription" form (WP admin > StCR > Options)
131
+ * **Improvement** When using the checkbox (not the select box from advanced subscription) you can now select the subscription type (all or replies) (WP admin > StCR > Comment Form)
132
+ * **Improvement** [comment_author] can now be used in the Notification subject (WP admin > StCR > Notifications)
133
+ * **Improvement** Replaced final instances of jQuery code to be raw JavaScript (not rely on jQuery)
134
+ * **Fix** The form to "request management link" will now check if that email is a subscriber before sending a link
135
+ * **Fix** Issue with broken option tooltips on Notifications settings page
136
+ * **Tweak** Removed HTML comments around the plugin's output on the frontend
137
+
138
+ = v200813 =
139
+ * **Fix** Error when permanently deleting a post/page/... (related to WP 5.5 change in the "delete_post" hook coming with a 2nd parameter)
140
+
141
+ = v200629 =
142
+ * **New** Option to show the subscription checkbox/select only for logged in users (option called "Enable only for logged in users" and located in WP admin > StCR > Options)
143
+ * **New** Added [comment_date] and [comment_time] shortcodes which can be used in the "notification message".
144
+ * **Improvement** Challenge question/answer now shows on "request management link" page as well
145
+ * **Improvement** Replaced multiple instances of jQuery code to be raw JavaScript (not rely on jQuery)
146
+ * **Tweak** Added label for the checkbox in "Screen Options"
147
+ * **Tweak** Email input value fallback to "email" removed
148
+ * **Fix** Subscriptions will no longer duplicate when post is copied/duplicated with the "Duplicate Post" plugin
149
+ * **Fix** Fixed issue with PHP notice when $comment object does not have comment_approved set
150
+ * **Fix** The jQuery code that handles moving the position of the checkbox is now added later on in the code to avoid issue when jQuery gets loaded in the footer
151
+
152
+ = v200422 =
153
+ * **New** Arabic translation, thanks to [Yaser Maadan](https://github.com/stcr/subscribe-to-comments-reloaded/issues/571)
154
+ * **Fix** WP_PLUGIN_URL replaced by plugins_url()
155
+ * **Fix** Issue with "generate new key" button for "StCR Unique Key" not working (WP Admin > StCR > Options)
156
+ * **Fix** Issue with ordering by date in the subscription management table (WP Admin > StCR > Manage subscriptions)
157
+ * **Fix** Issue with management page ( /comment-subscriptions/ ) being shown for child pages as well ( /comment-subscriptions/something-else/ )
158
+ * **Fix** Corrections in Hungarian translation
159
+ * **Tweak** Some other minor tweaks
160
+
161
+ = v200205 =
162
+ * **New** Function for developers to add subscribers. [Check the guide](https://subscribe-reloaded.com/function-to-add-subscribers-manually/)
163
+ * **New** Option to set a challenge (question + answer) for the "subscribe without commenting" form to prevent automatic bot submissions
164
+ * **Fix** It is now possible to send out plain text emails instead of HTML emails. [Check the guide](https://subscribe-reloaded.com/send-plain-text-emails-instead-of-html-emails/)
165
+ * **Fix** It is now possible for visitors to subscribe to comments when the comments are only open for logged in users and the visitor is not logged in
166
+ * **Fix** Corrections in German translation
167
+
168
+ = v191217 =
169
+ * **Improvement** Option to enable/disable the plugin from setting cookies (email address after subscription)
170
+ * **Improvement** German translation improvements (thanks to Greendroid)
171
+
172
+ = v191209 =
173
+ * **Improvement** Logged in users no longer need to submit the "email" form on a subscription page in order to access their subscriptions
174
+ * **Improvement** Ability to filter/search the subscriptions table ( WP admin > StCR > Manage Subscriptions ) when there are more than 1000 subscriptions
175
+
176
+ = v191028 =
177
+ * **Fix** Issue with "Default Checkbox Value" not being saved
178
+ * **Fix** Issue with /comment-subscriptions taking to 404 ( when it does not end with / )
179
+ * **Tweak** Error notification when [manager_link] used in "Management Page message".
180
+
181
+ = v191011 =
182
+ * **Fix** Revert changes to error logging due to PHP errors/warnings
183
+
184
+ = v191009 =
185
+ * **Fix** Issue with post slug being displayed instead of the post title on unsubscribe
186
+ * **Fix** HTML validation error in subscribe template
187
+ * **Fix** Fix German translation "Nicht abonnieren"
188
+ * **Fix** Fix import data from Subscribe Reloaded by Mark Jaquith
189
+ * **Fix** Issue with using double quotes in options
190
+ * **Tweak** Show a message to the comment author to check his email to confirm subscription
191
+ * **Tweak** Performance improvement for error logging
192
+
193
+ = v190529 =
194
+ * **Fix** Issue with being unable to dismiss admin notices shown by StCR
195
+ * **Fix** Virtual management page was still being shown even when disabled
196
+
197
+ = v190523 =
198
+ * **Fix** Remove the old system information functionality
199
+
200
+ = v190510 =
201
+ * **New** Option to only enable the functionality for blog posts ( option named "Enable only for blog posts" located in WP admin > StCR > StCR Options)
202
+ * **Tweak** Info on subscriber and subscriptions amount moved into separate table
203
+ * **Fix** Text domain
204
+
205
+ = v190426 =
206
+ * **New** Info on the amount of subscribers and subscriptions added in WP admin > StCR > StCR System
207
+ * **Fix** Text domain (for translations) has been changed to the correct domain (from subscribe-reloaded to subscribe-to-comments-reloaded)
208
+ * **Fix** Issue with undefined is_rtl function
209
+ * **Fix** Missing blank space between sentences (below comment form when subscribed)
210
+ * **Fix** Undefined variable notices for $order_status and $order_dt
211
+ * **Fix** Temporarily hidden an unused option in StCR > Management Page to avoid confusion.
212
+ * **Fix** Removed localization for non textual strings
213
+ * **Fix** Fixed incorrectly localized textual strings
214
+
215
+ = v190412 =
216
+
217
+ * **Fix** Issue with JavaScript code that is supposed to show the form when "StCR Position" is enabled
218
+
219
+ = v190409 =
220
+
221
+ * **Fix** Post author was notified of new comments even if they are awaiting approval, no need for this since WordPress itself sends out an email in that case
222
+ * **Fix** Post author was notified twice ( if he was subscribed and "subscribe authors" was enabled )
223
+ * **Fix** Issue with "StCR Position" option ( for older/outdated themes ) not working properly
224
+ * **Fix** Issue with wrong translation in German
225
+ * **Tweak** The "Action" select box labels on "Manage Subscriptions" page tweaked to be more descriptive
226
+
227
+ = v190325 =
228
+
229
+ * **New** Shortcode for manage page content (to be used on non-virtual management page). The shortcode is [stcr_management_page]
230
+ * **Rewrite** New method for downloading system information file
231
+ * **Fix** The admin panel CSS and JavaScript files now load only on StCR pages
232
+ * **Fix** Tooltips not showing up on System options page
233
+ * **Fix** Conflict with MailChimp for WP plugin (comment filter received echo instead of return which caused the issue)
234
+ * **Fix** Issue with select/deselect all on management page
235
+ * **Tweak** The MySQL requirements info on the system page now uses WordPress requirements
236
+ * **Tweak** The post author will no longer be notified of his/her own comments
237
+
238
+ = v190305 =
239
+
240
+ * **Fix** Issue with "Subscribe authors" functionality sending the emails to administrator instead of the post author
241
+
242
+ = v190214 =
243
+
244
+ * **Fix** String error calling the Curl Array.
245
+ * **Fix** wrong array definition that was breaking the site in some newer PHP versions.
246
+ * **Fix** error by calling `$wp_locale` that was not needed.
247
+ * **Fix** wrong label on option issue #467.
248
+ * **Fix** typo en help description issue #468.
249
+
250
+ = v190117 =
251
+
252
+ * **Fix** missing checkbox when the option **StCR Position** was set to **Yes**.
253
+ * **Fix** styles on admin notices.
254
+ * **Fix** filenames to match the correct menu name.
255
+ * **Fix** [# issue#431](https://github.com/stcr/subscribe-to-comments-reloaded/issues/431) and [issue#444](https://github.com/stcr/subscribe-to-comments-reloaded/issues/444).
256
+ * **Fix** warning message that was notifying the server when the Management URL was empty. Now the field must have a value. Props @breezynetworks on [WordPress Forum](https://wordpress.org/support/topic/php-warning-strpos-empty-needle/)
257
+ * **Fix** value of management page to get it on the event insteadof page load.
258
+ * **Add** translation for Subs Table, Add PHP error logger.
259
+ * **Add** Plugin information on Cards.
260
+ * **Add** the Phing build script to automate the deployment and testings.
261
+ * **Add** WebUI Popover library to display the help messages in a clear way.
262
+ * **Add** dropdown menu on the options tab to include the System menu.
263
+ * **Add** option to download the system report.
264
+ * **Add** functionality to create the system report via Ajax.
265
+ * **Add** cron to clean house the system report file.
266
+ * **Upgrade** the **Comment Form** Panel 2 options.
267
+ * **Upgrade** the **Management Page** panel.
268
+ * **Upgrade** the **Options** Panel.
269
+ * **Upgrade** the **Support** Panel.
270
+ * **Upgrade** the **StCR System** Menu.
271
+ * **Update** font awesome refrences.
272
+ * **Update** Admin Menus with Bootstrap.
273
+ * **Implement** Pagination using plugins and fix responsive layout of management page.
274
+ * **Implement** SASS for the CSS files.
275
+ * **Implement** a cache array for the menu options.
276
+ * **Remove** unecessary components from Composer.
277
+ * **Remove** double inclusion of Font Awesome.
278
+ * **Modify** Bower, Gulp and Phing files to implement WebUI Popover.
279
+ * **Refactor** the options saving process.
280
+ * **Refactor** code to move the functional saving options to the Utils Class.
281
+ * **Set** the Double Verification option to yes.
282
+ * **Create** array of options for improve support.
283
+ * **Sanitize** input and out of data preventing XSS. Code modification and suggestion by @jnorell.
284
+ * **Re Word** option to avoid missleading to new users. Props @padraigobeirn.
285
+ * **Move** the plugin core files to the folder **src** in order to implement `npm` and `bower` task managers.
286
+
287
+ = v180225 =
288
+
289
+ * **Fix** error when a user subscribe to a new post and the double opt-in was enable, preventing the double opt-in not sending the email message. [Issue#350](https://github.com/stcr/subscribe-to-comments-reloaded/issues/350).
290
+ * **Add** email and post id validation on the StCR backened.
291
+ * **Add** email, search and post id validation on the frontend.
292
+ * **Add** backened validation for input data (email) on the subscribe and request management pages.
293
+ * **Add** debug messages to improve support.
294
+ * **Add** feature to change the date format output on the management page for both the User page and Author. See [issue#345](https://github.com/stcr/subscribe-to-comments-reloaded/issues/345).
295
+ * **Remove** the inclusion of the plugin scripts with WP enqueue. This will load only the needed script on specific pages. Will remove request to the server to get scripts.
296
+
297
+ == Language Localization ==
298
+
299
  If you would like to help out translating the plugin to your language you can do so through the [official WordPress plugin translation system](https://translate.wordpress.org/projects/wp-plugins/subscribe-to-comments-reloaded/)
subscribe-to-comments-reloaded.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Plugin Name: Subscribe to Comments Reloaded
4
  * Description: Subscribe to Comments Reloaded is a robust plugin that enables commenters to sign up for e-mail notifications. It includes a full-featured subscription manager that your commenters can use to unsubscribe to certain posts or suspend all notifications.
5
- * Version: 220502
6
  * Author: WPKube
7
  * Author URI: http://wpkube.com/
8
  * License: GPL-2.0+
2
  /**
3
  * Plugin Name: Subscribe to Comments Reloaded
4
  * Description: Subscribe to Comments Reloaded is a robust plugin that enables commenters to sign up for e-mail notifications. It includes a full-featured subscription manager that your commenters can use to unsubscribe to certain posts or suspend all notifications.
5
+ * Version: 220512
6
  * Author: WPKube
7
  * Author URI: http://wpkube.com/
8
  * License: GPL-2.0+
templates/author.php CHANGED
@@ -1,149 +1,150 @@
1
- <?php
2
- // Avoid direct access to this piece of code
3
- if ( ! function_exists( 'add_action' ) ) {
4
- header( 'Location: /' );
5
- exit;
6
- }
7
-
8
- global $wp_subscribe_reloaded;
9
-
10
- ob_start();
11
-
12
- if ( ! empty( $_POST['email_list'] ) ) {
13
- $email_list = array();
14
- foreach ( $_POST['email_list'] as $a_email ) {
15
- if ( ! in_array( $a_email, $email_list ) ) {
16
- $email_list[] = urldecode( $a_email );
17
- }
18
- }
19
-
20
- $action = ! empty( $_POST['sra'] ) ? $_POST['sra'] : ( ! empty( $_GET['sra'] ) ? $_GET['sra'] : '' );
21
- $action = sanitize_text_field( $action );
22
- switch ( $action ) {
23
- case 'delete':
24
- $rows_affected = $wp_subscribe_reloaded->stcr->delete_subscriptions( $post_ID, $email_list );
25
- echo '<p class="updated">' . __( 'Subscriptions deleted:', 'subscribe-to-comments-reloaded' ) . " $rows_affected</p>";
26
- break;
27
- case 'suspend':
28
- $rows_affected = $wp_subscribe_reloaded->stcr->update_subscription_status( $post_ID, $email_list, 'C' );
29
- echo '<p class="updated">' . __( 'Subscriptions suspended:', 'subscribe-to-comments-reloaded' ) . " $rows_affected</p>";
30
- break;
31
- case 'activate':
32
- $rows_affected = $wp_subscribe_reloaded->stcr->update_subscription_status( $post_ID, $email_list, '-C' );
33
- echo '<p class="updated">' . __( 'Subscriptions activated:', 'subscribe-to-comments-reloaded' ) . " $rows_affected</p>";
34
- break;
35
- case 'force_y':
36
- $rows_affected = $wp_subscribe_reloaded->stcr->update_subscription_status( $post_ID, $email_list, 'Y' );
37
- echo '<p class="updated">' . __( 'Subscriptions updated:', 'subscribe-to-comments-reloaded' ) . " $rows_affected</p>";
38
- break;
39
- case 'force_r':
40
- $rows_affected = $wp_subscribe_reloaded->stcr->update_subscription_status( $post_ID, $email_list, 'R' );
41
- echo '<p class="updated">' . __( 'Subscriptions updated:', 'subscribe-to-comments-reloaded' ) . " $rows_affected</p>";
42
- break;
43
- default:
44
- break;
45
- }
46
- }
47
- $message = html_entity_decode( stripslashes( get_option( 'subscribe_reloaded_author_text' ) ), ENT_QUOTES, 'UTF-8' );
48
- if ( function_exists( 'qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage' ) ) {
49
- $message = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage( $message );
50
- }
51
- echo "<p>$message</p>";
52
- ?>
53
-
54
- <form action="<?php echo esc_url( $_SERVER['REQUEST_URI'] ) ?>" method="post" id="email_list_form" name="email_list_form" onsubmit="if(this.sra[0].checked) return confirm('<?php _e( 'Please remember: this operation cannot be undone. Are you sure you want to proceed?', 'subscribe-to-comments-reloaded' ) ?>')">
55
- <fieldset style="border:0">
56
- <?php
57
- $subscriptions = $wp_subscribe_reloaded->stcr->get_subscriptions( 'post_id', 'equals', $post_ID, 'dt', 'ASC' );
58
- // Let us translate those status
59
- $legend_translate = array(
60
- 'R' => __( 'Replies', 'subscribe-to-comments-reloaded'),
61
- 'RC' => __( 'Replies Unconfirmed', 'subscribe-to-comments-reloaded'),
62
- 'Y' => __( "All Comments", 'subscribe-to-comments-reloaded'),
63
- 'YC' => __( "Unconfirmed", 'subscribe-to-comments-reloaded'),
64
- 'C' => __( "Inactive", 'subscribe-to-comments-reloaded'),
65
- '-C' => __( "Active", 'subscribe-to-comments-reloaded')
66
- );
67
- if ( is_array( $subscriptions ) && ! empty( $subscriptions ) ) {
68
- echo '<h1 id="subscribe-reloaded-title-p">' . __( 'Title', 'subscribe-to-comments-reloaded' ) . ': <strong>' . $target_post->post_title . '</strong></h1>'; // $target_post comes from wp_subscribe_reloaded\subscribe_reloaded_manage
69
-
70
- echo "<table class='stcr-subscription-list'><thead><tr>
71
- <th style='width:30%; text-align: center;'><i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>&nbsp;&nbsp;". __('Subscription Date','subscribe-to-comments-reloaded')."</th>
72
- <th style='width:35%;'><i class=\"fa fa-envelope\" aria-hidden=\"true\"></i>&nbsp;&nbsp;". __('Subscription Email','subscribe-to-comments-reloaded')."</th>
73
- <th style='width:20%; text-align: center;'><i class=\"fa fa-info\" aria-hidden=\"true\"></i>&nbsp;&nbsp; ". __('Subscription Status','subscribe-to-comments-reloaded')."</th>
74
- </tr></thead>";
75
- echo "<tbody>";
76
-
77
- foreach ( $subscriptions as $i => $a_subscription ) {
78
- $t_status = $a_subscription->status;
79
- $date = strtotime( $a_subscription->dt );
80
- $formatted_date = date( get_option( "subscribe_reloaded_date_format" ), $date );
81
- $date_translated = $wp_subscribe_reloaded->stcr->utils->stcr_translate_month( $formatted_date );
82
-
83
- echo "<tr>";
84
- echo "<td style='text-align: center;'><input type='checkbox' name='email_list[]' value='" . esc_html( $a_subscription->email ) . "' id='e_$i'/><label for='e_$i'>$date_translated</label></td>";
85
- echo "<td>". esc_html( $a_subscription->email ) . "</td>";
86
- echo "<td style='text-align: center;'>$legend_translate[$t_status]</td>";
87
- echo "</tr>";
88
- }
89
- echo "</tbody>";
90
- echo "</table>";
91
-
92
- echo '<p id="subscribe-reloaded-select-all-p"><i class="fa fa-expand" aria-hidden="true"></i>&nbsp;<a class="subscribe-reloaded-small-button stcr-subs-select-all" href="#" onclick="stcrCheckAll(event)">' . __( 'Select all', 'subscribe-to-comments-reloaded' ) . '</a> ';
93
- echo '&nbsp;&nbsp;<i class="fa fa-compress" aria-hidden="true"></i>&nbsp;<a class="subscribe-reloaded-small-button stcr-subs-select-none" href="#" onclick="stcrUncheckAll(event)">' . __( 'Invert selection', 'subscribe-to-comments-reloaded' ) . '</a></p>';
94
- echo '<p id="subscribe-reloaded-action-p">' . __( 'Action:', 'subscribe-to-comments-reloaded' );
95
- echo '&nbsp;&nbsp;<select name="sra">';
96
- echo '<option value="">'. __( 'Choose your action', 'subscribe-to-comments-reloaded' ) .'</option>';
97
- echo '<option value="delete">'. __( 'Unsubscribe', 'subscribe-to-comments-reloaded' ) .'</option>';
98
- echo '<option value="suspend">'. __( 'Suspend', 'subscribe-to-comments-reloaded' ) .'</option>';
99
- echo '<option value="force_y">'. __( 'All comments', 'subscribe-to-comments-reloaded' ) .'</option>';
100
- echo '<option value="force_r">'. __( 'Replies to my comments', 'subscribe-to-comments-reloaded' ) .'</option>';
101
- // echo '<option value="activate">'. __( 'Activate', 'subscribe-to-comments-reloaded' ) .'</option>';
102
- echo '<select>';
103
- echo '&nbsp;&nbsp;<input type="submit" class="subscribe-form-button" value="' . __( 'Update subscriptions', 'subscribe-to-comments-reloaded' ) . '" />
104
- <input type="hidden" name="srp" value="' . intval( $post_ID ) . '"/></p>';
105
- echo '<p id="subscribe-reloaded-update-p">
106
- <a style="margin-right: 10px; text-decoration: none; box-shadow: unset;" href="'. esc_url(get_permalink( $post_ID )) .'"><i class="fa fa-arrow-circle-left fa-2x" aria-hidden="true" style="vertical-align: middle;"></i>&nbsp;'. __('Return to Post','subscribe-to-comments-reloaded').'</a>
107
- </p>';
108
-
109
-
110
- } else {
111
- echo '<p>' . __( 'No subscriptions match your search criteria.', 'subscribe-to-comments-reloaded' ) . '</p>';
112
- }
113
- ?>
114
- </fieldset>
115
- </form>
116
- <script type="text/javascript">
117
-
118
- function stcrCheckAll(e) {
119
-
120
- var items = document.getElementsByName('email_list[]');
121
- for ( var i=0; i<items.length; i++ ) {
122
- if ( items[i].type == 'checkbox' ) {
123
- items[i].checked = true;
124
- }
125
- }
126
-
127
- e.preventDefault();
128
-
129
- }
130
-
131
- function stcrUncheckAll(e) {
132
-
133
- var items = document.getElementsByName('email_list[]');
134
- for ( var i=0; i<items.length; i++ ) {
135
- if ( items[i].type == 'checkbox' ) {
136
- items[i].checked = false;
137
- }
138
- }
139
-
140
- e.preventDefault();
141
-
142
- }
143
-
144
- </script>
145
- <?php
146
- $output = ob_get_contents();
147
- ob_end_clean();
148
- return $output;
149
- ?>
 
1
+ <?php
2
+ // Avoid direct access to this piece of code
3
+ if ( ! function_exists( 'add_action' ) ) {
4
+ header( 'Location: /' );
5
+ exit;
6
+ }
7
+
8
+ global $wp_subscribe_reloaded;
9
+
10
+ ob_start();
11
+
12
+ if ( ! empty( $_POST['email_list'] ) ) {
13
+ $email_list = array();
14
+ foreach ( $_POST['email_list'] as $a_email ) {
15
+ if ( ! in_array( $a_email, $email_list ) ) {
16
+ $email_list[] = urldecode( $a_email );
17
+ }
18
+ }
19
+
20
+ $action = ! empty( $_POST['sra'] ) ? sanitize_text_field( wp_unslash( $_POST['sra'] ) ) : ( ! empty( $_GET['sra'] ) ? sanitize_text_field( wp_unslash( $_GET['sra'] ) ) : '' );
21
+ $action = sanitize_text_field( $action );
22
+ switch ( $action ) {
23
+ case 'delete':
24
+ $rows_affected = $wp_subscribe_reloaded->stcr->delete_subscriptions( $post_ID, $email_list );
25
+ echo '<p class="updated">' . esc_html__( 'Subscriptions deleted:', 'subscribe-to-comments-reloaded' ) . esc_html( $rows_affected ) . '</p>';
26
+ break;
27
+ case 'suspend':
28
+ $rows_affected = $wp_subscribe_reloaded->stcr->update_subscription_status( $post_ID, $email_list, 'C' );
29
+ echo '<p class="updated">' . esc_html__( 'Subscriptions suspended:', 'subscribe-to-comments-reloaded' ) . esc_html( $rows_affected ) . '</p>';
30
+ break;
31
+ case 'activate':
32
+ $rows_affected = $wp_subscribe_reloaded->stcr->update_subscription_status( $post_ID, $email_list, '-C' );
33
+ echo '<p class="updated">' . esc_html__( 'Subscriptions activated:', 'subscribe-to-comments-reloaded' ) . esc_html( $rows_affected ) . '</p>';
34
+ break;
35
+ case 'force_y':
36
+ $rows_affected = $wp_subscribe_reloaded->stcr->update_subscription_status( $post_ID, $email_list, 'Y' );
37
+ echo '<p class="updated">' . esc_html__( 'Subscriptions updated:', 'subscribe-to-comments-reloaded' ) . esc_html( $rows_affected ) . '</p>';
38
+ break;
39
+ case 'force_r':
40
+ $rows_affected = $wp_subscribe_reloaded->stcr->update_subscription_status( $post_ID, $email_list, 'R' );
41
+ echo '<p class="updated">' . esc_html__( 'Subscriptions updated:', 'subscribe-to-comments-reloaded' ) . esc_html( $rows_affected ) . '</p>';
42
+ break;
43
+ default:
44
+ break;
45
+ }
46
+ }
47
+ $message = html_entity_decode( stripslashes( get_option( 'subscribe_reloaded_author_text' ) ), ENT_QUOTES, 'UTF-8' );
48
+ if ( function_exists( 'qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage' ) ) {
49
+ $message = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage( $message );
50
+ }
51
+ echo "<p>" . wp_kses( $message, wp_kses_allowed_html( 'post' ) ) . "</p>";
52
+ ?>
53
+
54
+ <?php $server_request_uri = isset( $_SERVER['REQUEST_URI'] ) ? sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : ''; ?>
55
+ <form action="<?php echo esc_url( $server_request_uri ); ?>" method="post" id="email_list_form" name="email_list_form" onsubmit="if(this.sra[0].checked) return confirm('<?php esc_attr_e( 'Please remember: this operation cannot be undone. Are you sure you want to proceed?', 'subscribe-to-comments-reloaded' ); ?>')">
56
+ <fieldset style="border:0">
57
+ <?php
58
+ $subscriptions = $wp_subscribe_reloaded->stcr->get_subscriptions( 'post_id', 'equals', $post_ID, 'dt', 'ASC' );
59
+ // Let us translate those status
60
+ $legend_translate = array(
61
+ 'R' => esc_html__( 'Replies', 'subscribe-to-comments-reloaded'),
62
+ 'RC' => esc_html__( 'Replies Unconfirmed', 'subscribe-to-comments-reloaded'),
63
+ 'Y' => esc_html__( "All Comments", 'subscribe-to-comments-reloaded'),
64
+ 'YC' => esc_html__( "Unconfirmed", 'subscribe-to-comments-reloaded'),
65
+ 'C' => esc_html__( "Inactive", 'subscribe-to-comments-reloaded'),
66
+ '-C' => esc_html__( "Active", 'subscribe-to-comments-reloaded')
67
+ );
68
+ if ( is_array( $subscriptions ) && ! empty( $subscriptions ) ) {
69
+ echo '<h1 id="subscribe-reloaded-title-p">' . esc_html__( 'Title', 'subscribe-to-comments-reloaded' ) . ': <strong>' . esc_html( $target_post->post_title ) . '</strong></h1>'; // $target_post comes from wp_subscribe_reloaded\subscribe_reloaded_manage
70
+
71
+ echo "<table class='stcr-subscription-list'><thead><tr>
72
+ <th style='width:30%; text-align: center;'><i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>&nbsp;&nbsp;". esc_html__('Subscription Date','subscribe-to-comments-reloaded')."</th>
73
+ <th style='width:35%;'><i class=\"fa fa-envelope\" aria-hidden=\"true\"></i>&nbsp;&nbsp;". esc_html__('Subscription Email','subscribe-to-comments-reloaded')."</th>
74
+ <th style='width:20%; text-align: center;'><i class=\"fa fa-info\" aria-hidden=\"true\"></i>&nbsp;&nbsp; ". esc_html__('Subscription Status','subscribe-to-comments-reloaded')."</th>
75
+ </tr></thead>";
76
+ echo "<tbody>";
77
+
78
+ foreach ( $subscriptions as $i => $a_subscription ) {
79
+ $t_status = $a_subscription->status;
80
+ $date = strtotime( $a_subscription->dt );
81
+ $formatted_date = date( get_option( "subscribe_reloaded_date_format" ), $date );
82
+ $date_translated = $wp_subscribe_reloaded->stcr->utils->stcr_translate_month( $formatted_date );
83
+
84
+ echo "<tr>";
85
+ echo "<td style='text-align: center;'><input type='checkbox' name='email_list[]' value='" . esc_html( $a_subscription->email ) . "' id='e_" . esc_attr( $i ) . "'/><label for='e_" . esc_attr( $i ) . "'>" . esc_html( $date_translated ) . "</label></td>";
86
+ echo "<td>". esc_html( $a_subscription->email ) . "</td>";
87
+ echo "<td style='text-align: center;'>" . esc_html( $legend_translate[ $t_status ] ) . "</td>";
88
+ echo "</tr>";
89
+ }
90
+ echo "</tbody>";
91
+ echo "</table>";
92
+
93
+ echo '<p id="subscribe-reloaded-select-all-p"><i class="fa fa-expand" aria-hidden="true"></i>&nbsp;<a class="subscribe-reloaded-small-button stcr-subs-select-all" href="#" onclick="stcrCheckAll(event)">' . esc_html__( 'Select all', 'subscribe-to-comments-reloaded' ) . '</a> ';
94
+ echo '&nbsp;&nbsp;<i class="fa fa-compress" aria-hidden="true"></i>&nbsp;<a class="subscribe-reloaded-small-button stcr-subs-select-none" href="#" onclick="stcrUncheckAll(event)">' . esc_html__( 'Invert selection', 'subscribe-to-comments-reloaded' ) . '</a></p>';
95
+ echo '<p id="subscribe-reloaded-action-p">' . esc_html__( 'Action:', 'subscribe-to-comments-reloaded' );
96
+ echo '&nbsp;&nbsp;<select name="sra">';
97
+ echo '<option value="">'. esc_html__( 'Choose your action', 'subscribe-to-comments-reloaded' ) .'</option>';
98
+ echo '<option value="delete">'. esc_html__( 'Unsubscribe', 'subscribe-to-comments-reloaded' ) .'</option>';
99
+ echo '<option value="suspend">'. esc_html__( 'Suspend', 'subscribe-to-comments-reloaded' ) .'</option>';
100
+ echo '<option value="force_y">'. esc_html__( 'All comments', 'subscribe-to-comments-reloaded' ) .'</option>';
101
+ echo '<option value="force_r">'. esc_html__( 'Replies to my comments', 'subscribe-to-comments-reloaded' ) .'</option>';
102
+ // echo '<option value="activate">'. esc_html__( 'Activate', 'subscribe-to-comments-reloaded' ) .'</option>';
103
+ echo '<select>';
104
+ echo '&nbsp;&nbsp;<input type="submit" class="subscribe-form-button" value="' . esc_html__( 'Update subscriptions', 'subscribe-to-comments-reloaded' ) . '" />
105
+ <input type="hidden" name="srp" value="' . intval( $post_ID ) . '"/></p>';
106
+ echo '<p id="subscribe-reloaded-update-p">
107
+ <a style="margin-right: 10px; text-decoration: none; box-shadow: unset;" href="'. esc_url( get_permalink( $post_ID ) ) .'"><i class="fa fa-arrow-circle-left fa-2x" aria-hidden="true" style="vertical-align: middle;"></i>&nbsp;'. esc_html__('Return to Post','subscribe-to-comments-reloaded').'</a>
108
+ </p>';
109
+
110
+
111
+ } else {
112
+ echo '<p>' . esc_html__( 'No subscriptions match your search criteria.', 'subscribe-to-comments-reloaded' ) . '</p>';
113
+ }
114
+ ?>
115
+ </fieldset>
116
+ </form>
117
+ <script type="text/javascript">
118
+
119
+ function stcrCheckAll(e) {
120
+
121
+ var items = document.getElementsByName('email_list[]');
122
+ for ( var i=0; i<items.length; i++ ) {
123
+ if ( items[i].type == 'checkbox' ) {
124
+ items[i].checked = true;
125
+ }
126
+ }
127
+
128
+ e.preventDefault();
129
+
130
+ }
131
+
132
+ function stcrUncheckAll(e) {
133
+
134
+ var items = document.getElementsByName('email_list[]');
135
+ for ( var i=0; i<items.length; i++ ) {
136
+ if ( items[i].type == 'checkbox' ) {
137
+ items[i].checked = false;
138
+ }
139
+ }
140
+
141
+ e.preventDefault();
142
+
143
+ }
144
+
145
+ </script>
146
+ <?php
147
+ $output = ob_get_contents();
148
+ ob_end_clean();
149
+ return $output;
150
+ ?>
templates/confirm.php CHANGED
@@ -1,39 +1,39 @@
1
- <?php
2
-
3
- // avoid direct access to this piece of code
4
- if ( ! function_exists( 'add_action' ) ) {
5
- header( 'Location: /' );
6
- exit;
7
- }
8
-
9
- // get the instance of stcr_subscribe_reloaded class
10
- global $wp_subscribe_reloaded;
11
-
12
- // get post permalink
13
- $post_permalink = null;
14
- if (array_key_exists('post_permalink', $_GET)) {
15
- if ( ! empty( $_GET['post_permalink'] ) ) {
16
- $post_permalink = $_GET['post_permalink'];
17
- }
18
- }
19
-
20
- // update status of subscription to confirmed
21
- $wp_subscribe_reloaded->stcr->update_subscription_status( $post_ID, $email, '-C' );
22
-
23
- // get confirmed message
24
- $message = html_entity_decode( stripslashes( get_option( 'subscribe_reloaded_subscription_confirmed' ) ), ENT_COMPAT, 'UTF-8' );
25
-
26
- // qTranslate compatibility
27
- if ( function_exists( 'qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage' ) ) {
28
- $message = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage( $message );
29
- }
30
-
31
- // append post link to message
32
- if ( isset( $post_permalink ) ) {
33
- $message .= '<p id="subscribe-reloaded-update-p">
34
- <a style="margin-right: 10px; text-decoration: none; box-shadow: unset;" href="'. esc_url( $post_permalink ) .'"><i class="fa fa-arrow-circle-left fa-2x" aria-hidden="true" style="vertical-align: middle;"></i>&nbsp; '. __('Return to Post','subscribe-to-comments-reloaded').'</a>
35
- </p>';
36
- }
37
-
38
- // pass it back
39
- return '<div>' . $message . '</div>';
1
+ <?php
2
+
3
+ // avoid direct access to this piece of code
4
+ if ( ! function_exists( 'add_action' ) ) {
5
+ header( 'Location: /' );
6
+ exit;
7
+ }
8
+
9
+ // get the instance of stcr_subscribe_reloaded class
10
+ global $wp_subscribe_reloaded;
11
+
12
+ // get post permalink
13
+ $post_permalink = null;
14
+ if (array_key_exists('post_permalink', $_GET)) {
15
+ if ( ! empty( $_GET['post_permalink'] ) ) {
16
+ $post_permalink = sanitize_text_field( wp_unslash( $_GET['post_permalink'] ) );
17
+ }
18
+ }
19
+
20
+ // update status of subscription to confirmed
21
+ $wp_subscribe_reloaded->stcr->update_subscription_status( $post_ID, $email, '-C' );
22
+
23
+ // get confirmed message
24
+ $message = html_entity_decode( stripslashes( get_option( 'subscribe_reloaded_subscription_confirmed' ) ), ENT_COMPAT, 'UTF-8' );
25
+
26
+ // qTranslate compatibility
27
+ if ( function_exists( 'qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage' ) ) {
28
+ $message = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage( $message );
29
+ }
30
+
31
+ // append post link to message
32
+ if ( isset( $post_permalink ) ) {
33
+ $message .= '<p id="subscribe-reloaded-update-p">
34
+ <a style="margin-right: 10px; text-decoration: none; box-shadow: unset;" href="'. esc_url( $post_permalink ) .'"><i class="fa fa-arrow-circle-left fa-2x" aria-hidden="true" style="vertical-align: middle;"></i>&nbsp; '. esc_html__('Return to Post','subscribe-to-comments-reloaded').'</a>
35
+ </p>';
36
+ }
37
+
38
+ // pass it back
39
+ return '<div>' . $message . '</div>';
templates/key_expired.php CHANGED
@@ -5,13 +5,13 @@ if ( ! function_exists( 'add_action' ) ) {
5
  exit;
6
  }
7
 
8
- $error_message = __( "Woohaa the link to manage your subscriptions has expired, don't worry, just enter your email below and a new link will be send.", 'subscribe-to-comments-reloaded');
9
 
10
  global $wp_subscribe_reloaded;
11
  ob_start();
12
 
13
  if ( isset( $_POST[ 'sre' ] ) && trim( $_POST[ 'sre' ] ) !== "" ) {
14
- $email = esc_attr( $_POST[ 'sre' ] );
15
  $subject = html_entity_decode( stripslashes( get_option( 'subscribe_reloaded_management_subject', 'Manage your subscriptions on [blog_name]' ) ), ENT_QUOTES, 'UTF-8' );
16
  $page_message = html_entity_decode( stripslashes( get_option( 'subscribe_reloaded_management_content', '' ) ), ENT_QUOTES, 'UTF-8' );
17
  $email_message = html_entity_decode( stripslashes( get_option( 'subscribe_reloaded_management_email_content', '' ) ), ENT_QUOTES, 'UTF-8' );
@@ -62,7 +62,7 @@ if ( isset( $_POST[ 'sre' ] ) && trim( $_POST[ 'sre' ] ) !== "" ) {
62
  $wp_subscribe_reloaded->stcr->utils->send_email( $email_settings );
63
  }
64
 
65
- echo wpautop( $page_message );
66
  }
67
  else
68
  {
@@ -71,15 +71,18 @@ else
71
  $message = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage( $message );
72
  }
73
  ?>
74
- <p><?php echo wpautop( $error_message ); ?></p>
75
  <form action="<?php
76
- $url = $_SERVER[ 'REQUEST_URI' ];
77
  $url = preg_replace('/sre=\w+&|&key\_expired=\d+/', '', $url );
78
  echo esc_url( $url . "&key_expired=1" );
79
  ?>" name="sub-form" method="post">
80
  <fieldset style="border:0">
81
- <p><label for="subscribe_reloaded_email"><?php _e( 'Email', 'subscribe-to-comments-reloaded' ) ?></label>
82
- <input id='subscribe_reloaded_email' type="text" class="subscribe-form-field" name="sre" value="<?php echo isset( $_COOKIE['comment_author_email_' . COOKIEHASH] ) ? esc_attr( $_COOKIE['comment_author_email_' . COOKIEHASH] ) : ''; ?>" size="22" onfocus="if(this.value==this.defaultValue)this.value=''" onblur="if(this.value=='')this.value=this.defaultValue" />
 
 
 
83
  <input name="submit" type="submit" class="subscribe-form-button" value="<?php esc_attr_e( 'Send', 'subscribe-to-comments-reloaded' ) ?>" />
84
  </p>
85
  </fieldset>
5
  exit;
6
  }
7
 
8
+ $error_message = esc_html__( "Woohaa the link to manage your subscriptions has expired, don't worry, just enter your email below and a new link will be send.", 'subscribe-to-comments-reloaded');
9
 
10
  global $wp_subscribe_reloaded;
11
  ob_start();
12
 
13
  if ( isset( $_POST[ 'sre' ] ) && trim( $_POST[ 'sre' ] ) !== "" ) {
14
+ $email = sanitize_text_field( wp_unslash( $_POST['sre'] ) );
15
  $subject = html_entity_decode( stripslashes( get_option( 'subscribe_reloaded_management_subject', 'Manage your subscriptions on [blog_name]' ) ), ENT_QUOTES, 'UTF-8' );
16
  $page_message = html_entity_decode( stripslashes( get_option( 'subscribe_reloaded_management_content', '' ) ), ENT_QUOTES, 'UTF-8' );
17
  $email_message = html_entity_decode( stripslashes( get_option( 'subscribe_reloaded_management_email_content', '' ) ), ENT_QUOTES, 'UTF-8' );
62
  $wp_subscribe_reloaded->stcr->utils->send_email( $email_settings );
63
  }
64
 
65
+ echo wpautop( wp_kses( $page_message, wp_kses_allowed_html( 'post' ) ) );
66
  }
67
  else
68
  {
71
  $message = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage( $message );
72
  }
73
  ?>
74
+ <?php echo wpautop( esc_html( $error_message ) ); ?>
75
  <form action="<?php
76
+ $url = isset( $_SERVER['REQUEST_URI'] ) ? sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : '';
77
  $url = preg_replace('/sre=\w+&|&key\_expired=\d+/', '', $url );
78
  echo esc_url( $url . "&key_expired=1" );
79
  ?>" name="sub-form" method="post">
80
  <fieldset style="border:0">
81
+ <p><label for="subscribe_reloaded_email"><?php esc_html_e( 'Email', 'subscribe-to-comments-reloaded' ) ?></label>
82
+ <?php
83
+ $comment_author_email = isset( $_COOKIE[ 'comment_author_email_' . COOKIEHASH ] ) ? sanitize_text_field( wp_unslash( $_COOKIE[ 'comment_author_email_' . COOKIEHASH ] ) ) : '';
84
+ ?>
85
+ <input id='subscribe_reloaded_email' type="text" class="subscribe-form-field" name="sre" value="<?php echo esc_attr( $comment_author_email ); ?>" size="22" onfocus="if(this.value==this.defaultValue)this.value=''" onblur="if(this.value=='')this.value=this.defaultValue" />
86
  <input name="submit" type="submit" class="subscribe-form-button" value="<?php esc_attr_e( 'Send', 'subscribe-to-comments-reloaded' ) ?>" />
87
  </p>
88
  </fieldset>
templates/not-allowed.php CHANGED
@@ -5,16 +5,16 @@ if ( ! function_exists( 'add_action' ) ) {
5
  exit;
6
  }
7
 
8
- $error_message = __( 'You are not allowed to access this page.', 'subscribe-to-comments-reloaded' );
9
 
10
  global $wp_subscribe_reloaded;
11
 
12
  ob_start();
13
 
14
- ?><p><?php echo wpautop( $error_message ); ?></p><?php
15
 
16
  $output = ob_get_contents();
17
  ob_end_clean();
18
  return $output;
19
 
20
- ?>
5
  exit;
6
  }
7
 
8
+ $error_message = esc_html__( 'You are not allowed to access this page.', 'subscribe-to-comments-reloaded' );
9
 
10
  global $wp_subscribe_reloaded;
11
 
12
  ob_start();
13
 
14
+ ?><?php echo wp_kses( wpautop( $error_message ), wp_kses_allowed_html( 'post' ) ); ?><?php
15
 
16
  $output = ob_get_contents();
17
  ob_end_clean();
18
  return $output;
19
 
20
+ ?>
templates/one-click-unsubscribe.php CHANGED
@@ -1,36 +1,36 @@
1
- <?php
2
- // Avoid direct access to this piece of code
3
- if ( ! function_exists( 'add_action' ) ) {
4
- header( 'Location: /' );
5
- exit;
6
- }
7
-
8
- global $wp_subscribe_reloaded;
9
- $post = get_post( $post_ID );
10
- $manager_link = get_bloginfo( 'url' ) . get_option( 'subscribe_reloaded_manager_page', '/comment-subscriptions/' );
11
- $manager_link .= ( strpos( $manager_link, '?' ) !== false ) ? '&' : '?';
12
- $srk = ! empty( $_POST['srek'] ) ? $_POST['srek'] : ( ! empty( $_GET['srek'] ) ? $_GET['srek'] : '' );
13
- $manager_link .= "srek=" . $srk . "&srk=" . $_GET['srk']."&amp;srsrc=e";
14
- ob_start();
15
-
16
- if ( is_object( $post ) ) {
17
-
18
- $message = html_entity_decode( stripslashes( get_option( 'subscribe_reloaded_oneclick_text' ) ), ENT_QUOTES, 'UTF-8' );
19
- $message = str_replace( '[post_title]', get_the_title($post), $message );
20
- $message = str_replace( '[blog_name]' , get_bloginfo('name'), $message );
21
-
22
- $rows_affected = $wp_subscribe_reloaded->stcr->delete_subscriptions( $post_ID, $email );
23
-
24
- if ( function_exists( 'qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage' ) ) {
25
- $message = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage( $message );
26
- }
27
- $message = wpautop( $message ); // Let us add the <p> tag if need it.
28
- echo "$message"; // TODO: Add management link with number of subscriptions.
29
- } else {
30
- echo '<p>' . __( 'No subscriptions match your search criteria.', 'subscribe-to-comments-reloaded' ) . '</p>';
31
- }
32
- $output = ob_get_contents();
33
- ob_end_clean();
34
-
35
- return $output;
36
- ?>
1
+ <?php
2
+ // Avoid direct access to this piece of code
3
+ if ( ! function_exists( 'add_action' ) ) {
4
+ header( 'Location: /' );
5
+ exit;
6
+ }
7
+
8
+ global $wp_subscribe_reloaded;
9
+ $post = get_post( $post_ID );
10
+ $manager_link = get_bloginfo( 'url' ) . get_option( 'subscribe_reloaded_manager_page', '/comment-subscriptions/' );
11
+ $manager_link .= ( strpos( $manager_link, '?' ) !== false ) ? '&' : '?';
12
+ $srk = ! empty( $_POST['srek'] ) ? sanitize_text_field( wp_unslash( $_POST['srek'] ) ) : ( ! empty( $_GET['srek'] ) ? sanitize_text_field( wp_unslash( $_GET['srek'] ) ) : '' );
13
+ $manager_link .= "srek=" . $srk . "&srk=" . sanitize_text_field( wp_unslash( $_GET['srk'] ) )."&amp;srsrc=e";
14
+ ob_start();
15
+
16
+ if ( is_object( $post ) ) {
17
+
18
+ $message = html_entity_decode( stripslashes( get_option( 'subscribe_reloaded_oneclick_text' ) ), ENT_QUOTES, 'UTF-8' );
19
+ $message = str_replace( '[post_title]', get_the_title($post), $message );
20
+ $message = str_replace( '[blog_name]' , get_bloginfo('name'), $message );
21
+
22
+ $rows_affected = $wp_subscribe_reloaded->stcr->delete_subscriptions( $post_ID, $email );
23
+
24
+ if ( function_exists( 'qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage' ) ) {
25
+ $message = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage( $message );
26
+ }
27
+ $message = wpautop( $message ); // Let us add the <p> tag if need it.
28
+ echo wp_kses( $message, wp_kses_allowed_html( 'post' ) ); // TODO: Add management link with number of subscriptions.
29
+ } else {
30
+ echo '<p>' . esc_html__( 'No subscriptions match your search criteria.', 'subscribe-to-comments-reloaded' ) . '</p>';
31
+ }
32
+ $output = ob_get_contents();
33
+ ob_end_clean();
34
+
35
+ return $output;
36
+ ?>
templates/request-management-link.php CHANGED
@@ -29,7 +29,7 @@ if ( $use_captcha == 'yes' ) {
29
  $captcha_output .= '<div class="g-recaptcha" data-sitekey="' . $captcha_site_key . '"></div>';
30
  if ( 'v2' == $recaptcha_version ) {
31
  if ( isset( $_POST['g-recaptcha-response'] ) ) {
32
- $captcha = $_POST['g-recaptcha-response'];
33
  $captcha_result = wp_remote_post( 'https://www.google.com/recaptcha/api/siteverify', array(
34
  'method' => 'POST',
35
  'body' => array(
@@ -48,8 +48,8 @@ if ( $use_captcha == 'yes' ) {
48
  }
49
  } elseif ( 'v3' == $recaptcha_version ) {
50
  if ( isset( $_POST['token'] ) ) {
51
- $captcha = $_POST['token'];
52
- $action = $_POST['action'];
53
 
54
  $captcha_result = wp_remote_post( 'https://www.google.com/recaptcha/api/siteverify', array(
55
  'method' => 'POST',
@@ -80,7 +80,7 @@ if ( isset( $current_user ) && $current_user->ID > 0 ) {
80
  // post permalink supplied with $_GET
81
  if ( array_key_exists('post_permalink', $_GET ) ) {
82
  if ( ! empty( $_GET['post_permalink'] ) ) {
83
- $post_permalink = $_GET['post_permalink'];
84
  }
85
  }
86
 
@@ -178,7 +178,7 @@ if ( ! empty( $email ) ) {
178
  $wp_subscribe_reloaded->stcr->utils->send_email( $email_settings );
179
  }
180
 
181
- echo wpautop( $page_message );
182
 
183
  }
184
 
@@ -192,7 +192,7 @@ if ( ! empty( $email ) ) {
192
  if ( isset($current_user_email) ) {
193
  $email = $current_user_email;
194
  } else if ( isset( $_COOKIE['comment_author_email_' . COOKIEHASH] )) {
195
- $email = sanitize_email( $_COOKIE['comment_author_email_' . COOKIEHASH] );
196
  } else {
197
  $email = '';
198
  }
@@ -203,30 +203,31 @@ if ( ! empty( $email ) ) {
203
  }
204
 
205
  ?>
206
- <p><?php echo wpautop( $message ); ?></p>
207
- <form action="<?php echo esc_url( $_SERVER[ 'REQUEST_URI' ]);?>" method="post" name="sub-form">
 
208
  <fieldset style="border:0">
209
  <?php if ( $challenge_question_state == 'yes' ) : ?>
210
  <p>
211
- <label for="subscribe_reloaded_email"><?php _e( 'Email', 'subscribe-to-comments-reloaded' ) ?></label>
212
  <input id='subscribe_reloaded_email' type="email" class="subscribe-form-field" name="sre" value="<?php echo esc_attr( $email ); ?>" size="22" required />
213
  </p>
214
  <p>
215
- <label for="subscribe-reloaded-challenge"><?php echo $challenge_question; ?></label>
216
  <input id="subscribe-reloaded-challenge" type="text" class="subscribe-form-field" name="subscribe_reloaded_challenge" />
217
  </p>
218
  <p>
219
- <input name="submit" type="submit" class="subscribe-form-button" value="<?php _e( 'Send', 'subscribe-to-comments-reloaded' ) ?>" />
220
  </p>
221
- <?php echo $captcha_output; ?>
222
  <p class="notice-email-error" style='color: #f55252;font-weight:bold; display: none;'></p>
223
  <?php else : ?>
224
  <p>
225
- <label for="subscribe_reloaded_email"><?php _e( 'Email', 'subscribe-to-comments-reloaded' ) ?></label>
226
  <input id='subscribe_reloaded_email' type="email" class="subscribe-form-field" name="sre" value="<?php echo esc_attr( $email ); ?>" size="22" required />
227
- <input name="submit" type="submit" class="subscribe-form-button" value="<?php _e( 'Send', 'subscribe-to-comments-reloaded' ) ?>" />
228
  </p>
229
- <?php echo $captcha_output; ?>
230
  <p class="notice-email-error" style='color: #f55252;font-weight:bold; display: none;'></p>
231
  <?php endif; ?>
232
 
@@ -236,7 +237,7 @@ if ( ! empty( $email ) ) {
236
 
237
  if ( isset( $post_permalink ) ) {
238
  echo '<p id="subscribe-reloaded-update-p">
239
- <a style="margin-right: 10px; text-decoration: none; box-shadow: unset;" href="'. esc_url( $post_permalink ) .'"><i class="fa fa-arrow-circle-left fa-2x" aria-hidden="true" style="vertical-align: middle;"></i>&nbsp; '. __('Return to Post','subscribe-to-comments-reloaded').'</a>
240
  </p>';
241
  }
242
 
@@ -279,44 +280,45 @@ if( ! $valid_all ) {
279
  }
280
 
281
  ?>
282
- <p><?php echo wpautop( $message ); ?></p>
283
- <form action="<?php echo esc_url( $_SERVER[ 'REQUEST_URI' ]);?>" method="post" name="sub-form">
 
284
  <fieldset style="border:0">
285
 
286
  <?php if ( $challenge_question_state == 'yes' ) : ?>
287
  <p>
288
- <label for="subscribe_reloaded_email"><?php _e( 'Email', 'subscribe-to-comments-reloaded' ) ?></label>
289
  <input id='subscribe_reloaded_email' type="email" class="subscribe-form-field" name="sre" value="<?php echo esc_attr( $email ); ?>" size="22" required />
290
  </p>
291
  <p>
292
- <label for="subscribe-reloaded-challenge"><?php echo $challenge_question; ?></label>
293
  <input id="subscribe-reloaded-challenge" type="text" class="subscribe-form-field" name="subscribe_reloaded_challenge" />
294
  </p>
295
  <p>
296
- <input name="submit" type="submit" class="subscribe-form-button" value="<?php _e( 'Send', 'subscribe-to-comments-reloaded' ) ?>" />
297
  </p>
298
- <?php echo $captcha_output; ?>
299
  <p class="notice-email-error" style='color: #f55252;font-weight:bold;'></p>
300
  <?php else : ?>
301
  <p>
302
- <label for="subscribe_reloaded_email"><?php _e( 'Email', 'subscribe-to-comments-reloaded' ) ?></label>
303
  <input id='subscribe_reloaded_email' type="email" class="subscribe-form-field" name="sre" value="<?php echo esc_attr( $email ); ?>" size="22" required />
304
- <input name="submit" type="submit" class="subscribe-form-button" value="<?php _e( 'Send', 'subscribe-to-comments-reloaded' ) ?>" />
305
  </p>
306
- <?php echo $captcha_output; ?>
307
  <p class="notice-email-error" style='color: #f55252;font-weight:bold;'></p>
308
  <?php endif; ?>
309
 
310
  <?php if ( ! $valid_email ) : ?>
311
- <p style='color: #f55252;font-weight:bold;'><i class="fa fa-exclamation-triangle"></i> <?php _e("Email address is not valid", 'subscribe-to-comments-reloaded') ?></p>
312
  <?php endif; ?>
313
 
314
  <?php if ( ! $valid_challenge ) : ?>
315
- <p style='color: #f55252;font-weight:bold;'><i class="fa fa-exclamation-triangle"></i> <?php _e("Challenge answer is not correct", 'subscribe-to-comments-reloaded') ?></p>
316
  <?php endif; ?>
317
 
318
  <?php if ( ! $valid_captcha ) : ?>
319
- <p style='color: #f55252;font-weight:bold;'><i class="fa fa-exclamation-triangle"></i> <?php _e("Challenge answer is not correct", 'subscribe-to-comments-reloaded') ?></p>
320
  <?php endif; ?>
321
 
322
  </fieldset>
29
  $captcha_output .= '<div class="g-recaptcha" data-sitekey="' . $captcha_site_key . '"></div>';
30
  if ( 'v2' == $recaptcha_version ) {
31
  if ( isset( $_POST['g-recaptcha-response'] ) ) {
32
+ $captcha = sanitize_text_field( wp_unslash( $_POST['g-recaptcha-response'] ) );
33
  $captcha_result = wp_remote_post( 'https://www.google.com/recaptcha/api/siteverify', array(
34
  'method' => 'POST',
35
  'body' => array(
48
  }
49
  } elseif ( 'v3' == $recaptcha_version ) {
50
  if ( isset( $_POST['token'] ) ) {
51
+ $captcha = sanitize_text_field( wp_unslash( $_POST['token'] ) );
52
+ $action = sanitize_text_field( wp_unslash( $_POST['action'] ) );
53
 
54
  $captcha_result = wp_remote_post( 'https://www.google.com/recaptcha/api/siteverify', array(
55
  'method' => 'POST',
80
  // post permalink supplied with $_GET
81
  if ( array_key_exists('post_permalink', $_GET ) ) {
82
  if ( ! empty( $_GET['post_permalink'] ) ) {
83
+ $post_permalink = sanitize_text_field( wp_unslash( $_GET['post_permalink'] ) );
84
  }
85
  }
86
 
178
  $wp_subscribe_reloaded->stcr->utils->send_email( $email_settings );
179
  }
180
 
181
+ echo wp_kses( wpautop( $page_message ), wp_kses_allowed_html( 'post' ) );
182
 
183
  }
184
 
192
  if ( isset($current_user_email) ) {
193
  $email = $current_user_email;
194
  } else if ( isset( $_COOKIE['comment_author_email_' . COOKIEHASH] )) {
195
+ $email = sanitize_email( wp_unslash( $_COOKIE[ 'comment_author_email_' . COOKIEHASH ] ) );
196
  } else {
197
  $email = '';
198
  }
203
  }
204
 
205
  ?>
206
+ <?php echo wp_kses( wpautop( $message ), wp_kses_allowed_html( 'post' ) ); ?>
207
+ <?php $server_request_uri = isset( $_SERVER['REQUEST_URI'] ) ? sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : ''; ?>
208
+ <form action="<?php echo esc_url( $server_request_uri ); ?>" method="post" name="sub-form">
209
  <fieldset style="border:0">
210
  <?php if ( $challenge_question_state == 'yes' ) : ?>
211
  <p>
212
+ <label for="subscribe_reloaded_email"><?php esc_html_e( 'Email', 'subscribe-to-comments-reloaded' ) ?></label>
213
  <input id='subscribe_reloaded_email' type="email" class="subscribe-form-field" name="sre" value="<?php echo esc_attr( $email ); ?>" size="22" required />
214
  </p>
215
  <p>
216
+ <label for="subscribe-reloaded-challenge"><?php echo esc_html( $challenge_question ); ?></label>
217
  <input id="subscribe-reloaded-challenge" type="text" class="subscribe-form-field" name="subscribe_reloaded_challenge" />
218
  </p>
219
  <p>
220
+ <input name="submit" type="submit" class="subscribe-form-button" value="<?php esc_attr_e( 'Send', 'subscribe-to-comments-reloaded' ) ?>" />
221
  </p>
222
+ <?php echo wp_kses( $captcha_output, wp_kses_allowed_html( 'post' ) ); ?>
223
  <p class="notice-email-error" style='color: #f55252;font-weight:bold; display: none;'></p>
224
  <?php else : ?>
225
  <p>
226
+ <label for="subscribe_reloaded_email"><?php esc_html_e( 'Email', 'subscribe-to-comments-reloaded' ) ?></label>
227
  <input id='subscribe_reloaded_email' type="email" class="subscribe-form-field" name="sre" value="<?php echo esc_attr( $email ); ?>" size="22" required />
228
+ <input name="submit" type="submit" class="subscribe-form-button" value="<?php esc_attr_e( 'Send', 'subscribe-to-comments-reloaded' ) ?>" />
229
  </p>
230
+ <?php echo wp_kses( $captcha_output, wp_kses_allowed_html( 'post' ) ); ?>
231
  <p class="notice-email-error" style='color: #f55252;font-weight:bold; display: none;'></p>
232
  <?php endif; ?>
233
 
237
 
238
  if ( isset( $post_permalink ) ) {
239
  echo '<p id="subscribe-reloaded-update-p">
240
+ <a style="margin-right: 10px; text-decoration: none; box-shadow: unset;" href="'. esc_url( $post_permalink ) .'"><i class="fa fa-arrow-circle-left fa-2x" aria-hidden="true" style="vertical-align: middle;"></i>&nbsp; '. esc_html__('Return to Post','subscribe-to-comments-reloaded').'</a>
241
  </p>';
242
  }
243
 
280
  }
281
 
282
  ?>
283
+ <?php echo wp_kses( wpautop( $message ), wp_kses_allowed_html( 'post' ) ); ?>
284
+ <?php $server_request_uri = isset( $_SERVER['REQUEST_URI'] ) ? sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : ''; ?>
285
+ <form action="<?php echo esc_url( $server_request_uri ); ?>" method="post" name="sub-form">
286
  <fieldset style="border:0">
287
 
288
  <?php if ( $challenge_question_state == 'yes' ) : ?>
289
  <p>
290
+ <label for="subscribe_reloaded_email"><?php esc_html_e( 'Email', 'subscribe-to-comments-reloaded' ) ?></label>
291
  <input id='subscribe_reloaded_email' type="email" class="subscribe-form-field" name="sre" value="<?php echo esc_attr( $email ); ?>" size="22" required />
292
  </p>
293
  <p>
294
+ <label for="subscribe-reloaded-challenge"><?php echo esc_html( $challenge_question ); ?></label>
295
  <input id="subscribe-reloaded-challenge" type="text" class="subscribe-form-field" name="subscribe_reloaded_challenge" />
296
  </p>
297
  <p>
298
+ <input name="submit" type="submit" class="subscribe-form-button" value="<?php esc_attr_e( 'Send', 'subscribe-to-comments-reloaded' ) ?>" />
299
  </p>
300
+ <?php echo wp_kses( $captcha_output, wp_kses_allowed_html( 'post' ) ); ?>
301
  <p class="notice-email-error" style='color: #f55252;font-weight:bold;'></p>
302
  <?php else : ?>
303
  <p>
304
+ <label for="subscribe_reloaded_email"><?php esc_html_e( 'Email', 'subscribe-to-comments-reloaded' ) ?></label>
305
  <input id='subscribe_reloaded_email' type="email" class="subscribe-form-field" name="sre" value="<?php echo esc_attr( $email ); ?>" size="22" required />
306
+ <input name="submit" type="submit" class="subscribe-form-button" value="<?php esc_attr_e( 'Send', 'subscribe-to-comments-reloaded' ) ?>" />
307
  </p>
308
+ <?php echo wp_kses( $captcha_output, wp_kses_allowed_html( 'post' ) ); ?>
309
  <p class="notice-email-error" style='color: #f55252;font-weight:bold;'></p>
310
  <?php endif; ?>
311
 
312
  <?php if ( ! $valid_email ) : ?>
313
+ <p style='color: #f55252;font-weight:bold;'><i class="fa fa-exclamation-triangle"></i> <?php esc_html_e("Email address is not valid", 'subscribe-to-comments-reloaded') ?></p>
314
  <?php endif; ?>
315
 
316
  <?php if ( ! $valid_challenge ) : ?>
317
+ <p style='color: #f55252;font-weight:bold;'><i class="fa fa-exclamation-triangle"></i> <?php esc_html_e("Challenge answer is not correct", 'subscribe-to-comments-reloaded') ?></p>
318
  <?php endif; ?>
319
 
320
  <?php if ( ! $valid_captcha ) : ?>
321
+ <p style='color: #f55252;font-weight:bold;'><i class="fa fa-exclamation-triangle"></i> <?php esc_html_e("Challenge answer is not correct", 'subscribe-to-comments-reloaded') ?></p>
322
  <?php endif; ?>
323
 
324
  </fieldset>
templates/subscribe.php CHANGED
@@ -30,7 +30,7 @@ if ( $use_captcha == 'yes' ) {
30
  $captcha_output .= '<div class="g-recaptcha" data-sitekey="' . $captcha_site_key . '"></div>';
31
  if ( 'v2' == $recaptcha_version ) {
32
  if ( isset( $_POST['g-recaptcha-response'] ) ) {
33
- $captcha = $_POST['g-recaptcha-response'];
34
  $captcha_result = wp_remote_post( 'https://www.google.com/recaptcha/api/siteverify', array(
35
  'method' => 'POST',
36
  'body' => array(
@@ -49,8 +49,8 @@ if ( $use_captcha == 'yes' ) {
49
  }
50
  } elseif ( 'v3' == $recaptcha_version ) {
51
  if ( isset( $_POST['token'] ) ) {
52
- $captcha = $_POST['token'];
53
- $action = $_POST['action'];
54
 
55
  $captcha_result = wp_remote_post( 'https://www.google.com/recaptcha/api/siteverify', array(
56
  'method' => 'POST',
@@ -123,8 +123,9 @@ if ( ! empty( $email ) ) {
123
 
124
  global $akismet_api_host, $akismet_api_port;
125
 
 
126
  $akismet_query_string = "user_ip={$_SERVER['REMOTE_ADDR']}";
127
- $akismet_query_string .= "&user_agent=" . esc_url( stripslashes( $_SERVER['HTTP_USER_AGENT'] ) );
128
  $akismet_query_string .= "&blog=" . esc_url( get_option( 'home' ) );
129
  $akismet_query_string .= "&blog_lang=" . get_locale();
130
  $akismet_query_string .= "&blog_charset=" . get_option( 'blog_charset' );
@@ -150,8 +151,8 @@ if ( ! empty( $email ) ) {
150
  $from_name = stripslashes( get_option( 'subscribe_reloaded_from_name', 'admin' ) );
151
  $from_email = get_option( 'subscribe_reloaded_from_email', get_bloginfo( 'admin_email' ) );
152
 
153
- $subject = __( 'New subscription to', 'subscribe-to-comments-reloaded' ) . " $target_post->post_title";
154
- $message = __( 'New subscription to', 'subscribe-to-comments-reloaded' ) . " $target_post->post_title\n" . __( 'User:', 'subscribe-to-comments-reloaded' ) . " $clean_email";
155
 
156
  $email_settings = array(
157
  'subject' => $subject,
@@ -189,7 +190,7 @@ if ( ! empty( $email ) ) {
189
  $message = str_replace( '[post_title]', $target_post->post_title, $message );
190
  }
191
 
192
- echo wpautop( $message );
193
 
194
  }
195
 
@@ -200,7 +201,7 @@ if ( ! empty( $email ) ) {
200
  if ( isset( $current_user_email ) ) {
201
  $email = $current_user_email;
202
  } else if ( isset( $_COOKIE['comment_author_email_' . COOKIEHASH] )) {
203
- $email = sanitize_email( $_COOKIE['comment_author_email_' . COOKIEHASH] );
204
  } else {
205
  $email = '';
206
  }
@@ -213,36 +214,37 @@ if ( ! empty( $email ) ) {
213
  } else {
214
  $message = str_replace( '[post_title]', $target_post->post_title, $message );
215
  }
216
- echo '<p>' . $message . '</p>';
217
 
218
  // output the form
219
 
220
 
221
  ?>
222
- <form action="<?php echo esc_url( $_SERVER[ 'REQUEST_URI' ]); ?>" method="post" name="sub-form">
 
223
  <fieldset style="border:0">
224
  <div>
225
  <?php if ( $challenge_question_state == 'yes' ) : ?>
226
  <p>
227
- <label for="sre"><?php _e( 'Email', 'subscribe-to-comments-reloaded' ) ?></label>
228
  <input id='sre' type="text" class="subscribe-form-field" name="sre" value="<?php echo esc_attr( $email ); ?>" size="22" required />
229
  </p>
230
  <p>
231
- <label for="subscribe-reloaded-challenge"><?php echo $challenge_question; ?></label>
232
  <input id="subscribe-reloaded-challenge" type="text" class="subscribe-form-field" name="subscribe_reloaded_challenge" />
233
  </p>
234
  <p>
235
  <input name="submit" type="submit" class="subscribe-form-button" value="<?php esc_attr_e( 'Send', 'subscribe-to-comments-reloaded' ) ?>" />
236
  </p>
237
- <?php echo $captcha_output; ?>
238
  <p class="notice-email-error" style='color: #f55252;font-weight:bold; display: none;'></p>
239
  <?php else : ?>
240
  <p>
241
- <label for="sre"><?php _e( 'Email', 'subscribe-to-comments-reloaded' ) ?></label>
242
  <input id='sre' type="text" class="subscribe-form-field" name="sre" value="<?php echo esc_attr( $email ); ?>" size="22" required />
243
  <input name="submit" type="submit" class="subscribe-form-button" value="<?php esc_attr_e( 'Send', 'subscribe-to-comments-reloaded' ) ?>" />
244
  </p>
245
- <?php echo $captcha_output; ?>
246
  <p class="notice-email-error" style='color: #f55252;font-weight:bold; display: none;'></p>
247
  <?php endif; ?>
248
  </div>
@@ -290,44 +292,45 @@ if ( ! $valid_all ) {
290
  } else {
291
  $message = str_replace( '[post_title]', esc_html( $target_post->post_title ), $message );
292
  }
293
- echo '<p>' . $message . '</p>';
294
 
295
  ?>
296
- <form action="<?php echo esc_url( $_SERVER[ 'REQUEST_URI' ]);?>" method="post" name="sub-form">
 
297
  <fieldset style="border:0">
298
 
299
  <?php if ( $challenge_question_state == 'yes' ) : ?>
300
  <p>
301
- <label for="sre"><?php _e( 'Email', 'subscribe-to-comments-reloaded' ) ?></label>
302
  <input id='sre' type="text" class="subscribe-form-field" name="sre" value="<?php echo esc_attr( $email ); ?>" size="22" required />
303
  </p>
304
  <p>
305
- <label for="subscribe-reloaded-challenge"><?php echo $challenge_question; ?></label>
306
  <input id="subscribe-reloaded-challenge" type="text" class="subscribe-form-field" name="subscribe_reloaded_challenge" />
307
  </p>
308
  <p>
309
  <input name="submit" type="submit" class="subscribe-form-button" value="<?php esc_attr_e( 'Send', 'subscribe-to-comments-reloaded' ) ?>" />
310
  </p>
311
- <?php echo $captcha_output; ?>
312
  <p class="notice-email-error" style='color: #f55252;font-weight:bold; display: none;'></p>
313
  <?php else : ?>
314
- <label for="sre"><?php _e( 'Email', 'subscribe-to-comments-reloaded' ) ?></label>
315
  <input id='sre' type="text" class="subscribe-form-field" name="sre" value="<?php echo esc_attr( $email ); ?>" size="22" required />
316
  <input name="submit" type="submit" class="subscribe-form-button" value="<?php esc_attr_e( 'Send', 'subscribe-to-comments-reloaded' ) ?>" />
317
- <?php echo $captcha_output; ?>
318
  <p class="notice-email-error" style='color: #f55252;font-weight:bold; display: none;'></p>
319
  <?php endif; ?>
320
 
321
  <?php if ( ! $valid_email ) : ?>
322
- <p style='color: #f55252;font-weight:bold;'><i class="fa fa-exclamation-triangle"></i> <?php _e("Email address is not valid", 'subscribe-to-comments-reloaded') ?></p>
323
  <?php endif; ?>
324
 
325
  <?php if ( ! $valid_challenge ) : ?>
326
- <p style='color: #f55252;font-weight:bold;'><i class="fa fa-exclamation-triangle"></i> <?php _e("Challenge answer is not correct", 'subscribe-to-comments-reloaded') ?></p>
327
  <?php endif; ?>
328
 
329
  <?php if ( ! $valid_captcha ) : ?>
330
- <p style='color: #f55252;font-weight:bold;'><i class="fa fa-exclamation-triangle"></i> <?php _e("Challenge answer is not correct", 'subscribe-to-comments-reloaded') ?></p>
331
  <?php endif; ?>
332
 
333
  </fieldset>
30
  $captcha_output .= '<div class="g-recaptcha" data-sitekey="' . $captcha_site_key . '"></div>';
31
  if ( 'v2' == $recaptcha_version ) {
32
  if ( isset( $_POST['g-recaptcha-response'] ) ) {
33
+ $captcha = sanitize_text_field( wp_unslash( $_POST['g-recaptcha-response'] ) );
34
  $captcha_result = wp_remote_post( 'https://www.google.com/recaptcha/api/siteverify', array(
35
  'method' => 'POST',
36
  'body' => array(
49
  }
50
  } elseif ( 'v3' == $recaptcha_version ) {
51
  if ( isset( $_POST['token'] ) ) {
52
+ $captcha = sanitize_text_field( wp_unslash( $_POST['token'] ) );
53
+ $action = sanitize_text_field( wp_unslash( $_POST['action'] ) );
54
 
55
  $captcha_result = wp_remote_post( 'https://www.google.com/recaptcha/api/siteverify', array(
56
  'method' => 'POST',
123
 
124
  global $akismet_api_host, $akismet_api_port;
125
 
126
+ $user_agent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? sanitize_text_field( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ) : '';
127
  $akismet_query_string = "user_ip={$_SERVER['REMOTE_ADDR']}";
128
+ $akismet_query_string .= "&user_agent=" . esc_url( stripslashes( $user_agent ) );
129
  $akismet_query_string .= "&blog=" . esc_url( get_option( 'home' ) );
130
  $akismet_query_string .= "&blog_lang=" . get_locale();
131
  $akismet_query_string .= "&blog_charset=" . get_option( 'blog_charset' );
151
  $from_name = stripslashes( get_option( 'subscribe_reloaded_from_name', 'admin' ) );
152
  $from_email = get_option( 'subscribe_reloaded_from_email', get_bloginfo( 'admin_email' ) );
153
 
154
+ $subject = esc_html__( 'New subscription to', 'subscribe-to-comments-reloaded' ) . " $target_post->post_title";
155
+ $message = esc_html__( 'New subscription to', 'subscribe-to-comments-reloaded' ) . " $target_post->post_title\n" . esc_html__( 'User:', 'subscribe-to-comments-reloaded' ) . " $clean_email";
156
 
157
  $email_settings = array(
158
  'subject' => $subject,
190
  $message = str_replace( '[post_title]', $target_post->post_title, $message );
191
  }
192
 
193
+ echo wp_kses( wpautop( $message ), wp_kses_allowed_html( 'post' ) );
194
 
195
  }
196
 
201
  if ( isset( $current_user_email ) ) {
202
  $email = $current_user_email;
203
  } else if ( isset( $_COOKIE['comment_author_email_' . COOKIEHASH] )) {
204
+ $email = sanitize_email( wp_unslash( $_COOKIE[ 'comment_author_email_' . COOKIEHASH ] ) );
205
  } else {
206
  $email = '';
207
  }
214
  } else {
215
  $message = str_replace( '[post_title]', $target_post->post_title, $message );
216
  }
217
+ echo '<p>' . wp_kses( $message, wp_kses_allowed_html( 'post' ) ) . '</p>';
218
 
219
  // output the form
220
 
221
 
222
  ?>
223
+ <?php $server_request_uri = isset( $_SERVER['REQUEST_URI'] ) ? sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : ''; ?>
224
+ <form action="<?php echo esc_url( $server_request_uri ); ?>" method="post" name="sub-form">
225
  <fieldset style="border:0">
226
  <div>
227
  <?php if ( $challenge_question_state == 'yes' ) : ?>
228
  <p>
229
+ <label for="sre"><?php esc_html_e( 'Email', 'subscribe-to-comments-reloaded' ) ?></label>
230
  <input id='sre' type="text" class="subscribe-form-field" name="sre" value="<?php echo esc_attr( $email ); ?>" size="22" required />
231
  </p>
232
  <p>
233
+ <label for="subscribe-reloaded-challenge"><?php echo esc_html( $challenge_question ); ?></label>
234
  <input id="subscribe-reloaded-challenge" type="text" class="subscribe-form-field" name="subscribe_reloaded_challenge" />
235
  </p>
236
  <p>
237
  <input name="submit" type="submit" class="subscribe-form-button" value="<?php esc_attr_e( 'Send', 'subscribe-to-comments-reloaded' ) ?>" />
238
  </p>
239
+ <?php echo wp_kses( $captcha_output, wp_kses_allowed_html( 'post' ) ); ?>
240
  <p class="notice-email-error" style='color: #f55252;font-weight:bold; display: none;'></p>
241
  <?php else : ?>
242
  <p>
243
+ <label for="sre"><?php esc_html_e( 'Email', 'subscribe-to-comments-reloaded' ) ?></label>
244
  <input id='sre' type="text" class="subscribe-form-field" name="sre" value="<?php echo esc_attr( $email ); ?>" size="22" required />
245
  <input name="submit" type="submit" class="subscribe-form-button" value="<?php esc_attr_e( 'Send', 'subscribe-to-comments-reloaded' ) ?>" />
246
  </p>
247
+ <?php echo wp_kses( $captcha_output, wp_kses_allowed_html( 'post' ) ); ?>
248
  <p class="notice-email-error" style='color: #f55252;font-weight:bold; display: none;'></p>
249
  <?php endif; ?>
250
  </div>
292
  } else {
293
  $message = str_replace( '[post_title]', esc_html( $target_post->post_title ), $message );
294
  }
295
+ echo '<p>' . wp_kses( $message, wp_kses_allowed_html( 'post' ) ) . '</p>';
296
 
297
  ?>
298
+ <?php $server_request_uri = isset( $_SERVER['REQUEST_URI'] ) ? sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : ''; ?>
299
+ <form action="<?php echo esc_url( $server_request_uri ); ?>" method="post" name="sub-form">
300
  <fieldset style="border:0">
301
 
302
  <?php if ( $challenge_question_state == 'yes' ) : ?>
303
  <p>
304
+ <label for="sre"><?php esc_html_e( 'Email', 'subscribe-to-comments-reloaded' ) ?></label>
305
  <input id='sre' type="text" class="subscribe-form-field" name="sre" value="<?php echo esc_attr( $email ); ?>" size="22" required />
306
  </p>
307
  <p>
308
+ <label for="subscribe-reloaded-challenge"><?php echo esc_html( $challenge_question ); ?></label>
309
  <input id="subscribe-reloaded-challenge" type="text" class="subscribe-form-field" name="subscribe_reloaded_challenge" />
310
  </p>
311
  <p>
312
  <input name="submit" type="submit" class="subscribe-form-button" value="<?php esc_attr_e( 'Send', 'subscribe-to-comments-reloaded' ) ?>" />
313
  </p>
314
+ <?php echo wp_kses( $captcha_output, wp_kses_allowed_html( 'post' ) ); ?>
315
  <p class="notice-email-error" style='color: #f55252;font-weight:bold; display: none;'></p>
316
  <?php else : ?>
317
+ <label for="sre"><?php esc_html_e( 'Email', 'subscribe-to-comments-reloaded' ) ?></label>
318
  <input id='sre' type="text" class="subscribe-form-field" name="sre" value="<?php echo esc_attr( $email ); ?>" size="22" required />
319
  <input name="submit" type="submit" class="subscribe-form-button" value="<?php esc_attr_e( 'Send', 'subscribe-to-comments-reloaded' ) ?>" />
320
+ <?php echo wp_kses( $captcha_output, wp_kses_allowed_html( 'post' ) ); ?>
321
  <p class="notice-email-error" style='color: #f55252;font-weight:bold; display: none;'></p>
322
  <?php endif; ?>
323
 
324
  <?php if ( ! $valid_email ) : ?>
325
+ <p style='color: #f55252;font-weight:bold;'><i class="fa fa-exclamation-triangle"></i> <?php esc_html_e("Email address is not valid", 'subscribe-to-comments-reloaded') ?></p>
326
  <?php endif; ?>
327
 
328
  <?php if ( ! $valid_challenge ) : ?>
329
+ <p style='color: #f55252;font-weight:bold;'><i class="fa fa-exclamation-triangle"></i> <?php esc_html_e("Challenge answer is not correct", 'subscribe-to-comments-reloaded') ?></p>
330
  <?php endif; ?>
331
 
332
  <?php if ( ! $valid_captcha ) : ?>
333
+ <p style='color: #f55252;font-weight:bold;'><i class="fa fa-exclamation-triangle"></i> <?php esc_html_e("Challenge answer is not correct", 'subscribe-to-comments-reloaded') ?></p>
334
  <?php endif; ?>
335
 
336
  </fieldset>
templates/user.php CHANGED
@@ -1,184 +1,185 @@
1
- <?php
2
- // Avoid direct access to this piece of code
3
- if ( ! function_exists( 'add_action' ) ) {
4
- header( 'Location: /' );
5
- exit;
6
- }
7
-
8
- global $wp_subscribe_reloaded;
9
- $post_permalink = null;
10
-
11
- if (array_key_exists('post_permalink', $_GET))
12
- {
13
- if ( ! empty( $_GET['post_permalink'] ) )
14
- {
15
- $post_permalink = $_GET['post_permalink'];
16
- }
17
- }
18
-
19
- ob_start();
20
-
21
- if ( ! empty( $_POST['post_list'] ) ) {
22
- $post_list = array();
23
- foreach ( $_POST['post_list'] as $a_post_id ) {
24
- if ( ! in_array( $a_post_id, $post_list ) ) {
25
- $post_list[] = intval( $a_post_id );
26
- }
27
- }
28
-
29
- $action = ! empty( $_POST['sra'] ) ? $_POST['sra'] : ( ! empty( $_GET['sra'] ) ? $_GET['sra'] : '' );
30
- $action = sanitize_text_field( $action );
31
- switch ( $action ) {
32
- case 'delete':
33
- $rows_affected = $wp_subscribe_reloaded->stcr->delete_subscriptions( $post_list, $email );
34
- echo '<p class="updated">' . __( 'Subscriptions deleted:', 'subscribe-to-comments-reloaded' ) . " $rows_affected</p>";
35
- break;
36
- case 'suspend':
37
- $rows_affected = $wp_subscribe_reloaded->stcr->update_subscription_status( $post_list, $email, 'C' );
38
- echo '<p class="updated">' . __( 'Subscriptions suspended:', 'subscribe-to-comments-reloaded' ) . " $rows_affected</p>";
39
- break;
40
- case 'activate':
41
- $rows_affected = $wp_subscribe_reloaded->stcr->update_subscription_status( $post_list, $email, '-C' );
42
- echo '<p class="updated">' . __( 'Subscriptions activated:', 'subscribe-to-comments-reloaded' ) . " $rows_affected</p>";
43
- break;
44
- case 'force_y':
45
- $rows_affected = $wp_subscribe_reloaded->stcr->update_subscription_status( $post_list, $email, 'Y' );
46
- echo '<p class="updated">' . __( 'Subscriptions updated:', 'subscribe-to-comments-reloaded' ) . " $rows_affected</p>";
47
- break;
48
- case 'force_r':
49
- $rows_affected = $wp_subscribe_reloaded->stcr->update_subscription_status( $post_list, $email, 'R' );
50
- echo '<p class="updated">' . __( 'Subscriptions updated:', 'subscribe-to-comments-reloaded' ) . " $rows_affected</p>";
51
- break;
52
- default:
53
- break;
54
- }
55
- }
56
- $message = html_entity_decode( stripslashes( get_option( 'subscribe_reloaded_user_text' ) ), ENT_QUOTES, 'UTF-8' );
57
-
58
- if ( function_exists( 'qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage' ) ) {
59
- $message = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage( $message );
60
- }
61
-
62
- echo "<p>$message</p>";
63
-
64
- ?>
65
-
66
- <form action="<?php echo esc_url( $_SERVER['REQUEST_URI'] ) ?>" method="post" id="post_list_form" name="post_list_form" onsubmit="if(this.sra[0].checked) return confirm('<?php _e( 'Please remember: this operation cannot be undone. Are you sure you want to proceed?', 'subscribe-to-comments-reloaded' ) ?>')">
67
- <fieldset style="border:0">
68
- <?php
69
- $subscriptions = $wp_subscribe_reloaded->stcr->get_subscriptions( 'email', 'equals', $email, 'dt', 'DESC' );
70
- // Let us translate those status
71
- $legend_translate = array(
72
- 'R' => __( 'Replies', 'subscribe-to-comments-reloaded'),
73
- 'RC' => __( 'Replies Unconfirmed', 'subscribe-to-comments-reloaded'),
74
- 'Y' => __( "All Comments", 'subscribe-to-comments-reloaded'),
75
- 'YC' => __( "Unconfirmed", 'subscribe-to-comments-reloaded'),
76
- 'C' => __( "Inactive", 'subscribe-to-comments-reloaded'),
77
- '-C' => __( "Active", 'subscribe-to-comments-reloaded')
78
- );
79
- if ( is_array( $subscriptions ) && ! empty( $subscriptions ) ) {
80
- echo '<p id="subscribe-reloaded-email-p">' . __( 'Email to manage', 'subscribe-to-comments-reloaded' ) . ': <strong>' . $email . '</strong></p>';
81
-
82
- echo "<table class='stcr-subscription-list'><thead><tr>
83
- <th style='width:24%; text-align: center;'><i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>&nbsp;&nbsp;". __('Subscription Date','subscribe-to-comments-reloaded')."</th>
84
- <th style='width:40%;'><i class=\"fa fa-pencil-square-o\" aria-hidden=\"true\"></i>&nbsp;&nbsp;". __('Title','subscribe-to-comments-reloaded')."</th>
85
- <th style='width:20%; text-align: center;'><i class=\"fa fa-info\" aria-hidden=\"true\"></i>&nbsp;&nbsp;". __('Subscription Status','subscribe-to-comments-reloaded')."</th>
86
- </tr></thead>";
87
- echo "<tbody>";
88
-
89
- foreach ( $subscriptions as $i => $a_subscription ) {
90
- $t_status = $a_subscription->status;
91
- $permalink = esc_url( get_permalink( $a_subscription->post_id ) );
92
- $title = get_the_title( $a_subscription->post_id );
93
- $date = strtotime( $a_subscription->dt );
94
- $formatted_date = date( get_option( "subscribe_reloaded_date_format" ), $date );
95
- $date_translated = $wp_subscribe_reloaded->stcr->utils->stcr_translate_month( $formatted_date );
96
-
97
- echo "<tr>";
98
- echo "<td style='text-align: center;'><input type='checkbox' name='post_list[]' value='{$a_subscription->post_id}' id='e_$i'/><label for='e_$i'> $date_translated</td>";
99
- echo "<td><a href='$permalink' target='_blank'>$title</a> </td>";
100
- echo "<td style='text-align: center;'>$legend_translate[$t_status]</td>";
101
- echo "</tr>";
102
- }
103
- echo "</tbody>";
104
- echo "</table>";
105
-
106
- echo '<p id="subscribe-reloaded-select-all-p">
107
- <i class="fa fa-expand" aria-hidden="true"></i>&nbsp;
108
- <a class="subscribe-reloaded-small-button stcr-subs-select-all" href="#" onclick="stcrCheckAll(event)">' . __( 'Select all', 'subscribe-to-comments-reloaded' ) . '</a> ';
109
- echo '&nbsp;&nbsp;<i class="fa fa-compress" aria-hidden="true"></i>&nbsp;
110
- <a class="subscribe-reloaded-small-button stcr-subs-select-none" href="#" onclick="stcrUncheckAll(event)">' . __( 'Invert selection', 'subscribe-to-comments-reloaded' ) . '</a></p>';
111
- echo '<p id="subscribe-reloaded-action-p">' . __( 'Action:', 'subscribe-to-comments-reloaded' );
112
-
113
- $show_option_all = true;
114
- $show_option_replies = true;
115
-
116
- if ( get_option( 'subscribe_reloaded_enable_advanced_subscriptions', 'no' ) == 'no' ) {
117
- if ( get_option( 'subscribe_reloaded_checked_by_default_value', '0' ) == '0' ) {
118
- $show_option_replies = false;
119
- } else {
120
- $show_option_all = false;
121
- }
122
- }
123
-
124
- echo '<select name="sra">';
125
- echo '<option value="">'. __( 'Choose your action', 'subscribe-to-comments-reloaded' ) .'</option>';
126
- echo '<option value="delete">'. __( 'Unsubscribe', 'subscribe-to-comments-reloaded' ) .'</option>';
127
- echo '<option value="suspend">'. __( 'Suspend', 'subscribe-to-comments-reloaded' ) .'</option>';
128
- if ( $show_option_all ) {
129
- echo '<option value="force_y">'. __( 'All comments', 'subscribe-to-comments-reloaded' ) .'</option>';
130
- }
131
- if ( $show_option_replies ) {
132
- echo '<option value="force_r">'. __( 'Replies to my comments', 'subscribe-to-comments-reloaded' ) .'</option>';
133
- }
134
- echo '<select>';
135
-
136
- echo '&nbsp;&nbsp;<input type="submit" class="subscribe-form-button" value="' . __( 'Update subscriptions', 'subscribe-to-comments-reloaded' ) . '" />
137
- <input type="hidden" name="srek" value="' . $wp_subscribe_reloaded->stcr->utils->get_subscriber_key( $email ) . '"></p>';
138
-
139
- if ( isset( $post_permalink ) )
140
- {
141
- echo '<p id="subscribe-reloaded-update-p">
142
- <a style="margin-right: 10px; text-decoration: none; box-shadow: unset;" href="'. esc_url( $post_permalink ) .'"><i class="fa fa-arrow-circle-left fa-2x" aria-hidden="true" style="vertical-align: middle;"></i>&nbsp; '. __('Return to Post','subscribe-to-comments-reloaded').'</a>
143
- </p>';
144
- }
145
- } else {
146
- echo '<p>' . __( 'No subscriptions match your search criteria.', 'subscribe-to-comments-reloaded' ) . '</p>';
147
- }
148
- ?>
149
- </fieldset>
150
- </form>
151
- <script type="text/javascript">
152
-
153
- function stcrCheckAll(e) {
154
-
155
- var items = document.getElementsByName('post_list[]');
156
- for ( var i=0; i<items.length; i++ ) {
157
- if ( items[i].type == 'checkbox' ) {
158
- items[i].checked = true;
159
- }
160
- }
161
-
162
- e.preventDefault();
163
-
164
- }
165
-
166
- function stcrUncheckAll(e) {
167
-
168
- var items = document.getElementsByName('post_list[]');
169
- for ( var i=0; i<items.length; i++ ) {
170
- if ( items[i].type == 'checkbox' ) {
171
- items[i].checked = false;
172
- }
173
- }
174
-
175
- e.preventDefault();
176
-
177
- }
178
-
179
- </script>
180
- <?php
181
- $output = ob_get_contents();
182
- ob_end_clean();
183
- return $output;
184
- ?>
 
1
+ <?php
2
+ // Avoid direct access to this piece of code
3
+ if ( ! function_exists( 'add_action' ) ) {
4
+ header( 'Location: /' );
5
+ exit;
6
+ }
7
+
8
+ global $wp_subscribe_reloaded;
9
+ $post_permalink = null;
10
+
11
+ if (array_key_exists('post_permalink', $_GET))
12
+ {
13
+ if ( ! empty( $_GET['post_permalink'] ) )
14
+ {
15
+ $post_permalink = sanitize_text_field( wp_unslash( $_GET['post_permalink'] ) );
16
+ }
17
+ }
18
+
19
+ ob_start();
20
+
21
+ if ( ! empty( $_POST['post_list'] ) ) {
22
+ $post_list = array();
23
+ foreach ( $_POST['post_list'] as $a_post_id ) {
24
+ if ( ! in_array( $a_post_id, $post_list ) ) {
25
+ $post_list[] = intval( $a_post_id );
26
+ }
27
+ }
28
+
29
+ $action = ! empty( $_POST['sra'] ) ? sanitize_text_field( wp_unslash( $_POST['sra'] ) ) : ( ! empty( $_GET['sra'] ) ? sanitize_text_field( wp_unslash( $_GET['sra'] ) ) : '' );
30
+ $action = sanitize_text_field( $action );
31
+ switch ( $action ) {
32
+ case 'delete':
33
+ $rows_affected = $wp_subscribe_reloaded->stcr->delete_subscriptions( $post_list, $email );
34
+ echo '<p class="updated">' . esc_html__( 'Subscriptions deleted:', 'subscribe-to-comments-reloaded' ) . esc_html( $rows_affected ) . '</p>';
35
+ break;
36
+ case 'suspend':
37
+ $rows_affected = $wp_subscribe_reloaded->stcr->update_subscription_status( $post_list, $email, 'C' );
38
+ echo '<p class="updated">' . esc_html__( 'Subscriptions suspended:', 'subscribe-to-comments-reloaded' ) . esc_html( $rows_affected ) . '</p>';
39
+ break;
40
+ case 'activate':
41
+ $rows_affected = $wp_subscribe_reloaded->stcr->update_subscription_status( $post_list, $email, '-C' );
42
+ echo '<p class="updated">' . esc_html__( 'Subscriptions activated:', 'subscribe-to-comments-reloaded' ) . esc_html( $rows_affected ) . '</p>';
43
+ break;
44
+ case 'force_y':
45
+ $rows_affected = $wp_subscribe_reloaded->stcr->update_subscription_status( $post_list, $email, 'Y' );
46
+ echo '<p class="updated">' . esc_html__( 'Subscriptions updated:', 'subscribe-to-comments-reloaded' ) . esc_html( $rows_affected ) . '</p>';
47
+ break;
48
+ case 'force_r':
49
+ $rows_affected = $wp_subscribe_reloaded->stcr->update_subscription_status( $post_list, $email, 'R' );
50
+ echo '<p class="updated">' . esc_html__( 'Subscriptions updated:', 'subscribe-to-comments-reloaded' ) . esc_html( $rows_affected ) . '</p>';
51
+ break;
52
+ default:
53
+ break;
54
+ }
55
+ }
56
+ $message = html_entity_decode( stripslashes( get_option( 'subscribe_reloaded_user_text' ) ), ENT_QUOTES, 'UTF-8' );
57
+
58
+ if ( function_exists( 'qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage' ) ) {
59
+ $message = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage( $message );
60
+ }
61
+
62
+ echo "<p>" . wp_kses( $message, wp_kses_allowed_html( 'post' ) ) . "</p>";
63
+
64
+ ?>
65
+
66
+ <?php $server_request_uri = isset( $_SERVER['REQUEST_URI'] ) ? sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : ''; ?>
67
+ <form action="<?php echo esc_url( $server_request_uri ); ?>" method="post" id="post_list_form" name="post_list_form" onsubmit="if(this.sra[0].checked) return confirm('<?php esc_attr_e( 'Please remember: this operation cannot be undone. Are you sure you want to proceed?', 'subscribe-to-comments-reloaded' ); ?>')">
68
+ <fieldset style="border:0">
69
+ <?php
70
+ $subscriptions = $wp_subscribe_reloaded->stcr->get_subscriptions( 'email', 'equals', $email, 'dt', 'DESC' );
71
+ // Let us translate those status
72
+ $legend_translate = array(
73
+ 'R' => esc_html__( 'Replies', 'subscribe-to-comments-reloaded'),
74
+ 'RC' => esc_html__( 'Replies Unconfirmed', 'subscribe-to-comments-reloaded'),
75
+ 'Y' => esc_html__( "All Comments", 'subscribe-to-comments-reloaded'),
76
+ 'YC' => esc_html__( "Unconfirmed", 'subscribe-to-comments-reloaded'),
77
+ 'C' => esc_html__( "Inactive", 'subscribe-to-comments-reloaded'),
78
+ '-C' => esc_html__( "Active", 'subscribe-to-comments-reloaded')
79
+ );
80
+ if ( is_array( $subscriptions ) && ! empty( $subscriptions ) ) {
81
+ echo '<p id="subscribe-reloaded-email-p">' . esc_html__( 'Email to manage', 'subscribe-to-comments-reloaded' ) . ': <strong>' . esc_html( $email ) . '</strong></p>';
82
+
83
+ echo "<table class='stcr-subscription-list'><thead><tr>
84
+ <th style='width:24%; text-align: center;'><i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>&nbsp;&nbsp;". esc_html__('Subscription Date','subscribe-to-comments-reloaded')."</th>
85
+ <th style='width:40%;'><i class=\"fa fa-pencil-square-o\" aria-hidden=\"true\"></i>&nbsp;&nbsp;". esc_html__('Title','subscribe-to-comments-reloaded')."</th>
86
+ <th style='width:20%; text-align: center;'><i class=\"fa fa-info\" aria-hidden=\"true\"></i>&nbsp;&nbsp;". esc_html__('Subscription Status','subscribe-to-comments-reloaded')."</th>
87
+ </tr></thead>";
88
+ echo "<tbody>";
89
+
90
+ foreach ( $subscriptions as $i => $a_subscription ) {
91
+ $t_status = $a_subscription->status;
92
+ $permalink = esc_url( get_permalink( $a_subscription->post_id ) );
93
+ $title = get_the_title( $a_subscription->post_id );
94
+ $date = strtotime( $a_subscription->dt );
95
+ $formatted_date = date( get_option( "subscribe_reloaded_date_format" ), $date );
96
+ $date_translated = $wp_subscribe_reloaded->stcr->utils->stcr_translate_month( $formatted_date );
97
+
98
+ echo "<tr>";
99
+ echo "<td style='text-align: center;'><input type='checkbox' name='post_list[]' value='" . esc_attr( $a_subscription->post_id ) . "' id='e_" . esc_attr( $i ) . "'/><label for='e_" . esc_attr( $i ) . "'> " . esc_html( $date_translated ) . "</td>";
100
+ echo "<td><a href='" . esc_url( $permalink ) . "' target='_blank'>" . esc_html( $title ) . "</a> </td>";
101
+ echo "<td style='text-align: center;'>" . esc_html( $legend_translate[ $t_status ] ) . "</td>";
102
+ echo "</tr>";
103
+ }
104
+ echo "</tbody>";
105
+ echo "</table>";
106
+
107
+ echo '<p id="subscribe-reloaded-select-all-p">
108
+ <i class="fa fa-expand" aria-hidden="true"></i>&nbsp;
109
+ <a class="subscribe-reloaded-small-button stcr-subs-select-all" href="#" onclick="stcrCheckAll(event)">' . esc_html__( 'Select all', 'subscribe-to-comments-reloaded' ) . '</a> ';
110
+ echo '&nbsp;&nbsp;<i class="fa fa-compress" aria-hidden="true"></i>&nbsp;
111
+ <a class="subscribe-reloaded-small-button stcr-subs-select-none" href="#" onclick="stcrUncheckAll(event)">' . esc_html__( 'Invert selection', 'subscribe-to-comments-reloaded' ) . '</a></p>';
112
+ echo '<p id="subscribe-reloaded-action-p">' . esc_html__( 'Action:', 'subscribe-to-comments-reloaded' );
113
+
114
+ $show_option_all = true;
115
+ $show_option_replies = true;
116
+
117
+ if ( get_option( 'subscribe_reloaded_enable_advanced_subscriptions', 'no' ) == 'no' ) {
118
+ if ( get_option( 'subscribe_reloaded_checked_by_default_value', '0' ) == '0' ) {
119
+ $show_option_replies = false;
120
+ } else {
121
+ $show_option_all = false;
122
+ }
123
+ }
124
+
125
+ echo '<select name="sra">';
126
+ echo '<option value="">'. esc_html__( 'Choose your action', 'subscribe-to-comments-reloaded' ) .'</option>';
127
+ echo '<option value="delete">'. esc_html__( 'Unsubscribe', 'subscribe-to-comments-reloaded' ) .'</option>';
128
+ echo '<option value="suspend">'. esc_html__( 'Suspend', 'subscribe-to-comments-reloaded' ) .'</option>';
129
+ if ( $show_option_all ) {
130
+ echo '<option value="force_y">'. esc_html__( 'All comments', 'subscribe-to-comments-reloaded' ) .'</option>';
131
+ }
132
+ if ( $show_option_replies ) {
133
+ echo '<option value="force_r">'. esc_html__( 'Replies to my comments', 'subscribe-to-comments-reloaded' ) .'</option>';
134
+ }
135
+ echo '<select>';
136
+
137
+ echo '&nbsp;&nbsp;<input type="submit" class="subscribe-form-button" value="' . esc_html__( 'Update subscriptions', 'subscribe-to-comments-reloaded' ) . '" />
138
+ <input type="hidden" name="srek" value="' . $wp_subscribe_reloaded->stcr->utils->get_subscriber_key( $email ) . '"></p>';
139
+
140
+ if ( isset( $post_permalink ) )
141
+ {
142
+ echo '<p id="subscribe-reloaded-update-p">
143
+ <a style="margin-right: 10px; text-decoration: none; box-shadow: unset;" href="'. esc_url( $post_permalink ) .'"><i class="fa fa-arrow-circle-left fa-2x" aria-hidden="true" style="vertical-align: middle;"></i>&nbsp; '. esc_html__('Return to Post','subscribe-to-comments-reloaded').'</a>
144
+ </p>';
145
+ }
146
+ } else {
147
+ echo '<p>' . esc_html__( 'No subscriptions match your search criteria.', 'subscribe-to-comments-reloaded' ) . '</p>';
148
+ }
149
+ ?>
150
+ </fieldset>
151
+ </form>
152
+ <script type="text/javascript">
153
+
154
+ function stcrCheckAll(e) {
155
+
156
+ var items = document.getElementsByName('post_list[]');
157
+ for ( var i=0; i<items.length; i++ ) {
158
+ if ( items[i].type == 'checkbox' ) {
159
+ items[i].checked = true;
160
+ }
161
+ }
162
+
163
+ e.preventDefault();
164
+
165
+ }
166
+
167
+ function stcrUncheckAll(e) {
168
+
169
+ var items = document.getElementsByName('post_list[]');
170
+ for ( var i=0; i<items.length; i++ ) {
171
+ if ( items[i].type == 'checkbox' ) {
172
+ items[i].checked = false;
173
+ }
174
+ }
175
+
176
+ e.preventDefault();
177
+
178
+ }
179
+
180
+ </script>
181
+ <?php
182
+ $output = ob_get_contents();
183
+ ob_end_clean();
184
+ return $output;
185
+ ?>
templates/wrong-request.php CHANGED
@@ -1,14 +1,14 @@
1
- <?php
2
- // Avoid direct access to this piece of code
3
- if ( ! function_exists( 'add_action' ) ) {
4
- header( 'Location: /' );
5
- exit;
6
- }
7
-
8
- ob_start();
9
- echo '<p>' . __( 'You have request to manage another email address and this is forbidden.', 'subscribe-to-comments-reloaded' ) . '</p>';
10
- $output = ob_get_contents();
11
- ob_end_clean();
12
-
13
- return $output;
14
- ?>
1
+ <?php
2
+ // Avoid direct access to this piece of code
3
+ if ( ! function_exists( 'add_action' ) ) {
4
+ header( 'Location: /' );
5
+ exit;
6
+ }
7
+
8
+ ob_start();
9
+ echo '<p>' . esc_html__( 'You have request to manage another email address and this is forbidden.', 'subscribe-to-comments-reloaded' ) . '</p>';
10
+ $output = ob_get_contents();
11
+ ob_end_clean();
12
+
13
+ return $output;
14
+ ?>
utils/functions.php CHANGED
@@ -3,7 +3,7 @@ if ( ! function_exists( 'stcr_add_subscriber' ) ) {
3
 
4
  /**
5
  * Add subscriber
6
- *
7
  * @since 200205
8
  */
9
  function stcr_add_subscription( $data ) {
@@ -22,27 +22,27 @@ if ( ! function_exists( 'stcr_add_subscriber' ) ) {
22
 
23
  // get status code
24
  switch ( $data['type'] ) {
25
-
26
  case 'all':
27
  $status = 'Y';
28
  break;
29
-
30
  case 'all_unconfirmed':
31
  $status = 'YC';
32
  break;
33
-
34
  case 'replies':
35
  $status = 'R';
36
  break;
37
-
38
  case 'replies_unconfirmed':
39
  $status = 'RC';
40
  break;
41
-
42
  case 'inactive':
43
  $status = 'C';
44
  break;
45
-
46
  case 'active':
47
  $status = '-C';
48
  break;
@@ -74,29 +74,29 @@ if ( ! function_exists( 'stcr_add_subscriber' ) ) {
74
 
75
  // notify the administrator about the new subscription
76
  if ( $notify_admin ) {
77
-
78
  $from_name = stripslashes( get_option( 'subscribe_reloaded_from_name', 'admin' ) );
79
  $from_email = get_option( 'subscribe_reloaded_from_email', get_bloginfo( 'admin_email' ) );
80
 
81
- $subject = __( 'New subscription to', 'subscribe-to-comments-reloaded' ) . ' ' . get_the_title( $data['post_id'] );
82
- $message = __( 'New subscription to', 'subscribe-to-comments-reloaded' ) . ' ' . get_the_title( $data['post_id'] ) . PHP_EOL . __( 'User:', 'subscribe-to-comments-reloaded' ) . " $clean_email";
83
-
84
  $email_settings = array(
85
  'subject' => $subject,
86
  'message' => $message,
87
  'toEmail' => get_bloginfo( 'admin_email' )
88
  );
89
-
90
  $wp_subscribe_reloaded->stcr->utils->send_email( $email_settings );
91
 
92
  }
93
 
94
  // double check, send confirmation email
95
  if ( $notify_subscriber && ! $wp_subscribe_reloaded->stcr->is_user_subscribed( $data['post_id'], $clean_email, 'C' ) ) {
96
-
97
  $wp_subscribe_reloaded->stcr->add_subscription( $data['post_id'], $clean_email, $status );
98
  $wp_subscribe_reloaded->stcr->confirmation_email( $data['post_id'], $clean_email );
99
-
100
  // not double check, add subscription
101
  } else {
102
  $wp_subscribe_reloaded->stcr->add_subscription( $data['post_id'], $clean_email, $status );
@@ -104,4 +104,4 @@ if ( ! function_exists( 'stcr_add_subscriber' ) ) {
104
 
105
  }
106
 
107
- }
3
 
4
  /**
5
  * Add subscriber
6
+ *
7
  * @since 200205
8
  */
9
  function stcr_add_subscription( $data ) {
22
 
23
  // get status code
24
  switch ( $data['type'] ) {
25
+
26
  case 'all':
27
  $status = 'Y';
28
  break;
29
+
30
  case 'all_unconfirmed':
31
  $status = 'YC';
32
  break;
33
+
34
  case 'replies':
35
  $status = 'R';
36
  break;
37
+
38
  case 'replies_unconfirmed':
39
  $status = 'RC';
40
  break;
41
+
42
  case 'inactive':
43
  $status = 'C';
44
  break;
45
+
46
  case 'active':
47
  $status = '-C';
48
  break;
74
 
75
  // notify the administrator about the new subscription
76
  if ( $notify_admin ) {
77
+
78
  $from_name = stripslashes( get_option( 'subscribe_reloaded_from_name', 'admin' ) );
79
  $from_email = get_option( 'subscribe_reloaded_from_email', get_bloginfo( 'admin_email' ) );
80
 
81
+ $subject = esc_html__( 'New subscription to', 'subscribe-to-comments-reloaded' ) . ' ' . get_the_title( $data['post_id'] );
82
+ $message = esc_html__( 'New subscription to', 'subscribe-to-comments-reloaded' ) . ' ' . get_the_title( $data['post_id'] ) . PHP_EOL . esc_html__( 'User:', 'subscribe-to-comments-reloaded' ) . " $clean_email";
83
+
84
  $email_settings = array(
85
  'subject' => $subject,
86
  'message' => $message,
87
  'toEmail' => get_bloginfo( 'admin_email' )
88
  );
89
+
90
  $wp_subscribe_reloaded->stcr->utils->send_email( $email_settings );
91
 
92
  }
93
 
94
  // double check, send confirmation email
95
  if ( $notify_subscriber && ! $wp_subscribe_reloaded->stcr->is_user_subscribed( $data['post_id'], $clean_email, 'C' ) ) {
96
+
97
  $wp_subscribe_reloaded->stcr->add_subscription( $data['post_id'], $clean_email, $status );
98
  $wp_subscribe_reloaded->stcr->confirmation_email( $data['post_id'], $clean_email );
99
+
100
  // not double check, add subscription
101
  } else {
102
  $wp_subscribe_reloaded->stcr->add_subscription( $data['post_id'], $clean_email, $status );
104
 
105
  }
106
 
107
+ }
utils/stcr_manage.php CHANGED
@@ -79,8 +79,8 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_manage') )
79
  $nonce = wp_create_nonce( $name );
80
  // Set the a fresh nonce
81
  $this->utils->stcr_update_admin_notice_status( $name, 'unread', $nonce );
82
- echo "<div class='notice is-dismissible stcr-dismiss-notice {$noticeData['type']}' data-nonce='{$nonce}|{$name}'>";
83
- echo $noticeData['message'];
84
  echo "</div>";
85
  }
86
  }
@@ -366,32 +366,32 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_manage') )
366
  add_menu_page( $page_title, $menu_title, $moderate_capability, $parent_slug, $function, $icon_url, $position );
367
 
368
  add_submenu_page( $parent_slug ,
369
- __( 'Manage subscriptions', 'subscribe-to-comments-reloaded' ),
370
- __( 'Manage subscriptions', 'subscribe-to-comments-reloaded' ),
371
  $moderate_capability,
372
  "stcr_manage_subscriptions",
373
  array( $this, "stcr_option_manage_subscriptions") );
374
  add_submenu_page( $parent_slug ,
375
- __( 'Comment Form', 'subscribe-to-comments-reloaded' ),
376
- __( 'Comment Form', 'subscribe-to-comments-reloaded' ),
377
  $capability,
378
  "stcr_comment_form",
379
  array( $this, "stcr_option_comment_form" ) );
380
  add_submenu_page( $parent_slug ,
381
- __( 'Management Page', 'subscribe-to-comments-reloaded' ),
382
- __( 'Management Page', 'subscribe-to-comments-reloaded' ),
383
  $capability,
384
  "stcr_management_page",
385
  array( $this, "stcr_option_management_page" ) );
386
  add_submenu_page( $parent_slug ,
387
- __( 'Notifications', 'subscribe-to-comments-reloaded' ),
388
- __( 'Notifications', 'subscribe-to-comments-reloaded' ),
389
  $capability,
390
  "stcr_notifications",
391
  array( $this, "stcr_option_notifications" ) );
392
  add_submenu_page( $parent_slug ,
393
- __( 'Options', 'subscribe-to-comments-reloaded' ),
394
- __( 'Options', 'subscribe-to-comments-reloaded' ),
395
  $capability,
396
  "stcr_options",
397
  array( $this, "stcr_option_options" ) );
@@ -400,27 +400,27 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_manage') )
400
  // since this requires much effort this is pointe to go to the pro version. NO ETA avaiable.
401
  //
402
  // add_submenu_page( $parent_slug ,
403
- // __( 'Subscribers Emails', 'subscribe-to-comments-reloaded' ),
404
- // __( 'Subscribers Emails', 'subscribe-to-comments-reloaded' ),
405
  // $capability,
406
  // "stcr_subscribers_emails",
407
  // array( $this, "stcr_option_subscribers_emails" ) );
408
 
409
  add_submenu_page( $parent_slug ,
410
- __( 'Support', 'subscribe-to-comments-reloaded' ),
411
- __( 'Support', 'subscribe-to-comments-reloaded' ),
412
  $capability,
413
  "stcr_support",
414
  array( $this, "stcr_option_support" ) );
415
  // add_submenu_page( $parent_slug ,
416
- // __( 'Donate', 'subscribe-to-comments-reloaded' ),
417
- // __( 'Donate', 'subscribe-to-comments-reloaded' ),
418
  // $capability,
419
  // "stcr_donate",
420
  // array( $this, "stcr_option_donate" ) );
421
  add_submenu_page( $parent_slug ,
422
- __( 'StCR System', 'subscribe-to-comments-reloaded' ),
423
- __( 'StCR System', 'subscribe-to-comments-reloaded' ),
424
  $capability,
425
  "stcr_system",
426
  array( $this, "stcr_option_system" ) );
@@ -440,13 +440,12 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_manage') )
440
  //must check that the user has the required capability
441
  if (!current_user_can('manage_options'))
442
  {
443
- wp_die( __('You do not have sufficient permissions to access this page.') );
444
  }
445
 
446
  $this->add_options_stylesheet();
447
  global $wp_subscribe_reloaded;
448
 
449
- // echo 'New Page Settings';
450
  if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/index.php' ) )
451
  {
452
  // What panel to display
@@ -468,12 +467,11 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_manage') )
468
  //must check that the user has the required capability
469
  if (!current_user_can('manage_options'))
470
  {
471
- wp_die( __('You do not have sufficient permissions to access this page.') );
472
  }
473
 
474
  $this->add_options_stylesheet();
475
 
476
- // echo 'New Page Settings';
477
  if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/index.php' ) )
478
  {
479
  // What panel to display
@@ -495,12 +493,11 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_manage') )
495
  //must check that the user has the required capability
496
  if (!current_user_can('manage_options'))
497
  {
498
- wp_die( __('You do not have sufficient permissions to access this page.') );
499
  }
500
 
501
  $this->add_options_stylesheet();
502
 
503
- // echo 'New Page Settings';
504
  if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/index.php' ) )
505
  {
506
  // What panel to display
@@ -522,12 +519,11 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_manage') )
522
  //must check that the user has the required capability
523
  if (!current_user_can('manage_options'))
524
  {
525
- wp_die( __('You do not have sufficient permissions to access this page.') );
526
  }
527
 
528
  $this->add_options_stylesheet();
529
 
530
- // echo 'New Page Settings';
531
  if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/index.php' ) )
532
  {
533
  // What panel to display
@@ -549,12 +545,11 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_manage') )
549
  //must check that the user has the required capability
550
  if (!current_user_can('manage_options'))
551
  {
552
- wp_die( __('You do not have sufficient permissions to access this page.') );
553
  }
554
 
555
  $this->add_options_stylesheet();
556
 
557
- // echo 'New Page Settings';
558
  if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/index.php' ) )
559
  {
560
  // What panel to display
@@ -576,12 +571,11 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_manage') )
576
  //must check that the user has the required capability
577
  if (!current_user_can('manage_options'))
578
  {
579
- wp_die( __('You do not have sufficient permissions to access this page.') );
580
  }
581
 
582
  $this->add_options_stylesheet();
583
 
584
- // echo 'New Page Settings';
585
  if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/index.php' ) )
586
  {
587
  // What panel to display
@@ -605,12 +599,11 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_manage') )
605
  //must check that the user has the required capability
606
  if (!current_user_can('manage_options'))
607
  {
608
- wp_die( __('You do not have sufficient permissions to access this page.') );
609
  }
610
 
611
  $this->add_options_stylesheet();
612
 
613
- // echo 'New Page Settings';
614
  if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/index.php' ) )
615
  {
616
  // What panel to display
@@ -642,7 +635,7 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_manage') )
642
  if ( empty( $_POST['stcr_download_sysinfo_nonce'] ) ) {
643
  return;
644
  }
645
-
646
  if ( ! wp_verify_nonce( $_POST['stcr_download_sysinfo_nonce'], 'stcr_download_sysinfo_nonce' ) ) {
647
  return;
648
  }
@@ -683,7 +676,7 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_manage') )
683
  */
684
  public function add_custom_header_meta() {
685
  $a = html_entity_decode( stripslashes( get_option( 'subscribe_reloaded_custom_header_meta', '' ) ), ENT_QUOTES, 'UTF-8' );
686
- echo $a;
687
  }
688
  // end add_custom_header_meta
689
 
@@ -692,7 +685,7 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_manage') )
692
  */
693
  public function add_column_header( $_columns ) {
694
  $image_url = plugins_url( '/images', STCR_PLUGIN_FILE );
695
- $image_tooltip = __( 'Subscriptions', 'subscribe-to-comments-reloaded' );
696
  $_columns['subscribe-reloaded'] = "<span class='hidden'>" . $image_tooltip . "</span><img src='$image_url/subscribe-to-comments-small.png' width='17' height='12' alt='" . $image_tooltip . "' title='" . $image_tooltip . "' />";
697
 
698
  return $_columns;
@@ -721,9 +714,9 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_manage') )
721
  ), 'dt', 'DESC', 0, 1
722
  );
723
  if ( count( $subscription ) == 0 ) {
724
- echo '<a href="admin.php?page=stcr_manage_subscriptions&subscribepanel=1&amp;sra=add-subscription&amp;srp=' . $comment->comment_post_ID . '&amp;sre=' . urlencode( $comment->comment_author_email ) . '">' . __( 'No', 'subscribe-to-comments-reloaded' ) . '</a>';
725
  } else {
726
- echo '<a href="admin.php?page=stcr_manage_subscriptions&subscribepanel=1&amp;srf=email&amp;srt=equals&amp;srv=' . urlencode( $comment->comment_author_email ) . '">' . $subscription[0]->status . '</a>';
727
  }
728
  }
729
  // end add_column
@@ -737,7 +730,7 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_manage') )
737
  }
738
 
739
  global $post;
740
- echo '<a href="admin.php?page=stcr_manage_subscriptions&subscribepanel=1&amp;srf=post_id&amp;srt=equals&amp;srv=' . $post->ID . '">' . count( $this->get_subscriptions( 'post_id', 'equals', $post->ID ) ) . '</a>';
741
  }
742
  // end add_column
743
 
79
  $nonce = wp_create_nonce( $name );
80
  // Set the a fresh nonce
81
  $this->utils->stcr_update_admin_notice_status( $name, 'unread', $nonce );
82
+ echo "<div class='notice is-dismissible stcr-dismiss-notice " . esc_attr( $noticeData['type'] ) . "' data-nonce='" . esc_attr( $nonce ) . "|" . esc_attr( $name ) . "'>";
83
+ echo wp_kses( $noticeData['message'], wp_kses_allowed_html( 'post' ) );
84
  echo "</div>";
85
  }
86
  }
366
  add_menu_page( $page_title, $menu_title, $moderate_capability, $parent_slug, $function, $icon_url, $position );
367
 
368
  add_submenu_page( $parent_slug ,
369
+ esc_html__( 'Manage subscriptions', 'subscribe-to-comments-reloaded' ),
370
+ esc_html__( 'Manage subscriptions', 'subscribe-to-comments-reloaded' ),
371
  $moderate_capability,
372
  "stcr_manage_subscriptions",
373
  array( $this, "stcr_option_manage_subscriptions") );
374
  add_submenu_page( $parent_slug ,
375
+ esc_html__( 'Comment Form', 'subscribe-to-comments-reloaded' ),
376
+ esc_html__( 'Comment Form', 'subscribe-to-comments-reloaded' ),
377
  $capability,
378
  "stcr_comment_form",
379
  array( $this, "stcr_option_comment_form" ) );
380
  add_submenu_page( $parent_slug ,
381
+ esc_html__( 'Management Page', 'subscribe-to-comments-reloaded' ),
382
+ esc_html__( 'Management Page', 'subscribe-to-comments-reloaded' ),
383
  $capability,
384
  "stcr_management_page",
385
  array( $this, "stcr_option_management_page" ) );
386
  add_submenu_page( $parent_slug ,
387
+ esc_html__( 'Notifications', 'subscribe-to-comments-reloaded' ),
388
+ esc_html__( 'Notifications', 'subscribe-to-comments-reloaded' ),
389
  $capability,
390
  "stcr_notifications",
391
  array( $this, "stcr_option_notifications" ) );
392
  add_submenu_page( $parent_slug ,
393
+ esc_html__( 'Options', 'subscribe-to-comments-reloaded' ),
394
+ esc_html__( 'Options', 'subscribe-to-comments-reloaded' ),
395
  $capability,
396
  "stcr_options",
397
  array( $this, "stcr_option_options" ) );
400
  // since this requires much effort this is pointe to go to the pro version. NO ETA avaiable.
401
  //
402
  // add_submenu_page( $parent_slug ,
403
+ // esc_html__( 'Subscribers Emails', 'subscribe-to-comments-reloaded' ),
404
+ // esc_html__( 'Subscribers Emails', 'subscribe-to-comments-reloaded' ),
405
  // $capability,
406
  // "stcr_subscribers_emails",
407
  // array( $this, "stcr_option_subscribers_emails" ) );
408
 
409
  add_submenu_page( $parent_slug ,
410
+ esc_html__( 'Support', 'subscribe-to-comments-reloaded' ),
411
+ esc_html__( 'Support', 'subscribe-to-comments-reloaded' ),
412
  $capability,
413
  "stcr_support",
414
  array( $this, "stcr_option_support" ) );
415
  // add_submenu_page( $parent_slug ,
416
+ // esc_html__( 'Donate', 'subscribe-to-comments-reloaded' ),
417
+ // esc_html__( 'Donate', 'subscribe-to-comments-reloaded' ),
418
  // $capability,
419
  // "stcr_donate",
420
  // array( $this, "stcr_option_donate" ) );
421
  add_submenu_page( $parent_slug ,
422
+ esc_html__( 'StCR System', 'subscribe-to-comments-reloaded' ),
423
+ esc_html__( 'StCR System', 'subscribe-to-comments-reloaded' ),
424
  $capability,
425
  "stcr_system",
426
  array( $this, "stcr_option_system" ) );
440
  //must check that the user has the required capability
441
  if (!current_user_can('manage_options'))
442
  {
443
+ wp_die( esc_html__('You do not have sufficient permissions to access this page.', 'subscribe-to-comments-reloaded') );
444
  }
445
 
446
  $this->add_options_stylesheet();
447
  global $wp_subscribe_reloaded;
448
 
 
449
  if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/index.php' ) )
450
  {
451
  // What panel to display
467
  //must check that the user has the required capability
468
  if (!current_user_can('manage_options'))
469
  {
470
+ wp_die( esc_html__('You do not have sufficient permissions to access this page.', 'subscribe-to-comments-reloaded') );
471
  }
472
 
473
  $this->add_options_stylesheet();
474
 
 
475
  if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/index.php' ) )
476
  {
477
  // What panel to display
493
  //must check that the user has the required capability
494
  if (!current_user_can('manage_options'))
495
  {
496
+ wp_die( esc_html__('You do not have sufficient permissions to access this page.', 'subscribe-to-comments-reloaded') );
497
  }
498
 
499
  $this->add_options_stylesheet();
500
 
 
501
  if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/index.php' ) )
502
  {
503
  // What panel to display
519
  //must check that the user has the required capability
520
  if (!current_user_can('manage_options'))
521
  {
522
+ wp_die( esc_html__('You do not have sufficient permissions to access this page.', 'subscribe-to-comments-reloaded') );
523
  }
524
 
525
  $this->add_options_stylesheet();
526
 
 
527
  if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/index.php' ) )
528
  {
529
  // What panel to display
545
  //must check that the user has the required capability
546
  if (!current_user_can('manage_options'))
547
  {
548
+ wp_die( esc_html__('You do not have sufficient permissions to access this page.', 'subscribe-to-comments-reloaded') );
549
  }
550
 
551
  $this->add_options_stylesheet();
552
 
 
553
  if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/index.php' ) )
554
  {
555
  // What panel to display
571
  //must check that the user has the required capability
572
  if (!current_user_can('manage_options'))
573
  {
574
+ wp_die( esc_html__('You do not have sufficient permissions to access this page.', 'subscribe-to-comments-reloaded') );
575
  }
576
 
577
  $this->add_options_stylesheet();
578
 
 
579
  if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/index.php' ) )
580
  {
581
  // What panel to display
599
  //must check that the user has the required capability
600
  if (!current_user_can('manage_options'))
601
  {
602
+ wp_die( esc_html__('You do not have sufficient permissions to access this page.', 'subscribe-to-comments-reloaded') );
603
  }
604
 
605
  $this->add_options_stylesheet();
606
 
 
607
  if ( is_readable( trailingslashit( dirname( STCR_PLUGIN_FILE ) ) . 'options/index.php' ) )
608
  {
609
  // What panel to display
635
  if ( empty( $_POST['stcr_download_sysinfo_nonce'] ) ) {
636
  return;
637
  }
638
+
639
  if ( ! wp_verify_nonce( $_POST['stcr_download_sysinfo_nonce'], 'stcr_download_sysinfo_nonce' ) ) {
640
  return;
641
  }
676
  */
677
  public function add_custom_header_meta() {
678
  $a = html_entity_decode( stripslashes( get_option( 'subscribe_reloaded_custom_header_meta', '' ) ), ENT_QUOTES, 'UTF-8' );
679
+ echo wp_kses( $a, wp_kses_allowed_html( 'post' ) );
680
  }
681
  // end add_custom_header_meta
682
 
685
  */
686
  public function add_column_header( $_columns ) {
687
  $image_url = plugins_url( '/images', STCR_PLUGIN_FILE );
688
+ $image_tooltip = esc_html__( 'Subscriptions', 'subscribe-to-comments-reloaded' );
689
  $_columns['subscribe-reloaded'] = "<span class='hidden'>" . $image_tooltip . "</span><img src='$image_url/subscribe-to-comments-small.png' width='17' height='12' alt='" . $image_tooltip . "' title='" . $image_tooltip . "' />";
690
 
691
  return $_columns;
714
  ), 'dt', 'DESC', 0, 1
715
  );
716
  if ( count( $subscription ) == 0 ) {
717
+ echo '<a href="admin.php?page=stcr_manage_subscriptions&subscribepanel=1&amp;sra=add-subscription&amp;srp=' . esc_attr( $comment->comment_post_ID ) . '&amp;sre=' . urlencode( $comment->comment_author_email ) . '">' . esc_html__( 'No', 'subscribe-to-comments-reloaded' ) . '</a>';
718
  } else {
719
+ echo '<a href="admin.php?page=stcr_manage_subscriptions&subscribepanel=1&amp;srf=email&amp;srt=equals&amp;srv=' . urlencode( $comment->comment_author_email ) . '">' . esc_html( $subscription[0]->status ) . '</a>';
720
  }
721
  }
722
  // end add_column
730
  }
731
 
732
  global $post;
733
+ echo '<a href="admin.php?page=stcr_manage_subscriptions&subscribepanel=1&amp;srf=post_id&amp;srt=equals&amp;srv=' . esc_attr( $post->ID ) . '">' . count( $this->get_subscriptions( 'post_id', 'equals', $post->ID ) ) . '</a>';
734
  }
735
  // end add_column
736
 
utils/stcr_upgrade.php CHANGED
@@ -69,7 +69,7 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_upgrade') ) {
69
  $OK = $this->add_user_subscriber_table( $email->email );
70
  if ( ! $OK) {
71
  $notices = get_option( 'subscribe_reloaded_deferred_admin_notices', array() );
72
- $notices[] = '<div class="error"><h3>' . __( 'Important Notice', 'subscribe-to-comments-reloaded' ) . '</h3>' .
73
  '<p>The creation of of the table <strong>' . $wpdb->prefix . 'subscribe_reloaded_subscribers</strong> failed</p></div>';
74
  update_option( 'subscribe_reloaded_deferred_admin_notices', $notices );
75
  break 1;
@@ -117,8 +117,8 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_upgrade') ) {
117
  $this->stcr_create_admin_notice(
118
  'notify_update_sanitize_db_options',
119
  'unread',
120
- '<p>' . __( '<strong>Subscribe to Comments Reloaded:</strong> The information in your database has been sanitized to prevent the raw html messages. <a class="dismiss" href="#">Dismiss. </a>'
121
- . '<img class="stcr-loading-animation" src="'. esc_url( admin_url() . '/images/loading.gif'). '" alt="Working...">' , 'subscribe-to-comments-reloaded' )
122
  . '</p>',
123
  'updated'
124
  );
@@ -172,11 +172,11 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_upgrade') ) {
172
  $this->stcr_create_admin_notice(
173
  'notify_import_stc_data',
174
  'unread',
175
- '<p>' . __( '<strong>Subscribe to Comments Reloaded:</strong> Comment subscription data from the <strong>Subscribe to Comments</strong> plugin was detected and automatically imported into <strong>Subscribe to Comments Reloaded</strong>.', 'subscribe-to-comments-reloaded' ) . ( is_plugin_active( 'subscribe-to-comments/subscribe-to-comments.php' ) ? __( ' It is recommended that you now <strong>deactivate</strong> Subscribe to Comments to prevent confusion between the two plugins.', 'subscribe-to-comments-reloaded' ) : '' ) . '</p>' .
176
- '<p>' . __( 'If you have subscription data from Subscribe to Comments Reloaded < v2.0 that you want to import, you\'ll need to import that data manually, as only one import routine will ever run to prevent data loss.', 'subscribe-to-comments-reloaded' ) . '</p>' .
177
- '<p>' . __( 'Please visit <a href="options-general.php?page=subscribe-to-comments-reloaded/options/index.php">Settings -> Subscribe to Comments</a> to review your configuration.'
178
  . '<a class="dismiss" href="#">Dismiss. </a>'
179
- . '<img class="stcr-loading-animation" src="'. esc_url( admin_url() . '/images/loading.gif'). '" alt="Working...">', 'subscribe-to-comments-reloaded' ) . '</p>',
180
  'updated'
181
  );
182
  }
@@ -238,11 +238,11 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_upgrade') ) {
238
  $this->stcr_create_admin_notice(
239
  'notify_import_stc_mj_data',
240
  'unread',
241
- '<p>' . __( '<strong>Subscribe to Comments Reloaded:</strong> Comment subscription data from the <strong>Subscribe to Comments</strong> plugin by Mark Jaquith was detected and automatically imported into <strong>Subscribe to Comments Reloaded</strong>.', 'subscribe-to-comments-reloaded' ) . ( is_plugin_active( 'subscribe-to-comments/subscribe-to-comments.php' ) ? __( ' It is recommended that you now <strong>deactivate</strong> Subscribe to Comments to prevent confusion between the two plugins.', 'subscribe-to-comments-reloaded' ) : '' ) . '</p>' .
242
- '<p>' . __( 'If you have subscription data from Subscribe to Comments Reloaded < v2.0 that you want to import, you\'ll need to import that data manually, as only one import routine will ever run to prevent data loss.', 'subscribe-to-comments-reloaded' ) . '</p>' .
243
- '<p>' . __( 'Please visit <a href="options-general.php?page=subscribe-to-comments-reloaded/options/index.php">Settings -> Subscribe to Comments</a> to review your configuration.'
244
  . '<a class="dismiss" href="#">Dismiss. </a>'
245
- . '<img class="stcr-loading-animation" src="'. esc_url( admin_url() . '/images/loading.gif'). '" alt="Working...">', 'subscribe-to-comments-reloaded' ) . '</p>',
246
  'updated'
247
  );
248
 
@@ -313,10 +313,10 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_upgrade') ) {
313
  $this->stcr_create_admin_notice(
314
  'notify_import_comment_reply',
315
  'unread',
316
- '<p>' . __( '<strong>Subscribe to Comments Reloaded:</strong> Comment subscription data from the <strong>Comment Reply Notification</strong> plugin was detected and automatically imported into <strong>Subscribe to Comments Reloaded</strong>.', 'subscribe-to-comments-reloaded' ) . ( is_plugin_active( 'comment-reply-notification/comment-reply-notification.php' ) ? __( ' It is recommended that you now <strong>deactivate</strong> Comment Reply Notification to prevent confusion between the two plugins.', 'subscribe-to-comments-reloaded' ) : '' ) . '</p>' .
317
- '<p>' . __( 'Please visit <a href="options-general.php?page=subscribe-to-comments-reloaded/options/index.php">Settings -> Subscribe to Comments</a> to review your configuration.'
318
  . '<a class="dismiss" href="#">Dismiss. </a>'
319
- . '<img class="stcr-loading-animation" src="'. esc_url( admin_url() . '/images/loading.gif'). '" alt="Working...">', 'subscribe-to-comments-reloaded' ) . '</p>',
320
  'updated'
321
  );
322
  }
@@ -463,12 +463,12 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_upgrade') ) {
463
  $this->stcr_create_admin_notice(
464
  'notify_import_wpcs_data',
465
  'unread',
466
- '<p>' . __( '<strong>Subscribe to Comments Reloaded:</strong> Plugin options and comment subscription data from the <strong>WP Comment Subscriptions</strong> plugin were detected and automatically imported into <strong>Subscribe to Comments Reloaded</strong>.', 'subscribe-to-comments-reloaded' ) . ( is_plugin_active( 'wp-comment-subscriptions/wp-comment-subscriptions.php' ) ? __( ' It is recommended that you now <strong>deactivate</strong> WP Comment Subscriptions to prevent confusion between the two plugins.', 'subscribe-to-comments-reloaded' ) : '' ) . '</p>' .
467
- '<p>' . __( 'If you have subscription data from another plugin (such as Subscribe to Comments or Subscribe to Comments Reloaded < v2.0) that you want to import, you\'ll need to import that data manually, as only one import routine will ever run to prevent data loss.', 'subscribe-to-comments-reloaded' ) . '</p>' .
468
- '<p>' . __( '<strong>Note:</strong> If you were previously using the <code>wp_comment_subscriptions_show()</code> function or the <code>[wpcs-subscribe-url]</code> shortcode, you\'ll need to replace those with <code>subscribe_reloaded_show()</code> and <code>[subscribe-url]</code> respectively.', 'subscribe-to-comments-reloaded' ) . '</p>' .
469
- '<p>' . __( 'Please visit <a href="options-general.php?page=subscribe-to-comments-reloaded/options/index.php">Settings -> Subscribe to Comments</a> to review your configuration.'
470
  . '<a class="dismiss" href="#">Dismiss. </a>'
471
- . '<img class="stcr-loading-animation" src="'. esc_url( admin_url() . '/images/loading.gif'). '" alt="Working...">', 'subscribe-to-comments-reloaded' ) . '</p>',
472
  'updated'
473
  );
474
  }
@@ -476,8 +476,8 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_upgrade') ) {
476
  // end _import_wpcs_data
477
  public function upgrade_notification( $_version, $_db_version, $_fresh_install ) {
478
 
479
- $options_link = sprintf( '<a href="%s"> %s </a>', admin_url( 'admin.php?page=stcr_options' ), __( 'Settings', 'subscribe-to-comments-reloaded' ) );
480
- $system_link = sprintf( '<a href="%s"> %s </a>', admin_url( 'admin.php?page=stcr_system' ), __( 'Log Settings', 'subscribe-to-comments-reloaded' ) );
481
 
482
  if( ! $_fresh_install ) {
483
 
@@ -486,11 +486,11 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_upgrade') ) {
486
  $this->stcr_create_admin_notice(
487
  'notify_update_' . $_version,
488
  'unread',
489
- '<p>' . __('<strong>Subscribe to Comments Reloaded</strong> has been updated to version 160106.', 'subscribe-to-comments-reloaded') . '</p>' .
490
- '<p>' . __('This version includes many changes and fixes to improve your experience with the plugin, including One Click Unsubscribe, Rich Text Editor to create HTML email templates, Subscription Checkbox position, and more!', 'subscribe-to-comments-reloaded') . '</p>' .
491
- '<p>' . __('Please visit the <a href="https://wordpress.org/plugins/subscribe-to-comments-reloaded/changelog/" target="_blank">Changelog</a> for a complete list of changes.'
492
  . '<a class="dismiss" href="#">Dismiss. </a>'
493
- . '<img class="stcr-loading-animation" src="' . esc_url(admin_url() . '/images/loading.gif') . '" alt="Working...">', 'subscribe-to-comments-reloaded') . '</p>',
494
  'updated'
495
  );
496
  // Update the HTML emails option
@@ -501,11 +501,11 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_upgrade') ) {
501
  $this->stcr_create_admin_notice(
502
  'notify_update_' . $_version,
503
  'unread',
504
- '<p>' . __('<strong>Subscribe to Comments Reloaded</strong> has been updated to version 160115.', 'subscribe-to-comments-reloaded') . '</p>' .
505
- '<p>' . __('This version includes fixes to broken links while managing your subscriptions', 'subscribe-to-comments-reloaded') . '</p>' .
506
- '<p>' . __('Please visit the <a href="https://wordpress.org/plugins/subscribe-to-comments-reloaded/changelog/" target="_blank">Changelog</a> for a complete list of changes.'
507
  . '<a class="dismiss" href="#">Dismiss. </a>'
508
- . '<img class="stcr-loading-animation" src="' . esc_url(admin_url() . '/images/loading.gif') . '" alt="Working...">', 'subscribe-to-comments-reloaded') . '</p>',
509
  'updated'
510
  );
511
  // Update the HTML emails option
@@ -516,18 +516,18 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_upgrade') ) {
516
  $this->stcr_create_admin_notice(
517
  'notify_update_' . $_version,
518
  'unread',
519
- '<p>' . __('<strong>Subscribe to Comments Reloaded</strong> has been updated to version 160831', 'subscribe-to-comments-reloaded') . '</p>' .
520
- '<p>' . __('This version includes fixes to many bugs and also new features, ', 'subscribe-to-comments-reloaded') . '</p>' .
521
  '<ul>' .
522
- '<li>' . __("<strong>New Feature</strong> Add new option to set the Reply To email address. This will help the subscribers to use the Reply option in their email agents.", 'subscribe-to-comments-reloaded') . '</li>'.
523
- '<li>' . __("<strong>New Feature</strong> Improve the Admin Menu for StCR. Replace the StCR menu on the Settings Menu for a new Menu with sub menus for the pages.", 'subscribe-to-comments-reloaded') . '</li>'.
524
- '<li>' . __("<strong>New Feature</strong> Safely Uninstall option to Delete the plugin without loosing your subscriptions. You can use this option also for reset all the settings, see the FAQ.", 'subscribe-to-comments-reloaded') . '</li>'.
525
- '<li>' . __("<strong>New Feature</strong> Now the WordPress Authors can use the <strong>Subscribe authors</strong> option to autor subscribe to a Custom Post Type.", 'subscribe-to-comments-reloaded') . '</li>'.
526
- '<li>' . __("<strong>New Feature</strong> A new field was added under the notification options to and the management link only by email and not to display it on the request link page.", 'subscribe-to-comments-reloaded') . '</li>'.
527
  '</ul>' .
528
- '<p>' . __('Please visit the <a href="https://wordpress.org/plugins/subscribe-to-comments-reloaded/changelog/" target="_blank">Changelog</a> for a complete list of changes.'
529
  . '<a class="dismiss" href="#">Dismiss. </a>'
530
- . '<img class="stcr-loading-animation" src="' . esc_url(admin_url() . '/images/loading.gif') . '" alt="Working...">', 'subscribe-to-comments-reloaded') . '</p>',
531
  'updated'
532
  );
533
  // Update the HTML emails option
@@ -538,19 +538,19 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_upgrade') ) {
538
  $this->stcr_create_admin_notice(
539
  'notify_update_' . $_version,
540
  'unread',
541
- '<p>' . __('<strong>Subscribe to Comments Reloaded</strong> has been updated to version 160902', 'subscribe-to-comments-reloaded') . '</p>' .
542
- '<p>' . __('This version includes fixes to many bugs and also new features, ', 'subscribe-to-comments-reloaded') . '</p>' .
543
  '<ul>' .
544
- '<li>' . __("<strong>Fix update</strong> this version Fixes some issue trigger by the previous 160831 version.", 'subscribe-to-comments-reloaded') . '</li>'.
545
- '<li>' . __("<strong>New Feature</strong> Add new option to set the Reply To email address. This will help the subscribers to use the Reply option in their email agents.", 'subscribe-to-comments-reloaded') . '</li>'.
546
- '<li>' . __("<strong>New Feature</strong> Improve the Admin Menu for StCR. Replace the StCR menu on the Settings Menu for a new Menu with sub menus for the pages.", 'subscribe-to-comments-reloaded') . '</li>'.
547
- '<li>' . __("<strong>New Feature</strong> Safely Uninstall option to Delete the plugin without loosing your subscriptions. You can use this option also for reset all the settings, see the FAQ.", 'subscribe-to-comments-reloaded') . '</li>'.
548
- '<li>' . __("<strong>New Feature</strong> Now the WordPress Authors can use the <strong>Subscribe authors</strong> option to autor subscribe to a Custom Post Type.", 'subscribe-to-comments-reloaded') . '</li>'.
549
- '<li>' . __("<strong>New Feature</strong> A new field was added under the notification options to and the management link only by email and not to display it on the request link page.", 'subscribe-to-comments-reloaded') . '</li>'.
550
  '</ul>' .
551
- '<p>' . __('Please visit the <a href="https://wordpress.org/plugins/subscribe-to-comments-reloaded/changelog/" target="_blank">Changelog</a> for a complete list of changes.'
552
  . '<a class="dismiss" href="#">Dismiss. </a>'
553
- . '<img class="stcr-loading-animation" src="' . esc_url(admin_url() . '/images/loading.gif') . '" alt="Working...">', 'subscribe-to-comments-reloaded') . '</p>',
554
  'updated'
555
  );
556
  // Update the HTML emails option
@@ -558,20 +558,20 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_upgrade') ) {
558
  update_option( 'subscribe_reloaded_enable_html_emails', 'yes' );
559
  break;
560
  case '160915':
561
- $options_link = sprintf( '<a href="%s"> %s </a>', admin_url( 'admin.php?page=stcr_options' ), __( 'Settings', 'subscribe-to-comments-reloaded' ) );
562
  $this->stcr_create_admin_notice(
563
  'notify_update_' . $_version,
564
  'unread',
565
- '<p>' . __('<strong>Subscribe to Comments Reloaded</strong> has been updated to version 160915', 'subscribe-to-comments-reloaded') . '</p>' .
566
- '<p>' . __('This version includes fixes and improvements, ', 'subscribe-to-comments-reloaded') . '</p>' .
567
  '<ul>' .
568
- '<li>' . __("<strong>Fix</strong> StCR checkbox position issues with some WordPress themes, Go to the {$options_link} to activate it.", 'subscribe-to-comments-reloaded') . '</li>'.
569
- '<li>' . __("<strong>Change</strong> the radio buttons in the management page for a dropdown.", 'subscribe-to-comments-reloaded') . '</li>'.
570
- '<li>' . __("<strong>Improve</strong> Email validation for empty values and using a regex.", 'subscribe-to-comments-reloaded') . '</li>'.
571
  '</ul>' .
572
- '<p>' . __('Please visit the <a href="https://wordpress.org/plugins/subscribe-to-comments-reloaded/changelog/" target="_blank">Changelog</a> for a complete list of changes.'
573
  . '<a class="dismiss" href="#">Dismiss. </a>'
574
- . '<img class="stcr-loading-animation" src="' . esc_url(admin_url() . '/images/loading.gif') . '" alt="Working...">', 'subscribe-to-comments-reloaded') . '</p>',
575
  'updated'
576
  );
577
  // Update the HTML emails option
@@ -582,19 +582,19 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_upgrade') ) {
582
  $this->stcr_create_admin_notice(
583
  'notify_update_' . $_version,
584
  'unread',
585
- '<p>' . __('<strong>Subscribe to Comments Reloaded</strong> has been updated to version ' . $_version, 'subscribe-to-comments-reloaded') . '</p>' .
586
- '<p>' . __('This version includes fixes and improvements, ', 'subscribe-to-comments-reloaded') . '</p>' .
587
 
588
  '<ul>' .
589
- '<li>' . __("<strong>Fix</strong> Wrong confirmation link when the double check option is enable.", 'subscribe-to-comments-reloaded') . '</li>'.
590
- '<li>' . __("<strong>Improve</strong> Manage subscription page. Take a look ;).", 'subscribe-to-comments-reloaded') . '</li>'.
591
- '<li>' . __("<strong>Improve</strong> Log file manipulation. Now you can control how the log behaves, take a look at the {$system_link}.", 'subscribe-to-comments-reloaded') . '</li>'.
592
  '</ul>' .
593
 
594
- '<p>' . __('If you find a bug or an issue you can report it <a href="https://github.com/stcr/subscribe-to-comments-reloaded/issues" target="_blank">here</a>.', 'subscribe-to-comments-reloaded') . '</p>' .
595
- '<p>' . __('Please visit the <a href="https://wordpress.org/plugins/subscribe-to-comments-reloaded/changelog/" target="_blank">Changelog</a> for a complete list of changes.'
596
  . '<a class="dismiss" href="#">Dismiss. </a>'
597
- . '<img class="stcr-loading-animation" src="' . esc_url(admin_url() . '/images/loading.gif') . '" alt="Dismissing Message">', 'subscribe-to-comments-reloaded') . '</p>',
598
  'updated'
599
  );
600
  // Update the HTML emails option
@@ -605,18 +605,18 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_upgrade') ) {
605
  $this->stcr_create_admin_notice(
606
  'notify_update_' . $_version,
607
  'unread',
608
- '<p>' . __('<strong>Subscribe to Comments Reloaded</strong> has been updated to version ' . $_version, 'subscribe-to-comments-reloaded') . '</p>' .
609
- '<p>' . __('This version includes fixes and improvements, ', 'subscribe-to-comments-reloaded') . '</p>' .
610
 
611
  '<ul>' .
612
- '<li>' . __("<strong>Fix Critical Bug</strong> This version fix a critical bug on fresh installation regarding a database table creation.", 'subscribe-to-comments-reloaded') . '</li>'.
613
- '<li>' . __("<strong>Add</strong> Option to control the inclusion of the style Font Awesome.", 'subscribe-to-comments-reloaded') . '</li>'.
614
  '</ul>' .
615
 
616
- '<p>' . __('If you find a bug or an issue you can report it <a href="https://github.com/stcr/subscribe-to-comments-reloaded/issues" target="_blank">here</a>.', 'subscribe-to-comments-reloaded') . '</p>' .
617
- '<p>' . __('Please visit the <a href="https://wordpress.org/plugins/subscribe-to-comments-reloaded/changelog/" target="_blank">Changelog</a> for a complete list of changes.'
618
  . '<a class="dismiss" href="#">Dismiss. </a>'
619
- . '<img class="stcr-loading-animation" src="' . esc_url(admin_url() . '/images/loading.gif') . '" alt="Dismissing Message">', 'subscribe-to-comments-reloaded') . '</p>',
620
  'updated'
621
  );
622
  // Update the HTML emails option
@@ -627,19 +627,19 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_upgrade') ) {
627
  $this->stcr_create_admin_notice(
628
  'notify_update_' . $_version,
629
  'unread',
630
- '<p>' . __('<strong>Subscribe to Comments Reloaded</strong> has been updated to version ' . $_version, 'subscribe-to-comments-reloaded') . '</p>' .
631
- '<p>' . __('This version includes fixes and improvements, ', 'subscribe-to-comments-reloaded') . '</p>' .
632
 
633
  '<ul>' .
634
- '<li>' . __("<strong>Security Patch</strong> This version add a patch for some security issues.", 'subscribe-to-comments-reloaded') . '</li>'.
635
- '<li>' . __("<strong>Add</strong> Option to reset all the plugin options", 'subscribe-to-comments-reloaded') . '</li>'.
636
- '<li>' . __("<strong>Fix</strong> issue regarding database collations", 'subscribe-to-comments-reloaded') . '</li>'.
637
  '</ul>' .
638
 
639
- '<p>' . __('If you find a bug or an issue you can report it <a href="https://github.com/stcr/subscribe-to-comments-reloaded/issues" target="_blank">here</a>.', 'subscribe-to-comments-reloaded') . '</p>' .
640
- '<p>' . __('Please visit the <a href="https://wordpress.org/plugins/subscribe-to-comments-reloaded/changelog/" target="_blank">Changelog</a> for a complete list of changes.'
641
  . '<a class="dismiss" href="#">Dismiss. </a>'
642
- . '<img class="stcr-loading-animation" src="' . esc_url(admin_url() . '/images/loading.gif') . '" alt="Dismissing Message">', 'subscribe-to-comments-reloaded') . '</p>',
643
  'updated'
644
  );
645
  // Update the HTML emails option
@@ -650,12 +650,12 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_upgrade') ) {
650
  $this->stcr_create_admin_notice(
651
  'notify_update_' . $_version,
652
  'unread',
653
- '<p>' . __('<strong>Subscribe to Comments Reloaded</strong> has been updated to version ' . $_version, 'subscribe-to-comments-reloaded') . '</p>' .
654
- '<p>' . __('This version includes fixes and improvements, ', 'subscribe-to-comments-reloaded') . '</p>' .
655
- '<p>' . __('If you find a bug or an issue you can report it <a href="https://github.com/stcr/subscribe-to-comments-reloaded/issues" target="_blank">here</a>.', 'subscribe-to-comments-reloaded') . '</p>' .
656
- '<p>' . __('Please visit the <a href="https://wordpress.org/plugins/subscribe-to-comments-reloaded/changelog/" target="_blank">Changelog</a> for a complete list of changes.'
657
  . '<a class="dismiss" href="#">Dismiss. </a>'
658
- . '<img class="stcr-loading-animation" src="' . esc_url(admin_url() . '/images/loading.gif') . '" alt="Dismissing Message">', 'subscribe-to-comments-reloaded') . '</p>',
659
  'updated'
660
  );
661
  // Update the HTML emails option
@@ -666,13 +666,13 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_upgrade') ) {
666
  $this->stcr_create_admin_notice(
667
  'notify_update_' . $_version,
668
  'unread',
669
- '<p>' . __('<strong>Subscribe to Comments Reloaded</strong> has been updated to version ' . $_version, 'subscribe-to-comments-reloaded') . '</p>' .
670
- '<p>' . __('This version includes fixes and improvements, ', 'subscribe-to-comments-reloaded') . '</p>' .
671
- '<p>' . __('If you find a bug or an issue you can report it <a href="https://github.com/stcr/subscribe-to-comments-reloaded/issues" target="_blank">here</a>.', 'subscribe-to-comments-reloaded') . '</p>' .
672
- '<p>' . __('You might need to clear you cache !!', 'subscribe-to-comments-reloaded') . '</p>' .
673
- '<p>' . __('Please visit the <a href="http://subscribe-reloaded.com/update/stcr-release-version-'.$_version.'/" target="_blank">Release Post</a> for a complete list of changes and guide about the new version.'
674
  . '<a class="dismiss" href="#">Dismiss. </a>'
675
- . '<img class="stcr-loading-animation" src="' . esc_url(admin_url() . '/images/loading.gif') . '" alt="Dismissing Message">', 'subscribe-to-comments-reloaded') . '</p>',
676
  'updated'
677
  );
678
  break;
@@ -680,13 +680,13 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_upgrade') ) {
680
  $this->stcr_create_admin_notice(
681
  'notify_update_' . $_version,
682
  'unread',
683
- '<p>' . __('<strong>Subscribe to Comments Reloaded</strong> has been updated to version ' . $_version, 'subscribe-to-comments-reloaded') . '</p>' .
684
- '<p>' . __('This version includes fixes., ', 'subscribe-to-comments-reloaded') . '</p>' .
685
- '<p>' . __('If you find a bug or an issue you can report it <a href="https://github.com/stcr/subscribe-to-comments-reloaded/issues" target="_blank">here</a>.', 'subscribe-to-comments-reloaded') . '</p>' .
686
- '<p>' . __('You might need to clear you cache !!', 'subscribe-to-comments-reloaded') . '</p>' .
687
- '<p>' . __('Please visit the <a href="http://subscribe-reloaded.com/update/stcr-release-version-'.$_version.'/" target="_blank">Release Post</a> for a complete list of changes and guide about the new version.'
688
  . '<a class="dismiss" href="#">Dismiss. </a>'
689
- . '<img class="stcr-loading-animation" src="' . esc_url(admin_url() . '/images/loading.gif') . '" alt="Dismissing Message">', 'subscribe-to-comments-reloaded') . '</p>',
690
  'updated'
691
  );
692
  break;
69
  $OK = $this->add_user_subscriber_table( $email->email );
70
  if ( ! $OK) {
71
  $notices = get_option( 'subscribe_reloaded_deferred_admin_notices', array() );
72
+ $notices[] = '<div class="error"><h3>' . esc_html__( 'Important Notice', 'subscribe-to-comments-reloaded' ) . '</h3>' .
73
  '<p>The creation of of the table <strong>' . $wpdb->prefix . 'subscribe_reloaded_subscribers</strong> failed</p></div>';
74
  update_option( 'subscribe_reloaded_deferred_admin_notices', $notices );
75
  break 1;
117
  $this->stcr_create_admin_notice(
118
  'notify_update_sanitize_db_options',
119
  'unread',
120
+ '<p>' . wp_kses( __( '<strong>Subscribe to Comments Reloaded:</strong> The information in your database has been sanitized to prevent the raw html messages. <a class="dismiss" href="#">Dismiss. </a>'
121
+ . '<img class="stcr-loading-animation" src="'. esc_url( admin_url() . '/images/loading.gif'). '" alt="Working...">' , 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) )
122
  . '</p>',
123
  'updated'
124
  );
172
  $this->stcr_create_admin_notice(
173
  'notify_import_stc_data',
174
  'unread',
175
+ '<p>' . wp_kses( __( '<strong>Subscribe to Comments Reloaded:</strong> Comment subscription data from the <strong>Subscribe to Comments</strong> plugin was detected and automatically imported into <strong>Subscribe to Comments Reloaded</strong>.', 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ) . ( is_plugin_active( 'subscribe-to-comments/subscribe-to-comments.php' ) ? wp_kses( __( ' It is recommended that you now <strong>deactivate</strong> Subscribe to Comments to prevent confusion between the two plugins.', 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ) : '' ) . '</p>' .
176
+ '<p>' . esc_html__( 'If you have subscription data from Subscribe to Comments Reloaded < v2.0 that you want to import, you\'ll need to import that data manually, as only one import routine will ever run to prevent data loss.', 'subscribe-to-comments-reloaded' ) . '</p>' .
177
+ '<p>' . wp_kses( __( 'Please visit <a href="options-general.php?page=subscribe-to-comments-reloaded/options/index.php">Settings -> Subscribe to Comments</a> to review your configuration.'
178
  . '<a class="dismiss" href="#">Dismiss. </a>'
179
+ . '<img class="stcr-loading-animation" src="'. esc_url( admin_url() . '/images/loading.gif'). '" alt="Working...">', 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ) . '</p>',
180
  'updated'
181
  );
182
  }
238
  $this->stcr_create_admin_notice(
239
  'notify_import_stc_mj_data',
240
  'unread',
241
+ '<p>' . wp_kses( __( '<strong>Subscribe to Comments Reloaded:</strong> Comment subscription data from the <strong>Subscribe to Comments</strong> plugin by Mark Jaquith was detected and automatically imported into <strong>Subscribe to Comments Reloaded</strong>.', 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ) . ( is_plugin_active( 'subscribe-to-comments/subscribe-to-comments.php' ) ? wp_kses( __( ' It is recommended that you now <strong>deactivate</strong> Subscribe to Comments to prevent confusion between the two plugins.', 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ) : '' ) . '</p>' .
242
+ '<p>' . esc_html__( 'If you have subscription data from Subscribe to Comments Reloaded < v2.0 that you want to import, you\'ll need to import that data manually, as only one import routine will ever run to prevent data loss.', 'subscribe-to-comments-reloaded' ) . '</p>' .
243
+ '<p>' . wp_kses( __( 'Please visit <a href="options-general.php?page=subscribe-to-comments-reloaded/options/index.php">Settings -> Subscribe to Comments</a> to review your configuration.'
244
  . '<a class="dismiss" href="#">Dismiss. </a>'
245
+ . '<img class="stcr-loading-animation" src="'. esc_url( admin_url() . '/images/loading.gif'). '" alt="Working...">', 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ) . '</p>',
246
  'updated'
247
  );
248
 
313
  $this->stcr_create_admin_notice(
314
  'notify_import_comment_reply',
315
  'unread',
316
+ '<p>' . wp_kses( __( '<strong>Subscribe to Comments Reloaded:</strong> Comment subscription data from the <strong>Comment Reply Notification</strong> plugin was detected and automatically imported into <strong>Subscribe to Comments Reloaded</strong>.', 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ) . ( is_plugin_active( 'comment-reply-notification/comment-reply-notification.php' ) ? wp_kses( __( ' It is recommended that you now <strong>deactivate</strong> Comment Reply Notification to prevent confusion between the two plugins.', 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ) : '' ) . '</p>' .
317
+ '<p>' . wp_kses( __( 'Please visit <a href="options-general.php?page=subscribe-to-comments-reloaded/options/index.php">Settings -> Subscribe to Comments</a> to review your configuration.'
318
  . '<a class="dismiss" href="#">Dismiss. </a>'
319
+ . '<img class="stcr-loading-animation" src="'. esc_url( admin_url() . '/images/loading.gif'). '" alt="Working...">', 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ) . '</p>',
320
  'updated'
321
  );
322
  }
463
  $this->stcr_create_admin_notice(
464
  'notify_import_wpcs_data',
465
  'unread',
466
+ '<p>' . wp_kses( __( '<strong>Subscribe to Comments Reloaded:</strong> Plugin options and comment subscription data from the <strong>WP Comment Subscriptions</strong> plugin were detected and automatically imported into <strong>Subscribe to Comments Reloaded</strong>.', 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ) . ( is_plugin_active( 'wp-comment-subscriptions/wp-comment-subscriptions.php' ) ? wp_kses( __( ' It is recommended that you now <strong>deactivate</strong> WP Comment Subscriptions to prevent confusion between the two plugins.', 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ) : '' ) . '</p>' .
467
+ '<p>' . esc_html__( 'If you have subscription data from another plugin (such as Subscribe to Comments or Subscribe to Comments Reloaded < v2.0) that you want to import, you\'ll need to import that data manually, as only one import routine will ever run to prevent data loss.', 'subscribe-to-comments-reloaded' ) . '</p>' .
468
+ '<p>' . wp_kses( __( '<strong>Note:</strong> If you were previously using the <code>wp_comment_subscriptions_show()</code> function or the <code>[wpcs-subscribe-url]</code> shortcode, you\'ll need to replace those with <code>subscribe_reloaded_show()</code> and <code>[subscribe-url]</code> respectively.', 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ) . '</p>' .
469
+ '<p>' . wp_kses( __( 'Please visit <a href="options-general.php?page=subscribe-to-comments-reloaded/options/index.php">Settings -> Subscribe to Comments</a> to review your configuration.'
470
  . '<a class="dismiss" href="#">Dismiss. </a>'
471
+ . '<img class="stcr-loading-animation" src="'. esc_url( admin_url() . '/images/loading.gif'). '" alt="Working...">', 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ) . '</p>',
472
  'updated'
473
  );
474
  }
476
  // end _import_wpcs_data
477
  public function upgrade_notification( $_version, $_db_version, $_fresh_install ) {
478
 
479
+ $options_link = sprintf( '<a href="%s"> %s </a>', admin_url( 'admin.php?page=stcr_options' ), esc_html__( 'Settings', 'subscribe-to-comments-reloaded' ) );
480
+ $system_link = sprintf( '<a href="%s"> %s </a>', admin_url( 'admin.php?page=stcr_system' ), esc_html__( 'Log Settings', 'subscribe-to-comments-reloaded' ) );
481
 
482
  if( ! $_fresh_install ) {
483
 
486
  $this->stcr_create_admin_notice(
487
  'notify_update_' . $_version,
488
  'unread',
489
+ '<p>' . wp_kses( __('<strong>Subscribe to Comments Reloaded</strong> has been updated to version 160106.', 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>' .
490
+ '<p>' . esc_html__('This version includes many changes and fixes to improve your experience with the plugin, including One Click Unsubscribe, Rich Text Editor to create HTML email templates, Subscription Checkbox position, and more!', 'subscribe-to-comments-reloaded') . '</p>' .
491
+ '<p>' . wp_kses( __('Please visit the <a href="https://wordpress.org/plugins/subscribe-to-comments-reloaded/changelog/" target="_blank">Changelog</a> for a complete list of changes.'
492
  . '<a class="dismiss" href="#">Dismiss. </a>'
493
+ . '<img class="stcr-loading-animation" src="' . esc_url(admin_url() . '/images/loading.gif') . '" alt="Working...">', 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>',
494
  'updated'
495
  );
496
  // Update the HTML emails option
501
  $this->stcr_create_admin_notice(
502
  'notify_update_' . $_version,
503
  'unread',
504
+ '<p>' . wp_kses( __('<strong>Subscribe to Comments Reloaded</strong> has been updated to version 160115.', 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>' .
505
+ '<p>' . esc_html__('This version includes fixes to broken links while managing your subscriptions', 'subscribe-to-comments-reloaded') . '</p>' .
506
+ '<p>' . wp_kses( __('Please visit the <a href="https://wordpress.org/plugins/subscribe-to-comments-reloaded/changelog/" target="_blank">Changelog</a> for a complete list of changes.'
507
  . '<a class="dismiss" href="#">Dismiss. </a>'
508
+ . '<img class="stcr-loading-animation" src="' . esc_url(admin_url() . '/images/loading.gif') . '" alt="Working...">', 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>',
509
  'updated'
510
  );
511
  // Update the HTML emails option
516
  $this->stcr_create_admin_notice(
517
  'notify_update_' . $_version,
518
  'unread',
519
+ '<p>' . wp_kses( __('<strong>Subscribe to Comments Reloaded</strong> has been updated to version 160831', 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>' .
520
+ '<p>' . esc_html__('This version includes fixes to many bugs and also new features, ', 'subscribe-to-comments-reloaded') . '</p>' .
521
  '<ul>' .
522
+ '<li>' . wp_kses( __("<strong>New Feature</strong> Add new option to set the Reply To email address. This will help the subscribers to use the Reply option in their email agents.", 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</li>'.
523
+ '<li>' . wp_kses( __("<strong>New Feature</strong> Improve the Admin Menu for StCR. Replace the StCR menu on the Settings Menu for a new Menu with sub menus for the pages.", 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</li>'.
524
+ '<li>' . wp_kses( __("<strong>New Feature</strong> Safely Uninstall option to Delete the plugin without loosing your subscriptions. You can use this option also for reset all the settings, see the FAQ.", 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</li>'.
525
+ '<li>' . wp_kses( __("<strong>New Feature</strong> Now the WordPress Authors can use the <strong>Subscribe authors</strong> option to autor subscribe to a Custom Post Type.", 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</li>'.
526
+ '<li>' . wp_kses( __("<strong>New Feature</strong> A new field was added under the notification options to and the management link only by email and not to display it on the request link page.", 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</li>'.
527
  '</ul>' .
528
+ '<p>' . wp_kses( __('Please visit the <a href="https://wordpress.org/plugins/subscribe-to-comments-reloaded/changelog/" target="_blank">Changelog</a> for a complete list of changes.'
529
  . '<a class="dismiss" href="#">Dismiss. </a>'
530
+ . '<img class="stcr-loading-animation" src="' . esc_url(admin_url() . '/images/loading.gif') . '" alt="Working...">', 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>',
531
  'updated'
532
  );
533
  // Update the HTML emails option
538
  $this->stcr_create_admin_notice(
539
  'notify_update_' . $_version,
540
  'unread',
541
+ '<p>' . wp_kses( __('<strong>Subscribe to Comments Reloaded</strong> has been updated to version 160902', 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>' .
542
+ '<p>' . esc_html__('This version includes fixes to many bugs and also new features, ', 'subscribe-to-comments-reloaded') . '</p>' .
543
  '<ul>' .
544
+ '<li>' . wp_kses( __("<strong>Fix update</strong> this version Fixes some issue trigger by the previous 160831 version.", 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</li>'.
545
+ '<li>' . wp_kses( __("<strong>New Feature</strong> Add new option to set the Reply To email address. This will help the subscribers to use the Reply option in their email agents.", 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</li>'.
546
+ '<li>' . wp_kses( __("<strong>New Feature</strong> Improve the Admin Menu for StCR. Replace the StCR menu on the Settings Menu for a new Menu with sub menus for the pages.", 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</li>'.
547
+ '<li>' . wp_kses( __("<strong>New Feature</strong> Safely Uninstall option to Delete the plugin without loosing your subscriptions. You can use this option also for reset all the settings, see the FAQ.", 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</li>'.
548
+ '<li>' . wp_kses( __("<strong>New Feature</strong> Now the WordPress Authors can use the <strong>Subscribe authors</strong> option to autor subscribe to a Custom Post Type.", 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</li>'.
549
+ '<li>' . wp_kses( __("<strong>New Feature</strong> A new field was added under the notification options to and the management link only by email and not to display it on the request link page.", 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</li>'.
550
  '</ul>' .
551
+ '<p>' . wp_kses( __('Please visit the <a href="https://wordpress.org/plugins/subscribe-to-comments-reloaded/changelog/" target="_blank">Changelog</a> for a complete list of changes.'
552
  . '<a class="dismiss" href="#">Dismiss. </a>'
553
+ . '<img class="stcr-loading-animation" src="' . esc_url(admin_url() . '/images/loading.gif') . '" alt="Working...">', 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>',
554
  'updated'
555
  );
556
  // Update the HTML emails option
558
  update_option( 'subscribe_reloaded_enable_html_emails', 'yes' );
559
  break;
560
  case '160915':
561
+ $options_link = sprintf( '<a href="%s"> %s </a>', admin_url( 'admin.php?page=stcr_options' ), esc_html__( 'Settings', 'subscribe-to-comments-reloaded' ) );
562
  $this->stcr_create_admin_notice(
563
  'notify_update_' . $_version,
564
  'unread',
565
+ '<p>' . wp_kses( __('<strong>Subscribe to Comments Reloaded</strong> has been updated to version 160915', 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>' .
566
+ '<p>' . esc_html__('This version includes fixes and improvements, ', 'subscribe-to-comments-reloaded') . '</p>' .
567
  '<ul>' .
568
+ '<li>' . wp_kses( __("<strong>Fix</strong> StCR checkbox position issues with some WordPress themes, Go to the {$options_link} to activate it.", 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</li>'.
569
+ '<li>' . wp_kses( __("<strong>Change</strong> the radio buttons in the management page for a dropdown.", 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</li>'.
570
+ '<li>' . wp_kses( __("<strong>Improve</strong> Email validation for empty values and using a regex.", 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</li>'.
571
  '</ul>' .
572
+ '<p>' . wp_kses( __('Please visit the <a href="https://wordpress.org/plugins/subscribe-to-comments-reloaded/changelog/" target="_blank">Changelog</a> for a complete list of changes.'
573
  . '<a class="dismiss" href="#">Dismiss. </a>'
574
+ . '<img class="stcr-loading-animation" src="' . esc_url(admin_url() . '/images/loading.gif') . '" alt="Working...">', 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>',
575
  'updated'
576
  );
577
  // Update the HTML emails option
582
  $this->stcr_create_admin_notice(
583
  'notify_update_' . $_version,
584
  'unread',
585
+ '<p>' . wp_kses( __('<strong>Subscribe to Comments Reloaded</strong> has been updated to version ' . $_version, 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>' .
586
+ '<p>' . esc_html__('This version includes fixes and improvements, ', 'subscribe-to-comments-reloaded') . '</p>' .
587
 
588
  '<ul>' .
589
+ '<li>' . wp_kses( __("<strong>Fix</strong> Wrong confirmation link when the double check option is enable.", 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</li>'.
590
+ '<li>' . wp_kses( __("<strong>Improve</strong> Manage subscription page. Take a look ;).", 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</li>'.
591
+ '<li>' . wp_kses( __("<strong>Improve</strong> Log file manipulation. Now you can control how the log behaves, take a look at the {$system_link}.", 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</li>'.
592
  '</ul>' .
593
 
594
+ '<p>' . wp_kses( __('If you find a bug or an issue you can report it <a href="https://github.com/stcr/subscribe-to-comments-reloaded/issues" target="_blank">here</a>.', 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>' .
595
+ '<p>' . wp_kses( __('Please visit the <a href="https://wordpress.org/plugins/subscribe-to-comments-reloaded/changelog/" target="_blank">Changelog</a> for a complete list of changes.'
596
  . '<a class="dismiss" href="#">Dismiss. </a>'
597
+ . '<img class="stcr-loading-animation" src="' . esc_url(admin_url() . '/images/loading.gif') . '" alt="Dismissing Message">', 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>',
598
  'updated'
599
  );
600
  // Update the HTML emails option
605
  $this->stcr_create_admin_notice(
606
  'notify_update_' . $_version,
607
  'unread',
608
+ '<p>' . wp_kses( __('<strong>Subscribe to Comments Reloaded</strong> has been updated to version ' . $_version, 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>' .
609
+ '<p>' . esc_html__('This version includes fixes and improvements, ', 'subscribe-to-comments-reloaded') . '</p>' .
610
 
611
  '<ul>' .
612
+ '<li>' . wp_kses( __("<strong>Fix Critical Bug</strong> This version fix a critical bug on fresh installation regarding a database table creation.", 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</li>'.
613
+ '<li>' . wp_kses( __("<strong>Add</strong> Option to control the inclusion of the style Font Awesome.", 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</li>'.
614
  '</ul>' .
615
 
616
+ '<p>' . wp_kses( __('If you find a bug or an issue you can report it <a href="https://github.com/stcr/subscribe-to-comments-reloaded/issues" target="_blank">here</a>.', 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>' .
617
+ '<p>' . wp_kses( __('Please visit the <a href="https://wordpress.org/plugins/subscribe-to-comments-reloaded/changelog/" target="_blank">Changelog</a> for a complete list of changes.'
618
  . '<a class="dismiss" href="#">Dismiss. </a>'
619
+ . '<img class="stcr-loading-animation" src="' . esc_url(admin_url() . '/images/loading.gif') . '" alt="Dismissing Message">', 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>',
620
  'updated'
621
  );
622
  // Update the HTML emails option
627
  $this->stcr_create_admin_notice(
628
  'notify_update_' . $_version,
629
  'unread',
630
+ '<p>' . wp_kses( __('<strong>Subscribe to Comments Reloaded</strong> has been updated to version ' . $_version, 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>' .
631
+ '<p>' . esc_html__('This version includes fixes and improvements, ', 'subscribe-to-comments-reloaded') . '</p>' .
632
 
633
  '<ul>' .
634
+ '<li>' . wp_kses( __("<strong>Security Patch</strong> This version add a patch for some security issues.", 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</li>'.
635
+ '<li>' . wp_kses( __("<strong>Add</strong> Option to reset all the plugin options", 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</li>'.
636
+ '<li>' . wp_kses( __("<strong>Fix</strong> issue regarding database collations", 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</li>'.
637
  '</ul>' .
638
 
639
+ '<p>' . wp_kses( __('If you find a bug or an issue you can report it <a href="https://github.com/stcr/subscribe-to-comments-reloaded/issues" target="_blank">here</a>.', 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>' .
640
+ '<p>' . wp_kses( __('Please visit the <a href="https://wordpress.org/plugins/subscribe-to-comments-reloaded/changelog/" target="_blank">Changelog</a> for a complete list of changes.'
641
  . '<a class="dismiss" href="#">Dismiss. </a>'
642
+ . '<img class="stcr-loading-animation" src="' . esc_url(admin_url() . '/images/loading.gif') . '" alt="Dismissing Message">', 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>',
643
  'updated'
644
  );
645
  // Update the HTML emails option
650
  $this->stcr_create_admin_notice(
651
  'notify_update_' . $_version,
652
  'unread',
653
+ '<p>' . wp_kses( __('<strong>Subscribe to Comments Reloaded</strong> has been updated to version ' . $_version, 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>' .
654
+ '<p>' . esc_html__('This version includes fixes and improvements, ', 'subscribe-to-comments-reloaded') . '</p>' .
655
+ '<p>' . wp_kses( __('If you find a bug or an issue you can report it <a href="https://github.com/stcr/subscribe-to-comments-reloaded/issues" target="_blank">here</a>.', 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>' .
656
+ '<p>' . wp_kses( __('Please visit the <a href="https://wordpress.org/plugins/subscribe-to-comments-reloaded/changelog/" target="_blank">Changelog</a> for a complete list of changes.'
657
  . '<a class="dismiss" href="#">Dismiss. </a>'
658
+ . '<img class="stcr-loading-animation" src="' . esc_url(admin_url() . '/images/loading.gif') . '" alt="Dismissing Message">', 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>',
659
  'updated'
660
  );
661
  // Update the HTML emails option
666
  $this->stcr_create_admin_notice(
667
  'notify_update_' . $_version,
668
  'unread',
669
+ '<p>' . wp_kses( __('<strong>Subscribe to Comments Reloaded</strong> has been updated to version ' . $_version, 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>' .
670
+ '<p>' . esc_html__('This version includes fixes and improvements, ', 'subscribe-to-comments-reloaded') . '</p>' .
671
+ '<p>' . wp_kses( __('If you find a bug or an issue you can report it <a href="https://github.com/stcr/subscribe-to-comments-reloaded/issues" target="_blank">here</a>.', 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>' .
672
+ '<p>' . esc_html__('You might need to clear you cache !!', 'subscribe-to-comments-reloaded') . '</p>' .
673
+ '<p>' . wp_kses( __('Please visit the <a href="http://subscribe-reloaded.com/update/stcr-release-version-'.$_version.'/" target="_blank">Release Post</a> for a complete list of changes and guide about the new version.'
674
  . '<a class="dismiss" href="#">Dismiss. </a>'
675
+ . '<img class="stcr-loading-animation" src="' . esc_url(admin_url() . '/images/loading.gif') . '" alt="Dismissing Message">', 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>',
676
  'updated'
677
  );
678
  break;
680
  $this->stcr_create_admin_notice(
681
  'notify_update_' . $_version,
682
  'unread',
683
+ '<p>' . wp_kses( __('<strong>Subscribe to Comments Reloaded</strong> has been updated to version ' . $_version, 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>' .
684
+ '<p>' . esc_html__('This version includes fixes., ', 'subscribe-to-comments-reloaded') . '</p>' .
685
+ '<p>' . wp_kses( __('If you find a bug or an issue you can report it <a href="https://github.com/stcr/subscribe-to-comments-reloaded/issues" target="_blank">here</a>.', 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>' .
686
+ '<p>' . esc_html__('You might need to clear you cache !!', 'subscribe-to-comments-reloaded') . '</p>' .
687
+ '<p>' . wp_kses( __('Please visit the <a href="http://subscribe-reloaded.com/update/stcr-release-version-'.$_version.'/" target="_blank">Release Post</a> for a complete list of changes and guide about the new version.'
688
  . '<a class="dismiss" href="#">Dismiss. </a>'
689
+ . '<img class="stcr-loading-animation" src="' . esc_url(admin_url() . '/images/loading.gif') . '" alt="Dismissing Message">', 'subscribe-to-comments-reloaded'), wp_kses_allowed_html( 'post' ) ) . '</p>',
690
  'updated'
691
  );
692
  break;
utils/stcr_utils.php CHANGED
@@ -89,7 +89,7 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_utils') )
89
  public function remove_user_subscriber_table($_email) {
90
  global $wpdb;
91
 
92
- $OK = $wpdb->query( $wpdb->prepare(
93
  "DELETE FROM " . $wpdb->prefix . "subscribe_reloaded_subscribers WHERE subscriber_email = %s",
94
  $_email
95
  ));
@@ -170,33 +170,33 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_utils') )
170
  public function stcr_translate_month( $date_str )
171
  {
172
  $months_long = array (
173
- "January" => __("January",'subscribe-to-comments-reloaded'),
174
- "February" => __("February",'subscribe-to-comments-reloaded'),
175
- "March" => __("March",'subscribe-to-comments-reloaded'),
176
- "April" => __("April",'subscribe-to-comments-reloaded'),
177
- "May" => __("May",'subscribe-to-comments-reloaded'),
178
- "June" => __("June",'subscribe-to-comments-reloaded'),
179
- "July" => __("July",'subscribe-to-comments-reloaded'),
180
- "August" => __("August",'subscribe-to-comments-reloaded'),
181
- "September" => __("September",'subscribe-to-comments-reloaded'),
182
- "October" => __("October",'subscribe-to-comments-reloaded'),
183
- "November" => __("November",'subscribe-to-comments-reloaded'),
184
- "December" => __("December",'subscribe-to-comments-reloaded')
185
  );
186
 
187
  $months_short = array (
188
- "Jan" => __("Jan",'subscribe-to-comments-reloaded'),
189
- "Feb" => __("Feb",'subscribe-to-comments-reloaded'),
190
- "Mar" => __("Mar",'subscribe-to-comments-reloaded'),
191
- "Apr" => __("Apr",'subscribe-to-comments-reloaded'),
192
- "May" => __("May",'subscribe-to-comments-reloaded'),
193
- "Jun" => __("Jun",'subscribe-to-comments-reloaded'),
194
- "Jul" => __("Jul",'subscribe-to-comments-reloaded'),
195
- "Aug" => __("Aug",'subscribe-to-comments-reloaded'),
196
- "Sep" => __("Sep",'subscribe-to-comments-reloaded'),
197
- "Oct" => __("Oct",'subscribe-to-comments-reloaded'),
198
- "Nov" => __("Nov",'subscribe-to-comments-reloaded'),
199
- "Dec" => __("Dec",'subscribe-to-comments-reloaded')
200
  );
201
 
202
  // Replace String
@@ -350,32 +350,32 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_utils') )
350
  add_option( 'subscribe_reloaded_checked_by_default_value', '0', '', 'yes' );
351
  add_option( 'subscribe_reloaded_checkbox_inline_style', 'width:30px', '', 'yes' );
352
  add_option( 'subscribe_reloaded_checkbox_html', "<p class='comment-form-subscriptions'><label for='subscribe-reloaded'>[checkbox_field] [checkbox_label]</label></p>", '', 'yes' );
353
- add_option( 'subscribe_reloaded_checkbox_label', __( "Notify me of followup comments via e-mail. You can also <a href='[subscribe_link]'>subscribe</a> without commenting.", 'subscribe-to-comments-reloaded' ), '', 'yes' );
354
- add_option( 'subscribe_reloaded_subscribed_label', __( "You are subscribed to this post. <a href='[manager_link]'>Manage</a> your subscriptions.", 'subscribe-to-comments-reloaded' ), '', 'yes' );
355
- add_option( 'subscribe_reloaded_subscribed_waiting_label', __( "Your subscription to this post needs to be confirmed. <a href='[manager_link]'>Manage your subscriptions</a>.", 'subscribe-to-comments-reloaded' ), '', 'yes' );
356
- add_option( 'subscribe_reloaded_author_label', __( "You can <a href='[manager_link]'>manage the subscriptions</a> of this post.", 'subscribe-to-comments-reloaded' ), '', 'yes' );
357
 
358
  add_option( 'subscribe_reloaded_manager_page_enabled', 'yes', '', 'yes' );
359
  add_option( 'subscribe_reloaded_virtual_manager_page_enabled', 'yes', '', 'yes' );
360
- add_option( 'subscribe_reloaded_manager_page_title', __( 'Manage subscriptions', 'subscribe-to-comments-reloaded' ), '', 'yes' );
361
  add_option( 'subscribe_reloaded_custom_header_meta', "<meta name='robots' content='noindex,nofollow'>", '', 'yes' );
362
- add_option( 'subscribe_reloaded_request_mgmt_link', __( 'To manage your subscriptions, please enter your email address here below. We will send you a message containing the link to access your personal management page.', 'subscribe-to-comments-reloaded' ), '', 'yes' );
363
- add_option( 'subscribe_reloaded_request_mgmt_link_thankyou', __( 'Thank you for using our subscription service. Your request has been completed, and you should receive an email with the management link in a few minutes.', 'subscribe-to-comments-reloaded' ), '', 'yes' );
364
- add_option( 'subscribe_reloaded_subscribe_without_commenting', __( "You can follow the discussion on <strong>[post_title]</strong> without having to leave a comment. Cool, huh? Just enter your email address in the form here below and you're all set.", 'subscribe-to-comments-reloaded' ), '', 'yes' );
365
- add_option( 'subscribe_reloaded_subscription_confirmed', __( "Thank you for using our subscription service. Your request has been completed. You will receive a notification email every time a new comment to this article is approved and posted by the administrator.", 'subscribe-to-comments-reloaded' ), '', 'yes' );
366
- add_option( 'subscribe_reloaded_subscription_confirmed_dci', __( "Thank you for using our subscription service. In order to confirm your request, please check your email for the verification message and follow the instructions.", 'subscribe-to-comments-reloaded' ), '', 'yes' );
367
- add_option( 'subscribe_reloaded_author_text', __( "In order to cancel or suspend one or more notifications, select the corresponding checkbox(es) and click on the button at the end of the list.", 'subscribe-to-comments-reloaded' ), '', 'yes' );
368
- add_option( 'subscribe_reloaded_user_text', __( "In order to cancel or suspend one or more notifications, select the corresponding checkbox(es) and click on the button at the end of the list. You are currently subscribed to:", 'subscribe-to-comments-reloaded' ), '', 'yes' );
369
 
370
  add_option( 'subscribe_reloaded_from_name', get_bloginfo( 'name' ), '', 'yes' );
371
  add_option( 'subscribe_reloaded_from_email', get_bloginfo( 'admin_email' ), '', 'yes' );
372
- add_option( 'subscribe_reloaded_notification_subject', __( 'There is a new comment to [post_title]', 'subscribe-to-comments-reloaded' ), '', 'yes' );
373
- add_option( 'subscribe_reloaded_notification_content', __( "<h1>There is a new comment on [post_title].</h1>\n\n<hr />\n<strong>Comment link:</strong> <a href=\"[comment_permalink]\">[comment_permalink]</a>\n<strong>Author:</strong> [comment_author]\n\n<strong>Comment:</strong>\n[comment_content]\n<div style=\"font-size: 0.8em;\"><strong>Permalink:</strong> <a href=\"[post_permalink]\">[post_permalink]</a>\n<a href=\"[manager_link]\">Manage your subscriptions</a> | <a href=\"[oneclick_link]\">One click unsubscribe</a></div>", 'subscribe-to-comments-reloaded' ), '', 'yes' );
374
- add_option( 'subscribe_reloaded_double_check_subject', __( 'Please confirm your subscription to [post_title]', 'subscribe-to-comments-reloaded' ), '', 'yes' );
375
- add_option( 'subscribe_reloaded_double_check_content', __( "You have requested to be notified every time a new comment is added to:\n<a href='[post_permalink]'>[post_permalink]</a>\n\nPlease confirm your request by clicking on this link:\n<a href='[confirm_link]'>[confirm_link]</a>", 'subscribe-to-comments-reloaded' ), '', 'yes' );
376
- add_option( 'subscribe_reloaded_management_subject', __( 'Manage your subscriptions on [blog_name]', 'subscribe-to-comments-reloaded' ) );
377
- add_option( 'subscribe_reloaded_management_content', __( "You have requested to manage your subscriptions to the articles on [blog_name]. Please check the Subscriptions management link in your email", 'subscribe-to-comments-reloaded' ) );
378
- add_option( 'subscribe_reloaded_management_email_content', __( "You have requested to manage your subscriptions to the articles on [blog_name]. Follow this link to access your personal page:\n<a href='[manager_link]'>[manager_link]</a>", 'subscribe-to-comments-reloaded' ) );
379
 
380
  add_option( 'subscribe_reloaded_purge_days', '30', '', 'yes' );
381
  add_option( 'subscribe_reloaded_enable_double_check', 'yes', '', 'yes' );
@@ -490,7 +490,7 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_utils') )
490
  'fromEmail' => $from_email,
491
  'fromName' => $from_name,
492
  'toEmail' => '',
493
- 'subject' => __('StCR Notification' ,'subscribe-to-comments-reloaded'),
494
  'message' => '',
495
  'bcc' => '',
496
  'reply_to' => $reply_to,
@@ -892,7 +892,7 @@ if( ! class_exists('\\'.__NAMESPACE__.'\\stcr_utils') )
892
  * @param string $_notification The notification Name of the notice to be deleted.
893
  */
894
  public function stcr_ajax_update_notification () {
895
- $_notification = $_POST['action'];
896
  // Check Nonce
897
  check_ajax_referer( $_notification, 'security' );
898
  // Update status
89
  public function remove_user_subscriber_table($_email) {
90
  global $wpdb;
91
 
92
+ $OK = $wpdb->query( $wpdb->prepare(
93
  "DELETE FROM " . $wpdb->prefix . "subscribe_reloaded_subscribers WHERE subscriber_email = %s",
94
  $_email
95
  ));
170
  public function stcr_translate_month( $date_str )
171
  {
172
  $months_long = array (
173
+ "January" => esc_html__("January",'subscribe-to-comments-reloaded'),
174
+ "February" => esc_html__("February",'subscribe-to-comments-reloaded'),
175
+ "March" => esc_html__("March",'subscribe-to-comments-reloaded'),
176
+ "April" => esc_html__("April",'subscribe-to-comments-reloaded'),
177
+ "May" => esc_html__("May",'subscribe-to-comments-reloaded'),
178
+ "June" => esc_html__("June",'subscribe-to-comments-reloaded'),
179
+ "July" => esc_html__("July",'subscribe-to-comments-reloaded'),
180
+ "August" => esc_html__("August",'subscribe-to-comments-reloaded'),
181
+ "September" => esc_html__("September",'subscribe-to-comments-reloaded'),
182
+ "October" => esc_html__("October",'subscribe-to-comments-reloaded'),
183
+ "November" => esc_html__("November",'subscribe-to-comments-reloaded'),
184
+ "December" => esc_html__("December",'subscribe-to-comments-reloaded')
185
  );
186
 
187
  $months_short = array (
188
+ "Jan" => esc_html__("Jan",'subscribe-to-comments-reloaded'),
189
+ "Feb" => esc_html__("Feb",'subscribe-to-comments-reloaded'),
190
+ "Mar" => esc_html__("Mar",'subscribe-to-comments-reloaded'),
191
+ "Apr" => esc_html__("Apr",'subscribe-to-comments-reloaded'),
192
+ "May" => esc_html__("May",'subscribe-to-comments-reloaded'),
193
+ "Jun" => esc_html__("Jun",'subscribe-to-comments-reloaded'),
194
+ "Jul" => esc_html__("Jul",'subscribe-to-comments-reloaded'),
195
+ "Aug" => esc_html__("Aug",'subscribe-to-comments-reloaded'),
196
+ "Sep" => esc_html__("Sep",'subscribe-to-comments-reloaded'),
197
+ "Oct" => esc_html__("Oct",'subscribe-to-comments-reloaded'),
198
+ "Nov" => esc_html__("Nov",'subscribe-to-comments-reloaded'),
199
+ "Dec" => esc_html__("Dec",'subscribe-to-comments-reloaded')
200
  );
201
 
202
  // Replace String
350
  add_option( 'subscribe_reloaded_checked_by_default_value', '0', '', 'yes' );
351
  add_option( 'subscribe_reloaded_checkbox_inline_style', 'width:30px', '', 'yes' );
352
  add_option( 'subscribe_reloaded_checkbox_html', "<p class='comment-form-subscriptions'><label for='subscribe-reloaded'>[checkbox_field] [checkbox_label]</label></p>", '', 'yes' );
353
+ add_option( 'subscribe_reloaded_checkbox_label', wp_kses( __( "Notify me of followup comments via e-mail. You can also <a href='[subscribe_link]'>subscribe</a> without commenting.", 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ), '', 'yes' );
354
+ add_option( 'subscribe_reloaded_subscribed_label', wp_kses( __( "You are subscribed to this post. <a href='[manager_link]'>Manage</a> your subscriptions.", 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ), '', 'yes' );
355
+ add_option( 'subscribe_reloaded_subscribed_waiting_label', wp_kses( __( "Your subscription to this post needs to be confirmed. <a href='[manager_link]'>Manage your subscriptions</a>.", 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ), '', 'yes' );
356
+ add_option( 'subscribe_reloaded_author_label', wp_kses( __( "You can <a href='[manager_link]'>manage the subscriptions</a> of this post.", 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ), '', 'yes' );
357
 
358
  add_option( 'subscribe_reloaded_manager_page_enabled', 'yes', '', 'yes' );
359
  add_option( 'subscribe_reloaded_virtual_manager_page_enabled', 'yes', '', 'yes' );
360
+ add_option( 'subscribe_reloaded_manager_page_title', esc_html__( 'Manage subscriptions', 'subscribe-to-comments-reloaded' ), '', 'yes' );
361
  add_option( 'subscribe_reloaded_custom_header_meta', "<meta name='robots' content='noindex,nofollow'>", '', 'yes' );
362
+ add_option( 'subscribe_reloaded_request_mgmt_link', esc_html__( 'To manage your subscriptions, please enter your email address here below. We will send you a message containing the link to access your personal management page.', 'subscribe-to-comments-reloaded' ), '', 'yes' );
363
+ add_option( 'subscribe_reloaded_request_mgmt_link_thankyou', esc_html__( 'Thank you for using our subscription service. Your request has been completed, and you should receive an email with the management link in a few minutes.', 'subscribe-to-comments-reloaded' ), '', 'yes' );
364
+ add_option( 'subscribe_reloaded_subscribe_without_commenting', wp_kses( __( "You can follow the discussion on <strong>[post_title]</strong> without having to leave a comment. Cool, huh? Just enter your email address in the form here below and you're all set.", 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ), '', 'yes' );
365
+ add_option( 'subscribe_reloaded_subscription_confirmed', esc_html__( "Thank you for using our subscription service. Your request has been completed. You will receive a notification email every time a new comment to this article is approved and posted by the administrator.", 'subscribe-to-comments-reloaded' ), '', 'yes' );
366
+ add_option( 'subscribe_reloaded_subscription_confirmed_dci', esc_html__( "Thank you for using our subscription service. In order to confirm your request, please check your email for the verification message and follow the instructions.", 'subscribe-to-comments-reloaded' ), '', 'yes' );
367
+ add_option( 'subscribe_reloaded_author_text', esc_html__( "In order to cancel or suspend one or more notifications, select the corresponding checkbox(es) and click on the button at the end of the list.", 'subscribe-to-comments-reloaded' ), '', 'yes' );
368
+ add_option( 'subscribe_reloaded_user_text', esc_html__( "In order to cancel or suspend one or more notifications, select the corresponding checkbox(es) and click on the button at the end of the list. You are currently subscribed to:", 'subscribe-to-comments-reloaded' ), '', 'yes' );
369
 
370
  add_option( 'subscribe_reloaded_from_name', get_bloginfo( 'name' ), '', 'yes' );
371
  add_option( 'subscribe_reloaded_from_email', get_bloginfo( 'admin_email' ), '', 'yes' );
372
+ add_option( 'subscribe_reloaded_notification_subject', esc_html__( 'There is a new comment to [post_title]', 'subscribe-to-comments-reloaded' ), '', 'yes' );
373
+ add_option( 'subscribe_reloaded_notification_content', wp_kses( __( "<h1>There is a new comment on [post_title].</h1>\n\n<hr />\n<strong>Comment link:</strong> <a href=\"[comment_permalink]\">[comment_permalink]</a>\n<strong>Author:</strong> [comment_author]\n\n<strong>Comment:</strong>\n[comment_content]\n<div style=\"font-size: 0.8em;\"><strong>Permalink:</strong> <a href=\"[post_permalink]\">[post_permalink]</a>\n<a href=\"[manager_link]\">Manage your subscriptions</a> | <a href=\"[oneclick_link]\">One click unsubscribe</a></div>", 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ), '', 'yes' );
374
+ add_option( 'subscribe_reloaded_double_check_subject', esc_html__( 'Please confirm your subscription to [post_title]', 'subscribe-to-comments-reloaded' ), '', 'yes' );
375
+ add_option( 'subscribe_reloaded_double_check_content', wp_kses( __( "You have requested to be notified every time a new comment is added to:\n<a href='[post_permalink]'>[post_permalink]</a>\n\nPlease confirm your request by clicking on this link:\n<a href='[confirm_link]'>[confirm_link]</a>", 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ), '', 'yes' );
376
+ add_option( 'subscribe_reloaded_management_subject', esc_html__( 'Manage your subscriptions on [blog_name]', 'subscribe-to-comments-reloaded' ) );
377
+ add_option( 'subscribe_reloaded_management_content', esc_html__( "You have requested to manage your subscriptions to the articles on [blog_name]. Please check the Subscriptions management link in your email", 'subscribe-to-comments-reloaded' ) );
378
+ add_option( 'subscribe_reloaded_management_email_content', wp_kses( __( "You have requested to manage your subscriptions to the articles on [blog_name]. Follow this link to access your personal page:\n<a href='[manager_link]'>[manager_link]</a>", 'subscribe-to-comments-reloaded' ), wp_kses_allowed_html( 'post' ) ) );
379
 
380
  add_option( 'subscribe_reloaded_purge_days', '30', '', 'yes' );
381
  add_option( 'subscribe_reloaded_enable_double_check', 'yes', '', 'yes' );
490
  'fromEmail' => $from_email,
491
  'fromName' => $from_name,
492
  'toEmail' => '',
493
+ 'subject' => esc_html__('StCR Notification' ,'subscribe-to-comments-reloaded'),
494
  'message' => '',
495
  'bcc' => '',
496
  'reply_to' => $reply_to,
892
  * @param string $_notification The notification Name of the notice to be deleted.
893
  */
894
  public function stcr_ajax_update_notification () {
895
+ $_notification = isset( $_POST['action'] ) ? sanitize_text_field( wp_unslash( $_POST['action'] ) ) : '';
896
  // Check Nonce
897
  check_ajax_referer( $_notification, 'security' );
898
  // Update status
vendor/bootstrap/dist/css/bootstrap-grid.css CHANGED
@@ -1,13 +1,9 @@
1
  /*!
2
- * Bootstrap Grid v4.0.0 (https://getbootstrap.com)
3
- * Copyright 2011-2018 The Bootstrap Authors
4
- * Copyright 2011-2018 Twitter, Inc.
5
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6
  */
7
- @-ms-viewport {
8
- width: device-width;
9
- }
10
-
11
  html {
12
  box-sizing: border-box;
13
  -ms-overflow-style: scrollbar;
@@ -19,7 +15,12 @@ html {
19
  box-sizing: inherit;
20
  }
21
 
22
- .container {
 
 
 
 
 
23
  width: 100%;
24
  padding-right: 15px;
25
  padding-left: 15px;
@@ -28,39 +29,30 @@ html {
28
  }
29
 
30
  @media (min-width: 576px) {
31
- .container {
32
  max-width: 540px;
33
  }
34
  }
35
 
36
  @media (min-width: 768px) {
37
- .container {
38
  max-width: 720px;
39
  }
40
  }
41
 
42
  @media (min-width: 992px) {
43
- .container {
44
  max-width: 960px;
45
  }
46
  }
47
 
48
  @media (min-width: 1200px) {
49
- .container {
50
  max-width: 1140px;
51
  }
52
  }
53
 
54
- .container-fluid {
55
- width: 100%;
56
- padding-right: 15px;
57
- padding-left: 15px;
58
- margin-right: auto;
59
- margin-left: auto;
60
- }
61
-
62
  .row {
63
- display: -webkit-box;
64
  display: -ms-flexbox;
65
  display: flex;
66
  -ms-flex-wrap: wrap;
@@ -88,7 +80,6 @@ html {
88
  .col-xl-auto {
89
  position: relative;
90
  width: 100%;
91
- min-height: 1px;
92
  padding-right: 15px;
93
  padding-left: 15px;
94
  }
@@ -96,190 +87,197 @@ html {
96
  .col {
97
  -ms-flex-preferred-size: 0;
98
  flex-basis: 0;
99
- -webkit-box-flex: 1;
100
  -ms-flex-positive: 1;
101
  flex-grow: 1;
102
  max-width: 100%;
103
  }
104
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
105
  .col-auto {
106
- -webkit-box-flex: 0;
107
  -ms-flex: 0 0 auto;
108
  flex: 0 0 auto;
109
  width: auto;
110
- max-width: none;
111
  }
112
 
113
  .col-1 {
114
- -webkit-box-flex: 0;
115
  -ms-flex: 0 0 8.333333%;
116
  flex: 0 0 8.333333%;
117
  max-width: 8.333333%;
118
  }
119
 
120
  .col-2 {
121
- -webkit-box-flex: 0;
122
  -ms-flex: 0 0 16.666667%;
123
  flex: 0 0 16.666667%;
124
  max-width: 16.666667%;
125
  }
126
 
127
  .col-3 {
128
- -webkit-box-flex: 0;
129
  -ms-flex: 0 0 25%;
130
  flex: 0 0 25%;
131
  max-width: 25%;
132
  }
133
 
134
  .col-4 {
135
- -webkit-box-flex: 0;
136
  -ms-flex: 0 0 33.333333%;
137
  flex: 0 0 33.333333%;
138
  max-width: 33.333333%;
139
  }
140
 
141
  .col-5 {
142
- -webkit-box-flex: 0;
143
  -ms-flex: 0 0 41.666667%;
144
  flex: 0 0 41.666667%;
145
  max-width: 41.666667%;
146
  }
147
 
148
  .col-6 {
149
- -webkit-box-flex: 0;
150
  -ms-flex: 0 0 50%;
151
  flex: 0 0 50%;
152
  max-width: 50%;
153
  }
154
 
155
  .col-7 {
156
- -webkit-box-flex: 0;
157
  -ms-flex: 0 0 58.333333%;
158
  flex: 0 0 58.333333%;
159
  max-width: 58.333333%;
160
  }
161
 
162
  .col-8 {
163
- -webkit-box-flex: 0;
164
  -ms-flex: 0 0 66.666667%;
165
  flex: 0 0 66.666667%;
166
  max-width: 66.666667%;
167
  }
168
 
169
  .col-9 {
170
- -webkit-box-flex: 0;
171
  -ms-flex: 0 0 75%;
172
  flex: 0 0 75%;
173
  max-width: 75%;
174
  }
175
 
176
  .col-10 {
177
- -webkit-box-flex: 0;
178
  -ms-flex: 0 0 83.333333%;
179
  flex: 0 0 83.333333%;
180
  max-width: 83.333333%;
181
  }
182
 
183
  .col-11 {
184
- -webkit-box-flex: 0;
185
  -ms-flex: 0 0 91.666667%;
186
  flex: 0 0 91.666667%;
187
  max-width: 91.666667%;
188
  }
189
 
190
  .col-12 {
191
- -webkit-box-flex: 0;
192
  -ms-flex: 0 0 100%;
193
  flex: 0 0 100%;
194
  max-width: 100%;
195
  }
196
 
197
  .order-first {
198
- -webkit-box-ordinal-group: 0;
199
  -ms-flex-order: -1;
200
  order: -1;
201
  }
202
 
203
  .order-last {
204
- -webkit-box-ordinal-group: 14;
205
  -ms-flex-order: 13;
206
  order: 13;
207
  }
208
 
209
  .order-0 {
210
- -webkit-box-ordinal-group: 1;
211
  -ms-flex-order: 0;
212
  order: 0;
213
  }
214
 
215
  .order-1 {
216
- -webkit-box-ordinal-group: 2;
217
  -ms-flex-order: 1;
218
  order: 1;
219
  }
220
 
221
  .order-2 {
222
- -webkit-box-ordinal-group: 3;
223
  -ms-flex-order: 2;
224
  order: 2;
225
  }
226
 
227
  .order-3 {
228
- -webkit-box-ordinal-group: 4;
229
  -ms-flex-order: 3;
230
  order: 3;
231
  }
232
 
233
  .order-4 {
234
- -webkit-box-ordinal-group: 5;
235
  -ms-flex-order: 4;
236
  order: 4;
237
  }
238
 
239
  .order-5 {
240
- -webkit-box-ordinal-group: 6;
241
  -ms-flex-order: 5;
242
  order: 5;
243
  }
244
 
245
  .order-6 {
246
- -webkit-box-ordinal-group: 7;
247
  -ms-flex-order: 6;
248
  order: 6;
249
  }
250
 
251
  .order-7 {
252
- -webkit-box-ordinal-group: 8;
253
  -ms-flex-order: 7;
254
  order: 7;
255
  }
256
 
257
  .order-8 {
258
- -webkit-box-ordinal-group: 9;
259
  -ms-flex-order: 8;
260
  order: 8;
261
  }
262
 
263
  .order-9 {
264
- -webkit-box-ordinal-group: 10;
265
  -ms-flex-order: 9;
266
  order: 9;
267
  }
268
 
269
  .order-10 {
270
- -webkit-box-ordinal-group: 11;
271
  -ms-flex-order: 10;
272
  order: 10;
273
  }
274
 
275
  .order-11 {
276
- -webkit-box-ordinal-group: 12;
277
  -ms-flex-order: 11;
278
  order: 11;
279
  }
280
 
281
  .order-12 {
282
- -webkit-box-ordinal-group: 13;
283
  -ms-flex-order: 12;
284
  order: 12;
285
  }
@@ -332,162 +330,163 @@ html {
332
  .col-sm {
333
  -ms-flex-preferred-size: 0;
334
  flex-basis: 0;
335
- -webkit-box-flex: 1;
336
  -ms-flex-positive: 1;
337
  flex-grow: 1;
338
  max-width: 100%;
339
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
340
  .col-sm-auto {
341
- -webkit-box-flex: 0;
342
  -ms-flex: 0 0 auto;
343
  flex: 0 0 auto;
344
  width: auto;
345
- max-width: none;
346
  }
347
  .col-sm-1 {
348
- -webkit-box-flex: 0;
349
  -ms-flex: 0 0 8.333333%;
350
  flex: 0 0 8.333333%;
351
  max-width: 8.333333%;
352
  }
353
  .col-sm-2 {
354
- -webkit-box-flex: 0;
355
  -ms-flex: 0 0 16.666667%;
356
  flex: 0 0 16.666667%;
357
  max-width: 16.666667%;
358
  }
359
  .col-sm-3 {
360
- -webkit-box-flex: 0;
361
  -ms-flex: 0 0 25%;
362
  flex: 0 0 25%;
363
  max-width: 25%;
364
  }
365
  .col-sm-4 {
366
- -webkit-box-flex: 0;
367
  -ms-flex: 0 0 33.333333%;
368
  flex: 0 0 33.333333%;
369
  max-width: 33.333333%;
370
  }
371
  .col-sm-5 {
372
- -webkit-box-flex: 0;
373
  -ms-flex: 0 0 41.666667%;
374
  flex: 0 0 41.666667%;
375
  max-width: 41.666667%;
376
  }
377
  .col-sm-6 {
378
- -webkit-box-flex: 0;
379
  -ms-flex: 0 0 50%;
380
  flex: 0 0 50%;
381
  max-width: 50%;
382
  }
383
  .col-sm-7 {
384
- -webkit-box-flex: 0;
385
  -ms-flex: 0 0 58.333333%;
386
  flex: 0 0 58.333333%;
387
  max-width: 58.333333%;
388
  }
389
  .col-sm-8 {
390
- -webkit-box-flex: 0;
391
  -ms-flex: 0 0 66.666667%;
392
  flex: 0 0 66.666667%;
393
  max-width: 66.666667%;
394
  }
395
  .col-sm-9 {
396
- -webkit-box-flex: 0;
397
  -ms-flex: 0 0 75%;
398
  flex: 0 0 75%;
399
  max-width: 75%;
400
  }
401
  .col-sm-10 {
402
- -webkit-box-flex: 0;
403
  -ms-flex: 0 0 83.333333%;
404
  flex: 0 0 83.333333%;
405
  max-width: 83.333333%;
406
  }
407
  .col-sm-11 {
408
- -webkit-box-flex: 0;
409
  -ms-flex: 0 0 91.666667%;
410
  flex: 0 0 91.666667%;
411
  max-width: 91.666667%;
412
  }
413
  .col-sm-12 {
414
- -webkit-box-flex: 0;
415
  -ms-flex: 0 0 100%;
416
  flex: 0 0 100%;
417
  max-width: 100%;
418
  }
419
  .order-sm-first {
420
- -webkit-box-ordinal-group: 0;
421
  -ms-flex-order: -1;
422
  order: -1;
423
  }
424
  .order-sm-last {
425
- -webkit-box-ordinal-group: 14;
426
  -ms-flex-order: 13;
427
  order: 13;
428
  }
429
  .order-sm-0 {
430
- -webkit-box-ordinal-group: 1;
431
  -ms-flex-order: 0;
432
  order: 0;
433
  }
434
  .order-sm-1 {
435
- -webkit-box-ordinal-group: 2;
436
  -ms-flex-order: 1;
437
  order: 1;
438
  }
439
  .order-sm-2 {
440
- -webkit-box-ordinal-group: 3;
441
  -ms-flex-order: 2;
442
  order: 2;
443
  }
444
  .order-sm-3 {
445
- -webkit-box-ordinal-group: 4;
446
  -ms-flex-order: 3;
447
  order: 3;
448
  }
449
  .order-sm-4 {
450
- -webkit-box-ordinal-group: 5;
451
  -ms-flex-order: 4;
452
  order: 4;
453
  }
454
  .order-sm-5 {
455
- -webkit-box-ordinal-group: 6;
456
  -ms-flex-order: 5;
457
  order: 5;
458
  }
459
  .order-sm-6 {
460
- -webkit-box-ordinal-group: 7;
461
  -ms-flex-order: 6;
462
  order: 6;
463
  }
464
  .order-sm-7 {
465
- -webkit-box-ordinal-group: 8;
466
  -ms-flex-order: 7;
467
  order: 7;
468
  }
469
  .order-sm-8 {
470
- -webkit-box-ordinal-group: 9;
471
  -ms-flex-order: 8;
472
  order: 8;
473
  }
474
  .order-sm-9 {
475
- -webkit-box-ordinal-group: 10;
476
  -ms-flex-order: 9;
477
  order: 9;
478
  }
479
  .order-sm-10 {
480
- -webkit-box-ordinal-group: 11;
481
  -ms-flex-order: 10;
482
  order: 10;
483
  }
484
  .order-sm-11 {
485
- -webkit-box-ordinal-group: 12;
486
  -ms-flex-order: 11;
487
  order: 11;
488
  }
489
  .order-sm-12 {
490
- -webkit-box-ordinal-group: 13;
491
  -ms-flex-order: 12;
492
  order: 12;
493
  }
@@ -533,162 +532,163 @@ html {
533
  .col-md {
534
  -ms-flex-preferred-size: 0;
535
  flex-basis: 0;
536
- -webkit-box-flex: 1;
537
  -ms-flex-positive: 1;
538
  flex-grow: 1;
539
  max-width: 100%;
540
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
541
  .col-md-auto {
542
- -webkit-box-flex: 0;
543
  -ms-flex: 0 0 auto;
544
  flex: 0 0 auto;
545
  width: auto;
546
- max-width: none;
547
  }
548
  .col-md-1 {
549
- -webkit-box-flex: 0;
550
  -ms-flex: 0 0 8.333333%;
551
  flex: 0 0 8.333333%;
552
  max-width: 8.333333%;
553
  }
554
  .col-md-2 {
555
- -webkit-box-flex: 0;
556
  -ms-flex: 0 0 16.666667%;
557
  flex: 0 0 16.666667%;
558
  max-width: 16.666667%;
559
  }
560
  .col-md-3 {
561
- -webkit-box-flex: 0;
562
  -ms-flex: 0 0 25%;
563
  flex: 0 0 25%;
564
  max-width: 25%;
565
  }
566
  .col-md-4 {
567
- -webkit-box-flex: 0;
568
  -ms-flex: 0 0 33.333333%;
569
  flex: 0 0 33.333333%;
570
  max-width: 33.333333%;
571
  }
572
  .col-md-5 {
573
- -webkit-box-flex: 0;
574
  -ms-flex: 0 0 41.666667%;
575
  flex: 0 0 41.666667%;
576
  max-width: 41.666667%;
577
  }
578
  .col-md-6 {
579
- -webkit-box-flex: 0;
580
  -ms-flex: 0 0 50%;
581
  flex: 0 0 50%;
582
  max-width: 50%;
583
  }
584
  .col-md-7 {
585
- -webkit-box-flex: 0;
586
  -ms-flex: 0 0 58.333333%;
587
  flex: 0 0 58.333333%;
588
  max-width: 58.333333%;
589
  }
590
  .col-md-8 {
591
- -webkit-box-flex: 0;
592
  -ms-flex: 0 0 66.666667%;
593
  flex: 0 0 66.666667%;
594
  max-width: 66.666667%;
595
  }
596
  .col-md-9 {
597
- -webkit-box-flex: 0;
598
  -ms-flex: 0 0 75%;
599
  flex: 0 0 75%;
600
  max-width: 75%;
601
  }
602
  .col-md-10 {
603
- -webkit-box-flex: 0;
604
  -ms-flex: 0 0 83.333333%;
605
  flex: 0 0 83.333333%;
606
  max-width: 83.333333%;
607
  }
608
  .col-md-11 {
609
- -webkit-box-flex: 0;
610
  -ms-flex: 0 0 91.666667%;
611
  flex: 0 0 91.666667%;
612
  max-width: 91.666667%;
613
  }
614
  .col-md-12 {
615
- -webkit-box-flex: 0;
616
  -ms-flex: 0 0 100%;
617
  flex: 0 0 100%;
618
  max-width: 100%;
619
  }
620
  .order-md-first {
621
- -webkit-box-ordinal-group: 0;
622
  -ms-flex-order: -1;
623
  order: -1;
624
  }
625
  .order-md-last {
626
- -webkit-box-ordinal-group: 14;
627
  -ms-flex-order: 13;
628
  order: 13;
629
  }
630
  .order-md-0 {
631
- -webkit-box-ordinal-group: 1;
632
  -ms-flex-order: 0;
633
  order: 0;
634
  }
635
  .order-md-1 {
636
- -webkit-box-ordinal-group: 2;
637
  -ms-flex-order: 1;
638
  order: 1;
639
  }
640
  .order-md-2 {
641
- -webkit-box-ordinal-group: 3;
642
  -ms-flex-order: 2;
643
  order: 2;
644
  }
645
  .order-md-3 {
646
- -webkit-box-ordinal-group: 4;
647
  -ms-flex-order: 3;
648
  order: 3;
649
  }
650
  .order-md-4 {
651
- -webkit-box-ordinal-group: 5;
652
  -ms-flex-order: 4;
653
  order: 4;
654
  }
655
  .order-md-5 {
656
- -webkit-box-ordinal-group: 6;
657
  -ms-flex-order: 5;
658
  order: 5;
659
  }
660
  .order-md-6 {
661
- -webkit-box-ordinal-group: 7;
662
  -ms-flex-order: 6;
663
  order: 6;
664
  }
665
  .order-md-7 {
666
- -webkit-box-ordinal-group: 8;
667
  -ms-flex-order: 7;
668
  order: 7;
669
  }
670
  .order-md-8 {
671
- -webkit-box-ordinal-group: 9;
672
  -ms-flex-order: 8;
673
  order: 8;
674
  }
675
  .order-md-9 {
676
- -webkit-box-ordinal-group: 10;
677
  -ms-flex-order: 9;
678
  order: 9;
679
  }
680
  .order-md-10 {
681
- -webkit-box-ordinal-group: 11;
682
  -ms-flex-order: 10;
683
  order: 10;
684
  }
685
  .order-md-11 {
686
- -webkit-box-ordinal-group: 12;
687
  -ms-flex-order: 11;
688
  order: 11;
689
  }
690
  .order-md-12 {
691
- -webkit-box-ordinal-group: 13;
692
  -ms-flex-order: 12;
693
  order: 12;
694
  }
@@ -734,162 +734,163 @@ html {
734
  .col-lg {
735
  -ms-flex-preferred-size: 0;
736
  flex-basis: 0;
737
- -webkit-box-flex: 1;
738
  -ms-flex-positive: 1;
739
  flex-grow: 1;
740
  max-width: 100%;
741
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
742
  .col-lg-auto {
743
- -webkit-box-flex: 0;
744
  -ms-flex: 0 0 auto;
745
  flex: 0 0 auto;
746
  width: auto;
747
- max-width: none;
748
  }
749
  .col-lg-1 {
750
- -webkit-box-flex: 0;
751
  -ms-flex: 0 0 8.333333%;
752
  flex: 0 0 8.333333%;
753
  max-width: 8.333333%;
754
  }
755
  .col-lg-2 {
756
- -webkit-box-flex: 0;
757
  -ms-flex: 0 0 16.666667%;
758
  flex: 0 0 16.666667%;
759
  max-width: 16.666667%;
760
  }
761
  .col-lg-3 {
762
- -webkit-box-flex: 0;
763
  -ms-flex: 0 0 25%;
764
  flex: 0 0 25%;
765
  max-width: 25%;
766
  }
767
  .col-lg-4 {
768
- -webkit-box-flex: 0;
769
  -ms-flex: 0 0 33.333333%;
770
  flex: 0 0 33.333333%;
771
  max-width: 33.333333%;
772
  }
773
  .col-lg-5 {
774
- -webkit-box-flex: 0;
775
  -ms-flex: 0 0 41.666667%;
776
  flex: 0 0 41.666667%;
777
  max-width: 41.666667%;
778
  }
779
  .col-lg-6 {
780
- -webkit-box-flex: 0;
781
  -ms-flex: 0 0 50%;
782
  flex: 0 0 50%;
783
  max-width: 50%;
784
  }
785
  .col-lg-7 {
786
- -webkit-box-flex: 0;
787
  -ms-flex: 0 0 58.333333%;
788
  flex: 0 0 58.333333%;
789
  max-width: 58.333333%;
790
  }
791
  .col-lg-8 {
792
- -webkit-box-flex: 0;
793
  -ms-flex: 0 0 66.666667%;
794
  flex: 0 0 66.666667%;
795
  max-width: 66.666667%;
796
  }
797
  .col-lg-9 {
798
- -webkit-box-flex: 0;
799
  -ms-flex: 0 0 75%;
800
  flex: 0 0 75%;
801
  max-width: 75%;
802
  }
803
  .col-lg-10 {
804
- -webkit-box-flex: 0;
805
  -ms-flex: 0 0 83.333333%;
806
  flex: 0 0 83.333333%;
807
  max-width: 83.333333%;
808
  }
809
  .col-lg-11 {
810
- -webkit-box-flex: 0;
811
  -ms-flex: 0 0 91.666667%;
812
  flex: 0 0 91.666667%;
813
  max-width: 91.666667%;
814
  }
815
  .col-lg-12 {
816
- -webkit-box-flex: 0;
817
  -ms-flex: 0 0 100%;
818
  flex: 0 0 100%;
819
  max-width: 100%;
820
  }
821
  .order-lg-first {
822
- -webkit-box-ordinal-group: 0;
823
  -ms-flex-order: -1;
824
  order: -1;
825
  }
826
  .order-lg-last {
827
- -webkit-box-ordinal-group: 14;
828
  -ms-flex-order: 13;
829
  order: 13;
830
  }
831
  .order-lg-0 {
832
- -webkit-box-ordinal-group: 1;
833
  -ms-flex-order: 0;
834
  order: 0;
835
  }
836
  .order-lg-1 {
837
- -webkit-box-ordinal-group: 2;
838
  -ms-flex-order: 1;
839
  order: 1;
840
  }
841
  .order-lg-2 {
842
- -webkit-box-ordinal-group: 3;
843
  -ms-flex-order: 2;
844
  order: 2;
845
  }
846
  .order-lg-3 {
847
- -webkit-box-ordinal-group: 4;
848
  -ms-flex-order: 3;
849
  order: 3;
850
  }
851
  .order-lg-4 {
852
- -webkit-box-ordinal-group: 5;
853
  -ms-flex-order: 4;
854
  order: 4;
855
  }
856
  .order-lg-5 {
857
- -webkit-box-ordinal-group: 6;
858
  -ms-flex-order: 5;
859
  order: 5;
860
  }
861
  .order-lg-6 {
862
- -webkit-box-ordinal-group: 7;
863
  -ms-flex-order: 6;
864
  order: 6;
865
  }
866
  .order-lg-7 {
867
- -webkit-box-ordinal-group: 8;
868
  -ms-flex-order: 7;
869
  order: 7;
870
  }
871
  .order-lg-8 {
872
- -webkit-box-ordinal-group: 9;
873
  -ms-flex-order: 8;
874
  order: 8;
875
  }
876
  .order-lg-9 {
877
- -webkit-box-ordinal-group: 10;
878
  -ms-flex-order: 9;
879
  order: 9;
880
  }
881
  .order-lg-10 {
882
- -webkit-box-ordinal-group: 11;
883
  -ms-flex-order: 10;
884
  order: 10;
885
  }
886
  .order-lg-11 {
887
- -webkit-box-ordinal-group: 12;
888
  -ms-flex-order: 11;
889
  order: 11;
890
  }
891
  .order-lg-12 {
892
- -webkit-box-ordinal-group: 13;
893
  -ms-flex-order: 12;
894
  order: 12;
895
  }
@@ -935,162 +936,163 @@ html {
935
  .col-xl {
936
  -ms-flex-preferred-size: 0;
937
  flex-basis: 0;
938
- -webkit-box-flex: 1;
939
  -ms-flex-positive: 1;
940
  flex-grow: 1;
941
  max-width: 100%;
942
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
943
  .col-xl-auto {
944
- -webkit-box-flex: 0;
945
  -ms-flex: 0 0 auto;
946
  flex: 0 0 auto;
947
  width: auto;
948
- max-width: none;
949
  }
950
  .col-xl-1 {
951
- -webkit-box-flex: 0;
952
  -ms-flex: 0 0 8.333333%;
953
  flex: 0 0 8.333333%;
954
  max-width: 8.333333%;
955
  }
956
  .col-xl-2 {
957
- -webkit-box-flex: 0;
958
  -ms-flex: 0 0 16.666667%;
959
  flex: 0 0 16.666667%;
960
  max-width: 16.666667%;
961
  }
962
  .col-xl-3 {
963
- -webkit-box-flex: 0;
964
  -ms-flex: 0 0 25%;
965
  flex: 0 0 25%;
966
  max-width: 25%;
967
  }
968
  .col-xl-4 {
969
- -webkit-box-flex: 0;
970
  -ms-flex: 0 0 33.333333%;
971
  flex: 0 0 33.333333%;
972
  max-width: 33.333333%;
973
  }
974
  .col-xl-5 {
975
- -webkit-box-flex: 0;
976
  -ms-flex: 0 0 41.666667%;
977
  flex: 0 0 41.666667%;
978
  max-width: 41.666667%;
979
  }
980
  .col-xl-6 {
981
- -webkit-box-flex: 0;
982
  -ms-flex: 0 0 50%;
983
  flex: 0 0 50%;
984
  max-width: 50%;
985
  }
986
  .col-xl-7 {
987
- -webkit-box-flex: 0;
988
  -ms-flex: 0 0 58.333333%;
989
  flex: 0 0 58.333333%;
990
  max-width: 58.333333%;
991
  }
992
  .col-xl-8 {
993
- -webkit-box-flex: 0;
994
  -ms-flex: 0 0 66.666667%;
995
  flex: 0 0 66.666667%;
996
  max-width: 66.666667%;
997
  }
998
  .col-xl-9 {
999
- -webkit-box-flex: 0;
1000
  -ms-flex: 0 0 75%;
1001
  flex: 0 0 75%;
1002
  max-width: 75%;
1003
  }
1004
  .col-xl-10 {
1005
- -webkit-box-flex: 0;
1006
  -ms-flex: 0 0 83.333333%;
1007
  flex: 0 0 83.333333%;
1008
  max-width: 83.333333%;
1009
  }
1010
  .col-xl-11 {
1011
- -webkit-box-flex: 0;
1012
  -ms-flex: 0 0 91.666667%;
1013
  flex: 0 0 91.666667%;
1014
  max-width: 91.666667%;
1015
  }
1016
  .col-xl-12 {
1017
- -webkit-box-flex: 0;
1018
  -ms-flex: 0 0 100%;
1019
  flex: 0 0 100%;
1020
  max-width: 100%;
1021
  }
1022
  .order-xl-first {
1023
- -webkit-box-ordinal-group: 0;
1024
  -ms-flex-order: -1;
1025
  order: -1;
1026
  }
1027
  .order-xl-last {
1028
- -webkit-box-ordinal-group: 14;
1029
  -ms-flex-order: 13;
1030
  order: 13;
1031
  }
1032
  .order-xl-0 {
1033
- -webkit-box-ordinal-group: 1;
1034
  -ms-flex-order: 0;
1035
  order: 0;
1036
  }
1037
  .order-xl-1 {
1038
- -webkit-box-ordinal-group: 2;
1039
  -ms-flex-order: 1;
1040
  order: 1;
1041
  }
1042
  .order-xl-2 {
1043
- -webkit-box-ordinal-group: 3;
1044
  -ms-flex-order: 2;
1045
  order: 2;
1046
  }
1047
  .order-xl-3 {
1048
- -webkit-box-ordinal-group: 4;
1049
  -ms-flex-order: 3;
1050
  order: 3;
1051
  }
1052
  .order-xl-4 {
1053
- -webkit-box-ordinal-group: 5;
1054
  -ms-flex-order: 4;
1055
  order: 4;
1056
  }
1057
  .order-xl-5 {
1058
- -webkit-box-ordinal-group: 6;
1059
  -ms-flex-order: 5;
1060
  order: 5;
1061
  }
1062
  .order-xl-6 {
1063
- -webkit-box-ordinal-group: 7;
1064
  -ms-flex-order: 6;
1065
  order: 6;
1066
  }
1067
  .order-xl-7 {
1068
- -webkit-box-ordinal-group: 8;
1069
  -ms-flex-order: 7;
1070
  order: 7;
1071
  }
1072
  .order-xl-8 {
1073
- -webkit-box-ordinal-group: 9;
1074
  -ms-flex-order: 8;
1075
  order: 8;
1076
  }
1077
  .order-xl-9 {
1078
- -webkit-box-ordinal-group: 10;
1079
  -ms-flex-order: 9;
1080
  order: 9;
1081
  }
1082
  .order-xl-10 {
1083
- -webkit-box-ordinal-group: 11;
1084
  -ms-flex-order: 10;
1085
  order: 10;
1086
  }
1087
  .order-xl-11 {
1088
- -webkit-box-ordinal-group: 12;
1089
  -ms-flex-order: 11;
1090
  order: 11;
1091
  }
1092
  .order-xl-12 {
1093
- -webkit-box-ordinal-group: 13;
1094
  -ms-flex-order: 12;
1095
  order: 12;
1096
  }
@@ -1161,13 +1163,11 @@ html {
1161
  }
1162
 
1163
  .d-flex {
1164
- display: -webkit-box !important;
1165
  display: -ms-flexbox !important;
1166
  display: flex !important;
1167
  }
1168
 
1169
  .d-inline-flex {
1170
- display: -webkit-inline-box !important;
1171
  display: -ms-inline-flexbox !important;
1172
  display: inline-flex !important;
1173
  }
@@ -1195,12 +1195,10 @@ html {
1195
  display: table-cell !important;
1196
  }
1197
  .d-sm-flex {
1198
- display: -webkit-box !important;
1199
  display: -ms-flexbox !important;
1200
  display: flex !important;
1201
  }
1202
  .d-sm-inline-flex {
1203
- display: -webkit-inline-box !important;
1204
  display: -ms-inline-flexbox !important;
1205
  display: inline-flex !important;
1206
  }
@@ -1229,12 +1227,10 @@ html {
1229
  display: table-cell !important;
1230
  }
1231
  .d-md-flex {
1232
- display: -webkit-box !important;
1233
  display: -ms-flexbox !important;
1234
  display: flex !important;
1235
  }
1236
  .d-md-inline-flex {
1237
- display: -webkit-inline-box !important;
1238
  display: -ms-inline-flexbox !important;
1239
  display: inline-flex !important;
1240
  }
@@ -1263,12 +1259,10 @@ html {
1263
  display: table-cell !important;
1264
  }
1265
  .d-lg-flex {
1266
- display: -webkit-box !important;
1267
  display: -ms-flexbox !important;
1268
  display: flex !important;
1269
  }
1270
  .d-lg-inline-flex {
1271
- display: -webkit-inline-box !important;
1272
  display: -ms-inline-flexbox !important;
1273
  display: inline-flex !important;
1274
  }
@@ -1297,12 +1291,10 @@ html {
1297
  display: table-cell !important;
1298
  }
1299
  .d-xl-flex {
1300
- display: -webkit-box !important;
1301
  display: -ms-flexbox !important;
1302
  display: flex !important;
1303
  }
1304
  .d-xl-inline-flex {
1305
- display: -webkit-inline-box !important;
1306
  display: -ms-inline-flexbox !important;
1307
  display: inline-flex !important;
1308
  }
@@ -1331,41 +1323,31 @@ html {
1331
  display: table-cell !important;
1332
  }
1333
  .d-print-flex {
1334
- display: -webkit-box !important;
1335
  display: -ms-flexbox !important;
1336
  display: flex !important;
1337
  }
1338
  .d-print-inline-flex {
1339
- display: -webkit-inline-box !important;
1340
  display: -ms-inline-flexbox !important;
1341
  display: inline-flex !important;
1342
  }
1343
  }
1344
 
1345
  .flex-row {
1346
- -webkit-box-orient: horizontal !important;
1347
- -webkit-box-direction: normal !important;
1348
  -ms-flex-direction: row !important;
1349
  flex-direction: row !important;
1350
  }
1351
 
1352
  .flex-column {
1353
- -webkit-box-orient: vertical !important;
1354
- -webkit-box-direction: normal !important;
1355
  -ms-flex-direction: column !important;
1356
  flex-direction: column !important;
1357
  }
1358
 
1359
  .flex-row-reverse {
1360
- -webkit-box-orient: horizontal !important;
1361
- -webkit-box-direction: reverse !important;
1362
  -ms-flex-direction: row-reverse !important;
1363
  flex-direction: row-reverse !important;
1364
  }
1365
 
1366
  .flex-column-reverse {
1367
- -webkit-box-orient: vertical !important;
1368
- -webkit-box-direction: reverse !important;
1369
  -ms-flex-direction: column-reverse !important;
1370
  flex-direction: column-reverse !important;
1371
  }
@@ -1385,26 +1367,47 @@ html {
1385
  flex-wrap: wrap-reverse !important;
1386
  }
1387
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1388
  .justify-content-start {
1389
- -webkit-box-pack: start !important;
1390
  -ms-flex-pack: start !important;
1391
  justify-content: flex-start !important;
1392
  }
1393
 
1394
  .justify-content-end {
1395
- -webkit-box-pack: end !important;
1396
  -ms-flex-pack: end !important;
1397
  justify-content: flex-end !important;
1398
  }
1399
 
1400
  .justify-content-center {
1401
- -webkit-box-pack: center !important;
1402
  -ms-flex-pack: center !important;
1403
  justify-content: center !important;
1404
  }
1405
 
1406
  .justify-content-between {
1407
- -webkit-box-pack: justify !important;
1408
  -ms-flex-pack: justify !important;
1409
  justify-content: space-between !important;
1410
  }
@@ -1415,31 +1418,26 @@ html {
1415
  }
1416
 
1417
  .align-items-start {
1418
- -webkit-box-align: start !important;
1419
  -ms-flex-align: start !important;
1420
  align-items: flex-start !important;
1421
  }
1422
 
1423
  .align-items-end {
1424
- -webkit-box-align: end !important;
1425
  -ms-flex-align: end !important;
1426
  align-items: flex-end !important;
1427
  }
1428
 
1429
  .align-items-center {
1430
- -webkit-box-align: center !important;
1431
  -ms-flex-align: center !important;
1432
  align-items: center !important;
1433
  }
1434
 
1435
  .align-items-baseline {
1436
- -webkit-box-align: baseline !important;
1437
  -ms-flex-align: baseline !important;
1438
  align-items: baseline !important;
1439
  }
1440
 
1441
  .align-items-stretch {
1442
- -webkit-box-align: stretch !important;
1443
  -ms-flex-align: stretch !important;
1444
  align-items: stretch !important;
1445
  }
@@ -1506,26 +1504,18 @@ html {
1506
 
1507
  @media (min-width: 576px) {
1508
  .flex-sm-row {
1509
- -webkit-box-orient: horizontal !important;
1510
- -webkit-box-direction: normal !important;
1511
  -ms-flex-direction: row !important;
1512
  flex-direction: row !important;
1513
  }
1514
  .flex-sm-column {
1515
- -webkit-box-orient: vertical !important;
1516
- -webkit-box-direction: normal !important;
1517
  -ms-flex-direction: column !important;
1518
  flex-direction: column !important;
1519
  }
1520
  .flex-sm-row-reverse {
1521
- -webkit-box-orient: horizontal !important;
1522
- -webkit-box-direction: reverse !important;
1523
  -ms-flex-direction: row-reverse !important;
1524
  flex-direction: row-reverse !important;
1525
  }
1526
  .flex-sm-column-reverse {
1527
- -webkit-box-orient: vertical !important;
1528
- -webkit-box-direction: reverse !important;
1529
  -ms-flex-direction: column-reverse !important;
1530
  flex-direction: column-reverse !important;
1531
  }
@@ -1541,23 +1531,39 @@ html {
1541
  -ms-flex-wrap: wrap-reverse !important;
1542
  flex-wrap: wrap-reverse !important;
1543
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1544
  .justify-content-sm-start {
1545
- -webkit-box-pack: start !important;
1546
  -ms-flex-pack: start !important;
1547
  justify-content: flex-start !important;
1548
  }
1549
  .justify-content-sm-end {
1550
- -webkit-box-pack: end !important;
1551
  -ms-flex-pack: end !important;
1552
  justify-content: flex-end !important;
1553
  }
1554
  .justify-content-sm-center {
1555
- -webkit-box-pack: center !important;
1556
  -ms-flex-pack: center !important;
1557
  justify-content: center !important;
1558
  }
1559
  .justify-content-sm-between {
1560
- -webkit-box-pack: justify !important;
1561
  -ms-flex-pack: justify !important;
1562
  justify-content: space-between !important;
1563
  }
@@ -1566,27 +1572,22 @@ html {
1566
  justify-content: space-around !important;
1567
  }
1568
  .align-items-sm-start {
1569
- -webkit-box-align: start !important;
1570
  -ms-flex-align: start !important;
1571
  align-items: flex-start !important;
1572
  }
1573
  .align-items-sm-end {
1574
- -webkit-box-align: end !important;
1575
  -ms-flex-align: end !important;
1576
  align-items: flex-end !important;
1577
  }
1578
  .align-items-sm-center {
1579
- -webkit-box-align: center !important;
1580
  -ms-flex-align: center !important;
1581
  align-items: center !important;
1582
  }
1583
  .align-items-sm-baseline {
1584
- -webkit-box-align: baseline !important;
1585
  -ms-flex-align: baseline !important;
1586
  align-items: baseline !important;
1587
  }
1588
  .align-items-sm-stretch {
1589
- -webkit-box-align: stretch !important;
1590
  -ms-flex-align: stretch !important;
1591
  align-items: stretch !important;
1592
  }
@@ -1642,26 +1643,18 @@ html {
1642
 
1643
  @media (min-width: 768px) {
1644
  .flex-md-row {
1645
- -webkit-box-orient: horizontal !important;
1646
- -webkit-box-direction: normal !important;
1647
  -ms-flex-direction: row !important;
1648
  flex-direction: row !important;
1649
  }
1650
  .flex-md-column {
1651
- -webkit-box-orient: vertical !important;
1652
- -webkit-box-direction: normal !important;
1653
  -ms-flex-direction: column !important;
1654
  flex-direction: column !important;
1655
  }
1656
  .flex-md-row-reverse {
1657
- -webkit-box-orient: horizontal !important;
1658
- -webkit-box-direction: reverse !important;
1659
  -ms-flex-direction: row-reverse !important;
1660
  flex-direction: row-reverse !important;
1661
  }
1662
  .flex-md-column-reverse {
1663
- -webkit-box-orient: vertical !important;
1664
- -webkit-box-direction: reverse !important;
1665
  -ms-flex-direction: column-reverse !important;
1666
  flex-direction: column-reverse !important;
1667
  }
@@ -1677,23 +1670,39 @@ html {
1677
  -ms-flex-wrap: wrap-reverse !important;
1678
  flex-wrap: wrap-reverse !important;
1679
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1680
  .justify-content-md-start {
1681
- -webkit-box-pack: start !important;
1682
  -ms-flex-pack: start !important;
1683
  justify-content: flex-start !important;
1684
  }
1685
  .justify-content-md-end {
1686
- -webkit-box-pack: end !important;
1687
  -ms-flex-pack: end !important;
1688
  justify-content: flex-end !important;
1689
  }
1690
  .justify-content-md-center {
1691
- -webkit-box-pack: center !important;
1692
  -ms-flex-pack: center !important;
1693
  justify-content: center !important;
1694
  }
1695
  .justify-content-md-between {
1696
- -webkit-box-pack: justify !important;
1697
  -ms-flex-pack: justify !important;
1698
  justify-content: space-between !important;
1699
  }
@@ -1702,27 +1711,22 @@ html {
1702
  justify-content: space-around !important;
1703
  }
1704
  .align-items-md-start {
1705
- -webkit-box-align: start !important;
1706
  -ms-flex-align: start !important;
1707
  align-items: flex-start !important;
1708
  }
1709
  .align-items-md-end {
1710
- -webkit-box-align: end !important;
1711
  -ms-flex-align: end !important;
1712
  align-items: flex-end !important;
1713
  }
1714
  .align-items-md-center {
1715
- -webkit-box-align: center !important;
1716
  -ms-flex-align: center !important;
1717
  align-items: center !important;
1718
  }
1719
  .align-items-md-baseline {
1720
- -webkit-box-align: baseline !important;
1721
  -ms-flex-align: baseline !important;
1722
  align-items: baseline !important;
1723
  }
1724
  .align-items-md-stretch {
1725
- -webkit-box-align: stretch !important;
1726
  -ms-flex-align: stretch !important;
1727
  align-items: stretch !important;
1728
  }
@@ -1778,26 +1782,18 @@ html {
1778
 
1779
  @media (min-width: 992px) {
1780
  .flex-lg-row {
1781
- -webkit-box-orient: horizontal !important;
1782
- -webkit-box-direction: normal !important;
1783
  -ms-flex-direction: row !important;
1784
  flex-direction: row !important;
1785
  }
1786
  .flex-lg-column {
1787
- -webkit-box-orient: vertical !important;
1788
- -webkit-box-direction: normal !important;
1789
  -ms-flex-direction: column !important;
1790
  flex-direction: column !important;
1791
  }
1792
  .flex-lg-row-reverse {
1793
- -webkit-box-orient: horizontal !important;
1794
- -webkit-box-direction: reverse !important;
1795
  -ms-flex-direction: row-reverse !important;
1796
  flex-direction: row-reverse !important;
1797
  }
1798
  .flex-lg-column-reverse {
1799
- -webkit-box-orient: vertical !important;
1800
- -webkit-box-direction: reverse !important;
1801
  -ms-flex-direction: column-reverse !important;
1802
  flex-direction: column-reverse !important;
1803
  }
@@ -1813,23 +1809,39 @@ html {
1813
  -ms-flex-wrap: wrap-reverse !important;
1814
  flex-wrap: wrap-reverse !important;
1815
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1816
  .justify-content-lg-start {
1817
- -webkit-box-pack: start !important;
1818
  -ms-flex-pack: start !important;
1819
  justify-content: flex-start !important;
1820
  }
1821
  .justify-content-lg-end {
1822
- -webkit-box-pack: end !important;
1823
  -ms-flex-pack: end !important;
1824
  justify-content: flex-end !important;
1825
  }
1826
  .justify-content-lg-center {
1827
- -webkit-box-pack: center !important;
1828
  -ms-flex-pack: center !important;
1829
  justify-content: center !important;
1830
  }
1831
  .justify-content-lg-between {
1832
- -webkit-box-pack: justify !important;
1833
  -ms-flex-pack: justify !important;
1834
  justify-content: space-between !important;
1835
  }
@@ -1838,27 +1850,22 @@ html {
1838
  justify-content: space-around !important;
1839
  }
1840
  .align-items-lg-start {
1841
- -webkit-box-align: start !important;
1842
  -ms-flex-align: start !important;
1843
  align-items: flex-start !important;
1844
  }
1845
  .align-items-lg-end {
1846
- -webkit-box-align: end !important;
1847
  -ms-flex-align: end !important;
1848
  align-items: flex-end !important;
1849
  }
1850
  .align-items-lg-center {
1851
- -webkit-box-align: center !important;
1852
  -ms-flex-align: center !important;
1853
  align-items: center !important;
1854
  }
1855
  .align-items-lg-baseline {
1856
- -webkit-box-align: baseline !important;
1857
  -ms-flex-align: baseline !important;
1858
  align-items: baseline !important;
1859
  }
1860
  .align-items-lg-stretch {
1861
- -webkit-box-align: stretch !important;
1862
  -ms-flex-align: stretch !important;
1863
  align-items: stretch !important;
1864
  }
@@ -1914,26 +1921,18 @@ html {
1914
 
1915
  @media (min-width: 1200px) {
1916
  .flex-xl-row {
1917
- -webkit-box-orient: horizontal !important;
1918
- -webkit-box-direction: normal !important;
1919
  -ms-flex-direction: row !important;
1920
  flex-direction: row !important;
1921
  }
1922
  .flex-xl-column {
1923
- -webkit-box-orient: vertical !important;
1924
- -webkit-box-direction: normal !important;
1925
  -ms-flex-direction: column !important;
1926
  flex-direction: column !important;
1927
  }
1928
  .flex-xl-row-reverse {
1929
- -webkit-box-orient: horizontal !important;
1930
- -webkit-box-direction: reverse !important;
1931
  -ms-flex-direction: row-reverse !important;
1932
  flex-direction: row-reverse !important;
1933
  }
1934
  .flex-xl-column-reverse {
1935
- -webkit-box-orient: vertical !important;
1936
- -webkit-box-direction: reverse !important;
1937
  -ms-flex-direction: column-reverse !important;
1938
  flex-direction: column-reverse !important;
1939
  }
@@ -1949,23 +1948,39 @@ html {
1949
  -ms-flex-wrap: wrap-reverse !important;
1950
  flex-wrap: wrap-reverse !important;
1951
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1952
  .justify-content-xl-start {
1953
- -webkit-box-pack: start !important;
1954
  -ms-flex-pack: start !important;
1955
  justify-content: flex-start !important;
1956
  }
1957
  .justify-content-xl-end {
1958
- -webkit-box-pack: end !important;
1959
  -ms-flex-pack: end !important;
1960
  justify-content: flex-end !important;
1961
  }
1962
  .justify-content-xl-center {
1963
- -webkit-box-pack: center !important;
1964
  -ms-flex-pack: center !important;
1965
  justify-content: center !important;
1966
  }
1967
  .justify-content-xl-between {
1968
- -webkit-box-pack: justify !important;
1969
  -ms-flex-pack: justify !important;
1970
  justify-content: space-between !important;
1971
  }
@@ -1974,27 +1989,22 @@ html {
1974
  justify-content: space-around !important;
1975
  }
1976
  .align-items-xl-start {
1977
- -webkit-box-align: start !important;
1978
  -ms-flex-align: start !important;
1979
  align-items: flex-start !important;
1980
  }
1981
  .align-items-xl-end {
1982
- -webkit-box-align: end !important;
1983
  -ms-flex-align: end !important;
1984
  align-items: flex-end !important;
1985
  }
1986
  .align-items-xl-center {
1987
- -webkit-box-align: center !important;
1988
  -ms-flex-align: center !important;
1989
  align-items: center !important;
1990
  }
1991
  .align-items-xl-baseline {
1992
- -webkit-box-align: baseline !important;
1993
  -ms-flex-align: baseline !important;
1994
  align-items: baseline !important;
1995
  }
1996
  .align-items-xl-stretch {
1997
- -webkit-box-align: stretch !important;
1998
  -ms-flex-align: stretch !important;
1999
  align-items: stretch !important;
2000
  }
@@ -2047,4 +2057,1816 @@ html {
2047
  align-self: stretch !important;
2048
  }
2049
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2050
  /*# sourceMappingURL=bootstrap-grid.css.map */
1
  /*!
2
+ * Bootstrap Grid v4.6.1 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors
4
+ * Copyright 2011-2021 Twitter, Inc.
5
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6
  */
 
 
 
 
7
  html {
8
  box-sizing: border-box;
9
  -ms-overflow-style: scrollbar;
15
  box-sizing: inherit;
16
  }
17
 
18
+ .container,
19
+ .container-fluid,
20
+ .container-sm,
21
+ .container-md,
22
+ .container-lg,
23
+ .container-xl {
24
  width: 100%;
25
  padding-right: 15px;
26
  padding-left: 15px;
29
  }
30
 
31
  @media (min-width: 576px) {
32
+ .container, .container-sm {
33
  max-width: 540px;
34
  }
35
  }
36
 
37
  @media (min-width: 768px) {
38
+ .container, .container-sm, .container-md {
39
  max-width: 720px;
40
  }
41
  }
42
 
43
  @media (min-width: 992px) {
44
+ .container, .container-sm, .container-md, .container-lg {
45
  max-width: 960px;
46
  }
47
  }
48
 
49
  @media (min-width: 1200px) {
50
+ .container, .container-sm, .container-md, .container-lg, .container-xl {
51
  max-width: 1140px;
52
  }
53
  }
54
 
 
 
 
 
 
 
 
 
55
  .row {
 
56
  display: -ms-flexbox;
57
  display: flex;
58
  -ms-flex-wrap: wrap;
80
  .col-xl-auto {
81
  position: relative;
82
  width: 100%;
 
83
  padding-right: 15px;
84
  padding-left: 15px;
85
  }
87
  .col {
88
  -ms-flex-preferred-size: 0;
89
  flex-basis: 0;
 
90
  -ms-flex-positive: 1;
91
  flex-grow: 1;
92
  max-width: 100%;
93
  }
94
 
95
+ .row-cols-1 > * {
96
+ -ms-flex: 0 0 100%;
97
+ flex: 0 0 100%;
98
+ max-width: 100%;
99
+ }
100
+
101
+ .row-cols-2 > * {
102
+ -ms-flex: 0 0 50%;
103
+ flex: 0 0 50%;
104
+ max-width: 50%;
105
+ }
106
+
107
+ .row-cols-3 > * {
108
+ -ms-flex: 0 0 33.333333%;
109
+ flex: 0 0 33.333333%;
110
+ max-width: 33.333333%;
111
+ }
112
+
113
+ .row-cols-4 > * {
114
+ -ms-flex: 0 0 25%;
115
+ flex: 0 0 25%;
116
+ max-width: 25%;
117
+ }
118
+
119
+ .row-cols-5 > * {
120
+ -ms-flex: 0 0 20%;
121
+ flex: 0 0 20%;
122
+ max-width: 20%;
123
+ }
124
+
125
+ .row-cols-6 > * {
126
+ -ms-flex: 0 0 16.666667%;
127
+ flex: 0 0 16.666667%;
128
+ max-width: 16.666667%;
129
+ }
130
+
131
  .col-auto {
 
132
  -ms-flex: 0 0 auto;
133
  flex: 0 0 auto;
134
  width: auto;
135
+ max-width: 100%;
136
  }
137
 
138
  .col-1 {
 
139
  -ms-flex: 0 0 8.333333%;
140
  flex: 0 0 8.333333%;
141
  max-width: 8.333333%;
142
  }
143
 
144
  .col-2 {
 
145
  -ms-flex: 0 0 16.666667%;
146
  flex: 0 0 16.666667%;
147
  max-width: 16.666667%;
148
  }
149
 
150
  .col-3 {
 
151
  -ms-flex: 0 0 25%;
152
  flex: 0 0 25%;
153
  max-width: 25%;
154
  }
155
 
156
  .col-4 {
 
157
  -ms-flex: 0 0 33.333333%;
158
  flex: 0 0 33.333333%;
159
  max-width: 33.333333%;
160
  }
161
 
162
  .col-5 {
 
163
  -ms-flex: 0 0 41.666667%;
164
  flex: 0 0 41.666667%;
165
  max-width: 41.666667%;
166
  }
167
 
168
  .col-6 {
 
169
  -ms-flex: 0 0 50%;
170
  flex: 0 0 50%;
171
  max-width: 50%;
172
  }
173
 
174
  .col-7 {
 
175
  -ms-flex: 0 0 58.333333%;
176
  flex: 0 0 58.333333%;
177
  max-width: 58.333333%;
178
  }
179
 
180
  .col-8 {
 
181
  -ms-flex: 0 0 66.666667%;
182
  flex: 0 0 66.666667%;
183
  max-width: 66.666667%;
184
  }
185
 
186
  .col-9 {
 
187
  -ms-flex: 0 0 75%;
188
  flex: 0 0 75%;
189
  max-width: 75%;
190
  }
191
 
192
  .col-10 {
 
193
  -ms-flex: 0 0 83.333333%;
194
  flex: 0 0 83.333333%;
195
  max-width: 83.333333%;
196
  }
197
 
198
  .col-11 {
 
199
  -ms-flex: 0 0 91.666667%;
200
  flex: 0 0 91.666667%;
201
  max-width: 91.666667%;
202
  }
203
 
204
  .col-12 {
 
205
  -ms-flex: 0 0 100%;
206
  flex: 0 0 100%;
207
  max-width: 100%;
208
  }
209
 
210
  .order-first {
 
211
  -ms-flex-order: -1;
212
  order: -1;
213
  }
214
 
215
  .order-last {
 
216
  -ms-flex-order: 13;
217
  order: 13;
218
  }
219
 
220
  .order-0 {
 
221
  -ms-flex-order: 0;
222
  order: 0;
223
  }
224
 
225
  .order-1 {
 
226
  -ms-flex-order: 1;
227
  order: 1;
228
  }
229
 
230
  .order-2 {
 
231
  -ms-flex-order: 2;
232
  order: 2;
233
  }
234
 
235
  .order-3 {
 
236
  -ms-flex-order: 3;
237
  order: 3;
238
  }
239
 
240
  .order-4 {
 
241
  -ms-flex-order: 4;
242
  order: 4;
243
  }
244
 
245
  .order-5 {
 
246
  -ms-flex-order: 5;
247
  order: 5;
248
  }
249
 
250
  .order-6 {
 
251
  -ms-flex-order: 6;
252
  order: 6;
253
  }
254
 
255
  .order-7 {
 
256
  -ms-flex-order: 7;
257
  order: 7;
258
  }
259
 
260
  .order-8 {
 
261
  -ms-flex-order: 8;
262
  order: 8;
263
  }
264
 
265
  .order-9 {
 
266
  -ms-flex-order: 9;
267
  order: 9;
268
  }
269
 
270
  .order-10 {
 
271
  -ms-flex-order: 10;
272
  order: 10;
273
  }
274
 
275
  .order-11 {
 
276
  -ms-flex-order: 11;
277
  order: 11;
278
  }
279
 
280
  .order-12 {
 
281
  -ms-flex-order: 12;
282
  order: 12;
283
  }
330
  .col-sm {
331
  -ms-flex-preferred-size: 0;
332
  flex-basis: 0;
 
333
  -ms-flex-positive: 1;
334
  flex-grow: 1;
335
  max-width: 100%;
336
  }
337
+ .row-cols-sm-1 > * {
338
+ -ms-flex: 0 0 100%;
339
+ flex: 0 0 100%;
340
+ max-width: 100%;
341
+ }
342
+ .row-cols-sm-2 > * {
343
+ -ms-flex: 0 0 50%;
344
+ flex: 0 0 50%;
345
+ max-width: 50%;
346
+ }
347
+ .row-cols-sm-3 > * {
348
+ -ms-flex: 0 0 33.333333%;
349
+ flex: 0 0 33.333333%;
350
+ max-width: 33.333333%;
351
+ }
352
+ .row-cols-sm-4 > * {
353
+ -ms-flex: 0 0 25%;
354
+ flex: 0 0 25%;
355
+ max-width: 25%;
356
+ }
357
+ .row-cols-sm-5 > * {
358
+ -ms-flex: 0 0 20%;
359
+ flex: 0 0 20%;
360
+ max-width: 20%;
361
+ }
362
+ .row-cols-sm-6 > * {
363
+ -ms-flex: 0 0 16.666667%;
364
+ flex: 0 0 16.666667%;
365
+ max-width: 16.666667%;
366
+ }
367
  .col-sm-auto {
 
368
  -ms-flex: 0 0 auto;
369
  flex: 0 0 auto;
370
  width: auto;
371
+ max-width: 100%;
372
  }
373
  .col-sm-1 {
 
374
  -ms-flex: 0 0 8.333333%;
375
  flex: 0 0 8.333333%;
376
  max-width: 8.333333%;
377
  }
378
  .col-sm-2 {
 
379
  -ms-flex: 0 0 16.666667%;
380
  flex: 0 0 16.666667%;
381
  max-width: 16.666667%;
382
  }
383
  .col-sm-3 {
 
384
  -ms-flex: 0 0 25%;
385
  flex: 0 0 25%;
386
  max-width: 25%;
387
  }
388
  .col-sm-4 {
 
389
  -ms-flex: 0 0 33.333333%;
390
  flex: 0 0 33.333333%;
391
  max-width: 33.333333%;
392
  }
393
  .col-sm-5 {
 
394
  -ms-flex: 0 0 41.666667%;
395
  flex: 0 0 41.666667%;
396
  max-width: 41.666667%;
397
  }
398
  .col-sm-6 {
 
399
  -ms-flex: 0 0 50%;
400
  flex: 0 0 50%;
401
  max-width: 50%;
402
  }
403
  .col-sm-7 {
 
404
  -ms-flex: 0 0 58.333333%;
405
  flex: 0 0 58.333333%;
406
  max-width: 58.333333%;
407
  }
408
  .col-sm-8 {
 
409
  -ms-flex: 0 0 66.666667%;
410
  flex: 0 0 66.666667%;
411
  max-width: 66.666667%;
412
  }
413
  .col-sm-9 {
 
414
  -ms-flex: 0 0 75%;
415
  flex: 0 0 75%;
416
  max-width: 75%;
417
  }
418
  .col-sm-10 {
 
419
  -ms-flex: 0 0 83.333333%;
420
  flex: 0 0 83.333333%;
421
  max-width: 83.333333%;
422
  }
423
  .col-sm-11 {
 
424
  -ms-flex: 0 0 91.666667%;
425
  flex: 0 0 91.666667%;
426
  max-width: 91.666667%;
427
  }
428
  .col-sm-12 {
 
429
  -ms-flex: 0 0 100%;
430
  flex: 0 0 100%;
431
  max-width: 100%;
432
  }
433
  .order-sm-first {
 
434
  -ms-flex-order: -1;
435
  order: -1;
436
  }
437
  .order-sm-last {
 
438
  -ms-flex-order: 13;
439
  order: 13;
440
  }
441
  .order-sm-0 {
 
442
  -ms-flex-order: 0;
443
  order: 0;
444
  }
445
  .order-sm-1 {
 
446
  -ms-flex-order: 1;
447
  order: 1;
448
  }
449
  .order-sm-2 {
 
450
  -ms-flex-order: 2;
451
  order: 2;
452
  }
453
  .order-sm-3 {
 
454
  -ms-flex-order: 3;
455
  order: 3;
456
  }
457
  .order-sm-4 {
 
458
  -ms-flex-order: 4;
459
  order: 4;
460
  }
461
  .order-sm-5 {
 
462
  -ms-flex-order: 5;
463
  order: 5;
464
  }
465
  .order-sm-6 {
 
466
  -ms-flex-order: 6;
467
  order: 6;
468
  }
469
  .order-sm-7 {
 
470
  -ms-flex-order: 7;
471
  order: 7;
472
  }
473
  .order-sm-8 {
 
474
  -ms-flex-order: 8;
475
  order: 8;
476
  }
477
  .order-sm-9 {
 
478
  -ms-flex-order: 9;
479
  order: 9;
480
  }
481
  .order-sm-10 {
 
482
  -ms-flex-order: 10;
483
  order: 10;
484
  }
485
  .order-sm-11 {
 
486
  -ms-flex-order: 11;
487
  order: 11;
488
  }
489
  .order-sm-12 {
 
490
  -ms-flex-order: 12;
491
  order: 12;
492
  }
532
  .col-md {
533
  -ms-flex-preferred-size: 0;
534
  flex-basis: 0;
 
535
  -ms-flex-positive: 1;
536
  flex-grow: 1;
537
  max-width: 100%;
538
  }
539
+ .row-cols-md-1 > * {
540
+ -ms-flex: 0 0 100%;
541
+ flex: 0 0 100%;
542
+ max-width: 100%;
543
+ }
544
+ .row-cols-md-2 > * {
545
+ -ms-flex: 0 0 50%;
546
+ flex: 0 0 50%;
547
+ max-width: 50%;
548
+ }
549
+ .row-cols-md-3 > * {
550
+ -ms-flex: 0 0 33.333333%;
551
+ flex: 0 0 33.333333%;
552
+ max-width: 33.333333%;
553
+ }
554
+ .row-cols-md-4 > * {
555
+ -ms-flex: 0 0 25%;
556
+ flex: 0 0 25%;
557
+ max-width: 25%;
558
+ }
559
+ .row-cols-md-5 > * {
560
+ -ms-flex: 0 0 20%;
561
+ flex: 0 0 20%;
562
+ max-width: 20%;
563
+ }
564
+ .row-cols-md-6 > * {
565
+ -ms-flex: 0 0 16.666667%;
566
+ flex: 0 0 16.666667%;
567
+ max-width: 16.666667%;
568
+ }
569
  .col-md-auto {
 
570
  -ms-flex: 0 0 auto;
571
  flex: 0 0 auto;
572
  width: auto;
573
+ max-width: 100%;
574
  }
575
  .col-md-1 {
 
576
  -ms-flex: 0 0 8.333333%;
577
  flex: 0 0 8.333333%;
578
  max-width: 8.333333%;
579
  }
580
  .col-md-2 {
 
581
  -ms-flex: 0 0 16.666667%;
582
  flex: 0 0 16.666667%;
583
  max-width: 16.666667%;
584
  }
585
  .col-md-3 {
 
586
  -ms-flex: 0 0 25%;
587
  flex: 0 0 25%;
588
  max-width: 25%;
589
  }
590
  .col-md-4 {
 
591
  -ms-flex: 0 0 33.333333%;
592
  flex: 0 0 33.333333%;
593
  max-width: 33.333333%;
594
  }
595
  .col-md-5 {
 
596
  -ms-flex: 0 0 41.666667%;
597
  flex: 0 0 41.666667%;
598
  max-width: 41.666667%;
599
  }
600
  .col-md-6 {
 
601
  -ms-flex: 0 0 50%;
602
  flex: 0 0 50%;
603
  max-width: 50%;
604
  }
605
  .col-md-7 {
 
606
  -ms-flex: 0 0 58.333333%;
607
  flex: 0 0 58.333333%;
608
  max-width: 58.333333%;
609
  }
610
  .col-md-8 {
 
611
  -ms-flex: 0 0 66.666667%;
612
  flex: 0 0 66.666667%;
613
  max-width: 66.666667%;
614
  }
615
  .col-md-9 {
 
616
  -ms-flex: 0 0 75%;
617
  flex: 0 0 75%;
618
  max-width: 75%;
619
  }
620
  .col-md-10 {
 
621
  -ms-flex: 0 0 83.333333%;
622
  flex: 0 0 83.333333%;
623
  max-width: 83.333333%;
624
  }
625
  .col-md-11 {
 
626
  -ms-flex: 0 0 91.666667%;
627
  flex: 0 0 91.666667%;
628
  max-width: 91.666667%;
629
  }
630
  .col-md-12 {
 
631
  -ms-flex: 0 0 100%;
632
  flex: 0 0 100%;
633
  max-width: 100%;
634
  }
635
  .order-md-first {
 
636
  -ms-flex-order: -1;
637
  order: -1;
638
  }
639
  .order-md-last {
 
640
  -ms-flex-order: 13;
641
  order: 13;
642
  }
643
  .order-md-0 {
 
644
  -ms-flex-order: 0;
645
  order: 0;
646
  }
647
  .order-md-1 {
 
648
  -ms-flex-order: 1;
649
  order: 1;
650
  }
651
  .order-md-2 {
 
652
  -ms-flex-order: 2;
653
  order: 2;
654
  }
655
  .order-md-3 {
 
656
  -ms-flex-order: 3;
657
  order: 3;
658
  }
659
  .order-md-4 {
 
660
  -ms-flex-order: 4;
661
  order: 4;
662
  }
663
  .order-md-5 {
 
664
  -ms-flex-order: 5;
665
  order: 5;
666
  }
667
  .order-md-6 {
 
668
  -ms-flex-order: 6;
669
  order: 6;
670
  }
671
  .order-md-7 {
 
672
  -ms-flex-order: 7;
673
  order: 7;
674
  }
675
  .order-md-8 {
 
676
  -ms-flex-order: 8;
677
  order: 8;
678
  }
679
  .order-md-9 {
 
680
  -ms-flex-order: 9;
681
  order: 9;
682
  }
683
  .order-md-10 {
 
684
  -ms-flex-order: 10;
685
  order: 10;
686
  }
687
  .order-md-11 {
 
688
  -ms-flex-order: 11;
689
  order: 11;
690
  }
691
  .order-md-12 {
 
692
  -ms-flex-order: 12;
693
  order: 12;
694
  }
734
  .col-lg {
735
  -ms-flex-preferred-size: 0;
736
  flex-basis: 0;
 
737
  -ms-flex-positive: 1;
738
  flex-grow: 1;
739
  max-width: 100%;
740
  }
741
+ .row-cols-lg-1 > * {
742
+ -ms-flex: 0 0 100%;
743
+ flex: 0 0 100%;
744
+ max-width: 100%;
745
+ }
746
+ .row-cols-lg-2 > * {
747
+ -ms-flex: 0 0 50%;
748
+ flex: 0 0 50%;
749
+ max-width: 50%;
750
+ }
751
+ .row-cols-lg-3 > * {
752
+ -ms-flex: 0 0 33.333333%;
753
+ flex: 0 0 33.333333%;
754
+ max-width: 33.333333%;
755
+ }
756
+ .row-cols-lg-4 > * {
757
+ -ms-flex: 0 0 25%;
758
+ flex: 0 0 25%;
759
+ max-width: 25%;
760
+ }
761
+ .row-cols-lg-5 > * {
762
+ -ms-flex: 0 0 20%;
763
+ flex: 0 0 20%;
764
+ max-width: 20%;
765
+ }
766
+ .row-cols-lg-6 > * {
767
+ -ms-flex: 0 0 16.666667%;
768
+ flex: 0 0 16.666667%;
769
+ max-width: 16.666667%;
770
+ }
771
  .col-lg-auto {
 
772
  -ms-flex: 0 0 auto;
773
  flex: 0 0 auto;
774
  width: auto;
775
+ max-width: 100%;
776
  }
777
  .col-lg-1 {
 
778
  -ms-flex: 0 0 8.333333%;
779
  flex: 0 0 8.333333%;
780
  max-width: 8.333333%;
781
  }
782
  .col-lg-2 {
 
783
  -ms-flex: 0 0 16.666667%;
784
  flex: 0 0 16.666667%;
785
  max-width: 16.666667%;
786
  }
787
  .col-lg-3 {
 
788
  -ms-flex: 0 0 25%;
789
  flex: 0 0 25%;
790
  max-width: 25%;
791
  }
792
  .col-lg-4 {
 
793
  -ms-flex: 0 0 33.333333%;
794
  flex: 0 0 33.333333%;
795
  max-width: 33.333333%;
796
  }
797
  .col-lg-5 {
 
798
  -ms-flex: 0 0 41.666667%;
799
  flex: 0 0 41.666667%;
800
  max-width: 41.666667%;
801
  }
802
  .col-lg-6 {
 
803
  -ms-flex: 0 0 50%;
804
  flex: 0 0 50%;
805
  max-width: 50%;
806
  }
807
  .col-lg-7 {
 
808
  -ms-flex: 0 0 58.333333%;
809
  flex: 0 0 58.333333%;
810
  max-width: 58.333333%;
811
  }
812
  .col-lg-8 {
 
813
  -ms-flex: 0 0 66.666667%;
814
  flex: 0 0 66.666667%;
815
  max-width: 66.666667%;
816
  }
817
  .col-lg-9 {
 
818
  -ms-flex: 0 0 75%;
819
  flex: 0 0 75%;
820
  max-width: 75%;
821
  }
822
  .col-lg-10 {
 
823
  -ms-flex: 0 0 83.333333%;
824
  flex: 0 0 83.333333%;
825
  max-width: 83.333333%;
826
  }
827
  .col-lg-11 {
 
828
  -ms-flex: 0 0 91.666667%;
829
  flex: 0 0 91.666667%;
830
  max-width: 91.666667%;
831
  }
832
  .col-lg-12 {
 
833
  -ms-flex: 0 0 100%;
834
  flex: 0 0 100%;
835
  max-width: 100%;
836
  }
837
  .order-lg-first {
 
838
  -ms-flex-order: -1;
839
  order: -1;
840
  }
841
  .order-lg-last {
 
842
  -ms-flex-order: 13;
843
  order: 13;
844
  }
845
  .order-lg-0 {
 
846
  -ms-flex-order: 0;
847
  order: 0;
848
  }
849
  .order-lg-1 {
 
850
  -ms-flex-order: 1;
851
  order: 1;
852
  }
853
  .order-lg-2 {
 
854
  -ms-flex-order: 2;
855
  order: 2;
856
  }
857
  .order-lg-3 {
 
858
  -ms-flex-order: 3;
859
  order: 3;
860
  }
861
  .order-lg-4 {
 
862
  -ms-flex-order: 4;
863
  order: 4;
864
  }
865
  .order-lg-5 {
 
866
  -ms-flex-order: 5;
867
  order: 5;
868
  }
869
  .order-lg-6 {
 
870
  -ms-flex-order: 6;
871
  order: 6;
872
  }
873
  .order-lg-7 {
 
874
  -ms-flex-order: 7;
875
  order: 7;
876
  }
877
  .order-lg-8 {
 
878
  -ms-flex-order: 8;
879
  order: 8;
880
  }
881
  .order-lg-9 {
 
882
  -ms-flex-order: 9;
883
  order: 9;
884
  }
885
  .order-lg-10 {
 
886
  -ms-flex-order: 10;
887
  order: 10;
888
  }
889
  .order-lg-11 {
 
890
  -ms-flex-order: 11;
891
  order: 11;
892
  }
893
  .order-lg-12 {
 
894
  -ms-flex-order: 12;
895
  order: 12;
896
  }
936
  .col-xl {
937
  -ms-flex-preferred-size: 0;
938
  flex-basis: 0;
 
939
  -ms-flex-positive: 1;
940
  flex-grow: 1;
941
  max-width: 100%;
942
  }
943
+ .row-cols-xl-1 > * {
944
+ -ms-flex: 0 0 100%;
945
+ flex: 0 0 100%;
946
+ max-width: 100%;
947
+ }
948
+ .row-cols-xl-2 > * {
949
+ -ms-flex: 0 0 50%;
950
+ flex: 0 0 50%;
951
+ max-width: 50%;
952
+ }
953
+ .row-cols-xl-3 > * {
954
+ -ms-flex: 0 0 33.333333%;
955
+ flex: 0 0 33.333333%;
956
+ max-width: 33.333333%;
957
+ }
958
+ .row-cols-xl-4 > * {
959
+ -ms-flex: 0 0 25%;
960
+ flex: 0 0 25%;
961
+ max-width: 25%;
962
+ }
963
+ .row-cols-xl-5 > * {
964
+ -ms-flex: 0 0 20%;
965
+ flex: 0 0 20%;
966
+ max-width: 20%;
967
+ }
968
+ .row-cols-xl-6 > * {
969
+ -ms-flex: 0 0 16.666667%;
970
+ flex: 0 0 16.666667%;
971
+ max-width: 16.666667%;
972
+ }
973
  .col-xl-auto {
 
974
  -ms-flex: 0 0 auto;
975
  flex: 0 0 auto;
976
  width: auto;
977
+ max-width: 100%;
978
  }
979
  .col-xl-1 {
 
980
  -ms-flex: 0 0 8.333333%;
981
  flex: 0 0 8.333333%;
982
  max-width: 8.333333%;
983
  }
984
  .col-xl-2 {
 
985
  -ms-flex: 0 0 16.666667%;
986
  flex: 0 0 16.666667%;
987
  max-width: 16.666667%;
988
  }
989
  .col-xl-3 {
 
990
  -ms-flex: 0 0 25%;
991
  flex: 0 0 25%;
992
  max-width: 25%;
993
  }
994
  .col-xl-4 {
 
995
  -ms-flex: 0 0 33.333333%;
996
  flex: 0 0 33.333333%;
997
  max-width: 33.333333%;
998
  }
999
  .col-xl-5 {
 
1000
  -ms-flex: 0 0 41.666667%;
1001
  flex: 0 0 41.666667%;
1002
  max-width: 41.666667%;
1003
  }
1004
  .col-xl-6 {
 
1005
  -ms-flex: 0 0 50%;
1006
  flex: 0 0 50%;
1007
  max-width: 50%;
1008
  }
1009
  .col-xl-7 {
 
1010
  -ms-flex: 0 0 58.333333%;
1011
  flex: 0 0 58.333333%;
1012
  max-width: 58.333333%;
1013
  }
1014
  .col-xl-8 {
 
1015
  -ms-flex: 0 0 66.666667%;
1016
  flex: 0 0 66.666667%;
1017
  max-width: 66.666667%;
1018
  }
1019
  .col-xl-9 {
 
1020
  -ms-flex: 0 0 75%;
1021
  flex: 0 0 75%;
1022
  max-width: 75%;
1023
  }
1024
  .col-xl-10 {
 
1025
  -ms-flex: 0 0 83.333333%;
1026
  flex: 0 0 83.333333%;
1027
  max-width: 83.333333%;
1028
  }
1029
  .col-xl-11 {
 
1030
  -ms-flex: 0 0 91.666667%;
1031
  flex: 0 0 91.666667%;
1032
  max-width: 91.666667%;
1033
  }
1034
  .col-xl-12 {
 
1035
  -ms-flex: 0 0 100%;
1036
  flex: 0 0 100%;
1037
  max-width: 100%;
1038
  }
1039
  .order-xl-first {
 
1040
  -ms-flex-order: -1;
1041
  order: -1;
1042
  }
1043
  .order-xl-last {
 
1044
  -ms-flex-order: 13;
1045
  order: 13;
1046
  }
1047
  .order-xl-0 {
 
1048
  -ms-flex-order: 0;
1049
  order: 0;
1050
  }
1051
  .order-xl-1 {
 
1052
  -ms-flex-order: 1;
1053
  order: 1;
1054
  }
1055
  .order-xl-2 {
 
1056
  -ms-flex-order: 2;
1057
  order: 2;
1058
  }
1059
  .order-xl-3 {
 
1060
  -ms-flex-order: 3;
1061
  order: 3;
1062
  }
1063
  .order-xl-4 {
 
1064
  -ms-flex-order: 4;
1065
  order: 4;
1066
  }
1067
  .order-xl-5 {
 
1068
  -ms-flex-order: 5;
1069
  order: 5;
1070
  }
1071
  .order-xl-6 {
 
1072
  -ms-flex-order: 6;
1073
  order: 6;
1074
  }
1075
  .order-xl-7 {
 
1076
  -ms-flex-order: 7;
1077
  order: 7;
1078
  }
1079
  .order-xl-8 {
 
1080
  -ms-flex-order: 8;
1081
  order: 8;
1082
  }
1083
  .order-xl-9 {
 
1084
  -ms-flex-order: 9;
1085
  order: 9;
1086
  }
1087
  .order-xl-10 {
 
1088
  -ms-flex-order: 10;
1089
  order: 10;
1090
  }
1091
  .order-xl-11 {
 
1092
  -ms-flex-order: 11;
1093
  order: 11;
1094
  }
1095
  .order-xl-12 {
 
1096
  -ms-flex-order: 12;
1097
  order: 12;
1098
  }
1163
  }
1164
 
1165
  .d-flex {
 
1166
  display: -ms-flexbox !important;
1167
  display: flex !important;
1168
  }
1169
 
1170
  .d-inline-flex {
 
1171
  display: -ms-inline-flexbox !important;
1172
  display: inline-flex !important;
1173
  }
1195
  display: table-cell !important;
1196
  }
1197
  .d-sm-flex {
 
1198
  display: -ms-flexbox !important;
1199
  display: flex !important;
1200
  }
1201
  .d-sm-inline-flex {
 
1202
  display: -ms-inline-flexbox !important;
1203
  display: inline-flex !important;
1204
  }
1227
  display: table-cell !important;
1228
  }
1229
  .d-md-flex {
 
1230
  display: -ms-flexbox !important;
1231
  display: flex !important;
1232
  }
1233
  .d-md-inline-flex {
 
1234
  display: -ms-inline-flexbox !important;
1235
  display: inline-flex !important;
1236
  }
1259
  display: table-cell !important;
1260
  }
1261
  .d-lg-flex {
 
1262
  display: -ms-flexbox !important;
1263
  display: flex !important;
1264
  }
1265
  .d-lg-inline-flex {
 
1266
  display: -ms-inline-flexbox !important;
1267
  display: inline-flex !important;
1268
  }
1291
  display: table-cell !important;
1292
  }
1293
  .d-xl-flex {
 
1294
  display: -ms-flexbox !important;
1295
  display: flex !important;
1296
  }
1297
  .d-xl-inline-flex {
 
1298
  display: -ms-inline-flexbox !important;
1299
  display: inline-flex !important;
1300
  }
1323
  display: table-cell !important;
1324
  }
1325
  .d-print-flex {
 
1326
  display: -ms-flexbox !important;
1327
  display: flex !important;
1328
  }
1329
  .d-print-inline-flex {
 
1330
  display: -ms-inline-flexbox !important;
1331
  display: inline-flex !important;
1332
  }
1333
  }
1334
 
1335
  .flex-row {
 
 
1336
  -ms-flex-direction: row !important;
1337
  flex-direction: row !important;
1338
  }
1339
 
1340
  .flex-column {
 
 
1341
  -ms-flex-direction: column !important;
1342
  flex-direction: column !important;
1343
  }
1344
 
1345
  .flex-row-reverse {
 
 
1346
  -ms-flex-direction: row-reverse !important;
1347
  flex-direction: row-reverse !important;
1348
  }
1349
 
1350
  .flex-column-reverse {
 
 
1351
  -ms-flex-direction: column-reverse !important;
1352
  flex-direction: column-reverse !important;
1353
  }
1367
  flex-wrap: wrap-reverse !important;
1368
  }
1369
 
1370
+ .flex-fill {
1371
+ -ms-flex: 1 1 auto !important;
1372
+ flex: 1 1 auto !important;
1373
+ }
1374
+
1375
+ .flex-grow-0 {
1376
+ -ms-flex-positive: 0 !important;
1377
+ flex-grow: 0 !important;
1378
+ }
1379
+
1380
+ .flex-grow-1 {
1381
+ -ms-flex-positive: 1 !important;
1382
+ flex-grow: 1 !important;
1383
+ }
1384
+
1385
+ .flex-shrink-0 {
1386
+ -ms-flex-negative: 0 !important;
1387
+ flex-shrink: 0 !important;
1388
+ }
1389
+
1390
+ .flex-shrink-1 {
1391
+ -ms-flex-negative: 1 !important;
1392
+ flex-shrink: 1 !important;
1393
+ }
1394
+
1395
  .justify-content-start {
 
1396
  -ms-flex-pack: start !important;
1397
  justify-content: flex-start !important;
1398
  }
1399
 
1400
  .justify-content-end {
 
1401
  -ms-flex-pack: end !important;
1402
  justify-content: flex-end !important;
1403
  }
1404
 
1405
  .justify-content-center {
 
1406
  -ms-flex-pack: center !important;
1407
  justify-content: center !important;
1408
  }
1409
 
1410
  .justify-content-between {
 
1411
  -ms-flex-pack: justify !important;
1412
  justify-content: space-between !important;
1413
  }
1418
  }
1419
 
1420
  .align-items-start {
 
1421
  -ms-flex-align: start !important;
1422
  align-items: flex-start !important;
1423
  }
1424
 
1425
  .align-items-end {
 
1426
  -ms-flex-align: end !important;
1427
  align-items: flex-end !important;
1428
  }
1429
 
1430
  .align-items-center {
 
1431
  -ms-flex-align: center !important;
1432
  align-items: center !important;
1433
  }
1434
 
1435
  .align-items-baseline {
 
1436
  -ms-flex-align: baseline !important;
1437
  align-items: baseline !important;
1438
  }
1439
 
1440
  .align-items-stretch {
 
1441
  -ms-flex-align: stretch !important;
1442
  align-items: stretch !important;
1443
  }
1504
 
1505
  @media (min-width: 576px) {
1506
  .flex-sm-row {
 
 
1507
  -ms-flex-direction: row !important;
1508
  flex-direction: row !important;
1509
  }
1510
  .flex-sm-column {
 
 
1511
  -ms-flex-direction: column !important;
1512
  flex-direction: column !important;
1513
  }
1514
  .flex-sm-row-reverse {
 
 
1515
  -ms-flex-direction: row-reverse !important;
1516
  flex-direction: row-reverse !important;
1517
  }
1518
  .flex-sm-column-reverse {
 
 
1519
  -ms-flex-direction: column-reverse !important;
1520
  flex-direction: column-reverse !important;
1521
  }
1531
  -ms-flex-wrap: wrap-reverse !important;
1532
  flex-wrap: wrap-reverse !important;
1533
  }
1534
+ .flex-sm-fill {
1535
+ -ms-flex: 1 1 auto !important;
1536
+ flex: 1 1 auto !important;
1537
+ }
1538
+ .flex-sm-grow-0 {
1539
+ -ms-flex-positive: 0 !important;
1540
+ flex-grow: 0 !important;
1541
+ }
1542
+ .flex-sm-grow-1 {
1543
+ -ms-flex-positive: 1 !important;
1544
+ flex-grow: 1 !important;
1545
+ }
1546
+ .flex-sm-shrink-0 {
1547
+ -ms-flex-negative: 0 !important;
1548
+ flex-shrink: 0 !important;
1549
+ }
1550
+ .flex-sm-shrink-1 {
1551
+ -ms-flex-negative: 1 !important;
1552
+ flex-shrink: 1 !important;
1553
+ }
1554
  .justify-content-sm-start {
 
1555
  -ms-flex-pack: start !important;
1556
  justify-content: flex-start !important;
1557
  }
1558
  .justify-content-sm-end {
 
1559
  -ms-flex-pack: end !important;
1560
  justify-content: flex-end !important;
1561
  }
1562
  .justify-content-sm-center {
 
1563
  -ms-flex-pack: center !important;
1564
  justify-content: center !important;
1565
  }
1566
  .justify-content-sm-between {
 
1567
  -ms-flex-pack: justify !important;
1568
  justify-content: space-between !important;
1569
  }
1572
  justify-content: space-around !important;
1573
  }
1574
  .align-items-sm-start {
 
1575
  -ms-flex-align: start !important;
1576
  align-items: flex-start !important;
1577
  }
1578
  .align-items-sm-end {
 
1579
  -ms-flex-align: end !important;
1580
  align-items: flex-end !important;
1581
  }
1582
  .align-items-sm-center {
 
1583
  -ms-flex-align: center !important;
1584
  align-items: center !important;
1585
  }
1586
  .align-items-sm-baseline {
 
1587
  -ms-flex-align: baseline !important;
1588
  align-items: baseline !important;
1589
  }
1590
  .align-items-sm-stretch {
 
1591
  -ms-flex-align: stretch !important;
1592
  align-items: stretch !important;
1593
  }
1643
 
1644
  @media (min-width: 768px) {
1645
  .flex-md-row {
 
 
1646
  -ms-flex-direction: row !important;
1647
  flex-direction: row !important;
1648
  }
1649
  .flex-md-column {
 
 
1650
  -ms-flex-direction: column !important;
1651
  flex-direction: column !important;
1652
  }
1653
  .flex-md-row-reverse {
 
 
1654
  -ms-flex-direction: row-reverse !important;
1655
  flex-direction: row-reverse !important;
1656
  }
1657
  .flex-md-column-reverse {
 
 
1658
  -ms-flex-direction: column-reverse !important;
1659
  flex-direction: column-reverse !important;
1660
  }
1670
  -ms-flex-wrap: wrap-reverse !important;
1671
  flex-wrap: wrap-reverse !important;
1672
  }
1673
+ .flex-md-fill {
1674
+ -ms-flex: 1 1 auto !important;
1675
+ flex: 1 1 auto !important;
1676
+ }
1677
+ .flex-md-grow-0 {
1678
+ -ms-flex-positive: 0 !important;
1679
+ flex-grow: 0 !important;
1680
+ }
1681
+ .flex-md-grow-1 {
1682
+ -ms-flex-positive: 1 !important;
1683
+ flex-grow: 1 !important;
1684
+ }
1685
+ .flex-md-shrink-0 {
1686
+ -ms-flex-negative: 0 !important;
1687
+ flex-shrink: 0 !important;
1688
+ }
1689
+ .flex-md-shrink-1 {
1690
+ -ms-flex-negative: 1 !important;
1691
+ flex-shrink: 1 !important;
1692
+ }
1693
  .justify-content-md-start {
 
1694
  -ms-flex-pack: start !important;
1695
  justify-content: flex-start !important;
1696
  }
1697
  .justify-content-md-end {
 
1698
  -ms-flex-pack: end !important;
1699
  justify-content: flex-end !important;
1700
  }
1701
  .justify-content-md-center {
 
1702
  -ms-flex-pack: center !important;
1703
  justify-content: center !important;
1704
  }
1705
  .justify-content-md-between {
 
1706
  -ms-flex-pack: justify !important;
1707
  justify-content: space-between !important;
1708
  }
1711
  justify-content: space-around !important;
1712
  }
1713
  .align-items-md-start {
 
1714
  -ms-flex-align: start !important;
1715
  align-items: flex-start !important;
1716
  }
1717
  .align-items-md-end {
 
1718
  -ms-flex-align: end !important;
1719
  align-items: flex-end !important;
1720
  }
1721
  .align-items-md-center {
 
1722
  -ms-flex-align: center !important;
1723
  align-items: center !important;
1724
  }
1725
  .align-items-md-baseline {
 
1726
  -ms-flex-align: baseline !important;
1727
  align-items: baseline !important;
1728
  }
1729
  .align-items-md-stretch {
 
1730
  -ms-flex-align: stretch !important;
1731
  align-items: stretch !important;
1732
  }
1782
 
1783
  @media (min-width: 992px) {
1784
  .flex-lg-row {
 
 
1785
  -ms-flex-direction: row !important;
1786
  flex-direction: row !important;
1787
  }
1788
  .flex-lg-column {
 
 
1789
  -ms-flex-direction: column !important;
1790
  flex-direction: column !important;
1791
  }
1792
  .flex-lg-row-reverse {
 
 
1793
  -ms-flex-direction: row-reverse !important;
1794
  flex-direction: row-reverse !important;
1795
  }
1796
  .flex-lg-column-reverse {
 
 
1797
  -ms-flex-direction: column-reverse !important;
1798
  flex-direction: column-reverse !important;
1799
  }
1809
  -ms-flex-wrap: wrap-reverse !important;
1810
  flex-wrap: wrap-reverse !important;
1811
  }
1812
+ .flex-lg-fill {
1813
+ -ms-flex: 1 1 auto !important;
1814
+ flex: 1 1 auto !important;
1815
+ }
1816
+ .flex-lg-grow-0 {
1817
+ -ms-flex-positive: 0 !important;
1818
+ flex-grow: 0 !important;
1819
+ }
1820
+ .flex-lg-grow-1 {
1821
+ -ms-flex-positive: 1 !important;
1822
+ flex-grow: 1 !important;
1823
+ }
1824
+ .flex-lg-shrink-0 {
1825
+ -ms-flex-negative: 0 !important;
1826
+ flex-shrink: 0 !important;
1827
+ }
1828
+ .flex-lg-shrink-1 {
1829
+ -ms-flex-negative: 1 !important;
1830
+ flex-shrink: 1 !important;
1831
+ }
1832
  .justify-content-lg-start {
 
1833
  -ms-flex-pack: start !important;
1834
  justify-content: flex-start !important;
1835
  }
1836
  .justify-content-lg-end {
 
1837
  -ms-flex-pack: end !important;
1838
  justify-content: flex-end !important;
1839
  }
1840
  .justify-content-lg-center {
 
1841
  -ms-flex-pack: center !important;
1842
  justify-content: center !important;
1843
  }
1844
  .justify-content-lg-between {
 
1845
  -ms-flex-pack: justify !important;
1846
  justify-content: space-between !important;
1847
  }
1850
  justify-content: space-around !important;
1851
  }
1852
  .align-items-lg-start {
 
1853
  -ms-flex-align: start !important;
1854
  align-items: flex-start !important;
1855
  }
1856
  .align-items-lg-end {
 
1857
  -ms-flex-align: end !important;
1858
  align-items: flex-end !important;
1859
  }
1860
  .align-items-lg-center {
 
1861
  -ms-flex-align: center !important;
1862
  align-items: center !important;
1863
  }
1864
  .align-items-lg-baseline {
 
1865
  -ms-flex-align: baseline !important;
1866
  align-items: baseline !important;
1867
  }
1868
  .align-items-lg-stretch {
 
1869
  -ms-flex-align: stretch !important;
1870
  align-items: stretch !important;
1871
  }
1921
 
1922
  @media (min-width: 1200px) {
1923
  .flex-xl-row {
 
 
1924
  -ms-flex-direction: row !important;
1925
  flex-direction: row !important;
1926
  }
1927
  .flex-xl-column {
 
 
1928
  -ms-flex-direction: column !important;
1929
  flex-direction: column !important;
1930
  }
1931
  .flex-xl-row-reverse {
 
 
1932
  -ms-flex-direction: row-reverse !important;
1933
  flex-direction: row-reverse !important;
1934
  }
1935
  .flex-xl-column-reverse {
 
 
1936
  -ms-flex-direction: column-reverse !important;
1937
  flex-direction: column-reverse !important;
1938
  }
1948
  -ms-flex-wrap: wrap-reverse !important;
1949
  flex-wrap: wrap-reverse !important;
1950
  }
1951
+ .flex-xl-fill {
1952
+ -ms-flex: 1 1 auto !important;
1953
+ flex: 1 1 auto !important;
1954
+ }
1955
+ .flex-xl-grow-0 {
1956
+ -ms-flex-positive: 0 !important;
1957
+ flex-grow: 0 !important;
1958
+ }
1959
+ .flex-xl-grow-1 {
1960
+ -ms-flex-positive: 1 !important;
1961
+ flex-grow: 1 !important;
1962
+ }
1963
+ .flex-xl-shrink-0 {
1964
+ -ms-flex-negative: 0 !important;
1965
+ flex-shrink: 0 !important;
1966
+ }
1967
+ .flex-xl-shrink-1 {
1968
+ -ms-flex-negative: 1 !important;
1969
+ flex-shrink: 1 !important;
1970
+ }
1971
  .justify-content-xl-start {
 
1972
  -ms-flex-pack: start !important;
1973
  justify-content: flex-start !important;
1974
  }
1975
  .justify-content-xl-end {
 
1976
  -ms-flex-pack: end !important;
1977
  justify-content: flex-end !important;
1978
  }
1979
  .justify-content-xl-center {
 
1980
  -ms-flex-pack: center !important;
1981
  justify-content: center !important;
1982
  }
1983
  .justify-content-xl-between {
 
1984
  -ms-flex-pack: justify !important;
1985
  justify-content: space-between !important;
1986
  }
1989
  justify-content: space-around !important;
1990
  }
1991
  .align-items-xl-start {
 
1992
  -ms-flex-align: start !important;
1993
  align-items: flex-start !important;
1994
  }
1995
  .align-items-xl-end {
 
1996
  -ms-flex-align: end !important;
1997
  align-items: flex-end !important;
1998
  }
1999
  .align-items-xl-center {
 
2000
  -ms-flex-align: center !important;
2001
  align-items: center !important;
2002
  }
2003
  .align-items-xl-baseline {
 
2004
  -ms-flex-align: baseline !important;
2005
  align-items: baseline !important;
2006
  }
2007
  .align-items-xl-stretch {
 
2008
  -ms-flex-align: stretch !important;
2009
  align-items: stretch !important;
2010
  }
2057
  align-self: stretch !important;
2058
  }
2059
  }
2060
+
2061
+ .m-0 {
2062
+ margin: 0 !important;
2063
+ }
2064
+
2065
+ .mt-0,
2066
+ .my-0 {
2067
+ margin-top: 0 !important;
2068
+ }
2069
+
2070
+ .mr-0,
2071
+ .mx-0 {
2072
+ margin-right: 0 !important;
2073
+ }
2074
+
2075
+ .mb-0,
2076
+ .my-0 {
2077
+ margin-bottom: 0 !important;
2078
+ }
2079
+
2080
+ .ml-0,
2081
+ .mx-0 {
2082
+ margin-left: 0 !important;
2083
+ }
2084
+
2085
+ .m-1 {
2086
+ margin: 0.25rem !important;
2087
+ }
2088
+
2089
+ .mt-1,
2090
+ .my-1 {
2091
+ margin-top: 0.25rem !important;
2092
+ }
2093
+
2094
+ .mr-1,
2095
+ .mx-1 {
2096
+ margin-right: 0.25rem !important;
2097
+ }
2098
+
2099
+ .mb-1,
2100
+ .my-1 {
2101
+ margin-bottom: 0.25rem !important;
2102
+ }
2103
+
2104
+ .ml-1,
2105
+ .mx-1 {
2106
+ margin-left: 0.25rem !important;
2107
+ }
2108
+
2109
+ .m-2 {
2110
+ margin: 0.5rem !important;
2111
+ }
2112
+
2113
+ .mt-2,
2114
+ .my-2 {
2115
+ margin-top: 0.5rem !important;
2116
+ }
2117
+
2118
+ .mr-2,
2119
+ .mx-2 {
2120
+ margin-right: 0.5rem !important;
2121
+ }
2122
+
2123
+ .mb-2,
2124
+ .my-2 {
2125
+ margin-bottom: 0.5rem !important;
2126
+ }
2127
+
2128
+ .ml-2,
2129
+ .mx-2 {
2130
+ margin-left: 0.5rem !important;
2131
+ }
2132
+
2133
+ .m-3 {
2134
+ margin: 1rem !important;
2135
+ }
2136
+
2137
+ .mt-3,
2138
+ .my-3 {
2139
+ margin-top: 1rem !important;
2140
+ }
2141
+
2142
+ .mr-3,
2143
+ .mx-3 {
2144
+ margin-right: 1rem !important;
2145
+ }
2146
+
2147
+ .mb-3,
2148
+ .my-3 {
2149
+ margin-bottom: 1rem !important;
2150
+ }
2151
+
2152
+ .ml-3,
2153
+ .mx-3 {
2154
+ margin-left: 1rem !important;
2155
+ }
2156
+
2157
+ .m-4 {
2158
+ margin: 1.5rem !important;
2159
+ }
2160
+
2161
+ .mt-4,
2162
+ .my-4 {
2163
+ margin-top: 1.5rem !important;
2164
+ }
2165
+
2166
+ .mr-4,
2167
+ .mx-4 {
2168
+ margin-right: 1.5rem !important;
2169
+ }
2170
+
2171
+ .mb-4,
2172
+ .my-4 {
2173
+ margin-bottom: 1.5rem !important;
2174
+ }
2175
+
2176
+ .ml-4,
2177
+ .mx-4 {
2178
+ margin-left: 1.5rem !important;
2179
+ }
2180
+
2181
+ .m-5 {
2182
+ margin: 3rem !important;
2183
+ }
2184
+
2185
+ .mt-5,
2186
+ .my-5 {
2187
+ margin-top: 3rem !important;
2188
+ }
2189
+
2190
+ .mr-5,
2191
+ .mx-5 {
2192
+ margin-right: 3rem !important;
2193
+ }
2194
+
2195
+ .mb-5,
2196
+ .my-5 {
2197
+ margin-bottom: 3rem !important;
2198
+ }
2199
+
2200
+ .ml-5,
2201
+ .mx-5 {
2202
+ margin-left: 3rem !important;
2203
+ }
2204
+
2205
+ .p-0 {
2206
+ padding: 0 !important;
2207
+ }
2208
+
2209
+ .pt-0,
2210
+ .py-0 {
2211
+ padding-top: 0 !important;
2212
+ }
2213
+
2214
+ .pr-0,
2215
+ .px-0 {
2216
+ padding-right: 0 !important;
2217
+ }
2218
+
2219
+ .pb-0,
2220
+ .py-0 {
2221
+ padding-bottom: 0 !important;
2222
+ }
2223
+
2224
+ .pl-0,
2225
+ .px-0 {
2226
+ padding-left: 0 !important;
2227
+ }
2228
+
2229
+ .p-1 {
2230
+ padding: 0.25rem !important;
2231
+ }
2232
+
2233
+ .pt-1,
2234
+ .py-1 {
2235
+ padding-top: 0.25rem !important;
2236
+ }
2237
+
2238
+ .pr-1,
2239
+ .px-1 {
2240
+ padding-right: 0.25rem !important;
2241
+ }
2242
+
2243
+ .pb-1,
2244
+ .py-1 {
2245
+ padding-bottom: 0.25rem !important;
2246
+ }
2247
+
2248
+ .pl-1,
2249
+ .px-1 {
2250
+ padding-left: 0.25rem !important;
2251
+ }
2252
+
2253
+ .p-2 {
2254
+ padding: 0.5rem !important;
2255
+ }
2256
+
2257
+ .pt-2,
2258
+ .py-2 {
2259
+ padding-top: 0.5rem !important;
2260
+ }
2261
+
2262
+ .pr-2,
2263
+ .px-2 {
2264
+ padding-right: 0.5rem !important;
2265
+ }
2266
+
2267
+ .pb-2,
2268
+ .py-2 {
2269
+ padding-bottom: 0.5rem !important;
2270
+ }
2271
+
2272
+ .pl-2,
2273
+ .px-2 {
2274
+ padding-left: 0.5rem !important;
2275
+ }
2276
+
2277
+ .p-3 {
2278
+ padding: 1rem !important;
2279
+ }
2280
+
2281
+ .pt-3,
2282
+ .py-3 {
2283
+ padding-top: 1rem !important;
2284
+ }
2285
+
2286
+ .pr-3,
2287
+ .px-3 {
2288
+ padding-right: 1rem !important;
2289
+ }
2290
+
2291
+ .pb-3,
2292
+ .py-3 {
2293
+ padding-bottom: 1rem !important;
2294
+ }
2295
+
2296
+ .pl-3,
2297
+ .px-3 {
2298
+ padding-left: 1rem !important;
2299
+ }
2300
+
2301
+ .p-4 {
2302
+ padding: 1.5rem !important;
2303
+ }
2304
+
2305
+ .pt-4,
2306
+ .py-4 {
2307
+ padding-top: 1.5rem !important;
2308
+ }
2309
+
2310
+ .pr-4,
2311
+ .px-4 {
2312
+ padding-right: 1.5rem !important;
2313
+ }
2314
+
2315
+ .pb-4,
2316
+ .py-4 {
2317
+ padding-bottom: 1.5rem !important;
2318
+ }
2319
+
2320
+ .pl-4,
2321
+ .px-4 {
2322
+ padding-left: 1.5rem !important;
2323
+ }
2324
+
2325
+ .p-5 {
2326
+ padding: 3rem !important;
2327
+ }
2328
+
2329
+ .pt-5,
2330
+ .py-5 {
2331
+ padding-top: 3rem !important;
2332
+ }
2333
+
2334
+ .pr-5,
2335
+ .px-5 {
2336
+ padding-right: 3rem !important;
2337
+ }
2338
+
2339
+ .pb-5,
2340
+ .py-5 {
2341
+ padding-bottom: 3rem !important;
2342
+ }
2343
+
2344
+ .pl-5,
2345
+ .px-5 {
2346
+ padding-left: 3rem !important;
2347
+ }
2348
+
2349
+ .m-n1 {
2350
+ margin: -0.25rem !important;
2351
+ }
2352
+
2353
+ .mt-n1,
2354
+ .my-n1 {
2355
+ margin-top: -0.25rem !important;
2356
+ }
2357
+
2358
+ .mr-n1,
2359
+ .mx-n1 {
2360
+ margin-right: -0.25rem !important;
2361
+ }
2362
+
2363
+ .mb-n1,
2364
+ .my-n1 {
2365
+ margin-bottom: -0.25rem !important;
2366
+ }
2367
+
2368
+ .ml-n1,
2369
+ .mx-n1 {
2370
+ margin-left: -0.25rem !important;
2371
+ }
2372
+
2373
+ .m-n2 {
2374
+ margin: -0.5rem !important;
2375
+ }
2376
+
2377
+ .mt-n2,
2378
+ .my-n2 {
2379
+ margin-top: -0.5rem !important;
2380
+ }
2381
+
2382
+ .mr-n2,
2383
+ .mx-n2 {
2384
+ margin-right: -0.5rem !important;
2385
+ }
2386
+
2387
+ .mb-n2,
2388
+ .my-n2 {
2389
+ margin-bottom: -0.5rem !important;
2390
+ }
2391
+
2392
+ .ml-n2,
2393
+ .mx-n2 {
2394
+ margin-left: -0.5rem !important;
2395
+ }
2396
+
2397
+ .m-n3 {
2398
+ margin: -1rem !important;
2399
+ }
2400
+
2401
+ .mt-n3,
2402
+ .my-n3 {
2403
+ margin-top: -1rem !important;
2404
+ }
2405
+
2406
+ .mr-n3,
2407
+ .mx-n3 {
2408
+ margin-right: -1rem !important;
2409
+ }
2410
+
2411
+ .mb-n3,
2412
+ .my-n3 {
2413
+ margin-bottom: -1rem !important;
2414
+ }
2415
+
2416
+ .ml-n3,
2417
+ .mx-n3 {
2418
+ margin-left: -1rem !important;
2419
+ }
2420
+
2421
+ .m-n4 {
2422
+ margin: -1.5rem !important;
2423
+ }
2424
+
2425
+ .mt-n4,
2426
+ .my-n4 {
2427
+ margin-top: -1.5rem !important;
2428
+ }
2429
+
2430
+ .mr-n4,
2431
+ .mx-n4 {
2432
+ margin-right: -1.5rem !important;
2433
+ }
2434
+
2435
+ .mb-n4,
2436
+ .my-n4 {
2437
+ margin-bottom: -1.5rem !important;
2438
+ }
2439
+
2440
+ .ml-n4,
2441
+ .mx-n4 {
2442
+ margin-left: -1.5rem !important;
2443
+ }
2444
+
2445
+ .m-n5 {
2446
+ margin: -3rem !important;
2447
+ }
2448
+
2449
+ .mt-n5,
2450
+ .my-n5 {
2451
+ margin-top: -3rem !important;
2452
+ }
2453
+
2454
+ .mr-n5,
2455
+ .mx-n5 {
2456
+ margin-right: -3rem !important;
2457
+ }
2458
+
2459
+ .mb-n5,
2460
+ .my-n5 {
2461
+ margin-bottom: -3rem !important;
2462
+ }
2463
+
2464
+ .ml-n5,
2465
+ .mx-n5 {
2466
+ margin-left: -3rem !important;
2467
+ }
2468
+
2469
+ .m-auto {
2470
+ margin: auto !important;
2471
+ }
2472
+
2473
+ .mt-auto,
2474
+ .my-auto {
2475
+ margin-top: auto !important;
2476
+ }
2477
+
2478
+ .mr-auto,
2479
+ .mx-auto {
2480
+ margin-right: auto !important;
2481
+ }
2482
+
2483
+ .mb-auto,
2484
+ .my-auto {
2485
+ margin-bottom: auto !important;
2486
+ }
2487
+
2488
+ .ml-auto,
2489
+ .mx-auto {
2490
+ margin-left: auto !important;
2491
+ }
2492
+
2493
+ @media (min-width: 576px) {
2494
+ .m-sm-0 {
2495
+ margin: 0 !important;
2496
+ }
2497
+ .mt-sm-0,
2498
+ .my-sm-0 {
2499
+ margin-top: 0 !important;
2500
+ }
2501
+ .mr-sm-0,
2502
+ .mx-sm-0 {
2503
+ margin-right: 0 !important;
2504
+ }
2505
+ .mb-sm-0,
2506
+ .my-sm-0 {
2507
+ margin-bottom: 0 !important;
2508
+ }
2509
+ .ml-sm-0,
2510
+ .mx-sm-0 {
2511
+ margin-left: 0 !important;
2512
+ }
2513
+ .m-sm-1 {
2514
+ margin: 0.25rem !important;
2515
+ }
2516
+ .mt-sm-1,
2517
+ .my-sm-1 {
2518
+ margin-top: 0.25rem !important;
2519
+ }
2520
+ .mr-sm-1,
2521
+ .mx-sm-1 {
2522
+ margin-right: 0.25rem !important;
2523
+ }
2524
+ .mb-sm-1,
2525
+ .my-sm-1 {
2526
+ margin-bottom: 0.25rem !important;
2527
+ }
2528
+ .ml-sm-1,
2529
+ .mx-sm-1 {
2530
+ margin-left: 0.25rem !important;
2531
+ }
2532
+ .m-sm-2 {
2533
+ margin: 0.5rem !important;
2534
+ }
2535
+ .mt-sm-2,
2536
+ .my-sm-2 {
2537
+ margin-top: 0.5rem !important;
2538
+ }
2539
+ .mr-sm-2,
2540
+ .mx-sm-2 {
2541
+ margin-right: 0.5rem !important;
2542
+ }
2543
+ .mb-sm-2,
2544
+ .my-sm-2 {
2545
+ margin-bottom: 0.5rem !important;
2546
+ }
2547
+ .ml-sm-2,
2548
+ .mx-sm-2 {
2549
+ margin-left: 0.5rem !important;
2550
+ }
2551
+ .m-sm-3 {
2552
+ margin: 1rem !important;
2553
+ }
2554
+ .mt-sm-3,
2555
+ .my-sm-3 {
2556
+ margin-top: 1rem !important;
2557
+ }
2558
+ .mr-sm-3,
2559
+ .mx-sm-3 {
2560
+ margin-right: 1rem !important;
2561
+ }
2562
+ .mb-sm-3,
2563
+ .my-sm-3 {
2564
+ margin-bottom: 1rem !important;
2565
+ }
2566
+ .ml-sm-3,
2567
+ .mx-sm-3 {
2568
+ margin-left: 1rem !important;
2569
+ }
2570
+ .m-sm-4 {
2571
+ margin: 1.5rem !important;
2572
+ }
2573
+ .mt-sm-4,
2574
+ .my-sm-4 {
2575
+ margin-top: 1.5rem !important;
2576
+ }
2577
+ .mr-sm-4,
2578
+ .mx-sm-4 {
2579
+ margin-right: 1.5rem !important;
2580
+ }
2581
+ .mb-sm-4,
2582
+ .my-sm-4 {
2583
+ margin-bottom: 1.5rem !important;
2584
+ }
2585
+ .ml-sm-4,
2586
+ .mx-sm-4 {
2587
+ margin-left: 1.5rem !important;
2588
+ }
2589
+ .m-sm-5 {
2590
+ margin: 3rem !important;
2591
+ }
2592
+ .mt-sm-5,
2593
+ .my-sm-5 {
2594
+ margin-top: 3rem !important;
2595
+ }
2596
+ .mr-sm-5,
2597
+ .mx-sm-5 {
2598
+ margin-right: 3rem !important;
2599
+ }
2600
+ .mb-sm-5,
2601
+ .my-sm-5 {
2602
+ margin-bottom: 3rem !important;
2603
+ }
2604
+ .ml-sm-5,
2605
+ .mx-sm-5 {
2606
+ margin-left: 3rem !important;
2607
+ }
2608
+ .p-sm-0 {
2609
+ padding: 0 !important;
2610
+ }
2611
+ .pt-sm-0,
2612
+ .py-sm-0 {
2613
+ padding-top: 0 !important;
2614
+ }
2615
+ .pr-sm-0,
2616
+ .px-sm-0 {
2617
+ padding-right: 0 !important;
2618
+ }
2619
+ .pb-sm-0,
2620
+ .py-sm-0 {
2621
+ padding-bottom: 0 !important;
2622
+ }
2623
+ .pl-sm-0,
2624
+ .px-sm-0 {
2625
+ padding-left: 0 !important;
2626
+ }
2627
+ .p-sm-1 {
2628
+ padding: 0.25rem !important;
2629
+ }
2630
+ .pt-sm-1,
2631
+ .py-sm-1 {
2632
+ padding-top: 0.25rem !important;
2633
+ }
2634
+ .pr-sm-1,
2635
+ .px-sm-1 {
2636
+ padding-right: 0.25rem !important;
2637
+ }
2638
+ .pb-sm-1,
2639
+ .py-sm-1 {
2640
+ padding-bottom: 0.25rem !important;
2641
+ }
2642
+ .pl-sm-1,
2643
+ .px-sm-1 {
2644
+ padding-left: 0.25rem !important;
2645
+ }
2646
+ .p-sm-2 {
2647
+ padding: 0.5rem !important;
2648
+ }
2649
+ .pt-sm-2,
2650
+ .py-sm-2 {
2651
+ padding-top: 0.5rem !important;
2652
+ }
2653
+ .pr-sm-2,
2654
+ .px-sm-2 {
2655
+ padding-right: 0.5rem !important;
2656
+ }
2657
+ .pb-sm-2,
2658
+ .py-sm-2 {
2659
+ padding-bottom: 0.5rem !important;
2660
+ }
2661
+ .pl-sm-2,
2662
+ .px-sm-2 {
2663
+ padding-left: 0.5rem !important;
2664
+ }
2665
+ .p-sm-3 {
2666
+ padding: 1rem !important;
2667
+ }
2668
+ .pt-sm-3,
2669
+ .py-sm-3 {
2670
+ padding-top: 1rem !important;
2671
+ }
2672
+ .pr-sm-3,
2673
+ .px-sm-3 {
2674
+ padding-right: 1rem !important;
2675
+ }
2676
+ .pb-sm-3,
2677
+ .py-sm-3 {
2678
+ padding-bottom: 1rem !important;
2679
+ }
2680
+ .pl-sm-3,
2681
+ .px-sm-3 {
2682
+ padding-left: 1rem !important;
2683
+ }
2684
+ .p-sm-4 {
2685
+ padding: 1.5rem !important;
2686
+ }
2687
+ .pt-sm-4,
2688
+ .py-sm-4 {
2689
+ padding-top: 1.5rem !important;
2690
+ }
2691
+ .pr-sm-4,
2692
+ .px-sm-4 {
2693
+ padding-right: 1.5rem !important;
2694
+ }
2695
+ .pb-sm-4,
2696
+ .py-sm-4 {
2697
+ padding-bottom: 1.5rem !important;
2698
+ }
2699
+ .pl-sm-4,
2700
+ .px-sm-4 {
2701
+ padding-left: 1.5rem !important;
2702
+ }
2703
+ .p-sm-5 {
2704
+ padding: 3rem !important;
2705
+ }
2706
+ .pt-sm-5,
2707
+ .py-sm-5 {
2708
+ padding-top: 3rem !important;
2709
+ }
2710
+ .pr-sm-5,
2711
+ .px-sm-5 {
2712
+ padding-right: 3rem !important;
2713
+ }
2714
+ .pb-sm-5,
2715
+ .py-sm-5 {
2716
+ padding-bottom: 3rem !important;
2717
+ }
2718
+ .pl-sm-5,
2719
+ .px-sm-5 {
2720
+ padding-left: 3rem !important;
2721
+ }
2722
+ .m-sm-n1 {
2723
+ margin: -0.25rem !important;
2724
+ }
2725
+ .mt-sm-n1,
2726
+ .my-sm-n1 {
2727
+ margin-top: -0.25rem !important;
2728
+ }
2729
+ .mr-sm-n1,
2730
+ .mx-sm-n1 {
2731
+ margin-right: -0.25rem !important;
2732
+ }
2733
+ .mb-sm-n1,
2734
+ .my-sm-n1 {
2735
+ margin-bottom: -0.25rem !important;
2736
+ }
2737
+ .ml-sm-n1,
2738
+ .mx-sm-n1 {
2739
+ margin-left: -0.25rem !important;
2740
+ }
2741
+ .m-sm-n2 {
2742
+ margin: -0.5rem !important;
2743
+ }
2744
+ .mt-sm-n2,
2745
+ .my-sm-n2 {
2746
+ margin-top: -0.5rem !important;
2747
+ }
2748
+ .mr-sm-n2,
2749
+ .mx-sm-n2 {
2750
+ margin-right: -0.5rem !important;
2751
+ }
2752
+ .mb-sm-n2,
2753
+ .my-sm-n2 {
2754
+ margin-bottom: -0.5rem !important;
2755
+ }
2756
+ .ml-sm-n2,
2757
+ .mx-sm-n2 {
2758
+ margin-left: -0.5rem !important;
2759
+ }
2760
+ .m-sm-n3 {
2761
+ margin: -1rem !important;
2762
+ }
2763
+ .mt-sm-n3,
2764
+ .my-sm-n3 {
2765
+ margin-top: -1rem !important;
2766
+ }
2767
+ .mr-sm-n3,
2768
+ .mx-sm-n3 {
2769
+ margin-right: -1rem !important;
2770
+ }
2771
+ .mb-sm-n3,
2772
+ .my-sm-n3 {
2773
+ margin-bottom: -1rem !important;
2774
+ }
2775
+ .ml-sm-n3,
2776
+ .mx-sm-n3 {
2777
+ margin-left: -1rem !important;
2778
+ }
2779
+ .m-sm-n4 {
2780
+ margin: -1.5rem !important;
2781
+ }
2782
+ .mt-sm-n4,
2783
+ .my-sm-n4 {
2784
+ margin-top: -1.5rem !important;
2785
+ }
2786
+ .mr-sm-n4,
2787
+ .mx-sm-n4 {
2788
+ margin-right: -1.5rem !important;
2789
+ }
2790
+ .mb-sm-n4,
2791
+ .my-sm-n4 {
2792
+ margin-bottom: -1.5rem !important;
2793
+ }
2794
+ .ml-sm-n4,
2795
+ .mx-sm-n4 {
2796
+ margin-left: -1.5rem !important;
2797
+ }
2798
+ .m-sm-n5 {
2799
+ margin: -3rem !important;
2800
+ }
2801
+ .mt-sm-n5,
2802
+ .my-sm-n5 {
2803
+ margin-top: -3rem !important;
2804
+ }
2805
+ .mr-sm-n5,
2806
+ .mx-sm-n5 {
2807
+ margin-right: -3rem !important;
2808
+ }
2809
+ .mb-sm-n5,
2810
+ .my-sm-n5 {
2811
+ margin-bottom: -3rem !important;
2812
+ }
2813
+ .ml-sm-n5,
2814
+ .mx-sm-n5 {
2815
+ margin-left: -3rem !important;
2816
+ }
2817
+ .m-sm-auto {
2818
+ margin: auto !important;
2819
+ }
2820
+ .mt-sm-auto,
2821
+ .my-sm-auto {
2822
+ margin-top: auto !important;
2823
+ }
2824
+ .mr-sm-auto,
2825
+ .mx-sm-auto {
2826
+ margin-right: auto !important;
2827
+ }
2828
+ .mb-sm-auto,
2829
+ .my-sm-auto {
2830
+ margin-bottom: auto !important;
2831
+ }
2832
+ .ml-sm-auto,
2833
+ .mx-sm-auto {
2834
+ margin-left: auto !important;
2835
+ }
2836
+ }
2837
+
2838
+ @media (min-width: 768px) {
2839
+ .m-md-0 {
2840
+ margin: 0 !important;
2841
+ }
2842
+ .mt-md-0,
2843
+ .my-md-0 {
2844
+ margin-top: 0 !important;
2845
+ }
2846
+ .mr-md-0,
2847
+ .mx-md-0 {
2848
+ margin-right: 0 !important;
2849
+ }
2850
+ .mb-md-0,
2851
+ .my-md-0 {
2852
+ margin-bottom: 0 !important;
2853
+ }
2854
+ .ml-md-0,
2855
+ .mx-md-0 {
2856
+ margin-left: 0 !important;
2857
+ }
2858
+ .m-md-1 {
2859
+ margin: 0.25rem !important;
2860
+ }
2861
+ .mt-md-1,
2862
+ .my-md-1 {
2863
+ margin-top: 0.25rem !important;
2864
+ }
2865
+ .mr-md-1,
2866
+ .mx-md-1 {
2867
+ margin-right: 0.25rem !important;
2868
+ }
2869
+ .mb-md-1,
2870
+ .my-md-1 {
2871
+ margin-bottom: 0.25rem !important;
2872
+ }
2873
+ .ml-md-1,
2874
+ .mx-md-1 {
2875
+ margin-left: 0.25rem !important;
2876
+ }
2877
+ .m-md-2 {
2878
+ margin: 0.5rem !important;
2879
+ }
2880
+ .mt-md-2,
2881
+ .my-md-2 {
2882
+ margin-top: 0.5rem !important;
2883
+ }
2884
+ .mr-md-2,
2885
+ .mx-md-2 {
2886
+ margin-right: 0.5rem !important;
2887
+ }
2888
+ .mb-md-2,
2889
+ .my-md-2 {
2890
+ margin-bottom: 0.5rem !important;
2891
+ }
2892
+ .ml-md-2,
2893
+ .mx-md-2 {
2894
+ margin-left: 0.5rem !important;
2895
+ }
2896
+ .m-md-3 {
2897
+ margin: 1rem !important;
2898
+ }
2899
+ .mt-md-3,
2900
+ .my-md-3 {
2901
+ margin-top: 1rem !important;
2902
+ }
2903
+ .mr-md-3,
2904
+ .mx-md-3 {
2905
+ margin-right: 1rem !important;
2906
+ }
2907
+ .mb-md-3,
2908
+ .my-md-3 {
2909
+ margin-bottom: 1rem !important;
2910
+ }
2911
+ .ml-md-3,
2912
+ .mx-md-3 {
2913
+ margin-left: 1rem !important;
2914
+ }
2915
+ .m-md-4 {
2916
+ margin: 1.5rem !important;
2917
+ }
2918
+ .mt-md-4,
2919
+ .my-md-4 {
2920
+ margin-top: 1.5rem !important;
2921
+ }
2922
+ .mr-md-4,
2923
+ .mx-md-4 {
2924
+ margin-right: 1.5rem !important;
2925
+ }
2926
+ .mb-md-4,
2927
+ .my-md-4 {
2928
+ margin-bottom: 1.5rem !important;
2929
+ }
2930
+ .ml-md-4,
2931
+ .mx-md-4 {
2932
+ margin-left: 1.5rem !important;
2933
+ }
2934
+ .m-md-5 {
2935
+ margin: 3rem !important;
2936
+ }
2937
+ .mt-md-5,
2938
+ .my-md-5 {
2939
+ margin-top: 3rem !important;
2940
+ }
2941
+ .mr-md-5,
2942
+ .mx-md-5 {
2943
+ margin-right: 3rem !important;
2944
+ }
2945
+ .mb-md-5,
2946
+ .my-md-5 {
2947
+ margin-bottom: 3rem !important;
2948
+ }
2949
+ .ml-md-5,
2950
+ .mx-md-5 {
2951
+ margin-left: 3rem !important;
2952
+ }
2953
+ .p-md-0 {
2954
+ padding: 0 !important;
2955
+ }
2956
+ .pt-md-0,
2957
+ .py-md-0 {
2958
+ padding-top: 0 !important;
2959
+ }
2960
+ .pr-md-0,
2961
+ .px-md-0 {
2962
+ padding-right: 0 !important;
2963
+ }
2964
+ .pb-md-0,
2965
+ .py-md-0 {
2966
+ padding-bottom: 0 !important;
2967
+ }
2968
+ .pl-md-0,
2969
+ .px-md-0 {
2970
+ padding-left: 0 !important;
2971
+ }
2972
+ .p-md-1 {
2973
+ padding: 0.25rem !important;
2974
+ }
2975
+ .pt-md-1,
2976
+ .py-md-1 {
2977
+ padding-top: 0.25rem !important;
2978
+ }
2979
+ .pr-md-1,
2980
+ .px-md-1 {
2981
+ padding-right: 0.25rem !important;
2982
+ }
2983
+ .pb-md-1,
2984
+ .py-md-1 {
2985
+ padding-bottom: 0.25rem !important;
2986
+ }
2987
+ .pl-md-1,
2988
+ .px-md-1 {
2989
+ padding-left: 0.25rem !important;
2990
+ }
2991
+ .p-md-2 {
2992
+ padding: 0.5rem !important;
2993
+ }
2994
+ .pt-md-2,
2995
+ .py-md-2 {
2996
+ padding-top: 0.5rem !important;
2997
+ }
2998
+ .pr-md-2,
2999
+ .px-md-2 {
3000
+ padding-right: 0.5rem !important;
3001
+ }
3002
+ .pb-md-2,
3003
+ .py-md-2 {
3004
+ padding-bottom: 0.5rem !important;
3005
+ }
3006
+ .pl-md-2,
3007
+ .px-md-2 {
3008
+ padding-left: 0.5rem !important;
3009
+ }
3010
+ .p-md-3 {
3011
+ padding: 1rem !important;
3012
+ }
3013
+ .pt-md-3,
3014
+ .py-md-3 {
3015
+ padding-top: 1rem !important;
3016
+ }
3017
+ .pr-md-3,
3018
+ .px-md-3 {
3019
+ padding-right: 1rem !important;
3020
+ }
3021
+ .pb-md-3,
3022
+ .py-md-3 {
3023
+ padding-bottom: 1rem !important;
3024
+ }
3025
+ .pl-md-3,
3026
+ .px-md-3 {
3027
+ padding-left: 1rem !important;
3028
+ }
3029
+ .p-md-4 {
3030
+ padding: 1.5rem !important;
3031
+ }
3032
+ .pt-md-4,
3033
+ .py-md-4 {
3034
+ padding-top: 1.5rem !important;
3035
+ }
3036
+ .pr-md-4,
3037
+ .px-md-4 {
3038
+ padding-right: 1.5rem !important;
3039
+ }
3040
+ .pb-md-4,
3041
+ .py-md-4 {
3042
+ padding-bottom: 1.5rem !important;
3043
+ }
3044
+ .pl-md-4,
3045
+ .px-md-4 {
3046
+ padding-left: 1.5rem !important;
3047
+ }
3048
+ .p-md-5 {
3049
+ padding: 3rem !important;
3050
+ }
3051
+ .pt-md-5,
3052
+ .py-md-5 {
3053
+ padding-top: 3rem !important;
3054
+ }
3055
+ .pr-md-5,
3056
+ .px-md-5 {
3057
+ padding-right: 3rem !important;
3058
+ }
3059
+ .pb-md-5,
3060
+ .py-md-5 {
3061
+ padding-bottom: 3rem !important;
3062
+ }
3063
+ .pl-md-5,
3064
+ .px-md-5 {
3065
+ padding-left: 3rem !important;
3066
+ }
3067
+ .m-md-n1 {
3068
+ margin: -0.25rem !important;
3069
+ }
3070
+ .mt-md-n1,
3071
+ .my-md-n1 {
3072
+ margin-top: -0.25rem !important;
3073
+ }
3074
+ .mr-md-n1,
3075
+ .mx-md-n1 {
3076
+ margin-right: -0.25rem !important;
3077
+ }
3078
+ .mb-md-n1,
3079
+ .my-md-n1 {
3080
+ margin-bottom: -0.25rem !important;
3081
+ }
3082
+ .ml-md-n1,
3083
+ .mx-md-n1 {
3084
+ margin-left: -0.25rem !important;
3085
+ }
3086
+ .m-md-n2 {
3087
+ margin: -0.5rem !important;
3088
+ }
3089
+ .mt-md-n2,
3090
+ .my-md-n2 {
3091
+ margin-top: -0.5rem !important;
3092
+ }
3093
+ .mr-md-n2,
3094
+ .mx-md-n2 {
3095
+ margin-right: -0.5rem !important;
3096
+ }
3097
+ .mb-md-n2,
3098
+ .my-md-n2 {
3099
+ margin-bottom: -0.5rem !important;
3100
+ }
3101
+ .ml-md-n2,
3102
+ .mx-md-n2 {
3103
+ margin-left: -0.5rem !important;
3104
+ }
3105
+ .m-md-n3 {
3106
+ margin: -1rem !important;
3107
+ }
3108
+ .mt-md-n3,
3109
+ .my-md-n3 {
3110
+ margin-top: -1rem !important;
3111
+ }
3112
+ .mr-md-n3,
3113
+ .mx-md-n3 {
3114
+ margin-right: -1rem !important;
3115
+ }
3116
+ .mb-md-n3,
3117
+ .my-md-n3 {
3118
+ margin-bottom: -1rem !important;
3119
+ }
3120
+ .ml-md-n3,
3121
+ .mx-md-n3 {
3122
+ margin-left: -1rem !important;
3123
+ }
3124
+ .m-md-n4 {
3125
+ margin: -1.5rem !important;
3126
+ }
3127
+ .mt-md-n4,
3128
+ .my-md-n4 {
3129
+ margin-top: -1.5rem !important;
3130
+ }
3131
+ .mr-md-n4,
3132
+ .mx-md-n4 {
3133
+ margin-right: -1.5rem !important;
3134
+ }
3135
+ .mb-md-n4,
3136
+ .my-md-n4 {
3137
+ margin-bottom: -1.5rem !important;
3138
+ }
3139
+ .ml-md-n4,
3140
+ .mx-md-n4 {
3141
+ margin-left: -1.5rem !important;
3142
+ }
3143
+ .m-md-n5 {
3144
+ margin: -3rem !important;
3145
+ }
3146
+ .mt-md-n5,
3147
+ .my-md-n5 {
3148
+ margin-top: -3rem !important;
3149
+ }
3150
+ .mr-md-n5,
3151
+ .mx-md-n5 {
3152
+ margin-right: -3rem !important;
3153
+ }
3154
+ .mb-md-n5,
3155
+ .my-md-n5 {
3156
+ margin-bottom: -3rem !important;
3157
+ }
3158
+ .ml-md-n5,
3159
+ .mx-md-n5 {
3160
+ margin-left: -3rem !important;
3161
+ }
3162
+ .m-md-auto {
3163
+ margin: auto !important;
3164
+ }
3165
+ .mt-md-auto,
3166
+ .my-md-auto {
3167
+ margin-top: auto !important;
3168
+ }
3169
+ .mr-md-auto,
3170
+ .mx-md-auto {
3171
+ margin-right: auto !important;
3172
+ }
3173
+ .mb-md-auto,
3174
+ .my-md-auto {
3175
+ margin-bottom: auto !important;
3176
+ }
3177
+ .ml-md-auto,
3178
+ .mx-md-auto {
3179
+ margin-left: auto !important;
3180
+ }
3181
+ }
3182
+
3183
+ @media (min-width: 992px) {
3184
+ .m-lg-0 {
3185
+ margin: 0 !important;
3186
+ }
3187
+ .mt-lg-0,
3188
+ .my-lg-0 {
3189
+ margin-top: 0 !important;
3190
+ }
3191
+ .mr-lg-0,
3192
+ .mx-lg-0 {
3193
+ margin-right: 0 !important;
3194
+ }
3195
+ .mb-lg-0,
3196
+ .my-lg-0 {
3197
+ margin-bottom: 0 !important;
3198
+ }
3199
+ .ml-lg-0,
3200
+ .mx-lg-0 {
3201
+ margin-left: 0 !important;
3202
+ }
3203
+ .m-lg-1 {
3204
+ margin: 0.25rem !important;
3205
+ }
3206
+ .mt-lg-1,
3207
+ .my-lg-1 {
3208
+ margin-top: 0.25rem !important;
3209
+ }
3210
+ .mr-lg-1,
3211
+ .mx-lg-1 {
3212
+ margin-right: 0.25rem !important;
3213
+ }
3214
+ .mb-lg-1,
3215
+ .my-lg-1 {
3216
+ margin-bottom: 0.25rem !important;
3217
+ }
3218
+ .ml-lg-1,
3219
+ .mx-lg-1 {
3220
+ margin-left: 0.25rem !important;
3221
+ }
3222
+ .m-lg-2 {
3223
+ margin: 0.5rem !important;
3224
+ }
3225
+ .mt-lg-2,
3226
+ .my-lg-2 {
3227
+ margin-top: 0.5rem !important;
3228
+ }
3229
+ .mr-lg-2,
3230
+ .mx-lg-2 {
3231
+ margin-right: 0.5rem !important;
3232
+ }
3233
+ .mb-lg-2,
3234
+ .my-lg-2 {
3235
+ margin-bottom: 0.5rem !important;
3236
+ }
3237
+ .ml-lg-2,
3238
+ .mx-lg-2 {
3239
+ margin-left: 0.5rem !important;
3240
+ }
3241
+ .m-lg-3 {
3242
+ margin: 1rem !important;
3243
+ }
3244
+ .mt-lg-3,
3245
+ .my-lg-3 {
3246
+ margin-top: 1rem !important;
3247
+ }
3248
+ .mr-lg-3,
3249
+ .mx-lg-3 {
3250
+ margin-right: 1rem !important;
3251
+ }
3252
+ .mb-lg-3,
3253
+ .my-lg-3 {
3254
+ margin-bottom: 1rem !important;
3255
+ }
3256
+ .ml-lg-3,
3257
+ .mx-lg-3 {
3258
+ margin-left: 1rem !important;
3259
+ }
3260
+ .m-lg-4 {
3261
+ margin: 1.5rem !important;
3262
+ }
3263
+ .mt-lg-4,
3264
+ .my-lg-4 {
3265
+ margin-top: 1.5rem !important;
3266
+ }
3267
+ .mr-lg-4,
3268
+ .mx-lg-4 {
3269
+ margin-right: 1.5rem !important;
3270
+ }
3271
+ .mb-lg-4,
3272
+ .my-lg-4 {
3273
+ margin-bottom: 1.5rem !important;
3274
+ }
3275
+ .ml-lg-4,
3276
+ .mx-lg-4 {
3277
+ margin-left: 1.5rem !important;
3278
+ }
3279
+ .m-lg-5 {
3280
+ margin: 3rem !important;
3281
+ }
3282
+ .mt-lg-5,
3283
+ .my-lg-5 {
3284
+ margin-top: 3rem !important;
3285
+ }
3286
+ .mr-lg-5,
3287
+ .mx-lg-5 {
3288
+ margin-right: 3rem !important;
3289
+ }
3290
+ .mb-lg-5,
3291
+ .my-lg-5 {
3292
+ margin-bottom: 3rem !important;
3293
+ }
3294
+ .ml-lg-5,
3295
+ .mx-lg-5 {
3296
+ margin-left: 3rem !important;
3297
+ }
3298
+ .p-lg-0 {
3299
+ padding: 0 !important;
3300
+ }
3301
+ .pt-lg-0,
3302
+ .py-lg-0 {
3303
+ padding-top: 0 !important;
3304
+ }
3305
+ .pr-lg-0,
3306
+ .px-lg-0 {
3307
+ padding-right: 0 !important;
3308
+ }
3309
+ .pb-lg-0,
3310
+ .py-lg-0 {
3311
+ padding-bottom: 0 !important;
3312
+ }
3313
+ .pl-lg-0,
3314
+ .px-lg-0 {
3315
+ padding-left: 0 !important;
3316
+ }
3317
+ .p-lg-1 {
3318
+ padding: 0.25rem !important;
3319
+ }
3320
+ .pt-lg-1,
3321
+ .py-lg-1 {
3322
+ padding-top: 0.25rem !important;
3323
+ }
3324
+ .pr-lg-1,
3325
+ .px-lg-1 {
3326
+ padding-right: 0.25rem !important;
3327
+ }
3328
+ .pb-lg-1,
3329
+ .py-lg-1 {
3330
+ padding-bottom: 0.25rem !important;
3331
+ }
3332
+ .pl-lg-1,
3333
+ .px-lg-1 {
3334
+ padding-left: 0.25rem !important;
3335
+ }
3336
+ .p-lg-2 {
3337
+ padding: 0.5rem !important;
3338
+ }
3339
+ .pt-lg-2,
3340
+ .py-lg-2 {
3341
+ padding-top: 0.5rem !important;
3342
+ }
3343
+ .pr-lg-2,
3344
+ .px-lg-2 {
3345
+ padding-right: 0.5rem !important;
3346
+ }
3347
+ .pb-lg-2,
3348
+ .py-lg-2 {
3349
+ padding-bottom: 0.5rem !important;
3350
+ }
3351
+ .pl-lg-2,
3352
+ .px-lg-2 {
3353
+ padding-left: 0.5rem !important;
3354
+ }
3355
+ .p-lg-3 {
3356
+ padding: 1rem !important;
3357
+ }
3358
+ .pt-lg-3,
3359
+ .py-lg-3 {
3360
+ padding-top: 1rem !important;
3361
+ }
3362
+ .pr-lg-3,
3363
+ .px-lg-3 {
3364
+ padding-right: 1rem !important;
3365
+ }
3366
+ .pb-lg-3,
3367
+ .py-lg-3 {
3368
+ padding-bottom: 1rem !important;
3369
+ }
3370
+ .pl-lg-3,
3371
+ .px-lg-3 {
3372
+ padding-left: 1rem !important;
3373
+ }
3374
+ .p-lg-4 {
3375
+ padding: 1.5rem !important;
3376
+ }
3377
+ .pt-lg-4,
3378
+ .py-lg-4 {
3379
+ padding-top: 1.5rem !important;
3380
+ }
3381
+ .pr-lg-4,
3382
+ .px-lg-4 {
3383
+ padding-right: 1.5rem !important;
3384
+ }
3385
+ .pb-lg-4,
3386
+ .py-lg-4 {
3387
+ padding-bottom: 1.5rem !important;
3388
+ }
3389
+ .pl-lg-4,
3390
+ .px-lg-4 {
3391
+ padding-left: 1.5rem !important;
3392
+ }
3393
+ .p-lg-5 {
3394
+ padding: 3rem !important;
3395
+ }
3396
+ .pt-lg-5,
3397
+ .py-lg-5 {
3398
+ padding-top: 3rem !important;
3399
+ }
3400
+ .pr-lg-5,
3401
+ .px-lg-5 {
3402
+ padding-right: 3rem !important;
3403
+ }
3404
+ .pb-lg-5,
3405
+ .py-lg-5 {
3406
+ padding-bottom: 3rem !important;
3407
+ }
3408
+ .pl-lg-5,
3409
+ .px-lg-5 {
3410
+ padding-left: 3rem !important;
3411
+ }
3412
+ .m-lg-n1 {
3413
+ margin: -0.25rem !important;
3414
+ }
3415
+ .mt-lg-n1,
3416
+ .my-lg-n1 {
3417
+ margin-top: -0.25rem !important;
3418
+ }
3419
+ .mr-lg-n1,
3420
+ .mx-lg-n1 {
3421
+ margin-right: -0.25rem !important;
3422
+ }
3423
+ .mb-lg-n1,
3424
+ .my-lg-n1 {
3425
+ margin-bottom: -0.25rem !important;
3426
+ }
3427
+ .ml-lg-n1,
3428
+ .mx-lg-n1 {
3429
+ margin-left: -0.25rem !important;
3430
+ }
3431
+ .m-lg-n2 {
3432
+ margin: -0.5rem !important;
3433
+ }
3434
+ .mt-lg-n2,
3435
+ .my-lg-n2 {
3436
+ margin-top: -0.5rem !important;
3437
+ }
3438
+ .mr-lg-n2,
3439
+ .mx-lg-n2 {
3440
+ margin-right: -0.5rem !important;
3441
+ }
3442
+ .mb-lg-n2,
3443
+ .my-lg-n2 {
3444
+ margin-bottom: -0.5rem !important;
3445
+ }
3446
+ .ml-lg-n2,
3447
+ .mx-lg-n2 {
3448
+ margin-left: -0.5rem !important;
3449
+ }
3450
+ .m-lg-n3 {
3451
+ margin: -1rem !important;
3452
+ }
3453
+ .mt-lg-n3,
3454
+ .my-lg-n3 {
3455
+ margin-top: -1rem !important;
3456
+ }
3457
+ .mr-lg-n3,
3458
+ .mx-lg-n3 {
3459
+ margin-right: -1rem !important;
3460
+ }
3461
+ .mb-lg-n3,
3462
+ .my-lg-n3 {
3463
+ margin-bottom: -1rem !important;
3464
+ }
3465
+ .ml-lg-n3,
3466
+ .mx-lg-n3 {
3467
+ margin-left: -1rem !important;
3468
+ }
3469
+ .m-lg-n4 {
3470
+ margin: -1.5rem !important;
3471
+ }
3472
+ .mt-lg-n4,
3473
+ .my-lg-n4 {
3474
+ margin-top: -1.5rem !important;
3475
+ }
3476
+ .mr-lg-n4,
3477
+ .mx-lg-n4 {
3478
+ margin-right: -1.5rem !important;
3479
+ }
3480
+ .mb-lg-n4,
3481
+ .my-lg-n4 {
3482
+ margin-bottom: -1.5rem !important;
3483
+ }
3484
+ .ml-lg-n4,
3485
+ .mx-lg-n4 {
3486
+ margin-left: -1.5rem !important;
3487
+ }
3488
+ .m-lg-n5 {
3489
+ margin: -3rem !important;
3490
+ }
3491
+ .mt-lg-n5,
3492
+ .my-lg-n5 {
3493
+ margin-top: -3rem !important;
3494
+ }
3495
+ .mr-lg-n5,
3496
+ .mx-lg-n5 {
3497
+ margin-right: -3rem !important;
3498
+ }
3499
+ .mb-lg-n5,
3500
+ .my-lg-n5 {
3501
+ margin-bottom: -3rem !important;
3502
+ }
3503
+ .ml-lg-n5,
3504
+ .mx-lg-n5 {
3505
+ margin-left: -3rem !important;
3506
+ }
3507
+ .m-lg-auto {
3508
+ margin: auto !important;
3509
+ }
3510
+ .mt-lg-auto,
3511
+ .my-lg-auto {
3512
+ margin-top: auto !important;
3513
+ }
3514
+ .mr-lg-auto,
3515
+ .mx-lg-auto {
3516
+ margin-right: auto !important;
3517
+ }
3518
+ .mb-lg-auto,
3519
+ .my-lg-auto {
3520
+ margin-bottom: auto !important;
3521
+ }
3522
+ .ml-lg-auto,
3523
+ .mx-lg-auto {
3524
+ margin-left: auto !important;
3525
+ }
3526
+ }
3527
+
3528
+ @media (min-width: 1200px) {
3529
+ .m-xl-0 {
3530
+ margin: 0 !important;
3531
+ }
3532
+ .mt-xl-0,
3533
+ .my-xl-0 {
3534
+ margin-top: 0 !important;
3535
+ }
3536
+ .mr-xl-0,
3537
+ .mx-xl-0 {
3538
+ margin-right: 0 !important;
3539
+ }
3540
+ .mb-xl-0,
3541
+ .my-xl-0 {
3542
+ margin-bottom: 0 !important;
3543
+ }
3544
+ .ml-xl-0,
3545
+ .mx-xl-0 {
3546
+ margin-left: 0 !important;
3547
+ }
3548
+ .m-xl-1 {
3549
+ margin: 0.25rem !important;
3550
+ }
3551
+ .mt-xl-1,
3552
+ .my-xl-1 {
3553
+ margin-top: 0.25rem !important;
3554
+ }
3555
+ .mr-xl-1,
3556
+ .mx-xl-1 {
3557
+ margin-right: 0.25rem !important;
3558
+ }
3559
+ .mb-xl-1,
3560
+ .my-xl-1 {
3561
+ margin-bottom: 0.25rem !important;
3562
+ }
3563
+ .ml-xl-1,
3564
+ .mx-xl-1 {
3565
+ margin-left: 0.25rem !important;
3566
+ }
3567
+ .m-xl-2 {
3568
+ margin: 0.5rem !important;
3569
+ }
3570
+ .mt-xl-2,
3571
+ .my-xl-2 {
3572
+ margin-top: 0.5rem !important;
3573
+ }
3574
+ .mr-xl-2,
3575
+ .mx-xl-2 {
3576
+ margin-right: 0.5rem !important;
3577
+ }
3578
+ .mb-xl-2,
3579
+ .my-xl-2 {
3580
+ margin-bottom: 0.5rem !important;
3581
+ }
3582
+ .ml-xl-2,
3583
+ .mx-xl-2 {
3584
+ margin-left: 0.5rem !important;
3585
+ }
3586
+ .m-xl-3 {
3587
+ margin: 1rem !important;
3588
+ }
3589
+ .mt-xl-3,
3590
+ .my-xl-3 {
3591
+ margin-top: 1rem !important;
3592
+ }
3593
+ .mr-xl-3,
3594
+ .mx-xl-3 {
3595
+ margin-right: 1rem !important;
3596
+ }
3597
+ .mb-xl-3,
3598
+ .my-xl-3 {
3599
+ margin-bottom: 1rem !important;
3600
+ }
3601
+ .ml-xl-3,
3602
+ .mx-xl-3 {
3603
+ margin-left: 1rem !important;
3604
+ }
3605
+ .m-xl-4 {
3606
+ margin: 1.5rem !important;
3607
+ }
3608
+ .mt-xl-4,
3609
+ .my-xl-4 {
3610
+ margin-top: 1.5rem !important;
3611
+ }
3612
+ .mr-xl-4,
3613
+ .mx-xl-4 {
3614
+ margin-right: 1.5rem !important;
3615
+ }
3616
+ .mb-xl-4,
3617
+ .my-xl-4 {
3618
+ margin-bottom: 1.5rem !important;
3619
+ }
3620
+ .ml-xl-4,
3621
+ .mx-xl-4 {
3622
+ margin-left: 1.5rem !important;
3623
+ }
3624
+ .m-xl-5 {
3625
+ margin: 3rem !important;
3626
+ }
3627
+ .mt-xl-5,
3628
+ .my-xl-5 {
3629
+ margin-top: 3rem !important;
3630
+ }
3631
+ .mr-xl-5,
3632
+ .mx-xl-5 {
3633
+ margin-right: 3rem !important;
3634
+ }
3635
+ .mb-xl-5,
3636
+ .my-xl-5 {
3637
+ margin-bottom: 3rem !important;
3638
+ }
3639
+ .ml-xl-5,
3640
+ .mx-xl-5 {
3641
+ margin-left: 3rem !important;
3642
+ }
3643
+ .p-xl-0 {
3644
+ padding: 0 !important;
3645
+ }
3646
+ .pt-xl-0,
3647
+ .py-xl-0 {
3648
+ padding-top: 0 !important;
3649
+ }
3650
+ .pr-xl-0,
3651
+ .px-xl-0 {
3652
+ padding-right: 0 !important;
3653
+ }
3654
+ .pb-xl-0,
3655
+ .py-xl-0 {
3656
+ padding-bottom: 0 !important;
3657
+ }
3658
+ .pl-xl-0,
3659
+ .px-xl-0 {
3660
+ padding-left: 0 !important;
3661
+ }
3662
+ .p-xl-1 {
3663
+ padding: 0.25rem !important;
3664
+ }
3665
+ .pt-xl-1,
3666
+ .py-xl-1 {
3667
+ padding-top: 0.25rem !important;
3668
+ }
3669
+ .pr-xl-1,
3670
+ .px-xl-1 {
3671
+ padding-right: 0.25rem !important;
3672
+ }
3673
+ .pb-xl-1,
3674
+ .py-xl-1 {
3675
+ padding-bottom: 0.25rem !important;
3676
+ }
3677
+ .pl-xl-1,
3678
+ .px-xl-1 {
3679
+ padding-left: 0.25rem !important;
3680
+ }
3681
+ .p-xl-2 {
3682
+ padding: 0.5rem !important;
3683
+ }
3684
+ .pt-xl-2,
3685
+ .py-xl-2 {
3686
+ padding-top: 0.5rem !important;
3687
+ }
3688
+ .pr-xl-2,
3689
+ .px-xl-2 {
3690
+ padding-right: 0.5rem !important;
3691
+ }
3692
+ .pb-xl-2,
3693
+ .py-xl-2 {
3694
+ padding-bottom: 0.5rem !important;
3695
+ }
3696
+ .pl-xl-2,
3697
+ .px-xl-2 {
3698
+ padding-left: 0.5rem !important;
3699
+ }
3700
+ .p-xl-3 {
3701
+ padding: 1rem !important;
3702
+ }
3703
+ .pt-xl-3,
3704
+ .py-xl-3 {
3705
+ padding-top: 1rem !important;
3706
+ }
3707
+ .pr-xl-3,
3708
+ .px-xl-3 {
3709
+ padding-right: 1rem !important;
3710
+ }
3711
+ .pb-xl-3,
3712
+ .py-xl-3 {
3713
+ padding-bottom: 1rem !important;
3714
+ }
3715
+ .pl-xl-3,
3716
+ .px-xl-3 {
3717
+ padding-left: 1rem !important;
3718
+ }
3719
+ .p-xl-4 {
3720
+ padding: 1.5rem !important;
3721
+ }
3722
+ .pt-xl-4,
3723
+ .py-xl-4 {
3724
+ padding-top: 1.5rem !important;
3725
+ }
3726
+ .pr-xl-4,
3727
+ .px-xl-4 {
3728
+ padding-right: 1.5rem !important;
3729
+ }
3730
+ .pb-xl-4,
3731
+ .py-xl-4 {
3732
+ padding-bottom: 1.5rem !important;
3733
+ }
3734
+ .pl-xl-4,
3735
+ .px-xl-4 {
3736
+ padding-left: 1.5rem !important;
3737
+ }
3738
+ .p-xl-5 {
3739
+ padding: 3rem !important;
3740
+ }
3741
+ .pt-xl-5,
3742
+ .py-xl-5 {
3743
+ padding-top: 3rem !important;
3744
+ }
3745
+ .pr-xl-5,
3746
+ .px-xl-5 {
3747
+ padding-right: 3rem !important;
3748
+ }
3749
+ .pb-xl-5,
3750
+ .py-xl-5 {
3751
+ padding-bottom: 3rem !important;
3752
+ }
3753
+ .pl-xl-5,
3754
+ .px-xl-5 {
3755
+ padding-left: 3rem !important;
3756
+ }
3757
+ .m-xl-n1 {
3758
+ margin: -0.25rem !important;
3759
+ }
3760
+ .mt-xl-n1,
3761
+ .my-xl-n1 {
3762
+ margin-top: -0.25rem !important;
3763
+ }
3764
+ .mr-xl-n1,
3765
+ .mx-xl-n1 {
3766
+ margin-right: -0.25rem !important;
3767
+ }
3768
+ .mb-xl-n1,
3769
+ .my-xl-n1 {
3770
+ margin-bottom: -0.25rem !important;
3771
+ }
3772
+ .ml-xl-n1,
3773
+ .mx-xl-n1 {
3774
+ margin-left: -0.25rem !important;
3775
+ }
3776
+ .m-xl-n2 {
3777
+ margin: -0.5rem !important;
3778
+ }
3779
+ .mt-xl-n2,
3780
+ .my-xl-n2 {
3781
+ margin-top: -0.5rem !important;
3782
+ }
3783
+ .mr-xl-n2,
3784
+ .mx-xl-n2 {
3785
+ margin-right: -0.5rem !important;
3786
+ }
3787
+ .mb-xl-n2,
3788
+ .my-xl-n2 {
3789
+ margin-bottom: -0.5rem !important;
3790
+ }
3791
+ .ml-xl-n2,
3792
+ .mx-xl-n2 {
3793
+ margin-left: -0.5rem !important;
3794
+ }
3795
+ .m-xl-n3 {
3796
+ margin: -1rem !important;
3797
+ }
3798
+ .mt-xl-n3,
3799
+ .my-xl-n3 {
3800
+ margin-top: -1rem !important;
3801
+ }
3802
+ .mr-xl-n3,
3803
+ .mx-xl-n3 {
3804
+ margin-right: -1rem !important;
3805
+ }
3806
+ .mb-xl-n3,
3807
+ .my-xl-n3 {
3808
+ margin-bottom: -1rem !important;
3809
+ }
3810
+ .ml-xl-n3,
3811
+ .mx-xl-n3 {
3812
+ margin-left: -1rem !important;
3813
+ }
3814
+ .m-xl-n4 {
3815
+ margin: -1.5rem !important;
3816
+ }
3817
+ .mt-xl-n4,
3818
+ .my-xl-n4 {
3819
+ margin-top: -1.5rem !important;
3820
+ }
3821
+ .mr-xl-n4,
3822
+ .mx-xl-n4 {
3823
+ margin-right: -1.5rem !important;
3824
+ }
3825
+ .mb-xl-n4,
3826
+ .my-xl-n4 {
3827
+ margin-bottom: -1.5rem !important;
3828
+ }
3829
+ .ml-xl-n4,
3830
+ .mx-xl-n4 {
3831
+ margin-left: -1.5rem !important;
3832
+ }
3833
+ .m-xl-n5 {
3834
+ margin: -3rem !important;
3835
+ }
3836
+ .mt-xl-n5,
3837
+ .my-xl-n5 {
3838
+ margin-top: -3rem !important;
3839
+ }
3840
+ .mr-xl-n5,
3841
+ .mx-xl-n5 {
3842
+ margin-right: -3rem !important;
3843
+ }
3844
+ .mb-xl-n5,
3845
+ .my-xl-n5 {
3846
+ margin-bottom: -3rem !important;
3847
+ }
3848
+ .ml-xl-n5,
3849
+ .mx-xl-n5 {
3850
+ margin-left: -3rem !important;
3851
+ }
3852
+ .m-xl-auto {
3853
+ margin: auto !important;
3854
+ }
3855
+ .mt-xl-auto,
3856
+ .my-xl-auto {
3857
+ margin-top: auto !important;
3858
+ }
3859
+ .mr-xl-auto,
3860
+ .mx-xl-auto {
3861
+ margin-right: auto !important;
3862
+ }
3863
+ .mb-xl-auto,
3864
+ .my-xl-auto {
3865
+ margin-bottom: auto !important;
3866
+ }
3867
+ .ml-xl-auto,
3868
+ .mx-xl-auto {
3869
+ margin-left: auto !important;
3870
+ }
3871
+ }
3872
  /*# sourceMappingURL=bootstrap-grid.css.map */
vendor/bootstrap/dist/css/bootstrap-grid.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../scss/bootstrap-grid.scss","bootstrap-grid.css","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/_variables.scss","../../scss/mixins/_grid-framework.scss","../../scss/utilities/_display.scss","../../scss/utilities/_flex.scss"],"names":[],"mappings":"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","file":"bootstrap-grid.css","sourcesContent":["/*!\n * Bootstrap Grid v4.0.0 (https://getbootstrap.com)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@at-root {\n @-ms-viewport { width: device-width; } // stylelint-disable-line at-rule-no-vendor-prefix\n}\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n","/*!\n * Bootstrap Grid v4.0.0 (https://getbootstrap.com)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n@-ms-viewport {\n width: device-width;\n}\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n min-height: 1px;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n .container-fluid {\n @include make-container();\n }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container() {\n width: 100%;\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row() {\n display: flex;\n flex-wrap: wrap;\n margin-right: ($grid-gutter-width / -2);\n margin-left: ($grid-gutter-width / -2);\n}\n\n@mixin make-col-ready() {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n min-height: 1px; // Prevent collapsing\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02px, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n\n//\n// Color system\n//\n\n// stylelint-disable\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n$grays: map-merge((\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n), $grays);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge((\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n), $colors);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge((\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n), $theme-colors);\n// stylelint-enable\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-print-styles: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n// stylelint-disable\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge((\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n), $spacers);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge((\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%\n), $sizes);\n// stylelint-enable\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints);\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n\n// Fonts\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: ($font-size-base * 1.25) !default;\n$font-size-sm: ($font-size-base * .875) !default;\n\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: ($spacer / 2) !default;\n$headings-font-family: inherit !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: ($font-size-base * 1.25) !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-font-size: ($font-size-base * 1.25) !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-bg: transparent !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $gray-300 !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-bg: $gray-900 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($gray-900, 7.5%) !default;\n$table-dark-color: $body-bg !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-line-height: $input-btn-line-height !default;\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;\n$input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default;\n\n$input-height-inner-sm: ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;\n$input-height-sm: calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;\n\n$input-height-inner-lg: ($font-size-lg * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;\n$input-height-lg: calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-control-gutter: 1.5rem !default;\n$custom-control-spacer-x: 1rem !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $gray-300 !default;\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-control-indicator-disabled-bg: $gray-200 !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n\n$custom-control-indicator-focus-box-shadow: 0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-select-padding-y: .375rem !default;\n$custom-select-padding-x: .75rem !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-line-height: $input-btn-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $white !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-select-border-width: $input-btn-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-box-shadow: inset 0 1px 2px rgba($black, .075), 0 0 5px rgba($custom-select-focus-border-color, .5) !default;\n\n$custom-select-font-size-sm: 75% !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-font-size-lg: 125% !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$custom-file-padding-y: $input-btn-padding-y !default;\n$custom-file-padding-x: $input-btn-padding-x !default;\n$custom-file-line-height: $input-btn-line-height !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-btn-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n// Navbar\n\n$navbar-padding-y: ($spacer / 2) !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: ($font-size-base * $line-height-base + $nav-link-padding-y * 2) !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: ($grid-gutter-width / 2) !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $gray-200 !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding: 1rem !default;\n\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-transition: transform .3s ease-out !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: ($font-size-base * .75) !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n// List group\n\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: \"/\" !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$carousel-control-next-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$carousel-transition: transform .6s ease !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Printing\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n min-height: 1px; // Prevent columns from collapsing when empty\n padding-right: ($gutter / 2);\n padding-left: ($gutter / 2);\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col#{$infix}-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none; // Reset earlier grid tiers\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .d#{$infix}-none { display: none !important; }\n .d#{$infix}-inline { display: inline !important; }\n .d#{$infix}-inline-block { display: inline-block !important; }\n .d#{$infix}-block { display: block !important; }\n .d#{$infix}-table { display: table !important; }\n .d#{$infix}-table-row { display: table-row !important; }\n .d#{$infix}-table-cell { display: table-cell !important; }\n .d#{$infix}-flex { display: flex !important; }\n .d#{$infix}-inline-flex { display: inline-flex !important; }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n .d-print-none { display: none !important; }\n .d-print-inline { display: inline !important; }\n .d-print-inline-block { display: inline-block !important; }\n .d-print-block { display: block !important; }\n .d-print-table { display: table !important; }\n .d-print-table-row { display: table-row !important; }\n .d-print-table-cell { display: table-cell !important; }\n .d-print-flex { display: flex !important; }\n .d-print-inline-flex { display: inline-flex !important; }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n"]}
1
+ {"version":3,"sources":["../../scss/bootstrap-grid.scss","bootstrap-grid.css","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/_variables.scss","../../scss/mixins/_grid-framework.scss","../../scss/_functions.scss","../../scss/utilities/_display.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_spacing.scss"],"names":[],"mappings":"AAAA;;;;;ECKE;ADEF;EACE,sBAAsB;EACtB,6BAA6B;ACA/B;;ADGA;;;EAGE,mBAAmB;ACArB;;ACTE;;;;;;ECDA,WAAW;EACX,mBAA2B;EAC3B,kBAA0B;EAC1B,kBAAkB;EAClB,iBAAiB;AFmBnB;;AGgCI;EFzCE;IACE,gBG+LG;EJlLT;AACF;;AG0BI;EFzCE;IACE,gBGgMG;EJ7KT;AACF;;AGoBI;EFzCE;IACE,gBGiMG;EJxKT;AACF;;AGcI;EFzCE;IACE,iBGkMI;EJnKV;AACF;;ACJE;ECnCA,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,mBAA2B;EAC3B,kBAA0B;AF2C5B;;ACLE;EACE,eAAe;EACf,cAAc;ADQlB;;ACVE;;EAMI,gBAAgB;EAChB,eAAe;ADSrB;;AK/DE;;;;;;EACE,kBAAkB;EAClB,WAAW;EACX,mBAA2B;EAC3B,kBAA0B;ALuE9B;;AKjDM;EACE,0BAAa;EAAb,aAAa;EACb,oBAAY;EAAZ,YAAY;EACZ,eAAe;ALoDvB;;AK/CU;EHwBN,kBIyHqD;EJzHrD,cIyHqD;EJxHrD,eIwHqD;AN7FzD;;AKpDU;EHwBN,iBIyHqD;EJzHrD,aIyHqD;EJxHrD,cIwHqD;ANxFzD;;AKzDU;EHwBN,wBIyHqD;EJzHrD,oBIyHqD;EJxHrD,qBIwHqD;ANnFzD;;AK9DU;EHwBN,iBIyHqD;EJzHrD,aIyHqD;EJxHrD,cIwHqD;AN9EzD;;AKnEU;EHwBN,iBIyHqD;EJzHrD,aIyHqD;EJxHrD,cIwHqD;ANzEzD;;AKxEU;EHwBN,wBIyHqD;EJzHrD,oBIyHqD;EJxHrD,qBIwHqD;ANpEzD;;AKvEM;EHCJ,kBAAc;EAAd,cAAc;EACd,WAAW;EACX,eAAe;AF0EjB;;AKvEU;EHbR,uBAA6C;EAA7C,mBAA6C;EAI7C,oBAA8C;AFqFhD;;AK5EU;EHbR,wBAA6C;EAA7C,oBAA6C;EAI7C,qBAA8C;AF0FhD;;AKjFU;EHbR,iBAA6C;EAA7C,aAA6C;EAI7C,cAA8C;AF+FhD;;AKtFU;EHbR,wBAA6C;EAA7C,oBAA6C;EAI7C,qBAA8C;AFoGhD;;AK3FU;EHbR,wBAA6C;EAA7C,oBAA6C;EAI7C,qBAA8C;AFyGhD;;AKhGU;EHbR,iBAA6C;EAA7C,aAA6C;EAI7C,cAA8C;AF8GhD;;AKrGU;EHbR,wBAA6C;EAA7C,oBAA6C;EAI7C,qBAA8C;AFmHhD;;AK1GU;EHbR,wBAA6C;EAA7C,oBAA6C;EAI7C,qBAA8C;AFwHhD;;AK/GU;EHbR,iBAA6C;EAA7C,aAA6C;EAI7C,cAA8C;AF6HhD;;AKpHU;EHbR,wBAA6C;EAA7C,oBAA6C;EAI7C,qBAA8C;AFkIhD;;AKzHU;EHbR,wBAA6C;EAA7C,oBAA6C;EAI7C,qBAA8C;AFuIhD;;AK9HU;EHbR,kBAA6C;EAA7C,cAA6C;EAI7C,eAA8C;AF4IhD;;AK7HM;EAAwB,kBAAS;EAAT,SAAS;ALiIvC;;AK/HM;EAAuB,kBDmKG;ECnKH,SDmKG;AJhChC;;AKhIQ;EAAwB,iBADZ;EACY,QADZ;ALqIpB;;AKpIQ;EAAwB,iBADZ;EACY,QADZ;ALyIpB;;AKxIQ;EAAwB,iBADZ;EACY,QADZ;AL6IpB;;AK5IQ;EAAwB,iBADZ;EACY,QADZ;ALiJpB;;AKhJQ;EAAwB,iBADZ;EACY,QADZ;ALqJpB;;AKpJQ;EAAwB,iBADZ;EACY,QADZ;ALyJpB;;AKxJQ;EAAwB,iBADZ;EACY,QADZ;AL6JpB;;AK5JQ;EAAwB,iBADZ;EACY,QADZ;ALiKpB;;AKhKQ;EAAwB,iBADZ;EACY,QADZ;ALqKpB;;AKpKQ;EAAwB,iBADZ;EACY,QADZ;ALyKpB;;AKxKQ;EAAwB,kBADZ;EACY,SADZ;AL6KpB;;AK5KQ;EAAwB,kBADZ;EACY,SADZ;ALiLpB;;AKhLQ;EAAwB,kBADZ;EACY,SADZ;ALqLpB;;AK7KY;EHhBV,sBAA8C;AFiMhD;;AKjLY;EHhBV,uBAA8C;AFqMhD;;AKrLY;EHhBV,gBAA8C;AFyMhD;;AKzLY;EHhBV,uBAA8C;AF6MhD;;AK7LY;EHhBV,uBAA8C;AFiNhD;;AKjMY;EHhBV,gBAA8C;AFqNhD;;AKrMY;EHhBV,uBAA8C;AFyNhD;;AKzMY;EHhBV,uBAA8C;AF6NhD;;AK7MY;EHhBV,gBAA8C;AFiOhD;;AKjNY;EHhBV,uBAA8C;AFqOhD;;AKrNY;EHhBV,uBAA8C;AFyOhD;;AGpOI;EE3BE;IACE,0BAAa;IAAb,aAAa;IACb,oBAAY;IAAZ,YAAY;IACZ,eAAe;ELmQrB;EK9PQ;IHwBN,kBIyHqD;IJzHrD,cIyHqD;IJxHrD,eIwHqD;ENiHvD;EKlQQ;IHwBN,iBIyHqD;IJzHrD,aIyHqD;IJxHrD,cIwHqD;ENqHvD;EKtQQ;IHwBN,wBIyHqD;IJzHrD,oBIyHqD;IJxHrD,qBIwHqD;ENyHvD;EK1QQ;IHwBN,iBIyHqD;IJzHrD,aIyHqD;IJxHrD,cIwHqD;EN6HvD;EK9QQ;IHwBN,iBIyHqD;IJzHrD,aIyHqD;IJxHrD,cIwHqD;ENiIvD;EKlRQ;IHwBN,wBIyHqD;IJzHrD,oBIyHqD;IJxHrD,qBIwHqD;ENqIvD;EKhRI;IHCJ,kBAAc;IAAd,cAAc;IACd,WAAW;IACX,eAAe;EFkRf;EK/QQ;IHbR,uBAA6C;IAA7C,mBAA6C;IAI7C,oBAA8C;EF4R9C;EKnRQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EFgS9C;EKvRQ;IHbR,iBAA6C;IAA7C,aAA6C;IAI7C,cAA8C;EFoS9C;EK3RQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EFwS9C;EK/RQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EF4S9C;EKnSQ;IHbR,iBAA6C;IAA7C,aAA6C;IAI7C,cAA8C;EFgT9C;EKvSQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EFoT9C;EK3SQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EFwT9C;EK/SQ;IHbR,iBAA6C;IAA7C,aAA6C;IAI7C,cAA8C;EF4T9C;EKnTQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EFgU9C;EKvTQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EFoU9C;EK3TQ;IHbR,kBAA6C;IAA7C,cAA6C;IAI7C,eAA8C;EFwU9C;EKzTI;IAAwB,kBAAS;IAAT,SAAS;EL4TrC;EK1TI;IAAuB,kBDmKG;ICnKH,SDmKG;EJ0J9B;EK1TM;IAAwB,iBADZ;IACY,QADZ;EL8TlB;EK7TM;IAAwB,iBADZ;IACY,QADZ;ELiUlB;EKhUM;IAAwB,iBADZ;IACY,QADZ;ELoUlB;EKnUM;IAAwB,iBADZ;IACY,QADZ;ELuUlB;EKtUM;IAAwB,iBADZ;IACY,QADZ;EL0UlB;EKzUM;IAAwB,iBADZ;IACY,QADZ;EL6UlB;EK5UM;IAAwB,iBADZ;IACY,QADZ;ELgVlB;EK/UM;IAAwB,iBADZ;IACY,QADZ;ELmVlB;EKlVM;IAAwB,iBADZ;IACY,QADZ;ELsVlB;EKrVM;IAAwB,iBADZ;IACY,QADZ;ELyVlB;EKxVM;IAAwB,kBADZ;IACY,SADZ;EL4VlB;EK3VM;IAAwB,kBADZ;IACY,SADZ;EL+VlB;EK9VM;IAAwB,kBADZ;IACY,SADZ;ELkWlB;EK1VU;IHhBV,cAA4B;EF6W5B;EK7VU;IHhBV,sBAA8C;EFgX9C;EKhWU;IHhBV,uBAA8C;EFmX9C;EKnWU;IHhBV,gBAA8C;EFsX9C;EKtWU;IHhBV,uBAA8C;EFyX9C;EKzWU;IHhBV,uBAA8C;EF4X9C;EK5WU;IHhBV,gBAA8C;EF+X9C;EK/WU;IHhBV,uBAA8C;EFkY9C;EKlXU;IHhBV,uBAA8C;EFqY9C;EKrXU;IHhBV,gBAA8C;EFwY9C;EKxXU;IHhBV,uBAA8C;EF2Y9C;EK3XU;IHhBV,uBAA8C;EF8Y9C;AACF;;AG1YI;EE3BE;IACE,0BAAa;IAAb,aAAa;IACb,oBAAY;IAAZ,YAAY;IACZ,eAAe;ELyarB;EKpaQ;IHwBN,kBIyHqD;IJzHrD,cIyHqD;IJxHrD,eIwHqD;ENuRvD;EKxaQ;IHwBN,iBIyHqD;IJzHrD,aIyHqD;IJxHrD,cIwHqD;EN2RvD;EK5aQ;IHwBN,wBIyHqD;IJzHrD,oBIyHqD;IJxHrD,qBIwHqD;EN+RvD;EKhbQ;IHwBN,iBIyHqD;IJzHrD,aIyHqD;IJxHrD,cIwHqD;ENmSvD;EKpbQ;IHwBN,iBIyHqD;IJzHrD,aIyHqD;IJxHrD,cIwHqD;ENuSvD;EKxbQ;IHwBN,wBIyHqD;IJzHrD,oBIyHqD;IJxHrD,qBIwHqD;EN2SvD;EKtbI;IHCJ,kBAAc;IAAd,cAAc;IACd,WAAW;IACX,eAAe;EFwbf;EKrbQ;IHbR,uBAA6C;IAA7C,mBAA6C;IAI7C,oBAA8C;EFkc9C;EKzbQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EFsc9C;EK7bQ;IHbR,iBAA6C;IAA7C,aAA6C;IAI7C,cAA8C;EF0c9C;EKjcQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EF8c9C;EKrcQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EFkd9C;EKzcQ;IHbR,iBAA6C;IAA7C,aAA6C;IAI7C,cAA8C;EFsd9C;EK7cQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EF0d9C;EKjdQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EF8d9C;EKrdQ;IHbR,iBAA6C;IAA7C,aAA6C;IAI7C,cAA8C;EFke9C;EKzdQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EFse9C;EK7dQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EF0e9C;EKjeQ;IHbR,kBAA6C;IAA7C,cAA6C;IAI7C,eAA8C;EF8e9C;EK/dI;IAAwB,kBAAS;IAAT,SAAS;ELkerC;EKheI;IAAuB,kBDmKG;ICnKH,SDmKG;EJgU9B;EKheM;IAAwB,iBADZ;IACY,QADZ;ELoelB;EKneM;IAAwB,iBADZ;IACY,QADZ;ELuelB;EKteM;IAAwB,iBADZ;IACY,QADZ;EL0elB;EKzeM;IAAwB,iBADZ;IACY,QADZ;EL6elB;EK5eM;IAAwB,iBADZ;IACY,QADZ;ELgflB;EK/eM;IAAwB,iBADZ;IACY,QADZ;ELmflB;EKlfM;IAAwB,iBADZ;IACY,QADZ;ELsflB;EKrfM;IAAwB,iBADZ;IACY,QADZ;ELyflB;EKxfM;IAAwB,iBADZ;IACY,QADZ;EL4flB;EK3fM;IAAwB,iBADZ;IACY,QADZ;EL+flB;EK9fM;IAAwB,kBADZ;IACY,SADZ;ELkgBlB;EKjgBM;IAAwB,kBADZ;IACY,SADZ;ELqgBlB;EKpgBM;IAAwB,kBADZ;IACY,SADZ;ELwgBlB;EKhgBU;IHhBV,cAA4B;EFmhB5B;EKngBU;IHhBV,sBAA8C;EFshB9C;EKtgBU;IHhBV,uBAA8C;EFyhB9C;EKzgBU;IHhBV,gBAA8C;EF4hB9C;EK5gBU;IHhBV,uBAA8C;EF+hB9C;EK/gBU;IHhBV,uBAA8C;EFkiB9C;EKlhBU;IHhBV,gBAA8C;EFqiB9C;EKrhBU;IHhBV,uBAA8C;EFwiB9C;EKxhBU;IHhBV,uBAA8C;EF2iB9C;EK3hBU;IHhBV,gBAA8C;EF8iB9C;EK9hBU;IHhBV,uBAA8C;EFijB9C;EKjiBU;IHhBV,uBAA8C;EFojB9C;AACF;;AGhjBI;EE3BE;IACE,0BAAa;IAAb,aAAa;IACb,oBAAY;IAAZ,YAAY;IACZ,eAAe;EL+kBrB;EK1kBQ;IHwBN,kBIyHqD;IJzHrD,cIyHqD;IJxHrD,eIwHqD;EN6bvD;EK9kBQ;IHwBN,iBIyHqD;IJzHrD,aIyHqD;IJxHrD,cIwHqD;ENicvD;EKllBQ;IHwBN,wBIyHqD;IJzHrD,oBIyHqD;IJxHrD,qBIwHqD;ENqcvD;EKtlBQ;IHwBN,iBIyHqD;IJzHrD,aIyHqD;IJxHrD,cIwHqD;ENycvD;EK1lBQ;IHwBN,iBIyHqD;IJzHrD,aIyHqD;IJxHrD,cIwHqD;EN6cvD;EK9lBQ;IHwBN,wBIyHqD;IJzHrD,oBIyHqD;IJxHrD,qBIwHqD;ENidvD;EK5lBI;IHCJ,kBAAc;IAAd,cAAc;IACd,WAAW;IACX,eAAe;EF8lBf;EK3lBQ;IHbR,uBAA6C;IAA7C,mBAA6C;IAI7C,oBAA8C;EFwmB9C;EK/lBQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EF4mB9C;EKnmBQ;IHbR,iBAA6C;IAA7C,aAA6C;IAI7C,cAA8C;EFgnB9C;EKvmBQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EFonB9C;EK3mBQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EFwnB9C;EK/mBQ;IHbR,iBAA6C;IAA7C,aAA6C;IAI7C,cAA8C;EF4nB9C;EKnnBQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EFgoB9C;EKvnBQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EFooB9C;EK3nBQ;IHbR,iBAA6C;IAA7C,aAA6C;IAI7C,cAA8C;EFwoB9C;EK/nBQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EF4oB9C;EKnoBQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EFgpB9C;EKvoBQ;IHbR,kBAA6C;IAA7C,cAA6C;IAI7C,eAA8C;EFopB9C;EKroBI;IAAwB,kBAAS;IAAT,SAAS;ELwoBrC;EKtoBI;IAAuB,kBDmKG;ICnKH,SDmKG;EJse9B;EKtoBM;IAAwB,iBADZ;IACY,QADZ;EL0oBlB;EKzoBM;IAAwB,iBADZ;IACY,QADZ;EL6oBlB;EK5oBM;IAAwB,iBADZ;IACY,QADZ;ELgpBlB;EK/oBM;IAAwB,iBADZ;IACY,QADZ;ELmpBlB;EKlpBM;IAAwB,iBADZ;IACY,QADZ;ELspBlB;EKrpBM;IAAwB,iBADZ;IACY,QADZ;ELypBlB;EKxpBM;IAAwB,iBADZ;IACY,QADZ;EL4pBlB;EK3pBM;IAAwB,iBADZ;IACY,QADZ;EL+pBlB;EK9pBM;IAAwB,iBADZ;IACY,QADZ;ELkqBlB;EKjqBM;IAAwB,iBADZ;IACY,QADZ;ELqqBlB;EKpqBM;IAAwB,kBADZ;IACY,SADZ;ELwqBlB;EKvqBM;IAAwB,kBADZ;IACY,SADZ;EL2qBlB;EK1qBM;IAAwB,kBADZ;IACY,SADZ;EL8qBlB;EKtqBU;IHhBV,cAA4B;EFyrB5B;EKzqBU;IHhBV,sBAA8C;EF4rB9C;EK5qBU;IHhBV,uBAA8C;EF+rB9C;EK/qBU;IHhBV,gBAA8C;EFksB9C;EKlrBU;IHhBV,uBAA8C;EFqsB9C;EKrrBU;IHhBV,uBAA8C;EFwsB9C;EKxrBU;IHhBV,gBAA8C;EF2sB9C;EK3rBU;IHhBV,uBAA8C;EF8sB9C;EK9rBU;IHhBV,uBAA8C;EFitB9C;EKjsBU;IHhBV,gBAA8C;EFotB9C;EKpsBU;IHhBV,uBAA8C;EFutB9C;EKvsBU;IHhBV,uBAA8C;EF0tB9C;AACF;;AGttBI;EE3BE;IACE,0BAAa;IAAb,aAAa;IACb,oBAAY;IAAZ,YAAY;IACZ,eAAe;ELqvBrB;EKhvBQ;IHwBN,kBIyHqD;IJzHrD,cIyHqD;IJxHrD,eIwHqD;ENmmBvD;EKpvBQ;IHwBN,iBIyHqD;IJzHrD,aIyHqD;IJxHrD,cIwHqD;ENumBvD;EKxvBQ;IHwBN,wBIyHqD;IJzHrD,oBIyHqD;IJxHrD,qBIwHqD;EN2mBvD;EK5vBQ;IHwBN,iBIyHqD;IJzHrD,aIyHqD;IJxHrD,cIwHqD;EN+mBvD;EKhwBQ;IHwBN,iBIyHqD;IJzHrD,aIyHqD;IJxHrD,cIwHqD;ENmnBvD;EKpwBQ;IHwBN,wBIyHqD;IJzHrD,oBIyHqD;IJxHrD,qBIwHqD;ENunBvD;EKlwBI;IHCJ,kBAAc;IAAd,cAAc;IACd,WAAW;IACX,eAAe;EFowBf;EKjwBQ;IHbR,uBAA6C;IAA7C,mBAA6C;IAI7C,oBAA8C;EF8wB9C;EKrwBQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EFkxB9C;EKzwBQ;IHbR,iBAA6C;IAA7C,aAA6C;IAI7C,cAA8C;EFsxB9C;EK7wBQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EF0xB9C;EKjxBQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EF8xB9C;EKrxBQ;IHbR,iBAA6C;IAA7C,aAA6C;IAI7C,cAA8C;EFkyB9C;EKzxBQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EFsyB9C;EK7xBQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EF0yB9C;EKjyBQ;IHbR,iBAA6C;IAA7C,aAA6C;IAI7C,cAA8C;EF8yB9C;EKryBQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EFkzB9C;EKzyBQ;IHbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EFszB9C;EK7yBQ;IHbR,kBAA6C;IAA7C,cAA6C;IAI7C,eAA8C;EF0zB9C;EK3yBI;IAAwB,kBAAS;IAAT,SAAS;EL8yBrC;EK5yBI;IAAuB,kBDmKG;ICnKH,SDmKG;EJ4oB9B;EK5yBM;IAAwB,iBADZ;IACY,QADZ;ELgzBlB;EK/yBM;IAAwB,iBADZ;IACY,QADZ;ELmzBlB;EKlzBM;IAAwB,iBADZ;IACY,QADZ;ELszBlB;EKrzBM;IAAwB,iBADZ;IACY,QADZ;ELyzBlB;EKxzBM;IAAwB,iBADZ;IACY,QADZ;EL4zBlB;EK3zBM;IAAwB,iBADZ;IACY,QADZ;EL+zBlB;EK9zBM;IAAwB,iBADZ;IACY,QADZ;ELk0BlB;EKj0BM;IAAwB,iBADZ;IACY,QADZ;ELq0BlB;EKp0BM;IAAwB,iBADZ;IACY,QADZ;ELw0BlB;EKv0BM;IAAwB,iBADZ;IACY,QADZ;EL20BlB;EK10BM;IAAwB,kBADZ;IACY,SADZ;EL80BlB;EK70BM;IAAwB,kBADZ;IACY,SADZ;ELi1BlB;EKh1BM;IAAwB,kBADZ;IACY,SADZ;ELo1BlB;EK50BU;IHhBV,cAA4B;EF+1B5B;EK/0BU;IHhBV,sBAA8C;EFk2B9C;EKl1BU;IHhBV,uBAA8C;EFq2B9C;EKr1BU;IHhBV,gBAA8C;EFw2B9C;EKx1BU;IHhBV,uBAA8C;EF22B9C;EK31BU;IHhBV,uBAA8C;EF82B9C;EK91BU;IHhBV,gBAA8C;EFi3B9C;EKj2BU;IHhBV,uBAA8C;EFo3B9C;EKp2BU;IHhBV,uBAA8C;EFu3B9C;EKv2BU;IHhBV,gBAA8C;EF03B9C;EK12BU;IHhBV,uBAA8C;EF63B9C;EK72BU;IHhBV,uBAA8C;EFg4B9C;AACF;;AO76BM;EAAwB,wBAA0B;APi7BxD;;AOj7BM;EAAwB,0BAA0B;APq7BxD;;AOr7BM;EAAwB,gCAA0B;APy7BxD;;AOz7BM;EAAwB,yBAA0B;AP67BxD;;AO77BM;EAAwB,yBAA0B;APi8BxD;;AOj8BM;EAAwB,6BAA0B;APq8BxD;;AOr8BM;EAAwB,8BAA0B;APy8BxD;;AOz8BM;EAAwB,+BAA0B;EAA1B,wBAA0B;AP68BxD;;AO78BM;EAAwB,sCAA0B;EAA1B,+BAA0B;APi9BxD;;AGh6BI;EIjDE;IAAwB,wBAA0B;EPs9BtD;EOt9BI;IAAwB,0BAA0B;EPy9BtD;EOz9BI;IAAwB,gCAA0B;EP49BtD;EO59BI;IAAwB,yBAA0B;EP+9BtD;EO/9BI;IAAwB,yBAA0B;EPk+BtD;EOl+BI;IAAwB,6BAA0B;EPq+BtD;EOr+BI;IAAwB,8BAA0B;EPw+BtD;EOx+BI;IAAwB,+BAA0B;IAA1B,wBAA0B;EP2+BtD;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D;;AS5qDQ;EAAgC,0BAA4B;ATgrDpE;;AS/qDQ;;EAEE,8BAAoC;ATkrD9C;;AShrDQ;;EAEE,gCAAwC;ATmrDlD;;ASjrDQ;;EAEE,iCAA0C;ATorDpD;;ASlrDQ;;EAEE,+BAAsC;ATqrDhD;;ASpsDQ;EAAgC,yBAA4B;ATwsDpE;;ASvsDQ;;EAEE,6BAAoC;AT0sD9C;;ASxsDQ;;EAEE,+BAAwC;AT2sDlD;;ASzsDQ;;EAEE,gCAA0C;AT4sDpD;;AS1sDQ;;EAEE,8BAAsC;AT6sDhD;;AS5tDQ;EAAgC,uBAA4B;ATguDpE;;AS/tDQ;;EAEE,2BAAoC;ATkuD9C;;AShuDQ;;EAEE,6BAAwC;ATmuDlD;;ASjuDQ;;EAEE,8BAA0C;ATouDpD;;ASluDQ;;EAEE,4BAAsC;ATquDhD;;ASpvDQ;EAAgC,yBAA4B;ATwvDpE;;ASvvDQ;;EAEE,6BAAoC;AT0vD9C;;ASxvDQ;;EAEE,+BAAwC;AT2vDlD;;ASzvDQ;;EAEE,gCAA0C;AT4vDpD;;AS1vDQ;;EAEE,8BAAsC;AT6vDhD;;AS5wDQ;EAAgC,uBAA4B;ATgxDpE;;AS/wDQ;;EAEE,2BAAoC;ATkxD9C;;AShxDQ;;EAEE,6BAAwC;ATmxDlD;;ASjxDQ;;EAEE,8BAA0C;AToxDpD;;ASlxDQ;;EAEE,4BAAsC;ATqxDhD;;ASpyDQ;EAAgC,qBAA4B;ATwyDpE;;ASvyDQ;;EAEE,yBAAoC;AT0yD9C;;ASxyDQ;;EAEE,2BAAwC;AT2yDlD;;ASzyDQ;;EAEE,4BAA0C;AT4yDpD;;AS1yDQ;;EAEE,0BAAsC;AT6yDhD;;AS5zDQ;EAAgC,2BAA4B;ATg0DpE;;AS/zDQ;;EAEE,+BAAoC;ATk0D9C;;ASh0DQ;;EAEE,iCAAwC;ATm0DlD;;ASj0DQ;;EAEE,kCAA0C;ATo0DpD;;ASl0DQ;;EAEE,gCAAsC;ATq0DhD;;ASp1DQ;EAAgC,0BAA4B;ATw1DpE;;ASv1DQ;;EAEE,8BAAoC;AT01D9C;;ASx1DQ;;EAEE,gCAAwC;AT21DlD;;ASz1DQ;;EAEE,iCAA0C;AT41DpD;;AS11DQ;;EAEE,+BAAsC;AT61DhD;;AS52DQ;EAAgC,wBAA4B;ATg3DpE;;AS/2DQ;;EAEE,4BAAoC;ATk3D9C;;ASh3DQ;;EAEE,8BAAwC;ATm3DlD;;ASj3DQ;;EAEE,+BAA0C;ATo3DpD;;ASl3DQ;;EAEE,6BAAsC;ATq3DhD;;ASp4DQ;EAAgC,0BAA4B;ATw4DpE;;ASv4DQ;;EAEE,8BAAoC;AT04D9C;;ASx4DQ;;EAEE,gCAAwC;AT24DlD;;ASz4DQ;;EAEE,iCAA0C;AT44DpD;;AS14DQ;;EAEE,+BAAsC;AT64DhD;;AS55DQ;EAAgC,wBAA4B;ATg6DpE;;AS/5DQ;;EAEE,4BAAoC;ATk6D9C;;ASh6DQ;;EAEE,8BAAwC;ATm6DlD;;ASj6DQ;;EAEE,+BAA0C;ATo6DpD;;ASl6DQ;;EAEE,6BAAsC;ATq6DhD;;AS75DQ;EAAwB,2BAA2B;ATi6D3D;;ASh6DQ;;EAEE,+BAA+B;ATm6DzC;;ASj6DQ;;EAEE,iCAAiC;ATo6D3C;;ASl6DQ;;EAEE,kCAAkC;ATq6D5C;;ASn6DQ;;EAEE,gCAAgC;ATs6D1C;;ASr7DQ;EAAwB,0BAA2B;ATy7D3D;;ASx7DQ;;EAEE,8BAA+B;AT27DzC;;ASz7DQ;;EAEE,gCAAiC;AT47D3C;;AS17DQ;;EAEE,iCAAkC;AT67D5C;;AS37DQ;;EAEE,+BAAgC;AT87D1C;;AS78DQ;EAAwB,wBAA2B;ATi9D3D;;ASh9DQ;;EAEE,4BAA+B;ATm9DzC;;ASj9DQ;;EAEE,8BAAiC;ATo9D3C;;ASl9DQ;;EAEE,+BAAkC;ATq9D5C;;ASn9DQ;;EAEE,6BAAgC;ATs9D1C;;ASr+DQ;EAAwB,0BAA2B;ATy+D3D;;ASx+DQ;;EAEE,8BAA+B;AT2+DzC;;ASz+DQ;;EAEE,gCAAiC;AT4+D3C;;AS1+DQ;;EAEE,iCAAkC;AT6+D5C;;AS3+DQ;;EAEE,+BAAgC;AT8+D1C;;AS7/DQ;EAAwB,wBAA2B;ATigE3D;;AShgEQ;;EAEE,4BAA+B;ATmgEzC;;ASjgEQ;;EAEE,8BAAiC;ATogE3C;;ASlgEQ;;EAEE,+BAAkC;ATqgE5C;;ASngEQ;;EAEE,6BAAgC;ATsgE1C;;AShgEI;EAAmB,uBAAuB;ATogE9C;;ASngEI;;EAEE,2BAA2B;ATsgEjC;;ASpgEI;;EAEE,6BAA6B;ATugEnC;;ASrgEI;;EAEE,8BAA8B;ATwgEpC;;AStgEI;;EAEE,4BAA4B;ATygElC;;AGlhEI;EMlDI;IAAgC,oBAA4B;ETykElE;ESxkEM;;IAEE,wBAAoC;ET0kE5C;ESxkEM;;IAEE,0BAAwC;ET0kEhD;ESxkEM;;IAEE,2BAA0C;ET0kElD;ESxkEM;;IAEE,yBAAsC;ET0kE9C;ESzlEM;IAAgC,0BAA4B;ET4lElE;ES3lEM;;IAEE,8BAAoC;ET6lE5C;ES3lEM;;IAEE,gCAAwC;ET6lEhD;ES3lEM;;IAEE,iCAA0C;ET6lElD;ES3lEM;;IAEE,+BAAsC;ET6lE9C;ES5mEM;IAAgC,yBAA4B;ET+mElE;ES9mEM;;IAEE,6BAAoC;ETgnE5C;ES9mEM;;IAEE,+BAAwC;ETgnEhD;ES9mEM;;IAEE,gCAA0C;ETgnElD;ES9mEM;;IAEE,8BAAsC;ETgnE9C;ES/nEM;IAAgC,uBAA4B;ETkoElE;ESjoEM;;IAEE,2BAAoC;ETmoE5C;ESjoEM;;IAEE,6BAAwC;ETmoEhD;ESjoEM;;IAEE,8BAA0C;ETmoElD;ESjoEM;;IAEE,4BAAsC;ETmoE9C;ESlpEM;IAAgC,yBAA4B;ETqpElE;ESppEM;;IAEE,6BAAoC;ETspE5C;ESppEM;;IAEE,+BAAwC;ETspEhD;ESppEM;;IAEE,gCAA0C;ETspElD;ESppEM;;IAEE,8BAAsC;ETspE9C;ESrqEM;IAAgC,uBAA4B;ETwqElE;ESvqEM;;IAEE,2BAAoC;ETyqE5C;ESvqEM;;IAEE,6BAAwC;ETyqEhD;ESvqEM;;IAEE,8BAA0C;ETyqElD;ESvqEM;;IAEE,4BAAsC;ETyqE9C;ESxrEM;IAAgC,qBAA4B;ET2rElE;ES1rEM;;IAEE,yBAAoC;ET4rE5C;ES1rEM;;IAEE,2BAAwC;ET4rEhD;ES1rEM;;IAEE,4BAA0C;ET4rElD;ES1rEM;;IAEE,0BAAsC;ET4rE9C;ES3sEM;IAAgC,2BAA4B;ET8sElE;ES7sEM;;IAEE,+BAAoC;ET+sE5C;ES7sEM;;IAEE,iCAAwC;ET+sEhD;ES7sEM;;IAEE,kCAA0C;ET+sElD;ES7sEM;;IAEE,gCAAsC;ET+sE9C;ES9tEM;IAAgC,0BAA4B;ETiuElE;EShuEM;;IAEE,8BAAoC;ETkuE5C;EShuEM;;IAEE,gCAAwC;ETkuEhD;EShuEM;;IAEE,iCAA0C;ETkuElD;EShuEM;;IAEE,+BAAsC;ETkuE9C;ESjvEM;IAAgC,wBAA4B;ETovElE;ESnvEM;;IAEE,4BAAoC;ETqvE5C;ESnvEM;;IAEE,8BAAwC;ETqvEhD;ESnvEM;;IAEE,+BAA0C;ETqvElD;ESnvEM;;IAEE,6BAAsC;ETqvE9C;ESpwEM;IAAgC,0BAA4B;ETuwElE;EStwEM;;IAEE,8BAAoC;ETwwE5C;EStwEM;;IAEE,gCAAwC;ETwwEhD;EStwEM;;IAEE,iCAA0C;ETwwElD;EStwEM;;IAEE,+BAAsC;ETwwE9C;ESvxEM;IAAgC,wBAA4B;ET0xElE;ESzxEM;;IAEE,4BAAoC;ET2xE5C;ESzxEM;;IAEE,8BAAwC;ET2xEhD;ESzxEM;;IAEE,+BAA0C;ET2xElD;ESzxEM;;IAEE,6BAAsC;ET2xE9C;ESnxEM;IAAwB,2BAA2B;ETsxEzD;ESrxEM;;IAEE,+BAA+B;ETuxEvC;ESrxEM;;IAEE,iCAAiC;ETuxEzC;ESrxEM;;IAEE,kCAAkC;ETuxE1C;ESrxEM;;IAEE,gCAAgC;ETuxExC;EStyEM;IAAwB,0BAA2B;ETyyEzD;ESxyEM;;IAEE,8BAA+B;ET0yEvC;ESxyEM;;IAEE,gCAAiC;ET0yEzC;ESxyEM;;IAEE,iCAAkC;ET0yE1C;ESxyEM;;IAEE,+BAAgC;ET0yExC;ESzzEM;IAAwB,wBAA2B;ET4zEzD;ES3zEM;;IAEE,4BAA+B;ET6zEvC;ES3zEM;;IAEE,8BAAiC;ET6zEzC;ES3zEM;;IAEE,+BAAkC;ET6zE1C;ES3zEM;;IAEE,6BAAgC;ET6zExC;ES50EM;IAAwB,0BAA2B;ET+0EzD;ES90EM;;IAEE,8BAA+B;ETg1EvC;ES90EM;;IAEE,gCAAiC;ETg1EzC;ES90EM;;IAEE,iCAAkC;ETg1E1C;ES90EM;;IAEE,+BAAgC;ETg1ExC;ES/1EM;IAAwB,wBAA2B;ETk2EzD;ESj2EM;;IAEE,4BAA+B;ETm2EvC;ESj2EM;;IAEE,8BAAiC;ETm2EzC;ESj2EM;;IAEE,+BAAkC;ETm2E1C;ESj2EM;;IAEE,6BAAgC;ETm2ExC;ES71EE;IAAmB,uBAAuB;ETg2E5C;ES/1EE;;IAEE,2BAA2B;ETi2E/B;ES/1EE;;IAEE,6BAA6B;ETi2EjC;ES/1EE;;IAEE,8BAA8B;ETi2ElC;ES/1EE;;IAEE,4BAA4B;ETi2EhC;AACF;;AG32EI;EMlDI;IAAgC,oBAA4B;ETk6ElE;ESj6EM;;IAEE,wBAAoC;ETm6E5C;ESj6EM;;IAEE,0BAAwC;ETm6EhD;ESj6EM;;IAEE,2BAA0C;ETm6ElD;ESj6EM;;IAEE,yBAAsC;ETm6E9C;ESl7EM;IAAgC,0BAA4B;ETq7ElE;ESp7EM;;IAEE,8BAAoC;ETs7E5C;ESp7EM;;IAEE,gCAAwC;ETs7EhD;ESp7EM;;IAEE,iCAA0C;ETs7ElD;ESp7EM;;IAEE,+BAAsC;ETs7E9C;ESr8EM;IAAgC,yBAA4B;ETw8ElE;ESv8EM;;IAEE,6BAAoC;ETy8E5C;ESv8EM;;IAEE,+BAAwC;ETy8EhD;ESv8EM;;IAEE,gCAA0C;ETy8ElD;ESv8EM;;IAEE,8BAAsC;ETy8E9C;ESx9EM;IAAgC,uBAA4B;ET29ElE;ES19EM;;IAEE,2BAAoC;ET49E5C;ES19EM;;IAEE,6BAAwC;ET49EhD;ES19EM;;IAEE,8BAA0C;ET49ElD;ES19EM;;IAEE,4BAAsC;ET49E9C;ES3+EM;IAAgC,yBAA4B;ET8+ElE;ES7+EM;;IAEE,6BAAoC;ET++E5C;ES7+EM;;IAEE,+BAAwC;ET++EhD;ES7+EM;;IAEE,gCAA0C;ET++ElD;ES7+EM;;IAEE,8BAAsC;ET++E9C;ES9/EM;IAAgC,uBAA4B;ETigFlE;EShgFM;;IAEE,2BAAoC;ETkgF5C;EShgFM;;IAEE,6BAAwC;ETkgFhD;EShgFM;;IAEE,8BAA0C;ETkgFlD;EShgFM;;IAEE,4BAAsC;ETkgF9C;ESjhFM;IAAgC,qBAA4B;ETohFlE;ESnhFM;;IAEE,yBAAoC;ETqhF5C;ESnhFM;;IAEE,2BAAwC;ETqhFhD;ESnhFM;;IAEE,4BAA0C;ETqhFlD;ESnhFM;;IAEE,0BAAsC;ETqhF9C;ESpiFM;IAAgC,2BAA4B;ETuiFlE;EStiFM;;IAEE,+BAAoC;ETwiF5C;EStiFM;;IAEE,iCAAwC;ETwiFhD;EStiFM;;IAEE,kCAA0C;ETwiFlD;EStiFM;;IAEE,gCAAsC;ETwiF9C;ESvjFM;IAAgC,0BAA4B;ET0jFlE;ESzjFM;;IAEE,8BAAoC;ET2jF5C;ESzjFM;;IAEE,gCAAwC;ET2jFhD;ESzjFM;;IAEE,iCAA0C;ET2jFlD;ESzjFM;;IAEE,+BAAsC;ET2jF9C;ES1kFM;IAAgC,wBAA4B;ET6kFlE;ES5kFM;;IAEE,4BAAoC;ET8kF5C;ES5kFM;;IAEE,8BAAwC;ET8kFhD;ES5kFM;;IAEE,+BAA0C;ET8kFlD;ES5kFM;;IAEE,6BAAsC;ET8kF9C;ES7lFM;IAAgC,0BAA4B;ETgmFlE;ES/lFM;;IAEE,8BAAoC;ETimF5C;ES/lFM;;IAEE,gCAAwC;ETimFhD;ES/lFM;;IAEE,iCAA0C;ETimFlD;ES/lFM;;IAEE,+BAAsC;ETimF9C;EShnFM;IAAgC,wBAA4B;ETmnFlE;ESlnFM;;IAEE,4BAAoC;ETonF5C;ESlnFM;;IAEE,8BAAwC;ETonFhD;ESlnFM;;IAEE,+BAA0C;ETonFlD;ESlnFM;;IAEE,6BAAsC;ETonF9C;ES5mFM;IAAwB,2BAA2B;ET+mFzD;ES9mFM;;IAEE,+BAA+B;ETgnFvC;ES9mFM;;IAEE,iCAAiC;ETgnFzC;ES9mFM;;IAEE,kCAAkC;ETgnF1C;ES9mFM;;IAEE,gCAAgC;ETgnFxC;ES/nFM;IAAwB,0BAA2B;ETkoFzD;ESjoFM;;IAEE,8BAA+B;ETmoFvC;ESjoFM;;IAEE,gCAAiC;ETmoFzC;ESjoFM;;IAEE,iCAAkC;ETmoF1C;ESjoFM;;IAEE,+BAAgC;ETmoFxC;ESlpFM;IAAwB,wBAA2B;ETqpFzD;ESppFM;;IAEE,4BAA+B;ETspFvC;ESppFM;;IAEE,8BAAiC;ETspFzC;ESppFM;;IAEE,+BAAkC;ETspF1C;ESppFM;;IAEE,6BAAgC;ETspFxC;ESrqFM;IAAwB,0BAA2B;ETwqFzD;ESvqFM;;IAEE,8BAA+B;ETyqFvC;ESvqFM;;IAEE,gCAAiC;ETyqFzC;ESvqFM;;IAEE,iCAAkC;ETyqF1C;ESvqFM;;IAEE,+BAAgC;ETyqFxC;ESxrFM;IAAwB,wBAA2B;ET2rFzD;ES1rFM;;IAEE,4BAA+B;ET4rFvC;ES1rFM;;IAEE,8BAAiC;ET4rFzC;ES1rFM;;IAEE,+BAAkC;ET4rF1C;ES1rFM;;IAEE,6BAAgC;ET4rFxC;EStrFE;IAAmB,uBAAuB;ETyrF5C;ESxrFE;;IAEE,2BAA2B;ET0rF/B;ESxrFE;;IAEE,6BAA6B;ET0rFjC;ESxrFE;;IAEE,8BAA8B;ET0rFlC;ESxrFE;;IAEE,4BAA4B;ET0rFhC;AACF;;AGpsFI;EMlDI;IAAgC,oBAA4B;ET2vFlE;ES1vFM;;IAEE,wBAAoC;ET4vF5C;ES1vFM;;IAEE,0BAAwC;ET4vFhD;ES1vFM;;IAEE,2BAA0C;ET4vFlD;ES1vFM;;IAEE,yBAAsC;ET4vF9C;ES3wFM;IAAgC,0BAA4B;ET8wFlE;ES7wFM;;IAEE,8BAAoC;ET+wF5C;ES7wFM;;IAEE,gCAAwC;ET+wFhD;ES7wFM;;IAEE,iCAA0C;ET+wFlD;ES7wFM;;IAEE,+BAAsC;ET+wF9C;ES9xFM;IAAgC,yBAA4B;ETiyFlE;EShyFM;;IAEE,6BAAoC;ETkyF5C;EShyFM;;IAEE,+BAAwC;ETkyFhD;EShyFM;;IAEE,gCAA0C;ETkyFlD;EShyFM;;IAEE,8BAAsC;ETkyF9C;ESjzFM;IAAgC,uBAA4B;ETozFlE;ESnzFM;;IAEE,2BAAoC;ETqzF5C;ESnzFM;;IAEE,6BAAwC;ETqzFhD;ESnzFM;;IAEE,8BAA0C;ETqzFlD;ESnzFM;;IAEE,4BAAsC;ETqzF9C;ESp0FM;IAAgC,yBAA4B;ETu0FlE;ESt0FM;;IAEE,6BAAoC;ETw0F5C;ESt0FM;;IAEE,+BAAwC;ETw0FhD;ESt0FM;;IAEE,gCAA0C;ETw0FlD;ESt0FM;;IAEE,8BAAsC;ETw0F9C;ESv1FM;IAAgC,uBAA4B;ET01FlE;ESz1FM;;IAEE,2BAAoC;ET21F5C;ESz1FM;;IAEE,6BAAwC;ET21FhD;ESz1FM;;IAEE,8BAA0C;ET21FlD;ESz1FM;;IAEE,4BAAsC;ET21F9C;ES12FM;IAAgC,qBAA4B;ET62FlE;ES52FM;;IAEE,yBAAoC;ET82F5C;ES52FM;;IAEE,2BAAwC;ET82FhD;ES52FM;;IAEE,4BAA0C;ET82FlD;ES52FM;;IAEE,0BAAsC;ET82F9C;ES73FM;IAAgC,2BAA4B;ETg4FlE;ES/3FM;;IAEE,+BAAoC;ETi4F5C;ES/3FM;;IAEE,iCAAwC;ETi4FhD;ES/3FM;;IAEE,kCAA0C;ETi4FlD;ES/3FM;;IAEE,gCAAsC;ETi4F9C;ESh5FM;IAAgC,0BAA4B;ETm5FlE;ESl5FM;;IAEE,8BAAoC;ETo5F5C;ESl5FM;;IAEE,gCAAwC;ETo5FhD;ESl5FM;;IAEE,iCAA0C;ETo5FlD;ESl5FM;;IAEE,+BAAsC;ETo5F9C;ESn6FM;IAAgC,wBAA4B;ETs6FlE;ESr6FM;;IAEE,4BAAoC;ETu6F5C;ESr6FM;;IAEE,8BAAwC;ETu6FhD;ESr6FM;;IAEE,+BAA0C;ETu6FlD;ESr6FM;;IAEE,6BAAsC;ETu6F9C;ESt7FM;IAAgC,0BAA4B;ETy7FlE;ESx7FM;;IAEE,8BAAoC;ET07F5C;ESx7FM;;IAEE,gCAAwC;ET07FhD;ESx7FM;;IAEE,iCAA0C;ET07FlD;ESx7FM;;IAEE,+BAAsC;ET07F9C;ESz8FM;IAAgC,wBAA4B;ET48FlE;ES38FM;;IAEE,4BAAoC;ET68F5C;ES38FM;;IAEE,8BAAwC;ET68FhD;ES38FM;;IAEE,+BAA0C;ET68FlD;ES38FM;;IAEE,6BAAsC;ET68F9C;ESr8FM;IAAwB,2BAA2B;ETw8FzD;ESv8FM;;IAEE,+BAA+B;ETy8FvC;ESv8FM;;IAEE,iCAAiC;ETy8FzC;ESv8FM;;IAEE,kCAAkC;ETy8F1C;ESv8FM;;IAEE,gCAAgC;ETy8FxC;ESx9FM;IAAwB,0BAA2B;ET29FzD;ES19FM;;IAEE,8BAA+B;ET49FvC;ES19FM;;IAEE,gCAAiC;ET49FzC;ES19FM;;IAEE,iCAAkC;ET49F1C;ES19FM;;IAEE,+BAAgC;ET49FxC;ES3+FM;IAAwB,wBAA2B;ET8+FzD;ES7+FM;;IAEE,4BAA+B;ET++FvC;ES7+FM;;IAEE,8BAAiC;ET++FzC;ES7+FM;;IAEE,+BAAkC;ET++F1C;ES7+FM;;IAEE,6BAAgC;ET++FxC;ES9/FM;IAAwB,0BAA2B;ETigGzD;EShgGM;;IAEE,8BAA+B;ETkgGvC;EShgGM;;IAEE,gCAAiC;ETkgGzC;EShgGM;;IAEE,iCAAkC;ETkgG1C;EShgGM;;IAEE,+BAAgC;ETkgGxC;ESjhGM;IAAwB,wBAA2B;ETohGzD;ESnhGM;;IAEE,4BAA+B;ETqhGvC;ESnhGM;;IAEE,8BAAiC;ETqhGzC;ESnhGM;;IAEE,+BAAkC;ETqhG1C;ESnhGM;;IAEE,6BAAgC;ETqhGxC;ES/gGE;IAAmB,uBAAuB;ETkhG5C;ESjhGE;;IAEE,2BAA2B;ETmhG/B;ESjhGE;;IAEE,6BAA6B;ETmhGjC;ESjhGE;;IAEE,8BAA8B;ETmhGlC;ESjhGE;;IAEE,4BAA4B;ETmhGhC;AACF;;AG7hGI;EMlDI;IAAgC,oBAA4B;ETolGlE;ESnlGM;;IAEE,wBAAoC;ETqlG5C;ESnlGM;;IAEE,0BAAwC;ETqlGhD;ESnlGM;;IAEE,2BAA0C;ETqlGlD;ESnlGM;;IAEE,yBAAsC;ETqlG9C;ESpmGM;IAAgC,0BAA4B;ETumGlE;EStmGM;;IAEE,8BAAoC;ETwmG5C;EStmGM;;IAEE,gCAAwC;ETwmGhD;EStmGM;;IAEE,iCAA0C;ETwmGlD;EStmGM;;IAEE,+BAAsC;ETwmG9C;ESvnGM;IAAgC,yBAA4B;ET0nGlE;ESznGM;;IAEE,6BAAoC;ET2nG5C;ESznGM;;IAEE,+BAAwC;ET2nGhD;ESznGM;;IAEE,gCAA0C;ET2nGlD;ESznGM;;IAEE,8BAAsC;ET2nG9C;ES1oGM;IAAgC,uBAA4B;ET6oGlE;ES5oGM;;IAEE,2BAAoC;ET8oG5C;ES5oGM;;IAEE,6BAAwC;ET8oGhD;ES5oGM;;IAEE,8BAA0C;ET8oGlD;ES5oGM;;IAEE,4BAAsC;ET8oG9C;ES7pGM;IAAgC,yBAA4B;ETgqGlE;ES/pGM;;IAEE,6BAAoC;ETiqG5C;ES/pGM;;IAEE,+BAAwC;ETiqGhD;ES/pGM;;IAEE,gCAA0C;ETiqGlD;ES/pGM;;IAEE,8BAAsC;ETiqG9C;EShrGM;IAAgC,uBAA4B;ETmrGlE;ESlrGM;;IAEE,2BAAoC;ETorG5C;ESlrGM;;IAEE,6BAAwC;ETorGhD;ESlrGM;;IAEE,8BAA0C;ETorGlD;ESlrGM;;IAEE,4BAAsC;ETorG9C;ESnsGM;IAAgC,qBAA4B;ETssGlE;ESrsGM;;IAEE,yBAAoC;ETusG5C;ESrsGM;;IAEE,2BAAwC;ETusGhD;ESrsGM;;IAEE,4BAA0C;ETusGlD;ESrsGM;;IAEE,0BAAsC;ETusG9C;ESttGM;IAAgC,2BAA4B;ETytGlE;ESxtGM;;IAEE,+BAAoC;ET0tG5C;ESxtGM;;IAEE,iCAAwC;ET0tGhD;ESxtGM;;IAEE,kCAA0C;ET0tGlD;ESxtGM;;IAEE,gCAAsC;ET0tG9C;ESzuGM;IAAgC,0BAA4B;ET4uGlE;ES3uGM;;IAEE,8BAAoC;ET6uG5C;ES3uGM;;IAEE,gCAAwC;ET6uGhD;ES3uGM;;IAEE,iCAA0C;ET6uGlD;ES3uGM;;IAEE,+BAAsC;ET6uG9C;ES5vGM;IAAgC,wBAA4B;ET+vGlE;ES9vGM;;IAEE,4BAAoC;ETgwG5C;ES9vGM;;IAEE,8BAAwC;ETgwGhD;ES9vGM;;IAEE,+BAA0C;ETgwGlD;ES9vGM;;IAEE,6BAAsC;ETgwG9C;ES/wGM;IAAgC,0BAA4B;ETkxGlE;ESjxGM;;IAEE,8BAAoC;ETmxG5C;ESjxGM;;IAEE,gCAAwC;ETmxGhD;ESjxGM;;IAEE,iCAA0C;ETmxGlD;ESjxGM;;IAEE,+BAAsC;ETmxG9C;ESlyGM;IAAgC,wBAA4B;ETqyGlE;ESpyGM;;IAEE,4BAAoC;ETsyG5C;ESpyGM;;IAEE,8BAAwC;ETsyGhD;ESpyGM;;IAEE,+BAA0C;ETsyGlD;ESpyGM;;IAEE,6BAAsC;ETsyG9C;ES9xGM;IAAwB,2BAA2B;ETiyGzD;EShyGM;;IAEE,+BAA+B;ETkyGvC;EShyGM;;IAEE,iCAAiC;ETkyGzC;EShyGM;;IAEE,kCAAkC;ETkyG1C;EShyGM;;IAEE,gCAAgC;ETkyGxC;ESjzGM;IAAwB,0BAA2B;ETozGzD;ESnzGM;;IAEE,8BAA+B;ETqzGvC;ESnzGM;;IAEE,gCAAiC;ETqzGzC;ESnzGM;;IAEE,iCAAkC;ETqzG1C;ESnzGM;;IAEE,+BAAgC;ETqzGxC;ESp0GM;IAAwB,wBAA2B;ETu0GzD;ESt0GM;;IAEE,4BAA+B;ETw0GvC;ESt0GM;;IAEE,8BAAiC;ETw0GzC;ESt0GM;;IAEE,+BAAkC;ETw0G1C;ESt0GM;;IAEE,6BAAgC;ETw0GxC;ESv1GM;IAAwB,0BAA2B;ET01GzD;ESz1GM;;IAEE,8BAA+B;ET21GvC;ESz1GM;;IAEE,gCAAiC;ET21GzC;ESz1GM;;IAEE,iCAAkC;ET21G1C;ESz1GM;;IAEE,+BAAgC;ET21GxC;ES12GM;IAAwB,wBAA2B;ET62GzD;ES52GM;;IAEE,4BAA+B;ET82GvC;ES52GM;;IAEE,8BAAiC;ET82GzC;ES52GM;;IAEE,+BAAkC;ET82G1C;ES52GM;;IAEE,6BAAgC;ET82GxC;ESx2GE;IAAmB,uBAAuB;ET22G5C;ES12GE;;IAEE,2BAA2B;ET42G/B;ES12GE;;IAEE,6BAA6B;ET42GjC;ES12GE;;IAEE,8BAA8B;ET42GlC;ES12GE;;IAEE,4BAA4B;ET42GhC;AACF","file":"bootstrap-grid.css","sourcesContent":["/*!\n * Bootstrap Grid v4.6.1 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/deprecate\";\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n@import \"utilities/spacing\";\n","/*!\n * Bootstrap Grid v4.6.1 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n @each $name, $width in $grid-breakpoints {\n @if ($extend-breakpoint) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n}\n\n\n// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter * .5;\n padding-left: $gutter * .5;\n margin-right: auto;\n margin-left: auto;\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter * .5;\n margin-left: -$gutter * .5;\n}\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n @include deprecate(\"The `make-container-max-widths` mixin\", \"v4.5.2\", \"v5\");\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter * .5;\n padding-left: $gutter * .5;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage(divide($size, $columns));\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage(divide($size, $columns));\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: divide($size, $columns);\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 divide(100%, $count);\n max-width: divide(100%, $count);\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-pointer-cursor-for-buttons: true !default;\n$enable-print-styles: true !default;\n$enable-responsive-font-sizes: false !default;\n$enable-validation-icons: true !default;\n$enable-deprecation-messages: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n$grid-row-columns: 6 !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (4 3),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: $font-size-base * 1.25 !default;\n$font-size-sm: $font-size-base * .875 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer * .5 !default;\n$headings-font-family: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-color: $body-color !default;\n$table-bg: null !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-color: $table-color !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n$table-th-font-weight: null !default;\n\n$table-dark-color: $white !default;\n$table-dark-bg: $gray-800 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-color: $table-dark-color !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y * .5) !default;\n\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height-lg * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n$custom-control-cursor: null !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-label-color: null !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: null !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: null !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'><path stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/></svg>\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: null !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'><circle r='3' fill='#{$custom-control-indicator-checked-color}'/></svg>\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size * .5 !default;\n$custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;\n\n$custom-select-padding-y: $input-padding-y !default;\n$custom-select-padding-x: $input-padding-x !default;\n$custom-select-font-family: $input-font-family !default;\n$custom-select-font-size: $input-font-size !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'><path fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/></svg>\") !default;\n$custom-select-background: escape-svg($custom-select-indicator) right $custom-select-padding-x center / $custom-select-bg-size no-repeat !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-family: $input-font-family !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/></svg>\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}' viewBox='0 0 12 12'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>\") !default;\n\n$form-validation-states: () !default;\n$form-validation-states: map-merge(\n (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n ),\n ),\n $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer * .5 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer * .5 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) * .5 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-nav-scroll-max-height: 75vh !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-dark-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-x: 0 !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-200 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-500 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n$dropdown-header-padding: $dropdown-padding-y $dropdown-item-padding-x !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n$pagination-border-radius-sm: $border-radius-sm !default;\n$pagination-border-radius-lg: $border-radius-lg !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-color: null !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-height: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width * .5 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: .25rem !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-transition: $btn-transition !default;\n$badge-focus-width: $input-btn-focus-width !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n// Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding\n$modal-footer-margin-between: .5rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n$modal-scale-transform: scale(1.02) !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-color: null !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-font-size: null !default;\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/></svg>\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/></svg>\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-vertical-align: -.125em !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n$user-selects: all, auto, none !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter * .5;\n padding-left: $gutter * .5;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @if $columns > 0 {\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n }\n\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n @if $columns > 0 {\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n }\n}\n","// Bootstrap functions\n//\n// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n $prev-key: null;\n $prev-num: null;\n @each $key, $num in $map {\n @if $prev-num == null or unit($num) == \"%\" or unit($prev-num) == \"%\" {\n // Do nothing\n } @else if not comparable($prev-num, $num) {\n @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n } @else if $prev-num >= $num {\n @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n }\n $prev-key: $key;\n $prev-num: $num;\n }\n}\n\n// Starts at zero\n// Used to ensure the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map, $map-name: \"$grid-breakpoints\") {\n @if length($map) > 0 {\n $values: map-values($map);\n $first-value: nth($values, 1);\n @if $first-value != 0 {\n @warn \"First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.\";\n }\n }\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Hugo Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n $index: str-index($string, $search);\n\n @if $index {\n @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n }\n\n @return $string;\n}\n\n// See https://codepen.io/kevinweber/pen/dXWoRw\n//\n// Requires the use of quotes around data URIs.\n\n@function escape-svg($string) {\n @if str-index($string, \"data:image/svg+xml\") {\n @each $char, $encoded in $escaped-characters {\n // Do not escape the url brackets\n @if str-index($string, \"url(\") == 1 {\n $string: url(\"#{str-replace(str-slice($string, 6, -3), $char, $encoded)}\");\n } @else {\n $string: str-replace($string, $char, $encoded);\n }\n }\n }\n\n @return $string;\n}\n\n// Color contrast\n@function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light) {\n $r: red($color);\n $g: green($color);\n $b: blue($color);\n\n $yiq: (($r * 299) + ($g * 587) + ($b * 114)) * .001;\n\n @if ($yiq >= $yiq-contrasted-threshold) {\n @return $dark;\n } @else {\n @return $light;\n }\n}\n\n// Retrieve color Sass maps\n@function color($key: \"blue\") {\n @return map-get($colors, $key);\n}\n\n@function theme-color($key: \"primary\") {\n @return map-get($theme-colors, $key);\n}\n\n@function gray($key: \"100\") {\n @return map-get($grays, $key);\n}\n\n// Request a theme color level\n@function theme-color-level($color-name: \"primary\", $level: 0) {\n $color: theme-color($color-name);\n $color-base: if($level > 0, $black, $white);\n $level: abs($level);\n\n @return mix($color-base, $color, $level * $theme-color-interval);\n}\n\n// Return valid calc\n@function add($value1, $value2, $return-calc: true) {\n @if $value1 == null {\n @return $value2;\n }\n\n @if $value2 == null {\n @return $value1;\n }\n\n @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n @return $value1 + $value2;\n }\n\n @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(\" + \") + $value2);\n}\n\n@function subtract($value1, $value2, $return-calc: true) {\n @if $value1 == null and $value2 == null {\n @return null;\n }\n\n @if $value1 == null {\n @return -$value2;\n }\n\n @if $value2 == null {\n @return $value1;\n }\n\n @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n @return $value1 - $value2;\n }\n\n @if type-of($value2) != number {\n $value2: unquote(\"(\") + $value2 + unquote(\")\");\n }\n\n @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(\" - \") + $value2);\n}\n\n@function divide($dividend, $divisor, $precision: 10) {\n $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n $dividend: abs($dividend);\n $divisor: abs($divisor);\n @if $dividend == 0 {\n @return 0;\n }\n @if $divisor == 0 {\n @error \"Cannot divide by 0\";\n }\n $remainder: $dividend;\n $result: 0;\n $factor: 10;\n @while ($remainder > 0 and $precision >= 0) {\n $quotient: 0;\n @while ($remainder >= $divisor) {\n $remainder: $remainder - $divisor;\n $quotient: $quotient + 1;\n }\n $result: $result * 10 + $quotient;\n $factor: $factor * .1;\n $remainder: $remainder * 10;\n $precision: $precision - 1;\n @if ($precision < 0 and $remainder >= $divisor * 5) {\n $result: $result + 1;\n }\n }\n $result: $result * $factor * $sign;\n $dividend-unit: unit($dividend);\n $divisor-unit: unit($divisor);\n $unit-map: (\n \"px\": 1px,\n \"rem\": 1rem,\n \"em\": 1em,\n \"%\": 1%\n );\n @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n $result: $result * map-get($unit-map, $dividend-unit);\n }\n @return $result;\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $value in $displays {\n .d#{$infix}-#{$value} { display: $value !important; }\n }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n @each $value in $displays {\n .d-print-#{$value} { display: $value !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n @each $size, $length in $spacers {\n @if \"#{$size}\" != \"0\" {\n .m#{$infix}-n#{$size} { margin: -$length !important; }\n .mt#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-top: -$length !important;\n }\n .mr#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-right: -$length !important;\n }\n .mb#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-bottom: -$length !important;\n }\n .ml#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-left: -$length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n"]}
vendor/bootstrap/dist/css/bootstrap-grid.min.css CHANGED
@@ -1,7 +1,7 @@
1
  /*!
2
- * Bootstrap Grid v4.0.0 (https://getbootstrap.com)
3
- * Copyright 2011-2018 The Bootstrap Authors
4
- * Copyright 2011-2018 Twitter, Inc.
5
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6
- */@-ms-viewport{width:device-width}html{box-sizing:border-box;-ms-overflow-style:scrollbar}*,::after,::before{box-sizing:inherit}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-sm-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-sm-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-sm-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-sm-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-sm-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-sm-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-sm-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-sm-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-sm-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-sm-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-sm-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-sm-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-sm-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-md-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-md-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-md-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-md-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-md-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-md-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-md-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-md-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-md-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-md-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-md-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-md-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-md-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-md-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-lg-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-lg-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-lg-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-lg-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-lg-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-lg-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-lg-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-lg-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-lg-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-lg-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-lg-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-lg-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-lg-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-xl-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-xl-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-xl-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-xl-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-xl-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-xl-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-xl-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-xl-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-xl-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-xl-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-xl-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-xl-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-xl-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}.flex-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-sm-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-md-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-lg-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-xl-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}
7
  /*# sourceMappingURL=bootstrap-grid.min.css.map */
1
  /*!
2
+ * Bootstrap Grid v4.6.1 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors
4
+ * Copyright 2011-2021 Twitter, Inc.
5
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6
+ */html{box-sizing:border-box;-ms-overflow-style:scrollbar}*,::after,::before{box-sizing:inherit}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}
7
  /*# sourceMappingURL=bootstrap-grid.min.css.map */
vendor/bootstrap/dist/css/bootstrap-grid.min.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../scss/bootstrap-grid.scss","dist/css/bootstrap-grid.css","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/utilities/_display.scss","../../scss/utilities/_flex.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap Grid v4.0.0 (https://getbootstrap.com)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@at-root {\n @-ms-viewport { width: device-width; } // stylelint-disable-line at-rule-no-vendor-prefix\n}\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n","/*!\n * Bootstrap Grid v4.0.0 (https://getbootstrap.com)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n@-ms-viewport {\n width: device-width;\n}\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n min-height: 1px;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n}\n\n.col-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1;\n}\n\n.order-last {\n -webkit-box-ordinal-group: 14;\n -ms-flex-order: 13;\n order: 13;\n}\n\n.order-0 {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0;\n}\n\n.order-1 {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1;\n}\n\n.order-2 {\n -webkit-box-ordinal-group: 3;\n -ms-flex-order: 2;\n order: 2;\n}\n\n.order-3 {\n -webkit-box-ordinal-group: 4;\n -ms-flex-order: 3;\n order: 3;\n}\n\n.order-4 {\n -webkit-box-ordinal-group: 5;\n -ms-flex-order: 4;\n order: 4;\n}\n\n.order-5 {\n -webkit-box-ordinal-group: 6;\n -ms-flex-order: 5;\n order: 5;\n}\n\n.order-6 {\n -webkit-box-ordinal-group: 7;\n -ms-flex-order: 6;\n order: 6;\n}\n\n.order-7 {\n -webkit-box-ordinal-group: 8;\n -ms-flex-order: 7;\n order: 7;\n}\n\n.order-8 {\n -webkit-box-ordinal-group: 9;\n -ms-flex-order: 8;\n order: 8;\n}\n\n.order-9 {\n -webkit-box-ordinal-group: 10;\n -ms-flex-order: 9;\n order: 9;\n}\n\n.order-10 {\n -webkit-box-ordinal-group: 11;\n -ms-flex-order: 10;\n order: 10;\n}\n\n.order-11 {\n -webkit-box-ordinal-group: 12;\n -ms-flex-order: 11;\n order: 11;\n}\n\n.order-12 {\n -webkit-box-ordinal-group: 13;\n -ms-flex-order: 12;\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-sm-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1;\n }\n .order-sm-last {\n -webkit-box-ordinal-group: 14;\n -ms-flex-order: 13;\n order: 13;\n }\n .order-sm-0 {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0;\n }\n .order-sm-1 {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1;\n }\n .order-sm-2 {\n -webkit-box-ordinal-group: 3;\n -ms-flex-order: 2;\n order: 2;\n }\n .order-sm-3 {\n -webkit-box-ordinal-group: 4;\n -ms-flex-order: 3;\n order: 3;\n }\n .order-sm-4 {\n -webkit-box-ordinal-group: 5;\n -ms-flex-order: 4;\n order: 4;\n }\n .order-sm-5 {\n -webkit-box-ordinal-group: 6;\n -ms-flex-order: 5;\n order: 5;\n }\n .order-sm-6 {\n -webkit-box-ordinal-group: 7;\n -ms-flex-order: 6;\n order: 6;\n }\n .order-sm-7 {\n -webkit-box-ordinal-group: 8;\n -ms-flex-order: 7;\n order: 7;\n }\n .order-sm-8 {\n -webkit-box-ordinal-group: 9;\n -ms-flex-order: 8;\n order: 8;\n }\n .order-sm-9 {\n -webkit-box-ordinal-group: 10;\n -ms-flex-order: 9;\n order: 9;\n }\n .order-sm-10 {\n -webkit-box-ordinal-group: 11;\n -ms-flex-order: 10;\n order: 10;\n }\n .order-sm-11 {\n -webkit-box-ordinal-group: 12;\n -ms-flex-order: 11;\n order: 11;\n }\n .order-sm-12 {\n -webkit-box-ordinal-group: 13;\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-md-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1;\n }\n .order-md-last {\n -webkit-box-ordinal-group: 14;\n -ms-flex-order: 13;\n order: 13;\n }\n .order-md-0 {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0;\n }\n .order-md-1 {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1;\n }\n .order-md-2 {\n -webkit-box-ordinal-group: 3;\n -ms-flex-order: 2;\n order: 2;\n }\n .order-md-3 {\n -webkit-box-ordinal-group: 4;\n -ms-flex-order: 3;\n order: 3;\n }\n .order-md-4 {\n -webkit-box-ordinal-group: 5;\n -ms-flex-order: 4;\n order: 4;\n }\n .order-md-5 {\n -webkit-box-ordinal-group: 6;\n -ms-flex-order: 5;\n order: 5;\n }\n .order-md-6 {\n -webkit-box-ordinal-group: 7;\n -ms-flex-order: 6;\n order: 6;\n }\n .order-md-7 {\n -webkit-box-ordinal-group: 8;\n -ms-flex-order: 7;\n order: 7;\n }\n .order-md-8 {\n -webkit-box-ordinal-group: 9;\n -ms-flex-order: 8;\n order: 8;\n }\n .order-md-9 {\n -webkit-box-ordinal-group: 10;\n -ms-flex-order: 9;\n order: 9;\n }\n .order-md-10 {\n -webkit-box-ordinal-group: 11;\n -ms-flex-order: 10;\n order: 10;\n }\n .order-md-11 {\n -webkit-box-ordinal-group: 12;\n -ms-flex-order: 11;\n order: 11;\n }\n .order-md-12 {\n -webkit-box-ordinal-group: 13;\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-lg-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1;\n }\n .order-lg-last {\n -webkit-box-ordinal-group: 14;\n -ms-flex-order: 13;\n order: 13;\n }\n .order-lg-0 {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0;\n }\n .order-lg-1 {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1;\n }\n .order-lg-2 {\n -webkit-box-ordinal-group: 3;\n -ms-flex-order: 2;\n order: 2;\n }\n .order-lg-3 {\n -webkit-box-ordinal-group: 4;\n -ms-flex-order: 3;\n order: 3;\n }\n .order-lg-4 {\n -webkit-box-ordinal-group: 5;\n -ms-flex-order: 4;\n order: 4;\n }\n .order-lg-5 {\n -webkit-box-ordinal-group: 6;\n -ms-flex-order: 5;\n order: 5;\n }\n .order-lg-6 {\n -webkit-box-ordinal-group: 7;\n -ms-flex-order: 6;\n order: 6;\n }\n .order-lg-7 {\n -webkit-box-ordinal-group: 8;\n -ms-flex-order: 7;\n order: 7;\n }\n .order-lg-8 {\n -webkit-box-ordinal-group: 9;\n -ms-flex-order: 8;\n order: 8;\n }\n .order-lg-9 {\n -webkit-box-ordinal-group: 10;\n -ms-flex-order: 9;\n order: 9;\n }\n .order-lg-10 {\n -webkit-box-ordinal-group: 11;\n -ms-flex-order: 10;\n order: 10;\n }\n .order-lg-11 {\n -webkit-box-ordinal-group: 12;\n -ms-flex-order: 11;\n order: 11;\n }\n .order-lg-12 {\n -webkit-box-ordinal-group: 13;\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-xl-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1;\n }\n .order-xl-last {\n -webkit-box-ordinal-group: 14;\n -ms-flex-order: 13;\n order: 13;\n }\n .order-xl-0 {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0;\n }\n .order-xl-1 {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1;\n }\n .order-xl-2 {\n -webkit-box-ordinal-group: 3;\n -ms-flex-order: 2;\n order: 2;\n }\n .order-xl-3 {\n -webkit-box-ordinal-group: 4;\n -ms-flex-order: 3;\n order: 3;\n }\n .order-xl-4 {\n -webkit-box-ordinal-group: 5;\n -ms-flex-order: 4;\n order: 4;\n }\n .order-xl-5 {\n -webkit-box-ordinal-group: 6;\n -ms-flex-order: 5;\n order: 5;\n }\n .order-xl-6 {\n -webkit-box-ordinal-group: 7;\n -ms-flex-order: 6;\n order: 6;\n }\n .order-xl-7 {\n -webkit-box-ordinal-group: 8;\n -ms-flex-order: 7;\n order: 7;\n }\n .order-xl-8 {\n -webkit-box-ordinal-group: 9;\n -ms-flex-order: 8;\n order: 8;\n }\n .order-xl-9 {\n -webkit-box-ordinal-group: 10;\n -ms-flex-order: 9;\n order: 9;\n }\n .order-xl-10 {\n -webkit-box-ordinal-group: 11;\n -ms-flex-order: 10;\n order: 10;\n }\n .order-xl-11 {\n -webkit-box-ordinal-group: 12;\n -ms-flex-order: 11;\n order: 11;\n }\n .order-xl-12 {\n -webkit-box-ordinal-group: 13;\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n.d-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-md-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-print-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n.flex-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n}\n\n.flex-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important;\n}\n\n.justify-content-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n}\n\n.align-items-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n}\n\n.align-items-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n}\n\n.align-items-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important;\n}\n\n.align-items-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n}\n\n.align-content-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n}\n\n.align-content-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n}\n\n.align-content-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n}\n\n.align-content-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n}\n\n.align-content-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n}\n\n.align-self-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n}\n\n.align-self-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n}\n\n.align-self-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n}\n\n.align-self-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n}\n\n.align-self-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-sm-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-sm-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-sm-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-sm-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-sm-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-sm-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-sm-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-sm-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-sm-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-md-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-md-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-md-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-md-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-md-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-md-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-md-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-md-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-md-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-md-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-md-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-md-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-md-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-md-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-md-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-md-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-md-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-lg-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-lg-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-lg-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-lg-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-lg-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-lg-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-lg-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-lg-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-lg-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-xl-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xl-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-xl-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-xl-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-xl-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-xl-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-xl-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-xl-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-xl-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n .container-fluid {\n @include make-container();\n }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container() {\n width: 100%;\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row() {\n display: flex;\n flex-wrap: wrap;\n margin-right: ($grid-gutter-width / -2);\n margin-left: ($grid-gutter-width / -2);\n}\n\n@mixin make-col-ready() {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n min-height: 1px; // Prevent collapsing\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02px, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n min-height: 1px; // Prevent columns from collapsing when empty\n padding-right: ($gutter / 2);\n padding-left: ($gutter / 2);\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col#{$infix}-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none; // Reset earlier grid tiers\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .d#{$infix}-none { display: none !important; }\n .d#{$infix}-inline { display: inline !important; }\n .d#{$infix}-inline-block { display: inline-block !important; }\n .d#{$infix}-block { display: block !important; }\n .d#{$infix}-table { display: table !important; }\n .d#{$infix}-table-row { display: table-row !important; }\n .d#{$infix}-table-cell { display: table-cell !important; }\n .d#{$infix}-flex { display: flex !important; }\n .d#{$infix}-inline-flex { display: inline-flex !important; }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n .d-print-none { display: none !important; }\n .d-print-inline { display: inline !important; }\n .d-print-inline-block { display: inline-block !important; }\n .d-print-block { display: block !important; }\n .d-print-table { display: table !important; }\n .d-print-table-row { display: table-row !important; }\n .d-print-table-cell { display: table-cell !important; }\n .d-print-flex { display: flex !important; }\n .d-print-inline-flex { display: inline-flex !important; }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n"]}
1
+ {"version":3,"sources":["../../scss/bootstrap-grid.scss","dist/css/bootstrap-grid.css","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/utilities/_display.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_spacing.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap Grid v4.6.1 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/deprecate\";\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n@import \"utilities/spacing\";\n","/*!\n * Bootstrap Grid v4.6.1 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n -ms-flex-order: -1;\n order: -1;\n}\n\n.order-last {\n -ms-flex-order: 13;\n order: 13;\n}\n\n.order-0 {\n -ms-flex-order: 0;\n order: 0;\n}\n\n.order-1 {\n -ms-flex-order: 1;\n order: 1;\n}\n\n.order-2 {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.order-3 {\n -ms-flex-order: 3;\n order: 3;\n}\n\n.order-4 {\n -ms-flex-order: 4;\n order: 4;\n}\n\n.order-5 {\n -ms-flex-order: 5;\n order: 5;\n}\n\n.order-6 {\n -ms-flex-order: 6;\n order: 6;\n}\n\n.order-7 {\n -ms-flex-order: 7;\n order: 7;\n}\n\n.order-8 {\n -ms-flex-order: 8;\n order: 8;\n}\n\n.order-9 {\n -ms-flex-order: 9;\n order: 9;\n}\n\n.order-10 {\n -ms-flex-order: 10;\n order: 10;\n}\n\n.order-11 {\n -ms-flex-order: 11;\n order: 11;\n}\n\n.order-12 {\n -ms-flex-order: 12;\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-sm-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-sm-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-sm-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-sm-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-sm-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-sm-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-sm-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-sm-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-sm-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-sm-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-sm-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-sm-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-sm-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-sm-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-md-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-md-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-md-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-md-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-md-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-md-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-md-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-md-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-md-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-md-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-md-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-md-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-md-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-md-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-lg-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-lg-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-lg-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-lg-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-lg-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-lg-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-lg-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-lg-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-lg-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-lg-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-lg-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-lg-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-lg-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-lg-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-xl-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-xl-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-xl-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-xl-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-xl-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-xl-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-xl-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-xl-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-xl-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-xl-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-xl-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-xl-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-xl-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-xl-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n.d-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-md-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-print-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n.flex-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n}\n\n.flex-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n}\n\n.justify-content-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n}\n\n.align-items-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n}\n\n.align-items-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n}\n\n.align-items-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n}\n\n.align-items-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n}\n\n.align-content-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n}\n\n.align-content-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n}\n\n.align-content-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n}\n\n.align-content-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n}\n\n.align-content-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n}\n\n.align-self-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n}\n\n.align-self-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n}\n\n.align-self-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n}\n\n.align-self-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n}\n\n.align-self-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-sm-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-sm-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-sm-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-sm-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-sm-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-sm-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-sm-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-sm-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-md-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-md-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-md-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-md-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-md-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-md-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-md-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-md-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-md-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-md-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-md-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-md-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-md-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-md-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-md-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-md-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-lg-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-lg-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-lg-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-lg-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-lg-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-lg-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-lg-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-lg-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-xl-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-xl-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-xl-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-xl-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-xl-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-xl-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-xl-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-xl-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n @each $name, $width in $grid-breakpoints {\n @if ($extend-breakpoint) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n}\n\n\n// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter * .5;\n padding-left: $gutter * .5;\n margin-right: auto;\n margin-left: auto;\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter * .5;\n margin-left: -$gutter * .5;\n}\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n @include deprecate(\"The `make-container-max-widths` mixin\", \"v4.5.2\", \"v5\");\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter * .5;\n padding-left: $gutter * .5;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage(divide($size, $columns));\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage(divide($size, $columns));\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: divide($size, $columns);\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 divide(100%, $count);\n max-width: divide(100%, $count);\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter * .5;\n padding-left: $gutter * .5;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @if $columns > 0 {\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n }\n\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n @if $columns > 0 {\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $value in $displays {\n .d#{$infix}-#{$value} { display: $value !important; }\n }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n @each $value in $displays {\n .d-print-#{$value} { display: $value !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important;