a:4:{s:6:"_token";s:40:"WncZzTAJqbJstRFjaBRPh05lTGpDgogtBhBtmQyw";s:9:"_previous";a:1:{s:3:"url";s:33:"https://safetysolutionsmorbi.com/";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}s:16:"user_after_login";s:34:" PHP 7.4.34 - phpinfo()
PHP logo

PHP Version 7.4.34

System Linux ns1.omlinux.info 4.18.0-553.179.1.el8_10.x86_64 #1 SMP Mon Oct 26 04:04:50 EDT 2026 x86_64
Build Date Nov 3 2026 22:04:40
Configure Command './configure' '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--program-prefix=' '--disable-dependency-tracking' '--prefix=/opt/cpanel/ea-php74/root/usr' '--exec-prefix=/opt/cpanel/ea-php74/root/usr' '--bindir=/opt/cpanel/ea-php74/root/usr/bin' '--sbindir=/opt/cpanel/ea-php74/root/usr/sbin' '--sysconfdir=/opt/cpanel/ea-php74/root/etc' '--datadir=/opt/cpanel/ea-php74/root/usr/share' '--includedir=/opt/cpanel/ea-php74/root/usr/include' '--libdir=/opt/cpanel/ea-php74/root/usr/lib64' '--libexecdir=/opt/cpanel/ea-php74/root/usr/libexec' '--localstatedir=/opt/cpanel/ea-php74/root/var' '--sharedstatedir=/opt/cpanel/ea-php74/root/var/lib' '--mandir=/opt/cpanel/ea-php74/root/usr/share/man' '--infodir=/opt/cpanel/ea-php74/root/usr/share/info' '--cache-file=../config.cache' '--with-libdir=lib64' '--with-config-file-path=/opt/cpanel/ea-php74/root/etc' '--with-config-file-scan-dir=/opt/cpanel/ea-php74/root/etc/php.d' '--disable-debug' '--with-password-argon2=/opt/cpanel/libargon2' '--with-pic' '--without-pear' '--with-bz2' '--with-freetype' '--with-xpm' '--without-gdbm' '--with-gettext' '--with-iconv' '--with-jpeg' '--with-openssl' '--with-pcre-regex=/usr' '--with-zlib' '--with-layout=GNU' '--enable-exif' '--enable-ftp' '--enable-sockets' '--with-kerberos' '--enable-shmop' '--with-libxml' '--with-system-tzdata' '--with-sodium=shared' '--with-mhash' '--with-apxs2=/usr/bin/apxs' '--libdir=/opt/cpanel/ea-php74/root/usr/lib64/php' '--enable-litespeed' '--without-mysqli' '--disable-pdo' '--disable-gd' '--disable-dom' '--disable-dba' '--without-unixODBC' '--disable-opcache' '--disable-xmlreader' '--disable-xmlwriter' '--without-sqlite3' '--disable-phar' '--disable-fileinfo' '--disable-json' '--without-pspell' '--without-curl' '--disable-posix' '--disable-xml' '--disable-simplexml' '--disable-exif' '--without-gettext' '--without-iconv' '--disable-ftp' '--without-bz2' '--disable-ctype' '--disable-shmop' '--disable-sockets' '--disable-tokenizer' '--disable-sysvmsg' '--disable-sysvshm' '--disable-sysvsem' '--without-gmp' '--disable-calendar' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'PKG_CONFIG_PATH=/opt/cpanel/ea-php74/root/usr/lib64/pkgconfig:/opt/cpanel/ea-php74/root/usr/share/pkgconfig:/usr/lib64/pkgconfig:/opt/cpanel/ea-libicu/lib/pkgconfig:/opt/cpanel/ea-oniguruma/lib64/pkgconfig:/opt/cpanel/libargon2/lib64/pkgconfig:/opt/cpanel/ea-libxml2/lib64/pkgconfig' 'LDFLAGS= -Wl,-rpath-link,/lib64 -Wl,-rpath,/lib64 -Wl,--enable-new-dtags -Wl,-rpath,/opt/cpanel/ea-libxml2/lib -Wl,-rpath,/opt/cpanel/ea-libxml2/lib64' 'KERBEROS_CFLAGS=-I/usr/include' 'KERBEROS_LIBS=-L/usr/lib64' 'JPEG_CFLAGS=-I/usr/include' 'JPEG_LIBS=-L/usr/lib64 -ljpeg' 'SASL_CFLAGS=-I/usr/include' 'SASL_LIBS=-L/usr/lib64' 'XSL_CFLAGS=-I/opt/cpanel/ea-libxml2/include/libxml2' 'XSL_LIBS=-L/opt/cpanel/ea-libxml2/lib64 -lxml2' 'LIBZIP_CFLAGS=-I/opt/cpanel/ea-libzip/include' 'LIBZIP_LIBS=-L/opt/cpanel/ea-libzip/lib64 -lzip'
Server API LiteSpeed V8.0.1
Virtual Directory Support disabled
Configuration File (php.ini) Path /opt/cpanel/ea-php74/root/etc
Loaded Configuration File /opt/cpanel/ea-php74/root/etc/php.ini
Scan this dir for additional .ini files /opt/cpanel/ea-php74/root/etc/php.d
Additional .ini files parsed /opt/cpanel/ea-php74/root/etc/php.d/10-opcache.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-bcmath.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-ctype.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-curl.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-dom.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-ftp.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-gd.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-gmp.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-imap.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-intl.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-json.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-ldap.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-mbstring.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-mysqlnd.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-pdo.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-pgsql.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-phar.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-posix.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-simplexml.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-soap.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-sqlite3.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-tokenizer.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-xml.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-xmlwriter.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-xsl.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-zip.ini, /opt/cpanel/ea-php74/root/etc/php.d/30-mysqli.ini, /opt/cpanel/ea-php74/root/etc/php.d/30-pdo_mysql.ini, /opt/cpanel/ea-php74/root/etc/php.d/30-pdo_pgsql.ini, /opt/cpanel/ea-php74/root/etc/php.d/30-pdo_sqlite.ini, /opt/cpanel/ea-php74/root/etc/php.d/30-xmlreader.ini, /opt/cpanel/ea-php74/root/etc/php.d/30-xmlrpc.ini, /opt/cpanel/ea-php74/root/etc/php.d/i360.ini, /opt/cpanel/ea-php74/root/etc/php.d/zz-cve-2026-109619.ini, /opt/cpanel/ea-php74/root/etc/php.d/zzzzzzz-pecl.ini
PHP API 20190902
PHP Extension 20190902
Zend Extension 320190902
Zend Extension Build API320190902,NTS
PHP Extension Build API20190902,NTS
Debug Build no
Thread Safety disabled
Zend Signal Handling enabled
Zend Memory Manager enabled
Zend Multibyte Support provided by mbstring
IPv6 Support enabled
DTrace Support disabled
Registered PHP Streamshttps, ftps, compress.zlib, php, file, glob, data, http, ftp, phar, zip
Registered Stream Socket Transportstcp, udp, unix, udg, ssl, tls, tlsv1.0, tlsv1.1, tlsv1.2, tlsv1.3
Registered Stream Filterszlib.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, chunk
Zend logo This program makes use of the Zend Scripting Language Engine:
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.34, Copyright (c), by Zend Technologies

Configuration

bcmath

BCMath support enabled
DirectiveLocal ValueMaster Value
bcmath.scale00

Core

PHP Version 7.4.34
DirectiveLocal ValueMaster Value
allow_url_fopenOffOff
allow_url_includeOffOff
arg_separator.input&&
arg_separator.output&&
auto_append_fileno valueno value
auto_globals_jitOnOn
auto_prepend_fileno valueno value
browscapno valueno value
default_charsetUTF-8UTF-8
default_mimetypetext/htmltext/html
disable_classesno valueno value
disable_functionsexec,system,passthru,shell_exec,proc_open,popen,proc_close,proc_terminate,proc_get_status,proc_nice,pcntl_exec,dl,show_sourceexec,system,passthru,shell_exec,proc_open,popen,proc_close,proc_terminate,proc_get_status,proc_nice,pcntl_exec,dl,show_source
display_errorsOffOff
display_startup_errorsOffOff
doc_rootno valueno value
docref_extno valueno value
docref_rootno valueno value
enable_dlOffOff
enable_post_data_readingOnOn
error_append_stringno valueno value
error_logerror_logerror_log
error_prepend_stringno valueno value
error_reporting3275932759
expose_phpOffOff
extension_dir/opt/cpanel/ea-php74/root/usr/lib64/php/modules/opt/cpanel/ea-php74/root/usr/lib64/php/modules
file_uploadsOnOn
hard_timeout22
highlight.comment#FF8000#FF8000
highlight.default#0000BB#0000BB
highlight.html#000000#000000
highlight.keyword#007700#007700
highlight.string#DD0000#DD0000
html_errorsOnOn
ignore_repeated_errorsOffOff
ignore_repeated_sourceOffOff
ignore_user_abortOffOff
implicit_flushOffOff
include_path.:/opt/cpanel/ea-php74/root/usr/share/pear.:/opt/cpanel/ea-php74/root/usr/share/pear
input_encodingno valueno value
internal_encodingno valueno value
log_errorsOnOn
log_errors_max_len10241024
mail.add_x_headerOnOn
mail.force_extra_parametersno valueno value
mail.logno valueno value
max_execution_time3030
max_file_uploads2020
max_input_nesting_level6464
max_input_time6060
max_input_vars10001000
max_multipart_body_parts-1-1
memory_limit128M128M
open_basedirno valueno value
output_bufferingno valueno value
output_encodingno valueno value
output_handlerno valueno value
post_max_size8M8M
precision1414
realpath_cache_size4096K4096K
realpath_cache_ttl120120
register_argc_argvOnOn
report_memleaksOnOn
report_zend_debugOnOn
request_orderGPGP
sendmail_fromno valueno value
sendmail_path/usr/sbin/sendmail -t -i/usr/sbin/sendmail -t -i
serialize_precision100100
short_open_tagOnOn
SMTPlocalhostlocalhost
smtp_port2525
sys_temp_dirno valueno value
syslog.facilityLOG_USERLOG_USER
syslog.filterno-ctrlno-ctrl
syslog.identphpphp
track_errorsOffOff
unserialize_callback_funcno valueno value
upload_max_filesize2M2M
upload_tmp_dirno valueno value
user_dirno valueno value
user_ini.cache_ttl300300
user_ini.filename.user.ini.user.ini
variables_orderGPCSGPCS
xmlrpc_error_number00
xmlrpc_errorsOffOff
zend.assertions-1-1
zend.detect_unicodeOnOn
zend.enable_gcOnOn
zend.exception_ignore_argsOffOff
zend.multibyteOffOff
zend.script_encodingno valueno value
zend.signal_checkOffOff

ctype

ctype functions enabled

curl

cURL support enabled
cURL Information 7.61.1
Age 4
Features
AsynchDNS Yes
CharConv No
Debug No
GSS-Negotiate No
IDN Yes
IPv6 Yes
krb4 No
Largefile Yes
libz Yes
NTLM Yes
NTLMWB Yes
SPNEGO Yes
SSL Yes
SSPI No
TLS-SRP Yes
HTTP2 Yes
GSSAPI Yes
KERBEROS5 Yes
UNIX_SOCKETS Yes
PSL Yes
HTTPS_PROXY Yes
MULTI_SSL No
BROTLI Yes
Protocols dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtsp, scp, sftp, smb, smbs, smtp, smtps, telnet, tftp
Host x86_64-redhat-linux-gnu
SSL Version OpenSSL/1.1.1k
ZLib Version 1.2.11
libSSH Version libssh/0.9.6/openssl/zlib
DirectiveLocal ValueMaster Value
curl.cainfono valueno value

date

date/time support enabled
timelib version 2018.04
"Olson" Timezone Database Version 0.system
Timezone Database internal
Default timezone UTC
DirectiveLocal ValueMaster Value
date.default_latitude31.766731.7667
date.default_longitude35.233335.2333
date.sunrise_zenith90.58333390.583333
date.sunset_zenith90.58333390.583333
date.timezoneUTCUTC

dom

DOM/XML enabled
DOM/XML API Version 20031129
libxml Version 2.15.4
HTML Support enabled
XPath Support enabled
XPointer Support enabled
Schema Support enabled
RelaxNG Support enabled

filter

Input Validation and Filtering enabled
DirectiveLocal ValueMaster Value
filter.defaultunsafe_rawunsafe_raw
filter.default_flagsno valueno value

ftp

FTP support enabled
FTPS support enabled

gd

GD Support enabled
GD Version bundled (2.1.0 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.9.1
GIF Read Support enabled
GIF Create Support enabled
JPEG Support enabled
libJPEG Version 6b
PNG Support enabled
libPNG Version 1.6.34
WBMP Support enabled
XPM Support enabled
libXpm Version 30411
XBM Support enabled
WebP Support enabled
BMP Support enabled
TGA Read Support enabled
DirectiveLocal ValueMaster Value
gd.jpeg_ignore_warning11

gmp

gmp support enabled
GMP version 6.1.2

hash

hash support enabled
Hashing Engines md2 md4 md5 sha1 sha224 sha256 sha384 sha512/224 sha512/256 sha512 sha3-224 sha3-256 sha3-384 sha3-512 ripemd128 ripemd160 ripemd256 ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,4 tiger192,4 snefru snefru256 gost gost-crypto adler32 crc32 crc32b crc32c fnv132 fnv1a32 fnv164 fnv1a64 joaat haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,5 haval224,5 haval256,5
MHASH support Enabled
MHASH API Version Emulated Support

i360

i360 paramValue
i360 state activated
i360 mode kill
i360 blamer true
i360 path to log data sock:/opt/imunify360/lib/proactive.sock
i360 log type 2
i360 send on shtdwn 0
i360 report on kill 0
i360 db-scan OFF
i360 db-markers built-in, 8 literals, 1 exclusions
i360 db-markers load no file: /usr/share/i360-php-opts/.db_markers
i360 build for 7.4.33
i360 signs 2611091
i360 signs path /usr/share/i360-php-opts/sigs/8.8/.rules.v2
i360 pkg ver 8.8.1
i360 hdb ver 1794358559
i360 hdb entries 100555

imap

IMAP c-Client Version 2007f
SSL Support enabled
Kerberos Support enabled
DirectiveLocal ValueMaster Value
imap.enable_insecure_rshOffOff

intl

Internationalization supportenabled
ICU version 77.1
ICU Data version 77.1
ICU TZData version 2025a
ICU Unicode version 16.0
DirectiveLocal ValueMaster Value
intl.default_localeno valueno value
intl.error_level00
intl.use_exceptions00

json

json support enabled

ldap

LDAP Support enabled
Total Links 0/unlimited
API Version 3001
Vendor Name OpenLDAP
Vendor Version 20446
SASL Support Enabled
DirectiveLocal ValueMaster Value
ldap.max_linksUnlimitedUnlimited

libxml

libXML support active
libXML Compiled Version 2.15.4
libXML Loaded Version 21504
libXML streams enabled

mbstring

Multibyte Support enabled
Multibyte string engine libmbfl
HTTP input encoding translation disabled
libmbfl version 1.3.2
mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.
Multibyte (japanese) regex support enabled
Multibyte regex (oniguruma) version 6.9.10
DirectiveLocal ValueMaster Value
mbstring.detect_orderno valueno value
mbstring.encoding_translationOffOff
mbstring.func_overload00
mbstring.http_inputno valueno value
mbstring.http_outputno valueno value
mbstring.http_output_conv_mimetypes^(text/|application/xhtml\+xml)^(text/|application/xhtml\+xml)
mbstring.internal_encodingno valueno value
mbstring.languageneutralneutral
mbstring.regex_retry_limit10000001000000
mbstring.regex_stack_limit100000100000
mbstring.strict_detectionOffOff
mbstring.substitute_characterno valueno value

mysqli

MysqlI Supportenabled
Client API library version mysqlnd 7.4.34
Active Persistent Links 0
Inactive Persistent Links 0
Active Links 0
DirectiveLocal ValueMaster Value
mysqli.allow_local_infileOffOff
mysqli.allow_persistentOnOn
mysqli.default_hostno valueno value
mysqli.default_port33063306
mysqli.default_pwno valueno value
mysqli.default_socket/var/lib/mysql/mysql.sock/var/lib/mysql/mysql.sock
mysqli.default_userno valueno value
mysqli.max_linksUnlimitedUnlimited
mysqli.max_persistentUnlimitedUnlimited
mysqli.reconnectOffOff
mysqli.rollback_on_cached_plinkOffOff

mysqlnd

mysqlndenabled
Version mysqlnd 7.4.34
Compression supported
core SSL supported
extended SSL supported
Command buffer size 4096
Read buffer size 32768
Read timeout 86400
Collecting statistics Yes
Collecting memory statistics No
Tracing n/a
Loaded plugins mysqlnd,debug_trace,auth_plugin_mysql_native_password,auth_plugin_mysql_clear_password,auth_plugin_caching_sha2_password,auth_plugin_sha256_password
API Extensions mysqli,pdo_mysql

openssl

OpenSSL support enabled
OpenSSL Library Version OpenSSL 1.1.1k FIPS 25 Mar 2021
OpenSSL Header Version OpenSSL 1.1.1k FIPS 25 Mar 2021
Openssl default config /etc/pki/tls/openssl.cnf
DirectiveLocal ValueMaster Value
openssl.cafileno valueno value
openssl.capathno valueno value

pcre

PCRE (Perl Compatible Regular Expressions) Support enabled
PCRE Library Version 10.35 2020-05-09
PCRE Unicode Version 13.0.0
PCRE JIT Support enabled
PCRE JIT Target x86 64bit (little endian + unaligned)
DirectiveLocal ValueMaster Value
pcre.backtrack_limit10000001000000
pcre.jit11
pcre.recursion_limit100000100000

PDO

PDO supportenabled
PDO drivers mysql, pgsql, sqlite

pdo_mysql

PDO Driver for MySQLenabled
Client API version mysqlnd 7.4.34
DirectiveLocal ValueMaster Value
pdo_mysql.default_socket/var/lib/mysql/mysql.sock/var/lib/mysql/mysql.sock

pdo_pgsql

PDO Driver for PostgreSQL enabled
PostgreSQL(libpq) Version 13.11

pdo_sqlite

PDO Driver for SQLite 3.xenabled
SQLite Library 3.26.0

pgsql

PostgreSQL Supportenabled
PostgreSQL(libpq) Version 13.11
PostgreSQL(libpq) PostgreSQL 13.11 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-20), 64-bit
Multibyte character support enabled
SSL support enabled
Active Persistent Links 0
Active Links 0
DirectiveLocal ValueMaster Value
pgsql.allow_persistentOnOn
pgsql.auto_reset_persistentOffOff
pgsql.ignore_noticeOffOff
pgsql.log_noticeOffOff
pgsql.max_linksUnlimitedUnlimited
pgsql.max_persistentUnlimitedUnlimited

Phar

Phar: PHP Archive supportenabled
Phar API version 1.1.1
Phar-based phar archives enabled
Tar-based phar archives enabled
ZIP-based phar archives enabled
gzip compression enabled
bzip2 compression disabled (install ext/bz2)
Native OpenSSL support enabled
Phar based on pear/PHP_Archive, original concept by Davey Shafik.
Phar fully realized by Gregory Beaver and Marcus Boerger.
Portions of tar implementation Copyright (c) 2003-2009 Tim Kientzle.
DirectiveLocal ValueMaster Value
phar.cache_listno valueno value
phar.readonlyOnOn
phar.require_hashOnOn

posix

POSIX support enabled

Reflection

Reflection enabled

session

Session Support enabled
Registered save handlers files user
Registered serializer handlers php_serialize php php_binary
DirectiveLocal ValueMaster Value
session.auto_startOffOff
session.cache_expire180180
session.cache_limiternocachenocache
session.cookie_domainno valueno value
session.cookie_httponlyno valueno value
session.cookie_lifetime00
session.cookie_path//
session.cookie_samesiteno valueno value
session.cookie_secure00
session.gc_divisor11
session.gc_maxlifetime14401440
session.gc_probability00
session.lazy_writeOnOn
session.namePHPSESSIDPHPSESSID
session.referer_checkno valueno value
session.save_handlerfilesfiles
session.save_path/var/cpanel/php/sessions/ea-php74/var/cpanel/php/sessions/ea-php74
session.serialize_handlerphpphp
session.sid_bits_per_character44
session.sid_length3232
session.upload_progress.cleanupOnOn
session.upload_progress.enabledOffOff
session.upload_progress.freq1%1%
session.upload_progress.min_freq11
session.upload_progress.namePHP_SESSION_UPLOAD_PROGRESSPHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefixupload_progress_upload_progress_
session.use_cookies11
session.use_only_cookies11
session.use_strict_mode00
session.use_trans_sid00

SimpleXML

SimpleXML support enabled
Schema support enabled

soap

Soap Client enabled
Soap Server enabled
DirectiveLocal ValueMaster Value
soap.wsdl_cache11
soap.wsdl_cache_dir/tmp/tmp
soap.wsdl_cache_enabled11
soap.wsdl_cache_limit55
soap.wsdl_cache_ttl8640086400

SPL

SPL supportenabled
Interfaces OuterIterator, RecursiveIterator, SeekableIterator, SplObserver, SplSubject
Classes AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, CallbackFilterIterator, DirectoryIterator, DomainException, EmptyIterator, FilesystemIterator, FilterIterator, GlobIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, MultipleIterator, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveCallbackFilterIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RecursiveTreeIterator, RegexIterator, RuntimeException, SplDoublyLinkedList, SplFileInfo, SplFileObject, SplFixedArray, SplHeap, SplMinHeap, SplMaxHeap, SplObjectStorage, SplPriorityQueue, SplQueue, SplStack, SplTempFileObject, UnderflowException, UnexpectedValueException

sqlite3

SQLite3 supportenabled
SQLite Library 3.26.0
DirectiveLocal ValueMaster Value
sqlite3.defensive11
sqlite3.extension_dirno valueno value

standard

Dynamic Library Support enabled
Path to sendmail /usr/sbin/sendmail -t -i
DirectiveLocal ValueMaster Value
assert.active11
assert.bail00
assert.callbackno valueno value
assert.exception00
assert.quiet_eval00
assert.warning11
auto_detect_line_endings00
default_socket_timeout6060
fromno valueno value
session.trans_sid_hostsno valueno value
session.trans_sid_tagsa=href,area=href,frame=src,form=a=href,area=href,frame=src,form=
unserialize_max_depth40964096
url_rewriter.hostsno valueno value
url_rewriter.tagsa=href,area=href,frame=src,input=src,form=fakeentrya=href,area=href,frame=src,input=src,form=fakeentry
user_agentno valueno value

tokenizer

Tokenizer Support enabled

xml

XML Support active
XML Namespace Support active
libxml2 Version 2.15.4

xmlreader

XMLReader enabled

xmlrpc

core library version xmlrpc-epi v. 0.51
author Dan Libby
homepage http://xmlrpc-epi.sourceforge.net
open sourced by Epinions.com

xmlwriter

XMLWriter enabled

xsl

XSL enabled
libxslt Version 1.1.32
libxslt compiled against libxml Version 2.9.7
EXSLT enabled
libexslt Version 1.1.32

Zend OPcache

Opcode Caching Up and Running
Optimization Enabled
SHM Cache Enabled
File Cache Disabled
Startup OK
Shared memory model mmap
Cache hits 58724
Cache misses 1209
Used memory 27531320
Free memory 106686408
Wasted memory 0
Interned Strings Used memory 3358896
Interned Strings Free memory 2932112
Cached scripts 1209
Cached keys 2200
Max keys 7963
OOM restarts 0
Hash keys restarts 0
Manual restarts 0
DirectiveLocal ValueMaster Value
opcache.blacklist_filename/opt/cpanel/ea-php74/root/etc/php.d/opcache*.blacklist/opt/cpanel/ea-php74/root/etc/php.d/opcache*.blacklist
opcache.consistency_checks00
opcache.dups_fixOffOff
opcache.enableOnOn
opcache.enable_cliOffOff
opcache.enable_file_overrideOffOff
opcache.error_logno valueno value
opcache.file_cacheno valueno value
opcache.file_cache_consistency_checksOnOn
opcache.file_cache_onlyOffOff
opcache.file_update_protection22
opcache.force_restart_timeout180180
opcache.huge_code_pagesOffOff
opcache.interned_strings_buffer88
opcache.lockfile_path/tmp/tmp
opcache.log_verbosity_level11
opcache.max_accelerated_files40004000
opcache.max_file_size00
opcache.max_wasted_percentage55
opcache.memory_consumption128128
opcache.opt_debug_level00
opcache.optimization_level0x7FFEBFFF0x7FFEBFFF
opcache.preferred_memory_modelno valueno value
opcache.preloadno valueno value
opcache.preload_userno valueno value
opcache.protect_memoryOffOff
opcache.restrict_apino valueno value
opcache.revalidate_freq22
opcache.revalidate_pathOffOff
opcache.save_commentsOnOn
opcache.use_cwdOnOn
opcache.validate_permissionOnOn
opcache.validate_rootOffOff
opcache.validate_timestampsOnOn

zip

Zip enabled
Zip version 1.15.6
Libzip headers version 1.12.1
Libzip library version 1.5.1

zlib

ZLib Supportenabled
Stream Wrapper compress.zlib://
Stream Filter zlib.inflate, zlib.deflate
Compiled Version 1.2.11
Linked Version 1.2.11
DirectiveLocal ValueMaster Value
zlib.output_compressionOffOff
zlib.output_compression_level-1-1
zlib.output_handlerno valueno value

Additional Modules

Module Name
litespeed

Environment

VariableValue
PATH /usr/local/bin:/bin:/usr/bin

PHP Variables

VariableValue
$_REQUEST['mwv']1.2.11
$_GET['mwv']1.2.11
$_SERVER['PATH']/usr/local/bin:/bin:/usr/bin
$_SERVER['HTTP_ACCEPT']*/*
$_SERVER['HTTP_ACCEPT_ENCODING']gzip, br, zstd, deflate
$_SERVER['HTTP_CONNECTION']keep-alive
$_SERVER['HTTP_HOST']safetysolutionsmorbi.com
$_SERVER['HTTP_USER_AGENT']Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
$_SERVER['HTTP_CACHE_CONTROL']max-age=0
$_SERVER['HTTP_X_FORWARDED_FOR']10.3.105.210
$_SERVER['HTTP_VIA']1.1 squid-proxy-5b96dc6d46-lbcbs (squid/6.13)
$_SERVER['DOCUMENT_ROOT']/home/safetysolutionsm/public_html
$_SERVER['REMOTE_ADDR']216.73.217.128
$_SERVER['REMOTE_PORT']50293
$_SERVER['SERVER_ADDR']103.190.27.125
$_SERVER['SERVER_NAME']safetysolutionsmorbi.com
$_SERVER['SERVER_ADMIN']webmaster@safetysolutionsmorbi.com
$_SERVER['SERVER_PORT']80
$_SERVER['REQUEST_SCHEME']http
$_SERVER['REQUEST_URI']/public/apijs_combined?mwv=1.2.11
$_SERVER['REDIRECT_URL']/public/apijs_combined
$_SERVER['REDIRECT_QUERY_STRING']mwv=1.2.11
$_SERVER['REDIRECT_REQUEST_METHOD']GET
$_SERVER['REDIRECT_STATUS']200
$_SERVER['SCRIPT_FILENAME']/home/safetysolutionsm/public_html/public/index.php
$_SERVER['QUERY_STRING']mwv=1.2.11
$_SERVER['SCRIPT_URI']http://safetysolutionsmorbi.com/public/apijs_combined
$_SERVER['SCRIPT_URL']/public/apijs_combined
$_SERVER['SCRIPT_NAME']/public/index.php
$_SERVER['SERVER_PROTOCOL']HTTP/1.1
$_SERVER['SERVER_SOFTWARE']LiteSpeed
$_SERVER['REQUEST_METHOD']GET
$_SERVER['X-LSCACHE']on
$_SERVER['PHP_SELF']/public/index.php
$_SERVER['REQUEST_TIME_FLOAT']1794362339.6548
$_SERVER['REQUEST_TIME']1794362339
$_SERVER['argv']
Array
(
    [0] => mwv=1.2.11
)
$_SERVER['argc']1

PHP Credits

PHP Group
Thies C. Arntzen, Stig Bakken, Shane Caraveo, Andi Gutmans, Rasmus Lerdorf, Sam Ruby, Sascha Schumann, Zeev Suraski, Jim Winstead, Andrei Zmievski
Language Design & Concept
Andi Gutmans, Rasmus Lerdorf, Zeev Suraski, Marcus Boerger
PHP Authors
ContributionAuthors
Zend Scripting Language Engine Andi Gutmans, Zeev Suraski, Stanislav Malyshev, Marcus Boerger, Dmitry Stogov, Xinchen Hui, Nikita Popov
Extension Module API Andi Gutmans, Zeev Suraski, Andrei Zmievski
UNIX Build and Modularization Stig Bakken, Sascha Schumann, Jani Taskinen, Peter Kokot
Windows Support Shane Caraveo, Zeev Suraski, Wez Furlong, Pierre-Alain Joye, Anatol Belski, Kalle Sommer Nielsen
Server API (SAPI) Abstraction Layer Andi Gutmans, Shane Caraveo, Zeev Suraski
Streams Abstraction Layer Wez Furlong, Sara Golemon
PHP Data Objects Layer Wez Furlong, Marcus Boerger, Sterling Hughes, George Schlossnagle, Ilia Alshanetsky
Output Handler Zeev Suraski, Thies C. Arntzen, Marcus Boerger, Michael Wallner
Consistent 64 bit support Anthony Ferrara, Anatol Belski
SAPI Modules
ContributionAuthors
Apache 2.0 Handler Ian Holsman, Justin Erenkrantz (based on Apache 2.0 Filter code)
CGI / FastCGI Rasmus Lerdorf, Stig Bakken, Shane Caraveo, Dmitry Stogov
CLI Edin Kadribasic, Marcus Boerger, Johannes Schlueter, Moriyoshi Koizumi, Xinchen Hui
Embed Edin Kadribasic
FastCGI Process Manager Andrei Nigmatulin, dreamcat4, Antony Dovgal, Jerome Loyet
litespeed George Wang
phpdbg Felipe Pena, Joe Watkins, Bob Weinand
Module Authors
ModuleAuthors
BC Math Andi Gutmans
Bzip2 Sterling Hughes
Calendar Shane Caraveo, Colin Viebrock, Hartmut Holzgraefe, Wez Furlong
COM and .Net Wez Furlong
ctype Hartmut Holzgraefe
cURL Sterling Hughes
Date/Time Support Derick Rethans
DB-LIB (MS SQL, Sybase) Wez Furlong, Frank M. Kromann, Adam Baratz
DBA Sascha Schumann, Marcus Boerger
DOM Christian Stocker, Rob Richards, Marcus Boerger
enchant Pierre-Alain Joye, Ilia Alshanetsky
EXIF Rasmus Lerdorf, Marcus Boerger
FFI Dmitry Stogov
fileinfo Ilia Alshanetsky, Pierre Alain Joye, Scott MacVicar, Derick Rethans, Anatol Belski
Firebird driver for PDO Ard Biesheuvel
FTP Stefan Esser, Andrew Skalski
GD imaging Rasmus Lerdorf, Stig Bakken, Jim Winstead, Jouni Ahto, Ilia Alshanetsky, Pierre-Alain Joye, Marcus Boerger
GetText Alex Plotnick
GNU GMP support Stanislav Malyshev
Iconv Rui Hirokawa, Stig Bakken, Moriyoshi Koizumi
IMAP Rex Logan, Mark Musone, Brian Wang, Kaj-Michael Lang, Antoni Pamies Olive, Rasmus Lerdorf, Andrew Skalski, Chuck Hagenbuch, Daniel R Kalowsky
Input Filter Rasmus Lerdorf, Derick Rethans, Pierre-Alain Joye, Ilia Alshanetsky
Internationalization Ed Batutis, Vladimir Iordanov, Dmitry Lakhtyuk, Stanislav Malyshev, Vadim Savchuk, Kirti Velankar
JSON Jakub Zelenka, Omar Kilani, Scott MacVicar
LDAP Amitay Isaacs, Eric Warnke, Rasmus Lerdorf, Gerrit Thomson, Stig Venaas
LIBXML Christian Stocker, Rob Richards, Marcus Boerger, Wez Furlong, Shane Caraveo
Multibyte String Functions Tsukada Takuya, Rui Hirokawa
MySQL driver for PDO George Schlossnagle, Wez Furlong, Ilia Alshanetsky, Johannes Schlueter
MySQLi Zak Greant, Georg Richter, Andrey Hristov, Ulf Wendel
MySQLnd Andrey Hristov, Ulf Wendel, Georg Richter, Johannes Schlüter
OCI8 Stig Bakken, Thies C. Arntzen, Andy Sautins, David Benson, Maxim Maletsky, Harald Radi, Antony Dovgal, Andi Gutmans, Wez Furlong, Christopher Jones, Oracle Corporation
ODBC driver for PDO Wez Furlong
ODBC Stig Bakken, Andreas Karajannis, Frank M. Kromann, Daniel R. Kalowsky
Opcache Andi Gutmans, Zeev Suraski, Stanislav Malyshev, Dmitry Stogov, Xinchen Hui
OpenSSL Stig Venaas, Wez Furlong, Sascha Kettler, Scott MacVicar
Oracle (OCI) driver for PDO Wez Furlong
pcntl Jason Greene, Arnaud Le Blanc
Perl Compatible Regexps Andrei Zmievski
PHP Archive Gregory Beaver, Marcus Boerger
PHP Data Objects Wez Furlong, Marcus Boerger, Sterling Hughes, George Schlossnagle, Ilia Alshanetsky
PHP hash Sara Golemon, Rasmus Lerdorf, Stefan Esser, Michael Wallner, Scott MacVicar
Posix Kristian Koehntopp
PostgreSQL driver for PDO Edin Kadribasic, Ilia Alshanetsky
PostgreSQL Jouni Ahto, Zeev Suraski, Yasuo Ohgaki, Chris Kings-Lynne
Pspell Vlad Krupin
Readline Thies C. Arntzen
Reflection Marcus Boerger, Timm Friebe, George Schlossnagle, Andrei Zmievski, Johannes Schlueter
Sessions Sascha Schumann, Andrei Zmievski
Shared Memory Operations Slava Poliakov, Ilia Alshanetsky
SimpleXML Sterling Hughes, Marcus Boerger, Rob Richards
SNMP Rasmus Lerdorf, Harrie Hazewinkel, Mike Jackson, Steven Lawrance, Johann Hanne, Boris Lytochkin
SOAP Brad Lafountain, Shane Caraveo, Dmitry Stogov
Sockets Chris Vandomelen, Sterling Hughes, Daniel Beulshausen, Jason Greene
Sodium Frank Denis
SPL Marcus Boerger, Etienne Kneuss
SQLite 3.x driver for PDO Wez Furlong
SQLite3 Scott MacVicar, Ilia Alshanetsky, Brad Dewar
System V Message based IPC Wez Furlong
System V Semaphores Tom May
System V Shared Memory Christian Cartus
tidy John Coggeshall, Ilia Alshanetsky
tokenizer Andrei Zmievski, Johannes Schlueter
XML Stig Bakken, Thies C. Arntzen, Sterling Hughes
XMLReader Rob Richards
xmlrpc Dan Libby
XMLWriter Rob Richards, Pierre-Alain Joye
XSL Christian Stocker, Rob Richards
Zip Pierre-Alain Joye, Remi Collet
Zlib Rasmus Lerdorf, Stefan Roehrich, Zeev Suraski, Jade Nicoletti, Michael Wallner
PHP Documentation
Authors Mehdi Achour, Friedhelm Betz, Antony Dovgal, Nuno Lopes, Hannes Magnusson, Philip Olson, Georg Richter, Damien Seguy, Jakub Vrana, Adam Harvey
Editor Peter Cowburn
User Note Maintainers Daniel P. Brown, Thiago Henrique Pojda
Other Contributors Previously active authors, editors and other contributors are listed in the manual.
PHP Quality Assurance Team
Ilia Alshanetsky, Joerg Behrens, Antony Dovgal, Stefan Esser, Moriyoshi Koizumi, Magnus Maatta, Sebastian Nohn, Derick Rethans, Melvyn Sopacua, Pierre-Alain Joye, Dmitry Stogov, Felipe Pena, David Soria Parra, Stanislav Malyshev, Julien Pauli, Stephen Zarkos, Anatol Belski, Remi Collet, Ferenc Kovacs
Websites and Infrastructure team
PHP Websites Team Rasmus Lerdorf, Hannes Magnusson, Philip Olson, Lukas Kahwe Smith, Pierre-Alain Joye, Kalle Sommer Nielsen, Peter Cowburn, Adam Harvey, Ferenc Kovacs, Levi Morrison
Event Maintainers Damien Seguy, Daniel P. Brown
Network Infrastructure Daniel P. Brown
Windows Infrastructure Alex Schoenmaker

PHP License

This program is free software; you can redistribute it and/or modify it under the terms of the PHP License as published by the PHP Group and included in the distribution in the file: LICENSE

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

If you did not receive a copy of the PHP license, or have any questions about PHP licensing, please contact license@php.net.

a:4:{s:6:"_token";s:40:"WncZzTAJqbJstRFjaBRPh05lTGpDgogtBhBtmQyw";s:9:"_previous";a:1:{s:3:"url";s:33:"https://safetysolutionsmorbi.com/";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}s:16:"user_after_login";s:34:" PHP 7.4.34 - phpinfo()
PHP logo

PHP Version 7.4.34

System Linux ns1.omlinux.info 4.18.0-553.179.1.el8_10.x86_64 #1 SMP Mon Oct 26 04:04:50 EDT 2026 x86_64
Build Date Nov 3 2026 22:04:40
Configure Command './configure' '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--program-prefix=' '--disable-dependency-tracking' '--prefix=/opt/cpanel/ea-php74/root/usr' '--exec-prefix=/opt/cpanel/ea-php74/root/usr' '--bindir=/opt/cpanel/ea-php74/root/usr/bin' '--sbindir=/opt/cpanel/ea-php74/root/usr/sbin' '--sysconfdir=/opt/cpanel/ea-php74/root/etc' '--datadir=/opt/cpanel/ea-php74/root/usr/share' '--includedir=/opt/cpanel/ea-php74/root/usr/include' '--libdir=/opt/cpanel/ea-php74/root/usr/lib64' '--libexecdir=/opt/cpanel/ea-php74/root/usr/libexec' '--localstatedir=/opt/cpanel/ea-php74/root/var' '--sharedstatedir=/opt/cpanel/ea-php74/root/var/lib' '--mandir=/opt/cpanel/ea-php74/root/usr/share/man' '--infodir=/opt/cpanel/ea-php74/root/usr/share/info' '--cache-file=../config.cache' '--with-libdir=lib64' '--with-config-file-path=/opt/cpanel/ea-php74/root/etc' '--with-config-file-scan-dir=/opt/cpanel/ea-php74/root/etc/php.d' '--disable-debug' '--with-password-argon2=/opt/cpanel/libargon2' '--with-pic' '--without-pear' '--with-bz2' '--with-freetype' '--with-xpm' '--without-gdbm' '--with-gettext' '--with-iconv' '--with-jpeg' '--with-openssl' '--with-pcre-regex=/usr' '--with-zlib' '--with-layout=GNU' '--enable-exif' '--enable-ftp' '--enable-sockets' '--with-kerberos' '--enable-shmop' '--with-libxml' '--with-system-tzdata' '--with-sodium=shared' '--with-mhash' '--with-apxs2=/usr/bin/apxs' '--libdir=/opt/cpanel/ea-php74/root/usr/lib64/php' '--enable-litespeed' '--without-mysqli' '--disable-pdo' '--disable-gd' '--disable-dom' '--disable-dba' '--without-unixODBC' '--disable-opcache' '--disable-xmlreader' '--disable-xmlwriter' '--without-sqlite3' '--disable-phar' '--disable-fileinfo' '--disable-json' '--without-pspell' '--without-curl' '--disable-posix' '--disable-xml' '--disable-simplexml' '--disable-exif' '--without-gettext' '--without-iconv' '--disable-ftp' '--without-bz2' '--disable-ctype' '--disable-shmop' '--disable-sockets' '--disable-tokenizer' '--disable-sysvmsg' '--disable-sysvshm' '--disable-sysvsem' '--without-gmp' '--disable-calendar' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'PKG_CONFIG_PATH=/opt/cpanel/ea-php74/root/usr/lib64/pkgconfig:/opt/cpanel/ea-php74/root/usr/share/pkgconfig:/usr/lib64/pkgconfig:/opt/cpanel/ea-libicu/lib/pkgconfig:/opt/cpanel/ea-oniguruma/lib64/pkgconfig:/opt/cpanel/libargon2/lib64/pkgconfig:/opt/cpanel/ea-libxml2/lib64/pkgconfig' 'LDFLAGS= -Wl,-rpath-link,/lib64 -Wl,-rpath,/lib64 -Wl,--enable-new-dtags -Wl,-rpath,/opt/cpanel/ea-libxml2/lib -Wl,-rpath,/opt/cpanel/ea-libxml2/lib64' 'KERBEROS_CFLAGS=-I/usr/include' 'KERBEROS_LIBS=-L/usr/lib64' 'JPEG_CFLAGS=-I/usr/include' 'JPEG_LIBS=-L/usr/lib64 -ljpeg' 'SASL_CFLAGS=-I/usr/include' 'SASL_LIBS=-L/usr/lib64' 'XSL_CFLAGS=-I/opt/cpanel/ea-libxml2/include/libxml2' 'XSL_LIBS=-L/opt/cpanel/ea-libxml2/lib64 -lxml2' 'LIBZIP_CFLAGS=-I/opt/cpanel/ea-libzip/include' 'LIBZIP_LIBS=-L/opt/cpanel/ea-libzip/lib64 -lzip'
Server API LiteSpeed V8.0.1
Virtual Directory Support disabled
Configuration File (php.ini) Path /opt/cpanel/ea-php74/root/etc
Loaded Configuration File /opt/cpanel/ea-php74/root/etc/php.ini
Scan this dir for additional .ini files /opt/cpanel/ea-php74/root/etc/php.d
Additional .ini files parsed /opt/cpanel/ea-php74/root/etc/php.d/10-opcache.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-bcmath.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-ctype.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-curl.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-dom.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-ftp.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-gd.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-gmp.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-imap.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-intl.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-json.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-ldap.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-mbstring.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-mysqlnd.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-pdo.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-pgsql.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-phar.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-posix.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-simplexml.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-soap.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-sqlite3.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-tokenizer.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-xml.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-xmlwriter.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-xsl.ini, /opt/cpanel/ea-php74/root/etc/php.d/20-zip.ini, /opt/cpanel/ea-php74/root/etc/php.d/30-mysqli.ini, /opt/cpanel/ea-php74/root/etc/php.d/30-pdo_mysql.ini, /opt/cpanel/ea-php74/root/etc/php.d/30-pdo_pgsql.ini, /opt/cpanel/ea-php74/root/etc/php.d/30-pdo_sqlite.ini, /opt/cpanel/ea-php74/root/etc/php.d/30-xmlreader.ini, /opt/cpanel/ea-php74/root/etc/php.d/30-xmlrpc.ini, /opt/cpanel/ea-php74/root/etc/php.d/i360.ini, /opt/cpanel/ea-php74/root/etc/php.d/zz-cve-2026-109619.ini, /opt/cpanel/ea-php74/root/etc/php.d/zzzzzzz-pecl.ini
PHP API 20190902
PHP Extension 20190902
Zend Extension 320190902
Zend Extension Build API320190902,NTS
PHP Extension Build API20190902,NTS
Debug Build no
Thread Safety disabled
Zend Signal Handling enabled
Zend Memory Manager enabled
Zend Multibyte Support provided by mbstring
IPv6 Support enabled
DTrace Support disabled
Registered PHP Streamshttps, ftps, compress.zlib, php, file, glob, data, http, ftp, phar, zip
Registered Stream Socket Transportstcp, udp, unix, udg, ssl, tls, tlsv1.0, tlsv1.1, tlsv1.2, tlsv1.3
Registered Stream Filterszlib.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, chunk
Zend logo This program makes use of the Zend Scripting Language Engine:
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.34, Copyright (c), by Zend Technologies

Configuration

bcmath

BCMath support enabled
DirectiveLocal ValueMaster Value
bcmath.scale00

Core

PHP Version 7.4.34
DirectiveLocal ValueMaster Value
allow_url_fopenOffOff
allow_url_includeOffOff
arg_separator.input&&
arg_separator.output&&
auto_append_fileno valueno value
auto_globals_jitOnOn
auto_prepend_fileno valueno value
browscapno valueno value
default_charsetUTF-8UTF-8
default_mimetypetext/htmltext/html
disable_classesno valueno value
disable_functionsexec,system,passthru,shell_exec,proc_open,popen,proc_close,proc_terminate,proc_get_status,proc_nice,pcntl_exec,dl,show_sourceexec,system,passthru,shell_exec,proc_open,popen,proc_close,proc_terminate,proc_get_status,proc_nice,pcntl_exec,dl,show_source
display_errorsOffOff
display_startup_errorsOffOff
doc_rootno valueno value
docref_extno valueno value
docref_rootno valueno value
enable_dlOffOff
enable_post_data_readingOnOn
error_append_stringno valueno value
error_logerror_logerror_log
error_prepend_stringno valueno value
error_reporting-132759
expose_phpOffOff
extension_dir/opt/cpanel/ea-php74/root/usr/lib64/php/modules/opt/cpanel/ea-php74/root/usr/lib64/php/modules
file_uploadsOnOn
hard_timeout22
highlight.comment#FF8000#FF8000
highlight.default#0000BB#0000BB
highlight.html#000000#000000
highlight.keyword#007700#007700
highlight.string#DD0000#DD0000
html_errorsOnOn
ignore_repeated_errorsOffOff
ignore_repeated_sourceOffOff
ignore_user_abortOffOff
implicit_flushOffOff
include_path.:/opt/cpanel/ea-php74/root/usr/share/pear.:/opt/cpanel/ea-php74/root/usr/share/pear
input_encodingno valueno value
internal_encodingno valueno value
log_errorsOnOn
log_errors_max_len10241024
mail.add_x_headerOnOn
mail.force_extra_parametersno valueno value
mail.logno valueno value
max_execution_time3030
max_file_uploads2020
max_input_nesting_level6464
max_input_time6060
max_input_vars10001000
max_multipart_body_parts-1-1
memory_limit128M128M
open_basedirno valueno value
output_bufferingno valueno value
output_encodingno valueno value
output_handlerno valueno value
post_max_size8M8M
precision1414
realpath_cache_size4096K4096K
realpath_cache_ttl120120
register_argc_argvOnOn
report_memleaksOnOn
report_zend_debugOnOn
request_orderGPGP
sendmail_fromno valueno value
sendmail_path/usr/sbin/sendmail -t -i/usr/sbin/sendmail -t -i
serialize_precision100100
short_open_tagOnOn
SMTPlocalhostlocalhost
smtp_port2525
sys_temp_dirno valueno value
syslog.facilityLOG_USERLOG_USER
syslog.filterno-ctrlno-ctrl
syslog.identphpphp
track_errorsOffOff
unserialize_callback_funcno valueno value
upload_max_filesize2M2M
upload_tmp_dirno valueno value
user_dirno valueno value
user_ini.cache_ttl300300
user_ini.filename.user.ini.user.ini
variables_orderGPCSGPCS
xmlrpc_error_number00
xmlrpc_errorsOffOff
zend.assertions-1-1
zend.detect_unicodeOnOn
zend.enable_gcOnOn
zend.exception_ignore_argsOffOff
zend.multibyteOffOff
zend.script_encodingno valueno value
zend.signal_checkOffOff

ctype

ctype functions enabled

curl

cURL support enabled
cURL Information 7.61.1
Age 4
Features
AsynchDNS Yes
CharConv No
Debug No
GSS-Negotiate No
IDN Yes
IPv6 Yes
krb4 No
Largefile Yes
libz Yes
NTLM Yes
NTLMWB Yes
SPNEGO Yes
SSL Yes
SSPI No
TLS-SRP Yes
HTTP2 Yes
GSSAPI Yes
KERBEROS5 Yes
UNIX_SOCKETS Yes
PSL Yes
HTTPS_PROXY Yes
MULTI_SSL No
BROTLI Yes
Protocols dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtsp, scp, sftp, smb, smbs, smtp, smtps, telnet, tftp
Host x86_64-redhat-linux-gnu
SSL Version OpenSSL/1.1.1k
ZLib Version 1.2.11
libSSH Version libssh/0.9.6/openssl/zlib
DirectiveLocal ValueMaster Value
curl.cainfono valueno value

date

date/time support enabled
timelib version 2018.04
"Olson" Timezone Database Version 0.system
Timezone Database internal
Default timezone UTC
DirectiveLocal ValueMaster Value
date.default_latitude31.766731.7667
date.default_longitude35.233335.2333
date.sunrise_zenith90.58333390.583333
date.sunset_zenith90.58333390.583333
date.timezoneUTCUTC

dom

DOM/XML enabled
DOM/XML API Version 20031129
libxml Version 2.15.4
HTML Support enabled
XPath Support enabled
XPointer Support enabled
Schema Support enabled
RelaxNG Support enabled

filter

Input Validation and Filtering enabled
DirectiveLocal ValueMaster Value
filter.defaultunsafe_rawunsafe_raw
filter.default_flagsno valueno value

ftp

FTP support enabled
FTPS support enabled

gd

GD Support enabled
GD Version bundled (2.1.0 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.9.1
GIF Read Support enabled
GIF Create Support enabled
JPEG Support enabled
libJPEG Version 6b
PNG Support enabled
libPNG Version 1.6.34
WBMP Support enabled
XPM Support enabled
libXpm Version 30411
XBM Support enabled
WebP Support enabled
BMP Support enabled
TGA Read Support enabled
DirectiveLocal ValueMaster Value
gd.jpeg_ignore_warning11

gmp

gmp support enabled
GMP version 6.1.2

hash

hash support enabled
Hashing Engines md2 md4 md5 sha1 sha224 sha256 sha384 sha512/224 sha512/256 sha512 sha3-224 sha3-256 sha3-384 sha3-512 ripemd128 ripemd160 ripemd256 ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,4 tiger192,4 snefru snefru256 gost gost-crypto adler32 crc32 crc32b crc32c fnv132 fnv1a32 fnv164 fnv1a64 joaat haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,5 haval224,5 haval256,5
MHASH support Enabled
MHASH API Version Emulated Support

i360

i360 paramValue
i360 state activated
i360 mode kill
i360 blamer true
i360 path to log data sock:/opt/imunify360/lib/proactive.sock
i360 log type 2
i360 send on shtdwn 0
i360 report on kill 0
i360 db-scan OFF
i360 db-markers built-in, 8 literals, 1 exclusions
i360 db-markers load no file: /usr/share/i360-php-opts/.db_markers
i360 build for 7.4.33
i360 signs 2611091
i360 signs path /usr/share/i360-php-opts/sigs/8.8/.rules.v2
i360 pkg ver 8.8.1
i360 hdb ver 1794358559
i360 hdb entries 100555

imap

IMAP c-Client Version 2007f
SSL Support enabled
Kerberos Support enabled
DirectiveLocal ValueMaster Value
imap.enable_insecure_rshOffOff

intl

Internationalization supportenabled
ICU version 77.1
ICU Data version 77.1
ICU TZData version 2025a
ICU Unicode version 16.0
DirectiveLocal ValueMaster Value
intl.default_localeno valueno value
intl.error_level00
intl.use_exceptions00

json

json support enabled

ldap

LDAP Support enabled
Total Links 0/unlimited
API Version 3001
Vendor Name OpenLDAP
Vendor Version 20446
SASL Support Enabled
DirectiveLocal ValueMaster Value
ldap.max_linksUnlimitedUnlimited

libxml

libXML support active
libXML Compiled Version 2.15.4
libXML Loaded Version 21504
libXML streams enabled

mbstring

Multibyte Support enabled
Multibyte string engine libmbfl
HTTP input encoding translation disabled
libmbfl version 1.3.2
mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.
Multibyte (japanese) regex support enabled
Multibyte regex (oniguruma) version 6.9.10
DirectiveLocal ValueMaster Value
mbstring.detect_orderno valueno value
mbstring.encoding_translationOffOff
mbstring.func_overload00
mbstring.http_inputno valueno value
mbstring.http_outputno valueno value
mbstring.http_output_conv_mimetypes^(text/|application/xhtml\+xml)^(text/|application/xhtml\+xml)
mbstring.internal_encodingno valueno value
mbstring.languageneutralneutral
mbstring.regex_retry_limit10000001000000
mbstring.regex_stack_limit100000100000
mbstring.strict_detectionOffOff
mbstring.substitute_characterno valueno value

mysqli

MysqlI Supportenabled
Client API library version mysqlnd 7.4.34
Active Persistent Links 0
Inactive Persistent Links 0
Active Links 0
DirectiveLocal ValueMaster Value
mysqli.allow_local_infileOffOff
mysqli.allow_persistentOnOn
mysqli.default_hostno valueno value
mysqli.default_port33063306
mysqli.default_pwno valueno value
mysqli.default_socket/var/lib/mysql/mysql.sock/var/lib/mysql/mysql.sock
mysqli.default_userno valueno value
mysqli.max_linksUnlimitedUnlimited
mysqli.max_persistentUnlimitedUnlimited
mysqli.reconnectOffOff
mysqli.rollback_on_cached_plinkOffOff

mysqlnd

mysqlndenabled
Version mysqlnd 7.4.34
Compression supported
core SSL supported
extended SSL supported
Command buffer size 4096
Read buffer size 32768
Read timeout 86400
Collecting statistics Yes
Collecting memory statistics No
Tracing n/a
Loaded plugins mysqlnd,debug_trace,auth_plugin_mysql_native_password,auth_plugin_mysql_clear_password,auth_plugin_caching_sha2_password,auth_plugin_sha256_password
API Extensions mysqli,pdo_mysql

openssl

OpenSSL support enabled
OpenSSL Library Version OpenSSL 1.1.1k FIPS 25 Mar 2021
OpenSSL Header Version OpenSSL 1.1.1k FIPS 25 Mar 2021
Openssl default config /etc/pki/tls/openssl.cnf
DirectiveLocal ValueMaster Value
openssl.cafileno valueno value
openssl.capathno valueno value

pcre

PCRE (Perl Compatible Regular Expressions) Support enabled
PCRE Library Version 10.35 2020-05-09
PCRE Unicode Version 13.0.0
PCRE JIT Support enabled
PCRE JIT Target x86 64bit (little endian + unaligned)
DirectiveLocal ValueMaster Value
pcre.backtrack_limit10000001000000
pcre.jit11
pcre.recursion_limit100000100000

PDO

PDO supportenabled
PDO drivers mysql, pgsql, sqlite

pdo_mysql

PDO Driver for MySQLenabled
Client API version mysqlnd 7.4.34
DirectiveLocal ValueMaster Value
pdo_mysql.default_socket/var/lib/mysql/mysql.sock/var/lib/mysql/mysql.sock

pdo_pgsql

PDO Driver for PostgreSQL enabled
PostgreSQL(libpq) Version 13.11

pdo_sqlite

PDO Driver for SQLite 3.xenabled
SQLite Library 3.26.0

pgsql

PostgreSQL Supportenabled
PostgreSQL(libpq) Version 13.11
PostgreSQL(libpq) PostgreSQL 13.11 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-20), 64-bit
Multibyte character support enabled
SSL support enabled
Active Persistent Links 0
Active Links 0
DirectiveLocal ValueMaster Value
pgsql.allow_persistentOnOn
pgsql.auto_reset_persistentOffOff
pgsql.ignore_noticeOffOff
pgsql.log_noticeOffOff
pgsql.max_linksUnlimitedUnlimited
pgsql.max_persistentUnlimitedUnlimited

Phar

Phar: PHP Archive supportenabled
Phar API version 1.1.1
Phar-based phar archives enabled
Tar-based phar archives enabled
ZIP-based phar archives enabled
gzip compression enabled
bzip2 compression disabled (install ext/bz2)
Native OpenSSL support enabled
Phar based on pear/PHP_Archive, original concept by Davey Shafik.
Phar fully realized by Gregory Beaver and Marcus Boerger.
Portions of tar implementation Copyright (c) 2003-2009 Tim Kientzle.
DirectiveLocal ValueMaster Value
phar.cache_listno valueno value
phar.readonlyOnOn
phar.require_hashOnOn

posix

POSIX support enabled

Reflection

Reflection enabled

session

Session Support enabled
Registered save handlers files user
Registered serializer handlers php_serialize php php_binary
DirectiveLocal ValueMaster Value
session.auto_startOffOff
session.cache_expire180180
session.cache_limiternocachenocache
session.cookie_domainno valueno value
session.cookie_httponlyno valueno value
session.cookie_lifetime00
session.cookie_path//
session.cookie_samesiteno valueno value
session.cookie_secure00
session.gc_divisor11
session.gc_maxlifetime14401440
session.gc_probability00
session.lazy_writeOnOn
session.namePHPSESSIDPHPSESSID
session.referer_checkno valueno value
session.save_handlerfilesfiles
session.save_path/var/cpanel/php/sessions/ea-php74/var/cpanel/php/sessions/ea-php74
session.serialize_handlerphpphp
session.sid_bits_per_character44
session.sid_length3232
session.upload_progress.cleanupOnOn
session.upload_progress.enabledOffOff
session.upload_progress.freq1%1%
session.upload_progress.min_freq11
session.upload_progress.namePHP_SESSION_UPLOAD_PROGRESSPHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefixupload_progress_upload_progress_
session.use_cookies11
session.use_only_cookies11
session.use_strict_mode00
session.use_trans_sid00

SimpleXML

SimpleXML support enabled
Schema support enabled

soap

Soap Client enabled
Soap Server enabled
DirectiveLocal ValueMaster Value
soap.wsdl_cache11
soap.wsdl_cache_dir/tmp/tmp
soap.wsdl_cache_enabled11
soap.wsdl_cache_limit55
soap.wsdl_cache_ttl8640086400

SPL

SPL supportenabled
Interfaces OuterIterator, RecursiveIterator, SeekableIterator, SplObserver, SplSubject
Classes AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, CallbackFilterIterator, DirectoryIterator, DomainException, EmptyIterator, FilesystemIterator, FilterIterator, GlobIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, MultipleIterator, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveCallbackFilterIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RecursiveTreeIterator, RegexIterator, RuntimeException, SplDoublyLinkedList, SplFileInfo, SplFileObject, SplFixedArray, SplHeap, SplMinHeap, SplMaxHeap, SplObjectStorage, SplPriorityQueue, SplQueue, SplStack, SplTempFileObject, UnderflowException, UnexpectedValueException

sqlite3

SQLite3 supportenabled
SQLite Library 3.26.0
DirectiveLocal ValueMaster Value
sqlite3.defensive11
sqlite3.extension_dirno valueno value

standard

Dynamic Library Support enabled
Path to sendmail /usr/sbin/sendmail -t -i
DirectiveLocal ValueMaster Value
assert.active11
assert.bail00
assert.callbackno valueno value
assert.exception00
assert.quiet_eval00
assert.warning11
auto_detect_line_endings00
default_socket_timeout6060
fromno valueno value
session.trans_sid_hostsno valueno value
session.trans_sid_tagsa=href,area=href,frame=src,form=a=href,area=href,frame=src,form=
unserialize_max_depth40964096
url_rewriter.hostsno valueno value
url_rewriter.tagsa=href,area=href,frame=src,input=src,form=fakeentrya=href,area=href,frame=src,input=src,form=fakeentry
user_agentno valueno value

tokenizer

Tokenizer Support enabled

xml

XML Support active
XML Namespace Support active
libxml2 Version 2.15.4

xmlreader

XMLReader enabled

xmlrpc

core library version xmlrpc-epi v. 0.51
author Dan Libby
homepage http://xmlrpc-epi.sourceforge.net
open sourced by Epinions.com

xmlwriter

XMLWriter enabled

xsl

XSL enabled
libxslt Version 1.1.32
libxslt compiled against libxml Version 2.9.7
EXSLT enabled
libexslt Version 1.1.32

Zend OPcache

Opcode Caching Up and Running
Optimization Enabled
SHM Cache Enabled
File Cache Disabled
Startup OK
Shared memory model mmap
Cache hits 58883
Cache misses 1209
Used memory 27531320
Free memory 106686408
Wasted memory 0
Interned Strings Used memory 3358896
Interned Strings Free memory 2932112
Cached scripts 1209
Cached keys 2200
Max keys 7963
OOM restarts 0
Hash keys restarts 0
Manual restarts 0
DirectiveLocal ValueMaster Value
opcache.blacklist_filename/opt/cpanel/ea-php74/root/etc/php.d/opcache*.blacklist/opt/cpanel/ea-php74/root/etc/php.d/opcache*.blacklist
opcache.consistency_checks00
opcache.dups_fixOffOff
opcache.enableOnOn
opcache.enable_cliOffOff
opcache.enable_file_overrideOffOff
opcache.error_logno valueno value
opcache.file_cacheno valueno value
opcache.file_cache_consistency_checksOnOn
opcache.file_cache_onlyOffOff
opcache.file_update_protection22
opcache.force_restart_timeout180180
opcache.huge_code_pagesOffOff
opcache.interned_strings_buffer88
opcache.lockfile_path/tmp/tmp
opcache.log_verbosity_level11
opcache.max_accelerated_files40004000
opcache.max_file_size00
opcache.max_wasted_percentage55
opcache.memory_consumption128128
opcache.opt_debug_level00
opcache.optimization_level0x7FFEBFFF0x7FFEBFFF
opcache.preferred_memory_modelno valueno value
opcache.preloadno valueno value
opcache.preload_userno valueno value
opcache.protect_memoryOffOff
opcache.restrict_apino valueno value
opcache.revalidate_freq22
opcache.revalidate_pathOffOff
opcache.save_commentsOnOn
opcache.use_cwdOnOn
opcache.validate_permissionOnOn
opcache.validate_rootOffOff
opcache.validate_timestampsOnOn

zip

Zip enabled
Zip version 1.15.6
Libzip headers version 1.12.1
Libzip library version 1.5.1

zlib

ZLib Supportenabled
Stream Wrapper compress.zlib://
Stream Filter zlib.inflate, zlib.deflate
Compiled Version 1.2.11
Linked Version 1.2.11
DirectiveLocal ValueMaster Value
zlib.output_compressionOffOff
zlib.output_compression_level-1-1
zlib.output_handlerno valueno value

Additional Modules

Module Name
litespeed

Environment

VariableValue
PATH /usr/local/bin:/bin:/usr/bin

PHP Variables

VariableValue
$_REQUEST['mwv']1.2.11
$_GET['mwv']1.2.11
$_SERVER['PATH']/usr/local/bin:/bin:/usr/bin
$_SERVER['HTTP_ACCEPT']*/*
$_SERVER['HTTP_ACCEPT_ENCODING']gzip, br, zstd, deflate
$_SERVER['HTTP_CONNECTION']keep-alive
$_SERVER['HTTP_HOST']safetysolutionsmorbi.com
$_SERVER['HTTP_USER_AGENT']Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
$_SERVER['HTTP_CACHE_CONTROL']max-age=0
$_SERVER['HTTP_X_FORWARDED_FOR']10.3.105.210
$_SERVER['HTTP_VIA']1.1 squid-proxy-5b96dc6d46-lbcbs (squid/6.13)
$_SERVER['DOCUMENT_ROOT']/home/safetysolutionsm/public_html
$_SERVER['REMOTE_ADDR']216.73.217.128
$_SERVER['REMOTE_PORT']50293
$_SERVER['SERVER_ADDR']103.190.27.125
$_SERVER['SERVER_NAME']safetysolutionsmorbi.com
$_SERVER['SERVER_ADMIN']webmaster@safetysolutionsmorbi.com
$_SERVER['SERVER_PORT']80
$_SERVER['REQUEST_SCHEME']http
$_SERVER['REQUEST_URI']/public/apijs_combined?mwv=1.2.11
$_SERVER['REDIRECT_URL']/public/apijs_combined
$_SERVER['REDIRECT_QUERY_STRING']mwv=1.2.11
$_SERVER['REDIRECT_REQUEST_METHOD']GET
$_SERVER['REDIRECT_STATUS']200
$_SERVER['SCRIPT_FILENAME']/home/safetysolutionsm/public_html/public/index.php
$_SERVER['QUERY_STRING']mwv=1.2.11
$_SERVER['SCRIPT_URI']http://safetysolutionsmorbi.com/public/apijs_combined
$_SERVER['SCRIPT_URL']/public/apijs_combined
$_SERVER['SCRIPT_NAME']/public/index.php
$_SERVER['SERVER_PROTOCOL']HTTP/1.1
$_SERVER['SERVER_SOFTWARE']LiteSpeed
$_SERVER['REQUEST_METHOD']GET
$_SERVER['X-LSCACHE']on
$_SERVER['PHP_SELF']/public/index.php
$_SERVER['REQUEST_TIME_FLOAT']1794362339.6548
$_SERVER['REQUEST_TIME']1794362339
$_SERVER['argv']
Array
(
    [0] => mwv=1.2.11
)
$_SERVER['argc']1

PHP Credits

PHP Group
Thies C. Arntzen, Stig Bakken, Shane Caraveo, Andi Gutmans, Rasmus Lerdorf, Sam Ruby, Sascha Schumann, Zeev Suraski, Jim Winstead, Andrei Zmievski
Language Design & Concept
Andi Gutmans, Rasmus Lerdorf, Zeev Suraski, Marcus Boerger
PHP Authors
ContributionAuthors
Zend Scripting Language Engine Andi Gutmans, Zeev Suraski, Stanislav Malyshev, Marcus Boerger, Dmitry Stogov, Xinchen Hui, Nikita Popov
Extension Module API Andi Gutmans, Zeev Suraski, Andrei Zmievski
UNIX Build and Modularization Stig Bakken, Sascha Schumann, Jani Taskinen, Peter Kokot
Windows Support Shane Caraveo, Zeev Suraski, Wez Furlong, Pierre-Alain Joye, Anatol Belski, Kalle Sommer Nielsen
Server API (SAPI) Abstraction Layer Andi Gutmans, Shane Caraveo, Zeev Suraski
Streams Abstraction Layer Wez Furlong, Sara Golemon
PHP Data Objects Layer Wez Furlong, Marcus Boerger, Sterling Hughes, George Schlossnagle, Ilia Alshanetsky
Output Handler Zeev Suraski, Thies C. Arntzen, Marcus Boerger, Michael Wallner
Consistent 64 bit support Anthony Ferrara, Anatol Belski
SAPI Modules
ContributionAuthors
Apache 2.0 Handler Ian Holsman, Justin Erenkrantz (based on Apache 2.0 Filter code)
CGI / FastCGI Rasmus Lerdorf, Stig Bakken, Shane Caraveo, Dmitry Stogov
CLI Edin Kadribasic, Marcus Boerger, Johannes Schlueter, Moriyoshi Koizumi, Xinchen Hui
Embed Edin Kadribasic
FastCGI Process Manager Andrei Nigmatulin, dreamcat4, Antony Dovgal, Jerome Loyet
litespeed George Wang
phpdbg Felipe Pena, Joe Watkins, Bob Weinand
Module Authors
ModuleAuthors
BC Math Andi Gutmans
Bzip2 Sterling Hughes
Calendar Shane Caraveo, Colin Viebrock, Hartmut Holzgraefe, Wez Furlong
COM and .Net Wez Furlong
ctype Hartmut Holzgraefe
cURL Sterling Hughes
Date/Time Support Derick Rethans
DB-LIB (MS SQL, Sybase) Wez Furlong, Frank M. Kromann, Adam Baratz
DBA Sascha Schumann, Marcus Boerger
DOM Christian Stocker, Rob Richards, Marcus Boerger
enchant Pierre-Alain Joye, Ilia Alshanetsky
EXIF Rasmus Lerdorf, Marcus Boerger
FFI Dmitry Stogov
fileinfo Ilia Alshanetsky, Pierre Alain Joye, Scott MacVicar, Derick Rethans, Anatol Belski
Firebird driver for PDO Ard Biesheuvel
FTP Stefan Esser, Andrew Skalski
GD imaging Rasmus Lerdorf, Stig Bakken, Jim Winstead, Jouni Ahto, Ilia Alshanetsky, Pierre-Alain Joye, Marcus Boerger
GetText Alex Plotnick
GNU GMP support Stanislav Malyshev
Iconv Rui Hirokawa, Stig Bakken, Moriyoshi Koizumi
IMAP Rex Logan, Mark Musone, Brian Wang, Kaj-Michael Lang, Antoni Pamies Olive, Rasmus Lerdorf, Andrew Skalski, Chuck Hagenbuch, Daniel R Kalowsky
Input Filter Rasmus Lerdorf, Derick Rethans, Pierre-Alain Joye, Ilia Alshanetsky
Internationalization Ed Batutis, Vladimir Iordanov, Dmitry Lakhtyuk, Stanislav Malyshev, Vadim Savchuk, Kirti Velankar
JSON Jakub Zelenka, Omar Kilani, Scott MacVicar
LDAP Amitay Isaacs, Eric Warnke, Rasmus Lerdorf, Gerrit Thomson, Stig Venaas
LIBXML Christian Stocker, Rob Richards, Marcus Boerger, Wez Furlong, Shane Caraveo
Multibyte String Functions Tsukada Takuya, Rui Hirokawa
MySQL driver for PDO George Schlossnagle, Wez Furlong, Ilia Alshanetsky, Johannes Schlueter
MySQLi Zak Greant, Georg Richter, Andrey Hristov, Ulf Wendel
MySQLnd Andrey Hristov, Ulf Wendel, Georg Richter, Johannes Schlüter
OCI8 Stig Bakken, Thies C. Arntzen, Andy Sautins, David Benson, Maxim Maletsky, Harald Radi, Antony Dovgal, Andi Gutmans, Wez Furlong, Christopher Jones, Oracle Corporation
ODBC driver for PDO Wez Furlong
ODBC Stig Bakken, Andreas Karajannis, Frank M. Kromann, Daniel R. Kalowsky
Opcache Andi Gutmans, Zeev Suraski, Stanislav Malyshev, Dmitry Stogov, Xinchen Hui
OpenSSL Stig Venaas, Wez Furlong, Sascha Kettler, Scott MacVicar
Oracle (OCI) driver for PDO Wez Furlong
pcntl Jason Greene, Arnaud Le Blanc
Perl Compatible Regexps Andrei Zmievski
PHP Archive Gregory Beaver, Marcus Boerger
PHP Data Objects Wez Furlong, Marcus Boerger, Sterling Hughes, George Schlossnagle, Ilia Alshanetsky
PHP hash Sara Golemon, Rasmus Lerdorf, Stefan Esser, Michael Wallner, Scott MacVicar
Posix Kristian Koehntopp
PostgreSQL driver for PDO Edin Kadribasic, Ilia Alshanetsky
PostgreSQL Jouni Ahto, Zeev Suraski, Yasuo Ohgaki, Chris Kings-Lynne
Pspell Vlad Krupin
Readline Thies C. Arntzen
Reflection Marcus Boerger, Timm Friebe, George Schlossnagle, Andrei Zmievski, Johannes Schlueter
Sessions Sascha Schumann, Andrei Zmievski
Shared Memory Operations Slava Poliakov, Ilia Alshanetsky
SimpleXML Sterling Hughes, Marcus Boerger, Rob Richards
SNMP Rasmus Lerdorf, Harrie Hazewinkel, Mike Jackson, Steven Lawrance, Johann Hanne, Boris Lytochkin
SOAP Brad Lafountain, Shane Caraveo, Dmitry Stogov
Sockets Chris Vandomelen, Sterling Hughes, Daniel Beulshausen, Jason Greene
Sodium Frank Denis
SPL Marcus Boerger, Etienne Kneuss
SQLite 3.x driver for PDO Wez Furlong
SQLite3 Scott MacVicar, Ilia Alshanetsky, Brad Dewar
System V Message based IPC Wez Furlong
System V Semaphores Tom May
System V Shared Memory Christian Cartus
tidy John Coggeshall, Ilia Alshanetsky
tokenizer Andrei Zmievski, Johannes Schlueter
XML Stig Bakken, Thies C. Arntzen, Sterling Hughes
XMLReader Rob Richards
xmlrpc Dan Libby
XMLWriter Rob Richards, Pierre-Alain Joye
XSL Christian Stocker, Rob Richards
Zip Pierre-Alain Joye, Remi Collet
Zlib Rasmus Lerdorf, Stefan Roehrich, Zeev Suraski, Jade Nicoletti, Michael Wallner
PHP Documentation
Authors Mehdi Achour, Friedhelm Betz, Antony Dovgal, Nuno Lopes, Hannes Magnusson, Philip Olson, Georg Richter, Damien Seguy, Jakub Vrana, Adam Harvey
Editor Peter Cowburn
User Note Maintainers Daniel P. Brown, Thiago Henrique Pojda
Other Contributors Previously active authors, editors and other contributors are listed in the manual.
PHP Quality Assurance Team
Ilia Alshanetsky, Joerg Behrens, Antony Dovgal, Stefan Esser, Moriyoshi Koizumi, Magnus Maatta, Sebastian Nohn, Derick Rethans, Melvyn Sopacua, Pierre-Alain Joye, Dmitry Stogov, Felipe Pena, David Soria Parra, Stanislav Malyshev, Julien Pauli, Stephen Zarkos, Anatol Belski, Remi Collet, Ferenc Kovacs
Websites and Infrastructure team
PHP Websites Team Rasmus Lerdorf, Hannes Magnusson, Philip Olson, Lukas Kahwe Smith, Pierre-Alain Joye, Kalle Sommer Nielsen, Peter Cowburn, Adam Harvey, Ferenc Kovacs, Levi Morrison
Event Maintainers Damien Seguy, Daniel P. Brown
Network Infrastructure Daniel P. Brown
Windows Infrastructure Alex Schoenmaker

PHP License

This program is free software; you can redistribute it and/or modify it under the terms of the PHP License as published by the PHP Group and included in the distribution in the file: LICENSE

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

If you did not receive a copy of the PHP license, or have any questions about PHP licensing, please contact license@php.net.

(function () { if (window.mw) { console.log('%c !!! mw already defined !!! ', 'background: #009cff; color: #fff; font-size:16px;'); return; } var mw = {}; mw.settings = { regions: false, liveEdit: false, debug: true, basic_mode: false, site_url: 'http://safetysolutionsmorbi.com/public/', template_url: 'http://safetysolutionsmorbi.com/public/userfiles/templates/new-world/', modules_url: 'http://safetysolutionsmorbi.com/public/userfiles/modules/', includes_url: 'http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/', upload_url: 'http://safetysolutionsmorbi.com/public/api/upload/', api_url: 'http://safetysolutionsmorbi.com/public/api/', libs_url: 'http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/libs/', api_html: 'http://safetysolutionsmorbi.com/public/api_html/', editables_created: false, element_id: false, text_edit_started: false, sortables_created: false, drag_started: false, sorthandle_hover: false, resize_started: false, sorthandle_click: false, row_id: false, edit_area_placeholder: '
Please drag items here
', empty_column_placeholder: '
Please drag items here
', handles: { item: "
" }, sorthandle_delete_confirmation_text: "Are you sure you want to delete this element?" } mw.settings.libs = { jqueryui: [ function () { mw.require(mw.settings.libs_url + 'jqueryui' + '/jquery-ui.min.js'); mw.require(mw.settings.libs_url + 'jqueryui' + '/jquery-ui.min.css'); } ], morris: ['morris.css', 'raphael.js', 'morris.js'], rangy: ['rangy-core.js', 'rangy-cssclassapplier.js', 'rangy-selectionsaverestore.js', 'rangy-serializer.js'], highlight: [ 'highlight.min.js', 'highlight.min.css' ], bootstrap2: [ function () { var v = document.querySelector('meta[name="viewport"]'); if (v === null) { v = document.createElement('meta'); v.name = "viewport"; } v.content = "width=device-width, initial-scale=1.0"; mwhead.appendChild(v); }, 'css/bootstrap.min.css', 'css/bootstrap-responsive.min.css', 'js/bootstrap.min.js' ], bootstrap3: [ function () { mw.require(mw.settings.libs_url + 'fontawesome-4.7.0' + '/css/font-awesome.min.css'); var v = document.querySelector('meta[name="viewport"]'); if (v === null) { v = document.createElement('meta'); v.name = "viewport"; } v.content = "width=device-width, initial-scale=1.0"; mwhead.appendChild(v); }, 'css/bootstrap.min.css', 'js/bootstrap.min.js' ], bootstrap4: [ function () { mw.require(mw.settings.libs_url + 'bootstrap-4.3.1' + '/css/bootstrap.min.css'); mw.require(mw.settings.libs_url + 'bootstrap-4.3.1' + '/js/popper.min.js'); mw.require(mw.settings.libs_url + 'bootstrap-4.3.1' + '/js/bootstrap.min.js'); mw.require(mw.settings.libs_url + 'fontawesome-free-5.12.0' + '/css/all.min.css'); } ], bootstrap5js: [ function () { mw.require(mw.settings.libs_url + 'bootstrap5' + '/js/bootstrap.bundle.min.js'); } ], bootstrap5: [ function () { mw.require(mw.settings.libs_url + 'bootstrap5' + '/css/bootstrap.' + (document.documentElement.dir==='rtl' ? 'rtl.' : '') + 'min.css'); mw.lib.require('bootstrap5js') } ], microweber_ui: [ function () { mw.require(mw.settings.libs_url + 'mw-ui' + '/grunt/plugins/ui/css/main.css'); mw.require(mw.settings.libs_url + 'mw-ui' + '/assets/ui/plugins/css/plugins.min.css'); mw.require(mw.settings.libs_url + 'mw-ui' + '/assets/ui/plugins/js/plugins.js'); } ], mwui: [ function () { // mw.require(mw.settings.libs_url + 'mw-ui' + '/grunt/plugins/ui/css/main.css'); // mw.require(mw.settings.libs_url + 'mw-ui' + '/assets/ui/plugins/css/plugins.min.css'); // mw.require(mw.settings.libs_url + 'mw-ui' + '/grunt/plugins/ui/css/mw.css'); //The files above are added in default.css mw.require(mw.settings.libs_url + 'mw-ui' + '/assets/ui/plugins/js/plugins.js'); } ], mwui_init: [ function () { mw.require(mw.settings.libs_url + 'mw-ui' + '/grunt/plugins/ui/js/ui.js'); } ], flag_icons: [ function () { mw.require(mw.settings.libs_url + 'flag-icon-css' + '/css/flag-icon.min.css'); } ], font_awesome: [ function () { mw.require(mw.settings.libs_url + 'fontawesome-4.7.0' + '/css/font-awesome.min.css'); } ], font_awesome5: [ function () { mw.require(mw.settings.libs_url + 'fontawesome-free-5.12.0' + '/css/all.min.css'); } ], bxslider: [ function () { mw.require(mw.settings.libs_url + 'bxSlider/jquery.bxslider.min.js', true); mw.require(mw.settings.libs_url + 'bxSlider/jquery.bxslider.css', true); } ], collapse_nav: [ function () { mw.require(mw.settings.libs_url + 'collapse-nav/dist/collapseNav.js', true); mw.require(mw.settings.libs_url + 'collapse-nav/dist/collapseNav.css', true); } ], slick: [ function () { mw.require(mw.settings.libs_url + 'slick' + '/slick.css', true); mw.moduleCSS(mw.settings.libs_url + 'slick' + '/slick-theme.css'); mw.require(mw.settings.libs_url + 'slick' + '/slick.min.js', true); } ], ion_range_slider: [ function () { mw.require(mw.settings.libs_url + 'ion-range-slider' + '/css/ion.rangeSlider.min.css', true); mw.require(mw.settings.libs_url + 'ion-range-slider' + '/js/ion.rangeSlider.min.js', true); } ], air_datepicker: [ function () { mw.require(mw.settings.libs_url + 'air-datepicker' + '/css/datepicker.min.css', true); mw.require(mw.settings.libs_url + 'air-datepicker' + '/js/datepicker.min.js', true); $.fn.datepicker.language['en'] = { days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], daysMin: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], daysShort: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], today: 'Today', clear: 'Clear', dateFormat: 'yyyy-mm-dd', firstDay: 0 }; } ], bootstrap_datepicker: [ function () { mw.require(mw.settings.libs_url + 'bootstrap-datepicker' + '/css/bootstrap-datepicker3.css', true); mw.require(mw.settings.libs_url + 'bootstrap-datepicker' + '/js/bootstrap-datepicker.js', true); } ], bootstrap_datetimepicker: [ function () { mw.require(mw.settings.libs_url + 'bootstrap-datetimepicker' + '/css/bootstrap-datetimepicker.min.css', true); mw.require(mw.settings.libs_url + 'bootstrap-datetimepicker' + '/js/bootstrap-datetimepicker.min.js', true); } ], bootstrap3ns: [ function () { //var bootstrap_enabled = (typeof $().modal == 'function'); var bootstrap_enabled = (typeof $ != 'undefined' && typeof $.fn != 'undefined' && typeof $.fn.emulateTransitionEnd != 'undefined'); if (!bootstrap_enabled) { mw.require(mw.settings.libs_url + 'bootstrap3' + '/js/bootstrap.min.js'); //var bootstrap_enabled = (typeof $().modal == 'function'); //if (bootstrap_enabled == false) { mw.require(mw.settings.libs_url + 'bootstrap3ns' + '/bootstrap.min.css'); mw.require(mw.settings.libs_url + 'fontawesome-4.7.0' + '/css/font-awesome.min.css'); } // } } ], bootstrap_select: [ function () { //var bootstrap_enabled = (typeof $().modal == 'function'); //if (!bootstrap_enabled == false) { mw.require(mw.settings.libs_url + 'bootstrap-select-1.13.12' + '/js/bootstrap-select.min.js'); mw.require(mw.settings.libs_url + 'bootstrap-select-1.13.12' + '/css/bootstrap-select.min.css'); //} } ], bootstrap_tags: [ function () { // var bootstrap_enabled = (typeof $().modal == 'function'); //if (!bootstrap_enabled == false) { mw.require(mw.settings.libs_url + 'typeahead' + '/typeahead.jquery.js'); mw.require(mw.settings.libs_url + 'typeahead' + '/typeahead.bundle.min.js'); mw.require(mw.settings.libs_url + 'typeahead' + '/bloodhound.js'); mw.require(mw.settings.libs_url + 'mw-ui/grunt/plugins/tags' + '/bootstrap-tagsinput.css'); mw.require(mw.settings.libs_url + 'mw-ui/grunt/plugins/tags' + '/bootstrap-tagsinput.js'); //} else { //mw.log("You must load bootstrap to use bootstrap_tags"); //} } ], chosen: [ function () { mw.require(mw.settings.libs_url + 'chosen' + '/chosen.jquery.min.js'); mw.require(mw.settings.libs_url + 'chosen' + '/chosen.min.css', true); } ], validation: [ function () { mw.require(mw.settings.libs_url + 'jquery_validation' + '/js/jquery.validationEngine.js'); mw.require(mw.settings.libs_url + 'jquery_validation' + '/js/languages/jquery.validationEngine-en.js'); mw.require(mw.settings.libs_url + 'jquery_validation' + '/css/validationEngine.jquery.css'); } ], fitty: [ function () { mw.require(mw.settings.libs_url + 'fitty' + '/dist/fitty.min.js'); /*$(document).ready(function () { fitty('.fitty-element'); });*/ } ], flatstrap3: [ function () { var v = document.querySelector('meta[name="viewport"]'); if (v === null) { v = document.createElement('meta'); v.name = "viewport"; } v.content = "width=device-width, initial-scale=1.0"; mwhead.appendChild(v); }, 'css/bootstrap.min.css', 'js/bootstrap.min.js' ], datepicker: [ 'datepicker.min.js', 'datepicker.min.css' ], datetimepicker: [ 'jquery.datetimepicker.full.min.js', 'jquery.datetimepicker.min.css' ], nestedSortable: [ function () { mw.require(mw.settings.libs_url + 'nestedsortable' + '/jquery.mjs.nestedSortable.js'); } ], colorpicker: [ function () { mw.require(mw.settings.includes_url + 'api' + '/color.js'); mw.require(mw.settings.libs_url + 'acolorpicker' + '/acolorpicker.js'); } ], material_icons: [ function () { mw.require(mw.settings.libs_url + 'material_icons' + '/material_icons.css'); } ], materialDesignIcons: [ function () { mw.require('css/fonts/materialdesignicons/css/materialdesignicons.min.css'); } ], mw_icons_mind: [ function () { mw.require('fonts/mw-icons-mind/line/style.css'); mw.require('fonts/mw-icons-mind/solid/style.css'); } ], uppy: [ 'uppy.min.js', 'uppy.min.css' ], apexcharts: [ 'apexcharts.min.js', 'apexcharts.css' ], anchorific: [ function () { mw.require(mw.settings.libs_url + 'anchorific' + '/anchorific.min.js', true); } ], multilanguage: [ function () { mw.require(mw.settings.libs_url + 'multilanguage' + '/mlInput.js'); mw.require(mw.settings.libs_url + 'multilanguage' + '/mlTextArea.js'); } ], codemirror: [ function () { mw.require(mw.settings.libs_url + 'codemirror' + '/codemirror.min.js'); mw.require(mw.settings.libs_url + 'codemirror' + '/css.min.js'); mw.require(mw.settings.libs_url + 'codemirror' + '/xml.js'); mw.require(mw.settings.libs_url + 'codemirror' + '/javascript.js'); mw.require(mw.settings.libs_url + 'codemirror' + '/css.js'); mw.require(mw.settings.libs_url + 'codemirror' + '/csslint.js'); mw.require(mw.settings.libs_url + 'codemirror' + '/css-lint-plugin.js'); mw.require(mw.settings.libs_url + 'codemirror' + '/htmlmixed.min.js'); mw.require(mw.settings.libs_url + 'codemirror' + '/php.min.js'); mw.require(mw.settings.libs_url + 'codemirror' + '/autorefresh.js'); mw.require(mw.settings.libs_url + 'codemirror' + '/selection-pointer.js'); mw.require(mw.settings.libs_url + 'codemirror' + '/xml-fold.js'); mw.require(mw.settings.libs_url + 'codemirror' + '/matchtags.js'); mw.require(mw.settings.libs_url + 'codemirror' + '/beautify.min.js'); mw.require(mw.settings.libs_url + 'codemirror' + '/beautify-css.min.js'); mw.require(mw.settings.libs_url + 'codemirror' + '/beautify-html.min.js'); mw.require(mw.settings.libs_url + 'codemirror' + '/style.css'); } ] }; mw.lib = { _required: [], require: function (name) { if (mw.lib._required.indexOf(name) !== -1) { return false; } mw.lib._required.push(name); if (typeof mw.settings.libs[name] === 'undefined') return false; if (mw.settings.libs[name].constructor !== [].constructor) return false; var path = mw.settings.libs_url + name + '/', arr = mw.settings.libs[name], l = arr.length, i = 0, c = 0; for (; i < l; i++) { (typeof arr[i] === 'string') ? mw.require(path + arr[i], true) : (typeof arr[i] === 'function') ? arr[i].call() : ''; } }, }; mw.lang = function (key) { var camel = key.trim().replace(/(?:^\w|[A-Z]|\b\w)/g, function (letter, index) { return index == 0 ? letter.toLowerCase() : letter.toUpperCase(); }).replace(/\s+/g, ''); if (mw._lang[camel]) { return mw._lang[camel]; } else { // console.warn('"' + key + '" is not present.'); return key; } }; mw.msg = mw._lang = { uniqueVisitors: 'Unique visitors', allViews: 'All views', date: 'Date', weekDays: { regular: [ 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ], short: [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ] }, months: { regular: [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ], short: [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'June', 'July', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec' ] }, ok: "OK", category: "Category", published: "Published", unpublished: "Unpublished", contentunpublished: "Content is unpublished", contentpublished: "Content is published", save: "Save", saving: "Saving", saved: "Saved", settings: "Settings", cancel: "Cancel", remove: "Remove", close: "Close", to_delete_comment: "Are you sure you want to delete this comment", del: "Are you sure you want to delete this?", save_and_continue: "Save &amp; Continue", before_leave: "Leave without saving", session_expired: "Your session has expired", login_to_continue: "Please login to continue", more: "More", templateSettingsHidden: "Template settings", less: "Less", product_added: "Your product is added to cart", no_results_for: "No results for", switch_to_modules: 'Switch to Modules', switch_to_layouts: 'Switch to Layouts', loading: 'Loading', edit: 'Edit', change: 'Change', submit: 'Submit', settingsSaved: 'Settings are saved', addImage: 'Add new image' }; if (!window.mw) { window.mw = mw; } })(); const Ziggy = {"url":"http:\/\/safetysolutionsmorbi.com\/public","port":null,"defaults":{},"routes":{"logout":{"uri":"logout","methods":["GET","HEAD"]},"logout.submit":{"uri":"logout","methods":["POST"]},"verification.verify":{"uri":"email\/verify\/{id}\/{hash}","methods":["GET","HEAD"]},"verification.resend":{"uri":"email\/verify-resend\/{id}\/{hash}","methods":["GET","HEAD"]},"verification.send":{"uri":"email\/verify-resend\/{id}\/{hash}","methods":["POST"]},"checkout.forgot_password":{"uri":"forgot-password","methods":["GET","HEAD"]},"password.email":{"uri":"forgot-password","methods":["POST"]},"password.reset":{"uri":"reset-password\/{token}","methods":["GET","HEAD"]},"password.update":{"uri":"reset-password","methods":["POST"]},"plupload":{"uri":"plupload\/{all}","methods":["GET","HEAD","POST","PUT","PATCH","DELETE","OPTIONS"],"wheres":{"all":".*"}},"checkout.cart":{"uri":"cart","methods":["GET","HEAD"]},"checkout.contact_information":{"uri":"contact-information","methods":["GET","HEAD"]},"checkout.contact_information_save":{"uri":"contact-information-save","methods":["POST"]},"checkout.shipping_method":{"uri":"shipping-method","methods":["GET","HEAD"]},"checkout.shipping_method_change":{"uri":"shipping-method-change","methods":["POST"]},"checkout.shipping_method_save":{"uri":"shipping-method-save","methods":["POST"]},"checkout.payment_method":{"uri":"payment-method","methods":["GET","HEAD"]},"checkout.payment_method_change":{"uri":"payment-method-change","methods":["POST"]},"checkout.payment_method_save":{"uri":"payment-method-save","methods":["POST"]},"login":{"uri":"login","methods":["GET","HEAD"]},"checkout.register":{"uri":"register","methods":["GET","HEAD"]},"checkout.finish":{"uri":"finish\/{id}","methods":["GET","HEAD"]},"shop.shipping.set_provider":{"uri":"api\/shop\/shipping\/set_provider","methods":["GET","POST","HEAD"]},"apijs":{"uri":"apijs\/{all}","methods":["GET","HEAD","POST","PUT","PATCH","DELETE","OPTIONS"],"wheres":{"all":".*"}},"csrf":{"uri":"csrf","methods":["GET","HEAD"]},"module":{"uri":"module\/{all}","methods":["GET","HEAD","POST","PUT","PATCH","DELETE","OPTIONS"],"wheres":{"all":".*"}},"api":{"uri":"api_nosession\/{all}","methods":["GET","HEAD","POST","PUT","PATCH","DELETE","OPTIONS"],"wheres":{"all":".*"}},"editor_tools":{"uri":"editor_tools\/{all}","methods":["GET","HEAD","POST","PUT","PATCH","DELETE","OPTIONS"],"wheres":{"all":".*"}},"home":{"uri":"\/","methods":["GET","HEAD","POST","PUT","PATCH","DELETE","OPTIONS"]},"admin":{"uri":"admin","methods":["GET","HEAD","POST","PUT","PATCH","DELETE","OPTIONS"]},"adminadmin.all":{"uri":"admin\/{all}","methods":["GET","HEAD","POST","PUT","PATCH","DELETE","OPTIONS"],"wheres":{"all":".*"}},"robots":{"uri":"robots.txt","methods":["GET","HEAD","POST","PUT","PATCH","DELETE","OPTIONS"]},"sitemap.index":{"uri":"sitemap.xml","methods":["GET","HEAD"]},"sitemap.categories":{"uri":"sitemap.xml\/categories","methods":["GET","HEAD"]},"sitemap.tags":{"uri":"sitemap.xml\/tags","methods":["GET","HEAD"]},"sitemap.products":{"uri":"sitemap.xml\/products","methods":["GET","HEAD"]},"sitemap.posts":{"uri":"sitemap.xml\/posts","methods":["GET","HEAD"]},"sitemap.pages":{"uri":"sitemap.xml\/pages","methods":["GET","HEAD"]},"rss.index":{"uri":"rss","methods":["GET","HEAD","POST","PUT","PATCH","DELETE","OPTIONS"]},"rss.products":{"uri":"rss-products","methods":["GET","HEAD","POST","PUT","PATCH","DELETE","OPTIONS"]},"rss.posts":{"uri":"rss-posts","methods":["GET","HEAD","POST","PUT","PATCH","DELETE","OPTIONS"]},"all":{"uri":"{all}","methods":["GET","HEAD","POST","PUT","PATCH","DELETE","OPTIONS"],"wheres":{"all":".*"}}}}; !function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t||self).route=n()}(this,function(){function t(t,n){for(var r=0;r1;){var n=t.pop(),r=n.obj[n.prop];if(d(r)){for(var e=[],i=0;i=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122||i===s.RFC1738&&(40===c||41===c)?u+=o.charAt(f):c<128?u+=p[c]:c<2048?u+=p[192|c>>6]+p[128|63&c]:c<55296||c>=57344?u+=p[224|c>>12]+p[128|c>>6&63]+p[128|63&c]:(c=65536+((1023&c)<<10|1023&o.charCodeAt(f+=1)),u+=p[240|c>>18]+p[128|c>>12&63]+p[128|c>>6&63]+p[128|63&c])}return u},isBuffer:function(t){return!(!t||"object"!=typeof t||!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t)))},isRegExp:function(t){return"[object RegExp]"===Object.prototype.toString.call(t)},maybeMap:function(t,n){if(d(t)){for(var r=[],e=0;e0?b.join(",")||null:void 0}];else if(m(f))k=f;else{var T=Object.keys(b);k=c?T.sort(c):T}for(var C=0;C-1?t.split(","):t},D=function(t,n,r,e){if(t){var i=r.allowDots?t.replace(/\.([^.[]+)/g,"[$1]"):t,o=/(\[[^[\]]*])/g,u=r.depth>0&&/(\[[^[\]]*])/.exec(i),f=u?i.slice(0,u.index):i,c=[];if(f){if(!r.plainObjects&&x.call(Object.prototype,f)&&!r.allowPrototypes)return;c.push(f)}for(var a=0;r.depth>0&&null!==(u=o.exec(i))&&a=0;--o){var u,f=t[o];if("[]"===f&&r.parseArrays)u=[].concat(i);else{u=r.plainObjects?Object.create(null):{};var c="["===f.charAt(0)&&"]"===f.charAt(f.length-1)?f.slice(1,-1):f,a=parseInt(c,10);r.parseArrays||""!==c?!isNaN(a)&&f!==c&&String(a)===c&&a>=0&&r.parseArrays&&a<=r.arrayLimit?(u=[])[a]=i:"__proto__"!==c&&(u[c]=i):u={0:i}}i=u}return i}(c,n,r,e)}},$=/*#__PURE__*/function(){function t(t,n,r){var e,i;this.name=t,this.definition=n,this.bindings=null!=(e=n.bindings)?e:{},this.wheres=null!=(i=n.wheres)?i:{},this.config=r}var r=t.prototype;return r.matchesUrl=function(t){if(!this.definition.methods.includes("GET"))return!1;var n=this.template.replace(/\/{[^}?]*\?}/g,"(/[^/?]+)?").replace(/{[^}?]*\?}/g,"([^/?]+)?").replace(/{[^}]+}/g,"[^/?]+").replace(/^\w+:\/\//,"");return new RegExp("^"+n+"$").test(t.replace(/\/+$/,"").split("?").shift())},r.compile=function(t){var n=this;return this.parameterSegments.length?this.template.replace(/{([^}?]+)\??}/g,function(r,e){var i,o;if([null,void 0].includes(t[e])&&n.parameterSegments.find(function(t){return t.name===e}).required)throw new Error("Ziggy error: '"+e+"' parameter is required for route '"+n.name+"'.");return n.parameterSegments[n.parameterSegments.length-1].name===e&&".*"===n.wheres[e]?null!=(o=t[e])?o:"":encodeURIComponent(null!=(i=t[e])?i:"")}).replace(/\/+$/,""):this.template},n(t,[{key:"template",get:function(){return((this.config.absolute?this.definition.domain?""+this.config.url.match(/^\w+:\/\//)[0]+this.definition.domain+(this.config.port?":"+this.config.port:""):this.config.url:"")+"/"+this.definition.uri).replace(/\/+$/,"")}},{key:"parameterSegments",get:function(){var t,n;return null!=(t=null==(n=this.template.match(/{[^}?]+\??}/g))?void 0:n.map(function(t){return{name:t.replace(/{|\??}/g,""),required:!/\?}$/.test(t)}}))?t:[]}}]),t}(),A=/*#__PURE__*/function(t){var e,o;function u(n,e,i,o){var u;if(void 0===i&&(i=!0),(u=t.call(this)||this).t=null!=o?o:"undefined"!=typeof Ziggy?Ziggy:null==globalThis?void 0:globalThis.Ziggy,u.t=r({},u.t,{absolute:i}),n){if(!u.t.routes[n])throw new Error("Ziggy error: route '"+n+"' is not in the route list.");u.i=new $(n,u.t.routes[n],u.t),u.u=u.l(e)}return u}o=t,(e=u).prototype=Object.create(o.prototype),e.prototype.constructor=e,i(e,o);var f=u.prototype;return f.toString=function(){var t=this,n=Object.keys(this.u).filter(function(n){return!t.i.parameterSegments.some(function(t){return t.name===n})}).filter(function(t){return"_query"!==t}).reduce(function(n,e){var i;return r({},n,((i={})[e]=t.u[e],i))},{});return this.i.compile(this.u)+function(t,n){var r,e=t,i=function(t){if(!t)return S;if(null!=t.encoder&&"function"!=typeof t.encoder)throw new TypeError("Encoder has to be a function.");var n=t.charset||S.charset;if(void 0!==t.charset&&"utf-8"!==t.charset&&"iso-8859-1"!==t.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var r=s.default;if(void 0!==t.format){if(!b.call(s.formatters,t.format))throw new TypeError("Unknown format option provided.");r=t.format}var e=s.formatters[r],i=S.filter;return("function"==typeof t.filter||m(t.filter))&&(i=t.filter),{addQueryPrefix:"boolean"==typeof t.addQueryPrefix?t.addQueryPrefix:S.addQueryPrefix,allowDots:void 0===t.allowDots?S.allowDots:!!t.allowDots,charset:n,charsetSentinel:"boolean"==typeof t.charsetSentinel?t.charsetSentinel:S.charsetSentinel,delimiter:void 0===t.delimiter?S.delimiter:t.delimiter,encode:"boolean"==typeof t.encode?t.encode:S.encode,encoder:"function"==typeof t.encoder?t.encoder:S.encoder,encodeValuesOnly:"boolean"==typeof t.encodeValuesOnly?t.encodeValuesOnly:S.encodeValuesOnly,filter:i,format:r,formatter:e,serializeDate:"function"==typeof t.serializeDate?t.serializeDate:S.serializeDate,skipNulls:"boolean"==typeof t.skipNulls?t.skipNulls:S.skipNulls,sort:"function"==typeof t.sort?t.sort:null,strictNullHandling:"boolean"==typeof t.strictNullHandling?t.strictNullHandling:S.strictNullHandling}}(n);"function"==typeof i.filter?e=(0,i.filter)("",e):m(i.filter)&&(r=i.filter);var o=[];if("object"!=typeof e||null===e)return"";var u=g[n&&n.arrayFormat in g?n.arrayFormat:n&&"indices"in n?n.indices?"indices":"repeat":"indices"];r||(r=Object.keys(e)),i.sort&&r.sort(i.sort);for(var f=0;f0?l+a:""}(r({},n,this.u._query),{addQueryPrefix:!0,arrayFormat:"indices",encodeValuesOnly:!0,skipNulls:!0,encoder:function(t,n){return"boolean"==typeof t?Number(t):n(t)}})},f.current=function(t,n){var r=this,e=this.t.absolute?this.v().host+this.v().pathname:this.v().pathname.replace(this.t.url.replace(/^\w*:\/\/[^/]+/,""),"").replace(/^\/+/,"/"),i=Object.entries(this.t.routes).find(function(n){return new $(t,n[1],r.t).matchesUrl(e)})||[void 0,void 0],o=i[0],u=i[1];if(!t)return o;var f=new RegExp("^"+t.replace(/\./g,"\\.").replace(/\*/g,".*")+"$").test(o);if([null,void 0].includes(n)||!f)return f;var c=new $(o,u,this.t);n=this.l(n,c);var a=this.p(u);return!(!Object.values(n).every(function(t){return!t})||Object.values(a).length)||Object.entries(n).every(function(t){return a[t[0]]==t[1]})},f.v=function(){var t,n,r,e,i,o,u="undefined"!=typeof window?window.location:{},f=u.host,c=u.pathname,a=u.search;return{host:null!=(t=null==(n=this.t.location)?void 0:n.host)?t:void 0===f?"":f,pathname:null!=(r=null==(e=this.t.location)?void 0:e.pathname)?r:void 0===c?"":c,search:null!=(i=null==(o=this.t.location)?void 0:o.search)?i:void 0===a?"":a}},f.has=function(t){return Object.keys(this.t.routes).includes(t)},f.l=function(t,n){var e=this;void 0===t&&(t={}),void 0===n&&(n=this.i),t=["string","number"].includes(typeof t)?[t]:t;var i=n.parameterSegments.filter(function(t){return!e.t.defaults[t.name]});if(Array.isArray(t))t=t.reduce(function(t,n,e){var o,u;return r({},t,i[e]?((o={})[i[e].name]=n,o):((u={})[n]="",u))},{});else if(1===i.length&&!t[i[0].name]&&(t.hasOwnProperty(Object.values(n.bindings)[0])||t.hasOwnProperty("id"))){var o;(o={})[i[0].name]=t,t=o}return r({},this.h(n),this.g(t,n))},f.h=function(t){var n=this;return t.parameterSegments.filter(function(t){return n.t.defaults[t.name]}).reduce(function(t,e,i){var o,u=e.name;return r({},t,((o={})[u]=n.t.defaults[u],o))},{})},f.g=function(t,n){var e=n.bindings,i=n.parameterSegments;return Object.entries(t).reduce(function(t,n){var o,u,f=n[0],c=n[1];if(!c||"object"!=typeof c||Array.isArray(c)||!i.some(function(t){return t.name===f}))return r({},t,((u={})[f]=c,u));if(!c.hasOwnProperty(e[f])){if(!c.hasOwnProperty("id"))throw new Error("Ziggy error: object passed as '"+f+"' parameter is missing route model binding key '"+e[f]+"'.");e[f]="id"}return r({},t,((o={})[f]=c[e[f]],o))},{})},f.p=function(t){var n,e=this.v().pathname.replace(this.t.url.replace(/^\w*:\/\/[^/]+/,""),"").replace(/^\/+/,""),i=function(t,n,e){void 0===n&&(n="");var i=[t,n].map(function(t){return t.split(e)}),o=i[0];return i[1].reduce(function(t,n,e){var i;return/{[^}?]+\??}/.test(n)&&o[e]?r({},t,((i={})[n.replace(/.*{|\??}.*/g,"")]=o[e].replace(n.match(/^[^{]*/g),"").replace(n.match(/[^}]*$/g),""),i)):t},{})};return r({},i(this.v().host,t.domain,"."),i(e,t.uri,"/"),function(t,n){var r=C;if(""===t||null==t)return r.plainObjects?Object.create(null):{};for(var e="string"==typeof t?function(t,n){var r,e={},i=(n.ignoreQueryPrefix?t.replace(/^\?/,""):t).split(n.delimiter,Infinity===n.parameterLimit?void 0:n.parameterLimit),o=-1,u=n.charset;if(n.charsetSentinel)for(r=0;r-1&&(c=T(c)?[c]:c),e[f]=x.call(e,f)?h.combine(e[f],c):c}return e}(t,r):t,i=r.plainObjects?Object.create(null):{},o=Object.keys(e),u=0;u+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0= 0; } var newValue = oldIsNumeric( val ), oldValue = isNumeric2( val ); if ( newValue !== oldValue ) { migrateWarn( "jQuery.isNumeric() should not be called on constructed objects" ); } return oldValue; }; migrateWarnProp( jQuery, "unique", jQuery.uniqueSort, "jQuery.unique is deprecated, use jQuery.uniqueSort" ); // Now jQuery.expr.pseudos is the standard incantation migrateWarnProp( jQuery.expr, "filters", jQuery.expr.pseudos, "jQuery.expr.filters is now jQuery.expr.pseudos" ); migrateWarnProp( jQuery.expr, ":", jQuery.expr.pseudos, "jQuery.expr[\":\"] is now jQuery.expr.pseudos" ); var oldAjax = jQuery.ajax; jQuery.ajax = function( ) { var jQXHR = oldAjax.apply( this, arguments ); // Be sure we got a jQXHR (e.g., not sync) if ( jQXHR.promise ) { migrateWarnProp( jQXHR, "success", jQXHR.done, "jQXHR.success is deprecated and removed" ); migrateWarnProp( jQXHR, "error", jQXHR.fail, "jQXHR.error is deprecated and removed" ); migrateWarnProp( jQXHR, "complete", jQXHR.always, "jQXHR.complete is deprecated and removed" ); } return jQXHR; }; var oldRemoveAttr = jQuery.fn.removeAttr, oldToggleClass = jQuery.fn.toggleClass, rmatchNonSpace = /\S+/g; jQuery.fn.removeAttr = function( name ) { var self = this; jQuery.each( name.match( rmatchNonSpace ), function( i, attr ) { if ( jQuery.expr.match.bool.test( attr ) ) { migrateWarn( "jQuery.fn.removeAttr no longer sets boolean properties: " + attr ); self.prop( attr, false ); } } ); return oldRemoveAttr.apply( this, arguments ); }; jQuery.fn.toggleClass = function( state ) { // Only deprecating no-args or single boolean arg if ( state !== undefined && typeof state !== "boolean" ) { return oldToggleClass.apply( this, arguments ); } migrateWarn( "jQuery.fn.toggleClass( boolean ) is deprecated" ); // Toggle entire class name of each element return this.each( function() { var className = this.getAttribute && this.getAttribute( "class" ) || ""; if ( className ) { jQuery.data( this, "__className__", className ); } // If the element has a class name or if we're passed `false`, // then remove the whole classname (if there was one, the above saved it). // Otherwise bring back whatever was previously saved (if anything), // falling back to the empty string if nothing was stored. if ( this.setAttribute ) { this.setAttribute( "class", className || state === false ? "" : jQuery.data( this, "__className__" ) || "" ); } } ); }; var internalSwapCall = false; // If this version of jQuery has .swap(), don't false-alarm on internal uses if ( jQuery.swap ) { jQuery.each( [ "height", "width", "reliableMarginRight" ], function( _, name ) { var oldHook = jQuery.cssHooks[ name ] && jQuery.cssHooks[ name ].get; if ( oldHook ) { jQuery.cssHooks[ name ].get = function() { var ret; internalSwapCall = true; ret = oldHook.apply( this, arguments ); internalSwapCall = false; return ret; }; } } ); } jQuery.swap = function( elem, options, callback, args ) { var ret, name, old = {}; if ( !internalSwapCall ) { migrateWarn( "jQuery.swap() is undocumented and deprecated" ); } // Remember the old values, and insert the new ones for ( name in options ) { old[ name ] = elem.style[ name ]; elem.style[ name ] = options[ name ]; } ret = callback.apply( elem, args || [] ); // Revert the old values for ( name in options ) { elem.style[ name ] = old[ name ]; } return ret; }; var oldData = jQuery.data; jQuery.data = function( elem, name, value ) { var curData; // If the name is transformed, look for the un-transformed name in the data object if ( name && name !== jQuery.camelCase( name ) ) { curData = jQuery.hasData( elem ) && oldData.call( this, elem ); if ( curData && name in curData ) { migrateWarn( "jQuery.data() always sets/gets camelCased names: " + name ); if ( arguments.length > 2 ) { curData[ name ] = value; } return curData[ name ]; } } return oldData.apply( this, arguments ); }; var oldTweenRun = jQuery.Tween.prototype.run; jQuery.Tween.prototype.run = function( percent ) { if ( jQuery.easing[ this.easing ].length > 1 ) { migrateWarn( "easing function " + "\"jQuery.easing." + this.easing.toString() + "\" should use only first argument" ); jQuery.easing[ this.easing ] = jQuery.easing[ this.easing ].bind( jQuery.easing, percent, this.options.duration * percent, 0, 1, this.options.duration ); } oldTweenRun.apply( this, arguments ); }; var oldLoad = jQuery.fn.load, originalFix = jQuery.event.fix; jQuery.event.props = []; jQuery.event.fixHooks = {}; jQuery.event.fix = function( originalEvent ) { var event, type = originalEvent.type, fixHook = this.fixHooks[ type ], props = jQuery.event.props; if ( props.length ) { migrateWarn( "jQuery.event.props are deprecated and removed: " + props.join() ); while ( props.length ) { jQuery.event.addProp( props.pop() ); } } if ( fixHook && !fixHook._migrated_ ) { fixHook._migrated_ = true; migrateWarn( "jQuery.event.fixHooks are deprecated and removed: " + type ); if ( ( props = fixHook.props ) && props.length ) { while ( props.length ) { jQuery.event.addProp( props.pop() ); } } } event = originalFix.call( this, originalEvent ); return fixHook && fixHook.filter ? fixHook.filter( event, originalEvent ) : event; }; jQuery.each( [ "load", "unload", "error" ], function( _, name ) { jQuery.fn[ name ] = function() { var args = Array.prototype.slice.call( arguments, 0 ); // If this is an ajax load() the first arg should be the string URL; // technically this could also be the "Anything" arg of the event .load() // which just goes to show why this dumb signature has been deprecated! // jQuery custom builds that exclude the Ajax module justifiably die here. if ( name === "load" && typeof args[ 0 ] === "string" ) { return oldLoad.apply( this, args ); } migrateWarn( "jQuery.fn." + name + "() is deprecated" ); args.splice( 0, 0, name ); if ( arguments.length ) { return this.on.apply( this, args ); } // Use .triggerHandler here because: // - load and unload events don't need to bubble, only applied to window or image // - error event should not bubble to window, although it does pre-1.7 // See http://bugs.jquery.com/ticket/11820 this.triggerHandler.apply( this, args ); return this; }; } ); // Trigger "ready" event only once, on document ready jQuery( function() { jQuery( document ).triggerHandler( "ready" ); } ); jQuery.event.special.ready = { setup: function() { if ( this === document ) { migrateWarn( "'ready' event is deprecated" ); } } }; jQuery.fn.extend( { bind: function( types, data, fn ) { migrateWarn( "jQuery.fn.bind() is deprecated" ); return this.on( types, null, data, fn ); }, unbind: function( types, fn ) { migrateWarn( "jQuery.fn.unbind() is deprecated" ); return this.off( types, null, fn ); }, delegate: function( selector, types, data, fn ) { migrateWarn( "jQuery.fn.delegate() is deprecated" ); return this.on( types, selector, data, fn ); }, undelegate: function( selector, types, fn ) { migrateWarn( "jQuery.fn.undelegate() is deprecated" ); return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); } } ); var oldOffset = jQuery.fn.offset; jQuery.fn.offset = function() { var docElem, elem = this[ 0 ], origin = { top: 0, left: 0 }; if ( !elem || !elem.nodeType ) { migrateWarn( "jQuery.fn.offset() requires a valid DOM element" ); return origin; } docElem = ( elem.ownerDocument || document ).documentElement; if ( !jQuery.contains( docElem, elem ) ) { migrateWarn( "jQuery.fn.offset() requires an element connected to a document" ); return origin; } return oldOffset.apply( this, arguments ); }; var oldParam = jQuery.param; jQuery.param = function( data, traditional ) { var ajaxTraditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional; if ( traditional === undefined && ajaxTraditional ) { migrateWarn( "jQuery.param() no longer uses jQuery.ajaxSettings.traditional" ); traditional = ajaxTraditional; } return oldParam.call( this, data, traditional ); }; var oldSelf = jQuery.fn.andSelf || jQuery.fn.addBack; jQuery.fn.andSelf = function() { migrateWarn( "jQuery.fn.andSelf() replaced by jQuery.fn.addBack()" ); return oldSelf.apply( this, arguments ); }; var oldDeferred = jQuery.Deferred, tuples = [ // Action, add listener, callbacks, .then handlers, final state [ "resolve", "done", jQuery.Callbacks( "once memory" ), jQuery.Callbacks( "once memory" ), "resolved" ], [ "reject", "fail", jQuery.Callbacks( "once memory" ), jQuery.Callbacks( "once memory" ), "rejected" ], [ "notify", "progress", jQuery.Callbacks( "memory" ), jQuery.Callbacks( "memory" ) ] ]; jQuery.Deferred = function( func ) { var deferred = oldDeferred(), promise = deferred.promise(); deferred.pipe = promise.pipe = function( /* fnDone, fnFail, fnProgress */ ) { var fns = arguments; migrateWarn( "deferred.pipe() is deprecated" ); return jQuery.Deferred( function( newDefer ) { jQuery.each( tuples, function( i, tuple ) { var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; // Deferred.done(function() { bind to newDefer or newDefer.resolve }) // deferred.fail(function() { bind to newDefer or newDefer.reject }) // deferred.progress(function() { bind to newDefer or newDefer.notify }) deferred[ tuple[ 1 ] ]( function() { var returned = fn && fn.apply( this, arguments ); if ( returned && jQuery.isFunction( returned.promise ) ) { returned.promise() .done( newDefer.resolve ) .fail( newDefer.reject ) .progress( newDefer.notify ); } else { newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); } } ); } ); fns = null; } ).promise(); }; if ( func ) { func.call( deferred, deferred ); } return deferred; }; })( jQuery, window ); } var _jqxhr = jQuery.ajax; mw.jqxhr = _jqxhr; jQuery.ajax = function(url, options){ options = options || {}; var settings = {}; if(typeof url === 'object'){ $.extend(settings, url); } else{ settings.url = url; } if(typeof settings.success === 'function'){ settings._success = settings.success; delete settings.success; } settings.success = function (data, status, xhr) { if(xhr.status === 200) { if (data && (data.form_data_required || data.form_data_module)) { mw.extradataForm(settings, data); } else { if (typeof this._success === 'function') { var scope = this; scope._success.call(scope, data, status, xhr); } } } }; settings = $.extend({}, settings, options); var xhr = _jqxhr(settings); xhr._settings = settings; return xhr; }; mw.safeCallCache = {}; mw.safeCall = function(hash, call){ if(!mw.safeCallCache[hash]){ mw.safeCallCache[hash] = true; call.call(); (function(hash){ setTimeout(function(){ delete mw.safeCallCache[hash]; }); })(hash); } }; $.ajaxSetup({ cache: false, error: function (xhr, e, c, d) { var data = xhr.responseJSON; if (data && (data.form_data_required || data.form_data_module)) { mw.extradataForm(xhr._settings, data); return; } if(xhr.status === 422){ mw.errorsHandle(xhr.responseJSON) } else if(xhr.status !== 200 && xhr.status !== 0){ mw.notification.error('Error ' + xhr.status + ' - ' + xhr.statusText + ' - \r\n' + xhr.responseText ); setTimeout(function(){ mw.tools.loading(false); }, 333); } } }); mw.version = "1.2.11"; mw.pauseSave = false; mw.askusertostay = false; if (top === self){ window.onbeforeunload = function() { if(mw.askusertostay){ mw.notification.warning("You have unsaved changes!"); return "You have unsaved changes!"; } } } warnOnLeave = function(){ mw.tools.confirm("You have unsaved changes! Are you sure?"); }; mw.module = { insert: function(target, module, config, pos) { return new Promise(function (resolve) { pos = pos || 'bottom'; var action; var id = mw.id('mw-module-'), el = '
'; if (pos === 'top') { action = 'before'; if(mw.tools.hasClass(target, 'allow-drop')) { action = 'prepend'; } } else if (pos === 'bottom') { action = 'after'; if(mw.tools.hasClass(target, 'allow-drop')) { action = 'append'; } } mw.$(target)[action](el); mw.load_module(module, '#' + id, function () { resolve(this); }, config); }); } } mwd = document; mww = window; mwhead = document.head || document.getElementsByTagName('head')[0]; mw.doc = mwd; mw.win = window; mw.head = mwhead; mw.loaded = false; mw._random = new Date().getTime(); mw.random = function() { return mw._random++; }; mw.id = function(prefix) { prefix = prefix || 'mw-'; return prefix + mw.random(); }; String.prototype.contains = function(a) { return !!~this.indexOf(a); }; mw.onLive = function(callback) { if (typeof mw.settings.liveEdit === 'boolean' && mw.settings.liveEdit) { callback.call(this) } }; mw.onAdmin = function(callback) { if ( window['mwAdmin'] ) { callback.call(this); } }; if (!Array.isArray) { Array.isArray = function(arg) { return Object.prototype.toString.call(arg) === '[object Array]'; }; } if (Array.prototype.indexOf === undefined) { Array.prototype.indexOf = function(obj) { var i=0, l=this.length; for ( ; i < l; i++) { if (this[i] == obj) { return i; } } return -1; } } mw.required = typeof mw.required === 'undefined'?[]:mw.required; mw.require = function(url, inHead, key) { if(!url) return; if(typeof inHead === 'boolean' || typeof inHead === 'undefined'){ inHead = inHead || false; } var keyString; if(typeof inHead === 'string'){ keyString = ''+inHead; inHead = key || false; } if(typeof key === 'string'){ keyString = key; } var toPush = url, urlModified = false; if (!!keyString) { toPush = keyString; urlModified = true } var t = url.split('.').pop(); url = url.contains('//') ? url : (t !== "css" ? "http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/" + url : "http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/css/" + url); if(!urlModified) toPush = url; if (!~mw.required.indexOf(toPush)) { mw.required.push(toPush); url = url.contains("?") ? url + '&mwv=' + mw.version : url + "?mwv=" + mw.version; if(document.querySelector('link[href="'+url+'"],script[src="'+url+'"]') !== null){ return } var string = t !== "css" ? "" : ""; if(typeof $.fn === 'object'){ $(mwhead).append(string); } else{ var el; if( t !== "css") { el = document.createElement('script'); el.src = url; el.setAttribute('type', 'text/javascript'); mwhead.appendChild(el); } else{ el = document.createElement('link'); el.rel='stylesheet'; el.type='text/css'; el.href = url; mwhead.appendChild(el); } } } }; mw.getScripts = function (array, callback) { if(typeof array === 'string'){ array = array.split(',') } array = array.filter(function (item) { return !!item.trim(); }); var all = array.length, ready = 0; $.each(array, function(){ $.getScript(this.indexOf('//') !== -1 ? this : mw.settings.includes_url + 'api/' + this, function (){ ready++; if(all === ready) { callback.call() } }) }); }; mw.moduleCSS = mw.module_css = function(url){ if (!~mw.required.indexOf(url)) { mw.required.push(url); var el = document.createElement('link'); el.rel='stylesheet'; el.type='text/css'; el.href = url; mwhead.insertBefore(el, mwhead.firstChild); } }; mw.moduleJS = mw.module_js = function(url){ mw.require(url, true); }; mw.target = {} mw.is = { obj: function(obj) { return typeof obj === 'object'; }, func: function(obj) { return typeof obj === 'function'; }, string: function(obj) { return typeof obj === 'string'; }, array:function(obj){ return [].constructor === obj.constructor; }, invisible: function(obj) { return window.getComputedStyle(obj, null).visibility === 'hidden'; }, visible: function(obj) { return window.getComputedStyle(obj, null).visibility === 'visible'; }, ie: (/*@cc_on!@*/false || !!window.MSStream) && !navigator.userAgent.match(/Trident\/7\./) && false, firefox:navigator.userAgent.toLowerCase().contains('firefox') } /* * Microweber - Javascript Framework * * Copyright (c) Licensed under the Microweber * license http://microweber.com/license * */ mw.load_module = function(name, selector, callback, attributes) { attributes = attributes || {}; attributes.module = name; return mw._({ selector: selector, params: attributes, done: function() { mw.settings.sortables_created = false; if (mw.is.func(callback)) { callback.call(mw.$(selector)[0]); } } }); } mw.loadModuleData = function(name, update_element, callback, attributes){ var attributes = attributes || {}; if(typeof update_element == 'function'){ var callback = update_element; } var update_element = document.createElement('div'); attributes.module = name; mw._({ selector: update_element, params: attributes }, false, true) .done(function(data){ setTimeout(function(){ callback.call(this, data); $(document).off('focusin.modal'); }, 50) }); } mw.getModule = function(name, params, callback){ if( typeof params == 'function'){ var callback = params; } var params = params || {}; var update_element = document.createElement('div'); for(var x in params){ update_element.setAttribute(x, params[x]); } mw.loadModuleData(name, update_element, function(a){ callback.call(a); }); } mw.reload_module_intervals = {}; mw.reload_module_interval = function(module_name, interval) { var interval = interval || 1000; var obj = {pause:false}; if(!!mw.reload_module_intervals[module_name]){ clearInterval(mw.reload_module_intervals[module_name]); } mw.reload_module_intervals[module_name] = setInterval(function(){ if(!obj.pause){ obj.pause = true; mw.reload_module(module_name, function(){ obj.pause = false; }); } }, interval); return mw.reload_module_intervals['module_name']; } mw.reload_module_parent = function(module, callback) { if(self !== parent && !!parent.mw){ mw.parent().reload_module(module, callback) if(typeof(mw.top().win.mweditor) != 'undefined' && typeof(mw.top().win.mweditor) == 'object' && typeof(mw.top().win.mweditor.contentWindow) != 'undefined'){ mw.top().win.mweditor.contentWindow.mw.reload_module(module, callback) } else if(typeof(mw.top().win.iframe_editor_window) != 'undefined' && typeof(mw.top().win.iframe_editor_window) == 'object' && typeof(mw.top().win.iframe_editor_window.mw) != 'undefined'){ mw.top().win.iframe_editor_window.mw.reload_module(module, callback) } if(typeof(parent.mw_preview_frame_object) != 'undefined' && typeof(parent.mw_preview_frame_object) == 'object' && typeof(parent.mw_preview_frame_object.contentWindow) != 'undefined'){ if(parent.mw_preview_frame_object.contentWindow != null && typeof(parent.mw_preview_frame_object.contentWindow.mw) != 'undefined'){ parent.mw_preview_frame_object.contentWindow.mw.reload_module(module, callback) } } } else { if(typeof(mweditor) != 'undefined' && typeof(mweditor) == 'object' && typeof(mweditor.contentWindow) != 'undefined' && typeof(mweditor.contentWindow.mw) != 'undefined'){ mweditor.contentWindow.mw.reload_module(module, callback) } } } mw.reload_modules = function(array, callback, simultaneously) { if(array.array && !array.slice){ callback = array.callback || array.done || array.ready; simultaneously = array.simultaneously; array = array.array; } simultaneously = simultaneously || false; if(simultaneously){ var l = array.length, ready = 0, i = 0; for( ; i'+what) mw._inlog.scrollTop = mw._inlog.scrollHeight; }; mw.log = function(what) { if (window.console && mw.settings.debug) { top.console.log(what); } }; mw.$ = function(selector, context) { if(typeof selector === 'object' || (typeof selector === 'string' && selector.indexOf('<') !== -1)){ return jQuery(selector); } context = context || mwd; if (typeof document.querySelector !== 'undefined') { if (typeof selector === 'string') { try { return jQuery(context.querySelectorAll(selector)); } catch (e) { return jQuery(selector, context); } } else { return jQuery(selector, context); } } else { return jQuery(selector, context); } }; mw.get = function(action, params, callback){ var obj; var url = mw.settings.api_url + action; var type = typeof params; if(type === 'string'){ obj = mw.serializeFields(params); } else if(type.constructor === {}.constructor ){ obj = params; } else{ obj = {}; } $.post(url, obj) .success(function(data) { return typeof callback === 'function' ? callback.call(data) : data; }) .error(function(data) { return typeof callback === 'function' ? callback.call(data) : data; }); } get_content = function(params, callback){ var obj = mw.url.getUrlParams("?"+params); if(typeof callback!='function'){ mw.get('get_content_admin', obj); } else{ mw.get('get_content_admin', obj, function(){callback.call(this)}); } } mw.get_content = get_content mw.serializeFields = function(id, ignorenopost){ var ignorenopost = ignorenopost || false; var el = mw.$(id); var fields = "input[type='text'], input[type='email'], input[type='number'], input[type='tel'], " + "input[type='color'], input[type='url'], input[type='week'], input[type='search'], input[type='range'], " + "input[type='datetime-local'], input[type='month'], " + "input[type='password'], input[type='hidden'], input[type='datetime'], input[type='date'], input[type='time'], " +"input[type='email'], textarea, select, input[type='checkbox']:checked, input[type='radio']:checked, " +"input[type='checkbox'][data-value-checked][data-value-unchecked]"; var data = {}; $(fields, el).each(function(){ if((!$(this).hasClass('no-post') || ignorenopost) && !this.disabled && this.name && typeof this.name !== 'undefined'){ var el = this, _el = $(el); var val = _el.val(); var name = el.name; if(el.name.contains("[]")){ data[name] = data[name] || [] data[name].push(val); } else if(el.type === 'checkbox' && el.getAttribute('data-value-checked') ){ data[name] = el.checked ? el.getAttribute('data-value-checked') : el.getAttribute('data-value-unchecked'); } else{ data[name] = val; } } }); return data; } mw.response = function(form, data, messages_at_the_bottom){ messages_at_the_bottom = messages_at_the_bottom || false; if(data == null || typeof data == 'undefined' ){ return false; } data = mw.tools.toJSON(data); if(typeof data === 'undefined'){ return false; } if(typeof data.error !== 'undefined'){ mw._response.error(form, data, messages_at_the_bottom); return false; } else if(typeof data.success !== 'undefined'){ mw._response.success(form, data, messages_at_the_bottom); return true; } else if(typeof data.warning !== 'undefined'){ mw._response.warning(form, data, messages_at_the_bottom); return false; } else{ return false; } }; mw._response = { error:function(form, data, _msg){ form = mw.$(form); var err_holder = mw._response.msgHolder(form, 'error'); var msg = typeof data.message !== 'undefined' ? data.message : data.error; mw._response.createHTML(msg, err_holder); }, success:function(form, data, _msg){ form = mw.$(form); var err_holder = mw._response.msgHolder(form, 'success'); var msg = typeof data.message !== 'undefined' ? data.message : data.success; mw._response.createHTML(msg, err_holder); }, warning:function(form, data, _msg){ form = mw.$(form); var err_holder = mw._response.msgHolder(form, 'warning'); var msg = typeof data.message !== 'undefined' ? data.message : data.warning; mw._response.createHTML(msg, err_holder); }, msgHolder : function(form, type, method){ method = method || 'append'; var err_holder = form.find(".mw-checkout-response:first"); var err_holder2 = form.find(".alert:first"); if(err_holder.length === 0){ err_holder = err_holder2; } if(err_holder.length === 0){ err_holder = document.createElement('div'); form[method](err_holder); } var bootrap_error_type = 'default'; if(type === 'error'){ bootrap_error_type = 'danger'; } else if(type === 'done'){ bootrap_error_type = 'info'; } $(err_holder).empty().attr("class", 'alert alert-' + type + ' alert-' + bootrap_error_type + ' '); return err_holder; }, createHTML:function(data, holder){ var i, html = ""; if(typeof data === 'string'){ html+= data.toString(); } else{ for( i in data){ if(typeof data[i] === 'string'){ html+='
  • '+data[i]+'
  • '; } else if(typeof data[i] === 'object'){ $.each(data[i], function(){ html+='
  • '+this+'
  • '; }) } } } mw.$(holder).eq(0).append('
      '+html+'
    '); mw.$(holder).eq(0).show(); } } mw.user = { isLogged:function(callback){ $.post(mw.settings.api_url + 'is_logged', function(data){ var isLogged = (data === 'true'); callback.call(isLogged, isLogged); }); } }; mw.parent = function(){ if(window === top){ return window.mw; } if(mw.tools.canAccessWindow(parent) && parent.mw){ return parent.mw; } return window.mw; }; mw.top = function(){ if(!!mw.__top){ return mw.__top; } var getLastParent = function() { var result = window; var curr = window; while (curr && mw.tools.canAccessWindow(curr) && (curr.mw || curr.parent.mw)){ result = curr; curr = curr.parent; } mw.__top = result.mw; return result.mw; }; if(window === top){ mw.__top = window.mw; return window.mw; } else { if(mw.tools.canAccessWindow(top) && top.mw){ mw.__top = top.mw; return top.mw; } else{ if(window.top !== window.parent){ return getLastParent(); } else{ mw.__top = window.mw; return window.mw; } } } }; mw.required.push("http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/jquery.js"); mw.required.push("http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/tools.js"); mw.required.push("http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/tools/cookie.js"); mw.required.push("http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/forms.js"); mw.required.push("http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/url.js"); mw.required.push("http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/events.js"); //mw.required.push("http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/upgrades.js"); mw.required.push("http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/session.js"); mw.required.push("http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/shop.js"); mw.required.push("http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/common.js"); mw.required.push("http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/components.js"); mw.required.push("http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/dialog.js"); mw.required.push("http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/instruments.js"); mw.required.push("http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/forms.js"); mw.required.push("http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/fonts.js"); //mw.required.push("http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/content.js"); mw.tools = {}; mw.required.push('http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/tools/base64.js'); mw.tools.base64 = { // private property _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", // public method for encoding encode: function (input) { var output = ""; var chr1, chr2, chr3, enc1, enc2, enc3, enc4; var i = 0; input = mw.tools.base64._utf8_encode(input); while (i < input.length) { chr1 = input.charCodeAt(i++); chr2 = input.charCodeAt(i++); chr3 = input.charCodeAt(i++); enc1 = chr1 >> 2; enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); enc4 = chr3 & 63; if (isNaN(chr2)) { enc3 = enc4 = 64; } else if (isNaN(chr3)) { enc4 = 64; } output = output + this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4); } return output; }, // public method for decoding decode: function (input) { if (typeof input == 'undefined') { return; } var output = ""; var chr1, chr2, chr3; var enc1, enc2, enc3, enc4; var i = 0; input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); while (i < input.length) { enc1 = this._keyStr.indexOf(input.charAt(i++)); enc2 = this._keyStr.indexOf(input.charAt(i++)); enc3 = this._keyStr.indexOf(input.charAt(i++)); enc4 = this._keyStr.indexOf(input.charAt(i++)); chr1 = (enc1 << 2) | (enc2 >> 4); chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); chr3 = ((enc3 & 3) << 6) | enc4; output = output + String.fromCharCode(chr1); if (enc3 != 64) { output = output + String.fromCharCode(chr2); } if (enc4 != 64) { output = output + String.fromCharCode(chr3); } } output = mw.tools.base64._utf8_decode(output); return output; }, // private method for UTF-8 encoding _utf8_encode: function (string) { string = string.replace(/\r\n/g, "\n"); var utftext = ""; for (var n = 0; n < string.length; n++) { var c = string.charCodeAt(n); if (c < 128) { utftext += String.fromCharCode(c); } else if ((c > 127) && (c < 2048)) { utftext += String.fromCharCode((c >> 6) | 192); utftext += String.fromCharCode((c & 63) | 128); } else { utftext += String.fromCharCode((c >> 12) | 224); utftext += String.fromCharCode(((c >> 6) & 63) | 128); utftext += String.fromCharCode((c & 63) | 128); } } return utftext; }, // private method for UTF-8 decoding _utf8_decode: function (utftext) { var string = ""; var i = 0; var c = c1 = c2 = 0; while (i < utftext.length) { c = utftext.charCodeAt(i); if (c < 128) { string += String.fromCharCode(c); i++; } else if ((c > 191) && (c < 224)) { c2 = utftext.charCodeAt(i + 1); string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); i += 2; } else { c2 = utftext.charCodeAt(i + 1); c3 = utftext.charCodeAt(i + 2); string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); i += 3; } } return string; } } mw.required.push('http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/tools/checkbox.js'); mw.check = { all: function (selector) { mw.$(selector).find("input[type='checkbox']").each(function () { this.checked = true; }); }, none: function (selector) { mw.$(selector).find("input[type='checkbox']").each(function () { this.checked = false; }); }, toggle: function (selector) { var els = mw.$(selector).find("input[type='checkbox']"), checked = els.filter(':checked'); if (els.length === checked.length) { mw.check.none(selector) } else { mw.check.all(selector); } }, collectChecked: function (parent) { var arr = []; var all = parent.querySelectorAll('input[type="checkbox"]'), i = 0, l = all.length; for (; i < l; i++) { var el = all[i]; el.checked ? arr.push(el.value) : ''; } return arr; } } mw.required.push('http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/tools/colorpicker.js'); ;(function (){ mw._colorPickerDefaults = { skin: 'mw-tooltip-default', position: 'bottom-center', onchange: false }; var _isValidColorTest = new Option(); var isValidColor = (color) => { _isValidColorTest.style.color = ''; _isValidColorTest.style.color = color; return _isValidColorTest.style.color !== ''; } var colorPickers = []; mw._colorPicker = function (options) { mw.lib.require('colorpicker'); if (!mw.tools.colorPickerColors) { mw.tools.colorPickerColors = []; var colorpicker_els = mw.top().$(".btn,h1,h2,h3,h4,h5"); if(colorpicker_els.length > 0){ colorpicker_els.each(function () { var css = parent.getComputedStyle(this, null); if (css !== null) { if (mw.tools.colorPickerColors.indexOf(css.color) === -1) { mw.tools.colorPickerColors.push(mw.color.rgbToHex(css.color)); } if (mw.tools.colorPickerColors.indexOf(css.backgroundColor) === -1) { mw.tools.colorPickerColors.push(mw.color.rgbToHex(css.backgroundColor)); } } }); } } var proto = this; if (!options) { return false; } var settings = $.extend({}, mw._colorPickerDefaults, options); if (settings.element === undefined || settings.element === null) { return false; } var $el = mw.$(settings.element); if ($el[0] === undefined) { return false; } if($el[0].mwcolorPicker) { return $el[0].mwcolorPicker; } $el[0].mwcolorPicker = this; this.element = $el[0]; if ($el[0].mwToolTipBinded !== undefined) { return false; } if (!settings.method) { if (this.element.nodeName === 'DIV') { settings.method = 'inline'; } } this.settings = settings; $el[0].mwToolTipBinded = true; var sett = { showAlpha: true, showHSL: false, showRGB: false, showHEX: true, palette: mw.tools.colorPickerColors }; if(settings.value) { sett.color = settings.value; } if(typeof settings.showRGB !== 'undefined') { sett.showRGB = settings.showRGB } if(typeof settings.showHEX !== 'undefined') { sett.showHEX = settings.showHEX } if(typeof settings.showHSL !== 'undefined') { sett.showHSL = settings.showHSL } var frame; if (settings.method === 'inline') { sett.attachTo = $el[0]; frame = AColorPicker.createPicker(sett); frame.onchange = function (data) { if (proto.settings.onchange) { proto.settings.onchange(data.color); } if ($el[0].nodeName === 'INPUT') { var val = val === 'transparent' ? val : '#' + val; $el.val(val); var prev = $el[0].previousElementSibling if( prev && prev.classList.contains('mw-field-color-indicator')) { var dp = prev.querySelector('.mw-field-color-indicator-display') if(dp) { dp.style.backgroundColor = val } } } } } else { var tip = mw.tooltip(settings), $tip = mw.$(tip).hide(); colorPickers.push(tip) this.tip = tip; mw.$('.mw-tooltip-content', tip).empty().css({ padding: 0 }); sett.attachTo = mw.$('.mw-tooltip-content', tip)[0] frame = AColorPicker.createPicker(sett); frame.onchange = function (data) { if(frame.pause) { return; } if (proto.settings.onchange) { proto.settings.onchange(data.color); } if ($el[0].nodeName === 'INPUT') { $el.val(data.color); var prev = $el[0].previousElementSibling if(prev && prev.classList.contains('mw-field-color-indicator')) { var dp = prev.querySelector('.mw-field-color-indicator-display'); if(dp) { dp.style.backgroundColor = data.color } } } }; if ($el[0].nodeName === 'INPUT') { $el.on('input', function (e) { var val = this.value.trim(); if(!val) { val = 'transparent'; } if(isValidColor(val)) { var prev = $el[0].previousElementSibling if( prev && prev.classList.contains('mw-field-color-indicator')) { var dp = prev.querySelector('.mw-field-color-indicator-display') if(dp) { dp.style.backgroundColor = val } } if (proto.settings.onchange) { proto.settings.onchange(val); } } }); $el.on('focus', function (e) { if(this.value.trim()){ frame.pause = true; frame.color = this.value; setTimeout(function () { frame.pause = false; }); } colorPickers.forEach(function (clpckr){ if(clpckr !== tip) { mw.$(clpckr).hide(); } }); mw.$(tip).show(); mw.tools.tooltip.setPosition(tip, $el[0], settings.position) }); } else { $el.on('click', function (e) { colorPickers.forEach(function (clpckr){ if(clpckr !== tip) { mw.$(clpckr).hide(); } }); mw.$(tip).toggle(); mw.tools.tooltip.setPosition(tip, $el[0], settings.position) }); } var documents = [document]; if (self !== mw.top().win){ documents.push(mw.top().win.document); } $el.addClass('mw-color-picker-field') } if (this.tip) { this.show = function () { mw.$(this.tip).show(); mw.tools.tooltip.setPosition(this.tip, this.settings.element, this.settings.position) }; this.hide = function () { mw.$(this.tip).hide() }; this.toggle = function () { var tip = mw.$(this.tip); if (tip.is(':visible')) { this.hide() } else { $el.focus(); this.show() } } } var prev = $el[0].previousElementSibling if( prev && prev.classList.contains('mw-field-color-indicator')) { var dp = prev.querySelector('.mw-field-color-indicator-display') if(dp) { dp.style.backgroundColor = $el[0].value } } }; mw.colorPicker = function (o) { return new mw._colorPicker(o); }; $(document).ready(function (){ $(document).on('click', function (e){ if(!mw.tools.hasParentsWithClass(e.target, 'a-color-picker') && !mw.tools.hasClass(e.target, 'mw-color-picker-field')) { colorPickers.forEach(function (clpckr){ mw.$(clpckr).hide(); }); } }) }) })(); mw.required.push('http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/tools/common-extend.js'); mw.requestAnimationFrame = (function () { return window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (callback, element) { window.setTimeout(callback, 1000 / 60); }; })(); mw._intervals = {}; mw.interval = function(key, func){ if(!key || !func || !!mw._intervals[key]) return; mw._intervals[key] = func; }; mw.removeInterval = function(key){ delete mw._intervals[key]; }; setInterval(function(){ for(var i in mw._intervals){ mw._intervals[i].call(); } }, 99); mw.datassetSupport = typeof document.documentElement.dataset !== 'undefined'; mw.exec = function (str, a, b, c) { a = a || ""; b = b || ""; c = c || ""; if (!str.contains(".")) { return window[this](a, b, c); } else { var arr = str.split("."); var temp = window[arr[0]]; var len = arr.length - 1; for (var i = 1; i <= len; i++) { if (typeof temp === 'undefined') { return false; } temp = temp[arr[i]]; } return mw.is.func(temp) ? temp(a, b, c) : temp; } }; mw.controllers = {}; mw.external_tool = function (url) { return !url.contains("/") ? mw.settings.site_url + "editor_tools/" + url : url; }; // Polyfill for escape/unescape if (!window.unescape) { window.unescape = function (s) { return s.replace(/%([0-9A-F]{2})/g, function (m, p) { return String.fromCharCode('0x' + p); }); }; } if (!window.escape) { window.escape = function (s) { var chr, hex, i = 0, l = s.length, out = ''; for (; i < l; i++) { chr = s.charAt(i); if (chr.search(/[A-Za-z0-9\@\*\_\+\-\.\/]/) > -1) { out += chr; continue; } hex = s.charCodeAt(i).toString(16); out += '%' + ( hex.length % 2 !== 0 ? '0' : '' ) + hex; } return out; }; } Array.prototype.remove = Array.prototype.remove || function (what) { var i = 0, l = this.length; for ( ; i < l; i++) { this[i] === what ? this.splice(i, 1) : ''; } }; mw.which = function (str, arr_obj, func) { if (arr_obj instanceof Array) { var l = arr_obj.length, i = 0; for (; i < l; i++) { if (arr_obj[i] === str) { func.call(arr_obj[i]); return arr_obj[i]; } } } else { for (var i in arr_obj) { if (i === str) { func.call(arr_obj[i]); return arr_obj[i]; } } } }; mw._JSPrefixes = ['Moz', 'Webkit', 'O', 'ms']; _Prefixtest = false; mw.JSPrefix = function (property) { !_Prefixtest ? _Prefixtest = document.body.style : ''; if (_Prefixtest[property] !== undefined) { return property; } else { var property = property.charAt(0).toUpperCase() + property.slice(1), len = mw._JSPrefixes.length, i = 0; for (; i < len; i++) { if (_Prefixtest[mw._JSPrefixes[i] + property] !== undefined) { return mw._JSPrefixes[i] + property; } } } } if (typeof document.hidden !== "undefined") { _mwdochidden = "hidden"; } else if (typeof document.mozHidden !== "undefined") { _mwdochidden = "mozHidden"; } else if (typeof document.msHidden !== "undefined") { _mwdochidden = "msHidden"; } else if (typeof document.webkitHidden !== "undefined") { _mwdochidden = "webkitHidden"; } document.isHidden = function () { if (typeof _mwdochidden !== 'undefined') { return document[_mwdochidden]; } else { return !document.hasFocus(); } }; mw.postMsg = function (w, obj) { w.postMessage(JSON.stringify(obj), window.location.href); }; mw.uploader = function (o) { mw.require("files.js"); var uploader = mw.files.uploader(o); return uploader; }; mw.fileWindow = function (config) { config = config || {}; config.mode = config.mode || 'dialog'; // 'inline' | 'dialog' var q = { types: config.types, title: config.title }; url = mw.settings.site_url + 'editor_tools/rte_image_editor?' + $.param(q) + '#fileWindow'; var frameWindow; var toreturn = { dialog: null, root: null, iframe: null }; if (config.mode === 'dialog') { var modal = mw/*.top()*/.dialogIframe({ url: url, name: "mw_rte_image", width: 530, height: 'auto', autoHeight: true, //template: 'mw_modal_basic', overlay: true, title: mw.lang('Select image') }); var frame = mw.$('iframe', modal.main); frameWindow = frame[0].contentWindow; toreturn.dialog = modal; toreturn.root = frame.parent()[0]; toreturn.iframe = frame[0]; frameWindow.onload = function () { frameWindow.$('body').on('Result', function (e, url, m) { if (config.change) { config.change.call(undefined, url); modal.remove(); } }); $(modal).on('Result', function (e, url, m) { console.log(9999) if (config.change) { config.change.call(undefined, url); modal.remove(); } }); }; } else if (config.mode === 'inline') { var fr = document.createElement('iframe'); fr.src = url; fr.frameBorder = 0; fr.className = 'mw-file-window-frame'; toreturn.iframe = fr; mw.tools.iframeAutoHeight(fr); if (config.element) { var $el = $(config.element); if($el.length) { toreturn.root = $el[0]; } $el.append(fr); } fr.onload = function () { this.contentWindow.$('body').on('change', function (e, url, m) { if (config.change) { config.change.call(undefined, url); } }); }; } return toreturn; }; mw.accordion = function (el, callback) { return mw.tools.accordion(mw.$(el)[0], callback); }; mw.required.push('http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/tools/common.js'); $(window).load(function () { mw.loaded = true; mw.tools.addClass(document.body, 'loaded'); mw.tools.removeClass(document.body, 'loading'); mw.$('div.mw-ui-field').click(function (e) { if (e.target.type != 'text') { try { this.querySelector('input[type="text"]').focus(); } catch (e) { } } }); mw.dropdown(); }); $(mwd).ready(function () { mw.tools.constructions(); mw.dropdown(); mw.$(document.body).ajaxStop(function () { setTimeout(function () { mw.dropdown(); }, 1222); }); mw.on('mwDialogShow', function(){ mw.$(document.documentElement).addClass('mw-dialog-opened'); }); mw.on('mwDialogHide', function(){ mw.$(document.documentElement).removeClass('mw-dialog-opened'); }); mw.$(document.body).on('mousemove touchmove touchstart', function (event) { var has = mw.tools.firstParentOrCurrentWithClass(event.target, 'tip'); if (has && (!has.dataset.trigger || has.dataset.trigger === 'move')) { mw.tools.titleTip(has); } else { mw.$(mw.tools._titleTip).hide(); } }).on('click', function (event) { var has = mw.tools.firstParentOrCurrentWithClass(event.target, 'tip'); if (has && has.dataset.trigger === 'click') { mw.tools.titleTip(has, '_titleTipClick'); } else { mw.$(mw.tools._titleTipClick).hide(); } }); mw.$(".mw-onoff").each(function () { if (!$(this).hasClass('activated')) { mw.$(this).addClass('activated'); mw.$(this).mousedown(function () { var el = this; if (mw.tools.hasClass(el, 'active')) { mw.tools.removeClass(el, 'active'); el.querySelector('.is_active_n').checked = true; } else { mw.tools.addClass(el, 'active'); el.querySelector('.is_active_y').checked = true; } }); } }); mw.$(".wysiwyg-convertible-toggler").click(function () { var el = mw.$(this), next = el.next(); mw.$(".wysiwyg-convertible").not(next).removeClass("active"); mw.$(".wysiwyg-convertible-toggler").not(el).removeClass("active"); next.toggleClass("active"); el.toggleClass("active"); if (el.hasClass("active")) { if (typeof mw.liveEditWYSIWYG === 'object') { mw.liveedit.toolbar.editor.fixConvertible(next); } } }); mw.$(".mw-dropdown-search") .on('focus', function (e) { $(this).parents('.create-content-dropdown').addClass('focus'); }) .on('blur', function (e) { $(this).parents('.create-content-dropdown').removeClass('focus'); }) .on('keyup', function (e) { if (e.keyCode === '27') { mw.$(this.parentNode.parentNode).hide(); } if (e.keyCode !== '13' && e.keyCode !== '27' && e.keyCode !== '32') { var el = mw.$(this); el.addClass('mw-dropdown-searchSearching'); mw.tools.ajaxSearch({keyword: this.value, limit: 20}, function () { var html = "
      ", l = this.length, i = 0; for (; i < l; i++) { var a = this[i]; html += '
    • ' + a.title + '
    • '; } html += '
    '; el.parent().next("ul").replaceWith(html); el.removeClass('mw-dropdown-searchSearching'); }); } }); var _mwoldww = mw.$(window).width(); mw.$(window).resize(function () { if ($(window).width() > _mwoldww) { mw.trigger("increaseWidth"); } else if ($(window).width() < _mwoldww) { mw.trigger("decreaseWidth"); } $.noop(); _mwoldww = mw.$(window).width(); }); mw.$(document.body).on("keydown", function (e) { var isgal = document.querySelector('.mw_modal_gallery') !== null; if (isgal) { if (e.keyCode === 27) { /* escape */ mw.dialog.remove(mw.$(".mw_modal_gallery")) mw.tools.cancelFullscreen() } else if (e.keyCode === 37) { /* left */ mw.tools.gallery.prev(mw.$(".mw_modal_gallery")[0].modal) } else if (e.keyCode === 39) { /* right */ mw.tools.gallery.next(mw.$(".mw_modal_gallery")[0].modal) } else if (e.keyCode === 122) {/* F11 */ mw.event.cancel(e, true); mw.tools.toggleFullscreen(mw.$(".mw_modal_gallery")[0]); return false; } } else { if (e.keyCode === 27) { var modal = mw.$(".mw_modal:last")[0]; if (modal) modal.modal.remove(); } } }); mw.$(".mw-image-holder").each(function () { if ($(".mw-image-holder-overlay", this).length === 0) { mw.$('img', this).eq(0).after(''); } }); mw.$(".mw-ui-dropdown").on('touchstart mousedown', function(){ mw.$(this).toggleClass('active') }); mw.$(document.body).on('touchend', function(e){ if(!mw.tools.hasAnyOfClassesOnNodeOrParent(e.target, ['mw-ui-dropdown'])){ mw.$(".mw-ui-dropdown.active").removeClass('active') } }); mw.$(document.body).on('click', 'a', function(e){ if(location.hash.indexOf('#mw@') !== -1 && (e.target.href || '').indexOf('#mw@') !== -1){ if(location.href === e.target.href){ var el = mw.$('#' + e.target.href.split('mw@')[1])[0]; if(el){ mw.tools.scrollTo(el) } } } }) }); mw.required.push('http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/tools/cookie.js'); mw.cookie = { get: function (name) { var cookies = document.cookie.split(";"), i = 0, l = cookies.length; for (; i < l; i++) { var x = cookies[i].substr(0, cookies[i].indexOf("=")); var y = cookies[i].substr(cookies[i].indexOf("=") + 1); x = x.replace(/^\s+|\s+$/g, ""); if (x === name) { return unescape(y); } } }, set: function (name, value, expires, path, domain, secure) { var now = new Date(); expires = expires || 365; now.setTime(now.getTime()); if (expires) { expires = expires * 1000 * 60 * 60 * 24; } var expires_date = new Date(now.getTime() + (expires)); document.cookie = name + "=" + escape(value) + ( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + ( ( path ) ? ";path=" + path : ";path=/" ) + ( ( domain ) ? ";domain=" + domain : "" ) + ( ( secure ) ? ";secure" : "" ); }, setEncoded: function (name, value, expires, path, domain, secure) { // value = encodeURIComponent(value); // value = escape(value); // value = mw.tools.base64.encode( unescape( encodeURIComponent( value ) ) ) value = mw.tools.base64.encode(value); return this.set(name, value, expires, path, domain, secure); }, getEncoded: function (name) { var value = this.get(name); // value = decodeURIComponent(value); // value = unescape(value); // value = decodeURIComponent( escape( mw.tools.base64.decode( value ) ) ) value = mw.tools.base64.decode(value); return value; }, ui: function (a, b) { var mwui = mw.cookie.getEncoded("mwui"); try { mwui = (!mwui || mwui === '') ? {} : $.parseJSON(mwui); } catch (e) { return false; } if (typeof a === 'undefined') { return mwui; } if (typeof b === 'undefined') { return mwui[a] !== undefined ? mwui[a] : ""; } else { mwui[a] = b; var tostring = JSON.stringify(mwui); mw.cookie.setEncoded("mwui", tostring, false, "/"); if (typeof mw.cookie.uievents[a] !== 'undefined') { var funcs = mw.cookie.uievents[a], l = funcs.length, i = 0; for (; i < l; i++) { mw.cookie.uievents[a][i].call(b.toString()); } } } }, uievents: {}, changeInterval: null, uiCurr: null, onchange: function (name, func) { if (typeof mw.cookie.uievents[name] === 'undefined') { mw.cookie.uievents[name] = [func]; } else { mw.cookie.uievents[name].push(func); } } }; mw.required.push('http://safetysolutionsmorbi.com/public/userfiles/modules/microweber/api/tools/dialog.js'); (function (mw) { mw.dialog = function (options) { return new mw.Dialog(options); }; mw.dialogIframe = function (options, cres) { options.pauseInit = true; var attr = 'frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen'; if (options.autoHeight) { // attr += ' scrolling="no"'; options.height = 'auto'; } options.content = '