Defender Security – Malware Scanner, Login Security & Firewall - Version 2.3

Version Description

  • Improvement: Change the description for X-Content-Type-Options security header
  • Fix: The WAF widget and WAF page will be hidden when white label activated
  • Fix: Include Subdomain option for Strict Transport security header
  • Fix: Cron for Audit logs
  • Other minor enhancements and fixes
Download this release

Release Info

Developer hoang1213
Plugin Icon 128x128 Defender Security – Malware Scanner, Login Security & Firewall
Version 2.3
Comparing to
See all releases

Code changes from version 2.2.7 to 2.3

Files changed (49) hide show
  1. app/behavior/activator-free.php +7 -55
  2. app/behavior/utils.php +4 -2
  3. app/behavior/wpmudev.php +20 -1
  4. app/component/cli.php +1 -17
  5. app/component/data-factory.php +40 -8
  6. app/controller/dashboard.php +298 -110
  7. app/controller/waf.php +174 -0
  8. app/module/advanced-tools/component/mask-login-listener.php +1 -0
  9. app/module/advanced-tools/component/security-header.php +129 -0
  10. app/module/advanced-tools/component/security-headers-listener.php +45 -0
  11. app/module/advanced-tools/component/security-headers/sh-content-type-options.php +77 -0
  12. app/module/advanced-tools/component/security-headers/sh-feature-policy.php +163 -0
  13. app/module/advanced-tools/component/security-headers/sh-referrer-policy.php +84 -0
  14. app/module/advanced-tools/component/security-headers/sh-strict-transport.php +162 -0
  15. app/module/advanced-tools/component/security-headers/sh-x-frame.php +115 -0
  16. app/module/advanced-tools/component/security-headers/sh-xss-protection.php +94 -0
  17. app/module/advanced-tools/controller/main.php +50 -37
  18. app/module/advanced-tools/controller/rest.php +34 -29
  19. app/module/advanced-tools/model/mask-settings.php +51 -11
  20. app/module/advanced-tools/model/security-headers-settings.php +257 -0
  21. app/module/audit/controller/main-free.php +0 -1
  22. app/module/hardener/model/settings.php +0 -15
  23. app/module/ip-lockout/component/notfound-listener.php +8 -5
  24. app/module/ip-lockout/controller/main.php +8 -47
  25. app/module/ip-lockout/controller/rest.php +44 -2
  26. app/module/scan/component/data-factory.php +3 -1
  27. app/module/scan/component/queue-factory.php +1 -1
  28. app/module/scan/controller/main.php +4 -3
  29. app/module/scan/model/settings.php +12 -4
  30. app/module/scan/view/layouts/layout.php +2 -2
  31. app/module/scan/view/notification.php +1 -1
  32. app/module/scan/view/pro-feature.php +1 -1
  33. app/module/setting/component/backup-settings.php +27 -22
  34. app/module/setting/controller/rest.php +15 -7
  35. app/module/setting/model/settings.php +2 -2
  36. app/module/two-factor.php +14 -0
  37. app/module/two-factor/component/auth-api.php +371 -0
  38. app/module/two-factor/component/auth-listener.php +460 -0
  39. app/module/two-factor/controller/main.php +93 -0
  40. app/module/two-factor/controller/rest.php +108 -0
  41. app/module/two-factor/model/auth-settings.php +171 -0
  42. app/module/two-factor/view/login/disabled.php +156 -0
  43. app/module/two-factor/view/login/enabled.php +50 -0
  44. app/module/two-factor/view/login/otp.php +331 -0
  45. app/module/two-factor/view/main.php +1 -0
  46. assets/app/advanced-tools.js +1 -1
  47. assets/app/audit.js +1 -1
  48. assets/app/dashboard.js +1 -1
  49. assets/app/ip-lockout.js +1 -1
app/behavior/activator-free.php CHANGED
@@ -6,57 +6,9 @@
6
  namespace WP_Defender\Behavior;
7
 
8
  use Hammer\Base\Behavior;
9
- use Hammer\Helper\HTTP_Helper;
10
  use Hammer\Helper\WP_Helper;
11
- use WP_Defender\Module\Scan\Component\Scan_Api;
12
- use WP_Defender\Module\Scan\Model\Settings;
13
 
14
  class Activator_Free extends Behavior {
15
- public function activateModule() {
16
- if ( ! Utils::instance()->checkPermission() ) {
17
- return;
18
- }
19
-
20
- if ( ! wp_verify_nonce( HTTP_Helper::retrieveGet( '_wpnonce' ), 'activateModule' ) ) {
21
- return;
22
- }
23
-
24
- $activator = $_POST;
25
- $activated = array();
26
- if ( count( $activator ) ) {
27
- foreach ( $activator as $item => $status ) {
28
- if ( $status != true ) {
29
- continue;
30
- }
31
- switch ( $item ) {
32
- case 'activate_scan':
33
- //start a new scan
34
- Scan_Api::createScan();
35
- $activated[] = $item;
36
- break;
37
- case 'activate_lockout':
38
- $settings = \WP_Defender\Module\IP_Lockout\Model\Settings::instance();
39
- $settings->detect_404 = true;
40
- $settings->login_protection = true;
41
- $activated[] = $item;
42
- $settings->save();
43
- break;
44
- default:
45
- //param not from the button on frontend, log it
46
- error_log( sprintf( 'Unexpected value %s from IP %s', $item, Utils::instance()->getUserIp() ) );
47
- break;
48
- }
49
- }
50
- }
51
-
52
- update_site_option( 'wp_defender_free_is_activated', 1 );
53
-
54
- wp_send_json_success( array(
55
- 'activated' => $activated,
56
- //'message' => __( "" )
57
- ) );
58
- }
59
-
60
  /**
61
  * Check if we should show activator screen
62
  * @return bool
@@ -69,26 +21,26 @@ class Activator_Free extends Behavior {
69
  if ( get_site_transient( 'wp_defender_free_is_activated' ) == 1 ) {
70
  return 0;
71
  }
72
-
73
  if ( get_site_option( 'wp_defender_free_is_activated' ) == 1 ) {
74
  return 0;
75
  }
76
-
77
- $keys = [
78
  'wp_defender',
79
  'wd_scan_settings',
80
  'wd_hardener_settings',
81
  'wd_audit_settings',
82
  'wd_2auth_settings',
83
- 'wd_masking_login_settings'
84
- ];
85
  foreach ( $keys as $key ) {
86
  $option = get_site_option( $key );
87
  if ( is_array( $option ) ) {
88
  return 0;
89
  }
90
  }
91
-
92
  return 1;
93
  }
94
- }
6
  namespace WP_Defender\Behavior;
7
 
8
  use Hammer\Base\Behavior;
 
9
  use Hammer\Helper\WP_Helper;
 
 
10
 
11
  class Activator_Free extends Behavior {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  /**
13
  * Check if we should show activator screen
14
  * @return bool
21
  if ( get_site_transient( 'wp_defender_free_is_activated' ) == 1 ) {
22
  return 0;
23
  }
24
+
25
  if ( get_site_option( 'wp_defender_free_is_activated' ) == 1 ) {
26
  return 0;
27
  }
28
+
29
+ $keys = array(
30
  'wp_defender',
31
  'wd_scan_settings',
32
  'wd_hardener_settings',
33
  'wd_audit_settings',
34
  'wd_2auth_settings',
35
+ 'wd_masking_login_settings',
36
+ );
37
  foreach ( $keys as $key ) {
38
  $option = get_site_option( $key );
39
  if ( is_array( $option ) ) {
40
  return 0;
41
  }
42
  }
43
+
44
  return 1;
45
  }
46
+ }
app/behavior/utils.php CHANGED
@@ -10,7 +10,7 @@ use Hammer\Helper\Log_Helper;
10
  use Hammer\Helper\WP_Helper;
11
  use WP_Defender\Component\Error_Code;
12
  use WP_Defender\Component\Jed;
13
- use WP_Defender\Module\Advanced_Tools\Model\Auth_Settings;
14
  use WP_Defender\Module\Hardener\Model\Settings;
15
  use WP_Defender\Module\IP_Lockout\Component\Login_Protection_Api;
16
  use WP_Defender\Module\Scan\Component\Scan_Api;
@@ -1124,7 +1124,9 @@ class Utils extends Behavior {
1124
  }
1125
 
1126
  public function parseDomain( $domain ) {
1127
- if ( ! filter_var( $domain, FILTER_VALIDATE_DOMAIN ) ) {
 
 
1128
  return false;
1129
  }
1130
  $suffix = $this->getDomainSuffix( $domain );
10
  use Hammer\Helper\WP_Helper;
11
  use WP_Defender\Component\Error_Code;
12
  use WP_Defender\Component\Jed;
13
+ use WP_Defender\Module\Two_Factor\Model\Auth_Settings;
14
  use WP_Defender\Module\Hardener\Model\Settings;
15
  use WP_Defender\Module\IP_Lockout\Component\Login_Protection_Api;
16
  use WP_Defender\Module\Scan\Component\Scan_Api;
1124
  }
1125
 
1126
  public function parseDomain( $domain ) {
1127
+ //FILTER_VALIDATE_DOMAIN filter will be added in PHP 7
1128
+ $filter_domain = version_compare( PHP_VERSION, '7.0', '>=' ) ? FILTER_VALIDATE_DOMAIN : FILTER_VALIDATE_URL;
1129
+ if ( ! filter_var( $domain, $filter_domain ) ) {
1130
  return false;
1131
  }
1132
  $suffix = $this->getDomainSuffix( $domain );
app/behavior/wpmudev.php CHANGED
@@ -40,11 +40,14 @@ class WPMUDEV extends Behavior {
40
  if ( \WP_Defender\Behavior\Utils::instance()->getAPIKey() ) {
41
  $site = \WPMUDEV_Dashboard::$site;
42
  if ( is_object( $site ) ) {
43
- $info = $site->get_wpmudev_branding( array() );
 
 
44
  return $info;
45
  }
46
  } else {
47
  return [
 
48
  'hide_branding' => false,
49
  'hero_image' => '',
50
  'footer_text' => '',
@@ -54,6 +57,22 @@ class WPMUDEV extends Behavior {
54
  }
55
  }
56
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
  /**
58
  * a quick helper for static class
59
  * @return WPMUDEV
40
  if ( \WP_Defender\Behavior\Utils::instance()->getAPIKey() ) {
41
  $site = \WPMUDEV_Dashboard::$site;
42
  if ( is_object( $site ) ) {
43
+ $info = $site->get_wpmudev_branding( array() );
44
+ $info['enabled'] = $this->is_whitelabel_enabled();
45
+
46
  return $info;
47
  }
48
  } else {
49
  return [
50
+ 'enabled' => false,
51
  'hide_branding' => false,
52
  'hero_image' => '',
53
  'footer_text' => '',
57
  }
58
  }
59
 
60
+ public function is_whitelabel_enabled() {
61
+ if ( \WP_Defender\Behavior\Utils::instance()->getAPIKey() ) {
62
+ $site = \WPMUDEV_Dashboard::$site;
63
+ $settings = $site->get_whitelabel_settings();
64
+
65
+ return $settings['enabled'];
66
+ }
67
+
68
+ return false;
69
+ }
70
+
71
+ public function is_dev_dashboard_installed() {
72
+ var_dump( get_plugins() );
73
+ die;
74
+ }
75
+
76
  /**
77
  * a quick helper for static class
78
  * @return WPMUDEV
app/component/cli.php CHANGED
@@ -206,23 +206,7 @@ class Cli {
206
  $prefix = strtolower( trim( fgets( STDIN ) ) );
207
  $service->new_prefix = $prefix;
208
  break;
209
- case 'sh-xframe':
210
- $service->mode = 'sameorigin';
211
- break;
212
- case 'sh-xss-protection':
213
- $service->mode = 'sanitize';
214
- break;
215
- case 'sh-feature-policy':
216
- $service->mode = 'self';
217
- break;
218
- case 'sh-referrer-policy':
219
- $service->mode = 'origin-when-cross-origin';
220
- break;
221
- case 'sh-content-type-options':
222
- $service->mode = 'nosniff';
223
- break;
224
- case 'sh-strict-transport':
225
- $service->hsts_cache_duration = '7 days';
226
  break;
227
  }
228
  $ret = $service->process();
206
  $prefix = strtolower( trim( fgets( STDIN ) ) );
207
  $service->new_prefix = $prefix;
208
  break;
209
+ default:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
210
  break;
211
  }
212
  $ret = $service->process();
app/component/data-factory.php CHANGED
@@ -5,12 +5,14 @@
5
 
6
  namespace WP_Defender\Component;
7
 
 
8
  use WP_Defender\Behavior\Utils;
9
  use WP_Defender\Module\Advanced_Tools\Component\Mask_Api;
10
- use WP_Defender\Module\Advanced_Tools\Model\Auth_Settings;
11
  use WP_Defender\Module\Advanced_Tools\Model\Mask_Settings;
 
12
  use WP_Defender\Module\Hardener\Model\Settings;
13
  use WP_Defender\Module\IP_Lockout\Model\Log_Model;
 
14
 
15
  class Data_Factory {
16
  public static function buildData() {
@@ -26,6 +28,27 @@ class Data_Factory {
26
  'audit' => self::buildAuditData(),
27
  'report' => self::buildReportData(),
28
  'advanced_tools' => self::buildAToolsData(),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  ];
30
  }
31
 
@@ -33,20 +56,29 @@ class Data_Factory {
33
  * @return array
34
  */
35
  public static function buildAToolsData() {
 
 
 
 
 
 
 
 
 
 
 
 
36
  return [
37
- 'two_factors' => [
38
- 'enabled' => Auth_Settings::instance()->enabled,
39
- 'useable' => count( Auth_Settings::instance()->user_roles ) > 0
40
- ],
41
- 'mask_login' => [
42
  'enabled' => Mask_Settings::instance()->enabled,
43
  'useable' => strlen( Mask_Settings::instance()->mask_url ) > 0,
44
  'login_url' => Mask_Api::getNewLoginUrl()
45
  ],
46
- 'nonces' => [
47
  'updateSettings' => wp_create_nonce( 'updateSettings' )
48
  ],
49
- 'endpoints' => [
50
  'updateSettings' => 'wp-defender/v1/advanced-tools/updateSettings'
51
  ]
52
  ];
5
 
6
  namespace WP_Defender\Component;
7
 
8
+ use Hammer\Base\Container;
9
  use WP_Defender\Behavior\Utils;
10
  use WP_Defender\Module\Advanced_Tools\Component\Mask_Api;
 
11
  use WP_Defender\Module\Advanced_Tools\Model\Mask_Settings;
12
+ use WP_Defender\Module\Advanced_Tools\Model\Security_Headers_Settings;
13
  use WP_Defender\Module\Hardener\Model\Settings;
14
  use WP_Defender\Module\IP_Lockout\Model\Log_Model;
15
+ use WP_Defender\Module\Two_Factor\Model\Auth_Settings;
16
 
17
  class Data_Factory {
18
  public static function buildData() {
28
  'audit' => self::buildAuditData(),
29
  'report' => self::buildReportData(),
30
  'advanced_tools' => self::buildAToolsData(),
31
+ 'two_fa' => self::buildTwoFaData(),
32
+ 'waf' => self::buildWafData()
33
+ ];
34
+ }
35
+
36
+ public static function buildWafData() {
37
+ return Container::instance()->get( 'waf' )->_scriptsData();
38
+ }
39
+
40
+ public static function buildTwoFaData() {
41
+ $settings = Auth_Settings::instance();
42
+
43
+ return [
44
+ 'enabled' => $settings->enabled,
45
+ 'useable' => $settings->enabled && count( $settings->user_roles ),
46
+ 'nonces' => [
47
+ 'updateSettings' => wp_create_nonce( 'updateSettings' ),
48
+ ],
49
+ 'endpoints' => [
50
+ 'updateSettings' => 'wp-defender/v1/twoFa/updateSettings',
51
+ ]
52
  ];
53
  }
54
 
56
  * @return array
57
  */
58
  public static function buildAToolsData() {
59
+ $headers = [];
60
+ if ( isset( wp_defender()->global['security_headers_enabled'] ) ) {
61
+ $headers = wp_defender()->global['security_headers_enabled'];
62
+ }
63
+ $data = [];
64
+ foreach ( $headers as $header ) {
65
+ $data[] = [
66
+ 'slug' => $header::$rule_slug,
67
+ 'title' => $header->getTitle()
68
+ ];
69
+ }
70
+
71
  return [
72
+ 'security_headers' => $data,
73
+ 'mask_login' => [
 
 
 
74
  'enabled' => Mask_Settings::instance()->enabled,
75
  'useable' => strlen( Mask_Settings::instance()->mask_url ) > 0,
76
  'login_url' => Mask_Api::getNewLoginUrl()
77
  ],
78
+ 'nonces' => [
79
  'updateSettings' => wp_create_nonce( 'updateSettings' )
80
  ],
81
+ 'endpoints' => [
82
  'updateSettings' => 'wp-defender/v1/advanced-tools/updateSettings'
83
  ]
84
  ];
app/controller/dashboard.php CHANGED
@@ -5,9 +5,11 @@
5
 
6
  namespace WP_Defender\Controller;
7
 
 
8
  use Hammer\Helper\HTTP_Helper;
9
  use Hammer\Helper\WP_Helper;
10
  use WP_Defender\Behavior\Utils;
 
11
  use WP_Defender\Component\Data_Factory;
12
  use WP_Defender\Controller;
13
  use WP_Defender\Module\Audit\Component\Audit_API;
@@ -21,28 +23,164 @@ use WP_Defender\Module\Setting\Component\Backup_Settings;
21
 
22
  class Dashboard extends Controller {
23
  protected $slug = 'wp-defender';
24
-
25
  public function __construct() {
26
  if ( $this->isNetworkActivate( wp_defender()->plugin_slug ) ) {
27
  $this->addAction( 'network_admin_menu', 'admin_menu' );
28
  } else {
29
  $this->addAction( 'admin_menu', 'admin_menu' );
30
  }
31
-
32
  if ( $this->isInPage() ) {
33
  $this->addAction( 'defender_enqueue_assets', 'scripts', 11 );
34
  }
35
-
36
  $this->addAjaxAction( 'wp-defender/v1/blacklistWidgetStatus', 'blacklistWidgetStatus' );
37
  $this->addAjaxAction( 'wp-defender/v1/toggleBlacklistWidget', 'toggleBlacklistWidget' );
38
- $this->addAjaxAction( 'wp-defender/v1/activateModule', 'activateModule' );
 
 
39
  $this->addAjaxAction( 'wp-defender/v1/skipActivator', 'skipQuickSetup' );
 
40
  $this->addAction( 'defenderSubmitStats', 'defenderSubmitStats' );
41
  $this->addFilter( 'wdp_register_hub_action', 'addMyEndpoint' );
42
  add_filter( 'custom_menu_order', '__return_true' );
43
  $this->addFilter( 'menu_order', 'menuOrder' );
44
  }
45
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46
  /**
47
  * Skip quick setup
48
  */
@@ -50,7 +188,7 @@ class Dashboard extends Controller {
50
  if ( ! $this->checkPermission() ) {
51
  return;
52
  }
53
-
54
  if ( ! wp_verify_nonce( HTTP_Helper::retrieveGet( '_wpnonce' ), 'skipActivator' ) ) {
55
  return;
56
  }
@@ -58,35 +196,47 @@ class Dashboard extends Controller {
58
  update_site_option( 'wp_defender' . $is_free . '_is_activated', 1 );
59
  wp_send_json_success();
60
  }
61
-
 
 
 
 
 
 
 
 
 
 
 
 
 
62
  public function menuOrder( $menu_order ) {
63
  global $submenu;
64
  if ( isset( $submenu['wp-defender'] ) ) {
65
- $defender_menu = $submenu['wp-defender'];
66
- //$defender_menu[6][4] = 'wd-menu-hide';
67
- $defender_menu[0][0] = esc_html__( "Dashboard", "defender-security" );
68
  $defender_menu = array_values( $defender_menu );
69
  $submenu['wp-defender'] = $defender_menu;
70
  }
71
-
72
  global $menu;
73
  $count = $this->countTotalIssues();
74
  $indicator = $count > 0 ? ' <span class="update-plugins wd-issue-indicator-sidebar"><span class="plugin-count">' . $count . '</span></span>' : null;
75
  foreach ( $menu as $k => $item ) {
76
- if ( $item[2] == 'wp-defender' ) {
77
  $menu[ $k ][0] .= $indicator;
78
  }
79
  }
80
-
81
  return $menu_order;
82
  }
83
-
84
  public function defenderSubmitStats() {
85
  if ( $this->hasMethod( '_submitStatsToDev' ) ) {
86
  $this->_submitStatsToDev();
87
  }
88
  }
89
-
90
  /**
91
  * @param $actions
92
  *
@@ -101,20 +251,20 @@ class Dashboard extends Controller {
101
  $actions['defender_blacklist_ip'] = array( &$this, 'blacklistIP' );
102
  $actions['defender_get_stats'] = array( &$this, 'getStats' );
103
  $actions['defender_get_scan_progress'] = array( &$this, 'getScanProgress' );
104
-
105
  //backup/restore settings
106
  $actions['defender_export_settings'] = array( &$this, 'exportSettings' );
107
  $actions['defender_import_settings'] = array( &$this, 'importSettings' );
108
-
109
  return $actions;
110
  }
111
-
112
  public function importSettings( $params ) {
113
  //dirty but quick
114
  $configs = json_decode( json_encode( $params->configs ), true );
115
  foreach ( $configs as $module => $mdata ) {
116
  foreach ( $mdata as $key => $value ) {
117
- if ( $key == 'geoIP_db' ) {
118
  if ( ! empty( $value ) ) {
119
  //download it
120
  Login_Protection_Api::downloadGeoIP();
@@ -126,15 +276,14 @@ class Dashboard extends Controller {
126
  $value = str_replace( '{nl}', PHP_EOL, $value );
127
  $mdata[ $key ] = $value;
128
  }
129
-
130
  }
131
  $configs[ $module ] = $mdata;
132
  }
133
  Backup_Settings::restoreData( $configs );
134
-
135
  wp_send_json_success();
136
  }
137
-
138
  public function exportSettings() {
139
  $data = Backup_Settings::parseDataForHub();
140
  //we have to replace all the new line in configs
@@ -151,25 +300,29 @@ class Dashboard extends Controller {
151
  $data['configs'] = $configs;
152
  wp_send_json_success( $data );
153
  }
154
-
155
  public function getScanProgress() {
156
  $scanning = new Scanning();
157
  $ret = $scanning->run();
158
  if ( is_wp_error( $ret ) ) {
159
- wp_send_json_error( array(
160
- 'message' => $ret->get_error_message()
161
- ) );
 
 
162
  } else {
163
  $percent = $scanning->getScanProgress();
164
- if ( $ret == true ) {
165
  $percent = 100;
166
  }
167
- wp_send_json_success( array(
168
- 'progress' => $percent
169
- ) );
 
 
170
  }
171
  }
172
-
173
  /**
174
  * @param $params
175
  * @param $action
@@ -177,34 +330,37 @@ class Dashboard extends Controller {
177
  public function newScan( $params, $action ) {
178
  $ret = Scan_Api::createScan();
179
  if ( is_wp_error( $ret ) ) {
180
- wp_send_json_error( array(
181
- 'message' => $ret->get_error_message()
182
- ) );
 
 
183
  }
184
-
185
  wp_send_json_success();
186
  }
187
-
188
  /**
189
  * @param $params
190
  * @param $action
191
  */
192
  public function scheduleScan( $params, $action ) {
193
- $frequency = $params['frequency'];
194
- $day = $params['day'];
195
- $time = $params['time'];
196
- $allowedFreq = array( 1, 7, 30 );
197
- if ( ! in_array( $frequency, $allowedFreq ) || ! in_array( $day, Utils::instance()->getDaysOfWeek() ) || ! in_array( $time, Utils::instance()->getTimes() ) ) {
 
198
  wp_send_json_error();
199
  }
200
  $settings = Settings::instance();
201
  $settings->frequency = $frequency;
202
  $settings->day = $day;
203
  $settings->time = $time;
204
-
205
  wp_send_json_success();
206
  }
207
-
208
  /**
209
  * Hub Audit log endpoint
210
  *
@@ -216,7 +372,7 @@ class Dashboard extends Controller {
216
  if ( class_exists( '\WP_Defender\Module\Audit\Model\Settings' ) ) {
217
  $response = array();
218
  $settings = \WP_Defender\Module\Audit\Model\Settings::instance();
219
- if ( $settings->enabled == true ) {
220
  $settings->enabled = false;
221
  $response['enabled'] = false;
222
  } else {
@@ -227,7 +383,7 @@ class Dashboard extends Controller {
227
  }
228
  wp_send_json_success( $response );
229
  }
230
-
231
  /**
232
  * Hub Lockouts endpoint
233
  *
@@ -238,7 +394,7 @@ class Dashboard extends Controller {
238
  $type = $params['type'];
239
  $settings = \WP_Defender\Module\IP_Lockout\Model\Settings::instance();
240
  $response = array();
241
- if ( $type == 'login' ) {
242
  if ( $settings->login_protection ) {
243
  $settings->login_protection = 0;
244
  $response[ $type ] = 'disabled';
@@ -247,7 +403,7 @@ class Dashboard extends Controller {
247
  $response[ $type ] = 'enabled';
248
  }
249
  $settings->save();
250
- } else if ( $type == '404' ) {
251
  if ( $settings->detect_404 ) {
252
  $settings->detect_404 = 0;
253
  $response[ $type ] = 'disabled';
@@ -261,7 +417,7 @@ class Dashboard extends Controller {
261
  }
262
  wp_send_json_success();
263
  }
264
-
265
  /**
266
  * Hub Whitelist IP endpoint
267
  *
@@ -279,7 +435,7 @@ class Dashboard extends Controller {
279
  }
280
  wp_send_json_success();
281
  }
282
-
283
  /**
284
  * Hub Blacklist IP endpoint
285
  *
@@ -297,7 +453,7 @@ class Dashboard extends Controller {
297
  }
298
  wp_send_json_success();
299
  }
300
-
301
  /**
302
  * Hub Stats endpoint
303
  *
@@ -308,81 +464,90 @@ class Dashboard extends Controller {
308
  $stats = Utils::instance()->generateStats();
309
  wp_send_json_success(
310
  array(
311
- 'stats' => $stats
312
  )
313
  );
314
  }
315
-
316
  public function actionIndex() {
317
  $this->render( 'main' );
318
  }
319
-
320
  public function blacklistWidgetStatus() {
321
  if ( ! $this->checkPermission() ) {
322
  return;
323
  }
324
-
325
  if ( ! wp_verify_nonce( HTTP_Helper::retrieveGet( '_wpnonce' ), 'blacklistWidgetStatus' ) ) {
326
  return;
327
  }
328
-
329
  if ( $this->hasMethod( 'pullBlacklistStatus' ) ) {
330
  $this->pullBlacklistStatus();
331
  }
332
-
333
  exit;
334
  }
335
-
336
  public function toggleBlacklistWidget() {
337
  if ( ! $this->checkPermission() ) {
338
  return;
339
  }
340
-
341
  if ( ! wp_verify_nonce( HTTP_Helper::retrieveGet( '_wpnonce' ), 'toggleBlacklistWidget' ) ) {
342
  return;
343
  }
344
-
345
  if ( $this->hasMethod( 'toggleStatus' ) ) {
346
  $this->toggleStatus();
347
  }
348
-
349
  exit;
350
  }
351
-
352
  /**
353
- * @param bool $detail
354
  *
355
  * @return array|int|null|string
356
  */
357
  public function countTotalIssues( $detail = false ) {
358
- $hardenerCount = count( \WP_Defender\Module\Hardener\Model\Settings::instance()->issues );
359
- $scan = Scan_Api::getLastScan();
360
- $total = $hardenerCount;
361
- $scanCount = 0;
362
  if ( is_object( $scan ) ) {
363
- $scanCount = $scan->countAll( Result_Item::STATUS_ISSUE );
364
-
365
- $total += $scanCount;
366
  }
367
- if ( $detail == false ) {
368
  return $total;
369
  }
370
-
371
- return array( $hardenerCount, $scanCount );
372
  }
373
-
374
  /**
375
  *
376
  */
377
  public function admin_menu() {
378
  $cap = is_multisite() ? 'manage_network_options' : 'manage_options';
379
- $menu_title = wp_defender()->isFree ? esc_html__( "Defender", "defender-security" ) : esc_html__( "Defender Pro", "defender-security" );
380
- add_menu_page( $menu_title, $menu_title, $cap, 'wp-defender', array(
381
- &$this,
382
- 'actionIndex'
383
- ), $this->get_menu_icon() );
 
 
 
 
 
 
 
 
 
384
  }
385
-
386
  /**
387
  * Return svg image
388
  * @return string
@@ -390,47 +555,70 @@ class Dashboard extends Controller {
390
  private function get_menu_icon() {
391
  ob_start();
392
  ?>
393
- <svg width="17px" height="18px" viewBox="10 397 17 18" version="1.1" xmlns="http://www.w3.org/2000/svg"
394
- xmlns:xlink="http://www.w3.org/1999/xlink">
395
- <!-- Generator: Sketch 3.8.3 (29802) - http://www.bohemiancoding.com/sketch -->
396
- <desc>Created with Sketch.</desc>
397
- <defs></defs>
398
- <path
399
- d="M24.8009393,403.7962 L23.7971393,410.1724 C23.7395393,410.5372 23.5313393,410.8528 23.2229393,411.0532 L18.4001393,413.6428 L13.5767393,411.0532 C13.2683393,410.8528 13.0601393,410.5372 13.0019393,410.1724 L11.9993393,403.7962 L11.6153393,401.3566 C12.5321393,402.9514 14.4893393,405.5518 18.4001393,408.082 C22.3115393,405.5518 24.2675393,402.9514 25.1855393,401.3566 L24.8009393,403.7962 Z M26.5985393,398.0644 C25.7435393,397.87 22.6919393,397.2106 19.9571393,397 L19.9571393,403.4374 L18.4037393,404.5558 L16.8431393,403.4374 L16.8431393,397 C14.1077393,397.2106 11.0561393,397.87 10.2011393,398.0644 C10.0685393,398.0938 9.98213933,398.221 10.0031393,398.3536 L10.8875393,403.969 L11.8913393,410.3446 C12.0071393,411.0796 12.4559393,411.7192 13.1105393,412.0798 L16.8431393,414.1402 L18.4001393,415 L19.9571393,414.1402 L23.6891393,412.0798 C24.3431393,411.7192 24.7925393,411.0796 24.9083393,410.3446 L25.9121393,403.969 L26.7965393,398.3536 C26.8175393,398.221 26.7311393,398.0938 26.5985393,398.0644 L26.5985393,398.0644 Z"
400
- id="Defender-Icon" stroke="none" fill="#FFFFFF" fill-rule="evenodd"></path>
401
- </svg>
402
  <?php
403
  $svg = ob_get_clean();
404
-
405
  return 'data:image/svg+xml;base64,' . base64_encode( $svg );
406
  }
407
-
408
  public function scripts() {
409
  wp_enqueue_style( 'defender' );
410
- wp_register_script( 'defender-dashboard', wp_defender()->getPluginUrl() . 'assets/app/dashboard.js', array(
411
- 'def-vue',
412
- 'defender',
413
- 'wp-i18n'
414
- ), wp_defender()->version, true );
415
- \WP_Defender\Behavior\Utils::instance()->createTranslationJson( 'defender-dashboard' );
 
 
 
 
 
 
416
  wp_set_script_translations( 'defender-dashboard', 'wpdef', wp_defender()->getPluginPath() . 'languages' );
417
- wp_localize_script( 'defender-dashboard', 'dashboard', array_merge( Data_Factory::buildData(), [
418
- 'quick_setup' => [
419
- 'show' => $this->isShowActivator(),
420
- 'nonces' => [
421
- 'skip' => wp_create_nonce( 'skipActivator' ),
422
- 'activate' => wp_create_nonce( 'activateModule' )
423
- ],
424
- 'endpoints' => [
425
- 'skip' => 'wp-defender/v1/skipActivator',
426
- 'activate' => 'wp-defender/v1/activateModule'
427
- ]
428
- ]
429
- ] ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
430
  wp_enqueue_script( 'defender-dashboard' );
431
  wp_enqueue_script( 'wpmudev-sui' );
432
  }
433
-
434
  /**
435
  * @return array
436
  */
5
 
6
  namespace WP_Defender\Controller;
7
 
8
+ use Hammer\Base\Container;
9
  use Hammer\Helper\HTTP_Helper;
10
  use Hammer\Helper\WP_Helper;
11
  use WP_Defender\Behavior\Utils;
12
+ use WP_Defender\Behavior\WPMUDEV;
13
  use WP_Defender\Component\Data_Factory;
14
  use WP_Defender\Controller;
15
  use WP_Defender\Module\Audit\Component\Audit_API;
23
 
24
  class Dashboard extends Controller {
25
  protected $slug = 'wp-defender';
26
+
27
  public function __construct() {
28
  if ( $this->isNetworkActivate( wp_defender()->plugin_slug ) ) {
29
  $this->addAction( 'network_admin_menu', 'admin_menu' );
30
  } else {
31
  $this->addAction( 'admin_menu', 'admin_menu' );
32
  }
33
+
34
  if ( $this->isInPage() ) {
35
  $this->addAction( 'defender_enqueue_assets', 'scripts', 11 );
36
  }
37
+
38
  $this->addAjaxAction( 'wp-defender/v1/blacklistWidgetStatus', 'blacklistWidgetStatus' );
39
  $this->addAjaxAction( 'wp-defender/v1/toggleBlacklistWidget', 'toggleBlacklistWidget' );
40
+
41
+ $module_activation = wp_defender()->isFree ? 'activateModuleFree' : 'activateModule';
42
+ $this->addAjaxAction( 'wp-defender/v1/activateModule', $module_activation );
43
  $this->addAjaxAction( 'wp-defender/v1/skipActivator', 'skipQuickSetup' );
44
+ $this->addAjaxAction( 'wp-defender/v1/hideFeature', 'hideFeature' );
45
  $this->addAction( 'defenderSubmitStats', 'defenderSubmitStats' );
46
  $this->addFilter( 'wdp_register_hub_action', 'addMyEndpoint' );
47
  add_filter( 'custom_menu_order', '__return_true' );
48
  $this->addFilter( 'menu_order', 'menuOrder' );
49
  }
50
+
51
+ /**
52
+ * Activate modules
53
+ */
54
+ public function activateModule() {
55
+ if ( ! Utils::instance()->checkPermission() ) {
56
+ return;
57
+ }
58
+
59
+ if ( ! wp_verify_nonce( HTTP_Helper::retrieveGet( '_wpnonce' ), 'activateModule' ) ) {
60
+ return;
61
+ }
62
+
63
+ $activator = $_POST;
64
+ $activated = array();
65
+ if ( count( $activator ) ) {
66
+ foreach ( $activator as $item => $status ) {
67
+ if ( 'false' === (string) $status ) {
68
+ continue;
69
+ }
70
+ switch ( $item ) {
71
+ case 'activate_scan':
72
+ $settings = \WP_Defender\Module\Scan\Model\Settings::instance();
73
+ $settings->notification = true;
74
+ $settings->time = '4:00';
75
+ $settings->day = 'monday';
76
+ $settings->frequency = 7;
77
+ $cron_time = Utils::instance()->reportCronTimestamp( $settings->time,
78
+ 'scanReportCron' );
79
+ wp_schedule_event( $cron_time, 'daily', 'scanReportCron' );
80
+ $settings->save();
81
+ //start a new scan
82
+ Scan_Api::createScan();
83
+ $activated[] = $item;
84
+ break;
85
+ case 'activate_audit':
86
+ $settings = \WP_Defender\Module\Audit\Model\Settings::instance();
87
+ $settings->enabled = true;
88
+ $settings->notification = true;
89
+ $settings->time = '4:00';
90
+ $settings->day = 'monday';
91
+ $settings->frequency = 7;
92
+ $cron_time = Utils::instance()->reportCronTimestamp( $settings->time,
93
+ 'auditReportCron' );
94
+ wp_schedule_event( $cron_time, 'daily', 'auditReportCron' );
95
+ $activated[] = $item;
96
+ $settings->save();
97
+ break;
98
+ case 'activate_blacklist':
99
+ if ( $this->hasMethod( 'toggleStatus' ) ) {
100
+ $this->toggleStatus( - 1, false );
101
+ }
102
+ $activated[] = $item;
103
+ break;
104
+ case 'activate_lockout':
105
+ $settings = \WP_Defender\Module\IP_Lockout\Model\Settings::instance();
106
+ $settings->detect_404 = true;
107
+ $settings->login_protection = true;
108
+ $settings->report = true;
109
+ $settings->report_frequency = 7;
110
+ $settings->report_day = 'monday';
111
+ $settings->report_time = '4:00';
112
+ $cron_time = Utils::instance()->reportCronTimestamp( $settings->report_time,
113
+ 'lockoutReportCron' );
114
+ wp_schedule_event( $cron_time, 'daily', 'lockoutReportCron' );
115
+ $activated[] = $item;
116
+ $settings->save();
117
+ break;
118
+ default:
119
+ //param not from the button on frontend, log it
120
+ Utils::instance()->log( sprintf( 'Unexpected value %s from IP %s', $item,
121
+ Utils::instance()->getUserIp() ) );
122
+ break;
123
+ }
124
+ }
125
+ }
126
+
127
+ update_site_option( 'wp_defender_is_activated', 1 );
128
+ wp_send_json_success(
129
+ array(
130
+ 'activated' => $activated,
131
+ )
132
+ );
133
+ }
134
+
135
+ /**
136
+ * Activate modules
137
+ */
138
+ public function activateModuleFree() {
139
+ if ( ! Utils::instance()->checkPermission() ) {
140
+ return;
141
+ }
142
+
143
+ if ( ! wp_verify_nonce( HTTP_Helper::retrieveGet( '_wpnonce' ), 'activateModule' ) ) {
144
+ return;
145
+ }
146
+
147
+ $activator = $_POST;
148
+ $activated = array();
149
+ if ( count( $activator ) ) {
150
+ foreach ( $activator as $item => $status ) {
151
+ if ( 'false' === (string) $status ) {
152
+ continue;
153
+ }
154
+ switch ( $item ) {
155
+ case 'activate_scan':
156
+ //start a new scan
157
+ Scan_Api::createScan();
158
+ $activated[] = $item;
159
+ break;
160
+ case 'activate_lockout':
161
+ $settings = \WP_Defender\Module\IP_Lockout\Model\Settings::instance();
162
+ $settings->detect_404 = true;
163
+ $settings->login_protection = true;
164
+ $activated[] = $item;
165
+ $settings->save();
166
+ break;
167
+ default:
168
+ //param not from the button on frontend, log it
169
+ Utils::instance()->log( sprintf( 'Unexpected value %s from IP %s', $item,
170
+ Utils::instance()->getUserIp() ) );
171
+ break;
172
+ }
173
+ }
174
+ }
175
+
176
+ update_site_option( 'wp_defender_free_is_activated', 1 );
177
+ wp_send_json_success(
178
+ array(
179
+ 'activated' => $activated,
180
+ )
181
+ );
182
+ }
183
+
184
  /**
185
  * Skip quick setup
186
  */
188
  if ( ! $this->checkPermission() ) {
189
  return;
190
  }
191
+
192
  if ( ! wp_verify_nonce( HTTP_Helper::retrieveGet( '_wpnonce' ), 'skipActivator' ) ) {
193
  return;
194
  }
196
  update_site_option( 'wp_defender' . $is_free . '_is_activated', 1 );
197
  wp_send_json_success();
198
  }
199
+
200
+ public function hideFeature() {
201
+ if ( ! $this->checkPermission() ) {
202
+ return;
203
+ }
204
+
205
+ if ( ! wp_verify_nonce( HTTP_Helper::retrieveGet( '_wpnonce' ), 'hideFeature' ) ) {
206
+ return;
207
+ }
208
+
209
+ delete_site_option( 'waf_show_new_feature' );
210
+ wp_send_json_success();
211
+ }
212
+
213
  public function menuOrder( $menu_order ) {
214
  global $submenu;
215
  if ( isset( $submenu['wp-defender'] ) ) {
216
+ $defender_menu = $submenu['wp-defender'];
217
+ $defender_menu[0][0] = esc_html__( 'Dashboard', "defender-security" );
 
218
  $defender_menu = array_values( $defender_menu );
219
  $submenu['wp-defender'] = $defender_menu;
220
  }
221
+
222
  global $menu;
223
  $count = $this->countTotalIssues();
224
  $indicator = $count > 0 ? ' <span class="update-plugins wd-issue-indicator-sidebar"><span class="plugin-count">' . $count . '</span></span>' : null;
225
  foreach ( $menu as $k => $item ) {
226
+ if ( 'wp-defender' === $item[2] ) {
227
  $menu[ $k ][0] .= $indicator;
228
  }
229
  }
230
+
231
  return $menu_order;
232
  }
233
+
234
  public function defenderSubmitStats() {
235
  if ( $this->hasMethod( '_submitStatsToDev' ) ) {
236
  $this->_submitStatsToDev();
237
  }
238
  }
239
+
240
  /**
241
  * @param $actions
242
  *
251
  $actions['defender_blacklist_ip'] = array( &$this, 'blacklistIP' );
252
  $actions['defender_get_stats'] = array( &$this, 'getStats' );
253
  $actions['defender_get_scan_progress'] = array( &$this, 'getScanProgress' );
254
+
255
  //backup/restore settings
256
  $actions['defender_export_settings'] = array( &$this, 'exportSettings' );
257
  $actions['defender_import_settings'] = array( &$this, 'importSettings' );
258
+
259
  return $actions;
260
  }
261
+
262
  public function importSettings( $params ) {
263
  //dirty but quick
264
  $configs = json_decode( json_encode( $params->configs ), true );
265
  foreach ( $configs as $module => $mdata ) {
266
  foreach ( $mdata as $key => $value ) {
267
+ if ( 'geoIP_db' === $key ) {
268
  if ( ! empty( $value ) ) {
269
  //download it
270
  Login_Protection_Api::downloadGeoIP();
276
  $value = str_replace( '{nl}', PHP_EOL, $value );
277
  $mdata[ $key ] = $value;
278
  }
 
279
  }
280
  $configs[ $module ] = $mdata;
281
  }
282
  Backup_Settings::restoreData( $configs );
283
+
284
  wp_send_json_success();
285
  }
286
+
287
  public function exportSettings() {
288
  $data = Backup_Settings::parseDataForHub();
289
  //we have to replace all the new line in configs
300
  $data['configs'] = $configs;
301
  wp_send_json_success( $data );
302
  }
303
+
304
  public function getScanProgress() {
305
  $scanning = new Scanning();
306
  $ret = $scanning->run();
307
  if ( is_wp_error( $ret ) ) {
308
+ wp_send_json_error(
309
+ array(
310
+ 'message' => $ret->get_error_message(),
311
+ )
312
+ );
313
  } else {
314
  $percent = $scanning->getScanProgress();
315
+ if ( true === $ret ) {
316
  $percent = 100;
317
  }
318
+ wp_send_json_success(
319
+ array(
320
+ 'progress' => $percent,
321
+ )
322
+ );
323
  }
324
  }
325
+
326
  /**
327
  * @param $params
328
  * @param $action
330
  public function newScan( $params, $action ) {
331
  $ret = Scan_Api::createScan();
332
  if ( is_wp_error( $ret ) ) {
333
+ wp_send_json_error(
334
+ array(
335
+ 'message' => $ret->get_error_message(),
336
+ )
337
+ );
338
  }
339
+
340
  wp_send_json_success();
341
  }
342
+
343
  /**
344
  * @param $params
345
  * @param $action
346
  */
347
  public function scheduleScan( $params, $action ) {
348
+ $frequency = $params['frequency'];
349
+ $day = $params['day'];
350
+ $time = $params['time'];
351
+ $allowed_freq = array( 1, 7, 30 );
352
+ if ( ! in_array( $frequency, $allowed_freq ) || ! in_array( $day,
353
+ Utils::instance()->getDaysOfWeek() ) || ! in_array( $time, Utils::instance()->getTimes() ) ) {
354
  wp_send_json_error();
355
  }
356
  $settings = Settings::instance();
357
  $settings->frequency = $frequency;
358
  $settings->day = $day;
359
  $settings->time = $time;
360
+
361
  wp_send_json_success();
362
  }
363
+
364
  /**
365
  * Hub Audit log endpoint
366
  *
372
  if ( class_exists( '\WP_Defender\Module\Audit\Model\Settings' ) ) {
373
  $response = array();
374
  $settings = \WP_Defender\Module\Audit\Model\Settings::instance();
375
+ if ( true === $settings->enabled ) {
376
  $settings->enabled = false;
377
  $response['enabled'] = false;
378
  } else {
383
  }
384
  wp_send_json_success( $response );
385
  }
386
+
387
  /**
388
  * Hub Lockouts endpoint
389
  *
394
  $type = $params['type'];
395
  $settings = \WP_Defender\Module\IP_Lockout\Model\Settings::instance();
396
  $response = array();
397
+ if ( 'login' === $type ) {
398
  if ( $settings->login_protection ) {
399
  $settings->login_protection = 0;
400
  $response[ $type ] = 'disabled';
403
  $response[ $type ] = 'enabled';
404
  }
405
  $settings->save();
406
+ } elseif ( '404' === $type ) {
407
  if ( $settings->detect_404 ) {
408
  $settings->detect_404 = 0;
409
  $response[ $type ] = 'disabled';
417
  }
418
  wp_send_json_success();
419
  }
420
+
421
  /**
422
  * Hub Whitelist IP endpoint
423
  *
435
  }
436
  wp_send_json_success();
437
  }
438
+
439
  /**
440
  * Hub Blacklist IP endpoint
441
  *
453
  }
454
  wp_send_json_success();
455
  }
456
+
457
  /**
458
  * Hub Stats endpoint
459
  *
464
  $stats = Utils::instance()->generateStats();
465
  wp_send_json_success(
466
  array(
467
+ 'stats' => $stats,
468
  )
469
  );
470
  }
471
+
472
  public function actionIndex() {
473
  $this->render( 'main' );
474
  }
475
+
476
  public function blacklistWidgetStatus() {
477
  if ( ! $this->checkPermission() ) {
478
  return;
479
  }
480
+
481
  if ( ! wp_verify_nonce( HTTP_Helper::retrieveGet( '_wpnonce' ), 'blacklistWidgetStatus' ) ) {
482
  return;
483
  }
484
+
485
  if ( $this->hasMethod( 'pullBlacklistStatus' ) ) {
486
  $this->pullBlacklistStatus();
487
  }
488
+
489
  exit;
490
  }
491
+
492
  public function toggleBlacklistWidget() {
493
  if ( ! $this->checkPermission() ) {
494
  return;
495
  }
496
+
497
  if ( ! wp_verify_nonce( HTTP_Helper::retrieveGet( '_wpnonce' ), 'toggleBlacklistWidget' ) ) {
498
  return;
499
  }
500
+
501
  if ( $this->hasMethod( 'toggleStatus' ) ) {
502
  $this->toggleStatus();
503
  }
504
+
505
  exit;
506
  }
507
+
508
  /**
509
+ * @param bool $detail
510
  *
511
  * @return array|int|null|string
512
  */
513
  public function countTotalIssues( $detail = false ) {
514
+ $hardener_count = count( \WP_Defender\Module\Hardener\Model\Settings::instance()->issues );
515
+ $scan = Scan_Api::getLastScan();
516
+ $total = $hardener_count;
517
+ $scan_count = 0;
518
  if ( is_object( $scan ) ) {
519
+ $scan_count = $scan->countAll( Result_Item::STATUS_ISSUE );
520
+
521
+ $total += $scan_count;
522
  }
523
+ if ( false === $detail ) {
524
  return $total;
525
  }
526
+
527
+ return array( $hardener_count, $scan_count );
528
  }
529
+
530
  /**
531
  *
532
  */
533
  public function admin_menu() {
534
  $cap = is_multisite() ? 'manage_network_options' : 'manage_options';
535
+ $menu_title = wp_defender()->isFree ? esc_html__( 'Defender',
536
+ "defender-security" ) : esc_html__( 'Defender Pro',
537
+ "defender-security" );
538
+ add_menu_page(
539
+ $menu_title,
540
+ $menu_title,
541
+ $cap,
542
+ 'wp-defender',
543
+ array(
544
+ &$this,
545
+ 'actionIndex',
546
+ ),
547
+ $this->get_menu_icon()
548
+ );
549
  }
550
+
551
  /**
552
  * Return svg image
553
  * @return string
555
  private function get_menu_icon() {
556
  ob_start();
557
  ?>
558
+ <svg width="17px" height="18px" viewBox="10 397 17 18" version="1.1" xmlns="http://www.w3.org/2000/svg"
559
+ xmlns:xlink="http://www.w3.org/1999/xlink">
560
+ <!-- Generator: Sketch 3.8.3 (29802) - http://www.bohemiancoding.com/sketch -->
561
+ <desc>Created with Sketch.</desc>
562
+ <defs></defs>
563
+ <path
564
+ d="M24.8009393,403.7962 L23.7971393,410.1724 C23.7395393,410.5372 23.5313393,410.8528 23.2229393,411.0532 L18.4001393,413.6428 L13.5767393,411.0532 C13.2683393,410.8528 13.0601393,410.5372 13.0019393,410.1724 L11.9993393,403.7962 L11.6153393,401.3566 C12.5321393,402.9514 14.4893393,405.5518 18.4001393,408.082 C22.3115393,405.5518 24.2675393,402.9514 25.1855393,401.3566 L24.8009393,403.7962 Z M26.5985393,398.0644 C25.7435393,397.87 22.6919393,397.2106 19.9571393,397 L19.9571393,403.4374 L18.4037393,404.5558 L16.8431393,403.4374 L16.8431393,397 C14.1077393,397.2106 11.0561393,397.87 10.2011393,398.0644 C10.0685393,398.0938 9.98213933,398.221 10.0031393,398.3536 L10.8875393,403.969 L11.8913393,410.3446 C12.0071393,411.0796 12.4559393,411.7192 13.1105393,412.0798 L16.8431393,414.1402 L18.4001393,415 L19.9571393,414.1402 L23.6891393,412.0798 C24.3431393,411.7192 24.7925393,411.0796 24.9083393,410.3446 L25.9121393,403.969 L26.7965393,398.3536 C26.8175393,398.221 26.7311393,398.0938 26.5985393,398.0644 L26.5985393,398.0644 Z"
565
+ id="Defender-Icon" stroke="none" fill="#FFFFFF" fill-rule="evenodd"></path>
566
+ </svg>
567
  <?php
568
  $svg = ob_get_clean();
569
+
570
  return 'data:image/svg+xml;base64,' . base64_encode( $svg );
571
  }
572
+
573
  public function scripts() {
574
  wp_enqueue_style( 'defender' );
575
+ wp_register_script(
576
+ 'defender-dashboard',
577
+ wp_defender()->getPluginUrl() . 'assets/app/dashboard.js',
578
+ array(
579
+ 'def-vue',
580
+ 'defender',
581
+ 'wp-i18n',
582
+ ),
583
+ wp_defender()->version,
584
+ true
585
+ );
586
+ Utils::instance()->createTranslationJson( 'defender-dashboard' );
587
  wp_set_script_translations( 'defender-dashboard', 'wpdef', wp_defender()->getPluginPath() . 'languages' );
588
+ $waf = Container::instance()->get( 'waf' );
589
+ wp_localize_script(
590
+ 'defender-dashboard',
591
+ 'dashboard',
592
+ array_merge(
593
+ Data_Factory::buildData(),
594
+ array(
595
+ 'quick_setup' => array(
596
+ 'show' => $this->isShowActivator(),
597
+ 'nonces' => array(
598
+ 'skip' => wp_create_nonce( 'skipActivator' ),
599
+ 'activate' => wp_create_nonce( 'activateModule' ),
600
+ ),
601
+ 'endpoints' => array(
602
+ 'skip' => 'wp-defender/v1/skipActivator',
603
+ 'activate' => 'wp-defender/v1/activateModule',
604
+ ),
605
+ ),
606
+ 'new_features' => [
607
+ 'show' => $waf->maybe_show_modal(),
608
+ 'nonces' => array(
609
+ 'hide' => wp_create_nonce( 'hideFeature' ),
610
+ ),
611
+ 'endpoints' => array(
612
+ 'hide' => 'wp-defender/v1/hideFeature',
613
+ ),
614
+ ]
615
+ )
616
+ )
617
+ );
618
  wp_enqueue_script( 'defender-dashboard' );
619
  wp_enqueue_script( 'wpmudev-sui' );
620
  }
621
+
622
  /**
623
  * @return array
624
  */
app/controller/waf.php ADDED
@@ -0,0 +1,174 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace WP_Defender\Controller;
4
+
5
+ use Hammer\Helper\HTTP_Helper;
6
+ use WP_Defender\Behavior\Utils;
7
+ use WP_Defender\Behavior\WPMUDEV;
8
+ use WP_Defender\Controller;
9
+
10
+ class Waf extends Controller {
11
+ public $slug = 'wdf-waf';
12
+
13
+ public function __construct() {
14
+ if ( $this->isNetworkActivate( wp_defender()->plugin_slug ) ) {
15
+ $this->addAction( 'network_admin_menu', 'admin_menu' );
16
+ } else {
17
+ $this->addAction( 'admin_menu', 'admin_menu' );
18
+ }
19
+
20
+ if ( $this->isInPage() ) {
21
+ $this->addAction( 'defender_enqueue_assets', 'scripts', 11 );
22
+ }
23
+ $this->addAjaxAction( 'wp-defender/v1/waf/recheck', 'recheck' );
24
+ }
25
+
26
+ public function admin_menu() {
27
+ $cap = is_multisite() ? 'manage_network_options' : 'manage_options';
28
+ $action = "actionIndex";
29
+ if ( $this->maybe_show_widget() ) {
30
+ add_submenu_page( 'wp-defender', esc_html__( "WAF", "defender-security" ),
31
+ esc_html__( "WAF", "defender-security" ), $cap, $this->slug, array(
32
+ &$this,
33
+ $action
34
+ ) );
35
+ }
36
+ }
37
+
38
+ public function actionIndex() {
39
+ $this->render( 'main' );
40
+ }
41
+
42
+ public function scripts() {
43
+ wp_enqueue_style( 'wpmudev-sui' );
44
+ wp_enqueue_style( 'defender' );
45
+ wp_enqueue_media();
46
+ wp_register_script( 'defender-waf', wp_defender()->getPluginUrl() . 'assets/app/waf.js', array(
47
+ 'def-vue',
48
+ 'defender',
49
+ 'wp-i18n'
50
+ ), wp_defender()->version, true );
51
+ wp_localize_script( 'defender-waf', 'waf', $this->_scriptsData() );
52
+ Utils::instance()->createTranslationJson( 'defender-waf' );
53
+ wp_set_script_translations( 'defender-waf', 'wpdef', wp_defender()->getPluginPath() . 'languages' );
54
+ wp_enqueue_script( 'defender-waf' );
55
+ wp_enqueue_script( 'wpmudev-sui' );
56
+ }
57
+
58
+ /**
59
+ * Checks whether we're on WPMU DEV Hosting
60
+ *
61
+ * @return bool
62
+ */
63
+ public function is_wpmu_hosting() {
64
+ return isset( $_SERVER['WPMUDEV_HOSTED'] ) && ! empty( $_SERVER['WPMUDEV_HOSTED'] );
65
+ }
66
+
67
+ public function recheck() {
68
+ if ( ! Utils::instance()->checkPermission() ) {
69
+ return;
70
+ }
71
+
72
+ if ( ! wp_verify_nonce( HTTP_Helper::retrieveGet( '_wpnonce' ), 'recheckWaf' ) ) {
73
+ return;
74
+ }
75
+ delete_site_transient( 'def_waf_status' );
76
+ $data = $this->_scriptsData();
77
+ wp_send_json_success( [
78
+ 'waf' => $data['waf'],
79
+ ] );
80
+ }
81
+
82
+ /**
83
+ * @param $site_id
84
+ *
85
+ * @return bool|mixed
86
+ */
87
+ public function get_waf_status( $site_id ) {
88
+ $cached = get_site_transient( 'def_waf_status' );
89
+ if ( in_array( $cached, [ 'enabled', 'disabled' ] ) ) {
90
+ return $cached === 'enabled';
91
+ }
92
+
93
+ $url = "https://premium.wpmudev.org/api/hub/v1/sites/$site_id/modules/hosting";
94
+ $ret = Utils::instance()->devCall( $url );
95
+ if ( is_wp_error( $ret ) ) {
96
+ return $ret;
97
+ }
98
+ $status = $ret['waf']['is_active'];
99
+ set_site_transient( 'def_waf_status', $status === true ? 'enabled' : 'disabled', 300 );
100
+
101
+ return $status;
102
+ }
103
+
104
+ public function maybe_show_modal() {
105
+ $show = get_site_option( 'waf_show_new_feature' );
106
+ //hide it if the site is Hosted && Enable Whitelabel
107
+ if ( $this->is_wpmu_hosting() && WPMUDEV::instance()->is_whitelabel_enabled() ) {
108
+ return false;
109
+ }
110
+ if (
111
+ //not hosted on us
112
+ ! $this->is_wpmu_hosting()
113
+ //is pro
114
+ && wp_defender()->isFree == false
115
+ //and enable whitelabel
116
+ && WPMUDEV::instance()->is_whitelabel_enabled()
117
+ ) {
118
+ //hide it
119
+ return false;
120
+ }
121
+
122
+ return $show;
123
+ }
124
+
125
+ /**
126
+ * @return bool
127
+ */
128
+ public function maybe_show_widget() {
129
+ if (
130
+ //not hosted on us
131
+ ! $this->is_wpmu_hosting()
132
+ //is pro
133
+ && wp_defender()->isFree == false
134
+ //and enable whitelabel
135
+ && WPMUDEV::instance()->is_whitelabel_enabled()
136
+ ) {
137
+ //hide it
138
+ return false;
139
+ }
140
+
141
+ return true;
142
+ }
143
+
144
+ public function _scriptsData() {
145
+ $site_id = null;
146
+ $waf_status = false;
147
+ if ( class_exists( '\WPMUDEV_Dashboard' ) ) {
148
+ $site_id = \WPMUDEV_Dashboard::$api->get_site_id();
149
+ if ( $this->is_wpmu_hosting() ) {
150
+ $waf_status = $this->get_waf_status( $site_id );
151
+ if ( is_wp_error( $waf_status ) ) {
152
+ //false safe
153
+ $waf_status = false;
154
+ }
155
+ }
156
+ }
157
+
158
+ return [
159
+ 'site_id' => $site_id,
160
+ 'waf' => [
161
+ 'hosted' => $this->is_wpmu_hosting(),
162
+ 'status' => $waf_status,
163
+ 'maybe_show' => $this->maybe_show_widget(),
164
+ 'whitelabel_enable' => WPMUDEV::instance()->is_whitelabel_enabled(),
165
+ ],
166
+ 'nonces' => [
167
+ 'recheck' => wp_create_nonce( 'recheckWaf' )
168
+ ],
169
+ 'endpoints' => [
170
+ 'recheck' => 'wp-defender/v1/waf/recheck'
171
+ ]
172
+ ];
173
+ }
174
+ }
app/module/advanced-tools/component/mask-login-listener.php CHANGED
@@ -8,6 +8,7 @@ namespace WP_Defender\Module\Advanced_Tools\Component;
8
  use Hammer\Helper\HTTP_Helper;
9
  use Hammer\WP\Component;
10
  use WP_Defender\Module\Advanced_Tools\Model\Mask_Settings;
 
11
 
12
  class Mask_Login_Listener extends Component {
13
  public function __construct() {
8
  use Hammer\Helper\HTTP_Helper;
9
  use Hammer\WP\Component;
10
  use WP_Defender\Module\Advanced_Tools\Model\Mask_Settings;
11
+ use WP_Defender\Module\Two_Factor\Component\Auth_API;
12
 
13
  class Mask_Login_Listener extends Component {
14
  public function __construct() {
app/module/advanced-tools/component/security-header.php ADDED
@@ -0,0 +1,129 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace WP_Defender\Module\Advanced_Tools\Component;
4
+
5
+ use Hammer\WP\Component;
6
+ use WP_Defender\Behavior\Utils;
7
+ use WP_Defender\Module\Advanced_Tools\Model\Security_Headers_Settings;
8
+
9
+ abstract class Security_Header extends Component {
10
+
11
+ /**
12
+ * @var string
13
+ */
14
+ static $rule_slug;
15
+
16
+ /**
17
+ * Use for cache
18
+ *
19
+ * @var Security_Headers_Settings
20
+ */
21
+ public $model;
22
+
23
+ /**
24
+ * @return array
25
+ */
26
+ public function getMiscData() {
27
+ return array();
28
+ }
29
+
30
+ /**
31
+ * @return mixed
32
+ */
33
+ abstract function check();
34
+
35
+ /**
36
+ * @return string
37
+ */
38
+ abstract function getTitle();
39
+
40
+ /**
41
+ * @return mixed
42
+ */
43
+ abstract function addHooks();
44
+
45
+ /**
46
+ * Safe way to get cached model
47
+ *
48
+ * @return Security_Headers_Settings
49
+ */
50
+ protected function getModel() {
51
+ if ( is_object( $this->model ) ) {
52
+ return $this->model;
53
+ }
54
+
55
+ return $this->model = Security_Headers_Settings::instance();
56
+ }
57
+
58
+ /**
59
+ * Check if the header is out or not
60
+ *
61
+ * @param $header
62
+ * @param $somewhere
63
+ *
64
+ * @return bool
65
+ */
66
+ protected function maybeSubmitHeader( $header, $somewhere ) {
67
+ if ( false === $somewhere ) {
68
+ return true;
69
+ }
70
+ $list = headers_list();
71
+ $match = false;
72
+ foreach ( $list as $item ) {
73
+ if ( stristr( $item, $header ) ) {
74
+ $match = true;
75
+ }
76
+ }
77
+
78
+ return $match;
79
+ }
80
+
81
+
82
+ /**
83
+ * @param $url
84
+ * @param $origin
85
+ * @param $ttl
86
+ *
87
+ * @return array|mixed
88
+ */
89
+ protected function headRequest( $url, $origin, $ttl = null ) {
90
+ $model = $this->getModel();
91
+ $cached = $model->getDataValues( 'head_requests' );
92
+ if ( ! is_array( $cached ) ) {
93
+ $cached = array();
94
+ }
95
+ if ( isset( $cached[ $url ] ) ) {
96
+ $cache = $cached[ $url ];
97
+ if ( $cache['ttl'] > time() ) {
98
+
99
+ return $cache['data'];
100
+ }
101
+ }
102
+
103
+ //no cache or cache expired
104
+ $request = wp_remote_head(
105
+ $url,
106
+ array(
107
+ 'user-agent' => 'WP Defender self ping - ' . $origin,
108
+ )
109
+ );
110
+ if ( ! is_wp_error( $request ) ) {
111
+ $headers = wp_remote_retrieve_headers( $request );
112
+ $headers = $headers->getAll();
113
+ if ( null === $ttl ) {
114
+ $ttl = strtotime( '+1 day' );
115
+ }
116
+ $headers['response_code'] = wp_remote_retrieve_response_code( $request );
117
+ $cached[ $url ] = array(
118
+ 'ttl' => apply_filters( 'wd_head_request_ttl', $ttl ),
119
+ 'data' => $headers,
120
+ );
121
+ $model->setDataValues( 'head_requests', $cached );
122
+ Utils::instance()->log( sprintf( 'Fetched header for %s into cache', $url ), 'security-headers' );
123
+
124
+ return $headers;
125
+ }
126
+
127
+ return $request;
128
+ }
129
+ }
app/module/advanced-tools/component/security-headers-listener.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Author: Hoang Ngo
4
+ */
5
+
6
+ namespace WP_Defender\Module\Advanced_Tools\Component;
7
+
8
+ use Hammer\Helper\HTTP_Helper;
9
+ use Hammer\WP\Component;
10
+ use WP_Defender\Module\Advanced_Tools\Model\Security_Headers_Settings;
11
+
12
+ class Security_Headers_Listener extends Component {
13
+ public function __construct() {
14
+ //init dependency
15
+ $this->initHeaders();
16
+ }
17
+
18
+ /**
19
+ * Init headers
20
+ */
21
+ public function initHeaders() {
22
+ $settings = Security_Headers_Settings::instance();
23
+ if ( ! defined( 'DOING_AJAX' ) ) {
24
+
25
+ //refresh if on admin, on page with headers
26
+ if ( ( is_admin() || is_network_admin() )
27
+ &&
28
+ (
29
+ ( 'wdf-advanced-tools' === HTTP_Helper::retrieveGet( 'page' ) )
30
+ || ( 'wp-defender' === HTTP_Helper::retrieveGet( 'page' ) )
31
+ )
32
+ ) {
33
+ //this mean we dont have any data or data is overdue need to refresh list of headers
34
+ $settings->refreshHeaders();
35
+ } elseif ( defined( 'DOING_CRON' ) ) {
36
+ //if this is in cronjob, we refresh it too
37
+ $settings->refreshHeaders();
38
+ }
39
+ }
40
+
41
+ foreach ( $settings->getHeaders() as $rule ) {
42
+ $rule->addHooks();
43
+ }
44
+ }
45
+ }
app/module/advanced-tools/component/security-headers/sh-content-type-options.php ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Author: Hoang Ngo
4
+ */
5
+
6
+ namespace WP_Defender\Module\Advanced_Tools\Component\Security_Headers;
7
+
8
+ use WP_Defender\Behavior\Utils;
9
+ use WP_Defender\Module\Advanced_Tools\Component\Security_Header;
10
+
11
+ class Sh_Content_Type_Options extends Security_Header {
12
+ static $rule_slug = 'sh_content_type_options';
13
+
14
+ public function check() {
15
+ $model = $this->getModel();
16
+
17
+ if ( ! $model->sh_content_type_options ) {
18
+ return false;
19
+ }
20
+ if ( isset( $model->sh_content_type_options_mode ) && 'nosniff' === $model->sh_content_type_options_mode ) {
21
+ return true;
22
+ }
23
+
24
+ $headers = $this->headRequest( network_site_url(), self::$rule_slug );
25
+ if ( is_wp_error( $headers ) ) {
26
+ Utils::instance()->log( sprintf( 'Self ping error: %s', $headers->get_error_message() ) );
27
+
28
+ return false;
29
+ }
30
+ if ( isset( $headers['x-content-type-options'] ) && is_null( $model->sh_content_type_options_mode ) ) {
31
+ $model->sh_content_type_options_mode = 'nosniff';
32
+ $model->save();
33
+
34
+ return true;
35
+ }
36
+
37
+ return false;
38
+ }
39
+
40
+ /**
41
+ * @return array
42
+ */
43
+ public function getMiscData() {
44
+ $model = $this->getModel();
45
+
46
+ return array(
47
+ 'intro_text' => esc_html__( 'The X-Content-Type-Options header is used to protect against MIME sniffing attacks. The most common example of this is when a website allows users to upload content to a website, however the user disguises a particular file type as something else.', "defender-security" ),
48
+ 'mode' => isset( $model->sh_content_type_options_mode ) ? $model->sh_content_type_options_mode : 'nosniff',
49
+ );
50
+ }
51
+
52
+ public function addHooks() {
53
+ $this->addAction( 'send_headers', 'appendHeader' );
54
+ }
55
+
56
+ public function appendHeader() {
57
+ if ( headers_sent() ) {
58
+ return;
59
+ }
60
+ $model = $this->getModel();
61
+ if ( ! $this->maybeSubmitHeader( 'X-Content-Type-Options', false ) ) {
62
+ //this mean Defender can't override the already output, marked to show notification
63
+
64
+ return;
65
+ }
66
+ if ( true === $model->sh_content_type_options && 'nosniff' === $model->sh_content_type_options_mode ) {
67
+ header( 'X-Content-Type-Options: nosniff' );
68
+ }
69
+ }
70
+
71
+ /**
72
+ * @return string
73
+ */
74
+ public function getTitle() {
75
+ return __( 'X-Content-Type-Options', "defender-security" );
76
+ }
77
+ }
app/module/advanced-tools/component/security-headers/sh-feature-policy.php ADDED
@@ -0,0 +1,163 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Author: Hoang Ngo
4
+ */
5
+
6
+ namespace WP_Defender\Module\Advanced_Tools\Component\Security_Headers;
7
+
8
+ use WP_Defender\Behavior\Utils;
9
+ use WP_Defender\Module\Advanced_Tools\Component\Security_Header;
10
+
11
+ class Sh_Feature_Policy extends Security_Header {
12
+ static $rule_slug = 'sh_feature_policy';
13
+
14
+ public function check() {
15
+ $model = $this->getModel();
16
+
17
+ if ( ! $model->sh_feature_policy ) {
18
+ return false;
19
+ }
20
+ $headers = $this->headRequest( network_site_url(), self::$rule_slug );
21
+ if ( is_wp_error( $headers ) ) {
22
+ Utils::instance()->log( sprintf( 'Self ping error: %s', $headers->get_error_message() ) );
23
+
24
+ return false;
25
+ }
26
+ if ( isset( $headers['feature-policy'] ) ) {
27
+ return true;
28
+ }
29
+
30
+ return false;
31
+ }
32
+
33
+ /**
34
+ * @return array
35
+ */
36
+ public function getMiscData() {
37
+ $model = $this->getModel();
38
+
39
+ return array(
40
+ 'intro_text' => esc_html__( 'The Feature-Policy response header provides control over what browser features can be used when web pages are embedded in iframes.', "defender-security" ),
41
+ 'mode' => isset( $model->sh_feature_policy_mode ) ? $model->sh_feature_policy_mode : 'self',
42
+ 'values' => isset( $model->sh_feature_policy_urls ) ? $model->sh_feature_policy_urls : '',
43
+ );
44
+ }
45
+
46
+ public function addHooks() {
47
+ $this->addAction( 'send_headers', 'appendHeader' );
48
+ $this->addFilter( 'processing_security_headers', 'filteringHeaders' );
49
+ }
50
+
51
+ public function filteringHeaders( $data ) {
52
+ if ( ! isset( $data['sh_feature_policy'] ) ) {
53
+ return $data;
54
+ }
55
+ if ( 'origins' !== $data['sh_feature_policy_mode'] || empty( $data['sh_feature_policy_urls'] ) ) {
56
+ return $data;
57
+ }
58
+ $urls = sanitize_textarea_field( $data['sh_feature_policy_urls'] );
59
+ $urls = explode( PHP_EOL, $urls );
60
+ $urls = array_map( 'trim', $urls );
61
+ foreach ( $urls as $key => $url ) {
62
+ if ( false === filter_var( $url, FILTER_VALIDATE_URL ) ) {
63
+ unset( $urls[ $key ] );
64
+ }
65
+ }
66
+ $data['sh_feature_policy_urls'] = implode( PHP_EOL, $urls );
67
+
68
+ return $data;
69
+ }
70
+
71
+ public function appendHeader() {
72
+ if ( headers_sent() ) {
73
+ return;
74
+ }
75
+ $model = $this->getModel();
76
+ if ( ! $this->maybeSubmitHeader( 'Feature-Policy', false ) ) {
77
+
78
+ return;
79
+ }
80
+
81
+ if ( true === $model->sh_feature_policy
82
+ && isset( $model->sh_feature_policy_mode )
83
+ && in_array( $model->sh_feature_policy_mode, array( 'self', 'allow', 'origins', 'none' ), true )
84
+ ) {
85
+ $headers = '';
86
+ $features = array(
87
+ 'accelerometer',
88
+ 'ambient-light-sensor',
89
+ 'autoplay',
90
+ 'camera',
91
+ 'encrypted-media',
92
+ 'fullscreen',
93
+ 'geolocation',
94
+ 'gyroscope',
95
+ 'magnetometer',
96
+ 'microphone',
97
+ 'midi',
98
+ 'payment',
99
+ 'picture-in-picture',
100
+ 'speaker',
101
+ 'usb',
102
+ //'vibrate',
103
+ 'vr',
104
+ );
105
+
106
+ switch ( $model->sh_feature_policy_mode ) {
107
+ case 'self':
108
+ array_walk(
109
+ $features,
110
+ function ( &$value, $key ) {
111
+ $value .= " 'self'";
112
+ }
113
+ );
114
+ $headers = 'Feature-Policy: ' . implode( '; ', $features );
115
+ break;
116
+ case 'allow':
117
+ array_walk(
118
+ $features,
119
+ function ( &$value, $key ) {
120
+ $value .= ' *';
121
+ }
122
+ );
123
+ $headers = 'Feature-Policy: ' . implode( '; ', $features );
124
+ break;
125
+ case 'origins':
126
+ if ( isset( $model->sh_feature_policy_urls ) && ! empty( $model->sh_feature_policy_urls ) ) {
127
+ $urls = explode( PHP_EOL, $model->sh_feature_policy_urls );
128
+ $urls = array_map( 'trim', $urls );
129
+ $urls = implode( ' ', $urls );
130
+ array_walk(
131
+ $features,
132
+ function ( &$value, $key ) use ( $urls ) {
133
+ $value .= ' ' . $urls;
134
+ }
135
+ );
136
+ $headers = 'Feature-Policy: ' . implode( '; ', $features );
137
+ }
138
+ break;
139
+ case 'none':
140
+ array_walk(
141
+ $features,
142
+ function ( &$value, $key ) {
143
+ $value .= " 'none'";
144
+ }
145
+ );
146
+ $headers = 'Feature-Policy: ' . implode( '; ', $features );
147
+ break;
148
+ default:
149
+ break;
150
+ }
151
+ if ( strlen( $headers ) > 0 ) {
152
+ header( trim( $headers ) );
153
+ }
154
+ }
155
+ }
156
+
157
+ /**
158
+ * @return string
159
+ */
160
+ public function getTitle() {
161
+ return __( 'Feature-Policy', "defender-security" );
162
+ }
163
+ }
app/module/advanced-tools/component/security-headers/sh-referrer-policy.php ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Author: Hoang Ngo
4
+ */
5
+
6
+ namespace WP_Defender\Module\Advanced_Tools\Component\Security_Headers;
7
+
8
+ use WP_Defender\Behavior\Utils;
9
+ use WP_Defender\Module\Advanced_Tools\Component\Security_Header;
10
+
11
+ class Sh_Referrer_Policy extends Security_Header {
12
+ static $rule_slug = 'sh_referrer_policy';
13
+
14
+ public function check() {
15
+ $model = $this->getModel();
16
+
17
+ if ( ! $model->sh_referrer_policy ) {
18
+ return false;
19
+ }
20
+ $headers = $this->headRequest( network_site_url(), self::$rule_slug );
21
+ if ( is_wp_error( $headers ) ) {
22
+ Utils::instance()->log( sprintf( 'Self ping error: %s', $headers->get_error_message() ) );
23
+
24
+ return false;
25
+ }
26
+
27
+ return false;
28
+ }
29
+
30
+ /**
31
+ * @return array
32
+ */
33
+ public function getMiscData() {
34
+ $model = $this->getModel();
35
+
36
+ return array(
37
+ 'intro_text' => esc_html__( 'The Referrer-Policy HTTP header tells web-browsers how to handle referrer information that is sent to websites when a user clicks a link that leads to another page or website link. Referrer headers tell website owners inbound visitors came from (like Google Analytics Acquisition Reports), but there are cases where you may want to control or restrict the amount of information present in this header.', "defender-security" ),
38
+ 'mode' => isset( $model->sh_referrer_policy_mode ) ? $model->sh_referrer_policy_mode : 'origin-when-cross-origin',
39
+ );
40
+ }
41
+
42
+ public function addHooks() {
43
+ $this->addAction( 'send_headers', 'appendHeader' );
44
+ }
45
+
46
+ public function appendHeader() {
47
+ if ( headers_sent() ) {
48
+ return;
49
+ }
50
+ $model = $this->getModel();
51
+ if ( ! $this->maybeSubmitHeader( 'Referrer-Policy', false ) ) {
52
+
53
+ return;
54
+ }
55
+
56
+ if ( true === $model->sh_referrer_policy
57
+ && isset( $model->sh_referrer_policy_mode )
58
+ && in_array(
59
+ $model->sh_referrer_policy_mode,
60
+ array(
61
+ 'no-referrer',
62
+ 'no-referrer-when-downgrade',
63
+ 'origin',
64
+ 'origin-when-cross-origin',
65
+ 'same-origin',
66
+ 'strict-origin',
67
+ 'strict-origin-when-cross-origin',
68
+ 'unsafe-url',
69
+ ),
70
+ true
71
+ )
72
+ ) {
73
+ $headers = 'Referrer-Policy: ' . $model->sh_referrer_policy_mode;
74
+ header( $headers );
75
+ }
76
+ }
77
+
78
+ /**
79
+ * @return string
80
+ */
81
+ public function getTitle() {
82
+ return __( 'Referrer Policy', "defender-security" );
83
+ }
84
+ }
app/module/advanced-tools/component/security-headers/sh-strict-transport.php ADDED
@@ -0,0 +1,162 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Author: Hoang Ngo
4
+ */
5
+
6
+ namespace WP_Defender\Module\Advanced_Tools\Component\Security_Headers;
7
+
8
+ use WP_Defender\Behavior\Utils;
9
+ use WP_Defender\Module\Advanced_Tools\Component\Security_Header;
10
+
11
+ class Sh_Strict_Transport extends Security_Header {
12
+ static $rule_slug = 'sh_strict_transport';
13
+
14
+ /**
15
+ * Get time in seconds
16
+ *
17
+ * @return array
18
+ */
19
+ private function timeInSeconds() {
20
+ return array(
21
+ '1 hour' => 1 * 3600,
22
+ '24 hours' => 86400,
23
+ '7 days' => 7 * 86400,
24
+ '30 days' => 30 * 86400,
25
+ '3 months' => ( 3 * 30 + 1 ) * 86400,
26
+ '6 months' => ( 6 * 30 + 3 ) * 86400,
27
+ '1 year' => 365 * 86400,
28
+ '2 years' => 365 * 2 * 86400,
29
+ );
30
+ }
31
+
32
+ /**
33
+ * Check HTTPS
34
+ *
35
+ * @return bool
36
+ */
37
+ private function isHttps() {
38
+ return isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && 'https' === $_SERVER['HTTP_X_FORWARDED_PROTO'];
39
+ }
40
+
41
+ public function check() {
42
+ $model = $this->getModel();
43
+
44
+ if ( ! $model->sh_strict_transport ) {
45
+ return false;
46
+ }
47
+ $headers = $this->headRequest( network_site_url(), self::$rule_slug );
48
+ if ( is_wp_error( $headers ) ) {
49
+ Utils::instance()->log( sprintf( 'Self ping error: %s', $headers->get_error_message() ) );
50
+
51
+ return false;
52
+ }
53
+
54
+ if ( isset( $headers['strict-transport-security'] ) ) {
55
+ $hsts_cache_duration = '';
56
+ $hsts_preload = 0;
57
+ $include_subdomain = 0;
58
+
59
+ $content = explode( ';', $headers['strict-transport-security'] );
60
+ foreach ( $content as $line ) {
61
+ if ( stristr( $line, 'max-age' ) ) {
62
+ $value = explode( '=', $line );
63
+ $arr = $this->timeInSeconds();
64
+ $seconds = isset( $value[1] ) ? (int)$value[1] : 0;
65
+ $closest = null;
66
+ $key = null;
67
+ foreach ( $arr as $k => $item ) {
68
+ if ( is_null( $closest ) || ( ! is_null( $closest ) && ( abs( $seconds - $closest ) > abs( $item - $seconds ) ) ) ) {
69
+ $closest = $item;
70
+ $key = $k;
71
+ }
72
+ }
73
+ $hsts_cache_duration = $key;
74
+ } elseif ( stristr( $line, 'preload' ) ) {
75
+ $hsts_preload = 1;
76
+ } elseif ( stristr( $line, 'includeSubDomains' ) ) {
77
+ $include_subdomain = 1;
78
+ }
79
+ }
80
+
81
+ if ( ( '' !== $hsts_cache_duration )
82
+ || ( 0 !== $hsts_preload )
83
+ || ( 0 !== $include_subdomain )
84
+ ) {
85
+ if ( is_null( $model->hsts_preload ) && $hsts_preload ) {
86
+ $model->hsts_preload = $hsts_preload;
87
+ }
88
+ if ( is_null( $model->include_subdomain ) && $include_subdomain ) {
89
+ $model->include_subdomain = $include_subdomain;
90
+ }
91
+ if ( is_null( $model->hsts_cache_duration ) && $hsts_cache_duration ) {
92
+ $model->hsts_cache_duration = $hsts_cache_duration;
93
+ }
94
+ $model->save();
95
+ }
96
+
97
+ return true;
98
+ }
99
+
100
+ return false;
101
+ }
102
+
103
+ public function getMiscData() {
104
+ $model = $this->getModel();
105
+ $site_url = network_site_url();
106
+ $domain_data = Utils::instance()->parseDomain( $site_url );
107
+ $allow_subdomain = false;
108
+ if ( is_array( $domain_data ) && ! isset( $domain_data['subdomain'] ) ) {
109
+ $allow_subdomain = true;
110
+ }
111
+
112
+ return array(
113
+ 'intro_text' => esc_html__( 'The HTTP Strict-Transport-Security response header (HSTS) lets a web site tell browsers that it should only be accessed using HTTPS, instead of using HTTP. This is extremely important for websites that store and process sensitive information like ECommerce stores and helps prevent Protocol Downgrade and Clickjacking attacks.', "defender-security" ),
114
+ 'hsts_preload' => isset( $model->hsts_preload ) ? $model->hsts_preload : 0,
115
+ 'include_subdomain' => isset( $model->include_subdomain ) ? $model->include_subdomain : 0,
116
+ 'hsts_cache_duration' => isset( $model->hsts_cache_duration ) ? $model->hsts_cache_duration : '30 days',
117
+ 'allow_subdomain' => $allow_subdomain,
118
+ );
119
+ }
120
+
121
+ public function addHooks() {
122
+ $this->addAction( 'send_headers', 'appendHeader' );
123
+ }
124
+
125
+ public function appendHeader() {
126
+ if ( headers_sent() ) {
127
+ return;
128
+ }
129
+
130
+ if ( ! $this->maybeSubmitHeader( 'Strict-Transport-Security', false ) ) {
131
+ return;
132
+ }
133
+ $model = $this->getModel();
134
+ //header is ignored by the browser when your site is accessed using HTTP
135
+ if ( true === $model->sh_strict_transport ) {
136
+ $headers = 'Strict-Transport-Security:';
137
+ if ( isset( $model->hsts_cache_duration ) && ! empty( $model->hsts_cache_duration ) ) {
138
+ $arr = $this->timeInSeconds();
139
+ $seconds = isset( $arr[ $model->hsts_cache_duration ] ) ? $arr[ $model->hsts_cache_duration ] : null;
140
+ if ( ! is_null( $seconds ) ) {
141
+ $headers .= ' max-age=' . $seconds;
142
+ }
143
+ }
144
+
145
+ if ( '1' === (string)$model->include_subdomain ) {
146
+ $headers .= ' ; includeSubDomains';
147
+ }
148
+ if ( '1' === (string)$model->hsts_preload ) {
149
+ $headers .= ' ; preload';
150
+ }
151
+
152
+ header( $headers );
153
+ }
154
+ }
155
+
156
+ /**
157
+ * @return string
158
+ */
159
+ public function getTitle() {
160
+ return __( 'Strict Transport', "defender-security" );
161
+ }
162
+ }
app/module/advanced-tools/component/security-headers/sh-x-frame.php ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Author: Hoang Ngo
4
+ */
5
+
6
+ namespace WP_Defender\Module\Advanced_Tools\Component\Security_Headers;
7
+
8
+ use WP_Defender\Behavior\Utils;
9
+ use WP_Defender\Module\Advanced_Tools\Component\Security_Header;
10
+
11
+ class Sh_X_Frame extends Security_Header {
12
+ static $rule_slug = 'sh_xframe';
13
+
14
+ public function check() {
15
+ $model = $this->getModel();
16
+
17
+ if ( ! $model->sh_xframe ) {
18
+ return false;
19
+ }
20
+ $headers = $this->headRequest( network_site_url(), self::$rule_slug );
21
+ if ( is_wp_error( $headers ) ) {
22
+ Utils::instance()->log( sprintf( 'Self ping error: %s', $headers->get_error_message() ), 'security-headers' );
23
+
24
+ return false;
25
+ }
26
+
27
+ if ( isset( $headers['x-frame-options'] ) && empty( $model->sh_xframe_mode ) ) {
28
+ $header_xframe = is_array( $headers['x-frame-options'] ) ? $headers['x-frame-options'][0] : $headers['x-frame-options'];
29
+
30
+ $content = strtolower( trim( $header_xframe ) );
31
+ if ( stristr( $content, 'allow-from' ) ) {
32
+ $model->sh_xframe_mode = 'allow-from';
33
+ $urls = explode( ' ', $content );
34
+ unset( $urls[0] );
35
+ $model->sh_xframe_urls = implode( PHP_EOL, $urls );
36
+ } elseif ( in_array( strtolower( $content ), array( 'sameorigin', 'deny' ), true ) ) {
37
+ $model->sh_xframe_mode = strtolower( $content );
38
+ }
39
+ $model->save();
40
+
41
+ return true;
42
+ }
43
+
44
+ return false;
45
+ }
46
+
47
+ /**
48
+ * @return array
49
+ */
50
+ public function getMiscData() {
51
+ $model = $this->getModel();
52
+
53
+ return array(
54
+ 'intro_text' => __( "The X-Frame-Options HTTP response header controls whether or not a browser can render a webpage inside a <frame>, <iframe> or <object> tag. Websites can avoid clickjacking attacks by ensuring that their content isn't embedded into other websites.", "defender-security" ),
55
+ 'mode' => isset( $model->sh_xframe_mode ) ? $model->sh_xframe_mode : 'sameorigin',
56
+ 'values' => isset( $model->sh_xframe_urls ) ? $model->sh_xframe_urls : '',
57
+ );
58
+ }
59
+
60
+ public function addHooks() {
61
+ $this->addAction( 'send_headers', 'appendHeader' );
62
+ $this->addFilter( 'processing_security_headers', 'filteringHeaders' );
63
+ }
64
+
65
+ public function filteringHeaders( $data ) {
66
+ if ( ! isset( $data['sh_xframe'] ) ) {
67
+ return $data;
68
+ }
69
+ if ( 'allow-from' !== $data['sh_xframe_mode'] || empty( $data['sh_xframe_urls'] ) ) {
70
+ return $data;
71
+ }
72
+ $urls = sanitize_textarea_field( $data['sh_xframe_urls'] );
73
+ $urls = explode( PHP_EOL, $urls );
74
+ $urls = array_map( 'trim', $urls );
75
+ foreach ( $urls as $key => $url ) {
76
+ if ( false === filter_var( trim( $url ), FILTER_VALIDATE_URL ) ) {
77
+ unset( $urls[ $key ] );
78
+ }
79
+ }
80
+
81
+ $data['sh_xframe_urls'] = implode( PHP_EOL, $urls );
82
+
83
+ return $data;
84
+ }
85
+
86
+ public function appendHeader() {
87
+ if ( headers_sent() ) {
88
+ return;
89
+ }
90
+
91
+ if ( ! $this->maybeSubmitHeader( 'X-Frame-Options', false ) ) {
92
+ return;
93
+ }
94
+
95
+ $model = $this->getModel();
96
+ $mode = $model->sh_xframe_mode;
97
+
98
+ if ( true === $model->sh_xframe && in_array( $mode, array( 'sameorigin', 'allow-from', 'deny' ), true ) ) {
99
+ $headers = 'X-Frame-Options: ' . $mode;
100
+ if ( 'allow-from' === $mode && isset( $model->sh_xframe_urls ) && ! empty( $model->sh_xframe_urls ) ) {
101
+ $urls = explode( PHP_EOL, $model->sh_xframe_urls );
102
+ $urls = array_map( 'trim', $urls );
103
+ $headers .= ' ' . implode( ' ', $urls );
104
+ }
105
+ header( trim( $headers ) );
106
+ }
107
+ }
108
+
109
+ /**
110
+ * @return string
111
+ */
112
+ public function getTitle() {
113
+ return __( 'X-Frame-Options', "defender-security" );
114
+ }
115
+ }
app/module/advanced-tools/component/security-headers/sh-xss-protection.php ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Author: Hoang Ngo
4
+ */
5
+
6
+ namespace WP_Defender\Module\Advanced_Tools\Component\Security_Headers;
7
+
8
+ use WP_Defender\Behavior\Utils;
9
+ use WP_Defender\Module\Advanced_Tools\Component\Security_Header;
10
+
11
+ class Sh_XSS_Protection extends Security_Header {
12
+ static $rule_slug = 'sh_xss_protection';
13
+
14
+ public function check() {
15
+ $model = $this->getModel();
16
+
17
+ if ( ! $model->sh_xss_protection ) {
18
+ return false;
19
+ }
20
+ $headers = $this->headRequest( network_site_url(), self::$rule_slug );
21
+ if ( is_wp_error( $headers ) ) {
22
+ Utils::instance()->log( sprintf( 'Self ping error: %s', $headers->get_error_message() ) );
23
+
24
+ return false;
25
+ }
26
+
27
+ if ( isset( $headers['x-xss-protection'] ) && empty( $model->sh_xss_protection_mode ) ) {
28
+ $header_xss_protection = is_array( $headers['x-xss-protection'] ) ? $headers['x-xss-protection'][0] : $headers['x-xss-protection'];
29
+ $content = strtolower( trim( $header_xss_protection ) );
30
+ $content = explode( ';', $content );
31
+ if ( 1 === count( $content ) ) {
32
+ $model->sh_xss_protection_mode = 'sanitize';
33
+ } else {
34
+ $content = explode( '=', $content[1] );
35
+ $model->sh_xss_protection_mode = $content[1];
36
+ }
37
+ $model->save();
38
+
39
+ return true;
40
+ }
41
+
42
+ return false;
43
+ }
44
+
45
+ /**
46
+ * @return array
47
+ */
48
+ public function getMiscData() {
49
+ $model = $this->getModel();
50
+
51
+ return array(
52
+ 'intro_text' => esc_html__( 'The HTTP X-XSS-Protection response header that stops pages from loading when they detect reflected cross-site scripting (XSS) attacks on Chrome, IE and Safari.', "defender-security" ),
53
+ 'mode' => isset( $model->sh_xss_protection_mode ) ? $model->sh_xss_protection_mode : 'sanitize',
54
+ );
55
+ }
56
+
57
+ public function addHooks() {
58
+ $this->addAction( 'send_headers', 'appendHeader' );
59
+ }
60
+
61
+ public function appendHeader() {
62
+ if ( headers_sent() ) {
63
+ return;
64
+ }
65
+ $model = $this->getModel();
66
+ if ( ! $this->maybeSubmitHeader( 'X-XSS-Protection', false ) ) {
67
+
68
+ return;
69
+ }
70
+ if ( true === $model->sh_xss_protection && in_array( $model->sh_xss_protection_mode, array( 'sanitize', 'block', 'none' ), true ) ) {
71
+ $headers = '';
72
+ switch ( $model->sh_xss_protection_mode ) {
73
+ case 'sanitize':
74
+ $headers = 'X-XSS-Protection: 1';
75
+ break;
76
+ case 'block':
77
+ $headers = 'X-XSS-Protection: 1; mode=block';
78
+ break;
79
+ default:
80
+ break;
81
+ }
82
+ if ( strlen( $headers ) > 0 ) {
83
+ header( trim( $headers ) );
84
+ }
85
+ }
86
+ }
87
+
88
+ /**
89
+ * @return string
90
+ */
91
+ public function getTitle() {
92
+ return __( 'X-XSS-Protection', "defender-security" );
93
+ }
94
+ }
app/module/advanced-tools/controller/main.php CHANGED
@@ -9,16 +9,15 @@ use Hammer\Helper\HTTP_Helper;
9
  use Hammer\Helper\WP_Helper;
10
  use WP_Defender\Behavior\Utils;
11
  use WP_Defender\Controller;
12
- use WP_Defender\Module\Advanced_Tools\Component\Auth_API;
13
- use WP_Defender\Module\Advanced_Tools\Component\Auth_Listener;
14
  use WP_Defender\Module\Advanced_Tools\Component\Mask_Api;
15
  use WP_Defender\Module\Advanced_Tools\Component\Mask_Login_Listener;
16
- use WP_Defender\Module\Advanced_Tools\Model\Auth_Settings;
17
  use WP_Defender\Module\Advanced_Tools\Model\Mask_Settings;
 
18
 
19
  class Main extends Controller {
20
  protected $slug = 'wdf-advanced-tools';
21
-
22
  /**
23
  * @return array
24
  */
@@ -26,12 +25,12 @@ class Main extends Controller {
26
  $behaviors = array(
27
  'utils' => '\WP_Defender\Behavior\Utils',
28
  'endpoints' => '\WP_Defender\Behavior\Endpoint',
29
- 'wpmudev' => '\WP_Defender\Behavior\WPMUDEV'
30
  );
31
-
32
  return $behaviors;
33
  }
34
-
35
  public function __construct() {
36
  if ( $this->isNetworkActivate( wp_defender()->plugin_slug ) ) {
37
  $this->addAction( 'network_admin_menu', 'adminMenu' );
@@ -39,29 +38,36 @@ class Main extends Controller {
39
  $this->addAction( 'admin_menu', 'adminMenu' );
40
  }
41
  $this->addAction( 'defender_enqueue_assets', 'scripts', 12 );
42
-
43
- new Auth_Listener();
44
  new Mask_Login_Listener();
 
45
  }
46
-
47
  /**
48
  * Add submit admin page
49
  */
50
  public function adminMenu() {
51
  $cap = is_multisite() ? 'manage_network_options' : 'manage_options';
52
- add_submenu_page( 'wp-defender', esc_html__( "Advanced Tools", "defender-security" ), esc_html__( "Advanced Tools", "defender-security" ), $cap, $this->slug, array(
53
- &$this,
54
- 'actionIndex'
55
- ) );
 
 
 
 
 
 
 
56
  }
57
-
58
  /**
59
  * a simple router
60
  */
61
  public function actionIndex() {
62
  $this->render( 'main' );
63
  }
64
-
65
  /**
66
  * Enqueue scripts & styles
67
  */
@@ -70,11 +76,17 @@ class Main extends Controller {
70
  wp_enqueue_style( 'wpmudev-sui' );
71
  wp_enqueue_media();
72
  wp_enqueue_style( 'defender' );
73
- wp_register_script( 'defender-adtools', wp_defender()->getPluginUrl() . 'assets/app/advanced-tools.js', array(
74
- 'def-vue',
75
- 'defender',
76
- 'wp-i18n'
77
- ), wp_defender()->version, true );
 
 
 
 
 
 
78
  wp_localize_script( 'defender-adtools', 'advanced_tools', $this->_scriptsData() );
79
  Utils::instance()->createTranslationJson( 'defender-adtools' );
80
  wp_set_script_translations( 'defender-adtools', 'wpdef', wp_defender()->getPluginPath() . 'languages' );
@@ -82,35 +94,36 @@ class Main extends Controller {
82
  wp_enqueue_script( 'wpmudev-sui' );
83
  }
84
  }
85
-
86
  /**
87
  * @return array
88
  */
89
  public function _scriptsData() {
90
  if ( ! $this->checkPermission() ) {
91
- return [];
92
  }
93
- $settings = Auth_Settings::instance();
94
  $allRoles = get_editable_roles();
95
  $ml_settings = Mask_Settings::instance();
96
-
97
- return [
98
- 'misc' => [
 
99
  'all_roles' => $allRoles,
100
  'compatibility' => isset( wp_defender()->global['compatibility'] ) && is_array( wp_defender()->global['compatibility'] ) ? wp_defender()->global['compatibility'] : false,
101
  'new_login_url' => Mask_Api::getNewLoginUrl(),
102
  'login_redirect_url' => Mask_Api::getRedirectUrl(),
103
- 'home_url' => trailingslashit( network_home_url() )
104
- ],
105
- 'model' => [
106
- 'two_factor' => $settings->export(),
107
- 'mask_login' => $ml_settings->export( [ 'otp' ] )
108
- ],
109
- 'nonces' => [
 
110
  'updateSettings' => wp_create_nonce( 'updateSettings' ),
111
- 'sendTestEmail' => wp_create_nonce( 'sendTestEmail' )
112
- ],
113
  'endpoints' => $this->getAllAvailableEndpoints( \WP_Defender\Module\Advanced_Tools::getClassName() ),
114
- ];
115
  }
116
  }
9
  use Hammer\Helper\WP_Helper;
10
  use WP_Defender\Behavior\Utils;
11
  use WP_Defender\Controller;
 
 
12
  use WP_Defender\Module\Advanced_Tools\Component\Mask_Api;
13
  use WP_Defender\Module\Advanced_Tools\Component\Mask_Login_Listener;
14
+ use WP_Defender\Module\Advanced_Tools\Component\Security_Headers_Listener;
15
  use WP_Defender\Module\Advanced_Tools\Model\Mask_Settings;
16
+ use WP_Defender\Module\Advanced_Tools\Model\Security_Headers_Settings;
17
 
18
  class Main extends Controller {
19
  protected $slug = 'wdf-advanced-tools';
20
+
21
  /**
22
  * @return array
23
  */
25
  $behaviors = array(
26
  'utils' => '\WP_Defender\Behavior\Utils',
27
  'endpoints' => '\WP_Defender\Behavior\Endpoint',
28
+ 'wpmudev' => '\WP_Defender\Behavior\WPMUDEV',
29
  );
30
+
31
  return $behaviors;
32
  }
33
+
34
  public function __construct() {
35
  if ( $this->isNetworkActivate( wp_defender()->plugin_slug ) ) {
36
  $this->addAction( 'network_admin_menu', 'adminMenu' );
38
  $this->addAction( 'admin_menu', 'adminMenu' );
39
  }
40
  $this->addAction( 'defender_enqueue_assets', 'scripts', 12 );
41
+
 
42
  new Mask_Login_Listener();
43
+ new Security_Headers_Listener();
44
  }
45
+
46
  /**
47
  * Add submit admin page
48
  */
49
  public function adminMenu() {
50
  $cap = is_multisite() ? 'manage_network_options' : 'manage_options';
51
+ add_submenu_page(
52
+ 'wp-defender',
53
+ esc_html__( 'Advanced Tools', "defender-security" ),
54
+ esc_html__( 'Advanced Tools', "defender-security" ),
55
+ $cap,
56
+ $this->slug,
57
+ array(
58
+ &$this,
59
+ 'actionIndex',
60
+ )
61
+ );
62
  }
63
+
64
  /**
65
  * a simple router
66
  */
67
  public function actionIndex() {
68
  $this->render( 'main' );
69
  }
70
+
71
  /**
72
  * Enqueue scripts & styles
73
  */
76
  wp_enqueue_style( 'wpmudev-sui' );
77
  wp_enqueue_media();
78
  wp_enqueue_style( 'defender' );
79
+ wp_register_script(
80
+ 'defender-adtools',
81
+ wp_defender()->getPluginUrl() . 'assets/app/advanced-tools.js',
82
+ array(
83
+ 'def-vue',
84
+ 'defender',
85
+ 'wp-i18n',
86
+ ),
87
+ wp_defender()->version,
88
+ true
89
+ );
90
  wp_localize_script( 'defender-adtools', 'advanced_tools', $this->_scriptsData() );
91
  Utils::instance()->createTranslationJson( 'defender-adtools' );
92
  wp_set_script_translations( 'defender-adtools', 'wpdef', wp_defender()->getPluginPath() . 'languages' );
94
  wp_enqueue_script( 'wpmudev-sui' );
95
  }
96
  }
97
+
98
  /**
99
  * @return array
100
  */
101
  public function _scriptsData() {
102
  if ( ! $this->checkPermission() ) {
103
+ return array();
104
  }
 
105
  $allRoles = get_editable_roles();
106
  $ml_settings = Mask_Settings::instance();
107
+ $sh_settings = Security_Headers_Settings::instance();
108
+
109
+ return array(
110
+ 'misc' => array(
111
  'all_roles' => $allRoles,
112
  'compatibility' => isset( wp_defender()->global['compatibility'] ) && is_array( wp_defender()->global['compatibility'] ) ? wp_defender()->global['compatibility'] : false,
113
  'new_login_url' => Mask_Api::getNewLoginUrl(),
114
  'login_redirect_url' => Mask_Api::getRedirectUrl(),
115
+ 'home_url' => trailingslashit( network_home_url() ),
116
+ 'security_headers' => $sh_settings->getHeadersAsArray( true ),
117
+ ),
118
+ 'model' => array(
119
+ 'mask_login' => $ml_settings->export( array( 'otp' ) ),
120
+ 'security_headers' => $sh_settings,
121
+ ),
122
+ 'nonces' => array(
123
  'updateSettings' => wp_create_nonce( 'updateSettings' ),
124
+ 'sendTestEmail' => wp_create_nonce( 'sendTestEmail' ),
125
+ ),
126
  'endpoints' => $this->getAllAvailableEndpoints( \WP_Defender\Module\Advanced_Tools::getClassName() ),
127
+ );
128
  }
129
  }
app/module/advanced-tools/controller/rest.php CHANGED
@@ -12,16 +12,16 @@ use WP_Defender\Module\Advanced_Tools;
12
 
13
  class Rest extends Controller {
14
  public function __construct() {
15
- $namespace = 'wp-defender/v1';
16
  $namespace .= '/advanced-tools';
17
- $routes = [
18
  $namespace . '/updateSettings' => 'updateSettings',
19
  $namespace . '/sendTestEmail' => 'sendTestEmail',
20
-
21
- ];
22
  $this->registerEndpoints( $routes, Advanced_Tools::getClassName() );
23
  }
24
-
25
  /**
26
  * Send test email
27
  */
@@ -29,42 +29,46 @@ class Rest extends Controller {
29
  if ( ! $this->checkPermission() ) {
30
  return;
31
  }
32
-
33
  if ( ! wp_verify_nonce( HTTP_Helper::retrieveGet( '_wpnonce' ), 'sendTestEmail' ) ) {
34
  return;
35
  }
36
-
37
  //get the backup email from current user
38
  $backup_email = Advanced_Tools\Component\Auth_API::getBackupEmail( get_current_user_id() );
39
  $subject = wp_kses_post( HTTP_Helper::retrievePost( 'email_subject' ) );
40
  $sender = HTTP_Helper::retrievePost( 'email_sender' );
41
  $body = wp_kses_post( HTTP_Helper::retrievePost( 'email_body' ) );
42
- $params = [
43
  'pass_code' => '[a-sample-passcode]',
44
- 'display_name' => Utils::instance()->getDisplayName()
45
- ];
46
  foreach ( $params as $key => $param ) {
47
  $body = str_replace( "{{$key}}", $param, $body );
48
  }
49
- $headers = [ 'Content-Type: text/html; charset=UTF-8' ];
50
  if ( $sender ) {
51
  $from_email = get_bloginfo( 'admin_email' );
52
  $headers[] = sprintf( 'From: %s <%s>', $sender, $from_email );
53
  }
54
-
55
  $send_mail = wp_mail( $backup_email, $subject, $body, $headers );
56
  if ( $send_mail ) {
57
- wp_send_json_success( array(
58
- 'message' => __( 'Test email has been sent to your email.', "defender-security" ),
59
- ) );
 
 
60
  } else {
61
- wp_send_json_error( array(
62
- 'message' => __( 'Test email failed.', "defender-security" ),
63
- ) );
 
 
64
  }
65
-
66
  }
67
-
68
  /**
69
  * An endpoint for update settings
70
  */
@@ -72,17 +76,18 @@ class Rest extends Controller {
72
  if ( ! $this->checkPermission() ) {
73
  return;
74
  }
75
-
76
  if ( ! wp_verify_nonce( HTTP_Helper::retrieveGet( '_wpnonce' ), 'updateSettings' ) ) {
77
  return;
78
  }
79
-
80
  $data = stripslashes( $_POST['data'] );
81
  $data = json_decode( $data, true );
82
  $module = $data['module'];
83
  $settings = $data['settings'];
84
- if ( $module == 'auth' ) {
85
- $model = Advanced_Tools\Model\Auth_Settings::instance();
 
86
  } else {
87
  $model = Advanced_Tools\Model\Mask_Settings::instance();
88
  }
@@ -90,18 +95,18 @@ class Rest extends Controller {
90
  if ( $model->validate() ) {
91
  $model->save();
92
  $res = array(
93
- 'message' => __( "Your settings have been updated.", "defender-security" )
94
  );
95
  $this->submitStatsToDev();
96
  wp_send_json_success( $res );
97
  } else {
98
  $res = array(
99
- 'message' => implode( '<br/>', $model->getErrors() )
100
  );
101
  wp_send_json_error( $res );
102
  }
103
  }
104
-
105
  /**
106
  * Import Utils into the class
107
  * @return array
@@ -110,7 +115,7 @@ class Rest extends Controller {
110
  $behaviors = array(
111
  'utils' => '\WP_Defender\Behavior\Utils',
112
  );
113
-
114
  return $behaviors;
115
  }
116
- }
12
 
13
  class Rest extends Controller {
14
  public function __construct() {
15
+ $namespace = 'wp-defender/v1';
16
  $namespace .= '/advanced-tools';
17
+ $routes = array(
18
  $namespace . '/updateSettings' => 'updateSettings',
19
  $namespace . '/sendTestEmail' => 'sendTestEmail',
20
+
21
+ );
22
  $this->registerEndpoints( $routes, Advanced_Tools::getClassName() );
23
  }
24
+
25
  /**
26
  * Send test email
27
  */
29
  if ( ! $this->checkPermission() ) {
30
  return;
31
  }
32
+
33
  if ( ! wp_verify_nonce( HTTP_Helper::retrieveGet( '_wpnonce' ), 'sendTestEmail' ) ) {
34
  return;
35
  }
36
+
37
  //get the backup email from current user
38
  $backup_email = Advanced_Tools\Component\Auth_API::getBackupEmail( get_current_user_id() );
39
  $subject = wp_kses_post( HTTP_Helper::retrievePost( 'email_subject' ) );
40
  $sender = HTTP_Helper::retrievePost( 'email_sender' );
41
  $body = wp_kses_post( HTTP_Helper::retrievePost( 'email_body' ) );
42
+ $params = array(
43
  'pass_code' => '[a-sample-passcode]',
44
+ 'display_name' => Utils::instance()->getDisplayName(),
45
+ );
46
  foreach ( $params as $key => $param ) {
47
  $body = str_replace( "{{$key}}", $param, $body );
48
  }
49
+ $headers = array( 'Content-Type: text/html; charset=UTF-8' );
50
  if ( $sender ) {
51
  $from_email = get_bloginfo( 'admin_email' );
52
  $headers[] = sprintf( 'From: %s <%s>', $sender, $from_email );
53
  }
54
+
55
  $send_mail = wp_mail( $backup_email, $subject, $body, $headers );
56
  if ( $send_mail ) {
57
+ wp_send_json_success(
58
+ array(
59
+ 'message' => __( 'Test email has been sent to your email.', "defender-security" ),
60
+ )
61
+ );
62
  } else {
63
+ wp_send_json_error(
64
+ array(
65
+ 'message' => __( 'Test email failed.', "defender-security" ),
66
+ )
67
+ );
68
  }
69
+
70
  }
71
+
72
  /**
73
  * An endpoint for update settings
74
  */
76
  if ( ! $this->checkPermission() ) {
77
  return;
78
  }
79
+
80
  if ( ! wp_verify_nonce( HTTP_Helper::retrieveGet( '_wpnonce' ), 'updateSettings' ) ) {
81
  return;
82
  }
83
+
84
  $data = stripslashes( $_POST['data'] );
85
  $data = json_decode( $data, true );
86
  $module = $data['module'];
87
  $settings = $data['settings'];
88
+ if ( 'security-headers' === $module ) {
89
+ $model = Advanced_Tools\Model\Security_Headers_Settings::instance();
90
+ $settings = apply_filters( 'processing_security_headers', $settings );
91
  } else {
92
  $model = Advanced_Tools\Model\Mask_Settings::instance();
93
  }
95
  if ( $model->validate() ) {
96
  $model->save();
97
  $res = array(
98
+ 'message' => __( 'Your settings have been updated.', "defender-security" ),
99
  );
100
  $this->submitStatsToDev();
101
  wp_send_json_success( $res );
102
  } else {
103
  $res = array(
104
+ 'message' => implode( '<br/>', $model->getErrors() ),
105
  );
106
  wp_send_json_error( $res );
107
  }
108
  }
109
+
110
  /**
111
  * Import Utils into the class
112
  * @return array
115
  $behaviors = array(
116
  'utils' => '\WP_Defender\Behavior\Utils',
117
  );
118
+
119
  return $behaviors;
120
  }
121
+ }
app/module/advanced-tools/model/mask-settings.php CHANGED
@@ -14,13 +14,13 @@ class Mask_Settings extends \Hammer\WP\Settings {
14
  public $enabled = false;
15
  public $otps = [];
16
  private static $_instance;
17
-
18
  public function __construct( $id, $is_multi ) {
19
  parent::__construct( $id, $is_multi );
20
  $this->enabled = ! ! $this->enabled;
21
  $this->redirect_traffic = ! ! $this->redirect_traffic;
22
  }
23
-
24
  /**
25
  * @return Mask_Settings
26
  */
@@ -29,21 +29,21 @@ class Mask_Settings extends \Hammer\WP\Settings {
29
  $class = new Mask_Settings( 'wd_masking_login_settings', WP_Helper::is_network_activate( wp_defender()->plugin_slug ) );
30
  self::$_instance = $class;
31
  }
32
-
33
  return self::$_instance;
34
  }
35
-
36
  /**
37
  * @return bool
38
  */
39
  public function isEnabled() {
40
  return $this->enabled && ( strlen( trim( $this->mask_url ) ) > 0 );
41
  }
42
-
43
  public function isRedirect() {
44
  return $this->redirect_traffic && ( strlen( trim( $this->redirect_traffic_url ) ) > 0 );
45
  }
46
-
47
  /**
48
  * Return the attributes we will run an xss filters
49
  * @return array
@@ -54,13 +54,53 @@ class Mask_Settings extends \Hammer\WP\Settings {
54
  'redirect_traffic_url'
55
  ];
56
  }
57
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
  /**
59
  * Define labels for settings key, we will use it for HUB
60
  *
61
  * @param null $key
62
  *
63
- * @return array|mixedß
64
  */
65
  public function labels( $key = null ) {
66
  $labels = [
@@ -69,14 +109,14 @@ class Mask_Settings extends \Hammer\WP\Settings {
69
  'redirect_traffic' => __( 'Redirect traffic', "defender-security" ),
70
  'redirect_traffic_url' => __( "Redirection URL", "defender-security" ),
71
  ];
72
-
73
  if ( $key != null ) {
74
  return isset( $labels[ $key ] ) ? $labels[ $key ] : null;
75
  }
76
-
77
  return $labels;
78
  }
79
-
80
  public function beforeValidate() {
81
  if ( $this->mask_url === $this->redirect_traffic_url && strlen( $this->redirect_traffic_url ) > 0 ) {
82
  $this->addError( 'redirect_traffic_url', __( "Redirect URL must different from Login URL", "defender-security" ) );
14
  public $enabled = false;
15
  public $otps = [];
16
  private static $_instance;
17
+
18
  public function __construct( $id, $is_multi ) {
19
  parent::__construct( $id, $is_multi );
20
  $this->enabled = ! ! $this->enabled;
21
  $this->redirect_traffic = ! ! $this->redirect_traffic;
22
  }
23
+
24
  /**
25
  * @return Mask_Settings
26
  */
29
  $class = new Mask_Settings( 'wd_masking_login_settings', WP_Helper::is_network_activate( wp_defender()->plugin_slug ) );
30
  self::$_instance = $class;
31
  }
32
+
33
  return self::$_instance;
34
  }
35
+
36
  /**
37
  * @return bool
38
  */
39
  public function isEnabled() {
40
  return $this->enabled && ( strlen( trim( $this->mask_url ) ) > 0 );
41
  }
42
+
43
  public function isRedirect() {
44
  return $this->redirect_traffic && ( strlen( trim( $this->redirect_traffic_url ) ) > 0 );
45
  }
46
+
47
  /**
48
  * Return the attributes we will run an xss filters
49
  * @return array
54
  'redirect_traffic_url'
55
  ];
56
  }
57
+
58
+ public function events() {
59
+ $that = $this;
60
+
61
+ return array(
62
+ self::EVENT_AFTER_VALIDATE => array(
63
+ array(
64
+ function () use ( $that ) {
65
+ if ( empty( $this->mask_url ) ) {
66
+ return;
67
+ }
68
+ $forbidden = [
69
+ 'login',
70
+ 'wp-admin',
71
+ 'admin',
72
+ 'dashboard'
73
+ ];
74
+
75
+ if ( in_array( $this->mask_url, $forbidden, true ) ) {
76
+ $this->errors[] = __( 'A page already exists at this URL, please pick a unique page for your new login area.', 'wpdef' );
77
+
78
+ return false;
79
+ }
80
+ $exits = get_page_by_path( $this->mask_url, OBJECT, [ 'post', 'page' ] );
81
+ if ( is_object( $exits ) ) {
82
+ $this->errors[] = __( 'A page already exists at this URL, please pick a unique page for your new login area.', 'wpdef' );
83
+
84
+ return false;
85
+ }
86
+
87
+ if ( $this->mask_url === $this->redirect_traffic_url ) {
88
+ $this->errors[] = __( 'Redirect URL must different from Login URL', 'wpdef' );
89
+
90
+ return false;
91
+ }
92
+ }
93
+ )
94
+ )
95
+ );
96
+ }
97
+
98
  /**
99
  * Define labels for settings key, we will use it for HUB
100
  *
101
  * @param null $key
102
  *
103
+ * @return array|mixed
104
  */
105
  public function labels( $key = null ) {
106
  $labels = [
109
  'redirect_traffic' => __( 'Redirect traffic', "defender-security" ),
110
  'redirect_traffic_url' => __( "Redirection URL", "defender-security" ),
111
  ];
112
+
113
  if ( $key != null ) {
114
  return isset( $labels[ $key ] ) ? $labels[ $key ] : null;
115
  }
116
+
117
  return $labels;
118
  }
119
+
120
  public function beforeValidate() {
121
  if ( $this->mask_url === $this->redirect_traffic_url && strlen( $this->redirect_traffic_url ) > 0 ) {
122
  $this->addError( 'redirect_traffic_url', __( "Redirect URL must different from Login URL", "defender-security" ) );
app/module/advanced-tools/model/security-headers-settings.php ADDED
@@ -0,0 +1,257 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Author: Hoang Ngo
4
+ */
5
+
6
+ namespace WP_Defender\Module\Advanced_Tools\Model;
7
+
8
+ use Hammer\Helper\WP_Helper;
9
+ use WP_Defender\Module\Advanced_Tools\Component\Security_Headers\Sh_X_Frame;
10
+ use WP_Defender\Module\Advanced_Tools\Component\Security_Headers\Sh_XSS_Protection;
11
+ use WP_Defender\Module\Advanced_Tools\Component\Security_Headers\Sh_Content_Type_Options;
12
+ use WP_Defender\Module\Advanced_Tools\Component\Security_Headers\Sh_Strict_Transport;
13
+ use WP_Defender\Module\Advanced_Tools\Component\Security_Headers\Sh_Feature_Policy;
14
+ use WP_Defender\Module\Advanced_Tools\Component\Security_Headers\Sh_Referrer_Policy;
15
+
16
+ class Security_Headers_Settings extends \Hammer\WP\Settings {
17
+ /**
18
+ * @var bool
19
+ */
20
+ public $sh_xframe = false;
21
+ /**
22
+ * @var string
23
+ */
24
+ public $sh_xframe_mode = 'sameorigin';
25
+ /**
26
+ * @var string
27
+ */
28
+ public $sh_xframe_urls = '';
29
+ /**
30
+ * @var bool
31
+ */
32
+ public $sh_xss_protection = false;
33
+ /**
34
+ * @var string
35
+ */
36
+ public $sh_xss_protection_mode = 'sanitize';
37
+ /**
38
+ * @var bool
39
+ */
40
+ public $sh_content_type_options = false;
41
+ /**
42
+ * @var string
43
+ */
44
+ public $sh_content_type_options_mode = 'nosniff';
45
+ /**
46
+ * @var bool
47
+ */
48
+ public $sh_strict_transport = false;
49
+ /**
50
+ * @var int
51
+ */
52
+ public $hsts_preload = 0;
53
+ /**
54
+ * @var int
55
+ */
56
+ public $include_subdomain = 0;
57
+ /**
58
+ * @var string
59
+ */
60
+ public $hsts_cache_duration = '30 days';
61
+ /**
62
+ * @var bool
63
+ */
64
+ public $sh_referrer_policy = false;
65
+ /**
66
+ * @var string
67
+ */
68
+ public $sh_referrer_policy_mode = 'origin-when-cross-origin';
69
+ /**
70
+ * @var bool
71
+ */
72
+ public $sh_feature_policy = false;
73
+ /**
74
+ * @var string
75
+ */
76
+ public $sh_feature_policy_mode = 'self';
77
+ /**
78
+ * @var string
79
+ */
80
+ public $sh_feature_policy_urls = '';
81
+ /**
82
+ * Contains all the data generated by rules
83
+ * @var array
84
+ */
85
+ public $data = array();
86
+
87
+ private static $_instance;
88
+
89
+ public function __construct( $id, $is_multi ) {
90
+ parent::__construct( $id, $is_multi );
91
+ }
92
+
93
+ /**
94
+ * @return Security_Headers_Settings
95
+ */
96
+ public static function instance() {
97
+ if ( is_null( self::$_instance ) ) {
98
+ $class = new Security_Headers_Settings( 'wd_security_headers_settings', WP_Helper::is_network_activate( "defender-security" ) );
99
+ self::$_instance = $class;
100
+ }
101
+
102
+ return self::$_instance;
103
+ }
104
+
105
+ /**
106
+ * Define labels for settings key, we will use it for HUB
107
+ *
108
+ * @param null $key
109
+ *
110
+ * @return string
111
+ */
112
+ public function labels( $key = null ) {
113
+ $labels = array(
114
+ 'sh_xframe' => __( 'Enable X-Frame-Options', "defender-security" ),
115
+ 'sh_xframe_urls' => __( 'Allow-from', "defender-security" ),
116
+ 'sh_xss_protection' => __( 'Enable X-XSS-Protection', "defender-security" ),
117
+ 'sh_content_type_options' => __( 'Enable X-Content-Type-Options', "defender-security" ),
118
+ 'sh_strict_transport' => __( 'Enable Strict Transport', "defender-security" ),
119
+ 'hsts_preload' => __( 'HSTS Preload', "defender-security" ),
120
+ 'include_subdomain' => __( 'Include Subdomains', "defender-security" ),
121
+ 'hsts_cache_duration' => __( 'Browser caching', "defender-security" ),
122
+ 'sh_referrer_policy' => __( 'Enable Referrer Policy', "defender-security" ),
123
+ 'sh_referrer_policy_mode' => __( 'Referrer Information', "defender-security" ),
124
+ 'sh_feature_policy' => __( 'Enable Feature-Policy', "defender-security" ),
125
+ 'sh_feature_policy_urls' => __( 'Specific Origins', "defender-security" ),
126
+ );
127
+
128
+ if ( null !== $key ) {
129
+ return isset( $labels[ $key ] ) ? $labels[ $key ] : null;
130
+ }
131
+ }
132
+
133
+ /**
134
+ * Get headers
135
+ *
136
+ * @return array
137
+ */
138
+ public function getHeaders() {
139
+ return array(
140
+ Sh_X_Frame::$rule_slug => new Sh_X_Frame(),
141
+ Sh_XSS_Protection::$rule_slug => new Sh_XSS_Protection(),
142
+ Sh_Content_Type_Options::$rule_slug => new Sh_Content_Type_Options(),
143
+ Sh_Strict_Transport::$rule_slug => new Sh_Strict_Transport(),
144
+ Sh_Referrer_Policy::$rule_slug => new Sh_Referrer_Policy(),
145
+ Sh_Feature_Policy::$rule_slug => new Sh_Feature_Policy(),
146
+ );
147
+ }
148
+
149
+ /**
150
+ * Filter the security headers and return data as array
151
+ *
152
+ * @param bool $sort
153
+ *
154
+ * @return array
155
+ */
156
+ public function getHeadersAsArray( $sort = false ) {
157
+ $headers = $this->getHeaders();
158
+ $data = array();
159
+ foreach ( $headers as $header ) {
160
+ $data[ $header::$rule_slug ] = array(
161
+ 'slug' => $header::$rule_slug,
162
+ 'title' => $header->getTitle(),
163
+ 'misc' => $header->getMiscData(),
164
+ );
165
+ }
166
+
167
+ if ( $sort ) {
168
+ ksort( $data );
169
+ }
170
+
171
+ return $data;
172
+ }
173
+
174
+ /**
175
+ * @param $key
176
+ *
177
+ * @return mixed
178
+ */
179
+ public function getDataValues( $key ) {
180
+ if ( is_array( $this->data ) && isset( $this->data[ $key ] ) ) {
181
+ return $this->data[ $key ];
182
+ }
183
+
184
+ return null;
185
+ }
186
+
187
+ /**
188
+ * @param $key
189
+ * @param $value
190
+ */
191
+ public function setDataValues( $key, $value ) {
192
+ if ( null === $value ) {
193
+ unset( $this->data[ $key ] );
194
+ } elseif ( is_array( $this->data ) ) {
195
+ $this->data[ $key ] = $value;
196
+ }
197
+ $this->save();
198
+ }
199
+
200
+ public function afterValidate() {
201
+ if ( true === $this->sh_xframe
202
+ && ( empty( $this->sh_xframe_mode )
203
+ || ! in_array( $this->sh_xframe_mode, array( 'sameorigin', 'allow-from', 'deny' ), true ) )
204
+ ) {
205
+ $this->addError( 'sh_xframe_mode', __( 'X-Frame-Options mode is invalid', "defender-security" ) );
206
+
207
+ return false;
208
+ }
209
+
210
+ if ( true === $this->sh_xss_protection
211
+ && ( empty( $this->sh_xss_protection_mode )
212
+ || ! in_array( $this->sh_xss_protection_mode, array( 'sanitize', 'block', 'none' ), true ) )
213
+ ) {
214
+ $this->addError( 'sh_xss_protection_mode', __( 'X-XSS-Protection mode is invalid', "defender-security" ) );
215
+
216
+ return false;
217
+ }
218
+
219
+ if ( true === $this->sh_referrer_policy
220
+ && ( empty( $this->sh_referrer_policy_mode )
221
+ || ! in_array(
222
+ $this->sh_referrer_policy_mode,
223
+ array(
224
+ 'no-referrer',
225
+ 'no-referrer-when-downgrade',
226
+ 'origin',
227
+ 'origin-when-cross-origin',
228
+ 'same-origin',
229
+ 'strict-origin',
230
+ 'strict-origin-when-cross-origin',
231
+ 'unsafe-url',
232
+ ),
233
+ true
234
+ )
235
+ )
236
+ ) {
237
+ $this->addError( 'sh_referrer_policy_mode', __( 'Referrer Policy mode is invalid', "defender-security" ) );
238
+
239
+ return false;
240
+ }
241
+ }
242
+
243
+ /**
244
+ * Refresh headers
245
+ */
246
+ public function refreshHeaders() {
247
+ $defined_headers = $this->getHeaders();
248
+ $enabled = [];
249
+ foreach ( $defined_headers as $header ) {
250
+ $status = $header->check();
251
+ if ( $status == true ) {
252
+ $enabled[] = $header;
253
+ }
254
+ }
255
+ wp_defender()->global['security_headers_enabled'] = $enabled;
256
+ }
257
+ }
app/module/audit/controller/main-free.php CHANGED
@@ -10,7 +10,6 @@ use Hammer\Helper\Log_Helper;
10
  use Hammer\Helper\WP_Helper;
11
  use WP_Defender\Behavior\Utils;
12
  use WP_Defender\Module\Audit\Component\Audit_API;
13
- use WP_Defender\Module\Audit\Component\Audit_Table;
14
  use WP_Defender\Module\Audit\Model\Settings;
15
 
16
  class Main_Free extends \WP_Defender\Controller {
10
  use Hammer\Helper\WP_Helper;
11
  use WP_Defender\Behavior\Utils;
12
  use WP_Defender\Module\Audit\Component\Audit_API;
 
13
  use WP_Defender\Module\Audit\Model\Settings;
14
 
15
  class Main_Free extends \WP_Defender\Controller {
app/module/hardener/model/settings.php CHANGED
@@ -19,13 +19,6 @@ use WP_Defender\Module\Hardener\Component\Prevent_Enum_Users;
19
  use WP_Defender\Module\Hardener\Component\Prevent_Php;
20
  use WP_Defender\Module\Hardener\Component\Protect_Information;
21
  use WP_Defender\Module\Hardener\Component\Security_Key;
22
- use WP_Defender\Module\Hardener\Component\Sh_Content_Security;
23
- use WP_Defender\Module\Hardener\Component\Sh_Content_Type_Options;
24
- use WP_Defender\Module\Hardener\Component\Sh_Feature_Policy;
25
- use WP_Defender\Module\Hardener\Component\Sh_Referrer_Policy;
26
- use WP_Defender\Module\Hardener\Component\Sh_Strict_Transport;
27
- use WP_Defender\Module\Hardener\Component\Sh_X_Frame;
28
- use WP_Defender\Module\Hardener\Component\Sh_XSS_Protection;
29
  use WP_Defender\Module\Hardener\Component\WP_Rest_Api;
30
  use WP_Defender\Module\Hardener\Component\WP_Version;
31
  use WP_Defender\Module\Hardener\Rule;
@@ -373,14 +366,6 @@ class Settings extends \Hammer\WP\Settings {
373
  Login_Duration::$slug => $init == true ? new Login_Duration() : Login_Duration::getClassName(),
374
  Disable_Xml_Rpc::$slug => $init == true ? new Disable_Xml_Rpc() : Disable_Xml_Rpc::getClassName(),
375
  //WP_Rest_Api::$slug => $init == true ? new WP_Rest_Api() : WP_Rest_Api::getClassName(),
376
- //============SECURITY HEADERS===================
377
- Sh_X_Frame::$slug => $init == true ? new Sh_X_Frame() : Sh_X_Frame::getClassName(),
378
- Sh_XSS_Protection::$slug => $init == true ? new Sh_XSS_Protection() : Sh_XSS_Protection::getClassName(),
379
- Sh_Feature_Policy::$slug => $init == true ? new Sh_Feature_Policy() : Sh_Feature_Policy::getClassName(),
380
- Sh_Referrer_Policy::$slug => $init == true ? new Sh_Referrer_Policy() : Sh_Referrer_Policy::getClassName(),
381
- Sh_Strict_Transport::$slug => $init == true ? new Sh_Strict_Transport() : Sh_Strict_Transport::getClassName(),
382
- Sh_Content_Type_Options::$slug => $init == true ? new Sh_Content_Type_Options() : Sh_Content_Type_Options::getClassName(),
383
- //Sh_Content_Security::$slug => $init == true ? new Sh_Content_Security() : Sh_Content_Security::getClassName(),
384
  );
385
  }
386
 
19
  use WP_Defender\Module\Hardener\Component\Prevent_Php;
20
  use WP_Defender\Module\Hardener\Component\Protect_Information;
21
  use WP_Defender\Module\Hardener\Component\Security_Key;
 
 
 
 
 
 
 
22
  use WP_Defender\Module\Hardener\Component\WP_Rest_Api;
23
  use WP_Defender\Module\Hardener\Component\WP_Version;
24
  use WP_Defender\Module\Hardener\Rule;
366
  Login_Duration::$slug => $init == true ? new Login_Duration() : Login_Duration::getClassName(),
367
  Disable_Xml_Rpc::$slug => $init == true ? new Disable_Xml_Rpc() : Disable_Xml_Rpc::getClassName(),
368
  //WP_Rest_Api::$slug => $init == true ? new WP_Rest_Api() : WP_Rest_Api::getClassName(),
 
 
 
 
 
 
 
 
369
  );
370
  }
371
 
app/module/ip-lockout/component/notfound-listener.php CHANGED
@@ -22,7 +22,7 @@ class Notfound_Listener extends Controller {
22
  if ( ! is_404() ) {
23
  return;
24
  }
25
-
26
  if ( is_user_logged_in() && current_user_can( 'edit_posts' ) ) {
27
  //only track subscriber
28
  return;
@@ -99,8 +99,8 @@ class Notfound_Listener extends Controller {
99
  'type' => Log_Model::ERROR_404,
100
  'date' => [ 'compare' => '>', 'value' => $window ]
101
  ] );
102
-
103
- if ( $attempts > $settings->detect_404_threshold ) {
104
  //lock it
105
  $this->lock( $model, 'normal', $uri );
106
  $this->log( $uri, Log_Model::LOCKOUT_404, sprintf( __( "Lockout occurred: Too many 404 requests for %s" ), $uri ) );
@@ -130,9 +130,12 @@ class Notfound_Listener extends Controller {
130
  $settings->addIpToList( $model->ip, 'blacklist' );
131
  }
132
  $model->lock_time = time();
133
-
134
  do_action( 'wd_404_lockout', $model, $scenario );
135
- $this->email( $model, $uri );
 
 
 
136
  }
137
 
138
  /**
22
  if ( ! is_404() ) {
23
  return;
24
  }
25
+
26
  if ( is_user_logged_in() && current_user_can( 'edit_posts' ) ) {
27
  //only track subscriber
28
  return;
99
  'type' => Log_Model::ERROR_404,
100
  'date' => [ 'compare' => '>', 'value' => $window ]
101
  ] );
102
+
103
+ if ( $attempts >= $settings->detect_404_threshold ) {
104
  //lock it
105
  $this->lock( $model, 'normal', $uri );
106
  $this->log( $uri, Log_Model::LOCKOUT_404, sprintf( __( "Lockout occurred: Too many 404 requests for %s" ), $uri ) );
130
  $settings->addIpToList( $model->ip, 'blacklist' );
131
  }
132
  $model->lock_time = time();
133
+
134
  do_action( 'wd_404_lockout', $model, $scenario );
135
+ //Only ip_lockout_notification is enabled
136
+ if ( isset( $settings->ip_lockout_notification ) && $settings->ip_lockout_notification ) {
137
+ $this->email($model, $uri);
138
+ }
139
  }
140
 
141
  /**
app/module/ip-lockout/controller/main.php CHANGED
@@ -48,11 +48,9 @@ class Main extends Controller {
48
  if ( $this->isInPage() || $this->isDashboard() ) {
49
  $this->addAction( 'defender_enqueue_assets', 'scripts', 11 );
50
  }
51
-
52
  $this->maybeExport();
53
-
54
- $this->addAjaxAction( 'lockoutExportAsCsv', 'exportAsCsv' );
55
-
56
  if ( ! Login_Protection_Api::checkIfTableExists() ) {
57
  //no table logs, omething happen
58
  return;
@@ -106,44 +104,7 @@ class Main extends Controller {
106
  array_key_exists( 'SERVER_ADDR', $_SERVER ) ? $_SERVER['SERVER_ADDR'] : ( isset( $_SERVER['LOCAL_ADDR'] ) ? $_SERVER['LOCAL_ADDR'] : null )
107
  ) );
108
  }
109
-
110
- /**
111
- *
112
- */
113
- public function exportAsCsv() {
114
- if ( ! $this->checkPermission() ) {
115
- return;
116
- }
117
- $logs = Log_Model::findAll();
118
- $fp = fopen( 'php://memory', 'w' );
119
- $headers = array(
120
- __( "Log", "defender-security" ),
121
- __( "Date / Time", "defender-security" ),
122
- __( "Type", "defender-security" ),
123
- __( "IP address", "defender-security" ),
124
- __( "Status", "defender-security" )
125
- );
126
- fputcsv( $fp, $headers );
127
- foreach ( $logs as $log ) {
128
- $item = array(
129
- $log->log,
130
- $log->get_date(),
131
- $log->get_type(),
132
- $log->ip,
133
- Login_Protection_Api::getIPStatusText( $log->ip )
134
- );
135
- fputcsv( $fp, $item );
136
- }
137
-
138
- $filename = 'wdf-lockout-logs-export-' . date( 'ymdHis' ) . '.csv';
139
- fseek( $fp, 0 );
140
- header( 'Content-Type: text/csv' );
141
- header( 'Content-Disposition: attachment; filename="' . $filename . '";' );
142
- // make php send the generated csv lines to the browser
143
- fpassthru( $fp );
144
- exit();
145
- }
146
-
147
  /**
148
  * Determine if an ip get lockout or not
149
  */
@@ -286,7 +247,7 @@ class Main extends Controller {
286
  return;
287
  }
288
 
289
- if ( ! wp_verify_nonce( HTTP_Helper::retrieveGet( '_wpnonce' ), 'exportIps' ) ) {
290
  return;
291
  }
292
  $setting = Settings::instance();
@@ -323,7 +284,7 @@ class Main extends Controller {
323
  public function adminMenu() {
324
  $cap = is_multisite() ? 'manage_network_options' : 'manage_options';
325
  $action = "actionIndex";
326
- add_submenu_page( 'wp-defender', esc_html__( "IP Lockouts", "defender-security" ), esc_html__( "IP Lockouts", "defender-security" ), $cap, $this->slug, array(
327
  &$this,
328
  $action
329
  ) );
@@ -349,7 +310,7 @@ class Main extends Controller {
349
 
350
  wp_enqueue_media();
351
  wp_enqueue_script( 'def-momentjs', wp_defender()->getPluginUrl() . 'assets/js/vendor/moment/moment.min.js' );
352
- wp_enqueue_style( 'def-daterangepicker', wp_defender()->getPluginUrl() . 'assets/js/vendor/daterangepicker/daterangepicker.css' );
353
  wp_enqueue_script( 'def-daterangepicker', wp_defender()->getPluginUrl() . 'assets/js/vendor/daterangepicker/daterangepicker.js' );
354
  wp_enqueue_script( 'defender-iplockout' );
355
  wp_enqueue_script( 'wpmudev-sui' );
@@ -399,7 +360,7 @@ class Main extends Controller {
399
  'emptyLogs' => wp_create_nonce( 'emptyLogs' ),
400
  'queryLockedIps' => wp_create_nonce( 'queryLockedIps' ),
401
  'ipAction' => wp_create_nonce( 'ipAction' ),
402
- 'exportIps' => wp_create_nonce( 'exportIps' )
403
  ],
404
  'endpoints' => $this->getAllAvailableEndpoints( \WP_Defender\Module\IP_Lockout::getClassName() ),
405
  'whitelabel' => $this->whiteLabelStatus(),
@@ -479,7 +440,7 @@ class Main extends Controller {
479
  'times_of_days' => Utils::instance()->getTimes(),
480
  'host' => $host,
481
  'user_ip' => Utils::instance()->getUserIp(),
482
- 'geo_requirement' => version_compare( phpversion(), '5.4', '<' ),
483
  'tz' => $tz,
484
  'current_time' => \WP_Defender\Behavior\Utils::instance()->formatDateTime( current_time( 'timestamp' ), false )
485
  ],
48
  if ( $this->isInPage() || $this->isDashboard() ) {
49
  $this->addAction( 'defender_enqueue_assets', 'scripts', 11 );
50
  }
51
+
52
  $this->maybeExport();
53
+
 
 
54
  if ( ! Login_Protection_Api::checkIfTableExists() ) {
55
  //no table logs, omething happen
56
  return;
104
  array_key_exists( 'SERVER_ADDR', $_SERVER ) ? $_SERVER['SERVER_ADDR'] : ( isset( $_SERVER['LOCAL_ADDR'] ) ? $_SERVER['LOCAL_ADDR'] : null )
105
  ) );
106
  }
107
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
108
  /**
109
  * Determine if an ip get lockout or not
110
  */
247
  return;
248
  }
249
 
250
+ if ( ! wp_verify_nonce( HTTP_Helper::retrieveGet( '_wpnonce' ), 'exportIPs' ) ) {
251
  return;
252
  }
253
  $setting = Settings::instance();
284
  public function adminMenu() {
285
  $cap = is_multisite() ? 'manage_network_options' : 'manage_options';
286
  $action = "actionIndex";
287
+ add_submenu_page( 'wp-defender', esc_html__( "Firewall", "defender-security" ), esc_html__( "Firewall", "defender-security" ), $cap, $this->slug, array(
288
  &$this,
289
  $action
290
  ) );
310
 
311
  wp_enqueue_media();
312
  wp_enqueue_script( 'def-momentjs', wp_defender()->getPluginUrl() . 'assets/js/vendor/moment/moment.min.js' );
313
+ // wp_enqueue_style( 'def-daterangepicker', wp_defender()->getPluginUrl() . 'assets/js/vendor/daterangepicker/daterangepicker.css' );
314
  wp_enqueue_script( 'def-daterangepicker', wp_defender()->getPluginUrl() . 'assets/js/vendor/daterangepicker/daterangepicker.js' );
315
  wp_enqueue_script( 'defender-iplockout' );
316
  wp_enqueue_script( 'wpmudev-sui' );
360
  'emptyLogs' => wp_create_nonce( 'emptyLogs' ),
361
  'queryLockedIps' => wp_create_nonce( 'queryLockedIps' ),
362
  'ipAction' => wp_create_nonce( 'ipAction' ),
363
+ 'exportAsCsv' => wp_create_nonce( 'exportAsCsv' )
364
  ],
365
  'endpoints' => $this->getAllAvailableEndpoints( \WP_Defender\Module\IP_Lockout::getClassName() ),
366
  'whitelabel' => $this->whiteLabelStatus(),
440
  'times_of_days' => Utils::instance()->getTimes(),
441
  'host' => $host,
442
  'user_ip' => Utils::instance()->getUserIp(),
443
+ 'geo_requirement' => version_compare( phpversion(), '5.4', '>=' ),
444
  'tz' => $tz,
445
  'current_time' => \WP_Defender\Behavior\Utils::instance()->formatDateTime( current_time( 'timestamp' ), false )
446
  ],
app/module/ip-lockout/controller/rest.php CHANGED
@@ -30,6 +30,7 @@ class Rest extends Controller {
30
  $namespace . '/emptyLogs' => 'emptyLogs',
31
  $namespace . '/queryLockedIps' => 'queryLockedIps',
32
  $namespace . '/ipAction' => 'ipAction',
 
33
  ];
34
 
35
  $this->registerEndpoints( $routes, IP_Lockout::getClassName() );
@@ -380,7 +381,48 @@ class Rest extends Controller {
380
  ) );
381
  }
382
  }
383
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
384
  public function behaviors() {
385
  $behaviors = array(
386
  'utils' => '\WP_Defender\Behavior\Utils',
@@ -391,4 +433,4 @@ class Rest extends Controller {
391
 
392
  return $behaviors;
393
  }
394
- }
30
  $namespace . '/emptyLogs' => 'emptyLogs',
31
  $namespace . '/queryLockedIps' => 'queryLockedIps',
32
  $namespace . '/ipAction' => 'ipAction',
33
+ $namespace . '/exportAsCsv' => 'exportAsCsv'
34
  ];
35
 
36
  $this->registerEndpoints( $routes, IP_Lockout::getClassName() );
381
  ) );
382
  }
383
  }
384
+
385
+ /**
386
+ * Csv exporter
387
+ */
388
+ public function exportAsCsv() {
389
+ if ( ! $this->checkPermission() ) {
390
+ return;
391
+ }
392
+
393
+ if ( ! wp_verify_nonce( HTTP_Helper::retrieveGet( '_wpnonce' ), 'exportAsCsv' ) ) {
394
+ return;
395
+ }
396
+ $logs = Log_Model::findAll();
397
+ $fp = fopen( 'php://memory', 'w' );
398
+ $headers = array(
399
+ __( 'Log', "defender-security" ),
400
+ __( 'Date / Time', "defender-security" ),
401
+ __( 'Type', "defender-security" ),
402
+ __( 'IP address', "defender-security" ),
403
+ __( 'Status', "defender-security" )
404
+ );
405
+ fputcsv( $fp, $headers );
406
+ foreach ( $logs as $log ) {
407
+ $item = array(
408
+ $log->log,
409
+ $log->get_date(),
410
+ $log->get_type(),
411
+ $log->ip,
412
+ Login_Protection_Api::getIPStatusText( $log->ip )
413
+ );
414
+ fputcsv( $fp, $item );
415
+ }
416
+
417
+ $filename = 'wdf-lockout-logs-export-' . date( 'ymdHis' ) . '.csv';
418
+ fseek( $fp, 0 );
419
+ header( 'Content-Type: text/csv' );
420
+ header( 'Content-Disposition: attachment; filename="' . $filename . '";' );
421
+ // make php send the generated csv lines to the browser
422
+ fpassthru( $fp );
423
+ exit();
424
+ }
425
+
426
  public function behaviors() {
427
  $behaviors = array(
428
  'utils' => '\WP_Defender\Behavior\Utils',
433
 
434
  return $behaviors;
435
  }
436
+ }
app/module/scan/component/data-factory.php CHANGED
@@ -28,10 +28,11 @@ class Data_Factory {
28
  /**
29
  * This case there is a scan on progress, show status, status text and percent
30
  */
 
31
  $scan = [
32
  'status' => $model->status,
33
  'status_text' => $model->statusText,
34
- 'percent' => ( new Scanning() )->getScanProgress()
35
  ];
36
  } else {
37
  $issuesItems = $lastScan->getItemsAsJson( 0, Result_Item::STATUS_ISSUE, null );
@@ -72,6 +73,7 @@ class Data_Factory {
72
  'always_send_notification',
73
  'recipients_notification',
74
  'email_subject',
 
75
  'email_all_ok',
76
  'email_has_issue'
77
  ] )
28
  /**
29
  * This case there is a scan on progress, show status, status text and percent
30
  */
31
+ $scanning = new Scan\Component\Scanning();
32
  $scan = [
33
  'status' => $model->status,
34
  'status_text' => $model->statusText,
35
+ 'percent' => round( $scanning->getScanProgress(), 2 )
36
  ];
37
  } else {
38
  $issuesItems = $lastScan->getItemsAsJson( 0, Result_Item::STATUS_ISSUE, null );
73
  'always_send_notification',
74
  'recipients_notification',
75
  'email_subject',
76
+ 'email_subject_issue',
77
  'email_all_ok',
78
  'email_has_issue'
79
  ] )
app/module/scan/component/queue-factory.php CHANGED
@@ -52,7 +52,7 @@ class Queue_Factory extends Component {
52
 
53
  return [
54
  $queue,
55
- __( "Checking for any published vulnerabilities your plugins & themes...", "defender-security" )
56
  ];
57
  break;
58
  case 'gather_content_files':
52
 
53
  return [
54
  $queue,
55
+ __( "Checking for any published vulnerabilities in your plugins & themes...", "defender-security" )
56
  ];
57
  break;
58
  case 'gather_content_files':
app/module/scan/controller/main.php CHANGED
@@ -126,7 +126,7 @@ class Main extends \WP_Defender\Controller {
126
  */
127
  public function adminMenu() {
128
  $cap = is_multisite() ? 'manage_network_options' : 'manage_options';
129
- add_submenu_page( 'wp-defender', esc_html__( "File Scanning", "defender-security" ), esc_html__( "File Scanning", "defender-security" ), $cap, $this->slug, array(
130
  &$this,
131
  'actionIndex'
132
  ) );
@@ -232,13 +232,14 @@ class Main extends \WP_Defender\Controller {
232
  'SITE_URL' => network_site_url(),
233
  );
234
  $params = apply_filters( 'wd_notification_email_params', $params );
235
- $subject = apply_filters( 'wd_notification_email_subject', $settings->email_subject );
236
- $subject = stripslashes( $subject );
237
  if ( $count == 0 ) {
 
238
  $email_content = $settings->email_all_ok;
239
  } else {
 
240
  $email_content = $settings->email_has_issue;
241
  }
 
242
  $email_content = apply_filters( 'wd_notification_email_content_before', $email_content, $model );
243
  foreach ( $params as $key => $val ) {
244
  $email_content = str_replace( '{' . $key . '}', $val, $email_content );
126
  */
127
  public function adminMenu() {
128
  $cap = is_multisite() ? 'manage_network_options' : 'manage_options';
129
+ add_submenu_page( 'wp-defender', esc_html__( "Malware Scanning", "defender-security" ), esc_html__( "Malware Scanning", "defender-security" ), $cap, $this->slug, array(
130
  &$this,
131
  'actionIndex'
132
  ) );
232
  'SITE_URL' => network_site_url(),
233
  );
234
  $params = apply_filters( 'wd_notification_email_params', $params );
 
 
235
  if ( $count == 0 ) {
236
+ $subject = apply_filters( 'wd_notification_email_subject', $settings->email_subject );
237
  $email_content = $settings->email_all_ok;
238
  } else {
239
+ $subject = apply_filters( 'wd_notification_email_subject_issue', $settings->email_subject_issue );
240
  $email_content = $settings->email_has_issue;
241
  }
242
+ $subject = stripslashes( $subject );
243
  $email_content = apply_filters( 'wd_notification_email_content_before', $email_content, $model );
244
  foreach ( $params as $key => $val ) {
245
  $email_content = str_replace( '{' . $key . '}', $val, $email_content );
app/module/scan/model/settings.php CHANGED
@@ -73,8 +73,14 @@ class Settings extends \Hammer\WP\Settings {
73
  * @var int
74
  */
75
  public $max_filesize = 1;
76
-
 
 
 
 
 
77
  /**
 
78
  * @var string
79
  */
80
  public $email_subject = '';
@@ -121,8 +127,8 @@ class Settings extends \Hammer\WP\Settings {
121
  }
122
 
123
  public function __construct( $id, $is_multi ) {
124
- $this->email_subject = __( 'Scan of {SITE_URL} complete. {ISSUES_COUNT} issues found.', "defender-security" );
125
- $this->email_has_issue = __( 'Hi {USER_NAME},
126
 
127
  WP Defender here, reporting back from the front.
128
 
@@ -132,7 +138,8 @@ I\'ve finished scanning {SITE_URL} for vulnerabilities and I found {ISSUES_COUNT
132
  Stay Safe,
133
  WP Defender
134
  Official WPMU DEV Superhero', "defender-security" );
135
- $this->email_all_ok = __( 'Hi {USER_NAME},
 
136
 
137
  WP Defender here, reporting back from the front.
138
 
@@ -347,6 +354,7 @@ Official WPMU DEV Superhero', "defender-security" );
347
  'always_send_notification' => __( "Also send notification when no issues are detected.", "defender-security" ),
348
  'recipients_notification' => __( "Recipients for notification", "defender-security" ),
349
  'email_subject' => __( "Email Subject", "defender-security" ),
 
350
  'email_all_ok' => __( "When no issues are found", "defender-security" ),
351
  'email_has_issue' => __( "When an issue is found", "defender-security" )
352
  ];
73
  * @var int
74
  */
75
  public $max_filesize = 1;
76
+
77
+ /**
78
+ * Subject for email with issues
79
+ * @var string
80
+ */
81
+ public $email_subject_issue = '';
82
  /**
83
+ * Subject for email without issues
84
  * @var string
85
  */
86
  public $email_subject = '';
127
  }
128
 
129
  public function __construct( $id, $is_multi ) {
130
+ $this->email_subject_issue = __( 'Scan of {SITE_URL} complete. {ISSUES_COUNT} issues found.', "defender-security" );
131
+ $this->email_has_issue = __( 'Hi {USER_NAME},
132
 
133
  WP Defender here, reporting back from the front.
134
 
138
  Stay Safe,
139
  WP Defender
140
  Official WPMU DEV Superhero', "defender-security" );
141
+ $this->email_subject = __( 'Scan of {SITE_URL} complete. {ISSUES_COUNT} issues found.', "defender-security" );
142
+ $this->email_all_ok = __( 'Hi {USER_NAME},
143
 
144
  WP Defender here, reporting back from the front.
145
 
354
  'always_send_notification' => __( "Also send notification when no issues are detected.", "defender-security" ),
355
  'recipients_notification' => __( "Recipients for notification", "defender-security" ),
356
  'email_subject' => __( "Email Subject", "defender-security" ),
357
+ 'email_subject_issue' => __( "Email Subject", "defender-security" ),
358
  'email_all_ok' => __( "When no issues are found", "defender-security" ),
359
  'email_has_issue' => __( "When an issue is found", "defender-security" )
360
  ];
app/module/scan/view/layouts/layout.php CHANGED
@@ -14,7 +14,7 @@ if ( $countAll == 1 ) {
14
  <div class="wdf-scanning">
15
  <div class="sui-header">
16
  <h1 class="sui-header-title">
17
- <?php _e( "File Scanning", "defender-security" ) ?>
18
  </h1>
19
  <div class="sui-actions-left">
20
  <form id="start-a-scan" method="post" class="scan-frm">
@@ -54,7 +54,7 @@ if ( $countAll == 1 ) {
54
  <i class="sui-icon-check-tick sui-success" aria-hidden="true"></i>
55
  </span>
56
  <?php endif; ?>
57
- <span class="sui-summary-sub"><?php _e( "File scanning issues", "defender-security" ) ?></span>
58
 
59
  <span class="sui-summary-detail"><?php echo $lastScanDate ?></span>
60
  <span class="sui-summary-sub"><?php _e( "Last scan", "defender-security" ) ?></span>
14
  <div class="wdf-scanning">
15
  <div class="sui-header">
16
  <h1 class="sui-header-title">
17
+ <?php _e( "Malware Scanning", "defender-security" ) ?>
18
  </h1>
19
  <div class="sui-actions-left">
20
  <form id="start-a-scan" method="post" class="scan-frm">
54
  <i class="sui-icon-check-tick sui-success" aria-hidden="true"></i>
55
  </span>
56
  <?php endif; ?>
57
+ <span class="sui-summary-sub"><?php _e( "Malware Scanning issues", "defender-security" ) ?></span>
58
 
59
  <span class="sui-summary-detail"><?php echo $lastScanDate ?></span>
60
  <span class="sui-summary-sub"><?php _e( "Last scan", "defender-security" ) ?></span>
app/module/scan/view/notification.php CHANGED
@@ -194,7 +194,7 @@
194
  <label class="sui-label">
195
  <?php _e( "Subject", "defender-security" ) ?>
196
  </label>
197
- <input type="text" class="sui-form-control" name="email_subject" value="<?php echo $setting->email_subject ?>">
198
  </div>
199
  </div>
200
  </div>
194
  <label class="sui-label">
195
  <?php _e( "Subject", "defender-security" ) ?>
196
  </label>
197
+ <input type="text" class="sui-form-control" name="email_subject_issue" value="<?php echo $setting->email_subject_issue ?>">
198
  </div>
199
  </div>
200
  </div>
app/module/scan/view/pro-feature.php CHANGED
@@ -12,7 +12,7 @@
12
  </div>
13
  <div class="well well-blank with-cap">
14
  <i class="def-icon icon-tick fill-blue" aria-hidden="true"></i>
15
- <strong><?php _e( "Advanced File Scanning", "defender-security" ) ?></strong>
16
  <p class="sub">
17
  <?php _e( "Defender will go beyond just plugins and themes and scan your entire file system for suspicious code.", "defender-security" ) ?>
18
  </p>
12
  </div>
13
  <div class="well well-blank with-cap">
14
  <i class="def-icon icon-tick fill-blue" aria-hidden="true"></i>
15
+ <strong><?php _e( "Advanced Malware Scanning", "defender-security" ) ?></strong>
16
  <p class="sub">
17
  <?php _e( "Defender will go beyond just plugins and themes and scan your entire file system for suspicious code.", "defender-security" ) ?>
18
  </p>
app/module/setting/component/backup-settings.php CHANGED
@@ -6,13 +6,13 @@
6
  namespace WP_Defender\Module\Setting\Component;
7
 
8
  use WP_Defender\Behavior\Utils;
9
- use WP_Defender\Module\Advanced_Tools\Model\Auth_Settings;
10
  use WP_Defender\Module\Advanced_Tools\Model\Mask_Settings;
11
  use WP_Defender\Module\Hardener\Model\Settings;
 
12
 
13
  class Backup_Settings {
14
  const KEY = 'defender_last_settings';
15
-
16
  /**
17
  * Gather settings from all modules
18
  * @return array
@@ -39,12 +39,14 @@ class Backup_Settings {
39
  'always_send_notification',
40
  'recipients_notification',
41
  'email_subject',
 
42
  'email_all_ok',
43
  'email_has_issue'
44
  ] );
45
  if ( class_exists( '\WP_Defender\Module\Audit\Model\Settings' ) ) {
46
  $audit_model = \WP_Defender\Module\Audit\Model\Settings::instance();
47
  $audit = $audit_model->exportByKeys( [
 
48
  'notification',
49
  'receipts',
50
  'frequency',
@@ -96,7 +98,7 @@ class Backup_Settings {
96
  'geoIP_db'
97
  ] );
98
  $advanced_tools = [
99
- 'two_factor' => Auth_Settings::instance()->export( [ 'is_conflict' ] ),
100
  'mask_login' => Mask_Settings::instance()->export( [ 'otps' ] )
101
  ];
102
  $settings = \WP_Defender\Module\Setting\Model\Settings::instance()->export();
@@ -110,10 +112,10 @@ class Backup_Settings {
110
  if ( isset( $audit ) ) {
111
  $ret['audit'] = $audit;
112
  }
113
-
114
  return $ret;
115
  }
116
-
117
  /**
118
  * Backup the previous data before we process new versioon
119
  */
@@ -131,7 +133,7 @@ class Backup_Settings {
131
  $old_backup[ $version . '_' . time() ] = $data;
132
  update_site_option( self::KEY, $old_backup );
133
  }
134
-
135
  /**
136
  * @param $data
137
  */
@@ -149,7 +151,7 @@ class Backup_Settings {
149
  }
150
  }
151
  }
152
-
153
  /**
154
  * @return array
155
  */
@@ -173,13 +175,13 @@ class Backup_Settings {
173
  ];
174
  }
175
  }
176
-
177
  return [
178
  'configs' => $configs,
179
  'labels' => $labels,
180
  ];
181
  }
182
-
183
  /**
184
  * @param $value
185
  *
@@ -203,17 +205,17 @@ class Backup_Settings {
203
  $ret[] = $item;
204
  }
205
  }
206
-
207
  return implode( '; ', $ret );
208
  }
209
  //parse frequency
210
  if ( $key == 'frequency' ) {
211
  $value = Utils::instance()->frequencyToText( $value );
212
  }
213
-
214
  return $value;
215
  }
216
-
217
  /**
218
  * @param $module
219
  *
@@ -235,44 +237,47 @@ class Backup_Settings {
235
  return Auth_Settings::instance();
236
  case 'mask_login':
237
  return Mask_Settings::instance();
 
 
238
  default:
239
  break;
240
  }
241
  }
242
-
243
  public static function resetSettings() {
244
- $tweakFixed = \WP_Defender\Module\Hardener\Model\Settings::instance()->getFixed();
245
-
246
- foreach ( $tweakFixed as $rule ) {
247
  $rule->getService()->revert();
248
  }
249
-
250
  $cache = \Hammer\Helper\WP_Helper::getCache();
251
  $cache->delete( 'isActivated' );
252
  $cache->delete( 'wdf_isActivated' );
253
  $cache->delete( 'wdfchecksum' );
254
  $cache->delete( 'cleanchecksum' );
255
-
256
  \WP_Defender\Module\Scan\Model\Settings::instance()->delete();
257
  if ( class_exists( '\WP_Defender\Module\Audit\Model\Settings' ) ) {
258
  \WP_Defender\Module\Audit\Model\Settings::instance()->delete();
259
  }
260
- \WP_Defender\Module\Hardener\Model\Settings::instance()->delete();
261
  \WP_Defender\Module\IP_Lockout\Model\Settings::instance()->delete();
262
- \WP_Defender\Module\Advanced_Tools\Model\Auth_Settings::instance()->delete();
263
  \WP_Defender\Module\Advanced_Tools\Model\Mask_Settings::instance()->delete();
 
264
  \WP_Defender\Module\Setting\Model\Settings::instance()->delete();
265
  //clear old stuff
266
  delete_site_option( 'wp_defender' );
267
  delete_option( 'wp_defender' );
268
  delete_option( 'wd_db_version' );
269
  delete_site_option( 'wd_db_version' );
270
-
271
  delete_site_transient( 'wp_defender_free_is_activated' );
272
  delete_site_transient( 'wp_defender_is_activated' );
273
  delete_transient( 'wp_defender_free_is_activated' );
274
  delete_transient( 'wp_defender_is_activated' );
275
-
276
  delete_site_option( 'wp_defender_free_is_activated' );
277
  delete_site_option( 'wp_defender_is_activated' );
278
  delete_option( 'wp_defender_free_is_activated' );
6
  namespace WP_Defender\Module\Setting\Component;
7
 
8
  use WP_Defender\Behavior\Utils;
 
9
  use WP_Defender\Module\Advanced_Tools\Model\Mask_Settings;
10
  use WP_Defender\Module\Hardener\Model\Settings;
11
+ use WP_Defender\Module\Two_Factor\Model\Auth_Settings;
12
 
13
  class Backup_Settings {
14
  const KEY = 'defender_last_settings';
15
+
16
  /**
17
  * Gather settings from all modules
18
  * @return array
39
  'always_send_notification',
40
  'recipients_notification',
41
  'email_subject',
42
+ 'email_subject_issue',
43
  'email_all_ok',
44
  'email_has_issue'
45
  ] );
46
  if ( class_exists( '\WP_Defender\Module\Audit\Model\Settings' ) ) {
47
  $audit_model = \WP_Defender\Module\Audit\Model\Settings::instance();
48
  $audit = $audit_model->exportByKeys( [
49
+ 'enabled',
50
  'notification',
51
  'receipts',
52
  'frequency',
98
  'geoIP_db'
99
  ] );
100
  $advanced_tools = [
101
+ 'two_factor' => \WP_Defender\Module\Two_Factor\Model\Auth_Settings::instance()->export( [ 'is_conflict' ] ),
102
  'mask_login' => Mask_Settings::instance()->export( [ 'otps' ] )
103
  ];
104
  $settings = \WP_Defender\Module\Setting\Model\Settings::instance()->export();
112
  if ( isset( $audit ) ) {
113
  $ret['audit'] = $audit;
114
  }
115
+
116
  return $ret;
117
  }
118
+
119
  /**
120
  * Backup the previous data before we process new versioon
121
  */
133
  $old_backup[ $version . '_' . time() ] = $data;
134
  update_site_option( self::KEY, $old_backup );
135
  }
136
+
137
  /**
138
  * @param $data
139
  */
151
  }
152
  }
153
  }
154
+
155
  /**
156
  * @return array
157
  */
175
  ];
176
  }
177
  }
178
+
179
  return [
180
  'configs' => $configs,
181
  'labels' => $labels,
182
  ];
183
  }
184
+
185
  /**
186
  * @param $value
187
  *
205
  $ret[] = $item;
206
  }
207
  }
208
+
209
  return implode( '; ', $ret );
210
  }
211
  //parse frequency
212
  if ( $key == 'frequency' ) {
213
  $value = Utils::instance()->frequencyToText( $value );
214
  }
215
+
216
  return $value;
217
  }
218
+
219
  /**
220
  * @param $module
221
  *
237
  return Auth_Settings::instance();
238
  case 'mask_login':
239
  return Mask_Settings::instance();
240
+ case 'security_headers':
241
+ return \WP_Defender\Module\Advanced_Tools\Model\Security_Headers_Settings::instance();
242
  default:
243
  break;
244
  }
245
  }
246
+
247
  public static function resetSettings() {
248
+ $hardener_settings = \WP_Defender\Module\Hardener\Model\Settings::instance();
249
+
250
+ foreach ( $hardener_settings->getFixed() as $rule ) {
251
  $rule->getService()->revert();
252
  }
253
+
254
  $cache = \Hammer\Helper\WP_Helper::getCache();
255
  $cache->delete( 'isActivated' );
256
  $cache->delete( 'wdf_isActivated' );
257
  $cache->delete( 'wdfchecksum' );
258
  $cache->delete( 'cleanchecksum' );
259
+
260
  \WP_Defender\Module\Scan\Model\Settings::instance()->delete();
261
  if ( class_exists( '\WP_Defender\Module\Audit\Model\Settings' ) ) {
262
  \WP_Defender\Module\Audit\Model\Settings::instance()->delete();
263
  }
264
+ $hardener_settings->delete();
265
  \WP_Defender\Module\IP_Lockout\Model\Settings::instance()->delete();
266
+ \WP_Defender\Module\Two_Factor\Model\Auth_Settings::instance()->delete();
267
  \WP_Defender\Module\Advanced_Tools\Model\Mask_Settings::instance()->delete();
268
+ \WP_Defender\Module\Advanced_Tools\Model\Security_Headers_Settings::instance()->delete();
269
  \WP_Defender\Module\Setting\Model\Settings::instance()->delete();
270
  //clear old stuff
271
  delete_site_option( 'wp_defender' );
272
  delete_option( 'wp_defender' );
273
  delete_option( 'wd_db_version' );
274
  delete_site_option( 'wd_db_version' );
275
+
276
  delete_site_transient( 'wp_defender_free_is_activated' );
277
  delete_site_transient( 'wp_defender_is_activated' );
278
  delete_transient( 'wp_defender_free_is_activated' );
279
  delete_transient( 'wp_defender_is_activated' );
280
+
281
  delete_site_option( 'wp_defender_free_is_activated' );
282
  delete_site_option( 'wp_defender_is_activated' );
283
  delete_option( 'wp_defender_free_is_activated' );
app/module/setting/controller/rest.php CHANGED
@@ -10,6 +10,7 @@ use Hammer\Helper\HTTP_Helper;
10
  use WP_Defender\Behavior\Utils;
11
  use WP_Defender\Controller;
12
  use WP_Defender\Module\Setting;
 
13
 
14
  class Rest extends Controller {
15
  public function __construct() {
@@ -32,9 +33,8 @@ class Rest extends Controller {
32
  return;
33
  }
34
 
35
- $tweakFixed = \WP_Defender\Module\Hardener\Model\Settings::instance()->getFixed();
36
-
37
- foreach ( $tweakFixed as $rule ) {
38
  $rule->getService()->revert();
39
  }
40
 
@@ -48,11 +48,18 @@ class Rest extends Controller {
48
  if ( class_exists( '\WP_Defender\Module\Audit\Model\Settings' ) ) {
49
  \WP_Defender\Module\Audit\Model\Settings::instance()->delete();
50
  }
51
- \WP_Defender\Module\Hardener\Model\Settings::instance()->delete();
52
  \WP_Defender\Module\IP_Lockout\Model\Settings::instance()->delete();
53
- \WP_Defender\Module\Advanced_Tools\Model\Auth_Settings::instance()->delete();
54
  \WP_Defender\Module\Advanced_Tools\Model\Mask_Settings::instance()->delete();
55
- Setting\Model\Settings::instance()->delete();
 
 
 
 
 
 
 
56
  //clear old stuff
57
  delete_site_option( 'wp_defender' );
58
  delete_option( 'wp_defender' );
@@ -106,7 +113,8 @@ class Rest extends Controller {
106
  $behaviors = array(
107
  'utils' => '\WP_Defender\Behavior\Utils',
108
  'endpoints' => '\WP_Defender\Behavior\Endpoint',
109
- 'wpmudev' => '\WP_Defender\Behavior\WPMUDEV'
 
110
  );
111
 
112
  return $behaviors;
10
  use WP_Defender\Behavior\Utils;
11
  use WP_Defender\Controller;
12
  use WP_Defender\Module\Setting;
13
+ use WP_Defender\Module\Two_Factor\Model\Auth_Settings;
14
 
15
  class Rest extends Controller {
16
  public function __construct() {
33
  return;
34
  }
35
 
36
+ $hardener_settings = \WP_Defender\Module\Hardener\Model\Settings::instance();
37
+ foreach ( $hardener_settings->getFixed() as $rule ) {
 
38
  $rule->getService()->revert();
39
  }
40
 
48
  if ( class_exists( '\WP_Defender\Module\Audit\Model\Settings' ) ) {
49
  \WP_Defender\Module\Audit\Model\Settings::instance()->delete();
50
  }
51
+ $hardener_settings->delete();
52
  \WP_Defender\Module\IP_Lockout\Model\Settings::instance()->delete();
53
+ Auth_Settings::instance()->delete();
54
  \WP_Defender\Module\Advanced_Tools\Model\Mask_Settings::instance()->delete();
55
+ \WP_Defender\Module\Advanced_Tools\Model\Security_Headers_Settings::instance()->delete();
56
+ \WP_Defender\Module\Setting\Model\Settings::instance()->delete();
57
+
58
+ //Disabled Blacklist Monitor
59
+ if ( ! wp_defender()->isFree && $this->hasMethod( 'toggleStatus' ) ) {
60
+ $this->toggleStatus( null, false );
61
+ delete_site_transient( \WP_Defender\Behavior\Blacklist::CACHE_KEY );
62
+ }
63
  //clear old stuff
64
  delete_site_option( 'wp_defender' );
65
  delete_option( 'wp_defender' );
113
  $behaviors = array(
114
  'utils' => '\WP_Defender\Behavior\Utils',
115
  'endpoints' => '\WP_Defender\Behavior\Endpoint',
116
+ 'wpmudev' => '\WP_Defender\Behavior\WPMUDEV',
117
+ 'blacklist' => wp_defender()->isFree ? '\WP_Defender\Behavior\Blacklist_Free' : '\WP_Defender\Behavior\Blacklist',
118
  );
119
 
120
  return $behaviors;
app/module/setting/model/settings.php CHANGED
@@ -12,8 +12,8 @@ class Settings extends \Hammer\WP\Settings {
12
 
13
  public $translate;
14
  public $usage_tracking = false;
15
- public $uninstall_data = 'remove';
16
- public $uninstall_settings = 'reset';
17
  public $high_contrast_mode = false;
18
 
19
  public function behaviors() {
12
 
13
  public $translate;
14
  public $usage_tracking = false;
15
+ public $uninstall_data = 'keep';
16
+ public $uninstall_settings = 'preserve';
17
  public $high_contrast_mode = false;
18
 
19
  public function behaviors() {
app/module/two-factor.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace WP_Defender\Module;
4
+
5
+ use Hammer\Base\Module;
6
+ use WP_Defender\Module\Two_Factor\Controller\Main;
7
+ use WP_Defender\Module\Two_Factor\Controller\Rest;
8
+
9
+ class Two_Factor extends Module {
10
+ public function __construct() {
11
+ new Main();
12
+ new Rest();
13
+ }
14
+ }
app/module/two-factor/component/auth-api.php ADDED
@@ -0,0 +1,371 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Author: Hoang Ngo
4
+ */
5
+
6
+ namespace WP_Defender\Module\Two_Factor\Component;
7
+
8
+ use Hammer\Base\Component;
9
+ use WP_Defender\Behavior\Utils;
10
+ use WP_Defender\Module\Two_Factor\Model\Auth_Settings;
11
+
12
+ class Auth_API extends Component {
13
+ /**
14
+ * @param int $length
15
+ *
16
+ * @return string
17
+ */
18
+ public static function generateSecret( $length = 16 ) {
19
+ if ( defined( 'DEFENDER_2FA_SECRET' ) ) {
20
+ return constant( 'DEFENDER_2FA_SECRET' );
21
+ }
22
+ $strings = "ABCDEFGHIJKLMNOPQRSTUVWXYS234567";
23
+ $secret = array();
24
+ for ( $i = 0; $i < $length; $i ++ ) {
25
+ $secret[] = $strings[ rand( 0, strlen( $strings ) - 1 ) ];
26
+ }
27
+
28
+ return implode( "", $secret );
29
+ }
30
+
31
+ /**
32
+ * @param $name
33
+ * @param $secret
34
+ * @param int $width
35
+ * @param int $height
36
+ * @param null $title
37
+ *
38
+ * @return string
39
+ */
40
+ public static function generateQRCode( $name, $holder, $secret, $width = 200, $height = 200, $title = null ) {
41
+ $chl = ( 'otpauth://totp/' . rawurlencode( $name ) . ':' . rawurlencode( $holder ) . '?secret=' . $secret . '' );
42
+ if ( ! is_null( $title ) ) {
43
+ $chl .= ( '&issuer=' . rawurlencode( $title ) );
44
+ }
45
+ //manually include the autoload
46
+ require_once wp_defender()->getPluginPath() . 'vendor/phpqrcode/phpqrcode.php';
47
+
48
+ $code = \QRcode::svg( $chl, false, QR_ECLEVEL_L, 4 );
49
+
50
+ }
51
+
52
+ /**
53
+ * Calculate the TOTP code
54
+ *
55
+ * @param $secret
56
+ * @param $counter
57
+ *
58
+ * @return \string
59
+ *
60
+ * reference: https://tools.ietf.org/html/rfc4226#section-5.3
61
+ * https://garbagecollected.org/2014/09/14/how-google-authenticator-works/
62
+ */
63
+ public static function generateCode( $secret, $counter = null ) {
64
+ //secret should be base 32, as GA want it
65
+ include_once wp_defender()->getPluginPath() . 'vendor/binary-to-text-php/Base2n.php';
66
+ $base32 = new \Base2n( 5, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567', false, true, true );
67
+ $secret = $base32->decode( $secret );
68
+ //timestep fixed at 30
69
+ if ( is_null( $counter ) ) {
70
+ $counter = time();
71
+ }
72
+ $input = floor( $counter / 30 );
73
+ //according to https://tools.ietf.org/html/rfc4226#section-5.3, should be a 8 bytes value
74
+ $time = chr( 0 ) . chr( 0 ) . chr( 0 ) . chr( 0 ) . pack( 'N*', $input );
75
+ $hmac = hash_hmac( 'sha1', $time, $secret, true );
76
+ //now we have 20 bytes sha1, need to short it down
77
+ //getting last byte of the hmac
78
+ $offset = ord( substr( $hmac, - 1 ) ) & 0x0F;
79
+ $four_bytes = substr( $hmac, $offset, 4 );
80
+ //now convert it into INT
81
+ $value = unpack( 'N', $four_bytes );
82
+ $value = $value[1];
83
+ //make sure it always act like 32 bits
84
+ $value = $value & 0x7FFFFFFF;;
85
+ //we so close
86
+ $code = $value % pow( 10, 6 );
87
+ //in some case we have the 0 before, so it become lesser than 6, make sure it always right
88
+ $code = str_pad( $code, 6, '0', STR_PAD_LEFT );
89
+
90
+ return $code;
91
+ }
92
+
93
+ /**
94
+ * @param $secret
95
+ * @param $userCode
96
+ * @param int $window
97
+ *
98
+ * @return bool
99
+ */
100
+ public static function compare( $secret, $userCode, $window = 1 ) {
101
+ if ( strlen( $userCode ) != 6 ) {
102
+ return false;
103
+ }
104
+
105
+ /**
106
+ * window is 30 seconds, before and after
107
+ */
108
+ for ( $i = - $window; $i <= $window; $i ++ ) {
109
+ $counter = $i == 0 ? null : $i * 30 + time();
110
+ $code = self::generateCode( $secret, $counter );
111
+ if ( self::hasEqual( $code, $userCode ) ) {
112
+ return true;
113
+ }
114
+ }
115
+
116
+
117
+ return false;
118
+ }
119
+
120
+ /**
121
+ * Timing attack safe string comparison, replacement of has_equals which only on 5.6+
122
+ *
123
+ * @param $known_string
124
+ * @param $user_string
125
+ *
126
+ * @return bool
127
+ * reference: http://php.net/manual/en/function.hash-equals.php#119576
128
+ */
129
+ private static function hasEqual( $known_string, $user_string ) {
130
+ if ( function_exists( 'hash_equals' ) ) {
131
+ return hash_equals( $known_string, $user_string );
132
+ }
133
+
134
+ $ret = 0;
135
+
136
+ if ( strlen( $known_string ) !== strlen( $user_string ) ) {
137
+ $user_string = $known_string;
138
+ $ret = 1;
139
+ }
140
+
141
+ $res = $known_string ^ $user_string;
142
+
143
+ for ( $i = strlen( $res ) - 1; $i >= 0; -- $i ) {
144
+ $ret |= ord( $res[ $i ] );
145
+ }
146
+
147
+ return ! $ret;
148
+ }
149
+
150
+ /**
151
+ * @return bool
152
+ */
153
+ public static function isEnableForCurrentRole( $user = null ) {
154
+ if ( $user == null ) {
155
+ $user = wp_get_current_user();
156
+ }
157
+ if ( ! $user instanceof \WP_User ) {
158
+ return false;
159
+ }
160
+ $settings = Auth_Settings::instance();
161
+ if ( 0 === count( $user->roles ) ) {
162
+ return true;
163
+ }
164
+
165
+ if ( Utils::instance()->isActivatedSingle() ) {
166
+ $allowedForThisRole = array_intersect( $settings->user_roles, $user->roles );
167
+ if ( ! is_array( $allowedForThisRole ) ) {
168
+ $allowedForThisRole = [];
169
+ }
170
+
171
+ return count( $allowedForThisRole ) > 0;
172
+ } else {
173
+ $blogs = get_blogs_of_user( $user->ID );
174
+ $userRoles = array();
175
+ foreach ( $blogs as $blog ) {
176
+ //get user roles for this blog
177
+ $u = new \WP_User( $user->ID, '', $blog->userblog_id );
178
+ $userRoles = array_merge( $u->roles, $userRoles );
179
+ }
180
+ $allowedForThisRole = array_intersect( $settings->user_roles, $userRoles );
181
+
182
+ return count( $allowedForThisRole ) > 0;
183
+ }
184
+ }
185
+
186
+ /**
187
+ * @param null $user
188
+ *
189
+ * @return bool
190
+ */
191
+ public static function isForcedRole( $user = null ) {
192
+ if ( $user == null ) {
193
+ $user = wp_get_current_user();
194
+ }
195
+ if ( ! $user instanceof \WP_User ) {
196
+ return false;
197
+ }
198
+ $settings = Auth_Settings::instance();
199
+ if ( 0 === count( $user->roles ) ) {
200
+ //this mean user just added but have no roles, we dnt force them
201
+ return false;
202
+ }
203
+
204
+ if ( Utils::instance()->isActivatedSingle() ) {
205
+ $isForced = array_intersect( $settings->force_auth_roles, $user->roles );
206
+
207
+ return count( $isForced ) > 0;
208
+ } else {
209
+ $blogs = get_blogs_of_user( $user->ID );
210
+ $userRoles = array();
211
+ foreach ( $blogs as $blog ) {
212
+ //get user roles for this blog
213
+ $u = new \WP_User( $user->ID, '', $blog->userblog_id );
214
+ $userRoles = array_merge( $u->roles, $userRoles );
215
+ }
216
+ $isForced = array_intersect( $settings->force_auth_roles, $userRoles );
217
+
218
+ return count( $isForced ) > 0;
219
+ }
220
+ }
221
+
222
+ /**
223
+ * @return bool|mixed|string
224
+ */
225
+ public static function createSecretForCurrentUser() {
226
+ if ( ! is_user_logged_in() ) {
227
+ return false;
228
+ }
229
+
230
+ $secret = get_user_meta( get_current_user_id(), 'defenderAuthSecret', true );
231
+ if ( ! $secret ) {
232
+ $secret = self::generateSecret();
233
+ update_user_meta( get_current_user_id(), 'defenderAuthSecret', $secret );
234
+ }
235
+
236
+ return $secret;
237
+ }
238
+
239
+ /**
240
+ * @param null $userID
241
+ *
242
+ * @return bool|mixed
243
+ */
244
+ public static function getUserSecret( $userID = null ) {
245
+ if ( $userID == null ) {
246
+ $userID = get_current_user_id();
247
+ }
248
+ $secret = get_user_meta( $userID, 'defenderAuthSecret', true );
249
+ if ( ! $secret ) {
250
+ return false;
251
+ }
252
+
253
+ return $secret;
254
+ }
255
+
256
+ /**
257
+ * @param $userID
258
+ *
259
+ * @return mixed
260
+ */
261
+ public static function isUserEnableOTP( $userID ) {
262
+ if ( $userID instanceof \WP_User ) {
263
+ $user = $userID;
264
+ $userID = $user->ID;
265
+ } else {
266
+ $user = get_user_by( 'id', $userID );
267
+ }
268
+ if ( ! self::isEnableForCurrentRole( $user ) ) {
269
+ return false;
270
+ }
271
+
272
+ $isOn = get_user_meta( $userID, 'defenderAuthOn', true );
273
+
274
+ return $isOn;
275
+ }
276
+
277
+ /**
278
+ * @param $userID
279
+ *
280
+ * @return bool|mixed|string
281
+ */
282
+ public static function getBackupEmail( $userID ) {
283
+ $email = get_user_meta( $userID, 'defenderAuthEmail', true );
284
+ if ( empty( $email ) ) {
285
+ $user = get_user_by( 'id', $userID );
286
+ if ( ! is_object( $user ) ) {
287
+ return false;
288
+ }
289
+ $email = $user->user_email;
290
+ }
291
+
292
+ return $email;
293
+ }
294
+
295
+ /**
296
+ * Generate single code, use in case lost phone
297
+ *
298
+ * @param $userID
299
+ *
300
+ * @return string
301
+ */
302
+ public static function createBackupCode( $userID ) {
303
+ $code = wp_generate_password( 20, false );
304
+ update_user_meta( $userID, 'defenderBackupCode', array(
305
+ 'code' => $code,
306
+ 'time' => time()
307
+ ) );
308
+
309
+ return $code;
310
+ }
311
+
312
+ /**
313
+ * @return bool
314
+ */
315
+ public static function isJetPackSSO() {
316
+ if ( is_plugin_active_for_network( 'jetpack/jetpack.php' ) ) {
317
+ //loop through all sites
318
+ $settings = Auth_Settings::instance();
319
+ $isConflict = $settings->isConflict( 'jetpack/jetpack.php' );
320
+ if ( $isConflict === 0 ) {
321
+ //no data, init
322
+ global $wpdb;
323
+ $sql = "SELECT blog_id FROM `{$wpdb->base_prefix}blogs`";
324
+ $blogs = $wpdb->get_col( $sql );
325
+ foreach ( $blogs as $id ) {
326
+ $options = get_blog_option( $id, 'jetpack_active_modules', array() );
327
+ if ( array_search( 'sso', $options ) ) {
328
+ $settings->markAsConflict( 'jetpack/jetpack.php' );
329
+
330
+ return true;
331
+ }
332
+ }
333
+ } else {
334
+ //get the data from cache
335
+ return $isConflict;
336
+ }
337
+
338
+ } elseif ( is_plugin_active( 'jetpack/jetpack.php' ) ) {
339
+ //ugly but faster
340
+ $settings = Auth_Settings::instance();
341
+ $isConflict = $settings->isConflict( 'jetpack/jetpack.php' );
342
+ if ( $isConflict === 0 ) {
343
+ $options = get_option( 'jetpack_active_modules', array() );
344
+ if ( array_search( 'sso', $options ) ) {
345
+ $settings->markAsConflict( 'jetpack/jetpack.php' );
346
+
347
+ return true;
348
+ }
349
+ } else {
350
+ return $isConflict;
351
+ }
352
+
353
+ }
354
+
355
+ return false;
356
+ }
357
+
358
+ /**
359
+ * @return bool
360
+ */
361
+ public static function isTML() {
362
+ if ( is_plugin_active( 'theme-my-login/theme-my-login.php' ) || is_plugin_active_for_network( 'theme-my-login/theme-my-login.php' ) ) {
363
+ $settings = Auth_Settings::instance();
364
+ $settings->markAsConflict( 'theme-my-login/theme-my-login.php' );
365
+
366
+ return true;
367
+ }
368
+
369
+ return false;
370
+ }
371
+ }
app/module/two-factor/component/auth-listener.php ADDED
@@ -0,0 +1,460 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Author: Hoang Ngo
4
+ */
5
+
6
+ namespace WP_Defender\Module\Two_Factor\Component;
7
+
8
+ use Hammer\Helper\HTTP_Helper;
9
+ use Hammer\WP\Component;
10
+ use WP_Defender\Behavior\Utils;
11
+ use WP_Defender\Module\Two_Factor\Model\Auth_Settings;
12
+
13
+ class Auth_Listener extends Component {
14
+ protected $sessionToken;
15
+
16
+ public function __construct() {
17
+ $this->addAction( 'update_option_jetpack_active_modules', 'listenForJetpackOption', 10, 3 );
18
+ $setting = Auth_Settings::instance();
19
+ if ( $setting->enabled ) {
20
+ //prepare for the login part
21
+ $isJetpackSSO = Auth_API::isJetPackSSO();
22
+ $isTML = Auth_API::isTML();
23
+ if ( ! defined( 'DOING_AJAX' ) && ! $isJetpackSSO && ! $isTML ) {
24
+ /**
25
+ * hook into wordpress login, can't use authenticate hook as that badly conflict
26
+ */
27
+ $this->addAction( 'wp_login', 'maybeShowOTPLogin', 9, 2 );
28
+ $this->addAction( 'login_form_defenderVerifyOTP', 'defenderVerifyOTP' );
29
+ $this->addAction( 'set_logged_in_cookie', 'storeSessionKey' );
30
+ /**
31
+ * end
32
+ */
33
+ } else {
34
+ if ( $isJetpackSSO ) {
35
+ wp_defender()->global['compatibility'][] = __( "We've detected a conflict with Jetpack's Wordpress.com Log In feature. Please disable it and return to this page to continue setup.", "defender-security" );
36
+ }
37
+ if ( $isTML ) {
38
+ wp_defender()->global['compatibility'][] = __( "We've detected a conflict with Theme my login. Please disable it and return to this page to continue setup.", "defender-security" );
39
+ }
40
+ }
41
+ $this->addFilter( 'ms_shortcode_ajax_login', 'm2NoAjax' );
42
+ $this->addAction( 'show_user_profile', 'showUsers2FactorActivation' );
43
+ $this->addAction( 'profile_update', 'saveBackupEmail' );
44
+ //$this->add_action( 'wp_login', 'markAsForceAuth', 10, 2 );
45
+ $this->addFilter( 'login_redirect', 'loginRedirect', 99 );
46
+ $this->addAction( 'current_screen', 'forceProfilePage', 1 );
47
+ $this->addAjaxAction( 'defVerifyOTP', 'verifyConfigOTP' );
48
+ $this->addAjaxAction( 'defDisableOTP', 'disableOTP' );
49
+ $this->addAjaxAction( 'defRetrieveOTP', 'retrieveOTP', false, true );
50
+ if ( Utils::instance()->isActivatedSingle() ) {
51
+ $this->addFilter( 'manage_users_columns', 'alterUsersTable' );
52
+ $this->addFilter( 'manage_users_custom_column', 'alterUsersTableRow', 10, 3 );
53
+ } else {
54
+ $this->addFilter( 'wpmu_users_columns', 'alterUsersTable' );
55
+ $this->addFilter( 'manage_users_custom_column', 'alterUsersTableRow', 10, 3 );
56
+ }
57
+ }
58
+ }
59
+
60
+ /**
61
+ * If user have flag then force enable
62
+ */
63
+ public function forceProfilePage() {
64
+ $user = wp_get_current_user();
65
+ if ( ! is_object( $user ) ) {
66
+ return;
67
+ }
68
+
69
+ $settings = Auth_Settings::instance();
70
+ if ( $settings->force_auth != true ) {
71
+ return;
72
+ }
73
+
74
+ //not enable for this role oass
75
+ if ( ! Auth_API::isEnableForCurrentRole( $user ) ) {
76
+ return;
77
+ }
78
+
79
+ //check if this role is forced
80
+ if ( ! Auth_API::isForcedRole( $user ) ) {
81
+ return;
82
+ }
83
+
84
+ //user already enable OTP
85
+ if ( Auth_API::isUserEnableOTP( $user->ID ) ) {
86
+ return;
87
+ }
88
+
89
+ $screen = get_current_screen();
90
+ if ( $screen->id != 'profile' ) {
91
+ wp_safe_redirect( admin_url( 'profile.php' ) . '#show2AuthActivator' );
92
+ exit;
93
+ }
94
+ }
95
+
96
+ public function loginRedirect( $url ) {
97
+ $settings = Auth_Settings::instance();
98
+ if ( $settings->force_auth != true ) {
99
+ return $url;
100
+ }
101
+
102
+ return $url;
103
+ }
104
+
105
+ /**
106
+ * @param $userLogin
107
+ * @param $user
108
+ */
109
+ public function markAsForceAuth( $userLogin, $user ) {
110
+ $settings = Auth_Settings::instance();
111
+ if ( $settings->force_auth != true ) {
112
+ return;
113
+ }
114
+ //not enable for this role oass
115
+ if ( ! Auth_API::isEnableForCurrentRole( $user ) ) {
116
+ return;
117
+ }
118
+ //user already enable OTP
119
+ if ( Auth_API::isUserEnableOTP( $user->ID ) ) {
120
+ return;
121
+ }
122
+ //if this is normal user, force them
123
+ // if ( ! current_user_can( 'subscriber' ) ) {
124
+ // return;
125
+ // }
126
+ $flag = get_user_meta( $user->ID, 'defenderForceAuth', true );
127
+ if ( $flag === '' ) {
128
+ update_user_meta( $user->ID, 'defenderForceAuth', 1 );
129
+ }
130
+ }
131
+
132
+ /**
133
+ * We have some feature conflict with jetpack, so listen to know when Defender can on
134
+ *
135
+ * @param $old_value
136
+ * @param $value
137
+ * @param $option
138
+ */
139
+ public function listenForJetpackOption( $old_value, $value, $option ) {
140
+ $settings = Auth_Settings::instance();
141
+ if ( array_search( 'sso', $value ) !== false ) {
142
+ $settings->markAsConflict( 'jetpack/jetpack.php' );
143
+ } else {
144
+ $settings->markAsUnConflict( 'jetpack/jetpack.php' );
145
+ }
146
+ }
147
+
148
+ /**
149
+ * Stop ajax login on membership 2
150
+ * @return bool
151
+ */
152
+ public function m2NoAjax() {
153
+ return false;
154
+ }
155
+
156
+ /**
157
+ * Return 2 factor auth status
158
+ *
159
+ * @param $val
160
+ * @param $column_name
161
+ * @param $user_id
162
+ *
163
+ * @return string
164
+ */
165
+ public function alterUsersTableRow( $val, $column_name, $user_id ) {
166
+ if ( $column_name != 'defAuth' ) {
167
+ return $val;
168
+ }
169
+
170
+ if ( Auth_API::isUserEnableOTP( $user_id ) ) {
171
+ return '<span class="def-oval oval-green"></span>';
172
+ }
173
+
174
+ return '<span class="def-oval"></span>';
175
+ }
176
+
177
+ /**
178
+ * Add the auth column inside users on single site
179
+ *
180
+ * @param $columns
181
+ *
182
+ * @return mixed
183
+ *
184
+ */
185
+ public function alterUsersTable( $columns ) {
186
+ $columns = array_slice( $columns, 0, count( $columns ) - 1 ) + array(
187
+ 'defAuth' => __( "Two Factor", "defender-security" )
188
+ ) + array_slice( $columns, count( $columns ) - 1 );
189
+
190
+ return $columns;
191
+ }
192
+
193
+ /**
194
+ * Generate an email for backup otp
195
+ */
196
+ public function retrieveOTP() {
197
+ if ( ! wp_verify_nonce( HTTP_Helper::retrieveGet( 'nonce' ), 'defRetrieveOTP' ) ) {
198
+ wp_send_json_error( array() );
199
+ }
200
+
201
+ $token = HTTP_Helper::retrieveGet( 'token' );
202
+ $query = new \WP_User_Query( array(
203
+ 'meta_key' => 'defOTPLoginToken',
204
+ 'meta_value' => $token,
205
+ 'blog_id' => 0
206
+ ) );
207
+ $res = $query->get_results();
208
+ if ( empty( $res ) ) {
209
+ //no user
210
+ wp_send_json_error( array(
211
+ 'message' => __( "Your token is invalid", "defender-security" )
212
+ ) );
213
+ }
214
+
215
+ $user = $res[0];
216
+ //create a backup code for this user
217
+ $code = Auth_API::createBackupCode( $user->ID );
218
+ //send email
219
+ $backupEmail = Auth_API::getBackupEmail( $user->ID );
220
+
221
+ $settings = Auth_Settings::instance();
222
+ $subject = ! empty( $settings->email_subject ) ? esc_attr( $settings->email_subject ) : __( 'Your OTP code', "defender-security" );
223
+ $sender = ! empty( $settings->email_sender ) ? esc_attr( $settings->email_sender ) : false;
224
+ $body = ! empty( $settings->email_body ) ? $settings->email_body : $settings->two_factor_opt_email_default_body();
225
+ $params = [
226
+ 'display_name' => $user->display_name,
227
+ 'passcode' => $code,
228
+ ];
229
+ foreach ( $params as $key => $val ) {
230
+ $body = str_replace( '{{' . $key . '}}', $val, $body );
231
+ }
232
+ $headers = array( 'Content-Type: text/html; charset=UTF-8' );
233
+ if ( $sender ) {
234
+ $from_email = get_bloginfo( 'admin_email' );
235
+ $headers[] = sprintf( 'From: %s <%s>', $sender, $from_email );
236
+ }
237
+
238
+ //send
239
+ wp_mail( $backupEmail, $subject, $body, $headers );
240
+
241
+ wp_send_json_success( array(
242
+ 'message' => __( "Your code has been sent to your email.", "defender-security" )
243
+ ) );
244
+ }
245
+
246
+ /**
247
+ * disable OTP feature
248
+ */
249
+ public function disableOTP() {
250
+ if ( ! is_user_logged_in() ) {
251
+ return;
252
+ }
253
+
254
+ update_user_meta( get_current_user_id(), 'defenderAuthOn', 0 );
255
+ delete_user_meta( get_current_user_id(), 'defenderAuthSecret' );
256
+ wp_send_json_success();
257
+ }
258
+
259
+ /**
260
+ * Saving backup email when profile saved
261
+ *
262
+ * @param $userID
263
+ */
264
+ public function saveBackupEmail( $userID ) {
265
+ $email = HTTP_Helper::retrievePost( 'def_backup_email' );
266
+ if ( $email && get_current_user_id() == $userID ) {
267
+ update_user_meta( $userID, 'defenderAuthEmail', $email );
268
+ }
269
+ }
270
+
271
+ /**
272
+ * An ajax function for verify the OTP user input when configuring the 2 factors
273
+ */
274
+ public function verifyConfigOTP() {
275
+ if ( ! wp_verify_nonce( HTTP_Helper::retrievePost( 'nonce' ), 'defVerifyOTP' ) ) {
276
+ return;
277
+ }
278
+
279
+ if ( ! is_user_logged_in() ) {
280
+ return;
281
+ }
282
+
283
+ $otp = HTTP_Helper::retrievePost( 'otp' );
284
+ $otp = trim( $otp );
285
+ if ( strlen( $otp ) == 0 ) {
286
+ wp_send_json_error( array(
287
+ 'message' => __( "Please input a valid OTP code", "defender-security" )
288
+ ) );
289
+ }
290
+
291
+ $secret = Auth_API::getUserSecret();
292
+ //at this stage, secret should have value, do not need to check
293
+ $res = Auth_API::compare( $secret, $otp );
294
+ if ( $res ) {
295
+ //save it
296
+ update_user_meta( get_current_user_id(), 'defenderAuthOn', 1 );
297
+ update_user_meta( get_current_user_id(), 'defenderForceAuth', 0 );
298
+ wp_send_json_success();
299
+ } else {
300
+ //now need to check if the current user have backup otp
301
+ wp_send_json_error( array(
302
+ 'message' => __( "Your OTP code is incorrect. Please try again.", "defender-security" )
303
+ ) );
304
+ }
305
+ }
306
+
307
+ /**
308
+ * Show an section inside my profile page for user can activate 2 factor login
309
+ *
310
+ * @param $profileuser
311
+ */
312
+ public function showUsers2FactorActivation( $profileuser ) {
313
+ if ( ! Auth_API::isEnableForCurrentRole() ) {
314
+ return;
315
+ }
316
+
317
+ $isOn = get_user_meta( $profileuser->ID, 'defenderAuthOn', true );
318
+ wp_enqueue_style( 'defAuth', wp_defender()->getPluginUrl() . 'app/module/advanced-tools/css/login-admin.css' );
319
+ $secretKey = Auth_API::createSecretForCurrentUser();
320
+ if ( $isOn && $isOn == 1 ) {
321
+ $email = Auth_API::getBackupEmail( $profileuser->ID );
322
+ $this->renderPartial( 'login/enabled', array(
323
+ 'email' => $email
324
+ ) );
325
+ } else {
326
+ //show the screen
327
+ $this->renderPartial( 'login/disabled', array(
328
+ 'secretKey' => $secretKey
329
+ ) );
330
+ }
331
+ }
332
+
333
+ /**
334
+ * We will check and show the OTP screen if user signon successfully
335
+ *
336
+ * @param $userLogin
337
+ * @param $user
338
+ */
339
+ public function maybeShowOTPLogin( $userLogin, $user ) {
340
+ if ( ! Auth_API::isUserEnableOTP( $user->ID ) ) {
341
+ //no enable, then just return
342
+ return;
343
+ }
344
+
345
+ //clean up session and auth cookies for preventing
346
+ $token = $this->sessionToken;
347
+ if ( $token ) {
348
+ $sManager = \WP_Session_Tokens::get_instance( $user->ID );
349
+ $sManager->destroy( $token );
350
+ }
351
+ wp_clear_auth_cookie();
352
+
353
+ $this->showOTPScreen( $user );
354
+ }
355
+
356
+ /**
357
+ * verify OTP code which user input in order to login
358
+ */
359
+ public function defenderVerifyOTP() {
360
+ if ( ( $otp = HTTP_Helper::retrievePost( 'otp', null ) ) != null ) {
361
+ $params = array();
362
+ if ( ! wp_verify_nonce( HTTP_Helper::retrievePost( '_wpnonce' ), 'DefOtpCheck' ) ) {
363
+ $params['error'] = new \WP_Error( 'security_fail', __( "Some error happen", "defender-security" ) );
364
+ }
365
+
366
+ $login_token = HTTP_Helper::retrievePost( 'login_token' );
367
+ $query = new \WP_User_Query( array(
368
+ 'meta_key' => 'defOTPLoginToken',
369
+ 'meta_value' => $login_token,
370
+ 'blog_id' => 0
371
+ ) );
372
+ $res = $query->get_results();
373
+ if ( empty( $res ) ) {
374
+ //no users, redirect to the login page immediatly
375
+ wp_redirect( site_url( 'wp-login.php', 'login_post' ) );
376
+ exit;
377
+ } else {
378
+ $user = $res[0];
379
+ $secret = Auth_API::getUserSecret( $user->ID );
380
+ $redirect = HTTP_Helper::retrievePost( 'redirect_to', admin_url() );
381
+ if ( Auth_API::compare( $secret, $otp ) ) {
382
+ //sign in
383
+ delete_user_meta( $user->ID, 'defOTPLoginToken' );
384
+ wp_set_current_user( $user->ID, $user->user_login );
385
+ wp_set_auth_cookie( $user->ID, true );
386
+ $redirect = apply_filters( 'login_redirect', $redirect, isset( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : '', $user );
387
+ wp_safe_redirect( $redirect );
388
+ exit;
389
+ } else {
390
+ $backupCode = get_user_meta( $user->ID, 'defenderBackupCode', true );
391
+ if ( $backupCode && $backupCode['code'] == $otp && strtotime( '+3 minutes', $backupCode['time'] ) > time() ) {
392
+ delete_user_meta( $user->ID, 'defOTPLoginToken' );
393
+ delete_user_meta( $user->ID, 'defenderBackupCode' );
394
+ wp_set_current_user( $user->ID, $user->user_login );
395
+ wp_set_auth_cookie( $user->ID, true );
396
+ $redirect = apply_filters( 'login_redirect', $redirect, isset( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : '', $user );
397
+ wp_safe_redirect( $redirect );
398
+ exit;
399
+ } else {
400
+ $params['error'] = new \WP_Error( 'opt_fail', __( "Whoops, the passcode you entered was incorrect or expired.", "defender-security" ) );
401
+ $this->showOTPScreen( $user, $params );
402
+ }
403
+ }
404
+ }
405
+ }
406
+ }
407
+
408
+ /**
409
+ * Show the OTP screen
410
+ *
411
+ * @param $user
412
+ * @param $params
413
+ */
414
+ private function showOTPScreen( $user, $params = array() ) {
415
+ //now show the OTP screen
416
+ $this->addAction( 'login_enqueue_scripts', 'includeAuthStyles' );
417
+ wp_enqueue_script( 'jquery' );
418
+ $params['loginToken'] = $this->createLoginToken( $user );
419
+ $params['redirect_to'] = HTTP_Helper::retrievePost( 'redirect_to' );
420
+ if ( ! isset( $params['error'] ) ) {
421
+ $params['error'] = null;
422
+ }
423
+ //if this goes here then the current user is ok, need to show the 2 auth
424
+ $this->renderPartial( 'login/otp', $params );
425
+ exit;
426
+ }
427
+
428
+ /**
429
+ * We will empty all auth cookies or session, so should not rely on wp_get_session_token
430
+ *
431
+ * @param $cookie
432
+ */
433
+ public function storeSessionKey( $cookie ) {
434
+ $cookie = wp_parse_auth_cookie( $cookie, 'logged_in' );
435
+ $this->sessionToken = ! empty( $cookie['token'] ) ? $cookie['token'] : '';
436
+ }
437
+
438
+ /**
439
+ * Create a unique token to retrieve user later
440
+ *
441
+ * @param $user
442
+ *
443
+ * @return string
444
+ */
445
+ private function createLoginToken( $user ) {
446
+ $tmp = uniqid();
447
+ // create and store a login token so we can query this user again
448
+ update_user_meta( $user->ID, 'defOTPLoginToken', $tmp );
449
+
450
+ return $tmp;
451
+ }
452
+
453
+ /**
454
+ * add css for OTP page
455
+ */
456
+ public function includeAuthStyles() {
457
+ //enqueue css here
458
+ wp_enqueue_style( 'defAuth', wp_defender()->getPluginUrl() . 'app/module/advanced-tools/css/login.css' );
459
+ }
460
+ }
app/module/two-factor/controller/main.php ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace WP_Defender\Module\Two_Factor\Controller;
4
+
5
+ use WP_Defender\Behavior\Utils;
6
+ use WP_Defender\Controller;
7
+ use WP_Defender\Module\Two_Factor\Component\Auth_Listener;
8
+ use WP_Defender\Module\Two_Factor\Model\Auth_Settings;
9
+
10
+ class Main extends Controller {
11
+ protected $slug = 'wdf-2fa';
12
+
13
+ public function behaviors() {
14
+ $behaviors = array(
15
+ 'utils' => '\WP_Defender\Behavior\Utils',
16
+ 'endpoints' => '\WP_Defender\Behavior\Endpoint',
17
+ 'wpmudev' => '\WP_Defender\Behavior\WPMUDEV'
18
+ );
19
+ if ( wp_defender()->isFree == false ) {
20
+ $behaviors['pro'] = '\WP_Defender\Module\IP_Lockout\Behavior\Pro\Reporting';
21
+ }
22
+
23
+ return $behaviors;
24
+ }
25
+
26
+ public function __construct() {
27
+ if ( $this->isNetworkActivate( wp_defender()->plugin_slug ) ) {
28
+ $this->addAction( 'network_admin_menu', 'adminMenu' );
29
+ } else {
30
+ $this->addAction( 'admin_menu', 'adminMenu' );
31
+ }
32
+ $this->addAction( 'defender_enqueue_assets', 'scripts', 12 );
33
+ new Auth_Listener();
34
+ }
35
+
36
+ /**
37
+ * Add submit admin page
38
+ */
39
+ public function adminMenu() {
40
+ $cap = is_multisite() ? 'manage_network_options' : 'manage_options';
41
+ $action = "actionIndex";
42
+ add_submenu_page( 'wp-defender', esc_html__( "2FA", "defender-security" ), esc_html__( "2FA", "defender-security" ), $cap, $this->slug, array(
43
+ &$this,
44
+ $action
45
+ ) );
46
+ }
47
+
48
+ public function scripts() {
49
+ if ( $this->isInPage() ) {
50
+ wp_enqueue_style( 'wpmudev-sui' );
51
+ wp_enqueue_style( 'defender' );
52
+ wp_enqueue_media();
53
+ wp_register_script( 'defender-2fa', wp_defender()->getPluginUrl() . 'assets/app/two-fa.js', array(
54
+ 'def-vue',
55
+ 'defender',
56
+ 'wp-i18n'
57
+ ), wp_defender()->version, true );
58
+ wp_localize_script( 'defender-2fa', 'two_fa', $this->_scriptsData() );
59
+ Utils::instance()->createTranslationJson( 'defender-2fa' );
60
+ wp_set_script_translations( 'defender-2fa', 'wpdef', wp_defender()->getPluginPath() . 'languages' );
61
+ wp_enqueue_script( 'defender-2fa' );
62
+ wp_enqueue_script( 'wpmudev-sui' );
63
+ }
64
+ }
65
+
66
+ public function _scriptsData() {
67
+ $query = new \WP_User_Query( [
68
+ //look over the network
69
+ 'blog_id' => 0,
70
+ 'meta_key' => 'defenderAuthOn',
71
+ 'meta_value' => true
72
+ ] );
73
+ $settings = Auth_Settings::instance();
74
+
75
+ return [
76
+ 'misc' => [
77
+ 'all_roles' => get_editable_roles(),
78
+ 'compatibility' => isset( wp_defender()->global['compatibility'] ) && is_array( wp_defender()->global['compatibility'] ) ? wp_defender()->global['compatibility'] : false,
79
+ 'total' => $query->get_total(),
80
+ ],
81
+ 'model' => $settings->export(),
82
+ 'nonces' => [
83
+ 'updateSettings' => wp_create_nonce( 'updateSettings' ),
84
+ 'sendTestEmail' => wp_create_nonce( 'sendTestEmail' )
85
+ ],
86
+ 'endpoints' => $this->getAllAvailableEndpoints( \WP_Defender\Module\Two_Factor::getClassName() ),
87
+ ];
88
+ }
89
+
90
+ public function actionIndex() {
91
+ $this->render( 'main' );
92
+ }
93
+ }
app/module/two-factor/controller/rest.php ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace WP_Defender\Module\Two_Factor\Controller;
4
+
5
+ use Hammer\Helper\HTTP_Helper;
6
+ use WP_Defender\Behavior\Utils;
7
+ use WP_Defender\Controller;
8
+ use WP_Defender\Module\Two_Factor;
9
+
10
+ class Rest extends Controller {
11
+ public function __construct() {
12
+ $namespace = 'wp-defender/v1';
13
+ $namespace .= '/twoFa';
14
+ $routes = [
15
+ $namespace . '/updateSettings' => 'updateSettings',
16
+ $namespace . '/sendTestEmail' => 'sendTestEmail',
17
+
18
+ ];
19
+ $this->registerEndpoints( $routes, Two_Factor::getClassName() );
20
+ }
21
+
22
+ /**
23
+ * Send test email
24
+ */
25
+ public function sendTestEmail() {
26
+ if ( ! $this->checkPermission() ) {
27
+ return;
28
+ }
29
+
30
+ if ( ! wp_verify_nonce( HTTP_Helper::retrieveGet( '_wpnonce' ), 'sendTestEmail' ) ) {
31
+ return;
32
+ }
33
+
34
+ //get the backup email from current user
35
+ $backup_email = Two_Factor\Component\Auth_API::getBackupEmail( get_current_user_id() );
36
+ $subject = wp_kses_post( HTTP_Helper::retrievePost( 'email_subject' ) );
37
+ $sender = HTTP_Helper::retrievePost( 'email_sender' );
38
+ $body = wp_kses_post( HTTP_Helper::retrievePost( 'email_body' ) );
39
+ $params = [
40
+ 'pass_code' => '[a-sample-passcode]',
41
+ 'display_name' => Utils::instance()->getDisplayName()
42
+ ];
43
+ foreach ( $params as $key => $param ) {
44
+ $body = str_replace( "{{$key}}", $param, $body );
45
+ }
46
+ $headers = [ 'Content-Type: text/html; charset=UTF-8' ];
47
+ if ( $sender ) {
48
+ $from_email = get_bloginfo( 'admin_email' );
49
+ $headers[] = sprintf( 'From: %s <%s>', $sender, $from_email );
50
+ }
51
+
52
+ $send_mail = wp_mail( $backup_email, $subject, $body, $headers );
53
+ if ( $send_mail ) {
54
+ wp_send_json_success( array(
55
+ 'message' => __( 'Test email has been sent to your email.', "defender-security" ),
56
+ ) );
57
+ } else {
58
+ wp_send_json_error( array(
59
+ 'message' => __( 'Test email failed.', "defender-security" ),
60
+ ) );
61
+ }
62
+
63
+ }
64
+
65
+ /**
66
+ * An endpoint for update settings
67
+ */
68
+ public function updateSettings() {
69
+ if ( ! $this->checkPermission() ) {
70
+ return;
71
+ }
72
+
73
+ if ( ! wp_verify_nonce( HTTP_Helper::retrieveGet( '_wpnonce' ), 'updateSettings' ) ) {
74
+ return;
75
+ }
76
+
77
+ $data = stripslashes( $_POST['data'] );
78
+ $data = json_decode( $data, true );
79
+ $settings = $data['settings'];
80
+ $model = Two_Factor\Model\Auth_Settings::instance();
81
+ $model->import( $settings );
82
+ if ( $model->validate() ) {
83
+ $model->save();
84
+ $res = array(
85
+ 'message' => __( "Your settings have been updated.", "defender-security" )
86
+ );
87
+ $this->submitStatsToDev();
88
+ wp_send_json_success( $res );
89
+ } else {
90
+ $res = array(
91
+ 'message' => implode( '<br/>', $model->getErrors() )
92
+ );
93
+ wp_send_json_error( $res );
94
+ }
95
+ }
96
+
97
+ /**
98
+ * Import Utils into the class
99
+ * @return array
100
+ */
101
+ public function behaviors() {
102
+ $behaviors = array(
103
+ 'utils' => '\WP_Defender\Behavior\Utils',
104
+ );
105
+
106
+ return $behaviors;
107
+ }
108
+ }
app/module/two-factor/model/auth-settings.php ADDED
@@ -0,0 +1,171 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Author: Hoang Ngo
5
+ */
6
+
7
+ namespace WP_Defender\Module\Two_Factor\Model;
8
+
9
+ use Hammer\Helper\WP_Helper;
10
+
11
+ class Auth_Settings extends \Hammer\WP\Settings {
12
+ private static $_instance;
13
+ public $enabled = false;
14
+ public $lost_phone = true;
15
+ public $force_auth = false;
16
+ public $force_auth_mess = "You are required to setup two-factor authentication to use this site.";
17
+ public $user_roles = array();
18
+ public $force_auth_roles = array();
19
+ public $custom_graphic = false;
20
+ public $custom_graphic_url = '';
21
+ public $is_conflict = array();
22
+ public $email_subject = '';
23
+ public $email_sender = '';
24
+ public $email_body = '';
25
+
26
+ public function __construct( $id, $is_multi ) {
27
+ //fetch the userRoles
28
+ if ( ! function_exists( 'get_editable_roles' ) ) {
29
+ include_once ABSPATH . 'wp-admin/includes/user.php';
30
+ }
31
+ $this->user_roles = array_keys( get_editable_roles() );
32
+ //remove subscriber from the list
33
+ unset( $this->user_roles[ array_search( 'subscriber', $this->user_roles ) ] );
34
+ $this->custom_graphic_url = wp_defender()->getPluginUrl() . 'assets/img/2factor-disabled.svg';
35
+ $this->email_subject = 'Your OTP code';
36
+ $this->email_sender = 'admin';
37
+ $this->email_body = 'Hi {{display_name}},
38
+
39
+ Your temporary login passcode is <strong>{{passcode}}</strong>.
40
+
41
+ Copy and paste the passcode into the input field on the login screen to complete logging in.
42
+
43
+ Regards,
44
+ Administrator';
45
+ parent::__construct( $id, $is_multi );
46
+ //have to force it here if it has not convert the new config
47
+ $this->enabled = ! ! $this->enabled;
48
+ $this->force_auth = ! ! $this->force_auth;
49
+ $this->custom_graphic = ! ! $this->custom_graphic;
50
+ if ( ! is_array( $this->user_roles ) ) {
51
+ $this->user_roles = [];
52
+ }
53
+ $this->user_roles = array_values( $this->user_roles );
54
+ if ( ! is_array( $this->force_auth_roles ) ) {
55
+ $this->force_auth_roles = [];
56
+ }
57
+ $this->force_auth_roles = array_values( $this->force_auth_roles );
58
+ }
59
+
60
+ /**
61
+ * @return Auth_Settings
62
+ */
63
+ public static function instance() {
64
+ if ( is_null( self::$_instance ) ) {
65
+ $class = new Auth_Settings( 'wd_2auth_settings', WP_Helper::is_network_activate( wp_defender()->plugin_slug ) );
66
+ self::$_instance = $class;
67
+ }
68
+
69
+ return self::$_instance;
70
+ }
71
+
72
+ /**
73
+ * @param $plugin
74
+ *
75
+ * @return bool|int
76
+ */
77
+ public function isConflict( $plugin ) {
78
+ if ( in_array( $plugin, $this->is_conflict ) ) {
79
+ return true;
80
+ } elseif ( in_array( '!' . $plugin, $this->is_conflict ) ) {
81
+ return false;
82
+ }
83
+
84
+ return 0;
85
+ }
86
+
87
+ /**
88
+ * @param $plugin
89
+ */
90
+ public function markAsConflict( $plugin ) {
91
+ if ( ! in_array( $plugin, $this->is_conflict ) ) {
92
+ $this->is_conflict [] = $plugin;
93
+ $this->save();
94
+ }
95
+ }
96
+
97
+ /**
98
+ * @param $plugin
99
+ */
100
+ public function markAsUnConflict( $plugin ) {
101
+ if ( ( $i = array_search( $plugin, $this->is_conflict ) ) !== false ) {
102
+ unset( $this->is_conflict[ $i ] );
103
+ }
104
+ if ( ! in_array( '!' . $plugin, $this->is_conflict ) ) {
105
+ $this->is_conflict [] = '!' . $plugin;
106
+ }
107
+ $this->save();
108
+ }
109
+
110
+ public function events() {
111
+ $that = $this;
112
+
113
+ return array(
114
+ self::EVENT_AFTER_DELETED => array(
115
+ array(
116
+ function () use ( $that ) {
117
+ global $wpdb;
118
+ $sql = "DELETE from " . $wpdb->usermeta . " WHERE meta_key IN ('defOTPLoginToken','defenderBackupCode','defenderAuthSecret','defenderAuthOn','defenderAuthEmail')";
119
+ $wpdb->query( $sql );
120
+ }
121
+ )
122
+ )
123
+ );
124
+ }
125
+
126
+ /**
127
+ * Email default body.
128
+ */
129
+ public function two_factor_opt_email_default_body() {
130
+ $content = 'Hi {{display_name}},
131
+
132
+ Your temporary login passcode is <strong>{{passcode}}</strong>.
133
+
134
+ Copy and paste the passcode into the input field on the login screen to complete logging in.
135
+
136
+ Regards,
137
+ Administrator';
138
+
139
+ return $content;
140
+ }
141
+
142
+ /**
143
+ * Define labels for settings key, we will use it for HUB
144
+ *
145
+ * @param null $key
146
+ *
147
+ * @return array|mixed
148
+ */
149
+ public function labels( $key = null ) {
150
+ $labels = [
151
+ 'enabled' => __( 'Two Factor Authentication', "defender-security" ),
152
+ 'user_roles' => __( "User Roles", "defender-security" ),
153
+ 'lost_phone' => __( 'Lost Phone', "defender-security" ),
154
+ 'force_auth' => __( "Force Authentication", "defender-security" ),
155
+ 'force_auth_mess' => __( "Custom warning message", "defender-security" ),
156
+ 'force_auth_roles' => __( "Force Authentication", "defender-security" ),
157
+ 'custom_graphic' => __( "Custom Graphic", "defender-security" ),
158
+ 'custom_graphic_url' => __( "Custom Graphic Image", "defender-security" ),
159
+ 'email_subject' => __( "Subject", "defender-security" ),
160
+ 'email_sender' => __( "Sender", "defender-security" ),
161
+ 'email_body' => __( "Body", "defender-security" )
162
+
163
+ ];
164
+
165
+ if ( $key != null ) {
166
+ return isset( $labels[ $key ] ) ? $labels[ $key ] : null;
167
+ }
168
+
169
+ return $labels;
170
+ }
171
+ }
app/module/two-factor/view/login/disabled.php ADDED
@@ -0,0 +1,156 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <h2><?php _e( "Security", "defender-security" ) ?></h2>
2
+ <table class="form-table" id="defender-security">
3
+ <tbody>
4
+ <tr class="user-sessions-wrap hide-if-no-js">
5
+ <th><?php _e( "Two Factor Authentication", "defender-security" ) ?></th>
6
+ <td aria-live="assertive">
7
+ <?php
8
+ $settings = \WP_Defender\Module\Two_Factor\Model\Auth_Settings::instance();
9
+ $force_auth_for_curr_user = false;
10
+ $user = wp_get_current_user();
11
+ if ( $user->ID && isset( $settings->force_auth_roles ) && ! empty( $settings->force_auth_roles ) ) {
12
+ $curr_user_roles = (array) $user->roles;
13
+ if ( ! empty( array_intersect( $curr_user_roles, $settings->force_auth_roles ) ) ) {
14
+ $force_auth_for_curr_user = true;
15
+ }
16
+ }
17
+ if ( $force_auth_for_curr_user && $settings->force_auth ):
18
+ ?>
19
+ <div class="def-warning">
20
+ <i class="dashicons dashicons-warning" aria-hidden="true"></i>
21
+ <?php
22
+ echo $settings->force_auth_mess
23
+ ?>
24
+ </div>
25
+ <?php endif; ?>
26
+ <?php
27
+ $email = '';
28
+ if ( is_object( $user ) ) {
29
+ $email = $user->user_email;
30
+ }
31
+ ?>
32
+ <div id="def2">
33
+ <div class="destroy-sessions">
34
+ <button type="button" class="button" id="show2AuthActivator">
35
+ <?php _e( "Enable", "defender-security" ) ?>
36
+ </button>
37
+ </div>
38
+ <p class="description">
39
+ <?php _e( "Use the Google Authenticator app to sign in with a separate passcode.", "defender-security" ) ?>
40
+ </p>
41
+ </div>
42
+ <div id="def2qr">
43
+ <button type="button" id="hide2AuthActivator"
44
+ class="button"><?php _e( "Cancel", "defender-security" ) ?></button>
45
+ <p><?php _e( "Use the Google Authenticator app to sign in with a separate passcode.", "defender-security" ) ?></p>
46
+ <div class="card">
47
+ <p>
48
+ <strong><?php _e( "1. Install the Verification app", "defender-security" ) ?></strong>
49
+ </p>
50
+ <p>
51
+ <?php _e( "Download and install the Google Authenticator app on your device using the links below.", "defender-security" ) ?>
52
+ </p>
53
+ <a href="https://itunes.apple.com/vn/app/google-authenticator/id388497605?mt=8">
54
+ <img src="<?php echo wp_defender()->getPluginUrl() . 'assets/img/ios-download.svg' ?>"/>
55
+ </a>
56
+ <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2">
57
+ <img src="<?php echo wp_defender()->getPluginUrl() . 'assets/img/android-download.svg' ?>"/>
58
+ </a>
59
+ <div class="line"></div>
60
+ <p><strong><?php _e( "2. Scan the barcode", "defender-security" ) ?></strong></p>
61
+ <p><?php _e( "Open the Google Authenticator app you just downloaded, tap the \"+\" symbol and then use your phone's camera to scan the barcode below.", "defender-security" ) ?></p>
62
+ <?php echo \WP_Defender\Module\Two_Factor\Component\Auth_API::generateQRCode( urlencode( get_bloginfo( 'name' ) ), $email, $secretKey, 149, 149, urlencode( get_bloginfo( 'name' ) ) ) ?>
63
+ <div class="line"></div>
64
+ <p><strong><?php _e( "3. Enter passcode", "defender-security" ) ?></strong></p>
65
+ <p>
66
+ <?php _e( "Enter the 6 digit passcode that is shown on your device into the input field below and hit \"Verify\".", "defender-security" ) ?>
67
+ </p>
68
+ <div class="well">
69
+ <p class="error"></p>
70
+ <input type="text" id="otpCode" class="def-small-text">
71
+ <button type="button" class="button button-primary" id="verifyOTP">
72
+ <?php _e( "Verify", "defender-security" ) ?>
73
+ </button>
74
+ <input type="hidden" id="defNonce" value="<?php echo wp_create_nonce( 'defVerifyOTP' ) ?>"/>
75
+ </div>
76
+ </div>
77
+ </div>
78
+ </td>
79
+ </tr>
80
+ </tbody>
81
+ </table>
82
+ <script type="text/javascript">
83
+ jQuery(function ($) {
84
+ $('#def2qr').hide();
85
+ $('#show2AuthActivator').click(function () {
86
+ $('#def2').hide();
87
+ $('#def2qr').show();
88
+ });
89
+ $('#hide2AuthActivator').click(function () {
90
+ $('#def2qr').hide();
91
+ $('#def2').show();
92
+ })
93
+ $("input#otpCode").keydown(function (event) {
94
+ if (event.keyCode == 13) {
95
+ event.preventDefault();
96
+
97
+ var data = {
98
+ action: 'defVerifyOTP',
99
+ otp: $('#otpCode').val(),
100
+ nonce: $('#defNonce').val()
101
+ }
102
+ var that = $(this).next('#verifyOTP');
103
+ var parent = that.closest('.well');
104
+ $.ajax({
105
+ type: 'POST',
106
+ url: ajaxurl,
107
+ data: data,
108
+ beforeSend: function () {
109
+ that.attr('disabled', 'disabled');
110
+ },
111
+ success: function (data) {
112
+ if (data.success == true) {
113
+ location.reload();
114
+ } else {
115
+ that.removeAttr('disabled');
116
+ parent.find('.error').text(data.data.message);
117
+ }
118
+ }
119
+ })
120
+ }
121
+ });
122
+ $('#verifyOTP').click(function () {
123
+ var data = {
124
+ action: 'defVerifyOTP',
125
+ otp: $('#otpCode').val(),
126
+ nonce: $('#defNonce').val()
127
+ }
128
+ var that = $(this);
129
+ var parent = that.closest('.well');
130
+ $.ajax({
131
+ type: 'POST',
132
+ url: ajaxurl,
133
+ data: data,
134
+ beforeSend: function () {
135
+ that.attr('disabled', 'disabled');
136
+ },
137
+ success: function (data) {
138
+ if (data.success == true) {
139
+ location.reload();
140
+ } else {
141
+ that.removeAttr('disabled');
142
+ parent.find('.error').text(data.data.message);
143
+ }
144
+ }
145
+ })
146
+ });
147
+ })
148
+ </script>
149
+ <?php if ( $force_auth_for_curr_user && $settings->force_auth ): ?>
150
+ <script type="text/javascript">
151
+ jQuery(function ($) {
152
+ $('html, body').animate({scrollTop: $("#show2AuthActivator").offset().top}, 1000);
153
+ });
154
+ </script>
155
+ <?php endif; ?>
156
+
app/module/two-factor/view/login/enabled.php ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <h2><?php _e( "Security", "defender-security" ) ?></h2>
2
+ <table class="form-table">
3
+ <tbody>
4
+ <tr class="user-sessions-wrap hide-if-no-js">
5
+ <th><?php _e( "Two Factor Authentication", "defender-security" ) ?></th>
6
+ <td aria-live="assertive">
7
+ <div class="def-notification">
8
+ <?php _e( "Two factor authentication is active.", "defender-security" ) ?>
9
+ </div>
10
+ <button type="button" class="button" id="disableOTP">
11
+ <?php _e( "Disable", "defender-security" ) ?>
12
+ </button>
13
+ </td>
14
+ </tr>
15
+ <tr class="user-sessions-wrap hide-if-no-js">
16
+ <th><?php _e( "Fallback email address", "defender-security" ) ?></th>
17
+ <td aria-live="assertive">
18
+ <input type="text" class="regular-text" name="def_backup_email" value="<?php echo $email ?>"/>
19
+ <p class="description">
20
+ <?php _e( "If you ever lose your device, you can send a fallback passcode to this email address.", "defender-security" ) ?>
21
+ </p>
22
+ </td>
23
+ </tr>
24
+ </tbody>
25
+ </table>
26
+ <script type="text/javascript">
27
+ jQuery(function ($) {
28
+ $('#disableOTP').click(function () {
29
+ var data = {
30
+ action: 'defDisableOTP'
31
+ }
32
+ var that = $(this);
33
+ $.ajax({
34
+ type: 'POST',
35
+ url: ajaxurl,
36
+ data: data,
37
+ beforeSend: function () {
38
+ that.attr('disabled', 'disabled');
39
+ },
40
+ success: function (data) {
41
+ if (data.success == true) {
42
+ location.reload();
43
+ } else {
44
+ that.removeAttr('disabled');
45
+ }
46
+ }
47
+ })
48
+ })
49
+ })
50
+ </script>
app/module/two-factor/view/login/otp.php ADDED
@@ -0,0 +1,331 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! function_exists( 'login_header_otp' ) ) {
3
+ //copy from wp-login
4
+ /**
5
+ * Output the login page header.
6
+ *
7
+ * @param string $title Optional. WordPress login Page title to display in the `<title>` element.
8
+ * Default 'Log In'.
9
+ * @param string $message Optional. Message to display in header. Default empty.
10
+ * @param WP_Error $wp_error Optional. The error to pass. Default empty.
11
+ */
12
+ function login_header_otp( $title = 'Log In', $message = '', $wp_error = '' ) {
13
+ global $error, $interim_login, $action;
14
+
15
+ if ( empty( $wp_error ) ) {
16
+ $wp_error = new WP_Error();
17
+ }
18
+
19
+ // Shake it!
20
+ $shake_error_codes = array(
21
+ 'empty_password',
22
+ 'empty_email',
23
+ 'invalid_email',
24
+ 'invalidcombo',
25
+ 'empty_username',
26
+ 'invalid_username',
27
+ 'incorrect_password'
28
+ );
29
+ /**
30
+ * Filters the error codes array for shaking the login form.
31
+ *
32
+ * @since 3.0.0
33
+ *
34
+ * @param array $shake_error_codes Error codes that shake the login form.
35
+ */
36
+ $shake_error_codes = apply_filters( 'shake_error_codes', $shake_error_codes );
37
+
38
+ if ( $shake_error_codes && $wp_error->get_error_code() && in_array( $wp_error->get_error_code(), $shake_error_codes ) ) {
39
+ add_action( 'login_head', 'wp_shake_js', 12 );
40
+ }
41
+
42
+ $separator = is_rtl() ? ' &rsaquo; ' : ' &lsaquo; ';
43
+
44
+ ?><!DOCTYPE html>
45
+ <!--[if IE 8]>
46
+ <html xmlns="http://www.w3.org/1999/xhtml" class="ie8" <?php language_attributes(); ?>>
47
+ <![endif]-->
48
+ <!--[if !(IE 8) ]><!-->
49
+ <html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
50
+ <!--<![endif]-->
51
+ <head>
52
+ <meta http-equiv="Content-Type"
53
+ content="<?php bloginfo( 'html_type' ); ?>; charset=<?php bloginfo( 'charset' ); ?>"/>
54
+ <title><?php echo get_bloginfo( 'name', 'display' ) . $separator . $title; ?></title>
55
+ <?php
56
+
57
+ wp_enqueue_style( 'login' );
58
+
59
+ /*
60
+ * Remove all stored post data on logging out.
61
+ * This could be added by add_action('login_head'...) like wp_shake_js(),
62
+ * but maybe better if it's not removable by plugins
63
+ */
64
+ if ( 'loggedout' == $wp_error->get_error_code() ) {
65
+ ?>
66
+ <script>if ("sessionStorage" in window) {
67
+ try {
68
+ for (var key in sessionStorage) {
69
+ if (key.indexOf("wp-autosave-") != -1) {
70
+ sessionStorage.removeItem(key)
71
+ }
72
+ }
73
+ } catch (e) {
74
+ }
75
+ }
76
+ ;</script>
77
+ <?php
78
+ }
79
+
80
+ /**
81
+ * Enqueue scripts and styles for the login page.
82
+ *
83
+ * @since 3.1.0
84
+ */
85
+ do_action( 'login_enqueue_scripts' );
86
+
87
+ /**
88
+ * Fires in the login page header after scripts are enqueued.
89
+ *
90
+ * @since 2.1.0
91
+ */
92
+ do_action( 'login_head' );
93
+
94
+ if ( is_multisite() ) {
95
+ $login_header_url = network_home_url();
96
+ $login_header_title = get_network()->site_name;
97
+ } else {
98
+ $login_header_url = __( 'https://wordpress.org/' );
99
+ $login_header_title = __( 'Powered by WordPress' );
100
+ }
101
+
102
+ /**
103
+ * Filters link URL of the header logo above login form.
104
+ *
105
+ * @since 2.1.0
106
+ *
107
+ * @param string $login_header_url Login header logo URL.
108
+ */
109
+ $login_header_url = apply_filters( 'login_headerurl', $login_header_url );
110
+
111
+ /**
112
+ * Filters the title attribute of the header logo above login form.
113
+ *
114
+ * @since 2.1.0
115
+ *
116
+ * @param string $login_header_title Login header logo title attribute.
117
+ */
118
+ $login_header_title = apply_filters( 'login_headertitle', $login_header_title );
119
+
120
+ $classes = array( 'login-action-' . $action, 'wp-core-ui' );
121
+ if ( is_rtl() ) {
122
+ $classes[] = 'rtl';
123
+ }
124
+ if ( $interim_login ) {
125
+ $classes[] = 'interim-login';
126
+ ?>
127
+ <style type="text/css">html {
128
+ background-color: transparent;
129
+ }</style>
130
+ <?php
131
+
132
+ if ( 'success' === $interim_login ) {
133
+ $classes[] = 'interim-login-success';
134
+ }
135
+ }
136
+ $classes[] = ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_locale() ) ) );
137
+
138
+ /**
139
+ * Filters the login page body classes.
140
+ *
141
+ * @since 3.5.0
142
+ *
143
+ * @param array $classes An array of body classes.
144
+ * @param string $action The action that brought the visitor to the login page.
145
+ */
146
+ $classes = apply_filters( 'login_body_class', $classes, $action );
147
+
148
+ ?>
149
+ </head>
150
+ <body class="login <?php echo esc_attr( implode( ' ', $classes ) ); ?>">
151
+ <?php
152
+ /**
153
+ * Fires in the login page header after the body tag is opened.
154
+ *
155
+ * @since 4.6.0
156
+ */
157
+ do_action( 'login_header' );
158
+ ?>
159
+ <div id="login">
160
+
161
+ <h1><a id="otp-logo" href="<?php echo esc_url( $login_header_url ); ?>" title="<?php echo esc_attr( $login_header_title ); ?>"
162
+ tabindex="-1"><?php bloginfo( 'name' ); ?></a></h1>
163
+ <?php
164
+
165
+ unset( $login_header_url, $login_header_title );
166
+
167
+ /**
168
+ * Filters the message to display above the login form.
169
+ *
170
+ * @since 2.1.0
171
+ *
172
+ * @param string $message Login message text.
173
+ */
174
+ $message = apply_filters( 'login_message', $message );
175
+ if ( ! empty( $message ) ) {
176
+ echo $message . "\n";
177
+ }
178
+
179
+ // In case a plugin uses $error rather than the $wp_errors object
180
+ if ( ! empty( $error ) ) {
181
+ $wp_error->add( 'error', $error );
182
+ unset( $error );
183
+ }
184
+
185
+ if ( $wp_error->get_error_code() ) {
186
+ $errors = '';
187
+ $messages = '';
188
+ foreach ( $wp_error->get_error_codes() as $code ) {
189
+ $severity = $wp_error->get_error_data( $code );
190
+ foreach ( $wp_error->get_error_messages( $code ) as $error_message ) {
191
+ if ( 'message' == $severity ) {
192
+ $messages .= ' ' . $error_message . "<br />\n";
193
+ } else {
194
+ $errors .= ' ' . $error_message . "<br />\n";
195
+ }
196
+ }
197
+ }
198
+ if ( ! empty( $errors ) ) {
199
+ /**
200
+ * Filters the error messages displayed above the login form.
201
+ *
202
+ * @since 2.1.0
203
+ *
204
+ * @param string $errors Login error message.
205
+ */
206
+ echo '<div id="login_error">' . apply_filters( 'login_errors', $errors ) . "</div>\n";
207
+ }
208
+ if ( ! empty( $messages ) ) {
209
+ /**
210
+ * Filters instructional messages displayed above the login form.
211
+ *
212
+ * @since 2.5.0
213
+ *
214
+ * @param string $messages Login messages.
215
+ */
216
+ echo '<p class="message">' . apply_filters( 'login_messages', $messages ) . "</p>\n";
217
+ }
218
+ }
219
+ }
220
+ }
221
+ login_header_otp( '', '', $error );
222
+ ?>
223
+ <form method="post"
224
+ action="<?php echo esc_url( add_query_arg( 'action', 'defenderVerifyOTP', site_url( 'wp-login.php', 'login_post' ) ) ); ?>">
225
+ <p><?php _e( "Open the Google Authenticator app and enter the 6 digit passcode.", "defender-security" ) ?></p>
226
+ <input type="text" autofocus value="" autocomplete="off" name="otp">
227
+ <button class="button button-primary float-r"
228
+ type="submit"><?php _e( "Authenticate", "defender-security" ) ?></button>
229
+ <input type="hidden" name="login_token" value="<?php echo $loginToken ?>"/>
230
+ <input type="hidden" name="redirect_to" value="<?php echo $redirect_to ?>"/>
231
+ <?php wp_nonce_field( 'DefOtpCheck' ) ?>
232
+ </form>
233
+ <?php
234
+ $settings = \WP_Defender\Module\Two_Factor\Model\Auth_Settings::instance();
235
+
236
+ if ( wp_defender()->isFree == false && $settings->custom_graphic ) {
237
+ ?>
238
+ <style type="text/css">
239
+ body.login div#login h1 a {
240
+ background-image: url("<?php echo $settings->custom_graphic_url ?>");
241
+ }
242
+ </style>
243
+ <?php
244
+ }
245
+ ?>
246
+ <?php if ( \WP_Defender\Module\Two_Factor\Model\Auth_Settings::instance()->lost_phone ): ?>
247
+ <p id="nav">
248
+ <a id="lostPhone"
249
+ href="<?php echo admin_url( 'admin-ajax.php?action=defRetrieveOTP&token=' . $loginToken . '&nonce=' . wp_create_nonce( 'defRetrieveOTP' ) ) ?>">
250
+ <?php _e( "Lost your device?", "defender-security" ) ?></a>
251
+ <img class="def-ajaxloader"
252
+ src="<?php echo wp_defender()->getPluginUrl() . 'app/module/advanced-tools/img/spinner.svg' ?>"/>
253
+ <strong class="notification">
254
+
255
+ </strong>
256
+ </p>
257
+ <script type="text/javascript">
258
+ jQuery(function ($) {
259
+ $('.def-ajaxloader').hide();
260
+ var isSent = false;
261
+ $('#lostPhone').click(function (e) {
262
+ e.preventDefault();
263
+ var that = $(this);
264
+ if (isSent == false) {
265
+ isSent = true;
266
+ $.ajax({
267
+ type: 'GET',
268
+ url: that.attr('href'),
269
+ beforeSend: function () {
270
+ that.attr('disabled', 'disabled');
271
+ $('.def-ajaxloader').show();
272
+ },
273
+ success: function (data) {
274
+ that.removeAttr('disabled');
275
+ $('.def-ajaxloader').hide();
276
+ $('.notification').text(data.data.message);
277
+ isSent = false;
278
+ }
279
+ })
280
+ }
281
+
282
+ })
283
+ })
284
+ </script>
285
+ <?php endif; ?>
286
+ <?php
287
+ if ( ! function_exists( 'login_footer' ) ) {
288
+ //copy from wp login
289
+ /**
290
+ * Outputs the footer for the login page.
291
+ *
292
+ * @param string $input_id Which input to auto-focus
293
+ */
294
+ function login_footer( $input_id = '' ) {
295
+ global $interim_login;
296
+
297
+ // Don't allow interim logins to navigate away from the page.
298
+ if ( ! $interim_login ): ?>
299
+ <p id="backtoblog"><a href="<?php echo esc_url( home_url( '/' ) ); ?>"><?php
300
+ /* translators: %s: site title */
301
+ printf( _x( '&larr; Back to %s', 'site' ), get_bloginfo( 'title', 'display' ) );
302
+ ?></a></p>
303
+ <?php endif; ?>
304
+
305
+ </div>
306
+
307
+ <?php if ( ! empty( $input_id ) ) : ?>
308
+ <script type="text/javascript">
309
+ try {
310
+ document.getElementById('<?php echo $input_id; ?>').focus();
311
+ } catch (e) {
312
+ }
313
+ if (typeof wpOnload == 'function') wpOnload();
314
+ </script>
315
+ <?php endif; ?>
316
+
317
+ <?php
318
+ /**
319
+ * Fires in the login page footer.
320
+ *
321
+ * @since 3.1.0
322
+ */
323
+ do_action( 'login_footer' ); ?>
324
+ <div class="clear"></div>
325
+ </body>
326
+ </html>
327
+ <?php
328
+ }
329
+ }
330
+ login_footer();
331
+ ?>
app/module/two-factor/view/main.php ADDED
@@ -0,0 +1 @@
 
1
+ <div id="defender"></div>
assets/app/advanced-tools.js CHANGED
@@ -1 +1 @@
1
- !function(t){var e=window.webpackHotUpdate;window.webpackHotUpdate=function(t,s){!function(t,e){if(!w[t]||!b[t])return;for(var s in b[t]=!1,e)Object.prototype.hasOwnProperty.call(e,s)&&(p[s]=e[s]);0==--v&&0===h&&k()}(t,s),e&&e(t,s)};var s,i=!0,a="1f0325ef5048e0254986",n={},r=[],o=[];function l(t){var e=j[t];if(!e)return S;var i=function(i){return e.hot.active?(j[i]?-1===j[i].parents.indexOf(t)&&j[i].parents.push(t):(r=[t],s=i),-1===e.children.indexOf(i)&&e.children.push(i)):(console.warn("[HMR] unexpected require("+i+") from disposed module "+t),r=[]),S(i)},a=function(t){return{configurable:!0,enumerable:!0,get:function(){return S[t]},set:function(e){S[t]=e}}};for(var n in S)Object.prototype.hasOwnProperty.call(S,n)&&"e"!==n&&"t"!==n&&Object.defineProperty(i,n,a(n));return i.e=function(t){return"ready"===d&&f("prepare"),h++,S.e(t).then(e,(function(t){throw e(),t}));function e(){h--,"prepare"===d&&(g[t]||x(t),0===h&&0===v&&k())}},i.t=function(t,e){return 1&e&&(t=i(t)),S.t(t,-2&e)},i}function c(t){var e={_acceptedDependencies:{},_declinedDependencies:{},_selfAccepted:!1,_selfDeclined:!1,_disposeHandlers:[],_main:s!==t,active:!0,accept:function(t,s){if(void 0===t)e._selfAccepted=!0;else if("function"==typeof t)e._selfAccepted=t;else if("object"==typeof t)for(var i=0;i<t.length;i++)e._acceptedDependencies[t[i]]=s||function(){};else e._acceptedDependencies[t]=s||function(){}},decline:function(t){if(void 0===t)e._selfDeclined=!0;else if("object"==typeof t)for(var s=0;s<t.length;s++)e._declinedDependencies[t[s]]=!0;else e._declinedDependencies[t]=!0},dispose:function(t){e._disposeHandlers.push(t)},addDisposeHandler:function(t){e._disposeHandlers.push(t)},removeDisposeHandler:function(t){var s=e._disposeHandlers.indexOf(t);s>=0&&e._disposeHandlers.splice(s,1)},check:C,apply:A,status:function(t){if(!t)return d;u.push(t)},addStatusHandler:function(t){u.push(t)},removeStatusHandler:function(t){var e=u.indexOf(t);e>=0&&u.splice(e,1)},data:n[t]};return s=void 0,e}var u=[],d="idle";function f(t){d=t;for(var e=0;e<u.length;e++)u[e].call(null,t)}var _,p,m,v=0,h=0,g={},b={},w={};function y(t){return+t+""===t?+t:t}function C(t){if("idle"!==d)throw new Error("check() is only allowed in idle status");return i=t,f("check"),(e=1e4,e=e||1e4,new Promise((function(t,s){if("undefined"==typeof XMLHttpRequest)return s(new Error("No browser support"));try{var i=new XMLHttpRequest,n=S.p+""+a+".hot-update.json";i.open("GET",n,!0),i.timeout=e,i.send(null)}catch(t){return s(t)}i.onreadystatechange=function(){if(4===i.readyState)if(0===i.status)s(new Error("Manifest request to "+n+" timed out."));else if(404===i.status)t();else if(200!==i.status&&304!==i.status)s(new Error("Manifest request to "+n+" failed."));else{try{var e=JSON.parse(i.responseText)}catch(t){return void s(t)}t(e)}}}))).then((function(t){if(!t)return f("idle"),null;b={},g={},w=t.c,m=t.h,f("prepare");var e=new Promise((function(t,e){_={resolve:t,reject:e}}));p={};return x(0),"prepare"===d&&0===h&&0===v&&k(),e}));var e}function x(t){w[t]?(b[t]=!0,v++,function(t){var e=document.createElement("script");e.charset="utf-8",e.src=S.p+""+t+"."+a+".hot-update.js",document.head.appendChild(e)}(t)):g[t]=!0}function k(){f("ready");var t=_;if(_=null,t)if(i)Promise.resolve().then((function(){return A(i)})).then((function(e){t.resolve(e)}),(function(e){t.reject(e)}));else{var e=[];for(var s in p)Object.prototype.hasOwnProperty.call(p,s)&&e.push(y(s));t.resolve(e)}}function A(e){if("ready"!==d)throw new Error("apply() is only allowed in ready status");var s,i,o,l,c;function u(t){for(var e=[t],s={},i=e.map((function(t){return{chain:[t],id:t}}));i.length>0;){var a=i.pop(),n=a.id,r=a.chain;if((l=j[n])&&!l.hot._selfAccepted){if(l.hot._selfDeclined)return{type:"self-declined",chain:r,moduleId:n};if(l.hot._main)return{type:"unaccepted",chain:r,moduleId:n};for(var o=0;o<l.parents.length;o++){var c=l.parents[o],u=j[c];if(u){if(u.hot._declinedDependencies[n])return{type:"declined",chain:r.concat([c]),moduleId:n,parentId:c};-1===e.indexOf(c)&&(u.hot._acceptedDependencies[n]?(s[c]||(s[c]=[]),_(s[c],[n])):(delete s[c],e.push(c),i.push({chain:r.concat([c]),id:c})))}}}}return{type:"accepted",moduleId:t,outdatedModules:e,outdatedDependencies:s}}function _(t,e){for(var s=0;s<e.length;s++){var i=e[s];-1===t.indexOf(i)&&t.push(i)}}e=e||{};var v={},h=[],g={},b=function(){console.warn("[HMR] unexpected require("+x.moduleId+") to disposed module")};for(var C in p)if(Object.prototype.hasOwnProperty.call(p,C)){var x;c=y(C);var k=!1,A=!1,E=!1,T="";switch((x=p[C]?u(c):{type:"disposed",moduleId:C}).chain&&(T="\nUpdate propagation: "+x.chain.join(" -> ")),x.type){case"self-declined":e.onDeclined&&e.onDeclined(x),e.ignoreDeclined||(k=new Error("Aborted because of self decline: "+x.moduleId+T));break;case"declined":e.onDeclined&&e.onDeclined(x),e.ignoreDeclined||(k=new Error("Aborted because of declined dependency: "+x.moduleId+" in "+x.parentId+T));break;case"unaccepted":e.onUnaccepted&&e.onUnaccepted(x),e.ignoreUnaccepted||(k=new Error("Aborted because "+c+" is not accepted"+T));break;case"accepted":e.onAccepted&&e.onAccepted(x),A=!0;break;case"disposed":e.onDisposed&&e.onDisposed(x),E=!0;break;default:throw new Error("Unexception type "+x.type)}if(k)return f("abort"),Promise.reject(k);if(A)for(c in g[c]=p[c],_(h,x.outdatedModules),x.outdatedDependencies)Object.prototype.hasOwnProperty.call(x.outdatedDependencies,c)&&(v[c]||(v[c]=[]),_(v[c],x.outdatedDependencies[c]));E&&(_(h,[x.moduleId]),g[c]=b)}var I,O=[];for(i=0;i<h.length;i++)c=h[i],j[c]&&j[c].hot._selfAccepted&&g[c]!==b&&O.push({module:c,errorHandler:j[c].hot._selfAccepted});f("dispose"),Object.keys(w).forEach((function(t){!1===w[t]&&function(t){delete installedChunks[t]}(t)}));for(var P,$,D=h.slice();D.length>0;)if(c=D.pop(),l=j[c]){var U={},R=l.hot._disposeHandlers;for(o=0;o<R.length;o++)(s=R[o])(U);for(n[c]=U,l.hot.active=!1,delete j[c],delete v[c],o=0;o<l.children.length;o++){var L=j[l.children[o]];L&&((I=L.parents.indexOf(c))>=0&&L.parents.splice(I,1))}}for(c in v)if(Object.prototype.hasOwnProperty.call(v,c)&&(l=j[c]))for($=v[c],o=0;o<$.length;o++)P=$[o],(I=l.children.indexOf(P))>=0&&l.children.splice(I,1);for(c in f("apply"),a=m,g)Object.prototype.hasOwnProperty.call(g,c)&&(t[c]=g[c]);var N=null;for(c in v)if(Object.prototype.hasOwnProperty.call(v,c)&&(l=j[c])){$=v[c];var H=[];for(i=0;i<$.length;i++)if(P=$[i],s=l.hot._acceptedDependencies[P]){if(-1!==H.indexOf(s))continue;H.push(s)}for(i=0;i<H.length;i++){s=H[i];try{s($)}catch(t){e.onErrored&&e.onErrored({type:"accept-errored",moduleId:c,dependencyId:$[i],error:t}),e.ignoreErrored||N||(N=t)}}}for(i=0;i<O.length;i++){var q=O[i];c=q.module,r=[c];try{S(c)}catch(t){if("function"==typeof q.errorHandler)try{q.errorHandler(t)}catch(s){e.onErrored&&e.onErrored({type:"self-accept-error-handler-errored",moduleId:c,error:s,originalError:t}),e.ignoreErrored||N||(N=s),N||(N=t)}else e.onErrored&&e.onErrored({type:"self-accept-errored",moduleId:c,error:t}),e.ignoreErrored||N||(N=t)}}return N?(f("fail"),Promise.reject(N)):(f("idle"),new Promise((function(t){t(h)})))}var j={};function S(e){if(j[e])return j[e].exports;var s=j[e]={i:e,l:!1,exports:{},hot:c(e),parents:(o=r,r=[],o),children:[]};return t[e].call(s.exports,s,s.exports,l(e)),s.l=!0,s.exports}S.m=t,S.c=j,S.d=function(t,e,s){S.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:s})},S.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},S.t=function(t,e){if(1&e&&(t=S(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var s=Object.create(null);if(S.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)S.d(s,i,function(e){return t[e]}.bind(null,i));return s},S.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return S.d(e,"a",e),e},S.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},S.p="",S.h=function(){return a},l("./src/advanced-tools.js")(S.s="./src/advanced-tools.js")}({"./node_modules/cssfilter/lib/css.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/default.js"),a=s("./node_modules/cssfilter/lib/parser.js");s("./node_modules/cssfilter/lib/util.js");function n(t){return null==t}function r(t){(t=function(t){var e={};for(var s in t)e[s]=t[s];return e}(t||{})).whiteList=t.whiteList||i.whiteList,t.onAttr=t.onAttr||i.onAttr,t.onIgnoreAttr=t.onIgnoreAttr||i.onIgnoreAttr,t.safeAttrValue=t.safeAttrValue||i.safeAttrValue,this.options=t}r.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var e=this.options,s=e.whiteList,i=e.onAttr,r=e.onIgnoreAttr,o=e.safeAttrValue;return a(t,(function(t,e,a,l,c){var u=s[a],d=!1;if(!0===u?d=u:"function"==typeof u?d=u(l):u instanceof RegExp&&(d=u.test(l)),!0!==d&&(d=!1),l=o(a,l)){var f,_={position:e,sourcePosition:t,source:c,isWhite:d};return d?n(f=i(a,l,_))?a+":"+l:f:n(f=r(a,l,_))?void 0:f}}))},t.exports=r},"./node_modules/cssfilter/lib/default.js":function(t,e){function s(){var t={"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1};return t}var i=/javascript\s*\:/gim;e.whiteList=s(),e.getDefaultWhiteList=s,e.onAttr=function(t,e,s){},e.onIgnoreAttr=function(t,e,s){},e.safeAttrValue=function(t,e){return i.test(e)?"":e}},"./node_modules/cssfilter/lib/index.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/default.js"),a=s("./node_modules/cssfilter/lib/css.js");for(var n in(e=t.exports=function(t,e){return new a(e).process(t)}).FilterCSS=a,i)e[n]=i[n];"undefined"!=typeof window&&(window.filterCSS=t.exports)},"./node_modules/cssfilter/lib/parser.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/util.js");t.exports=function(t,e){";"!==(t=i.trimRight(t))[t.length-1]&&(t+=";");var s=t.length,a=!1,n=0,r=0,o="";function l(){if(!a){var s=i.trim(t.slice(n,r)),l=s.indexOf(":");if(-1!==l){var c=i.trim(s.slice(0,l)),u=i.trim(s.slice(l+1));if(c){var d=e(n,o.length,c,u,s);d&&(o+=d+"; ")}}}n=r+1}for(;r<s;r++){var c=t[r];if("/"===c&&"*"===t[r+1]){var u=t.indexOf("*/",r+2);if(-1===u)break;n=(r=u+1)+1,a=!1}else"("===c?a=!0:")"===c?a=!1:";"===c?a||l():"\n"===c&&l()}return i.trim(o)}},"./node_modules/cssfilter/lib/util.js":function(t,e){t.exports={indexOf:function(t,e){var s,i;if(Array.prototype.indexOf)return t.indexOf(e);for(s=0,i=t.length;s<i;s++)if(t[s]===e)return s;return-1},forEach:function(t,e,s){var i,a;if(Array.prototype.forEach)return t.forEach(e,s);for(i=0,a=t.length;i<a;i++)e.call(s,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(t){return String.prototype.trimRight?t.trimRight():t.replace(/(\s*$)/g,"")}}},"./node_modules/vue-loader/lib/runtime/componentNormalizer.js":function(t,e,s){"use strict";function i(t,e,s,i,a,n,r,o){var l,c="function"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=s,c._compiled=!0),i&&(c.functional=!0),n&&(c._scopeId="data-v-"+n),r?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),a&&a.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(r)},c._ssrRegister=l):a&&(l=o?function(){a.call(this,this.$root.$options.shadowRoot)}:a),l)if(c.functional){c._injectStyles=l;var u=c.render;c.render=function(t,e){return l.call(e),u(t,e)}}else{var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,l):[l]}return{exports:t,options:c}}s.d(e,"a",(function(){return i}))},"./node_modules/xss/lib/default.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/index.js").FilterCSS,a=s("./node_modules/cssfilter/lib/index.js").getDefaultWhiteList,n=s("./node_modules/xss/lib/util.js");function r(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]}}var o=new i;function l(t){return t.replace(c,"&lt;").replace(u,"&gt;")}var c=/</g,u=/>/g,d=/"/g,f=/&quot;/g,_=/&#([a-zA-Z0-9]*);?/gim,p=/&colon;?/gim,m=/&newline;?/gim,v=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi,h=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,g=/u\s*r\s*l\s*\(.*/gi;function b(t){return t.replace(d,"&quot;")}function w(t){return t.replace(f,'"')}function y(t){return t.replace(_,(function(t,e){return"x"===e[0]||"X"===e[0]?String.fromCharCode(parseInt(e.substr(1),16)):String.fromCharCode(parseInt(e,10))}))}function C(t){return t.replace(p,":").replace(m," ")}function x(t){for(var e="",s=0,i=t.length;s<i;s++)e+=t.charCodeAt(s)<32?" ":t.charAt(s);return n.trim(e)}function k(t){return t=x(t=C(t=y(t=w(t))))}function A(t){return t=l(t=b(t))}var j=/<!--[\s\S]*?-->/g;e.whiteList={a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]},e.getDefaultWhiteList=r,e.onTag=function(t,e,s){},e.onIgnoreTag=function(t,e,s){},e.onTagAttr=function(t,e,s){},e.onIgnoreTagAttr=function(t,e,s){},e.safeAttrValue=function(t,e,s,i){if(s=k(s),"href"===e||"src"===e){if("#"===(s=n.trim(s)))return"#";if("http://"!==s.substr(0,7)&&"https://"!==s.substr(0,8)&&"mailto:"!==s.substr(0,7)&&"tel:"!==s.substr(0,4)&&"#"!==s[0]&&"/"!==s[0])return""}else if("background"===e){if(v.lastIndex=0,v.test(s))return""}else if("style"===e){if(h.lastIndex=0,h.test(s))return"";if(g.lastIndex=0,g.test(s)&&(v.lastIndex=0,v.test(s)))return"";!1!==i&&(s=(i=i||o).process(s))}return s=A(s)},e.escapeHtml=l,e.escapeQuote=b,e.unescapeQuote=w,e.escapeHtmlEntities=y,e.escapeDangerHtml5Entities=C,e.clearNonPrintableCharacter=x,e.friendlyAttrValue=k,e.escapeAttrValue=A,e.onIgnoreTagStripAll=function(){return""},e.StripTagBody=function(t,e){"function"!=typeof e&&(e=function(){});var s=!Array.isArray(t),i=[],a=!1;return{onIgnoreTag:function(r,o,l){if(function(e){return!!s||-1!==n.indexOf(t,e)}(r)){if(l.isClosing){var c="[/removed]",u=l.position+c.length;return i.push([!1!==a?a:l.position,u]),a=!1,c}return a||(a=l.position),"[removed]"}return e(r,o,l)},remove:function(t){var e="",s=0;return n.forEach(i,(function(i){e+=t.slice(s,i[0]),s=i[1]})),e+=t.slice(s)}}},e.stripCommentTag=function(t){return t.replace(j,"")},e.stripBlankChar=function(t){var e=t.split("");return(e=e.filter((function(t){var e=t.charCodeAt(0);return 127!==e&&(!(e<=31)||(10===e||13===e))}))).join("")},e.cssFilter=o,e.getDefaultCSSWhiteList=a},"./node_modules/xss/lib/index.js":function(t,e,s){var i=s("./node_modules/xss/lib/default.js"),a=s("./node_modules/xss/lib/parser.js"),n=s("./node_modules/xss/lib/xss.js");function r(t,e){return new n(e).process(t)}for(var o in(e=t.exports=r).filterXSS=r,e.FilterXSS=n,i)e[o]=i[o];for(var o in a)e[o]=a[o];"undefined"!=typeof window&&(window.filterXSS=t.exports),"undefined"!=typeof self&&"undefined"!=typeof DedicatedWorkerGlobalScope&&self instanceof DedicatedWorkerGlobalScope&&(self.filterXSS=t.exports)},"./node_modules/xss/lib/parser.js":function(t,e,s){var i=s("./node_modules/xss/lib/util.js");function a(t){var e=i.spaceIndex(t);if(-1===e)var s=t.slice(1,-1);else s=t.slice(1,e+1);return"/"===(s=i.trim(s).toLowerCase()).slice(0,1)&&(s=s.slice(1)),"/"===s.slice(-1)&&(s=s.slice(0,-1)),s}function n(t){return"</"===t.slice(0,2)}var r=/[^a-zA-Z0-9_:\.\-]/gim;function o(t,e){for(;e<t.length;e++){var s=t[e];if(" "!==s)return"="===s?e:-1}}function l(t,e){for(;e>0;e--){var s=t[e];if(" "!==s)return"="===s?e:-1}}function c(t){return function(t){return'"'===t[0]&&'"'===t[t.length-1]||"'"===t[0]&&"'"===t[t.length-1]}(t)?t.substr(1,t.length-2):t}e.parseTag=function(t,e,s){var i="",r=0,o=!1,l=!1,c=0,u=t.length,d="",f="";for(c=0;c<u;c++){var _=t.charAt(c);if(!1===o){if("<"===_){o=c;continue}}else if(!1===l){if("<"===_){i+=s(t.slice(r,c)),o=c,r=c;continue}if(">"===_){i+=s(t.slice(r,o)),d=a(f=t.slice(o,c+1)),i+=e(o,i.length,d,f,n(f)),r=c+1,o=!1;continue}if(('"'===_||"'"===_)&&"="===t.charAt(c-1)){l=_;continue}}else if(_===l){l=!1;continue}}return r<t.length&&(i+=s(t.substr(r))),i},e.parseAttr=function(t,e){var s=0,a=[],n=!1,u=t.length;function d(t,s){if(!((t=(t=i.trim(t)).replace(r,"").toLowerCase()).length<1)){var n=e(t,s||"");n&&a.push(n)}}for(var f=0;f<u;f++){var _,p=t.charAt(f);if(!1!==n||"="!==p)if(!1===n||f!==s||'"'!==p&&"'"!==p||"="!==t.charAt(f-1))if(/\s|\n|\t/.test(p)){if(t=t.replace(/\s|\n|\t/g," "),!1===n){if(-1===(_=o(t,f))){d(i.trim(t.slice(s,f))),n=!1,s=f+1;continue}f=_-1;continue}if(-1===(_=l(t,f-1))){d(n,c(i.trim(t.slice(s,f)))),n=!1,s=f+1;continue}}else;else{if(-1===(_=t.indexOf(p,f+1)))break;d(n,i.trim(t.slice(s+1,_))),n=!1,s=(f=_)+1}else n=t.slice(s,f),s=f+1}return s<t.length&&(!1===n?d(t.slice(s)):d(n,c(i.trim(t.slice(s))))),i.trim(a.join(" "))}},"./node_modules/xss/lib/util.js":function(t,e){t.exports={indexOf:function(t,e){var s,i;if(Array.prototype.indexOf)return t.indexOf(e);for(s=0,i=t.length;s<i;s++)if(t[s]===e)return s;return-1},forEach:function(t,e,s){var i,a;if(Array.prototype.forEach)return t.forEach(e,s);for(i=0,a=t.length;i<a;i++)e.call(s,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},spaceIndex:function(t){var e=/\s|\n|\t/.exec(t);return e?e.index:-1}}},"./node_modules/xss/lib/xss.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/index.js").FilterCSS,a=s("./node_modules/xss/lib/default.js"),n=s("./node_modules/xss/lib/parser.js"),r=n.parseTag,o=n.parseAttr,l=s("./node_modules/xss/lib/util.js");function c(t){return null==t}function u(t){(t=function(t){var e={};for(var s in t)e[s]=t[s];return e}(t||{})).stripIgnoreTag&&(t.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),t.onIgnoreTag=a.onIgnoreTagStripAll),t.whiteList=t.whiteList||a.whiteList,t.onTag=t.onTag||a.onTag,t.onTagAttr=t.onTagAttr||a.onTagAttr,t.onIgnoreTag=t.onIgnoreTag||a.onIgnoreTag,t.onIgnoreTagAttr=t.onIgnoreTagAttr||a.onIgnoreTagAttr,t.safeAttrValue=t.safeAttrValue||a.safeAttrValue,t.escapeHtml=t.escapeHtml||a.escapeHtml,this.options=t,!1===t.css?this.cssFilter=!1:(t.css=t.css||{},this.cssFilter=new i(t.css))}u.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var e=this.options,s=e.whiteList,i=e.onTag,n=e.onIgnoreTag,u=e.onTagAttr,d=e.onIgnoreTagAttr,f=e.safeAttrValue,_=e.escapeHtml,p=this.cssFilter;e.stripBlankChar&&(t=a.stripBlankChar(t)),e.allowCommentTag||(t=a.stripCommentTag(t));var m=!1;if(e.stripIgnoreTagBody){m=a.StripTagBody(e.stripIgnoreTagBody,n);n=m.onIgnoreTag}var v=r(t,(function(t,e,a,r,m){var v,h={sourcePosition:t,position:e,isClosing:m,isWhite:s.hasOwnProperty(a)};if(!c(v=i(a,r,h)))return v;if(h.isWhite){if(h.isClosing)return"</"+a+">";var g=function(t){var e=l.spaceIndex(t);if(-1===e)return{html:"",closing:"/"===t[t.length-2]};var s="/"===(t=l.trim(t.slice(e+1,-1)))[t.length-1];return s&&(t=l.trim(t.slice(0,-1))),{html:t,closing:s}}(r),b=s[a],w=o(g.html,(function(t,e){var s,i=-1!==l.indexOf(b,t);return c(s=u(a,t,e,i))?i?(e=f(a,t,e,p))?t+'="'+e+'"':t:c(s=d(a,t,e,i))?void 0:s:s}));r="<"+a;return w&&(r+=" "+w),g.closing&&(r+=" /"),r+=">"}return c(v=n(a,r,h))?_(r):v}),_);return m&&(v=m.remove(v)),v},t.exports=u},"./src/advanced-tools.js":function(t,e,s){"use strict";s.r(e);var i=s("vue"),a=s.n(i),n=s("./src/helper/base_hepler.js"),r={mixins:[n.a],data:function(){return{all_roles:advanced_tools.misc.all_roles,compatibility:advanced_tools.misc.compatibility,model:advanced_tools.model.two_factor,nonces:advanced_tools.nonces,endpoints:advanced_tools.endpoints,state:{on_saving:!1,waiting_save:!1,origin_state:!1}}},methods:{toggle:function(t){var e=this,s={};s.enabled=t,this.httpPostRequest("updateSettings",{data:JSON.stringify({settings:s,module:"auth"})},(function(){e.model.enabled=t,!0===t&&e.$nextTick((function(){e.rebindSUI(),e.bindUploader(),e.state.waiting_save=!1}))}))},updateSettings:function(){var t=this.model;delete t.email_subject,delete t.email_sender,delete t.email_body,this.state.origin_state=this.model.user_roles.length>0,this.httpPostRequest("updateSettings",{data:JSON.stringify({settings:t,module:"auth"})})},saveEmailTemplate:function(){var t={email_subject:this.model.email_subject,email_sender:this.model.email_sender,email_body:this.model.email_body};this.httpPostRequest("updateSettings",{data:JSON.stringify({module:"auth",settings:t})},(function(t){!0===t.success&&SUI.dialogs["edit-one-time-password-email"].hide()}))},sendTestEmail:function(){var t={email_subject:this.model.email_subject,email_sender:this.model.email_sender,email_body:this.model.email_body};this.httpPostRequest("sendTestEmail",t)},bindUploader:function(){var t=void 0,e=this;jQuery(".file-picker").click((function(){t||(t=wp.media.frames.file_frame=wp.media({title:"Choose an image file",button:{text:"Choose File"},multiple:!1,library:{type:["image"]}})).on("select",(function(){var s=t.state().get("selection").first().toJSON();jQuery.inArray(s.mime,["image/jpeg","image/png","image/gif"])>-1?e.model.custom_graphic_url=s.url:Defender.showNotification("error","Invalid image file type")})),t.open()}))}},mounted:function(){var t=this;this.$nextTick((function(){t.bindUploader()})),this.state.origin_state=this.model.user_roles.length>0}},o=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),l=Object(o.a)(r,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return!1===t.model.enabled?s("div",{staticClass:"sui-box",attrs:{id:"2factor"}},[s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t\t"+t._s(t.__("Two Factor Authentication"))+"\n\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-message"},[t.maybeHideBranding()?t._e():s("img",{staticClass:"sui-image",attrs:{src:t.assetUrl("assets/img/2factor-disabled.svg"),"aria-hidden":"true"}}),t._v(" "),s("div",{staticClass:"sui-message-content"},[s("p",[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Beef up your website’s security with two-factor authentication. Add an extra step in the login process so that users are required to enter a password and an app-generated passcode using their phone – the best protection against brute force attacks."))+"\n\t\t\t\t\t")]),t._v(" "),s("form",{attrs:{method:"post"},on:{submit:function(e){return e.preventDefault(),t.toggle(!0)}}},[s("submit-button",{attrs:{type:"submit",state:t.state,"css-class":"sui-button-blue activate"}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Activate"))+"\n\t\t\t\t\t\t")])],1)])])])]):s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t"+t._s(t.__("Two Factor Authentication"))+"\n\t\t\t")])]),t._v(" "),s("form",{staticClass:"advanced-settings-frm",attrs:{method:"post"},on:{submit:function(e){return e.preventDefault(),t.updateSettings(e)}}},[s("div",{staticClass:"sui-box-body"},[s("p",[t._v("\n\t\t\t\t\t"+t._s(t.__("Configure your two-factor authentication settings. Our recommendations are enabled by default."))+"\n\t\t\t\t")]),t._v(" "),!1!==t.compatibility?s("div",{staticClass:"sui-notice sui-notice-error"},[s("p",t._l(t.compatibility,(function(e){return s("span",[t._v("\n "+t._s(e)+"\n ")])})),0)]):t._e(),t._v(" "),t.state.origin_state?s("div",{staticClass:"sui-notice sui-notice-info"},[s("p",[s("strong",[t._v(t._s(t.__("Two-factor authentication is now active.")))]),t._v(" "+t._s(t.__("User roles with this feature enabled must visit their "))+"\n\t\t\t\t\t\t"),s("a",{attrs:{href:t.adminUrl("profile.php")}},[t._v(t._s(t.__("Profile page")))]),t._v(" "+t._s(t.__("to complete setup and sync their account with the Authenticator app."))+"\n\t\t\t\t\t")])]):s("div",{staticClass:"sui-notice sui-notice-warning"},[s("p",[s("strong",[t._v(t._s(t.__("Two-factor authentication is currently inactive.")))]),t._v(" "+t._s(t.__("Configure and save your settings to complete setup."))+"\n\t\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("User Roles"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Choose the user roles you want to enable two-factor authentication for. Users with those roles will then be required to use the Google Authenticator app to login."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-field-list"},[s("div",{staticClass:"sui-field-list-header"},[s("h3",{staticClass:"sui-field-list-title"},[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("User role"))+"\n\t\t\t\t\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-field-list-body"},t._l(t.all_roles,(function(e,i){return s("div",{staticClass:"sui-field-list-item"},[s("label",{staticClass:"sui-field-list-item-label",attrs:{for:"toggle_"+i},domProps:{innerHTML:t._s(e.name)}}),t._v(" "),s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.user_roles,expression:"model.user_roles"}],attrs:{type:"checkbox",id:"toggle_"+i},domProps:{value:i,checked:Array.isArray(t.model.user_roles)?t._i(t.model.user_roles,i)>-1:t.model.user_roles},on:{change:function(e){var s=t.model.user_roles,a=e.target,n=!!a.checked;if(Array.isArray(s)){var r=i,o=t._i(s,r);a.checked?o<0&&t.$set(t.model,"user_roles",s.concat([r])):o>-1&&t.$set(t.model,"user_roles",s.slice(0,o).concat(s.slice(o+1)))}else t.$set(t.model,"user_roles",n)}}}),t._v(" "),s("span",{staticClass:"sui-toggle-slider"})])])})),0)])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Lost Phone"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("If a user is unable to access their phone, you can allow an option to send the one time password to their registered email."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.lost_phone,expression:"model.lost_phone"}],staticClass:"toggle-checkbox",attrs:{role:"presentation",type:"checkbox",id:"lost_phone"},domProps:{checked:Array.isArray(t.model.lost_phone)?t._i(t.model.lost_phone,null)>-1:t.model.lost_phone},on:{change:function(e){var s=t.model.lost_phone,i=e.target,a=!!i.checked;if(Array.isArray(s)){var n=t._i(s,null);i.checked?n<0&&t.$set(t.model,"lost_phone",s.concat([null])):n>-1&&t.$set(t.model,"lost_phone",s.slice(0,n).concat(s.slice(n+1)))}else t.$set(t.model,"lost_phone",a)}}}),t._v(" "),s("span",{staticClass:"sui-toggle-slider"})]),t._v(" "),s("label",{staticClass:"sui-toggle-label",attrs:{for:"lost_phone"}},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.__("Enable lost phone option"))+"\n\t\t\t\t\t\t\t")])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Force Authentication"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("By default, two-factor authentication is optional for users. This setting forces users to activate two-factor."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.force_auth,expression:"model.force_auth"}],staticClass:"toggle-checkbox",attrs:{role:"presentation",type:"checkbox",name:"force_auth",id:"force_auth"},domProps:{checked:Array.isArray(t.model.force_auth)?t._i(t.model.force_auth,null)>-1:t.model.force_auth},on:{change:function(e){var s=t.model.force_auth,i=e.target,a=!!i.checked;if(Array.isArray(s)){var n=t._i(s,null);i.checked?n<0&&t.$set(t.model,"force_auth",s.concat([null])):n>-1&&t.$set(t.model,"force_auth",s.slice(0,n).concat(s.slice(n+1)))}else t.$set(t.model,"force_auth",a)}}}),t._v(" "),s("span",{staticClass:"sui-toggle-slider"})]),t._v(" "),s("label",{staticClass:"sui-toggle-label",attrs:{for:"force_auth"}},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.__("Force users to log in with two-factor authentication"))+"\n\t\t\t\t\t\t\t")]),t._v(" "),s("span",{staticClass:"sui-description sui-toggle-content"},[t._v("\n "+t._s(t.__("Note: Users will be forced to set up two-factor when they next login."))+"\n ")]),t._v(" "),s("div",{directives:[{name:"show",rawName:"v-show",value:!0===t.model.force_auth,expression:"model.force_auth===true"}],staticClass:"sui-border-frame sui-toggle-content",attrs:{id:"force_auth_roles"}},[s("strong",[t._v(t._s(t.__("User Roles")))]),t._v(" "),s("ul",t._l(t.all_roles,(function(e,i){return s("li",[s("label",{staticClass:"sui-checkbox",attrs:{for:"toggle_force_"+i}},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.force_auth_roles,expression:"model.force_auth_roles"}],attrs:{type:"checkbox",id:"toggle_force_"+i},domProps:{value:i,checked:Array.isArray(t.model.force_auth_roles)?t._i(t.model.force_auth_roles,i)>-1:t.model.force_auth_roles},on:{change:function(e){var s=t.model.force_auth_roles,a=e.target,n=!!a.checked;if(Array.isArray(s)){var r=i,o=t._i(s,r);a.checked?o<0&&t.$set(t.model,"force_auth_roles",s.concat([r])):o>-1&&t.$set(t.model,"force_auth_roles",s.slice(0,o).concat(s.slice(o+1)))}else t.$set(t.model,"force_auth_roles",n)}}}),t._v(" "),s("span",{attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",[t._v(t._s(e.name))])])])})),0),t._v(" "),s("strong",[t._v(t._s(t.__("Custom warning message")))]),t._v(" "),s("textarea",{directives:[{name:"model",rawName:"v-model",value:t.model.force_auth_mess,expression:"model.force_auth_mess"}],staticClass:"sui-form-control",attrs:{name:"force_auth_mess"},domProps:{value:t.model.force_auth_mess},on:{input:function(e){e.target.composing||t.$set(t.model,"force_auth_mess",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Note: This is shown in the users Profile area indicating they must use two-factor authentication."))+"\n ")])])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Custom Graphic"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("By default, Defender’s icon appears above the login fields. You can upload your own branding, or turn this feature off."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.custom_graphic,expression:"model.custom_graphic"}],staticClass:"toggle-checkbox",attrs:{role:"presentation",type:"checkbox",name:"custom_graphic",id:"custom_graphic"},domProps:{checked:Array.isArray(t.model.custom_graphic)?t._i(t.model.custom_graphic,null)>-1:t.model.custom_graphic},on:{change:function(e){var s=t.model.custom_graphic,i=e.target,a=!!i.checked;if(Array.isArray(s)){var n=t._i(s,null);i.checked?n<0&&t.$set(t.model,"custom_graphic",s.concat([null])):n>-1&&t.$set(t.model,"custom_graphic",s.slice(0,n).concat(s.slice(n+1)))}else t.$set(t.model,"custom_graphic",a)}}}),t._v(" "),s("span",{staticClass:"sui-toggle-slider"})]),t._v(" "),s("label",{staticClass:"sui-toggle-label",attrs:{for:"custom_graphic"}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Enable custom graphics above login fields"))+"\n\t\t\t\t\t\t")]),t._v(" "),s("div",{directives:[{name:"show",rawName:"v-show",value:!0===t.model.custom_graphic,expression:"model.custom_graphic === true"}],staticClass:"sui-border-frame sui-toggle-content"},[s("span",{staticClass:"sui-description"},[s("strong",[t._v(t._s(t.__("Custom Graphic")))]),t._v(" - "+t._s(t.__("For best results use a 168x168px JPG or PNG."))+"\n ")]),t._v(" "),s("div",{staticClass:"sui-upload"},[s("div",{staticClass:"sui-upload-image"},[s("img",{attrs:{id:"custom_graphicIMG",width:"40",height:"40",src:t.model.custom_graphic_url}}),t._v(" "),s("div",{staticClass:"sui-image-preview",style:{backgroundImage:"url("+t.model.custom_graphic_url+")"},attrs:{role:"button"}})]),t._v(" "),s("button",{staticClass:"sui-upload-button file-picker",attrs:{type:"button"}},[s("i",{staticClass:"sui-icon-upload-cloud",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Upload file"))+"\n\t\t\t\t\t\t\t\t")]),t._v(" "),t._m(0)])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Emails"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Customize the default copy for emails the two-factor feature sends to users."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-field-list"},[s("div",{staticClass:"sui-field-list-header"},[s("h3",{staticClass:"sui-field-list-title"},[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Email"))+"\n\t\t\t\t\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-field-list-body"},[s("div",{staticClass:"sui-field-list-item"},[s("label",{staticClass:"sui-field-list-item-label"},[t._v("\n\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("Lost phone one time password"))+"\n\t\t\t\t\t\t\t\t\t")]),t._v(" "),t._m(1)])])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("App Download"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Need the app? Here’s links to the official Google Authenticator iOS and Android apps."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("a",{attrs:{href:"https://itunes.apple.com/vn/app/google-authenticator/id388497605?mt=8"}},[s("img",{attrs:{src:t.assetUrl("assets/img/ios-download.svg")}})]),t._v(" "),s("a",{attrs:{href:"https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2"}},[s("img",{attrs:{src:t.assetUrl("assets/img/android-download.svg")}})])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Active Users"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Here’s a quick link to see which of your users have enabled two-factor authentication."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("a",{attrs:{href:t.adminUrl("users.php")}},[t._v(t._s(t.__("View users")))]),t._v(" "+t._s(t.__("who have enabled this feature."))+"\n\t\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Deactivate"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Disable two-factor authentication on your website."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("submit-button",{attrs:{"css-class":"sui-button-ghost",state:t.state},on:{click:function(e){return t.toggle(!1)}}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Deactivate"))+"\n\t\t\t\t\t\t")])],1)])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("div",{staticClass:"sui-actions-right"},[s("submit-button",{attrs:{"css-class":"sui-button-blue save-changes",type:"submit",state:t.state}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t"+t._s(t.__("Save Changes"))+"\n\t\t\t\t\t")])],1)])]),t._v(" "),s("div",{staticClass:"sui-dialog",attrs:{"aria-hidden":"true",tabindex:"-1",id:"edit-one-time-password-email"}},[s("div",{staticClass:"sui-dialog-overlay",attrs:{"data-a11y-dialog-hide":""}}),t._v(" "),s("div",{staticClass:"sui-dialog-content",attrs:{"aria-labelledby":"dialogTitle","aria-describedby":"dialogDescription",role:"dialog"}},[s("div",{staticClass:"sui-box",attrs:{role:"document"}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title",attrs:{id:"dialogTitle"}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Edit Email"))+"\n\t\t\t\t\t\t")]),t._v(" "),t._m(2)]),t._v(" "),s("form",{attrs:{method:"post"}},[s("div",{staticClass:"sui-box-body"},[s("p",{attrs:{id:"dialogDescription"}},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.__("This email sends a temporary passcode when the user can’t access their phone."))+"\n\t\t\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v("\n\t\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("Subject"))+"\n\t\t\t\t\t\t\t\t\t\t")]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.email_subject,expression:"model.email_subject"}],staticClass:"sui-form-control",attrs:{name:"subject",type:"text",id:"email_subject"},domProps:{value:t.model.email_subject},on:{input:function(e){e.target.composing||t.$set(t.model,"email_subject",e.target.value)}}})])]),t._v(" "),s("div",{staticClass:"sui-col"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v("\n\t\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("Sender"))+"\n\t\t\t\t\t\t\t\t\t\t")]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.email_sender,expression:"model.email_sender"}],staticClass:"sui-form-control",attrs:{name:"sender",type:"text",id:"email_sender"},domProps:{value:t.model.email_sender},on:{input:function(e){e.target.composing||t.$set(t.model,"email_sender",e.target.value)}}})])])]),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("label",{staticClass:"sui-label"},[t._v("\n\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("Body"))+"\n\t\t\t\t\t\t\t\t\t")]),t._v(" "),s("textarea",{directives:[{name:"model",rawName:"v-model",value:t.model.email_body,expression:"model.email_body"}],staticClass:"sui-form-control",attrs:{name:"body",rows:"8",id:"email_body"},domProps:{value:t.model.email_body},on:{input:function(e){e.target.composing||t.$set(t.model,"email_body",e.target.value)}}})])]),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("label",{staticClass:"sui-label"},[t._v("\n\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("Available variables"))+"\n\t\t\t\t\t\t\t\t\t")]),t._v(" "),s("span",{staticClass:"sui-tag"},[s("strong",{domProps:{textContent:t._s(t.__("{{passcode}}"))}})]),t._v(" "),s("span",{staticClass:"sui-tag"},[s("strong",{domProps:{textContent:t._s(t.__("{{display_name}}"))}})])])])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("div",{staticClass:"sui-flex-child-right"},[s("button",{staticClass:"sui-button sui-button-ghost",attrs:{type:"button","data-a11y-dialog-hide":"my-accessible-dialog"}},[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Cancel"))+"\n\t\t\t\t\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-actions-right"},[s("submit-button",{staticClass:"sui-button",attrs:{type:"button",state:t.state},on:{click:t.saveEmailTemplate}},[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Save Template"))+"\n\t\t\t\t\t\t\t\t")]),t._v(" "),s("submit-button",{staticClass:"sui-button sui-button-blue",attrs:{type:"button",state:t.state},on:{click:t.sendTestEmail}},[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Send Test"))+"\n\t\t\t\t\t\t\t\t")])],1)])])])])])])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"sui-upload-file"},[e("span")])},function(){var t=this.$createElement,e=this._self._c||t;return e("button",{staticClass:"sui-button-icon",attrs:{type:"button","data-a11y-dialog-show":"edit-one-time-password-email"}},[e("i",{staticClass:"sui-icon-pencil",attrs:{"aria-hidden":"true"}})])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"sui-actions-right"},[e("button",{staticClass:"sui-dialog-close",attrs:{"data-a11y-dialog-hide":"","aria-label":"Close this dialog window"}})])}],!1,null,null,null).exports,c={mixins:[n.a],name:"mask-login",data:function(){return{misc:advanced_tools.misc,model:advanced_tools.model.mask_login,nonces:advanced_tools.nonces,endpoints:advanced_tools.endpoints,state:{on_saving:!1,original_state:!1}}},watch:{"model.mask_url":function(t){t=this.convertToSlug(t),this.model.mask_url=t,this.misc.new_login_url=this.misc.home_url+t,this.state.waiting_save=!0},"model.redirect_traffic_url":function(t){t=this.convertToSlug(t),this.model.redirect_traffic_url=t,this.misc.login_redirect_url=this.misc.home_url+t}},mounted:function(){this.state.original_state=this.model.mask_url.length>0},methods:{toggle:function(t){var e=this,s={};s.enabled=t,this.httpPostRequest("updateSettings",{data:JSON.stringify({settings:s,module:"mask-login"})},(function(){e.model.enabled=t}))},updateSettings:function(){var t=this.model,e=this;this.httpPostRequest("updateSettings",{data:JSON.stringify({settings:t,module:"mask-login"})},(function(){e.state.original_state=e.model.mask_url.length>0}))},convertToSlug:function(t){return t.toLowerCase().replace(/[^\w-/.]+/g,"")}},computed:{new_mask_login:function(){return this.misc.new_login_url},login_redirect_url:function(){return this.misc.login_redirect_url}}},u=Object(o.a)(c,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return!1===t.model.enabled?s("div",{staticClass:"sui-box",attrs:{id:"mask-login"}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t"+t._s(t.__("Mask Login Area"))+"\n\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-message"},[t.maybeHideBranding()?t._e():s("img",{staticClass:"sui-image",attrs:{src:t.assetUrl("assets/img/2factor-disabled.svg"),"aria-hidden":"true"}}),t._v(" "),s("div",{staticClass:"sui-message-content"},[s("p",[t._v("\n\t\t\t\t\t"+t._s(t.__("Change the location of WordPress's default login area, making it harder for automated bots to find and also more convenient for your users."))+"\n\t\t\t\t")]),t._v(" "),s("form",{attrs:{method:"post"}},[s("submit-button",{attrs:{type:"button","css-class":"sui-button-blue activate",state:t.state},on:{click:function(e){return t.toggle(!0)}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Activate"))+"\n\t\t\t\t\t")])],1)])])]):s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t"+t._s(t.__("Mask Login Area"))+"\n\t\t\t")])]),t._v(" "),s("form",{attrs:{method:"post"},on:{submit:function(e){return e.preventDefault(),t.updateSettings(e)}}},[s("div",{staticClass:"sui-box-body"},[s("p",[t._v("\n\t\t\t\t\t"+t._s(t.__("Change your default WordPress login URL to hide your login area from hackers and bots."))+"\n\t\t\t\t")]),t._v(" "),!1!==t.misc.compatibility?s("div",{staticClass:"sui-notice sui-notice-error"},[s("p",t._l(t.misc.compatibility,(function(e){return s("span",[t._v("\n "+t._s(e)+"\n ")])})),0)]):t._e(),t._v(" "),!1===t.state.original_state?s("div",{staticClass:"sui-notice sui-notice-warning"},[s("p",[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Masking is currently inactive. Choose your URL and save your settings to finish setup."))+"\n\t\t\t\t\t")])]):s("div",{staticClass:"sui-notice sui-notice-info"},[s("p",[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Masking is currently active at "))+" "),s("strong",{domProps:{textContent:t._s(t.misc.new_login_url)}})])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Masking URL"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Choose the new URL slug where users of your website will now navigate to log in or register."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("You can specify any URLs. For security reasons, less obvious URLs are recommended as they are harder for bots to guess."))+"\n ")]),t._v(" "),s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.__("New Login URL"))+"\n\t\t\t\t\t\t\t")]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.mask_url,expression:"model.mask_url"}],staticClass:"sui-form-control",attrs:{type:"text",name:"mask_url",placeholder:"E.g. dashboard"},domProps:{value:t.model.mask_url},on:{input:function(e){e.target.composing||t.$set(t.model,"mask_url",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Users will login at"))+" "),s("a",{attrs:{href:t.new_mask_login}},[t._v(t._s(t.new_mask_login))]),t._v(". "+t._s(t.__("Note: Registration and Password Reset emails have hardcoded URLs in them. We will update them automatically to match your new login URL"))+"\n ")])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Redirect traffic"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("With this feature you can send visitors and bots who try to visit the default Wordpress login URLs to a separate URL to avoid 404s."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.redirect_traffic,expression:"model.redirect_traffic"}],staticClass:"toggle-checkbox",attrs:{role:"presentation",type:"checkbox",name:"redirect_traffic",id:"redirect_traffic","true-value":!0,"false-value":!1},domProps:{checked:Array.isArray(t.model.redirect_traffic)?t._i(t.model.redirect_traffic,null)>-1:t.model.redirect_traffic},on:{change:function(e){var s=t.model.redirect_traffic,i=e.target,a=!!i.checked;if(Array.isArray(s)){var n=t._i(s,null);i.checked?n<0&&t.$set(t.model,"redirect_traffic",s.concat([null])):n>-1&&t.$set(t.model,"redirect_traffic",s.slice(0,n).concat(s.slice(n+1)))}else t.$set(t.model,"redirect_traffic",a)}}}),t._v(" "),s("span",{staticClass:"sui-toggle-slider"})]),t._v(" "),s("label",{staticClass:"sui-toggle-label",attrs:{for:"redirect_traffic"}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Enable 404 redirection"))+"\n\t\t\t\t\t\t")]),t._v(" "),s("div",{directives:[{name:"show",rawName:"v-show",value:!0===t.model.redirect_traffic,expression:"model.redirect_traffic===true"}],staticClass:"sui-border-frame sui-toggle-content",attrs:{id:"redirectTrafficContainer"}},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Redirection URL")))]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.redirect_traffic_url,expression:"model.redirect_traffic_url"}],staticClass:"sui-form-control",attrs:{placeholder:"E.g. 404-error",type:"text",name:"redirect_traffic_url"},domProps:{value:t.model.redirect_traffic_url},on:{input:function(e){e.target.composing||t.$set(t.model,"redirect_traffic_url",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Visitors who visit the default login URLs will be redirected to"))+" "),s("a",{attrs:{href:t.login_redirect_url}},[t._v(t._s(t.login_redirect_url))])])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Deactivate"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Disable login area masking and return to the default wp-admin and wp-login URLS."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("submit-button",{attrs:{type:"button","css-class":"sui-button-ghost",state:t.state},on:{click:function(e){return t.toggle(!1)}}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Deactivate"))+"\n\t\t\t\t\t\t")])],1)])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("submit-button",{attrs:{type:"submit",state:t.state,"css-class":"sui-button-blue save-changes"}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t"+t._s(t.__("Save Changes"))+"\n\t\t\t\t")])],1)])])}),[],!1,null,null,null).exports,d={mixins:[n.a],components:{"two-factors":l,"mask-login":u},data:function(){return{state:{on_saving:!1},whitelabel:defender.whitelabel,is_free:defender.is_free,view:""}},created:function(){var t=new URLSearchParams(window.location.search).get("view");null===t&&(t="two-factor-auth"),this.view=t},watch:{view:function(t,e){history.replaceState({},null,this.adminUrl()+"admin.php?page=wdf-advanced-tools&view="+this.view)}},mounted:function(){self=this,jQuery(".sui-mobile-nav").change((function(){self.view=jQuery(this).val()}))}},f=Object(o.a)(d,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-wrap",class:[t.maybeHighContrast()]},[s("div",{staticClass:"advanced-tools"},[s("div",{staticClass:"sui-header"},[s("h1",{staticClass:"sui-header-title"},[t._v(t._s(t.__("Advanced Tools")))]),t._v(" "),s("doc-link",{attrs:{link:"https://premium.wpmudev.org/docs/wpmu-dev-plugins/defender/#advanced-tools"}})],1),t._v(" "),s("div",{staticClass:"sui-row-with-sidenav"},[s("div",{staticClass:"sui-sidenav"},[s("ul",{staticClass:"sui-vertical-tabs sui-sidenav-hide-md"},[s("li",{staticClass:"sui-vertical-tab",class:{current:"two-factor-auth"===t.view}},[s("a",{attrs:{"data-tab":"login_lockout",href:"#2factor"},on:{click:function(e){e.preventDefault(),t.view="two-factor-auth"}}},[t._v(t._s(t.__("Two-Factor Auth")))])]),t._v(" "),s("li",{staticClass:"sui-vertical-tab",class:{current:"mask-login"===t.view}},[s("a",{attrs:{"data-tab":"notfound_lockout",href:"#mask-login"},on:{click:function(e){e.preventDefault(),t.view="mask-login"}}},[t._v(t._s(t.__("Mask Login Area")))])])]),t._v(" "),s("div",{staticClass:"sui-sidenav-hide-lg"},[s("select",{staticClass:"sui-mobile-nav"},[s("option",{attrs:{value:"two-factor-auth"}},[t._v(t._s(t.__("Two-Factor Auth")))]),t._v(" "),s("option",{attrs:{value:"mask-login"}},[t._v(t._s(t.__("Mask Login Area")))])])])]),t._v(" "),s("two-factors",{directives:[{name:"show",rawName:"v-show",value:"two-factor-auth"===t.view,expression:"view==='two-factor-auth'"}]}),t._v(" "),s("mask-login",{directives:[{name:"show",rawName:"v-show",value:"mask-login"===t.view,expression:"view==='mask-login'"}]})],1)]),t._v(" "),s("app-footer")],1)}),[],!1,null,null,null).exports,_=s("./src/component/submit-button.vue"),p=s("./src/component/footer.vue"),m=s("./src/component/doc-link.vue");a.a.component("app-footer",p.a),a.a.component("doc-link",m.a),a.a.component("submit-button",_.a);new a.a({el:"#defender",components:{advanced_tools:f},render:function(t){return t(f)}})},"./src/component/doc-link.vue":function(t,e,s){"use strict";var i={mixins:[s("./src/helper/base_hepler.js").a],name:"doc-link",props:["link"],data:function(){return{whitelabel:defender.whitelabel}}},a=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this.$createElement,e=this._self._c||t;return!1===this.whitelabel.hide_doc_link?e("div",{staticClass:"sui-actions-right"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:this.link,target:"_blank"}},[e("i",{staticClass:"sui-icon-academy"}),this._v(" "+this._s(this.__("View Documentation"))+"\n ")])]):this._e()}),[],!1,null,null,null);e.a=n.exports},"./src/component/footer.vue":function(t,e,s){"use strict";var i={data:function(){return{whitelabel:defender.whitelabel,is_free:defender.is_free}}},a=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",[!0===t.whitelabel.change_footer?s("div",{staticClass:"sui-footer"},[t._v("\n "+t._s(t.whitelabel.footer_text)+"\n ")]):s("div",{staticClass:"sui-footer"},[t._v("Made with "),s("i",{staticClass:"sui-icon-heart"}),t._v(" by WPMU DEV")]),t._v(" "),!1===t.whitelabel.hide_doc_link?s("div",[t.is_free?s("ul",{staticClass:"sui-footer-nav"},[t._m(0),t._v(" "),t._m(1),t._v(" "),t._m(2),t._v(" "),t._m(3),t._v(" "),t._m(4),t._v(" "),t._m(5),t._v(" "),t._m(6),t._v(" "),t._m(7)]):s("ul",{staticClass:"sui-footer-nav"},[t._m(8),t._v(" "),t._m(9),t._v(" "),t._m(10),t._v(" "),t._m(11),t._v(" "),t._m(12),t._v(" "),t._m(13),t._v(" "),t._m(14),t._v(" "),t._m(15)]),t._v(" "),t._m(16)]):t._e()])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://profiles.wordpress.org/wpmudev#content-plugins",target:"_blank"}},[this._v("Free\n Plugins")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/features/",target:"_blank"}},[this._v("Membership")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://wordpress.org/support/plugin/plugin-name",target:"_blank"}},[this._v("Support")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/projects/category/plugins/",target:"_blank"}},[this._v("Plugins")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/support/",target:"_blank"}},[this._v("Support")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/community/",target:"_blank"}},[this._v("Community")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ul",{staticClass:"sui-footer-social"},[s("li",[s("a",{attrs:{href:"https://www.facebook.com/wpmudev",target:"_blank"}},[s("i",{staticClass:"sui-icon-social-facebook",attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Facebook")])])]),t._v(" "),s("li",[s("a",{attrs:{href:"https://twitter.com/wpmudev",target:"_blank"}},[s("i",{staticClass:"sui-icon-social-twitter",attrs:{"aria-hidden":"true"}})]),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Twitter")])]),t._v(" "),s("li",[s("a",{attrs:{href:"https://www.instagram.com/wpmu_dev/",target:"_blank"}},[s("i",{staticClass:"sui-icon-instagram",attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Instagram")])])])])}],!1,null,null,null);e.a=n.exports},"./src/component/submit-button.vue":function(t,e,s){"use strict";var i={name:"submit-button",props:["id","state","text","css-class","type"],computed:{getClass:function(){return"sui-button "+this.cssClass}}},a=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("button",{staticClass:"sui-button",class:[t.getClass,{"sui-button-onload":t.state.on_saving}],attrs:{id:t.id,type:t.type,disabled:t.state.on_saving},on:{click:function(e){return t.$emit("click")}}},[s("span",{staticClass:"sui-loading-text"},[t._t("default")],2),t._v(" "),s("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])}),[],!1,null,null,null);e.a=n.exports},"./src/helper/base_hepler.js":function(t,e,s){"use strict";var i=s("./node_modules/xss/lib/index.js"),a=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var s=[],i=!0,a=!1,n=void 0;try{for(var r,o=t[Symbol.iterator]();!(i=(r=o.next()).done)&&(s.push(r.value),!e||s.length!==e);i=!0);}catch(t){a=!0,n=t}finally{try{!i&&o.return&&o.return()}finally{if(a)throw n}}return s}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")},n=wp.i18n,r={whiteList:{a:["href","title","target"],span:["class"],strong:["*"]},safeAttrValue:function(t,e,s,a){return"a"===t&&"href"===e&&"%s"===s?"%s":Object(i.safeAttrValue)(t,e,s,a)}},o=new i.FilterXSS(r),l=[];e.a={methods:{__:function(t){var e=n.__(t,"wpdef");return o.process(e)},xss:function(t){return o.process(t)},vsprintf:function(t){return n.sprintf.apply(null,arguments)},siteUrl:function(t){return void 0!==t?defender.site_url+t:defender.site_url},adminUrl:function(t){return void 0!==t?defender.admin_url+t:defender.admin_url},assetUrl:function(t){return defender.defender_url+t},maybeHighContrast:function(){return{"sui-color-accessible":!0===defender.misc.high_contrast}},maybeHideBranding:function(){return defender.whitelabel.hide_branding},campaign_url:function(t){return"https://premium.wpmudev.org/project/wp-defender/?utm_source=defender&utm_medium=plugin&utm_campaign="+t},httpRequest:function(t,e,s,i,a){var n=this;void 0===a&&(this.state.on_saving=!0);var r=ajaxurl+"?action="+this.endpoints[e]+"&_wpnonce="+this.nonces[e],o=jQuery.ajax({url:r,method:t,data:s,success:function(t){var e=t.data;n.state.on_saving=!1,void 0!==e&&void 0!==e.message&&(t.success?Defender.showNotification("success",e.message):Defender.showNotification("error",e.message)),void 0!==i&&i(t)}});l.push(o)},httpGetRequest:function(t,e,s,i){this.httpRequest("get",t,e,s,i)},httpPostRequest:function(t,e,s,i){this.httpRequest("post",t,e,s,i)},abortAllRequests:function(){for(var t=0;t<l.length;t++)l[t].abort()},getQueryStringParams:function(t){return t?(/^[?#]/.test(t)?t.slice(1):t).split("&").reduce((function(t,e){var s=e.split("="),i=a(s,2),n=i[0],r=i[1];return t[n]=r?decodeURIComponent(r.replace(/\+/g," ")):"",t}),{}):{}},rebindSUI:function(){jQuery("select:not([multiple])").each((function(){SUI.suiSelect(this)})),jQuery(".sui-accordion").each((function(){SUI.suiAccordion(this)}));var t=jQuery(".sui-wrap");SUI.dialogs={},jQuery(".sui-dialog").each((function(){SUI.dialogs[this.id]=new A11yDialog(this,t)}))}}}},vue:function(t,e){t.exports=Vue}});
1
+ !function(e){var t=window.webpackHotUpdate;window.webpackHotUpdate=function(e,s){!function(e,t){if(!x[e]||!y[e])return;for(var s in y[e]=!1,t)Object.prototype.hasOwnProperty.call(t,s)&&(p[s]=t[s]);0==--v&&0===g&&S()}(e,s),t&&t(e,s)};var s,i=!0,r="b39acf366faa9b224a1a",a={},o=[],n=[];function l(e){var t=P[e];if(!t)return $;var i=function(i){return t.hot.active?(P[i]?-1===P[i].parents.indexOf(e)&&P[i].parents.push(e):(o=[e],s=i),-1===t.children.indexOf(i)&&t.children.push(i)):(console.warn("[HMR] unexpected require("+i+") from disposed module "+e),o=[]),$(i)},r=function(e){return{configurable:!0,enumerable:!0,get:function(){return $[e]},set:function(t){$[e]=t}}};for(var a in $)Object.prototype.hasOwnProperty.call($,a)&&"e"!==a&&"t"!==a&&Object.defineProperty(i,a,r(a));return i.e=function(e){return"ready"===u&&_("prepare"),g++,$.e(e).then(t,(function(e){throw t(),e}));function t(){g--,"prepare"===u&&(b[e]||k(e),0===g&&0===v&&S())}},i.t=function(e,t){return 1&t&&(e=i(e)),$.t(e,-2&t)},i}function c(t){var i={_acceptedDependencies:{},_declinedDependencies:{},_selfAccepted:!1,_selfDeclined:!1,_selfInvalidated:!1,_disposeHandlers:[],_main:s!==t,active:!0,accept:function(e,t){if(void 0===e)i._selfAccepted=!0;else if("function"==typeof e)i._selfAccepted=e;else if("object"==typeof e)for(var s=0;s<e.length;s++)i._acceptedDependencies[e[s]]=t||function(){};else i._acceptedDependencies[e]=t||function(){}},decline:function(e){if(void 0===e)i._selfDeclined=!0;else if("object"==typeof e)for(var t=0;t<e.length;t++)i._declinedDependencies[e[t]]=!0;else i._declinedDependencies[e]=!0},dispose:function(e){i._disposeHandlers.push(e)},addDisposeHandler:function(e){i._disposeHandlers.push(e)},removeDisposeHandler:function(e){var t=i._disposeHandlers.indexOf(e);t>=0&&i._disposeHandlers.splice(t,1)},invalidate:function(){switch(this._selfInvalidated=!0,u){case"idle":(p={})[t]=e[t],_("ready");break;case"ready":j(t);break;case"prepare":case"check":case"dispose":case"apply":(f=f||[]).push(t)}},check:C,apply:A,status:function(e){if(!e)return u;d.push(e)},addStatusHandler:function(e){d.push(e)},removeStatusHandler:function(e){var t=d.indexOf(e);t>=0&&d.splice(t,1)},data:a[t]};return s=void 0,i}var d=[],u="idle";function _(e){u=e;for(var t=0;t<d.length;t++)d[t].call(null,e)}var m,p,h,f,v=0,g=0,b={},y={},x={};function w(e){return+e+""===e?+e:e}function C(e){if("idle"!==u)throw new Error("check() is only allowed in idle status");return i=e,_("check"),(t=1e4,t=t||1e4,new Promise((function(e,s){if("undefined"==typeof XMLHttpRequest)return s(new Error("No browser support"));try{var i=new XMLHttpRequest,a=$.p+""+r+".hot-update.json";i.open("GET",a,!0),i.timeout=t,i.send(null)}catch(e){return s(e)}i.onreadystatechange=function(){if(4===i.readyState)if(0===i.status)s(new Error("Manifest request to "+a+" timed out."));else if(404===i.status)e();else if(200!==i.status&&304!==i.status)s(new Error("Manifest request to "+a+" failed."));else{try{var t=JSON.parse(i.responseText)}catch(e){return void s(e)}e(t)}}}))).then((function(e){if(!e)return _(T()?"ready":"idle"),null;y={},b={},x=e.c,h=e.h,_("prepare");var t=new Promise((function(e,t){m={resolve:e,reject:t}}));p={};return k(0),"prepare"===u&&0===g&&0===v&&S(),t}));var t}function k(e){x[e]?(y[e]=!0,v++,function(e){var t=document.createElement("script");t.charset="utf-8",t.src=$.p+""+e+"."+r+".hot-update.js",document.head.appendChild(t)}(e)):b[e]=!0}function S(){_("ready");var e=m;if(m=null,e)if(i)Promise.resolve().then((function(){return A(i)})).then((function(t){e.resolve(t)}),(function(t){e.reject(t)}));else{var t=[];for(var s in p)Object.prototype.hasOwnProperty.call(p,s)&&t.push(w(s));e.resolve(t)}}function A(t){if("ready"!==u)throw new Error("apply() is only allowed in ready status");return function t(i){var n,l,c,d,u;function m(e){for(var t=[e],s={},i=t.map((function(e){return{chain:[e],id:e}}));i.length>0;){var r=i.pop(),a=r.id,o=r.chain;if((d=P[a])&&(!d.hot._selfAccepted||d.hot._selfInvalidated)){if(d.hot._selfDeclined)return{type:"self-declined",chain:o,moduleId:a};if(d.hot._main)return{type:"unaccepted",chain:o,moduleId:a};for(var n=0;n<d.parents.length;n++){var l=d.parents[n],c=P[l];if(c){if(c.hot._declinedDependencies[a])return{type:"declined",chain:o.concat([l]),moduleId:a,parentId:l};-1===t.indexOf(l)&&(c.hot._acceptedDependencies[a]?(s[l]||(s[l]=[]),v(s[l],[a])):(delete s[l],t.push(l),i.push({chain:o.concat([l]),id:l})))}}}}return{type:"accepted",moduleId:e,outdatedModules:t,outdatedDependencies:s}}function v(e,t){for(var s=0;s<t.length;s++){var i=t[s];-1===e.indexOf(i)&&e.push(i)}}T();var g={},b=[],y={},C=function(){console.warn("[HMR] unexpected require("+S.moduleId+") to disposed module")};for(var k in p)if(Object.prototype.hasOwnProperty.call(p,k)){var S;u=w(k),S=p[k]?m(u):{type:"disposed",moduleId:k};var A=!1,j=!1,E=!1,O="";switch(S.chain&&(O="\nUpdate propagation: "+S.chain.join(" -> ")),S.type){case"self-declined":i.onDeclined&&i.onDeclined(S),i.ignoreDeclined||(A=new Error("Aborted because of self decline: "+S.moduleId+O));break;case"declined":i.onDeclined&&i.onDeclined(S),i.ignoreDeclined||(A=new Error("Aborted because of declined dependency: "+S.moduleId+" in "+S.parentId+O));break;case"unaccepted":i.onUnaccepted&&i.onUnaccepted(S),i.ignoreUnaccepted||(A=new Error("Aborted because "+u+" is not accepted"+O));break;case"accepted":i.onAccepted&&i.onAccepted(S),j=!0;break;case"disposed":i.onDisposed&&i.onDisposed(S),E=!0;break;default:throw new Error("Unexception type "+S.type)}if(A)return _("abort"),Promise.reject(A);if(j)for(u in y[u]=p[u],v(b,S.outdatedModules),S.outdatedDependencies)Object.prototype.hasOwnProperty.call(S.outdatedDependencies,u)&&(g[u]||(g[u]=[]),v(g[u],S.outdatedDependencies[u]));E&&(v(b,[S.moduleId]),y[u]=C)}var I,D=[];for(l=0;l<b.length;l++)u=b[l],P[u]&&P[u].hot._selfAccepted&&y[u]!==C&&!P[u].hot._selfInvalidated&&D.push({module:u,parents:P[u].parents.slice(),errorHandler:P[u].hot._selfAccepted});_("dispose"),Object.keys(x).forEach((function(e){!1===x[e]&&function(e){delete installedChunks[e]}(e)}));var H,R,N=b.slice();for(;N.length>0;)if(u=N.pop(),d=P[u]){var U={},L=d.hot._disposeHandlers;for(c=0;c<L.length;c++)(n=L[c])(U);for(a[u]=U,d.hot.active=!1,delete P[u],delete g[u],c=0;c<d.children.length;c++){var q=P[d.children[c]];q&&((I=q.parents.indexOf(u))>=0&&q.parents.splice(I,1))}}for(u in g)if(Object.prototype.hasOwnProperty.call(g,u)&&(d=P[u]))for(R=g[u],c=0;c<R.length;c++)H=R[c],(I=d.children.indexOf(H))>=0&&d.children.splice(I,1);_("apply"),void 0!==h&&(r=h,h=void 0);for(u in p=void 0,y)Object.prototype.hasOwnProperty.call(y,u)&&(e[u]=y[u]);var z=null;for(u in g)if(Object.prototype.hasOwnProperty.call(g,u)&&(d=P[u])){R=g[u];var M=[];for(l=0;l<R.length;l++)if(H=R[l],n=d.hot._acceptedDependencies[H]){if(-1!==M.indexOf(n))continue;M.push(n)}for(l=0;l<M.length;l++){n=M[l];try{n(R)}catch(e){i.onErrored&&i.onErrored({type:"accept-errored",moduleId:u,dependencyId:R[l],error:e}),i.ignoreErrored||z||(z=e)}}}for(l=0;l<D.length;l++){var V=D[l];u=V.module,o=V.parents,s=u;try{$(u)}catch(e){if("function"==typeof V.errorHandler)try{V.errorHandler(e)}catch(t){i.onErrored&&i.onErrored({type:"self-accept-error-handler-errored",moduleId:u,error:t,originalError:e}),i.ignoreErrored||z||(z=t),z||(z=e)}else i.onErrored&&i.onErrored({type:"self-accept-errored",moduleId:u,error:e}),i.ignoreErrored||z||(z=e)}}if(z)return _("fail"),Promise.reject(z);if(f)return t(i).then((function(e){return b.forEach((function(t){e.indexOf(t)<0&&e.push(t)})),e}));return _("idle"),new Promise((function(e){e(b)}))}(t=t||{})}function T(){if(f)return p||(p={}),f.forEach(j),f=void 0,!0}function j(t){Object.prototype.hasOwnProperty.call(p,t)||(p[t]=e[t])}var P={};function $(t){if(P[t])return P[t].exports;var s=P[t]={i:t,l:!1,exports:{},hot:c(t),parents:(n=o,o=[],n),children:[]};return e[t].call(s.exports,s,s.exports,l(t)),s.l=!0,s.exports}$.m=e,$.c=P,$.d=function(e,t,s){$.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:s})},$.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},$.t=function(e,t){if(1&t&&(e=$(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var s=Object.create(null);if($.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)$.d(s,i,function(t){return e[t]}.bind(null,i));return s},$.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return $.d(t,"a",t),t},$.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},$.p="",$.h=function(){return r},l("./src/advanced-tools.js")($.s="./src/advanced-tools.js")}({"./node_modules/cssfilter/lib/css.js":function(e,t,s){var i=s("./node_modules/cssfilter/lib/default.js"),r=s("./node_modules/cssfilter/lib/parser.js");s("./node_modules/cssfilter/lib/util.js");function a(e){return null==e}function o(e){(e=function(e){var t={};for(var s in e)t[s]=e[s];return t}(e||{})).whiteList=e.whiteList||i.whiteList,e.onAttr=e.onAttr||i.onAttr,e.onIgnoreAttr=e.onIgnoreAttr||i.onIgnoreAttr,e.safeAttrValue=e.safeAttrValue||i.safeAttrValue,this.options=e}o.prototype.process=function(e){if(!(e=(e=e||"").toString()))return"";var t=this.options,s=t.whiteList,i=t.onAttr,o=t.onIgnoreAttr,n=t.safeAttrValue;return r(e,(function(e,t,r,l,c){var d=s[r],u=!1;if(!0===d?u=d:"function"==typeof d?u=d(l):d instanceof RegExp&&(u=d.test(l)),!0!==u&&(u=!1),l=n(r,l)){var _,m={position:t,sourcePosition:e,source:c,isWhite:u};return u?a(_=i(r,l,m))?r+":"+l:_:a(_=o(r,l,m))?void 0:_}}))},e.exports=o},"./node_modules/cssfilter/lib/default.js":function(e,t){function s(){var e={"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1};return e}var i=/javascript\s*\:/gim;t.whiteList=s(),t.getDefaultWhiteList=s,t.onAttr=function(e,t,s){},t.onIgnoreAttr=function(e,t,s){},t.safeAttrValue=function(e,t){return i.test(t)?"":t}},"./node_modules/cssfilter/lib/index.js":function(e,t,s){var i=s("./node_modules/cssfilter/lib/default.js"),r=s("./node_modules/cssfilter/lib/css.js");for(var a in(t=e.exports=function(e,t){return new r(t).process(e)}).FilterCSS=r,i)t[a]=i[a];"undefined"!=typeof window&&(window.filterCSS=e.exports)},"./node_modules/cssfilter/lib/parser.js":function(e,t,s){var i=s("./node_modules/cssfilter/lib/util.js");e.exports=function(e,t){";"!==(e=i.trimRight(e))[e.length-1]&&(e+=";");var s=e.length,r=!1,a=0,o=0,n="";function l(){if(!r){var s=i.trim(e.slice(a,o)),l=s.indexOf(":");if(-1!==l){var c=i.trim(s.slice(0,l)),d=i.trim(s.slice(l+1));if(c){var u=t(a,n.length,c,d,s);u&&(n+=u+"; ")}}}a=o+1}for(;o<s;o++){var c=e[o];if("/"===c&&"*"===e[o+1]){var d=e.indexOf("*/",o+2);if(-1===d)break;a=(o=d+1)+1,r=!1}else"("===c?r=!0:")"===c?r=!1:";"===c?r||l():"\n"===c&&l()}return i.trim(n)}},"./node_modules/cssfilter/lib/util.js":function(e,t){e.exports={indexOf:function(e,t){var s,i;if(Array.prototype.indexOf)return e.indexOf(t);for(s=0,i=e.length;s<i;s++)if(e[s]===t)return s;return-1},forEach:function(e,t,s){var i,r;if(Array.prototype.forEach)return e.forEach(t,s);for(i=0,r=e.length;i<r;i++)t.call(s,e[i],i,e)},trim:function(e){return String.prototype.trim?e.trim():e.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(e){return String.prototype.trimRight?e.trimRight():e.replace(/(\s*$)/g,"")}}},"./node_modules/vue-loader/lib/runtime/componentNormalizer.js":function(e,t,s){"use strict";function i(e,t,s,i,r,a,o,n){var l,c="function"==typeof e?e.options:e;if(t&&(c.render=t,c.staticRenderFns=s,c._compiled=!0),i&&(c.functional=!0),a&&(c._scopeId="data-v-"+a),o?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(o)},c._ssrRegister=l):r&&(l=n?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(c.functional){c._injectStyles=l;var d=c.render;c.render=function(e,t){return l.call(t),d(e,t)}}else{var u=c.beforeCreate;c.beforeCreate=u?[].concat(u,l):[l]}return{exports:e,options:c}}s.d(t,"a",(function(){return i}))},"./node_modules/xss/lib/default.js":function(e,t,s){var i=s("./node_modules/cssfilter/lib/index.js").FilterCSS,r=s("./node_modules/cssfilter/lib/index.js").getDefaultWhiteList,a=s("./node_modules/xss/lib/util.js");function o(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]}}var n=new i;function l(e){return e.replace(c,"&lt;").replace(d,"&gt;")}var c=/</g,d=/>/g,u=/"/g,_=/&quot;/g,m=/&#([a-zA-Z0-9]*);?/gim,p=/&colon;?/gim,h=/&newline;?/gim,f=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi,v=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,g=/u\s*r\s*l\s*\(.*/gi;function b(e){return e.replace(u,"&quot;")}function y(e){return e.replace(_,'"')}function x(e){return e.replace(m,(function(e,t){return"x"===t[0]||"X"===t[0]?String.fromCharCode(parseInt(t.substr(1),16)):String.fromCharCode(parseInt(t,10))}))}function w(e){return e.replace(p,":").replace(h," ")}function C(e){for(var t="",s=0,i=e.length;s<i;s++)t+=e.charCodeAt(s)<32?" ":e.charAt(s);return a.trim(t)}function k(e){return e=C(e=w(e=x(e=y(e))))}function S(e){return e=l(e=b(e))}var A=/<!--[\s\S]*?-->/g;t.whiteList={a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]},t.getDefaultWhiteList=o,t.onTag=function(e,t,s){},t.onIgnoreTag=function(e,t,s){},t.onTagAttr=function(e,t,s){},t.onIgnoreTagAttr=function(e,t,s){},t.safeAttrValue=function(e,t,s,i){if(s=k(s),"href"===t||"src"===t){if("#"===(s=a.trim(s)))return"#";if("http://"!==s.substr(0,7)&&"https://"!==s.substr(0,8)&&"mailto:"!==s.substr(0,7)&&"tel:"!==s.substr(0,4)&&"#"!==s[0]&&"/"!==s[0])return""}else if("background"===t){if(f.lastIndex=0,f.test(s))return""}else if("style"===t){if(v.lastIndex=0,v.test(s))return"";if(g.lastIndex=0,g.test(s)&&(f.lastIndex=0,f.test(s)))return"";!1!==i&&(s=(i=i||n).process(s))}return s=S(s)},t.escapeHtml=l,t.escapeQuote=b,t.unescapeQuote=y,t.escapeHtmlEntities=x,t.escapeDangerHtml5Entities=w,t.clearNonPrintableCharacter=C,t.friendlyAttrValue=k,t.escapeAttrValue=S,t.onIgnoreTagStripAll=function(){return""},t.StripTagBody=function(e,t){"function"!=typeof t&&(t=function(){});var s=!Array.isArray(e),i=[],r=!1;return{onIgnoreTag:function(o,n,l){if(function(t){return!!s||-1!==a.indexOf(e,t)}(o)){if(l.isClosing){var c="[/removed]",d=l.position+c.length;return i.push([!1!==r?r:l.position,d]),r=!1,c}return r||(r=l.position),"[removed]"}return t(o,n,l)},remove:function(e){var t="",s=0;return a.forEach(i,(function(i){t+=e.slice(s,i[0]),s=i[1]})),t+=e.slice(s)}}},t.stripCommentTag=function(e){return e.replace(A,"")},t.stripBlankChar=function(e){var t=e.split("");return(t=t.filter((function(e){var t=e.charCodeAt(0);return 127!==t&&(!(t<=31)||(10===t||13===t))}))).join("")},t.cssFilter=n,t.getDefaultCSSWhiteList=r},"./node_modules/xss/lib/index.js":function(e,t,s){var i=s("./node_modules/xss/lib/default.js"),r=s("./node_modules/xss/lib/parser.js"),a=s("./node_modules/xss/lib/xss.js");function o(e,t){return new a(t).process(e)}for(var n in(t=e.exports=o).filterXSS=o,t.FilterXSS=a,i)t[n]=i[n];for(var n in r)t[n]=r[n];"undefined"!=typeof window&&(window.filterXSS=e.exports),"undefined"!=typeof self&&"undefined"!=typeof DedicatedWorkerGlobalScope&&self instanceof DedicatedWorkerGlobalScope&&(self.filterXSS=e.exports)},"./node_modules/xss/lib/parser.js":function(e,t,s){var i=s("./node_modules/xss/lib/util.js");function r(e){var t=i.spaceIndex(e);if(-1===t)var s=e.slice(1,-1);else s=e.slice(1,t+1);return"/"===(s=i.trim(s).toLowerCase()).slice(0,1)&&(s=s.slice(1)),"/"===s.slice(-1)&&(s=s.slice(0,-1)),s}function a(e){return"</"===e.slice(0,2)}var o=/[^a-zA-Z0-9_:\.\-]/gim;function n(e,t){for(;t<e.length;t++){var s=e[t];if(" "!==s)return"="===s?t:-1}}function l(e,t){for(;t>0;t--){var s=e[t];if(" "!==s)return"="===s?t:-1}}function c(e){return function(e){return'"'===e[0]&&'"'===e[e.length-1]||"'"===e[0]&&"'"===e[e.length-1]}(e)?e.substr(1,e.length-2):e}t.parseTag=function(e,t,s){var i="",o=0,n=!1,l=!1,c=0,d=e.length,u="",_="";for(c=0;c<d;c++){var m=e.charAt(c);if(!1===n){if("<"===m){n=c;continue}}else if(!1===l){if("<"===m){i+=s(e.slice(o,c)),n=c,o=c;continue}if(">"===m){i+=s(e.slice(o,n)),u=r(_=e.slice(n,c+1)),i+=t(n,i.length,u,_,a(_)),o=c+1,n=!1;continue}if(('"'===m||"'"===m)&&"="===e.charAt(c-1)){l=m;continue}}else if(m===l){l=!1;continue}}return o<e.length&&(i+=s(e.substr(o))),i},t.parseAttr=function(e,t){var s=0,r=[],a=!1,d=e.length;function u(e,s){if(!((e=(e=i.trim(e)).replace(o,"").toLowerCase()).length<1)){var a=t(e,s||"");a&&r.push(a)}}for(var _=0;_<d;_++){var m,p=e.charAt(_);if(!1!==a||"="!==p)if(!1===a||_!==s||'"'!==p&&"'"!==p||"="!==e.charAt(_-1))if(/\s|\n|\t/.test(p)){if(e=e.replace(/\s|\n|\t/g," "),!1===a){if(-1===(m=n(e,_))){u(i.trim(e.slice(s,_))),a=!1,s=_+1;continue}_=m-1;continue}if(-1===(m=l(e,_-1))){u(a,c(i.trim(e.slice(s,_)))),a=!1,s=_+1;continue}}else;else{if(-1===(m=e.indexOf(p,_+1)))break;u(a,i.trim(e.slice(s+1,m))),a=!1,s=(_=m)+1}else a=e.slice(s,_),s=_+1}return s<e.length&&(!1===a?u(e.slice(s)):u(a,c(i.trim(e.slice(s))))),i.trim(r.join(" "))}},"./node_modules/xss/lib/util.js":function(e,t){e.exports={indexOf:function(e,t){var s,i;if(Array.prototype.indexOf)return e.indexOf(t);for(s=0,i=e.length;s<i;s++)if(e[s]===t)return s;return-1},forEach:function(e,t,s){var i,r;if(Array.prototype.forEach)return e.forEach(t,s);for(i=0,r=e.length;i<r;i++)t.call(s,e[i],i,e)},trim:function(e){return String.prototype.trim?e.trim():e.replace(/(^\s*)|(\s*$)/g,"")},spaceIndex:function(e){var t=/\s|\n|\t/.exec(e);return t?t.index:-1}}},"./node_modules/xss/lib/xss.js":function(e,t,s){var i=s("./node_modules/cssfilter/lib/index.js").FilterCSS,r=s("./node_modules/xss/lib/default.js"),a=s("./node_modules/xss/lib/parser.js"),o=a.parseTag,n=a.parseAttr,l=s("./node_modules/xss/lib/util.js");function c(e){return null==e}function d(e){(e=function(e){var t={};for(var s in e)t[s]=e[s];return t}(e||{})).stripIgnoreTag&&(e.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),e.onIgnoreTag=r.onIgnoreTagStripAll),e.whiteList=e.whiteList||r.whiteList,e.onTag=e.onTag||r.onTag,e.onTagAttr=e.onTagAttr||r.onTagAttr,e.onIgnoreTag=e.onIgnoreTag||r.onIgnoreTag,e.onIgnoreTagAttr=e.onIgnoreTagAttr||r.onIgnoreTagAttr,e.safeAttrValue=e.safeAttrValue||r.safeAttrValue,e.escapeHtml=e.escapeHtml||r.escapeHtml,this.options=e,!1===e.css?this.cssFilter=!1:(e.css=e.css||{},this.cssFilter=new i(e.css))}d.prototype.process=function(e){if(!(e=(e=e||"").toString()))return"";var t=this.options,s=t.whiteList,i=t.onTag,a=t.onIgnoreTag,d=t.onTagAttr,u=t.onIgnoreTagAttr,_=t.safeAttrValue,m=t.escapeHtml,p=this.cssFilter;t.stripBlankChar&&(e=r.stripBlankChar(e)),t.allowCommentTag||(e=r.stripCommentTag(e));var h=!1;if(t.stripIgnoreTagBody){h=r.StripTagBody(t.stripIgnoreTagBody,a);a=h.onIgnoreTag}var f=o(e,(function(e,t,r,o,h){var f,v={sourcePosition:e,position:t,isClosing:h,isWhite:s.hasOwnProperty(r)};if(!c(f=i(r,o,v)))return f;if(v.isWhite){if(v.isClosing)return"</"+r+">";var g=function(e){var t=l.spaceIndex(e);if(-1===t)return{html:"",closing:"/"===e[e.length-2]};var s="/"===(e=l.trim(e.slice(t+1,-1)))[e.length-1];return s&&(e=l.trim(e.slice(0,-1))),{html:e,closing:s}}(o),b=s[r],y=n(g.html,(function(e,t){var s,i=-1!==l.indexOf(b,e);return c(s=d(r,e,t,i))?i?(t=_(r,e,t,p))?e+'="'+t+'"':e:c(s=u(r,e,t,i))?void 0:s:s}));o="<"+r;return y&&(o+=" "+y),g.closing&&(o+=" /"),o+=">"}return c(f=a(r,o,v))?m(o):f}),m);return h&&(f=h.remove(f)),f},e.exports=d},"./src/advanced-tools.js":function(e,t,s){"use strict";s.r(t);var i=s("vue"),r=s.n(i),a=s("./src/helper/base_hepler.js"),o={mixins:[a.a],name:"mask-login",data:function(){return{misc:advanced_tools.misc,model:advanced_tools.model.mask_login,nonces:advanced_tools.nonces,endpoints:advanced_tools.endpoints,state:{on_saving:!1,original_state:!1}}},watch:{"model.mask_url":function(e){e=this.convertToSlug(e),this.model.mask_url=e,this.misc.new_login_url=this.misc.home_url+e,this.state.waiting_save=!0},"model.redirect_traffic_url":function(e){e=this.convertToSlug(e),this.model.redirect_traffic_url=e,this.misc.login_redirect_url=this.misc.home_url+e}},mounted:function(){this.state.original_state=this.model.mask_url.length>0},methods:{toggle:function(e){var t=this,s={};s.enabled=e,this.httpPostRequest("updateSettings",{data:JSON.stringify({settings:s,module:"mask-login"})},(function(){t.model.enabled=e}))},updateSettings:function(){var e=this.model,t=this;this.httpPostRequest("updateSettings",{data:JSON.stringify({settings:e,module:"mask-login"})},(function(){t.state.original_state=t.model.mask_url.length>0}))},convertToSlug:function(e){return e.toLowerCase().replace(/[^\w-/.]+/g,"")}},computed:{new_mask_login:function(){return this.misc.new_login_url},login_redirect_url:function(){return this.misc.login_redirect_url}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),l=Object(n.a)(o,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return!1===e.model.enabled?s("div",{staticClass:"sui-box",attrs:{id:"mask-login"}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[e._v("\n\t\t\t\t"+e._s(e.__("Mask Login Area"))+"\n\t\t\t")])]),e._v(" "),s("div",{staticClass:"sui-message"},[e.maybeHideBranding()?e._e():s("img",{staticClass:"sui-image",attrs:{src:e.assetUrl("assets/img/2factor-disabled.svg"),"aria-hidden":"true"}}),e._v(" "),s("div",{staticClass:"sui-message-content"},[s("p",[e._v("\n\t\t\t\t\t"+e._s(e.__("Change the location of WordPress's default login area, making it harder for automated bots to find and also more convenient for your users."))+"\n\t\t\t\t")]),e._v(" "),s("form",{attrs:{method:"post"}},[s("submit-button",{attrs:{type:"button","css-class":"sui-button-blue activate",state:e.state},on:{click:function(t){return e.toggle(!0)}}},[e._v("\n\t\t\t\t\t\t"+e._s(e.__("Activate"))+"\n\t\t\t\t\t")])],1)])])]):s("div",{staticClass:"sui-box",attrs:{id:"mask-login"}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[e._v("\n\t\t\t\t"+e._s(e.__("Mask Login Area"))+"\n\t\t\t")])]),e._v(" "),s("form",{attrs:{method:"post"},on:{submit:function(t){return t.preventDefault(),e.updateSettings(t)}}},[s("div",{staticClass:"sui-box-body"},[s("p",[e._v("\n\t\t\t\t\t"+e._s(e.__("Change your default WordPress login URL to hide your login area from hackers and bots."))+"\n\t\t\t\t")]),e._v(" "),!1!==e.misc.compatibility?s("div",{staticClass:"sui-notice sui-notice-error"},[s("div",{staticClass:"sui-notice-content"},[s("div",{staticClass:"sui-notice-message"},[s("i",{staticClass:"sui-notice-icon sui-icon-info sui-md",attrs:{"aria-hidden":"true"}}),e._v(" "),s("p",e._l(e.misc.compatibility,(function(t){return s("span",[e._v("\n "+e._s(t)+"\n ")])})),0)])])]):e._e(),e._v(" "),!1===e.state.original_state?s("div",{staticClass:"sui-notice sui-notice-warning"},[s("div",{staticClass:"sui-notice-content"},[s("div",{staticClass:"sui-notice-message"},[s("i",{staticClass:"sui-notice-icon sui-icon-info sui-md",attrs:{"aria-hidden":"true"}}),e._v(" "),s("p",[e._v("\n\t\t\t\t\t\t"+e._s(e.__("Masking is currently inactive. Choose your URL and save your settings to finish setup."))+"\n\t\t\t\t\t")])])])]):s("div",{staticClass:"sui-notice sui-notice-info"},[s("div",{staticClass:"sui-notice-content"},[s("div",{staticClass:"sui-notice-message"},[s("i",{staticClass:"sui-notice-icon sui-icon-info sui-md",attrs:{"aria-hidden":"true"}}),e._v(" "),s("p",[e._v("\n\t\t\t\t\t\t"+e._s(e.__("Masking is currently active at "))+" "),s("strong",{domProps:{textContent:e._s(e.misc.new_login_url)}})])])])]),e._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[e._v("\n "+e._s(e.__("Masking URL"))+"\n ")]),e._v(" "),s("span",{staticClass:"sui-description"},[e._v("\n "+e._s(e.__("Choose the new URL slug where users of your website will now navigate to log in or register."))+"\n ")])]),e._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("span",{staticClass:"sui-description"},[e._v("\n "+e._s(e.__("You can specify any URLs. For security reasons, less obvious URLs are recommended as they are harder for bots to guess."))+"\n ")]),e._v(" "),s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[e._v("\n\t\t\t\t\t\t\t\t"+e._s(e.__("New Login URL"))+"\n\t\t\t\t\t\t\t")]),e._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:e.model.mask_url,expression:"model.mask_url"}],staticClass:"sui-form-control",attrs:{type:"text",name:"mask_url",placeholder:"E.g. dashboard"},domProps:{value:e.model.mask_url},on:{input:function(t){t.target.composing||e.$set(e.model,"mask_url",t.target.value)}}}),e._v(" "),s("span",{staticClass:"sui-description"},[e._v("\n "+e._s(e.__("Users will login at"))+" "),s("a",{attrs:{href:e.new_mask_login}},[e._v(e._s(e.new_mask_login))]),e._v(". "+e._s(e.__("Note: Registration and Password Reset emails have hardcoded URLs in them. We will update them automatically to match your new login URL"))+"\n ")])])])]),e._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[e._v("\n "+e._s(e.__("Redirect traffic"))+"\n ")]),e._v(" "),s("span",{staticClass:"sui-description"},[e._v("\n "+e._s(e.__("With this feature you can send visitors and bots who try to visit the default Wordpress login URLs to a separate URL to avoid 404s."))+"\n ")])]),e._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.model.redirect_traffic,expression:"model.redirect_traffic"}],staticClass:"toggle-checkbox",attrs:{role:"presentation",type:"checkbox",name:"redirect_traffic",id:"redirect_traffic","true-value":!0,"false-value":!1},domProps:{checked:Array.isArray(e.model.redirect_traffic)?e._i(e.model.redirect_traffic,null)>-1:e.model.redirect_traffic},on:{change:function(t){var s=e.model.redirect_traffic,i=t.target,r=!!i.checked;if(Array.isArray(s)){var a=e._i(s,null);i.checked?a<0&&e.$set(e.model,"redirect_traffic",s.concat([null])):a>-1&&e.$set(e.model,"redirect_traffic",s.slice(0,a).concat(s.slice(a+1)))}else e.$set(e.model,"redirect_traffic",r)}}}),e._v(" "),s("span",{staticClass:"sui-toggle-slider"})]),e._v(" "),s("label",{staticClass:"sui-toggle-label",attrs:{for:"redirect_traffic"}},[e._v("\n\t\t\t\t\t\t\t"+e._s(e.__("Enable 404 redirection"))+"\n\t\t\t\t\t\t")]),e._v(" "),s("div",{directives:[{name:"show",rawName:"v-show",value:!0===e.model.redirect_traffic,expression:"model.redirect_traffic===true"}],staticClass:"sui-border-frame sui-toggle-content",attrs:{id:"redirectTrafficContainer"}},[s("label",{staticClass:"sui-label"},[e._v(e._s(e.__("Redirection URL")))]),e._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:e.model.redirect_traffic_url,expression:"model.redirect_traffic_url"}],staticClass:"sui-form-control",attrs:{placeholder:"E.g. 404-error",type:"text",name:"redirect_traffic_url"},domProps:{value:e.model.redirect_traffic_url},on:{input:function(t){t.target.composing||e.$set(e.model,"redirect_traffic_url",t.target.value)}}}),e._v(" "),s("span",{staticClass:"sui-description"},[e._v("\n "+e._s(e.__("Visitors who visit the default login URLs will be redirected to"))+" "),s("a",{attrs:{href:e.login_redirect_url}},[e._v(e._s(e.login_redirect_url))])])])])]),e._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[e._v("\n "+e._s(e.__("Deactivate"))+"\n ")]),e._v(" "),s("span",{staticClass:"sui-description"},[e._v("\n "+e._s(e.__("Disable login area masking and return to the default wp-admin and wp-login URLS."))+"\n ")])]),e._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("submit-button",{attrs:{type:"button","css-class":"sui-button-ghost",state:e.state},on:{click:function(t){return e.toggle(!1)}}},[e._v("\n\t\t\t\t\t\t\t"+e._s(e.__("Deactivate"))+"\n\t\t\t\t\t\t")])],1)])]),e._v(" "),s("div",{staticClass:"sui-box-footer"},[s("submit-button",{attrs:{type:"submit",state:e.state,"css-class":"sui-button-blue save-changes"}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),e._v("\n\t\t\t\t\t"+e._s(e.__("Save Changes"))+"\n\t\t\t\t")])],1)])])}),[],!1,null,null,null).exports,c={mixins:[a.a],props:["misc","model"],name:"sh-xframe",data:function(){return{state:{on_saving:!1},mode:this.misc.mode,values:this.misc.values,model:this.model,tabUrlsText:""}},created:function(){this.tabUrlsText=vsprintf(this.__("The page <strong>%s</strong> will only be displayed in a frame on the specified origin. One per line."),this.siteUrl)}},d=Object(n.a)(c,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"sui-toggle-content"},[s("span",{staticClass:"sui-description toogle-content-description"},[e._v("\n\t\t"+e._s(e.__("Choose whether or not you want to allow your webpages to be embedded inside iframes."))+"\n\t")]),e._v(" "),s("div",{staticClass:"sui-side-tabs"},[s("div",{staticClass:"sui-tabs-menu"},[s("label",{staticClass:"sui-tab-item",class:{active:"sameorigin"===e.model.sh_xframe_mode},attrs:{for:"xf-sameorigin"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.model.sh_xframe_mode,expression:"model.sh_xframe_mode"}],attrs:{type:"radio",name:"sh_xframe_mode",value:"sameorigin",id:"xf-sameorigin","data-tab-menu":"xf-sameorigin-box"},domProps:{checked:e._q(e.model.sh_xframe_mode,"sameorigin")},on:{change:function(t){return e.$set(e.model,"sh_xframe_mode","sameorigin")}}}),e._v("\n\t\t\t\t"+e._s(e.__("Sameorigin"))+"\n\t\t\t")]),e._v(" "),s("label",{staticClass:"sui-tab-item",class:{active:"allow-from"==e.model.sh_xframe_mode},attrs:{for:"xf-allow-from"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.model.sh_xframe_mode,expression:"model.sh_xframe_mode"}],attrs:{type:"radio",name:"sh_xframe_mode",value:"allow-from",id:"xf-allow-from","data-tab-menu":"xf-allow-from-box"},domProps:{checked:e._q(e.model.sh_xframe_mode,"allow-from")},on:{change:function(t){return e.$set(e.model,"sh_xframe_mode","allow-from")}}}),e._v("\n\t\t\t\t"+e._s(e.__("Allow-from"))+"\n\t\t\t")]),e._v(" "),s("label",{staticClass:"sui-tab-item",class:{active:"deny"===e.model.sh_xframe_mode},attrs:{for:"xf-deny"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.model.sh_xframe_mode,expression:"model.sh_xframe_mode"}],attrs:{type:"radio",name:"sh_xframe_mode",value:"deny",id:"xf-deny","data-tab-menu":"xf-deny-box"},domProps:{checked:e._q(e.model.sh_xframe_mode,"deny")},on:{change:function(t){return e.$set(e.model,"sh_xframe_mode","deny")}}}),e._v("\n\t\t\t\t"+e._s(e.__("Deny"))+"\n\t\t\t")])]),e._v(" "),s("div",{staticClass:"sui-tabs-content"},[s("div",{staticClass:"sui-tab-content sui-tab-boxed",class:{active:"sameorigin"===e.model.sh_xframe_mode},attrs:{id:"xf-sameorigin-box","data-tab-content":"xf-sameorigin-box"}},[s("p",{staticClass:"sui-p-small"},[e._v("\n\t\t\t\t\t"+e._s(e.__("The page can only be displayed in a frame on the same origin as the page itself. The spec leaves it up to browser vendors to decide whether this option applies to the top level, the parent, or the whole chain."))+"\n\t\t\t\t")])]),e._v(" "),s("div",{staticClass:"sui-tab-content sui-tab-boxed",class:{active:"allow-from"===e.model.sh_xframe_mode},attrs:{id:"xf-allow-from-box","data-tab-content":"xf-allow-from-box"}},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[e._v(e._s(e.__("Allow from URLs")))]),e._v(" "),s("textarea",{directives:[{name:"model",rawName:"v-model",value:e.model.sh_xframe_urls,expression:"model.sh_xframe_urls"}],staticClass:"sui-form-control",attrs:{name:"sh_xframe_urls",placeholder:e.__("Place allowed page URLs, one per line")},domProps:{value:e.model.sh_xframe_urls},on:{input:function(t){t.target.composing||e.$set(e.model,"sh_xframe_urls",t.target.value)}}}),e._v(" "),s("span",{staticClass:"sui-description",domProps:{innerHTML:e._s(e.tabUrlsText)}})])]),e._v(" "),s("div",{staticClass:"sui-tab-content sui-tab-boxed",class:{active:"deny"===e.model.sh_xframe_mode},attrs:{id:"xf-deny-box","data-tab-content":"xf-deny-box"}},[s("p",{staticClass:"sui-p-small"},[e._v("\n\t\t\t\t\t"+e._s(e.__("The page can’t be displayed in a frame, regardless of the site attempting to do so."))+"\n\t\t\t\t")])])])])])}),[],!1,null,null,null).exports,u={mixins:[a.a],props:["misc","model"],name:"sh_xss_protection",data:function(){return{state:{on_saving:!1},mode:this.misc.mode,model:this.model}}},_=Object(n.a)(u,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"sui-toggle-content"},[s("span",{staticClass:"sui-description toogle-content-description"},[e._v("\n "+e._s(e.__("Choose what level of protection X-XSS protection you would like to apply when XSS attacks are detected."))+"\n ")]),e._v(" "),s("div",{staticClass:"sui-side-tabs"},[s("div",{staticClass:"sui-tabs-menu"},[s("label",{staticClass:"sui-tab-item",class:{active:"sanitize"===e.model.sh_xss_protection_mode},attrs:{for:"xss-sanitize"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.model.sh_xss_protection_mode,expression:"model.sh_xss_protection_mode"}],attrs:{type:"radio",name:"sh_xss_protection_mode",value:"sanitize",id:"xss-sanitize","data-tab-menu":"xss-sanitize-box"},domProps:{checked:e._q(e.model.sh_xss_protection_mode,"sanitize")},on:{change:function(t){return e.$set(e.model,"sh_xss_protection_mode","sanitize")}}}),e._v("\n "+e._s(e.__("Sanitize"))+"\n ")]),e._v(" "),s("label",{staticClass:"sui-tab-item",class:{active:"block"===e.model.sh_xss_protection_mode},attrs:{for:"xss-block"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.model.sh_xss_protection_mode,expression:"model.sh_xss_protection_mode"}],attrs:{type:"radio",name:"sh_xss_protection_mode",value:"block",id:"xss-block","data-tab-menu":"xss-block-box"},domProps:{checked:e._q(e.model.sh_xss_protection_mode,"block")},on:{change:function(t){return e.$set(e.model,"sh_xss_protection_mode","block")}}}),e._v("\n "+e._s(e.__("Block"))+"\n ")])]),e._v(" "),s("div",{staticClass:"sui-tabs-content"},[s("div",{staticClass:"sui-tab-content sui-tab-boxed",class:{active:"sanitize"===e.model.sh_xss_protection_mode},attrs:{id:"xss-sanitize-box","data-tab-content":"xss-sanitize-box"}},[s("p",{staticClass:"sui-p-small"},[e._v("\n "+e._s(e.__("If a cross-site scripting attack is detected, the browser will sanitize the page (remove the unsafe parts)."))+"\n ")])]),e._v(" "),s("div",{staticClass:"sui-tab-content sui-tab-boxed",class:{active:"block"===e.model.sh_xss_protection_mode},attrs:{id:"xss-block-box","data-tab-content":"xss-allow-from-box"}},[s("span",{staticClass:"sui-description"},[e._v("\n "+e._s(e.__("Enables XSS filtering. Rather than sanitizing the page, the browser will prevent rendering of the page if an attack is detected."))+"\n ")])])])])])}),[],!1,null,null,null).exports,m={mixins:[a.a],name:"sh-content-type-options"},p=Object(n.a)(m,(function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"sui-toggle-content"},[t("span",{staticClass:"sui-description toogle-content-description"},[this._v("\n\t\t\t"+this._s(this.__("Defender will automatically enforce the 'nosniff' X-Content-Type-Options header to help prevent MIME type sniffing and XSS attacks."))+"\n\t\t")])])}),[],!1,null,null,null).exports,h={mixins:[a.a],name:"sh-strict-transport",props:["misc","model"],data:function(){return{state:{on_saving:!1},hsts_preload:this.misc.misc.hsts_preload,allow_subdomain:this.misc.misc.allow_subdomain,include_subdomain:this.misc.misc.include_subdomain,hsts_cache_duration:this.misc.misc.hsts_cache_duration,model:this.model}},created:function(){!1===this.allow_subdomain&&(this.include_subdomain=!1)},mounted:function(){var e=this;jQuery("#hsts-cache-duration").change((function(){var t=jQuery(this).val();e.hsts_cache_duration=t,e.$parent.$emit("hsts_maximum_age",t)}))},computed:{show_hsts_warning:function(){return 1===parseInt(this.model.hsts_preload)},hsts_warning_text:function(){return vsprintf(this.__('Note: Do not include the preload directive by default if you maintain a project that provides HTTPS configuration advice or provides an option to enable HSTS. Be aware that inclusion in the preload list cannot easily be undone. Domains can be removed, but it takes months for a change. Check <a target="_blank" href="%s">here</a> for more information.'),"https://hstspreload.org/")},text_browser_caching:function(){return vsprintf(this.__('Choose when the browser should cache and apply the Strict Transport Security policy for. The recommended value for HSTS Maximum age is at least 30 days. You can learn more about max-age value differences <a target="_blank" href="%s">here</a>.'),"https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security#Examples")}},watch:{"misc.hsts_cache_duration":function(){this.hsts_cache_duration=this.misc.hsts_cache_duration}}},f=Object(n.a)(h,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"sui-toggle-content"},[s("div",{staticClass:"sui-border-frame"},[s("label",{staticClass:"sui-checkbox",attrs:{for:"hsts_preload"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.model.hsts_preload,expression:"model.hsts_preload"}],attrs:{type:"checkbox",name:"model.hsts_preload","true-value":"1","false-value":"0","aria-labelledby":"label_hsts_preload",id:"hsts_preload"},domProps:{checked:Array.isArray(e.model.hsts_preload)?e._i(e.model.hsts_preload,null)>-1:e._q(e.model.hsts_preload,"1")},on:{change:function(t){var s=e.model.hsts_preload,i=t.target,r=i.checked?"1":"0";if(Array.isArray(s)){var a=e._i(s,null);i.checked?a<0&&e.$set(e.model,"hsts_preload",s.concat([null])):a>-1&&e.$set(e.model,"hsts_preload",s.slice(0,a).concat(s.slice(a+1)))}else e.$set(e.model,"hsts_preload",r)}}}),e._v(" "),s("span",{attrs:{"aria-hidden":"true"}}),e._v(" "),s("span",{attrs:{id:"label_hsts_preload"}},[e._v(e._s(e.__("HSTS Preload")))])]),e._v(" "),s("span",{staticClass:"sui-description margin-bottom-10"},[e._v(e._s(e.__("Google maintains an HSTS preload service. By following the guidelines and successfully submitting your domain, browsers will never connect to your domain using an insecure connection.")))]),e._v(" "),s("div",{directives:[{name:"show",rawName:"v-show",value:e.show_hsts_warning,expression:"show_hsts_warning"}],staticClass:"sui-notice sui-notice-warning"},[s("div",{staticClass:"sui-notice-content"},[s("div",{staticClass:"sui-notice-message"},[s("i",{staticClass:"sui-notice-icon sui-icon-info sui-md",attrs:{"aria-hidden":"true"}}),e._v(" "),s("p",{domProps:{innerHTML:e._s(e.hsts_warning_text)}})])])]),e._v(" "),!0===e.allow_subdomain?s("div",{staticClass:"margin-bottom-30"},[s("label",{staticClass:"sui-checkbox",attrs:{for:"include_subdomain"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.model.include_subdomain,expression:"model.include_subdomain"}],attrs:{type:"checkbox","true-value":"1","false-value":"0","aria-labelledby":"label_include_subdomain",id:"include_subdomain"},domProps:{checked:Array.isArray(e.model.include_subdomain)?e._i(e.model.include_subdomain,null)>-1:e._q(e.model.include_subdomain,"1")},on:{change:function(t){var s=e.model.include_subdomain,i=t.target,r=i.checked?"1":"0";if(Array.isArray(s)){var a=e._i(s,null);i.checked?a<0&&e.$set(e.model,"include_subdomain",s.concat([null])):a>-1&&e.$set(e.model,"include_subdomain",s.slice(0,a).concat(s.slice(a+1)))}else e.$set(e.model,"include_subdomain",r)}}}),e._v(" "),s("span",{attrs:{"aria-hidden":"true"}}),e._v(" "),s("span",{attrs:{id:"label_include_subdomain"}},[e._v(e._s(e.__("Include Subdomains")))])]),e._v(" "),s("span",{staticClass:"sui-description margin-bottom-10"},[e._v(e._s(e.__("If this optional parameter is specified, this rule applies to all of the site's subdomains as well.")))])]):e._e(),e._v(" "),s("div",{staticClass:"toggle-content-header",style:{fontWeight:500}},[e._v(e._s(e.__("Browser Caching")))]),e._v(" "),s("span",{staticClass:"sui-description",domProps:{innerHTML:e._s(e.text_browser_caching)}}),e._v(" "),s("div",{staticClass:"sui-form-field"},[s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col-md-5"},[s("label",{staticClass:"sui-label",attrs:{for:"hsts-cache-duration",id:"label-hsts-cache-duration"}},[e._v(e._s(e.__("HSTS Maximum Age")))]),e._v(" "),s("select",{directives:[{name:"model",rawName:"v-model",value:e.model.hsts_cache_duration,expression:"model.hsts_cache_duration"}],staticClass:"sui-select-sm",attrs:{id:"hsts-cache-duration",name:"hsts_cache_duration","data-module":"sh-strict-transport","aria-labelledby":"label-hsts-cache-duration","data-key":"hsts_cache_duration"},on:{change:function(t){var s=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(e.model,"hsts_cache_duration",t.target.multiple?s:s[0])}}},[s("option",{attrs:{value:"1 hour"}},[e._v(e._s(e.__("1 hour")))]),e._v(" "),s("option",{attrs:{value:"24 hours"}},[e._v(e._s(e.__("24 hours")))]),e._v(" "),s("option",{attrs:{value:"7 days"}},[e._v(e._s(e.__("7 days")))]),e._v(" "),s("option",{attrs:{value:"30 days"}},[e._v(e._s(e.__("30 days")))]),e._v(" "),s("option",{attrs:{value:"3 months"}},[e._v(e._s(e.__("3 months")))]),e._v(" "),s("option",{attrs:{value:"6 months"}},[e._v(e._s(e.__("6 months")))]),e._v(" "),s("option",{attrs:{value:"1 year"}},[e._v(e._s(e.__("1 year")))]),e._v(" "),s("option",{attrs:{value:"2 years"}},[e._v(e._s(e.__("2 years")))])])])])])])])}),[],!1,null,null,null).exports,v={mixins:[a.a],name:"sh-referrer-policy",props:["misc","model"],data:function(){return{state:{on_saving:!1},mode:null,policyDesc:"",model:this.model}},created:function(){this.mode=this.misc.misc.mode},mounted:function(){var e=this;jQuery("#referrer-policy").change((function(){e.mode=jQuery(this).val()}))},watch:{mode:function(){"no-referrer"===this.mode&&(this.policyDesc=this.__("The Referer header will be omitted entirely. No referrer information is sent along with requests.")),"no-referrer-when-downgrade"===this.mode&&(this.policyDesc=this.__("This is the user agent's default behavior if no policy is specified. The origin is sent as referrer to a-priori as-much-secure destination (HTTPS->HTTPS), but isn't sent to a less secure destination (HTTPS->HTTP).")),"origin"===this.mode&&(this.policyDesc=this.__("Only send the origin of the document as the referrer in all cases. The document https://example.com/page.html will send the referrer https://example.com/.")),"origin-when-cross-origin"===this.mode&&(this.policyDesc=this.__("Send a full URL when performing a same-origin request, but only send the origin of the document for other cases.")),"same-origin"===this.mode&&(this.policyDesc=this.__("A referrer will be sent for same-site origins, but cross-origin requests will contain no referrer information.")),"strict-origin"===this.mode&&(this.policyDesc=this.__("Only send the origin of the document as the referrer to a-priori as-much-secure destination (HTTPS->HTTPS), but don't send it to a less secure destination (HTTPS->HTTP).")),"strict-origin-when-cross-origin"===this.mode&&(this.policyDesc=this.__("Send a full URL when performing a same-origin request, only send the origin of the document to a-priori as-much-secure destination (HTTPS->HTTPS), and send no header to a less secure destination (HTTPS->HTTP).")),"unsafe-url"===this.mode&&(this.policyDesc=this.__("Send a full URL (stripped from parameters) when performing a a same-origin or cross-origin request.")),this.$parent.$emit("mode_referrer_policy",this.mode)}}},g=Object(n.a)(v,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"sui-toggle-content"},[s("span",{staticClass:"sui-description toogle-content-description"},[e._v("\n\t\t"+e._s(e.__("Choose which referrer information to send along with requests."))+"\n\t")]),e._v(" "),s("div",{staticClass:"sui-border-frame"},[s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col-md-7"},[s("label",{staticClass:"sui-label",attrs:{for:"referrer-policy",id:"label-referrer-policy"}},[e._v(e._s(e.__("Referrer Information")))]),e._v(" "),s("select",{directives:[{name:"model",rawName:"v-model",value:e.model.sh_referrer_policy_mode,expression:"model.sh_referrer_policy_mode"}],staticClass:"sui-select-sm",attrs:{id:"referrer-policy",name:"sh_referrer_policy_mode","aria-labelledby":"label-referrer-policy"},on:{change:function(t){var s=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(e.model,"sh_referrer_policy_mode",t.target.multiple?s:s[0])}}},[s("option",{attrs:{value:"no-referrer"}},[e._v("no-referrer")]),e._v(" "),s("option",{attrs:{value:"no-referrer-when-downgrade"}},[e._v("no-referrer-when-downgrade")]),e._v(" "),s("option",{attrs:{value:"origin"}},[e._v("origin")]),e._v(" "),s("option",{attrs:{value:"origin-when-cross-origin"}},[e._v("origin-when-cross-origin")]),e._v(" "),s("option",{attrs:{value:"same-origin"}},[e._v("same-origin")]),e._v(" "),s("option",{attrs:{value:"strict-origin"}},[e._v("strict-origin")]),e._v(" "),s("option",{attrs:{value:"strict-origin-when-cross-origin"}},[e._v("strict-origin-when-cross-origin")]),e._v(" "),s("option",{attrs:{value:"unsafe-url"}},[e._v("unsafe-url")])])]),e._v(" "),s("div",{staticClass:"sui-col-md-12",style:{marginTop:"10px"}},[s("p",{staticClass:"sui-description",domProps:{innerHTML:e._s(e.policyDesc)}})])])])])}),[],!1,null,null,null).exports,b={mixins:[a.a],props:["misc","model"],name:"sh-feature-policy",data:function(){return{misc:this.misc,state:{on_saving:!1},mode:this.misc.mode,values:this.misc.values,model:this.model,tabUrlsText:""}},created:function(){this.tabUrlsText=vsprintf(this.__("The feature is allowed for specific origins. Place URLs here %s, one per line."),"<strong>https://example.com</strong>")}},y=Object(n.a)(b,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"sui-toggle-content"},[s("span",{staticClass:"sui-description toogle-content-description"},[e._v("\n "+e._s(e.__("Choose an option that matches your requirements from the options below to prevent unwanted actions when your webpages are embedded elsewhere."))+"\n ")]),e._v(" "),s("div",{staticClass:"sui-side-tabs"},[s("div",{staticClass:"sui-tabs-menu"},[s("label",{staticClass:"sui-tab-item",class:{active:"self"===e.model.sh_feature_policy_mode},attrs:{for:"fp-site"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.model.sh_feature_policy_mode,expression:"model.sh_feature_policy_mode"}],attrs:{type:"radio",name:"model.sh_feature_policy_mode",value:"self",id:"fp-site","data-tab-menu":"fp-site-box"},domProps:{checked:e._q(e.model.sh_feature_policy_mode,"self")},on:{change:function(t){return e.$set(e.model,"sh_feature_policy_mode","self")}}}),e._v("\n "+e._s(e.__("On site & iframe"))+"\n ")]),e._v(" "),s("label",{staticClass:"sui-tab-item",class:{active:"allow"===e.model.sh_feature_policy_mode},attrs:{for:"fp-allow"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.model.sh_feature_policy_mode,expression:"model.sh_feature_policy_mode"}],attrs:{type:"radio",name:"model.sh_feature_policy_mode",value:"allow",id:"fp-allow","data-tab-menu":"fp-allow-box"},domProps:{checked:e._q(e.model.sh_feature_policy_mode,"allow")},on:{change:function(t){return e.$set(e.model,"sh_feature_policy_mode","allow")}}}),e._v("\n "+e._s(e.__("All"))+"\n ")]),e._v(" "),s("label",{staticClass:"sui-tab-item",class:{active:"origins"===e.model.sh_feature_policy_mode},attrs:{for:"fp-origins"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.model.sh_feature_policy_mode,expression:"model.sh_feature_policy_mode"}],attrs:{type:"radio",name:"model.sh_feature_policy_mode",value:"origins",id:"fp-origins","data-tab-menu":"fp-origins-box"},domProps:{checked:e._q(e.model.sh_feature_policy_mode,"origins")},on:{change:function(t){return e.$set(e.model,"sh_feature_policy_mode","origins")}}}),e._v("\n "+e._s(e.__("Specific Origins"))+"\n ")]),e._v(" "),s("label",{staticClass:"sui-tab-item",class:{active:"none"===e.model.sh_feature_policy_mode},attrs:{for:"fp-none"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.model.sh_feature_policy_mode,expression:"model.sh_feature_policy_mode"}],attrs:{type:"radio",name:"model.sh_feature_policy_mode",value:"none",id:"fp-none","data-tab-menu":"fp-none-box"},domProps:{checked:e._q(e.model.sh_feature_policy_mode,"none")},on:{change:function(t){return e.$set(e.model,"sh_feature_policy_mode","none")}}}),e._v("\n "+e._s(e.__("None"))+"\n ")])]),e._v(" "),s("div",{staticClass:"sui-tabs-content"},[s("div",{staticClass:"sui-tab-content sui-tab-boxed",class:{active:"self"===e.model.sh_feature_policy_mode},attrs:{id:"fp-site-box","data-tab-content":"fp-site-box"}},[s("p",{staticClass:"sui-p-small"},[e._v("\n "+e._s(e.__("The page can only be displayed in a frame on the same origin as the page itself. The spec leaves it up to browser vendors to decide whether this option applies to the top level, the parent, or the whole chain."))+"\n ")])]),e._v(" "),s("div",{staticClass:"sui-tab-content sui-tab-boxed",class:{active:"allow"===e.model.sh_feature_policy_mode},attrs:{id:"fp-allow-box","data-tab-content":"fp-allow-box"}},[s("p",{staticClass:"sui-p-small"},[e._v("\n "+e._s(e.__("The feature will be allowed in this document, and all nested browsing contexts (iframes) regardless of their origin."))+"\n ")])]),e._v(" "),s("div",{staticClass:"sui-tab-content sui-tab-boxed",class:{active:"origins"===e.model.sh_feature_policy_mode},attrs:{id:"fp-origins-box","data-tab-content":"fp-origins-box"}},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[e._v(e._s(e.__("Origin URL")))]),e._v(" "),s("textarea",{directives:[{name:"model",rawName:"v-model",value:e.model.sh_feature_policy_urls,expression:"model.sh_feature_policy_urls"}],staticClass:"sui-form-control",attrs:{name:"sh_feature_policy_urls",placeholder:e.__("Place URLs here, one per line")},domProps:{value:e.model.sh_feature_policy_urls},on:{input:function(t){t.target.composing||e.$set(e.model,"sh_feature_policy_urls",t.target.value)}}}),e._v(" "),s("span",{staticClass:"sui-description",domProps:{innerHTML:e._s(e.tabUrlsText)}})])]),e._v(" "),s("div",{staticClass:"sui-tab-content sui-tab-boxed",class:{active:"none"===e.model.sh_feature_policy_mode},attrs:{id:"fp-none-box","data-tab-content":"fp-none-box"}},[s("p",{staticClass:"sui-p-small"},[e._v("\n "+e._s(e.__("The feature is disabled in top-level and nested browsing contexts."))+"\n ")])])])])])}),[],!1,null,null,null).exports,x={mixins:[a.a],components:{"sh-xframe":d,"sh-xss-protection":_,"sh-content-type":p,"sh-strict-transport":f,"sh-referrer-policy":g,"sh-feature-policy":y},name:"security-headers",data:function(){return{misc:advanced_tools.misc.security_headers,model:advanced_tools.model.security_headers,nonces:advanced_tools.nonces,endpoints:advanced_tools.endpoints,state:{on_saving:!1,original_state:!1}}},methods:{updateSettings:function(){var e=this.model,t=this;this.httpPostRequest("updateSettings",{data:JSON.stringify({settings:e,module:"security-headers"})},(function(){t.state.original_state=!0}))},header_label:function(e){return this.vsprintf(this.__("Enable %s"),e)}},created:function(){this.$on("mode_referrer_policy",(function(e){this.model.sh_referrer_policy_mode=e})),this.$on("hsts_maximum_age",(function(e){this.model.hsts_cache_duration=e}))}},w=Object(n.a)(x,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"sui-box",attrs:{id:"security-headers"}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[e._v("\n\t\t\t"+e._s(e.__("Security Headers"))+"\n\t\t")])]),e._v(" "),s("form",{attrs:{method:"post"},on:{submit:function(t){return t.preventDefault(),e.updateSettings(t)}}},[s("div",{staticClass:"sui-box-body"},[s("p",[e._v(e._s(e.__("Add extra security to your website by enabling and configuring the security headers.")))]),e._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[e._v("\n\t\t\t\t\t\t"+e._s(e.misc.sh_xframe.title)+"\n\t\t\t\t\t")]),e._v(" "),s("span",{staticClass:"sui-description"},[e._v("\n\t\t\t\t\t\t"+e._s(e.misc.sh_xframe.misc.intro_text)+"\n\t\t\t\t\t")])]),e._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field",attrs:{id:"sh_xframe_wrap"}},[s("label",{staticClass:"sui-toggle",attrs:{for:"sh_xframe"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.model.sh_xframe,expression:"model.sh_xframe"}],staticClass:"toggle-checkbox",attrs:{role:"presentation",type:"checkbox",name:"sh_xframe",id:"sh_xframe","aria-labelledby":"sh_xframe_label","false-value":!1,"true-value":!0},domProps:{checked:Array.isArray(e.model.sh_xframe)?e._i(e.model.sh_xframe,null)>-1:e.model.sh_xframe},on:{change:function(t){var s=e.model.sh_xframe,i=t.target,r=!!i.checked;if(Array.isArray(s)){var a=e._i(s,null);i.checked?a<0&&e.$set(e.model,"sh_xframe",s.concat([null])):a>-1&&e.$set(e.model,"sh_xframe",s.slice(0,a).concat(s.slice(a+1)))}else e.$set(e.model,"sh_xframe",r)}}}),e._v(" "),s("span",{staticClass:"sui-toggle-slider",attrs:{"aria-hidden":"true"}}),e._v(" "),s("span",{staticClass:"sui-toggle-label",attrs:{id:"sh_xframe_label"}},[e._v(e._s(e.header_label(e.misc.sh_xframe.title)))])]),e._v(" "),s("sh-xframe",{directives:[{name:"show",rawName:"v-show",value:!0===e.model.sh_xframe,expression:"true === model.sh_xframe"}],attrs:{misc:e.misc.sh_xframe,model:e.model}})],1)])]),e._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[e._v("\n\t\t\t\t\t\t"+e._s(e.misc.sh_xss_protection.title)+"\n\t\t\t\t\t")]),e._v(" "),s("span",{staticClass:"sui-description"},[e._v("\n\t\t\t\t\t\t"+e._s(e.misc.sh_xss_protection.misc.intro_text)+"\n\t\t\t\t\t")])]),e._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field",attrs:{id:"sh_xss_protection_wrap"}},[s("label",{staticClass:"sui-toggle",attrs:{for:"sh_xss_protection"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.model.sh_xss_protection,expression:"model.sh_xss_protection"}],staticClass:"toggle-checkbox",attrs:{role:"presentation",type:"checkbox",name:"sh_xss_protection",id:"sh_xss_protection","aria-labelledby":"sh_xss_protection_label","false-value":!1,"true-value":!0},domProps:{checked:Array.isArray(e.model.sh_xss_protection)?e._i(e.model.sh_xss_protection,null)>-1:e.model.sh_xss_protection},on:{change:function(t){var s=e.model.sh_xss_protection,i=t.target,r=!!i.checked;if(Array.isArray(s)){var a=e._i(s,null);i.checked?a<0&&e.$set(e.model,"sh_xss_protection",s.concat([null])):a>-1&&e.$set(e.model,"sh_xss_protection",s.slice(0,a).concat(s.slice(a+1)))}else e.$set(e.model,"sh_xss_protection",r)}}}),e._v(" "),s("span",{staticClass:"sui-toggle-slider",attrs:{"aria-hidden":"true"}}),e._v(" "),s("span",{staticClass:"sui-toggle-label",attrs:{id:"sh_xss_protection_label"}},[e._v(e._s(e.header_label(e.misc.sh_xss_protection.title)))])]),e._v(" "),s("sh-xss-protection",{directives:[{name:"show",rawName:"v-show",value:!0===e.model.sh_xss_protection,expression:"true === model.sh_xss_protection"}],attrs:{misc:e.misc.sh_xss_protection,model:e.model}})],1)])]),e._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[e._v("\n\t\t\t\t\t\t"+e._s(e.misc.sh_content_type_options.title)+"\n\t\t\t\t\t")]),e._v(" "),s("span",{staticClass:"sui-description"},[e._v("\n\t\t\t\t\t\t"+e._s(e.misc.sh_content_type_options.misc.intro_text)+"\n\t\t\t\t\t")])]),e._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field",attrs:{id:"sh_content_type_options_wrap"}},[s("label",{staticClass:"sui-toggle",attrs:{for:"sh_content_type_options"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.model.sh_content_type_options,expression:"model.sh_content_type_options"}],staticClass:"toggle-checkbox",attrs:{role:"presentation",type:"checkbox",name:"sh_content_type_options",id:"sh_content_type_options","aria-labelledby":"sh_content_type_options_label","false-value":!1,"true-value":!0},domProps:{checked:Array.isArray(e.model.sh_content_type_options)?e._i(e.model.sh_content_type_options,null)>-1:e.model.sh_content_type_options},on:{change:function(t){var s=e.model.sh_content_type_options,i=t.target,r=!!i.checked;if(Array.isArray(s)){var a=e._i(s,null);i.checked?a<0&&e.$set(e.model,"sh_content_type_options",s.concat([null])):a>-1&&e.$set(e.model,"sh_content_type_options",s.slice(0,a).concat(s.slice(a+1)))}else e.$set(e.model,"sh_content_type_options",r)}}}),e._v(" "),s("span",{staticClass:"sui-toggle-slider",attrs:{"aria-hidden":"true"}}),e._v(" "),s("span",{staticClass:"sui-toggle-label",attrs:{id:"sh_content_type_options_label"}},[e._v(e._s(e.header_label(e.misc.sh_content_type_options.title)))])]),e._v(" "),s("sh-content-type",{directives:[{name:"show",rawName:"v-show",value:!0===e.model.sh_content_type_options,expression:"true === model.sh_content_type_options"}]})],1)])]),e._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[e._v("\n\t\t\t\t\t\t"+e._s(e.misc.sh_strict_transport.title)+"\n\t\t\t\t\t")]),e._v(" "),s("span",{staticClass:"sui-description"},[e._v("\n\t\t\t\t\t\t"+e._s(e.misc.sh_strict_transport.misc.intro_text)+"\n\t\t\t\t\t")])]),e._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field",attrs:{id:"sh_strict_transport_wrap"}},[s("label",{staticClass:"sui-toggle",attrs:{for:"sh_strict_transport"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.model.sh_strict_transport,expression:"model.sh_strict_transport"}],staticClass:"toggle-checkbox",attrs:{role:"presentation",type:"checkbox",name:"sh_strict_transport",id:"sh_strict_transport","aria-labelledby":"sh_strict_transport_label","false-value":!1,"true-value":!0},domProps:{checked:Array.isArray(e.model.sh_strict_transport)?e._i(e.model.sh_strict_transport,null)>-1:e.model.sh_strict_transport},on:{change:function(t){var s=e.model.sh_strict_transport,i=t.target,r=!!i.checked;if(Array.isArray(s)){var a=e._i(s,null);i.checked?a<0&&e.$set(e.model,"sh_strict_transport",s.concat([null])):a>-1&&e.$set(e.model,"sh_strict_transport",s.slice(0,a).concat(s.slice(a+1)))}else e.$set(e.model,"sh_strict_transport",r)}}}),e._v(" "),s("span",{staticClass:"sui-toggle-slider",attrs:{"aria-hidden":"true"}}),e._v(" "),s("span",{staticClass:"sui-toggle-label",attrs:{id:"sh_strict_transport_label"}},[e._v(e._s(e.header_label(e.misc.sh_strict_transport.title)))])]),e._v(" "),s("sh-strict-transport",{directives:[{name:"show",rawName:"v-show",value:!0===e.model.sh_strict_transport,expression:"true === model.sh_strict_transport"}],attrs:{misc:e.misc.sh_strict_transport,model:e.model}})],1)])]),e._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[e._v("\n\t\t\t\t\t\t"+e._s(e.misc.sh_referrer_policy.title)+"\n\t\t\t\t\t")]),e._v(" "),s("span",{staticClass:"sui-description"},[e._v("\n\t\t\t\t\t\t"+e._s(e.misc.sh_referrer_policy.misc.intro_text)+"\n\t\t\t\t\t")])]),e._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field",attrs:{id:"sh_referrer_policy_wrap"}},[s("label",{staticClass:"sui-toggle",attrs:{for:"sh_referrer_policy"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.model.sh_referrer_policy,expression:"model.sh_referrer_policy"}],staticClass:"toggle-checkbox",attrs:{role:"presentation",type:"checkbox",name:"sh_referrer_policy",id:"sh_referrer_policy","aria-labelledby":"sh_referrer_policy_label","false-value":!1,"true-value":!0},domProps:{checked:Array.isArray(e.model.sh_referrer_policy)?e._i(e.model.sh_referrer_policy,null)>-1:e.model.sh_referrer_policy},on:{change:function(t){var s=e.model.sh_referrer_policy,i=t.target,r=!!i.checked;if(Array.isArray(s)){var a=e._i(s,null);i.checked?a<0&&e.$set(e.model,"sh_referrer_policy",s.concat([null])):a>-1&&e.$set(e.model,"sh_referrer_policy",s.slice(0,a).concat(s.slice(a+1)))}else e.$set(e.model,"sh_referrer_policy",r)}}}),e._v(" "),s("span",{staticClass:"sui-toggle-slider",attrs:{"aria-hidden":"true"}}),e._v(" "),s("span",{staticClass:"sui-toggle-label",attrs:{id:"sh_referrer_policy_label"}},[e._v(e._s(e.header_label(e.misc.sh_referrer_policy.title)))])]),e._v(" "),s("sh-referrer-policy",{directives:[{name:"show",rawName:"v-show",value:!0===e.model.sh_referrer_policy,expression:"true === model.sh_referrer_policy"}],attrs:{misc:e.misc.sh_referrer_policy,model:e.model}})],1)])]),e._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[e._v("\n\t\t\t\t\t\t"+e._s(e.misc.sh_feature_policy.title)+"\n\t\t\t\t\t")]),e._v(" "),s("span",{staticClass:"sui-description"},[e._v("\n\t\t\t\t\t\t"+e._s(e.misc.sh_feature_policy.misc.intro_text)+"\n\t\t\t\t\t")])]),e._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field",attrs:{id:"sh_feature_policy_wrap"}},[s("label",{staticClass:"sui-toggle",attrs:{for:"sh_feature_policy"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.model.sh_feature_policy,expression:"model.sh_feature_policy"}],staticClass:"toggle-checkbox",attrs:{role:"presentation",type:"checkbox",name:"sh_feature_policy",id:"sh_feature_policy","aria-labelledby":"sh_feature_policy_label","false-value":!1,"true-value":!0},domProps:{checked:Array.isArray(e.model.sh_feature_policy)?e._i(e.model.sh_feature_policy,null)>-1:e.model.sh_feature_policy},on:{change:function(t){var s=e.model.sh_feature_policy,i=t.target,r=!!i.checked;if(Array.isArray(s)){var a=e._i(s,null);i.checked?a<0&&e.$set(e.model,"sh_feature_policy",s.concat([null])):a>-1&&e.$set(e.model,"sh_feature_policy",s.slice(0,a).concat(s.slice(a+1)))}else e.$set(e.model,"sh_feature_policy",r)}}}),e._v(" "),s("span",{staticClass:"sui-toggle-slider",attrs:{"aria-hidden":"true"}}),e._v(" "),s("span",{staticClass:"sui-toggle-label",attrs:{id:"sh_feature_policy_label"}},[e._v(e._s(e.header_label(e.misc.sh_feature_policy.title)))])]),e._v(" "),s("sh-feature-policy",{directives:[{name:"show",rawName:"v-show",value:!0===e.model.sh_feature_policy,expression:"true === model.sh_feature_policy"}],attrs:{misc:e.misc.sh_feature_policy,model:e.model}})],1)])])]),e._v(" "),s("div",{staticClass:"sui-box-footer"},[s("div",{staticClass:"sui-actions-right"},[s("submit-button",{attrs:{type:"submit",state:e.state,"css-class":"sui-button-blue save-changes"}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),e._v("\n\t\t\t\t\t"+e._s(e.__("Save Changes"))+"\n\t\t\t\t")])],1)])])])}),[],!1,null,null,null).exports,C={mixins:[a.a],components:{"mask-login":l,"security-headers":w},data:function(){return{state:{on_saving:!1},whitelabel:defender.whitelabel,is_free:defender.is_free,view:""}},created:function(){var e=new URLSearchParams(window.location.search).get("view");null===e&&(e="mask-login"),this.view=e},watch:{view:function(e,t){history.replaceState({},null,this.adminUrl()+"admin.php?page=wdf-advanced-tools&view="+this.view)}},mounted:function(){self=this,jQuery(".sui-mobile-nav").change((function(){self.view=jQuery(this).val()}))}},k=Object(n.a)(C,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"sui-wrap",class:[e.maybeHighContrast()]},[s("div",{staticClass:"advanced-tools"},[s("div",{staticClass:"sui-header"},[s("h1",{staticClass:"sui-header-title"},[e._v(e._s(e.__("Advanced Tools")))]),e._v(" "),s("doc-link",{attrs:{link:"https://premium.wpmudev.org/docs/wpmu-dev-plugins/defender/#advanced-tools"}})],1),e._v(" "),s("div",{staticClass:"sui-row-with-sidenav"},[s("div",{staticClass:"sui-sidenav"},[s("ul",{staticClass:"sui-vertical-tabs sui-sidenav-hide-md"},[s("li",{staticClass:"sui-vertical-tab",class:{current:"mask-login"===e.view}},[s("a",{attrs:{"data-tab":"notfound_lockout",href:"#mask-login"},on:{click:function(t){t.preventDefault(),e.view="mask-login"}}},[e._v(e._s(e.__("Mask Login Area")))])]),e._v(" "),s("li",{staticClass:"sui-vertical-tab",class:{current:"security-headers"===e.view}},[s("a",{attrs:{role:"button",href:"#"},on:{click:function(t){t.preventDefault(),e.view="security-headers"}}},[e._v(e._s(e.__("Security Headers")))])])]),e._v(" "),s("div",{staticClass:"sui-sidenav-hide-lg"},[s("select",{staticClass:"sui-mobile-nav"},[s("option",{attrs:{value:"mask-login"}},[e._v(e._s(e.__("Mask Login Area")))]),e._v(" "),s("option",{attrs:{value:"security-headers"}},[e._v(e._s(e.__("Security Headers")))])])])]),e._v(" "),s("mask-login",{directives:[{name:"show",rawName:"v-show",value:"mask-login"===e.view,expression:"view==='mask-login'"}]}),e._v(" "),s("security-headers",{directives:[{name:"show",rawName:"v-show",value:"security-headers"===e.view,expression:"view==='security-headers'"}]})],1)]),e._v(" "),s("app-footer")],1)}),[],!1,null,null,null).exports,S=s("./src/component/submit-button.vue"),A=s("./src/component/footer.vue"),T=s("./src/component/doc-link.vue");r.a.component("app-footer",A.a),r.a.component("doc-link",T.a),r.a.component("submit-button",S.a);new r.a({el:"#defender",components:{advanced_tools:k},render:function(e){return e(k)}})},"./src/component/doc-link.vue":function(e,t,s){"use strict";var i={mixins:[s("./src/helper/base_hepler.js").a],name:"doc-link",props:["link"],data:function(){return{whitelabel:defender.whitelabel}}},r=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(r.a)(i,(function(){var e=this.$createElement,t=this._self._c||e;return!1===this.whitelabel.hide_doc_link?t("div",{staticClass:"sui-actions-right"},[t("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:this.link,target:"_blank"}},[t("i",{staticClass:"sui-icon-academy"}),this._v(" "+this._s(this.__("View Documentation"))+"\n ")])]):this._e()}),[],!1,null,null,null);t.a=a.exports},"./src/component/footer.vue":function(e,t,s){"use strict";var i={data:function(){return{whitelabel:defender.whitelabel,is_free:parseInt(defender.is_free)}}},r=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(r.a)(i,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[!0===e.whitelabel.change_footer?s("div",{staticClass:"sui-footer"},[e._v("\n "+e._s(e.whitelabel.footer_text)+"\n ")]):s("div",{staticClass:"sui-footer"},[e._v("Made with "),s("i",{staticClass:"sui-icon-heart"}),e._v(" by WPMU DEV")]),e._v(" "),!1===e.whitelabel.hide_doc_link?s("div",[1===e.is_free?s("ul",{staticClass:"sui-footer-nav"},[e._m(0),e._v(" "),e._m(1),e._v(" "),e._m(2),e._v(" "),e._m(3),e._v(" "),e._m(4),e._v(" "),e._m(5),e._v(" "),e._m(6),e._v(" "),e._m(7)]):s("ul",{staticClass:"sui-footer-nav"},[e._m(8),e._v(" "),e._m(9),e._v(" "),e._m(10),e._v(" "),e._m(11),e._v(" "),e._m(12),e._v(" "),e._m(13),e._v(" "),e._m(14),e._v(" "),e._m(15)]),e._v(" "),e._m(16)]):e._e()])}),[function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://profiles.wordpress.org/wpmudev#content-plugins",target:"_blank"}},[this._v("Free\n Plugins")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://premium.wpmudev.org/features/",target:"_blank"}},[this._v("Membership")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://wordpress.org/support/plugin/plugin-name",target:"_blank"}},[this._v("Support")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://premium.wpmudev.org/projects/category/plugins/",target:"_blank"}},[this._v("Plugins")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://premium.wpmudev.org/hub/support/",target:"_blank"}},[this._v("Support")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://premium.wpmudev.org/hub/community/",target:"_blank"}},[this._v("Community")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ul",{staticClass:"sui-footer-social"},[s("li",[s("a",{attrs:{href:"https://www.facebook.com/wpmudev",target:"_blank"}},[s("i",{staticClass:"sui-icon-social-facebook",attrs:{"aria-hidden":"true"}}),e._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[e._v("Facebook")])])]),e._v(" "),s("li",[s("a",{attrs:{href:"https://twitter.com/wpmudev",target:"_blank"}},[s("i",{staticClass:"sui-icon-social-twitter",attrs:{"aria-hidden":"true"}})]),e._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[e._v("Twitter")])]),e._v(" "),s("li",[s("a",{attrs:{href:"https://www.instagram.com/wpmu_dev/",target:"_blank"}},[s("i",{staticClass:"sui-icon-instagram",attrs:{"aria-hidden":"true"}}),e._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[e._v("Instagram")])])])])}],!1,null,null,null);t.a=a.exports},"./src/component/submit-button.vue":function(e,t,s){"use strict";var i={name:"submit-button",props:["id","state","text","css-class","type"],computed:{getClass:function(){return"sui-button "+this.cssClass}}},r=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(r.a)(i,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("button",{staticClass:"sui-button",class:[e.getClass,{"sui-button-onload":e.state.on_saving}],attrs:{id:e.id,type:e.type,disabled:e.state.on_saving},on:{click:function(t){return e.$emit("click")}}},[s("span",{staticClass:"sui-loading-text"},[e._t("default")],2),e._v(" "),s("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])}),[],!1,null,null,null);t.a=a.exports},"./src/helper/base_hepler.js":function(e,t,s){"use strict";var i=s("./node_modules/xss/lib/index.js"),r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var s=[],i=!0,r=!1,a=void 0;try{for(var o,n=e[Symbol.iterator]();!(i=(o=n.next()).done)&&(s.push(o.value),!t||s.length!==t);i=!0);}catch(e){r=!0,a=e}finally{try{!i&&n.return&&n.return()}finally{if(r)throw a}}return s}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},a=wp.i18n,o={whiteList:{a:["href","title","target"],span:["class"],strong:["*"]},safeAttrValue:function(e,t,s,r){return"a"===e&&"href"===t&&"%s"===s?"%s":Object(i.safeAttrValue)(e,t,s,r)}},n=new i.FilterXSS(o),l=[];t.a={methods:{__:function(e){var t=a.__(e,"wpdef");return n.process(t)},xss:function(e){return n.process(e)},vsprintf:function(e){return a.sprintf.apply(null,arguments)},siteUrl:function(e){return void 0!==e?defender.site_url+e:defender.site_url},adminUrl:function(e){return void 0!==e?defender.admin_url+e:defender.admin_url},assetUrl:function(e){return defender.defender_url+e},maybeHighContrast:function(){return{"sui-color-accessible":!0===defender.misc.high_contrast}},maybeHideBranding:function(){return defender.whitelabel.hide_branding},isWhitelabelEnabled:function(){return defender.whitelabel.enabled},campaign_url:function(e){return"https://premium.wpmudev.org/project/wp-defender/?utm_source=defender&utm_medium=plugin&utm_campaign="+e},campaignUrl:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"https://premium.wpmudev.org/"+e+"?utm_source=defender&utm_medium=plugin&utm_campaign="+t},httpRequest:function(e,t,s,i,r){var a=this;void 0===r&&(this.state.on_saving=!0);var o=ajaxurl+"?action="+this.endpoints[t]+"&_wpnonce="+this.nonces[t],n=jQuery.ajax({url:o,method:e,data:s,success:function(e){var t=e.data;a.state.on_saving=!1,void 0!==t&&void 0!==t.message&&(e.success?Defender.showNotification("success",t.message):Defender.showNotification("error",t.message)),void 0!==i&&i(e)}});l.push(n)},httpGetRequest:function(e,t,s,i){this.httpRequest("get",e,t,s,i)},httpPostRequest:function(e,t,s,i){this.httpRequest("post",e,t,s,i)},abortAllRequests:function(){for(var e=0;e<l.length;e++)l[e].abort()},getQueryStringParams:function(e){return e?(/^[?#]/.test(e)?e.slice(1):e).split("&").reduce((function(e,t){var s=t.split("="),i=r(s,2),a=i[0],o=i[1];return e[a]=o?decodeURIComponent(o.replace(/\+/g," ")):"",e}),{}):{}},rebindSUI:function(){jQuery("select:not([multiple])").each((function(){SUI.suiSelect(this)})),jQuery(".sui-accordion").each((function(){SUI.suiAccordion(this)}));var e=jQuery(".sui-wrap");SUI.dialogs={},jQuery(".sui-dialog").each((function(){SUI.dialogs[this.id]=new A11yDialog(this,e)}))}}}},vue:function(e,t){e.exports=Vue}});
assets/app/audit.js CHANGED
@@ -1 +1 @@
1
- !function(t){var e=window.webpackHotUpdate;window.webpackHotUpdate=function(t,s){!function(t,e){if(!b[t]||!y[t])return;for(var s in y[t]=!1,e)Object.prototype.hasOwnProperty.call(e,s)&&(m[s]=e[s]);0==--p&&0===v&&C()}(t,s),e&&e(t,s)};var s,i=!0,n="1f0325ef5048e0254986",a={},r=[],o=[];function l(t){var e=D[t];if(!e)return M;var i=function(i){return e.hot.active?(D[i]?-1===D[i].parents.indexOf(t)&&D[i].parents.push(t):(r=[t],s=i),-1===e.children.indexOf(i)&&e.children.push(i)):(console.warn("[HMR] unexpected require("+i+") from disposed module "+t),r=[]),M(i)},n=function(t){return{configurable:!0,enumerable:!0,get:function(){return M[t]},set:function(e){M[t]=e}}};for(var a in M)Object.prototype.hasOwnProperty.call(M,a)&&"e"!==a&&"t"!==a&&Object.defineProperty(i,a,n(a));return i.e=function(t){return"ready"===c&&h("prepare"),v++,M.e(t).then(e,(function(t){throw e(),t}));function e(){v--,"prepare"===c&&(g[t]||x(t),0===v&&0===p&&C())}},i.t=function(t,e){return 1&e&&(t=i(t)),M.t(t,-2&e)},i}function u(t){var e={_acceptedDependencies:{},_declinedDependencies:{},_selfAccepted:!1,_selfDeclined:!1,_disposeHandlers:[],_main:s!==t,active:!0,accept:function(t,s){if(void 0===t)e._selfAccepted=!0;else if("function"==typeof t)e._selfAccepted=t;else if("object"==typeof t)for(var i=0;i<t.length;i++)e._acceptedDependencies[t[i]]=s||function(){};else e._acceptedDependencies[t]=s||function(){}},decline:function(t){if(void 0===t)e._selfDeclined=!0;else if("object"==typeof t)for(var s=0;s<t.length;s++)e._declinedDependencies[t[s]]=!0;else e._declinedDependencies[t]=!0},dispose:function(t){e._disposeHandlers.push(t)},addDisposeHandler:function(t){e._disposeHandlers.push(t)},removeDisposeHandler:function(t){var s=e._disposeHandlers.indexOf(t);s>=0&&e._disposeHandlers.splice(s,1)},check:k,apply:S,status:function(t){if(!t)return c;d.push(t)},addStatusHandler:function(t){d.push(t)},removeStatusHandler:function(t){var e=d.indexOf(t);e>=0&&d.splice(e,1)},data:a[t]};return s=void 0,e}var d=[],c="idle";function h(t){c=t;for(var e=0;e<d.length;e++)d[e].call(null,t)}var f,m,_,p=0,v=0,g={},y={},b={};function w(t){return+t+""===t?+t:t}function k(t){if("idle"!==c)throw new Error("check() is only allowed in idle status");return i=t,h("check"),(e=1e4,e=e||1e4,new Promise((function(t,s){if("undefined"==typeof XMLHttpRequest)return s(new Error("No browser support"));try{var i=new XMLHttpRequest,a=M.p+""+n+".hot-update.json";i.open("GET",a,!0),i.timeout=e,i.send(null)}catch(t){return s(t)}i.onreadystatechange=function(){if(4===i.readyState)if(0===i.status)s(new Error("Manifest request to "+a+" timed out."));else if(404===i.status)t();else if(200!==i.status&&304!==i.status)s(new Error("Manifest request to "+a+" failed."));else{try{var e=JSON.parse(i.responseText)}catch(t){return void s(t)}t(e)}}}))).then((function(t){if(!t)return h("idle"),null;y={},g={},b=t.c,_=t.h,h("prepare");var e=new Promise((function(t,e){f={resolve:t,reject:e}}));m={};return x(1),"prepare"===c&&0===v&&0===p&&C(),e}));var e}function x(t){b[t]?(y[t]=!0,p++,function(t){var e=document.createElement("script");e.charset="utf-8",e.src=M.p+""+t+"."+n+".hot-update.js",document.head.appendChild(e)}(t)):g[t]=!0}function C(){h("ready");var t=f;if(f=null,t)if(i)Promise.resolve().then((function(){return S(i)})).then((function(e){t.resolve(e)}),(function(e){t.reject(e)}));else{var e=[];for(var s in m)Object.prototype.hasOwnProperty.call(m,s)&&e.push(w(s));t.resolve(e)}}function S(e){if("ready"!==c)throw new Error("apply() is only allowed in ready status");var s,i,o,l,u;function d(t){for(var e=[t],s={},i=e.map((function(t){return{chain:[t],id:t}}));i.length>0;){var n=i.pop(),a=n.id,r=n.chain;if((l=D[a])&&!l.hot._selfAccepted){if(l.hot._selfDeclined)return{type:"self-declined",chain:r,moduleId:a};if(l.hot._main)return{type:"unaccepted",chain:r,moduleId:a};for(var o=0;o<l.parents.length;o++){var u=l.parents[o],d=D[u];if(d){if(d.hot._declinedDependencies[a])return{type:"declined",chain:r.concat([u]),moduleId:a,parentId:u};-1===e.indexOf(u)&&(d.hot._acceptedDependencies[a]?(s[u]||(s[u]=[]),f(s[u],[a])):(delete s[u],e.push(u),i.push({chain:r.concat([u]),id:u})))}}}}return{type:"accepted",moduleId:t,outdatedModules:e,outdatedDependencies:s}}function f(t,e){for(var s=0;s<e.length;s++){var i=e[s];-1===t.indexOf(i)&&t.push(i)}}e=e||{};var p={},v=[],g={},y=function(){console.warn("[HMR] unexpected require("+x.moduleId+") to disposed module")};for(var k in m)if(Object.prototype.hasOwnProperty.call(m,k)){var x;u=w(k);var C=!1,S=!1,O=!1,Y="";switch((x=m[k]?d(u):{type:"disposed",moduleId:k}).chain&&(Y="\nUpdate propagation: "+x.chain.join(" -> ")),x.type){case"self-declined":e.onDeclined&&e.onDeclined(x),e.ignoreDeclined||(C=new Error("Aborted because of self decline: "+x.moduleId+Y));break;case"declined":e.onDeclined&&e.onDeclined(x),e.ignoreDeclined||(C=new Error("Aborted because of declined dependency: "+x.moduleId+" in "+x.parentId+Y));break;case"unaccepted":e.onUnaccepted&&e.onUnaccepted(x),e.ignoreUnaccepted||(C=new Error("Aborted because "+u+" is not accepted"+Y));break;case"accepted":e.onAccepted&&e.onAccepted(x),S=!0;break;case"disposed":e.onDisposed&&e.onDisposed(x),O=!0;break;default:throw new Error("Unexception type "+x.type)}if(C)return h("abort"),Promise.reject(C);if(S)for(u in g[u]=m[u],f(v,x.outdatedModules),x.outdatedDependencies)Object.prototype.hasOwnProperty.call(x.outdatedDependencies,u)&&(p[u]||(p[u]=[]),f(p[u],x.outdatedDependencies[u]));O&&(f(v,[x.moduleId]),g[u]=y)}var T,P=[];for(i=0;i<v.length;i++)u=v[i],D[u]&&D[u].hot._selfAccepted&&g[u]!==y&&P.push({module:u,errorHandler:D[u].hot._selfAccepted});h("dispose"),Object.keys(b).forEach((function(t){!1===b[t]&&function(t){delete installedChunks[t]}(t)}));for(var j,A,L=v.slice();L.length>0;)if(u=L.pop(),l=D[u]){var E={},R=l.hot._disposeHandlers;for(o=0;o<R.length;o++)(s=R[o])(E);for(a[u]=E,l.hot.active=!1,delete D[u],delete p[u],o=0;o<l.children.length;o++){var N=D[l.children[o]];N&&((T=N.parents.indexOf(u))>=0&&N.parents.splice(T,1))}}for(u in p)if(Object.prototype.hasOwnProperty.call(p,u)&&(l=D[u]))for(A=p[u],o=0;o<A.length;o++)j=A[o],(T=l.children.indexOf(j))>=0&&l.children.splice(T,1);for(u in h("apply"),n=_,g)Object.prototype.hasOwnProperty.call(g,u)&&(t[u]=g[u]);var H=null;for(u in p)if(Object.prototype.hasOwnProperty.call(p,u)&&(l=D[u])){A=p[u];var I=[];for(i=0;i<A.length;i++)if(j=A[i],s=l.hot._acceptedDependencies[j]){if(-1!==I.indexOf(s))continue;I.push(s)}for(i=0;i<I.length;i++){s=I[i];try{s(A)}catch(t){e.onErrored&&e.onErrored({type:"accept-errored",moduleId:u,dependencyId:A[i],error:t}),e.ignoreErrored||H||(H=t)}}}for(i=0;i<P.length;i++){var U=P[i];u=U.module,r=[u];try{M(u)}catch(t){if("function"==typeof U.errorHandler)try{U.errorHandler(t)}catch(s){e.onErrored&&e.onErrored({type:"self-accept-error-handler-errored",moduleId:u,error:s,originalError:t}),e.ignoreErrored||H||(H=s),H||(H=t)}else e.onErrored&&e.onErrored({type:"self-accept-errored",moduleId:u,error:t}),e.ignoreErrored||H||(H=t)}}return H?(h("fail"),Promise.reject(H)):(h("idle"),new Promise((function(t){t(v)})))}var D={};function M(e){if(D[e])return D[e].exports;var s=D[e]={i:e,l:!1,exports:{},hot:u(e),parents:(o=r,r=[],o),children:[]};return t[e].call(s.exports,s,s.exports,l(e)),s.l=!0,s.exports}M.m=t,M.c=D,M.d=function(t,e,s){M.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:s})},M.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},M.t=function(t,e){if(1&e&&(t=M(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var s=Object.create(null);if(M.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)M.d(s,i,function(e){return t[e]}.bind(null,i));return s},M.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return M.d(e,"a",e),e},M.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},M.p="",M.h=function(){return n},l("./src/audit.js")(M.s="./src/audit.js")}({"./node_modules/cssfilter/lib/css.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/default.js"),n=s("./node_modules/cssfilter/lib/parser.js");s("./node_modules/cssfilter/lib/util.js");function a(t){return null==t}function r(t){(t=function(t){var e={};for(var s in t)e[s]=t[s];return e}(t||{})).whiteList=t.whiteList||i.whiteList,t.onAttr=t.onAttr||i.onAttr,t.onIgnoreAttr=t.onIgnoreAttr||i.onIgnoreAttr,t.safeAttrValue=t.safeAttrValue||i.safeAttrValue,this.options=t}r.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var e=this.options,s=e.whiteList,i=e.onAttr,r=e.onIgnoreAttr,o=e.safeAttrValue;return n(t,(function(t,e,n,l,u){var d=s[n],c=!1;if(!0===d?c=d:"function"==typeof d?c=d(l):d instanceof RegExp&&(c=d.test(l)),!0!==c&&(c=!1),l=o(n,l)){var h,f={position:e,sourcePosition:t,source:u,isWhite:c};return c?a(h=i(n,l,f))?n+":"+l:h:a(h=r(n,l,f))?void 0:h}}))},t.exports=r},"./node_modules/cssfilter/lib/default.js":function(t,e){function s(){var t={"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1};return t}var i=/javascript\s*\:/gim;e.whiteList=s(),e.getDefaultWhiteList=s,e.onAttr=function(t,e,s){},e.onIgnoreAttr=function(t,e,s){},e.safeAttrValue=function(t,e){return i.test(e)?"":e}},"./node_modules/cssfilter/lib/index.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/default.js"),n=s("./node_modules/cssfilter/lib/css.js");for(var a in(e=t.exports=function(t,e){return new n(e).process(t)}).FilterCSS=n,i)e[a]=i[a];"undefined"!=typeof window&&(window.filterCSS=t.exports)},"./node_modules/cssfilter/lib/parser.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/util.js");t.exports=function(t,e){";"!==(t=i.trimRight(t))[t.length-1]&&(t+=";");var s=t.length,n=!1,a=0,r=0,o="";function l(){if(!n){var s=i.trim(t.slice(a,r)),l=s.indexOf(":");if(-1!==l){var u=i.trim(s.slice(0,l)),d=i.trim(s.slice(l+1));if(u){var c=e(a,o.length,u,d,s);c&&(o+=c+"; ")}}}a=r+1}for(;r<s;r++){var u=t[r];if("/"===u&&"*"===t[r+1]){var d=t.indexOf("*/",r+2);if(-1===d)break;a=(r=d+1)+1,n=!1}else"("===u?n=!0:")"===u?n=!1:";"===u?n||l():"\n"===u&&l()}return i.trim(o)}},"./node_modules/cssfilter/lib/util.js":function(t,e){t.exports={indexOf:function(t,e){var s,i;if(Array.prototype.indexOf)return t.indexOf(e);for(s=0,i=t.length;s<i;s++)if(t[s]===e)return s;return-1},forEach:function(t,e,s){var i,n;if(Array.prototype.forEach)return t.forEach(e,s);for(i=0,n=t.length;i<n;i++)e.call(s,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(t){return String.prototype.trimRight?t.trimRight():t.replace(/(\s*$)/g,"")}}},"./node_modules/lodash/_Symbol.js":function(t,e,s){var i=s("./node_modules/lodash/_root.js").Symbol;t.exports=i},"./node_modules/lodash/_baseGetTag.js":function(t,e,s){var i=s("./node_modules/lodash/_Symbol.js"),n=s("./node_modules/lodash/_getRawTag.js"),a=s("./node_modules/lodash/_objectToString.js"),r=i?i.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":r&&r in Object(t)?n(t):a(t)}},"./node_modules/lodash/_baseSlice.js":function(t,e){t.exports=function(t,e,s){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),(s=s>n?n:s)<0&&(s+=n),n=e>s?0:s-e>>>0,e>>>=0;for(var a=Array(n);++i<n;)a[i]=t[i+e];return a}},"./node_modules/lodash/_freeGlobal.js":function(t,e,s){(function(e){var s="object"==typeof e&&e&&e.Object===Object&&e;t.exports=s}).call(this,s("./node_modules/webpack/buildin/global.js"))},"./node_modules/lodash/_getRawTag.js":function(t,e,s){var i=s("./node_modules/lodash/_Symbol.js"),n=Object.prototype,a=n.hasOwnProperty,r=n.toString,o=i?i.toStringTag:void 0;t.exports=function(t){var e=a.call(t,o),s=t[o];try{t[o]=void 0;var i=!0}catch(t){}var n=r.call(t);return i&&(e?t[o]=s:delete t[o]),n}},"./node_modules/lodash/_isIndex.js":function(t,e){var s=/^(?:0|[1-9]\d*)$/;t.exports=function(t,e){var i=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==i||"symbol"!=i&&s.test(t))&&t>-1&&t%1==0&&t<e}},"./node_modules/lodash/_isIterateeCall.js":function(t,e,s){var i=s("./node_modules/lodash/eq.js"),n=s("./node_modules/lodash/isArrayLike.js"),a=s("./node_modules/lodash/_isIndex.js"),r=s("./node_modules/lodash/isObject.js");t.exports=function(t,e,s){if(!r(s))return!1;var o=typeof e;return!!("number"==o?n(s)&&a(e,s.length):"string"==o&&e in s)&&i(s[e],t)}},"./node_modules/lodash/_objectToString.js":function(t,e){var s=Object.prototype.toString;t.exports=function(t){return s.call(t)}},"./node_modules/lodash/_root.js":function(t,e,s){var i=s("./node_modules/lodash/_freeGlobal.js"),n="object"==typeof self&&self&&self.Object===Object&&self,a=i||n||Function("return this")();t.exports=a},"./node_modules/lodash/chunk.js":function(t,e,s){var i=s("./node_modules/lodash/_baseSlice.js"),n=s("./node_modules/lodash/_isIterateeCall.js"),a=s("./node_modules/lodash/toInteger.js"),r=Math.ceil,o=Math.max;t.exports=function(t,e,s){e=(s?n(t,e,s):void 0===e)?1:o(a(e),0);var l=null==t?0:t.length;if(!l||e<1)return[];for(var u=0,d=0,c=Array(r(l/e));u<l;)c[d++]=i(t,u,u+=e);return c}},"./node_modules/lodash/eq.js":function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},"./node_modules/lodash/isArrayLike.js":function(t,e,s){var i=s("./node_modules/lodash/isFunction.js"),n=s("./node_modules/lodash/isLength.js");t.exports=function(t){return null!=t&&n(t.length)&&!i(t)}},"./node_modules/lodash/isFunction.js":function(t,e,s){var i=s("./node_modules/lodash/_baseGetTag.js"),n=s("./node_modules/lodash/isObject.js");t.exports=function(t){if(!n(t))return!1;var e=i(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},"./node_modules/lodash/isLength.js":function(t,e){t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},"./node_modules/lodash/isObject.js":function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},"./node_modules/lodash/isObjectLike.js":function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},"./node_modules/lodash/isSymbol.js":function(t,e,s){var i=s("./node_modules/lodash/_baseGetTag.js"),n=s("./node_modules/lodash/isObjectLike.js");t.exports=function(t){return"symbol"==typeof t||n(t)&&"[object Symbol]"==i(t)}},"./node_modules/lodash/toFinite.js":function(t,e,s){var i=s("./node_modules/lodash/toNumber.js");t.exports=function(t){return t?(t=i(t))===1/0||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}},"./node_modules/lodash/toInteger.js":function(t,e,s){var i=s("./node_modules/lodash/toFinite.js");t.exports=function(t){var e=i(t),s=e%1;return e==e?s?e-s:e:0}},"./node_modules/lodash/toNumber.js":function(t,e,s){var i=s("./node_modules/lodash/isObject.js"),n=s("./node_modules/lodash/isSymbol.js"),a=/^\s+|\s+$/g,r=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(n(t))return NaN;if(i(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=i(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(a,"");var s=o.test(t);return s||l.test(t)?u(t.slice(2),s?2:8):r.test(t)?NaN:+t}},"./node_modules/moment/locale sync recursive \\b\\B":function(t,e){function s(t){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}s.keys=function(){return[]},s.resolve=s,t.exports=s,s.id="./node_modules/moment/locale sync recursive \\b\\B"},"./node_modules/moment/moment.js":function(t,e,s){(function(t){t.exports=function(){"use strict";var e,i;function n(){return e.apply(null,arguments)}function a(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function r(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function o(t){return void 0===t}function l(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function u(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function d(t,e){var s,i=[];for(s=0;s<t.length;++s)i.push(e(t[s],s));return i}function c(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function h(t,e){for(var s in e)c(e,s)&&(t[s]=e[s]);return c(e,"toString")&&(t.toString=e.toString),c(e,"valueOf")&&(t.valueOf=e.valueOf),t}function f(t,e,s,i){return Ce(t,e,s,i,!0).utc()}function m(t){return null==t._pf&&(t._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),t._pf}function _(t){if(null==t._isValid){var e=m(t),s=i.call(e.parsedDateParts,(function(t){return null!=t})),n=!isNaN(t._d.getTime())&&e.overflow<0&&!e.empty&&!e.invalidMonth&&!e.invalidWeekday&&!e.weekdayMismatch&&!e.nullInput&&!e.invalidFormat&&!e.userInvalidated&&(!e.meridiem||e.meridiem&&s);if(t._strict&&(n=n&&0===e.charsLeftOver&&0===e.unusedTokens.length&&void 0===e.bigHour),null!=Object.isFrozen&&Object.isFrozen(t))return n;t._isValid=n}return t._isValid}function p(t){var e=f(NaN);return null!=t?h(m(e),t):m(e).userInvalidated=!0,e}i=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),s=e.length>>>0,i=0;i<s;i++)if(i in e&&t.call(this,e[i],i,e))return!0;return!1};var v=n.momentProperties=[];function g(t,e){var s,i,n;if(o(e._isAMomentObject)||(t._isAMomentObject=e._isAMomentObject),o(e._i)||(t._i=e._i),o(e._f)||(t._f=e._f),o(e._l)||(t._l=e._l),o(e._strict)||(t._strict=e._strict),o(e._tzm)||(t._tzm=e._tzm),o(e._isUTC)||(t._isUTC=e._isUTC),o(e._offset)||(t._offset=e._offset),o(e._pf)||(t._pf=m(e)),o(e._locale)||(t._locale=e._locale),v.length>0)for(s=0;s<v.length;s++)o(n=e[i=v[s]])||(t[i]=n);return t}var y=!1;function b(t){g(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===y&&(y=!0,n.updateOffset(this),y=!1)}function w(t){return t instanceof b||null!=t&&null!=t._isAMomentObject}function k(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function x(t){var e=+t,s=0;return 0!==e&&isFinite(e)&&(s=k(e)),s}function C(t,e,s){var i,n=Math.min(t.length,e.length),a=Math.abs(t.length-e.length),r=0;for(i=0;i<n;i++)(s&&t[i]!==e[i]||!s&&x(t[i])!==x(e[i]))&&r++;return r+a}function S(t){!1===n.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function D(t,e){var s=!0;return h((function(){if(null!=n.deprecationHandler&&n.deprecationHandler(null,t),s){for(var i,a=[],r=0;r<arguments.length;r++){if(i="","object"==typeof arguments[r]){for(var o in i+="\n["+r+"] ",arguments[0])i+=o+": "+arguments[0][o]+", ";i=i.slice(0,-2)}else i=arguments[r];a.push(i)}S(t+"\nArguments: "+Array.prototype.slice.call(a).join("")+"\n"+(new Error).stack),s=!1}return e.apply(this,arguments)}),e)}var M,O={};function Y(t,e){null!=n.deprecationHandler&&n.deprecationHandler(t,e),O[t]||(S(e),O[t]=!0)}function T(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function P(t,e){var s,i=h({},t);for(s in e)c(e,s)&&(r(t[s])&&r(e[s])?(i[s]={},h(i[s],t[s]),h(i[s],e[s])):null!=e[s]?i[s]=e[s]:delete i[s]);for(s in t)c(t,s)&&!c(e,s)&&r(t[s])&&(i[s]=h({},i[s]));return i}function j(t){null!=t&&this.set(t)}n.suppressDeprecationWarnings=!1,n.deprecationHandler=null,M=Object.keys?Object.keys:function(t){var e,s=[];for(e in t)c(t,e)&&s.push(e);return s};var A={};function L(t,e){var s=t.toLowerCase();A[s]=A[s+"s"]=A[e]=t}function E(t){return"string"==typeof t?A[t]||A[t.toLowerCase()]:void 0}function R(t){var e,s,i={};for(s in t)c(t,s)&&(e=E(s))&&(i[e]=t[s]);return i}var N={};function H(t,e){N[t]=e}function I(t,e,s){var i=""+Math.abs(t),n=e-i.length;return(t>=0?s?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+i}var U=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,W=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,F={},V={};function $(t,e,s,i){var n=i;"string"==typeof i&&(n=function(){return this[i]()}),t&&(V[t]=n),e&&(V[e[0]]=function(){return I(n.apply(this,arguments),e[1],e[2])}),s&&(V[s]=function(){return this.localeData().ordinal(n.apply(this,arguments),t)})}function G(t,e){return t.isValid()?(e=z(e,t.localeData()),F[e]=F[e]||function(t){var e,s,i,n=t.match(U);for(e=0,s=n.length;e<s;e++)V[n[e]]?n[e]=V[n[e]]:n[e]=(i=n[e]).match(/\[[\s\S]/)?i.replace(/^\[|\]$/g,""):i.replace(/\\/g,"");return function(e){var i,a="";for(i=0;i<s;i++)a+=T(n[i])?n[i].call(e,t):n[i];return a}}(e),F[e](t)):t.localeData().invalidDate()}function z(t,e){var s=5;function i(t){return e.longDateFormat(t)||t}for(W.lastIndex=0;s>=0&&W.test(t);)t=t.replace(W,i),W.lastIndex=0,s-=1;return t}var q=/\d/,Z=/\d\d/,B=/\d{3}/,Q=/\d{4}/,J=/[+-]?\d{6}/,X=/\d\d?/,K=/\d\d\d\d?/,tt=/\d\d\d\d\d\d?/,et=/\d{1,3}/,st=/\d{1,4}/,it=/[+-]?\d{1,6}/,nt=/\d+/,at=/[+-]?\d+/,rt=/Z|[+-]\d\d:?\d\d/gi,ot=/Z|[+-]\d\d(?::?\d\d)?/gi,lt=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,ut={};function dt(t,e,s){ut[t]=T(e)?e:function(t,i){return t&&s?s:e}}function ct(t,e){return c(ut,t)?ut[t](e._strict,e._locale):new RegExp(ht(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(t,e,s,i,n){return e||s||i||n}))))}function ht(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var ft={};function mt(t,e){var s,i=e;for("string"==typeof t&&(t=[t]),l(e)&&(i=function(t,s){s[e]=x(t)}),s=0;s<t.length;s++)ft[t[s]]=i}function _t(t,e){mt(t,(function(t,s,i,n){i._w=i._w||{},e(t,i._w,i,n)}))}function pt(t,e,s){null!=e&&c(ft,t)&&ft[t](e,s._a,s,t)}function vt(t){return gt(t)?366:365}function gt(t){return t%4==0&&t%100!=0||t%400==0}$("Y",0,0,(function(){var t=this.year();return t<=9999?""+t:"+"+t})),$(0,["YY",2],0,(function(){return this.year()%100})),$(0,["YYYY",4],0,"year"),$(0,["YYYYY",5],0,"year"),$(0,["YYYYYY",6,!0],0,"year"),L("year","y"),H("year",1),dt("Y",at),dt("YY",X,Z),dt("YYYY",st,Q),dt("YYYYY",it,J),dt("YYYYYY",it,J),mt(["YYYYY","YYYYYY"],0),mt("YYYY",(function(t,e){e[0]=2===t.length?n.parseTwoDigitYear(t):x(t)})),mt("YY",(function(t,e){e[0]=n.parseTwoDigitYear(t)})),mt("Y",(function(t,e){e[0]=parseInt(t,10)})),n.parseTwoDigitYear=function(t){return x(t)+(x(t)>68?1900:2e3)};var yt,bt=wt("FullYear",!0);function wt(t,e){return function(s){return null!=s?(xt(this,t,s),n.updateOffset(this,e),this):kt(this,t)}}function kt(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function xt(t,e,s){t.isValid()&&!isNaN(s)&&("FullYear"===e&&gt(t.year())&&1===t.month()&&29===t.date()?t._d["set"+(t._isUTC?"UTC":"")+e](s,t.month(),Ct(s,t.month())):t._d["set"+(t._isUTC?"UTC":"")+e](s))}function Ct(t,e){if(isNaN(t)||isNaN(e))return NaN;var s,i=(e%(s=12)+s)%s;return t+=(e-i)/12,1===i?gt(t)?29:28:31-i%7%2}yt=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;e<this.length;++e)if(this[e]===t)return e;return-1},$("M",["MM",2],"Mo",(function(){return this.month()+1})),$("MMM",0,0,(function(t){return this.localeData().monthsShort(this,t)})),$("MMMM",0,0,(function(t){return this.localeData().months(this,t)})),L("month","M"),H("month",8),dt("M",X),dt("MM",X,Z),dt("MMM",(function(t,e){return e.monthsShortRegex(t)})),dt("MMMM",(function(t,e){return e.monthsRegex(t)})),mt(["M","MM"],(function(t,e){e[1]=x(t)-1})),mt(["MMM","MMMM"],(function(t,e,s,i){var n=s._locale.monthsParse(t,i,s._strict);null!=n?e[1]=n:m(s).invalidMonth=t}));var St=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Dt="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Mt="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function Ot(t,e,s){var i,n,a,r=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],i=0;i<12;++i)a=f([2e3,i]),this._shortMonthsParse[i]=this.monthsShort(a,"").toLocaleLowerCase(),this._longMonthsParse[i]=this.months(a,"").toLocaleLowerCase();return s?"MMM"===e?-1!==(n=yt.call(this._shortMonthsParse,r))?n:null:-1!==(n=yt.call(this._longMonthsParse,r))?n:null:"MMM"===e?-1!==(n=yt.call(this._shortMonthsParse,r))||-1!==(n=yt.call(this._longMonthsParse,r))?n:null:-1!==(n=yt.call(this._longMonthsParse,r))||-1!==(n=yt.call(this._shortMonthsParse,r))?n:null}function Yt(t,e){var s;if(!t.isValid())return t;if("string"==typeof e)if(/^\d+$/.test(e))e=x(e);else if(!l(e=t.localeData().monthsParse(e)))return t;return s=Math.min(t.date(),Ct(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,s),t}function Tt(t){return null!=t?(Yt(this,t),n.updateOffset(this,!0),this):kt(this,"Month")}var Pt=lt,jt=lt;function At(){function t(t,e){return e.length-t.length}var e,s,i=[],n=[],a=[];for(e=0;e<12;e++)s=f([2e3,e]),i.push(this.monthsShort(s,"")),n.push(this.months(s,"")),a.push(this.months(s,"")),a.push(this.monthsShort(s,""));for(i.sort(t),n.sort(t),a.sort(t),e=0;e<12;e++)i[e]=ht(i[e]),n[e]=ht(n[e]);for(e=0;e<24;e++)a[e]=ht(a[e]);this._monthsRegex=new RegExp("^("+a.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+n.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+i.join("|")+")","i")}function Lt(t,e,s,i,n,a,r){var o;return t<100&&t>=0?(o=new Date(t+400,e,s,i,n,a,r),isFinite(o.getFullYear())&&o.setFullYear(t)):o=new Date(t,e,s,i,n,a,r),o}function Et(t){var e;if(t<100&&t>=0){var s=Array.prototype.slice.call(arguments);s[0]=t+400,e=new Date(Date.UTC.apply(null,s)),isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t)}else e=new Date(Date.UTC.apply(null,arguments));return e}function Rt(t,e,s){var i=7+e-s;return-(7+Et(t,0,i).getUTCDay()-e)%7+i-1}function Nt(t,e,s,i,n){var a,r,o=1+7*(e-1)+(7+s-i)%7+Rt(t,i,n);return o<=0?r=vt(a=t-1)+o:o>vt(t)?(a=t+1,r=o-vt(t)):(a=t,r=o),{year:a,dayOfYear:r}}function Ht(t,e,s){var i,n,a=Rt(t.year(),e,s),r=Math.floor((t.dayOfYear()-a-1)/7)+1;return r<1?i=r+It(n=t.year()-1,e,s):r>It(t.year(),e,s)?(i=r-It(t.year(),e,s),n=t.year()+1):(n=t.year(),i=r),{week:i,year:n}}function It(t,e,s){var i=Rt(t,e,s),n=Rt(t+1,e,s);return(vt(t)-i+n)/7}function Ut(t,e){return t.slice(e,7).concat(t.slice(0,e))}$("w",["ww",2],"wo","week"),$("W",["WW",2],"Wo","isoWeek"),L("week","w"),L("isoWeek","W"),H("week",5),H("isoWeek",5),dt("w",X),dt("ww",X,Z),dt("W",X),dt("WW",X,Z),_t(["w","ww","W","WW"],(function(t,e,s,i){e[i.substr(0,1)]=x(t)})),$("d",0,"do","day"),$("dd",0,0,(function(t){return this.localeData().weekdaysMin(this,t)})),$("ddd",0,0,(function(t){return this.localeData().weekdaysShort(this,t)})),$("dddd",0,0,(function(t){return this.localeData().weekdays(this,t)})),$("e",0,0,"weekday"),$("E",0,0,"isoWeekday"),L("day","d"),L("weekday","e"),L("isoWeekday","E"),H("day",11),H("weekday",11),H("isoWeekday",11),dt("d",X),dt("e",X),dt("E",X),dt("dd",(function(t,e){return e.weekdaysMinRegex(t)})),dt("ddd",(function(t,e){return e.weekdaysShortRegex(t)})),dt("dddd",(function(t,e){return e.weekdaysRegex(t)})),_t(["dd","ddd","dddd"],(function(t,e,s,i){var n=s._locale.weekdaysParse(t,i,s._strict);null!=n?e.d=n:m(s).invalidWeekday=t})),_t(["d","e","E"],(function(t,e,s,i){e[i]=x(t)}));var Wt="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Ft="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Vt="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function $t(t,e,s){var i,n,a,r=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)a=f([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(a,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(a,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(a,"").toLocaleLowerCase();return s?"dddd"===e?-1!==(n=yt.call(this._weekdaysParse,r))?n:null:"ddd"===e?-1!==(n=yt.call(this._shortWeekdaysParse,r))?n:null:-1!==(n=yt.call(this._minWeekdaysParse,r))?n:null:"dddd"===e?-1!==(n=yt.call(this._weekdaysParse,r))||-1!==(n=yt.call(this._shortWeekdaysParse,r))||-1!==(n=yt.call(this._minWeekdaysParse,r))?n:null:"ddd"===e?-1!==(n=yt.call(this._shortWeekdaysParse,r))||-1!==(n=yt.call(this._weekdaysParse,r))||-1!==(n=yt.call(this._minWeekdaysParse,r))?n:null:-1!==(n=yt.call(this._minWeekdaysParse,r))||-1!==(n=yt.call(this._weekdaysParse,r))||-1!==(n=yt.call(this._shortWeekdaysParse,r))?n:null}var Gt=lt,zt=lt,qt=lt;function Zt(){function t(t,e){return e.length-t.length}var e,s,i,n,a,r=[],o=[],l=[],u=[];for(e=0;e<7;e++)s=f([2e3,1]).day(e),i=this.weekdaysMin(s,""),n=this.weekdaysShort(s,""),a=this.weekdays(s,""),r.push(i),o.push(n),l.push(a),u.push(i),u.push(n),u.push(a);for(r.sort(t),o.sort(t),l.sort(t),u.sort(t),e=0;e<7;e++)o[e]=ht(o[e]),l[e]=ht(l[e]),u[e]=ht(u[e]);this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Bt(){return this.hours()%12||12}function Qt(t,e){$(t,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)}))}function Jt(t,e){return e._meridiemParse}$("H",["HH",2],0,"hour"),$("h",["hh",2],0,Bt),$("k",["kk",2],0,(function(){return this.hours()||24})),$("hmm",0,0,(function(){return""+Bt.apply(this)+I(this.minutes(),2)})),$("hmmss",0,0,(function(){return""+Bt.apply(this)+I(this.minutes(),2)+I(this.seconds(),2)})),$("Hmm",0,0,(function(){return""+this.hours()+I(this.minutes(),2)})),$("Hmmss",0,0,(function(){return""+this.hours()+I(this.minutes(),2)+I(this.seconds(),2)})),Qt("a",!0),Qt("A",!1),L("hour","h"),H("hour",13),dt("a",Jt),dt("A",Jt),dt("H",X),dt("h",X),dt("k",X),dt("HH",X,Z),dt("hh",X,Z),dt("kk",X,Z),dt("hmm",K),dt("hmmss",tt),dt("Hmm",K),dt("Hmmss",tt),mt(["H","HH"],3),mt(["k","kk"],(function(t,e,s){var i=x(t);e[3]=24===i?0:i})),mt(["a","A"],(function(t,e,s){s._isPm=s._locale.isPM(t),s._meridiem=t})),mt(["h","hh"],(function(t,e,s){e[3]=x(t),m(s).bigHour=!0})),mt("hmm",(function(t,e,s){var i=t.length-2;e[3]=x(t.substr(0,i)),e[4]=x(t.substr(i)),m(s).bigHour=!0})),mt("hmmss",(function(t,e,s){var i=t.length-4,n=t.length-2;e[3]=x(t.substr(0,i)),e[4]=x(t.substr(i,2)),e[5]=x(t.substr(n)),m(s).bigHour=!0})),mt("Hmm",(function(t,e,s){var i=t.length-2;e[3]=x(t.substr(0,i)),e[4]=x(t.substr(i))})),mt("Hmmss",(function(t,e,s){var i=t.length-4,n=t.length-2;e[3]=x(t.substr(0,i)),e[4]=x(t.substr(i,2)),e[5]=x(t.substr(n))}));var Xt,Kt=wt("Hours",!0),te={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Dt,monthsShort:Mt,week:{dow:0,doy:6},weekdays:Wt,weekdaysMin:Vt,weekdaysShort:Ft,meridiemParse:/[ap]\.?m?\.?/i},ee={},se={};function ie(t){return t?t.toLowerCase().replace("_","-"):t}function ne(e){var i=null;if(!ee[e]&&void 0!==t&&t&&t.exports)try{i=Xt._abbr,s("./node_modules/moment/locale sync recursive \\b\\B")("./"+e),ae(i)}catch(t){}return ee[e]}function ae(t,e){var s;return t&&((s=o(e)?oe(t):re(t,e))?Xt=s:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+t+" not found. Did you forget to load it?")),Xt._abbr}function re(t,e){if(null!==e){var s,i=te;if(e.abbr=t,null!=ee[t])Y("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=ee[t]._config;else if(null!=e.parentLocale)if(null!=ee[e.parentLocale])i=ee[e.parentLocale]._config;else{if(null==(s=ne(e.parentLocale)))return se[e.parentLocale]||(se[e.parentLocale]=[]),se[e.parentLocale].push({name:t,config:e}),null;i=s._config}return ee[t]=new j(P(i,e)),se[t]&&se[t].forEach((function(t){re(t.name,t.config)})),ae(t),ee[t]}return delete ee[t],null}function oe(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Xt;if(!a(t)){if(e=ne(t))return e;t=[t]}return function(t){for(var e,s,i,n,a=0;a<t.length;){for(e=(n=ie(t[a]).split("-")).length,s=(s=ie(t[a+1]))?s.split("-"):null;e>0;){if(i=ne(n.slice(0,e).join("-")))return i;if(s&&s.length>=e&&C(n,s,!0)>=e-1)break;e--}a++}return Xt}(t)}function le(t){var e,s=t._a;return s&&-2===m(t).overflow&&(e=s[1]<0||s[1]>11?1:s[2]<1||s[2]>Ct(s[0],s[1])?2:s[3]<0||s[3]>24||24===s[3]&&(0!==s[4]||0!==s[5]||0!==s[6])?3:s[4]<0||s[4]>59?4:s[5]<0||s[5]>59?5:s[6]<0||s[6]>999?6:-1,m(t)._overflowDayOfYear&&(e<0||e>2)&&(e=2),m(t)._overflowWeeks&&-1===e&&(e=7),m(t)._overflowWeekday&&-1===e&&(e=8),m(t).overflow=e),t}function ue(t,e,s){return null!=t?t:null!=e?e:s}function de(t){var e,s,i,a,r,o=[];if(!t._d){for(i=function(t){var e=new Date(n.now());return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}(t),t._w&&null==t._a[2]&&null==t._a[1]&&function(t){var e,s,i,n,a,r,o,l;if(null!=(e=t._w).GG||null!=e.W||null!=e.E)a=1,r=4,s=ue(e.GG,t._a[0],Ht(Se(),1,4).year),i=ue(e.W,1),((n=ue(e.E,1))<1||n>7)&&(l=!0);else{a=t._locale._week.dow,r=t._locale._week.doy;var u=Ht(Se(),a,r);s=ue(e.gg,t._a[0],u.year),i=ue(e.w,u.week),null!=e.d?((n=e.d)<0||n>6)&&(l=!0):null!=e.e?(n=e.e+a,(e.e<0||e.e>6)&&(l=!0)):n=a}i<1||i>It(s,a,r)?m(t)._overflowWeeks=!0:null!=l?m(t)._overflowWeekday=!0:(o=Nt(s,i,n,a,r),t._a[0]=o.year,t._dayOfYear=o.dayOfYear)}(t),null!=t._dayOfYear&&(r=ue(t._a[0],i[0]),(t._dayOfYear>vt(r)||0===t._dayOfYear)&&(m(t)._overflowDayOfYear=!0),s=Et(r,0,t._dayOfYear),t._a[1]=s.getUTCMonth(),t._a[2]=s.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=o[e]=i[e];for(;e<7;e++)t._a[e]=o[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[3]&&0===t._a[4]&&0===t._a[5]&&0===t._a[6]&&(t._nextDay=!0,t._a[3]=0),t._d=(t._useUTC?Et:Lt).apply(null,o),a=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[3]=24),t._w&&void 0!==t._w.d&&t._w.d!==a&&(m(t).weekdayMismatch=!0)}}var ce=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,he=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,fe=/Z|[+-]\d\d(?::?\d\d)?/,me=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],_e=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],pe=/^\/?Date\((\-?\d+)/i;function ve(t){var e,s,i,n,a,r,o=t._i,l=ce.exec(o)||he.exec(o);if(l){for(m(t).iso=!0,e=0,s=me.length;e<s;e++)if(me[e][1].exec(l[1])){n=me[e][0],i=!1!==me[e][2];break}if(null==n)return void(t._isValid=!1);if(l[3]){for(e=0,s=_e.length;e<s;e++)if(_e[e][1].exec(l[3])){a=(l[2]||" ")+_e[e][0];break}if(null==a)return void(t._isValid=!1)}if(!i&&null!=a)return void(t._isValid=!1);if(l[4]){if(!fe.exec(l[4]))return void(t._isValid=!1);r="Z"}t._f=n+(a||"")+(r||""),ke(t)}else t._isValid=!1}var ge=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function ye(t){var e=parseInt(t,10);return e<=49?2e3+e:e<=999?1900+e:e}var be={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function we(t){var e,s,i,n,a,r,o,l=ge.exec(t._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(l){var u=(e=l[4],s=l[3],i=l[2],n=l[5],a=l[6],r=l[7],o=[ye(e),Mt.indexOf(s),parseInt(i,10),parseInt(n,10),parseInt(a,10)],r&&o.push(parseInt(r,10)),o);if(!function(t,e,s){return!t||Ft.indexOf(t)===new Date(e[0],e[1],e[2]).getDay()||(m(s).weekdayMismatch=!0,s._isValid=!1,!1)}(l[1],u,t))return;t._a=u,t._tzm=function(t,e,s){if(t)return be[t];if(e)return 0;var i=parseInt(s,10),n=i%100;return(i-n)/100*60+n}(l[8],l[9],l[10]),t._d=Et.apply(null,t._a),t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),m(t).rfc2822=!0}else t._isValid=!1}function ke(t){if(t._f!==n.ISO_8601)if(t._f!==n.RFC_2822){t._a=[],m(t).empty=!0;var e,s,i,a,r,o=""+t._i,l=o.length,u=0;for(i=z(t._f,t._locale).match(U)||[],e=0;e<i.length;e++)a=i[e],(s=(o.match(ct(a,t))||[])[0])&&((r=o.substr(0,o.indexOf(s))).length>0&&m(t).unusedInput.push(r),o=o.slice(o.indexOf(s)+s.length),u+=s.length),V[a]?(s?m(t).empty=!1:m(t).unusedTokens.push(a),pt(a,s,t)):t._strict&&!s&&m(t).unusedTokens.push(a);m(t).charsLeftOver=l-u,o.length>0&&m(t).unusedInput.push(o),t._a[3]<=12&&!0===m(t).bigHour&&t._a[3]>0&&(m(t).bigHour=void 0),m(t).parsedDateParts=t._a.slice(0),m(t).meridiem=t._meridiem,t._a[3]=function(t,e,s){var i;return null==s?e:null!=t.meridiemHour?t.meridiemHour(e,s):null!=t.isPM?((i=t.isPM(s))&&e<12&&(e+=12),i||12!==e||(e=0),e):e}(t._locale,t._a[3],t._meridiem),de(t),le(t)}else we(t);else ve(t)}function xe(t){var e=t._i,s=t._f;return t._locale=t._locale||oe(t._l),null===e||void 0===s&&""===e?p({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),w(e)?new b(le(e)):(u(e)?t._d=e:a(s)?function(t){var e,s,i,n,a;if(0===t._f.length)return m(t).invalidFormat=!0,void(t._d=new Date(NaN));for(n=0;n<t._f.length;n++)a=0,e=g({},t),null!=t._useUTC&&(e._useUTC=t._useUTC),e._f=t._f[n],ke(e),_(e)&&(a+=m(e).charsLeftOver,a+=10*m(e).unusedTokens.length,m(e).score=a,(null==i||a<i)&&(i=a,s=e));h(t,s||e)}(t):s?ke(t):function(t){var e=t._i;o(e)?t._d=new Date(n.now()):u(e)?t._d=new Date(e.valueOf()):"string"==typeof e?function(t){var e=pe.exec(t._i);null===e?(ve(t),!1===t._isValid&&(delete t._isValid,we(t),!1===t._isValid&&(delete t._isValid,n.createFromInputFallback(t)))):t._d=new Date(+e[1])}(t):a(e)?(t._a=d(e.slice(0),(function(t){return parseInt(t,10)})),de(t)):r(e)?function(t){if(!t._d){var e=R(t._i);t._a=d([e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],(function(t){return t&&parseInt(t,10)})),de(t)}}(t):l(e)?t._d=new Date(e):n.createFromInputFallback(t)}(t),_(t)||(t._d=null),t))}function Ce(t,e,s,i,n){var o,l={};return!0!==s&&!1!==s||(i=s,s=void 0),(r(t)&&function(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}(t)||a(t)&&0===t.length)&&(t=void 0),l._isAMomentObject=!0,l._useUTC=l._isUTC=n,l._l=s,l._i=t,l._f=e,l._strict=i,(o=new b(le(xe(l))))._nextDay&&(o.add(1,"d"),o._nextDay=void 0),o}function Se(t,e,s,i){return Ce(t,e,s,i,!1)}n.createFromInputFallback=D("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",(function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))})),n.ISO_8601=function(){},n.RFC_2822=function(){};var De=D("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var t=Se.apply(null,arguments);return this.isValid()&&t.isValid()?t<this?this:t:p()})),Me=D("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var t=Se.apply(null,arguments);return this.isValid()&&t.isValid()?t>this?this:t:p()}));function Oe(t,e){var s,i;if(1===e.length&&a(e[0])&&(e=e[0]),!e.length)return Se();for(s=e[0],i=1;i<e.length;++i)e[i].isValid()&&!e[i][t](s)||(s=e[i]);return s}var Ye=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Te(t){var e=R(t),s=e.year||0,i=e.quarter||0,n=e.month||0,a=e.week||e.isoWeek||0,r=e.day||0,o=e.hour||0,l=e.minute||0,u=e.second||0,d=e.millisecond||0;this._isValid=function(t){for(var e in t)if(-1===yt.call(Ye,e)||null!=t[e]&&isNaN(t[e]))return!1;for(var s=!1,i=0;i<Ye.length;++i)if(t[Ye[i]]){if(s)return!1;parseFloat(t[Ye[i]])!==x(t[Ye[i]])&&(s=!0)}return!0}(e),this._milliseconds=+d+1e3*u+6e4*l+1e3*o*60*60,this._days=+r+7*a,this._months=+n+3*i+12*s,this._data={},this._locale=oe(),this._bubble()}function Pe(t){return t instanceof Te}function je(t){return t<0?-1*Math.round(-1*t):Math.round(t)}function Ae(t,e){$(t,0,0,(function(){var t=this.utcOffset(),s="+";return t<0&&(t=-t,s="-"),s+I(~~(t/60),2)+e+I(~~t%60,2)}))}Ae("Z",":"),Ae("ZZ",""),dt("Z",ot),dt("ZZ",ot),mt(["Z","ZZ"],(function(t,e,s){s._useUTC=!0,s._tzm=Ee(ot,t)}));var Le=/([\+\-]|\d\d)/gi;function Ee(t,e){var s=(e||"").match(t);if(null===s)return null;var i=((s[s.length-1]||[])+"").match(Le)||["-",0,0],n=60*i[1]+x(i[2]);return 0===n?0:"+"===i[0]?n:-n}function Re(t,e){var s,i;return e._isUTC?(s=e.clone(),i=(w(t)||u(t)?t.valueOf():Se(t).valueOf())-s.valueOf(),s._d.setTime(s._d.valueOf()+i),n.updateOffset(s,!1),s):Se(t).local()}function Ne(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function He(){return!!this.isValid()&&this._isUTC&&0===this._offset}n.updateOffset=function(){};var Ie=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Ue=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function We(t,e){var s,i,n,a,r,o,u=t,d=null;return Pe(t)?u={ms:t._milliseconds,d:t._days,M:t._months}:l(t)?(u={},e?u[e]=t:u.milliseconds=t):(d=Ie.exec(t))?(s="-"===d[1]?-1:1,u={y:0,d:x(d[2])*s,h:x(d[3])*s,m:x(d[4])*s,s:x(d[5])*s,ms:x(je(1e3*d[6]))*s}):(d=Ue.exec(t))?(s="-"===d[1]?-1:1,u={y:Fe(d[2],s),M:Fe(d[3],s),w:Fe(d[4],s),d:Fe(d[5],s),h:Fe(d[6],s),m:Fe(d[7],s),s:Fe(d[8],s)}):null==u?u={}:"object"==typeof u&&("from"in u||"to"in u)&&(a=Se(u.from),r=Se(u.to),n=a.isValid()&&r.isValid()?(r=Re(r,a),a.isBefore(r)?o=Ve(a,r):((o=Ve(r,a)).milliseconds=-o.milliseconds,o.months=-o.months),o):{milliseconds:0,months:0},(u={}).ms=n.milliseconds,u.M=n.months),i=new Te(u),Pe(t)&&c(t,"_locale")&&(i._locale=t._locale),i}function Fe(t,e){var s=t&&parseFloat(t.replace(",","."));return(isNaN(s)?0:s)*e}function Ve(t,e){var s={};return s.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(s.months,"M").isAfter(e)&&--s.months,s.milliseconds=+e-+t.clone().add(s.months,"M"),s}function $e(t,e){return function(s,i){var n;return null===i||isNaN(+i)||(Y(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),n=s,s=i,i=n),Ge(this,We(s="string"==typeof s?+s:s,i),t),this}}function Ge(t,e,s,i){var a=e._milliseconds,r=je(e._days),o=je(e._months);t.isValid()&&(i=null==i||i,o&&Yt(t,kt(t,"Month")+o*s),r&&xt(t,"Date",kt(t,"Date")+r*s),a&&t._d.setTime(t._d.valueOf()+a*s),i&&n.updateOffset(t,r||o))}We.fn=Te.prototype,We.invalid=function(){return We(NaN)};var ze=$e(1,"add"),qe=$e(-1,"subtract");function Ze(t,e){var s=12*(e.year()-t.year())+(e.month()-t.month()),i=t.clone().add(s,"months");return-(s+(e-i<0?(e-i)/(i-t.clone().add(s-1,"months")):(e-i)/(t.clone().add(s+1,"months")-i)))||0}function Be(t){var e;return void 0===t?this._locale._abbr:(null!=(e=oe(t))&&(this._locale=e),this)}n.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",n.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Qe=D("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(t){return void 0===t?this.localeData():this.locale(t)}));function Je(){return this._locale}function Xe(t,e){return(t%e+e)%e}function Ke(t,e,s){return t<100&&t>=0?new Date(t+400,e,s)-126227808e5:new Date(t,e,s).valueOf()}function ts(t,e,s){return t<100&&t>=0?Date.UTC(t+400,e,s)-126227808e5:Date.UTC(t,e,s)}function es(t,e){$(0,[t,t.length],0,e)}function ss(t,e,s,i,n){var a;return null==t?Ht(this,i,n).year:(e>(a=It(t,i,n))&&(e=a),is.call(this,t,e,s,i,n))}function is(t,e,s,i,n){var a=Nt(t,e,s,i,n),r=Et(a.year,0,a.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}$(0,["gg",2],0,(function(){return this.weekYear()%100})),$(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),es("gggg","weekYear"),es("ggggg","weekYear"),es("GGGG","isoWeekYear"),es("GGGGG","isoWeekYear"),L("weekYear","gg"),L("isoWeekYear","GG"),H("weekYear",1),H("isoWeekYear",1),dt("G",at),dt("g",at),dt("GG",X,Z),dt("gg",X,Z),dt("GGGG",st,Q),dt("gggg",st,Q),dt("GGGGG",it,J),dt("ggggg",it,J),_t(["gggg","ggggg","GGGG","GGGGG"],(function(t,e,s,i){e[i.substr(0,2)]=x(t)})),_t(["gg","GG"],(function(t,e,s,i){e[i]=n.parseTwoDigitYear(t)})),$("Q",0,"Qo","quarter"),L("quarter","Q"),H("quarter",7),dt("Q",q),mt("Q",(function(t,e){e[1]=3*(x(t)-1)})),$("D",["DD",2],"Do","date"),L("date","D"),H("date",9),dt("D",X),dt("DD",X,Z),dt("Do",(function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient})),mt(["D","DD"],2),mt("Do",(function(t,e){e[2]=x(t.match(X)[0])}));var ns=wt("Date",!0);$("DDD",["DDDD",3],"DDDo","dayOfYear"),L("dayOfYear","DDD"),H("dayOfYear",4),dt("DDD",et),dt("DDDD",B),mt(["DDD","DDDD"],(function(t,e,s){s._dayOfYear=x(t)})),$("m",["mm",2],0,"minute"),L("minute","m"),H("minute",14),dt("m",X),dt("mm",X,Z),mt(["m","mm"],4);var as=wt("Minutes",!1);$("s",["ss",2],0,"second"),L("second","s"),H("second",15),dt("s",X),dt("ss",X,Z),mt(["s","ss"],5);var rs,os=wt("Seconds",!1);for($("S",0,0,(function(){return~~(this.millisecond()/100)})),$(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),$(0,["SSS",3],0,"millisecond"),$(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),$(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),$(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),$(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),$(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),$(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),L("millisecond","ms"),H("millisecond",16),dt("S",et,q),dt("SS",et,Z),dt("SSS",et,B),rs="SSSS";rs.length<=9;rs+="S")dt(rs,nt);function ls(t,e){e[6]=x(1e3*("0."+t))}for(rs="S";rs.length<=9;rs+="S")mt(rs,ls);var us=wt("Milliseconds",!1);$("z",0,0,"zoneAbbr"),$("zz",0,0,"zoneName");var ds=b.prototype;function cs(t){return t}ds.add=ze,ds.calendar=function(t,e){var s=t||Se(),i=Re(s,this).startOf("day"),a=n.calendarFormat(this,i)||"sameElse",r=e&&(T(e[a])?e[a].call(this,s):e[a]);return this.format(r||this.localeData().calendar(a,this,Se(s)))},ds.clone=function(){return new b(this)},ds.diff=function(t,e,s){var i,n,a;if(!this.isValid())return NaN;if(!(i=Re(t,this)).isValid())return NaN;switch(n=6e4*(i.utcOffset()-this.utcOffset()),e=E(e)){case"year":a=Ze(this,i)/12;break;case"month":a=Ze(this,i);break;case"quarter":a=Ze(this,i)/3;break;case"second":a=(this-i)/1e3;break;case"minute":a=(this-i)/6e4;break;case"hour":a=(this-i)/36e5;break;case"day":a=(this-i-n)/864e5;break;case"week":a=(this-i-n)/6048e5;break;default:a=this-i}return s?a:k(a)},ds.endOf=function(t){var e;if(void 0===(t=E(t))||"millisecond"===t||!this.isValid())return this;var s=this._isUTC?ts:Ke;switch(t){case"year":e=s(this.year()+1,0,1)-1;break;case"quarter":e=s(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":e=s(this.year(),this.month()+1,1)-1;break;case"week":e=s(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":e=s(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":e=s(this.year(),this.month(),this.date()+1)-1;break;case"hour":e=this._d.valueOf(),e+=36e5-Xe(e+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":e=this._d.valueOf(),e+=6e4-Xe(e,6e4)-1;break;case"second":e=this._d.valueOf(),e+=1e3-Xe(e,1e3)-1}return this._d.setTime(e),n.updateOffset(this,!0),this},ds.format=function(t){t||(t=this.isUtc()?n.defaultFormatUtc:n.defaultFormat);var e=G(this,t);return this.localeData().postformat(e)},ds.from=function(t,e){return this.isValid()&&(w(t)&&t.isValid()||Se(t).isValid())?We({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},ds.fromNow=function(t){return this.from(Se(),t)},ds.to=function(t,e){return this.isValid()&&(w(t)&&t.isValid()||Se(t).isValid())?We({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},ds.toNow=function(t){return this.to(Se(),t)},ds.get=function(t){return T(this[t=E(t)])?this[t]():this},ds.invalidAt=function(){return m(this).overflow},ds.isAfter=function(t,e){var s=w(t)?t:Se(t);return!(!this.isValid()||!s.isValid())&&("millisecond"===(e=E(e)||"millisecond")?this.valueOf()>s.valueOf():s.valueOf()<this.clone().startOf(e).valueOf())},ds.isBefore=function(t,e){var s=w(t)?t:Se(t);return!(!this.isValid()||!s.isValid())&&("millisecond"===(e=E(e)||"millisecond")?this.valueOf()<s.valueOf():this.clone().endOf(e).valueOf()<s.valueOf())},ds.isBetween=function(t,e,s,i){var n=w(t)?t:Se(t),a=w(e)?e:Se(e);return!!(this.isValid()&&n.isValid()&&a.isValid())&&("("===(i=i||"()")[0]?this.isAfter(n,s):!this.isBefore(n,s))&&(")"===i[1]?this.isBefore(a,s):!this.isAfter(a,s))},ds.isSame=function(t,e){var s,i=w(t)?t:Se(t);return!(!this.isValid()||!i.isValid())&&("millisecond"===(e=E(e)||"millisecond")?this.valueOf()===i.valueOf():(s=i.valueOf(),this.clone().startOf(e).valueOf()<=s&&s<=this.clone().endOf(e).valueOf()))},ds.isSameOrAfter=function(t,e){return this.isSame(t,e)||this.isAfter(t,e)},ds.isSameOrBefore=function(t,e){return this.isSame(t,e)||this.isBefore(t,e)},ds.isValid=function(){return _(this)},ds.lang=Qe,ds.locale=Be,ds.localeData=Je,ds.max=Me,ds.min=De,ds.parsingFlags=function(){return h({},m(this))},ds.set=function(t,e){if("object"==typeof t)for(var s=function(t){var e=[];for(var s in t)e.push({unit:s,priority:N[s]});return e.sort((function(t,e){return t.priority-e.priority})),e}(t=R(t)),i=0;i<s.length;i++)this[s[i].unit](t[s[i].unit]);else if(T(this[t=E(t)]))return this[t](e);return this},ds.startOf=function(t){var e;if(void 0===(t=E(t))||"millisecond"===t||!this.isValid())return this;var s=this._isUTC?ts:Ke;switch(t){case"year":e=s(this.year(),0,1);break;case"quarter":e=s(this.year(),this.month()-this.month()%3,1);break;case"month":e=s(this.year(),this.month(),1);break;case"week":e=s(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":e=s(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":e=s(this.year(),this.month(),this.date());break;case"hour":e=this._d.valueOf(),e-=Xe(e+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case"minute":e=this._d.valueOf(),e-=Xe(e,6e4);break;case"second":e=this._d.valueOf(),e-=Xe(e,1e3)}return this._d.setTime(e),n.updateOffset(this,!0),this},ds.subtract=qe,ds.toArray=function(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]},ds.toObject=function(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}},ds.toDate=function(){return new Date(this.valueOf())},ds.toISOString=function(t){if(!this.isValid())return null;var e=!0!==t,s=e?this.clone().utc():this;return s.year()<0||s.year()>9999?G(s,e?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):T(Date.prototype.toISOString)?e?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",G(s,"Z")):G(s,e?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},ds.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var s="["+t+'("]',i=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n=e+'[")]';return this.format(s+i+"-MM-DD[T]HH:mm:ss.SSS"+n)},ds.toJSON=function(){return this.isValid()?this.toISOString():null},ds.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},ds.unix=function(){return Math.floor(this.valueOf()/1e3)},ds.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},ds.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},ds.year=bt,ds.isLeapYear=function(){return gt(this.year())},ds.weekYear=function(t){return ss.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},ds.isoWeekYear=function(t){return ss.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)},ds.quarter=ds.quarters=function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},ds.month=Tt,ds.daysInMonth=function(){return Ct(this.year(),this.month())},ds.week=ds.weeks=function(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")},ds.isoWeek=ds.isoWeeks=function(t){var e=Ht(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")},ds.weeksInYear=function(){var t=this.localeData()._week;return It(this.year(),t.dow,t.doy)},ds.isoWeeksInYear=function(){return It(this.year(),1,4)},ds.date=ns,ds.day=ds.days=function(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=function(t,e){return"string"!=typeof t?t:isNaN(t)?"number"==typeof(t=e.weekdaysParse(t))?t:null:parseInt(t,10)}(t,this.localeData()),this.add(t-e,"d")):e},ds.weekday=function(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")},ds.isoWeekday=function(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=function(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7},ds.dayOfYear=function(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")},ds.hour=ds.hours=Kt,ds.minute=ds.minutes=as,ds.second=ds.seconds=os,ds.millisecond=ds.milliseconds=us,ds.utcOffset=function(t,e,s){var i,a=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if("string"==typeof t){if(null===(t=Ee(ot,t)))return this}else Math.abs(t)<16&&!s&&(t*=60);return!this._isUTC&&e&&(i=Ne(this)),this._offset=t,this._isUTC=!0,null!=i&&this.add(i,"m"),a!==t&&(!e||this._changeInProgress?Ge(this,We(t-a,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,n.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?a:Ne(this)},ds.utc=function(t){return this.utcOffset(0,t)},ds.local=function(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Ne(this),"m")),this},ds.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var t=Ee(rt,this._i);null!=t?this.utcOffset(t):this.utcOffset(0,!0)}return this},ds.hasAlignedHourOffset=function(t){return!!this.isValid()&&(t=t?Se(t).utcOffset():0,(this.utcOffset()-t)%60==0)},ds.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},ds.isLocal=function(){return!!this.isValid()&&!this._isUTC},ds.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},ds.isUtc=He,ds.isUTC=He,ds.zoneAbbr=function(){return this._isUTC?"UTC":""},ds.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},ds.dates=D("dates accessor is deprecated. Use date instead.",ns),ds.months=D("months accessor is deprecated. Use month instead",Tt),ds.years=D("years accessor is deprecated. Use year instead",bt),ds.zone=D("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()})),ds.isDSTShifted=D("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!o(this._isDSTShifted))return this._isDSTShifted;var t={};if(g(t,this),(t=xe(t))._a){var e=t._isUTC?f(t._a):Se(t._a);this._isDSTShifted=this.isValid()&&C(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}));var hs=j.prototype;function fs(t,e,s,i){var n=oe(),a=f().set(i,e);return n[s](a,t)}function ms(t,e,s){if(l(t)&&(e=t,t=void 0),t=t||"",null!=e)return fs(t,e,s,"month");var i,n=[];for(i=0;i<12;i++)n[i]=fs(t,i,s,"month");return n}function _s(t,e,s,i){"boolean"==typeof t?(l(e)&&(s=e,e=void 0),e=e||""):(s=e=t,t=!1,l(e)&&(s=e,e=void 0),e=e||"");var n,a=oe(),r=t?a._week.dow:0;if(null!=s)return fs(e,(s+r)%7,i,"day");var o=[];for(n=0;n<7;n++)o[n]=fs(e,(n+r)%7,i,"day");return o}hs.calendar=function(t,e,s){var i=this._calendar[t]||this._calendar.sameElse;return T(i)?i.call(e,s):i},hs.longDateFormat=function(t){var e=this._longDateFormat[t],s=this._longDateFormat[t.toUpperCase()];return e||!s?e:(this._longDateFormat[t]=s.replace(/MMMM|MM|DD|dddd/g,(function(t){return t.slice(1)})),this._longDateFormat[t])},hs.invalidDate=function(){return this._invalidDate},hs.ordinal=function(t){return this._ordinal.replace("%d",t)},hs.preparse=cs,hs.postformat=cs,hs.relativeTime=function(t,e,s,i){var n=this._relativeTime[s];return T(n)?n(t,e,s,i):n.replace(/%d/i,t)},hs.pastFuture=function(t,e){var s=this._relativeTime[t>0?"future":"past"];return T(s)?s(e):s.replace(/%s/i,e)},hs.set=function(t){var e,s;for(s in t)T(e=t[s])?this[s]=e:this["_"+s]=e;this._config=t,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},hs.months=function(t,e){return t?a(this._months)?this._months[t.month()]:this._months[(this._months.isFormat||St).test(e)?"format":"standalone"][t.month()]:a(this._months)?this._months:this._months.standalone},hs.monthsShort=function(t,e){return t?a(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[St.test(e)?"format":"standalone"][t.month()]:a(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},hs.monthsParse=function(t,e,s){var i,n,a;if(this._monthsParseExact)return Ot.call(this,t,e,s);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),i=0;i<12;i++){if(n=f([2e3,i]),s&&!this._longMonthsParse[i]&&(this._longMonthsParse[i]=new RegExp("^"+this.months(n,"").replace(".","")+"$","i"),this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(n,"").replace(".","")+"$","i")),s||this._monthsParse[i]||(a="^"+this.months(n,"")+"|^"+this.monthsShort(n,""),this._monthsParse[i]=new RegExp(a.replace(".",""),"i")),s&&"MMMM"===e&&this._longMonthsParse[i].test(t))return i;if(s&&"MMM"===e&&this._shortMonthsParse[i].test(t))return i;if(!s&&this._monthsParse[i].test(t))return i}},hs.monthsRegex=function(t){return this._monthsParseExact?(c(this,"_monthsRegex")||At.call(this),t?this._monthsStrictRegex:this._monthsRegex):(c(this,"_monthsRegex")||(this._monthsRegex=jt),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)},hs.monthsShortRegex=function(t){return this._monthsParseExact?(c(this,"_monthsRegex")||At.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):(c(this,"_monthsShortRegex")||(this._monthsShortRegex=Pt),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)},hs.week=function(t){return Ht(t,this._week.dow,this._week.doy).week},hs.firstDayOfYear=function(){return this._week.doy},hs.firstDayOfWeek=function(){return this._week.dow},hs.weekdays=function(t,e){var s=a(this._weekdays)?this._weekdays:this._weekdays[t&&!0!==t&&this._weekdays.isFormat.test(e)?"format":"standalone"];return!0===t?Ut(s,this._week.dow):t?s[t.day()]:s},hs.weekdaysMin=function(t){return!0===t?Ut(this._weekdaysMin,this._week.dow):t?this._weekdaysMin[t.day()]:this._weekdaysMin},hs.weekdaysShort=function(t){return!0===t?Ut(this._weekdaysShort,this._week.dow):t?this._weekdaysShort[t.day()]:this._weekdaysShort},hs.weekdaysParse=function(t,e,s){var i,n,a;if(this._weekdaysParseExact)return $t.call(this,t,e,s);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(n=f([2e3,1]).day(i),s&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(n,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(n,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(n,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[i]||(a="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[i]=new RegExp(a.replace(".",""),"i")),s&&"dddd"===e&&this._fullWeekdaysParse[i].test(t))return i;if(s&&"ddd"===e&&this._shortWeekdaysParse[i].test(t))return i;if(s&&"dd"===e&&this._minWeekdaysParse[i].test(t))return i;if(!s&&this._weekdaysParse[i].test(t))return i}},hs.weekdaysRegex=function(t){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Zt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(c(this,"_weekdaysRegex")||(this._weekdaysRegex=Gt),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)},hs.weekdaysShortRegex=function(t){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Zt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(c(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=zt),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},hs.weekdaysMinRegex=function(t){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Zt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(c(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=qt),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},hs.isPM=function(t){return"p"===(t+"").toLowerCase().charAt(0)},hs.meridiem=function(t,e,s){return t>11?s?"pm":"PM":s?"am":"AM"},ae("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===x(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),n.lang=D("moment.lang is deprecated. Use moment.locale instead.",ae),n.langData=D("moment.langData is deprecated. Use moment.localeData instead.",oe);var ps=Math.abs;function vs(t,e,s,i){var n=We(e,s);return t._milliseconds+=i*n._milliseconds,t._days+=i*n._days,t._months+=i*n._months,t._bubble()}function gs(t){return t<0?Math.floor(t):Math.ceil(t)}function ys(t){return 4800*t/146097}function bs(t){return 146097*t/4800}function ws(t){return function(){return this.as(t)}}var ks=ws("ms"),xs=ws("s"),Cs=ws("m"),Ss=ws("h"),Ds=ws("d"),Ms=ws("w"),Os=ws("M"),Ys=ws("Q"),Ts=ws("y");function Ps(t){return function(){return this.isValid()?this._data[t]:NaN}}var js=Ps("milliseconds"),As=Ps("seconds"),Ls=Ps("minutes"),Es=Ps("hours"),Rs=Ps("days"),Ns=Ps("months"),Hs=Ps("years"),Is=Math.round,Us={ss:44,s:45,m:45,h:22,d:26,M:11};function Ws(t,e,s,i,n){return n.relativeTime(e||1,!!s,t,i)}var Fs=Math.abs;function Vs(t){return(t>0)-(t<0)||+t}function $s(){if(!this.isValid())return this.localeData().invalidDate();var t,e,s=Fs(this._milliseconds)/1e3,i=Fs(this._days),n=Fs(this._months);t=k(s/60),e=k(t/60),s%=60,t%=60;var a=k(n/12),r=n%=12,o=i,l=e,u=t,d=s?s.toFixed(3).replace(/\.?0+$/,""):"",c=this.asSeconds();if(!c)return"P0D";var h=c<0?"-":"",f=Vs(this._months)!==Vs(c)?"-":"",m=Vs(this._days)!==Vs(c)?"-":"",_=Vs(this._milliseconds)!==Vs(c)?"-":"";return h+"P"+(a?f+a+"Y":"")+(r?f+r+"M":"")+(o?m+o+"D":"")+(l||u||d?"T":"")+(l?_+l+"H":"")+(u?_+u+"M":"")+(d?_+d+"S":"")}var Gs=Te.prototype;return Gs.isValid=function(){return this._isValid},Gs.abs=function(){var t=this._data;return this._milliseconds=ps(this._milliseconds),this._days=ps(this._days),this._months=ps(this._months),t.milliseconds=ps(t.milliseconds),t.seconds=ps(t.seconds),t.minutes=ps(t.minutes),t.hours=ps(t.hours),t.months=ps(t.months),t.years=ps(t.years),this},Gs.add=function(t,e){return vs(this,t,e,1)},Gs.subtract=function(t,e){return vs(this,t,e,-1)},Gs.as=function(t){if(!this.isValid())return NaN;var e,s,i=this._milliseconds;if("month"===(t=E(t))||"quarter"===t||"year"===t)switch(e=this._days+i/864e5,s=this._months+ys(e),t){case"month":return s;case"quarter":return s/3;case"year":return s/12}else switch(e=this._days+Math.round(bs(this._months)),t){case"week":return e/7+i/6048e5;case"day":return e+i/864e5;case"hour":return 24*e+i/36e5;case"minute":return 1440*e+i/6e4;case"second":return 86400*e+i/1e3;case"millisecond":return Math.floor(864e5*e)+i;default:throw new Error("Unknown unit "+t)}},Gs.asMilliseconds=ks,Gs.asSeconds=xs,Gs.asMinutes=Cs,Gs.asHours=Ss,Gs.asDays=Ds,Gs.asWeeks=Ms,Gs.asMonths=Os,Gs.asQuarters=Ys,Gs.asYears=Ts,Gs.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*x(this._months/12):NaN},Gs._bubble=function(){var t,e,s,i,n,a=this._milliseconds,r=this._days,o=this._months,l=this._data;return a>=0&&r>=0&&o>=0||a<=0&&r<=0&&o<=0||(a+=864e5*gs(bs(o)+r),r=0,o=0),l.milliseconds=a%1e3,t=k(a/1e3),l.seconds=t%60,e=k(t/60),l.minutes=e%60,s=k(e/60),l.hours=s%24,r+=k(s/24),n=k(ys(r)),o+=n,r-=gs(bs(n)),i=k(o/12),o%=12,l.days=r,l.months=o,l.years=i,this},Gs.clone=function(){return We(this)},Gs.get=function(t){return t=E(t),this.isValid()?this[t+"s"]():NaN},Gs.milliseconds=js,Gs.seconds=As,Gs.minutes=Ls,Gs.hours=Es,Gs.days=Rs,Gs.weeks=function(){return k(this.days()/7)},Gs.months=Ns,Gs.years=Hs,Gs.humanize=function(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),s=function(t,e,s){var i=We(t).abs(),n=Is(i.as("s")),a=Is(i.as("m")),r=Is(i.as("h")),o=Is(i.as("d")),l=Is(i.as("M")),u=Is(i.as("y")),d=n<=Us.ss&&["s",n]||n<Us.s&&["ss",n]||a<=1&&["m"]||a<Us.m&&["mm",a]||r<=1&&["h"]||r<Us.h&&["hh",r]||o<=1&&["d"]||o<Us.d&&["dd",o]||l<=1&&["M"]||l<Us.M&&["MM",l]||u<=1&&["y"]||["yy",u];return d[2]=e,d[3]=+t>0,d[4]=s,Ws.apply(null,d)}(this,!t,e);return t&&(s=e.pastFuture(+this,s)),e.postformat(s)},Gs.toISOString=$s,Gs.toString=$s,Gs.toJSON=$s,Gs.locale=Be,Gs.localeData=Je,Gs.toIsoString=D("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",$s),Gs.lang=Qe,$("X",0,0,"unix"),$("x",0,0,"valueOf"),dt("x",at),dt("X",/[+-]?\d+(\.\d{1,3})?/),mt("X",(function(t,e,s){s._d=new Date(1e3*parseFloat(t,10))})),mt("x",(function(t,e,s){s._d=new Date(x(t))})),n.version="2.24.0",e=Se,n.fn=ds,n.min=function(){var t=[].slice.call(arguments,0);return Oe("isBefore",t)},n.max=function(){var t=[].slice.call(arguments,0);return Oe("isAfter",t)},n.now=function(){return Date.now?Date.now():+new Date},n.utc=f,n.unix=function(t){return Se(1e3*t)},n.months=function(t,e){return ms(t,e,"months")},n.isDate=u,n.locale=ae,n.invalid=p,n.duration=We,n.isMoment=w,n.weekdays=function(t,e,s){return _s(t,e,s,"weekdays")},n.parseZone=function(){return Se.apply(null,arguments).parseZone()},n.localeData=oe,n.isDuration=Pe,n.monthsShort=function(t,e){return ms(t,e,"monthsShort")},n.weekdaysMin=function(t,e,s){return _s(t,e,s,"weekdaysMin")},n.defineLocale=re,n.updateLocale=function(t,e){if(null!=e){var s,i,n=te;null!=(i=ne(t))&&(n=i._config),e=P(n,e),(s=new j(e)).parentLocale=ee[t],ee[t]=s,ae(t)}else null!=ee[t]&&(null!=ee[t].parentLocale?ee[t]=ee[t].parentLocale:null!=ee[t]&&delete ee[t]);return ee[t]},n.locales=function(){return M(ee)},n.weekdaysShort=function(t,e,s){return _s(t,e,s,"weekdaysShort")},n.normalizeUnits=E,n.relativeTimeRounding=function(t){return void 0===t?Is:"function"==typeof t&&(Is=t,!0)},n.relativeTimeThreshold=function(t,e){return void 0!==Us[t]&&(void 0===e?Us[t]:(Us[t]=e,"s"===t&&(Us.ss=e-1),!0))},n.calendarFormat=function(t,e){var s=t.diff(e,"days",!0);return s<-6?"sameElse":s<-1?"lastWeek":s<0?"lastDay":s<1?"sameDay":s<2?"nextDay":s<7?"nextWeek":"sameElse"},n.prototype=ds,n.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},n}()}).call(this,s("./node_modules/webpack/buildin/module.js")(t))},"./node_modules/vue-loader/lib/runtime/componentNormalizer.js":function(t,e,s){"use strict";function i(t,e,s,i,n,a,r,o){var l,u="function"==typeof t?t.options:t;if(e&&(u.render=e,u.staticRenderFns=s,u._compiled=!0),i&&(u.functional=!0),a&&(u._scopeId="data-v-"+a),r?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),n&&n.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(r)},u._ssrRegister=l):n&&(l=o?function(){n.call(this,this.$root.$options.shadowRoot)}:n),l)if(u.functional){u._injectStyles=l;var d=u.render;u.render=function(t,e){return l.call(e),d(t,e)}}else{var c=u.beforeCreate;u.beforeCreate=c?[].concat(c,l):[l]}return{exports:t,options:u}}s.d(e,"a",(function(){return i}))},"./node_modules/webpack/buildin/global.js":function(t,e){var s;s=function(){return this}();try{s=s||new Function("return this")()}catch(t){"object"==typeof window&&(s=window)}t.exports=s},"./node_modules/webpack/buildin/module.js":function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},"./node_modules/xss/lib/default.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/index.js").FilterCSS,n=s("./node_modules/cssfilter/lib/index.js").getDefaultWhiteList,a=s("./node_modules/xss/lib/util.js");function r(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]}}var o=new i;function l(t){return t.replace(u,"&lt;").replace(d,"&gt;")}var u=/</g,d=/>/g,c=/"/g,h=/&quot;/g,f=/&#([a-zA-Z0-9]*);?/gim,m=/&colon;?/gim,_=/&newline;?/gim,p=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi,v=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,g=/u\s*r\s*l\s*\(.*/gi;function y(t){return t.replace(c,"&quot;")}function b(t){return t.replace(h,'"')}function w(t){return t.replace(f,(function(t,e){return"x"===e[0]||"X"===e[0]?String.fromCharCode(parseInt(e.substr(1),16)):String.fromCharCode(parseInt(e,10))}))}function k(t){return t.replace(m,":").replace(_," ")}function x(t){for(var e="",s=0,i=t.length;s<i;s++)e+=t.charCodeAt(s)<32?" ":t.charAt(s);return a.trim(e)}function C(t){return t=x(t=k(t=w(t=b(t))))}function S(t){return t=l(t=y(t))}var D=/<!--[\s\S]*?-->/g;e.whiteList={a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]},e.getDefaultWhiteList=r,e.onTag=function(t,e,s){},e.onIgnoreTag=function(t,e,s){},e.onTagAttr=function(t,e,s){},e.onIgnoreTagAttr=function(t,e,s){},e.safeAttrValue=function(t,e,s,i){if(s=C(s),"href"===e||"src"===e){if("#"===(s=a.trim(s)))return"#";if("http://"!==s.substr(0,7)&&"https://"!==s.substr(0,8)&&"mailto:"!==s.substr(0,7)&&"tel:"!==s.substr(0,4)&&"#"!==s[0]&&"/"!==s[0])return""}else if("background"===e){if(p.lastIndex=0,p.test(s))return""}else if("style"===e){if(v.lastIndex=0,v.test(s))return"";if(g.lastIndex=0,g.test(s)&&(p.lastIndex=0,p.test(s)))return"";!1!==i&&(s=(i=i||o).process(s))}return s=S(s)},e.escapeHtml=l,e.escapeQuote=y,e.unescapeQuote=b,e.escapeHtmlEntities=w,e.escapeDangerHtml5Entities=k,e.clearNonPrintableCharacter=x,e.friendlyAttrValue=C,e.escapeAttrValue=S,e.onIgnoreTagStripAll=function(){return""},e.StripTagBody=function(t,e){"function"!=typeof e&&(e=function(){});var s=!Array.isArray(t),i=[],n=!1;return{onIgnoreTag:function(r,o,l){if(function(e){return!!s||-1!==a.indexOf(t,e)}(r)){if(l.isClosing){var u="[/removed]",d=l.position+u.length;return i.push([!1!==n?n:l.position,d]),n=!1,u}return n||(n=l.position),"[removed]"}return e(r,o,l)},remove:function(t){var e="",s=0;return a.forEach(i,(function(i){e+=t.slice(s,i[0]),s=i[1]})),e+=t.slice(s)}}},e.stripCommentTag=function(t){return t.replace(D,"")},e.stripBlankChar=function(t){var e=t.split("");return(e=e.filter((function(t){var e=t.charCodeAt(0);return 127!==e&&(!(e<=31)||(10===e||13===e))}))).join("")},e.cssFilter=o,e.getDefaultCSSWhiteList=n},"./node_modules/xss/lib/index.js":function(t,e,s){var i=s("./node_modules/xss/lib/default.js"),n=s("./node_modules/xss/lib/parser.js"),a=s("./node_modules/xss/lib/xss.js");function r(t,e){return new a(e).process(t)}for(var o in(e=t.exports=r).filterXSS=r,e.FilterXSS=a,i)e[o]=i[o];for(var o in n)e[o]=n[o];"undefined"!=typeof window&&(window.filterXSS=t.exports),"undefined"!=typeof self&&"undefined"!=typeof DedicatedWorkerGlobalScope&&self instanceof DedicatedWorkerGlobalScope&&(self.filterXSS=t.exports)},"./node_modules/xss/lib/parser.js":function(t,e,s){var i=s("./node_modules/xss/lib/util.js");function n(t){var e=i.spaceIndex(t);if(-1===e)var s=t.slice(1,-1);else s=t.slice(1,e+1);return"/"===(s=i.trim(s).toLowerCase()).slice(0,1)&&(s=s.slice(1)),"/"===s.slice(-1)&&(s=s.slice(0,-1)),s}function a(t){return"</"===t.slice(0,2)}var r=/[^a-zA-Z0-9_:\.\-]/gim;function o(t,e){for(;e<t.length;e++){var s=t[e];if(" "!==s)return"="===s?e:-1}}function l(t,e){for(;e>0;e--){var s=t[e];if(" "!==s)return"="===s?e:-1}}function u(t){return function(t){return'"'===t[0]&&'"'===t[t.length-1]||"'"===t[0]&&"'"===t[t.length-1]}(t)?t.substr(1,t.length-2):t}e.parseTag=function(t,e,s){var i="",r=0,o=!1,l=!1,u=0,d=t.length,c="",h="";for(u=0;u<d;u++){var f=t.charAt(u);if(!1===o){if("<"===f){o=u;continue}}else if(!1===l){if("<"===f){i+=s(t.slice(r,u)),o=u,r=u;continue}if(">"===f){i+=s(t.slice(r,o)),c=n(h=t.slice(o,u+1)),i+=e(o,i.length,c,h,a(h)),r=u+1,o=!1;continue}if(('"'===f||"'"===f)&&"="===t.charAt(u-1)){l=f;continue}}else if(f===l){l=!1;continue}}return r<t.length&&(i+=s(t.substr(r))),i},e.parseAttr=function(t,e){var s=0,n=[],a=!1,d=t.length;function c(t,s){if(!((t=(t=i.trim(t)).replace(r,"").toLowerCase()).length<1)){var a=e(t,s||"");a&&n.push(a)}}for(var h=0;h<d;h++){var f,m=t.charAt(h);if(!1!==a||"="!==m)if(!1===a||h!==s||'"'!==m&&"'"!==m||"="!==t.charAt(h-1))if(/\s|\n|\t/.test(m)){if(t=t.replace(/\s|\n|\t/g," "),!1===a){if(-1===(f=o(t,h))){c(i.trim(t.slice(s,h))),a=!1,s=h+1;continue}h=f-1;continue}if(-1===(f=l(t,h-1))){c(a,u(i.trim(t.slice(s,h)))),a=!1,s=h+1;continue}}else;else{if(-1===(f=t.indexOf(m,h+1)))break;c(a,i.trim(t.slice(s+1,f))),a=!1,s=(h=f)+1}else a=t.slice(s,h),s=h+1}return s<t.length&&(!1===a?c(t.slice(s)):c(a,u(i.trim(t.slice(s))))),i.trim(n.join(" "))}},"./node_modules/xss/lib/util.js":function(t,e){t.exports={indexOf:function(t,e){var s,i;if(Array.prototype.indexOf)return t.indexOf(e);for(s=0,i=t.length;s<i;s++)if(t[s]===e)return s;return-1},forEach:function(t,e,s){var i,n;if(Array.prototype.forEach)return t.forEach(e,s);for(i=0,n=t.length;i<n;i++)e.call(s,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},spaceIndex:function(t){var e=/\s|\n|\t/.exec(t);return e?e.index:-1}}},"./node_modules/xss/lib/xss.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/index.js").FilterCSS,n=s("./node_modules/xss/lib/default.js"),a=s("./node_modules/xss/lib/parser.js"),r=a.parseTag,o=a.parseAttr,l=s("./node_modules/xss/lib/util.js");function u(t){return null==t}function d(t){(t=function(t){var e={};for(var s in t)e[s]=t[s];return e}(t||{})).stripIgnoreTag&&(t.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),t.onIgnoreTag=n.onIgnoreTagStripAll),t.whiteList=t.whiteList||n.whiteList,t.onTag=t.onTag||n.onTag,t.onTagAttr=t.onTagAttr||n.onTagAttr,t.onIgnoreTag=t.onIgnoreTag||n.onIgnoreTag,t.onIgnoreTagAttr=t.onIgnoreTagAttr||n.onIgnoreTagAttr,t.safeAttrValue=t.safeAttrValue||n.safeAttrValue,t.escapeHtml=t.escapeHtml||n.escapeHtml,this.options=t,!1===t.css?this.cssFilter=!1:(t.css=t.css||{},this.cssFilter=new i(t.css))}d.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var e=this.options,s=e.whiteList,i=e.onTag,a=e.onIgnoreTag,d=e.onTagAttr,c=e.onIgnoreTagAttr,h=e.safeAttrValue,f=e.escapeHtml,m=this.cssFilter;e.stripBlankChar&&(t=n.stripBlankChar(t)),e.allowCommentTag||(t=n.stripCommentTag(t));var _=!1;if(e.stripIgnoreTagBody){_=n.StripTagBody(e.stripIgnoreTagBody,a);a=_.onIgnoreTag}var p=r(t,(function(t,e,n,r,_){var p,v={sourcePosition:t,position:e,isClosing:_,isWhite:s.hasOwnProperty(n)};if(!u(p=i(n,r,v)))return p;if(v.isWhite){if(v.isClosing)return"</"+n+">";var g=function(t){var e=l.spaceIndex(t);if(-1===e)return{html:"",closing:"/"===t[t.length-2]};var s="/"===(t=l.trim(t.slice(e+1,-1)))[t.length-1];return s&&(t=l.trim(t.slice(0,-1))),{html:t,closing:s}}(r),y=s[n],b=o(g.html,(function(t,e){var s,i=-1!==l.indexOf(y,t);return u(s=d(n,t,e,i))?i?(e=h(n,t,e,m))?t+'="'+e+'"':t:u(s=c(n,t,e,i))?void 0:s:s}));r="<"+n;return b&&(r+=" "+b),g.closing&&(r+=" /"),r+=">"}return u(p=a(n,r,v))?f(r):p}),f);return _&&(p=_.remove(p)),p},t.exports=d},"./src/audit.js":function(t,e,s){"use strict";s.r(e);var i=s("vue"),n=s.n(i),a=s("./src/helper/base_hepler.js"),r=s("./src/component/footer.vue"),o=s("./node_modules/lodash/chunk.js"),l=s.n(o),u=s("./src/component/pagination.vue"),d=s("./node_modules/moment/moment.js"),c={mixins:[a.a],name:"logs",data:function(){return{filter:{date_range:null,username:"",ip_address:"",events:[],event_all:!0,is_open:!1,date_from:null,date_to:null},event_types:auditData.filters.types,data:{logs:[],chunks:[],total_items:0,total_pages:0,paged:1},misc:auditData.misc,endpoints:auditData.endpoints,nonces:auditData.nonces,state:{on_saving:!1,is_fetching:!1}}},methods:{date_range:function(){},build_filter_url:function(t){},paging:function(t){this.data.paged=t},do_filter:function(){var t=this,e=this.data.logs.filter((function(e){return(""===t.filter.username||-1!==e.user.indexOf(t.filter.username))&&((null===t.filter.ip_address||-1!==e.ip.indexOf(t.filter.ip_address))&&(!1!==t.filter.event_all||-1!==t.filter.events.indexOf(e.event_type)))}));t.data.chunks=l()(e,40),t.data.total_items=e.length,t.data.total_pages=Math.ceil(t.data.total_items/40),t.data.paged=1},fetch_data:function(t){var e=this;this.state.is_fetching=!0;var s=JSON.parse(JSON.stringify(this.filter));delete s.is_open,delete s.event_all,delete s.date_range,this.httpGetRequest("loadData",s,(function(s){!0===s.success?(e.data.logs=Object.values(s.data.logs),e.data.total_items=s.data.total_items,e.data.total_pages=s.data.total_pages,e.data.chunks=l()(e.data.logs,40),e.data.paged=1,e.state.is_fetching=!1,void 0!==t&&t()):Defender.showNotification("error",s.message)}),!1)},format_time:function(t){return Array.isArray(t)?this.$options.filters.moment(new Date(1e3*t[1]),this.misc.date_format):this.$options.filters.moment(new Date(1e3*t),this.misc.date_format)}},computed:{get_logs:function(){var t=[];return this.data.chunks.length>0&&void 0!==this.data.chunks[this.data.paged-1]&&(t=this.data.chunks[this.data.paged-1]),t},get_count:function(){return this.vsprintf(this.__("%s results"),this.data.total_items)},next_icon:function(){return'<i class="sui-icon-chevron-right" aria-hidden="true"></i>'},prev_icon:function(){return'<i class="sui-icon-chevron-left" aria-hidden="true"></i>'},min_date:function(){return d().format()},max_date:function(){return d().subtract(30,"days").format()},get_export_url:function(){var t=ajaxurl+"?action="+this.endpoints.exportAsCvs+"&_wpnonce="+this.nonces.exportAsCvs;return t+="&date_from="+this.filter.date_from,t+="&date_to="+this.filter.date_to,this.filter.events.forEach((function(e){t+="&event_type[]="+e})),t+="&term="+this.filter.username,t+="&ip="+this.filter.ip_address}},watch:{"filter.date_range":function(t,e){null!==t&&null!==e&&t!==e&&this.fetch_data()}},components:{pagination:u.a},created:function(){var t=new URLSearchParams(window.location.search),e=null!==t.get("date_from")?t.get("date_from"):d().subtract(7,"day").format("MM/DD/YYYY"),s=null!==t.get("date_to")?t.get("date_to"):d().format("MM/DD/YYYY");this.filter.date_range=e+" - "+s,this.filter.date_from=e,this.filter.date_to=s;var i=this;this.fetch_data((function(){i.$parent.$emit("events_in_7_days",i.data.logs.length)}))},mounted:function(){var t=this;this.$nextTick((function(){jQuery("#date-range-picker").daterangepicker({autoApply:!0,maxDate:d().format("MM/DD/YYYY"),minDate:d().subtract(1,"year").format("MM/DD/YYYY"),locale:{format:"MM/DD/YYYY",separator:"-"},ranges:{Today:[d(),d()],"7 Days":[d().subtract(6,"days"),d()],"30 Days":[d().subtract(29,"days"),d()]},template:'<div class="daterangepicker wd-calendar"><div class="ranges"></div><div class="drp-calendar left"><div class="calendar-table"></div><div class="calendar-time"></div></div><div class="drp-calendar right"><div class="calendar-table"></div><div class="calendar-time"></div></div></div>',showCustomRangeLabel:!1,alwaysShowCalendars:!0}),jQuery("#date-range-picker").on("apply.daterangepicker",(function(e,s){t.filter.date_range=s.startDate.format("MM/DD/YYYY")+"-"+s.endDate.format("MM/DD/YYYY"),t.filter.date_from=s.startDate.format("MM/DD/YYYY"),t.filter.date_to=s.endDate.format("MM/DD/YYYY")}))}))}},h=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),f=Object(h.a)(c,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t"+t._s(t.__("Event Logs"))+"\n\t\t")]),t._v(" "),s("div",{staticClass:"sui-actions-right"},[s("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:t.get_export_url}},[s("i",{staticClass:"sui-icon-upload-cloud",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t"+t._s(t.__("Export CSV"))+"\n\t\t\t")])])]),t._v(" "),s("div",{staticClass:"sui-box-body"},[s("p",[t._v("\n\t\t\t"+t._s(t.__("Here are your latest event logs showing what's been happening behind the scenes."))+"\n\t\t")]),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col-md-5"},[s("div",{staticClass:"inline-form"},[s("label",[t._v(t._s(t.__("Date range")))]),t._v(" "),s("div",{staticClass:"sui-date"},[s("i",{staticClass:"sui-icon-calendar",attrs:{"aria-hidden":"true"}}),t._v(" "),s("input",{staticClass:"sui-form-control",attrs:{id:"date-range-picker",name:"date_from",type:"text"},domProps:{value:t.filter.date_range}})])])]),t._v(" "),s("div",{staticClass:"sui-col-md-7"},[s("div",{staticClass:"sui-pagination-wrap"},[s("span",{staticClass:"sui-pagination-results",domProps:{textContent:t._s(t.get_count)}}),t._v(" "),t.data.total_items>0?s("pagination",{attrs:{"page-count":t.data.total_pages,"click-handler":t.paging,"prev-text":t.prev_icon,"next-text":t.next_icon,value:t.data.paged,"container-class":"sui-pagination"}}):t._e(),t._v(" "),s("button",{staticClass:"sui-button-icon sui-button-outlined sui-tooltip",attrs:{"data-tooltip":"Filter"},on:{click:function(e){t.filter.is_open=!t.filter.is_open}}},[s("i",{staticClass:"sui-icon-filter",attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Open search filter")])])],1)])]),t._v(" "),s("div",{staticClass:"sui-pagination-filter",class:{"sui-open":t.filter.is_open}},[s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col-md-4"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Username")))]),t._v(" "),s("div",{staticClass:"sui-control-with-icon sui-right-icon"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.filter.username,expression:"filter.username"}],staticClass:"sui-form-control",attrs:{type:"text"},domProps:{value:t.filter.username},on:{input:function(e){e.target.composing||t.$set(t.filter,"username",e.target.value)}}}),t._v(" "),s("i",{staticClass:"sui-icon-magnifying-glass-search",attrs:{"aria-hidden":"true"}})])])]),t._v(" "),s("div",{staticClass:"sui-col-md-3"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("IP Address")))]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.filter.ip_address,expression:"filter.ip_address"}],staticClass:"sui-form-control",attrs:{type:"text","data-name":"ip",placeholder:"E.g. 192.168.1.1"},domProps:{value:t.filter.ip_address},on:{input:function(e){e.target.composing||t.$set(t.filter,"ip_address",e.target.value)}}})])])]),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("div",{staticClass:"sui-form-field"},[s("div",{staticClass:"sui-side-tabs"},[s("div",{staticClass:"sui-tabs-menu"},[s("label",{staticClass:"sui-tab-item",class:{active:!0===t.filter.event_all},attrs:{for:"event_filter_all"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.filter.event_all,expression:"filter.event_all"}],attrs:{type:"radio",id:"event_filter_all","data-tab-menu":""},domProps:{value:!0,checked:t._q(t.filter.event_all,!0)},on:{change:function(e){return t.$set(t.filter,"event_all",!0)}}}),t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("All"))+"\n\t\t\t\t\t\t\t\t")]),t._v(" "),s("label",{staticClass:"sui-tab-item",class:{active:!1===t.filter.event_all},attrs:{for:"event_filter"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.filter.event_all,expression:"filter.event_all"}],attrs:{type:"radio","data-tab-menu":"events-box",id:"event_filter"},domProps:{value:!1,checked:t._q(t.filter.event_all,!1)},on:{change:function(e){return t.$set(t.filter,"event_all",!1)}}}),t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Specific"))+"\n\t\t\t\t\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-tabs-content"},[s("div",{staticClass:"sui-tab-content sui-tab-boxed",class:{active:!1===t.filter.event_all},attrs:{id:"events-box","data-tab-content":"events-box"}},[s("div",{staticClass:"sui-row"},t._l(t.event_types,(function(e){return s("label",{staticClass:"sui-checkbox",attrs:{for:"chk_"+e}},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.filter.events,expression:"filter.events"}],staticClass:"filterable",attrs:{id:"chk_"+e,type:"checkbox"},domProps:{value:e,checked:Array.isArray(t.filter.events)?t._i(t.filter.events,e)>-1:t.filter.events},on:{change:function(s){var i=t.filter.events,n=s.target,a=!!n.checked;if(Array.isArray(i)){var r=e,o=t._i(i,r);n.checked?o<0&&t.$set(t.filter,"events",i.concat([r])):o>-1&&t.$set(t.filter,"events",i.slice(0,o).concat(i.slice(o+1)))}else t.$set(t.filter,"events",a)}}}),t._v(" "),s("span",{attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",[t._v(t._s(e))])])})),0)])])])])])]),t._v(" "),s("hr"),t._v(" "),s("div",{staticClass:"float-r"},[s("button",{staticClass:"sui-button sui-button-blue",attrs:{type:"submit"},on:{click:t.do_filter}},[t._v("\n\t\t\t\t\t"+t._s(t.__("Apply"))+"\n\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"clear"})])]),t._v(" "),s("div",{staticClass:"sui-accordion sui-accordion-flushed no-border-top"},[s("div",{staticClass:"sui-accordion-header"},[s("div",[t._v(t._s(t.__("Event summary")))]),t._v(" "),s("div",[t._v(t._s(t.__("Date")))]),t._v(" "),s("div")]),t._v(" "),t._l(t.get_logs,(function(e){return s("div",{staticClass:"sui-accordion-item sui-default"},[s("div",{staticClass:"sui-accordion-item-header"},[s("div",{staticClass:"sui-accordion-item-title",domProps:{textContent:t._s(t.xss(e.msg))}}),t._v(" "),s("div",{domProps:{innerHTML:t._s(t.format_time(e.timestamp))}}),t._v(" "),t._m(0,!0)]),t._v(" "),s("div",{staticClass:"sui-accordion-item-body"},[s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-body"},[s("strong",[t._v(t._s(t.__("Description")))]),t._v(" "),s("p",{domProps:{textContent:t._s(e.msg)}}),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("strong",{staticClass:"block"},[t._v(t._s(t.__("Context")))]),t._v(" "),s("a",{staticClass:"block",attrs:{href:t.build_filter_url(e.context)},domProps:{textContent:t._s(t.xss(e.context))}})]),t._v(" "),s("div",{staticClass:"sui-col"},[s("strong",{staticClass:"block"},[t._v(t._s(t.__("Type")))]),t._v(" "),s("a",{staticClass:"block",attrs:{href:t.build_filter_url(e.event_type)},domProps:{textContent:t._s(t.xss(e.event_type))}})]),t._v(" "),s("div",{staticClass:"sui-col"},[s("strong",{staticClass:"block"},[t._v(t._s(t.__("Ip Address")))]),t._v(" "),s("a",{staticClass:"block",attrs:{href:t.build_filter_url(e.ip)},domProps:{textContent:t._s(t.xss(e.ip))}})]),t._v(" "),s("div",{staticClass:"sui-col"},[s("strong",{staticClass:"block"},[t._v(t._s(t.__("User")))]),t._v(" "),s("a",{staticClass:"block",attrs:{href:t.build_filter_url(e.user)},domProps:{textContent:t._s(t.xss(e.user))}})]),t._v(" "),s("div",{staticClass:"sui-col"},[s("strong",{staticClass:"block"},[t._v(t._s(t.__("Date / Time")))]),t._v(" "),s("a",{staticClass:"block",attrs:{href:t.build_filter_url(e.timestamp)}},[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t._f("moment")(new Date(1e3*e.timestamp),t.misc.date_format))+"\n\t\t\t\t\t\t\t\t")])])])])])])])}))],2),t._v(" "),0===t.data.chunks.length?s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("div",{staticClass:"sui-notice"},[!0===t.state.is_fetching?s("p",[t._v("\n\t\t\t\t\t"+t._s(t.__("Loading events..."))+"\n\t\t\t\t")]):s("p",[t._v("\n\t\t\t\t\t"+t._s(t.__("There have been no events logged in the selected time period."))+"\n\t\t\t\t")])])])]):t._e(),t._v(" "),s("div",{staticClass:"sui-center-box"},[s("div",{staticClass:"sui-pagination-wrap"},[t.data.total_items>0?s("pagination",{attrs:{"page-count":t.data.total_pages,"click-handler":t.paging,"prev-text":t.prev_icon,"next-text":t.next_icon,value:t.data.paged,"container-class":"sui-pagination"}}):t._e()],1)]),t._v(" "),t.state.is_fetching?s("overlay"):t._e()],1)}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",[e("button",{staticClass:"sui-button-icon sui-accordion-open-indicator",attrs:{"aria-label":"Open item"}},[e("i",{staticClass:"sui-icon-chevron-down",attrs:{"aria-hidden":"true"}})])])}],!1,null,null,null).exports,m={mixins:[a.a],name:"settings",data:function(){return{model:auditData.model.settings,state:{on_saving:!1},nonces:auditData.nonces,endpoints:auditData.endpoints}},methods:{toggle:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"enabled",s=this,i={};i[e]=t,this.httpPostRequest("updateSettings",{data:JSON.stringify(i)},(function(){s.$parent.$emit("enable_state",t)}))},updateSettings:function(){var t=this.model;this.httpPostRequest("updateSettings",{data:JSON.stringify(t)})}},mounted:function(){var t=this;jQuery("#storage_days").change((function(){t.model.storage_days=jQuery(this).val()}))}},_=Object(h.a)(m,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-box audit-settings"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t"+t._s(t.__("Settings"))+"\n\t\t\t")])]),t._v(" "),s("form",{attrs:{method:"post"},on:{submit:function(e){return e.preventDefault(),t.updateSettings(e)}}},[s("div",{staticClass:"sui-box-body"},[s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v(t._s(t.__("Storage")))]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Events are stored in our API. You can choose how many days to keep logs for before they are removed."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field"},[s("select",{directives:[{name:"model",rawName:"v-model",value:t.model.storage_days,expression:"model.storage_days"}],attrs:{name:"storage_days",id:"storage_days"},on:{change:function(e){var s=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));t.$set(t.model,"storage_days",e.target.multiple?s:s[0])}}},[s("option",{attrs:{value:"24 hours"}},[t._v(t._s(t.__("24 hours")))]),t._v(" "),s("option",{attrs:{value:"7 days"}},[t._v(t._s(t.__("7 days")))]),t._v(" "),s("option",{attrs:{value:"30 days"}},[t._v(t._s(t.__("30 days")))]),t._v(" "),s("option",{attrs:{value:"3 months"}},[t._v(t._s(t.__("3 months")))]),t._v(" "),s("option",{attrs:{value:"6 months"}},[t._v(t._s(t.__("6 months")))]),t._v(" "),s("option",{attrs:{value:"12 months"}},[t._v(t._s(t.__("12 months")))])]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Choose how long you'd like to store your event logs locally before wiping the oldest."))+"\n ")])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Deactivate"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("If you no longer want to use this feature you can turn it off at any time."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("submit-button",{attrs:{type:"button","css-class":"sui-button-ghost",state:t.state},on:{click:function(e){return t.toggle(!1)}}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Deactivate"))+"\n\t\t\t\t\t\t")])],1)])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("div",{staticClass:"sui-actions-right"},[s("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue",state:t.state}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t"+t._s(t.__("Save Changes"))+"\n\t\t\t\t\t")])],1)])])])}),[],!1,null,null,null).exports,p=s("./src/component/recipients.vue"),v={mixins:[a.a],name:"report",data:function(){return{model:auditData.model.report,misc:auditData.misc,nonces:auditData.nonces,endpoints:auditData.endpoints,state:{on_saving:!1,show_day:!0}}},components:{recipients:p.a},methods:{updateRecipients:function(t){this.model.receipts=t},updateSettings:function(){var t=this.model,e=this;this.httpPostRequest("updateSettings",{data:JSON.stringify(t)},(function(t){e.$parent.$emit("update_report_time",t.data.summary)}))}},mounted:function(){var t=this;jQuery(".report-select").change((function(){var e=jQuery(this).attr("name");t.model[e]=jQuery(this).val()})),this.model.day=this.model.day.toLowerCase()},watch:{"model.frequency":function(){this.state.show_day=this.model.frequency>1}},created:function(){this.state.show_day=this.model.frequency>1},computed:{timezone_text:function(){return this.vsprintf(this.__("Your timezone is set to UTC %s, so your current time is %s."),this.misc.tz,this.misc.current_time)}}},g=Object(h.a)(v,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t"+t._s(t.__("Notification"))+"\n\t\t\t")])]),t._v(" "),s("form",{attrs:{method:"post"},on:{submit:function(e){return e.preventDefault(),t.updateSettings(e)}}},[s("div",{staticClass:"sui-box-body"},[s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Scheduled Reports"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Schedule Defender to automatically email you a summary of all your website events."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.notification,expression:"model.notification"}],attrs:{type:"checkbox",name:"notification",id:"toggle_notification"},domProps:{checked:Array.isArray(t.model.notification)?t._i(t.model.notification,null)>-1:t.model.notification},on:{change:function(e){var s=t.model.notification,i=e.target,n=!!i.checked;if(Array.isArray(s)){var a=t._i(s,null);i.checked?a<0&&t.$set(t.model,"notification",s.concat([null])):a>-1&&t.$set(t.model,"notification",s.slice(0,a).concat(s.slice(a+1)))}else t.$set(t.model,"notification",n)}}}),t._v(" "),s("span",{staticClass:"sui-toggle-slider"})]),t._v(" "),s("label",{staticClass:"sui-toggle-label",attrs:{for:"toggle_notification"}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Send regular email report"))+"\n\t\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-border-frame sui-toggle-content"},[s("div",{staticClass:"margin-top-30"},[s("recipients",{attrs:{id:"report_dialog",recipients:t.model.receipts},on:{"update:recipients":t.updateRecipients}})],1),t._v(" "),s("div",{staticClass:"sui-form-field margin-top-30 schedule-box"},[s("label",{staticClass:"sui-label"},[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Frequency"))+"\n\t\t\t\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("select",{directives:[{name:"model",rawName:"v-model",value:t.model.frequency,expression:"model.frequency"}],staticClass:"report-select",attrs:{name:"frequency"},on:{change:function(e){var s=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));t.$set(t.model,"frequency",e.target.multiple?s:s[0])}}},[s("option",{attrs:{value:"1"}},[t._v(t._s(t.__("Daily")))]),t._v(" "),s("option",{attrs:{value:"7"}},[t._v(t._s(t.__("Weekly")))]),t._v(" "),s("option",{attrs:{value:"30"}},[t._v(t._s(t.__("Monthly")))])])])]),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{directives:[{name:"show",rawName:"v-show",value:t.state.show_day,expression:"state.show_day"}],staticClass:"sui-col days-container"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Day of the week")))]),t._v(" "),s("select",{directives:[{name:"model",rawName:"v-model",value:t.model.day,expression:"model.day"}],staticClass:"report-select",attrs:{name:"day"},on:{change:function(e){var s=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));t.$set(t.model,"day",e.target.multiple?s:s[0])}}},t._l(t.misc.days_of_week,(function(e){return s("option",{domProps:{value:e.toLowerCase()}},[t._v(t._s(e)+"\n\t\t\t\t\t\t\t\t\t\t\t")])})),0)]),t._v(" "),s("div",{staticClass:"sui-col"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Time of day")))]),t._v(" "),s("select",{directives:[{name:"model",rawName:"v-model",value:t.model.time,expression:"model.time"}],staticClass:"report-select",attrs:{name:"time"},on:{change:function(e){var s=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));t.$set(t.model,"time",e.target.multiple?s:s[0])}}},t._l(t.misc.times_of_day,(function(e,i){return s("option",{domProps:{value:i}},[t._v(t._s(e)+"\n\t\t\t\t\t\t\t\t\t\t\t")])})),0)]),t._v(" "),s("div",{staticClass:"sui-col-md-12"},[s("span",{staticClass:"sui-p-small",domProps:{innerHTML:t._s(t.timezone_text)}})])])])])])])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("div",{staticClass:"sui-actions-right"},[s("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue save-changes",state:t.state}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t"+t._s(t.__("Save Changes"))+"\n\t\t\t\t\t")])],1)])])])}),[],!1,null,null,null).exports,y={mixins:[a.a],name:"audit",data:function(){return{view:"",summary:{report_time:auditData.summary.report_time,events_in_7_days:"-"},enabled:auditData.enabled,state:{on_saving:!1},nonces:auditData.nonces,endpoints:auditData.endpoints}},components:{"app-footer":r.a,logs:f,settings:_,report:g},methods:{updateSummary:function(t){this.summary.events_in_7_days=t},toggle:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"enabled",s=this,i={};i[e]=t,this.httpPostRequest("updateSettings",{data:JSON.stringify(i)},(function(){s.enabled=t,s.$nextTick((function(){s.rebindSUI()}))}))}},created:function(){var t=new URLSearchParams(window.location.search).get("view");null===t&&(t="logs"),this.view=t,this.$on("events_in_7_days",(function(t){this.summary.events_in_7_days=t})),this.$on("update_report_time",(function(t){this.summary.report_time=t.report_time})),this.$on("enable_state",(function(t){this.enabled=t}))},watch:{view:function(t,e){history.replaceState({},null,this.adminUrl()+"admin.php?page=wdf-logging&view="+this.view)}},mounted:function(){self=this,jQuery(".sui-mobile-nav").change((function(){self.view=jQuery(this).val()}))}},b=Object(h.a)(y,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-wrap",class:t.maybeHighContrast()},[t.enabled?s("div",{staticClass:"auditing"},[s("div",{staticClass:"sui-header"},[s("h1",{staticClass:"sui-header-title"},[t._v("\n "+t._s(t.__("Audit Logging"))+"\n ")]),t._v(" "),s("doc-link",{attrs:{link:"https://premium.wpmudev.org/docs/wpmu-dev-plugins/defender/#audit-logging"}})],1),t._v(" "),s("summary-box",{attrs:{"css-class":"sui-summary-sm"}},[s("div",{staticClass:"sui-summary-segment"},[s("div",{staticClass:"sui-summary-details"},[s("span",{staticClass:"sui-summary-large",domProps:{textContent:t._s(t.summary.events_in_7_days)}}),t._v(" "),s("span",{staticClass:"sui-summary-sub"},[t._v("\n "+t._s(t.__("Events logged in the past 7 days"))+"\n ")])])]),t._v(" "),s("div",{staticClass:"sui-summary-segment"},[s("ul",{staticClass:"sui-list"},[s("li",[s("span",{staticClass:"sui-list-label"},[t._v(t._s(t.__("Reporting")))]),t._v(" "),s("span",{staticClass:"sui-list-detail",domProps:{textContent:t._s(t.summary.report_time)}})])])])]),t._v(" "),s("div",{staticClass:"sui-row-with-sidenav"},[s("div",{staticClass:"sui-sidenav"},[s("ul",{staticClass:"sui-vertical-tabs sui-sidenav-hide-md"},[s("li",{staticClass:"sui-vertical-tab",class:{current:"logs"===t.view},attrs:{id:"tab_log"}},[s("a",{attrs:{href:t.adminUrl("admin.php?page=wdf-logging")},on:{click:function(e){e.preventDefault(),t.view="logs"}}},[t._v(t._s(t.__("Event Logs")))])]),t._v(" "),s("li",{staticClass:"sui-vertical-tab",class:{current:"settings"===t.view},attrs:{id:"tab_settings"}},[s("a",{attrs:{href:t.adminUrl("admin.php?page=wdf-logging&view=settings")},on:{click:function(e){e.preventDefault(),t.view="settings"}}},[t._v(t._s(t.__("Settings")))])]),t._v(" "),s("li",{staticClass:"sui-vertical-tab",class:{current:"report"===t.view},attrs:{id:"tab_report"}},[s("a",{attrs:{href:t.adminUrl("admin.php?page=wdf-logging&view=report")},on:{click:function(e){e.preventDefault(),t.view="report"}}},[t._v(t._s(t.__("Reports")))])])]),t._v(" "),s("div",{staticClass:"sui-sidenav-hide-lg"},[s("select",{staticClass:"sui-mobile-nav",staticStyle:{display:"none"}},[s("option",{attrs:{value:"logs"}},[t._v(t._s(t.__("Event Logs")))]),t._v(" "),s("option",{attrs:{value:"settings"}},[t._v(t._s(t.__("Settings")))]),t._v(" "),s("option",{attrs:{value:"report"}},[t._v(t._s(t.__("Reports")))])])])]),t._v(" "),s("logs",{directives:[{name:"show",rawName:"v-show",value:"logs"===t.view,expression:"view==='logs'"}]}),t._v(" "),s("settings",{directives:[{name:"show",rawName:"v-show",value:"settings"===t.view,expression:"view==='settings'"}]}),t._v(" "),s("report",{directives:[{name:"show",rawName:"v-show",value:"report"===t.view,expression:"view==='report'"}]})],1),t._v(" "),s("app-footer")],1):s("div",{staticClass:"auditing"},[s("div",{staticClass:"sui-header"},[s("h1",{staticClass:"sui-header-title"},[t._v("\n "+t._s(t.__("Audit Logging"))+"\n ")]),t._v(" "),s("div",{staticClass:"sui-actions-right"},[s("doc-link",{attrs:{link:"https://premium.wpmudev.org/docs/wpmu-dev-plugins/defender/#audit-logging"}})],1)]),t._v(" "),s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n "+t._s(t.__("Activate"))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-message"},[!1===t.maybeHideBranding()?s("img",{staticClass:"sui-image",attrs:{src:t.assetUrl("assets/img/audit-disabled-man.svg"),"aria-hidden":"true"}}):t._e(),t._v(" "),s("div",{staticClass:"sui-message-content"},[s("p",[t._v("\n "+t._s(t.__("Track and log each and every event when changes are made to your website and getdetailed reports on what's going on behind the scenes, including any hacking attempts onyour site."))+"\n ")]),t._v(" "),s("submit-button",{attrs:{type:"button","css-class":"sui-button-blue activate",state:t.state},on:{click:function(e){return t.toggle(!0)}}},[t._v("\n "+t._s(t.__("Activate"))+"\n ")])],1)])])])])}),[],!1,null,null,null).exports,w={mixins:[a.a],name:"audit-free"},k=Object(h.a)(w,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-wrap",class:t.maybeHighContrast},[s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n "+t._s(t.__("Audit Logging"))+"\n ")]),t._v(" "),t._m(0)]),t._v(" "),s("div",{staticClass:"sui-message"},[s("img",{staticClass:"sui-image",attrs:{src:t.assetUrl("assets/img/audit-disabled-man.svg")}}),t._v(" "),s("div",{staticClass:"sui-message-content"},[s("p",[t._v("\n "+t._s(t.__("Track and log each and every event when changes are made to your website and get detailed reports on what's going on behind the scenes, including any hacking attempts on your site. This is a pro feature that requires an active WPMU DEV membership. Try it free today!"))+"\n ")]),t._v(" "),s("a",{staticClass:"sui-button sui-button-purple",attrs:{href:t.campaign_url("defender_auditlogging_upgrade_button"),target:"_blank"}},[t._v("Upgrade to Pro")])])])])])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"sui-actions-left"},[e("span",{staticClass:"sui-tag sui-tag-pro"},[this._v("Pro")])])}],!1,null,null,null).exports,x=s("./src/component/overlay.vue"),C=s("./src/component/submit-button.vue"),S=s("./src/component/doc-link.vue"),D=s("./src/component/summary-box.vue");n.a.filter("moment",(function(t,e){return t?d(t).format(e):d().format(e)})),n.a.component("overlay",x.a),n.a.component("submit-button",C.a),n.a.component("app-footer",r.a),n.a.component("doc-link",S.a),n.a.component("summary-box",D.a);new n.a({el:"#defender",components:{audit:b,audit_free:k},render:function(t){return 0===parseInt(defender.is_free)?t(b):t(k)}})},"./src/component/doc-link.vue":function(t,e,s){"use strict";var i={mixins:[s("./src/helper/base_hepler.js").a],name:"doc-link",props:["link"],data:function(){return{whitelabel:defender.whitelabel}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this.$createElement,e=this._self._c||t;return!1===this.whitelabel.hide_doc_link?e("div",{staticClass:"sui-actions-right"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:this.link,target:"_blank"}},[e("i",{staticClass:"sui-icon-academy"}),this._v(" "+this._s(this.__("View Documentation"))+"\n ")])]):this._e()}),[],!1,null,null,null);e.a=a.exports},"./src/component/footer.vue":function(t,e,s){"use strict";var i={data:function(){return{whitelabel:defender.whitelabel,is_free:defender.is_free}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",[!0===t.whitelabel.change_footer?s("div",{staticClass:"sui-footer"},[t._v("\n "+t._s(t.whitelabel.footer_text)+"\n ")]):s("div",{staticClass:"sui-footer"},[t._v("Made with "),s("i",{staticClass:"sui-icon-heart"}),t._v(" by WPMU DEV")]),t._v(" "),!1===t.whitelabel.hide_doc_link?s("div",[t.is_free?s("ul",{staticClass:"sui-footer-nav"},[t._m(0),t._v(" "),t._m(1),t._v(" "),t._m(2),t._v(" "),t._m(3),t._v(" "),t._m(4),t._v(" "),t._m(5),t._v(" "),t._m(6),t._v(" "),t._m(7)]):s("ul",{staticClass:"sui-footer-nav"},[t._m(8),t._v(" "),t._m(9),t._v(" "),t._m(10),t._v(" "),t._m(11),t._v(" "),t._m(12),t._v(" "),t._m(13),t._v(" "),t._m(14),t._v(" "),t._m(15)]),t._v(" "),t._m(16)]):t._e()])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://profiles.wordpress.org/wpmudev#content-plugins",target:"_blank"}},[this._v("Free\n Plugins")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/features/",target:"_blank"}},[this._v("Membership")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://wordpress.org/support/plugin/plugin-name",target:"_blank"}},[this._v("Support")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/projects/category/plugins/",target:"_blank"}},[this._v("Plugins")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/support/",target:"_blank"}},[this._v("Support")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/community/",target:"_blank"}},[this._v("Community")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ul",{staticClass:"sui-footer-social"},[s("li",[s("a",{attrs:{href:"https://www.facebook.com/wpmudev",target:"_blank"}},[s("i",{staticClass:"sui-icon-social-facebook",attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Facebook")])])]),t._v(" "),s("li",[s("a",{attrs:{href:"https://twitter.com/wpmudev",target:"_blank"}},[s("i",{staticClass:"sui-icon-social-twitter",attrs:{"aria-hidden":"true"}})]),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Twitter")])]),t._v(" "),s("li",[s("a",{attrs:{href:"https://www.instagram.com/wpmu_dev/",target:"_blank"}},[s("i",{staticClass:"sui-icon-instagram",attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Instagram")])])])])}],!1,null,null,null);e.a=a.exports},"./src/component/overlay.vue":function(t,e,s){"use strict";var i={name:"overlay"},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this.$createElement;this._self._c;return this._m(0)}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"wd-overlay"},[e("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])}],!1,null,null,null);e.a=a.exports},"./src/component/pagination.vue":function(t,e,s){"use strict";var i={props:{value:{type:Number},pageCount:{type:Number,required:!0},forcePage:{type:Number},clickHandler:{type:Function,default:function(){}},pageRange:{type:Number,default:3},marginPages:{type:Number,default:1},prevText:{type:String,default:"Prev"},nextText:{type:String,default:"Next"},breakViewText:{type:String,default:"…"},containerClass:{type:String},pageClass:{type:String},pageLinkClass:{type:String},prevClass:{type:String},prevLinkClass:{type:String},nextClass:{type:String},nextLinkClass:{type:String},breakViewClass:{type:String},breakViewLinkClass:{type:String},activeClass:{type:String,default:"active"},disabledClass:{type:String,default:"disabled"},noLiSurround:{type:Boolean,default:!1},firstLastButton:{type:Boolean,default:!1},firstButtonText:{type:String,default:"First"},lastButtonText:{type:String,default:"Last"},hidePrevNext:{type:Boolean,default:!1}},beforeUpdate:function(){void 0!==this.forcePage&&this.forcePage!==this.selected&&(this.selected=this.forcePage)},computed:{selected:{get:function(){return this.value||this.innerValue},set:function(t){this.innerValue=t}},pages:function(){var t=this,e={};if(this.pageCount<=this.pageRange)for(var s=0;s<this.pageCount;s++){var i={index:s,content:s+1,selected:s===this.selected-1};e[s]=i}else{for(var n=Math.floor(this.pageRange/2),a=function(s){var i={index:s,content:s+1,selected:s===t.selected-1};e[s]=i},r=function(t){e[t]={disabled:!0,breakView:!0}},o=0;o<this.marginPages;o++)a(o);var l=0;this.selected-n>0&&(l=this.selected-1-n);var u=l+this.pageRange-1;u>=this.pageCount&&(l=(u=this.pageCount-1)-this.pageRange+1);for(var d=l;d<=u&&d<=this.pageCount-1;d++)a(d);l>this.marginPages&&r(l-1),u+1<this.pageCount-this.marginPages&&r(u+1);for(var c=this.pageCount-1;c>=this.pageCount-this.marginPages;c--)a(c)}return e}},data:function(){return{innerValue:1}},methods:{handlePageSelected:function(t){this.selected!==t&&(this.innerValue=t,this.$emit("input",t),this.clickHandler(t))},prevPage:function(){this.selected<=1||this.handlePageSelected(this.selected-1)},nextPage:function(){this.selected>=this.pageCount||this.handlePageSelected(this.selected+1)},firstPageSelected:function(){return 1===this.selected},lastPageSelected:function(){return this.selected===this.pageCount||0===this.pageCount},selectFirstPage:function(){this.selected<=1||this.handlePageSelected(1)},selectLastPage:function(){this.selected>=this.pageCount||this.handlePageSelected(this.pageCount)}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return t.noLiSurround?s("div",{class:t.containerClass},[t.firstLastButton?s("a",{class:[t.pageLinkClass,t.firstPageSelected()?t.disabledClass:""],attrs:{tabindex:"0"},domProps:{innerHTML:t._s(t.firstButtonText)},on:{click:function(e){return t.selectFirstPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.selectFirstPage()}}}):t._e(),t._v(" "),t.firstPageSelected()&&t.hidePrevNext?t._e():s("a",{class:[t.prevLinkClass,t.firstPageSelected()?t.disabledClass:""],attrs:{tabindex:"0"},domProps:{innerHTML:t._s(t.prevText)},on:{click:function(e){return t.prevPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.prevPage()}}}),t._v(" "),t._l(t.pages,(function(e){return[e.breakView?s("a",{class:[t.pageLinkClass,t.breakViewLinkClass,e.disabled?t.disabledClass:""],attrs:{tabindex:"0"}},[t._t("breakViewContent",[t._v(t._s(t.breakViewText))])],2):e.disabled?s("a",{class:[t.pageLinkClass,e.selected?t.activeClass:"",t.disabledClass],attrs:{tabindex:"0"}},[t._v(t._s(e.content))]):s("a",{class:[t.pageLinkClass,e.selected?t.activeClass:""],attrs:{tabindex:"0"},on:{click:function(s){return t.handlePageSelected(e.index+1)},keyup:function(s){return!s.type.indexOf("key")&&t._k(s.keyCode,"enter",13,s.key,"Enter")?null:t.handlePageSelected(e.index+1)}}},[t._v(t._s(e.content))])]})),t._v(" "),t.lastPageSelected()&&t.hidePrevNext?t._e():s("a",{class:[t.nextLinkClass,t.lastPageSelected()?t.disabledClass:""],attrs:{tabindex:"0"},domProps:{innerHTML:t._s(t.nextText)},on:{click:function(e){return t.nextPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.nextPage()}}}),t._v(" "),t.firstLastButton?s("a",{class:[t.pageLinkClass,t.lastPageSelected()?t.disabledClass:""],attrs:{tabindex:"0"},domProps:{innerHTML:t._s(t.lastButtonText)},on:{click:function(e){return t.selectLastPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.selectLastPage()}}}):t._e()],2):s("ul",{class:t.containerClass},[t.firstLastButton?s("li",{class:[t.pageClass,t.firstPageSelected()?t.disabledClass:""]},[s("a",{class:t.pageLinkClass,attrs:{tabindex:t.firstPageSelected()?-1:0},domProps:{innerHTML:t._s(t.firstButtonText)},on:{click:function(e){return t.selectFirstPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.selectFirstPage()}}})]):t._e(),t._v(" "),t.firstPageSelected()&&t.hidePrevNext?t._e():s("li",{class:[t.prevClass,t.firstPageSelected()?t.disabledClass:""]},[s("a",{class:t.prevLinkClass,attrs:{tabindex:t.firstPageSelected()?-1:0},domProps:{innerHTML:t._s(t.prevText)},on:{click:function(e){return t.prevPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.prevPage()}}})]),t._v(" "),t._l(t.pages,(function(e){return s("li",{class:[t.pageClass,e.selected?t.activeClass:"",e.disabled?t.disabledClass:"",e.breakView?t.breakViewClass:""]},[e.breakView?s("a",{class:[t.pageLinkClass,t.breakViewLinkClass],attrs:{tabindex:"0"}},[t._t("breakViewContent",[t._v(t._s(t.breakViewText))])],2):e.disabled?s("a",{class:t.pageLinkClass,attrs:{tabindex:"0"}},[t._v(t._s(e.content))]):s("a",{class:t.pageLinkClass,attrs:{disabled:e.selected,tabindex:"0"},on:{click:function(s){return t.handlePageSelected(e.index+1)},keyup:function(s){return!s.type.indexOf("key")&&t._k(s.keyCode,"enter",13,s.key,"Enter")?null:t.handlePageSelected(e.index+1)}}},[t._v(t._s(e.content))])])})),t._v(" "),t.lastPageSelected()&&t.hidePrevNext?t._e():s("li",{class:[t.nextClass,t.lastPageSelected()?t.disabledClass:""]},[s("a",{class:t.nextLinkClass,attrs:{tabindex:t.lastPageSelected()?-1:0},domProps:{innerHTML:t._s(t.nextText)},on:{click:function(e){return t.nextPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.nextPage()}}})]),t._v(" "),t.firstLastButton?s("li",{class:[t.pageClass,t.lastPageSelected()?t.disabledClass:""]},[s("a",{class:t.pageLinkClass,attrs:{tabindex:t.lastPageSelected()?-1:0},domProps:{innerHTML:t._s(t.lastButtonText)},on:{click:function(e){return t.selectLastPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.selectLastPage()}}})]):t._e()],2)}),[],!1,null,null,null);e.a=a.exports},"./src/component/recipients.vue":function(t,e,s){"use strict";var i={mixins:[s("./src/helper/base_hepler.js").a],props:["recipients","id"],data:function(){return{first_name:"",email:"",observers:[],can_add:!1,saving_warning:!1,validate:{email:""}}},created:function(){this.observers=this.recipients},watch:{email:function(){if(this.validateEmail(this.email)){var t=!0,e=this;this.observers.forEach((function(s,i){if(s.email===e.email)return t=!1,void(e.validate.email=e.__("This email address is already in use"))})),this.can_add=t,!0===t&&(this.validate.email="")}else this.can_add=!1,this.validate.email=this.__("Invalid email address")},observers:function(){0===this.observers.length?this.saving_warning=!0:this.saving_warning=!1,void 0!==this.event&&this.$emit("update:recipients",this.observers)}},methods:{addRecipient:function(){this.observers.push({first_name:this.first_name,email:this.email}),jQuery.each(SUI.dialogs,(function(t,e){e.hide()})),this.first_name="",this.email=""},removeRecipient:function(t){this.observers.splice(t,1)},validateEmail:function(t){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(t).toLowerCase())}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",[s("div",{directives:[{name:"show",rawName:"v-show",value:t.saving_warning,expression:"saving_warning"}],staticClass:"sui-notice sui-notice-warning"},[s("p",[t._v("\n\t\t\t"+t._s(t.__("You've removed all recipients. If you save without a recipient, we'll automatically turn of reports"))+"\n\t\t")])]),t._v(" "),s("div",{staticClass:"sui-recipients"},[t._l(t.observers,(function(e,i){return s("div",{staticClass:"sui-recipient"},[s("span",{staticClass:"sui-recipient-name"},[t._v(t._s(e.first_name))]),t._v(" "),s("span",{staticClass:"sui-recipient-email"},[t._v(t._s(e.email))]),t._v(" "),s("button",{staticClass:"sui-button-icon",attrs:{type:"button"},on:{click:function(e){return t.removeRecipient(i)}}},[s("i",{staticClass:"sui-icon-trash",attrs:{"aria-hidden":"true"}})])])})),t._v(" "),s("button",{staticClass:"sui-button sui-button-ghost add-recipient",attrs:{"data-a11y-dialog-show":t.id,type:"button"}},[s("i",{staticClass:"sui-icon-plus",attrs:{"aria-hidden":"true"}}),t._v(" "+t._s(t.__("Add Recipient"))+"\n\t\t")])],2),t._v(" "),s("div",{staticClass:"sui-dialog sui-dialog-sm",attrs:{"aria-hidden":"true",tabindex:"-1",id:t.id}},[s("div",{staticClass:"sui-dialog-overlay"}),t._v(" "),s("div",{staticClass:"sui-dialog-content",attrs:{"aria-labelledby":"dialogTitle","aria-describedby":"dialogDescription",role:"dialog"}},[s("div",{staticClass:"sui-box",attrs:{role:"document"}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Add Recipient"))+"\n\t\t\t\t\t")]),t._v(" "),t._m(0)]),t._v(" "),s("div",{staticClass:"sui-box-body"},[s("p",[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Add as many recipients as you like, they will receive email reports as per the schedule you set."))+"\n\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("First name")))]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.first_name,expression:"first_name"}],staticClass:"sui-form-control recipient_name",attrs:{type:"text"},domProps:{value:t.first_name},on:{input:function(e){e.target.composing||(t.first_name=e.target.value)}}})]),t._v(" "),s("div",{staticClass:"sui-form-field",class:{"sui-form-field-error":t.validate.email.length>0}},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Email")))]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.email,expression:"email"}],staticClass:"sui-form-control recipient_email",attrs:{type:"text"},domProps:{value:t.email},on:{input:function(e){e.target.composing||(t.email=e.target.value)}}}),t._v(" "),s("span",{directives:[{name:"show",rawName:"v-show",value:t.validate.email.length>0,expression:"validate.email.length > 0"}],staticClass:"sui-error-message",domProps:{textContent:t._s(this.validate.email)}})])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("button",{staticClass:"sui-button sui-button-ghost",attrs:{type:"button","data-a11y-dialog-hide":"recipient-dialog"}},[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Cancel"))+"\n\t\t\t\t\t")]),t._v(" "),s("button",{staticClass:"sui-modal-close sui-button recipient_save",attrs:{type:"button",disabled:!1===t.can_add},on:{click:t.addRecipient}},[t._v(t._s(t.__("Add"))+"\n\t\t\t\t\t")])])])])])])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"sui-actions-right"},[e("button",{staticClass:"sui-dialog-close",attrs:{type:"button","data-a11y-dialog-hide":"","aria-label":"Close this dialog window"}})])}],!1,null,null,null);e.a=a.exports},"./src/component/submit-button.vue":function(t,e,s){"use strict";var i={name:"submit-button",props:["id","state","text","css-class","type"],computed:{getClass:function(){return"sui-button "+this.cssClass}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("button",{staticClass:"sui-button",class:[t.getClass,{"sui-button-onload":t.state.on_saving}],attrs:{id:t.id,type:t.type,disabled:t.state.on_saving},on:{click:function(e){return t.$emit("click")}}},[s("span",{staticClass:"sui-loading-text"},[t._t("default")],2),t._v(" "),s("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])}),[],!1,null,null,null);e.a=a.exports},"./src/component/summary-box.vue":function(t,e,s){"use strict";var i={mixins:[s("./src/helper/base_hepler.js").a],props:["css-class"],name:"summary-box",data:function(){return{whitelabel:defender.whitelabel}},computed:{summary_class:function(){return{"sui-unbranded":!0===this.whitelabel.hide_branding&&0===this.whitelabel.hero_image.length,"sui-rebranded":!0===this.whitelabel.hide_branding&&this.whitelabel.hero_image.length>0}},css_class:function(){return this.cssClass},rebrand_img:function(){if(this.whitelabel.hero_image.length>0)return{"background-image":"url('"+this.whitelabel.hero_image+"')"}}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"sui-box sui-summary",class:[this.summary_class,this.css_class],style:this.rebrand_img},[e("div",{staticClass:"sui-summary-image-space",attrs:{"aria-hidden":"true"}}),this._v(" "),this._t("default")],2)}),[],!1,null,null,null);e.a=a.exports},"./src/helper/base_hepler.js":function(t,e,s){"use strict";var i=s("./node_modules/xss/lib/index.js"),n=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var s=[],i=!0,n=!1,a=void 0;try{for(var r,o=t[Symbol.iterator]();!(i=(r=o.next()).done)&&(s.push(r.value),!e||s.length!==e);i=!0);}catch(t){n=!0,a=t}finally{try{!i&&o.return&&o.return()}finally{if(n)throw a}}return s}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")},a=wp.i18n,r={whiteList:{a:["href","title","target"],span:["class"],strong:["*"]},safeAttrValue:function(t,e,s,n){return"a"===t&&"href"===e&&"%s"===s?"%s":Object(i.safeAttrValue)(t,e,s,n)}},o=new i.FilterXSS(r),l=[];e.a={methods:{__:function(t){var e=a.__(t,"wpdef");return o.process(e)},xss:function(t){return o.process(t)},vsprintf:function(t){return a.sprintf.apply(null,arguments)},siteUrl:function(t){return void 0!==t?defender.site_url+t:defender.site_url},adminUrl:function(t){return void 0!==t?defender.admin_url+t:defender.admin_url},assetUrl:function(t){return defender.defender_url+t},maybeHighContrast:function(){return{"sui-color-accessible":!0===defender.misc.high_contrast}},maybeHideBranding:function(){return defender.whitelabel.hide_branding},campaign_url:function(t){return"https://premium.wpmudev.org/project/wp-defender/?utm_source=defender&utm_medium=plugin&utm_campaign="+t},httpRequest:function(t,e,s,i,n){var a=this;void 0===n&&(this.state.on_saving=!0);var r=ajaxurl+"?action="+this.endpoints[e]+"&_wpnonce="+this.nonces[e],o=jQuery.ajax({url:r,method:t,data:s,success:function(t){var e=t.data;a.state.on_saving=!1,void 0!==e&&void 0!==e.message&&(t.success?Defender.showNotification("success",e.message):Defender.showNotification("error",e.message)),void 0!==i&&i(t)}});l.push(o)},httpGetRequest:function(t,e,s,i){this.httpRequest("get",t,e,s,i)},httpPostRequest:function(t,e,s,i){this.httpRequest("post",t,e,s,i)},abortAllRequests:function(){for(var t=0;t<l.length;t++)l[t].abort()},getQueryStringParams:function(t){return t?(/^[?#]/.test(t)?t.slice(1):t).split("&").reduce((function(t,e){var s=e.split("="),i=n(s,2),a=i[0],r=i[1];return t[a]=r?decodeURIComponent(r.replace(/\+/g," ")):"",t}),{}):{}},rebindSUI:function(){jQuery("select:not([multiple])").each((function(){SUI.suiSelect(this)})),jQuery(".sui-accordion").each((function(){SUI.suiAccordion(this)}));var t=jQuery(".sui-wrap");SUI.dialogs={},jQuery(".sui-dialog").each((function(){SUI.dialogs[this.id]=new A11yDialog(this,t)}))}}}},vue:function(t,e){t.exports=Vue}});
1
+ !function(e){var t=window.webpackHotUpdate;window.webpackHotUpdate=function(e,s){!function(e,t){if(!w[e]||!b[e])return;for(var s in b[e]=!1,t)Object.prototype.hasOwnProperty.call(t,s)&&(m[s]=t[s]);0==--v&&0===g&&S()}(e,s),t&&t(e,s)};var s,i=!0,n="b39acf366faa9b224a1a",a={},r=[],o=[];function l(e){var t=Y[e];if(!t)return T;var i=function(i){return t.hot.active?(Y[i]?-1===Y[i].parents.indexOf(e)&&Y[i].parents.push(e):(r=[e],s=i),-1===t.children.indexOf(i)&&t.children.push(i)):(console.warn("[HMR] unexpected require("+i+") from disposed module "+e),r=[]),T(i)},n=function(e){return{configurable:!0,enumerable:!0,get:function(){return T[e]},set:function(t){T[e]=t}}};for(var a in T)Object.prototype.hasOwnProperty.call(T,a)&&"e"!==a&&"t"!==a&&Object.defineProperty(i,a,n(a));return i.e=function(e){return"ready"===c&&h("prepare"),g++,T.e(e).then(t,(function(e){throw t(),e}));function t(){g--,"prepare"===c&&(y[e]||C(e),0===g&&0===v&&S())}},i.t=function(e,t){return 1&t&&(e=i(e)),T.t(e,-2&t)},i}function u(t){var i={_acceptedDependencies:{},_declinedDependencies:{},_selfAccepted:!1,_selfDeclined:!1,_selfInvalidated:!1,_disposeHandlers:[],_main:s!==t,active:!0,accept:function(e,t){if(void 0===e)i._selfAccepted=!0;else if("function"==typeof e)i._selfAccepted=e;else if("object"==typeof e)for(var s=0;s<e.length;s++)i._acceptedDependencies[e[s]]=t||function(){};else i._acceptedDependencies[e]=t||function(){}},decline:function(e){if(void 0===e)i._selfDeclined=!0;else if("object"==typeof e)for(var t=0;t<e.length;t++)i._declinedDependencies[e[t]]=!0;else i._declinedDependencies[e]=!0},dispose:function(e){i._disposeHandlers.push(e)},addDisposeHandler:function(e){i._disposeHandlers.push(e)},removeDisposeHandler:function(e){var t=i._disposeHandlers.indexOf(e);t>=0&&i._disposeHandlers.splice(t,1)},invalidate:function(){switch(this._selfInvalidated=!0,c){case"idle":(m={})[t]=e[t],h("ready");break;case"ready":O(t);break;case"prepare":case"check":case"dispose":case"apply":(p=p||[]).push(t)}},check:x,apply:D,status:function(e){if(!e)return c;d.push(e)},addStatusHandler:function(e){d.push(e)},removeStatusHandler:function(e){var t=d.indexOf(e);t>=0&&d.splice(t,1)},data:a[t]};return s=void 0,i}var d=[],c="idle";function h(e){c=e;for(var t=0;t<d.length;t++)d[t].call(null,e)}var f,m,_,p,v=0,g=0,y={},b={},w={};function k(e){return+e+""===e?+e:e}function x(e){if("idle"!==c)throw new Error("check() is only allowed in idle status");return i=e,h("check"),(t=1e4,t=t||1e4,new Promise((function(e,s){if("undefined"==typeof XMLHttpRequest)return s(new Error("No browser support"));try{var i=new XMLHttpRequest,a=T.p+""+n+".hot-update.json";i.open("GET",a,!0),i.timeout=t,i.send(null)}catch(e){return s(e)}i.onreadystatechange=function(){if(4===i.readyState)if(0===i.status)s(new Error("Manifest request to "+a+" timed out."));else if(404===i.status)e();else if(200!==i.status&&304!==i.status)s(new Error("Manifest request to "+a+" failed."));else{try{var t=JSON.parse(i.responseText)}catch(e){return void s(e)}e(t)}}}))).then((function(e){if(!e)return h(M()?"ready":"idle"),null;b={},y={},w=e.c,_=e.h,h("prepare");var t=new Promise((function(e,t){f={resolve:e,reject:t}}));m={};return C(1),"prepare"===c&&0===g&&0===v&&S(),t}));var t}function C(e){w[e]?(b[e]=!0,v++,function(e){var t=document.createElement("script");t.charset="utf-8",t.src=T.p+""+e+"."+n+".hot-update.js",document.head.appendChild(t)}(e)):y[e]=!0}function S(){h("ready");var e=f;if(f=null,e)if(i)Promise.resolve().then((function(){return D(i)})).then((function(t){e.resolve(t)}),(function(t){e.reject(t)}));else{var t=[];for(var s in m)Object.prototype.hasOwnProperty.call(m,s)&&t.push(k(s));e.resolve(t)}}function D(t){if("ready"!==c)throw new Error("apply() is only allowed in ready status");return function t(i){var o,l,u,d,c;function f(e){for(var t=[e],s={},i=t.map((function(e){return{chain:[e],id:e}}));i.length>0;){var n=i.pop(),a=n.id,r=n.chain;if((d=Y[a])&&(!d.hot._selfAccepted||d.hot._selfInvalidated)){if(d.hot._selfDeclined)return{type:"self-declined",chain:r,moduleId:a};if(d.hot._main)return{type:"unaccepted",chain:r,moduleId:a};for(var o=0;o<d.parents.length;o++){var l=d.parents[o],u=Y[l];if(u){if(u.hot._declinedDependencies[a])return{type:"declined",chain:r.concat([l]),moduleId:a,parentId:l};-1===t.indexOf(l)&&(u.hot._acceptedDependencies[a]?(s[l]||(s[l]=[]),v(s[l],[a])):(delete s[l],t.push(l),i.push({chain:r.concat([l]),id:l})))}}}}return{type:"accepted",moduleId:e,outdatedModules:t,outdatedDependencies:s}}function v(e,t){for(var s=0;s<t.length;s++){var i=t[s];-1===e.indexOf(i)&&e.push(i)}}M();var g={},y=[],b={},x=function(){console.warn("[HMR] unexpected require("+S.moduleId+") to disposed module")};for(var C in m)if(Object.prototype.hasOwnProperty.call(m,C)){var S;c=k(C),S=m[C]?f(c):{type:"disposed",moduleId:C};var D=!1,O=!1,P=!1,j="";switch(S.chain&&(j="\nUpdate propagation: "+S.chain.join(" -> ")),S.type){case"self-declined":i.onDeclined&&i.onDeclined(S),i.ignoreDeclined||(D=new Error("Aborted because of self decline: "+S.moduleId+j));break;case"declined":i.onDeclined&&i.onDeclined(S),i.ignoreDeclined||(D=new Error("Aborted because of declined dependency: "+S.moduleId+" in "+S.parentId+j));break;case"unaccepted":i.onUnaccepted&&i.onUnaccepted(S),i.ignoreUnaccepted||(D=new Error("Aborted because "+c+" is not accepted"+j));break;case"accepted":i.onAccepted&&i.onAccepted(S),O=!0;break;case"disposed":i.onDisposed&&i.onDisposed(S),P=!0;break;default:throw new Error("Unexception type "+S.type)}if(D)return h("abort"),Promise.reject(D);if(O)for(c in b[c]=m[c],v(y,S.outdatedModules),S.outdatedDependencies)Object.prototype.hasOwnProperty.call(S.outdatedDependencies,c)&&(g[c]||(g[c]=[]),v(g[c],S.outdatedDependencies[c]));P&&(v(y,[S.moduleId]),b[c]=x)}var A,E=[];for(l=0;l<y.length;l++)c=y[l],Y[c]&&Y[c].hot._selfAccepted&&b[c]!==x&&!Y[c].hot._selfInvalidated&&E.push({module:c,parents:Y[c].parents.slice(),errorHandler:Y[c].hot._selfAccepted});h("dispose"),Object.keys(w).forEach((function(e){!1===w[e]&&function(e){delete installedChunks[e]}(e)}));var L,R,N=y.slice();for(;N.length>0;)if(c=N.pop(),d=Y[c]){var I={},H=d.hot._disposeHandlers;for(u=0;u<H.length;u++)(o=H[u])(I);for(a[c]=I,d.hot.active=!1,delete Y[c],delete g[c],u=0;u<d.children.length;u++){var U=Y[d.children[u]];U&&((A=U.parents.indexOf(c))>=0&&U.parents.splice(A,1))}}for(c in g)if(Object.prototype.hasOwnProperty.call(g,c)&&(d=Y[c]))for(R=g[c],u=0;u<R.length;u++)L=R[u],(A=d.children.indexOf(L))>=0&&d.children.splice(A,1);h("apply"),void 0!==_&&(n=_,_=void 0);for(c in m=void 0,b)Object.prototype.hasOwnProperty.call(b,c)&&(e[c]=b[c]);var W=null;for(c in g)if(Object.prototype.hasOwnProperty.call(g,c)&&(d=Y[c])){R=g[c];var F=[];for(l=0;l<R.length;l++)if(L=R[l],o=d.hot._acceptedDependencies[L]){if(-1!==F.indexOf(o))continue;F.push(o)}for(l=0;l<F.length;l++){o=F[l];try{o(R)}catch(e){i.onErrored&&i.onErrored({type:"accept-errored",moduleId:c,dependencyId:R[l],error:e}),i.ignoreErrored||W||(W=e)}}}for(l=0;l<E.length;l++){var V=E[l];c=V.module,r=V.parents,s=c;try{T(c)}catch(e){if("function"==typeof V.errorHandler)try{V.errorHandler(e)}catch(t){i.onErrored&&i.onErrored({type:"self-accept-error-handler-errored",moduleId:c,error:t,originalError:e}),i.ignoreErrored||W||(W=t),W||(W=e)}else i.onErrored&&i.onErrored({type:"self-accept-errored",moduleId:c,error:e}),i.ignoreErrored||W||(W=e)}}if(W)return h("fail"),Promise.reject(W);if(p)return t(i).then((function(e){return y.forEach((function(t){e.indexOf(t)<0&&e.push(t)})),e}));return h("idle"),new Promise((function(e){e(y)}))}(t=t||{})}function M(){if(p)return m||(m={}),p.forEach(O),p=void 0,!0}function O(t){Object.prototype.hasOwnProperty.call(m,t)||(m[t]=e[t])}var Y={};function T(t){if(Y[t])return Y[t].exports;var s=Y[t]={i:t,l:!1,exports:{},hot:u(t),parents:(o=r,r=[],o),children:[]};return e[t].call(s.exports,s,s.exports,l(t)),s.l=!0,s.exports}T.m=e,T.c=Y,T.d=function(e,t,s){T.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:s})},T.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},T.t=function(e,t){if(1&t&&(e=T(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var s=Object.create(null);if(T.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)T.d(s,i,function(t){return e[t]}.bind(null,i));return s},T.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return T.d(t,"a",t),t},T.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},T.p="",T.h=function(){return n},l("./src/audit.js")(T.s="./src/audit.js")}({"./node_modules/cssfilter/lib/css.js":function(e,t,s){var i=s("./node_modules/cssfilter/lib/default.js"),n=s("./node_modules/cssfilter/lib/parser.js");s("./node_modules/cssfilter/lib/util.js");function a(e){return null==e}function r(e){(e=function(e){var t={};for(var s in e)t[s]=e[s];return t}(e||{})).whiteList=e.whiteList||i.whiteList,e.onAttr=e.onAttr||i.onAttr,e.onIgnoreAttr=e.onIgnoreAttr||i.onIgnoreAttr,e.safeAttrValue=e.safeAttrValue||i.safeAttrValue,this.options=e}r.prototype.process=function(e){if(!(e=(e=e||"").toString()))return"";var t=this.options,s=t.whiteList,i=t.onAttr,r=t.onIgnoreAttr,o=t.safeAttrValue;return n(e,(function(e,t,n,l,u){var d=s[n],c=!1;if(!0===d?c=d:"function"==typeof d?c=d(l):d instanceof RegExp&&(c=d.test(l)),!0!==c&&(c=!1),l=o(n,l)){var h,f={position:t,sourcePosition:e,source:u,isWhite:c};return c?a(h=i(n,l,f))?n+":"+l:h:a(h=r(n,l,f))?void 0:h}}))},e.exports=r},"./node_modules/cssfilter/lib/default.js":function(e,t){function s(){var e={"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1};return e}var i=/javascript\s*\:/gim;t.whiteList=s(),t.getDefaultWhiteList=s,t.onAttr=function(e,t,s){},t.onIgnoreAttr=function(e,t,s){},t.safeAttrValue=function(e,t){return i.test(t)?"":t}},"./node_modules/cssfilter/lib/index.js":function(e,t,s){var i=s("./node_modules/cssfilter/lib/default.js"),n=s("./node_modules/cssfilter/lib/css.js");for(var a in(t=e.exports=function(e,t){return new n(t).process(e)}).FilterCSS=n,i)t[a]=i[a];"undefined"!=typeof window&&(window.filterCSS=e.exports)},"./node_modules/cssfilter/lib/parser.js":function(e,t,s){var i=s("./node_modules/cssfilter/lib/util.js");e.exports=function(e,t){";"!==(e=i.trimRight(e))[e.length-1]&&(e+=";");var s=e.length,n=!1,a=0,r=0,o="";function l(){if(!n){var s=i.trim(e.slice(a,r)),l=s.indexOf(":");if(-1!==l){var u=i.trim(s.slice(0,l)),d=i.trim(s.slice(l+1));if(u){var c=t(a,o.length,u,d,s);c&&(o+=c+"; ")}}}a=r+1}for(;r<s;r++){var u=e[r];if("/"===u&&"*"===e[r+1]){var d=e.indexOf("*/",r+2);if(-1===d)break;a=(r=d+1)+1,n=!1}else"("===u?n=!0:")"===u?n=!1:";"===u?n||l():"\n"===u&&l()}return i.trim(o)}},"./node_modules/cssfilter/lib/util.js":function(e,t){e.exports={indexOf:function(e,t){var s,i;if(Array.prototype.indexOf)return e.indexOf(t);for(s=0,i=e.length;s<i;s++)if(e[s]===t)return s;return-1},forEach:function(e,t,s){var i,n;if(Array.prototype.forEach)return e.forEach(t,s);for(i=0,n=e.length;i<n;i++)t.call(s,e[i],i,e)},trim:function(e){return String.prototype.trim?e.trim():e.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(e){return String.prototype.trimRight?e.trimRight():e.replace(/(\s*$)/g,"")}}},"./node_modules/lodash/_Symbol.js":function(e,t,s){var i=s("./node_modules/lodash/_root.js").Symbol;e.exports=i},"./node_modules/lodash/_baseGetTag.js":function(e,t,s){var i=s("./node_modules/lodash/_Symbol.js"),n=s("./node_modules/lodash/_getRawTag.js"),a=s("./node_modules/lodash/_objectToString.js"),r=i?i.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":r&&r in Object(e)?n(e):a(e)}},"./node_modules/lodash/_baseSlice.js":function(e,t){e.exports=function(e,t,s){var i=-1,n=e.length;t<0&&(t=-t>n?0:n+t),(s=s>n?n:s)<0&&(s+=n),n=t>s?0:s-t>>>0,t>>>=0;for(var a=Array(n);++i<n;)a[i]=e[i+t];return a}},"./node_modules/lodash/_freeGlobal.js":function(e,t,s){(function(t){var s="object"==typeof t&&t&&t.Object===Object&&t;e.exports=s}).call(this,s("./node_modules/webpack/buildin/global.js"))},"./node_modules/lodash/_getRawTag.js":function(e,t,s){var i=s("./node_modules/lodash/_Symbol.js"),n=Object.prototype,a=n.hasOwnProperty,r=n.toString,o=i?i.toStringTag:void 0;e.exports=function(e){var t=a.call(e,o),s=e[o];try{e[o]=void 0;var i=!0}catch(e){}var n=r.call(e);return i&&(t?e[o]=s:delete e[o]),n}},"./node_modules/lodash/_isIndex.js":function(e,t){var s=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var i=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==i||"symbol"!=i&&s.test(e))&&e>-1&&e%1==0&&e<t}},"./node_modules/lodash/_isIterateeCall.js":function(e,t,s){var i=s("./node_modules/lodash/eq.js"),n=s("./node_modules/lodash/isArrayLike.js"),a=s("./node_modules/lodash/_isIndex.js"),r=s("./node_modules/lodash/isObject.js");e.exports=function(e,t,s){if(!r(s))return!1;var o=typeof t;return!!("number"==o?n(s)&&a(t,s.length):"string"==o&&t in s)&&i(s[t],e)}},"./node_modules/lodash/_objectToString.js":function(e,t){var s=Object.prototype.toString;e.exports=function(e){return s.call(e)}},"./node_modules/lodash/_root.js":function(e,t,s){var i=s("./node_modules/lodash/_freeGlobal.js"),n="object"==typeof self&&self&&self.Object===Object&&self,a=i||n||Function("return this")();e.exports=a},"./node_modules/lodash/chunk.js":function(e,t,s){var i=s("./node_modules/lodash/_baseSlice.js"),n=s("./node_modules/lodash/_isIterateeCall.js"),a=s("./node_modules/lodash/toInteger.js"),r=Math.ceil,o=Math.max;e.exports=function(e,t,s){t=(s?n(e,t,s):void 0===t)?1:o(a(t),0);var l=null==e?0:e.length;if(!l||t<1)return[];for(var u=0,d=0,c=Array(r(l/t));u<l;)c[d++]=i(e,u,u+=t);return c}},"./node_modules/lodash/eq.js":function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},"./node_modules/lodash/isArrayLike.js":function(e,t,s){var i=s("./node_modules/lodash/isFunction.js"),n=s("./node_modules/lodash/isLength.js");e.exports=function(e){return null!=e&&n(e.length)&&!i(e)}},"./node_modules/lodash/isFunction.js":function(e,t,s){var i=s("./node_modules/lodash/_baseGetTag.js"),n=s("./node_modules/lodash/isObject.js");e.exports=function(e){if(!n(e))return!1;var t=i(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},"./node_modules/lodash/isLength.js":function(e,t){e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},"./node_modules/lodash/isObject.js":function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},"./node_modules/lodash/isObjectLike.js":function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},"./node_modules/lodash/isSymbol.js":function(e,t,s){var i=s("./node_modules/lodash/_baseGetTag.js"),n=s("./node_modules/lodash/isObjectLike.js");e.exports=function(e){return"symbol"==typeof e||n(e)&&"[object Symbol]"==i(e)}},"./node_modules/lodash/toFinite.js":function(e,t,s){var i=s("./node_modules/lodash/toNumber.js");e.exports=function(e){return e?(e=i(e))===1/0||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}},"./node_modules/lodash/toInteger.js":function(e,t,s){var i=s("./node_modules/lodash/toFinite.js");e.exports=function(e){var t=i(e),s=t%1;return t==t?s?t-s:t:0}},"./node_modules/lodash/toNumber.js":function(e,t,s){var i=s("./node_modules/lodash/isObject.js"),n=s("./node_modules/lodash/isSymbol.js"),a=/^\s+|\s+$/g,r=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(n(e))return NaN;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(a,"");var s=o.test(e);return s||l.test(e)?u(e.slice(2),s?2:8):r.test(e)?NaN:+e}},"./node_modules/moment/locale sync recursive \\b\\B":function(e,t){function s(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}s.keys=function(){return[]},s.resolve=s,e.exports=s,s.id="./node_modules/moment/locale sync recursive \\b\\B"},"./node_modules/moment/moment.js":function(e,t,s){(function(e){e.exports=function(){"use strict";var t,i;function n(){return t.apply(null,arguments)}function a(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function r(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function o(e){return void 0===e}function l(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function u(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function d(e,t){var s,i=[];for(s=0;s<e.length;++s)i.push(t(e[s],s));return i}function c(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function h(e,t){for(var s in t)c(t,s)&&(e[s]=t[s]);return c(t,"toString")&&(e.toString=t.toString),c(t,"valueOf")&&(e.valueOf=t.valueOf),e}function f(e,t,s,i){return Ct(e,t,s,i,!0).utc()}function m(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function _(e){if(null==e._isValid){var t=m(e),s=i.call(t.parsedDateParts,(function(e){return null!=e})),n=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&s);if(e._strict&&(n=n&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return n;e._isValid=n}return e._isValid}function p(e){var t=f(NaN);return null!=e?h(m(t),e):m(t).userInvalidated=!0,t}i=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),s=t.length>>>0,i=0;i<s;i++)if(i in t&&e.call(this,t[i],i,t))return!0;return!1};var v=n.momentProperties=[];function g(e,t){var s,i,n;if(o(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),o(t._i)||(e._i=t._i),o(t._f)||(e._f=t._f),o(t._l)||(e._l=t._l),o(t._strict)||(e._strict=t._strict),o(t._tzm)||(e._tzm=t._tzm),o(t._isUTC)||(e._isUTC=t._isUTC),o(t._offset)||(e._offset=t._offset),o(t._pf)||(e._pf=m(t)),o(t._locale)||(e._locale=t._locale),v.length>0)for(s=0;s<v.length;s++)o(n=t[i=v[s]])||(e[i]=n);return e}var y=!1;function b(e){g(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===y&&(y=!0,n.updateOffset(this),y=!1)}function w(e){return e instanceof b||null!=e&&null!=e._isAMomentObject}function k(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function x(e){var t=+e,s=0;return 0!==t&&isFinite(t)&&(s=k(t)),s}function C(e,t,s){var i,n=Math.min(e.length,t.length),a=Math.abs(e.length-t.length),r=0;for(i=0;i<n;i++)(s&&e[i]!==t[i]||!s&&x(e[i])!==x(t[i]))&&r++;return r+a}function S(e){!1===n.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function D(e,t){var s=!0;return h((function(){if(null!=n.deprecationHandler&&n.deprecationHandler(null,e),s){for(var i,a=[],r=0;r<arguments.length;r++){if(i="","object"==typeof arguments[r]){for(var o in i+="\n["+r+"] ",arguments[0])i+=o+": "+arguments[0][o]+", ";i=i.slice(0,-2)}else i=arguments[r];a.push(i)}S(e+"\nArguments: "+Array.prototype.slice.call(a).join("")+"\n"+(new Error).stack),s=!1}return t.apply(this,arguments)}),t)}var M,O={};function Y(e,t){null!=n.deprecationHandler&&n.deprecationHandler(e,t),O[e]||(S(t),O[e]=!0)}function T(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function P(e,t){var s,i=h({},e);for(s in t)c(t,s)&&(r(e[s])&&r(t[s])?(i[s]={},h(i[s],e[s]),h(i[s],t[s])):null!=t[s]?i[s]=t[s]:delete i[s]);for(s in e)c(e,s)&&!c(t,s)&&r(e[s])&&(i[s]=h({},i[s]));return i}function j(e){null!=e&&this.set(e)}n.suppressDeprecationWarnings=!1,n.deprecationHandler=null,M=Object.keys?Object.keys:function(e){var t,s=[];for(t in e)c(e,t)&&s.push(t);return s};var A={};function E(e,t){var s=e.toLowerCase();A[s]=A[s+"s"]=A[t]=e}function L(e){return"string"==typeof e?A[e]||A[e.toLowerCase()]:void 0}function R(e){var t,s,i={};for(s in e)c(e,s)&&(t=L(s))&&(i[t]=e[s]);return i}var N={};function I(e,t){N[e]=t}function H(e,t,s){var i=""+Math.abs(e),n=t-i.length;return(e>=0?s?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+i}var U=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,W=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,F={},V={};function $(e,t,s,i){var n=i;"string"==typeof i&&(n=function(){return this[i]()}),e&&(V[e]=n),t&&(V[t[0]]=function(){return H(n.apply(this,arguments),t[1],t[2])}),s&&(V[s]=function(){return this.localeData().ordinal(n.apply(this,arguments),e)})}function G(e,t){return e.isValid()?(t=z(t,e.localeData()),F[t]=F[t]||function(e){var t,s,i,n=e.match(U);for(t=0,s=n.length;t<s;t++)V[n[t]]?n[t]=V[n[t]]:n[t]=(i=n[t]).match(/\[[\s\S]/)?i.replace(/^\[|\]$/g,""):i.replace(/\\/g,"");return function(t){var i,a="";for(i=0;i<s;i++)a+=T(n[i])?n[i].call(t,e):n[i];return a}}(t),F[t](e)):e.localeData().invalidDate()}function z(e,t){var s=5;function i(e){return t.longDateFormat(e)||e}for(W.lastIndex=0;s>=0&&W.test(e);)e=e.replace(W,i),W.lastIndex=0,s-=1;return e}var q=/\d/,Z=/\d\d/,B=/\d{3}/,Q=/\d{4}/,J=/[+-]?\d{6}/,X=/\d\d?/,K=/\d\d\d\d?/,ee=/\d\d\d\d\d\d?/,te=/\d{1,3}/,se=/\d{1,4}/,ie=/[+-]?\d{1,6}/,ne=/\d+/,ae=/[+-]?\d+/,re=/Z|[+-]\d\d:?\d\d/gi,oe=/Z|[+-]\d\d(?::?\d\d)?/gi,le=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,ue={};function de(e,t,s){ue[e]=T(t)?t:function(e,i){return e&&s?s:t}}function ce(e,t){return c(ue,e)?ue[e](t._strict,t._locale):new RegExp(he(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(e,t,s,i,n){return t||s||i||n}))))}function he(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var fe={};function me(e,t){var s,i=t;for("string"==typeof e&&(e=[e]),l(t)&&(i=function(e,s){s[t]=x(e)}),s=0;s<e.length;s++)fe[e[s]]=i}function _e(e,t){me(e,(function(e,s,i,n){i._w=i._w||{},t(e,i._w,i,n)}))}function pe(e,t,s){null!=t&&c(fe,e)&&fe[e](t,s._a,s,e)}function ve(e){return ge(e)?366:365}function ge(e){return e%4==0&&e%100!=0||e%400==0}$("Y",0,0,(function(){var e=this.year();return e<=9999?""+e:"+"+e})),$(0,["YY",2],0,(function(){return this.year()%100})),$(0,["YYYY",4],0,"year"),$(0,["YYYYY",5],0,"year"),$(0,["YYYYYY",6,!0],0,"year"),E("year","y"),I("year",1),de("Y",ae),de("YY",X,Z),de("YYYY",se,Q),de("YYYYY",ie,J),de("YYYYYY",ie,J),me(["YYYYY","YYYYYY"],0),me("YYYY",(function(e,t){t[0]=2===e.length?n.parseTwoDigitYear(e):x(e)})),me("YY",(function(e,t){t[0]=n.parseTwoDigitYear(e)})),me("Y",(function(e,t){t[0]=parseInt(e,10)})),n.parseTwoDigitYear=function(e){return x(e)+(x(e)>68?1900:2e3)};var ye,be=we("FullYear",!0);function we(e,t){return function(s){return null!=s?(xe(this,e,s),n.updateOffset(this,t),this):ke(this,e)}}function ke(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function xe(e,t,s){e.isValid()&&!isNaN(s)&&("FullYear"===t&&ge(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](s,e.month(),Ce(s,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](s))}function Ce(e,t){if(isNaN(e)||isNaN(t))return NaN;var s,i=(t%(s=12)+s)%s;return e+=(t-i)/12,1===i?ge(e)?29:28:31-i%7%2}ye=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},$("M",["MM",2],"Mo",(function(){return this.month()+1})),$("MMM",0,0,(function(e){return this.localeData().monthsShort(this,e)})),$("MMMM",0,0,(function(e){return this.localeData().months(this,e)})),E("month","M"),I("month",8),de("M",X),de("MM",X,Z),de("MMM",(function(e,t){return t.monthsShortRegex(e)})),de("MMMM",(function(e,t){return t.monthsRegex(e)})),me(["M","MM"],(function(e,t){t[1]=x(e)-1})),me(["MMM","MMMM"],(function(e,t,s,i){var n=s._locale.monthsParse(e,i,s._strict);null!=n?t[1]=n:m(s).invalidMonth=e}));var Se=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,De="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Me="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function Oe(e,t,s){var i,n,a,r=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],i=0;i<12;++i)a=f([2e3,i]),this._shortMonthsParse[i]=this.monthsShort(a,"").toLocaleLowerCase(),this._longMonthsParse[i]=this.months(a,"").toLocaleLowerCase();return s?"MMM"===t?-1!==(n=ye.call(this._shortMonthsParse,r))?n:null:-1!==(n=ye.call(this._longMonthsParse,r))?n:null:"MMM"===t?-1!==(n=ye.call(this._shortMonthsParse,r))||-1!==(n=ye.call(this._longMonthsParse,r))?n:null:-1!==(n=ye.call(this._longMonthsParse,r))||-1!==(n=ye.call(this._shortMonthsParse,r))?n:null}function Ye(e,t){var s;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=x(t);else if(!l(t=e.localeData().monthsParse(t)))return e;return s=Math.min(e.date(),Ce(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,s),e}function Te(e){return null!=e?(Ye(this,e),n.updateOffset(this,!0),this):ke(this,"Month")}var Pe=le,je=le;function Ae(){function e(e,t){return t.length-e.length}var t,s,i=[],n=[],a=[];for(t=0;t<12;t++)s=f([2e3,t]),i.push(this.monthsShort(s,"")),n.push(this.months(s,"")),a.push(this.months(s,"")),a.push(this.monthsShort(s,""));for(i.sort(e),n.sort(e),a.sort(e),t=0;t<12;t++)i[t]=he(i[t]),n[t]=he(n[t]);for(t=0;t<24;t++)a[t]=he(a[t]);this._monthsRegex=new RegExp("^("+a.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+n.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+i.join("|")+")","i")}function Ee(e,t,s,i,n,a,r){var o;return e<100&&e>=0?(o=new Date(e+400,t,s,i,n,a,r),isFinite(o.getFullYear())&&o.setFullYear(e)):o=new Date(e,t,s,i,n,a,r),o}function Le(e){var t;if(e<100&&e>=0){var s=Array.prototype.slice.call(arguments);s[0]=e+400,t=new Date(Date.UTC.apply(null,s)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)}else t=new Date(Date.UTC.apply(null,arguments));return t}function Re(e,t,s){var i=7+t-s;return-(7+Le(e,0,i).getUTCDay()-t)%7+i-1}function Ne(e,t,s,i,n){var a,r,o=1+7*(t-1)+(7+s-i)%7+Re(e,i,n);return o<=0?r=ve(a=e-1)+o:o>ve(e)?(a=e+1,r=o-ve(e)):(a=e,r=o),{year:a,dayOfYear:r}}function Ie(e,t,s){var i,n,a=Re(e.year(),t,s),r=Math.floor((e.dayOfYear()-a-1)/7)+1;return r<1?i=r+He(n=e.year()-1,t,s):r>He(e.year(),t,s)?(i=r-He(e.year(),t,s),n=e.year()+1):(n=e.year(),i=r),{week:i,year:n}}function He(e,t,s){var i=Re(e,t,s),n=Re(e+1,t,s);return(ve(e)-i+n)/7}function Ue(e,t){return e.slice(t,7).concat(e.slice(0,t))}$("w",["ww",2],"wo","week"),$("W",["WW",2],"Wo","isoWeek"),E("week","w"),E("isoWeek","W"),I("week",5),I("isoWeek",5),de("w",X),de("ww",X,Z),de("W",X),de("WW",X,Z),_e(["w","ww","W","WW"],(function(e,t,s,i){t[i.substr(0,1)]=x(e)})),$("d",0,"do","day"),$("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),$("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),$("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),$("e",0,0,"weekday"),$("E",0,0,"isoWeekday"),E("day","d"),E("weekday","e"),E("isoWeekday","E"),I("day",11),I("weekday",11),I("isoWeekday",11),de("d",X),de("e",X),de("E",X),de("dd",(function(e,t){return t.weekdaysMinRegex(e)})),de("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),de("dddd",(function(e,t){return t.weekdaysRegex(e)})),_e(["dd","ddd","dddd"],(function(e,t,s,i){var n=s._locale.weekdaysParse(e,i,s._strict);null!=n?t.d=n:m(s).invalidWeekday=e})),_e(["d","e","E"],(function(e,t,s,i){t[i]=x(e)}));var We="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Fe="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ve="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function $e(e,t,s){var i,n,a,r=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)a=f([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(a,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(a,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(a,"").toLocaleLowerCase();return s?"dddd"===t?-1!==(n=ye.call(this._weekdaysParse,r))?n:null:"ddd"===t?-1!==(n=ye.call(this._shortWeekdaysParse,r))?n:null:-1!==(n=ye.call(this._minWeekdaysParse,r))?n:null:"dddd"===t?-1!==(n=ye.call(this._weekdaysParse,r))||-1!==(n=ye.call(this._shortWeekdaysParse,r))||-1!==(n=ye.call(this._minWeekdaysParse,r))?n:null:"ddd"===t?-1!==(n=ye.call(this._shortWeekdaysParse,r))||-1!==(n=ye.call(this._weekdaysParse,r))||-1!==(n=ye.call(this._minWeekdaysParse,r))?n:null:-1!==(n=ye.call(this._minWeekdaysParse,r))||-1!==(n=ye.call(this._weekdaysParse,r))||-1!==(n=ye.call(this._shortWeekdaysParse,r))?n:null}var Ge=le,ze=le,qe=le;function Ze(){function e(e,t){return t.length-e.length}var t,s,i,n,a,r=[],o=[],l=[],u=[];for(t=0;t<7;t++)s=f([2e3,1]).day(t),i=this.weekdaysMin(s,""),n=this.weekdaysShort(s,""),a=this.weekdays(s,""),r.push(i),o.push(n),l.push(a),u.push(i),u.push(n),u.push(a);for(r.sort(e),o.sort(e),l.sort(e),u.sort(e),t=0;t<7;t++)o[t]=he(o[t]),l[t]=he(l[t]),u[t]=he(u[t]);this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Be(){return this.hours()%12||12}function Qe(e,t){$(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function Je(e,t){return t._meridiemParse}$("H",["HH",2],0,"hour"),$("h",["hh",2],0,Be),$("k",["kk",2],0,(function(){return this.hours()||24})),$("hmm",0,0,(function(){return""+Be.apply(this)+H(this.minutes(),2)})),$("hmmss",0,0,(function(){return""+Be.apply(this)+H(this.minutes(),2)+H(this.seconds(),2)})),$("Hmm",0,0,(function(){return""+this.hours()+H(this.minutes(),2)})),$("Hmmss",0,0,(function(){return""+this.hours()+H(this.minutes(),2)+H(this.seconds(),2)})),Qe("a",!0),Qe("A",!1),E("hour","h"),I("hour",13),de("a",Je),de("A",Je),de("H",X),de("h",X),de("k",X),de("HH",X,Z),de("hh",X,Z),de("kk",X,Z),de("hmm",K),de("hmmss",ee),de("Hmm",K),de("Hmmss",ee),me(["H","HH"],3),me(["k","kk"],(function(e,t,s){var i=x(e);t[3]=24===i?0:i})),me(["a","A"],(function(e,t,s){s._isPm=s._locale.isPM(e),s._meridiem=e})),me(["h","hh"],(function(e,t,s){t[3]=x(e),m(s).bigHour=!0})),me("hmm",(function(e,t,s){var i=e.length-2;t[3]=x(e.substr(0,i)),t[4]=x(e.substr(i)),m(s).bigHour=!0})),me("hmmss",(function(e,t,s){var i=e.length-4,n=e.length-2;t[3]=x(e.substr(0,i)),t[4]=x(e.substr(i,2)),t[5]=x(e.substr(n)),m(s).bigHour=!0})),me("Hmm",(function(e,t,s){var i=e.length-2;t[3]=x(e.substr(0,i)),t[4]=x(e.substr(i))})),me("Hmmss",(function(e,t,s){var i=e.length-4,n=e.length-2;t[3]=x(e.substr(0,i)),t[4]=x(e.substr(i,2)),t[5]=x(e.substr(n))}));var Xe,Ke=we("Hours",!0),et={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:De,monthsShort:Me,week:{dow:0,doy:6},weekdays:We,weekdaysMin:Ve,weekdaysShort:Fe,meridiemParse:/[ap]\.?m?\.?/i},tt={},st={};function it(e){return e?e.toLowerCase().replace("_","-"):e}function nt(t){var i=null;if(!tt[t]&&void 0!==e&&e&&e.exports)try{i=Xe._abbr,s("./node_modules/moment/locale sync recursive \\b\\B")("./"+t),at(i)}catch(e){}return tt[t]}function at(e,t){var s;return e&&((s=o(t)?ot(e):rt(e,t))?Xe=s:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),Xe._abbr}function rt(e,t){if(null!==t){var s,i=et;if(t.abbr=e,null!=tt[e])Y("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=tt[e]._config;else if(null!=t.parentLocale)if(null!=tt[t.parentLocale])i=tt[t.parentLocale]._config;else{if(null==(s=nt(t.parentLocale)))return st[t.parentLocale]||(st[t.parentLocale]=[]),st[t.parentLocale].push({name:e,config:t}),null;i=s._config}return tt[e]=new j(P(i,t)),st[e]&&st[e].forEach((function(e){rt(e.name,e.config)})),at(e),tt[e]}return delete tt[e],null}function ot(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Xe;if(!a(e)){if(t=nt(e))return t;e=[e]}return function(e){for(var t,s,i,n,a=0;a<e.length;){for(t=(n=it(e[a]).split("-")).length,s=(s=it(e[a+1]))?s.split("-"):null;t>0;){if(i=nt(n.slice(0,t).join("-")))return i;if(s&&s.length>=t&&C(n,s,!0)>=t-1)break;t--}a++}return Xe}(e)}function lt(e){var t,s=e._a;return s&&-2===m(e).overflow&&(t=s[1]<0||s[1]>11?1:s[2]<1||s[2]>Ce(s[0],s[1])?2:s[3]<0||s[3]>24||24===s[3]&&(0!==s[4]||0!==s[5]||0!==s[6])?3:s[4]<0||s[4]>59?4:s[5]<0||s[5]>59?5:s[6]<0||s[6]>999?6:-1,m(e)._overflowDayOfYear&&(t<0||t>2)&&(t=2),m(e)._overflowWeeks&&-1===t&&(t=7),m(e)._overflowWeekday&&-1===t&&(t=8),m(e).overflow=t),e}function ut(e,t,s){return null!=e?e:null!=t?t:s}function dt(e){var t,s,i,a,r,o=[];if(!e._d){for(i=function(e){var t=new Date(n.now());return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}(e),e._w&&null==e._a[2]&&null==e._a[1]&&function(e){var t,s,i,n,a,r,o,l;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)a=1,r=4,s=ut(t.GG,e._a[0],Ie(St(),1,4).year),i=ut(t.W,1),((n=ut(t.E,1))<1||n>7)&&(l=!0);else{a=e._locale._week.dow,r=e._locale._week.doy;var u=Ie(St(),a,r);s=ut(t.gg,e._a[0],u.year),i=ut(t.w,u.week),null!=t.d?((n=t.d)<0||n>6)&&(l=!0):null!=t.e?(n=t.e+a,(t.e<0||t.e>6)&&(l=!0)):n=a}i<1||i>He(s,a,r)?m(e)._overflowWeeks=!0:null!=l?m(e)._overflowWeekday=!0:(o=Ne(s,i,n,a,r),e._a[0]=o.year,e._dayOfYear=o.dayOfYear)}(e),null!=e._dayOfYear&&(r=ut(e._a[0],i[0]),(e._dayOfYear>ve(r)||0===e._dayOfYear)&&(m(e)._overflowDayOfYear=!0),s=Le(r,0,e._dayOfYear),e._a[1]=s.getUTCMonth(),e._a[2]=s.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=o[t]=i[t];for(;t<7;t++)e._a[t]=o[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[3]&&0===e._a[4]&&0===e._a[5]&&0===e._a[6]&&(e._nextDay=!0,e._a[3]=0),e._d=(e._useUTC?Le:Ee).apply(null,o),a=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[3]=24),e._w&&void 0!==e._w.d&&e._w.d!==a&&(m(e).weekdayMismatch=!0)}}var ct=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ht=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ft=/Z|[+-]\d\d(?::?\d\d)?/,mt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],_t=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],pt=/^\/?Date\((\-?\d+)/i;function vt(e){var t,s,i,n,a,r,o=e._i,l=ct.exec(o)||ht.exec(o);if(l){for(m(e).iso=!0,t=0,s=mt.length;t<s;t++)if(mt[t][1].exec(l[1])){n=mt[t][0],i=!1!==mt[t][2];break}if(null==n)return void(e._isValid=!1);if(l[3]){for(t=0,s=_t.length;t<s;t++)if(_t[t][1].exec(l[3])){a=(l[2]||" ")+_t[t][0];break}if(null==a)return void(e._isValid=!1)}if(!i&&null!=a)return void(e._isValid=!1);if(l[4]){if(!ft.exec(l[4]))return void(e._isValid=!1);r="Z"}e._f=n+(a||"")+(r||""),kt(e)}else e._isValid=!1}var gt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function yt(e){var t=parseInt(e,10);return t<=49?2e3+t:t<=999?1900+t:t}var bt={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function wt(e){var t,s,i,n,a,r,o,l=gt.exec(e._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(l){var u=(t=l[4],s=l[3],i=l[2],n=l[5],a=l[6],r=l[7],o=[yt(t),Me.indexOf(s),parseInt(i,10),parseInt(n,10),parseInt(a,10)],r&&o.push(parseInt(r,10)),o);if(!function(e,t,s){return!e||Fe.indexOf(e)===new Date(t[0],t[1],t[2]).getDay()||(m(s).weekdayMismatch=!0,s._isValid=!1,!1)}(l[1],u,e))return;e._a=u,e._tzm=function(e,t,s){if(e)return bt[e];if(t)return 0;var i=parseInt(s,10),n=i%100;return(i-n)/100*60+n}(l[8],l[9],l[10]),e._d=Le.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),m(e).rfc2822=!0}else e._isValid=!1}function kt(e){if(e._f!==n.ISO_8601)if(e._f!==n.RFC_2822){e._a=[],m(e).empty=!0;var t,s,i,a,r,o=""+e._i,l=o.length,u=0;for(i=z(e._f,e._locale).match(U)||[],t=0;t<i.length;t++)a=i[t],(s=(o.match(ce(a,e))||[])[0])&&((r=o.substr(0,o.indexOf(s))).length>0&&m(e).unusedInput.push(r),o=o.slice(o.indexOf(s)+s.length),u+=s.length),V[a]?(s?m(e).empty=!1:m(e).unusedTokens.push(a),pe(a,s,e)):e._strict&&!s&&m(e).unusedTokens.push(a);m(e).charsLeftOver=l-u,o.length>0&&m(e).unusedInput.push(o),e._a[3]<=12&&!0===m(e).bigHour&&e._a[3]>0&&(m(e).bigHour=void 0),m(e).parsedDateParts=e._a.slice(0),m(e).meridiem=e._meridiem,e._a[3]=function(e,t,s){var i;return null==s?t:null!=e.meridiemHour?e.meridiemHour(t,s):null!=e.isPM?((i=e.isPM(s))&&t<12&&(t+=12),i||12!==t||(t=0),t):t}(e._locale,e._a[3],e._meridiem),dt(e),lt(e)}else wt(e);else vt(e)}function xt(e){var t=e._i,s=e._f;return e._locale=e._locale||ot(e._l),null===t||void 0===s&&""===t?p({nullInput:!0}):("string"==typeof t&&(e._i=t=e._locale.preparse(t)),w(t)?new b(lt(t)):(u(t)?e._d=t:a(s)?function(e){var t,s,i,n,a;if(0===e._f.length)return m(e).invalidFormat=!0,void(e._d=new Date(NaN));for(n=0;n<e._f.length;n++)a=0,t=g({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[n],kt(t),_(t)&&(a+=m(t).charsLeftOver,a+=10*m(t).unusedTokens.length,m(t).score=a,(null==i||a<i)&&(i=a,s=t));h(e,s||t)}(e):s?kt(e):function(e){var t=e._i;o(t)?e._d=new Date(n.now()):u(t)?e._d=new Date(t.valueOf()):"string"==typeof t?function(e){var t=pt.exec(e._i);null===t?(vt(e),!1===e._isValid&&(delete e._isValid,wt(e),!1===e._isValid&&(delete e._isValid,n.createFromInputFallback(e)))):e._d=new Date(+t[1])}(e):a(t)?(e._a=d(t.slice(0),(function(e){return parseInt(e,10)})),dt(e)):r(t)?function(e){if(!e._d){var t=R(e._i);e._a=d([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],(function(e){return e&&parseInt(e,10)})),dt(e)}}(e):l(t)?e._d=new Date(t):n.createFromInputFallback(e)}(e),_(e)||(e._d=null),e))}function Ct(e,t,s,i,n){var o,l={};return!0!==s&&!1!==s||(i=s,s=void 0),(r(e)&&function(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0}(e)||a(e)&&0===e.length)&&(e=void 0),l._isAMomentObject=!0,l._useUTC=l._isUTC=n,l._l=s,l._i=e,l._f=t,l._strict=i,(o=new b(lt(xt(l))))._nextDay&&(o.add(1,"d"),o._nextDay=void 0),o}function St(e,t,s,i){return Ct(e,t,s,i,!1)}n.createFromInputFallback=D("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",(function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))})),n.ISO_8601=function(){},n.RFC_2822=function(){};var Dt=D("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var e=St.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:p()})),Mt=D("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var e=St.apply(null,arguments);return this.isValid()&&e.isValid()?e>this?this:e:p()}));function Ot(e,t){var s,i;if(1===t.length&&a(t[0])&&(t=t[0]),!t.length)return St();for(s=t[0],i=1;i<t.length;++i)t[i].isValid()&&!t[i][e](s)||(s=t[i]);return s}var Yt=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Tt(e){var t=R(e),s=t.year||0,i=t.quarter||0,n=t.month||0,a=t.week||t.isoWeek||0,r=t.day||0,o=t.hour||0,l=t.minute||0,u=t.second||0,d=t.millisecond||0;this._isValid=function(e){for(var t in e)if(-1===ye.call(Yt,t)||null!=e[t]&&isNaN(e[t]))return!1;for(var s=!1,i=0;i<Yt.length;++i)if(e[Yt[i]]){if(s)return!1;parseFloat(e[Yt[i]])!==x(e[Yt[i]])&&(s=!0)}return!0}(t),this._milliseconds=+d+1e3*u+6e4*l+1e3*o*60*60,this._days=+r+7*a,this._months=+n+3*i+12*s,this._data={},this._locale=ot(),this._bubble()}function Pt(e){return e instanceof Tt}function jt(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function At(e,t){$(e,0,0,(function(){var e=this.utcOffset(),s="+";return e<0&&(e=-e,s="-"),s+H(~~(e/60),2)+t+H(~~e%60,2)}))}At("Z",":"),At("ZZ",""),de("Z",oe),de("ZZ",oe),me(["Z","ZZ"],(function(e,t,s){s._useUTC=!0,s._tzm=Lt(oe,e)}));var Et=/([\+\-]|\d\d)/gi;function Lt(e,t){var s=(t||"").match(e);if(null===s)return null;var i=((s[s.length-1]||[])+"").match(Et)||["-",0,0],n=60*i[1]+x(i[2]);return 0===n?0:"+"===i[0]?n:-n}function Rt(e,t){var s,i;return t._isUTC?(s=t.clone(),i=(w(e)||u(e)?e.valueOf():St(e).valueOf())-s.valueOf(),s._d.setTime(s._d.valueOf()+i),n.updateOffset(s,!1),s):St(e).local()}function Nt(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function It(){return!!this.isValid()&&this._isUTC&&0===this._offset}n.updateOffset=function(){};var Ht=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Ut=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Wt(e,t){var s,i,n,a,r,o,u=e,d=null;return Pt(e)?u={ms:e._milliseconds,d:e._days,M:e._months}:l(e)?(u={},t?u[t]=e:u.milliseconds=e):(d=Ht.exec(e))?(s="-"===d[1]?-1:1,u={y:0,d:x(d[2])*s,h:x(d[3])*s,m:x(d[4])*s,s:x(d[5])*s,ms:x(jt(1e3*d[6]))*s}):(d=Ut.exec(e))?(s="-"===d[1]?-1:1,u={y:Ft(d[2],s),M:Ft(d[3],s),w:Ft(d[4],s),d:Ft(d[5],s),h:Ft(d[6],s),m:Ft(d[7],s),s:Ft(d[8],s)}):null==u?u={}:"object"==typeof u&&("from"in u||"to"in u)&&(a=St(u.from),r=St(u.to),n=a.isValid()&&r.isValid()?(r=Rt(r,a),a.isBefore(r)?o=Vt(a,r):((o=Vt(r,a)).milliseconds=-o.milliseconds,o.months=-o.months),o):{milliseconds:0,months:0},(u={}).ms=n.milliseconds,u.M=n.months),i=new Tt(u),Pt(e)&&c(e,"_locale")&&(i._locale=e._locale),i}function Ft(e,t){var s=e&&parseFloat(e.replace(",","."));return(isNaN(s)?0:s)*t}function Vt(e,t){var s={};return s.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(s.months,"M").isAfter(t)&&--s.months,s.milliseconds=+t-+e.clone().add(s.months,"M"),s}function $t(e,t){return function(s,i){var n;return null===i||isNaN(+i)||(Y(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),n=s,s=i,i=n),Gt(this,Wt(s="string"==typeof s?+s:s,i),e),this}}function Gt(e,t,s,i){var a=t._milliseconds,r=jt(t._days),o=jt(t._months);e.isValid()&&(i=null==i||i,o&&Ye(e,ke(e,"Month")+o*s),r&&xe(e,"Date",ke(e,"Date")+r*s),a&&e._d.setTime(e._d.valueOf()+a*s),i&&n.updateOffset(e,r||o))}Wt.fn=Tt.prototype,Wt.invalid=function(){return Wt(NaN)};var zt=$t(1,"add"),qt=$t(-1,"subtract");function Zt(e,t){var s=12*(t.year()-e.year())+(t.month()-e.month()),i=e.clone().add(s,"months");return-(s+(t-i<0?(t-i)/(i-e.clone().add(s-1,"months")):(t-i)/(e.clone().add(s+1,"months")-i)))||0}function Bt(e){var t;return void 0===e?this._locale._abbr:(null!=(t=ot(e))&&(this._locale=t),this)}n.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",n.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Qt=D("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(e){return void 0===e?this.localeData():this.locale(e)}));function Jt(){return this._locale}function Xt(e,t){return(e%t+t)%t}function Kt(e,t,s){return e<100&&e>=0?new Date(e+400,t,s)-126227808e5:new Date(e,t,s).valueOf()}function es(e,t,s){return e<100&&e>=0?Date.UTC(e+400,t,s)-126227808e5:Date.UTC(e,t,s)}function ts(e,t){$(0,[e,e.length],0,t)}function ss(e,t,s,i,n){var a;return null==e?Ie(this,i,n).year:(t>(a=He(e,i,n))&&(t=a),is.call(this,e,t,s,i,n))}function is(e,t,s,i,n){var a=Ne(e,t,s,i,n),r=Le(a.year,0,a.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}$(0,["gg",2],0,(function(){return this.weekYear()%100})),$(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),ts("gggg","weekYear"),ts("ggggg","weekYear"),ts("GGGG","isoWeekYear"),ts("GGGGG","isoWeekYear"),E("weekYear","gg"),E("isoWeekYear","GG"),I("weekYear",1),I("isoWeekYear",1),de("G",ae),de("g",ae),de("GG",X,Z),de("gg",X,Z),de("GGGG",se,Q),de("gggg",se,Q),de("GGGGG",ie,J),de("ggggg",ie,J),_e(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,s,i){t[i.substr(0,2)]=x(e)})),_e(["gg","GG"],(function(e,t,s,i){t[i]=n.parseTwoDigitYear(e)})),$("Q",0,"Qo","quarter"),E("quarter","Q"),I("quarter",7),de("Q",q),me("Q",(function(e,t){t[1]=3*(x(e)-1)})),$("D",["DD",2],"Do","date"),E("date","D"),I("date",9),de("D",X),de("DD",X,Z),de("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),me(["D","DD"],2),me("Do",(function(e,t){t[2]=x(e.match(X)[0])}));var ns=we("Date",!0);$("DDD",["DDDD",3],"DDDo","dayOfYear"),E("dayOfYear","DDD"),I("dayOfYear",4),de("DDD",te),de("DDDD",B),me(["DDD","DDDD"],(function(e,t,s){s._dayOfYear=x(e)})),$("m",["mm",2],0,"minute"),E("minute","m"),I("minute",14),de("m",X),de("mm",X,Z),me(["m","mm"],4);var as=we("Minutes",!1);$("s",["ss",2],0,"second"),E("second","s"),I("second",15),de("s",X),de("ss",X,Z),me(["s","ss"],5);var rs,os=we("Seconds",!1);for($("S",0,0,(function(){return~~(this.millisecond()/100)})),$(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),$(0,["SSS",3],0,"millisecond"),$(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),$(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),$(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),$(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),$(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),$(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),E("millisecond","ms"),I("millisecond",16),de("S",te,q),de("SS",te,Z),de("SSS",te,B),rs="SSSS";rs.length<=9;rs+="S")de(rs,ne);function ls(e,t){t[6]=x(1e3*("0."+e))}for(rs="S";rs.length<=9;rs+="S")me(rs,ls);var us=we("Milliseconds",!1);$("z",0,0,"zoneAbbr"),$("zz",0,0,"zoneName");var ds=b.prototype;function cs(e){return e}ds.add=zt,ds.calendar=function(e,t){var s=e||St(),i=Rt(s,this).startOf("day"),a=n.calendarFormat(this,i)||"sameElse",r=t&&(T(t[a])?t[a].call(this,s):t[a]);return this.format(r||this.localeData().calendar(a,this,St(s)))},ds.clone=function(){return new b(this)},ds.diff=function(e,t,s){var i,n,a;if(!this.isValid())return NaN;if(!(i=Rt(e,this)).isValid())return NaN;switch(n=6e4*(i.utcOffset()-this.utcOffset()),t=L(t)){case"year":a=Zt(this,i)/12;break;case"month":a=Zt(this,i);break;case"quarter":a=Zt(this,i)/3;break;case"second":a=(this-i)/1e3;break;case"minute":a=(this-i)/6e4;break;case"hour":a=(this-i)/36e5;break;case"day":a=(this-i-n)/864e5;break;case"week":a=(this-i-n)/6048e5;break;default:a=this-i}return s?a:k(a)},ds.endOf=function(e){var t;if(void 0===(e=L(e))||"millisecond"===e||!this.isValid())return this;var s=this._isUTC?es:Kt;switch(e){case"year":t=s(this.year()+1,0,1)-1;break;case"quarter":t=s(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=s(this.year(),this.month()+1,1)-1;break;case"week":t=s(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=s(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=s(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=36e5-Xt(t+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":t=this._d.valueOf(),t+=6e4-Xt(t,6e4)-1;break;case"second":t=this._d.valueOf(),t+=1e3-Xt(t,1e3)-1}return this._d.setTime(t),n.updateOffset(this,!0),this},ds.format=function(e){e||(e=this.isUtc()?n.defaultFormatUtc:n.defaultFormat);var t=G(this,e);return this.localeData().postformat(t)},ds.from=function(e,t){return this.isValid()&&(w(e)&&e.isValid()||St(e).isValid())?Wt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},ds.fromNow=function(e){return this.from(St(),e)},ds.to=function(e,t){return this.isValid()&&(w(e)&&e.isValid()||St(e).isValid())?Wt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},ds.toNow=function(e){return this.to(St(),e)},ds.get=function(e){return T(this[e=L(e)])?this[e]():this},ds.invalidAt=function(){return m(this).overflow},ds.isAfter=function(e,t){var s=w(e)?e:St(e);return!(!this.isValid()||!s.isValid())&&("millisecond"===(t=L(t)||"millisecond")?this.valueOf()>s.valueOf():s.valueOf()<this.clone().startOf(t).valueOf())},ds.isBefore=function(e,t){var s=w(e)?e:St(e);return!(!this.isValid()||!s.isValid())&&("millisecond"===(t=L(t)||"millisecond")?this.valueOf()<s.valueOf():this.clone().endOf(t).valueOf()<s.valueOf())},ds.isBetween=function(e,t,s,i){var n=w(e)?e:St(e),a=w(t)?t:St(t);return!!(this.isValid()&&n.isValid()&&a.isValid())&&("("===(i=i||"()")[0]?this.isAfter(n,s):!this.isBefore(n,s))&&(")"===i[1]?this.isBefore(a,s):!this.isAfter(a,s))},ds.isSame=function(e,t){var s,i=w(e)?e:St(e);return!(!this.isValid()||!i.isValid())&&("millisecond"===(t=L(t)||"millisecond")?this.valueOf()===i.valueOf():(s=i.valueOf(),this.clone().startOf(t).valueOf()<=s&&s<=this.clone().endOf(t).valueOf()))},ds.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},ds.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},ds.isValid=function(){return _(this)},ds.lang=Qt,ds.locale=Bt,ds.localeData=Jt,ds.max=Mt,ds.min=Dt,ds.parsingFlags=function(){return h({},m(this))},ds.set=function(e,t){if("object"==typeof e)for(var s=function(e){var t=[];for(var s in e)t.push({unit:s,priority:N[s]});return t.sort((function(e,t){return e.priority-t.priority})),t}(e=R(e)),i=0;i<s.length;i++)this[s[i].unit](e[s[i].unit]);else if(T(this[e=L(e)]))return this[e](t);return this},ds.startOf=function(e){var t;if(void 0===(e=L(e))||"millisecond"===e||!this.isValid())return this;var s=this._isUTC?es:Kt;switch(e){case"year":t=s(this.year(),0,1);break;case"quarter":t=s(this.year(),this.month()-this.month()%3,1);break;case"month":t=s(this.year(),this.month(),1);break;case"week":t=s(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=s(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=s(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=Xt(t+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case"minute":t=this._d.valueOf(),t-=Xt(t,6e4);break;case"second":t=this._d.valueOf(),t-=Xt(t,1e3)}return this._d.setTime(t),n.updateOffset(this,!0),this},ds.subtract=qt,ds.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},ds.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},ds.toDate=function(){return new Date(this.valueOf())},ds.toISOString=function(e){if(!this.isValid())return null;var t=!0!==e,s=t?this.clone().utc():this;return s.year()<0||s.year()>9999?G(s,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):T(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",G(s,"Z")):G(s,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},ds.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var s="["+e+'("]',i=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n=t+'[")]';return this.format(s+i+"-MM-DD[T]HH:mm:ss.SSS"+n)},ds.toJSON=function(){return this.isValid()?this.toISOString():null},ds.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},ds.unix=function(){return Math.floor(this.valueOf()/1e3)},ds.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},ds.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},ds.year=be,ds.isLeapYear=function(){return ge(this.year())},ds.weekYear=function(e){return ss.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},ds.isoWeekYear=function(e){return ss.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},ds.quarter=ds.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},ds.month=Te,ds.daysInMonth=function(){return Ce(this.year(),this.month())},ds.week=ds.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},ds.isoWeek=ds.isoWeeks=function(e){var t=Ie(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},ds.weeksInYear=function(){var e=this.localeData()._week;return He(this.year(),e.dow,e.doy)},ds.isoWeeksInYear=function(){return He(this.year(),1,4)},ds.date=ns,ds.day=ds.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=function(e,t){return"string"!=typeof e?e:isNaN(e)?"number"==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}(e,this.localeData()),this.add(e-t,"d")):t},ds.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},ds.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=function(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7},ds.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},ds.hour=ds.hours=Ke,ds.minute=ds.minutes=as,ds.second=ds.seconds=os,ds.millisecond=ds.milliseconds=us,ds.utcOffset=function(e,t,s){var i,a=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null!=e){if("string"==typeof e){if(null===(e=Lt(oe,e)))return this}else Math.abs(e)<16&&!s&&(e*=60);return!this._isUTC&&t&&(i=Nt(this)),this._offset=e,this._isUTC=!0,null!=i&&this.add(i,"m"),a!==e&&(!t||this._changeInProgress?Gt(this,Wt(e-a,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,n.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?a:Nt(this)},ds.utc=function(e){return this.utcOffset(0,e)},ds.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Nt(this),"m")),this},ds.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=Lt(re,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},ds.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?St(e).utcOffset():0,(this.utcOffset()-e)%60==0)},ds.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},ds.isLocal=function(){return!!this.isValid()&&!this._isUTC},ds.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},ds.isUtc=It,ds.isUTC=It,ds.zoneAbbr=function(){return this._isUTC?"UTC":""},ds.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},ds.dates=D("dates accessor is deprecated. Use date instead.",ns),ds.months=D("months accessor is deprecated. Use month instead",Te),ds.years=D("years accessor is deprecated. Use year instead",be),ds.zone=D("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()})),ds.isDSTShifted=D("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!o(this._isDSTShifted))return this._isDSTShifted;var e={};if(g(e,this),(e=xt(e))._a){var t=e._isUTC?f(e._a):St(e._a);this._isDSTShifted=this.isValid()&&C(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}));var hs=j.prototype;function fs(e,t,s,i){var n=ot(),a=f().set(i,t);return n[s](a,e)}function ms(e,t,s){if(l(e)&&(t=e,e=void 0),e=e||"",null!=t)return fs(e,t,s,"month");var i,n=[];for(i=0;i<12;i++)n[i]=fs(e,i,s,"month");return n}function _s(e,t,s,i){"boolean"==typeof e?(l(t)&&(s=t,t=void 0),t=t||""):(s=t=e,e=!1,l(t)&&(s=t,t=void 0),t=t||"");var n,a=ot(),r=e?a._week.dow:0;if(null!=s)return fs(t,(s+r)%7,i,"day");var o=[];for(n=0;n<7;n++)o[n]=fs(t,(n+r)%7,i,"day");return o}hs.calendar=function(e,t,s){var i=this._calendar[e]||this._calendar.sameElse;return T(i)?i.call(t,s):i},hs.longDateFormat=function(e){var t=this._longDateFormat[e],s=this._longDateFormat[e.toUpperCase()];return t||!s?t:(this._longDateFormat[e]=s.replace(/MMMM|MM|DD|dddd/g,(function(e){return e.slice(1)})),this._longDateFormat[e])},hs.invalidDate=function(){return this._invalidDate},hs.ordinal=function(e){return this._ordinal.replace("%d",e)},hs.preparse=cs,hs.postformat=cs,hs.relativeTime=function(e,t,s,i){var n=this._relativeTime[s];return T(n)?n(e,t,s,i):n.replace(/%d/i,e)},hs.pastFuture=function(e,t){var s=this._relativeTime[e>0?"future":"past"];return T(s)?s(t):s.replace(/%s/i,t)},hs.set=function(e){var t,s;for(s in e)T(t=e[s])?this[s]=t:this["_"+s]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},hs.months=function(e,t){return e?a(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Se).test(t)?"format":"standalone"][e.month()]:a(this._months)?this._months:this._months.standalone},hs.monthsShort=function(e,t){return e?a(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Se.test(t)?"format":"standalone"][e.month()]:a(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},hs.monthsParse=function(e,t,s){var i,n,a;if(this._monthsParseExact)return Oe.call(this,e,t,s);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),i=0;i<12;i++){if(n=f([2e3,i]),s&&!this._longMonthsParse[i]&&(this._longMonthsParse[i]=new RegExp("^"+this.months(n,"").replace(".","")+"$","i"),this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(n,"").replace(".","")+"$","i")),s||this._monthsParse[i]||(a="^"+this.months(n,"")+"|^"+this.monthsShort(n,""),this._monthsParse[i]=new RegExp(a.replace(".",""),"i")),s&&"MMMM"===t&&this._longMonthsParse[i].test(e))return i;if(s&&"MMM"===t&&this._shortMonthsParse[i].test(e))return i;if(!s&&this._monthsParse[i].test(e))return i}},hs.monthsRegex=function(e){return this._monthsParseExact?(c(this,"_monthsRegex")||Ae.call(this),e?this._monthsStrictRegex:this._monthsRegex):(c(this,"_monthsRegex")||(this._monthsRegex=je),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},hs.monthsShortRegex=function(e){return this._monthsParseExact?(c(this,"_monthsRegex")||Ae.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(c(this,"_monthsShortRegex")||(this._monthsShortRegex=Pe),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},hs.week=function(e){return Ie(e,this._week.dow,this._week.doy).week},hs.firstDayOfYear=function(){return this._week.doy},hs.firstDayOfWeek=function(){return this._week.dow},hs.weekdays=function(e,t){var s=a(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Ue(s,this._week.dow):e?s[e.day()]:s},hs.weekdaysMin=function(e){return!0===e?Ue(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},hs.weekdaysShort=function(e){return!0===e?Ue(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},hs.weekdaysParse=function(e,t,s){var i,n,a;if(this._weekdaysParseExact)return $e.call(this,e,t,s);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(n=f([2e3,1]).day(i),s&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(n,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(n,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(n,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[i]||(a="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[i]=new RegExp(a.replace(".",""),"i")),s&&"dddd"===t&&this._fullWeekdaysParse[i].test(e))return i;if(s&&"ddd"===t&&this._shortWeekdaysParse[i].test(e))return i;if(s&&"dd"===t&&this._minWeekdaysParse[i].test(e))return i;if(!s&&this._weekdaysParse[i].test(e))return i}},hs.weekdaysRegex=function(e){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Ze.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(c(this,"_weekdaysRegex")||(this._weekdaysRegex=Ge),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},hs.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Ze.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(c(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=ze),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},hs.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Ze.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(c(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=qe),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},hs.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},hs.meridiem=function(e,t,s){return e>11?s?"pm":"PM":s?"am":"AM"},at("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===x(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),n.lang=D("moment.lang is deprecated. Use moment.locale instead.",at),n.langData=D("moment.langData is deprecated. Use moment.localeData instead.",ot);var ps=Math.abs;function vs(e,t,s,i){var n=Wt(t,s);return e._milliseconds+=i*n._milliseconds,e._days+=i*n._days,e._months+=i*n._months,e._bubble()}function gs(e){return e<0?Math.floor(e):Math.ceil(e)}function ys(e){return 4800*e/146097}function bs(e){return 146097*e/4800}function ws(e){return function(){return this.as(e)}}var ks=ws("ms"),xs=ws("s"),Cs=ws("m"),Ss=ws("h"),Ds=ws("d"),Ms=ws("w"),Os=ws("M"),Ys=ws("Q"),Ts=ws("y");function Ps(e){return function(){return this.isValid()?this._data[e]:NaN}}var js=Ps("milliseconds"),As=Ps("seconds"),Es=Ps("minutes"),Ls=Ps("hours"),Rs=Ps("days"),Ns=Ps("months"),Is=Ps("years"),Hs=Math.round,Us={ss:44,s:45,m:45,h:22,d:26,M:11};function Ws(e,t,s,i,n){return n.relativeTime(t||1,!!s,e,i)}var Fs=Math.abs;function Vs(e){return(e>0)-(e<0)||+e}function $s(){if(!this.isValid())return this.localeData().invalidDate();var e,t,s=Fs(this._milliseconds)/1e3,i=Fs(this._days),n=Fs(this._months);e=k(s/60),t=k(e/60),s%=60,e%=60;var a=k(n/12),r=n%=12,o=i,l=t,u=e,d=s?s.toFixed(3).replace(/\.?0+$/,""):"",c=this.asSeconds();if(!c)return"P0D";var h=c<0?"-":"",f=Vs(this._months)!==Vs(c)?"-":"",m=Vs(this._days)!==Vs(c)?"-":"",_=Vs(this._milliseconds)!==Vs(c)?"-":"";return h+"P"+(a?f+a+"Y":"")+(r?f+r+"M":"")+(o?m+o+"D":"")+(l||u||d?"T":"")+(l?_+l+"H":"")+(u?_+u+"M":"")+(d?_+d+"S":"")}var Gs=Tt.prototype;return Gs.isValid=function(){return this._isValid},Gs.abs=function(){var e=this._data;return this._milliseconds=ps(this._milliseconds),this._days=ps(this._days),this._months=ps(this._months),e.milliseconds=ps(e.milliseconds),e.seconds=ps(e.seconds),e.minutes=ps(e.minutes),e.hours=ps(e.hours),e.months=ps(e.months),e.years=ps(e.years),this},Gs.add=function(e,t){return vs(this,e,t,1)},Gs.subtract=function(e,t){return vs(this,e,t,-1)},Gs.as=function(e){if(!this.isValid())return NaN;var t,s,i=this._milliseconds;if("month"===(e=L(e))||"quarter"===e||"year"===e)switch(t=this._days+i/864e5,s=this._months+ys(t),e){case"month":return s;case"quarter":return s/3;case"year":return s/12}else switch(t=this._days+Math.round(bs(this._months)),e){case"week":return t/7+i/6048e5;case"day":return t+i/864e5;case"hour":return 24*t+i/36e5;case"minute":return 1440*t+i/6e4;case"second":return 86400*t+i/1e3;case"millisecond":return Math.floor(864e5*t)+i;default:throw new Error("Unknown unit "+e)}},Gs.asMilliseconds=ks,Gs.asSeconds=xs,Gs.asMinutes=Cs,Gs.asHours=Ss,Gs.asDays=Ds,Gs.asWeeks=Ms,Gs.asMonths=Os,Gs.asQuarters=Ys,Gs.asYears=Ts,Gs.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*x(this._months/12):NaN},Gs._bubble=function(){var e,t,s,i,n,a=this._milliseconds,r=this._days,o=this._months,l=this._data;return a>=0&&r>=0&&o>=0||a<=0&&r<=0&&o<=0||(a+=864e5*gs(bs(o)+r),r=0,o=0),l.milliseconds=a%1e3,e=k(a/1e3),l.seconds=e%60,t=k(e/60),l.minutes=t%60,s=k(t/60),l.hours=s%24,r+=k(s/24),n=k(ys(r)),o+=n,r-=gs(bs(n)),i=k(o/12),o%=12,l.days=r,l.months=o,l.years=i,this},Gs.clone=function(){return Wt(this)},Gs.get=function(e){return e=L(e),this.isValid()?this[e+"s"]():NaN},Gs.milliseconds=js,Gs.seconds=As,Gs.minutes=Es,Gs.hours=Ls,Gs.days=Rs,Gs.weeks=function(){return k(this.days()/7)},Gs.months=Ns,Gs.years=Is,Gs.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),s=function(e,t,s){var i=Wt(e).abs(),n=Hs(i.as("s")),a=Hs(i.as("m")),r=Hs(i.as("h")),o=Hs(i.as("d")),l=Hs(i.as("M")),u=Hs(i.as("y")),d=n<=Us.ss&&["s",n]||n<Us.s&&["ss",n]||a<=1&&["m"]||a<Us.m&&["mm",a]||r<=1&&["h"]||r<Us.h&&["hh",r]||o<=1&&["d"]||o<Us.d&&["dd",o]||l<=1&&["M"]||l<Us.M&&["MM",l]||u<=1&&["y"]||["yy",u];return d[2]=t,d[3]=+e>0,d[4]=s,Ws.apply(null,d)}(this,!e,t);return e&&(s=t.pastFuture(+this,s)),t.postformat(s)},Gs.toISOString=$s,Gs.toString=$s,Gs.toJSON=$s,Gs.locale=Bt,Gs.localeData=Jt,Gs.toIsoString=D("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",$s),Gs.lang=Qt,$("X",0,0,"unix"),$("x",0,0,"valueOf"),de("x",ae),de("X",/[+-]?\d+(\.\d{1,3})?/),me("X",(function(e,t,s){s._d=new Date(1e3*parseFloat(e,10))})),me("x",(function(e,t,s){s._d=new Date(x(e))})),n.version="2.24.0",t=St,n.fn=ds,n.min=function(){var e=[].slice.call(arguments,0);return Ot("isBefore",e)},n.max=function(){var e=[].slice.call(arguments,0);return Ot("isAfter",e)},n.now=function(){return Date.now?Date.now():+new Date},n.utc=f,n.unix=function(e){return St(1e3*e)},n.months=function(e,t){return ms(e,t,"months")},n.isDate=u,n.locale=at,n.invalid=p,n.duration=Wt,n.isMoment=w,n.weekdays=function(e,t,s){return _s(e,t,s,"weekdays")},n.parseZone=function(){return St.apply(null,arguments).parseZone()},n.localeData=ot,n.isDuration=Pt,n.monthsShort=function(e,t){return ms(e,t,"monthsShort")},n.weekdaysMin=function(e,t,s){return _s(e,t,s,"weekdaysMin")},n.defineLocale=rt,n.updateLocale=function(e,t){if(null!=t){var s,i,n=et;null!=(i=nt(e))&&(n=i._config),t=P(n,t),(s=new j(t)).parentLocale=tt[e],tt[e]=s,at(e)}else null!=tt[e]&&(null!=tt[e].parentLocale?tt[e]=tt[e].parentLocale:null!=tt[e]&&delete tt[e]);return tt[e]},n.locales=function(){return M(tt)},n.weekdaysShort=function(e,t,s){return _s(e,t,s,"weekdaysShort")},n.normalizeUnits=L,n.relativeTimeRounding=function(e){return void 0===e?Hs:"function"==typeof e&&(Hs=e,!0)},n.relativeTimeThreshold=function(e,t){return void 0!==Us[e]&&(void 0===t?Us[e]:(Us[e]=t,"s"===e&&(Us.ss=t-1),!0))},n.calendarFormat=function(e,t){var s=e.diff(t,"days",!0);return s<-6?"sameElse":s<-1?"lastWeek":s<0?"lastDay":s<1?"sameDay":s<2?"nextDay":s<7?"nextWeek":"sameElse"},n.prototype=ds,n.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},n}()}).call(this,s("./node_modules/webpack/buildin/module.js")(e))},"./node_modules/vue-loader/lib/runtime/componentNormalizer.js":function(e,t,s){"use strict";function i(e,t,s,i,n,a,r,o){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=s,u._compiled=!0),i&&(u.functional=!0),a&&(u._scopeId="data-v-"+a),r?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),n&&n.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(r)},u._ssrRegister=l):n&&(l=o?function(){n.call(this,this.$root.$options.shadowRoot)}:n),l)if(u.functional){u._injectStyles=l;var d=u.render;u.render=function(e,t){return l.call(t),d(e,t)}}else{var c=u.beforeCreate;u.beforeCreate=c?[].concat(c,l):[l]}return{exports:e,options:u}}s.d(t,"a",(function(){return i}))},"./node_modules/webpack/buildin/global.js":function(e,t){var s;s=function(){return this}();try{s=s||new Function("return this")()}catch(e){"object"==typeof window&&(s=window)}e.exports=s},"./node_modules/webpack/buildin/module.js":function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},"./node_modules/xss/lib/default.js":function(e,t,s){var i=s("./node_modules/cssfilter/lib/index.js").FilterCSS,n=s("./node_modules/cssfilter/lib/index.js").getDefaultWhiteList,a=s("./node_modules/xss/lib/util.js");function r(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]}}var o=new i;function l(e){return e.replace(u,"&lt;").replace(d,"&gt;")}var u=/</g,d=/>/g,c=/"/g,h=/&quot;/g,f=/&#([a-zA-Z0-9]*);?/gim,m=/&colon;?/gim,_=/&newline;?/gim,p=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi,v=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,g=/u\s*r\s*l\s*\(.*/gi;function y(e){return e.replace(c,"&quot;")}function b(e){return e.replace(h,'"')}function w(e){return e.replace(f,(function(e,t){return"x"===t[0]||"X"===t[0]?String.fromCharCode(parseInt(t.substr(1),16)):String.fromCharCode(parseInt(t,10))}))}function k(e){return e.replace(m,":").replace(_," ")}function x(e){for(var t="",s=0,i=e.length;s<i;s++)t+=e.charCodeAt(s)<32?" ":e.charAt(s);return a.trim(t)}function C(e){return e=x(e=k(e=w(e=b(e))))}function S(e){return e=l(e=y(e))}var D=/<!--[\s\S]*?-->/g;t.whiteList={a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]},t.getDefaultWhiteList=r,t.onTag=function(e,t,s){},t.onIgnoreTag=function(e,t,s){},t.onTagAttr=function(e,t,s){},t.onIgnoreTagAttr=function(e,t,s){},t.safeAttrValue=function(e,t,s,i){if(s=C(s),"href"===t||"src"===t){if("#"===(s=a.trim(s)))return"#";if("http://"!==s.substr(0,7)&&"https://"!==s.substr(0,8)&&"mailto:"!==s.substr(0,7)&&"tel:"!==s.substr(0,4)&&"#"!==s[0]&&"/"!==s[0])return""}else if("background"===t){if(p.lastIndex=0,p.test(s))return""}else if("style"===t){if(v.lastIndex=0,v.test(s))return"";if(g.lastIndex=0,g.test(s)&&(p.lastIndex=0,p.test(s)))return"";!1!==i&&(s=(i=i||o).process(s))}return s=S(s)},t.escapeHtml=l,t.escapeQuote=y,t.unescapeQuote=b,t.escapeHtmlEntities=w,t.escapeDangerHtml5Entities=k,t.clearNonPrintableCharacter=x,t.friendlyAttrValue=C,t.escapeAttrValue=S,t.onIgnoreTagStripAll=function(){return""},t.StripTagBody=function(e,t){"function"!=typeof t&&(t=function(){});var s=!Array.isArray(e),i=[],n=!1;return{onIgnoreTag:function(r,o,l){if(function(t){return!!s||-1!==a.indexOf(e,t)}(r)){if(l.isClosing){var u="[/removed]",d=l.position+u.length;return i.push([!1!==n?n:l.position,d]),n=!1,u}return n||(n=l.position),"[removed]"}return t(r,o,l)},remove:function(e){var t="",s=0;return a.forEach(i,(function(i){t+=e.slice(s,i[0]),s=i[1]})),t+=e.slice(s)}}},t.stripCommentTag=function(e){return e.replace(D,"")},t.stripBlankChar=function(e){var t=e.split("");return(t=t.filter((function(e){var t=e.charCodeAt(0);return 127!==t&&(!(t<=31)||(10===t||13===t))}))).join("")},t.cssFilter=o,t.getDefaultCSSWhiteList=n},"./node_modules/xss/lib/index.js":function(e,t,s){var i=s("./node_modules/xss/lib/default.js"),n=s("./node_modules/xss/lib/parser.js"),a=s("./node_modules/xss/lib/xss.js");function r(e,t){return new a(t).process(e)}for(var o in(t=e.exports=r).filterXSS=r,t.FilterXSS=a,i)t[o]=i[o];for(var o in n)t[o]=n[o];"undefined"!=typeof window&&(window.filterXSS=e.exports),"undefined"!=typeof self&&"undefined"!=typeof DedicatedWorkerGlobalScope&&self instanceof DedicatedWorkerGlobalScope&&(self.filterXSS=e.exports)},"./node_modules/xss/lib/parser.js":function(e,t,s){var i=s("./node_modules/xss/lib/util.js");function n(e){var t=i.spaceIndex(e);if(-1===t)var s=e.slice(1,-1);else s=e.slice(1,t+1);return"/"===(s=i.trim(s).toLowerCase()).slice(0,1)&&(s=s.slice(1)),"/"===s.slice(-1)&&(s=s.slice(0,-1)),s}function a(e){return"</"===e.slice(0,2)}var r=/[^a-zA-Z0-9_:\.\-]/gim;function o(e,t){for(;t<e.length;t++){var s=e[t];if(" "!==s)return"="===s?t:-1}}function l(e,t){for(;t>0;t--){var s=e[t];if(" "!==s)return"="===s?t:-1}}function u(e){return function(e){return'"'===e[0]&&'"'===e[e.length-1]||"'"===e[0]&&"'"===e[e.length-1]}(e)?e.substr(1,e.length-2):e}t.parseTag=function(e,t,s){var i="",r=0,o=!1,l=!1,u=0,d=e.length,c="",h="";for(u=0;u<d;u++){var f=e.charAt(u);if(!1===o){if("<"===f){o=u;continue}}else if(!1===l){if("<"===f){i+=s(e.slice(r,u)),o=u,r=u;continue}if(">"===f){i+=s(e.slice(r,o)),c=n(h=e.slice(o,u+1)),i+=t(o,i.length,c,h,a(h)),r=u+1,o=!1;continue}if(('"'===f||"'"===f)&&"="===e.charAt(u-1)){l=f;continue}}else if(f===l){l=!1;continue}}return r<e.length&&(i+=s(e.substr(r))),i},t.parseAttr=function(e,t){var s=0,n=[],a=!1,d=e.length;function c(e,s){if(!((e=(e=i.trim(e)).replace(r,"").toLowerCase()).length<1)){var a=t(e,s||"");a&&n.push(a)}}for(var h=0;h<d;h++){var f,m=e.charAt(h);if(!1!==a||"="!==m)if(!1===a||h!==s||'"'!==m&&"'"!==m||"="!==e.charAt(h-1))if(/\s|\n|\t/.test(m)){if(e=e.replace(/\s|\n|\t/g," "),!1===a){if(-1===(f=o(e,h))){c(i.trim(e.slice(s,h))),a=!1,s=h+1;continue}h=f-1;continue}if(-1===(f=l(e,h-1))){c(a,u(i.trim(e.slice(s,h)))),a=!1,s=h+1;continue}}else;else{if(-1===(f=e.indexOf(m,h+1)))break;c(a,i.trim(e.slice(s+1,f))),a=!1,s=(h=f)+1}else a=e.slice(s,h),s=h+1}return s<e.length&&(!1===a?c(e.slice(s)):c(a,u(i.trim(e.slice(s))))),i.trim(n.join(" "))}},"./node_modules/xss/lib/util.js":function(e,t){e.exports={indexOf:function(e,t){var s,i;if(Array.prototype.indexOf)return e.indexOf(t);for(s=0,i=e.length;s<i;s++)if(e[s]===t)return s;return-1},forEach:function(e,t,s){var i,n;if(Array.prototype.forEach)return e.forEach(t,s);for(i=0,n=e.length;i<n;i++)t.call(s,e[i],i,e)},trim:function(e){return String.prototype.trim?e.trim():e.replace(/(^\s*)|(\s*$)/g,"")},spaceIndex:function(e){var t=/\s|\n|\t/.exec(e);return t?t.index:-1}}},"./node_modules/xss/lib/xss.js":function(e,t,s){var i=s("./node_modules/cssfilter/lib/index.js").FilterCSS,n=s("./node_modules/xss/lib/default.js"),a=s("./node_modules/xss/lib/parser.js"),r=a.parseTag,o=a.parseAttr,l=s("./node_modules/xss/lib/util.js");function u(e){return null==e}function d(e){(e=function(e){var t={};for(var s in e)t[s]=e[s];return t}(e||{})).stripIgnoreTag&&(e.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),e.onIgnoreTag=n.onIgnoreTagStripAll),e.whiteList=e.whiteList||n.whiteList,e.onTag=e.onTag||n.onTag,e.onTagAttr=e.onTagAttr||n.onTagAttr,e.onIgnoreTag=e.onIgnoreTag||n.onIgnoreTag,e.onIgnoreTagAttr=e.onIgnoreTagAttr||n.onIgnoreTagAttr,e.safeAttrValue=e.safeAttrValue||n.safeAttrValue,e.escapeHtml=e.escapeHtml||n.escapeHtml,this.options=e,!1===e.css?this.cssFilter=!1:(e.css=e.css||{},this.cssFilter=new i(e.css))}d.prototype.process=function(e){if(!(e=(e=e||"").toString()))return"";var t=this.options,s=t.whiteList,i=t.onTag,a=t.onIgnoreTag,d=t.onTagAttr,c=t.onIgnoreTagAttr,h=t.safeAttrValue,f=t.escapeHtml,m=this.cssFilter;t.stripBlankChar&&(e=n.stripBlankChar(e)),t.allowCommentTag||(e=n.stripCommentTag(e));var _=!1;if(t.stripIgnoreTagBody){_=n.StripTagBody(t.stripIgnoreTagBody,a);a=_.onIgnoreTag}var p=r(e,(function(e,t,n,r,_){var p,v={sourcePosition:e,position:t,isClosing:_,isWhite:s.hasOwnProperty(n)};if(!u(p=i(n,r,v)))return p;if(v.isWhite){if(v.isClosing)return"</"+n+">";var g=function(e){var t=l.spaceIndex(e);if(-1===t)return{html:"",closing:"/"===e[e.length-2]};var s="/"===(e=l.trim(e.slice(t+1,-1)))[e.length-1];return s&&(e=l.trim(e.slice(0,-1))),{html:e,closing:s}}(r),y=s[n],b=o(g.html,(function(e,t){var s,i=-1!==l.indexOf(y,e);return u(s=d(n,e,t,i))?i?(t=h(n,e,t,m))?e+'="'+t+'"':e:u(s=c(n,e,t,i))?void 0:s:s}));r="<"+n;return b&&(r+=" "+b),g.closing&&(r+=" /"),r+=">"}return u(p=a(n,r,v))?f(r):p}),f);return _&&(p=_.remove(p)),p},e.exports=d},"./src/audit.js":function(e,t,s){"use strict";s.r(t);var i=s("vue"),n=s.n(i),a=s("./src/helper/base_hepler.js"),r=s("./src/component/footer.vue"),o=s("./node_modules/lodash/chunk.js"),l=s.n(o),u=s("./src/component/pagination.vue"),d=s("./node_modules/moment/moment.js"),c={mixins:[a.a],name:"logs",data:function(){return{filter:{date_range:null,username:"",ip_address:"",events:[],event_all:!0,is_open:!1,date_from:null,date_to:null},event_types:auditData.filters.types,data:{logs:[],chunks:[],total_items:0,total_pages:0,paged:1},misc:auditData.misc,endpoints:auditData.endpoints,nonces:auditData.nonces,state:{on_saving:!1,is_fetching:!1}}},methods:{date_range:function(){},build_filter_url:function(e){},paging:function(e){this.data.paged=e},do_filter:function(){var e=this,t=this.data.logs.filter((function(t){return(""===e.filter.username||-1!==t.user.indexOf(e.filter.username))&&((null===e.filter.ip_address||-1!==t.ip.indexOf(e.filter.ip_address))&&(!1!==e.filter.event_all||-1!==e.filter.events.indexOf(t.event_type)))}));e.data.chunks=l()(t,40),e.data.total_items=t.length,e.data.total_pages=Math.ceil(e.data.total_items/40),e.data.paged=1},fetch_data:function(e){var t=this;this.state.is_fetching=!0;var s=JSON.parse(JSON.stringify(this.filter));delete s.is_open,delete s.event_all,delete s.date_range,this.httpGetRequest("loadData",s,(function(s){!0===s.success?(t.data.logs=Object.values(s.data.logs),t.data.total_items=s.data.total_items,t.data.total_pages=s.data.total_pages,t.data.chunks=l()(t.data.logs,40),t.data.paged=1,t.state.is_fetching=!1,void 0!==e&&e()):Defender.showNotification("error",s.message)}),!1)},format_time:function(e){return Array.isArray(e)?this.$options.filters.moment(new Date(1e3*e[1]),this.misc.date_format):this.$options.filters.moment(new Date(1e3*e),this.misc.date_format)}},computed:{get_logs:function(){var e=[];return this.data.chunks.length>0&&void 0!==this.data.chunks[this.data.paged-1]&&(e=this.data.chunks[this.data.paged-1]),e},get_count:function(){return this.vsprintf(this.__("%s results"),this.data.total_items)},next_icon:function(){return'<i class="sui-icon-chevron-right" aria-hidden="true"></i>'},prev_icon:function(){return'<i class="sui-icon-chevron-left" aria-hidden="true"></i>'},min_date:function(){return d().format()},max_date:function(){return d().subtract(30,"days").format()},get_export_url:function(){var e=ajaxurl+"?action="+this.endpoints.exportAsCvs+"&_wpnonce="+this.nonces.exportAsCvs;return e+="&date_from="+this.filter.date_from,e+="&date_to="+this.filter.date_to,this.filter.events.forEach((function(t){e+="&event_type[]="+t})),e+="&term="+this.filter.username,e+="&ip="+this.filter.ip_address}},watch:{"filter.date_range":function(e,t){null!==e&&null!==t&&e!==t&&this.fetch_data()}},components:{pagination:u.a},created:function(){var e=new URLSearchParams(window.location.search),t=null!==e.get("date_from")?e.get("date_from"):d().subtract(7,"day").format("MM/DD/YYYY"),s=null!==e.get("date_to")?e.get("date_to"):d().format("MM/DD/YYYY");this.filter.date_range=t+" - "+s,this.filter.date_from=t,this.filter.date_to=s;var i=this;this.fetch_data((function(){i.$parent.$emit("events_in_7_days",i.data.logs.length)}))},mounted:function(){var e=this;this.$nextTick((function(){jQuery("#date-range-picker").daterangepicker({autoApply:!0,maxDate:d().format("MM/DD/YYYY"),minDate:d().subtract(1,"year").format("MM/DD/YYYY"),locale:{format:"MM/DD/YYYY",separator:"-"},ranges:{Today:[d(),d()],"7 Days":[d().subtract(6,"days"),d()],"30 Days":[d().subtract(29,"days"),d()]},template:'<div class="daterangepicker wd-calendar"><div class="ranges"></div><div class="drp-calendar left"><div class="calendar-table"></div><div class="calendar-time"></div></div><div class="drp-calendar right"><div class="calendar-table"></div><div class="calendar-time"></div></div></div>',showCustomRangeLabel:!1,alwaysShowCalendars:!0}),jQuery("#date-range-picker").on("apply.daterangepicker",(function(t,s){e.filter.date_range=s.startDate.format("MM/DD/YYYY")+"-"+s.endDate.format("MM/DD/YYYY"),e.filter.date_from=s.startDate.format("MM/DD/YYYY"),e.filter.date_to=s.endDate.format("MM/DD/YYYY")}))}))}},h=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),f=Object(h.a)(c,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[e._v("\n\t\t\t\t"+e._s(e.__("Event Logs"))+"\n\t\t\t")]),e._v(" "),s("div",{staticClass:"sui-actions-right"},[s("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:e.get_export_url}},[s("i",{staticClass:"sui-icon-upload-cloud",attrs:{"aria-hidden":"true"}}),e._v("\n\t\t\t\t\t"+e._s(e.__("Export CSV"))+"\n\t\t\t\t")])])]),e._v(" "),s("div",{staticClass:"sui-box-body"},[s("p",[e._v("\n\t\t\t\t"+e._s(e.__("Here are your latest event logs showing what's been happening behind the scenes."))+"\n\t\t\t")]),e._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col-md-5"},[s("div",{staticClass:"inline-form"},[s("label",[e._v(e._s(e.__("Date range")))]),e._v(" "),s("div",{staticClass:"sui-date"},[s("i",{staticClass:"sui-icon-calendar",attrs:{"aria-hidden":"true"}}),e._v(" "),s("input",{staticClass:"sui-form-control",attrs:{id:"date-range-picker",name:"date_from",type:"text"},domProps:{value:e.filter.date_range}})])])]),e._v(" "),s("div",{staticClass:"sui-col-md-7"},[s("div",{staticClass:"sui-pagination-wrap"},[s("span",{staticClass:"sui-pagination-results",domProps:{textContent:e._s(e.get_count)}}),e._v(" "),e.data.total_items>0?s("pagination",{attrs:{"page-count":e.data.total_pages,"click-handler":e.paging,"prev-text":e.prev_icon,"next-text":e.next_icon,value:e.data.paged,"container-class":"sui-pagination"}}):e._e(),e._v(" "),s("button",{staticClass:"sui-button-icon sui-button-outlined sui-tooltip",attrs:{"data-tooltip":"Filter"},on:{click:function(t){e.filter.is_open=!e.filter.is_open}}},[s("i",{staticClass:"sui-icon-filter",attrs:{"aria-hidden":"true"}}),e._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[e._v("Open search filter")])])],1)])]),e._v(" "),s("div",{staticClass:"sui-pagination-filter",class:{"sui-open":e.filter.is_open}},[s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col-md-4"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[e._v(e._s(e.__("Username")))]),e._v(" "),s("div",{staticClass:"sui-control-with-icon sui-right-icon"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.username,expression:"filter.username"}],staticClass:"sui-form-control",attrs:{type:"text"},domProps:{value:e.filter.username},on:{input:function(t){t.target.composing||e.$set(e.filter,"username",t.target.value)}}}),e._v(" "),s("i",{staticClass:"sui-icon-magnifying-glass-search",attrs:{"aria-hidden":"true"}})])])]),e._v(" "),s("div",{staticClass:"sui-col-md-3"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[e._v(e._s(e.__("IP Address")))]),e._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.ip_address,expression:"filter.ip_address"}],staticClass:"sui-form-control",attrs:{type:"text","data-name":"ip",placeholder:"E.g. 192.168.1.1"},domProps:{value:e.filter.ip_address},on:{input:function(t){t.target.composing||e.$set(e.filter,"ip_address",t.target.value)}}})])])]),e._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("div",{staticClass:"sui-form-field"},[s("div",{staticClass:"sui-side-tabs"},[s("div",{staticClass:"sui-tabs-menu"},[s("label",{staticClass:"sui-tab-item",class:{active:!0===e.filter.event_all},attrs:{for:"event_filter_all"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.event_all,expression:"filter.event_all"}],attrs:{type:"radio",id:"event_filter_all","data-tab-menu":""},domProps:{value:!0,checked:e._q(e.filter.event_all,!0)},on:{change:function(t){return e.$set(e.filter,"event_all",!0)}}}),e._v("\n\t\t\t\t\t\t\t\t\t\t"+e._s(e.__("All"))+"\n\t\t\t\t\t\t\t\t\t")]),e._v(" "),s("label",{staticClass:"sui-tab-item",class:{active:!1===e.filter.event_all},attrs:{for:"event_filter"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.event_all,expression:"filter.event_all"}],attrs:{type:"radio","data-tab-menu":"events-box",id:"event_filter"},domProps:{value:!1,checked:e._q(e.filter.event_all,!1)},on:{change:function(t){return e.$set(e.filter,"event_all",!1)}}}),e._v("\n\t\t\t\t\t\t\t\t\t\t"+e._s(e.__("Specific"))+"\n\t\t\t\t\t\t\t\t\t")])]),e._v(" "),s("div",{staticClass:"sui-tabs-content"},[s("div",{staticClass:"sui-tab-content sui-tab-boxed",class:{active:!1===e.filter.event_all},attrs:{id:"events-box","data-tab-content":"events-box"}},[s("div",{staticClass:"sui-row"},e._l(e.event_types,(function(t){return s("label",{staticClass:"sui-checkbox",attrs:{for:"chk_"+t}},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.events,expression:"filter.events"}],staticClass:"filterable",attrs:{id:"chk_"+t,type:"checkbox"},domProps:{value:t,checked:Array.isArray(e.filter.events)?e._i(e.filter.events,t)>-1:e.filter.events},on:{change:function(s){var i=e.filter.events,n=s.target,a=!!n.checked;if(Array.isArray(i)){var r=t,o=e._i(i,r);n.checked?o<0&&e.$set(e.filter,"events",i.concat([r])):o>-1&&e.$set(e.filter,"events",i.slice(0,o).concat(i.slice(o+1)))}else e.$set(e.filter,"events",a)}}}),e._v(" "),s("span",{attrs:{"aria-hidden":"true"}}),e._v(" "),s("span",[e._v(e._s(t))])])})),0)])])])])])]),e._v(" "),s("hr"),e._v(" "),s("div",{staticClass:"float-r"},[s("button",{staticClass:"sui-button sui-button-blue",attrs:{type:"submit"},on:{click:e.do_filter}},[e._v("\n\t\t\t\t\t\t"+e._s(e.__("Apply"))+"\n\t\t\t\t\t")])]),e._v(" "),s("div",{staticClass:"clear"})])]),e._v(" "),s("div",{staticClass:"sui-accordion sui-accordion-flushed no-border-top"},[s("div",{staticClass:"sui-accordion-header"},[s("div",[e._v(e._s(e.__("Event summary")))]),e._v(" "),s("div",[e._v(e._s(e.__("Date")))]),e._v(" "),s("div")]),e._v(" "),e._l(e.get_logs,(function(t){return s("div",{staticClass:"sui-accordion-item sui-default"},[s("div",{staticClass:"sui-accordion-item-header"},[s("div",{staticClass:"sui-accordion-item-title",domProps:{textContent:e._s(e.xss(t.msg))}}),e._v(" "),s("div",{domProps:{innerHTML:e._s(e.format_time(t.timestamp))}}),e._v(" "),e._m(0,!0)]),e._v(" "),s("div",{staticClass:"sui-accordion-item-body"},[s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-body"},[s("strong",[e._v(e._s(e.__("Description")))]),e._v(" "),s("p",{domProps:{textContent:e._s(t.msg)}}),e._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("strong",{staticClass:"block"},[e._v(e._s(e.__("Context")))]),e._v(" "),s("a",{staticClass:"block",attrs:{href:e.build_filter_url(t.context)},domProps:{textContent:e._s(e.xss(t.context))}})]),e._v(" "),s("div",{staticClass:"sui-col"},[s("strong",{staticClass:"block"},[e._v(e._s(e.__("Type")))]),e._v(" "),s("a",{staticClass:"block",attrs:{href:e.build_filter_url(t.event_type)},domProps:{textContent:e._s(e.xss(t.event_type))}})]),e._v(" "),s("div",{staticClass:"sui-col"},[s("strong",{staticClass:"block"},[e._v(e._s(e.__("Ip Address")))]),e._v(" "),s("a",{staticClass:"block",attrs:{href:e.build_filter_url(t.ip)},domProps:{textContent:e._s(e.xss(t.ip))}})]),e._v(" "),s("div",{staticClass:"sui-col"},[s("strong",{staticClass:"block"},[e._v(e._s(e.__("User")))]),e._v(" "),s("a",{staticClass:"block",attrs:{href:e.build_filter_url(t.user)},domProps:{textContent:e._s(e.xss(t.user))}})]),e._v(" "),s("div",{staticClass:"sui-col"},[s("strong",{staticClass:"block"},[e._v(e._s(e.__("Date / Time")))]),e._v(" "),s("a",{staticClass:"block",attrs:{href:e.build_filter_url(t.timestamp)}},[e._v("\n\t\t\t\t\t\t\t\t\t\t"+e._s(e._f("moment")(new Date(1e3*t.timestamp),e.misc.date_format))+"\n\t\t\t\t\t\t\t\t\t")])])])])])])])}))],2),e._v(" "),0===e.data.chunks.length?s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("div",{staticClass:"sui-notice"},[s("div",{staticClass:"sui-notice-content"},[s("div",{staticClass:"sui-notice-message"},[s("i",{staticClass:"sui-notice-icon sui-icon-info sui-md",attrs:{"aria-hidden":"true"}}),e._v(" "),!0===e.state.is_fetching?s("p",[e._v("\n\t\t\t\t\t\t"+e._s(e.__("Loading events..."))+"\n\t\t\t\t\t")]):s("p",[e._v("\n\t\t\t\t\t\t"+e._s(e.__("There have been no events logged in the selected time period."))+"\n\t\t\t\t\t")])])])])])]):e._e(),e._v(" "),s("div",{staticClass:"sui-center-box"},[s("div",{staticClass:"sui-pagination-wrap"},[e.data.total_items>0?s("pagination",{attrs:{"page-count":e.data.total_pages,"click-handler":e.paging,"prev-text":e.prev_icon,"next-text":e.next_icon,value:e.data.paged,"container-class":"sui-pagination"}}):e._e()],1)]),e._v(" "),e.state.is_fetching?s("overlay"):e._e()],1)}),[function(){var e=this.$createElement,t=this._self._c||e;return t("div",[t("button",{staticClass:"sui-button-icon sui-accordion-open-indicator",attrs:{"aria-label":"Open item"}},[t("i",{staticClass:"sui-icon-chevron-down",attrs:{"aria-hidden":"true"}})])])}],!1,null,null,null).exports,m={mixins:[a.a],name:"settings",data:function(){return{model:auditData.model.settings,state:{on_saving:!1},nonces:auditData.nonces,endpoints:auditData.endpoints}},methods:{toggle:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"enabled",s=this,i={};i[t]=e,this.httpPostRequest("updateSettings",{data:JSON.stringify(i)},(function(){s.$parent.$emit("enable_state",e)}))},updateSettings:function(){var e=this.model;this.httpPostRequest("updateSettings",{data:JSON.stringify(e)})}},mounted:function(){var e=this;jQuery("#storage_days").change((function(){e.model.storage_days=jQuery(this).val()}))}},_=Object(h.a)(m,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"sui-box audit-settings"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[e._v("\n\t\t\t\t"+e._s(e.__("Settings"))+"\n\t\t\t")])]),e._v(" "),s("form",{attrs:{method:"post"},on:{submit:function(t){return t.preventDefault(),e.updateSettings(t)}}},[s("div",{staticClass:"sui-box-body"},[s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[e._v(e._s(e.__("Storage")))]),e._v(" "),s("span",{staticClass:"sui-description"},[e._v("\n "+e._s(e.__("Events are stored in our API. You can choose how many days to keep logs for before they are removed."))+"\n ")])]),e._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field"},[s("select",{directives:[{name:"model",rawName:"v-model",value:e.model.storage_days,expression:"model.storage_days"}],attrs:{name:"storage_days",id:"storage_days"},on:{change:function(t){var s=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(e.model,"storage_days",t.target.multiple?s:s[0])}}},[s("option",{attrs:{value:"24 hours"}},[e._v(e._s(e.__("24 hours")))]),e._v(" "),s("option",{attrs:{value:"7 days"}},[e._v(e._s(e.__("7 days")))]),e._v(" "),s("option",{attrs:{value:"30 days"}},[e._v(e._s(e.__("30 days")))]),e._v(" "),s("option",{attrs:{value:"3 months"}},[e._v(e._s(e.__("3 months")))]),e._v(" "),s("option",{attrs:{value:"6 months"}},[e._v(e._s(e.__("6 months")))]),e._v(" "),s("option",{attrs:{value:"12 months"}},[e._v(e._s(e.__("12 months")))])]),e._v(" "),s("span",{staticClass:"sui-description"},[e._v("\n "+e._s(e.__("Choose how long you'd like to store your event logs locally before wiping the oldest."))+"\n ")])])])]),e._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[e._v("\n "+e._s(e.__("Deactivate"))+"\n ")]),e._v(" "),s("span",{staticClass:"sui-description"},[e._v("\n "+e._s(e.__("If you no longer want to use this feature you can turn it off at any time."))+"\n ")])]),e._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("submit-button",{attrs:{type:"button","css-class":"sui-button-ghost",state:e.state},on:{click:function(t){return e.toggle(!1)}}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),e._v("\n\t\t\t\t\t\t\t"+e._s(e.__("Deactivate"))+"\n\t\t\t\t\t\t")])],1)])]),e._v(" "),s("div",{staticClass:"sui-box-footer"},[s("div",{staticClass:"sui-actions-right"},[s("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue",state:e.state}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),e._v("\n\t\t\t\t\t\t"+e._s(e.__("Save Changes"))+"\n\t\t\t\t\t")])],1)])])])}),[],!1,null,null,null).exports,p=s("./src/component/recipients.vue"),v={mixins:[a.a],name:"report",data:function(){return{model:auditData.model.report,misc:auditData.misc,nonces:auditData.nonces,endpoints:auditData.endpoints,state:{on_saving:!1,show_day:!0}}},components:{recipients:p.a},methods:{updateRecipients:function(e){this.model.receipts=e},updateSettings:function(){var e=this.model,t=this;this.httpPostRequest("updateSettings",{data:JSON.stringify(e)},(function(e){t.$parent.$emit("update_report_time",e.data.summary)}))}},mounted:function(){var e=this;jQuery(".report-select").change((function(){var t=jQuery(this).attr("name");e.model[t]=jQuery(this).val()})),this.model.day=this.model.day.toLowerCase()},watch:{"model.frequency":function(){this.state.show_day=this.model.frequency>1}},created:function(){this.state.show_day=this.model.frequency>1},computed:{timezone_text:function(){return this.vsprintf(this.__("Your timezone is set to UTC %s, so your current time is %s."),this.misc.tz,this.misc.current_time)}}},g=Object(h.a)(v,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[e._v("\n "+e._s(e.__("Notification"))+"\n ")])]),e._v(" "),s("form",{attrs:{method:"post"},on:{submit:function(t){return t.preventDefault(),e.updateSettings(t)}}},[s("div",{staticClass:"sui-box-body"},[s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[e._v("\n "+e._s(e.__("Scheduled Reports"))+"\n ")]),e._v(" "),s("span",{staticClass:"sui-description"},[e._v("\n "+e._s(e.__("Schedule Defender to automatically email you a summary of all your website events."))+"\n ")])]),e._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.model.notification,expression:"model.notification"}],attrs:{type:"checkbox",name:"notification",id:"toggle_notification"},domProps:{checked:Array.isArray(e.model.notification)?e._i(e.model.notification,null)>-1:e.model.notification},on:{change:function(t){var s=e.model.notification,i=t.target,n=!!i.checked;if(Array.isArray(s)){var a=e._i(s,null);i.checked?a<0&&e.$set(e.model,"notification",s.concat([null])):a>-1&&e.$set(e.model,"notification",s.slice(0,a).concat(s.slice(a+1)))}else e.$set(e.model,"notification",n)}}}),e._v(" "),s("span",{staticClass:"sui-toggle-slider"})]),e._v(" "),s("label",{staticClass:"sui-toggle-label",attrs:{for:"toggle_notification"}},[e._v("\n "+e._s(e.__("Send regular email report"))+"\n ")]),e._v(" "),s("div",{staticClass:"sui-border-frame sui-toggle-content"},[s("div",{staticClass:"margin-top-30"},[s("recipients",{attrs:{id:"report_dialog",recipients:e.model.receipts},on:{"update:recipients":e.updateRecipients}})],1),e._v(" "),s("div",{staticClass:"sui-form-field margin-top-30 schedule-box"},[s("label",{staticClass:"sui-label",attrs:{for:"audit_report_frequency",id:"label_audit_report_frequency"}},[e._v("\n "+e._s(e.__("Frequency"))+"\n ")]),e._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("select",{directives:[{name:"model",rawName:"v-model",value:e.model.frequency,expression:"model.frequency"}],staticClass:"report-select",attrs:{id:"audit_report_frequency","aria-labelledby":"label_audit_report_frequency",name:"frequency"},on:{change:function(t){var s=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(e.model,"frequency",t.target.multiple?s:s[0])}}},[s("option",{attrs:{value:"1"}},[e._v(e._s(e.__("Daily")))]),e._v(" "),s("option",{attrs:{value:"7"}},[e._v(e._s(e.__("Weekly")))]),e._v(" "),s("option",{attrs:{value:"30"}},[e._v(e._s(e.__("Monthly")))])])])]),e._v(" "),s("div",{staticClass:"sui-row"},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.state.show_day,expression:"state.show_day"}],staticClass:"sui-col days-container"},[s("label",{staticClass:"sui-label",attrs:{for:"audit_report_day_week",id:"label_audit_report_day_week"}},[e._v("\n "+e._s(e.__("Day of the week"))+"\n ")]),e._v(" "),s("select",{directives:[{name:"model",rawName:"v-model",value:e.model.day,expression:"model.day"}],staticClass:"report-select",attrs:{id:"audit_report_day_week","aria-labelledby":"label_audit_report_day_week",name:"day"},on:{change:function(t){var s=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(e.model,"day",t.target.multiple?s:s[0])}}},e._l(e.misc.days_of_week,(function(t){return s("option",{domProps:{value:t.toLowerCase()}},[e._v(e._s(t)+"\n ")])})),0)]),e._v(" "),s("div",{staticClass:"sui-col"},[s("label",{staticClass:"sui-label",attrs:{for:"audit_report_day_time",id:"label_audit_report_day_time"}},[e._v("\n "+e._s(e.__("Time of day"))+"\n ")]),e._v(" "),s("select",{directives:[{name:"model",rawName:"v-model",value:e.model.time,expression:"model.time"}],staticClass:"report-select",attrs:{id:"audit_report_day_time","aria-labelledby":"label_audit_report_day_time",name:"time"},on:{change:function(t){var s=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(e.model,"time",t.target.multiple?s:s[0])}}},e._l(e.misc.times_of_day,(function(t,i){return s("option",{domProps:{value:i}},[e._v(e._s(t)+"\n ")])})),0)]),e._v(" "),s("div",{staticClass:"sui-col-md-12"},[s("span",{staticClass:"sui-p-small",domProps:{innerHTML:e._s(e.timezone_text)}})])])])])])])]),e._v(" "),s("div",{staticClass:"sui-box-footer"},[s("div",{staticClass:"sui-actions-right"},[s("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue save-changes",state:e.state}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),e._v("\n "+e._s(e.__("Save Changes"))+"\n ")])],1)])])])}),[],!1,null,null,null).exports,y={mixins:[a.a],name:"audit",data:function(){return{view:"",summary:{report_time:auditData.summary.report_time,events_in_7_days:"-"},enabled:auditData.enabled,state:{on_saving:!1},nonces:auditData.nonces,endpoints:auditData.endpoints}},components:{"app-footer":r.a,logs:f,settings:_,report:g},methods:{updateSummary:function(e){this.summary.events_in_7_days=e},toggle:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"enabled",s=this,i={};i[t]=e,this.httpPostRequest("updateSettings",{data:JSON.stringify(i)},(function(){s.enabled=e,s.$nextTick((function(){s.rebindSUI()}))}))}},created:function(){var e=new URLSearchParams(window.location.search).get("view");null===e&&(e="logs"),this.view=e,this.$on("events_in_7_days",(function(e){this.summary.events_in_7_days=e})),this.$on("update_report_time",(function(e){this.summary.report_time=e.report_time})),this.$on("enable_state",(function(e){this.enabled=e}))},watch:{view:function(e,t){history.replaceState({},null,this.adminUrl()+"admin.php?page=wdf-logging&view="+this.view)}},mounted:function(){self=this,jQuery(".sui-mobile-nav").change((function(){self.view=jQuery(this).val()}))}},b=Object(h.a)(y,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"sui-wrap",class:e.maybeHighContrast()},[e.enabled?s("div",{staticClass:"auditing"},[s("div",{staticClass:"sui-header"},[s("h1",{staticClass:"sui-header-title"},[e._v("\n "+e._s(e.__("Audit Logging"))+"\n ")]),e._v(" "),s("doc-link",{attrs:{link:"https://premium.wpmudev.org/docs/wpmu-dev-plugins/defender/#audit-logging"}})],1),e._v(" "),s("summary-box",{attrs:{"css-class":"sui-summary-sm"}},[s("div",{staticClass:"sui-summary-segment"},[s("div",{staticClass:"sui-summary-details"},[s("span",{staticClass:"sui-summary-large",domProps:{textContent:e._s(e.summary.events_in_7_days)}}),e._v(" "),s("span",{staticClass:"sui-summary-sub"},[e._v("\n "+e._s(e.__("Events logged in the past 7 days"))+"\n ")])])]),e._v(" "),s("div",{staticClass:"sui-summary-segment"},[s("ul",{staticClass:"sui-list"},[s("li",[s("span",{staticClass:"sui-list-label"},[e._v(e._s(e.__("Reporting")))]),e._v(" "),s("span",{staticClass:"sui-list-detail",domProps:{textContent:e._s(e.summary.report_time)}})])])])]),e._v(" "),s("div",{staticClass:"sui-row-with-sidenav"},[s("div",{staticClass:"sui-sidenav"},[s("ul",{staticClass:"sui-vertical-tabs sui-sidenav-hide-md"},[s("li",{staticClass:"sui-vertical-tab",class:{current:"logs"===e.view},attrs:{id:"tab_log"}},[s("a",{attrs:{href:e.adminUrl("admin.php?page=wdf-logging")},on:{click:function(t){t.preventDefault(),e.view="logs"}}},[e._v(e._s(e.__("Event Logs")))])]),e._v(" "),s("li",{staticClass:"sui-vertical-tab",class:{current:"settings"===e.view},attrs:{id:"tab_settings"}},[s("a",{attrs:{href:e.adminUrl("admin.php?page=wdf-logging&view=settings")},on:{click:function(t){t.preventDefault(),e.view="settings"}}},[e._v(e._s(e.__("Settings")))])]),e._v(" "),s("li",{staticClass:"sui-vertical-tab",class:{current:"report"===e.view},attrs:{id:"tab_report"}},[s("a",{attrs:{href:e.adminUrl("admin.php?page=wdf-logging&view=report")},on:{click:function(t){t.preventDefault(),e.view="report"}}},[e._v(e._s(e.__("Reports")))])])]),e._v(" "),s("div",{staticClass:"sui-sidenav-hide-lg"},[s("select",{staticClass:"sui-mobile-nav",staticStyle:{display:"none"}},[s("option",{attrs:{value:"logs"}},[e._v(e._s(e.__("Event Logs")))]),e._v(" "),s("option",{attrs:{value:"settings"}},[e._v(e._s(e.__("Settings")))]),e._v(" "),s("option",{attrs:{value:"report"}},[e._v(e._s(e.__("Reports")))])])])]),e._v(" "),s("logs",{directives:[{name:"show",rawName:"v-show",value:"logs"===e.view,expression:"view==='logs'"}]}),e._v(" "),s("settings",{directives:[{name:"show",rawName:"v-show",value:"settings"===e.view,expression:"view==='settings'"}]}),e._v(" "),s("report",{directives:[{name:"show",rawName:"v-show",value:"report"===e.view,expression:"view==='report'"}]})],1),e._v(" "),s("app-footer")],1):s("div",{staticClass:"auditing"},[s("div",{staticClass:"sui-header"},[s("h1",{staticClass:"sui-header-title"},[e._v("\n "+e._s(e.__("Audit Logging"))+"\n ")]),e._v(" "),s("div",{staticClass:"sui-actions-right"},[s("doc-link",{attrs:{link:"https://premium.wpmudev.org/docs/wpmu-dev-plugins/defender/#audit-logging"}})],1)]),e._v(" "),s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[e._v("\n "+e._s(e.__("Activate"))+"\n ")])]),e._v(" "),s("div",{staticClass:"sui-message"},[!1===e.maybeHideBranding()?s("img",{staticClass:"sui-image",attrs:{src:e.assetUrl("assets/img/audit-disabled-man.svg"),"aria-hidden":"true"}}):e._e(),e._v(" "),s("div",{staticClass:"sui-message-content"},[s("p",[e._v("\n "+e._s(e.__("Track and log each and every event when changes are made to your website and get detailed reports on what's going on behind the scenes, including any hacking attempts onyour site."))+"\n ")]),e._v(" "),s("submit-button",{attrs:{type:"button","css-class":"sui-button-blue activate",state:e.state},on:{click:function(t){return e.toggle(!0)}}},[e._v("\n "+e._s(e.__("Activate"))+"\n ")])],1)])])])])}),[],!1,null,null,null).exports,w={mixins:[a.a],name:"audit-free"},k=Object(h.a)(w,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"sui-wrap",class:e.maybeHighContrast},[s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[e._v("\n "+e._s(e.__("Audit Logging"))+"\n ")]),e._v(" "),e._m(0)]),e._v(" "),s("div",{staticClass:"sui-message"},[s("img",{staticClass:"sui-image",attrs:{src:e.assetUrl("assets/img/audit-disabled-man.svg")}}),e._v(" "),s("div",{staticClass:"sui-message-content"},[s("p",[e._v("\n "+e._s(e.__("Track and log each and every event when changes are made to your website and get detailed reports on what's going on behind the scenes, including any hacking attempts on your site. This is a pro feature that requires an active WPMU DEV membership. Try it free today!"))+"\n ")]),e._v(" "),s("a",{staticClass:"sui-button sui-button-purple",attrs:{href:e.campaign_url("defender_auditlogging_upgrade_button"),target:"_blank"}},[e._v("Upgrade to Pro")])])])])])}),[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"sui-actions-left"},[t("span",{staticClass:"sui-tag sui-tag-pro"},[this._v("Pro")])])}],!1,null,null,null).exports,x=s("./src/component/overlay.vue"),C=s("./src/component/submit-button.vue"),S=s("./src/component/doc-link.vue"),D=s("./src/component/summary-box.vue");n.a.filter("moment",(function(e,t){return e?d(e).format(t):d().format(t)})),n.a.component("overlay",x.a),n.a.component("submit-button",C.a),n.a.component("app-footer",r.a),n.a.component("doc-link",S.a),n.a.component("summary-box",D.a);new n.a({el:"#defender",components:{audit:b,audit_free:k},render:function(e){return 0===parseInt(defender.is_free)?e(b):e(k)}})},"./src/component/doc-link.vue":function(e,t,s){"use strict";var i={mixins:[s("./src/helper/base_hepler.js").a],name:"doc-link",props:["link"],data:function(){return{whitelabel:defender.whitelabel}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var e=this.$createElement,t=this._self._c||e;return!1===this.whitelabel.hide_doc_link?t("div",{staticClass:"sui-actions-right"},[t("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:this.link,target:"_blank"}},[t("i",{staticClass:"sui-icon-academy"}),this._v(" "+this._s(this.__("View Documentation"))+"\n ")])]):this._e()}),[],!1,null,null,null);t.a=a.exports},"./src/component/footer.vue":function(e,t,s){"use strict";var i={data:function(){return{whitelabel:defender.whitelabel,is_free:parseInt(defender.is_free)}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[!0===e.whitelabel.change_footer?s("div",{staticClass:"sui-footer"},[e._v("\n "+e._s(e.whitelabel.footer_text)+"\n ")]):s("div",{staticClass:"sui-footer"},[e._v("Made with "),s("i",{staticClass:"sui-icon-heart"}),e._v(" by WPMU DEV")]),e._v(" "),!1===e.whitelabel.hide_doc_link?s("div",[1===e.is_free?s("ul",{staticClass:"sui-footer-nav"},[e._m(0),e._v(" "),e._m(1),e._v(" "),e._m(2),e._v(" "),e._m(3),e._v(" "),e._m(4),e._v(" "),e._m(5),e._v(" "),e._m(6),e._v(" "),e._m(7)]):s("ul",{staticClass:"sui-footer-nav"},[e._m(8),e._v(" "),e._m(9),e._v(" "),e._m(10),e._v(" "),e._m(11),e._v(" "),e._m(12),e._v(" "),e._m(13),e._v(" "),e._m(14),e._v(" "),e._m(15)]),e._v(" "),e._m(16)]):e._e()])}),[function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://profiles.wordpress.org/wpmudev#content-plugins",target:"_blank"}},[this._v("Free\n Plugins")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://premium.wpmudev.org/features/",target:"_blank"}},[this._v("Membership")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://wordpress.org/support/plugin/plugin-name",target:"_blank"}},[this._v("Support")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://premium.wpmudev.org/projects/category/plugins/",target:"_blank"}},[this._v("Plugins")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://premium.wpmudev.org/hub/support/",target:"_blank"}},[this._v("Support")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://premium.wpmudev.org/hub/community/",target:"_blank"}},[this._v("Community")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[t("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ul",{staticClass:"sui-footer-social"},[s("li",[s("a",{attrs:{href:"https://www.facebook.com/wpmudev",target:"_blank"}},[s("i",{staticClass:"sui-icon-social-facebook",attrs:{"aria-hidden":"true"}}),e._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[e._v("Facebook")])])]),e._v(" "),s("li",[s("a",{attrs:{href:"https://twitter.com/wpmudev",target:"_blank"}},[s("i",{staticClass:"sui-icon-social-twitter",attrs:{"aria-hidden":"true"}})]),e._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[e._v("Twitter")])]),e._v(" "),s("li",[s("a",{attrs:{href:"https://www.instagram.com/wpmu_dev/",target:"_blank"}},[s("i",{staticClass:"sui-icon-instagram",attrs:{"aria-hidden":"true"}}),e._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[e._v("Instagram")])])])])}],!1,null,null,null);t.a=a.exports},"./src/component/overlay.vue":function(e,t,s){"use strict";var i={name:"overlay"},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var e=this.$createElement;this._self._c;return this._m(0)}),[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"wd-overlay"},[t("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])}],!1,null,null,null);t.a=a.exports},"./src/component/pagination.vue":function(e,t,s){"use strict";var i={props:{value:{type:Number},pageCount:{type:Number,required:!0},forcePage:{type:Number},clickHandler:{type:Function,default:function(){}},pageRange:{type:Number,default:3},marginPages:{type:Number,default:1},prevText:{type:String,default:"Prev"},nextText:{type:String,default:"Next"},breakViewText:{type:String,default:"…"},containerClass:{type:String},pageClass:{type:String},pageLinkClass:{type:String},prevClass:{type:String},prevLinkClass:{type:String},nextClass:{type:String},nextLinkClass:{type:String},breakViewClass:{type:String},breakViewLinkClass:{type:String},activeClass:{type:String,default:"active"},disabledClass:{type:String,default:"disabled"},noLiSurround:{type:Boolean,default:!1},firstLastButton:{type:Boolean,default:!1},firstButtonText:{type:String,default:"First"},lastButtonText:{type:String,default:"Last"},hidePrevNext:{type:Boolean,default:!1}},beforeUpdate:function(){void 0!==this.forcePage&&this.forcePage!==this.selected&&(this.selected=this.forcePage)},computed:{selected:{get:function(){return this.value||this.innerValue},set:function(e){this.innerValue=e}},pages:function(){var e=this,t={};if(this.pageCount<=this.pageRange)for(var s=0;s<this.pageCount;s++){var i={index:s,content:s+1,selected:s===this.selected-1};t[s]=i}else{for(var n=Math.floor(this.pageRange/2),a=function(s){var i={index:s,content:s+1,selected:s===e.selected-1};t[s]=i},r=function(e){t[e]={disabled:!0,breakView:!0}},o=0;o<this.marginPages;o++)a(o);var l=0;this.selected-n>0&&(l=this.selected-1-n);var u=l+this.pageRange-1;u>=this.pageCount&&(l=(u=this.pageCount-1)-this.pageRange+1);for(var d=l;d<=u&&d<=this.pageCount-1;d++)a(d);l>this.marginPages&&r(l-1),u+1<this.pageCount-this.marginPages&&r(u+1);for(var c=this.pageCount-1;c>=this.pageCount-this.marginPages;c--)a(c)}return t}},data:function(){return{innerValue:1}},methods:{handlePageSelected:function(e){this.selected!==e&&(this.innerValue=e,this.$emit("input",e),this.clickHandler(e))},prevPage:function(){this.selected<=1||this.handlePageSelected(this.selected-1)},nextPage:function(){this.selected>=this.pageCount||this.handlePageSelected(this.selected+1)},firstPageSelected:function(){return 1===this.selected},lastPageSelected:function(){return this.selected===this.pageCount||0===this.pageCount},selectFirstPage:function(){this.selected<=1||this.handlePageSelected(1)},selectLastPage:function(){this.selected>=this.pageCount||this.handlePageSelected(this.pageCount)}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.noLiSurround?s("div",{class:e.containerClass},[e.firstLastButton?s("a",{class:[e.pageLinkClass,e.firstPageSelected()?e.disabledClass:""],attrs:{tabindex:"0"},domProps:{innerHTML:e._s(e.firstButtonText)},on:{click:function(t){return e.selectFirstPage()},keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.selectFirstPage()}}}):e._e(),e._v(" "),e.firstPageSelected()&&e.hidePrevNext?e._e():s("a",{class:[e.prevLinkClass,e.firstPageSelected()?e.disabledClass:""],attrs:{tabindex:"0"},domProps:{innerHTML:e._s(e.prevText)},on:{click:function(t){return e.prevPage()},keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.prevPage()}}}),e._v(" "),e._l(e.pages,(function(t){return[t.breakView?s("a",{class:[e.pageLinkClass,e.breakViewLinkClass,t.disabled?e.disabledClass:""],attrs:{tabindex:"0"}},[e._t("breakViewContent",[e._v(e._s(e.breakViewText))])],2):t.disabled?s("a",{class:[e.pageLinkClass,t.selected?e.activeClass:"",e.disabledClass],attrs:{tabindex:"0"}},[e._v(e._s(t.content))]):s("a",{class:[e.pageLinkClass,t.selected?e.activeClass:""],attrs:{tabindex:"0"},on:{click:function(s){return e.handlePageSelected(t.index+1)},keyup:function(s){return!s.type.indexOf("key")&&e._k(s.keyCode,"enter",13,s.key,"Enter")?null:e.handlePageSelected(t.index+1)}}},[e._v(e._s(t.content))])]})),e._v(" "),e.lastPageSelected()&&e.hidePrevNext?e._e():s("a",{class:[e.nextLinkClass,e.lastPageSelected()?e.disabledClass:""],attrs:{tabindex:"0"},domProps:{innerHTML:e._s(e.nextText)},on:{click:function(t){return e.nextPage()},keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.nextPage()}}}),e._v(" "),e.firstLastButton?s("a",{class:[e.pageLinkClass,e.lastPageSelected()?e.disabledClass:""],attrs:{tabindex:"0"},domProps:{innerHTML:e._s(e.lastButtonText)},on:{click:function(t){return e.selectLastPage()},keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.selectLastPage()}}}):e._e()],2):s("ul",{class:e.containerClass},[e.firstLastButton?s("li",{class:[e.pageClass,e.firstPageSelected()?e.disabledClass:""]},[s("a",{class:e.pageLinkClass,attrs:{tabindex:e.firstPageSelected()?-1:0},domProps:{innerHTML:e._s(e.firstButtonText)},on:{click:function(t){return e.selectFirstPage()},keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.selectFirstPage()}}})]):e._e(),e._v(" "),e.firstPageSelected()&&e.hidePrevNext?e._e():s("li",{class:[e.prevClass,e.firstPageSelected()?e.disabledClass:""]},[s("a",{class:e.prevLinkClass,attrs:{tabindex:e.firstPageSelected()?-1:0},domProps:{innerHTML:e._s(e.prevText)},on:{click:function(t){return e.prevPage()},keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.prevPage()}}})]),e._v(" "),e._l(e.pages,(function(t){return s("li",{class:[e.pageClass,t.selected?e.activeClass:"",t.disabled?e.disabledClass:"",t.breakView?e.breakViewClass:""]},[t.breakView?s("a",{class:[e.pageLinkClass,e.breakViewLinkClass],attrs:{tabindex:"0"}},[e._t("breakViewContent",[e._v(e._s(e.breakViewText))])],2):t.disabled?s("a",{class:e.pageLinkClass,attrs:{tabindex:"0"}},[e._v(e._s(t.content))]):s("a",{class:e.pageLinkClass,attrs:{disabled:t.selected,tabindex:"0"},on:{click:function(s){return e.handlePageSelected(t.index+1)},keyup:function(s){return!s.type.indexOf("key")&&e._k(s.keyCode,"enter",13,s.key,"Enter")?null:e.handlePageSelected(t.index+1)}}},[e._v(e._s(t.content))])])})),e._v(" "),e.lastPageSelected()&&e.hidePrevNext?e._e():s("li",{class:[e.nextClass,e.lastPageSelected()?e.disabledClass:""]},[s("a",{class:e.nextLinkClass,attrs:{tabindex:e.lastPageSelected()?-1:0},domProps:{innerHTML:e._s(e.nextText)},on:{click:function(t){return e.nextPage()},keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.nextPage()}}})]),e._v(" "),e.firstLastButton?s("li",{class:[e.pageClass,e.lastPageSelected()?e.disabledClass:""]},[s("a",{class:e.pageLinkClass,attrs:{tabindex:e.lastPageSelected()?-1:0},domProps:{innerHTML:e._s(e.lastButtonText)},on:{click:function(t){return e.selectLastPage()},keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.selectLastPage()}}})]):e._e()],2)}),[],!1,null,null,null);t.a=a.exports},"./src/component/recipients.vue":function(e,t,s){"use strict";var i={mixins:[s("./src/helper/base_hepler.js").a],props:["recipients","id"],data:function(){return{first_name:"",email:"",observers:[],can_add:!1,saving_warning:!1,validate:{email:""}}},created:function(){this.observers=this.recipients},watch:{email:function(){if(this.validateEmail(this.email)){var e=!0,t=this;this.observers.forEach((function(s,i){if(s.email===t.email)return e=!1,void(t.validate.email=t.__("This email address is already in use"))})),this.can_add=e,!0===e&&(this.validate.email="")}else this.can_add=!1,this.validate.email=this.__("Invalid email address")},observers:function(){0===this.observers.length?this.saving_warning=!0:this.saving_warning=!1,void 0!==this.event&&this.$emit("update:recipients",this.observers)}},methods:{addRecipient:function(){this.observers.push({first_name:this.first_name,email:this.email}),SUI.closeModal(),this.first_name="",this.email=""},removeRecipient:function(e){this.observers.splice(e,1)},validateEmail:function(e){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(e).toLowerCase())}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{directives:[{name:"show",rawName:"v-show",value:e.saving_warning,expression:"saving_warning"}],staticClass:"sui-notice sui-notice-warning"},[s("div",{staticClass:"sui-notice-content"},[s("div",{staticClass:"sui-notice-message"},[s("i",{staticClass:"sui-notice-icon sui-icon-info sui-md",attrs:{"aria-hidden":"true"}}),e._v(" "),s("p",[e._v("\n "+e._s(e.__("You've removed all recipients. If you save without a recipient, we'll automatically turn of reports"))+"\n ")])])])]),e._v(" "),s("div",{staticClass:"sui-recipients"},[e._l(e.observers,(function(t,i){return s("div",{staticClass:"sui-recipient"},[s("span",{staticClass:"sui-recipient-name"},[e._v(e._s(t.first_name))]),e._v(" "),s("span",{staticClass:"sui-recipient-email"},[e._v(e._s(t.email))]),e._v(" "),s("button",{staticClass:"sui-button-icon",attrs:{type:"button"},on:{click:function(t){return e.removeRecipient(i)}}},[s("i",{staticClass:"sui-icon-trash",attrs:{"aria-hidden":"true"}})])])})),e._v(" "),s("button",{staticClass:"sui-button sui-button-ghost add-recipient",attrs:{"data-modal-open":e.id,"data-modal-mask":"true","data-esc-close":"true"}},[s("i",{staticClass:"sui-icon-plus",attrs:{"aria-hidden":"true"}}),e._v(" "+e._s(e.__("Add Recipient"))+"\n ")])],2),e._v(" "),s("div",{staticClass:"sui-modal sui-modal-md"},[s("div",{staticClass:"sui-modal-content",attrs:{role:"dialog",id:e.id,"aria-modal":"true","aria-labelledby":"Recipient dialog"}},[s("div",{staticClass:"sui-box",attrs:{role:"document"}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[e._v("\n "+e._s(e.__("Add Recipient"))+"\n ")]),e._v(" "),e._m(0)]),e._v(" "),s("div",{staticClass:"sui-box-body"},[s("p",[e._v("\n "+e._s(e.__("Add as many recipients as you like, they will receive email reports as per the schedule you set."))+"\n ")]),e._v(" "),s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[e._v(e._s(e.__("First name")))]),e._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:e.first_name,expression:"first_name"}],staticClass:"sui-form-control recipient_name",attrs:{type:"text"},domProps:{value:e.first_name},on:{input:function(t){t.target.composing||(e.first_name=t.target.value)}}})]),e._v(" "),s("div",{staticClass:"sui-form-field",class:{"sui-form-field-error":e.validate.email.length>0}},[s("label",{staticClass:"sui-label"},[e._v(e._s(e.__("Email")))]),e._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:e.email,expression:"email"}],staticClass:"sui-form-control recipient_email",attrs:{type:"text"},domProps:{value:e.email},on:{input:function(t){t.target.composing||(e.email=t.target.value)}}}),e._v(" "),s("span",{directives:[{name:"show",rawName:"v-show",value:e.validate.email.length>0,expression:"validate.email.length > 0"}],staticClass:"sui-error-message",domProps:{textContent:e._s(this.validate.email)}})])]),e._v(" "),s("div",{staticClass:"sui-box-footer"},[s("button",{staticClass:"sui-button sui-button-ghost",attrs:{type:"button","data-modal-close":""}},[e._v("\n "+e._s(e.__("Cancel"))+"\n ")]),e._v(" "),s("button",{staticClass:"sui-modal-close sui-button recipient_save",attrs:{type:"button",disabled:!1===e.can_add},on:{click:e.addRecipient}},[e._v(e._s(e.__("Add"))+"\n ")])])])])])])}),[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"sui-actions-right"},[t("button",{staticClass:"sui-button-icon",attrs:{type:"button","data-modal-close":"","aria-label":"Close this dialog window"}},[t("i",{staticClass:"sui-icon-close"})])])}],!1,null,null,null);t.a=a.exports},"./src/component/submit-button.vue":function(e,t,s){"use strict";var i={name:"submit-button",props:["id","state","text","css-class","type"],computed:{getClass:function(){return"sui-button "+this.cssClass}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("button",{staticClass:"sui-button",class:[e.getClass,{"sui-button-onload":e.state.on_saving}],attrs:{id:e.id,type:e.type,disabled:e.state.on_saving},on:{click:function(t){return e.$emit("click")}}},[s("span",{staticClass:"sui-loading-text"},[e._t("default")],2),e._v(" "),s("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])}),[],!1,null,null,null);t.a=a.exports},"./src/component/summary-box.vue":function(e,t,s){"use strict";var i={mixins:[s("./src/helper/base_hepler.js").a],props:["css-class"],name:"summary-box",data:function(){return{whitelabel:defender.whitelabel}},computed:{summary_class:function(){return{"sui-unbranded":!0===this.whitelabel.hide_branding&&0===this.whitelabel.hero_image.length,"sui-rebranded":!0===this.whitelabel.hide_branding&&this.whitelabel.hero_image.length>0}},css_class:function(){return this.cssClass},rebrand_img:function(){if(this.whitelabel.hero_image.length>0)return{"background-image":"url('"+this.whitelabel.hero_image+"')"}}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"sui-box sui-summary",class:[this.summary_class,this.css_class],style:this.rebrand_img},[t("div",{staticClass:"sui-summary-image-space",attrs:{"aria-hidden":"true"}}),this._v(" "),this._t("default")],2)}),[],!1,null,null,null);t.a=a.exports},"./src/helper/base_hepler.js":function(e,t,s){"use strict";var i=s("./node_modules/xss/lib/index.js"),n=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var s=[],i=!0,n=!1,a=void 0;try{for(var r,o=e[Symbol.iterator]();!(i=(r=o.next()).done)&&(s.push(r.value),!t||s.length!==t);i=!0);}catch(e){n=!0,a=e}finally{try{!i&&o.return&&o.return()}finally{if(n)throw a}}return s}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},a=wp.i18n,r={whiteList:{a:["href","title","target"],span:["class"],strong:["*"]},safeAttrValue:function(e,t,s,n){return"a"===e&&"href"===t&&"%s"===s?"%s":Object(i.safeAttrValue)(e,t,s,n)}},o=new i.FilterXSS(r),l=[];t.a={methods:{__:function(e){var t=a.__(e,"wpdef");return o.process(t)},xss:function(e){return o.process(e)},vsprintf:function(e){return a.sprintf.apply(null,arguments)},siteUrl:function(e){return void 0!==e?defender.site_url+e:defender.site_url},adminUrl:function(e){return void 0!==e?defender.admin_url+e:defender.admin_url},assetUrl:function(e){return defender.defender_url+e},maybeHighContrast:function(){return{"sui-color-accessible":!0===defender.misc.high_contrast}},maybeHideBranding:function(){return defender.whitelabel.hide_branding},isWhitelabelEnabled:function(){return defender.whitelabel.enabled},campaign_url:function(e){return"https://premium.wpmudev.org/project/wp-defender/?utm_source=defender&utm_medium=plugin&utm_campaign="+e},campaignUrl:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"https://premium.wpmudev.org/"+e+"?utm_source=defender&utm_medium=plugin&utm_campaign="+t},httpRequest:function(e,t,s,i,n){var a=this;void 0===n&&(this.state.on_saving=!0);var r=ajaxurl+"?action="+this.endpoints[t]+"&_wpnonce="+this.nonces[t],o=jQuery.ajax({url:r,method:e,data:s,success:function(e){var t=e.data;a.state.on_saving=!1,void 0!==t&&void 0!==t.message&&(e.success?Defender.showNotification("success",t.message):Defender.showNotification("error",t.message)),void 0!==i&&i(e)}});l.push(o)},httpGetRequest:function(e,t,s,i){this.httpRequest("get",e,t,s,i)},httpPostRequest:function(e,t,s,i){this.httpRequest("post",e,t,s,i)},abortAllRequests:function(){for(var e=0;e<l.length;e++)l[e].abort()},getQueryStringParams:function(e){return e?(/^[?#]/.test(e)?e.slice(1):e).split("&").reduce((function(e,t){var s=t.split("="),i=n(s,2),a=i[0],r=i[1];return e[a]=r?decodeURIComponent(r.replace(/\+/g," ")):"",e}),{}):{}},rebindSUI:function(){jQuery("select:not([multiple])").each((function(){SUI.suiSelect(this)})),jQuery(".sui-accordion").each((function(){SUI.suiAccordion(this)}));var e=jQuery(".sui-wrap");SUI.dialogs={},jQuery(".sui-dialog").each((function(){SUI.dialogs[this.id]=new A11yDialog(this,e)}))}}}},vue:function(e,t){e.exports=Vue}});
assets/app/dashboard.js CHANGED
@@ -1 +1 @@
1
- !function(t){var s=window.webpackHotUpdate;window.webpackHotUpdate=function(t,e){!function(t,s){if(!y[t]||!b[t])return;for(var e in b[t]=!1,s)Object.prototype.hasOwnProperty.call(s,e)&&(v[e]=s[e]);0==--f&&0===m&&x()}(t,e),s&&s(t,e)};var e,i=!0,a="1f0325ef5048e0254986",n={},o=[],r=[];function c(t){var s=A[t];if(!s)return j;var i=function(i){return s.hot.active?(A[i]?-1===A[i].parents.indexOf(t)&&A[i].parents.push(t):(o=[t],e=i),-1===s.children.indexOf(i)&&s.children.push(i)):(console.warn("[HMR] unexpected require("+i+") from disposed module "+t),o=[]),j(i)},a=function(t){return{configurable:!0,enumerable:!0,get:function(){return j[t]},set:function(s){j[t]=s}}};for(var n in j)Object.prototype.hasOwnProperty.call(j,n)&&"e"!==n&&"t"!==n&&Object.defineProperty(i,n,a(n));return i.e=function(t){return"ready"===d&&_("prepare"),m++,j.e(t).then(s,(function(t){throw s(),t}));function s(){m--,"prepare"===d&&(g[t]||w(t),0===m&&0===f&&x())}},i.t=function(t,s){return 1&s&&(t=i(t)),j.t(t,-2&s)},i}function l(t){var s={_acceptedDependencies:{},_declinedDependencies:{},_selfAccepted:!1,_selfDeclined:!1,_disposeHandlers:[],_main:e!==t,active:!0,accept:function(t,e){if(void 0===t)s._selfAccepted=!0;else if("function"==typeof t)s._selfAccepted=t;else if("object"==typeof t)for(var i=0;i<t.length;i++)s._acceptedDependencies[t[i]]=e||function(){};else s._acceptedDependencies[t]=e||function(){}},decline:function(t){if(void 0===t)s._selfDeclined=!0;else if("object"==typeof t)for(var e=0;e<t.length;e++)s._declinedDependencies[t[e]]=!0;else s._declinedDependencies[t]=!0},dispose:function(t){s._disposeHandlers.push(t)},addDisposeHandler:function(t){s._disposeHandlers.push(t)},removeDisposeHandler:function(t){var e=s._disposeHandlers.indexOf(t);e>=0&&s._disposeHandlers.splice(e,1)},check:k,apply:S,status:function(t){if(!t)return d;u.push(t)},addStatusHandler:function(t){u.push(t)},removeStatusHandler:function(t){var s=u.indexOf(t);s>=0&&u.splice(s,1)},data:n[t]};return e=void 0,s}var u=[],d="idle";function _(t){d=t;for(var s=0;s<u.length;s++)u[s].call(null,t)}var p,v,h,f=0,m=0,g={},b={},y={};function C(t){return+t+""===t?+t:t}function k(t){if("idle"!==d)throw new Error("check() is only allowed in idle status");return i=t,_("check"),(s=1e4,s=s||1e4,new Promise((function(t,e){if("undefined"==typeof XMLHttpRequest)return e(new Error("No browser support"));try{var i=new XMLHttpRequest,n=j.p+""+a+".hot-update.json";i.open("GET",n,!0),i.timeout=s,i.send(null)}catch(t){return e(t)}i.onreadystatechange=function(){if(4===i.readyState)if(0===i.status)e(new Error("Manifest request to "+n+" timed out."));else if(404===i.status)t();else if(200!==i.status&&304!==i.status)e(new Error("Manifest request to "+n+" failed."));else{try{var s=JSON.parse(i.responseText)}catch(t){return void e(t)}t(s)}}}))).then((function(t){if(!t)return _("idle"),null;b={},g={},y=t.c,h=t.h,_("prepare");var s=new Promise((function(t,s){p={resolve:t,reject:s}}));v={};return w(2),"prepare"===d&&0===m&&0===f&&x(),s}));var s}function w(t){y[t]?(b[t]=!0,f++,function(t){var s=document.createElement("script");s.charset="utf-8",s.src=j.p+""+t+"."+a+".hot-update.js",document.head.appendChild(s)}(t)):g[t]=!0}function x(){_("ready");var t=p;if(p=null,t)if(i)Promise.resolve().then((function(){return S(i)})).then((function(s){t.resolve(s)}),(function(s){t.reject(s)}));else{var s=[];for(var e in v)Object.prototype.hasOwnProperty.call(v,e)&&s.push(C(e));t.resolve(s)}}function S(s){if("ready"!==d)throw new Error("apply() is only allowed in ready status");var e,i,r,c,l;function u(t){for(var s=[t],e={},i=s.map((function(t){return{chain:[t],id:t}}));i.length>0;){var a=i.pop(),n=a.id,o=a.chain;if((c=A[n])&&!c.hot._selfAccepted){if(c.hot._selfDeclined)return{type:"self-declined",chain:o,moduleId:n};if(c.hot._main)return{type:"unaccepted",chain:o,moduleId:n};for(var r=0;r<c.parents.length;r++){var l=c.parents[r],u=A[l];if(u){if(u.hot._declinedDependencies[n])return{type:"declined",chain:o.concat([l]),moduleId:n,parentId:l};-1===s.indexOf(l)&&(u.hot._acceptedDependencies[n]?(e[l]||(e[l]=[]),p(e[l],[n])):(delete e[l],s.push(l),i.push({chain:o.concat([l]),id:l})))}}}}return{type:"accepted",moduleId:t,outdatedModules:s,outdatedDependencies:e}}function p(t,s){for(var e=0;e<s.length;e++){var i=s[e];-1===t.indexOf(i)&&t.push(i)}}s=s||{};var f={},m=[],g={},b=function(){console.warn("[HMR] unexpected require("+w.moduleId+") to disposed module")};for(var k in v)if(Object.prototype.hasOwnProperty.call(v,k)){var w;l=C(k);var x=!1,S=!1,P=!1,T="";switch((w=v[k]?u(l):{type:"disposed",moduleId:k}).chain&&(T="\nUpdate propagation: "+w.chain.join(" -> ")),w.type){case"self-declined":s.onDeclined&&s.onDeclined(w),s.ignoreDeclined||(x=new Error("Aborted because of self decline: "+w.moduleId+T));break;case"declined":s.onDeclined&&s.onDeclined(w),s.ignoreDeclined||(x=new Error("Aborted because of declined dependency: "+w.moduleId+" in "+w.parentId+T));break;case"unaccepted":s.onUnaccepted&&s.onUnaccepted(w),s.ignoreUnaccepted||(x=new Error("Aborted because "+l+" is not accepted"+T));break;case"accepted":s.onAccepted&&s.onAccepted(w),S=!0;break;case"disposed":s.onDisposed&&s.onDisposed(w),P=!0;break;default:throw new Error("Unexception type "+w.type)}if(x)return _("abort"),Promise.reject(x);if(S)for(l in g[l]=v[l],p(m,w.outdatedModules),w.outdatedDependencies)Object.prototype.hasOwnProperty.call(w.outdatedDependencies,l)&&(f[l]||(f[l]=[]),p(f[l],w.outdatedDependencies[l]));P&&(p(m,[w.moduleId]),g[l]=b)}var I,E=[];for(i=0;i<m.length;i++)l=m[i],A[l]&&A[l].hot._selfAccepted&&g[l]!==b&&E.push({module:l,errorHandler:A[l].hot._selfAccepted});_("dispose"),Object.keys(y).forEach((function(t){!1===y[t]&&function(t){delete installedChunks[t]}(t)}));for(var $,O,D=m.slice();D.length>0;)if(l=D.pop(),c=A[l]){var R={},q=c.hot._disposeHandlers;for(r=0;r<q.length;r++)(e=q[r])(R);for(n[l]=R,c.hot.active=!1,delete A[l],delete f[l],r=0;r<c.children.length;r++){var L=A[c.children[r]];L&&((I=L.parents.indexOf(l))>=0&&L.parents.splice(I,1))}}for(l in f)if(Object.prototype.hasOwnProperty.call(f,l)&&(c=A[l]))for(O=f[l],r=0;r<O.length;r++)$=O[r],(I=c.children.indexOf($))>=0&&c.children.splice(I,1);for(l in _("apply"),a=h,g)Object.prototype.hasOwnProperty.call(g,l)&&(t[l]=g[l]);var U=null;for(l in f)if(Object.prototype.hasOwnProperty.call(f,l)&&(c=A[l])){O=f[l];var H=[];for(i=0;i<O.length;i++)if($=O[i],e=c.hot._acceptedDependencies[$]){if(-1!==H.indexOf(e))continue;H.push(e)}for(i=0;i<H.length;i++){e=H[i];try{e(O)}catch(t){s.onErrored&&s.onErrored({type:"accept-errored",moduleId:l,dependencyId:O[i],error:t}),s.ignoreErrored||U||(U=t)}}}for(i=0;i<E.length;i++){var W=E[i];l=W.module,o=[l];try{j(l)}catch(t){if("function"==typeof W.errorHandler)try{W.errorHandler(t)}catch(e){s.onErrored&&s.onErrored({type:"self-accept-error-handler-errored",moduleId:l,error:e,originalError:t}),s.ignoreErrored||U||(U=e),U||(U=t)}else s.onErrored&&s.onErrored({type:"self-accept-errored",moduleId:l,error:t}),s.ignoreErrored||U||(U=t)}}return U?(_("fail"),Promise.reject(U)):(_("idle"),new Promise((function(t){t(m)})))}var A={};function j(s){if(A[s])return A[s].exports;var e=A[s]={i:s,l:!1,exports:{},hot:l(s),parents:(r=o,o=[],r),children:[]};return t[s].call(e.exports,e,e.exports,c(s)),e.l=!0,e.exports}j.m=t,j.c=A,j.d=function(t,s,e){j.o(t,s)||Object.defineProperty(t,s,{enumerable:!0,get:e})},j.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},j.t=function(t,s){if(1&s&&(t=j(t)),8&s)return t;if(4&s&&"object"==typeof t&&t&&t.__esModule)return t;var e=Object.create(null);if(j.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:t}),2&s&&"string"!=typeof t)for(var i in t)j.d(e,i,function(s){return t[s]}.bind(null,i));return e},j.n=function(t){var s=t&&t.__esModule?function(){return t.default}:function(){return t};return j.d(s,"a",s),s},j.o=function(t,s){return Object.prototype.hasOwnProperty.call(t,s)},j.p="",j.h=function(){return a},c("./src/dashboard.js")(j.s="./src/dashboard.js")}({"./node_modules/cssfilter/lib/css.js":function(t,s,e){var i=e("./node_modules/cssfilter/lib/default.js"),a=e("./node_modules/cssfilter/lib/parser.js");e("./node_modules/cssfilter/lib/util.js");function n(t){return null==t}function o(t){(t=function(t){var s={};for(var e in t)s[e]=t[e];return s}(t||{})).whiteList=t.whiteList||i.whiteList,t.onAttr=t.onAttr||i.onAttr,t.onIgnoreAttr=t.onIgnoreAttr||i.onIgnoreAttr,t.safeAttrValue=t.safeAttrValue||i.safeAttrValue,this.options=t}o.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var s=this.options,e=s.whiteList,i=s.onAttr,o=s.onIgnoreAttr,r=s.safeAttrValue;return a(t,(function(t,s,a,c,l){var u=e[a],d=!1;if(!0===u?d=u:"function"==typeof u?d=u(c):u instanceof RegExp&&(d=u.test(c)),!0!==d&&(d=!1),c=r(a,c)){var _,p={position:s,sourcePosition:t,source:l,isWhite:d};return d?n(_=i(a,c,p))?a+":"+c:_:n(_=o(a,c,p))?void 0:_}}))},t.exports=o},"./node_modules/cssfilter/lib/default.js":function(t,s){function e(){var t={"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1};return t}var i=/javascript\s*\:/gim;s.whiteList=e(),s.getDefaultWhiteList=e,s.onAttr=function(t,s,e){},s.onIgnoreAttr=function(t,s,e){},s.safeAttrValue=function(t,s){return i.test(s)?"":s}},"./node_modules/cssfilter/lib/index.js":function(t,s,e){var i=e("./node_modules/cssfilter/lib/default.js"),a=e("./node_modules/cssfilter/lib/css.js");for(var n in(s=t.exports=function(t,s){return new a(s).process(t)}).FilterCSS=a,i)s[n]=i[n];"undefined"!=typeof window&&(window.filterCSS=t.exports)},"./node_modules/cssfilter/lib/parser.js":function(t,s,e){var i=e("./node_modules/cssfilter/lib/util.js");t.exports=function(t,s){";"!==(t=i.trimRight(t))[t.length-1]&&(t+=";");var e=t.length,a=!1,n=0,o=0,r="";function c(){if(!a){var e=i.trim(t.slice(n,o)),c=e.indexOf(":");if(-1!==c){var l=i.trim(e.slice(0,c)),u=i.trim(e.slice(c+1));if(l){var d=s(n,r.length,l,u,e);d&&(r+=d+"; ")}}}n=o+1}for(;o<e;o++){var l=t[o];if("/"===l&&"*"===t[o+1]){var u=t.indexOf("*/",o+2);if(-1===u)break;n=(o=u+1)+1,a=!1}else"("===l?a=!0:")"===l?a=!1:";"===l?a||c():"\n"===l&&c()}return i.trim(r)}},"./node_modules/cssfilter/lib/util.js":function(t,s){t.exports={indexOf:function(t,s){var e,i;if(Array.prototype.indexOf)return t.indexOf(s);for(e=0,i=t.length;e<i;e++)if(t[e]===s)return e;return-1},forEach:function(t,s,e){var i,a;if(Array.prototype.forEach)return t.forEach(s,e);for(i=0,a=t.length;i<a;i++)s.call(e,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(t){return String.prototype.trimRight?t.trimRight():t.replace(/(\s*$)/g,"")}}},"./node_modules/vue-loader/lib/runtime/componentNormalizer.js":function(t,s,e){"use strict";function i(t,s,e,i,a,n,o,r){var c,l="function"==typeof t?t.options:t;if(s&&(l.render=s,l.staticRenderFns=e,l._compiled=!0),i&&(l.functional=!0),n&&(l._scopeId="data-v-"+n),o?(c=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),a&&a.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},l._ssrRegister=c):a&&(c=r?function(){a.call(this,this.$root.$options.shadowRoot)}:a),c)if(l.functional){l._injectStyles=c;var u=l.render;l.render=function(t,s){return c.call(s),u(t,s)}}else{var d=l.beforeCreate;l.beforeCreate=d?[].concat(d,c):[c]}return{exports:t,options:l}}e.d(s,"a",(function(){return i}))},"./node_modules/xss/lib/default.js":function(t,s,e){var i=e("./node_modules/cssfilter/lib/index.js").FilterCSS,a=e("./node_modules/cssfilter/lib/index.js").getDefaultWhiteList,n=e("./node_modules/xss/lib/util.js");function o(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]}}var r=new i;function c(t){return t.replace(l,"&lt;").replace(u,"&gt;")}var l=/</g,u=/>/g,d=/"/g,_=/&quot;/g,p=/&#([a-zA-Z0-9]*);?/gim,v=/&colon;?/gim,h=/&newline;?/gim,f=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi,m=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,g=/u\s*r\s*l\s*\(.*/gi;function b(t){return t.replace(d,"&quot;")}function y(t){return t.replace(_,'"')}function C(t){return t.replace(p,(function(t,s){return"x"===s[0]||"X"===s[0]?String.fromCharCode(parseInt(s.substr(1),16)):String.fromCharCode(parseInt(s,10))}))}function k(t){return t.replace(v,":").replace(h," ")}function w(t){for(var s="",e=0,i=t.length;e<i;e++)s+=t.charCodeAt(e)<32?" ":t.charAt(e);return n.trim(s)}function x(t){return t=w(t=k(t=C(t=y(t))))}function S(t){return t=c(t=b(t))}var A=/<!--[\s\S]*?-->/g;s.whiteList={a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]},s.getDefaultWhiteList=o,s.onTag=function(t,s,e){},s.onIgnoreTag=function(t,s,e){},s.onTagAttr=function(t,s,e){},s.onIgnoreTagAttr=function(t,s,e){},s.safeAttrValue=function(t,s,e,i){if(e=x(e),"href"===s||"src"===s){if("#"===(e=n.trim(e)))return"#";if("http://"!==e.substr(0,7)&&"https://"!==e.substr(0,8)&&"mailto:"!==e.substr(0,7)&&"tel:"!==e.substr(0,4)&&"#"!==e[0]&&"/"!==e[0])return""}else if("background"===s){if(f.lastIndex=0,f.test(e))return""}else if("style"===s){if(m.lastIndex=0,m.test(e))return"";if(g.lastIndex=0,g.test(e)&&(f.lastIndex=0,f.test(e)))return"";!1!==i&&(e=(i=i||r).process(e))}return e=S(e)},s.escapeHtml=c,s.escapeQuote=b,s.unescapeQuote=y,s.escapeHtmlEntities=C,s.escapeDangerHtml5Entities=k,s.clearNonPrintableCharacter=w,s.friendlyAttrValue=x,s.escapeAttrValue=S,s.onIgnoreTagStripAll=function(){return""},s.StripTagBody=function(t,s){"function"!=typeof s&&(s=function(){});var e=!Array.isArray(t),i=[],a=!1;return{onIgnoreTag:function(o,r,c){if(function(s){return!!e||-1!==n.indexOf(t,s)}(o)){if(c.isClosing){var l="[/removed]",u=c.position+l.length;return i.push([!1!==a?a:c.position,u]),a=!1,l}return a||(a=c.position),"[removed]"}return s(o,r,c)},remove:function(t){var s="",e=0;return n.forEach(i,(function(i){s+=t.slice(e,i[0]),e=i[1]})),s+=t.slice(e)}}},s.stripCommentTag=function(t){return t.replace(A,"")},s.stripBlankChar=function(t){var s=t.split("");return(s=s.filter((function(t){var s=t.charCodeAt(0);return 127!==s&&(!(s<=31)||(10===s||13===s))}))).join("")},s.cssFilter=r,s.getDefaultCSSWhiteList=a},"./node_modules/xss/lib/index.js":function(t,s,e){var i=e("./node_modules/xss/lib/default.js"),a=e("./node_modules/xss/lib/parser.js"),n=e("./node_modules/xss/lib/xss.js");function o(t,s){return new n(s).process(t)}for(var r in(s=t.exports=o).filterXSS=o,s.FilterXSS=n,i)s[r]=i[r];for(var r in a)s[r]=a[r];"undefined"!=typeof window&&(window.filterXSS=t.exports),"undefined"!=typeof self&&"undefined"!=typeof DedicatedWorkerGlobalScope&&self instanceof DedicatedWorkerGlobalScope&&(self.filterXSS=t.exports)},"./node_modules/xss/lib/parser.js":function(t,s,e){var i=e("./node_modules/xss/lib/util.js");function a(t){var s=i.spaceIndex(t);if(-1===s)var e=t.slice(1,-1);else e=t.slice(1,s+1);return"/"===(e=i.trim(e).toLowerCase()).slice(0,1)&&(e=e.slice(1)),"/"===e.slice(-1)&&(e=e.slice(0,-1)),e}function n(t){return"</"===t.slice(0,2)}var o=/[^a-zA-Z0-9_:\.\-]/gim;function r(t,s){for(;s<t.length;s++){var e=t[s];if(" "!==e)return"="===e?s:-1}}function c(t,s){for(;s>0;s--){var e=t[s];if(" "!==e)return"="===e?s:-1}}function l(t){return function(t){return'"'===t[0]&&'"'===t[t.length-1]||"'"===t[0]&&"'"===t[t.length-1]}(t)?t.substr(1,t.length-2):t}s.parseTag=function(t,s,e){var i="",o=0,r=!1,c=!1,l=0,u=t.length,d="",_="";for(l=0;l<u;l++){var p=t.charAt(l);if(!1===r){if("<"===p){r=l;continue}}else if(!1===c){if("<"===p){i+=e(t.slice(o,l)),r=l,o=l;continue}if(">"===p){i+=e(t.slice(o,r)),d=a(_=t.slice(r,l+1)),i+=s(r,i.length,d,_,n(_)),o=l+1,r=!1;continue}if(('"'===p||"'"===p)&&"="===t.charAt(l-1)){c=p;continue}}else if(p===c){c=!1;continue}}return o<t.length&&(i+=e(t.substr(o))),i},s.parseAttr=function(t,s){var e=0,a=[],n=!1,u=t.length;function d(t,e){if(!((t=(t=i.trim(t)).replace(o,"").toLowerCase()).length<1)){var n=s(t,e||"");n&&a.push(n)}}for(var _=0;_<u;_++){var p,v=t.charAt(_);if(!1!==n||"="!==v)if(!1===n||_!==e||'"'!==v&&"'"!==v||"="!==t.charAt(_-1))if(/\s|\n|\t/.test(v)){if(t=t.replace(/\s|\n|\t/g," "),!1===n){if(-1===(p=r(t,_))){d(i.trim(t.slice(e,_))),n=!1,e=_+1;continue}_=p-1;continue}if(-1===(p=c(t,_-1))){d(n,l(i.trim(t.slice(e,_)))),n=!1,e=_+1;continue}}else;else{if(-1===(p=t.indexOf(v,_+1)))break;d(n,i.trim(t.slice(e+1,p))),n=!1,e=(_=p)+1}else n=t.slice(e,_),e=_+1}return e<t.length&&(!1===n?d(t.slice(e)):d(n,l(i.trim(t.slice(e))))),i.trim(a.join(" "))}},"./node_modules/xss/lib/util.js":function(t,s){t.exports={indexOf:function(t,s){var e,i;if(Array.prototype.indexOf)return t.indexOf(s);for(e=0,i=t.length;e<i;e++)if(t[e]===s)return e;return-1},forEach:function(t,s,e){var i,a;if(Array.prototype.forEach)return t.forEach(s,e);for(i=0,a=t.length;i<a;i++)s.call(e,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},spaceIndex:function(t){var s=/\s|\n|\t/.exec(t);return s?s.index:-1}}},"./node_modules/xss/lib/xss.js":function(t,s,e){var i=e("./node_modules/cssfilter/lib/index.js").FilterCSS,a=e("./node_modules/xss/lib/default.js"),n=e("./node_modules/xss/lib/parser.js"),o=n.parseTag,r=n.parseAttr,c=e("./node_modules/xss/lib/util.js");function l(t){return null==t}function u(t){(t=function(t){var s={};for(var e in t)s[e]=t[e];return s}(t||{})).stripIgnoreTag&&(t.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),t.onIgnoreTag=a.onIgnoreTagStripAll),t.whiteList=t.whiteList||a.whiteList,t.onTag=t.onTag||a.onTag,t.onTagAttr=t.onTagAttr||a.onTagAttr,t.onIgnoreTag=t.onIgnoreTag||a.onIgnoreTag,t.onIgnoreTagAttr=t.onIgnoreTagAttr||a.onIgnoreTagAttr,t.safeAttrValue=t.safeAttrValue||a.safeAttrValue,t.escapeHtml=t.escapeHtml||a.escapeHtml,this.options=t,!1===t.css?this.cssFilter=!1:(t.css=t.css||{},this.cssFilter=new i(t.css))}u.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var s=this.options,e=s.whiteList,i=s.onTag,n=s.onIgnoreTag,u=s.onTagAttr,d=s.onIgnoreTagAttr,_=s.safeAttrValue,p=s.escapeHtml,v=this.cssFilter;s.stripBlankChar&&(t=a.stripBlankChar(t)),s.allowCommentTag||(t=a.stripCommentTag(t));var h=!1;if(s.stripIgnoreTagBody){h=a.StripTagBody(s.stripIgnoreTagBody,n);n=h.onIgnoreTag}var f=o(t,(function(t,s,a,o,h){var f,m={sourcePosition:t,position:s,isClosing:h,isWhite:e.hasOwnProperty(a)};if(!l(f=i(a,o,m)))return f;if(m.isWhite){if(m.isClosing)return"</"+a+">";var g=function(t){var s=c.spaceIndex(t);if(-1===s)return{html:"",closing:"/"===t[t.length-2]};var e="/"===(t=c.trim(t.slice(s+1,-1)))[t.length-1];return e&&(t=c.trim(t.slice(0,-1))),{html:t,closing:e}}(o),b=e[a],y=r(g.html,(function(t,s){var e,i=-1!==c.indexOf(b,t);return l(e=u(a,t,s,i))?i?(s=_(a,t,s,v))?t+'="'+s+'"':t:l(e=d(a,t,s,i))?void 0:e:e}));o="<"+a;return y&&(o+=" "+y),g.closing&&(o+=" /"),o+=">"}return l(f=n(a,o,m))?p(o):f}),p);return h&&(f=h.remove(f)),f},t.exports=u},"./src/component/doc-link.vue":function(t,s,e){"use strict";var i={mixins:[e("./src/helper/base_hepler.js").a],name:"doc-link",props:["link"],data:function(){return{whitelabel:defender.whitelabel}}},a=e("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this.$createElement,s=this._self._c||t;return!1===this.whitelabel.hide_doc_link?s("div",{staticClass:"sui-actions-right"},[s("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:this.link,target:"_blank"}},[s("i",{staticClass:"sui-icon-academy"}),this._v(" "+this._s(this.__("View Documentation"))+"\n ")])]):this._e()}),[],!1,null,null,null);s.a=n.exports},"./src/component/footer.vue":function(t,s,e){"use strict";var i={data:function(){return{whitelabel:defender.whitelabel,is_free:defender.is_free}}},a=e("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",[!0===t.whitelabel.change_footer?e("div",{staticClass:"sui-footer"},[t._v("\n "+t._s(t.whitelabel.footer_text)+"\n ")]):e("div",{staticClass:"sui-footer"},[t._v("Made with "),e("i",{staticClass:"sui-icon-heart"}),t._v(" by WPMU DEV")]),t._v(" "),!1===t.whitelabel.hide_doc_link?e("div",[t.is_free?e("ul",{staticClass:"sui-footer-nav"},[t._m(0),t._v(" "),t._m(1),t._v(" "),t._m(2),t._v(" "),t._m(3),t._v(" "),t._m(4),t._v(" "),t._m(5),t._v(" "),t._m(6),t._v(" "),t._m(7)]):e("ul",{staticClass:"sui-footer-nav"},[t._m(8),t._v(" "),t._m(9),t._v(" "),t._m(10),t._v(" "),t._m(11),t._v(" "),t._m(12),t._v(" "),t._m(13),t._v(" "),t._m(14),t._v(" "),t._m(15)]),t._v(" "),t._m(16)]):t._e()])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://profiles.wordpress.org/wpmudev#content-plugins",target:"_blank"}},[this._v("Free\n Plugins")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/features/",target:"_blank"}},[this._v("Membership")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://wordpress.org/support/plugin/plugin-name",target:"_blank"}},[this._v("Support")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/projects/category/plugins/",target:"_blank"}},[this._v("Plugins")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/hub/support/",target:"_blank"}},[this._v("Support")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/hub/community/",target:"_blank"}},[this._v("Community")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("ul",{staticClass:"sui-footer-social"},[e("li",[e("a",{attrs:{href:"https://www.facebook.com/wpmudev",target:"_blank"}},[e("i",{staticClass:"sui-icon-social-facebook",attrs:{"aria-hidden":"true"}}),t._v(" "),e("span",{staticClass:"sui-screen-reader-text"},[t._v("Facebook")])])]),t._v(" "),e("li",[e("a",{attrs:{href:"https://twitter.com/wpmudev",target:"_blank"}},[e("i",{staticClass:"sui-icon-social-twitter",attrs:{"aria-hidden":"true"}})]),t._v(" "),e("span",{staticClass:"sui-screen-reader-text"},[t._v("Twitter")])]),t._v(" "),e("li",[e("a",{attrs:{href:"https://www.instagram.com/wpmu_dev/",target:"_blank"}},[e("i",{staticClass:"sui-icon-instagram",attrs:{"aria-hidden":"true"}}),t._v(" "),e("span",{staticClass:"sui-screen-reader-text"},[t._v("Instagram")])])])])}],!1,null,null,null);s.a=n.exports},"./src/component/overlay.vue":function(t,s,e){"use strict";var i={name:"overlay"},a=e("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this.$createElement;this._self._c;return this._m(0)}),[function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"wd-overlay"},[s("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])}],!1,null,null,null);s.a=n.exports},"./src/component/submit-button.vue":function(t,s,e){"use strict";var i={name:"submit-button",props:["id","state","text","css-class","type"],computed:{getClass:function(){return"sui-button "+this.cssClass}}},a=e("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("button",{staticClass:"sui-button",class:[t.getClass,{"sui-button-onload":t.state.on_saving}],attrs:{id:t.id,type:t.type,disabled:t.state.on_saving},on:{click:function(s){return t.$emit("click")}}},[e("span",{staticClass:"sui-loading-text"},[t._t("default")],2),t._v(" "),e("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])}),[],!1,null,null,null);s.a=n.exports},"./src/component/summary-box.vue":function(t,s,e){"use strict";var i={mixins:[e("./src/helper/base_hepler.js").a],props:["css-class"],name:"summary-box",data:function(){return{whitelabel:defender.whitelabel}},computed:{summary_class:function(){return{"sui-unbranded":!0===this.whitelabel.hide_branding&&0===this.whitelabel.hero_image.length,"sui-rebranded":!0===this.whitelabel.hide_branding&&this.whitelabel.hero_image.length>0}},css_class:function(){return this.cssClass},rebrand_img:function(){if(this.whitelabel.hero_image.length>0)return{"background-image":"url('"+this.whitelabel.hero_image+"')"}}}},a=e("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-box sui-summary",class:[this.summary_class,this.css_class],style:this.rebrand_img},[s("div",{staticClass:"sui-summary-image-space",attrs:{"aria-hidden":"true"}}),this._v(" "),this._t("default")],2)}),[],!1,null,null,null);s.a=n.exports},"./src/dashboard.js":function(t,s,e){"use strict";e.r(s);var i=e("vue"),a=e.n(i),n=e("./src/helper/base_hepler.js"),o={mixins:[n.a],name:"security-tweaks",data:function(){return{rules:dashboard.security_tweaks.rules,count:dashboard.security_tweaks.count.issues}},methods:{handleRedirect:function(t){window.location.href=this.adminUrl("admin.php?page=wdf-hardener#"+t.slug)}}},r=e("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),c=Object(r.a)(o,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box hardener-widget"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-wrench-tool",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Security Tweaks"))+"\n ")]),t._v(" "),t.count>0?e("div",{staticClass:"sui-actions-left"},[e("div",{staticClass:"sui-tag sui-tag-warning",domProps:{textContent:t._s(t.count)}})]):t._e()]),t._v(" "),e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("Defender checks for basic security tweaks you can make to enhance your website’s defense against hackers and bots."))+"\n ")]),t._v(" "),0===t.count?e("div",{staticClass:"sui-notice sui-notice-success"},[e("p",[t._v("\n "+t._s(t.__("You’ve actioned all of the recommended security tweaks."))+"\n ")])]):t._e()]),t._v(" "),t.count>0?e("div",{staticClass:"sui-accordion sui-accordion-flushed no-border-bottom"},t._l(t.rules,(function(s){return e("div",{staticClass:"sui-accordion-item sui-warning",on:{click:function(e){return t.handleRedirect(s)}}},[e("div",{staticClass:"sui-accordion-item-header"},[e("div",{staticClass:"sui-accordion-item-title"},[e("i",{staticClass:"sui-icon-warning-alert sui-warning",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(s.title)+"\n "),t._m(0,!0)])])])})),0):t._e(),t._v(" "),e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-actions-left"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:t.adminUrl("admin.php?page=wdf-hardener")}},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("View All"))+"\n ")])])])])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-actions-right"},[s("i",{staticClass:"sui-icon-chevron-right",attrs:{"aria-hidden":"true"}})])}],!1,null,null,null).exports,l={mixins:[n.a],name:"file-scanning",data:function(){return{scan:dashboard.scan.scan,state:{on_saving:!1,canceling:!1},nonces:dashboard.scan.nonces,endpoints:dashboard.scan.endpoints,polling_state:null,report:dashboard.scan.report}},methods:{newScan:function(){var t=this;this.httpPostRequest("newScan",{},(function(s){t.$nextTick((function(){t.scan={},t.scan.status=s.data.status,t.scan.percent=s.data.percent,t.scan.status_text=s.data.status_text,t.polling()}))}))},cancelScan:function(){if(!0!==this.state.canceling){this.abortAllRequests();var t=this;clearTimeout(this.polling_state),this.state.canceling=!0,this.httpPostRequest("cancelScan",{},(function(s){t.$nextTick((function(){t.scan=s.data.scan,t.state.canceling=!1,t.$emit("scanCanceled",t.scan)}))}))}},refreshStatus:function(){var t=this;this.httpPostRequest("processScan",{},(function(s){!1===s.success?(t.scan=s.data,t.polling()):(t.scan=s.data.scan,t.$emit("scanCompleted",t.scan,s.data.scan.count.total))}))},polling:function(){!1===this.state.canceling&&(this.polling_state=setTimeout(this.refreshStatus(),500))},resultIndicator:function(t){return t>0?'<span class="sui-tag sui-tag-error">'+t+"</span>":'<i aria-hidden="true" class="sui-icon-check-tick sui-success"></i>'}},computed:{statusText:function(){return this.scan.status_text},reportText:function(){if(!1!==this.report.enabled){var t=void 0;switch(parseInt(this.report.frequency)){case 1:t="daily";break;case 7:t="weekly";break;case 30:t="monthly"}return this.vsprintf(this.__("Automatic scans are running %s"),t)}},percent:function(){return this.scan.percent}},mounted:function(){null===this.scan||"process"!==this.scan.status&&"init"!==this.scan.status||this.polling()}},u=Object(r.a)(l,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-layers",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("File Scanning"))+"\n ")]),t._v(" "),null!==t.scan&&"finish"===t.scan.status?e("div",{staticClass:"sui-actions-left"},[null!==t.scan&&t.scan.count.total>0?e("span",{staticClass:"sui-tag sui-tag-error"},[t._v(t._s(t.scan.count.total))]):t._e()]):t._e()]),t._v(" "),e("div",{staticClass:"sui-box-body",class:{"no-padding-bottom":null!==t.scan&&"finish"===t.scan.status}},[e("p",[t._v("\n "+t._s(t.__("Scan your website for file changes, vulnerabilities and injected code and get notified about anything suspicious."))+"\n ")]),t._v(" "),null===t.scan?e("div",[e("submit-button",{attrs:{type:"button","css-class":"sui-button-blue",state:t.state},on:{click:t.newScan}},[t._v("\n "+t._s(t.__("Run scan"))+"\n ")])],1):"process"===t.scan.status||"init"===t.scan.status?e("div",[e("div",{staticClass:"sui-progress-block"},[e("div",{staticClass:"sui-progress"},[t._m(0),t._v(" "),e("span",{staticClass:"sui-progress-text"},[e("span",{domProps:{textContent:t._s(t.percent+"%")}})]),t._v(" "),e("div",{staticClass:"sui-progress-bar",attrs:{"aria-hidden":"true"}},[e("span",{style:{width:t.percent+"%"}})])]),t._v(" "),e("button",{staticClass:"sui-button-icon sui-tooltip",attrs:{type:"button",disabled:t.state.canceling,"data-tooltip":"Cancel"},on:{click:t.cancelScan}},[e("i",{staticClass:"sui-icon-close",attrs:{"aria-hidden":"true"}})])]),t._v(" "),e("div",{staticClass:"sui-progress-state"},[e("span",{domProps:{textContent:t._s(t.statusText)}})])]):e("div",{staticClass:"sui-field-list sui-flushed no-border"},[e("div",{staticClass:"sui-field-list-body"},[e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v("\n "+t._s(t.__("WordPress Core"))+"\n ")])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.resultIndicator(t.scan.count.core))}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v("\n "+t._s(t.__("Plugins & Themes"))+"\n ")])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.resultIndicator(t.scan.count.vuln))}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("Suspicious Code")))])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.resultIndicator(t.scan.count.content))}})])])])]),t._v(" "),null!==t.scan&&"finish"===t.scan.status?e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-actions-left"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:t.adminUrl("admin.php?page=wdf-scan")}},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("View Report"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-actions-right"},[e("p",{staticClass:"sui-p-small",domProps:{textContent:t._s(t.reportText)}})])]):t._e()])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("span",{staticClass:"sui-progress-icon",attrs:{"aria-hidden":"true"}},[s("i",{staticClass:"sui-icon-loader sui-loading"})])}],!1,null,null,null).exports,d={mixins:[n.a],name:"file-scanning",data:function(){return{scan:dashboard.scan.scan,state:{on_saving:!1,canceling:!1},nonces:dashboard.scan.nonces,endpoints:dashboard.scan.endpoints,polling_state:null,report:dashboard.scan.report}},methods:{newScan:function(){var t=this;this.httpPostRequest("newScan",{},(function(s){t.$nextTick((function(){t.scan={},t.scan.status=s.data.status,t.scan.percent=s.data.percent,t.scan.status_text=s.data.status_text,t.polling()}))}))},cancelScan:function(){if(!0!==this.state.canceling){this.abortAllRequests();var t=this;clearTimeout(this.polling_state),this.state.canceling=!0,this.httpPostRequest("cancelScan",{},(function(s){t.$nextTick((function(){t.scan=s.data.scan,t.state.canceling=!1}))}))}},refreshStatus:function(){var t=this;this.httpPostRequest("processScan",{},(function(s){!1===s.success?(t.scan=s.data,t.polling()):t.scan=s.data.scan}))},polling:function(){!1===this.state.canceling&&(this.polling_state=setTimeout(this.refreshStatus(),500))},resultIndicator:function(t){return t>0?'<span class="sui-tag sui-tag-error">'+t+"</span>":'<i aria-hidden="true" class="sui-icon-check-tick sui-success"></i>'}},computed:{statusText:function(){return this.scan.status_text},percent:function(){return this.scan.percent}},mounted:function(){null===this.scan||"process"!==this.scan.status&&"init"!==this.scan.status||this.polling()}},_=Object(r.a)(d,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-layers",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("File Scanning"))+"\n ")]),t._v(" "),null!==t.scan&&"finish"===t.scan.status?e("div",{staticClass:"sui-actions-left"},[t.scan.count.total>0?e("span",{staticClass:"sui-tag sui-tag-error"},[t._v(t._s(t.scan.count.total))]):t._e()]):t._e()]),t._v(" "),e("div",{staticClass:"sui-box-body",class:{"no-padding-bottom":null!==t.scan&&"finish"===t.scan.status}},[e("p",[t._v("\n "+t._s(t.__("Scan your website for file changes, vulnerabilities and injected code and get and get notified about anything suspicious."))+"\n ")]),t._v(" "),null===t.scan?e("div",[e("submit-button",{attrs:{type:"button","css-class":"sui-button-blue",state:t.state},on:{click:t.newScan}},[t._v("\n "+t._s(t.__("Run scan"))+"\n ")])],1):"process"===t.scan.status||"init"===t.scan.status?e("div",[e("div",{staticClass:"sui-progress-block"},[e("div",{staticClass:"sui-progress"},[t._m(0),t._v(" "),e("span",{staticClass:"sui-progress-text"},[e("span",{domProps:{textContent:t._s(t.percent+"%")}})]),t._v(" "),e("div",{staticClass:"sui-progress-bar",attrs:{"aria-hidden":"true"}},[e("span",{style:{width:t.percent+"%"}})])]),t._v(" "),e("button",{staticClass:"sui-button-icon sui-tooltip",attrs:{type:"button",disabled:t.state.canceling,"data-tooltip":"Cancel"},on:{click:t.cancelScan}},[e("i",{staticClass:"sui-icon-close",attrs:{"aria-hidden":"true"}})])]),t._v(" "),e("div",{staticClass:"sui-progress-state"},[e("span",{domProps:{textContent:t._s(t.statusText)}})])]):e("div",{staticClass:"sui-field-list sui-flushed no-border"},[e("div",{staticClass:"sui-field-list-body"},[e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v("\n "+t._s(t.__("WordPress Core"))+"\n ")])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.resultIndicator(t.scan.count.core))}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v("\n "+t._s(t.__("Plugins & Themes"))+"\n ")])]),t._v(" "),e("a",{staticClass:"sui-button sui-button-purple sui-tooltip",attrs:{href:t.campaign_url("defender_dash_filescan_pro_tag"),target:"_blank","data-tooltip":"Try Defender Pro free today"}},[t._v("\n "+t._s(t.__("Pro Feature"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("Suspicious Code")))])]),t._v(" "),e("a",{staticClass:"sui-button sui-button-purple sui-tooltip",attrs:{href:t.campaign_url("defender_dash_filescan_pro_tag"),target:"_blank","data-tooltip":"Try Defender Pro free today"}},[t._v("\n "+t._s(t.__("Pro Feature"))+"\n ")])])])])]),t._v(" "),null!==t.scan&&"finish"===t.scan.status?e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-actions-left"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:t.adminUrl("admin.php?page=wdf-scan")}},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("View Report"))+"\n ")])])]):t._e()])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("span",{staticClass:"sui-progress-icon",attrs:{"aria-hidden":"true"}},[s("i",{staticClass:"sui-icon-loader sui-loading"})])}],!1,null,null,null).exports,p={mixins:[n.a],name:"blacklist",data:function(){return{state:{on_saving:!1},status:"fetching",nonces:dashboard.blacklist.nonces,endpoints:dashboard.blacklist.endpoints}},methods:{toggle:function(){var t=this;this.httpGetRequest("toggleBlacklistWidget",{},(function(s){switch(parseInt(s.data.status)){case-1:t.status="new";break;case 0:t.status="blacklisted";break;case 1:t.status="good"}}))}},mounted:function(){var t=this;this.httpGetRequest("blacklistWidgetStatus",{},(function(s){switch(parseInt(s.data.status)){case-1:t.status="new";break;case 0:t.status="blacklisted";break;case 1:t.status="good"}}))}},v=Object(r.a)(p,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-target",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Blacklist Monitor"))+"\n ")]),t._v(" "),"blacklisted"===t.status||"good"===t.status?e("div",{staticClass:"sui-actions-right"},[e("label",{staticClass:"sui-toggle"},[e("input",{staticClass:"toggle-checkbox",attrs:{type:"checkbox",checked:"checked"},on:{click:t.toggle}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])]):t._e()]),t._v(" "),e("div",{staticClass:"sui-box-body"},[e("div",[t._v("\n "+t._s(t.__("Automatically check if you’re on Google’s blacklist every 6 hours. If something’swrong, we’ll let you know via email."))+"\n ")]),t._v(" "),"fetching"===t.status?e("div",{staticClass:"sui-notice sui-notice-info"},[e("p",[t._v("\n "+t._s(t.__("Fetching your domain info..."))+"\n ")])]):"new"===t.status?e("form",{staticClass:"margin-top-30",attrs:{method:"post"}},[e("submit-button",{attrs:{type:"button","css-class":"sui-button-blue",state:t.state},on:{click:function(s){return t.toggle(!0)}}},[t._v("\n "+t._s(t.__("Activate"))+"\n ")])],1):"blacklisted"===t.status?e("div",{staticClass:"sui-notice sui-notice-error"},[e("p",[t._v("\n "+t._s(t.__("Your domain is currently on Google’s blacklist. Check out the article below to find out how to fix up your domain."))+"\n ")])]):"good"===t.status?e("div",{staticClass:"sui-notice sui-notice-success"},[e("p",[t._v("\n "+t._s(t.__("Your domain is currently clean."))+"\n ")])]):t._e(),t._v(" "),"new"!==t.status?e("div",{staticClass:"sui-center-box no-padding-bottom"},[e("p",{staticClass:"sui-p-small"},[t._v("\n "+t._s(t.__("Want to know more about blacklisting?"))+" "),e("a",{attrs:{href:"https://premium.wpmudev.org/blog/get-off-googles-blacklist/"}},[t._v(t._s(t.__("Read this article.")))])])]):t._e()]),t._v(" "),e("overlay",{directives:[{name:"show",rawName:"v-show",value:!0===t.state.on_saving,expression:"state.on_saving===true"}]})],1)}),[],!1,null,null,null).exports,h={mixins:[n.a],name:"blacklist-free"},f=Object(r.a)(h,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-target",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Blacklist Monitor"))+"\n ")]),t._v(" "),e("div",{staticClass:"sui-actions-left"},[e("span",{staticClass:"sui-tag sui-tag-pro"},[t._v(t._s(t.__("Pro")))])])]),t._v(" "),e("div",{staticClass:"sui-box-body sui-upsell-items"},[e("div",{staticClass:"sui-box-settings-row no-margin-bottom no-padding-bottom"},[e("p",[t._v("\n "+t._s(t.__("Automatically check if you’re on Google’s blacklist every 6 hours. If something’s wrong, we’ll let you know via email."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-settings-row sui-upsell-row"},[e("img",{staticClass:"sui-image sui-upsell-image",attrs:{src:t.assetUrl("assets/img/dashboard-blacklist.svg")}}),t._v(" "),e("div",{staticClass:"sui-upsell-notice"},[e("p",[t._v("\n "+t._s(t.__("Defender will warn you if your site has been flagged as unsafe. Get blacklist Monitor as part of a WPMU DEV membership."))),e("br"),t._v(" "),e("a",{staticClass:"premium-button sui-button sui-button-purple",attrs:{target:"_blank",href:t.campaign_url("defender_dash_blacklist_upgrade_button")}},[t._v(t._s(t.__("Try Pro Free Today")))]),t._v(".\n ")])])])])])}),[],!1,null,null,null).exports,m={mixins:[n.a],name:"ip-lockout",data:function(){return{state:{on_saving:!1},nonces:dashboard.ip_lockout.nonces,endpoints:dashboard.ip_lockout.endpoints,summary:dashboard.ip_lockout.summary,notification:dashboard.ip_lockout.notification,enabled:dashboard.ip_lockout.enabled}},methods:{updateSettings:function(){var t=this;this.httpPostRequest("updateSettings",{data:JSON.stringify({login_protection:!0,detect_404:!0})},(function(){t.enabled=!0}))}},computed:{notificationText:function(){return this.notification?this.__("Lockout notifications are enabled"):this.__("Lockout notifications are disabled")}}},g=Object(r.a)(m,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box",attrs:{id:"ip-lockout"}},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-lock",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t"+t._s(t.__("IP Lockouts"))+"\n\t\t")])]),t._v(" "),e("div",{staticClass:"sui-box-body",class:{"no-padding-bottom":!0===t.enabled}},[e("p",[t._v("\n\t\t\t"+t._s(t.__("Protect to your login area and have Defender automatically lockout any suspicious behaviour."))+"\n\t\t")]),t._v(" "),!1===t.enabled?e("form",{attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.updateSettings(s)}}},[e("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue activate",state:t.state}},[t._v("\n\t\t\t\t"+t._s(t.__("Activate"))+"\n\t\t\t")])],1):e("div",{staticClass:"sui-field-list sui-flushed no-border"},[e("div",{staticClass:"sui-field-list-body"},[e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("Last lockout")))])]),t._v(" "),e("span",{domProps:{textContent:t._s(t.summary.lastLockout)}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("Login lockouts this week")))])]),t._v(" "),e("span",{domProps:{textContent:t._s(t.summary.ip.week)}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("404 lockouts this week")))])]),t._v(" "),e("span",{domProps:{textContent:t._s(t.summary.nf.week)}})])])])]),t._v(" "),!0===t.enabled?e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-actions-left"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:t.adminUrl("admin.php?page=wdf-ip-lockout&view=logs")}},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t"+t._s(t.__("View logs"))+"\n\t\t\t")])]),t._v(" "),e("div",{staticClass:"sui-actions-right"},[e("p",{staticClass:"sui-p-small",domProps:{textContent:t._s(t.notificationText)}})])]):t._e()])}),[],!1,null,null,null).exports,b={mixins:[n.a],name:"audit",data:function(){return{state:{on_saving:!1},nonces:dashboard.audit.nonces,endpoints:dashboard.audit.endpoints,enabled:dashboard.audit.enabled,report:dashboard.audit.report,summary:{monthCount:"-",dayCount:"-",weekCount:"n/a",lastEvent:"-"}}},methods:{updateSettings:function(){var t=this;this.httpPostRequest("updateSettings",{data:JSON.stringify({enabled:!0})},(function(){t.enabled=!0,t.$nextTick((function(){t.loadData()}))}))},loadData:function(){var t=this;this.httpGetRequest("summary",{},(function(s){t.summary=s.data}))}},computed:{reportText:function(){return this.report?this.__("Audit log reports are enabled"):this.__("Audit log reports are disabled")}},mounted:function(){!0===this.enabled&&this.loadData()}},y=Object(r.a)(b,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box",attrs:{id:"audit-logging"}},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Audit Logging"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-body",class:{"no-padding-bottom":t.enabled}},[e("p",[t._v("\n "+t._s(t.__("Track and log events when changes are made to your website, giving you full visibility over what's going on behind the scenes."))+"\n ")]),t._v(" "),!1===t.enabled?e("form",{attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.updateSettings(s)}}},[e("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue activate",state:t.state}},[t._v("\n "+t._s(t.__("Activate"))+"\n ")])],1):e("div",[e("div",{staticClass:"sui-notice"},[e("p",[t._v("\n "+t._s(t.summary.weekCount)+" "+t._s(t.__(" events logged in the past 7 days."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-field-list sui-flushed no-border"},[e("div",{staticClass:"sui-field-list-body"},[e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("Last event logged")))])]),t._v(" "),e("span",[t._v("\n "+t._s(t.summary.lastEvent)+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("Events logged this month")))])]),t._v(" "),e("span",[t._v(t._s(t.summary.monthCount))])])])])])]),t._v(" "),!0===t.enabled?e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-actions-left"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:t.adminUrl("admin.php?page=wdf-logging")}},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("View Logs"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-actions-right"},[e("p",{staticClass:"sui-p-small",domProps:{textContent:t._s(t.reportText)}})])]):t._e(),t._v(" "),t.state.on_saving?e("overlay"):t._e()],1)}),[],!1,null,null,null).exports,C={mixins:[n.a],name:"audit-free"},k=Object(r.a)(C,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Audit Logging"))+"\n ")]),t._v(" "),e("div",{staticClass:"sui-actions-left"},[e("span",{staticClass:"sui-tag sui-tag-pro"},[t._v(t._s(t.__("Pro")))])])]),t._v(" "),e("div",{staticClass:"sui-box-body sui-upsell-items"},[e("div",{staticClass:"sui-box-settings-row no-margin-bottom no-padding-bottom"},[e("p",[t._v("\n "+t._s(t.__("Track and log events when changes are made to your website giving you full visibility of what's going on behind the scenes."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-settings-row sui-upsell-row"},[e("img",{staticClass:"sui-image sui-upsell-image",attrs:{src:t.assetUrl("assets/img/audit-presale.svg")}}),t._v(" "),e("div",{staticClass:"sui-upsell-notice"},[e("p",[t._v("\n "+t._s(t.__("Get an automatic report about the changes made on your website with Audit Logging. Get Audit Logging as part of a WPMU DEV membership."))),e("br"),t._v(" "),e("a",{staticClass:"premium-button sui-button sui-button-purple",attrs:{target:"_blank",href:t.campaign_url("defender_dash_auditlogging_upsell_link")}},[t._v(t._s(t.__("Try Pro Free Today")))])])])])])])}),[],!1,null,null,null).exports,w={mixins:[n.a],name:"report",data:function(){return{scan:dashboard.report.scan,ip_lockout:dashboard.report.ip_lockout,audit:dashboard.report.audit}},methods:{statusText:function(t){if(-1===t)return'<span class="sui-tag sui-tag-disabled">'+this.__("Inactive")+"</span>";var s=void 0;switch(parseInt(t)){case 1:s=this.__("Daily");break;case 7:s=this.__("Weekly");break;case 30:s=this.__("Monthly")}return'<span class="sui-tag sui-tag-blue">'+s+"</span>"}}},x=Object(r.a)(w,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-graph-line",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Reporting"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-body no-padding-bottom"},[e("p",[t._v(t._s(t.__("Get tailored security reports delivered to your inbox so you don't have to worry about checking in.")))]),t._v(" "),e("div",{staticClass:"sui-field-list sui-flushed no-border"},[e("div",{staticClass:"sui-field-list-body"},[e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("small",[e("strong",[t._v(t._s(t.__("File Scanning")))])])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.statusText(t.scan))}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("small",[e("strong",[t._v(t._s(t.__("IP Lockouts")))])])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.statusText(t.ip_lockout))}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("small",[e("strong",[t._v(t._s(t.__("Audit Logging")))])])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.statusText(t.audit))}})])])])]),t._v(" "),e("div",{staticClass:"sui-box-footer"},[e("p",{staticClass:"sui-p-small text-center"},[t._v("\n "+t._s(t.__("You can also"))+" "),e("a",{attrs:{target:"_blank",href:"https://premium.wpmudev.org/reports/"}},[t._v(t._s(t.__("create PDF reports")))]),t._v(" "+t._s(t.__("to send to your clients via The Hub."))+"\n ")])])])}),[],!1,null,null,null).exports,S={mixins:[n.a],name:"report",data:function(){return{scan:dashboard.report.scan,ip_lockout:dashboard.report.ip_lockout,audit:dashboard.report.audit}},methods:{statusText:function(t){if(-1===t)return'<span class="sui-tag sui-tag-disabled">'+this.__("Inactive")+"</span>";var s=void 0;switch(parseInt(t)){case 1:s=this.__("Daily");break;case 7:s=this.__("Weekly");break;case 30:s=this.__("Monthly")}return'<span class="sui-tag sui-tag-blue">'+s+"</span>"}}},A=Object(r.a)(S,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-graph-line",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Reporting"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-body sui-upsell-items"},[e("div",{staticClass:"sui-box-settings-row no-padding-bottom"},[e("p",[t._v(t._s(t.__("Get tailored security reports delivered to your inbox so you don't have to worry about checking in.")))])]),t._v(" "),e("div",{staticClass:"sui-field-list no-border"},[e("div",{staticClass:"sui-field-list-body"},[e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("small",[e("strong",[t._v(t._s(t.__("File Scanning")))])])]),t._v(" "),e("span",{staticClass:"sui-tag sui-tag-disabled"},[t._v(t._s(t.__("Inactive")))])]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("small",[e("strong",[t._v(t._s(t.__("IP Lockouts")))])])]),t._v(" "),e("span",{staticClass:"sui-tag sui-tag-disabled"},[t._v(t._s(t.__("Inactive")))])]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("small",[e("strong",[t._v(t._s(t.__("Audit Logging")))])])]),t._v(" "),e("span",{staticClass:"sui-tag sui-tag-disabled"},[t._v(t._s(t.__("Inactive")))])])])]),t._v(" "),e("div",{staticClass:"sui-box-settings-row sui-upsell-row"},[e("img",{staticClass:"sui-image sui-upsell-image",attrs:{src:t.assetUrl("/assets/img/dev-man-pre.svg")}}),t._v(" "),e("div",{staticClass:"sui-upsell-notice"},[e("p",[t._v("\n "+t._s(t.__("Schedule automatic reports and recieve directly to your inbox. Get reporting as part of a WPMU DEV membership."))),e("br"),t._v(" "),e("a",{staticClass:"premium-button sui-button sui-button-purple",attrs:{target:"_blank",href:t.campaign_url("defender_dash_reports_upsell_link")}},[t._v(t._s(t.__("Try Pro Free Today")))])])])])])])}),[],!1,null,null,null).exports,j={mixins:[n.a],name:"advanced-tools",data:function(){return{state:{on_saving:!1},nonces:dashboard.advanced_tools.nonces,endpoints:dashboard.advanced_tools.endpoints,two_factor:dashboard.advanced_tools.two_factors,mask_login:dashboard.advanced_tools.mask_login}},methods:{updateSettings:function(t){var s=this;this.httpPostRequest("updateSettings",{data:JSON.stringify({settings:{enabled:!0},module:t})},(function(){"auth"===t?s.two_factor.enabled=!0:s.mask_login.enabled=!0}))}}},P=Object(r.a)(j,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box advanced-tools"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-wand-magic",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Advanced Tools"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-body no-padding-bottom"},[e("p",[t._v("\n "+t._s(t.__("Enable advanced tools for enhanced protection against even the most aggressive of hackers and bots."))+"\n ")])]),t._v(" "),e("hr"),t._v(" "),e("table",{staticClass:"sui-table sui-table-flushed margin-top-30"},[e("tbody",[e("tr",[e("td",[e("small",[e("strong",[t._v(t._s(t.__("Two-Factor Authentication")))])]),t._v(" "),e("br"),t._v(" "),e("small",[t._v("\n "+t._s(t.__("Add an extra layer of security to your WordPress account to ensure that you're the only person who can log in, even if someone else knows your password."))+"\n ")]),t._v(" "),!1===t.two_factor.enabled?e("form",{staticClass:"margin-top-10 margin-bottom-10",attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.updateSettings("auth")}}},[e("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue",state:t.state}},[t._v("\n "+t._s(t.__("Activate"))+"\n ")])],1):!1===t.two_factor.useable?e("div",{staticClass:"sui-notice sui-notice-warning margin-bottom-30 margin-top-10"},[e("p",[t._v("\n "+t._s(t.__("Two-factor authentication is currently inactive. Configure and save your settings to finish setup."))+"\n "),e("br"),t._v(" "),e("a",{staticClass:"sui-button margin-top-10",attrs:{href:t.adminUrl("admin.php?page=wdf-advanced-tools")}},[t._v("\n "+t._s(t.__("Finish Setup"))+"\n ")])])]):!0===t.two_factor.useable?e("div",{staticClass:"sui-notice sui-notice-success margin-top-10 margin-bottom-30"},[e("p",[t._v("\n "+t._s(t.__("Two-factor authentication is now active. User roles with this feature enabled must visit their Profile page to complete setup and sync their account with the Authenticator app."))+"\n ")])]):t._e(),t._v(" "),!0===t.two_factor.useable?e("small",[t._v(t._s(t.__("Note: Each user on your website must individually enable two-factor authentication via their user profile in order to enable and use this security feature.")))]):t._e()])]),t._v(" "),e("tr",[e("td",[e("small",{staticClass:"margin-top-30"},[e("strong",[t._v(t._s(t.__("Mask Login Area")))])]),t._v(" "),e("br"),t._v(" "),e("small",[t._v("\n "+t._s(t.__("Change the location of WordPress's default login area."))+"\n ")]),t._v(" "),!1===t.mask_login.enabled?e("form",{staticClass:"margin-top-10 margin-bottom-30",attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.updateSettings("mask-login")}}},[e("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue",state:t.state}},[t._v("\n "+t._s(t.__("Activate"))+"\n ")])],1):!1===t.mask_login.useable?e("div",{staticClass:"sui-notice sui-notice-warning margin-bottom-30 margin-top-10"},[e("p",[t._v("\n "+t._s(t.__("Masking is currently inactive. Choose your URL and save your settings to finish setup."))+"\n "),e("br"),t._v(" "),e("a",{staticClass:"sui-button margin-top-10",attrs:{href:t.adminUrl("admin.php?page=wdf-advanced-tools&view=mask-login")}},[t._v("\n "+t._s(t.__("Finish Setup"))+"\n ")])])]):!0===t.mask_login.useable?e("div",{staticClass:"sui-notice sui-notice-success margin-top-10 margin-bottom-30"},[e("p",[t._v("\n "+t._s(t.__("Masking is currently active at "))+" "),e("a",{attrs:{target:"_blank",href:t.mask_login.login_url}},[t._v(t._s(t.mask_login.login_url))])])]):t._e()])])])])])}),[],!1,null,null,null).exports,T={mixins:[n.a],name:"quick-setup",data:function(){return{state:{on_saving:!1},model:{activate_scan:!0,activate_audit:!0,activate_lockout:!0,activate_blacklist:!0},status:"normal",nonces:dashboard.quick_setup.nonces,endpoints:dashboard.quick_setup.endpoints}},methods:{activate:function(){this.httpPostRequest("activate",this.model,(function(t){window.location.reload()}))},skip:function(){this.httpPostRequest("skip",this.model,(function(t){SUI.dialogs.activator.hide()}))}},mounted:function(){document.onreadystatechange=function(){"complete"===document.readyState&&void 0!==SUI.dialogs.activator&&SUI.dialogs.activator.show()}}},I=Object(r.a)(T,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-dialog",attrs:{"aria-hidden":"true",tabindex:"-1",id:"activator"}},[e("div",{staticClass:"sui-dialog-overlay",attrs:{"data-a11y-dialog-hide":""}}),t._v(" "),e("div",{staticClass:"sui-dialog-content",attrs:{"aria-labelledby":"Quick setup","aria-describedby":"",role:"dialog"}},["normal"===t.status?e("div",{staticClass:"sui-box",attrs:{role:"document"}},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[t._v("\n "+t._s(t.__("Quick Setup"))+"\n ")]),t._v(" "),e("div",{staticClass:"sui-actions-right"},[e("form",{attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.skip(s)}}},[e("submit-button",{staticClass:"sui-button-ghost quicksetup-skip",attrs:{type:"submit",state:t.state}},[t._v("\n "+t._s(t.__("Skip"))+"\n ")])],1)])]),t._v(" "),e("form",{attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.activate(s)}}},[e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("Welcome to Defender, the hottest security plugin for WordPress! Let’s quickly set up the basics for you, then you can fine tweak each setting as you go – our recommendations are on by default."))+"\n ")]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-10"},[e("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Automatic File Scans & Reporting"))+"\n ")]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Scan your website for file changes, vulnerabilities and injected code and get notified about anything suspicious."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-2"},[e("div",{staticClass:"sui-form-field tr"},[e("label",{staticClass:"sui-toggle"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.model.activate_scan,expression:"model.activate_scan"}],staticClass:"toggle-checkbox",attrs:{type:"checkbox",name:"activator[]",checked:"",id:"active_scan",value:"activate_scan"},domProps:{checked:Array.isArray(t.model.activate_scan)?t._i(t.model.activate_scan,"activate_scan")>-1:t.model.activate_scan},on:{change:function(s){var e=t.model.activate_scan,i=s.target,a=!!i.checked;if(Array.isArray(e)){var n="activate_scan",o=t._i(e,n);i.checked?o<0&&t.$set(t.model,"activate_scan",e.concat([n])):o>-1&&t.$set(t.model,"activate_scan",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.model,"activate_scan",a)}}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])])])]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-10"},[e("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Audit Logging"))+"\n ")]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Track and log events when changes are made to your website giving you full visibility of what’s going on behind the scenes."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-2"},[e("div",{staticClass:"sui-form-field tr"},[e("label",{staticClass:"sui-toggle"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.model.activate_audit,expression:"model.activate_audit"}],staticClass:"toggle-checkbox",attrs:{type:"checkbox",name:"activator[]",checked:"",id:"active_audit",value:"activate_audit"},domProps:{checked:Array.isArray(t.model.activate_audit)?t._i(t.model.activate_audit,"activate_audit")>-1:t.model.activate_audit},on:{change:function(s){var e=t.model.activate_audit,i=s.target,a=!!i.checked;if(Array.isArray(e)){var n="activate_audit",o=t._i(e,n);i.checked?o<0&&t.$set(t.model,"activate_audit",e.concat([n])):o>-1&&t.$set(t.model,"activate_audit",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.model,"activate_audit",a)}}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])])])]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-10"},[e("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("IP Lockouts"))+"\n ")]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Protect your login area and have Defender automatically lockout any suspicious behaviour."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-2"},[e("div",{staticClass:"sui-form-field tr"},[e("label",{staticClass:"sui-toggle"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.model.activate_lockout,expression:"model.activate_lockout"}],staticClass:"toggle-checkbox",attrs:{type:"checkbox",checked:"",name:"activator[]",id:"activate_lockout",value:"activate_lockout"},domProps:{checked:Array.isArray(t.model.activate_lockout)?t._i(t.model.activate_lockout,"activate_lockout")>-1:t.model.activate_lockout},on:{change:function(s){var e=t.model.activate_lockout,i=s.target,a=!!i.checked;if(Array.isArray(e)){var n="activate_lockout",o=t._i(e,n);i.checked?o<0&&t.$set(t.model,"activate_lockout",e.concat([n])):o>-1&&t.$set(t.model,"activate_lockout",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.model,"activate_lockout",a)}}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])])])]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-10"},[e("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Blacklist Monitor"))+"\n ")]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Automatically check if you’re on Google’s blacklist every 6 hours. If something’s wrong, we’ll let you know via email."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-2"},[e("div",{staticClass:"sui-form-field tr"},[e("label",{staticClass:"sui-toggle"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.model.activate_blacklist,expression:"model.activate_blacklist"}],staticClass:"toggle-checkbox",attrs:{type:"checkbox",checked:"",name:"activator[]",id:"activate_blacklist",value:"activate_blacklist"},domProps:{checked:Array.isArray(t.model.activate_blacklist)?t._i(t.model.activate_blacklist,"activate_blacklist")>-1:t.model.activate_blacklist},on:{change:function(s){var e=t.model.activate_blacklist,i=s.target,a=!!i.checked;if(Array.isArray(e)){var n="activate_blacklist",o=t._i(e,n);i.checked?o<0&&t.$set(t.model,"activate_blacklist",e.concat([n])):o>-1&&t.$set(t.model,"activate_blacklist",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.model,"activate_blacklist",a)}}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])])])])]),t._v(" "),e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-9"},[e("small",[t._v("\n "+t._s(t.__("Note: These services will be configured with our recommended settings. You can change these at any time."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-3"},[e("submit-button",{staticClass:"sui-button sui-button-blue quicksetup-apply",attrs:{type:"submit",state:t.state}},[t._v("\n "+t._s(t.__("Get Started"))+"\n ")])],1)])])]),t._v(" "),t.maybeHideBranding?e("img",{staticClass:"sui-image sui-image-center",attrs:{src:t.assetUrl("/assets/img/defender-activator.svg")}}):t._e()]):e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("Just a moment while Defender activates those services for you.."))+"\n ")]),t._v(" "),t._m(0),t._v(" "),t._m(1)])])])])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-progress-block"},[s("div",{staticClass:"sui-progress"},[s("div",{staticClass:"sui-progress-text scan-progress-text sui-icon-loader sui-loading"},[s("span",[this._v("0%")])]),this._v(" "),s("div",{staticClass:"sui-progress-bar scan-progress-bar"},[s("span",{staticStyle:{width:"0%"}})])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-progress-state"},[s("span",{staticClass:"status-text"})])}],!1,null,null,null).exports,E={mixins:[n.a],name:"quick-setup",data:function(){return{state:{on_saving:!1},model:{activate_scan:!0,activate_lockout:!0},status:"normal",nonces:dashboard.quick_setup.nonces,endpoints:dashboard.quick_setup.endpoints}},methods:{activate:function(){this.httpPostRequest("activate",this.model,(function(t){window.location.reload()}))},skip:function(){this.httpPostRequest("skip",this.model,(function(t){SUI.dialogs.activator.hide()}))}},mounted:function(){document.onreadystatechange=function(){"complete"===document.readyState&&void 0!==SUI.dialogs.activator&&SUI.dialogs.activator.show()}}},$=Object(r.a)(E,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-dialog",attrs:{"aria-hidden":"true",tabindex:"-1",id:"activator"}},[e("div",{staticClass:"sui-dialog-overlay",attrs:{"data-a11y-dialog-hide":""}}),t._v(" "),e("div",{staticClass:"sui-dialog-content",attrs:{"aria-labelledby":"Quick setup","aria-describedby":"",role:"dialog"}},["normal"===t.status?e("div",{staticClass:"sui-box",attrs:{role:"document"}},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[t._v("\n "+t._s(t.__("Quick Setup"))+"\n ")]),t._v(" "),e("div",{staticClass:"sui-actions-right"},[e("form",{attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.skip(s)}}},[e("submit-button",{staticClass:"sui-button-ghost",attrs:{type:"submit",state:t.state}},[t._v("\n "+t._s(t.__("Skip"))+"\n ")])],1)])]),t._v(" "),e("form",{attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.activate(s)}}},[e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("Welcome to Defender, the hottest security plugin for WordPress! Let’s quickly set up the basics for you, then you can fine tweak each setting as you go – our recommendations are on by default."))+"\n ")]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-10"},[e("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("File Scanning"))+"\n ")]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Scan your website for file changes, vulnerabilities and injected code and get notified about anything suspicious."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-2"},[e("div",{staticClass:"sui-form-field tr"},[e("label",{staticClass:"sui-toggle"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.model.activate_scan,expression:"model.activate_scan"}],staticClass:"toggle-checkbox",attrs:{type:"checkbox",name:"activator[]",checked:"",id:"active_scan",value:"activate_scan"},domProps:{checked:Array.isArray(t.model.activate_scan)?t._i(t.model.activate_scan,"activate_scan")>-1:t.model.activate_scan},on:{change:function(s){var e=t.model.activate_scan,i=s.target,a=!!i.checked;if(Array.isArray(e)){var n="activate_scan",o=t._i(e,n);i.checked?o<0&&t.$set(t.model,"activate_scan",e.concat([n])):o>-1&&t.$set(t.model,"activate_scan",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.model,"activate_scan",a)}}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])])])]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-10"},[e("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("IP Lockouts"))+"\n ")]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Protect your login area and have Defender automatically lockout any suspicious behaviour."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-2"},[e("div",{staticClass:"sui-form-field tr"},[e("label",{staticClass:"sui-toggle"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.model.activate_lockout,expression:"model.activate_lockout"}],staticClass:"toggle-checkbox",attrs:{type:"checkbox",checked:"",name:"activator[]",id:"activate_lockout",value:"activate_lockout"},domProps:{checked:Array.isArray(t.model.activate_lockout)?t._i(t.model.activate_lockout,"activate_lockout")>-1:t.model.activate_lockout},on:{change:function(s){var e=t.model.activate_lockout,i=s.target,a=!!i.checked;if(Array.isArray(e)){var n="activate_lockout",o=t._i(e,n);i.checked?o<0&&t.$set(t.model,"activate_lockout",e.concat([n])):o>-1&&t.$set(t.model,"activate_lockout",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.model,"activate_lockout",a)}}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])])])])]),t._v(" "),e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-9"},[e("small",[t._v("\n "+t._s(t.__("Note: These services will be configured with our recommended settings. You can change these at any time."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-3"},[e("submit-button",{staticClass:"sui-button sui-button-blue",attrs:{type:"submit",state:t.state}},[t._v("\n "+t._s(t.__("Get Started"))+"\n ")])],1)])])]),t._v(" "),t.maybeHideBranding?e("img",{staticClass:"sui-image sui-image-center",attrs:{src:t.assetUrl("/assets/img/defender-activator.svg")}}):t._e()]):e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("Just a moment while Defender activates those services for you.."))+"\n ")]),t._v(" "),t._m(0),t._v(" "),t._m(1)])])])])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-progress-block"},[s("div",{staticClass:"sui-progress"},[s("div",{staticClass:"sui-progress-text scan-progress-text sui-icon-loader sui-loading"},[s("span",[this._v("0%")])]),this._v(" "),s("div",{staticClass:"sui-progress-bar scan-progress-bar"},[s("span",{staticStyle:{width:"0%"}})])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-progress-state"},[s("span",{staticClass:"status-text"})])}],!1,null,null,null).exports,O={mixins:[n.a],name:"cross-sale"},D=Object(r.a)(O,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("section",[e("div",{staticClass:"sui-row",attrs:{id:"sui-cross-sell-footer"}},[t._m(0),t._v(" "),e("h3",[t._v(t._s(t.__("Check out our other free wordpress.org plugins!")))])]),t._v(" "),e("div",{staticClass:"sui-row sui-cross-sell-modules"},[e("div",{staticClass:"sui-col-md-4"},[t._m(1),t._v(" "),e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-body"},[e("h3",[t._v(t._s(t.__("Smush Image Compression and Optimization")))]),t._v(" "),e("p",[t._v(t._s(t.__("Resize, optimize and compress all of your images with the incredibly powerful and award-winning, 100% free WordPress image optimizer.")))]),t._v(" "),e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:"https://wordpress.org/plugins/wp-smushit/",target:"_blank"}},[t._v("\n "+t._s(t.__("View features"))+" "),e("i",{staticClass:"sui-icon-arrow-right",attrs:{"aria-hidden":"true"}})])])])]),t._v(" "),e("div",{staticClass:"sui-col-md-4"},[t._m(2),t._v(" "),e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-body"},[e("h3",[t._v(t._s(t.__("Hummingbird Page Speed Optimization")))]),t._v(" "),e("p",[t._v(t._s(t.__("Performance Tests, File Optimization & Compression, Page, Browser & Gravatar Caching, GZIP Compression, CloudFlare Integration & more.")))]),t._v(" "),e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:"https://wordpress.org/plugins/hummingbird-performance/",target:"_blank"}},[t._v("\n "+t._s(t.__("View features"))+" "),e("i",{staticClass:"sui-icon-arrow-right",attrs:{"aria-hidden":"true"}})])])])]),t._v(" "),e("div",{staticClass:"sui-col-md-4"},[t._m(3),t._v(" "),e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-body"},[e("h3",[t._v(t._s(t.__("SmartCrawl Search Engine Optimization")))]),t._v(" "),e("p",[t._v(t._s(t.__("Customize Titles & Meta Data, OpenGraph, Twitter & Pinterest Support, Auto-Keyword Linking, SEO & Readability Analysis, Sitemaps, URL Crawler & more.")))]),t._v(" "),e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:"https://wordpress.org/plugins/smartcrawl-seo/",target:"_blank"}},[t._v("\n "+t._s(t.__("View features"))+" "),e("i",{staticClass:"sui-icon-arrow-right",attrs:{"aria-hidden":"true"}})])])])])]),t._v(" "),e("div",{staticClass:"sui-cross-sell-bottom"},[e("h3",[t._v(t._s(t.__("WPMU DEV - Your All-in-One WordPress Platform")))]),t._v(" "),e("p",[t._v(t._s(t.__("Pretty much everything you need for developing and managing WordPress based websites, and then some")))]),t._v(" "),e("a",{staticClass:"sui-button sui-button-green",attrs:{href:"https://premium.wpmudev.org/?utm_source=defender&utm_medium=plugin&utm_campaign=defender_dash_footer_upsell_notice",target:"_blank",role:"button"}},[t._v(t._s(t.__("Learn more"))+"\n ")]),t._v(" "),e("img",{staticClass:"sui-image",attrs:{src:t.assetUrl("assets/img/dev-team.png"),srcset:t.assetUrl("assets/img/dev-team@2x.png 2x"),"aria-hidden":"true"}})])])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("div",[s("span",{staticClass:"sui-icon-plugin-2"})])},function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-cross-1",attrs:{"aria-hidden":"true"}},[s("span")])},function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-cross-2",attrs:{"aria-hidden":"true"}},[s("span")])},function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-cross-3",attrs:{"aria-hidden":"true"}},[s("span")])}],!1,null,null,null).exports,R={mixins:[n.a],name:"dashboard",data:function(){return{quick_setup:parseInt(dashboard.quick_setup.show),is_free:parseInt(defender.is_free),security_tweaks:{count:{issues:dashboard.security_tweaks.count.issues,resolved:dashboard.security_tweaks.count.resolved,total:dashboard.security_tweaks.count.total}},scan:{count:0,scan:dashboard.scan.scan},ip_lockout:{last_lockout:dashboard.ip_lockout.summary.lastLockout},nonces:dashboard.scan.nonces,endpoints:dashboard.scan.endpoints,state:{on_saving:!1}}},components:{"security-tweaks":c,"file-scanning":u,"file-scanning-free":_,blacklist:v,"blacklist-free":f,"ip-lockout":g,audit:y,"audit-free":k,report:x,"report-free":A,"advanced-tools":P,"quick-setup":I,"quick-setup-free":$,"cross-sale":D},methods:{countScanIssues:function(){var t=dashboard.scan.scan;return null===t||"init"===t.status||"progress"===t.status?0:t.count.total},newScan:function(){var t=this;this.httpPostRequest("newScan",{},(function(s){t.$nextTick((function(){var e=t.$refs["file-scanning"];e.scan={},t.scan.scan={},t.scan.scan.status=s.data.status,e.scan.status=s.data.status,e.scan.percent=s.data.percent,e.scan.status_text=s.data.status_text,e.polling()}))}))},scanCanceled:function(t){this.scan.scan=t},scanCompleted:function(t,s){this.scan.count=s,this.scan.scan=t}},computed:{tooltips:function(){var t=this.__("You don't have any outstanding security issues, nice work!");return 1===this.security_tweaks.count.issues&&0===this.scan.count?t=this.__("You have one security tweak left to do. We recommend you action it, or ignore it if it's irrelevant."):0===this.security_tweaks.count.issues&&1===this.scan.count?t=this.__("We've detected a potential security risk in your file system. We recommend you take a look and action a fix, or ignore the file if it's harmless."):1===this.security_tweaks.count.issues&&1===this.scan.count?t=this.__("You have one security tweak left to do, and one potential security risk in your file system. We recommend you take a look and action fixes, or ignore the issues if they are harmless."):1===this.security_tweaks.count.issues&&this.scan.count>1?t=this.vsprintf(this.__("You have one security tweak left to do, and %s potential security risks in your file system. We recommend you take a look and action fixes, or ignore the issues if they are harmless"),this.scan.count):this.security_tweaks.count.issues>1&&1===this.scan.count?t=this.vsprintf(this.__("You have %s security tweaks left to do, and one potential security risk in your file system. We recommend you take a look and action fixes, or ignore the issues if they are harmless."),this.security_tweaks.count.issues):this.security_tweaks.count.issues>1&&this.scan.count>1?t=this.vsprintf(this.__("You have %s security tweaks left to do, and %s potential security risks in your file system. We recommend you take a look and action fixes, or ignore the issues if they are harmless."),this.security_tweaks.count.issues,this.scan.count):this.security_tweaks.count.issues>1&&0===this.scan.count?t=this.vsprintf(this.__("You have %d security tweaks left to do. We recommend you action it, or ignore it if it's irrelevant."),this.security_tweaks.count.issues):0===this.security_tweaks.count.issues&&this.scan.count>1&&(t=this.vsprintf(this.__("We've detected %d potential security risks in your file system. We recommend you take a look and action a fix, or ignore the file if it's harmless."),this.scan.count)),t},securityTweaksIndicator:function(){return this.security_tweaks.count.resolved+"/"+this.security_tweaks.count.total},countTotalIssues:function(){return this.scan.count+this.security_tweaks.count.issues}},mounted:function(){var t=this;this.$nextTick((function(){t.scan.count=t.countScanIssues()}))}},q=Object(r.a)(R,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-wrap",class:t.maybeHighContrast()},[e("div",{staticClass:"defender-dashboard"},[e("div",{staticClass:"sui-header"},[e("h1",{staticClass:"sui-header-title"},[t._v(t._s(t.__("Dashboard")))]),t._v(" "),e("div",{staticClass:"sui-actions-right"},[e("doc-link",{attrs:{link:"https://premium.wpmudev.org/docs/wpmu-dev-plugins/defender"}})],1)]),t._v(" "),e("summary-box",[e("div",{staticClass:"sui-summary-segment"},[e("div",{staticClass:"sui-summary-details"},[e("span",{staticClass:"sui-summary-large",domProps:{textContent:t._s(t.countTotalIssues)}}),t._v(" "),e("span",{staticClass:"sui-tooltip sui-tooltip-top-left sui-tooltip-constrained",attrs:{"data-tooltip":t.tooltips}},[0===this.security_tweaks.count.issues&&0===this.scan.count?e("i",{staticClass:"sui-icon-check-tick sui-success",attrs:{"aria-hidden":"true"}}):e("i",{staticClass:"sui-icon-info sui-warning",attrs:{"aria-hidden":"true"}})]),t._v(" "),e("span",{staticClass:"sui-summary-sub"},[t._v(t._s(t.__("Security Issue")))])])]),t._v(" "),e("div",{staticClass:"sui-summary-segment"},[e("ul",{staticClass:"sui-list"},[e("li",[e("span",{staticClass:"sui-list-label"},[t._v(t._s(t.__("Security Tweaks Actioned")))]),t._v(" "),e("span",{staticClass:"sui-list-detail",domProps:{textContent:t._s(t.securityTweaksIndicator)}})]),t._v(" "),e("li",[e("span",{staticClass:"sui-list-label"},[t._v(t._s(t.__("File Scan Issues")))]),t._v(" "),e("span",{staticClass:"sui-list-detail"},[null===t.scan.scan?e("submit-button",{attrs:{type:"button","css-class":"sui-button-blue",state:t.state},on:{click:t.newScan}},[t._v("\n "+t._s(t.__("New Scan"))+"\n ")]):"init"===t.scan.scan.status||"progress"===t.scan.scan.status?e("i",{staticClass:"sui-icon-loader sui-loading"}):0===t.scan.count?e("i",{staticClass:"sui-icon-check-tick sui-success"}):e("span",{staticClass:"sui-tag sui-tag-error"},[t._v(t._s(t.scan.count))])],1)]),t._v(" "),e("li",[e("span",{staticClass:"sui-list-label"},[t._v(t._s(t.__("Last Lockout")))]),t._v(" "),e("span",{staticClass:"sui-list-detail"},[t._v(t._s(t.ip_lockout.last_lockout))])])])])]),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-6"},[e("security-tweaks"),t._v(" "),0===t.is_free?e("blacklist"):1===t.is_free?e("blacklist-free"):t._e(),t._v(" "),e("advanced-tools")],1),t._v(" "),e("div",{staticClass:"sui-col-md-6"},[0===t.is_free?e("file-scanning",{ref:"file-scanning",on:{scanCanceled:t.scanCanceled,scanCompleted:t.scanCompleted}}):1===t.is_free?e("file-scanning-free",{ref:"file-scanning",attrs:{scanCompleted:"scanCompleted"},on:{scanCanceled:t.scanCanceled}}):t._e(),t._v(" "),e("ip-lockout"),t._v(" "),0===t.is_free?e("audit"):1===t.is_free?e("audit-free"):t._e(),t._v(" "),0===t.is_free?e("report"):1===t.is_free?e("report-free"):t._e()],1)]),t._v(" "),1===t.is_free?e("cross-sale"):t._e(),t._v(" "),e("app-footer")],1),t._v(" "),1===t.quick_setup&&0===t.is_free?e("quick-setup"):1===t.quick_setup&&1===t.is_free?e("quick-setup-free"):t._e()],1)}),[],!1,null,null,null).exports,L=e("./src/component/overlay.vue"),U=e("./src/component/submit-button.vue"),H=e("./src/component/footer.vue"),W=e("./src/component/doc-link.vue"),M=e("./src/component/summary-box.vue");a.a.component("overlay",L.a),a.a.component("submit-button",U.a),a.a.component("app-footer",H.a),a.a.component("doc-link",W.a),a.a.component("summary-box",M.a);new a.a({el:"#defender",components:{dashboard:q},render:function(t){return t(q)}})},"./src/helper/base_hepler.js":function(t,s,e){"use strict";var i=e("./node_modules/xss/lib/index.js"),a=function(t,s){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,s){var e=[],i=!0,a=!1,n=void 0;try{for(var o,r=t[Symbol.iterator]();!(i=(o=r.next()).done)&&(e.push(o.value),!s||e.length!==s);i=!0);}catch(t){a=!0,n=t}finally{try{!i&&r.return&&r.return()}finally{if(a)throw n}}return e}(t,s);throw new TypeError("Invalid attempt to destructure non-iterable instance")},n=wp.i18n,o={whiteList:{a:["href","title","target"],span:["class"],strong:["*"]},safeAttrValue:function(t,s,e,a){return"a"===t&&"href"===s&&"%s"===e?"%s":Object(i.safeAttrValue)(t,s,e,a)}},r=new i.FilterXSS(o),c=[];s.a={methods:{__:function(t){var s=n.__(t,"wpdef");return r.process(s)},xss:function(t){return r.process(t)},vsprintf:function(t){return n.sprintf.apply(null,arguments)},siteUrl:function(t){return void 0!==t?defender.site_url+t:defender.site_url},adminUrl:function(t){return void 0!==t?defender.admin_url+t:defender.admin_url},assetUrl:function(t){return defender.defender_url+t},maybeHighContrast:function(){return{"sui-color-accessible":!0===defender.misc.high_contrast}},maybeHideBranding:function(){return defender.whitelabel.hide_branding},campaign_url:function(t){return"https://premium.wpmudev.org/project/wp-defender/?utm_source=defender&utm_medium=plugin&utm_campaign="+t},httpRequest:function(t,s,e,i,a){var n=this;void 0===a&&(this.state.on_saving=!0);var o=ajaxurl+"?action="+this.endpoints[s]+"&_wpnonce="+this.nonces[s],r=jQuery.ajax({url:o,method:t,data:e,success:function(t){var s=t.data;n.state.on_saving=!1,void 0!==s&&void 0!==s.message&&(t.success?Defender.showNotification("success",s.message):Defender.showNotification("error",s.message)),void 0!==i&&i(t)}});c.push(r)},httpGetRequest:function(t,s,e,i){this.httpRequest("get",t,s,e,i)},httpPostRequest:function(t,s,e,i){this.httpRequest("post",t,s,e,i)},abortAllRequests:function(){for(var t=0;t<c.length;t++)c[t].abort()},getQueryStringParams:function(t){return t?(/^[?#]/.test(t)?t.slice(1):t).split("&").reduce((function(t,s){var e=s.split("="),i=a(e,2),n=i[0],o=i[1];return t[n]=o?decodeURIComponent(o.replace(/\+/g," ")):"",t}),{}):{}},rebindSUI:function(){jQuery("select:not([multiple])").each((function(){SUI.suiSelect(this)})),jQuery(".sui-accordion").each((function(){SUI.suiAccordion(this)}));var t=jQuery(".sui-wrap");SUI.dialogs={},jQuery(".sui-dialog").each((function(){SUI.dialogs[this.id]=new A11yDialog(this,t)}))}}}},vue:function(t,s){t.exports=Vue}});
1
+ !function(t){var s=window.webpackHotUpdate;window.webpackHotUpdate=function(t,e){!function(t,s){if(!C[t]||!y[t])return;for(var e in y[t]=!1,s)Object.prototype.hasOwnProperty.call(s,e)&&(h[e]=s[e]);0==--m&&0===g&&A()}(t,e),s&&s(t,e)};var e,i=!0,a="b39acf366faa9b224a1a",n={},o=[],r=[];function l(t){var s=j[t];if(!s)return E;var i=function(i){return s.hot.active?(j[i]?-1===j[i].parents.indexOf(t)&&j[i].parents.push(t):(o=[t],e=i),-1===s.children.indexOf(i)&&s.children.push(i)):(console.warn("[HMR] unexpected require("+i+") from disposed module "+t),o=[]),E(i)},a=function(t){return{configurable:!0,enumerable:!0,get:function(){return E[t]},set:function(s){E[t]=s}}};for(var n in E)Object.prototype.hasOwnProperty.call(E,n)&&"e"!==n&&"t"!==n&&Object.defineProperty(i,n,a(n));return i.e=function(t){return"ready"===d&&_("prepare"),g++,E.e(t).then(s,(function(t){throw s(),t}));function s(){g--,"prepare"===d&&(b[t]||x(t),0===g&&0===m&&A())}},i.t=function(t,s){return 1&s&&(t=i(t)),E.t(t,-2&s)},i}function c(s){var i={_acceptedDependencies:{},_declinedDependencies:{},_selfAccepted:!1,_selfDeclined:!1,_selfInvalidated:!1,_disposeHandlers:[],_main:e!==s,active:!0,accept:function(t,s){if(void 0===t)i._selfAccepted=!0;else if("function"==typeof t)i._selfAccepted=t;else if("object"==typeof t)for(var e=0;e<t.length;e++)i._acceptedDependencies[t[e]]=s||function(){};else i._acceptedDependencies[t]=s||function(){}},decline:function(t){if(void 0===t)i._selfDeclined=!0;else if("object"==typeof t)for(var s=0;s<t.length;s++)i._declinedDependencies[t[s]]=!0;else i._declinedDependencies[t]=!0},dispose:function(t){i._disposeHandlers.push(t)},addDisposeHandler:function(t){i._disposeHandlers.push(t)},removeDisposeHandler:function(t){var s=i._disposeHandlers.indexOf(t);s>=0&&i._disposeHandlers.splice(s,1)},invalidate:function(){switch(this._selfInvalidated=!0,d){case"idle":(h={})[s]=t[s],_("ready");break;case"ready":P(s);break;case"prepare":case"check":case"dispose":case"apply":(f=f||[]).push(s)}},check:k,apply:S,status:function(t){if(!t)return d;u.push(t)},addStatusHandler:function(t){u.push(t)},removeStatusHandler:function(t){var s=u.indexOf(t);s>=0&&u.splice(s,1)},data:n[s]};return e=void 0,i}var u=[],d="idle";function _(t){d=t;for(var s=0;s<u.length;s++)u[s].call(null,t)}var p,h,v,f,m=0,g=0,b={},y={},C={};function w(t){return+t+""===t?+t:t}function k(t){if("idle"!==d)throw new Error("check() is only allowed in idle status");return i=t,_("check"),(s=1e4,s=s||1e4,new Promise((function(t,e){if("undefined"==typeof XMLHttpRequest)return e(new Error("No browser support"));try{var i=new XMLHttpRequest,n=E.p+""+a+".hot-update.json";i.open("GET",n,!0),i.timeout=s,i.send(null)}catch(t){return e(t)}i.onreadystatechange=function(){if(4===i.readyState)if(0===i.status)e(new Error("Manifest request to "+n+" timed out."));else if(404===i.status)t();else if(200!==i.status&&304!==i.status)e(new Error("Manifest request to "+n+" failed."));else{try{var s=JSON.parse(i.responseText)}catch(t){return void e(t)}t(s)}}}))).then((function(t){if(!t)return _(T()?"ready":"idle"),null;y={},b={},C=t.c,v=t.h,_("prepare");var s=new Promise((function(t,s){p={resolve:t,reject:s}}));h={};return x(2),"prepare"===d&&0===g&&0===m&&A(),s}));var s}function x(t){C[t]?(y[t]=!0,m++,function(t){var s=document.createElement("script");s.charset="utf-8",s.src=E.p+""+t+"."+a+".hot-update.js",document.head.appendChild(s)}(t)):b[t]=!0}function A(){_("ready");var t=p;if(p=null,t)if(i)Promise.resolve().then((function(){return S(i)})).then((function(s){t.resolve(s)}),(function(s){t.reject(s)}));else{var s=[];for(var e in h)Object.prototype.hasOwnProperty.call(h,e)&&s.push(w(e));t.resolve(s)}}function S(s){if("ready"!==d)throw new Error("apply() is only allowed in ready status");return function s(i){var r,l,c,u,d;function p(t){for(var s=[t],e={},i=s.map((function(t){return{chain:[t],id:t}}));i.length>0;){var a=i.pop(),n=a.id,o=a.chain;if((u=j[n])&&(!u.hot._selfAccepted||u.hot._selfInvalidated)){if(u.hot._selfDeclined)return{type:"self-declined",chain:o,moduleId:n};if(u.hot._main)return{type:"unaccepted",chain:o,moduleId:n};for(var r=0;r<u.parents.length;r++){var l=u.parents[r],c=j[l];if(c){if(c.hot._declinedDependencies[n])return{type:"declined",chain:o.concat([l]),moduleId:n,parentId:l};-1===s.indexOf(l)&&(c.hot._acceptedDependencies[n]?(e[l]||(e[l]=[]),m(e[l],[n])):(delete e[l],s.push(l),i.push({chain:o.concat([l]),id:l})))}}}}return{type:"accepted",moduleId:t,outdatedModules:s,outdatedDependencies:e}}function m(t,s){for(var e=0;e<s.length;e++){var i=s[e];-1===t.indexOf(i)&&t.push(i)}}T();var g={},b=[],y={},k=function(){console.warn("[HMR] unexpected require("+A.moduleId+") to disposed module")};for(var x in h)if(Object.prototype.hasOwnProperty.call(h,x)){var A;d=w(x),A=h[x]?p(d):{type:"disposed",moduleId:x};var S=!1,P=!1,I=!1,O="";switch(A.chain&&(O="\nUpdate propagation: "+A.chain.join(" -> ")),A.type){case"self-declined":i.onDeclined&&i.onDeclined(A),i.ignoreDeclined||(S=new Error("Aborted because of self decline: "+A.moduleId+O));break;case"declined":i.onDeclined&&i.onDeclined(A),i.ignoreDeclined||(S=new Error("Aborted because of declined dependency: "+A.moduleId+" in "+A.parentId+O));break;case"unaccepted":i.onUnaccepted&&i.onUnaccepted(A),i.ignoreUnaccepted||(S=new Error("Aborted because "+d+" is not accepted"+O));break;case"accepted":i.onAccepted&&i.onAccepted(A),P=!0;break;case"disposed":i.onDisposed&&i.onDisposed(A),I=!0;break;default:throw new Error("Unexception type "+A.type)}if(S)return _("abort"),Promise.reject(S);if(P)for(d in y[d]=h[d],m(b,A.outdatedModules),A.outdatedDependencies)Object.prototype.hasOwnProperty.call(A.outdatedDependencies,d)&&(g[d]||(g[d]=[]),m(g[d],A.outdatedDependencies[d]));I&&(m(b,[A.moduleId]),y[d]=k)}var $,D=[];for(l=0;l<b.length;l++)d=b[l],j[d]&&j[d].hot._selfAccepted&&y[d]!==k&&!j[d].hot._selfInvalidated&&D.push({module:d,parents:j[d].parents.slice(),errorHandler:j[d].hot._selfAccepted});_("dispose"),Object.keys(C).forEach((function(t){!1===C[t]&&function(t){delete installedChunks[t]}(t)}));var W,q,R=b.slice();for(;R.length>0;)if(d=R.pop(),u=j[d]){var M={},L=u.hot._disposeHandlers;for(c=0;c<L.length;c++)(r=L[c])(M);for(n[d]=M,u.hot.active=!1,delete j[d],delete g[d],c=0;c<u.children.length;c++){var U=j[u.children[c]];U&&(($=U.parents.indexOf(d))>=0&&U.parents.splice($,1))}}for(d in g)if(Object.prototype.hasOwnProperty.call(g,d)&&(u=j[d]))for(q=g[d],c=0;c<q.length;c++)W=q[c],($=u.children.indexOf(W))>=0&&u.children.splice($,1);_("apply"),void 0!==v&&(a=v,v=void 0);for(d in h=void 0,y)Object.prototype.hasOwnProperty.call(y,d)&&(t[d]=y[d]);var F=null;for(d in g)if(Object.prototype.hasOwnProperty.call(g,d)&&(u=j[d])){q=g[d];var H=[];for(l=0;l<q.length;l++)if(W=q[l],r=u.hot._acceptedDependencies[W]){if(-1!==H.indexOf(r))continue;H.push(r)}for(l=0;l<H.length;l++){r=H[l];try{r(q)}catch(t){i.onErrored&&i.onErrored({type:"accept-errored",moduleId:d,dependencyId:q[l],error:t}),i.ignoreErrored||F||(F=t)}}}for(l=0;l<D.length;l++){var z=D[l];d=z.module,o=z.parents,e=d;try{E(d)}catch(t){if("function"==typeof z.errorHandler)try{z.errorHandler(t)}catch(s){i.onErrored&&i.onErrored({type:"self-accept-error-handler-errored",moduleId:d,error:s,originalError:t}),i.ignoreErrored||F||(F=s),F||(F=t)}else i.onErrored&&i.onErrored({type:"self-accept-errored",moduleId:d,error:t}),i.ignoreErrored||F||(F=t)}}if(F)return _("fail"),Promise.reject(F);if(f)return s(i).then((function(t){return b.forEach((function(s){t.indexOf(s)<0&&t.push(s)})),t}));return _("idle"),new Promise((function(t){t(b)}))}(s=s||{})}function T(){if(f)return h||(h={}),f.forEach(P),f=void 0,!0}function P(s){Object.prototype.hasOwnProperty.call(h,s)||(h[s]=t[s])}var j={};function E(s){if(j[s])return j[s].exports;var e=j[s]={i:s,l:!1,exports:{},hot:c(s),parents:(r=o,o=[],r),children:[]};return t[s].call(e.exports,e,e.exports,l(s)),e.l=!0,e.exports}E.m=t,E.c=j,E.d=function(t,s,e){E.o(t,s)||Object.defineProperty(t,s,{enumerable:!0,get:e})},E.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},E.t=function(t,s){if(1&s&&(t=E(t)),8&s)return t;if(4&s&&"object"==typeof t&&t&&t.__esModule)return t;var e=Object.create(null);if(E.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:t}),2&s&&"string"!=typeof t)for(var i in t)E.d(e,i,function(s){return t[s]}.bind(null,i));return e},E.n=function(t){var s=t&&t.__esModule?function(){return t.default}:function(){return t};return E.d(s,"a",s),s},E.o=function(t,s){return Object.prototype.hasOwnProperty.call(t,s)},E.p="",E.h=function(){return a},l("./src/dashboard.js")(E.s="./src/dashboard.js")}({"./node_modules/cssfilter/lib/css.js":function(t,s,e){var i=e("./node_modules/cssfilter/lib/default.js"),a=e("./node_modules/cssfilter/lib/parser.js");e("./node_modules/cssfilter/lib/util.js");function n(t){return null==t}function o(t){(t=function(t){var s={};for(var e in t)s[e]=t[e];return s}(t||{})).whiteList=t.whiteList||i.whiteList,t.onAttr=t.onAttr||i.onAttr,t.onIgnoreAttr=t.onIgnoreAttr||i.onIgnoreAttr,t.safeAttrValue=t.safeAttrValue||i.safeAttrValue,this.options=t}o.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var s=this.options,e=s.whiteList,i=s.onAttr,o=s.onIgnoreAttr,r=s.safeAttrValue;return a(t,(function(t,s,a,l,c){var u=e[a],d=!1;if(!0===u?d=u:"function"==typeof u?d=u(l):u instanceof RegExp&&(d=u.test(l)),!0!==d&&(d=!1),l=r(a,l)){var _,p={position:s,sourcePosition:t,source:c,isWhite:d};return d?n(_=i(a,l,p))?a+":"+l:_:n(_=o(a,l,p))?void 0:_}}))},t.exports=o},"./node_modules/cssfilter/lib/default.js":function(t,s){function e(){var t={"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1};return t}var i=/javascript\s*\:/gim;s.whiteList=e(),s.getDefaultWhiteList=e,s.onAttr=function(t,s,e){},s.onIgnoreAttr=function(t,s,e){},s.safeAttrValue=function(t,s){return i.test(s)?"":s}},"./node_modules/cssfilter/lib/index.js":function(t,s,e){var i=e("./node_modules/cssfilter/lib/default.js"),a=e("./node_modules/cssfilter/lib/css.js");for(var n in(s=t.exports=function(t,s){return new a(s).process(t)}).FilterCSS=a,i)s[n]=i[n];"undefined"!=typeof window&&(window.filterCSS=t.exports)},"./node_modules/cssfilter/lib/parser.js":function(t,s,e){var i=e("./node_modules/cssfilter/lib/util.js");t.exports=function(t,s){";"!==(t=i.trimRight(t))[t.length-1]&&(t+=";");var e=t.length,a=!1,n=0,o=0,r="";function l(){if(!a){var e=i.trim(t.slice(n,o)),l=e.indexOf(":");if(-1!==l){var c=i.trim(e.slice(0,l)),u=i.trim(e.slice(l+1));if(c){var d=s(n,r.length,c,u,e);d&&(r+=d+"; ")}}}n=o+1}for(;o<e;o++){var c=t[o];if("/"===c&&"*"===t[o+1]){var u=t.indexOf("*/",o+2);if(-1===u)break;n=(o=u+1)+1,a=!1}else"("===c?a=!0:")"===c?a=!1:";"===c?a||l():"\n"===c&&l()}return i.trim(r)}},"./node_modules/cssfilter/lib/util.js":function(t,s){t.exports={indexOf:function(t,s){var e,i;if(Array.prototype.indexOf)return t.indexOf(s);for(e=0,i=t.length;e<i;e++)if(t[e]===s)return e;return-1},forEach:function(t,s,e){var i,a;if(Array.prototype.forEach)return t.forEach(s,e);for(i=0,a=t.length;i<a;i++)s.call(e,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(t){return String.prototype.trimRight?t.trimRight():t.replace(/(\s*$)/g,"")}}},"./node_modules/vue-loader/lib/runtime/componentNormalizer.js":function(t,s,e){"use strict";function i(t,s,e,i,a,n,o,r){var l,c="function"==typeof t?t.options:t;if(s&&(c.render=s,c.staticRenderFns=e,c._compiled=!0),i&&(c.functional=!0),n&&(c._scopeId="data-v-"+n),o?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),a&&a.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},c._ssrRegister=l):a&&(l=r?function(){a.call(this,this.$root.$options.shadowRoot)}:a),l)if(c.functional){c._injectStyles=l;var u=c.render;c.render=function(t,s){return l.call(s),u(t,s)}}else{var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,l):[l]}return{exports:t,options:c}}e.d(s,"a",(function(){return i}))},"./node_modules/xss/lib/default.js":function(t,s,e){var i=e("./node_modules/cssfilter/lib/index.js").FilterCSS,a=e("./node_modules/cssfilter/lib/index.js").getDefaultWhiteList,n=e("./node_modules/xss/lib/util.js");function o(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]}}var r=new i;function l(t){return t.replace(c,"&lt;").replace(u,"&gt;")}var c=/</g,u=/>/g,d=/"/g,_=/&quot;/g,p=/&#([a-zA-Z0-9]*);?/gim,h=/&colon;?/gim,v=/&newline;?/gim,f=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi,m=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,g=/u\s*r\s*l\s*\(.*/gi;function b(t){return t.replace(d,"&quot;")}function y(t){return t.replace(_,'"')}function C(t){return t.replace(p,(function(t,s){return"x"===s[0]||"X"===s[0]?String.fromCharCode(parseInt(s.substr(1),16)):String.fromCharCode(parseInt(s,10))}))}function w(t){return t.replace(h,":").replace(v," ")}function k(t){for(var s="",e=0,i=t.length;e<i;e++)s+=t.charCodeAt(e)<32?" ":t.charAt(e);return n.trim(s)}function x(t){return t=k(t=w(t=C(t=y(t))))}function A(t){return t=l(t=b(t))}var S=/<!--[\s\S]*?-->/g;s.whiteList={a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]},s.getDefaultWhiteList=o,s.onTag=function(t,s,e){},s.onIgnoreTag=function(t,s,e){},s.onTagAttr=function(t,s,e){},s.onIgnoreTagAttr=function(t,s,e){},s.safeAttrValue=function(t,s,e,i){if(e=x(e),"href"===s||"src"===s){if("#"===(e=n.trim(e)))return"#";if("http://"!==e.substr(0,7)&&"https://"!==e.substr(0,8)&&"mailto:"!==e.substr(0,7)&&"tel:"!==e.substr(0,4)&&"#"!==e[0]&&"/"!==e[0])return""}else if("background"===s){if(f.lastIndex=0,f.test(e))return""}else if("style"===s){if(m.lastIndex=0,m.test(e))return"";if(g.lastIndex=0,g.test(e)&&(f.lastIndex=0,f.test(e)))return"";!1!==i&&(e=(i=i||r).process(e))}return e=A(e)},s.escapeHtml=l,s.escapeQuote=b,s.unescapeQuote=y,s.escapeHtmlEntities=C,s.escapeDangerHtml5Entities=w,s.clearNonPrintableCharacter=k,s.friendlyAttrValue=x,s.escapeAttrValue=A,s.onIgnoreTagStripAll=function(){return""},s.StripTagBody=function(t,s){"function"!=typeof s&&(s=function(){});var e=!Array.isArray(t),i=[],a=!1;return{onIgnoreTag:function(o,r,l){if(function(s){return!!e||-1!==n.indexOf(t,s)}(o)){if(l.isClosing){var c="[/removed]",u=l.position+c.length;return i.push([!1!==a?a:l.position,u]),a=!1,c}return a||(a=l.position),"[removed]"}return s(o,r,l)},remove:function(t){var s="",e=0;return n.forEach(i,(function(i){s+=t.slice(e,i[0]),e=i[1]})),s+=t.slice(e)}}},s.stripCommentTag=function(t){return t.replace(S,"")},s.stripBlankChar=function(t){var s=t.split("");return(s=s.filter((function(t){var s=t.charCodeAt(0);return 127!==s&&(!(s<=31)||(10===s||13===s))}))).join("")},s.cssFilter=r,s.getDefaultCSSWhiteList=a},"./node_modules/xss/lib/index.js":function(t,s,e){var i=e("./node_modules/xss/lib/default.js"),a=e("./node_modules/xss/lib/parser.js"),n=e("./node_modules/xss/lib/xss.js");function o(t,s){return new n(s).process(t)}for(var r in(s=t.exports=o).filterXSS=o,s.FilterXSS=n,i)s[r]=i[r];for(var r in a)s[r]=a[r];"undefined"!=typeof window&&(window.filterXSS=t.exports),"undefined"!=typeof self&&"undefined"!=typeof DedicatedWorkerGlobalScope&&self instanceof DedicatedWorkerGlobalScope&&(self.filterXSS=t.exports)},"./node_modules/xss/lib/parser.js":function(t,s,e){var i=e("./node_modules/xss/lib/util.js");function a(t){var s=i.spaceIndex(t);if(-1===s)var e=t.slice(1,-1);else e=t.slice(1,s+1);return"/"===(e=i.trim(e).toLowerCase()).slice(0,1)&&(e=e.slice(1)),"/"===e.slice(-1)&&(e=e.slice(0,-1)),e}function n(t){return"</"===t.slice(0,2)}var o=/[^a-zA-Z0-9_:\.\-]/gim;function r(t,s){for(;s<t.length;s++){var e=t[s];if(" "!==e)return"="===e?s:-1}}function l(t,s){for(;s>0;s--){var e=t[s];if(" "!==e)return"="===e?s:-1}}function c(t){return function(t){return'"'===t[0]&&'"'===t[t.length-1]||"'"===t[0]&&"'"===t[t.length-1]}(t)?t.substr(1,t.length-2):t}s.parseTag=function(t,s,e){var i="",o=0,r=!1,l=!1,c=0,u=t.length,d="",_="";for(c=0;c<u;c++){var p=t.charAt(c);if(!1===r){if("<"===p){r=c;continue}}else if(!1===l){if("<"===p){i+=e(t.slice(o,c)),r=c,o=c;continue}if(">"===p){i+=e(t.slice(o,r)),d=a(_=t.slice(r,c+1)),i+=s(r,i.length,d,_,n(_)),o=c+1,r=!1;continue}if(('"'===p||"'"===p)&&"="===t.charAt(c-1)){l=p;continue}}else if(p===l){l=!1;continue}}return o<t.length&&(i+=e(t.substr(o))),i},s.parseAttr=function(t,s){var e=0,a=[],n=!1,u=t.length;function d(t,e){if(!((t=(t=i.trim(t)).replace(o,"").toLowerCase()).length<1)){var n=s(t,e||"");n&&a.push(n)}}for(var _=0;_<u;_++){var p,h=t.charAt(_);if(!1!==n||"="!==h)if(!1===n||_!==e||'"'!==h&&"'"!==h||"="!==t.charAt(_-1))if(/\s|\n|\t/.test(h)){if(t=t.replace(/\s|\n|\t/g," "),!1===n){if(-1===(p=r(t,_))){d(i.trim(t.slice(e,_))),n=!1,e=_+1;continue}_=p-1;continue}if(-1===(p=l(t,_-1))){d(n,c(i.trim(t.slice(e,_)))),n=!1,e=_+1;continue}}else;else{if(-1===(p=t.indexOf(h,_+1)))break;d(n,i.trim(t.slice(e+1,p))),n=!1,e=(_=p)+1}else n=t.slice(e,_),e=_+1}return e<t.length&&(!1===n?d(t.slice(e)):d(n,c(i.trim(t.slice(e))))),i.trim(a.join(" "))}},"./node_modules/xss/lib/util.js":function(t,s){t.exports={indexOf:function(t,s){var e,i;if(Array.prototype.indexOf)return t.indexOf(s);for(e=0,i=t.length;e<i;e++)if(t[e]===s)return e;return-1},forEach:function(t,s,e){var i,a;if(Array.prototype.forEach)return t.forEach(s,e);for(i=0,a=t.length;i<a;i++)s.call(e,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},spaceIndex:function(t){var s=/\s|\n|\t/.exec(t);return s?s.index:-1}}},"./node_modules/xss/lib/xss.js":function(t,s,e){var i=e("./node_modules/cssfilter/lib/index.js").FilterCSS,a=e("./node_modules/xss/lib/default.js"),n=e("./node_modules/xss/lib/parser.js"),o=n.parseTag,r=n.parseAttr,l=e("./node_modules/xss/lib/util.js");function c(t){return null==t}function u(t){(t=function(t){var s={};for(var e in t)s[e]=t[e];return s}(t||{})).stripIgnoreTag&&(t.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),t.onIgnoreTag=a.onIgnoreTagStripAll),t.whiteList=t.whiteList||a.whiteList,t.onTag=t.onTag||a.onTag,t.onTagAttr=t.onTagAttr||a.onTagAttr,t.onIgnoreTag=t.onIgnoreTag||a.onIgnoreTag,t.onIgnoreTagAttr=t.onIgnoreTagAttr||a.onIgnoreTagAttr,t.safeAttrValue=t.safeAttrValue||a.safeAttrValue,t.escapeHtml=t.escapeHtml||a.escapeHtml,this.options=t,!1===t.css?this.cssFilter=!1:(t.css=t.css||{},this.cssFilter=new i(t.css))}u.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var s=this.options,e=s.whiteList,i=s.onTag,n=s.onIgnoreTag,u=s.onTagAttr,d=s.onIgnoreTagAttr,_=s.safeAttrValue,p=s.escapeHtml,h=this.cssFilter;s.stripBlankChar&&(t=a.stripBlankChar(t)),s.allowCommentTag||(t=a.stripCommentTag(t));var v=!1;if(s.stripIgnoreTagBody){v=a.StripTagBody(s.stripIgnoreTagBody,n);n=v.onIgnoreTag}var f=o(t,(function(t,s,a,o,v){var f,m={sourcePosition:t,position:s,isClosing:v,isWhite:e.hasOwnProperty(a)};if(!c(f=i(a,o,m)))return f;if(m.isWhite){if(m.isClosing)return"</"+a+">";var g=function(t){var s=l.spaceIndex(t);if(-1===s)return{html:"",closing:"/"===t[t.length-2]};var e="/"===(t=l.trim(t.slice(s+1,-1)))[t.length-1];return e&&(t=l.trim(t.slice(0,-1))),{html:t,closing:e}}(o),b=e[a],y=r(g.html,(function(t,s){var e,i=-1!==l.indexOf(b,t);return c(e=u(a,t,s,i))?i?(s=_(a,t,s,h))?t+'="'+s+'"':t:c(e=d(a,t,s,i))?void 0:e:e}));o="<"+a;return y&&(o+=" "+y),g.closing&&(o+=" /"),o+=">"}return c(f=n(a,o,m))?p(o):f}),p);return v&&(f=v.remove(f)),f},t.exports=u},"./src/component/doc-link.vue":function(t,s,e){"use strict";var i={mixins:[e("./src/helper/base_hepler.js").a],name:"doc-link",props:["link"],data:function(){return{whitelabel:defender.whitelabel}}},a=e("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this.$createElement,s=this._self._c||t;return!1===this.whitelabel.hide_doc_link?s("div",{staticClass:"sui-actions-right"},[s("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:this.link,target:"_blank"}},[s("i",{staticClass:"sui-icon-academy"}),this._v(" "+this._s(this.__("View Documentation"))+"\n ")])]):this._e()}),[],!1,null,null,null);s.a=n.exports},"./src/component/footer.vue":function(t,s,e){"use strict";var i={data:function(){return{whitelabel:defender.whitelabel,is_free:parseInt(defender.is_free)}}},a=e("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",[!0===t.whitelabel.change_footer?e("div",{staticClass:"sui-footer"},[t._v("\n "+t._s(t.whitelabel.footer_text)+"\n ")]):e("div",{staticClass:"sui-footer"},[t._v("Made with "),e("i",{staticClass:"sui-icon-heart"}),t._v(" by WPMU DEV")]),t._v(" "),!1===t.whitelabel.hide_doc_link?e("div",[1===t.is_free?e("ul",{staticClass:"sui-footer-nav"},[t._m(0),t._v(" "),t._m(1),t._v(" "),t._m(2),t._v(" "),t._m(3),t._v(" "),t._m(4),t._v(" "),t._m(5),t._v(" "),t._m(6),t._v(" "),t._m(7)]):e("ul",{staticClass:"sui-footer-nav"},[t._m(8),t._v(" "),t._m(9),t._v(" "),t._m(10),t._v(" "),t._m(11),t._v(" "),t._m(12),t._v(" "),t._m(13),t._v(" "),t._m(14),t._v(" "),t._m(15)]),t._v(" "),t._m(16)]):t._e()])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://profiles.wordpress.org/wpmudev#content-plugins",target:"_blank"}},[this._v("Free\n Plugins")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/features/",target:"_blank"}},[this._v("Membership")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://wordpress.org/support/plugin/plugin-name",target:"_blank"}},[this._v("Support")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/projects/category/plugins/",target:"_blank"}},[this._v("Plugins")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/hub/support/",target:"_blank"}},[this._v("Support")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/hub/community/",target:"_blank"}},[this._v("Community")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("ul",{staticClass:"sui-footer-social"},[e("li",[e("a",{attrs:{href:"https://www.facebook.com/wpmudev",target:"_blank"}},[e("i",{staticClass:"sui-icon-social-facebook",attrs:{"aria-hidden":"true"}}),t._v(" "),e("span",{staticClass:"sui-screen-reader-text"},[t._v("Facebook")])])]),t._v(" "),e("li",[e("a",{attrs:{href:"https://twitter.com/wpmudev",target:"_blank"}},[e("i",{staticClass:"sui-icon-social-twitter",attrs:{"aria-hidden":"true"}})]),t._v(" "),e("span",{staticClass:"sui-screen-reader-text"},[t._v("Twitter")])]),t._v(" "),e("li",[e("a",{attrs:{href:"https://www.instagram.com/wpmu_dev/",target:"_blank"}},[e("i",{staticClass:"sui-icon-instagram",attrs:{"aria-hidden":"true"}}),t._v(" "),e("span",{staticClass:"sui-screen-reader-text"},[t._v("Instagram")])])])])}],!1,null,null,null);s.a=n.exports},"./src/component/overlay.vue":function(t,s,e){"use strict";var i={name:"overlay"},a=e("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this.$createElement;this._self._c;return this._m(0)}),[function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"wd-overlay"},[s("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])}],!1,null,null,null);s.a=n.exports},"./src/component/submit-button.vue":function(t,s,e){"use strict";var i={name:"submit-button",props:["id","state","text","css-class","type"],computed:{getClass:function(){return"sui-button "+this.cssClass}}},a=e("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("button",{staticClass:"sui-button",class:[t.getClass,{"sui-button-onload":t.state.on_saving}],attrs:{id:t.id,type:t.type,disabled:t.state.on_saving},on:{click:function(s){return t.$emit("click")}}},[e("span",{staticClass:"sui-loading-text"},[t._t("default")],2),t._v(" "),e("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])}),[],!1,null,null,null);s.a=n.exports},"./src/component/summary-box.vue":function(t,s,e){"use strict";var i={mixins:[e("./src/helper/base_hepler.js").a],props:["css-class"],name:"summary-box",data:function(){return{whitelabel:defender.whitelabel}},computed:{summary_class:function(){return{"sui-unbranded":!0===this.whitelabel.hide_branding&&0===this.whitelabel.hero_image.length,"sui-rebranded":!0===this.whitelabel.hide_branding&&this.whitelabel.hero_image.length>0}},css_class:function(){return this.cssClass},rebrand_img:function(){if(this.whitelabel.hero_image.length>0)return{"background-image":"url('"+this.whitelabel.hero_image+"')"}}}},a=e("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-box sui-summary",class:[this.summary_class,this.css_class],style:this.rebrand_img},[s("div",{staticClass:"sui-summary-image-space",attrs:{"aria-hidden":"true"}}),this._v(" "),this._t("default")],2)}),[],!1,null,null,null);s.a=n.exports},"./src/dashboard.js":function(t,s,e){"use strict";e.r(s);var i=e("vue"),a=e.n(i),n=e("./src/helper/base_hepler.js"),o={mixins:[n.a],name:"security-tweaks",data:function(){return{rules:dashboard.security_tweaks.rules,count:dashboard.security_tweaks.count.issues}},methods:{handleRedirect:function(t){window.location.href=this.adminUrl("admin.php?page=wdf-hardener#"+t.slug)}}},r=e("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),l=Object(r.a)(o,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box hardener-widget"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-wrench-tool",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Security Tweaks"))+"\n ")]),t._v(" "),t.count>0?e("div",{staticClass:"sui-actions-left"},[e("div",{staticClass:"sui-tag sui-tag-warning",domProps:{textContent:t._s(t.count)}})]):t._e()]),t._v(" "),e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("Defender checks for basic security tweaks you can make to enhance your website’s defense against hackers and bots."))+"\n ")]),t._v(" "),0===t.count?e("div",{staticClass:"sui-notice sui-notice-success"},[e("p",[t._v("\n "+t._s(t.__("You’ve actioned all of the recommended security tweaks."))+"\n ")])]):t._e()]),t._v(" "),t.count>0?e("div",{staticClass:"sui-accordion sui-accordion-flushed no-border-bottom"},t._l(t.rules,(function(s){return e("div",{staticClass:"sui-accordion-item sui-warning",on:{click:function(e){return t.handleRedirect(s)}}},[e("div",{staticClass:"sui-accordion-item-header"},[e("div",{staticClass:"sui-accordion-item-title"},[e("i",{staticClass:"sui-icon-warning-alert sui-warning",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(s.title)+"\n "),t._m(0,!0)])])])})),0):t._e(),t._v(" "),e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-actions-left"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:t.adminUrl("admin.php?page=wdf-hardener")}},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("View All"))+"\n ")])])])])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-actions-right"},[s("i",{staticClass:"sui-icon-chevron-right",attrs:{"aria-hidden":"true"}})])}],!1,null,null,null).exports,c={mixins:[n.a],name:"file-scanning",data:function(){return{scan:dashboard.scan.scan,state:{on_saving:!1,canceling:!1},nonces:dashboard.scan.nonces,endpoints:dashboard.scan.endpoints,polling_state:null,report:dashboard.scan.report}},methods:{newScan:function(){var t=this;this.httpPostRequest("newScan",{},(function(s){t.$nextTick((function(){t.scan={},t.scan.status=s.data.status,t.scan.percent=s.data.percent,t.scan.status_text=s.data.status_text,t.polling()}))}))},cancelScan:function(){if(!0!==this.state.canceling){this.abortAllRequests();var t=this;clearTimeout(this.polling_state),this.state.canceling=!0,this.httpPostRequest("cancelScan",{},(function(s){t.$nextTick((function(){t.scan=s.data.scan,t.state.canceling=!1,t.$emit("scanCanceled",t.scan)}))}))}},refreshStatus:function(){var t=this;this.httpPostRequest("processScan",{},(function(s){!1===s.success?(t.scan=s.data,t.polling()):(t.scan=s.data.scan,t.$emit("scanCompleted",t.scan,s.data.scan.count.total))}))},polling:function(){!1===this.state.canceling&&(this.polling_state=setTimeout(this.refreshStatus(),500))},resultIndicator:function(t){return t>0?'<span class="sui-tag sui-tag-error">'+t+"</span>":'<i aria-hidden="true" class="sui-icon-check-tick sui-success"></i>'}},computed:{statusText:function(){return this.scan.status_text},reportText:function(){if(!1!==this.report.enabled){var t=void 0;switch(parseInt(this.report.frequency)){case 1:t="daily";break;case 7:t="weekly";break;case 30:t="monthly"}return this.vsprintf(this.__("Automatic scans are running %s"),t)}},percent:function(){return this.scan.percent}},mounted:function(){null===this.scan||"process"!==this.scan.status&&"init"!==this.scan.status||this.polling()}},u=Object(r.a)(c,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-layers",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Malware Scanning"))+"\n ")]),t._v(" "),null!==t.scan&&"finish"===t.scan.status?e("div",{staticClass:"sui-actions-left"},[null!==t.scan&&t.scan.count.total>0?e("span",{staticClass:"sui-tag sui-tag-error"},[t._v(t._s(t.scan.count.total))]):t._e()]):t._e()]),t._v(" "),e("div",{staticClass:"sui-box-body",class:{"no-padding-bottom":null!==t.scan&&"finish"===t.scan.status}},[e("p",[t._v("\n "+t._s(t.__("Scan your website for file changes, vulnerabilities and injected code and get notified about anything suspicious."))+"\n ")]),t._v(" "),null===t.scan?e("div",[e("submit-button",{attrs:{type:"button","css-class":"sui-button-blue",state:t.state},on:{click:t.newScan}},[t._v("\n "+t._s(t.__("Run scan"))+"\n ")])],1):"process"===t.scan.status||"init"===t.scan.status?e("div",[e("div",{staticClass:"sui-progress-block"},[e("div",{staticClass:"sui-progress"},[t._m(0),t._v(" "),e("span",{staticClass:"sui-progress-text"},[e("span",{domProps:{textContent:t._s(t.percent+"%")}})]),t._v(" "),e("div",{staticClass:"sui-progress-bar",attrs:{"aria-hidden":"true"}},[e("span",{style:{width:t.percent+"%"}})])]),t._v(" "),e("button",{staticClass:"sui-button-icon sui-tooltip",attrs:{type:"button",disabled:t.state.canceling,"data-tooltip":"Cancel"},on:{click:t.cancelScan}},[e("i",{staticClass:"sui-icon-close",attrs:{"aria-hidden":"true"}})])]),t._v(" "),e("div",{staticClass:"sui-progress-state"},[e("span",{domProps:{textContent:t._s(t.statusText)}})])]):e("div",{staticClass:"sui-field-list sui-flushed no-border"},[e("div",{staticClass:"sui-field-list-body"},[e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v("\n "+t._s(t.__("WordPress Core"))+"\n ")])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.resultIndicator(t.scan.count.core))}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v("\n "+t._s(t.__("Plugins & Themes"))+"\n ")])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.resultIndicator(t.scan.count.vuln))}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("Suspicious Code")))])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.resultIndicator(t.scan.count.content))}})])])])]),t._v(" "),null!==t.scan&&"finish"===t.scan.status?e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-actions-left"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:t.adminUrl("admin.php?page=wdf-scan")}},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("View Report"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-actions-right"},[e("p",{staticClass:"sui-p-small",domProps:{textContent:t._s(t.reportText)}})])]):t._e()])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("span",{staticClass:"sui-progress-icon",attrs:{"aria-hidden":"true"}},[s("i",{staticClass:"sui-icon-loader sui-loading"})])}],!1,null,null,null).exports,d={mixins:[n.a],name:"file-scanning",data:function(){return{scan:dashboard.scan.scan,state:{on_saving:!1,canceling:!1},nonces:dashboard.scan.nonces,endpoints:dashboard.scan.endpoints,polling_state:null,report:dashboard.scan.report}},methods:{newScan:function(){var t=this;this.httpPostRequest("newScan",{},(function(s){t.$nextTick((function(){t.scan={},t.scan.status=s.data.status,t.scan.percent=s.data.percent,t.scan.status_text=s.data.status_text,t.polling()}))}))},cancelScan:function(){if(!0!==this.state.canceling){this.abortAllRequests();var t=this;clearTimeout(this.polling_state),this.state.canceling=!0,this.httpPostRequest("cancelScan",{},(function(s){t.$nextTick((function(){t.scan=s.data.scan,t.state.canceling=!1}))}))}},refreshStatus:function(){var t=this;this.httpPostRequest("processScan",{},(function(s){!1===s.success?(t.scan=s.data,t.polling()):t.scan=s.data.scan}))},polling:function(){!1===this.state.canceling&&(this.polling_state=setTimeout(this.refreshStatus(),500))},resultIndicator:function(t){return t>0?'<span class="sui-tag sui-tag-error">'+t+"</span>":'<i aria-hidden="true" class="sui-icon-check-tick sui-success"></i>'}},computed:{statusText:function(){return this.scan.status_text},percent:function(){return this.scan.percent}},mounted:function(){null===this.scan||"process"!==this.scan.status&&"init"!==this.scan.status||this.polling()}},_=Object(r.a)(d,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-layers",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Malware Scanning"))+"\n ")]),t._v(" "),null!==t.scan&&"finish"===t.scan.status?e("div",{staticClass:"sui-actions-left"},[t.scan.count.total>0?e("span",{staticClass:"sui-tag sui-tag-error"},[t._v(t._s(t.scan.count.total))]):t._e()]):t._e()]),t._v(" "),e("div",{staticClass:"sui-box-body",class:{"no-padding-bottom":null!==t.scan&&"finish"===t.scan.status}},[e("p",[t._v("\n "+t._s(t.__("Scan your website for file changes, vulnerabilities and injected code and get notified about anything suspicious."))+"\n ")]),t._v(" "),null===t.scan?e("div",[e("submit-button",{attrs:{type:"button","css-class":"sui-button-blue",state:t.state},on:{click:t.newScan}},[t._v("\n "+t._s(t.__("Run scan"))+"\n ")])],1):"process"===t.scan.status||"init"===t.scan.status?e("div",[e("div",{staticClass:"sui-progress-block"},[e("div",{staticClass:"sui-progress"},[t._m(0),t._v(" "),e("span",{staticClass:"sui-progress-text"},[e("span",{domProps:{textContent:t._s(t.percent+"%")}})]),t._v(" "),e("div",{staticClass:"sui-progress-bar",attrs:{"aria-hidden":"true"}},[e("span",{style:{width:t.percent+"%"}})])]),t._v(" "),e("button",{staticClass:"sui-button-icon sui-tooltip",attrs:{type:"button",disabled:t.state.canceling,"data-tooltip":"Cancel"},on:{click:t.cancelScan}},[e("i",{staticClass:"sui-icon-close",attrs:{"aria-hidden":"true"}})])]),t._v(" "),e("div",{staticClass:"sui-progress-state"},[e("span",{domProps:{textContent:t._s(t.statusText)}})])]):e("div",{staticClass:"sui-field-list sui-flushed no-border"},[e("div",{staticClass:"sui-field-list-body"},[e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v("\n "+t._s(t.__("WordPress Core"))+"\n ")])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.resultIndicator(t.scan.count.core))}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v("\n "+t._s(t.__("Plugins & Themes"))+"\n ")])]),t._v(" "),e("a",{staticClass:"sui-button sui-button-purple sui-tooltip",attrs:{href:t.campaign_url("defender_dash_filescan_pro_tag"),target:"_blank","data-tooltip":"Try Defender Pro free today"}},[t._v("\n "+t._s(t.__("Pro Feature"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("Suspicious Code")))])]),t._v(" "),e("a",{staticClass:"sui-button sui-button-purple sui-tooltip",attrs:{href:t.campaign_url("defender_dash_filescan_pro_tag"),target:"_blank","data-tooltip":"Try Defender Pro free today"}},[t._v("\n "+t._s(t.__("Pro Feature"))+"\n ")])])])])]),t._v(" "),null!==t.scan&&"finish"===t.scan.status?e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-actions-left"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:t.adminUrl("admin.php?page=wdf-scan")}},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("View Report"))+"\n ")])])]):t._e()])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("span",{staticClass:"sui-progress-icon",attrs:{"aria-hidden":"true"}},[s("i",{staticClass:"sui-icon-loader sui-loading"})])}],!1,null,null,null).exports,p={mixins:[n.a],name:"blacklist",data:function(){return{state:{on_saving:!1},status:"fetching",nonces:dashboard.blacklist.nonces,endpoints:dashboard.blacklist.endpoints}},methods:{toggle:function(){var t=this;this.httpGetRequest("toggleBlacklistWidget",{},(function(s){switch(parseInt(s.data.status)){case-1:t.status="new";break;case 0:t.status="blacklisted";break;case 1:t.status="good"}}))}},mounted:function(){var t=this;this.httpGetRequest("blacklistWidgetStatus",{},(function(s){switch(parseInt(s.data.status)){case-1:t.status="new";break;case 0:t.status="blacklisted";break;case 1:t.status="good"}}))}},h=Object(r.a)(p,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-target",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Blacklist Monitor"))+"\n ")]),t._v(" "),"blacklisted"===t.status||"good"===t.status?e("div",{staticClass:"sui-actions-right"},[e("label",{staticClass:"sui-toggle"},[e("input",{staticClass:"toggle-checkbox",attrs:{type:"checkbox",checked:"checked"},on:{click:t.toggle}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])]):t._e()]),t._v(" "),e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("Automatically check if you’re on Google’s blacklist every 6 hours. If something’s wrong, we’ll let you know via email."))+"\n ")]),t._v(" "),"fetching"===t.status?e("div",{staticClass:"sui-notice sui-notice-info"},[e("div",{staticClass:"sui-notice-content"},[e("div",{staticClass:"sui-notice-message"},[e("i",{staticClass:"sui-notice-icon sui-icon-info sui-md",attrs:{"aria-hidden":"true"}}),t._v(" "),e("p",[t._v("\n "+t._s(t.__("Fetching your domain info..."))+"\n ")])])])]):"new"===t.status?e("form",{staticClass:"margin-top-30",attrs:{method:"post"}},[e("submit-button",{attrs:{type:"button","css-class":"sui-button-blue",state:t.state},on:{click:function(s){return t.toggle(!0)}}},[t._v("\n "+t._s(t.__("Activate"))+"\n ")])],1):"blacklisted"===t.status?e("div",{staticClass:"sui-notice sui-notice-error"},[e("div",{staticClass:"sui-notice-content"},[e("div",{staticClass:"sui-notice-message"},[e("i",{staticClass:"sui-notice-icon sui-icon-info sui-md",attrs:{"aria-hidden":"true"}}),t._v(" "),e("p",[t._v("\n "+t._s(t.__("Your domain is currently on Google’s blacklist. Check out the article below to find out how to fix up your domain."))+"\n ")])])])]):"good"===t.status?e("div",{staticClass:"sui-notice sui-notice-success"},[e("div",{staticClass:"sui-notice-content"},[e("div",{staticClass:"sui-notice-message"},[e("i",{staticClass:"sui-notice-icon sui-icon-info sui-md",attrs:{"aria-hidden":"true"}}),t._v(" "),e("p",[t._v("\n "+t._s(t.__("Your domain is currently clean."))+"\n ")])])])]):t._e(),t._v(" "),"new"!==t.status?e("div",{staticClass:"sui-center-box no-padding-bottom"},[e("p",{staticClass:"sui-p-small"},[t._v("\n "+t._s(t.__("Want to know more about blacklisting?"))+" "),e("a",{attrs:{target:"_blank",href:"https://premium.wpmudev.org/blog/get-off-googles-blacklist/"}},[t._v(t._s(t.__("Read this article.")))])])]):t._e()]),t._v(" "),e("overlay",{directives:[{name:"show",rawName:"v-show",value:!0===t.state.on_saving,expression:"state.on_saving===true"}]})],1)}),[],!1,null,null,null).exports,v={mixins:[n.a],name:"blacklist-free"},f=Object(r.a)(v,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-target",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Blacklist Monitor"))+"\n ")]),t._v(" "),e("div",{staticClass:"sui-actions-left"},[e("span",{staticClass:"sui-tag sui-tag-pro"},[t._v(t._s(t.__("Pro")))])])]),t._v(" "),e("div",{staticClass:"sui-box-body sui-upsell-items"},[e("div",{staticClass:"sui-padding-left sui-padding-right sui-padding-top"},[e("p",[t._v("\n "+t._s(t.__("Automatically check if you’re on Google’s blacklist every 6 hours. If something’s wrong, we’ll let you know via email."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-settings-row sui-upsell-row"},[e("img",{staticClass:"sui-image sui-upsell-image",attrs:{src:t.assetUrl("assets/img/dashboard-blacklist.svg")}}),t._v(" "),e("div",{staticClass:"sui-upsell-notice"},[e("div",[e("p",[t._v("\n "+t._s(t.__("Defender will warn you if your site has been flagged as unsafe. Get blacklist Monitor as part of a WPMU DEV membership."))),e("br"),t._v(" "),e("a",{staticClass:"premium-button sui-button sui-button-purple",attrs:{target:"_blank",href:t.campaign_url("defender_dash_blacklist_upgrade_button")}},[t._v(t._s(t.__("Try Pro Free Today")))]),t._v(".\n ")])])])])])])}),[],!1,null,null,null).exports,m={mixins:[n.a],name:"ip-lockout",data:function(){return{state:{on_saving:!1},nonces:dashboard.ip_lockout.nonces,endpoints:dashboard.ip_lockout.endpoints,summary:dashboard.ip_lockout.summary,notification:dashboard.ip_lockout.notification,enabled:dashboard.ip_lockout.enabled}},methods:{updateSettings:function(){var t=this;this.httpPostRequest("updateSettings",{data:JSON.stringify({login_protection:!0,detect_404:!0})},(function(){t.enabled=!0}))}},computed:{notificationText:function(){return this.notification?this.__("Lockout notifications are enabled"):this.__("Lockout notifications are disabled")}}},g=Object(r.a)(m,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box",attrs:{id:"ip-lockout"}},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-lock",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t"+t._s(t.__("Firewall"))+"\n\t\t")])]),t._v(" "),e("div",{staticClass:"sui-box-body",class:{"no-padding-bottom":!0===t.enabled}},[e("p",[t._v("\n\t\t\t"+t._s(t.__("Protect to your login area and have Defender automatically lockout any suspicious behaviour."))+"\n\t\t")]),t._v(" "),!1===t.enabled?e("form",{attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.updateSettings(s)}}},[e("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue activate",state:t.state}},[t._v("\n\t\t\t\t"+t._s(t.__("Activate"))+"\n\t\t\t")])],1):e("div",{staticClass:"sui-field-list sui-flushed no-border"},[e("div",{staticClass:"sui-field-list-body"},[e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("Last lockout")))])]),t._v(" "),e("span",{domProps:{textContent:t._s(t.summary.lastLockout)}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("Login lockouts this week")))])]),t._v(" "),e("span",{domProps:{textContent:t._s(t.summary.ip.week)}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("404 lockouts this week")))])]),t._v(" "),e("span",{domProps:{textContent:t._s(t.summary.nf.week)}})])])])]),t._v(" "),!0===t.enabled?e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-actions-left"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:t.adminUrl("admin.php?page=wdf-ip-lockout&view=logs")}},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t"+t._s(t.__("View logs"))+"\n\t\t\t")])]),t._v(" "),e("div",{staticClass:"sui-actions-right"},[e("p",{staticClass:"sui-p-small",domProps:{textContent:t._s(t.notificationText)}})])]):t._e()])}),[],!1,null,null,null).exports,b={mixins:[n.a],name:"audit",data:function(){return{state:{on_saving:!1},nonces:dashboard.audit.nonces,endpoints:dashboard.audit.endpoints,enabled:dashboard.audit.enabled,report:dashboard.audit.report,summary:{monthCount:"-",dayCount:"-",weekCount:"n/a",lastEvent:"-"}}},methods:{updateSettings:function(){var t=this;this.httpPostRequest("updateSettings",{data:JSON.stringify({enabled:!0})},(function(){t.enabled=!0,t.$nextTick((function(){t.loadData()}))}))},loadData:function(){var t=this;this.httpGetRequest("summary",{},(function(s){t.summary=s.data}))}},computed:{reportText:function(){return this.report?this.__("Audit log reports are enabled"):this.__("Audit log reports are disabled")}},mounted:function(){!0===this.enabled&&this.loadData()}},y=Object(r.a)(b,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box",attrs:{id:"audit-logging"}},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Audit Logging"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-body",class:{"no-padding-bottom":t.enabled}},[e("p",[t._v("\n "+t._s(t.__("Track and log events when changes are made to your website, giving you full visibility over what's going on behind the scenes."))+"\n ")]),t._v(" "),!1===t.enabled?e("form",{attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.updateSettings(s)}}},[e("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue activate",state:t.state}},[t._v("\n "+t._s(t.__("Activate"))+"\n ")])],1):e("div",[e("div",{staticClass:"sui-notice"},[e("div",{staticClass:"sui-notice-content"},[e("div",{staticClass:"sui-notice-message"},[e("i",{staticClass:"sui-notice-icon sui-icon-info sui-md",attrs:{"aria-hidden":"true"}}),t._v(" "),e("p",[t._v("\n "+t._s(t.summary.weekCount)+" "+t._s(t.__(" events logged in the past 7 days."))+"\n ")])])])]),t._v(" "),e("div",{staticClass:"sui-field-list sui-flushed no-border"},[e("div",{staticClass:"sui-field-list-body"},[e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("Last event logged")))])]),t._v(" "),e("span",[t._v("\n "+t._s(t.summary.lastEvent)+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("Events logged this month")))])]),t._v(" "),e("span",[t._v(t._s(t.summary.monthCount))])])])])])]),t._v(" "),!0===t.enabled?e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-actions-left"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:t.adminUrl("admin.php?page=wdf-logging")}},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("View Logs"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-actions-right"},[e("p",{staticClass:"sui-p-small",domProps:{textContent:t._s(t.reportText)}})])]):t._e(),t._v(" "),t.state.on_saving?e("overlay"):t._e()],1)}),[],!1,null,null,null).exports,C={mixins:[n.a],name:"audit-free"},w=Object(r.a)(C,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Audit Logging"))+"\n ")]),t._v(" "),e("div",{staticClass:"sui-actions-left"},[e("span",{staticClass:"sui-tag sui-tag-pro"},[t._v(t._s(t.__("Pro")))])])]),t._v(" "),e("div",{staticClass:"sui-box-body sui-upsell-items"},[e("div",{staticClass:"sui-padding-left sui-padding-right sui-padding-top"},[e("p",[t._v("\n "+t._s(t.__("Track and log events when changes are made to your website giving you full visibility of what's going on behind the scenes."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-settings-row sui-upsell-row"},[e("img",{staticClass:"sui-image sui-upsell-image",attrs:{src:t.assetUrl("assets/img/audit-presale.svg")}}),t._v(" "),e("div",{staticClass:"sui-upsell-notice"},[e("p",[t._v("\n "+t._s(t.__("Get an automatic report about the changes made on your website with Audit Logging. Get Audit Logging as part of a WPMU DEV membership."))),e("br"),t._v(" "),e("a",{staticClass:"premium-button sui-button sui-button-purple",attrs:{target:"_blank",href:t.campaign_url("defender_dash_auditlogging_upsell_link")}},[t._v(t._s(t.__("Try Pro Free Today")))])])])])])])}),[],!1,null,null,null).exports,k={mixins:[n.a],name:"report",data:function(){return{scan:dashboard.report.scan,ip_lockout:dashboard.report.ip_lockout,audit:dashboard.report.audit}},methods:{statusText:function(t){if(-1===t)return'<span class="sui-tag sui-tag-disabled">'+this.__("Inactive")+"</span>";var s=void 0;switch(parseInt(t)){case 1:s=this.__("Daily");break;case 7:s=this.__("Weekly");break;case 30:s=this.__("Monthly")}return'<span class="sui-tag sui-tag-blue">'+s+"</span>"}}},x=Object(r.a)(k,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-graph-line",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Reporting"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-body no-padding-bottom"},[e("p",[t._v(t._s(t.__("Get tailored security reports delivered to your inbox so you don't have to worry about checking in.")))]),t._v(" "),e("div",{staticClass:"sui-field-list sui-flushed no-border"},[e("div",{staticClass:"sui-field-list-body"},[e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("small",[e("strong",[t._v(t._s(t.__("Malware Scanning")))])])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.statusText(t.scan))}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("small",[e("strong",[t._v(t._s(t.__("Firewall")))])])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.statusText(t.ip_lockout))}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("small",[e("strong",[t._v(t._s(t.__("Audit Logging")))])])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.statusText(t.audit))}})])])])]),t._v(" "),e("div",{staticClass:"sui-box-footer"},[e("p",{staticClass:"sui-p-small text-center"},[t._v("\n "+t._s(t.__("You can also"))+" "),e("a",{attrs:{target:"_blank",href:"https://premium.wpmudev.org/reports/"}},[t._v(t._s(t.__("create PDF reports")))]),t._v(" "+t._s(t.__("to send to your clients via The Hub."))+"\n ")])])])}),[],!1,null,null,null).exports,A={mixins:[n.a],name:"report",data:function(){return{scan:dashboard.report.scan,ip_lockout:dashboard.report.ip_lockout,audit:dashboard.report.audit}},methods:{statusText:function(t){if(-1===t)return'<span class="sui-tag sui-tag-disabled">'+this.__("Inactive")+"</span>";var s=void 0;switch(parseInt(t)){case 1:s=this.__("Daily");break;case 7:s=this.__("Weekly");break;case 30:s=this.__("Monthly")}return'<span class="sui-tag sui-tag-blue">'+s+"</span>"}}},S=Object(r.a)(A,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-graph-line",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Reporting"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-body sui-upsell-items"},[e("div",{staticClass:"sui-box-settings-row no-padding-bottom"},[e("p",[t._v(t._s(t.__("Get tailored security reports delivered to your inbox so you don't have to worry about checking in.")))])]),t._v(" "),e("div",{staticClass:"sui-field-list no-border"},[e("div",{staticClass:"sui-field-list-body"},[e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("small",[e("strong",[t._v(t._s(t.__("Malware Scanning")))])])]),t._v(" "),e("span",{staticClass:"sui-tag sui-tag-disabled"},[t._v(t._s(t.__("Inactive")))])]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("small",[e("strong",[t._v(t._s(t.__("IP Lockouts")))])])]),t._v(" "),e("span",{staticClass:"sui-tag sui-tag-disabled"},[t._v(t._s(t.__("Inactive")))])]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("small",[e("strong",[t._v(t._s(t.__("Audit Logging")))])])]),t._v(" "),e("span",{staticClass:"sui-tag sui-tag-disabled"},[t._v(t._s(t.__("Inactive")))])])])]),t._v(" "),e("div",{staticClass:"sui-box-settings-row sui-upsell-row"},[e("img",{staticClass:"sui-image sui-upsell-image",attrs:{src:t.assetUrl("/assets/img/dev-man-pre.svg")}}),t._v(" "),e("div",{staticClass:"sui-upsell-notice"},[e("p",[t._v("\n "+t._s(t.__("Schedule automatic reports and recieve directly to your inbox. Get reporting as part of a WPMU DEV membership."))),e("br"),t._v(" "),e("a",{staticClass:"premium-button sui-button sui-button-purple",attrs:{target:"_blank",href:t.campaign_url("defender_dash_reports_upsell_link")}},[t._v(t._s(t.__("Try Pro Free Today")))])])])])])])}),[],!1,null,null,null).exports,T={mixins:[n.a],name:"advanced-tools",data:function(){return{state:{on_saving:!1},nonces:dashboard.advanced_tools.nonces,endpoints:dashboard.advanced_tools.endpoints,mask_login:dashboard.advanced_tools.mask_login,security_headers:dashboard.advanced_tools.security_headers}},methods:{updateSettings:function(t){var s=this;this.httpPostRequest("updateSettings",{data:JSON.stringify({settings:{enabled:!0},module:t})},(function(){"auth"===t?s.two_factor.enabled=!0:s.mask_login.enabled=!0}))}}},P=Object(r.a)(T,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box advanced-tools"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-wand-magic",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Advanced Tools"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("Enable advanced tools for enhanced protection against even the most aggressive of hackers and bots."))+"\n ")]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("strong",[t._v(t._s(t.__("Security Headers")))]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Add extra security to your website by enabling and configuring the security headers."))+"\n ")]),t._v(" "),Object.keys(t.security_headers).length?e("div",[e("div",{staticClass:"sui-field-list sui-flushed margin-top-30 no-border"},[e("div",{staticClass:"sui-field-list-body"},t._l(t.security_headers,(function(s){return e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",{domProps:{textContent:t._s(s.title)}})]),t._v(" "),e("span",{staticClass:"sui-tag sui-tag-success"},[t._v(t._s(t.__("Enabled")))])])})),0)]),t._v(" "),e("hr",{staticClass:"sui-flushed no-margin-bottom no-margin-top"})]):t._e(),t._v(" "),e("a",{staticClass:"sui-button margin-top-10",attrs:{href:t.adminUrl("admin.php?page=wdf-advanced-tools&view=security-headers")}},[e("i",{staticClass:"sui-icon-wrench-tool"}),t._v("\n "+t._s(t.__("Configure"))+"\n ")]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("strong",[t._v(t._s(t.__("Mask Login Area")))]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Change the location of WordPress's default login area."))+"\n ")]),t._v(" "),!1===t.mask_login.enabled?e("form",{staticClass:"margin-top-10",attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.updateSettings()}}},[e("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue",state:t.state}},[t._v("\n "+t._s(t.__("Activate"))+"\n ")])],1):!1===t.mask_login.useable?e("div",{staticClass:"sui-notice sui-notice-warning margin-top-10"},[e("div",{staticClass:"sui-notice-content"},[e("div",{staticClass:"sui-notice-message"},[e("p",[t._v("\n "+t._s(t.__("Masking is currently inactive. Choose your URL and save your settings to finish setup."))+"\n "),e("br"),t._v(" "),e("a",{staticClass:"sui-button margin-top-10",attrs:{href:t.adminUrl("admin.php?page=wdf-advanced-tools&view=mask-login")}},[t._v("\n "+t._s(t.__("Finish Setup"))+"\n ")])])])])]):!0===t.mask_login.useable?e("div",{staticClass:"sui-notice sui-notice-success margin-top-10"},[e("div",{staticClass:"sui-notice-content"},[e("div",{staticClass:"sui-notice-message"},[e("i",{staticClass:"sui-notice-icon sui-icon-info sui-md",attrs:{"aria-hidden":"true"}}),t._v(" "),e("p",[t._v("\n "+t._s(t.__("Masking is currently active at "))+"\n "),e("a",{attrs:{target:"_blank",href:t.mask_login.login_url}},[t._v(t._s(t.mask_login.login_url))])])])])]):t._e()])])}),[],!1,null,null,null).exports,j={mixins:[n.a],name:"quick-setup",data:function(){return{state:{on_saving:!1},model:{activate_scan:!0,activate_audit:!0,activate_lockout:!0,activate_blacklist:!0},status:"normal",nonces:dashboard.quick_setup.nonces,endpoints:dashboard.quick_setup.endpoints}},methods:{activate:function(){this.httpPostRequest("activate",this.model,(function(t){window.location.reload()}))},skip:function(){this.httpPostRequest("skip",this.model,(function(t){SUI.closeModal()}))}},mounted:function(){document.onreadystatechange=function(){if("complete"===document.readyState){SUI.openModal("activator","wpbody",void 0,!1,!1)}}}},E=Object(r.a)(j,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-modal sui-modal-lg"},[e("div",{staticClass:"sui-modal-content",attrs:{role:"dialog",id:"activator","aria-modal":"true","aria-labelledby":"Quick setup"}},["normal"===t.status?e("div",{staticClass:"sui-box",attrs:{role:"document"}},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[t._v("\n "+t._s(t.__("Quick Setup"))+"\n ")]),t._v(" "),e("div",{staticClass:"sui-actions-right"},[e("form",{attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.skip(s)}}},[e("submit-button",{attrs:{type:"submit","css-class":"sui-button-ghost quicksetup-skip",state:t.state}},[t._v("\n "+t._s(t.__("Skip"))+"\n ")])],1)])]),t._v(" "),e("form",{attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.activate(s)}}},[e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("Welcome to Defender, the hottest security plugin for WordPress! Let’s quickly set up the basics for you, then you can fine tweak each setting as you go – our recommendations are on by default."))+"\n ")]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-10"},[e("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Automatic Malware Scanning & Reporting"))+"\n ")]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Scan your website for file changes, vulnerabilities and injected code and get notified about anything suspicious."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-2"},[e("div",{staticClass:"sui-form-field tr"},[e("label",{staticClass:"sui-toggle"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.model.activate_scan,expression:"model.activate_scan"}],staticClass:"toggle-checkbox",attrs:{type:"checkbox",name:"activator[]",checked:"",id:"active_scan",value:"activate_scan"},domProps:{checked:Array.isArray(t.model.activate_scan)?t._i(t.model.activate_scan,"activate_scan")>-1:t.model.activate_scan},on:{change:function(s){var e=t.model.activate_scan,i=s.target,a=!!i.checked;if(Array.isArray(e)){var n="activate_scan",o=t._i(e,n);i.checked?o<0&&t.$set(t.model,"activate_scan",e.concat([n])):o>-1&&t.$set(t.model,"activate_scan",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.model,"activate_scan",a)}}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])])])]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-10"},[e("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Audit Logging"))+"\n ")]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Track and log events when changes are made to your website giving you full visibility of what’s going on behind the scenes."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-2"},[e("div",{staticClass:"sui-form-field tr"},[e("label",{staticClass:"sui-toggle"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.model.activate_audit,expression:"model.activate_audit"}],staticClass:"toggle-checkbox",attrs:{type:"checkbox",name:"activator[]",checked:"",id:"active_audit",value:"activate_audit"},domProps:{checked:Array.isArray(t.model.activate_audit)?t._i(t.model.activate_audit,"activate_audit")>-1:t.model.activate_audit},on:{change:function(s){var e=t.model.activate_audit,i=s.target,a=!!i.checked;if(Array.isArray(e)){var n="activate_audit",o=t._i(e,n);i.checked?o<0&&t.$set(t.model,"activate_audit",e.concat([n])):o>-1&&t.$set(t.model,"activate_audit",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.model,"activate_audit",a)}}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])])])]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-10"},[e("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Firewall"))+"\n ")]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Protect your login area and have Defender automatically lockout any suspicious behaviour."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-2"},[e("div",{staticClass:"sui-form-field tr"},[e("label",{staticClass:"sui-toggle"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.model.activate_lockout,expression:"model.activate_lockout"}],staticClass:"toggle-checkbox",attrs:{type:"checkbox",checked:"",name:"activator[]",id:"activate_lockout",value:"activate_lockout"},domProps:{checked:Array.isArray(t.model.activate_lockout)?t._i(t.model.activate_lockout,"activate_lockout")>-1:t.model.activate_lockout},on:{change:function(s){var e=t.model.activate_lockout,i=s.target,a=!!i.checked;if(Array.isArray(e)){var n="activate_lockout",o=t._i(e,n);i.checked?o<0&&t.$set(t.model,"activate_lockout",e.concat([n])):o>-1&&t.$set(t.model,"activate_lockout",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.model,"activate_lockout",a)}}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])])])]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-10"},[e("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Blacklist Monitor"))+"\n ")]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Automatically check if you’re on Google’s blacklist every 6 hours. If something’s wrong, we’ll let you know via email."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-2"},[e("div",{staticClass:"sui-form-field tr"},[e("label",{staticClass:"sui-toggle"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.model.activate_blacklist,expression:"model.activate_blacklist"}],staticClass:"toggle-checkbox",attrs:{type:"checkbox",checked:"",name:"activator[]",id:"activate_blacklist",value:"activate_blacklist"},domProps:{checked:Array.isArray(t.model.activate_blacklist)?t._i(t.model.activate_blacklist,"activate_blacklist")>-1:t.model.activate_blacklist},on:{change:function(s){var e=t.model.activate_blacklist,i=s.target,a=!!i.checked;if(Array.isArray(e)){var n="activate_blacklist",o=t._i(e,n);i.checked?o<0&&t.$set(t.model,"activate_blacklist",e.concat([n])):o>-1&&t.$set(t.model,"activate_blacklist",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.model,"activate_blacklist",a)}}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])])])])]),t._v(" "),e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-9"},[e("small",[t._v("\n "+t._s(t.__("Note: These services will be configured with our recommended settings. You can change these at any time."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-3"},[e("submit-button",{attrs:{type:"submit",state:t.state,"css-class":"sui-button-blue quicksetup-apply"}},[t._v("\n "+t._s(t.__("Get Started"))+"\n ")])],1)])])]),t._v(" "),t.maybeHideBranding?e("img",{staticClass:"sui-image sui-image-center",attrs:{src:t.assetUrl("/assets/img/defender-activator.svg")}}):t._e()]):e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("Just a moment while Defender activates those services for you.."))+"\n ")]),t._v(" "),t._m(0),t._v(" "),t._m(1)])])])])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-progress-block"},[s("div",{staticClass:"sui-progress"},[s("div",{staticClass:"sui-progress-text scan-progress-text sui-icon-loader sui-loading"},[s("span",[this._v("0%")])]),this._v(" "),s("div",{staticClass:"sui-progress-bar scan-progress-bar"},[s("span",{staticStyle:{width:"0%"}})])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-progress-state"},[s("span",{staticClass:"status-text"})])}],!1,null,null,null).exports,I={mixins:[n.a],name:"quick-setup",data:function(){return{state:{on_saving:!1},model:{activate_scan:!0,activate_lockout:!0},status:"normal",nonces:dashboard.quick_setup.nonces,endpoints:dashboard.quick_setup.endpoints}},methods:{activate:function(){this.httpPostRequest("activate",this.model,(function(t){window.location.reload()}))},skip:function(){this.httpPostRequest("skip",this.model,(function(t){SUI.closeModal()}))}},mounted:function(){document.onreadystatechange=function(){if("complete"===document.readyState){SUI.openModal("activator","wpbody",void 0,!1,!1)}}}},O=Object(r.a)(I,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-modal sui-modal-lg"},[e("div",{staticClass:"sui-modal-content",attrs:{role:"dialog",id:"activator","aria-modal":"true","aria-labelledby":"Quick setup"}},["normal"===t.status?e("div",{staticClass:"sui-box",attrs:{role:"document"}},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[t._v("\n "+t._s(t.__("Quick Setup"))+"\n ")]),t._v(" "),e("div",{staticClass:"sui-actions-right"},[e("form",{attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.skip(s)}}},[e("submit-button",{attrs:{type:"submit","css-class":"sui-button-ghost",state:t.state}},[t._v("\n "+t._s(t.__("Skip"))+"\n ")])],1)])]),t._v(" "),e("form",{attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.activate(s)}}},[e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("Welcome to Defender, the hottest security plugin for WordPress! Let’s quickly set up the basics for you, then you can fine tweak each setting as you go – our recommendations are on by default."))+"\n ")]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-10"},[e("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Malware Scanning"))+"\n ")]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Scan your website for file changes, vulnerabilities and injected code and get notified about anything suspicious."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-2"},[e("div",{staticClass:"sui-form-field tr"},[e("label",{staticClass:"sui-toggle"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.model.activate_scan,expression:"model.activate_scan"}],staticClass:"toggle-checkbox",attrs:{type:"checkbox",name:"activator[]",checked:"",id:"active_scan",value:"activate_scan"},domProps:{checked:Array.isArray(t.model.activate_scan)?t._i(t.model.activate_scan,"activate_scan")>-1:t.model.activate_scan},on:{change:function(s){var e=t.model.activate_scan,i=s.target,a=!!i.checked;if(Array.isArray(e)){var n="activate_scan",o=t._i(e,n);i.checked?o<0&&t.$set(t.model,"activate_scan",e.concat([n])):o>-1&&t.$set(t.model,"activate_scan",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.model,"activate_scan",a)}}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])])])]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-10"},[e("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Firewall"))+"\n ")]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Protect your login area and have Defender automatically lockout any suspicious behaviour."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-2"},[e("div",{staticClass:"sui-form-field tr"},[e("label",{staticClass:"sui-toggle"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.model.activate_lockout,expression:"model.activate_lockout"}],staticClass:"toggle-checkbox",attrs:{type:"checkbox",checked:"",name:"activator[]",id:"activate_lockout",value:"activate_lockout"},domProps:{checked:Array.isArray(t.model.activate_lockout)?t._i(t.model.activate_lockout,"activate_lockout")>-1:t.model.activate_lockout},on:{change:function(s){var e=t.model.activate_lockout,i=s.target,a=!!i.checked;if(Array.isArray(e)){var n="activate_lockout",o=t._i(e,n);i.checked?o<0&&t.$set(t.model,"activate_lockout",e.concat([n])):o>-1&&t.$set(t.model,"activate_lockout",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.model,"activate_lockout",a)}}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])])])])]),t._v(" "),e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-9"},[e("small",[t._v("\n "+t._s(t.__("Note: These services will be configured with our recommended settings. You can change these at any time."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-3"},[e("submit-button",{attrs:{type:"submit",state:t.state,"css-class":"sui-button sui-button-blue"}},[t._v("\n "+t._s(t.__("Get Started"))+"\n ")])],1)])])]),t._v(" "),t.maybeHideBranding?e("img",{staticClass:"sui-image sui-image-center",attrs:{src:t.assetUrl("/assets/img/defender-activator.svg")}}):t._e()]):e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("Just a moment while Defender activates those services for you.."))+"\n ")]),t._v(" "),t._m(0),t._v(" "),t._m(1)])])])])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-progress-block"},[s("div",{staticClass:"sui-progress"},[s("div",{staticClass:"sui-progress-text scan-progress-text sui-icon-loader sui-loading"},[s("span",[this._v("0%")])]),this._v(" "),s("div",{staticClass:"sui-progress-bar scan-progress-bar"},[s("span",{staticStyle:{width:"0%"}})])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-progress-state"},[s("span",{staticClass:"status-text"})])}],!1,null,null,null).exports,$={mixins:[n.a],name:"cross-sale"},D=Object(r.a)($,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("section",[e("div",{staticClass:"sui-row",attrs:{id:"sui-cross-sell-footer"}},[t._m(0),t._v(" "),e("h3",[t._v(t._s(t.__("Check out our other free wordpress.org plugins!")))])]),t._v(" "),e("div",{staticClass:"sui-row sui-cross-sell-modules"},[e("div",{staticClass:"sui-col-md-4"},[t._m(1),t._v(" "),e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-body"},[e("h3",[t._v(t._s(t.__("Smush Image Compression and Optimization")))]),t._v(" "),e("p",[t._v(t._s(t.__("Resize, optimize and compress all of your images with the incredibly powerful and award-winning, 100% free WordPress image optimizer.")))]),t._v(" "),e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:"https://wordpress.org/plugins/wp-smushit/",target:"_blank"}},[t._v("\n "+t._s(t.__("View features"))+" "),e("i",{staticClass:"sui-icon-arrow-right",attrs:{"aria-hidden":"true"}})])])])]),t._v(" "),e("div",{staticClass:"sui-col-md-4"},[t._m(2),t._v(" "),e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-body"},[e("h3",[t._v(t._s(t.__("Hummingbird Page Speed Optimization")))]),t._v(" "),e("p",[t._v(t._s(t.__("Performance Tests, File Optimization & Compression, Page, Browser & Gravatar Caching, GZIP Compression, CloudFlare Integration & more.")))]),t._v(" "),e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:"https://wordpress.org/plugins/hummingbird-performance/",target:"_blank"}},[t._v("\n "+t._s(t.__("View features"))+" "),e("i",{staticClass:"sui-icon-arrow-right",attrs:{"aria-hidden":"true"}})])])])]),t._v(" "),e("div",{staticClass:"sui-col-md-4"},[t._m(3),t._v(" "),e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-body"},[e("h3",[t._v(t._s(t.__("SmartCrawl Search Engine Optimization")))]),t._v(" "),e("p",[t._v(t._s(t.__("Customize Titles & Meta Data, OpenGraph, Twitter & Pinterest Support, Auto-Keyword Linking, SEO & Readability Analysis, Sitemaps, URL Crawler & more.")))]),t._v(" "),e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:"https://wordpress.org/plugins/smartcrawl-seo/",target:"_blank"}},[t._v("\n "+t._s(t.__("View features"))+" "),e("i",{staticClass:"sui-icon-arrow-right",attrs:{"aria-hidden":"true"}})])])])])]),t._v(" "),e("div",{staticClass:"sui-cross-sell-bottom"},[e("h3",[t._v(t._s(t.__("WPMU DEV - Your All-in-One WordPress Platform")))]),t._v(" "),e("p",[t._v(t._s(t.__("Pretty much everything you need for developing and managing WordPress based websites, and then some")))]),t._v(" "),e("a",{staticClass:"sui-button sui-button-green",attrs:{href:"https://premium.wpmudev.org/?utm_source=defender&utm_medium=plugin&utm_campaign=defender_dash_footer_upsell_notice",target:"_blank",role:"button"}},[t._v(t._s(t.__("Learn more"))+"\n ")]),t._v(" "),e("img",{staticClass:"sui-image",attrs:{src:t.assetUrl("assets/img/dev-team.png"),srcset:t.assetUrl("assets/img/dev-team@2x.png 2x"),"aria-hidden":"true"}})])])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("div",[s("span",{staticClass:"sui-icon-plugin-2"})])},function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-cross-1",attrs:{"aria-hidden":"true"}},[s("span")])},function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-cross-2",attrs:{"aria-hidden":"true"}},[s("span")])},function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-cross-3",attrs:{"aria-hidden":"true"}},[s("span")])}],!1,null,null,null).exports,W={mixins:[n.a],name:"two-fa",data:function(){return{state:{on_saving:!1},enabled:dashboard.two_fa.enabled,useable:dashboard.two_fa.useable,nonces:dashboard.two_fa.nonces,endpoints:dashboard.two_fa.endpoints}},methods:{updateSettings:function(t){var s=this,e={enabled:!0};this.httpPostRequest("updateSettings",{data:JSON.stringify({settings:e,module:"auth"})},(function(){s.enabled=!0}))}}},q=Object(r.a)(W,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box two_fa"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-lock",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Two-Factor Authentication"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-body"},[e("p",[t._v(t._s(t.__("Add an extra layer of security to your WordPress account to ensure that you’re the only person who can log in, even if someone else knows your password."))+"\n ")]),t._v(" "),!1===t.enabled?e("form",{staticClass:"margin-top-10 margin-bottom-10",attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.updateSettings("auth")}}},[e("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue",state:t.state}},[t._v("\n "+t._s(t.__("Activate"))+"\n ")])],1):!1===t.useable?e("div",{staticClass:"sui-notice sui-notice-warning margin-bottom-30 margin-top-10"},[e("div",{staticClass:"sui-notice-content"},[e("div",{staticClass:"sui-notice-message"},[e("i",{staticClass:"sui-notice-icon sui-icon-info sui-md",attrs:{"aria-hidden":"true"}}),t._v(" "),e("p",{domProps:{textContent:t._s(t.__("Two-factor authentication is currently inactive. Configure and save your settings to finish setup."))}}),t._v(" "),e("p",[e("a",{staticClass:"sui-button",attrs:{href:t.adminUrl("admin.php?page=wdf-2fa")}},[t._v("\n "+t._s(t.__("Finish Setup"))+"\n ")])])])])]):!0===t.useable?e("div",{staticClass:"sui-notice sui-notice-success margin-top-10 margin-bottom-30"},[e("div",{staticClass:"sui-notice-message"},[e("div",{staticClass:"sui-notice-content"},[e("div",{staticClass:"sui-notice-message"},[e("i",{staticClass:"sui-notice-icon sui-icon-info sui-md",attrs:{"aria-hidden":"true"}}),t._v(" "),e("p",{domProps:{textContent:t._s(t.__("Two-factor authentication is now active. User roles with this feature enabled must visit their Profile page to complete setup and sync their account with the Authenticator app."))}})])])])]):t._e(),t._v(" "),!0===t.useable?e("small",{domProps:{textContent:t._s(t.__("Note: Each user on your website must individually enable two-factor authentication via their user profile in order to enable and use this security feature."))}}):t._e()])])}),[],!1,null,null,null).exports,R={name:"waf",mixins:[n.a],data:function(){return{on_us:dashboard.waf.waf.hosted,site_id:dashboard.waf.site_id,status:dashboard.waf.waf.status}},computed:{get_migrate_url:function(){return"https://premium.wpmudev.org/hub2/site/"+this.site_id+"/hosting"},get_waf_url:function(){return"https://premium.wpmudev.org/hub2/site/"+this.site_id+"/hosting/tools#update-waf"},get_waf_text:function(){return this.vsprintf(this.__('At this time, you can manage all WAF settings via <a target="_blank" href="%s">The Hub.</a>'),"https://premium.wpmudev.org/hub2/")},get_footer_text:function(){return!1===this.on_us?this.vsprintf(this.__('You can learn more about the WAF <a target="_blank" href="%s">here</a>.'),"http://premium.wpmudev.org/waf"):!0===this.on_us&&!1===this.status?this.vsprintf(this.__('Enable this feature via <a target="_blank" href="%s">The Hub</a> today or learn more <a target="_blank" href="%s">here</a>.'),this.get_waf_url,"http://premium.wpmudev.org/waf"):!0===this.on_us&&!0===this.status?this.vsprintf(this.__('At this time, you can manage all WAF settings via <a href="%s">The Hub</a>.'),this.get_waf_url):void 0}}},M=Object(r.a)(R,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("img",{attrs:{src:t.assetUrl("/assets/img/waf@3x.svg")}}),t._v(" \n "+t._s(t.__("Web Application Firewall"))+"\n ")])]),t._v(" "),!1===t.on_us?e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("The new Web Application Firewall (WAF) filters incoming requests against a highly optimized managed ruleset to block hackers and bot attacks before they reach your site. It's our basic Firewall with advanced layers of protection."))+"\n ")]),t._v(" "),e("a",{staticClass:"sui-button sui-button-blue",attrs:{target:"_blank",href:t.get_migrate_url}},[t._v(t._s(t.__("Migrate my site")))]),t._v(" "),e("p",{staticClass:"sui-description margin-top-30 text-center",domProps:{innerHTML:t._s(t.get_footer_text)}})]):t._e(),t._v(" "),!0===t.on_us&&!1===t.status?e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("The new Web Application Firewall (WAF) filters incoming requests against a highly optimized managed ruleset to block hackers and bot attacks before they reach your site. It's our basic Firewall with advanced layers of protection."))+"\n ")]),t._v(" "),e("a",{staticClass:"sui-button sui-button-blue",attrs:{target:"_blank",href:t.get_waf_url}},[t._v(t._s(t.__("Activate WAF")))]),t._v(" "),e("p",{staticClass:"sui-description margin-top-30 text-center",domProps:{innerHTML:t._s(t.get_footer_text)}})]):t._e(),t._v(" "),!0===t.on_us&&!0===t.status?e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("The new Web Application Firewall (WAF) filters incoming requests against a highly optimized managed ruleset to block hackers and bot attacks before they reach your site. It's our basic Firewall with advanced layers of protection."))+"\n ")]),t._v(" "),e("div",{staticClass:"sui-notice sui-notice-info"},[e("div",{staticClass:"sui-notice-content"},[e("div",{staticClass:"sui-notice-message"},[e("i",{staticClass:"sui-notice-icon sui-icon-info sui-md",attrs:{"aria-hidden":"true"}}),t._v(" "),e("p",[t._v(t._s(t.__("This site has WAF protection enabled.")))])])])]),t._v(" "),e("p",{staticClass:"text-center sui-description no-margin-top",domProps:{innerHTML:t._s(t.get_waf_text)}})]):t._e()])}),[],!1,null,null,null).exports,L={name:"waf_free",mixins:[n.a],computed:{get_url:function(){return defender.is_membership?"http://premium.wpmudev.org/waf":this.campaignUrl("waf","defender_dash_waf_upgrade_button")}}},U=Object(r.a)(L,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("img",{attrs:{src:t.assetUrl("/assets/img/waf@3x.svg")}}),t._v(" \n "+t._s(t.__("Web Application Firewall"))+"\n ")]),t._v(" "),e("div",{staticClass:"sui-actions-left"},[e("span",{staticClass:"sui-tag sui-tag-pro"},[t._v(t._s(t.__("Pro")))])])]),t._v(" "),e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("The new Web Application Firewall (WAF) filters incoming requests against a highly optimized managed ruleset to block hackers and bot attacks before they reach your site. It's our basic Firewall with advanced layers of protection."))+"\n ")]),t._v(" "),e("div",{staticClass:"sui-box-settings-row sui-upsell-row"},[e("div",{staticClass:"sui-upsell-notice no-padding"},[e("p",[t._v("\n "+t._s(t.__("This feature is available to members who host their sites with WPMU DEV."))),e("br"),t._v(" "),e("a",{staticClass:"premium-button sui-button sui-button-purple",attrs:{target:"_blank",href:t.get_url}},[t._v(t._s(t.__("Try Pro Free Today")))])])])])])])}),[],!1,null,null,null).exports,F={name:"waf-modal",mixins:[n.a],data:function(){return{nonces:dashboard.new_features.nonces,endpoints:dashboard.new_features.endpoints,state:{on_saving:!1}}},methods:{hide:function(){this.httpPostRequest("hide",this.model,(function(t){SUI.closeModal()}))}},computed:{get_link_line:function(){var t="",s="http://premium.wpmudev.org/waf";return dashboard.waf.waf.hosted&&1!==parseInt(defender.is_free)?dashboard.waf.waf.hosted&&!dashboard.waf.waf.whitelabel_enable&&(t=this.vsprintf(this.__('Enable this feature via <a target="_blank" href="%s"">The Hub</a> today or learn more <a target="_blank" href="%s">here</a>.'),"https://premium.wpmudev.org/hub2/site/"+dashboard.waf.site_id+"/hosting/tools#update-waf",s)):t=this.vsprintf(this.__('This feature is available to members who host their sites with WPMU DEV. You can learn more about WAF <a target="_blank" href="%s">here</a>.'),s),t}},mounted:function(){document.onreadystatechange=function(){if("complete"===document.readyState){SUI.openModal("waf-modal","wpbody","waf-modal",!1,!1)}}}},H=Object(r.a)(F,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-modal sui-modal-md"},[e("div",{staticClass:"sui-modal-content",attrs:{role:"dialog",id:"waf-modal","aria-modal":"true","aria-label":"waf-modal-label"}},[e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header sui-flatten sui-content-center sui-spacing-top--60"},[e("figure",{staticClass:"sui-box-banner",attrs:{"aria-hidden":"true"}},[e("img",{attrs:{src:t.assetUrl("assets/img/waf-modal.png")}})]),t._v(" "),e("button",{staticClass:"modal-close-button sui-button-icon sui-button-float--right",on:{click:t.hide}},[e("i",{staticClass:"sui-icon-close sui-md",attrs:{"aria-hidden":"true"}}),t._v(" "),e("span",{staticClass:"sui-screen-reader-text"},[t._v(t._s(t.__("Close this dialog.")))])]),t._v(" "),e("h3",{staticClass:"sui-box-title sui-lg",attrs:{id:"waf-modal-label"}},[t._v("\n "+t._s(t.__("New Web Application Firewall"))+"\n ")]),t._v(" "),e("p",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("The new Web Application Firewall (WAF) is a first layer of protection to block hackers and bot attacks before they reach your site."))+"\n ")]),t._v(" "),e("div",{staticClass:"text-left waf-description"},[e("p",{staticClass:"sui-description how-does-it-work"},[t._v(t._s(t.__("How Does it Work?")))]),t._v(" "),e("p",{staticClass:"sui-description"},[t._v(t._s(t.__("The WAF filters requests against a highly optimized managed ruleset covering common attacks (OWASP top ten) and performs virtual patching of WordPress core, plugin, and theme vulnerabilities.")))]),t._v(" "),e("p",{staticClass:"sui-description",domProps:{innerHTML:t._s(t.get_link_line)}})])]),t._v(" "),e("div",{staticClass:"sui-box-footer sui-flatten sui-content-center sui-spacing-bottom--50"},[e("submit-button",{attrs:{type:"submit",state:t.state,"css-class":"sui-button quicksetup-apply"},on:{click:t.hide}},[t._v("\n "+t._s(t.__("Got it"))+"\n ")])],1)])])])}),[],!1,null,null,null).exports,z={mixins:[n.a],name:"dashboard",data:function(){return{quick_setup:parseInt(dashboard.quick_setup.show),show_features:dashboard.new_features.show,is_free:parseInt(defender.is_free),security_tweaks:{count:{issues:dashboard.security_tweaks.count.issues,resolved:dashboard.security_tweaks.count.resolved,total:dashboard.security_tweaks.count.total}},queue_waf:dashboard.waf.waf.maybe_show,scan:{count:0,scan:dashboard.scan.scan},ip_lockout:{last_lockout:dashboard.ip_lockout.summary.lastLockout},nonces:dashboard.scan.nonces,endpoints:dashboard.scan.endpoints,state:{on_saving:!1}}},components:{WafModal:H,waf_free:U,Waf:M,TwoFa:q,"security-tweaks":l,"file-scanning":u,"file-scanning-free":_,blacklist:h,"blacklist-free":f,"ip-lockout":g,audit:y,"audit-free":w,report:x,"report-free":S,"advanced-tools":P,"quick-setup":E,"quick-setup-free":O,"cross-sale":D},methods:{countScanIssues:function(){var t=dashboard.scan.scan;return null===t||"init"===t.status||"progress"===t.status?0:t.count.total},newScan:function(){var t=this;this.httpPostRequest("newScan",{},(function(s){t.$nextTick((function(){var e=t.$refs["file-scanning"];e.scan={},t.scan.scan={},t.scan.scan.status=s.data.status,e.scan.status=s.data.status,e.scan.percent=s.data.percent,e.scan.status_text=s.data.status_text,e.polling()}))}))},scanCanceled:function(t){this.scan.scan=t},scanCompleted:function(t,s){this.scan.count=s,this.scan.scan=t}},computed:{tooltips:function(){var t=this.__("You don't have any outstanding security issues, nice work!");return 1===this.security_tweaks.count.issues&&0===this.scan.count?t=this.__("You have one security tweak left to do. We recommend you action it, or ignore it if it's irrelevant."):0===this.security_tweaks.count.issues&&1===this.scan.count?t=this.__("We've detected a potential security risk in your file system. We recommend you take a look and action a fix, or ignore the file if it's harmless."):1===this.security_tweaks.count.issues&&1===this.scan.count?t=this.__("You have one security tweak left to do, and one potential security risk in your file system. We recommend you take a look and action fixes, or ignore the issues if they are harmless."):1===this.security_tweaks.count.issues&&this.scan.count>1?t=this.vsprintf(this.__("You have one security tweak left to do, and %s potential security risks in your file system. We recommend you take a look and action fixes, or ignore the issues if they are harmless"),this.scan.count):this.security_tweaks.count.issues>1&&1===this.scan.count?t=this.vsprintf(this.__("You have %s security tweaks left to do, and one potential security risk in your file system. We recommend you take a look and action fixes, or ignore the issues if they are harmless."),this.security_tweaks.count.issues):this.security_tweaks.count.issues>1&&this.scan.count>1?t=this.vsprintf(this.__("You have %s security tweaks left to do, and %s potential security risks in your file system. We recommend you take a look and action fixes, or ignore the issues if they are harmless."),this.security_tweaks.count.issues,this.scan.count):this.security_tweaks.count.issues>1&&0===this.scan.count?t=this.vsprintf(this.__("You have %d security tweaks left to do. We recommend you action it, or ignore it if it's irrelevant."),this.security_tweaks.count.issues):0===this.security_tweaks.count.issues&&this.scan.count>1&&(t=this.vsprintf(this.__("We've detected %d potential security risks in your file system. We recommend you take a look and action a fix, or ignore the file if it's harmless."),this.scan.count)),t},securityTweaksIndicator:function(){return this.security_tweaks.count.resolved+"/"+this.security_tweaks.count.total},countTotalIssues:function(){return this.scan.count+this.security_tweaks.count.issues}},mounted:function(){var t=this;this.$nextTick((function(){t.scan.count=t.countScanIssues()}))}},V=Object(r.a)(z,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-wrap",class:t.maybeHighContrast()},[e("div",{staticClass:"defender-dashboard"},[e("div",{staticClass:"sui-header"},[e("h1",{staticClass:"sui-header-title"},[t._v(t._s(t.__("Dashboard")))]),t._v(" "),e("div",{staticClass:"sui-actions-right"},[e("doc-link",{attrs:{link:"https://premium.wpmudev.org/docs/wpmu-dev-plugins/defender"}})],1)]),t._v(" "),e("summary-box",[e("div",{staticClass:"sui-summary-segment"},[e("div",{staticClass:"sui-summary-details"},[e("span",{staticClass:"sui-summary-large",domProps:{textContent:t._s(t.countTotalIssues)}}),t._v(" "),e("span",{staticClass:"sui-tooltip sui-tooltip-top-left sui-tooltip-constrained",attrs:{"data-tooltip":t.tooltips}},[0===this.security_tweaks.count.issues&&0===this.scan.count?e("i",{staticClass:"sui-icon-check-tick sui-success",attrs:{"aria-hidden":"true"}}):e("i",{staticClass:"sui-icon-info sui-warning",attrs:{"aria-hidden":"true"}})]),t._v(" "),e("span",{staticClass:"sui-summary-sub"},[t._v(t._s(t.__("security issues")))])])]),t._v(" "),e("div",{staticClass:"sui-summary-segment"},[e("ul",{staticClass:"sui-list"},[e("li",[e("span",{staticClass:"sui-list-label"},[t._v(t._s(t.__("Security Tweaks Actioned")))]),t._v(" "),e("span",{staticClass:"sui-list-detail",domProps:{textContent:t._s(t.securityTweaksIndicator)}})]),t._v(" "),e("li",[e("span",{staticClass:"sui-list-label"},[t._v(t._s(t.__("Malware Scan Issues")))]),t._v(" "),e("span",{staticClass:"sui-list-detail"},[null===t.scan.scan?e("submit-button",{attrs:{type:"button","css-class":"sui-button-blue",state:t.state},on:{click:t.newScan}},[t._v("\n "+t._s(t.__("New Scan"))+"\n ")]):"init"===t.scan.scan.status||"progress"===t.scan.scan.status?e("i",{staticClass:"sui-icon-loader sui-loading"}):0===t.scan.count?e("i",{staticClass:"sui-icon-check-tick sui-success"}):e("span",{staticClass:"sui-tag sui-tag-error"},[t._v(t._s(t.scan.count))])],1)]),t._v(" "),e("li",[e("span",{staticClass:"sui-list-label"},[t._v(t._s(t.__("Last Lockout")))]),t._v(" "),e("span",{staticClass:"sui-list-detail"},[t._v(t._s(t.ip_lockout.last_lockout))])])])])]),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-6"},[e("security-tweaks"),t._v(" "),0===t.is_free&&!0===t.queue_waf?e("waf"):t._e(),t._v(" "),1===t.is_free?e("waf_free"):t._e(),t._v(" "),0===t.is_free?e("blacklist"):1===t.is_free?e("blacklist-free"):t._e(),t._v(" "),e("advanced-tools")],1),t._v(" "),e("div",{staticClass:"sui-col-md-6"},[0===t.is_free?e("file-scanning",{ref:"file-scanning",on:{scanCanceled:t.scanCanceled,scanCompleted:t.scanCompleted}}):1===t.is_free?e("file-scanning-free",{ref:"file-scanning",attrs:{scanCompleted:"scanCompleted"},on:{scanCanceled:t.scanCanceled}}):t._e(),t._v(" "),e("ip-lockout"),t._v(" "),0===t.is_free&&t.queue_waf?e("audit"):1===t.is_free?e("audit-free"):t._e(),t._v(" "),e("two-fa"),t._v(" "),0===t.is_free?e("report"):1===t.is_free?e("report-free"):t._e()],1)]),t._v(" "),1===t.is_free?e("cross-sale"):t._e(),t._v(" "),e("app-footer")],1),t._v(" "),1===t.quick_setup&&0===t.is_free?e("quick-setup"):1===t.quick_setup&&1===t.is_free?e("quick-setup-free"):1==t.show_features?e("waf-modal"):t._e()],1)}),[],!1,null,null,null).exports,N=e("./src/component/overlay.vue"),G=e("./src/component/submit-button.vue"),Y=e("./src/component/footer.vue"),B=e("./src/component/doc-link.vue"),Q=e("./src/component/summary-box.vue");a.a.component("overlay",N.a),a.a.component("submit-button",G.a),a.a.component("app-footer",Y.a),a.a.component("doc-link",B.a),a.a.component("summary-box",Q.a);new a.a({el:"#defender",components:{dashboard:V},render:function(t){return t(V)}})},"./src/helper/base_hepler.js":function(t,s,e){"use strict";var i=e("./node_modules/xss/lib/index.js"),a=function(t,s){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,s){var e=[],i=!0,a=!1,n=void 0;try{for(var o,r=t[Symbol.iterator]();!(i=(o=r.next()).done)&&(e.push(o.value),!s||e.length!==s);i=!0);}catch(t){a=!0,n=t}finally{try{!i&&r.return&&r.return()}finally{if(a)throw n}}return e}(t,s);throw new TypeError("Invalid attempt to destructure non-iterable instance")},n=wp.i18n,o={whiteList:{a:["href","title","target"],span:["class"],strong:["*"]},safeAttrValue:function(t,s,e,a){return"a"===t&&"href"===s&&"%s"===e?"%s":Object(i.safeAttrValue)(t,s,e,a)}},r=new i.FilterXSS(o),l=[];s.a={methods:{__:function(t){var s=n.__(t,"wpdef");return r.process(s)},xss:function(t){return r.process(t)},vsprintf:function(t){return n.sprintf.apply(null,arguments)},siteUrl:function(t){return void 0!==t?defender.site_url+t:defender.site_url},adminUrl:function(t){return void 0!==t?defender.admin_url+t:defender.admin_url},assetUrl:function(t){return defender.defender_url+t},maybeHighContrast:function(){return{"sui-color-accessible":!0===defender.misc.high_contrast}},maybeHideBranding:function(){return defender.whitelabel.hide_branding},isWhitelabelEnabled:function(){return defender.whitelabel.enabled},campaign_url:function(t){return"https://premium.wpmudev.org/project/wp-defender/?utm_source=defender&utm_medium=plugin&utm_campaign="+t},campaignUrl:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"https://premium.wpmudev.org/"+t+"?utm_source=defender&utm_medium=plugin&utm_campaign="+s},httpRequest:function(t,s,e,i,a){var n=this;void 0===a&&(this.state.on_saving=!0);var o=ajaxurl+"?action="+this.endpoints[s]+"&_wpnonce="+this.nonces[s],r=jQuery.ajax({url:o,method:t,data:e,success:function(t){var s=t.data;n.state.on_saving=!1,void 0!==s&&void 0!==s.message&&(t.success?Defender.showNotification("success",s.message):Defender.showNotification("error",s.message)),void 0!==i&&i(t)}});l.push(r)},httpGetRequest:function(t,s,e,i){this.httpRequest("get",t,s,e,i)},httpPostRequest:function(t,s,e,i){this.httpRequest("post",t,s,e,i)},abortAllRequests:function(){for(var t=0;t<l.length;t++)l[t].abort()},getQueryStringParams:function(t){return t?(/^[?#]/.test(t)?t.slice(1):t).split("&").reduce((function(t,s){var e=s.split("="),i=a(e,2),n=i[0],o=i[1];return t[n]=o?decodeURIComponent(o.replace(/\+/g," ")):"",t}),{}):{}},rebindSUI:function(){jQuery("select:not([multiple])").each((function(){SUI.suiSelect(this)})),jQuery(".sui-accordion").each((function(){SUI.suiAccordion(this)}));var t=jQuery(".sui-wrap");SUI.dialogs={},jQuery(".sui-dialog").each((function(){SUI.dialogs[this.id]=new A11yDialog(this,t)}))}}}},vue:function(t,s){t.exports=Vue}});
assets/app/ip-lockout.js CHANGED
@@ -1 +1 @@
1
- !function(t){var e=window.webpackHotUpdate;window.webpackHotUpdate=function(t,s){!function(t,e){if(!y[t]||!b[t])return;for(var s in b[t]=!1,e)Object.prototype.hasOwnProperty.call(e,s)&&(h[s]=e[s]);0==--f&&0===v&&x()}(t,s),e&&e(t,s)};var s,i=!0,n="1f0325ef5048e0254986",a={},o=[],r=[];function l(t){var e=D[t];if(!e)return P;var i=function(i){return e.hot.active?(D[i]?-1===D[i].parents.indexOf(t)&&D[i].parents.push(t):(o=[t],s=i),-1===e.children.indexOf(i)&&e.children.push(i)):(console.warn("[HMR] unexpected require("+i+") from disposed module "+t),o=[]),P(i)},n=function(t){return{configurable:!0,enumerable:!0,get:function(){return P[t]},set:function(e){P[t]=e}}};for(var a in P)Object.prototype.hasOwnProperty.call(P,a)&&"e"!==a&&"t"!==a&&Object.defineProperty(i,a,n(a));return i.e=function(t){return"ready"===d&&_("prepare"),v++,P.e(t).then(e,(function(t){throw e(),t}));function e(){v--,"prepare"===d&&(g[t]||C(t),0===v&&0===f&&x())}},i.t=function(t,e){return 1&e&&(t=i(t)),P.t(t,-2&e)},i}function c(t){var e={_acceptedDependencies:{},_declinedDependencies:{},_selfAccepted:!1,_selfDeclined:!1,_disposeHandlers:[],_main:s!==t,active:!0,accept:function(t,s){if(void 0===t)e._selfAccepted=!0;else if("function"==typeof t)e._selfAccepted=t;else if("object"==typeof t)for(var i=0;i<t.length;i++)e._acceptedDependencies[t[i]]=s||function(){};else e._acceptedDependencies[t]=s||function(){}},decline:function(t){if(void 0===t)e._selfDeclined=!0;else if("object"==typeof t)for(var s=0;s<t.length;s++)e._declinedDependencies[t[s]]=!0;else e._declinedDependencies[t]=!0},dispose:function(t){e._disposeHandlers.push(t)},addDisposeHandler:function(t){e._disposeHandlers.push(t)},removeDisposeHandler:function(t){var s=e._disposeHandlers.indexOf(t);s>=0&&e._disposeHandlers.splice(s,1)},check:w,apply:S,status:function(t){if(!t)return d;u.push(t)},addStatusHandler:function(t){u.push(t)},removeStatusHandler:function(t){var e=u.indexOf(t);e>=0&&u.splice(e,1)},data:a[t]};return s=void 0,e}var u=[],d="idle";function _(t){d=t;for(var e=0;e<u.length;e++)u[e].call(null,t)}var m,h,p,f=0,v=0,g={},b={},y={};function k(t){return+t+""===t?+t:t}function w(t){if("idle"!==d)throw new Error("check() is only allowed in idle status");return i=t,_("check"),(e=1e4,e=e||1e4,new Promise((function(t,s){if("undefined"==typeof XMLHttpRequest)return s(new Error("No browser support"));try{var i=new XMLHttpRequest,a=P.p+""+n+".hot-update.json";i.open("GET",a,!0),i.timeout=e,i.send(null)}catch(t){return s(t)}i.onreadystatechange=function(){if(4===i.readyState)if(0===i.status)s(new Error("Manifest request to "+a+" timed out."));else if(404===i.status)t();else if(200!==i.status&&304!==i.status)s(new Error("Manifest request to "+a+" failed."));else{try{var e=JSON.parse(i.responseText)}catch(t){return void s(t)}t(e)}}}))).then((function(t){if(!t)return _("idle"),null;b={},g={},y=t.c,p=t.h,_("prepare");var e=new Promise((function(t,e){m={resolve:t,reject:e}}));h={};return C(3),"prepare"===d&&0===v&&0===f&&x(),e}));var e}function C(t){y[t]?(b[t]=!0,f++,function(t){var e=document.createElement("script");e.charset="utf-8",e.src=P.p+""+t+"."+n+".hot-update.js",document.head.appendChild(e)}(t)):g[t]=!0}function x(){_("ready");var t=m;if(m=null,t)if(i)Promise.resolve().then((function(){return S(i)})).then((function(e){t.resolve(e)}),(function(e){t.reject(e)}));else{var e=[];for(var s in h)Object.prototype.hasOwnProperty.call(h,s)&&e.push(k(s));t.resolve(e)}}function S(e){if("ready"!==d)throw new Error("apply() is only allowed in ready status");var s,i,r,l,c;function u(t){for(var e=[t],s={},i=e.map((function(t){return{chain:[t],id:t}}));i.length>0;){var n=i.pop(),a=n.id,o=n.chain;if((l=D[a])&&!l.hot._selfAccepted){if(l.hot._selfDeclined)return{type:"self-declined",chain:o,moduleId:a};if(l.hot._main)return{type:"unaccepted",chain:o,moduleId:a};for(var r=0;r<l.parents.length;r++){var c=l.parents[r],u=D[c];if(u){if(u.hot._declinedDependencies[a])return{type:"declined",chain:o.concat([c]),moduleId:a,parentId:c};-1===e.indexOf(c)&&(u.hot._acceptedDependencies[a]?(s[c]||(s[c]=[]),m(s[c],[a])):(delete s[c],e.push(c),i.push({chain:o.concat([c]),id:c})))}}}}return{type:"accepted",moduleId:t,outdatedModules:e,outdatedDependencies:s}}function m(t,e){for(var s=0;s<e.length;s++){var i=e[s];-1===t.indexOf(i)&&t.push(i)}}e=e||{};var f={},v=[],g={},b=function(){console.warn("[HMR] unexpected require("+C.moduleId+") to disposed module")};for(var w in h)if(Object.prototype.hasOwnProperty.call(h,w)){var C;c=k(w);var x=!1,S=!1,M=!1,T="";switch((C=h[w]?u(c):{type:"disposed",moduleId:w}).chain&&(T="\nUpdate propagation: "+C.chain.join(" -> ")),C.type){case"self-declined":e.onDeclined&&e.onDeclined(C),e.ignoreDeclined||(x=new Error("Aborted because of self decline: "+C.moduleId+T));break;case"declined":e.onDeclined&&e.onDeclined(C),e.ignoreDeclined||(x=new Error("Aborted because of declined dependency: "+C.moduleId+" in "+C.parentId+T));break;case"unaccepted":e.onUnaccepted&&e.onUnaccepted(C),e.ignoreUnaccepted||(x=new Error("Aborted because "+c+" is not accepted"+T));break;case"accepted":e.onAccepted&&e.onAccepted(C),S=!0;break;case"disposed":e.onDisposed&&e.onDisposed(C),M=!0;break;default:throw new Error("Unexception type "+C.type)}if(x)return _("abort"),Promise.reject(x);if(S)for(c in g[c]=h[c],m(v,C.outdatedModules),C.outdatedDependencies)Object.prototype.hasOwnProperty.call(C.outdatedDependencies,c)&&(f[c]||(f[c]=[]),m(f[c],C.outdatedDependencies[c]));M&&(m(v,[C.moduleId]),g[c]=b)}var O,j=[];for(i=0;i<v.length;i++)c=v[i],D[c]&&D[c].hot._selfAccepted&&g[c]!==b&&j.push({module:c,errorHandler:D[c].hot._selfAccepted});_("dispose"),Object.keys(y).forEach((function(t){!1===y[t]&&function(t){delete installedChunks[t]}(t)}));for(var Y,I,L=v.slice();L.length>0;)if(c=L.pop(),l=D[c]){var A={},N=l.hot._disposeHandlers;for(r=0;r<N.length;r++)(s=N[r])(A);for(a[c]=A,l.hot.active=!1,delete D[c],delete f[c],r=0;r<l.children.length;r++){var E=D[l.children[r]];E&&((O=E.parents.indexOf(c))>=0&&E.parents.splice(O,1))}}for(c in f)if(Object.prototype.hasOwnProperty.call(f,c)&&(l=D[c]))for(I=f[c],r=0;r<I.length;r++)Y=I[r],(O=l.children.indexOf(Y))>=0&&l.children.splice(O,1);for(c in _("apply"),n=p,g)Object.prototype.hasOwnProperty.call(g,c)&&(t[c]=g[c]);var R=null;for(c in f)if(Object.prototype.hasOwnProperty.call(f,c)&&(l=D[c])){I=f[c];var U=[];for(i=0;i<I.length;i++)if(Y=I[i],s=l.hot._acceptedDependencies[Y]){if(-1!==U.indexOf(s))continue;U.push(s)}for(i=0;i<U.length;i++){s=U[i];try{s(I)}catch(t){e.onErrored&&e.onErrored({type:"accept-errored",moduleId:c,dependencyId:I[i],error:t}),e.ignoreErrored||R||(R=t)}}}for(i=0;i<j.length;i++){var H=j[i];c=H.module,o=[c];try{P(c)}catch(t){if("function"==typeof H.errorHandler)try{H.errorHandler(t)}catch(s){e.onErrored&&e.onErrored({type:"self-accept-error-handler-errored",moduleId:c,error:s,originalError:t}),e.ignoreErrored||R||(R=s),R||(R=t)}else e.onErrored&&e.onErrored({type:"self-accept-errored",moduleId:c,error:t}),e.ignoreErrored||R||(R=t)}}return R?(_("fail"),Promise.reject(R)):(_("idle"),new Promise((function(t){t(v)})))}var D={};function P(e){if(D[e])return D[e].exports;var s=D[e]={i:e,l:!1,exports:{},hot:c(e),parents:(r=o,o=[],r),children:[]};return t[e].call(s.exports,s,s.exports,l(e)),s.l=!0,s.exports}P.m=t,P.c=D,P.d=function(t,e,s){P.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:s})},P.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},P.t=function(t,e){if(1&e&&(t=P(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var s=Object.create(null);if(P.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)P.d(s,i,function(e){return t[e]}.bind(null,i));return s},P.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return P.d(e,"a",e),e},P.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},P.p="",P.h=function(){return n},l("./src/ip-lockout.js")(P.s="./src/ip-lockout.js")}({"./node_modules/cssfilter/lib/css.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/default.js"),n=s("./node_modules/cssfilter/lib/parser.js");s("./node_modules/cssfilter/lib/util.js");function a(t){return null==t}function o(t){(t=function(t){var e={};for(var s in t)e[s]=t[s];return e}(t||{})).whiteList=t.whiteList||i.whiteList,t.onAttr=t.onAttr||i.onAttr,t.onIgnoreAttr=t.onIgnoreAttr||i.onIgnoreAttr,t.safeAttrValue=t.safeAttrValue||i.safeAttrValue,this.options=t}o.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var e=this.options,s=e.whiteList,i=e.onAttr,o=e.onIgnoreAttr,r=e.safeAttrValue;return n(t,(function(t,e,n,l,c){var u=s[n],d=!1;if(!0===u?d=u:"function"==typeof u?d=u(l):u instanceof RegExp&&(d=u.test(l)),!0!==d&&(d=!1),l=r(n,l)){var _,m={position:e,sourcePosition:t,source:c,isWhite:d};return d?a(_=i(n,l,m))?n+":"+l:_:a(_=o(n,l,m))?void 0:_}}))},t.exports=o},"./node_modules/cssfilter/lib/default.js":function(t,e){function s(){var t={"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1};return t}var i=/javascript\s*\:/gim;e.whiteList=s(),e.getDefaultWhiteList=s,e.onAttr=function(t,e,s){},e.onIgnoreAttr=function(t,e,s){},e.safeAttrValue=function(t,e){return i.test(e)?"":e}},"./node_modules/cssfilter/lib/index.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/default.js"),n=s("./node_modules/cssfilter/lib/css.js");for(var a in(e=t.exports=function(t,e){return new n(e).process(t)}).FilterCSS=n,i)e[a]=i[a];"undefined"!=typeof window&&(window.filterCSS=t.exports)},"./node_modules/cssfilter/lib/parser.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/util.js");t.exports=function(t,e){";"!==(t=i.trimRight(t))[t.length-1]&&(t+=";");var s=t.length,n=!1,a=0,o=0,r="";function l(){if(!n){var s=i.trim(t.slice(a,o)),l=s.indexOf(":");if(-1!==l){var c=i.trim(s.slice(0,l)),u=i.trim(s.slice(l+1));if(c){var d=e(a,r.length,c,u,s);d&&(r+=d+"; ")}}}a=o+1}for(;o<s;o++){var c=t[o];if("/"===c&&"*"===t[o+1]){var u=t.indexOf("*/",o+2);if(-1===u)break;a=(o=u+1)+1,n=!1}else"("===c?n=!0:")"===c?n=!1:";"===c?n||l():"\n"===c&&l()}return i.trim(r)}},"./node_modules/cssfilter/lib/util.js":function(t,e){t.exports={indexOf:function(t,e){var s,i;if(Array.prototype.indexOf)return t.indexOf(e);for(s=0,i=t.length;s<i;s++)if(t[s]===e)return s;return-1},forEach:function(t,e,s){var i,n;if(Array.prototype.forEach)return t.forEach(e,s);for(i=0,n=t.length;i<n;i++)e.call(s,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(t){return String.prototype.trimRight?t.trimRight():t.replace(/(\s*$)/g,"")}}},"./node_modules/lodash/_Symbol.js":function(t,e,s){var i=s("./node_modules/lodash/_root.js").Symbol;t.exports=i},"./node_modules/lodash/_baseGetTag.js":function(t,e,s){var i=s("./node_modules/lodash/_Symbol.js"),n=s("./node_modules/lodash/_getRawTag.js"),a=s("./node_modules/lodash/_objectToString.js"),o=i?i.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":o&&o in Object(t)?n(t):a(t)}},"./node_modules/lodash/_baseSlice.js":function(t,e){t.exports=function(t,e,s){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),(s=s>n?n:s)<0&&(s+=n),n=e>s?0:s-e>>>0,e>>>=0;for(var a=Array(n);++i<n;)a[i]=t[i+e];return a}},"./node_modules/lodash/_freeGlobal.js":function(t,e,s){(function(e){var s="object"==typeof e&&e&&e.Object===Object&&e;t.exports=s}).call(this,s("./node_modules/webpack/buildin/global.js"))},"./node_modules/lodash/_getRawTag.js":function(t,e,s){var i=s("./node_modules/lodash/_Symbol.js"),n=Object.prototype,a=n.hasOwnProperty,o=n.toString,r=i?i.toStringTag:void 0;t.exports=function(t){var e=a.call(t,r),s=t[r];try{t[r]=void 0;var i=!0}catch(t){}var n=o.call(t);return i&&(e?t[r]=s:delete t[r]),n}},"./node_modules/lodash/_isIndex.js":function(t,e){var s=/^(?:0|[1-9]\d*)$/;t.exports=function(t,e){var i=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==i||"symbol"!=i&&s.test(t))&&t>-1&&t%1==0&&t<e}},"./node_modules/lodash/_isIterateeCall.js":function(t,e,s){var i=s("./node_modules/lodash/eq.js"),n=s("./node_modules/lodash/isArrayLike.js"),a=s("./node_modules/lodash/_isIndex.js"),o=s("./node_modules/lodash/isObject.js");t.exports=function(t,e,s){if(!o(s))return!1;var r=typeof e;return!!("number"==r?n(s)&&a(e,s.length):"string"==r&&e in s)&&i(s[e],t)}},"./node_modules/lodash/_objectToString.js":function(t,e){var s=Object.prototype.toString;t.exports=function(t){return s.call(t)}},"./node_modules/lodash/_root.js":function(t,e,s){var i=s("./node_modules/lodash/_freeGlobal.js"),n="object"==typeof self&&self&&self.Object===Object&&self,a=i||n||Function("return this")();t.exports=a},"./node_modules/lodash/chunk.js":function(t,e,s){var i=s("./node_modules/lodash/_baseSlice.js"),n=s("./node_modules/lodash/_isIterateeCall.js"),a=s("./node_modules/lodash/toInteger.js"),o=Math.ceil,r=Math.max;t.exports=function(t,e,s){e=(s?n(t,e,s):void 0===e)?1:r(a(e),0);var l=null==t?0:t.length;if(!l||e<1)return[];for(var c=0,u=0,d=Array(o(l/e));c<l;)d[u++]=i(t,c,c+=e);return d}},"./node_modules/lodash/eq.js":function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},"./node_modules/lodash/isArrayLike.js":function(t,e,s){var i=s("./node_modules/lodash/isFunction.js"),n=s("./node_modules/lodash/isLength.js");t.exports=function(t){return null!=t&&n(t.length)&&!i(t)}},"./node_modules/lodash/isFunction.js":function(t,e,s){var i=s("./node_modules/lodash/_baseGetTag.js"),n=s("./node_modules/lodash/isObject.js");t.exports=function(t){if(!n(t))return!1;var e=i(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},"./node_modules/lodash/isLength.js":function(t,e){t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},"./node_modules/lodash/isObject.js":function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},"./node_modules/lodash/isObjectLike.js":function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},"./node_modules/lodash/isSymbol.js":function(t,e,s){var i=s("./node_modules/lodash/_baseGetTag.js"),n=s("./node_modules/lodash/isObjectLike.js");t.exports=function(t){return"symbol"==typeof t||n(t)&&"[object Symbol]"==i(t)}},"./node_modules/lodash/toFinite.js":function(t,e,s){var i=s("./node_modules/lodash/toNumber.js");t.exports=function(t){return t?(t=i(t))===1/0||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}},"./node_modules/lodash/toInteger.js":function(t,e,s){var i=s("./node_modules/lodash/toFinite.js");t.exports=function(t){var e=i(t),s=e%1;return e==e?s?e-s:e:0}},"./node_modules/lodash/toNumber.js":function(t,e,s){var i=s("./node_modules/lodash/isObject.js"),n=s("./node_modules/lodash/isSymbol.js"),a=/^\s+|\s+$/g,o=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(n(t))return NaN;if(i(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=i(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(a,"");var s=r.test(t);return s||l.test(t)?c(t.slice(2),s?2:8):o.test(t)?NaN:+t}},"./node_modules/moment/locale sync recursive \\b\\B":function(t,e){function s(t){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}s.keys=function(){return[]},s.resolve=s,t.exports=s,s.id="./node_modules/moment/locale sync recursive \\b\\B"},"./node_modules/moment/moment.js":function(t,e,s){(function(t){t.exports=function(){"use strict";var e,i;function n(){return e.apply(null,arguments)}function a(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function o(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function r(t){return void 0===t}function l(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function c(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function u(t,e){var s,i=[];for(s=0;s<t.length;++s)i.push(e(t[s],s));return i}function d(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function _(t,e){for(var s in e)d(e,s)&&(t[s]=e[s]);return d(e,"toString")&&(t.toString=e.toString),d(e,"valueOf")&&(t.valueOf=e.valueOf),t}function m(t,e,s,i){return xe(t,e,s,i,!0).utc()}function h(t){return null==t._pf&&(t._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),t._pf}function p(t){if(null==t._isValid){var e=h(t),s=i.call(e.parsedDateParts,(function(t){return null!=t})),n=!isNaN(t._d.getTime())&&e.overflow<0&&!e.empty&&!e.invalidMonth&&!e.invalidWeekday&&!e.weekdayMismatch&&!e.nullInput&&!e.invalidFormat&&!e.userInvalidated&&(!e.meridiem||e.meridiem&&s);if(t._strict&&(n=n&&0===e.charsLeftOver&&0===e.unusedTokens.length&&void 0===e.bigHour),null!=Object.isFrozen&&Object.isFrozen(t))return n;t._isValid=n}return t._isValid}function f(t){var e=m(NaN);return null!=t?_(h(e),t):h(e).userInvalidated=!0,e}i=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),s=e.length>>>0,i=0;i<s;i++)if(i in e&&t.call(this,e[i],i,e))return!0;return!1};var v=n.momentProperties=[];function g(t,e){var s,i,n;if(r(e._isAMomentObject)||(t._isAMomentObject=e._isAMomentObject),r(e._i)||(t._i=e._i),r(e._f)||(t._f=e._f),r(e._l)||(t._l=e._l),r(e._strict)||(t._strict=e._strict),r(e._tzm)||(t._tzm=e._tzm),r(e._isUTC)||(t._isUTC=e._isUTC),r(e._offset)||(t._offset=e._offset),r(e._pf)||(t._pf=h(e)),r(e._locale)||(t._locale=e._locale),v.length>0)for(s=0;s<v.length;s++)r(n=e[i=v[s]])||(t[i]=n);return t}var b=!1;function y(t){g(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===b&&(b=!0,n.updateOffset(this),b=!1)}function k(t){return t instanceof y||null!=t&&null!=t._isAMomentObject}function w(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function C(t){var e=+t,s=0;return 0!==e&&isFinite(e)&&(s=w(e)),s}function x(t,e,s){var i,n=Math.min(t.length,e.length),a=Math.abs(t.length-e.length),o=0;for(i=0;i<n;i++)(s&&t[i]!==e[i]||!s&&C(t[i])!==C(e[i]))&&o++;return o+a}function S(t){!1===n.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function D(t,e){var s=!0;return _((function(){if(null!=n.deprecationHandler&&n.deprecationHandler(null,t),s){for(var i,a=[],o=0;o<arguments.length;o++){if(i="","object"==typeof arguments[o]){for(var r in i+="\n["+o+"] ",arguments[0])i+=r+": "+arguments[0][r]+", ";i=i.slice(0,-2)}else i=arguments[o];a.push(i)}S(t+"\nArguments: "+Array.prototype.slice.call(a).join("")+"\n"+(new Error).stack),s=!1}return e.apply(this,arguments)}),e)}var P,M={};function T(t,e){null!=n.deprecationHandler&&n.deprecationHandler(t,e),M[t]||(S(e),M[t]=!0)}function O(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function j(t,e){var s,i=_({},t);for(s in e)d(e,s)&&(o(t[s])&&o(e[s])?(i[s]={},_(i[s],t[s]),_(i[s],e[s])):null!=e[s]?i[s]=e[s]:delete i[s]);for(s in t)d(t,s)&&!d(e,s)&&o(t[s])&&(i[s]=_({},i[s]));return i}function Y(t){null!=t&&this.set(t)}n.suppressDeprecationWarnings=!1,n.deprecationHandler=null,P=Object.keys?Object.keys:function(t){var e,s=[];for(e in t)d(t,e)&&s.push(e);return s};var I={};function L(t,e){var s=t.toLowerCase();I[s]=I[s+"s"]=I[e]=t}function A(t){return"string"==typeof t?I[t]||I[t.toLowerCase()]:void 0}function N(t){var e,s,i={};for(s in t)d(t,s)&&(e=A(s))&&(i[e]=t[s]);return i}var E={};function R(t,e){E[t]=e}function U(t,e,s){var i=""+Math.abs(t),n=e-i.length;return(t>=0?s?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+i}var H=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,$=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,W={},F={};function q(t,e,s,i){var n=i;"string"==typeof i&&(n=function(){return this[i]()}),t&&(F[t]=n),e&&(F[e[0]]=function(){return U(n.apply(this,arguments),e[1],e[2])}),s&&(F[s]=function(){return this.localeData().ordinal(n.apply(this,arguments),t)})}function V(t,e){return t.isValid()?(e=G(e,t.localeData()),W[e]=W[e]||function(t){var e,s,i,n=t.match(H);for(e=0,s=n.length;e<s;e++)F[n[e]]?n[e]=F[n[e]]:n[e]=(i=n[e]).match(/\[[\s\S]/)?i.replace(/^\[|\]$/g,""):i.replace(/\\/g,"");return function(e){var i,a="";for(i=0;i<s;i++)a+=O(n[i])?n[i].call(e,t):n[i];return a}}(e),W[e](t)):t.localeData().invalidDate()}function G(t,e){var s=5;function i(t){return e.longDateFormat(t)||t}for($.lastIndex=0;s>=0&&$.test(t);)t=t.replace($,i),$.lastIndex=0,s-=1;return t}var z=/\d/,B=/\d\d/,Q=/\d{3}/,Z=/\d{4}/,J=/[+-]?\d{6}/,X=/\d\d?/,K=/\d\d\d\d?/,tt=/\d\d\d\d\d\d?/,et=/\d{1,3}/,st=/\d{1,4}/,it=/[+-]?\d{1,6}/,nt=/\d+/,at=/[+-]?\d+/,ot=/Z|[+-]\d\d:?\d\d/gi,rt=/Z|[+-]\d\d(?::?\d\d)?/gi,lt=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,ct={};function ut(t,e,s){ct[t]=O(e)?e:function(t,i){return t&&s?s:e}}function dt(t,e){return d(ct,t)?ct[t](e._strict,e._locale):new RegExp(_t(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(t,e,s,i,n){return e||s||i||n}))))}function _t(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var mt={};function ht(t,e){var s,i=e;for("string"==typeof t&&(t=[t]),l(e)&&(i=function(t,s){s[e]=C(t)}),s=0;s<t.length;s++)mt[t[s]]=i}function pt(t,e){ht(t,(function(t,s,i,n){i._w=i._w||{},e(t,i._w,i,n)}))}function ft(t,e,s){null!=e&&d(mt,t)&&mt[t](e,s._a,s,t)}function vt(t){return gt(t)?366:365}function gt(t){return t%4==0&&t%100!=0||t%400==0}q("Y",0,0,(function(){var t=this.year();return t<=9999?""+t:"+"+t})),q(0,["YY",2],0,(function(){return this.year()%100})),q(0,["YYYY",4],0,"year"),q(0,["YYYYY",5],0,"year"),q(0,["YYYYYY",6,!0],0,"year"),L("year","y"),R("year",1),ut("Y",at),ut("YY",X,B),ut("YYYY",st,Z),ut("YYYYY",it,J),ut("YYYYYY",it,J),ht(["YYYYY","YYYYYY"],0),ht("YYYY",(function(t,e){e[0]=2===t.length?n.parseTwoDigitYear(t):C(t)})),ht("YY",(function(t,e){e[0]=n.parseTwoDigitYear(t)})),ht("Y",(function(t,e){e[0]=parseInt(t,10)})),n.parseTwoDigitYear=function(t){return C(t)+(C(t)>68?1900:2e3)};var bt,yt=kt("FullYear",!0);function kt(t,e){return function(s){return null!=s?(Ct(this,t,s),n.updateOffset(this,e),this):wt(this,t)}}function wt(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function Ct(t,e,s){t.isValid()&&!isNaN(s)&&("FullYear"===e&&gt(t.year())&&1===t.month()&&29===t.date()?t._d["set"+(t._isUTC?"UTC":"")+e](s,t.month(),xt(s,t.month())):t._d["set"+(t._isUTC?"UTC":"")+e](s))}function xt(t,e){if(isNaN(t)||isNaN(e))return NaN;var s,i=(e%(s=12)+s)%s;return t+=(e-i)/12,1===i?gt(t)?29:28:31-i%7%2}bt=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;e<this.length;++e)if(this[e]===t)return e;return-1},q("M",["MM",2],"Mo",(function(){return this.month()+1})),q("MMM",0,0,(function(t){return this.localeData().monthsShort(this,t)})),q("MMMM",0,0,(function(t){return this.localeData().months(this,t)})),L("month","M"),R("month",8),ut("M",X),ut("MM",X,B),ut("MMM",(function(t,e){return e.monthsShortRegex(t)})),ut("MMMM",(function(t,e){return e.monthsRegex(t)})),ht(["M","MM"],(function(t,e){e[1]=C(t)-1})),ht(["MMM","MMMM"],(function(t,e,s,i){var n=s._locale.monthsParse(t,i,s._strict);null!=n?e[1]=n:h(s).invalidMonth=t}));var St=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Dt="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Pt="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function Mt(t,e,s){var i,n,a,o=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],i=0;i<12;++i)a=m([2e3,i]),this._shortMonthsParse[i]=this.monthsShort(a,"").toLocaleLowerCase(),this._longMonthsParse[i]=this.months(a,"").toLocaleLowerCase();return s?"MMM"===e?-1!==(n=bt.call(this._shortMonthsParse,o))?n:null:-1!==(n=bt.call(this._longMonthsParse,o))?n:null:"MMM"===e?-1!==(n=bt.call(this._shortMonthsParse,o))||-1!==(n=bt.call(this._longMonthsParse,o))?n:null:-1!==(n=bt.call(this._longMonthsParse,o))||-1!==(n=bt.call(this._shortMonthsParse,o))?n:null}function Tt(t,e){var s;if(!t.isValid())return t;if("string"==typeof e)if(/^\d+$/.test(e))e=C(e);else if(!l(e=t.localeData().monthsParse(e)))return t;return s=Math.min(t.date(),xt(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,s),t}function Ot(t){return null!=t?(Tt(this,t),n.updateOffset(this,!0),this):wt(this,"Month")}var jt=lt,Yt=lt;function It(){function t(t,e){return e.length-t.length}var e,s,i=[],n=[],a=[];for(e=0;e<12;e++)s=m([2e3,e]),i.push(this.monthsShort(s,"")),n.push(this.months(s,"")),a.push(this.months(s,"")),a.push(this.monthsShort(s,""));for(i.sort(t),n.sort(t),a.sort(t),e=0;e<12;e++)i[e]=_t(i[e]),n[e]=_t(n[e]);for(e=0;e<24;e++)a[e]=_t(a[e]);this._monthsRegex=new RegExp("^("+a.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+n.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+i.join("|")+")","i")}function Lt(t,e,s,i,n,a,o){var r;return t<100&&t>=0?(r=new Date(t+400,e,s,i,n,a,o),isFinite(r.getFullYear())&&r.setFullYear(t)):r=new Date(t,e,s,i,n,a,o),r}function At(t){var e;if(t<100&&t>=0){var s=Array.prototype.slice.call(arguments);s[0]=t+400,e=new Date(Date.UTC.apply(null,s)),isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t)}else e=new Date(Date.UTC.apply(null,arguments));return e}function Nt(t,e,s){var i=7+e-s;return-(7+At(t,0,i).getUTCDay()-e)%7+i-1}function Et(t,e,s,i,n){var a,o,r=1+7*(e-1)+(7+s-i)%7+Nt(t,i,n);return r<=0?o=vt(a=t-1)+r:r>vt(t)?(a=t+1,o=r-vt(t)):(a=t,o=r),{year:a,dayOfYear:o}}function Rt(t,e,s){var i,n,a=Nt(t.year(),e,s),o=Math.floor((t.dayOfYear()-a-1)/7)+1;return o<1?i=o+Ut(n=t.year()-1,e,s):o>Ut(t.year(),e,s)?(i=o-Ut(t.year(),e,s),n=t.year()+1):(n=t.year(),i=o),{week:i,year:n}}function Ut(t,e,s){var i=Nt(t,e,s),n=Nt(t+1,e,s);return(vt(t)-i+n)/7}function Ht(t,e){return t.slice(e,7).concat(t.slice(0,e))}q("w",["ww",2],"wo","week"),q("W",["WW",2],"Wo","isoWeek"),L("week","w"),L("isoWeek","W"),R("week",5),R("isoWeek",5),ut("w",X),ut("ww",X,B),ut("W",X),ut("WW",X,B),pt(["w","ww","W","WW"],(function(t,e,s,i){e[i.substr(0,1)]=C(t)})),q("d",0,"do","day"),q("dd",0,0,(function(t){return this.localeData().weekdaysMin(this,t)})),q("ddd",0,0,(function(t){return this.localeData().weekdaysShort(this,t)})),q("dddd",0,0,(function(t){return this.localeData().weekdays(this,t)})),q("e",0,0,"weekday"),q("E",0,0,"isoWeekday"),L("day","d"),L("weekday","e"),L("isoWeekday","E"),R("day",11),R("weekday",11),R("isoWeekday",11),ut("d",X),ut("e",X),ut("E",X),ut("dd",(function(t,e){return e.weekdaysMinRegex(t)})),ut("ddd",(function(t,e){return e.weekdaysShortRegex(t)})),ut("dddd",(function(t,e){return e.weekdaysRegex(t)})),pt(["dd","ddd","dddd"],(function(t,e,s,i){var n=s._locale.weekdaysParse(t,i,s._strict);null!=n?e.d=n:h(s).invalidWeekday=t})),pt(["d","e","E"],(function(t,e,s,i){e[i]=C(t)}));var $t="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Wt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ft="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function qt(t,e,s){var i,n,a,o=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)a=m([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(a,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(a,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(a,"").toLocaleLowerCase();return s?"dddd"===e?-1!==(n=bt.call(this._weekdaysParse,o))?n:null:"ddd"===e?-1!==(n=bt.call(this._shortWeekdaysParse,o))?n:null:-1!==(n=bt.call(this._minWeekdaysParse,o))?n:null:"dddd"===e?-1!==(n=bt.call(this._weekdaysParse,o))||-1!==(n=bt.call(this._shortWeekdaysParse,o))||-1!==(n=bt.call(this._minWeekdaysParse,o))?n:null:"ddd"===e?-1!==(n=bt.call(this._shortWeekdaysParse,o))||-1!==(n=bt.call(this._weekdaysParse,o))||-1!==(n=bt.call(this._minWeekdaysParse,o))?n:null:-1!==(n=bt.call(this._minWeekdaysParse,o))||-1!==(n=bt.call(this._weekdaysParse,o))||-1!==(n=bt.call(this._shortWeekdaysParse,o))?n:null}var Vt=lt,Gt=lt,zt=lt;function Bt(){function t(t,e){return e.length-t.length}var e,s,i,n,a,o=[],r=[],l=[],c=[];for(e=0;e<7;e++)s=m([2e3,1]).day(e),i=this.weekdaysMin(s,""),n=this.weekdaysShort(s,""),a=this.weekdays(s,""),o.push(i),r.push(n),l.push(a),c.push(i),c.push(n),c.push(a);for(o.sort(t),r.sort(t),l.sort(t),c.sort(t),e=0;e<7;e++)r[e]=_t(r[e]),l[e]=_t(l[e]),c[e]=_t(c[e]);this._weekdaysRegex=new RegExp("^("+c.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function Qt(){return this.hours()%12||12}function Zt(t,e){q(t,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)}))}function Jt(t,e){return e._meridiemParse}q("H",["HH",2],0,"hour"),q("h",["hh",2],0,Qt),q("k",["kk",2],0,(function(){return this.hours()||24})),q("hmm",0,0,(function(){return""+Qt.apply(this)+U(this.minutes(),2)})),q("hmmss",0,0,(function(){return""+Qt.apply(this)+U(this.minutes(),2)+U(this.seconds(),2)})),q("Hmm",0,0,(function(){return""+this.hours()+U(this.minutes(),2)})),q("Hmmss",0,0,(function(){return""+this.hours()+U(this.minutes(),2)+U(this.seconds(),2)})),Zt("a",!0),Zt("A",!1),L("hour","h"),R("hour",13),ut("a",Jt),ut("A",Jt),ut("H",X),ut("h",X),ut("k",X),ut("HH",X,B),ut("hh",X,B),ut("kk",X,B),ut("hmm",K),ut("hmmss",tt),ut("Hmm",K),ut("Hmmss",tt),ht(["H","HH"],3),ht(["k","kk"],(function(t,e,s){var i=C(t);e[3]=24===i?0:i})),ht(["a","A"],(function(t,e,s){s._isPm=s._locale.isPM(t),s._meridiem=t})),ht(["h","hh"],(function(t,e,s){e[3]=C(t),h(s).bigHour=!0})),ht("hmm",(function(t,e,s){var i=t.length-2;e[3]=C(t.substr(0,i)),e[4]=C(t.substr(i)),h(s).bigHour=!0})),ht("hmmss",(function(t,e,s){var i=t.length-4,n=t.length-2;e[3]=C(t.substr(0,i)),e[4]=C(t.substr(i,2)),e[5]=C(t.substr(n)),h(s).bigHour=!0})),ht("Hmm",(function(t,e,s){var i=t.length-2;e[3]=C(t.substr(0,i)),e[4]=C(t.substr(i))})),ht("Hmmss",(function(t,e,s){var i=t.length-4,n=t.length-2;e[3]=C(t.substr(0,i)),e[4]=C(t.substr(i,2)),e[5]=C(t.substr(n))}));var Xt,Kt=kt("Hours",!0),te={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Dt,monthsShort:Pt,week:{dow:0,doy:6},weekdays:$t,weekdaysMin:Ft,weekdaysShort:Wt,meridiemParse:/[ap]\.?m?\.?/i},ee={},se={};function ie(t){return t?t.toLowerCase().replace("_","-"):t}function ne(e){var i=null;if(!ee[e]&&void 0!==t&&t&&t.exports)try{i=Xt._abbr,s("./node_modules/moment/locale sync recursive \\b\\B")("./"+e),ae(i)}catch(t){}return ee[e]}function ae(t,e){var s;return t&&((s=r(e)?re(t):oe(t,e))?Xt=s:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+t+" not found. Did you forget to load it?")),Xt._abbr}function oe(t,e){if(null!==e){var s,i=te;if(e.abbr=t,null!=ee[t])T("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=ee[t]._config;else if(null!=e.parentLocale)if(null!=ee[e.parentLocale])i=ee[e.parentLocale]._config;else{if(null==(s=ne(e.parentLocale)))return se[e.parentLocale]||(se[e.parentLocale]=[]),se[e.parentLocale].push({name:t,config:e}),null;i=s._config}return ee[t]=new Y(j(i,e)),se[t]&&se[t].forEach((function(t){oe(t.name,t.config)})),ae(t),ee[t]}return delete ee[t],null}function re(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Xt;if(!a(t)){if(e=ne(t))return e;t=[t]}return function(t){for(var e,s,i,n,a=0;a<t.length;){for(e=(n=ie(t[a]).split("-")).length,s=(s=ie(t[a+1]))?s.split("-"):null;e>0;){if(i=ne(n.slice(0,e).join("-")))return i;if(s&&s.length>=e&&x(n,s,!0)>=e-1)break;e--}a++}return Xt}(t)}function le(t){var e,s=t._a;return s&&-2===h(t).overflow&&(e=s[1]<0||s[1]>11?1:s[2]<1||s[2]>xt(s[0],s[1])?2:s[3]<0||s[3]>24||24===s[3]&&(0!==s[4]||0!==s[5]||0!==s[6])?3:s[4]<0||s[4]>59?4:s[5]<0||s[5]>59?5:s[6]<0||s[6]>999?6:-1,h(t)._overflowDayOfYear&&(e<0||e>2)&&(e=2),h(t)._overflowWeeks&&-1===e&&(e=7),h(t)._overflowWeekday&&-1===e&&(e=8),h(t).overflow=e),t}function ce(t,e,s){return null!=t?t:null!=e?e:s}function ue(t){var e,s,i,a,o,r=[];if(!t._d){for(i=function(t){var e=new Date(n.now());return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}(t),t._w&&null==t._a[2]&&null==t._a[1]&&function(t){var e,s,i,n,a,o,r,l;if(null!=(e=t._w).GG||null!=e.W||null!=e.E)a=1,o=4,s=ce(e.GG,t._a[0],Rt(Se(),1,4).year),i=ce(e.W,1),((n=ce(e.E,1))<1||n>7)&&(l=!0);else{a=t._locale._week.dow,o=t._locale._week.doy;var c=Rt(Se(),a,o);s=ce(e.gg,t._a[0],c.year),i=ce(e.w,c.week),null!=e.d?((n=e.d)<0||n>6)&&(l=!0):null!=e.e?(n=e.e+a,(e.e<0||e.e>6)&&(l=!0)):n=a}i<1||i>Ut(s,a,o)?h(t)._overflowWeeks=!0:null!=l?h(t)._overflowWeekday=!0:(r=Et(s,i,n,a,o),t._a[0]=r.year,t._dayOfYear=r.dayOfYear)}(t),null!=t._dayOfYear&&(o=ce(t._a[0],i[0]),(t._dayOfYear>vt(o)||0===t._dayOfYear)&&(h(t)._overflowDayOfYear=!0),s=At(o,0,t._dayOfYear),t._a[1]=s.getUTCMonth(),t._a[2]=s.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=r[e]=i[e];for(;e<7;e++)t._a[e]=r[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[3]&&0===t._a[4]&&0===t._a[5]&&0===t._a[6]&&(t._nextDay=!0,t._a[3]=0),t._d=(t._useUTC?At:Lt).apply(null,r),a=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[3]=24),t._w&&void 0!==t._w.d&&t._w.d!==a&&(h(t).weekdayMismatch=!0)}}var de=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,_e=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,me=/Z|[+-]\d\d(?::?\d\d)?/,he=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],pe=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],fe=/^\/?Date\((\-?\d+)/i;function ve(t){var e,s,i,n,a,o,r=t._i,l=de.exec(r)||_e.exec(r);if(l){for(h(t).iso=!0,e=0,s=he.length;e<s;e++)if(he[e][1].exec(l[1])){n=he[e][0],i=!1!==he[e][2];break}if(null==n)return void(t._isValid=!1);if(l[3]){for(e=0,s=pe.length;e<s;e++)if(pe[e][1].exec(l[3])){a=(l[2]||" ")+pe[e][0];break}if(null==a)return void(t._isValid=!1)}if(!i&&null!=a)return void(t._isValid=!1);if(l[4]){if(!me.exec(l[4]))return void(t._isValid=!1);o="Z"}t._f=n+(a||"")+(o||""),we(t)}else t._isValid=!1}var ge=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function be(t){var e=parseInt(t,10);return e<=49?2e3+e:e<=999?1900+e:e}var ye={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function ke(t){var e,s,i,n,a,o,r,l=ge.exec(t._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(l){var c=(e=l[4],s=l[3],i=l[2],n=l[5],a=l[6],o=l[7],r=[be(e),Pt.indexOf(s),parseInt(i,10),parseInt(n,10),parseInt(a,10)],o&&r.push(parseInt(o,10)),r);if(!function(t,e,s){return!t||Wt.indexOf(t)===new Date(e[0],e[1],e[2]).getDay()||(h(s).weekdayMismatch=!0,s._isValid=!1,!1)}(l[1],c,t))return;t._a=c,t._tzm=function(t,e,s){if(t)return ye[t];if(e)return 0;var i=parseInt(s,10),n=i%100;return(i-n)/100*60+n}(l[8],l[9],l[10]),t._d=At.apply(null,t._a),t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),h(t).rfc2822=!0}else t._isValid=!1}function we(t){if(t._f!==n.ISO_8601)if(t._f!==n.RFC_2822){t._a=[],h(t).empty=!0;var e,s,i,a,o,r=""+t._i,l=r.length,c=0;for(i=G(t._f,t._locale).match(H)||[],e=0;e<i.length;e++)a=i[e],(s=(r.match(dt(a,t))||[])[0])&&((o=r.substr(0,r.indexOf(s))).length>0&&h(t).unusedInput.push(o),r=r.slice(r.indexOf(s)+s.length),c+=s.length),F[a]?(s?h(t).empty=!1:h(t).unusedTokens.push(a),ft(a,s,t)):t._strict&&!s&&h(t).unusedTokens.push(a);h(t).charsLeftOver=l-c,r.length>0&&h(t).unusedInput.push(r),t._a[3]<=12&&!0===h(t).bigHour&&t._a[3]>0&&(h(t).bigHour=void 0),h(t).parsedDateParts=t._a.slice(0),h(t).meridiem=t._meridiem,t._a[3]=function(t,e,s){var i;return null==s?e:null!=t.meridiemHour?t.meridiemHour(e,s):null!=t.isPM?((i=t.isPM(s))&&e<12&&(e+=12),i||12!==e||(e=0),e):e}(t._locale,t._a[3],t._meridiem),ue(t),le(t)}else ke(t);else ve(t)}function Ce(t){var e=t._i,s=t._f;return t._locale=t._locale||re(t._l),null===e||void 0===s&&""===e?f({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),k(e)?new y(le(e)):(c(e)?t._d=e:a(s)?function(t){var e,s,i,n,a;if(0===t._f.length)return h(t).invalidFormat=!0,void(t._d=new Date(NaN));for(n=0;n<t._f.length;n++)a=0,e=g({},t),null!=t._useUTC&&(e._useUTC=t._useUTC),e._f=t._f[n],we(e),p(e)&&(a+=h(e).charsLeftOver,a+=10*h(e).unusedTokens.length,h(e).score=a,(null==i||a<i)&&(i=a,s=e));_(t,s||e)}(t):s?we(t):function(t){var e=t._i;r(e)?t._d=new Date(n.now()):c(e)?t._d=new Date(e.valueOf()):"string"==typeof e?function(t){var e=fe.exec(t._i);null===e?(ve(t),!1===t._isValid&&(delete t._isValid,ke(t),!1===t._isValid&&(delete t._isValid,n.createFromInputFallback(t)))):t._d=new Date(+e[1])}(t):a(e)?(t._a=u(e.slice(0),(function(t){return parseInt(t,10)})),ue(t)):o(e)?function(t){if(!t._d){var e=N(t._i);t._a=u([e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],(function(t){return t&&parseInt(t,10)})),ue(t)}}(t):l(e)?t._d=new Date(e):n.createFromInputFallback(t)}(t),p(t)||(t._d=null),t))}function xe(t,e,s,i,n){var r,l={};return!0!==s&&!1!==s||(i=s,s=void 0),(o(t)&&function(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}(t)||a(t)&&0===t.length)&&(t=void 0),l._isAMomentObject=!0,l._useUTC=l._isUTC=n,l._l=s,l._i=t,l._f=e,l._strict=i,(r=new y(le(Ce(l))))._nextDay&&(r.add(1,"d"),r._nextDay=void 0),r}function Se(t,e,s,i){return xe(t,e,s,i,!1)}n.createFromInputFallback=D("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",(function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))})),n.ISO_8601=function(){},n.RFC_2822=function(){};var De=D("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var t=Se.apply(null,arguments);return this.isValid()&&t.isValid()?t<this?this:t:f()})),Pe=D("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var t=Se.apply(null,arguments);return this.isValid()&&t.isValid()?t>this?this:t:f()}));function Me(t,e){var s,i;if(1===e.length&&a(e[0])&&(e=e[0]),!e.length)return Se();for(s=e[0],i=1;i<e.length;++i)e[i].isValid()&&!e[i][t](s)||(s=e[i]);return s}var Te=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Oe(t){var e=N(t),s=e.year||0,i=e.quarter||0,n=e.month||0,a=e.week||e.isoWeek||0,o=e.day||0,r=e.hour||0,l=e.minute||0,c=e.second||0,u=e.millisecond||0;this._isValid=function(t){for(var e in t)if(-1===bt.call(Te,e)||null!=t[e]&&isNaN(t[e]))return!1;for(var s=!1,i=0;i<Te.length;++i)if(t[Te[i]]){if(s)return!1;parseFloat(t[Te[i]])!==C(t[Te[i]])&&(s=!0)}return!0}(e),this._milliseconds=+u+1e3*c+6e4*l+1e3*r*60*60,this._days=+o+7*a,this._months=+n+3*i+12*s,this._data={},this._locale=re(),this._bubble()}function je(t){return t instanceof Oe}function Ye(t){return t<0?-1*Math.round(-1*t):Math.round(t)}function Ie(t,e){q(t,0,0,(function(){var t=this.utcOffset(),s="+";return t<0&&(t=-t,s="-"),s+U(~~(t/60),2)+e+U(~~t%60,2)}))}Ie("Z",":"),Ie("ZZ",""),ut("Z",rt),ut("ZZ",rt),ht(["Z","ZZ"],(function(t,e,s){s._useUTC=!0,s._tzm=Ae(rt,t)}));var Le=/([\+\-]|\d\d)/gi;function Ae(t,e){var s=(e||"").match(t);if(null===s)return null;var i=((s[s.length-1]||[])+"").match(Le)||["-",0,0],n=60*i[1]+C(i[2]);return 0===n?0:"+"===i[0]?n:-n}function Ne(t,e){var s,i;return e._isUTC?(s=e.clone(),i=(k(t)||c(t)?t.valueOf():Se(t).valueOf())-s.valueOf(),s._d.setTime(s._d.valueOf()+i),n.updateOffset(s,!1),s):Se(t).local()}function Ee(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function Re(){return!!this.isValid()&&this._isUTC&&0===this._offset}n.updateOffset=function(){};var Ue=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,He=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function $e(t,e){var s,i,n,a,o,r,c=t,u=null;return je(t)?c={ms:t._milliseconds,d:t._days,M:t._months}:l(t)?(c={},e?c[e]=t:c.milliseconds=t):(u=Ue.exec(t))?(s="-"===u[1]?-1:1,c={y:0,d:C(u[2])*s,h:C(u[3])*s,m:C(u[4])*s,s:C(u[5])*s,ms:C(Ye(1e3*u[6]))*s}):(u=He.exec(t))?(s="-"===u[1]?-1:1,c={y:We(u[2],s),M:We(u[3],s),w:We(u[4],s),d:We(u[5],s),h:We(u[6],s),m:We(u[7],s),s:We(u[8],s)}):null==c?c={}:"object"==typeof c&&("from"in c||"to"in c)&&(a=Se(c.from),o=Se(c.to),n=a.isValid()&&o.isValid()?(o=Ne(o,a),a.isBefore(o)?r=Fe(a,o):((r=Fe(o,a)).milliseconds=-r.milliseconds,r.months=-r.months),r):{milliseconds:0,months:0},(c={}).ms=n.milliseconds,c.M=n.months),i=new Oe(c),je(t)&&d(t,"_locale")&&(i._locale=t._locale),i}function We(t,e){var s=t&&parseFloat(t.replace(",","."));return(isNaN(s)?0:s)*e}function Fe(t,e){var s={};return s.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(s.months,"M").isAfter(e)&&--s.months,s.milliseconds=+e-+t.clone().add(s.months,"M"),s}function qe(t,e){return function(s,i){var n;return null===i||isNaN(+i)||(T(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),n=s,s=i,i=n),Ve(this,$e(s="string"==typeof s?+s:s,i),t),this}}function Ve(t,e,s,i){var a=e._milliseconds,o=Ye(e._days),r=Ye(e._months);t.isValid()&&(i=null==i||i,r&&Tt(t,wt(t,"Month")+r*s),o&&Ct(t,"Date",wt(t,"Date")+o*s),a&&t._d.setTime(t._d.valueOf()+a*s),i&&n.updateOffset(t,o||r))}$e.fn=Oe.prototype,$e.invalid=function(){return $e(NaN)};var Ge=qe(1,"add"),ze=qe(-1,"subtract");function Be(t,e){var s=12*(e.year()-t.year())+(e.month()-t.month()),i=t.clone().add(s,"months");return-(s+(e-i<0?(e-i)/(i-t.clone().add(s-1,"months")):(e-i)/(t.clone().add(s+1,"months")-i)))||0}function Qe(t){var e;return void 0===t?this._locale._abbr:(null!=(e=re(t))&&(this._locale=e),this)}n.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",n.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Ze=D("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(t){return void 0===t?this.localeData():this.locale(t)}));function Je(){return this._locale}function Xe(t,e){return(t%e+e)%e}function Ke(t,e,s){return t<100&&t>=0?new Date(t+400,e,s)-126227808e5:new Date(t,e,s).valueOf()}function ts(t,e,s){return t<100&&t>=0?Date.UTC(t+400,e,s)-126227808e5:Date.UTC(t,e,s)}function es(t,e){q(0,[t,t.length],0,e)}function ss(t,e,s,i,n){var a;return null==t?Rt(this,i,n).year:(e>(a=Ut(t,i,n))&&(e=a),is.call(this,t,e,s,i,n))}function is(t,e,s,i,n){var a=Et(t,e,s,i,n),o=At(a.year,0,a.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}q(0,["gg",2],0,(function(){return this.weekYear()%100})),q(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),es("gggg","weekYear"),es("ggggg","weekYear"),es("GGGG","isoWeekYear"),es("GGGGG","isoWeekYear"),L("weekYear","gg"),L("isoWeekYear","GG"),R("weekYear",1),R("isoWeekYear",1),ut("G",at),ut("g",at),ut("GG",X,B),ut("gg",X,B),ut("GGGG",st,Z),ut("gggg",st,Z),ut("GGGGG",it,J),ut("ggggg",it,J),pt(["gggg","ggggg","GGGG","GGGGG"],(function(t,e,s,i){e[i.substr(0,2)]=C(t)})),pt(["gg","GG"],(function(t,e,s,i){e[i]=n.parseTwoDigitYear(t)})),q("Q",0,"Qo","quarter"),L("quarter","Q"),R("quarter",7),ut("Q",z),ht("Q",(function(t,e){e[1]=3*(C(t)-1)})),q("D",["DD",2],"Do","date"),L("date","D"),R("date",9),ut("D",X),ut("DD",X,B),ut("Do",(function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient})),ht(["D","DD"],2),ht("Do",(function(t,e){e[2]=C(t.match(X)[0])}));var ns=kt("Date",!0);q("DDD",["DDDD",3],"DDDo","dayOfYear"),L("dayOfYear","DDD"),R("dayOfYear",4),ut("DDD",et),ut("DDDD",Q),ht(["DDD","DDDD"],(function(t,e,s){s._dayOfYear=C(t)})),q("m",["mm",2],0,"minute"),L("minute","m"),R("minute",14),ut("m",X),ut("mm",X,B),ht(["m","mm"],4);var as=kt("Minutes",!1);q("s",["ss",2],0,"second"),L("second","s"),R("second",15),ut("s",X),ut("ss",X,B),ht(["s","ss"],5);var os,rs=kt("Seconds",!1);for(q("S",0,0,(function(){return~~(this.millisecond()/100)})),q(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),q(0,["SSS",3],0,"millisecond"),q(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),q(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),q(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),q(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),q(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),q(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),L("millisecond","ms"),R("millisecond",16),ut("S",et,z),ut("SS",et,B),ut("SSS",et,Q),os="SSSS";os.length<=9;os+="S")ut(os,nt);function ls(t,e){e[6]=C(1e3*("0."+t))}for(os="S";os.length<=9;os+="S")ht(os,ls);var cs=kt("Milliseconds",!1);q("z",0,0,"zoneAbbr"),q("zz",0,0,"zoneName");var us=y.prototype;function ds(t){return t}us.add=Ge,us.calendar=function(t,e){var s=t||Se(),i=Ne(s,this).startOf("day"),a=n.calendarFormat(this,i)||"sameElse",o=e&&(O(e[a])?e[a].call(this,s):e[a]);return this.format(o||this.localeData().calendar(a,this,Se(s)))},us.clone=function(){return new y(this)},us.diff=function(t,e,s){var i,n,a;if(!this.isValid())return NaN;if(!(i=Ne(t,this)).isValid())return NaN;switch(n=6e4*(i.utcOffset()-this.utcOffset()),e=A(e)){case"year":a=Be(this,i)/12;break;case"month":a=Be(this,i);break;case"quarter":a=Be(this,i)/3;break;case"second":a=(this-i)/1e3;break;case"minute":a=(this-i)/6e4;break;case"hour":a=(this-i)/36e5;break;case"day":a=(this-i-n)/864e5;break;case"week":a=(this-i-n)/6048e5;break;default:a=this-i}return s?a:w(a)},us.endOf=function(t){var e;if(void 0===(t=A(t))||"millisecond"===t||!this.isValid())return this;var s=this._isUTC?ts:Ke;switch(t){case"year":e=s(this.year()+1,0,1)-1;break;case"quarter":e=s(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":e=s(this.year(),this.month()+1,1)-1;break;case"week":e=s(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":e=s(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":e=s(this.year(),this.month(),this.date()+1)-1;break;case"hour":e=this._d.valueOf(),e+=36e5-Xe(e+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":e=this._d.valueOf(),e+=6e4-Xe(e,6e4)-1;break;case"second":e=this._d.valueOf(),e+=1e3-Xe(e,1e3)-1}return this._d.setTime(e),n.updateOffset(this,!0),this},us.format=function(t){t||(t=this.isUtc()?n.defaultFormatUtc:n.defaultFormat);var e=V(this,t);return this.localeData().postformat(e)},us.from=function(t,e){return this.isValid()&&(k(t)&&t.isValid()||Se(t).isValid())?$e({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},us.fromNow=function(t){return this.from(Se(),t)},us.to=function(t,e){return this.isValid()&&(k(t)&&t.isValid()||Se(t).isValid())?$e({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},us.toNow=function(t){return this.to(Se(),t)},us.get=function(t){return O(this[t=A(t)])?this[t]():this},us.invalidAt=function(){return h(this).overflow},us.isAfter=function(t,e){var s=k(t)?t:Se(t);return!(!this.isValid()||!s.isValid())&&("millisecond"===(e=A(e)||"millisecond")?this.valueOf()>s.valueOf():s.valueOf()<this.clone().startOf(e).valueOf())},us.isBefore=function(t,e){var s=k(t)?t:Se(t);return!(!this.isValid()||!s.isValid())&&("millisecond"===(e=A(e)||"millisecond")?this.valueOf()<s.valueOf():this.clone().endOf(e).valueOf()<s.valueOf())},us.isBetween=function(t,e,s,i){var n=k(t)?t:Se(t),a=k(e)?e:Se(e);return!!(this.isValid()&&n.isValid()&&a.isValid())&&("("===(i=i||"()")[0]?this.isAfter(n,s):!this.isBefore(n,s))&&(")"===i[1]?this.isBefore(a,s):!this.isAfter(a,s))},us.isSame=function(t,e){var s,i=k(t)?t:Se(t);return!(!this.isValid()||!i.isValid())&&("millisecond"===(e=A(e)||"millisecond")?this.valueOf()===i.valueOf():(s=i.valueOf(),this.clone().startOf(e).valueOf()<=s&&s<=this.clone().endOf(e).valueOf()))},us.isSameOrAfter=function(t,e){return this.isSame(t,e)||this.isAfter(t,e)},us.isSameOrBefore=function(t,e){return this.isSame(t,e)||this.isBefore(t,e)},us.isValid=function(){return p(this)},us.lang=Ze,us.locale=Qe,us.localeData=Je,us.max=Pe,us.min=De,us.parsingFlags=function(){return _({},h(this))},us.set=function(t,e){if("object"==typeof t)for(var s=function(t){var e=[];for(var s in t)e.push({unit:s,priority:E[s]});return e.sort((function(t,e){return t.priority-e.priority})),e}(t=N(t)),i=0;i<s.length;i++)this[s[i].unit](t[s[i].unit]);else if(O(this[t=A(t)]))return this[t](e);return this},us.startOf=function(t){var e;if(void 0===(t=A(t))||"millisecond"===t||!this.isValid())return this;var s=this._isUTC?ts:Ke;switch(t){case"year":e=s(this.year(),0,1);break;case"quarter":e=s(this.year(),this.month()-this.month()%3,1);break;case"month":e=s(this.year(),this.month(),1);break;case"week":e=s(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":e=s(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":e=s(this.year(),this.month(),this.date());break;case"hour":e=this._d.valueOf(),e-=Xe(e+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case"minute":e=this._d.valueOf(),e-=Xe(e,6e4);break;case"second":e=this._d.valueOf(),e-=Xe(e,1e3)}return this._d.setTime(e),n.updateOffset(this,!0),this},us.subtract=ze,us.toArray=function(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]},us.toObject=function(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}},us.toDate=function(){return new Date(this.valueOf())},us.toISOString=function(t){if(!this.isValid())return null;var e=!0!==t,s=e?this.clone().utc():this;return s.year()<0||s.year()>9999?V(s,e?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):O(Date.prototype.toISOString)?e?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",V(s,"Z")):V(s,e?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},us.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var s="["+t+'("]',i=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n=e+'[")]';return this.format(s+i+"-MM-DD[T]HH:mm:ss.SSS"+n)},us.toJSON=function(){return this.isValid()?this.toISOString():null},us.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},us.unix=function(){return Math.floor(this.valueOf()/1e3)},us.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},us.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},us.year=yt,us.isLeapYear=function(){return gt(this.year())},us.weekYear=function(t){return ss.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},us.isoWeekYear=function(t){return ss.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)},us.quarter=us.quarters=function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},us.month=Ot,us.daysInMonth=function(){return xt(this.year(),this.month())},us.week=us.weeks=function(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")},us.isoWeek=us.isoWeeks=function(t){var e=Rt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")},us.weeksInYear=function(){var t=this.localeData()._week;return Ut(this.year(),t.dow,t.doy)},us.isoWeeksInYear=function(){return Ut(this.year(),1,4)},us.date=ns,us.day=us.days=function(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=function(t,e){return"string"!=typeof t?t:isNaN(t)?"number"==typeof(t=e.weekdaysParse(t))?t:null:parseInt(t,10)}(t,this.localeData()),this.add(t-e,"d")):e},us.weekday=function(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")},us.isoWeekday=function(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=function(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7},us.dayOfYear=function(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")},us.hour=us.hours=Kt,us.minute=us.minutes=as,us.second=us.seconds=rs,us.millisecond=us.milliseconds=cs,us.utcOffset=function(t,e,s){var i,a=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if("string"==typeof t){if(null===(t=Ae(rt,t)))return this}else Math.abs(t)<16&&!s&&(t*=60);return!this._isUTC&&e&&(i=Ee(this)),this._offset=t,this._isUTC=!0,null!=i&&this.add(i,"m"),a!==t&&(!e||this._changeInProgress?Ve(this,$e(t-a,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,n.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?a:Ee(this)},us.utc=function(t){return this.utcOffset(0,t)},us.local=function(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Ee(this),"m")),this},us.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var t=Ae(ot,this._i);null!=t?this.utcOffset(t):this.utcOffset(0,!0)}return this},us.hasAlignedHourOffset=function(t){return!!this.isValid()&&(t=t?Se(t).utcOffset():0,(this.utcOffset()-t)%60==0)},us.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},us.isLocal=function(){return!!this.isValid()&&!this._isUTC},us.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},us.isUtc=Re,us.isUTC=Re,us.zoneAbbr=function(){return this._isUTC?"UTC":""},us.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},us.dates=D("dates accessor is deprecated. Use date instead.",ns),us.months=D("months accessor is deprecated. Use month instead",Ot),us.years=D("years accessor is deprecated. Use year instead",yt),us.zone=D("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()})),us.isDSTShifted=D("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!r(this._isDSTShifted))return this._isDSTShifted;var t={};if(g(t,this),(t=Ce(t))._a){var e=t._isUTC?m(t._a):Se(t._a);this._isDSTShifted=this.isValid()&&x(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}));var _s=Y.prototype;function ms(t,e,s,i){var n=re(),a=m().set(i,e);return n[s](a,t)}function hs(t,e,s){if(l(t)&&(e=t,t=void 0),t=t||"",null!=e)return ms(t,e,s,"month");var i,n=[];for(i=0;i<12;i++)n[i]=ms(t,i,s,"month");return n}function ps(t,e,s,i){"boolean"==typeof t?(l(e)&&(s=e,e=void 0),e=e||""):(s=e=t,t=!1,l(e)&&(s=e,e=void 0),e=e||"");var n,a=re(),o=t?a._week.dow:0;if(null!=s)return ms(e,(s+o)%7,i,"day");var r=[];for(n=0;n<7;n++)r[n]=ms(e,(n+o)%7,i,"day");return r}_s.calendar=function(t,e,s){var i=this._calendar[t]||this._calendar.sameElse;return O(i)?i.call(e,s):i},_s.longDateFormat=function(t){var e=this._longDateFormat[t],s=this._longDateFormat[t.toUpperCase()];return e||!s?e:(this._longDateFormat[t]=s.replace(/MMMM|MM|DD|dddd/g,(function(t){return t.slice(1)})),this._longDateFormat[t])},_s.invalidDate=function(){return this._invalidDate},_s.ordinal=function(t){return this._ordinal.replace("%d",t)},_s.preparse=ds,_s.postformat=ds,_s.relativeTime=function(t,e,s,i){var n=this._relativeTime[s];return O(n)?n(t,e,s,i):n.replace(/%d/i,t)},_s.pastFuture=function(t,e){var s=this._relativeTime[t>0?"future":"past"];return O(s)?s(e):s.replace(/%s/i,e)},_s.set=function(t){var e,s;for(s in t)O(e=t[s])?this[s]=e:this["_"+s]=e;this._config=t,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},_s.months=function(t,e){return t?a(this._months)?this._months[t.month()]:this._months[(this._months.isFormat||St).test(e)?"format":"standalone"][t.month()]:a(this._months)?this._months:this._months.standalone},_s.monthsShort=function(t,e){return t?a(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[St.test(e)?"format":"standalone"][t.month()]:a(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},_s.monthsParse=function(t,e,s){var i,n,a;if(this._monthsParseExact)return Mt.call(this,t,e,s);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),i=0;i<12;i++){if(n=m([2e3,i]),s&&!this._longMonthsParse[i]&&(this._longMonthsParse[i]=new RegExp("^"+this.months(n,"").replace(".","")+"$","i"),this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(n,"").replace(".","")+"$","i")),s||this._monthsParse[i]||(a="^"+this.months(n,"")+"|^"+this.monthsShort(n,""),this._monthsParse[i]=new RegExp(a.replace(".",""),"i")),s&&"MMMM"===e&&this._longMonthsParse[i].test(t))return i;if(s&&"MMM"===e&&this._shortMonthsParse[i].test(t))return i;if(!s&&this._monthsParse[i].test(t))return i}},_s.monthsRegex=function(t){return this._monthsParseExact?(d(this,"_monthsRegex")||It.call(this),t?this._monthsStrictRegex:this._monthsRegex):(d(this,"_monthsRegex")||(this._monthsRegex=Yt),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)},_s.monthsShortRegex=function(t){return this._monthsParseExact?(d(this,"_monthsRegex")||It.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):(d(this,"_monthsShortRegex")||(this._monthsShortRegex=jt),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)},_s.week=function(t){return Rt(t,this._week.dow,this._week.doy).week},_s.firstDayOfYear=function(){return this._week.doy},_s.firstDayOfWeek=function(){return this._week.dow},_s.weekdays=function(t,e){var s=a(this._weekdays)?this._weekdays:this._weekdays[t&&!0!==t&&this._weekdays.isFormat.test(e)?"format":"standalone"];return!0===t?Ht(s,this._week.dow):t?s[t.day()]:s},_s.weekdaysMin=function(t){return!0===t?Ht(this._weekdaysMin,this._week.dow):t?this._weekdaysMin[t.day()]:this._weekdaysMin},_s.weekdaysShort=function(t){return!0===t?Ht(this._weekdaysShort,this._week.dow):t?this._weekdaysShort[t.day()]:this._weekdaysShort},_s.weekdaysParse=function(t,e,s){var i,n,a;if(this._weekdaysParseExact)return qt.call(this,t,e,s);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(n=m([2e3,1]).day(i),s&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(n,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(n,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(n,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[i]||(a="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[i]=new RegExp(a.replace(".",""),"i")),s&&"dddd"===e&&this._fullWeekdaysParse[i].test(t))return i;if(s&&"ddd"===e&&this._shortWeekdaysParse[i].test(t))return i;if(s&&"dd"===e&&this._minWeekdaysParse[i].test(t))return i;if(!s&&this._weekdaysParse[i].test(t))return i}},_s.weekdaysRegex=function(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Bt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(d(this,"_weekdaysRegex")||(this._weekdaysRegex=Vt),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)},_s.weekdaysShortRegex=function(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Bt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(d(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Gt),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},_s.weekdaysMinRegex=function(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Bt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(d(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=zt),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},_s.isPM=function(t){return"p"===(t+"").toLowerCase().charAt(0)},_s.meridiem=function(t,e,s){return t>11?s?"pm":"PM":s?"am":"AM"},ae("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===C(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),n.lang=D("moment.lang is deprecated. Use moment.locale instead.",ae),n.langData=D("moment.langData is deprecated. Use moment.localeData instead.",re);var fs=Math.abs;function vs(t,e,s,i){var n=$e(e,s);return t._milliseconds+=i*n._milliseconds,t._days+=i*n._days,t._months+=i*n._months,t._bubble()}function gs(t){return t<0?Math.floor(t):Math.ceil(t)}function bs(t){return 4800*t/146097}function ys(t){return 146097*t/4800}function ks(t){return function(){return this.as(t)}}var ws=ks("ms"),Cs=ks("s"),xs=ks("m"),Ss=ks("h"),Ds=ks("d"),Ps=ks("w"),Ms=ks("M"),Ts=ks("Q"),Os=ks("y");function js(t){return function(){return this.isValid()?this._data[t]:NaN}}var Ys=js("milliseconds"),Is=js("seconds"),Ls=js("minutes"),As=js("hours"),Ns=js("days"),Es=js("months"),Rs=js("years"),Us=Math.round,Hs={ss:44,s:45,m:45,h:22,d:26,M:11};function $s(t,e,s,i,n){return n.relativeTime(e||1,!!s,t,i)}var Ws=Math.abs;function Fs(t){return(t>0)-(t<0)||+t}function qs(){if(!this.isValid())return this.localeData().invalidDate();var t,e,s=Ws(this._milliseconds)/1e3,i=Ws(this._days),n=Ws(this._months);t=w(s/60),e=w(t/60),s%=60,t%=60;var a=w(n/12),o=n%=12,r=i,l=e,c=t,u=s?s.toFixed(3).replace(/\.?0+$/,""):"",d=this.asSeconds();if(!d)return"P0D";var _=d<0?"-":"",m=Fs(this._months)!==Fs(d)?"-":"",h=Fs(this._days)!==Fs(d)?"-":"",p=Fs(this._milliseconds)!==Fs(d)?"-":"";return _+"P"+(a?m+a+"Y":"")+(o?m+o+"M":"")+(r?h+r+"D":"")+(l||c||u?"T":"")+(l?p+l+"H":"")+(c?p+c+"M":"")+(u?p+u+"S":"")}var Vs=Oe.prototype;return Vs.isValid=function(){return this._isValid},Vs.abs=function(){var t=this._data;return this._milliseconds=fs(this._milliseconds),this._days=fs(this._days),this._months=fs(this._months),t.milliseconds=fs(t.milliseconds),t.seconds=fs(t.seconds),t.minutes=fs(t.minutes),t.hours=fs(t.hours),t.months=fs(t.months),t.years=fs(t.years),this},Vs.add=function(t,e){return vs(this,t,e,1)},Vs.subtract=function(t,e){return vs(this,t,e,-1)},Vs.as=function(t){if(!this.isValid())return NaN;var e,s,i=this._milliseconds;if("month"===(t=A(t))||"quarter"===t||"year"===t)switch(e=this._days+i/864e5,s=this._months+bs(e),t){case"month":return s;case"quarter":return s/3;case"year":return s/12}else switch(e=this._days+Math.round(ys(this._months)),t){case"week":return e/7+i/6048e5;case"day":return e+i/864e5;case"hour":return 24*e+i/36e5;case"minute":return 1440*e+i/6e4;case"second":return 86400*e+i/1e3;case"millisecond":return Math.floor(864e5*e)+i;default:throw new Error("Unknown unit "+t)}},Vs.asMilliseconds=ws,Vs.asSeconds=Cs,Vs.asMinutes=xs,Vs.asHours=Ss,Vs.asDays=Ds,Vs.asWeeks=Ps,Vs.asMonths=Ms,Vs.asQuarters=Ts,Vs.asYears=Os,Vs.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*C(this._months/12):NaN},Vs._bubble=function(){var t,e,s,i,n,a=this._milliseconds,o=this._days,r=this._months,l=this._data;return a>=0&&o>=0&&r>=0||a<=0&&o<=0&&r<=0||(a+=864e5*gs(ys(r)+o),o=0,r=0),l.milliseconds=a%1e3,t=w(a/1e3),l.seconds=t%60,e=w(t/60),l.minutes=e%60,s=w(e/60),l.hours=s%24,o+=w(s/24),n=w(bs(o)),r+=n,o-=gs(ys(n)),i=w(r/12),r%=12,l.days=o,l.months=r,l.years=i,this},Vs.clone=function(){return $e(this)},Vs.get=function(t){return t=A(t),this.isValid()?this[t+"s"]():NaN},Vs.milliseconds=Ys,Vs.seconds=Is,Vs.minutes=Ls,Vs.hours=As,Vs.days=Ns,Vs.weeks=function(){return w(this.days()/7)},Vs.months=Es,Vs.years=Rs,Vs.humanize=function(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),s=function(t,e,s){var i=$e(t).abs(),n=Us(i.as("s")),a=Us(i.as("m")),o=Us(i.as("h")),r=Us(i.as("d")),l=Us(i.as("M")),c=Us(i.as("y")),u=n<=Hs.ss&&["s",n]||n<Hs.s&&["ss",n]||a<=1&&["m"]||a<Hs.m&&["mm",a]||o<=1&&["h"]||o<Hs.h&&["hh",o]||r<=1&&["d"]||r<Hs.d&&["dd",r]||l<=1&&["M"]||l<Hs.M&&["MM",l]||c<=1&&["y"]||["yy",c];return u[2]=e,u[3]=+t>0,u[4]=s,$s.apply(null,u)}(this,!t,e);return t&&(s=e.pastFuture(+this,s)),e.postformat(s)},Vs.toISOString=qs,Vs.toString=qs,Vs.toJSON=qs,Vs.locale=Qe,Vs.localeData=Je,Vs.toIsoString=D("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",qs),Vs.lang=Ze,q("X",0,0,"unix"),q("x",0,0,"valueOf"),ut("x",at),ut("X",/[+-]?\d+(\.\d{1,3})?/),ht("X",(function(t,e,s){s._d=new Date(1e3*parseFloat(t,10))})),ht("x",(function(t,e,s){s._d=new Date(C(t))})),n.version="2.24.0",e=Se,n.fn=us,n.min=function(){var t=[].slice.call(arguments,0);return Me("isBefore",t)},n.max=function(){var t=[].slice.call(arguments,0);return Me("isAfter",t)},n.now=function(){return Date.now?Date.now():+new Date},n.utc=m,n.unix=function(t){return Se(1e3*t)},n.months=function(t,e){return hs(t,e,"months")},n.isDate=c,n.locale=ae,n.invalid=f,n.duration=$e,n.isMoment=k,n.weekdays=function(t,e,s){return ps(t,e,s,"weekdays")},n.parseZone=function(){return Se.apply(null,arguments).parseZone()},n.localeData=re,n.isDuration=je,n.monthsShort=function(t,e){return hs(t,e,"monthsShort")},n.weekdaysMin=function(t,e,s){return ps(t,e,s,"weekdaysMin")},n.defineLocale=oe,n.updateLocale=function(t,e){if(null!=e){var s,i,n=te;null!=(i=ne(t))&&(n=i._config),e=j(n,e),(s=new Y(e)).parentLocale=ee[t],ee[t]=s,ae(t)}else null!=ee[t]&&(null!=ee[t].parentLocale?ee[t]=ee[t].parentLocale:null!=ee[t]&&delete ee[t]);return ee[t]},n.locales=function(){return P(ee)},n.weekdaysShort=function(t,e,s){return ps(t,e,s,"weekdaysShort")},n.normalizeUnits=A,n.relativeTimeRounding=function(t){return void 0===t?Us:"function"==typeof t&&(Us=t,!0)},n.relativeTimeThreshold=function(t,e){return void 0!==Hs[t]&&(void 0===e?Hs[t]:(Hs[t]=e,"s"===t&&(Hs.ss=e-1),!0))},n.calendarFormat=function(t,e){var s=t.diff(e,"days",!0);return s<-6?"sameElse":s<-1?"lastWeek":s<0?"lastDay":s<1?"sameDay":s<2?"nextDay":s<7?"nextWeek":"sameElse"},n.prototype=us,n.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},n}()}).call(this,s("./node_modules/webpack/buildin/module.js")(t))},"./node_modules/vue-loader/lib/runtime/componentNormalizer.js":function(t,e,s){"use strict";function i(t,e,s,i,n,a,o,r){var l,c="function"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=s,c._compiled=!0),i&&(c.functional=!0),a&&(c._scopeId="data-v-"+a),o?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),n&&n.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},c._ssrRegister=l):n&&(l=r?function(){n.call(this,this.$root.$options.shadowRoot)}:n),l)if(c.functional){c._injectStyles=l;var u=c.render;c.render=function(t,e){return l.call(e),u(t,e)}}else{var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,l):[l]}return{exports:t,options:c}}s.d(e,"a",(function(){return i}))},"./node_modules/webpack/buildin/global.js":function(t,e){var s;s=function(){return this}();try{s=s||new Function("return this")()}catch(t){"object"==typeof window&&(s=window)}t.exports=s},"./node_modules/webpack/buildin/module.js":function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},"./node_modules/xss/lib/default.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/index.js").FilterCSS,n=s("./node_modules/cssfilter/lib/index.js").getDefaultWhiteList,a=s("./node_modules/xss/lib/util.js");function o(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]}}var r=new i;function l(t){return t.replace(c,"&lt;").replace(u,"&gt;")}var c=/</g,u=/>/g,d=/"/g,_=/&quot;/g,m=/&#([a-zA-Z0-9]*);?/gim,h=/&colon;?/gim,p=/&newline;?/gim,f=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi,v=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,g=/u\s*r\s*l\s*\(.*/gi;function b(t){return t.replace(d,"&quot;")}function y(t){return t.replace(_,'"')}function k(t){return t.replace(m,(function(t,e){return"x"===e[0]||"X"===e[0]?String.fromCharCode(parseInt(e.substr(1),16)):String.fromCharCode(parseInt(e,10))}))}function w(t){return t.replace(h,":").replace(p," ")}function C(t){for(var e="",s=0,i=t.length;s<i;s++)e+=t.charCodeAt(s)<32?" ":t.charAt(s);return a.trim(e)}function x(t){return t=C(t=w(t=k(t=y(t))))}function S(t){return t=l(t=b(t))}var D=/<!--[\s\S]*?-->/g;e.whiteList={a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]},e.getDefaultWhiteList=o,e.onTag=function(t,e,s){},e.onIgnoreTag=function(t,e,s){},e.onTagAttr=function(t,e,s){},e.onIgnoreTagAttr=function(t,e,s){},e.safeAttrValue=function(t,e,s,i){if(s=x(s),"href"===e||"src"===e){if("#"===(s=a.trim(s)))return"#";if("http://"!==s.substr(0,7)&&"https://"!==s.substr(0,8)&&"mailto:"!==s.substr(0,7)&&"tel:"!==s.substr(0,4)&&"#"!==s[0]&&"/"!==s[0])return""}else if("background"===e){if(f.lastIndex=0,f.test(s))return""}else if("style"===e){if(v.lastIndex=0,v.test(s))return"";if(g.lastIndex=0,g.test(s)&&(f.lastIndex=0,f.test(s)))return"";!1!==i&&(s=(i=i||r).process(s))}return s=S(s)},e.escapeHtml=l,e.escapeQuote=b,e.unescapeQuote=y,e.escapeHtmlEntities=k,e.escapeDangerHtml5Entities=w,e.clearNonPrintableCharacter=C,e.friendlyAttrValue=x,e.escapeAttrValue=S,e.onIgnoreTagStripAll=function(){return""},e.StripTagBody=function(t,e){"function"!=typeof e&&(e=function(){});var s=!Array.isArray(t),i=[],n=!1;return{onIgnoreTag:function(o,r,l){if(function(e){return!!s||-1!==a.indexOf(t,e)}(o)){if(l.isClosing){var c="[/removed]",u=l.position+c.length;return i.push([!1!==n?n:l.position,u]),n=!1,c}return n||(n=l.position),"[removed]"}return e(o,r,l)},remove:function(t){var e="",s=0;return a.forEach(i,(function(i){e+=t.slice(s,i[0]),s=i[1]})),e+=t.slice(s)}}},e.stripCommentTag=function(t){return t.replace(D,"")},e.stripBlankChar=function(t){var e=t.split("");return(e=e.filter((function(t){var e=t.charCodeAt(0);return 127!==e&&(!(e<=31)||(10===e||13===e))}))).join("")},e.cssFilter=r,e.getDefaultCSSWhiteList=n},"./node_modules/xss/lib/index.js":function(t,e,s){var i=s("./node_modules/xss/lib/default.js"),n=s("./node_modules/xss/lib/parser.js"),a=s("./node_modules/xss/lib/xss.js");function o(t,e){return new a(e).process(t)}for(var r in(e=t.exports=o).filterXSS=o,e.FilterXSS=a,i)e[r]=i[r];for(var r in n)e[r]=n[r];"undefined"!=typeof window&&(window.filterXSS=t.exports),"undefined"!=typeof self&&"undefined"!=typeof DedicatedWorkerGlobalScope&&self instanceof DedicatedWorkerGlobalScope&&(self.filterXSS=t.exports)},"./node_modules/xss/lib/parser.js":function(t,e,s){var i=s("./node_modules/xss/lib/util.js");function n(t){var e=i.spaceIndex(t);if(-1===e)var s=t.slice(1,-1);else s=t.slice(1,e+1);return"/"===(s=i.trim(s).toLowerCase()).slice(0,1)&&(s=s.slice(1)),"/"===s.slice(-1)&&(s=s.slice(0,-1)),s}function a(t){return"</"===t.slice(0,2)}var o=/[^a-zA-Z0-9_:\.\-]/gim;function r(t,e){for(;e<t.length;e++){var s=t[e];if(" "!==s)return"="===s?e:-1}}function l(t,e){for(;e>0;e--){var s=t[e];if(" "!==s)return"="===s?e:-1}}function c(t){return function(t){return'"'===t[0]&&'"'===t[t.length-1]||"'"===t[0]&&"'"===t[t.length-1]}(t)?t.substr(1,t.length-2):t}e.parseTag=function(t,e,s){var i="",o=0,r=!1,l=!1,c=0,u=t.length,d="",_="";for(c=0;c<u;c++){var m=t.charAt(c);if(!1===r){if("<"===m){r=c;continue}}else if(!1===l){if("<"===m){i+=s(t.slice(o,c)),r=c,o=c;continue}if(">"===m){i+=s(t.slice(o,r)),d=n(_=t.slice(r,c+1)),i+=e(r,i.length,d,_,a(_)),o=c+1,r=!1;continue}if(('"'===m||"'"===m)&&"="===t.charAt(c-1)){l=m;continue}}else if(m===l){l=!1;continue}}return o<t.length&&(i+=s(t.substr(o))),i},e.parseAttr=function(t,e){var s=0,n=[],a=!1,u=t.length;function d(t,s){if(!((t=(t=i.trim(t)).replace(o,"").toLowerCase()).length<1)){var a=e(t,s||"");a&&n.push(a)}}for(var _=0;_<u;_++){var m,h=t.charAt(_);if(!1!==a||"="!==h)if(!1===a||_!==s||'"'!==h&&"'"!==h||"="!==t.charAt(_-1))if(/\s|\n|\t/.test(h)){if(t=t.replace(/\s|\n|\t/g," "),!1===a){if(-1===(m=r(t,_))){d(i.trim(t.slice(s,_))),a=!1,s=_+1;continue}_=m-1;continue}if(-1===(m=l(t,_-1))){d(a,c(i.trim(t.slice(s,_)))),a=!1,s=_+1;continue}}else;else{if(-1===(m=t.indexOf(h,_+1)))break;d(a,i.trim(t.slice(s+1,m))),a=!1,s=(_=m)+1}else a=t.slice(s,_),s=_+1}return s<t.length&&(!1===a?d(t.slice(s)):d(a,c(i.trim(t.slice(s))))),i.trim(n.join(" "))}},"./node_modules/xss/lib/util.js":function(t,e){t.exports={indexOf:function(t,e){var s,i;if(Array.prototype.indexOf)return t.indexOf(e);for(s=0,i=t.length;s<i;s++)if(t[s]===e)return s;return-1},forEach:function(t,e,s){var i,n;if(Array.prototype.forEach)return t.forEach(e,s);for(i=0,n=t.length;i<n;i++)e.call(s,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},spaceIndex:function(t){var e=/\s|\n|\t/.exec(t);return e?e.index:-1}}},"./node_modules/xss/lib/xss.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/index.js").FilterCSS,n=s("./node_modules/xss/lib/default.js"),a=s("./node_modules/xss/lib/parser.js"),o=a.parseTag,r=a.parseAttr,l=s("./node_modules/xss/lib/util.js");function c(t){return null==t}function u(t){(t=function(t){var e={};for(var s in t)e[s]=t[s];return e}(t||{})).stripIgnoreTag&&(t.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),t.onIgnoreTag=n.onIgnoreTagStripAll),t.whiteList=t.whiteList||n.whiteList,t.onTag=t.onTag||n.onTag,t.onTagAttr=t.onTagAttr||n.onTagAttr,t.onIgnoreTag=t.onIgnoreTag||n.onIgnoreTag,t.onIgnoreTagAttr=t.onIgnoreTagAttr||n.onIgnoreTagAttr,t.safeAttrValue=t.safeAttrValue||n.safeAttrValue,t.escapeHtml=t.escapeHtml||n.escapeHtml,this.options=t,!1===t.css?this.cssFilter=!1:(t.css=t.css||{},this.cssFilter=new i(t.css))}u.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var e=this.options,s=e.whiteList,i=e.onTag,a=e.onIgnoreTag,u=e.onTagAttr,d=e.onIgnoreTagAttr,_=e.safeAttrValue,m=e.escapeHtml,h=this.cssFilter;e.stripBlankChar&&(t=n.stripBlankChar(t)),e.allowCommentTag||(t=n.stripCommentTag(t));var p=!1;if(e.stripIgnoreTagBody){p=n.StripTagBody(e.stripIgnoreTagBody,a);a=p.onIgnoreTag}var f=o(t,(function(t,e,n,o,p){var f,v={sourcePosition:t,position:e,isClosing:p,isWhite:s.hasOwnProperty(n)};if(!c(f=i(n,o,v)))return f;if(v.isWhite){if(v.isClosing)return"</"+n+">";var g=function(t){var e=l.spaceIndex(t);if(-1===e)return{html:"",closing:"/"===t[t.length-2]};var s="/"===(t=l.trim(t.slice(e+1,-1)))[t.length-1];return s&&(t=l.trim(t.slice(0,-1))),{html:t,closing:s}}(o),b=s[n],y=r(g.html,(function(t,e){var s,i=-1!==l.indexOf(b,t);return c(s=u(n,t,e,i))?i?(e=_(n,t,e,h))?t+'="'+e+'"':t:c(s=d(n,t,e,i))?void 0:s:s}));o="<"+n;return y&&(o+=" "+y),g.closing&&(o+=" /"),o+=">"}return c(f=a(n,o,v))?m(o):f}),m);return p&&(f=p.remove(f)),f},t.exports=u},"./src/component/doc-link.vue":function(t,e,s){"use strict";var i={mixins:[s("./src/helper/base_hepler.js").a],name:"doc-link",props:["link"],data:function(){return{whitelabel:defender.whitelabel}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this.$createElement,e=this._self._c||t;return!1===this.whitelabel.hide_doc_link?e("div",{staticClass:"sui-actions-right"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:this.link,target:"_blank"}},[e("i",{staticClass:"sui-icon-academy"}),this._v(" "+this._s(this.__("View Documentation"))+"\n ")])]):this._e()}),[],!1,null,null,null);e.a=a.exports},"./src/component/footer.vue":function(t,e,s){"use strict";var i={data:function(){return{whitelabel:defender.whitelabel,is_free:defender.is_free}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",[!0===t.whitelabel.change_footer?s("div",{staticClass:"sui-footer"},[t._v("\n "+t._s(t.whitelabel.footer_text)+"\n ")]):s("div",{staticClass:"sui-footer"},[t._v("Made with "),s("i",{staticClass:"sui-icon-heart"}),t._v(" by WPMU DEV")]),t._v(" "),!1===t.whitelabel.hide_doc_link?s("div",[t.is_free?s("ul",{staticClass:"sui-footer-nav"},[t._m(0),t._v(" "),t._m(1),t._v(" "),t._m(2),t._v(" "),t._m(3),t._v(" "),t._m(4),t._v(" "),t._m(5),t._v(" "),t._m(6),t._v(" "),t._m(7)]):s("ul",{staticClass:"sui-footer-nav"},[t._m(8),t._v(" "),t._m(9),t._v(" "),t._m(10),t._v(" "),t._m(11),t._v(" "),t._m(12),t._v(" "),t._m(13),t._v(" "),t._m(14),t._v(" "),t._m(15)]),t._v(" "),t._m(16)]):t._e()])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://profiles.wordpress.org/wpmudev#content-plugins",target:"_blank"}},[this._v("Free\n Plugins")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/features/",target:"_blank"}},[this._v("Membership")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://wordpress.org/support/plugin/plugin-name",target:"_blank"}},[this._v("Support")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/projects/category/plugins/",target:"_blank"}},[this._v("Plugins")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/support/",target:"_blank"}},[this._v("Support")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/community/",target:"_blank"}},[this._v("Community")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ul",{staticClass:"sui-footer-social"},[s("li",[s("a",{attrs:{href:"https://www.facebook.com/wpmudev",target:"_blank"}},[s("i",{staticClass:"sui-icon-social-facebook",attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Facebook")])])]),t._v(" "),s("li",[s("a",{attrs:{href:"https://twitter.com/wpmudev",target:"_blank"}},[s("i",{staticClass:"sui-icon-social-twitter",attrs:{"aria-hidden":"true"}})]),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Twitter")])]),t._v(" "),s("li",[s("a",{attrs:{href:"https://www.instagram.com/wpmu_dev/",target:"_blank"}},[s("i",{staticClass:"sui-icon-instagram",attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Instagram")])])])])}],!1,null,null,null);e.a=a.exports},"./src/component/overlay.vue":function(t,e,s){"use strict";var i={name:"overlay"},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this.$createElement;this._self._c;return this._m(0)}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"wd-overlay"},[e("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])}],!1,null,null,null);e.a=a.exports},"./src/component/pagination.vue":function(t,e,s){"use strict";var i={props:{value:{type:Number},pageCount:{type:Number,required:!0},forcePage:{type:Number},clickHandler:{type:Function,default:function(){}},pageRange:{type:Number,default:3},marginPages:{type:Number,default:1},prevText:{type:String,default:"Prev"},nextText:{type:String,default:"Next"},breakViewText:{type:String,default:"…"},containerClass:{type:String},pageClass:{type:String},pageLinkClass:{type:String},prevClass:{type:String},prevLinkClass:{type:String},nextClass:{type:String},nextLinkClass:{type:String},breakViewClass:{type:String},breakViewLinkClass:{type:String},activeClass:{type:String,default:"active"},disabledClass:{type:String,default:"disabled"},noLiSurround:{type:Boolean,default:!1},firstLastButton:{type:Boolean,default:!1},firstButtonText:{type:String,default:"First"},lastButtonText:{type:String,default:"Last"},hidePrevNext:{type:Boolean,default:!1}},beforeUpdate:function(){void 0!==this.forcePage&&this.forcePage!==this.selected&&(this.selected=this.forcePage)},computed:{selected:{get:function(){return this.value||this.innerValue},set:function(t){this.innerValue=t}},pages:function(){var t=this,e={};if(this.pageCount<=this.pageRange)for(var s=0;s<this.pageCount;s++){var i={index:s,content:s+1,selected:s===this.selected-1};e[s]=i}else{for(var n=Math.floor(this.pageRange/2),a=function(s){var i={index:s,content:s+1,selected:s===t.selected-1};e[s]=i},o=function(t){e[t]={disabled:!0,breakView:!0}},r=0;r<this.marginPages;r++)a(r);var l=0;this.selected-n>0&&(l=this.selected-1-n);var c=l+this.pageRange-1;c>=this.pageCount&&(l=(c=this.pageCount-1)-this.pageRange+1);for(var u=l;u<=c&&u<=this.pageCount-1;u++)a(u);l>this.marginPages&&o(l-1),c+1<this.pageCount-this.marginPages&&o(c+1);for(var d=this.pageCount-1;d>=this.pageCount-this.marginPages;d--)a(d)}return e}},data:function(){return{innerValue:1}},methods:{handlePageSelected:function(t){this.selected!==t&&(this.innerValue=t,this.$emit("input",t),this.clickHandler(t))},prevPage:function(){this.selected<=1||this.handlePageSelected(this.selected-1)},nextPage:function(){this.selected>=this.pageCount||this.handlePageSelected(this.selected+1)},firstPageSelected:function(){return 1===this.selected},lastPageSelected:function(){return this.selected===this.pageCount||0===this.pageCount},selectFirstPage:function(){this.selected<=1||this.handlePageSelected(1)},selectLastPage:function(){this.selected>=this.pageCount||this.handlePageSelected(this.pageCount)}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return t.noLiSurround?s("div",{class:t.containerClass},[t.firstLastButton?s("a",{class:[t.pageLinkClass,t.firstPageSelected()?t.disabledClass:""],attrs:{tabindex:"0"},domProps:{innerHTML:t._s(t.firstButtonText)},on:{click:function(e){return t.selectFirstPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.selectFirstPage()}}}):t._e(),t._v(" "),t.firstPageSelected()&&t.hidePrevNext?t._e():s("a",{class:[t.prevLinkClass,t.firstPageSelected()?t.disabledClass:""],attrs:{tabindex:"0"},domProps:{innerHTML:t._s(t.prevText)},on:{click:function(e){return t.prevPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.prevPage()}}}),t._v(" "),t._l(t.pages,(function(e){return[e.breakView?s("a",{class:[t.pageLinkClass,t.breakViewLinkClass,e.disabled?t.disabledClass:""],attrs:{tabindex:"0"}},[t._t("breakViewContent",[t._v(t._s(t.breakViewText))])],2):e.disabled?s("a",{class:[t.pageLinkClass,e.selected?t.activeClass:"",t.disabledClass],attrs:{tabindex:"0"}},[t._v(t._s(e.content))]):s("a",{class:[t.pageLinkClass,e.selected?t.activeClass:""],attrs:{tabindex:"0"},on:{click:function(s){return t.handlePageSelected(e.index+1)},keyup:function(s){return!s.type.indexOf("key")&&t._k(s.keyCode,"enter",13,s.key,"Enter")?null:t.handlePageSelected(e.index+1)}}},[t._v(t._s(e.content))])]})),t._v(" "),t.lastPageSelected()&&t.hidePrevNext?t._e():s("a",{class:[t.nextLinkClass,t.lastPageSelected()?t.disabledClass:""],attrs:{tabindex:"0"},domProps:{innerHTML:t._s(t.nextText)},on:{click:function(e){return t.nextPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.nextPage()}}}),t._v(" "),t.firstLastButton?s("a",{class:[t.pageLinkClass,t.lastPageSelected()?t.disabledClass:""],attrs:{tabindex:"0"},domProps:{innerHTML:t._s(t.lastButtonText)},on:{click:function(e){return t.selectLastPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.selectLastPage()}}}):t._e()],2):s("ul",{class:t.containerClass},[t.firstLastButton?s("li",{class:[t.pageClass,t.firstPageSelected()?t.disabledClass:""]},[s("a",{class:t.pageLinkClass,attrs:{tabindex:t.firstPageSelected()?-1:0},domProps:{innerHTML:t._s(t.firstButtonText)},on:{click:function(e){return t.selectFirstPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.selectFirstPage()}}})]):t._e(),t._v(" "),t.firstPageSelected()&&t.hidePrevNext?t._e():s("li",{class:[t.prevClass,t.firstPageSelected()?t.disabledClass:""]},[s("a",{class:t.prevLinkClass,attrs:{tabindex:t.firstPageSelected()?-1:0},domProps:{innerHTML:t._s(t.prevText)},on:{click:function(e){return t.prevPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.prevPage()}}})]),t._v(" "),t._l(t.pages,(function(e){return s("li",{class:[t.pageClass,e.selected?t.activeClass:"",e.disabled?t.disabledClass:"",e.breakView?t.breakViewClass:""]},[e.breakView?s("a",{class:[t.pageLinkClass,t.breakViewLinkClass],attrs:{tabindex:"0"}},[t._t("breakViewContent",[t._v(t._s(t.breakViewText))])],2):e.disabled?s("a",{class:t.pageLinkClass,attrs:{tabindex:"0"}},[t._v(t._s(e.content))]):s("a",{class:t.pageLinkClass,attrs:{disabled:e.selected,tabindex:"0"},on:{click:function(s){return t.handlePageSelected(e.index+1)},keyup:function(s){return!s.type.indexOf("key")&&t._k(s.keyCode,"enter",13,s.key,"Enter")?null:t.handlePageSelected(e.index+1)}}},[t._v(t._s(e.content))])])})),t._v(" "),t.lastPageSelected()&&t.hidePrevNext?t._e():s("li",{class:[t.nextClass,t.lastPageSelected()?t.disabledClass:""]},[s("a",{class:t.nextLinkClass,attrs:{tabindex:t.lastPageSelected()?-1:0},domProps:{innerHTML:t._s(t.nextText)},on:{click:function(e){return t.nextPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.nextPage()}}})]),t._v(" "),t.firstLastButton?s("li",{class:[t.pageClass,t.lastPageSelected()?t.disabledClass:""]},[s("a",{class:t.pageLinkClass,attrs:{tabindex:t.lastPageSelected()?-1:0},domProps:{innerHTML:t._s(t.lastButtonText)},on:{click:function(e){return t.selectLastPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.selectLastPage()}}})]):t._e()],2)}),[],!1,null,null,null);e.a=a.exports},"./src/component/recipients.vue":function(t,e,s){"use strict";var i={mixins:[s("./src/helper/base_hepler.js").a],props:["recipients","id"],data:function(){return{first_name:"",email:"",observers:[],can_add:!1,saving_warning:!1,validate:{email:""}}},created:function(){this.observers=this.recipients},watch:{email:function(){if(this.validateEmail(this.email)){var t=!0,e=this;this.observers.forEach((function(s,i){if(s.email===e.email)return t=!1,void(e.validate.email=e.__("This email address is already in use"))})),this.can_add=t,!0===t&&(this.validate.email="")}else this.can_add=!1,this.validate.email=this.__("Invalid email address")},observers:function(){0===this.observers.length?this.saving_warning=!0:this.saving_warning=!1,void 0!==this.event&&this.$emit("update:recipients",this.observers)}},methods:{addRecipient:function(){this.observers.push({first_name:this.first_name,email:this.email}),jQuery.each(SUI.dialogs,(function(t,e){e.hide()})),this.first_name="",this.email=""},removeRecipient:function(t){this.observers.splice(t,1)},validateEmail:function(t){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(t).toLowerCase())}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",[s("div",{directives:[{name:"show",rawName:"v-show",value:t.saving_warning,expression:"saving_warning"}],staticClass:"sui-notice sui-notice-warning"},[s("p",[t._v("\n\t\t\t"+t._s(t.__("You've removed all recipients. If you save without a recipient, we'll automatically turn of reports"))+"\n\t\t")])]),t._v(" "),s("div",{staticClass:"sui-recipients"},[t._l(t.observers,(function(e,i){return s("div",{staticClass:"sui-recipient"},[s("span",{staticClass:"sui-recipient-name"},[t._v(t._s(e.first_name))]),t._v(" "),s("span",{staticClass:"sui-recipient-email"},[t._v(t._s(e.email))]),t._v(" "),s("button",{staticClass:"sui-button-icon",attrs:{type:"button"},on:{click:function(e){return t.removeRecipient(i)}}},[s("i",{staticClass:"sui-icon-trash",attrs:{"aria-hidden":"true"}})])])})),t._v(" "),s("button",{staticClass:"sui-button sui-button-ghost add-recipient",attrs:{"data-a11y-dialog-show":t.id,type:"button"}},[s("i",{staticClass:"sui-icon-plus",attrs:{"aria-hidden":"true"}}),t._v(" "+t._s(t.__("Add Recipient"))+"\n\t\t")])],2),t._v(" "),s("div",{staticClass:"sui-dialog sui-dialog-sm",attrs:{"aria-hidden":"true",tabindex:"-1",id:t.id}},[s("div",{staticClass:"sui-dialog-overlay"}),t._v(" "),s("div",{staticClass:"sui-dialog-content",attrs:{"aria-labelledby":"dialogTitle","aria-describedby":"dialogDescription",role:"dialog"}},[s("div",{staticClass:"sui-box",attrs:{role:"document"}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Add Recipient"))+"\n\t\t\t\t\t")]),t._v(" "),t._m(0)]),t._v(" "),s("div",{staticClass:"sui-box-body"},[s("p",[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Add as many recipients as you like, they will receive email reports as per the schedule you set."))+"\n\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("First name")))]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.first_name,expression:"first_name"}],staticClass:"sui-form-control recipient_name",attrs:{type:"text"},domProps:{value:t.first_name},on:{input:function(e){e.target.composing||(t.first_name=e.target.value)}}})]),t._v(" "),s("div",{staticClass:"sui-form-field",class:{"sui-form-field-error":t.validate.email.length>0}},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Email")))]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.email,expression:"email"}],staticClass:"sui-form-control recipient_email",attrs:{type:"text"},domProps:{value:t.email},on:{input:function(e){e.target.composing||(t.email=e.target.value)}}}),t._v(" "),s("span",{directives:[{name:"show",rawName:"v-show",value:t.validate.email.length>0,expression:"validate.email.length > 0"}],staticClass:"sui-error-message",domProps:{textContent:t._s(this.validate.email)}})])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("button",{staticClass:"sui-button sui-button-ghost",attrs:{type:"button","data-a11y-dialog-hide":"recipient-dialog"}},[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Cancel"))+"\n\t\t\t\t\t")]),t._v(" "),s("button",{staticClass:"sui-modal-close sui-button recipient_save",attrs:{type:"button",disabled:!1===t.can_add},on:{click:t.addRecipient}},[t._v(t._s(t.__("Add"))+"\n\t\t\t\t\t")])])])])])])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"sui-actions-right"},[e("button",{staticClass:"sui-dialog-close",attrs:{type:"button","data-a11y-dialog-hide":"","aria-label":"Close this dialog window"}})])}],!1,null,null,null);e.a=a.exports},"./src/component/submit-button.vue":function(t,e,s){"use strict";var i={name:"submit-button",props:["id","state","text","css-class","type"],computed:{getClass:function(){return"sui-button "+this.cssClass}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("button",{staticClass:"sui-button",class:[t.getClass,{"sui-button-onload":t.state.on_saving}],attrs:{id:t.id,type:t.type,disabled:t.state.on_saving},on:{click:function(e){return t.$emit("click")}}},[s("span",{staticClass:"sui-loading-text"},[t._t("default")],2),t._v(" "),s("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])}),[],!1,null,null,null);e.a=a.exports},"./src/component/summary-box.vue":function(t,e,s){"use strict";var i={mixins:[s("./src/helper/base_hepler.js").a],props:["css-class"],name:"summary-box",data:function(){return{whitelabel:defender.whitelabel}},computed:{summary_class:function(){return{"sui-unbranded":!0===this.whitelabel.hide_branding&&0===this.whitelabel.hero_image.length,"sui-rebranded":!0===this.whitelabel.hide_branding&&this.whitelabel.hero_image.length>0}},css_class:function(){return this.cssClass},rebrand_img:function(){if(this.whitelabel.hero_image.length>0)return{"background-image":"url('"+this.whitelabel.hero_image+"')"}}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"sui-box sui-summary",class:[this.summary_class,this.css_class],style:this.rebrand_img},[e("div",{staticClass:"sui-summary-image-space",attrs:{"aria-hidden":"true"}}),this._v(" "),this._t("default")],2)}),[],!1,null,null,null);e.a=a.exports},"./src/helper/base_hepler.js":function(t,e,s){"use strict";var i=s("./node_modules/xss/lib/index.js"),n=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var s=[],i=!0,n=!1,a=void 0;try{for(var o,r=t[Symbol.iterator]();!(i=(o=r.next()).done)&&(s.push(o.value),!e||s.length!==e);i=!0);}catch(t){n=!0,a=t}finally{try{!i&&r.return&&r.return()}finally{if(n)throw a}}return s}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")},a=wp.i18n,o={whiteList:{a:["href","title","target"],span:["class"],strong:["*"]},safeAttrValue:function(t,e,s,n){return"a"===t&&"href"===e&&"%s"===s?"%s":Object(i.safeAttrValue)(t,e,s,n)}},r=new i.FilterXSS(o),l=[];e.a={methods:{__:function(t){var e=a.__(t,"wpdef");return r.process(e)},xss:function(t){return r.process(t)},vsprintf:function(t){return a.sprintf.apply(null,arguments)},siteUrl:function(t){return void 0!==t?defender.site_url+t:defender.site_url},adminUrl:function(t){return void 0!==t?defender.admin_url+t:defender.admin_url},assetUrl:function(t){return defender.defender_url+t},maybeHighContrast:function(){return{"sui-color-accessible":!0===defender.misc.high_contrast}},maybeHideBranding:function(){return defender.whitelabel.hide_branding},campaign_url:function(t){return"https://premium.wpmudev.org/project/wp-defender/?utm_source=defender&utm_medium=plugin&utm_campaign="+t},httpRequest:function(t,e,s,i,n){var a=this;void 0===n&&(this.state.on_saving=!0);var o=ajaxurl+"?action="+this.endpoints[e]+"&_wpnonce="+this.nonces[e],r=jQuery.ajax({url:o,method:t,data:s,success:function(t){var e=t.data;a.state.on_saving=!1,void 0!==e&&void 0!==e.message&&(t.success?Defender.showNotification("success",e.message):Defender.showNotification("error",e.message)),void 0!==i&&i(t)}});l.push(r)},httpGetRequest:function(t,e,s,i){this.httpRequest("get",t,e,s,i)},httpPostRequest:function(t,e,s,i){this.httpRequest("post",t,e,s,i)},abortAllRequests:function(){for(var t=0;t<l.length;t++)l[t].abort()},getQueryStringParams:function(t){return t?(/^[?#]/.test(t)?t.slice(1):t).split("&").reduce((function(t,e){var s=e.split("="),i=n(s,2),a=i[0],o=i[1];return t[a]=o?decodeURIComponent(o.replace(/\+/g," ")):"",t}),{}):{}},rebindSUI:function(){jQuery("select:not([multiple])").each((function(){SUI.suiSelect(this)})),jQuery(".sui-accordion").each((function(){SUI.suiAccordion(this)}));var t=jQuery(".sui-wrap");SUI.dialogs={},jQuery(".sui-dialog").each((function(){SUI.dialogs[this.id]=new A11yDialog(this,t)}))}}}},"./src/ip-lockout.js":function(t,e,s){"use strict";s.r(e);var i=s("vue"),n=s.n(i),a=s("./src/helper/base_hepler.js"),o={mixins:[a.a],name:"ip-lockout",props:["view"],data:function(){return{model:iplockout.model.ip_lockout,summary_data:iplockout.summaryData,state:{on_saving:!1},nonces:iplockout.nonces,endpoints:iplockout.endpoints,misc:iplockout.misc}},methods:{toggle:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"login_protection",s=this,i={};i[e]=t,this.httpPostRequest("updateSettings",{data:JSON.stringify(i)},(function(){s.model[e]=t,!0===t&&s.$nextTick((function(){s.rebindSUI()}))}))},updateSettings:function(){var t=this.model;this.httpPostRequest("updateSettings",{data:JSON.stringify(t)})}},computed:{notification:function(){return 0===this.summary_data.ip.day?this.__("Login protection is enabled. There are no lockouts logged yet."):this.vsprintf(this.__('There have been %s lockouts in the last 24 hours. <a href="%s"><strong>View log</strong></a>.'),this.summary_data.ip.day,this.adminUrl("admin.php?page=wdf-ip-lockout&view=logs"))},banned_username:function(){return this.vsprintf(this.__("We recommend adding the usernames <strong>admin</strong>, <strong>administrator</strong> and your hostname <strong>%s</strong> as these are common for bots to try logging in with. One username per line"),this.misc.host)},demo_link:function(){return this.vsprintf(this.__('This message will be displayed across your website during the lockout period. See a quick preview <a href="%s">here</a>.'),this.siteUrl("?def-lockout-demo=1&type=demo"))}},mounted:function(){var t=this;jQuery(".jquery-select").change((function(){var e=jQuery(this).val(),s=jQuery(this).attr("name");t.model[s]=e}))}},r=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),l=Object(r.a)(o,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return!1===t.model.login_protection||0===t.model.login_protection?s("div",{staticClass:"sui-box",attrs:{"data-tab":"login_lockout"}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n "+t._s(t.__("Login Protection"))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-message"},[t.maybeHideBranding()?t._e():s("img",{staticClass:"sui-image",attrs:{src:t.assetUrl("assets/img/lockout-man.svg")}}),t._v(" "),s("div",{staticClass:"sui-message-content"},[s("p",[t._v("\n "+t._s(t.__("Put a stop to hackers trying to randomly guess your login credentials. Defender will lock out users after a set number of failed login attempts."))+"\n ")]),t._v(" "),s("form",{staticClass:"ip-frm",attrs:{method:"post"},on:{submit:function(e){return e.preventDefault(),t.toggle(!0,"login_protection")}}},[s("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue",state:t.state}},[t._v("\n "+t._s(t.__("Activate"))+"\n ")])],1)])])]):!0===t.model.login_protection||1===t.model.login_protection?s("div",{staticClass:"sui-box"},[s("form",{staticClass:"ip-frm",attrs:{method:"post",id:"settings-frm"},on:{submit:function(e){return e.preventDefault(),t.updateSettings(e)}}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n "+t._s(t.__("Login Protection"))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-body"},[s("p",[t._v("\n "+t._s(t.__("Put a stop to hackers trying to randomly guess your login credentials. Defender will lock out users after a set number of failed login attempts."))+"\n ")]),t._v(" "),t.summary_data.ip.day>0?s("div",{staticClass:"sui-notice sui-notice-error"},[s("p",{domProps:{innerHTML:t._s(t.notification)}})]):s("div",{staticClass:"sui-notice sui-notice-info"},[s("p",{domProps:{innerHTML:t._s(t.notification)}})]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v(t._s(t.__("Threshold")))]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v(t._s(t.__("Specify how many failed login attempts within a specific time period will trigger a lockout.")))])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field"},[s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col-md-2"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Failed logins")))]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.login_protection_login_attempt,expression:"model.login_protection_login_attempt"}],staticClass:"sui-form-control sui-input-sm sui-field-has-suffix",attrs:{size:"8",type:"text",id:"login_protection_login_attempt",name:"login_protection_login_attempt"},domProps:{value:t.model.login_protection_login_attempt},on:{input:function(e){e.target.composing||t.$set(t.model,"login_protection_login_attempt",e.target.value)}}})]),t._v(" "),s("div",{staticClass:"sui-col-md-3"},[s("label",{staticClass:"sui-label"},[t._v("\n "+t._s(t.__("Timeframe"))+"\n ")]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.login_protection_lockout_timeframe,expression:"model.login_protection_lockout_timeframe"}],staticClass:"sui-form-control sui-input-sm sui-field-has-suffix",attrs:{size:"8",id:"login_lockout_timeframe",name:"login_protection_lockout_timeframe",type:"text"},domProps:{value:t.model.login_protection_lockout_timeframe},on:{input:function(e){e.target.composing||t.$set(t.model,"login_protection_lockout_timeframe",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-field-suffix"},[t._v(t._s(t.__("seconds")))])])])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v(t._s(t.__("Duration")))]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v(t._s(t.__("Choose how long you'd like to ban the locked out user for.")))])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-side-tabs"},[s("div",{staticClass:"sui-tabs-menu"},[s("label",{staticClass:"sui-tab-item",class:{active:!1===t.model.login_protection_lockout_ban},attrs:{for:"timeframe"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.login_protection_lockout_ban,expression:"model.login_protection_lockout_ban"}],attrs:{type:"radio",name:"login_protection_lockout_ban",id:"timeframe","data-tab-menu":"timeframe-box"},domProps:{value:!1,checked:t._q(t.model.login_protection_lockout_ban,!1)},on:{change:function(e){return t.$set(t.model,"login_protection_lockout_ban",!1)}}}),t._v("\n "+t._s(t.__("Timeframe"))+"\n ")]),t._v(" "),s("label",{staticClass:"sui-tab-item",class:{active:!0===t.model.login_protection_lockout_ban},attrs:{for:"permanent"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.login_protection_lockout_ban,expression:"model.login_protection_lockout_ban"}],attrs:{type:"radio",name:"login_protection_lockout_ban","data-tab-menu":"",id:"permanent"},domProps:{value:!0,checked:t._q(t.model.login_protection_lockout_ban,!0)},on:{change:function(e){return t.$set(t.model,"login_protection_lockout_ban",!0)}}}),t._v("\n "+t._s(t.__("Permanent"))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-tabs-content"},[s("div",{staticClass:"sui-tab-content sui-tab-boxed",class:{active:!1===t.model.login_protection_lockout_ban},attrs:{id:"timeframe-box","data-tab-content":"timeframe-box"}},[s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col-md-3"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.login_protection_lockout_duration,expression:"model.login_protection_lockout_duration"}],staticClass:"sui-form-control",attrs:{size:"4",name:"login_protection_lockout_duration",id:"login_protection_lockout_duration",type:"text"},domProps:{value:t.model.login_protection_lockout_duration},on:{input:function(e){e.target.composing||t.$set(t.model,"login_protection_lockout_duration",e.target.value)}}})]),t._v(" "),s("div",{staticClass:"sui-col-md-4"},[s("select",{directives:[{name:"model",rawName:"v-model",value:t.model.login_protection_lockout_duration_unit,expression:"model.login_protection_lockout_duration_unit"}],staticClass:"jquery-select sui-select",attrs:{id:"lockout-duration-unit",name:"login_protection_lockout_duration_unit","data-minimum-results-for-search":"Infinity"},on:{change:function(e){var s=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));t.$set(t.model,"login_protection_lockout_duration_unit",e.target.multiple?s:s[0])}}},[s("option",{attrs:{value:"seconds"}},[t._v(t._s(t.__("Seconds")))]),t._v(" "),s("option",{attrs:{value:"minutes"}},[t._v(t._s(t.__("Minutes")))]),t._v(" "),s("option",{attrs:{value:"hours"}},[t._v(t._s(t.__("Hours")))])])])])])])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v(t._s(t.__("Message")))]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v(t._s(t.__("Customize the message locked out users will see.")))])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Custom message")))]),t._v(" "),s("textarea",{directives:[{name:"model",rawName:"v-model",value:t.model.login_protection_lockout_message,expression:"model.login_protection_lockout_message"}],staticClass:"sui-form-control",attrs:{name:"login_protection_lockout_message",id:"login_protection_lockout_message"},domProps:{value:t.model.login_protection_lockout_message},on:{input:function(e){e.target.composing||t.$set(t.model,"login_protection_lockout_message",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-description",domProps:{innerHTML:t._s(t.demo_link)}})])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v(t._s(t.__("Banned usernames")))]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("It is highly recommended you avoid using the default username ‘admin'. Use this tool to automatically lockout and ban users who try to login with common usernames."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Banned usernames")))]),t._v(" "),s("textarea",{directives:[{name:"model",rawName:"v-model",value:t.model.username_blacklist,expression:"model.username_blacklist"}],staticClass:"sui-form-control",attrs:{placeholder:t.__("Type usernames, one per line"),id:"username_blacklist",name:"username_blacklist",rows:"8"},domProps:{value:t.model.username_blacklist},on:{input:function(e){e.target.composing||t.$set(t.model,"username_blacklist",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-description",domProps:{innerHTML:t._s(t.banned_username)}})])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Deactivate"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("If you no longer want to use this feature you can turn it off at any time."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("submit-button",{attrs:{type:"button","css-class":"sui-button-ghost",state:t.state},on:{click:function(e){return t.toggle(!1,"login_protection")}}},[t._v("\n "+t._s(t.__("Deactivate"))+"\n ")])],1)])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("div",{staticClass:"sui-actions-right"},[s("submit-button",{attrs:{type:"submit",state:t.state,"css-class":"sui-button-blue"}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Save Changes"))+"\n ")])],1)])])]):t._e()}),[],!1,null,null,null).exports,c={mixins:[a.a],name:"nf-lockout",props:["view"],data:function(){return{model:iplockout.model.nf_lockout,summary_data:iplockout.summaryData,state:{on_saving:!1},nonces:iplockout.nonces,endpoints:iplockout.endpoints,misc:iplockout.misc}},methods:{toggle:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"login_protection",s=this,i={};i[e]=t,this.httpPostRequest("updateSettings",{data:JSON.stringify(i)},(function(){s.model[e]=t,!0===t&&s.$nextTick((function(){s.rebindSUI()}))}))},updateSettings:function(){var t=this.model;this.httpPostRequest("updateSettings",{data:JSON.stringify(t)})}},computed:{notification:function(){return 0===this.summary_data.nf.day?this.__("404 detection is enabled. There are no lockouts logged yet."):this.vsprintf(this.__('There have been %s lockouts in the last 24 hours. <a href="%s"><strong>View log</strong></a>.'),this.summary_data.nf.day,this.adminUrl("admin.php?page=wdf-ip-lockout&view=logs"))},demo_link:function(){return this.vsprintf(this.__('This message will be displayed across your website during the lockout period. See a quick preview <a href="%s">here</a>.'),this.siteUrl("?def-lockout-demo=1&type=404"))}},mounted:function(){var t=this;jQuery(".jquery-select").change((function(){var e=jQuery(this).val(),s=jQuery(this).attr("name");t.model[s]=e}))}},u=Object(r.a)(c,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return!1===t.model.detect_404||0===t.model.detect_404?s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t"+t._s(t.__("404 Detection"))+"\n\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-message"},[!1===t.maybeHideBranding()?s("img",{staticClass:"sui-image",attrs:{src:t.assetUrl("assets/img/lockout-man.svg")}}):t._e(),t._v(" "),s("div",{staticClass:"sui-message-content"},[s("p",[t._v("\n\t\t\t\t\t"+t._s(t.__("With 404 detection enabled, Defender will keep an eye out for IP addresses that repeatedly request pages on your website that don't exist and then temporarily block them from accessing your site."))+"\n\t\t\t\t")]),t._v(" "),s("form",{attrs:{method:"post"},on:{submit:function(e){return e.preventDefault(),t.toggle(!0,"detect_404")}}},[s("submit-button",{staticClass:"sui-button-blue",attrs:{type:"submit",state:t.state}},[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Activate"))+"\n\t\t\t\t\t")])],1)])])]):!0===t.model.detect_404||1===t.model.detect_404?s("div",{staticClass:"sui-box",attrs:{"data-tab":"notfound_lockout"}},[s("form",{staticClass:"ip-frm",attrs:{method:"post",id:"settings-frm"},on:{submit:function(e){return e.preventDefault(),t.updateSettings(e)}}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t\t"+t._s(t.__("404 Detection"))+"\n\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-box-body"},[s("p",[t._v("\n\t\t\t\t\t"+t._s(t.__("With 404 detection enabled, Defender will keep an eye out for IP addresses that repeatedly request pages on your website that don't exist and then temporarily block them from accessing your site."))+"\n\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-notice",class:{"sui-notice-error":t.summary_data.nf.day>0,"sui-notice-info":0===t.summary_data.nf.day}},[s("p",{domProps:{innerHTML:t._s(t.notification)}})]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v(t._s(t.__("Threshold")))]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Specify how many 404 errors within a specific time period will trigger a lockout."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col-md-2"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("404 hits")))]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.detect_404_threshold,expression:"model.detect_404_threshold"}],staticClass:"sui-form-control sui-input-sm sui-field-has-suffix",attrs:{size:"8",type:"text",id:"detect_404_threshold",name:"detect_404_threshold"},domProps:{value:t.model.detect_404_threshold},on:{input:function(e){e.target.composing||t.$set(t.model,"detect_404_threshold",e.target.value)}}})]),t._v(" "),s("div",{staticClass:"sui-col"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Timeframe")))]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.detect_404_timeframe,expression:"model.detect_404_timeframe"}],staticClass:"sui-form-control sui-input-sm sui-field-has-suffix",attrs:{size:"8",id:"detect_404_timeframe",name:"detect_404_timeframe",type:"text"},domProps:{value:t.model.detect_404_timeframe},on:{input:function(e){e.target.composing||t.$set(t.model,"detect_404_timeframe",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-field-suffix"},[t._v(t._s(t.__("seconds")))])])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v(t._s(t.__("Duration")))]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v(t._s(t.__("Choose how long you'd like to ban the locked out user for.")))])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-side-tabs"},[s("div",{staticClass:"sui-tabs-menu"},[s("label",{staticClass:"sui-tab-item",class:{active:!1===t.model.detect_404_lockout_ban},attrs:{for:"nf_timeframe"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.detect_404_lockout_ban,expression:"model.detect_404_lockout_ban"}],attrs:{type:"radio",name:"detect_404_lockout_ban",id:"nf_timeframe","data-tab-menu":"nf-timeframe-box"},domProps:{value:!1,checked:t._q(t.model.detect_404_lockout_ban,!1)},on:{change:function(e){return t.$set(t.model,"detect_404_lockout_ban",!1)}}}),t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Timeframe"))+"\n\t\t\t\t\t\t\t\t")]),t._v(" "),s("label",{staticClass:"sui-tab-item",class:{active:!0===t.model.detect_404_lockout_ban},attrs:{for:"nf_permanent"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.detect_404_lockout_ban,expression:"model.detect_404_lockout_ban"}],attrs:{type:"radio",name:"detect_404_lockout_ban","data-tab-menu":"",id:"nf_permanent"},domProps:{value:!0,checked:t._q(t.model.detect_404_lockout_ban,!0)},on:{change:function(e){return t.$set(t.model,"detect_404_lockout_ban",!0)}}}),t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Permanent"))+"\n\t\t\t\t\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-tabs-content"},[s("div",{staticClass:"sui-tab-content sui-tab-boxed",class:{active:!1===t.model.detect_404_lockout_ban},attrs:{id:"nf-timeframe-box","data-tab-content":"nf-timeframe-box"}},[s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col-md-3"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.detect_404_lockout_duration,expression:"model.detect_404_lockout_duration"}],staticClass:"sui-form-control",attrs:{size:"4",name:"detect_404_lockout_duration",id:"detect_404_lockout_duration",type:"text"},domProps:{value:t.model.detect_404_lockout_duration},on:{input:function(e){e.target.composing||t.$set(t.model,"detect_404_lockout_duration",e.target.value)}}})]),t._v(" "),s("div",{staticClass:"sui-col-md-4"},[s("select",{directives:[{name:"model",rawName:"v-model",value:t.model.detect_404_lockout_duration_unit,expression:"model.detect_404_lockout_duration_unit"}],staticClass:"jquery-select sui-select",attrs:{id:"detect_404_lockout_duration_unit",name:"detect_404_lockout_duration_unit","data-minimum-results-for-search":"Infinity"},on:{change:function(e){var s=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));t.$set(t.model,"detect_404_lockout_duration_unit",e.target.multiple?s:s[0])}}},[s("option",{attrs:{value:"seconds"}},[t._v(t._s(t.__("Seconds")))]),t._v(" "),s("option",{attrs:{value:"minutes"}},[t._v(t._s(t.__("Minutes")))]),t._v(" "),s("option",{attrs:{value:"hours"}},[t._v(t._s(t.__("Hours")))])])])])])])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v(t._s(t.__("Message")))]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v(t._s(t.__("Customize the message locked out users will see.")))])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field"},[s("textarea",{directives:[{name:"model",rawName:"v-model",value:t.model.detect_404_lockout_message,expression:"model.detect_404_lockout_message"}],staticClass:"sui-form-control",attrs:{name:"detect_404_lockout_message",id:"detect_404_lockout_message"},domProps:{value:t.model.detect_404_lockout_message},on:{input:function(e){e.target.composing||t.$set(t.model,"detect_404_lockout_message",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-description",domProps:{innerHTML:t._s(t.demo_link)}})])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Files & Folders"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Choose specific files and folders that you want to automatically ban users/bots from accessing, or whitelist access to."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("strong",[t._v(t._s(t.__("Blacklist")))]),t._v(" "),s("p",{staticClass:"sui-description"},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Add file or folder URLs you want to automatically ban. Users or bots who request blacklisted them will be locked out as per your 404 rules above."))+"\n\t\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-border-frame"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Blaclisted files & folders")))]),t._v(" "),s("textarea",{directives:[{name:"model",rawName:"v-model",value:t.model.detect_404_blacklist,expression:"model.detect_404_blacklist"}],staticClass:"sui-form-control",attrs:{name:"detect_404_blacklist",rows:"8"},domProps:{value:t.model.detect_404_blacklist},on:{input:function(e){e.target.composing||t.$set(t.model,"detect_404_blacklist",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("One URL per line. You must list the full path beginning with a /."))+"\n ")])]),t._v(" "),s("strong",[t._v(t._s(t.__("Whitelist")))]),t._v(" "),s("p",{staticClass:"sui-description"},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("If you know a common file or folder on your website is missing, you can record it here so it doesn't count towards a lockout record."))+"\n\t\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-border-frame"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Whitelisted files & folders")))]),t._v(" "),s("textarea",{directives:[{name:"model",rawName:"v-model",value:t.model.detect_404_whitelist,expression:"model.detect_404_whitelist"}],staticClass:"sui-form-control",attrs:{id:"detect_404_whitelist",name:"detect_404_whitelist",rows:"8"},domProps:{value:t.model.detect_404_whitelist},on:{input:function(e){e.target.composing||t.$set(t.model,"detect_404_whitelist",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("One URL per line. You must list the full path beginning with a /."))+"\n ")])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Filetypes & Extensions"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Choose which types of files or extentions you want to auto-ban or whitelist."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("strong",[t._v(t._s(t.__("Blacklist")))]),t._v(" "),s("p",{staticClass:"sui-description"},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Add a common filetype or extention you want to auto-ban. Users or bots who request blacklisted filetypes or extensions will be locked out as per your 404 rules above."))+"\n\t\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-border-frame"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Blaclisted filetypes & extensions")))]),t._v(" "),s("textarea",{directives:[{name:"model",rawName:"v-model",value:t.model.detect_404_filetypes_blacklist,expression:"model.detect_404_filetypes_blacklist"}],staticClass:"sui-form-control",attrs:{name:"detect_404_filetypes_blacklist",rows:"8"},domProps:{value:t.model.detect_404_filetypes_blacklist},on:{input:function(e){e.target.composing||t.$set(t.model,"detect_404_filetypes_blacklist",e.target.value)}}})]),t._v(" "),s("strong",[t._v(t._s(t.__("Whitelist")))]),t._v(" "),s("p",{staticClass:"sui-description"},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Defender will log the 404 error, but won't lockout the user for these filetypes."))+"\n\t\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-border-frame"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Whitelisted filetypes & extentions")))]),t._v(" "),s("textarea",{directives:[{name:"model",rawName:"v-model",value:t.model.detect_404_ignored_filetypes,expression:"model.detect_404_ignored_filetypes"}],staticClass:"sui-form-control",attrs:{id:"detect_404_blacklist",name:"detect_404_ignored_filetypes",rows:"8"},domProps:{value:t.model.detect_404_ignored_filetypes},on:{input:function(e){e.target.composing||t.$set(t.model,"detect_404_ignored_filetypes",e.target.value)}}})])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Exclusions"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("By default, Defender will monitor all interactions with your website but you can choose to disable 404 detection for specific areas of your site."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.detect_404_logged,expression:"model.detect_404_logged"}],attrs:{id:"detect_404_logged",type:"checkbox","true-value":"true","false-value":"false",name:"detect_404_logged"},domProps:{checked:Array.isArray(t.model.detect_404_logged)?t._i(t.model.detect_404_logged,null)>-1:t._q(t.model.detect_404_logged,"true")},on:{change:function(e){var s=t.model.detect_404_logged,i=e.target,n=i.checked?"true":"false";if(Array.isArray(s)){var a=t._i(s,null);i.checked?a<0&&t.$set(t.model,"detect_404_logged",s.concat([null])):a>-1&&t.$set(t.model,"detect_404_logged",s.slice(0,a).concat(s.slice(a+1)))}else t.$set(t.model,"detect_404_logged",n)}}}),t._v(" "),s("span",{staticClass:"sui-toggle-slider"})]),t._v(" "),s("label",{staticClass:"sui-toggle-label",attrs:{for:"detect_404_logged"}},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.__("Monitor 404s from logged in users"))+"\n\t\t\t\t\t\t\t")])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Deactivate"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("If you no longer want to use this feature you can turn it off at any time."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("submit-button",{attrs:{type:"button","css-class":"sui-button-ghost",state:t.state},on:{click:function(e){return t.toggle(!1,"detect_404")}}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Deactivate"))+"\n\t\t\t\t\t\t")])],1)])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("div",{staticClass:"sui-actions-right"},[s("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue",state:t.state}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t"+t._s(t.__("Save Changes"))+"\n\t\t\t\t\t")])],1)])])]):t._e()}),[],!1,null,null,null).exports,d=s("./node_modules/lodash/chunk.js"),_=s.n(d),m={mixins:[a.a],name:"locked-ips-dialog",data:function(){return{nonces:iplockout.nonces,endpoints:iplockout.endpoints,blacklist:{ips_locked:[],chunks:[],ip:"",paged:1,count:0},state:{ip_actioning:[],on_saving:!1}}},methods:{query_locked_ips:function(){var t=this;this.httpPostRequest("queryLockedIps",{},(function(e){t.blacklist.ips_locked=Object.values(e.data.ips_locked),t.blacklist.chunks=_()(t.blacklist.ips_locked,20),t.blacklist.count=t.blacklist.ips_locked.length,t.$emit("fetched",t.blacklist.ips_locked.length)}),!0)},ip_action:function(t,e,s){var i=this;this.state.ip_actioning.push(t),this.httpPostRequest("ipAction",{ip:t,behavior:e},(function(n){var a=i.state.ip_actioning.indexOf(t);if(-1!==a&&i.state.ip_actioning.splice(a,1),!0===n.success){var o="unban"===e?"normal":"blocked";i.blacklist.ips_locked[s].status=o}}),!0)}},computed:{filtered_locked_ips:function(){if(this.blacklist.ip.length>0){var t=this.blacklist.ip,e=this.blacklist.ips_locked.filter((function(e){return e.ip.indexOf(t)>-1}));this.blacklist.chunks=_()(e,20)}return this.blacklist.chunks[this.blacklist.paged-1]}},created:function(){this.query_locked_ips()}},h=Object(r.a)(m,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-dialog sui-dialog-sm locked-ips-dialog",attrs:{"aria-hidden":"true",tabindex:"-1",id:"ips-modal"}},[s("div",{staticClass:"sui-dialog-overlay",attrs:{"data-a11y-dialog-hide":""}}),t._v(" "),s("div",{staticClass:"sui-dialog-content",attrs:{role:"dialog"}},[s("div",{staticClass:"sui-box",attrs:{role:"document"}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title",attrs:{id:"dialogTitle"}},[t._v(t._s(t.__("Temporary IP Block List")))]),t._v(" "),t._m(0)]),t._v(" "),s("div",{staticClass:"sui-box-body no-padding-bottom"},[s("p",[t._v("\n "+t._s(t.__("Here's a list of IP addresses that are currently temporarily blocked for bad behaviour. Select the IPs you want to unblock below."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-selectors sui-box-selectors-col-1"},[s("ul",{staticClass:"ul-ips"},[s("li",[s("div",{staticClass:"sui-with-button sui-with-button-icon"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.blacklist.ip,expression:"blacklist.ip"}],staticClass:"sui-form-control",attrs:{type:"text",placeholder:t.__("Type IP Address")},domProps:{value:t.blacklist.ip},on:{input:function(e){e.target.composing||t.$set(t.blacklist,"ip",e.target.value)}}}),t._v(" "),t._m(1)])]),t._v(" "),t._l(t.filtered_locked_ips,(function(e,i){return s("li",["blocked"===e.status?s("label",{staticClass:"sui-box-selector"},[s("span",[s("i",{staticClass:"sui-icon-lock",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(e.ip)+"\n "),s("button",{staticClass:"sui-tooltip sui-button-icon",class:{"sui-button-onload":t.state.ip_actioning.indexOf(e.ip)>-1},attrs:{type:"button","data-tooltip":"Unblock"},on:{click:function(s){return t.ip_action(e.ip,"unban",i)}}},[s("span",{staticClass:"sui-loading-text",attrs:{"aria-hidden":"true"}},[s("i",{staticClass:"sui-icon-unlock",attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v(t._s(t.__("Unlock")))])]),t._v(" "),s("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])])]):s("label",{staticClass:"sui-box-selector-selected"},[s("span",[s("i",{staticClass:"sui-icon-unlock",attrs:{"aria-hidden":"true"}}),t._v("\n IP "),s("strong",[t._v(t._s(e.ip))]),t._v(" is unblocked\n "),s("button",{staticClass:"sui-tooltip sui-button-icon",class:{"sui-button-onload":t.state.ip_actioning.indexOf(e.ip)>-1},attrs:{type:"button","data-tooltip":"Undo"},on:{click:function(s){return t.ip_action(e.ip,"ban",i)}}},[s("span",{staticClass:"sui-loading-text",attrs:{"aria-hidden":"true"}},[s("i",{staticClass:"sui-icon-undo",attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v(t._s(t.__("Undo")))])]),t._v(" "),s("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])])])])}))],2)]),t._v(" "),s("div",{staticClass:"sui-box-body"},[s("div",{staticClass:"sui-pagination-wrap"},[s("span",{staticClass:"sui-tag"},[t._v(t._s(t.blacklist.ips_locked.length)+" "+t._s(t.__("results")))]),t._v(" "),s("ul",{staticClass:"sui-pagination"},[s("li",[s("a",{staticClass:"prev",attrs:{href:"#",disabled:1===t.blacklist.paged||!0===t.state.ip_actioning,"data-paged":"1"},on:{click:function(e){e.preventDefault(),t.blacklist.paged-=1}}},[s("i",{staticClass:"sui-icon-chevron-left",attrs:{"aria-hidden":"true"}})])]),t._v(" "),s("li",[s("a",{staticClass:"next",attrs:{href:"#",disabled:t.blacklist.paged===Math.ceil(t.blacklist.ips_locked.length/20)||!0===t.state.ip_actioning,"data-paged":"2"},on:{click:function(e){t.blacklist.paged+=1}}},[s("i",{staticClass:"sui-icon-chevron-right",attrs:{"aria-hidden":"true"}})])])])])])])])])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"sui-actions-right"},[e("button",{staticClass:"sui-dialog-close",attrs:{type:"button","data-a11y-dialog-hide":"","aria-label":"Close this dialog window"}})])},function(){var t=this.$createElement,e=this._self._c||t;return e("button",{staticClass:"sui-button-icon",attrs:{type:"button"}},[e("i",{staticClass:"sui-icon-magnifying-glass-search",attrs:{"aria-hidden":"true"}})])}],!1,null,null,null).exports,p={mixins:[a.a],name:"ip_blacklist",props:["view"],data:function(){return{model:iplockout.model.blacklist,state:{on_saving:!1},geo_downloadable:!1,nonces:iplockout.nonces,endpoints:iplockout.endpoints,misc:iplockout.misc,ip_import:{id:!1,name:null},blacklist:{count:null},api_key:null}},components:{"locked-ips-dialog":h},methods:{download_geodb:function(){var t=this;this.httpPostRequest("downloadGeoDB",{api_key:t.api_key},(function(e){t.$nextTick((function(){!0===e.success?(t.misc.geo_db_downloaded=!0,location.reload()):Defender.showNotification("error",e.data.message)}))}))},import_ip:function(){var t=this;this.httpPostRequest("importIPs",{id:t.ip_import.id},(function(){t.ip_import={id:!1,name:null}}))},remove_import_file:function(){this.ip_import.id=!1,this.ip_import.name=null},update_settings:function(){var t=this.model;this.httpPostRequest("updateSettings",{data:JSON.stringify(t)})}},computed:{user_ip_notice:function(){return this.vsprintf(this.__("We recommend you add your own IP to avoid getting locked out accidentally! Your current IP is <span class='admin-ip'>%s</span>"),this.misc.user_ip)},log_status:function(){return null===this.blacklist.count?this.__("Loading data..."):0===this.blacklist.count?this.__("There are no IP addresses being blocked at the moment."):1===this.blacklist.count?this.__("There is one IP address being blocked temporary."):this.vsprintf(this.__("There are %d IP address being blocked temporary."),this.blacklist.count)},demo_link:function(){return this.vsprintf(this.__('This message will be displayed across your website during the lockout period. See a quick preview <a href="%s">here</a>.'),this.siteUrl("?def-lockout-demo=1&type=blacklist"))},ip_block_count:function(){return this.vsprintf(this.__("%s results"),this.blacklist.count)},export_url:function(){return this.adminUrl("admin.php?page=wdf-ip-lockout&view=export&_wpnonce="+this.nonces.exportIps)},geodb_download_instruction:function(){var t='<span class="sui-description">'+this.vsprintf(this.__("1. <a target='_blank' href='%s'>Sign up</a> for GeoLite2 Downloadable Databases."),"https://www.maxmind.com/en/geolite2/signup")+"</span>";return t+='<span class="sui-description">'+this.vsprintf(this.__('2. Login to your account and follow <a target="_blank" href="%s">this link</a> to copy the API key.'),"https://www.maxmind.com/en/accounts/current/license-key")+"</span>",t+='<span class="sui-description">'+this.__("3. Place the API key in the input below and click the download button.")+"</span>"}},watch:{api_key:function(t,e){t.trim().length>0?this.geo_downloadable=!0:this.geo_downloadable=!1}},mounted:function(){var t=void 0,e=this;jQuery(".file-picker").click((function(){t||(t=wp.media.frames.file_frame=wp.media({title:"Choose an Import file",button:{text:"Choose File"},multiple:!1})).on("select",(function(){var s=t.state().get("selection").first().toJSON();e.ip_import.id=s.id,e.ip_import.name=s.filename,jQuery(".upload-input").addClass("sui-has_file"),jQuery(".upload-input .sui-upload-file span").text(s.filename)})),t.open()}));var s=this;jQuery(".jquery-select").change((function(){var t=jQuery(this).val(),e=jQuery(this).attr("name");s.model[e]=t})),"string"==typeof this.model.country_blacklist&&(this.model.country_blacklist.length?this.model.country_blacklist=this.model.country_blacklist.split(","):this.model.country_blacklist=[]),"string"==typeof this.model.country_whitelist&&(this.model.country_whitelist.length?this.model.country_whitelist=this.model.country_whitelist.split(","):this.model.country_whitelist=[])}},f=Object(r.a)(p,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-box"},[s("form",{attrs:{method:"post"},on:{submit:function(e){return e.preventDefault(),t.update_settings(e)}}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t\t"+t._s(t.__("IP Banning"))+"\n\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-box-body"},[s("p",[t._v("\n\t\t\t\t\t"+t._s(t.__("Choose which IP addresses you wish to permanently ban from accessing your website."))+"\n\t\t\t\t")]),t._v(" "),s("hr"),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("IP Addresses"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Add IP addresses you want to permanently ban from, or always allow access to your website."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("strong",[t._v(t._s(t.__("Blacklist")))]),t._v(" "),s("p",{staticClass:"sui-description"},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Any IP addresses you list here will be completely blocked from accessing your website, including admins."))+"\n\t\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-border-frame"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Blacklisted IPs")))]),t._v(" "),s("textarea",{directives:[{name:"model",rawName:"v-model",value:t.model.ip_blacklist,expression:"model.ip_blacklist"}],staticClass:"sui-form-control",attrs:{id:"ip_blacklist",name:"ip_blacklist",placeholder:t.__("Add IP addresses here, one per line"),rows:"8"},domProps:{value:t.model.ip_blacklist},on:{input:function(e){e.target.composing||t.$set(t.model,"ip_blacklist",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Both IPv4 and IPv6 are supported. IP ranges are also accepted in format xxx.xxx.xxx.xxx-xxx.xxx.xxx.xxx."))+"\n ")])]),t._v(" "),s("strong",[t._v(t._s(t.__("Whitelist")))]),t._v(" "),s("p",{staticClass:"sui-description"},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Any IP addresses you list here will be exempt any existing or new ban rules outlined in login protection, 404 detection or IP ban lists."))+"\n\t\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-border-frame"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Allowed IPs")))]),t._v(" "),s("textarea",{directives:[{name:"model",rawName:"v-model",value:t.model.ip_whitelist,expression:"model.ip_whitelist"}],staticClass:"sui-form-control",attrs:{id:"ip_whitelist",name:"ip_whitelist",placeholder:t.__("Add IP addresses here, one per line"),rows:"8"},domProps:{value:t.model.ip_whitelist},on:{input:function(e){e.target.composing||t.$set(t.model,"ip_whitelist",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("One IP address per line. Both IPv4 and IPv6 are supported. IP ranges are also accepted in format xxx.xxx.xxx.xxx-xxx.xxx.xxx.xxx."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-notice"},[s("p",{domProps:{innerHTML:t._s(t.user_ip_notice)}})])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v(t._s(t.__("Active Lockouts")))]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("View IP addresses that are temporarily blocked from accessing your site according to your lockout rules. You can release IP addresses from the temporarily block here."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-notice sui-notice-info margin-bottom-10"},[s("p",{domProps:{innerHTML:t._s(t.log_status)}})]),t._v(" "),s("button",{directives:[{name:"show",rawName:"v-show",value:t.blacklist.count>0,expression:"blacklist.count > 0"}],staticClass:"sui-button sui-button-gray",attrs:{type:"button","data-a11y-dialog-show":"ips-modal"}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Unlock ips"))+"\n\t\t\t\t\t\t")])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v(t._s(t.__("Locations")))]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v(t._s(t.__("Use this feature to ban any countries you don't expect/want traffic from to protect your site entirely from unwanted hackers and bots.")))])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2 geo-ip-block"},[!1===t.misc.geo_db_downloaded?s("div",[s("div",{staticClass:"sui-notice sui-notice-info sui-notice-global"},[s("p",[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("To use this feature you must follow the steps described below to download the latest Geo IP Database."))+"\n\t\t\t\t\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-border-frame"},[s("div",{staticClass:"download-instruction",domProps:{innerHTML:t._s(this.geodb_download_instruction)}}),t._v(" "),s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v("\n\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("API Key"))+"\n\t\t\t\t\t\t\t\t\t")]),t._v(" "),s("div",[t._m(0),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.api_key,expression:"api_key"}],staticClass:"sui-form-control sui-field-has-prefix",attrs:{placeholder:"Place the API key here",type:"text"},domProps:{value:t.api_key},on:{input:function(e){e.target.composing||(t.api_key=e.target.value)}}})])]),t._v(" "),s("div",{staticClass:"sui-notice-buttons"},[s("submit-button",{attrs:{disabled:!t.geo_downloadable,id:"download-geodb",type:"button","css-class":"sui-button-ghost",state:t.state},on:{click:t.download_geodb}},[s("i",{staticClass:"sui-icon-download-cloud",attrs:{"aria-hidden":"true"}}),t._v(" "),s("i",{staticClass:"sui-screen-reader-text"},[t._v(t._s(t.__("Download")))]),t._v("\n\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("Download"))+"\n\t\t\t\t\t\t\t\t\t")])],1)])]):s("div",[!1===t.misc.current_country?s("div",[s("div",{staticClass:"sui-notice sui-notice-warning"},[s("p",[t._v("\n\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("Can't detect current country, it seem your site setup in localhost environment"))+"\n\t\t\t\t\t\t\t\t\t")])])]):s("div",[s("strong",[t._v(t._s(t.__("Blacklist")))]),t._v(" "),s("p",{staticClass:"sui-description no-margin-bottom"},[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Any countries you select will not be able to access any area of your website."))+"\n\t\t\t\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-border-frame"},[s("div",{staticClass:"sui-control-with-icon"},[s("select",{directives:[{name:"model",rawName:"v-model",value:t.model.country_blacklist,expression:"model.country_blacklist"}],staticClass:"sui-select jquery-select sui-form-control",attrs:{name:"country_blacklist",id:"country_blacklist",placeholder:t.__("Type country name"),multiple:""},on:{change:function(e){var s=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));t.$set(t.model,"country_blacklist",e.target.multiple?s:s[0])}}},t._l(t.misc.blacklist_countries,(function(e,i){return s("option",{domProps:{value:i}},[t._v("\n\t\t\t\t\t\t\t\t\t\t\t\t"+t._s(e)+"\n\t\t\t\t\t\t\t\t\t\t\t")])})),0),t._v(" "),s("i",{staticClass:"sui-icon-web-globe-world",attrs:{"aria-hidden":"true"}})])]),t._v(" "),s("strong",[t._v(t._s(t.__("Whitelist")))]),t._v(" "),s("p",{staticClass:"sui-description no-margin-bottom"},[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Any countries you select will always be able to view your website. Note: We've added your default country by default."))+"\n\t\t\t\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-border-frame"},[s("div",{staticClass:"sui-control-with-icon"},[s("select",{directives:[{name:"model",rawName:"v-model",value:t.model.country_whitelist,expression:"model.country_whitelist"}],staticClass:"sui-select sui-select jquery-select sui-form-control",attrs:{name:"country_whitelist",id:"country_whitelist",placeholder:t.__("Type country name"),multiple:""},on:{change:function(e){var s=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));t.$set(t.model,"country_whitelist",e.target.multiple?s:s[0])}}},t._l(t.misc.whitelist_countries,(function(e,i){return s("option",{domProps:{value:i}},[t._v("\n\t\t\t\t\t\t\t\t\t\t\t\t"+t._s(e)+"\n\t\t\t\t\t\t\t\t\t\t\t")])})),0),t._v(" "),s("i",{staticClass:"sui-icon-web-globe-world",attrs:{"aria-hidden":"true"}})]),t._v(" "),s("p",{staticClass:"sui-description"},[t._v("\n\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("Note: your whitelist will override any country ban, but will still follow your 404 and login lockout rules."))+"\n\t\t\t\t\t\t\t\t\t")])]),t._v(" "),t._m(1)])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v(t._s(t.__("Message")))]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v(t._s(t.__("Customize the message locked out users will see.")))])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("label",{staticClass:"sui-label"},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Custom message"))+"\n\t\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-form-field"},[s("textarea",{directives:[{name:"model",rawName:"v-model",value:t.model.ip_lockout_message,expression:"model.ip_lockout_message"}],staticClass:"sui-form-control",attrs:{name:"ip_lockout_message",placeholder:t.__("The administrator has blocked your IP from accessing this website."),id:"ip_lockout_message"},domProps:{value:t.model.ip_lockout_message},on:{input:function(e){e.target.composing||t.$set(t.model,"ip_lockout_message",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-description",domProps:{innerHTML:t._s(t.demo_link)}})])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Import"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Use this tool to import both your blacklist and whitelist from another website."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field"},[s("span",[t._v(t._s(t.__("Upload your exported blacklist.")))]),t._v(" "),s("div",{staticClass:"upload-input sui-upload",class:{"sui-has_file":!1!==t.ip_import.id}},[s("div",{staticClass:"sui-upload-file"},[s("span",[t._v(t._s(t.ip_import.name))]),t._v(" "),s("button",{staticClass:"file-picker-remove",attrs:{"aria-label":"Remove file",type:"button"},on:{click:t.remove_import_file}},[s("i",{staticClass:"sui-icon-close",attrs:{"aria-hidden":"true"}})])]),t._v(" "),s("button",{staticClass:"sui-upload-button file-picker",attrs:{type:"button"}},[s("i",{staticClass:"sui-icon-upload-cloud",attrs:{"aria-hidden":"true"}}),t._v(" "+t._s(t.__("Upload file"))+"\n\t\t\t\t\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"clear margin-top-10"}),t._v(" "),s("submit-button",{attrs:{type:"button","css-class":"sui-button-ghost",state:t.state},on:{click:t.import_ip}},[s("i",{staticClass:"sui-icon-download-cloud",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.__("Import"))+"\n\t\t\t\t\t\t\t")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Note: Existing IPs will not be removed - only new IPs added."))+"\n ")])],1)])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Export"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Export both your blacklist and whitelist to use on another website."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("a",{staticClass:"sui-button sui-button-outlined export",attrs:{href:t.export_url}},[s("i",{staticClass:"sui-icon-upload-cloud",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Export"))+"\n\t\t\t\t\t\t")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("The export will include both the blacklist and whitelist."))+"\n ")])])])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("div",{staticClass:"sui-actions-right"},[s("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue",state:t.state}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t"+t._s(t.__("Save Changes"))+"\n\t\t\t\t\t")])],1)])]),t._v(" "),s("locked-ips-dialog",{on:{fetched:function(e){t.blacklist.count=e}}})],1)}),[function(){var t=this.$createElement,e=this._self._c||t;return e("span",{staticClass:"sui-field-prefix"},[e("i",{staticClass:"sui-icon-key"})])},function(){var t=this.$createElement,e=this._self._c||t;return e("p",{staticClass:"sui-description"},[this._v("\n\t\t\t\t\t\t\t\t\tThis product includes GeoLite2 data created by MaxMind, available from\n\t\t\t\t\t\t\t\t\t"),e("a",{attrs:{href:"https://www.maxmind.com"}},[this._v("https://www.maxmind.com")]),this._v(".\n\t\t\t\t\t\t\t\t")])}],!1,null,null,null).exports,v=s("./src/component/pagination.vue"),g={mixins:[a.a],props:["id","headers","table","sort"],data:function(){return{logs:[],cached:[],countAll:0,totalPages:0,ranges:{Today:[moment(),moment()],"7 Days":[moment().subtract(6,"days"),moment()],"30 Days":[moment().subtract(29,"days"),moment()]},nonces:iplockout.nonces,endpoints:iplockout.endpoints,filters:{date:this.table.date_from+"-"+this.table.date_to,paged:1,type:"",ip:""},state:{show_filter:!1,on_saving:!1,on_querying:!1,show_empty_logs_text:!1,show_init_text:!0,querying:!1},ids:[],allSelected:!1}},components:{paginate:v.a},methods:{paging:function(t){this.filters.paged=t},clearFilter:function(){this.filters.type="",this.filters.ip=""},doFilter:function(){this.state.on_saving=!0;var t=this.filters.date.split("-");this.filters.date_from=t[0],this.filters.date_to=t[1],this._queryLogs(this.filters,1)},bulkSelect:function(){if(!1===this.allSelected)this.ids=[];else for(var t in this.logs)-1===this.ids.indexOf(this.logs[t].id)&&this.ids.push(this.logs[t].id)},addIpToList:function(t,e,s){var i=this;i.state.on_saving=!0,this.httpPostRequest("toggleIpAction",{ip:t,type:e},(function(){i.state.on_saving=!1;var t="";t="unblacklist"===e||"unwhitelist"===e?"na":e,i.logs[s].ip_status=t}))},bulkUpdate:function(){var t=jQuery("#bulk-action").val(),e=this;e.state.on_saving=!0,this.httpPostRequest("bulkAction",{type:t,ids:e.ids},(function(){e.state.on_saving=!1,"delete"===t&&e._queryLogs(e.filters,e.filters.paged)}))},_queryLogs:function(t,e){var s=this,i=this.filters.date.split("-");return t.date_from=i[0],t.date_to=i[1],t.paged=e,s.state.querying=!0,this.httpPostRequest("queryLogs",t,(function(t){var e=t.data;s.state.on_saving=!1,s.logs=e.logs,s.countAll=e.countAll,s.totalPages=e.totalPages,s.state.show_init_text=!1,s.state.querying=!1,0===s.logs.length?s.state.show_empty_logs_text=!0:s.state.show_empty_logs_text=!1}),!0)}},watch:{"filters.date":{handler:function(){this._queryLogs(this.filters,this.filters.paged)}},"filters.paged":function(){this._queryLogs(this.filters,this.filters.paged)},sort:function(t){var e=void 0;"latest"===t&&(e={orbder:"DESC",orderBy:"date"}),"oldest"===t&&(e={order:"ASC",orderBy:"date"}),"ip"===t&&(e={order:"DESC",orderBy:"ip"}),this._queryLogs(e,1)}},computed:{dateRange:function(){return this.filters.date},nextIcon:function(){return'<i class="sui-icon-chevron-right" aria-hidden="true"></i>'},prevIcon:function(){return'<i class="sui-icon-chevron-left" aria-hidden="true"></i>'},badgeClass:function(){return function(t){var e="";return"auth_lock"!==t.type&&"404_lockout"!==t.type&&"404_lockout_ignore"!==t.type||(e="locked"),"auth_lock"!==t.type&&"auth_fail"!==t.type||(e+=" login"),"404_error"!==t.type&&"404_lockout"!==t.type&&"404_lockout_ignore"!==t.type||(e+=" 404"),e}},badgeText:function(){return function(t){return"auth_lock"===t.type||"auth_fail"===t.type?"login":"404"}},eventType:function(){var t=this;return function(e){if(void 0!==e)return e.indexOf("404")>-1?t.__("404 error"):t.__("Login failed")}},logClass:function(){return function(t){if(void 0!==t)return"404_error"===t.type||"auth_fail"===t.type?"sui-warning":"sui-error"}}},created:function(){this._queryLogs({date_from:this.table.date_from,date_to:this.table.date_to},1)},mounted:function(){var t=this;this.$nextTick((function(){jQuery("#date-range-picker").daterangepicker({autoApply:!0,maxDate:moment().format("MM/DD/YYYY"),minDate:moment().subtract(1,"year").format("MM/DD/YYYY"),locale:{format:"MM/DD/YYYY",separator:"-"},ranges:{Today:[moment(),moment()],"7 Days":[moment().subtract(6,"days"),moment()],"30 Days":[moment().subtract(29,"days"),moment()]},template:'<div class="daterangepicker wd-calendar"><div class="ranges"></div><div class="drp-calendar left"><div class="calendar-table"></div><div class="calendar-time"></div></div><div class="drp-calendar right"><div class="calendar-table"></div><div class="calendar-time"></div></div></div>',showCustomRangeLabel:!1,alwaysShowCalendars:!0}),jQuery("#date-range-picker").on("apply.daterangepicker",(function(e,s){t.filters.date=s.startDate.format("MM/DD/YYYY")+"-"+s.endDate.format("MM/DD/YYYY")})),jQuery("#filter_type").change((function(){t.filters.type=jQuery(this).val()}))}))}},b=Object(r.a)(g,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",[s("div",{staticClass:"sui-box-body no-padding-bottom"},[s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col-md-5"},[s("div",{staticClass:"inline-form"},[s("label",[t._v(t._s(t.__("Date range")))]),t._v(" "),s("div",{staticClass:"sui-date"},[s("i",{staticClass:"sui-icon-calendar",attrs:{"aria-hidden":"true"}}),t._v(" "),s("input",{staticClass:"sui-form-control",attrs:{id:"date-range-picker",name:"date_from",type:"text"},domProps:{value:t.dateRange}})])])]),t._v(" "),s("div",{staticClass:"sui-col"},[s("div",{staticClass:"sui-pagination-wrap"},[t.countAll>0?s("span",{staticClass:"sui-pagination-results"},[t._v(t._s(t.vsprintf(t.__("%s results"),t.countAll)))]):t._e(),t._v(" "),t.countAll>0?s("paginate",{attrs:{"page-count":t.totalPages,"click-handler":t.paging,"prev-text":t.prevIcon,"next-text":t.nextIcon,"container-class":"sui-pagination"}}):t._e(),t._v(" "),s("button",{staticClass:"sui-button-icon sui-button-outlined sui-pagination-open-filter",on:{click:function(e){t.state.show_filter=!t.state.show_filter}}},[s("i",{staticClass:"sui-icon-filter",attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Open search filters")])])],1)])]),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col-md-5"},[s("form",{staticClass:"inline-form",attrs:{method:"post"},on:{submit:function(e){return e.preventDefault(),t.bulkUpdate(e)}}},[s("label",{staticClass:"sui-checkbox apply-all"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.allSelected,expression:"allSelected"}],attrs:{type:"checkbox","true-value":!0,"false-value":!1},domProps:{checked:Array.isArray(t.allSelected)?t._i(t.allSelected,null)>-1:t.allSelected},on:{change:[function(e){var s=t.allSelected,i=e.target,n=!!i.checked;if(Array.isArray(s)){var a=t._i(s,null);i.checked?a<0&&(t.allSelected=s.concat([null])):a>-1&&(t.allSelected=s.slice(0,a).concat(s.slice(a+1)))}else t.allSelected=n},t.bulkSelect]}}),t._v(" "),s("span",{attrs:{"aria-hidden":"true"}})]),t._v(" "),s("select",{staticClass:"sui-select-sm",attrs:{id:"bulk-action"}},[s("option",{attrs:{value:""}},[t._v(t._s(t.__("Bulk action")))]),t._v(" "),s("option",{attrs:{value:"ban"}},[t._v(t._s(t.__("Ban")))]),t._v(" "),s("option",{attrs:{value:"whitelist"}},[t._v(t._s(t.__("Whitelist")))]),t._v(" "),s("option",{attrs:{value:"delete"}},[t._v(t._s(t.__("Delete")))])]),t._v(" "),s("button",{staticClass:"sui-button",class:{"sui-button-onload":t.state.on_saving},attrs:{type:"submit"}},[s("span",{staticClass:"sui-loading-text"},[t._v("\n "+t._s(t.__("Bulk Update"))+"\n ")]),t._v(" "),s("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])])])]),t._v(" "),s("div",{staticClass:"sui-pagination-filter",class:{"sui-open":t.state.show_filter}},[s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.__("Lockout Type"))+"\n\t\t\t\t\t\t\t")]),t._v(" "),s("select",{attrs:{id:"filter_type",name:"type"}},[s("option",{attrs:{value:""}},[t._v(t._s(t.__("All")))]),t._v(" "),s("option",{attrs:{value:"auth_fail"}},[t._v(t._s(t.__("Failed login attempts")))]),t._v(" "),s("option",{attrs:{value:"auth_lock"}},[t._v(t._s(t.__("Login lockout")))]),t._v(" "),s("option",{attrs:{value:"404_error"}},[t._v(t._s(t.__("404 error")))]),t._v(" "),s("option",{attrs:{value:"404_lockout"}},[t._v(t._s(t.__("404 lockout")))])])])]),t._v(" "),s("div",{staticClass:"sui-col"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.__("IP Address"))+"\n\t\t\t\t\t\t\t")]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.filters.ip,expression:"filters.ip"}],staticClass:"sui-form-control",attrs:{type:"text",placeholder:"Enter an IP address"},domProps:{value:t.filters.ip},on:{input:function(e){e.target.composing||t.$set(t.filters,"ip",e.target.value)}}})])]),t._v(" "),s("div",{staticClass:"sui-col"})]),t._v(" "),s("hr"),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"}),t._v(" "),s("div",{staticClass:"sui-col"},[s("button",{staticClass:"sui-button float-r",class:{"sui-button-onload":t.state.on_saving},attrs:{type:"button",disabled:t.state.on_saving},on:{click:t.doFilter}},[s("span",{staticClass:"sui-loading-text"},[t._v("\n "+t._s(t.__("Apply"))+"\n ")]),t._v(" "),s("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])])])])]),t._v(" "),t.state.show_empty_logs_text?s("div",{staticClass:"sui-box-body"},[s("table",{staticClass:"sui-table no-border margin-bottom-20"},[s("tr",[s("td",[s("div",{staticClass:"sui-notice"},[s("p",[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.__("No lockout events have been logged within the selected time period."))+"\n\t\t\t\t\t\t\t")])])])])])]):t._e(),t._v(" "),t.state.show_init_text?s("div",{staticClass:"sui-box-body"},[s("table",{staticClass:"sui-table no-border margin-bottom-20"},[s("tr",[s("td",[s("div",{staticClass:"sui-notice"},[s("p",[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.__("Loading logs...."))+"\n\t\t\t\t\t\t\t")])])])])])]):t._e(),t._v(" "),s("div",{directives:[{name:"show",rawName:"v-show",value:!1===t.state.show_init_text&&!1===t.state.show_empty_logs_text,expression:"state.show_init_text===false && state.show_empty_logs_text===false"}]},[t.state.querying?s("overlay"):t._e(),t._v(" "),s("table",{staticClass:"sui-table sui-accordion no-border",attrs:{id:t.id}},[s("thead",[s("tr",t._l(t.headers,(function(e){return s("th",[t._v("\n\t\t\t\t\t\t"+t._s(e)+"\n\t\t\t\t\t")])})),0)]),t._v(" "),s("tbody",[t._l(t.logs,(function(e,i){return[s("tr",{staticClass:"sui-accordion-item",class:t.logClass(e)},[s("td",{staticClass:"sui-table-item-title"},[s("label",{staticClass:"sui-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.ids,expression:"ids"}],staticClass:"single-select",attrs:{type:"checkbox"},domProps:{value:e.id,checked:Array.isArray(t.ids)?t._i(t.ids,e.id)>-1:t.ids},on:{change:function(s){var i=t.ids,n=s.target,a=!!n.checked;if(Array.isArray(i)){var o=e.id,r=t._i(i,o);n.checked?r<0&&(t.ids=i.concat([o])):r>-1&&(t.ids=i.slice(0,r).concat(i.slice(r+1)))}else t.ids=a}}}),t._v(" "),s("span",{attrs:{"aria-hidden":"true"}})]),t._v(" "),s("span",{staticClass:"badge",class:t.badgeClass(e)},[t._v(t._s(t.badgeText(e)))]),t._v("\n\t\t\t\t\t\t\t"+t._s(e.log)+"\n\t\t\t\t\t\t")]),t._v(" "),s("td",[t._v("\n\t\t\t\t\t\t\t"+t._s(e.date)+"\n\t\t\t\t\t\t")]),t._v(" "),t._m(0,!0)]),t._v(" "),s("tr",{staticClass:"sui-accordion-item-content"},[s("td",{attrs:{colSpan:"3"}},[s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-body margin-bottom-30"},[s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("p",[s("strong",[t._v(t._s(t.__("Description")))])]),t._v(" "),s("p",[t._v(t._s(e.log))])]),t._v(" "),s("div",{staticClass:"sui-col"},[s("p",[s("strong",[t._v(t._s(t.__("Type")))])]),t._v(" "),s("p",[s("a",{attrs:{href:""},domProps:{textContent:t._s(t.eventType(e.type))}})])])]),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("p",[s("strong",[t._v(t._s(t.__("IP Address")))])]),t._v(" "),s("p",[s("a",{attrs:{href:""}},[t._v(t._s(e.ip))])])]),t._v(" "),s("div",{staticClass:"sui-col"},[s("p",[s("strong",[t._v(t._s(t.__("Date/Time")))])]),t._v(" "),s("p",[t._v(t._s(e.date))])]),t._v(" "),s("div",{staticClass:"sui-col"},[s("p",[s("strong",[t._v(t._s(t.__("Ban Status")))])]),t._v(" "),s("p",[t._v(t._s(e.statusText))])])]),t._v(" "),s("div",{staticClass:"sui-border-frame"},["na"===e.ip_status?s("button",{staticClass:"sui-button sui-button-ghost",class:{"sui-button-onload":t.state.on_saving},attrs:{type:"button"},on:{click:function(s){return t.addIpToList(e.ip,"whitelist",i)}}},[s("span",{staticClass:"sui-loading-text"},[s("i",{staticClass:"sui-icon-check-tick",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Add whitelist"))+"\n ")]),t._v(" "),s("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})]):t._e(),t._v(" "),"whitelist"===e.ip_status?s("button",{staticClass:"sui-button sui-button-ghost",class:{"sui-button-onload":t.state.on_saving},attrs:{type:"button"},on:{click:function(s){return t.addIpToList(e.ip,"unwhitelist",i)}}},[s("span",{staticClass:"sui-loading-text"},[t._v("\n "+t._s(t.__("Unwhitelist"))+"\n ")]),t._v(" "),s("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})]):t._e(),t._v(" "),!1===e.is_mine&&"na"===e.ip_status?s("button",{staticClass:"sui-button sui-button-red",class:{"sui-button-onload":t.state.on_saving},attrs:{type:"button"},on:{click:function(s){return t.addIpToList(e.ip,"blacklist",i)}}},[s("span",{staticClass:"sui-loading-text"},[s("i",{staticClass:"sui-icon-cross-close",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Ban IP"))+"\n ")]),t._v(" "),s("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})]):t._e(),t._v(" "),"blacklist"===e.ip_status?s("button",{staticClass:"sui-button sui-button-blue",class:{"sui-button-onload":t.state.on_saving},attrs:{type:"button"},on:{click:function(s){return t.addIpToList(e.ip,"unblacklist",i)}}},[s("span",{staticClass:"sui-loading-text"},[t._v("\n "+t._s(t.__("Unban IP"))+"\n ")]),t._v(" "),s("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})]):t._e(),t._v(" "),s("p",[t._v("\n\t\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("Note: Make sure this IP is not a legitimate operation, banning the IP will result in being permanently locked out from accessing your website."))+"\n\t\t\t\t\t\t\t\t\t\t")])])])])])])]}))],2)])],1)])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("td",[e("button",{staticClass:"sui-button-icon sui-accordion-open-indicator"},[e("i",{staticClass:"sui-icon-chevron-down",attrs:{"aria-hidden":"true"}})])])}],!1,null,null,null).exports,y={mixins:[a.a],name:"logs",props:["view"],data:function(){return{table:iplockout.table,sort:"latest"}},components:{"lockout-table":b},mounted:function(){var t=this;jQuery(".jquery-select").change((function(){var e=jQuery(this).val(),s=jQuery(this).attr("name");t[s]=e}))}},k=Object(r.a)(y,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-box",attrs:{"data-tab":"logs"}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v(t._s(t.__("Logs")))]),t._v(" "),s("div",{staticClass:"sui-actions-right"},[s("div",{staticClass:"box-filter"},[s("span",[t._v("\n "+t._s(t.__("Sort by"))+"\n ")]),t._v(" "),s("select",{directives:[{name:"model",rawName:"v-model",value:t.sort,expression:"sort"}],staticClass:"sui-select-sm jquery-select",attrs:{name:"sort"},on:{change:function(e){var s=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));t.sort=e.target.multiple?s:s[0]}}},[s("option",{attrs:{value:"latest"}},[t._v(t._s(t.__("Latest")))]),t._v(" "),s("option",{attrs:{value:"oldest"}},[t._v(t._s(t.__("Oldest")))]),t._v(" "),s("option",{attrs:{value:"ip"}},[t._v(t._s(t.__("IP Address")))])])]),t._v(" "),s("a",{staticClass:"sui-button sui-button-outlined",attrs:{href:t.adminUrl("admin-ajax.php?action=lockoutExportAsCsv")}},[t._v("\n\t\t\t\t\t"+t._s(t.__("Export CSV"))+"\n\t\t\t\t")])])]),t._v(" "),s("div",{staticClass:"sui-box-body"},[s("p",[t._v("\n\t\t\t\t"+t._s(t.__("Here's your comprehensive IP lockout log. You can whitelist and ban IPs from there."))+"\n\t\t\t")])]),t._v(" "),s("lockout-table",{attrs:{id:"iplockout-table",headers:["Details","Time",""],table:t.table,sort:t.sort}})],1)}),[],!1,null,null,null).exports,w=s("./src/component/recipients.vue"),C={mixins:[a.a],name:"notification",props:["view"],data:function(){return{model:iplockout.model.notification,nonces:iplockout.nonces,endpoints:iplockout.endpoints,state:{on_saving:!1}}},components:{recipients:w.a},methods:{updateSettings:function(){var t=this.model;this.httpPostRequest("updateSettings",{data:JSON.stringify(t)})},updateRecipients:function(t){this.model.receipts=t}},computed:{},mounted:function(){var t=this;jQuery(".jquery-select").change((function(){var e=jQuery(this).val(),s=jQuery(this).attr("name");t.model[s]=e}))}},x=Object(r.a)(C,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-box",attrs:{"data-tab":"notification"}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v(t._s(t.__("Notification")))])]),t._v(" "),s("form",{attrs:{method:"post"},on:{submit:function(e){return e.preventDefault(),t.updateSettings(e)}}},[s("div",{staticClass:"sui-box-body"},[s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Email Notifications"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Choose which lockout notifications you wish to be notified about. These are sent instantly."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.login_lockout_notification,expression:"model.login_lockout_notification"}],staticClass:"toggle-checkbox",attrs:{role:"presentation",type:"checkbox",id:"login_lockout_notification","true-value":!0,"false-value":!1},domProps:{checked:Array.isArray(t.model.login_lockout_notification)?t._i(t.model.login_lockout_notification,null)>-1:t.model.login_lockout_notification},on:{change:function(e){var s=t.model.login_lockout_notification,i=e.target,n=!!i.checked;if(Array.isArray(s)){var a=t._i(s,null);i.checked?a<0&&t.$set(t.model,"login_lockout_notification",s.concat([null])):a>-1&&t.$set(t.model,"login_lockout_notification",s.slice(0,a).concat(s.slice(a+1)))}else t.$set(t.model,"login_lockout_notification",n)}}}),t._v(" "),s("span",{staticClass:"sui-toggle-slider"})]),t._v(" "),s("label",{staticClass:"sui-toggle-label",attrs:{for:"login_lockout_notification"}},[t._v("\n "+t._s(t.__("Login Protection Lockout"))+"\n ")]),t._v(" "),s("p",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("When a user or IP is locked out for trying to access your login area."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.ip_lockout_notification,expression:"model.ip_lockout_notification"}],staticClass:"toggle-checkbox",attrs:{role:"presentation",type:"checkbox",id:"ip_lockout_notification","true-value":!0,"false-value":!1},domProps:{checked:Array.isArray(t.model.ip_lockout_notification)?t._i(t.model.ip_lockout_notification,null)>-1:t.model.ip_lockout_notification},on:{change:function(e){var s=t.model.ip_lockout_notification,i=e.target,n=!!i.checked;if(Array.isArray(s)){var a=t._i(s,null);i.checked?a<0&&t.$set(t.model,"ip_lockout_notification",s.concat([null])):a>-1&&t.$set(t.model,"ip_lockout_notification",s.slice(0,a).concat(s.slice(a+1)))}else t.$set(t.model,"ip_lockout_notification",n)}}}),t._v(" "),s("span",{staticClass:"sui-toggle-slider"})]),t._v(" "),s("label",{staticClass:"sui-toggle-label",attrs:{for:"ip_lockout_notification"}},[t._v("\n "+t._s(t.__("404 Detection Lockout"))+"\n ")]),t._v(" "),s("p",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("When a user or IP is locked out for repeated hits on non-existent files."))+"\n ")])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Email Recipients"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Choose which of your website’s users will receive lockout notifications via email."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("recipients",{attrs:{id:"notification_dialog",recipients:t.model.receipts},on:{"update:recipients":t.updateRecipients}})],1)]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Repeat Lockouts"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("If you’re getting too many emails from IPs who are repeatedly being locked out you can turn them off for a period of time."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.cooldown_enabled,expression:"model.cooldown_enabled"}],staticClass:"toggle-checkbox",attrs:{role:"presentation",type:"checkbox","true-value":!0,"false-value":!1,id:"cooldown_enabled"},domProps:{checked:Array.isArray(t.model.cooldown_enabled)?t._i(t.model.cooldown_enabled,null)>-1:t.model.cooldown_enabled},on:{change:function(e){var s=t.model.cooldown_enabled,i=e.target,n=!!i.checked;if(Array.isArray(s)){var a=t._i(s,null);i.checked?a<0&&t.$set(t.model,"cooldown_enabled",s.concat([null])):a>-1&&t.$set(t.model,"cooldown_enabled",s.slice(0,a).concat(s.slice(a+1)))}else t.$set(t.model,"cooldown_enabled",n)}}}),t._v(" "),s("span",{staticClass:"sui-toggle-slider"})]),t._v(" "),s("label",{staticClass:"sui-toggle-label",attrs:{for:"cooldown_enabled"}},[t._v("\n "+t._s(t.__("Limit email notifications for repeat lockouts"))+"\n ")]),t._v(" "),s("div",{staticClass:"sui-border-frame sui-toggle-content"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[s("strong",[t._v(t._s(t.__("Threshold")))]),t._v(" "+t._s(t.__("- The number of lockouts before we turn off emails")))]),t._v(" "),s("select",{directives:[{name:"model",rawName:"v-model",value:t.model.cooldown_number_lockout,expression:"model.cooldown_number_lockout"}],staticClass:"jquery-select sui-select",attrs:{id:"cooldown_number_lockout",name:"cooldown_number_lockout","data-minimum-results-for-search":"Infinity"},on:{change:function(e){var s=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));t.$set(t.model,"cooldown_number_lockout",e.target.multiple?s:s[0])}}},[s("option",{attrs:{value:"1"}},[t._v("1")]),t._v(" "),s("option",{attrs:{value:"3"}},[t._v("3")]),t._v(" "),s("option",{attrs:{value:"5"}},[t._v("5")]),t._v(" "),s("option",{attrs:{value:"10"}},[t._v("10")])])]),t._v(" "),s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[s("strong",[t._v(t._s(t.__("Cool Off Period")))]),t._v(" "+t._s(t.__("- For how long should we turn them off?")))]),t._v(" "),s("select",{directives:[{name:"model",rawName:"v-model",value:t.model.cooldown_period,expression:"model.cooldown_period"}],staticClass:"jquery-select sui-select",attrs:{id:"cooldown_period",name:"cooldown_period","data-minimum-results-for-search":"Infinity"},on:{change:function(e){var s=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));t.$set(t.model,"cooldown_period",e.target.multiple?s:s[0])}}},[s("option",{attrs:{value:"1"}},[t._v(t._s(t.__("1 hour")))]),t._v(" "),s("option",{attrs:{value:"2"}},[t._v(t._s(t.__("2 hours")))]),t._v(" "),s("option",{attrs:{value:"6"}},[t._v(t._s(t.__("6 hours")))]),t._v(" "),s("option",{attrs:{value:"12"}},[t._v(t._s(t.__("12 hours")))]),t._v(" "),s("option",{attrs:{value:"24"}},[t._v(t._s(t.__("24 hours")))]),t._v(" "),s("option",{attrs:{value:"36"}},[t._v(t._s(t.__("36 hours")))]),t._v(" "),s("option",{attrs:{value:"48"}},[t._v(t._s(t.__("48 hours")))]),t._v(" "),s("option",{attrs:{value:"168"}},[t._v(t._s(t.__("7 days")))]),t._v(" "),s("option",{attrs:{value:"720"}},[t._v(t._s(t.__("30 days")))])])])])])])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("div",{staticClass:"sui-actions-right"},[s("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue",state:t.state}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Save Changes"))+"\n ")])],1)])])])}),[],!1,null,null,null).exports,S={mixins:[a.a],name:"settings",props:["view"],data:function(){return{model:iplockout.model.settings,state:{on_saving:!1,ip_actioning:[]},nonces:iplockout.nonces,endpoints:iplockout.endpoints}},methods:{updateSettings:function(){var t=this.model;this.httpPostRequest("updateSettings",{data:JSON.stringify(t)})},emptyLogs:function(){var t=this;t.state.on_saving=!0;var e=!1,s=setInterval((function(){!1===e&&(e=!0,t.httpPostRequest("emptyLogs",{},(function(i){!1===i.success?e=!1:(clearInterval(s),t.state.on_saving=!1)})))}),1e3)}}},D=Object(r.a)(S,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-box",attrs:{"data-tab":"settings"}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v(t._s(t.__("Settings")))])]),t._v(" "),s("form",{attrs:{method:"post"},on:{submit:function(e){return e.preventDefault(),t.updateSettings(e)}}},[s("div",{staticClass:"sui-box-body"},[s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v(t._s(t.__("Storage")))]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Event logs are cached on your local server to speed up load times. You can choose how many days to keep logs for before they are removed."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.storage_days,expression:"model.storage_days"}],staticClass:"sui-form-control sui-field-has-suffix",attrs:{size:"8",type:"text",id:"storage_days",name:"storage_days"},domProps:{value:t.model.storage_days},on:{input:function(e){e.target.composing||t.$set(t.model,"storage_days",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-field-suffix"},[t._v(t._s(t.__("days")))]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Choose how many days of event logs you'd like to store locally."))+"\n ")])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v(t._s(t.__("Delete logs")))]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("If you wish to delete your current logs simply hit delete and this will wipe your logs clean."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("submit-button",{attrs:{type:"button","css-class":"sui-button-ghost",state:t.state},on:{click:t.emptyLogs}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Delete Logs"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Note: Defender will instantly remove all past event logs, you will not be able to get them back."))+"\n ")])],1)])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("div",{staticClass:"sui-actions-right"},[s("submit-button",{attrs:{type:"submit",state:t.state,"css-class":"sui-button-blue"}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Save Changes"))+"\n ")])],1)])])])}),[],!1,null,null,null).exports,P={mixins:[a.a],name:"report",props:["view"],data:function(){return{model:iplockout.model.report,state:{on_saving:!1,ip_actioning:[]},nonces:iplockout.nonces,endpoints:iplockout.endpoints,misc:iplockout.misc}},components:{recipients:w.a},methods:{updateRecipients:function(t){this.model.report_receipts=t},updateSettings:function(){var t=this.model;this.httpPostRequest("updateSettings",{data:JSON.stringify(t)})}},mounted:function(){var t=this;jQuery(".jquery-select").change((function(){var e=jQuery(this).val(),s=jQuery(this).attr("name");t.model[s]=e})),t.model.report_day=t.model.report_day.toLowerCase()},computed:{timezone_text:function(){return this.vsprintf(this.__("Your timezone is set to UTC %s, so your current time is %s."),this.misc.tz,this.misc.current_time)}}},M=Object(r.a)(P,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t"+t._s(t.__("Reporting"))+"\n\t\t\t")])]),t._v(" "),s("form",{attrs:{method:"post"},on:{submit:function(e){return e.preventDefault(),t.updateSettings(e)}}},[s("div",{staticClass:"sui-box-body"},[s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Lockouts Report"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Configure Defender to automatically email you a lockout report for this website."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.report,expression:"model.report"}],staticClass:"toggle-checkbox",attrs:{role:"presentation",type:"checkbox",name:"report",id:"report","true-value":!0,"false-value":!1},domProps:{checked:Array.isArray(t.model.report)?t._i(t.model.report,null)>-1:t.model.report},on:{change:function(e){var s=t.model.report,i=e.target,n=!!i.checked;if(Array.isArray(s)){var a=t._i(s,null);i.checked?a<0&&t.$set(t.model,"report",s.concat([null])):a>-1&&t.$set(t.model,"report",s.slice(0,a).concat(s.slice(a+1)))}else t.$set(t.model,"report",n)}}}),t._v(" "),s("span",{staticClass:"sui-toggle-slider"})]),t._v(" "),s("label",{staticClass:"sui-toggle-label",attrs:{for:"report"}},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.__("Send regular email report"))+"\n\t\t\t\t\t\t\t")]),t._v(" "),s("div",{directives:[{name:"show",rawName:"v-show",value:!0===t.model.report,expression:"model.report===true"}],staticClass:"sui-border-frame sui-toggle-content"},[s("strong",[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Recipients"))+"\n\t\t\t\t\t\t\t\t")]),t._v(" "),s("recipients",{attrs:{id:"report_receipts",recipients:t.model.report_receipts},on:{"update:recipients":t.updateRecipients}}),t._v(" "),s("div",{staticClass:"sui-form-field schedule-box"},[s("strong",[t._v("\n\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("Schedule"))+"\n\t\t\t\t\t\t\t\t\t")]),s("br"),t._v(" "),s("label",{staticClass:"sui-label"},[t._v("\n\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("Frequency"))+"\n\t\t\t\t\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-side-tabs"},[s("div",{staticClass:"sui-tabs-menu"},[s("label",{staticClass:"sui-tab-item",class:{active:1===parseInt(t.model.report_frequency)},attrs:{for:"report-daily"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.report_frequency,expression:"model.report_frequency"}],attrs:{type:"radio",name:"report_frequency","data-attribute":"feature_image_fit",id:"report-daily","data-tab-menu":"report-config-box"},domProps:{value:1,checked:t._q(t.model.report_frequency,1)},on:{change:function(e){return t.$set(t.model,"report_frequency",1)}}}),t._v("\n\t\t\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("Daily"))+"\n\t\t\t\t\t\t\t\t\t\t\t")]),t._v(" "),s("label",{staticClass:"sui-tab-item",class:{active:7===parseInt(t.model.report_frequency)},attrs:{for:"report-weekly"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.report_frequency,expression:"model.report_frequency"}],attrs:{type:"radio",name:"report_frequency","data-attribute":"feature_image_fit","data-tab-menu":"report-config-box",id:"report-weekly"},domProps:{value:7,checked:t._q(t.model.report_frequency,7)},on:{change:function(e){return t.$set(t.model,"report_frequency",7)}}}),t._v("\n\t\t\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("Weekly"))+"\n\t\t\t\t\t\t\t\t\t\t\t")]),t._v(" "),s("label",{staticClass:"sui-tab-item",class:{active:30===parseInt(t.model.report_frequency)},attrs:{for:"report-monthly"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.report_frequency,expression:"model.report_frequency"}],attrs:{type:"radio",name:"report_frequency","data-attribute":"feature_image_fit",id:"report-monthly","data-tab-menu":"report-config-box"},domProps:{value:30,checked:t._q(t.model.report_frequency,30)},on:{change:function(e){return t.$set(t.model,"report_frequency",30)}}}),t._v("\n\t\t\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("Monthly"))+"\n\t\t\t\t\t\t\t\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-tabs-content"},[s("div",{staticClass:"sui-tab-content sui-tab-boxed active",attrs:{id:"report-config-box","data-tab-content":"report-config-box"}},[s("div",{staticClass:"sui-row"},[s("div",{directives:[{name:"show",rawName:"v-show",value:1!==parseInt(t.model.report_frequency),expression:"parseInt(model.report_frequency) !== 1"}],staticClass:"sui-col"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Day of the week")))]),t._v(" "),s("select",{directives:[{name:"model",rawName:"v-model",value:t.model.report_day,expression:"model.report_day"}],staticClass:"jquery-select sui-select",attrs:{name:"report_day",id:"report_day"},on:{change:function(e){var s=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));t.$set(t.model,"report_day",e.target.multiple?s:s[0])}}},t._l(t.misc.days_of_weeks,(function(e){return s("option",{domProps:{value:e.toLowerCase()}},[t._v(t._s(e)+"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t")])})),0)]),t._v(" "),s("div",{staticClass:"sui-col"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Time of day")))]),t._v(" "),s("select",{directives:[{name:"model",rawName:"v-model",value:t.model.report_time,expression:"model.report_time"}],staticClass:"jquery-select sui-select",attrs:{name:"report_time",id:"report_time"},on:{change:function(e){var s=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));t.$set(t.model,"report_time",e.target.multiple?s:s[0])}}},t._l(t.misc.times_of_days,(function(e,i){return s("option",{domProps:{value:i}},[t._v(t._s(e)+"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t")])})),0)]),t._v(" "),s("div",{staticClass:"sui-col-md-12"},[s("span",{staticClass:"sui-p-small",domProps:{innerHTML:t._s(t.timezone_text)}})])])])])])])],1)])])])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("div",{staticClass:"sui-actions-right"},[s("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue",state:t.state}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t"+t._s(t.__("Save Changes"))+"\n\t\t\t\t\t")])],1)])])])}),[],!1,null,null,null).exports,T={name:"report-free",mixins:[a.a],props:["view"],computed:{upsell_img:function(){return this.assetUrl("assets/img/scanning-free-man.svg")},upsell_text:function(){return this.vsprintf(this.__("Schedule daily, weekly or monthly lockout summary reports for all your websites. This feature is included in a WPMU DEV membership along with 100+ plugins & themes, 24/7 support and lots of handy site management tools – <a href='%s'>Try it all FREE today</a>!"),this.campaign_url("defender_iplockout_reports_upsell_link"))}}},O=Object(r.a)(T,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-box",attrs:{"data-tab":"reporting"}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n "+t._s(t.__("Reporting"))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-body sui-upsell-items"},[s("div",{staticClass:"sui-box-settings-row sui-disabled no-padding-bottom no-margin-bottom"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v(t._s(t.__("Lockouts Report")))]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Configure Defender to automatically email you a lockout report for this website."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-side-tabs sui-tabs"},[s("div",{attrs:{"data-tabs":""}},[s("div",[t._v(t._s(t.__("On")))]),t._v(" "),s("div",{staticClass:"active"},[t._v(t._s(t.__("Off")))])])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row sui-upsell-row"},[s("img",{staticClass:"sui-image sui-upsell-image",attrs:{src:t.upsell_img}}),t._v(" "),s("div",{staticClass:"sui-upsell-notice"},[s("p",{domProps:{innerHTML:t._s(t.upsell_text)}})])])])])}),[],!1,null,null,null).exports,j={name:"ip-lockout",mixins:[a.a],data:function(){return{state:{on_saving:!1},summary_data:iplockout.summaryData,is_free:parseInt(defender.is_free),view:""}},components:{lockout:l,"nf-lockout":u,"ip-blacklist":f,logs:k,notification:x,settings:D,report:M,report_free:O},created:function(){var t=new URLSearchParams(window.location.search).get("view");null===t&&(t="login"),this.view=t},watch:{view:function(){history.replaceState({},null,this.adminUrl()+"admin.php?page=wdf-ip-lockout&view="+this.view)}},mounted:function(){self=this,jQuery(".sui-mobile-nav").change((function(){self.view=jQuery(this).val()}))}},Y=Object(r.a)(j,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-wrap",class:t.maybeHighContrast(),attrs:{id:"defender-app"}},[s("div",{staticClass:"wp-defender",attrs:{id:"wp-defender"}},[s("div",{staticClass:"iplockout"},[s("div",{staticClass:"sui-header"},[s("h1",{staticClass:"sui-header-title"},[t._v(t._s(t.__("IP Lockout")))]),t._v(" "),s("doc-link",{attrs:{link:"https://premium.wpmudev.org/docs/wpmu-dev-plugins/defender/#ip-lockouts"}})],1),t._v(" "),s("summary-box",[s("div",{staticClass:"sui-summary-segment"},[s("div",{staticClass:"sui-summary-details"},[s("span",{staticClass:"sui-summary-large lockoutToday"},[t._v(t._s(t.summary_data.day))]),t._v(" "),s("span",{staticClass:"sui-summary-sub"},[t._v(t._s(t.__("Lockouts in the past 24 hours")))]),t._v(" "),s("span",{staticClass:"sui-summary-detail lockoutThisMonth"},[t._v(t._s(t.summary_data.month))]),t._v(" "),s("span",{staticClass:"sui-summary-sub"},[t._v(t._s(t.__("Total lockouts in the past 30 days")))])])]),t._v(" "),s("div",{staticClass:"sui-summary-segment"},[s("ul",{staticClass:"sui-list"},[s("li",[s("span",{staticClass:"sui-list-label"},[t._v(t._s(t.__("Last lockout")))]),t._v(" "),s("span",{staticClass:"sui-list-detail"},[t._v(" "+t._s(t.summary_data.lastLockout))])]),t._v(" "),s("li",[s("span",{staticClass:"sui-list-label"},[t._v(t._s(t.__("Login lockouts in the past 7 days")))]),t._v(" "),s("span",{staticClass:"sui-list-detail"},[t._v(t._s(t.summary_data.ip.week))])]),t._v(" "),s("li",[s("span",{staticClass:"sui-list-label"},[t._v(t._s(t.__("404 lockouts in the past 7 days")))]),t._v(" "),s("span",{staticClass:"sui-list-detail"},[t._v(t._s(t.summary_data.nf.week))])])])])]),t._v(" "),s("div",{staticClass:"sui-row-with-sidenav"},[s("div",{staticClass:"sui-sidenav"},[s("ul",{staticClass:"sui-vertical-tabs sui-sidenav-hide-md"},[s("li",{staticClass:"sui-vertical-tab",class:{current:"login"===t.view}},[s("a",{attrs:{"data-tab":"login_lockout",href:t.adminUrl("admin.php?page=wdf-ip-lockout")},on:{click:function(e){e.preventDefault(),t.view="login"}}},[t._v(t._s(t.__("Login Protection")))])]),t._v(" "),s("li",{staticClass:"sui-vertical-tab",class:{current:"404"===t.view}},[s("a",{attrs:{"data-tab":"notfound_lockout",href:t.adminUrl("admin.php?page=wdf-ip-lockout&view=404")},on:{click:function(e){e.preventDefault(),t.view="404"}}},[t._v(t._s(t.__("404 Detection")))])]),t._v(" "),s("li",{staticClass:"sui-vertical-tab",class:{current:"blacklist"===t.view}},[s("a",{attrs:{"data-tab":"blacklist",href:t.adminUrl("admin.php?page=wdf-ip-lockout&view=blacklist")},on:{click:function(e){e.preventDefault(),t.view="blacklist"}}},[t._v(t._s(t.__("IP Banning")))])]),t._v(" "),s("li",{staticClass:"sui-vertical-tab",class:{current:"logs"===t.view}},[s("a",{attrs:{"data-tab":"logs",href:t.adminUrl("admin.php?page=wdf-ip-lockout&view=logs")},on:{click:function(e){e.preventDefault(),t.view="logs"}}},[t._v(t._s(t.__("Logs")))])]),t._v(" "),s("li",{staticClass:"sui-vertical-tab",class:{current:"notification"===t.view}},[s("a",{attrs:{"data-tab":"notification",href:t.adminUrl("admin.php?page=wdf-ip-lockout&view=notification")},on:{click:function(e){e.preventDefault(),t.view="notification"}}},[t._v(t._s(t.__("Notifications")))])]),t._v(" "),s("li",{staticClass:"sui-vertical-tab",class:{current:"settings"===t.view}},[s("a",{attrs:{"data-tab":"settings",href:t.adminUrl("admin.php?page=wdf-ip-lockout&view=settings")},on:{click:function(e){e.preventDefault(),t.view="settings"}}},[t._v(t._s(t.__("Settings")))])]),t._v(" "),s("li",{staticClass:"sui-vertical-tab",class:{current:"reporting"===t.view}},[s("a",{attrs:{"data-tab":"reporting",href:t.adminUrl("admin.php?page=wdf-ip-lockout&view=reporting")},on:{click:function(e){e.preventDefault(),t.view="reporting"}}},[t._v(t._s(t.__("Reporting")))])])]),t._v(" "),s("div",{staticClass:"sui-sidenav-hide-lg"},[s("select",{staticClass:"sui-mobile-nav",staticStyle:{display:"none"}},[s("option",{attrs:{value:"login"}},[t._v(t._s(t.__("Login Protection")))]),t._v(" "),s("option",{attrs:{value:"404"}},[t._v(t._s(t.__("404 Detection")))]),t._v(" "),s("option",{attrs:{value:"blacklist"}},[t._v(t._s(t.__("IP Banning")))]),t._v(" "),s("option",{attrs:{value:"logs"}},[t._v(t._s(t.__("Logs")))]),t._v(" "),s("option",{attrs:{value:"notification"}},[t._v(t._s(t.__("Notifications")))]),t._v(" "),s("option",{attrs:{value:"settings"}},[t._v(t._s(t.__("Settings")))]),t._v(" "),s("option",{attrs:{value:"reporting"}},[t._v(t._s(t.__("Reporting")))])])])]),t._v(" "),s("lockout",{directives:[{name:"show",rawName:"v-show",value:"login"===t.view,expression:"view==='login'"}]}),t._v(" "),s("nf-lockout",{directives:[{name:"show",rawName:"v-show",value:"404"===t.view,expression:"view==='404'"}]}),t._v(" "),s("ip-blacklist",{directives:[{name:"show",rawName:"v-show",value:"blacklist"===t.view,expression:"view==='blacklist'"}]}),t._v(" "),s("logs",{directives:[{name:"show",rawName:"v-show",value:"logs"===t.view,expression:"view==='logs'"}]}),t._v(" "),s("notification",{directives:[{name:"show",rawName:"v-show",value:"notification"===t.view,expression:"view==='notification'"}]}),t._v(" "),s("settings",{directives:[{name:"show",rawName:"v-show",value:"settings"===t.view,expression:"view==='settings'"}]}),t._v(" "),1===t.is_free?s("report_free",{directives:[{name:"show",rawName:"v-show",value:"reporting"===t.view,expression:"view==='reporting'"}]}):s("report",{directives:[{name:"show",rawName:"v-show",value:"reporting"===t.view,expression:"view==='reporting'"}]})],1)],1),t._v(" "),s("app-footer")],1)])}),[],!1,null,null,null).exports,I=s("./node_modules/moment/moment.js"),L=s("./src/component/overlay.vue"),A=s("./src/component/submit-button.vue"),N=s("./src/component/footer.vue"),E=s("./src/component/doc-link.vue"),R=s("./src/component/summary-box.vue");n.a.filter("moment",(function(t,e){return t?I(t).format(e):I().format(e)})),n.a.component("overlay",L.a),n.a.component("submit-button",A.a),n.a.component("app-footer",N.a),n.a.component("doc-link",E.a),n.a.component("summary-box",R.a);new n.a({el:"#defender",components:{ip_lockout:Y},render:function(t){return t(Y)}})},vue:function(t,e){t.exports=Vue}});
1
+ !function(t){var e=window.webpackHotUpdate;window.webpackHotUpdate=function(t,s){!function(t,e){if(!k[t]||!y[t])return;for(var s in y[t]=!1,e)Object.prototype.hasOwnProperty.call(e,s)&&(m[s]=e[s]);0==--v&&0===g&&j()}(t,s),e&&e(t,s)};var s,i=!0,o="b39acf366faa9b224a1a",n={},a=[],r=[];function l(t){var e=M[t];if(!e)return O;var i=function(i){return e.hot.active?(M[i]?-1===M[i].parents.indexOf(t)&&M[i].parents.push(t):(a=[t],s=i),-1===e.children.indexOf(i)&&e.children.push(i)):(console.warn("[HMR] unexpected require("+i+") from disposed module "+t),a=[]),O(i)},o=function(t){return{configurable:!0,enumerable:!0,get:function(){return O[t]},set:function(e){O[t]=e}}};for(var n in O)Object.prototype.hasOwnProperty.call(O,n)&&"e"!==n&&"t"!==n&&Object.defineProperty(i,n,o(n));return i.e=function(t){return"ready"===c&&_("prepare"),g++,O.e(t).then(e,(function(t){throw e(),t}));function e(){g--,"prepare"===c&&(b[t]||x(t),0===g&&0===v&&j())}},i.t=function(t,e){return 1&e&&(t=i(t)),O.t(t,-2&e)},i}function u(e){var i={_acceptedDependencies:{},_declinedDependencies:{},_selfAccepted:!1,_selfDeclined:!1,_selfInvalidated:!1,_disposeHandlers:[],_main:s!==e,active:!0,accept:function(t,e){if(void 0===t)i._selfAccepted=!0;else if("function"==typeof t)i._selfAccepted=t;else if("object"==typeof t)for(var s=0;s<t.length;s++)i._acceptedDependencies[t[s]]=e||function(){};else i._acceptedDependencies[t]=e||function(){}},decline:function(t){if(void 0===t)i._selfDeclined=!0;else if("object"==typeof t)for(var e=0;e<t.length;e++)i._declinedDependencies[t[e]]=!0;else i._declinedDependencies[t]=!0},dispose:function(t){i._disposeHandlers.push(t)},addDisposeHandler:function(t){i._disposeHandlers.push(t)},removeDisposeHandler:function(t){var e=i._disposeHandlers.indexOf(t);e>=0&&i._disposeHandlers.splice(e,1)},invalidate:function(){switch(this._selfInvalidated=!0,c){case"idle":(m={})[e]=t[e],_("ready");break;case"ready":D(e);break;case"prepare":case"check":case"dispose":case"apply":(f=f||[]).push(e)}},check:C,apply:S,status:function(t){if(!t)return c;d.push(t)},addStatusHandler:function(t){d.push(t)},removeStatusHandler:function(t){var e=d.indexOf(t);e>=0&&d.splice(e,1)},data:n[e]};return s=void 0,i}var d=[],c="idle";function _(t){c=t;for(var e=0;e<d.length;e++)d[e].call(null,t)}var h,m,p,f,v=0,g=0,b={},y={},k={};function w(t){return+t+""===t?+t:t}function C(t){if("idle"!==c)throw new Error("check() is only allowed in idle status");return i=t,_("check"),(e=1e4,e=e||1e4,new Promise((function(t,s){if("undefined"==typeof XMLHttpRequest)return s(new Error("No browser support"));try{var i=new XMLHttpRequest,n=O.p+""+o+".hot-update.json";i.open("GET",n,!0),i.timeout=e,i.send(null)}catch(t){return s(t)}i.onreadystatechange=function(){if(4===i.readyState)if(0===i.status)s(new Error("Manifest request to "+n+" timed out."));else if(404===i.status)t();else if(200!==i.status&&304!==i.status)s(new Error("Manifest request to "+n+" failed."));else{try{var e=JSON.parse(i.responseText)}catch(t){return void s(t)}t(e)}}}))).then((function(t){if(!t)return _(P()?"ready":"idle"),null;y={},b={},k=t.c,p=t.h,_("prepare");var e=new Promise((function(t,e){h={resolve:t,reject:e}}));m={};return x(3),"prepare"===c&&0===g&&0===v&&j(),e}));var e}function x(t){k[t]?(y[t]=!0,v++,function(t){var e=document.createElement("script");e.charset="utf-8",e.src=O.p+""+t+"."+o+".hot-update.js",document.head.appendChild(e)}(t)):b[t]=!0}function j(){_("ready");var t=h;if(h=null,t)if(i)Promise.resolve().then((function(){return S(i)})).then((function(e){t.resolve(e)}),(function(e){t.reject(e)}));else{var e=[];for(var s in m)Object.prototype.hasOwnProperty.call(m,s)&&e.push(w(s));t.resolve(e)}}function S(e){if("ready"!==c)throw new Error("apply() is only allowed in ready status");return function e(i){var r,l,u,d,c;function h(t){for(var e=[t],s={},i=e.map((function(t){return{chain:[t],id:t}}));i.length>0;){var o=i.pop(),n=o.id,a=o.chain;if((d=M[n])&&(!d.hot._selfAccepted||d.hot._selfInvalidated)){if(d.hot._selfDeclined)return{type:"self-declined",chain:a,moduleId:n};if(d.hot._main)return{type:"unaccepted",chain:a,moduleId:n};for(var r=0;r<d.parents.length;r++){var l=d.parents[r],u=M[l];if(u){if(u.hot._declinedDependencies[n])return{type:"declined",chain:a.concat([l]),moduleId:n,parentId:l};-1===e.indexOf(l)&&(u.hot._acceptedDependencies[n]?(s[l]||(s[l]=[]),v(s[l],[n])):(delete s[l],e.push(l),i.push({chain:a.concat([l]),id:l})))}}}}return{type:"accepted",moduleId:t,outdatedModules:e,outdatedDependencies:s}}function v(t,e){for(var s=0;s<e.length;s++){var i=e[s];-1===t.indexOf(i)&&t.push(i)}}P();var g={},b=[],y={},C=function(){console.warn("[HMR] unexpected require("+j.moduleId+") to disposed module")};for(var x in m)if(Object.prototype.hasOwnProperty.call(m,x)){var j;c=w(x),j=m[x]?h(c):{type:"disposed",moduleId:x};var S=!1,D=!1,T=!1,A="";switch(j.chain&&(A="\nUpdate propagation: "+j.chain.join(" -> ")),j.type){case"self-declined":i.onDeclined&&i.onDeclined(j),i.ignoreDeclined||(S=new Error("Aborted because of self decline: "+j.moduleId+A));break;case"declined":i.onDeclined&&i.onDeclined(j),i.ignoreDeclined||(S=new Error("Aborted because of declined dependency: "+j.moduleId+" in "+j.parentId+A));break;case"unaccepted":i.onUnaccepted&&i.onUnaccepted(j),i.ignoreUnaccepted||(S=new Error("Aborted because "+c+" is not accepted"+A));break;case"accepted":i.onAccepted&&i.onAccepted(j),D=!0;break;case"disposed":i.onDisposed&&i.onDisposed(j),T=!0;break;default:throw new Error("Unexception type "+j.type)}if(S)return _("abort"),Promise.reject(S);if(D)for(c in y[c]=m[c],v(b,j.outdatedModules),j.outdatedDependencies)Object.prototype.hasOwnProperty.call(j.outdatedDependencies,c)&&(g[c]||(g[c]=[]),v(g[c],j.outdatedDependencies[c]));T&&(v(b,[j.moduleId]),y[c]=C)}var Y,I=[];for(l=0;l<b.length;l++)c=b[l],M[c]&&M[c].hot._selfAccepted&&y[c]!==C&&!M[c].hot._selfInvalidated&&I.push({module:c,parents:M[c].parents.slice(),errorHandler:M[c].hot._selfAccepted});_("dispose"),Object.keys(k).forEach((function(t){!1===k[t]&&function(t){delete installedChunks[t]}(t)}));var L,N,E=b.slice();for(;E.length>0;)if(c=E.pop(),d=M[c]){var H={},R=d.hot._disposeHandlers;for(u=0;u<R.length;u++)(r=R[u])(H);for(n[c]=H,d.hot.active=!1,delete M[c],delete g[c],u=0;u<d.children.length;u++){var U=M[d.children[u]];U&&((Y=U.parents.indexOf(c))>=0&&U.parents.splice(Y,1))}}for(c in g)if(Object.prototype.hasOwnProperty.call(g,c)&&(d=M[c]))for(N=g[c],u=0;u<N.length;u++)L=N[u],(Y=d.children.indexOf(L))>=0&&d.children.splice(Y,1);_("apply"),void 0!==p&&(o=p,p=void 0);for(c in m=void 0,y)Object.prototype.hasOwnProperty.call(y,c)&&(t[c]=y[c]);var $=null;for(c in g)if(Object.prototype.hasOwnProperty.call(g,c)&&(d=M[c])){N=g[c];var F=[];for(l=0;l<N.length;l++)if(L=N[l],r=d.hot._acceptedDependencies[L]){if(-1!==F.indexOf(r))continue;F.push(r)}for(l=0;l<F.length;l++){r=F[l];try{r(N)}catch(t){i.onErrored&&i.onErrored({type:"accept-errored",moduleId:c,dependencyId:N[l],error:t}),i.ignoreErrored||$||($=t)}}}for(l=0;l<I.length;l++){var W=I[l];c=W.module,a=W.parents,s=c;try{O(c)}catch(t){if("function"==typeof W.errorHandler)try{W.errorHandler(t)}catch(e){i.onErrored&&i.onErrored({type:"self-accept-error-handler-errored",moduleId:c,error:e,originalError:t}),i.ignoreErrored||$||($=e),$||($=t)}else i.onErrored&&i.onErrored({type:"self-accept-errored",moduleId:c,error:t}),i.ignoreErrored||$||($=t)}}if($)return _("fail"),Promise.reject($);if(f)return e(i).then((function(t){return b.forEach((function(e){t.indexOf(e)<0&&t.push(e)})),t}));return _("idle"),new Promise((function(t){t(b)}))}(e=e||{})}function P(){if(f)return m||(m={}),f.forEach(D),f=void 0,!0}function D(e){Object.prototype.hasOwnProperty.call(m,e)||(m[e]=t[e])}var M={};function O(e){if(M[e])return M[e].exports;var s=M[e]={i:e,l:!1,exports:{},hot:u(e),parents:(r=a,a=[],r),children:[]};return t[e].call(s.exports,s,s.exports,l(e)),s.l=!0,s.exports}O.m=t,O.c=M,O.d=function(t,e,s){O.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:s})},O.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},O.t=function(t,e){if(1&e&&(t=O(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var s=Object.create(null);if(O.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)O.d(s,i,function(e){return t[e]}.bind(null,i));return s},O.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return O.d(e,"a",e),e},O.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},O.p="",O.h=function(){return o},l("./src/ip-lockout.js")(O.s="./src/ip-lockout.js")}({"./node_modules/cssfilter/lib/css.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/default.js"),o=s("./node_modules/cssfilter/lib/parser.js");s("./node_modules/cssfilter/lib/util.js");function n(t){return null==t}function a(t){(t=function(t){var e={};for(var s in t)e[s]=t[s];return e}(t||{})).whiteList=t.whiteList||i.whiteList,t.onAttr=t.onAttr||i.onAttr,t.onIgnoreAttr=t.onIgnoreAttr||i.onIgnoreAttr,t.safeAttrValue=t.safeAttrValue||i.safeAttrValue,this.options=t}a.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var e=this.options,s=e.whiteList,i=e.onAttr,a=e.onIgnoreAttr,r=e.safeAttrValue;return o(t,(function(t,e,o,l,u){var d=s[o],c=!1;if(!0===d?c=d:"function"==typeof d?c=d(l):d instanceof RegExp&&(c=d.test(l)),!0!==c&&(c=!1),l=r(o,l)){var _,h={position:e,sourcePosition:t,source:u,isWhite:c};return c?n(_=i(o,l,h))?o+":"+l:_:n(_=a(o,l,h))?void 0:_}}))},t.exports=a},"./node_modules/cssfilter/lib/default.js":function(t,e){function s(){var t={"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1};return t}var i=/javascript\s*\:/gim;e.whiteList=s(),e.getDefaultWhiteList=s,e.onAttr=function(t,e,s){},e.onIgnoreAttr=function(t,e,s){},e.safeAttrValue=function(t,e){return i.test(e)?"":e}},"./node_modules/cssfilter/lib/index.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/default.js"),o=s("./node_modules/cssfilter/lib/css.js");for(var n in(e=t.exports=function(t,e){return new o(e).process(t)}).FilterCSS=o,i)e[n]=i[n];"undefined"!=typeof window&&(window.filterCSS=t.exports)},"./node_modules/cssfilter/lib/parser.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/util.js");t.exports=function(t,e){";"!==(t=i.trimRight(t))[t.length-1]&&(t+=";");var s=t.length,o=!1,n=0,a=0,r="";function l(){if(!o){var s=i.trim(t.slice(n,a)),l=s.indexOf(":");if(-1!==l){var u=i.trim(s.slice(0,l)),d=i.trim(s.slice(l+1));if(u){var c=e(n,r.length,u,d,s);c&&(r+=c+"; ")}}}n=a+1}for(;a<s;a++){var u=t[a];if("/"===u&&"*"===t[a+1]){var d=t.indexOf("*/",a+2);if(-1===d)break;n=(a=d+1)+1,o=!1}else"("===u?o=!0:")"===u?o=!1:";"===u?o||l():"\n"===u&&l()}return i.trim(r)}},"./node_modules/cssfilter/lib/util.js":function(t,e){t.exports={indexOf:function(t,e){var s,i;if(Array.prototype.indexOf)return t.indexOf(e);for(s=0,i=t.length;s<i;s++)if(t[s]===e)return s;return-1},forEach:function(t,e,s){var i,o;if(Array.prototype.forEach)return t.forEach(e,s);for(i=0,o=t.length;i<o;i++)e.call(s,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(t){return String.prototype.trimRight?t.trimRight():t.replace(/(\s*$)/g,"")}}},"./node_modules/lodash/_DataView.js":function(t,e,s){var i=s("./node_modules/lodash/_getNative.js")(s("./node_modules/lodash/_root.js"),"DataView");t.exports=i},"./node_modules/lodash/_Hash.js":function(t,e,s){var i=s("./node_modules/lodash/_hashClear.js"),o=s("./node_modules/lodash/_hashDelete.js"),n=s("./node_modules/lodash/_hashGet.js"),a=s("./node_modules/lodash/_hashHas.js"),r=s("./node_modules/lodash/_hashSet.js");function l(t){var e=-1,s=null==t?0:t.length;for(this.clear();++e<s;){var i=t[e];this.set(i[0],i[1])}}l.prototype.clear=i,l.prototype.delete=o,l.prototype.get=n,l.prototype.has=a,l.prototype.set=r,t.exports=l},"./node_modules/lodash/_ListCache.js":function(t,e,s){var i=s("./node_modules/lodash/_listCacheClear.js"),o=s("./node_modules/lodash/_listCacheDelete.js"),n=s("./node_modules/lodash/_listCacheGet.js"),a=s("./node_modules/lodash/_listCacheHas.js"),r=s("./node_modules/lodash/_listCacheSet.js");function l(t){var e=-1,s=null==t?0:t.length;for(this.clear();++e<s;){var i=t[e];this.set(i[0],i[1])}}l.prototype.clear=i,l.prototype.delete=o,l.prototype.get=n,l.prototype.has=a,l.prototype.set=r,t.exports=l},"./node_modules/lodash/_Map.js":function(t,e,s){var i=s("./node_modules/lodash/_getNative.js")(s("./node_modules/lodash/_root.js"),"Map");t.exports=i},"./node_modules/lodash/_MapCache.js":function(t,e,s){var i=s("./node_modules/lodash/_mapCacheClear.js"),o=s("./node_modules/lodash/_mapCacheDelete.js"),n=s("./node_modules/lodash/_mapCacheGet.js"),a=s("./node_modules/lodash/_mapCacheHas.js"),r=s("./node_modules/lodash/_mapCacheSet.js");function l(t){var e=-1,s=null==t?0:t.length;for(this.clear();++e<s;){var i=t[e];this.set(i[0],i[1])}}l.prototype.clear=i,l.prototype.delete=o,l.prototype.get=n,l.prototype.has=a,l.prototype.set=r,t.exports=l},"./node_modules/lodash/_Promise.js":function(t,e,s){var i=s("./node_modules/lodash/_getNative.js")(s("./node_modules/lodash/_root.js"),"Promise");t.exports=i},"./node_modules/lodash/_Set.js":function(t,e,s){var i=s("./node_modules/lodash/_getNative.js")(s("./node_modules/lodash/_root.js"),"Set");t.exports=i},"./node_modules/lodash/_SetCache.js":function(t,e,s){var i=s("./node_modules/lodash/_MapCache.js"),o=s("./node_modules/lodash/_setCacheAdd.js"),n=s("./node_modules/lodash/_setCacheHas.js");function a(t){var e=-1,s=null==t?0:t.length;for(this.__data__=new i;++e<s;)this.add(t[e])}a.prototype.add=a.prototype.push=o,a.prototype.has=n,t.exports=a},"./node_modules/lodash/_Stack.js":function(t,e,s){var i=s("./node_modules/lodash/_ListCache.js"),o=s("./node_modules/lodash/_stackClear.js"),n=s("./node_modules/lodash/_stackDelete.js"),a=s("./node_modules/lodash/_stackGet.js"),r=s("./node_modules/lodash/_stackHas.js"),l=s("./node_modules/lodash/_stackSet.js");function u(t){var e=this.__data__=new i(t);this.size=e.size}u.prototype.clear=o,u.prototype.delete=n,u.prototype.get=a,u.prototype.has=r,u.prototype.set=l,t.exports=u},"./node_modules/lodash/_Symbol.js":function(t,e,s){var i=s("./node_modules/lodash/_root.js").Symbol;t.exports=i},"./node_modules/lodash/_Uint8Array.js":function(t,e,s){var i=s("./node_modules/lodash/_root.js").Uint8Array;t.exports=i},"./node_modules/lodash/_WeakMap.js":function(t,e,s){var i=s("./node_modules/lodash/_getNative.js")(s("./node_modules/lodash/_root.js"),"WeakMap");t.exports=i},"./node_modules/lodash/_arrayFilter.js":function(t,e){t.exports=function(t,e){for(var s=-1,i=null==t?0:t.length,o=0,n=[];++s<i;){var a=t[s];e(a,s,t)&&(n[o++]=a)}return n}},"./node_modules/lodash/_arrayLikeKeys.js":function(t,e,s){var i=s("./node_modules/lodash/_baseTimes.js"),o=s("./node_modules/lodash/isArguments.js"),n=s("./node_modules/lodash/isArray.js"),a=s("./node_modules/lodash/isBuffer.js"),r=s("./node_modules/lodash/_isIndex.js"),l=s("./node_modules/lodash/isTypedArray.js"),u=Object.prototype.hasOwnProperty;t.exports=function(t,e){var s=n(t),d=!s&&o(t),c=!s&&!d&&a(t),_=!s&&!d&&!c&&l(t),h=s||d||c||_,m=h?i(t.length,String):[],p=m.length;for(var f in t)!e&&!u.call(t,f)||h&&("length"==f||c&&("offset"==f||"parent"==f)||_&&("buffer"==f||"byteLength"==f||"byteOffset"==f)||r(f,p))||m.push(f);return m}},"./node_modules/lodash/_arrayMap.js":function(t,e){t.exports=function(t,e){for(var s=-1,i=null==t?0:t.length,o=Array(i);++s<i;)o[s]=e(t[s],s,t);return o}},"./node_modules/lodash/_arrayPush.js":function(t,e){t.exports=function(t,e){for(var s=-1,i=e.length,o=t.length;++s<i;)t[o+s]=e[s];return t}},"./node_modules/lodash/_arraySome.js":function(t,e){t.exports=function(t,e){for(var s=-1,i=null==t?0:t.length;++s<i;)if(e(t[s],s,t))return!0;return!1}},"./node_modules/lodash/_assocIndexOf.js":function(t,e,s){var i=s("./node_modules/lodash/eq.js");t.exports=function(t,e){for(var s=t.length;s--;)if(i(t[s][0],e))return s;return-1}},"./node_modules/lodash/_baseFindIndex.js":function(t,e){t.exports=function(t,e,s,i){for(var o=t.length,n=s+(i?1:-1);i?n--:++n<o;)if(e(t[n],n,t))return n;return-1}},"./node_modules/lodash/_baseGet.js":function(t,e,s){var i=s("./node_modules/lodash/_castPath.js"),o=s("./node_modules/lodash/_toKey.js");t.exports=function(t,e){for(var s=0,n=(e=i(e,t)).length;null!=t&&s<n;)t=t[o(e[s++])];return s&&s==n?t:void 0}},"./node_modules/lodash/_baseGetAllKeys.js":function(t,e,s){var i=s("./node_modules/lodash/_arrayPush.js"),o=s("./node_modules/lodash/isArray.js");t.exports=function(t,e,s){var n=e(t);return o(t)?n:i(n,s(t))}},"./node_modules/lodash/_baseGetTag.js":function(t,e,s){var i=s("./node_modules/lodash/_Symbol.js"),o=s("./node_modules/lodash/_getRawTag.js"),n=s("./node_modules/lodash/_objectToString.js"),a=i?i.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":a&&a in Object(t)?o(t):n(t)}},"./node_modules/lodash/_baseHasIn.js":function(t,e){t.exports=function(t,e){return null!=t&&e in Object(t)}},"./node_modules/lodash/_baseIsArguments.js":function(t,e,s){var i=s("./node_modules/lodash/_baseGetTag.js"),o=s("./node_modules/lodash/isObjectLike.js");t.exports=function(t){return o(t)&&"[object Arguments]"==i(t)}},"./node_modules/lodash/_baseIsEqual.js":function(t,e,s){var i=s("./node_modules/lodash/_baseIsEqualDeep.js"),o=s("./node_modules/lodash/isObjectLike.js");t.exports=function t(e,s,n,a,r){return e===s||(null==e||null==s||!o(e)&&!o(s)?e!=e&&s!=s:i(e,s,n,a,t,r))}},"./node_modules/lodash/_baseIsEqualDeep.js":function(t,e,s){var i=s("./node_modules/lodash/_Stack.js"),o=s("./node_modules/lodash/_equalArrays.js"),n=s("./node_modules/lodash/_equalByTag.js"),a=s("./node_modules/lodash/_equalObjects.js"),r=s("./node_modules/lodash/_getTag.js"),l=s("./node_modules/lodash/isArray.js"),u=s("./node_modules/lodash/isBuffer.js"),d=s("./node_modules/lodash/isTypedArray.js"),c="[object Object]",_=Object.prototype.hasOwnProperty;t.exports=function(t,e,s,h,m,p){var f=l(t),v=l(e),g=f?"[object Array]":r(t),b=v?"[object Array]":r(e),y=(g="[object Arguments]"==g?c:g)==c,k=(b="[object Arguments]"==b?c:b)==c,w=g==b;if(w&&u(t)){if(!u(e))return!1;f=!0,y=!1}if(w&&!y)return p||(p=new i),f||d(t)?o(t,e,s,h,m,p):n(t,e,g,s,h,m,p);if(!(1&s)){var C=y&&_.call(t,"__wrapped__"),x=k&&_.call(e,"__wrapped__");if(C||x){var j=C?t.value():t,S=x?e.value():e;return p||(p=new i),m(j,S,s,h,p)}}return!!w&&(p||(p=new i),a(t,e,s,h,m,p))}},"./node_modules/lodash/_baseIsMatch.js":function(t,e,s){var i=s("./node_modules/lodash/_Stack.js"),o=s("./node_modules/lodash/_baseIsEqual.js");t.exports=function(t,e,s,n){var a=s.length,r=a,l=!n;if(null==t)return!r;for(t=Object(t);a--;){var u=s[a];if(l&&u[2]?u[1]!==t[u[0]]:!(u[0]in t))return!1}for(;++a<r;){var d=(u=s[a])[0],c=t[d],_=u[1];if(l&&u[2]){if(void 0===c&&!(d in t))return!1}else{var h=new i;if(n)var m=n(c,_,d,t,e,h);if(!(void 0===m?o(_,c,3,n,h):m))return!1}}return!0}},"./node_modules/lodash/_baseIsNative.js":function(t,e,s){var i=s("./node_modules/lodash/isFunction.js"),o=s("./node_modules/lodash/_isMasked.js"),n=s("./node_modules/lodash/isObject.js"),a=s("./node_modules/lodash/_toSource.js"),r=/^\[object .+?Constructor\]$/,l=Function.prototype,u=Object.prototype,d=l.toString,c=u.hasOwnProperty,_=RegExp("^"+d.call(c).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(t){return!(!n(t)||o(t))&&(i(t)?_:r).test(a(t))}},"./node_modules/lodash/_baseIsTypedArray.js":function(t,e,s){var i=s("./node_modules/lodash/_baseGetTag.js"),o=s("./node_modules/lodash/isLength.js"),n=s("./node_modules/lodash/isObjectLike.js"),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,t.exports=function(t){return n(t)&&o(t.length)&&!!a[i(t)]}},"./node_modules/lodash/_baseIteratee.js":function(t,e,s){var i=s("./node_modules/lodash/_baseMatches.js"),o=s("./node_modules/lodash/_baseMatchesProperty.js"),n=s("./node_modules/lodash/identity.js"),a=s("./node_modules/lodash/isArray.js"),r=s("./node_modules/lodash/property.js");t.exports=function(t){return"function"==typeof t?t:null==t?n:"object"==typeof t?a(t)?o(t[0],t[1]):i(t):r(t)}},"./node_modules/lodash/_baseKeys.js":function(t,e,s){var i=s("./node_modules/lodash/_isPrototype.js"),o=s("./node_modules/lodash/_nativeKeys.js"),n=Object.prototype.hasOwnProperty;t.exports=function(t){if(!i(t))return o(t);var e=[];for(var s in Object(t))n.call(t,s)&&"constructor"!=s&&e.push(s);return e}},"./node_modules/lodash/_baseMatches.js":function(t,e,s){var i=s("./node_modules/lodash/_baseIsMatch.js"),o=s("./node_modules/lodash/_getMatchData.js"),n=s("./node_modules/lodash/_matchesStrictComparable.js");t.exports=function(t){var e=o(t);return 1==e.length&&e[0][2]?n(e[0][0],e[0][1]):function(s){return s===t||i(s,t,e)}}},"./node_modules/lodash/_baseMatchesProperty.js":function(t,e,s){var i=s("./node_modules/lodash/_baseIsEqual.js"),o=s("./node_modules/lodash/get.js"),n=s("./node_modules/lodash/hasIn.js"),a=s("./node_modules/lodash/_isKey.js"),r=s("./node_modules/lodash/_isStrictComparable.js"),l=s("./node_modules/lodash/_matchesStrictComparable.js"),u=s("./node_modules/lodash/_toKey.js");t.exports=function(t,e){return a(t)&&r(e)?l(u(t),e):function(s){var a=o(s,t);return void 0===a&&a===e?n(s,t):i(e,a,3)}}},"./node_modules/lodash/_baseProperty.js":function(t,e){t.exports=function(t){return function(e){return null==e?void 0:e[t]}}},"./node_modules/lodash/_basePropertyDeep.js":function(t,e,s){var i=s("./node_modules/lodash/_baseGet.js");t.exports=function(t){return function(e){return i(e,t)}}},"./node_modules/lodash/_baseSlice.js":function(t,e){t.exports=function(t,e,s){var i=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(s=s>o?o:s)<0&&(s+=o),o=e>s?0:s-e>>>0,e>>>=0;for(var n=Array(o);++i<o;)n[i]=t[i+e];return n}},"./node_modules/lodash/_baseTimes.js":function(t,e){t.exports=function(t,e){for(var s=-1,i=Array(t);++s<t;)i[s]=e(s);return i}},"./node_modules/lodash/_baseToString.js":function(t,e,s){var i=s("./node_modules/lodash/_Symbol.js"),o=s("./node_modules/lodash/_arrayMap.js"),n=s("./node_modules/lodash/isArray.js"),a=s("./node_modules/lodash/isSymbol.js"),r=i?i.prototype:void 0,l=r?r.toString:void 0;t.exports=function t(e){if("string"==typeof e)return e;if(n(e))return o(e,t)+"";if(a(e))return l?l.call(e):"";var s=e+"";return"0"==s&&1/e==-1/0?"-0":s}},"./node_modules/lodash/_baseUnary.js":function(t,e){t.exports=function(t){return function(e){return t(e)}}},"./node_modules/lodash/_cacheHas.js":function(t,e){t.exports=function(t,e){return t.has(e)}},"./node_modules/lodash/_castPath.js":function(t,e,s){var i=s("./node_modules/lodash/isArray.js"),o=s("./node_modules/lodash/_isKey.js"),n=s("./node_modules/lodash/_stringToPath.js"),a=s("./node_modules/lodash/toString.js");t.exports=function(t,e){return i(t)?t:o(t,e)?[t]:n(a(t))}},"./node_modules/lodash/_coreJsData.js":function(t,e,s){var i=s("./node_modules/lodash/_root.js")["__core-js_shared__"];t.exports=i},"./node_modules/lodash/_createFind.js":function(t,e,s){var i=s("./node_modules/lodash/_baseIteratee.js"),o=s("./node_modules/lodash/isArrayLike.js"),n=s("./node_modules/lodash/keys.js");t.exports=function(t){return function(e,s,a){var r=Object(e);if(!o(e)){var l=i(s,3);e=n(e),s=function(t){return l(r[t],t,r)}}var u=t(e,s,a);return u>-1?r[l?e[u]:u]:void 0}}},"./node_modules/lodash/_equalArrays.js":function(t,e,s){var i=s("./node_modules/lodash/_SetCache.js"),o=s("./node_modules/lodash/_arraySome.js"),n=s("./node_modules/lodash/_cacheHas.js");t.exports=function(t,e,s,a,r,l){var u=1&s,d=t.length,c=e.length;if(d!=c&&!(u&&c>d))return!1;var _=l.get(t);if(_&&l.get(e))return _==e;var h=-1,m=!0,p=2&s?new i:void 0;for(l.set(t,e),l.set(e,t);++h<d;){var f=t[h],v=e[h];if(a)var g=u?a(v,f,h,e,t,l):a(f,v,h,t,e,l);if(void 0!==g){if(g)continue;m=!1;break}if(p){if(!o(e,(function(t,e){if(!n(p,e)&&(f===t||r(f,t,s,a,l)))return p.push(e)}))){m=!1;break}}else if(f!==v&&!r(f,v,s,a,l)){m=!1;break}}return l.delete(t),l.delete(e),m}},"./node_modules/lodash/_equalByTag.js":function(t,e,s){var i=s("./node_modules/lodash/_Symbol.js"),o=s("./node_modules/lodash/_Uint8Array.js"),n=s("./node_modules/lodash/eq.js"),a=s("./node_modules/lodash/_equalArrays.js"),r=s("./node_modules/lodash/_mapToArray.js"),l=s("./node_modules/lodash/_setToArray.js"),u=i?i.prototype:void 0,d=u?u.valueOf:void 0;t.exports=function(t,e,s,i,u,c,_){switch(s){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=e.byteLength||!c(new o(t),new o(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return n(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var h=r;case"[object Set]":var m=1&i;if(h||(h=l),t.size!=e.size&&!m)return!1;var p=_.get(t);if(p)return p==e;i|=2,_.set(t,e);var f=a(h(t),h(e),i,u,c,_);return _.delete(t),f;case"[object Symbol]":if(d)return d.call(t)==d.call(e)}return!1}},"./node_modules/lodash/_equalObjects.js":function(t,e,s){var i=s("./node_modules/lodash/_getAllKeys.js"),o=Object.prototype.hasOwnProperty;t.exports=function(t,e,s,n,a,r){var l=1&s,u=i(t),d=u.length;if(d!=i(e).length&&!l)return!1;for(var c=d;c--;){var _=u[c];if(!(l?_ in e:o.call(e,_)))return!1}var h=r.get(t);if(h&&r.get(e))return h==e;var m=!0;r.set(t,e),r.set(e,t);for(var p=l;++c<d;){var f=t[_=u[c]],v=e[_];if(n)var g=l?n(v,f,_,e,t,r):n(f,v,_,t,e,r);if(!(void 0===g?f===v||a(f,v,s,n,r):g)){m=!1;break}p||(p="constructor"==_)}if(m&&!p){var b=t.constructor,y=e.constructor;b==y||!("constructor"in t)||!("constructor"in e)||"function"==typeof b&&b instanceof b&&"function"==typeof y&&y instanceof y||(m=!1)}return r.delete(t),r.delete(e),m}},"./node_modules/lodash/_freeGlobal.js":function(t,e,s){(function(e){var s="object"==typeof e&&e&&e.Object===Object&&e;t.exports=s}).call(this,s("./node_modules/webpack/buildin/global.js"))},"./node_modules/lodash/_getAllKeys.js":function(t,e,s){var i=s("./node_modules/lodash/_baseGetAllKeys.js"),o=s("./node_modules/lodash/_getSymbols.js"),n=s("./node_modules/lodash/keys.js");t.exports=function(t){return i(t,n,o)}},"./node_modules/lodash/_getMapData.js":function(t,e,s){var i=s("./node_modules/lodash/_isKeyable.js");t.exports=function(t,e){var s=t.__data__;return i(e)?s["string"==typeof e?"string":"hash"]:s.map}},"./node_modules/lodash/_getMatchData.js":function(t,e,s){var i=s("./node_modules/lodash/_isStrictComparable.js"),o=s("./node_modules/lodash/keys.js");t.exports=function(t){for(var e=o(t),s=e.length;s--;){var n=e[s],a=t[n];e[s]=[n,a,i(a)]}return e}},"./node_modules/lodash/_getNative.js":function(t,e,s){var i=s("./node_modules/lodash/_baseIsNative.js"),o=s("./node_modules/lodash/_getValue.js");t.exports=function(t,e){var s=o(t,e);return i(s)?s:void 0}},"./node_modules/lodash/_getRawTag.js":function(t,e,s){var i=s("./node_modules/lodash/_Symbol.js"),o=Object.prototype,n=o.hasOwnProperty,a=o.toString,r=i?i.toStringTag:void 0;t.exports=function(t){var e=n.call(t,r),s=t[r];try{t[r]=void 0;var i=!0}catch(t){}var o=a.call(t);return i&&(e?t[r]=s:delete t[r]),o}},"./node_modules/lodash/_getSymbols.js":function(t,e,s){var i=s("./node_modules/lodash/_arrayFilter.js"),o=s("./node_modules/lodash/stubArray.js"),n=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,r=a?function(t){return null==t?[]:(t=Object(t),i(a(t),(function(e){return n.call(t,e)})))}:o;t.exports=r},"./node_modules/lodash/_getTag.js":function(t,e,s){var i=s("./node_modules/lodash/_DataView.js"),o=s("./node_modules/lodash/_Map.js"),n=s("./node_modules/lodash/_Promise.js"),a=s("./node_modules/lodash/_Set.js"),r=s("./node_modules/lodash/_WeakMap.js"),l=s("./node_modules/lodash/_baseGetTag.js"),u=s("./node_modules/lodash/_toSource.js"),d=u(i),c=u(o),_=u(n),h=u(a),m=u(r),p=l;(i&&"[object DataView]"!=p(new i(new ArrayBuffer(1)))||o&&"[object Map]"!=p(new o)||n&&"[object Promise]"!=p(n.resolve())||a&&"[object Set]"!=p(new a)||r&&"[object WeakMap]"!=p(new r))&&(p=function(t){var e=l(t),s="[object Object]"==e?t.constructor:void 0,i=s?u(s):"";if(i)switch(i){case d:return"[object DataView]";case c:return"[object Map]";case _:return"[object Promise]";case h:return"[object Set]";case m:return"[object WeakMap]"}return e}),t.exports=p},"./node_modules/lodash/_getValue.js":function(t,e){t.exports=function(t,e){return null==t?void 0:t[e]}},"./node_modules/lodash/_hasPath.js":function(t,e,s){var i=s("./node_modules/lodash/_castPath.js"),o=s("./node_modules/lodash/isArguments.js"),n=s("./node_modules/lodash/isArray.js"),a=s("./node_modules/lodash/_isIndex.js"),r=s("./node_modules/lodash/isLength.js"),l=s("./node_modules/lodash/_toKey.js");t.exports=function(t,e,s){for(var u=-1,d=(e=i(e,t)).length,c=!1;++u<d;){var _=l(e[u]);if(!(c=null!=t&&s(t,_)))break;t=t[_]}return c||++u!=d?c:!!(d=null==t?0:t.length)&&r(d)&&a(_,d)&&(n(t)||o(t))}},"./node_modules/lodash/_hashClear.js":function(t,e,s){var i=s("./node_modules/lodash/_nativeCreate.js");t.exports=function(){this.__data__=i?i(null):{},this.size=0}},"./node_modules/lodash/_hashDelete.js":function(t,e){t.exports=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}},"./node_modules/lodash/_hashGet.js":function(t,e,s){var i=s("./node_modules/lodash/_nativeCreate.js"),o=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;if(i){var s=e[t];return"__lodash_hash_undefined__"===s?void 0:s}return o.call(e,t)?e[t]:void 0}},"./node_modules/lodash/_hashHas.js":function(t,e,s){var i=s("./node_modules/lodash/_nativeCreate.js"),o=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;return i?void 0!==e[t]:o.call(e,t)}},"./node_modules/lodash/_hashSet.js":function(t,e,s){var i=s("./node_modules/lodash/_nativeCreate.js");t.exports=function(t,e){var s=this.__data__;return this.size+=this.has(t)?0:1,s[t]=i&&void 0===e?"__lodash_hash_undefined__":e,this}},"./node_modules/lodash/_isIndex.js":function(t,e){var s=/^(?:0|[1-9]\d*)$/;t.exports=function(t,e){var i=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==i||"symbol"!=i&&s.test(t))&&t>-1&&t%1==0&&t<e}},"./node_modules/lodash/_isIterateeCall.js":function(t,e,s){var i=s("./node_modules/lodash/eq.js"),o=s("./node_modules/lodash/isArrayLike.js"),n=s("./node_modules/lodash/_isIndex.js"),a=s("./node_modules/lodash/isObject.js");t.exports=function(t,e,s){if(!a(s))return!1;var r=typeof e;return!!("number"==r?o(s)&&n(e,s.length):"string"==r&&e in s)&&i(s[e],t)}},"./node_modules/lodash/_isKey.js":function(t,e,s){var i=s("./node_modules/lodash/isArray.js"),o=s("./node_modules/lodash/isSymbol.js"),n=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;t.exports=function(t,e){if(i(t))return!1;var s=typeof t;return!("number"!=s&&"symbol"!=s&&"boolean"!=s&&null!=t&&!o(t))||(a.test(t)||!n.test(t)||null!=e&&t in Object(e))}},"./node_modules/lodash/_isKeyable.js":function(t,e){t.exports=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}},"./node_modules/lodash/_isMasked.js":function(t,e,s){var i,o=s("./node_modules/lodash/_coreJsData.js"),n=(i=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+i:"";t.exports=function(t){return!!n&&n in t}},"./node_modules/lodash/_isPrototype.js":function(t,e){var s=Object.prototype;t.exports=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||s)}},"./node_modules/lodash/_isStrictComparable.js":function(t,e,s){var i=s("./node_modules/lodash/isObject.js");t.exports=function(t){return t==t&&!i(t)}},"./node_modules/lodash/_listCacheClear.js":function(t,e){t.exports=function(){this.__data__=[],this.size=0}},"./node_modules/lodash/_listCacheDelete.js":function(t,e,s){var i=s("./node_modules/lodash/_assocIndexOf.js"),o=Array.prototype.splice;t.exports=function(t){var e=this.__data__,s=i(e,t);return!(s<0)&&(s==e.length-1?e.pop():o.call(e,s,1),--this.size,!0)}},"./node_modules/lodash/_listCacheGet.js":function(t,e,s){var i=s("./node_modules/lodash/_assocIndexOf.js");t.exports=function(t){var e=this.__data__,s=i(e,t);return s<0?void 0:e[s][1]}},"./node_modules/lodash/_listCacheHas.js":function(t,e,s){var i=s("./node_modules/lodash/_assocIndexOf.js");t.exports=function(t){return i(this.__data__,t)>-1}},"./node_modules/lodash/_listCacheSet.js":function(t,e,s){var i=s("./node_modules/lodash/_assocIndexOf.js");t.exports=function(t,e){var s=this.__data__,o=i(s,t);return o<0?(++this.size,s.push([t,e])):s[o][1]=e,this}},"./node_modules/lodash/_mapCacheClear.js":function(t,e,s){var i=s("./node_modules/lodash/_Hash.js"),o=s("./node_modules/lodash/_ListCache.js"),n=s("./node_modules/lodash/_Map.js");t.exports=function(){this.size=0,this.__data__={hash:new i,map:new(n||o),string:new i}}},"./node_modules/lodash/_mapCacheDelete.js":function(t,e,s){var i=s("./node_modules/lodash/_getMapData.js");t.exports=function(t){var e=i(this,t).delete(t);return this.size-=e?1:0,e}},"./node_modules/lodash/_mapCacheGet.js":function(t,e,s){var i=s("./node_modules/lodash/_getMapData.js");t.exports=function(t){return i(this,t).get(t)}},"./node_modules/lodash/_mapCacheHas.js":function(t,e,s){var i=s("./node_modules/lodash/_getMapData.js");t.exports=function(t){return i(this,t).has(t)}},"./node_modules/lodash/_mapCacheSet.js":function(t,e,s){var i=s("./node_modules/lodash/_getMapData.js");t.exports=function(t,e){var s=i(this,t),o=s.size;return s.set(t,e),this.size+=s.size==o?0:1,this}},"./node_modules/lodash/_mapToArray.js":function(t,e){t.exports=function(t){var e=-1,s=Array(t.size);return t.forEach((function(t,i){s[++e]=[i,t]})),s}},"./node_modules/lodash/_matchesStrictComparable.js":function(t,e){t.exports=function(t,e){return function(s){return null!=s&&(s[t]===e&&(void 0!==e||t in Object(s)))}}},"./node_modules/lodash/_memoizeCapped.js":function(t,e,s){var i=s("./node_modules/lodash/memoize.js");t.exports=function(t){var e=i(t,(function(t){return 500===s.size&&s.clear(),t})),s=e.cache;return e}},"./node_modules/lodash/_nativeCreate.js":function(t,e,s){var i=s("./node_modules/lodash/_getNative.js")(Object,"create");t.exports=i},"./node_modules/lodash/_nativeKeys.js":function(t,e,s){var i=s("./node_modules/lodash/_overArg.js")(Object.keys,Object);t.exports=i},"./node_modules/lodash/_nodeUtil.js":function(t,e,s){(function(t){var i=s("./node_modules/lodash/_freeGlobal.js"),o=e&&!e.nodeType&&e,n=o&&"object"==typeof t&&t&&!t.nodeType&&t,a=n&&n.exports===o&&i.process,r=function(){try{var t=n&&n.require&&n.require("util").types;return t||a&&a.binding&&a.binding("util")}catch(t){}}();t.exports=r}).call(this,s("./node_modules/webpack/buildin/module.js")(t))},"./node_modules/lodash/_objectToString.js":function(t,e){var s=Object.prototype.toString;t.exports=function(t){return s.call(t)}},"./node_modules/lodash/_overArg.js":function(t,e){t.exports=function(t,e){return function(s){return t(e(s))}}},"./node_modules/lodash/_root.js":function(t,e,s){var i=s("./node_modules/lodash/_freeGlobal.js"),o="object"==typeof self&&self&&self.Object===Object&&self,n=i||o||Function("return this")();t.exports=n},"./node_modules/lodash/_setCacheAdd.js":function(t,e){t.exports=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this}},"./node_modules/lodash/_setCacheHas.js":function(t,e){t.exports=function(t){return this.__data__.has(t)}},"./node_modules/lodash/_setToArray.js":function(t,e){t.exports=function(t){var e=-1,s=Array(t.size);return t.forEach((function(t){s[++e]=t})),s}},"./node_modules/lodash/_stackClear.js":function(t,e,s){var i=s("./node_modules/lodash/_ListCache.js");t.exports=function(){this.__data__=new i,this.size=0}},"./node_modules/lodash/_stackDelete.js":function(t,e){t.exports=function(t){var e=this.__data__,s=e.delete(t);return this.size=e.size,s}},"./node_modules/lodash/_stackGet.js":function(t,e){t.exports=function(t){return this.__data__.get(t)}},"./node_modules/lodash/_stackHas.js":function(t,e){t.exports=function(t){return this.__data__.has(t)}},"./node_modules/lodash/_stackSet.js":function(t,e,s){var i=s("./node_modules/lodash/_ListCache.js"),o=s("./node_modules/lodash/_Map.js"),n=s("./node_modules/lodash/_MapCache.js");t.exports=function(t,e){var s=this.__data__;if(s instanceof i){var a=s.__data__;if(!o||a.length<199)return a.push([t,e]),this.size=++s.size,this;s=this.__data__=new n(a)}return s.set(t,e),this.size=s.size,this}},"./node_modules/lodash/_stringToPath.js":function(t,e,s){var i=s("./node_modules/lodash/_memoizeCapped.js"),o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,n=/\\(\\)?/g,a=i((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(o,(function(t,s,i,o){e.push(i?o.replace(n,"$1"):s||t)})),e}));t.exports=a},"./node_modules/lodash/_toKey.js":function(t,e,s){var i=s("./node_modules/lodash/isSymbol.js");t.exports=function(t){if("string"==typeof t||i(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}},"./node_modules/lodash/_toSource.js":function(t,e){var s=Function.prototype.toString;t.exports=function(t){if(null!=t){try{return s.call(t)}catch(t){}try{return t+""}catch(t){}}return""}},"./node_modules/lodash/chunk.js":function(t,e,s){var i=s("./node_modules/lodash/_baseSlice.js"),o=s("./node_modules/lodash/_isIterateeCall.js"),n=s("./node_modules/lodash/toInteger.js"),a=Math.ceil,r=Math.max;t.exports=function(t,e,s){e=(s?o(t,e,s):void 0===e)?1:r(n(e),0);var l=null==t?0:t.length;if(!l||e<1)return[];for(var u=0,d=0,c=Array(a(l/e));u<l;)c[d++]=i(t,u,u+=e);return c}},"./node_modules/lodash/eq.js":function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},"./node_modules/lodash/find.js":function(t,e,s){var i=s("./node_modules/lodash/_createFind.js")(s("./node_modules/lodash/findIndex.js"));t.exports=i},"./node_modules/lodash/findIndex.js":function(t,e,s){var i=s("./node_modules/lodash/_baseFindIndex.js"),o=s("./node_modules/lodash/_baseIteratee.js"),n=s("./node_modules/lodash/toInteger.js"),a=Math.max;t.exports=function(t,e,s){var r=null==t?0:t.length;if(!r)return-1;var l=null==s?0:n(s);return l<0&&(l=a(r+l,0)),i(t,o(e,3),l)}},"./node_modules/lodash/get.js":function(t,e,s){var i=s("./node_modules/lodash/_baseGet.js");t.exports=function(t,e,s){var o=null==t?void 0:i(t,e);return void 0===o?s:o}},"./node_modules/lodash/hasIn.js":function(t,e,s){var i=s("./node_modules/lodash/_baseHasIn.js"),o=s("./node_modules/lodash/_hasPath.js");t.exports=function(t,e){return null!=t&&o(t,e,i)}},"./node_modules/lodash/identity.js":function(t,e){t.exports=function(t){return t}},"./node_modules/lodash/isArguments.js":function(t,e,s){var i=s("./node_modules/lodash/_baseIsArguments.js"),o=s("./node_modules/lodash/isObjectLike.js"),n=Object.prototype,a=n.hasOwnProperty,r=n.propertyIsEnumerable,l=i(function(){return arguments}())?i:function(t){return o(t)&&a.call(t,"callee")&&!r.call(t,"callee")};t.exports=l},"./node_modules/lodash/isArray.js":function(t,e){var s=Array.isArray;t.exports=s},"./node_modules/lodash/isArrayLike.js":function(t,e,s){var i=s("./node_modules/lodash/isFunction.js"),o=s("./node_modules/lodash/isLength.js");t.exports=function(t){return null!=t&&o(t.length)&&!i(t)}},"./node_modules/lodash/isBuffer.js":function(t,e,s){(function(t){var i=s("./node_modules/lodash/_root.js"),o=s("./node_modules/lodash/stubFalse.js"),n=e&&!e.nodeType&&e,a=n&&"object"==typeof t&&t&&!t.nodeType&&t,r=a&&a.exports===n?i.Buffer:void 0,l=(r?r.isBuffer:void 0)||o;t.exports=l}).call(this,s("./node_modules/webpack/buildin/module.js")(t))},"./node_modules/lodash/isFunction.js":function(t,e,s){var i=s("./node_modules/lodash/_baseGetTag.js"),o=s("./node_modules/lodash/isObject.js");t.exports=function(t){if(!o(t))return!1;var e=i(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},"./node_modules/lodash/isLength.js":function(t,e){t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},"./node_modules/lodash/isObject.js":function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},"./node_modules/lodash/isObjectLike.js":function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},"./node_modules/lodash/isSymbol.js":function(t,e,s){var i=s("./node_modules/lodash/_baseGetTag.js"),o=s("./node_modules/lodash/isObjectLike.js");t.exports=function(t){return"symbol"==typeof t||o(t)&&"[object Symbol]"==i(t)}},"./node_modules/lodash/isTypedArray.js":function(t,e,s){var i=s("./node_modules/lodash/_baseIsTypedArray.js"),o=s("./node_modules/lodash/_baseUnary.js"),n=s("./node_modules/lodash/_nodeUtil.js"),a=n&&n.isTypedArray,r=a?o(a):i;t.exports=r},"./node_modules/lodash/keys.js":function(t,e,s){var i=s("./node_modules/lodash/_arrayLikeKeys.js"),o=s("./node_modules/lodash/_baseKeys.js"),n=s("./node_modules/lodash/isArrayLike.js");t.exports=function(t){return n(t)?i(t):o(t)}},"./node_modules/lodash/memoize.js":function(t,e,s){var i=s("./node_modules/lodash/_MapCache.js");function o(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var s=function(){var i=arguments,o=e?e.apply(this,i):i[0],n=s.cache;if(n.has(o))return n.get(o);var a=t.apply(this,i);return s.cache=n.set(o,a)||n,a};return s.cache=new(o.Cache||i),s}o.Cache=i,t.exports=o},"./node_modules/lodash/property.js":function(t,e,s){var i=s("./node_modules/lodash/_baseProperty.js"),o=s("./node_modules/lodash/_basePropertyDeep.js"),n=s("./node_modules/lodash/_isKey.js"),a=s("./node_modules/lodash/_toKey.js");t.exports=function(t){return n(t)?i(a(t)):o(t)}},"./node_modules/lodash/stubArray.js":function(t,e){t.exports=function(){return[]}},"./node_modules/lodash/stubFalse.js":function(t,e){t.exports=function(){return!1}},"./node_modules/lodash/toFinite.js":function(t,e,s){var i=s("./node_modules/lodash/toNumber.js");t.exports=function(t){return t?(t=i(t))===1/0||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}},"./node_modules/lodash/toInteger.js":function(t,e,s){var i=s("./node_modules/lodash/toFinite.js");t.exports=function(t){var e=i(t),s=e%1;return e==e?s?e-s:e:0}},"./node_modules/lodash/toNumber.js":function(t,e,s){var i=s("./node_modules/lodash/isObject.js"),o=s("./node_modules/lodash/isSymbol.js"),n=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(o(t))return NaN;if(i(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=i(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(n,"");var s=r.test(t);return s||l.test(t)?u(t.slice(2),s?2:8):a.test(t)?NaN:+t}},"./node_modules/lodash/toString.js":function(t,e,s){var i=s("./node_modules/lodash/_baseToString.js");t.exports=function(t){return null==t?"":i(t)}},"./node_modules/moment/locale sync recursive \\b\\B":function(t,e){function s(t){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}s.keys=function(){return[]},s.resolve=s,t.exports=s,s.id="./node_modules/moment/locale sync recursive \\b\\B"},"./node_modules/moment/moment.js":function(t,e,s){(function(t){t.exports=function(){"use strict";var e,i;function o(){return e.apply(null,arguments)}function n(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function a(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function r(t){return void 0===t}function l(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function u(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function d(t,e){var s,i=[];for(s=0;s<t.length;++s)i.push(e(t[s],s));return i}function c(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function _(t,e){for(var s in e)c(e,s)&&(t[s]=e[s]);return c(e,"toString")&&(t.toString=e.toString),c(e,"valueOf")&&(t.valueOf=e.valueOf),t}function h(t,e,s,i){return xe(t,e,s,i,!0).utc()}function m(t){return null==t._pf&&(t._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),t._pf}function p(t){if(null==t._isValid){var e=m(t),s=i.call(e.parsedDateParts,(function(t){return null!=t})),o=!isNaN(t._d.getTime())&&e.overflow<0&&!e.empty&&!e.invalidMonth&&!e.invalidWeekday&&!e.weekdayMismatch&&!e.nullInput&&!e.invalidFormat&&!e.userInvalidated&&(!e.meridiem||e.meridiem&&s);if(t._strict&&(o=o&&0===e.charsLeftOver&&0===e.unusedTokens.length&&void 0===e.bigHour),null!=Object.isFrozen&&Object.isFrozen(t))return o;t._isValid=o}return t._isValid}function f(t){var e=h(NaN);return null!=t?_(m(e),t):m(e).userInvalidated=!0,e}i=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),s=e.length>>>0,i=0;i<s;i++)if(i in e&&t.call(this,e[i],i,e))return!0;return!1};var v=o.momentProperties=[];function g(t,e){var s,i,o;if(r(e._isAMomentObject)||(t._isAMomentObject=e._isAMomentObject),r(e._i)||(t._i=e._i),r(e._f)||(t._f=e._f),r(e._l)||(t._l=e._l),r(e._strict)||(t._strict=e._strict),r(e._tzm)||(t._tzm=e._tzm),r(e._isUTC)||(t._isUTC=e._isUTC),r(e._offset)||(t._offset=e._offset),r(e._pf)||(t._pf=m(e)),r(e._locale)||(t._locale=e._locale),v.length>0)for(s=0;s<v.length;s++)r(o=e[i=v[s]])||(t[i]=o);return t}var b=!1;function y(t){g(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===b&&(b=!0,o.updateOffset(this),b=!1)}function k(t){return t instanceof y||null!=t&&null!=t._isAMomentObject}function w(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function C(t){var e=+t,s=0;return 0!==e&&isFinite(e)&&(s=w(e)),s}function x(t,e,s){var i,o=Math.min(t.length,e.length),n=Math.abs(t.length-e.length),a=0;for(i=0;i<o;i++)(s&&t[i]!==e[i]||!s&&C(t[i])!==C(e[i]))&&a++;return a+n}function j(t){!1===o.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function S(t,e){var s=!0;return _((function(){if(null!=o.deprecationHandler&&o.deprecationHandler(null,t),s){for(var i,n=[],a=0;a<arguments.length;a++){if(i="","object"==typeof arguments[a]){for(var r in i+="\n["+a+"] ",arguments[0])i+=r+": "+arguments[0][r]+", ";i=i.slice(0,-2)}else i=arguments[a];n.push(i)}j(t+"\nArguments: "+Array.prototype.slice.call(n).join("")+"\n"+(new Error).stack),s=!1}return e.apply(this,arguments)}),e)}var P,D={};function M(t,e){null!=o.deprecationHandler&&o.deprecationHandler(t,e),D[t]||(j(e),D[t]=!0)}function O(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function T(t,e){var s,i=_({},t);for(s in e)c(e,s)&&(a(t[s])&&a(e[s])?(i[s]={},_(i[s],t[s]),_(i[s],e[s])):null!=e[s]?i[s]=e[s]:delete i[s]);for(s in t)c(t,s)&&!c(e,s)&&a(t[s])&&(i[s]=_({},i[s]));return i}function A(t){null!=t&&this.set(t)}o.suppressDeprecationWarnings=!1,o.deprecationHandler=null,P=Object.keys?Object.keys:function(t){var e,s=[];for(e in t)c(t,e)&&s.push(e);return s};var Y={};function I(t,e){var s=t.toLowerCase();Y[s]=Y[s+"s"]=Y[e]=t}function L(t){return"string"==typeof t?Y[t]||Y[t.toLowerCase()]:void 0}function N(t){var e,s,i={};for(s in t)c(t,s)&&(e=L(s))&&(i[e]=t[s]);return i}var E={};function H(t,e){E[t]=e}function R(t,e,s){var i=""+Math.abs(t),o=e-i.length;return(t>=0?s?"+":"":"-")+Math.pow(10,Math.max(0,o)).toString().substr(1)+i}var U=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,$=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,F={},W={};function q(t,e,s,i){var o=i;"string"==typeof i&&(o=function(){return this[i]()}),t&&(W[t]=o),e&&(W[e[0]]=function(){return R(o.apply(this,arguments),e[1],e[2])}),s&&(W[s]=function(){return this.localeData().ordinal(o.apply(this,arguments),t)})}function V(t,e){return t.isValid()?(e=z(e,t.localeData()),F[e]=F[e]||function(t){var e,s,i,o=t.match(U);for(e=0,s=o.length;e<s;e++)W[o[e]]?o[e]=W[o[e]]:o[e]=(i=o[e]).match(/\[[\s\S]/)?i.replace(/^\[|\]$/g,""):i.replace(/\\/g,"");return function(e){var i,n="";for(i=0;i<s;i++)n+=O(o[i])?o[i].call(e,t):o[i];return n}}(e),F[e](t)):t.localeData().invalidDate()}function z(t,e){var s=5;function i(t){return e.longDateFormat(t)||t}for($.lastIndex=0;s>=0&&$.test(t);)t=t.replace($,i),$.lastIndex=0,s-=1;return t}var G=/\d/,B=/\d\d/,Q=/\d{3}/,Z=/\d{4}/,J=/[+-]?\d{6}/,K=/\d\d?/,X=/\d\d\d\d?/,tt=/\d\d\d\d\d\d?/,et=/\d{1,3}/,st=/\d{1,4}/,it=/[+-]?\d{1,6}/,ot=/\d+/,nt=/[+-]?\d+/,at=/Z|[+-]\d\d:?\d\d/gi,rt=/Z|[+-]\d\d(?::?\d\d)?/gi,lt=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,ut={};function dt(t,e,s){ut[t]=O(e)?e:function(t,i){return t&&s?s:e}}function ct(t,e){return c(ut,t)?ut[t](e._strict,e._locale):new RegExp(_t(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(t,e,s,i,o){return e||s||i||o}))))}function _t(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var ht={};function mt(t,e){var s,i=e;for("string"==typeof t&&(t=[t]),l(e)&&(i=function(t,s){s[e]=C(t)}),s=0;s<t.length;s++)ht[t[s]]=i}function pt(t,e){mt(t,(function(t,s,i,o){i._w=i._w||{},e(t,i._w,i,o)}))}function ft(t,e,s){null!=e&&c(ht,t)&&ht[t](e,s._a,s,t)}function vt(t){return gt(t)?366:365}function gt(t){return t%4==0&&t%100!=0||t%400==0}q("Y",0,0,(function(){var t=this.year();return t<=9999?""+t:"+"+t})),q(0,["YY",2],0,(function(){return this.year()%100})),q(0,["YYYY",4],0,"year"),q(0,["YYYYY",5],0,"year"),q(0,["YYYYYY",6,!0],0,"year"),I("year","y"),H("year",1),dt("Y",nt),dt("YY",K,B),dt("YYYY",st,Z),dt("YYYYY",it,J),dt("YYYYYY",it,J),mt(["YYYYY","YYYYYY"],0),mt("YYYY",(function(t,e){e[0]=2===t.length?o.parseTwoDigitYear(t):C(t)})),mt("YY",(function(t,e){e[0]=o.parseTwoDigitYear(t)})),mt("Y",(function(t,e){e[0]=parseInt(t,10)})),o.parseTwoDigitYear=function(t){return C(t)+(C(t)>68?1900:2e3)};var bt,yt=kt("FullYear",!0);function kt(t,e){return function(s){return null!=s?(Ct(this,t,s),o.updateOffset(this,e),this):wt(this,t)}}function wt(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function Ct(t,e,s){t.isValid()&&!isNaN(s)&&("FullYear"===e&&gt(t.year())&&1===t.month()&&29===t.date()?t._d["set"+(t._isUTC?"UTC":"")+e](s,t.month(),xt(s,t.month())):t._d["set"+(t._isUTC?"UTC":"")+e](s))}function xt(t,e){if(isNaN(t)||isNaN(e))return NaN;var s,i=(e%(s=12)+s)%s;return t+=(e-i)/12,1===i?gt(t)?29:28:31-i%7%2}bt=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;e<this.length;++e)if(this[e]===t)return e;return-1},q("M",["MM",2],"Mo",(function(){return this.month()+1})),q("MMM",0,0,(function(t){return this.localeData().monthsShort(this,t)})),q("MMMM",0,0,(function(t){return this.localeData().months(this,t)})),I("month","M"),H("month",8),dt("M",K),dt("MM",K,B),dt("MMM",(function(t,e){return e.monthsShortRegex(t)})),dt("MMMM",(function(t,e){return e.monthsRegex(t)})),mt(["M","MM"],(function(t,e){e[1]=C(t)-1})),mt(["MMM","MMMM"],(function(t,e,s,i){var o=s._locale.monthsParse(t,i,s._strict);null!=o?e[1]=o:m(s).invalidMonth=t}));var jt=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,St="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Pt="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function Dt(t,e,s){var i,o,n,a=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],i=0;i<12;++i)n=h([2e3,i]),this._shortMonthsParse[i]=this.monthsShort(n,"").toLocaleLowerCase(),this._longMonthsParse[i]=this.months(n,"").toLocaleLowerCase();return s?"MMM"===e?-1!==(o=bt.call(this._shortMonthsParse,a))?o:null:-1!==(o=bt.call(this._longMonthsParse,a))?o:null:"MMM"===e?-1!==(o=bt.call(this._shortMonthsParse,a))||-1!==(o=bt.call(this._longMonthsParse,a))?o:null:-1!==(o=bt.call(this._longMonthsParse,a))||-1!==(o=bt.call(this._shortMonthsParse,a))?o:null}function Mt(t,e){var s;if(!t.isValid())return t;if("string"==typeof e)if(/^\d+$/.test(e))e=C(e);else if(!l(e=t.localeData().monthsParse(e)))return t;return s=Math.min(t.date(),xt(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,s),t}function Ot(t){return null!=t?(Mt(this,t),o.updateOffset(this,!0),this):wt(this,"Month")}var Tt=lt,At=lt;function Yt(){function t(t,e){return e.length-t.length}var e,s,i=[],o=[],n=[];for(e=0;e<12;e++)s=h([2e3,e]),i.push(this.monthsShort(s,"")),o.push(this.months(s,"")),n.push(this.months(s,"")),n.push(this.monthsShort(s,""));for(i.sort(t),o.sort(t),n.sort(t),e=0;e<12;e++)i[e]=_t(i[e]),o[e]=_t(o[e]);for(e=0;e<24;e++)n[e]=_t(n[e]);this._monthsRegex=new RegExp("^("+n.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+i.join("|")+")","i")}function It(t,e,s,i,o,n,a){var r;return t<100&&t>=0?(r=new Date(t+400,e,s,i,o,n,a),isFinite(r.getFullYear())&&r.setFullYear(t)):r=new Date(t,e,s,i,o,n,a),r}function Lt(t){var e;if(t<100&&t>=0){var s=Array.prototype.slice.call(arguments);s[0]=t+400,e=new Date(Date.UTC.apply(null,s)),isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t)}else e=new Date(Date.UTC.apply(null,arguments));return e}function Nt(t,e,s){var i=7+e-s;return-(7+Lt(t,0,i).getUTCDay()-e)%7+i-1}function Et(t,e,s,i,o){var n,a,r=1+7*(e-1)+(7+s-i)%7+Nt(t,i,o);return r<=0?a=vt(n=t-1)+r:r>vt(t)?(n=t+1,a=r-vt(t)):(n=t,a=r),{year:n,dayOfYear:a}}function Ht(t,e,s){var i,o,n=Nt(t.year(),e,s),a=Math.floor((t.dayOfYear()-n-1)/7)+1;return a<1?i=a+Rt(o=t.year()-1,e,s):a>Rt(t.year(),e,s)?(i=a-Rt(t.year(),e,s),o=t.year()+1):(o=t.year(),i=a),{week:i,year:o}}function Rt(t,e,s){var i=Nt(t,e,s),o=Nt(t+1,e,s);return(vt(t)-i+o)/7}function Ut(t,e){return t.slice(e,7).concat(t.slice(0,e))}q("w",["ww",2],"wo","week"),q("W",["WW",2],"Wo","isoWeek"),I("week","w"),I("isoWeek","W"),H("week",5),H("isoWeek",5),dt("w",K),dt("ww",K,B),dt("W",K),dt("WW",K,B),pt(["w","ww","W","WW"],(function(t,e,s,i){e[i.substr(0,1)]=C(t)})),q("d",0,"do","day"),q("dd",0,0,(function(t){return this.localeData().weekdaysMin(this,t)})),q("ddd",0,0,(function(t){return this.localeData().weekdaysShort(this,t)})),q("dddd",0,0,(function(t){return this.localeData().weekdays(this,t)})),q("e",0,0,"weekday"),q("E",0,0,"isoWeekday"),I("day","d"),I("weekday","e"),I("isoWeekday","E"),H("day",11),H("weekday",11),H("isoWeekday",11),dt("d",K),dt("e",K),dt("E",K),dt("dd",(function(t,e){return e.weekdaysMinRegex(t)})),dt("ddd",(function(t,e){return e.weekdaysShortRegex(t)})),dt("dddd",(function(t,e){return e.weekdaysRegex(t)})),pt(["dd","ddd","dddd"],(function(t,e,s,i){var o=s._locale.weekdaysParse(t,i,s._strict);null!=o?e.d=o:m(s).invalidWeekday=t})),pt(["d","e","E"],(function(t,e,s,i){e[i]=C(t)}));var $t="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Ft="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Wt="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function qt(t,e,s){var i,o,n,a=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)n=h([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(n,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(n,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(n,"").toLocaleLowerCase();return s?"dddd"===e?-1!==(o=bt.call(this._weekdaysParse,a))?o:null:"ddd"===e?-1!==(o=bt.call(this._shortWeekdaysParse,a))?o:null:-1!==(o=bt.call(this._minWeekdaysParse,a))?o:null:"dddd"===e?-1!==(o=bt.call(this._weekdaysParse,a))||-1!==(o=bt.call(this._shortWeekdaysParse,a))||-1!==(o=bt.call(this._minWeekdaysParse,a))?o:null:"ddd"===e?-1!==(o=bt.call(this._shortWeekdaysParse,a))||-1!==(o=bt.call(this._weekdaysParse,a))||-1!==(o=bt.call(this._minWeekdaysParse,a))?o:null:-1!==(o=bt.call(this._minWeekdaysParse,a))||-1!==(o=bt.call(this._weekdaysParse,a))||-1!==(o=bt.call(this._shortWeekdaysParse,a))?o:null}var Vt=lt,zt=lt,Gt=lt;function Bt(){function t(t,e){return e.length-t.length}var e,s,i,o,n,a=[],r=[],l=[],u=[];for(e=0;e<7;e++)s=h([2e3,1]).day(e),i=this.weekdaysMin(s,""),o=this.weekdaysShort(s,""),n=this.weekdays(s,""),a.push(i),r.push(o),l.push(n),u.push(i),u.push(o),u.push(n);for(a.sort(t),r.sort(t),l.sort(t),u.sort(t),e=0;e<7;e++)r[e]=_t(r[e]),l[e]=_t(l[e]),u[e]=_t(u[e]);this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function Qt(){return this.hours()%12||12}function Zt(t,e){q(t,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)}))}function Jt(t,e){return e._meridiemParse}q("H",["HH",2],0,"hour"),q("h",["hh",2],0,Qt),q("k",["kk",2],0,(function(){return this.hours()||24})),q("hmm",0,0,(function(){return""+Qt.apply(this)+R(this.minutes(),2)})),q("hmmss",0,0,(function(){return""+Qt.apply(this)+R(this.minutes(),2)+R(this.seconds(),2)})),q("Hmm",0,0,(function(){return""+this.hours()+R(this.minutes(),2)})),q("Hmmss",0,0,(function(){return""+this.hours()+R(this.minutes(),2)+R(this.seconds(),2)})),Zt("a",!0),Zt("A",!1),I("hour","h"),H("hour",13),dt("a",Jt),dt("A",Jt),dt("H",K),dt("h",K),dt("k",K),dt("HH",K,B),dt("hh",K,B),dt("kk",K,B),dt("hmm",X),dt("hmmss",tt),dt("Hmm",X),dt("Hmmss",tt),mt(["H","HH"],3),mt(["k","kk"],(function(t,e,s){var i=C(t);e[3]=24===i?0:i})),mt(["a","A"],(function(t,e,s){s._isPm=s._locale.isPM(t),s._meridiem=t})),mt(["h","hh"],(function(t,e,s){e[3]=C(t),m(s).bigHour=!0})),mt("hmm",(function(t,e,s){var i=t.length-2;e[3]=C(t.substr(0,i)),e[4]=C(t.substr(i)),m(s).bigHour=!0})),mt("hmmss",(function(t,e,s){var i=t.length-4,o=t.length-2;e[3]=C(t.substr(0,i)),e[4]=C(t.substr(i,2)),e[5]=C(t.substr(o)),m(s).bigHour=!0})),mt("Hmm",(function(t,e,s){var i=t.length-2;e[3]=C(t.substr(0,i)),e[4]=C(t.substr(i))})),mt("Hmmss",(function(t,e,s){var i=t.length-4,o=t.length-2;e[3]=C(t.substr(0,i)),e[4]=C(t.substr(i,2)),e[5]=C(t.substr(o))}));var Kt,Xt=kt("Hours",!0),te={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:St,monthsShort:Pt,week:{dow:0,doy:6},weekdays:$t,weekdaysMin:Wt,weekdaysShort:Ft,meridiemParse:/[ap]\.?m?\.?/i},ee={},se={};function ie(t){return t?t.toLowerCase().replace("_","-"):t}function oe(e){var i=null;if(!ee[e]&&void 0!==t&&t&&t.exports)try{i=Kt._abbr,s("./node_modules/moment/locale sync recursive \\b\\B")("./"+e),ne(i)}catch(t){}return ee[e]}function ne(t,e){var s;return t&&((s=r(e)?re(t):ae(t,e))?Kt=s:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+t+" not found. Did you forget to load it?")),Kt._abbr}function ae(t,e){if(null!==e){var s,i=te;if(e.abbr=t,null!=ee[t])M("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=ee[t]._config;else if(null!=e.parentLocale)if(null!=ee[e.parentLocale])i=ee[e.parentLocale]._config;else{if(null==(s=oe(e.parentLocale)))return se[e.parentLocale]||(se[e.parentLocale]=[]),se[e.parentLocale].push({name:t,config:e}),null;i=s._config}return ee[t]=new A(T(i,e)),se[t]&&se[t].forEach((function(t){ae(t.name,t.config)})),ne(t),ee[t]}return delete ee[t],null}function re(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Kt;if(!n(t)){if(e=oe(t))return e;t=[t]}return function(t){for(var e,s,i,o,n=0;n<t.length;){for(e=(o=ie(t[n]).split("-")).length,s=(s=ie(t[n+1]))?s.split("-"):null;e>0;){if(i=oe(o.slice(0,e).join("-")))return i;if(s&&s.length>=e&&x(o,s,!0)>=e-1)break;e--}n++}return Kt}(t)}function le(t){var e,s=t._a;return s&&-2===m(t).overflow&&(e=s[1]<0||s[1]>11?1:s[2]<1||s[2]>xt(s[0],s[1])?2:s[3]<0||s[3]>24||24===s[3]&&(0!==s[4]||0!==s[5]||0!==s[6])?3:s[4]<0||s[4]>59?4:s[5]<0||s[5]>59?5:s[6]<0||s[6]>999?6:-1,m(t)._overflowDayOfYear&&(e<0||e>2)&&(e=2),m(t)._overflowWeeks&&-1===e&&(e=7),m(t)._overflowWeekday&&-1===e&&(e=8),m(t).overflow=e),t}function ue(t,e,s){return null!=t?t:null!=e?e:s}function de(t){var e,s,i,n,a,r=[];if(!t._d){for(i=function(t){var e=new Date(o.now());return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}(t),t._w&&null==t._a[2]&&null==t._a[1]&&function(t){var e,s,i,o,n,a,r,l;if(null!=(e=t._w).GG||null!=e.W||null!=e.E)n=1,a=4,s=ue(e.GG,t._a[0],Ht(je(),1,4).year),i=ue(e.W,1),((o=ue(e.E,1))<1||o>7)&&(l=!0);else{n=t._locale._week.dow,a=t._locale._week.doy;var u=Ht(je(),n,a);s=ue(e.gg,t._a[0],u.year),i=ue(e.w,u.week),null!=e.d?((o=e.d)<0||o>6)&&(l=!0):null!=e.e?(o=e.e+n,(e.e<0||e.e>6)&&(l=!0)):o=n}i<1||i>Rt(s,n,a)?m(t)._overflowWeeks=!0:null!=l?m(t)._overflowWeekday=!0:(r=Et(s,i,o,n,a),t._a[0]=r.year,t._dayOfYear=r.dayOfYear)}(t),null!=t._dayOfYear&&(a=ue(t._a[0],i[0]),(t._dayOfYear>vt(a)||0===t._dayOfYear)&&(m(t)._overflowDayOfYear=!0),s=Lt(a,0,t._dayOfYear),t._a[1]=s.getUTCMonth(),t._a[2]=s.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=r[e]=i[e];for(;e<7;e++)t._a[e]=r[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[3]&&0===t._a[4]&&0===t._a[5]&&0===t._a[6]&&(t._nextDay=!0,t._a[3]=0),t._d=(t._useUTC?Lt:It).apply(null,r),n=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[3]=24),t._w&&void 0!==t._w.d&&t._w.d!==n&&(m(t).weekdayMismatch=!0)}}var ce=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,_e=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,he=/Z|[+-]\d\d(?::?\d\d)?/,me=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],pe=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],fe=/^\/?Date\((\-?\d+)/i;function ve(t){var e,s,i,o,n,a,r=t._i,l=ce.exec(r)||_e.exec(r);if(l){for(m(t).iso=!0,e=0,s=me.length;e<s;e++)if(me[e][1].exec(l[1])){o=me[e][0],i=!1!==me[e][2];break}if(null==o)return void(t._isValid=!1);if(l[3]){for(e=0,s=pe.length;e<s;e++)if(pe[e][1].exec(l[3])){n=(l[2]||" ")+pe[e][0];break}if(null==n)return void(t._isValid=!1)}if(!i&&null!=n)return void(t._isValid=!1);if(l[4]){if(!he.exec(l[4]))return void(t._isValid=!1);a="Z"}t._f=o+(n||"")+(a||""),we(t)}else t._isValid=!1}var ge=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function be(t){var e=parseInt(t,10);return e<=49?2e3+e:e<=999?1900+e:e}var ye={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function ke(t){var e,s,i,o,n,a,r,l=ge.exec(t._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(l){var u=(e=l[4],s=l[3],i=l[2],o=l[5],n=l[6],a=l[7],r=[be(e),Pt.indexOf(s),parseInt(i,10),parseInt(o,10),parseInt(n,10)],a&&r.push(parseInt(a,10)),r);if(!function(t,e,s){return!t||Ft.indexOf(t)===new Date(e[0],e[1],e[2]).getDay()||(m(s).weekdayMismatch=!0,s._isValid=!1,!1)}(l[1],u,t))return;t._a=u,t._tzm=function(t,e,s){if(t)return ye[t];if(e)return 0;var i=parseInt(s,10),o=i%100;return(i-o)/100*60+o}(l[8],l[9],l[10]),t._d=Lt.apply(null,t._a),t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),m(t).rfc2822=!0}else t._isValid=!1}function we(t){if(t._f!==o.ISO_8601)if(t._f!==o.RFC_2822){t._a=[],m(t).empty=!0;var e,s,i,n,a,r=""+t._i,l=r.length,u=0;for(i=z(t._f,t._locale).match(U)||[],e=0;e<i.length;e++)n=i[e],(s=(r.match(ct(n,t))||[])[0])&&((a=r.substr(0,r.indexOf(s))).length>0&&m(t).unusedInput.push(a),r=r.slice(r.indexOf(s)+s.length),u+=s.length),W[n]?(s?m(t).empty=!1:m(t).unusedTokens.push(n),ft(n,s,t)):t._strict&&!s&&m(t).unusedTokens.push(n);m(t).charsLeftOver=l-u,r.length>0&&m(t).unusedInput.push(r),t._a[3]<=12&&!0===m(t).bigHour&&t._a[3]>0&&(m(t).bigHour=void 0),m(t).parsedDateParts=t._a.slice(0),m(t).meridiem=t._meridiem,t._a[3]=function(t,e,s){var i;return null==s?e:null!=t.meridiemHour?t.meridiemHour(e,s):null!=t.isPM?((i=t.isPM(s))&&e<12&&(e+=12),i||12!==e||(e=0),e):e}(t._locale,t._a[3],t._meridiem),de(t),le(t)}else ke(t);else ve(t)}function Ce(t){var e=t._i,s=t._f;return t._locale=t._locale||re(t._l),null===e||void 0===s&&""===e?f({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),k(e)?new y(le(e)):(u(e)?t._d=e:n(s)?function(t){var e,s,i,o,n;if(0===t._f.length)return m(t).invalidFormat=!0,void(t._d=new Date(NaN));for(o=0;o<t._f.length;o++)n=0,e=g({},t),null!=t._useUTC&&(e._useUTC=t._useUTC),e._f=t._f[o],we(e),p(e)&&(n+=m(e).charsLeftOver,n+=10*m(e).unusedTokens.length,m(e).score=n,(null==i||n<i)&&(i=n,s=e));_(t,s||e)}(t):s?we(t):function(t){var e=t._i;r(e)?t._d=new Date(o.now()):u(e)?t._d=new Date(e.valueOf()):"string"==typeof e?function(t){var e=fe.exec(t._i);null===e?(ve(t),!1===t._isValid&&(delete t._isValid,ke(t),!1===t._isValid&&(delete t._isValid,o.createFromInputFallback(t)))):t._d=new Date(+e[1])}(t):n(e)?(t._a=d(e.slice(0),(function(t){return parseInt(t,10)})),de(t)):a(e)?function(t){if(!t._d){var e=N(t._i);t._a=d([e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],(function(t){return t&&parseInt(t,10)})),de(t)}}(t):l(e)?t._d=new Date(e):o.createFromInputFallback(t)}(t),p(t)||(t._d=null),t))}function xe(t,e,s,i,o){var r,l={};return!0!==s&&!1!==s||(i=s,s=void 0),(a(t)&&function(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}(t)||n(t)&&0===t.length)&&(t=void 0),l._isAMomentObject=!0,l._useUTC=l._isUTC=o,l._l=s,l._i=t,l._f=e,l._strict=i,(r=new y(le(Ce(l))))._nextDay&&(r.add(1,"d"),r._nextDay=void 0),r}function je(t,e,s,i){return xe(t,e,s,i,!1)}o.createFromInputFallback=S("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",(function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))})),o.ISO_8601=function(){},o.RFC_2822=function(){};var Se=S("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var t=je.apply(null,arguments);return this.isValid()&&t.isValid()?t<this?this:t:f()})),Pe=S("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var t=je.apply(null,arguments);return this.isValid()&&t.isValid()?t>this?this:t:f()}));function De(t,e){var s,i;if(1===e.length&&n(e[0])&&(e=e[0]),!e.length)return je();for(s=e[0],i=1;i<e.length;++i)e[i].isValid()&&!e[i][t](s)||(s=e[i]);return s}var Me=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Oe(t){var e=N(t),s=e.year||0,i=e.quarter||0,o=e.month||0,n=e.week||e.isoWeek||0,a=e.day||0,r=e.hour||0,l=e.minute||0,u=e.second||0,d=e.millisecond||0;this._isValid=function(t){for(var e in t)if(-1===bt.call(Me,e)||null!=t[e]&&isNaN(t[e]))return!1;for(var s=!1,i=0;i<Me.length;++i)if(t[Me[i]]){if(s)return!1;parseFloat(t[Me[i]])!==C(t[Me[i]])&&(s=!0)}return!0}(e),this._milliseconds=+d+1e3*u+6e4*l+1e3*r*60*60,this._days=+a+7*n,this._months=+o+3*i+12*s,this._data={},this._locale=re(),this._bubble()}function Te(t){return t instanceof Oe}function Ae(t){return t<0?-1*Math.round(-1*t):Math.round(t)}function Ye(t,e){q(t,0,0,(function(){var t=this.utcOffset(),s="+";return t<0&&(t=-t,s="-"),s+R(~~(t/60),2)+e+R(~~t%60,2)}))}Ye("Z",":"),Ye("ZZ",""),dt("Z",rt),dt("ZZ",rt),mt(["Z","ZZ"],(function(t,e,s){s._useUTC=!0,s._tzm=Le(rt,t)}));var Ie=/([\+\-]|\d\d)/gi;function Le(t,e){var s=(e||"").match(t);if(null===s)return null;var i=((s[s.length-1]||[])+"").match(Ie)||["-",0,0],o=60*i[1]+C(i[2]);return 0===o?0:"+"===i[0]?o:-o}function Ne(t,e){var s,i;return e._isUTC?(s=e.clone(),i=(k(t)||u(t)?t.valueOf():je(t).valueOf())-s.valueOf(),s._d.setTime(s._d.valueOf()+i),o.updateOffset(s,!1),s):je(t).local()}function Ee(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function He(){return!!this.isValid()&&this._isUTC&&0===this._offset}o.updateOffset=function(){};var Re=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Ue=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function $e(t,e){var s,i,o,n,a,r,u=t,d=null;return Te(t)?u={ms:t._milliseconds,d:t._days,M:t._months}:l(t)?(u={},e?u[e]=t:u.milliseconds=t):(d=Re.exec(t))?(s="-"===d[1]?-1:1,u={y:0,d:C(d[2])*s,h:C(d[3])*s,m:C(d[4])*s,s:C(d[5])*s,ms:C(Ae(1e3*d[6]))*s}):(d=Ue.exec(t))?(s="-"===d[1]?-1:1,u={y:Fe(d[2],s),M:Fe(d[3],s),w:Fe(d[4],s),d:Fe(d[5],s),h:Fe(d[6],s),m:Fe(d[7],s),s:Fe(d[8],s)}):null==u?u={}:"object"==typeof u&&("from"in u||"to"in u)&&(n=je(u.from),a=je(u.to),o=n.isValid()&&a.isValid()?(a=Ne(a,n),n.isBefore(a)?r=We(n,a):((r=We(a,n)).milliseconds=-r.milliseconds,r.months=-r.months),r):{milliseconds:0,months:0},(u={}).ms=o.milliseconds,u.M=o.months),i=new Oe(u),Te(t)&&c(t,"_locale")&&(i._locale=t._locale),i}function Fe(t,e){var s=t&&parseFloat(t.replace(",","."));return(isNaN(s)?0:s)*e}function We(t,e){var s={};return s.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(s.months,"M").isAfter(e)&&--s.months,s.milliseconds=+e-+t.clone().add(s.months,"M"),s}function qe(t,e){return function(s,i){var o;return null===i||isNaN(+i)||(M(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),o=s,s=i,i=o),Ve(this,$e(s="string"==typeof s?+s:s,i),t),this}}function Ve(t,e,s,i){var n=e._milliseconds,a=Ae(e._days),r=Ae(e._months);t.isValid()&&(i=null==i||i,r&&Mt(t,wt(t,"Month")+r*s),a&&Ct(t,"Date",wt(t,"Date")+a*s),n&&t._d.setTime(t._d.valueOf()+n*s),i&&o.updateOffset(t,a||r))}$e.fn=Oe.prototype,$e.invalid=function(){return $e(NaN)};var ze=qe(1,"add"),Ge=qe(-1,"subtract");function Be(t,e){var s=12*(e.year()-t.year())+(e.month()-t.month()),i=t.clone().add(s,"months");return-(s+(e-i<0?(e-i)/(i-t.clone().add(s-1,"months")):(e-i)/(t.clone().add(s+1,"months")-i)))||0}function Qe(t){var e;return void 0===t?this._locale._abbr:(null!=(e=re(t))&&(this._locale=e),this)}o.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",o.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Ze=S("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(t){return void 0===t?this.localeData():this.locale(t)}));function Je(){return this._locale}function Ke(t,e){return(t%e+e)%e}function Xe(t,e,s){return t<100&&t>=0?new Date(t+400,e,s)-126227808e5:new Date(t,e,s).valueOf()}function ts(t,e,s){return t<100&&t>=0?Date.UTC(t+400,e,s)-126227808e5:Date.UTC(t,e,s)}function es(t,e){q(0,[t,t.length],0,e)}function ss(t,e,s,i,o){var n;return null==t?Ht(this,i,o).year:(e>(n=Rt(t,i,o))&&(e=n),is.call(this,t,e,s,i,o))}function is(t,e,s,i,o){var n=Et(t,e,s,i,o),a=Lt(n.year,0,n.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}q(0,["gg",2],0,(function(){return this.weekYear()%100})),q(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),es("gggg","weekYear"),es("ggggg","weekYear"),es("GGGG","isoWeekYear"),es("GGGGG","isoWeekYear"),I("weekYear","gg"),I("isoWeekYear","GG"),H("weekYear",1),H("isoWeekYear",1),dt("G",nt),dt("g",nt),dt("GG",K,B),dt("gg",K,B),dt("GGGG",st,Z),dt("gggg",st,Z),dt("GGGGG",it,J),dt("ggggg",it,J),pt(["gggg","ggggg","GGGG","GGGGG"],(function(t,e,s,i){e[i.substr(0,2)]=C(t)})),pt(["gg","GG"],(function(t,e,s,i){e[i]=o.parseTwoDigitYear(t)})),q("Q",0,"Qo","quarter"),I("quarter","Q"),H("quarter",7),dt("Q",G),mt("Q",(function(t,e){e[1]=3*(C(t)-1)})),q("D",["DD",2],"Do","date"),I("date","D"),H("date",9),dt("D",K),dt("DD",K,B),dt("Do",(function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient})),mt(["D","DD"],2),mt("Do",(function(t,e){e[2]=C(t.match(K)[0])}));var os=kt("Date",!0);q("DDD",["DDDD",3],"DDDo","dayOfYear"),I("dayOfYear","DDD"),H("dayOfYear",4),dt("DDD",et),dt("DDDD",Q),mt(["DDD","DDDD"],(function(t,e,s){s._dayOfYear=C(t)})),q("m",["mm",2],0,"minute"),I("minute","m"),H("minute",14),dt("m",K),dt("mm",K,B),mt(["m","mm"],4);var ns=kt("Minutes",!1);q("s",["ss",2],0,"second"),I("second","s"),H("second",15),dt("s",K),dt("ss",K,B),mt(["s","ss"],5);var as,rs=kt("Seconds",!1);for(q("S",0,0,(function(){return~~(this.millisecond()/100)})),q(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),q(0,["SSS",3],0,"millisecond"),q(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),q(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),q(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),q(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),q(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),q(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),I("millisecond","ms"),H("millisecond",16),dt("S",et,G),dt("SS",et,B),dt("SSS",et,Q),as="SSSS";as.length<=9;as+="S")dt(as,ot);function ls(t,e){e[6]=C(1e3*("0."+t))}for(as="S";as.length<=9;as+="S")mt(as,ls);var us=kt("Milliseconds",!1);q("z",0,0,"zoneAbbr"),q("zz",0,0,"zoneName");var ds=y.prototype;function cs(t){return t}ds.add=ze,ds.calendar=function(t,e){var s=t||je(),i=Ne(s,this).startOf("day"),n=o.calendarFormat(this,i)||"sameElse",a=e&&(O(e[n])?e[n].call(this,s):e[n]);return this.format(a||this.localeData().calendar(n,this,je(s)))},ds.clone=function(){return new y(this)},ds.diff=function(t,e,s){var i,o,n;if(!this.isValid())return NaN;if(!(i=Ne(t,this)).isValid())return NaN;switch(o=6e4*(i.utcOffset()-this.utcOffset()),e=L(e)){case"year":n=Be(this,i)/12;break;case"month":n=Be(this,i);break;case"quarter":n=Be(this,i)/3;break;case"second":n=(this-i)/1e3;break;case"minute":n=(this-i)/6e4;break;case"hour":n=(this-i)/36e5;break;case"day":n=(this-i-o)/864e5;break;case"week":n=(this-i-o)/6048e5;break;default:n=this-i}return s?n:w(n)},ds.endOf=function(t){var e;if(void 0===(t=L(t))||"millisecond"===t||!this.isValid())return this;var s=this._isUTC?ts:Xe;switch(t){case"year":e=s(this.year()+1,0,1)-1;break;case"quarter":e=s(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":e=s(this.year(),this.month()+1,1)-1;break;case"week":e=s(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":e=s(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":e=s(this.year(),this.month(),this.date()+1)-1;break;case"hour":e=this._d.valueOf(),e+=36e5-Ke(e+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":e=this._d.valueOf(),e+=6e4-Ke(e,6e4)-1;break;case"second":e=this._d.valueOf(),e+=1e3-Ke(e,1e3)-1}return this._d.setTime(e),o.updateOffset(this,!0),this},ds.format=function(t){t||(t=this.isUtc()?o.defaultFormatUtc:o.defaultFormat);var e=V(this,t);return this.localeData().postformat(e)},ds.from=function(t,e){return this.isValid()&&(k(t)&&t.isValid()||je(t).isValid())?$e({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},ds.fromNow=function(t){return this.from(je(),t)},ds.to=function(t,e){return this.isValid()&&(k(t)&&t.isValid()||je(t).isValid())?$e({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},ds.toNow=function(t){return this.to(je(),t)},ds.get=function(t){return O(this[t=L(t)])?this[t]():this},ds.invalidAt=function(){return m(this).overflow},ds.isAfter=function(t,e){var s=k(t)?t:je(t);return!(!this.isValid()||!s.isValid())&&("millisecond"===(e=L(e)||"millisecond")?this.valueOf()>s.valueOf():s.valueOf()<this.clone().startOf(e).valueOf())},ds.isBefore=function(t,e){var s=k(t)?t:je(t);return!(!this.isValid()||!s.isValid())&&("millisecond"===(e=L(e)||"millisecond")?this.valueOf()<s.valueOf():this.clone().endOf(e).valueOf()<s.valueOf())},ds.isBetween=function(t,e,s,i){var o=k(t)?t:je(t),n=k(e)?e:je(e);return!!(this.isValid()&&o.isValid()&&n.isValid())&&("("===(i=i||"()")[0]?this.isAfter(o,s):!this.isBefore(o,s))&&(")"===i[1]?this.isBefore(n,s):!this.isAfter(n,s))},ds.isSame=function(t,e){var s,i=k(t)?t:je(t);return!(!this.isValid()||!i.isValid())&&("millisecond"===(e=L(e)||"millisecond")?this.valueOf()===i.valueOf():(s=i.valueOf(),this.clone().startOf(e).valueOf()<=s&&s<=this.clone().endOf(e).valueOf()))},ds.isSameOrAfter=function(t,e){return this.isSame(t,e)||this.isAfter(t,e)},ds.isSameOrBefore=function(t,e){return this.isSame(t,e)||this.isBefore(t,e)},ds.isValid=function(){return p(this)},ds.lang=Ze,ds.locale=Qe,ds.localeData=Je,ds.max=Pe,ds.min=Se,ds.parsingFlags=function(){return _({},m(this))},ds.set=function(t,e){if("object"==typeof t)for(var s=function(t){var e=[];for(var s in t)e.push({unit:s,priority:E[s]});return e.sort((function(t,e){return t.priority-e.priority})),e}(t=N(t)),i=0;i<s.length;i++)this[s[i].unit](t[s[i].unit]);else if(O(this[t=L(t)]))return this[t](e);return this},ds.startOf=function(t){var e;if(void 0===(t=L(t))||"millisecond"===t||!this.isValid())return this;var s=this._isUTC?ts:Xe;switch(t){case"year":e=s(this.year(),0,1);break;case"quarter":e=s(this.year(),this.month()-this.month()%3,1);break;case"month":e=s(this.year(),this.month(),1);break;case"week":e=s(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":e=s(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":e=s(this.year(),this.month(),this.date());break;case"hour":e=this._d.valueOf(),e-=Ke(e+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case"minute":e=this._d.valueOf(),e-=Ke(e,6e4);break;case"second":e=this._d.valueOf(),e-=Ke(e,1e3)}return this._d.setTime(e),o.updateOffset(this,!0),this},ds.subtract=Ge,ds.toArray=function(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]},ds.toObject=function(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}},ds.toDate=function(){return new Date(this.valueOf())},ds.toISOString=function(t){if(!this.isValid())return null;var e=!0!==t,s=e?this.clone().utc():this;return s.year()<0||s.year()>9999?V(s,e?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):O(Date.prototype.toISOString)?e?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",V(s,"Z")):V(s,e?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},ds.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var s="["+t+'("]',i=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",o=e+'[")]';return this.format(s+i+"-MM-DD[T]HH:mm:ss.SSS"+o)},ds.toJSON=function(){return this.isValid()?this.toISOString():null},ds.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},ds.unix=function(){return Math.floor(this.valueOf()/1e3)},ds.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},ds.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},ds.year=yt,ds.isLeapYear=function(){return gt(this.year())},ds.weekYear=function(t){return ss.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},ds.isoWeekYear=function(t){return ss.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)},ds.quarter=ds.quarters=function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},ds.month=Ot,ds.daysInMonth=function(){return xt(this.year(),this.month())},ds.week=ds.weeks=function(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")},ds.isoWeek=ds.isoWeeks=function(t){var e=Ht(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")},ds.weeksInYear=function(){var t=this.localeData()._week;return Rt(this.year(),t.dow,t.doy)},ds.isoWeeksInYear=function(){return Rt(this.year(),1,4)},ds.date=os,ds.day=ds.days=function(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=function(t,e){return"string"!=typeof t?t:isNaN(t)?"number"==typeof(t=e.weekdaysParse(t))?t:null:parseInt(t,10)}(t,this.localeData()),this.add(t-e,"d")):e},ds.weekday=function(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")},ds.isoWeekday=function(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=function(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7},ds.dayOfYear=function(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")},ds.hour=ds.hours=Xt,ds.minute=ds.minutes=ns,ds.second=ds.seconds=rs,ds.millisecond=ds.milliseconds=us,ds.utcOffset=function(t,e,s){var i,n=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if("string"==typeof t){if(null===(t=Le(rt,t)))return this}else Math.abs(t)<16&&!s&&(t*=60);return!this._isUTC&&e&&(i=Ee(this)),this._offset=t,this._isUTC=!0,null!=i&&this.add(i,"m"),n!==t&&(!e||this._changeInProgress?Ve(this,$e(t-n,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,o.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?n:Ee(this)},ds.utc=function(t){return this.utcOffset(0,t)},ds.local=function(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Ee(this),"m")),this},ds.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var t=Le(at,this._i);null!=t?this.utcOffset(t):this.utcOffset(0,!0)}return this},ds.hasAlignedHourOffset=function(t){return!!this.isValid()&&(t=t?je(t).utcOffset():0,(this.utcOffset()-t)%60==0)},ds.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},ds.isLocal=function(){return!!this.isValid()&&!this._isUTC},ds.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},ds.isUtc=He,ds.isUTC=He,ds.zoneAbbr=function(){return this._isUTC?"UTC":""},ds.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},ds.dates=S("dates accessor is deprecated. Use date instead.",os),ds.months=S("months accessor is deprecated. Use month instead",Ot),ds.years=S("years accessor is deprecated. Use year instead",yt),ds.zone=S("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()})),ds.isDSTShifted=S("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!r(this._isDSTShifted))return this._isDSTShifted;var t={};if(g(t,this),(t=Ce(t))._a){var e=t._isUTC?h(t._a):je(t._a);this._isDSTShifted=this.isValid()&&x(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}));var _s=A.prototype;function hs(t,e,s,i){var o=re(),n=h().set(i,e);return o[s](n,t)}function ms(t,e,s){if(l(t)&&(e=t,t=void 0),t=t||"",null!=e)return hs(t,e,s,"month");var i,o=[];for(i=0;i<12;i++)o[i]=hs(t,i,s,"month");return o}function ps(t,e,s,i){"boolean"==typeof t?(l(e)&&(s=e,e=void 0),e=e||""):(s=e=t,t=!1,l(e)&&(s=e,e=void 0),e=e||"");var o,n=re(),a=t?n._week.dow:0;if(null!=s)return hs(e,(s+a)%7,i,"day");var r=[];for(o=0;o<7;o++)r[o]=hs(e,(o+a)%7,i,"day");return r}_s.calendar=function(t,e,s){var i=this._calendar[t]||this._calendar.sameElse;return O(i)?i.call(e,s):i},_s.longDateFormat=function(t){var e=this._longDateFormat[t],s=this._longDateFormat[t.toUpperCase()];return e||!s?e:(this._longDateFormat[t]=s.replace(/MMMM|MM|DD|dddd/g,(function(t){return t.slice(1)})),this._longDateFormat[t])},_s.invalidDate=function(){return this._invalidDate},_s.ordinal=function(t){return this._ordinal.replace("%d",t)},_s.preparse=cs,_s.postformat=cs,_s.relativeTime=function(t,e,s,i){var o=this._relativeTime[s];return O(o)?o(t,e,s,i):o.replace(/%d/i,t)},_s.pastFuture=function(t,e){var s=this._relativeTime[t>0?"future":"past"];return O(s)?s(e):s.replace(/%s/i,e)},_s.set=function(t){var e,s;for(s in t)O(e=t[s])?this[s]=e:this["_"+s]=e;this._config=t,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},_s.months=function(t,e){return t?n(this._months)?this._months[t.month()]:this._months[(this._months.isFormat||jt).test(e)?"format":"standalone"][t.month()]:n(this._months)?this._months:this._months.standalone},_s.monthsShort=function(t,e){return t?n(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[jt.test(e)?"format":"standalone"][t.month()]:n(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},_s.monthsParse=function(t,e,s){var i,o,n;if(this._monthsParseExact)return Dt.call(this,t,e,s);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),i=0;i<12;i++){if(o=h([2e3,i]),s&&!this._longMonthsParse[i]&&(this._longMonthsParse[i]=new RegExp("^"+this.months(o,"").replace(".","")+"$","i"),this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(o,"").replace(".","")+"$","i")),s||this._monthsParse[i]||(n="^"+this.months(o,"")+"|^"+this.monthsShort(o,""),this._monthsParse[i]=new RegExp(n.replace(".",""),"i")),s&&"MMMM"===e&&this._longMonthsParse[i].test(t))return i;if(s&&"MMM"===e&&this._shortMonthsParse[i].test(t))return i;if(!s&&this._monthsParse[i].test(t))return i}},_s.monthsRegex=function(t){return this._monthsParseExact?(c(this,"_monthsRegex")||Yt.call(this),t?this._monthsStrictRegex:this._monthsRegex):(c(this,"_monthsRegex")||(this._monthsRegex=At),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)},_s.monthsShortRegex=function(t){return this._monthsParseExact?(c(this,"_monthsRegex")||Yt.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):(c(this,"_monthsShortRegex")||(this._monthsShortRegex=Tt),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)},_s.week=function(t){return Ht(t,this._week.dow,this._week.doy).week},_s.firstDayOfYear=function(){return this._week.doy},_s.firstDayOfWeek=function(){return this._week.dow},_s.weekdays=function(t,e){var s=n(this._weekdays)?this._weekdays:this._weekdays[t&&!0!==t&&this._weekdays.isFormat.test(e)?"format":"standalone"];return!0===t?Ut(s,this._week.dow):t?s[t.day()]:s},_s.weekdaysMin=function(t){return!0===t?Ut(this._weekdaysMin,this._week.dow):t?this._weekdaysMin[t.day()]:this._weekdaysMin},_s.weekdaysShort=function(t){return!0===t?Ut(this._weekdaysShort,this._week.dow):t?this._weekdaysShort[t.day()]:this._weekdaysShort},_s.weekdaysParse=function(t,e,s){var i,o,n;if(this._weekdaysParseExact)return qt.call(this,t,e,s);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(o=h([2e3,1]).day(i),s&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(o,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(o,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(o,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[i]||(n="^"+this.weekdays(o,"")+"|^"+this.weekdaysShort(o,"")+"|^"+this.weekdaysMin(o,""),this._weekdaysParse[i]=new RegExp(n.replace(".",""),"i")),s&&"dddd"===e&&this._fullWeekdaysParse[i].test(t))return i;if(s&&"ddd"===e&&this._shortWeekdaysParse[i].test(t))return i;if(s&&"dd"===e&&this._minWeekdaysParse[i].test(t))return i;if(!s&&this._weekdaysParse[i].test(t))return i}},_s.weekdaysRegex=function(t){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Bt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(c(this,"_weekdaysRegex")||(this._weekdaysRegex=Vt),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)},_s.weekdaysShortRegex=function(t){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Bt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(c(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=zt),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},_s.weekdaysMinRegex=function(t){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Bt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(c(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Gt),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},_s.isPM=function(t){return"p"===(t+"").toLowerCase().charAt(0)},_s.meridiem=function(t,e,s){return t>11?s?"pm":"PM":s?"am":"AM"},ne("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===C(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),o.lang=S("moment.lang is deprecated. Use moment.locale instead.",ne),o.langData=S("moment.langData is deprecated. Use moment.localeData instead.",re);var fs=Math.abs;function vs(t,e,s,i){var o=$e(e,s);return t._milliseconds+=i*o._milliseconds,t._days+=i*o._days,t._months+=i*o._months,t._bubble()}function gs(t){return t<0?Math.floor(t):Math.ceil(t)}function bs(t){return 4800*t/146097}function ys(t){return 146097*t/4800}function ks(t){return function(){return this.as(t)}}var ws=ks("ms"),Cs=ks("s"),xs=ks("m"),js=ks("h"),Ss=ks("d"),Ps=ks("w"),Ds=ks("M"),Ms=ks("Q"),Os=ks("y");function Ts(t){return function(){return this.isValid()?this._data[t]:NaN}}var As=Ts("milliseconds"),Ys=Ts("seconds"),Is=Ts("minutes"),Ls=Ts("hours"),Ns=Ts("days"),Es=Ts("months"),Hs=Ts("years"),Rs=Math.round,Us={ss:44,s:45,m:45,h:22,d:26,M:11};function $s(t,e,s,i,o){return o.relativeTime(e||1,!!s,t,i)}var Fs=Math.abs;function Ws(t){return(t>0)-(t<0)||+t}function qs(){if(!this.isValid())return this.localeData().invalidDate();var t,e,s=Fs(this._milliseconds)/1e3,i=Fs(this._days),o=Fs(this._months);t=w(s/60),e=w(t/60),s%=60,t%=60;var n=w(o/12),a=o%=12,r=i,l=e,u=t,d=s?s.toFixed(3).replace(/\.?0+$/,""):"",c=this.asSeconds();if(!c)return"P0D";var _=c<0?"-":"",h=Ws(this._months)!==Ws(c)?"-":"",m=Ws(this._days)!==Ws(c)?"-":"",p=Ws(this._milliseconds)!==Ws(c)?"-":"";return _+"P"+(n?h+n+"Y":"")+(a?h+a+"M":"")+(r?m+r+"D":"")+(l||u||d?"T":"")+(l?p+l+"H":"")+(u?p+u+"M":"")+(d?p+d+"S":"")}var Vs=Oe.prototype;return Vs.isValid=function(){return this._isValid},Vs.abs=function(){var t=this._data;return this._milliseconds=fs(this._milliseconds),this._days=fs(this._days),this._months=fs(this._months),t.milliseconds=fs(t.milliseconds),t.seconds=fs(t.seconds),t.minutes=fs(t.minutes),t.hours=fs(t.hours),t.months=fs(t.months),t.years=fs(t.years),this},Vs.add=function(t,e){return vs(this,t,e,1)},Vs.subtract=function(t,e){return vs(this,t,e,-1)},Vs.as=function(t){if(!this.isValid())return NaN;var e,s,i=this._milliseconds;if("month"===(t=L(t))||"quarter"===t||"year"===t)switch(e=this._days+i/864e5,s=this._months+bs(e),t){case"month":return s;case"quarter":return s/3;case"year":return s/12}else switch(e=this._days+Math.round(ys(this._months)),t){case"week":return e/7+i/6048e5;case"day":return e+i/864e5;case"hour":return 24*e+i/36e5;case"minute":return 1440*e+i/6e4;case"second":return 86400*e+i/1e3;case"millisecond":return Math.floor(864e5*e)+i;default:throw new Error("Unknown unit "+t)}},Vs.asMilliseconds=ws,Vs.asSeconds=Cs,Vs.asMinutes=xs,Vs.asHours=js,Vs.asDays=Ss,Vs.asWeeks=Ps,Vs.asMonths=Ds,Vs.asQuarters=Ms,Vs.asYears=Os,Vs.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*C(this._months/12):NaN},Vs._bubble=function(){var t,e,s,i,o,n=this._milliseconds,a=this._days,r=this._months,l=this._data;return n>=0&&a>=0&&r>=0||n<=0&&a<=0&&r<=0||(n+=864e5*gs(ys(r)+a),a=0,r=0),l.milliseconds=n%1e3,t=w(n/1e3),l.seconds=t%60,e=w(t/60),l.minutes=e%60,s=w(e/60),l.hours=s%24,a+=w(s/24),o=w(bs(a)),r+=o,a-=gs(ys(o)),i=w(r/12),r%=12,l.days=a,l.months=r,l.years=i,this},Vs.clone=function(){return $e(this)},Vs.get=function(t){return t=L(t),this.isValid()?this[t+"s"]():NaN},Vs.milliseconds=As,Vs.seconds=Ys,Vs.minutes=Is,Vs.hours=Ls,Vs.days=Ns,Vs.weeks=function(){return w(this.days()/7)},Vs.months=Es,Vs.years=Hs,Vs.humanize=function(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),s=function(t,e,s){var i=$e(t).abs(),o=Rs(i.as("s")),n=Rs(i.as("m")),a=Rs(i.as("h")),r=Rs(i.as("d")),l=Rs(i.as("M")),u=Rs(i.as("y")),d=o<=Us.ss&&["s",o]||o<Us.s&&["ss",o]||n<=1&&["m"]||n<Us.m&&["mm",n]||a<=1&&["h"]||a<Us.h&&["hh",a]||r<=1&&["d"]||r<Us.d&&["dd",r]||l<=1&&["M"]||l<Us.M&&["MM",l]||u<=1&&["y"]||["yy",u];return d[2]=e,d[3]=+t>0,d[4]=s,$s.apply(null,d)}(this,!t,e);return t&&(s=e.pastFuture(+this,s)),e.postformat(s)},Vs.toISOString=qs,Vs.toString=qs,Vs.toJSON=qs,Vs.locale=Qe,Vs.localeData=Je,Vs.toIsoString=S("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",qs),Vs.lang=Ze,q("X",0,0,"unix"),q("x",0,0,"valueOf"),dt("x",nt),dt("X",/[+-]?\d+(\.\d{1,3})?/),mt("X",(function(t,e,s){s._d=new Date(1e3*parseFloat(t,10))})),mt("x",(function(t,e,s){s._d=new Date(C(t))})),o.version="2.24.0",e=je,o.fn=ds,o.min=function(){var t=[].slice.call(arguments,0);return De("isBefore",t)},o.max=function(){var t=[].slice.call(arguments,0);return De("isAfter",t)},o.now=function(){return Date.now?Date.now():+new Date},o.utc=h,o.unix=function(t){return je(1e3*t)},o.months=function(t,e){return ms(t,e,"months")},o.isDate=u,o.locale=ne,o.invalid=f,o.duration=$e,o.isMoment=k,o.weekdays=function(t,e,s){return ps(t,e,s,"weekdays")},o.parseZone=function(){return je.apply(null,arguments).parseZone()},o.localeData=re,o.isDuration=Te,o.monthsShort=function(t,e){return ms(t,e,"monthsShort")},o.weekdaysMin=function(t,e,s){return ps(t,e,s,"weekdaysMin")},o.defineLocale=ae,o.updateLocale=function(t,e){if(null!=e){var s,i,o=te;null!=(i=oe(t))&&(o=i._config),e=T(o,e),(s=new A(e)).parentLocale=ee[t],ee[t]=s,ne(t)}else null!=ee[t]&&(null!=ee[t].parentLocale?ee[t]=ee[t].parentLocale:null!=ee[t]&&delete ee[t]);return ee[t]},o.locales=function(){return P(ee)},o.weekdaysShort=function(t,e,s){return ps(t,e,s,"weekdaysShort")},o.normalizeUnits=L,o.relativeTimeRounding=function(t){return void 0===t?Rs:"function"==typeof t&&(Rs=t,!0)},o.relativeTimeThreshold=function(t,e){return void 0!==Us[t]&&(void 0===e?Us[t]:(Us[t]=e,"s"===t&&(Us.ss=e-1),!0))},o.calendarFormat=function(t,e){var s=t.diff(e,"days",!0);return s<-6?"sameElse":s<-1?"lastWeek":s<0?"lastDay":s<1?"sameDay":s<2?"nextDay":s<7?"nextWeek":"sameElse"},o.prototype=ds,o.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},o}()}).call(this,s("./node_modules/webpack/buildin/module.js")(t))},"./node_modules/vue-loader/lib/runtime/componentNormalizer.js":function(t,e,s){"use strict";function i(t,e,s,i,o,n,a,r){var l,u="function"==typeof t?t.options:t;if(e&&(u.render=e,u.staticRenderFns=s,u._compiled=!0),i&&(u.functional=!0),n&&(u._scopeId="data-v-"+n),a?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),o&&o.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},u._ssrRegister=l):o&&(l=r?function(){o.call(this,this.$root.$options.shadowRoot)}:o),l)if(u.functional){u._injectStyles=l;var d=u.render;u.render=function(t,e){return l.call(e),d(t,e)}}else{var c=u.beforeCreate;u.beforeCreate=c?[].concat(c,l):[l]}return{exports:t,options:u}}s.d(e,"a",(function(){return i}))},"./node_modules/webpack/buildin/global.js":function(t,e){var s;s=function(){return this}();try{s=s||new Function("return this")()}catch(t){"object"==typeof window&&(s=window)}t.exports=s},"./node_modules/webpack/buildin/module.js":function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},"./node_modules/xss/lib/default.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/index.js").FilterCSS,o=s("./node_modules/cssfilter/lib/index.js").getDefaultWhiteList,n=s("./node_modules/xss/lib/util.js");function a(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]}}var r=new i;function l(t){return t.replace(u,"&lt;").replace(d,"&gt;")}var u=/</g,d=/>/g,c=/"/g,_=/&quot;/g,h=/&#([a-zA-Z0-9]*);?/gim,m=/&colon;?/gim,p=/&newline;?/gim,f=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi,v=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,g=/u\s*r\s*l\s*\(.*/gi;function b(t){return t.replace(c,"&quot;")}function y(t){return t.replace(_,'"')}function k(t){return t.replace(h,(function(t,e){return"x"===e[0]||"X"===e[0]?String.fromCharCode(parseInt(e.substr(1),16)):String.fromCharCode(parseInt(e,10))}))}function w(t){return t.replace(m,":").replace(p," ")}function C(t){for(var e="",s=0,i=t.length;s<i;s++)e+=t.charCodeAt(s)<32?" ":t.charAt(s);return n.trim(e)}function x(t){return t=C(t=w(t=k(t=y(t))))}function j(t){return t=l(t=b(t))}var S=/<!--[\s\S]*?-->/g;e.whiteList={a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","