Version Description
- October 3, 2022 =
- Improvement: Added configurable scan resume functionality to prevent scan failures on sites with intermittent connectivity issues
- Improvement: Added new scan result for vulnerabilities found in plugins that do not have patched versions available via WordPress.org
- Improvement: Implemented stand-alone MMDB reader for IP address lookups to prevent plugin conflicts and support additional PHP versions
- Improvement: Added option to disable looking up IP address locations via the Wordfence API
- Improvement: Prevented successful logins from resetting brute force counters
- Improvement: Clarified IPv6 diagnostic
- Improvement: Included maximum number of days in live traffic option text
- Fix: Made timezones consistent on firewall page
- Fix: Added "Use only IPv4 to start scans" option to search
- Fix: Prevented deprecation notices on PHP 8.1 when emailing the activity log
- Fix: Prevented warning on PHP 8 related to process owner diagnostic
- Fix: Prevented PHP Code Sniffer false positive related to T_BAD_CHARACTER
- Fix: Removed unsupported beta feed option
Download this release
Release Info
Developer | wfalexk |
Plugin | Wordfence Security – Firewall & Malware Scan |
Version | 7.7.0 |
Comparing to | |
See all releases |
Code changes from version 7.6.2 to 7.7.0
- css/{activity-report-widget.1663593635.css → activity-report-widget.1664811036.css} +0 -0
- css/{diff.1663593635.css → diff.1664811036.css} +0 -0
- css/{dt_table.1663593635.css → dt_table.1664811036.css} +0 -0
- css/{fullLog.1663593635.css → fullLog.1664811036.css} +0 -0
- css/{iptraf.1663593635.css → iptraf.1664811036.css} +0 -0
- css/{jquery-ui-timepicker-addon.1663593635.css → jquery-ui-timepicker-addon.1664811036.css} +0 -0
- css/{jquery-ui.min.1663593635.css → jquery-ui.min.1664811036.css} +0 -0
- css/{jquery-ui.structure.min.1663593635.css → jquery-ui.structure.min.1664811036.css} +0 -0
- css/{jquery-ui.theme.min.1663593635.css → jquery-ui.theme.min.1664811036.css} +0 -0
- css/license/{care-global.1663593635.css → care-global.1664811036.css} +0 -0
- css/license/{care.1663593635.css → care.1664811036.css} +0 -0
- css/license/{free-global.1663593635.css → free-global.1664811036.css} +0 -0
- css/license/{free.1663593635.css → free.1664811036.css} +0 -0
- css/license/{premium-global.1663593635.css → premium-global.1664811036.css} +0 -0
- css/license/{premium.1663593635.css → premium.1664811036.css} +0 -0
- css/license/{response-global.1663593635.css → response-global.1664811036.css} +0 -0
- css/license/{response-variables.1663593635.css → response-variables.1664811036.css} +0 -0
- css/license/{response.1663593635.css → response.1664811036.css} +0 -0
- css/{main.1663593635.css → main.1664811036.css} +0 -0
- css/{phpinfo.1663593635.css → phpinfo.1664811036.css} +0 -0
- css/{wf-adminbar.1663593635.css → wf-adminbar.1664811036.css} +0 -0
- css/{wf-colorbox.1663593635.css → wf-colorbox.1664811036.css} +0 -0
- css/{wf-font-awesome.1663593635.css → wf-font-awesome.1664811036.css} +0 -0
- css/{wf-global.1663593635.css → wf-global.1664811036.css} +0 -0
- css/{wf-ionicons.1663593635.css → wf-ionicons.1664811036.css} +0 -0
- css/{wf-onboarding.1663593635.css → wf-onboarding.1664811036.css} +0 -0
- css/{wf-roboto-font.1663593635.css → wf-roboto-font.1664811036.css} +0 -0
- css/{wfselect2.min.1663593635.css → wfselect2.min.1664811036.css} +0 -0
- css/{wordfenceBox.1663593635.css → wordfenceBox.1664811036.css} +0 -0
- js/{Chart.bundle.min.1663593635.js → Chart.bundle.min.1664811036.js} +0 -0
- js/{admin.1663593635.js → admin.1664811036.js} +0 -0
- js/{admin.ajaxWatcher.1663593635.js → admin.ajaxWatcher.1664811036.js} +0 -0
- js/{admin.liveTraffic.1663593635.js → admin.liveTraffic.1664811036.js} +0 -0
- js/{date.1663593635.js → date.1664811036.js} +0 -0
- js/{jquery-ui-timepicker-addon.1663593635.js → jquery-ui-timepicker-addon.1664811036.js} +0 -0
- js/{jquery.colorbox-min.1663593635.js → jquery.colorbox-min.1664811036.js} +0 -0
- js/{jquery.colorbox.1663593635.js → jquery.colorbox.1664811036.js} +0 -0
- js/{jquery.dataTables.min.1663593635.js → jquery.dataTables.min.1664811036.js} +0 -0
- js/{jquery.qrcode.min.1663593635.js → jquery.qrcode.min.1664811036.js} +0 -0
- js/{jquery.tmpl.min.1663593635.js → jquery.tmpl.min.1664811036.js} +0 -0
- js/{jquery.tools.min.1663593635.js → jquery.tools.min.1664811036.js} +0 -0
- js/{knockout-3.5.1.1663593635.js → knockout-3.5.1.1664811036.js} +0 -0
- js/{wfdashboard.1663593635.js → wfdashboard.1664811036.js} +0 -0
- js/{wfdropdown.1663593635.js → wfdropdown.1664811036.js} +0 -0
- js/{wfglobal.1663593635.js → wfglobal.1664811036.js} +0 -0
- js/{wfi18n.1663593635.js → wfi18n.1664811036.js} +0 -0
- js/{wfpopover.1663593635.js → wfpopover.1664811036.js} +0 -0
- js/{wfselect2.min.1663593635.js → wfselect2.min.1664811036.js} +0 -0
- languages/wordfence.po +1145 -1120
- lib/email_newIssues.php +3 -9
- lib/menu_options.php +4 -1
- lib/menu_scanner.php +1 -22
- lib/menu_tools_diagnostic.php +1 -13
- lib/wfAPI.php +1 -2
- lib/wfConfig.php +11 -12
- lib/wfDiagnostic.php +2 -2
- lib/wfIpLocation.php +65 -0
- lib/wfIpLocator.php +110 -0
- lib/wfScan.php +5 -1
- lib/wfScanEngine.php +56 -30
- lib/wfScanMonitor.php +131 -0
- lib/wfSupportController.php +12 -0
- lib/wfUpdateCheck.php +106 -206
- lib/wfUtils.php +77 -86
- lib/wordfenceClass.php +64 -60
- lib/wordfenceConstants.php +1 -1
- lib/wordfenceScanner.php +6 -12
- models/common/wfGeoIP2.php +0 -104
- modules/login-security/css/{admin-global.1663593635.css → admin-global.1664811036.css} +0 -0
- modules/login-security/css/{admin.1663593635.css → admin.1664811036.css} +0 -0
- modules/login-security/css/{colorbox.1663593635.css → colorbox.1664811036.css} +0 -0
- modules/login-security/css/{font-awesome.1663593635.css → font-awesome.1664811036.css} +0 -0
- modules/login-security/css/{ionicons.1663593635.css → ionicons.1664811036.css} +0 -0
- modules/login-security/css/{jquery-ui.min.1663593635.css → jquery-ui.min.1664811036.css} +0 -0
- modules/login-security/css/{jquery-ui.structure.min.1663593635.css → jquery-ui.structure.min.1664811036.css} +0 -0
- modules/login-security/css/{jquery-ui.theme.min.1663593635.css → jquery-ui.theme.min.1664811036.css} +0 -0
- modules/login-security/css/{login.1663593635.css → login.1664811036.css} +0 -0
- modules/login-security/js/{admin-global.1663593635.js → admin-global.1664811036.js} +0 -0
- modules/login-security/js/{admin.1663593635.js → admin.1664811036.js} +0 -0
- modules/login-security/js/{jquery.colorbox.1663593635.js → jquery.colorbox.1664811036.js} +0 -0
- modules/login-security/js/{jquery.colorbox.min.1663593635.js → jquery.colorbox.min.1664811036.js} +0 -0
- modules/login-security/js/{jquery.qrcode.min.1663593635.js → jquery.qrcode.min.1664811036.js} +0 -0
- modules/login-security/js/{jquery.tmpl.min.1663593635.js → jquery.tmpl.min.1664811036.js} +0 -0
- modules/login-security/js/{login.1663593635.js → login.1664811036.js} +0 -0
- modules/login-security/wordfence-login-security.php +2 -2
- readme.txt +16 -1
- vendor/autoload.php +2 -2
- vendor/composer/ClassLoader.php +40 -4
- vendor/composer/InstalledVersions.php +337 -0
- vendor/composer/autoload_classmap.php +1 -0
- vendor/composer/autoload_psr4.php +1 -5
- vendor/composer/autoload_real.php +9 -6
- vendor/composer/autoload_static.php +12 -33
- vendor/composer/ca-bundle/LICENSE +0 -19
- vendor/composer/ca-bundle/res/cacert.pem +0 -3401
- vendor/composer/ca-bundle/src/CaBundle.php +0 -308
- vendor/composer/installed.json +63 -237
- vendor/composer/installed.php +41 -0
- vendor/geoip2/geoip2/.gitmodules +0 -3
- vendor/geoip2/geoip2/.php_cs +0 -35
- vendor/geoip2/geoip2/LICENSE +0 -202
- vendor/geoip2/geoip2/src/Database/Reader.php +0 -283
- vendor/geoip2/geoip2/src/Exception/AddressNotFoundException.php +0 -10
- vendor/geoip2/geoip2/src/Exception/AuthenticationException.php +0 -10
- vendor/geoip2/geoip2/src/Exception/GeoIp2Exception.php +0 -10
- vendor/geoip2/geoip2/src/Exception/HttpException.php +0 -24
- vendor/geoip2/geoip2/src/Exception/InvalidRequestException.php +0 -26
- vendor/geoip2/geoip2/src/Exception/OutOfQueriesException.php +0 -10
- vendor/geoip2/geoip2/src/Model/AbstractModel.php +0 -67
- vendor/geoip2/geoip2/src/Model/AnonymousIp.php +0 -46
- vendor/geoip2/geoip2/src/Model/Asn.php +0 -35
- vendor/geoip2/geoip2/src/Model/City.php +0 -133
- vendor/geoip2/geoip2/src/Model/ConnectionType.php +0 -31
- vendor/geoip2/geoip2/src/Model/Country.php +0 -71
- vendor/geoip2/geoip2/src/Model/Domain.php +0 -31
- vendor/geoip2/geoip2/src/Model/Enterprise.php +0 -47
- vendor/geoip2/geoip2/src/Model/Insights.php +0 -47
- vendor/geoip2/geoip2/src/Model/Isp.php +0 -44
- vendor/geoip2/geoip2/src/ProviderInterface.php +0 -20
- vendor/geoip2/geoip2/src/Record/AbstractPlaceRecord.php +0 -66
- vendor/geoip2/geoip2/src/Record/AbstractRecord.php +0 -61
- vendor/geoip2/geoip2/src/Record/City.php +0 -29
- vendor/geoip2/geoip2/src/Record/Continent.php +0 -32
- vendor/geoip2/geoip2/src/Record/Country.php +0 -41
- vendor/geoip2/geoip2/src/Record/Location.php +0 -52
- vendor/geoip2/geoip2/src/Record/MaxMind.php +0 -19
- vendor/geoip2/geoip2/src/Record/Postal.php +0 -26
- vendor/geoip2/geoip2/src/Record/RepresentedCountry.php +0 -39
- vendor/geoip2/geoip2/src/Record/Subdivision.php +0 -40
- vendor/geoip2/geoip2/src/Record/Traits.php +0 -114
- vendor/geoip2/geoip2/src/WebService/Client.php +0 -239
- vendor/maxmind-db/reader/LICENSE +0 -202
- vendor/maxmind-db/reader/autoload.php +0 -45
- vendor/maxmind-db/reader/src/MaxMind/Db/Reader.php +0 -309
- vendor/maxmind-db/reader/src/MaxMind/Db/Reader/Decoder.php +0 -341
- vendor/maxmind-db/reader/src/MaxMind/Db/Reader/InvalidDatabaseException.php +0 -10
- vendor/maxmind-db/reader/src/MaxMind/Db/Reader/Metadata.php +0 -69
- vendor/maxmind-db/reader/src/MaxMind/Db/Reader/Util.php +0 -26
- vendor/maxmind/web-service-common/LICENSE +0 -202
- vendor/maxmind/web-service-common/src/Exception/AuthenticationException.php +0 -10
- vendor/maxmind/web-service-common/src/Exception/HttpException.php +0 -40
- vendor/maxmind/web-service-common/src/Exception/InsufficientFundsException.php +0 -10
- vendor/maxmind/web-service-common/src/Exception/InvalidInputException.php +0 -12
- vendor/maxmind/web-service-common/src/Exception/InvalidRequestException.php +0 -37
- vendor/maxmind/web-service-common/src/Exception/IpAddressNotFoundException.php +0 -7
- vendor/maxmind/web-service-common/src/Exception/PermissionRequiredException.php +0 -10
- vendor/maxmind/web-service-common/src/Exception/WebServiceException.php +0 -10
- vendor/maxmind/web-service-common/src/WebService/Client.php +0 -472
- vendor/maxmind/web-service-common/src/WebService/Http/CurlRequest.php +0 -110
- vendor/maxmind/web-service-common/src/WebService/Http/Request.php +0 -29
- vendor/maxmind/web-service-common/src/WebService/Http/RequestFactory.php +0 -26
- vendor/wordfence/mmdb-reader/src/ControlByte.php +118 -0
- vendor/wordfence/mmdb-reader/src/DataFieldParser.php +167 -0
- vendor/wordfence/mmdb-reader/src/Database.php +173 -0
- vendor/wordfence/mmdb-reader/src/DatabaseMetadata.php +75 -0
- vendor/wordfence/mmdb-reader/src/Endianness.php +39 -0
- vendor/wordfence/mmdb-reader/src/Exception/FormatException.php +6 -0
- vendor/wordfence/mmdb-reader/src/Exception/IncompatibleIpVersionException.php +6 -0
- vendor/wordfence/mmdb-reader/src/Exception/IncompatibleVersionException.php +7 -0
- vendor/wordfence/mmdb-reader/src/Exception/InvalidArgumentException.php +6 -0
- vendor/wordfence/mmdb-reader/src/Exception/InvalidIpAddressException.php +6 -0
- vendor/wordfence/mmdb-reader/src/Exception/InvalidOperationException.php +7 -0
- vendor/wordfence/mmdb-reader/src/Exception/IoException.php +6 -0
- vendor/wordfence/mmdb-reader/src/Exception/MmdbException.php +18 -0
- vendor/wordfence/mmdb-reader/src/Exception/MmdbThrowable.php +8 -0
- vendor/wordfence/mmdb-reader/src/Exception/RuntimeMmdbException.php +18 -0
- vendor/wordfence/mmdb-reader/src/IntegerParser.php +16 -0
- vendor/wordfence/mmdb-reader/src/Io/FileHandle.php +94 -0
- vendor/wordfence/mmdb-reader/src/IpAddress.php +99 -0
- vendor/wordfence/mmdb-reader/src/IpAddressInterface.php +27 -0
- vendor/wordfence/mmdb-reader/src/Node.php +32 -0
- vendor/wordfence/mmdb-reader/src/NodeReader.php +78 -0
- vendor/wordfence/mmdb-reader/src/NodeRecord.php +50 -0
- vendor/wordfence/wf-waf/src/lib/rules.php +1 -1
- vendor/wordfence/wf-waf/src/lib/storage/mysql.php +0 -1
- vendor/wordfence/wf-waf/src/lib/waf.php +0 -3
- views/dashboard/options-group-general.php +13 -0
- views/scanner/issue-base.php +1 -1
- views/scanner/issue-wfPluginVulnerable.php +0 -3
- views/scanner/options-group-advanced.php +15 -0
- views/scanner/scan-failed.php +6 -1
- views/tools/options-group-live-traffic.php +1 -1
- waf/wfWAFGeoIP2.php +0 -70
- waf/wfWAFIPBlocksController.php +7 -16
- wordfence.php +3 -3
css/{activity-report-widget.1663593635.css → activity-report-widget.1664811036.css}
RENAMED
File without changes
|
css/{diff.1663593635.css → diff.1664811036.css}
RENAMED
File without changes
|
css/{dt_table.1663593635.css → dt_table.1664811036.css}
RENAMED
File without changes
|
css/{fullLog.1663593635.css → fullLog.1664811036.css}
RENAMED
File without changes
|
css/{iptraf.1663593635.css → iptraf.1664811036.css}
RENAMED
File without changes
|
css/{jquery-ui-timepicker-addon.1663593635.css → jquery-ui-timepicker-addon.1664811036.css}
RENAMED
File without changes
|
css/{jquery-ui.min.1663593635.css → jquery-ui.min.1664811036.css}
RENAMED
File without changes
|
css/{jquery-ui.structure.min.1663593635.css → jquery-ui.structure.min.1664811036.css}
RENAMED
File without changes
|
css/{jquery-ui.theme.min.1663593635.css → jquery-ui.theme.min.1664811036.css}
RENAMED
File without changes
|
css/license/{care-global.1663593635.css → care-global.1664811036.css}
RENAMED
File without changes
|
css/license/{care.1663593635.css → care.1664811036.css}
RENAMED
File without changes
|
css/license/{free-global.1663593635.css → free-global.1664811036.css}
RENAMED
File without changes
|
css/license/{free.1663593635.css → free.1664811036.css}
RENAMED
File without changes
|
css/license/{premium-global.1663593635.css → premium-global.1664811036.css}
RENAMED
File without changes
|
css/license/{premium.1663593635.css → premium.1664811036.css}
RENAMED
File without changes
|
css/license/{response-global.1663593635.css → response-global.1664811036.css}
RENAMED
File without changes
|
css/license/{response-variables.1663593635.css → response-variables.1664811036.css}
RENAMED
File without changes
|
css/license/{response.1663593635.css → response.1664811036.css}
RENAMED
File without changes
|
css/{main.1663593635.css → main.1664811036.css}
RENAMED
File without changes
|
css/{phpinfo.1663593635.css → phpinfo.1664811036.css}
RENAMED
File without changes
|
css/{wf-adminbar.1663593635.css → wf-adminbar.1664811036.css}
RENAMED
File without changes
|
css/{wf-colorbox.1663593635.css → wf-colorbox.1664811036.css}
RENAMED
File without changes
|
css/{wf-font-awesome.1663593635.css → wf-font-awesome.1664811036.css}
RENAMED
File without changes
|
css/{wf-global.1663593635.css → wf-global.1664811036.css}
RENAMED
File without changes
|
css/{wf-ionicons.1663593635.css → wf-ionicons.1664811036.css}
RENAMED
File without changes
|
css/{wf-onboarding.1663593635.css → wf-onboarding.1664811036.css}
RENAMED
File without changes
|
css/{wf-roboto-font.1663593635.css → wf-roboto-font.1664811036.css}
RENAMED
File without changes
|
css/{wfselect2.min.1663593635.css → wfselect2.min.1664811036.css}
RENAMED
File without changes
|
css/{wordfenceBox.1663593635.css → wordfenceBox.1664811036.css}
RENAMED
File without changes
|
js/{Chart.bundle.min.1663593635.js → Chart.bundle.min.1664811036.js}
RENAMED
File without changes
|
js/{admin.1663593635.js → admin.1664811036.js}
RENAMED
File without changes
|
js/{admin.ajaxWatcher.1663593635.js → admin.ajaxWatcher.1664811036.js}
RENAMED
File without changes
|
js/{admin.liveTraffic.1663593635.js → admin.liveTraffic.1664811036.js}
RENAMED
File without changes
|
js/{date.1663593635.js → date.1664811036.js}
RENAMED
File without changes
|
js/{jquery-ui-timepicker-addon.1663593635.js → jquery-ui-timepicker-addon.1664811036.js}
RENAMED
File without changes
|
js/{jquery.colorbox-min.1663593635.js → jquery.colorbox-min.1664811036.js}
RENAMED
File without changes
|
js/{jquery.colorbox.1663593635.js → jquery.colorbox.1664811036.js}
RENAMED
File without changes
|
js/{jquery.dataTables.min.1663593635.js → jquery.dataTables.min.1664811036.js}
RENAMED
File without changes
|
js/{jquery.qrcode.min.1663593635.js → jquery.qrcode.min.1664811036.js}
RENAMED
File without changes
|
js/{jquery.tmpl.min.1663593635.js → jquery.tmpl.min.1664811036.js}
RENAMED
File without changes
|
js/{jquery.tools.min.1663593635.js → jquery.tools.min.1664811036.js}
RENAMED
File without changes
|
js/{knockout-3.5.1.1663593635.js → knockout-3.5.1.1664811036.js}
RENAMED
File without changes
|
js/{wfdashboard.1663593635.js → wfdashboard.1664811036.js}
RENAMED
File without changes
|
js/{wfdropdown.1663593635.js → wfdropdown.1664811036.js}
RENAMED
File without changes
|
js/{wfglobal.1663593635.js → wfglobal.1664811036.js}
RENAMED
File without changes
|
js/{wfi18n.1663593635.js → wfi18n.1664811036.js}
RENAMED
File without changes
|
js/{wfpopover.1663593635.js → wfpopover.1664811036.js}
RENAMED
File without changes
|
js/{wfselect2.min.1663593635.js → wfselect2.min.1664811036.js}
RENAMED
File without changes
|
languages/wordfence.po
CHANGED
@@ -2,14 +2,14 @@
|
|
2 |
# This file is distributed under the same license as the Wordfence Security plugin.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Wordfence Security 7.
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
7 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
8 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"POT-Creation-Date: 2022-
|
13 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
14 |
"X-Generator: WP-CLI 2.4.0\n"
|
15 |
"X-Domain: wordfence\n"
|
@@ -57,7 +57,7 @@ msgstr ""
|
|
57 |
#: lib/dashboard/widget_content_logins.php:7
|
58 |
#: lib/dashboard/widget_ips.php:115
|
59 |
#: lib/dashboard/widget_logins.php:96
|
60 |
-
#: lib/wordfenceClass.php:
|
61 |
#: views/reports/activity-report-email-inline.php:146
|
62 |
#: views/reports/activity-report.php:16
|
63 |
#: views/waf/option-whitelist.php:110
|
@@ -68,7 +68,7 @@ msgstr ""
|
|
68 |
|
69 |
#: lib/dashboard/widget_content_logins.php:6
|
70 |
#: lib/dashboard/widget_logins.php:95
|
71 |
-
#: lib/wordfenceClass.php:
|
72 |
#: views/reports/activity-report-email-inline.php:256
|
73 |
#: views/reports/activity-report.php:106
|
74 |
msgid "Username"
|
@@ -133,7 +133,7 @@ msgstr ""
|
|
133 |
#. translators: WordPress username.
|
134 |
#: lib/dashboard/widget_ips.php:96
|
135 |
#: lib/dashboard/widget_logins.php:77
|
136 |
-
#: lib/wordfenceClass.php:
|
137 |
msgid "An error occurred"
|
138 |
msgstr ""
|
139 |
|
@@ -235,51 +235,51 @@ msgstr ""
|
|
235 |
#: lib/menu_wordfence_central.php:59
|
236 |
#: lib/wf503.php:390
|
237 |
#: lib/wfScanEngine.php:283
|
238 |
-
#: lib/wfScanEngine.php:
|
239 |
-
#: lib/wfScanEngine.php:
|
240 |
-
#: lib/wfScanEngine.php:
|
241 |
-
#: lib/wfScanEngine.php:
|
242 |
-
#: lib/wfScanEngine.php:
|
243 |
-
#: lib/wfScanEngine.php:
|
244 |
-
#: lib/wfScanEngine.php:
|
245 |
-
#: lib/wfScanEngine.php:
|
246 |
-
#: lib/wfScanEngine.php:
|
247 |
-
#: lib/wfScanEngine.php:
|
248 |
-
#: lib/wfScanEngine.php:
|
249 |
-
#: lib/wfScanEngine.php:
|
250 |
-
#: lib/wfScanEngine.php:
|
251 |
-
#: lib/wfScanEngine.php:
|
252 |
-
#: lib/wfScanEngine.php:
|
253 |
#: lib/wfVersionCheckController.php:68
|
254 |
#: lib/wfVersionCheckController.php:91
|
255 |
#: lib/wfVersionCheckController.php:167
|
256 |
#: lib/wfVersionCheckController.php:186
|
257 |
-
#: lib/wordfenceClass.php:
|
258 |
-
#: lib/wordfenceClass.php:
|
259 |
-
#: lib/wordfenceClass.php:
|
260 |
-
#: lib/wordfenceClass.php:
|
261 |
-
#: lib/wordfenceClass.php:
|
262 |
-
#: lib/wordfenceClass.php:
|
|
|
263 |
#: lib/wordfenceClass.php:4961
|
264 |
-
#: lib/wordfenceClass.php:
|
265 |
-
#: lib/wordfenceClass.php:
|
266 |
-
#: lib/wordfenceClass.php:
|
267 |
-
#: lib/wordfenceClass.php:
|
268 |
-
#: lib/wordfenceClass.php:
|
269 |
-
#: lib/wordfenceClass.php:
|
270 |
-
#: lib/wordfenceClass.php:
|
271 |
-
#: lib/wordfenceClass.php:
|
272 |
-
#: lib/wordfenceClass.php:
|
273 |
-
#: lib/wordfenceClass.php:
|
274 |
-
#: lib/wordfenceClass.php:
|
275 |
-
#: lib/wordfenceClass.php:
|
276 |
-
#: lib/wordfenceClass.php:
|
277 |
-
#: lib/wordfenceClass.php:
|
278 |
-
#: lib/wordfenceClass.php:
|
279 |
-
#: lib/wordfenceClass.php:
|
280 |
-
#: lib/wordfenceClass.php:
|
281 |
-
#: lib/wordfenceClass.php:
|
282 |
-
#: lib/wordfenceClass.php:9035
|
283 |
#: lib/wordfenceHash.php:521
|
284 |
#: lib/wordfenceHash.php:568
|
285 |
#: lib/wordfenceHash.php:642
|
@@ -351,7 +351,6 @@ msgstr ""
|
|
351 |
#: views/scanner/issue-wfPluginUpgrade.php:20
|
352 |
#: views/scanner/issue-wfPluginVulnerable.php:17
|
353 |
#: views/scanner/issue-wfPluginVulnerable.php:18
|
354 |
-
#: views/scanner/issue-wfPluginVulnerable.php:19
|
355 |
#: views/scanner/issue-wfThemeUpgrade.php:18
|
356 |
#: views/scanner/issue-wfThemeUpgrade.php:19
|
357 |
#: views/scanner/issue-wfUpgrade.php:17
|
@@ -426,7 +425,7 @@ msgid "Last Updated: %s ago"
|
|
426 |
msgstr ""
|
427 |
|
428 |
#: lib/dashboard/widget_notifications.php:8
|
429 |
-
#: lib/wordfenceClass.php:
|
430 |
msgid "Notifications"
|
431 |
msgstr ""
|
432 |
|
@@ -496,16 +495,16 @@ msgstr ""
|
|
496 |
|
497 |
#. translators: Support URL.
|
498 |
#: lib/dashboard/widget_notifications.php:134
|
499 |
-
#: lib/menu_scanner.php:
|
500 |
-
#: lib/menu_scanner.php:
|
501 |
-
#: lib/menu_tools_diagnostic.php:
|
502 |
#: lib/menu_tools_twoFactor.php:235
|
503 |
#: lib/menu_tools_twoFactor.php:273
|
504 |
-
#: lib/wordfenceClass.php:
|
505 |
-
#: lib/wordfenceClass.php:
|
506 |
-
#: lib/wordfenceClass.php:
|
507 |
-
#: lib/wordfenceClass.php:
|
508 |
-
#: lib/wordfenceClass.php:
|
509 |
#: views/blocking/block-list.php:501
|
510 |
#: views/blocking/blocking-create.php:212
|
511 |
#: views/blocking/blocking-create.php:529
|
@@ -646,50 +645,41 @@ msgstr ""
|
|
646 |
msgid "HIGH SENSITIVITY scanning is enabled, it may produce false positives"
|
647 |
msgstr ""
|
648 |
|
649 |
-
#: lib/email_newIssues.php:48
|
650 |
-
#: lib/menu_scanner.php:119
|
651 |
-
msgid "Beta scan signatures are currently enabled. These signatures have not been fully tested yet and may cause false positives or scan stability issues on some sites."
|
652 |
-
msgstr ""
|
653 |
-
|
654 |
-
#: lib/email_newIssues.php:48
|
655 |
-
msgid "The Beta option can be turned off at the bottom of the Diagnostics page."
|
656 |
-
msgstr ""
|
657 |
-
|
658 |
#. translators: 1. URL to WordPress admin panel. 2. URL to WordPress admin panel. 3. URL to Wordfence support page. 4. URL to Wordfence support page.
|
659 |
-
#: lib/email_newIssues.php:
|
660 |
msgid "The scan was terminated early because it reached the time limit for scans. If you would like to allow your scans to run longer, you can customize the limit on the options page: <a href=\"%1$s\">%2$s</a> or read more about scan options to improve scan speed here: <a href=\"%3$s\">%4$s</a>"
|
661 |
msgstr ""
|
662 |
|
663 |
-
#: lib/email_newIssues.php:
|
664 |
msgid "Critical Problems:"
|
665 |
msgstr ""
|
666 |
|
667 |
-
#: lib/email_newIssues.php:
|
668 |
msgid "High Severity Problems:"
|
669 |
msgstr ""
|
670 |
|
671 |
-
#: lib/email_newIssues.php:
|
672 |
msgid "Medium Severity Problems:"
|
673 |
msgstr ""
|
674 |
|
675 |
-
#: lib/email_newIssues.php:
|
676 |
msgid "Low Severity Problems:"
|
677 |
msgstr ""
|
678 |
|
679 |
-
#: lib/email_newIssues.php:
|
680 |
msgid "Plugin contains an unpatched security vulnerability."
|
681 |
msgstr ""
|
682 |
|
683 |
-
#: lib/email_newIssues.php:
|
684 |
-
#: lib/email_newIssues.php:
|
685 |
#: views/scanner/issue-wfPluginAbandoned.php:20
|
686 |
#: views/scanner/issue-wfPluginAbandoned.php:37
|
687 |
#: views/scanner/issue-wfPluginRemoved.php:18
|
688 |
#: views/scanner/issue-wfPluginRemoved.php:32
|
689 |
#: views/scanner/issue-wfPluginUpgrade.php:20
|
690 |
#: views/scanner/issue-wfPluginUpgrade.php:37
|
691 |
-
#: views/scanner/issue-wfPluginVulnerable.php:
|
692 |
-
#: views/scanner/issue-wfPluginVulnerable.php:
|
693 |
#: views/scanner/issue-wfThemeUpgrade.php:19
|
694 |
#: views/scanner/issue-wfThemeUpgrade.php:35
|
695 |
#: views/scanner/issue-wfUpgrade.php:17
|
@@ -697,24 +687,24 @@ msgstr ""
|
|
697 |
msgid "Vulnerability Information"
|
698 |
msgstr ""
|
699 |
|
700 |
-
#: lib/email_newIssues.php:
|
701 |
msgid "The core files scan has not run because this version is not currently indexed by Wordfence. New WordPress versions may take up to a day to be indexed."
|
702 |
msgstr ""
|
703 |
|
704 |
-
#: lib/email_newIssues.php:
|
705 |
msgid "Firewall issues may be caused by file permission changes or other technical problems."
|
706 |
msgstr ""
|
707 |
|
708 |
-
#: lib/email_newIssues.php:
|
709 |
msgid "More Details and Instructions"
|
710 |
msgstr ""
|
711 |
|
712 |
-
#: lib/email_newIssues.php:
|
713 |
msgid "Scanning additional paths is optional and is not always necessary."
|
714 |
msgstr ""
|
715 |
|
716 |
#. translators: 1. WordPress version. 2. WordPress version.
|
717 |
-
#: lib/email_newIssues.php:
|
718 |
#: lib/email_unlockRequest.php:14
|
719 |
#: lib/menu_dashboard.php:118
|
720 |
#: lib/menu_dashboard.php:487
|
@@ -723,7 +713,7 @@ msgstr ""
|
|
723 |
#: lib/wfVersionCheckController.php:91
|
724 |
#: lib/wfVersionCheckController.php:167
|
725 |
#: lib/wfVersionCheckController.php:186
|
726 |
-
#: lib/wordfenceClass.php:
|
727 |
#: views/blocking/blocking-create.php:528
|
728 |
#: views/blocking/blocking-status.php:27
|
729 |
#: views/dashboard/options-group-dashboard.php:107
|
@@ -740,7 +730,7 @@ msgstr ""
|
|
740 |
msgid "Learn More"
|
741 |
msgstr ""
|
742 |
|
743 |
-
#: lib/email_newIssues.php:
|
744 |
#: views/scanner/issue-wfPluginUpgrade.php:16
|
745 |
#: views/scanner/issue-wfPluginUpgrade.php:33
|
746 |
#: views/scanner/issue-wfThemeUpgrade.php:16
|
@@ -750,62 +740,62 @@ msgstr ""
|
|
750 |
msgid "Update includes security-related fixes."
|
751 |
msgstr ""
|
752 |
|
753 |
-
#: lib/email_newIssues.php:
|
754 |
msgid "The malicious URL matched"
|
755 |
msgstr ""
|
756 |
|
757 |
#. translators: Number of scan results
|
758 |
-
#: lib/email_newIssues.php:
|
759 |
msgid "%d existing issue was found again and is not shown."
|
760 |
msgid_plural "%d existing issues were found again and are not shown."
|
761 |
msgstr[0] ""
|
762 |
msgstr[1] ""
|
763 |
|
764 |
#. translators: Number of scan results
|
765 |
-
#: lib/email_newIssues.php:
|
766 |
msgid "%d issue was omitted from this email due to length limits."
|
767 |
msgid_plural "%d issues were omitted from this email due to length limits."
|
768 |
msgstr[0] ""
|
769 |
msgstr[1] ""
|
770 |
|
771 |
#. translators: Number of scan results
|
772 |
-
#: lib/email_newIssues.php:
|
773 |
msgid "View every issue:"
|
774 |
msgstr ""
|
775 |
|
776 |
-
#: lib/email_newIssues.php:
|
777 |
msgid "NOTE: You are using the free version of Wordfence. Upgrade today:"
|
778 |
msgstr ""
|
779 |
|
780 |
-
#: lib/email_newIssues.php:
|
781 |
msgid "Receive real-time Firewall and Scan engine rule updates for protection as threats emerge"
|
782 |
msgstr ""
|
783 |
|
784 |
-
#: lib/email_newIssues.php:
|
785 |
msgid "Real-time IP Blocklist blocks the most malicious IPs from accessing your site"
|
786 |
msgstr ""
|
787 |
|
788 |
-
#: lib/email_newIssues.php:
|
789 |
msgid "Country blocking"
|
790 |
msgstr ""
|
791 |
|
792 |
-
#: lib/email_newIssues.php:
|
793 |
msgid "IP reputation monitoring"
|
794 |
msgstr ""
|
795 |
|
796 |
-
#: lib/email_newIssues.php:
|
797 |
msgid "Schedule scans to run more frequently and at optimal times"
|
798 |
msgstr ""
|
799 |
|
800 |
-
#: lib/email_newIssues.php:
|
801 |
msgid "Access to Premium Support"
|
802 |
msgstr ""
|
803 |
|
804 |
-
#: lib/email_newIssues.php:
|
805 |
msgid "Discounts for multi-year and multi-license purchases"
|
806 |
msgstr ""
|
807 |
|
808 |
-
#: lib/email_newIssues.php:
|
809 |
msgid "Click here to upgrade to Wordfence Premium:"
|
810 |
msgstr ""
|
811 |
|
@@ -926,7 +916,7 @@ msgid "Live Updates Paused — Click inside window to resume"
|
|
926 |
msgstr ""
|
927 |
|
928 |
#: lib/menu_dashboard.php:24
|
929 |
-
#: lib/wordfenceClass.php:
|
930 |
msgid "Wordfence Dashboard"
|
931 |
msgstr ""
|
932 |
|
@@ -938,7 +928,7 @@ msgstr ""
|
|
938 |
#: lib/menu_dashboard_options.php:98
|
939 |
#: lib/menu_firewall.php:20
|
940 |
#: lib/menu_firewall.php:30
|
941 |
-
#: lib/wordfenceClass.php:
|
942 |
#: models/page/wfPage.php:105
|
943 |
msgid "Firewall"
|
944 |
msgstr ""
|
@@ -974,8 +964,8 @@ msgstr ""
|
|
974 |
#: lib/menu_dashboard.php:71
|
975 |
#: lib/menu_dashboard_options.php:115
|
976 |
#: lib/menu_scanner.php:31
|
977 |
-
#: lib/menu_scanner.php:
|
978 |
-
#: lib/wordfenceClass.php:
|
979 |
#: models/page/wfPage.php:113
|
980 |
msgid "Scan"
|
981 |
msgstr ""
|
@@ -993,7 +983,7 @@ msgstr ""
|
|
993 |
|
994 |
#: lib/menu_dashboard.php:75
|
995 |
#: lib/menu_dashboard_options.php:119
|
996 |
-
#: lib/menu_options.php:
|
997 |
#: lib/menu_scanner.php:65
|
998 |
#: lib/menu_scanner_options.php:120
|
999 |
#: views/dashboard/options-group-dashboard.php:97
|
@@ -1058,7 +1048,7 @@ msgstr ""
|
|
1058 |
#: lib/menu_scanner.php:80
|
1059 |
#: lib/menu_support.php:55
|
1060 |
#: lib/menu_tools_twoFactor.php:51
|
1061 |
-
#: lib/wordfenceClass.php:
|
1062 |
#: views/blocking/blocking-create.php:179
|
1063 |
#: views/blocking/blocking-status.php:23
|
1064 |
#: views/blocking/blocking-status.php:27
|
@@ -1152,7 +1142,7 @@ msgid "Learn about Wordfence Response"
|
|
1152 |
msgstr ""
|
1153 |
|
1154 |
#: lib/menu_dashboard.php:229
|
1155 |
-
#: lib/wordfenceClass.php:
|
1156 |
msgid "Tools"
|
1157 |
msgstr ""
|
1158 |
|
@@ -1162,15 +1152,15 @@ msgstr ""
|
|
1162 |
|
1163 |
#: lib/menu_dashboard.php:240
|
1164 |
#: lib/menu_firewall_waf.php:157
|
1165 |
-
#: lib/menu_scanner.php:
|
1166 |
#: lib/menu_support.php:19
|
1167 |
-
#: lib/wordfenceClass.php:
|
1168 |
msgid "Help"
|
1169 |
msgstr ""
|
1170 |
|
1171 |
#: lib/menu_dashboard.php:241
|
1172 |
#: lib/menu_firewall_waf.php:158
|
1173 |
-
#: lib/menu_scanner.php:
|
1174 |
msgid "Find the documentation and help you need"
|
1175 |
msgstr ""
|
1176 |
|
@@ -1202,9 +1192,9 @@ msgstr ""
|
|
1202 |
#: lib/menu_firewall_waf.php:255
|
1203 |
#: lib/menu_firewall_waf.php:272
|
1204 |
#: lib/menu_firewall_waf.php:289
|
1205 |
-
#: lib/menu_scanner.php:
|
1206 |
-
#: lib/menu_scanner.php:
|
1207 |
-
#: lib/menu_scanner.php:
|
1208 |
#: views/tours/login-security.php:37
|
1209 |
#: views/tours/login-security.php:53
|
1210 |
msgid "Next"
|
@@ -1229,9 +1219,9 @@ msgstr ""
|
|
1229 |
#: lib/menu_firewall_waf.php:271
|
1230 |
#: lib/menu_firewall_waf.php:288
|
1231 |
#: lib/menu_firewall_waf.php:306
|
1232 |
-
#: lib/menu_scanner.php:
|
1233 |
-
#: lib/menu_scanner.php:
|
1234 |
-
#: lib/menu_scanner.php:
|
1235 |
#: views/tours/login-security.php:52
|
1236 |
#: views/tours/login-security.php:69
|
1237 |
msgid "Previous"
|
@@ -1252,8 +1242,8 @@ msgstr ""
|
|
1252 |
#: lib/menu_firewall_blocking.php:226
|
1253 |
#: lib/menu_firewall_waf.php:307
|
1254 |
#: lib/menu_firewall_waf.php:354
|
1255 |
-
#: lib/menu_scanner.php:
|
1256 |
-
#: lib/menu_scanner.php:
|
1257 |
#: lib/menu_tools_livetraffic.php:577
|
1258 |
#: lib/menu_tools_livetraffic.php:608
|
1259 |
msgid "Got it"
|
@@ -1317,7 +1307,7 @@ msgstr ""
|
|
1317 |
|
1318 |
#: lib/menu_dashboard_options.php:11
|
1319 |
#: lib/menu_dashboard_options.php:79
|
1320 |
-
#: lib/menu_options.php:
|
1321 |
msgid "Wordfence Global Options"
|
1322 |
msgstr ""
|
1323 |
|
@@ -1359,8 +1349,8 @@ msgstr ""
|
|
1359 |
|
1360 |
#: lib/menu_dashboard_options.php:287
|
1361 |
#: lib/menu_dashboard_options.php:297
|
1362 |
-
#: lib/menu_options.php:
|
1363 |
-
#: lib/menu_options.php:
|
1364 |
#: lib/menu_tools.php:26
|
1365 |
#: lib/menu_tools_importExport.php:7
|
1366 |
#: lib/menu_tools_importExport.php:13
|
@@ -1383,7 +1373,7 @@ msgstr ""
|
|
1383 |
#: lib/menu_firewall.php:41
|
1384 |
#: lib/menu_firewall_blocking.php:119
|
1385 |
#: lib/menu_firewall_waf.php:142
|
1386 |
-
#: lib/wordfenceClass.php:
|
1387 |
#: models/page/wfPage.php:109
|
1388 |
msgid "Blocking"
|
1389 |
msgstr ""
|
@@ -1456,7 +1446,7 @@ msgstr ""
|
|
1456 |
|
1457 |
#: lib/menu_firewall_blocking_options.php:12
|
1458 |
#: lib/menu_firewall_blocking_options.php:92
|
1459 |
-
#: lib/menu_options.php:
|
1460 |
#: models/page/wfPage.php:111
|
1461 |
#: views/blocking/blocking-status.php:14
|
1462 |
msgid "Blocking Options"
|
@@ -1499,7 +1489,7 @@ msgstr ""
|
|
1499 |
|
1500 |
#: lib/menu_firewall_waf.php:39
|
1501 |
#: lib/menu_firewall_waf_options.php:150
|
1502 |
-
#: lib/menu_options.php:
|
1503 |
#: views/waf/options-group-basic-firewall.php:34
|
1504 |
msgid "Web Application Firewall Status"
|
1505 |
msgstr ""
|
@@ -1566,7 +1556,7 @@ msgstr ""
|
|
1566 |
#: lib/wfDiagnostic.php:933
|
1567 |
#: lib/wfDiagnostic.php:938
|
1568 |
#: lib/wfDiagnostic.php:942
|
1569 |
-
#: lib/wordfenceClass.php:
|
1570 |
#: models/firewall/wfFirewall.php:41
|
1571 |
#: views/scanner/scan-scheduling.php:14
|
1572 |
#: views/user/disabled-application-passwords.php:12
|
@@ -1665,7 +1655,7 @@ msgstr ""
|
|
1665 |
#: lib/menu_firewall_waf.php:347
|
1666 |
#: lib/menu_firewall_waf_options.php:23
|
1667 |
#: lib/menu_firewall_waf_options.php:127
|
1668 |
-
#: lib/menu_options.php:
|
1669 |
#: models/page/wfPage.php:107
|
1670 |
msgid "Firewall Options"
|
1671 |
msgstr ""
|
@@ -1683,8 +1673,8 @@ msgid "Are you sure you want to restore the default Firewall settings? This will
|
|
1683 |
msgstr ""
|
1684 |
|
1685 |
#: lib/menu_options.php:24
|
1686 |
-
#: lib/menu_options.php:
|
1687 |
-
#: lib/wordfenceClass.php:
|
1688 |
msgid "All Options"
|
1689 |
msgstr ""
|
1690 |
|
@@ -1729,562 +1719,577 @@ msgstr ""
|
|
1729 |
|
1730 |
#: lib/menu_options.php:76
|
1731 |
#: views/dashboard/options-group-general.php:73
|
1732 |
-
msgid "
|
1733 |
msgstr ""
|
1734 |
|
1735 |
#: lib/menu_options.php:77
|
1736 |
-
#: views/dashboard/options-group-general.php:
|
1737 |
-
msgid "
|
1738 |
msgstr ""
|
1739 |
|
1740 |
#: lib/menu_options.php:78
|
1741 |
-
#: views/dashboard/options-group-general.php:
|
1742 |
-
msgid "
|
1743 |
msgstr ""
|
1744 |
|
1745 |
#: lib/menu_options.php:79
|
1746 |
-
#: views/dashboard/options-group-general.php:
|
1747 |
-
msgid "
|
1748 |
msgstr ""
|
1749 |
|
1750 |
#: lib/menu_options.php:80
|
1751 |
#: views/dashboard/options-group-general.php:120
|
1752 |
-
msgid "
|
1753 |
msgstr ""
|
1754 |
|
1755 |
#: lib/menu_options.php:81
|
1756 |
-
#: views/dashboard/options-group-general.php:
|
1757 |
-
msgid "
|
1758 |
msgstr ""
|
1759 |
|
1760 |
#: lib/menu_options.php:82
|
|
|
|
|
|
|
|
|
|
|
1761 |
#: views/dashboard/options-group-dashboard.php:36
|
1762 |
msgid "Updates Needed (Plugin, Theme, or Core)"
|
1763 |
msgstr ""
|
1764 |
|
1765 |
-
#: lib/menu_options.php:
|
1766 |
#: views/dashboard/options-group-dashboard.php:48
|
1767 |
msgid "Security Alerts"
|
1768 |
msgstr ""
|
1769 |
|
1770 |
-
#: lib/menu_options.php:
|
1771 |
#: views/dashboard/options-group-dashboard.php:60
|
1772 |
msgid "Promotions"
|
1773 |
msgstr ""
|
1774 |
|
1775 |
-
#: lib/menu_options.php:
|
1776 |
#: views/dashboard/options-group-dashboard.php:72
|
1777 |
msgid "Blog Highlights"
|
1778 |
msgstr ""
|
1779 |
|
1780 |
-
#: lib/menu_options.php:
|
1781 |
#: views/dashboard/options-group-dashboard.php:84
|
1782 |
msgid "Product Updates"
|
1783 |
msgstr ""
|
1784 |
|
1785 |
-
#: lib/menu_options.php:
|
1786 |
#: views/dashboard/options-group-alert.php:36
|
1787 |
msgid "Email me when Wordfence is automatically updated"
|
1788 |
msgstr ""
|
1789 |
|
1790 |
-
#: lib/menu_options.php:
|
1791 |
#: views/dashboard/options-group-alert.php:48
|
1792 |
msgid "Email me if Wordfence is deactivated"
|
1793 |
msgstr ""
|
1794 |
|
1795 |
-
#: lib/menu_options.php:
|
1796 |
#: views/dashboard/options-group-alert.php:59
|
1797 |
msgid "Email me if the Wordfence Web Application Firewall is turned off"
|
1798 |
msgstr ""
|
1799 |
|
1800 |
-
#: lib/menu_options.php:
|
1801 |
msgid "Alert me with scan results of this severity level or greater"
|
1802 |
msgstr ""
|
1803 |
|
1804 |
-
#: lib/menu_options.php:
|
1805 |
#: views/dashboard/options-group-alert.php:90
|
1806 |
msgid "Alert when an IP address is blocked"
|
1807 |
msgstr ""
|
1808 |
|
1809 |
-
#: lib/menu_options.php:
|
1810 |
#: views/dashboard/options-group-alert.php:101
|
1811 |
msgid "Alert when someone is locked out from login"
|
1812 |
msgstr ""
|
1813 |
|
1814 |
-
#: lib/menu_options.php:
|
1815 |
#: views/dashboard/options-group-alert.php:123
|
1816 |
msgid "Alert when the \"lost password\" form is used for a valid user"
|
1817 |
msgstr ""
|
1818 |
|
1819 |
-
#: lib/menu_options.php:
|
1820 |
#: views/dashboard/options-group-alert.php:134
|
1821 |
msgid "Alert me when someone with administrator access signs in"
|
1822 |
msgstr ""
|
1823 |
|
1824 |
-
#: lib/menu_options.php:
|
1825 |
#: views/dashboard/options-group-alert.php:140
|
1826 |
msgid "Only alert me when that administrator signs in from a new device"
|
1827 |
msgstr ""
|
1828 |
|
1829 |
-
#: lib/menu_options.php:
|
1830 |
#: views/dashboard/options-group-alert.php:151
|
1831 |
msgid "Alert me when a non-admin user signs in"
|
1832 |
msgstr ""
|
1833 |
|
1834 |
-
#: lib/menu_options.php:
|
1835 |
#: views/dashboard/options-group-alert.php:157
|
1836 |
msgid "Only alert me when that user signs in from a new device"
|
1837 |
msgstr ""
|
1838 |
|
1839 |
-
#: lib/menu_options.php:
|
1840 |
#: views/dashboard/options-group-alert.php:168
|
1841 |
msgid "Alert me when there's a large increase in attacks detected on my site"
|
1842 |
msgstr ""
|
1843 |
|
1844 |
-
#: lib/menu_options.php:
|
1845 |
#: views/dashboard/options-group-alert.php:177
|
1846 |
msgid "Maximum email alerts to send per hour"
|
1847 |
msgstr ""
|
1848 |
|
1849 |
-
#: lib/menu_options.php:
|
1850 |
#: views/dashboard/options-group-email-summary.php:43
|
1851 |
msgid "Enable email summary"
|
1852 |
msgstr ""
|
1853 |
|
1854 |
-
#: lib/menu_options.php:
|
1855 |
#: views/dashboard/options-group-email-summary.php:52
|
1856 |
msgid "List of directories to exclude from recently modified file list"
|
1857 |
msgstr ""
|
1858 |
|
1859 |
-
#: lib/menu_options.php:
|
1860 |
#: views/dashboard/options-group-email-summary.php:63
|
1861 |
msgid "Enable activity report widget on the WordPress dashboard"
|
1862 |
msgstr ""
|
1863 |
|
1864 |
-
#: lib/menu_options.php:
|
1865 |
msgid "Web Application Firewall Protection Level"
|
1866 |
msgstr ""
|
1867 |
|
1868 |
-
#: lib/menu_options.php:
|
1869 |
#: views/waf/options-group-basic-firewall.php:464
|
1870 |
msgid "Real-Time IP Blocklist"
|
1871 |
msgstr ""
|
1872 |
|
1873 |
-
#: lib/menu_options.php:
|
1874 |
#: views/waf/options-group-advanced-firewall.php:40
|
1875 |
msgid "Delay IP and Country blocking until after WordPress and plugins have loaded (only process firewall rules early)"
|
1876 |
msgstr ""
|
1877 |
|
1878 |
-
#: lib/menu_options.php:
|
1879 |
#: views/waf/options-group-advanced-firewall.php:52
|
1880 |
msgid "Allowlisted IP addresses that bypass all rules"
|
1881 |
msgstr ""
|
1882 |
|
1883 |
-
#: lib/menu_options.php:
|
1884 |
#: views/waf/options-group-advanced-firewall.php:88
|
1885 |
msgid "Allowlisted services"
|
1886 |
msgstr ""
|
1887 |
|
1888 |
-
#: lib/menu_options.php:
|
1889 |
#: views/waf/options-group-advanced-firewall.php:99
|
1890 |
msgid "Immediately block IPs that access these URLs"
|
1891 |
msgstr ""
|
1892 |
|
1893 |
-
#: lib/menu_options.php:
|
1894 |
#: views/waf/options-group-advanced-firewall.php:112
|
1895 |
msgid "Ignored IP addresses for Wordfence Web Application Firewall alerting"
|
1896 |
msgstr ""
|
1897 |
|
1898 |
-
#: lib/menu_options.php:
|
1899 |
msgid "Web Application Firewall Rules"
|
1900 |
msgstr ""
|
1901 |
|
1902 |
-
#: lib/menu_options.php:
|
1903 |
#: views/waf/options-group-brute-force.php:38
|
1904 |
msgid "Enable brute force protection"
|
1905 |
msgstr ""
|
1906 |
|
1907 |
-
#: lib/menu_options.php:
|
1908 |
#: views/waf/options-group-brute-force.php:61
|
1909 |
msgid "Lock out after how many login failures"
|
1910 |
msgstr ""
|
1911 |
|
1912 |
-
#: lib/menu_options.php:
|
1913 |
#: views/waf/options-group-brute-force.php:77
|
1914 |
msgid "Lock out after how many forgot password attempts"
|
1915 |
msgstr ""
|
1916 |
|
1917 |
-
#: lib/menu_options.php:
|
1918 |
#: views/waf/options-group-brute-force.php:93
|
1919 |
msgid "Count failures over what time period"
|
1920 |
msgstr ""
|
1921 |
|
1922 |
-
#: lib/menu_options.php:
|
1923 |
#: views/waf/options-group-brute-force.php:109
|
1924 |
msgid "Amount of time a user is locked out"
|
1925 |
msgstr ""
|
1926 |
|
1927 |
-
#: lib/menu_options.php:
|
1928 |
#: views/waf/options-group-brute-force.php:121
|
1929 |
msgid "Immediately lock out invalid usernames"
|
1930 |
msgstr ""
|
1931 |
|
1932 |
-
#: lib/menu_options.php:
|
1933 |
#: views/waf/options-group-brute-force.php:139
|
1934 |
msgid "Immediately block the IP of users who try to sign in as these usernames"
|
1935 |
msgstr ""
|
1936 |
|
1937 |
-
#: lib/menu_options.php:
|
1938 |
#: views/waf/options-group-brute-force.php:178
|
1939 |
msgid "Enforce strong passwords"
|
1940 |
msgstr ""
|
1941 |
|
1942 |
-
#: lib/menu_options.php:
|
1943 |
#: views/waf/options-group-brute-force.php:155
|
1944 |
msgid "Prevent the use of passwords leaked in data breaches"
|
1945 |
msgstr ""
|
1946 |
|
1947 |
-
#: lib/menu_options.php:
|
1948 |
#: views/waf/options-group-brute-force.php:190
|
1949 |
msgid "Don't let WordPress reveal valid users in login errors"
|
1950 |
msgstr ""
|
1951 |
|
1952 |
-
#: lib/menu_options.php:
|
1953 |
msgid "Prevent users registering \"admin\" username if it doesn't exist"
|
1954 |
msgstr ""
|
1955 |
|
1956 |
-
#: lib/menu_options.php:
|
1957 |
msgid "Prevent discovery of usernames through \"/?author=N\" scans, the oEmbed API, the WordPress REST API, and WordPress XML Sitemaps"
|
1958 |
msgstr ""
|
1959 |
|
1960 |
-
#: lib/menu_options.php:
|
1961 |
#: views/waf/options-group-brute-force.php:226
|
1962 |
msgid "Disable WordPress application passwords"
|
1963 |
msgstr ""
|
1964 |
|
1965 |
-
#: lib/menu_options.php:
|
1966 |
#: views/waf/options-group-brute-force.php:238
|
1967 |
msgid "Block IPs who send POST requests with blank User-Agent and Referer"
|
1968 |
msgstr ""
|
1969 |
|
1970 |
-
#: lib/menu_options.php:
|
1971 |
#: views/waf/options-group-brute-force.php:248
|
1972 |
msgid "Custom text shown on block pages"
|
1973 |
msgstr ""
|
1974 |
|
1975 |
-
#: lib/menu_options.php:
|
1976 |
#: views/waf/options-group-brute-force.php:263
|
1977 |
msgid "Check password strength on profile update"
|
1978 |
msgstr ""
|
1979 |
|
1980 |
-
#: lib/menu_options.php:
|
1981 |
#: views/waf/options-group-brute-force.php:275
|
1982 |
msgid "Participate in the Real-Time Wordfence Security Network"
|
1983 |
msgstr ""
|
1984 |
|
1985 |
-
#: lib/menu_options.php:
|
1986 |
#: views/waf/options-group-rate-limiting.php:38
|
1987 |
msgid "Enable Rate Limiting and Advanced Blocking"
|
1988 |
msgstr ""
|
1989 |
|
1990 |
-
#: lib/menu_options.php:
|
1991 |
#: views/waf/options-group-rate-limiting.php:60
|
1992 |
msgid "How should we treat Google's crawlers"
|
1993 |
msgstr ""
|
1994 |
|
1995 |
-
#: lib/menu_options.php:
|
1996 |
#: views/waf/options-group-rate-limiting.php:100
|
1997 |
msgid "If anyone's requests exceed"
|
1998 |
msgstr ""
|
1999 |
|
2000 |
-
#: lib/menu_options.php:
|
2001 |
#: views/waf/options-group-rate-limiting.php:117
|
2002 |
msgid "If a crawler's page views exceed"
|
2003 |
msgstr ""
|
2004 |
|
2005 |
-
#: lib/menu_options.php:
|
2006 |
#: views/waf/options-group-rate-limiting.php:134
|
2007 |
msgid "If a crawler's pages not found (404s) exceed"
|
2008 |
msgstr ""
|
2009 |
|
2010 |
-
#: lib/menu_options.php:
|
2011 |
#: views/waf/options-group-rate-limiting.php:151
|
2012 |
msgid "If a human's page views exceed"
|
2013 |
msgstr ""
|
2014 |
|
2015 |
-
#: lib/menu_options.php:
|
2016 |
#: views/waf/options-group-rate-limiting.php:168
|
2017 |
msgid "If a human's pages not found (404s) exceed"
|
2018 |
msgstr ""
|
2019 |
|
2020 |
-
#: lib/menu_options.php:
|
2021 |
#: views/waf/options-group-rate-limiting.php:184
|
2022 |
msgid "How long is an IP address blocked when it breaks a rule"
|
2023 |
msgstr ""
|
2024 |
|
2025 |
-
#: lib/menu_options.php:
|
2026 |
#: views/waf/options-group-rate-limiting.php:194
|
2027 |
msgid "Allowlisted 404 URLs"
|
2028 |
msgstr ""
|
2029 |
|
2030 |
-
#: lib/menu_options.php:
|
2031 |
msgid "Web Application Firewall Allowlisted URLs"
|
2032 |
msgstr ""
|
2033 |
|
2034 |
-
#: lib/menu_options.php:
|
2035 |
msgid "Monitor background requests from an administrator's web browser for false positives (Front-end Website)"
|
2036 |
msgstr ""
|
2037 |
|
2038 |
-
#: lib/menu_options.php:
|
2039 |
msgid "Monitor background requests from an administrator's web browser for false positives (Admin Panel)"
|
2040 |
msgstr ""
|
2041 |
|
2042 |
-
#: lib/menu_options.php:
|
2043 |
msgid "What to do when we block someone visiting from a blocked country"
|
2044 |
msgstr ""
|
2045 |
|
2046 |
-
#: lib/menu_options.php:
|
2047 |
msgid "URL to redirect blocked countries to"
|
2048 |
msgstr ""
|
2049 |
|
2050 |
-
#: lib/menu_options.php:
|
2051 |
#: views/blocking/options-group-advanced-country.php:62
|
2052 |
msgid "Block countries even if they are logged in"
|
2053 |
msgstr ""
|
2054 |
|
2055 |
-
#: lib/menu_options.php:
|
2056 |
msgid "If user from a blocked country hits the relative URL ____ then redirect that user to ____ and set a cookie that will bypass all country blocking"
|
2057 |
msgstr ""
|
2058 |
|
2059 |
-
#: lib/menu_options.php:
|
2060 |
msgid "If user who is allowed to access the site views the relative URL ____ then set a cookie that will bypass country blocking in future in case that user hits the site from a blocked country"
|
2061 |
msgstr ""
|
2062 |
|
2063 |
-
#: lib/menu_options.php:
|
2064 |
#: views/scanner/scan-scheduling.php:12
|
2065 |
msgid "Schedule Wordfence Scans"
|
2066 |
msgstr ""
|
2067 |
|
2068 |
-
#: lib/menu_options.php:
|
2069 |
msgid "Scan Type"
|
2070 |
msgstr ""
|
2071 |
|
2072 |
-
#: lib/menu_options.php:
|
2073 |
#: views/scanner/options-group-general.php:32
|
2074 |
msgid "Check if this website is on a domain blocklist"
|
2075 |
msgstr ""
|
2076 |
|
2077 |
-
#: lib/menu_options.php:
|
2078 |
msgid "Check if this website is being "Spamvertised""
|
2079 |
msgstr ""
|
2080 |
|
2081 |
-
#: lib/menu_options.php:
|
2082 |
#: views/scanner/options-group-general.php:34
|
2083 |
msgid "Check if this website IP is generating spam"
|
2084 |
msgstr ""
|
2085 |
|
2086 |
-
#: lib/menu_options.php:
|
2087 |
#: views/scanner/options-group-general.php:35
|
2088 |
msgid "Scan for misconfigured How does Wordfence get IPs"
|
2089 |
msgstr ""
|
2090 |
|
2091 |
-
#: lib/menu_options.php:
|
2092 |
#: views/scanner/options-group-general.php:36
|
2093 |
msgid "Scan for publicly accessible configuration, backup, or log files"
|
2094 |
msgstr ""
|
2095 |
|
2096 |
-
#: lib/menu_options.php:
|
2097 |
#: views/scanner/options-group-general.php:37
|
2098 |
msgid "Scan for publicly accessible quarantined files"
|
2099 |
msgstr ""
|
2100 |
|
2101 |
-
#: lib/menu_options.php:
|
2102 |
#: views/scanner/options-group-general.php:38
|
2103 |
msgid "Scan core files against repository versions for changes"
|
2104 |
msgstr ""
|
2105 |
|
2106 |
-
#: lib/menu_options.php:
|
2107 |
#: views/scanner/options-group-general.php:39
|
2108 |
msgid "Scan theme files against repository versions for changes"
|
2109 |
msgstr ""
|
2110 |
|
2111 |
-
#: lib/menu_options.php:
|
2112 |
#: views/scanner/options-group-general.php:40
|
2113 |
msgid "Scan plugin files against repository versions for changes"
|
2114 |
msgstr ""
|
2115 |
|
2116 |
-
#: lib/menu_options.php:
|
2117 |
#: views/scanner/options-group-general.php:41
|
2118 |
msgid "Scan wp-admin and wp-includes for files not bundled with WordPress"
|
2119 |
msgstr ""
|
2120 |
|
2121 |
-
#: lib/menu_options.php:
|
2122 |
#: views/scanner/options-group-general.php:42
|
2123 |
msgid "Scan for signatures of known malicious files"
|
2124 |
msgstr ""
|
2125 |
|
2126 |
-
#: lib/menu_options.php:
|
2127 |
#: views/scanner/options-group-general.php:43
|
2128 |
msgid "Scan file contents for backdoors, trojans and suspicious code"
|
2129 |
msgstr ""
|
2130 |
|
2131 |
-
#: lib/menu_options.php:
|
2132 |
#: views/scanner/options-group-general.php:44
|
2133 |
msgid "Scan file contents for malicious URLs"
|
2134 |
msgstr ""
|
2135 |
|
2136 |
-
#: lib/menu_options.php:
|
2137 |
#: views/scanner/options-group-general.php:45
|
2138 |
msgid "Scan posts for known dangerous URLs and suspicious content"
|
2139 |
msgstr ""
|
2140 |
|
2141 |
-
#: lib/menu_options.php:
|
2142 |
#: views/scanner/options-group-general.php:46
|
2143 |
msgid "Scan comments for known dangerous URLs and suspicious content"
|
2144 |
msgstr ""
|
2145 |
|
2146 |
-
#: lib/menu_options.php:
|
2147 |
#: views/scanner/options-group-general.php:47
|
2148 |
msgid "Scan WordPress core, plugin, and theme options for known dangerous URLs and suspicious content"
|
2149 |
msgstr ""
|
2150 |
|
2151 |
-
#: lib/menu_options.php:
|
2152 |
#: views/scanner/options-group-general.php:48
|
2153 |
msgid "Scan for out of date, abandoned, and vulnerable plugins, themes, and WordPress versions"
|
2154 |
msgstr ""
|
2155 |
|
2156 |
-
#: lib/menu_options.php:
|
2157 |
#: views/scanner/options-group-general.php:49
|
2158 |
msgid "Scan for suspicious admin users created outside of WordPress"
|
2159 |
msgstr ""
|
2160 |
|
2161 |
-
#: lib/menu_options.php:
|
2162 |
#: views/scanner/options-group-general.php:50
|
2163 |
msgid "Check the strength of passwords"
|
2164 |
msgstr ""
|
2165 |
|
2166 |
-
#: lib/menu_options.php:
|
2167 |
#: views/scanner/options-group-general.php:51
|
2168 |
msgid "Monitor disk space"
|
2169 |
msgstr ""
|
2170 |
|
2171 |
-
#: lib/menu_options.php:
|
2172 |
#: views/scanner/options-group-general.php:52
|
2173 |
msgid "Monitor Web Application Firewall status"
|
2174 |
msgstr ""
|
2175 |
|
2176 |
-
#: lib/menu_options.php:
|
2177 |
#: views/scanner/options-group-general.php:53
|
2178 |
msgid "Scan files outside your WordPress installation"
|
2179 |
msgstr ""
|
2180 |
|
2181 |
-
#: lib/menu_options.php:
|
2182 |
#: views/scanner/options-group-general.php:54
|
2183 |
msgid "Scan images, binary, and other files as if they were executable"
|
2184 |
msgstr ""
|
2185 |
|
2186 |
-
#: lib/menu_options.php:
|
2187 |
#: views/scanner/options-group-performance.php:32
|
2188 |
msgid "Use low resource scanning (reduces server load by lengthening the scan duration)"
|
2189 |
msgstr ""
|
2190 |
|
2191 |
-
#: lib/menu_options.php:
|
2192 |
#: views/scanner/options-group-performance.php:33
|
2193 |
msgid "Limit the number of issues sent in the scan results email"
|
2194 |
msgstr ""
|
2195 |
|
2196 |
-
#: lib/menu_options.php:
|
2197 |
#: views/scanner/options-group-performance.php:34
|
2198 |
msgid "Time limit that a scan can run in seconds"
|
2199 |
msgstr ""
|
2200 |
|
2201 |
#. translators: Time until.
|
2202 |
-
#: lib/menu_options.php:
|
2203 |
#: views/scanner/options-group-performance.php:35
|
2204 |
msgid "How much memory should Wordfence request when scanning"
|
2205 |
msgstr ""
|
2206 |
|
2207 |
-
#: lib/menu_options.php:
|
2208 |
msgid "Maximum execution time for each scan stage"
|
2209 |
msgstr ""
|
2210 |
|
2211 |
-
#: lib/menu_options.php:
|
2212 |
msgid "Exclude files from scan that match these wildcard patterns"
|
2213 |
msgstr ""
|
2214 |
|
2215 |
-
#: lib/menu_options.php:
|
2216 |
msgid "Additional scan signatures"
|
2217 |
msgstr ""
|
2218 |
|
2219 |
-
#: lib/menu_options.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2220 |
msgid "Traffic logging mode (Live Traffic)"
|
2221 |
msgstr ""
|
2222 |
|
2223 |
-
#: lib/menu_options.php:
|
2224 |
#: views/tools/options-group-live-traffic.php:78
|
2225 |
msgid "Don't log signed-in users with publishing access"
|
2226 |
msgstr ""
|
2227 |
|
2228 |
-
#: lib/menu_options.php:
|
2229 |
#: views/tools/options-group-live-traffic.php:87
|
2230 |
msgid "List of comma separated usernames to ignore"
|
2231 |
msgstr ""
|
2232 |
|
2233 |
-
#: lib/menu_options.php:
|
2234 |
#: views/tools/options-group-live-traffic.php:96
|
2235 |
msgid "List of comma separated IP addresses to ignore"
|
2236 |
msgstr ""
|
2237 |
|
2238 |
-
#: lib/menu_options.php:
|
2239 |
#: views/tools/options-group-live-traffic.php:105
|
2240 |
msgid "Browser user-agent to ignore"
|
2241 |
msgstr ""
|
2242 |
|
2243 |
-
#: lib/menu_options.php:
|
2244 |
#: views/tools/options-group-live-traffic.php:114
|
2245 |
msgid "Amount of Live Traffic data to store (number of rows)"
|
2246 |
msgstr ""
|
2247 |
|
2248 |
-
#: lib/menu_options.php:
|
2249 |
msgid "Maximum days to keep Live Traffic data"
|
2250 |
msgstr ""
|
2251 |
|
2252 |
-
#: lib/menu_options.php:
|
2253 |
#: views/dashboard/options-group-import.php:31
|
2254 |
msgid "Export this site's Wordfence options for import on another site"
|
2255 |
msgstr ""
|
2256 |
|
2257 |
-
#: lib/menu_options.php:
|
2258 |
#: views/dashboard/options-group-import.php:44
|
2259 |
msgid "Import Wordfence options from another site using a token"
|
2260 |
msgstr ""
|
2261 |
|
2262 |
-
#: lib/menu_options.php:
|
2263 |
msgid "Require Cellphone Sign-in for all Administrators"
|
2264 |
msgstr ""
|
2265 |
|
2266 |
-
#: lib/menu_options.php:
|
2267 |
msgid "Enable Separate Prompt for Two Factor Code"
|
2268 |
msgstr ""
|
2269 |
|
2270 |
-
#: lib/menu_options.php:
|
2271 |
msgid "Are you sure you want to restore the default settings? This will undo any custom changes you have made to the options on this page. If you have manually disabled any rules or added any custom allowlisted URLs, those changes will not be overwritten."
|
2272 |
msgstr ""
|
2273 |
|
2274 |
-
#: lib/menu_options.php:
|
2275 |
msgid "These options are also available throughout the plugin pages, in the relevant sections. This page is provided for easier setup for experienced Wordfence users."
|
2276 |
msgstr ""
|
2277 |
|
2278 |
-
#: lib/menu_options.php:
|
2279 |
#: models/page/wfPage.php:115
|
2280 |
msgid "Scan Options"
|
2281 |
msgstr ""
|
2282 |
|
2283 |
-
#: lib/menu_options.php:
|
2284 |
msgid "Tool Options"
|
2285 |
msgstr ""
|
2286 |
|
2287 |
-
#: lib/menu_options.php:
|
2288 |
msgid "Importing and exporting of options is available on the Tools page"
|
2289 |
msgstr ""
|
2290 |
|
@@ -2323,7 +2328,7 @@ msgid "Signature updates delayed by 30 days"
|
|
2323 |
msgstr ""
|
2324 |
|
2325 |
#: lib/menu_scanner.php:80
|
2326 |
-
#: lib/wordfenceClass.php:
|
2327 |
msgid "Protect More Sites"
|
2328 |
msgstr ""
|
2329 |
|
@@ -2357,69 +2362,65 @@ msgstr ""
|
|
2357 |
msgid "Reputation Check Status"
|
2358 |
msgstr ""
|
2359 |
|
2360 |
-
#: lib/menu_scanner.php:
|
2361 |
-
msgid "Turn Off Beta Signatures"
|
2362 |
-
msgstr ""
|
2363 |
-
|
2364 |
-
#: lib/menu_scanner.php:150
|
2365 |
#: lib/menu_scanner_options.php:97
|
2366 |
msgid "Scan Options and Scheduling"
|
2367 |
msgstr ""
|
2368 |
|
2369 |
-
#: lib/menu_scanner.php:
|
2370 |
msgid "Manage scan options including scheduling"
|
2371 |
msgstr ""
|
2372 |
|
2373 |
-
#: lib/menu_scanner.php:
|
2374 |
msgid "Are you sure you want to delete?"
|
2375 |
msgstr ""
|
2376 |
|
2377 |
-
#: lib/menu_scanner.php:
|
2378 |
msgid "<strong>WARNING:</strong> If you delete the wrong file, it could cause your WordPress website to stop functioning, and you will probably have to restore from a backup."
|
2379 |
msgstr ""
|
2380 |
|
2381 |
#. translators: Support URL.
|
2382 |
-
#: lib/menu_scanner.php:
|
2383 |
msgid "Do not delete files on your system unless you're ABSOLUTELY sure you know what you're doing. If you delete the wrong file it could cause your WordPress website to stop functioning and you will probably have to restore from backups. If you're unsure, Cancel and work with your hosting provider to clean your system of infected files. If you'd like to learn more, <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">click here for our help article<span class=\"screen-reader-text\"> (opens in new tab)</span></a>."
|
2384 |
msgstr ""
|
2385 |
|
2386 |
-
#: lib/menu_scanner.php:
|
2387 |
msgid "Delete Files"
|
2388 |
msgstr ""
|
2389 |
|
2390 |
-
#: lib/menu_scanner.php:
|
2391 |
msgid "Are you sure you want to repair?"
|
2392 |
msgstr ""
|
2393 |
|
2394 |
-
#: lib/menu_scanner.php:
|
2395 |
msgid "Do not repair files on your system unless you're ABSOLUTELY sure you know what you're doing. If you repair the wrong file it could cause your WordPress website to stop functioning and you will probably have to restore from backups. If you're unsure, Cancel and work with your hosting provider to clean your system of infected files."
|
2396 |
msgstr ""
|
2397 |
|
2398 |
-
#: lib/menu_scanner.php:
|
2399 |
msgid "Repair Files"
|
2400 |
msgstr ""
|
2401 |
|
2402 |
#. translators: Time limit (number).
|
2403 |
#. translators: Support URL.
|
2404 |
-
#: lib/menu_scanner.php:
|
2405 |
#: lib/menu_tools_twoFactor.php:246
|
2406 |
#: lib/menu_tools_twoFactor.php:255
|
2407 |
#: lib/menu_tools_twoFactor.php:264
|
2408 |
#: lib/menu_tools_twoFactor.php:284
|
2409 |
-
#: lib/wordfenceClass.php:
|
2410 |
-
#: lib/wordfenceClass.php:
|
2411 |
-
#: lib/wordfenceClass.php:
|
2412 |
-
#: lib/wordfenceClass.php:
|
2413 |
-
#: lib/wordfenceClass.php:
|
2414 |
-
#: lib/wordfenceClass.php:
|
2415 |
-
#: lib/wordfenceClass.php:
|
2416 |
-
#: lib/wordfenceClass.php:
|
2417 |
-
#: lib/wordfenceClass.php:
|
2418 |
-
#: lib/wordfenceClass.php:
|
2419 |
-
#: lib/wordfenceClass.php:
|
2420 |
-
#: lib/wordfenceClass.php:
|
2421 |
-
#: lib/wordfenceClass.php:
|
2422 |
-
#: lib/wordfenceClass.php:
|
2423 |
#: views/dashboard/options-group-import.php:147
|
2424 |
#: views/dashboard/options-group-import.php:157
|
2425 |
#: views/dashboard/options-group-import.php:177
|
@@ -2434,39 +2435,39 @@ msgstr ""
|
|
2434 |
msgid "Close"
|
2435 |
msgstr ""
|
2436 |
|
2437 |
-
#: lib/menu_scanner.php:
|
2438 |
msgid "A Wordfence scan looks for malware, malicious URLs, and patterns of infections by examining all of the files, posts, and comments on your WordPress website. It also checks your server and monitors your site's online reputation."
|
2439 |
msgstr ""
|
2440 |
|
2441 |
-
#: lib/menu_scanner.php:
|
2442 |
msgid "Manage Scan Settings"
|
2443 |
msgstr ""
|
2444 |
|
2445 |
-
#: lib/menu_scanner.php:
|
2446 |
msgid "Set up the way you want the scan to monitor your site security including custom scan configurations and scheduling."
|
2447 |
msgstr ""
|
2448 |
|
2449 |
-
#: lib/menu_scanner.php:
|
2450 |
msgid "Start Your First Scan"
|
2451 |
msgstr ""
|
2452 |
|
2453 |
-
#: lib/menu_scanner.php:
|
2454 |
msgid "By default, Wordfence will scan your site daily. Start your first scan now to see if your site has any security issues that need to be addressed. From here you can run manual scans any time you like."
|
2455 |
msgstr ""
|
2456 |
|
2457 |
-
#: lib/menu_scanner.php:
|
2458 |
msgid "Scan Options & Settings"
|
2459 |
msgstr ""
|
2460 |
|
2461 |
-
#: lib/menu_scanner.php:
|
2462 |
msgid "All of your scan options, including scheduling, are now located here."
|
2463 |
msgstr ""
|
2464 |
|
2465 |
-
#: lib/menu_scanner.php:
|
2466 |
msgid "Scan Progress and Activity"
|
2467 |
msgstr ""
|
2468 |
|
2469 |
-
#: lib/menu_scanner.php:
|
2470 |
msgid "Track each scan stage as Wordfence scans your entire site. Along the way you can see the activity log one line at a time or expand the activity log for a more detailed view. Clicking on scan results will reveal detailed scan findings."
|
2471 |
msgstr ""
|
2472 |
|
@@ -2622,7 +2623,7 @@ msgstr ""
|
|
2622 |
#: lib/menu_tools_livetraffic.php:41
|
2623 |
#: lib/menu_tools_livetraffic.php:571
|
2624 |
#: lib/menu_tools_livetraffic.php:602
|
2625 |
-
#: lib/wordfenceClass.php:
|
2626 |
#: models/page/wfPage.php:119
|
2627 |
msgid "Live Traffic"
|
2628 |
msgstr ""
|
@@ -2642,7 +2643,7 @@ msgid "Diagnostics"
|
|
2642 |
msgstr ""
|
2643 |
|
2644 |
#: lib/menu_tools_diagnostic.php:34
|
2645 |
-
msgid "This page shows information that can be used for troubleshooting conflicts, configuration issues, or compatibility with other plugins, themes, or a host's environment."
|
2646 |
msgstr ""
|
2647 |
|
2648 |
#: lib/menu_tools_diagnostic.php:38
|
@@ -2975,7 +2976,7 @@ msgstr ""
|
|
2975 |
|
2976 |
#: lib/menu_tools_diagnostic.php:667
|
2977 |
#: lib/menu_tools_diagnostic.php:706
|
2978 |
-
#: lib/wordfenceClass.php:
|
2979 |
msgid "Download"
|
2980 |
msgstr ""
|
2981 |
|
@@ -3005,7 +3006,7 @@ msgid "New Issues (%d total)"
|
|
3005 |
msgstr ""
|
3006 |
|
3007 |
#: lib/menu_tools_diagnostic.php:746
|
3008 |
-
#: lib/wordfenceClass.php:
|
3009 |
#: views/diagnostics/text.php:519
|
3010 |
msgid "No New Issues"
|
3011 |
msgstr ""
|
@@ -3070,36 +3071,32 @@ msgstr ""
|
|
3070 |
msgid "Disable reading of php://input"
|
3071 |
msgstr ""
|
3072 |
|
3073 |
-
#: lib/menu_tools_diagnostic.php:
|
3074 |
-
|
3075 |
-
msgstr ""
|
3076 |
-
|
3077 |
-
#: lib/menu_tools_diagnostic.php:896
|
3078 |
-
#: lib/wordfenceClass.php:6230
|
3079 |
msgid "Restore Defaults"
|
3080 |
msgstr ""
|
3081 |
|
3082 |
-
#: lib/menu_tools_diagnostic.php:
|
3083 |
-
#: lib/wordfenceClass.php:
|
3084 |
msgid "Cancel Changes"
|
3085 |
msgstr ""
|
3086 |
|
3087 |
-
#: lib/menu_tools_diagnostic.php:
|
3088 |
-
#: lib/wordfenceClass.php:
|
3089 |
msgid "Save Changes"
|
3090 |
msgstr ""
|
3091 |
|
3092 |
-
#: lib/menu_tools_diagnostic.php:
|
3093 |
#: views/options/block-all-options-controls.php:162
|
3094 |
#: views/options/block-controls.php:77
|
3095 |
msgid "Confirm Restore Defaults"
|
3096 |
msgstr ""
|
3097 |
|
3098 |
-
#: lib/menu_tools_diagnostic.php:
|
3099 |
msgid "Are you sure you want to restore the default Diagnostics settings? This will undo any custom changes you have made to the options on this page."
|
3100 |
msgstr ""
|
3101 |
|
3102 |
-
#: lib/menu_tools_diagnostic.php:
|
3103 |
#: views/options/block-all-options-controls.php:165
|
3104 |
#: views/options/block-controls.php:80
|
3105 |
msgid "Restore<span class=\"wf-hidden-xs\"> Defaults</span>"
|
@@ -3156,14 +3153,14 @@ msgstr ""
|
|
3156 |
#: lib/menu_tools_livetraffic.php:100
|
3157 |
#: lib/menu_tools_livetraffic.php:227
|
3158 |
#: lib/menu_tools_livetraffic.php:458
|
3159 |
-
#: lib/wordfenceClass.php:
|
3160 |
msgid "Human"
|
3161 |
msgstr ""
|
3162 |
|
3163 |
#: lib/menu_tools_livetraffic.php:101
|
3164 |
#: lib/menu_tools_livetraffic.php:228
|
3165 |
#: lib/menu_tools_livetraffic.php:458
|
3166 |
-
#: lib/wordfenceClass.php:
|
3167 |
msgid "Bot"
|
3168 |
msgstr ""
|
3169 |
|
@@ -3173,7 +3170,7 @@ msgstr ""
|
|
3173 |
|
3174 |
#: lib/menu_tools_livetraffic.php:103
|
3175 |
#: lib/wfDiagnostic.php:803
|
3176 |
-
#: lib/wordfenceClass.php:
|
3177 |
msgid "Blocked"
|
3178 |
msgstr ""
|
3179 |
|
@@ -3319,7 +3316,7 @@ msgid "%s hits"
|
|
3319 |
msgstr ""
|
3320 |
|
3321 |
#: lib/menu_tools_livetraffic.php:286
|
3322 |
-
#: lib/wordfenceClass.php:
|
3323 |
msgid "Type"
|
3324 |
msgstr ""
|
3325 |
|
@@ -3342,7 +3339,7 @@ msgid "IP Address"
|
|
3342 |
msgstr ""
|
3343 |
|
3344 |
#: lib/menu_tools_livetraffic.php:291
|
3345 |
-
#: lib/wordfenceClass.php:
|
3346 |
#: views/blocking/blocking-create.php:193
|
3347 |
msgid "Hostname"
|
3348 |
msgstr ""
|
@@ -3363,7 +3360,6 @@ msgstr ""
|
|
3363 |
#: views/scanner/issue-wfPluginUpgrade.php:20
|
3364 |
#: views/scanner/issue-wfPluginVulnerable.php:17
|
3365 |
#: views/scanner/issue-wfPluginVulnerable.php:18
|
3366 |
-
#: views/scanner/issue-wfPluginVulnerable.php:19
|
3367 |
#: views/scanner/issue-wfThemeUpgrade.php:18
|
3368 |
#: views/scanner/issue-wfThemeUpgrade.php:19
|
3369 |
#: views/scanner/issue-wfUpgrade.php:17
|
@@ -3702,22 +3698,22 @@ msgid "You've chosen to block the network that <span style=\"color: #F00;\">%s</
|
|
3702 |
msgstr ""
|
3703 |
|
3704 |
#: lib/menu_tools_whois.php:95
|
3705 |
-
#: lib/wordfenceClass.php:
|
3706 |
msgid "Enter a valid IP or domain"
|
3707 |
msgstr ""
|
3708 |
|
3709 |
#: lib/menu_tools_whois.php:95
|
3710 |
-
#: lib/wordfenceClass.php:
|
3711 |
msgid "Please enter a valid IP address or domain name for your whois lookup."
|
3712 |
msgstr ""
|
3713 |
|
3714 |
#: lib/menu_tools_whois.php:99
|
3715 |
-
#: lib/wordfenceClass.php:
|
3716 |
msgid "Loading..."
|
3717 |
msgstr ""
|
3718 |
|
3719 |
#: lib/menu_tools_whois.php:104
|
3720 |
-
#: lib/wordfenceClass.php:
|
3721 |
msgid "Look up IP or Domain"
|
3722 |
msgstr ""
|
3723 |
|
@@ -3747,7 +3743,7 @@ msgstr ""
|
|
3747 |
|
3748 |
#: lib/menu_wordfence_central.php:44
|
3749 |
#: lib/menu_wordfence_central.php:57
|
3750 |
-
#: lib/wordfenceClass.php:
|
3751 |
msgid "Wordfence Central"
|
3752 |
msgstr ""
|
3753 |
|
@@ -3830,20 +3826,20 @@ msgstr ""
|
|
3830 |
#. translators: Error message.
|
3831 |
#: lib/rest-api/wfRESTConfigController.php:215
|
3832 |
#: lib/rest-api/wfRESTConfigController.php:258
|
3833 |
-
#: lib/wordfenceClass.php:
|
3834 |
msgid "An error occurred while saving the configuration: %s"
|
3835 |
msgstr ""
|
3836 |
|
3837 |
#. translators: Error message.
|
3838 |
#: lib/rest-api/wfRESTConfigController.php:226
|
3839 |
#: lib/rest-api/wfRESTConfigController.php:269
|
3840 |
-
#: lib/wordfenceClass.php:
|
3841 |
msgid "Errors occurred while saving the configuration: %s"
|
3842 |
msgstr ""
|
3843 |
|
3844 |
#: lib/rest-api/wfRESTConfigController.php:231
|
3845 |
#: lib/rest-api/wfRESTConfigController.php:274
|
3846 |
-
#: lib/wordfenceClass.php:
|
3847 |
msgid "Errors occurred while saving the configuration."
|
3848 |
msgstr ""
|
3849 |
|
@@ -3960,37 +3956,37 @@ msgid "Wordfence activity for %1$s on %2$s"
|
|
3960 |
msgstr ""
|
3961 |
|
3962 |
#: lib/wfActivityReport.php:584
|
3963 |
-
#: lib/wordfenceClass.php:
|
3964 |
msgid "Blocked because the IP is blocklisted"
|
3965 |
msgstr ""
|
3966 |
|
3967 |
#. translators: Reason for firewall action.
|
3968 |
#: lib/wfActivityReport.php:587
|
3969 |
-
#: lib/wordfenceClass.php:
|
3970 |
msgid "Blocked for %s"
|
3971 |
msgstr ""
|
3972 |
|
3973 |
#. translators: 1. Reason for firewall action. 2. Input parameter. 2. Input parameter value.
|
3974 |
#: lib/wfActivityReport.php:599
|
3975 |
-
#: lib/wordfenceClass.php:
|
3976 |
msgid "Blocked for %1$s in query string: %2$s = %3$s"
|
3977 |
msgstr ""
|
3978 |
|
3979 |
#. translators: 1. Reason for firewall action. 2. Input parameter. 2. Input parameter value.
|
3980 |
#: lib/wfActivityReport.php:602
|
3981 |
-
#: lib/wordfenceClass.php:
|
3982 |
msgid "Blocked for %1$s in POST body: %2$s = %3$s"
|
3983 |
msgstr ""
|
3984 |
|
3985 |
#. translators: 1. Reason for firewall action. 2. Input parameter. 2. Input parameter value.
|
3986 |
#: lib/wfActivityReport.php:605
|
3987 |
-
#: lib/wordfenceClass.php:
|
3988 |
msgid "Blocked for %1$s in cookie: %2$s = %3$s"
|
3989 |
msgstr ""
|
3990 |
|
3991 |
#. translators: 1. Reason for firewall action. 2. Input parameter. 2. Input parameter value.
|
3992 |
#: lib/wfActivityReport.php:608
|
3993 |
-
#: lib/wordfenceClass.php:
|
3994 |
msgid "Blocked for %1$s in file: %2$s = %3$s"
|
3995 |
msgstr ""
|
3996 |
|
@@ -4001,10 +3997,10 @@ msgid "Unknown"
|
|
4001 |
msgstr ""
|
4002 |
|
4003 |
#: lib/wfAdminNoticeQueue.php:193
|
4004 |
-
#: lib/wordfenceClass.php:
|
4005 |
-
#: lib/wordfenceClass.php:
|
4006 |
-
#: lib/wordfenceClass.php:
|
4007 |
-
#: lib/wordfenceClass.php:
|
4008 |
msgid "Dismiss"
|
4009 |
msgstr ""
|
4010 |
|
@@ -5174,48 +5170,48 @@ msgid "Invalid response received from Wordfence Central when fetching token."
|
|
5174 |
msgstr ""
|
5175 |
|
5176 |
#. translators: 1. Key in key-value store. 2. Value in key-value store.
|
5177 |
-
#: lib/wfConfig.php:
|
5178 |
msgid "wfConfig::set() got an array as second param with key: %1$s and value: %2$s"
|
5179 |
msgstr ""
|
5180 |
|
5181 |
#. translators: Key in key-value store.
|
5182 |
-
#: lib/wfConfig.php:
|
5183 |
msgid "Error reassembling value for %s"
|
5184 |
msgstr ""
|
5185 |
|
5186 |
#. translators: 1. Key in key-value store. 2. MySQL error number. 3. MySQL error message.
|
5187 |
-
#: lib/wfConfig.php:
|
5188 |
-
#: lib/wfConfig.php:
|
5189 |
-
#: lib/wfConfig.php:
|
5190 |
-
#: lib/wfConfig.php:
|
5191 |
-
#: lib/wfConfig.php:
|
5192 |
msgid "Error writing value chunk for %1$s (MySQLi error: [%2$s] %3$s)"
|
5193 |
msgstr ""
|
5194 |
|
5195 |
#. translators: Key in key-value store.
|
5196 |
-
#: lib/wfConfig.php:
|
5197 |
msgid "Error writing value header for %s"
|
5198 |
msgstr ""
|
5199 |
|
5200 |
#. translators: 1. Key in key-value store. 2. MySQL error number. 3. MySQL error message.
|
5201 |
-
#: lib/wfConfig.php:
|
5202 |
-
#: lib/wfConfig.php:
|
5203 |
-
#: lib/wfConfig.php:
|
5204 |
msgid "Error writing value for %1$s (MySQLi error: [%2$s] %3$s)"
|
5205 |
msgstr ""
|
5206 |
|
5207 |
#. translators: 1. Key in key-value store. 2. MySQL error number. 3. MySQL error message.
|
5208 |
-
#: lib/wfConfig.php:
|
5209 |
msgid "Error finishing writing value for %1$s (MySQLi error: [%2$s] %3$s)"
|
5210 |
msgstr ""
|
5211 |
|
5212 |
#. translators: Support URL.
|
5213 |
-
#: lib/wfConfig.php:
|
5214 |
msgid "Wordfence Upgrade not run. Please modify your .htaccess"
|
5215 |
msgstr ""
|
5216 |
|
5217 |
#. translators: Support URL.
|
5218 |
-
#: lib/wfConfig.php:
|
5219 |
msgid ""
|
5220 |
"To preserve the integrity of your website we are not running Wordfence auto-update.\n"
|
5221 |
"You are running the LiteSpeed web server which has been known to cause a problem with Wordfence auto-update.\n"
|
@@ -5227,75 +5223,79 @@ msgid ""
|
|
5227 |
""
|
5228 |
msgstr ""
|
5229 |
|
5230 |
-
#: lib/wfConfig.php:
|
5231 |
msgid "Unable to save the .htaccess file needed to disable script execution in the uploads directory. Please check your permissions on that directory."
|
5232 |
msgstr ""
|
5233 |
|
5234 |
-
#: lib/wfConfig.php:
|
5235 |
msgid "Unable to remove code execution protections applied to the .htaccess file in the uploads directory. Please check your permissions on that file."
|
5236 |
msgstr ""
|
5237 |
|
5238 |
-
#: lib/wfConfig.php:
|
5239 |
-
#: lib/wordfenceClass.php:
|
5240 |
msgid "The grace period end time must be in the future."
|
5241 |
msgstr ""
|
5242 |
|
5243 |
-
#: lib/wfConfig.php:
|
5244 |
msgid "Unknown firewall mode."
|
5245 |
msgstr ""
|
5246 |
|
5247 |
-
#: lib/wfConfig.php:
|
5248 |
msgid "The following emails are invalid: "
|
5249 |
msgstr ""
|
5250 |
|
5251 |
#. translators: Regular expression.
|
5252 |
-
#: lib/wfConfig.php:
|
5253 |
msgid "\"%s\" is not a valid regular expression."
|
5254 |
msgstr ""
|
5255 |
|
5256 |
-
#: lib/wfConfig.php:
|
5257 |
msgid "Please make sure you separate your IP addresses with commas. The following allowlisted IP addresses are invalid: "
|
5258 |
msgstr ""
|
5259 |
|
5260 |
-
#: lib/wfConfig.php:
|
5261 |
msgid "The following users you selected to ignore in live traffic reports are not valid on this system: "
|
5262 |
msgstr ""
|
5263 |
|
5264 |
-
#: lib/wfConfig.php:
|
5265 |
msgid "The following IPs you selected to ignore in live traffic reports are not valid: "
|
5266 |
msgstr ""
|
5267 |
|
5268 |
-
#: lib/wfConfig.php:
|
5269 |
msgid "The following IPs/ranges you selected to trust as proxies are not valid: "
|
5270 |
msgstr ""
|
5271 |
|
5272 |
-
#: lib/wfConfig.php:
|
5273 |
msgid "An empty license key was entered."
|
5274 |
msgstr ""
|
5275 |
|
5276 |
-
#: lib/wfConfig.php:
|
5277 |
-
#: lib/wordfenceClass.php:
|
5278 |
msgid "The license key entered is not in a valid format. It must contain only numbers and the letters A-F."
|
5279 |
msgstr ""
|
5280 |
|
5281 |
-
#: lib/wfConfig.php:
|
5282 |
msgid "A wildcard cannot be used to exclude all files from the scan."
|
5283 |
msgstr ""
|
5284 |
|
5285 |
-
#: lib/wfConfig.php:
|
5286 |
-
|
|
|
|
|
|
|
|
|
5287 |
msgid "The Wordfence server's response did not contain the expected elements."
|
5288 |
msgstr ""
|
5289 |
|
5290 |
-
#: lib/wfConfig.php:
|
5291 |
msgid "Your options have been saved, but you left your license key blank, so we tried to get you a free license key from the Wordfence servers. There was a problem fetching the free key: "
|
5292 |
msgstr ""
|
5293 |
|
5294 |
-
#: lib/wfConfig.php:
|
5295 |
msgid "Your options have been saved. However we noticed you changed your license key, and we tried to verify it with the Wordfence servers but received an error: "
|
5296 |
msgstr ""
|
5297 |
|
5298 |
-
#: lib/wfConfig.php:
|
5299 |
msgid "Your options have been saved. However we tried to verify your license key with the Wordfence servers and received an error: "
|
5300 |
msgstr ""
|
5301 |
|
@@ -5502,7 +5502,7 @@ msgid "Connecting back to this site"
|
|
5502 |
msgstr ""
|
5503 |
|
5504 |
#: lib/wfDiagnostic.php:132
|
5505 |
-
msgid "Connecting back to this site via IPv6"
|
5506 |
msgstr ""
|
5507 |
|
5508 |
#: lib/wfDiagnostic.php:133
|
@@ -5909,7 +5909,7 @@ msgid "Interval the trash is automatically emptied at in days"
|
|
5909 |
msgstr ""
|
5910 |
|
5911 |
#: lib/wfDiagnostic.php:941
|
5912 |
-
#: lib/wordfenceClass.php:
|
5913 |
msgid "Never"
|
5914 |
msgstr ""
|
5915 |
|
@@ -6156,7 +6156,7 @@ msgid "Access from your area has been temporarily limited for security reasons"
|
|
6156 |
msgstr ""
|
6157 |
|
6158 |
#: lib/wfLog.php:626
|
6159 |
-
#: lib/wordfenceClass.php:
|
6160 |
#: waf/wfWAFIPBlocksController.php:99
|
6161 |
msgid "Manual block by administrator"
|
6162 |
msgstr ""
|
@@ -6236,93 +6236,93 @@ msgstr ""
|
|
6236 |
msgid "Wordfence could not start a scan because the cron key does not match the saved key. Saved: %1$s Sent: %2$s Current unexploded: %3$s"
|
6237 |
msgstr ""
|
6238 |
|
6239 |
-
#: lib/wfScan.php:
|
6240 |
msgid "Checking if scan is already running"
|
6241 |
msgstr ""
|
6242 |
|
6243 |
-
#: lib/wfScan.php:
|
6244 |
msgid "There is already a scan running."
|
6245 |
msgstr ""
|
6246 |
|
6247 |
-
#: lib/wfScan.php:
|
6248 |
msgid "Using low resource scanning"
|
6249 |
msgstr ""
|
6250 |
|
6251 |
-
#: lib/wfScan.php:
|
6252 |
msgid "Requesting max memory"
|
6253 |
msgstr ""
|
6254 |
|
6255 |
-
#: lib/wfScan.php:
|
6256 |
msgid "Setting up error handling environment"
|
6257 |
msgstr ""
|
6258 |
|
6259 |
-
#: lib/wfScan.php:
|
6260 |
msgid "Setting up scanRunning and starting scan"
|
6261 |
msgstr ""
|
6262 |
|
6263 |
#. translators: Error message (used for debugging).
|
6264 |
-
#: lib/wfScan.php:
|
6265 |
msgid "Got a true deserialized value back from 'wfsd_engine' with type: %s"
|
6266 |
msgstr ""
|
6267 |
|
6268 |
#. translators: Error message (used for debugging).
|
6269 |
-
#: lib/wfScan.php:
|
6270 |
msgid "Scan can't continue - stored data not found after a fork. Got type: %s"
|
6271 |
msgstr ""
|
6272 |
|
6273 |
-
#: lib/wfScan.php:
|
6274 |
-
#: lib/wfScan.php:
|
6275 |
msgid "Scan can't continue - stored data not found after a fork."
|
6276 |
msgstr ""
|
6277 |
|
6278 |
#. translators: Error message.
|
6279 |
-
#: lib/wfScan.php:
|
6280 |
-
#: lib/wfScan.php:
|
6281 |
msgid "Previous scan terminated with an error. See below."
|
6282 |
msgstr ""
|
6283 |
|
6284 |
-
#: lib/wfScan.php:
|
6285 |
msgid "Contacting Wordfence to initiate scan"
|
6286 |
msgstr ""
|
6287 |
|
6288 |
#. translators: Time until.
|
6289 |
-
#: lib/wfScan.php:
|
6290 |
msgid "Deferring scheduled scan by %s"
|
6291 |
msgstr ""
|
6292 |
|
6293 |
-
#: lib/wfScan.php:
|
6294 |
msgid "Initiating quick scan"
|
6295 |
msgstr ""
|
6296 |
|
6297 |
#. translators: 1. Bytes of memory. 2. Bytes of memory.
|
6298 |
#. translators: 1. Memory in bytes. 2. Memory in bytes.
|
6299 |
-
#: lib/wfScan.php:213
|
6300 |
-
#: lib/wfScan.php:225
|
6301 |
-
#: lib/wfScan.php:248
|
6302 |
-
#: lib/wfScan.php:263
|
6303 |
-
#: lib/wfScan.php:278
|
6304 |
-
#: lib/wfScan.php:293
|
6305 |
-
#: lib/wfScanEngine.php:446
|
6306 |
-
msgid "Wordfence used %1$s of memory for scan. Server peak memory usage was: %2$s"
|
6307 |
-
msgstr ""
|
6308 |
-
|
6309 |
-
#. translators: Error message.
|
6310 |
#: lib/wfScan.php:217
|
6311 |
#: lib/wfScan.php:229
|
6312 |
#: lib/wfScan.php:252
|
6313 |
#: lib/wfScan.php:267
|
6314 |
#: lib/wfScan.php:282
|
6315 |
#: lib/wfScan.php:297
|
6316 |
-
#: lib/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6317 |
msgid "Scan terminated with error: %s"
|
6318 |
msgstr ""
|
6319 |
|
6320 |
-
#: lib/wfScan.php:
|
6321 |
msgid "Wordfence scan failed because of license site URL conflict"
|
6322 |
msgstr ""
|
6323 |
|
6324 |
#. translators: Error message.
|
6325 |
-
#: lib/wfScan.php:
|
6326 |
msgid "Scan Engine Error: %s"
|
6327 |
msgstr ""
|
6328 |
|
@@ -6376,767 +6376,783 @@ msgid "Calling startScan(true)"
|
|
6376 |
msgstr ""
|
6377 |
|
6378 |
#. translators: 1. Number of files. 2. Number of plugins. 3. Number of themes. 4. Number of posts. 5. Number of comments. 6. Number of URLs. 7. Time duration.
|
6379 |
-
#: lib/wfScanEngine.php:
|
6380 |
msgid "Scan Complete. Scanned %1$d files, %2$d plugins, %3$d themes, %4$d posts, %5$d comments and %6$d URLs in %7$s."
|
6381 |
msgstr ""
|
6382 |
|
6383 |
#. translators: 1. Time duration.
|
6384 |
-
#: lib/wfScanEngine.php:
|
6385 |
msgid "Quick Scan Complete. Scanned in %s."
|
6386 |
msgstr ""
|
6387 |
|
6388 |
#. translators: Number of scan results.
|
6389 |
-
#: lib/wfScanEngine.php:
|
6390 |
msgid "%d ignored issue was also detected."
|
6391 |
msgid_plural "%d ignored issues were also detected."
|
6392 |
msgstr[0] ""
|
6393 |
msgstr[1] ""
|
6394 |
|
6395 |
#. translators: Number of scan results.
|
6396 |
-
#: lib/wfScanEngine.php:
|
6397 |
msgid "Scan complete. You have %d new issue to fix."
|
6398 |
msgid_plural "Scan complete. You have %d new issues to fix."
|
6399 |
msgstr[0] ""
|
6400 |
msgstr[1] ""
|
6401 |
|
6402 |
-
#: lib/wfScanEngine.php:
|
6403 |
msgid "See below."
|
6404 |
msgstr ""
|
6405 |
|
6406 |
-
#: lib/wfScanEngine.php:
|
6407 |
msgid "Scan complete. Congratulations, no new problems found."
|
6408 |
msgstr ""
|
6409 |
|
6410 |
-
#: lib/wfScanEngine.php:
|
6411 |
msgid "Checking if your site IP is generating spam"
|
6412 |
msgstr ""
|
6413 |
|
6414 |
-
#: lib/wfScanEngine.php:
|
6415 |
msgid "Checking if your IP is generating spam is for paid members only"
|
6416 |
msgstr ""
|
6417 |
|
6418 |
-
#: lib/wfScanEngine.php:
|
6419 |
msgid "Checking if your site is on a domain blocklist"
|
6420 |
msgstr ""
|
6421 |
|
6422 |
-
#: lib/wfScanEngine.php:
|
6423 |
msgid "Checking if your site is on a domain blocklist is for paid members only"
|
6424 |
msgstr ""
|
6425 |
|
6426 |
#. translators: Error message.
|
6427 |
-
#: lib/wfScanEngine.php:
|
6428 |
msgid "Error checking domain blocklists: %s"
|
6429 |
msgstr ""
|
6430 |
|
6431 |
#. translators: WordPress site ID.
|
6432 |
-
#: lib/wfScanEngine.php:
|
6433 |
msgid "The multisite blog with ID %d is listed on Google's Safe Browsing malware list."
|
6434 |
msgstr ""
|
6435 |
|
6436 |
-
#: lib/wfScanEngine.php:
|
6437 |
msgid "Your site is listed on Google's Safe Browsing malware list."
|
6438 |
msgstr ""
|
6439 |
|
6440 |
#. translators: 1. URL. 2. URL.
|
6441 |
-
#: lib/wfScanEngine.php:
|
6442 |
msgid "The URL %1$s is on the malware list. More info available at <a href=\"http://safebrowsing.clients.google.com/safebrowsing/diagnostic?site=%2$s&client=googlechrome&hl=en-US\" target=\"_blank\" rel=\"noopener noreferrer\">Google Safe Browsing diagnostic page<span class=\"screen-reader-text\"> ("
|
6443 |
msgstr ""
|
6444 |
|
6445 |
#. translators: WordPress site ID.
|
6446 |
-
#: lib/wfScanEngine.php:
|
6447 |
msgid "The multisite blog with ID %d is listed on Google's Safe Browsing phishing list."
|
6448 |
msgstr ""
|
6449 |
|
6450 |
-
#: lib/wfScanEngine.php:
|
6451 |
msgid "Your site is listed on Google's Safe Browsing phishing list."
|
6452 |
msgstr ""
|
6453 |
|
6454 |
#. translators: 1. URL. 2. URL.
|
6455 |
-
#: lib/wfScanEngine.php:
|
6456 |
msgid "The URL %1$s is on the phishing list. More info available at <a href=\"http://safebrowsing.clients.google.com/safebrowsing/diagnostic?site=%2$s&client=googlechrome&hl=en-US\" target=\"_blank\" rel=\"noopener noreferrer\">Google Safe Browsing diagnostic page<span class=\"screen-reader-text\"> ("
|
6457 |
msgstr ""
|
6458 |
|
6459 |
#. translators: WordPress site ID.
|
6460 |
-
#: lib/wfScanEngine.php:
|
6461 |
msgid "The multisite blog with ID %d is listed on the Wordfence domain blocklist."
|
6462 |
msgstr ""
|
6463 |
|
6464 |
-
#: lib/wfScanEngine.php:
|
6465 |
msgid "Your site is listed on the Wordfence domain blocklist."
|
6466 |
msgstr ""
|
6467 |
|
6468 |
#. translators: URL.
|
6469 |
-
#: lib/wfScanEngine.php:
|
6470 |
msgid "The URL %s is on the blocklist."
|
6471 |
msgstr ""
|
6472 |
|
6473 |
#. translators: WordPress site ID.
|
6474 |
-
#: lib/wfScanEngine.php:
|
6475 |
msgid "The multisite blog with ID %d is listed on a domain blocklist."
|
6476 |
msgstr ""
|
6477 |
|
6478 |
-
#: lib/wfScanEngine.php:
|
6479 |
msgid "Your site is listed on a domain blocklist."
|
6480 |
msgstr ""
|
6481 |
|
6482 |
#. translators: URL.
|
6483 |
-
#: lib/wfScanEngine.php:
|
6484 |
msgid "The URL is: %s"
|
6485 |
msgstr ""
|
6486 |
|
6487 |
-
#: lib/wfScanEngine.php:
|
6488 |
msgid "Checking for the most secure way to get IPs"
|
6489 |
msgstr ""
|
6490 |
|
6491 |
-
#: lib/wfScanEngine.php:
|
6492 |
msgid "Unable to accurately detect IPs"
|
6493 |
msgstr ""
|
6494 |
|
6495 |
#. translators: Support URL.
|
6496 |
-
#: lib/wfScanEngine.php:
|
6497 |
msgid "Wordfence was unable to validate a test request to your website. This can happen if your website is behind a proxy that does not use one of the standard ways to convey the IP of the request or it is unreachable publicly. IP blocking and live traffic information may not be accurate. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Get More Information<span class=\"screen-reader-text\"> ("
|
6498 |
msgstr ""
|
6499 |
|
6500 |
-
#: lib/wfScanEngine.php:
|
6501 |
-
#: lib/wordfenceClass.php:
|
6502 |
msgid "For maximum security use PHP's built in REMOTE_ADDR."
|
6503 |
msgstr ""
|
6504 |
|
6505 |
-
#: lib/wfScanEngine.php:
|
6506 |
-
#: lib/wordfenceClass.php:
|
6507 |
msgid "This site appears to be behind a front-end proxy, so using the X-Forwarded-For HTTP header will resolve to the correct IPs."
|
6508 |
msgstr ""
|
6509 |
|
6510 |
-
#: lib/wfScanEngine.php:
|
6511 |
-
#: lib/wordfenceClass.php:
|
6512 |
msgid "This site appears to be behind a front-end proxy, so using the X-Real-IP HTTP header will resolve to the correct IPs."
|
6513 |
msgstr ""
|
6514 |
|
6515 |
-
#: lib/wfScanEngine.php:
|
6516 |
-
#: lib/wordfenceClass.php:
|
6517 |
msgid "This site appears to be behind Cloudflare, so using the Cloudflare \"CF-Connecting-IP\" HTTP header will resolve to the correct IPs."
|
6518 |
msgstr ""
|
6519 |
|
6520 |
-
#: lib/wfScanEngine.php:
|
6521 |
msgid "'How does Wordfence get IPs' is misconfigured"
|
6522 |
msgstr ""
|
6523 |
|
6524 |
#. translators: Support URL.
|
6525 |
-
#: lib/wfScanEngine.php:
|
6526 |
msgid "A test request to this website was detected on a different value for this setting. IP blocking and live traffic information may not be accurate. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Get More Information<span class=\"screen-reader-text\"> ("
|
6527 |
msgstr ""
|
6528 |
|
6529 |
-
#: lib/wfScanEngine.php:
|
6530 |
msgid "Check for publicly accessible configuration files, backup files and logs"
|
6531 |
msgstr ""
|
6532 |
|
6533 |
#. translators: File path.
|
6534 |
-
#: lib/wfScanEngine.php:
|
6535 |
msgid "Publicly accessible config, backup, or log file found: %s"
|
6536 |
msgstr ""
|
6537 |
|
6538 |
#. translators: 1. URL to publicly accessible file. 2. Support URL.
|
6539 |
-
#: lib/wfScanEngine.php:
|
6540 |
msgid "<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%1$s</a> is publicly accessible and may expose source code or sensitive information about your site. Files such as this one are commonly checked for by scanners and should be made inaccessible. Alternately, some can be removed if you are certain your site does not need them. Sites using the nginx web server may need manual configuration changes to protect such files. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn more<span class=\"screen-reader-text\"> ("
|
6541 |
msgstr ""
|
6542 |
|
6543 |
-
#: lib/wfScanEngine.php:
|
6544 |
msgid "Checking if your server discloses the path to the document root"
|
6545 |
msgstr ""
|
6546 |
|
6547 |
-
#: lib/wfScanEngine.php:
|
6548 |
msgid "Web server exposes the document root"
|
6549 |
msgstr ""
|
6550 |
|
6551 |
-
#: lib/wfScanEngine.php:
|
6552 |
msgid "Full Path Disclosure (FPD) vulnerabilities enable the attacker to see the path to the webroot/file. e.g.: /home/user/htdocs/file/. Certain vulnerabilities, such as using the load_file() (within a SQL Injection) query to view the page source, require the attacker to have the full path to the file they wish to view."
|
6553 |
msgstr ""
|
6554 |
|
6555 |
-
#: lib/wfScanEngine.php:
|
6556 |
msgid "Directory listing is enabled"
|
6557 |
msgstr ""
|
6558 |
|
6559 |
-
#: lib/wfScanEngine.php:
|
6560 |
msgid "Directory listing provides an attacker with the complete index of all the resources located inside of the directory. The specific risks and consequences vary depending on which files are listed and accessible, but it is recommended that you disable it unless it is needed."
|
6561 |
msgstr ""
|
6562 |
|
6563 |
-
#: lib/wfScanEngine.php:
|
6564 |
msgid "Checking if your site is being Spamvertised"
|
6565 |
msgstr ""
|
6566 |
|
6567 |
-
#: lib/wfScanEngine.php:
|
6568 |
msgid "Check if your site is being Spamvertized is for paid members only"
|
6569 |
msgstr ""
|
6570 |
|
6571 |
-
#: lib/wfScanEngine.php:
|
6572 |
msgid "Ignoring invalid scan path: %s"
|
6573 |
msgstr ""
|
6574 |
|
6575 |
-
#: lib/wfScanEngine.php:
|
6576 |
msgid "Ignoring invalid expected scan file: %s"
|
6577 |
msgstr ""
|
6578 |
|
6579 |
-
#: lib/wfScanEngine.php:
|
6580 |
msgid "Wordfence could not read the content of your WordPress directory. This usually indicates your permissions are so strict that your web server can't read your WordPress directory."
|
6581 |
msgstr ""
|
6582 |
|
6583 |
-
#: lib/wfScanEngine.php:
|
6584 |
msgid "Ignoring invalid base scan file: %s"
|
6585 |
msgstr ""
|
6586 |
|
6587 |
-
#: lib/wfScanEngine.php:
|
6588 |
msgid "Checking for paths skipped due to scan settings"
|
6589 |
msgstr ""
|
6590 |
|
6591 |
#. translators: Number of paths skipped in scan.
|
6592 |
-
#: lib/wfScanEngine.php:
|
6593 |
msgid ", and %d more."
|
6594 |
msgstr ""
|
6595 |
|
6596 |
#. translators: Number of paths skipped in scan.
|
6597 |
-
#: lib/wfScanEngine.php:
|
6598 |
msgid "%d path was skipped for the malware scan due to scan settings"
|
6599 |
msgid_plural "%d paths were skipped for the malware scan due to scan settings"
|
6600 |
msgstr[0] ""
|
6601 |
msgstr[1] ""
|
6602 |
|
6603 |
#. translators: 1. Number of paths skipped in scan. 2. Support URL. 3. List of skipped paths.
|
6604 |
-
#: lib/wfScanEngine.php:
|
6605 |
msgid "The option \"Scan files outside your WordPress installation\" is off by default, which means %1$d path and its file(s) will not be scanned for malware or unauthorized changes. To continue skipping this path, you may ignore this issue. Or to start scanning it, enable the option and subsequent scans will include it. Some paths may not be necessary to scan, so this is optional. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span class=\"screen-reader-text\"> ("
|
6606 |
msgid_plural "The option \"Scan files outside your WordPress installation\" is off by default, which means %1$d paths and their file(s) will not be scanned for malware or unauthorized changes. To continue skipping these paths, you may ignore this issue. Or to start scanning them, enable the option and subsequent scans will include them. Some paths may not be necessary to scan, so this is optional. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span class=\"screen-reader-text\"> ("
|
6607 |
msgstr[0] ""
|
6608 |
msgstr[1] ""
|
6609 |
|
6610 |
-
#: lib/wfScanEngine.php:
|
6611 |
msgid "Including files that are outside the WordPress installation in the scan."
|
6612 |
msgstr ""
|
6613 |
|
6614 |
-
#: lib/wfScanEngine.php:
|
6615 |
msgid "Getting plugin list from WordPress"
|
6616 |
msgstr ""
|
6617 |
|
6618 |
#. translators: Number of plugins.
|
6619 |
-
#: lib/wfScanEngine.php:
|
6620 |
msgid "Found %d plugin"
|
6621 |
msgid_plural "Found %d plugins"
|
6622 |
msgstr[0] ""
|
6623 |
msgstr[1] ""
|
6624 |
|
6625 |
-
#: lib/wfScanEngine.php:
|
6626 |
msgid "Getting theme list from WordPress"
|
6627 |
msgstr ""
|
6628 |
|
6629 |
#. translators: Number of themes.
|
6630 |
-
#: lib/wfScanEngine.php:
|
6631 |
msgid "Found %d theme"
|
6632 |
msgid_plural "Found %d themes"
|
6633 |
msgstr[0] ""
|
6634 |
msgstr[1] ""
|
6635 |
|
6636 |
-
#: lib/wfScanEngine.php:
|
6637 |
msgid "Scanning file contents for infections and vulnerabilities"
|
6638 |
msgstr ""
|
6639 |
|
6640 |
-
#: lib/wfScanEngine.php:
|
6641 |
msgid "Skipping scan of file contents for infections and vulnerabilities"
|
6642 |
msgstr ""
|
6643 |
|
6644 |
-
#: lib/wfScanEngine.php:
|
6645 |
msgid "Scanning file contents for URLs on a domain blocklist"
|
6646 |
msgstr ""
|
6647 |
|
6648 |
-
#: lib/wfScanEngine.php:
|
6649 |
msgid "Skipping scan of file contents for URLs on a domain blocklist"
|
6650 |
msgstr ""
|
6651 |
|
6652 |
-
#: lib/wfScanEngine.php:
|
6653 |
msgid "Starting scan of file contents"
|
6654 |
msgstr ""
|
6655 |
|
6656 |
-
#: lib/wfScanEngine.php:
|
6657 |
msgid "Done file contents scan"
|
6658 |
msgstr ""
|
6659 |
|
6660 |
#. translators: Scan result description.
|
6661 |
-
#: lib/wfScanEngine.php:
|
6662 |
-
#: lib/wfScanEngine.php:
|
6663 |
-
#: lib/wfScanEngine.php:
|
6664 |
msgid "Adding issue: %s"
|
6665 |
msgstr ""
|
6666 |
|
6667 |
-
#: lib/wfScanEngine.php:
|
6668 |
msgid "Scanning for publicly accessible quarantined files"
|
6669 |
msgstr ""
|
6670 |
|
6671 |
#. translators: File path.
|
6672 |
-
#: lib/wfScanEngine.php:
|
6673 |
msgid "Testing accessibility of: %s"
|
6674 |
msgstr ""
|
6675 |
|
6676 |
#. translators: File path.
|
6677 |
-
#: lib/wfScanEngine.php:
|
6678 |
msgid "Publicly accessible quarantined file found: %s"
|
6679 |
msgstr ""
|
6680 |
|
6681 |
#. translators: URL to publicly accessible file.
|
6682 |
-
#: lib/wfScanEngine.php:
|
6683 |
msgid "<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%1$s<span class=\"screen-reader-text\"> ("
|
6684 |
msgstr ""
|
6685 |
|
6686 |
-
#: lib/wfScanEngine.php:
|
6687 |
msgid "Scanning posts for URLs on a domain blocklist"
|
6688 |
msgstr ""
|
6689 |
|
6690 |
#. translators: Number of posts left to scan.
|
6691 |
-
#: lib/wfScanEngine.php:
|
6692 |
msgid "Scanning posts with %d left to scan."
|
6693 |
msgstr ""
|
6694 |
|
6695 |
-
#: lib/wfScanEngine.php:
|
6696 |
msgid "Post title contains suspicious code"
|
6697 |
msgstr ""
|
6698 |
|
6699 |
-
#: lib/wfScanEngine.php:
|
6700 |
msgid "This post contains code that is suspicious. Please check the title of the post and confirm that the code in the title is not malicious."
|
6701 |
msgstr ""
|
6702 |
|
6703 |
-
#: lib/wfScanEngine.php:
|
6704 |
msgid "Examining URLs found in posts we scanned for dangerous websites"
|
6705 |
msgstr ""
|
6706 |
|
6707 |
-
#: lib/wfScanEngine.php:
|
6708 |
-
#: lib/wfScanEngine.php:
|
6709 |
msgid "Done examining URLs"
|
6710 |
msgstr ""
|
6711 |
|
6712 |
#. translators: 1. WordPress Post type. 2. URL.
|
6713 |
-
#: lib/wfScanEngine.php:
|
6714 |
-
#: lib/wfScanEngine.php:
|
6715 |
msgid "%1$s contains a suspected malware URL: %2$s"
|
6716 |
msgstr ""
|
6717 |
|
6718 |
#. translators: 1. WordPress Post type. 2. URL. 3. URL.
|
6719 |
#. translators: 1. WordPress post type. 2. URL. 3. URL.
|
6720 |
-
#: lib/wfScanEngine.php:
|
6721 |
-
#: lib/wfScanEngine.php:
|
6722 |
msgid "This %1$s contains a suspected malware URL listed on Google's list of malware sites. The URL is: %2$s - More info available at <a href=\"http://safebrowsing.clients.google.com/safebrowsing/diagnostic?site=%3$s&client=googlechrome&hl=en-US\" target=\"_blank\" rel=\"noopener noreferrer\">Google Safe Browsing diagnostic page<span class=\"screen-reader-text\"> ("
|
6723 |
msgstr ""
|
6724 |
|
6725 |
#. translators: 1. WordPress Post type. 2. URL.
|
6726 |
-
#: lib/wfScanEngine.php:
|
6727 |
msgid "%1$s contains a suspected phishing site URL: %2$s"
|
6728 |
msgstr ""
|
6729 |
|
6730 |
#. translators: 1. WordPress Post type. 2. URL.
|
6731 |
#. translators: 1. WordPress post type. 2. URL.
|
6732 |
-
#: lib/wfScanEngine.php:
|
6733 |
-
#: lib/wfScanEngine.php:
|
6734 |
msgid "This %1$s contains a URL that is a suspected phishing site that is currently listed on Google's list of known phishing sites. The URL is: %2$s"
|
6735 |
msgstr ""
|
6736 |
|
6737 |
#. translators: 1. WordPress Post type. 2. URL.
|
6738 |
#. translators: 1. WordPress post type. 2. URL.
|
6739 |
-
#: lib/wfScanEngine.php:
|
6740 |
-
#: lib/wfScanEngine.php:
|
6741 |
msgid "This %1$s contains a URL that is currently listed on Wordfence's domain blocklist. The URL is: %2$s"
|
6742 |
msgstr ""
|
6743 |
|
6744 |
#. translators: Scan result description.
|
6745 |
-
#: lib/wfScanEngine.php:
|
6746 |
msgid "Adding issue: %1$s"
|
6747 |
msgstr ""
|
6748 |
|
6749 |
-
#: lib/wfScanEngine.php:
|
6750 |
msgid "Scanning comments for URLs on a domain blocklist"
|
6751 |
msgstr ""
|
6752 |
|
6753 |
#. translators: Number of comments left to scan.
|
6754 |
-
#: lib/wfScanEngine.php:
|
6755 |
msgid "Scanning comments with %d left to scan."
|
6756 |
msgstr ""
|
6757 |
|
6758 |
#. translators: 1. WordPress post type. 2. WordPress author username.
|
6759 |
-
#: lib/wfScanEngine.php:
|
6760 |
msgid "%1$s with author %2$s contains a suspected malware URL."
|
6761 |
msgstr ""
|
6762 |
|
6763 |
#. translators: WordPress post type.
|
6764 |
-
#: lib/wfScanEngine.php:
|
6765 |
msgid "%s contains a suspected phishing site URL."
|
6766 |
msgstr ""
|
6767 |
|
6768 |
#. translators: URL.
|
6769 |
-
#: lib/wfScanEngine.php:
|
6770 |
msgid "%s contains a suspected malware URL."
|
6771 |
msgstr ""
|
6772 |
|
6773 |
#. translators: WordPress username.
|
6774 |
-
#: lib/wfScanEngine.php:
|
6775 |
msgid "Author: %s"
|
6776 |
msgstr ""
|
6777 |
|
6778 |
#. translators: Email address.
|
6779 |
-
#: lib/wfScanEngine.php:
|
6780 |
msgid "Email: %s"
|
6781 |
msgstr ""
|
6782 |
|
6783 |
#. translators: IP address.
|
6784 |
-
#: lib/wfScanEngine.php:
|
6785 |
msgid "Source IP: %s"
|
6786 |
msgstr ""
|
6787 |
|
6788 |
#. translators: Comment description.
|
6789 |
-
#: lib/wfScanEngine.php:
|
6790 |
msgid "Scanning comment with %s"
|
6791 |
msgstr ""
|
6792 |
|
6793 |
#. translators: Comment description.
|
6794 |
-
#: lib/wfScanEngine.php:
|
6795 |
-
#: lib/wfScanEngine.php:
|
6796 |
msgid "Marking comment as spam for containing a malware URL. Comment has %s"
|
6797 |
msgstr ""
|
6798 |
|
6799 |
#. translators: Comment description.
|
6800 |
-
#: lib/wfScanEngine.php:
|
6801 |
msgid "Marking comment as spam for containing a phishing URL. Comment has %s"
|
6802 |
msgstr ""
|
6803 |
|
6804 |
#. translators: Comment description.
|
6805 |
-
#: lib/wfScanEngine.php:
|
6806 |
msgid "Scanned comment with %s"
|
6807 |
msgstr ""
|
6808 |
|
6809 |
-
#: lib/wfScanEngine.php:
|
6810 |
msgid "Scanning for weak passwords"
|
6811 |
msgstr ""
|
6812 |
|
6813 |
-
#: lib/wfScanEngine.php:
|
6814 |
msgid "We were unable to generate the user list for your password check."
|
6815 |
msgstr ""
|
6816 |
|
6817 |
#. translators: Number of users.
|
6818 |
-
#: lib/wfScanEngine.php:
|
6819 |
msgid "Starting password strength check on %d user."
|
6820 |
msgid_plural "Starting password strength check on %d users."
|
6821 |
msgstr[0] ""
|
6822 |
msgstr[1] ""
|
6823 |
|
6824 |
#. translators: Number of users.
|
6825 |
-
#: lib/wfScanEngine.php:
|
6826 |
msgid "Total of %d users left to process in password strength check."
|
6827 |
msgid_plural "Total of %d users left to process in password strength check."
|
6828 |
msgstr[0] ""
|
6829 |
msgstr[1] ""
|
6830 |
|
6831 |
#. translators: WordPress user ID.
|
6832 |
-
#: lib/wfScanEngine.php:
|
6833 |
msgid "Could not get username for user with ID %d when checking password strength."
|
6834 |
msgstr ""
|
6835 |
|
6836 |
#. translators: 1. WordPress username. 2. WordPress user ID.
|
6837 |
-
#: lib/wfScanEngine.php:
|
6838 |
msgid "Checking password strength of user '%1$s' with ID %2$d"
|
6839 |
msgstr ""
|
6840 |
|
6841 |
#. translators: 1. WordPress username. 2. WordPress capability.
|
6842 |
-
#: lib/wfScanEngine.php:
|
6843 |
msgid "User \"%1$s\" with \"%2$s\" access has an easy password."
|
6844 |
msgstr ""
|
6845 |
|
6846 |
#. translators: WordPress capability.
|
6847 |
-
#: lib/wfScanEngine.php:
|
6848 |
msgid "A user with the a role of '%s' has a password that is easy to guess. Please change this password yourself or ask the user to change it."
|
6849 |
msgstr ""
|
6850 |
|
6851 |
#. translators: WordPress username.
|
6852 |
-
#: lib/wfScanEngine.php:
|
6853 |
msgid "User \"%s\" with 'subscriber' access has a very easy password."
|
6854 |
msgstr ""
|
6855 |
|
6856 |
-
#: lib/wfScanEngine.php:
|
6857 |
msgid "A user with 'subscriber' access has a password that is very easy to guess. Please either change it or ask the user to change their password."
|
6858 |
msgstr ""
|
6859 |
|
6860 |
#. translators: Scan result description.
|
6861 |
-
#: lib/wfScanEngine.php:
|
6862 |
msgid "Adding issue %s"
|
6863 |
msgstr ""
|
6864 |
|
6865 |
#. translators: WordPress username.
|
6866 |
-
#: lib/wfScanEngine.php:
|
6867 |
msgid "Completed checking password strength of user '%s'"
|
6868 |
msgstr ""
|
6869 |
|
6870 |
-
#: lib/wfScanEngine.php:
|
6871 |
msgid "Scanning to check available disk space"
|
6872 |
msgstr ""
|
6873 |
|
6874 |
-
#: lib/wfScanEngine.php:
|
6875 |
msgid "Unable to access available disk space information"
|
6876 |
msgstr ""
|
6877 |
|
6878 |
#. translators: 1. Number of bytes. 2. Number of bytes.
|
6879 |
-
#: lib/wfScanEngine.php:
|
6880 |
msgid "Total disk space: %1$s -- Free disk space: %2$s"
|
6881 |
msgstr ""
|
6882 |
|
6883 |
#. translators: Number of bytes.
|
6884 |
-
#: lib/wfScanEngine.php:
|
6885 |
msgid "The disk has %s MB available"
|
6886 |
msgstr ""
|
6887 |
|
6888 |
#. translators: Number of bytes.
|
6889 |
-
#: lib/wfScanEngine.php:
|
6890 |
msgid "You have %s disk space remaining"
|
6891 |
msgstr ""
|
6892 |
|
6893 |
#. translators: Number of bytes.
|
6894 |
-
#: lib/wfScanEngine.php:
|
6895 |
msgid "You only have %s of your disk space remaining. Please free up disk space or your website may stop serving requests."
|
6896 |
msgstr ""
|
6897 |
|
6898 |
-
#: lib/wfScanEngine.php:
|
6899 |
msgid "Checking Web Application Firewall status"
|
6900 |
msgstr ""
|
6901 |
|
6902 |
-
#: lib/wfScanEngine.php:
|
6903 |
msgid "Web Application Firewall is disabled"
|
6904 |
msgstr ""
|
6905 |
|
6906 |
#. translators: Support URL.
|
6907 |
-
#: lib/wfScanEngine.php:
|
6908 |
msgid "Wordfence's Web Application Firewall has been unexpectedly disabled. If you see a notice at the top of the Wordfence admin pages that says \"The Wordfence Web Application Firewall cannot run,\" click the link in that message to rebuild the configuration. If this does not work, you may need to fix file permissions. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">More Details<span class=\"screen-reader-text\"> ("
|
6909 |
msgstr ""
|
6910 |
|
6911 |
-
#: lib/wfScanEngine.php:
|
6912 |
msgid "Scanning for old themes, plugins and core files"
|
6913 |
msgstr ""
|
6914 |
|
6915 |
-
#: lib/wfScanEngine.php:
|
6916 |
msgid "Your WordPress version is out of date"
|
6917 |
msgstr ""
|
6918 |
|
6919 |
#. translators: Software version.
|
6920 |
-
#: lib/wfScanEngine.php:
|
6921 |
msgid "WordPress version %s is now available. Please upgrade immediately to get the latest security updates from WordPress."
|
6922 |
msgstr ""
|
6923 |
|
6924 |
#. translators: 1. Plugin name. 2. Software version. 3. Software version.
|
6925 |
-
#: lib/wfScanEngine.php:
|
6926 |
msgid "The Plugin \"%1$s\" needs an upgrade (%2$s -> %3$s)."
|
6927 |
msgstr ""
|
6928 |
|
6929 |
#. translators: Theme name.
|
6930 |
-
#: lib/wfScanEngine.php:
|
6931 |
-
#: lib/wfScanEngine.php:
|
6932 |
msgid "You need to upgrade \"%s\" to the newest version to ensure you have any security fixes the developer has released."
|
6933 |
msgstr ""
|
6934 |
|
6935 |
#. translators: 1. Theme name. 2. Software version. 3. Software version.
|
6936 |
-
#: lib/wfScanEngine.php:
|
6937 |
msgid "The Theme \"%1$s\" needs an upgrade (%2$s -> %3$s)."
|
6938 |
msgstr ""
|
6939 |
|
6940 |
#. translators: 1. Plugin name. 2. Software version. 3. Software version.
|
6941 |
-
#: lib/wfScanEngine.php:
|
6942 |
msgid "The Plugin \"%1$s\" appears to be abandoned (updated %2$s, tested to WP %3$s)."
|
6943 |
msgstr ""
|
6944 |
|
6945 |
#. translators: 1. Plugin name. 2. Software version.
|
6946 |
-
#: lib/wfScanEngine.php:
|
6947 |
msgid "It was last updated %1$s ago and tested up to WordPress %2$s."
|
6948 |
msgstr ""
|
6949 |
|
6950 |
#. translators: 1. Plugin name. 2. Software version.
|
6951 |
-
#: lib/wfScanEngine.php:
|
6952 |
msgid "The Plugin \"%1$s\" appears to be abandoned (updated %2$s)."
|
6953 |
msgstr ""
|
6954 |
|
6955 |
#. translators: Time duration.
|
6956 |
-
#: lib/wfScanEngine.php:
|
6957 |
msgid "It was last updated %s ago."
|
6958 |
msgstr ""
|
6959 |
|
6960 |
-
#: lib/wfScanEngine.php:
|
6961 |
-
#: lib/wfScanEngine.php:
|
6962 |
msgid "It has unpatched security issues and may have compatibility problems with the current version of WordPress."
|
6963 |
msgstr ""
|
6964 |
|
6965 |
-
#: lib/wfScanEngine.php:
|
6966 |
-
#: lib/wfScanEngine.php:
|
6967 |
msgid "Plugins can be removed from wordpress.org for various reasons. This can include benign issues like a plugin author discontinuing development or moving the plugin distribution to their own site, but some might also be due to security issues. In any case, future updates may or may not be available, so it is worth investigating the cause and deciding whether to temporarily or permanently replace or remove the plugin."
|
6968 |
msgstr ""
|
6969 |
|
6970 |
#. translators: Support URL.
|
6971 |
-
#: lib/wfScanEngine.php:
|
6972 |
-
#: lib/wfScanEngine.php:
|
6973 |
-
#: lib/wfScanEngine.php:
|
6974 |
-
#: lib/wfScanEngine.php:
|
6975 |
msgid "<a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Get more information.<span class=\"screen-reader-text\"> ("
|
6976 |
msgstr ""
|
6977 |
|
6978 |
#. translators: Plugin name.
|
6979 |
-
#: lib/wfScanEngine.php:
|
6980 |
msgid "The Plugin \"%s\" has been removed from wordpress.org."
|
6981 |
msgstr ""
|
6982 |
|
6983 |
-
#: lib/wfScanEngine.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6984 |
msgid "Scanning for admin users not created through WordPress"
|
6985 |
msgstr ""
|
6986 |
|
6987 |
#. translators: WordPress username.
|
6988 |
-
#: lib/wfScanEngine.php:
|
6989 |
msgid "An admin user with the username %s was created outside of WordPress."
|
6990 |
msgstr ""
|
6991 |
|
6992 |
#. translators: WordPress username.
|
6993 |
-
#: lib/wfScanEngine.php:
|
6994 |
msgid "An admin user with the username %s was created outside of WordPress. It's possible a plugin could have created the account, but if you do not recognize the user, we suggest you remove it."
|
6995 |
msgstr ""
|
6996 |
|
6997 |
#. translators: WordPress username.
|
6998 |
-
#: lib/wfScanEngine.php:
|
6999 |
msgid "An admin user with a suspicious username %s was found."
|
7000 |
msgstr ""
|
7001 |
|
7002 |
#. translators: WordPress username.
|
7003 |
-
#: lib/wfScanEngine.php:
|
7004 |
msgid "An admin user with a suspicious username %s was found. Administrators accounts with usernames similar to this are commonly seen created by hackers. It's possible a plugin could have created the account, but if you do not recognize the user, we suggest you remove it."
|
7005 |
msgstr ""
|
7006 |
|
7007 |
-
#: lib/wfScanEngine.php:
|
7008 |
msgid "Scanning for suspicious site options"
|
7009 |
msgstr ""
|
7010 |
|
7011 |
-
#: lib/wfScanEngine.php:
|
7012 |
msgid "Examining URLs found in the options we scanned for dangerous websites"
|
7013 |
msgstr ""
|
7014 |
|
7015 |
#. translators: URL.
|
7016 |
-
#: lib/wfScanEngine.php:
|
7017 |
-
#: lib/wfScanEngine.php:
|
7018 |
msgid "Option contains a suspected malware URL: %s"
|
7019 |
msgstr ""
|
7020 |
|
7021 |
#. translators: URL.
|
7022 |
-
#: lib/wfScanEngine.php:
|
7023 |
msgid "This option contains a suspected malware URL listed on Google's list of malware sites. It may indicate your site is infected with malware. The URL is: %s"
|
7024 |
msgstr ""
|
7025 |
|
7026 |
#. translators: URL.
|
7027 |
-
#: lib/wfScanEngine.php:
|
7028 |
msgid "Option contains a suspected phishing site URL: %s"
|
7029 |
msgstr ""
|
7030 |
|
7031 |
#. translators: URL.
|
7032 |
-
#: lib/wfScanEngine.php:
|
7033 |
msgid "This option contains a URL that is a suspected phishing site that is currently listed on Google's list of known phishing sites. It may indicate your site is infected with malware. The URL is: %s"
|
7034 |
msgstr ""
|
7035 |
|
7036 |
#. translators: URL.
|
7037 |
-
#: lib/wfScanEngine.php:
|
7038 |
msgid "This option contains a URL that is currently listed on Wordfence's domain blocklist. It may indicate your site is infected with malware. The URL is: %s"
|
7039 |
msgstr ""
|
7040 |
|
7041 |
-
#: lib/wfScanEngine.php:
|
7042 |
msgid "Checking for future GeoIP support"
|
7043 |
msgstr ""
|
7044 |
|
7045 |
-
#: lib/wfScanEngine.php:
|
7046 |
msgid "PHP Update Needed for Country Blocking"
|
7047 |
msgstr ""
|
7048 |
|
7049 |
#. translators: Software version.
|
7050 |
-
#: lib/wfScanEngine.php:
|
7051 |
msgid "The GeoIP database that is required for country blocking has been updated to a new format. This new format requires sites to run PHP 5.4 or newer, and this site is on PHP %s. To ensure country blocking continues functioning, please update PHP."
|
7052 |
msgstr ""
|
7053 |
|
7054 |
-
#: lib/wfScanEngine.php:
|
7055 |
msgid "Previous scan was stopped successfully."
|
7056 |
msgstr ""
|
7057 |
|
7058 |
-
#: lib/wfScanEngine.php:
|
7059 |
msgid "Scan was stopped on administrator request."
|
7060 |
msgstr ""
|
7061 |
|
7062 |
-
#: lib/wfScanEngine.php:
|
7063 |
msgid "Entering start scan routine"
|
7064 |
msgstr ""
|
7065 |
|
7066 |
-
#: lib/wfScanEngine.php:
|
7067 |
msgid "A scan is already running. Use the stop scan button if you would like to terminate the current scan."
|
7068 |
msgstr ""
|
7069 |
|
7070 |
-
|
7071 |
-
|
|
|
|
|
|
|
|
|
7072 |
msgid "Test result of scan start URL fetch: %s"
|
7073 |
msgstr ""
|
7074 |
|
7075 |
#. translators: WordPress admin panel URL.
|
7076 |
-
#: lib/wfScanEngine.php:
|
7077 |
msgid "Starting cron with normal ajax at URL %s"
|
7078 |
msgstr ""
|
7079 |
|
7080 |
#. translators: Error message.
|
7081 |
#. translators: WordPress admin panel URL.
|
7082 |
-
#: lib/wfScanEngine.php:
|
7083 |
-
#: lib/wfScanEngine.php:
|
7084 |
msgid "There was an error starting the scan: %s."
|
7085 |
msgstr ""
|
7086 |
|
7087 |
-
#: lib/wfScanEngine.php:
|
7088 |
-
#: lib/wfScanEngine.php:
|
7089 |
msgid "There was an unknown error starting the scan."
|
7090 |
msgstr ""
|
7091 |
|
7092 |
-
#: lib/wfScanEngine.php:
|
7093 |
-
#: lib/wfScanEngine.php:
|
7094 |
msgid "Scan process ended after forking."
|
7095 |
msgstr ""
|
7096 |
|
7097 |
#. translators: WordPress admin panel URL.
|
7098 |
-
#: lib/wfScanEngine.php:
|
7099 |
msgid "Starting cron via proxy at URL %s"
|
7100 |
msgstr ""
|
7101 |
|
7102 |
#. translators: Time in seconds.
|
7103 |
-
#: lib/wfScanEngine.php:
|
7104 |
msgid "Got value from wf config maxExecutionTime: %s"
|
7105 |
msgstr ""
|
7106 |
|
7107 |
#. translators: Time in seconds.
|
7108 |
-
#: lib/wfScanEngine.php:
|
7109 |
msgid "getMaxExecutionTime() returning config value: %s"
|
7110 |
msgstr ""
|
7111 |
|
7112 |
#. translators: PHP ini value.
|
7113 |
-
#: lib/wfScanEngine.php:
|
7114 |
msgid "Got max_execution_time value from ini: %s"
|
7115 |
msgstr ""
|
7116 |
|
7117 |
#. translators: 1. PHP ini setting. 2. Time in seconds.
|
7118 |
-
#: lib/wfScanEngine.php:
|
7119 |
msgid "ini value of %1$d is higher than value for WORDFENCE_SCAN_MAX_INI_EXECUTION_TIME (%2$d), reducing"
|
7120 |
msgstr ""
|
7121 |
|
7122 |
#. translators: PHP ini setting.
|
7123 |
-
#: lib/wfScanEngine.php:
|
7124 |
msgid "getMaxExecutionTime() returning half ini value: %d"
|
7125 |
msgstr ""
|
7126 |
|
7127 |
-
#: lib/wfScanEngine.php:
|
7128 |
msgid "getMaxExecutionTime() returning default of: 15"
|
7129 |
msgstr ""
|
7130 |
|
7131 |
#. translators: 1. HTTP status code.
|
7132 |
-
#: lib/wfScanEngine.php:
|
7133 |
msgid "Got error response from Wordfence servers: %s"
|
7134 |
msgstr ""
|
7135 |
|
7136 |
-
#: lib/wfScanEngine.php:
|
7137 |
msgid "Invalid response from Wordfence servers."
|
7138 |
msgstr ""
|
7139 |
|
|
|
|
|
|
|
|
|
7140 |
#: lib/wfUnlockMsg.php:2
|
7141 |
msgid "If you are a WordPress user with administrative privileges on this site please enter your email in the box below and click "Send". You will then receive an email that helps you regain access."
|
7142 |
msgstr ""
|
@@ -7212,7 +7228,7 @@ msgid "Wordfence error: No encryption key found!"
|
|
7212 |
msgstr ""
|
7213 |
|
7214 |
#. translators: Error message.
|
7215 |
-
#: lib/wfUtils.php:
|
7216 |
msgid "Call to Wordfence API to resolve IPs failed: %s"
|
7217 |
msgstr ""
|
7218 |
|
@@ -7296,1466 +7312,1478 @@ msgstr ""
|
|
7296 |
msgid "File last modified:"
|
7297 |
msgstr ""
|
7298 |
|
7299 |
-
#: lib/wordfenceClass.php:
|
7300 |
msgid ""
|
7301 |
"To ensure uninterrupted Premium Wordfence protection on your site,\n"
|
7302 |
"please renew your license by visiting http://www.wordfence.com/ Sign in, go to your dashboard,\n"
|
7303 |
"select the license about to expire and click the button to renew that license."
|
7304 |
msgstr ""
|
7305 |
|
7306 |
-
#: lib/wordfenceClass.php:
|
7307 |
msgid "Your Premium Wordfence License is set to auto-renew in 10 days."
|
7308 |
msgstr ""
|
7309 |
|
7310 |
-
#: lib/wordfenceClass.php:
|
7311 |
msgid "To update your license settings please visit http://www.wordfence.com/zz9/dashboard"
|
7312 |
msgstr ""
|
7313 |
|
7314 |
-
#: lib/wordfenceClass.php:
|
7315 |
msgid "Your Premium Wordfence License expires in less than 2 weeks."
|
7316 |
msgstr ""
|
7317 |
|
7318 |
-
#: lib/wordfenceClass.php:
|
7319 |
msgid "Your Premium Wordfence License expires in less than a week."
|
7320 |
msgstr ""
|
7321 |
|
7322 |
-
#: lib/wordfenceClass.php:
|
7323 |
msgid "Your Premium Wordfence License expires in 2 days."
|
7324 |
msgstr ""
|
7325 |
|
7326 |
-
#: lib/wordfenceClass.php:
|
7327 |
msgid "Your Premium Wordfence License expires in 1 day."
|
7328 |
msgstr ""
|
7329 |
|
7330 |
-
#: lib/wordfenceClass.php:
|
7331 |
msgid "Your Wordfence Premium License has Expired!"
|
7332 |
msgstr ""
|
7333 |
|
7334 |
-
#: lib/wordfenceClass.php:
|
7335 |
msgid "The Wordfence Premium License in use on this site has been removed from your account."
|
7336 |
msgstr ""
|
7337 |
|
7338 |
-
#: lib/wordfenceClass.php:
|
7339 |
msgid "The license you were using has been removed from your account. Please reach out to billing@wordfence.com or create a Premium support case at https://support.wordfence.com/support/tickets for more information. Our staff is happy to help."
|
7340 |
msgstr ""
|
7341 |
|
7342 |
#. translators: Wordfence license key.
|
7343 |
-
#: lib/wordfenceClass.php:
|
7344 |
msgid "Could not verify Wordfence License: %s"
|
7345 |
msgstr ""
|
7346 |
|
7347 |
#. translators: WordPress version.
|
7348 |
-
#: lib/wordfenceClass.php:
|
7349 |
msgid "WordPress (v%s)"
|
7350 |
msgstr ""
|
7351 |
|
7352 |
#. translators: Number of plugins.
|
7353 |
-
#: lib/wordfenceClass.php:
|
7354 |
msgid "%d plugin"
|
7355 |
msgid_plural "%d plugins"
|
7356 |
msgstr[0] ""
|
7357 |
msgstr[1] ""
|
7358 |
|
7359 |
#. translators: Number of themes.
|
7360 |
-
#: lib/wordfenceClass.php:
|
7361 |
msgid "%d theme"
|
7362 |
msgid_plural "%d themes"
|
7363 |
msgstr[0] ""
|
7364 |
msgstr[1] ""
|
7365 |
|
7366 |
-
#: lib/wordfenceClass.php:
|
7367 |
msgid "An update is available for "
|
7368 |
msgid_plural "Updates are available for "
|
7369 |
msgstr[0] ""
|
7370 |
msgstr[1] ""
|
7371 |
|
7372 |
-
#: lib/wordfenceClass.php:
|
7373 |
msgid "and "
|
7374 |
msgstr ""
|
7375 |
|
7376 |
#. translators: Wordfence version.
|
7377 |
-
#: lib/wordfenceClass.php:
|
7378 |
msgid "`runInstall` called with previous version = %s"
|
7379 |
msgstr ""
|
7380 |
|
7381 |
-
#: lib/wordfenceClass.php:
|
7382 |
-
#: lib/wordfenceClass.php:
|
7383 |
msgid "Could not understand the response we received from the Wordfence servers when applying for a free license key."
|
7384 |
msgstr ""
|
7385 |
|
7386 |
-
#: lib/wordfenceClass.php:
|
7387 |
msgid "Automatically generated from previous country blocking settings"
|
7388 |
msgstr ""
|
7389 |
|
7390 |
-
#: lib/wordfenceClass.php:
|
7391 |
#: views/user/disabled-application-passwords.php:15
|
7392 |
msgid "Application passwords have been disabled by Wordfence."
|
7393 |
msgstr ""
|
7394 |
|
7395 |
-
#: lib/wordfenceClass.php:
|
7396 |
msgid "Upgrade To Premium"
|
7397 |
msgstr ""
|
7398 |
|
7399 |
-
#: lib/wordfenceClass.php:
|
7400 |
msgid "wp_mail from address is incomplete, attempting to fix"
|
7401 |
msgstr ""
|
7402 |
|
7403 |
#. translators: Email address.
|
7404 |
-
#: lib/wordfenceClass.php:
|
7405 |
msgid "Fixing wp_mail from address: %s"
|
7406 |
msgstr ""
|
7407 |
|
7408 |
-
#: lib/wordfenceClass.php:
|
7409 |
msgid "You appear to have logged out or you are not an admin. Please sign-out and sign-in again."
|
7410 |
msgstr ""
|
7411 |
|
7412 |
-
#: lib/wordfenceClass.php:
|
7413 |
msgid "Your browser sent an invalid security token to Wordfence. Please try reloading this page or signing out and in again."
|
7414 |
msgstr ""
|
7415 |
|
7416 |
-
#: lib/wordfenceClass.php:
|
7417 |
msgid "Wordfence encountered an internal error executing that request."
|
7418 |
msgstr ""
|
7419 |
|
7420 |
#. translators: Error message.
|
7421 |
-
#: lib/wordfenceClass.php:
|
7422 |
msgid "2FA Migration Error: %s"
|
7423 |
msgstr ""
|
7424 |
|
7425 |
-
#: lib/wordfenceClass.php:
|
7426 |
msgid "Please choose a stronger password. Use at least 12 characters, and include numbers, symbols, and a mix of upper and lowercase letters. Do not use common words or sequences of letters or numbers."
|
7427 |
msgstr ""
|
7428 |
|
7429 |
-
#: lib/wordfenceClass.php:
|
7430 |
msgid "Passwords containing a space followed by \"wf\" without quotes are not allowed."
|
7431 |
msgstr ""
|
7432 |
|
7433 |
#. translators: Support URL.
|
7434 |
-
#: lib/wordfenceClass.php:
|
7435 |
msgid "Please choose a different password. The password you are using exists on lists of passwords leaked in data breaches. Attackers use such lists to break into sites and install malicious code. <a href=\"%s\">Learn More</a>"
|
7436 |
msgstr ""
|
7437 |
|
7438 |
#. translators: 1. Password reset limit (number). 2. WordPress username.
|
7439 |
-
#: lib/wordfenceClass.php:
|
7440 |
msgid "Exceeded the maximum number of tries to recover their password which is set at: %1$s. The last username or email they entered before getting locked out was: '%2$s'"
|
7441 |
msgstr ""
|
7442 |
|
7443 |
-
#: lib/wordfenceClass.php:
|
7444 |
-
#: lib/wordfenceClass.php:
|
7445 |
msgid "Sorry but your browser sent an invalid security token when trying to use this form."
|
7446 |
msgstr ""
|
7447 |
|
7448 |
-
#: lib/wordfenceClass.php:
|
7449 |
msgid "Please wait 3 minutes and try again"
|
7450 |
msgstr ""
|
7451 |
|
7452 |
-
#: lib/wordfenceClass.php:
|
7453 |
msgid "You have used this form too much. Please wait 3 minutes and try again."
|
7454 |
msgstr ""
|
7455 |
|
7456 |
-
#: lib/wordfenceClass.php:
|
7457 |
msgid "Unlock email requested"
|
7458 |
msgstr ""
|
7459 |
|
7460 |
-
#: lib/wordfenceClass.php:
|
7461 |
msgid "Your request was received"
|
7462 |
msgstr ""
|
7463 |
|
7464 |
#. translators: Email address.
|
7465 |
-
#: lib/wordfenceClass.php:
|
7466 |
msgid "We received a request to email \"%s\" instructions to unlock their access. If that is the email address of a site administrator or someone on the Wordfence alert list, they have been emailed instructions on how to regain access to this system. The instructions we sent will expire 30 minutes from now."
|
7467 |
msgstr ""
|
7468 |
|
7469 |
-
#: lib/wordfenceClass.php:
|
7470 |
msgid "Invalid key provided for authentication."
|
7471 |
msgstr ""
|
7472 |
|
7473 |
-
#: lib/wordfenceClass.php:
|
7474 |
msgid "Request received via unlock email link to unblock all IPs."
|
7475 |
msgstr ""
|
7476 |
|
7477 |
-
#: lib/wordfenceClass.php:
|
7478 |
msgid "Request received via unlock email link to unblock all IPs via disabling firewall rules."
|
7479 |
msgstr ""
|
7480 |
|
7481 |
-
#: lib/wordfenceClass.php:
|
7482 |
msgid "Invalid function specified. Please check the link we emailed you and make sure it was not cut-off by your email reader."
|
7483 |
msgstr ""
|
7484 |
|
7485 |
-
#: lib/wordfenceClass.php:
|
7486 |
msgid "Unsubscribe Requested"
|
7487 |
msgstr ""
|
7488 |
|
7489 |
-
#: lib/wordfenceClass.php:
|
7490 |
msgid "An error occurred while saving the license."
|
7491 |
msgstr ""
|
7492 |
|
7493 |
#. translators: Error message.
|
7494 |
-
#: lib/wordfenceClass.php:
|
7495 |
-
#: lib/wordfenceClass.php:
|
7496 |
msgid "An error occurred while saving the license: %s"
|
7497 |
msgstr ""
|
7498 |
|
7499 |
-
#: lib/wordfenceClass.php:
|
7500 |
msgid "Rescheduled missing daily cron"
|
7501 |
msgstr ""
|
7502 |
|
7503 |
-
#: lib/wordfenceClass.php:
|
7504 |
msgid "Rescheduled missing hourly cron"
|
7505 |
msgstr ""
|
7506 |
|
7507 |
-
#: lib/wordfenceClass.php:
|
7508 |
-
#: lib/wordfenceClass.php:
|
7509 |
msgid "Accessed a banned URL"
|
7510 |
msgstr ""
|
7511 |
|
7512 |
-
#: lib/wordfenceClass.php:
|
7513 |
-
#: lib/wordfenceClass.php:
|
7514 |
msgid "POST received with blank user-agent and referer"
|
7515 |
msgstr ""
|
7516 |
|
7517 |
-
#: lib/wordfenceClass.php:
|
7518 |
msgid "<strong>ERROR</strong>: You can't register using that username"
|
7519 |
msgstr ""
|
7520 |
|
7521 |
-
#: lib/wordfenceClass.php:
|
7522 |
msgid "Sorry, you are not allowed to list users."
|
7523 |
msgstr ""
|
7524 |
|
7525 |
-
#: lib/wordfenceClass.php:
|
7526 |
msgid "Invalid user ID."
|
7527 |
msgstr ""
|
7528 |
|
7529 |
-
#: lib/wordfenceClass.php:
|
7530 |
msgid "<strong>VERIFICATION FAILED</strong>: Two-factor authentication verification failed. Please try again."
|
7531 |
msgstr ""
|
7532 |
|
7533 |
#. translators: 1. WordPress username. 2. Password reset URL.
|
7534 |
#. translators: 1. WordPress username. 2. Reset password URL.
|
7535 |
-
#: lib/wordfenceClass.php:
|
7536 |
-
#: lib/wordfenceClass.php:
|
7537 |
msgid "<strong>ERROR</strong>: The username or password you entered is incorrect. <a href=\"%2$s\" title=\"Password Lost and Found\">Lost your password</a>?"
|
7538 |
msgstr ""
|
7539 |
|
7540 |
#. translators: 1. WordPress admin panel URL. 2. Support URL.
|
7541 |
-
#: lib/wordfenceClass.php:
|
7542 |
-
#: lib/wordfenceClass.php:
|
7543 |
msgid "<strong>WARNING: </strong>The password you are using exists on lists of passwords leaked in data breaches. Attackers use such lists to break into sites and install malicious code. Please <a href=\"%1$s\">change your password</a>. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span class=\"screen-reader-text\"> ("
|
7544 |
msgstr ""
|
7545 |
|
7546 |
-
#: lib/wordfenceClass.php:
|
7547 |
msgid "<strong>INVALID CODE</strong>: Please sign in again and add a space, the letters <code>wf</code>, and the code from your authenticator app to the end of your password (e.g., <code>wf123456</code>)."
|
7548 |
msgstr ""
|
7549 |
|
7550 |
-
#: lib/wordfenceClass.php:
|
7551 |
msgid "<strong>INVALID CODE</strong>: Please sign in again and add a space, the letters <code>wf</code>, and the code sent to your phone to the end of your password (e.g., <code>wf123456</code>)."
|
7552 |
msgstr ""
|
7553 |
|
7554 |
-
#: lib/wordfenceClass.php:
|
7555 |
-
#: lib/wordfenceClass.php:
|
7556 |
-
#: lib/wordfenceClass.php:
|
7557 |
msgid "<strong>AUTHENTICATION FAILURE</strong>: A temporary failure was encountered while trying to log in. Please try again."
|
7558 |
msgstr ""
|
7559 |
|
7560 |
-
#: lib/wordfenceClass.php:
|
7561 |
msgid "<strong>INVALID CODE</strong>: You need to enter the code generated by your authenticator app. The code should be a six digit number (e.g., 123456)."
|
7562 |
msgstr ""
|
7563 |
|
7564 |
-
#: lib/wordfenceClass.php:
|
7565 |
msgid "<strong>INVALID CODE</strong>: You need to enter the code generated sent to your phone. The code should be a six digit number (e.g., 123456)."
|
7566 |
msgstr ""
|
7567 |
|
7568 |
-
#: lib/wordfenceClass.php:
|
7569 |
msgid "<strong>CODE EXPIRED. CHECK YOUR PHONE:</strong> The code you entered has expired. Codes are only valid for 30 minutes for security reasons. We have sent you a new code. Please sign in using your username, password, and the new code we sent you."
|
7570 |
msgstr ""
|
7571 |
|
7572 |
-
#: lib/wordfenceClass.php:
|
7573 |
msgid "<strong>INVALID CODE</strong>: You need to enter your password and the code we sent to your phone. The code should start with 'wf' and should be four characters (e.g., wfAB12)."
|
7574 |
msgstr ""
|
7575 |
|
7576 |
-
#: lib/wordfenceClass.php:
|
7577 |
msgid "<strong>CODE REQUIRED</strong>: Please check your authenticator app for the current code. Enter it below to sign in."
|
7578 |
msgstr ""
|
7579 |
|
7580 |
-
#: lib/wordfenceClass.php:
|
7581 |
msgid "<strong>CODE REQUIRED</strong>: Please check your authenticator app for the current code. Please sign in again and add a space, the letters <code>wf</code>, and the code to the end of your password (e.g., <code>wf123456</code>)."
|
7582 |
msgstr ""
|
7583 |
|
7584 |
-
#: lib/wordfenceClass.php:
|
7585 |
-
#: lib/wordfenceClass.php:
|
7586 |
msgid "<strong>CHECK YOUR PHONE</strong>: A code has been sent to your phone and will arrive within 30 seconds. Enter it below to sign in."
|
7587 |
msgstr ""
|
7588 |
|
7589 |
-
#: lib/wordfenceClass.php:
|
7590 |
msgid "<strong>CHECK YOUR PHONE</strong>: A code has been sent to your phone and will arrive within 30 seconds. Please sign in again and add a space, the letters <code>wf</code>, and the code to the end of your password (e.g., <code>wf123456</code>)."
|
7591 |
msgstr ""
|
7592 |
|
7593 |
-
#: lib/wordfenceClass.php:
|
7594 |
msgid "<strong>CHECK YOUR PHONE</strong>: A code has been sent to your phone and will arrive within 30 seconds. Please sign in again and add a space and the code to the end of your password (e.g., <code>wfABCD</code>)."
|
7595 |
msgstr ""
|
7596 |
|
7597 |
#. translators: 1. Reset password URL. 2. Support URL.
|
7598 |
-
#: lib/wordfenceClass.php:
|
7599 |
-
#: lib/wordfenceClass.php:
|
7600 |
msgid "<strong>WARNING: </strong>Your login has been allowed because you have previously logged in from the same IP, but you will be blocked if your IP changes. The password you are using exists on lists of passwords leaked in data breaches. Attackers use such lists to break into sites and install malicious code. Please <a href=\"%1$s\">change your password</a>. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span class=\"screen-reader-text\"> ("
|
7601 |
msgstr ""
|
7602 |
|
7603 |
#. translators: 1. Reset password URL. 2. Support URL.
|
7604 |
-
#: lib/wordfenceClass.php:
|
7605 |
-
#: lib/wordfenceClass.php:
|
7606 |
msgid "<strong>INSECURE PASSWORD:</strong> Your login attempt has been blocked because the password you are using exists on lists of passwords leaked in data breaches. Attackers use such lists to break into sites and install malicious code. Please <a href=\"%1$s\">reset your password</a> to reactivate your account. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span style=\"font-size:0;\"> (opens in new tab)</span></a>"
|
7607 |
msgstr ""
|
7608 |
|
7609 |
-
#: lib/wordfenceClass.php:
|
7610 |
msgid "Admin Login Blocked"
|
7611 |
msgstr ""
|
7612 |
|
7613 |
#. translators: WordPress username.
|
7614 |
-
#: lib/wordfenceClass.php:
|
7615 |
msgid "A user with username \"%s\" who has administrator access tried to sign in to your WordPress site. Access was denied because all administrator accounts are required to have Cellphone Sign-in enabled but this account does not."
|
7616 |
msgstr ""
|
7617 |
|
7618 |
#. translators: WordPress username.
|
7619 |
-
#: lib/wordfenceClass.php:
|
7620 |
msgid "<strong>Cellphone Sign-in Required</strong>: Cellphone Sign-in is required for all administrator accounts. Please contact the site administrator to enable it for your account."
|
7621 |
msgstr ""
|
7622 |
|
7623 |
-
#: lib/wordfenceClass.php:
|
7624 |
msgid "Blocked by Wordfence Security Network"
|
7625 |
msgstr ""
|
7626 |
|
7627 |
-
#: lib/wordfenceClass.php:
|
7628 |
msgid "Blocked by login security setting"
|
7629 |
msgstr ""
|
7630 |
|
7631 |
#. translators: WordPress username.
|
7632 |
-
#: lib/wordfenceClass.php:
|
7633 |
msgid "Used an invalid username '%s' to try to sign in"
|
7634 |
msgstr ""
|
7635 |
|
7636 |
#. translators: 1. Login attempt limit. 2. WordPress username.
|
7637 |
-
#: lib/wordfenceClass.php:
|
7638 |
msgid "Exceeded the maximum number of login failures which is: %1$s. The last username they tried to sign in with was: '%2$s'"
|
7639 |
msgstr ""
|
7640 |
|
7641 |
-
#: lib/wordfenceClass.php:
|
7642 |
msgid "An invalid type was specified to get file."
|
7643 |
msgstr ""
|
7644 |
|
7645 |
-
#: lib/wordfenceClass.php:
|
7646 |
msgid "We could not fetch a core WordPress file from the Wordfence API."
|
7647 |
msgstr ""
|
7648 |
|
7649 |
-
#: lib/wordfenceClass.php:
|
7650 |
msgid "Wordfence Test Email"
|
7651 |
msgstr ""
|
7652 |
|
7653 |
#. translators: 1. Site URL. 2. IP address.
|
7654 |
-
#: lib/wordfenceClass.php:
|
7655 |
msgid ""
|
7656 |
"This is a test email from %1$s.\n"
|
7657 |
"The IP address that requested this was: %2$s"
|
7658 |
msgstr ""
|
7659 |
|
7660 |
-
#: lib/wordfenceClass.php:
|
7661 |
msgid "Cellphone Sign-in is only available to paid members. <a href=\"https://www.wordfence.com/gnl1twoFac3/wordfence-signup/\" target=\"_blank\" rel=\"noopener noreferrer\">Click here to upgrade now.<span class=\"screen-reader-text\"> ("
|
7662 |
msgstr ""
|
7663 |
|
7664 |
-
#: lib/wordfenceClass.php:
|
7665 |
msgid "The username you specified does not exist."
|
7666 |
msgstr ""
|
7667 |
|
7668 |
-
#: lib/wordfenceClass.php:
|
7669 |
msgid "The username you specified is already enabled."
|
7670 |
msgstr ""
|
7671 |
|
7672 |
-
#: lib/wordfenceClass.php:
|
7673 |
msgid "Unknown authentication mode."
|
7674 |
msgstr ""
|
7675 |
|
7676 |
-
#: lib/wordfenceClass.php:
|
7677 |
msgid "The phone number you entered must start with a '+', then country code and then area code and number. For example, a number in the United States with country code '1' would look like this: +1-123-555-1234"
|
7678 |
msgstr ""
|
7679 |
|
7680 |
#. translators: Error message.
|
7681 |
-
#: lib/wordfenceClass.php:
|
7682 |
-
#: lib/wordfenceClass.php:
|
7683 |
-
#: lib/wordfenceClass.php:
|
7684 |
msgid "Could not contact Wordfence servers to generate a verification code: %s"
|
7685 |
msgstr ""
|
7686 |
|
7687 |
#. translators: Error message.
|
7688 |
-
#: lib/wordfenceClass.php:
|
7689 |
-
#: lib/wordfenceClass.php:
|
7690 |
msgid "Could not generate verification code: %s"
|
7691 |
msgstr ""
|
7692 |
|
7693 |
#. translators: Error message.
|
7694 |
-
#: lib/wordfenceClass.php:
|
7695 |
-
#: lib/wordfenceClass.php:
|
7696 |
msgid "We could not generate a verification code."
|
7697 |
msgstr ""
|
7698 |
|
7699 |
-
#: lib/wordfenceClass.php:
|
7700 |
msgid "Unknown two-factor authentication mode."
|
7701 |
msgstr ""
|
7702 |
|
7703 |
-
#: lib/wordfenceClass.php:
|
7704 |
msgid "The code you entered is invalid. Cellphone sign-in will not be enabled for this user until you enter a valid code."
|
7705 |
msgstr ""
|
7706 |
|
7707 |
-
#: lib/wordfenceClass.php:
|
7708 |
msgid "We could not find the user you are trying to activate. They may have been removed from the list of Cellphone Sign-in users. Please reload this page."
|
7709 |
msgstr ""
|
7710 |
|
7711 |
-
#: lib/wordfenceClass.php:
|
7712 |
msgid "That user has already been removed from the list."
|
7713 |
msgstr ""
|
7714 |
|
7715 |
-
#: lib/wordfenceClass.php:
|
7716 |
msgid "No scan is scheduled"
|
7717 |
msgstr ""
|
7718 |
|
7719 |
-
#: lib/wordfenceClass.php:
|
7720 |
msgid "Next scan is starting now"
|
7721 |
msgstr ""
|
7722 |
|
7723 |
#. translators: 1. Time until. 2. Localized date.
|
7724 |
-
#: lib/wordfenceClass.php:
|
7725 |
msgid "Next scan in %1$s (%2$s)"
|
7726 |
msgstr ""
|
7727 |
|
7728 |
#. translators: Localized date.
|
7729 |
-
#: lib/wordfenceClass.php:
|
7730 |
msgid "Scheduled Wordfence scan starting at %s"
|
7731 |
msgstr ""
|
7732 |
|
7733 |
-
#: lib/wordfenceClass.php:
|
7734 |
msgid "Sorry but this feature is only available for paid customers."
|
7735 |
msgstr ""
|
7736 |
|
7737 |
#. translators: Site URL.
|
7738 |
-
#: lib/wordfenceClass.php:
|
7739 |
msgid "SITE: %s"
|
7740 |
msgstr ""
|
7741 |
|
7742 |
#. translators: Plugin version.
|
7743 |
-
#: lib/wordfenceClass.php:
|
7744 |
msgid "PLUGIN VERSION: %s"
|
7745 |
msgstr ""
|
7746 |
|
7747 |
#. translators: WordPress version.
|
7748 |
-
#: lib/wordfenceClass.php:
|
7749 |
msgid "WORDPRESS VERSION: %s"
|
7750 |
msgstr ""
|
7751 |
|
7752 |
#. translators: Wordfence license key.
|
7753 |
-
#: lib/wordfenceClass.php:
|
7754 |
msgid "LICENSE KEY: %s"
|
7755 |
msgstr ""
|
7756 |
|
7757 |
#. translators: Email address.
|
7758 |
-
#: lib/wordfenceClass.php:
|
7759 |
msgid "ADMIN EMAIL: %s"
|
7760 |
msgstr ""
|
7761 |
|
7762 |
#. translators: Email address.
|
7763 |
-
#: lib/wordfenceClass.php:
|
7764 |
msgid "LOG:"
|
7765 |
msgstr ""
|
7766 |
|
7767 |
-
#: lib/wordfenceClass.php:
|
7768 |
msgid "# Scan Issues"
|
7769 |
msgstr ""
|
7770 |
|
7771 |
#. translators: Number of scan results.
|
7772 |
-
#: lib/wordfenceClass.php:
|
7773 |
msgid "## New Issues (%d total)"
|
7774 |
msgstr ""
|
7775 |
|
7776 |
#. translators: Number of scan results.
|
7777 |
-
#: lib/wordfenceClass.php:
|
7778 |
msgid "## Ignored Issues (%d total)"
|
7779 |
msgstr ""
|
7780 |
|
7781 |
-
#: lib/wordfenceClass.php:
|
7782 |
msgid "No Ignored Issues"
|
7783 |
msgstr ""
|
7784 |
|
7785 |
-
#: lib/wordfenceClass.php:
|
7786 |
msgid "Wordfence Activity Log"
|
7787 |
msgstr ""
|
7788 |
|
7789 |
#. translators: Error message.
|
7790 |
-
#: lib/wordfenceClass.php:
|
7791 |
msgid "Could not fetch free license key from Wordfence: %s"
|
7792 |
msgstr ""
|
7793 |
|
7794 |
-
#: lib/wordfenceClass.php:
|
7795 |
msgid "We could not find your .htaccess file to modify it."
|
7796 |
msgstr ""
|
7797 |
|
7798 |
#. translators: Error message.
|
7799 |
-
#: lib/wordfenceClass.php:
|
7800 |
msgid "We found your .htaccess file but could not open it for writing: %s"
|
7801 |
msgstr ""
|
7802 |
|
7803 |
-
#: lib/wordfenceClass.php:
|
7804 |
msgid "All Countries"
|
7805 |
msgstr ""
|
7806 |
|
7807 |
-
#: lib/wordfenceClass.php:
|
7808 |
msgid "1 Country"
|
7809 |
msgstr ""
|
7810 |
|
7811 |
#. translators: Number of countries.
|
7812 |
-
#: lib/wordfenceClass.php:
|
7813 |
msgid "%d Countries"
|
7814 |
msgstr ""
|
7815 |
|
7816 |
-
#: lib/wordfenceClass.php:
|
7817 |
msgid "Entire Site"
|
7818 |
msgstr ""
|
7819 |
|
7820 |
-
#: lib/wordfenceClass.php:
|
7821 |
msgid "Login Only"
|
7822 |
msgstr ""
|
7823 |
|
7824 |
-
#: lib/wordfenceClass.php:
|
7825 |
msgid "Site Except Login"
|
7826 |
msgstr ""
|
7827 |
|
7828 |
-
#: lib/wordfenceClass.php:
|
7829 |
msgid "IP Range"
|
7830 |
msgstr ""
|
7831 |
|
7832 |
#. translators: 2FA backup codes.
|
7833 |
-
#: lib/wordfenceClass.php:
|
7834 |
-
#: lib/wordfenceClass.php:
|
7835 |
msgid "User Agent"
|
7836 |
msgstr ""
|
7837 |
|
7838 |
-
#: lib/wordfenceClass.php:
|
7839 |
#: views/blocking/blocking-create.php:201
|
7840 |
msgid "Referrer"
|
7841 |
msgstr ""
|
7842 |
|
7843 |
-
#: lib/wordfenceClass.php:
|
7844 |
msgid "Permanent"
|
7845 |
msgstr ""
|
7846 |
|
7847 |
-
#: lib/wordfenceClass.php:
|
7848 |
msgid "An error occurred while creating the block."
|
7849 |
msgstr ""
|
7850 |
|
7851 |
-
#: lib/wordfenceClass.php:
|
7852 |
msgid "No block parameters were provided."
|
7853 |
msgstr ""
|
7854 |
|
7855 |
-
#: lib/wordfenceClass.php:
|
7856 |
-
#: lib/wordfenceClass.php:
|
7857 |
msgid "No blocks were provided."
|
7858 |
msgstr ""
|
7859 |
|
7860 |
-
#: lib/wordfenceClass.php:
|
7861 |
msgid "The license provided is already in use on another site."
|
7862 |
msgstr ""
|
7863 |
|
7864 |
-
#: lib/wordfenceClass.php:
|
7865 |
msgid "The Wordfence activation server returned an unexpected response. Please try again."
|
7866 |
msgstr ""
|
7867 |
|
7868 |
-
#: lib/wordfenceClass.php:
|
7869 |
msgid "We received an error while trying to activate the license with the Wordfence servers: "
|
7870 |
msgstr ""
|
7871 |
|
7872 |
-
#: lib/wordfenceClass.php:
|
7873 |
msgid "No license was provided to install."
|
7874 |
msgstr ""
|
7875 |
|
7876 |
-
#: lib/wordfenceClass.php:
|
7877 |
msgid "An unknown configuration section was provided."
|
7878 |
msgstr ""
|
7879 |
|
7880 |
-
#: lib/wordfenceClass.php:
|
7881 |
msgid "No configuration section was provided."
|
7882 |
msgstr ""
|
7883 |
|
7884 |
-
#: lib/wordfenceClass.php:
|
7885 |
-
#: lib/wordfenceClass.php:
|
7886 |
msgid "An error occurred while saving the configuration."
|
7887 |
msgstr ""
|
7888 |
|
7889 |
-
#: lib/wordfenceClass.php:
|
7890 |
msgid "No configuration changes were provided to save."
|
7891 |
msgstr ""
|
7892 |
|
7893 |
-
#: lib/wordfenceClass.php:
|
7894 |
-
#: lib/wordfenceClass.php:
|
7895 |
-
#: lib/wordfenceClass.php:
|
7896 |
-
#: lib/wordfenceClass.php:
|
7897 |
-
#: lib/wordfenceClass.php:
|
7898 |
-
#: lib/wordfenceClass.php:
|
7899 |
msgid "We could not find that issue in our database."
|
7900 |
msgstr ""
|
7901 |
|
7902 |
-
#: lib/wordfenceClass.php:
|
7903 |
msgid "An error occurred while trying to hide the file."
|
7904 |
msgstr ""
|
7905 |
|
7906 |
-
#: lib/wordfenceClass.php:
|
7907 |
msgid "An invalid file was requested for hiding."
|
7908 |
msgstr ""
|
7909 |
|
7910 |
-
#: lib/wordfenceClass.php:
|
7911 |
-
#: lib/wordfenceClass.php:
|
7912 |
msgid "You don't have permission to repair .htaccess. You need to either fix the file manually using FTP or change the file permissions and ownership so that your web server has write access to repair the file."
|
7913 |
msgstr ""
|
7914 |
|
7915 |
-
#: lib/wordfenceClass.php:
|
7916 |
msgid "Manual permanent block by admin"
|
7917 |
msgstr ""
|
7918 |
|
7919 |
-
#: lib/wordfenceClass.php:
|
7920 |
msgid "Please enter a valid IP address to block."
|
7921 |
msgstr ""
|
7922 |
|
7923 |
-
#: lib/wordfenceClass.php:
|
7924 |
msgid "You can't block your own IP address."
|
7925 |
msgstr ""
|
7926 |
|
7927 |
#. translators: IP address.
|
7928 |
-
#: lib/wordfenceClass.php:
|
7929 |
msgid "The IP address %s is allowlisted and can't be blocked. You can remove this IP from the allowlist on the Wordfence options page."
|
7930 |
msgstr ""
|
7931 |
|
7932 |
#. translators: IP address.
|
7933 |
-
#: lib/wordfenceClass.php:
|
7934 |
msgid "The IP address %s is in a range of IP addresses that Wordfence does not block. The IP range may be internal or belong to a service safe to allow access for."
|
7935 |
msgstr ""
|
7936 |
|
7937 |
-
#: lib/wordfenceClass.php:
|
7938 |
msgid "The IP address you're trying to block belongs to Google. Your options are currently set to not block these crawlers. Change this in Wordfence options if you want to manually block Google."
|
7939 |
msgstr ""
|
7940 |
|
7941 |
-
#: lib/wordfenceClass.php:
|
7942 |
msgid "An invalid operation was called."
|
7943 |
msgstr ""
|
7944 |
|
7945 |
-
#: lib/wordfenceClass.php:
|
7946 |
msgid "An invalid status was specified when trying to update that issue."
|
7947 |
msgstr ""
|
7948 |
|
7949 |
-
#: lib/wordfenceClass.php:
|
7950 |
msgid "Scan stop request received."
|
7951 |
msgstr ""
|
7952 |
|
7953 |
-
#: lib/wordfenceClass.php:
|
7954 |
msgid "A request was received to stop the previous scan."
|
7955 |
msgstr ""
|
7956 |
|
7957 |
-
#: lib/wordfenceClass.php:
|
7958 |
msgid "Idle"
|
7959 |
msgstr ""
|
7960 |
|
7961 |
#. translators: Localized date.
|
7962 |
-
#: lib/wordfenceClass.php:
|
7963 |
msgid "Scan completed on %s"
|
7964 |
msgstr ""
|
7965 |
|
7966 |
-
#: lib/wordfenceClass.php:
|
7967 |
msgid "Last scan failed"
|
7968 |
msgstr ""
|
7969 |
|
7970 |
#. translators: Time until.
|
7971 |
-
#: lib/wordfenceClass.php:
|
7972 |
msgid "more than %s"
|
7973 |
msgstr ""
|
7974 |
|
7975 |
#. translators: Localized date.
|
7976 |
-
#: lib/wordfenceClass.php:
|
7977 |
msgid "The current scan looks like it has failed. Its last status update was <span id=\"wf-scan-failed-time-ago\">%s</span> ago. You may continue to wait in case it resumes or stop and restart the scan. Some sites may need adjustments to run scans reliably."
|
7978 |
msgstr ""
|
7979 |
|
7980 |
#. translators: Localized date.
|
|
|
7981 |
#: lib/wordfenceClass.php:4961
|
7982 |
-
#: lib/wordfenceClass.php:
|
7983 |
-
#: lib/wordfenceClass.php:
|
7984 |
-
#: lib/wordfenceClass.php:
|
7985 |
-
#: lib/wordfenceClass.php:5008
|
7986 |
msgid "Click here for steps you can try."
|
7987 |
msgstr ""
|
7988 |
|
7989 |
#. translators: Localized date.
|
7990 |
-
#: lib/wordfenceClass.php:
|
7991 |
msgid "Cancel Scan"
|
7992 |
msgstr ""
|
7993 |
|
7994 |
-
#: lib/wordfenceClass.php:
|
7995 |
msgid "The previous scan has failed. Some sites may need adjustments to run scans reliably."
|
7996 |
msgstr ""
|
7997 |
|
7998 |
#. translators: Time limit (number).
|
7999 |
-
#: lib/wordfenceClass.php:
|
8000 |
msgid "The previous scan has terminated because the time limit of %s was reached. This limit can be customized on the options page."
|
8001 |
msgstr ""
|
8002 |
|
8003 |
-
#: lib/wordfenceClass.php:
|
8004 |
msgid "The previous scan has terminated because we detected an update occurring during the scan."
|
8005 |
msgstr ""
|
8006 |
|
8007 |
-
#: lib/wordfenceClass.php:
|
8008 |
-
msgid "
|
8009 |
msgstr ""
|
8010 |
|
8011 |
-
#: lib/wordfenceClass.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8012 |
msgid "Scans are not functional because SSL is unavailable."
|
8013 |
msgstr ""
|
8014 |
|
8015 |
-
#: lib/wordfenceClass.php:
|
8016 |
msgid "The scan has failed because we were unable to contact the Wordfence servers. Some sites may need adjustments to run scans reliably."
|
8017 |
msgstr ""
|
8018 |
|
8019 |
-
#: lib/wordfenceClass.php:
|
8020 |
msgid "The scan has failed because we received an unexpected response from the Wordfence servers. This may be a temporary error, though some sites may need adjustments to run scans reliably."
|
8021 |
msgstr ""
|
8022 |
|
8023 |
-
#: lib/wordfenceClass.php:
|
8024 |
msgid "Invalid email address given."
|
8025 |
msgstr ""
|
8026 |
|
8027 |
-
#: lib/wordfenceClass.php:
|
8028 |
-
#: lib/wordfenceClass.php:
|
8029 |
msgid "Deleting an infected wp-config.php file must be done outside of Wordfence. The wp-config.php file contains your database credentials, which you will need to restore normal site operations. Your site will NOT function once the wp-config.php file has been deleted."
|
8030 |
msgstr ""
|
8031 |
|
8032 |
#. translators: 1. File path. 2. Error message.
|
8033 |
-
#: lib/wordfenceClass.php:
|
8034 |
msgid "Could not delete file %1$s. Error was: %2$s"
|
8035 |
msgstr ""
|
8036 |
|
8037 |
#. translators: File path.
|
8038 |
-
#: lib/wordfenceClass.php:
|
8039 |
msgid "We could not retrieve the original file of %s to do a repair."
|
8040 |
msgstr ""
|
8041 |
|
8042 |
#. translators: File path.
|
8043 |
-
#: lib/wordfenceClass.php:
|
8044 |
msgid "An invalid file %s was specified for repair."
|
8045 |
msgstr ""
|
8046 |
|
8047 |
#. translators: File path.
|
8048 |
-
#: lib/wordfenceClass.php:
|
8049 |
msgid "You don't have permission to repair %s. You need to either fix the file manually using FTP or change the file permissions and ownership so that your web server has write access to repair the file."
|
8050 |
msgstr ""
|
8051 |
|
8052 |
#. translators: 1. File path. 2. Error message.
|
8053 |
-
#: lib/wordfenceClass.php:
|
8054 |
msgid "We could not write to %1$s. The error was: %2$s"
|
8055 |
msgstr ""
|
8056 |
|
8057 |
#. translators: 1. File path. 2. Number of bytes.
|
8058 |
-
#: lib/wordfenceClass.php:
|
8059 |
msgid "We could not write to %1$s. (%2$d bytes written) You may not have permission to modify files on your WordPress server."
|
8060 |
msgstr ""
|
8061 |
|
8062 |
-
#: lib/wordfenceClass.php:
|
8063 |
msgid "Deleted some files with errors"
|
8064 |
msgstr ""
|
8065 |
|
8066 |
-
#: lib/wordfenceClass.php:
|
8067 |
msgid "Repaired some files with errors"
|
8068 |
msgstr ""
|
8069 |
|
8070 |
#. translators: 1. Number of files. 2. Error message.
|
8071 |
-
#: lib/wordfenceClass.php:
|
8072 |
msgid "Deleted %1$d files but we encountered the following errors with other files: %2$s"
|
8073 |
msgstr ""
|
8074 |
|
8075 |
#. translators: 1. Number of files. 2. Error message.
|
8076 |
-
#: lib/wordfenceClass.php:
|
8077 |
msgid "Repaired %1$d files but we encountered the following errors with other files: %2$s"
|
8078 |
msgstr ""
|
8079 |
|
8080 |
#. translators: Number of files.
|
8081 |
-
#: lib/wordfenceClass.php:
|
8082 |
msgid "Deleted %d files successfully"
|
8083 |
msgstr ""
|
8084 |
|
8085 |
#. translators: Number of files.
|
8086 |
-
#: lib/wordfenceClass.php:
|
8087 |
msgid "Repaired %d files successfully"
|
8088 |
msgstr ""
|
8089 |
|
8090 |
#. translators: Number of files.
|
8091 |
-
#: lib/wordfenceClass.php:
|
8092 |
msgid "Deleted %d files successfully. No errors were encountered."
|
8093 |
msgstr ""
|
8094 |
|
8095 |
#. translators: Number of files.
|
8096 |
-
#: lib/wordfenceClass.php:
|
8097 |
msgid "Repaired %d files successfully. No errors were encountered."
|
8098 |
msgstr ""
|
8099 |
|
8100 |
-
#: lib/wordfenceClass.php:
|
8101 |
msgid "Could not delete files"
|
8102 |
msgstr ""
|
8103 |
|
8104 |
-
#: lib/wordfenceClass.php:
|
8105 |
msgid "Could not repair files"
|
8106 |
msgstr ""
|
8107 |
|
8108 |
#. translators: Error message.
|
8109 |
-
#: lib/wordfenceClass.php:
|
8110 |
msgid "We could not delete any of the files you selected. We encountered the following errors: %s"
|
8111 |
msgstr ""
|
8112 |
|
8113 |
#. translators: Error message.
|
8114 |
-
#: lib/wordfenceClass.php:
|
8115 |
msgid "We could not repair any of the files you selected. We encountered the following errors: %s"
|
8116 |
msgstr ""
|
8117 |
|
8118 |
-
#: lib/wordfenceClass.php:
|
8119 |
msgid "Nothing done"
|
8120 |
msgstr ""
|
8121 |
|
8122 |
-
#: lib/wordfenceClass.php:
|
8123 |
msgid "We didn't delete anything and no errors were found."
|
8124 |
msgstr ""
|
8125 |
|
8126 |
-
#: lib/wordfenceClass.php:
|
8127 |
msgid "We didn't repair anything and no errors were found."
|
8128 |
msgstr ""
|
8129 |
|
8130 |
-
#: lib/wordfenceClass.php:
|
8131 |
msgid "Invalid bulk operation selected"
|
8132 |
msgstr ""
|
8133 |
|
8134 |
-
#: lib/wordfenceClass.php:
|
8135 |
msgid "Could not delete file because we could not find that issue."
|
8136 |
msgstr ""
|
8137 |
|
8138 |
-
#: lib/wordfenceClass.php:
|
8139 |
msgid "Could not delete file because that issue does not appear to be a file related issue."
|
8140 |
msgstr ""
|
8141 |
|
8142 |
-
#: lib/wordfenceClass.php:
|
8143 |
msgid "An invalid file was requested for deletion."
|
8144 |
msgstr ""
|
8145 |
|
8146 |
#. translators: 1. File path. 2. Error message.
|
8147 |
-
#: lib/wordfenceClass.php:
|
8148 |
msgid "Could not delete file %1$s. The error was: %2$s"
|
8149 |
msgstr ""
|
8150 |
|
8151 |
-
#: lib/wordfenceClass.php:
|
8152 |
msgid "Could not remove the option because we could not find that issue."
|
8153 |
msgstr ""
|
8154 |
|
8155 |
-
#: lib/wordfenceClass.php:
|
8156 |
msgid "Could not remove the option because that issue does not appear to be a database related issue."
|
8157 |
msgstr ""
|
8158 |
|
8159 |
#. translators: 1. WordPress option. 2. Error message.
|
8160 |
-
#: lib/wordfenceClass.php:
|
8161 |
msgid "Could not remove the option %1$s. The error was: %2$s"
|
8162 |
msgstr ""
|
8163 |
|
8164 |
-
#: lib/wordfenceClass.php:
|
8165 |
msgid "Modifying the .htaccess file did not resolve the issue, so the original .htaccess file was restored. You can fix this manually by setting <code>display_errors</code> to <code>Off</code> in your php.ini if your site is on a VPS or dedicated server that you control."
|
8166 |
msgstr ""
|
8167 |
|
8168 |
-
#: lib/wordfenceClass.php:
|
8169 |
msgid "We could not get the original file to do a repair."
|
8170 |
msgstr ""
|
8171 |
|
8172 |
-
#: lib/wordfenceClass.php:
|
8173 |
msgid "An invalid file was specified for repair."
|
8174 |
msgstr ""
|
8175 |
|
8176 |
-
#: lib/wordfenceClass.php:
|
8177 |
msgid "We could not write to that file. You may not have permission to modify files on your WordPress server."
|
8178 |
msgstr ""
|
8179 |
|
8180 |
-
#: lib/wordfenceClass.php:
|
8181 |
msgid "Ajax request received to start scan."
|
8182 |
msgstr ""
|
8183 |
|
8184 |
#. translators: Number of URLs.
|
8185 |
-
#: lib/wordfenceClass.php:
|
8186 |
msgid "Page contains %d malware URL: "
|
8187 |
msgid_plural "Page contains %d malware URLs: "
|
8188 |
msgstr[0] ""
|
8189 |
msgstr[1] ""
|
8190 |
|
8191 |
-
#: lib/wordfenceClass.php:
|
8192 |
msgid "Run a Scan"
|
8193 |
msgstr ""
|
8194 |
|
8195 |
-
#: lib/wordfenceClass.php:
|
8196 |
msgid "Unknown dashboard data set."
|
8197 |
msgstr ""
|
8198 |
|
8199 |
-
#: lib/wordfenceClass.php:
|
8200 |
msgid "Bad security token. It may have been more than 12 hours since you reloaded the page you came from. Try reloading the page you came from. If that doesn't work, please sign out and sign-in again."
|
8201 |
msgstr ""
|
8202 |
|
8203 |
-
#: lib/wordfenceClass.php:
|
8204 |
msgid "An invalid IP address was specified."
|
8205 |
msgstr ""
|
8206 |
|
8207 |
-
#: lib/wordfenceClass.php:
|
8208 |
msgid "This link has expired. Refresh the scan results page and try again."
|
8209 |
msgstr ""
|
8210 |
|
8211 |
-
#: lib/wordfenceClass.php:
|
8212 |
-
#: lib/wordfenceClass.php:
|
8213 |
-
#: lib/wordfenceClass.php:
|
8214 |
msgid "File access blocked. (WORDFENCE_DISABLE_FILE_VIEWER is true)"
|
8215 |
msgstr ""
|
8216 |
|
8217 |
-
#: lib/wordfenceClass.php:
|
8218 |
-
#: lib/wordfenceClass.php:
|
8219 |
msgid "Invalid file requested. (Relative paths not allowed)"
|
8220 |
msgstr ""
|
8221 |
|
8222 |
-
#: lib/wordfenceClass.php:
|
8223 |
-
#: lib/wordfenceClass.php:
|
8224 |
-
#: lib/wordfenceClass.php:
|
8225 |
msgid "File contains illegal characters."
|
8226 |
msgstr ""
|
8227 |
|
8228 |
#. translators: Error message.
|
8229 |
-
#: lib/wordfenceClass.php:
|
8230 |
msgid "We could not open the requested file for reading. The error was: %s"
|
8231 |
msgstr ""
|
8232 |
|
8233 |
-
#: lib/wordfenceClass.php:
|
8234 |
msgid "Greater than 2 Gigs"
|
8235 |
msgstr ""
|
8236 |
|
8237 |
-
#: lib/wordfenceClass.php:
|
8238 |
msgid "Unknown file size."
|
8239 |
msgstr ""
|
8240 |
|
8241 |
-
#: lib/wordfenceClass.php:
|
8242 |
msgid "We could not get the contents of the original file to do a comparison."
|
8243 |
msgstr ""
|
8244 |
|
8245 |
-
#: lib/wordfenceClass.php:
|
8246 |
msgid "Empty file path provided"
|
8247 |
msgstr ""
|
8248 |
|
8249 |
-
#: lib/wordfenceClass.php:
|
8250 |
msgid "Unable to read file contents"
|
8251 |
msgstr ""
|
8252 |
|
8253 |
-
#: lib/wordfenceClass.php:
|
8254 |
msgid "File does not exist."
|
8255 |
msgstr ""
|
8256 |
|
8257 |
-
#: lib/wordfenceClass.php:
|
8258 |
#: views/dashboard/options-group-import.php:167
|
8259 |
msgid "Reload"
|
8260 |
msgstr ""
|
8261 |
|
8262 |
-
#: lib/wordfenceClass.php:
|
8263 |
msgid "${totalIPs} addresses in this network"
|
8264 |
msgstr ""
|
8265 |
|
8266 |
#. translators: 1. Description of firewall action. 2. Description of input parameters.
|
8267 |
-
#: lib/wordfenceClass.php:
|
8268 |
msgid "%s in POST body: %s"
|
8269 |
msgstr ""
|
8270 |
|
8271 |
#. translators: 1. Description of firewall action. 2. Description of input parameters.
|
8272 |
-
#: lib/wordfenceClass.php:
|
8273 |
msgid "%s in cookie: %s"
|
8274 |
msgstr ""
|
8275 |
|
8276 |
#. translators: 1. Description of firewall action. 2. Description of input parameters.
|
8277 |
-
#: lib/wordfenceClass.php:
|
8278 |
msgid "%s in file: %s"
|
8279 |
msgstr ""
|
8280 |
|
8281 |
#. translators: 1. Description of firewall action. 2. Description of input parameters.
|
8282 |
-
#: lib/wordfenceClass.php:
|
8283 |
msgid "%s in query string: %s"
|
8284 |
msgstr ""
|
8285 |
|
8286 |
#. translators: Domain name.
|
8287 |
-
#: lib/wordfenceClass.php:
|
8288 |
msgid "%s is not valid hostname"
|
8289 |
msgstr ""
|
8290 |
|
8291 |
#. translators: Domain name.
|
8292 |
-
#: lib/wordfenceClass.php:
|
8293 |
msgid ".htaccess Updated"
|
8294 |
msgstr ""
|
8295 |
|
8296 |
-
#: lib/wordfenceClass.php:
|
8297 |
msgid ".htaccess change"
|
8298 |
msgstr ""
|
8299 |
|
8300 |
-
#: lib/wordfenceClass.php:
|
8301 |
msgid "404 Not Found"
|
8302 |
msgstr ""
|
8303 |
|
8304 |
-
#: lib/wordfenceClass.php:
|
8305 |
msgid "Activity Log Sent"
|
8306 |
msgstr ""
|
8307 |
|
8308 |
-
#: lib/wordfenceClass.php:
|
8309 |
msgid "Add action to allowlist"
|
8310 |
msgstr ""
|
8311 |
|
8312 |
-
#: lib/wordfenceClass.php:
|
8313 |
msgid "Add code to .htaccess"
|
8314 |
msgstr ""
|
8315 |
|
8316 |
-
#: lib/wordfenceClass.php:
|
8317 |
msgid "All Hits"
|
8318 |
msgstr ""
|
8319 |
|
8320 |
#. translators: WordPress username.
|
8321 |
-
#: lib/wordfenceClass.php:
|
8322 |
msgid "All capabilties of admin user %s were successfully revoked."
|
8323 |
msgstr ""
|
8324 |
|
8325 |
-
#: lib/wordfenceClass.php:
|
8326 |
msgid "An error occurred when adding the request to the allowlist."
|
8327 |
msgstr ""
|
8328 |
|
8329 |
-
#: lib/wordfenceClass.php:
|
8330 |
msgid "Are you sure you want to allowlist this action?"
|
8331 |
msgstr ""
|
8332 |
|
8333 |
-
#: lib/wordfenceClass.php:
|
8334 |
msgid "Authentication Code"
|
8335 |
msgstr ""
|
8336 |
|
8337 |
-
#: lib/wordfenceClass.php:
|
8338 |
msgid "Background Request Blocked"
|
8339 |
msgstr ""
|
8340 |
|
8341 |
-
#: lib/wordfenceClass.php:
|
8342 |
msgid "Block This Network"
|
8343 |
msgstr ""
|
8344 |
|
8345 |
-
#: lib/wordfenceClass.php:
|
8346 |
msgid "Blocked By Firewall"
|
8347 |
msgstr ""
|
8348 |
|
8349 |
-
#: lib/wordfenceClass.php:
|
8350 |
msgid "Blocked WAF"
|
8351 |
msgstr ""
|
8352 |
|
8353 |
-
#: lib/wordfenceClass.php:
|
8354 |
msgid "Blocked by Wordfence"
|
8355 |
msgstr ""
|
8356 |
|
8357 |
-
#: lib/wordfenceClass.php:
|
8358 |
msgid "Blocked by Wordfence plugin settings"
|
8359 |
msgstr ""
|
8360 |
|
8361 |
-
#: lib/wordfenceClass.php:
|
8362 |
msgid "Blocked by the Wordfence Application Firewall and plugin settings"
|
8363 |
msgstr ""
|
8364 |
|
8365 |
-
#: lib/wordfenceClass.php:
|
8366 |
msgid "Blocked by the Wordfence Security Network"
|
8367 |
msgstr ""
|
8368 |
|
8369 |
-
#: lib/wordfenceClass.php:
|
8370 |
msgid "Blocked by the Wordfence Web Application Firewall"
|
8371 |
msgstr ""
|
8372 |
|
8373 |
-
#: lib/wordfenceClass.php:
|
8374 |
msgid "Cellphone Sign-In Recovery Codes"
|
8375 |
msgstr ""
|
8376 |
|
8377 |
-
#: lib/wordfenceClass.php:
|
8378 |
msgid "Cellphone Sign-in activated for user."
|
8379 |
msgstr ""
|
8380 |
|
8381 |
-
#: lib/wordfenceClass.php:
|
8382 |
msgid "Click here to download a backup copy of this file now"
|
8383 |
msgstr ""
|
8384 |
|
8385 |
-
#: lib/wordfenceClass.php:
|
8386 |
msgid "Click here to download a backup copy of your .htaccess file now"
|
8387 |
msgstr ""
|
8388 |
|
8389 |
-
#: lib/wordfenceClass.php:
|
8390 |
msgid "Click to fix .htaccess"
|
8391 |
msgstr ""
|
8392 |
|
8393 |
-
#: lib/wordfenceClass.php:
|
8394 |
msgid "Crawlers"
|
8395 |
msgstr ""
|
8396 |
|
8397 |
-
#: lib/wordfenceClass.php:
|
8398 |
msgid "Diagnostic report has been sent successfully."
|
8399 |
msgstr ""
|
8400 |
|
8401 |
-
#: lib/wordfenceClass.php:
|
8402 |
msgid "Directory Listing Disabled"
|
8403 |
msgstr ""
|
8404 |
|
8405 |
-
#: lib/wordfenceClass.php:
|
8406 |
msgid "Directory listing has been disabled on your server."
|
8407 |
msgstr ""
|
8408 |
|
8409 |
-
#: lib/wordfenceClass.php:
|
8410 |
msgid "Don't ask again"
|
8411 |
msgstr ""
|
8412 |
|
8413 |
-
#: lib/wordfenceClass.php:
|
8414 |
msgid "Download Backup File"
|
8415 |
msgstr ""
|
8416 |
|
8417 |
-
#: lib/wordfenceClass.php:
|
8418 |
msgid "Each line of 16 letters and numbers is a single recovery code, with optional spaces for readability. When typing your password, enter \"wf\" followed by the entire code like \"mypassword wf1234 5678 90AB CDEF\". If your site shows a separate prompt for entering a code after entering only your username and password, enter only the code like \"1234 5678 90AB CDEF\". Your recovery codes are:"
|
8419 |
msgstr ""
|
8420 |
|
8421 |
-
#: lib/wordfenceClass.php:
|
8422 |
msgid "Email Diagnostic Report"
|
8423 |
msgstr ""
|
8424 |
|
8425 |
-
#: lib/wordfenceClass.php:
|
8426 |
msgid "Email Wordfence Activity Log"
|
8427 |
msgstr ""
|
8428 |
|
8429 |
-
#: lib/wordfenceClass.php:
|
8430 |
msgid "Enter the email address you would like to send the Wordfence activity log to. Note that the activity log may contain thousands of lines of data. This log is usually only sent to a member of the Wordfence support team. It also contains your PHP configuration from the phpinfo() function for diagnostic data."
|
8431 |
msgstr ""
|
8432 |
|
8433 |
-
#: lib/wordfenceClass.php:
|
8434 |
msgid "Error"
|
8435 |
msgstr ""
|
8436 |
|
8437 |
-
#: lib/wordfenceClass.php:
|
8438 |
msgid "Error Enabling All Options Page"
|
8439 |
msgstr ""
|
8440 |
|
8441 |
-
#: lib/wordfenceClass.php:
|
8442 |
msgid "Error Restoring Defaults"
|
8443 |
msgstr ""
|
8444 |
|
8445 |
-
#: lib/wordfenceClass.php:
|
8446 |
msgid "Error Saving Option"
|
8447 |
msgstr ""
|
8448 |
|
8449 |
-
#: lib/wordfenceClass.php:
|
8450 |
msgid "Error Saving Options"
|
8451 |
msgstr ""
|
8452 |
|
8453 |
-
#: lib/wordfenceClass.php:
|
8454 |
msgid "Failed Login"
|
8455 |
msgstr ""
|
8456 |
|
8457 |
-
#: lib/wordfenceClass.php:
|
8458 |
msgid "Failed Login: Invalid Username"
|
8459 |
msgstr ""
|
8460 |
|
8461 |
-
#: lib/wordfenceClass.php:
|
8462 |
msgid "Failed Login: Valid Username"
|
8463 |
msgstr ""
|
8464 |
|
8465 |
-
#: lib/wordfenceClass.php:
|
8466 |
msgid "File hidden successfully"
|
8467 |
msgstr ""
|
8468 |
|
8469 |
-
#: lib/wordfenceClass.php:
|
8470 |
msgid "File restored OK"
|
8471 |
msgstr ""
|
8472 |
|
8473 |
-
#: lib/wordfenceClass.php:
|
8474 |
msgid "Filter Traffic"
|
8475 |
msgstr ""
|
8476 |
|
8477 |
-
#: lib/wordfenceClass.php:
|
8478 |
msgid "Firewall Response"
|
8479 |
msgstr ""
|
8480 |
|
8481 |
-
#: lib/wordfenceClass.php:
|
8482 |
#: views/scanner/issue-wpscan_fullPathDiscl.php:8
|
8483 |
msgid "Full Path Disclosure"
|
8484 |
msgstr ""
|
8485 |
|
8486 |
-
#: lib/wordfenceClass.php:
|
8487 |
msgid "Google Bot"
|
8488 |
msgstr ""
|
8489 |
|
8490 |
-
#: lib/wordfenceClass.php:
|
8491 |
msgid "Google Crawlers"
|
8492 |
msgstr ""
|
8493 |
|
8494 |
-
#: lib/wordfenceClass.php:
|
8495 |
msgid "HTTP Response Code"
|
8496 |
msgstr ""
|
8497 |
|
8498 |
-
#: lib/wordfenceClass.php:
|
8499 |
msgid "Humans"
|
8500 |
msgstr ""
|
8501 |
|
8502 |
-
#: lib/wordfenceClass.php:
|
8503 |
msgid "Key:"
|
8504 |
msgstr ""
|
8505 |
|
8506 |
#. translators: Localized date.
|
8507 |
-
#: lib/wordfenceClass.php:
|
8508 |
msgid "Last Updated: %s"
|
8509 |
msgstr ""
|
8510 |
|
8511 |
#. translators: Localized date.
|
8512 |
-
#: lib/wordfenceClass.php:
|
8513 |
msgid "Learn more about repairing modified files."
|
8514 |
msgstr ""
|
8515 |
|
8516 |
-
#: lib/wordfenceClass.php:
|
8517 |
msgid "Locked Out"
|
8518 |
msgstr ""
|
8519 |
|
8520 |
-
#: lib/wordfenceClass.php:
|
8521 |
msgid "Locked out from logging in"
|
8522 |
msgstr ""
|
8523 |
|
8524 |
-
#: lib/wordfenceClass.php:
|
8525 |
msgid "Logged In"
|
8526 |
msgstr ""
|
8527 |
|
8528 |
-
#: lib/wordfenceClass.php:
|
8529 |
msgid "Logins"
|
8530 |
msgstr ""
|
8531 |
|
8532 |
-
#: lib/wordfenceClass.php:
|
8533 |
msgid "Logins and Logouts"
|
8534 |
msgstr ""
|
8535 |
|
8536 |
#. translators: Localized date.
|
8537 |
-
#: lib/wordfenceClass.php:
|
8538 |
msgid "Next Update Check: %s"
|
8539 |
msgstr ""
|
8540 |
|
8541 |
#. translators: Localized date.
|
8542 |
-
#: lib/wordfenceClass.php:
|
8543 |
msgid "No activity to report yet. Please complete your first scan."
|
8544 |
msgstr ""
|
8545 |
|
8546 |
-
#: lib/wordfenceClass.php:
|
8547 |
msgid "No issues have been ignored."
|
8548 |
msgstr ""
|
8549 |
|
8550 |
-
#: lib/wordfenceClass.php:
|
8551 |
msgid "No new issues have been found."
|
8552 |
msgstr ""
|
8553 |
|
8554 |
-
#: lib/wordfenceClass.php:
|
8555 |
msgid "No rules were updated. Please verify you have permissions to write to the /wp-content/wflogs directory."
|
8556 |
msgstr ""
|
8557 |
|
8558 |
-
#: lib/wordfenceClass.php:
|
8559 |
msgid "No rules were updated. Please verify your website can reach the Wordfence servers."
|
8560 |
msgstr ""
|
8561 |
|
8562 |
-
#: lib/wordfenceClass.php:
|
8563 |
msgid "No rules were updated. Your website has reached the maximum number of rule update requests. Please try again later."
|
8564 |
msgstr ""
|
8565 |
|
8566 |
-
#: lib/wordfenceClass.php:
|
8567 |
msgid "Note: Status will update when changes are saved"
|
8568 |
msgstr ""
|
8569 |
|
8570 |
-
#: lib/wordfenceClass.php:
|
8571 |
msgid "OK"
|
8572 |
msgstr ""
|
8573 |
|
8574 |
-
#: lib/wordfenceClass.php:
|
8575 |
msgid "Pages Not Found"
|
8576 |
msgstr ""
|
8577 |
|
8578 |
-
#: lib/wordfenceClass.php:
|
8579 |
msgid "Paid Members Only"
|
8580 |
msgstr ""
|
8581 |
|
8582 |
-
#: lib/wordfenceClass.php:
|
8583 |
msgid "Please enter a valid email address."
|
8584 |
msgstr ""
|
8585 |
|
8586 |
-
#: lib/wordfenceClass.php:
|
8587 |
msgid "Please include your support ticket number or forum username."
|
8588 |
msgstr ""
|
8589 |
|
8590 |
-
#: lib/wordfenceClass.php:
|
8591 |
msgid "Please make a backup of this file before proceeding. If you need to restore this backup file, you can copy it to the following path from your site's root:"
|
8592 |
msgstr ""
|
8593 |
|
8594 |
-
#: lib/wordfenceClass.php:
|
8595 |
msgid "Please specify a reason"
|
8596 |
msgstr ""
|
8597 |
|
8598 |
-
#: lib/wordfenceClass.php:
|
8599 |
msgid "Please specify a valid IP address range in the form of \"1.2.3.4 - 1.2.3.5\" without quotes. Make sure the dash between the IP addresses in a normal dash (a minus sign on your keyboard) and not another character that looks like a dash."
|
8600 |
msgstr ""
|
8601 |
|
8602 |
-
#: lib/wordfenceClass.php:
|
8603 |
msgid "Please specify either an IP address range, Hostname or a web browser pattern to match."
|
8604 |
msgstr ""
|
8605 |
|
8606 |
-
#: lib/wordfenceClass.php:
|
8607 |
msgid "Recent Activity"
|
8608 |
msgstr ""
|
8609 |
|
8610 |
-
#: lib/wordfenceClass.php:
|
8611 |
msgid "Recovery Codes"
|
8612 |
msgstr ""
|
8613 |
|
8614 |
-
#: lib/wordfenceClass.php:
|
8615 |
msgid "Redirected"
|
8616 |
msgstr ""
|
8617 |
|
8618 |
-
#: lib/wordfenceClass.php:
|
8619 |
msgid "Redirected by Country Blocking bypass URL"
|
8620 |
msgstr ""
|
8621 |
|
8622 |
-
#: lib/wordfenceClass.php:
|
8623 |
msgid "Referer"
|
8624 |
msgstr ""
|
8625 |
|
8626 |
-
#: lib/wordfenceClass.php:
|
8627 |
msgid "Registered Users"
|
8628 |
msgstr ""
|
8629 |
|
8630 |
-
#: lib/wordfenceClass.php:
|
8631 |
msgid "Rule Update Failed"
|
8632 |
msgstr ""
|
8633 |
|
8634 |
-
#: lib/wordfenceClass.php:
|
8635 |
msgid "Rules Updated"
|
8636 |
msgstr ""
|
8637 |
|
8638 |
-
#: lib/wordfenceClass.php:
|
8639 |
msgid "Scan Complete."
|
8640 |
msgstr ""
|
8641 |
|
8642 |
-
#: lib/wordfenceClass.php:
|
8643 |
msgid "Scan the code below with your authenticator app to add this account. Some authenticator apps also allow you to type in the text version instead."
|
8644 |
msgstr ""
|
8645 |
|
8646 |
-
#: lib/wordfenceClass.php:
|
8647 |
msgid "Security Event"
|
8648 |
msgstr ""
|
8649 |
|
8650 |
-
#: lib/wordfenceClass.php:
|
8651 |
msgid "Send"
|
8652 |
msgstr ""
|
8653 |
|
8654 |
-
#: lib/wordfenceClass.php:
|
8655 |
msgid "Sorry, but no data for that IP or domain was found."
|
8656 |
msgstr ""
|
8657 |
|
8658 |
-
#: lib/wordfenceClass.php:
|
8659 |
msgid "Specify a valid IP range"
|
8660 |
msgstr ""
|
8661 |
|
8662 |
-
#: lib/wordfenceClass.php:
|
8663 |
msgid "Specify a valid hostname"
|
8664 |
msgstr ""
|
8665 |
|
8666 |
-
#: lib/wordfenceClass.php:
|
8667 |
msgid "Specify an IP range, Hostname or Browser pattern"
|
8668 |
msgstr ""
|
8669 |
|
8670 |
-
#: lib/wordfenceClass.php:
|
8671 |
msgid "Success deleting file"
|
8672 |
msgstr ""
|
8673 |
|
8674 |
-
#: lib/wordfenceClass.php:
|
8675 |
msgid "Success removing option"
|
8676 |
msgstr ""
|
8677 |
|
8678 |
-
#: lib/wordfenceClass.php:
|
8679 |
msgid "Success restoring file"
|
8680 |
msgstr ""
|
8681 |
|
8682 |
-
#: lib/wordfenceClass.php:
|
8683 |
msgid "Success updating option"
|
8684 |
msgstr ""
|
8685 |
|
8686 |
-
#: lib/wordfenceClass.php:
|
8687 |
msgid "Successfully deleted admin"
|
8688 |
msgstr ""
|
8689 |
|
8690 |
-
#: lib/wordfenceClass.php:
|
8691 |
msgid "Successfully revoked admin"
|
8692 |
msgstr ""
|
8693 |
|
8694 |
-
#: lib/wordfenceClass.php:
|
8695 |
msgid "Test Email Sent"
|
8696 |
msgstr ""
|
8697 |
|
8698 |
-
#: lib/wordfenceClass.php:
|
8699 |
msgid "The 'How does Wordfence get IPs' option was successfully updated to the recommended value."
|
8700 |
msgstr ""
|
8701 |
|
8702 |
-
#: lib/wordfenceClass.php:
|
8703 |
msgid "The Full Path disclosure issue has been fixed"
|
8704 |
msgstr ""
|
8705 |
|
8706 |
#. translators: WordPress username.
|
8707 |
-
#: lib/wordfenceClass.php:
|
8708 |
msgid "The admin user %s was successfully deleted."
|
8709 |
msgstr ""
|
8710 |
|
8711 |
#. translators: File path.
|
8712 |
-
#: lib/wordfenceClass.php:
|
8713 |
msgid "The file %s was successfully deleted."
|
8714 |
msgstr ""
|
8715 |
|
8716 |
#. translators: File path.
|
8717 |
-
#: lib/wordfenceClass.php:
|
8718 |
msgid "The file %s was successfully hidden from public view."
|
8719 |
msgstr ""
|
8720 |
|
8721 |
#. translators: File path.
|
8722 |
-
#: lib/wordfenceClass.php:
|
8723 |
msgid "The file %s was successfully restored."
|
8724 |
msgstr ""
|
8725 |
|
8726 |
#. translators: WordPress option.
|
8727 |
-
#: lib/wordfenceClass.php:
|
8728 |
msgid "The option %s was successfully removed."
|
8729 |
msgstr ""
|
8730 |
|
8731 |
#. translators: WordPress option.
|
8732 |
-
#: lib/wordfenceClass.php:
|
8733 |
msgid "The request has been allowlisted. Please try it again."
|
8734 |
msgstr ""
|
8735 |
|
8736 |
-
#: lib/wordfenceClass.php:
|
8737 |
msgid "There was an error while sending the email."
|
8738 |
msgstr ""
|
8739 |
|
8740 |
-
#: lib/wordfenceClass.php:
|
8741 |
msgid "This will be shown only once. Keep these codes somewhere safe."
|
8742 |
msgstr ""
|
8743 |
|
8744 |
-
#: lib/wordfenceClass.php:
|
8745 |
msgid "Throttled"
|
8746 |
msgstr ""
|
8747 |
|
8748 |
-
#: lib/wordfenceClass.php:
|
8749 |
msgid "Two Factor Status"
|
8750 |
msgstr ""
|
8751 |
|
8752 |
#. translators: HTTP client type.
|
8753 |
-
#: lib/wordfenceClass.php:
|
8754 |
msgid "Type: %s"
|
8755 |
msgstr ""
|
8756 |
|
8757 |
#. translators: HTTP client type.
|
8758 |
-
#: lib/wordfenceClass.php:
|
8759 |
#: views/scanner/issue-checkGSB.php:8
|
8760 |
#: views/scanner/issue-commentBadURL.php:8
|
8761 |
#: views/scanner/issue-configReadable.php:12
|
@@ -8775,585 +8803,585 @@ msgstr ""
|
|
8775 |
msgid "URL"
|
8776 |
msgstr ""
|
8777 |
|
8778 |
-
#: lib/wordfenceClass.php:
|
8779 |
msgid "Unable to automatically hide file"
|
8780 |
msgstr ""
|
8781 |
|
8782 |
#. translators: 2FA backup codes.
|
8783 |
-
#: lib/wordfenceClass.php:
|
8784 |
msgid "Use one of these %s codes to log in if you are unable to access your phone. Codes are 16 characters long, plus optional spaces. Each one may be used only once."
|
8785 |
msgstr ""
|
8786 |
|
8787 |
#. translators: 2FA backup codes.
|
8788 |
-
#: lib/wordfenceClass.php:
|
8789 |
msgid "Use one of these %s codes to log in if you lose access to your authenticator device. Codes are 16 characters long, plus optional spaces. Each one may be used only once."
|
8790 |
msgstr ""
|
8791 |
|
8792 |
-
#: lib/wordfenceClass.php:
|
8793 |
msgid "User ID"
|
8794 |
msgstr ""
|
8795 |
|
8796 |
-
#: lib/wordfenceClass.php:
|
8797 |
msgid "WHOIS LOOKUP"
|
8798 |
msgstr ""
|
8799 |
|
8800 |
-
#: lib/wordfenceClass.php:
|
8801 |
msgid "We are about to change your <em>.htaccess</em> file. Please make a backup of this file before proceeding."
|
8802 |
msgstr ""
|
8803 |
|
8804 |
#. translators: Error message.
|
8805 |
-
#: lib/wordfenceClass.php:
|
8806 |
msgid "We can't modify your .htaccess file for you because: %s"
|
8807 |
msgstr ""
|
8808 |
|
8809 |
#. translators: Error message.
|
8810 |
-
#: lib/wordfenceClass.php:
|
8811 |
msgid "We encountered a problem"
|
8812 |
msgstr ""
|
8813 |
|
8814 |
#. translators: URL.
|
8815 |
-
#: lib/wordfenceClass.php:
|
8816 |
msgid "Wordfence Firewall blocked a background request to WordPress for the URL %s. If this occurred as a result of an intentional action, you may consider allowlisting the request to allow it in the future."
|
8817 |
msgstr ""
|
8818 |
|
8819 |
#. translators: URL.
|
8820 |
-
#: lib/wordfenceClass.php:
|
8821 |
msgid "Wordfence is working..."
|
8822 |
msgstr ""
|
8823 |
|
8824 |
-
#: lib/wordfenceClass.php:
|
8825 |
msgid "You are using Nginx as your web server. You'll need to disable autoindexing in your nginx.conf. See the <a target='_blank' rel='noopener noreferrer' href='https://nginx.org/en/docs/http/ngx_http_autoindex_module.html'>Nginx docs for more info</a> on how to do this."
|
8826 |
msgstr ""
|
8827 |
|
8828 |
-
#: lib/wordfenceClass.php:
|
8829 |
msgid "You are using an Nginx web server and using a FastCGI processor like PHP5-FPM. You will need to manually delete or hide those files."
|
8830 |
msgstr ""
|
8831 |
|
8832 |
-
#: lib/wordfenceClass.php:
|
8833 |
msgid "You are using an Nginx web server and using a FastCGI processor like PHP5-FPM. You will need to manually modify your php.ini to disable <em>display_error</em>"
|
8834 |
msgstr ""
|
8835 |
|
8836 |
-
#: lib/wordfenceClass.php:
|
8837 |
msgid "You forgot to include a reason you're blocking this IP range. We ask you to include this for your own record keeping."
|
8838 |
msgstr ""
|
8839 |
|
8840 |
-
#: lib/wordfenceClass.php:
|
8841 |
msgid "You have unsaved changes to your options. If you leave this page, those changes will be lost."
|
8842 |
msgstr ""
|
8843 |
|
8844 |
-
#: lib/wordfenceClass.php:
|
8845 |
msgid "Your .htaccess has been updated successfully. Please verify your site is functioning normally."
|
8846 |
msgstr ""
|
8847 |
|
8848 |
#. translators: Email address.
|
8849 |
-
#: lib/wordfenceClass.php:
|
8850 |
msgid "Your Wordfence activity log was sent to %s"
|
8851 |
msgstr ""
|
8852 |
|
8853 |
#. translators: Email address.
|
8854 |
-
#: lib/wordfenceClass.php:
|
8855 |
msgid "Your rules have been updated successfully."
|
8856 |
msgstr ""
|
8857 |
|
8858 |
-
#: lib/wordfenceClass.php:
|
8859 |
msgid "Your rules have been updated successfully. You are currently using the free version of Wordfence. Upgrade to Wordfence premium to have your rules updated automatically as new threats emerge. <a href=\"https://www.wordfence.com/wafUpdateRules1/wordfence-signup/\">Click here to purchase a premium license</a>. <em>Note: Your rules will still update every 30 days as a free user.</em>"
|
8860 |
msgstr ""
|
8861 |
|
8862 |
#. translators: wp_mail() return value.
|
8863 |
-
#: lib/wordfenceClass.php:
|
8864 |
msgid "Your test email was sent to the requested email address. The result we received from the WordPress wp_mail() function was: %s<br /><br />A 'True' result means WordPress thinks the mail was sent without errors. A 'False' result means that WordPress encountered an error sending your mail. Note that it's possible to get a 'True' response with an error elsewhere in your mail system that may cause emails to not be delivered."
|
8865 |
msgstr ""
|
8866 |
|
8867 |
#. translators: wp_mail() return value.
|
8868 |
-
#: lib/wordfenceClass.php:
|
8869 |
msgid "blocked by firewall"
|
8870 |
msgstr ""
|
8871 |
|
8872 |
#. translators: Reason for firewall action.
|
8873 |
-
#: lib/wordfenceClass.php:
|
8874 |
msgid "blocked by firewall for %s"
|
8875 |
msgstr ""
|
8876 |
|
8877 |
#. translators: Reason for firewall action.
|
8878 |
-
#: lib/wordfenceClass.php:
|
8879 |
msgid "blocked by real-time IP blocklist"
|
8880 |
msgstr ""
|
8881 |
|
8882 |
-
#: lib/wordfenceClass.php:
|
8883 |
msgid "blocked by the Wordfence Security Network"
|
8884 |
msgstr ""
|
8885 |
|
8886 |
#. translators: Reason for firewall action.
|
8887 |
-
#: lib/wordfenceClass.php:
|
8888 |
msgid "blocked for %s"
|
8889 |
msgstr ""
|
8890 |
|
8891 |
#. translators: Reason for firewall action.
|
8892 |
-
#: lib/wordfenceClass.php:
|
8893 |
msgid "locked out from logging in"
|
8894 |
msgstr ""
|
8895 |
|
8896 |
-
#: lib/wordfenceClass.php:
|
8897 |
msgid "Wordfence generated an error on activation. The output we received during activation was:"
|
8898 |
msgstr ""
|
8899 |
|
8900 |
-
#: lib/wordfenceClass.php:
|
8901 |
msgid "Wordfence could not register with the Wordfence scanning servers when it activated."
|
8902 |
msgstr ""
|
8903 |
|
8904 |
-
#: lib/wordfenceClass.php:
|
8905 |
msgid "You can try to fix this by deactivating Wordfence and then activating it again, so Wordfence will retry registering for you. If you keep seeing this error, it usually means your WordPress server can't connect to our scanning servers, or your wfConfig database table cannot be created to save the key. You can try asking your host to allow your server to connect to noc1.wordfence.com or check the wfConfig database table and database privileges."
|
8906 |
msgstr ""
|
8907 |
|
8908 |
-
#: lib/wordfenceClass.php:
|
8909 |
msgid "The Wordfence Web Application Firewall cannot run."
|
8910 |
msgstr ""
|
8911 |
|
8912 |
#. translators: 1. WordPress admin panel URL. 2. Support URL.
|
8913 |
-
#: lib/wordfenceClass.php:
|
8914 |
msgid "The configuration files are corrupt or inaccessible by the web server, which is preventing the WAF from functioning. Please verify the web server has permission to access the configuration files. You may also try to rebuild the configuration file by <a href=\"%1$s\">clicking here</a>. It will automatically resume normal operation when it is fixed. <a class=\"wfhelp\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"%2$s\"><span class=\"screen-reader-text\"> ("
|
8915 |
msgstr ""
|
8916 |
|
8917 |
-
#: lib/wordfenceClass.php:
|
8918 |
msgid "The WAF storage engine is currently set to mysqli, but Wordfence is unable to use the database. The WAF will fall back to using local file system storage instead."
|
8919 |
msgstr ""
|
8920 |
|
8921 |
-
#: lib/wordfenceClass.php:
|
8922 |
-
#: lib/wordfenceClass.php:
|
8923 |
msgid "The Wordfence Web Application Firewall needs a configuration update."
|
8924 |
msgstr ""
|
8925 |
|
8926 |
#. translators: 1. WordPress admin panel URL. 2. Support URL.
|
8927 |
-
#: lib/wordfenceClass.php:
|
8928 |
msgid "It is currently configured to use an older version of PHP and may become deactivated if PHP is updated. You may perform the configuration update automatically by <a href=\"%1$s\">clicking here</a>. <a class=\"wfhelp\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"%2$s\"><span class=\"screen-reader-text\"> ("
|
8929 |
msgstr ""
|
8930 |
|
8931 |
#. translators: 1. WordPress admin panel URL. 2. Support URL.
|
8932 |
-
#: lib/wordfenceClass.php:
|
8933 |
msgid "It is not currently in extended protection mode but was configured to use an older version of PHP and may have become deactivated when PHP was updated. You may perform the configuration update automatically by <a href=\"%1$s\">clicking here</a> or use the \"Optimize the Wordfence Firewall\" button on the Firewall Options page. <a class=\"wfhelp\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"%2$s\"><span class=\"screen-reader-text\"> ("
|
8934 |
msgstr ""
|
8935 |
|
8936 |
-
#: lib/wordfenceClass.php:
|
8937 |
msgid "The Wordfence Web Application Firewall is in read-only mode."
|
8938 |
msgstr ""
|
8939 |
|
8940 |
-
#: lib/wordfenceClass.php:
|
8941 |
msgid "This site is currently using PHP's built in REMOTE_ADDR."
|
8942 |
msgstr ""
|
8943 |
|
8944 |
-
#: lib/wordfenceClass.php:
|
8945 |
msgid "This site is currently using the X-Forwarded-For HTTP header, which should only be used when the site is behind a front-end proxy that outputs this header."
|
8946 |
msgstr ""
|
8947 |
|
8948 |
-
#: lib/wordfenceClass.php:
|
8949 |
msgid "This site is currently using the X-Real-IP HTTP header, which should only be used when the site is behind a front-end proxy that outputs this header."
|
8950 |
msgstr ""
|
8951 |
|
8952 |
-
#: lib/wordfenceClass.php:
|
8953 |
msgid "This site is currently using the Cloudflare \"CF-Connecting-IP\" HTTP header, which should only be used when the site is behind Cloudflare."
|
8954 |
msgstr ""
|
8955 |
|
8956 |
-
#: lib/wordfenceClass.php:
|
8957 |
msgid "Your 'How does Wordfence get IPs' setting is misconfigured."
|
8958 |
msgstr ""
|
8959 |
|
8960 |
-
#: lib/wordfenceClass.php:
|
8961 |
msgid "Click here to use the recommended setting"
|
8962 |
msgstr ""
|
8963 |
|
8964 |
-
#: lib/wordfenceClass.php:
|
8965 |
#: views/onboarding/fresh-install.php:38
|
8966 |
msgid "or"
|
8967 |
msgstr ""
|
8968 |
|
8969 |
-
#: lib/wordfenceClass.php:
|
8970 |
msgid "visit the options page"
|
8971 |
msgstr ""
|
8972 |
|
8973 |
-
#: lib/wordfenceClass.php:
|
8974 |
msgid "to manually update it."
|
8975 |
msgstr ""
|
8976 |
|
8977 |
-
#: lib/wordfenceClass.php:
|
8978 |
msgid "Do you want Wordfence to stay up-to-date automatically?"
|
8979 |
msgstr ""
|
8980 |
|
8981 |
-
#: lib/wordfenceClass.php:
|
8982 |
msgid "Yes, enable auto-update."
|
8983 |
msgstr ""
|
8984 |
|
8985 |
-
#: lib/wordfenceClass.php:
|
8986 |
msgid "No thanks."
|
8987 |
msgstr ""
|
8988 |
|
8989 |
-
#: lib/wordfenceClass.php:
|
8990 |
msgid "Wordfence country blocking is currently set to block the United States. We recommend allowing access from the United States for Google and other benign crawlers, unless you choose to only block the login page."
|
8991 |
msgstr ""
|
8992 |
|
8993 |
#. translators: Localized date.
|
8994 |
-
#: lib/wordfenceClass.php:
|
8995 |
msgid "The last rules update for the Wordfence Web Application Firewall was unsuccessful. The last successful update check was %s, so this site may be missing new rules added since then."
|
8996 |
msgstr ""
|
8997 |
|
8998 |
#. translators: 1. Localized date. 2. WordPress admin panel URL.
|
8999 |
-
#: lib/wordfenceClass.php:
|
9000 |
msgid "You may wait for the next automatic attempt at %1$s or try to <a href=\"%2$s\">Manually Update</a> by clicking the \"Manually Refresh Rules\" button below the Rules list."
|
9001 |
msgstr ""
|
9002 |
|
9003 |
#. translators: WordPress admin panel URL.
|
9004 |
-
#: lib/wordfenceClass.php:
|
9005 |
msgid "You may wait for the next automatic attempt or try to <a href=\"%s\">Manually Update</a> by clicking the \"Manually Refresh Rules\" button below the Rules list."
|
9006 |
msgstr ""
|
9007 |
|
9008 |
#. translators: WordPress admin panel URL.
|
9009 |
-
#: lib/wordfenceClass.php:
|
9010 |
msgid "You may wait for the next automatic attempt at %s or log into the parent site to manually update by clicking the \"Manually Refresh Rules\" button below the Rules list."
|
9011 |
msgstr ""
|
9012 |
|
9013 |
-
#: lib/wordfenceClass.php:
|
9014 |
msgid "You may wait for the next automatic attempt or log into the parent site to manually update by clicking the \"Manually Refresh Rules\" button below the Rules list."
|
9015 |
msgstr ""
|
9016 |
|
9017 |
-
#: lib/wordfenceClass.php:
|
9018 |
#: models/page/wfPage.php:101
|
9019 |
msgid "Dashboard"
|
9020 |
msgstr ""
|
9021 |
|
9022 |
-
#: lib/wordfenceClass.php:
|
9023 |
msgid "Upgrade to Care"
|
9024 |
msgstr ""
|
9025 |
|
9026 |
-
#: lib/wordfenceClass.php:
|
9027 |
msgid "Upgrade to Response"
|
9028 |
msgstr ""
|
9029 |
|
9030 |
#. translators: Number of notifications.
|
9031 |
-
#: lib/wordfenceClass.php:
|
9032 |
msgid "You have %d new Wordfence notification."
|
9033 |
msgid_plural "You have %d new Wordfence notifications."
|
9034 |
msgstr[0] ""
|
9035 |
msgstr[1] ""
|
9036 |
|
9037 |
-
#: lib/wordfenceClass.php:
|
9038 |
msgid "JavaScript Errors"
|
9039 |
msgstr ""
|
9040 |
|
9041 |
-
#: lib/wordfenceClass.php:
|
9042 |
msgid "Malware URLs"
|
9043 |
msgstr ""
|
9044 |
|
9045 |
#. translators: WordPress admin panel URL.
|
9046 |
-
#: lib/wordfenceClass.php:
|
9047 |
-
#: lib/wordfenceClass.php:
|
9048 |
msgid "<a href=\"%s\">Click here</a> to rebuild the configuration file."
|
9049 |
msgstr ""
|
9050 |
|
9051 |
#. translators: File path.
|
9052 |
-
#: lib/wordfenceClass.php:
|
9053 |
-
#: lib/wordfenceClass.php:
|
9054 |
msgid "We were unable to write to %s which the WAF uses for storage. Please update permissions on the parent directory so the web server can write to it."
|
9055 |
msgstr ""
|
9056 |
|
9057 |
-
#: lib/wordfenceClass.php:
|
9058 |
-
#: lib/wordfenceClass.php:
|
9059 |
msgid "An error occured when fetching the WAF configuration from the database."
|
9060 |
msgstr ""
|
9061 |
|
9062 |
#. translators: Plugin name.
|
9063 |
-
#: lib/wordfenceClass.php:
|
9064 |
msgid "The Wordfence Live Traffic feature has been disabled because you have %s active which is not compatible with Wordfence Live Traffic."
|
9065 |
msgstr ""
|
9066 |
|
9067 |
#. translators: 1. Plugin name.
|
9068 |
-
#: lib/wordfenceClass.php:
|
9069 |
msgid "If you want to reenable Wordfence Live Traffic, you need to deactivate %1$s and then go to the Wordfence options page and reenable Live Traffic there. Wordfence does work with %1$s, however Live Traffic will be disabled and the Wordfence firewall will also count less hits per visitor because of the %1$s caching function. All other functions should work correctly."
|
9070 |
msgstr ""
|
9071 |
|
9072 |
#. translators: File path.
|
9073 |
-
#: lib/wordfenceClass.php:
|
9074 |
msgid "The file <code>%s</code> was restored successfully."
|
9075 |
msgstr ""
|
9076 |
|
9077 |
-
#: lib/wordfenceClass.php:
|
9078 |
msgid "There was an error restoring the file."
|
9079 |
msgstr ""
|
9080 |
|
9081 |
-
#: lib/wordfenceClass.php:
|
9082 |
-
#: lib/wordfenceClass.php:
|
9083 |
msgid "Return to scan results"
|
9084 |
msgstr ""
|
9085 |
|
9086 |
#. translators: File path.
|
9087 |
-
#: lib/wordfenceClass.php:
|
9088 |
msgid "The file <code>%s</code> was deleted successfully."
|
9089 |
msgstr ""
|
9090 |
|
9091 |
-
#: lib/wordfenceClass.php:
|
9092 |
msgid "There was an error deleting the file."
|
9093 |
msgstr ""
|
9094 |
|
9095 |
#. translators: IP address.
|
9096 |
-
#: lib/wordfenceClass.php:
|
9097 |
msgid ""
|
9098 |
"User IP: %s\n"
|
9099 |
""
|
9100 |
msgstr ""
|
9101 |
|
9102 |
#. translators: Domain name.
|
9103 |
-
#: lib/wordfenceClass.php:
|
9104 |
msgid ""
|
9105 |
"User hostname: %s\n"
|
9106 |
""
|
9107 |
msgstr ""
|
9108 |
|
9109 |
-
#: lib/wordfenceClass.php:
|
9110 |
msgid "User location: "
|
9111 |
msgstr ""
|
9112 |
|
9113 |
#. translators: WordPress admin panel URL.
|
9114 |
-
#: lib/wordfenceClass.php:
|
9115 |
msgid "No longer an administrator for this site? Click here to stop receiving security alerts: %s"
|
9116 |
msgstr ""
|
9117 |
|
9118 |
-
#: lib/wordfenceClass.php:
|
9119 |
msgid "The IP you provided must be in dotted quad notation or use ranges with square brackets. e.g. 10.11.12.13 or 10.11.12.[1-50]"
|
9120 |
msgstr ""
|
9121 |
|
9122 |
-
#: lib/wordfenceClass.php:
|
9123 |
msgid "Invalid email address provided"
|
9124 |
msgstr ""
|
9125 |
|
9126 |
-
#: lib/wordfenceClass.php:
|
9127 |
msgid "Test email sent successfully"
|
9128 |
msgstr ""
|
9129 |
|
9130 |
-
#: lib/wordfenceClass.php:
|
9131 |
msgid "Test email failed to send"
|
9132 |
msgstr ""
|
9133 |
|
9134 |
#. translators: Localized date range.
|
9135 |
-
#: lib/wordfenceClass.php:
|
9136 |
msgid "Wordfence activity in the past %s"
|
9137 |
msgstr ""
|
9138 |
|
9139 |
-
#: lib/wordfenceClass.php:7390
|
9140 |
#: lib/wordfenceClass.php:7394
|
9141 |
-
#: lib/wordfenceClass.php:
|
|
|
9142 |
msgid "We could not find that user in the database."
|
9143 |
msgstr ""
|
9144 |
|
9145 |
-
#: lib/wordfenceClass.php:
|
9146 |
msgid "This user's email is the network admin email. It will need to be changed before deleting this user."
|
9147 |
msgstr ""
|
9148 |
|
9149 |
-
#: lib/wordfenceClass.php:
|
9150 |
msgid "Wordfence could not find your .htaccess file."
|
9151 |
msgstr ""
|
9152 |
|
9153 |
-
#: lib/wordfenceClass.php:
|
9154 |
msgid "Updating the .htaccess did not fix the issue. You may need to add <code>Options -Indexes</code> to your httpd.conf if using Apache, or find documentation on how to disable directory listing for your web server."
|
9155 |
msgstr ""
|
9156 |
|
9157 |
-
#: lib/wordfenceClass.php:
|
9158 |
msgid "There was an error writing to your .htaccess file."
|
9159 |
msgstr ""
|
9160 |
|
9161 |
-
#: lib/wordfenceClass.php:
|
9162 |
msgid "Required parameters not sent."
|
9163 |
msgstr ""
|
9164 |
|
9165 |
-
#: lib/wordfenceClass.php:
|
9166 |
msgid "The WAF is currently in read-only mode and will not save any configuration changes."
|
9167 |
msgstr ""
|
9168 |
|
9169 |
-
#: lib/wordfenceClass.php:
|
9170 |
#: views/waf/option-whitelist.php:60
|
9171 |
msgid "Allowlisted via Firewall Options page"
|
9172 |
msgstr ""
|
9173 |
|
9174 |
-
#: lib/wordfenceClass.php:
|
9175 |
msgid "Allowlisted via Live Traffic"
|
9176 |
msgstr ""
|
9177 |
|
9178 |
-
#: lib/wordfenceClass.php:
|
9179 |
-
#: lib/wordfenceClass.php:
|
9180 |
msgid "A valid server configuration was not provided."
|
9181 |
msgstr ""
|
9182 |
|
9183 |
-
#: lib/wordfenceClass.php:
|
9184 |
-
#: lib/wordfenceClass.php:
|
9185 |
msgid "Filesystem Credentials Required"
|
9186 |
msgstr ""
|
9187 |
|
9188 |
#. translators: Support URL.
|
9189 |
-
#: lib/wordfenceClass.php:
|
9190 |
-
#: lib/wordfenceClass.php:
|
9191 |
-
#: lib/wordfenceClass.php:
|
9192 |
-
#: lib/wordfenceClass.php:
|
9193 |
msgid "If you cannot complete the setup process, <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"%s\">click here for help<span class=\"screen-reader-text\"> ("
|
9194 |
msgstr ""
|
9195 |
|
9196 |
#. translators: Support URL.
|
9197 |
-
#: lib/wordfenceClass.php:
|
9198 |
msgid "Once you have entered credentials, click Continue to complete the setup."
|
9199 |
msgstr ""
|
9200 |
|
9201 |
-
#: lib/wordfenceClass.php:
|
9202 |
-
#: lib/wordfenceClass.php:
|
9203 |
msgid "Filesystem Permission Error"
|
9204 |
msgstr ""
|
9205 |
|
9206 |
-
#: lib/wordfenceClass.php:
|
9207 |
msgid "Manual Installation Instructions"
|
9208 |
msgstr ""
|
9209 |
|
9210 |
-
#: lib/wordfenceClass.php:
|
9211 |
msgid "Installation Successful"
|
9212 |
msgstr ""
|
9213 |
|
9214 |
-
#: lib/wordfenceClass.php:
|
9215 |
msgid "Installation Failed"
|
9216 |
msgstr ""
|
9217 |
|
9218 |
#. translators: Support URL.
|
9219 |
-
#: lib/wordfenceClass.php:
|
9220 |
-
#: lib/wordfenceClass.php:
|
9221 |
-
#: lib/wordfenceClass.php:
|
9222 |
-
#: lib/wordfenceClass.php:
|
9223 |
-
#: lib/wordfenceClass.php:
|
9224 |
msgid "If you cannot complete the uninstall process, <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"%s\">click here for help<span class=\"screen-reader-text\"> ("
|
9225 |
msgstr ""
|
9226 |
|
9227 |
#. translators: Support URL.
|
9228 |
-
#: lib/wordfenceClass.php:
|
9229 |
msgid "Once you have entered credentials, click Continue to complete uninstallation."
|
9230 |
msgstr ""
|
9231 |
|
9232 |
-
#: lib/wordfenceClass.php:
|
9233 |
msgid "The <code>auto_prepend_file</code> setting has been successfully removed from <code>.htaccess</code> and <code>.user.ini</code>. Once this change takes effect, Extended Protection Mode will be disabled."
|
9234 |
msgstr ""
|
9235 |
|
9236 |
-
#: lib/wordfenceClass.php:
|
9237 |
msgid "Any previous value for <code>auto_prepend_file</code> will need to be re-enabled manually if still needed."
|
9238 |
msgstr ""
|
9239 |
|
9240 |
#. translators: Time until.
|
9241 |
-
#: lib/wordfenceClass.php:
|
9242 |
msgid "Waiting for it to take effect. This may take up to %s."
|
9243 |
msgstr ""
|
9244 |
|
9245 |
-
#: lib/wordfenceClass.php:
|
9246 |
msgid "Waiting for Changes"
|
9247 |
msgstr ""
|
9248 |
|
9249 |
-
#: lib/wordfenceClass.php:
|
9250 |
msgid "Extended Protection Mode has not been disabled. This may be because <code>auto_prepend_file</code> is configured somewhere else or the value is still cached by PHP."
|
9251 |
msgstr ""
|
9252 |
|
9253 |
-
#: lib/wordfenceClass.php:
|
9254 |
msgid "Retrying Failed."
|
9255 |
msgstr ""
|
9256 |
|
9257 |
-
#: lib/wordfenceClass.php:
|
9258 |
msgid "Try Again"
|
9259 |
msgstr ""
|
9260 |
|
9261 |
-
#: lib/wordfenceClass.php:
|
9262 |
msgid "Unable to Uninstall"
|
9263 |
msgstr ""
|
9264 |
|
9265 |
-
#: lib/wordfenceClass.php:
|
9266 |
msgid "Uninstallation Complete"
|
9267 |
msgstr ""
|
9268 |
|
9269 |
-
#: lib/wordfenceClass.php:
|
9270 |
msgid "Uninstallation Failed"
|
9271 |
msgstr ""
|
9272 |
|
9273 |
#. translators: 1. Number of attacks/blocks. 2. Time since.
|
9274 |
-
#: lib/wordfenceClass.php:
|
9275 |
msgid "The Wordfence Web Application Firewall has blocked %1$d attacks over the last %2$s. Below is a sample of these recent attacks:"
|
9276 |
msgstr ""
|
9277 |
|
9278 |
-
#: lib/wordfenceClass.php:
|
9279 |
msgid "To make your site as secure as possible, take a moment to optimize the Wordfence Web Application Firewall:"
|
9280 |
msgstr ""
|
9281 |
|
9282 |
-
#: lib/wordfenceClass.php:
|
9283 |
msgid "Click here to configure"
|
9284 |
msgstr ""
|
9285 |
|
9286 |
-
#: lib/wordfenceClass.php:
|
9287 |
#: views/waf/waf-install-success.php:14
|
9288 |
msgid "Nice work! The firewall is now optimized."
|
9289 |
msgstr ""
|
9290 |
|
9291 |
-
#: lib/wordfenceClass.php:
|
9292 |
-
#: lib/wordfenceClass.php:
|
9293 |
#: views/waf/waf-install-success.php:16
|
9294 |
#: views/waf/waf-uninstall-success.php:19
|
9295 |
msgid "The changes have not yet taken effect. If you are using LiteSpeed or IIS as your web server or CGI/FastCGI interface, you may need to wait a few minutes for the changes to take effect since the configuration files are sometimes cached. You also may need to select a different server configuration in order to complete this step, but wait for a few minutes before trying. You can try refreshing this page."
|
9296 |
msgstr ""
|
9297 |
|
9298 |
-
#: lib/wordfenceClass.php:
|
9299 |
#: views/waf/waf-uninstall-success.php:15
|
9300 |
msgid "Uninstallation was successful!"
|
9301 |
msgstr ""
|
9302 |
|
9303 |
-
#: lib/wordfenceClass.php:
|
9304 |
#: views/waf/waf-uninstall-success.php:17
|
9305 |
msgid "Uninstallation from this site was successful! The Wordfence Firewall is still active because it is installed in another WordPress installation."
|
9306 |
msgstr ""
|
9307 |
|
9308 |
-
#: lib/wordfenceClass.php:
|
9309 |
msgid "The update was successful!"
|
9310 |
msgstr ""
|
9311 |
|
9312 |
-
#: lib/wordfenceClass.php:
|
9313 |
msgid "Auth grant is invalid."
|
9314 |
msgstr ""
|
9315 |
|
9316 |
#. translators: Error message.
|
9317 |
-
#: lib/wordfenceClass.php:
|
9318 |
msgid "Invalid response from Wordfence Central: %s"
|
9319 |
msgstr ""
|
9320 |
|
9321 |
#. translators: JSON property.
|
9322 |
-
#: lib/wordfenceClass.php:
|
9323 |
-
#: lib/wordfenceClass.php:
|
9324 |
msgid "Invalid response from Wordfence Central. Parameter %s not found in response."
|
9325 |
msgstr ""
|
9326 |
|
9327 |
-
#: lib/wordfenceClass.php:
|
9328 |
-
#: lib/wordfenceClass.php:
|
9329 |
msgid "Access token not found."
|
9330 |
msgstr ""
|
9331 |
|
9332 |
-
#: lib/wordfenceClass.php:
|
9333 |
-
#: lib/wordfenceClass.php:
|
9334 |
msgid "Invalid response from Wordfence Central."
|
9335 |
msgstr ""
|
9336 |
|
9337 |
-
#: lib/wordfenceClass.php:
|
9338 |
msgid "Auth grant not found."
|
9339 |
msgstr ""
|
9340 |
|
9341 |
-
#: lib/wordfenceClass.php:
|
9342 |
msgid "We were unable to create the <code>wordfence-waf.php</code> file in the root of the WordPress installation. It's possible WordPress cannot write to the <code>wordfence-waf.php</code> file because of file permissions. Please verify the permissions are correct and retry the installation."
|
9343 |
msgstr ""
|
9344 |
|
9345 |
-
#: lib/wordfenceClass.php:
|
9346 |
-
#: lib/wordfenceClass.php:
|
9347 |
msgid "We were unable to make changes to the .htaccess file. It's possible WordPress cannot write to the .htaccess file because of file permissions, which may have been set by another security plugin, or you may have set them manually. Please verify the permissions allow the web server to write to the file, and retry the installation."
|
9348 |
msgstr ""
|
9349 |
|
9350 |
#. translators: File path.
|
9351 |
-
#: lib/wordfenceClass.php:
|
9352 |
-
#: lib/wordfenceClass.php:
|
9353 |
msgid "We were unable to make changes to the %1$s file. It's possible WordPress cannot write to the %1$s file because of file permissions. Please verify the permissions are correct and retry the installation."
|
9354 |
msgstr ""
|
9355 |
|
9356 |
-
#: lib/wordfenceClass.php:
|
9357 |
msgid "We were unable to remove the <code>wordfence-waf.php</code> file in the root of the WordPress installation. It's possible WordPress cannot remove the <code>wordfence-waf.php</code> file because of file permissions. Please verify the permissions are correct and retry the removal."
|
9358 |
msgstr ""
|
9359 |
|
@@ -9672,78 +9700,78 @@ msgid "This file appears to be an old version of the TimThumb script which makes
|
|
9672 |
msgstr ""
|
9673 |
|
9674 |
#. translators: Malware signature rule ID.
|
9675 |
-
#: lib/wordfenceScanner.php:
|
9676 |
msgid "Resuming malware scan at rule %s."
|
9677 |
msgstr ""
|
9678 |
|
9679 |
-
#: lib/wordfenceScanner.php:
|
9680 |
msgid "This file appears to be installed or modified by a hacker to perform malicious activity. If you know about this file you can choose to ignore it to exclude it from future scans."
|
9681 |
msgstr ""
|
9682 |
|
9683 |
-
#: lib/wordfenceScanner.php:
|
9684 |
msgid "File appears to be malicious or unsafe: %s"
|
9685 |
msgstr ""
|
9686 |
|
9687 |
-
#: lib/wordfenceScanner.php:
|
9688 |
msgid "The matched text in this file is: %s"
|
9689 |
msgstr ""
|
9690 |
|
9691 |
#. translators: Scan result type.
|
9692 |
-
#: lib/wordfenceScanner.php:
|
9693 |
msgid "The issue type is: %s"
|
9694 |
msgstr ""
|
9695 |
|
9696 |
#. translators: Scan result description.
|
9697 |
-
#: lib/wordfenceScanner.php:
|
9698 |
msgid "Description: %s"
|
9699 |
msgstr ""
|
9700 |
|
9701 |
#. translators: Malware signature rule ID.
|
9702 |
-
#: lib/wordfenceScanner.php:
|
9703 |
msgid "Forking during malware scan (%s) to ensure continuity."
|
9704 |
msgstr ""
|
9705 |
|
9706 |
-
#: lib/wordfenceScanner.php:
|
9707 |
msgid "This file may contain malicious executable code: "
|
9708 |
msgstr ""
|
9709 |
|
9710 |
#. translators: Malware signature matched text.
|
9711 |
-
#: lib/wordfenceScanner.php:
|
9712 |
msgid "This file is a PHP executable file and contains the word \"eval\" (without quotes) and the word \"%s\" (without quotes). The eval() function along with an encoding function like the one mentioned are commonly used by hackers to hide their code. If you know about this file you can choose to ignore it to exclude it from future scans. This file was detected because you have enabled HIGH SENSITIVITY scanning. This option is more aggressive than the usual scans, and may cause false positives."
|
9713 |
msgstr ""
|
9714 |
|
9715 |
-
#: lib/wordfenceScanner.php:
|
9716 |
msgid "Asking Wordfence to check URLs against malware list."
|
9717 |
msgstr ""
|
9718 |
|
9719 |
-
#: lib/wordfenceScanner.php:
|
9720 |
-
#: lib/wordfenceScanner.php:
|
9721 |
msgid "File contains suspected malware URL: "
|
9722 |
msgstr ""
|
9723 |
|
9724 |
#. translators: 1. Malware signature matched text. 2. Malicious URL. 3. Malicious URL.
|
9725 |
-
#: lib/wordfenceScanner.php:
|
9726 |
msgid "This file contains a suspected malware URL listed on Google's list of malware sites. Wordfence decodes %1$s when scanning files so the URL may not be visible if you view this file. The URL is: %2$s - More info available at <a href=\"http://safebrowsing.clients.google.com/safebrowsing/diagnostic?site=%3$s&client=googlechrome&hl=en-US\" target=\"_blank\" rel=\"noopener noreferrer\">Google Safe Browsing diagnostic page<span class=\"screen-reader-text\"> (opens in new tab)</span></a>."
|
9727 |
msgstr ""
|
9728 |
|
9729 |
-
#: lib/wordfenceScanner.php:
|
9730 |
msgid "File contains suspected phishing URL: "
|
9731 |
msgstr ""
|
9732 |
|
9733 |
-
#: lib/wordfenceScanner.php:
|
9734 |
msgid "This file contains a URL that is a suspected phishing site that is currently listed on Google's list of known phishing sites. The URL is: "
|
9735 |
msgstr ""
|
9736 |
|
9737 |
-
#: lib/wordfenceScanner.php:
|
9738 |
msgid "This file contains a URL that is currently listed on Wordfence's domain blocklist. The URL is: "
|
9739 |
msgstr ""
|
9740 |
|
9741 |
-
#: lib/wordfenceScanner.php:
|
9742 |
msgid "Finalizing malware scan results"
|
9743 |
msgstr ""
|
9744 |
|
9745 |
#. translators: 1. Number of fils. 2. Seconds in millisecond precision.
|
9746 |
-
#: lib/wordfenceScanner.php:
|
9747 |
msgid "Scanned contents of %1$d additional files at %2$.2f per second"
|
9748 |
msgstr ""
|
9749 |
|
@@ -10514,11 +10542,15 @@ msgstr ""
|
|
10514 |
msgid "Separate multiple addresses with commas"
|
10515 |
msgstr ""
|
10516 |
|
10517 |
-
#: views/dashboard/options-group-general.php:
|
|
|
|
|
|
|
|
|
10518 |
msgid "Setting higher will reduce browser traffic but slow scan starts, live traffic & status updates."
|
10519 |
msgstr ""
|
10520 |
|
10521 |
-
#: views/dashboard/options-group-general.php:
|
10522 |
msgid "Note: This does not include Login Security settings and tables. An option to delete those must be selected separately on the Login Security settings page."
|
10523 |
msgstr ""
|
10524 |
|
@@ -11148,7 +11180,7 @@ msgstr ""
|
|
11148 |
#: views/scanner/issue-wfPluginUpgrade.php:16
|
11149 |
#: views/scanner/issue-wfPluginUpgrade.php:32
|
11150 |
#: views/scanner/issue-wfPluginVulnerable.php:15
|
11151 |
-
#: views/scanner/issue-wfPluginVulnerable.php:
|
11152 |
#: views/scanner/issue-wfThemeUpgrade.php:16
|
11153 |
#: views/scanner/issue-wfThemeUpgrade.php:31
|
11154 |
#: views/scanner/issue-wfUpgrade.php:15
|
@@ -11184,7 +11216,7 @@ msgstr ""
|
|
11184 |
#: views/scanner/issue-wfPluginAbandoned.php:23
|
11185 |
#: views/scanner/issue-wfPluginRemoved.php:21
|
11186 |
#: views/scanner/issue-wfPluginUpgrade.php:23
|
11187 |
-
#: views/scanner/issue-wfPluginVulnerable.php:
|
11188 |
#: views/scanner/issue-wfThemeUpgrade.php:22
|
11189 |
#: views/scanner/issue-wfUpgrade.php:20
|
11190 |
#: views/scanner/issue-wpscan_directoryList.php:19
|
@@ -11483,7 +11515,7 @@ msgstr ""
|
|
11483 |
#: views/scanner/issue-wfPluginUpgrade.php:12
|
11484 |
#: views/scanner/issue-wfPluginUpgrade.php:28
|
11485 |
#: views/scanner/issue-wfPluginVulnerable.php:12
|
11486 |
-
#: views/scanner/issue-wfPluginVulnerable.php:
|
11487 |
msgid "Plugin Name"
|
11488 |
msgstr ""
|
11489 |
|
@@ -11494,7 +11526,7 @@ msgstr ""
|
|
11494 |
#: views/scanner/issue-wfPluginUpgrade.php:13
|
11495 |
#: views/scanner/issue-wfPluginUpgrade.php:29
|
11496 |
#: views/scanner/issue-wfPluginVulnerable.php:13
|
11497 |
-
#: views/scanner/issue-wfPluginVulnerable.php:
|
11498 |
msgid "Current Plugin Version"
|
11499 |
msgstr ""
|
11500 |
|
@@ -11514,22 +11546,19 @@ msgstr ""
|
|
11514 |
#: views/scanner/issue-wfPluginRemoved.php:31
|
11515 |
#: views/scanner/issue-wfPluginUpgrade.php:18
|
11516 |
#: views/scanner/issue-wfPluginUpgrade.php:35
|
11517 |
-
#: views/scanner/issue-wfPluginVulnerable.php:17
|
11518 |
-
#: views/scanner/issue-wfPluginVulnerable.php:32
|
11519 |
msgid "Plugin URL"
|
11520 |
msgstr ""
|
11521 |
|
11522 |
#: views/scanner/issue-wfPluginAbandoned.php:19
|
11523 |
#: views/scanner/issue-wfPluginAbandoned.php:36
|
11524 |
#: views/scanner/issue-wfPluginUpgrade.php:36
|
11525 |
-
#: views/scanner/issue-wfPluginVulnerable.php:
|
11526 |
-
#: views/scanner/issue-wfPluginVulnerable.php:33
|
11527 |
msgid "Repository URL"
|
11528 |
msgstr ""
|
11529 |
|
11530 |
#: views/scanner/issue-wfPluginAbandoned.php:24
|
11531 |
#: views/scanner/issue-wfPluginRemoved.php:22
|
11532 |
-
#: views/scanner/issue-wfPluginVulnerable.php:
|
11533 |
msgid "Manage Plugins"
|
11534 |
msgstr ""
|
11535 |
|
@@ -11639,10 +11668,6 @@ msgstr ""
|
|
11639 |
msgid "Additional scan signatures (one per line)"
|
11640 |
msgstr ""
|
11641 |
|
11642 |
-
#: views/scanner/options-group-advanced.php:59
|
11643 |
-
msgid "Use only IPv4 to start scans"
|
11644 |
-
msgstr ""
|
11645 |
-
|
11646 |
#: views/scanner/options-group-advanced.php:60
|
11647 |
msgid "This option requires cURL. (This may have no effect on some old PHP or cURL versions.)"
|
11648 |
msgstr ""
|
@@ -11696,11 +11721,11 @@ msgstr ""
|
|
11696 |
msgid "Scan Scheduling"
|
11697 |
msgstr ""
|
11698 |
|
11699 |
-
#: views/scanner/scan-failed.php:
|
11700 |
msgid "Scan Failed"
|
11701 |
msgstr ""
|
11702 |
|
11703 |
-
#: views/scanner/scan-failed.php:
|
11704 |
msgid "The error returned was:"
|
11705 |
msgstr ""
|
11706 |
|
@@ -12054,7 +12079,7 @@ msgid "All Traffic"
|
|
12054 |
msgstr ""
|
12055 |
|
12056 |
#: views/tools/options-group-live-traffic.php:123
|
12057 |
-
msgid "Maximum days to keep Live Traffic data (
|
12058 |
msgstr ""
|
12059 |
|
12060 |
#: views/tools/options-group-live-traffic.php:135
|
2 |
# This file is distributed under the same license as the Wordfence Security plugin.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Wordfence Security 7.7.0\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
7 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
8 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"POT-Creation-Date: 2022-10-03T11:28:28-04:00\n"
|
13 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
14 |
"X-Generator: WP-CLI 2.4.0\n"
|
15 |
"X-Domain: wordfence\n"
|
57 |
#: lib/dashboard/widget_content_logins.php:7
|
58 |
#: lib/dashboard/widget_ips.php:115
|
59 |
#: lib/dashboard/widget_logins.php:96
|
60 |
+
#: lib/wordfenceClass.php:6198
|
61 |
#: views/reports/activity-report-email-inline.php:146
|
62 |
#: views/reports/activity-report.php:16
|
63 |
#: views/waf/option-whitelist.php:110
|
68 |
|
69 |
#: lib/dashboard/widget_content_logins.php:6
|
70 |
#: lib/dashboard/widget_logins.php:95
|
71 |
+
#: lib/wordfenceClass.php:6273
|
72 |
#: views/reports/activity-report-email-inline.php:256
|
73 |
#: views/reports/activity-report.php:106
|
74 |
msgid "Username"
|
133 |
#. translators: WordPress username.
|
134 |
#: lib/dashboard/widget_ips.php:96
|
135 |
#: lib/dashboard/widget_logins.php:77
|
136 |
+
#: lib/wordfenceClass.php:6144
|
137 |
msgid "An error occurred"
|
138 |
msgstr ""
|
139 |
|
235 |
#: lib/menu_wordfence_central.php:59
|
236 |
#: lib/wf503.php:390
|
237 |
#: lib/wfScanEngine.php:283
|
238 |
+
#: lib/wfScanEngine.php:618
|
239 |
+
#: lib/wfScanEngine.php:631
|
240 |
+
#: lib/wfScanEngine.php:703
|
241 |
+
#: lib/wfScanEngine.php:726
|
242 |
+
#: lib/wfScanEngine.php:801
|
243 |
+
#: lib/wfScanEngine.php:1031
|
244 |
+
#: lib/wfScanEngine.php:1032
|
245 |
+
#: lib/wfScanEngine.php:1173
|
246 |
+
#: lib/wfScanEngine.php:1310
|
247 |
+
#: lib/wfScanEngine.php:1453
|
248 |
+
#: lib/wfScanEngine.php:1817
|
249 |
+
#: lib/wfScanEngine.php:2063
|
250 |
+
#: lib/wfScanEngine.php:2102
|
251 |
+
#: lib/wfScanEngine.php:2302
|
252 |
+
#: lib/wfScanEngine.php:2344
|
253 |
#: lib/wfVersionCheckController.php:68
|
254 |
#: lib/wfVersionCheckController.php:91
|
255 |
#: lib/wfVersionCheckController.php:167
|
256 |
#: lib/wfVersionCheckController.php:186
|
257 |
+
#: lib/wordfenceClass.php:1402
|
258 |
+
#: lib/wordfenceClass.php:2769
|
259 |
+
#: lib/wordfenceClass.php:2905
|
260 |
+
#: lib/wordfenceClass.php:3060
|
261 |
+
#: lib/wordfenceClass.php:3096
|
262 |
+
#: lib/wordfenceClass.php:3622
|
263 |
+
#: lib/wordfenceClass.php:4953
|
264 |
#: lib/wordfenceClass.php:4961
|
265 |
+
#: lib/wordfenceClass.php:4967
|
266 |
+
#: lib/wordfenceClass.php:4992
|
267 |
+
#: lib/wordfenceClass.php:5004
|
268 |
+
#: lib/wordfenceClass.php:5012
|
269 |
+
#: lib/wordfenceClass.php:6333
|
270 |
+
#: lib/wordfenceClass.php:6355
|
271 |
+
#: lib/wordfenceClass.php:6374
|
272 |
+
#: lib/wordfenceClass.php:6380
|
273 |
+
#: lib/wordfenceClass.php:6427
|
274 |
+
#: lib/wordfenceClass.php:8079
|
275 |
+
#: lib/wordfenceClass.php:8103
|
276 |
+
#: lib/wordfenceClass.php:8147
|
277 |
+
#: lib/wordfenceClass.php:8186
|
278 |
+
#: lib/wordfenceClass.php:8211
|
279 |
+
#: lib/wordfenceClass.php:8242
|
280 |
+
#: lib/wordfenceClass.php:8271
|
281 |
+
#: lib/wordfenceClass.php:8317
|
282 |
+
#: lib/wordfenceClass.php:9039
|
|
|
283 |
#: lib/wordfenceHash.php:521
|
284 |
#: lib/wordfenceHash.php:568
|
285 |
#: lib/wordfenceHash.php:642
|
351 |
#: views/scanner/issue-wfPluginUpgrade.php:20
|
352 |
#: views/scanner/issue-wfPluginVulnerable.php:17
|
353 |
#: views/scanner/issue-wfPluginVulnerable.php:18
|
|
|
354 |
#: views/scanner/issue-wfThemeUpgrade.php:18
|
355 |
#: views/scanner/issue-wfThemeUpgrade.php:19
|
356 |
#: views/scanner/issue-wfUpgrade.php:17
|
425 |
msgstr ""
|
426 |
|
427 |
#: lib/dashboard/widget_notifications.php:8
|
428 |
+
#: lib/wordfenceClass.php:6813
|
429 |
msgid "Notifications"
|
430 |
msgstr ""
|
431 |
|
495 |
|
496 |
#. translators: Support URL.
|
497 |
#: lib/dashboard/widget_notifications.php:134
|
498 |
+
#: lib/menu_scanner.php:211
|
499 |
+
#: lib/menu_scanner.php:222
|
500 |
+
#: lib/menu_tools_diagnostic.php:905
|
501 |
#: lib/menu_tools_twoFactor.php:235
|
502 |
#: lib/menu_tools_twoFactor.php:273
|
503 |
+
#: lib/wordfenceClass.php:8104
|
504 |
+
#: lib/wordfenceClass.php:8148
|
505 |
+
#: lib/wordfenceClass.php:8212
|
506 |
+
#: lib/wordfenceClass.php:8272
|
507 |
+
#: lib/wordfenceClass.php:8318
|
508 |
#: views/blocking/block-list.php:501
|
509 |
#: views/blocking/blocking-create.php:212
|
510 |
#: views/blocking/blocking-create.php:529
|
645 |
msgid "HIGH SENSITIVITY scanning is enabled, it may produce false positives"
|
646 |
msgstr ""
|
647 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
648 |
#. translators: 1. URL to WordPress admin panel. 2. URL to WordPress admin panel. 3. URL to Wordfence support page. 4. URL to Wordfence support page.
|
649 |
+
#: lib/email_newIssues.php:50
|
650 |
msgid "The scan was terminated early because it reached the time limit for scans. If you would like to allow your scans to run longer, you can customize the limit on the options page: <a href=\"%1$s\">%2$s</a> or read more about scan options to improve scan speed here: <a href=\"%3$s\">%4$s</a>"
|
651 |
msgstr ""
|
652 |
|
653 |
+
#: lib/email_newIssues.php:56
|
654 |
msgid "Critical Problems:"
|
655 |
msgstr ""
|
656 |
|
657 |
+
#: lib/email_newIssues.php:57
|
658 |
msgid "High Severity Problems:"
|
659 |
msgstr ""
|
660 |
|
661 |
+
#: lib/email_newIssues.php:58
|
662 |
msgid "Medium Severity Problems:"
|
663 |
msgstr ""
|
664 |
|
665 |
+
#: lib/email_newIssues.php:59
|
666 |
msgid "Low Severity Problems:"
|
667 |
msgstr ""
|
668 |
|
669 |
+
#: lib/email_newIssues.php:78
|
670 |
msgid "Plugin contains an unpatched security vulnerability."
|
671 |
msgstr ""
|
672 |
|
673 |
+
#: lib/email_newIssues.php:80
|
674 |
+
#: lib/email_newIssues.php:103
|
675 |
#: views/scanner/issue-wfPluginAbandoned.php:20
|
676 |
#: views/scanner/issue-wfPluginAbandoned.php:37
|
677 |
#: views/scanner/issue-wfPluginRemoved.php:18
|
678 |
#: views/scanner/issue-wfPluginRemoved.php:32
|
679 |
#: views/scanner/issue-wfPluginUpgrade.php:20
|
680 |
#: views/scanner/issue-wfPluginUpgrade.php:37
|
681 |
+
#: views/scanner/issue-wfPluginVulnerable.php:18
|
682 |
+
#: views/scanner/issue-wfPluginVulnerable.php:31
|
683 |
#: views/scanner/issue-wfThemeUpgrade.php:19
|
684 |
#: views/scanner/issue-wfThemeUpgrade.php:35
|
685 |
#: views/scanner/issue-wfUpgrade.php:17
|
687 |
msgid "Vulnerability Information"
|
688 |
msgstr ""
|
689 |
|
690 |
+
#: lib/email_newIssues.php:86
|
691 |
msgid "The core files scan has not run because this version is not currently indexed by Wordfence. New WordPress versions may take up to a day to be indexed."
|
692 |
msgstr ""
|
693 |
|
694 |
+
#: lib/email_newIssues.php:89
|
695 |
msgid "Firewall issues may be caused by file permission changes or other technical problems."
|
696 |
msgstr ""
|
697 |
|
698 |
+
#: lib/email_newIssues.php:89
|
699 |
msgid "More Details and Instructions"
|
700 |
msgstr ""
|
701 |
|
702 |
+
#: lib/email_newIssues.php:92
|
703 |
msgid "Scanning additional paths is optional and is not always necessary."
|
704 |
msgstr ""
|
705 |
|
706 |
#. translators: 1. WordPress version. 2. WordPress version.
|
707 |
+
#: lib/email_newIssues.php:92
|
708 |
#: lib/email_unlockRequest.php:14
|
709 |
#: lib/menu_dashboard.php:118
|
710 |
#: lib/menu_dashboard.php:487
|
713 |
#: lib/wfVersionCheckController.php:91
|
714 |
#: lib/wfVersionCheckController.php:167
|
715 |
#: lib/wfVersionCheckController.php:186
|
716 |
+
#: lib/wordfenceClass.php:6460
|
717 |
#: views/blocking/blocking-create.php:528
|
718 |
#: views/blocking/blocking-status.php:27
|
719 |
#: views/dashboard/options-group-dashboard.php:107
|
730 |
msgid "Learn More"
|
731 |
msgstr ""
|
732 |
|
733 |
+
#: lib/email_newIssues.php:101
|
734 |
#: views/scanner/issue-wfPluginUpgrade.php:16
|
735 |
#: views/scanner/issue-wfPluginUpgrade.php:33
|
736 |
#: views/scanner/issue-wfThemeUpgrade.php:16
|
740 |
msgid "Update includes security-related fixes."
|
741 |
msgstr ""
|
742 |
|
743 |
+
#: lib/email_newIssues.php:121
|
744 |
msgid "The malicious URL matched"
|
745 |
msgstr ""
|
746 |
|
747 |
#. translators: Number of scan results
|
748 |
+
#: lib/email_newIssues.php:130
|
749 |
msgid "%d existing issue was found again and is not shown."
|
750 |
msgid_plural "%d existing issues were found again and are not shown."
|
751 |
msgstr[0] ""
|
752 |
msgstr[1] ""
|
753 |
|
754 |
#. translators: Number of scan results
|
755 |
+
#: lib/email_newIssues.php:133
|
756 |
msgid "%d issue was omitted from this email due to length limits."
|
757 |
msgid_plural "%d issues were omitted from this email due to length limits."
|
758 |
msgstr[0] ""
|
759 |
msgstr[1] ""
|
760 |
|
761 |
#. translators: Number of scan results
|
762 |
+
#: lib/email_newIssues.php:134
|
763 |
msgid "View every issue:"
|
764 |
msgstr ""
|
765 |
|
766 |
+
#: lib/email_newIssues.php:143
|
767 |
msgid "NOTE: You are using the free version of Wordfence. Upgrade today:"
|
768 |
msgstr ""
|
769 |
|
770 |
+
#: lib/email_newIssues.php:146
|
771 |
msgid "Receive real-time Firewall and Scan engine rule updates for protection as threats emerge"
|
772 |
msgstr ""
|
773 |
|
774 |
+
#: lib/email_newIssues.php:147
|
775 |
msgid "Real-time IP Blocklist blocks the most malicious IPs from accessing your site"
|
776 |
msgstr ""
|
777 |
|
778 |
+
#: lib/email_newIssues.php:148
|
779 |
msgid "Country blocking"
|
780 |
msgstr ""
|
781 |
|
782 |
+
#: lib/email_newIssues.php:149
|
783 |
msgid "IP reputation monitoring"
|
784 |
msgstr ""
|
785 |
|
786 |
+
#: lib/email_newIssues.php:150
|
787 |
msgid "Schedule scans to run more frequently and at optimal times"
|
788 |
msgstr ""
|
789 |
|
790 |
+
#: lib/email_newIssues.php:151
|
791 |
msgid "Access to Premium Support"
|
792 |
msgstr ""
|
793 |
|
794 |
+
#: lib/email_newIssues.php:152
|
795 |
msgid "Discounts for multi-year and multi-license purchases"
|
796 |
msgstr ""
|
797 |
|
798 |
+
#: lib/email_newIssues.php:155
|
799 |
msgid "Click here to upgrade to Wordfence Premium:"
|
800 |
msgstr ""
|
801 |
|
916 |
msgstr ""
|
917 |
|
918 |
#: lib/menu_dashboard.php:24
|
919 |
+
#: lib/wordfenceClass.php:6698
|
920 |
msgid "Wordfence Dashboard"
|
921 |
msgstr ""
|
922 |
|
928 |
#: lib/menu_dashboard_options.php:98
|
929 |
#: lib/menu_firewall.php:20
|
930 |
#: lib/menu_firewall.php:30
|
931 |
+
#: lib/wordfenceClass.php:6702
|
932 |
#: models/page/wfPage.php:105
|
933 |
msgid "Firewall"
|
934 |
msgstr ""
|
964 |
#: lib/menu_dashboard.php:71
|
965 |
#: lib/menu_dashboard_options.php:115
|
966 |
#: lib/menu_scanner.php:31
|
967 |
+
#: lib/menu_scanner.php:299
|
968 |
+
#: lib/wordfenceClass.php:6709
|
969 |
#: models/page/wfPage.php:113
|
970 |
msgid "Scan"
|
971 |
msgstr ""
|
983 |
|
984 |
#: lib/menu_dashboard.php:75
|
985 |
#: lib/menu_dashboard_options.php:119
|
986 |
+
#: lib/menu_options.php:88
|
987 |
#: lib/menu_scanner.php:65
|
988 |
#: lib/menu_scanner_options.php:120
|
989 |
#: views/dashboard/options-group-dashboard.php:97
|
1048 |
#: lib/menu_scanner.php:80
|
1049 |
#: lib/menu_support.php:55
|
1050 |
#: lib/menu_tools_twoFactor.php:51
|
1051 |
+
#: lib/wordfenceClass.php:6738
|
1052 |
#: views/blocking/blocking-create.php:179
|
1053 |
#: views/blocking/blocking-status.php:23
|
1054 |
#: views/blocking/blocking-status.php:27
|
1142 |
msgstr ""
|
1143 |
|
1144 |
#: lib/menu_dashboard.php:229
|
1145 |
+
#: lib/wordfenceClass.php:6713
|
1146 |
msgid "Tools"
|
1147 |
msgstr ""
|
1148 |
|
1152 |
|
1153 |
#: lib/menu_dashboard.php:240
|
1154 |
#: lib/menu_firewall_waf.php:157
|
1155 |
+
#: lib/menu_scanner.php:133
|
1156 |
#: lib/menu_support.php:19
|
1157 |
+
#: lib/wordfenceClass.php:6726
|
1158 |
msgid "Help"
|
1159 |
msgstr ""
|
1160 |
|
1161 |
#: lib/menu_dashboard.php:241
|
1162 |
#: lib/menu_firewall_waf.php:158
|
1163 |
+
#: lib/menu_scanner.php:134
|
1164 |
msgid "Find the documentation and help you need"
|
1165 |
msgstr ""
|
1166 |
|
1192 |
#: lib/menu_firewall_waf.php:255
|
1193 |
#: lib/menu_firewall_waf.php:272
|
1194 |
#: lib/menu_firewall_waf.php:289
|
1195 |
+
#: lib/menu_scanner.php:307
|
1196 |
+
#: lib/menu_scanner.php:324
|
1197 |
+
#: lib/menu_scanner.php:376
|
1198 |
#: views/tours/login-security.php:37
|
1199 |
#: views/tours/login-security.php:53
|
1200 |
msgid "Next"
|
1219 |
#: lib/menu_firewall_waf.php:271
|
1220 |
#: lib/menu_firewall_waf.php:288
|
1221 |
#: lib/menu_firewall_waf.php:306
|
1222 |
+
#: lib/menu_scanner.php:323
|
1223 |
+
#: lib/menu_scanner.php:339
|
1224 |
+
#: lib/menu_scanner.php:390
|
1225 |
#: views/tours/login-security.php:52
|
1226 |
#: views/tours/login-security.php:69
|
1227 |
msgid "Previous"
|
1242 |
#: lib/menu_firewall_blocking.php:226
|
1243 |
#: lib/menu_firewall_waf.php:307
|
1244 |
#: lib/menu_firewall_waf.php:354
|
1245 |
+
#: lib/menu_scanner.php:340
|
1246 |
+
#: lib/menu_scanner.php:391
|
1247 |
#: lib/menu_tools_livetraffic.php:577
|
1248 |
#: lib/menu_tools_livetraffic.php:608
|
1249 |
msgid "Got it"
|
1307 |
|
1308 |
#: lib/menu_dashboard_options.php:11
|
1309 |
#: lib/menu_dashboard_options.php:79
|
1310 |
+
#: lib/menu_options.php:275
|
1311 |
msgid "Wordfence Global Options"
|
1312 |
msgstr ""
|
1313 |
|
1349 |
|
1350 |
#: lib/menu_dashboard_options.php:287
|
1351 |
#: lib/menu_dashboard_options.php:297
|
1352 |
+
#: lib/menu_options.php:408
|
1353 |
+
#: lib/menu_options.php:418
|
1354 |
#: lib/menu_tools.php:26
|
1355 |
#: lib/menu_tools_importExport.php:7
|
1356 |
#: lib/menu_tools_importExport.php:13
|
1373 |
#: lib/menu_firewall.php:41
|
1374 |
#: lib/menu_firewall_blocking.php:119
|
1375 |
#: lib/menu_firewall_waf.php:142
|
1376 |
+
#: lib/wordfenceClass.php:6704
|
1377 |
#: models/page/wfPage.php:109
|
1378 |
msgid "Blocking"
|
1379 |
msgstr ""
|
1446 |
|
1447 |
#: lib/menu_firewall_blocking_options.php:12
|
1448 |
#: lib/menu_firewall_blocking_options.php:92
|
1449 |
+
#: lib/menu_options.php:343
|
1450 |
#: models/page/wfPage.php:111
|
1451 |
#: views/blocking/blocking-status.php:14
|
1452 |
msgid "Blocking Options"
|
1489 |
|
1490 |
#: lib/menu_firewall_waf.php:39
|
1491 |
#: lib/menu_firewall_waf_options.php:150
|
1492 |
+
#: lib/menu_options.php:105
|
1493 |
#: views/waf/options-group-basic-firewall.php:34
|
1494 |
msgid "Web Application Firewall Status"
|
1495 |
msgstr ""
|
1556 |
#: lib/wfDiagnostic.php:933
|
1557 |
#: lib/wfDiagnostic.php:938
|
1558 |
#: lib/wfDiagnostic.php:942
|
1559 |
+
#: lib/wordfenceClass.php:6170
|
1560 |
#: models/firewall/wfFirewall.php:41
|
1561 |
#: views/scanner/scan-scheduling.php:14
|
1562 |
#: views/user/disabled-application-passwords.php:12
|
1655 |
#: lib/menu_firewall_waf.php:347
|
1656 |
#: lib/menu_firewall_waf_options.php:23
|
1657 |
#: lib/menu_firewall_waf_options.php:127
|
1658 |
+
#: lib/menu_options.php:306
|
1659 |
#: models/page/wfPage.php:107
|
1660 |
msgid "Firewall Options"
|
1661 |
msgstr ""
|
1673 |
msgstr ""
|
1674 |
|
1675 |
#: lib/menu_options.php:24
|
1676 |
+
#: lib/menu_options.php:265
|
1677 |
+
#: lib/wordfenceClass.php:6721
|
1678 |
msgid "All Options"
|
1679 |
msgstr ""
|
1680 |
|
1719 |
|
1720 |
#: lib/menu_options.php:76
|
1721 |
#: views/dashboard/options-group-general.php:73
|
1722 |
+
msgid "Look up visitor IP locations via Wordfence servers"
|
1723 |
msgstr ""
|
1724 |
|
1725 |
#: lib/menu_options.php:77
|
1726 |
+
#: views/dashboard/options-group-general.php:86
|
1727 |
+
msgid "Hide WordPress version"
|
1728 |
msgstr ""
|
1729 |
|
1730 |
#: lib/menu_options.php:78
|
1731 |
+
#: views/dashboard/options-group-general.php:98
|
1732 |
+
msgid "Disable Code Execution for Uploads directory"
|
1733 |
msgstr ""
|
1734 |
|
1735 |
#: lib/menu_options.php:79
|
1736 |
+
#: views/dashboard/options-group-general.php:110
|
1737 |
+
msgid "Pause live updates when window loses focus"
|
1738 |
msgstr ""
|
1739 |
|
1740 |
#: lib/menu_options.php:80
|
1741 |
#: views/dashboard/options-group-general.php:120
|
1742 |
+
msgid "Update interval in seconds"
|
1743 |
msgstr ""
|
1744 |
|
1745 |
#: lib/menu_options.php:81
|
1746 |
+
#: views/dashboard/options-group-general.php:133
|
1747 |
+
msgid "Bypass the LiteSpeed \"noabort\" check"
|
1748 |
msgstr ""
|
1749 |
|
1750 |
#: lib/menu_options.php:82
|
1751 |
+
#: views/dashboard/options-group-general.php:145
|
1752 |
+
msgid "Delete Wordfence tables and data on deactivation"
|
1753 |
+
msgstr ""
|
1754 |
+
|
1755 |
+
#: lib/menu_options.php:83
|
1756 |
#: views/dashboard/options-group-dashboard.php:36
|
1757 |
msgid "Updates Needed (Plugin, Theme, or Core)"
|
1758 |
msgstr ""
|
1759 |
|
1760 |
+
#: lib/menu_options.php:84
|
1761 |
#: views/dashboard/options-group-dashboard.php:48
|
1762 |
msgid "Security Alerts"
|
1763 |
msgstr ""
|
1764 |
|
1765 |
+
#: lib/menu_options.php:85
|
1766 |
#: views/dashboard/options-group-dashboard.php:60
|
1767 |
msgid "Promotions"
|
1768 |
msgstr ""
|
1769 |
|
1770 |
+
#: lib/menu_options.php:86
|
1771 |
#: views/dashboard/options-group-dashboard.php:72
|
1772 |
msgid "Blog Highlights"
|
1773 |
msgstr ""
|
1774 |
|
1775 |
+
#: lib/menu_options.php:87
|
1776 |
#: views/dashboard/options-group-dashboard.php:84
|
1777 |
msgid "Product Updates"
|
1778 |
msgstr ""
|
1779 |
|
1780 |
+
#: lib/menu_options.php:89
|
1781 |
#: views/dashboard/options-group-alert.php:36
|
1782 |
msgid "Email me when Wordfence is automatically updated"
|
1783 |
msgstr ""
|
1784 |
|
1785 |
+
#: lib/menu_options.php:90
|
1786 |
#: views/dashboard/options-group-alert.php:48
|
1787 |
msgid "Email me if Wordfence is deactivated"
|
1788 |
msgstr ""
|
1789 |
|
1790 |
+
#: lib/menu_options.php:91
|
1791 |
#: views/dashboard/options-group-alert.php:59
|
1792 |
msgid "Email me if the Wordfence Web Application Firewall is turned off"
|
1793 |
msgstr ""
|
1794 |
|
1795 |
+
#: lib/menu_options.php:92
|
1796 |
msgid "Alert me with scan results of this severity level or greater"
|
1797 |
msgstr ""
|
1798 |
|
1799 |
+
#: lib/menu_options.php:93
|
1800 |
#: views/dashboard/options-group-alert.php:90
|
1801 |
msgid "Alert when an IP address is blocked"
|
1802 |
msgstr ""
|
1803 |
|
1804 |
+
#: lib/menu_options.php:94
|
1805 |
#: views/dashboard/options-group-alert.php:101
|
1806 |
msgid "Alert when someone is locked out from login"
|
1807 |
msgstr ""
|
1808 |
|
1809 |
+
#: lib/menu_options.php:95
|
1810 |
#: views/dashboard/options-group-alert.php:123
|
1811 |
msgid "Alert when the \"lost password\" form is used for a valid user"
|
1812 |
msgstr ""
|
1813 |
|
1814 |
+
#: lib/menu_options.php:96
|
1815 |
#: views/dashboard/options-group-alert.php:134
|
1816 |
msgid "Alert me when someone with administrator access signs in"
|
1817 |
msgstr ""
|
1818 |
|
1819 |
+
#: lib/menu_options.php:97
|
1820 |
#: views/dashboard/options-group-alert.php:140
|
1821 |
msgid "Only alert me when that administrator signs in from a new device"
|
1822 |
msgstr ""
|
1823 |
|
1824 |
+
#: lib/menu_options.php:98
|
1825 |
#: views/dashboard/options-group-alert.php:151
|
1826 |
msgid "Alert me when a non-admin user signs in"
|
1827 |
msgstr ""
|
1828 |
|
1829 |
+
#: lib/menu_options.php:99
|
1830 |
#: views/dashboard/options-group-alert.php:157
|
1831 |
msgid "Only alert me when that user signs in from a new device"
|
1832 |
msgstr ""
|
1833 |
|
1834 |
+
#: lib/menu_options.php:100
|
1835 |
#: views/dashboard/options-group-alert.php:168
|
1836 |
msgid "Alert me when there's a large increase in attacks detected on my site"
|
1837 |
msgstr ""
|
1838 |
|
1839 |
+
#: lib/menu_options.php:101
|
1840 |
#: views/dashboard/options-group-alert.php:177
|
1841 |
msgid "Maximum email alerts to send per hour"
|
1842 |
msgstr ""
|
1843 |
|
1844 |
+
#: lib/menu_options.php:102
|
1845 |
#: views/dashboard/options-group-email-summary.php:43
|
1846 |
msgid "Enable email summary"
|
1847 |
msgstr ""
|
1848 |
|
1849 |
+
#: lib/menu_options.php:103
|
1850 |
#: views/dashboard/options-group-email-summary.php:52
|
1851 |
msgid "List of directories to exclude from recently modified file list"
|
1852 |
msgstr ""
|
1853 |
|
1854 |
+
#: lib/menu_options.php:104
|
1855 |
#: views/dashboard/options-group-email-summary.php:63
|
1856 |
msgid "Enable activity report widget on the WordPress dashboard"
|
1857 |
msgstr ""
|
1858 |
|
1859 |
+
#: lib/menu_options.php:106
|
1860 |
msgid "Web Application Firewall Protection Level"
|
1861 |
msgstr ""
|
1862 |
|
1863 |
+
#: lib/menu_options.php:107
|
1864 |
#: views/waf/options-group-basic-firewall.php:464
|
1865 |
msgid "Real-Time IP Blocklist"
|
1866 |
msgstr ""
|
1867 |
|
1868 |
+
#: lib/menu_options.php:108
|
1869 |
#: views/waf/options-group-advanced-firewall.php:40
|
1870 |
msgid "Delay IP and Country blocking until after WordPress and plugins have loaded (only process firewall rules early)"
|
1871 |
msgstr ""
|
1872 |
|
1873 |
+
#: lib/menu_options.php:109
|
1874 |
#: views/waf/options-group-advanced-firewall.php:52
|
1875 |
msgid "Allowlisted IP addresses that bypass all rules"
|
1876 |
msgstr ""
|
1877 |
|
1878 |
+
#: lib/menu_options.php:110
|
1879 |
#: views/waf/options-group-advanced-firewall.php:88
|
1880 |
msgid "Allowlisted services"
|
1881 |
msgstr ""
|
1882 |
|
1883 |
+
#: lib/menu_options.php:111
|
1884 |
#: views/waf/options-group-advanced-firewall.php:99
|
1885 |
msgid "Immediately block IPs that access these URLs"
|
1886 |
msgstr ""
|
1887 |
|
1888 |
+
#: lib/menu_options.php:112
|
1889 |
#: views/waf/options-group-advanced-firewall.php:112
|
1890 |
msgid "Ignored IP addresses for Wordfence Web Application Firewall alerting"
|
1891 |
msgstr ""
|
1892 |
|
1893 |
+
#: lib/menu_options.php:113
|
1894 |
msgid "Web Application Firewall Rules"
|
1895 |
msgstr ""
|
1896 |
|
1897 |
+
#: lib/menu_options.php:114
|
1898 |
#: views/waf/options-group-brute-force.php:38
|
1899 |
msgid "Enable brute force protection"
|
1900 |
msgstr ""
|
1901 |
|
1902 |
+
#: lib/menu_options.php:115
|
1903 |
#: views/waf/options-group-brute-force.php:61
|
1904 |
msgid "Lock out after how many login failures"
|
1905 |
msgstr ""
|
1906 |
|
1907 |
+
#: lib/menu_options.php:116
|
1908 |
#: views/waf/options-group-brute-force.php:77
|
1909 |
msgid "Lock out after how many forgot password attempts"
|
1910 |
msgstr ""
|
1911 |
|
1912 |
+
#: lib/menu_options.php:117
|
1913 |
#: views/waf/options-group-brute-force.php:93
|
1914 |
msgid "Count failures over what time period"
|
1915 |
msgstr ""
|
1916 |
|
1917 |
+
#: lib/menu_options.php:118
|
1918 |
#: views/waf/options-group-brute-force.php:109
|
1919 |
msgid "Amount of time a user is locked out"
|
1920 |
msgstr ""
|
1921 |
|
1922 |
+
#: lib/menu_options.php:119
|
1923 |
#: views/waf/options-group-brute-force.php:121
|
1924 |
msgid "Immediately lock out invalid usernames"
|
1925 |
msgstr ""
|
1926 |
|
1927 |
+
#: lib/menu_options.php:120
|
1928 |
#: views/waf/options-group-brute-force.php:139
|
1929 |
msgid "Immediately block the IP of users who try to sign in as these usernames"
|
1930 |
msgstr ""
|
1931 |
|
1932 |
+
#: lib/menu_options.php:121
|
1933 |
#: views/waf/options-group-brute-force.php:178
|
1934 |
msgid "Enforce strong passwords"
|
1935 |
msgstr ""
|
1936 |
|
1937 |
+
#: lib/menu_options.php:122
|
1938 |
#: views/waf/options-group-brute-force.php:155
|
1939 |
msgid "Prevent the use of passwords leaked in data breaches"
|
1940 |
msgstr ""
|
1941 |
|
1942 |
+
#: lib/menu_options.php:123
|
1943 |
#: views/waf/options-group-brute-force.php:190
|
1944 |
msgid "Don't let WordPress reveal valid users in login errors"
|
1945 |
msgstr ""
|
1946 |
|
1947 |
+
#: lib/menu_options.php:124
|
1948 |
msgid "Prevent users registering \"admin\" username if it doesn't exist"
|
1949 |
msgstr ""
|
1950 |
|
1951 |
+
#: lib/menu_options.php:125
|
1952 |
msgid "Prevent discovery of usernames through \"/?author=N\" scans, the oEmbed API, the WordPress REST API, and WordPress XML Sitemaps"
|
1953 |
msgstr ""
|
1954 |
|
1955 |
+
#: lib/menu_options.php:126
|
1956 |
#: views/waf/options-group-brute-force.php:226
|
1957 |
msgid "Disable WordPress application passwords"
|
1958 |
msgstr ""
|
1959 |
|
1960 |
+
#: lib/menu_options.php:127
|
1961 |
#: views/waf/options-group-brute-force.php:238
|
1962 |
msgid "Block IPs who send POST requests with blank User-Agent and Referer"
|
1963 |
msgstr ""
|
1964 |
|
1965 |
+
#: lib/menu_options.php:128
|
1966 |
#: views/waf/options-group-brute-force.php:248
|
1967 |
msgid "Custom text shown on block pages"
|
1968 |
msgstr ""
|
1969 |
|
1970 |
+
#: lib/menu_options.php:129
|
1971 |
#: views/waf/options-group-brute-force.php:263
|
1972 |
msgid "Check password strength on profile update"
|
1973 |
msgstr ""
|
1974 |
|
1975 |
+
#: lib/menu_options.php:130
|
1976 |
#: views/waf/options-group-brute-force.php:275
|
1977 |
msgid "Participate in the Real-Time Wordfence Security Network"
|
1978 |
msgstr ""
|
1979 |
|
1980 |
+
#: lib/menu_options.php:131
|
1981 |
#: views/waf/options-group-rate-limiting.php:38
|
1982 |
msgid "Enable Rate Limiting and Advanced Blocking"
|
1983 |
msgstr ""
|
1984 |
|
1985 |
+
#: lib/menu_options.php:132
|
1986 |
#: views/waf/options-group-rate-limiting.php:60
|
1987 |
msgid "How should we treat Google's crawlers"
|
1988 |
msgstr ""
|
1989 |
|
1990 |
+
#: lib/menu_options.php:133
|
1991 |
#: views/waf/options-group-rate-limiting.php:100
|
1992 |
msgid "If anyone's requests exceed"
|
1993 |
msgstr ""
|
1994 |
|
1995 |
+
#: lib/menu_options.php:134
|
1996 |
#: views/waf/options-group-rate-limiting.php:117
|
1997 |
msgid "If a crawler's page views exceed"
|
1998 |
msgstr ""
|
1999 |
|
2000 |
+
#: lib/menu_options.php:135
|
2001 |
#: views/waf/options-group-rate-limiting.php:134
|
2002 |
msgid "If a crawler's pages not found (404s) exceed"
|
2003 |
msgstr ""
|
2004 |
|
2005 |
+
#: lib/menu_options.php:136
|
2006 |
#: views/waf/options-group-rate-limiting.php:151
|
2007 |
msgid "If a human's page views exceed"
|
2008 |
msgstr ""
|
2009 |
|
2010 |
+
#: lib/menu_options.php:137
|
2011 |
#: views/waf/options-group-rate-limiting.php:168
|
2012 |
msgid "If a human's pages not found (404s) exceed"
|
2013 |
msgstr ""
|
2014 |
|
2015 |
+
#: lib/menu_options.php:138
|
2016 |
#: views/waf/options-group-rate-limiting.php:184
|
2017 |
msgid "How long is an IP address blocked when it breaks a rule"
|
2018 |
msgstr ""
|
2019 |
|
2020 |
+
#: lib/menu_options.php:139
|
2021 |
#: views/waf/options-group-rate-limiting.php:194
|
2022 |
msgid "Allowlisted 404 URLs"
|
2023 |
msgstr ""
|
2024 |
|
2025 |
+
#: lib/menu_options.php:140
|
2026 |
msgid "Web Application Firewall Allowlisted URLs"
|
2027 |
msgstr ""
|
2028 |
|
2029 |
+
#: lib/menu_options.php:141
|
2030 |
msgid "Monitor background requests from an administrator's web browser for false positives (Front-end Website)"
|
2031 |
msgstr ""
|
2032 |
|
2033 |
+
#: lib/menu_options.php:142
|
2034 |
msgid "Monitor background requests from an administrator's web browser for false positives (Admin Panel)"
|
2035 |
msgstr ""
|
2036 |
|
2037 |
+
#: lib/menu_options.php:143
|
2038 |
msgid "What to do when we block someone visiting from a blocked country"
|
2039 |
msgstr ""
|
2040 |
|
2041 |
+
#: lib/menu_options.php:144
|
2042 |
msgid "URL to redirect blocked countries to"
|
2043 |
msgstr ""
|
2044 |
|
2045 |
+
#: lib/menu_options.php:145
|
2046 |
#: views/blocking/options-group-advanced-country.php:62
|
2047 |
msgid "Block countries even if they are logged in"
|
2048 |
msgstr ""
|
2049 |
|
2050 |
+
#: lib/menu_options.php:146
|
2051 |
msgid "If user from a blocked country hits the relative URL ____ then redirect that user to ____ and set a cookie that will bypass all country blocking"
|
2052 |
msgstr ""
|
2053 |
|
2054 |
+
#: lib/menu_options.php:147
|
2055 |
msgid "If user who is allowed to access the site views the relative URL ____ then set a cookie that will bypass country blocking in future in case that user hits the site from a blocked country"
|
2056 |
msgstr ""
|
2057 |
|
2058 |
+
#: lib/menu_options.php:148
|
2059 |
#: views/scanner/scan-scheduling.php:12
|
2060 |
msgid "Schedule Wordfence Scans"
|
2061 |
msgstr ""
|
2062 |
|
2063 |
+
#: lib/menu_options.php:149
|
2064 |
msgid "Scan Type"
|
2065 |
msgstr ""
|
2066 |
|
2067 |
+
#: lib/menu_options.php:150
|
2068 |
#: views/scanner/options-group-general.php:32
|
2069 |
msgid "Check if this website is on a domain blocklist"
|
2070 |
msgstr ""
|
2071 |
|
2072 |
+
#: lib/menu_options.php:151
|
2073 |
msgid "Check if this website is being "Spamvertised""
|
2074 |
msgstr ""
|
2075 |
|
2076 |
+
#: lib/menu_options.php:152
|
2077 |
#: views/scanner/options-group-general.php:34
|
2078 |
msgid "Check if this website IP is generating spam"
|
2079 |
msgstr ""
|
2080 |
|
2081 |
+
#: lib/menu_options.php:153
|
2082 |
#: views/scanner/options-group-general.php:35
|
2083 |
msgid "Scan for misconfigured How does Wordfence get IPs"
|
2084 |
msgstr ""
|
2085 |
|
2086 |
+
#: lib/menu_options.php:154
|
2087 |
#: views/scanner/options-group-general.php:36
|
2088 |
msgid "Scan for publicly accessible configuration, backup, or log files"
|
2089 |
msgstr ""
|
2090 |
|
2091 |
+
#: lib/menu_options.php:155
|
2092 |
#: views/scanner/options-group-general.php:37
|
2093 |
msgid "Scan for publicly accessible quarantined files"
|
2094 |
msgstr ""
|
2095 |
|
2096 |
+
#: lib/menu_options.php:156
|
2097 |
#: views/scanner/options-group-general.php:38
|
2098 |
msgid "Scan core files against repository versions for changes"
|
2099 |
msgstr ""
|
2100 |
|
2101 |
+
#: lib/menu_options.php:157
|
2102 |
#: views/scanner/options-group-general.php:39
|
2103 |
msgid "Scan theme files against repository versions for changes"
|
2104 |
msgstr ""
|
2105 |
|
2106 |
+
#: lib/menu_options.php:158
|
2107 |
#: views/scanner/options-group-general.php:40
|
2108 |
msgid "Scan plugin files against repository versions for changes"
|
2109 |
msgstr ""
|
2110 |
|
2111 |
+
#: lib/menu_options.php:159
|
2112 |
#: views/scanner/options-group-general.php:41
|
2113 |
msgid "Scan wp-admin and wp-includes for files not bundled with WordPress"
|
2114 |
msgstr ""
|
2115 |
|
2116 |
+
#: lib/menu_options.php:160
|
2117 |
#: views/scanner/options-group-general.php:42
|
2118 |
msgid "Scan for signatures of known malicious files"
|
2119 |
msgstr ""
|
2120 |
|
2121 |
+
#: lib/menu_options.php:161
|
2122 |
#: views/scanner/options-group-general.php:43
|
2123 |
msgid "Scan file contents for backdoors, trojans and suspicious code"
|
2124 |
msgstr ""
|
2125 |
|
2126 |
+
#: lib/menu_options.php:162
|
2127 |
#: views/scanner/options-group-general.php:44
|
2128 |
msgid "Scan file contents for malicious URLs"
|
2129 |
msgstr ""
|
2130 |
|
2131 |
+
#: lib/menu_options.php:163
|
2132 |
#: views/scanner/options-group-general.php:45
|
2133 |
msgid "Scan posts for known dangerous URLs and suspicious content"
|
2134 |
msgstr ""
|
2135 |
|
2136 |
+
#: lib/menu_options.php:164
|
2137 |
#: views/scanner/options-group-general.php:46
|
2138 |
msgid "Scan comments for known dangerous URLs and suspicious content"
|
2139 |
msgstr ""
|
2140 |
|
2141 |
+
#: lib/menu_options.php:165
|
2142 |
#: views/scanner/options-group-general.php:47
|
2143 |
msgid "Scan WordPress core, plugin, and theme options for known dangerous URLs and suspicious content"
|
2144 |
msgstr ""
|
2145 |
|
2146 |
+
#: lib/menu_options.php:166
|
2147 |
#: views/scanner/options-group-general.php:48
|
2148 |
msgid "Scan for out of date, abandoned, and vulnerable plugins, themes, and WordPress versions"
|
2149 |
msgstr ""
|
2150 |
|
2151 |
+
#: lib/menu_options.php:167
|
2152 |
#: views/scanner/options-group-general.php:49
|
2153 |
msgid "Scan for suspicious admin users created outside of WordPress"
|
2154 |
msgstr ""
|
2155 |
|
2156 |
+
#: lib/menu_options.php:168
|
2157 |
#: views/scanner/options-group-general.php:50
|
2158 |
msgid "Check the strength of passwords"
|
2159 |
msgstr ""
|
2160 |
|
2161 |
+
#: lib/menu_options.php:169
|
2162 |
#: views/scanner/options-group-general.php:51
|
2163 |
msgid "Monitor disk space"
|
2164 |
msgstr ""
|
2165 |
|
2166 |
+
#: lib/menu_options.php:170
|
2167 |
#: views/scanner/options-group-general.php:52
|
2168 |
msgid "Monitor Web Application Firewall status"
|
2169 |
msgstr ""
|
2170 |
|
2171 |
+
#: lib/menu_options.php:171
|
2172 |
#: views/scanner/options-group-general.php:53
|
2173 |
msgid "Scan files outside your WordPress installation"
|
2174 |
msgstr ""
|
2175 |
|
2176 |
+
#: lib/menu_options.php:172
|
2177 |
#: views/scanner/options-group-general.php:54
|
2178 |
msgid "Scan images, binary, and other files as if they were executable"
|
2179 |
msgstr ""
|
2180 |
|
2181 |
+
#: lib/menu_options.php:173
|
2182 |
#: views/scanner/options-group-performance.php:32
|
2183 |
msgid "Use low resource scanning (reduces server load by lengthening the scan duration)"
|
2184 |
msgstr ""
|
2185 |
|
2186 |
+
#: lib/menu_options.php:174
|
2187 |
#: views/scanner/options-group-performance.php:33
|
2188 |
msgid "Limit the number of issues sent in the scan results email"
|
2189 |
msgstr ""
|
2190 |
|
2191 |
+
#: lib/menu_options.php:175
|
2192 |
#: views/scanner/options-group-performance.php:34
|
2193 |
msgid "Time limit that a scan can run in seconds"
|
2194 |
msgstr ""
|
2195 |
|
2196 |
#. translators: Time until.
|
2197 |
+
#: lib/menu_options.php:176
|
2198 |
#: views/scanner/options-group-performance.php:35
|
2199 |
msgid "How much memory should Wordfence request when scanning"
|
2200 |
msgstr ""
|
2201 |
|
2202 |
+
#: lib/menu_options.php:177
|
2203 |
msgid "Maximum execution time for each scan stage"
|
2204 |
msgstr ""
|
2205 |
|
2206 |
+
#: lib/menu_options.php:178
|
2207 |
msgid "Exclude files from scan that match these wildcard patterns"
|
2208 |
msgstr ""
|
2209 |
|
2210 |
+
#: lib/menu_options.php:179
|
2211 |
msgid "Additional scan signatures"
|
2212 |
msgstr ""
|
2213 |
|
2214 |
+
#: lib/menu_options.php:180
|
2215 |
+
#: views/scanner/options-group-advanced.php:59
|
2216 |
+
msgid "Use only IPv4 to start scans"
|
2217 |
+
msgstr ""
|
2218 |
+
|
2219 |
+
#: lib/menu_options.php:181
|
2220 |
+
#: views/scanner/options-group-advanced.php:77
|
2221 |
+
msgid "Maximum number of attempts to resume each scan stage"
|
2222 |
+
msgstr ""
|
2223 |
+
|
2224 |
+
#: lib/menu_options.php:182
|
2225 |
msgid "Traffic logging mode (Live Traffic)"
|
2226 |
msgstr ""
|
2227 |
|
2228 |
+
#: lib/menu_options.php:183
|
2229 |
#: views/tools/options-group-live-traffic.php:78
|
2230 |
msgid "Don't log signed-in users with publishing access"
|
2231 |
msgstr ""
|
2232 |
|
2233 |
+
#: lib/menu_options.php:184
|
2234 |
#: views/tools/options-group-live-traffic.php:87
|
2235 |
msgid "List of comma separated usernames to ignore"
|
2236 |
msgstr ""
|
2237 |
|
2238 |
+
#: lib/menu_options.php:185
|
2239 |
#: views/tools/options-group-live-traffic.php:96
|
2240 |
msgid "List of comma separated IP addresses to ignore"
|
2241 |
msgstr ""
|
2242 |
|
2243 |
+
#: lib/menu_options.php:186
|
2244 |
#: views/tools/options-group-live-traffic.php:105
|
2245 |
msgid "Browser user-agent to ignore"
|
2246 |
msgstr ""
|
2247 |
|
2248 |
+
#: lib/menu_options.php:187
|
2249 |
#: views/tools/options-group-live-traffic.php:114
|
2250 |
msgid "Amount of Live Traffic data to store (number of rows)"
|
2251 |
msgstr ""
|
2252 |
|
2253 |
+
#: lib/menu_options.php:188
|
2254 |
msgid "Maximum days to keep Live Traffic data"
|
2255 |
msgstr ""
|
2256 |
|
2257 |
+
#: lib/menu_options.php:189
|
2258 |
#: views/dashboard/options-group-import.php:31
|
2259 |
msgid "Export this site's Wordfence options for import on another site"
|
2260 |
msgstr ""
|
2261 |
|
2262 |
+
#: lib/menu_options.php:190
|
2263 |
#: views/dashboard/options-group-import.php:44
|
2264 |
msgid "Import Wordfence options from another site using a token"
|
2265 |
msgstr ""
|
2266 |
|
2267 |
+
#: lib/menu_options.php:194
|
2268 |
msgid "Require Cellphone Sign-in for all Administrators"
|
2269 |
msgstr ""
|
2270 |
|
2271 |
+
#: lib/menu_options.php:195
|
2272 |
msgid "Enable Separate Prompt for Two Factor Code"
|
2273 |
msgstr ""
|
2274 |
|
2275 |
+
#: lib/menu_options.php:204
|
2276 |
msgid "Are you sure you want to restore the default settings? This will undo any custom changes you have made to the options on this page. If you have manually disabled any rules or added any custom allowlisted URLs, those changes will not be overwritten."
|
2277 |
msgstr ""
|
2278 |
|
2279 |
+
#: lib/menu_options.php:271
|
2280 |
msgid "These options are also available throughout the plugin pages, in the relevant sections. This page is provided for easier setup for experienced Wordfence users."
|
2281 |
msgstr ""
|
2282 |
|
2283 |
+
#: lib/menu_options.php:354
|
2284 |
#: models/page/wfPage.php:115
|
2285 |
msgid "Scan Options"
|
2286 |
msgstr ""
|
2287 |
|
2288 |
+
#: lib/menu_options.php:386
|
2289 |
msgid "Tool Options"
|
2290 |
msgstr ""
|
2291 |
|
2292 |
+
#: lib/menu_options.php:416
|
2293 |
msgid "Importing and exporting of options is available on the Tools page"
|
2294 |
msgstr ""
|
2295 |
|
2328 |
msgstr ""
|
2329 |
|
2330 |
#: lib/menu_scanner.php:80
|
2331 |
+
#: lib/wordfenceClass.php:6750
|
2332 |
msgid "Protect More Sites"
|
2333 |
msgstr ""
|
2334 |
|
2362 |
msgid "Reputation Check Status"
|
2363 |
msgstr ""
|
2364 |
|
2365 |
+
#: lib/menu_scanner.php:144
|
|
|
|
|
|
|
|
|
2366 |
#: lib/menu_scanner_options.php:97
|
2367 |
msgid "Scan Options and Scheduling"
|
2368 |
msgstr ""
|
2369 |
|
2370 |
+
#: lib/menu_scanner.php:145
|
2371 |
msgid "Manage scan options including scheduling"
|
2372 |
msgstr ""
|
2373 |
|
2374 |
+
#: lib/menu_scanner.php:206
|
2375 |
msgid "Are you sure you want to delete?"
|
2376 |
msgstr ""
|
2377 |
|
2378 |
+
#: lib/menu_scanner.php:207
|
2379 |
msgid "<strong>WARNING:</strong> If you delete the wrong file, it could cause your WordPress website to stop functioning, and you will probably have to restore from a backup."
|
2380 |
msgstr ""
|
2381 |
|
2382 |
#. translators: Support URL.
|
2383 |
+
#: lib/menu_scanner.php:210
|
2384 |
msgid "Do not delete files on your system unless you're ABSOLUTELY sure you know what you're doing. If you delete the wrong file it could cause your WordPress website to stop functioning and you will probably have to restore from backups. If you're unsure, Cancel and work with your hosting provider to clean your system of infected files. If you'd like to learn more, <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">click here for our help article<span class=\"screen-reader-text\"> (opens in new tab)</span></a>."
|
2385 |
msgstr ""
|
2386 |
|
2387 |
+
#: lib/menu_scanner.php:212
|
2388 |
msgid "Delete Files"
|
2389 |
msgstr ""
|
2390 |
|
2391 |
+
#: lib/menu_scanner.php:220
|
2392 |
msgid "Are you sure you want to repair?"
|
2393 |
msgstr ""
|
2394 |
|
2395 |
+
#: lib/menu_scanner.php:221
|
2396 |
msgid "Do not repair files on your system unless you're ABSOLUTELY sure you know what you're doing. If you repair the wrong file it could cause your WordPress website to stop functioning and you will probably have to restore from backups. If you're unsure, Cancel and work with your hosting provider to clean your system of infected files."
|
2397 |
msgstr ""
|
2398 |
|
2399 |
+
#: lib/menu_scanner.php:223
|
2400 |
msgid "Repair Files"
|
2401 |
msgstr ""
|
2402 |
|
2403 |
#. translators: Time limit (number).
|
2404 |
#. translators: Support URL.
|
2405 |
+
#: lib/menu_scanner.php:233
|
2406 |
#: lib/menu_tools_twoFactor.php:246
|
2407 |
#: lib/menu_tools_twoFactor.php:255
|
2408 |
#: lib/menu_tools_twoFactor.php:264
|
2409 |
#: lib/menu_tools_twoFactor.php:284
|
2410 |
+
#: lib/wordfenceClass.php:4962
|
2411 |
+
#: lib/wordfenceClass.php:4968
|
2412 |
+
#: lib/wordfenceClass.php:4974
|
2413 |
+
#: lib/wordfenceClass.php:4993
|
2414 |
+
#: lib/wordfenceClass.php:4999
|
2415 |
+
#: lib/wordfenceClass.php:5006
|
2416 |
+
#: lib/wordfenceClass.php:5014
|
2417 |
+
#: lib/wordfenceClass.php:6112
|
2418 |
+
#: lib/wordfenceClass.php:6114
|
2419 |
+
#: lib/wordfenceClass.php:6165
|
2420 |
+
#: lib/wordfenceClass.php:8129
|
2421 |
+
#: lib/wordfenceClass.php:8136
|
2422 |
+
#: lib/wordfenceClass.php:8243
|
2423 |
+
#: lib/wordfenceClass.php:8307
|
2424 |
#: views/dashboard/options-group-import.php:147
|
2425 |
#: views/dashboard/options-group-import.php:157
|
2426 |
#: views/dashboard/options-group-import.php:177
|
2435 |
msgid "Close"
|
2436 |
msgstr ""
|
2437 |
|
2438 |
+
#: lib/menu_scanner.php:300
|
2439 |
msgid "A Wordfence scan looks for malware, malicious URLs, and patterns of infections by examining all of the files, posts, and comments on your WordPress website. It also checks your server and monitors your site's online reputation."
|
2440 |
msgstr ""
|
2441 |
|
2442 |
+
#: lib/menu_scanner.php:314
|
2443 |
msgid "Manage Scan Settings"
|
2444 |
msgstr ""
|
2445 |
|
2446 |
+
#: lib/menu_scanner.php:316
|
2447 |
msgid "Set up the way you want the scan to monitor your site security including custom scan configurations and scheduling."
|
2448 |
msgstr ""
|
2449 |
|
2450 |
+
#: lib/menu_scanner.php:331
|
2451 |
msgid "Start Your First Scan"
|
2452 |
msgstr ""
|
2453 |
|
2454 |
+
#: lib/menu_scanner.php:332
|
2455 |
msgid "By default, Wordfence will scan your site daily. Start your first scan now to see if your site has any security issues that need to be addressed. From here you can run manual scans any time you like."
|
2456 |
msgstr ""
|
2457 |
|
2458 |
+
#: lib/menu_scanner.php:368
|
2459 |
msgid "Scan Options & Settings"
|
2460 |
msgstr ""
|
2461 |
|
2462 |
+
#: lib/menu_scanner.php:370
|
2463 |
msgid "All of your scan options, including scheduling, are now located here."
|
2464 |
msgstr ""
|
2465 |
|
2466 |
+
#: lib/menu_scanner.php:383
|
2467 |
msgid "Scan Progress and Activity"
|
2468 |
msgstr ""
|
2469 |
|
2470 |
+
#: lib/menu_scanner.php:384
|
2471 |
msgid "Track each scan stage as Wordfence scans your entire site. Along the way you can see the activity log one line at a time or expand the activity log for a more detailed view. Clicking on scan results will reveal detailed scan findings."
|
2472 |
msgstr ""
|
2473 |
|
2623 |
#: lib/menu_tools_livetraffic.php:41
|
2624 |
#: lib/menu_tools_livetraffic.php:571
|
2625 |
#: lib/menu_tools_livetraffic.php:602
|
2626 |
+
#: lib/wordfenceClass.php:6715
|
2627 |
#: models/page/wfPage.php:119
|
2628 |
msgid "Live Traffic"
|
2629 |
msgstr ""
|
2643 |
msgstr ""
|
2644 |
|
2645 |
#: lib/menu_tools_diagnostic.php:34
|
2646 |
+
msgid "This page shows information that can be used for troubleshooting conflicts, configuration issues, or compatibility with other plugins, themes, or a host's environment. Failing tests are not always a sign of something that you need to fix, but can help the Wordfence team when troubleshooting a problem. (<a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More <span class=\"screen-reader-text\">opens in new tab</span></a>)"
|
2647 |
msgstr ""
|
2648 |
|
2649 |
#: lib/menu_tools_diagnostic.php:38
|
2976 |
|
2977 |
#: lib/menu_tools_diagnostic.php:667
|
2978 |
#: lib/menu_tools_diagnostic.php:706
|
2979 |
+
#: lib/wordfenceClass.php:6173
|
2980 |
msgid "Download"
|
2981 |
msgstr ""
|
2982 |
|
3006 |
msgstr ""
|
3007 |
|
3008 |
#: lib/menu_tools_diagnostic.php:746
|
3009 |
+
#: lib/wordfenceClass.php:3977
|
3010 |
#: views/diagnostics/text.php:519
|
3011 |
msgid "No New Issues"
|
3012 |
msgstr ""
|
3071 |
msgid "Disable reading of php://input"
|
3072 |
msgstr ""
|
3073 |
|
3074 |
+
#: lib/menu_tools_diagnostic.php:884
|
3075 |
+
#: lib/wordfenceClass.php:6234
|
|
|
|
|
|
|
|
|
3076 |
msgid "Restore Defaults"
|
3077 |
msgstr ""
|
3078 |
|
3079 |
+
#: lib/menu_tools_diagnostic.php:885
|
3080 |
+
#: lib/wordfenceClass.php:6159
|
3081 |
msgid "Cancel Changes"
|
3082 |
msgstr ""
|
3083 |
|
3084 |
+
#: lib/menu_tools_diagnostic.php:886
|
3085 |
+
#: lib/wordfenceClass.php:6237
|
3086 |
msgid "Save Changes"
|
3087 |
msgstr ""
|
3088 |
|
3089 |
+
#: lib/menu_tools_diagnostic.php:903
|
3090 |
#: views/options/block-all-options-controls.php:162
|
3091 |
#: views/options/block-controls.php:77
|
3092 |
msgid "Confirm Restore Defaults"
|
3093 |
msgstr ""
|
3094 |
|
3095 |
+
#: lib/menu_tools_diagnostic.php:904
|
3096 |
msgid "Are you sure you want to restore the default Diagnostics settings? This will undo any custom changes you have made to the options on this page."
|
3097 |
msgstr ""
|
3098 |
|
3099 |
+
#: lib/menu_tools_diagnostic.php:906
|
3100 |
#: views/options/block-all-options-controls.php:165
|
3101 |
#: views/options/block-controls.php:80
|
3102 |
msgid "Restore<span class=\"wf-hidden-xs\"> Defaults</span>"
|
3153 |
#: lib/menu_tools_livetraffic.php:100
|
3154 |
#: lib/menu_tools_livetraffic.php:227
|
3155 |
#: lib/menu_tools_livetraffic.php:458
|
3156 |
+
#: lib/wordfenceClass.php:6196
|
3157 |
msgid "Human"
|
3158 |
msgstr ""
|
3159 |
|
3160 |
#: lib/menu_tools_livetraffic.php:101
|
3161 |
#: lib/menu_tools_livetraffic.php:228
|
3162 |
#: lib/menu_tools_livetraffic.php:458
|
3163 |
+
#: lib/wordfenceClass.php:6158
|
3164 |
msgid "Bot"
|
3165 |
msgstr ""
|
3166 |
|
3170 |
|
3171 |
#: lib/menu_tools_livetraffic.php:103
|
3172 |
#: lib/wfDiagnostic.php:803
|
3173 |
+
#: lib/wordfenceClass.php:6150
|
3174 |
msgid "Blocked"
|
3175 |
msgstr ""
|
3176 |
|
3316 |
msgstr ""
|
3317 |
|
3318 |
#: lib/menu_tools_livetraffic.php:286
|
3319 |
+
#: lib/wordfenceClass.php:6265
|
3320 |
msgid "Type"
|
3321 |
msgstr ""
|
3322 |
|
3339 |
msgstr ""
|
3340 |
|
3341 |
#: lib/menu_tools_livetraffic.php:291
|
3342 |
+
#: lib/wordfenceClass.php:4258
|
3343 |
#: views/blocking/blocking-create.php:193
|
3344 |
msgid "Hostname"
|
3345 |
msgstr ""
|
3360 |
#: views/scanner/issue-wfPluginUpgrade.php:20
|
3361 |
#: views/scanner/issue-wfPluginVulnerable.php:17
|
3362 |
#: views/scanner/issue-wfPluginVulnerable.php:18
|
|
|
3363 |
#: views/scanner/issue-wfThemeUpgrade.php:18
|
3364 |
#: views/scanner/issue-wfThemeUpgrade.php:19
|
3365 |
#: views/scanner/issue-wfUpgrade.php:17
|
3698 |
msgstr ""
|
3699 |
|
3700 |
#: lib/menu_tools_whois.php:95
|
3701 |
+
#: lib/wordfenceClass.php:6178
|
3702 |
msgid "Enter a valid IP or domain"
|
3703 |
msgstr ""
|
3704 |
|
3705 |
#: lib/menu_tools_whois.php:95
|
3706 |
+
#: lib/wordfenceClass.php:6221
|
3707 |
msgid "Please enter a valid IP address or domain name for your whois lookup."
|
3708 |
msgstr ""
|
3709 |
|
3710 |
#: lib/menu_tools_whois.php:99
|
3711 |
+
#: lib/wordfenceClass.php:6202
|
3712 |
msgid "Loading..."
|
3713 |
msgstr ""
|
3714 |
|
3715 |
#: lib/menu_tools_whois.php:104
|
3716 |
+
#: lib/wordfenceClass.php:6208
|
3717 |
msgid "Look up IP or Domain"
|
3718 |
msgstr ""
|
3719 |
|
3743 |
|
3744 |
#: lib/menu_wordfence_central.php:44
|
3745 |
#: lib/menu_wordfence_central.php:57
|
3746 |
+
#: lib/wordfenceClass.php:6731
|
3747 |
msgid "Wordfence Central"
|
3748 |
msgstr ""
|
3749 |
|
3826 |
#. translators: Error message.
|
3827 |
#: lib/rest-api/wfRESTConfigController.php:215
|
3828 |
#: lib/rest-api/wfRESTConfigController.php:258
|
3829 |
+
#: lib/wordfenceClass.php:4542
|
3830 |
msgid "An error occurred while saving the configuration: %s"
|
3831 |
msgstr ""
|
3832 |
|
3833 |
#. translators: Error message.
|
3834 |
#: lib/rest-api/wfRESTConfigController.php:226
|
3835 |
#: lib/rest-api/wfRESTConfigController.php:269
|
3836 |
+
#: lib/wordfenceClass.php:4551
|
3837 |
msgid "Errors occurred while saving the configuration: %s"
|
3838 |
msgstr ""
|
3839 |
|
3840 |
#: lib/rest-api/wfRESTConfigController.php:231
|
3841 |
#: lib/rest-api/wfRESTConfigController.php:274
|
3842 |
+
#: lib/wordfenceClass.php:4556
|
3843 |
msgid "Errors occurred while saving the configuration."
|
3844 |
msgstr ""
|
3845 |
|
3956 |
msgstr ""
|
3957 |
|
3958 |
#: lib/wfActivityReport.php:584
|
3959 |
+
#: lib/wordfenceClass.php:8482
|
3960 |
msgid "Blocked because the IP is blocklisted"
|
3961 |
msgstr ""
|
3962 |
|
3963 |
#. translators: Reason for firewall action.
|
3964 |
#: lib/wfActivityReport.php:587
|
3965 |
+
#: lib/wordfenceClass.php:8485
|
3966 |
msgid "Blocked for %s"
|
3967 |
msgstr ""
|
3968 |
|
3969 |
#. translators: 1. Reason for firewall action. 2. Input parameter. 2. Input parameter value.
|
3970 |
#: lib/wfActivityReport.php:599
|
3971 |
+
#: lib/wordfenceClass.php:8499
|
3972 |
msgid "Blocked for %1$s in query string: %2$s = %3$s"
|
3973 |
msgstr ""
|
3974 |
|
3975 |
#. translators: 1. Reason for firewall action. 2. Input parameter. 2. Input parameter value.
|
3976 |
#: lib/wfActivityReport.php:602
|
3977 |
+
#: lib/wordfenceClass.php:8504
|
3978 |
msgid "Blocked for %1$s in POST body: %2$s = %3$s"
|
3979 |
msgstr ""
|
3980 |
|
3981 |
#. translators: 1. Reason for firewall action. 2. Input parameter. 2. Input parameter value.
|
3982 |
#: lib/wfActivityReport.php:605
|
3983 |
+
#: lib/wordfenceClass.php:8509
|
3984 |
msgid "Blocked for %1$s in cookie: %2$s = %3$s"
|
3985 |
msgstr ""
|
3986 |
|
3987 |
#. translators: 1. Reason for firewall action. 2. Input parameter. 2. Input parameter value.
|
3988 |
#: lib/wfActivityReport.php:608
|
3989 |
+
#: lib/wordfenceClass.php:8514
|
3990 |
msgid "Blocked for %1$s in file: %2$s = %3$s"
|
3991 |
msgstr ""
|
3992 |
|
3997 |
msgstr ""
|
3998 |
|
3999 |
#: lib/wfAdminNoticeQueue.php:193
|
4000 |
+
#: lib/wordfenceClass.php:6171
|
4001 |
+
#: lib/wordfenceClass.php:6426
|
4002 |
+
#: lib/wordfenceClass.php:6461
|
4003 |
+
#: lib/wordfenceClass.php:9037
|
4004 |
msgid "Dismiss"
|
4005 |
msgstr ""
|
4006 |
|
5170 |
msgstr ""
|
5171 |
|
5172 |
#. translators: 1. Key in key-value store. 2. Value in key-value store.
|
5173 |
+
#: lib/wfConfig.php:484
|
5174 |
msgid "wfConfig::set() got an array as second param with key: %1$s and value: %2$s"
|
5175 |
msgstr ""
|
5176 |
|
5177 |
#. translators: Key in key-value store.
|
5178 |
+
#: lib/wfConfig.php:641
|
5179 |
msgid "Error reassembling value for %s"
|
5180 |
msgstr ""
|
5181 |
|
5182 |
#. translators: 1. Key in key-value store. 2. MySQL error number. 3. MySQL error message.
|
5183 |
+
#: lib/wfConfig.php:735
|
5184 |
+
#: lib/wfConfig.php:744
|
5185 |
+
#: lib/wfConfig.php:751
|
5186 |
+
#: lib/wfConfig.php:761
|
5187 |
+
#: lib/wfConfig.php:768
|
5188 |
msgid "Error writing value chunk for %1$s (MySQLi error: [%2$s] %3$s)"
|
5189 |
msgstr ""
|
5190 |
|
5191 |
#. translators: Key in key-value store.
|
5192 |
+
#: lib/wfConfig.php:780
|
5193 |
msgid "Error writing value header for %s"
|
5194 |
msgstr ""
|
5195 |
|
5196 |
#. translators: 1. Key in key-value store. 2. MySQL error number. 3. MySQL error message.
|
5197 |
+
#: lib/wfConfig.php:793
|
5198 |
+
#: lib/wfConfig.php:804
|
5199 |
+
#: lib/wfConfig.php:814
|
5200 |
msgid "Error writing value for %1$s (MySQLi error: [%2$s] %3$s)"
|
5201 |
msgstr ""
|
5202 |
|
5203 |
#. translators: 1. Key in key-value store. 2. MySQL error number. 3. MySQL error message.
|
5204 |
+
#: lib/wfConfig.php:821
|
5205 |
msgid "Error finishing writing value for %1$s (MySQLi error: [%2$s] %3$s)"
|
5206 |
msgstr ""
|
5207 |
|
5208 |
#. translators: Support URL.
|
5209 |
+
#: lib/wfConfig.php:991
|
5210 |
msgid "Wordfence Upgrade not run. Please modify your .htaccess"
|
5211 |
msgstr ""
|
5212 |
|
5213 |
#. translators: Support URL.
|
5214 |
+
#: lib/wfConfig.php:991
|
5215 |
msgid ""
|
5216 |
"To preserve the integrity of your website we are not running Wordfence auto-update.\n"
|
5217 |
"You are running the LiteSpeed web server which has been known to cause a problem with Wordfence auto-update.\n"
|
5223 |
""
|
5224 |
msgstr ""
|
5225 |
|
5226 |
+
#: lib/wfConfig.php:1114
|
5227 |
msgid "Unable to save the .htaccess file needed to disable script execution in the uploads directory. Please check your permissions on that directory."
|
5228 |
msgstr ""
|
5229 |
|
5230 |
+
#: lib/wfConfig.php:1151
|
5231 |
msgid "Unable to remove code execution protections applied to the .htaccess file in the uploads directory. Please check your permissions on that file."
|
5232 |
msgstr ""
|
5233 |
|
5234 |
+
#: lib/wfConfig.php:1188
|
5235 |
+
#: lib/wordfenceClass.php:7592
|
5236 |
msgid "The grace period end time must be in the future."
|
5237 |
msgstr ""
|
5238 |
|
5239 |
+
#: lib/wfConfig.php:1197
|
5240 |
msgid "Unknown firewall mode."
|
5241 |
msgstr ""
|
5242 |
|
5243 |
+
#: lib/wfConfig.php:1216
|
5244 |
msgid "The following emails are invalid: "
|
5245 |
msgstr ""
|
5246 |
|
5247 |
#. translators: Regular expression.
|
5248 |
+
#: lib/wfConfig.php:1229
|
5249 |
msgid "\"%s\" is not a valid regular expression."
|
5250 |
msgstr ""
|
5251 |
|
5252 |
+
#: lib/wfConfig.php:1248
|
5253 |
msgid "Please make sure you separate your IP addresses with commas. The following allowlisted IP addresses are invalid: "
|
5254 |
msgstr ""
|
5255 |
|
5256 |
+
#: lib/wfConfig.php:1267
|
5257 |
msgid "The following users you selected to ignore in live traffic reports are not valid on this system: "
|
5258 |
msgstr ""
|
5259 |
|
5260 |
+
#: lib/wfConfig.php:1284
|
5261 |
msgid "The following IPs you selected to ignore in live traffic reports are not valid: "
|
5262 |
msgstr ""
|
5263 |
|
5264 |
+
#: lib/wfConfig.php:1301
|
5265 |
msgid "The following IPs/ranges you selected to trust as proxies are not valid: "
|
5266 |
msgstr ""
|
5267 |
|
5268 |
+
#: lib/wfConfig.php:1311
|
5269 |
msgid "An empty license key was entered."
|
5270 |
msgstr ""
|
5271 |
|
5272 |
+
#: lib/wfConfig.php:1314
|
5273 |
+
#: lib/wordfenceClass.php:4427
|
5274 |
msgid "The license key entered is not in a valid format. It must contain only numbers and the letters A-F."
|
5275 |
msgstr ""
|
5276 |
|
5277 |
+
#: lib/wfConfig.php:1326
|
5278 |
msgid "A wildcard cannot be used to exclude all files from the scan."
|
5279 |
msgstr ""
|
5280 |
|
5281 |
+
#: lib/wfConfig.php:1337
|
5282 |
+
msgid "Invalid number of scan resume attempts specified: %d"
|
5283 |
+
msgstr ""
|
5284 |
+
|
5285 |
+
#: lib/wfConfig.php:1791
|
5286 |
+
#: lib/wfConfig.php:1813
|
5287 |
msgid "The Wordfence server's response did not contain the expected elements."
|
5288 |
msgstr ""
|
5289 |
|
5290 |
+
#: lib/wfConfig.php:1795
|
5291 |
msgid "Your options have been saved, but you left your license key blank, so we tried to get you a free license key from the Wordfence servers. There was a problem fetching the free key: "
|
5292 |
msgstr ""
|
5293 |
|
5294 |
+
#: lib/wfConfig.php:1817
|
5295 |
msgid "Your options have been saved. However we noticed you changed your license key, and we tried to verify it with the Wordfence servers but received an error: "
|
5296 |
msgstr ""
|
5297 |
|
5298 |
+
#: lib/wfConfig.php:1861
|
5299 |
msgid "Your options have been saved. However we tried to verify your license key with the Wordfence servers and received an error: "
|
5300 |
msgstr ""
|
5301 |
|
5502 |
msgstr ""
|
5503 |
|
5504 |
#: lib/wfDiagnostic.php:132
|
5505 |
+
msgid "Connecting back to this site via IPv6 (not required; failure to connect may not be an issue on some sites) <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"wfhelp\"><span class=\"screen-reader-text\"> (opens in new tab)</span></a>"
|
5506 |
msgstr ""
|
5507 |
|
5508 |
#: lib/wfDiagnostic.php:133
|
5909 |
msgstr ""
|
5910 |
|
5911 |
#: lib/wfDiagnostic.php:941
|
5912 |
+
#: lib/wordfenceClass.php:4276
|
5913 |
msgid "Never"
|
5914 |
msgstr ""
|
5915 |
|
6156 |
msgstr ""
|
6157 |
|
6158 |
#: lib/wfLog.php:626
|
6159 |
+
#: lib/wordfenceClass.php:6209
|
6160 |
#: waf/wfWAFIPBlocksController.php:99
|
6161 |
msgid "Manual block by administrator"
|
6162 |
msgstr ""
|
6236 |
msgid "Wordfence could not start a scan because the cron key does not match the saved key. Saved: %1$s Sent: %2$s Current unexploded: %3$s"
|
6237 |
msgstr ""
|
6238 |
|
6239 |
+
#: lib/wfScan.php:114
|
6240 |
msgid "Checking if scan is already running"
|
6241 |
msgstr ""
|
6242 |
|
6243 |
+
#: lib/wfScan.php:116
|
6244 |
msgid "There is already a scan running."
|
6245 |
msgstr ""
|
6246 |
|
6247 |
+
#: lib/wfScan.php:125
|
6248 |
msgid "Using low resource scanning"
|
6249 |
msgstr ""
|
6250 |
|
6251 |
+
#: lib/wfScan.php:128
|
6252 |
msgid "Requesting max memory"
|
6253 |
msgstr ""
|
6254 |
|
6255 |
+
#: lib/wfScan.php:130
|
6256 |
msgid "Setting up error handling environment"
|
6257 |
msgstr ""
|
6258 |
|
6259 |
+
#: lib/wfScan.php:138
|
6260 |
msgid "Setting up scanRunning and starting scan"
|
6261 |
msgstr ""
|
6262 |
|
6263 |
#. translators: Error message (used for debugging).
|
6264 |
+
#: lib/wfScan.php:143
|
6265 |
msgid "Got a true deserialized value back from 'wfsd_engine' with type: %s"
|
6266 |
msgstr ""
|
6267 |
|
6268 |
#. translators: Error message (used for debugging).
|
6269 |
+
#: lib/wfScan.php:147
|
6270 |
msgid "Scan can't continue - stored data not found after a fork. Got type: %s"
|
6271 |
msgstr ""
|
6272 |
|
6273 |
+
#: lib/wfScan.php:149
|
6274 |
+
#: lib/wfScan.php:152
|
6275 |
msgid "Scan can't continue - stored data not found after a fork."
|
6276 |
msgstr ""
|
6277 |
|
6278 |
#. translators: Error message.
|
6279 |
+
#: lib/wfScan.php:153
|
6280 |
+
#: lib/wfScan.php:319
|
6281 |
msgid "Previous scan terminated with an error. See below."
|
6282 |
msgstr ""
|
6283 |
|
6284 |
+
#: lib/wfScan.php:176
|
6285 |
msgid "Contacting Wordfence to initiate scan"
|
6286 |
msgstr ""
|
6287 |
|
6288 |
#. translators: Time until.
|
6289 |
+
#: lib/wfScan.php:185
|
6290 |
msgid "Deferring scheduled scan by %s"
|
6291 |
msgstr ""
|
6292 |
|
6293 |
+
#: lib/wfScan.php:206
|
6294 |
msgid "Initiating quick scan"
|
6295 |
msgstr ""
|
6296 |
|
6297 |
#. translators: 1. Bytes of memory. 2. Bytes of memory.
|
6298 |
#. translators: 1. Memory in bytes. 2. Memory in bytes.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6299 |
#: lib/wfScan.php:217
|
6300 |
#: lib/wfScan.php:229
|
6301 |
#: lib/wfScan.php:252
|
6302 |
#: lib/wfScan.php:267
|
6303 |
#: lib/wfScan.php:282
|
6304 |
#: lib/wfScan.php:297
|
6305 |
+
#: lib/wfScanEngine.php:446
|
6306 |
+
msgid "Wordfence used %1$s of memory for scan. Server peak memory usage was: %2$s"
|
6307 |
+
msgstr ""
|
6308 |
+
|
6309 |
+
#. translators: Error message.
|
6310 |
+
#: lib/wfScan.php:221
|
6311 |
+
#: lib/wfScan.php:233
|
6312 |
+
#: lib/wfScan.php:256
|
6313 |
+
#: lib/wfScan.php:271
|
6314 |
+
#: lib/wfScan.php:286
|
6315 |
+
#: lib/wfScan.php:301
|
6316 |
+
#: lib/wfScan.php:318
|
6317 |
msgid "Scan terminated with error: %s"
|
6318 |
msgstr ""
|
6319 |
|
6320 |
+
#: lib/wfScan.php:304
|
6321 |
msgid "Wordfence scan failed because of license site URL conflict"
|
6322 |
msgstr ""
|
6323 |
|
6324 |
#. translators: Error message.
|
6325 |
+
#: lib/wfScan.php:356
|
6326 |
msgid "Scan Engine Error: %s"
|
6327 |
msgstr ""
|
6328 |
|
6376 |
msgstr ""
|
6377 |
|
6378 |
#. translators: 1. Number of files. 2. Number of plugins. 3. Number of themes. 4. Number of posts. 5. Number of comments. 6. Number of URLs. 7. Time duration.
|
6379 |
+
#: lib/wfScanEngine.php:456
|
6380 |
msgid "Scan Complete. Scanned %1$d files, %2$d plugins, %3$d themes, %4$d posts, %5$d comments and %6$d URLs in %7$s."
|
6381 |
msgstr ""
|
6382 |
|
6383 |
#. translators: 1. Time duration.
|
6384 |
+
#: lib/wfScanEngine.php:468
|
6385 |
msgid "Quick Scan Complete. Scanned in %s."
|
6386 |
msgstr ""
|
6387 |
|
6388 |
#. translators: Number of scan results.
|
6389 |
+
#: lib/wfScanEngine.php:477
|
6390 |
msgid "%d ignored issue was also detected."
|
6391 |
msgid_plural "%d ignored issues were also detected."
|
6392 |
msgstr[0] ""
|
6393 |
msgstr[1] ""
|
6394 |
|
6395 |
#. translators: Number of scan results.
|
6396 |
+
#: lib/wfScanEngine.php:488
|
6397 |
msgid "Scan complete. You have %d new issue to fix."
|
6398 |
msgid_plural "Scan complete. You have %d new issues to fix."
|
6399 |
msgstr[0] ""
|
6400 |
msgstr[1] ""
|
6401 |
|
6402 |
+
#: lib/wfScanEngine.php:496
|
6403 |
msgid "See below."
|
6404 |
msgstr ""
|
6405 |
|
6406 |
+
#: lib/wfScanEngine.php:499
|
6407 |
msgid "Scan complete. Congratulations, no new problems found."
|
6408 |
msgstr ""
|
6409 |
|
6410 |
+
#: lib/wfScanEngine.php:510
|
6411 |
msgid "Checking if your site IP is generating spam"
|
6412 |
msgstr ""
|
6413 |
|
6414 |
+
#: lib/wfScanEngine.php:529
|
6415 |
msgid "Checking if your IP is generating spam is for paid members only"
|
6416 |
msgstr ""
|
6417 |
|
6418 |
+
#: lib/wfScanEngine.php:536
|
6419 |
msgid "Checking if your site is on a domain blocklist"
|
6420 |
msgstr ""
|
6421 |
|
6422 |
+
#: lib/wfScanEngine.php:541
|
6423 |
msgid "Checking if your site is on a domain blocklist is for paid members only"
|
6424 |
msgstr ""
|
6425 |
|
6426 |
#. translators: Error message.
|
6427 |
+
#: lib/wfScanEngine.php:577
|
6428 |
msgid "Error checking domain blocklists: %s"
|
6429 |
msgstr ""
|
6430 |
|
6431 |
#. translators: WordPress site ID.
|
6432 |
+
#: lib/wfScanEngine.php:611
|
6433 |
msgid "The multisite blog with ID %d is listed on Google's Safe Browsing malware list."
|
6434 |
msgstr ""
|
6435 |
|
6436 |
+
#: lib/wfScanEngine.php:614
|
6437 |
msgid "Your site is listed on Google's Safe Browsing malware list."
|
6438 |
msgstr ""
|
6439 |
|
6440 |
#. translators: 1. URL. 2. URL.
|
6441 |
+
#: lib/wfScanEngine.php:618
|
6442 |
msgid "The URL %1$s is on the malware list. More info available at <a href=\"http://safebrowsing.clients.google.com/safebrowsing/diagnostic?site=%2$s&client=googlechrome&hl=en-US\" target=\"_blank\" rel=\"noopener noreferrer\">Google Safe Browsing diagnostic page<span class=\"screen-reader-text\"> ("
|
6443 |
msgstr ""
|
6444 |
|
6445 |
#. translators: WordPress site ID.
|
6446 |
+
#: lib/wfScanEngine.php:624
|
6447 |
msgid "The multisite blog with ID %d is listed on Google's Safe Browsing phishing list."
|
6448 |
msgstr ""
|
6449 |
|
6450 |
+
#: lib/wfScanEngine.php:627
|
6451 |
msgid "Your site is listed on Google's Safe Browsing phishing list."
|
6452 |
msgstr ""
|
6453 |
|
6454 |
#. translators: 1. URL. 2. URL.
|
6455 |
+
#: lib/wfScanEngine.php:631
|
6456 |
msgid "The URL %1$s is on the phishing list. More info available at <a href=\"http://safebrowsing.clients.google.com/safebrowsing/diagnostic?site=%2$s&client=googlechrome&hl=en-US\" target=\"_blank\" rel=\"noopener noreferrer\">Google Safe Browsing diagnostic page<span class=\"screen-reader-text\"> ("
|
6457 |
msgstr ""
|
6458 |
|
6459 |
#. translators: WordPress site ID.
|
6460 |
+
#: lib/wfScanEngine.php:637
|
6461 |
msgid "The multisite blog with ID %d is listed on the Wordfence domain blocklist."
|
6462 |
msgstr ""
|
6463 |
|
6464 |
+
#: lib/wfScanEngine.php:640
|
6465 |
msgid "Your site is listed on the Wordfence domain blocklist."
|
6466 |
msgstr ""
|
6467 |
|
6468 |
#. translators: URL.
|
6469 |
+
#: lib/wfScanEngine.php:644
|
6470 |
msgid "The URL %s is on the blocklist."
|
6471 |
msgstr ""
|
6472 |
|
6473 |
#. translators: WordPress site ID.
|
6474 |
+
#: lib/wfScanEngine.php:650
|
6475 |
msgid "The multisite blog with ID %d is listed on a domain blocklist."
|
6476 |
msgstr ""
|
6477 |
|
6478 |
+
#: lib/wfScanEngine.php:653
|
6479 |
msgid "Your site is listed on a domain blocklist."
|
6480 |
msgstr ""
|
6481 |
|
6482 |
#. translators: URL.
|
6483 |
+
#: lib/wfScanEngine.php:655
|
6484 |
msgid "The URL is: %s"
|
6485 |
msgstr ""
|
6486 |
|
6487 |
+
#: lib/wfScanEngine.php:675
|
6488 |
msgid "Checking for the most secure way to get IPs"
|
6489 |
msgstr ""
|
6490 |
|
6491 |
+
#: lib/wfScanEngine.php:702
|
6492 |
msgid "Unable to accurately detect IPs"
|
6493 |
msgstr ""
|
6494 |
|
6495 |
#. translators: Support URL.
|
6496 |
+
#: lib/wfScanEngine.php:703
|
6497 |
msgid "Wordfence was unable to validate a test request to your website. This can happen if your website is behind a proxy that does not use one of the standard ways to convey the IP of the request or it is unreachable publicly. IP blocking and live traffic information may not be accurate. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Get More Information<span class=\"screen-reader-text\"> ("
|
6498 |
msgstr ""
|
6499 |
|
6500 |
+
#: lib/wfScanEngine.php:713
|
6501 |
+
#: lib/wordfenceClass.php:6403
|
6502 |
msgid "For maximum security use PHP's built in REMOTE_ADDR."
|
6503 |
msgstr ""
|
6504 |
|
6505 |
+
#: lib/wfScanEngine.php:715
|
6506 |
+
#: lib/wordfenceClass.php:6406
|
6507 |
msgid "This site appears to be behind a front-end proxy, so using the X-Forwarded-For HTTP header will resolve to the correct IPs."
|
6508 |
msgstr ""
|
6509 |
|
6510 |
+
#: lib/wfScanEngine.php:717
|
6511 |
+
#: lib/wordfenceClass.php:6409
|
6512 |
msgid "This site appears to be behind a front-end proxy, so using the X-Real-IP HTTP header will resolve to the correct IPs."
|
6513 |
msgstr ""
|
6514 |
|
6515 |
+
#: lib/wfScanEngine.php:719
|
6516 |
+
#: lib/wordfenceClass.php:6412
|
6517 |
msgid "This site appears to be behind Cloudflare, so using the Cloudflare \"CF-Connecting-IP\" HTTP header will resolve to the correct IPs."
|
6518 |
msgstr ""
|
6519 |
|
6520 |
+
#: lib/wfScanEngine.php:723
|
6521 |
msgid "'How does Wordfence get IPs' is misconfigured"
|
6522 |
msgstr ""
|
6523 |
|
6524 |
#. translators: Support URL.
|
6525 |
+
#: lib/wfScanEngine.php:726
|
6526 |
msgid "A test request to this website was detected on a different value for this setting. IP blocking and live traffic information may not be accurate. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Get More Information<span class=\"screen-reader-text\"> ("
|
6527 |
msgstr ""
|
6528 |
|
6529 |
+
#: lib/wfScanEngine.php:747
|
6530 |
msgid "Check for publicly accessible configuration files, backup files and logs"
|
6531 |
msgstr ""
|
6532 |
|
6533 |
#. translators: File path.
|
6534 |
+
#: lib/wfScanEngine.php:798
|
6535 |
msgid "Publicly accessible config, backup, or log file found: %s"
|
6536 |
msgstr ""
|
6537 |
|
6538 |
#. translators: 1. URL to publicly accessible file. 2. Support URL.
|
6539 |
+
#: lib/wfScanEngine.php:801
|
6540 |
msgid "<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%1$s</a> is publicly accessible and may expose source code or sensitive information about your site. Files such as this one are commonly checked for by scanners and should be made inaccessible. Alternately, some can be removed if you are certain your site does not need them. Sites using the nginx web server may need manual configuration changes to protect such files. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn more<span class=\"screen-reader-text\"> ("
|
6541 |
msgstr ""
|
6542 |
|
6543 |
+
#: lib/wfScanEngine.php:831
|
6544 |
msgid "Checking if your server discloses the path to the document root"
|
6545 |
msgstr ""
|
6546 |
|
6547 |
+
#: lib/wfScanEngine.php:841
|
6548 |
msgid "Web server exposes the document root"
|
6549 |
msgstr ""
|
6550 |
|
6551 |
+
#: lib/wfScanEngine.php:842
|
6552 |
msgid "Full Path Disclosure (FPD) vulnerabilities enable the attacker to see the path to the webroot/file. e.g.: /home/user/htdocs/file/. Certain vulnerabilities, such as using the load_file() (within a SQL Injection) query to view the page source, require the attacker to have the full path to the file they wish to view."
|
6553 |
msgstr ""
|
6554 |
|
6555 |
+
#: lib/wfScanEngine.php:868
|
6556 |
msgid "Directory listing is enabled"
|
6557 |
msgstr ""
|
6558 |
|
6559 |
+
#: lib/wfScanEngine.php:869
|
6560 |
msgid "Directory listing provides an attacker with the complete index of all the resources located inside of the directory. The specific risks and consequences vary depending on which files are listed and accessible, but it is recommended that you disable it unless it is needed."
|
6561 |
msgstr ""
|
6562 |
|
6563 |
+
#: lib/wfScanEngine.php:885
|
6564 |
msgid "Checking if your site is being Spamvertised"
|
6565 |
msgstr ""
|
6566 |
|
6567 |
+
#: lib/wfScanEngine.php:904
|
6568 |
msgid "Check if your site is being Spamvertized is for paid members only"
|
6569 |
msgstr ""
|
6570 |
|
6571 |
+
#: lib/wfScanEngine.php:934
|
6572 |
msgid "Ignoring invalid scan path: %s"
|
6573 |
msgstr ""
|
6574 |
|
6575 |
+
#: lib/wfScanEngine.php:968
|
6576 |
msgid "Ignoring invalid expected scan file: %s"
|
6577 |
msgstr ""
|
6578 |
|
6579 |
+
#: lib/wfScanEngine.php:973
|
6580 |
msgid "Wordfence could not read the content of your WordPress directory. This usually indicates your permissions are so strict that your web server can't read your WordPress directory."
|
6581 |
msgstr ""
|
6582 |
|
6583 |
+
#: lib/wfScanEngine.php:982
|
6584 |
msgid "Ignoring invalid base scan file: %s"
|
6585 |
msgstr ""
|
6586 |
|
6587 |
+
#: lib/wfScanEngine.php:993
|
6588 |
msgid "Checking for paths skipped due to scan settings"
|
6589 |
msgstr ""
|
6590 |
|
6591 |
#. translators: Number of paths skipped in scan.
|
6592 |
+
#: lib/wfScanEngine.php:1003
|
6593 |
msgid ", and %d more."
|
6594 |
msgstr ""
|
6595 |
|
6596 |
#. translators: Number of paths skipped in scan.
|
6597 |
+
#: lib/wfScanEngine.php:1027
|
6598 |
msgid "%d path was skipped for the malware scan due to scan settings"
|
6599 |
msgid_plural "%d paths were skipped for the malware scan due to scan settings"
|
6600 |
msgstr[0] ""
|
6601 |
msgstr[1] ""
|
6602 |
|
6603 |
#. translators: 1. Number of paths skipped in scan. 2. Support URL. 3. List of skipped paths.
|
6604 |
+
#: lib/wfScanEngine.php:1030
|
6605 |
msgid "The option \"Scan files outside your WordPress installation\" is off by default, which means %1$d path and its file(s) will not be scanned for malware or unauthorized changes. To continue skipping this path, you may ignore this issue. Or to start scanning it, enable the option and subsequent scans will include it. Some paths may not be necessary to scan, so this is optional. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span class=\"screen-reader-text\"> ("
|
6606 |
msgid_plural "The option \"Scan files outside your WordPress installation\" is off by default, which means %1$d paths and their file(s) will not be scanned for malware or unauthorized changes. To continue skipping these paths, you may ignore this issue. Or to start scanning them, enable the option and subsequent scans will include them. Some paths may not be necessary to scan, so this is optional. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span class=\"screen-reader-text\"> ("
|
6607 |
msgstr[0] ""
|
6608 |
msgstr[1] ""
|
6609 |
|
6610 |
+
#: lib/wfScanEngine.php:1058
|
6611 |
msgid "Including files that are outside the WordPress installation in the scan."
|
6612 |
msgstr ""
|
6613 |
|
6614 |
+
#: lib/wfScanEngine.php:1061
|
6615 |
msgid "Getting plugin list from WordPress"
|
6616 |
msgstr ""
|
6617 |
|
6618 |
#. translators: Number of plugins.
|
6619 |
+
#: lib/wfScanEngine.php:1063
|
6620 |
msgid "Found %d plugin"
|
6621 |
msgid_plural "Found %d plugins"
|
6622 |
msgstr[0] ""
|
6623 |
msgstr[1] ""
|
6624 |
|
6625 |
+
#: lib/wfScanEngine.php:1065
|
6626 |
msgid "Getting theme list from WordPress"
|
6627 |
msgstr ""
|
6628 |
|
6629 |
#. translators: Number of themes.
|
6630 |
+
#: lib/wfScanEngine.php:1067
|
6631 |
msgid "Found %d theme"
|
6632 |
msgid_plural "Found %d themes"
|
6633 |
msgstr[0] ""
|
6634 |
msgstr[1] ""
|
6635 |
|
6636 |
+
#: lib/wfScanEngine.php:1084
|
6637 |
msgid "Scanning file contents for infections and vulnerabilities"
|
6638 |
msgstr ""
|
6639 |
|
6640 |
+
#: lib/wfScanEngine.php:1087
|
6641 |
msgid "Skipping scan of file contents for infections and vulnerabilities"
|
6642 |
msgstr ""
|
6643 |
|
6644 |
+
#: lib/wfScanEngine.php:1091
|
6645 |
msgid "Scanning file contents for URLs on a domain blocklist"
|
6646 |
msgstr ""
|
6647 |
|
6648 |
+
#: lib/wfScanEngine.php:1094
|
6649 |
msgid "Skipping scan of file contents for URLs on a domain blocklist"
|
6650 |
msgstr ""
|
6651 |
|
6652 |
+
#: lib/wfScanEngine.php:1099
|
6653 |
msgid "Starting scan of file contents"
|
6654 |
msgstr ""
|
6655 |
|
6656 |
+
#: lib/wfScanEngine.php:1115
|
6657 |
msgid "Done file contents scan"
|
6658 |
msgstr ""
|
6659 |
|
6660 |
#. translators: Scan result description.
|
6661 |
+
#: lib/wfScanEngine.php:1123
|
6662 |
+
#: lib/wfScanEngine.php:2304
|
6663 |
+
#: lib/wfScanEngine.php:2346
|
6664 |
msgid "Adding issue: %s"
|
6665 |
msgstr ""
|
6666 |
|
6667 |
+
#: lib/wfScanEngine.php:1156
|
6668 |
msgid "Scanning for publicly accessible quarantined files"
|
6669 |
msgstr ""
|
6670 |
|
6671 |
#. translators: File path.
|
6672 |
+
#: lib/wfScanEngine.php:1161
|
6673 |
msgid "Testing accessibility of: %s"
|
6674 |
msgstr ""
|
6675 |
|
6676 |
#. translators: File path.
|
6677 |
+
#: lib/wfScanEngine.php:1170
|
6678 |
msgid "Publicly accessible quarantined file found: %s"
|
6679 |
msgstr ""
|
6680 |
|
6681 |
#. translators: URL to publicly accessible file.
|
6682 |
+
#: lib/wfScanEngine.php:1173
|
6683 |
msgid "<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%1$s<span class=\"screen-reader-text\"> ("
|
6684 |
msgstr ""
|
6685 |
|
6686 |
+
#: lib/wfScanEngine.php:1197
|
6687 |
msgid "Scanning posts for URLs on a domain blocklist"
|
6688 |
msgstr ""
|
6689 |
|
6690 |
#. translators: Number of posts left to scan.
|
6691 |
+
#: lib/wfScanEngine.php:1220
|
6692 |
msgid "Scanning posts with %d left to scan."
|
6693 |
msgstr ""
|
6694 |
|
6695 |
+
#: lib/wfScanEngine.php:1242
|
6696 |
msgid "Post title contains suspicious code"
|
6697 |
msgstr ""
|
6698 |
|
6699 |
+
#: lib/wfScanEngine.php:1243
|
6700 |
msgid "This post contains code that is suspicious. Please check the title of the post and confirm that the code in the title is not malicious."
|
6701 |
msgstr ""
|
6702 |
|
6703 |
+
#: lib/wfScanEngine.php:1266
|
6704 |
msgid "Examining URLs found in posts we scanned for dangerous websites"
|
6705 |
msgstr ""
|
6706 |
|
6707 |
+
#: lib/wfScanEngine.php:1268
|
6708 |
+
#: lib/wfScanEngine.php:2267
|
6709 |
msgid "Done examining URLs"
|
6710 |
msgstr ""
|
6711 |
|
6712 |
#. translators: 1. WordPress Post type. 2. URL.
|
6713 |
+
#: lib/wfScanEngine.php:1304
|
6714 |
+
#: lib/wfScanEngine.php:1324
|
6715 |
msgid "%1$s contains a suspected malware URL: %2$s"
|
6716 |
msgstr ""
|
6717 |
|
6718 |
#. translators: 1. WordPress Post type. 2. URL. 3. URL.
|
6719 |
#. translators: 1. WordPress post type. 2. URL. 3. URL.
|
6720 |
+
#: lib/wfScanEngine.php:1310
|
6721 |
+
#: lib/wfScanEngine.php:1453
|
6722 |
msgid "This %1$s contains a suspected malware URL listed on Google's list of malware sites. The URL is: %2$s - More info available at <a href=\"http://safebrowsing.clients.google.com/safebrowsing/diagnostic?site=%3$s&client=googlechrome&hl=en-US\" target=\"_blank\" rel=\"noopener noreferrer\">Google Safe Browsing diagnostic page<span class=\"screen-reader-text\"> ("
|
6723 |
msgstr ""
|
6724 |
|
6725 |
#. translators: 1. WordPress Post type. 2. URL.
|
6726 |
+
#: lib/wfScanEngine.php:1316
|
6727 |
msgid "%1$s contains a suspected phishing site URL: %2$s"
|
6728 |
msgstr ""
|
6729 |
|
6730 |
#. translators: 1. WordPress Post type. 2. URL.
|
6731 |
#. translators: 1. WordPress post type. 2. URL.
|
6732 |
+
#: lib/wfScanEngine.php:1319
|
6733 |
+
#: lib/wfScanEngine.php:1462
|
6734 |
msgid "This %1$s contains a URL that is a suspected phishing site that is currently listed on Google's list of known phishing sites. The URL is: %2$s"
|
6735 |
msgstr ""
|
6736 |
|
6737 |
#. translators: 1. WordPress Post type. 2. URL.
|
6738 |
#. translators: 1. WordPress post type. 2. URL.
|
6739 |
+
#: lib/wfScanEngine.php:1327
|
6740 |
+
#: lib/wfScanEngine.php:1470
|
6741 |
msgid "This %1$s contains a URL that is currently listed on Wordfence's domain blocklist. The URL is: %2$s"
|
6742 |
msgstr ""
|
6743 |
|
6744 |
#. translators: Scan result description.
|
6745 |
+
#: lib/wfScanEngine.php:1336
|
6746 |
msgid "Adding issue: %1$s"
|
6747 |
msgstr ""
|
6748 |
|
6749 |
+
#: lib/wfScanEngine.php:1372
|
6750 |
msgid "Scanning comments for URLs on a domain blocklist"
|
6751 |
msgstr ""
|
6752 |
|
6753 |
#. translators: Number of comments left to scan.
|
6754 |
+
#: lib/wfScanEngine.php:1396
|
6755 |
msgid "Scanning comments with %d left to scan."
|
6756 |
msgstr ""
|
6757 |
|
6758 |
#. translators: 1. WordPress post type. 2. WordPress author username.
|
6759 |
+
#: lib/wfScanEngine.php:1450
|
6760 |
msgid "%1$s with author %2$s contains a suspected malware URL."
|
6761 |
msgstr ""
|
6762 |
|
6763 |
#. translators: WordPress post type.
|
6764 |
+
#: lib/wfScanEngine.php:1459
|
6765 |
msgid "%s contains a suspected phishing site URL."
|
6766 |
msgstr ""
|
6767 |
|
6768 |
#. translators: URL.
|
6769 |
+
#: lib/wfScanEngine.php:1467
|
6770 |
msgid "%s contains a suspected malware URL."
|
6771 |
msgstr ""
|
6772 |
|
6773 |
#. translators: WordPress username.
|
6774 |
+
#: lib/wfScanEngine.php:1515
|
6775 |
msgid "Author: %s"
|
6776 |
msgstr ""
|
6777 |
|
6778 |
#. translators: Email address.
|
6779 |
+
#: lib/wfScanEngine.php:1518
|
6780 |
msgid "Email: %s"
|
6781 |
msgstr ""
|
6782 |
|
6783 |
#. translators: IP address.
|
6784 |
+
#: lib/wfScanEngine.php:1520
|
6785 |
msgid "Source IP: %s"
|
6786 |
msgstr ""
|
6787 |
|
6788 |
#. translators: Comment description.
|
6789 |
+
#: lib/wfScanEngine.php:1521
|
6790 |
msgid "Scanning comment with %s"
|
6791 |
msgstr ""
|
6792 |
|
6793 |
#. translators: Comment description.
|
6794 |
+
#: lib/wfScanEngine.php:1534
|
6795 |
+
#: lib/wfScanEngine.php:1540
|
6796 |
msgid "Marking comment as spam for containing a malware URL. Comment has %s"
|
6797 |
msgstr ""
|
6798 |
|
6799 |
#. translators: Comment description.
|
6800 |
+
#: lib/wfScanEngine.php:1537
|
6801 |
msgid "Marking comment as spam for containing a phishing URL. Comment has %s"
|
6802 |
msgstr ""
|
6803 |
|
6804 |
#. translators: Comment description.
|
6805 |
+
#: lib/wfScanEngine.php:1547
|
6806 |
msgid "Scanned comment with %s"
|
6807 |
msgstr ""
|
6808 |
|
6809 |
+
#: lib/wfScanEngine.php:1598
|
6810 |
msgid "Scanning for weak passwords"
|
6811 |
msgstr ""
|
6812 |
|
6813 |
+
#: lib/wfScanEngine.php:1609
|
6814 |
msgid "We were unable to generate the user list for your password check."
|
6815 |
msgstr ""
|
6816 |
|
6817 |
#. translators: Number of users.
|
6818 |
+
#: lib/wfScanEngine.php:1625
|
6819 |
msgid "Starting password strength check on %d user."
|
6820 |
msgid_plural "Starting password strength check on %d users."
|
6821 |
msgstr[0] ""
|
6822 |
msgstr[1] ""
|
6823 |
|
6824 |
#. translators: Number of users.
|
6825 |
+
#: lib/wfScanEngine.php:1634
|
6826 |
msgid "Total of %d users left to process in password strength check."
|
6827 |
msgid_plural "Total of %d users left to process in password strength check."
|
6828 |
msgstr[0] ""
|
6829 |
msgstr[1] ""
|
6830 |
|
6831 |
#. translators: WordPress user ID.
|
6832 |
+
#: lib/wfScanEngine.php:1669
|
6833 |
msgid "Could not get username for user with ID %d when checking password strength."
|
6834 |
msgstr ""
|
6835 |
|
6836 |
#. translators: 1. WordPress username. 2. WordPress user ID.
|
6837 |
+
#: lib/wfScanEngine.php:1675
|
6838 |
msgid "Checking password strength of user '%1$s' with ID %2$d"
|
6839 |
msgstr ""
|
6840 |
|
6841 |
#. translators: 1. WordPress username. 2. WordPress capability.
|
6842 |
+
#: lib/wfScanEngine.php:1683
|
6843 |
msgid "User \"%1$s\" with \"%2$s\" access has an easy password."
|
6844 |
msgstr ""
|
6845 |
|
6846 |
#. translators: WordPress capability.
|
6847 |
+
#: lib/wfScanEngine.php:1689
|
6848 |
msgid "A user with the a role of '%s' has a password that is easy to guess. Please change this password yourself or ask the user to change it."
|
6849 |
msgstr ""
|
6850 |
|
6851 |
#. translators: WordPress username.
|
6852 |
+
#: lib/wfScanEngine.php:1697
|
6853 |
msgid "User \"%s\" with 'subscriber' access has a very easy password."
|
6854 |
msgstr ""
|
6855 |
|
6856 |
+
#: lib/wfScanEngine.php:1698
|
6857 |
msgid "A user with 'subscriber' access has a password that is very easy to guess. Please either change it or ask the user to change their password."
|
6858 |
msgstr ""
|
6859 |
|
6860 |
#. translators: Scan result description.
|
6861 |
+
#: lib/wfScanEngine.php:1705
|
6862 |
msgid "Adding issue %s"
|
6863 |
msgstr ""
|
6864 |
|
6865 |
#. translators: WordPress username.
|
6866 |
+
#: lib/wfScanEngine.php:1722
|
6867 |
msgid "Completed checking password strength of user '%s'"
|
6868 |
msgstr ""
|
6869 |
|
6870 |
+
#: lib/wfScanEngine.php:1755
|
6871 |
msgid "Scanning to check available disk space"
|
6872 |
msgstr ""
|
6873 |
|
6874 |
+
#: lib/wfScanEngine.php:1762
|
6875 |
msgid "Unable to access available disk space information"
|
6876 |
msgstr ""
|
6877 |
|
6878 |
#. translators: 1. Number of bytes. 2. Number of bytes.
|
6879 |
+
#: lib/wfScanEngine.php:1771
|
6880 |
msgid "Total disk space: %1$s -- Free disk space: %2$s"
|
6881 |
msgstr ""
|
6882 |
|
6883 |
#. translators: Number of bytes.
|
6884 |
+
#: lib/wfScanEngine.php:1776
|
6885 |
msgid "The disk has %s MB available"
|
6886 |
msgstr ""
|
6887 |
|
6888 |
#. translators: Number of bytes.
|
6889 |
+
#: lib/wfScanEngine.php:1791
|
6890 |
msgid "You have %s disk space remaining"
|
6891 |
msgstr ""
|
6892 |
|
6893 |
#. translators: Number of bytes.
|
6894 |
+
#: lib/wfScanEngine.php:1792
|
6895 |
msgid "You only have %s of your disk space remaining. Please free up disk space or your website may stop serving requests."
|
6896 |
msgstr ""
|
6897 |
|
6898 |
+
#: lib/wfScanEngine.php:1805
|
6899 |
msgid "Checking Web Application Firewall status"
|
6900 |
msgstr ""
|
6901 |
|
6902 |
+
#: lib/wfScanEngine.php:1816
|
6903 |
msgid "Web Application Firewall is disabled"
|
6904 |
msgstr ""
|
6905 |
|
6906 |
#. translators: Support URL.
|
6907 |
+
#: lib/wfScanEngine.php:1817
|
6908 |
msgid "Wordfence's Web Application Firewall has been unexpectedly disabled. If you see a notice at the top of the Wordfence admin pages that says \"The Wordfence Web Application Firewall cannot run,\" click the link in that message to rebuild the configuration. If this does not work, you may need to fix file permissions. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">More Details<span class=\"screen-reader-text\"> ("
|
6909 |
msgstr ""
|
6910 |
|
6911 |
+
#: lib/wfScanEngine.php:1832
|
6912 |
msgid "Scanning for old themes, plugins and core files"
|
6913 |
msgstr ""
|
6914 |
|
6915 |
+
#: lib/wfScanEngine.php:1918
|
6916 |
msgid "Your WordPress version is out of date"
|
6917 |
msgstr ""
|
6918 |
|
6919 |
#. translators: Software version.
|
6920 |
+
#: lib/wfScanEngine.php:1919
|
6921 |
msgid "WordPress version %s is now available. Please upgrade immediately to get the latest security updates from WordPress."
|
6922 |
msgstr ""
|
6923 |
|
6924 |
#. translators: 1. Plugin name. 2. Software version. 3. Software version.
|
6925 |
+
#: lib/wfScanEngine.php:1946
|
6926 |
msgid "The Plugin \"%1$s\" needs an upgrade (%2$s -> %3$s)."
|
6927 |
msgstr ""
|
6928 |
|
6929 |
#. translators: Theme name.
|
6930 |
+
#: lib/wfScanEngine.php:1953
|
6931 |
+
#: lib/wfScanEngine.php:1987
|
6932 |
msgid "You need to upgrade \"%s\" to the newest version to ensure you have any security fixes the developer has released."
|
6933 |
msgstr ""
|
6934 |
|
6935 |
#. translators: 1. Theme name. 2. Software version. 3. Software version.
|
6936 |
+
#: lib/wfScanEngine.php:1980
|
6937 |
msgid "The Theme \"%1$s\" needs an upgrade (%2$s -> %3$s)."
|
6938 |
msgstr ""
|
6939 |
|
6940 |
#. translators: 1. Plugin name. 2. Software version. 3. Software version.
|
6941 |
+
#: lib/wfScanEngine.php:2031
|
6942 |
msgid "The Plugin \"%1$s\" appears to be abandoned (updated %2$s, tested to WP %3$s)."
|
6943 |
msgstr ""
|
6944 |
|
6945 |
#. translators: 1. Plugin name. 2. Software version.
|
6946 |
+
#: lib/wfScanEngine.php:2038
|
6947 |
msgid "It was last updated %1$s ago and tested up to WordPress %2$s."
|
6948 |
msgstr ""
|
6949 |
|
6950 |
#. translators: 1. Plugin name. 2. Software version.
|
6951 |
+
#: lib/wfScanEngine.php:2045
|
6952 |
msgid "The Plugin \"%1$s\" appears to be abandoned (updated %2$s)."
|
6953 |
msgstr ""
|
6954 |
|
6955 |
#. translators: Time duration.
|
6956 |
+
#: lib/wfScanEngine.php:2051
|
6957 |
msgid "It was last updated %s ago."
|
6958 |
msgstr ""
|
6959 |
|
6960 |
+
#: lib/wfScanEngine.php:2057
|
6961 |
+
#: lib/wfScanEngine.php:2096
|
6962 |
msgid "It has unpatched security issues and may have compatibility problems with the current version of WordPress."
|
6963 |
msgstr ""
|
6964 |
|
6965 |
+
#: lib/wfScanEngine.php:2059
|
6966 |
+
#: lib/wfScanEngine.php:2098
|
6967 |
msgid "Plugins can be removed from wordpress.org for various reasons. This can include benign issues like a plugin author discontinuing development or moving the plugin distribution to their own site, but some might also be due to security issues. In any case, future updates may or may not be available, so it is worth investigating the cause and deciding whether to temporarily or permanently replace or remove the plugin."
|
6968 |
msgstr ""
|
6969 |
|
6970 |
#. translators: Support URL.
|
6971 |
+
#: lib/wfScanEngine.php:2063
|
6972 |
+
#: lib/wfScanEngine.php:2102
|
6973 |
+
#: lib/wfScanEngine.php:2302
|
6974 |
+
#: lib/wfScanEngine.php:2344
|
6975 |
msgid "<a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Get more information.<span class=\"screen-reader-text\"> ("
|
6976 |
msgstr ""
|
6977 |
|
6978 |
#. translators: Plugin name.
|
6979 |
+
#: lib/wfScanEngine.php:2094
|
6980 |
msgid "The Plugin \"%s\" has been removed from wordpress.org."
|
6981 |
msgstr ""
|
6982 |
|
6983 |
+
#: lib/wfScanEngine.php:2121
|
6984 |
+
msgid "The Plugin \"%s\" has a security vulnerability."
|
6985 |
+
msgstr ""
|
6986 |
+
|
6987 |
+
#: lib/wfScanEngine.php:2124
|
6988 |
+
msgid "To protect your site from this vulnerability, the safest option is to deactivate and completely remove \"%s\" until a patched version is available. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Get more information.<span class=\"screen-reader-text\"> (opens in new tab)</span></a>"
|
6989 |
+
msgstr ""
|
6990 |
+
|
6991 |
+
#: lib/wfScanEngine.php:2159
|
6992 |
msgid "Scanning for admin users not created through WordPress"
|
6993 |
msgstr ""
|
6994 |
|
6995 |
#. translators: WordPress username.
|
6996 |
+
#: lib/wfScanEngine.php:2181
|
6997 |
msgid "An admin user with the username %s was created outside of WordPress."
|
6998 |
msgstr ""
|
6999 |
|
7000 |
#. translators: WordPress username.
|
7001 |
+
#: lib/wfScanEngine.php:2182
|
7002 |
msgid "An admin user with the username %s was created outside of WordPress. It's possible a plugin could have created the account, but if you do not recognize the user, we suggest you remove it."
|
7003 |
msgstr ""
|
7004 |
|
7005 |
#. translators: WordPress username.
|
7006 |
+
#: lib/wfScanEngine.php:2208
|
7007 |
msgid "An admin user with a suspicious username %s was found."
|
7008 |
msgstr ""
|
7009 |
|
7010 |
#. translators: WordPress username.
|
7011 |
+
#: lib/wfScanEngine.php:2209
|
7012 |
msgid "An admin user with a suspicious username %s was found. Administrators accounts with usernames similar to this are commonly seen created by hackers. It's possible a plugin could have created the account, but if you do not recognize the user, we suggest you remove it."
|
7013 |
msgstr ""
|
7014 |
|
7015 |
+
#: lib/wfScanEngine.php:2230
|
7016 |
msgid "Scanning for suspicious site options"
|
7017 |
msgstr ""
|
7018 |
|
7019 |
+
#: lib/wfScanEngine.php:2265
|
7020 |
msgid "Examining URLs found in the options we scanned for dangerous websites"
|
7021 |
msgstr ""
|
7022 |
|
7023 |
#. translators: URL.
|
7024 |
+
#: lib/wfScanEngine.php:2289
|
7025 |
+
#: lib/wfScanEngine.php:2295
|
7026 |
msgid "Option contains a suspected malware URL: %s"
|
7027 |
msgstr ""
|
7028 |
|
7029 |
#. translators: URL.
|
7030 |
+
#: lib/wfScanEngine.php:2290
|
7031 |
msgid "This option contains a suspected malware URL listed on Google's list of malware sites. It may indicate your site is infected with malware. The URL is: %s"
|
7032 |
msgstr ""
|
7033 |
|
7034 |
#. translators: URL.
|
7035 |
+
#: lib/wfScanEngine.php:2292
|
7036 |
msgid "Option contains a suspected phishing site URL: %s"
|
7037 |
msgstr ""
|
7038 |
|
7039 |
#. translators: URL.
|
7040 |
+
#: lib/wfScanEngine.php:2293
|
7041 |
msgid "This option contains a URL that is a suspected phishing site that is currently listed on Google's list of known phishing sites. It may indicate your site is infected with malware. The URL is: %s"
|
7042 |
msgstr ""
|
7043 |
|
7044 |
#. translators: URL.
|
7045 |
+
#: lib/wfScanEngine.php:2296
|
7046 |
msgid "This option contains a URL that is currently listed on Wordfence's domain blocklist. It may indicate your site is infected with malware. The URL is: %s"
|
7047 |
msgstr ""
|
7048 |
|
7049 |
+
#: lib/wfScanEngine.php:2336
|
7050 |
msgid "Checking for future GeoIP support"
|
7051 |
msgstr ""
|
7052 |
|
7053 |
+
#: lib/wfScanEngine.php:2341
|
7054 |
msgid "PHP Update Needed for Country Blocking"
|
7055 |
msgstr ""
|
7056 |
|
7057 |
#. translators: Software version.
|
7058 |
+
#: lib/wfScanEngine.php:2342
|
7059 |
msgid "The GeoIP database that is required for country blocking has been updated to a new format. This new format requires sites to run PHP 5.4 or newer, and this site is on PHP %s. To ensure country blocking continues functioning, please update PHP."
|
7060 |
msgstr ""
|
7061 |
|
7062 |
+
#: lib/wfScanEngine.php:2392
|
7063 |
msgid "Previous scan was stopped successfully."
|
7064 |
msgstr ""
|
7065 |
|
7066 |
+
#: lib/wfScanEngine.php:2393
|
7067 |
msgid "Scan was stopped on administrator request."
|
7068 |
msgstr ""
|
7069 |
|
7070 |
+
#: lib/wfScanEngine.php:2409
|
7071 |
msgid "Entering start scan routine"
|
7072 |
msgstr ""
|
7073 |
|
7074 |
+
#: lib/wfScanEngine.php:2412
|
7075 |
msgid "A scan is already running. Use the stop scan button if you would like to terminate the current scan."
|
7076 |
msgstr ""
|
7077 |
|
7078 |
+
#: lib/wfScanEngine.php:2427
|
7079 |
+
msgid "Cached result for scan start test: %s"
|
7080 |
+
msgstr ""
|
7081 |
+
|
7082 |
+
#. translators: Scan start test result data.
|
7083 |
+
#: lib/wfScanEngine.php:2443
|
7084 |
msgid "Test result of scan start URL fetch: %s"
|
7085 |
msgstr ""
|
7086 |
|
7087 |
#. translators: WordPress admin panel URL.
|
7088 |
+
#: lib/wfScanEngine.php:2456
|
7089 |
msgid "Starting cron with normal ajax at URL %s"
|
7090 |
msgstr ""
|
7091 |
|
7092 |
#. translators: Error message.
|
7093 |
#. translators: WordPress admin panel URL.
|
7094 |
+
#: lib/wfScanEngine.php:2480
|
7095 |
+
#: lib/wfScanEngine.php:2515
|
7096 |
msgid "There was an error starting the scan: %s."
|
7097 |
msgstr ""
|
7098 |
|
7099 |
+
#: lib/wfScanEngine.php:2482
|
7100 |
+
#: lib/wfScanEngine.php:2517
|
7101 |
msgid "There was an unknown error starting the scan."
|
7102 |
msgstr ""
|
7103 |
|
7104 |
+
#: lib/wfScanEngine.php:2489
|
7105 |
+
#: lib/wfScanEngine.php:2523
|
7106 |
msgid "Scan process ended after forking."
|
7107 |
msgstr ""
|
7108 |
|
7109 |
#. translators: WordPress admin panel URL.
|
7110 |
+
#: lib/wfScanEngine.php:2493
|
7111 |
msgid "Starting cron via proxy at URL %s"
|
7112 |
msgstr ""
|
7113 |
|
7114 |
#. translators: Time in seconds.
|
7115 |
+
#: lib/wfScanEngine.php:2569
|
7116 |
msgid "Got value from wf config maxExecutionTime: %s"
|
7117 |
msgstr ""
|
7118 |
|
7119 |
#. translators: Time in seconds.
|
7120 |
+
#: lib/wfScanEngine.php:2573
|
7121 |
msgid "getMaxExecutionTime() returning config value: %s"
|
7122 |
msgstr ""
|
7123 |
|
7124 |
#. translators: PHP ini value.
|
7125 |
+
#: lib/wfScanEngine.php:2580
|
7126 |
msgid "Got max_execution_time value from ini: %s"
|
7127 |
msgstr ""
|
7128 |
|
7129 |
#. translators: 1. PHP ini setting. 2. Time in seconds.
|
7130 |
+
#: lib/wfScanEngine.php:2587
|
7131 |
msgid "ini value of %1$d is higher than value for WORDFENCE_SCAN_MAX_INI_EXECUTION_TIME (%2$d), reducing"
|
7132 |
msgstr ""
|
7133 |
|
7134 |
#. translators: PHP ini setting.
|
7135 |
+
#: lib/wfScanEngine.php:2597
|
7136 |
msgid "getMaxExecutionTime() returning half ini value: %d"
|
7137 |
msgstr ""
|
7138 |
|
7139 |
+
#: lib/wfScanEngine.php:2603
|
7140 |
msgid "getMaxExecutionTime() returning default of: 15"
|
7141 |
msgstr ""
|
7142 |
|
7143 |
#. translators: 1. HTTP status code.
|
7144 |
+
#: lib/wfScanEngine.php:2805
|
7145 |
msgid "Got error response from Wordfence servers: %s"
|
7146 |
msgstr ""
|
7147 |
|
7148 |
+
#: lib/wfScanEngine.php:2809
|
7149 |
msgid "Invalid response from Wordfence servers."
|
7150 |
msgstr ""
|
7151 |
|
7152 |
+
#: lib/wfScanMonitor.php:78
|
7153 |
+
msgid "Attempting to resume scan stage (%d attempt(s) remaining)..."
|
7154 |
+
msgstr ""
|
7155 |
+
|
7156 |
#: lib/wfUnlockMsg.php:2
|
7157 |
msgid "If you are a WordPress user with administrative privileges on this site please enter your email in the box below and click "Send". You will then receive an email that helps you regain access."
|
7158 |
msgstr ""
|
7228 |
msgstr ""
|
7229 |
|
7230 |
#. translators: Error message.
|
7231 |
+
#: lib/wfUtils.php:1453
|
7232 |
msgid "Call to Wordfence API to resolve IPs failed: %s"
|
7233 |
msgstr ""
|
7234 |
|
7312 |
msgid "File last modified:"
|
7313 |
msgstr ""
|
7314 |
|
7315 |
+
#: lib/wordfenceClass.php:183
|
7316 |
msgid ""
|
7317 |
"To ensure uninterrupted Premium Wordfence protection on your site,\n"
|
7318 |
"please renew your license by visiting http://www.wordfence.com/ Sign in, go to your dashboard,\n"
|
7319 |
"select the license about to expire and click the button to renew that license."
|
7320 |
msgstr ""
|
7321 |
|
7322 |
+
#: lib/wordfenceClass.php:214
|
7323 |
msgid "Your Premium Wordfence License is set to auto-renew in 10 days."
|
7324 |
msgstr ""
|
7325 |
|
7326 |
+
#: lib/wordfenceClass.php:215
|
7327 |
msgid "To update your license settings please visit http://www.wordfence.com/zz9/dashboard"
|
7328 |
msgstr ""
|
7329 |
|
7330 |
+
#: lib/wordfenceClass.php:227
|
7331 |
msgid "Your Premium Wordfence License expires in less than 2 weeks."
|
7332 |
msgstr ""
|
7333 |
|
7334 |
+
#: lib/wordfenceClass.php:230
|
7335 |
msgid "Your Premium Wordfence License expires in less than a week."
|
7336 |
msgstr ""
|
7337 |
|
7338 |
+
#: lib/wordfenceClass.php:233
|
7339 |
msgid "Your Premium Wordfence License expires in 2 days."
|
7340 |
msgstr ""
|
7341 |
|
7342 |
+
#: lib/wordfenceClass.php:236
|
7343 |
msgid "Your Premium Wordfence License expires in 1 day."
|
7344 |
msgstr ""
|
7345 |
|
7346 |
+
#: lib/wordfenceClass.php:240
|
7347 |
msgid "Your Wordfence Premium License has Expired!"
|
7348 |
msgstr ""
|
7349 |
|
7350 |
+
#: lib/wordfenceClass.php:272
|
7351 |
msgid "The Wordfence Premium License in use on this site has been removed from your account."
|
7352 |
msgstr ""
|
7353 |
|
7354 |
+
#: lib/wordfenceClass.php:272
|
7355 |
msgid "The license you were using has been removed from your account. Please reach out to billing@wordfence.com or create a Premium support case at https://support.wordfence.com/support/tickets for more information. Our staff is happy to help."
|
7356 |
msgstr ""
|
7357 |
|
7358 |
#. translators: Wordfence license key.
|
7359 |
+
#: lib/wordfenceClass.php:282
|
7360 |
msgid "Could not verify Wordfence License: %s"
|
7361 |
msgstr ""
|
7362 |
|
7363 |
#. translators: WordPress version.
|
7364 |
+
#: lib/wordfenceClass.php:364
|
7365 |
msgid "WordPress (v%s)"
|
7366 |
msgstr ""
|
7367 |
|
7368 |
#. translators: Number of plugins.
|
7369 |
+
#: lib/wordfenceClass.php:368
|
7370 |
msgid "%d plugin"
|
7371 |
msgid_plural "%d plugins"
|
7372 |
msgstr[0] ""
|
7373 |
msgstr[1] ""
|
7374 |
|
7375 |
#. translators: Number of themes.
|
7376 |
+
#: lib/wordfenceClass.php:373
|
7377 |
msgid "%d theme"
|
7378 |
msgid_plural "%d themes"
|
7379 |
msgstr[0] ""
|
7380 |
msgstr[1] ""
|
7381 |
|
7382 |
+
#: lib/wordfenceClass.php:377
|
7383 |
msgid "An update is available for "
|
7384 |
msgid_plural "Updates are available for "
|
7385 |
msgstr[0] ""
|
7386 |
msgstr[1] ""
|
7387 |
|
7388 |
+
#: lib/wordfenceClass.php:382
|
7389 |
msgid "and "
|
7390 |
msgstr ""
|
7391 |
|
7392 |
#. translators: Wordfence version.
|
7393 |
+
#: lib/wordfenceClass.php:421
|
7394 |
msgid "`runInstall` called with previous version = %s"
|
7395 |
msgstr ""
|
7396 |
|
7397 |
+
#: lib/wordfenceClass.php:473
|
7398 |
+
#: lib/wordfenceClass.php:4049
|
7399 |
msgid "Could not understand the response we received from the Wordfence servers when applying for a free license key."
|
7400 |
msgstr ""
|
7401 |
|
7402 |
+
#: lib/wordfenceClass.php:837
|
7403 |
msgid "Automatically generated from previous country blocking settings"
|
7404 |
msgstr ""
|
7405 |
|
7406 |
+
#: lib/wordfenceClass.php:1284
|
7407 |
#: views/user/disabled-application-passwords.php:15
|
7408 |
msgid "Application passwords have been disabled by Wordfence."
|
7409 |
msgstr ""
|
7410 |
|
7411 |
+
#: lib/wordfenceClass.php:1402
|
7412 |
msgid "Upgrade To Premium"
|
7413 |
msgstr ""
|
7414 |
|
7415 |
+
#: lib/wordfenceClass.php:1421
|
7416 |
msgid "wp_mail from address is incomplete, attempting to fix"
|
7417 |
msgstr ""
|
7418 |
|
7419 |
#. translators: Email address.
|
7420 |
+
#: lib/wordfenceClass.php:1431
|
7421 |
msgid "Fixing wp_mail from address: %s"
|
7422 |
msgstr ""
|
7423 |
|
7424 |
+
#: lib/wordfenceClass.php:1530
|
7425 |
msgid "You appear to have logged out or you are not an admin. Please sign-out and sign-in again."
|
7426 |
msgstr ""
|
7427 |
|
7428 |
+
#: lib/wordfenceClass.php:1535
|
7429 |
msgid "Your browser sent an invalid security token to Wordfence. Please try reloading this page or signing out and in again."
|
7430 |
msgstr ""
|
7431 |
|
7432 |
+
#: lib/wordfenceClass.php:1541
|
7433 |
msgid "Wordfence encountered an internal error executing that request."
|
7434 |
msgstr ""
|
7435 |
|
7436 |
#. translators: Error message.
|
7437 |
+
#: lib/wordfenceClass.php:1647
|
7438 |
msgid "2FA Migration Error: %s"
|
7439 |
msgstr ""
|
7440 |
|
7441 |
+
#: lib/wordfenceClass.php:1687
|
7442 |
msgid "Please choose a stronger password. Use at least 12 characters, and include numbers, symbols, and a mix of upper and lowercase letters. Do not use common words or sequences of letters or numbers."
|
7443 |
msgstr ""
|
7444 |
|
7445 |
+
#: lib/wordfenceClass.php:1693
|
7446 |
msgid "Passwords containing a space followed by \"wf\" without quotes are not allowed."
|
7447 |
msgstr ""
|
7448 |
|
7449 |
#. translators: Support URL.
|
7450 |
+
#: lib/wordfenceClass.php:1708
|
7451 |
msgid "Please choose a different password. The password you are using exists on lists of passwords leaked in data breaches. Attackers use such lists to break into sites and install malicious code. <a href=\"%s\">Learn More</a>"
|
7452 |
msgstr ""
|
7453 |
|
7454 |
#. translators: 1. Password reset limit (number). 2. WordPress username.
|
7455 |
+
#: lib/wordfenceClass.php:1830
|
7456 |
msgid "Exceeded the maximum number of tries to recover their password which is set at: %1$s. The last username or email they entered before getting locked out was: '%2$s'"
|
7457 |
msgstr ""
|
7458 |
|
7459 |
+
#: lib/wordfenceClass.php:1878
|
7460 |
+
#: lib/wordfenceClass.php:2061
|
7461 |
msgid "Sorry but your browser sent an invalid security token when trying to use this form."
|
7462 |
msgstr ""
|
7463 |
|
7464 |
+
#: lib/wordfenceClass.php:1883
|
7465 |
msgid "Please wait 3 minutes and try again"
|
7466 |
msgstr ""
|
7467 |
|
7468 |
+
#: lib/wordfenceClass.php:1884
|
7469 |
msgid "You have used this form too much. Please wait 3 minutes and try again."
|
7470 |
msgstr ""
|
7471 |
|
7472 |
+
#: lib/wordfenceClass.php:1923
|
7473 |
msgid "Unlock email requested"
|
7474 |
msgstr ""
|
7475 |
|
7476 |
+
#: lib/wordfenceClass.php:1925
|
7477 |
msgid "Your request was received"
|
7478 |
msgstr ""
|
7479 |
|
7480 |
#. translators: Email address.
|
7481 |
+
#: lib/wordfenceClass.php:1926
|
7482 |
msgid "We received a request to email \"%s\" instructions to unlock their access. If that is the email address of a site administrator or someone on the Wordfence alert list, they have been emailed instructions on how to regain access to this system. The instructions we sent will expire 30 minutes from now."
|
7483 |
msgstr ""
|
7484 |
|
7485 |
+
#: lib/wordfenceClass.php:1932
|
7486 |
msgid "Invalid key provided for authentication."
|
7487 |
msgstr ""
|
7488 |
|
7489 |
+
#: lib/wordfenceClass.php:1943
|
7490 |
msgid "Request received via unlock email link to unblock all IPs."
|
7491 |
msgstr ""
|
7492 |
|
7493 |
+
#: lib/wordfenceClass.php:1952
|
7494 |
msgid "Request received via unlock email link to unblock all IPs via disabling firewall rules."
|
7495 |
msgstr ""
|
7496 |
|
7497 |
+
#: lib/wordfenceClass.php:1960
|
7498 |
msgid "Invalid function specified. Please check the link we emailed you and make sure it was not cut-off by your email reader."
|
7499 |
msgstr ""
|
7500 |
|
7501 |
+
#: lib/wordfenceClass.php:2005
|
7502 |
msgid "Unsubscribe Requested"
|
7503 |
msgstr ""
|
7504 |
|
7505 |
+
#: lib/wordfenceClass.php:2067
|
7506 |
msgid "An error occurred while saving the license."
|
7507 |
msgstr ""
|
7508 |
|
7509 |
#. translators: Error message.
|
7510 |
+
#: lib/wordfenceClass.php:2069
|
7511 |
+
#: lib/wordfenceClass.php:2089
|
7512 |
msgid "An error occurred while saving the license: %s"
|
7513 |
msgstr ""
|
7514 |
|
7515 |
+
#: lib/wordfenceClass.php:2105
|
7516 |
msgid "Rescheduled missing daily cron"
|
7517 |
msgstr ""
|
7518 |
|
7519 |
+
#: lib/wordfenceClass.php:2110
|
7520 |
msgid "Rescheduled missing hourly cron"
|
7521 |
msgstr ""
|
7522 |
|
7523 |
+
#: lib/wordfenceClass.php:2412
|
7524 |
+
#: lib/wordfenceClass.php:2416
|
7525 |
msgid "Accessed a banned URL"
|
7526 |
msgstr ""
|
7527 |
|
7528 |
+
#: lib/wordfenceClass.php:2423
|
7529 |
+
#: lib/wordfenceClass.php:2427
|
7530 |
msgid "POST received with blank user-agent and referer"
|
7531 |
msgstr ""
|
7532 |
|
7533 |
+
#: lib/wordfenceClass.php:2561
|
7534 |
msgid "<strong>ERROR</strong>: You can't register using that username"
|
7535 |
msgstr ""
|
7536 |
|
7537 |
+
#: lib/wordfenceClass.php:2601
|
7538 |
msgid "Sorry, you are not allowed to list users."
|
7539 |
msgstr ""
|
7540 |
|
7541 |
+
#: lib/wordfenceClass.php:2608
|
7542 |
msgid "Invalid user ID."
|
7543 |
msgstr ""
|
7544 |
|
7545 |
+
#: lib/wordfenceClass.php:2752
|
7546 |
msgid "<strong>VERIFICATION FAILED</strong>: Two-factor authentication verification failed. Please try again."
|
7547 |
msgstr ""
|
7548 |
|
7549 |
#. translators: 1. WordPress username. 2. Password reset URL.
|
7550 |
#. translators: 1. WordPress username. 2. Reset password URL.
|
7551 |
+
#: lib/wordfenceClass.php:2759
|
7552 |
+
#: lib/wordfenceClass.php:3207
|
7553 |
msgid "<strong>ERROR</strong>: The username or password you entered is incorrect. <a href=\"%2$s\" title=\"Password Lost and Found\">Lost your password</a>?"
|
7554 |
msgstr ""
|
7555 |
|
7556 |
#. translators: 1. WordPress admin panel URL. 2. Support URL.
|
7557 |
+
#: lib/wordfenceClass.php:2769
|
7558 |
+
#: lib/wordfenceClass.php:2905
|
7559 |
msgid "<strong>WARNING: </strong>The password you are using exists on lists of passwords leaked in data breaches. Attackers use such lists to break into sites and install malicious code. Please <a href=\"%1$s\">change your password</a>. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span class=\"screen-reader-text\"> ("
|
7560 |
msgstr ""
|
7561 |
|
7562 |
+
#: lib/wordfenceClass.php:2793
|
7563 |
msgid "<strong>INVALID CODE</strong>: Please sign in again and add a space, the letters <code>wf</code>, and the code from your authenticator app to the end of your password (e.g., <code>wf123456</code>)."
|
7564 |
msgstr ""
|
7565 |
|
7566 |
+
#: lib/wordfenceClass.php:2797
|
7567 |
msgid "<strong>INVALID CODE</strong>: Please sign in again and add a space, the letters <code>wf</code>, and the code sent to your phone to the end of your password (e.g., <code>wf123456</code>)."
|
7568 |
msgstr ""
|
7569 |
|
7570 |
+
#: lib/wordfenceClass.php:2804
|
7571 |
+
#: lib/wordfenceClass.php:2855
|
7572 |
+
#: lib/wordfenceClass.php:2878
|
7573 |
msgid "<strong>AUTHENTICATION FAILURE</strong>: A temporary failure was encountered while trying to log in. Please try again."
|
7574 |
msgstr ""
|
7575 |
|
7576 |
+
#: lib/wordfenceClass.php:2814
|
7577 |
msgid "<strong>INVALID CODE</strong>: You need to enter the code generated by your authenticator app. The code should be a six digit number (e.g., 123456)."
|
7578 |
msgstr ""
|
7579 |
|
7580 |
+
#: lib/wordfenceClass.php:2818
|
7581 |
msgid "<strong>INVALID CODE</strong>: You need to enter the code generated sent to your phone. The code should be a six digit number (e.g., 123456)."
|
7582 |
msgstr ""
|
7583 |
|
7584 |
+
#: lib/wordfenceClass.php:2864
|
7585 |
msgid "<strong>CODE EXPIRED. CHECK YOUR PHONE:</strong> The code you entered has expired. Codes are only valid for 30 minutes for security reasons. We have sent you a new code. Please sign in using your username, password, and the new code we sent you."
|
7586 |
msgstr ""
|
7587 |
|
7588 |
+
#: lib/wordfenceClass.php:2887
|
7589 |
msgid "<strong>INVALID CODE</strong>: You need to enter your password and the code we sent to your phone. The code should start with 'wf' and should be four characters (e.g., wfAB12)."
|
7590 |
msgstr ""
|
7591 |
|
7592 |
+
#: lib/wordfenceClass.php:2938
|
7593 |
msgid "<strong>CODE REQUIRED</strong>: Please check your authenticator app for the current code. Enter it below to sign in."
|
7594 |
msgstr ""
|
7595 |
|
7596 |
+
#: lib/wordfenceClass.php:2943
|
7597 |
msgid "<strong>CODE REQUIRED</strong>: Please check your authenticator app for the current code. Please sign in again and add a space, the letters <code>wf</code>, and the code to the end of your password (e.g., <code>wf123456</code>)."
|
7598 |
msgstr ""
|
7599 |
|
7600 |
+
#: lib/wordfenceClass.php:2977
|
7601 |
+
#: lib/wordfenceClass.php:3034
|
7602 |
msgid "<strong>CHECK YOUR PHONE</strong>: A code has been sent to your phone and will arrive within 30 seconds. Enter it below to sign in."
|
7603 |
msgstr ""
|
7604 |
|
7605 |
+
#: lib/wordfenceClass.php:2982
|
7606 |
msgid "<strong>CHECK YOUR PHONE</strong>: A code has been sent to your phone and will arrive within 30 seconds. Please sign in again and add a space, the letters <code>wf</code>, and the code to the end of your password (e.g., <code>wf123456</code>)."
|
7607 |
msgstr ""
|
7608 |
|
7609 |
+
#: lib/wordfenceClass.php:3039
|
7610 |
msgid "<strong>CHECK YOUR PHONE</strong>: A code has been sent to your phone and will arrive within 30 seconds. Please sign in again and add a space and the code to the end of your password (e.g., <code>wfABCD</code>)."
|
7611 |
msgstr ""
|
7612 |
|
7613 |
#. translators: 1. Reset password URL. 2. Support URL.
|
7614 |
+
#: lib/wordfenceClass.php:3060
|
7615 |
+
#: lib/wordfenceClass.php:3096
|
7616 |
msgid "<strong>WARNING: </strong>Your login has been allowed because you have previously logged in from the same IP, but you will be blocked if your IP changes. The password you are using exists on lists of passwords leaked in data breaches. Attackers use such lists to break into sites and install malicious code. Please <a href=\"%1$s\">change your password</a>. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span class=\"screen-reader-text\"> ("
|
7617 |
msgstr ""
|
7618 |
|
7619 |
#. translators: 1. Reset password URL. 2. Support URL.
|
7620 |
+
#: lib/wordfenceClass.php:3077
|
7621 |
+
#: lib/wordfenceClass.php:3113
|
7622 |
msgid "<strong>INSECURE PASSWORD:</strong> Your login attempt has been blocked because the password you are using exists on lists of passwords leaked in data breaches. Attackers use such lists to break into sites and install malicious code. Please <a href=\"%1$s\">reset your password</a> to reactivate your account. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span style=\"font-size:0;\"> (opens in new tab)</span></a>"
|
7623 |
msgstr ""
|
7624 |
|
7625 |
+
#: lib/wordfenceClass.php:3085
|
7626 |
msgid "Admin Login Blocked"
|
7627 |
msgstr ""
|
7628 |
|
7629 |
#. translators: WordPress username.
|
7630 |
+
#: lib/wordfenceClass.php:3085
|
7631 |
msgid "A user with username \"%s\" who has administrator access tried to sign in to your WordPress site. Access was denied because all administrator accounts are required to have Cellphone Sign-in enabled but this account does not."
|
7632 |
msgstr ""
|
7633 |
|
7634 |
#. translators: WordPress username.
|
7635 |
+
#: lib/wordfenceClass.php:3086
|
7636 |
msgid "<strong>Cellphone Sign-in Required</strong>: Cellphone Sign-in is required for all administrator accounts. Please contact the site administrator to enable it for your account."
|
7637 |
msgstr ""
|
7638 |
|
7639 |
+
#: lib/wordfenceClass.php:3126
|
7640 |
msgid "Blocked by Wordfence Security Network"
|
7641 |
msgstr ""
|
7642 |
|
7643 |
+
#: lib/wordfenceClass.php:3156
|
7644 |
msgid "Blocked by login security setting"
|
7645 |
msgstr ""
|
7646 |
|
7647 |
#. translators: WordPress username.
|
7648 |
+
#: lib/wordfenceClass.php:3166
|
7649 |
msgid "Used an invalid username '%s' to try to sign in"
|
7650 |
msgstr ""
|
7651 |
|
7652 |
#. translators: 1. Login attempt limit. 2. WordPress username.
|
7653 |
+
#: lib/wordfenceClass.php:3185
|
7654 |
msgid "Exceeded the maximum number of login failures which is: %1$s. The last username they tried to sign in with was: '%2$s'"
|
7655 |
msgstr ""
|
7656 |
|
7657 |
+
#: lib/wordfenceClass.php:3540
|
7658 |
msgid "An invalid type was specified to get file."
|
7659 |
msgstr ""
|
7660 |
|
7661 |
+
#: lib/wordfenceClass.php:3556
|
7662 |
msgid "We could not fetch a core WordPress file from the Wordfence API."
|
7663 |
msgstr ""
|
7664 |
|
7665 |
+
#: lib/wordfenceClass.php:3615
|
7666 |
msgid "Wordfence Test Email"
|
7667 |
msgstr ""
|
7668 |
|
7669 |
#. translators: 1. Site URL. 2. IP address.
|
7670 |
+
#: lib/wordfenceClass.php:3615
|
7671 |
msgid ""
|
7672 |
"This is a test email from %1$s.\n"
|
7673 |
"The IP address that requested this was: %2$s"
|
7674 |
msgstr ""
|
7675 |
|
7676 |
+
#: lib/wordfenceClass.php:3622
|
7677 |
msgid "Cellphone Sign-in is only available to paid members. <a href=\"https://www.wordfence.com/gnl1twoFac3/wordfence-signup/\" target=\"_blank\" rel=\"noopener noreferrer\">Click here to upgrade now.<span class=\"screen-reader-text\"> ("
|
7678 |
msgstr ""
|
7679 |
|
7680 |
+
#: lib/wordfenceClass.php:3629
|
7681 |
msgid "The username you specified does not exist."
|
7682 |
msgstr ""
|
7683 |
|
7684 |
+
#: lib/wordfenceClass.php:3638
|
7685 |
msgid "The username you specified is already enabled."
|
7686 |
msgstr ""
|
7687 |
|
7688 |
+
#: lib/wordfenceClass.php:3643
|
7689 |
msgid "Unknown authentication mode."
|
7690 |
msgstr ""
|
7691 |
|
7692 |
+
#: lib/wordfenceClass.php:3648
|
7693 |
msgid "The phone number you entered must start with a '+', then country code and then area code and number. For example, a number in the United States with country code '1' would look like this: +1-123-555-1234"
|
7694 |
msgstr ""
|
7695 |
|
7696 |
#. translators: Error message.
|
7697 |
+
#: lib/wordfenceClass.php:3655
|
7698 |
+
#: lib/wordfenceClass.php:3687
|
7699 |
+
#: lib/wordfenceClass.php:3750
|
7700 |
msgid "Could not contact Wordfence servers to generate a verification code: %s"
|
7701 |
msgstr ""
|
7702 |
|
7703 |
#. translators: Error message.
|
7704 |
+
#: lib/wordfenceClass.php:3667
|
7705 |
+
#: lib/wordfenceClass.php:3711
|
7706 |
msgid "Could not generate verification code: %s"
|
7707 |
msgstr ""
|
7708 |
|
7709 |
#. translators: Error message.
|
7710 |
+
#: lib/wordfenceClass.php:3668
|
7711 |
+
#: lib/wordfenceClass.php:3712
|
7712 |
msgid "We could not generate a verification code."
|
7713 |
msgstr ""
|
7714 |
|
7715 |
+
#: lib/wordfenceClass.php:3728
|
7716 |
msgid "Unknown two-factor authentication mode."
|
7717 |
msgstr ""
|
7718 |
|
7719 |
+
#: lib/wordfenceClass.php:3761
|
7720 |
msgid "The code you entered is invalid. Cellphone sign-in will not be enabled for this user until you enter a valid code."
|
7721 |
msgstr ""
|
7722 |
|
7723 |
+
#: lib/wordfenceClass.php:3766
|
7724 |
msgid "We could not find the user you are trying to activate. They may have been removed from the list of Cellphone Sign-in users. Please reload this page."
|
7725 |
msgstr ""
|
7726 |
|
7727 |
+
#: lib/wordfenceClass.php:3848
|
7728 |
msgid "That user has already been removed from the list."
|
7729 |
msgstr ""
|
7730 |
|
7731 |
+
#: lib/wordfenceClass.php:3868
|
7732 |
msgid "No scan is scheduled"
|
7733 |
msgstr ""
|
7734 |
|
7735 |
+
#: lib/wordfenceClass.php:3873
|
7736 |
msgid "Next scan is starting now"
|
7737 |
msgstr ""
|
7738 |
|
7739 |
#. translators: 1. Time until. 2. Localized date.
|
7740 |
+
#: lib/wordfenceClass.php:3876
|
7741 |
msgid "Next scan in %1$s (%2$s)"
|
7742 |
msgstr ""
|
7743 |
|
7744 |
#. translators: Localized date.
|
7745 |
+
#: lib/wordfenceClass.php:3893
|
7746 |
msgid "Scheduled Wordfence scan starting at %s"
|
7747 |
msgstr ""
|
7748 |
|
7749 |
+
#: lib/wordfenceClass.php:3916
|
7750 |
msgid "Sorry but this feature is only available for paid customers."
|
7751 |
msgstr ""
|
7752 |
|
7753 |
#. translators: Site URL.
|
7754 |
+
#: lib/wordfenceClass.php:3930
|
7755 |
msgid "SITE: %s"
|
7756 |
msgstr ""
|
7757 |
|
7758 |
#. translators: Plugin version.
|
7759 |
+
#: lib/wordfenceClass.php:3931
|
7760 |
msgid "PLUGIN VERSION: %s"
|
7761 |
msgstr ""
|
7762 |
|
7763 |
#. translators: WordPress version.
|
7764 |
+
#: lib/wordfenceClass.php:3932
|
7765 |
msgid "WORDPRESS VERSION: %s"
|
7766 |
msgstr ""
|
7767 |
|
7768 |
#. translators: Wordfence license key.
|
7769 |
+
#: lib/wordfenceClass.php:3933
|
7770 |
msgid "LICENSE KEY: %s"
|
7771 |
msgstr ""
|
7772 |
|
7773 |
#. translators: Email address.
|
7774 |
+
#: lib/wordfenceClass.php:3934
|
7775 |
msgid "ADMIN EMAIL: %s"
|
7776 |
msgstr ""
|
7777 |
|
7778 |
#. translators: Email address.
|
7779 |
+
#: lib/wordfenceClass.php:3935
|
7780 |
msgid "LOG:"
|
7781 |
msgstr ""
|
7782 |
|
7783 |
+
#: lib/wordfenceClass.php:3951
|
7784 |
msgid "# Scan Issues"
|
7785 |
msgstr ""
|
7786 |
|
7787 |
#. translators: Number of scan results.
|
7788 |
+
#: lib/wordfenceClass.php:3956
|
7789 |
msgid "## New Issues (%d total)"
|
7790 |
msgstr ""
|
7791 |
|
7792 |
#. translators: Number of scan results.
|
7793 |
+
#: lib/wordfenceClass.php:3983
|
7794 |
msgid "## Ignored Issues (%d total)"
|
7795 |
msgstr ""
|
7796 |
|
7797 |
+
#: lib/wordfenceClass.php:4004
|
7798 |
msgid "No Ignored Issues"
|
7799 |
msgstr ""
|
7800 |
|
7801 |
+
#: lib/wordfenceClass.php:4026
|
7802 |
msgid "Wordfence Activity Log"
|
7803 |
msgstr ""
|
7804 |
|
7805 |
#. translators: Error message.
|
7806 |
+
#: lib/wordfenceClass.php:4052
|
7807 |
msgid "Could not fetch free license key from Wordfence: %s"
|
7808 |
msgstr ""
|
7809 |
|
7810 |
+
#: lib/wordfenceClass.php:4143
|
7811 |
msgid "We could not find your .htaccess file to modify it."
|
7812 |
msgstr ""
|
7813 |
|
7814 |
#. translators: Error message.
|
7815 |
+
#: lib/wordfenceClass.php:4148
|
7816 |
msgid "We found your .htaccess file but could not open it for writing: %s"
|
7817 |
msgstr ""
|
7818 |
|
7819 |
+
#: lib/wordfenceClass.php:4231
|
7820 |
msgid "All Countries"
|
7821 |
msgstr ""
|
7822 |
|
7823 |
+
#: lib/wordfenceClass.php:4234
|
7824 |
msgid "1 Country"
|
7825 |
msgstr ""
|
7826 |
|
7827 |
#. translators: Number of countries.
|
7828 |
+
#: lib/wordfenceClass.php:4237
|
7829 |
msgid "%d Countries"
|
7830 |
msgstr ""
|
7831 |
|
7832 |
+
#: lib/wordfenceClass.php:4241
|
7833 |
msgid "Entire Site"
|
7834 |
msgstr ""
|
7835 |
|
7836 |
+
#: lib/wordfenceClass.php:4244
|
7837 |
msgid "Login Only"
|
7838 |
msgstr ""
|
7839 |
|
7840 |
+
#: lib/wordfenceClass.php:4247
|
7841 |
msgid "Site Except Login"
|
7842 |
msgstr ""
|
7843 |
|
7844 |
+
#: lib/wordfenceClass.php:4255
|
7845 |
msgid "IP Range"
|
7846 |
msgstr ""
|
7847 |
|
7848 |
#. translators: 2FA backup codes.
|
7849 |
+
#: lib/wordfenceClass.php:4256
|
7850 |
+
#: lib/wordfenceClass.php:6271
|
7851 |
msgid "User Agent"
|
7852 |
msgstr ""
|
7853 |
|
7854 |
+
#: lib/wordfenceClass.php:4257
|
7855 |
#: views/blocking/blocking-create.php:201
|
7856 |
msgid "Referrer"
|
7857 |
msgstr ""
|
7858 |
|
7859 |
+
#: lib/wordfenceClass.php:4272
|
7860 |
msgid "Permanent"
|
7861 |
msgstr ""
|
7862 |
|
7863 |
+
#: lib/wordfenceClass.php:4344
|
7864 |
msgid "An error occurred while creating the block."
|
7865 |
msgstr ""
|
7866 |
|
7867 |
+
#: lib/wordfenceClass.php:4350
|
7868 |
msgid "No block parameters were provided."
|
7869 |
msgstr ""
|
7870 |
|
7871 |
+
#: lib/wordfenceClass.php:4387
|
7872 |
+
#: lib/wordfenceClass.php:4419
|
7873 |
msgid "No blocks were provided."
|
7874 |
msgstr ""
|
7875 |
|
7876 |
+
#: lib/wordfenceClass.php:4451
|
7877 |
msgid "The license provided is already in use on another site."
|
7878 |
msgstr ""
|
7879 |
|
7880 |
+
#: lib/wordfenceClass.php:4456
|
7881 |
msgid "The Wordfence activation server returned an unexpected response. Please try again."
|
7882 |
msgstr ""
|
7883 |
|
7884 |
+
#: lib/wordfenceClass.php:4462
|
7885 |
msgid "We received an error while trying to activate the license with the Wordfence servers: "
|
7886 |
msgstr ""
|
7887 |
|
7888 |
+
#: lib/wordfenceClass.php:4475
|
7889 |
msgid "No license was provided to install."
|
7890 |
msgstr ""
|
7891 |
|
7892 |
+
#: lib/wordfenceClass.php:4526
|
7893 |
msgid "An unknown configuration section was provided."
|
7894 |
msgstr ""
|
7895 |
|
7896 |
+
#: lib/wordfenceClass.php:4532
|
7897 |
msgid "No configuration section was provided."
|
7898 |
msgstr ""
|
7899 |
|
7900 |
+
#: lib/wordfenceClass.php:4578
|
7901 |
+
#: lib/wordfenceClass.php:4583
|
7902 |
msgid "An error occurred while saving the configuration."
|
7903 |
msgstr ""
|
7904 |
|
7905 |
+
#: lib/wordfenceClass.php:4594
|
7906 |
msgid "No configuration changes were provided to save."
|
7907 |
msgstr ""
|
7908 |
|
7909 |
+
#: lib/wordfenceClass.php:4625
|
7910 |
+
#: lib/wordfenceClass.php:5275
|
7911 |
+
#: lib/wordfenceClass.php:5306
|
7912 |
+
#: lib/wordfenceClass.php:7390
|
7913 |
+
#: lib/wordfenceClass.php:7425
|
7914 |
+
#: lib/wordfenceClass.php:7457
|
7915 |
msgid "We could not find that issue in our database."
|
7916 |
msgstr ""
|
7917 |
|
7918 |
+
#: lib/wordfenceClass.php:4635
|
7919 |
msgid "An error occurred while trying to hide the file."
|
7920 |
msgstr ""
|
7921 |
|
7922 |
+
#: lib/wordfenceClass.php:4648
|
7923 |
msgid "An invalid file was requested for hiding."
|
7924 |
msgstr ""
|
7925 |
|
7926 |
+
#: lib/wordfenceClass.php:4675
|
7927 |
+
#: lib/wordfenceClass.php:5286
|
7928 |
msgid "You don't have permission to repair .htaccess. You need to either fix the file manually using FTP or change the file permissions and ownership so that your web server has write access to repair the file."
|
7929 |
msgstr ""
|
7930 |
|
7931 |
+
#: lib/wordfenceClass.php:4699
|
7932 |
msgid "Manual permanent block by admin"
|
7933 |
msgstr ""
|
7934 |
|
7935 |
+
#: lib/wordfenceClass.php:4740
|
7936 |
msgid "Please enter a valid IP address to block."
|
7937 |
msgstr ""
|
7938 |
|
7939 |
+
#: lib/wordfenceClass.php:4743
|
7940 |
msgid "You can't block your own IP address."
|
7941 |
msgstr ""
|
7942 |
|
7943 |
#. translators: IP address.
|
7944 |
+
#: lib/wordfenceClass.php:4747
|
7945 |
msgid "The IP address %s is allowlisted and can't be blocked. You can remove this IP from the allowlist on the Wordfence options page."
|
7946 |
msgstr ""
|
7947 |
|
7948 |
#. translators: IP address.
|
7949 |
+
#: lib/wordfenceClass.php:4749
|
7950 |
msgid "The IP address %s is in a range of IP addresses that Wordfence does not block. The IP range may be internal or belong to a service safe to allow access for."
|
7951 |
msgstr ""
|
7952 |
|
7953 |
+
#: lib/wordfenceClass.php:4755
|
7954 |
msgid "The IP address you're trying to block belongs to Google. Your options are currently set to not block these crawlers. Change this in Wordfence options if you want to manually block Google."
|
7955 |
msgstr ""
|
7956 |
|
7957 |
+
#: lib/wordfenceClass.php:4798
|
7958 |
msgid "An invalid operation was called."
|
7959 |
msgstr ""
|
7960 |
|
7961 |
+
#: lib/wordfenceClass.php:4808
|
7962 |
msgid "An invalid status was specified when trying to update that issue."
|
7963 |
msgstr ""
|
7964 |
|
7965 |
+
#: lib/wordfenceClass.php:4820
|
7966 |
msgid "Scan stop request received."
|
7967 |
msgstr ""
|
7968 |
|
7969 |
+
#: lib/wordfenceClass.php:4821
|
7970 |
msgid "A request was received to stop the previous scan."
|
7971 |
msgstr ""
|
7972 |
|
7973 |
+
#: lib/wordfenceClass.php:4870
|
7974 |
msgid "Idle"
|
7975 |
msgstr ""
|
7976 |
|
7977 |
#. translators: Localized date.
|
7978 |
+
#: lib/wordfenceClass.php:4879
|
7979 |
msgid "Scan completed on %s"
|
7980 |
msgstr ""
|
7981 |
|
7982 |
+
#: lib/wordfenceClass.php:4886
|
7983 |
msgid "Last scan failed"
|
7984 |
msgstr ""
|
7985 |
|
7986 |
#. translators: Time until.
|
7987 |
+
#: lib/wordfenceClass.php:4949
|
7988 |
msgid "more than %s"
|
7989 |
msgstr ""
|
7990 |
|
7991 |
#. translators: Localized date.
|
7992 |
+
#: lib/wordfenceClass.php:4953
|
7993 |
msgid "The current scan looks like it has failed. Its last status update was <span id=\"wf-scan-failed-time-ago\">%s</span> ago. You may continue to wait in case it resumes or stop and restart the scan. Some sites may need adjustments to run scans reliably."
|
7994 |
msgstr ""
|
7995 |
|
7996 |
#. translators: Localized date.
|
7997 |
+
#: lib/wordfenceClass.php:4953
|
7998 |
#: lib/wordfenceClass.php:4961
|
7999 |
+
#: lib/wordfenceClass.php:4992
|
8000 |
+
#: lib/wordfenceClass.php:5004
|
8001 |
+
#: lib/wordfenceClass.php:5012
|
|
|
8002 |
msgid "Click here for steps you can try."
|
8003 |
msgstr ""
|
8004 |
|
8005 |
#. translators: Localized date.
|
8006 |
+
#: lib/wordfenceClass.php:4954
|
8007 |
msgid "Cancel Scan"
|
8008 |
msgstr ""
|
8009 |
|
8010 |
+
#: lib/wordfenceClass.php:4961
|
8011 |
msgid "The previous scan has failed. Some sites may need adjustments to run scans reliably."
|
8012 |
msgstr ""
|
8013 |
|
8014 |
#. translators: Time limit (number).
|
8015 |
+
#: lib/wordfenceClass.php:4967
|
8016 |
msgid "The previous scan has terminated because the time limit of %s was reached. This limit can be customized on the options page."
|
8017 |
msgstr ""
|
8018 |
|
8019 |
+
#: lib/wordfenceClass.php:4973
|
8020 |
msgid "The previous scan has terminated because we detected an update occurring during the scan."
|
8021 |
msgstr ""
|
8022 |
|
8023 |
+
#: lib/wordfenceClass.php:4982
|
8024 |
+
msgid "Wordfence will make one attempt to resume each failed scan stage. This scan may recover if this attempt is successful."
|
8025 |
msgstr ""
|
8026 |
|
8027 |
+
#: lib/wordfenceClass.php:4984
|
8028 |
+
msgid "Wordfence will make up to %d attempts to resume each failed scan stage. This scan may recover if one of these attempts is successful."
|
8029 |
+
msgstr ""
|
8030 |
+
|
8031 |
+
#: lib/wordfenceClass.php:4991
|
8032 |
+
msgid "Scan Stage Failed"
|
8033 |
+
msgstr ""
|
8034 |
+
|
8035 |
+
#: lib/wordfenceClass.php:4992
|
8036 |
+
msgid "A scan stage has failed to start. This is often because the site either cannot make outbound requests or is blocked from connecting to itself."
|
8037 |
+
msgstr ""
|
8038 |
+
|
8039 |
+
#: lib/wordfenceClass.php:4998
|
8040 |
msgid "Scans are not functional because SSL is unavailable."
|
8041 |
msgstr ""
|
8042 |
|
8043 |
+
#: lib/wordfenceClass.php:5004
|
8044 |
msgid "The scan has failed because we were unable to contact the Wordfence servers. Some sites may need adjustments to run scans reliably."
|
8045 |
msgstr ""
|
8046 |
|
8047 |
+
#: lib/wordfenceClass.php:5012
|
8048 |
msgid "The scan has failed because we received an unexpected response from the Wordfence servers. This may be a temporary error, though some sites may need adjustments to run scans reliably."
|
8049 |
msgstr ""
|
8050 |
|
8051 |
+
#: lib/wordfenceClass.php:5039
|
8052 |
msgid "Invalid email address given."
|
8053 |
msgstr ""
|
8054 |
|
8055 |
+
#: lib/wordfenceClass.php:5076
|
8056 |
+
#: lib/wordfenceClass.php:5197
|
8057 |
msgid "Deleting an infected wp-config.php file must be done outside of Wordfence. The wp-config.php file contains your database credentials, which you will need to restore normal site operations. Your site will NOT function once the wp-config.php file has been deleted."
|
8058 |
msgstr ""
|
8059 |
|
8060 |
#. translators: 1. File path. 2. Error message.
|
8061 |
+
#: lib/wordfenceClass.php:5085
|
8062 |
msgid "Could not delete file %1$s. Error was: %2$s"
|
8063 |
msgstr ""
|
8064 |
|
8065 |
#. translators: File path.
|
8066 |
+
#: lib/wordfenceClass.php:5106
|
8067 |
msgid "We could not retrieve the original file of %s to do a repair."
|
8068 |
msgstr ""
|
8069 |
|
8070 |
#. translators: File path.
|
8071 |
+
#: lib/wordfenceClass.php:5111
|
8072 |
msgid "An invalid file %s was specified for repair."
|
8073 |
msgstr ""
|
8074 |
|
8075 |
#. translators: File path.
|
8076 |
+
#: lib/wordfenceClass.php:5119
|
8077 |
msgid "You don't have permission to repair %s. You need to either fix the file manually using FTP or change the file permissions and ownership so that your web server has write access to repair the file."
|
8078 |
msgstr ""
|
8079 |
|
8080 |
#. translators: 1. File path. 2. Error message.
|
8081 |
+
#: lib/wordfenceClass.php:5122
|
8082 |
msgid "We could not write to %1$s. The error was: %2$s"
|
8083 |
msgstr ""
|
8084 |
|
8085 |
#. translators: 1. File path. 2. Number of bytes.
|
8086 |
+
#: lib/wordfenceClass.php:5133
|
8087 |
msgid "We could not write to %1$s. (%2$d bytes written) You may not have permission to modify files on your WordPress server."
|
8088 |
msgstr ""
|
8089 |
|
8090 |
+
#: lib/wordfenceClass.php:5145
|
8091 |
msgid "Deleted some files with errors"
|
8092 |
msgstr ""
|
8093 |
|
8094 |
+
#: lib/wordfenceClass.php:5145
|
8095 |
msgid "Repaired some files with errors"
|
8096 |
msgstr ""
|
8097 |
|
8098 |
#. translators: 1. Number of files. 2. Error message.
|
8099 |
+
#: lib/wordfenceClass.php:5148
|
8100 |
msgid "Deleted %1$d files but we encountered the following errors with other files: %2$s"
|
8101 |
msgstr ""
|
8102 |
|
8103 |
#. translators: 1. Number of files. 2. Error message.
|
8104 |
+
#: lib/wordfenceClass.php:5150
|
8105 |
msgid "Repaired %1$d files but we encountered the following errors with other files: %2$s"
|
8106 |
msgstr ""
|
8107 |
|
8108 |
#. translators: Number of files.
|
8109 |
+
#: lib/wordfenceClass.php:5154
|
8110 |
msgid "Deleted %d files successfully"
|
8111 |
msgstr ""
|
8112 |
|
8113 |
#. translators: Number of files.
|
8114 |
+
#: lib/wordfenceClass.php:5154
|
8115 |
msgid "Repaired %d files successfully"
|
8116 |
msgstr ""
|
8117 |
|
8118 |
#. translators: Number of files.
|
8119 |
+
#: lib/wordfenceClass.php:5155
|
8120 |
msgid "Deleted %d files successfully. No errors were encountered."
|
8121 |
msgstr ""
|
8122 |
|
8123 |
#. translators: Number of files.
|
8124 |
+
#: lib/wordfenceClass.php:5155
|
8125 |
msgid "Repaired %d files successfully. No errors were encountered."
|
8126 |
msgstr ""
|
8127 |
|
8128 |
+
#: lib/wordfenceClass.php:5158
|
8129 |
msgid "Could not delete files"
|
8130 |
msgstr ""
|
8131 |
|
8132 |
+
#: lib/wordfenceClass.php:5158
|
8133 |
msgid "Could not repair files"
|
8134 |
msgstr ""
|
8135 |
|
8136 |
#. translators: Error message.
|
8137 |
+
#: lib/wordfenceClass.php:5161
|
8138 |
msgid "We could not delete any of the files you selected. We encountered the following errors: %s"
|
8139 |
msgstr ""
|
8140 |
|
8141 |
#. translators: Error message.
|
8142 |
+
#: lib/wordfenceClass.php:5163
|
8143 |
msgid "We could not repair any of the files you selected. We encountered the following errors: %s"
|
8144 |
msgstr ""
|
8145 |
|
8146 |
+
#: lib/wordfenceClass.php:5166
|
8147 |
msgid "Nothing done"
|
8148 |
msgstr ""
|
8149 |
|
8150 |
+
#: lib/wordfenceClass.php:5167
|
8151 |
msgid "We didn't delete anything and no errors were found."
|
8152 |
msgstr ""
|
8153 |
|
8154 |
+
#: lib/wordfenceClass.php:5167
|
8155 |
msgid "We didn't repair anything and no errors were found."
|
8156 |
msgstr ""
|
8157 |
|
8158 |
+
#: lib/wordfenceClass.php:5175
|
8159 |
msgid "Invalid bulk operation selected"
|
8160 |
msgstr ""
|
8161 |
|
8162 |
+
#: lib/wordfenceClass.php:5185
|
8163 |
msgid "Could not delete file because we could not find that issue."
|
8164 |
msgstr ""
|
8165 |
|
8166 |
+
#: lib/wordfenceClass.php:5188
|
8167 |
msgid "Could not delete file because that issue does not appear to be a file related issue."
|
8168 |
msgstr ""
|
8169 |
|
8170 |
+
#: lib/wordfenceClass.php:5193
|
8171 |
msgid "An invalid file was requested for deletion."
|
8172 |
msgstr ""
|
8173 |
|
8174 |
#. translators: 1. File path. 2. Error message.
|
8175 |
+
#: lib/wordfenceClass.php:5236
|
8176 |
msgid "Could not delete file %1$s. The error was: %2$s"
|
8177 |
msgstr ""
|
8178 |
|
8179 |
+
#: lib/wordfenceClass.php:5249
|
8180 |
msgid "Could not remove the option because we could not find that issue."
|
8181 |
msgstr ""
|
8182 |
|
8183 |
+
#: lib/wordfenceClass.php:5252
|
8184 |
msgid "Could not remove the option because that issue does not appear to be a database related issue."
|
8185 |
msgstr ""
|
8186 |
|
8187 |
#. translators: 1. WordPress option. 2. Error message.
|
8188 |
+
#: lib/wordfenceClass.php:5265
|
8189 |
msgid "Could not remove the option %1$s. The error was: %2$s"
|
8190 |
msgstr ""
|
8191 |
|
8192 |
+
#: lib/wordfenceClass.php:5292
|
8193 |
msgid "Modifying the .htaccess file did not resolve the issue, so the original .htaccess file was restored. You can fix this manually by setting <code>display_errors</code> to <code>Off</code> in your php.ini if your site is on a VPS or dedicated server that you control."
|
8194 |
msgstr ""
|
8195 |
|
8196 |
+
#: lib/wordfenceClass.php:5334
|
8197 |
msgid "We could not get the original file to do a repair."
|
8198 |
msgstr ""
|
8199 |
|
8200 |
+
#: lib/wordfenceClass.php:5338
|
8201 |
msgid "An invalid file was specified for repair."
|
8202 |
msgstr ""
|
8203 |
|
8204 |
+
#: lib/wordfenceClass.php:5358
|
8205 |
msgid "We could not write to that file. You may not have permission to modify files on your WordPress server."
|
8206 |
msgstr ""
|
8207 |
|
8208 |
+
#: lib/wordfenceClass.php:5362
|
8209 |
msgid "Ajax request received to start scan."
|
8210 |
msgstr ""
|
8211 |
|
8212 |
#. translators: Number of URLs.
|
8213 |
+
#: lib/wordfenceClass.php:5417
|
8214 |
msgid "Page contains %d malware URL: "
|
8215 |
msgid_plural "Page contains %d malware URLs: "
|
8216 |
msgstr[0] ""
|
8217 |
msgstr[1] ""
|
8218 |
|
8219 |
+
#: lib/wordfenceClass.php:5420
|
8220 |
msgid "Run a Scan"
|
8221 |
msgstr ""
|
8222 |
|
8223 |
+
#: lib/wordfenceClass.php:5468
|
8224 |
msgid "Unknown dashboard data set."
|
8225 |
msgstr ""
|
8226 |
|
8227 |
+
#: lib/wordfenceClass.php:5499
|
8228 |
msgid "Bad security token. It may have been more than 12 hours since you reloaded the page you came from. Try reloading the page you came from. If that doesn't work, please sign out and sign-in again."
|
8229 |
msgstr ""
|
8230 |
|
8231 |
+
#: lib/wordfenceClass.php:5686
|
8232 |
msgid "An invalid IP address was specified."
|
8233 |
msgstr ""
|
8234 |
|
8235 |
+
#: lib/wordfenceClass.php:5728
|
8236 |
msgid "This link has expired. Refresh the scan results page and try again."
|
8237 |
msgstr ""
|
8238 |
|
8239 |
+
#: lib/wordfenceClass.php:5752
|
8240 |
+
#: lib/wordfenceClass.php:5795
|
8241 |
+
#: lib/wordfenceClass.php:5844
|
8242 |
msgid "File access blocked. (WORDFENCE_DISABLE_FILE_VIEWER is true)"
|
8243 |
msgstr ""
|
8244 |
|
8245 |
+
#: lib/wordfenceClass.php:5759
|
8246 |
+
#: lib/wordfenceClass.php:5851
|
8247 |
msgid "Invalid file requested. (Relative paths not allowed)"
|
8248 |
msgstr ""
|
8249 |
|
8250 |
+
#: lib/wordfenceClass.php:5763
|
8251 |
+
#: lib/wordfenceClass.php:5799
|
8252 |
+
#: lib/wordfenceClass.php:5855
|
8253 |
msgid "File contains illegal characters."
|
8254 |
msgstr ""
|
8255 |
|
8256 |
#. translators: Error message.
|
8257 |
+
#: lib/wordfenceClass.php:5773
|
8258 |
msgid "We could not open the requested file for reading. The error was: %s"
|
8259 |
msgstr ""
|
8260 |
|
8261 |
+
#: lib/wordfenceClass.php:5781
|
8262 |
msgid "Greater than 2 Gigs"
|
8263 |
msgstr ""
|
8264 |
|
8265 |
+
#: lib/wordfenceClass.php:5786
|
8266 |
msgid "Unknown file size."
|
8267 |
msgstr ""
|
8268 |
|
8269 |
+
#: lib/wordfenceClass.php:5808
|
8270 |
msgid "We could not get the contents of the original file to do a comparison."
|
8271 |
msgstr ""
|
8272 |
|
8273 |
+
#: lib/wordfenceClass.php:5817
|
8274 |
msgid "Empty file path provided"
|
8275 |
msgstr ""
|
8276 |
|
8277 |
+
#: lib/wordfenceClass.php:5822
|
8278 |
msgid "Unable to read file contents"
|
8279 |
msgstr ""
|
8280 |
|
8281 |
+
#: lib/wordfenceClass.php:5859
|
8282 |
msgid "File does not exist."
|
8283 |
msgstr ""
|
8284 |
|
8285 |
+
#: lib/wordfenceClass.php:6113
|
8286 |
#: views/dashboard/options-group-import.php:167
|
8287 |
msgid "Reload"
|
8288 |
msgstr ""
|
8289 |
|
8290 |
+
#: lib/wordfenceClass.php:6130
|
8291 |
msgid "${totalIPs} addresses in this network"
|
8292 |
msgstr ""
|
8293 |
|
8294 |
#. translators: 1. Description of firewall action. 2. Description of input parameters.
|
8295 |
+
#: lib/wordfenceClass.php:6131
|
8296 |
msgid "%s in POST body: %s"
|
8297 |
msgstr ""
|
8298 |
|
8299 |
#. translators: 1. Description of firewall action. 2. Description of input parameters.
|
8300 |
+
#: lib/wordfenceClass.php:6132
|
8301 |
msgid "%s in cookie: %s"
|
8302 |
msgstr ""
|
8303 |
|
8304 |
#. translators: 1. Description of firewall action. 2. Description of input parameters.
|
8305 |
+
#: lib/wordfenceClass.php:6133
|
8306 |
msgid "%s in file: %s"
|
8307 |
msgstr ""
|
8308 |
|
8309 |
#. translators: 1. Description of firewall action. 2. Description of input parameters.
|
8310 |
+
#: lib/wordfenceClass.php:6134
|
8311 |
msgid "%s in query string: %s"
|
8312 |
msgstr ""
|
8313 |
|
8314 |
#. translators: Domain name.
|
8315 |
+
#: lib/wordfenceClass.php:6135
|
8316 |
msgid "%s is not valid hostname"
|
8317 |
msgstr ""
|
8318 |
|
8319 |
#. translators: Domain name.
|
8320 |
+
#: lib/wordfenceClass.php:6136
|
8321 |
msgid ".htaccess Updated"
|
8322 |
msgstr ""
|
8323 |
|
8324 |
+
#: lib/wordfenceClass.php:6137
|
8325 |
msgid ".htaccess change"
|
8326 |
msgstr ""
|
8327 |
|
8328 |
+
#: lib/wordfenceClass.php:6138
|
8329 |
msgid "404 Not Found"
|
8330 |
msgstr ""
|
8331 |
|
8332 |
+
#: lib/wordfenceClass.php:6139
|
8333 |
msgid "Activity Log Sent"
|
8334 |
msgstr ""
|
8335 |
|
8336 |
+
#: lib/wordfenceClass.php:6140
|
8337 |
msgid "Add action to allowlist"
|
8338 |
msgstr ""
|
8339 |
|
8340 |
+
#: lib/wordfenceClass.php:6141
|
8341 |
msgid "Add code to .htaccess"
|
8342 |
msgstr ""
|
8343 |
|
8344 |
+
#: lib/wordfenceClass.php:6142
|
8345 |
msgid "All Hits"
|
8346 |
msgstr ""
|
8347 |
|
8348 |
#. translators: WordPress username.
|
8349 |
+
#: lib/wordfenceClass.php:6143
|
8350 |
msgid "All capabilties of admin user %s were successfully revoked."
|
8351 |
msgstr ""
|
8352 |
|
8353 |
+
#: lib/wordfenceClass.php:6145
|
8354 |
msgid "An error occurred when adding the request to the allowlist."
|
8355 |
msgstr ""
|
8356 |
|
8357 |
+
#: lib/wordfenceClass.php:6146
|
8358 |
msgid "Are you sure you want to allowlist this action?"
|
8359 |
msgstr ""
|
8360 |
|
8361 |
+
#: lib/wordfenceClass.php:6147
|
8362 |
msgid "Authentication Code"
|
8363 |
msgstr ""
|
8364 |
|
8365 |
+
#: lib/wordfenceClass.php:6148
|
8366 |
msgid "Background Request Blocked"
|
8367 |
msgstr ""
|
8368 |
|
8369 |
+
#: lib/wordfenceClass.php:6149
|
8370 |
msgid "Block This Network"
|
8371 |
msgstr ""
|
8372 |
|
8373 |
+
#: lib/wordfenceClass.php:6151
|
8374 |
msgid "Blocked By Firewall"
|
8375 |
msgstr ""
|
8376 |
|
8377 |
+
#: lib/wordfenceClass.php:6152
|
8378 |
msgid "Blocked WAF"
|
8379 |
msgstr ""
|
8380 |
|
8381 |
+
#: lib/wordfenceClass.php:6153
|
8382 |
msgid "Blocked by Wordfence"
|
8383 |
msgstr ""
|
8384 |
|
8385 |
+
#: lib/wordfenceClass.php:6154
|
8386 |
msgid "Blocked by Wordfence plugin settings"
|
8387 |
msgstr ""
|
8388 |
|
8389 |
+
#: lib/wordfenceClass.php:6155
|
8390 |
msgid "Blocked by the Wordfence Application Firewall and plugin settings"
|
8391 |
msgstr ""
|
8392 |
|
8393 |
+
#: lib/wordfenceClass.php:6156
|
8394 |
msgid "Blocked by the Wordfence Security Network"
|
8395 |
msgstr ""
|
8396 |
|
8397 |
+
#: lib/wordfenceClass.php:6157
|
8398 |
msgid "Blocked by the Wordfence Web Application Firewall"
|
8399 |
msgstr ""
|
8400 |
|
8401 |
+
#: lib/wordfenceClass.php:6160
|
8402 |
msgid "Cellphone Sign-In Recovery Codes"
|
8403 |
msgstr ""
|
8404 |
|
8405 |
+
#: lib/wordfenceClass.php:6161
|
8406 |
msgid "Cellphone Sign-in activated for user."
|
8407 |
msgstr ""
|
8408 |
|
8409 |
+
#: lib/wordfenceClass.php:6162
|
8410 |
msgid "Click here to download a backup copy of this file now"
|
8411 |
msgstr ""
|
8412 |
|
8413 |
+
#: lib/wordfenceClass.php:6163
|
8414 |
msgid "Click here to download a backup copy of your .htaccess file now"
|
8415 |
msgstr ""
|
8416 |
|
8417 |
+
#: lib/wordfenceClass.php:6164
|
8418 |
msgid "Click to fix .htaccess"
|
8419 |
msgstr ""
|
8420 |
|
8421 |
+
#: lib/wordfenceClass.php:6166
|
8422 |
msgid "Crawlers"
|
8423 |
msgstr ""
|
8424 |
|
8425 |
+
#: lib/wordfenceClass.php:6167
|
8426 |
msgid "Diagnostic report has been sent successfully."
|
8427 |
msgstr ""
|
8428 |
|
8429 |
+
#: lib/wordfenceClass.php:6168
|
8430 |
msgid "Directory Listing Disabled"
|
8431 |
msgstr ""
|
8432 |
|
8433 |
+
#: lib/wordfenceClass.php:6169
|
8434 |
msgid "Directory listing has been disabled on your server."
|
8435 |
msgstr ""
|
8436 |
|
8437 |
+
#: lib/wordfenceClass.php:6172
|
8438 |
msgid "Don't ask again"
|
8439 |
msgstr ""
|
8440 |
|
8441 |
+
#: lib/wordfenceClass.php:6174
|
8442 |
msgid "Download Backup File"
|
8443 |
msgstr ""
|
8444 |
|
8445 |
+
#: lib/wordfenceClass.php:6175
|
8446 |
msgid "Each line of 16 letters and numbers is a single recovery code, with optional spaces for readability. When typing your password, enter \"wf\" followed by the entire code like \"mypassword wf1234 5678 90AB CDEF\". If your site shows a separate prompt for entering a code after entering only your username and password, enter only the code like \"1234 5678 90AB CDEF\". Your recovery codes are:"
|
8447 |
msgstr ""
|
8448 |
|
8449 |
+
#: lib/wordfenceClass.php:6176
|
8450 |
msgid "Email Diagnostic Report"
|
8451 |
msgstr ""
|
8452 |
|
8453 |
+
#: lib/wordfenceClass.php:6177
|
8454 |
msgid "Email Wordfence Activity Log"
|
8455 |
msgstr ""
|
8456 |
|
8457 |
+
#: lib/wordfenceClass.php:6179
|
8458 |
msgid "Enter the email address you would like to send the Wordfence activity log to. Note that the activity log may contain thousands of lines of data. This log is usually only sent to a member of the Wordfence support team. It also contains your PHP configuration from the phpinfo() function for diagnostic data."
|
8459 |
msgstr ""
|
8460 |
|
8461 |
+
#: lib/wordfenceClass.php:6180
|
8462 |
msgid "Error"
|
8463 |
msgstr ""
|
8464 |
|
8465 |
+
#: lib/wordfenceClass.php:6181
|
8466 |
msgid "Error Enabling All Options Page"
|
8467 |
msgstr ""
|
8468 |
|
8469 |
+
#: lib/wordfenceClass.php:6182
|
8470 |
msgid "Error Restoring Defaults"
|
8471 |
msgstr ""
|
8472 |
|
8473 |
+
#: lib/wordfenceClass.php:6183
|
8474 |
msgid "Error Saving Option"
|
8475 |
msgstr ""
|
8476 |
|
8477 |
+
#: lib/wordfenceClass.php:6184
|
8478 |
msgid "Error Saving Options"
|
8479 |
msgstr ""
|
8480 |
|
8481 |
+
#: lib/wordfenceClass.php:6185
|
8482 |
msgid "Failed Login"
|
8483 |
msgstr ""
|
8484 |
|
8485 |
+
#: lib/wordfenceClass.php:6186
|
8486 |
msgid "Failed Login: Invalid Username"
|
8487 |
msgstr ""
|
8488 |
|
8489 |
+
#: lib/wordfenceClass.php:6187
|
8490 |
msgid "Failed Login: Valid Username"
|
8491 |
msgstr ""
|
8492 |
|
8493 |
+
#: lib/wordfenceClass.php:6188
|
8494 |
msgid "File hidden successfully"
|
8495 |
msgstr ""
|
8496 |
|
8497 |
+
#: lib/wordfenceClass.php:6189
|
8498 |
msgid "File restored OK"
|
8499 |
msgstr ""
|
8500 |
|
8501 |
+
#: lib/wordfenceClass.php:6190
|
8502 |
msgid "Filter Traffic"
|
8503 |
msgstr ""
|
8504 |
|
8505 |
+
#: lib/wordfenceClass.php:6191
|
8506 |
msgid "Firewall Response"
|
8507 |
msgstr ""
|
8508 |
|
8509 |
+
#: lib/wordfenceClass.php:6192
|
8510 |
#: views/scanner/issue-wpscan_fullPathDiscl.php:8
|
8511 |
msgid "Full Path Disclosure"
|
8512 |
msgstr ""
|
8513 |
|
8514 |
+
#: lib/wordfenceClass.php:6193
|
8515 |
msgid "Google Bot"
|
8516 |
msgstr ""
|
8517 |
|
8518 |
+
#: lib/wordfenceClass.php:6194
|
8519 |
msgid "Google Crawlers"
|
8520 |
msgstr ""
|
8521 |
|
8522 |
+
#: lib/wordfenceClass.php:6195
|
8523 |
msgid "HTTP Response Code"
|
8524 |
msgstr ""
|
8525 |
|
8526 |
+
#: lib/wordfenceClass.php:6197
|
8527 |
msgid "Humans"
|
8528 |
msgstr ""
|
8529 |
|
8530 |
+
#: lib/wordfenceClass.php:6199
|
8531 |
msgid "Key:"
|
8532 |
msgstr ""
|
8533 |
|
8534 |
#. translators: Localized date.
|
8535 |
+
#: lib/wordfenceClass.php:6200
|
8536 |
msgid "Last Updated: %s"
|
8537 |
msgstr ""
|
8538 |
|
8539 |
#. translators: Localized date.
|
8540 |
+
#: lib/wordfenceClass.php:6201
|
8541 |
msgid "Learn more about repairing modified files."
|
8542 |
msgstr ""
|
8543 |
|
8544 |
+
#: lib/wordfenceClass.php:6203
|
8545 |
msgid "Locked Out"
|
8546 |
msgstr ""
|
8547 |
|
8548 |
+
#: lib/wordfenceClass.php:6204
|
8549 |
msgid "Locked out from logging in"
|
8550 |
msgstr ""
|
8551 |
|
8552 |
+
#: lib/wordfenceClass.php:6205
|
8553 |
msgid "Logged In"
|
8554 |
msgstr ""
|
8555 |
|
8556 |
+
#: lib/wordfenceClass.php:6206
|
8557 |
msgid "Logins"
|
8558 |
msgstr ""
|
8559 |
|
8560 |
+
#: lib/wordfenceClass.php:6207
|
8561 |
msgid "Logins and Logouts"
|
8562 |
msgstr ""
|
8563 |
|
8564 |
#. translators: Localized date.
|
8565 |
+
#: lib/wordfenceClass.php:6210
|
8566 |
msgid "Next Update Check: %s"
|
8567 |
msgstr ""
|
8568 |
|
8569 |
#. translators: Localized date.
|
8570 |
+
#: lib/wordfenceClass.php:6211
|
8571 |
msgid "No activity to report yet. Please complete your first scan."
|
8572 |
msgstr ""
|
8573 |
|
8574 |
+
#: lib/wordfenceClass.php:6212
|
8575 |
msgid "No issues have been ignored."
|
8576 |
msgstr ""
|
8577 |
|
8578 |
+
#: lib/wordfenceClass.php:6213
|
8579 |
msgid "No new issues have been found."
|
8580 |
msgstr ""
|
8581 |
|
8582 |
+
#: lib/wordfenceClass.php:6214
|
8583 |
msgid "No rules were updated. Please verify you have permissions to write to the /wp-content/wflogs directory."
|
8584 |
msgstr ""
|
8585 |
|
8586 |
+
#: lib/wordfenceClass.php:6215
|
8587 |
msgid "No rules were updated. Please verify your website can reach the Wordfence servers."
|
8588 |
msgstr ""
|
8589 |
|
8590 |
+
#: lib/wordfenceClass.php:6216
|
8591 |
msgid "No rules were updated. Your website has reached the maximum number of rule update requests. Please try again later."
|
8592 |
msgstr ""
|
8593 |
|
8594 |
+
#: lib/wordfenceClass.php:6217
|
8595 |
msgid "Note: Status will update when changes are saved"
|
8596 |
msgstr ""
|
8597 |
|
8598 |
+
#: lib/wordfenceClass.php:6218
|
8599 |
msgid "OK"
|
8600 |
msgstr ""
|
8601 |
|
8602 |
+
#: lib/wordfenceClass.php:6219
|
8603 |
msgid "Pages Not Found"
|
8604 |
msgstr ""
|
8605 |
|
8606 |
+
#: lib/wordfenceClass.php:6220
|
8607 |
msgid "Paid Members Only"
|
8608 |
msgstr ""
|
8609 |
|
8610 |
+
#: lib/wordfenceClass.php:6222
|
8611 |
msgid "Please enter a valid email address."
|
8612 |
msgstr ""
|
8613 |
|
8614 |
+
#: lib/wordfenceClass.php:6223
|
8615 |
msgid "Please include your support ticket number or forum username."
|
8616 |
msgstr ""
|
8617 |
|
8618 |
+
#: lib/wordfenceClass.php:6224
|
8619 |
msgid "Please make a backup of this file before proceeding. If you need to restore this backup file, you can copy it to the following path from your site's root:"
|
8620 |
msgstr ""
|
8621 |
|
8622 |
+
#: lib/wordfenceClass.php:6225
|
8623 |
msgid "Please specify a reason"
|
8624 |
msgstr ""
|
8625 |
|
8626 |
+
#: lib/wordfenceClass.php:6226
|
8627 |
msgid "Please specify a valid IP address range in the form of \"1.2.3.4 - 1.2.3.5\" without quotes. Make sure the dash between the IP addresses in a normal dash (a minus sign on your keyboard) and not another character that looks like a dash."
|
8628 |
msgstr ""
|
8629 |
|
8630 |
+
#: lib/wordfenceClass.php:6227
|
8631 |
msgid "Please specify either an IP address range, Hostname or a web browser pattern to match."
|
8632 |
msgstr ""
|
8633 |
|
8634 |
+
#: lib/wordfenceClass.php:6228
|
8635 |
msgid "Recent Activity"
|
8636 |
msgstr ""
|
8637 |
|
8638 |
+
#: lib/wordfenceClass.php:6229
|
8639 |
msgid "Recovery Codes"
|
8640 |
msgstr ""
|
8641 |
|
8642 |
+
#: lib/wordfenceClass.php:6230
|
8643 |
msgid "Redirected"
|
8644 |
msgstr ""
|
8645 |
|
8646 |
+
#: lib/wordfenceClass.php:6231
|
8647 |
msgid "Redirected by Country Blocking bypass URL"
|
8648 |
msgstr ""
|
8649 |
|
8650 |
+
#: lib/wordfenceClass.php:6232
|
8651 |
msgid "Referer"
|
8652 |
msgstr ""
|
8653 |
|
8654 |
+
#: lib/wordfenceClass.php:6233
|
8655 |
msgid "Registered Users"
|
8656 |
msgstr ""
|
8657 |
|
8658 |
+
#: lib/wordfenceClass.php:6235
|
8659 |
msgid "Rule Update Failed"
|
8660 |
msgstr ""
|
8661 |
|
8662 |
+
#: lib/wordfenceClass.php:6236
|
8663 |
msgid "Rules Updated"
|
8664 |
msgstr ""
|
8665 |
|
8666 |
+
#: lib/wordfenceClass.php:6238
|
8667 |
msgid "Scan Complete."
|
8668 |
msgstr ""
|
8669 |
|
8670 |
+
#: lib/wordfenceClass.php:6239
|
8671 |
msgid "Scan the code below with your authenticator app to add this account. Some authenticator apps also allow you to type in the text version instead."
|
8672 |
msgstr ""
|
8673 |
|
8674 |
+
#: lib/wordfenceClass.php:6240
|
8675 |
msgid "Security Event"
|
8676 |
msgstr ""
|
8677 |
|
8678 |
+
#: lib/wordfenceClass.php:6241
|
8679 |
msgid "Send"
|
8680 |
msgstr ""
|
8681 |
|
8682 |
+
#: lib/wordfenceClass.php:6242
|
8683 |
msgid "Sorry, but no data for that IP or domain was found."
|
8684 |
msgstr ""
|
8685 |
|
8686 |
+
#: lib/wordfenceClass.php:6243
|
8687 |
msgid "Specify a valid IP range"
|
8688 |
msgstr ""
|
8689 |
|
8690 |
+
#: lib/wordfenceClass.php:6244
|
8691 |
msgid "Specify a valid hostname"
|
8692 |
msgstr ""
|
8693 |
|
8694 |
+
#: lib/wordfenceClass.php:6245
|
8695 |
msgid "Specify an IP range, Hostname or Browser pattern"
|
8696 |
msgstr ""
|
8697 |
|
8698 |
+
#: lib/wordfenceClass.php:6246
|
8699 |
msgid "Success deleting file"
|
8700 |
msgstr ""
|
8701 |
|
8702 |
+
#: lib/wordfenceClass.php:6247
|
8703 |
msgid "Success removing option"
|
8704 |
msgstr ""
|
8705 |
|
8706 |
+
#: lib/wordfenceClass.php:6248
|
8707 |
msgid "Success restoring file"
|
8708 |
msgstr ""
|
8709 |
|
8710 |
+
#: lib/wordfenceClass.php:6249
|
8711 |
msgid "Success updating option"
|
8712 |
msgstr ""
|
8713 |
|
8714 |
+
#: lib/wordfenceClass.php:6250
|
8715 |
msgid "Successfully deleted admin"
|
8716 |
msgstr ""
|
8717 |
|
8718 |
+
#: lib/wordfenceClass.php:6251
|
8719 |
msgid "Successfully revoked admin"
|
8720 |
msgstr ""
|
8721 |
|
8722 |
+
#: lib/wordfenceClass.php:6252
|
8723 |
msgid "Test Email Sent"
|
8724 |
msgstr ""
|
8725 |
|
8726 |
+
#: lib/wordfenceClass.php:6253
|
8727 |
msgid "The 'How does Wordfence get IPs' option was successfully updated to the recommended value."
|
8728 |
msgstr ""
|
8729 |
|
8730 |
+
#: lib/wordfenceClass.php:6254
|
8731 |
msgid "The Full Path disclosure issue has been fixed"
|
8732 |
msgstr ""
|
8733 |
|
8734 |
#. translators: WordPress username.
|
8735 |
+
#: lib/wordfenceClass.php:6255
|
8736 |
msgid "The admin user %s was successfully deleted."
|
8737 |
msgstr ""
|
8738 |
|
8739 |
#. translators: File path.
|
8740 |
+
#: lib/wordfenceClass.php:6256
|
8741 |
msgid "The file %s was successfully deleted."
|
8742 |
msgstr ""
|
8743 |
|
8744 |
#. translators: File path.
|
8745 |
+
#: lib/wordfenceClass.php:6257
|
8746 |
msgid "The file %s was successfully hidden from public view."
|
8747 |
msgstr ""
|
8748 |
|
8749 |
#. translators: File path.
|
8750 |
+
#: lib/wordfenceClass.php:6258
|
8751 |
msgid "The file %s was successfully restored."
|
8752 |
msgstr ""
|
8753 |
|
8754 |
#. translators: WordPress option.
|
8755 |
+
#: lib/wordfenceClass.php:6259
|
8756 |
msgid "The option %s was successfully removed."
|
8757 |
msgstr ""
|
8758 |
|
8759 |
#. translators: WordPress option.
|
8760 |
+
#: lib/wordfenceClass.php:6260
|
8761 |
msgid "The request has been allowlisted. Please try it again."
|
8762 |
msgstr ""
|
8763 |
|
8764 |
+
#: lib/wordfenceClass.php:6261
|
8765 |
msgid "There was an error while sending the email."
|
8766 |
msgstr ""
|
8767 |
|
8768 |
+
#: lib/wordfenceClass.php:6262
|
8769 |
msgid "This will be shown only once. Keep these codes somewhere safe."
|
8770 |
msgstr ""
|
8771 |
|
8772 |
+
#: lib/wordfenceClass.php:6263
|
8773 |
msgid "Throttled"
|
8774 |
msgstr ""
|
8775 |
|
8776 |
+
#: lib/wordfenceClass.php:6264
|
8777 |
msgid "Two Factor Status"
|
8778 |
msgstr ""
|
8779 |
|
8780 |
#. translators: HTTP client type.
|
8781 |
+
#: lib/wordfenceClass.php:6266
|
8782 |
msgid "Type: %s"
|
8783 |
msgstr ""
|
8784 |
|
8785 |
#. translators: HTTP client type.
|
8786 |
+
#: lib/wordfenceClass.php:6267
|
8787 |
#: views/scanner/issue-checkGSB.php:8
|
8788 |
#: views/scanner/issue-commentBadURL.php:8
|
8789 |
#: views/scanner/issue-configReadable.php:12
|
8803 |
msgid "URL"
|
8804 |
msgstr ""
|
8805 |
|
8806 |
+
#: lib/wordfenceClass.php:6268
|
8807 |
msgid "Unable to automatically hide file"
|
8808 |
msgstr ""
|
8809 |
|
8810 |
#. translators: 2FA backup codes.
|
8811 |
+
#: lib/wordfenceClass.php:6269
|
8812 |
msgid "Use one of these %s codes to log in if you are unable to access your phone. Codes are 16 characters long, plus optional spaces. Each one may be used only once."
|
8813 |
msgstr ""
|
8814 |
|
8815 |
#. translators: 2FA backup codes.
|
8816 |
+
#: lib/wordfenceClass.php:6270
|
8817 |
msgid "Use one of these %s codes to log in if you lose access to your authenticator device. Codes are 16 characters long, plus optional spaces. Each one may be used only once."
|
8818 |
msgstr ""
|
8819 |
|
8820 |
+
#: lib/wordfenceClass.php:6272
|
8821 |
msgid "User ID"
|
8822 |
msgstr ""
|
8823 |
|
8824 |
+
#: lib/wordfenceClass.php:6274
|
8825 |
msgid "WHOIS LOOKUP"
|
8826 |
msgstr ""
|
8827 |
|
8828 |
+
#: lib/wordfenceClass.php:6275
|
8829 |
msgid "We are about to change your <em>.htaccess</em> file. Please make a backup of this file before proceeding."
|
8830 |
msgstr ""
|
8831 |
|
8832 |
#. translators: Error message.
|
8833 |
+
#: lib/wordfenceClass.php:6276
|
8834 |
msgid "We can't modify your .htaccess file for you because: %s"
|
8835 |
msgstr ""
|
8836 |
|
8837 |
#. translators: Error message.
|
8838 |
+
#: lib/wordfenceClass.php:6277
|
8839 |
msgid "We encountered a problem"
|
8840 |
msgstr ""
|
8841 |
|
8842 |
#. translators: URL.
|
8843 |
+
#: lib/wordfenceClass.php:6278
|
8844 |
msgid "Wordfence Firewall blocked a background request to WordPress for the URL %s. If this occurred as a result of an intentional action, you may consider allowlisting the request to allow it in the future."
|
8845 |
msgstr ""
|
8846 |
|
8847 |
#. translators: URL.
|
8848 |
+
#: lib/wordfenceClass.php:6279
|
8849 |
msgid "Wordfence is working..."
|
8850 |
msgstr ""
|
8851 |
|
8852 |
+
#: lib/wordfenceClass.php:6280
|
8853 |
msgid "You are using Nginx as your web server. You'll need to disable autoindexing in your nginx.conf. See the <a target='_blank' rel='noopener noreferrer' href='https://nginx.org/en/docs/http/ngx_http_autoindex_module.html'>Nginx docs for more info</a> on how to do this."
|
8854 |
msgstr ""
|
8855 |
|
8856 |
+
#: lib/wordfenceClass.php:6281
|
8857 |
msgid "You are using an Nginx web server and using a FastCGI processor like PHP5-FPM. You will need to manually delete or hide those files."
|
8858 |
msgstr ""
|
8859 |
|
8860 |
+
#: lib/wordfenceClass.php:6282
|
8861 |
msgid "You are using an Nginx web server and using a FastCGI processor like PHP5-FPM. You will need to manually modify your php.ini to disable <em>display_error</em>"
|
8862 |
msgstr ""
|
8863 |
|
8864 |
+
#: lib/wordfenceClass.php:6283
|
8865 |
msgid "You forgot to include a reason you're blocking this IP range. We ask you to include this for your own record keeping."
|
8866 |
msgstr ""
|
8867 |
|
8868 |
+
#: lib/wordfenceClass.php:6284
|
8869 |
msgid "You have unsaved changes to your options. If you leave this page, those changes will be lost."
|
8870 |
msgstr ""
|
8871 |
|
8872 |
+
#: lib/wordfenceClass.php:6285
|
8873 |
msgid "Your .htaccess has been updated successfully. Please verify your site is functioning normally."
|
8874 |
msgstr ""
|
8875 |
|
8876 |
#. translators: Email address.
|
8877 |
+
#: lib/wordfenceClass.php:6286
|
8878 |
msgid "Your Wordfence activity log was sent to %s"
|
8879 |
msgstr ""
|
8880 |
|
8881 |
#. translators: Email address.
|
8882 |
+
#: lib/wordfenceClass.php:6287
|
8883 |
msgid "Your rules have been updated successfully."
|
8884 |
msgstr ""
|
8885 |
|
8886 |
+
#: lib/wordfenceClass.php:6288
|
8887 |
msgid "Your rules have been updated successfully. You are currently using the free version of Wordfence. Upgrade to Wordfence premium to have your rules updated automatically as new threats emerge. <a href=\"https://www.wordfence.com/wafUpdateRules1/wordfence-signup/\">Click here to purchase a premium license</a>. <em>Note: Your rules will still update every 30 days as a free user.</em>"
|
8888 |
msgstr ""
|
8889 |
|
8890 |
#. translators: wp_mail() return value.
|
8891 |
+
#: lib/wordfenceClass.php:6289
|
8892 |
msgid "Your test email was sent to the requested email address. The result we received from the WordPress wp_mail() function was: %s<br /><br />A 'True' result means WordPress thinks the mail was sent without errors. A 'False' result means that WordPress encountered an error sending your mail. Note that it's possible to get a 'True' response with an error elsewhere in your mail system that may cause emails to not be delivered."
|
8893 |
msgstr ""
|
8894 |
|
8895 |
#. translators: wp_mail() return value.
|
8896 |
+
#: lib/wordfenceClass.php:6290
|
8897 |
msgid "blocked by firewall"
|
8898 |
msgstr ""
|
8899 |
|
8900 |
#. translators: Reason for firewall action.
|
8901 |
+
#: lib/wordfenceClass.php:6291
|
8902 |
msgid "blocked by firewall for %s"
|
8903 |
msgstr ""
|
8904 |
|
8905 |
#. translators: Reason for firewall action.
|
8906 |
+
#: lib/wordfenceClass.php:6292
|
8907 |
msgid "blocked by real-time IP blocklist"
|
8908 |
msgstr ""
|
8909 |
|
8910 |
+
#: lib/wordfenceClass.php:6293
|
8911 |
msgid "blocked by the Wordfence Security Network"
|
8912 |
msgstr ""
|
8913 |
|
8914 |
#. translators: Reason for firewall action.
|
8915 |
+
#: lib/wordfenceClass.php:6294
|
8916 |
msgid "blocked for %s"
|
8917 |
msgstr ""
|
8918 |
|
8919 |
#. translators: Reason for firewall action.
|
8920 |
+
#: lib/wordfenceClass.php:6295
|
8921 |
msgid "locked out from logging in"
|
8922 |
msgstr ""
|
8923 |
|
8924 |
+
#: lib/wordfenceClass.php:6308
|
8925 |
msgid "Wordfence generated an error on activation. The output we received during activation was:"
|
8926 |
msgstr ""
|
8927 |
|
8928 |
+
#: lib/wordfenceClass.php:6315
|
8929 |
msgid "Wordfence could not register with the Wordfence scanning servers when it activated."
|
8930 |
msgstr ""
|
8931 |
|
8932 |
+
#: lib/wordfenceClass.php:6316
|
8933 |
msgid "You can try to fix this by deactivating Wordfence and then activating it again, so Wordfence will retry registering for you. If you keep seeing this error, it usually means your WordPress server can't connect to our scanning servers, or your wfConfig database table cannot be created to save the key. You can try asking your host to allow your server to connect to noc1.wordfence.com or check the wfConfig database table and database privileges."
|
8934 |
msgstr ""
|
8935 |
|
8936 |
+
#: lib/wordfenceClass.php:6330
|
8937 |
msgid "The Wordfence Web Application Firewall cannot run."
|
8938 |
msgstr ""
|
8939 |
|
8940 |
#. translators: 1. WordPress admin panel URL. 2. Support URL.
|
8941 |
+
#: lib/wordfenceClass.php:6333
|
8942 |
msgid "The configuration files are corrupt or inaccessible by the web server, which is preventing the WAF from functioning. Please verify the web server has permission to access the configuration files. You may also try to rebuild the configuration file by <a href=\"%1$s\">clicking here</a>. It will automatically resume normal operation when it is fixed. <a class=\"wfhelp\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"%2$s\"><span class=\"screen-reader-text\"> ("
|
8943 |
msgstr ""
|
8944 |
|
8945 |
+
#: lib/wordfenceClass.php:6339
|
8946 |
msgid "The WAF storage engine is currently set to mysqli, but Wordfence is unable to use the database. The WAF will fall back to using local file system storage instead."
|
8947 |
msgstr ""
|
8948 |
|
8949 |
+
#: lib/wordfenceClass.php:6352
|
8950 |
+
#: lib/wordfenceClass.php:6371
|
8951 |
msgid "The Wordfence Web Application Firewall needs a configuration update."
|
8952 |
msgstr ""
|
8953 |
|
8954 |
#. translators: 1. WordPress admin panel URL. 2. Support URL.
|
8955 |
+
#: lib/wordfenceClass.php:6355
|
8956 |
msgid "It is currently configured to use an older version of PHP and may become deactivated if PHP is updated. You may perform the configuration update automatically by <a href=\"%1$s\">clicking here</a>. <a class=\"wfhelp\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"%2$s\"><span class=\"screen-reader-text\"> ("
|
8957 |
msgstr ""
|
8958 |
|
8959 |
#. translators: 1. WordPress admin panel URL. 2. Support URL.
|
8960 |
+
#: lib/wordfenceClass.php:6374
|
8961 |
msgid "It is not currently in extended protection mode but was configured to use an older version of PHP and may have become deactivated when PHP was updated. You may perform the configuration update automatically by <a href=\"%1$s\">clicking here</a> or use the \"Optimize the Wordfence Firewall\" button on the Firewall Options page. <a class=\"wfhelp\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"%2$s\"><span class=\"screen-reader-text\"> ("
|
8962 |
msgstr ""
|
8963 |
|
8964 |
+
#: lib/wordfenceClass.php:6380
|
8965 |
msgid "The Wordfence Web Application Firewall is in read-only mode."
|
8966 |
msgstr ""
|
8967 |
|
8968 |
+
#: lib/wordfenceClass.php:6389
|
8969 |
msgid "This site is currently using PHP's built in REMOTE_ADDR."
|
8970 |
msgstr ""
|
8971 |
|
8972 |
+
#: lib/wordfenceClass.php:6392
|
8973 |
msgid "This site is currently using the X-Forwarded-For HTTP header, which should only be used when the site is behind a front-end proxy that outputs this header."
|
8974 |
msgstr ""
|
8975 |
|
8976 |
+
#: lib/wordfenceClass.php:6395
|
8977 |
msgid "This site is currently using the X-Real-IP HTTP header, which should only be used when the site is behind a front-end proxy that outputs this header."
|
8978 |
msgstr ""
|
8979 |
|
8980 |
+
#: lib/wordfenceClass.php:6398
|
8981 |
msgid "This site is currently using the Cloudflare \"CF-Connecting-IP\" HTTP header, which should only be used when the site is behind Cloudflare."
|
8982 |
msgstr ""
|
8983 |
|
8984 |
+
#: lib/wordfenceClass.php:6415
|
8985 |
msgid "Your 'How does Wordfence get IPs' setting is misconfigured."
|
8986 |
msgstr ""
|
8987 |
|
8988 |
+
#: lib/wordfenceClass.php:6417
|
8989 |
msgid "Click here to use the recommended setting"
|
8990 |
msgstr ""
|
8991 |
|
8992 |
+
#: lib/wordfenceClass.php:6419
|
8993 |
#: views/onboarding/fresh-install.php:38
|
8994 |
msgid "or"
|
8995 |
msgstr ""
|
8996 |
|
8997 |
+
#: lib/wordfenceClass.php:6421
|
8998 |
msgid "visit the options page"
|
8999 |
msgstr ""
|
9000 |
|
9001 |
+
#: lib/wordfenceClass.php:6423
|
9002 |
msgid "to manually update it."
|
9003 |
msgstr ""
|
9004 |
|
9005 |
+
#: lib/wordfenceClass.php:6431
|
9006 |
msgid "Do you want Wordfence to stay up-to-date automatically?"
|
9007 |
msgstr ""
|
9008 |
|
9009 |
+
#: lib/wordfenceClass.php:6433
|
9010 |
msgid "Yes, enable auto-update."
|
9011 |
msgstr ""
|
9012 |
|
9013 |
+
#: lib/wordfenceClass.php:6435
|
9014 |
msgid "No thanks."
|
9015 |
msgstr ""
|
9016 |
|
9017 |
+
#: lib/wordfenceClass.php:6459
|
9018 |
msgid "Wordfence country blocking is currently set to block the United States. We recommend allowing access from the United States for Google and other benign crawlers, unless you choose to only block the login page."
|
9019 |
msgstr ""
|
9020 |
|
9021 |
#. translators: Localized date.
|
9022 |
+
#: lib/wordfenceClass.php:6568
|
9023 |
msgid "The last rules update for the Wordfence Web Application Firewall was unsuccessful. The last successful update check was %s, so this site may be missing new rules added since then."
|
9024 |
msgstr ""
|
9025 |
|
9026 |
#. translators: 1. Localized date. 2. WordPress admin panel URL.
|
9027 |
+
#: lib/wordfenceClass.php:6576
|
9028 |
msgid "You may wait for the next automatic attempt at %1$s or try to <a href=\"%2$s\">Manually Update</a> by clicking the \"Manually Refresh Rules\" button below the Rules list."
|
9029 |
msgstr ""
|
9030 |
|
9031 |
#. translators: WordPress admin panel URL.
|
9032 |
+
#: lib/wordfenceClass.php:6582
|
9033 |
msgid "You may wait for the next automatic attempt or try to <a href=\"%s\">Manually Update</a> by clicking the \"Manually Refresh Rules\" button below the Rules list."
|
9034 |
msgstr ""
|
9035 |
|
9036 |
#. translators: WordPress admin panel URL.
|
9037 |
+
#: lib/wordfenceClass.php:6587
|
9038 |
msgid "You may wait for the next automatic attempt at %s or log into the parent site to manually update by clicking the \"Manually Refresh Rules\" button below the Rules list."
|
9039 |
msgstr ""
|
9040 |
|
9041 |
+
#: lib/wordfenceClass.php:6590
|
9042 |
msgid "You may wait for the next automatic attempt or log into the parent site to manually update by clicking the \"Manually Refresh Rules\" button below the Rules list."
|
9043 |
msgstr ""
|
9044 |
|
9045 |
+
#: lib/wordfenceClass.php:6698
|
9046 |
#: models/page/wfPage.php:101
|
9047 |
msgid "Dashboard"
|
9048 |
msgstr ""
|
9049 |
|
9050 |
+
#: lib/wordfenceClass.php:6742
|
9051 |
msgid "Upgrade to Care"
|
9052 |
msgstr ""
|
9053 |
|
9054 |
+
#: lib/wordfenceClass.php:6746
|
9055 |
msgid "Upgrade to Response"
|
9056 |
msgstr ""
|
9057 |
|
9058 |
#. translators: Number of notifications.
|
9059 |
+
#: lib/wordfenceClass.php:6795
|
9060 |
msgid "You have %d new Wordfence notification."
|
9061 |
msgid_plural "You have %d new Wordfence notifications."
|
9062 |
msgstr[0] ""
|
9063 |
msgstr[1] ""
|
9064 |
|
9065 |
+
#: lib/wordfenceClass.php:6819
|
9066 |
msgid "JavaScript Errors"
|
9067 |
msgstr ""
|
9068 |
|
9069 |
+
#: lib/wordfenceClass.php:6825
|
9070 |
msgid "Malware URLs"
|
9071 |
msgstr ""
|
9072 |
|
9073 |
#. translators: WordPress admin panel URL.
|
9074 |
+
#: lib/wordfenceClass.php:6943
|
9075 |
+
#: lib/wordfenceClass.php:7006
|
9076 |
msgid "<a href=\"%s\">Click here</a> to rebuild the configuration file."
|
9077 |
msgstr ""
|
9078 |
|
9079 |
#. translators: File path.
|
9080 |
+
#: lib/wordfenceClass.php:6954
|
9081 |
+
#: lib/wordfenceClass.php:7017
|
9082 |
msgid "We were unable to write to %s which the WAF uses for storage. Please update permissions on the parent directory so the web server can write to it."
|
9083 |
msgstr ""
|
9084 |
|
9085 |
+
#: lib/wordfenceClass.php:6964
|
9086 |
+
#: lib/wordfenceClass.php:7027
|
9087 |
msgid "An error occured when fetching the WAF configuration from the database."
|
9088 |
msgstr ""
|
9089 |
|
9090 |
#. translators: Plugin name.
|
9091 |
+
#: lib/wordfenceClass.php:7049
|
9092 |
msgid "The Wordfence Live Traffic feature has been disabled because you have %s active which is not compatible with Wordfence Live Traffic."
|
9093 |
msgstr ""
|
9094 |
|
9095 |
#. translators: 1. Plugin name.
|
9096 |
+
#: lib/wordfenceClass.php:7051
|
9097 |
msgid "If you want to reenable Wordfence Live Traffic, you need to deactivate %1$s and then go to the Wordfence options page and reenable Live Traffic there. Wordfence does work with %1$s, however Live Traffic will be disabled and the Wordfence firewall will also count less hits per visitor because of the %1$s caching function. All other functions should work correctly."
|
9098 |
msgstr ""
|
9099 |
|
9100 |
#. translators: File path.
|
9101 |
+
#: lib/wordfenceClass.php:7112
|
9102 |
msgid "The file <code>%s</code> was restored successfully."
|
9103 |
msgstr ""
|
9104 |
|
9105 |
+
#: lib/wordfenceClass.php:7117
|
9106 |
msgid "There was an error restoring the file."
|
9107 |
msgstr ""
|
9108 |
|
9109 |
+
#: lib/wordfenceClass.php:7127
|
9110 |
+
#: lib/wordfenceClass.php:7150
|
9111 |
msgid "Return to scan results"
|
9112 |
msgstr ""
|
9113 |
|
9114 |
#. translators: File path.
|
9115 |
+
#: lib/wordfenceClass.php:7136
|
9116 |
msgid "The file <code>%s</code> was deleted successfully."
|
9117 |
msgstr ""
|
9118 |
|
9119 |
+
#: lib/wordfenceClass.php:7140
|
9120 |
msgid "There was an error deleting the file."
|
9121 |
msgstr ""
|
9122 |
|
9123 |
#. translators: IP address.
|
9124 |
+
#: lib/wordfenceClass.php:7208
|
9125 |
msgid ""
|
9126 |
"User IP: %s\n"
|
9127 |
""
|
9128 |
msgstr ""
|
9129 |
|
9130 |
#. translators: Domain name.
|
9131 |
+
#: lib/wordfenceClass.php:7211
|
9132 |
msgid ""
|
9133 |
"User hostname: %s\n"
|
9134 |
""
|
9135 |
msgstr ""
|
9136 |
|
9137 |
+
#: lib/wordfenceClass.php:7215
|
9138 |
msgid "User location: "
|
9139 |
msgstr ""
|
9140 |
|
9141 |
#. translators: WordPress admin panel URL.
|
9142 |
+
#: lib/wordfenceClass.php:7270
|
9143 |
msgid "No longer an administrator for this site? Click here to stop receiving security alerts: %s"
|
9144 |
msgstr ""
|
9145 |
|
9146 |
+
#: lib/wordfenceClass.php:7311
|
9147 |
msgid "The IP you provided must be in dotted quad notation or use ranges with square brackets. e.g. 10.11.12.13 or 10.11.12.[1-50]"
|
9148 |
msgstr ""
|
9149 |
|
9150 |
+
#: lib/wordfenceClass.php:7330
|
9151 |
msgid "Invalid email address provided"
|
9152 |
msgstr ""
|
9153 |
|
9154 |
+
#: lib/wordfenceClass.php:7335
|
9155 |
msgid "Test email sent successfully"
|
9156 |
msgstr ""
|
9157 |
|
9158 |
+
#: lib/wordfenceClass.php:7336
|
9159 |
msgid "Test email failed to send"
|
9160 |
msgstr ""
|
9161 |
|
9162 |
#. translators: Localized date range.
|
9163 |
+
#: lib/wordfenceClass.php:7354
|
9164 |
msgid "Wordfence activity in the past %s"
|
9165 |
msgstr ""
|
9166 |
|
|
|
9167 |
#: lib/wordfenceClass.php:7394
|
9168 |
+
#: lib/wordfenceClass.php:7398
|
9169 |
+
#: lib/wordfenceClass.php:7429
|
9170 |
msgid "We could not find that user in the database."
|
9171 |
msgstr ""
|
9172 |
|
9173 |
+
#: lib/wordfenceClass.php:7402
|
9174 |
msgid "This user's email is the network admin email. It will need to be changed before deleting this user."
|
9175 |
msgstr ""
|
9176 |
|
9177 |
+
#: lib/wordfenceClass.php:7466
|
9178 |
msgid "Wordfence could not find your .htaccess file."
|
9179 |
msgstr ""
|
9180 |
|
9181 |
+
#: lib/wordfenceClass.php:7482
|
9182 |
msgid "Updating the .htaccess did not fix the issue. You may need to add <code>Options -Indexes</code> to your httpd.conf if using Apache, or find documentation on how to disable directory listing for your web server."
|
9183 |
msgstr ""
|
9184 |
|
9185 |
+
#: lib/wordfenceClass.php:7488
|
9186 |
msgid "There was an error writing to your .htaccess file."
|
9187 |
msgstr ""
|
9188 |
|
9189 |
+
#: lib/wordfenceClass.php:7567
|
9190 |
msgid "Required parameters not sent."
|
9191 |
msgstr ""
|
9192 |
|
9193 |
+
#: lib/wordfenceClass.php:7577
|
9194 |
msgid "The WAF is currently in read-only mode and will not save any configuration changes."
|
9195 |
msgstr ""
|
9196 |
|
9197 |
+
#: lib/wordfenceClass.php:7615
|
9198 |
#: views/waf/option-whitelist.php:60
|
9199 |
msgid "Allowlisted via Firewall Options page"
|
9200 |
msgstr ""
|
9201 |
|
9202 |
+
#: lib/wordfenceClass.php:7902
|
9203 |
msgid "Allowlisted via Live Traffic"
|
9204 |
msgstr ""
|
9205 |
|
9206 |
+
#: lib/wordfenceClass.php:8066
|
9207 |
+
#: lib/wordfenceClass.php:8163
|
9208 |
msgid "A valid server configuration was not provided."
|
9209 |
msgstr ""
|
9210 |
|
9211 |
+
#: lib/wordfenceClass.php:8077
|
9212 |
+
#: lib/wordfenceClass.php:8184
|
9213 |
msgid "Filesystem Credentials Required"
|
9214 |
msgstr ""
|
9215 |
|
9216 |
#. translators: Support URL.
|
9217 |
+
#: lib/wordfenceClass.php:8079
|
9218 |
+
#: lib/wordfenceClass.php:8103
|
9219 |
+
#: lib/wordfenceClass.php:8147
|
9220 |
+
#: lib/wordfenceClass.php:9039
|
9221 |
msgid "If you cannot complete the setup process, <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"%s\">click here for help<span class=\"screen-reader-text\"> ("
|
9222 |
msgstr ""
|
9223 |
|
9224 |
#. translators: Support URL.
|
9225 |
+
#: lib/wordfenceClass.php:8080
|
9226 |
msgid "Once you have entered credentials, click Continue to complete the setup."
|
9227 |
msgstr ""
|
9228 |
|
9229 |
+
#: lib/wordfenceClass.php:8101
|
9230 |
+
#: lib/wordfenceClass.php:8209
|
9231 |
msgid "Filesystem Permission Error"
|
9232 |
msgstr ""
|
9233 |
|
9234 |
+
#: lib/wordfenceClass.php:8127
|
9235 |
msgid "Manual Installation Instructions"
|
9236 |
msgstr ""
|
9237 |
|
9238 |
+
#: lib/wordfenceClass.php:8134
|
9239 |
msgid "Installation Successful"
|
9240 |
msgstr ""
|
9241 |
|
9242 |
+
#: lib/wordfenceClass.php:8145
|
9243 |
msgid "Installation Failed"
|
9244 |
msgstr ""
|
9245 |
|
9246 |
#. translators: Support URL.
|
9247 |
+
#: lib/wordfenceClass.php:8186
|
9248 |
+
#: lib/wordfenceClass.php:8211
|
9249 |
+
#: lib/wordfenceClass.php:8242
|
9250 |
+
#: lib/wordfenceClass.php:8271
|
9251 |
+
#: lib/wordfenceClass.php:8317
|
9252 |
msgid "If you cannot complete the uninstall process, <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"%s\">click here for help<span class=\"screen-reader-text\"> ("
|
9253 |
msgstr ""
|
9254 |
|
9255 |
#. translators: Support URL.
|
9256 |
+
#: lib/wordfenceClass.php:8187
|
9257 |
msgid "Once you have entered credentials, click Continue to complete uninstallation."
|
9258 |
msgstr ""
|
9259 |
|
9260 |
+
#: lib/wordfenceClass.php:8231
|
9261 |
msgid "The <code>auto_prepend_file</code> setting has been successfully removed from <code>.htaccess</code> and <code>.user.ini</code>. Once this change takes effect, Extended Protection Mode will be disabled."
|
9262 |
msgstr ""
|
9263 |
|
9264 |
+
#: lib/wordfenceClass.php:8233
|
9265 |
msgid "Any previous value for <code>auto_prepend_file</code> will need to be re-enabled manually if still needed."
|
9266 |
msgstr ""
|
9267 |
|
9268 |
#. translators: Time until.
|
9269 |
+
#: lib/wordfenceClass.php:8237
|
9270 |
msgid "Waiting for it to take effect. This may take up to %s."
|
9271 |
msgstr ""
|
9272 |
|
9273 |
+
#: lib/wordfenceClass.php:8240
|
9274 |
msgid "Waiting for Changes"
|
9275 |
msgstr ""
|
9276 |
|
9277 |
+
#: lib/wordfenceClass.php:8262
|
9278 |
msgid "Extended Protection Mode has not been disabled. This may be because <code>auto_prepend_file</code> is configured somewhere else or the value is still cached by PHP."
|
9279 |
msgstr ""
|
9280 |
|
9281 |
+
#: lib/wordfenceClass.php:8264
|
9282 |
msgid "Retrying Failed."
|
9283 |
msgstr ""
|
9284 |
|
9285 |
+
#: lib/wordfenceClass.php:8266
|
9286 |
msgid "Try Again"
|
9287 |
msgstr ""
|
9288 |
|
9289 |
+
#: lib/wordfenceClass.php:8269
|
9290 |
msgid "Unable to Uninstall"
|
9291 |
msgstr ""
|
9292 |
|
9293 |
+
#: lib/wordfenceClass.php:8305
|
9294 |
msgid "Uninstallation Complete"
|
9295 |
msgstr ""
|
9296 |
|
9297 |
+
#: lib/wordfenceClass.php:8315
|
9298 |
msgid "Uninstallation Failed"
|
9299 |
msgstr ""
|
9300 |
|
9301 |
#. translators: 1. Number of attacks/blocks. 2. Time since.
|
9302 |
+
#: lib/wordfenceClass.php:8469
|
9303 |
msgid "The Wordfence Web Application Firewall has blocked %1$d attacks over the last %2$s. Below is a sample of these recent attacks:"
|
9304 |
msgstr ""
|
9305 |
|
9306 |
+
#: lib/wordfenceClass.php:9036
|
9307 |
msgid "To make your site as secure as possible, take a moment to optimize the Wordfence Web Application Firewall:"
|
9308 |
msgstr ""
|
9309 |
|
9310 |
+
#: lib/wordfenceClass.php:9036
|
9311 |
msgid "Click here to configure"
|
9312 |
msgstr ""
|
9313 |
|
9314 |
+
#: lib/wordfenceClass.php:9045
|
9315 |
#: views/waf/waf-install-success.php:14
|
9316 |
msgid "Nice work! The firewall is now optimized."
|
9317 |
msgstr ""
|
9318 |
|
9319 |
+
#: lib/wordfenceClass.php:9047
|
9320 |
+
#: lib/wordfenceClass.php:9059
|
9321 |
#: views/waf/waf-install-success.php:16
|
9322 |
#: views/waf/waf-uninstall-success.php:19
|
9323 |
msgid "The changes have not yet taken effect. If you are using LiteSpeed or IIS as your web server or CGI/FastCGI interface, you may need to wait a few minutes for the changes to take effect since the configuration files are sometimes cached. You also may need to select a different server configuration in order to complete this step, but wait for a few minutes before trying. You can try refreshing this page."
|
9324 |
msgstr ""
|
9325 |
|
9326 |
+
#: lib/wordfenceClass.php:9053
|
9327 |
#: views/waf/waf-uninstall-success.php:15
|
9328 |
msgid "Uninstallation was successful!"
|
9329 |
msgstr ""
|
9330 |
|
9331 |
+
#: lib/wordfenceClass.php:9056
|
9332 |
#: views/waf/waf-uninstall-success.php:17
|
9333 |
msgid "Uninstallation from this site was successful! The Wordfence Firewall is still active because it is installed in another WordPress installation."
|
9334 |
msgstr ""
|
9335 |
|
9336 |
+
#: lib/wordfenceClass.php:9064
|
9337 |
msgid "The update was successful!"
|
9338 |
msgstr ""
|
9339 |
|
9340 |
+
#: lib/wordfenceClass.php:9214
|
9341 |
msgid "Auth grant is invalid."
|
9342 |
msgstr ""
|
9343 |
|
9344 |
#. translators: Error message.
|
9345 |
+
#: lib/wordfenceClass.php:9229
|
9346 |
msgid "Invalid response from Wordfence Central: %s"
|
9347 |
msgstr ""
|
9348 |
|
9349 |
#. translators: JSON property.
|
9350 |
+
#: lib/wordfenceClass.php:9235
|
9351 |
+
#: lib/wordfenceClass.php:9248
|
9352 |
msgid "Invalid response from Wordfence Central. Parameter %s not found in response."
|
9353 |
msgstr ""
|
9354 |
|
9355 |
+
#: lib/wordfenceClass.php:9277
|
9356 |
+
#: lib/wordfenceClass.php:9414
|
9357 |
msgid "Access token not found."
|
9358 |
msgstr ""
|
9359 |
|
9360 |
+
#: lib/wordfenceClass.php:9322
|
9361 |
+
#: lib/wordfenceClass.php:9389
|
9362 |
msgid "Invalid response from Wordfence Central."
|
9363 |
msgstr ""
|
9364 |
|
9365 |
+
#: lib/wordfenceClass.php:9365
|
9366 |
msgid "Auth grant not found."
|
9367 |
msgstr ""
|
9368 |
|
9369 |
+
#: lib/wordfenceClass.php:9635
|
9370 |
msgid "We were unable to create the <code>wordfence-waf.php</code> file in the root of the WordPress installation. It's possible WordPress cannot write to the <code>wordfence-waf.php</code> file because of file permissions. Please verify the permissions are correct and retry the installation."
|
9371 |
msgstr ""
|
9372 |
|
9373 |
+
#: lib/wordfenceClass.php:9727
|
9374 |
+
#: lib/wordfenceClass.php:9798
|
9375 |
msgid "We were unable to make changes to the .htaccess file. It's possible WordPress cannot write to the .htaccess file because of file permissions, which may have been set by another security plugin, or you may have set them manually. Please verify the permissions allow the web server to write to the file, and retry the installation."
|
9376 |
msgstr ""
|
9377 |
|
9378 |
#. translators: File path.
|
9379 |
+
#: lib/wordfenceClass.php:9768
|
9380 |
+
#: lib/wordfenceClass.php:9816
|
9381 |
msgid "We were unable to make changes to the %1$s file. It's possible WordPress cannot write to the %1$s file because of file permissions. Please verify the permissions are correct and retry the installation."
|
9382 |
msgstr ""
|
9383 |
|
9384 |
+
#: lib/wordfenceClass.php:9832
|
9385 |
msgid "We were unable to remove the <code>wordfence-waf.php</code> file in the root of the WordPress installation. It's possible WordPress cannot remove the <code>wordfence-waf.php</code> file because of file permissions. Please verify the permissions are correct and retry the removal."
|
9386 |
msgstr ""
|
9387 |
|
9700 |
msgstr ""
|
9701 |
|
9702 |
#. translators: Malware signature rule ID.
|
9703 |
+
#: lib/wordfenceScanner.php:371
|
9704 |
msgid "Resuming malware scan at rule %s."
|
9705 |
msgstr ""
|
9706 |
|
9707 |
+
#: lib/wordfenceScanner.php:405
|
9708 |
msgid "This file appears to be installed or modified by a hacker to perform malicious activity. If you know about this file you can choose to ignore it to exclude it from future scans."
|
9709 |
msgstr ""
|
9710 |
|
9711 |
+
#: lib/wordfenceScanner.php:416
|
9712 |
msgid "File appears to be malicious or unsafe: %s"
|
9713 |
msgstr ""
|
9714 |
|
9715 |
+
#: lib/wordfenceScanner.php:417
|
9716 |
msgid "The matched text in this file is: %s"
|
9717 |
msgstr ""
|
9718 |
|
9719 |
#. translators: Scan result type.
|
9720 |
+
#: lib/wordfenceScanner.php:417
|
9721 |
msgid "The issue type is: %s"
|
9722 |
msgstr ""
|
9723 |
|
9724 |
#. translators: Scan result description.
|
9725 |
+
#: lib/wordfenceScanner.php:417
|
9726 |
msgid "Description: %s"
|
9727 |
msgstr ""
|
9728 |
|
9729 |
#. translators: Malware signature rule ID.
|
9730 |
+
#: lib/wordfenceScanner.php:435
|
9731 |
msgid "Forking during malware scan (%s) to ensure continuity."
|
9732 |
msgstr ""
|
9733 |
|
9734 |
+
#: lib/wordfenceScanner.php:457
|
9735 |
msgid "This file may contain malicious executable code: "
|
9736 |
msgstr ""
|
9737 |
|
9738 |
#. translators: Malware signature matched text.
|
9739 |
+
#: lib/wordfenceScanner.php:458
|
9740 |
msgid "This file is a PHP executable file and contains the word \"eval\" (without quotes) and the word \"%s\" (without quotes). The eval() function along with an encoding function like the one mentioned are commonly used by hackers to hide their code. If you know about this file you can choose to ignore it to exclude it from future scans. This file was detected because you have enabled HIGH SENSITIVITY scanning. This option is more aggressive than the usual scans, and may cause false positives."
|
9741 |
msgstr ""
|
9742 |
|
9743 |
+
#: lib/wordfenceScanner.php:495
|
9744 |
msgid "Asking Wordfence to check URLs against malware list."
|
9745 |
msgstr ""
|
9746 |
|
9747 |
+
#: lib/wordfenceScanner.php:523
|
9748 |
+
#: lib/wordfenceScanner.php:565
|
9749 |
msgid "File contains suspected malware URL: "
|
9750 |
msgstr ""
|
9751 |
|
9752 |
#. translators: 1. Malware signature matched text. 2. Malicious URL. 3. Malicious URL.
|
9753 |
+
#: lib/wordfenceScanner.php:526
|
9754 |
msgid "This file contains a suspected malware URL listed on Google's list of malware sites. Wordfence decodes %1$s when scanning files so the URL may not be visible if you view this file. The URL is: %2$s - More info available at <a href=\"http://safebrowsing.clients.google.com/safebrowsing/diagnostic?site=%3$s&client=googlechrome&hl=en-US\" target=\"_blank\" rel=\"noopener noreferrer\">Google Safe Browsing diagnostic page<span class=\"screen-reader-text\"> (opens in new tab)</span></a>."
|
9755 |
msgstr ""
|
9756 |
|
9757 |
+
#: lib/wordfenceScanner.php:547
|
9758 |
msgid "File contains suspected phishing URL: "
|
9759 |
msgstr ""
|
9760 |
|
9761 |
+
#: lib/wordfenceScanner.php:548
|
9762 |
msgid "This file contains a URL that is a suspected phishing site that is currently listed on Google's list of known phishing sites. The URL is: "
|
9763 |
msgstr ""
|
9764 |
|
9765 |
+
#: lib/wordfenceScanner.php:566
|
9766 |
msgid "This file contains a URL that is currently listed on Wordfence's domain blocklist. The URL is: "
|
9767 |
msgstr ""
|
9768 |
|
9769 |
+
#: lib/wordfenceScanner.php:582
|
9770 |
msgid "Finalizing malware scan results"
|
9771 |
msgstr ""
|
9772 |
|
9773 |
#. translators: 1. Number of fils. 2. Seconds in millisecond precision.
|
9774 |
+
#: lib/wordfenceScanner.php:604
|
9775 |
msgid "Scanned contents of %1$d additional files at %2$.2f per second"
|
9776 |
msgstr ""
|
9777 |
|
10542 |
msgid "Separate multiple addresses with commas"
|
10543 |
msgstr ""
|
10544 |
|
10545 |
+
#: views/dashboard/options-group-general.php:74
|
10546 |
+
msgid "If this option is disabled, Wordfence can look up countries for visitor IP addresses using a local database, but cannot look up regions or cities"
|
10547 |
+
msgstr ""
|
10548 |
+
|
10549 |
+
#: views/dashboard/options-group-general.php:121
|
10550 |
msgid "Setting higher will reduce browser traffic but slow scan starts, live traffic & status updates."
|
10551 |
msgstr ""
|
10552 |
|
10553 |
+
#: views/dashboard/options-group-general.php:146
|
10554 |
msgid "Note: This does not include Login Security settings and tables. An option to delete those must be selected separately on the Login Security settings page."
|
10555 |
msgstr ""
|
10556 |
|
11180 |
#: views/scanner/issue-wfPluginUpgrade.php:16
|
11181 |
#: views/scanner/issue-wfPluginUpgrade.php:32
|
11182 |
#: views/scanner/issue-wfPluginVulnerable.php:15
|
11183 |
+
#: views/scanner/issue-wfPluginVulnerable.php:29
|
11184 |
#: views/scanner/issue-wfThemeUpgrade.php:16
|
11185 |
#: views/scanner/issue-wfThemeUpgrade.php:31
|
11186 |
#: views/scanner/issue-wfUpgrade.php:15
|
11216 |
#: views/scanner/issue-wfPluginAbandoned.php:23
|
11217 |
#: views/scanner/issue-wfPluginRemoved.php:21
|
11218 |
#: views/scanner/issue-wfPluginUpgrade.php:23
|
11219 |
+
#: views/scanner/issue-wfPluginVulnerable.php:21
|
11220 |
#: views/scanner/issue-wfThemeUpgrade.php:22
|
11221 |
#: views/scanner/issue-wfUpgrade.php:20
|
11222 |
#: views/scanner/issue-wpscan_directoryList.php:19
|
11515 |
#: views/scanner/issue-wfPluginUpgrade.php:12
|
11516 |
#: views/scanner/issue-wfPluginUpgrade.php:28
|
11517 |
#: views/scanner/issue-wfPluginVulnerable.php:12
|
11518 |
+
#: views/scanner/issue-wfPluginVulnerable.php:26
|
11519 |
msgid "Plugin Name"
|
11520 |
msgstr ""
|
11521 |
|
11526 |
#: views/scanner/issue-wfPluginUpgrade.php:13
|
11527 |
#: views/scanner/issue-wfPluginUpgrade.php:29
|
11528 |
#: views/scanner/issue-wfPluginVulnerable.php:13
|
11529 |
+
#: views/scanner/issue-wfPluginVulnerable.php:27
|
11530 |
msgid "Current Plugin Version"
|
11531 |
msgstr ""
|
11532 |
|
11546 |
#: views/scanner/issue-wfPluginRemoved.php:31
|
11547 |
#: views/scanner/issue-wfPluginUpgrade.php:18
|
11548 |
#: views/scanner/issue-wfPluginUpgrade.php:35
|
|
|
|
|
11549 |
msgid "Plugin URL"
|
11550 |
msgstr ""
|
11551 |
|
11552 |
#: views/scanner/issue-wfPluginAbandoned.php:19
|
11553 |
#: views/scanner/issue-wfPluginAbandoned.php:36
|
11554 |
#: views/scanner/issue-wfPluginUpgrade.php:36
|
11555 |
+
#: views/scanner/issue-wfPluginVulnerable.php:17
|
|
|
11556 |
msgid "Repository URL"
|
11557 |
msgstr ""
|
11558 |
|
11559 |
#: views/scanner/issue-wfPluginAbandoned.php:24
|
11560 |
#: views/scanner/issue-wfPluginRemoved.php:22
|
11561 |
+
#: views/scanner/issue-wfPluginVulnerable.php:22
|
11562 |
msgid "Manage Plugins"
|
11563 |
msgstr ""
|
11564 |
|
11668 |
msgid "Additional scan signatures (one per line)"
|
11669 |
msgstr ""
|
11670 |
|
|
|
|
|
|
|
|
|
11671 |
#: views/scanner/options-group-advanced.php:60
|
11672 |
msgid "This option requires cURL. (This may have no effect on some old PHP or cURL versions.)"
|
11673 |
msgstr ""
|
11721 |
msgid "Scan Scheduling"
|
11722 |
msgstr ""
|
11723 |
|
11724 |
+
#: views/scanner/scan-failed.php:15
|
11725 |
msgid "Scan Failed"
|
11726 |
msgstr ""
|
11727 |
|
11728 |
+
#: views/scanner/scan-failed.php:26
|
11729 |
msgid "The error returned was:"
|
11730 |
msgstr ""
|
11731 |
|
12079 |
msgstr ""
|
12080 |
|
12081 |
#: views/tools/options-group-live-traffic.php:123
|
12082 |
+
msgid "Maximum days to keep Live Traffic data (1-30 days)"
|
12083 |
msgstr ""
|
12084 |
|
12085 |
#: views/tools/options-group-live-traffic.php:135
|
lib/email_newIssues.php
CHANGED
@@ -43,12 +43,6 @@
|
|
43 |
</div>
|
44 |
<?php endif ?>
|
45 |
|
46 |
-
<?php if (wfConfig::get('betaThreatDefenseFeed')): ?>
|
47 |
-
<div style="margin: 12px 0;padding: 8px; background-color: #ffffe0; border: 1px solid #ffd975; border-width: 1px 1px 1px 10px;">
|
48 |
-
<?php esc_html_e('Beta scan signatures are currently enabled. These signatures have not been fully tested yet and may cause false positives or scan stability issues on some sites.', 'wordfence'); echo ' '; esc_html_e('The Beta option can be turned off at the bottom of the Diagnostics page.', 'wordfence'); ?>
|
49 |
-
</div>
|
50 |
-
<?php endif; ?>
|
51 |
-
|
52 |
<?php if ($timeLimitReached): ?>
|
53 |
<div style="margin: 12px 0;padding: 8px; background-color: #ffffe0; border: 1px solid #ffd975; border-width: 1px 1px 1px 10px;">
|
54 |
<em><?php echo wp_kses(sprintf(
|
@@ -103,7 +97,8 @@ foreach ($severitySections as $severityLevel => $severityLabel):
|
|
103 |
echo '<p>';
|
104 |
}
|
105 |
if (!empty($i['tmplData']['vulnerable'])) {
|
106 |
-
|
|
|
107 |
if (isset($i['tmplData']['vulnerabilityLink'])) {
|
108 |
echo ' <a href="' . $i['tmplData']['vulnerabilityLink'] . '" target="_blank" rel="nofollow noreferrer noopener">' . esc_html__('Vulnerability Information', 'wordfence') . '</a>';
|
109 |
}
|
@@ -160,5 +155,4 @@ if (count($sentences)) {
|
|
160 |
<p><?php esc_html_e('Click here to upgrade to Wordfence Premium:', 'wordfence'); ?><br><a href="https://www.wordfence.com/zz2/wordfence-signup/">https://www.wordfence.com/zz2/wordfence-signup/</a></p>
|
161 |
<?php } ?>
|
162 |
|
163 |
-
<p><!-- ##UNSUBSCRIBE## --></p>
|
164 |
-
|
43 |
</div>
|
44 |
<?php endif ?>
|
45 |
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
<?php if ($timeLimitReached): ?>
|
47 |
<div style="margin: 12px 0;padding: 8px; background-color: #ffffe0; border: 1px solid #ffd975; border-width: 1px 1px 1px 10px;">
|
48 |
<em><?php echo wp_kses(sprintf(
|
97 |
echo '<p>';
|
98 |
}
|
99 |
if (!empty($i['tmplData']['vulnerable'])) {
|
100 |
+
if (isset($i['tmplData']['updateAvailable']) && $i['tmplData']['updateAvailable'] !== false)
|
101 |
+
echo '<strong>' . esc_html__('Update includes security-related fixes.', 'wordfence') . '</strong>';
|
102 |
if (isset($i['tmplData']['vulnerabilityLink'])) {
|
103 |
echo ' <a href="' . $i['tmplData']['vulnerabilityLink'] . '" target="_blank" rel="nofollow noreferrer noopener">' . esc_html__('Vulnerability Information', 'wordfence') . '</a>';
|
104 |
}
|
155 |
<p><?php esc_html_e('Click here to upgrade to Wordfence Premium:', 'wordfence'); ?><br><a href="https://www.wordfence.com/zz2/wordfence-signup/">https://www.wordfence.com/zz2/wordfence-signup/</a></p>
|
156 |
<?php } ?>
|
157 |
|
158 |
+
<p><!-- ##UNSUBSCRIBE## --></p>
|
|
lib/menu_options.php
CHANGED
@@ -73,6 +73,7 @@ if (isset($_GET['source']) && wfPage::isValidPage($_GET['source'])) {
|
|
73 |
'wf-option-alertEmails' => __('Where to email alerts', 'wordfence'),
|
74 |
'wf-option-howGetIPs' => __('How does Wordfence get IPs', 'wordfence'),
|
75 |
'wf-option-howGetIPs-trusted-proxies' => __('Trusted Proxies', 'wordfence'),
|
|
|
76 |
'wf-option-other-hideWPVersion' => __('Hide WordPress version', 'wordfence'),
|
77 |
'wf-option-disableCodeExecutionUploads' => __('Disable Code Execution for Uploads directory', 'wordfence'),
|
78 |
'wf-option-liveActivityPauseEnabled' => __('Pause live updates when window loses focus', 'wordfence'),
|
@@ -176,6 +177,8 @@ if (isset($_GET['source']) && wfPage::isValidPage($_GET['source'])) {
|
|
176 |
'wf-option-maxExecutionTime' => __('Maximum execution time for each scan stage', 'wordfence'),
|
177 |
'wf-option-scan-exclude' => __('Exclude files from scan that match these wildcard patterns', 'wordfence'),
|
178 |
'wf-option-scan-include-extra' => __('Additional scan signatures', 'wordfence'),
|
|
|
|
|
179 |
'wf-option-liveTrafficEnabled' => __('Traffic logging mode (Live Traffic)', 'wordfence'),
|
180 |
'wf-option-liveTraf-ignorePublishers' => __('Don\'t log signed-in users with publishing access', 'wordfence'),
|
181 |
'wf-option-liveTraf-ignoreUsers' => __('List of comma separated usernames to ignore', 'wordfence'),
|
@@ -433,4 +436,4 @@ else if (wfConfig::get('touppPromptNeeded')) {
|
|
433 |
</div> <!-- end content block -->
|
434 |
</div> <!-- end row -->
|
435 |
</div> <!-- end container -->
|
436 |
-
</div>
|
73 |
'wf-option-alertEmails' => __('Where to email alerts', 'wordfence'),
|
74 |
'wf-option-howGetIPs' => __('How does Wordfence get IPs', 'wordfence'),
|
75 |
'wf-option-howGetIPs-trusted-proxies' => __('Trusted Proxies', 'wordfence'),
|
76 |
+
'wf-option-enableRemoteIpLookup' => __('Look up visitor IP locations via Wordfence servers', 'wordfence'),
|
77 |
'wf-option-other-hideWPVersion' => __('Hide WordPress version', 'wordfence'),
|
78 |
'wf-option-disableCodeExecutionUploads' => __('Disable Code Execution for Uploads directory', 'wordfence'),
|
79 |
'wf-option-liveActivityPauseEnabled' => __('Pause live updates when window loses focus', 'wordfence'),
|
177 |
'wf-option-maxExecutionTime' => __('Maximum execution time for each scan stage', 'wordfence'),
|
178 |
'wf-option-scan-exclude' => __('Exclude files from scan that match these wildcard patterns', 'wordfence'),
|
179 |
'wf-option-scan-include-extra' => __('Additional scan signatures', 'wordfence'),
|
180 |
+
'wf-option-scan-force-ipv4-start' => __('Use only IPv4 to start scans', 'wordfence'),
|
181 |
+
'wf-option-scan-max-resume-attempts' => __('Maximum number of attempts to resume each scan stage', 'wordfence'),
|
182 |
'wf-option-liveTrafficEnabled' => __('Traffic logging mode (Live Traffic)', 'wordfence'),
|
183 |
'wf-option-liveTraf-ignorePublishers' => __('Don\'t log signed-in users with publishing access', 'wordfence'),
|
184 |
'wf-option-liveTraf-ignoreUsers' => __('List of comma separated usernames to ignore', 'wordfence'),
|
436 |
</div> <!-- end content block -->
|
437 |
</div> <!-- end row -->
|
438 |
</div> <!-- end container -->
|
439 |
+
</div>
|
lib/menu_scanner.php
CHANGED
@@ -114,12 +114,6 @@ else if (wfConfig::get('touppPromptNeeded')) {
|
|
114 |
<div class="wf-row">
|
115 |
<div class="wf-col-xs-12">
|
116 |
<div class="wf-block wf-active">
|
117 |
-
<?php if (wfConfig::get('betaThreatDefenseFeed')): ?>
|
118 |
-
<ul class="wf-block-banner">
|
119 |
-
<li><?php esc_html_e('Beta scan signatures are currently enabled. These signatures have not been fully tested yet and may cause false positives or scan stability issues on some sites.', 'wordfence'); ?></li>
|
120 |
-
<li><a href="#" class="wf-btn wf-btn-default" id="wf-beta-disable" role="button"><?php esc_html_e('Turn Off Beta Signatures', 'wordfence'); ?></a></li>
|
121 |
-
</ul>
|
122 |
-
<?php endif; ?>
|
123 |
<div class="wf-block-content">
|
124 |
<ul class="wf-block-list">
|
125 |
<li>
|
@@ -399,19 +393,4 @@ if (wfOnboardingController::willShowNewTour(wfOnboardingController::TOUR_SCAN)):
|
|
399 |
<div id="wf-tour-close"><a href="#" role="button"><i class="wf-fa wf-fa-times-circle" aria-hidden="true"></i></a></div>
|
400 |
</div>
|
401 |
</script>
|
402 |
-
<?php endif; ?>
|
403 |
-
|
404 |
-
<script type="application/javascript">
|
405 |
-
(function($) {
|
406 |
-
$(function() {
|
407 |
-
$('#wf-beta-disable').on('click', function(e) {
|
408 |
-
e.preventDefault();
|
409 |
-
e.stopPropagation();
|
410 |
-
|
411 |
-
WFAD.setOption('betaThreatDefenseFeed', 0, function() {
|
412 |
-
window.location.reload(true);
|
413 |
-
});
|
414 |
-
});
|
415 |
-
});
|
416 |
-
})(jQuery);
|
417 |
-
</script>
|
114 |
<div class="wf-row">
|
115 |
<div class="wf-col-xs-12">
|
116 |
<div class="wf-block wf-active">
|
|
|
|
|
|
|
|
|
|
|
|
|
117 |
<div class="wf-block-content">
|
118 |
<ul class="wf-block-list">
|
119 |
<li>
|
393 |
<div id="wf-tour-close"><a href="#" role="button"><i class="wf-fa wf-fa-times-circle" aria-hidden="true"></i></a></div>
|
394 |
</div>
|
395 |
</script>
|
396 |
+
<?php endif; ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/menu_tools_diagnostic.php
CHANGED
@@ -31,7 +31,7 @@ if (!isset($sendingDiagnosticEmail)) {
|
|
31 |
<div class="wf-diagnostics-wrapper">
|
32 |
<div class="wf-flex-row">
|
33 |
<div class="wf-flex-row-1">
|
34 |
-
<?php
|
35 |
</div>
|
36 |
<div class="wf-flex-row-0 wf-padding-add-left">
|
37 |
<div id="sendByEmailThanks" class="hidden">
|
@@ -867,18 +867,6 @@ if (!isset($sendingDiagnosticEmail)) {
|
|
867 |
))->render();
|
868 |
?>
|
869 |
</li>
|
870 |
-
<li>
|
871 |
-
<?php
|
872 |
-
echo wfView::create('options/option-toggled', array(
|
873 |
-
'optionName' => 'betaThreatDefenseFeed',
|
874 |
-
'enabledValue' => 1,
|
875 |
-
'disabledValue' => 0,
|
876 |
-
'value' => $w->get('betaThreatDefenseFeed') ? 1 : 0,
|
877 |
-
'title' => __('Enable beta threat defense feed', 'wordfence'),
|
878 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_DIAGNOSTICS_OPTION_BETA_TDF),
|
879 |
-
))->render();
|
880 |
-
?>
|
881 |
-
</li>
|
882 |
<li>
|
883 |
<?php
|
884 |
echo wfView::create('options/option-toggled', array(
|
31 |
<div class="wf-diagnostics-wrapper">
|
32 |
<div class="wf-flex-row">
|
33 |
<div class="wf-flex-row-1">
|
34 |
+
<?php echo wp_kses(sprintf(__('This page shows information that can be used for troubleshooting conflicts, configuration issues, or compatibility with other plugins, themes, or a host\'s environment. Failing tests are not always a sign of something that you need to fix, but can help the Wordfence team when troubleshooting a problem. (<a href="%s" target="_blank" rel="noopener noreferrer">Learn More <span class="screen-reader-text">opens in new tab</span></a>)', 'wordfence'), wfSupportController::esc_supportURL(wfSupportController::ITEM_DIAGNOSTICS)), array('a' => array('href' => array(), 'target' => array(), 'rel' => array()), 'span' => array('class' => array()))) ?>
|
35 |
</div>
|
36 |
<div class="wf-flex-row-0 wf-padding-add-left">
|
37 |
<div id="sendByEmailThanks" class="hidden">
|
867 |
))->render();
|
868 |
?>
|
869 |
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
870 |
<li>
|
871 |
<?php
|
872 |
echo wfView::create('options/option-toggled', array(
|
lib/wfAPI.php
CHANGED
@@ -197,8 +197,7 @@ class wfAPI {
|
|
197 |
|
198 |
return self::buildQuery(array(
|
199 |
'k' => $this->APIKey,
|
200 |
-
's' => wfUtils::base64url_encode(json_encode($values))
|
201 |
-
'betaFeed' => (int) wfConfig::get('betaThreatDefenseFeed'),
|
202 |
));
|
203 |
}
|
204 |
|
197 |
|
198 |
return self::buildQuery(array(
|
199 |
'k' => $this->APIKey,
|
200 |
+
's' => wfUtils::base64url_encode(json_encode($values))
|
|
|
201 |
));
|
202 |
}
|
203 |
|
lib/wfConfig.php
CHANGED
@@ -98,6 +98,7 @@ class wfConfig {
|
|
98 |
"notification_blogHighlights" => array('value' => true, 'autoload' => self::AUTOLOAD),
|
99 |
"notification_productUpdates" => array('value' => true, 'autoload' => self::AUTOLOAD),
|
100 |
"notification_scanStatus" => array('value' => true, 'autoload' => self::AUTOLOAD),
|
|
|
101 |
"other_hideWPVersion" => array('value' => false, 'autoload' => self::AUTOLOAD),
|
102 |
"other_blockBadPOST" => array('value' => false, 'autoload' => self::AUTOLOAD),
|
103 |
"other_scanComments" => array('value' => true, 'autoload' => self::AUTOLOAD),
|
@@ -139,6 +140,7 @@ class wfConfig {
|
|
139 |
'scan_exclude' => array('value' => '', 'autoload' => self::AUTOLOAD, 'validation' => array('type' => self::TYPE_STRING)),
|
140 |
'scan_maxIssues' => array('value' => 1000, 'autoload' => self::AUTOLOAD, 'validation' => array('type' => self::TYPE_INT)),
|
141 |
'scan_maxDuration' => array('value' => '', 'autoload' => self::AUTOLOAD, 'validation' => array('type' => self::TYPE_STRING)),
|
|
|
142 |
'whitelisted' => array('value' => '', 'autoload' => self::AUTOLOAD, 'validation' => array('type' => self::TYPE_STRING)),
|
143 |
'whitelistedServices' => array('value' => '{}', 'autoload' => self::AUTOLOAD, 'validation' => array('type' => self::TYPE_JSON)),
|
144 |
'bannedURLs' => array('value' => '', 'autoload' => self::AUTOLOAD, 'validation' => array('type' => self::TYPE_STRING)),
|
@@ -194,7 +196,6 @@ class wfConfig {
|
|
194 |
'keyType' => array('value' => wfLicense::KEY_TYPE_FREE, 'autoload' => self::AUTOLOAD, 'validation' => array('type' => self::TYPE_STRING)),
|
195 |
'isPaid' => array('value' => false, 'autoload' => self::AUTOLOAD, 'validation' => array('type' => self::TYPE_BOOL)),
|
196 |
'hasKeyConflict' => array('value' => false, 'autoload' => self::AUTOLOAD, 'validation' => array('type' => self::TYPE_BOOL)),
|
197 |
-
'betaThreatDefenseFeed' => array('value' => false, 'autoload' => self::AUTOLOAD, 'validation' => array('type' => self::TYPE_BOOL)),
|
198 |
'timeoffset_wf_updated' => array('value' => 0, 'autoload' => self::AUTOLOAD, 'validation' => array('type' => self::TYPE_INT)),
|
199 |
'cacheType' => array('value' => 'disabled', 'autoload' => self::AUTOLOAD, 'validation' => array('type' => self::TYPE_STRING)),
|
200 |
'detectProxyRecommendation' => array('value' => '', 'autoload' => self::DONT_AUTOLOAD, 'validation' => array('type' => self::TYPE_STRING)),
|
@@ -1328,6 +1329,14 @@ Options -ExecCGI
|
|
1328 |
$checked = true;
|
1329 |
break;
|
1330 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1331 |
}
|
1332 |
}
|
1333 |
|
@@ -1713,16 +1722,6 @@ Options -ExecCGI
|
|
1713 |
$saved = true;
|
1714 |
break;
|
1715 |
}
|
1716 |
-
case 'betaThreatDefenseFeed':
|
1717 |
-
{
|
1718 |
-
$value = wfUtils::truthyToBoolean($value);
|
1719 |
-
wfConfig::set($key, $value);
|
1720 |
-
if (class_exists('wfWAFConfig')) {
|
1721 |
-
wfWAFConfig::set('betaThreatDefenseFeed', $value, 'synced');
|
1722 |
-
}
|
1723 |
-
$saved = true;
|
1724 |
-
break;
|
1725 |
-
}
|
1726 |
case 'liveTraf_maxAge':
|
1727 |
{
|
1728 |
$value = max(1, $value);
|
@@ -1892,6 +1891,7 @@ Options -ExecCGI
|
|
1892 |
'notification_blogHighlights',
|
1893 |
'notification_productUpdates',
|
1894 |
'notification_scanStatus',
|
|
|
1895 |
'other_hideWPVersion',
|
1896 |
'other_bypassLitespeedNoabort',
|
1897 |
'deleteTablesOnDeact',
|
@@ -2032,7 +2032,6 @@ Options -ExecCGI
|
|
2032 |
'debugOn',
|
2033 |
'startScansRemotely',
|
2034 |
'ssl_verify',
|
2035 |
-
'betaThreatDefenseFeed',
|
2036 |
'wordfenceI18n',
|
2037 |
);
|
2038 |
break;
|
98 |
"notification_blogHighlights" => array('value' => true, 'autoload' => self::AUTOLOAD),
|
99 |
"notification_productUpdates" => array('value' => true, 'autoload' => self::AUTOLOAD),
|
100 |
"notification_scanStatus" => array('value' => true, 'autoload' => self::AUTOLOAD),
|
101 |
+
"enableRemoteIpLookup" => array('value' => true, 'autoload' => self::AUTOLOAD),
|
102 |
"other_hideWPVersion" => array('value' => false, 'autoload' => self::AUTOLOAD),
|
103 |
"other_blockBadPOST" => array('value' => false, 'autoload' => self::AUTOLOAD),
|
104 |
"other_scanComments" => array('value' => true, 'autoload' => self::AUTOLOAD),
|
140 |
'scan_exclude' => array('value' => '', 'autoload' => self::AUTOLOAD, 'validation' => array('type' => self::TYPE_STRING)),
|
141 |
'scan_maxIssues' => array('value' => 1000, 'autoload' => self::AUTOLOAD, 'validation' => array('type' => self::TYPE_INT)),
|
142 |
'scan_maxDuration' => array('value' => '', 'autoload' => self::AUTOLOAD, 'validation' => array('type' => self::TYPE_STRING)),
|
143 |
+
"scan_max_resume_attempts" => array('value' => wfScanMonitor::DEFAULT_RESUME_ATTEMPTS, 'autoload' => self::AUTOLOAD, 'validation' => array('type' => self::TYPE_INT)),
|
144 |
'whitelisted' => array('value' => '', 'autoload' => self::AUTOLOAD, 'validation' => array('type' => self::TYPE_STRING)),
|
145 |
'whitelistedServices' => array('value' => '{}', 'autoload' => self::AUTOLOAD, 'validation' => array('type' => self::TYPE_JSON)),
|
146 |
'bannedURLs' => array('value' => '', 'autoload' => self::AUTOLOAD, 'validation' => array('type' => self::TYPE_STRING)),
|
196 |
'keyType' => array('value' => wfLicense::KEY_TYPE_FREE, 'autoload' => self::AUTOLOAD, 'validation' => array('type' => self::TYPE_STRING)),
|
197 |
'isPaid' => array('value' => false, 'autoload' => self::AUTOLOAD, 'validation' => array('type' => self::TYPE_BOOL)),
|
198 |
'hasKeyConflict' => array('value' => false, 'autoload' => self::AUTOLOAD, 'validation' => array('type' => self::TYPE_BOOL)),
|
|
|
199 |
'timeoffset_wf_updated' => array('value' => 0, 'autoload' => self::AUTOLOAD, 'validation' => array('type' => self::TYPE_INT)),
|
200 |
'cacheType' => array('value' => 'disabled', 'autoload' => self::AUTOLOAD, 'validation' => array('type' => self::TYPE_STRING)),
|
201 |
'detectProxyRecommendation' => array('value' => '', 'autoload' => self::DONT_AUTOLOAD, 'validation' => array('type' => self::TYPE_STRING)),
|
1329 |
$checked = true;
|
1330 |
break;
|
1331 |
}
|
1332 |
+
case 'scan_max_resume_attempts':
|
1333 |
+
{
|
1334 |
+
$value = (int) $value;
|
1335 |
+
wfScanMonitor::validateResumeAttempts($value, $valid);
|
1336 |
+
if (!$valid)
|
1337 |
+
$errors[] = array('option' => $key, 'error' => sprintf(__('Invalid number of scan resume attempts specified: %d', 'wordfence'), $value));
|
1338 |
+
break;
|
1339 |
+
}
|
1340 |
}
|
1341 |
}
|
1342 |
|
1722 |
$saved = true;
|
1723 |
break;
|
1724 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1725 |
case 'liveTraf_maxAge':
|
1726 |
{
|
1727 |
$value = max(1, $value);
|
1891 |
'notification_blogHighlights',
|
1892 |
'notification_productUpdates',
|
1893 |
'notification_scanStatus',
|
1894 |
+
'enableRemoteIpLookup',
|
1895 |
'other_hideWPVersion',
|
1896 |
'other_bypassLitespeedNoabort',
|
1897 |
'deleteTablesOnDeact',
|
2032 |
'debugOn',
|
2033 |
'startScansRemotely',
|
2034 |
'ssl_verify',
|
|
|
2035 |
'wordfenceI18n',
|
2036 |
);
|
2037 |
break;
|
lib/wfDiagnostic.php
CHANGED
@@ -129,7 +129,7 @@ class wfDiagnostic
|
|
129 |
'connectToServer1' => __('Connecting to Wordfence servers (http)', 'wordfence'),
|
130 |
'connectToServer2' => __('Connecting to Wordfence servers (https)', 'wordfence'),
|
131 |
'connectToSelf' => __('Connecting back to this site', 'wordfence'),
|
132 |
-
'connectToSelfIpv6' => __('Connecting back to this site via IPv6', 'wordfence'),
|
133 |
'serverIP' => __('IP(s) used by this server', 'wordfence'),
|
134 |
)
|
135 |
),
|
@@ -460,7 +460,7 @@ class wfDiagnostic
|
|
460 |
}
|
461 |
|
462 |
$processOwner = posix_getpwuid(posix_geteuid());
|
463 |
-
if ($processOwner !==
|
464 |
{
|
465 |
return array(
|
466 |
'test' => true,
|
129 |
'connectToServer1' => __('Connecting to Wordfence servers (http)', 'wordfence'),
|
130 |
'connectToServer2' => __('Connecting to Wordfence servers (https)', 'wordfence'),
|
131 |
'connectToSelf' => __('Connecting back to this site', 'wordfence'),
|
132 |
+
'connectToSelfIpv6' => array('raw' => true, 'value' => wp_kses(sprintf(__('Connecting back to this site via IPv6 (not required; failure to connect may not be an issue on some sites) <a href="%s" target="_blank" rel="noopener noreferrer" class="wfhelp"><span class="screen-reader-text"> (opens in new tab)</span></a>', 'wordfence'), wfSupportController::esc_supportURL(wfSupportController::ITEM_DIAGNOSTICS_IPV6)), array('a'=>array('href'=>array(), 'target'=>array(), 'rel'=>array(), 'class'=>array()), 'span'=>array('class'=>array())))),
|
133 |
'serverIP' => __('IP(s) used by this server', 'wordfence'),
|
134 |
)
|
135 |
),
|
460 |
}
|
461 |
|
462 |
$processOwner = posix_getpwuid(posix_geteuid());
|
463 |
+
if ($processOwner !== false)
|
464 |
{
|
465 |
return array(
|
466 |
'test' => true,
|
lib/wfIpLocation.php
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class wfIpLocation {
|
4 |
+
|
5 |
+
const LANGUAGE_DEFAULT = 'en';
|
6 |
+
const LANGUAGE_SEPARATOR = '_';
|
7 |
+
|
8 |
+
private $record;
|
9 |
+
|
10 |
+
public function __construct($record) {
|
11 |
+
$this->record = is_array($record) ? $record : array();
|
12 |
+
}
|
13 |
+
|
14 |
+
public function getCountryRecord() {
|
15 |
+
if (array_key_exists('country', $this->record)) {
|
16 |
+
$country = $this->record['country'];
|
17 |
+
if (is_array($country))
|
18 |
+
return $country;
|
19 |
+
}
|
20 |
+
return array();
|
21 |
+
}
|
22 |
+
|
23 |
+
public function getCountryField($field) {
|
24 |
+
$country = $this->getCountryRecord();
|
25 |
+
if (array_key_exists($field, $country))
|
26 |
+
return $country[$field];
|
27 |
+
return null;
|
28 |
+
}
|
29 |
+
|
30 |
+
public function getCountryCode() {
|
31 |
+
$isoCode = $this->getCountryField('iso_code');
|
32 |
+
if (is_string($isoCode) && strlen($isoCode) === 2)
|
33 |
+
return $isoCode;
|
34 |
+
return null;
|
35 |
+
}
|
36 |
+
|
37 |
+
private function findBestLanguageMatch($options, $preferredLanguage = self::LANGUAGE_DEFAULT) {
|
38 |
+
$languages = array();
|
39 |
+
if (is_string($preferredLanguage))
|
40 |
+
$languages[] = $preferredLanguage;
|
41 |
+
if (strpos($preferredLanguage, self::LANGUAGE_SEPARATOR) !== false) {
|
42 |
+
$components = explode(self::LANGUAGE_SEPARATOR, $preferredLanguage);
|
43 |
+
$baseLanguage = $components[0];
|
44 |
+
if ($baseLanguage !== self::LANGUAGE_DEFAULT)
|
45 |
+
$languages[] = $baseLanguage;
|
46 |
+
}
|
47 |
+
if ($preferredLanguage !== self::LANGUAGE_DEFAULT)
|
48 |
+
$languages[] = self::LANGUAGE_DEFAULT;
|
49 |
+
foreach ($languages as $language) {
|
50 |
+
if (array_key_exists($language, $options))
|
51 |
+
return $options[$language];
|
52 |
+
}
|
53 |
+
if (!empty($options))
|
54 |
+
return reset($options);
|
55 |
+
return null;
|
56 |
+
}
|
57 |
+
|
58 |
+
public function getCountryName($preferredLanguage = self::LANGUAGE_DEFAULT) {
|
59 |
+
$names = $this->getCountryField('names');
|
60 |
+
if (is_array($names) && !empty($names))
|
61 |
+
return $this->findBestLanguageMatch($names, $preferredLanguage);
|
62 |
+
return null;
|
63 |
+
}
|
64 |
+
|
65 |
+
}
|
lib/wfIpLocator.php
ADDED
@@ -0,0 +1,110 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once __DIR__ . '/../vendor/autoload.php';
|
4 |
+
|
5 |
+
require_once __DIR__ . '/wfIpLocation.php';
|
6 |
+
|
7 |
+
use Wordfence\MmdbReader\Database;
|
8 |
+
use Wordfence\MmdbReader\Exception\MmdbThrowable;
|
9 |
+
|
10 |
+
class wfIpLocator {
|
11 |
+
|
12 |
+
const SOURCE_BUNDLED = 0;
|
13 |
+
const SOURCE_WFLOGS = 1;
|
14 |
+
|
15 |
+
const DATABASE_FILE_NAME = 'GeoLite2-Country.mmdb';
|
16 |
+
|
17 |
+
private static $instances = array();
|
18 |
+
|
19 |
+
private $database;
|
20 |
+
private $preferred;
|
21 |
+
|
22 |
+
private function __construct($database, $preferred) {
|
23 |
+
$this->database = $database;
|
24 |
+
$this->preferred = $preferred;
|
25 |
+
}
|
26 |
+
|
27 |
+
public function isPreferred() {
|
28 |
+
return $this->preferred;
|
29 |
+
}
|
30 |
+
|
31 |
+
private static function logError($message) {
|
32 |
+
if (class_exists('wfUtils'))
|
33 |
+
wfUtils::check_and_log_last_error('ip_locator', 'IP Location Error:', $message, 0);
|
34 |
+
}
|
35 |
+
|
36 |
+
public function locate($ip) {
|
37 |
+
if ($this->database !== null) {
|
38 |
+
try {
|
39 |
+
$record = $this->database->search($ip);
|
40 |
+
if ($record !== null)
|
41 |
+
return new wfIpLocation($record);
|
42 |
+
}
|
43 |
+
catch (MmdbThrowable $t) {
|
44 |
+
self::logError('Failed to locate IP address: ' . $t->getMessage());
|
45 |
+
}
|
46 |
+
}
|
47 |
+
return null;
|
48 |
+
}
|
49 |
+
|
50 |
+
public function getCountryCode($ip, $default = '') {
|
51 |
+
$record = $this->locate($ip);
|
52 |
+
if ($record !== null)
|
53 |
+
return $record->getCountryCode();
|
54 |
+
return $default;
|
55 |
+
}
|
56 |
+
|
57 |
+
public function getDatabaseVersion() {
|
58 |
+
if ($this->database !== null) {
|
59 |
+
try {
|
60 |
+
return $this->database->getMetadata()->getBuildEpoch();
|
61 |
+
}
|
62 |
+
catch (MmdbThrowable $t) {
|
63 |
+
self::logError('Failed to retrieve database version: ' . $t->getMessage());
|
64 |
+
}
|
65 |
+
}
|
66 |
+
return null;
|
67 |
+
}
|
68 |
+
|
69 |
+
private static function getDatabaseDirectory($source) {
|
70 |
+
switch ($source) {
|
71 |
+
case self::SOURCE_BUNDLED:
|
72 |
+
return WFWAF_LOG_PATH;
|
73 |
+
case self::SOURCE_BUNDLED:
|
74 |
+
default:
|
75 |
+
return __DIR__;
|
76 |
+
}
|
77 |
+
}
|
78 |
+
|
79 |
+
private static function initializeDatabase($preferredSource, &$isPreferred) {
|
80 |
+
$sources = array();
|
81 |
+
if ($preferredSource !== self::SOURCE_BUNDLED)
|
82 |
+
$sources[] = $preferredSource;
|
83 |
+
$sources[] = self::SOURCE_BUNDLED;
|
84 |
+
$isPreferred = true;
|
85 |
+
foreach ($sources as $source) {
|
86 |
+
$directory = self::getDatabaseDirectory($source);
|
87 |
+
try {
|
88 |
+
$path = $directory . '/' . self::DATABASE_FILE_NAME;
|
89 |
+
if (file_exists($path)) //Preemptive check to prevent warnings
|
90 |
+
return Database::open($path);
|
91 |
+
}
|
92 |
+
catch (MmdbThrowable $t) {
|
93 |
+
self::logError('Failed to initialize IP location database: ' . $t->getMessage());
|
94 |
+
}
|
95 |
+
$preferred = false;
|
96 |
+
}
|
97 |
+
return null;
|
98 |
+
}
|
99 |
+
|
100 |
+
public static function getInstance($preferredSource = null) {
|
101 |
+
if ($preferredSource === null)
|
102 |
+
$preferredSource = self::SOURCE_WFLOGS;
|
103 |
+
if (!array_key_exists($preferredSource, self::$instances)) {
|
104 |
+
$database = self::initializeDatabase($preferredSource, $isPreferred);
|
105 |
+
self::$instances[$preferredSource] = new wfIpLocator($database, $isPreferred);
|
106 |
+
}
|
107 |
+
return self::$instances[$preferredSource];
|
108 |
+
}
|
109 |
+
|
110 |
+
}
|
lib/wfScan.php
CHANGED
@@ -96,7 +96,9 @@ class wfScan {
|
|
96 |
}
|
97 |
wfConfig::set('currentCronKey', '');
|
98 |
/* --------- end cronkey check ---------- */
|
99 |
-
|
|
|
|
|
100 |
$scanMode = wfScanner::SCAN_TYPE_STANDARD;
|
101 |
if (isset($_GET['scanMode']) && wfScanner::isValidScanType($_GET['scanMode'])) {
|
102 |
$scanMode = $_GET['scanMode'];
|
@@ -106,6 +108,8 @@ class wfScan {
|
|
106 |
wfConfig::remove('scanStartAttempt');
|
107 |
$isFork = ($_GET['isFork'] == '1' ? true : false);
|
108 |
|
|
|
|
|
109 |
if(! $isFork){
|
110 |
self::status(4, 'info', __("Checking if scan is already running", 'wordfence'));
|
111 |
if(! wfUtils::getScanLock()){
|
96 |
}
|
97 |
wfConfig::set('currentCronKey', '');
|
98 |
/* --------- end cronkey check ---------- */
|
99 |
+
|
100 |
+
wfScanMonitor::logLastSuccess();
|
101 |
+
|
102 |
$scanMode = wfScanner::SCAN_TYPE_STANDARD;
|
103 |
if (isset($_GET['scanMode']) && wfScanner::isValidScanType($_GET['scanMode'])) {
|
104 |
$scanMode = $_GET['scanMode'];
|
108 |
wfConfig::remove('scanStartAttempt');
|
109 |
$isFork = ($_GET['isFork'] == '1' ? true : false);
|
110 |
|
111 |
+
wfScanMonitor::handleStageStart($isFork);
|
112 |
+
|
113 |
if(! $isFork){
|
114 |
self::status(4, 'info', __("Checking if scan is already running", 'wordfence'));
|
115 |
if(! wfUtils::getScanLock()){
|
lib/wfScanEngine.php
CHANGED
@@ -448,6 +448,8 @@ class wfScanEngine {
|
|
448 |
wfUtils::formatBytes($peakMemory)
|
449 |
));
|
450 |
|
|
|
|
|
451 |
if ($this->isFullScan()) {
|
452 |
$this->status(1, 'info', sprintf(
|
453 |
/* translators: 1. Number of files. 2. Number of plugins. 3. Number of themes. 4. Number of posts. 5. Number of comments. 6. Number of URLs. 7. Time duration. */
|
@@ -2112,26 +2114,38 @@ class wfScanEngine {
|
|
2112 |
}
|
2113 |
}
|
2114 |
|
2115 |
-
//
|
2116 |
-
|
2117 |
-
|
2118 |
-
|
2119 |
-
|
2120 |
-
|
2121 |
-
|
2122 |
-
|
2123 |
-
|
2124 |
-
|
2125 |
-
|
2126 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2127 |
if ($added == wfIssues::ISSUE_ADDED || $added == wfIssues::ISSUE_UPDATED) { $haveIssues = wfIssues::STATUS_PROBLEM; }
|
2128 |
else if ($haveIssues != wfIssues::STATUS_PROBLEM && ($added == wfIssues::ISSUE_IGNOREP || $added == wfIssues::ISSUE_IGNOREC)) { $haveIssues = wfIssues::STATUS_IGNORED; }
|
2129 |
|
2130 |
-
|
2131 |
-
unset($allPlugins[$plugin['slug']]);
|
2132 |
-
}
|
2133 |
}
|
2134 |
-
}
|
2135 |
}
|
2136 |
|
2137 |
$this->updateCheck = false;
|
@@ -2368,6 +2382,7 @@ class wfScanEngine {
|
|
2368 |
}
|
2369 |
|
2370 |
public static function requestKill() {
|
|
|
2371 |
wfConfig::set('wfKillRequested', time(), wfConfig::DONT_AUTOLOAD);
|
2372 |
}
|
2373 |
|
@@ -2397,7 +2412,9 @@ class wfScanEngine {
|
|
2397 |
return __("A scan is already running. Use the stop scan button if you would like to terminate the current scan.", 'wordfence');
|
2398 |
}
|
2399 |
wfConfig::set('currentCronKey', ''); //Ensure the cron key is cleared
|
|
|
2400 |
}
|
|
|
2401 |
$timeout = self::getMaxExecutionTime() - 2; //2 seconds shorter than max execution time which ensures that only 2 HTTP processes are ever occupied
|
2402 |
$testURL = admin_url('admin-ajax.php?action=wordfence_testAjax');
|
2403 |
$forceIpv4 = wfConfig::get('scan_force_ipv4_start');
|
@@ -2405,25 +2422,34 @@ class wfScanEngine {
|
|
2405 |
if ($forceIpv4)
|
2406 |
$interceptor->setOption(CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
|
2407 |
if (!wfConfig::get('startScansRemotely', false)) {
|
2408 |
-
|
2409 |
-
$
|
2410 |
-
|
2411 |
-
|
2412 |
-
|
2413 |
-
|
2414 |
-
|
2415 |
-
|
2416 |
-
|
2417 |
-
|
2418 |
-
|
2419 |
-
|
|
|
|
|
|
|
|
|
|
|
2420 |
|
2421 |
-
|
|
|
|
|
|
|
|
|
2422 |
}
|
2423 |
|
2424 |
$cronKey = wfUtils::bigRandomHex();
|
2425 |
wfConfig::set('currentCronKey', time() . ',' . $cronKey);
|
2426 |
-
if ((!wfConfig::get('startScansRemotely', false)) &&
|
2427 |
//ajax requests can be sent by the server to itself
|
2428 |
$cronURL = self::_localStartURL($isFork, $scanMode, $cronKey);
|
2429 |
$headers = array('Referer' => false/*, 'Cookie' => 'XDEBUG_SESSION=1'*/);
|
448 |
wfUtils::formatBytes($peakMemory)
|
449 |
));
|
450 |
|
451 |
+
wfScanMonitor::endMonitoring();
|
452 |
+
|
453 |
if ($this->isFullScan()) {
|
454 |
$this->status(1, 'info', sprintf(
|
455 |
/* translators: 1. Number of files. 2. Number of plugins. 3. Number of themes. 4. Number of posts. 5. Number of comments. 6. Number of URLs. 7. Time duration. */
|
2114 |
}
|
2115 |
}
|
2116 |
|
2117 |
+
//Handle plugins that either do not exist in the repo or do not have updates available
|
2118 |
+
foreach ($allPlugins as $slug => $plugin) {
|
2119 |
+
if ($plugin['vulnerable']) {
|
2120 |
+
$key = implode(' ', array('wfPluginVulnerable', $plugin['pluginFile'], $plugin['Version']));
|
2121 |
+
$shortMsg = sprintf(__('The Plugin "%s" has a security vulnerability.', 'wordfence'), $plugin['Name']);
|
2122 |
+
$longMsg = sprintf(
|
2123 |
+
wp_kses(
|
2124 |
+
__('To protect your site from this vulnerability, the safest option is to deactivate and completely remove "%s" until a patched version is available. <a href="%s" target="_blank" rel="noopener noreferrer">Get more information.<span class="screen-reader-text"> (opens in new tab)</span></a>', 'wordfence'),
|
2125 |
+
array(
|
2126 |
+
'a' => array(
|
2127 |
+
'href' => array(),
|
2128 |
+
'target' => array(),
|
2129 |
+
'rel' => array(),
|
2130 |
+
),
|
2131 |
+
'span' => array(
|
2132 |
+
'class' => array()
|
2133 |
+
)
|
2134 |
+
)
|
2135 |
+
),
|
2136 |
+
$plugin['Name'],
|
2137 |
+
wfSupportController::esc_supportURL(wfSupportController::ITEM_SCAN_RESULT_PLUGIN_VULNERABLE)
|
2138 |
+
);
|
2139 |
+
if (is_string($plugin['vulnerable']))
|
2140 |
+
$plugin['vulnerabilityLink'] = $plugin['vulnerable'];
|
2141 |
+
$plugin['updatedAvailable'] = false;
|
2142 |
+
$added = $this->addIssue('wfPluginVulnerable', wfIssues::SEVERITY_CRITICAL, $key, $key, $shortMsg, $longMsg, $plugin);
|
2143 |
if ($added == wfIssues::ISSUE_ADDED || $added == wfIssues::ISSUE_UPDATED) { $haveIssues = wfIssues::STATUS_PROBLEM; }
|
2144 |
else if ($haveIssues != wfIssues::STATUS_PROBLEM && ($added == wfIssues::ISSUE_IGNOREP || $added == wfIssues::ISSUE_IGNOREC)) { $haveIssues = wfIssues::STATUS_IGNORED; }
|
2145 |
|
2146 |
+
unset($allPlugins[$slug]);
|
|
|
|
|
2147 |
}
|
2148 |
+
}
|
2149 |
}
|
2150 |
|
2151 |
$this->updateCheck = false;
|
2382 |
}
|
2383 |
|
2384 |
public static function requestKill() {
|
2385 |
+
wfScanMonitor::endMonitoring();
|
2386 |
wfConfig::set('wfKillRequested', time(), wfConfig::DONT_AUTOLOAD);
|
2387 |
}
|
2388 |
|
2412 |
return __("A scan is already running. Use the stop scan button if you would like to terminate the current scan.", 'wordfence');
|
2413 |
}
|
2414 |
wfConfig::set('currentCronKey', ''); //Ensure the cron key is cleared
|
2415 |
+
wfScanMonitor::handleScanStart($scanMode);
|
2416 |
}
|
2417 |
+
wfScanMonitor::logLastAttempt($isFork);
|
2418 |
$timeout = self::getMaxExecutionTime() - 2; //2 seconds shorter than max execution time which ensures that only 2 HTTP processes are ever occupied
|
2419 |
$testURL = admin_url('admin-ajax.php?action=wordfence_testAjax');
|
2420 |
$forceIpv4 = wfConfig::get('scan_force_ipv4_start');
|
2422 |
if ($forceIpv4)
|
2423 |
$interceptor->setOption(CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
|
2424 |
if (!wfConfig::get('startScansRemotely', false)) {
|
2425 |
+
if ($isFork) {
|
2426 |
+
$testSuccessful = (bool) wfConfig::get('scanAjaxTestSuccessful');
|
2427 |
+
wordfence::status(4, 'info', sprintf(__("Cached result for scan start test: %s", 'wordfence'), var_export($testSuccessful, true)));
|
2428 |
+
}
|
2429 |
+
else {
|
2430 |
+
try {
|
2431 |
+
$testResult = $interceptor->intercept(function () use ($testURL, $timeout) {
|
2432 |
+
return wp_remote_post($testURL, array(
|
2433 |
+
'timeout' => $timeout,
|
2434 |
+
'blocking' => true,
|
2435 |
+
'sslverify' => false,
|
2436 |
+
'headers' => array()
|
2437 |
+
));
|
2438 |
+
});
|
2439 |
+
} catch (Exception $e) {
|
2440 |
+
//Fall through to the remote start test below
|
2441 |
+
}
|
2442 |
|
2443 |
+
wordfence::status(4, 'info', sprintf(/* translators: Scan start test result data. */ __("Test result of scan start URL fetch: %s", 'wordfence'), var_export($testResult, true)));
|
2444 |
+
|
2445 |
+
$testSuccessful = !is_wp_error($testResult) && (is_array($testResult) || $testResult instanceof ArrayAccess) && strstr($testResult['body'], 'WFSCANTESTOK') !== false;
|
2446 |
+
wfConfig::set('scanAjaxTestSuccessful', $testSuccessful);
|
2447 |
+
}
|
2448 |
}
|
2449 |
|
2450 |
$cronKey = wfUtils::bigRandomHex();
|
2451 |
wfConfig::set('currentCronKey', time() . ',' . $cronKey);
|
2452 |
+
if ((!wfConfig::get('startScansRemotely', false)) && $testSuccessful) {
|
2453 |
//ajax requests can be sent by the server to itself
|
2454 |
$cronURL = self::_localStartURL($isFork, $scanMode, $cronKey);
|
2455 |
$headers = array('Referer' => false/*, 'Cookie' => 'XDEBUG_SESSION=1'*/);
|
lib/wfScanMonitor.php
ADDED
@@ -0,0 +1,131 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class wfScanMonitor {
|
4 |
+
|
5 |
+
const CRON_INTERVAL_NAME = 'wf_scan_monitor_interval';
|
6 |
+
const CRON_INTERVAL_AMOUNT = 60; //Seconds
|
7 |
+
const CRON_HOOK = 'wf_scan_monitor';
|
8 |
+
|
9 |
+
const CONFIG_LAST_ATTEMPT = 'scanMonitorLastAttempt';
|
10 |
+
const CONFIG_LAST_ATTEMPT_WAS_FORK = 'scanMonitorLastAttemptWasFork';
|
11 |
+
const CONFIG_LAST_ATTEMPT_MODE = 'scanMonitorLastAttemptMode';
|
12 |
+
const CONFIG_LAST_SUCCESS = 'scanMonitorLastSuccess';
|
13 |
+
const CONFIG_MAX_RESUME_ATTEMPTS = 'scan_max_resume_attempts';
|
14 |
+
const CONFIG_REMAINING_RESUME_ATTEMPTS = 'scanMonitorRemainingResumeAttempts';
|
15 |
+
|
16 |
+
const DEFAULT_RESUME_ATTEMPTS = 2;
|
17 |
+
const MAX_RESUME_ATTEMPTS = 5;
|
18 |
+
const SCAN_START_TIMEOUT = 30; //Seconds
|
19 |
+
|
20 |
+
public static function beginMonitoring() {
|
21 |
+
if (wp_next_scheduled(self::CRON_HOOK))
|
22 |
+
return;
|
23 |
+
wp_schedule_event(time(), self::CRON_INTERVAL_NAME, self::CRON_HOOK);
|
24 |
+
}
|
25 |
+
|
26 |
+
public static function endMonitoring() {
|
27 |
+
$timestamp = wp_next_scheduled(self::CRON_HOOK);
|
28 |
+
if ($timestamp !== false)
|
29 |
+
wp_unschedule_event($timestamp, self::CRON_HOOK);
|
30 |
+
}
|
31 |
+
|
32 |
+
public static function validateResumeAttempts($attempts, &$valid = null) {
|
33 |
+
if ($attempts < 0 || $attempts > self::MAX_RESUME_ATTEMPTS) {
|
34 |
+
$valid = false;
|
35 |
+
return self::DEFAULT_RESUME_ATTEMPTS;
|
36 |
+
}
|
37 |
+
$valid = true;
|
38 |
+
return $attempts;
|
39 |
+
}
|
40 |
+
|
41 |
+
private static function setRemainingResumeAttempts($attempts) {
|
42 |
+
wfConfig::set(self::CONFIG_REMAINING_RESUME_ATTEMPTS, $attempts);
|
43 |
+
}
|
44 |
+
|
45 |
+
public static function getConfiguredResumeAttempts() {
|
46 |
+
$attempts = (int) wfConfig::get(self::CONFIG_MAX_RESUME_ATTEMPTS, self::DEFAULT_RESUME_ATTEMPTS);
|
47 |
+
return self::validateResumeAttempts($attempts);
|
48 |
+
}
|
49 |
+
|
50 |
+
private static function resetResumeAttemptCounter() {
|
51 |
+
$attempts = self::getConfiguredResumeAttempts();
|
52 |
+
self::setRemainingResumeAttempts($attempts);
|
53 |
+
return $attempts;
|
54 |
+
}
|
55 |
+
|
56 |
+
private static function getRemainingResumeAttempts() {
|
57 |
+
$attempts = (int) wfConfig::get(self::CONFIG_REMAINING_RESUME_ATTEMPTS, 0);
|
58 |
+
return self::validateResumeAttempts($attempts);
|
59 |
+
}
|
60 |
+
|
61 |
+
public static function handleScanStart($mode) {
|
62 |
+
wfConfig::set(self::CONFIG_LAST_ATTEMPT_MODE, $mode);
|
63 |
+
$maxAttempts = self::resetResumeAttemptCounter();
|
64 |
+
if ($maxAttempts > 0)
|
65 |
+
self::beginMonitoring();
|
66 |
+
}
|
67 |
+
|
68 |
+
public static function monitorScan() {
|
69 |
+
$remainingAttempts = self::getRemainingResumeAttempts();
|
70 |
+
if ($remainingAttempts > 0) {
|
71 |
+
$now = time();
|
72 |
+
$lastAttempt = wfConfig::get(self::CONFIG_LAST_ATTEMPT);
|
73 |
+
if ($lastAttempt === null || $now - $lastAttempt < self::SCAN_START_TIMEOUT)
|
74 |
+
return;
|
75 |
+
$lastSuccess = wfConfig::get(self::CONFIG_LAST_SUCCESS);
|
76 |
+
if ($lastSuccess === null || $lastAttempt > $lastSuccess) {
|
77 |
+
self::setRemainingResumeAttempts(--$remainingAttempts);
|
78 |
+
wordfence::status(2, 'info', sprintf(__('Attempting to resume scan stage (%d attempt(s) remaining)...', 'wordfence'), $remainingAttempts));
|
79 |
+
self::resumeScan();
|
80 |
+
}
|
81 |
+
}
|
82 |
+
else {
|
83 |
+
self::endMonitoring();
|
84 |
+
}
|
85 |
+
}
|
86 |
+
|
87 |
+
private static function resumeScan() {
|
88 |
+
$mode = wfConfig::get(self::CONFIG_LAST_ATTEMPT_MODE);
|
89 |
+
if (!wfScanner::isValidScanType($mode))
|
90 |
+
$mode = false;
|
91 |
+
wfScanEngine::startScan(wfConfig::get(self::CONFIG_LAST_ATTEMPT_WAS_FORK), $mode);
|
92 |
+
}
|
93 |
+
|
94 |
+
private static function logTimestamp($key) {
|
95 |
+
wfConfig::set($key, time());
|
96 |
+
}
|
97 |
+
|
98 |
+
public static function logLastAttempt($fork) {
|
99 |
+
self::logTimestamp(self::CONFIG_LAST_ATTEMPT);
|
100 |
+
wfConfig::set(self::CONFIG_LAST_ATTEMPT_WAS_FORK, $fork);
|
101 |
+
}
|
102 |
+
|
103 |
+
public static function logLastSuccess() {
|
104 |
+
self::logTimestamp(self::CONFIG_LAST_SUCCESS);
|
105 |
+
}
|
106 |
+
|
107 |
+
public static function handleStageStart($fork) {
|
108 |
+
if ($fork)
|
109 |
+
self::resetResumeAttemptCounter();
|
110 |
+
}
|
111 |
+
|
112 |
+
public static function registerCronInterval($schedules) {
|
113 |
+
if (!array_key_exists(self::CRON_INTERVAL_NAME, $schedules)) {
|
114 |
+
$schedules[self::CRON_INTERVAL_NAME] = array(
|
115 |
+
'interval' => self::CRON_INTERVAL_AMOUNT,
|
116 |
+
'display' => 'Wordfence Scan Monitor'
|
117 |
+
);
|
118 |
+
}
|
119 |
+
return $schedules;
|
120 |
+
}
|
121 |
+
|
122 |
+
public static function registerActions() {
|
123 |
+
add_filter('cron_schedules', array(get_class(), 'registerCronInterval'));
|
124 |
+
add_action(self::CRON_HOOK, array(get_class(), 'monitorScan'));
|
125 |
+
}
|
126 |
+
|
127 |
+
public static function handleDeactivation() {
|
128 |
+
self::endMonitoring();
|
129 |
+
}
|
130 |
+
|
131 |
+
}
|
lib/wfSupportController.php
CHANGED
@@ -25,6 +25,8 @@ class wfSupportController {
|
|
25 |
|
26 |
const ITEM_GDPR = 'gdpr';
|
27 |
const ITEM_GDPR_DPA = 'gdpr-dpa';
|
|
|
|
|
28 |
|
29 |
const ITEM_DASHBOARD = 'dashboard';
|
30 |
const ITEM_DASHBOARD_STATUS_FIREWALL = 'dashboard-status-firewall';
|
@@ -135,6 +137,7 @@ class wfSupportController {
|
|
135 |
const ITEM_SCAN_OPTION_STAGE_TIME_LIMIT = 'scan-option-stage-time-limit';
|
136 |
const ITEM_SCAN_OPTION_EXCLUDE_PATTERNS = 'scan-option-exclude-patterns';
|
137 |
const ITEM_SCAN_OPTION_CUSTOM_MALWARE_SIGNATURES = 'scan-option-custom-malware-signatures';
|
|
|
138 |
const ITEM_SCAN_TIME_LIMIT = 'scan-time-limit';
|
139 |
const ITEM_SCAN_FAILS = 'scan-fails';
|
140 |
const ITEM_SCAN_FAILED_START = 'scan-failed-start';
|
@@ -151,6 +154,7 @@ class wfSupportController {
|
|
151 |
const ITEM_SCAN_RESULT_REPAIR_MODIFIED_FILES = 'scan-result-repair-modified-files';
|
152 |
const ITEM_SCAN_RESULT_MODIFIED_PLUGIN = 'scan-result-modified-plugin';
|
153 |
const ITEM_SCAN_RESULT_MODIFIED_THEME = 'scan-result-modified-theme';
|
|
|
154 |
|
155 |
const ITEM_TOOLS_TWO_FACTOR = 'tools-two-factor';
|
156 |
const ITEM_TOOLS_LIVE_TRAFFIC = 'tools-live-traffic';
|
@@ -158,6 +162,7 @@ class wfSupportController {
|
|
158 |
const ITEM_TOOLS_WHOIS_LOOKUP = 'tools-whois-lookup';
|
159 |
const ITEM_TOOLS_IMPORT_EXPORT = 'tools-import-export';
|
160 |
|
|
|
161 |
const ITEM_DIAGNOSTICS_SYSTEM_CONFIGURATION = 'diagnostics-system-configuration';
|
162 |
const ITEM_DIAGNOSTICS_TEST_MEMORY = 'diagnostics-test-memory';
|
163 |
const ITEM_DIAGNOSTICS_TEST_EMAIL = 'diagnostics-test-email';
|
@@ -169,6 +174,7 @@ class wfSupportController {
|
|
169 |
const ITEM_DIAGNOSTICS_OPTION_DISABLE_PHP_INPUT = 'diagnostics-option-disable-php-input';
|
170 |
const ITEM_DIAGNOSTICS_OPTION_BETA_TDF = 'diagnostics-option-beta-tdf';
|
171 |
const ITEM_DIAGNOSTICS_OPTION_WORDFENCE_TRANSLATIONS = 'diagnostics-option-wordfence-translations';
|
|
|
172 |
|
173 |
const ITEM_MODULE_LOGIN_SECURITY = 'module-login-security';
|
174 |
const ITEM_MODULE_LOGIN_SECURITY_2FA = 'module-login-security-2fa';
|
@@ -208,6 +214,8 @@ class wfSupportController {
|
|
208 |
|
209 |
case self::ITEM_GDPR:
|
210 |
case self::ITEM_GDPR_DPA:
|
|
|
|
|
211 |
|
212 |
case self::ITEM_DASHBOARD:
|
213 |
case self::ITEM_DASHBOARD_STATUS_FIREWALL:
|
@@ -323,6 +331,7 @@ class wfSupportController {
|
|
323 |
case self::ITEM_SCAN_OPTION_STAGE_TIME_LIMIT:
|
324 |
case self::ITEM_SCAN_OPTION_EXCLUDE_PATTERNS:
|
325 |
case self::ITEM_SCAN_OPTION_CUSTOM_MALWARE_SIGNATURES:
|
|
|
326 |
case self::ITEM_SCAN_RESULT_PUBLIC_CONFIG:
|
327 |
case self::ITEM_SCAN_RESULT_PLUGIN_ABANDONED:
|
328 |
case self::ITEM_SCAN_RESULT_PLUGIN_REMOVED:
|
@@ -334,6 +343,7 @@ class wfSupportController {
|
|
334 |
case self::ITEM_SCAN_RESULT_REPAIR_MODIFIED_FILES:
|
335 |
case self::ITEM_SCAN_RESULT_MODIFIED_PLUGIN:
|
336 |
case self::ITEM_SCAN_RESULT_MODIFIED_THEME:
|
|
|
337 |
|
338 |
case self::ITEM_TOOLS_TWO_FACTOR:
|
339 |
case self::ITEM_TOOLS_LIVE_TRAFFIC:
|
@@ -341,6 +351,7 @@ class wfSupportController {
|
|
341 |
case self::ITEM_TOOLS_WHOIS_LOOKUP:
|
342 |
case self::ITEM_TOOLS_IMPORT_EXPORT:
|
343 |
|
|
|
344 |
case self::ITEM_DIAGNOSTICS_SYSTEM_CONFIGURATION:
|
345 |
case self::ITEM_DIAGNOSTICS_TEST_MEMORY:
|
346 |
case self::ITEM_DIAGNOSTICS_TEST_EMAIL:
|
@@ -352,6 +363,7 @@ class wfSupportController {
|
|
352 |
case self::ITEM_DIAGNOSTICS_OPTION_DISABLE_PHP_INPUT:
|
353 |
case self::ITEM_DIAGNOSTICS_OPTION_BETA_TDF:
|
354 |
case self::ITEM_DIAGNOSTICS_OPTION_WORDFENCE_TRANSLATIONS:
|
|
|
355 |
|
356 |
case self::ITEM_MODULE_LOGIN_SECURITY:
|
357 |
case self::ITEM_MODULE_LOGIN_SECURITY_2FA:
|
25 |
|
26 |
const ITEM_GDPR = 'gdpr';
|
27 |
const ITEM_GDPR_DPA = 'gdpr-dpa';
|
28 |
+
|
29 |
+
const ITEM_GENERAL_REMOTE_IP_LOOKUP = 'general-remote-ip-lookup';
|
30 |
|
31 |
const ITEM_DASHBOARD = 'dashboard';
|
32 |
const ITEM_DASHBOARD_STATUS_FIREWALL = 'dashboard-status-firewall';
|
137 |
const ITEM_SCAN_OPTION_STAGE_TIME_LIMIT = 'scan-option-stage-time-limit';
|
138 |
const ITEM_SCAN_OPTION_EXCLUDE_PATTERNS = 'scan-option-exclude-patterns';
|
139 |
const ITEM_SCAN_OPTION_CUSTOM_MALWARE_SIGNATURES = 'scan-option-custom-malware-signatures';
|
140 |
+
const ITEM_SCAN_OPTION_MAX_RESUME_ATTEMPTS = 'scan-option-max-resume-attempts';
|
141 |
const ITEM_SCAN_TIME_LIMIT = 'scan-time-limit';
|
142 |
const ITEM_SCAN_FAILS = 'scan-fails';
|
143 |
const ITEM_SCAN_FAILED_START = 'scan-failed-start';
|
154 |
const ITEM_SCAN_RESULT_REPAIR_MODIFIED_FILES = 'scan-result-repair-modified-files';
|
155 |
const ITEM_SCAN_RESULT_MODIFIED_PLUGIN = 'scan-result-modified-plugin';
|
156 |
const ITEM_SCAN_RESULT_MODIFIED_THEME = 'scan-result-modified-theme';
|
157 |
+
const ITEM_SCAN_RESULT_PLUGIN_VULNERABLE = 'scan-result-plugin-vulnerable';
|
158 |
|
159 |
const ITEM_TOOLS_TWO_FACTOR = 'tools-two-factor';
|
160 |
const ITEM_TOOLS_LIVE_TRAFFIC = 'tools-live-traffic';
|
162 |
const ITEM_TOOLS_WHOIS_LOOKUP = 'tools-whois-lookup';
|
163 |
const ITEM_TOOLS_IMPORT_EXPORT = 'tools-import-export';
|
164 |
|
165 |
+
const ITEM_DIAGNOSTICS = 'diagnostics';
|
166 |
const ITEM_DIAGNOSTICS_SYSTEM_CONFIGURATION = 'diagnostics-system-configuration';
|
167 |
const ITEM_DIAGNOSTICS_TEST_MEMORY = 'diagnostics-test-memory';
|
168 |
const ITEM_DIAGNOSTICS_TEST_EMAIL = 'diagnostics-test-email';
|
174 |
const ITEM_DIAGNOSTICS_OPTION_DISABLE_PHP_INPUT = 'diagnostics-option-disable-php-input';
|
175 |
const ITEM_DIAGNOSTICS_OPTION_BETA_TDF = 'diagnostics-option-beta-tdf';
|
176 |
const ITEM_DIAGNOSTICS_OPTION_WORDFENCE_TRANSLATIONS = 'diagnostics-option-wordfence-translations';
|
177 |
+
const ITEM_DIAGNOSTICS_IPV6 = 'diagnostics-ipv6';
|
178 |
|
179 |
const ITEM_MODULE_LOGIN_SECURITY = 'module-login-security';
|
180 |
const ITEM_MODULE_LOGIN_SECURITY_2FA = 'module-login-security-2fa';
|
214 |
|
215 |
case self::ITEM_GDPR:
|
216 |
case self::ITEM_GDPR_DPA:
|
217 |
+
|
218 |
+
case self::ITEM_GENERAL_REMOTE_IP_LOOKUP:
|
219 |
|
220 |
case self::ITEM_DASHBOARD:
|
221 |
case self::ITEM_DASHBOARD_STATUS_FIREWALL:
|
331 |
case self::ITEM_SCAN_OPTION_STAGE_TIME_LIMIT:
|
332 |
case self::ITEM_SCAN_OPTION_EXCLUDE_PATTERNS:
|
333 |
case self::ITEM_SCAN_OPTION_CUSTOM_MALWARE_SIGNATURES:
|
334 |
+
case self::ITEM_SCAN_OPTION_MAX_RESUME_ATTEMPTS:
|
335 |
case self::ITEM_SCAN_RESULT_PUBLIC_CONFIG:
|
336 |
case self::ITEM_SCAN_RESULT_PLUGIN_ABANDONED:
|
337 |
case self::ITEM_SCAN_RESULT_PLUGIN_REMOVED:
|
343 |
case self::ITEM_SCAN_RESULT_REPAIR_MODIFIED_FILES:
|
344 |
case self::ITEM_SCAN_RESULT_MODIFIED_PLUGIN:
|
345 |
case self::ITEM_SCAN_RESULT_MODIFIED_THEME:
|
346 |
+
case self::ITEM_SCAN_RESULT_PLUGIN_VULNERABLE:
|
347 |
|
348 |
case self::ITEM_TOOLS_TWO_FACTOR:
|
349 |
case self::ITEM_TOOLS_LIVE_TRAFFIC:
|
351 |
case self::ITEM_TOOLS_WHOIS_LOOKUP:
|
352 |
case self::ITEM_TOOLS_IMPORT_EXPORT:
|
353 |
|
354 |
+
case self::ITEM_DIAGNOSTICS:
|
355 |
case self::ITEM_DIAGNOSTICS_SYSTEM_CONFIGURATION:
|
356 |
case self::ITEM_DIAGNOSTICS_TEST_MEMORY:
|
357 |
case self::ITEM_DIAGNOSTICS_TEST_EMAIL:
|
363 |
case self::ITEM_DIAGNOSTICS_OPTION_DISABLE_PHP_INPUT:
|
364 |
case self::ITEM_DIAGNOSTICS_OPTION_BETA_TDF:
|
365 |
case self::ITEM_DIAGNOSTICS_OPTION_WORDFENCE_TRANSLATIONS:
|
366 |
+
case self::ITEM_DIAGNOSTICS_IPV6:
|
367 |
|
368 |
case self::ITEM_MODULE_LOGIN_SECURITY:
|
369 |
case self::ITEM_MODULE_LOGIN_SECURITY_2FA:
|
lib/wfUpdateCheck.php
CHANGED
@@ -110,6 +110,70 @@ class wfUpdateCheck {
|
|
110 |
return $this;
|
111 |
}
|
112 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
/**
|
114 |
* Check if any plugins need an update.
|
115 |
*
|
@@ -121,22 +185,9 @@ class wfUpdateCheck {
|
|
121 |
if($checkVulnerabilities)
|
122 |
$this->plugin_updates = array();
|
123 |
|
124 |
-
|
125 |
-
require_once(ABSPATH . WPINC . '/update.php');
|
126 |
-
}
|
127 |
|
128 |
-
|
129 |
-
require_once(ABSPATH . '/wp-admin/includes/plugin-install.php');
|
130 |
-
}
|
131 |
-
|
132 |
-
$update_plugins = get_site_transient('update_plugins');
|
133 |
-
if ($useCachedValued && isset($update_plugins->last_checked) && 12 * HOUR_IN_SECONDS > (time() - $update_plugins->last_checked)) { //Duplicate of _maybe_update_plugins, which is a private call
|
134 |
-
//Do nothing, use cached value
|
135 |
-
}
|
136 |
-
else {
|
137 |
-
wp_update_plugins();
|
138 |
-
$update_plugins = get_site_transient('update_plugins');
|
139 |
-
}
|
140 |
|
141 |
//Get the full plugin list
|
142 |
if (!function_exists('get_plugins')) {
|
@@ -144,121 +195,37 @@ class wfUpdateCheck {
|
|
144 |
}
|
145 |
$installedPlugins = get_plugins();
|
146 |
|
|
|
|
|
147 |
if ($update_plugins && !empty($update_plugins->response)) {
|
148 |
foreach ($update_plugins->response as $plugin => $vals) {
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
continue;
|
157 |
-
}
|
158 |
-
|
159 |
-
$valsArray = (array) $vals;
|
160 |
-
|
161 |
-
$slug = (isset($valsArray['slug']) ? $valsArray['slug'] : null);
|
162 |
-
if ($slug === null) { //Plugin may have been removed from the repo or was never in it so guess
|
163 |
-
if (preg_match('/^([^\/]+)\//', $pluginFile, $matches)) {
|
164 |
-
$slug = $matches[1];
|
165 |
-
}
|
166 |
-
else if (preg_match('/^([^\/.]+)\.php$/', $pluginFile, $matches)) {
|
167 |
-
$slug = $matches[1];
|
168 |
-
}
|
169 |
-
}
|
170 |
-
|
171 |
-
$data = get_plugin_data($pluginFile);
|
172 |
-
$data['pluginFile'] = $pluginFile;
|
173 |
-
$data['newVersion'] = (isset($valsArray['new_version']) ? $valsArray['new_version'] : 'Unknown');
|
174 |
-
$data['slug'] = $slug;
|
175 |
-
$data['wpURL'] = (isset($valsArray['url']) ? rtrim($valsArray['url'], '/') : null);
|
176 |
-
|
177 |
-
//Check the vulnerability database
|
178 |
-
if ($slug !== null && isset($data['Version']) && $checkVulnerabilities) {
|
179 |
-
$status = $this->isPluginVulnerable($slug, $data['Version']);
|
180 |
-
$data['vulnerable'] = !!$status;
|
181 |
-
if (is_string($status)) {
|
182 |
-
$data['vulnerabilityLink'] = $status;
|
183 |
-
}
|
184 |
-
}
|
185 |
-
else {
|
186 |
-
$data['vulnerable'] = false;
|
187 |
-
}
|
188 |
-
|
189 |
-
if ($slug !== null) {
|
190 |
-
$this->plugin_slugs[] = $slug;
|
191 |
-
$this->all_plugins[$slug] = $data;
|
192 |
-
}
|
193 |
|
194 |
-
if($checkVulnerabilities)
|
195 |
$this->plugin_updates[] = $data;
|
196 |
-
unset($installedPlugins[$plugin]);
|
197 |
}
|
198 |
}
|
199 |
|
200 |
//We have to grab the slugs from the update response because no built-in function exists to return the true slug from the local files
|
201 |
if ($update_plugins && !empty($update_plugins->no_update)) {
|
202 |
foreach ($update_plugins->no_update as $plugin => $vals) {
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
if (!file_exists($pluginFile)) { //Plugin has been removed since the update status was pulled
|
209 |
-
unset($installedPlugins[$plugin]);
|
210 |
-
continue;
|
211 |
-
}
|
212 |
-
|
213 |
-
$valsArray = (array) $vals;
|
214 |
-
|
215 |
-
$data = get_plugin_data($pluginFile);
|
216 |
-
$data['pluginFile'] = $pluginFile;
|
217 |
-
$data['slug'] = (isset($valsArray['slug']) ? $valsArray['slug'] : null);
|
218 |
-
$data['wpURL'] = (isset($valsArray['url']) ? rtrim($valsArray['url'], '/') : null);
|
219 |
-
|
220 |
-
//Check the vulnerability database
|
221 |
-
if (isset($valsArray['slug']) && isset($data['Version']) && $checkVulnerabilities) {
|
222 |
-
$status = $this->isPluginVulnerable($valsArray['slug'], $data['Version']);
|
223 |
-
$data['vulnerable'] = !!$status;
|
224 |
-
if (is_string($status)) {
|
225 |
-
$data['vulnerabilityLink'] = $status;
|
226 |
-
}
|
227 |
-
}
|
228 |
-
else {
|
229 |
-
$data['vulnerable'] = false;
|
230 |
-
}
|
231 |
-
|
232 |
-
if (isset($valsArray['slug'])) {
|
233 |
-
$this->plugin_slugs[] = $valsArray['slug'];
|
234 |
-
$this->all_plugins[$valsArray['slug']] = $data;
|
235 |
-
}
|
236 |
-
|
237 |
-
unset($installedPlugins[$plugin]);
|
238 |
}
|
239 |
}
|
240 |
|
241 |
//Get the remaining plugins (not in the wordpress.org repo for whatever reason)
|
242 |
foreach ($installedPlugins as $plugin => $data) {
|
243 |
-
$
|
244 |
-
if (!file_exists($pluginFile)) { //Plugin has been removed since the list was generated
|
245 |
-
continue;
|
246 |
-
}
|
247 |
-
|
248 |
-
$data = get_plugin_data($pluginFile);
|
249 |
-
|
250 |
-
$slug = null;
|
251 |
-
if (preg_match('/^([^\/]+)\//', $plugin, $matches)) {
|
252 |
-
$slug = $matches[1];
|
253 |
-
}
|
254 |
-
else if (preg_match('/^([^\/.]+)\.php$/', $plugin, $matches)) {
|
255 |
-
$slug = $matches[1];
|
256 |
-
}
|
257 |
-
|
258 |
-
if ($slug !== null) {
|
259 |
-
$this->plugin_slugs[] = $slug;
|
260 |
-
$this->all_plugins[$slug] = $data;
|
261 |
-
}
|
262 |
}
|
263 |
|
264 |
return $this;
|
@@ -322,17 +289,28 @@ class wfUpdateCheck {
|
|
322 |
$this->checkThemeVulnerabilities();
|
323 |
}
|
324 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
325 |
/**
|
326 |
* @param bool $initial if true, treat as the initial scan run
|
327 |
*/
|
328 |
public function checkPluginVulnerabilities($initial=false) {
|
329 |
-
|
330 |
-
|
331 |
-
}
|
332 |
-
|
333 |
-
if (!function_exists('plugins_api')) {
|
334 |
-
require_once(ABSPATH . '/wp-admin/includes/plugin-install.php');
|
335 |
-
}
|
336 |
|
337 |
$vulnerabilities = array();
|
338 |
|
@@ -343,100 +321,24 @@ class wfUpdateCheck {
|
|
343 |
$installedPlugins = get_plugins();
|
344 |
|
345 |
//Get the info for plugins on wordpress.org
|
346 |
-
$this->
|
347 |
-
$update_plugins = get_site_transient('update_plugins');
|
348 |
if ($update_plugins) {
|
349 |
-
if (!function_exists('get_plugin_data'))
|
350 |
-
{
|
351 |
-
require_once(ABSPATH . '/wp-admin/includes/plugin.php');
|
352 |
-
}
|
353 |
-
|
354 |
if (!empty($update_plugins->response)) {
|
355 |
foreach ($update_plugins->response as $plugin => $vals) {
|
356 |
-
$
|
357 |
-
if (!file_exists($pluginFile)) { //Plugin has been removed since the update status was pulled
|
358 |
-
unset($installedPlugins[$plugin]);
|
359 |
-
continue;
|
360 |
-
}
|
361 |
-
|
362 |
-
$valsArray = (array) $vals;
|
363 |
-
$data = get_plugin_data($pluginFile);
|
364 |
-
|
365 |
-
$slug = (isset($valsArray['slug']) ? $valsArray['slug'] : null);
|
366 |
-
if ($slug === null) { //Plugin may have been removed from the repo or was never in it so guess
|
367 |
-
if (preg_match('/^([^\/]+)\//', $plugin, $matches)) {
|
368 |
-
$slug = $matches[1];
|
369 |
-
}
|
370 |
-
else if (preg_match('/^([^\/.]+)\.php$/', $plugin, $matches)) {
|
371 |
-
$slug = $matches[1];
|
372 |
-
}
|
373 |
-
}
|
374 |
-
|
375 |
-
$record = array();
|
376 |
-
$record['slug'] = $slug;
|
377 |
-
$record['toVersion'] = (isset($valsArray['new_version']) ? $valsArray['new_version'] : 'Unknown');
|
378 |
-
$record['fromVersion'] = (isset($data['Version']) ? $data['Version'] : 'Unknown');
|
379 |
-
$record['vulnerable'] = false;
|
380 |
-
$vulnerabilities[] = $record;
|
381 |
-
|
382 |
-
unset($installedPlugins[$plugin]);
|
383 |
}
|
384 |
}
|
385 |
|
386 |
if (!empty($update_plugins->no_update)) {
|
387 |
foreach ($update_plugins->no_update as $plugin => $vals) {
|
388 |
-
$
|
389 |
-
if (!file_exists($pluginFile)) { //Plugin has been removed since the update status was pulled
|
390 |
-
unset($installedPlugins[$plugin]);
|
391 |
-
continue;
|
392 |
-
}
|
393 |
-
|
394 |
-
$valsArray = (array) $vals;
|
395 |
-
$data = get_plugin_data($pluginFile);
|
396 |
-
|
397 |
-
$slug = (isset($valsArray['slug']) ? $valsArray['slug'] : null);
|
398 |
-
if ($slug === null) { //Plugin may have been removed from the repo or was never in it so guess
|
399 |
-
if (preg_match('/^([^\/]+)\//', $plugin, $matches)) {
|
400 |
-
$slug = $matches[1];
|
401 |
-
}
|
402 |
-
else if (preg_match('/^([^\/.]+)\.php$/', $plugin, $matches)) {
|
403 |
-
$slug = $matches[1];
|
404 |
-
}
|
405 |
-
}
|
406 |
-
|
407 |
-
$record = array();
|
408 |
-
$record['slug'] = $slug;
|
409 |
-
$record['fromVersion'] = (isset($data['Version']) ? $data['Version'] : 'Unknown');
|
410 |
-
$record['vulnerable'] = false;
|
411 |
-
$vulnerabilities[] = $record;
|
412 |
-
|
413 |
-
unset($installedPlugins[$plugin]);
|
414 |
}
|
415 |
}
|
416 |
}
|
417 |
|
418 |
//Get the remaining plugins (not in the wordpress.org repo for whatever reason)
|
419 |
foreach ($installedPlugins as $plugin => $data) {
|
420 |
-
$
|
421 |
-
if (!file_exists($pluginFile)) { //Plugin has been removed since the update status was pulled
|
422 |
-
continue;
|
423 |
-
}
|
424 |
-
|
425 |
-
$data = get_plugin_data($pluginFile);
|
426 |
-
|
427 |
-
$slug = null;
|
428 |
-
if (preg_match('/^([^\/]+)\//', $plugin, $matches)) {
|
429 |
-
$slug = $matches[1];
|
430 |
-
}
|
431 |
-
else if (preg_match('/^([^\/.]+)\.php$/', $plugin, $matches)) {
|
432 |
-
$slug = $matches[1];
|
433 |
-
}
|
434 |
-
|
435 |
-
$record = array();
|
436 |
-
$record['slug'] = $slug;
|
437 |
-
$record['fromVersion'] = (isset($data['Version']) ? $data['Version'] : 'Unknown');
|
438 |
-
$record['vulnerable'] = false;
|
439 |
-
$vulnerabilities[] = $record;
|
440 |
}
|
441 |
|
442 |
if (count($vulnerabilities) > 0) {
|
@@ -474,9 +376,7 @@ class wfUpdateCheck {
|
|
474 |
require_once(ABSPATH . WPINC . '/update.php');
|
475 |
}
|
476 |
|
477 |
-
|
478 |
-
require_once(ABSPATH . '/wp-admin/includes/plugin-install.php');
|
479 |
-
}
|
480 |
|
481 |
$this->checkThemeUpdates(!$initial, false);
|
482 |
$update_themes = get_site_transient('update_themes');
|
@@ -605,4 +505,4 @@ class wfUpdateCheck {
|
|
605 |
public function getThemeUpdates() {
|
606 |
return $this->theme_updates;
|
607 |
}
|
608 |
-
}
|
110 |
return $this;
|
111 |
}
|
112 |
|
113 |
+
private function checkPluginFile($plugin, &$installedPlugins) {
|
114 |
+
if (!array_key_exists($plugin, $installedPlugins))
|
115 |
+
return null;
|
116 |
+
$file = wfUtils::getPluginBaseDir() . $plugin;
|
117 |
+
if (!file_exists($file)) {
|
118 |
+
unset($installedPlugins[$plugin]);
|
119 |
+
return null;
|
120 |
+
}
|
121 |
+
return $file;
|
122 |
+
}
|
123 |
+
|
124 |
+
private function initializePluginUpdateData($plugin, &$installedPlugins, $checkVulnerabilities, $populator = null) {
|
125 |
+
$file = $this->checkPluginFile($plugin, $installedPlugins);
|
126 |
+
if ($file === null)
|
127 |
+
return null;
|
128 |
+
$data = $installedPlugins[$plugin];
|
129 |
+
$data['pluginFile'] = $file;
|
130 |
+
if ($populator !== null)
|
131 |
+
$populator($data, $file);
|
132 |
+
if (!array_key_exists('slug', $data) || empty($data['slug']))
|
133 |
+
$data['slug'] = $this->extractSlug($plugin);
|
134 |
+
$slug = $data['slug'];
|
135 |
+
if ($slug !== null) {
|
136 |
+
$vulnerable = $checkVulnerabilities ? $this->isPluginVulnerable($slug, $data['Version']) : null;
|
137 |
+
$data['vulnerable'] = !empty($vulnerable);
|
138 |
+
if ($data['vulnerable'] && is_string($vulnerable))
|
139 |
+
$data['vulnerabilityLink'] = $vulnerable;
|
140 |
+
$this->plugin_slugs[] = $slug;
|
141 |
+
$this->all_plugins[$slug] = $data;
|
142 |
+
}
|
143 |
+
unset($installedPlugins[$plugin]);
|
144 |
+
return $data;
|
145 |
+
}
|
146 |
+
|
147 |
+
public function extractSlug($plugin, $data = null) {
|
148 |
+
$slug = null;
|
149 |
+
if (is_array($data) && array_key_exists('slug', $data))
|
150 |
+
$slug = $data['slug'];
|
151 |
+
if (!is_string($slug) || empty($slug)) {
|
152 |
+
if (preg_match('/^([^\/]+)\//', $plugin, $matches)) {
|
153 |
+
$slug = $matches[1];
|
154 |
+
}
|
155 |
+
else if (preg_match('/^([^\/.]+)\.php$/', $plugin, $matches)) {
|
156 |
+
$slug = $matches[1];
|
157 |
+
}
|
158 |
+
}
|
159 |
+
return $slug;
|
160 |
+
}
|
161 |
+
|
162 |
+
private static function requirePluginsApi() {
|
163 |
+
if (!function_exists('plugins_api'))
|
164 |
+
require_once(ABSPATH . '/wp-admin/includes/plugin-install.php');
|
165 |
+
}
|
166 |
+
|
167 |
+
private function fetchPluginUpdates($useCache = true) {
|
168 |
+
$update_plugins = get_site_transient('update_plugins');
|
169 |
+
if ($useCache && isset($update_plugins->last_checked) && 12 * HOUR_IN_SECONDS > (time() - $update_plugins->last_checked)) //Duplicate of _maybe_update_plugins, which is a private call
|
170 |
+
return $update_plugins;
|
171 |
+
if (!function_exists('wp_update_plugins'))
|
172 |
+
require_once(ABSPATH . WPINC . '/update.php');
|
173 |
+
wp_update_plugins();
|
174 |
+
return get_site_transient('update_plugins');
|
175 |
+
}
|
176 |
+
|
177 |
/**
|
178 |
* Check if any plugins need an update.
|
179 |
*
|
185 |
if($checkVulnerabilities)
|
186 |
$this->plugin_updates = array();
|
187 |
|
188 |
+
self::requirePluginsApi();
|
|
|
|
|
189 |
|
190 |
+
$update_plugins = $this->fetchPluginUpdates();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
191 |
|
192 |
//Get the full plugin list
|
193 |
if (!function_exists('get_plugins')) {
|
195 |
}
|
196 |
$installedPlugins = get_plugins();
|
197 |
|
198 |
+
$context = $this;
|
199 |
+
|
200 |
if ($update_plugins && !empty($update_plugins->response)) {
|
201 |
foreach ($update_plugins->response as $plugin => $vals) {
|
202 |
+
$data = $this->initializePluginUpdateData($plugin, $installedPlugins, $checkVulnerabilities, function (&$data, $file) use ($context, $plugin, $vals) {
|
203 |
+
$vals = (array) $vals;
|
204 |
+
$data['slug'] = $context->extractSlug($plugin, $vals);
|
205 |
+
$data['newVersion'] = (isset($vals['new_version']) ? $vals['new_version'] : 'Unknown');
|
206 |
+
$data['wpURL'] = (isset($vals['url']) ? rtrim($vals['url'], '/') : null);
|
207 |
+
$data['updateAvailable'] = true;
|
208 |
+
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
209 |
|
210 |
+
if($checkVulnerabilities && $data !== null)
|
211 |
$this->plugin_updates[] = $data;
|
|
|
212 |
}
|
213 |
}
|
214 |
|
215 |
//We have to grab the slugs from the update response because no built-in function exists to return the true slug from the local files
|
216 |
if ($update_plugins && !empty($update_plugins->no_update)) {
|
217 |
foreach ($update_plugins->no_update as $plugin => $vals) {
|
218 |
+
$this->initializePluginUpdateData($plugin, $installedPlugins, $checkVulnerabilities, function (&$data, $file) use ($context, $plugin, $vals) {
|
219 |
+
$vals = (array) $vals;
|
220 |
+
$data['slug'] = $context->extractSlug($plugin, $vals);
|
221 |
+
$data['wpURL'] = (isset($vals['url']) ? rtrim($vals['url'], '/') : null);
|
222 |
+
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
223 |
}
|
224 |
}
|
225 |
|
226 |
//Get the remaining plugins (not in the wordpress.org repo for whatever reason)
|
227 |
foreach ($installedPlugins as $plugin => $data) {
|
228 |
+
$data = $this->initializePluginUpdateData($plugin, $installedPlugins, $checkVulnerabilities);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
229 |
}
|
230 |
|
231 |
return $this;
|
289 |
$this->checkThemeVulnerabilities();
|
290 |
}
|
291 |
|
292 |
+
private function initializePluginVulnerabilityData($plugin, &$installedPlugins, &$records, $values = null, $update = false) {
|
293 |
+
$file = $this->checkPluginFile($plugin, $installedPlugins);
|
294 |
+
if ($file === null)
|
295 |
+
return null;
|
296 |
+
$data = $installedPlugins[$plugin];
|
297 |
+
$record = array(
|
298 |
+
'slug' => $this->extractSlug($plugin, $values),
|
299 |
+
'fromVersion' => isset($data['Version']) ? $data['Version'] : 'Unknown',
|
300 |
+
'vulnerable' => false
|
301 |
+
);
|
302 |
+
if ($update && is_array($values))
|
303 |
+
$record['toVersion'] = isset($values['new_version']) ? $values['new_version'] : 'Unknown';
|
304 |
+
$records[] = $record;
|
305 |
+
unset($installedPlugins[$plugin]);
|
306 |
+
}
|
307 |
+
|
308 |
/**
|
309 |
* @param bool $initial if true, treat as the initial scan run
|
310 |
*/
|
311 |
public function checkPluginVulnerabilities($initial=false) {
|
312 |
+
|
313 |
+
self::requirePluginsApi();
|
|
|
|
|
|
|
|
|
|
|
314 |
|
315 |
$vulnerabilities = array();
|
316 |
|
321 |
$installedPlugins = get_plugins();
|
322 |
|
323 |
//Get the info for plugins on wordpress.org
|
324 |
+
$update_plugins = $this->fetchPluginUpdates();
|
|
|
325 |
if ($update_plugins) {
|
|
|
|
|
|
|
|
|
|
|
326 |
if (!empty($update_plugins->response)) {
|
327 |
foreach ($update_plugins->response as $plugin => $vals) {
|
328 |
+
$this->initializePluginVulnerabilityData($plugin, $installedPlugins, $vulnerabilities, (array) $vals, true);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
329 |
}
|
330 |
}
|
331 |
|
332 |
if (!empty($update_plugins->no_update)) {
|
333 |
foreach ($update_plugins->no_update as $plugin => $vals) {
|
334 |
+
$this->initializePluginVulnerabilityData($plugin, $installedPlugins, $vulnerabilities, (array) $vals);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
335 |
}
|
336 |
}
|
337 |
}
|
338 |
|
339 |
//Get the remaining plugins (not in the wordpress.org repo for whatever reason)
|
340 |
foreach ($installedPlugins as $plugin => $data) {
|
341 |
+
$this->initializePluginVulnerabilityData($plugin, $installedPlugins, $vulnerabilities, $data);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
342 |
}
|
343 |
|
344 |
if (count($vulnerabilities) > 0) {
|
376 |
require_once(ABSPATH . WPINC . '/update.php');
|
377 |
}
|
378 |
|
379 |
+
self::requirePluginsApi();
|
|
|
|
|
380 |
|
381 |
$this->checkThemeUpdates(!$initial, false);
|
382 |
$update_themes = get_site_transient('update_themes');
|
505 |
public function getThemeUpdates() {
|
506 |
return $this->theme_updates;
|
507 |
}
|
508 |
+
}
|
lib/wfUtils.php
CHANGED
@@ -1443,46 +1443,68 @@ class wfUtils {
|
|
1443 |
}
|
1444 |
}
|
1445 |
if(sizeof($toResolve) > 0){
|
1446 |
-
|
1447 |
-
|
1448 |
-
|
1449 |
-
|
1450 |
-
|
1451 |
-
|
1452 |
-
|
1453 |
-
|
1454 |
-
|
1455 |
-
|
1456 |
-
|
1457 |
-
|
1458 |
-
|
1459 |
-
|
1460 |
-
|
1461 |
-
|
1462 |
-
|
1463 |
-
|
1464 |
-
|
1465 |
-
|
1466 |
-
|
1467 |
-
|
1468 |
-
|
1469 |
-
$
|
1470 |
-
|
1471 |
-
|
1472 |
-
|
1473 |
-
|
1474 |
-
|
1475 |
-
|
1476 |
-
|
1477 |
-
|
1478 |
-
|
1479 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1480 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1481 |
}
|
1482 |
}
|
1483 |
-
} catch(Exception $e){
|
1484 |
-
wordfence::status(2, 'error', sprintf(/* translators: Error message. */ __("Call to Wordfence API to resolve IPs failed: %s", 'wordfence'), $e->getMessage()));
|
1485 |
-
return array();
|
1486 |
}
|
1487 |
}
|
1488 |
return $IPLocs;
|
@@ -1595,57 +1617,26 @@ class wfUtils {
|
|
1595 |
$URL = preg_replace('/\?.*$/', '', $URL); //strip off query string
|
1596 |
return $URL;
|
1597 |
}
|
1598 |
-
public static function
|
1599 |
-
|
1600 |
-
|
1601 |
-
|
1602 |
-
|
1603 |
-
|
1604 |
-
|
1605 |
-
|
1606 |
-
|
1607 |
-
|
1608 |
-
|
1609 |
-
|
1610 |
-
|
1611 |
-
|
1612 |
-
|
1613 |
-
wfUtils::error_clear_last();
|
1614 |
-
$code = @$geoip->countryCode($IP);
|
1615 |
-
wfUtils::check_and_log_last_error('geoip', 'GeoIP Error:');
|
1616 |
-
return is_string($code) ? $code : '';
|
1617 |
-
}
|
1618 |
-
catch (Exception $e) {
|
1619 |
-
wfUtils::check_and_log_last_error('geoip', 'GeoIP Error:', $e->getMessage());
|
1620 |
-
}
|
1621 |
-
|
1622 |
-
return '';
|
1623 |
}
|
1624 |
public static function geoIPVersion() {
|
1625 |
-
|
1626 |
-
|
1627 |
-
|
1628 |
-
|
1629 |
-
if (!class_exists('wfGeoIP2')) {
|
1630 |
-
wfUtils::error_clear_last();
|
1631 |
-
require_once(dirname(__FILE__) . '/../models/common/wfGeoIP2.php');
|
1632 |
-
wfUtils::check_and_log_last_error('geoip', 'GeoIP Error:');
|
1633 |
-
}
|
1634 |
-
|
1635 |
-
try {
|
1636 |
-
wfUtils::error_clear_last();
|
1637 |
-
$geoip = @wfGeoIP2::shared();
|
1638 |
-
wfUtils::check_and_log_last_error('geoip', 'GeoIP Error:');
|
1639 |
-
wfUtils::error_clear_last();
|
1640 |
-
$version = @$geoip->version();
|
1641 |
-
wfUtils::check_and_log_last_error('geoip', 'GeoIP Error:');
|
1642 |
-
return $version;
|
1643 |
-
}
|
1644 |
-
catch (Exception $e) {
|
1645 |
-
wfUtils::check_and_log_last_error('geoip', 'GeoIP Error:', $e->getMessage());
|
1646 |
-
}
|
1647 |
-
|
1648 |
-
return 0;
|
1649 |
}
|
1650 |
public static function siteURLRelative(){
|
1651 |
if(is_multisite()){
|
1443 |
}
|
1444 |
}
|
1445 |
if(sizeof($toResolve) > 0){
|
1446 |
+
if (wfConfig::get('enableRemoteIpLookup', true)) {
|
1447 |
+
$api = new wfAPI(wfConfig::get('apiKey'), wfUtils::getWPVersion());
|
1448 |
+
try {
|
1449 |
+
$freshIPs = $api->call('resolve_ips', array(), array(
|
1450 |
+
'ips' => implode(',', $toResolve)
|
1451 |
+
));
|
1452 |
+
} catch(Exception $e){
|
1453 |
+
wordfence::status(2, 'error', sprintf(/* translators: Error message. */ __("Call to Wordfence API to resolve IPs failed: %s", 'wordfence'), $e->getMessage()));
|
1454 |
+
return array();
|
1455 |
+
}
|
1456 |
+
}
|
1457 |
+
else {
|
1458 |
+
require_once(__DIR__ . '/wfIpLocator.php');
|
1459 |
+
$locator = wfIpLocator::getInstance();
|
1460 |
+
$freshIPs = array();
|
1461 |
+
$locale = get_locale();
|
1462 |
+
foreach ($toResolve as $ip) {
|
1463 |
+
$record = $locator->locate($ip);
|
1464 |
+
if ($record !== null) {
|
1465 |
+
$countryCode = $record->getCountryCode();
|
1466 |
+
if ($countryCode !== null) {
|
1467 |
+
$countryName = $record->getCountryName($locale);
|
1468 |
+
if ($countryName === null)
|
1469 |
+
$countryName = $countryCode;
|
1470 |
+
$freshIPs[$ip] = array($countryCode, $countryName);
|
1471 |
+
continue;
|
1472 |
+
}
|
1473 |
+
}
|
1474 |
+
$freshIPs[$ip] = 'failed';
|
1475 |
+
}
|
1476 |
+
}
|
1477 |
+
if(is_array($freshIPs)){
|
1478 |
+
foreach($freshIPs as $IP => $value){
|
1479 |
+
$IP_bin = wfUtils::inet_pton($IP);
|
1480 |
+
if($value == 'failed'){
|
1481 |
+
$db->queryWrite("insert IGNORE into " . $locsTable . " (IP, ctime, failed) values (%s, unix_timestamp(), 1)", $IP_bin);
|
1482 |
+
$IPLocs[$IP] = false;
|
1483 |
+
} else if(is_array($value)){
|
1484 |
+
for($i = 0; $i <= 5; $i++){
|
1485 |
+
//Prevent warnings in debug mode about uninitialized values
|
1486 |
+
if(! isset($value[$i])){ $value[$i] = ''; }
|
1487 |
}
|
1488 |
+
$db->queryWrite("insert IGNORE into " . $locsTable . " (IP, ctime, failed, city, region, countryName, countryCode, lat, lon) values (%s, unix_timestamp(), 0, '%s', '%s', '%s', '%s', %s, %s)",
|
1489 |
+
$IP_bin,
|
1490 |
+
$value[3], //city
|
1491 |
+
$value[2], //region
|
1492 |
+
$value[1], //countryName
|
1493 |
+
$value[0],//countryCode
|
1494 |
+
$value[4],//lat
|
1495 |
+
$value[5]//lon
|
1496 |
+
);
|
1497 |
+
$IPLocs[$IP] = array(
|
1498 |
+
'IP' => $IP,
|
1499 |
+
'city' => $value[3],
|
1500 |
+
'region' => wfUtils::shouldDisplayRegion($value[1]) ? $value[2] : '',
|
1501 |
+
'countryName' => $value[1],
|
1502 |
+
'countryCode' => $value[0],
|
1503 |
+
'lat' => $value[4],
|
1504 |
+
'lon' => $value[5]
|
1505 |
+
);
|
1506 |
}
|
1507 |
}
|
|
|
|
|
|
|
1508 |
}
|
1509 |
}
|
1510 |
return $IPLocs;
|
1617 |
$URL = preg_replace('/\?.*$/', '', $URL); //strip off query string
|
1618 |
return $URL;
|
1619 |
}
|
1620 |
+
public static function requireIpLocator() {
|
1621 |
+
/**
|
1622 |
+
* This is also used in the WAF so in certain site setups (i.e. nested sites in subdirectories)
|
1623 |
+
* it's possible for this to already have been loaded from a different installation of the
|
1624 |
+
* plugin and hence require_once doesn't help as it's a different file path. There is no guarantee
|
1625 |
+
* that the two plugin installations are the same version, so should the wfIpLocator class or any
|
1626 |
+
* of its dependencies change in a manner that is not backwards compatible, this may need to be
|
1627 |
+
* handled differently.
|
1628 |
+
*/
|
1629 |
+
if (!class_exists('wfIpLocator'))
|
1630 |
+
require_once(__DIR__ . '/wfIpLocator.php');
|
1631 |
+
}
|
1632 |
+
public static function IP2Country($ip){
|
1633 |
+
self::requireIpLocator();
|
1634 |
+
return wfIpLocator::getInstance()->getCountryCode($ip);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1635 |
}
|
1636 |
public static function geoIPVersion() {
|
1637 |
+
self::requireIpLocator();
|
1638 |
+
$version = wfIpLocator::getInstance()->getDatabaseVersion();
|
1639 |
+
return $version === null ? 0 : $version;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1640 |
}
|
1641 |
public static function siteURLRelative(){
|
1642 |
if(is_multisite()){
|
lib/wordfenceClass.php
CHANGED
@@ -2,6 +2,7 @@
|
|
2 |
require_once(dirname(__FILE__) . '/wordfenceConstants.php');
|
3 |
require_once(dirname(__FILE__) . '/wfScanEngine.php');
|
4 |
require_once(dirname(__FILE__) . '/wfScan.php');
|
|
|
5 |
require_once(dirname(__FILE__) . '/wfCrawl.php');
|
6 |
require_once(dirname(__FILE__) . '/Diff.php');
|
7 |
require_once(dirname(__FILE__) . '/Diff/Renderer/Html/SideBySide.php');
|
@@ -122,6 +123,7 @@ class wordfence {
|
|
122 |
|
123 |
//Remove all scheduled scans.
|
124 |
wfScanner::shared()->unscheduleAllScans();
|
|
|
125 |
|
126 |
// Remove cron for email summary
|
127 |
wfActivityReport::clearCronJobs();
|
@@ -1387,6 +1389,8 @@ SQL
|
|
1387 |
return $translation;
|
1388 |
}, 10, 3);
|
1389 |
}
|
|
|
|
|
1390 |
}
|
1391 |
|
1392 |
public static function showDisabledApplicationPasswordsMessage() {
|
@@ -2126,70 +2130,61 @@ SQL
|
|
2126 |
}
|
2127 |
|
2128 |
if ($allowSync) {
|
2129 |
-
|
2130 |
-
|
2131 |
-
|
2132 |
-
|
2133 |
-
|
2134 |
-
|
2135 |
-
$
|
2136 |
-
|
2137 |
-
|
2138 |
-
|
2139 |
-
|
2140 |
-
|
2141 |
-
$
|
2142 |
-
|
2143 |
-
|
2144 |
-
|
2145 |
-
|
2146 |
-
$scontext = hash_init('sha256');
|
2147 |
-
while (!feof($sp)) {
|
2148 |
-
$data = fread($sp, 65536);
|
2149 |
-
if ($data === false) {
|
2150 |
-
$scontext = false;
|
2151 |
-
break;
|
2152 |
-
}
|
2153 |
-
hash_update($scontext, $data);
|
2154 |
-
}
|
2155 |
-
fclose($sp);
|
2156 |
-
if ($scontext !== false) {
|
2157 |
-
$shash = hash_final($scontext, false);
|
2158 |
}
|
|
|
2159 |
}
|
2160 |
-
|
2161 |
-
|
2162 |
-
|
2163 |
-
|
2164 |
-
|
2165 |
-
|
2166 |
-
|
2167 |
-
|
2168 |
-
|
2169 |
-
|
2170 |
-
|
2171 |
-
|
2172 |
-
|
2173 |
-
if ($scontext !== false) {
|
2174 |
-
$dhash = hash_final($dcontext, false);
|
2175 |
}
|
|
|
2176 |
}
|
2177 |
-
|
2178 |
-
if (
|
2179 |
-
|
2180 |
-
delete_transient('wfSyncGeoIPActive');
|
2181 |
}
|
2182 |
}
|
2183 |
-
|
2184 |
-
|
2185 |
-
|
2186 |
-
|
2187 |
}
|
2188 |
}
|
2189 |
-
|
2190 |
-
|
|
|
2191 |
}
|
2192 |
}
|
|
|
|
|
|
|
2193 |
}
|
2194 |
}
|
2195 |
|
@@ -2285,7 +2280,6 @@ SQL
|
|
2285 |
'pluginABSPATH' => ABSPATH,
|
2286 |
'serverIPs' => json_encode(wfUtils::serverIPs()),
|
2287 |
'blockCustomText' => wpautop(wp_strip_all_tags(wfConfig::get('blockCustomText', ''))),
|
2288 |
-
'betaThreatDefenseFeed' => !!wfConfig::get('betaThreatDefenseFeed'),
|
2289 |
'disableWAFIPBlocking' => wfConfig::get('disableWAFIPBlocking'),
|
2290 |
'wordpressVersion' => wfConfig::get('wordpressVersion'),
|
2291 |
'wordpressPluginVersions' => wfConfig::get_ser('wordpressPluginVersions'),
|
@@ -3197,8 +3191,6 @@ SQL
|
|
3197 |
require(dirname(__FILE__) . '/wfLockedOut.php');
|
3198 |
}
|
3199 |
set_transient($tKey, $tries, wfConfig::get('loginSec_countFailMins') * 60);
|
3200 |
-
} else if(is_object($authUser) && get_class($authUser) == 'WP_User'){
|
3201 |
-
delete_transient($tKey); //reset counter on success
|
3202 |
}
|
3203 |
}
|
3204 |
if(is_wp_error($authUser)){
|
@@ -3950,7 +3942,7 @@ SQL
|
|
3950 |
if($r['type'] == 'error'){
|
3951 |
$content .= "\n";
|
3952 |
}
|
3953 |
-
$content .= date(DATE_RFC822, $r['ctime'] + $timeOffset) . '::' . sprintf('%.4f', $r['ctime']) . ':' . $r['level'] . ':' . $r['type'] . '::' . wp_kses_data( (string) $r['msg']) . "\n";
|
3954 |
}
|
3955 |
$content .= "\n\n";
|
3956 |
$content .= str_repeat('-', 80);
|
@@ -4984,8 +4976,20 @@ HTACCESS;
|
|
4984 |
break;
|
4985 |
case wfIssues::SCAN_FAILED_START_TIMEOUT:
|
4986 |
case wfIssues::SCAN_FAILED_CALLBACK_TEST_FAILED:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4987 |
$scanFailedHTML = wfView::create('scanner/scan-failed', array(
|
4988 |
-
'
|
|
|
4989 |
'buttonTitle' => __('Close', 'wordfence'),
|
4990 |
))->render();
|
4991 |
break;
|
@@ -5454,7 +5458,7 @@ HTACCESS;
|
|
5454 |
$d['t'] = esc_html(wfUtils::makeTimeAgo(time() - $d['t']) . ' ago');
|
5455 |
}
|
5456 |
else {
|
5457 |
-
$d['t'] = esc_html(
|
5458 |
}
|
5459 |
}
|
5460 |
return array('ok' => 1, 'data' => $data);
|
2 |
require_once(dirname(__FILE__) . '/wordfenceConstants.php');
|
3 |
require_once(dirname(__FILE__) . '/wfScanEngine.php');
|
4 |
require_once(dirname(__FILE__) . '/wfScan.php');
|
5 |
+
require_once(dirname(__FILE__) . '/wfScanMonitor.php');
|
6 |
require_once(dirname(__FILE__) . '/wfCrawl.php');
|
7 |
require_once(dirname(__FILE__) . '/Diff.php');
|
8 |
require_once(dirname(__FILE__) . '/Diff/Renderer/Html/SideBySide.php');
|
123 |
|
124 |
//Remove all scheduled scans.
|
125 |
wfScanner::shared()->unscheduleAllScans();
|
126 |
+
wfScanMonitor::handleDeactivation();
|
127 |
|
128 |
// Remove cron for email summary
|
129 |
wfActivityReport::clearCronJobs();
|
1389 |
return $translation;
|
1390 |
}, 10, 3);
|
1391 |
}
|
1392 |
+
|
1393 |
+
wfScanMonitor::registerActions();
|
1394 |
}
|
1395 |
|
1396 |
public static function showDisabledApplicationPasswordsMessage() {
|
2130 |
}
|
2131 |
|
2132 |
if ($allowSync) {
|
2133 |
+
wfUtils::requireIpLocator();
|
2134 |
+
try {
|
2135 |
+
$wflogsLocator = wfIpLocator::getInstance(wfIpLocator::SOURCE_WFLOGS);
|
2136 |
+
$bundledLocator = wfIpLocator::getInstance(wfIpLocator::SOURCE_BUNDLED);
|
2137 |
+
if (!$wflogsLocator->isPreferred() || $wflogsLocator->getDatabaseVersion() !== $bundledLocator->getDatabaseVersion()) {
|
2138 |
+
$source = dirname(__FILE__) . '/GeoLite2-Country.mmdb';
|
2139 |
+
if (copy($source, $destination)) {
|
2140 |
+
$shash = '';
|
2141 |
+
$dhash = '';
|
2142 |
+
$sp = @fopen($source, "rb");
|
2143 |
+
if ($sp) {
|
2144 |
+
$scontext = hash_init('sha256');
|
2145 |
+
while (!feof($sp)) {
|
2146 |
+
$data = fread($sp, 65536);
|
2147 |
+
if ($data === false) {
|
2148 |
+
$scontext = false;
|
2149 |
+
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2150 |
}
|
2151 |
+
hash_update($scontext, $data);
|
2152 |
}
|
2153 |
+
fclose($sp);
|
2154 |
+
if ($scontext !== false) {
|
2155 |
+
$shash = hash_final($scontext, false);
|
2156 |
+
}
|
2157 |
+
}
|
2158 |
+
$dp = @fopen($destination, "rb");
|
2159 |
+
if ($dp) {
|
2160 |
+
$dcontext = hash_init('sha256');
|
2161 |
+
while (!feof($dp)) {
|
2162 |
+
$data = fread($dp, 65536);
|
2163 |
+
if ($data === false) {
|
2164 |
+
$dcontext = false;
|
2165 |
+
break;
|
|
|
|
|
2166 |
}
|
2167 |
+
hash_update($dcontext, $data);
|
2168 |
}
|
2169 |
+
fclose($dp);
|
2170 |
+
if ($scontext !== false) {
|
2171 |
+
$dhash = hash_final($dcontext, false);
|
|
|
2172 |
}
|
2173 |
}
|
2174 |
+
if (hash_equals($shash, $dhash)) {
|
2175 |
+
wfConfig::remove('needsGeoIPSync');
|
2176 |
+
delete_transient('wfSyncGeoIPActive');
|
2177 |
+
}
|
2178 |
}
|
2179 |
}
|
2180 |
+
else {
|
2181 |
+
wfConfig::remove('needsGeoIPSync');
|
2182 |
+
delete_transient('wfSyncGeoIPActive');
|
2183 |
}
|
2184 |
}
|
2185 |
+
catch (Exception $e) {
|
2186 |
+
//Ignore
|
2187 |
+
}
|
2188 |
}
|
2189 |
}
|
2190 |
|
2280 |
'pluginABSPATH' => ABSPATH,
|
2281 |
'serverIPs' => json_encode(wfUtils::serverIPs()),
|
2282 |
'blockCustomText' => wpautop(wp_strip_all_tags(wfConfig::get('blockCustomText', ''))),
|
|
|
2283 |
'disableWAFIPBlocking' => wfConfig::get('disableWAFIPBlocking'),
|
2284 |
'wordpressVersion' => wfConfig::get('wordpressVersion'),
|
2285 |
'wordpressPluginVersions' => wfConfig::get_ser('wordpressPluginVersions'),
|
3191 |
require(dirname(__FILE__) . '/wfLockedOut.php');
|
3192 |
}
|
3193 |
set_transient($tKey, $tries, wfConfig::get('loginSec_countFailMins') * 60);
|
|
|
|
|
3194 |
}
|
3195 |
}
|
3196 |
if(is_wp_error($authUser)){
|
3942 |
if($r['type'] == 'error'){
|
3943 |
$content .= "\n";
|
3944 |
}
|
3945 |
+
$content .= date(DATE_RFC822, intval($r['ctime']) + $timeOffset) . '::' . sprintf('%.4f', $r['ctime']) . ':' . $r['level'] . ':' . $r['type'] . '::' . wp_kses_data( (string) $r['msg']) . "\n";
|
3946 |
}
|
3947 |
$content .= "\n\n";
|
3948 |
$content .= str_repeat('-', 80);
|
4976 |
break;
|
4977 |
case wfIssues::SCAN_FAILED_START_TIMEOUT:
|
4978 |
case wfIssues::SCAN_FAILED_CALLBACK_TEST_FAILED:
|
4979 |
+
$resumeAttempts = wfScanMonitor::getConfiguredResumeAttempts();
|
4980 |
+
if ($resumeAttempts > 0) {
|
4981 |
+
if ($resumeAttempts === 1)
|
4982 |
+
$resumeMessage = __('Wordfence will make one attempt to resume each failed scan stage. This scan may recover if this attempt is successful.', 'wordfence');
|
4983 |
+
else
|
4984 |
+
$resumeMessage = sprintf(__('Wordfence will make up to %d attempts to resume each failed scan stage. This scan may recover if one of these attempts is successful.', 'wordfence'), $resumeAttempts);
|
4985 |
+
$resumeMessage = " {$resumeMessage} ";
|
4986 |
+
}
|
4987 |
+
else {
|
4988 |
+
$resumeMessage = '';
|
4989 |
+
}
|
4990 |
$scanFailedHTML = wfView::create('scanner/scan-failed', array(
|
4991 |
+
'messageTitle' => __('Scan Stage Failed', 'wordfence'),
|
4992 |
+
'messageHTML' => __('A scan stage has failed to start. This is often because the site either cannot make outbound requests or is blocked from connecting to itself.', 'wordfence') . $resumeMessage . ' <a href="' . wfSupportController::esc_supportURL(wfSupportController::ITEM_SCAN_FAILED_START) . '" target="_blank" rel="noopener noreferrer">' . __('Click here for steps you can try.', 'wordfence') . '<span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>',
|
4993 |
'buttonTitle' => __('Close', 'wordfence'),
|
4994 |
))->render();
|
4995 |
break;
|
5458 |
$d['t'] = esc_html(wfUtils::makeTimeAgo(time() - $d['t']) . ' ago');
|
5459 |
}
|
5460 |
else {
|
5461 |
+
$d['t'] = esc_html(wfUtils::formatLocalTime(get_option('date_format') . ' ' . get_option('time_format'), (int) $d['t']));
|
5462 |
}
|
5463 |
}
|
5464 |
return array('ok' => 1, 'data' => $data);
|
lib/wordfenceConstants.php
CHANGED
@@ -29,4 +29,4 @@ if (!defined('WORDFENCE_PREFER_WP_HOME_FOR_WPML')) { define('WORDFENCE_PREFER_WP
|
|
29 |
if (!defined('WORDFENCE_SCAN_MIN_EXECUTION_TIME')) { define('WORDFENCE_SCAN_MIN_EXECUTION_TIME', 8); }
|
30 |
if (!defined('WORDFENCE_SCAN_MAX_INI_EXECUTION_TIME')) { define('WORDFENCE_SCAN_MAX_INI_EXECUTION_TIME', 90); }
|
31 |
if (!defined('WORDFENCE_ALLOW_DIRECT_MYSQLI')) { define('WORDFENCE_ALLOW_DIRECT_MYSQLI', true); }
|
32 |
-
if (!defined('WORDFENCE_NOC3_FAILED_BACKOFF_TIME')) { define('WORDFENCE_NOC3_FAILED_BACKOFF_TIME', 60); }
|
29 |
if (!defined('WORDFENCE_SCAN_MIN_EXECUTION_TIME')) { define('WORDFENCE_SCAN_MIN_EXECUTION_TIME', 8); }
|
30 |
if (!defined('WORDFENCE_SCAN_MAX_INI_EXECUTION_TIME')) { define('WORDFENCE_SCAN_MAX_INI_EXECUTION_TIME', 90); }
|
31 |
if (!defined('WORDFENCE_ALLOW_DIRECT_MYSQLI')) { define('WORDFENCE_ALLOW_DIRECT_MYSQLI', true); }
|
32 |
+
if (!defined('WORDFENCE_NOC3_FAILED_BACKOFF_TIME')) { define('WORDFENCE_NOC3_FAILED_BACKOFF_TIME', 60); }
|
lib/wordfenceScanner.php
CHANGED
@@ -352,8 +352,7 @@ class wordfenceScanner {
|
|
352 |
'file' => $file,
|
353 |
'realFile' => $record->realPath,
|
354 |
'shac' => $record->SHAC,
|
355 |
-
'highSense' => $options['scansEnabled_highSense']
|
356 |
-
'betaSigs' => wfConfig::get('betaThreatDefenseFeed'),
|
357 |
), $dataForFile),
|
358 |
));
|
359 |
break;
|
@@ -420,8 +419,7 @@ class wordfenceScanner {
|
|
420 |
'file' => $file,
|
421 |
'realFile' => $record->realPath,
|
422 |
'shac' => $record->SHAC,
|
423 |
-
'highSense' => $options['scansEnabled_highSense']
|
424 |
-
'betaSigs' => wfConfig::get('betaThreatDefenseFeed'),
|
425 |
), $dataForFile),
|
426 |
));
|
427 |
}
|
@@ -462,8 +460,7 @@ class wordfenceScanner {
|
|
462 |
'file' => $file,
|
463 |
'realFile' => $record->realPath,
|
464 |
'shac' => $record->SHAC,
|
465 |
-
'highSense' => $options['scansEnabled_highSense']
|
466 |
-
'betaSigs' => wfConfig::get('betaThreatDefenseFeed'),
|
467 |
), $dataForFile),
|
468 |
));
|
469 |
break;
|
@@ -537,8 +534,7 @@ class wordfenceScanner {
|
|
537 |
'shac' => $record->SHAC,
|
538 |
'badURL' => $result['URL'],
|
539 |
'gsb' => 'goog-malware-shavar',
|
540 |
-
'highSense' => $options['scansEnabled_highSense']
|
541 |
-
'betaSigs' => wfConfig::get('betaThreatDefenseFeed'),
|
542 |
), $dataForFile),
|
543 |
));
|
544 |
}
|
@@ -556,8 +552,7 @@ class wordfenceScanner {
|
|
556 |
'shac' => $record->SHAC,
|
557 |
'badURL' => $result['URL'],
|
558 |
'gsb' => 'googpub-phish-shavar',
|
559 |
-
'highSense' => $options['scansEnabled_highSense']
|
560 |
-
'betaSigs' => wfConfig::get('betaThreatDefenseFeed'),
|
561 |
), $dataForFile),
|
562 |
));
|
563 |
}
|
@@ -575,8 +570,7 @@ class wordfenceScanner {
|
|
575 |
'shac' => $record->SHAC,
|
576 |
'badURL' => $result['URL'],
|
577 |
'gsb' => 'wordfence-dbl',
|
578 |
-
'highSense' => $options['scansEnabled_highSense']
|
579 |
-
'betaSigs' => wfConfig::get('betaThreatDefenseFeed'),
|
580 |
), $dataForFile),
|
581 |
));
|
582 |
}
|
352 |
'file' => $file,
|
353 |
'realFile' => $record->realPath,
|
354 |
'shac' => $record->SHAC,
|
355 |
+
'highSense' => $options['scansEnabled_highSense']
|
|
|
356 |
), $dataForFile),
|
357 |
));
|
358 |
break;
|
419 |
'file' => $file,
|
420 |
'realFile' => $record->realPath,
|
421 |
'shac' => $record->SHAC,
|
422 |
+
'highSense' => $options['scansEnabled_highSense']
|
|
|
423 |
), $dataForFile),
|
424 |
));
|
425 |
}
|
460 |
'file' => $file,
|
461 |
'realFile' => $record->realPath,
|
462 |
'shac' => $record->SHAC,
|
463 |
+
'highSense' => $options['scansEnabled_highSense']
|
|
|
464 |
), $dataForFile),
|
465 |
));
|
466 |
break;
|
534 |
'shac' => $record->SHAC,
|
535 |
'badURL' => $result['URL'],
|
536 |
'gsb' => 'goog-malware-shavar',
|
537 |
+
'highSense' => $options['scansEnabled_highSense']
|
|
|
538 |
), $dataForFile),
|
539 |
));
|
540 |
}
|
552 |
'shac' => $record->SHAC,
|
553 |
'badURL' => $result['URL'],
|
554 |
'gsb' => 'googpub-phish-shavar',
|
555 |
+
'highSense' => $options['scansEnabled_highSense']
|
|
|
556 |
), $dataForFile),
|
557 |
));
|
558 |
}
|
570 |
'shac' => $record->SHAC,
|
571 |
'badURL' => $result['URL'],
|
572 |
'gsb' => 'wordfence-dbl',
|
573 |
+
'highSense' => $options['scansEnabled_highSense']
|
|
|
574 |
), $dataForFile),
|
575 |
));
|
576 |
}
|
models/common/wfGeoIP2.php
DELETED
@@ -1,104 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
-
|
4 |
-
require_once(dirname(__FILE__) . '/../../vendor/autoload.php');
|
5 |
-
|
6 |
-
use GeoIp2\Database\Reader;
|
7 |
-
|
8 |
-
class wfGeoIP2 {
|
9 |
-
const DB_WFLOGS = 'wflogs';
|
10 |
-
const DB_BUNDLED = 'bundled';
|
11 |
-
|
12 |
-
static $_shared = array();
|
13 |
-
|
14 |
-
private $_reader;
|
15 |
-
|
16 |
-
/**
|
17 |
-
* Returns the singleton wfGeoIP2, optionally forcing use of a specific database.
|
18 |
-
*
|
19 |
-
* @return wfGeoIP2|bool
|
20 |
-
*/
|
21 |
-
public static function shared($whichDB = false) {
|
22 |
-
try {
|
23 |
-
if (file_exists(WFWAF_LOG_PATH . '/GeoLite2-Country.mmdb') && ($whichDB === false || $whichDB == self::DB_WFLOGS)) {
|
24 |
-
if (isset(self::$_shared[self::DB_WFLOGS])) {
|
25 |
-
return self::$_shared[self::DB_WFLOGS];
|
26 |
-
}
|
27 |
-
|
28 |
-
$reader = new Reader(WFWAF_LOG_PATH . '/GeoLite2-Country.mmdb');
|
29 |
-
self::$_shared[self::DB_WFLOGS] = new wfGeoIP2($reader);
|
30 |
-
return self::$_shared[self::DB_WFLOGS];
|
31 |
-
}
|
32 |
-
}
|
33 |
-
catch (Exception $e) {
|
34 |
-
//Fall through to bundled copy
|
35 |
-
}
|
36 |
-
|
37 |
-
if ($whichDB == self::DB_WFLOGS) {
|
38 |
-
return false;
|
39 |
-
}
|
40 |
-
|
41 |
-
if (isset(self::$_shared[self::DB_BUNDLED])) {
|
42 |
-
return self::$_shared[self::DB_BUNDLED];
|
43 |
-
}
|
44 |
-
$reader = new Reader(__DIR__ . '/../../lib/GeoLite2-Country.mmdb'); //Can throw, but we don't catch it here
|
45 |
-
self::$_shared[self::DB_BUNDLED] = new wfGeoIP2($reader);
|
46 |
-
return self::$_shared[self::DB_BUNDLED];
|
47 |
-
}
|
48 |
-
|
49 |
-
/**
|
50 |
-
* Automatically uses the wflogs version of the DB if present, otherwise uses the bundled one.
|
51 |
-
*
|
52 |
-
* @param \GeoIp2\Database\Reader $reader If provided, uses the reader passed instead.
|
53 |
-
*/
|
54 |
-
public function __construct($reader = false) {
|
55 |
-
if ($reader !== false) {
|
56 |
-
$this->_reader = $reader;
|
57 |
-
return;
|
58 |
-
}
|
59 |
-
|
60 |
-
try {
|
61 |
-
if (file_exists(WFWAF_LOG_PATH . '/GeoLite2-Country.mmdb')) {
|
62 |
-
$this->_reader = new Reader(WFWAF_LOG_PATH . '/GeoLite2-Country.mmdb');
|
63 |
-
return;
|
64 |
-
}
|
65 |
-
}
|
66 |
-
catch (Exception $e) {
|
67 |
-
//Fall through to bundled copy
|
68 |
-
}
|
69 |
-
|
70 |
-
$this->_reader = new Reader(__DIR__ . '/../../lib/GeoLite2-Country.mmdb'); //Can throw, but we don't catch it because it means the installation is likely corrupt and needs fixed anyway
|
71 |
-
}
|
72 |
-
|
73 |
-
/**
|
74 |
-
* Returns the database version in use. This is the timestamp of when it was packaged.
|
75 |
-
*
|
76 |
-
* @return null|int
|
77 |
-
*/
|
78 |
-
public function version() {
|
79 |
-
try {
|
80 |
-
return $this->_reader->metadata()->buildEpoch;
|
81 |
-
}
|
82 |
-
catch (Exception $e) {
|
83 |
-
//Fall through
|
84 |
-
}
|
85 |
-
return null;
|
86 |
-
}
|
87 |
-
|
88 |
-
/**
|
89 |
-
* Returns the country code for the IP if known.
|
90 |
-
*
|
91 |
-
* @param string $ip
|
92 |
-
* @return null|string
|
93 |
-
*/
|
94 |
-
public function countryCode($ip) {
|
95 |
-
try {
|
96 |
-
$record = $this->_reader->country($ip);
|
97 |
-
return $record->country->isoCode;
|
98 |
-
}
|
99 |
-
catch (Exception $e) {
|
100 |
-
//Fall through
|
101 |
-
}
|
102 |
-
return null;
|
103 |
-
}
|
104 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
modules/login-security/css/{admin-global.1663593635.css → admin-global.1664811036.css}
RENAMED
File without changes
|
modules/login-security/css/{admin.1663593635.css → admin.1664811036.css}
RENAMED
File without changes
|
modules/login-security/css/{colorbox.1663593635.css → colorbox.1664811036.css}
RENAMED
File without changes
|
modules/login-security/css/{font-awesome.1663593635.css → font-awesome.1664811036.css}
RENAMED
File without changes
|
modules/login-security/css/{ionicons.1663593635.css → ionicons.1664811036.css}
RENAMED
File without changes
|
modules/login-security/css/{jquery-ui.min.1663593635.css → jquery-ui.min.1664811036.css}
RENAMED
File without changes
|
modules/login-security/css/{jquery-ui.structure.min.1663593635.css → jquery-ui.structure.min.1664811036.css}
RENAMED
File without changes
|
modules/login-security/css/{jquery-ui.theme.min.1663593635.css → jquery-ui.theme.min.1664811036.css}
RENAMED
File without changes
|
modules/login-security/css/{login.1663593635.css → login.1664811036.css}
RENAMED
File without changes
|
modules/login-security/js/{admin-global.1663593635.js → admin-global.1664811036.js}
RENAMED
File without changes
|
modules/login-security/js/{admin.1663593635.js → admin.1664811036.js}
RENAMED
File without changes
|
modules/login-security/js/{jquery.colorbox.1663593635.js → jquery.colorbox.1664811036.js}
RENAMED
File without changes
|
modules/login-security/js/{jquery.colorbox.min.1663593635.js → jquery.colorbox.min.1664811036.js}
RENAMED
File without changes
|
modules/login-security/js/{jquery.qrcode.min.1663593635.js → jquery.qrcode.min.1664811036.js}
RENAMED
File without changes
|
modules/login-security/js/{jquery.tmpl.min.1663593635.js → jquery.tmpl.min.1664811036.js}
RENAMED
File without changes
|
modules/login-security/js/{login.1663593635.js → login.1664811036.js}
RENAMED
File without changes
|
modules/login-security/wordfence-login-security.php
CHANGED
@@ -26,8 +26,8 @@ if ($wfCoreActive && !(isset($wfCoreLoading) && $wfCoreLoading)) {
|
|
26 |
else {
|
27 |
define('WORDFENCE_LS_FROM_CORE', ($wfCoreActive && isset($wfCoreLoading) && $wfCoreLoading));
|
28 |
|
29 |
-
define('WORDFENCE_LS_VERSION', '1.0.11
|
30 |
-
define('WORDFENCE_LS_BUILD_NUMBER', '
|
31 |
|
32 |
define('WORDFENCE_LS_PLUGIN_BASENAME', plugin_basename(__FILE__));
|
33 |
|
26 |
else {
|
27 |
define('WORDFENCE_LS_FROM_CORE', ($wfCoreActive && isset($wfCoreLoading) && $wfCoreLoading));
|
28 |
|
29 |
+
define('WORDFENCE_LS_VERSION', '1.0.11');
|
30 |
+
define('WORDFENCE_LS_BUILD_NUMBER', '1664811036');
|
31 |
|
32 |
define('WORDFENCE_LS_PLUGIN_BASENAME', plugin_basename(__FILE__));
|
33 |
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Tags: security, firewall, malware scanner, web application firewall, two factor
|
|
4 |
Requires at least: 3.9
|
5 |
Requires PHP: 5.3
|
6 |
Tested up to: 6.0
|
7 |
-
Stable tag: 7.
|
8 |
License: GPLv3
|
9 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
@@ -185,6 +185,21 @@ Secure your website with Wordfence.
|
|
185 |
|
186 |
== Changelog ==
|
187 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
188 |
= 7.6.2 - September 19, 2022 =
|
189 |
* Improvement: Hardened 2FA login flow to reduce exposure in cases where an attacker is able to obtain privileged information from the database
|
190 |
|
4 |
Requires at least: 3.9
|
5 |
Requires PHP: 5.3
|
6 |
Tested up to: 6.0
|
7 |
+
Stable tag: 7.7.0
|
8 |
License: GPLv3
|
9 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
185 |
|
186 |
== Changelog ==
|
187 |
|
188 |
+
= 7.7.0 - October 3, 2022 =
|
189 |
+
* Improvement: Added configurable scan resume functionality to prevent scan failures on sites with intermittent connectivity issues
|
190 |
+
* Improvement: Added new scan result for vulnerabilities found in plugins that do not have patched versions available via WordPress.org
|
191 |
+
* Improvement: Implemented stand-alone MMDB reader for IP address lookups to prevent plugin conflicts and support additional PHP versions
|
192 |
+
* Improvement: Added option to disable looking up IP address locations via the Wordfence API
|
193 |
+
* Improvement: Prevented successful logins from resetting brute force counters
|
194 |
+
* Improvement: Clarified IPv6 diagnostic
|
195 |
+
* Improvement: Included maximum number of days in live traffic option text
|
196 |
+
* Fix: Made timezones consistent on firewall page
|
197 |
+
* Fix: Added "Use only IPv4 to start scans" option to search
|
198 |
+
* Fix: Prevented deprecation notices on PHP 8.1 when emailing the activity log
|
199 |
+
* Fix: Prevented warning on PHP 8 related to process owner diagnostic
|
200 |
+
* Fix: Prevented PHP Code Sniffer false positive related to T_BAD_CHARACTER
|
201 |
+
* Fix: Removed unsupported beta feed option
|
202 |
+
|
203 |
= 7.6.2 - September 19, 2022 =
|
204 |
* Improvement: Hardened 2FA login flow to reduce exposure in cases where an attacker is able to obtain privileged information from the database
|
205 |
|
vendor/autoload.php
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
|
3 |
// autoload.php @generated by Composer
|
4 |
|
5 |
-
if (!class_exists('
|
6 |
require_once __DIR__ . '/composer/autoload_real.php';
|
7 |
}
|
8 |
|
9 |
-
return
|
2 |
|
3 |
// autoload.php @generated by Composer
|
4 |
|
5 |
+
if (!class_exists('ComposerAutoloaderInit736008d0fa54169b3444ae0f3fc20155')) {
|
6 |
require_once __DIR__ . '/composer/autoload_real.php';
|
7 |
}
|
8 |
|
9 |
+
return ComposerAutoloaderInit736008d0fa54169b3444ae0f3fc20155::getLoader();
|
vendor/composer/ClassLoader.php
CHANGED
@@ -37,11 +37,13 @@ namespace Composer\Autoload;
|
|
37 |
*
|
38 |
* @author Fabien Potencier <fabien@symfony.com>
|
39 |
* @author Jordi Boggiano <j.boggiano@seld.be>
|
40 |
-
* @see
|
41 |
-
* @see
|
42 |
*/
|
43 |
class ClassLoader
|
44 |
{
|
|
|
|
|
45 |
// PSR-4
|
46 |
private $prefixLengthsPsr4 = array();
|
47 |
private $prefixDirsPsr4 = array();
|
@@ -57,10 +59,17 @@ class ClassLoader
|
|
57 |
private $missingClasses = array();
|
58 |
private $apcuPrefix;
|
59 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
public function getPrefixes()
|
61 |
{
|
62 |
if (!empty($this->prefixesPsr0)) {
|
63 |
-
return call_user_func_array('array_merge', $this->prefixesPsr0);
|
64 |
}
|
65 |
|
66 |
return array();
|
@@ -300,6 +309,17 @@ class ClassLoader
|
|
300 |
public function register($prepend = false)
|
301 |
{
|
302 |
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
303 |
}
|
304 |
|
305 |
/**
|
@@ -308,13 +328,17 @@ class ClassLoader
|
|
308 |
public function unregister()
|
309 |
{
|
310 |
spl_autoload_unregister(array($this, 'loadClass'));
|
|
|
|
|
|
|
|
|
311 |
}
|
312 |
|
313 |
/**
|
314 |
* Loads the given class or interface.
|
315 |
*
|
316 |
* @param string $class The name of the class
|
317 |
-
* @return
|
318 |
*/
|
319 |
public function loadClass($class)
|
320 |
{
|
@@ -323,6 +347,8 @@ class ClassLoader
|
|
323 |
|
324 |
return true;
|
325 |
}
|
|
|
|
|
326 |
}
|
327 |
|
328 |
/**
|
@@ -367,6 +393,16 @@ class ClassLoader
|
|
367 |
return $file;
|
368 |
}
|
369 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
370 |
private function findFileWithExtension($class, $ext)
|
371 |
{
|
372 |
// PSR-4 lookup
|
37 |
*
|
38 |
* @author Fabien Potencier <fabien@symfony.com>
|
39 |
* @author Jordi Boggiano <j.boggiano@seld.be>
|
40 |
+
* @see https://www.php-fig.org/psr/psr-0/
|
41 |
+
* @see https://www.php-fig.org/psr/psr-4/
|
42 |
*/
|
43 |
class ClassLoader
|
44 |
{
|
45 |
+
private $vendorDir;
|
46 |
+
|
47 |
// PSR-4
|
48 |
private $prefixLengthsPsr4 = array();
|
49 |
private $prefixDirsPsr4 = array();
|
59 |
private $missingClasses = array();
|
60 |
private $apcuPrefix;
|
61 |
|
62 |
+
private static $registeredLoaders = array();
|
63 |
+
|
64 |
+
public function __construct($vendorDir = null)
|
65 |
+
{
|
66 |
+
$this->vendorDir = $vendorDir;
|
67 |
+
}
|
68 |
+
|
69 |
public function getPrefixes()
|
70 |
{
|
71 |
if (!empty($this->prefixesPsr0)) {
|
72 |
+
return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
|
73 |
}
|
74 |
|
75 |
return array();
|
309 |
public function register($prepend = false)
|
310 |
{
|
311 |
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
312 |
+
|
313 |
+
if (null === $this->vendorDir) {
|
314 |
+
return;
|
315 |
+
}
|
316 |
+
|
317 |
+
if ($prepend) {
|
318 |
+
self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
|
319 |
+
} else {
|
320 |
+
unset(self::$registeredLoaders[$this->vendorDir]);
|
321 |
+
self::$registeredLoaders[$this->vendorDir] = $this;
|
322 |
+
}
|
323 |
}
|
324 |
|
325 |
/**
|
328 |
public function unregister()
|
329 |
{
|
330 |
spl_autoload_unregister(array($this, 'loadClass'));
|
331 |
+
|
332 |
+
if (null !== $this->vendorDir) {
|
333 |
+
unset(self::$registeredLoaders[$this->vendorDir]);
|
334 |
+
}
|
335 |
}
|
336 |
|
337 |
/**
|
338 |
* Loads the given class or interface.
|
339 |
*
|
340 |
* @param string $class The name of the class
|
341 |
+
* @return true|null True if loaded, null otherwise
|
342 |
*/
|
343 |
public function loadClass($class)
|
344 |
{
|
347 |
|
348 |
return true;
|
349 |
}
|
350 |
+
|
351 |
+
return null;
|
352 |
}
|
353 |
|
354 |
/**
|
393 |
return $file;
|
394 |
}
|
395 |
|
396 |
+
/**
|
397 |
+
* Returns the currently registered loaders indexed by their corresponding vendor directories.
|
398 |
+
*
|
399 |
+
* @return self[]
|
400 |
+
*/
|
401 |
+
public static function getRegisteredLoaders()
|
402 |
+
{
|
403 |
+
return self::$registeredLoaders;
|
404 |
+
}
|
405 |
+
|
406 |
private function findFileWithExtension($class, $ext)
|
407 |
{
|
408 |
// PSR-4 lookup
|
vendor/composer/InstalledVersions.php
ADDED
@@ -0,0 +1,337 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
* This file is part of Composer.
|
5 |
+
*
|
6 |
+
* (c) Nils Adermann <naderman@naderman.de>
|
7 |
+
* Jordi Boggiano <j.boggiano@seld.be>
|
8 |
+
*
|
9 |
+
* For the full copyright and license information, please view the LICENSE
|
10 |
+
* file that was distributed with this source code.
|
11 |
+
*/
|
12 |
+
|
13 |
+
namespace Composer;
|
14 |
+
|
15 |
+
use Composer\Autoload\ClassLoader;
|
16 |
+
use Composer\Semver\VersionParser;
|
17 |
+
|
18 |
+
/**
|
19 |
+
* This class is copied in every Composer installed project and available to all
|
20 |
+
*
|
21 |
+
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
22 |
+
*
|
23 |
+
* To require it's presence, you can require `composer-runtime-api ^2.0`
|
24 |
+
*/
|
25 |
+
class InstalledVersions
|
26 |
+
{
|
27 |
+
private static $installed;
|
28 |
+
private static $canGetVendors;
|
29 |
+
private static $installedByVendor = array();
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Returns a list of all package names which are present, either by being installed, replaced or provided
|
33 |
+
*
|
34 |
+
* @return string[]
|
35 |
+
* @psalm-return list<string>
|
36 |
+
*/
|
37 |
+
public static function getInstalledPackages()
|
38 |
+
{
|
39 |
+
$packages = array();
|
40 |
+
foreach (self::getInstalled() as $installed) {
|
41 |
+
$packages[] = array_keys($installed['versions']);
|
42 |
+
}
|
43 |
+
|
44 |
+
if (1 === \count($packages)) {
|
45 |
+
return $packages[0];
|
46 |
+
}
|
47 |
+
|
48 |
+
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
|
49 |
+
}
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Returns a list of all package names with a specific type e.g. 'library'
|
53 |
+
*
|
54 |
+
* @param string $type
|
55 |
+
* @return string[]
|
56 |
+
* @psalm-return list<string>
|
57 |
+
*/
|
58 |
+
public static function getInstalledPackagesByType($type)
|
59 |
+
{
|
60 |
+
$packagesByType = array();
|
61 |
+
|
62 |
+
foreach (self::getInstalled() as $installed) {
|
63 |
+
foreach ($installed['versions'] as $name => $package) {
|
64 |
+
if (isset($package['type']) && $package['type'] === $type) {
|
65 |
+
$packagesByType[] = $name;
|
66 |
+
}
|
67 |
+
}
|
68 |
+
}
|
69 |
+
|
70 |
+
return $packagesByType;
|
71 |
+
}
|
72 |
+
|
73 |
+
/**
|
74 |
+
* Checks whether the given package is installed
|
75 |
+
*
|
76 |
+
* This also returns true if the package name is provided or replaced by another package
|
77 |
+
*
|
78 |
+
* @param string $packageName
|
79 |
+
* @param bool $includeDevRequirements
|
80 |
+
* @return bool
|
81 |
+
*/
|
82 |
+
public static function isInstalled($packageName, $includeDevRequirements = true)
|
83 |
+
{
|
84 |
+
foreach (self::getInstalled() as $installed) {
|
85 |
+
if (isset($installed['versions'][$packageName])) {
|
86 |
+
return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
|
87 |
+
}
|
88 |
+
}
|
89 |
+
|
90 |
+
return false;
|
91 |
+
}
|
92 |
+
|
93 |
+
/**
|
94 |
+
* Checks whether the given package satisfies a version constraint
|
95 |
+
*
|
96 |
+
* e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
|
97 |
+
*
|
98 |
+
* Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
|
99 |
+
*
|
100 |
+
* @param VersionParser $parser Install composer/semver to have access to this class and functionality
|
101 |
+
* @param string $packageName
|
102 |
+
* @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
|
103 |
+
* @return bool
|
104 |
+
*/
|
105 |
+
public static function satisfies(VersionParser $parser, $packageName, $constraint)
|
106 |
+
{
|
107 |
+
$constraint = $parser->parseConstraints($constraint);
|
108 |
+
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
|
109 |
+
|
110 |
+
return $provided->matches($constraint);
|
111 |
+
}
|
112 |
+
|
113 |
+
/**
|
114 |
+
* Returns a version constraint representing all the range(s) which are installed for a given package
|
115 |
+
*
|
116 |
+
* It is easier to use this via isInstalled() with the $constraint argument if you need to check
|
117 |
+
* whether a given version of a package is installed, and not just whether it exists
|
118 |
+
*
|
119 |
+
* @param string $packageName
|
120 |
+
* @return string Version constraint usable with composer/semver
|
121 |
+
*/
|
122 |
+
public static function getVersionRanges($packageName)
|
123 |
+
{
|
124 |
+
foreach (self::getInstalled() as $installed) {
|
125 |
+
if (!isset($installed['versions'][$packageName])) {
|
126 |
+
continue;
|
127 |
+
}
|
128 |
+
|
129 |
+
$ranges = array();
|
130 |
+
if (isset($installed['versions'][$packageName]['pretty_version'])) {
|
131 |
+
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
|
132 |
+
}
|
133 |
+
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
|
134 |
+
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
|
135 |
+
}
|
136 |
+
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
|
137 |
+
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
|
138 |
+
}
|
139 |
+
if (array_key_exists('provided', $installed['versions'][$packageName])) {
|
140 |
+
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
|
141 |
+
}
|
142 |
+
|
143 |
+
return implode(' || ', $ranges);
|
144 |
+
}
|
145 |
+
|
146 |
+
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
147 |
+
}
|
148 |
+
|
149 |
+
/**
|
150 |
+
* @param string $packageName
|
151 |
+
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
152 |
+
*/
|
153 |
+
public static function getVersion($packageName)
|
154 |
+
{
|
155 |
+
foreach (self::getInstalled() as $installed) {
|
156 |
+
if (!isset($installed['versions'][$packageName])) {
|
157 |
+
continue;
|
158 |
+
}
|
159 |
+
|
160 |
+
if (!isset($installed['versions'][$packageName]['version'])) {
|
161 |
+
return null;
|
162 |
+
}
|
163 |
+
|
164 |
+
return $installed['versions'][$packageName]['version'];
|
165 |
+
}
|
166 |
+
|
167 |
+
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
168 |
+
}
|
169 |
+
|
170 |
+
/**
|
171 |
+
* @param string $packageName
|
172 |
+
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
173 |
+
*/
|
174 |
+
public static function getPrettyVersion($packageName)
|
175 |
+
{
|
176 |
+
foreach (self::getInstalled() as $installed) {
|
177 |
+
if (!isset($installed['versions'][$packageName])) {
|
178 |
+
continue;
|
179 |
+
}
|
180 |
+
|
181 |
+
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
|
182 |
+
return null;
|
183 |
+
}
|
184 |
+
|
185 |
+
return $installed['versions'][$packageName]['pretty_version'];
|
186 |
+
}
|
187 |
+
|
188 |
+
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
189 |
+
}
|
190 |
+
|
191 |
+
/**
|
192 |
+
* @param string $packageName
|
193 |
+
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
|
194 |
+
*/
|
195 |
+
public static function getReference($packageName)
|
196 |
+
{
|
197 |
+
foreach (self::getInstalled() as $installed) {
|
198 |
+
if (!isset($installed['versions'][$packageName])) {
|
199 |
+
continue;
|
200 |
+
}
|
201 |
+
|
202 |
+
if (!isset($installed['versions'][$packageName]['reference'])) {
|
203 |
+
return null;
|
204 |
+
}
|
205 |
+
|
206 |
+
return $installed['versions'][$packageName]['reference'];
|
207 |
+
}
|
208 |
+
|
209 |
+
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
210 |
+
}
|
211 |
+
|
212 |
+
/**
|
213 |
+
* @param string $packageName
|
214 |
+
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
|
215 |
+
*/
|
216 |
+
public static function getInstallPath($packageName)
|
217 |
+
{
|
218 |
+
foreach (self::getInstalled() as $installed) {
|
219 |
+
if (!isset($installed['versions'][$packageName])) {
|
220 |
+
continue;
|
221 |
+
}
|
222 |
+
|
223 |
+
return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
|
224 |
+
}
|
225 |
+
|
226 |
+
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
227 |
+
}
|
228 |
+
|
229 |
+
/**
|
230 |
+
* @return array
|
231 |
+
* @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}
|
232 |
+
*/
|
233 |
+
public static function getRootPackage()
|
234 |
+
{
|
235 |
+
$installed = self::getInstalled();
|
236 |
+
|
237 |
+
return $installed[0]['root'];
|
238 |
+
}
|
239 |
+
|
240 |
+
/**
|
241 |
+
* Returns the raw installed.php data for custom implementations
|
242 |
+
*
|
243 |
+
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
244 |
+
* @return array[]
|
245 |
+
* @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}
|
246 |
+
*/
|
247 |
+
public static function getRawData()
|
248 |
+
{
|
249 |
+
@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
|
250 |
+
|
251 |
+
if (null === self::$installed) {
|
252 |
+
// only require the installed.php file if this file is loaded from its dumped location,
|
253 |
+
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
254 |
+
if (substr(__DIR__, -8, 1) !== 'C') {
|
255 |
+
self::$installed = include __DIR__ . '/installed.php';
|
256 |
+
} else {
|
257 |
+
self::$installed = array();
|
258 |
+
}
|
259 |
+
}
|
260 |
+
|
261 |
+
return self::$installed;
|
262 |
+
}
|
263 |
+
|
264 |
+
/**
|
265 |
+
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
266 |
+
*
|
267 |
+
* @return array[]
|
268 |
+
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
269 |
+
*/
|
270 |
+
public static function getAllRawData()
|
271 |
+
{
|
272 |
+
return self::getInstalled();
|
273 |
+
}
|
274 |
+
|
275 |
+
/**
|
276 |
+
* Lets you reload the static array from another file
|
277 |
+
*
|
278 |
+
* This is only useful for complex integrations in which a project needs to use
|
279 |
+
* this class but then also needs to execute another project's autoloader in process,
|
280 |
+
* and wants to ensure both projects have access to their version of installed.php.
|
281 |
+
*
|
282 |
+
* A typical case would be PHPUnit, where it would need to make sure it reads all
|
283 |
+
* the data it needs from this class, then call reload() with
|
284 |
+
* `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
|
285 |
+
* the project in which it runs can then also use this class safely, without
|
286 |
+
* interference between PHPUnit's dependencies and the project's dependencies.
|
287 |
+
*
|
288 |
+
* @param array[] $data A vendor/composer/installed.php data set
|
289 |
+
* @return void
|
290 |
+
*
|
291 |
+
* @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>} $data
|
292 |
+
*/
|
293 |
+
public static function reload($data)
|
294 |
+
{
|
295 |
+
self::$installed = $data;
|
296 |
+
self::$installedByVendor = array();
|
297 |
+
}
|
298 |
+
|
299 |
+
/**
|
300 |
+
* @return array[]
|
301 |
+
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
302 |
+
*/
|
303 |
+
private static function getInstalled()
|
304 |
+
{
|
305 |
+
if (null === self::$canGetVendors) {
|
306 |
+
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
|
307 |
+
}
|
308 |
+
|
309 |
+
$installed = array();
|
310 |
+
|
311 |
+
if (self::$canGetVendors) {
|
312 |
+
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
313 |
+
if (isset(self::$installedByVendor[$vendorDir])) {
|
314 |
+
$installed[] = self::$installedByVendor[$vendorDir];
|
315 |
+
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
316 |
+
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
|
317 |
+
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
|
318 |
+
self::$installed = $installed[count($installed) - 1];
|
319 |
+
}
|
320 |
+
}
|
321 |
+
}
|
322 |
+
}
|
323 |
+
|
324 |
+
if (null === self::$installed) {
|
325 |
+
// only require the installed.php file if this file is loaded from its dumped location,
|
326 |
+
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
327 |
+
if (substr(__DIR__, -8, 1) !== 'C') {
|
328 |
+
self::$installed = require __DIR__ . '/installed.php';
|
329 |
+
} else {
|
330 |
+
self::$installed = array();
|
331 |
+
}
|
332 |
+
}
|
333 |
+
$installed[] = self::$installed;
|
334 |
+
|
335 |
+
return $installed;
|
336 |
+
}
|
337 |
+
}
|
vendor/composer/autoload_classmap.php
CHANGED
@@ -6,4 +6,5 @@ $vendorDir = dirname(dirname(__FILE__));
|
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
|
|
9 |
);
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
9 |
+
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
|
10 |
);
|
vendor/composer/autoload_psr4.php
CHANGED
@@ -6,9 +6,5 @@ $vendorDir = dirname(dirname(__FILE__));
|
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
9 |
-
'
|
10 |
-
'MaxMind\\Exception\\' => array($vendorDir . '/maxmind/web-service-common/src/Exception'),
|
11 |
-
'MaxMind\\Db\\' => array($vendorDir . '/maxmind-db/reader/src/MaxMind/Db'),
|
12 |
-
'GeoIp2\\' => array($vendorDir . '/geoip2/geoip2/src'),
|
13 |
-
'Composer\\CaBundle\\' => array($vendorDir . '/composer/ca-bundle/src'),
|
14 |
);
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
9 |
+
'Wordfence\\MmdbReader\\' => array($vendorDir . '/wordfence/mmdb-reader/src'),
|
|
|
|
|
|
|
|
|
10 |
);
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -13,21 +13,24 @@ class ComposerAutoloaderInit6d00a11c4faa7bdc4bb08ac266cdf951
|
|
13 |
}
|
14 |
}
|
15 |
|
|
|
|
|
|
|
16 |
public static function getLoader()
|
17 |
{
|
18 |
if (null !== self::$loader) {
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
-
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
27 |
if ($useStaticLoader) {
|
28 |
-
|
29 |
|
30 |
-
call_user_func(\Composer\Autoload\
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInit736008d0fa54169b3444ae0f3fc20155
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
13 |
}
|
14 |
}
|
15 |
|
16 |
+
/**
|
17 |
+
* @return \Composer\Autoload\ClassLoader
|
18 |
+
*/
|
19 |
public static function getLoader()
|
20 |
{
|
21 |
if (null !== self::$loader) {
|
22 |
return self::$loader;
|
23 |
}
|
24 |
|
25 |
+
spl_autoload_register(array('ComposerAutoloaderInit736008d0fa54169b3444ae0f3fc20155', 'loadClassLoader'), true, true);
|
26 |
+
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
|
27 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit736008d0fa54169b3444ae0f3fc20155', 'loadClassLoader'));
|
28 |
|
29 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
30 |
if ($useStaticLoader) {
|
31 |
+
require __DIR__ . '/autoload_static.php';
|
32 |
|
33 |
+
call_user_func(\Composer\Autoload\ComposerStaticInit736008d0fa54169b3444ae0f3fc20155::getInitializer($loader));
|
34 |
} else {
|
35 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
36 |
foreach ($map as $namespace => $path) {
|
vendor/composer/autoload_static.php
CHANGED
@@ -4,53 +4,32 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
8 |
{
|
9 |
public static $prefixLengthsPsr4 = array (
|
10 |
-
'
|
11 |
array (
|
12 |
-
'
|
13 |
-
'MaxMind\\Exception\\' => 18,
|
14 |
-
'MaxMind\\Db\\' => 11,
|
15 |
-
),
|
16 |
-
'G' =>
|
17 |
-
array (
|
18 |
-
'GeoIp2\\' => 7,
|
19 |
-
),
|
20 |
-
'C' =>
|
21 |
-
array (
|
22 |
-
'Composer\\CaBundle\\' => 18,
|
23 |
),
|
24 |
);
|
25 |
|
26 |
public static $prefixDirsPsr4 = array (
|
27 |
-
'
|
28 |
-
array (
|
29 |
-
0 => __DIR__ . '/..' . '/maxmind/web-service-common/src/WebService',
|
30 |
-
),
|
31 |
-
'MaxMind\\Exception\\' =>
|
32 |
-
array (
|
33 |
-
0 => __DIR__ . '/..' . '/maxmind/web-service-common/src/Exception',
|
34 |
-
),
|
35 |
-
'MaxMind\\Db\\' =>
|
36 |
-
array (
|
37 |
-
0 => __DIR__ . '/..' . '/maxmind-db/reader/src/MaxMind/Db',
|
38 |
-
),
|
39 |
-
'GeoIp2\\' =>
|
40 |
array (
|
41 |
-
0 => __DIR__ . '/..' . '/
|
42 |
-
),
|
43 |
-
'Composer\\CaBundle\\' =>
|
44 |
-
array (
|
45 |
-
0 => __DIR__ . '/..' . '/composer/ca-bundle/src',
|
46 |
),
|
47 |
);
|
48 |
|
|
|
|
|
|
|
|
|
49 |
public static function getInitializer(ClassLoader $loader)
|
50 |
{
|
51 |
return \Closure::bind(function () use ($loader) {
|
52 |
-
$loader->prefixLengthsPsr4 =
|
53 |
-
$loader->prefixDirsPsr4 =
|
|
|
54 |
|
55 |
}, null, ClassLoader::class);
|
56 |
}
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInit736008d0fa54169b3444ae0f3fc20155
|
8 |
{
|
9 |
public static $prefixLengthsPsr4 = array (
|
10 |
+
'W' =>
|
11 |
array (
|
12 |
+
'Wordfence\\MmdbReader\\' => 21,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
),
|
14 |
);
|
15 |
|
16 |
public static $prefixDirsPsr4 = array (
|
17 |
+
'Wordfence\\MmdbReader\\' =>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
array (
|
19 |
+
0 => __DIR__ . '/..' . '/wordfence/mmdb-reader/src',
|
|
|
|
|
|
|
|
|
20 |
),
|
21 |
);
|
22 |
|
23 |
+
public static $classMap = array (
|
24 |
+
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
|
25 |
+
);
|
26 |
+
|
27 |
public static function getInitializer(ClassLoader $loader)
|
28 |
{
|
29 |
return \Closure::bind(function () use ($loader) {
|
30 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInit736008d0fa54169b3444ae0f3fc20155::$prefixLengthsPsr4;
|
31 |
+
$loader->prefixDirsPsr4 = ComposerStaticInit736008d0fa54169b3444ae0f3fc20155::$prefixDirsPsr4;
|
32 |
+
$loader->classMap = ComposerStaticInit736008d0fa54169b3444ae0f3fc20155::$classMap;
|
33 |
|
34 |
}, null, ClassLoader::class);
|
35 |
}
|
vendor/composer/ca-bundle/LICENSE
DELETED
@@ -1,19 +0,0 @@
|
|
1 |
-
Copyright (C) 2016 Composer
|
2 |
-
|
3 |
-
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
4 |
-
this software and associated documentation files (the "Software"), to deal in
|
5 |
-
the Software without restriction, including without limitation the rights to
|
6 |
-
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
7 |
-
of the Software, and to permit persons to whom the Software is furnished to do
|
8 |
-
so, subject to the following conditions:
|
9 |
-
|
10 |
-
The above copyright notice and this permission notice shall be included in all
|
11 |
-
copies or substantial portions of the Software.
|
12 |
-
|
13 |
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14 |
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15 |
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16 |
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17 |
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18 |
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
19 |
-
SOFTWARE.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/composer/ca-bundle/res/cacert.pem
DELETED
@@ -1,3401 +0,0 @@
|
|
1 |
-
##
|
2 |
-
## Bundle of CA Root Certificates
|
3 |
-
##
|
4 |
-
## Certificate data from Mozilla as of: Wed Jan 23 04:12:09 2019 GMT
|
5 |
-
##
|
6 |
-
## This is a bundle of X.509 certificates of public Certificate Authorities
|
7 |
-
## (CA). These were automatically extracted from Mozilla's root certificates
|
8 |
-
## file (certdata.txt). This file can be found in the mozilla source tree:
|
9 |
-
## https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt
|
10 |
-
##
|
11 |
-
## It contains the certificates in PEM format and therefore
|
12 |
-
## can be directly used with curl / libcurl / php_curl, or with
|
13 |
-
## an Apache+mod_ssl webserver for SSL client authentication.
|
14 |
-
## Just configure this file as the SSLCACertificateFile.
|
15 |
-
##
|
16 |
-
## Conversion done with mk-ca-bundle.pl version 1.27.
|
17 |
-
## SHA256: 18372117493b5b7ec006c31d966143fc95a9464a2b5f8d5188e23c5557b2292d
|
18 |
-
##
|
19 |
-
|
20 |
-
|
21 |
-
GlobalSign Root CA
|
22 |
-
==================
|
23 |
-
-----BEGIN CERTIFICATE-----
|
24 |
-
MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx
|
25 |
-
GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds
|
26 |
-
b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV
|
27 |
-
BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD
|
28 |
-
VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa
|
29 |
-
DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc
|
30 |
-
THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb
|
31 |
-
Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP
|
32 |
-
c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX
|
33 |
-
gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
|
34 |
-
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF
|
35 |
-
AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj
|
36 |
-
Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG
|
37 |
-
j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH
|
38 |
-
hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC
|
39 |
-
X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
|
40 |
-
-----END CERTIFICATE-----
|
41 |
-
|
42 |
-
GlobalSign Root CA - R2
|
43 |
-
=======================
|
44 |
-
-----BEGIN CERTIFICATE-----
|
45 |
-
MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv
|
46 |
-
YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
|
47 |
-
bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
|
48 |
-
aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
|
49 |
-
bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6
|
50 |
-
ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp
|
51 |
-
s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN
|
52 |
-
S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL
|
53 |
-
TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C
|
54 |
-
ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
|
55 |
-
FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i
|
56 |
-
YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN
|
57 |
-
BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp
|
58 |
-
9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu
|
59 |
-
01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7
|
60 |
-
9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
|
61 |
-
TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
|
62 |
-
-----END CERTIFICATE-----
|
63 |
-
|
64 |
-
Verisign Class 3 Public Primary Certification Authority - G3
|
65 |
-
============================================================
|
66 |
-
-----BEGIN CERTIFICATE-----
|
67 |
-
MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
|
68 |
-
UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
|
69 |
-
cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
|
70 |
-
IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
|
71 |
-
dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
|
72 |
-
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
|
73 |
-
dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
|
74 |
-
cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg
|
75 |
-
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
76 |
-
ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1
|
77 |
-
EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc
|
78 |
-
cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw
|
79 |
-
EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj
|
80 |
-
055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
|
81 |
-
ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f
|
82 |
-
j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
|
83 |
-
/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0
|
84 |
-
xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa
|
85 |
-
t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
|
86 |
-
-----END CERTIFICATE-----
|
87 |
-
|
88 |
-
Entrust.net Premium 2048 Secure Server CA
|
89 |
-
=========================================
|
90 |
-
-----BEGIN CERTIFICATE-----
|
91 |
-
MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u
|
92 |
-
ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp
|
93 |
-
bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV
|
94 |
-
BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx
|
95 |
-
NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3
|
96 |
-
d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
|
97 |
-
MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u
|
98 |
-
ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
99 |
-
MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL
|
100 |
-
Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr
|
101 |
-
hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW
|
102 |
-
nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi
|
103 |
-
VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E
|
104 |
-
BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ
|
105 |
-
KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy
|
106 |
-
T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
|
107 |
-
zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT
|
108 |
-
J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e
|
109 |
-
nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE=
|
110 |
-
-----END CERTIFICATE-----
|
111 |
-
|
112 |
-
Baltimore CyberTrust Root
|
113 |
-
=========================
|
114 |
-
-----BEGIN CERTIFICATE-----
|
115 |
-
MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE
|
116 |
-
ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li
|
117 |
-
ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC
|
118 |
-
SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs
|
119 |
-
dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME
|
120 |
-
uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB
|
121 |
-
UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C
|
122 |
-
G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9
|
123 |
-
XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr
|
124 |
-
l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI
|
125 |
-
VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
|
126 |
-
BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh
|
127 |
-
cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5
|
128 |
-
hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa
|
129 |
-
Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
|
130 |
-
RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
|
131 |
-
-----END CERTIFICATE-----
|
132 |
-
|
133 |
-
AddTrust External Root
|
134 |
-
======================
|
135 |
-
-----BEGIN CERTIFICATE-----
|
136 |
-
MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
|
137 |
-
QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD
|
138 |
-
VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw
|
139 |
-
NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU
|
140 |
-
cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg
|
141 |
-
Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821
|
142 |
-
+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw
|
143 |
-
Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo
|
144 |
-
aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy
|
145 |
-
2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7
|
146 |
-
7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P
|
147 |
-
BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL
|
148 |
-
VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk
|
149 |
-
VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB
|
150 |
-
IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl
|
151 |
-
j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
|
152 |
-
6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355
|
153 |
-
e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u
|
154 |
-
G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
|
155 |
-
-----END CERTIFICATE-----
|
156 |
-
|
157 |
-
Entrust Root Certification Authority
|
158 |
-
====================================
|
159 |
-
-----BEGIN CERTIFICATE-----
|
160 |
-
MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV
|
161 |
-
BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw
|
162 |
-
b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG
|
163 |
-
A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0
|
164 |
-
MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu
|
165 |
-
MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu
|
166 |
-
Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v
|
167 |
-
dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
168 |
-
ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz
|
169 |
-
A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww
|
170 |
-
Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68
|
171 |
-
j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN
|
172 |
-
rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw
|
173 |
-
DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1
|
174 |
-
MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH
|
175 |
-
hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
|
176 |
-
A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM
|
177 |
-
Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa
|
178 |
-
v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS
|
179 |
-
W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0
|
180 |
-
tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
|
181 |
-
-----END CERTIFICATE-----
|
182 |
-
|
183 |
-
GeoTrust Global CA
|
184 |
-
==================
|
185 |
-
-----BEGIN CERTIFICATE-----
|
186 |
-
MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
|
187 |
-
Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw
|
188 |
-
MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
|
189 |
-
LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
190 |
-
CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo
|
191 |
-
BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet
|
192 |
-
8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc
|
193 |
-
T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU
|
194 |
-
vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD
|
195 |
-
AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk
|
196 |
-
DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q
|
197 |
-
zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4
|
198 |
-
d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2
|
199 |
-
mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p
|
200 |
-
XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
|
201 |
-
Mw==
|
202 |
-
-----END CERTIFICATE-----
|
203 |
-
|
204 |
-
GeoTrust Universal CA
|
205 |
-
=====================
|
206 |
-
-----BEGIN CERTIFICATE-----
|
207 |
-
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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
|
231 |
-
P/rmMuGNG2+k5o7Y+SlIis5z/iw=
|
232 |
-
-----END CERTIFICATE-----
|
233 |
-
|
234 |
-
GeoTrust Universal CA 2
|
235 |
-
=======================
|
236 |
-
-----BEGIN CERTIFICATE-----
|
237 |
-
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
-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
-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
-
SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA
|
241 |
-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
-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
-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
-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
-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
-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
-
20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn
|
248 |
-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
-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
-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
-
+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
-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
-
dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ
|
254 |
-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
-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
-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
-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
-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
-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
-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
|
261 |
-
X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
|
262 |
-
-----END CERTIFICATE-----
|
263 |
-
|
264 |
-
Comodo AAA Services root
|
265 |
-
========================
|
266 |
-
-----BEGIN CERTIFICATE-----
|
267 |
-
MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
|
268 |
-
R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
|
269 |
-
TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw
|
270 |
-
MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl
|
271 |
-
c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
|
272 |
-
BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
273 |
-
ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG
|
274 |
-
C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs
|
275 |
-
i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW
|
276 |
-
Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH
|
277 |
-
Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK
|
278 |
-
Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f
|
279 |
-
BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl
|
280 |
-
cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz
|
281 |
-
LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm
|
282 |
-
7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
|
283 |
-
Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z
|
284 |
-
8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C
|
285 |
-
12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
|
286 |
-
-----END CERTIFICATE-----
|
287 |
-
|
288 |
-
QuoVadis Root CA
|
289 |
-
================
|
290 |
-
-----BEGIN CERTIFICATE-----
|
291 |
-
MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE
|
292 |
-
ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
|
293 |
-
eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz
|
294 |
-
MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp
|
295 |
-
cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD
|
296 |
-
EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
|
297 |
-
AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk
|
298 |
-
J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL
|
299 |
-
F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL
|
300 |
-
YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen
|
301 |
-
AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w
|
302 |
-
PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y
|
303 |
-
ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7
|
304 |
-
MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj
|
305 |
-
YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs
|
306 |
-
ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
|
307 |
-
Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW
|
308 |
-
Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu
|
309 |
-
BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw
|
310 |
-
FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0
|
311 |
-
aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6
|
312 |
-
tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo
|
313 |
-
fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul
|
314 |
-
LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x
|
315 |
-
gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi
|
316 |
-
5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi
|
317 |
-
5nrQNiOKSnQ2+Q==
|
318 |
-
-----END CERTIFICATE-----
|
319 |
-
|
320 |
-
QuoVadis Root CA 2
|
321 |
-
==================
|
322 |
-
-----BEGIN CERTIFICATE-----
|
323 |
-
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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm
|
342 |
-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
-
+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
-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
-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
-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
-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
-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
|
349 |
-
-----END CERTIFICATE-----
|
350 |
-
|
351 |
-
QuoVadis Root CA 3
|
352 |
-
==================
|
353 |
-
-----BEGIN CERTIFICATE-----
|
354 |
-
MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
|
355 |
-
EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx
|
356 |
-
OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
|
357 |
-
aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
|
358 |
-
DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg
|
359 |
-
DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij
|
360 |
-
KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K
|
361 |
-
DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv
|
362 |
-
BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp
|
363 |
-
p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8
|
364 |
-
nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX
|
365 |
-
MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM
|
366 |
-
Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz
|
367 |
-
uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT
|
368 |
-
BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj
|
369 |
-
YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
|
370 |
-
aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB
|
371 |
-
BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD
|
372 |
-
VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4
|
373 |
-
ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE
|
374 |
-
AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV
|
375 |
-
qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s
|
376 |
-
hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z
|
377 |
-
POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2
|
378 |
-
Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp
|
379 |
-
8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC
|
380 |
-
bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu
|
381 |
-
g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p
|
382 |
-
vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr
|
383 |
-
qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto=
|
384 |
-
-----END CERTIFICATE-----
|
385 |
-
|
386 |
-
Security Communication Root CA
|
387 |
-
==============================
|
388 |
-
-----BEGIN CERTIFICATE-----
|
389 |
-
MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
|
390 |
-
U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
|
391 |
-
HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
|
392 |
-
U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
|
393 |
-
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw
|
394 |
-
8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM
|
395 |
-
DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX
|
396 |
-
5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd
|
397 |
-
DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2
|
398 |
-
JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw
|
399 |
-
DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g
|
400 |
-
0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a
|
401 |
-
mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ
|
402 |
-
s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ
|
403 |
-
6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi
|
404 |
-
FL39vmwLAw==
|
405 |
-
-----END CERTIFICATE-----
|
406 |
-
|
407 |
-
Sonera Class 2 Root CA
|
408 |
-
======================
|
409 |
-
-----BEGIN CERTIFICATE-----
|
410 |
-
MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG
|
411 |
-
U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw
|
412 |
-
NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh
|
413 |
-
IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3
|
414 |
-
/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT
|
415 |
-
dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG
|
416 |
-
f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P
|
417 |
-
tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH
|
418 |
-
nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT
|
419 |
-
XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt
|
420 |
-
0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI
|
421 |
-
cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph
|
422 |
-
Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx
|
423 |
-
EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
|
424 |
-
llpwrN9M
|
425 |
-
-----END CERTIFICATE-----
|
426 |
-
|
427 |
-
XRamp Global CA Root
|
428 |
-
====================
|
429 |
-
-----BEGIN CERTIFICATE-----
|
430 |
-
MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE
|
431 |
-
BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj
|
432 |
-
dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
|
433 |
-
dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx
|
434 |
-
HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg
|
435 |
-
U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
|
436 |
-
dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu
|
437 |
-
IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx
|
438 |
-
foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE
|
439 |
-
zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs
|
440 |
-
AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry
|
441 |
-
xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
|
442 |
-
EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap
|
443 |
-
oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC
|
444 |
-
AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc
|
445 |
-
/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
|
446 |
-
qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n
|
447 |
-
nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz
|
448 |
-
8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw=
|
449 |
-
-----END CERTIFICATE-----
|
450 |
-
|
451 |
-
Go Daddy Class 2 CA
|
452 |
-
===================
|
453 |
-
-----BEGIN CERTIFICATE-----
|
454 |
-
MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY
|
455 |
-
VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp
|
456 |
-
ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG
|
457 |
-
A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g
|
458 |
-
RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD
|
459 |
-
ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv
|
460 |
-
2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32
|
461 |
-
qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j
|
462 |
-
YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY
|
463 |
-
vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O
|
464 |
-
BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o
|
465 |
-
atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu
|
466 |
-
MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG
|
467 |
-
A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim
|
468 |
-
PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt
|
469 |
-
I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
|
470 |
-
HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI
|
471 |
-
Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b
|
472 |
-
vZ8=
|
473 |
-
-----END CERTIFICATE-----
|
474 |
-
|
475 |
-
Starfield Class 2 CA
|
476 |
-
====================
|
477 |
-
-----BEGIN CERTIFICATE-----
|
478 |
-
MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc
|
479 |
-
U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg
|
480 |
-
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo
|
481 |
-
MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG
|
482 |
-
A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG
|
483 |
-
SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY
|
484 |
-
bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ
|
485 |
-
JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm
|
486 |
-
epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN
|
487 |
-
F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF
|
488 |
-
MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f
|
489 |
-
hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo
|
490 |
-
bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g
|
491 |
-
QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs
|
492 |
-
afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM
|
493 |
-
PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
|
494 |
-
xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD
|
495 |
-
KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3
|
496 |
-
QBFGmh95DmK/D5fs4C8fF5Q=
|
497 |
-
-----END CERTIFICATE-----
|
498 |
-
|
499 |
-
Taiwan GRCA
|
500 |
-
===========
|
501 |
-
-----BEGIN CERTIFICATE-----
|
502 |
-
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
-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
-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
-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
-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
-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
-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
-
1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO
|
510 |
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
+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
|
527 |
-
-----END CERTIFICATE-----
|
528 |
-
|
529 |
-
DigiCert Assured ID Root CA
|
530 |
-
===========================
|
531 |
-
-----BEGIN CERTIFICATE-----
|
532 |
-
MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG
|
533 |
-
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
|
534 |
-
IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx
|
535 |
-
MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
|
536 |
-
ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew
|
537 |
-
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO
|
538 |
-
9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy
|
539 |
-
UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW
|
540 |
-
/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy
|
541 |
-
oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf
|
542 |
-
GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF
|
543 |
-
66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
|
544 |
-
hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc
|
545 |
-
EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn
|
546 |
-
SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i
|
547 |
-
8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
|
548 |
-
+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
|
549 |
-
-----END CERTIFICATE-----
|
550 |
-
|
551 |
-
DigiCert Global Root CA
|
552 |
-
=======================
|
553 |
-
-----BEGIN CERTIFICATE-----
|
554 |
-
MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG
|
555 |
-
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
|
556 |
-
HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw
|
557 |
-
MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
|
558 |
-
dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq
|
559 |
-
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn
|
560 |
-
TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5
|
561 |
-
BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H
|
562 |
-
4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y
|
563 |
-
7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB
|
564 |
-
o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm
|
565 |
-
8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF
|
566 |
-
BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr
|
567 |
-
EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt
|
568 |
-
tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886
|
569 |
-
UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
|
570 |
-
CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
|
571 |
-
-----END CERTIFICATE-----
|
572 |
-
|
573 |
-
DigiCert High Assurance EV Root CA
|
574 |
-
==================================
|
575 |
-
-----BEGIN CERTIFICATE-----
|
576 |
-
MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
|
577 |
-
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
|
578 |
-
KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
|
579 |
-
MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
|
580 |
-
MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
|
581 |
-
Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
|
582 |
-
Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
|
583 |
-
OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
|
584 |
-
MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
|
585 |
-
NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
|
586 |
-
h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
|
587 |
-
Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
|
588 |
-
JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
|
589 |
-
V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
|
590 |
-
myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
|
591 |
-
mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
|
592 |
-
vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
|
593 |
-
-----END CERTIFICATE-----
|
594 |
-
|
595 |
-
Certplus Class 2 Primary CA
|
596 |
-
===========================
|
597 |
-
-----BEGIN CERTIFICATE-----
|
598 |
-
MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE
|
599 |
-
BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN
|
600 |
-
OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy
|
601 |
-
dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
602 |
-
ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR
|
603 |
-
5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ
|
604 |
-
Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO
|
605 |
-
YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e
|
606 |
-
e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME
|
607 |
-
CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ
|
608 |
-
YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t
|
609 |
-
L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD
|
610 |
-
P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R
|
611 |
-
TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+
|
612 |
-
7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW
|
613 |
-
//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
|
614 |
-
l7+ijrRU
|
615 |
-
-----END CERTIFICATE-----
|
616 |
-
|
617 |
-
DST Root CA X3
|
618 |
-
==============
|
619 |
-
-----BEGIN CERTIFICATE-----
|
620 |
-
MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK
|
621 |
-
ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X
|
622 |
-
DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1
|
623 |
-
cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD
|
624 |
-
ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT
|
625 |
-
rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9
|
626 |
-
UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy
|
627 |
-
xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d
|
628 |
-
utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T
|
629 |
-
AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ
|
630 |
-
MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug
|
631 |
-
dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE
|
632 |
-
GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw
|
633 |
-
RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS
|
634 |
-
fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
|
635 |
-
-----END CERTIFICATE-----
|
636 |
-
|
637 |
-
SwissSign Gold CA - G2
|
638 |
-
======================
|
639 |
-
-----BEGIN CERTIFICATE-----
|
640 |
-
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
-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
-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
-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
-
AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq
|
645 |
-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
-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
-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
-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
-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
-
jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO
|
651 |
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
|
666 |
-
-----END CERTIFICATE-----
|
667 |
-
|
668 |
-
SwissSign Silver CA - G2
|
669 |
-
========================
|
670 |
-
-----BEGIN CERTIFICATE-----
|
671 |
-
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
-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
-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
-
aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG
|
675 |
-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
-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
-
+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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
|
697 |
-
-----END CERTIFICATE-----
|
698 |
-
|
699 |
-
GeoTrust Primary Certification Authority
|
700 |
-
========================================
|
701 |
-
-----BEGIN CERTIFICATE-----
|
702 |
-
MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG
|
703 |
-
EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD
|
704 |
-
ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx
|
705 |
-
CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ
|
706 |
-
cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
707 |
-
CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN
|
708 |
-
b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9
|
709 |
-
nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge
|
710 |
-
RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt
|
711 |
-
tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
|
712 |
-
AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI
|
713 |
-
hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K
|
714 |
-
Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN
|
715 |
-
NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa
|
716 |
-
Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG
|
717 |
-
1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
|
718 |
-
-----END CERTIFICATE-----
|
719 |
-
|
720 |
-
thawte Primary Root CA
|
721 |
-
======================
|
722 |
-
-----BEGIN CERTIFICATE-----
|
723 |
-
MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE
|
724 |
-
BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
|
725 |
-
aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
|
726 |
-
cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3
|
727 |
-
MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg
|
728 |
-
SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv
|
729 |
-
KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT
|
730 |
-
FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs
|
731 |
-
oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ
|
732 |
-
1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc
|
733 |
-
q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K
|
734 |
-
aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p
|
735 |
-
afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD
|
736 |
-
VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF
|
737 |
-
AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE
|
738 |
-
uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
|
739 |
-
xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89
|
740 |
-
jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH
|
741 |
-
z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA==
|
742 |
-
-----END CERTIFICATE-----
|
743 |
-
|
744 |
-
VeriSign Class 3 Public Primary Certification Authority - G5
|
745 |
-
============================================================
|
746 |
-
-----BEGIN CERTIFICATE-----
|
747 |
-
MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
|
748 |
-
BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
|
749 |
-
ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
|
750 |
-
IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp
|
751 |
-
ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB
|
752 |
-
yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln
|
753 |
-
biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh
|
754 |
-
dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt
|
755 |
-
YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
|
756 |
-
ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz
|
757 |
-
j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD
|
758 |
-
Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
|
759 |
-
Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r
|
760 |
-
fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/
|
761 |
-
BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
|
762 |
-
Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
|
763 |
-
aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG
|
764 |
-
SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+
|
765 |
-
X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE
|
766 |
-
KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC
|
767 |
-
Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE
|
768 |
-
ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
|
769 |
-
-----END CERTIFICATE-----
|
770 |
-
|
771 |
-
SecureTrust CA
|
772 |
-
==============
|
773 |
-
-----BEGIN CERTIFICATE-----
|
774 |
-
MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG
|
775 |
-
EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy
|
776 |
-
dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe
|
777 |
-
BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC
|
778 |
-
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX
|
779 |
-
OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t
|
780 |
-
DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH
|
781 |
-
GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b
|
782 |
-
01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH
|
783 |
-
ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/
|
784 |
-
BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj
|
785 |
-
aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
|
786 |
-
KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu
|
787 |
-
SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf
|
788 |
-
mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ
|
789 |
-
nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
|
790 |
-
3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
|
791 |
-
-----END CERTIFICATE-----
|
792 |
-
|
793 |
-
Secure Global CA
|
794 |
-
================
|
795 |
-
-----BEGIN CERTIFICATE-----
|
796 |
-
MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG
|
797 |
-
EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH
|
798 |
-
bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg
|
799 |
-
MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg
|
800 |
-
Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx
|
801 |
-
YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ
|
802 |
-
bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g
|
803 |
-
8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV
|
804 |
-
HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi
|
805 |
-
0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
|
806 |
-
EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn
|
807 |
-
oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA
|
808 |
-
MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+
|
809 |
-
OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn
|
810 |
-
CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5
|
811 |
-
3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
|
812 |
-
f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
|
813 |
-
-----END CERTIFICATE-----
|
814 |
-
|
815 |
-
COMODO Certification Authority
|
816 |
-
==============================
|
817 |
-
-----BEGIN CERTIFICATE-----
|
818 |
-
MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE
|
819 |
-
BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
|
820 |
-
A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1
|
821 |
-
dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb
|
822 |
-
MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD
|
823 |
-
T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
|
824 |
-
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH
|
825 |
-
+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww
|
826 |
-
xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV
|
827 |
-
4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA
|
828 |
-
1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI
|
829 |
-
rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E
|
830 |
-
BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k
|
831 |
-
b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC
|
832 |
-
AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP
|
833 |
-
OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
|
834 |
-
RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc
|
835 |
-
IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN
|
836 |
-
+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ==
|
837 |
-
-----END CERTIFICATE-----
|
838 |
-
|
839 |
-
Network Solutions Certificate Authority
|
840 |
-
=======================================
|
841 |
-
-----BEGIN CERTIFICATE-----
|
842 |
-
MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG
|
843 |
-
EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr
|
844 |
-
IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx
|
845 |
-
MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
|
846 |
-
MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
|
847 |
-
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx
|
848 |
-
jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT
|
849 |
-
aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT
|
850 |
-
crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc
|
851 |
-
/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB
|
852 |
-
AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP
|
853 |
-
BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv
|
854 |
-
bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA
|
855 |
-
A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q
|
856 |
-
4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/
|
857 |
-
GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
|
858 |
-
wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
|
859 |
-
ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
|
860 |
-
-----END CERTIFICATE-----
|
861 |
-
|
862 |
-
COMODO ECC Certification Authority
|
863 |
-
==================================
|
864 |
-
-----BEGIN CERTIFICATE-----
|
865 |
-
MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC
|
866 |
-
R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
|
867 |
-
ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB
|
868 |
-
dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix
|
869 |
-
GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
|
870 |
-
Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo
|
871 |
-
b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X
|
872 |
-
4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni
|
873 |
-
wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E
|
874 |
-
BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG
|
875 |
-
FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA
|
876 |
-
U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
|
877 |
-
-----END CERTIFICATE-----
|
878 |
-
|
879 |
-
OISTE WISeKey Global Root GA CA
|
880 |
-
===============================
|
881 |
-
-----BEGIN CERTIFICATE-----
|
882 |
-
MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE
|
883 |
-
BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG
|
884 |
-
A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH
|
885 |
-
bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD
|
886 |
-
VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw
|
887 |
-
IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5
|
888 |
-
IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9
|
889 |
-
Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg
|
890 |
-
Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD
|
891 |
-
d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ
|
892 |
-
/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R
|
893 |
-
LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
|
894 |
-
AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
|
895 |
-
KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm
|
896 |
-
MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4
|
897 |
-
+vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
|
898 |
-
hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY
|
899 |
-
okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0=
|
900 |
-
-----END CERTIFICATE-----
|
901 |
-
|
902 |
-
Certigna
|
903 |
-
========
|
904 |
-
-----BEGIN CERTIFICATE-----
|
905 |
-
MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw
|
906 |
-
EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3
|
907 |
-
MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI
|
908 |
-
Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q
|
909 |
-
XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH
|
910 |
-
GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p
|
911 |
-
ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg
|
912 |
-
DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf
|
913 |
-
Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ
|
914 |
-
tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ
|
915 |
-
BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J
|
916 |
-
SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA
|
917 |
-
hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+
|
918 |
-
ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu
|
919 |
-
PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
|
920 |
-
1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
|
921 |
-
WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
|
922 |
-
-----END CERTIFICATE-----
|
923 |
-
|
924 |
-
Deutsche Telekom Root CA 2
|
925 |
-
==========================
|
926 |
-
-----BEGIN CERTIFICATE-----
|
927 |
-
MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT
|
928 |
-
RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG
|
929 |
-
A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5
|
930 |
-
MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G
|
931 |
-
A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS
|
932 |
-
b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5
|
933 |
-
bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI
|
934 |
-
KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY
|
935 |
-
AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK
|
936 |
-
Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV
|
937 |
-
jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV
|
938 |
-
HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr
|
939 |
-
E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy
|
940 |
-
zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8
|
941 |
-
rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G
|
942 |
-
dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
|
943 |
-
Cm26OWMohpLzGITY+9HPBVZkVw==
|
944 |
-
-----END CERTIFICATE-----
|
945 |
-
|
946 |
-
Cybertrust Global Root
|
947 |
-
======================
|
948 |
-
-----BEGIN CERTIFICATE-----
|
949 |
-
MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li
|
950 |
-
ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4
|
951 |
-
MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD
|
952 |
-
ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
|
953 |
-
+Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW
|
954 |
-
0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL
|
955 |
-
AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin
|
956 |
-
89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT
|
957 |
-
8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP
|
958 |
-
BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2
|
959 |
-
MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G
|
960 |
-
A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO
|
961 |
-
lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi
|
962 |
-
5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2
|
963 |
-
hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T
|
964 |
-
X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
|
965 |
-
WL1WMRJOEcgh4LMRkWXbtKaIOM5V
|
966 |
-
-----END CERTIFICATE-----
|
967 |
-
|
968 |
-
ePKI Root Certification Authority
|
969 |
-
=================================
|
970 |
-
-----BEGIN CERTIFICATE-----
|
971 |
-
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
-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
-
Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx
|
974 |
-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
-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
-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
-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
-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
-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
-
12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O
|
981 |
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
|
997 |
-
-----END CERTIFICATE-----
|
998 |
-
|
999 |
-
certSIGN ROOT CA
|
1000 |
-
================
|
1001 |
-
-----BEGIN CERTIFICATE-----
|
1002 |
-
MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD
|
1003 |
-
VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa
|
1004 |
-
Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE
|
1005 |
-
CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I
|
1006 |
-
JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH
|
1007 |
-
rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2
|
1008 |
-
ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD
|
1009 |
-
0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943
|
1010 |
-
AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B
|
1011 |
-
Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB
|
1012 |
-
AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8
|
1013 |
-
SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0
|
1014 |
-
x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt
|
1015 |
-
vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz
|
1016 |
-
TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
|
1017 |
-
-----END CERTIFICATE-----
|
1018 |
-
|
1019 |
-
GeoTrust Primary Certification Authority - G3
|
1020 |
-
=============================================
|
1021 |
-
-----BEGIN CERTIFICATE-----
|
1022 |
-
MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE
|
1023 |
-
BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0
|
1024 |
-
IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy
|
1025 |
-
eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz
|
1026 |
-
NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo
|
1027 |
-
YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT
|
1028 |
-
LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
|
1029 |
-
hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j
|
1030 |
-
K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE
|
1031 |
-
c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C
|
1032 |
-
IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu
|
1033 |
-
dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC
|
1034 |
-
MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr
|
1035 |
-
2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9
|
1036 |
-
cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE
|
1037 |
-
Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
|
1038 |
-
AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s
|
1039 |
-
t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt
|
1040 |
-
-----END CERTIFICATE-----
|
1041 |
-
|
1042 |
-
thawte Primary Root CA - G2
|
1043 |
-
===========================
|
1044 |
-
-----BEGIN CERTIFICATE-----
|
1045 |
-
MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC
|
1046 |
-
VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu
|
1047 |
-
IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg
|
1048 |
-
Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV
|
1049 |
-
MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG
|
1050 |
-
b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt
|
1051 |
-
IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS
|
1052 |
-
LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5
|
1053 |
-
8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
|
1054 |
-
mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN
|
1055 |
-
G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K
|
1056 |
-
rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
|
1057 |
-
-----END CERTIFICATE-----
|
1058 |
-
|
1059 |
-
thawte Primary Root CA - G3
|
1060 |
-
===========================
|
1061 |
-
-----BEGIN CERTIFICATE-----
|
1062 |
-
MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE
|
1063 |
-
BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
|
1064 |
-
aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
|
1065 |
-
cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w
|
1066 |
-
ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
|
1067 |
-
d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD
|
1068 |
-
VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG
|
1069 |
-
A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
1070 |
-
MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At
|
1071 |
-
P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC
|
1072 |
-
+BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY
|
1073 |
-
7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW
|
1074 |
-
vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E
|
1075 |
-
BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ
|
1076 |
-
KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK
|
1077 |
-
A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
|
1078 |
-
t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC
|
1079 |
-
8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm
|
1080 |
-
er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A=
|
1081 |
-
-----END CERTIFICATE-----
|
1082 |
-
|
1083 |
-
GeoTrust Primary Certification Authority - G2
|
1084 |
-
=============================================
|
1085 |
-
-----BEGIN CERTIFICATE-----
|
1086 |
-
MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC
|
1087 |
-
VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu
|
1088 |
-
Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD
|
1089 |
-
ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1
|
1090 |
-
OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
|
1091 |
-
MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl
|
1092 |
-
b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG
|
1093 |
-
BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc
|
1094 |
-
KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD
|
1095 |
-
VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+
|
1096 |
-
EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m
|
1097 |
-
ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2
|
1098 |
-
npaqBA+K
|
1099 |
-
-----END CERTIFICATE-----
|
1100 |
-
|
1101 |
-
VeriSign Universal Root Certification Authority
|
1102 |
-
===============================================
|
1103 |
-
-----BEGIN CERTIFICATE-----
|
1104 |
-
MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE
|
1105 |
-
BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
|
1106 |
-
ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
|
1107 |
-
IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u
|
1108 |
-
IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV
|
1109 |
-
UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
|
1110 |
-
cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
|
1111 |
-
IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0
|
1112 |
-
aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj
|
1113 |
-
1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP
|
1114 |
-
MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72
|
1115 |
-
9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I
|
1116 |
-
AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR
|
1117 |
-
tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G
|
1118 |
-
CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O
|
1119 |
-
a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
|
1120 |
-
DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3
|
1121 |
-
Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx
|
1122 |
-
Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx
|
1123 |
-
P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P
|
1124 |
-
wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4
|
1125 |
-
mJO37M2CYfE45k+XmCpajQ==
|
1126 |
-
-----END CERTIFICATE-----
|
1127 |
-
|
1128 |
-
VeriSign Class 3 Public Primary Certification Authority - G4
|
1129 |
-
============================================================
|
1130 |
-
-----BEGIN CERTIFICATE-----
|
1131 |
-
MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC
|
1132 |
-
VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3
|
1133 |
-
b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz
|
1134 |
-
ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj
|
1135 |
-
YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL
|
1136 |
-
MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU
|
1137 |
-
cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo
|
1138 |
-
b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5
|
1139 |
-
IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8
|
1140 |
-
Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz
|
1141 |
-
rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB
|
1142 |
-
/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw
|
1143 |
-
HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u
|
1144 |
-
Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD
|
1145 |
-
A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx
|
1146 |
-
AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
|
1147 |
-
-----END CERTIFICATE-----
|
1148 |
-
|
1149 |
-
NetLock Arany (Class Gold) Főtanúsítvány
|
1150 |
-
========================================
|
1151 |
-
-----BEGIN CERTIFICATE-----
|
1152 |
-
MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
|
1153 |
-
A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610
|
1154 |
-
dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB
|
1155 |
-
cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx
|
1156 |
-
MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO
|
1157 |
-
ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv
|
1158 |
-
biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6
|
1159 |
-
c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu
|
1160 |
-
0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw
|
1161 |
-
/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk
|
1162 |
-
H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw
|
1163 |
-
fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1
|
1164 |
-
neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB
|
1165 |
-
BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW
|
1166 |
-
qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta
|
1167 |
-
YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
|
1168 |
-
bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna
|
1169 |
-
NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu
|
1170 |
-
dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
|
1171 |
-
-----END CERTIFICATE-----
|
1172 |
-
|
1173 |
-
Staat der Nederlanden Root CA - G2
|
1174 |
-
==================================
|
1175 |
-
-----BEGIN CERTIFICATE-----
|
1176 |
-
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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
+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
-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
-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
-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
-
URmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkmbEgeqmiSBeGCc1qb3Adb
|
1199 |
-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
-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
-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
|
1202 |
-
66+KAQ==
|
1203 |
-
-----END CERTIFICATE-----
|
1204 |
-
|
1205 |
-
Hongkong Post Root CA 1
|
1206 |
-
=======================
|
1207 |
-
-----BEGIN CERTIFICATE-----
|
1208 |
-
MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT
|
1209 |
-
DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx
|
1210 |
-
NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n
|
1211 |
-
IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF
|
1212 |
-
AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1
|
1213 |
-
ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr
|
1214 |
-
auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh
|
1215 |
-
qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY
|
1216 |
-
V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV
|
1217 |
-
HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i
|
1218 |
-
h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio
|
1219 |
-
l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei
|
1220 |
-
IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps
|
1221 |
-
T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT
|
1222 |
-
c4afU9hDDl3WY4JxHYB0yvbiAmvZWg==
|
1223 |
-
-----END CERTIFICATE-----
|
1224 |
-
|
1225 |
-
SecureSign RootCA11
|
1226 |
-
===================
|
1227 |
-
-----BEGIN CERTIFICATE-----
|
1228 |
-
MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi
|
1229 |
-
SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS
|
1230 |
-
b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw
|
1231 |
-
KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1
|
1232 |
-
cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL
|
1233 |
-
TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO
|
1234 |
-
wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq
|
1235 |
-
g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP
|
1236 |
-
O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA
|
1237 |
-
bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX
|
1238 |
-
t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh
|
1239 |
-
OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r
|
1240 |
-
bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ
|
1241 |
-
Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01
|
1242 |
-
y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061
|
1243 |
-
lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I=
|
1244 |
-
-----END CERTIFICATE-----
|
1245 |
-
|
1246 |
-
Microsec e-Szigno Root CA 2009
|
1247 |
-
==============================
|
1248 |
-
-----BEGIN CERTIFICATE-----
|
1249 |
-
MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER
|
1250 |
-
MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv
|
1251 |
-
c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
|
1252 |
-
dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE
|
1253 |
-
BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt
|
1254 |
-
U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw
|
1255 |
-
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA
|
1256 |
-
fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG
|
1257 |
-
0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA
|
1258 |
-
pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm
|
1259 |
-
1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC
|
1260 |
-
AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf
|
1261 |
-
QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE
|
1262 |
-
FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o
|
1263 |
-
lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX
|
1264 |
-
I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
|
1265 |
-
tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02
|
1266 |
-
yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi
|
1267 |
-
LXpUq3DDfSJlgnCW
|
1268 |
-
-----END CERTIFICATE-----
|
1269 |
-
|
1270 |
-
GlobalSign Root CA - R3
|
1271 |
-
=======================
|
1272 |
-
-----BEGIN CERTIFICATE-----
|
1273 |
-
MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv
|
1274 |
-
YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
|
1275 |
-
bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
|
1276 |
-
aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
|
1277 |
-
bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt
|
1278 |
-
iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ
|
1279 |
-
0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3
|
1280 |
-
rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl
|
1281 |
-
OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2
|
1282 |
-
xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
|
1283 |
-
FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7
|
1284 |
-
lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8
|
1285 |
-
EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E
|
1286 |
-
bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18
|
1287 |
-
YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r
|
1288 |
-
kpeDMdmztcpHWD9f
|
1289 |
-
-----END CERTIFICATE-----
|
1290 |
-
|
1291 |
-
Autoridad de Certificacion Firmaprofesional CIF A62634068
|
1292 |
-
=========================================================
|
1293 |
-
-----BEGIN CERTIFICATE-----
|
1294 |
-
MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA
|
1295 |
-
BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2
|
1296 |
-
MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw
|
1297 |
-
QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB
|
1298 |
-
NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD
|
1299 |
-
Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P
|
1300 |
-
B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY
|
1301 |
-
7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH
|
1302 |
-
ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI
|
1303 |
-
plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX
|
1304 |
-
MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX
|
1305 |
-
LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK
|
1306 |
-
bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU
|
1307 |
-
vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud
|
1308 |
-
EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH
|
1309 |
-
DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
|
1310 |
-
cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA
|
1311 |
-
bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx
|
1312 |
-
ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx
|
1313 |
-
51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk
|
1314 |
-
R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP
|
1315 |
-
T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f
|
1316 |
-
Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl
|
1317 |
-
osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR
|
1318 |
-
crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR
|
1319 |
-
saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD
|
1320 |
-
KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi
|
1321 |
-
6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
|
1322 |
-
-----END CERTIFICATE-----
|
1323 |
-
|
1324 |
-
Izenpe.com
|
1325 |
-
==========
|
1326 |
-
-----BEGIN CERTIFICATE-----
|
1327 |
-
MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG
|
1328 |
-
EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz
|
1329 |
-
MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu
|
1330 |
-
QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ
|
1331 |
-
03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK
|
1332 |
-
ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU
|
1333 |
-
+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC
|
1334 |
-
PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT
|
1335 |
-
OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK
|
1336 |
-
F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK
|
1337 |
-
0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+
|
1338 |
-
0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB
|
1339 |
-
leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID
|
1340 |
-
AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+
|
1341 |
-
SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG
|
1342 |
-
NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx
|
1343 |
-
MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
|
1344 |
-
BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l
|
1345 |
-
Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga
|
1346 |
-
kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q
|
1347 |
-
hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs
|
1348 |
-
g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5
|
1349 |
-
aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5
|
1350 |
-
nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC
|
1351 |
-
ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo
|
1352 |
-
Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z
|
1353 |
-
WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw==
|
1354 |
-
-----END CERTIFICATE-----
|
1355 |
-
|
1356 |
-
Chambers of Commerce Root - 2008
|
1357 |
-
================================
|
1358 |
-
-----BEGIN CERTIFICATE-----
|
1359 |
-
MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD
|
1360 |
-
MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
|
1361 |
-
bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
|
1362 |
-
QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy
|
1363 |
-
Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl
|
1364 |
-
ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF
|
1365 |
-
EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl
|
1366 |
-
cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
|
1367 |
-
AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA
|
1368 |
-
XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj
|
1369 |
-
h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/
|
1370 |
-
ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk
|
1371 |
-
NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g
|
1372 |
-
D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331
|
1373 |
-
lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ
|
1374 |
-
0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
|
1375 |
-
ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2
|
1376 |
-
EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI
|
1377 |
-
G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ
|
1378 |
-
BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh
|
1379 |
-
bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh
|
1380 |
-
bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC
|
1381 |
-
CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH
|
1382 |
-
AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1
|
1383 |
-
wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH
|
1384 |
-
3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU
|
1385 |
-
RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6
|
1386 |
-
M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1
|
1387 |
-
YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF
|
1388 |
-
9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK
|
1389 |
-
zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG
|
1390 |
-
nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
|
1391 |
-
OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ
|
1392 |
-
-----END CERTIFICATE-----
|
1393 |
-
|
1394 |
-
Global Chambersign Root - 2008
|
1395 |
-
==============================
|
1396 |
-
-----BEGIN CERTIFICATE-----
|
1397 |
-
MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD
|
1398 |
-
MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
|
1399 |
-
bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
|
1400 |
-
QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx
|
1401 |
-
NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg
|
1402 |
-
Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ
|
1403 |
-
QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
|
1404 |
-
aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf
|
1405 |
-
VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf
|
1406 |
-
XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0
|
1407 |
-
ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB
|
1408 |
-
/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA
|
1409 |
-
TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M
|
1410 |
-
H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe
|
1411 |
-
Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF
|
1412 |
-
HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
|
1413 |
-
wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB
|
1414 |
-
AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT
|
1415 |
-
BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE
|
1416 |
-
BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm
|
1417 |
-
aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm
|
1418 |
-
aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp
|
1419 |
-
1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0
|
1420 |
-
dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG
|
1421 |
-
/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6
|
1422 |
-
ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s
|
1423 |
-
dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg
|
1424 |
-
9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH
|
1425 |
-
foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du
|
1426 |
-
qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr
|
1427 |
-
P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq
|
1428 |
-
c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
|
1429 |
-
09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
|
1430 |
-
-----END CERTIFICATE-----
|
1431 |
-
|
1432 |
-
Go Daddy Root Certificate Authority - G2
|
1433 |
-
========================================
|
1434 |
-
-----BEGIN CERTIFICATE-----
|
1435 |
-
MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
|
1436 |
-
B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu
|
1437 |
-
MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
|
1438 |
-
MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
|
1439 |
-
b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G
|
1440 |
-
A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
|
1441 |
-
hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq
|
1442 |
-
9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD
|
1443 |
-
+qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd
|
1444 |
-
fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl
|
1445 |
-
NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC
|
1446 |
-
MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9
|
1447 |
-
BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac
|
1448 |
-
vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r
|
1449 |
-
5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV
|
1450 |
-
N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
|
1451 |
-
LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1
|
1452 |
-
-----END CERTIFICATE-----
|
1453 |
-
|
1454 |
-
Starfield Root Certificate Authority - G2
|
1455 |
-
=========================================
|
1456 |
-
-----BEGIN CERTIFICATE-----
|
1457 |
-
MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
|
1458 |
-
B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
|
1459 |
-
b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
|
1460 |
-
eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw
|
1461 |
-
DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg
|
1462 |
-
VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB
|
1463 |
-
dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv
|
1464 |
-
W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs
|
1465 |
-
bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk
|
1466 |
-
N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf
|
1467 |
-
ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU
|
1468 |
-
JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
|
1469 |
-
AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol
|
1470 |
-
TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx
|
1471 |
-
4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw
|
1472 |
-
F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
|
1473 |
-
pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ
|
1474 |
-
c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
|
1475 |
-
-----END CERTIFICATE-----
|
1476 |
-
|
1477 |
-
Starfield Services Root Certificate Authority - G2
|
1478 |
-
==================================================
|
1479 |
-
-----BEGIN CERTIFICATE-----
|
1480 |
-
MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
|
1481 |
-
B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
|
1482 |
-
b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl
|
1483 |
-
IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV
|
1484 |
-
BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT
|
1485 |
-
dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg
|
1486 |
-
Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
|
1487 |
-
AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2
|
1488 |
-
h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa
|
1489 |
-
hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP
|
1490 |
-
LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB
|
1491 |
-
rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw
|
1492 |
-
AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG
|
1493 |
-
SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP
|
1494 |
-
E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy
|
1495 |
-
xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
|
1496 |
-
iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza
|
1497 |
-
YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6
|
1498 |
-
-----END CERTIFICATE-----
|
1499 |
-
|
1500 |
-
AffirmTrust Commercial
|
1501 |
-
======================
|
1502 |
-
-----BEGIN CERTIFICATE-----
|
1503 |
-
MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS
|
1504 |
-
BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw
|
1505 |
-
MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
|
1506 |
-
bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF
|
1507 |
-
AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb
|
1508 |
-
DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV
|
1509 |
-
C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6
|
1510 |
-
BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww
|
1511 |
-
MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV
|
1512 |
-
HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
|
1513 |
-
AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG
|
1514 |
-
hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi
|
1515 |
-
qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv
|
1516 |
-
0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh
|
1517 |
-
sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
|
1518 |
-
-----END CERTIFICATE-----
|
1519 |
-
|
1520 |
-
AffirmTrust Networking
|
1521 |
-
======================
|
1522 |
-
-----BEGIN CERTIFICATE-----
|
1523 |
-
MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS
|
1524 |
-
BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw
|
1525 |
-
MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
|
1526 |
-
bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF
|
1527 |
-
AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE
|
1528 |
-
Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI
|
1529 |
-
dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24
|
1530 |
-
/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb
|
1531 |
-
h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV
|
1532 |
-
HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
|
1533 |
-
AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu
|
1534 |
-
UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6
|
1535 |
-
12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23
|
1536 |
-
WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9
|
1537 |
-
/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
|
1538 |
-
-----END CERTIFICATE-----
|
1539 |
-
|
1540 |
-
AffirmTrust Premium
|
1541 |
-
===================
|
1542 |
-
-----BEGIN CERTIFICATE-----
|
1543 |
-
MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS
|
1544 |
-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
-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
-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
-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
-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
-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
-
+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
-
GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R
|
1552 |
-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
-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
-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
-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
-
+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
-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
-
MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
|
1559 |
-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
-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
-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
-
+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
-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
-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
-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
-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
|
1567 |
-
-----END CERTIFICATE-----
|
1568 |
-
|
1569 |
-
AffirmTrust Premium ECC
|
1570 |
-
=======================
|
1571 |
-
-----BEGIN CERTIFICATE-----
|
1572 |
-
MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV
|
1573 |
-
BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx
|
1574 |
-
MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U
|
1575 |
-
cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA
|
1576 |
-
IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ
|
1577 |
-
N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW
|
1578 |
-
BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK
|
1579 |
-
BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X
|
1580 |
-
57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM
|
1581 |
-
eQ==
|
1582 |
-
-----END CERTIFICATE-----
|
1583 |
-
|
1584 |
-
Certum Trusted Network CA
|
1585 |
-
=========================
|
1586 |
-
-----BEGIN CERTIFICATE-----
|
1587 |
-
MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK
|
1588 |
-
ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv
|
1589 |
-
biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy
|
1590 |
-
MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU
|
1591 |
-
ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
|
1592 |
-
MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
|
1593 |
-
AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC
|
1594 |
-
l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J
|
1595 |
-
J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4
|
1596 |
-
fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0
|
1597 |
-
cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB
|
1598 |
-
Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw
|
1599 |
-
DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj
|
1600 |
-
jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1
|
1601 |
-
mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj
|
1602 |
-
Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
|
1603 |
-
03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
|
1604 |
-
-----END CERTIFICATE-----
|
1605 |
-
|
1606 |
-
TWCA Root Certification Authority
|
1607 |
-
=================================
|
1608 |
-
-----BEGIN CERTIFICATE-----
|
1609 |
-
MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ
|
1610 |
-
VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh
|
1611 |
-
dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG
|
1612 |
-
EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB
|
1613 |
-
IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
|
1614 |
-
AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx
|
1615 |
-
QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC
|
1616 |
-
oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP
|
1617 |
-
4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r
|
1618 |
-
y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB
|
1619 |
-
BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG
|
1620 |
-
9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC
|
1621 |
-
mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW
|
1622 |
-
QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY
|
1623 |
-
T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny
|
1624 |
-
Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
|
1625 |
-
-----END CERTIFICATE-----
|
1626 |
-
|
1627 |
-
Security Communication RootCA2
|
1628 |
-
==============================
|
1629 |
-
-----BEGIN CERTIFICATE-----
|
1630 |
-
MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
|
1631 |
-
U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh
|
1632 |
-
dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC
|
1633 |
-
SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy
|
1634 |
-
aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
1635 |
-
ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++
|
1636 |
-
+T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R
|
1637 |
-
3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV
|
1638 |
-
spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K
|
1639 |
-
EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8
|
1640 |
-
QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB
|
1641 |
-
CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj
|
1642 |
-
u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk
|
1643 |
-
3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q
|
1644 |
-
tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29
|
1645 |
-
mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
|
1646 |
-
-----END CERTIFICATE-----
|
1647 |
-
|
1648 |
-
EC-ACC
|
1649 |
-
======
|
1650 |
-
-----BEGIN CERTIFICATE-----
|
1651 |
-
MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE
|
1652 |
-
BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w
|
1653 |
-
ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD
|
1654 |
-
VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE
|
1655 |
-
CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT
|
1656 |
-
BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7
|
1657 |
-
MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt
|
1658 |
-
SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl
|
1659 |
-
Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh
|
1660 |
-
cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND
|
1661 |
-
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK
|
1662 |
-
w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT
|
1663 |
-
ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4
|
1664 |
-
HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a
|
1665 |
-
E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw
|
1666 |
-
0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E
|
1667 |
-
BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD
|
1668 |
-
VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0
|
1669 |
-
Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l
|
1670 |
-
dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ
|
1671 |
-
lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa
|
1672 |
-
Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe
|
1673 |
-
l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2
|
1674 |
-
E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D
|
1675 |
-
5EI=
|
1676 |
-
-----END CERTIFICATE-----
|
1677 |
-
|
1678 |
-
Hellenic Academic and Research Institutions RootCA 2011
|
1679 |
-
=======================================================
|
1680 |
-
-----BEGIN CERTIFICATE-----
|
1681 |
-
MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT
|
1682 |
-
O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y
|
1683 |
-
aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
|
1684 |
-
IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT
|
1685 |
-
AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
|
1686 |
-
IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo
|
1687 |
-
IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
1688 |
-
AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI
|
1689 |
-
1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa
|
1690 |
-
71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u
|
1691 |
-
8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH
|
1692 |
-
3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/
|
1693 |
-
MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8
|
1694 |
-
MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu
|
1695 |
-
b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt
|
1696 |
-
XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
|
1697 |
-
TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD
|
1698 |
-
/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N
|
1699 |
-
7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4
|
1700 |
-
-----END CERTIFICATE-----
|
1701 |
-
|
1702 |
-
Actalis Authentication Root CA
|
1703 |
-
==============================
|
1704 |
-
-----BEGIN CERTIFICATE-----
|
1705 |
-
MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM
|
1706 |
-
BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE
|
1707 |
-
AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky
|
1708 |
-
MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz
|
1709 |
-
IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
|
1710 |
-
IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ
|
1711 |
-
wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa
|
1712 |
-
by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6
|
1713 |
-
zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f
|
1714 |
-
YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2
|
1715 |
-
oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l
|
1716 |
-
EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7
|
1717 |
-
hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8
|
1718 |
-
EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5
|
1719 |
-
jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY
|
1720 |
-
iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
|
1721 |
-
ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI
|
1722 |
-
WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0
|
1723 |
-
JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx
|
1724 |
-
K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+
|
1725 |
-
Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC
|
1726 |
-
4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo
|
1727 |
-
2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz
|
1728 |
-
lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem
|
1729 |
-
OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9
|
1730 |
-
vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
|
1731 |
-
-----END CERTIFICATE-----
|
1732 |
-
|
1733 |
-
Trustis FPS Root CA
|
1734 |
-
===================
|
1735 |
-
-----BEGIN CERTIFICATE-----
|
1736 |
-
MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG
|
1737 |
-
EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290
|
1738 |
-
IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV
|
1739 |
-
BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ
|
1740 |
-
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ
|
1741 |
-
RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk
|
1742 |
-
H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa
|
1743 |
-
cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt
|
1744 |
-
o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA
|
1745 |
-
AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd
|
1746 |
-
BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c
|
1747 |
-
GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC
|
1748 |
-
yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P
|
1749 |
-
8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV
|
1750 |
-
l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl
|
1751 |
-
iB6XzCGcKQENZetX2fNXlrtIzYE=
|
1752 |
-
-----END CERTIFICATE-----
|
1753 |
-
|
1754 |
-
Buypass Class 2 Root CA
|
1755 |
-
=======================
|
1756 |
-
-----BEGIN CERTIFICATE-----
|
1757 |
-
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
-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
-
DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1
|
1760 |
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD
|
1771 |
-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
-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
-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
-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
-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
-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
-
LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0
|
1778 |
-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
-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
-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
|
1781 |
-
rJgWVqA=
|
1782 |
-
-----END CERTIFICATE-----
|
1783 |
-
|
1784 |
-
Buypass Class 3 Root CA
|
1785 |
-
=======================
|
1786 |
-
-----BEGIN CERTIFICATE-----
|
1787 |
-
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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G
|
1804 |
-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
-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
-
ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2
|
1807 |
-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
-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
-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
-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
|
1811 |
-
Cp/HuZc=
|
1812 |
-
-----END CERTIFICATE-----
|
1813 |
-
|
1814 |
-
T-TeleSec GlobalRoot Class 3
|
1815 |
-
============================
|
1816 |
-
-----BEGIN CERTIFICATE-----
|
1817 |
-
MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
|
1818 |
-
IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
|
1819 |
-
cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx
|
1820 |
-
MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
|
1821 |
-
dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
|
1822 |
-
ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3
|
1823 |
-
DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK
|
1824 |
-
9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU
|
1825 |
-
NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF
|
1826 |
-
iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W
|
1827 |
-
0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA
|
1828 |
-
MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr
|
1829 |
-
AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb
|
1830 |
-
fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT
|
1831 |
-
ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h
|
1832 |
-
P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
|
1833 |
-
e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw==
|
1834 |
-
-----END CERTIFICATE-----
|
1835 |
-
|
1836 |
-
EE Certification Centre Root CA
|
1837 |
-
===============================
|
1838 |
-
-----BEGIN CERTIFICATE-----
|
1839 |
-
MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
|
1840 |
-
EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy
|
1841 |
-
dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw
|
1842 |
-
MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB
|
1843 |
-
UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy
|
1844 |
-
ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB
|
1845 |
-
DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM
|
1846 |
-
TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2
|
1847 |
-
rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw
|
1848 |
-
93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN
|
1849 |
-
P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T
|
1850 |
-
AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ
|
1851 |
-
MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF
|
1852 |
-
BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj
|
1853 |
-
xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM
|
1854 |
-
lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
|
1855 |
-
uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU
|
1856 |
-
3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM
|
1857 |
-
dcGWxZ0=
|
1858 |
-
-----END CERTIFICATE-----
|
1859 |
-
|
1860 |
-
D-TRUST Root Class 3 CA 2 2009
|
1861 |
-
==============================
|
1862 |
-
-----BEGIN CERTIFICATE-----
|
1863 |
-
MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK
|
1864 |
-
DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe
|
1865 |
-
Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE
|
1866 |
-
LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw
|
1867 |
-
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD
|
1868 |
-
ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA
|
1869 |
-
BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv
|
1870 |
-
KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z
|
1871 |
-
p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC
|
1872 |
-
AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ
|
1873 |
-
4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y
|
1874 |
-
eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw
|
1875 |
-
MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G
|
1876 |
-
PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw
|
1877 |
-
OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm
|
1878 |
-
2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0
|
1879 |
-
o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV
|
1880 |
-
dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph
|
1881 |
-
X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I=
|
1882 |
-
-----END CERTIFICATE-----
|
1883 |
-
|
1884 |
-
D-TRUST Root Class 3 CA 2 EV 2009
|
1885 |
-
=================================
|
1886 |
-
-----BEGIN CERTIFICATE-----
|
1887 |
-
MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
|
1888 |
-
DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
|
1889 |
-
OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
|
1890 |
-
DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
|
1891 |
-
OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS
|
1892 |
-
egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh
|
1893 |
-
zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T
|
1894 |
-
7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60
|
1895 |
-
sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35
|
1896 |
-
11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv
|
1897 |
-
cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v
|
1898 |
-
ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El
|
1899 |
-
MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp
|
1900 |
-
b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh
|
1901 |
-
c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+
|
1902 |
-
PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05
|
1903 |
-
nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX
|
1904 |
-
ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA
|
1905 |
-
NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv
|
1906 |
-
w9y4AyHqnxbxLFS1
|
1907 |
-
-----END CERTIFICATE-----
|
1908 |
-
|
1909 |
-
CA Disig Root R2
|
1910 |
-
================
|
1911 |
-
-----BEGIN CERTIFICATE-----
|
1912 |
-
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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
|
1936 |
-
7+ZtsH8tZ/3zbBt1RqPlShfppNcL
|
1937 |
-
-----END CERTIFICATE-----
|
1938 |
-
|
1939 |
-
ACCVRAIZ1
|
1940 |
-
=========
|
1941 |
-
-----BEGIN CERTIFICATE-----
|
1942 |
-
MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB
|
1943 |
-
SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1
|
1944 |
-
MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH
|
1945 |
-
UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
|
1946 |
-
DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM
|
1947 |
-
jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0
|
1948 |
-
RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD
|
1949 |
-
aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ
|
1950 |
-
0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG
|
1951 |
-
WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7
|
1952 |
-
8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR
|
1953 |
-
5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J
|
1954 |
-
9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK
|
1955 |
-
Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw
|
1956 |
-
Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu
|
1957 |
-
Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2
|
1958 |
-
VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM
|
1959 |
-
Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA
|
1960 |
-
QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh
|
1961 |
-
AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA
|
1962 |
-
YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj
|
1963 |
-
AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA
|
1964 |
-
IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk
|
1965 |
-
aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0
|
1966 |
-
dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2
|
1967 |
-
MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI
|
1968 |
-
hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E
|
1969 |
-
R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN
|
1970 |
-
YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49
|
1971 |
-
nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ
|
1972 |
-
TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3
|
1973 |
-
sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h
|
1974 |
-
I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg
|
1975 |
-
Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd
|
1976 |
-
3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p
|
1977 |
-
EfbRD0tVNEYqi4Y7
|
1978 |
-
-----END CERTIFICATE-----
|
1979 |
-
|
1980 |
-
TWCA Global Root CA
|
1981 |
-
===================
|
1982 |
-
-----BEGIN CERTIFICATE-----
|
1983 |
-
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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg
|
2001 |
-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
-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
-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
-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
-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
-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
|
2007 |
-
-----END CERTIFICATE-----
|
2008 |
-
|
2009 |
-
TeliaSonera Root CA v1
|
2010 |
-
======================
|
2011 |
-
-----BEGIN CERTIFICATE-----
|
2012 |
-
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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW
|
2029 |
-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
-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
-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
-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
-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
-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
|
2035 |
-
WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
|
2036 |
-
-----END CERTIFICATE-----
|
2037 |
-
|
2038 |
-
E-Tugra Certification Authority
|
2039 |
-
===============================
|
2040 |
-
-----BEGIN CERTIFICATE-----
|
2041 |
-
MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w
|
2042 |
-
DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls
|
2043 |
-
ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
|
2044 |
-
ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw
|
2045 |
-
NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx
|
2046 |
-
QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl
|
2047 |
-
cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD
|
2048 |
-
DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
|
2049 |
-
MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd
|
2050 |
-
hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K
|
2051 |
-
CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g
|
2052 |
-
ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ
|
2053 |
-
BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0
|
2054 |
-
E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz
|
2055 |
-
rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq
|
2056 |
-
jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
|
2057 |
-
rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5
|
2058 |
-
dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB
|
2059 |
-
/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG
|
2060 |
-
MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK
|
2061 |
-
kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO
|
2062 |
-
XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807
|
2063 |
-
VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo
|
2064 |
-
a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc
|
2065 |
-
dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV
|
2066 |
-
KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT
|
2067 |
-
Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0
|
2068 |
-
8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G
|
2069 |
-
C7TbO6Orb1wdtn7os4I07QZcJA==
|
2070 |
-
-----END CERTIFICATE-----
|
2071 |
-
|
2072 |
-
T-TeleSec GlobalRoot Class 2
|
2073 |
-
============================
|
2074 |
-
-----BEGIN CERTIFICATE-----
|
2075 |
-
MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
|
2076 |
-
IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
|
2077 |
-
cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx
|
2078 |
-
MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
|
2079 |
-
dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
|
2080 |
-
ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3
|
2081 |
-
DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ
|
2082 |
-
SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F
|
2083 |
-
vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970
|
2084 |
-
2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV
|
2085 |
-
WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA
|
2086 |
-
MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy
|
2087 |
-
YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4
|
2088 |
-
r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf
|
2089 |
-
vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR
|
2090 |
-
3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN
|
2091 |
-
9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg==
|
2092 |
-
-----END CERTIFICATE-----
|
2093 |
-
|
2094 |
-
Atos TrustedRoot 2011
|
2095 |
-
=====================
|
2096 |
-
-----BEGIN CERTIFICATE-----
|
2097 |
-
MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU
|
2098 |
-
cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4
|
2099 |
-
MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG
|
2100 |
-
A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV
|
2101 |
-
hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr
|
2102 |
-
54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+
|
2103 |
-
DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320
|
2104 |
-
HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR
|
2105 |
-
z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R
|
2106 |
-
l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ
|
2107 |
-
bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
|
2108 |
-
CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h
|
2109 |
-
k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh
|
2110 |
-
TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9
|
2111 |
-
61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G
|
2112 |
-
3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed
|
2113 |
-
-----END CERTIFICATE-----
|
2114 |
-
|
2115 |
-
QuoVadis Root CA 1 G3
|
2116 |
-
=====================
|
2117 |
-
-----BEGIN CERTIFICATE-----
|
2118 |
-
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
-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
-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
-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
-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
-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
-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
-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
-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
-
g6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV
|
2128 |
-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
-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
-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
-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
-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
-
hvcNAQELBQADggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC
|
2134 |
-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
-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
-
Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP
|
2137 |
-
+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
-
3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fa
|
2139 |
-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
-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
-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
|
2142 |
-
hMJKzRwuJIczYOXD
|
2143 |
-
-----END CERTIFICATE-----
|
2144 |
-
|
2145 |
-
QuoVadis Root CA 2 G3
|
2146 |
-
=====================
|
2147 |
-
-----BEGIN CERTIFICATE-----
|
2148 |
-
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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
|
2172 |
-
O3jtZsSOeWmD3n+M
|
2173 |
-
-----END CERTIFICATE-----
|
2174 |
-
|
2175 |
-
QuoVadis Root CA 3 G3
|
2176 |
-
=====================
|
2177 |
-
-----BEGIN CERTIFICATE-----
|
2178 |
-
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
-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
-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
-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
-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
-
IxSR/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNuFoM7pmRL
|
2184 |
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
Ih6BJpsQBJFxwAYf3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmD
|
2199 |
-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
-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
-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
|
2202 |
-
PpxxVJkES/1Y+Zj0
|
2203 |
-
-----END CERTIFICATE-----
|
2204 |
-
|
2205 |
-
DigiCert Assured ID Root G2
|
2206 |
-
===========================
|
2207 |
-
-----BEGIN CERTIFICATE-----
|
2208 |
-
MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG
|
2209 |
-
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
|
2210 |
-
IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw
|
2211 |
-
MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
|
2212 |
-
ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw
|
2213 |
-
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH
|
2214 |
-
35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq
|
2215 |
-
bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw
|
2216 |
-
VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP
|
2217 |
-
YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn
|
2218 |
-
lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO
|
2219 |
-
w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv
|
2220 |
-
0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz
|
2221 |
-
d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW
|
2222 |
-
hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M
|
2223 |
-
jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo
|
2224 |
-
IhNzbM8m9Yop5w==
|
2225 |
-
-----END CERTIFICATE-----
|
2226 |
-
|
2227 |
-
DigiCert Assured ID Root G3
|
2228 |
-
===========================
|
2229 |
-
-----BEGIN CERTIFICATE-----
|
2230 |
-
MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV
|
2231 |
-
UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD
|
2232 |
-
VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1
|
2233 |
-
MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
2234 |
-
d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ
|
2235 |
-
BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb
|
2236 |
-
RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs
|
2237 |
-
KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF
|
2238 |
-
UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy
|
2239 |
-
YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy
|
2240 |
-
1vUhZscv6pZjamVFkpUBtA==
|
2241 |
-
-----END CERTIFICATE-----
|
2242 |
-
|
2243 |
-
DigiCert Global Root G2
|
2244 |
-
=======================
|
2245 |
-
-----BEGIN CERTIFICATE-----
|
2246 |
-
MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG
|
2247 |
-
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
|
2248 |
-
HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx
|
2249 |
-
MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
|
2250 |
-
dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq
|
2251 |
-
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ
|
2252 |
-
kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO
|
2253 |
-
3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV
|
2254 |
-
BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM
|
2255 |
-
UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB
|
2256 |
-
o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu
|
2257 |
-
5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr
|
2258 |
-
F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U
|
2259 |
-
WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH
|
2260 |
-
QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/
|
2261 |
-
iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
|
2262 |
-
MrY=
|
2263 |
-
-----END CERTIFICATE-----
|
2264 |
-
|
2265 |
-
DigiCert Global Root G3
|
2266 |
-
=======================
|
2267 |
-
-----BEGIN CERTIFICATE-----
|
2268 |
-
MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV
|
2269 |
-
UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD
|
2270 |
-
VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw
|
2271 |
-
MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k
|
2272 |
-
aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C
|
2273 |
-
AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O
|
2274 |
-
YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP
|
2275 |
-
BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp
|
2276 |
-
Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y
|
2277 |
-
3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34
|
2278 |
-
VOKa5Vt8sycX
|
2279 |
-
-----END CERTIFICATE-----
|
2280 |
-
|
2281 |
-
DigiCert Trusted Root G4
|
2282 |
-
========================
|
2283 |
-
-----BEGIN CERTIFICATE-----
|
2284 |
-
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
-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
-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
-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
-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
-
CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp
|
2290 |
-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
-
k3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7Fsa
|
2292 |
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
ixTXTBmyUEFxPT9NcCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN
|
2305 |
-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
-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
-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
-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
|
2309 |
-
82Z+
|
2310 |
-
-----END CERTIFICATE-----
|
2311 |
-
|
2312 |
-
COMODO RSA Certification Authority
|
2313 |
-
==================================
|
2314 |
-
-----BEGIN CERTIFICATE-----
|
2315 |
-
MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCBhTELMAkGA1UE
|
2316 |
-
BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
|
2317 |
-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
-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
-
R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
|
2320 |
-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
-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
-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
-
FGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+
|
2324 |
-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
-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
-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
-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
-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
-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
-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
-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
-
DQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvlwFTPoCWOAvn9sKIN9SCYPBMt
|
2333 |
-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
-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
-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
-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
-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
-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
-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
-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
|
2341 |
-
LaZRfyHBNVOFBkpdn627G190
|
2342 |
-
-----END CERTIFICATE-----
|
2343 |
-
|
2344 |
-
USERTrust RSA Certification Authority
|
2345 |
-
=====================================
|
2346 |
-
-----BEGIN CERTIFICATE-----
|
2347 |
-
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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
+T23LLb2VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT79uq
|
2358 |
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
|
2373 |
-
Q+6IHdfGjjxDah2nGN59PRbxYvnKkKj9
|
2374 |
-
-----END CERTIFICATE-----
|
2375 |
-
|
2376 |
-
USERTrust ECC Certification Authority
|
2377 |
-
=====================================
|
2378 |
-
-----BEGIN CERTIFICATE-----
|
2379 |
-
MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDELMAkGA1UEBhMC
|
2380 |
-
VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
|
2381 |
-
aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv
|
2382 |
-
biBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMC
|
2383 |
-
VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
|
2384 |
-
aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv
|
2385 |
-
biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqfloI+d61SRvU8Za2EurxtW2
|
2386 |
-
0eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinngo4N+LZfQYcTxmdwlkWOrfzCjtHDix6Ez
|
2387 |
-
nPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0GA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNV
|
2388 |
-
HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBB
|
2389 |
-
HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu
|
2390 |
-
9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg=
|
2391 |
-
-----END CERTIFICATE-----
|
2392 |
-
|
2393 |
-
GlobalSign ECC Root CA - R4
|
2394 |
-
===========================
|
2395 |
-
-----BEGIN CERTIFICATE-----
|
2396 |
-
MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEkMCIGA1UECxMb
|
2397 |
-
R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
|
2398 |
-
EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb
|
2399 |
-
R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
|
2400 |
-
EwpHbG9iYWxTaWduMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprl
|
2401 |
-
OQcJFspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAwDgYDVR0P
|
2402 |
-
AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61FuOJAf/sKbvu+M8k8o4TV
|
2403 |
-
MAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGXkPoUVy0D7O48027KqGx2vKLeuwIgJ6iF
|
2404 |
-
JzWbVsaj8kfSt24bAgAXqmemFZHe+pTsewv4n4Q=
|
2405 |
-
-----END CERTIFICATE-----
|
2406 |
-
|
2407 |
-
GlobalSign ECC Root CA - R5
|
2408 |
-
===========================
|
2409 |
-
-----BEGIN CERTIFICATE-----
|
2410 |
-
MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb
|
2411 |
-
R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
|
2412 |
-
EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb
|
2413 |
-
R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
|
2414 |
-
EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6
|
2415 |
-
SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS
|
2416 |
-
h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd
|
2417 |
-
BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx
|
2418 |
-
uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7
|
2419 |
-
yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3
|
2420 |
-
-----END CERTIFICATE-----
|
2421 |
-
|
2422 |
-
Staat der Nederlanden Root CA - G3
|
2423 |
-
==================================
|
2424 |
-
-----BEGIN CERTIFICATE-----
|
2425 |
-
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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHPbMk7ccHViLVlvMDo
|
2437 |
-
FxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXtBznaqB16nzaeErAMZRKQFWDZJkBE
|
2438 |
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
|
2450 |
-
-----END CERTIFICATE-----
|
2451 |
-
|
2452 |
-
Staat der Nederlanden EV Root CA
|
2453 |
-
================================
|
2454 |
-
-----BEGIN CERTIFICATE-----
|
2455 |
-
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
-
CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
|
2457 |
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI
|
2471 |
-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
-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
-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
-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
-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
-
5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4
|
2477 |
-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
-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
|
2479 |
-
eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg==
|
2480 |
-
-----END CERTIFICATE-----
|
2481 |
-
|
2482 |
-
IdenTrust Commercial Root CA 1
|
2483 |
-
==============================
|
2484 |
-
-----BEGIN CERTIFICATE-----
|
2485 |
-
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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
Z2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7R
|
2509 |
-
cGzM7vRX+Bi6hG6H
|
2510 |
-
-----END CERTIFICATE-----
|
2511 |
-
|
2512 |
-
IdenTrust Public Sector Root CA 1
|
2513 |
-
=================================
|
2514 |
-
-----BEGIN CERTIFICATE-----
|
2515 |
-
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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
iDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsVWaFHVCkugyhfHMKiq3IXAAaOReyL
|
2528 |
-
4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gDW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8B
|
2529 |
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
|
2539 |
-
3Wl9af0AVqW3rLatt8o+Ae+c
|
2540 |
-
-----END CERTIFICATE-----
|
2541 |
-
|
2542 |
-
Entrust Root Certification Authority - G2
|
2543 |
-
=========================================
|
2544 |
-
-----BEGIN CERTIFICATE-----
|
2545 |
-
MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV
|
2546 |
-
BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy
|
2547 |
-
bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug
|
2548 |
-
b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw
|
2549 |
-
HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT
|
2550 |
-
DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx
|
2551 |
-
OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s
|
2552 |
-
eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi
|
2553 |
-
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP
|
2554 |
-
/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz
|
2555 |
-
HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU
|
2556 |
-
s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y
|
2557 |
-
TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx
|
2558 |
-
AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6
|
2559 |
-
0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z
|
2560 |
-
iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ
|
2561 |
-
Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi
|
2562 |
-
nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+
|
2563 |
-
vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO
|
2564 |
-
e4pIb4tF9g==
|
2565 |
-
-----END CERTIFICATE-----
|
2566 |
-
|
2567 |
-
Entrust Root Certification Authority - EC1
|
2568 |
-
==========================================
|
2569 |
-
-----BEGIN CERTIFICATE-----
|
2570 |
-
MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx
|
2571 |
-
FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn
|
2572 |
-
YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl
|
2573 |
-
ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
|
2574 |
-
IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw
|
2575 |
-
FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs
|
2576 |
-
LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg
|
2577 |
-
dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt
|
2578 |
-
IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy
|
2579 |
-
AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef
|
2580 |
-
9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
|
2581 |
-
FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h
|
2582 |
-
vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8
|
2583 |
-
kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G
|
2584 |
-
-----END CERTIFICATE-----
|
2585 |
-
|
2586 |
-
CFCA EV ROOT
|
2587 |
-
============
|
2588 |
-
-----BEGIN CERTIFICATE-----
|
2589 |
-
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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
E5uPhnEFtC+NiWYzKXZUmhH4J/qyP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfX
|
2609 |
-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
-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
-
PDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoX
|
2612 |
-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
-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
|
2614 |
-
-----END CERTIFICATE-----
|
2615 |
-
|
2616 |
-
Certinomis - Root CA
|
2617 |
-
====================
|
2618 |
-
-----BEGIN CERTIFICATE-----
|
2619 |
-
MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
|
2620 |
-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
-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
-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
-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
-
P5L2fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJflLieY6pOo
|
2625 |
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
|
2644 |
-
hkIGuUE=
|
2645 |
-
-----END CERTIFICATE-----
|
2646 |
-
|
2647 |
-
OISTE WISeKey Global Root GB CA
|
2648 |
-
===============================
|
2649 |
-
-----BEGIN CERTIFICATE-----
|
2650 |
-
MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQG
|
2651 |
-
EwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl
|
2652 |
-
ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAw
|
2653 |
-
MzJaFw0zOTEyMDExNTEwMzFaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYD
|
2654 |
-
VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEds
|
2655 |
-
b2JhbCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3HEokKtaX
|
2656 |
-
scriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGxWuR51jIjK+FTzJlFXHtP
|
2657 |
-
rby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk
|
2658 |
-
9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNku7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4o
|
2659 |
-
Qnc/nSMbsrY9gBQHTC5P99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvg
|
2660 |
-
GUpuuy9rM2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB
|
2661 |
-
/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZI
|
2662 |
-
hvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrghcViXfa43FK8+5/ea4n32cZiZBKpD
|
2663 |
-
dHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0
|
2664 |
-
VQreUGdNZtGn//3ZwLWoo4rOZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEui
|
2665 |
-
HZeeevJuQHHfaPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic
|
2666 |
-
Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM=
|
2667 |
-
-----END CERTIFICATE-----
|
2668 |
-
|
2669 |
-
SZAFIR ROOT CA2
|
2670 |
-
===============
|
2671 |
-
-----BEGIN CERTIFICATE-----
|
2672 |
-
MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQELBQAwUTELMAkG
|
2673 |
-
A1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6ZW5pb3dhIFMuQS4xGDAWBgNV
|
2674 |
-
BAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkwNzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJ
|
2675 |
-
BgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYD
|
2676 |
-
VQQDDA9TWkFGSVIgUk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5Q
|
2677 |
-
qEvNQLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT3PSQ1hNK
|
2678 |
-
DJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw3gAeqDRHu5rr/gsUvTaE
|
2679 |
-
2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr63fE9biCloBK0TXC5ztdyO4mTp4CEHCdJ
|
2680 |
-
ckm1/zuVnsHMyAHs6A6KCpbns6aH5db5BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwi
|
2681 |
-
ieDhZNRnvDF5YTy7ykHNXGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P
|
2682 |
-
AQH/BAQDAgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsFAAOC
|
2683 |
-
AQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw8PRBEew/R40/cof5
|
2684 |
-
O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOGnXkZ7/e7DDWQw4rtTw/1zBLZpD67
|
2685 |
-
oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCPoky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul
|
2686 |
-
4+vJhaAlIDf7js4MNIThPIGyd05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6
|
2687 |
-
+/NNIxuZMzSgLvWpCz/UXeHPhJ/iGcJfitYgHuNztw==
|
2688 |
-
-----END CERTIFICATE-----
|
2689 |
-
|
2690 |
-
Certum Trusted Network CA 2
|
2691 |
-
===========================
|
2692 |
-
-----BEGIN CERTIFICATE-----
|
2693 |
-
MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UE
|
2694 |
-
BhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1
|
2695 |
-
bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29y
|
2696 |
-
ayBDQSAyMCIYDzIwMTExMDA2MDgzOTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQ
|
2697 |
-
TDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENl
|
2698 |
-
cnRpZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENB
|
2699 |
-
IDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWADGSdhhuWZGc/IjoedQF9
|
2700 |
-
7/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+o
|
2701 |
-
CgCXhVqqndwpyeI1B+twTUrWwbNWuKFBOJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40b
|
2702 |
-
Rr5HMNUuctHFY9rnY3lEfktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2p
|
2703 |
-
uTRZCr+ESv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1mo130
|
2704 |
-
GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02isx7QBlrd9pPPV3WZ
|
2705 |
-
9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOWOZV7bIBaTxNyxtd9KXpEulKkKtVB
|
2706 |
-
Rgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgezTv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pye
|
2707 |
-
hizKV/Ma5ciSixqClnrDvFASadgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vM
|
2708 |
-
BhBgu4M1t15n3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
|
2709 |
-
AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI
|
2710 |
-
hvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQF/xlhMcQSZDe28cmk4gmb3DW
|
2711 |
-
Al45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTfCVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuA
|
2712 |
-
L55MYIR4PSFk1vtBHxgP58l1cb29XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMo
|
2713 |
-
clm2q8KMZiYcdywmdjWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tM
|
2714 |
-
pkT/WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jbAoJnwTnb
|
2715 |
-
w3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksqP/ujmv5zMnHCnsZy4Ypo
|
2716 |
-
J/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Kob7a6bINDd82Kkhehnlt4Fj1F4jNy3eFm
|
2717 |
-
ypnTycUm/Q1oBEauttmbjL4ZvrHG8hnjXALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLX
|
2718 |
-
is7VmFxWlgPF7ncGNf/P5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7
|
2719 |
-
zAYspsbiDrW5viSP
|
2720 |
-
-----END CERTIFICATE-----
|
2721 |
-
|
2722 |
-
Hellenic Academic and Research Institutions RootCA 2015
|
2723 |
-
=======================================================
|
2724 |
-
-----BEGIN CERTIFICATE-----
|
2725 |
-
MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcT
|
2726 |
-
BkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0
|
2727 |
-
aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl
|
2728 |
-
YXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAx
|
2729 |
-
MTIxWjCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMg
|
2730 |
-
QWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNV
|
2731 |
-
BAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIw
|
2732 |
-
MTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDC+Kk/G4n8PDwEXT2QNrCROnk8Zlrv
|
2733 |
-
bTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+eh
|
2734 |
-
iGsxr/CL0BgzuNtFajT0AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+
|
2735 |
-
6PAQZe104S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06CojXd
|
2736 |
-
FPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV9Cz82XBST3i4vTwr
|
2737 |
-
i5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrDgfgXy5I2XdGj2HUb4Ysn6npIQf1F
|
2738 |
-
GQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2
|
2739 |
-
fu/Z8VFRfS0myGlZYeCsargqNhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9mu
|
2740 |
-
iNX6hME6wGkoLfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc
|
2741 |
-
Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
|
2742 |
-
AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVdctA4GGqd83EkVAswDQYJKoZI
|
2743 |
-
hvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0IXtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+
|
2744 |
-
D1hYc2Ryx+hFjtyp8iY/xnmMsVMIM4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrM
|
2745 |
-
d/K4kPFox/la/vot9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+y
|
2746 |
-
d+2VZ5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/eaj8GsGsVn
|
2747 |
-
82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnhX9izjFk0WaSrT2y7Hxjb
|
2748 |
-
davYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQl033DlZdwJVqwjbDG2jJ9SrcR5q+ss7F
|
2749 |
-
Jej6A7na+RZukYT1HCjI/CbM1xyQVqdfbzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVt
|
2750 |
-
J94Cj8rDtSvK6evIIVM4pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGa
|
2751 |
-
JI7ZjnHKe7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0vm9q
|
2752 |
-
p/UsQu0yrbYhnr68
|
2753 |
-
-----END CERTIFICATE-----
|
2754 |
-
|
2755 |
-
Hellenic Academic and Research Institutions ECC RootCA 2015
|
2756 |
-
===========================================================
|
2757 |
-
-----BEGIN CERTIFICATE-----
|
2758 |
-
MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0
|
2759 |
-
aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u
|
2760 |
-
cyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj
|
2761 |
-
aCBJbnN0aXR1dGlvbnMgRUNDIFJvb3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEw
|
2762 |
-
MzcxMlowgaoxCzAJBgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmlj
|
2763 |
-
IEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUQwQgYD
|
2764 |
-
VQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIEVDQyBSb290
|
2765 |
-
Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKgQehLgoRc4vgxEZmGZE4JJS+dQS8KrjVP
|
2766 |
-
dJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJajq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoK
|
2767 |
-
Vlp8aQuqgAkkbH7BRqNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
|
2768 |
-
BBYEFLQiC4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaeplSTA
|
2769 |
-
GiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7SofTUwJCA3sS61kFyjn
|
2770 |
-
dc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR
|
2771 |
-
-----END CERTIFICATE-----
|
2772 |
-
|
2773 |
-
ISRG Root X1
|
2774 |
-
============
|
2775 |
-
-----BEGIN CERTIFICATE-----
|
2776 |
-
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
-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
-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
-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
-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
-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
-
3Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6UA5/TR5d8mUgjU+g4rk8K
|
2783 |
-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
-
Aymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyHB5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ
|
2785 |
-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
-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
-
hjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTnjh8BCNAw1FtxNrQH
|
2788 |
-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
-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
-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
-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
-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
-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
-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
-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
-
e5AW0wdeRlN8NwdCjNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZA
|
2797 |
-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
-
YVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPAmRGunUHBcnWEvgJBQl9n
|
2799 |
-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
|
2800 |
-
m+kXQ99b21/+jh5Xos1AnX5iItreGCc=
|
2801 |
-
-----END CERTIFICATE-----
|
2802 |
-
|
2803 |
-
AC RAIZ FNMT-RCM
|
2804 |
-
================
|
2805 |
-
-----BEGIN CERTIFICATE-----
|
2806 |
-
MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsxCzAJBgNVBAYT
|
2807 |
-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
-
MjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJD
|
2809 |
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
+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
-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
-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
-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
-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
|
2831 |
-
-----END CERTIFICATE-----
|
2832 |
-
|
2833 |
-
Amazon Root CA 1
|
2834 |
-
================
|
2835 |
-
-----BEGIN CERTIFICATE-----
|
2836 |
-
MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsFADA5MQswCQYD
|
2837 |
-
VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAxMB4XDTE1
|
2838 |
-
MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv
|
2839 |
-
bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
2840 |
-
ggEBALJ4gHHKeNXjca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgH
|
2841 |
-
FzZM9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qwIFAGbHrQ
|
2842 |
-
gLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6VOujw5H5SNz/0egwLX0t
|
2843 |
-
dHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L93FcXmn/6pUCyziKrlA4b9v7LWIbxcce
|
2844 |
-
VOF34GfID5yHI9Y/QCB/IIDEgEw+OyQmjgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB
|
2845 |
-
/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3
|
2846 |
-
DQEBCwUAA4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDIU5PM
|
2847 |
-
CCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUsN+gDS63pYaACbvXy
|
2848 |
-
8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vvo/ufQJVtMVT8QtPHRh8jrdkPSHCa
|
2849 |
-
2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2
|
2850 |
-
xJNDd2ZhwLnoQdeXeGADbkpyrqXRfboQnoZsG4q5WTP468SQvvG5
|
2851 |
-
-----END CERTIFICATE-----
|
2852 |
-
|
2853 |
-
Amazon Root CA 2
|
2854 |
-
================
|
2855 |
-
-----BEGIN CERTIFICATE-----
|
2856 |
-
MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwFADA5MQswCQYD
|
2857 |
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
+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
-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
-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
-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
-
aQbLU8uz/mtBzUF+fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoV
|
2877 |
-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
-
KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H9jVlpNMKVv/1F2Rs76gi
|
2879 |
-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
|
2880 |
-
-----END CERTIFICATE-----
|
2881 |
-
|
2882 |
-
Amazon Root CA 3
|
2883 |
-
================
|
2884 |
-
-----BEGIN CERTIFICATE-----
|
2885 |
-
MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5MQswCQYDVQQG
|
2886 |
-
EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4XDTE1MDUy
|
2887 |
-
NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ
|
2888 |
-
MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZB
|
2889 |
-
f8ANm+gBG1bG8lKlui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjr
|
2890 |
-
Zt6jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSrttvXBp43
|
2891 |
-
rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkrBqWTrBqYaGFy+uGh0Psc
|
2892 |
-
eGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteMYyRIHN8wfdVoOw==
|
2893 |
-
-----END CERTIFICATE-----
|
2894 |
-
|
2895 |
-
Amazon Root CA 4
|
2896 |
-
================
|
2897 |
-
-----BEGIN CERTIFICATE-----
|
2898 |
-
MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5MQswCQYDVQQG
|
2899 |
-
EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSA0MB4XDTE1MDUy
|
2900 |
-
NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ
|
2901 |
-
MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN
|
2902 |
-
/sGKe0uoe0ZLY7Bi9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri
|
2903 |
-
83BkM6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
|
2904 |
-
HQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WBMAoGCCqGSM49BAMDA2gA
|
2905 |
-
MGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlwCkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1
|
2906 |
-
AE47xDqUEpHJWEadIRNyp4iciuRMStuW1KyLa2tJElMzrdfkviT8tQp21KW8EA==
|
2907 |
-
-----END CERTIFICATE-----
|
2908 |
-
|
2909 |
-
LuxTrust Global Root 2
|
2910 |
-
======================
|
2911 |
-
-----BEGIN CERTIFICATE-----
|
2912 |
-
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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
a4ebsypmQjVGbKq6rfmYe+lQVRQxv7HaLe2ArWgk+2mr2HETMOZns4dA/Yl+8kPREd8vZS9kzl8U
|
2924 |
-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
-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
-
/zBCBgNVHSAEOzA5MDcGByuBKwEBAQowLDAqBggrBgEFBQcCARYeaHR0cHM6Ly9yZXBvc2l0b3J5
|
2927 |
-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
-
+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
-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
-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
-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
-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
-
VWe+2M2D2RjuLg+GLZKecBPs3lHJQ3gCpU3I+V/EkVhGFndadKpAvAefMLmx9xIX3eP/JEAdemrR
|
2934 |
-
TxgKqpAd60Ae36EeRJIQmvKN4dFLRp7oRUKX6kWZ8+xm1QL68qZKJKrezrnK+T+Tb/mjuuqlPpmt
|
2935 |
-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
-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
-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
|
2938 |
-
-----END CERTIFICATE-----
|
2939 |
-
|
2940 |
-
TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1
|
2941 |
-
=============================================
|
2942 |
-
-----BEGIN CERTIFICATE-----
|
2943 |
-
MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIxGDAWBgNVBAcT
|
2944 |
-
D0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxpbXNlbCB2ZSBUZWtub2xvamlr
|
2945 |
-
IEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0wKwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24g
|
2946 |
-
TWVya2V6aSAtIEthbXUgU00xNjA0BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRp
|
2947 |
-
ZmlrYXNpIC0gU3VydW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYD
|
2948 |
-
VQQGEwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXllIEJpbGlt
|
2949 |
-
c2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklUQUsxLTArBgNVBAsTJEth
|
2950 |
-
bXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBTTTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11
|
2951 |
-
IFNNIFNTTCBLb2sgU2VydGlmaWthc2kgLSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
2952 |
-
MIIBCgKCAQEAr3UwM6q7a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y8
|
2953 |
-
6Ij5iySrLqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INrN3wc
|
2954 |
-
wv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2XYacQuFWQfw4tJzh0
|
2955 |
-
3+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/iSIzL+aFCr2lqBs23tPcLG07xxO9
|
2956 |
-
WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4fAJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQU
|
2957 |
-
ZT/HiobGPN08VFw1+DrtUgxHV8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJ
|
2958 |
-
KoZIhvcNAQELBQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh
|
2959 |
-
AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPfIPP54+M638yc
|
2960 |
-
lNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4lzwDGrpDxpa5RXI4s6ehlj2R
|
2961 |
-
e37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0j
|
2962 |
-
q5Rm+K37DwhuJi1/FwcJsoz7UMCflo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM=
|
2963 |
-
-----END CERTIFICATE-----
|
2964 |
-
|
2965 |
-
GDCA TrustAUTH R5 ROOT
|
2966 |
-
======================
|
2967 |
-
-----BEGIN CERTIFICATE-----
|
2968 |
-
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
-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
-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
-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
-
IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0B
|
2973 |
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZmDRd9FBUb1Ov9
|
2985 |
-
H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5COmSdI31R9KrO9b7eGZONn35
|
2986 |
-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
-
+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
-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
-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
-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
-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
-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
|
2993 |
-
-----END CERTIFICATE-----
|
2994 |
-
|
2995 |
-
TrustCor RootCert CA-1
|
2996 |
-
======================
|
2997 |
-
-----BEGIN CERTIFICATE-----
|
2998 |
-
MIIEMDCCAxigAwIBAgIJANqb7HHzA7AZMA0GCSqGSIb3DQEBCwUAMIGkMQswCQYDVQQGEwJQQTEP
|
2999 |
-
MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig
|
3000 |
-
U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp
|
3001 |
-
dHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0IENBLTEwHhcNMTYwMjA0MTIzMjE2WhcNMjkx
|
3002 |
-
MjMxMTcyMzE2WjCBpDELMAkGA1UEBhMCUEExDzANBgNVBAgMBlBhbmFtYTEUMBIGA1UEBwwLUGFu
|
3003 |
-
YW1hIENpdHkxJDAiBgNVBAoMG1RydXN0Q29yIFN5c3RlbXMgUy4gZGUgUi5MLjEnMCUGA1UECwwe
|
3004 |
-
VHJ1c3RDb3IgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR8wHQYDVQQDDBZUcnVzdENvciBSb290Q2Vy
|
3005 |
-
dCBDQS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv463leLCJhJrMxnHQFgKq1mq
|
3006 |
-
jQCj/IDHUHuO1CAmujIS2CNUSSUQIpidRtLByZ5OGy4sDjjzGiVoHKZaBeYei0i/mJZ0PmnK6bV4
|
3007 |
-
pQa81QBeCQryJ3pS/C3Vseq0iWEk8xoT26nPUu0MJLq5nux+AHT6k61sKZKuUbS701e/s/OojZz0
|
3008 |
-
JEsq1pme9J7+wH5COucLlVPat2gOkEz7cD+PSiyU8ybdY2mplNgQTsVHCJCZGxdNuWxu72CVEY4h
|
3009 |
-
gLW9oHPY0LJ3xEXqWib7ZnZ2+AYfYW0PVcWDtxBWcgYHpfOxGgMFZA6dWorWhnAbJN7+KIor0Gqw
|
3010 |
-
/Hqi3LJ5DotlDwIDAQABo2MwYTAdBgNVHQ4EFgQU7mtJPHo/DeOxCbeKyKsZn3MzUOcwHwYDVR0j
|
3011 |
-
BBgwFoAU7mtJPHo/DeOxCbeKyKsZn3MzUOcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
|
3012 |
-
AYYwDQYJKoZIhvcNAQELBQADggEBACUY1JGPE+6PHh0RU9otRCkZoB5rMZ5NDp6tPVxBb5UrJKF5
|
3013 |
-
mDo4Nvu7Zp5I/5CQ7z3UuJu0h3U/IJvOcs+hVcFNZKIZBqEHMwwLKeXx6quj7LUKdJDHfXLy11yf
|
3014 |
-
ke+Ri7fc7Waiz45mO7yfOgLgJ90WmMCV1Aqk5IGadZQ1nJBfiDcGrVmVCrDRZ9MZyonnMlo2HD6C
|
3015 |
-
qFqTvsbQZJG2z9m2GM/bftJlo6bEjhcxwft+dtvTheNYsnd6djtsL1Ac59v2Z3kf9YKVmgenFK+P
|
3016 |
-
3CghZwnS1k1aHBkcjndcw5QkPTJrS37UeJSDvjdNzl/HHk484IkzlQsPpTLWPFp5LBk=
|
3017 |
-
-----END CERTIFICATE-----
|
3018 |
-
|
3019 |
-
TrustCor RootCert CA-2
|
3020 |
-
======================
|
3021 |
-
-----BEGIN CERTIFICATE-----
|
3022 |
-
MIIGLzCCBBegAwIBAgIIJaHfyjPLWQIwDQYJKoZIhvcNAQELBQAwgaQxCzAJBgNVBAYTAlBBMQ8w
|
3023 |
-
DQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQwIgYDVQQKDBtUcnVzdENvciBT
|
3024 |
-
eXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0
|
3025 |
-
eTEfMB0GA1UEAwwWVHJ1c3RDb3IgUm9vdENlcnQgQ0EtMjAeFw0xNjAyMDQxMjMyMjNaFw0zNDEy
|
3026 |
-
MzExNzI2MzlaMIGkMQswCQYDVQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5h
|
3027 |
-
bWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U
|
3028 |
-
cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0
|
3029 |
-
IENBLTIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnIG7CKqJiJJWQdsg4foDSq8Gb
|
3030 |
-
ZQWU9MEKENUCrO2fk8eHyLAnK0IMPQo+QVqedd2NyuCb7GgypGmSaIwLgQ5WoD4a3SwlFIIvl9Nk
|
3031 |
-
RvRUqdw6VC0xK5mC8tkq1+9xALgxpL56JAfDQiDyitSSBBtlVkxs1Pu2YVpHI7TYabS3OtB0PAx1
|
3032 |
-
oYxOdqHp2yqlO/rOsP9+aij9JxzIsekp8VduZLTQwRVtDr4uDkbIXvRR/u8OYzo7cbrPb1nKDOOb
|
3033 |
-
XUm4TOJXsZiKQlecdu/vvdFoqNL0Cbt3Nb4lggjEFixEIFapRBF37120Hapeaz6LMvYHL1cEksr1
|
3034 |
-
/p3C6eizjkxLAjHZ5DxIgif3GIJ2SDpxsROhOdUuxTTCHWKF3wP+TfSvPd9cW436cOGlfifHhi5q
|
3035 |
-
jxLGhF5DUVCcGZt45vz27Ud+ez1m7xMTiF88oWP7+ayHNZ/zgp6kPwqcMWmLmaSISo5uZk3vFsQP
|
3036 |
-
eSghYA2FFn3XVDjxklb9tTNMg9zXEJ9L/cb4Qr26fHMC4P99zVvh1Kxhe1fVSntb1IVYJ12/+Ctg
|
3037 |
-
rKAmrhQhJ8Z3mjOAPF5GP/fDsaOGM8boXg25NSyqRsGFAnWAoOsk+xWq5Gd/bnc/9ASKL3x74xdh
|
3038 |
-
8N0JqSDIvgmk0H5Ew7IwSjiqqewYmgeCK9u4nBit2uBGF6zPXQIDAQABo2MwYTAdBgNVHQ4EFgQU
|
3039 |
-
2f4hQG6UnrybPZx9mCAZ5YwwYrIwHwYDVR0jBBgwFoAU2f4hQG6UnrybPZx9mCAZ5YwwYrIwDwYD
|
3040 |
-
VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBAJ5Fngw7tu/h
|
3041 |
-
Osh80QA9z+LqBrWyOrsGS2h60COXdKcs8AjYeVrXWoSK2BKaG9l9XE1wxaX5q+WjiYndAfrs3fnp
|
3042 |
-
kpfbsEZC89NiqpX+MWcUaViQCqoL7jcjx1BRtPV+nuN79+TMQjItSQzL/0kMmx40/W5ulop5A7Zv
|
3043 |
-
2wnL/V9lFDfhOPXzYRZY5LVtDQsEGz9QLX+zx3oaFoBg+Iof6Rsqxvm6ARppv9JYx1RXCI/hOWB3
|
3044 |
-
S6xZhBqI8d3LT3jX5+EzLfzuQfogsL7L9ziUwOHQhQ+77Sxzq+3+knYaZH9bDTMJBzN7Bj8RpFxw
|
3045 |
-
PIXAz+OQqIN3+tvmxYxoZxBnpVIt8MSZj3+/0WvitUfW2dCFmU2Umw9Lje4AWkcdEQOsQRivh7dv
|
3046 |
-
DDqPys/cA8GiCcjl/YBeyGBCARsaU1q7N6a3vLqE6R5sGtRk2tRD/pOLS/IseRYQ1JMLiI+h2IYU
|
3047 |
-
RpFHmygk71dSTlxCnKr3Sewn6EAes6aJInKc9Q0ztFijMDvd1GpUk74aTfOTlPf8hAs/hCBcNANE
|
3048 |
-
xdqtvArBAs8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp5KeX
|
3049 |
-
RKQOKIETNcX2b2TmQcTVL8w0RSXPQQCWPUouwpaYT05KnJe32x+SMsj/D1Fu1uwJ
|
3050 |
-
-----END CERTIFICATE-----
|
3051 |
-
|
3052 |
-
TrustCor ECA-1
|
3053 |
-
==============
|
3054 |
-
-----BEGIN CERTIFICATE-----
|
3055 |
-
MIIEIDCCAwigAwIBAgIJAISCLF8cYtBAMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYDVQQGEwJQQTEP
|
3056 |
-
MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig
|
3057 |
-
U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp
|
3058 |
-
dHkxFzAVBgNVBAMMDlRydXN0Q29yIEVDQS0xMB4XDTE2MDIwNDEyMzIzM1oXDTI5MTIzMTE3Mjgw
|
3059 |
-
N1owgZwxCzAJBgNVBAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5
|
3060 |
-
MSQwIgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29y
|
3061 |
-
IENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOVHJ1c3RDb3IgRUNBLTEwggEiMA0GCSqG
|
3062 |
-
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPj+ARtZ+odnbb3w9U73NjKYKtR8aja+3+XzP4Q1HpGjOR
|
3063 |
-
MRegdMTUpwHmspI+ap3tDvl0mEDTPwOABoJA6LHip1GnHYMma6ve+heRK9jGrB6xnhkB1Zem6g23
|
3064 |
-
xFUfJ3zSCNV2HykVh0A53ThFEXXQmqc04L/NyFIduUd+Dbi7xgz2c1cWWn5DkR9VOsZtRASqnKmc
|
3065 |
-
p0yJF4OuowReUoCLHhIlERnXDH19MURB6tuvsBzvgdAsxZohmz3tQjtQJvLsznFhBmIhVE5/wZ0+
|
3066 |
-
fyCMgMsq2JdiyIMzkX2woloPV+g7zPIlstR8L+xNxqE6FXrntl019fZISjZFZtS6mFjBAgMBAAGj
|
3067 |
-
YzBhMB0GA1UdDgQWBBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAfBgNVHSMEGDAWgBREnkj1zG1I1KBL
|
3068 |
-
f/5ZJC+Dl5mahjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
|
3069 |
-
AAOCAQEABT41XBVwm8nHc2FvcivUwo/yQ10CzsSUuZQRg2dd4mdsdXa/uwyqNsatR5Nj3B5+1t4u
|
3070 |
-
/ukZMjgDfxT2AHMsWbEhBuH7rBiVDKP/mZb3Kyeb1STMHd3BOuCYRLDE5D53sXOpZCz2HAF8P11F
|
3071 |
-
hcCF5yWPldwX8zyfGm6wyuMdKulMY/okYWLW2n62HGz1Ah3UKt1VkOsqEUc8Ll50soIipX1TH0Xs
|
3072 |
-
J5F95yIW6MBoNtjG8U+ARDL54dHRHareqKucBK+tIA5kmE2la8BIWJZpTdwHjFGTot+fDz2LYLSC
|
3073 |
-
jaoITmJF4PkL0uDgPFveXHEnJcLmA4GLEFPjx1WitJ/X5g==
|
3074 |
-
-----END CERTIFICATE-----
|
3075 |
-
|
3076 |
-
SSL.com Root Certification Authority RSA
|
3077 |
-
========================================
|
3078 |
-
-----BEGIN CERTIFICATE-----
|
3079 |
-
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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
MxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90IH37hVZkLId6Tngr75qNJ
|
3102 |
-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
-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
-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
|
3105 |
-
WuuA8ShYIc2wBlX7Jz9TkHCpBB5XJ7k=
|
3106 |
-
-----END CERTIFICATE-----
|
3107 |
-
|
3108 |
-
SSL.com Root Certification Authority ECC
|
3109 |
-
========================================
|
3110 |
-
-----BEGIN CERTIFICATE-----
|
3111 |
-
MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMCVVMxDjAMBgNV
|
3112 |
-
BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xMTAv
|
3113 |
-
BgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEy
|
3114 |
-
MTgxNDAzWhcNNDEwMjEyMTgxNDAzWjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAO
|
3115 |
-
BgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv
|
3116 |
-
bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuBBAAiA2IA
|
3117 |
-
BEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI7Z4INcgn64mMU1jrYor+
|
3118 |
-
8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPgCemB+vNH06NjMGEwHQYDVR0OBBYEFILR
|
3119 |
-
hXMw5zUE044CkvvlpNHEIejNMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTT
|
3120 |
-
jgKS++Wk0cQh6M0wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCW
|
3121 |
-
e+0F+S8Tkdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+gA0z
|
3122 |
-
5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl
|
3123 |
-
-----END CERTIFICATE-----
|
3124 |
-
|
3125 |
-
SSL.com EV Root Certification Authority RSA R2
|
3126 |
-
==============================================
|
3127 |
-
-----BEGIN CERTIFICATE-----
|
3128 |
-
MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNVBAYTAlVTMQ4w
|
3129 |
-
DAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9u
|
3130 |
-
MTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy
|
3131 |
-
MB4XDTE3MDUzMTE4MTQzN1oXDTQyMDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQI
|
3132 |
-
DAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYD
|
3133 |
-
VQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMIICIjAN
|
3134 |
-
BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvqM0fNTPl9fb69LT3w23jh
|
3135 |
-
hqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssufOePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7w
|
3136 |
-
cXHswxzpY6IXFJ3vG2fThVUCAtZJycxa4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTO
|
3137 |
-
Zw+oz12WGQvE43LrrdF9HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+
|
3138 |
-
B6KjBSYRaZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcAb9Zh
|
3139 |
-
CBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQGp8hLH94t2S42Oim
|
3140 |
-
9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQVPWKchjgGAGYS5Fl2WlPAApiiECto
|
3141 |
-
RHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMOpgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+Slm
|
3142 |
-
JuwgUHfbSguPvuUCYHBBXtSuUDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48
|
3143 |
-
+qvWBkofZ6aYMBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV
|
3144 |
-
HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa49QaAJadz20Zp
|
3145 |
-
qJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBWs47LCp1Jjr+kxJG7ZhcFUZh1
|
3146 |
-
++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nx
|
3147 |
-
Y/hoLVUE0fKNsKTPvDxeH3jnpaAgcLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2G
|
3148 |
-
guDKBAdRUNf/ktUM79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDz
|
3149 |
-
OFSz/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXtll9ldDz7
|
3150 |
-
CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEmKf7GUmG6sXP/wwyc5Wxq
|
3151 |
-
lD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKKQbNmC1r7fSOl8hqw/96bg5Qu0T/fkreR
|
3152 |
-
rwU7ZcegbLHNYhLDkBvjJc40vG93drEQw/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1
|
3153 |
-
hlMYegouCRw2n5H9gooiS9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX
|
3154 |
-
9hwJ1C07mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w==
|
3155 |
-
-----END CERTIFICATE-----
|
3156 |
-
|
3157 |
-
SSL.com EV Root Certification Authority ECC
|
3158 |
-
===========================================
|
3159 |
-
-----BEGIN CERTIFICATE-----
|
3160 |
-
MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMCVVMxDjAMBgNV
|
3161 |
-
BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xNDAy
|
3162 |
-
BgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYw
|
3163 |
-
MjEyMTgxNTIzWhcNNDEwMjEyMTgxNTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx
|
3164 |
-
EDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NM
|
3165 |
-
LmNvbSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB
|
3166 |
-
BAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMAVIbc/R/fALhBYlzccBYy
|
3167 |
-
3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1KthkuWnBaBu2+8KGwytAJKaNjMGEwHQYDVR0O
|
3168 |
-
BBYEFFvKXuXe0oGqzagtZFG22XKbl+ZPMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe
|
3169 |
-
5d7SgarNqC1kUbbZcpuX5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJ
|
3170 |
-
N+vp1RPZytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZgh5Mm
|
3171 |
-
m7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg==
|
3172 |
-
-----END CERTIFICATE-----
|
3173 |
-
|
3174 |
-
GlobalSign Root CA - R6
|
3175 |
-
=======================
|
3176 |
-
-----BEGIN CERTIFICATE-----
|
3177 |
-
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
-
R2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds
|
3179 |
-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
-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
-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
-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
-
3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxDaNc9PIrFsmbVkJq3MQbF
|
3184 |
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
|
3202 |
-
-----END CERTIFICATE-----
|
3203 |
-
|
3204 |
-
OISTE WISeKey Global Root GC CA
|
3205 |
-
===============================
|
3206 |
-
-----BEGIN CERTIFICATE-----
|
3207 |
-
MIICaTCCAe+gAwIBAgIQISpWDK7aDKtARb8roi066jAKBggqhkjOPQQDAzBtMQswCQYDVQQGEwJD
|
3208 |
-
SDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEo
|
3209 |
-
MCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQyBDQTAeFw0xNzA1MDkwOTQ4MzRa
|
3210 |
-
Fw00MjA1MDkwOTU4MzNaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQL
|
3211 |
-
ExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh
|
3212 |
-
bCBSb290IEdDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETOlQwMYPchi82PG6s4nieUqjFqdr
|
3213 |
-
VCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4Wp2OQ0jnUsYd4XxiWD1Ab
|
3214 |
-
NTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd
|
3215 |
-
BgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7TrYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0E
|
3216 |
-
AwMDaAAwZQIwJsdpW9zV57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtk
|
3217 |
-
AjEA2zQgMgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9
|
3218 |
-
-----END CERTIFICATE-----
|
3219 |
-
|
3220 |
-
GTS Root R1
|
3221 |
-
===========
|
3222 |
-
-----BEGIN CERTIFICATE-----
|
3223 |
-
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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
|
3247 |
-
CFF1pkgl
|
3248 |
-
-----END CERTIFICATE-----
|
3249 |
-
|
3250 |
-
GTS Root R2
|
3251 |
-
===========
|
3252 |
-
-----BEGIN CERTIFICATE-----
|
3253 |
-
MIIFWjCCA0KgAwIBAgIQbkepxlqz5yDFMJo/aFLybzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQG
|
3254 |
-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
-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
-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
-
MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTuk
|
3258 |
-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
-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
-
m8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5Gm
|
3261 |
-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
-
ak7MkogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscsz
|
3263 |
-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
-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
-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
-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
-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
-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
-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
-
+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
-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
-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
-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
-
Nmsk0jmGwZODUNKBRqhfYlcsu2xkiAhu7xNUX90txGdj08+JN7+dIPT7eoOboB6BAFDC5AwiWVIQ
|
3275 |
-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
-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
|
3277 |
-
o/DUhgkC
|
3278 |
-
-----END CERTIFICATE-----
|
3279 |
-
|
3280 |
-
GTS Root R3
|
3281 |
-
===========
|
3282 |
-
-----BEGIN CERTIFICATE-----
|
3283 |
-
MIICDDCCAZGgAwIBAgIQbkepx2ypcyRAiQ8DVd2NHTAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJV
|
3284 |
-
UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg
|
3285 |
-
UjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE
|
3286 |
-
ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcq
|
3287 |
-
hkjOPQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUU
|
3288 |
-
Rout736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24Cej
|
3289 |
-
QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP
|
3290 |
-
0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEAgFukfCPAlaUs3L6JbyO5o91lAFJekazInXJ0
|
3291 |
-
glMLfalAvWhgxeG4VDvBNhcl2MG9AjEAnjWSdIUlUfUk7GRSJFClH9voy8l27OyCbvWFGFPouOOa
|
3292 |
-
KaqW04MjyaR7YbPMAuhd
|
3293 |
-
-----END CERTIFICATE-----
|
3294 |
-
|
3295 |
-
GTS Root R4
|
3296 |
-
===========
|
3297 |
-
-----BEGIN CERTIFICATE-----
|
3298 |
-
MIICCjCCAZGgAwIBAgIQbkepyIuUtui7OyrYorLBmTAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJV
|
3299 |
-
UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg
|
3300 |
-
UjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE
|
3301 |
-
ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcq
|
3302 |
-
hkjOPQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa
|
3303 |
-
6zzuhXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqj
|
3304 |
-
QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV
|
3305 |
-
2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNnADBkAjBqUFJ0CMRw3J5QdCHojXohw0+WbhXRIjVhLfoI
|
3306 |
-
N+4Zba3bssx9BzT1YBkstTTZbyACMANxsbqjYAuG7ZoIapVon+Kz4ZNkfF6Tpt95LY2F45TPI11x
|
3307 |
-
zPKwTdb+mciUqXWi4w==
|
3308 |
-
-----END CERTIFICATE-----
|
3309 |
-
|
3310 |
-
UCA Global G2 Root
|
3311 |
-
==================
|
3312 |
-
-----BEGIN CERTIFICATE-----
|
3313 |
-
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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
KW4bHAyvj5OJrdu9o54hyokZ7N+1wxrrFv54NkzWbtA+FxyQF2smuvt6L78RHBgOLXMDj6DlNaBa
|
3324 |
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
|
3337 |
-
-----END CERTIFICATE-----
|
3338 |
-
|
3339 |
-
UCA Extended Validation Root
|
3340 |
-
============================
|
3341 |
-
-----BEGIN CERTIFICATE-----
|
3342 |
-
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
-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
-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
-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
-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
-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
-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
-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
-
59mzLC52LqGj3n5qiAno8geK+LLNEOfic0CTuwjRP+H8C5SzJe98ptfRr5//lpr1kXuYC3fUfugH
|
3351 |
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
+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
-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
-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
-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
-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
|
3366 |
-
dhh2n1ax
|
3367 |
-
-----END CERTIFICATE-----
|
3368 |
-
|
3369 |
-
Certigna Root CA
|
3370 |
-
================
|
3371 |
-
-----BEGIN CERTIFICATE-----
|
3372 |
-
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
-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
-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
-
MFoxCzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYz
|
3376 |
-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
-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
-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
-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
-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
-
XdG+RCYyKfHx9WzMfgIhC59vpD++nVPiz32pLHxYGpfhPTc3GGYo0kDFUYqMwy3OU4gkWGQwFsWq
|
3382 |
-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
-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
-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
-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
-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
-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
-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
-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
-
LmZyL2NlcnRpZ25hcm9vdGNhLmNybDAxoC+gLYYraHR0cDovL2NybC5kaGlteW90aXMuY29tL2Nl
|
3391 |
-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
-
OoldaDgvUSILSo3L6btdPrtcPbEo/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQH+pkV5a7XdrnxIxP
|
3393 |
-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
-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
-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
-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
-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
-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
-
aX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw3kAP+HwV96LOPNde
|
3400 |
-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
|
3401 |
-
-----END CERTIFICATE-----
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/composer/ca-bundle/src/CaBundle.php
DELETED
@@ -1,308 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/*
|
4 |
-
* This file is part of composer/ca-bundle.
|
5 |
-
*
|
6 |
-
* (c) Composer <https://github.com/composer>
|
7 |
-
*
|
8 |
-
* For the full copyright and license information, please view
|
9 |
-
* the LICENSE file that was distributed with this source code.
|
10 |
-
*/
|
11 |
-
|
12 |
-
namespace Composer\CaBundle;
|
13 |
-
|
14 |
-
use Psr\Log\LoggerInterface;
|
15 |
-
use Symfony\Component\Process\PhpProcess;
|
16 |
-
|
17 |
-
/**
|
18 |
-
* @author Chris Smith <chris@cs278.org>
|
19 |
-
* @author Jordi Boggiano <j.boggiano@seld.be>
|
20 |
-
*/
|
21 |
-
class CaBundle
|
22 |
-
{
|
23 |
-
private static $caPath;
|
24 |
-
private static $caFileValidity = array();
|
25 |
-
private static $useOpensslParse;
|
26 |
-
|
27 |
-
/**
|
28 |
-
* Returns the system CA bundle path, or a path to the bundled one
|
29 |
-
*
|
30 |
-
* This method was adapted from Sslurp.
|
31 |
-
* https://github.com/EvanDotPro/Sslurp
|
32 |
-
*
|
33 |
-
* (c) Evan Coury <me@evancoury.com>
|
34 |
-
*
|
35 |
-
* For the full copyright and license information, please see below:
|
36 |
-
*
|
37 |
-
* Copyright (c) 2013, Evan Coury
|
38 |
-
* All rights reserved.
|
39 |
-
*
|
40 |
-
* Redistribution and use in source and binary forms, with or without modification,
|
41 |
-
* are permitted provided that the following conditions are met:
|
42 |
-
*
|
43 |
-
* * Redistributions of source code must retain the above copyright notice,
|
44 |
-
* this list of conditions and the following disclaimer.
|
45 |
-
*
|
46 |
-
* * Redistributions in binary form must reproduce the above copyright notice,
|
47 |
-
* this list of conditions and the following disclaimer in the documentation
|
48 |
-
* and/or other materials provided with the distribution.
|
49 |
-
*
|
50 |
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
51 |
-
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
52 |
-
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
53 |
-
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
54 |
-
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
55 |
-
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
56 |
-
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
57 |
-
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
58 |
-
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
59 |
-
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
60 |
-
*
|
61 |
-
* @param LoggerInterface $logger optional logger for information about which CA files were loaded
|
62 |
-
* @return string path to a CA bundle file or directory
|
63 |
-
*/
|
64 |
-
public static function getSystemCaRootBundlePath(LoggerInterface $logger = null)
|
65 |
-
{
|
66 |
-
if (self::$caPath !== null) {
|
67 |
-
return self::$caPath;
|
68 |
-
}
|
69 |
-
|
70 |
-
// If SSL_CERT_FILE env variable points to a valid certificate/bundle, use that.
|
71 |
-
// This mimics how OpenSSL uses the SSL_CERT_FILE env variable.
|
72 |
-
$envCertFile = getenv('SSL_CERT_FILE');
|
73 |
-
if ($envCertFile && is_readable($envCertFile) && static::validateCaFile($envCertFile, $logger)) {
|
74 |
-
return self::$caPath = $envCertFile;
|
75 |
-
}
|
76 |
-
|
77 |
-
// If SSL_CERT_DIR env variable points to a valid certificate/bundle, use that.
|
78 |
-
// This mimics how OpenSSL uses the SSL_CERT_FILE env variable.
|
79 |
-
$envCertDir = getenv('SSL_CERT_DIR');
|
80 |
-
if ($envCertDir && is_dir($envCertDir) && is_readable($envCertDir)) {
|
81 |
-
return self::$caPath = $envCertDir;
|
82 |
-
}
|
83 |
-
|
84 |
-
$configured = ini_get('openssl.cafile');
|
85 |
-
if ($configured && strlen($configured) > 0 && is_readable($configured) && static::validateCaFile($configured, $logger)) {
|
86 |
-
return self::$caPath = $configured;
|
87 |
-
}
|
88 |
-
|
89 |
-
$configured = ini_get('openssl.capath');
|
90 |
-
if ($configured && is_dir($configured) && is_readable($configured)) {
|
91 |
-
return self::$caPath = $configured;
|
92 |
-
}
|
93 |
-
|
94 |
-
$caBundlePaths = array(
|
95 |
-
'/etc/pki/tls/certs/ca-bundle.crt', // Fedora, RHEL, CentOS (ca-certificates package)
|
96 |
-
'/etc/ssl/certs/ca-certificates.crt', // Debian, Ubuntu, Gentoo, Arch Linux (ca-certificates package)
|
97 |
-
'/etc/ssl/ca-bundle.pem', // SUSE, openSUSE (ca-certificates package)
|
98 |
-
'/usr/local/share/certs/ca-root-nss.crt', // FreeBSD (ca_root_nss_package)
|
99 |
-
'/usr/ssl/certs/ca-bundle.crt', // Cygwin
|
100 |
-
'/opt/local/share/curl/curl-ca-bundle.crt', // OS X macports, curl-ca-bundle package
|
101 |
-
'/usr/local/share/curl/curl-ca-bundle.crt', // Default cURL CA bunde path (without --with-ca-bundle option)
|
102 |
-
'/usr/share/ssl/certs/ca-bundle.crt', // Really old RedHat?
|
103 |
-
'/etc/ssl/cert.pem', // OpenBSD
|
104 |
-
'/usr/local/etc/ssl/cert.pem', // FreeBSD 10.x
|
105 |
-
'/usr/local/etc/openssl/cert.pem', // OS X homebrew, openssl package
|
106 |
-
);
|
107 |
-
|
108 |
-
foreach ($caBundlePaths as $caBundle) {
|
109 |
-
if (@is_readable($caBundle) && static::validateCaFile($caBundle, $logger)) {
|
110 |
-
return self::$caPath = $caBundle;
|
111 |
-
}
|
112 |
-
}
|
113 |
-
|
114 |
-
foreach ($caBundlePaths as $caBundle) {
|
115 |
-
$caBundle = dirname($caBundle);
|
116 |
-
if (@is_dir($caBundle) && glob($caBundle.'/*')) {
|
117 |
-
return self::$caPath = $caBundle;
|
118 |
-
}
|
119 |
-
}
|
120 |
-
|
121 |
-
return self::$caPath = static::getBundledCaBundlePath(); // Bundled CA file, last resort
|
122 |
-
}
|
123 |
-
|
124 |
-
/**
|
125 |
-
* Returns the path to the bundled CA file
|
126 |
-
*
|
127 |
-
* In case you don't want to trust the user or the system, you can use this directly
|
128 |
-
*
|
129 |
-
* @return string path to a CA bundle file
|
130 |
-
*/
|
131 |
-
public static function getBundledCaBundlePath()
|
132 |
-
{
|
133 |
-
$caBundleFile = __DIR__.'/../res/cacert.pem';
|
134 |
-
|
135 |
-
// cURL does not understand 'phar://' paths
|
136 |
-
// see https://github.com/composer/ca-bundle/issues/10
|
137 |
-
if (0 === strpos($caBundleFile, 'phar://')) {
|
138 |
-
file_put_contents(
|
139 |
-
$tempCaBundleFile = tempnam(sys_get_temp_dir(), 'openssl-ca-bundle-'),
|
140 |
-
file_get_contents($caBundleFile)
|
141 |
-
);
|
142 |
-
|
143 |
-
register_shutdown_function(function() use ($tempCaBundleFile) {
|
144 |
-
@unlink($tempCaBundleFile);
|
145 |
-
});
|
146 |
-
|
147 |
-
$caBundleFile = $tempCaBundleFile;
|
148 |
-
}
|
149 |
-
|
150 |
-
return $caBundleFile;
|
151 |
-
}
|
152 |
-
|
153 |
-
/**
|
154 |
-
* Validates a CA file using opensl_x509_parse only if it is safe to use
|
155 |
-
*
|
156 |
-
* @param string $filename
|
157 |
-
* @param LoggerInterface $logger optional logger for information about which CA files were loaded
|
158 |
-
*
|
159 |
-
* @return bool
|
160 |
-
*/
|
161 |
-
public static function validateCaFile($filename, LoggerInterface $logger = null)
|
162 |
-
{
|
163 |
-
static $warned = false;
|
164 |
-
|
165 |
-
if (isset(self::$caFileValidity[$filename])) {
|
166 |
-
return self::$caFileValidity[$filename];
|
167 |
-
}
|
168 |
-
|
169 |
-
$contents = file_get_contents($filename);
|
170 |
-
|
171 |
-
// assume the CA is valid if php is vulnerable to
|
172 |
-
// https://www.sektioneins.de/advisories/advisory-012013-php-openssl_x509_parse-memory-corruption-vulnerability.html
|
173 |
-
if (!static::isOpensslParseSafe()) {
|
174 |
-
if (!$warned && $logger) {
|
175 |
-
$logger->warning(sprintf(
|
176 |
-
'Your version of PHP, %s, is affected by CVE-2013-6420 and cannot safely perform certificate validation, we strongly suggest you upgrade.',
|
177 |
-
PHP_VERSION
|
178 |
-
));
|
179 |
-
$warned = true;
|
180 |
-
}
|
181 |
-
|
182 |
-
$isValid = !empty($contents);
|
183 |
-
} else {
|
184 |
-
$isValid = (bool) openssl_x509_parse($contents);
|
185 |
-
}
|
186 |
-
|
187 |
-
if ($logger) {
|
188 |
-
$logger->debug('Checked CA file '.realpath($filename).': '.($isValid ? 'valid' : 'invalid'));
|
189 |
-
}
|
190 |
-
|
191 |
-
return self::$caFileValidity[$filename] = $isValid;
|
192 |
-
}
|
193 |
-
|
194 |
-
/**
|
195 |
-
* Test if it is safe to use the PHP function openssl_x509_parse().
|
196 |
-
*
|
197 |
-
* This checks if OpenSSL extensions is vulnerable to remote code execution
|
198 |
-
* via the exploit documented as CVE-2013-6420.
|
199 |
-
*
|
200 |
-
* @return bool
|
201 |
-
*/
|
202 |
-
public static function isOpensslParseSafe()
|
203 |
-
{
|
204 |
-
if (null !== self::$useOpensslParse) {
|
205 |
-
return self::$useOpensslParse;
|
206 |
-
}
|
207 |
-
|
208 |
-
if (PHP_VERSION_ID >= 50600) {
|
209 |
-
return self::$useOpensslParse = true;
|
210 |
-
}
|
211 |
-
|
212 |
-
// Vulnerable:
|
213 |
-
// PHP 5.3.0 - PHP 5.3.27
|
214 |
-
// PHP 5.4.0 - PHP 5.4.22
|
215 |
-
// PHP 5.5.0 - PHP 5.5.6
|
216 |
-
if (
|
217 |
-
(PHP_VERSION_ID < 50400 && PHP_VERSION_ID >= 50328)
|
218 |
-
|| (PHP_VERSION_ID < 50500 && PHP_VERSION_ID >= 50423)
|
219 |
-
|| (PHP_VERSION_ID < 50600 && PHP_VERSION_ID >= 50507)
|
220 |
-
) {
|
221 |
-
// This version of PHP has the fix for CVE-2013-6420 applied.
|
222 |
-
return self::$useOpensslParse = true;
|
223 |
-
}
|
224 |
-
|
225 |
-
if (defined('PHP_WINDOWS_VERSION_BUILD')) {
|
226 |
-
// Windows is probably insecure in this case.
|
227 |
-
return self::$useOpensslParse = false;
|
228 |
-
}
|
229 |
-
|
230 |
-
$compareDistroVersionPrefix = function ($prefix, $fixedVersion) {
|
231 |
-
$regex = '{^'.preg_quote($prefix).'([0-9]+)$}';
|
232 |
-
|
233 |
-
if (preg_match($regex, PHP_VERSION, $m)) {
|
234 |
-
return ((int) $m[1]) >= $fixedVersion;
|
235 |
-
}
|
236 |
-
|
237 |
-
return false;
|
238 |
-
};
|
239 |
-
|
240 |
-
// Hard coded list of PHP distributions with the fix backported.
|
241 |
-
if (
|
242 |
-
$compareDistroVersionPrefix('5.3.3-7+squeeze', 18) // Debian 6 (Squeeze)
|
243 |
-
|| $compareDistroVersionPrefix('5.4.4-14+deb7u', 7) // Debian 7 (Wheezy)
|
244 |
-
|| $compareDistroVersionPrefix('5.3.10-1ubuntu3.', 9) // Ubuntu 12.04 (Precise)
|
245 |
-
) {
|
246 |
-
return self::$useOpensslParse = true;
|
247 |
-
}
|
248 |
-
|
249 |
-
// Symfony Process component is missing so we assume it is unsafe at this point
|
250 |
-
if (!class_exists('Symfony\Component\Process\PhpProcess')) {
|
251 |
-
return self::$useOpensslParse = false;
|
252 |
-
}
|
253 |
-
|
254 |
-
// This is where things get crazy, because distros backport security
|
255 |
-
// fixes the chances are on NIX systems the fix has been applied but
|
256 |
-
// it's not possible to verify that from the PHP version.
|
257 |
-
//
|
258 |
-
// To verify exec a new PHP process and run the issue testcase with
|
259 |
-
// known safe input that replicates the bug.
|
260 |
-
|
261 |
-
// Based on testcase in https://github.com/php/php-src/commit/c1224573c773b6845e83505f717fbf820fc18415
|
262 |
-
// changes in https://github.com/php/php-src/commit/76a7fd893b7d6101300cc656058704a73254d593
|
263 |
-
$cert = 'LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVwRENDQTR5Z0F3SUJBZ0lKQUp6dThyNnU2ZUJjTUEwR0NTcUdTSWIzRFFFQkJRVUFNSUhETVFzd0NRWUQKVlFRR0V3SkVSVEVjTUJvR0ExVUVDQXdUVG05eVpISm9aV2x1TFZkbGMzUm1ZV3hsYmpFUU1BNEdBMVVFQnd3SApTOE9Ed3Jac2JqRVVNQklHQTFVRUNnd0xVMlZyZEdsdmJrVnBibk14SHpBZEJnTlZCQXNNRmsxaGJHbGphVzkxCmN5QkRaWEowSUZObFkzUnBiMjR4SVRBZkJnTlZCQU1NR0cxaGJHbGphVzkxY3k1elpXdDBhVzl1WldsdWN5NWsKWlRFcU1DZ0dDU3FHU0liM0RRRUpBUlliYzNSbFptRnVMbVZ6YzJWeVFITmxhM1JwYjI1bGFXNXpMbVJsTUhVWQpaREU1TnpBd01UQXhNREF3TURBd1dnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQVhEVEUwTVRFeU9ERXhNemt6TlZvd2djTXhDekFKQmdOVkJBWVRBa1JGTVJ3d0dnWURWUVFJREJOTwpiM0prY21obGFXNHRWMlZ6ZEdaaGJHVnVNUkF3RGdZRFZRUUhEQWRMdzRQQ3RteHVNUlF3RWdZRFZRUUtEQXRUClpXdDBhVzl1UldsdWN6RWZNQjBHQTFVRUN3d1dUV0ZzYVdOcGIzVnpJRU5sY25RZ1UyVmpkR2x2YmpFaE1COEcKQTFVRUF3d1liV0ZzYVdOcGIzVnpMbk5sYTNScGIyNWxhVzV6TG1SbE1Tb3dLQVlKS29aSWh2Y05BUWtCRmh0egpkR1ZtWVc0dVpYTnpaWEpBYzJWcmRHbHZibVZwYm5NdVpHVXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCCkR3QXdnZ0VLQW9JQkFRRERBZjNobDdKWTBYY0ZuaXlFSnBTU0RxbjBPcUJyNlFQNjV1c0pQUnQvOFBhRG9xQnUKd0VZVC9OYSs2ZnNnUGpDMHVLOURaZ1dnMnRIV1dvYW5TYmxBTW96NVBINlorUzRTSFJaN2UyZERJalBqZGhqaAowbUxnMlVNTzV5cDBWNzk3R2dzOWxOdDZKUmZIODFNTjJvYlhXczROdHp0TE11RDZlZ3FwcjhkRGJyMzRhT3M4CnBrZHVpNVVhd1Raa3N5NXBMUEhxNWNNaEZHbTA2djY1Q0xvMFYyUGQ5K0tBb2tQclBjTjVLTEtlYno3bUxwazYKU01lRVhPS1A0aWRFcXh5UTdPN2ZCdUhNZWRzUWh1K3ByWTNzaTNCVXlLZlF0UDVDWm5YMmJwMHdLSHhYMTJEWAoxbmZGSXQ5RGJHdkhUY3lPdU4rblpMUEJtM3ZXeG50eUlJdlZBZ01CQUFHalFqQkFNQWtHQTFVZEV3UUNNQUF3CkVRWUpZSVpJQVliNFFnRUJCQVFEQWdlQU1Bc0dBMVVkRHdRRUF3SUZvREFUQmdOVkhTVUVEREFLQmdnckJnRUYKQlFjREFqQU5CZ2txaGtpRzl3MEJBUVVGQUFPQ0FRRUFHMGZaWVlDVGJkajFYWWMrMVNub2FQUit2SThDOENhRAo4KzBVWWhkbnlVNGdnYTBCQWNEclk5ZTk0ZUVBdTZacXljRjZGakxxWFhkQWJvcHBXb2NyNlQ2R0QxeDMzQ2tsClZBcnpHL0t4UW9oR0QySmVxa2hJTWxEb214SE83a2EzOStPYThpMnZXTFZ5alU4QVp2V01BcnVIYTRFRU55RzcKbFcyQWFnYUZLRkNyOVRuWFRmcmR4R1ZFYnY3S1ZRNmJkaGc1cDVTanBXSDErTXEwM3VSM1pYUEJZZHlWODMxOQpvMGxWajFLRkkyRENML2xpV2lzSlJvb2YrMWNSMzVDdGQwd1lCY3BCNlRac2xNY09QbDc2ZHdLd0pnZUpvMlFnClpzZm1jMnZDMS9xT2xOdU5xLzBUenprVkd2OEVUVDNDZ2FVK1VYZTRYT1Z2a2NjZWJKbjJkZz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K';
|
264 |
-
$script = <<<'EOT'
|
265 |
-
|
266 |
-
error_reporting(-1);
|
267 |
-
$info = openssl_x509_parse(base64_decode('%s'));
|
268 |
-
var_dump(PHP_VERSION, $info['issuer']['emailAddress'], $info['validFrom_time_t']);
|
269 |
-
|
270 |
-
EOT;
|
271 |
-
$script = '<'."?php\n".sprintf($script, $cert);
|
272 |
-
|
273 |
-
try {
|
274 |
-
$process = new PhpProcess($script);
|
275 |
-
$process->mustRun();
|
276 |
-
} catch (\Exception $e) {
|
277 |
-
// In the case of any exceptions just accept it is not possible to
|
278 |
-
// determine the safety of openssl_x509_parse and bail out.
|
279 |
-
return self::$useOpensslParse = false;
|
280 |
-
}
|
281 |
-
|
282 |
-
$output = preg_split('{\r?\n}', trim($process->getOutput()));
|
283 |
-
$errorOutput = trim($process->getErrorOutput());
|
284 |
-
|
285 |
-
if (
|
286 |
-
count($output) === 3
|
287 |
-
&& $output[0] === sprintf('string(%d) "%s"', strlen(PHP_VERSION), PHP_VERSION)
|
288 |
-
&& $output[1] === 'string(27) "stefan.esser@sektioneins.de"'
|
289 |
-
&& $output[2] === 'int(-1)'
|
290 |
-
&& preg_match('{openssl_x509_parse\(\): illegal (?:ASN1 data type for|length in) timestamp in - on line \d+}', $errorOutput)
|
291 |
-
) {
|
292 |
-
// This PHP has the fix backported probably by a distro security team.
|
293 |
-
return self::$useOpensslParse = true;
|
294 |
-
}
|
295 |
-
|
296 |
-
return self::$useOpensslParse = false;
|
297 |
-
}
|
298 |
-
|
299 |
-
/**
|
300 |
-
* Resets the static caches
|
301 |
-
*/
|
302 |
-
public static function reset()
|
303 |
-
{
|
304 |
-
self::$caFileValidity = array();
|
305 |
-
self::$caPath = null;
|
306 |
-
self::$useOpensslParse = null;
|
307 |
-
}
|
308 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/composer/installed.json
CHANGED
@@ -1,237 +1,63 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
"
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
"
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
"
|
19 |
-
"
|
20 |
-
"
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
"
|
37 |
-
"
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
"
|
48 |
-
"
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
"
|
57 |
-
"
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
"source": {
|
65 |
-
"type": "git",
|
66 |
-
"url": "https://github.com/maxmind/GeoIP2-php.git",
|
67 |
-
"reference": "a807fbf65212eef5d8d2db1a1b31082b53633d77"
|
68 |
-
},
|
69 |
-
"dist": {
|
70 |
-
"type": "zip",
|
71 |
-
"url": "https://api.github.com/repos/maxmind/GeoIP2-php/zipball/a807fbf65212eef5d8d2db1a1b31082b53633d77",
|
72 |
-
"reference": "a807fbf65212eef5d8d2db1a1b31082b53633d77",
|
73 |
-
"shasum": ""
|
74 |
-
},
|
75 |
-
"require": {
|
76 |
-
"maxmind-db/reader": "~1.0",
|
77 |
-
"maxmind/web-service-common": "~0.5",
|
78 |
-
"php": ">=5.4"
|
79 |
-
},
|
80 |
-
"require-dev": {
|
81 |
-
"friendsofphp/php-cs-fixer": "2.*",
|
82 |
-
"phpunit/phpunit": "4.*",
|
83 |
-
"squizlabs/php_codesniffer": "3.*"
|
84 |
-
},
|
85 |
-
"time": "2018-04-10T15:32:59+00:00",
|
86 |
-
"type": "library",
|
87 |
-
"installation-source": "dist",
|
88 |
-
"autoload": {
|
89 |
-
"psr-4": {
|
90 |
-
"GeoIp2\\": "src"
|
91 |
-
}
|
92 |
-
},
|
93 |
-
"notification-url": "https://packagist.org/downloads/",
|
94 |
-
"license": [
|
95 |
-
"Apache-2.0"
|
96 |
-
],
|
97 |
-
"authors": [
|
98 |
-
{
|
99 |
-
"name": "Gregory J. Oschwald",
|
100 |
-
"email": "goschwald@maxmind.com",
|
101 |
-
"homepage": "http://www.maxmind.com/"
|
102 |
-
}
|
103 |
-
],
|
104 |
-
"description": "MaxMind GeoIP2 PHP API",
|
105 |
-
"homepage": "https://github.com/maxmind/GeoIP2-php",
|
106 |
-
"keywords": [
|
107 |
-
"IP",
|
108 |
-
"geoip",
|
109 |
-
"geoip2",
|
110 |
-
"geolocation",
|
111 |
-
"maxmind"
|
112 |
-
]
|
113 |
-
},
|
114 |
-
{
|
115 |
-
"name": "maxmind-db/reader",
|
116 |
-
"version": "v1.4.1",
|
117 |
-
"version_normalized": "1.4.1.0",
|
118 |
-
"source": {
|
119 |
-
"type": "git",
|
120 |
-
"url": "https://github.com/maxmind/MaxMind-DB-Reader-php.git",
|
121 |
-
"reference": "eb83d0ee1c1f9b8a340206302136bc81ee02ae74"
|
122 |
-
},
|
123 |
-
"dist": {
|
124 |
-
"type": "zip",
|
125 |
-
"url": "https://api.github.com/repos/maxmind/MaxMind-DB-Reader-php/zipball/eb83d0ee1c1f9b8a340206302136bc81ee02ae74",
|
126 |
-
"reference": "eb83d0ee1c1f9b8a340206302136bc81ee02ae74",
|
127 |
-
"shasum": ""
|
128 |
-
},
|
129 |
-
"require": {
|
130 |
-
"php": ">=5.4"
|
131 |
-
},
|
132 |
-
"require-dev": {
|
133 |
-
"friendsofphp/php-cs-fixer": "2.*",
|
134 |
-
"phpunit/phpunit": "4.* || 5.*",
|
135 |
-
"satooshi/php-coveralls": "1.0.*",
|
136 |
-
"squizlabs/php_codesniffer": "3.*"
|
137 |
-
},
|
138 |
-
"suggest": {
|
139 |
-
"ext-bcmath": "bcmath or gmp is required for decoding larger integers with the pure PHP decoder",
|
140 |
-
"ext-gmp": "bcmath or gmp is required for decoding larger integers with the pure PHP decoder",
|
141 |
-
"ext-maxminddb": "A C-based database decoder that provides significantly faster lookups"
|
142 |
-
},
|
143 |
-
"time": "2019-01-04T19:55:56+00:00",
|
144 |
-
"type": "library",
|
145 |
-
"installation-source": "dist",
|
146 |
-
"autoload": {
|
147 |
-
"psr-4": {
|
148 |
-
"MaxMind\\Db\\": "src/MaxMind/Db"
|
149 |
-
}
|
150 |
-
},
|
151 |
-
"notification-url": "https://packagist.org/downloads/",
|
152 |
-
"license": [
|
153 |
-
"Apache-2.0"
|
154 |
-
],
|
155 |
-
"authors": [
|
156 |
-
{
|
157 |
-
"name": "Gregory J. Oschwald",
|
158 |
-
"email": "goschwald@maxmind.com",
|
159 |
-
"homepage": "http://www.maxmind.com/"
|
160 |
-
}
|
161 |
-
],
|
162 |
-
"description": "MaxMind DB Reader API",
|
163 |
-
"homepage": "https://github.com/maxmind/MaxMind-DB-Reader-php",
|
164 |
-
"keywords": [
|
165 |
-
"database",
|
166 |
-
"geoip",
|
167 |
-
"geoip2",
|
168 |
-
"geolocation",
|
169 |
-
"maxmind"
|
170 |
-
]
|
171 |
-
},
|
172 |
-
{
|
173 |
-
"name": "maxmind/web-service-common",
|
174 |
-
"version": "v0.5.0",
|
175 |
-
"version_normalized": "0.5.0.0",
|
176 |
-
"source": {
|
177 |
-
"type": "git",
|
178 |
-
"url": "https://github.com/maxmind/web-service-common-php.git",
|
179 |
-
"reference": "61a9836fa3bb1743ab89752bae5005d71e78c73b"
|
180 |
-
},
|
181 |
-
"dist": {
|
182 |
-
"type": "zip",
|
183 |
-
"url": "https://api.github.com/repos/maxmind/web-service-common-php/zipball/61a9836fa3bb1743ab89752bae5005d71e78c73b",
|
184 |
-
"reference": "61a9836fa3bb1743ab89752bae5005d71e78c73b",
|
185 |
-
"shasum": ""
|
186 |
-
},
|
187 |
-
"require": {
|
188 |
-
"composer/ca-bundle": "^1.0.3",
|
189 |
-
"ext-curl": "*",
|
190 |
-
"ext-json": "*",
|
191 |
-
"php": ">=5.4"
|
192 |
-
},
|
193 |
-
"require-dev": {
|
194 |
-
"friendsofphp/php-cs-fixer": "2.*",
|
195 |
-
"phpunit/phpunit": "4.*",
|
196 |
-
"squizlabs/php_codesniffer": "3.*"
|
197 |
-
},
|
198 |
-
"time": "2018-02-12T22:31:54+00:00",
|
199 |
-
"type": "library",
|
200 |
-
"installation-source": "dist",
|
201 |
-
"autoload": {
|
202 |
-
"psr-4": {
|
203 |
-
"MaxMind\\Exception\\": "src/Exception",
|
204 |
-
"MaxMind\\WebService\\": "src/WebService"
|
205 |
-
}
|
206 |
-
},
|
207 |
-
"notification-url": "https://packagist.org/downloads/",
|
208 |
-
"license": [
|
209 |
-
"Apache-2.0"
|
210 |
-
],
|
211 |
-
"authors": [
|
212 |
-
{
|
213 |
-
"name": "Gregory Oschwald",
|
214 |
-
"email": "goschwald@maxmind.com"
|
215 |
-
}
|
216 |
-
],
|
217 |
-
"description": "Internal MaxMind Web Service API",
|
218 |
-
"homepage": "https://github.com/maxmind/web-service-common-php"
|
219 |
-
},
|
220 |
-
{
|
221 |
-
"name": "wordfence/wf-waf",
|
222 |
-
"version": "1.0.0",
|
223 |
-
"version_normalized": "1.0.0.0",
|
224 |
-
"source": {
|
225 |
-
"type": "git",
|
226 |
-
"url": "https://github.com/wordfence/wf-waf.git",
|
227 |
-
"reference": "origin/master"
|
228 |
-
},
|
229 |
-
"dist": {
|
230 |
-
"type": "zip",
|
231 |
-
"url": "https://github.com/wordfence/wf-waf/zipball/master",
|
232 |
-
"reference": "origin/master"
|
233 |
-
},
|
234 |
-
"type": "library",
|
235 |
-
"installation-source": "source"
|
236 |
-
}
|
237 |
-
]
|
1 |
+
{
|
2 |
+
"packages": [
|
3 |
+
{
|
4 |
+
"name": "wordfence/mmdb-reader",
|
5 |
+
"version": "v1.0.0",
|
6 |
+
"version_normalized": "1.0.0.0",
|
7 |
+
"source": {
|
8 |
+
"type": "git",
|
9 |
+
"url": "git@github.com:wordfence/mmdb-reader.git",
|
10 |
+
"reference": "f72435e75f6654da08c2f0983e527cb207ef1f2a"
|
11 |
+
},
|
12 |
+
"dist": {
|
13 |
+
"type": "zip",
|
14 |
+
"url": "https://api.github.com/repos/wordfence/mmdb-reader/zipball/f72435e75f6654da08c2f0983e527cb207ef1f2a",
|
15 |
+
"reference": "f72435e75f6654da08c2f0983e527cb207ef1f2a",
|
16 |
+
"shasum": ""
|
17 |
+
},
|
18 |
+
"time": "2022-09-23T20:02:31+00:00",
|
19 |
+
"type": "library",
|
20 |
+
"installation-source": "dist",
|
21 |
+
"autoload": {
|
22 |
+
"psr-4": {
|
23 |
+
"Wordfence\\MmdbReader\\": "src/"
|
24 |
+
}
|
25 |
+
},
|
26 |
+
"license": [
|
27 |
+
"proprietary"
|
28 |
+
],
|
29 |
+
"authors": [
|
30 |
+
{
|
31 |
+
"name": "Alex Kenion",
|
32 |
+
"email": "alexk@wordfence.com"
|
33 |
+
}
|
34 |
+
],
|
35 |
+
"description": "A MaxMind DB (MMDB) reader with no external dependencies that provides support for a wider range of PHP versions than the official library",
|
36 |
+
"support": {
|
37 |
+
"source": "https://github.com/wordfence/mmdb-reader/tree/v1.0.0",
|
38 |
+
"issues": "https://github.com/wordfence/mmdb-reader/issues"
|
39 |
+
},
|
40 |
+
"install-path": "../wordfence/mmdb-reader"
|
41 |
+
},
|
42 |
+
{
|
43 |
+
"name": "wordfence/wf-waf",
|
44 |
+
"version": "1.0.0",
|
45 |
+
"version_normalized": "1.0.0.0",
|
46 |
+
"source": {
|
47 |
+
"type": "git",
|
48 |
+
"url": "https://github.com/wordfence/wf-waf.git",
|
49 |
+
"reference": "origin/master"
|
50 |
+
},
|
51 |
+
"dist": {
|
52 |
+
"type": "zip",
|
53 |
+
"url": "https://github.com/wordfence/wf-waf/zipball/master",
|
54 |
+
"reference": "origin/master"
|
55 |
+
},
|
56 |
+
"type": "library",
|
57 |
+
"installation-source": "source",
|
58 |
+
"install-path": "../wordfence/wf-waf"
|
59 |
+
}
|
60 |
+
],
|
61 |
+
"dev": true,
|
62 |
+
"dev-package-names": []
|
63 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/composer/installed.php
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php return array(
|
2 |
+
'root' => array(
|
3 |
+
'pretty_version' => 'dev-master',
|
4 |
+
'version' => 'dev-master',
|
5 |
+
'type' => 'library',
|
6 |
+
'install_path' => __DIR__ . '/../../',
|
7 |
+
'aliases' => array(),
|
8 |
+
'reference' => 'f7e640f16c0caa9077e4eaf4f42a42c9d1c76a05',
|
9 |
+
'name' => '__root__',
|
10 |
+
'dev' => true,
|
11 |
+
),
|
12 |
+
'versions' => array(
|
13 |
+
'__root__' => array(
|
14 |
+
'pretty_version' => 'dev-master',
|
15 |
+
'version' => 'dev-master',
|
16 |
+
'type' => 'library',
|
17 |
+
'install_path' => __DIR__ . '/../../',
|
18 |
+
'aliases' => array(),
|
19 |
+
'reference' => 'f7e640f16c0caa9077e4eaf4f42a42c9d1c76a05',
|
20 |
+
'dev_requirement' => false,
|
21 |
+
),
|
22 |
+
'wordfence/mmdb-reader' => array(
|
23 |
+
'pretty_version' => 'v1.0.0',
|
24 |
+
'version' => '1.0.0.0',
|
25 |
+
'type' => 'library',
|
26 |
+
'install_path' => __DIR__ . '/../wordfence/mmdb-reader',
|
27 |
+
'aliases' => array(),
|
28 |
+
'reference' => 'f72435e75f6654da08c2f0983e527cb207ef1f2a',
|
29 |
+
'dev_requirement' => false,
|
30 |
+
),
|
31 |
+
'wordfence/wf-waf' => array(
|
32 |
+
'pretty_version' => '1.0.0',
|
33 |
+
'version' => '1.0.0.0',
|
34 |
+
'type' => 'library',
|
35 |
+
'install_path' => __DIR__ . '/../wordfence/wf-waf',
|
36 |
+
'aliases' => array(),
|
37 |
+
'reference' => 'origin/master',
|
38 |
+
'dev_requirement' => false,
|
39 |
+
),
|
40 |
+
),
|
41 |
+
);
|
vendor/geoip2/geoip2/.gitmodules
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
[submodule "maxmind-db"]
|
2 |
-
path = maxmind-db
|
3 |
-
url = git://github.com/maxmind/MaxMind-DB.git
|
|
|
|
|
|
vendor/geoip2/geoip2/.php_cs
DELETED
@@ -1,35 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
return PhpCsFixer\Config::create()
|
4 |
-
->setRiskyAllowed(true)
|
5 |
-
->setRules([
|
6 |
-
'@Symfony' => true,
|
7 |
-
'@Symfony:risky' => true,
|
8 |
-
'array_syntax' => ['syntax' => 'short'],
|
9 |
-
'combine_consecutive_unsets' => true,
|
10 |
-
'concat_space' => [ 'spacing' => 'one'],
|
11 |
-
'heredoc_to_nowdoc' => true,
|
12 |
-
'increment_style' => false,
|
13 |
-
'list_syntax' => ['syntax' => 'long'],
|
14 |
-
'no_extra_consecutive_blank_lines' => ['break', 'continue', 'extra', 'return', 'throw', 'use', 'parenthesis_brace_block', 'square_brace_block', 'curly_brace_block'],
|
15 |
-
'no_short_echo_tag' => true,
|
16 |
-
'no_unreachable_default_argument_value' => true,
|
17 |
-
'no_useless_else' => true,
|
18 |
-
'no_useless_return' => true,
|
19 |
-
'ordered_imports' => true,
|
20 |
-
'pre_increment' => false,
|
21 |
-
'php_unit_strict' => true,
|
22 |
-
'php_unit_test_class_requires_covers' => true,
|
23 |
-
'phpdoc_add_missing_param_annotation' => true,
|
24 |
-
'phpdoc_no_alias_tag' => false,
|
25 |
-
'phpdoc_order' => true,
|
26 |
-
'semicolon_after_instruction' => true,
|
27 |
-
'strict_comparison' => true,
|
28 |
-
'strict_param' => true,
|
29 |
-
'yoda_style' => false,
|
30 |
-
])
|
31 |
-
->setFinder(
|
32 |
-
PhpCsFixer\Finder::create()
|
33 |
-
->in(__DIR__)
|
34 |
-
)
|
35 |
-
;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/LICENSE
DELETED
@@ -1,202 +0,0 @@
|
|
1 |
-
|
2 |
-
Apache License
|
3 |
-
Version 2.0, January 2004
|
4 |
-
http://www.apache.org/licenses/
|
5 |
-
|
6 |
-
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
7 |
-
|
8 |
-
1. Definitions.
|
9 |
-
|
10 |
-
"License" shall mean the terms and conditions for use, reproduction,
|
11 |
-
and distribution as defined by Sections 1 through 9 of this document.
|
12 |
-
|
13 |
-
"Licensor" shall mean the copyright owner or entity authorized by
|
14 |
-
the copyright owner that is granting the License.
|
15 |
-
|
16 |
-
"Legal Entity" shall mean the union of the acting entity and all
|
17 |
-
other entities that control, are controlled by, or are under common
|
18 |
-
control with that entity. For the purposes of this definition,
|
19 |
-
"control" means (i) the power, direct or indirect, to cause the
|
20 |
-
direction or management of such entity, whether by contract or
|
21 |
-
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
22 |
-
outstanding shares, or (iii) beneficial ownership of such entity.
|
23 |
-
|
24 |
-
"You" (or "Your") shall mean an individual or Legal Entity
|
25 |
-
exercising permissions granted by this License.
|
26 |
-
|
27 |
-
"Source" form shall mean the preferred form for making modifications,
|
28 |
-
including but not limited to software source code, documentation
|
29 |
-
source, and configuration files.
|
30 |
-
|
31 |
-
"Object" form shall mean any form resulting from mechanical
|
32 |
-
transformation or translation of a Source form, including but
|
33 |
-
not limited to compiled object code, generated documentation,
|
34 |
-
and conversions to other media types.
|
35 |
-
|
36 |
-
"Work" shall mean the work of authorship, whether in Source or
|
37 |
-
Object form, made available under the License, as indicated by a
|
38 |
-
copyright notice that is included in or attached to the work
|
39 |
-
(an example is provided in the Appendix below).
|
40 |
-
|
41 |
-
"Derivative Works" shall mean any work, whether in Source or Object
|
42 |
-
form, that is based on (or derived from) the Work and for which the
|
43 |
-
editorial revisions, annotations, elaborations, or other modifications
|
44 |
-
represent, as a whole, an original work of authorship. For the purposes
|
45 |
-
of this License, Derivative Works shall not include works that remain
|
46 |
-
separable from, or merely link (or bind by name) to the interfaces of,
|
47 |
-
the Work and Derivative Works thereof.
|
48 |
-
|
49 |
-
"Contribution" shall mean any work of authorship, including
|
50 |
-
the original version of the Work and any modifications or additions
|
51 |
-
to that Work or Derivative Works thereof, that is intentionally
|
52 |
-
submitted to Licensor for inclusion in the Work by the copyright owner
|
53 |
-
or by an individual or Legal Entity authorized to submit on behalf of
|
54 |
-
the copyright owner. For the purposes of this definition, "submitted"
|
55 |
-
means any form of electronic, verbal, or written communication sent
|
56 |
-
to the Licensor or its representatives, including but not limited to
|
57 |
-
communication on electronic mailing lists, source code control systems,
|
58 |
-
and issue tracking systems that are managed by, or on behalf of, the
|
59 |
-
Licensor for the purpose of discussing and improving the Work, but
|
60 |
-
excluding communication that is conspicuously marked or otherwise
|
61 |
-
designated in writing by the copyright owner as "Not a Contribution."
|
62 |
-
|
63 |
-
"Contributor" shall mean Licensor and any individual or Legal Entity
|
64 |
-
on behalf of whom a Contribution has been received by Licensor and
|
65 |
-
subsequently incorporated within the Work.
|
66 |
-
|
67 |
-
2. Grant of Copyright License. Subject to the terms and conditions of
|
68 |
-
this License, each Contributor hereby grants to You a perpetual,
|
69 |
-
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
70 |
-
copyright license to reproduce, prepare Derivative Works of,
|
71 |
-
publicly display, publicly perform, sublicense, and distribute the
|
72 |
-
Work and such Derivative Works in Source or Object form.
|
73 |
-
|
74 |
-
3. Grant of Patent License. Subject to the terms and conditions of
|
75 |
-
this License, each Contributor hereby grants to You a perpetual,
|
76 |
-
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
77 |
-
(except as stated in this section) patent license to make, have made,
|
78 |
-
use, offer to sell, sell, import, and otherwise transfer the Work,
|
79 |
-
where such license applies only to those patent claims licensable
|
80 |
-
by such Contributor that are necessarily infringed by their
|
81 |
-
Contribution(s) alone or by combination of their Contribution(s)
|
82 |
-
with the Work to which such Contribution(s) was submitted. If You
|
83 |
-
institute patent litigation against any entity (including a
|
84 |
-
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
85 |
-
or a Contribution incorporated within the Work constitutes direct
|
86 |
-
or contributory patent infringement, then any patent licenses
|
87 |
-
granted to You under this License for that Work shall terminate
|
88 |
-
as of the date such litigation is filed.
|
89 |
-
|
90 |
-
4. Redistribution. You may reproduce and distribute copies of the
|
91 |
-
Work or Derivative Works thereof in any medium, with or without
|
92 |
-
modifications, and in Source or Object form, provided that You
|
93 |
-
meet the following conditions:
|
94 |
-
|
95 |
-
(a) You must give any other recipients of the Work or
|
96 |
-
Derivative Works a copy of this License; and
|
97 |
-
|
98 |
-
(b) You must cause any modified files to carry prominent notices
|
99 |
-
stating that You changed the files; and
|
100 |
-
|
101 |
-
(c) You must retain, in the Source form of any Derivative Works
|
102 |
-
that You distribute, all copyright, patent, trademark, and
|
103 |
-
attribution notices from the Source form of the Work,
|
104 |
-
excluding those notices that do not pertain to any part of
|
105 |
-
the Derivative Works; and
|
106 |
-
|
107 |
-
(d) If the Work includes a "NOTICE" text file as part of its
|
108 |
-
distribution, then any Derivative Works that You distribute must
|
109 |
-
include a readable copy of the attribution notices contained
|
110 |
-
within such NOTICE file, excluding those notices that do not
|
111 |
-
pertain to any part of the Derivative Works, in at least one
|
112 |
-
of the following places: within a NOTICE text file distributed
|
113 |
-
as part of the Derivative Works; within the Source form or
|
114 |
-
documentation, if provided along with the Derivative Works; or,
|
115 |
-
within a display generated by the Derivative Works, if and
|
116 |
-
wherever such third-party notices normally appear. The contents
|
117 |
-
of the NOTICE file are for informational purposes only and
|
118 |
-
do not modify the License. You may add Your own attribution
|
119 |
-
notices within Derivative Works that You distribute, alongside
|
120 |
-
or as an addendum to the NOTICE text from the Work, provided
|
121 |
-
that such additional attribution notices cannot be construed
|
122 |
-
as modifying the License.
|
123 |
-
|
124 |
-
You may add Your own copyright statement to Your modifications and
|
125 |
-
may provide additional or different license terms and conditions
|
126 |
-
for use, reproduction, or distribution of Your modifications, or
|
127 |
-
for any such Derivative Works as a whole, provided Your use,
|
128 |
-
reproduction, and distribution of the Work otherwise complies with
|
129 |
-
the conditions stated in this License.
|
130 |
-
|
131 |
-
5. Submission of Contributions. Unless You explicitly state otherwise,
|
132 |
-
any Contribution intentionally submitted for inclusion in the Work
|
133 |
-
by You to the Licensor shall be under the terms and conditions of
|
134 |
-
this License, without any additional terms or conditions.
|
135 |
-
Notwithstanding the above, nothing herein shall supersede or modify
|
136 |
-
the terms of any separate license agreement you may have executed
|
137 |
-
with Licensor regarding such Contributions.
|
138 |
-
|
139 |
-
6. Trademarks. This License does not grant permission to use the trade
|
140 |
-
names, trademarks, service marks, or product names of the Licensor,
|
141 |
-
except as required for reasonable and customary use in describing the
|
142 |
-
origin of the Work and reproducing the content of the NOTICE file.
|
143 |
-
|
144 |
-
7. Disclaimer of Warranty. Unless required by applicable law or
|
145 |
-
agreed to in writing, Licensor provides the Work (and each
|
146 |
-
Contributor provides its Contributions) on an "AS IS" BASIS,
|
147 |
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
148 |
-
implied, including, without limitation, any warranties or conditions
|
149 |
-
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
150 |
-
PARTICULAR PURPOSE. You are solely responsible for determining the
|
151 |
-
appropriateness of using or redistributing the Work and assume any
|
152 |
-
risks associated with Your exercise of permissions under this License.
|
153 |
-
|
154 |
-
8. Limitation of Liability. In no event and under no legal theory,
|
155 |
-
whether in tort (including negligence), contract, or otherwise,
|
156 |
-
unless required by applicable law (such as deliberate and grossly
|
157 |
-
negligent acts) or agreed to in writing, shall any Contributor be
|
158 |
-
liable to You for damages, including any direct, indirect, special,
|
159 |
-
incidental, or consequential damages of any character arising as a
|
160 |
-
result of this License or out of the use or inability to use the
|
161 |
-
Work (including but not limited to damages for loss of goodwill,
|
162 |
-
work stoppage, computer failure or malfunction, or any and all
|
163 |
-
other commercial damages or losses), even if such Contributor
|
164 |
-
has been advised of the possibility of such damages.
|
165 |
-
|
166 |
-
9. Accepting Warranty or Additional Liability. While redistributing
|
167 |
-
the Work or Derivative Works thereof, You may choose to offer,
|
168 |
-
and charge a fee for, acceptance of support, warranty, indemnity,
|
169 |
-
or other liability obligations and/or rights consistent with this
|
170 |
-
License. However, in accepting such obligations, You may act only
|
171 |
-
on Your own behalf and on Your sole responsibility, not on behalf
|
172 |
-
of any other Contributor, and only if You agree to indemnify,
|
173 |
-
defend, and hold each Contributor harmless for any liability
|
174 |
-
incurred by, or claims asserted against, such Contributor by reason
|
175 |
-
of your accepting any such warranty or additional liability.
|
176 |
-
|
177 |
-
END OF TERMS AND CONDITIONS
|
178 |
-
|
179 |
-
APPENDIX: How to apply the Apache License to your work.
|
180 |
-
|
181 |
-
To apply the Apache License to your work, attach the following
|
182 |
-
boilerplate notice, with the fields enclosed by brackets "[]"
|
183 |
-
replaced with your own identifying information. (Don't include
|
184 |
-
the brackets!) The text should be enclosed in the appropriate
|
185 |
-
comment syntax for the file format. We also recommend that a
|
186 |
-
file or class name and description of purpose be included on the
|
187 |
-
same "printed page" as the copyright notice for easier
|
188 |
-
identification within third-party archives.
|
189 |
-
|
190 |
-
Copyright [yyyy] [name of copyright owner]
|
191 |
-
|
192 |
-
Licensed under the Apache License, Version 2.0 (the "License");
|
193 |
-
you may not use this file except in compliance with the License.
|
194 |
-
You may obtain a copy of the License at
|
195 |
-
|
196 |
-
http://www.apache.org/licenses/LICENSE-2.0
|
197 |
-
|
198 |
-
Unless required by applicable law or agreed to in writing, software
|
199 |
-
distributed under the License is distributed on an "AS IS" BASIS,
|
200 |
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
201 |
-
See the License for the specific language governing permissions and
|
202 |
-
limitations under the License.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Database/Reader.php
DELETED
@@ -1,283 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Database;
|
4 |
-
|
5 |
-
use GeoIp2\Exception\AddressNotFoundException;
|
6 |
-
use GeoIp2\ProviderInterface;
|
7 |
-
use MaxMind\Db\Reader as DbReader;
|
8 |
-
use MaxMind\Db\Reader\InvalidDatabaseException;
|
9 |
-
|
10 |
-
/**
|
11 |
-
* Instances of this class provide a reader for the GeoIP2 database format.
|
12 |
-
* IP addresses can be looked up using the database specific methods.
|
13 |
-
*
|
14 |
-
* ## Usage ##
|
15 |
-
*
|
16 |
-
* The basic API for this class is the same for every database. First, you
|
17 |
-
* create a reader object, specifying a file name. You then call the method
|
18 |
-
* corresponding to the specific database, passing it the IP address you want
|
19 |
-
* to look up.
|
20 |
-
*
|
21 |
-
* If the request succeeds, the method call will return a model class for
|
22 |
-
* the method you called. This model in turn contains multiple record classes,
|
23 |
-
* each of which represents part of the data returned by the database. If
|
24 |
-
* the database does not contain the requested information, the attributes
|
25 |
-
* on the record class will have a `null` value.
|
26 |
-
*
|
27 |
-
* If the address is not in the database, an
|
28 |
-
* {@link \GeoIp2\Exception\AddressNotFoundException} exception will be
|
29 |
-
* thrown. If an invalid IP address is passed to one of the methods, a
|
30 |
-
* SPL {@link \InvalidArgumentException} will be thrown. If the database is
|
31 |
-
* corrupt or invalid, a {@link \MaxMind\Db\Reader\InvalidDatabaseException}
|
32 |
-
* will be thrown.
|
33 |
-
*/
|
34 |
-
class Reader implements ProviderInterface
|
35 |
-
{
|
36 |
-
private $dbReader;
|
37 |
-
private $locales;
|
38 |
-
|
39 |
-
/**
|
40 |
-
* Constructor.
|
41 |
-
*
|
42 |
-
* @param string $filename the path to the GeoIP2 database file
|
43 |
-
* @param array $locales list of locale codes to use in name property
|
44 |
-
* from most preferred to least preferred
|
45 |
-
*
|
46 |
-
* @throws \MaxMind\Db\Reader\InvalidDatabaseException if the database
|
47 |
-
* is corrupt or invalid
|
48 |
-
*/
|
49 |
-
public function __construct(
|
50 |
-
$filename,
|
51 |
-
$locales = ['en']
|
52 |
-
) {
|
53 |
-
$this->dbReader = new DbReader($filename);
|
54 |
-
$this->locales = $locales;
|
55 |
-
}
|
56 |
-
|
57 |
-
/**
|
58 |
-
* This method returns a GeoIP2 City model.
|
59 |
-
*
|
60 |
-
* @param string $ipAddress an IPv4 or IPv6 address as a string
|
61 |
-
*
|
62 |
-
* @throws \GeoIp2\Exception\AddressNotFoundException if the address is
|
63 |
-
* not in the database
|
64 |
-
* @throws \MaxMind\Db\Reader\InvalidDatabaseException if the database
|
65 |
-
* is corrupt or invalid
|
66 |
-
*
|
67 |
-
* @return \GeoIp2\Model\City
|
68 |
-
*/
|
69 |
-
public function city($ipAddress)
|
70 |
-
{
|
71 |
-
return $this->modelFor('City', 'City', $ipAddress);
|
72 |
-
}
|
73 |
-
|
74 |
-
/**
|
75 |
-
* This method returns a GeoIP2 Country model.
|
76 |
-
*
|
77 |
-
* @param string $ipAddress an IPv4 or IPv6 address as a string
|
78 |
-
*
|
79 |
-
* @throws \GeoIp2\Exception\AddressNotFoundException if the address is
|
80 |
-
* not in the database
|
81 |
-
* @throws \MaxMind\Db\Reader\InvalidDatabaseException if the database
|
82 |
-
* is corrupt or invalid
|
83 |
-
*
|
84 |
-
* @return \GeoIp2\Model\Country
|
85 |
-
*/
|
86 |
-
public function country($ipAddress)
|
87 |
-
{
|
88 |
-
return $this->modelFor('Country', 'Country', $ipAddress);
|
89 |
-
}
|
90 |
-
|
91 |
-
/**
|
92 |
-
* This method returns a GeoIP2 Anonymous IP model.
|
93 |
-
*
|
94 |
-
* @param string $ipAddress an IPv4 or IPv6 address as a string
|
95 |
-
*
|
96 |
-
* @throws \GeoIp2\Exception\AddressNotFoundException if the address is
|
97 |
-
* not in the database
|
98 |
-
* @throws \MaxMind\Db\Reader\InvalidDatabaseException if the database
|
99 |
-
* is corrupt or invalid
|
100 |
-
*
|
101 |
-
* @return \GeoIp2\Model\AnonymousIp
|
102 |
-
*/
|
103 |
-
public function anonymousIp($ipAddress)
|
104 |
-
{
|
105 |
-
return $this->flatModelFor(
|
106 |
-
'AnonymousIp',
|
107 |
-
'GeoIP2-Anonymous-IP',
|
108 |
-
$ipAddress
|
109 |
-
);
|
110 |
-
}
|
111 |
-
|
112 |
-
/**
|
113 |
-
* This method returns a GeoLite2 ASN model.
|
114 |
-
*
|
115 |
-
* @param string $ipAddress an IPv4 or IPv6 address as a string
|
116 |
-
*
|
117 |
-
* @throws \GeoIp2\Exception\AddressNotFoundException if the address is
|
118 |
-
* not in the database
|
119 |
-
* @throws \MaxMind\Db\Reader\InvalidDatabaseException if the database
|
120 |
-
* is corrupt or invalid
|
121 |
-
*
|
122 |
-
* @return \GeoIp2\Model\Asn
|
123 |
-
*/
|
124 |
-
public function asn($ipAddress)
|
125 |
-
{
|
126 |
-
return $this->flatModelFor(
|
127 |
-
'Asn',
|
128 |
-
'GeoLite2-ASN',
|
129 |
-
$ipAddress
|
130 |
-
);
|
131 |
-
}
|
132 |
-
|
133 |
-
/**
|
134 |
-
* This method returns a GeoIP2 Connection Type model.
|
135 |
-
*
|
136 |
-
* @param string $ipAddress an IPv4 or IPv6 address as a string
|
137 |
-
*
|
138 |
-
* @throws \GeoIp2\Exception\AddressNotFoundException if the address is
|
139 |
-
* not in the database
|
140 |
-
* @throws \MaxMind\Db\Reader\InvalidDatabaseException if the database
|
141 |
-
* is corrupt or invalid
|
142 |
-
*
|
143 |
-
* @return \GeoIp2\Model\ConnectionType
|
144 |
-
*/
|
145 |
-
public function connectionType($ipAddress)
|
146 |
-
{
|
147 |
-
return $this->flatModelFor(
|
148 |
-
'ConnectionType',
|
149 |
-
'GeoIP2-Connection-Type',
|
150 |
-
$ipAddress
|
151 |
-
);
|
152 |
-
}
|
153 |
-
|
154 |
-
/**
|
155 |
-
* This method returns a GeoIP2 Domain model.
|
156 |
-
*
|
157 |
-
* @param string $ipAddress an IPv4 or IPv6 address as a string
|
158 |
-
*
|
159 |
-
* @throws \GeoIp2\Exception\AddressNotFoundException if the address is
|
160 |
-
* not in the database
|
161 |
-
* @throws \MaxMind\Db\Reader\InvalidDatabaseException if the database
|
162 |
-
* is corrupt or invalid
|
163 |
-
*
|
164 |
-
* @return \GeoIp2\Model\Domain
|
165 |
-
*/
|
166 |
-
public function domain($ipAddress)
|
167 |
-
{
|
168 |
-
return $this->flatModelFor(
|
169 |
-
'Domain',
|
170 |
-
'GeoIP2-Domain',
|
171 |
-
$ipAddress
|
172 |
-
);
|
173 |
-
}
|
174 |
-
|
175 |
-
/**
|
176 |
-
* This method returns a GeoIP2 Enterprise model.
|
177 |
-
*
|
178 |
-
* @param string $ipAddress an IPv4 or IPv6 address as a string
|
179 |
-
*
|
180 |
-
* @throws \GeoIp2\Exception\AddressNotFoundException if the address is
|
181 |
-
* not in the database
|
182 |
-
* @throws \MaxMind\Db\Reader\InvalidDatabaseException if the database
|
183 |
-
* is corrupt or invalid
|
184 |
-
*
|
185 |
-
* @return \GeoIp2\Model\Enterprise
|
186 |
-
*/
|
187 |
-
public function enterprise($ipAddress)
|
188 |
-
{
|
189 |
-
return $this->modelFor('Enterprise', 'Enterprise', $ipAddress);
|
190 |
-
}
|
191 |
-
|
192 |
-
/**
|
193 |
-
* This method returns a GeoIP2 ISP model.
|
194 |
-
*
|
195 |
-
* @param string $ipAddress an IPv4 or IPv6 address as a string
|
196 |
-
*
|
197 |
-
* @throws \GeoIp2\Exception\AddressNotFoundException if the address is
|
198 |
-
* not in the database
|
199 |
-
* @throws \MaxMind\Db\Reader\InvalidDatabaseException if the database
|
200 |
-
* is corrupt or invalid
|
201 |
-
*
|
202 |
-
* @return \GeoIp2\Model\Isp
|
203 |
-
*/
|
204 |
-
public function isp($ipAddress)
|
205 |
-
{
|
206 |
-
return $this->flatModelFor(
|
207 |
-
'Isp',
|
208 |
-
'GeoIP2-ISP',
|
209 |
-
$ipAddress
|
210 |
-
);
|
211 |
-
}
|
212 |
-
|
213 |
-
private function modelFor($class, $type, $ipAddress)
|
214 |
-
{
|
215 |
-
$record = $this->getRecord($class, $type, $ipAddress);
|
216 |
-
|
217 |
-
$record['traits']['ip_address'] = $ipAddress;
|
218 |
-
$class = 'GeoIp2\\Model\\' . $class;
|
219 |
-
|
220 |
-
return new $class($record, $this->locales);
|
221 |
-
}
|
222 |
-
|
223 |
-
private function flatModelFor($class, $type, $ipAddress)
|
224 |
-
{
|
225 |
-
$record = $this->getRecord($class, $type, $ipAddress);
|
226 |
-
|
227 |
-
$record['ip_address'] = $ipAddress;
|
228 |
-
$class = 'GeoIp2\\Model\\' . $class;
|
229 |
-
|
230 |
-
return new $class($record);
|
231 |
-
}
|
232 |
-
|
233 |
-
private function getRecord($class, $type, $ipAddress)
|
234 |
-
{
|
235 |
-
if (strpos($this->metadata()->databaseType, $type) === false) {
|
236 |
-
$method = lcfirst($class);
|
237 |
-
throw new \BadMethodCallException(
|
238 |
-
"The $method method cannot be used to open a "
|
239 |
-
. $this->metadata()->databaseType . ' database'
|
240 |
-
);
|
241 |
-
}
|
242 |
-
$record = $this->dbReader->get($ipAddress);
|
243 |
-
if ($record === null) {
|
244 |
-
throw new AddressNotFoundException(
|
245 |
-
"The address $ipAddress is not in the database."
|
246 |
-
);
|
247 |
-
}
|
248 |
-
if (!is_array($record)) {
|
249 |
-
// This can happen on corrupt databases. Generally,
|
250 |
-
// MaxMind\Db\Reader will throw a
|
251 |
-
// MaxMind\Db\Reader\InvalidDatabaseException, but occasionally
|
252 |
-
// the lookup may result in a record that looks valid but is not
|
253 |
-
// an array. This mostly happens when the user is ignoring all
|
254 |
-
// exceptions and the more frequent InvalidDatabaseException
|
255 |
-
// exceptions go unnoticed.
|
256 |
-
throw new InvalidDatabaseException(
|
257 |
-
"Expected an array when looking up $ipAddress but received: "
|
258 |
-
. gettype($record)
|
259 |
-
);
|
260 |
-
}
|
261 |
-
|
262 |
-
return $record;
|
263 |
-
}
|
264 |
-
|
265 |
-
/**
|
266 |
-
* @throws \InvalidArgumentException if arguments are passed to the method
|
267 |
-
* @throws \BadMethodCallException if the database has been closed
|
268 |
-
*
|
269 |
-
* @return \MaxMind\Db\Reader\Metadata object for the database
|
270 |
-
*/
|
271 |
-
public function metadata()
|
272 |
-
{
|
273 |
-
return $this->dbReader->metadata();
|
274 |
-
}
|
275 |
-
|
276 |
-
/**
|
277 |
-
* Closes the GeoIP2 database and returns the resources to the system.
|
278 |
-
*/
|
279 |
-
public function close()
|
280 |
-
{
|
281 |
-
$this->dbReader->close();
|
282 |
-
}
|
283 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Exception/AddressNotFoundException.php
DELETED
@@ -1,10 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Exception;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* This class represents a generic error.
|
7 |
-
*/
|
8 |
-
class AddressNotFoundException extends GeoIp2Exception
|
9 |
-
{
|
10 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Exception/AuthenticationException.php
DELETED
@@ -1,10 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Exception;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* This class represents a generic error.
|
7 |
-
*/
|
8 |
-
class AuthenticationException extends GeoIp2Exception
|
9 |
-
{
|
10 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Exception/GeoIp2Exception.php
DELETED
@@ -1,10 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Exception;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* This class represents a generic error.
|
7 |
-
*/
|
8 |
-
class GeoIp2Exception extends \Exception
|
9 |
-
{
|
10 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Exception/HttpException.php
DELETED
@@ -1,24 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Exception;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* This class represents an HTTP transport error.
|
7 |
-
*/
|
8 |
-
class HttpException extends GeoIp2Exception
|
9 |
-
{
|
10 |
-
/**
|
11 |
-
* The URI queried.
|
12 |
-
*/
|
13 |
-
public $uri;
|
14 |
-
|
15 |
-
public function __construct(
|
16 |
-
$message,
|
17 |
-
$httpStatus,
|
18 |
-
$uri,
|
19 |
-
\Exception $previous = null
|
20 |
-
) {
|
21 |
-
$this->uri = $uri;
|
22 |
-
parent::__construct($message, $httpStatus, $previous);
|
23 |
-
}
|
24 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Exception/InvalidRequestException.php
DELETED
@@ -1,26 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Exception;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* This class represents an error returned by MaxMind's GeoIP2
|
7 |
-
* web service.
|
8 |
-
*/
|
9 |
-
class InvalidRequestException extends HttpException
|
10 |
-
{
|
11 |
-
/**
|
12 |
-
* The code returned by the MaxMind web service.
|
13 |
-
*/
|
14 |
-
public $error;
|
15 |
-
|
16 |
-
public function __construct(
|
17 |
-
$message,
|
18 |
-
$error,
|
19 |
-
$httpStatus,
|
20 |
-
$uri,
|
21 |
-
\Exception $previous = null
|
22 |
-
) {
|
23 |
-
$this->error = $error;
|
24 |
-
parent::__construct($message, $httpStatus, $uri, $previous);
|
25 |
-
}
|
26 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Exception/OutOfQueriesException.php
DELETED
@@ -1,10 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Exception;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* This class represents a generic error.
|
7 |
-
*/
|
8 |
-
class OutOfQueriesException extends GeoIp2Exception
|
9 |
-
{
|
10 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Model/AbstractModel.php
DELETED
@@ -1,67 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Model;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* @ignore
|
7 |
-
*/
|
8 |
-
abstract class AbstractModel implements \JsonSerializable
|
9 |
-
{
|
10 |
-
protected $raw;
|
11 |
-
|
12 |
-
/**
|
13 |
-
* @ignore
|
14 |
-
*
|
15 |
-
* @param mixed $raw
|
16 |
-
*/
|
17 |
-
public function __construct($raw)
|
18 |
-
{
|
19 |
-
$this->raw = $raw;
|
20 |
-
}
|
21 |
-
|
22 |
-
/**
|
23 |
-
* @ignore
|
24 |
-
*
|
25 |
-
* @param mixed $field
|
26 |
-
*/
|
27 |
-
protected function get($field)
|
28 |
-
{
|
29 |
-
if (isset($this->raw[$field])) {
|
30 |
-
return $this->raw[$field];
|
31 |
-
}
|
32 |
-
if (preg_match('/^is_/', $field)) {
|
33 |
-
return false;
|
34 |
-
}
|
35 |
-
|
36 |
-
return null;
|
37 |
-
}
|
38 |
-
|
39 |
-
/**
|
40 |
-
* @ignore
|
41 |
-
*
|
42 |
-
* @param mixed $attr
|
43 |
-
*/
|
44 |
-
public function __get($attr)
|
45 |
-
{
|
46 |
-
if ($attr !== 'instance' && property_exists($this, $attr)) {
|
47 |
-
return $this->$attr;
|
48 |
-
}
|
49 |
-
|
50 |
-
throw new \RuntimeException("Unknown attribute: $attr");
|
51 |
-
}
|
52 |
-
|
53 |
-
/**
|
54 |
-
* @ignore
|
55 |
-
*
|
56 |
-
* @param mixed $attr
|
57 |
-
*/
|
58 |
-
public function __isset($attr)
|
59 |
-
{
|
60 |
-
return $attr !== 'instance' && isset($this->$attr);
|
61 |
-
}
|
62 |
-
|
63 |
-
public function jsonSerialize()
|
64 |
-
{
|
65 |
-
return $this->raw;
|
66 |
-
}
|
67 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Model/AnonymousIp.php
DELETED
@@ -1,46 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Model;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* This class provides the GeoIP2 Anonymous IP model.
|
7 |
-
*
|
8 |
-
* @property-read bool $isAnonymous This is true if the IP address belongs to
|
9 |
-
* any sort of anonymous network.
|
10 |
-
* @property-read bool $isAnonymousVpn This is true if the IP address belongs to
|
11 |
-
* an anonymous VPN system.
|
12 |
-
* @property-read bool $isHostingProvider This is true if the IP address belongs
|
13 |
-
* to a hosting provider.
|
14 |
-
* @property-read bool $isPublicProxy This is true if the IP address belongs to
|
15 |
-
* a public proxy.
|
16 |
-
* @property-read bool $isTorExitNode This is true if the IP address is a Tor
|
17 |
-
* exit node.
|
18 |
-
* @property-read string $ipAddress The IP address that the data in the model is
|
19 |
-
* for.
|
20 |
-
*/
|
21 |
-
class AnonymousIp extends AbstractModel
|
22 |
-
{
|
23 |
-
protected $isAnonymous;
|
24 |
-
protected $isAnonymousVpn;
|
25 |
-
protected $isHostingProvider;
|
26 |
-
protected $isPublicProxy;
|
27 |
-
protected $isTorExitNode;
|
28 |
-
protected $ipAddress;
|
29 |
-
|
30 |
-
/**
|
31 |
-
* @ignore
|
32 |
-
*
|
33 |
-
* @param mixed $raw
|
34 |
-
*/
|
35 |
-
public function __construct($raw)
|
36 |
-
{
|
37 |
-
parent::__construct($raw);
|
38 |
-
|
39 |
-
$this->isAnonymous = $this->get('is_anonymous');
|
40 |
-
$this->isAnonymousVpn = $this->get('is_anonymous_vpn');
|
41 |
-
$this->isHostingProvider = $this->get('is_hosting_provider');
|
42 |
-
$this->isPublicProxy = $this->get('is_public_proxy');
|
43 |
-
$this->isTorExitNode = $this->get('is_tor_exit_node');
|
44 |
-
$this->ipAddress = $this->get('ip_address');
|
45 |
-
}
|
46 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Model/Asn.php
DELETED
@@ -1,35 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Model;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* This class provides the GeoLite2 ASN model.
|
7 |
-
*
|
8 |
-
* @property-read int|null $autonomousSystemNumber The autonomous system number
|
9 |
-
* associated with the IP address.
|
10 |
-
* @property-read string|null $autonomousSystemOrganization The organization
|
11 |
-
* associated with the registered autonomous system number for the IP
|
12 |
-
* address.
|
13 |
-
* @property-read string $ipAddress The IP address that the data in the model is
|
14 |
-
* for.
|
15 |
-
*/
|
16 |
-
class Asn extends AbstractModel
|
17 |
-
{
|
18 |
-
protected $autonomousSystemNumber;
|
19 |
-
protected $autonomousSystemOrganization;
|
20 |
-
protected $ipAddress;
|
21 |
-
|
22 |
-
/**
|
23 |
-
* @ignore
|
24 |
-
*
|
25 |
-
* @param mixed $raw
|
26 |
-
*/
|
27 |
-
public function __construct($raw)
|
28 |
-
{
|
29 |
-
parent::__construct($raw);
|
30 |
-
$this->autonomousSystemNumber = $this->get('autonomous_system_number');
|
31 |
-
$this->autonomousSystemOrganization =
|
32 |
-
$this->get('autonomous_system_organization');
|
33 |
-
$this->ipAddress = $this->get('ip_address');
|
34 |
-
}
|
35 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Model/City.php
DELETED
@@ -1,133 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Model;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Model class for the data returned by GeoIP2 City web service and database.
|
7 |
-
*
|
8 |
-
* The only difference between the City and Insights model classes is which
|
9 |
-
* fields in each record may be populated. See
|
10 |
-
* http://dev.maxmind.com/geoip/geoip2/web-services more details.
|
11 |
-
*
|
12 |
-
* @property-read \GeoIp2\Record\City $city City data for the requested IP
|
13 |
-
* address.
|
14 |
-
* @property-read \GeoIp2\Record\Continent $continent Continent data for the
|
15 |
-
* requested IP address.
|
16 |
-
* @property-read \GeoIp2\Record\Country $country Country data for the requested
|
17 |
-
* IP address. This object represents the country where MaxMind believes the
|
18 |
-
* end user is located.
|
19 |
-
* @property-read \GeoIp2\Record\Location $location Location data for the
|
20 |
-
* requested IP address.
|
21 |
-
* @property-read \GeoIp2\Record\Postal $postal Postal data for the
|
22 |
-
* requested IP address.
|
23 |
-
* @property-read \GeoIp2\Record\MaxMind $maxmind Data related to your MaxMind
|
24 |
-
* account.
|
25 |
-
* @property-read \GeoIp2\Record\Country $registeredCountry Registered country
|
26 |
-
* data for the requested IP address. This record represents the country
|
27 |
-
* where the ISP has registered a given IP block and may differ from the
|
28 |
-
* user's country.
|
29 |
-
* @property-read \GeoIp2\Record\RepresentedCountry $representedCountry
|
30 |
-
* Represented country data for the requested IP address. The represented
|
31 |
-
* country is used for things like military bases. It is only present when
|
32 |
-
* the represented country differs from the country.
|
33 |
-
* @property-read array $subdivisions An array of {@link \GeoIp2\Record\Subdivision}
|
34 |
-
* objects representing the country subdivisions for the requested IP
|
35 |
-
* address. The number and type of subdivisions varies by country, but a
|
36 |
-
* subdivision is typically a state, province, county, etc. Subdivisions
|
37 |
-
* are ordered from most general (largest) to most specific (smallest).
|
38 |
-
* If the response did not contain any subdivisions, this method returns
|
39 |
-
* an empty array.
|
40 |
-
* @property-read \GeoIp2\Record\Subdivision $mostSpecificSubdivision An object
|
41 |
-
* representing the most specific subdivision returned. If the response
|
42 |
-
* did not contain any subdivisions, this method returns an empty
|
43 |
-
* {@link \GeoIp2\Record\Subdivision} object.
|
44 |
-
* @property-read \GeoIp2\Record\Traits $traits Data for the traits of the
|
45 |
-
* requested IP address.
|
46 |
-
*/
|
47 |
-
class City extends Country
|
48 |
-
{
|
49 |
-
/**
|
50 |
-
* @ignore
|
51 |
-
*/
|
52 |
-
protected $city;
|
53 |
-
/**
|
54 |
-
* @ignore
|
55 |
-
*/
|
56 |
-
protected $location;
|
57 |
-
/**
|
58 |
-
* @ignore
|
59 |
-
*/
|
60 |
-
protected $postal;
|
61 |
-
/**
|
62 |
-
* @ignore
|
63 |
-
*/
|
64 |
-
protected $subdivisions = [];
|
65 |
-
|
66 |
-
/**
|
67 |
-
* @ignore
|
68 |
-
*
|
69 |
-
* @param mixed $raw
|
70 |
-
* @param mixed $locales
|
71 |
-
*/
|
72 |
-
public function __construct($raw, $locales = ['en'])
|
73 |
-
{
|
74 |
-
parent::__construct($raw, $locales);
|
75 |
-
|
76 |
-
$this->city = new \GeoIp2\Record\City($this->get('city'), $locales);
|
77 |
-
$this->location = new \GeoIp2\Record\Location($this->get('location'));
|
78 |
-
$this->postal = new \GeoIp2\Record\Postal($this->get('postal'));
|
79 |
-
|
80 |
-
$this->createSubdivisions($raw, $locales);
|
81 |
-
}
|
82 |
-
|
83 |
-
private function createSubdivisions($raw, $locales)
|
84 |
-
{
|
85 |
-
if (!isset($raw['subdivisions'])) {
|
86 |
-
return;
|
87 |
-
}
|
88 |
-
|
89 |
-
foreach ($raw['subdivisions'] as $sub) {
|
90 |
-
array_push(
|
91 |
-
$this->subdivisions,
|
92 |
-
new \GeoIp2\Record\Subdivision($sub, $locales)
|
93 |
-
);
|
94 |
-
}
|
95 |
-
}
|
96 |
-
|
97 |
-
/**
|
98 |
-
* @ignore
|
99 |
-
*
|
100 |
-
* @param mixed $attr
|
101 |
-
*/
|
102 |
-
public function __get($attr)
|
103 |
-
{
|
104 |
-
if ($attr === 'mostSpecificSubdivision') {
|
105 |
-
return $this->$attr();
|
106 |
-
}
|
107 |
-
|
108 |
-
return parent::__get($attr);
|
109 |
-
}
|
110 |
-
|
111 |
-
/**
|
112 |
-
* @ignore
|
113 |
-
*
|
114 |
-
* @param mixed $attr
|
115 |
-
*/
|
116 |
-
public function __isset($attr)
|
117 |
-
{
|
118 |
-
if ($attr === 'mostSpecificSubdivision') {
|
119 |
-
// We always return a mostSpecificSubdivision, even if it is the
|
120 |
-
// empty subdivision
|
121 |
-
return true;
|
122 |
-
}
|
123 |
-
|
124 |
-
return parent::__isset($attr);
|
125 |
-
}
|
126 |
-
|
127 |
-
private function mostSpecificSubdivision()
|
128 |
-
{
|
129 |
-
return empty($this->subdivisions) ?
|
130 |
-
new \GeoIp2\Record\Subdivision([], $this->locales) :
|
131 |
-
end($this->subdivisions);
|
132 |
-
}
|
133 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Model/ConnectionType.php
DELETED
@@ -1,31 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Model;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* This class provides the GeoIP2 Connection-Type model.
|
7 |
-
*
|
8 |
-
* @property-read string|null $connectionType The connection type may take the
|
9 |
-
* following values: "Dialup", "Cable/DSL", "Corporate", "Cellular".
|
10 |
-
* Additional values may be added in the future.
|
11 |
-
* @property-read string $ipAddress The IP address that the data in the model is
|
12 |
-
* for.
|
13 |
-
*/
|
14 |
-
class ConnectionType extends AbstractModel
|
15 |
-
{
|
16 |
-
protected $connectionType;
|
17 |
-
protected $ipAddress;
|
18 |
-
|
19 |
-
/**
|
20 |
-
* @ignore
|
21 |
-
*
|
22 |
-
* @param mixed $raw
|
23 |
-
*/
|
24 |
-
public function __construct($raw)
|
25 |
-
{
|
26 |
-
parent::__construct($raw);
|
27 |
-
|
28 |
-
$this->connectionType = $this->get('connection_type');
|
29 |
-
$this->ipAddress = $this->get('ip_address');
|
30 |
-
}
|
31 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Model/Country.php
DELETED
@@ -1,71 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Model;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Model class for the data returned by GeoIP2 Country web service and database.
|
7 |
-
*
|
8 |
-
* The only difference between the City and Insights model classes is which
|
9 |
-
* fields in each record may be populated. See
|
10 |
-
* http://dev.maxmind.com/geoip/geoip2/web-services more details.
|
11 |
-
*
|
12 |
-
* @property-read \GeoIp2\Record\Continent $continent Continent data for the
|
13 |
-
* requested IP address.
|
14 |
-
* @property-read \GeoIp2\Record\Country $country Country data for the requested
|
15 |
-
* IP address. This object represents the country where MaxMind believes the
|
16 |
-
* end user is located.
|
17 |
-
* @property-read \GeoIp2\Record\MaxMind $maxmind Data related to your MaxMind
|
18 |
-
* account.
|
19 |
-
* @property-read \GeoIp2\Record\Country $registeredCountry Registered country
|
20 |
-
* data for the requested IP address. This record represents the country
|
21 |
-
* where the ISP has registered a given IP block and may differ from the
|
22 |
-
* user's country.
|
23 |
-
* @property-read \GeoIp2\Record\RepresentedCountry $representedCountry
|
24 |
-
* Represented country data for the requested IP address. The represented
|
25 |
-
* country is used for things like military bases. It is only present when
|
26 |
-
* the represented country differs from the country.
|
27 |
-
* @property-read \GeoIp2\Record\Traits $traits Data for the traits of the
|
28 |
-
* requested IP address.
|
29 |
-
*/
|
30 |
-
class Country extends AbstractModel
|
31 |
-
{
|
32 |
-
protected $continent;
|
33 |
-
protected $country;
|
34 |
-
protected $locales;
|
35 |
-
protected $maxmind;
|
36 |
-
protected $registeredCountry;
|
37 |
-
protected $representedCountry;
|
38 |
-
protected $traits;
|
39 |
-
|
40 |
-
/**
|
41 |
-
* @ignore
|
42 |
-
*
|
43 |
-
* @param mixed $raw
|
44 |
-
* @param mixed $locales
|
45 |
-
*/
|
46 |
-
public function __construct($raw, $locales = ['en'])
|
47 |
-
{
|
48 |
-
parent::__construct($raw);
|
49 |
-
|
50 |
-
$this->continent = new \GeoIp2\Record\Continent(
|
51 |
-
$this->get('continent'),
|
52 |
-
$locales
|
53 |
-
);
|
54 |
-
$this->country = new \GeoIp2\Record\Country(
|
55 |
-
$this->get('country'),
|
56 |
-
$locales
|
57 |
-
);
|
58 |
-
$this->maxmind = new \GeoIp2\Record\MaxMind($this->get('maxmind'));
|
59 |
-
$this->registeredCountry = new \GeoIp2\Record\Country(
|
60 |
-
$this->get('registered_country'),
|
61 |
-
$locales
|
62 |
-
);
|
63 |
-
$this->representedCountry = new \GeoIp2\Record\RepresentedCountry(
|
64 |
-
$this->get('represented_country'),
|
65 |
-
$locales
|
66 |
-
);
|
67 |
-
$this->traits = new \GeoIp2\Record\Traits($this->get('traits'));
|
68 |
-
|
69 |
-
$this->locales = $locales;
|
70 |
-
}
|
71 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Model/Domain.php
DELETED
@@ -1,31 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Model;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* This class provides the GeoIP2 Domain model.
|
7 |
-
*
|
8 |
-
* @property-read string|null $domain The second level domain associated with the
|
9 |
-
* IP address. This will be something like "example.com" or
|
10 |
-
* "example.co.uk", not "foo.example.com".
|
11 |
-
* @property-read string $ipAddress The IP address that the data in the model is
|
12 |
-
* for.
|
13 |
-
*/
|
14 |
-
class Domain extends AbstractModel
|
15 |
-
{
|
16 |
-
protected $domain;
|
17 |
-
protected $ipAddress;
|
18 |
-
|
19 |
-
/**
|
20 |
-
* @ignore
|
21 |
-
*
|
22 |
-
* @param mixed $raw
|
23 |
-
*/
|
24 |
-
public function __construct($raw)
|
25 |
-
{
|
26 |
-
parent::__construct($raw);
|
27 |
-
|
28 |
-
$this->domain = $this->get('domain');
|
29 |
-
$this->ipAddress = $this->get('ip_address');
|
30 |
-
}
|
31 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Model/Enterprise.php
DELETED
@@ -1,47 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Model;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Model class for the data returned by GeoIP2 Enterprise database lookups.
|
7 |
-
*
|
8 |
-
* The only difference between the City and Enterprise model classes is which
|
9 |
-
* fields in each record may be populated. See
|
10 |
-
* http://dev.maxmind.com/geoip/geoip2/web-services more details.
|
11 |
-
*
|
12 |
-
* @property-read \GeoIp2\Record\City $city City data for the requested IP
|
13 |
-
* address.
|
14 |
-
* @property-read \GeoIp2\Record\Continent $continent Continent data for the
|
15 |
-
* requested IP address.
|
16 |
-
* @property-read \GeoIp2\Record\Country $country Country data for the requested
|
17 |
-
* IP address. This object represents the country where MaxMind believes the
|
18 |
-
* end user is located.
|
19 |
-
* @property-read \GeoIp2\Record\Location $location Location data for the
|
20 |
-
* requested IP address.
|
21 |
-
* @property-read \GeoIp2\Record\MaxMind $maxmind Data related to your MaxMind
|
22 |
-
* account.
|
23 |
-
* @property-read \GeoIp2\Record\Country $registeredCountry Registered country
|
24 |
-
* data for the requested IP address. This record represents the country
|
25 |
-
* where the ISP has registered a given IP block and may differ from the
|
26 |
-
* user's country.
|
27 |
-
* @property-read \GeoIp2\Record\RepresentedCountry $representedCountry
|
28 |
-
* Represented country data for the requested IP address. The represented
|
29 |
-
* country is used for things like military bases. It is only present when
|
30 |
-
* the represented country differs from the country.
|
31 |
-
* @property-read array $subdivisions An array of {@link \GeoIp2\Record\Subdivision}
|
32 |
-
* objects representing the country subdivisions for the requested IP
|
33 |
-
* address. The number and type of subdivisions varies by country, but a
|
34 |
-
* subdivision is typically a state, province, county, etc. Subdivisions
|
35 |
-
* are ordered from most general (largest) to most specific (smallest).
|
36 |
-
* If the response did not contain any subdivisions, this method returns
|
37 |
-
* an empty array.
|
38 |
-
* @property-read \GeoIp2\Record\Subdivision $mostSpecificSubdivision An object
|
39 |
-
* representing the most specific subdivision returned. If the response
|
40 |
-
* did not contain any subdivisions, this method returns an empty
|
41 |
-
* {@link \GeoIp2\Record\Subdivision} object.
|
42 |
-
* @property-read \GeoIp2\Record\Traits $traits Data for the traits of the
|
43 |
-
* requested IP address.
|
44 |
-
*/
|
45 |
-
class Enterprise extends City
|
46 |
-
{
|
47 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Model/Insights.php
DELETED
@@ -1,47 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Model;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Model class for the data returned by GeoIP2 Precision: Insights web service.
|
7 |
-
*
|
8 |
-
* The only difference between the City and Insights model classes is which
|
9 |
-
* fields in each record may be populated. See
|
10 |
-
* http://dev.maxmind.com/geoip/geoip2/web-services more details.
|
11 |
-
*
|
12 |
-
* @property-read \GeoIp2\Record\City $city City data for the requested IP
|
13 |
-
* address.
|
14 |
-
* @property-read \GeoIp2\Record\Continent $continent Continent data for the
|
15 |
-
* requested IP address.
|
16 |
-
* @property-read \GeoIp2\Record\Country $country Country data for the requested
|
17 |
-
* IP address. This object represents the country where MaxMind believes the
|
18 |
-
* end user is located.
|
19 |
-
* @property-read \GeoIp2\Record\Location $location Location data for the
|
20 |
-
* requested IP address.
|
21 |
-
* @property-read \GeoIp2\Record\MaxMind $maxmind Data related to your MaxMind
|
22 |
-
* account.
|
23 |
-
* @property-read \GeoIp2\Record\Country $registeredCountry Registered country
|
24 |
-
* data for the requested IP address. This record represents the country
|
25 |
-
* where the ISP has registered a given IP block and may differ from the
|
26 |
-
* user's country.
|
27 |
-
* @property-read \GeoIp2\Record\RepresentedCountry $representedCountry
|
28 |
-
* Represented country data for the requested IP address. The represented
|
29 |
-
* country is used for things like military bases. It is only present when
|
30 |
-
* the represented country differs from the country.
|
31 |
-
* @property-read array $subdivisions An array of {@link \GeoIp2\Record\Subdivision}
|
32 |
-
* objects representing the country subdivisions for the requested IP
|
33 |
-
* address. The number and type of subdivisions varies by country, but a
|
34 |
-
* subdivision is typically a state, province, county, etc. Subdivisions
|
35 |
-
* are ordered from most general (largest) to most specific (smallest).
|
36 |
-
* If the response did not contain any subdivisions, this method returns
|
37 |
-
* an empty array.
|
38 |
-
* @property-read \GeoIp2\Record\Subdivision $mostSpecificSubdivision An object
|
39 |
-
* representing the most specific subdivision returned. If the response
|
40 |
-
* did not contain any subdivisions, this method returns an empty
|
41 |
-
* {@link \GeoIp2\Record\Subdivision} object.
|
42 |
-
* @property-read \GeoIp2\Record\Traits $traits Data for the traits of the
|
43 |
-
* requested IP address.
|
44 |
-
*/
|
45 |
-
class Insights extends City
|
46 |
-
{
|
47 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Model/Isp.php
DELETED
@@ -1,44 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Model;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* This class provides the GeoIP2 ISP model.
|
7 |
-
*
|
8 |
-
* @property-read int|null $autonomousSystemNumber The autonomous system number
|
9 |
-
* associated with the IP address.
|
10 |
-
* @property-read string|null $autonomousSystemOrganization The organization
|
11 |
-
* associated with the registered autonomous system number for the IP
|
12 |
-
* address.
|
13 |
-
* @property-read string|null $isp The name of the ISP associated with the IP
|
14 |
-
* address.
|
15 |
-
* @property-read string|null $organization The name of the organization associated
|
16 |
-
* with the IP address.
|
17 |
-
* @property-read string $ipAddress The IP address that the data in the model is
|
18 |
-
* for.
|
19 |
-
*/
|
20 |
-
class Isp extends AbstractModel
|
21 |
-
{
|
22 |
-
protected $autonomousSystemNumber;
|
23 |
-
protected $autonomousSystemOrganization;
|
24 |
-
protected $isp;
|
25 |
-
protected $organization;
|
26 |
-
protected $ipAddress;
|
27 |
-
|
28 |
-
/**
|
29 |
-
* @ignore
|
30 |
-
*
|
31 |
-
* @param mixed $raw
|
32 |
-
*/
|
33 |
-
public function __construct($raw)
|
34 |
-
{
|
35 |
-
parent::__construct($raw);
|
36 |
-
$this->autonomousSystemNumber = $this->get('autonomous_system_number');
|
37 |
-
$this->autonomousSystemOrganization =
|
38 |
-
$this->get('autonomous_system_organization');
|
39 |
-
$this->isp = $this->get('isp');
|
40 |
-
$this->organization = $this->get('organization');
|
41 |
-
|
42 |
-
$this->ipAddress = $this->get('ip_address');
|
43 |
-
}
|
44 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/ProviderInterface.php
DELETED
@@ -1,20 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2;
|
4 |
-
|
5 |
-
interface ProviderInterface
|
6 |
-
{
|
7 |
-
/**
|
8 |
-
* @param string $ipAddress an IPv4 or IPv6 address to lookup
|
9 |
-
*
|
10 |
-
* @return \GeoIp2\Model\Country a Country model for the requested IP address
|
11 |
-
*/
|
12 |
-
public function country($ipAddress);
|
13 |
-
|
14 |
-
/**
|
15 |
-
* @param string $ipAddress an IPv4 or IPv6 address to lookup
|
16 |
-
*
|
17 |
-
* @return \GeoIp2\Model\City a City model for the requested IP address
|
18 |
-
*/
|
19 |
-
public function city($ipAddress);
|
20 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Record/AbstractPlaceRecord.php
DELETED
@@ -1,66 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Record;
|
4 |
-
|
5 |
-
abstract class AbstractPlaceRecord extends AbstractRecord
|
6 |
-
{
|
7 |
-
private $locales;
|
8 |
-
|
9 |
-
/**
|
10 |
-
* @ignore
|
11 |
-
*
|
12 |
-
* @param mixed $record
|
13 |
-
* @param mixed $locales
|
14 |
-
*/
|
15 |
-
public function __construct($record, $locales = ['en'])
|
16 |
-
{
|
17 |
-
$this->locales = $locales;
|
18 |
-
parent::__construct($record);
|
19 |
-
}
|
20 |
-
|
21 |
-
/**
|
22 |
-
* @ignore
|
23 |
-
*
|
24 |
-
* @param mixed $attr
|
25 |
-
*/
|
26 |
-
public function __get($attr)
|
27 |
-
{
|
28 |
-
if ($attr === 'name') {
|
29 |
-
return $this->name();
|
30 |
-
}
|
31 |
-
|
32 |
-
return parent::__get($attr);
|
33 |
-
}
|
34 |
-
|
35 |
-
/**
|
36 |
-
* @ignore
|
37 |
-
*
|
38 |
-
* @param mixed $attr
|
39 |
-
*/
|
40 |
-
public function __isset($attr)
|
41 |
-
{
|
42 |
-
if ($attr === 'name') {
|
43 |
-
return $this->firstSetNameLocale() === null ? false : true;
|
44 |
-
}
|
45 |
-
|
46 |
-
return parent::__isset($attr);
|
47 |
-
}
|
48 |
-
|
49 |
-
private function name()
|
50 |
-
{
|
51 |
-
$locale = $this->firstSetNameLocale();
|
52 |
-
|
53 |
-
return $locale === null ? null : $this->names[$locale];
|
54 |
-
}
|
55 |
-
|
56 |
-
private function firstSetNameLocale()
|
57 |
-
{
|
58 |
-
foreach ($this->locales as $locale) {
|
59 |
-
if (isset($this->names[$locale])) {
|
60 |
-
return $locale;
|
61 |
-
}
|
62 |
-
}
|
63 |
-
|
64 |
-
return null;
|
65 |
-
}
|
66 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Record/AbstractRecord.php
DELETED
@@ -1,61 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Record;
|
4 |
-
|
5 |
-
abstract class AbstractRecord implements \JsonSerializable
|
6 |
-
{
|
7 |
-
private $record;
|
8 |
-
|
9 |
-
/**
|
10 |
-
* @ignore
|
11 |
-
*
|
12 |
-
* @param mixed $record
|
13 |
-
*/
|
14 |
-
public function __construct($record)
|
15 |
-
{
|
16 |
-
$this->record = isset($record) ? $record : [];
|
17 |
-
}
|
18 |
-
|
19 |
-
/**
|
20 |
-
* @ignore
|
21 |
-
*
|
22 |
-
* @param mixed $attr
|
23 |
-
*/
|
24 |
-
public function __get($attr)
|
25 |
-
{
|
26 |
-
// XXX - kind of ugly but greatly reduces boilerplate code
|
27 |
-
$key = $this->attributeToKey($attr);
|
28 |
-
|
29 |
-
if ($this->__isset($attr)) {
|
30 |
-
return $this->record[$key];
|
31 |
-
} elseif ($this->validAttribute($attr)) {
|
32 |
-
if (preg_match('/^is_/', $key)) {
|
33 |
-
return false;
|
34 |
-
}
|
35 |
-
|
36 |
-
return null;
|
37 |
-
}
|
38 |
-
throw new \RuntimeException("Unknown attribute: $attr");
|
39 |
-
}
|
40 |
-
|
41 |
-
public function __isset($attr)
|
42 |
-
{
|
43 |
-
return $this->validAttribute($attr) &&
|
44 |
-
isset($this->record[$this->attributeToKey($attr)]);
|
45 |
-
}
|
46 |
-
|
47 |
-
private function attributeToKey($attr)
|
48 |
-
{
|
49 |
-
return strtolower(preg_replace('/([A-Z])/', '_\1', $attr));
|
50 |
-
}
|
51 |
-
|
52 |
-
private function validAttribute($attr)
|
53 |
-
{
|
54 |
-
return in_array($attr, $this->validAttributes, true);
|
55 |
-
}
|
56 |
-
|
57 |
-
public function jsonSerialize()
|
58 |
-
{
|
59 |
-
return $this->record;
|
60 |
-
}
|
61 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Record/City.php
DELETED
@@ -1,29 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Record;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* City-level data associated with an IP address.
|
7 |
-
*
|
8 |
-
* This record is returned by all location services and databases besides
|
9 |
-
* Country.
|
10 |
-
*
|
11 |
-
* @property-read int|null $confidence A value from 0-100 indicating MaxMind's
|
12 |
-
* confidence that the city is correct. This attribute is only available
|
13 |
-
* from the Insights service and the GeoIP2 Enterprise database.
|
14 |
-
* @property-read int|null $geonameId The GeoName ID for the city. This attribute
|
15 |
-
* is returned by all location services and databases.
|
16 |
-
* @property-read string|null $name The name of the city based on the locales list
|
17 |
-
* passed to the constructor. This attribute is returned by all location
|
18 |
-
* services and databases.
|
19 |
-
* @property-read array|null $names A array map where the keys are locale codes
|
20 |
-
* and the values are names. This attribute is returned by all location
|
21 |
-
* services and databases.
|
22 |
-
*/
|
23 |
-
class City extends AbstractPlaceRecord
|
24 |
-
{
|
25 |
-
/**
|
26 |
-
* @ignore
|
27 |
-
*/
|
28 |
-
protected $validAttributes = ['confidence', 'geonameId', 'names'];
|
29 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Record/Continent.php
DELETED
@@ -1,32 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Record;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Contains data for the continent record associated with an IP address.
|
7 |
-
*
|
8 |
-
* This record is returned by all location services and databases.
|
9 |
-
*
|
10 |
-
* @property-read string|null $code A two character continent code like "NA" (North
|
11 |
-
* America) or "OC" (Oceania). This attribute is returned by all location
|
12 |
-
* services and databases.
|
13 |
-
* @property-read int|null $geonameId The GeoName ID for the continent. This
|
14 |
-
* attribute is returned by all location services and databases.
|
15 |
-
* @property-read string|null $name Returns the name of the continent based on the
|
16 |
-
* locales list passed to the constructor. This attribute is returned by all location
|
17 |
-
* services and databases.
|
18 |
-
* @property-read array|null $names An array map where the keys are locale codes
|
19 |
-
* and the values are names. This attribute is returned by all location
|
20 |
-
* services and databases.
|
21 |
-
*/
|
22 |
-
class Continent extends AbstractPlaceRecord
|
23 |
-
{
|
24 |
-
/**
|
25 |
-
* @ignore
|
26 |
-
*/
|
27 |
-
protected $validAttributes = [
|
28 |
-
'code',
|
29 |
-
'geonameId',
|
30 |
-
'names',
|
31 |
-
];
|
32 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Record/Country.php
DELETED
@@ -1,41 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Record;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Contains data for the country record associated with an IP address.
|
7 |
-
*
|
8 |
-
* This record is returned by all location services and databases.
|
9 |
-
*
|
10 |
-
* @property-read int|null $confidence A value from 0-100 indicating MaxMind's
|
11 |
-
* confidence that the country is correct. This attribute is only available
|
12 |
-
* from the Insights service and the GeoIP2 Enterprise database.
|
13 |
-
* @property-read int|null $geonameId The GeoName ID for the country. This
|
14 |
-
* attribute is returned by all location services and databases.
|
15 |
-
* @property-read bool $isInEuropeanUnion This is true if the country is a
|
16 |
-
* member state of the European Union. This attribute is returned by all
|
17 |
-
* location services and databases.
|
18 |
-
* @property-read string|null $isoCode The
|
19 |
-
* {@link * http://en.wikipedia.org/wiki/ISO_3166-1 two-character ISO 3166-1 alpha
|
20 |
-
* code} for the country. This attribute is returned by all location services
|
21 |
-
* and databases.
|
22 |
-
* @property-read string|null $name The name of the country based on the locales
|
23 |
-
* list passed to the constructor. This attribute is returned by all location
|
24 |
-
* services and databases.
|
25 |
-
* @property-read array|null $names An array map where the keys are locale codes
|
26 |
-
* and the values are names. This attribute is returned by all location
|
27 |
-
* services and databases.
|
28 |
-
*/
|
29 |
-
class Country extends AbstractPlaceRecord
|
30 |
-
{
|
31 |
-
/**
|
32 |
-
* @ignore
|
33 |
-
*/
|
34 |
-
protected $validAttributes = [
|
35 |
-
'confidence',
|
36 |
-
'geonameId',
|
37 |
-
'isInEuropeanUnion',
|
38 |
-
'isoCode',
|
39 |
-
'names',
|
40 |
-
];
|
41 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Record/Location.php
DELETED
@@ -1,52 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Record;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Contains data for the location record associated with an IP address.
|
7 |
-
*
|
8 |
-
* This record is returned by all location services and databases besides
|
9 |
-
* Country.
|
10 |
-
*
|
11 |
-
* @property-read int|null $averageIncome The average income in US dollars
|
12 |
-
* associated with the requested IP address. This attribute is only available
|
13 |
-
* from the Insights service.
|
14 |
-
* @property-read int|null $accuracyRadius The approximate accuracy radius in
|
15 |
-
* kilometers around the latitude and longitude for the IP address. This is
|
16 |
-
* the radius where we have a 67% confidence that the device using the IP
|
17 |
-
* address resides within the circle centered at the latitude and longitude
|
18 |
-
* with the provided radius.
|
19 |
-
* @property-read float|null $latitude The approximate latitude of the location
|
20 |
-
* associated with the IP address. This value is not precise and should not be
|
21 |
-
* used to identify a particular address or household.
|
22 |
-
* @property-read float|null $longitude The approximate longitude of the location
|
23 |
-
* associated with the IP address. This value is not precise and should not be
|
24 |
-
* used to identify a particular address or household.
|
25 |
-
* @property-read int|null $populationDensity The estimated population per square
|
26 |
-
* kilometer associated with the IP address. This attribute is only available
|
27 |
-
* from the Insights service.
|
28 |
-
* @property-read int|null $metroCode The metro code of the location if the location
|
29 |
-
* is in the US. MaxMind returns the same metro codes as the
|
30 |
-
* {@link * https://developers.google.com/adwords/api/docs/appendix/cities-DMAregions
|
31 |
-
* Google AdWords API}.
|
32 |
-
* @property-read string|null $timeZone The time zone associated with location, as
|
33 |
-
* specified by the {@link http://www.iana.org/time-zones IANA Time Zone
|
34 |
-
* Database}, e.g., "America/New_York".
|
35 |
-
*/
|
36 |
-
class Location extends AbstractRecord
|
37 |
-
{
|
38 |
-
/**
|
39 |
-
* @ignore
|
40 |
-
*/
|
41 |
-
protected $validAttributes = [
|
42 |
-
'averageIncome',
|
43 |
-
'accuracyRadius',
|
44 |
-
'latitude',
|
45 |
-
'longitude',
|
46 |
-
'metroCode',
|
47 |
-
'populationDensity',
|
48 |
-
'postalCode',
|
49 |
-
'postalConfidence',
|
50 |
-
'timeZone',
|
51 |
-
];
|
52 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Record/MaxMind.php
DELETED
@@ -1,19 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Record;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Contains data about your account.
|
7 |
-
*
|
8 |
-
* This record is returned by all location services and databases.
|
9 |
-
*
|
10 |
-
* @property-read int|null $queriesRemaining The number of remaining queries you
|
11 |
-
* have for the service you are calling.
|
12 |
-
*/
|
13 |
-
class MaxMind extends AbstractRecord
|
14 |
-
{
|
15 |
-
/**
|
16 |
-
* @ignore
|
17 |
-
*/
|
18 |
-
protected $validAttributes = ['queriesRemaining'];
|
19 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Record/Postal.php
DELETED
@@ -1,26 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Record;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Contains data for the postal record associated with an IP address.
|
7 |
-
*
|
8 |
-
* This record is returned by all location databases and services besides
|
9 |
-
* Country.
|
10 |
-
*
|
11 |
-
* @property-read string|null $code The postal code of the location. Postal codes
|
12 |
-
* are not available for all countries. In some countries, this will only
|
13 |
-
* contain part of the postal code. This attribute is returned by all location
|
14 |
-
* databases and services besides Country.
|
15 |
-
* @property-read int|null $confidence A value from 0-100 indicating MaxMind's
|
16 |
-
* confidence that the postal code is correct. This attribute is only
|
17 |
-
* available from the Insights service and the GeoIP2 Enterprise
|
18 |
-
* database.
|
19 |
-
*/
|
20 |
-
class Postal extends AbstractRecord
|
21 |
-
{
|
22 |
-
/**
|
23 |
-
* @ignore
|
24 |
-
*/
|
25 |
-
protected $validAttributes = ['code', 'confidence'];
|
26 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Record/RepresentedCountry.php
DELETED
@@ -1,39 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Record;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Contains data for the represented country associated with an IP address.
|
7 |
-
*
|
8 |
-
* This class contains the country-level data associated with an IP address
|
9 |
-
* for the IP's represented country. The represented country is the country
|
10 |
-
* represented by something like a military base.
|
11 |
-
*
|
12 |
-
* @property-read int|null $confidence A value from 0-100 indicating MaxMind's
|
13 |
-
* confidence that the country is correct. This attribute is only available
|
14 |
-
* from the Insights service and the GeoIP2 Enterprise database.
|
15 |
-
* @property-read int|null $geonameId The GeoName ID for the country.
|
16 |
-
* @property-read bool $isInEuropeanUnion This is true if the country is a
|
17 |
-
* member state of the European Union. This attribute is returned by all
|
18 |
-
* location services and databases.
|
19 |
-
* @property-read string|null $isoCode The {@link http://en.wikipedia.org/wiki/ISO_3166-1
|
20 |
-
* two-character ISO 3166-1 alpha code} for the country.
|
21 |
-
* @property-read string|null $name The name of the country based on the locales list
|
22 |
-
* passed to the constructor.
|
23 |
-
* @property-read array|null $names An array map where the keys are locale codes and
|
24 |
-
* the values are names.
|
25 |
-
* @property-read string|null $type A string indicating the type of entity that is
|
26 |
-
* representing the country. Currently we only return <code>military</code>
|
27 |
-
* but this could expand to include other types in the future.
|
28 |
-
*/
|
29 |
-
class RepresentedCountry extends Country
|
30 |
-
{
|
31 |
-
protected $validAttributes = [
|
32 |
-
'confidence',
|
33 |
-
'geonameId',
|
34 |
-
'isInEuropeanUnion',
|
35 |
-
'isoCode',
|
36 |
-
'names',
|
37 |
-
'type',
|
38 |
-
];
|
39 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Record/Subdivision.php
DELETED
@@ -1,40 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Record;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Contains data for the subdivisions associated with an IP address.
|
7 |
-
*
|
8 |
-
* This record is returned by all location databases and services besides
|
9 |
-
* Country.
|
10 |
-
*
|
11 |
-
* @property-read int|null $confidence This is a value from 0-100 indicating
|
12 |
-
* MaxMind's confidence that the subdivision is correct. This attribute is
|
13 |
-
* only available from the Insights service and the GeoIP2 Enterprise
|
14 |
-
* database.
|
15 |
-
* @property-read int|null $geonameId This is a GeoName ID for the subdivision.
|
16 |
-
* This attribute is returned by all location databases and services besides
|
17 |
-
* Country.
|
18 |
-
* @property-read string|null $isoCode This is a string up to three characters long
|
19 |
-
* contain the subdivision portion of the
|
20 |
-
* {@link * http://en.wikipedia.org/wiki/ISO_3166-2 ISO 3166-2 code}. This attribute
|
21 |
-
* is returned by all location databases and services except Country.
|
22 |
-
* @property-read string|null $name The name of the subdivision based on the
|
23 |
-
* locales list passed to the constructor. This attribute is returned by all
|
24 |
-
* location databases and services besides Country.
|
25 |
-
* @property-read array|null $names An array map where the keys are locale codes
|
26 |
-
* and the values are names. This attribute is returned by all location
|
27 |
-
* databases and services besides Country.
|
28 |
-
*/
|
29 |
-
class Subdivision extends AbstractPlaceRecord
|
30 |
-
{
|
31 |
-
/**
|
32 |
-
* @ignore
|
33 |
-
*/
|
34 |
-
protected $validAttributes = [
|
35 |
-
'confidence',
|
36 |
-
'geonameId',
|
37 |
-
'isoCode',
|
38 |
-
'names',
|
39 |
-
];
|
40 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/Record/Traits.php
DELETED
@@ -1,114 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\Record;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Contains data for the traits record associated with an IP address.
|
7 |
-
*
|
8 |
-
* This record is returned by all location services and databases.
|
9 |
-
*
|
10 |
-
* @property-read int|null $autonomousSystemNumber The
|
11 |
-
* {@link * http://en.wikipedia.org/wiki/Autonomous_system_(Internet) autonomous
|
12 |
-
* system number} associated with the IP address. This attribute is only
|
13 |
-
* available from the City and Insights web service and the GeoIP2
|
14 |
-
* Enterprise database.
|
15 |
-
* @property-read string|null $autonomousSystemOrganization The organization
|
16 |
-
* associated with the registered {@link * http://en.wikipedia.org/wiki/Autonomous_system_(Internet) autonomous
|
17 |
-
* system number} for the IP address. This attribute is only available from
|
18 |
-
* the City and Insights web service and the GeoIP2 Enterprise
|
19 |
-
* database.
|
20 |
-
* @property-read string|null $connectionType The connection type may take the
|
21 |
-
* following values: "Dialup", "Cable/DSL", "Corporate", "Cellular".
|
22 |
-
* Additional values may be added in the future. This attribute is only
|
23 |
-
* available in the GeoIP2 Enterprise database.
|
24 |
-
* @property-read string|null $domain The second level domain associated with the
|
25 |
-
* IP address. This will be something like "example.com" or "example.co.uk",
|
26 |
-
* not "foo.example.com". This attribute is only available from the
|
27 |
-
* City and Insights web service and the GeoIP2 Enterprise
|
28 |
-
* database.
|
29 |
-
* @property-read string $ipAddress The IP address that the data in the model
|
30 |
-
* is for. If you performed a "me" lookup against the web service, this
|
31 |
-
* will be the externally routable IP address for the system the code is
|
32 |
-
* running on. If the system is behind a NAT, this may differ from the IP
|
33 |
-
* address locally assigned to it. This attribute is returned by all end
|
34 |
-
* points.
|
35 |
-
* @property-read bool $isAnonymous This is true if the IP address belongs to
|
36 |
-
* any sort of anonymous network. This property is only available from GeoIP2
|
37 |
-
* Precision Insights.
|
38 |
-
* @property-read bool $isAnonymousProxy *Deprecated.* Please see our
|
39 |
-
* {@link * https://www.maxmind.com/en/geoip2-anonymous-ip-database GeoIP2
|
40 |
-
* Anonymous IP database} to determine whether the IP address is used by an
|
41 |
-
* anonymizing service.
|
42 |
-
* @property-read bool $isAnonymousVpn This is true if the IP address belongs to
|
43 |
-
* an anonymous VPN system. This property is only available from GeoIP2
|
44 |
-
* Precision Insights.
|
45 |
-
* @property-read bool $isHostingProvider This is true if the IP address belongs
|
46 |
-
* to a hosting provider. This property is only available from GeoIP2
|
47 |
-
* Precision Insights.
|
48 |
-
* @property-read bool $isLegitimateProxy This attribute is true if MaxMind
|
49 |
-
* believes this IP address to be a legitimate proxy, such as an internal
|
50 |
-
* VPN used by a corporation. This attribute is only available in the GeoIP2
|
51 |
-
* Enterprise database.
|
52 |
-
* @property-read bool $isPublicProxy This is true if the IP address belongs to
|
53 |
-
* a public proxy. This property is only available from GeoIP2 Precision
|
54 |
-
* Insights.
|
55 |
-
* @property-read bool $isSatelliteProvider *Deprecated.* Due to the
|
56 |
-
* increased coverage by mobile carriers, very few satellite providers now
|
57 |
-
* serve multiple countries. As a result, the output does not provide
|
58 |
-
* sufficiently relevant data for us to maintain it.
|
59 |
-
* @property-read bool $isTorExitNode This is true if the IP address is a Tor
|
60 |
-
* exit node. This property is only available from GeoIP2 Precision Insights.
|
61 |
-
* @property-read string|null $isp The name of the ISP associated with the IP
|
62 |
-
* address. This attribute is only available from the City and Insights web
|
63 |
-
* services and the GeoIP2 Enterprise database.
|
64 |
-
* @property-read string|null $organization The name of the organization associated
|
65 |
-
* with the IP address. This attribute is only available from the City and
|
66 |
-
* Insights web services and the GeoIP2 Enterprise database.
|
67 |
-
* @property-read string|null $userType <p>The user type associated with the IP
|
68 |
-
* address. This can be one of the following values:</p>
|
69 |
-
* <ul>
|
70 |
-
* <li>business
|
71 |
-
* <li>cafe
|
72 |
-
* <li>cellular
|
73 |
-
* <li>college
|
74 |
-
* <li>content_delivery_network
|
75 |
-
* <li>dialup
|
76 |
-
* <li>government
|
77 |
-
* <li>hosting
|
78 |
-
* <li>library
|
79 |
-
* <li>military
|
80 |
-
* <li>residential
|
81 |
-
* <li>router
|
82 |
-
* <li>school
|
83 |
-
* <li>search_engine_spider
|
84 |
-
* <li>traveler
|
85 |
-
* </ul>
|
86 |
-
* <p>
|
87 |
-
* This attribute is only available from the Insights web service and the
|
88 |
-
* GeoIP2 Enterprise database.
|
89 |
-
* </p>
|
90 |
-
*/
|
91 |
-
class Traits extends AbstractRecord
|
92 |
-
{
|
93 |
-
/**
|
94 |
-
* @ignore
|
95 |
-
*/
|
96 |
-
protected $validAttributes = [
|
97 |
-
'autonomousSystemNumber',
|
98 |
-
'autonomousSystemOrganization',
|
99 |
-
'connectionType',
|
100 |
-
'domain',
|
101 |
-
'ipAddress',
|
102 |
-
'isAnonymous',
|
103 |
-
'isAnonymousProxy',
|
104 |
-
'isAnonymousVpn',
|
105 |
-
'isHostingProvider',
|
106 |
-
'isLegitimateProxy',
|
107 |
-
'isp',
|
108 |
-
'isPublicProxy',
|
109 |
-
'isSatelliteProvider',
|
110 |
-
'isTorExitNode',
|
111 |
-
'organization',
|
112 |
-
'userType',
|
113 |
-
];
|
114 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/geoip2/geoip2/src/WebService/Client.php
DELETED
@@ -1,239 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace GeoIp2\WebService;
|
4 |
-
|
5 |
-
use GeoIp2\Exception\AddressNotFoundException;
|
6 |
-
use GeoIp2\Exception\AuthenticationException;
|
7 |
-
use GeoIp2\Exception\GeoIp2Exception;
|
8 |
-
use GeoIp2\Exception\HttpException;
|
9 |
-
use GeoIp2\Exception\InvalidRequestException;
|
10 |
-
use GeoIp2\Exception\OutOfQueriesException;
|
11 |
-
use GeoIp2\ProviderInterface;
|
12 |
-
use MaxMind\WebService\Client as WsClient;
|
13 |
-
|
14 |
-
/**
|
15 |
-
* This class provides a client API for all the GeoIP2 Precision web services.
|
16 |
-
* The services are Country, City, and Insights. Each service returns a
|
17 |
-
* different set of data about an IP address, with Country returning the
|
18 |
-
* least data and Insights the most.
|
19 |
-
*
|
20 |
-
* Each web service is represented by a different model class, and these model
|
21 |
-
* classes in turn contain multiple record classes. The record classes have
|
22 |
-
* attributes which contain data about the IP address.
|
23 |
-
*
|
24 |
-
* If the web service does not return a particular piece of data for an IP
|
25 |
-
* address, the associated attribute is not populated.
|
26 |
-
*
|
27 |
-
* The web service may not return any information for an entire record, in
|
28 |
-
* which case all of the attributes for that record class will be empty.
|
29 |
-
*
|
30 |
-
* ## Usage ##
|
31 |
-
*
|
32 |
-
* The basic API for this class is the same for all of the web service end
|
33 |
-
* points. First you create a web service object with your MaxMind `$accountId`
|
34 |
-
* and `$licenseKey`, then you call the method corresponding to a specific end
|
35 |
-
* point, passing it the IP address you want to look up.
|
36 |
-
*
|
37 |
-
* If the request succeeds, the method call will return a model class for
|
38 |
-
* the service you called. This model in turn contains multiple record
|
39 |
-
* classes, each of which represents part of the data returned by the web
|
40 |
-
* service.
|
41 |
-
*
|
42 |
-
* If the request fails, the client class throws an exception.
|
43 |
-
*/
|
44 |
-
class Client implements ProviderInterface
|
45 |
-
{
|
46 |
-
private $locales;
|
47 |
-
private $client;
|
48 |
-
private static $basePath = '/geoip/v2.1';
|
49 |
-
|
50 |
-
const VERSION = 'v2.9.0';
|
51 |
-
|
52 |
-
/**
|
53 |
-
* Constructor.
|
54 |
-
*
|
55 |
-
* @param int $accountId your MaxMind account ID
|
56 |
-
* @param string $licenseKey your MaxMind license key
|
57 |
-
* @param array $locales list of locale codes to use in name property
|
58 |
-
* from most preferred to least preferred
|
59 |
-
* @param array $options array of options. Valid options include:
|
60 |
-
* * `host` - The host to use when querying the web service.
|
61 |
-
* * `timeout` - Timeout in seconds.
|
62 |
-
* * `connectTimeout` - Initial connection timeout in seconds.
|
63 |
-
* * `proxy` - The HTTP proxy to use. May include a schema, port,
|
64 |
-
* username, and password, e.g.,
|
65 |
-
* `http://username:password@127.0.0.1:10`.
|
66 |
-
*/
|
67 |
-
public function __construct(
|
68 |
-
$accountId,
|
69 |
-
$licenseKey,
|
70 |
-
$locales = ['en'],
|
71 |
-
$options = []
|
72 |
-
) {
|
73 |
-
$this->locales = $locales;
|
74 |
-
|
75 |
-
// This is for backwards compatibility. Do not remove except for a
|
76 |
-
// major version bump.
|
77 |
-
if (is_string($options)) {
|
78 |
-
$options = ['host' => $options];
|
79 |
-
}
|
80 |
-
|
81 |
-
if (!isset($options['host'])) {
|
82 |
-
$options['host'] = 'geoip.maxmind.com';
|
83 |
-
}
|
84 |
-
|
85 |
-
$options['userAgent'] = $this->userAgent();
|
86 |
-
|
87 |
-
$this->client = new WsClient($accountId, $licenseKey, $options);
|
88 |
-
}
|
89 |
-
|
90 |
-
private function userAgent()
|
91 |
-
{
|
92 |
-
return 'GeoIP2-API/' . self::VERSION;
|
93 |
-
}
|
94 |
-
|
95 |
-
/**
|
96 |
-
* This method calls the GeoIP2 Precision: City service.
|
97 |
-
*
|
98 |
-
* @param string $ipAddress IPv4 or IPv6 address as a string. If no
|
99 |
-
* address is provided, the address that the web service is called
|
100 |
-
* from will be used.
|
101 |
-
*
|
102 |
-
* @throws \GeoIp2\Exception\AddressNotFoundException if the address you
|
103 |
-
* provided is not in our database (e.g., a private address).
|
104 |
-
* @throws \GeoIp2\Exception\AuthenticationException if there is a problem
|
105 |
-
* with the account ID or license key that you provided
|
106 |
-
* @throws \GeoIp2\Exception\OutOfQueriesException if your account is out
|
107 |
-
* of queries
|
108 |
-
* @throws \GeoIp2\Exception\InvalidRequestException} if your request was received by the web service but is
|
109 |
-
* invalid for some other reason. This may indicate an issue
|
110 |
-
* with this API. Please report the error to MaxMind.
|
111 |
-
* @throws \GeoIp2\Exception\HttpException if an unexpected HTTP error code or message was returned.
|
112 |
-
* This could indicate a problem with the connection between
|
113 |
-
* your server and the web service or that the web service
|
114 |
-
* returned an invalid document or 500 error code.
|
115 |
-
* @throws \GeoIp2\Exception\GeoIp2Exception This serves as the parent
|
116 |
-
* class to the above exceptions. It will be thrown directly
|
117 |
-
* if a 200 status code is returned but the body is invalid.
|
118 |
-
*
|
119 |
-
* @return \GeoIp2\Model\City
|
120 |
-
*/
|
121 |
-
public function city($ipAddress = 'me')
|
122 |
-
{
|
123 |
-
return $this->responseFor('city', 'City', $ipAddress);
|
124 |
-
}
|
125 |
-
|
126 |
-
/**
|
127 |
-
* This method calls the GeoIP2 Precision: Country service.
|
128 |
-
*
|
129 |
-
* @param string $ipAddress IPv4 or IPv6 address as a string. If no
|
130 |
-
* address is provided, the address that the web service is called
|
131 |
-
* from will be used.
|
132 |
-
*
|
133 |
-
* @throws \GeoIp2\Exception\AddressNotFoundException if the address you provided is not in our database (e.g.,
|
134 |
-
* a private address).
|
135 |
-
* @throws \GeoIp2\Exception\AuthenticationException if there is a problem
|
136 |
-
* with the account ID or license key that you provided
|
137 |
-
* @throws \GeoIp2\Exception\OutOfQueriesException if your account is out of queries
|
138 |
-
* @throws \GeoIp2\Exception\InvalidRequestException} if your request was received by the web service but is
|
139 |
-
* invalid for some other reason. This may indicate an
|
140 |
-
* issue with this API. Please report the error to MaxMind.
|
141 |
-
* @throws \GeoIp2\Exception\HttpException if an unexpected HTTP error
|
142 |
-
* code or message was returned. This could indicate a problem
|
143 |
-
* with the connection between your server and the web service
|
144 |
-
* or that the web service returned an invalid document or 500
|
145 |
-
* error code.
|
146 |
-
* @throws \GeoIp2\Exception\GeoIp2Exception This serves as the parent class to the above exceptions. It
|
147 |
-
* will be thrown directly if a 200 status code is returned but
|
148 |
-
* the body is invalid.
|
149 |
-
*
|
150 |
-
* @return \GeoIp2\Model\Country
|
151 |
-
*/
|
152 |
-
public function country($ipAddress = 'me')
|
153 |
-
{
|
154 |
-
return $this->responseFor('country', 'Country', $ipAddress);
|
155 |
-
}
|
156 |
-
|
157 |
-
/**
|
158 |
-
* This method calls the GeoIP2 Precision: Insights service.
|
159 |
-
*
|
160 |
-
* @param string $ipAddress IPv4 or IPv6 address as a string. If no
|
161 |
-
* address is provided, the address that the web service is called
|
162 |
-
* from will be used.
|
163 |
-
*
|
164 |
-
* @throws \GeoIp2\Exception\AddressNotFoundException if the address you
|
165 |
-
* provided is not in our database (e.g., a private address).
|
166 |
-
* @throws \GeoIp2\Exception\AuthenticationException if there is a problem
|
167 |
-
* with the account ID or license key that you provided
|
168 |
-
* @throws \GeoIp2\Exception\OutOfQueriesException if your account is out
|
169 |
-
* of queries
|
170 |
-
* @throws \GeoIp2\Exception\InvalidRequestException} if your request was received by the web service but is
|
171 |
-
* invalid for some other reason. This may indicate an
|
172 |
-
* issue with this API. Please report the error to MaxMind.
|
173 |
-
* @throws \GeoIp2\Exception\HttpException if an unexpected HTTP error code or message was returned.
|
174 |
-
* This could indicate a problem with the connection between
|
175 |
-
* your server and the web service or that the web service
|
176 |
-
* returned an invalid document or 500 error code.
|
177 |
-
* @throws \GeoIp2\Exception\GeoIp2Exception This serves as the parent
|
178 |
-
* class to the above exceptions. It will be thrown directly
|
179 |
-
* if a 200 status code is returned but the body is invalid.
|
180 |
-
*
|
181 |
-
* @return \GeoIp2\Model\Insights
|
182 |
-
*/
|
183 |
-
public function insights($ipAddress = 'me')
|
184 |
-
{
|
185 |
-
return $this->responseFor('insights', 'Insights', $ipAddress);
|
186 |
-
}
|
187 |
-
|
188 |
-
private function responseFor($endpoint, $class, $ipAddress)
|
189 |
-
{
|
190 |
-
$path = implode('/', [self::$basePath, $endpoint, $ipAddress]);
|
191 |
-
|
192 |
-
try {
|
193 |
-
$body = $this->client->get('GeoIP2 ' . $class, $path);
|
194 |
-
} catch (\MaxMind\Exception\IpAddressNotFoundException $ex) {
|
195 |
-
throw new AddressNotFoundException(
|
196 |
-
$ex->getMessage(),
|
197 |
-
$ex->getStatusCode(),
|
198 |
-
$ex
|
199 |
-
);
|
200 |
-
} catch (\MaxMind\Exception\AuthenticationException $ex) {
|
201 |
-
throw new AuthenticationException(
|
202 |
-
$ex->getMessage(),
|
203 |
-
$ex->getStatusCode(),
|
204 |
-
$ex
|
205 |
-
);
|
206 |
-
} catch (\MaxMind\Exception\InsufficientFundsException $ex) {
|
207 |
-
throw new OutOfQueriesException(
|
208 |
-
$ex->getMessage(),
|
209 |
-
$ex->getStatusCode(),
|
210 |
-
$ex
|
211 |
-
);
|
212 |
-
} catch (\MaxMind\Exception\InvalidRequestException $ex) {
|
213 |
-
throw new InvalidRequestException(
|
214 |
-
$ex->getMessage(),
|
215 |
-
$ex->getErrorCode(),
|
216 |
-
$ex->getStatusCode(),
|
217 |
-
$ex->getUri(),
|
218 |
-
$ex
|
219 |
-
);
|
220 |
-
} catch (\MaxMind\Exception\HttpException $ex) {
|
221 |
-
throw new HttpException(
|
222 |
-
$ex->getMessage(),
|
223 |
-
$ex->getStatusCode(),
|
224 |
-
$ex->getUri(),
|
225 |
-
$ex
|
226 |
-
);
|
227 |
-
} catch (\MaxMind\Exception\WebServiceException $ex) {
|
228 |
-
throw new GeoIp2Exception(
|
229 |
-
$ex->getMessage(),
|
230 |
-
$ex->getCode(),
|
231 |
-
$ex
|
232 |
-
);
|
233 |
-
}
|
234 |
-
|
235 |
-
$class = 'GeoIp2\\Model\\' . $class;
|
236 |
-
|
237 |
-
return new $class($body, $this->locales);
|
238 |
-
}
|
239 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/maxmind-db/reader/LICENSE
DELETED
@@ -1,202 +0,0 @@
|
|
1 |
-
|
2 |
-
Apache License
|
3 |
-
Version 2.0, January 2004
|
4 |
-
http://www.apache.org/licenses/
|
5 |
-
|
6 |
-
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
7 |
-
|
8 |
-
1. Definitions.
|
9 |
-
|
10 |
-
"License" shall mean the terms and conditions for use, reproduction,
|
11 |
-
and distribution as defined by Sections 1 through 9 of this document.
|
12 |
-
|
13 |
-
"Licensor" shall mean the copyright owner or entity authorized by
|
14 |
-
the copyright owner that is granting the License.
|
15 |
-
|
16 |
-
"Legal Entity" shall mean the union of the acting entity and all
|
17 |
-
other entities that control, are controlled by, or are under common
|
18 |
-
control with that entity. For the purposes of this definition,
|
19 |
-
"control" means (i) the power, direct or indirect, to cause the
|
20 |
-
direction or management of such entity, whether by contract or
|
21 |
-
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
22 |
-
outstanding shares, or (iii) beneficial ownership of such entity.
|
23 |
-
|
24 |
-
"You" (or "Your") shall mean an individual or Legal Entity
|
25 |
-
exercising permissions granted by this License.
|
26 |
-
|
27 |
-
"Source" form shall mean the preferred form for making modifications,
|
28 |
-
including but not limited to software source code, documentation
|
29 |
-
source, and configuration files.
|
30 |
-
|
31 |
-
"Object" form shall mean any form resulting from mechanical
|
32 |
-
transformation or translation of a Source form, including but
|
33 |
-
not limited to compiled object code, generated documentation,
|
34 |
-
and conversions to other media types.
|
35 |
-
|
36 |
-
"Work" shall mean the work of authorship, whether in Source or
|
37 |
-
Object form, made available under the License, as indicated by a
|
38 |
-
copyright notice that is included in or attached to the work
|
39 |
-
(an example is provided in the Appendix below).
|
40 |
-
|
41 |
-
"Derivative Works" shall mean any work, whether in Source or Object
|
42 |
-
form, that is based on (or derived from) the Work and for which the
|
43 |
-
editorial revisions, annotations, elaborations, or other modifications
|
44 |
-
represent, as a whole, an original work of authorship. For the purposes
|
45 |
-
of this License, Derivative Works shall not include works that remain
|
46 |
-
separable from, or merely link (or bind by name) to the interfaces of,
|
47 |
-
the Work and Derivative Works thereof.
|
48 |
-
|
49 |
-
"Contribution" shall mean any work of authorship, including
|
50 |
-
the original version of the Work and any modifications or additions
|
51 |
-
to that Work or Derivative Works thereof, that is intentionally
|
52 |
-
submitted to Licensor for inclusion in the Work by the copyright owner
|
53 |
-
or by an individual or Legal Entity authorized to submit on behalf of
|
54 |
-
the copyright owner. For the purposes of this definition, "submitted"
|
55 |
-
means any form of electronic, verbal, or written communication sent
|
56 |
-
to the Licensor or its representatives, including but not limited to
|
57 |
-
communication on electronic mailing lists, source code control systems,
|
58 |
-
and issue tracking systems that are managed by, or on behalf of, the
|
59 |
-
Licensor for the purpose of discussing and improving the Work, but
|
60 |
-
excluding communication that is conspicuously marked or otherwise
|
61 |
-
designated in writing by the copyright owner as "Not a Contribution."
|
62 |
-
|
63 |
-
"Contributor" shall mean Licensor and any individual or Legal Entity
|
64 |
-
on behalf of whom a Contribution has been received by Licensor and
|
65 |
-
subsequently incorporated within the Work.
|
66 |
-
|
67 |
-
2. Grant of Copyright License. Subject to the terms and conditions of
|
68 |
-
this License, each Contributor hereby grants to You a perpetual,
|
69 |
-
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
70 |
-
copyright license to reproduce, prepare Derivative Works of,
|
71 |
-
publicly display, publicly perform, sublicense, and distribute the
|
72 |
-
Work and such Derivative Works in Source or Object form.
|
73 |
-
|
74 |
-
3. Grant of Patent License. Subject to the terms and conditions of
|
75 |
-
this License, each Contributor hereby grants to You a perpetual,
|
76 |
-
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
77 |
-
(except as stated in this section) patent license to make, have made,
|
78 |
-
use, offer to sell, sell, import, and otherwise transfer the Work,
|
79 |
-
where such license applies only to those patent claims licensable
|
80 |
-
by such Contributor that are necessarily infringed by their
|
81 |
-
Contribution(s) alone or by combination of their Contribution(s)
|
82 |
-
with the Work to which such Contribution(s) was submitted. If You
|
83 |
-
institute patent litigation against any entity (including a
|
84 |
-
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
85 |
-
or a Contribution incorporated within the Work constitutes direct
|
86 |
-
or contributory patent infringement, then any patent licenses
|
87 |
-
granted to You under this License for that Work shall terminate
|
88 |
-
as of the date such litigation is filed.
|
89 |
-
|
90 |
-
4. Redistribution. You may reproduce and distribute copies of the
|
91 |
-
Work or Derivative Works thereof in any medium, with or without
|
92 |
-
modifications, and in Source or Object form, provided that You
|
93 |
-
meet the following conditions:
|
94 |
-
|
95 |
-
(a) You must give any other recipients of the Work or
|
96 |
-
Derivative Works a copy of this License; and
|
97 |
-
|
98 |
-
(b) You must cause any modified files to carry prominent notices
|
99 |
-
stating that You changed the files; and
|
100 |
-
|
101 |
-
(c) You must retain, in the Source form of any Derivative Works
|
102 |
-
that You distribute, all copyright, patent, trademark, and
|
103 |
-
attribution notices from the Source form of the Work,
|
104 |
-
excluding those notices that do not pertain to any part of
|
105 |
-
the Derivative Works; and
|
106 |
-
|
107 |
-
(d) If the Work includes a "NOTICE" text file as part of its
|
108 |
-
distribution, then any Derivative Works that You distribute must
|
109 |
-
include a readable copy of the attribution notices contained
|
110 |
-
within such NOTICE file, excluding those notices that do not
|
111 |
-
pertain to any part of the Derivative Works, in at least one
|
112 |
-
of the following places: within a NOTICE text file distributed
|
113 |
-
as part of the Derivative Works; within the Source form or
|
114 |
-
documentation, if provided along with the Derivative Works; or,
|
115 |
-
within a display generated by the Derivative Works, if and
|
116 |
-
wherever such third-party notices normally appear. The contents
|
117 |
-
of the NOTICE file are for informational purposes only and
|
118 |
-
do not modify the License. You may add Your own attribution
|
119 |
-
notices within Derivative Works that You distribute, alongside
|
120 |
-
or as an addendum to the NOTICE text from the Work, provided
|
121 |
-
that such additional attribution notices cannot be construed
|
122 |
-
as modifying the License.
|
123 |
-
|
124 |
-
You may add Your own copyright statement to Your modifications and
|
125 |
-
may provide additional or different license terms and conditions
|
126 |
-
for use, reproduction, or distribution of Your modifications, or
|
127 |
-
for any such Derivative Works as a whole, provided Your use,
|
128 |
-
reproduction, and distribution of the Work otherwise complies with
|
129 |
-
the conditions stated in this License.
|
130 |
-
|
131 |
-
5. Submission of Contributions. Unless You explicitly state otherwise,
|
132 |
-
any Contribution intentionally submitted for inclusion in the Work
|
133 |
-
by You to the Licensor shall be under the terms and conditions of
|
134 |
-
this License, without any additional terms or conditions.
|
135 |
-
Notwithstanding the above, nothing herein shall supersede or modify
|
136 |
-
the terms of any separate license agreement you may have executed
|
137 |
-
with Licensor regarding such Contributions.
|
138 |
-
|
139 |
-
6. Trademarks. This License does not grant permission to use the trade
|
140 |
-
names, trademarks, service marks, or product names of the Licensor,
|
141 |
-
except as required for reasonable and customary use in describing the
|
142 |
-
origin of the Work and reproducing the content of the NOTICE file.
|
143 |
-
|
144 |
-
7. Disclaimer of Warranty. Unless required by applicable law or
|
145 |
-
agreed to in writing, Licensor provides the Work (and each
|
146 |
-
Contributor provides its Contributions) on an "AS IS" BASIS,
|
147 |
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
148 |
-
implied, including, without limitation, any warranties or conditions
|
149 |
-
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
150 |
-
PARTICULAR PURPOSE. You are solely responsible for determining the
|
151 |
-
appropriateness of using or redistributing the Work and assume any
|
152 |
-
risks associated with Your exercise of permissions under this License.
|
153 |
-
|
154 |
-
8. Limitation of Liability. In no event and under no legal theory,
|
155 |
-
whether in tort (including negligence), contract, or otherwise,
|
156 |
-
unless required by applicable law (such as deliberate and grossly
|
157 |
-
negligent acts) or agreed to in writing, shall any Contributor be
|
158 |
-
liable to You for damages, including any direct, indirect, special,
|
159 |
-
incidental, or consequential damages of any character arising as a
|
160 |
-
result of this License or out of the use or inability to use the
|
161 |
-
Work (including but not limited to damages for loss of goodwill,
|
162 |
-
work stoppage, computer failure or malfunction, or any and all
|
163 |
-
other commercial damages or losses), even if such Contributor
|
164 |
-
has been advised of the possibility of such damages.
|
165 |
-
|
166 |
-
9. Accepting Warranty or Additional Liability. While redistributing
|
167 |
-
the Work or Derivative Works thereof, You may choose to offer,
|
168 |
-
and charge a fee for, acceptance of support, warranty, indemnity,
|
169 |
-
or other liability obligations and/or rights consistent with this
|
170 |
-
License. However, in accepting such obligations, You may act only
|
171 |
-
on Your own behalf and on Your sole responsibility, not on behalf
|
172 |
-
of any other Contributor, and only if You agree to indemnify,
|
173 |
-
defend, and hold each Contributor harmless for any liability
|
174 |
-
incurred by, or claims asserted against, such Contributor by reason
|
175 |
-
of your accepting any such warranty or additional liability.
|
176 |
-
|
177 |
-
END OF TERMS AND CONDITIONS
|
178 |
-
|
179 |
-
APPENDIX: How to apply the Apache License to your work.
|
180 |
-
|
181 |
-
To apply the Apache License to your work, attach the following
|
182 |
-
boilerplate notice, with the fields enclosed by brackets "[]"
|
183 |
-
replaced with your own identifying information. (Don't include
|
184 |
-
the brackets!) The text should be enclosed in the appropriate
|
185 |
-
comment syntax for the file format. We also recommend that a
|
186 |
-
file or class name and description of purpose be included on the
|
187 |
-
same "printed page" as the copyright notice for easier
|
188 |
-
identification within third-party archives.
|
189 |
-
|
190 |
-
Copyright [yyyy] [name of copyright owner]
|
191 |
-
|
192 |
-
Licensed under the Apache License, Version 2.0 (the "License");
|
193 |
-
you may not use this file except in compliance with the License.
|
194 |
-
You may obtain a copy of the License at
|
195 |
-
|
196 |
-
http://www.apache.org/licenses/LICENSE-2.0
|
197 |
-
|
198 |
-
Unless required by applicable law or agreed to in writing, software
|
199 |
-
distributed under the License is distributed on an "AS IS" BASIS,
|
200 |
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
201 |
-
See the License for the specific language governing permissions and
|
202 |
-
limitations under the License.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/maxmind-db/reader/autoload.php
DELETED
@@ -1,45 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* PSR-4 autoloader implementation for the MaxMind\DB namespace.
|
5 |
-
* First we define the 'mmdb_autoload' function, and then we register
|
6 |
-
* it with 'spl_autoload_register' so that PHP knows to use it.
|
7 |
-
*
|
8 |
-
* @param mixed $class
|
9 |
-
*/
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Automatically include the file that defines <code>class</code>.
|
13 |
-
*
|
14 |
-
* @param string $class
|
15 |
-
* the name of the class to load
|
16 |
-
*/
|
17 |
-
function mmdb_autoload($class)
|
18 |
-
{
|
19 |
-
/*
|
20 |
-
* A project-specific mapping between the namespaces and where
|
21 |
-
* they're located. By convention, we include the trailing
|
22 |
-
* slashes. The one-element array here simply makes things easy
|
23 |
-
* to extend in the future if (for example) the test classes
|
24 |
-
* begin to use one another.
|
25 |
-
*/
|
26 |
-
$namespace_map = ['MaxMind\\Db\\' => __DIR__ . '/src/MaxMind/Db/'];
|
27 |
-
|
28 |
-
foreach ($namespace_map as $prefix => $dir) {
|
29 |
-
/* First swap out the namespace prefix with a directory... */
|
30 |
-
$path = str_replace($prefix, $dir, $class);
|
31 |
-
|
32 |
-
/* replace the namespace separator with a directory separator... */
|
33 |
-
$path = str_replace('\\', '/', $path);
|
34 |
-
|
35 |
-
/* and finally, add the PHP file extension to the result. */
|
36 |
-
$path = $path . '.php';
|
37 |
-
|
38 |
-
/* $path should now contain the path to a PHP file defining $class */
|
39 |
-
if (file_exists($path)) {
|
40 |
-
include $path;
|
41 |
-
}
|
42 |
-
}
|
43 |
-
}
|
44 |
-
|
45 |
-
spl_autoload_register('mmdb_autoload');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/maxmind-db/reader/src/MaxMind/Db/Reader.php
DELETED
@@ -1,309 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace MaxMind\Db;
|
4 |
-
|
5 |
-
use MaxMind\Db\Reader\Decoder;
|
6 |
-
use MaxMind\Db\Reader\InvalidDatabaseException;
|
7 |
-
use MaxMind\Db\Reader\Metadata;
|
8 |
-
use MaxMind\Db\Reader\Util;
|
9 |
-
|
10 |
-
/**
|
11 |
-
* Instances of this class provide a reader for the MaxMind DB format. IP
|
12 |
-
* addresses can be looked up using the <code>get</code> method.
|
13 |
-
*/
|
14 |
-
class Reader
|
15 |
-
{
|
16 |
-
private static $DATA_SECTION_SEPARATOR_SIZE = 16;
|
17 |
-
private static $METADATA_START_MARKER = "\xAB\xCD\xEFMaxMind.com";
|
18 |
-
private static $METADATA_START_MARKER_LENGTH = 14;
|
19 |
-
private static $METADATA_MAX_SIZE = 131072; // 128 * 1024 = 128KB
|
20 |
-
|
21 |
-
private $decoder;
|
22 |
-
private $fileHandle;
|
23 |
-
private $fileSize;
|
24 |
-
private $ipV4Start;
|
25 |
-
private $metadata;
|
26 |
-
|
27 |
-
/**
|
28 |
-
* Constructs a Reader for the MaxMind DB format. The file passed to it must
|
29 |
-
* be a valid MaxMind DB file such as a GeoIp2 database file.
|
30 |
-
*
|
31 |
-
* @param string $database
|
32 |
-
* the MaxMind DB file to use
|
33 |
-
*
|
34 |
-
* @throws \InvalidArgumentException for invalid database path or unknown arguments
|
35 |
-
* @throws \MaxMind\Db\Reader\InvalidDatabaseException
|
36 |
-
* if the database is invalid or there is an error reading
|
37 |
-
* from it
|
38 |
-
*/
|
39 |
-
public function __construct($database)
|
40 |
-
{
|
41 |
-
if (\func_num_args() !== 1) {
|
42 |
-
throw new \InvalidArgumentException(
|
43 |
-
'The constructor takes exactly one argument.'
|
44 |
-
);
|
45 |
-
}
|
46 |
-
|
47 |
-
if (!is_readable($database)) {
|
48 |
-
throw new \InvalidArgumentException(
|
49 |
-
"The file \"$database\" does not exist or is not readable."
|
50 |
-
);
|
51 |
-
}
|
52 |
-
$this->fileHandle = @fopen($database, 'rb');
|
53 |
-
if ($this->fileHandle === false) {
|
54 |
-
throw new \InvalidArgumentException(
|
55 |
-
"Error opening \"$database\"."
|
56 |
-
);
|
57 |
-
}
|
58 |
-
$this->fileSize = @filesize($database);
|
59 |
-
if ($this->fileSize === false) {
|
60 |
-
throw new \UnexpectedValueException(
|
61 |
-
"Error determining the size of \"$database\"."
|
62 |
-
);
|
63 |
-
}
|
64 |
-
|
65 |
-
$start = $this->findMetadataStart($database);
|
66 |
-
$metadataDecoder = new Decoder($this->fileHandle, $start);
|
67 |
-
list($metadataArray) = $metadataDecoder->decode($start);
|
68 |
-
$this->metadata = new Metadata($metadataArray);
|
69 |
-
$this->decoder = new Decoder(
|
70 |
-
$this->fileHandle,
|
71 |
-
$this->metadata->searchTreeSize + self::$DATA_SECTION_SEPARATOR_SIZE
|
72 |
-
);
|
73 |
-
}
|
74 |
-
|
75 |
-
/**
|
76 |
-
* Looks up the <code>address</code> in the MaxMind DB.
|
77 |
-
*
|
78 |
-
* @param string $ipAddress
|
79 |
-
* the IP address to look up
|
80 |
-
*
|
81 |
-
* @throws \BadMethodCallException if this method is called on a closed database
|
82 |
-
* @throws \InvalidArgumentException if something other than a single IP address is passed to the method
|
83 |
-
* @throws InvalidDatabaseException
|
84 |
-
* if the database is invalid or there is an error reading
|
85 |
-
* from it
|
86 |
-
*
|
87 |
-
* @return array the record for the IP address
|
88 |
-
*/
|
89 |
-
public function get($ipAddress)
|
90 |
-
{
|
91 |
-
if (\func_num_args() !== 1) {
|
92 |
-
throw new \InvalidArgumentException(
|
93 |
-
'Method takes exactly one argument.'
|
94 |
-
);
|
95 |
-
}
|
96 |
-
|
97 |
-
if (!\is_resource($this->fileHandle)) {
|
98 |
-
throw new \BadMethodCallException(
|
99 |
-
'Attempt to read from a closed MaxMind DB.'
|
100 |
-
);
|
101 |
-
}
|
102 |
-
|
103 |
-
if (!filter_var($ipAddress, FILTER_VALIDATE_IP)) {
|
104 |
-
throw new \InvalidArgumentException(
|
105 |
-
"The value \"$ipAddress\" is not a valid IP address."
|
106 |
-
);
|
107 |
-
}
|
108 |
-
|
109 |
-
if ($this->metadata->ipVersion === 4 && strrpos($ipAddress, ':')) {
|
110 |
-
throw new \InvalidArgumentException(
|
111 |
-
"Error looking up $ipAddress. You attempted to look up an"
|
112 |
-
. ' IPv6 address in an IPv4-only database.'
|
113 |
-
);
|
114 |
-
}
|
115 |
-
$pointer = $this->findAddressInTree($ipAddress);
|
116 |
-
if ($pointer === 0) {
|
117 |
-
return null;
|
118 |
-
}
|
119 |
-
|
120 |
-
return $this->resolveDataPointer($pointer);
|
121 |
-
}
|
122 |
-
|
123 |
-
private function findAddressInTree($ipAddress)
|
124 |
-
{
|
125 |
-
// XXX - could simplify. Done as a byte array to ease porting
|
126 |
-
$rawAddress = array_merge(unpack('C*', inet_pton($ipAddress)));
|
127 |
-
|
128 |
-
$bitCount = \count($rawAddress) * 8;
|
129 |
-
|
130 |
-
// The first node of the tree is always node 0, at the beginning of the
|
131 |
-
// value
|
132 |
-
$node = $this->startNode($bitCount);
|
133 |
-
|
134 |
-
for ($i = 0; $i < $bitCount; ++$i) {
|
135 |
-
if ($node >= $this->metadata->nodeCount) {
|
136 |
-
break;
|
137 |
-
}
|
138 |
-
$tempBit = 0xFF & $rawAddress[$i >> 3];
|
139 |
-
$bit = 1 & ($tempBit >> 7 - ($i % 8));
|
140 |
-
|
141 |
-
$node = $this->readNode($node, $bit);
|
142 |
-
}
|
143 |
-
if ($node === $this->metadata->nodeCount) {
|
144 |
-
// Record is empty
|
145 |
-
return 0;
|
146 |
-
} elseif ($node > $this->metadata->nodeCount) {
|
147 |
-
// Record is a data pointer
|
148 |
-
return $node;
|
149 |
-
}
|
150 |
-
throw new InvalidDatabaseException('Something bad happened');
|
151 |
-
}
|
152 |
-
|
153 |
-
private function startNode($length)
|
154 |
-
{
|
155 |
-
// Check if we are looking up an IPv4 address in an IPv6 tree. If this
|
156 |
-
// is the case, we can skip over the first 96 nodes.
|
157 |
-
if ($this->metadata->ipVersion === 6 && $length === 32) {
|
158 |
-
return $this->ipV4StartNode();
|
159 |
-
}
|
160 |
-
// The first node of the tree is always node 0, at the beginning of the
|
161 |
-
// value
|
162 |
-
return 0;
|
163 |
-
}
|
164 |
-
|
165 |
-
private function ipV4StartNode()
|
166 |
-
{
|
167 |
-
// This is a defensive check. There is no reason to call this when you
|
168 |
-
// have an IPv4 tree.
|
169 |
-
if ($this->metadata->ipVersion === 4) {
|
170 |
-
return 0;
|
171 |
-
}
|
172 |
-
|
173 |
-
if ($this->ipV4Start) {
|
174 |
-
return $this->ipV4Start;
|
175 |
-
}
|
176 |
-
$node = 0;
|
177 |
-
|
178 |
-
for ($i = 0; $i < 96 && $node < $this->metadata->nodeCount; ++$i) {
|
179 |
-
$node = $this->readNode($node, 0);
|
180 |
-
}
|
181 |
-
$this->ipV4Start = $node;
|
182 |
-
|
183 |
-
return $node;
|
184 |
-
}
|
185 |
-
|
186 |
-
private function readNode($nodeNumber, $index)
|
187 |
-
{
|
188 |
-
$baseOffset = $nodeNumber * $this->metadata->nodeByteSize;
|
189 |
-
|
190 |
-
// XXX - probably could condense this.
|
191 |
-
switch ($this->metadata->recordSize) {
|
192 |
-
case 24:
|
193 |
-
$bytes = Util::read($this->fileHandle, $baseOffset + $index * 3, 3);
|
194 |
-
list(, $node) = unpack('N', "\x00" . $bytes);
|
195 |
-
|
196 |
-
return $node;
|
197 |
-
case 28:
|
198 |
-
$middleByte = Util::read($this->fileHandle, $baseOffset + 3, 1);
|
199 |
-
list(, $middle) = unpack('C', $middleByte);
|
200 |
-
if ($index === 0) {
|
201 |
-
$middle = (0xF0 & $middle) >> 4;
|
202 |
-
} else {
|
203 |
-
$middle = 0x0F & $middle;
|
204 |
-
}
|
205 |
-
$bytes = Util::read($this->fileHandle, $baseOffset + $index * 4, 3);
|
206 |
-
list(, $node) = unpack('N', \chr($middle) . $bytes);
|
207 |
-
|
208 |
-
return $node;
|
209 |
-
case 32:
|
210 |
-
$bytes = Util::read($this->fileHandle, $baseOffset + $index * 4, 4);
|
211 |
-
list(, $node) = unpack('N', $bytes);
|
212 |
-
|
213 |
-
return $node;
|
214 |
-
default:
|
215 |
-
throw new InvalidDatabaseException(
|
216 |
-
'Unknown record size: '
|
217 |
-
. $this->metadata->recordSize
|
218 |
-
);
|
219 |
-
}
|
220 |
-
}
|
221 |
-
|
222 |
-
private function resolveDataPointer($pointer)
|
223 |
-
{
|
224 |
-
$resolved = $pointer - $this->metadata->nodeCount
|
225 |
-
+ $this->metadata->searchTreeSize;
|
226 |
-
if ($resolved > $this->fileSize) {
|
227 |
-
throw new InvalidDatabaseException(
|
228 |
-
"The MaxMind DB file's search tree is corrupt"
|
229 |
-
);
|
230 |
-
}
|
231 |
-
|
232 |
-
list($data) = $this->decoder->decode($resolved);
|
233 |
-
|
234 |
-
return $data;
|
235 |
-
}
|
236 |
-
|
237 |
-
/*
|
238 |
-
* This is an extremely naive but reasonably readable implementation. There
|
239 |
-
* are much faster algorithms (e.g., Boyer-Moore) for this if speed is ever
|
240 |
-
* an issue, but I suspect it won't be.
|
241 |
-
*/
|
242 |
-
private function findMetadataStart($filename)
|
243 |
-
{
|
244 |
-
$handle = $this->fileHandle;
|
245 |
-
$fstat = fstat($handle);
|
246 |
-
$fileSize = $fstat['size'];
|
247 |
-
$marker = self::$METADATA_START_MARKER;
|
248 |
-
$markerLength = self::$METADATA_START_MARKER_LENGTH;
|
249 |
-
$metadataMaxLengthExcludingMarker
|
250 |
-
= min(self::$METADATA_MAX_SIZE, $fileSize) - $markerLength;
|
251 |
-
|
252 |
-
for ($i = 0; $i <= $metadataMaxLengthExcludingMarker; ++$i) {
|
253 |
-
for ($j = 0; $j < $markerLength; ++$j) {
|
254 |
-
fseek($handle, $fileSize - $i - $j - 1);
|
255 |
-
$matchBit = fgetc($handle);
|
256 |
-
if ($matchBit !== $marker[$markerLength - $j - 1]) {
|
257 |
-
continue 2;
|
258 |
-
}
|
259 |
-
}
|
260 |
-
|
261 |
-
return $fileSize - $i;
|
262 |
-
}
|
263 |
-
throw new InvalidDatabaseException(
|
264 |
-
"Error opening database file ($filename). " .
|
265 |
-
'Is this a valid MaxMind DB file?'
|
266 |
-
);
|
267 |
-
}
|
268 |
-
|
269 |
-
/**
|
270 |
-
* @throws \InvalidArgumentException if arguments are passed to the method
|
271 |
-
* @throws \BadMethodCallException if the database has been closed
|
272 |
-
*
|
273 |
-
* @return Metadata object for the database
|
274 |
-
*/
|
275 |
-
public function metadata()
|
276 |
-
{
|
277 |
-
if (\func_num_args()) {
|
278 |
-
throw new \InvalidArgumentException(
|
279 |
-
'Method takes no arguments.'
|
280 |
-
);
|
281 |
-
}
|
282 |
-
|
283 |
-
// Not technically required, but this makes it consistent with
|
284 |
-
// C extension and it allows us to change our implementation later.
|
285 |
-
if (!\is_resource($this->fileHandle)) {
|
286 |
-
throw new \BadMethodCallException(
|
287 |
-
'Attempt to read from a closed MaxMind DB.'
|
288 |
-
);
|
289 |
-
}
|
290 |
-
|
291 |
-
return $this->metadata;
|
292 |
-
}
|
293 |
-
|
294 |
-
/**
|
295 |
-
* Closes the MaxMind DB and returns resources to the system.
|
296 |
-
*
|
297 |
-
* @throws \Exception
|
298 |
-
* if an I/O error occurs
|
299 |
-
*/
|
300 |
-
public function close()
|
301 |
-
{
|
302 |
-
if (!\is_resource($this->fileHandle)) {
|
303 |
-
throw new \BadMethodCallException(
|
304 |
-
'Attempt to close a closed MaxMind DB.'
|
305 |
-
);
|
306 |
-
}
|
307 |
-
fclose($this->fileHandle);
|
308 |
-
}
|
309 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/maxmind-db/reader/src/MaxMind/Db/Reader/Decoder.php
DELETED
@@ -1,341 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace MaxMind\Db\Reader;
|
4 |
-
|
5 |
-
// @codingStandardsIgnoreLine
|
6 |
-
// We subtract 1 from the log to protect against precision loss.
|
7 |
-
\define(__NAMESPACE__ . '\_MM_MAX_INT_BYTES', (log(PHP_INT_MAX, 2) - 1) / 8);
|
8 |
-
|
9 |
-
class Decoder
|
10 |
-
{
|
11 |
-
private $fileStream;
|
12 |
-
private $pointerBase;
|
13 |
-
private $pointerBaseByteSize;
|
14 |
-
// This is only used for unit testing
|
15 |
-
private $pointerTestHack;
|
16 |
-
private $switchByteOrder;
|
17 |
-
|
18 |
-
const _EXTENDED = 0;
|
19 |
-
const _POINTER = 1;
|
20 |
-
const _UTF8_STRING = 2;
|
21 |
-
const _DOUBLE = 3;
|
22 |
-
const _BYTES = 4;
|
23 |
-
const _UINT16 = 5;
|
24 |
-
const _UINT32 = 6;
|
25 |
-
const _MAP = 7;
|
26 |
-
const _INT32 = 8;
|
27 |
-
const _UINT64 = 9;
|
28 |
-
const _UINT128 = 10;
|
29 |
-
const _ARRAY = 11;
|
30 |
-
const _CONTAINER = 12;
|
31 |
-
const _END_MARKER = 13;
|
32 |
-
const _BOOLEAN = 14;
|
33 |
-
const _FLOAT = 15;
|
34 |
-
|
35 |
-
public function __construct(
|
36 |
-
$fileStream,
|
37 |
-
$pointerBase = 0,
|
38 |
-
$pointerTestHack = false
|
39 |
-
) {
|
40 |
-
$this->fileStream = $fileStream;
|
41 |
-
$this->pointerBase = $pointerBase;
|
42 |
-
|
43 |
-
$this->pointerBaseByteSize = $pointerBase > 0 ? log($pointerBase, 2) / 8 : 0;
|
44 |
-
$this->pointerTestHack = $pointerTestHack;
|
45 |
-
|
46 |
-
$this->switchByteOrder = $this->isPlatformLittleEndian();
|
47 |
-
}
|
48 |
-
|
49 |
-
public function decode($offset)
|
50 |
-
{
|
51 |
-
list(, $ctrlByte) = unpack(
|
52 |
-
'C',
|
53 |
-
Util::read($this->fileStream, $offset, 1)
|
54 |
-
);
|
55 |
-
++$offset;
|
56 |
-
|
57 |
-
$type = $ctrlByte >> 5;
|
58 |
-
|
59 |
-
// Pointers are a special case, we don't read the next $size bytes, we
|
60 |
-
// use the size to determine the length of the pointer and then follow
|
61 |
-
// it.
|
62 |
-
if ($type === self::_POINTER) {
|
63 |
-
list($pointer, $offset) = $this->decodePointer($ctrlByte, $offset);
|
64 |
-
|
65 |
-
// for unit testing
|
66 |
-
if ($this->pointerTestHack) {
|
67 |
-
return [$pointer];
|
68 |
-
}
|
69 |
-
|
70 |
-
list($result) = $this->decode($pointer);
|
71 |
-
|
72 |
-
return [$result, $offset];
|
73 |
-
}
|
74 |
-
|
75 |
-
if ($type === self::_EXTENDED) {
|
76 |
-
list(, $nextByte) = unpack(
|
77 |
-
'C',
|
78 |
-
Util::read($this->fileStream, $offset, 1)
|
79 |
-
);
|
80 |
-
|
81 |
-
$type = $nextByte + 7;
|
82 |
-
|
83 |
-
if ($type < 8) {
|
84 |
-
throw new InvalidDatabaseException(
|
85 |
-
'Something went horribly wrong in the decoder. An extended type '
|
86 |
-
. 'resolved to a type number < 8 ('
|
87 |
-
. $type
|
88 |
-
. ')'
|
89 |
-
);
|
90 |
-
}
|
91 |
-
|
92 |
-
++$offset;
|
93 |
-
}
|
94 |
-
|
95 |
-
list($size, $offset) = $this->sizeFromCtrlByte($ctrlByte, $offset);
|
96 |
-
|
97 |
-
return $this->decodeByType($type, $offset, $size);
|
98 |
-
}
|
99 |
-
|
100 |
-
private function decodeByType($type, $offset, $size)
|
101 |
-
{
|
102 |
-
switch ($type) {
|
103 |
-
case self::_MAP:
|
104 |
-
return $this->decodeMap($size, $offset);
|
105 |
-
case self::_ARRAY:
|
106 |
-
return $this->decodeArray($size, $offset);
|
107 |
-
case self::_BOOLEAN:
|
108 |
-
return [$this->decodeBoolean($size), $offset];
|
109 |
-
}
|
110 |
-
|
111 |
-
$newOffset = $offset + $size;
|
112 |
-
$bytes = Util::read($this->fileStream, $offset, $size);
|
113 |
-
switch ($type) {
|
114 |
-
case self::_BYTES:
|
115 |
-
case self::_UTF8_STRING:
|
116 |
-
return [$bytes, $newOffset];
|
117 |
-
case self::_DOUBLE:
|
118 |
-
$this->verifySize(8, $size);
|
119 |
-
|
120 |
-
return [$this->decodeDouble($bytes), $newOffset];
|
121 |
-
case self::_FLOAT:
|
122 |
-
$this->verifySize(4, $size);
|
123 |
-
|
124 |
-
return [$this->decodeFloat($bytes), $newOffset];
|
125 |
-
case self::_INT32:
|
126 |
-
return [$this->decodeInt32($bytes, $size), $newOffset];
|
127 |
-
case self::_UINT16:
|
128 |
-
case self::_UINT32:
|
129 |
-
case self::_UINT64:
|
130 |
-
case self::_UINT128:
|
131 |
-
return [$this->decodeUint($bytes, $size), $newOffset];
|
132 |
-
default:
|
133 |
-
throw new InvalidDatabaseException(
|
134 |
-
'Unknown or unexpected type: ' . $type
|
135 |
-
);
|
136 |
-
}
|
137 |
-
}
|
138 |
-
|
139 |
-
private function verifySize($expected, $actual)
|
140 |
-
{
|
141 |
-
if ($expected !== $actual) {
|
142 |
-
throw new InvalidDatabaseException(
|
143 |
-
"The MaxMind DB file's data section contains bad data (unknown data type or corrupt data)"
|
144 |
-
);
|
145 |
-
}
|
146 |
-
}
|
147 |
-
|
148 |
-
private function decodeArray($size, $offset)
|
149 |
-
{
|
150 |
-
$array = [];
|
151 |
-
|
152 |
-
for ($i = 0; $i < $size; ++$i) {
|
153 |
-
list($value, $offset) = $this->decode($offset);
|
154 |
-
array_push($array, $value);
|
155 |
-
}
|
156 |
-
|
157 |
-
return [$array, $offset];
|
158 |
-
}
|
159 |
-
|
160 |
-
private function decodeBoolean($size)
|
161 |
-
{
|
162 |
-
return $size === 0 ? false : true;
|
163 |
-
}
|
164 |
-
|
165 |
-
private function decodeDouble($bits)
|
166 |
-
{
|
167 |
-
// This assumes IEEE 754 doubles, but most (all?) modern platforms
|
168 |
-
// use them.
|
169 |
-
//
|
170 |
-
// We are not using the "E" format as that was only added in
|
171 |
-
// 7.0.15 and 7.1.1. As such, we must switch byte order on
|
172 |
-
// little endian machines.
|
173 |
-
list(, $double) = unpack('d', $this->maybeSwitchByteOrder($bits));
|
174 |
-
|
175 |
-
return $double;
|
176 |
-
}
|
177 |
-
|
178 |
-
private function decodeFloat($bits)
|
179 |
-
{
|
180 |
-
// This assumes IEEE 754 floats, but most (all?) modern platforms
|
181 |
-
// use them.
|
182 |
-
//
|
183 |
-
// We are not using the "G" format as that was only added in
|
184 |
-
// 7.0.15 and 7.1.1. As such, we must switch byte order on
|
185 |
-
// little endian machines.
|
186 |
-
list(, $float) = unpack('f', $this->maybeSwitchByteOrder($bits));
|
187 |
-
|
188 |
-
return $float;
|
189 |
-
}
|
190 |
-
|
191 |
-
private function decodeInt32($bytes, $size)
|
192 |
-
{
|
193 |
-
switch ($size) {
|
194 |
-
case 0:
|
195 |
-
return 0;
|
196 |
-
case 1:
|
197 |
-
case 2:
|
198 |
-
case 3:
|
199 |
-
$bytes = str_pad($bytes, 4, "\x00", STR_PAD_LEFT);
|
200 |
-
break;
|
201 |
-
case 4:
|
202 |
-
break;
|
203 |
-
default:
|
204 |
-
throw new InvalidDatabaseException(
|
205 |
-
"The MaxMind DB file's data section contains bad data (unknown data type or corrupt data)"
|
206 |
-
);
|
207 |
-
}
|
208 |
-
|
209 |
-
list(, $int) = unpack('l', $this->maybeSwitchByteOrder($bytes));
|
210 |
-
|
211 |
-
return $int;
|
212 |
-
}
|
213 |
-
|
214 |
-
private function decodeMap($size, $offset)
|
215 |
-
{
|
216 |
-
$map = [];
|
217 |
-
|
218 |
-
for ($i = 0; $i < $size; ++$i) {
|
219 |
-
list($key, $offset) = $this->decode($offset);
|
220 |
-
list($value, $offset) = $this->decode($offset);
|
221 |
-
$map[$key] = $value;
|
222 |
-
}
|
223 |
-
|
224 |
-
return [$map, $offset];
|
225 |
-
}
|
226 |
-
|
227 |
-
private function decodePointer($ctrlByte, $offset)
|
228 |
-
{
|
229 |
-
$pointerSize = (($ctrlByte >> 3) & 0x3) + 1;
|
230 |
-
|
231 |
-
$buffer = Util::read($this->fileStream, $offset, $pointerSize);
|
232 |
-
$offset = $offset + $pointerSize;
|
233 |
-
|
234 |
-
switch ($pointerSize) {
|
235 |
-
case 1:
|
236 |
-
$packed = (pack('C', $ctrlByte & 0x7)) . $buffer;
|
237 |
-
list(, $pointer) = unpack('n', $packed);
|
238 |
-
$pointer += $this->pointerBase;
|
239 |
-
break;
|
240 |
-
case 2:
|
241 |
-
$packed = "\x00" . (pack('C', $ctrlByte & 0x7)) . $buffer;
|
242 |
-
list(, $pointer) = unpack('N', $packed);
|
243 |
-
$pointer += $this->pointerBase + 2048;
|
244 |
-
break;
|
245 |
-
case 3:
|
246 |
-
$packed = (pack('C', $ctrlByte & 0x7)) . $buffer;
|
247 |
-
|
248 |
-
// It is safe to use 'N' here, even on 32 bit machines as the
|
249 |
-
// first bit is 0.
|
250 |
-
list(, $pointer) = unpack('N', $packed);
|
251 |
-
$pointer += $this->pointerBase + 526336;
|
252 |
-
break;
|
253 |
-
case 4:
|
254 |
-
// We cannot use unpack here as we might overflow on 32 bit
|
255 |
-
// machines
|
256 |
-
$pointerOffset = $this->decodeUint($buffer, $pointerSize);
|
257 |
-
|
258 |
-
$byteLength = $pointerSize + $this->pointerBaseByteSize;
|
259 |
-
|
260 |
-
if ($byteLength <= _MM_MAX_INT_BYTES) {
|
261 |
-
$pointer = $pointerOffset + $this->pointerBase;
|
262 |
-
} elseif (\extension_loaded('gmp')) {
|
263 |
-
$pointer = gmp_strval(gmp_add($pointerOffset, $this->pointerBase));
|
264 |
-
} elseif (\extension_loaded('bcmath')) {
|
265 |
-
$pointer = bcadd($pointerOffset, $this->pointerBase);
|
266 |
-
} else {
|
267 |
-
throw new \RuntimeException(
|
268 |
-
'The gmp or bcmath extension must be installed to read this database.'
|
269 |
-
);
|
270 |
-
}
|
271 |
-
}
|
272 |
-
|
273 |
-
return [$pointer, $offset];
|
274 |
-
}
|
275 |
-
|
276 |
-
private function decodeUint($bytes, $byteLength)
|
277 |
-
{
|
278 |
-
if ($byteLength === 0) {
|
279 |
-
return 0;
|
280 |
-
}
|
281 |
-
|
282 |
-
$integer = 0;
|
283 |
-
|
284 |
-
for ($i = 0; $i < $byteLength; ++$i) {
|
285 |
-
$part = \ord($bytes[$i]);
|
286 |
-
|
287 |
-
// We only use gmp or bcmath if the final value is too big
|
288 |
-
if ($byteLength <= _MM_MAX_INT_BYTES) {
|
289 |
-
$integer = ($integer << 8) + $part;
|
290 |
-
} elseif (\extension_loaded('gmp')) {
|
291 |
-
$integer = gmp_strval(gmp_add(gmp_mul($integer, 256), $part));
|
292 |
-
} elseif (\extension_loaded('bcmath')) {
|
293 |
-
$integer = bcadd(bcmul($integer, 256), $part);
|
294 |
-
} else {
|
295 |
-
throw new \RuntimeException(
|
296 |
-
'The gmp or bcmath extension must be installed to read this database.'
|
297 |
-
);
|
298 |
-
}
|
299 |
-
}
|
300 |
-
|
301 |
-
return $integer;
|
302 |
-
}
|
303 |
-
|
304 |
-
private function sizeFromCtrlByte($ctrlByte, $offset)
|
305 |
-
{
|
306 |
-
$size = $ctrlByte & 0x1f;
|
307 |
-
|
308 |
-
if ($size < 29) {
|
309 |
-
return [$size, $offset];
|
310 |
-
}
|
311 |
-
|
312 |
-
$bytesToRead = $size - 28;
|
313 |
-
$bytes = Util::read($this->fileStream, $offset, $bytesToRead);
|
314 |
-
|
315 |
-
if ($size === 29) {
|
316 |
-
$size = 29 + \ord($bytes);
|
317 |
-
} elseif ($size === 30) {
|
318 |
-
list(, $adjust) = unpack('n', $bytes);
|
319 |
-
$size = 285 + $adjust;
|
320 |
-
} elseif ($size > 30) {
|
321 |
-
list(, $adjust) = unpack('N', "\x00" . $bytes);
|
322 |
-
$size = ($adjust & (0x0FFFFFFF >> (32 - (8 * $bytesToRead))))
|
323 |
-
+ 65821;
|
324 |
-
}
|
325 |
-
|
326 |
-
return [$size, $offset + $bytesToRead];
|
327 |
-
}
|
328 |
-
|
329 |
-
private function maybeSwitchByteOrder($bytes)
|
330 |
-
{
|
331 |
-
return $this->switchByteOrder ? strrev($bytes) : $bytes;
|
332 |
-
}
|
333 |
-
|
334 |
-
private function isPlatformLittleEndian()
|
335 |
-
{
|
336 |
-
$testint = 0x00FF;
|
337 |
-
$packed = pack('S', $testint);
|
338 |
-
|
339 |
-
return $testint === current(unpack('v', $packed));
|
340 |
-
}
|
341 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/maxmind-db/reader/src/MaxMind/Db/Reader/InvalidDatabaseException.php
DELETED
@@ -1,10 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace MaxMind\Db\Reader;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* This class should be thrown when unexpected data is found in the database.
|
7 |
-
*/
|
8 |
-
class InvalidDatabaseException extends \Exception
|
9 |
-
{
|
10 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/maxmind-db/reader/src/MaxMind/Db/Reader/Metadata.php
DELETED
@@ -1,69 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace MaxMind\Db\Reader;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* This class provides the metadata for the MaxMind DB file.
|
7 |
-
*
|
8 |
-
* @property int nodeCount This is an unsigned 32-bit integer indicating
|
9 |
-
* the number of nodes in the search tree.
|
10 |
-
* @property int recordSize This is an unsigned 16-bit integer. It
|
11 |
-
* indicates the number of bits in a record in the search tree. Note that each
|
12 |
-
* node consists of two records.
|
13 |
-
* @property int ipVersion This is an unsigned 16-bit integer which is
|
14 |
-
* always 4 or 6. It indicates whether the database contains IPv4 or IPv6
|
15 |
-
* address data.
|
16 |
-
* @property string databaseType This is a string that indicates the structure
|
17 |
-
* of each data record associated with an IP address. The actual definition of
|
18 |
-
* these structures is left up to the database creator.
|
19 |
-
* @property array languages An array of strings, each of which is a language
|
20 |
-
* code. A given record may contain data items that have been localized to
|
21 |
-
* some or all of these languages. This may be undefined.
|
22 |
-
* @property int binaryFormatMajorVersion This is an unsigned 16-bit
|
23 |
-
* integer indicating the major version number for the database's binary
|
24 |
-
* format.
|
25 |
-
* @property int binaryFormatMinorVersion This is an unsigned 16-bit
|
26 |
-
* integer indicating the minor version number for the database's binary format.
|
27 |
-
* @property int buildEpoch This is an unsigned 64-bit integer that
|
28 |
-
* contains the database build timestamp as a Unix epoch value.
|
29 |
-
* @property array description This key will always point to a map
|
30 |
-
* (associative array). The keys of that map will be language codes, and the
|
31 |
-
* values will be a description in that language as a UTF-8 string. May be
|
32 |
-
* undefined for some databases.
|
33 |
-
*/
|
34 |
-
class Metadata
|
35 |
-
{
|
36 |
-
private $binaryFormatMajorVersion;
|
37 |
-
private $binaryFormatMinorVersion;
|
38 |
-
private $buildEpoch;
|
39 |
-
private $databaseType;
|
40 |
-
private $description;
|
41 |
-
private $ipVersion;
|
42 |
-
private $languages;
|
43 |
-
private $nodeByteSize;
|
44 |
-
private $nodeCount;
|
45 |
-
private $recordSize;
|
46 |
-
private $searchTreeSize;
|
47 |
-
|
48 |
-
public function __construct($metadata)
|
49 |
-
{
|
50 |
-
$this->binaryFormatMajorVersion =
|
51 |
-
$metadata['binary_format_major_version'];
|
52 |
-
$this->binaryFormatMinorVersion =
|
53 |
-
$metadata['binary_format_minor_version'];
|
54 |
-
$this->buildEpoch = $metadata['build_epoch'];
|
55 |
-
$this->databaseType = $metadata['database_type'];
|
56 |
-
$this->languages = $metadata['languages'];
|
57 |
-
$this->description = $metadata['description'];
|
58 |
-
$this->ipVersion = $metadata['ip_version'];
|
59 |
-
$this->nodeCount = $metadata['node_count'];
|
60 |
-
$this->recordSize = $metadata['record_size'];
|
61 |
-
$this->nodeByteSize = $this->recordSize / 4;
|
62 |
-
$this->searchTreeSize = $this->nodeCount * $this->nodeByteSize;
|
63 |
-
}
|
64 |
-
|
65 |
-
public function __get($var)
|
66 |
-
{
|
67 |
-
return $this->$var;
|
68 |
-
}
|
69 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/maxmind-db/reader/src/MaxMind/Db/Reader/Util.php
DELETED
@@ -1,26 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace MaxMind\Db\Reader;
|
4 |
-
|
5 |
-
class Util
|
6 |
-
{
|
7 |
-
public static function read($stream, $offset, $numberOfBytes)
|
8 |
-
{
|
9 |
-
if ($numberOfBytes === 0) {
|
10 |
-
return '';
|
11 |
-
}
|
12 |
-
if (fseek($stream, $offset) === 0) {
|
13 |
-
$value = fread($stream, $numberOfBytes);
|
14 |
-
|
15 |
-
// We check that the number of bytes read is equal to the number
|
16 |
-
// asked for. We use ftell as getting the length of $value is
|
17 |
-
// much slower.
|
18 |
-
if (ftell($stream) - $offset === $numberOfBytes) {
|
19 |
-
return $value;
|
20 |
-
}
|
21 |
-
}
|
22 |
-
throw new InvalidDatabaseException(
|
23 |
-
'The MaxMind DB file contains bad data'
|
24 |
-
);
|
25 |
-
}
|
26 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/maxmind/web-service-common/LICENSE
DELETED
@@ -1,202 +0,0 @@
|
|
1 |
-
|
2 |
-
Apache License
|
3 |
-
Version 2.0, January 2004
|
4 |
-
http://www.apache.org/licenses/
|
5 |
-
|
6 |
-
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
7 |
-
|
8 |
-
1. Definitions.
|
9 |
-
|
10 |
-
"License" shall mean the terms and conditions for use, reproduction,
|
11 |
-
and distribution as defined by Sections 1 through 9 of this document.
|
12 |
-
|
13 |
-
"Licensor" shall mean the copyright owner or entity authorized by
|
14 |
-
the copyright owner that is granting the License.
|
15 |
-
|
16 |
-
"Legal Entity" shall mean the union of the acting entity and all
|
17 |
-
other entities that control, are controlled by, or are under common
|
18 |
-
control with that entity. For the purposes of this definition,
|
19 |
-
"control" means (i) the power, direct or indirect, to cause the
|
20 |
-
direction or management of such entity, whether by contract or
|
21 |
-
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
22 |
-
outstanding shares, or (iii) beneficial ownership of such entity.
|
23 |
-
|
24 |
-
"You" (or "Your") shall mean an individual or Legal Entity
|
25 |
-
exercising permissions granted by this License.
|
26 |
-
|
27 |
-
"Source" form shall mean the preferred form for making modifications,
|
28 |
-
including but not limited to software source code, documentation
|
29 |
-
source, and configuration files.
|
30 |
-
|
31 |
-
"Object" form shall mean any form resulting from mechanical
|
32 |
-
transformation or translation of a Source form, including but
|
33 |
-
not limited to compiled object code, generated documentation,
|
34 |
-
and conversions to other media types.
|
35 |
-
|
36 |
-
"Work" shall mean the work of authorship, whether in Source or
|
37 |
-
Object form, made available under the License, as indicated by a
|
38 |
-
copyright notice that is included in or attached to the work
|
39 |
-
(an example is provided in the Appendix below).
|
40 |
-
|
41 |
-
"Derivative Works" shall mean any work, whether in Source or Object
|
42 |
-
form, that is based on (or derived from) the Work and for which the
|
43 |
-
editorial revisions, annotations, elaborations, or other modifications
|
44 |
-
represent, as a whole, an original work of authorship. For the purposes
|
45 |
-
of this License, Derivative Works shall not include works that remain
|
46 |
-
separable from, or merely link (or bind by name) to the interfaces of,
|
47 |
-
the Work and Derivative Works thereof.
|
48 |
-
|
49 |
-
"Contribution" shall mean any work of authorship, including
|
50 |
-
the original version of the Work and any modifications or additions
|
51 |
-
to that Work or Derivative Works thereof, that is intentionally
|
52 |
-
submitted to Licensor for inclusion in the Work by the copyright owner
|
53 |
-
or by an individual or Legal Entity authorized to submit on behalf of
|
54 |
-
the copyright owner. For the purposes of this definition, "submitted"
|
55 |
-
means any form of electronic, verbal, or written communication sent
|
56 |
-
to the Licensor or its representatives, including but not limited to
|
57 |
-
communication on electronic mailing lists, source code control systems,
|
58 |
-
and issue tracking systems that are managed by, or on behalf of, the
|
59 |
-
Licensor for the purpose of discussing and improving the Work, but
|
60 |
-
excluding communication that is conspicuously marked or otherwise
|
61 |
-
designated in writing by the copyright owner as "Not a Contribution."
|
62 |
-
|
63 |
-
"Contributor" shall mean Licensor and any individual or Legal Entity
|
64 |
-
on behalf of whom a Contribution has been received by Licensor and
|
65 |
-
subsequently incorporated within the Work.
|
66 |
-
|
67 |
-
2. Grant of Copyright License. Subject to the terms and conditions of
|
68 |
-
this License, each Contributor hereby grants to You a perpetual,
|
69 |
-
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
70 |
-
copyright license to reproduce, prepare Derivative Works of,
|
71 |
-
publicly display, publicly perform, sublicense, and distribute the
|
72 |
-
Work and such Derivative Works in Source or Object form.
|
73 |
-
|
74 |
-
3. Grant of Patent License. Subject to the terms and conditions of
|
75 |
-
this License, each Contributor hereby grants to You a perpetual,
|
76 |
-
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
77 |
-
(except as stated in this section) patent license to make, have made,
|
78 |
-
use, offer to sell, sell, import, and otherwise transfer the Work,
|
79 |
-
where such license applies only to those patent claims licensable
|
80 |
-
by such Contributor that are necessarily infringed by their
|
81 |
-
Contribution(s) alone or by combination of their Contribution(s)
|
82 |
-
with the Work to which such Contribution(s) was submitted. If You
|
83 |
-
institute patent litigation against any entity (including a
|
84 |
-
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
85 |
-
or a Contribution incorporated within the Work constitutes direct
|
86 |
-
or contributory patent infringement, then any patent licenses
|
87 |
-
granted to You under this License for that Work shall terminate
|
88 |
-
as of the date such litigation is filed.
|
89 |
-
|
90 |
-
4. Redistribution. You may reproduce and distribute copies of the
|
91 |
-
Work or Derivative Works thereof in any medium, with or without
|
92 |
-
modifications, and in Source or Object form, provided that You
|
93 |
-
meet the following conditions:
|
94 |
-
|
95 |
-
(a) You must give any other recipients of the Work or
|
96 |
-
Derivative Works a copy of this License; and
|
97 |
-
|
98 |
-
(b) You must cause any modified files to carry prominent notices
|
99 |
-
stating that You changed the files; and
|
100 |
-
|
101 |
-
(c) You must retain, in the Source form of any Derivative Works
|
102 |
-
that You distribute, all copyright, patent, trademark, and
|
103 |
-
attribution notices from the Source form of the Work,
|
104 |
-
excluding those notices that do not pertain to any part of
|
105 |
-
the Derivative Works; and
|
106 |
-
|
107 |
-
(d) If the Work includes a "NOTICE" text file as part of its
|
108 |
-
distribution, then any Derivative Works that You distribute must
|
109 |
-
include a readable copy of the attribution notices contained
|
110 |
-
within such NOTICE file, excluding those notices that do not
|
111 |
-
pertain to any part of the Derivative Works, in at least one
|
112 |
-
of the following places: within a NOTICE text file distributed
|
113 |
-
as part of the Derivative Works; within the Source form or
|
114 |
-
documentation, if provided along with the Derivative Works; or,
|
115 |
-
within a display generated by the Derivative Works, if and
|
116 |
-
wherever such third-party notices normally appear. The contents
|
117 |
-
of the NOTICE file are for informational purposes only and
|
118 |
-
do not modify the License. You may add Your own attribution
|
119 |
-
notices within Derivative Works that You distribute, alongside
|
120 |
-
or as an addendum to the NOTICE text from the Work, provided
|
121 |
-
that such additional attribution notices cannot be construed
|
122 |
-
as modifying the License.
|
123 |
-
|
124 |
-
You may add Your own copyright statement to Your modifications and
|
125 |
-
may provide additional or different license terms and conditions
|
126 |
-
for use, reproduction, or distribution of Your modifications, or
|
127 |
-
for any such Derivative Works as a whole, provided Your use,
|
128 |
-
reproduction, and distribution of the Work otherwise complies with
|
129 |
-
the conditions stated in this License.
|
130 |
-
|
131 |
-
5. Submission of Contributions. Unless You explicitly state otherwise,
|
132 |
-
any Contribution intentionally submitted for inclusion in the Work
|
133 |
-
by You to the Licensor shall be under the terms and conditions of
|
134 |
-
this License, without any additional terms or conditions.
|
135 |
-
Notwithstanding the above, nothing herein shall supersede or modify
|
136 |
-
the terms of any separate license agreement you may have executed
|
137 |
-
with Licensor regarding such Contributions.
|
138 |
-
|
139 |
-
6. Trademarks. This License does not grant permission to use the trade
|
140 |
-
names, trademarks, service marks, or product names of the Licensor,
|
141 |
-
except as required for reasonable and customary use in describing the
|
142 |
-
origin of the Work and reproducing the content of the NOTICE file.
|
143 |
-
|
144 |
-
7. Disclaimer of Warranty. Unless required by applicable law or
|
145 |
-
agreed to in writing, Licensor provides the Work (and each
|
146 |
-
Contributor provides its Contributions) on an "AS IS" BASIS,
|
147 |
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
148 |
-
implied, including, without limitation, any warranties or conditions
|
149 |
-
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
150 |
-
PARTICULAR PURPOSE. You are solely responsible for determining the
|
151 |
-
appropriateness of using or redistributing the Work and assume any
|
152 |
-
risks associated with Your exercise of permissions under this License.
|
153 |
-
|
154 |
-
8. Limitation of Liability. In no event and under no legal theory,
|
155 |
-
whether in tort (including negligence), contract, or otherwise,
|
156 |
-
unless required by applicable law (such as deliberate and grossly
|
157 |
-
negligent acts) or agreed to in writing, shall any Contributor be
|
158 |
-
liable to You for damages, including any direct, indirect, special,
|
159 |
-
incidental, or consequential damages of any character arising as a
|
160 |
-
result of this License or out of the use or inability to use the
|
161 |
-
Work (including but not limited to damages for loss of goodwill,
|
162 |
-
work stoppage, computer failure or malfunction, or any and all
|
163 |
-
other commercial damages or losses), even if such Contributor
|
164 |
-
has been advised of the possibility of such damages.
|
165 |
-
|
166 |
-
9. Accepting Warranty or Additional Liability. While redistributing
|
167 |
-
the Work or Derivative Works thereof, You may choose to offer,
|
168 |
-
and charge a fee for, acceptance of support, warranty, indemnity,
|
169 |
-
or other liability obligations and/or rights consistent with this
|
170 |
-
License. However, in accepting such obligations, You may act only
|
171 |
-
on Your own behalf and on Your sole responsibility, not on behalf
|
172 |
-
of any other Contributor, and only if You agree to indemnify,
|
173 |
-
defend, and hold each Contributor harmless for any liability
|
174 |
-
incurred by, or claims asserted against, such Contributor by reason
|
175 |
-
of your accepting any such warranty or additional liability.
|
176 |
-
|
177 |
-
END OF TERMS AND CONDITIONS
|
178 |
-
|
179 |
-
APPENDIX: How to apply the Apache License to your work.
|
180 |
-
|
181 |
-
To apply the Apache License to your work, attach the following
|
182 |
-
boilerplate notice, with the fields enclosed by brackets "[]"
|
183 |
-
replaced with your own identifying information. (Don't include
|
184 |
-
the brackets!) The text should be enclosed in the appropriate
|
185 |
-
comment syntax for the file format. We also recommend that a
|
186 |
-
file or class name and description of purpose be included on the
|
187 |
-
same "printed page" as the copyright notice for easier
|
188 |
-
identification within third-party archives.
|
189 |
-
|
190 |
-
Copyright [yyyy] [name of copyright owner]
|
191 |
-
|
192 |
-
Licensed under the Apache License, Version 2.0 (the "License");
|
193 |
-
you may not use this file except in compliance with the License.
|
194 |
-
You may obtain a copy of the License at
|
195 |
-
|
196 |
-
http://www.apache.org/licenses/LICENSE-2.0
|
197 |
-
|
198 |
-
Unless required by applicable law or agreed to in writing, software
|
199 |
-
distributed under the License is distributed on an "AS IS" BASIS,
|
200 |
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
201 |
-
See the License for the specific language governing permissions and
|
202 |
-
limitations under the License.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/maxmind/web-service-common/src/Exception/AuthenticationException.php
DELETED
@@ -1,10 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace MaxMind\Exception;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* This class represents an error authenticating.
|
7 |
-
*/
|
8 |
-
class AuthenticationException extends InvalidRequestException
|
9 |
-
{
|
10 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/maxmind/web-service-common/src/Exception/HttpException.php
DELETED
@@ -1,40 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace MaxMind\Exception;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* This class represents an HTTP transport error.
|
7 |
-
*/
|
8 |
-
class HttpException extends WebServiceException
|
9 |
-
{
|
10 |
-
/**
|
11 |
-
* The URI queried.
|
12 |
-
*/
|
13 |
-
private $uri;
|
14 |
-
|
15 |
-
/**
|
16 |
-
* @param string $message a message describing the error
|
17 |
-
* @param int $httpStatus the HTTP status code of the response
|
18 |
-
* @param string $uri the URI used in the request
|
19 |
-
* @param \Exception $previous the previous exception, if any
|
20 |
-
*/
|
21 |
-
public function __construct(
|
22 |
-
$message,
|
23 |
-
$httpStatus,
|
24 |
-
$uri,
|
25 |
-
\Exception $previous = null
|
26 |
-
) {
|
27 |
-
$this->uri = $uri;
|
28 |
-
parent::__construct($message, $httpStatus, $previous);
|
29 |
-
}
|
30 |
-
|
31 |
-
public function getUri()
|
32 |
-
{
|
33 |
-
return $this->uri;
|
34 |
-
}
|
35 |
-
|
36 |
-
public function getStatusCode()
|
37 |
-
{
|
38 |
-
return $this->getCode();
|
39 |
-
}
|
40 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/maxmind/web-service-common/src/Exception/InsufficientFundsException.php
DELETED
@@ -1,10 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace MaxMind\Exception;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Thrown when the account is out of credits.
|
7 |
-
*/
|
8 |
-
class InsufficientFundsException extends InvalidRequestException
|
9 |
-
{
|
10 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/maxmind/web-service-common/src/Exception/InvalidInputException.php
DELETED
@@ -1,12 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace MaxMind\Exception;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* This class represents an error in creating the request to be sent to the
|
7 |
-
* web service. For example, if the array cannot be encoded as JSON or if there
|
8 |
-
* is a missing or invalid field.
|
9 |
-
*/
|
10 |
-
class InvalidInputException extends WebServiceException
|
11 |
-
{
|
12 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/maxmind/web-service-common/src/Exception/InvalidRequestException.php
DELETED
@@ -1,37 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace MaxMind\Exception;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Thrown when a MaxMind web service returns an error relating to the request.
|
7 |
-
*/
|
8 |
-
class InvalidRequestException extends HttpException
|
9 |
-
{
|
10 |
-
/**
|
11 |
-
* The code returned by the MaxMind web service.
|
12 |
-
*/
|
13 |
-
private $error;
|
14 |
-
|
15 |
-
/**
|
16 |
-
* @param string $message the exception message
|
17 |
-
* @param int $error the error code returned by the MaxMind web service
|
18 |
-
* @param int $httpStatus the HTTP status code of the response
|
19 |
-
* @param string $uri the URI queries
|
20 |
-
* @param \Exception $previous the previous exception, if any
|
21 |
-
*/
|
22 |
-
public function __construct(
|
23 |
-
$message,
|
24 |
-
$error,
|
25 |
-
$httpStatus,
|
26 |
-
$uri,
|
27 |
-
\Exception $previous = null
|
28 |
-
) {
|
29 |
-
$this->error = $error;
|
30 |
-
parent::__construct($message, $httpStatus, $uri, $previous);
|
31 |
-
}
|
32 |
-
|
33 |
-
public function getErrorCode()
|
34 |
-
{
|
35 |
-
return $this->error;
|
36 |
-
}
|
37 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/maxmind/web-service-common/src/Exception/IpAddressNotFoundException.php
DELETED
@@ -1,7 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace MaxMind\Exception;
|
4 |
-
|
5 |
-
class IpAddressNotFoundException extends InvalidRequestException
|
6 |
-
{
|
7 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/maxmind/web-service-common/src/Exception/PermissionRequiredException.php
DELETED
@@ -1,10 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace MaxMind\Exception;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* This exception is thrown when the service requires permission to access.
|
7 |
-
*/
|
8 |
-
class PermissionRequiredException extends InvalidRequestException
|
9 |
-
{
|
10 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/maxmind/web-service-common/src/Exception/WebServiceException.php
DELETED
@@ -1,10 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace MaxMind\Exception;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* This class represents a generic web service error.
|
7 |
-
*/
|
8 |
-
class WebServiceException extends \Exception
|
9 |
-
{
|
10 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/maxmind/web-service-common/src/WebService/Client.php
DELETED
@@ -1,472 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace MaxMind\WebService;
|
4 |
-
|
5 |
-
use Composer\CaBundle\CaBundle;
|
6 |
-
use MaxMind\Exception\AuthenticationException;
|
7 |
-
use MaxMind\Exception\HttpException;
|
8 |
-
use MaxMind\Exception\InsufficientFundsException;
|
9 |
-
use MaxMind\Exception\InvalidInputException;
|
10 |
-
use MaxMind\Exception\InvalidRequestException;
|
11 |
-
use MaxMind\Exception\IpAddressNotFoundException;
|
12 |
-
use MaxMind\Exception\PermissionRequiredException;
|
13 |
-
use MaxMind\Exception\WebServiceException;
|
14 |
-
use MaxMind\WebService\Http\RequestFactory;
|
15 |
-
|
16 |
-
/**
|
17 |
-
* This class is not intended to be used directly by an end-user of a
|
18 |
-
* MaxMind web service. Please use the appropriate client API for the service
|
19 |
-
* that you are using.
|
20 |
-
*
|
21 |
-
* @internal
|
22 |
-
*/
|
23 |
-
class Client
|
24 |
-
{
|
25 |
-
const VERSION = '0.2.0';
|
26 |
-
|
27 |
-
private $caBundle;
|
28 |
-
private $connectTimeout;
|
29 |
-
private $host = 'api.maxmind.com';
|
30 |
-
private $httpRequestFactory;
|
31 |
-
private $licenseKey;
|
32 |
-
private $proxy;
|
33 |
-
private $timeout;
|
34 |
-
private $userAgentPrefix;
|
35 |
-
private $accountId;
|
36 |
-
|
37 |
-
/**
|
38 |
-
* @param int $accountId your MaxMind account ID
|
39 |
-
* @param string $licenseKey your MaxMind license key
|
40 |
-
* @param array $options an array of options. Possible keys:
|
41 |
-
* * `host` - The host to use when connecting to the web service.
|
42 |
-
* * `userAgent` - The prefix of the User-Agent to use in the request.
|
43 |
-
* * `caBundle` - The bundle of CA root certificates to use in the request.
|
44 |
-
* * `connectTimeout` - The connect timeout to use for the request.
|
45 |
-
* * `timeout` - The timeout to use for the request.
|
46 |
-
* * `proxy` - The HTTP proxy to use. May include a schema, port,
|
47 |
-
* username, and password, e.g., `http://username:password@127.0.0.1:10`.
|
48 |
-
*/
|
49 |
-
public function __construct(
|
50 |
-
$accountId,
|
51 |
-
$licenseKey,
|
52 |
-
$options = []
|
53 |
-
) {
|
54 |
-
$this->accountId = $accountId;
|
55 |
-
$this->licenseKey = $licenseKey;
|
56 |
-
|
57 |
-
$this->httpRequestFactory = isset($options['httpRequestFactory'])
|
58 |
-
? $options['httpRequestFactory']
|
59 |
-
: new RequestFactory();
|
60 |
-
|
61 |
-
if (isset($options['host'])) {
|
62 |
-
$this->host = $options['host'];
|
63 |
-
}
|
64 |
-
if (isset($options['userAgent'])) {
|
65 |
-
$this->userAgentPrefix = $options['userAgent'] . ' ';
|
66 |
-
}
|
67 |
-
|
68 |
-
$this->caBundle = isset($options['caBundle']) ?
|
69 |
-
$this->caBundle = $options['caBundle'] : $this->getCaBundle();
|
70 |
-
|
71 |
-
if (isset($options['connectTimeout'])) {
|
72 |
-
$this->connectTimeout = $options['connectTimeout'];
|
73 |
-
}
|
74 |
-
if (isset($options['timeout'])) {
|
75 |
-
$this->timeout = $options['timeout'];
|
76 |
-
}
|
77 |
-
|
78 |
-
if (isset($options['proxy'])) {
|
79 |
-
$this->proxy = $options['proxy'];
|
80 |
-
}
|
81 |
-
}
|
82 |
-
|
83 |
-
/**
|
84 |
-
* @param string $service name of the service querying
|
85 |
-
* @param string $path the URI path to use
|
86 |
-
* @param array $input the data to be posted as JSON
|
87 |
-
*
|
88 |
-
* @throws InvalidInputException when the request has missing or invalid
|
89 |
-
* data
|
90 |
-
* @throws AuthenticationException when there is an issue authenticating the
|
91 |
-
* request
|
92 |
-
* @throws InsufficientFundsException when your account is out of funds
|
93 |
-
* @throws InvalidRequestException when the request is invalid for some
|
94 |
-
* other reason, e.g., invalid JSON in the POST.
|
95 |
-
* @throws HttpException when an unexpected HTTP error occurs
|
96 |
-
* @throws WebServiceException when some other error occurs. This also
|
97 |
-
* serves as the base class for the above exceptions.
|
98 |
-
*
|
99 |
-
* @return array The decoded content of a successful response
|
100 |
-
*/
|
101 |
-
public function post($service, $path, $input)
|
102 |
-
{
|
103 |
-
$body = json_encode($input);
|
104 |
-
if ($body === false) {
|
105 |
-
throw new InvalidInputException(
|
106 |
-
'Error encoding input as JSON: '
|
107 |
-
. $this->jsonErrorDescription()
|
108 |
-
);
|
109 |
-
}
|
110 |
-
|
111 |
-
$request = $this->createRequest(
|
112 |
-
$path,
|
113 |
-
['Content-Type: application/json']
|
114 |
-
);
|
115 |
-
|
116 |
-
list($statusCode, $contentType, $body) = $request->post($body);
|
117 |
-
|
118 |
-
return $this->handleResponse(
|
119 |
-
$statusCode,
|
120 |
-
$contentType,
|
121 |
-
$body,
|
122 |
-
$service,
|
123 |
-
$path
|
124 |
-
);
|
125 |
-
}
|
126 |
-
|
127 |
-
public function get($service, $path)
|
128 |
-
{
|
129 |
-
$request = $this->createRequest($path);
|
130 |
-
|
131 |
-
list($statusCode, $contentType, $body) = $request->get();
|
132 |
-
|
133 |
-
return $this->handleResponse(
|
134 |
-
$statusCode,
|
135 |
-
$contentType,
|
136 |
-
$body,
|
137 |
-
$service,
|
138 |
-
$path
|
139 |
-
);
|
140 |
-
}
|
141 |
-
|
142 |
-
private function userAgent()
|
143 |
-
{
|
144 |
-
$curlVersion = curl_version();
|
145 |
-
|
146 |
-
return $this->userAgentPrefix . 'MaxMind-WS-API/' . self::VERSION . ' PHP/' . PHP_VERSION .
|
147 |
-
' curl/' . $curlVersion['version'];
|
148 |
-
}
|
149 |
-
|
150 |
-
private function createRequest($path, $headers = [])
|
151 |
-
{
|
152 |
-
array_push(
|
153 |
-
$headers,
|
154 |
-
'Authorization: Basic '
|
155 |
-
. base64_encode($this->accountId . ':' . $this->licenseKey),
|
156 |
-
'Accept: application/json'
|
157 |
-
);
|
158 |
-
|
159 |
-
return $this->httpRequestFactory->request(
|
160 |
-
$this->urlFor($path),
|
161 |
-
[
|
162 |
-
'caBundle' => $this->caBundle,
|
163 |
-
'connectTimeout' => $this->connectTimeout,
|
164 |
-
'headers' => $headers,
|
165 |
-
'proxy' => $this->proxy,
|
166 |
-
'timeout' => $this->timeout,
|
167 |
-
'userAgent' => $this->userAgent(),
|
168 |
-
]
|
169 |
-
);
|
170 |
-
}
|
171 |
-
|
172 |
-
/**
|
173 |
-
* @param int $statusCode the HTTP status code of the response
|
174 |
-
* @param string $contentType the Content-Type of the response
|
175 |
-
* @param string $body the response body
|
176 |
-
* @param string $service the name of the service
|
177 |
-
* @param string $path the path used in the request
|
178 |
-
*
|
179 |
-
* @throws AuthenticationException when there is an issue authenticating the
|
180 |
-
* request
|
181 |
-
* @throws InsufficientFundsException when your account is out of funds
|
182 |
-
* @throws InvalidRequestException when the request is invalid for some
|
183 |
-
* other reason, e.g., invalid JSON in the POST.
|
184 |
-
* @throws HttpException when an unexpected HTTP error occurs
|
185 |
-
* @throws WebServiceException when some other error occurs. This also
|
186 |
-
* serves as the base class for the above exceptions
|
187 |
-
*
|
188 |
-
* @return array The decoded content of a successful response
|
189 |
-
*/
|
190 |
-
private function handleResponse(
|
191 |
-
$statusCode,
|
192 |
-
$contentType,
|
193 |
-
$body,
|
194 |
-
$service,
|
195 |
-
$path
|
196 |
-
) {
|
197 |
-
if ($statusCode >= 400 && $statusCode <= 499) {
|
198 |
-
$this->handle4xx($statusCode, $contentType, $body, $service, $path);
|
199 |
-
} elseif ($statusCode >= 500) {
|
200 |
-
$this->handle5xx($statusCode, $service, $path);
|
201 |
-
} elseif ($statusCode !== 200) {
|
202 |
-
$this->handleUnexpectedStatus($statusCode, $service, $path);
|
203 |
-
}
|
204 |
-
|
205 |
-
return $this->handleSuccess($body, $service);
|
206 |
-
}
|
207 |
-
|
208 |
-
/**
|
209 |
-
* @return string describing the JSON error
|
210 |
-
*/
|
211 |
-
private function jsonErrorDescription()
|
212 |
-
{
|
213 |
-
$errno = json_last_error();
|
214 |
-
switch ($errno) {
|
215 |
-
case JSON_ERROR_DEPTH:
|
216 |
-
return 'The maximum stack depth has been exceeded.';
|
217 |
-
case JSON_ERROR_STATE_MISMATCH:
|
218 |
-
return 'Invalid or malformed JSON.';
|
219 |
-
case JSON_ERROR_CTRL_CHAR:
|
220 |
-
return 'Control character error.';
|
221 |
-
case JSON_ERROR_SYNTAX:
|
222 |
-
return 'Syntax error.';
|
223 |
-
case JSON_ERROR_UTF8:
|
224 |
-
return 'Malformed UTF-8 characters.';
|
225 |
-
default:
|
226 |
-
return "Other JSON error ($errno).";
|
227 |
-
}
|
228 |
-
}
|
229 |
-
|
230 |
-
/**
|
231 |
-
* @param string $path the path to use in the URL
|
232 |
-
*
|
233 |
-
* @return string the constructed URL
|
234 |
-
*/
|
235 |
-
private function urlFor($path)
|
236 |
-
{
|
237 |
-
return 'https://' . $this->host . $path;
|
238 |
-
}
|
239 |
-
|
240 |
-
/**
|
241 |
-
* @param int $statusCode the HTTP status code
|
242 |
-
* @param string $contentType the response content-type
|
243 |
-
* @param string $body the response body
|
244 |
-
* @param string $service the service name
|
245 |
-
* @param string $path the path used in the request
|
246 |
-
*
|
247 |
-
* @throws AuthenticationException
|
248 |
-
* @throws HttpException
|
249 |
-
* @throws InsufficientFundsException
|
250 |
-
* @throws InvalidRequestException
|
251 |
-
*/
|
252 |
-
private function handle4xx(
|
253 |
-
$statusCode,
|
254 |
-
$contentType,
|
255 |
-
$body,
|
256 |
-
$service,
|
257 |
-
$path
|
258 |
-
) {
|
259 |
-
if (strlen($body) === 0) {
|
260 |
-
throw new HttpException(
|
261 |
-
"Received a $statusCode error for $service with no body",
|
262 |
-
$statusCode,
|
263 |
-
$this->urlFor($path)
|
264 |
-
);
|
265 |
-
}
|
266 |
-
if (!strstr($contentType, 'json')) {
|
267 |
-
throw new HttpException(
|
268 |
-
"Received a $statusCode error for $service with " .
|
269 |
-
'the following body: ' . $body,
|
270 |
-
$statusCode,
|
271 |
-
$this->urlFor($path)
|
272 |
-
);
|
273 |
-
}
|
274 |
-
|
275 |
-
$message = json_decode($body, true);
|
276 |
-
if ($message === null) {
|
277 |
-
throw new HttpException(
|
278 |
-
"Received a $statusCode error for $service but could " .
|
279 |
-
'not decode the response as JSON: '
|
280 |
-
. $this->jsonErrorDescription() . ' Body: ' . $body,
|
281 |
-
$statusCode,
|
282 |
-
$this->urlFor($path)
|
283 |
-
);
|
284 |
-
}
|
285 |
-
|
286 |
-
if (!isset($message['code']) || !isset($message['error'])) {
|
287 |
-
throw new HttpException(
|
288 |
-
'Error response contains JSON but it does not ' .
|
289 |
-
'specify code or error keys: ' . $body,
|
290 |
-
$statusCode,
|
291 |
-
$this->urlFor($path)
|
292 |
-
);
|
293 |
-
}
|
294 |
-
|
295 |
-
$this->handleWebServiceError(
|
296 |
-
$message['error'],
|
297 |
-
$message['code'],
|
298 |
-
$statusCode,
|
299 |
-
$path
|
300 |
-
);
|
301 |
-
}
|
302 |
-
|
303 |
-
/**
|
304 |
-
* @param string $message the error message from the web service
|
305 |
-
* @param string $code the error code from the web service
|
306 |
-
* @param int $statusCode the HTTP status code
|
307 |
-
* @param string $path the path used in the request
|
308 |
-
*
|
309 |
-
* @throws AuthenticationException
|
310 |
-
* @throws InvalidRequestException
|
311 |
-
* @throws InsufficientFundsException
|
312 |
-
*/
|
313 |
-
private function handleWebServiceError(
|
314 |
-
$message,
|
315 |
-
$code,
|
316 |
-
$statusCode,
|
317 |
-
$path
|
318 |
-
) {
|
319 |
-
switch ($code) {
|
320 |
-
case 'IP_ADDRESS_NOT_FOUND':
|
321 |
-
case 'IP_ADDRESS_RESERVED':
|
322 |
-
throw new IpAddressNotFoundException(
|
323 |
-
$message,
|
324 |
-
$code,
|
325 |
-
$statusCode,
|
326 |
-
$this->urlFor($path)
|
327 |
-
);
|
328 |
-
case 'ACCOUNT_ID_REQUIRED':
|
329 |
-
case 'ACCOUNT_ID_UNKNOWN':
|
330 |
-
case 'AUTHORIZATION_INVALID':
|
331 |
-
case 'LICENSE_KEY_REQUIRED':
|
332 |
-
case 'USER_ID_REQUIRED':
|
333 |
-
case 'USER_ID_UNKNOWN':
|
334 |
-
throw new AuthenticationException(
|
335 |
-
$message,
|
336 |
-
$code,
|
337 |
-
$statusCode,
|
338 |
-
$this->urlFor($path)
|
339 |
-
);
|
340 |
-
case 'OUT_OF_QUERIES':
|
341 |
-
case 'INSUFFICIENT_FUNDS':
|
342 |
-
throw new InsufficientFundsException(
|
343 |
-
$message,
|
344 |
-
$code,
|
345 |
-
$statusCode,
|
346 |
-
$this->urlFor($path)
|
347 |
-
);
|
348 |
-
case 'PERMISSION_REQUIRED':
|
349 |
-
throw new PermissionRequiredException(
|
350 |
-
$message,
|
351 |
-
$code,
|
352 |
-
$statusCode,
|
353 |
-
$this->urlFor($path)
|
354 |
-
);
|
355 |
-
default:
|
356 |
-
throw new InvalidRequestException(
|
357 |
-
$message,
|
358 |
-
$code,
|
359 |
-
$statusCode,
|
360 |
-
$this->urlFor($path)
|
361 |
-
);
|
362 |
-
}
|
363 |
-
}
|
364 |
-
|
365 |
-
/**
|
366 |
-
* @param int $statusCode the HTTP status code
|
367 |
-
* @param string $service the service name
|
368 |
-
* @param string $path the URI path used in the request
|
369 |
-
*
|
370 |
-
* @throws HttpException
|
371 |
-
*/
|
372 |
-
private function handle5xx($statusCode, $service, $path)
|
373 |
-
{
|
374 |
-
throw new HttpException(
|
375 |
-
"Received a server error ($statusCode) for $service",
|
376 |
-
$statusCode,
|
377 |
-
$this->urlFor($path)
|
378 |
-
);
|
379 |
-
}
|
380 |
-
|
381 |
-
/**
|
382 |
-
* @param int $statusCode the HTTP status code
|
383 |
-
* @param string $service the service name
|
384 |
-
* @param string $path the URI path used in the request
|
385 |
-
*
|
386 |
-
* @throws HttpException
|
387 |
-
*/
|
388 |
-
private function handleUnexpectedStatus($statusCode, $service, $path)
|
389 |
-
{
|
390 |
-
throw new HttpException(
|
391 |
-
'Received an unexpected HTTP status ' .
|
392 |
-
"($statusCode) for $service",
|
393 |
-
$statusCode,
|
394 |
-
$this->urlFor($path)
|
395 |
-
);
|
396 |
-
}
|
397 |
-
|
398 |
-
/**
|
399 |
-
* @param string $body the successful request body
|
400 |
-
* @param string $service the service name
|
401 |
-
*
|
402 |
-
* @throws WebServiceException if the request body cannot be decoded as
|
403 |
-
* JSON
|
404 |
-
*
|
405 |
-
* @return array the decoded request body
|
406 |
-
*/
|
407 |
-
private function handleSuccess($body, $service)
|
408 |
-
{
|
409 |
-
if (strlen($body) === 0) {
|
410 |
-
throw new WebServiceException(
|
411 |
-
"Received a 200 response for $service but did not " .
|
412 |
-
'receive a HTTP body.'
|
413 |
-
);
|
414 |
-
}
|
415 |
-
|
416 |
-
$decodedContent = json_decode($body, true);
|
417 |
-
if ($decodedContent === null) {
|
418 |
-
throw new WebServiceException(
|
419 |
-
"Received a 200 response for $service but could " .
|
420 |
-
'not decode the response as JSON: '
|
421 |
-
. $this->jsonErrorDescription() . ' Body: ' . $body
|
422 |
-
);
|
423 |
-
}
|
424 |
-
|
425 |
-
return $decodedContent;
|
426 |
-
}
|
427 |
-
|
428 |
-
private function getCaBundle()
|
429 |
-
{
|
430 |
-
$curlVersion = curl_version();
|
431 |
-
|
432 |
-
// On OS X, when the SSL version is "SecureTransport", the system's
|
433 |
-
// keychain will be used.
|
434 |
-
if ($curlVersion['ssl_version'] === 'SecureTransport') {
|
435 |
-
return;
|
436 |
-
}
|
437 |
-
$cert = CaBundle::getSystemCaRootBundlePath();
|
438 |
-
|
439 |
-
// Check if the cert is inside a phar. If so, we need to copy the cert
|
440 |
-
// to a temp file so that curl can see it.
|
441 |
-
if (substr($cert, 0, 7) === 'phar://') {
|
442 |
-
$tempDir = sys_get_temp_dir();
|
443 |
-
$newCert = tempnam($tempDir, 'geoip2-');
|
444 |
-
if ($newCert === false) {
|
445 |
-
throw new \RuntimeException(
|
446 |
-
"Unable to create temporary file in $tempDir"
|
447 |
-
);
|
448 |
-
}
|
449 |
-
if (!copy($cert, $newCert)) {
|
450 |
-
throw new \RuntimeException(
|
451 |
-
"Could not copy $cert to $newCert: "
|
452 |
-
. var_export(error_get_last(), true)
|
453 |
-
);
|
454 |
-
}
|
455 |
-
|
456 |
-
// We use a shutdown function rather than the destructor as the
|
457 |
-
// destructor isn't called on a fatal error such as an uncaught
|
458 |
-
// exception.
|
459 |
-
register_shutdown_function(
|
460 |
-
function () use ($newCert) {
|
461 |
-
unlink($newCert);
|
462 |
-
}
|
463 |
-
);
|
464 |
-
$cert = $newCert;
|
465 |
-
}
|
466 |
-
if (!file_exists($cert)) {
|
467 |
-
throw new \RuntimeException("CA cert does not exist at $cert");
|
468 |
-
}
|
469 |
-
|
470 |
-
return $cert;
|
471 |
-
}
|
472 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/maxmind/web-service-common/src/WebService/Http/CurlRequest.php
DELETED
@@ -1,110 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace MaxMind\WebService\Http;
|
4 |
-
|
5 |
-
use MaxMind\Exception\HttpException;
|
6 |
-
|
7 |
-
/**
|
8 |
-
* This class is for internal use only. Semantic versioning does not not apply.
|
9 |
-
*
|
10 |
-
* @internal
|
11 |
-
*/
|
12 |
-
class CurlRequest implements Request
|
13 |
-
{
|
14 |
-
private $url;
|
15 |
-
private $options;
|
16 |
-
|
17 |
-
/**
|
18 |
-
* @param $url
|
19 |
-
* @param $options
|
20 |
-
*/
|
21 |
-
public function __construct($url, $options)
|
22 |
-
{
|
23 |
-
$this->url = $url;
|
24 |
-
$this->options = $options;
|
25 |
-
}
|
26 |
-
|
27 |
-
/**
|
28 |
-
* @param $body
|
29 |
-
*
|
30 |
-
* @return array
|
31 |
-
*/
|
32 |
-
public function post($body)
|
33 |
-
{
|
34 |
-
$curl = $this->createCurl();
|
35 |
-
|
36 |
-
curl_setopt($curl, CURLOPT_POST, true);
|
37 |
-
curl_setopt($curl, CURLOPT_POSTFIELDS, $body);
|
38 |
-
|
39 |
-
return $this->execute($curl);
|
40 |
-
}
|
41 |
-
|
42 |
-
public function get()
|
43 |
-
{
|
44 |
-
$curl = $this->createCurl();
|
45 |
-
|
46 |
-
curl_setopt($curl, CURLOPT_HTTPGET, true);
|
47 |
-
|
48 |
-
return $this->execute($curl);
|
49 |
-
}
|
50 |
-
|
51 |
-
/**
|
52 |
-
* @return resource
|
53 |
-
*/
|
54 |
-
private function createCurl()
|
55 |
-
{
|
56 |
-
$curl = curl_init($this->url);
|
57 |
-
|
58 |
-
if (!empty($this->options['caBundle'])) {
|
59 |
-
$opts[CURLOPT_CAINFO] = $this->options['caBundle'];
|
60 |
-
}
|
61 |
-
$opts[CURLOPT_SSL_VERIFYHOST] = 2;
|
62 |
-
$opts[CURLOPT_FOLLOWLOCATION] = false;
|
63 |
-
$opts[CURLOPT_SSL_VERIFYPEER] = true;
|
64 |
-
$opts[CURLOPT_RETURNTRANSFER] = true;
|
65 |
-
|
66 |
-
$opts[CURLOPT_HTTPHEADER] = $this->options['headers'];
|
67 |
-
$opts[CURLOPT_USERAGENT] = $this->options['userAgent'];
|
68 |
-
$opts[CURLOPT_PROXY] = $this->options['proxy'];
|
69 |
-
|
70 |
-
// The defined()s are here as the *_MS opts are not available on older
|
71 |
-
// cURL versions
|
72 |
-
$connectTimeout = $this->options['connectTimeout'];
|
73 |
-
if (defined('CURLOPT_CONNECTTIMEOUT_MS')) {
|
74 |
-
$opts[CURLOPT_CONNECTTIMEOUT_MS] = ceil($connectTimeout * 1000);
|
75 |
-
} else {
|
76 |
-
$opts[CURLOPT_CONNECTTIMEOUT] = ceil($connectTimeout);
|
77 |
-
}
|
78 |
-
|
79 |
-
$timeout = $this->options['timeout'];
|
80 |
-
if (defined('CURLOPT_TIMEOUT_MS')) {
|
81 |
-
$opts[CURLOPT_TIMEOUT_MS] = ceil($timeout * 1000);
|
82 |
-
} else {
|
83 |
-
$opts[CURLOPT_TIMEOUT] = ceil($timeout);
|
84 |
-
}
|
85 |
-
|
86 |
-
curl_setopt_array($curl, $opts);
|
87 |
-
|
88 |
-
return $curl;
|
89 |
-
}
|
90 |
-
|
91 |
-
private function execute($curl)
|
92 |
-
{
|
93 |
-
$body = curl_exec($curl);
|
94 |
-
if ($errno = curl_errno($curl)) {
|
95 |
-
$errorMessage = curl_error($curl);
|
96 |
-
|
97 |
-
throw new HttpException(
|
98 |
-
"cURL error ({$errno}): {$errorMessage}",
|
99 |
-
0,
|
100 |
-
$this->url
|
101 |
-
);
|
102 |
-
}
|
103 |
-
|
104 |
-
$statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
|
105 |
-
$contentType = curl_getinfo($curl, CURLINFO_CONTENT_TYPE);
|
106 |
-
curl_close($curl);
|
107 |
-
|
108 |
-
return [$statusCode, $contentType, $body];
|
109 |
-
}
|
110 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/maxmind/web-service-common/src/WebService/Http/Request.php
DELETED
@@ -1,29 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace MaxMind\WebService\Http;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Interface Request.
|
7 |
-
*
|
8 |
-
* @internal
|
9 |
-
*/
|
10 |
-
interface Request
|
11 |
-
{
|
12 |
-
/**
|
13 |
-
* @param $url
|
14 |
-
* @param $options
|
15 |
-
*/
|
16 |
-
public function __construct($url, $options);
|
17 |
-
|
18 |
-
/**
|
19 |
-
* @param $body
|
20 |
-
*
|
21 |
-
* @return mixed
|
22 |
-
*/
|
23 |
-
public function post($body);
|
24 |
-
|
25 |
-
/**
|
26 |
-
* @return mixed
|
27 |
-
*/
|
28 |
-
public function get();
|
29 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/maxmind/web-service-common/src/WebService/Http/RequestFactory.php
DELETED
@@ -1,26 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace MaxMind\WebService\Http;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Class RequestFactory.
|
7 |
-
*
|
8 |
-
* @internal
|
9 |
-
*/
|
10 |
-
class RequestFactory
|
11 |
-
{
|
12 |
-
public function __construct()
|
13 |
-
{
|
14 |
-
}
|
15 |
-
|
16 |
-
/**
|
17 |
-
* @param $url
|
18 |
-
* @param $options
|
19 |
-
*
|
20 |
-
* @return CurlRequest
|
21 |
-
*/
|
22 |
-
public function request($url, $options)
|
23 |
-
{
|
24 |
-
return new CurlRequest($url, $options);
|
25 |
-
}
|
26 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/wordfence/mmdb-reader/src/ControlByte.php
ADDED
@@ -0,0 +1,118 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Wordfence\MmdbReader;
|
4 |
+
|
5 |
+
class ControlByte {
|
6 |
+
|
7 |
+
const TYPE_EXTENDED = 0;
|
8 |
+
const TYPE_POINTER = 1;
|
9 |
+
const TYPE_UTF8_STRING = 2;
|
10 |
+
const TYPE_DOUBLE = 3;
|
11 |
+
const TYPE_BYTES = 4;
|
12 |
+
const TYPE_UINT16 = 5;
|
13 |
+
const TYPE_UINT32 = 6;
|
14 |
+
const TYPE_MAP = 7;
|
15 |
+
const TYPE_INT32 = 8;
|
16 |
+
const TYPE_UINT64 = 9;
|
17 |
+
const TYPE_UINT128 = 10;
|
18 |
+
const TYPE_ARRAY = 11;
|
19 |
+
const TYPE_CONTAINER = 12;
|
20 |
+
const TYPE_END_MARKER = 13;
|
21 |
+
const TYPE_BOOLEAN = 14;
|
22 |
+
const TYPE_FLOAT = 15;
|
23 |
+
|
24 |
+
const EXTENSION_OFFSET = 7;
|
25 |
+
const SIZE_MASK = 31;
|
26 |
+
const MAX_SINGLE_BYTE_SIZE = 28;
|
27 |
+
|
28 |
+
private $type;
|
29 |
+
private $size;
|
30 |
+
|
31 |
+
public function __construct($type, $size) {
|
32 |
+
$this->type = $type;
|
33 |
+
$this->size = $size;
|
34 |
+
}
|
35 |
+
|
36 |
+
public function getType() {
|
37 |
+
return $this->type;
|
38 |
+
}
|
39 |
+
|
40 |
+
public function getTypeName() {
|
41 |
+
return self::mapTypeName($this->getType());
|
42 |
+
}
|
43 |
+
|
44 |
+
public function getSize() {
|
45 |
+
return $this->size;
|
46 |
+
}
|
47 |
+
|
48 |
+
public function is($type) {
|
49 |
+
return $this->type === $type;
|
50 |
+
}
|
51 |
+
|
52 |
+
public static function consume($handle) {
|
53 |
+
$byte = $handle->readByte();
|
54 |
+
$type = $byte >> 5;
|
55 |
+
if ($type === self::TYPE_EXTENDED)
|
56 |
+
$type = $handle->readByte() + self::EXTENSION_OFFSET;
|
57 |
+
$size = $byte & self::SIZE_MASK;
|
58 |
+
if ($size > self::MAX_SINGLE_BYTE_SIZE) {
|
59 |
+
$bytes = $size - self::MAX_SINGLE_BYTE_SIZE;
|
60 |
+
switch ($size) {
|
61 |
+
case 30:
|
62 |
+
$size = 285;
|
63 |
+
break;
|
64 |
+
case 31:
|
65 |
+
$size = 65821;
|
66 |
+
break;
|
67 |
+
default:
|
68 |
+
break;
|
69 |
+
}
|
70 |
+
$size += IntegerParser::parseUnsigned($handle, $bytes);
|
71 |
+
}
|
72 |
+
return new self($type, $size);
|
73 |
+
}
|
74 |
+
|
75 |
+
public static function mapTypeName($type) {
|
76 |
+
switch ($type) {
|
77 |
+
case self::TYPE_EXTENDED:
|
78 |
+
return 'TYPE_EXTENDED';
|
79 |
+
case self::TYPE_POINTER:
|
80 |
+
return 'TYPE_POINTER';
|
81 |
+
case self::TYPE_UTF8_STRING:
|
82 |
+
return 'TYPE_UTF8_STRING';
|
83 |
+
case self::TYPE_DOUBLE:
|
84 |
+
return 'TYPE_DOUBLE';
|
85 |
+
case self::TYPE_BYTES:
|
86 |
+
return 'TYPE_BYTES';
|
87 |
+
case self::TYPE_UINT16:
|
88 |
+
return 'TYPE_UINT16';
|
89 |
+
case self::TYPE_UINT32:
|
90 |
+
return 'TYPE_UINT32';
|
91 |
+
case self::TYPE_MAP:
|
92 |
+
return 'TYPE_MAP';
|
93 |
+
case self::TYPE_INT32:
|
94 |
+
return 'TYPE_INT32';
|
95 |
+
case self::TYPE_UINT64:
|
96 |
+
return 'TYPE_UINT64';
|
97 |
+
case self::TYPE_UINT128:
|
98 |
+
return 'TYPE_UINT128';
|
99 |
+
case self::TYPE_ARRAY:
|
100 |
+
return 'TYPE_ARRAY';
|
101 |
+
case self::TYPE_CONTAINER:
|
102 |
+
return 'TYPE_CONTAINER';
|
103 |
+
case self::TYPE_END_MARKER:
|
104 |
+
return 'TYPE_END_MARKER';
|
105 |
+
case self::TYPE_BOOLEAN:
|
106 |
+
return 'TYPE_BOOLEAN';
|
107 |
+
case self::TYPE_FLOAT:
|
108 |
+
return 'TYPE_FLOAT';
|
109 |
+
default:
|
110 |
+
return 'UNKNOWN';
|
111 |
+
}
|
112 |
+
}
|
113 |
+
|
114 |
+
public function __toString() {
|
115 |
+
return sprintf('%s(%d) of size %d', $this->getTypeName(), $this->getType(), $this->getSize());
|
116 |
+
}
|
117 |
+
|
118 |
+
}
|
vendor/wordfence/mmdb-reader/src/DataFieldParser.php
ADDED
@@ -0,0 +1,167 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Wordfence\MmdbReader;
|
4 |
+
|
5 |
+
use Wordfence\MmdbReader\Exception\FormatException;
|
6 |
+
use Wordfence\MmdbReader\Exception\InvalidArgumentException;
|
7 |
+
|
8 |
+
class DataFieldParser {
|
9 |
+
|
10 |
+
private $handle;
|
11 |
+
private $sectionOffset;
|
12 |
+
|
13 |
+
public function __construct($handle, $sectionOffset = null) {
|
14 |
+
$this->handle = $handle;
|
15 |
+
$this->sectionOffset = $sectionOffset === null ? $this->handle->getPosition() : $sectionOffset;
|
16 |
+
}
|
17 |
+
|
18 |
+
public function processControlByte() {
|
19 |
+
return ControlByte::consume($this->handle);
|
20 |
+
}
|
21 |
+
|
22 |
+
private function readStandardField($controlByte) {
|
23 |
+
$size = $controlByte->getSize();
|
24 |
+
if ($size === 0)
|
25 |
+
return '';
|
26 |
+
return $this->handle->read($size);
|
27 |
+
}
|
28 |
+
|
29 |
+
private function parseUtf8String($controlByte) {
|
30 |
+
return $this->readStandardField($controlByte);
|
31 |
+
}
|
32 |
+
|
33 |
+
private function parseUnsignedInteger($controlByte) {
|
34 |
+
//TODO: Does this handle large-enough values gracefully?
|
35 |
+
return IntegerParser::parseUnsigned($this->handle, $controlByte->getSize());
|
36 |
+
}
|
37 |
+
|
38 |
+
private function parseMap($controlByte) {
|
39 |
+
$map = array();
|
40 |
+
for ($i = 0; $i < $controlByte->getSize(); $i++) {
|
41 |
+
$keyByte = $this->processControlByte();
|
42 |
+
$key = $this->parseField($keyByte);
|
43 |
+
if (!is_string($key))
|
44 |
+
throw new FormatException('Map keys must be strings, received ' . $keyByte . ' / ' . print_r($key, true) . ', map: ' . print_r($map, true));
|
45 |
+
$value = $this->parseField();
|
46 |
+
$map[$key] = $value;
|
47 |
+
}
|
48 |
+
return $map;
|
49 |
+
}
|
50 |
+
|
51 |
+
private function parseArray($controlByte) {
|
52 |
+
$array = array();
|
53 |
+
for ($i = 0; $i < $controlByte->getSize(); $i++) {
|
54 |
+
$array[$i] = $this->parseField();
|
55 |
+
}
|
56 |
+
return $array;
|
57 |
+
}
|
58 |
+
|
59 |
+
private function parseBoolean($controlByte) {
|
60 |
+
return (bool) $controlByte->getSize();
|
61 |
+
}
|
62 |
+
|
63 |
+
private static function unpackSingleValue($format, $data, $controlByte) {
|
64 |
+
$values = unpack($format, $data);
|
65 |
+
if ($values === false)
|
66 |
+
throw new FormatException("Unpacking field failed for {$controlByte}");
|
67 |
+
return reset($values);
|
68 |
+
}
|
69 |
+
|
70 |
+
private static function getPackedLength($formatCharacter) {
|
71 |
+
switch ($formatCharacter) {
|
72 |
+
case 'E':
|
73 |
+
return 8;
|
74 |
+
case 'G':
|
75 |
+
case 'l':
|
76 |
+
return 4;
|
77 |
+
}
|
78 |
+
throw new InvalidArgumentException("Unsupported format character: {$formatCharacter}");
|
79 |
+
}
|
80 |
+
|
81 |
+
private static function usesSystemByteOrder($formatCharacter) {
|
82 |
+
switch ($formatCharacter) {
|
83 |
+
case 'l':
|
84 |
+
return true;
|
85 |
+
default:
|
86 |
+
return false;
|
87 |
+
}
|
88 |
+
}
|
89 |
+
|
90 |
+
private function parseByUnpacking($controlByte, $format) {
|
91 |
+
//TODO: Is this reliable for float/double types, considering that the size for unpack is platform dependent?
|
92 |
+
$data = $this->readStandardField($controlByte);
|
93 |
+
$data = str_pad($data, self::getPackedLength($format), "\0", STR_PAD_LEFT);
|
94 |
+
if (self::usesSystemByteOrder($format))
|
95 |
+
$data = Endianness::convert($data, Endianness::BIG);
|
96 |
+
return $this->unpackSingleValue($format, $data, $controlByte);
|
97 |
+
}
|
98 |
+
|
99 |
+
private function parsePointer($controlByte) {
|
100 |
+
$data = $controlByte->getSize();
|
101 |
+
$size = $data >> 3;
|
102 |
+
$address = $data & 7;
|
103 |
+
if ($size === 3)
|
104 |
+
$address = 0;
|
105 |
+
for ($i = 0; $i < $size + 1; $i++) {
|
106 |
+
$address = ($address << 8) + $this->handle->readByte();
|
107 |
+
}
|
108 |
+
switch ($size) {
|
109 |
+
case 1:
|
110 |
+
$address += 2048;
|
111 |
+
break;
|
112 |
+
case 2:
|
113 |
+
$address += 526336;
|
114 |
+
break;
|
115 |
+
}
|
116 |
+
$previous = $this->handle->getPosition();
|
117 |
+
$this->handle->seek($this->sectionOffset + $address, SEEK_SET);
|
118 |
+
$referenceControlByte = $this->processControlByte();
|
119 |
+
if ($referenceControlByte->getType() === ControlByte::TYPE_POINTER)
|
120 |
+
throw new FormatException('Per the MMDB specification, pointers may not point to other pointers. This database does not comply with the specification.');
|
121 |
+
$value = $this->parseField($referenceControlByte);
|
122 |
+
$this->handle->seek($previous, SEEK_SET);
|
123 |
+
return $value;
|
124 |
+
}
|
125 |
+
|
126 |
+
private function parseSignedInteger($controlByte, $format) {
|
127 |
+
if ($controlByte->getSize() === 0)
|
128 |
+
return 0;
|
129 |
+
return $this->parseByUnpacking($controlByte, $format);
|
130 |
+
}
|
131 |
+
|
132 |
+
public function parseField(&$controlByte = null) {
|
133 |
+
if ($controlByte === null)
|
134 |
+
$controlByte = $this->processControlByte();
|
135 |
+
switch ($controlByte->getType()) {
|
136 |
+
case ControlByte::TYPE_POINTER:
|
137 |
+
return $this->parsePointer($controlByte);
|
138 |
+
case ControlByte::TYPE_UTF8_STRING:
|
139 |
+
return $this->parseUtf8String($controlByte);
|
140 |
+
case ControlByte::TYPE_DOUBLE:
|
141 |
+
$this->parseByUnpacking($controlByte, 'E');
|
142 |
+
case ControlByte::TYPE_BYTES:
|
143 |
+
case ControlByte::TYPE_CONTAINER:
|
144 |
+
return $this->readStandardField($controlByte);
|
145 |
+
case ControlByte::TYPE_UINT16:
|
146 |
+
case ControlByte::TYPE_UINT32:
|
147 |
+
case ControlByte::TYPE_UINT64:
|
148 |
+
case ControlByte::TYPE_UINT128:
|
149 |
+
return $this->parseUnsignedInteger($controlByte);
|
150 |
+
case ControlByte::TYPE_INT32:
|
151 |
+
return $this->parseSignedInteger($controlByte, 'l');
|
152 |
+
case ControlByte::TYPE_MAP:
|
153 |
+
return $this->parseMap($controlByte);
|
154 |
+
case ControlByte::TYPE_ARRAY:
|
155 |
+
return $this->parseArray($controlByte);
|
156 |
+
case ControlByte::TYPE_END_MARKER:
|
157 |
+
return null;
|
158 |
+
case ControlByte::TYPE_BOOLEAN:
|
159 |
+
return $this->parseBoolean($controlByte);
|
160 |
+
case ControlByte::TYPE_FLOAT:
|
161 |
+
$this->parseByUnpacking($controlByte, 'G');
|
162 |
+
default:
|
163 |
+
throw new FormatException("Unable to parse data field for {$controlByte}");
|
164 |
+
}
|
165 |
+
}
|
166 |
+
|
167 |
+
}
|
vendor/wordfence/mmdb-reader/src/Database.php
ADDED
@@ -0,0 +1,173 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Wordfence\MmdbReader;
|
4 |
+
|
5 |
+
use Wordfence\MmdbReader\Exception\FormatException;
|
6 |
+
use Wordfence\MmdbReader\Exception\IncompatibleIpVersionException;
|
7 |
+
use Wordfence\MmdbReader\Exception\IncompatibleVersionException;
|
8 |
+
use Wordfence\MmdbReader\Exception\InvalidIpAddressException;
|
9 |
+
use Wordfence\MmdbReader\Exception\IoException;
|
10 |
+
use Wordfence\MmdbReader\Io\FileHandle;
|
11 |
+
|
12 |
+
class Database {
|
13 |
+
|
14 |
+
const SUPPORTED_MAJOR_VERSION = 2;
|
15 |
+
const DELIMITER_METADATA = "\xab\xcd\xefMaxMind.com";
|
16 |
+
|
17 |
+
private $handle;
|
18 |
+
private $metadata;
|
19 |
+
private $nodeSize;
|
20 |
+
private $nodeReader;
|
21 |
+
private $dataSectionParser;
|
22 |
+
private $startingNodes = array();
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Bind to a MaxMind database using the provided handle
|
26 |
+
* @param resource $resource a valid stream resource that can be used to read the database
|
27 |
+
* @param bool $closeAutomtically if true, the provided resource will be closed automatically
|
28 |
+
* @throws MmdbThrowable if an error occurs while interacting with the database
|
29 |
+
*/
|
30 |
+
protected function __construct($resource, $closeAutomatically) {
|
31 |
+
$this->handle = new FileHandle($resource, $closeAutomatically);
|
32 |
+
$this->initialize();
|
33 |
+
}
|
34 |
+
|
35 |
+
private function initialize() {
|
36 |
+
$this->loadMetadata();
|
37 |
+
}
|
38 |
+
|
39 |
+
private function loadMetadata() {
|
40 |
+
$this->handle->seek(0, SEEK_END);
|
41 |
+
$position = $this->handle->locateString(self::DELIMITER_METADATA, FileHandle::DIRECTION_REVERSE, DatabaseMetadata::MAX_LENGTH, true);
|
42 |
+
if ($position === null)
|
43 |
+
throw new FormatException("Unable to locate metadata in MMDB file");
|
44 |
+
$this->metadata = DatabaseMetadata::parse($this->handle);
|
45 |
+
if ($this->metadata->getMajorVersion() !== self::SUPPORTED_MAJOR_VERSION)
|
46 |
+
throw new IncompatibleVersionException(sprintf('This library only supports parsing version %d of the MMDB format, a version %d database was provided', self::SUPPORTED_MAJOR_VERSION, $this->metadata->getMajorVersion()));
|
47 |
+
}
|
48 |
+
|
49 |
+
private function computeNodeSize() {
|
50 |
+
$nodeSize = ($this->metadata->getRecordSize() * 2) / 8;
|
51 |
+
if (!is_int($nodeSize))
|
52 |
+
throw new FormatException("Node size must be an even number of bytes, computed {$this->nodeSize}");
|
53 |
+
return $nodeSize;
|
54 |
+
}
|
55 |
+
|
56 |
+
private function getNodeReader() {
|
57 |
+
if ($this->nodeReader === null)
|
58 |
+
$this->nodeReader = new NodeReader($this->handle, $this->computeNodeSize(), $this->metadata->getNodeCount());
|
59 |
+
return $this->nodeReader;
|
60 |
+
}
|
61 |
+
|
62 |
+
private function getDataSectionParser() {
|
63 |
+
if ($this->dataSectionParser === null) {
|
64 |
+
$offset = $this->getNodeReader()->getSearchTreeSectionSize() + 16; //16 null bytes separate the two sections
|
65 |
+
$this->dataSectionParser = new DataFieldParser($this->handle, $offset);
|
66 |
+
}
|
67 |
+
return $this->dataSectionParser;
|
68 |
+
}
|
69 |
+
|
70 |
+
/**
|
71 |
+
* Retrieve the metadata for this database
|
72 |
+
* @return DatabaseMetadata
|
73 |
+
*/
|
74 |
+
public function getMetadata() {
|
75 |
+
return $this->metadata;
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* Search the database for the given IP address
|
80 |
+
* @param IpAddressInterface|string $ip the IP address for which to search
|
81 |
+
* A human readable (as accepted by inet_pton) or binary (as accepted by inet_ntop) string may be provided or an instance of IpAddressInterface
|
82 |
+
* @return array|null the matched record or null if no record was found
|
83 |
+
* @throws InvalidIpAddressException if $ip is a string that cannot be parsed as a valid IP address
|
84 |
+
* @throws IncompatibleVersionException if the database IP version and the version of the provided IP address are incompatible (specifically, if an IPv6 address is passed and the database only supports IPv4)
|
85 |
+
*/
|
86 |
+
public function search($ip) {
|
87 |
+
if (is_string($ip)) {
|
88 |
+
$ip = IpAddress::createFromString($ip);
|
89 |
+
}
|
90 |
+
elseif (!$ip instanceof IpAddressInterface) {
|
91 |
+
throw new InvalidIpAddressException('IP address must be either a human readable string (presentation format), a binary string (network format), or an instance of Wordfence\MmdbReader\IpAddressInterface, received: ' . print_r($ip, true));
|
92 |
+
}
|
93 |
+
if ($this->metadata->getIpVersion() === IpAddress::TYPE_IPV4 && $ip->getType() === IpAddress::TYPE_IPV6)
|
94 |
+
throw new IncompatibleIpVersionException('This database only support IPv4 addresses, but the provided address is an IPv6 address');
|
95 |
+
return $this->searchNodes($ip);
|
96 |
+
}
|
97 |
+
|
98 |
+
private function resolveStartingNode($type) {
|
99 |
+
$node = $this->getNodeReader()->read(0);
|
100 |
+
if ($type === IpAddress::TYPE_IPV4 && $this->metadata->getIpVersion() === IpAddress::TYPE_IPV6) {
|
101 |
+
$skippedBits = (IpAddress::LENGTH_IPV6 - IpAddress::LENGTH_IPV4) * 8;
|
102 |
+
while ($skippedBits-- > 0) {
|
103 |
+
$record = $node->getLeft();
|
104 |
+
if ($record->isNodePointer()) {
|
105 |
+
$node = $record->getNextNode();
|
106 |
+
}
|
107 |
+
else {
|
108 |
+
return $record;
|
109 |
+
}
|
110 |
+
}
|
111 |
+
}
|
112 |
+
return $node;
|
113 |
+
}
|
114 |
+
|
115 |
+
private function getStartingNode($type) {
|
116 |
+
if (!array_key_exists($type, $this->startingNodes)) {
|
117 |
+
$this->startingNodes[$type] = $this->resolveStartingNode($type);
|
118 |
+
}
|
119 |
+
return $this->startingNodes[$type];
|
120 |
+
}
|
121 |
+
|
122 |
+
private function searchNodes($ip) {
|
123 |
+
$key = $ip->getBinary();
|
124 |
+
$byteCount = strlen($key);
|
125 |
+
$nodeReader = $this->getNodeReader();
|
126 |
+
$node = $this->getStartingNode($ip->getType());
|
127 |
+
$bits = '';
|
128 |
+
$record = null;
|
129 |
+
if ($node instanceof Node) {
|
130 |
+
for ($byteIndex = 0; $byteIndex < $byteCount; $byteIndex++) {
|
131 |
+
$byte = ord($key[$byteIndex]);
|
132 |
+
for ($bitOffset = 7; $bitOffset >= 0; $bitOffset--) {
|
133 |
+
$bit = ($byte >> $bitOffset) & 1;
|
134 |
+
$record = $node->getRecord($bit);
|
135 |
+
if ($record->isNodePointer()) {
|
136 |
+
$node = $record->getNextNode();
|
137 |
+
}
|
138 |
+
else {
|
139 |
+
break 2;
|
140 |
+
}
|
141 |
+
}
|
142 |
+
}
|
143 |
+
}
|
144 |
+
else {
|
145 |
+
$record = $node;
|
146 |
+
}
|
147 |
+
if ($record->isNullPointer()) {
|
148 |
+
return null;
|
149 |
+
}
|
150 |
+
elseif ($record->isDataPointer()) {
|
151 |
+
$this->handle->seek($record->getDataAddress(), SEEK_SET);
|
152 |
+
$data = $this->getDataSectionParser()->parseField();
|
153 |
+
return $data;
|
154 |
+
}
|
155 |
+
else {
|
156 |
+
return null;
|
157 |
+
}
|
158 |
+
}
|
159 |
+
|
160 |
+
/**
|
161 |
+
* Open the MMDB file at the given path
|
162 |
+
* @param string $path the path of an MMDB file
|
163 |
+
* @throws IoException if unable to open the file at the provided path
|
164 |
+
* @throws MmdbThrowable if an error occurs while initializing the database
|
165 |
+
*/
|
166 |
+
public static function open($path) {
|
167 |
+
$handle = fopen($path, 'rb');
|
168 |
+
if ($handle === false)
|
169 |
+
throw new IoException("Unable to open MMDB file at {$path}");
|
170 |
+
return new self($handle, true);
|
171 |
+
}
|
172 |
+
|
173 |
+
}
|
vendor/wordfence/mmdb-reader/src/DatabaseMetadata.php
ADDED
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Wordfence\MmdbReader;
|
4 |
+
|
5 |
+
use Wordfence\MmdbReader\Exception\FormatException;
|
6 |
+
|
7 |
+
class DatabaseMetadata {
|
8 |
+
|
9 |
+
const MAX_LENGTH = 131072; //128 * 1024;
|
10 |
+
|
11 |
+
const FIELD_MAJOR_VERSION = 'binary_format_major_version';
|
12 |
+
const FIELD_NODE_COUNT = 'node_count';
|
13 |
+
const FIELD_RECORD_SIZE = 'record_size';
|
14 |
+
const FIELD_IP_VERSION = 'ip_version';
|
15 |
+
const FIELD_BUILD_EPOCH = 'build_epoch';
|
16 |
+
|
17 |
+
private $data;
|
18 |
+
|
19 |
+
public function __construct($data) {
|
20 |
+
$this->data = $data;
|
21 |
+
}
|
22 |
+
|
23 |
+
private function getField($key, $default = null, &$exists = null) {
|
24 |
+
if (!array_key_exists($key, $this->data)) {
|
25 |
+
$exists = false;
|
26 |
+
return $default;
|
27 |
+
}
|
28 |
+
$exists = true;
|
29 |
+
return $this->data[$key];
|
30 |
+
}
|
31 |
+
|
32 |
+
private function requireField($key) {
|
33 |
+
$value = $this->getField($key, null, $exists);
|
34 |
+
if (!$exists)
|
35 |
+
throw new FormatException("Metadata field {$key} is missing");
|
36 |
+
return $value;
|
37 |
+
}
|
38 |
+
|
39 |
+
public function requireInteger($key) {
|
40 |
+
$value = $this->requireField($key);
|
41 |
+
if (!is_int($value))
|
42 |
+
throw new FormatException("Field {$key} should be an integer, received: " . print_r($value, true));
|
43 |
+
return $value;
|
44 |
+
}
|
45 |
+
|
46 |
+
public function getMajorVersion() {
|
47 |
+
return $this->requireInteger(self::FIELD_MAJOR_VERSION);
|
48 |
+
}
|
49 |
+
|
50 |
+
public function getNodeCount() {
|
51 |
+
return $this->requireInteger(self::FIELD_NODE_COUNT);
|
52 |
+
}
|
53 |
+
|
54 |
+
public function getRecordSize() {
|
55 |
+
return $this->requireInteger(self::FIELD_RECORD_SIZE);
|
56 |
+
}
|
57 |
+
|
58 |
+
public function getIpVersion() {
|
59 |
+
return $this->requireInteger(self::FIELD_IP_VERSION);
|
60 |
+
}
|
61 |
+
|
62 |
+
public function getBuildEpoch() {
|
63 |
+
return $this->requireInteger(self::FIELD_BUILD_EPOCH);
|
64 |
+
}
|
65 |
+
|
66 |
+
public static function parse($handle) {
|
67 |
+
$offset = $handle->getPosition();
|
68 |
+
$parser = new DataFieldParser($handle, $offset);
|
69 |
+
$value = $parser->parseField();
|
70 |
+
if (!is_array($value))
|
71 |
+
throw new FormatException('Unexpected field type found when metadata map was expected: ' . print_r($value, true));
|
72 |
+
return new self($value);
|
73 |
+
}
|
74 |
+
|
75 |
+
}
|
vendor/wordfence/mmdb-reader/src/Endianness.php
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Wordfence\MmdbReader;
|
4 |
+
|
5 |
+
class Endianness {
|
6 |
+
|
7 |
+
const BIG = 0;
|
8 |
+
const LITTLE = 1;
|
9 |
+
|
10 |
+
private static $SYSTEM = null;
|
11 |
+
|
12 |
+
private static function detect() {
|
13 |
+
$test = unpack('S', "\x00\x01");
|
14 |
+
return $test[1] >> 8;
|
15 |
+
}
|
16 |
+
|
17 |
+
public static function get() {
|
18 |
+
if (self::$SYSTEM === null)
|
19 |
+
self::$SYSTEM = self::detect();
|
20 |
+
return self::$SYSTEM;
|
21 |
+
}
|
22 |
+
|
23 |
+
public static function isBig() {
|
24 |
+
return self::get() === self::BIG;
|
25 |
+
}
|
26 |
+
|
27 |
+
public static function isLittle() {
|
28 |
+
return self::get() === self::LITTLE;
|
29 |
+
}
|
30 |
+
|
31 |
+
public static function convert($value, $source, $target = null) {
|
32 |
+
if ($target === null)
|
33 |
+
$target = self::get();
|
34 |
+
if ($target === $source)
|
35 |
+
return $value;
|
36 |
+
return strrev($value);
|
37 |
+
}
|
38 |
+
|
39 |
+
}
|
vendor/wordfence/mmdb-reader/src/Exception/FormatException.php
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Wordfence\MmdbReader\Exception;
|
4 |
+
|
5 |
+
class FormatException extends RuntimeMmdbException {
|
6 |
+
}
|
vendor/wordfence/mmdb-reader/src/Exception/IncompatibleIpVersionException.php
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Wordfence\MmdbReader\Exception;
|
4 |
+
|
5 |
+
class IncompatibleIpVersionException extends MmdbException {
|
6 |
+
}
|
vendor/wordfence/mmdb-reader/src/Exception/IncompatibleVersionException.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Wordfence\MmdbReader\Exception;
|
4 |
+
|
5 |
+
class IncompatibleVersionException extends RuntimeMmdbException {
|
6 |
+
|
7 |
+
}
|
vendor/wordfence/mmdb-reader/src/Exception/InvalidArgumentException.php
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Wordfence\MmdbReader\Exception;
|
4 |
+
|
5 |
+
class InvalidArgumentException extends MmdbException {
|
6 |
+
}
|
vendor/wordfence/mmdb-reader/src/Exception/InvalidIpAddressException.php
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Wordfence\MmdbReader\Exception;
|
4 |
+
|
5 |
+
class InvalidIpAddressException extends MmdbException {
|
6 |
+
}
|
vendor/wordfence/mmdb-reader/src/Exception/InvalidOperationException.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Wordfence\MmdbReader\Exception;
|
4 |
+
|
5 |
+
class InvalidOperationException extends MmdbException {
|
6 |
+
|
7 |
+
}
|
vendor/wordfence/mmdb-reader/src/Exception/IoException.php
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Wordfence\MmdbReader\Exception;
|
4 |
+
|
5 |
+
class IoException extends RuntimeMmdbException {
|
6 |
+
}
|
vendor/wordfence/mmdb-reader/src/Exception/MmdbException.php
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Wordfence\MmdbReader\Exception;
|
4 |
+
|
5 |
+
use Exception;
|
6 |
+
use Throwable;
|
7 |
+
|
8 |
+
class MmdbException extends Exception implements MmdbThrowable {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* @param string $message
|
12 |
+
* @param ?Throwable $previous
|
13 |
+
*/
|
14 |
+
public function __construct($message, $previous = null) {
|
15 |
+
parent::__construct($message, 0, $previous);
|
16 |
+
}
|
17 |
+
|
18 |
+
}
|
vendor/wordfence/mmdb-reader/src/Exception/MmdbThrowable.php
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Wordfence\MmdbReader\Exception;
|
4 |
+
|
5 |
+
use Throwable;
|
6 |
+
|
7 |
+
interface MmdbThrowable extends Throwable {
|
8 |
+
}
|
vendor/wordfence/mmdb-reader/src/Exception/RuntimeMmdbException.php
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Wordfence\MmdbReader\Exception;
|
4 |
+
|
5 |
+
use RuntimeException;
|
6 |
+
use Throwable;
|
7 |
+
|
8 |
+
class RuntimeMmdbException extends RuntimeException implements MmdbThrowable {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* @param string $message
|
12 |
+
* @param ?Throwable $previous
|
13 |
+
*/
|
14 |
+
public function __construct($message, $previous = null) {
|
15 |
+
parent::__construct($message, 0, $previous);
|
16 |
+
}
|
17 |
+
|
18 |
+
}
|
vendor/wordfence/mmdb-reader/src/IntegerParser.php
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Wordfence\MmdbReader;
|
4 |
+
|
5 |
+
class IntegerParser {
|
6 |
+
|
7 |
+
public static function parseUnsigned($handle, $length) {
|
8 |
+
$value = 0;
|
9 |
+
for ($i = 0; $i < $length; $i++) {
|
10 |
+
$byte = $handle->readByte();
|
11 |
+
$value = ($value << 8) + $byte;
|
12 |
+
}
|
13 |
+
return $value;
|
14 |
+
}
|
15 |
+
|
16 |
+
}
|
vendor/wordfence/mmdb-reader/src/Io/FileHandle.php
ADDED
@@ -0,0 +1,94 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Wordfence\MmdbReader\Io;
|
4 |
+
|
5 |
+
use Wordfence\MmdbReader\Exception\IoException;
|
6 |
+
|
7 |
+
class FileHandle {
|
8 |
+
|
9 |
+
const POSITION_START = 0;
|
10 |
+
|
11 |
+
const DIRECTION_FORWARD = 1;
|
12 |
+
const DIRECTION_REVERSE = -1;
|
13 |
+
|
14 |
+
const CHUNK_SIZE_DEFAULT = 1024;
|
15 |
+
|
16 |
+
private $resource;
|
17 |
+
private $close;
|
18 |
+
|
19 |
+
public function __construct($resource, $close = true) {
|
20 |
+
$this->resource = $resource;
|
21 |
+
$this->close = $close;
|
22 |
+
}
|
23 |
+
|
24 |
+
public function __destruct() {
|
25 |
+
if ($this->close)
|
26 |
+
fclose($this->resource);
|
27 |
+
}
|
28 |
+
|
29 |
+
public function seek($offset, $whence = SEEK_SET) {
|
30 |
+
if (fseek($this->resource, $offset, $whence) !== 0)
|
31 |
+
throw new IoException("Seeking file to offset {$offset} failed");
|
32 |
+
}
|
33 |
+
|
34 |
+
public function getPosition() {
|
35 |
+
$position = ftell($this->resource);
|
36 |
+
if ($position === false)
|
37 |
+
throw new IoException('Retrieving current position in file failed');
|
38 |
+
return $position;
|
39 |
+
}
|
40 |
+
|
41 |
+
public function isAtStart() {
|
42 |
+
return $this->getPosition() === self::POSITION_START;
|
43 |
+
}
|
44 |
+
|
45 |
+
public function isAtEnd() {
|
46 |
+
return feof($this->resource);
|
47 |
+
}
|
48 |
+
|
49 |
+
public function read($length) {
|
50 |
+
$read = fread($this->resource, $length);
|
51 |
+
if ($read === false)
|
52 |
+
throw new IoException("Reading {$length} byte(s) from file failed");
|
53 |
+
return $read;
|
54 |
+
}
|
55 |
+
|
56 |
+
public function readByte() {
|
57 |
+
return ord($this->read(1));
|
58 |
+
}
|
59 |
+
|
60 |
+
public function readAll($chunkSize = self::CHUNK_SIZE_DEFAULT) {
|
61 |
+
$data = '';
|
62 |
+
do {
|
63 |
+
$chunk = $this->read($chunkSize);
|
64 |
+
if (empty($chunk))
|
65 |
+
break;
|
66 |
+
$data .= $chunk;
|
67 |
+
} while (true);
|
68 |
+
return $data;
|
69 |
+
}
|
70 |
+
|
71 |
+
public function locateString($string, $direction, $limit = null, $after = false) {
|
72 |
+
$searchStart = $limit === null ? null : $this->getPosition();
|
73 |
+
$length = strlen($string);
|
74 |
+
$position = $searchStart;
|
75 |
+
if ($direction === self::DIRECTION_REVERSE)
|
76 |
+
$position -= $length;
|
77 |
+
do {
|
78 |
+
try {
|
79 |
+
$this->seek($position, SEEK_SET);
|
80 |
+
}
|
81 |
+
catch (IoException $e) {
|
82 |
+
//This assumes that a seek failure means that the target position is out of range (and hence the search just needs to stop rather than throwing an exception)
|
83 |
+
break;
|
84 |
+
}
|
85 |
+
$test = $this->read($length);
|
86 |
+
if ($test === $string) {
|
87 |
+
return $position + ($after ? $length : 0);
|
88 |
+
}
|
89 |
+
$position += $direction;
|
90 |
+
} while ($limit === null || abs($position - $searchStart) < $limit);
|
91 |
+
return null;
|
92 |
+
}
|
93 |
+
|
94 |
+
}
|
vendor/wordfence/mmdb-reader/src/IpAddress.php
ADDED
@@ -0,0 +1,99 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Wordfence\MmdbReader;
|
4 |
+
|
5 |
+
use Wordfence\MmdbReader\Exception\InvalidIpAddressException;
|
6 |
+
|
7 |
+
class IpAddress implements IpAddressInterface {
|
8 |
+
|
9 |
+
const TYPE_IPV4 = 4;
|
10 |
+
const TYPE_IPV6 = 6;
|
11 |
+
|
12 |
+
const LENGTH_IPV4 = 4;
|
13 |
+
const LENGTH_IPV6 = 16;
|
14 |
+
|
15 |
+
const SEPARATOR_IPV4 = '.';
|
16 |
+
const SEPARATOR_IPV6 = ':';
|
17 |
+
|
18 |
+
private static $SEPARATORS = array(
|
19 |
+
self::SEPARATOR_IPV4,
|
20 |
+
self::SEPARATOR_IPV6
|
21 |
+
);
|
22 |
+
|
23 |
+
private $humanReadable;
|
24 |
+
private $binary;
|
25 |
+
private $type;
|
26 |
+
|
27 |
+
protected function __construct($humanReadable, $binary) {
|
28 |
+
$this->humanReadable = $humanReadable;
|
29 |
+
$this->binary = $binary;
|
30 |
+
$this->type = self::resolveType($binary);
|
31 |
+
}
|
32 |
+
|
33 |
+
public function getHumanReadable() {
|
34 |
+
return $this->humanReadable;
|
35 |
+
}
|
36 |
+
|
37 |
+
public function getBinary() {
|
38 |
+
return $this->binary;
|
39 |
+
}
|
40 |
+
|
41 |
+
public function getType() {
|
42 |
+
return $this->type;
|
43 |
+
}
|
44 |
+
|
45 |
+
private static function resolveType($binary) {
|
46 |
+
return strlen($binary) === self::LENGTH_IPV6 ? self::TYPE_IPV6 : self::TYPE_IPV4;
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Create an IpAddress instance from a human-readable string
|
51 |
+
* @param string $humanReadable a human readable IP address
|
52 |
+
* @return IpAddress
|
53 |
+
* @throws InvalidIpAddressException if $humanReadable is not a valid human-readable IP address
|
54 |
+
*/
|
55 |
+
public static function createFromHumanReadable($humanReadable) {
|
56 |
+
$binary = inet_pton($humanReadable);
|
57 |
+
if ($binary === false)
|
58 |
+
throw new InvalidIpAddressException("IP address \"{$humanReadable}\" is malformed");
|
59 |
+
return new self($humanReadable, $binary);
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* Create an IpAddress instance from a binary string
|
64 |
+
* @param string $binary a binary IP address
|
65 |
+
* @return IpAddress
|
66 |
+
* @throws InvalidIpAddressException if $binary is not a valid binary IP address
|
67 |
+
*/
|
68 |
+
public static function createFromBinary($binary) {
|
69 |
+
$humanReadable = inet_ntop($binary);
|
70 |
+
if ($humanReadable === false)
|
71 |
+
throw new InvalidIpAddressException("Binary IP address data is invalid: " . bin2hex($binary));
|
72 |
+
return new self($humanReadable, $binary);
|
73 |
+
}
|
74 |
+
|
75 |
+
/**
|
76 |
+
* Create an IpAddress instance from an unknown string representation
|
77 |
+
* @param string $string either a human-readable or binary IP address
|
78 |
+
* @return IpAddress
|
79 |
+
* @throws InvalidIpAddressException if $string cannot be parsed as a valid IP address
|
80 |
+
*/
|
81 |
+
public static function createFromString($string) {
|
82 |
+
foreach (self::$SEPARATORS as $separator) {
|
83 |
+
if (strpos($string, $separator) !== false) {
|
84 |
+
try {
|
85 |
+
return self::createFromHumanReadable($string);
|
86 |
+
}
|
87 |
+
catch (InvalidIpAddressException $e) {
|
88 |
+
break;
|
89 |
+
}
|
90 |
+
}
|
91 |
+
}
|
92 |
+
return self::createFromBinary($string);
|
93 |
+
}
|
94 |
+
|
95 |
+
public function __toString() {
|
96 |
+
return $this->getHumanReadable();
|
97 |
+
}
|
98 |
+
|
99 |
+
}
|
vendor/wordfence/mmdb-reader/src/IpAddressInterface.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Wordfence\MmdbReader;
|
4 |
+
|
5 |
+
interface IpAddressInterface {
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Get the human-readable (presentation format) version of the address
|
9 |
+
* @return string
|
10 |
+
* @see inet_ntop
|
11 |
+
*/
|
12 |
+
public function getHumanReadable();
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Get the binary (network format) version of the address
|
16 |
+
* @return string
|
17 |
+
* @see inet_pton
|
18 |
+
*/
|
19 |
+
public function getBinary();
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Get the type of the address (IPv4 or IPv6)
|
23 |
+
* @return int 4 for IPv4 and 6 for IPv6
|
24 |
+
*/
|
25 |
+
public function getType();
|
26 |
+
|
27 |
+
}
|
vendor/wordfence/mmdb-reader/src/Node.php
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Wordfence\MmdbReader;
|
4 |
+
|
5 |
+
class Node {
|
6 |
+
|
7 |
+
const SIDE_LEFT = 0;
|
8 |
+
const SIDE_RIGHT = 1;
|
9 |
+
|
10 |
+
private $reader;
|
11 |
+
private $data;
|
12 |
+
private $left, $right;
|
13 |
+
|
14 |
+
public function __construct($reader, $data) {
|
15 |
+
$this->reader = $reader;
|
16 |
+
$this->data = $data;
|
17 |
+
}
|
18 |
+
|
19 |
+
public function getRecord($side) {
|
20 |
+
$value = $this->reader->extractRecord($this->data, $side);
|
21 |
+
return new NodeRecord($this->reader, $value);
|
22 |
+
}
|
23 |
+
|
24 |
+
public function getLeft() {
|
25 |
+
return $this->getRecord(self::SIDE_LEFT);
|
26 |
+
}
|
27 |
+
|
28 |
+
public function getRight() {
|
29 |
+
return $this->getRecord(self::SIDE_RIGHT);
|
30 |
+
}
|
31 |
+
|
32 |
+
}
|
vendor/wordfence/mmdb-reader/src/NodeReader.php
ADDED
@@ -0,0 +1,78 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Wordfence\MmdbReader;
|
4 |
+
|
5 |
+
class NodeReader {
|
6 |
+
|
7 |
+
const SHARED_MASK_LEFT = 240; //0b11110000
|
8 |
+
const SHARED_MASK_RIGHT = 15; //0b00001111
|
9 |
+
|
10 |
+
private $handle;
|
11 |
+
private $nodeSize, $nodeCount;
|
12 |
+
private $searchTreeSectionSize;
|
13 |
+
private $recordWholeBytes, $recordBits;
|
14 |
+
private $sharedByteOffset;
|
15 |
+
|
16 |
+
public function __construct($handle, $nodeSize, $nodeCount) {
|
17 |
+
$this->handle = $handle;
|
18 |
+
$this->nodeSize = $nodeSize;
|
19 |
+
$this->nodeCount = $nodeCount;
|
20 |
+
$this->searchTreeSectionSize = $nodeSize * $nodeCount;
|
21 |
+
$this->computeRecordSizes();
|
22 |
+
}
|
23 |
+
|
24 |
+
private function computeRecordSizes() {
|
25 |
+
$this->recordWholeBytes = (int) ($this->nodeSize / 2);
|
26 |
+
$this->recordBits = $this->nodeSize % 2;
|
27 |
+
if ($this->recordBits > 0)
|
28 |
+
$this->sharedByteOffset = $this->recordWholeBytes + 1;
|
29 |
+
}
|
30 |
+
|
31 |
+
public function read($position = 0) {
|
32 |
+
if ($position > $this->nodeCount)
|
33 |
+
throw new InvalidOperationException("Read requested for node at {$position}, but only {$this->nodeCount} nodes are present");
|
34 |
+
$offset = $position * $this->nodeSize;
|
35 |
+
$this->handle->seek($offset, SEEK_SET);
|
36 |
+
$data = $this->handle->read($this->nodeSize);
|
37 |
+
return new Node($this, $data);
|
38 |
+
}
|
39 |
+
|
40 |
+
private function hasSharedByte() {
|
41 |
+
return $this->sharedByteOffset !== null;
|
42 |
+
}
|
43 |
+
|
44 |
+
private function getWholeByteOffset($side) {
|
45 |
+
return $side === Node::SIDE_LEFT ? 0 : ($this->hasSharedByte() ? $this->sharedByteOffset : $this->recordWholeBytes);
|
46 |
+
}
|
47 |
+
|
48 |
+
public function extractRecord($nodeData, $side) {
|
49 |
+
if ($this->hasSharedByte()) {
|
50 |
+
$sharedByte = ord($nodeData[$this->sharedByteOffset]);
|
51 |
+
if ($side === Node::SIDE_LEFT) {
|
52 |
+
$value = $sharedByte >> 4;
|
53 |
+
}
|
54 |
+
else {
|
55 |
+
$value = $sharedByte & self::SHARED_MASK_RIGHT;
|
56 |
+
}
|
57 |
+
}
|
58 |
+
else {
|
59 |
+
$value = 0;
|
60 |
+
}
|
61 |
+
$offset = $this->getWholeByteOffset($side);
|
62 |
+
$end = $offset + $this->recordWholeBytes;
|
63 |
+
for ($i = $offset; $i < $end; $i++) {
|
64 |
+
$byte = ord($nodeData[$i]);
|
65 |
+
$value = ($value << 8) | $byte;
|
66 |
+
}
|
67 |
+
return $value;
|
68 |
+
}
|
69 |
+
|
70 |
+
public function getNodeCount() {
|
71 |
+
return $this->nodeCount;
|
72 |
+
}
|
73 |
+
|
74 |
+
public function getSearchTreeSectionSize() {
|
75 |
+
return $this->searchTreeSectionSize;
|
76 |
+
}
|
77 |
+
|
78 |
+
}
|
vendor/wordfence/mmdb-reader/src/NodeRecord.php
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Wordfence\MmdbReader;
|
4 |
+
|
5 |
+
use Wordfence\MmdbReader\Exception\InvalidOperationException;
|
6 |
+
|
7 |
+
class NodeRecord {
|
8 |
+
|
9 |
+
private $reader;
|
10 |
+
private $value;
|
11 |
+
|
12 |
+
public function __construct($reader, $value) {
|
13 |
+
$this->reader = $reader;
|
14 |
+
$this->value = $value;
|
15 |
+
}
|
16 |
+
|
17 |
+
public function getValue() {
|
18 |
+
return $this->value;
|
19 |
+
}
|
20 |
+
|
21 |
+
public function isNodePointer() {
|
22 |
+
return $this->value < $this->reader->getNodeCount();
|
23 |
+
}
|
24 |
+
|
25 |
+
public function getNextNode() {
|
26 |
+
if (!$this->isNodePointer())
|
27 |
+
throw new InvalidOperationException('The next node was requested for a record that is not a node pointer');
|
28 |
+
try {
|
29 |
+
return $this->reader->read($this->getValue());
|
30 |
+
}
|
31 |
+
catch (InvalidOperationException $e) {
|
32 |
+
throw new FormatException('Invalid node pointer found in database', $e);
|
33 |
+
}
|
34 |
+
}
|
35 |
+
|
36 |
+
public function isNullPointer() {
|
37 |
+
return $this->value === $this->reader->getNodeCount();
|
38 |
+
}
|
39 |
+
|
40 |
+
public function isDataPointer() {
|
41 |
+
return $this->value > $this->reader->getNodeCount();
|
42 |
+
}
|
43 |
+
|
44 |
+
public function getDataAddress() {
|
45 |
+
if (!$this->isDataPointer())
|
46 |
+
throw new InvalidOperationException('The data address was requested for a record that is not a data pointer');
|
47 |
+
return $this->value - $this->reader->getNodeCount() + $this->reader->getSearchTreeSectionSize();
|
48 |
+
}
|
49 |
+
|
50 |
+
}
|
vendor/wordfence/wf-waf/src/lib/rules.php
CHANGED
@@ -951,7 +951,7 @@ class wfWAFRuleComparison implements wfWAFRuleInterface {
|
|
951 |
if ($fh === false)
|
952 |
return false;
|
953 |
//T_BAD_CHARACTER is only available since PHP 7.4.0 and before 7.0.0
|
954 |
-
$T_BAD_CHARACTER = defined('T_BAD_CHARACTER') ? T_BAD_CHARACTER : 10001;
|
955 |
$phpBlock = null;
|
956 |
$wrappedTokenCheckBytes = '';
|
957 |
$maxTokenSize = 15; //__halt_compiler
|
951 |
if ($fh === false)
|
952 |
return false;
|
953 |
//T_BAD_CHARACTER is only available since PHP 7.4.0 and before 7.0.0
|
954 |
+
$T_BAD_CHARACTER = defined('T_BAD_CHARACTER') ? constant('T_BAD_CHARACTER') : 10001;
|
955 |
$phpBlock = null;
|
956 |
$wrappedTokenCheckBytes = '';
|
957 |
$maxTokenSize = 15; //__halt_compiler
|
vendor/wordfence/wf-waf/src/lib/storage/mysql.php
CHANGED
@@ -576,7 +576,6 @@ class wfWAFStorageMySQL implements wfWAFStorageInterface {
|
|
576 |
'disableWAFIPBlocking',
|
577 |
'advancedBlockingEnabled',
|
578 |
'blockCustomText',
|
579 |
-
'betaThreatDefenseFeed',
|
580 |
'whitelistedServiceIPs'
|
581 |
),
|
582 |
);
|
576 |
'disableWAFIPBlocking',
|
577 |
'advancedBlockingEnabled',
|
578 |
'blockCustomText',
|
|
|
579 |
'whitelistedServiceIPs'
|
580 |
),
|
581 |
);
|
vendor/wordfence/wf-waf/src/lib/waf.php
CHANGED
@@ -510,7 +510,6 @@ auEa+7b+FGTKs7dUo2BNGR7OVifK4GZ8w/ajS0TelhrSRi3BBQCGXLzUO/UURUAh
|
|
510 |
'blockCustomText' => 'synced',
|
511 |
'timeoffset_wf' => 'synced',
|
512 |
'advancedBlockingEnabled' => 'synced',
|
513 |
-
'betaThreatDefenseFeed' => 'synced',
|
514 |
'disableWAFIPBlocking' => 'synced',
|
515 |
'patternBlocks' => 'synced',
|
516 |
'countryBlocks' => 'synced',
|
@@ -1887,7 +1886,6 @@ class wfWAFCronFetchRulesEvent extends wfWAFCronEvent {
|
|
1887 |
's' => $waf->getStorageEngine()->getConfig('siteURL', null, 'synced') ? $waf->getStorageEngine()->getConfig('siteURL', null, 'synced') : $guessSiteURL,
|
1888 |
'h' => $waf->getStorageEngine()->getConfig('homeURL', null, 'synced') ? $waf->getStorageEngine()->getConfig('homeURL', null, 'synced') : $guessSiteURL,
|
1889 |
'openssl' => $waf->hasOpenSSL() ? 1 : 0,
|
1890 |
-
'betaFeed' => (int) $waf->getStorageEngine()->getConfig('betaThreatDefenseFeed', null, 'synced'),
|
1891 |
'lang' => $waf->getStorageEngine()->getConfig('WPLANG', null, 'synced'),
|
1892 |
);
|
1893 |
$lastRuleHash=$this->forceUpdate ? null : $waf->getStorageEngine()->getConfig('lastRuleHash', null, 'transient');
|
@@ -1950,7 +1948,6 @@ class wfWAFCronFetchRulesEvent extends wfWAFCronEvent {
|
|
1950 |
's' => $waf->getStorageEngine()->getConfig('siteURL', null, 'synced') ? $waf->getStorageEngine()->getConfig('siteURL', null, 'synced') : $guessSiteURL,
|
1951 |
'h' => $waf->getStorageEngine()->getConfig('homeURL', null, 'synced') ? $waf->getStorageEngine()->getConfig('homeURL', null, 'synced') : $guessSiteURL,
|
1952 |
'openssl' => $waf->hasOpenSSL() ? 1 : 0,
|
1953 |
-
'betaFeed' => (int) $waf->getStorageEngine()->getConfig('betaThreatDefenseFeed', null, 'synced'),
|
1954 |
'hash' => $this->forceUpdate ? null : $waf->getStorageEngine()->getConfig('lastMalwareHash', null, 'transient'),
|
1955 |
'cs-hash' => $this->forceUpdate ? null : $waf->getStorageEngine()->getConfig('lastMalwareHashCommonStrings', null, 'transient'),
|
1956 |
'lang' => $waf->getStorageEngine()->getConfig('WPLANG', null, 'synced')
|
510 |
'blockCustomText' => 'synced',
|
511 |
'timeoffset_wf' => 'synced',
|
512 |
'advancedBlockingEnabled' => 'synced',
|
|
|
513 |
'disableWAFIPBlocking' => 'synced',
|
514 |
'patternBlocks' => 'synced',
|
515 |
'countryBlocks' => 'synced',
|
1886 |
's' => $waf->getStorageEngine()->getConfig('siteURL', null, 'synced') ? $waf->getStorageEngine()->getConfig('siteURL', null, 'synced') : $guessSiteURL,
|
1887 |
'h' => $waf->getStorageEngine()->getConfig('homeURL', null, 'synced') ? $waf->getStorageEngine()->getConfig('homeURL', null, 'synced') : $guessSiteURL,
|
1888 |
'openssl' => $waf->hasOpenSSL() ? 1 : 0,
|
|
|
1889 |
'lang' => $waf->getStorageEngine()->getConfig('WPLANG', null, 'synced'),
|
1890 |
);
|
1891 |
$lastRuleHash=$this->forceUpdate ? null : $waf->getStorageEngine()->getConfig('lastRuleHash', null, 'transient');
|
1948 |
's' => $waf->getStorageEngine()->getConfig('siteURL', null, 'synced') ? $waf->getStorageEngine()->getConfig('siteURL', null, 'synced') : $guessSiteURL,
|
1949 |
'h' => $waf->getStorageEngine()->getConfig('homeURL', null, 'synced') ? $waf->getStorageEngine()->getConfig('homeURL', null, 'synced') : $guessSiteURL,
|
1950 |
'openssl' => $waf->hasOpenSSL() ? 1 : 0,
|
|
|
1951 |
'hash' => $this->forceUpdate ? null : $waf->getStorageEngine()->getConfig('lastMalwareHash', null, 'transient'),
|
1952 |
'cs-hash' => $this->forceUpdate ? null : $waf->getStorageEngine()->getConfig('lastMalwareHashCommonStrings', null, 'transient'),
|
1953 |
'lang' => $waf->getStorageEngine()->getConfig('WPLANG', null, 'synced')
|
views/dashboard/options-group-general.php
CHANGED
@@ -63,6 +63,19 @@ if (!isset($collapseable)) {
|
|
63 |
echo wfView::create('dashboard/option-howgetips')->render();
|
64 |
?>
|
65 |
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
<li>
|
67 |
<?php
|
68 |
echo wfView::create('options/option-toggled', array(
|
63 |
echo wfView::create('dashboard/option-howgetips')->render();
|
64 |
?>
|
65 |
</li>
|
66 |
+
<li>
|
67 |
+
<?php
|
68 |
+
echo wfView::create('options/option-toggled', array(
|
69 |
+
'optionName' => 'enableRemoteIpLookup',
|
70 |
+
'enabledValue' => 1,
|
71 |
+
'disabledValue' => 0,
|
72 |
+
'value' => wfConfig::get('enableRemoteIpLookup', true) ? 1 : 0,
|
73 |
+
'title' => __('Look up visitor IP locations via Wordfence servers', 'wordfence'),
|
74 |
+
'subtitle' => __('If this option is disabled, Wordfence can look up countries for visitor IP addresses using a local database, but cannot look up regions or cities', 'wordfence'),
|
75 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_GENERAL_REMOTE_IP_LOOKUP)
|
76 |
+
))->render();
|
77 |
+
?>
|
78 |
+
</li>
|
79 |
<li>
|
80 |
<?php
|
81 |
echo wfView::create('options/option-toggled', array(
|
views/scanner/issue-base.php
CHANGED
@@ -22,7 +22,7 @@ if (!isset($textOutput) || !is_array($textOutput)):
|
|
22 |
{{if severity == <?php echo wfIssues::SEVERITY_CRITICAL ?>}}wf-issue-severity-critical{{/if}}
|
23 |
{{if severity == <?php echo wfIssues::SEVERITY_HIGH ?>}}wf-issue-severity-high{{/if}}
|
24 |
{{if severity == <?php echo wfIssues::SEVERITY_MEDIUM ?>}}wf-issue-severity-medium{{/if}}
|
25 |
-
{{if severity == <?php echo wfIssues::SEVERITY_LOW ?>}}wf-issue-severity-low{{/if}}" data-issue-id="${id}" data-issue-type="<?php echo $internalType; ?>" data-issue-severity="${severity}" data-high-sensitivity="{{if (data.highSense == '1')}}1{{else}}0{{/if}}"
|
26 |
<li class="wf-issue-summary">
|
27 |
<ul>
|
28 |
<li class="wf-issue-icon"><?php echo $iconSVG; ?></li>
|
22 |
{{if severity == <?php echo wfIssues::SEVERITY_CRITICAL ?>}}wf-issue-severity-critical{{/if}}
|
23 |
{{if severity == <?php echo wfIssues::SEVERITY_HIGH ?>}}wf-issue-severity-high{{/if}}
|
24 |
{{if severity == <?php echo wfIssues::SEVERITY_MEDIUM ?>}}wf-issue-severity-medium{{/if}}
|
25 |
+
{{if severity == <?php echo wfIssues::SEVERITY_LOW ?>}}wf-issue-severity-low{{/if}}" data-issue-id="${id}" data-issue-type="<?php echo $internalType; ?>" data-issue-severity="${severity}" data-high-sensitivity="{{if (data.highSense == '1')}}1{{else}}0{{/if}}">
|
26 |
<li class="wf-issue-summary">
|
27 |
<ul>
|
28 |
<li class="wf-issue-icon"><?php echo $iconSVG; ?></li>
|
views/scanner/issue-wfPluginVulnerable.php
CHANGED
@@ -14,7 +14,6 @@ echo wfView::create('scanner/issue-base', array(
|
|
14 |
null,
|
15 |
__('Details', 'wordfence') => '{{html longMsg}}',
|
16 |
null,
|
17 |
-
__('Plugin URL', 'wordfence') => array('data.PluginURI', '<a href="${data.PluginURI}" target="_blank" rel="noopener noreferrer"><span class="wf-hidden-xs wf-split-word">${data.PluginURI}</span><span class="wf-visible-xs">' . __('View', 'wordfence') . '</span><span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>'),
|
18 |
__('Repository URL', 'wordfence') => array('data.wpURL', '<a href="${data.wpURL}" target="_blank" rel="noopener noreferrer"><span class="wf-hidden-xs wf-split-word">${data.wpURL}</span><span class="wf-visible-xs">' . __('View', 'wordfence') . '</span><span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>'),
|
19 |
__('Vulnerability Information', 'wordfence') => array('data.vulnerabilityLink', '<a href="${data.vulnerabilityLink}" target="_blank" rel="noopener noreferrer"><span class="wf-hidden-xs wf-split-word">${data.vulnerabilityLink}</span><span class="wf-visible-xs">' . __('View', 'wordfence') . '</span><span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>'),
|
20 |
),
|
@@ -29,8 +28,6 @@ echo wfView::create('scanner/issue-base', array(
|
|
29 |
null,
|
30 |
__('Details', 'wordfence') => '$longMsg',
|
31 |
null,
|
32 |
-
__('Plugin URL', 'wordfence') => '$data.PluginURI',
|
33 |
-
__('Repository URL', 'wordfence') => '$data.wpURL',
|
34 |
__('Vulnerability Information', 'wordfence') => '$data.vulnerabilityLink',
|
35 |
),
|
36 |
))->render();
|
14 |
null,
|
15 |
__('Details', 'wordfence') => '{{html longMsg}}',
|
16 |
null,
|
|
|
17 |
__('Repository URL', 'wordfence') => array('data.wpURL', '<a href="${data.wpURL}" target="_blank" rel="noopener noreferrer"><span class="wf-hidden-xs wf-split-word">${data.wpURL}</span><span class="wf-visible-xs">' . __('View', 'wordfence') . '</span><span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>'),
|
18 |
__('Vulnerability Information', 'wordfence') => array('data.vulnerabilityLink', '<a href="${data.vulnerabilityLink}" target="_blank" rel="noopener noreferrer"><span class="wf-hidden-xs wf-split-word">${data.vulnerabilityLink}</span><span class="wf-visible-xs">' . __('View', 'wordfence') . '</span><span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>'),
|
19 |
),
|
28 |
null,
|
29 |
__('Details', 'wordfence') => '$longMsg',
|
30 |
null,
|
|
|
|
|
31 |
__('Vulnerability Information', 'wordfence') => '$data.vulnerabilityLink',
|
32 |
),
|
33 |
))->render();
|
views/scanner/options-group-advanced.php
CHANGED
@@ -64,6 +64,21 @@ if (!isset($collapseable)) {
|
|
64 |
))->render();
|
65 |
?>
|
66 |
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
</ul>
|
68 |
</div>
|
69 |
</div>
|
64 |
))->render();
|
65 |
?>
|
66 |
</li>
|
67 |
+
<li>
|
68 |
+
<?php
|
69 |
+
$options = array();
|
70 |
+
foreach (range(0, wfScanMonitor::MAX_RESUME_ATTEMPTS) as $number) {
|
71 |
+
$options[] = array('value' => $number, 'label' => $number > 0 ? $number : '0 (Disabled)');
|
72 |
+
}
|
73 |
+
echo wfView::create('options/option-select', array(
|
74 |
+
'selectOptionName' => 'scan_max_resume_attempts',
|
75 |
+
'selectOptions' => $options,
|
76 |
+
'selectValue' => wfConfig::get('scan_max_resume_attempts', wfScanMonitor::DEFAULT_RESUME_ATTEMPTS),
|
77 |
+
'title' => __('Maximum number of attempts to resume each scan stage', 'wordfence'),
|
78 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_MAX_RESUME_ATTEMPTS),
|
79 |
+
))->render();
|
80 |
+
?>
|
81 |
+
</li>
|
82 |
</ul>
|
83 |
</div>
|
84 |
</div>
|
views/scanner/scan-failed.php
CHANGED
@@ -6,16 +6,21 @@ if (!defined('WORDFENCE_VERSION')) { exit; }
|
|
6 |
*
|
7 |
* Expects $messageHTML and $buttonTitle.
|
8 |
*
|
|
|
9 |
* @var string $messageHTML The message to show.
|
10 |
* @var string $buttonTitle The title of the kill/reset button.
|
11 |
*/
|
|
|
|
|
|
|
|
|
12 |
?>
|
13 |
<ul class="wf-flex-horizontal wf-flex-full-width wf-no-top">
|
14 |
<li>
|
15 |
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 116.93 108.46"><path d="M115.82,96.14,65.76,4.37a8.33,8.33,0,0,0-3.06-3.2,8.24,8.24,0,0,0-8.47,0,8.34,8.34,0,0,0-3.07,3.2L1.11,96.14a7.78,7.78,0,0,0,.13,8.21,8.16,8.16,0,0,0,3,3,8.13,8.13,0,0,0,4.14,1.11H108.52a8.36,8.36,0,0,0,7.17-4.11,7.78,7.78,0,0,0,.13-8.21Zm-49-6.52a2.09,2.09,0,0,1-.62,1.53,2,2,0,0,1-1.46.62H52.21a2,2,0,0,1-1.46-.62,2.08,2.08,0,0,1-.62-1.53V77.24a2.08,2.08,0,0,1,.62-1.53,2,2,0,0,1,1.46-.62H64.72a2,2,0,0,1,1.47.62,2.09,2.09,0,0,1,.62,1.53V89.62Zm-.13-24.37A1.45,1.45,0,0,1,66,66.32a2.66,2.66,0,0,1-1.53.42H52.4a2.81,2.81,0,0,1-1.56-.42,1.25,1.25,0,0,1-.65-1.08L49.08,35.46a1.56,1.56,0,0,1,.65-1.37,2.52,2.52,0,0,1,1.56-.72H65.64a2.51,2.51,0,0,1,1.57.72,1.43,1.43,0,0,1,.65,1.24Zm0,0"/></svg>
|
16 |
</li>
|
17 |
<li>
|
18 |
-
<h4><?php
|
19 |
<p><?php echo $messageHTML; ?></p>
|
20 |
<?php if (isset($rawErrorHTML) && !empty($rawErrorHTML)): ?>
|
21 |
<p class="wf-add-top"><?php esc_html_e('The error returned was:', 'wordfence'); ?></p>
|
6 |
*
|
7 |
* Expects $messageHTML and $buttonTitle.
|
8 |
*
|
9 |
+
* @var string $messageTitle The title for the message (optional, defaults to 'Scan Failed')
|
10 |
* @var string $messageHTML The message to show.
|
11 |
* @var string $buttonTitle The title of the kill/reset button.
|
12 |
*/
|
13 |
+
|
14 |
+
if (!isset($messageTitle))
|
15 |
+
$messageTitle = __('Scan Failed', 'wordfence');
|
16 |
+
|
17 |
?>
|
18 |
<ul class="wf-flex-horizontal wf-flex-full-width wf-no-top">
|
19 |
<li>
|
20 |
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 116.93 108.46"><path d="M115.82,96.14,65.76,4.37a8.33,8.33,0,0,0-3.06-3.2,8.24,8.24,0,0,0-8.47,0,8.34,8.34,0,0,0-3.07,3.2L1.11,96.14a7.78,7.78,0,0,0,.13,8.21,8.16,8.16,0,0,0,3,3,8.13,8.13,0,0,0,4.14,1.11H108.52a8.36,8.36,0,0,0,7.17-4.11,7.78,7.78,0,0,0,.13-8.21Zm-49-6.52a2.09,2.09,0,0,1-.62,1.53,2,2,0,0,1-1.46.62H52.21a2,2,0,0,1-1.46-.62,2.08,2.08,0,0,1-.62-1.53V77.24a2.08,2.08,0,0,1,.62-1.53,2,2,0,0,1,1.46-.62H64.72a2,2,0,0,1,1.47.62,2.09,2.09,0,0,1,.62,1.53V89.62Zm-.13-24.37A1.45,1.45,0,0,1,66,66.32a2.66,2.66,0,0,1-1.53.42H52.4a2.81,2.81,0,0,1-1.56-.42,1.25,1.25,0,0,1-.65-1.08L49.08,35.46a1.56,1.56,0,0,1,.65-1.37,2.52,2.52,0,0,1,1.56-.72H65.64a2.51,2.51,0,0,1,1.57.72,1.43,1.43,0,0,1,.65,1.24Zm0,0"/></svg>
|
21 |
</li>
|
22 |
<li>
|
23 |
+
<h4><?php echo esc_html($messageTitle); ?></h4>
|
24 |
<p><?php echo $messageHTML; ?></p>
|
25 |
<?php if (isset($rawErrorHTML) && !empty($rawErrorHTML)): ?>
|
26 |
<p class="wf-add-top"><?php esc_html_e('The error returned was:', 'wordfence'); ?></p>
|
views/tools/options-group-live-traffic.php
CHANGED
@@ -120,7 +120,7 @@ if (!isset($hideShowMenuItem)) {
|
|
120 |
echo wfView::create('options/option-text', array(
|
121 |
'textOptionName' => 'liveTraf_maxAge',
|
122 |
'textValue' => wfConfig::get('liveTraf_maxAge'),
|
123 |
-
'title' => __('Maximum days to keep Live Traffic data (
|
124 |
))->render();
|
125 |
?>
|
126 |
</li>
|
120 |
echo wfView::create('options/option-text', array(
|
121 |
'textOptionName' => 'liveTraf_maxAge',
|
122 |
'textValue' => wfConfig::get('liveTraf_maxAge'),
|
123 |
+
'title' => __('Maximum days to keep Live Traffic data (1-30 days)', 'wordfence'),
|
124 |
))->render();
|
125 |
?>
|
126 |
</li>
|
waf/wfWAFGeoIP2.php
DELETED
@@ -1,70 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once(dirname(__FILE__) . '/../vendor/autoload.php');
|
4 |
-
|
5 |
-
use GeoIp2\Database\Reader;
|
6 |
-
|
7 |
-
if (!defined('WFWAF_RUN_COMPLETE')) {
|
8 |
-
class wfWAFGeoIP2 {
|
9 |
-
private $_reader;
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Returns the singleton wfWAFGeoIP2.
|
13 |
-
*
|
14 |
-
* @return wfWAFGeoIP2
|
15 |
-
*/
|
16 |
-
public static function shared() {
|
17 |
-
static $_geoip = null;
|
18 |
-
if ($_geoip === null) {
|
19 |
-
$_geoip = new wfWAFGeoIP2();
|
20 |
-
}
|
21 |
-
return $_geoip;
|
22 |
-
}
|
23 |
-
|
24 |
-
public function __construct() {
|
25 |
-
try {
|
26 |
-
if (file_exists(WFWAF_LOG_PATH . '/GeoLite2-Country.mmdb')) {
|
27 |
-
$this->_reader = new Reader(WFWAF_LOG_PATH . '/GeoLite2-Country.mmdb');
|
28 |
-
return;
|
29 |
-
}
|
30 |
-
}
|
31 |
-
catch (Exception $e) {
|
32 |
-
//Fall through to bundled copy
|
33 |
-
}
|
34 |
-
|
35 |
-
$this->_reader = new Reader(__DIR__ . '/../lib/GeoLite2-Country.mmdb'); //Can throw, but we don't catch it because it means the installation is likely corrupt and needs fixed anyway
|
36 |
-
}
|
37 |
-
|
38 |
-
/**
|
39 |
-
* Returns the database version in use. This is the timestamp of when it was packaged.
|
40 |
-
*
|
41 |
-
* @return null|int
|
42 |
-
*/
|
43 |
-
public function version() {
|
44 |
-
try {
|
45 |
-
return $this->_reader->metadata()->buildEpoch;
|
46 |
-
}
|
47 |
-
catch (Exception $e) {
|
48 |
-
//Fall through
|
49 |
-
}
|
50 |
-
return null;
|
51 |
-
}
|
52 |
-
|
53 |
-
/**
|
54 |
-
* Returns the country code for the IP if known.
|
55 |
-
*
|
56 |
-
* @param string $ip
|
57 |
-
* @return null|string
|
58 |
-
*/
|
59 |
-
public function countryCode($ip) {
|
60 |
-
try {
|
61 |
-
$record = $this->_reader->country($ip);
|
62 |
-
return $record->country->isoCode;
|
63 |
-
}
|
64 |
-
catch (Exception $e) {
|
65 |
-
//Fall through
|
66 |
-
}
|
67 |
-
return null;
|
68 |
-
}
|
69 |
-
}
|
70 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
waf/wfWAFIPBlocksController.php
CHANGED
@@ -480,22 +480,13 @@ class wfWAFIPBlocksController
|
|
480 |
}
|
481 |
|
482 |
protected function ip2Country($ip) {
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
$geoip = @wfWAFGeoIP2::shared();
|
491 |
-
$code = @$geoip->countryCode($ip);
|
492 |
-
return is_string($code) ? $code : '';
|
493 |
-
}
|
494 |
-
catch (Exception $e) {
|
495 |
-
//Ignore
|
496 |
-
}
|
497 |
-
|
498 |
-
return '';
|
499 |
}
|
500 |
|
501 |
/**
|
480 |
}
|
481 |
|
482 |
protected function ip2Country($ip) {
|
483 |
+
/**
|
484 |
+
* It's possible this class is already loaded from a different installation of the plugin
|
485 |
+
* by the time this is reached. See wfUtils::requireIpLocator for additional details.
|
486 |
+
*/
|
487 |
+
if (!class_exists('wfIpLocator'))
|
488 |
+
require_once __DIR__ . '/../lib/wfIpLocator.php';
|
489 |
+
return wfIpLocator::getInstance()->getCountryCode($ip);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
490 |
}
|
491 |
|
492 |
/**
|
wordfence.php
CHANGED
@@ -4,7 +4,7 @@ Plugin Name: Wordfence Security
|
|
4 |
Plugin URI: http://www.wordfence.com/
|
5 |
Description: Wordfence Security - Anti-virus, Firewall and Malware Scan
|
6 |
Author: Wordfence
|
7 |
-
Version: 7.
|
8 |
Author URI: http://www.wordfence.com/
|
9 |
Text Domain: wordfence
|
10 |
Domain Path: /languages
|
@@ -38,8 +38,8 @@ if(defined('WP_INSTALLING') && WP_INSTALLING){
|
|
38 |
if (!defined('ABSPATH')) {
|
39 |
exit;
|
40 |
}
|
41 |
-
define('WORDFENCE_VERSION', '7.
|
42 |
-
define('WORDFENCE_BUILD_NUMBER', '
|
43 |
define('WORDFENCE_BASENAME', function_exists('plugin_basename') ? plugin_basename(__FILE__) :
|
44 |
basename(dirname(__FILE__)) . '/' . basename(__FILE__));
|
45 |
|
4 |
Plugin URI: http://www.wordfence.com/
|
5 |
Description: Wordfence Security - Anti-virus, Firewall and Malware Scan
|
6 |
Author: Wordfence
|
7 |
+
Version: 7.7.0
|
8 |
Author URI: http://www.wordfence.com/
|
9 |
Text Domain: wordfence
|
10 |
Domain Path: /languages
|
38 |
if (!defined('ABSPATH')) {
|
39 |
exit;
|
40 |
}
|
41 |
+
define('WORDFENCE_VERSION', '7.7.0');
|
42 |
+
define('WORDFENCE_BUILD_NUMBER', '1664811036');
|
43 |
define('WORDFENCE_BASENAME', function_exists('plugin_basename') ? plugin_basename(__FILE__) :
|
44 |
basename(dirname(__FILE__)) . '/' . basename(__FILE__));
|
45 |
|