Version Description
- Backup Support for WordPress 5.6
- Backup Support for PHP 8.0
- Fixed issue with completely empty backup files (0 bytes)
- Fixed back up progress (NaN shouldn't display anymore)
- For better backup & network performance decreased amount of calls
- Admin can bypass backup logs protection (File won't expire for them)
- Added update information to downloaded backup and restore logs
- Added some server infos to backup / migration logs
- Support for backup "front-end" errors for easier debugging
- Server back up errors should be also logged in (limited on LSWS)
- Better back up error logging global log will contain all errors
- Added back up troubleshooting option: send test email
- Added back up troubleshooting option: fix php_uname warning/error
- Removed back up PHP Errors reports from log files
Download this release
Release Info
Developer | migrate |
Plugin | Backup Migration |
Version | 1.0.6 |
Comparing to | |
See all releases |
Code changes from version 1.0.5 to 1.0.6
- admin/css/bmi-plugin.min.css +1 -1
- admin/js/backup-migration.min.js +1 -1
- backup-backup.php +19 -7
- includes/activation.php +25 -0
- includes/ajax.php +262 -38
- includes/compatibility.php +13 -0
- includes/constants.php +25 -4
- includes/dashboard/chapter/troubleshooting.php +26 -3
- includes/dashboard/chapter/what_backed_up.php +5 -9
- includes/dashboard/chapter/where_config.php +13 -13
- includes/dashboard/modals/backup-error-modal.php +2 -2
- includes/dashboard/modals/bfs-modal.php +1 -1
- includes/dashboard/modals/pre-restore-modal.php +1 -2
- includes/dashboard/modals/restore-error-modal.php +1 -1
- includes/dashboard/modals/restore-success-modal.php +2 -2
- includes/dashboard/modules/backup_controller.php +4 -8
- includes/dashboard/settings.php +1 -2
- includes/dashboard/templates/premium-overlay.php +2 -6
- includes/dashboard/translations.php +16 -2
- includes/initializer.php +196 -48
- includes/scanner/backups.php +0 -1
- includes/scanner/files.php +2 -2
- includes/zipper/src/zip.php +33 -20
- readme.txt +38 -25
admin/css/bmi-plugin.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap");#bmi{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:'Montserrat', Helvetica, Arial, sans-serif;max-width:1495px;max-width:min(1495px, 95%);margin:0 auto;padding-top:55px;padding-bottom:30vh;min-width:1495px;min-width:calc(min(1495px, 95%))}#bmi .light{font-weight:300}#bmi .regular{font-weight:400}#bmi .medium{font-weight:500}#bmi .semibold{font-weight:600}#bmi .bold{font-weight:700}#bmi .f12{font-size:12px}#bmi .f14{font-size:14px}#bmi .f15{font-size:15px}#bmi .f16{font-size:16px}#bmi .f17{font-size:17px}#bmi .f18{font-size:18px}#bmi .f19{font-size:19px}#bmi .f20{font-size:20px}#bmi .f22{font-size:22px}#bmi .f24{font-size:24px}#bmi .f25{font-size:25px}#bmi .f26{font-size:26px}#bmi .f28{font-size:28px}#bmi .f30{font-size:30px}#bmi .f35{font-size:35px}#bmi .black{color:black}#bmi a{color:#555}#bmi .cf::after{content:'';display:block;clear:both}#bmi .left{float:left}#bmi .right{float:right}#bmi .pointer{cursor:pointer}#bmi .not-allowed{cursor:not-allowed !important}#bmi .hoverable{opacity:1;transition:.3s all;cursor:pointer}#bmi .hoverable:hover{opacity:0.8}#bmi .hoverable:active{transition:0 all !important;opacity:.6}#bmi .transition{transition:.3s all}#bmi .relative{position:relative}#bmi .vcenter{position:absolute;text-align:center;top:50%;transform:translate(0, -50%)}#bmi .flexcenter{justify-content:center;align-items:center}#bmi .shadow{box-shadow:2px 2px 5px rgba(0,0,0,0.35)}#bmi .inline{display:inline-block !important}#bmi .fullwidth{width:100%}#bmi .lh13{line-height:1.3}#bmi .lh14{line-height:1.4}#bmi .lh28{line-height:28px}#bmi .lh30{line-height:30px}#bmi .lh40{line-height:40px}#bmi .lh45{line-height:45px}#bmi .lh50{line-height:50px}#bmi .lh60{line-height:60px}#bmi .lh65{line-height:65px}#bmi .section-bmi{margin-bottom:25px}#bmi hr.section-bmi{margin-top:30px;margin-bottom:25px;border-top:2px solid #ddd}#bmi .secondary{color:#257671}#bmi .rbb{border-bottom-left-radius:10px;border-bottom-right-radius:10px}#bmi .rbt{border-top-left-radius:10px;border-top-right-radius:10px}#bmi .center{text-align:center}#bmi .center.block{margin:0 auto}#bmi .align-right{text-align:right}#bmi .align-left{text-align:left}#bmi button{border-radius:10px;background:#257671;line-height:46px;border:0;transition:.3s all;color:white;cursor:pointer}#bmi button:hover{background:#206662}#bmi button:active{transition:0 all;background:#1b5753;opacity:.4}#bmi button.centred{margin:0 auto;margin-bottom:20px;margin-top:25px}#bmi button.with-icon .for-img{display:inline-block;position:relative}#bmi button.with-icon img{position:absolute;left:0;top:8px;height:28px;width:28px}#bmi button.with-icon span{padding-left:35px}#bmi .mm{padding-left:45px;padding-right:45px}#bmi .ppr{padding-right:25px}#bmi .tml{margin-top:20px}#bmi .mo{padding:45px}#bmi .mt{padding-top:45px}#bmi .mb{padding-bottom:45px}#bmi .mtl{padding-top:25px}#bmi .mbl{padding-bottom:25px}#bmi .mtll{padding-top:15px}#bmi .mtlll{padding-top:7px}#bmi .mbll{padding-bottom:15px}#bmi .mblll{padding-bottom:7px}#bmi .nm{margin:0 !important}#bmi .mms{padding-left:20px;padding-right:20px}#bmi .mmm{padding-left:35px;padding-right:35px}#bmi .mm60{padding-left:60px;padding-right:60px}#bmi .mm30{padding-left:30px;padding-right:30px}#bmi .mm92{padding-left:76px !important;padding-right:76px !important}#bmi .text-grey{color:#373737}#bmi .text-muted{opacity:0.47}#bmi .red-text{color:red}#bmi .flex-here{display:flex;flex-direction:row}#bmi .flex-here div{flex:1}#bmi .nlink{text-decoration:none;color:#257671}#bmi .nplr{padding-left:0 !important;padding-right:0 !important}#bmi .flex{display:flex;flex-wrap:wrap}#bmi .rr{padding-left:32px}#bmi .np{padding:0}#bmi .npb{padding-bottom:0 !important}#bmi .npt{padding-top:0 !important}#bmi .pbl{padding-bottom:10px !important}#bmi .bg-second{background:#f8f8f8}#bmi .width50,#bmi .half{width:50% !important}#bmi .chhl{width:calc(50% - 80px) !important;margin:0 40px}#bmi .under{text-decoration:underline}#bmi .tilo{font-size:18px}#bmi .red-error-bg{background:#f9efef}#bmi .nodec{text-decoration:none !important}#bmi .mt30{margin-top:30px}#bmi .suc-buttns .a1,#bmi .suc-buttns .a2{width:calc(50% - 40px);margin:10px}#bmi .suc-buttns .a1 a,#bmi .suc-buttns .a2 a{padding:10px 30px}#bmi .suc-buttns .a1{margin-left:30px}#bmi .suc-buttns .a2{margin-right:30px}#bmi .nowrap{flex-wrap:nowrap !important}#bmi .fbcont{font-size:14px;text-align:left;padding-left:15px}#bmi .fbcont .fbhead{display:block;font-size:19px;margin-bottom:5px}#bmi .nmt{margin-top:0 !important}#bmi .fcentr{display:flex;justify-content:center}#bmi .autowidth{width:auto !important}#bmi .flex1{flex:1}#bmi .flex2{flex:2}#bmi .left-align{text-align:left}#bmi .right-align{text-align:right}#bmi .info-cursor{cursor:help}#bmi .wait-cursor{cursor:wait}#bmi .mrr{margin-right:20px !important}#bmi .orr{margin-right:10px}#bmi .oll{margin-left:10px}#bmi .ooo-to-pad .orr{padding-right:10px !important}#bmi .ooo-to-pad .oll{padding-left:10px !important}#bmi .mw850{max-width:850px}#bmi .bol{margin-left:100px}#bmi li.hasArrowRight{position:relative;padding-left:40px}#bmi li.hasArrowRight::before{content:'';position:absolute;border:solid #257671;border-width:0 3px 3px 0;display:inline-block;padding:3px;transform:rotate(-45deg);-webkit-transform:rotate(-45deg);left:20px;top:10px}#bmi .cron-a{line-height:77px;padding:0px 35px}#bmi .cron-b{border-top:2px solid #e2eceb;border-bottom:2px solid #e2eceb;background-color:#e6eeee;padding:0px 35px;overflow-x:auto;max-width:100%;max-height:78px;overflow-y:hidden}#bmi .cron-b table{height:72px}#bmi .cron-c{padding:0px 35px}#bmi .cron-c table{height:70px}#bmi .mr50{margin-right:50px}#bmi .mr20{margin-right:20px}#bmi .mw250{min-width:250px}#bmi .center-table{width:100%}#bmi .center-table td{text-align:center;padding-left:10px;padding-right:10px}#bmi .untab{box-shadow:none !important;outline:0 !important}#bmi .modal.before-open{transition:0s all !important;opacity:0;display:block}#bmi .modal.before-open .modal-wrapper{left:-60px;transition:0s all !important;top:-30px;opacity:0}#bmi .modal.open{transition:0.4s all !important;opacity:1;display:block}#bmi .modal.open .modal-wrapper{top:60px;left:0px;transition:0.4s all !important;opacity:1}#bmi .modal.before-close{transition:0s all !important;opacity:1;display:block}#bmi .modal.before-close .modal-wrapper{transition:0s all !important;top:60px;left:0px;opacity:1}#bmi .modal.closed{transition:0.4s all !important;left:0px;opacity:0}#bmi .modal.closed .modal-wrapper{transition:0.4s all !important;top:120px;left:60px;opacity:0}#bmi .modal{top:0;left:0;display:none;position:fixed;width:100%;height:100vh;background:rgba(37,118,113,0.4);overflow:auto;z-index:999999}#bmi .modal .modal-close{position:absolute;top:25px;right:25px;font-size:35px !important;color:#555 !important;font-weight:500 !important;z-index:9999999 !important;text-decoration:none !important;line-height:1.1;transition:.3s all;opacity:1}#bmi .modal .modal-close.light{color:white !important}#bmi .modal .modal-close:hover{opacity:.7}#bmi .modal .modal-wrapper{top:60px;max-width:60vw;box-shadow:0px 10px 64px rgba(0,0,0,0.24);margin:0 auto;position:relative;background:#FBFBFF;border-radius:10px;padding:40px 40px;margin-bottom:35px;min-height:200px}#bmi .modal .modal-wrapper.no-hpad{padding-left:0;padding-right:0}#bmi .modal .modal-wrapper.no-vpad{padding-top:0;padding-bottom:0}#bmi .modal-closer{cursor:pointer}#bmi .modal-closer:hover{text-decoration:underline}#bmi .live-log{transition:.3s all;overflow:hidden;max-height:306px}#bmi .live-log.expanded-logs{max-height:0px}#bmi .red-warning{position:relative;display:inline-block;padding-left:60px;padding-right:60px}#bmi .red-warning::after,#bmi .red-warning::before{content:'';position:absolute;top:12px;height:41px;width:46px}#bmi .red-warning::after{left:0;background:url("../images/warning-red.png")}#bmi .red-warning::before{right:0;background:url("../images/warning-red.png")}#bmi .premium-wrapper{cursor:not-allowed}#bmi .premium-wrapper .premium{pointer-events:none}#bmi .premium-wrapper .premium-img{line-height:30px;padding-right:30px;position:relative}#bmi .premium-wrapper .premium-img::after{content:'';position:absolute;top:0;bottom:0;right:0;background:url("../images/premium.svg");margin-top:3px;height:24px;width:24px;background-repeat:no-repeat;background-size:cover}#bmi .premium-wrapper .premium-img.premium-nt::after{margin-top:0px !important;right:20px;top:1px}#bmi .premium-wrapper .premium-img.premium-ntt::after{margin-top:0px !important;top:-1px}#bmi .bmi-notification-box{position:fixed;top:15px;right:15px;min-width:100px;max-width:40vw;z-index:1000000}#bmi .bmi-notification.is-info,#bmi .bmi-title.is-info{background-color:#0c96b7}#bmi .bmi-notification.is-danger,#bmi .bmi-title.is-danger{background-color:#e4706f}#bmi .bmi-notification.is-success,#bmi .bmi-title.is-success{background-color:#6db799}#bmi .bmi-alert-icon{height:100%;width:25px}#bmi .bmi-alert-icon .bmi-icon-bg{width:25px;height:25px}#bmi .bmi-alert-msg-title{padding-left:40px !important}#bmi .bmi-notification .bmi-icon-bg{background-position:center;background-repeat:no-repeat;position:absolute;height:calc(100% - 36px)}#bmi .bmi-notification.is-success .bmi-icon-bg{background-image:url("../images/alert_success-min.png")}#bmi .bmi-notification.is-warning .bmi-icon-bg{background-image:url("../images/alert_warning-min.png")}#bmi .bmi-notification.is-info .bmi-icon-bg{background-image:url("../images/alert_info-min.png")}#bmi .bmi-notification.is-danger .bmi-icon-bg{background-image:url("../images/alert_error-min.png")}#bmi .bmi-notification.is-warning,#bmi .bmi-title.is-warning{background-color:#ecb135}#bmi .bmi-title{margin-bottom:3px;font-weight:500;font-size:15px !important}#bmi .bmi-notification{border-radius:3px;padding:18px 36px 18px 20px !important;position:relative;margin-bottom:15px;padding-left:3px;font-family:'Montserrat', sans-serif !important;font-size:15px !important;font-weight:300;color:white}#bmi .bmi-times-button{top:2px;right:1px;position:absolute;background:none !important;border:none;font-size:24px;cursor:pointer;font-weight:500;color:white;opacity:0.6;transition:opacity 0.2s;padding:2px 9px !important}#bmi .bmi-times-button:hover{cursor:pointer;opacity:1}#bmi .bmi-noti-hide{display:none}#bmi .translations{display:none;visibility:hidden;height:0;width:0}#bmi .heading{padding-bottom:35px}#bmi .backup-creator .cron-backups-wrap{width:calc(100% - 225px);height:225px}#bmi .backup-creator .cron-backups{background-color:white;width:calc(100% - 15px);margin-left:15px;height:100%;border-radius:10px}#bmi .backup-creator .cron-backups .vcenter{width:100%}#bmi .backup-creator .cron-backups .turned-off{width:100%;height:100%;background:url("../images/big_bg_clock_white-min.png") no-repeat;background-size:cover;color:#257671}#bmi .backup-creator .cron-backups .turned-off:hover{background:url("../images/big_bg_clock_green-min.png") no-repeat;background-size:cover;color:white}#bmi .backup-creator .cron-backups .turned-off,#bmi .backup-creator .cron-backups .turned-on{width:100%;border-radius:10px;position:absolute;top:0;left:0;right:0;bottom:0;opacity:1;transition:.3s all}#bmi .backup-creator .cron-backups.disabled .cron-bc{opacity:.5;cursor:not-allowed}#bmi .backup-creator .cron-backups.disabled .cron-bc .cron-b{pointer-events:none}#bmi .backup-creator .cron-backups.disabled .cron-bc .cron-c{pointer-events:none}#bmi .trouble-section .shadow{border-radius:7px;background:#fff;color:black;cursor:pointer;transition:.3s all;min-height:185px;padding:0 20px}#bmi .trouble-section .shadow svg{color:#257671}#bmi .trouble-section .shadow:hover,#bmi .trouble-section .shadow.active{color:white;box-shadow:2px 2px 7px rgba(0,0,0,0.4);background:#257671}#bmi .trouble-section .shadow:hover svg,#bmi .trouble-section .shadow.active svg{color:white}#bmi .close-chapters:hover{text-decoration:underline !important}#bmi .hide-show-tr{display:none}@-moz-keyframes spin{100%{-moz-transform:rotate(360deg)}}@-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg)}}@keyframes spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes spinreverse{100%{-moz-transform:rotate(-360deg)}}@-webkit-keyframes spinreverse{100%{-webkit-transform:rotate(-360deg)}}@keyframes spinreverse{100%{-webkit-transform:rotate(-360deg);transform:rotate(-360deg)}}#bmi .spinning{-webkit-animation:spin 3s linear infinite;-moz-animation:spin 3s linear infinite;animation:spin 3s linear infinite}#bmi .spinning-reverse{-webkit-animation:spinreverse 3s linear infinite;-moz-animation:spinreverse 3s linear infinite;animation:spinreverse 3s linear infinite}#bmi #bmi-ongoing-backup{position:fixed;top:32px;right:50px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;height:78px;width:310px;background:#257671;color:white}#bmi #bmi-ongoing-backup .centered{position:absolute;left:85px;top:18px;line-height:22px}#bmi #bmi-ongoing-backup .nuts .nut{position:absolute}#bmi #bmi-ongoing-backup .nuts .nut-1{top:10px;left:30px}#bmi #bmi-ongoing-backup .nuts .nut-2{top:37px;left:15px}#bmi #bmi-ongoing-backup .nuts .nut-3{top:47px;left:37px}#bmi .ml50{margin-left:50px}#bmi .error-noticer{padding:25px 35px;border:1px solid red;border-radius:10px;background:#fbeded;color:red;position:relative;margin-bottom:25px}#bmi .error-noticer .error-header{font-weight:600;font-size:18px}#bmi .error-noticer .error-body{display:none;font-size:16px;padding-left:20px;padding-right:20px;padding-top:20px;line-height:25px}#bmi .error-noticer .error-body b{padding-top:10px;display:block}#bmi .lrn-mr-btn{line-height:70px}#bmi .learn_more_about_cron{background:white;padding:35px 55px 25px;border-radius:10px;font-size:17px;line-height:25px;min-width:calc(100% - 110px);margin-bottom:25px}#bmi .bmi-backup-btn{height:185px;width:185px;outline:none;display:flex;cursor:pointer;font-size:20px;background-color:#257671;position:relative;transition:all 0.7s ease;-webkit-transition:all 0.7s ease;-moz-transition:all 0.7s ease;-o-transition:all 0.7s ease;-ms-transition:all 0.7s ease;border-radius:10px;padding:20px}#bmi .bmi-backup-btn .vcenter{width:calc(100% - 40px)}#bmi .bmi-backup-btn .vcenter .text{margin-top:6px;line-height:1.2}#bmi .bmi-backup-btn.one{border-color:#fff;overflow:hidden;color:#fff}#bmi .bmi-backup-btn.one .insider{opacity:0.6;background-color:rgba(255,255,255,0.14);width:340px;height:162px;position:absolute;right:1px;bottom:86px;transform:rotateZ(-45deg);-webkit-transform:rotateZ(-45deg);-moz-transform:rotateZ(-45deg);-o-transform:rotateZ(-45deg);-ms-transform:rotateZ(-45deg);transition:all 0.3s ease;-webkit-transition:all 0.3s ease;-moz-transition:all 0.3s ease;-o-transition:all 0.3s ease;-ms-transition:all 0.3s ease}#bmi .bmi-backup-btn.one .insider-2{opacity:0.6;background:linear-gradient(180deg, rgba(255,255,255,0.73) 0%, rgba(255,255,255,0.14) 55%);width:390px;height:318px;position:absolute;right:-308px;bottom:-267px;transform:rotateZ(-45deg);-webkit-transform:rotateZ(-45deg);-moz-transform:rotateZ(-45deg);-o-transform:rotateZ(-45deg);-ms-transform:rotateZ(-45deg);transition:all 0.3s ease;-webkit-transition:all 0.3s ease;-moz-transition:all 0.3s ease;-o-transition:all 0.3s ease;-ms-transition:all 0.3s ease}#bmi .bmi-backup-btn.one:hover .insider{transition:all 0.5s ease;-webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;-ms-transition:all 0.5s ease;right:108px;bottom:200px}#bmi .bmi-backup-btn.one:hover .insider-2{transition:all 0.6s ease;-webkit-transition:all 0.6s ease;-moz-transition:all 0.6s ease;-o-transition:all 0.6s ease;-ms-transition:all 0.6s ease;transition-delay:0.5s;right:19px;bottom:75px}#bmi .tab-wrapper{min-width:100%}#bmi .tabs{border:0 !important;background-color:white;margin-bottom:25px;border-top-left-radius:10px;border-top-right-radius:10px}#bmi .tabs .tab.active{cursor:not-allowed}#bmi .tabs .tab:first-child{border-top-left-radius:10px}#bmi .tabs .tab:last-child{border-top-right-radius:10px}#bmi .tabs .tab{padding-top:18px;width:calc(50% - 1px);border-left:1px solid rgba(176,69,46,0.12);text-align:center;padding-bottom:18px;color:#8e8e8e}#bmi .tabs .tab.active{position:relative;color:#257671}#bmi .tabs .tab.active:not(.active):hover::before{border-bottom:7px solid white !important}#bmi .tabs .tab.active::before{content:'';height:0px;width:0px;transition:.3s all;background:transparent;border-top:5px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #257671;position:absolute;bottom:0;left:0;right:0;margin:0 auto;transform:translateX(-50%)}#bmi .tabs .tab.active::after{content:'';position:absolute;bottom:0;left:0;right:0;width:100%;height:6px;border-bottom:2px solid #257671}#bmi .tabs .tab:first-child.active::after{border-bottom-left-radius:14px}#bmi .tabs .tab:last-child.active::after{border-bottom-right-radius:14px}#bmi .tabs .tab:first-child{width:50%;border-left:0 !important}#bmi .tabs .tab:not(.active):hover{color:white;background:#257671}#bmi .collapser.active .header:not(.ignorehov){background:#257671;color:white}#bmi .collapser.active .header{border-bottom-left-radius:0px;border-bottom-right-radius:0px}#bmi .collapser.active .header:not(.ignorehov)::after{filter:brightness(0) invert(1) grayscale(1) !important;opacity:0.95 !important}#bmi .collapser.active .header::after{transform:rotate(180deg)}#bmi .collapser{border-radius:10px}#bmi .collapser .header{padding:21px 45px;background:white;border-radius:10px;position:relative}#bmi .collapser .header:not(.ignorehov):hover{background:#257671;color:white}#bmi .collapser .header::after{content:'';position:absolute;background:url("../images/arrow-min.png");background-size:cover;background-repeat:no-repeat;margin-top:4px;right:45px;width:19px;height:11px;transition:.3s all}#bmi .collapser .header:not(.ignorehov):hover::after{filter:brightness(0) invert(1) grayscale(1) !important;opacity:0.95 !important}#bmi .collapser .content{display:none;background:white;min-width:100%;border-bottom-left-radius:10px;border-bottom-right-radius:10px}#bmi #manage-restore-wrapper .restore-wrapper{background-color:white;padding-top:40px;padding-bottom:40px;min-width:100%;margin-top:10px}#bmi #manage-restore-wrapper .m{margin-left:30px;margin-right:30px}#bmi #manage-restore-wrapper .header{background:#beeddf;background:linear-gradient(60deg, #beeddf 10%, #dffaf2 100%);height:18px}#bmi #manage-restore-wrapper .header::before{content:'';position:absolute;background:#beeddf;background:linear-gradient(60deg, #dffaf2 10%, #beeddf 100%);left:0;top:0;border-radius:10px;width:100%;height:100%;opacity:0 !important;transition:.3s all}#bmi #manage-restore-wrapper .bold{position:absolute}#bmi #manage-restore-wrapper .collapser.active .header::before{border-bottom-left-radius:0px;border-bottom-right-radius:0px;opacity:1 !important}#bmi #manage-restore-wrapper .header:hover::before{opacity:1 !important}#bmi #manage-restore-wrapper .content{min-width:calc(100% - 90px);position:relative;padding:10px 45px}#bmi #manage-restore-wrapper .content .bg-quick-migration{top:0;left:0;right:0;bottom:0;position:absolute;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none;border-bottom-left-radius:10px;border-bottom-right-radius:10px}#bmi #manage-restore-wrapper .content .content-above{position:relative}#bmi #manage-restore-wrapper .content .quick-migration{border-radius:10px}#bmi #manage-restore-wrapper .content .text-heading{padding:15px 0}#bmi #manage-restore-wrapper .content input{box-sizing:border-box;line-height:30px;border:1px solid #c6c9cf;width:100%;padding:11px;font-size:18px;border-radius:10px}#bmi #manage-restore-wrapper .content button{width:358px}#bmi #manage-restore-wrapper .heading-sq .bold{position:relative;padding-right:35px}#bmi #manage-restore-wrapper .heading-sq .bold::after{content:'';background:url("../images/next-icon-min.png");background-size:cover;height:24px;width:24px;position:absolute;top:0;right:0}#bmi #manage-restore-wrapper .valign-restore .a1{padding-top:6px;padding-right:6px}#bmi #manage-restore-wrapper .valign-restore .a2{padding-top:4px;padding-right:6px}#bmi #manage-restore-wrapper .table-wrapper{max-width:100%;overflow-y:auto}#bmi #manage-restore-wrapper .table-wrapper table{width:100%;min-width:400px;border-collapse:collapse;margin-bottom:10px}#bmi #manage-restore-wrapper .table-wrapper table .restore-btn{color:white;font-size:13px;font-weight:600;background:#0ec094;border-radius:5px;width:95px;height:25px;border:1px solid #0ec094;display:flex;justify-content:space-evenly;align-items:center}#bmi #manage-restore-wrapper .table-wrapper table th{font-size:19px;text-align:left;color:#111}#bmi #manage-restore-wrapper .table-wrapper table th.inactive{color:#c3c3c3}#bmi #manage-restore-wrapper .table-wrapper table tr{border-bottom:2px solid #e1dada}#bmi #manage-restore-wrapper .table-wrapper table tr th,#bmi #manage-restore-wrapper .table-wrapper table tr td{padding-top:15px;padding-bottom:14px}#bmi #manage-restore-wrapper .table-wrapper table tr td{font-size:18px;color:#333}#bmi .log-wrapper pre{max-height:200px;overflow:auto;line-height:1.2;font-size:13px;white-space:nowrap;text-align:left;background:#fbfbfb;border:1px solid #cececc;border-radius:10px;padding:30px}#bmi .log-wrapper pre .red{color:red}#bmi .log-wrapper pre .blue{color:blue}#bmi .log-wrapper pre .green{color:green}#bmi .log-wrapper pre .orange{color:#f59e00}#bmi .progress-bar-wrapper{line-height:1;margin-top:70px;margin-bottom:30px}#bmi .progress-bar-wrapper .progress-bar{position:relative;height:10px;width:100%;border-radius:10px;background:#f1f1f1}#bmi .progress-bar-wrapper .progress-active-bar{position:absolute;background:#257671;border-radius:10px;height:14px;width:40%;top:-2px;left:0;transition:0.1s all cubic-bezier(0, 0, 0.6, 1);box-shadow:0px 0px 10px rgba(0,0,0,0.4)}#bmi .progress-bar-wrapper .progress-active-bar::before{content:'';position:absolute;border-radius:10px;height:14px;width:20%;top:0;right:0;z-index:0}#bmi .progress-bar-wrapper .progress-percentage{position:absolute;background:#257671;width:32px;height:32px;border-radius:50%;transform:translate(calc(-50% - 3px), 0);bottom:26px;text-align:center;color:white;line-height:34px;font-size:11px;font-weight:800;transition:0.1s all cubic-bezier(0, 0, 0.6, 1)}#bmi .progress-bar-wrapper .progress-percentage::after{content:'';left:50%;position:absolute;background:#257671;width:6px;height:6px;border-radius:50%;transform:translate(-50%, 0);bottom:-10px}#bmi .deleteAllSelected{height:45px;width:265px;border-radius:10px;font-size:15px !important;font-weight:bold;padding-top:0 !important;padding-bottom:0 !important}#bmi .lds-spinner{color:#257671;display:inline-block;position:relative;width:20px;height:14px}#bmi .lds-spinner div{transform-origin:10px 10px;animation:lds-spinner 1.2s linear infinite}#bmi .lds-spinner div:after{content:" ";display:block;position:absolute;top:2px;left:9px;width:2px;height:4px;border-radius:20%;background:#257671}#bmi .lds-spinner div:nth-child(1){transform:rotate(0deg);animation-delay:-1.1s}#bmi .lds-spinner div:nth-child(2){transform:rotate(30deg);animation-delay:-1s}#bmi .lds-spinner div:nth-child(3){transform:rotate(60deg);animation-delay:-0.9s}#bmi .lds-spinner div:nth-child(4){transform:rotate(90deg);animation-delay:-0.8s}#bmi .lds-spinner div:nth-child(5){transform:rotate(120deg);animation-delay:-0.7s}#bmi .lds-spinner div:nth-child(6){transform:rotate(150deg);animation-delay:-0.6s}#bmi .lds-spinner div:nth-child(7){transform:rotate(180deg);animation-delay:-0.5s}#bmi .lds-spinner div:nth-child(8){transform:rotate(210deg);animation-delay:-0.4s}#bmi .lds-spinner div:nth-child(9){transform:rotate(240deg);animation-delay:-0.3s}#bmi .lds-spinner div:nth-child(10){transform:rotate(270deg);animation-delay:-0.2s}#bmi .lds-spinner div:nth-child(11){transform:rotate(300deg);animation-delay:-0.1s}#bmi .lds-spinner div:nth-child(12){transform:rotate(330deg);animation-delay:0s}@keyframes lds-spinner{0%{opacity:1}100%{opacity:0}}#bmi .prenotices{margin-top:45px;margin-bottom:45px}#bmi .prenotices .prenotice:first-child{border-top:1px solid #eeebeb}#bmi .prenotices .prenotice{position:relative;background:#fcfcfc;border-bottom:1px solid #eeebeb}#bmi .prenotices .prenotice .text{padding-top:25px;padding-bottom:25px;padding-left:155px;padding-right:60px;font-size:18px;line-height:1.2}#bmi .prenotices .prenotice.top{border-top-right-radius:10px;border-top-left-radius:10px}#bmi .prenotices .prenotice.top .text{padding-right:120px;padding-left:215px;font-size:20px;line-height:25px}#bmi .prenotices .prenotice::before{content:'';position:absolute;background:url("../images/warning-grey.png");width:46px;height:41px;top:50%;transform:translate(0, -50%);left:60px}#bmi .prenotices .prenotice.top::before{left:120px}#bmi .prenotices .prenotice.red{background:#feedee !important}#bmi .prenotices .prenotice.red::before{background:url("../images/warning-red.png")}#bmi .btn{display:block;background:#257671;box-shadow:0 10px 9px rgba(0,0,0,0.24);color:white;padding-top:18px;padding-bottom:18px;border-radius:10px;font-size:18px;line-height:1.2;transition:0.3s all;cursor:pointer;text-decoration:none}#bmi .btn .text{display:inline-block}#bmi .btn.btn-pad{padding-left:50px;padding-right:50px}#bmi .btn.btn-img-low-pad .text{padding-left:40px !important}#bmi .btn:hover{background:#206662;box-shadow:0 10px 15px rgba(0,0,0,0.34)}#bmi .btn:active{transition:0 all;background:#1b5753;box-shadow:0 10px 5px rgba(0,0,0,0.14)}#bmi .btn.red{background:#da2b2b}#bmi .btn.red:hover{background:#cd2424}#bmi .btn.red:active{background:#bb2121}#bmi .btn.lime{background:#4dbb84}#bmi .btn.lime:hover{background:#43b07a}#bmi .btn.lime:active{background:#3ea270}#bmi .btn.gray,#bmi .btn.grey{background:#b6b6b6}#bmi .btn.gray:hover,#bmi .btn.grey:hover{background:#acacac}#bmi .btn.gray:active,#bmi .btn.grey:active{background:#a2a2a2}#bmi .btn.btn-with-img .text{padding-left:60px;position:relative}#bmi .btn.btn-with-img img{position:absolute;top:50%;left:0;transform:translate(0, -50%)}#bmi input[type="checkbox"]{border-radius:4px;width:22px !important;height:22px !important;position:relative;transition:0.3s all}#bmi input[type="checkbox"],#bmi input[type="checkbox"]:active,#bmi input[type="checkbox"]:focus{outline:0 !important;box-shadow:none !important;border-color:#257671 !important}#bmi input[type="checkbox"]::before{content:'' !important;border-color:#257671 !important;border-radius:3px;transition:0.3s all;margin:0 !important;height:20px !important;width:20px !important;float:left;display:inline-block;vertical-align:middle;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#bmi input[type="checkbox"]:checked{background:#257671 !important}#bmi input[type="checkbox"]:checked::after{content:'';width:10px;height:5px;border-left:3px solid white;border-bottom:3px solid white;top:4px;left:4px;transform:rotate(-48deg);position:absolute}#bmi .success-copy-input input{width:calc(100% - 170px - 15px);margin-right:15px;line-height:44px;border-radius:10px;border:1px solid #d1d4d9;background:#fff}#bmi .success-copy-input a{line-height:10px;padding-left:40px !important;padding-right:40px !important;box-shadow:none !important;text-decoration:none}#bmi .grey-btn{background:#aaa;width:85%;line-height:13px}#bmi .save-btn{text-align:center;font-weight:700;width:450px;margin:0 auto;font-size:27px}#bmi .max300{max-width:300px;margin:0 auto}#bmi .max280{max-width:280px;margin:0 auto}#bmi label:hover input[type="checkbox"]{background:#dfdfdf}#bmi .btn.othersec{margin-top:6px;padding-top:13px;padding-bottom:13px}#bmi .file-checkboxes-wrapper{padding-left:32px}#bmi .file-checkboxes-wrapper .file-checkboxes label{display:block;width:50%;margin-bottom:10px}#bmi .file-checkboxes-wrapper div{margin-top:5px;margin-bottom:5px}#bmi .note{width:500px;margin:50px auto;font-size:1.1em;color:#333;text-align:justify}#bmi #drop-area{border:2px dashed #ccc;border-radius:20px;width:100%;height:340px;margin-top:10px;background:#f9f9f9}#bmi #drop-area:hover{background:linear-gradient(90deg, #d1efe6, #e5f6f1)}#bmi #drop-area.highlight{border-color:#257671}#bmi .my-form{margin-bottom:10px;margin-top:35px}#bmi #gallery{margin-top:10px}#bmi .img_upload{width:100px;height:75px;background-image:url("../images/upload.svg")}#bmi #gallery img{width:150px;margin-bottom:10px;margin-right:10px;vertical-align:middle}#bmi .button{display:inline-block;padding:10px;background:#ccc;cursor:pointer;border-radius:5px;border:1px solid #ccc}#bmi .button:hover{background:#ddd}#bmi #upid_input{position:absolute;left:2508px;top:3273px;opacity:0;z-index:9999;width:1px;height:1px;display:none}#bmi .ortext{font-size:18px;line-height:54px}#bmi .upload_button{font-size:18px;font-weight:800;padding:0;height:50px;line-height:50px;padding:0 20px}#bmi .upload-progress{border:2px dashed #ccc;padding-bottom:45px;border-radius:20px;margin-top:10px;margin-bottom:10px;overflow:hidden;position:relative}#bmi .upload-progress .upload-progress-bar{width:90%;margin:0 auto;background:#f1f1f1;height:10px;margin-top:65px;position:relative;border-radius:10px;margin-bottom:10px}#bmi .upload-progress .upload-progress-bar span{display:block;position:absolute;top:-2px;left:0;width:50%;background:#257671;height:14px;z-index:10;border-radius:10px;transition:0.1s all cubic-bezier(0, 0, 0.6, 1)}#bmi .upload-progress .upload-progress-bar .upload-percentage{position:absolute;bottom:calc(100% + 14px);right:-13px;color:white;background:#257671;border-radius:50%;width:30px;height:30px;font-size:12px;text-align:center;line-height:30px}#bmi .upload-progress .upload-progress-bar .upload-percentage::after{position:absolute;content:'';top:calc(100% + 4px);left:0;right:0;margin:0 auto;width:6px;height:6px;background:#257671;border-radius:50%}#bmi .upload-title{font-size:23px;font-weight:800}#bmi .bmi-txtar{padding:15px;border-radius:10px;font-size:18px;resize:none}#bmi .inline-radio{padding-right:20px}#bmi .exclude-row input{border-radius:5px;width:130px;height:44px;border:1px solid #d1d4d9;font-size:18px;margin:0 10px;text-align:center}#bmi .mbfieldlimit{font-size:20px;text-align:center;justify-content:center;margin:8px 5px;box-sizing:border-box;border:1px solid #d1d4d9;border-radius:5px;width:85px;height:45px;justify-content:center;align-items:center}#bmi .overlay-premium{display:none}#bmi .clocks_container{display:none}#bmi .overlayed:hover{position:relative}#bmi .overlayed:hover .overlay-premium{display:flex;position:absolute;top:0;left:0;width:100%;height:100%;background-image:url("../images/big_bg_clock_white-min.png");background-repeat:no-repeat;background-size:cover;align-items:center;justify-content:center;z-index:100000;border-top:1px solid #cdcdcd;border-bottom:1px solid #cdcdcd}#bmi .overlayed:hover .clocks_container{display:flex;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.05);align-items:center;flex-direction:column;justify-content:center;height:100%;position:relative;font-size:18px}#bmi .tab2-item{position:relative;display:flex;justify-content:space-between;align-items:center;width:100%;background:#f6f6f6;border-radius:10px;height:70px;padding:0 30px;margin-top:15px;box-sizing:border-box}#bmi .tab2-item .container-40{margin:0 40px}#bmi .tab2-item .pb30{padding-bottom:30px}#bmi .tab2-item .bg_grey{background:#f8f8f8}#bmi .tab2-item .not-ready{position:absolute;left:0;width:100%;height:100%;background-color:#e5e5e5;opacity:0.7;border-radius:10px}#bmi .tab2-item .bg_clock_day2{display:none;background-image:url("../images/big_bg_clock_green-min.png");width:100%;height:100%;position:absolute;left:0;background-size:cover;background-repeat:no-repeat;z-index:3;color:white;border-radius:10px}#bmi .tab2-item .clock_img{flex-basis:5%}#bmi .tab2-item .d-flex{display:flex;flex:1}#bmi .tab2-item .ia-center{align-items:center}#bmi .tab2-item .switch{position:relative;width:70px;height:30px;overflow:hidden;border:none;padding:0;background:none}#bmi .tab2-item .switch.b2{border-radius:15px;border:none;background:none;padding:0}#bmi .tab2-item .switch.b2 .checkbox{position:relative;width:100%;height:100%;padding:0;margin:0;opacity:0;cursor:pointer;z-index:3;border:none}#bmi .tab2-item .knobs{z-index:2;position:absolute;top:0;right:0;bottom:0;left:0}#bmi .tab2-item .switch .knobs:before{content:'Off';left:7px}#bmi .tab2-item .switch .knobs:before,#bmi .tab2-item .switch .knobs:after{color:white;z-index:1}#bmi .tab2-item .switch .knobs:before,#bmi .tab2-item .switch .knobs:after,#bmi .tab2-item .switch .knobs span{position:absolute;top:6px;width:17px;height:17px;font-size:18px;font-weight:bold;text-align:center;line-height:1;padding:0 3px;border-radius:2px;transition:0.4s ease all}#bmi .tab2-item .switch .knobs:after{content:'On';right:17px}#bmi .tab2-item .switch .knobs:after{padding:0 12px}#bmi .tab2-item .switch .checkbox:checked+.knobs:before,#bmi .tab2-item .switch .checkbox:not(:checked)+.knobs:after{opacity:0}#bmi .tab2-item .switch .knobs:before,#bmi .tab2-item .switch .knobs:after{color:white;z-index:1}#bmi .tab2-item .switch .knobs:after{padding:0 12px}#bmi .tab2-item .switch .knobs:before,#bmi .tab2-item .switch .knobs:after,#bmi .tab2-item .switch .knobs span{position:absolute;top:6px;width:17px;height:17px;font-size:18px;font-weight:bold;text-align:center;line-height:1;padding:0 3px;border-radius:2px;transition:0.4s ease all}#bmi .tab2-item .layer,#bmi .tab2-item .layer_str{width:100%;background-color:#d5d5d5;transition:0.3s ease all;z-index:1}#bmi .tab2-item .button-cover,#bmi .tab2-item .knobs,#bmi .tab2-item .layer,#bmi .tab2-item .layer_str{position:absolute;top:0;right:0;bottom:0;left:0}#bmi .tab2-item .switch.b2 .checkbox{position:relative;width:100%;height:100%;padding:0;margin:0;opacity:0;cursor:pointer;z-index:3;border:none}#bmi .tab2-item .title_whereStored{font-size:20px;font-weight:bold}#bmi .tab2-item .ml25{margin-left:25px}#bmi .tab2-item .switch .knobs span{left:48px;background-color:white;z-index:2}#bmi .tab2-item .switch .knobs:before,#bmi .tab2-item .switch .knobs:after,#bmi .tab2-item .switch .knobs span{position:absolute;top:6px;width:17px;height:17px;font-size:18px;font-weight:bold;text-align:center;line-height:1;padding:0 3px;border-radius:2px;transition:0.4s ease all}#bmi .tab2-item .switch .knobs span{padding:0;border-radius:50%;top:6px}#bmi .tab2-item .not_ready{position:absolute;left:0;width:100%;height:100%;background-color:#e5e5e5;opacity:0.7;border-radius:10px}#bmi .tab2-item .link-white:hover{text-decoration:underline;color:white}#bmi .tab2-item .link-white{color:white;text-decoration:none}#bmi .tab2-item .crown2{width:20px;height:20px;margin-left:7px;z-index:1}#bmi .tab2-item .d-flex .w100 .input-locally_web_server{width:100%;height:55px;border-radius:10px;margin:8px 0 !important;text-align:left !important;padding:0 20px;color:black}#bmi .tab2-item .w270{min-width:270px}#bmi .tab2-item:hover .bg_clock_day2{display:flex;justify-content:center;align-items:center}#bmi .tab2-item.activeList{color:white;background:#257671 !important;border-bottom-left-radius:0;border-bottom-right-radius:0}#bmi .tab2-item.activeList .switch .checkbox:checked ~ .layer_str{background-color:#154e4b}#bmi .tab2-item.activeList .bg_grey{background:#f8f8f8}#bmi .tab2-item.activeList .switch .checkbox:checked+.knobs:before,#bmi .tab2-item.activeList .switch .checkbox:not(:checked)+.knobs:after{opacity:0}#bmi .tab2-item.activeList .switch .checkbox:checked+.knobs span{left:7px;background-color:white}#bmi .container-radio input{position:absolute;opacity:0;cursor:pointer}#bmi .checkmark-radio{position:absolute;top:0;left:0;height:25px;width:25px;background-color:#fff;border:1px solid;border-radius:50%}#bmi .container-radio:hover input ~ .checkmark-radio{background-color:#cecece}#bmi .container-radio input:checked ~ .checkmark-radio{background-color:white;border:1px solid #257671}#bmi .checkmark-radio:after{content:"";position:absolute;display:none}#bmi .container-radio input:checked ~ .checkmark-radio:after{display:block}#bmi .container-radio .checkmark-radio:after{top:5px;left:5px;width:10px;height:10px;border-radius:50%;background:#257671}#bmi .container-checkbox .checkmark-checkbox:after{left:9px;top:5px;width:5px;height:10px;border:solid white;border-width:0 3px 3px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}#bmi .input-mar{margin:30px 0}#bmi .container-40{margin:0 40px}#bmi .container-36{margin:0 36px 0 40px}#bmi .container-55{margin:0 55px}#bmi .d-flex{display:flex}#bmi .w270{min-width:270px}#bmi .w100{width:100%}#bmi .pos-r{position:relative}#bmi .mt20{margin-top:20px}#bmi .pb30{padding-bottom:30px}#bmi .pt30{padding-top:30px}#bmi .bg_grey{background:#f8f8f8}#bmi .input-file{width:100%;height:55px}#bmi .input-file-user{position:relative;height:55px;width:525px;font-size:14px}#bmi .input-file-user::placeholder{font-size:14px}#bmi .input-label-file{color:#aaaeb3;width:525px;height:55px;border:1px solid #d1d4d9;border-radius:10px;display:flex;align-items:center;padding:0 30px}#bmi #copy-password{height:45px;width:410px;border-radius:10px;border:1px solid #d1d4d9;text-align:left}#bmi #copy-url{height:45px;width:480px;border-radius:10px;border:1px solid #d1d4d9}#bmi #copy-key{height:45px;width:230px;border-radius:10px;border:1px solid #d1d4d9}#bmi .input-other{height:45px;width:255px;border-radius:10px;border:1px solid #d1d4d9}#bmi #creatingBackUp{height:55px;border:1px solid #c6c9cf;border-radius:10px;padding:0 30px}#bmi .creatingBackUp input[type=text]{display:flex;font-size:20px;text-align:left;justify-content:center;margin:8px 5px;box-sizing:border-box;border:1px solid #d1d4d9}#bmi #backupsfile{border:1px dashed #a9a9a9;border-radius:10px;display:flex;justify-content:center}#bmi .drop{height:300px;display:flex;align-items:center;justify-content:center}#bmi .drop .dz-default{display:none}#bmi #textAreaCopy{height:230px;padding:25px;box-sizing:border-box;font-size:14px;color:#aaaaaa}#bmi .inprogressCreate{height:130px;padding:30px 40px;border:1px solid #aaaaaa;border-radius:10px;color:black;font-size:13px;overflow-y:auto}#bmi #text-areaSomeHick{height:240px;padding:25px;box-sizing:border-box;font-size:14px;color:#aaaaaa}#bmi #backupIsNowAccessible{height:51px;width:99%;border-radius:10px;border:1px solid #d1d4d9;text-align:left;padding-left:10px}#bmi .backupSuccess_link_container{display:flex;align-items:center;position:relative;margin:15px 70px 0}#bmi .input-config_set{width:280px;height:45px;border-radius:10px;padding-left:10px;text-align:left !important}#bmi .link_duplicate{color:#6bd5a0;margin:0 13px;text-decoration:none}#bmi .link_export{color:#0e80c9;margin:0 13px;text-decoration:none}#bmi .link_delete{color:#c20000;margin:0 13px;text-decoration:none}#bmi .d-flex .w100 .input-locally_web_server{width:100%;height:55px;border-radius:10px;margin:8px 0 !important;text-align:left !important;padding:0 20px;color:black}#bmi div .dropzone{position:relative;cursor:pointer;margin:20px 0;height:340px;border:2px dashed rgba(0,0,0,0.3);padding:20px;border-radius:20px;color:gray;background-color:#f9f9f9}#bmi .dropzone:hover{background:linear-gradient(90deg, #d1efe6, #e5f6f1)}#bmi .input-file-dropzone{opacity:0;width:100%;height:340px;position:absolute;top:0;left:0;cursor:pointer}#bmi .mt25{margin-top:25px}#bmi .mt16{margin-top:16px}#bmi .container-input{display:block;position:relative;padding-left:5px;cursor:pointer;font-size:22px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#bmi .custom-input{width:65px;height:45px;justify-content:center;align-items:center;border-radius:5px;border:1px solid #d1d4d9}#bmi .bg_grey .d-flex input[type=text]{margin:8px 10px}#bmi .d-flex input[type=text],#bmi .d-flex input[type=number],#bmi .d-flex input[type=email]{font-size:20px;text-align:center;justify-content:center;margin:8px 5px;box-sizing:border-box;border:1px solid #d1d4d9;border-radius:5px}#bmi .d-flex input[type=email]{font-size:17px}#bmi .d-flex input[type=text]:focus,#bmi .d-flex input[type=number]:focus,#bmi .d-flex input[type=email]:focus{box-shadow:none}#bmi .container-radio{display:block;position:relative;padding-left:35px;cursor:pointer;font-size:22px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:25px;line-height:25px;margin-top:5px}#bmi .mtf2{margin-top:2px}#bmi .mtf3{margin-top:3px}#bmi .checkmark-radio{position:absolute;top:0;left:0;height:20px;width:20px;background-color:#fff;border:1px solid;border-radius:50%}#bmi .tab2-img{width:35px;height:40px}#bmi .container-radio{opacity:0.5 !important;transition:.3s all}#bmi .container-radio.active{opacity:1 !important}#bmi .bmi-text-input{height:55px;border-radius:10px;margin:8px 0 !important;text-align:left !important;padding:0 20px;color:black;min-width:500px;border:1px solid #d1d4d9;box-shadow:0 !important;box-shadow:none !important;font-size:20px;text-align:center !important}#bmi .bmi-text-input.small{height:45px;line-height:45px;min-width:255px}#bmi #format-tip-wrp{margin-bottom:60px}#bmi .bmi-dropdown{display:inline-block;position:relative;border-radius:5px;border:1px solid #d1d4d9;background:#fff;font-size:18px;line-height:22px}#bmi .bmi-dropdown .dropdown-title{position:relative;padding:10px 8px;padding-right:30px;text-align:center;cursor:pointer}#bmi .bmi-dropdown .dropdown-title::before{content:'';position:absolute;border:solid #257671;border-width:0 3px 3px 0;padding:3px;transform:rotate(45deg);-webkit-transform:rotate(45deg);right:10px;top:calc(50% - 6px);transition:.3s all}#bmi .bmi-dropdown .dropdown-title::after{content:'';position:absolute;border-left:1px solid #37b0a9;opacity:.3;height:26px;top:8px;right:29px;transition:.3s all}#bmi .dropdown-options{font-size:18px;line-height:22px;display:none;position:absolute;background:white;text-align:center;z-index:1000;min-width:100%;border:1px solid #257671;top:calc(100% + 8px);right:0;left:-1px;border-radius:5px;box-shadow:0px 0px 20px -5px rgba(0,0,0,0.4);overflow:auto;max-height:300px}#bmi .dropdown-options .active-option{position:relative;opacity:.6}#bmi .dropdown-options .active-option::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;cursor:not-allowed}#bmi .dropdown-options .dropdown-option{padding:10px 8px;white-space:nowrap;text-overflow:ellipsis;transition:.3s all;cursor:pointer}#bmi .dropdown-options .dropdown-option:not(.active-option):hover{background:#257671;color:white}#bmi .dropdown-options::before{content:'';position:absolute;left:0;right:0;margin:0 auto;top:-5px;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:5px solid #257671}#bmi .bmi-dropdown.active{border-color:#257671}#bmi .bmi-dropdown.active .dropdown-title::before{transform:rotate(-135deg);-webkit-transform:rotate(-135deg);top:calc(50% - 3px)}#bmi .bmi-switch{position:relative;display:inline-block;width:70px;height:30px}#bmi .bmi-switch input{display:none}#bmi .bmi-switch-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#257671;-webkit-transition:0.4s;transition:0.4s}#bmi .bmi-switch-slider:before{position:absolute;content:"";height:17px;width:17px;left:6px;bottom:7px;background-color:white;-webkit-transition:0.4s;transition:0.4s}#bmi input:checked+.bmi-switch-slider{background-color:#d5d5d5}#bmi input:checked+.bmi-switch-slider:before{-webkit-transform:translateX(40px);-ms-transform:translateX(40px);transform:translateX(40px)}#bmi .off{opacity:0}#bmi .off,#bmi .on{font-size:18px;font-weight:bold;color:white;position:absolute;transform:translate(0, -50%);top:50%;transition:.3s all}#bmi .off{left:10px}#bmi .on{right:10px}#bmi input:checked+.bmi-switch-slider .off{opacity:1}#bmi input:checked+.bmi-switch-slider .on{opacity:0}#bmi .bmi-switch-slider.round{border-radius:15px}#bmi .bmi-switch-slider.round:before{border-radius:50%}#bmi .label_e50._bottom_ea7{border-top-left-radius:8px !important;border-top-right-radius:34px !important;min-width:300px}#bmi .label_e50{position:fixed;z-index:2147483648;-webkit-backface-visibility:hidden;backface-visibility:hidden;height:40px;box-shadow:0 12px 14px 8px rgba(0,0,0,0.17);filter:blur(0)}#bmi jdiv{-webkit-animation:0s none;animation:0s none;-webkit-backface-visibility:visible;backface-visibility:visible;background:none;border:0;box-shadow:none;box-sizing:content-box;bottom:auto;caption-side:top;clear:none;clip:auto;cursor:auto;display:inline;direction:ltr;flex:none;height:auto;-webkit-hyphens:manual;-ms-hyphens:manual;hyphens:manual;image-rendering:auto;justify-content:flex-start;left:auto;letter-spacing:normal;line-height:normal;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;-o-object-fit:fill;object-fit:fill;opacity:1;order:1;orphans:2;outline:0 none;overflow:visible;padding:0;perspective:none;position:static;resize:none;right:auto;text-align:left;text-decoration:none;text-indent:0;text-overflow:clip;text-shadow:none;text-transform:none;top:auto;transform:none;transition:all 0s ease 0s;unicode-bidi:normal;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:baseline;white-space:normal;width:auto;word-break:normal;word-spacing:normal;word-wrap:normal;z-index:auto;zoom:normal;filter:none !important;font-weight:400;-webkit-text-size-adjust:inherit;-webkit-font-smoothing:antialiased;-webkit-text-fill-color:currentColor}#bmi .hoverl_bc6{cursor:pointer}#bmi .label_e50._bottom_ea7 .text_468._noAd_b4d,#bmi .label_e50._left_bba .text_468._noAd_b4d,#bmi .label_e50._right_56b .text_468._noAd_b4d{margin:0 33px 0 16px}#bmi .label_e50._bottom_ea7 .text_468,#bmi .label_e50._left_bba .text_468,#bmi .label_e50._right_56b .text_468{transform:translateZ(0);margin:0 37px 0 16px;min-width:160px;visibility:visible}#bmi .label_e50 .text_468{font:inherit;text-indent:0;line-height:40px;vertical-align:top;white-space:nowrap;-webkit-font-smoothing:antialiased;visibility:visible;-webkit-backface-visibility:hidden;backface-visibility:hidden}#bmi .contentTransitionWrap_c73{-webkit-animation-name:fadeIn_d9b;animation-name:fadeIn_d9b;-webkit-animation-duration:0.15s;animation-duration:0.15s;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;-webkit-animation-timing-function:ease;animation-timing-function:ease}#bmi .leaf_2cc{position:absolute;width:32px;height:33px;z-index:6;overflow:hidden}#bmi .leaf_2cc._bottom_afb,#bmi .leaf_2cc._left_7af,#bmi .leaf_2cc._right_ff0{right:0;top:0;width:33px;border-radius:0 24px 0 0 !important}#bmi .cssLeaf_464{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2232%22%20height%3D%2240%22%20viewBox%3D%220%200%2032%2040%22%3E%0A%20%20%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%20%20%20%20%3Cpath%20fill%3D%22%23424867%22%20d%3D%22M0%200h9.02L32%2033.196V40H0z%22%2F%3E%0A%20%20%20%20%20%20%20%20%3Cpath%20fill%3D%22%2318C139%22%20d%3D%22M9%200c3.581.05%2023%205.426%2023%2033.08v.03C18.922%2030.751%209%2019.311%209%205.554V0z%22%2F%3E%0A%20%20%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A");position:absolute;height:33px;width:33px;left:1px}#bmi #bmi_support_chat *{cursor:pointer !important}#bmi #bmi_support_chat{cursor:pointer !important;opacity:1;transition:0.3s all}#bmi #bmi_support_chat:hover{opacity:0.9}#bmi *{outline:0}#bmi-preload{width:calc(50%);margin:0 auto;padding-right:20px;margin-top:50px}#bmi-preload .progress{position:relative;height:4px;display:block;width:100%;background-color:#acece6;border-radius:2px;background-clip:padding-box;margin:0.5rem 0 1rem 0;overflow:hidden}#bmi-preload .progress .determinate{position:absolute;background-color:inherit;top:0;bottom:0;background-color:#26a69a;transition:width .3s linear}#bmi-preload .progress .indeterminate{background-color:#26a69a}#bmi-preload .progress .indeterminate:before{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}#bmi-preload .progress .indeterminate:after{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;-webkit-animation-delay:1.15s;animation-delay:1.15s}@-webkit-keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@-webkit-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}.tooltipster-fall,.tooltipster-grow.tooltipster-show{-webkit-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);-moz-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);-ms-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);-o-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15)}.tooltipster-base{display:flex;pointer-events:none;position:absolute}.tooltipster-box{flex:1 1 auto}.tooltipster-content{color:#333;box-sizing:border-box;max-height:100%;max-width:100%;overflow:hidden;line-height:21px !important}.tooltipster-ruler{bottom:0;left:0;overflow:hidden;position:fixed;right:0;top:0;visibility:hidden}.tooltipster-fade{opacity:0;-webkit-transition-property:opacity;-moz-transition-property:opacity;-o-transition-property:opacity;-ms-transition-property:opacity;transition-property:opacity}.tooltipster-fade.tooltipster-show{opacity:1}.tooltipster-grow{-webkit-transform:scale(0, 0);-moz-transform:scale(0, 0);-o-transform:scale(0, 0);-ms-transform:scale(0, 0);transform:scale(0, 0);-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform;-webkit-backface-visibility:hidden}.tooltipster-grow.tooltipster-show{-webkit-transform:scale(1, 1);-moz-transform:scale(1, 1);-o-transform:scale(1, 1);-ms-transform:scale(1, 1);transform:scale(1, 1);-webkit-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15)}.tooltipster-swing{opacity:0;-webkit-transform:rotateZ(4deg);-moz-transform:rotateZ(4deg);-o-transform:rotateZ(4deg);-ms-transform:rotateZ(4deg);transform:rotateZ(4deg);-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform}.tooltipster-swing.tooltipster-show{opacity:1;-webkit-transform:rotateZ(0);-moz-transform:rotateZ(0);-o-transform:rotateZ(0);-ms-transform:rotateZ(0);transform:rotateZ(0);-webkit-transition-timing-function:cubic-bezier(0.23, 0.635, 0.495, 1);-webkit-transition-timing-function:cubic-bezier(0.23, 0.635, 0.495, 2.4);-moz-transition-timing-function:cubic-bezier(0.23, 0.635, 0.495, 2.4);-ms-transition-timing-function:cubic-bezier(0.23, 0.635, 0.495, 2.4);-o-transition-timing-function:cubic-bezier(0.23, 0.635, 0.495, 2.4);transition-timing-function:cubic-bezier(0.23, 0.635, 0.495, 2.4)}.tooltipster-fall{-webkit-transition-property:top;-moz-transition-property:top;-o-transition-property:top;-ms-transition-property:top;transition-property:top;-webkit-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15)}.tooltipster-fall.tooltipster-initial{top:0 !important}.tooltipster-fall.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;top:0 !important;opacity:0}.tooltipster-slide{-webkit-transition-property:left;-moz-transition-property:left;-o-transition-property:left;-ms-transition-property:left;transition-property:left;-webkit-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);-webkit-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);-moz-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);-ms-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);-o-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15)}.tooltipster-slide.tooltipster-initial{left:-40px !important}.tooltipster-slide.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;left:0 !important;opacity:0}@keyframes tooltipster-fading{0%{opacity:0}100%{opacity:1}}.tooltipster-update-fade{animation:tooltipster-fading 0.4s}@keyframes tooltipster-rotating{25%{transform:rotate(-2deg)}75%{transform:rotate(2deg)}100%{transform:rotate(0)}}.tooltipster-update-rotate{animation:tooltipster-rotating 0.6s}@keyframes tooltipster-scaling{50%{transform:scale(1.1)}100%{transform:scale(1)}}.tooltipster-update-scale{animation:tooltipster-scaling 0.6s}.tooltipster-sidetip .tooltipster-box{background:#fff;border-radius:10px}.tooltipster-sidetip.tooltipster-bottom .tooltipster-box{margin-top:8px}.tooltipster-sidetip.tooltipster-left .tooltipster-box{margin-right:8px}.tooltipster-sidetip.tooltipster-right .tooltipster-box{margin-left:8px}.tooltipster-sidetip.tooltipster-top .tooltipster-box{margin-bottom:8px}.tooltipster-sidetip .tooltipster-content{border-radius:10px !important;font-size:15px;line-height:18px;padding:16px 20px !important;font-family:'Montserrat', sans-serif !important}.tooltipster-sidetip .tooltipster-arrow{overflow:hidden;position:absolute}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow{height:10px;margin-left:-10px;top:0;width:20px}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow{height:20px;margin-top:-10px;right:0;top:0;width:10px}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow{height:20px;margin-top:-10px;left:0;top:0;width:10px}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow{bottom:0;height:10px;margin-left:-10px;width:20px}.tooltipster-sidetip .tooltipster-arrow-background,.tooltipster-sidetip .tooltipster-arrow-border{height:0;position:absolute;width:0}.tooltipster-sidetip .tooltipster-arrow-background{border:10px solid transparent}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-background{border-bottom-color:#fff;left:0;top:3px}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-background{border-left-color:#fff;left:-3px;top:0}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-background{border-right-color:#fff;left:3px;top:0}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background{border-top-color:#fff;left:0;top:-3px}.tooltipster-sidetip .tooltipster-arrow-border{border:10px solid transparent;left:0;top:0}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-border{border-bottom-color:#fff}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-border{border-left-color:#fff}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-border{border-right-color:#fff}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-border{border-top-color:#fff}.tooltipster-sidetip .tooltipster-arrow-uncropped{position:relative}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-uncropped{top:-10px}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-uncropped{left:-10px}.bmi-tt-default-customized .tooltipster-box{background:#2b8984 !important}.bmi-tt-default-customized .tooltipster-content{background:#2b8984 !important;color:white;padding:16px 20px !important;font-weight:500}.bmi-tt-default-customized.tooltipster-bottom .tooltipster-arrow-background{border-bottom-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-left .tooltipster-arrow-background{border-left-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-right .tooltipster-arrow-background{border-right-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-top .tooltipster-arrow-background{border-top-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-top .tooltipster-arrow-border{border-top-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-bottom .tooltipster-arrow-border{border-bottom-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-right .tooltipster-arrow-border{border-right-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-left .tooltipster-arrow-border{border-left-color:#2b8984 !important}.bmi-tooltip-premium-css{text-align:center;width:350px}.bmi-premium-element *{cursor:not-allowed !important;border-color:rgba(198,201,206,0.5) !important}.bmi-tt-default a{color:white !important}.bmi-tt-banner{width:350px}.bmi-tt-center{text-align:center}.bmi-info-icon{position:absolute;top:calc(50% - 8px);width:16px;height:16px;background:url("../images/info-min.png");display:inline-block;line-height:16px;background-repeat:no-repeat;background-position:center;background-size:cover;margin:0;margin-left:3px;cursor:help}.toplevel_page_backup-migration .wp-menu-image img{padding:0 !important;height:20px;margin-top:7px}.toplevel_page_backup-migration.current .wp-menu-image img{filter:brightness(0) invert(1) grayscale(1) !important;opacity:0.85 !important}
|
1 |
+
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap");#bmi{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:'Montserrat', Helvetica, Arial, sans-serif;max-width:1495px;max-width:min(1495px, 95%);margin:0 auto;padding-top:55px;padding-bottom:30vh;min-width:1495px;min-width:calc(min(1495px, 95%))}#bmi .light{font-weight:300}#bmi .regular{font-weight:400}#bmi .medium{font-weight:500}#bmi .semibold{font-weight:600}#bmi .bold{font-weight:700}#bmi .f12{font-size:12px}#bmi .f14{font-size:14px}#bmi .f15{font-size:15px}#bmi .f16{font-size:16px}#bmi .f17{font-size:17px}#bmi .f18{font-size:18px}#bmi .f19{font-size:19px}#bmi .f20{font-size:20px}#bmi .f22{font-size:22px}#bmi .f24{font-size:24px}#bmi .f25{font-size:25px}#bmi .f26{font-size:26px}#bmi .f28{font-size:28px}#bmi .f30{font-size:30px}#bmi .f35{font-size:35px}#bmi .black{color:black}#bmi a{color:#555}#bmi .cf::after{content:'';display:block;clear:both}#bmi .left{float:left}#bmi .right{float:right}#bmi .pointer{cursor:pointer}#bmi .not-allowed{cursor:not-allowed !important}#bmi .hoverable{opacity:1;transition:.3s all;cursor:pointer}#bmi .hoverable:hover{opacity:0.8}#bmi .hoverable:active{transition:0 all !important;opacity:.6}#bmi .transition{transition:.3s all}#bmi .relative{position:relative}#bmi .vcenter{position:absolute;text-align:center;top:50%;transform:translate(0, -50%)}#bmi .flexcenter{justify-content:center;align-items:center}#bmi .shadow{box-shadow:2px 2px 5px rgba(0,0,0,0.35)}#bmi .inline{display:inline-block !important}#bmi .fullwidth{width:100%}#bmi .lh13{line-height:1.3}#bmi .lh14{line-height:1.4}#bmi .lh28{line-height:28px}#bmi .lh30{line-height:30px}#bmi .lh40{line-height:40px}#bmi .lh45{line-height:45px}#bmi .lh50{line-height:50px}#bmi .lh60{line-height:60px}#bmi .lh65{line-height:65px}#bmi .section-bmi{margin-bottom:25px}#bmi hr.section-bmi{margin-top:30px;margin-bottom:25px;border-top:2px solid #ddd}#bmi .secondary{color:#257671}#bmi .secondary-all,#bmi .secondary-all *{color:#257671}#bmi .rbb{border-bottom-left-radius:10px;border-bottom-right-radius:10px}#bmi .rbt{border-top-left-radius:10px;border-top-right-radius:10px}#bmi .center{text-align:center}#bmi .center.block{margin:0 auto}#bmi .align-right{text-align:right}#bmi .align-left{text-align:left}#bmi button{border-radius:10px;background:#257671;line-height:46px;border:0;transition:.3s all;color:white;cursor:pointer}#bmi button:hover{background:#206662}#bmi button:active{transition:0 all;background:#1b5753;opacity:.4}#bmi button.centred{margin:0 auto;margin-bottom:20px;margin-top:25px}#bmi button.with-icon .for-img{display:inline-block;position:relative}#bmi button.with-icon img{position:absolute;left:0;top:8px;height:28px;width:28px}#bmi button.with-icon span{padding-left:35px}#bmi .mm{padding-left:45px;padding-right:45px}#bmi .ppr{padding-right:25px}#bmi .tml{margin-top:20px}#bmi .mo{padding:45px}#bmi .mt{padding-top:45px}#bmi .mb{padding-bottom:45px}#bmi .mtl{padding-top:25px}#bmi .mbl{padding-bottom:25px}#bmi .mtll{padding-top:15px}#bmi .mtlll{padding-top:7px}#bmi .mbll{padding-bottom:15px}#bmi .mblll{padding-bottom:7px}#bmi .nm{margin:0 !important}#bmi .mms{padding-left:20px;padding-right:20px}#bmi .mmm{padding-left:35px;padding-right:35px}#bmi .mm60{padding-left:60px;padding-right:60px}#bmi .mm30{padding-left:30px;padding-right:30px}#bmi .mm92{padding-left:76px !important;padding-right:76px !important}#bmi .text-grey{color:#373737}#bmi .text-muted{opacity:0.47}#bmi .red-text{color:red}#bmi .flex-here{display:flex;flex-direction:row}#bmi .flex-here div{flex:1}#bmi .nlink{text-decoration:none;color:#257671}#bmi .nplr{padding-left:0 !important;padding-right:0 !important}#bmi .flex{display:flex;flex-wrap:wrap}#bmi .rr{padding-left:32px}#bmi .np{padding:0}#bmi .npb{padding-bottom:0 !important}#bmi .npt{padding-top:0 !important}#bmi .pbl{padding-bottom:10px !important}#bmi .bg-second{background:#f8f8f8}#bmi .width50,#bmi .half{width:50% !important}#bmi .chhl{width:calc(50% - 80px) !important;margin:0 40px}#bmi .under{text-decoration:underline}#bmi .tilo{font-size:18px}#bmi .red-error-bg{background:#f9efef}#bmi .nodec{text-decoration:none !important}#bmi .mt30{margin-top:30px}#bmi .suc-buttns .a1,#bmi .suc-buttns .a2{width:calc(50% - 40px);margin:10px}#bmi .suc-buttns .a1 a,#bmi .suc-buttns .a2 a{padding:10px 30px}#bmi .suc-buttns .a1{margin-left:30px}#bmi .suc-buttns .a2{margin-right:30px}#bmi .nowrap{flex-wrap:nowrap !important}#bmi .fbcont{font-size:14px;text-align:left;padding-left:15px}#bmi .fbcont .fbhead{display:block;font-size:19px;margin-bottom:5px}#bmi .nmt{margin-top:0 !important}#bmi .fcentr{display:flex;justify-content:center}#bmi .autowidth{width:auto !important}#bmi .flex1{flex:1}#bmi .flex2{flex:2}#bmi .left-align{text-align:left}#bmi .right-align{text-align:right}#bmi .info-cursor{cursor:help}#bmi .wait-cursor{cursor:wait}#bmi .mrr{margin-right:20px !important}#bmi .orr{margin-right:10px}#bmi .oll{margin-left:10px}#bmi .ooo-to-pad .orr{padding-right:10px !important}#bmi .ooo-to-pad .oll{padding-left:10px !important}#bmi .mw850{max-width:850px}#bmi .bol{margin-left:100px}#bmi li.hasArrowRight{position:relative;padding-left:40px}#bmi li.hasArrowRight::before{content:'';position:absolute;border:solid #257671;border-width:0 3px 3px 0;display:inline-block;padding:3px;transform:rotate(-45deg);-webkit-transform:rotate(-45deg);left:20px;top:10px}#bmi .cron-a{line-height:77px;padding:0px 35px}#bmi .cron-b{border-top:2px solid #e2eceb;border-bottom:2px solid #e2eceb;background-color:#e6eeee;padding:0px 35px;overflow-x:auto;max-width:100%;max-height:78px;overflow-y:hidden}#bmi .cron-b table{height:72px}#bmi .cron-c{padding:0px 35px}#bmi .cron-c table{height:70px}#bmi .mr50{margin-right:50px}#bmi .mr20{margin-right:20px}#bmi .mw250{min-width:250px}#bmi .center-table{width:100%}#bmi .center-table td{text-align:center;padding-left:10px;padding-right:10px}#bmi .untab{box-shadow:none !important;outline:0 !important}#bmi .bc-locked-btn.forever{cursor:not-allowed !important}#bmi .modal.before-open{transition:0s all !important;opacity:0;display:block}#bmi .modal.before-open .modal-wrapper{left:-60px;transition:0s all !important;top:-30px;opacity:0}#bmi .modal.open{transition:0.4s all !important;opacity:1;display:block}#bmi .modal.open .modal-wrapper{top:60px;left:0px;transition:0.4s all !important;opacity:1}#bmi .modal.before-close{transition:0s all !important;opacity:1;display:block}#bmi .modal.before-close .modal-wrapper{transition:0s all !important;top:60px;left:0px;opacity:1}#bmi .modal.closed{transition:0.4s all !important;left:0px;opacity:0}#bmi .modal.closed .modal-wrapper{transition:0.4s all !important;top:120px;left:60px;opacity:0}#bmi .modal{top:0;left:0;display:none;position:fixed;width:100%;height:100vh;background:rgba(37,118,113,0.4);overflow:auto;z-index:999999}#bmi .modal .modal-close{position:absolute;top:25px;right:25px;font-size:35px !important;color:#555 !important;font-weight:500 !important;z-index:9999999 !important;text-decoration:none !important;line-height:1.1;transition:.3s all;opacity:1}#bmi .modal .modal-close.light{color:white !important}#bmi .modal .modal-close:hover{opacity:.7}#bmi .modal .modal-wrapper{top:60px;max-width:60vw;box-shadow:0px 10px 64px rgba(0,0,0,0.24);margin:0 auto;position:relative;background:#FBFBFF;border-radius:10px;padding:40px 40px;margin-bottom:35px;min-height:200px}#bmi .modal .modal-wrapper.no-hpad{padding-left:0;padding-right:0}#bmi .modal .modal-wrapper.no-vpad{padding-top:0;padding-bottom:0}#bmi .modal-closer{cursor:pointer}#bmi .modal-closer:hover{text-decoration:underline}#bmi .live-log{transition:.3s all;overflow:hidden;max-height:306px}#bmi .live-log.expanded-logs{max-height:0px}#bmi .red-warning{position:relative;display:inline-block;padding-left:60px;padding-right:60px}#bmi .red-warning::after,#bmi .red-warning::before{content:'';position:absolute;top:12px;height:41px;width:46px}#bmi .red-warning::after{left:0;background:url("../images/warning-red.png")}#bmi .red-warning::before{right:0;background:url("../images/warning-red.png")}#bmi .premium-wrapper{cursor:not-allowed}#bmi .premium-wrapper .premium{pointer-events:none}#bmi .premium-wrapper .premium-img{line-height:30px;padding-right:30px;position:relative}#bmi .premium-wrapper .premium-img::after{content:'';position:absolute;top:0;bottom:0;right:0;background:url("../images/premium.svg");margin-top:3px;height:24px;width:24px;background-repeat:no-repeat;background-size:cover}#bmi .premium-wrapper .premium-img.premium-nt::after{margin-top:0px !important;right:20px;top:1px}#bmi .premium-wrapper .premium-img.premium-ntt::after{margin-top:0px !important;top:-1px}#bmi .bmi-notification-box{position:fixed;top:15px;right:15px;min-width:100px;max-width:40vw;z-index:1000000}#bmi .bmi-notification.is-info,#bmi .bmi-title.is-info{background-color:#0c96b7}#bmi .bmi-notification.is-danger,#bmi .bmi-title.is-danger{background-color:#e4706f}#bmi .bmi-notification.is-success,#bmi .bmi-title.is-success{background-color:#6db799}#bmi .bmi-alert-icon{height:100%;width:25px}#bmi .bmi-alert-icon .bmi-icon-bg{width:25px;height:25px}#bmi .bmi-alert-msg-title{padding-left:40px !important}#bmi .bmi-notification .bmi-icon-bg{background-position:center;background-repeat:no-repeat;position:absolute;height:calc(100% - 36px)}#bmi .bmi-notification.is-success .bmi-icon-bg{background-image:url("../images/alert_success-min.png")}#bmi .bmi-notification.is-warning .bmi-icon-bg{background-image:url("../images/alert_warning-min.png")}#bmi .bmi-notification.is-info .bmi-icon-bg{background-image:url("../images/alert_info-min.png")}#bmi .bmi-notification.is-danger .bmi-icon-bg{background-image:url("../images/alert_error-min.png")}#bmi .bmi-notification.is-warning,#bmi .bmi-title.is-warning{background-color:#ecb135}#bmi .bmi-title{margin-bottom:3px;font-weight:500;font-size:15px !important}#bmi .bmi-notification{border-radius:3px;padding:18px 36px 18px 20px !important;position:relative;margin-bottom:15px;padding-left:3px;font-family:'Montserrat', sans-serif !important;font-size:15px !important;font-weight:300;color:white}#bmi .bmi-times-button{top:2px;right:1px;position:absolute;background:none !important;border:none;font-size:24px;cursor:pointer;font-weight:500;color:white;opacity:0.6;transition:opacity 0.2s;padding:2px 9px !important}#bmi .bmi-times-button:hover{cursor:pointer;opacity:1}#bmi .bmi-noti-hide{display:none}#bmi .translations{display:none;visibility:hidden;height:0;width:0}#bmi .heading{padding-bottom:35px}#bmi .backup-creator .cron-backups-wrap{width:calc(100% - 225px);height:225px}#bmi .backup-creator .cron-backups{background-color:white;width:calc(100% - 15px);margin-left:15px;height:100%;border-radius:10px}#bmi .backup-creator .cron-backups .vcenter{width:100%}#bmi .backup-creator .cron-backups .turned-off{width:100%;height:100%;background:url("../images/big_bg_clock_white-min.png") no-repeat;background-size:cover;color:#257671}#bmi .backup-creator .cron-backups .turned-off:hover{background:url("../images/big_bg_clock_green-min.png") no-repeat;background-size:cover;color:white}#bmi .backup-creator .cron-backups .turned-off,#bmi .backup-creator .cron-backups .turned-on{width:100%;border-radius:10px;position:absolute;top:0;left:0;right:0;bottom:0;opacity:1;transition:.3s all}#bmi .backup-creator .cron-backups.disabled .cron-bc{opacity:.5;cursor:not-allowed}#bmi .backup-creator .cron-backups.disabled .cron-bc .cron-b{pointer-events:none}#bmi .backup-creator .cron-backups.disabled .cron-bc .cron-c{pointer-events:none}#bmi .trouble-section .shadow{border-radius:7px;background:#fff;color:black;cursor:pointer;transition:.3s all;min-height:185px;padding:0 20px}#bmi .trouble-section .shadow svg{color:#257671}#bmi .trouble-section .shadow:hover,#bmi .trouble-section .shadow.active{color:white;box-shadow:2px 2px 7px rgba(0,0,0,0.4);background:#257671}#bmi .trouble-section .shadow:hover svg,#bmi .trouble-section .shadow.active svg{color:white}#bmi .close-chapters:hover{text-decoration:underline !important}#bmi .hide-show-tr{display:none}@-moz-keyframes spin{100%{-moz-transform:rotate(360deg)}}@-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg)}}@keyframes spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes spinreverse{100%{-moz-transform:rotate(-360deg)}}@-webkit-keyframes spinreverse{100%{-webkit-transform:rotate(-360deg)}}@keyframes spinreverse{100%{-webkit-transform:rotate(-360deg);transform:rotate(-360deg)}}#bmi .spinning{-webkit-animation:spin 3s linear infinite;-moz-animation:spin 3s linear infinite;animation:spin 3s linear infinite}#bmi .spinning-reverse{-webkit-animation:spinreverse 3s linear infinite;-moz-animation:spinreverse 3s linear infinite;animation:spinreverse 3s linear infinite}#bmi #bmi-ongoing-backup{position:fixed;top:32px;right:50px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;height:78px;width:310px;background:#257671;color:white}#bmi #bmi-ongoing-backup .centered{position:absolute;left:85px;top:18px;line-height:22px}#bmi #bmi-ongoing-backup .nuts .nut{position:absolute}#bmi #bmi-ongoing-backup .nuts .nut-1{top:10px;left:30px}#bmi #bmi-ongoing-backup .nuts .nut-2{top:37px;left:15px}#bmi #bmi-ongoing-backup .nuts .nut-3{top:47px;left:37px}#bmi .ml50{margin-left:50px}#bmi .error-noticer{padding:25px 35px;border:1px solid red;border-radius:10px;background:#fbeded;color:red;position:relative;margin-bottom:25px}#bmi .error-noticer .error-header{font-weight:600;font-size:18px}#bmi .error-noticer .error-body{display:none;font-size:16px;padding-left:20px;padding-right:20px;padding-top:20px;line-height:25px}#bmi .error-noticer .error-body b{padding-top:10px;display:block}#bmi .lrn-mr-btn{line-height:70px}#bmi .learn_more_about_cron{background:white;padding:35px 55px 25px;border-radius:10px;font-size:17px;line-height:25px;min-width:calc(100% - 110px);margin-bottom:25px}#bmi .bmi-backup-btn{height:185px;width:185px;outline:none;display:flex;cursor:pointer;font-size:20px;background-color:#257671;position:relative;transition:all 0.7s ease;-webkit-transition:all 0.7s ease;-moz-transition:all 0.7s ease;-o-transition:all 0.7s ease;-ms-transition:all 0.7s ease;border-radius:10px;padding:20px}#bmi .bmi-backup-btn .vcenter{width:calc(100% - 40px)}#bmi .bmi-backup-btn .vcenter .text{margin-top:6px;line-height:1.2}#bmi .bmi-backup-btn.one{border-color:#fff;overflow:hidden;color:#fff}#bmi .bmi-backup-btn.one .insider{opacity:0.6;background-color:rgba(255,255,255,0.14);width:340px;height:162px;position:absolute;right:1px;bottom:86px;transform:rotateZ(-45deg);-webkit-transform:rotateZ(-45deg);-moz-transform:rotateZ(-45deg);-o-transform:rotateZ(-45deg);-ms-transform:rotateZ(-45deg);transition:all 0.3s ease;-webkit-transition:all 0.3s ease;-moz-transition:all 0.3s ease;-o-transition:all 0.3s ease;-ms-transition:all 0.3s ease}#bmi .bmi-backup-btn.one .insider-2{opacity:0.6;background:linear-gradient(180deg, rgba(255,255,255,0.73) 0%, rgba(255,255,255,0.14) 55%);width:390px;height:318px;position:absolute;right:-308px;bottom:-267px;transform:rotateZ(-45deg);-webkit-transform:rotateZ(-45deg);-moz-transform:rotateZ(-45deg);-o-transform:rotateZ(-45deg);-ms-transform:rotateZ(-45deg);transition:all 0.3s ease;-webkit-transition:all 0.3s ease;-moz-transition:all 0.3s ease;-o-transition:all 0.3s ease;-ms-transition:all 0.3s ease}#bmi .bmi-backup-btn.one:hover .insider{transition:all 0.5s ease;-webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;-ms-transition:all 0.5s ease;right:108px;bottom:200px}#bmi .bmi-backup-btn.one:hover .insider-2{transition:all 0.6s ease;-webkit-transition:all 0.6s ease;-moz-transition:all 0.6s ease;-o-transition:all 0.6s ease;-ms-transition:all 0.6s ease;transition-delay:0.5s;right:19px;bottom:75px}#bmi .tab-wrapper{min-width:100%}#bmi .tabs{border:0 !important;background-color:white;margin-bottom:25px;border-top-left-radius:10px;border-top-right-radius:10px}#bmi .tabs .tab.active{cursor:not-allowed}#bmi .tabs .tab:first-child{border-top-left-radius:10px}#bmi .tabs .tab:last-child{border-top-right-radius:10px}#bmi .tabs .tab{padding-top:18px;width:calc(50% - 1px);border-left:1px solid rgba(176,69,46,0.12);text-align:center;padding-bottom:18px;color:#8e8e8e}#bmi .tabs .tab.active{position:relative;color:#257671}#bmi .tabs .tab.active:not(.active):hover::before{border-bottom:7px solid white !important}#bmi .tabs .tab.active::before{content:'';height:0px;width:0px;transition:.3s all;background:transparent;border-top:5px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #257671;position:absolute;bottom:0;left:0;right:0;margin:0 auto;transform:translateX(-50%)}#bmi .tabs .tab.active::after{content:'';position:absolute;bottom:0;left:0;right:0;width:100%;height:6px;border-bottom:2px solid #257671}#bmi .tabs .tab:first-child.active::after{border-bottom-left-radius:14px}#bmi .tabs .tab:last-child.active::after{border-bottom-right-radius:14px}#bmi .tabs .tab:first-child{width:50%;border-left:0 !important}#bmi .tabs .tab:not(.active):hover{color:white;background:#257671}#bmi .collapser.active .header:not(.ignorehov){background:#257671;color:white}#bmi .collapser.active .header{border-bottom-left-radius:0px;border-bottom-right-radius:0px}#bmi .collapser.active .header:not(.ignorehov)::after{filter:brightness(0) invert(1) grayscale(1) !important;opacity:0.95 !important}#bmi .collapser.active .header::after{transform:rotate(180deg)}#bmi .collapser{border-radius:10px}#bmi .collapser .header{padding:21px 45px;background:white;border-radius:10px;position:relative}#bmi .collapser .header:not(.ignorehov):hover{background:#257671;color:white}#bmi .collapser .header::after{content:'';position:absolute;background:url("../images/arrow-min.png");background-size:cover;background-repeat:no-repeat;margin-top:4px;right:45px;width:19px;height:11px;transition:.3s all}#bmi .collapser .header:not(.ignorehov):hover::after{filter:brightness(0) invert(1) grayscale(1) !important;opacity:0.95 !important}#bmi .collapser .content{display:none;background:white;min-width:100%;border-bottom-left-radius:10px;border-bottom-right-radius:10px}#bmi #manage-restore-wrapper .restore-wrapper{background-color:white;padding-top:40px;padding-bottom:40px;min-width:100%;margin-top:10px}#bmi #manage-restore-wrapper .m{margin-left:30px;margin-right:30px}#bmi #manage-restore-wrapper .header{background:#beeddf;background:linear-gradient(60deg, #beeddf 10%, #dffaf2 100%);height:18px}#bmi #manage-restore-wrapper .header::before{content:'';position:absolute;background:#beeddf;background:linear-gradient(60deg, #dffaf2 10%, #beeddf 100%);left:0;top:0;border-radius:10px;width:100%;height:100%;opacity:0 !important;transition:.3s all}#bmi #manage-restore-wrapper .bold{position:absolute}#bmi #manage-restore-wrapper .collapser.active .header::before{border-bottom-left-radius:0px;border-bottom-right-radius:0px;opacity:1 !important}#bmi #manage-restore-wrapper .header:hover::before{opacity:1 !important}#bmi #manage-restore-wrapper .content{min-width:calc(100% - 90px);position:relative;padding:10px 45px}#bmi #manage-restore-wrapper .content .bg-quick-migration{top:0;left:0;right:0;bottom:0;position:absolute;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none;border-bottom-left-radius:10px;border-bottom-right-radius:10px}#bmi #manage-restore-wrapper .content .content-above{position:relative}#bmi #manage-restore-wrapper .content .quick-migration{border-radius:10px}#bmi #manage-restore-wrapper .content .text-heading{padding:15px 0}#bmi #manage-restore-wrapper .content input{box-sizing:border-box;line-height:30px;border:1px solid #c6c9cf;width:100%;padding:11px;font-size:18px;border-radius:10px}#bmi #manage-restore-wrapper .content button{width:358px}#bmi #manage-restore-wrapper .heading-sq .bold{position:relative;padding-right:35px}#bmi #manage-restore-wrapper .heading-sq .bold::after{content:'';background:url("../images/next-icon-min.png");background-size:cover;height:24px;width:24px;position:absolute;top:0;right:0}#bmi #manage-restore-wrapper .valign-restore .a1{padding-top:6px;padding-right:6px}#bmi #manage-restore-wrapper .valign-restore .a2{padding-top:4px;padding-right:6px}#bmi #manage-restore-wrapper .table-wrapper{max-width:100%;overflow-y:auto}#bmi #manage-restore-wrapper .table-wrapper table{width:100%;min-width:400px;border-collapse:collapse;margin-bottom:10px}#bmi #manage-restore-wrapper .table-wrapper table .restore-btn{color:white;font-size:13px;font-weight:600;background:#0ec094;border-radius:5px;width:95px;height:25px;border:1px solid #0ec094;display:flex;justify-content:space-evenly;align-items:center}#bmi #manage-restore-wrapper .table-wrapper table th{font-size:19px;text-align:left;color:#111}#bmi #manage-restore-wrapper .table-wrapper table th.inactive{color:#c3c3c3}#bmi #manage-restore-wrapper .table-wrapper table tr{border-bottom:2px solid #e1dada}#bmi #manage-restore-wrapper .table-wrapper table tr th,#bmi #manage-restore-wrapper .table-wrapper table tr td{padding-top:15px;padding-bottom:14px}#bmi #manage-restore-wrapper .table-wrapper table tr td{font-size:18px;color:#333}#bmi .log-wrapper pre{max-height:200px;overflow:auto;line-height:1.2;font-size:13px;white-space:nowrap;text-align:left;background:#fbfbfb;border:1px solid #cececc;border-radius:10px;padding:30px}#bmi .log-wrapper pre .red{color:red}#bmi .log-wrapper pre .blue{color:blue}#bmi .log-wrapper pre .green{color:green}#bmi .log-wrapper pre .orange{color:#f59e00}#bmi .progress-bar-wrapper{line-height:1;margin-top:70px;margin-bottom:30px}#bmi .progress-bar-wrapper .progress-bar{position:relative;height:10px;width:100%;border-radius:10px;background:#f1f1f1}#bmi .progress-bar-wrapper .progress-active-bar{position:absolute;background:#257671;border-radius:10px;height:14px;width:40%;top:-2px;left:0;transition:0.1s all cubic-bezier(0, 0, 0.6, 1);box-shadow:0px 0px 10px rgba(0,0,0,0.4)}#bmi .progress-bar-wrapper .progress-active-bar::before{content:'';position:absolute;border-radius:10px;height:14px;width:20%;top:0;right:0;z-index:0}#bmi .progress-bar-wrapper .progress-percentage{position:absolute;background:#257671;width:32px;height:32px;border-radius:50%;transform:translate(calc(-50% - 3px), 0);bottom:26px;text-align:center;color:white;line-height:34px;font-size:11px;font-weight:800;transition:0.1s all cubic-bezier(0, 0, 0.6, 1)}#bmi .progress-bar-wrapper .progress-percentage::after{content:'';left:50%;position:absolute;background:#257671;width:6px;height:6px;border-radius:50%;transform:translate(-50%, 0);bottom:-10px}#bmi .deleteAllSelected{height:45px;width:265px;border-radius:10px;font-size:15px !important;font-weight:bold;padding-top:0 !important;padding-bottom:0 !important}#bmi .lds-spinner{color:#257671;display:inline-block;position:relative;width:20px;height:14px}#bmi .lds-spinner div{transform-origin:10px 10px;animation:lds-spinner 1.2s linear infinite}#bmi .lds-spinner div:after{content:" ";display:block;position:absolute;top:2px;left:9px;width:2px;height:4px;border-radius:20%;background:#257671}#bmi .lds-spinner div:nth-child(1){transform:rotate(0deg);animation-delay:-1.1s}#bmi .lds-spinner div:nth-child(2){transform:rotate(30deg);animation-delay:-1s}#bmi .lds-spinner div:nth-child(3){transform:rotate(60deg);animation-delay:-0.9s}#bmi .lds-spinner div:nth-child(4){transform:rotate(90deg);animation-delay:-0.8s}#bmi .lds-spinner div:nth-child(5){transform:rotate(120deg);animation-delay:-0.7s}#bmi .lds-spinner div:nth-child(6){transform:rotate(150deg);animation-delay:-0.6s}#bmi .lds-spinner div:nth-child(7){transform:rotate(180deg);animation-delay:-0.5s}#bmi .lds-spinner div:nth-child(8){transform:rotate(210deg);animation-delay:-0.4s}#bmi .lds-spinner div:nth-child(9){transform:rotate(240deg);animation-delay:-0.3s}#bmi .lds-spinner div:nth-child(10){transform:rotate(270deg);animation-delay:-0.2s}#bmi .lds-spinner div:nth-child(11){transform:rotate(300deg);animation-delay:-0.1s}#bmi .lds-spinner div:nth-child(12){transform:rotate(330deg);animation-delay:0s}@keyframes lds-spinner{0%{opacity:1}100%{opacity:0}}#bmi .prenotices{margin-top:45px;margin-bottom:45px}#bmi .prenotices .prenotice:first-child{border-top:1px solid #eeebeb}#bmi .prenotices .prenotice{position:relative;background:#fcfcfc;border-bottom:1px solid #eeebeb}#bmi .prenotices .prenotice .text{padding-top:25px;padding-bottom:25px;padding-left:155px;padding-right:60px;font-size:18px;line-height:1.2}#bmi .prenotices .prenotice.top{border-top-right-radius:10px;border-top-left-radius:10px}#bmi .prenotices .prenotice.top .text{padding-right:120px;padding-left:215px;font-size:20px;line-height:25px}#bmi .prenotices .prenotice::before{content:'';position:absolute;background:url("../images/warning-grey.png");width:46px;height:41px;top:50%;transform:translate(0, -50%);left:60px}#bmi .prenotices .prenotice.top::before{left:120px}#bmi .prenotices .prenotice.red{background:#feedee !important}#bmi .prenotices .prenotice.red::before{background:url("../images/warning-red.png")}#bmi .btn{display:block;background:#257671;box-shadow:0 10px 9px rgba(0,0,0,0.24);color:white;padding-top:18px;padding-bottom:18px;border-radius:10px;font-size:18px;line-height:1.2;transition:0.3s all;cursor:pointer;text-decoration:none}#bmi .btn .text{display:inline-block}#bmi .btn.btn-pad{padding-left:50px;padding-right:50px}#bmi .btn.btn-img-low-pad .text{padding-left:40px !important}#bmi .btn:hover{background:#206662;box-shadow:0 10px 15px rgba(0,0,0,0.34)}#bmi .btn:active{transition:0 all;background:#1b5753;box-shadow:0 10px 5px rgba(0,0,0,0.14)}#bmi .btn.red{background:#da2b2b}#bmi .btn.red:hover{background:#cd2424}#bmi .btn.red:active{background:#bb2121}#bmi .btn.lime{background:#4dbb84}#bmi .btn.lime:hover{background:#43b07a}#bmi .btn.lime:active{background:#3ea270}#bmi .btn.gray,#bmi .btn.grey{background:#b6b6b6}#bmi .btn.gray:hover,#bmi .btn.grey:hover{background:#acacac}#bmi .btn.gray:active,#bmi .btn.grey:active{background:#a2a2a2}#bmi .btn.btn-with-img .text{padding-left:60px;position:relative}#bmi .btn.btn-with-img img{position:absolute;top:50%;left:0;transform:translate(0, -50%)}#bmi input[type="checkbox"]{border-radius:4px;width:22px !important;height:22px !important;position:relative;transition:0.3s all}#bmi input[type="checkbox"],#bmi input[type="checkbox"]:active,#bmi input[type="checkbox"]:focus{outline:0 !important;box-shadow:none !important;border-color:#257671 !important}#bmi input[type="checkbox"]::before{content:'' !important;border-color:#257671 !important;border-radius:3px;transition:0.3s all;margin:0 !important;height:20px !important;width:20px !important;float:left;display:inline-block;vertical-align:middle;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#bmi input[type="checkbox"]:checked{background:#257671 !important}#bmi input[type="checkbox"]:checked::after{content:'';width:10px;height:5px;border-left:3px solid white;border-bottom:3px solid white;top:4px;left:4px;transform:rotate(-48deg);position:absolute}#bmi .success-copy-input input{width:calc(100% - 170px - 15px);margin-right:15px;line-height:44px;border-radius:10px;border:1px solid #d1d4d9;background:#fff}#bmi .success-copy-input a{line-height:10px;padding-left:40px !important;padding-right:40px !important;box-shadow:none !important;text-decoration:none}#bmi .grey-btn{background:#aaa;width:85%;line-height:13px}#bmi .save-btn{text-align:center;font-weight:700;width:450px;margin:0 auto;font-size:27px}#bmi .max300{max-width:300px;margin:0 auto}#bmi .max280{max-width:280px;margin:0 auto}#bmi label:hover input[type="checkbox"]{background:#dfdfdf}#bmi .btn.othersec{margin-top:6px;padding-top:13px;padding-bottom:13px}#bmi .file-checkboxes-wrapper{padding-left:32px}#bmi .file-checkboxes-wrapper .file-checkboxes label{display:block;width:50%;margin-bottom:10px}#bmi .file-checkboxes-wrapper div{margin-top:5px;margin-bottom:5px}#bmi .note{width:500px;margin:50px auto;font-size:1.1em;color:#333;text-align:justify}#bmi #drop-area{border:2px dashed #ccc;border-radius:20px;width:100%;height:340px;margin-top:10px;background:#f9f9f9}#bmi #drop-area:hover{background:linear-gradient(90deg, #d1efe6, #e5f6f1)}#bmi #drop-area.highlight{border-color:#257671}#bmi .my-form{margin-bottom:10px;margin-top:35px}#bmi #gallery{margin-top:10px}#bmi .img_upload{width:100px;height:75px;background-image:url("../images/upload.svg")}#bmi #gallery img{width:150px;margin-bottom:10px;margin-right:10px;vertical-align:middle}#bmi .button{display:inline-block;padding:10px;background:#ccc;cursor:pointer;border-radius:5px;border:1px solid #ccc}#bmi .button:hover{background:#ddd}#bmi #upid_input{position:absolute;left:2508px;top:3273px;opacity:0;z-index:9999;width:1px;height:1px;display:none}#bmi .ortext{font-size:18px;line-height:54px}#bmi .upload_button{font-size:18px;font-weight:800;padding:0;height:50px;line-height:50px;padding:0 20px}#bmi .upload-progress{border:2px dashed #ccc;padding-bottom:45px;border-radius:20px;margin-top:10px;margin-bottom:10px;overflow:hidden;position:relative}#bmi .upload-progress .upload-progress-bar{width:90%;margin:0 auto;background:#f1f1f1;height:10px;margin-top:65px;position:relative;border-radius:10px;margin-bottom:10px}#bmi .upload-progress .upload-progress-bar span{display:block;position:absolute;top:-2px;left:0;width:50%;background:#257671;height:14px;z-index:10;border-radius:10px;transition:0.1s all cubic-bezier(0, 0, 0.6, 1)}#bmi .upload-progress .upload-progress-bar .upload-percentage{position:absolute;bottom:calc(100% + 14px);right:-13px;color:white;background:#257671;border-radius:50%;width:30px;height:30px;font-size:12px;text-align:center;line-height:30px}#bmi .upload-progress .upload-progress-bar .upload-percentage::after{position:absolute;content:'';top:calc(100% + 4px);left:0;right:0;margin:0 auto;width:6px;height:6px;background:#257671;border-radius:50%}#bmi .upload-title{font-size:23px;font-weight:800}#bmi .bmi-txtar{padding:15px;border-radius:10px;font-size:18px;resize:none}#bmi .inline-radio{padding-right:20px}#bmi .exclude-row input{border-radius:5px;width:130px;height:44px;border:1px solid #d1d4d9;font-size:18px;margin:0 10px;text-align:center}#bmi .mbfieldlimit{font-size:20px;text-align:center;justify-content:center;margin:8px 5px;box-sizing:border-box;border:1px solid #d1d4d9;border-radius:5px;width:85px;height:45px;justify-content:center;align-items:center}#bmi .overlay-premium{display:none}#bmi .clocks_container{display:none}#bmi .overlayed:hover{position:relative}#bmi .overlayed:hover .overlay-premium{display:flex;position:absolute;top:0;left:0;width:100%;height:100%;background-image:url("../images/big_bg_clock_white-min.png");background-repeat:no-repeat;background-size:cover;align-items:center;justify-content:center;z-index:100000;border-top:1px solid #cdcdcd;border-bottom:1px solid #cdcdcd}#bmi .overlayed:hover .clocks_container{display:flex;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.05);align-items:center;flex-direction:column;justify-content:center;height:100%;position:relative;font-size:18px}#bmi .tab2-item{position:relative;display:flex;justify-content:space-between;align-items:center;width:100%;background:#f6f6f6;border-radius:10px;height:70px;padding:0 30px;margin-top:15px;box-sizing:border-box}#bmi .tab2-item .container-40{margin:0 40px}#bmi .tab2-item .pb30{padding-bottom:30px}#bmi .tab2-item .bg_grey{background:#f8f8f8}#bmi .tab2-item .not-ready{position:absolute;left:0;width:100%;height:100%;background-color:#e5e5e5;opacity:0.7;border-radius:10px}#bmi .tab2-item .bg_clock_day2{display:none;background-image:url("../images/big_bg_clock_green-min.png");width:100%;height:100%;position:absolute;left:0;background-size:cover;background-repeat:no-repeat;z-index:3;color:white;border-radius:10px}#bmi .tab2-item .clock_img{flex-basis:5%}#bmi .tab2-item .d-flex{display:flex;flex:1}#bmi .tab2-item .ia-center{align-items:center}#bmi .tab2-item .switch{position:relative;width:70px;height:30px;overflow:hidden;border:none;padding:0;background:none}#bmi .tab2-item .switch.b2{border-radius:15px;border:none;background:none;padding:0}#bmi .tab2-item .switch.b2 .checkbox{position:relative;width:100%;height:100%;padding:0;margin:0;opacity:0;cursor:pointer;z-index:3;border:none}#bmi .tab2-item .knobs{z-index:2;position:absolute;top:0;right:0;bottom:0;left:0}#bmi .tab2-item .switch .knobs:before{content:'Off';left:7px}#bmi .tab2-item .switch .knobs:before,#bmi .tab2-item .switch .knobs:after{color:white;z-index:1}#bmi .tab2-item .switch .knobs:before,#bmi .tab2-item .switch .knobs:after,#bmi .tab2-item .switch .knobs span{position:absolute;top:6px;width:17px;height:17px;font-size:18px;font-weight:bold;text-align:center;line-height:1;padding:0 3px;border-radius:2px;transition:0.4s ease all}#bmi .tab2-item .switch .knobs:after{content:'On';right:17px}#bmi .tab2-item .switch .knobs:after{padding:0 12px}#bmi .tab2-item .switch .checkbox:checked+.knobs:before,#bmi .tab2-item .switch .checkbox:not(:checked)+.knobs:after{opacity:0}#bmi .tab2-item .switch .knobs:before,#bmi .tab2-item .switch .knobs:after{color:white;z-index:1}#bmi .tab2-item .switch .knobs:after{padding:0 12px}#bmi .tab2-item .switch .knobs:before,#bmi .tab2-item .switch .knobs:after,#bmi .tab2-item .switch .knobs span{position:absolute;top:6px;width:17px;height:17px;font-size:18px;font-weight:bold;text-align:center;line-height:1;padding:0 3px;border-radius:2px;transition:0.4s ease all}#bmi .tab2-item .layer,#bmi .tab2-item .layer_str{width:100%;background-color:#d5d5d5;transition:0.3s ease all;z-index:1}#bmi .tab2-item .button-cover,#bmi .tab2-item .knobs,#bmi .tab2-item .layer,#bmi .tab2-item .layer_str{position:absolute;top:0;right:0;bottom:0;left:0}#bmi .tab2-item .switch.b2 .checkbox{position:relative;width:100%;height:100%;padding:0;margin:0;opacity:0;cursor:pointer;z-index:3;border:none}#bmi .tab2-item .title_whereStored{font-size:20px;font-weight:bold}#bmi .tab2-item .ml25{margin-left:25px}#bmi .tab2-item .switch .knobs span{left:48px;background-color:white;z-index:2}#bmi .tab2-item .switch .knobs:before,#bmi .tab2-item .switch .knobs:after,#bmi .tab2-item .switch .knobs span{position:absolute;top:6px;width:17px;height:17px;font-size:18px;font-weight:bold;text-align:center;line-height:1;padding:0 3px;border-radius:2px;transition:0.4s ease all}#bmi .tab2-item .switch .knobs span{padding:0;border-radius:50%;top:6px}#bmi .tab2-item .not_ready{position:absolute;left:0;width:100%;height:100%;background-color:#e5e5e5;opacity:0.7;border-radius:10px}#bmi .tab2-item .link-white:hover{text-decoration:underline;color:white}#bmi .tab2-item .link-white{color:white;text-decoration:none}#bmi .tab2-item .crown2{width:20px;height:20px;margin-left:7px;z-index:1}#bmi .tab2-item .d-flex .w100 .input-locally_web_server{width:100%;height:55px;border-radius:10px;margin:8px 0 !important;text-align:left !important;padding:0 20px;color:black}#bmi .tab2-item .w270{min-width:270px}#bmi .tab2-item:hover .bg_clock_day2{display:flex;justify-content:center;align-items:center}#bmi .tab2-item.activeList{color:white;background:#257671 !important;border-bottom-left-radius:0;border-bottom-right-radius:0}#bmi .tab2-item.activeList .switch .checkbox:checked ~ .layer_str{background-color:#154e4b}#bmi .tab2-item.activeList .bg_grey{background:#f8f8f8}#bmi .tab2-item.activeList .switch .checkbox:checked+.knobs:before,#bmi .tab2-item.activeList .switch .checkbox:not(:checked)+.knobs:after{opacity:0}#bmi .tab2-item.activeList .switch .checkbox:checked+.knobs span{left:7px;background-color:white}#bmi .container-radio input{position:absolute;opacity:0;cursor:pointer}#bmi .checkmark-radio{position:absolute;top:0;left:0;height:25px;width:25px;background-color:#fff;border:1px solid;border-radius:50%}#bmi .container-radio:hover input ~ .checkmark-radio{background-color:#cecece}#bmi .container-radio input:checked ~ .checkmark-radio{background-color:white;border:1px solid #257671}#bmi .checkmark-radio:after{content:"";position:absolute;display:none}#bmi .container-radio input:checked ~ .checkmark-radio:after{display:block}#bmi .container-radio .checkmark-radio:after{top:5px;left:5px;width:10px;height:10px;border-radius:50%;background:#257671}#bmi .container-checkbox .checkmark-checkbox:after{left:9px;top:5px;width:5px;height:10px;border:solid white;border-width:0 3px 3px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}#bmi .input-mar{margin:30px 0}#bmi .container-40{margin:0 40px}#bmi .container-36{margin:0 36px 0 40px}#bmi .container-55{margin:0 55px}#bmi .d-flex{display:flex}#bmi .w270{min-width:270px}#bmi .w100{width:100%}#bmi .pos-r{position:relative}#bmi .mt20{margin-top:20px}#bmi .pb30{padding-bottom:30px}#bmi .pt30{padding-top:30px}#bmi .bg_grey{background:#f8f8f8}#bmi .input-file{width:100%;height:55px}#bmi .input-file-user{position:relative;height:55px;width:525px;font-size:14px}#bmi .input-file-user::placeholder{font-size:14px}#bmi .input-label-file{color:#aaaeb3;width:525px;height:55px;border:1px solid #d1d4d9;border-radius:10px;display:flex;align-items:center;padding:0 30px}#bmi #copy-password{height:45px;width:410px;border-radius:10px;border:1px solid #d1d4d9;text-align:left}#bmi #copy-url{height:45px;width:480px;border-radius:10px;border:1px solid #d1d4d9}#bmi #copy-key{height:45px;width:230px;border-radius:10px;border:1px solid #d1d4d9}#bmi .input-other{height:45px;width:255px;border-radius:10px;border:1px solid #d1d4d9}#bmi #creatingBackUp{height:55px;border:1px solid #c6c9cf;border-radius:10px;padding:0 30px}#bmi .creatingBackUp input[type=text]{display:flex;font-size:20px;text-align:left;justify-content:center;margin:8px 5px;box-sizing:border-box;border:1px solid #d1d4d9}#bmi #backupsfile{border:1px dashed #a9a9a9;border-radius:10px;display:flex;justify-content:center}#bmi .drop{height:300px;display:flex;align-items:center;justify-content:center}#bmi .drop .dz-default{display:none}#bmi #textAreaCopy{height:230px;padding:25px;box-sizing:border-box;font-size:14px;color:#aaaaaa}#bmi .inprogressCreate{height:130px;padding:30px 40px;border:1px solid #aaaaaa;border-radius:10px;color:black;font-size:13px;overflow-y:auto}#bmi #text-areaSomeHick{height:240px;padding:25px;box-sizing:border-box;font-size:14px;color:#aaaaaa}#bmi #backupIsNowAccessible{height:51px;width:99%;border-radius:10px;border:1px solid #d1d4d9;text-align:left;padding-left:10px}#bmi .backupSuccess_link_container{display:flex;align-items:center;position:relative;margin:15px 70px 0}#bmi .input-config_set{width:280px;height:45px;border-radius:10px;padding-left:10px;text-align:left !important}#bmi .link_duplicate{color:#6bd5a0;margin:0 13px;text-decoration:none}#bmi .link_export{color:#0e80c9;margin:0 13px;text-decoration:none}#bmi .link_delete{color:#c20000;margin:0 13px;text-decoration:none}#bmi .d-flex .w100 .input-locally_web_server{width:100%;height:55px;border-radius:10px;margin:8px 0 !important;text-align:left !important;padding:0 20px;color:black}#bmi div .dropzone{position:relative;cursor:pointer;margin:20px 0;height:340px;border:2px dashed rgba(0,0,0,0.3);padding:20px;border-radius:20px;color:gray;background-color:#f9f9f9}#bmi .dropzone:hover{background:linear-gradient(90deg, #d1efe6, #e5f6f1)}#bmi .input-file-dropzone{opacity:0;width:100%;height:340px;position:absolute;top:0;left:0;cursor:pointer}#bmi .mt25{margin-top:25px}#bmi .mt16{margin-top:16px}#bmi .container-input{display:block;position:relative;padding-left:5px;cursor:pointer;font-size:22px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#bmi .custom-input{width:65px;height:45px;justify-content:center;align-items:center;border-radius:5px;border:1px solid #d1d4d9}#bmi .bg_grey .d-flex input[type=text]{margin:8px 10px}#bmi .d-flex input[type=text],#bmi .d-flex input[type=number],#bmi .d-flex input[type=email]{font-size:20px;text-align:center;justify-content:center;margin:8px 5px;box-sizing:border-box;border:1px solid #d1d4d9;border-radius:5px}#bmi .d-flex input[type=email]{font-size:17px}#bmi .d-flex input[type=text]:focus,#bmi .d-flex input[type=number]:focus,#bmi .d-flex input[type=email]:focus{box-shadow:none}#bmi .container-radio{display:block;position:relative;padding-left:35px;cursor:pointer;font-size:22px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:25px;line-height:25px;margin-top:5px}#bmi .mtf2{margin-top:2px}#bmi .mtf3{margin-top:3px}#bmi .checkmark-radio{position:absolute;top:0;left:0;height:20px;width:20px;background-color:#fff;border:1px solid;border-radius:50%}#bmi .tab2-img{width:35px;height:40px}#bmi .container-radio{opacity:0.5 !important;transition:.3s all}#bmi .container-radio.active{opacity:1 !important}#bmi .bmi-text-input{height:55px;border-radius:10px;margin:8px 0 !important;text-align:left !important;padding:0 20px;color:black;min-width:500px;border:1px solid #d1d4d9;box-shadow:0 !important;box-shadow:none !important;font-size:20px;text-align:center !important}#bmi .bmi-text-input.small{height:45px;line-height:45px;min-width:255px}#bmi #format-tip-wrp{margin-bottom:60px}#bmi .bmi-dropdown{display:inline-block;position:relative;border-radius:5px;border:1px solid #d1d4d9;background:#fff;font-size:18px;line-height:22px}#bmi .bmi-dropdown .dropdown-title{position:relative;padding:10px 8px;padding-right:30px;text-align:center;cursor:pointer}#bmi .bmi-dropdown .dropdown-title::before{content:'';position:absolute;border:solid #257671;border-width:0 3px 3px 0;padding:3px;transform:rotate(45deg);-webkit-transform:rotate(45deg);right:10px;top:calc(50% - 6px);transition:.3s all}#bmi .bmi-dropdown .dropdown-title::after{content:'';position:absolute;border-left:1px solid #37b0a9;opacity:.3;height:26px;top:8px;right:29px;transition:.3s all}#bmi .dropdown-options{font-size:18px;line-height:22px;display:none;position:absolute;background:white;text-align:center;z-index:1000;min-width:100%;border:1px solid #257671;top:calc(100% + 8px);right:0;left:-1px;border-radius:5px;box-shadow:0px 0px 20px -5px rgba(0,0,0,0.4);overflow:auto;max-height:300px}#bmi .dropdown-options .active-option{position:relative;opacity:.6}#bmi .dropdown-options .active-option::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;cursor:not-allowed}#bmi .dropdown-options .dropdown-option{padding:10px 8px;white-space:nowrap;text-overflow:ellipsis;transition:.3s all;cursor:pointer}#bmi .dropdown-options .dropdown-option:not(.active-option):hover{background:#257671;color:white}#bmi .dropdown-options::before{content:'';position:absolute;left:0;right:0;margin:0 auto;top:-5px;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:5px solid #257671}#bmi .bmi-dropdown.active{border-color:#257671}#bmi .bmi-dropdown.active .dropdown-title::before{transform:rotate(-135deg);-webkit-transform:rotate(-135deg);top:calc(50% - 3px)}#bmi .bmi-switch{position:relative;display:inline-block;width:70px;height:30px}#bmi .bmi-switch input{display:none}#bmi .bmi-switch-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#257671;-webkit-transition:0.4s;transition:0.4s}#bmi .bmi-switch-slider:before{position:absolute;content:"";height:17px;width:17px;left:6px;bottom:7px;background-color:white;-webkit-transition:0.4s;transition:0.4s}#bmi input:checked+.bmi-switch-slider{background-color:#d5d5d5}#bmi input:checked+.bmi-switch-slider:before{-webkit-transform:translateX(40px);-ms-transform:translateX(40px);transform:translateX(40px)}#bmi .off{opacity:0}#bmi .off,#bmi .on{font-size:18px;font-weight:bold;color:white;position:absolute;transform:translate(0, -50%);top:50%;transition:.3s all}#bmi .off{left:10px}#bmi .on{right:10px}#bmi input:checked+.bmi-switch-slider .off{opacity:1}#bmi input:checked+.bmi-switch-slider .on{opacity:0}#bmi .bmi-switch-slider.round{border-radius:15px}#bmi .bmi-switch-slider.round:before{border-radius:50%}#bmi .label_e50._bottom_ea7{border-top-left-radius:8px !important;border-top-right-radius:34px !important;min-width:300px}#bmi .label_e50{position:fixed;z-index:2147483648;-webkit-backface-visibility:hidden;backface-visibility:hidden;height:40px;box-shadow:0 12px 14px 8px rgba(0,0,0,0.17);filter:blur(0)}#bmi jdiv{-webkit-animation:0s none;animation:0s none;-webkit-backface-visibility:visible;backface-visibility:visible;background:none;border:0;box-shadow:none;box-sizing:content-box;bottom:auto;caption-side:top;clear:none;clip:auto;cursor:auto;display:inline;direction:ltr;flex:none;height:auto;-webkit-hyphens:manual;-ms-hyphens:manual;hyphens:manual;image-rendering:auto;justify-content:flex-start;left:auto;letter-spacing:normal;line-height:normal;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;-o-object-fit:fill;object-fit:fill;opacity:1;order:1;orphans:2;outline:0 none;overflow:visible;padding:0;perspective:none;position:static;resize:none;right:auto;text-align:left;text-decoration:none;text-indent:0;text-overflow:clip;text-shadow:none;text-transform:none;top:auto;transform:none;transition:all 0s ease 0s;unicode-bidi:normal;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:baseline;white-space:normal;width:auto;word-break:normal;word-spacing:normal;word-wrap:normal;z-index:auto;zoom:normal;filter:none !important;font-weight:400;-webkit-text-size-adjust:inherit;-webkit-font-smoothing:antialiased;-webkit-text-fill-color:currentColor}#bmi .hoverl_bc6{cursor:pointer}#bmi .label_e50._bottom_ea7 .text_468._noAd_b4d,#bmi .label_e50._left_bba .text_468._noAd_b4d,#bmi .label_e50._right_56b .text_468._noAd_b4d{margin:0 33px 0 16px}#bmi .label_e50._bottom_ea7 .text_468,#bmi .label_e50._left_bba .text_468,#bmi .label_e50._right_56b .text_468{transform:translateZ(0);margin:0 37px 0 16px;min-width:160px;visibility:visible}#bmi .label_e50 .text_468{font:inherit;text-indent:0;line-height:40px;vertical-align:top;white-space:nowrap;-webkit-font-smoothing:antialiased;visibility:visible;-webkit-backface-visibility:hidden;backface-visibility:hidden}#bmi .contentTransitionWrap_c73{-webkit-animation-name:fadeIn_d9b;animation-name:fadeIn_d9b;-webkit-animation-duration:0.15s;animation-duration:0.15s;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;-webkit-animation-timing-function:ease;animation-timing-function:ease}#bmi .leaf_2cc{position:absolute;width:32px;height:33px;z-index:6;overflow:hidden}#bmi .leaf_2cc._bottom_afb,#bmi .leaf_2cc._left_7af,#bmi .leaf_2cc._right_ff0{right:0;top:0;width:33px;border-radius:0 24px 0 0 !important}#bmi .cssLeaf_464{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2232%22%20height%3D%2240%22%20viewBox%3D%220%200%2032%2040%22%3E%0A%20%20%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%20%20%20%20%3Cpath%20fill%3D%22%23424867%22%20d%3D%22M0%200h9.02L32%2033.196V40H0z%22%2F%3E%0A%20%20%20%20%20%20%20%20%3Cpath%20fill%3D%22%2318C139%22%20d%3D%22M9%200c3.581.05%2023%205.426%2023%2033.08v.03C18.922%2030.751%209%2019.311%209%205.554V0z%22%2F%3E%0A%20%20%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A");position:absolute;height:33px;width:33px;left:1px}#bmi #bmi_support_chat *{cursor:pointer !important}#bmi #bmi_support_chat{cursor:pointer !important;opacity:1;transition:0.3s all}#bmi #bmi_support_chat:hover{opacity:0.9}#bmi *{outline:0}#bmi-preload{width:calc(50%);margin:0 auto;padding-right:20px;margin-top:50px}#bmi-preload .progress{position:relative;height:4px;display:block;width:100%;background-color:#acece6;border-radius:2px;background-clip:padding-box;margin:0.5rem 0 1rem 0;overflow:hidden}#bmi-preload .progress .determinate{position:absolute;background-color:inherit;top:0;bottom:0;background-color:#26a69a;transition:width .3s linear}#bmi-preload .progress .indeterminate{background-color:#26a69a}#bmi-preload .progress .indeterminate:before{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}#bmi-preload .progress .indeterminate:after{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;-webkit-animation-delay:1.15s;animation-delay:1.15s}@-webkit-keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@-webkit-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}.tooltipster-fall,.tooltipster-grow.tooltipster-show{-webkit-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);-moz-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);-ms-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);-o-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15)}.tooltipster-base{display:flex;pointer-events:none;position:absolute}.tooltipster-box{flex:1 1 auto}.tooltipster-content{color:#333;box-sizing:border-box;max-height:100%;max-width:100%;overflow:hidden;line-height:21px !important}.tooltipster-ruler{bottom:0;left:0;overflow:hidden;position:fixed;right:0;top:0;visibility:hidden}.tooltipster-fade{opacity:0;-webkit-transition-property:opacity;-moz-transition-property:opacity;-o-transition-property:opacity;-ms-transition-property:opacity;transition-property:opacity}.tooltipster-fade.tooltipster-show{opacity:1}.tooltipster-grow{-webkit-transform:scale(0, 0);-moz-transform:scale(0, 0);-o-transform:scale(0, 0);-ms-transform:scale(0, 0);transform:scale(0, 0);-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform;-webkit-backface-visibility:hidden}.tooltipster-grow.tooltipster-show{-webkit-transform:scale(1, 1);-moz-transform:scale(1, 1);-o-transform:scale(1, 1);-ms-transform:scale(1, 1);transform:scale(1, 1);-webkit-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15)}.tooltipster-swing{opacity:0;-webkit-transform:rotateZ(4deg);-moz-transform:rotateZ(4deg);-o-transform:rotateZ(4deg);-ms-transform:rotateZ(4deg);transform:rotateZ(4deg);-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform}.tooltipster-swing.tooltipster-show{opacity:1;-webkit-transform:rotateZ(0);-moz-transform:rotateZ(0);-o-transform:rotateZ(0);-ms-transform:rotateZ(0);transform:rotateZ(0);-webkit-transition-timing-function:cubic-bezier(0.23, 0.635, 0.495, 1);-webkit-transition-timing-function:cubic-bezier(0.23, 0.635, 0.495, 2.4);-moz-transition-timing-function:cubic-bezier(0.23, 0.635, 0.495, 2.4);-ms-transition-timing-function:cubic-bezier(0.23, 0.635, 0.495, 2.4);-o-transition-timing-function:cubic-bezier(0.23, 0.635, 0.495, 2.4);transition-timing-function:cubic-bezier(0.23, 0.635, 0.495, 2.4)}.tooltipster-fall{-webkit-transition-property:top;-moz-transition-property:top;-o-transition-property:top;-ms-transition-property:top;transition-property:top;-webkit-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15)}.tooltipster-fall.tooltipster-initial{top:0 !important}.tooltipster-fall.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;top:0 !important;opacity:0}.tooltipster-slide{-webkit-transition-property:left;-moz-transition-property:left;-o-transition-property:left;-ms-transition-property:left;transition-property:left;-webkit-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);-webkit-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);-moz-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);-ms-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);-o-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15)}.tooltipster-slide.tooltipster-initial{left:-40px !important}.tooltipster-slide.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;left:0 !important;opacity:0}@keyframes tooltipster-fading{0%{opacity:0}100%{opacity:1}}.tooltipster-update-fade{animation:tooltipster-fading 0.4s}@keyframes tooltipster-rotating{25%{transform:rotate(-2deg)}75%{transform:rotate(2deg)}100%{transform:rotate(0)}}.tooltipster-update-rotate{animation:tooltipster-rotating 0.6s}@keyframes tooltipster-scaling{50%{transform:scale(1.1)}100%{transform:scale(1)}}.tooltipster-update-scale{animation:tooltipster-scaling 0.6s}.tooltipster-sidetip .tooltipster-box{background:#fff;border-radius:10px}.tooltipster-sidetip.tooltipster-bottom .tooltipster-box{margin-top:8px}.tooltipster-sidetip.tooltipster-left .tooltipster-box{margin-right:8px}.tooltipster-sidetip.tooltipster-right .tooltipster-box{margin-left:8px}.tooltipster-sidetip.tooltipster-top .tooltipster-box{margin-bottom:8px}.tooltipster-sidetip .tooltipster-content{border-radius:10px !important;font-size:15px;line-height:18px;padding:16px 20px !important;font-family:'Montserrat', sans-serif !important}.tooltipster-sidetip .tooltipster-arrow{overflow:hidden;position:absolute}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow{height:10px;margin-left:-10px;top:0;width:20px}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow{height:20px;margin-top:-10px;right:0;top:0;width:10px}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow{height:20px;margin-top:-10px;left:0;top:0;width:10px}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow{bottom:0;height:10px;margin-left:-10px;width:20px}.tooltipster-sidetip .tooltipster-arrow-background,.tooltipster-sidetip .tooltipster-arrow-border{height:0;position:absolute;width:0}.tooltipster-sidetip .tooltipster-arrow-background{border:10px solid transparent}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-background{border-bottom-color:#fff;left:0;top:3px}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-background{border-left-color:#fff;left:-3px;top:0}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-background{border-right-color:#fff;left:3px;top:0}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background{border-top-color:#fff;left:0;top:-3px}.tooltipster-sidetip .tooltipster-arrow-border{border:10px solid transparent;left:0;top:0}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-border{border-bottom-color:#fff}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-border{border-left-color:#fff}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-border{border-right-color:#fff}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-border{border-top-color:#fff}.tooltipster-sidetip .tooltipster-arrow-uncropped{position:relative}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-uncropped{top:-10px}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-uncropped{left:-10px}.bmi-tt-default-customized .tooltipster-box{background:#2b8984 !important}.bmi-tt-default-customized .tooltipster-content{background:#2b8984 !important;color:white;padding:16px 20px !important;font-weight:500}.bmi-tt-default-customized.tooltipster-bottom .tooltipster-arrow-background{border-bottom-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-left .tooltipster-arrow-background{border-left-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-right .tooltipster-arrow-background{border-right-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-top .tooltipster-arrow-background{border-top-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-top .tooltipster-arrow-border{border-top-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-bottom .tooltipster-arrow-border{border-bottom-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-right .tooltipster-arrow-border{border-right-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-left .tooltipster-arrow-border{border-left-color:#2b8984 !important}.bmi-tooltip-premium-css{text-align:center;width:350px}.bmi-premium-element *{cursor:not-allowed !important;border-color:rgba(198,201,206,0.5) !important}.bmi-tt-default a{color:white !important}.bmi-tt-banner{width:350px}.bmi-tt-center{text-align:center}.bmi-info-icon{position:absolute;top:calc(50% - 8px);width:16px;height:16px;background:url("../images/info-min.png");display:inline-block;line-height:16px;background-repeat:no-repeat;background-position:center;background-size:cover;margin:0;margin-left:3px;cursor:help}.toplevel_page_backup-migration .wp-menu-image img{padding:0 !important;height:20px;margin-top:7px}.toplevel_page_backup-migration.current .wp-menu-image img{filter:brightness(0) invert(1) grayscale(1) !important;opacity:0.85 !important}
|
admin/js/backup-migration.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(t,e){"function"==typeof define&&define.amd?define(["jquery"],function(t){return e(t)}):"object"==typeof exports?module.exports=e(require("jquery")):e(jQuery)}(0,function(t){var e={animation:"fade",animationDuration:350,content:null,contentAsHTML:!1,contentCloning:!1,debug:!0,delay:300,delayTouch:[300,500],functionInit:null,functionBefore:null,functionReady:null,functionAfter:null,functionFormat:null,IEmin:6,interactive:!1,multiple:!1,parent:null,plugins:["sideTip"],repositionOnScroll:!1,restoration:"none",selfDestruction:!0,theme:[],timer:0,trackerInterval:500,trackOrigin:!1,trackTooltip:!1,trigger:"hover",triggerClose:{click:!1,mouseleave:!1,originClick:!1,scroll:!1,tap:!1,touchleave:!1},triggerOpen:{click:!1,mouseenter:!1,tap:!1,touchstart:!1},updateAnimation:"rotate",zIndex:9999999},i="undefined"!=typeof window?window:null,o={hasTouchCapability:!(!i||!("ontouchstart"in i||i.DocumentTouch&&i.document instanceof i.DocumentTouch||i.navigator.maxTouchPoints)),hasTransitions:function(){if(!i)return!1;var t=(i.document.body||i.document.documentElement).style,e="transition",o=["Moz","Webkit","Khtml","O","ms"];if("string"==typeof t[e])return!0;e=e.charAt(0).toUpperCase()+e.substr(1);for(var n=0;n<o.length;n++)if("string"==typeof t[o[n]+e])return!0;return!1}(),IE:!1,semVer:"4.2.8",window:i},n=function(){this.__$emitterPrivate=t({}),this.__$emitterPublic=t({}),this.__instancesLatestArr=[],this.__plugins={},this._env=o};function r(t){this.$container,this.constraints=null,this.__$tooltip,this.__init(t)}function s(e,i){var o=!0;return t.each(e,function(t,n){if(void 0===i[t]||e[t]!==i[t])return o=!1,!1}),o}function a(e){var i=e.attr("id"),n=i?o.window.document.getElementById(i):null;return n?n===e[0]:t.contains(o.window.document.body,e[0])}n.prototype={__bridge:function(e,i,o){if(!i[o]){var n=function(){};n.prototype=e;var r=new n;r.__init&&r.__init(i),t.each(e,function(t,e){0!=t.indexOf("__")&&(i[t]||(i[t]=function(){return r[t].apply(r,Array.prototype.slice.apply(arguments))},i[t].bridged=r))}),i[o]=r}return this},__setWindow:function(t){return o.window=t,this},_getRuler:function(t){return new r(t)},_off:function(){return this.__$emitterPrivate.off.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_on:function(){return this.__$emitterPrivate.on.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_one:function(){return this.__$emitterPrivate.one.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_plugin:function(e){if("string"==typeof e){var i=e,o=null;return i.indexOf(".")>0?o=this.__plugins[i]:t.each(this.__plugins,function(t,e){if(e.name.substring(e.name.length-i.length-1)=="."+i)return o=e,!1}),o}if(e.name.indexOf(".")<0)throw new Error("Plugins must be namespaced");return this.__plugins[e.name]=e,e.core&&this.__bridge(e.core,this,e.name),this},_trigger:function(){var t=Array.prototype.slice.apply(arguments);return"string"==typeof t[0]&&(t[0]={type:t[0]}),this.__$emitterPrivate.trigger.apply(this.__$emitterPrivate,t),this.__$emitterPublic.trigger.apply(this.__$emitterPublic,t),this},instances:function(e){var i=[];return t(e||".tooltipstered").each(function(){var e=t(this),o=e.data("tooltipster-ns");o&&t.each(o,function(t,o){i.push(e.data(o))})}),i},instancesLatest:function(){return this.__instancesLatestArr},off:function(){return this.__$emitterPublic.off.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},on:function(){return this.__$emitterPublic.on.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},one:function(){return this.__$emitterPublic.one.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},origins:function(e){return t((e?e+" ":"")+".tooltipstered").toArray()},setDefaults:function(i){return t.extend(e,i),this},triggerHandler:function(){return this.__$emitterPublic.triggerHandler.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this}},t.tooltipster=new n,t.Tooltipster=function(e,i){this.__callbacks={close:[],open:[]},this.__closingTime,this.__Content,this.__contentBcr,this.__destroyed=!1,this.__$emitterPrivate=t({}),this.__$emitterPublic=t({}),this.__enabled=!0,this.__garbageCollector,this.__Geometry,this.__lastPosition,this.__namespace="tooltipster-"+Math.round(1e6*Math.random()),this.__options,this.__$originParents,this.__pointerIsOverOrigin=!1,this.__previousThemes=[],this.__state="closed",this.__timeouts={close:[],open:null},this.__touchEvents=[],this.__tracker=null,this._$origin,this._$tooltip,this.__init(e,i)},t.Tooltipster.prototype={__init:function(i,n){var r=this;if(r._$origin=t(i),r.__options=t.extend(!0,{},e,n),r.__optionsFormat(),!o.IE||o.IE>=r.__options.IEmin){var s=null;if(void 0===r._$origin.data("tooltipster-initialTitle")&&(void 0===(s=r._$origin.attr("title"))&&(s=null),r._$origin.data("tooltipster-initialTitle",s)),null!==r.__options.content)r.__contentSet(r.__options.content);else{var a,l=r._$origin.attr("data-tooltip-content");l&&(a=t(l)),a&&a[0]?r.__contentSet(a.first()):r.__contentSet(s)}r._$origin.removeAttr("title").addClass("tooltipstered"),r.__prepareOrigin(),r.__prepareGC(),t.each(r.__options.plugins,function(t,e){r._plug(e)}),o.hasTouchCapability&&t(o.window.document.body).on("touchmove."+r.__namespace+"-triggerOpen",function(t){r._touchRecordEvent(t)}),r._on("created",function(){r.__prepareTooltip()})._on("repositioned",function(t){r.__lastPosition=t.position})}else r.__options.disabled=!0},__contentInsert:function(){var t=this._$tooltip.find(".tooltipster-content"),e=this.__Content;return this._trigger({type:"format",content:this.__Content,format:function(t){e=t}}),this.__options.functionFormat&&(e=this.__options.functionFormat.call(this,this,{origin:this._$origin[0]},this.__Content)),"string"!=typeof e||this.__options.contentAsHTML?t.empty().append(e):t.text(e),this},__contentSet:function(e){return e instanceof t&&this.__options.contentCloning&&(e=e.clone(!0)),this.__Content=e,this._trigger({type:"updated",content:e}),this},__destroyError:function(){throw new Error("This tooltip has been destroyed and cannot execute your method call.")},__geometry:function(){var e=this._$origin,i=this._$origin.is("area");if(i){var n=this._$origin.parent().attr("name");e=t('img[usemap="#'+n+'"]')}var r=e[0].getBoundingClientRect(),s=t(o.window.document),a=t(o.window),l=e,c={available:{document:null,window:null},document:{size:{height:s.height(),width:s.width()}},window:{scroll:{left:o.window.scrollX||o.window.document.documentElement.scrollLeft,top:o.window.scrollY||o.window.document.documentElement.scrollTop},size:{height:a.height(),width:a.width()}},origin:{fixedLineage:!1,offset:{},size:{height:r.bottom-r.top,width:r.right-r.left},usemapImage:i?e[0]:null,windowOffset:{bottom:r.bottom,left:r.left,right:r.right,top:r.top}}};if(i){var p=this._$origin.attr("shape"),u=this._$origin.attr("coords");if(u&&(u=u.split(","),t.map(u,function(t,e){u[e]=parseInt(t)})),"default"!=p)switch(p){case"circle":var d=u[0],_=u[1],f=u[2],h=_-f,m=d-f;c.origin.size.height=2*f,c.origin.size.width=c.origin.size.height,c.origin.windowOffset.left+=m,c.origin.windowOffset.top+=h;break;case"rect":var g=u[0],b=u[1],w=u[2],v=u[3];c.origin.size.height=v-b,c.origin.size.width=w-g,c.origin.windowOffset.left+=g,c.origin.windowOffset.top+=b;break;case"poly":for(var y=0,k=0,x=0,$=0,C="even",T=0;T<u.length;T++){var O=u[T];"even"==C?(O>x&&(x=O,0===T&&(y=x)),O<y&&(y=O),C="odd"):(O>$&&($=O,1==T&&(k=$)),O<k&&(k=O),C="even")}c.origin.size.height=$-k,c.origin.size.width=x-y,c.origin.windowOffset.left+=y,c.origin.windowOffset.top+=k}}for(this._trigger({type:"geometry",edit:function(t){c.origin.size.height=t.height,c.origin.windowOffset.left=t.left,c.origin.windowOffset.top=t.top,c.origin.size.width=t.width},geometry:{height:c.origin.size.height,left:c.origin.windowOffset.left,top:c.origin.windowOffset.top,width:c.origin.size.width}}),c.origin.windowOffset.right=c.origin.windowOffset.left+c.origin.size.width,c.origin.windowOffset.bottom=c.origin.windowOffset.top+c.origin.size.height,c.origin.offset.left=c.origin.windowOffset.left+c.window.scroll.left,c.origin.offset.top=c.origin.windowOffset.top+c.window.scroll.top,c.origin.offset.bottom=c.origin.offset.top+c.origin.size.height,c.origin.offset.right=c.origin.offset.left+c.origin.size.width,c.available.document={bottom:{height:c.document.size.height-c.origin.offset.bottom,width:c.document.size.width},left:{height:c.document.size.height,width:c.origin.offset.left},right:{height:c.document.size.height,width:c.document.size.width-c.origin.offset.right},top:{height:c.origin.offset.top,width:c.document.size.width}},c.available.window={bottom:{height:Math.max(c.window.size.height-Math.max(c.origin.windowOffset.bottom,0),0),width:c.window.size.width},left:{height:c.window.size.height,width:Math.max(c.origin.windowOffset.left,0)},right:{height:c.window.size.height,width:Math.max(c.window.size.width-Math.max(c.origin.windowOffset.right,0),0)},top:{height:Math.max(c.origin.windowOffset.top,0),width:c.window.size.width}};"html"!=l[0].tagName.toLowerCase();){if("fixed"==l.css("position")){c.origin.fixedLineage=!0;break}l=l.parent()}return c},__optionsFormat:function(){return"number"==typeof this.__options.animationDuration&&(this.__options.animationDuration=[this.__options.animationDuration,this.__options.animationDuration]),"number"==typeof this.__options.delay&&(this.__options.delay=[this.__options.delay,this.__options.delay]),"number"==typeof this.__options.delayTouch&&(this.__options.delayTouch=[this.__options.delayTouch,this.__options.delayTouch]),"string"==typeof this.__options.theme&&(this.__options.theme=[this.__options.theme]),null===this.__options.parent?this.__options.parent=t(o.window.document.body):"string"==typeof this.__options.parent&&(this.__options.parent=t(this.__options.parent)),"hover"==this.__options.trigger?(this.__options.triggerOpen={mouseenter:!0,touchstart:!0},this.__options.triggerClose={mouseleave:!0,originClick:!0,touchleave:!0}):"click"==this.__options.trigger&&(this.__options.triggerOpen={click:!0,tap:!0},this.__options.triggerClose={click:!0,tap:!0}),this._trigger("options"),this},__prepareGC:function(){var e=this;return e.__options.selfDestruction?e.__garbageCollector=setInterval(function(){var i=(new Date).getTime();e.__touchEvents=t.grep(e.__touchEvents,function(t,e){return i-t.time>6e4}),a(e._$origin)||e.close(function(){e.destroy()})},2e4):clearInterval(e.__garbageCollector),e},__prepareOrigin:function(){var t=this;if(t._$origin.off("."+t.__namespace+"-triggerOpen"),o.hasTouchCapability&&t._$origin.on("touchstart."+t.__namespace+"-triggerOpen touchend."+t.__namespace+"-triggerOpen touchcancel."+t.__namespace+"-triggerOpen",function(e){t._touchRecordEvent(e)}),t.__options.triggerOpen.click||t.__options.triggerOpen.tap&&o.hasTouchCapability){var e="";t.__options.triggerOpen.click&&(e+="click."+t.__namespace+"-triggerOpen "),t.__options.triggerOpen.tap&&o.hasTouchCapability&&(e+="touchend."+t.__namespace+"-triggerOpen"),t._$origin.on(e,function(e){t._touchIsMeaningfulEvent(e)&&t._open(e)})}if(t.__options.triggerOpen.mouseenter||t.__options.triggerOpen.touchstart&&o.hasTouchCapability){e="";t.__options.triggerOpen.mouseenter&&(e+="mouseenter."+t.__namespace+"-triggerOpen "),t.__options.triggerOpen.touchstart&&o.hasTouchCapability&&(e+="touchstart."+t.__namespace+"-triggerOpen"),t._$origin.on(e,function(e){!t._touchIsTouchEvent(e)&&t._touchIsEmulatedEvent(e)||(t.__pointerIsOverOrigin=!0,t._openShortly(e))})}if(t.__options.triggerClose.mouseleave||t.__options.triggerClose.touchleave&&o.hasTouchCapability){e="";t.__options.triggerClose.mouseleave&&(e+="mouseleave."+t.__namespace+"-triggerOpen "),t.__options.triggerClose.touchleave&&o.hasTouchCapability&&(e+="touchend."+t.__namespace+"-triggerOpen touchcancel."+t.__namespace+"-triggerOpen"),t._$origin.on(e,function(e){t._touchIsMeaningfulEvent(e)&&(t.__pointerIsOverOrigin=!1)})}return t},__prepareTooltip:function(){var e=this,i=e.__options.interactive?"auto":"";return e._$tooltip.attr("id",e.__namespace).css({"pointer-events":i,zIndex:e.__options.zIndex}),t.each(e.__previousThemes,function(t,i){e._$tooltip.removeClass(i)}),t.each(e.__options.theme,function(t,i){e._$tooltip.addClass(i)}),e.__previousThemes=t.merge([],e.__options.theme),e},__scrollHandler:function(e){if(this.__options.triggerClose.scroll)this._close(e);else if(a(this._$origin)&&a(this._$tooltip)){var i=null;if(e.target===o.window.document)this.__Geometry.origin.fixedLineage||this.__options.repositionOnScroll&&this.reposition(e);else{i=this.__geometry();var n=!1;if("fixed"!=this._$origin.css("position")&&this.__$originParents.each(function(e,o){var r=t(o),s=r.css("overflow-x"),a=r.css("overflow-y");if("visible"!=s||"visible"!=a){var l=o.getBoundingClientRect();if("visible"!=s&&(i.origin.windowOffset.left<l.left||i.origin.windowOffset.right>l.right))return n=!0,!1;if("visible"!=a&&(i.origin.windowOffset.top<l.top||i.origin.windowOffset.bottom>l.bottom))return n=!0,!1}if("fixed"==r.css("position"))return!1}),n)this._$tooltip.css("visibility","hidden");else if(this._$tooltip.css("visibility","visible"),this.__options.repositionOnScroll)this.reposition(e);else{var r=i.origin.offset.left-this.__Geometry.origin.offset.left,s=i.origin.offset.top-this.__Geometry.origin.offset.top;this._$tooltip.css({left:this.__lastPosition.coord.left+r,top:this.__lastPosition.coord.top+s})}}this._trigger({type:"scroll",event:e,geo:i})}return this},__stateSet:function(t){return this.__state=t,this._trigger({type:"state",state:t}),this},__timeoutsClear:function(){return clearTimeout(this.__timeouts.open),this.__timeouts.open=null,t.each(this.__timeouts.close,function(t,e){clearTimeout(e)}),this.__timeouts.close=[],this},__trackerStart:function(){var t=this,e=t._$tooltip.find(".tooltipster-content");return t.__options.trackTooltip&&(t.__contentBcr=e[0].getBoundingClientRect()),t.__tracker=setInterval(function(){if(a(t._$origin)&&a(t._$tooltip)){if(t.__options.trackOrigin){var i=t.__geometry(),o=!1;s(i.origin.size,t.__Geometry.origin.size)&&(t.__Geometry.origin.fixedLineage?s(i.origin.windowOffset,t.__Geometry.origin.windowOffset)&&(o=!0):s(i.origin.offset,t.__Geometry.origin.offset)&&(o=!0)),o||(t.__options.triggerClose.mouseleave?t._close():t.reposition())}if(t.__options.trackTooltip){var n=e[0].getBoundingClientRect();n.height===t.__contentBcr.height&&n.width===t.__contentBcr.width||(t.reposition(),t.__contentBcr=n)}}else t._close()},t.__options.trackerInterval),t},_close:function(e,i,n){var r=this,s=!0;if(r._trigger({type:"close",event:e,stop:function(){s=!1}}),s||n){i&&r.__callbacks.close.push(i),r.__callbacks.open=[],r.__timeoutsClear();var a=function(){t.each(r.__callbacks.close,function(t,i){i.call(r,r,{event:e,origin:r._$origin[0]})}),r.__callbacks.close=[]};if("closed"!=r.__state){var l=!0,c=(new Date).getTime()+r.__options.animationDuration[1];if("disappearing"==r.__state&&c>r.__closingTime&&r.__options.animationDuration[1]>0&&(l=!1),l){r.__closingTime=c,"disappearing"!=r.__state&&r.__stateSet("disappearing");var p=function(){clearInterval(r.__tracker),r._trigger({type:"closing",event:e}),r._$tooltip.off("."+r.__namespace+"-triggerClose").removeClass("tooltipster-dying"),t(o.window).off("."+r.__namespace+"-triggerClose"),r.__$originParents.each(function(e,i){t(i).off("scroll."+r.__namespace+"-triggerClose")}),r.__$originParents=null,t(o.window.document.body).off("."+r.__namespace+"-triggerClose"),r._$origin.off("."+r.__namespace+"-triggerClose"),r._off("dismissable"),r.__stateSet("closed"),r._trigger({type:"after",event:e}),r.__options.functionAfter&&r.__options.functionAfter.call(r,r,{event:e,origin:r._$origin[0]}),a()};o.hasTransitions?(r._$tooltip.css({"-moz-animation-duration":r.__options.animationDuration[1]+"ms","-ms-animation-duration":r.__options.animationDuration[1]+"ms","-o-animation-duration":r.__options.animationDuration[1]+"ms","-webkit-animation-duration":r.__options.animationDuration[1]+"ms","animation-duration":r.__options.animationDuration[1]+"ms","transition-duration":r.__options.animationDuration[1]+"ms"}),r._$tooltip.clearQueue().removeClass("tooltipster-show").addClass("tooltipster-dying"),r.__options.animationDuration[1]>0&&r._$tooltip.delay(r.__options.animationDuration[1]),r._$tooltip.queue(p)):r._$tooltip.stop().fadeOut(r.__options.animationDuration[1],p)}}else a()}return r},_off:function(){return this.__$emitterPrivate.off.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_on:function(){return this.__$emitterPrivate.on.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_one:function(){return this.__$emitterPrivate.one.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_open:function(e,i){var n=this;if(!n.__destroying&&a(n._$origin)&&n.__enabled){var r=!0;if("closed"==n.__state&&(n._trigger({type:"before",event:e,stop:function(){r=!1}}),r&&n.__options.functionBefore&&(r=n.__options.functionBefore.call(n,n,{event:e,origin:n._$origin[0]}))),!1!==r&&null!==n.__Content){i&&n.__callbacks.open.push(i),n.__callbacks.close=[],n.__timeoutsClear();var s,l=function(){"stable"!=n.__state&&n.__stateSet("stable"),t.each(n.__callbacks.open,function(t,e){e.call(n,n,{origin:n._$origin[0],tooltip:n._$tooltip[0]})}),n.__callbacks.open=[]};if("closed"!==n.__state)s=0,"disappearing"===n.__state?(n.__stateSet("appearing"),o.hasTransitions?(n._$tooltip.clearQueue().removeClass("tooltipster-dying").addClass("tooltipster-show"),n.__options.animationDuration[0]>0&&n._$tooltip.delay(n.__options.animationDuration[0]),n._$tooltip.queue(l)):n._$tooltip.stop().fadeIn(l)):"stable"==n.__state&&l();else{if(n.__stateSet("appearing"),s=n.__options.animationDuration[0],n.__contentInsert(),n.reposition(e,!0),o.hasTransitions?(n._$tooltip.addClass("tooltipster-"+n.__options.animation).addClass("tooltipster-initial").css({"-moz-animation-duration":n.__options.animationDuration[0]+"ms","-ms-animation-duration":n.__options.animationDuration[0]+"ms","-o-animation-duration":n.__options.animationDuration[0]+"ms","-webkit-animation-duration":n.__options.animationDuration[0]+"ms","animation-duration":n.__options.animationDuration[0]+"ms","transition-duration":n.__options.animationDuration[0]+"ms"}),setTimeout(function(){"closed"!=n.__state&&(n._$tooltip.addClass("tooltipster-show").removeClass("tooltipster-initial"),n.__options.animationDuration[0]>0&&n._$tooltip.delay(n.__options.animationDuration[0]),n._$tooltip.queue(l))},0)):n._$tooltip.css("display","none").fadeIn(n.__options.animationDuration[0],l),n.__trackerStart(),t(o.window).on("resize."+n.__namespace+"-triggerClose",function(e){var i=t(document.activeElement);(i.is("input")||i.is("textarea"))&&t.contains(n._$tooltip[0],i[0])||n.reposition(e)}).on("scroll."+n.__namespace+"-triggerClose",function(t){n.__scrollHandler(t)}),n.__$originParents=n._$origin.parents(),n.__$originParents.each(function(e,i){t(i).on("scroll."+n.__namespace+"-triggerClose",function(t){n.__scrollHandler(t)})}),n.__options.triggerClose.mouseleave||n.__options.triggerClose.touchleave&&o.hasTouchCapability){n._on("dismissable",function(t){t.dismissable?t.delay?(d=setTimeout(function(){n._close(t.event)},t.delay),n.__timeouts.close.push(d)):n._close(t):clearTimeout(d)});var c=n._$origin,p="",u="",d=null;n.__options.interactive&&(c=c.add(n._$tooltip)),n.__options.triggerClose.mouseleave&&(p+="mouseenter."+n.__namespace+"-triggerClose ",u+="mouseleave."+n.__namespace+"-triggerClose "),n.__options.triggerClose.touchleave&&o.hasTouchCapability&&(p+="touchstart."+n.__namespace+"-triggerClose",u+="touchend."+n.__namespace+"-triggerClose touchcancel."+n.__namespace+"-triggerClose"),c.on(u,function(t){if(n._touchIsTouchEvent(t)||!n._touchIsEmulatedEvent(t)){var e="mouseleave"==t.type?n.__options.delay:n.__options.delayTouch;n._trigger({delay:e[1],dismissable:!0,event:t,type:"dismissable"})}}).on(p,function(t){!n._touchIsTouchEvent(t)&&n._touchIsEmulatedEvent(t)||n._trigger({dismissable:!1,event:t,type:"dismissable"})})}n.__options.triggerClose.originClick&&n._$origin.on("click."+n.__namespace+"-triggerClose",function(t){n._touchIsTouchEvent(t)||n._touchIsEmulatedEvent(t)||n._close(t)}),(n.__options.triggerClose.click||n.__options.triggerClose.tap&&o.hasTouchCapability)&&setTimeout(function(){if("closed"!=n.__state){var e="",i=t(o.window.document.body);n.__options.triggerClose.click&&(e+="click."+n.__namespace+"-triggerClose "),n.__options.triggerClose.tap&&o.hasTouchCapability&&(e+="touchend."+n.__namespace+"-triggerClose"),i.on(e,function(e){n._touchIsMeaningfulEvent(e)&&(n._touchRecordEvent(e),n.__options.interactive&&t.contains(n._$tooltip[0],e.target)||n._close(e))}),n.__options.triggerClose.tap&&o.hasTouchCapability&&i.on("touchstart."+n.__namespace+"-triggerClose",function(t){n._touchRecordEvent(t)})}},0),n._trigger("ready"),n.__options.functionReady&&n.__options.functionReady.call(n,n,{origin:n._$origin[0],tooltip:n._$tooltip[0]})}if(n.__options.timer>0){d=setTimeout(function(){n._close()},n.__options.timer+s);n.__timeouts.close.push(d)}}}return n},_openShortly:function(t){var e=this,i=!0;if("stable"!=e.__state&&"appearing"!=e.__state&&!e.__timeouts.open&&(e._trigger({type:"start",event:t,stop:function(){i=!1}}),i)){var o=0==t.type.indexOf("touch")?e.__options.delayTouch:e.__options.delay;o[0]?e.__timeouts.open=setTimeout(function(){e.__timeouts.open=null,e.__pointerIsOverOrigin&&e._touchIsMeaningfulEvent(t)?(e._trigger("startend"),e._open(t)):e._trigger("startcancel")},o[0]):(e._trigger("startend"),e._open(t))}return e},_optionsExtract:function(e,i){var o=this,n=t.extend(!0,{},i),r=o.__options[e];return r||(r={},t.each(i,function(t,e){var i=o.__options[t];void 0!==i&&(r[t]=i)})),t.each(n,function(e,i){void 0!==r[e]&&("object"!=typeof i||i instanceof Array||null==i||"object"!=typeof r[e]||r[e]instanceof Array||null==r[e]?n[e]=r[e]:t.extend(n[e],r[e]))}),n},_plug:function(e){var i=t.tooltipster._plugin(e);if(!i)throw new Error('The "'+e+'" plugin is not defined');return i.instance&&t.tooltipster.__bridge(i.instance,this,i.name),this},_touchIsEmulatedEvent:function(t){for(var e=!1,i=(new Date).getTime(),o=this.__touchEvents.length-1;o>=0;o--){var n=this.__touchEvents[o];if(!(i-n.time<500))break;n.target===t.target&&(e=!0)}return e},_touchIsMeaningfulEvent:function(t){return this._touchIsTouchEvent(t)&&!this._touchSwiped(t.target)||!this._touchIsTouchEvent(t)&&!this._touchIsEmulatedEvent(t)},_touchIsTouchEvent:function(t){return 0==t.type.indexOf("touch")},_touchRecordEvent:function(t){return this._touchIsTouchEvent(t)&&(t.time=(new Date).getTime(),this.__touchEvents.push(t)),this},_touchSwiped:function(t){for(var e=!1,i=this.__touchEvents.length-1;i>=0;i--){var o=this.__touchEvents[i];if("touchmove"==o.type){e=!0;break}if("touchstart"==o.type&&t===o.target)break}return e},_trigger:function(){var e=Array.prototype.slice.apply(arguments);return"string"==typeof e[0]&&(e[0]={type:e[0]}),e[0].instance=this,e[0].origin=this._$origin?this._$origin[0]:null,e[0].tooltip=this._$tooltip?this._$tooltip[0]:null,this.__$emitterPrivate.trigger.apply(this.__$emitterPrivate,e),t.tooltipster._trigger.apply(t.tooltipster,e),this.__$emitterPublic.trigger.apply(this.__$emitterPublic,e),this},_unplug:function(e){var i=this;if(i[e]){var o=t.tooltipster._plugin(e);o.instance&&t.each(o.instance,function(t,o){i[t]&&i[t].bridged===i[e]&&delete i[t]}),i[e].__destroy&&i[e].__destroy(),delete i[e]}return i},close:function(t){return this.__destroyed?this.__destroyError():this._close(null,t),this},content:function(t){var e=this;if(void 0===t)return e.__Content;if(e.__destroyed)e.__destroyError();else if(e.__contentSet(t),null!==e.__Content){if("closed"!==e.__state&&(e.__contentInsert(),e.reposition(),e.__options.updateAnimation))if(o.hasTransitions){var i=e.__options.updateAnimation;e._$tooltip.addClass("tooltipster-update-"+i),setTimeout(function(){"closed"!=e.__state&&e._$tooltip.removeClass("tooltipster-update-"+i)},1e3)}else e._$tooltip.fadeTo(200,.5,function(){"closed"!=e.__state&&e._$tooltip.fadeTo(200,1)})}else e._close();return e},destroy:function(){var e=this;if(e.__destroyed)e.__destroyError();else{"closed"!=e.__state?e.option("animationDuration",0)._close(null,null,!0):e.__timeoutsClear(),e._trigger("destroy"),e.__destroyed=!0,e._$origin.removeData(e.__namespace).off("."+e.__namespace+"-triggerOpen"),t(o.window.document.body).off("."+e.__namespace+"-triggerOpen");var i=e._$origin.data("tooltipster-ns");if(i)if(1===i.length){var n=null;"previous"==e.__options.restoration?n=e._$origin.data("tooltipster-initialTitle"):"current"==e.__options.restoration&&(n="string"==typeof e.__Content?e.__Content:t("<div></div>").append(e.__Content).html()),n&&e._$origin.attr("title",n),e._$origin.removeClass("tooltipstered"),e._$origin.removeData("tooltipster-ns").removeData("tooltipster-initialTitle")}else i=t.grep(i,function(t,i){return t!==e.__namespace}),e._$origin.data("tooltipster-ns",i);e._trigger("destroyed"),e._off(),e.off(),e.__Content=null,e.__$emitterPrivate=null,e.__$emitterPublic=null,e.__options.parent=null,e._$origin=null,e._$tooltip=null,t.tooltipster.__instancesLatestArr=t.grep(t.tooltipster.__instancesLatestArr,function(t,i){return e!==t}),clearInterval(e.__garbageCollector)}return e},disable:function(){return this.__destroyed?(this.__destroyError(),this):(this._close(),this.__enabled=!1,this)},elementOrigin:function(){if(!this.__destroyed)return this._$origin[0];this.__destroyError()},elementTooltip:function(){return this._$tooltip?this._$tooltip[0]:null},enable:function(){return this.__enabled=!0,this},hide:function(t){return this.close(t)},instance:function(){return this},off:function(){return this.__destroyed||this.__$emitterPublic.off.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},on:function(){return this.__destroyed?this.__destroyError():this.__$emitterPublic.on.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},one:function(){return this.__destroyed?this.__destroyError():this.__$emitterPublic.one.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},open:function(t){return this.__destroyed?this.__destroyError():this._open(null,t),this},option:function(e,i){return void 0===i?this.__options[e]:(this.__destroyed?this.__destroyError():(this.__options[e]=i,this.__optionsFormat(),t.inArray(e,["trigger","triggerClose","triggerOpen"])>=0&&this.__prepareOrigin(),"selfDestruction"===e&&this.__prepareGC()),this)},reposition:function(t,e){return this.__destroyed?this.__destroyError():"closed"!=this.__state&&a(this._$origin)&&(e||a(this._$tooltip))&&(e||this._$tooltip.detach(),this.__Geometry=this.__geometry(),this._trigger({type:"reposition",event:t,helper:{geo:this.__Geometry}})),this},show:function(t){return this.open(t)},status:function(){return{destroyed:this.__destroyed,enabled:this.__enabled,open:"closed"!==this.__state,state:this.__state}},triggerHandler:function(){return this.__destroyed?this.__destroyError():this.__$emitterPublic.triggerHandler.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this}},t.fn.tooltipster=function(){var i=Array.prototype.slice.apply(arguments);if(0===this.length)return this;if("string"==typeof i[0]){var o="#*$~&";return this.each(function(){var e=t(this).data("tooltipster-ns"),n=e?t(this).data(e[0]):null;if(!n)throw new Error("You called Tooltipster's \""+i[0]+'" method on an uninitialized element');if("function"!=typeof n[i[0]])throw new Error('Unknown method "'+i[0]+'"');this.length>1&&"content"==i[0]&&(i[1]instanceof t||"object"==typeof i[1]&&null!=i[1]&&i[1].tagName)&&!n.__options.contentCloning&&n.__options.debug;var r=n[i[0]](i[1],i[2]);if(r!==n||"instance"===i[0])return o=r,!1}),"#*$~&"!==o?o:this}t.tooltipster.__instancesLatestArr=[];var n=i[0]&&void 0!==i[0].multiple,r=n&&i[0].multiple||!n&&e.multiple,s=i[0]&&void 0!==i[0].content,a=s&&i[0].content||!s&&e.content,l=i[0]&&void 0!==i[0].contentCloning,c=(l&&i[0].contentCloning,i[0]&&void 0!==i[0].debug);c&&i[0].debug;return this.length>1&&(a instanceof t||"object"==typeof a&&null!=a&&a.tagName),this.each(function(){var e=!1,o=t(this),n=o.data("tooltipster-ns"),s=null;n?r&&(e=!0):e=!0,e&&(s=new t.Tooltipster(this,i[0]),n||(n=[]),n.push(s.__namespace),o.data("tooltipster-ns",n),o.data(s.__namespace,s),s.__options.functionInit&&s.__options.functionInit.call(s,s,{origin:this}),s._trigger("init")),t.tooltipster.__instancesLatestArr.push(s)}),this},r.prototype={__init:function(e){this.__$tooltip=e,this.__$tooltip.css({left:0,overflow:"hidden",position:"absolute",top:0}).find(".tooltipster-content").css("overflow","auto"),this.$container=t('<div class="tooltipster-ruler"></div>').append(this.__$tooltip).appendTo(o.window.document.body)},__forceRedraw:function(){var t=this.__$tooltip.parent();this.__$tooltip.detach(),this.__$tooltip.appendTo(t)},constrain:function(t,e){return this.constraints={width:t,height:e},this.__$tooltip.css({display:"block",height:"",overflow:"auto",width:t}),this},destroy:function(){this.__$tooltip.detach().find(".tooltipster-content").css({display:"",overflow:""}),this.$container.remove()},free:function(){return this.constraints=null,this.__$tooltip.css({display:"",height:"",overflow:"visible",width:""}),this},measure:function(){this.__forceRedraw();var t=this.__$tooltip[0].getBoundingClientRect(),e={size:{height:t.height||t.bottom-t.top,width:t.width||t.right-t.left}};if(this.constraints){var i=this.__$tooltip.find(".tooltipster-content"),n=this.__$tooltip.outerHeight(),r=i[0].getBoundingClientRect(),s={height:n<=this.constraints.height,width:t.width<=this.constraints.width&&r.width>=i[0].scrollWidth-1};e.fits=s.height&&s.width}return o.IE&&o.IE<=11&&e.size.width!==o.window.document.documentElement.clientWidth&&(e.size.width=Math.ceil(e.size.width)+1),e}};var l=navigator.userAgent.toLowerCase();-1!=l.indexOf("msie")?o.IE=parseInt(l.split("msie")[1]):-1!==l.toLowerCase().indexOf("trident")&&-1!==l.indexOf(" rv:11")?o.IE=11:-1!=l.toLowerCase().indexOf("edge/")&&(o.IE=parseInt(l.toLowerCase().split("edge/")[1])),t.tooltipster._plugin({name:"tooltipster.sideTip",instance:{__defaults:function(){return{arrow:!0,distance:6,functionPosition:null,maxWidth:null,minIntersection:16,minWidth:0,position:null,side:"top",viewportAware:!0}},__init:function(t){var e=this;e.__instance=t,e.__namespace="tooltipster-sideTip-"+Math.round(1e6*Math.random()),e.__previousState="closed",e.__options,e.__optionsFormat(),e.__instance._on("state."+e.__namespace,function(t){"closed"==t.state?e.__close():"appearing"==t.state&&"closed"==e.__previousState&&e.__create(),e.__previousState=t.state}),e.__instance._on("options."+e.__namespace,function(){e.__optionsFormat()}),e.__instance._on("reposition."+e.__namespace,function(t){e.__reposition(t.event,t.helper)})},__close:function(){this.__instance.content()instanceof t&&this.__instance.content().detach(),this.__instance._$tooltip.remove(),this.__instance._$tooltip=null},__create:function(){var e=t('<div class="tooltipster-base tooltipster-sidetip"><div class="tooltipster-box"><div class="tooltipster-content"></div></div><div class="tooltipster-arrow"><div class="tooltipster-arrow-uncropped"><div class="tooltipster-arrow-border"></div><div class="tooltipster-arrow-background"></div></div></div></div>');this.__options.arrow||e.find(".tooltipster-box").css("margin",0).end().find(".tooltipster-arrow").hide(),this.__options.minWidth&&e.css("min-width",this.__options.minWidth+"px"),this.__options.maxWidth&&e.css("max-width",this.__options.maxWidth+"px"),this.__instance._$tooltip=e,this.__instance._trigger("created")},__destroy:function(){this.__instance._off("."+self.__namespace)},__optionsFormat:function(){if(this.__options=this.__instance._optionsExtract("tooltipster.sideTip",this.__defaults()),this.__options.position&&(this.__options.side=this.__options.position),"object"!=typeof this.__options.distance&&(this.__options.distance=[this.__options.distance]),this.__options.distance.length<4&&(void 0===this.__options.distance[1]&&(this.__options.distance[1]=this.__options.distance[0]),void 0===this.__options.distance[2]&&(this.__options.distance[2]=this.__options.distance[0]),void 0===this.__options.distance[3]&&(this.__options.distance[3]=this.__options.distance[1])),this.__options.distance={top:this.__options.distance[0],right:this.__options.distance[1],bottom:this.__options.distance[2],left:this.__options.distance[3]},"string"==typeof this.__options.side){this.__options.side=[this.__options.side,{top:"bottom",right:"left",bottom:"top",left:"right"}[this.__options.side]],"left"==this.__options.side[0]||"right"==this.__options.side[0]?this.__options.side.push("top","bottom"):this.__options.side.push("right","left")}6===t.tooltipster._env.IE&&!0!==this.__options.arrow&&(this.__options.arrow=!1)},__reposition:function(e,i){var o,n=this,r=n.__targetFind(i),s=[];n.__instance._$tooltip.detach();var a=n.__instance._$tooltip.clone(),l=t.tooltipster._getRuler(a),c=!1,p=n.__instance.option("animation");switch(p&&a.removeClass("tooltipster-"+p),t.each(["window","document"],function(o,p){var u=null;if(n.__instance._trigger({container:p,helper:i,satisfied:c,takeTest:function(t){u=t},results:s,type:"positionTest"}),1==u||0!=u&&0==c&&("window"!=p||n.__options.viewportAware))for(o=0;o<n.__options.side.length;o++){var d={horizontal:0,vertical:0},_=n.__options.side[o];"top"==_||"bottom"==_?d.vertical=n.__options.distance[_]:d.horizontal=n.__options.distance[_],n.__sideChange(a,_),t.each(["natural","constrained"],function(t,o){if(u=null,n.__instance._trigger({container:p,event:e,helper:i,mode:o,results:s,satisfied:c,side:_,takeTest:function(t){u=t},type:"positionTest"}),1==u||0!=u&&0==c){var a={container:p,distance:d,fits:null,mode:o,outerSize:null,side:_,size:null,target:r[_],whole:null},f=("natural"==o?l.free():l.constrain(i.geo.available[p][_].width-d.horizontal,i.geo.available[p][_].height-d.vertical)).measure();if(a.size=f.size,a.outerSize={height:f.size.height+d.vertical,width:f.size.width+d.horizontal},"natural"==o?i.geo.available[p][_].width>=a.outerSize.width&&i.geo.available[p][_].height>=a.outerSize.height?a.fits=!0:a.fits=!1:a.fits=f.fits,"window"==p&&(a.fits?a.whole="top"==_||"bottom"==_?i.geo.origin.windowOffset.right>=n.__options.minIntersection&&i.geo.window.size.width-i.geo.origin.windowOffset.left>=n.__options.minIntersection:i.geo.origin.windowOffset.bottom>=n.__options.minIntersection&&i.geo.window.size.height-i.geo.origin.windowOffset.top>=n.__options.minIntersection:a.whole=!1),s.push(a),a.whole)c=!0;else if("natural"==a.mode&&(a.fits||a.size.width<=i.geo.available[p][_].width))return!1}})}}),n.__instance._trigger({edit:function(t){s=t},event:e,helper:i,results:s,type:"positionTested"}),s.sort(function(t,e){return t.whole&&!e.whole?-1:!t.whole&&e.whole?1:t.whole&&e.whole?(i=n.__options.side.indexOf(t.side))<(o=n.__options.side.indexOf(e.side))?-1:i>o?1:"natural"==t.mode?-1:1:t.fits&&!e.fits?-1:!t.fits&&e.fits?1:t.fits&&e.fits?(i=n.__options.side.indexOf(t.side))<(o=n.__options.side.indexOf(e.side))?-1:i>o?1:"natural"==t.mode?-1:1:"document"==t.container&&"bottom"==t.side&&"natural"==t.mode?-1:1;var i,o}),(o=s[0]).coord={},o.side){case"left":case"right":o.coord.top=Math.floor(o.target-o.size.height/2);break;case"bottom":case"top":o.coord.left=Math.floor(o.target-o.size.width/2)}switch(o.side){case"left":o.coord.left=i.geo.origin.windowOffset.left-o.outerSize.width;break;case"right":o.coord.left=i.geo.origin.windowOffset.right+o.distance.horizontal;break;case"top":o.coord.top=i.geo.origin.windowOffset.top-o.outerSize.height;break;case"bottom":o.coord.top=i.geo.origin.windowOffset.bottom+o.distance.vertical}"window"==o.container?"top"==o.side||"bottom"==o.side?o.coord.left<0?i.geo.origin.windowOffset.right-this.__options.minIntersection>=0?o.coord.left=0:o.coord.left=i.geo.origin.windowOffset.right-this.__options.minIntersection-1:o.coord.left>i.geo.window.size.width-o.size.width&&(i.geo.origin.windowOffset.left+this.__options.minIntersection<=i.geo.window.size.width?o.coord.left=i.geo.window.size.width-o.size.width:o.coord.left=i.geo.origin.windowOffset.left+this.__options.minIntersection+1-o.size.width):o.coord.top<0?i.geo.origin.windowOffset.bottom-this.__options.minIntersection>=0?o.coord.top=0:o.coord.top=i.geo.origin.windowOffset.bottom-this.__options.minIntersection-1:o.coord.top>i.geo.window.size.height-o.size.height&&(i.geo.origin.windowOffset.top+this.__options.minIntersection<=i.geo.window.size.height?o.coord.top=i.geo.window.size.height-o.size.height:o.coord.top=i.geo.origin.windowOffset.top+this.__options.minIntersection+1-o.size.height):(o.coord.left>i.geo.window.size.width-o.size.width&&(o.coord.left=i.geo.window.size.width-o.size.width),o.coord.left<0&&(o.coord.left=0)),n.__sideChange(a,o.side),i.tooltipClone=a[0],i.tooltipParent=n.__instance.option("parent").parent[0],i.mode=o.mode,i.whole=o.whole,i.origin=n.__instance._$origin[0],i.tooltip=n.__instance._$tooltip[0],delete o.container,delete o.fits,delete o.mode,delete o.outerSize,delete o.whole,o.distance=o.distance.horizontal||o.distance.vertical;var u,d,_,f=t.extend(!0,{},o);if(n.__instance._trigger({edit:function(t){o=t},event:e,helper:i,position:f,type:"position"}),n.__options.functionPosition){var h=n.__options.functionPosition.call(n,n.__instance,i,f);h&&(o=h)}l.destroy(),"top"==o.side||"bottom"==o.side?(u={prop:"left",val:o.target-o.coord.left},d=o.size.width-this.__options.minIntersection):(u={prop:"top",val:o.target-o.coord.top},d=o.size.height-this.__options.minIntersection),u.val<this.__options.minIntersection?u.val=this.__options.minIntersection:u.val>d&&(u.val=d),_=i.geo.origin.fixedLineage?i.geo.origin.windowOffset:{left:i.geo.origin.windowOffset.left+i.geo.window.scroll.left,top:i.geo.origin.windowOffset.top+i.geo.window.scroll.top},o.coord={left:_.left+(o.coord.left-i.geo.origin.windowOffset.left),top:_.top+(o.coord.top-i.geo.origin.windowOffset.top)},n.__sideChange(n.__instance._$tooltip,o.side),i.geo.origin.fixedLineage?n.__instance._$tooltip.css("position","fixed"):n.__instance._$tooltip.css("position",""),n.__instance._$tooltip.css({left:o.coord.left,top:o.coord.top,height:o.size.height,width:o.size.width}).find(".tooltipster-arrow").css({left:"",top:""}).css(u.prop,u.val),n.__instance._$tooltip.appendTo(n.__instance.option("parent")),n.__instance._trigger({type:"repositioned",event:e,position:o})},__sideChange:function(t,e){t.removeClass("tooltipster-bottom").removeClass("tooltipster-left").removeClass("tooltipster-right").removeClass("tooltipster-top").addClass("tooltipster-"+e)},__targetFind:function(t){var e={},i=this.__instance._$origin[0].getClientRects();i.length>1&&(1==this.__instance._$origin.css("opacity")&&(this.__instance._$origin.css("opacity",.99),i=this.__instance._$origin[0].getClientRects(),this.__instance._$origin.css("opacity",1)));if(i.length<2)e.top=Math.floor(t.geo.origin.windowOffset.left+t.geo.origin.size.width/2),e.bottom=e.top,e.left=Math.floor(t.geo.origin.windowOffset.top+t.geo.origin.size.height/2),e.right=e.left;else{var o=i[0];e.top=Math.floor(o.left+(o.right-o.left)/2),o=i.length>2?i[Math.ceil(i.length/2)-1]:i[0],e.right=Math.floor(o.top+(o.bottom-o.top)/2),o=i[i.length-1],e.bottom=Math.floor(o.left+(o.right-o.left)/2),o=i.length>2?i[Math.ceil((i.length+1)/2)-1]:i[i.length-1],e.left=Math.floor(o.top+(o.bottom-o.top)/2)}return e}}})}),jQuery(document).ready(function($){var fchunker_upload={fchunker:function(t){$.extend(t),$.upId&&$.upUrl&&($.domHtml=$("#"+$.upId).html(),$.upInputId=$.upId+"_input")},fchunker_limitFileSize:function(t,e){for(var i=["KB","MB","GB"],o=e.toUpperCase(),n=0,r=0;r<i.length;r++){var s=o.indexOf(i[r]);if(s>-1){n=parseInt(o.substr(0,s))*Math.pow(1024,r+1);break}}return!(t.size>n)},upErrorMsg:function(t){$.upError=t},upStop:function(t){$.upError=t},upStatus:function(){return!$.upError||("function"==typeof $.upStop&&$.upStop($.upError),!1)},fchunker_getPercent:function(t,e){if(t=parseFloat(t),e=parseFloat(e),isNaN(t)||isNaN(e))return"-";return e<=0?0:Math.round(t/e*1e4)/100},fchunker_upload:function(t,e){$.upError="",$.tempFile=$("#"+$.upInputId)[0].files[0],"file"==t&&($.tempFile=e);var i=$.tempFile;if(!i)return!1;"function"==typeof $.upStart&&$.upStart();var o=i.name,n=o.lastIndexOf("."),r=o.length,s=o.substring(n+1,r);if($.upType&&(uptype=$.upType.split(","),-1==$.inArray(s,uptype)&&($.upError="Type error: Error-"+s)),$.upMaxSize&&($.fchunker_limitFileSize(i,$.upMaxSize+"MB")||($.upError="Error")),0==$.upStatus())return!1;$.taskStart=+new Date,setTimeout("jQuery.fchunker_upload_core()","100")},fchunker_upload_core:function(){var file=$.tempFile;if(!file)return!1;$.upShardSize||($.upShardSize=2);for(var filename=file.name,size=file.size,index1=filename.lastIndexOf("."),index2=filename.length,suffix=filename.substring(index1+1,index2),shardSize=1024*$.upShardSize*1024,succeed=0,shardCount=Math.ceil(size/shardSize),re=[],start,end=0,i=0;i<shardCount;++i)re[i]=[],start=i*shardSize,end=Math.min(size,start+shardSize),re[i].file_data=file.slice(start,end),re[i].file_name=filename,re[i].file_size=size;const URL=$.upUrl;var i2=0,i3=1,fcs=Array(),xhr=new XMLHttpRequest;function ajaxStack(stack){if(0!=$.upStatus()){var form=new FormData;stack[i2]&&(fcs=stack[i2],form.append("file_data",fcs.file_data),form.append("file_name",fcs.file_name),form.append("file_size",fcs.file_size),form.append("file_total",shardCount),form.append("file_index",i3),form.append("taskStart",$.taskStart),form.append("action","backup_migration"),form.append("token","bmi"),form.append("f","upload-backup"),xhr.open("POST",URL,!0),xhr.setRequestHeader("X-Requested-With","XMLHttpRequest"),xhr.setRequestHeader("HTTP_X_REQUESTED_WITH","XMLHttpRequest"),xhr.onload=function(){ajaxStack(stack)},xhr.onreadystatechange=function(){if(0!=$.upStatus()&&4==xhr.readyState&&200==xhr.status){var data=xhr.responseText?eval("("+xhr.responseText+")"):"";++succeed;var cent=$.fchunker_getPercent(succeed,shardCount);"function"==typeof $.upEvent&&$.upEvent(cent),100==cent?setTimeout(function(){"function"==typeof $.upCallBack&&$.upCallBack(data)},500):"function"==typeof $.upCallBack&&$.upCallBack(data)}},xhr.send(form),i2++,i3++,form.delete("file_data"),form.delete("file_name"),form.delete("file_size"),form.delete("file_total"),form.delete("taskStart"),form.delete("file_index"),form.delete("action"),form.delete("token"),form.delete("f"))}}ajaxStack(re),re=null,file=null}};$.extend(fchunker_upload)}),jQuery(window).on("load",function(){setTimeout(function(){jQuery("#bmi").css({opacity:0}),jQuery("#bmi-preload").css({opacity:1}),jQuery("#bmi-preload").animate({opacity:0},150,function(){jQuery("#bmi-preload").remove(),jQuery("#bmi").css({display:"block"}),jQuery.bmi.dropdowns.init(),setTimeout(function(){jQuery("#bmi").animate({opacity:1},350)},100)})},50)}),jQuery(document).ready(function(t){let e=!1;t.extend({bmi:{clipboard:function(e){try{const i=document.createElement("textarea");return i.value=e,i.setAttribute("readonly",""),i.style.position="absolute",i.style.left="-9999px",document.body.appendChild(i),i.select(),document.execCommand("copy"),document.body.removeChild(i),t.bmi.alert("success",t("#bmi-success-copy").text(),3e3),!0}catch(e){return console.log(e),t.bmi.alert("warning",t("#bmi-failed-copy").text(),3e3),!1}},alert:function(e="default",i="---",o=7e3){t(".bmi-notification-box").length<=0&&t("body").find("#bmi").prepend(t('<div class="bmi-notification-box"></div>')),e="default"==e?"":"success"==e?" is-success":"warning"==e?" is-warning":"error"==e?" is-danger":" is-info";let n=Math.floor(Math.random()*Math.floor(64e3)),r=`<div style="display: none;" id="ntf-${n}" class="bmi-notification${e}">\n <button class="bmi-times-button" onclick="jQuery.bmi.hideAlert(this)">×</button>\n <div class="bmi-cf">\n <div class="bmi-left bmi-alert-icon"><div class="bmi-icon-bg"></div></div>\n <div class="bmi-left bmi-alert-msg-title">\n <div class="bmi-title${e}">Backup Migration</div>\n <div>${i}</div>\n </div>\n </div>\n </div>`;t(".bmi-notification-box").prepend(r);let s=t(`#ntf-${n}`);s.css({opacity:0,display:"block"});let a=s.outerWidth();s.outerHeight();s.css({right:"-35vw","font-size":"0px",width:0,padding:0,opacity:"0"}),s.animate({right:"15px",width:a,padding:"1rem 2rem 1rem 1.5rem",opacity:"1"},{duration:200,queue:!1}),s.animate({"font-size":"16px"},{duration:300,queue:!1}),setTimeout(()=>{t(`#ntf-${n}`).css({width:""})},250),setTimeout(()=>{s.animate({"font-size":"0px"},{duration:200,queue:!1}),s.animate({right:"-35vw",height:0,width:0,margin:0,padding:0,opacity:"0"},300,function(){s.remove()})},o)},_msg:function(e){"msg"==e.status&&(void 0===e.level&&(e.level="info"),t.bmi.alert(e.level,e.why,3e3),console.log("Backup-migration: ","["+e.level.toUpperCase()+"]",e.why))},hideAlert:function(e){let i=t(e).parents(".bmi-notification");i.animate({"font-size":"0px"},{duration:200,queue:!1}),i.animate({right:"-35vw",height:0,width:0,margin:0,padding:0,opacity:"0"},300,function(){i.remove()})},modal:function(e=!1){let i=!1;return 0!=e&&(i=document.getElementById(e)),{clearModal:function(){i.querySelectorAll(".customselect").forEach(function(t){t.classList.remove("active")}),i.querySelectorAll('input[type="text"]').forEach(function(t){t.value="",t.setAttribute("value","")})},open:function(e=function(){}){i.classList.add("before-open"),setTimeout(function(){i.classList.add("open"),t("html")[0].style.overflowY="hidden",setTimeout(e,410)},10)},close:function(e=function(){}){i.offsetWidth>0&&i.offsetHeight>0?(i.classList.add("before-close"),setTimeout(function(){i.classList.add("closed"),setTimeout(function(){i.classList.remove("before-open"),i.classList.remove("open"),i.classList.remove("before-close"),i.classList.remove("closed"),t.bmi.modal(i.id).clearModal(),e()},410)},10)):(i.classList.remove("before-open"),i.classList.remove("open"),i.classList.remove("before-close"),i.classList.remove("closed"),e()),t("html")[0].style.overflowY="auto"},closeAll:function(){document.querySelectorAll(".modal").forEach(function(e){t.bmi.modal(e.id).close()}),t("html")[0].style.overflowY="auto"}}},json:function(e){return new Promise(function(i,o){try{return i(JSON.parse(e))}catch(n){if("string"!=typeof e)return o(!1);{let n=t.bmi.reverse(e).indexOf("}");n=0==n?e.length:-n,e=e.slice(e.indexOf("{"),n);try{return i(JSON.parse(e))}catch(t){return o(!1)}}}})},reverse:function(e){return"string"==typeof e?""===e?"":t.bmi.reverse(e.substr(1))+e.charAt(0):e},ajax:function(e,i={}){return new Promise(function(o,n){function r(t,i){i||(i=t),console.log("------- BACKUP MIGRATION ERROR START -------"),!1===t?(console.log("Call: ",e),console.log("Status: ",i.status),console.log("Error: ",i.responseText)):console.log(i),console.log("-------- BACKUP MIGRATION ERROR END --------\n\n"),n(t,i.responseText)}i.action="backup_migration",i.token="bmi",i.f=e,t.post(ajaxurl,i).done(e=>{t.bmi.json(e).then(function(t){o(t)}).catch(function(t){r("json")})}).fail(t=>{r(!1,t)})})},tooltips:{init:function(){let e={delay:200,debug:!1,delayTouch:[100,200],interactive:!1,distance:0,side:"top",contentAsHTML:!1,maxWidth:460,triggerOpen:{mouseenter:!0,touchstart:!0},triggerClose:{mouseleave:!0,click:!0,tap:!0},theme:["bmi-tooltip","bmi-tt-default","bmi-tt-default-customized"],repositionOnScroll:!0,functionReady:function(){setTimeout(()=>{let e=t.tooltipster.instances();for(instance in e)e[instance].reposition()},10)}},i=t(".tooltip"),o=t(".tooltip-html"),n=t(".premium-wrapper"),r=JSON.parse(JSON.stringify(e));r.contentAsHTML=!0,r.interactive=!0;for(let o=0;o<i.length;++o){let n=i[o],r=n.getAttribute("data-top"),s=n.getAttribute("side"),a=JSON.parse(JSON.stringify(e));a.content=n.getAttribute("tooltip"),r&&(a.distance=parseInt(r)),s&&s.trim().length>0&&(a.side=s),t(n).tooltipster(a)}for(let e=0;e<o.length;++e){let i=o[e],n=i.getAttribute("side"),s=JSON.parse(JSON.stringify(r));s.content=i.getAttribute("tooltip"),n&&n.trim().length>0&&(s.side=n),t(i).tooltipster(s)}for(let i=0;i<n.length;++i){let o=n[i],r=JSON.parse(JSON.stringify(e));r.contentAsHTML=!0,r.interactive=!0,r.maxWidth=500,o.getAttribute("tooltip")?r.content=o.getAttribute("tooltip"):r.content=t("#premium-tooltip")[0].innerHTML,o.getAttribute("side")&&(r.side=o.getAttribute("side")),t(o).tooltipster(r)}},hideAll:function(e=!1){function i(){let e=t.tooltipster.instances();for(instance in e)e[instance].close()}e?i():setTimeout(i,10)}},collapsers:{toggle:function(i){if(!0===e)return;e=!0;let o=i.getAttribute("group");i.classList.contains("active")?t.bmi.collapsers.close(i):t.bmi.collapsers.open(i,o)},open:function(i,o){t.bmi.collapsers.closeGroup(o),t(i).addClass("active"),t(i).find(".content").show(300),setTimeout(function(){e=!1},300)},close:function(i){t(i).removeClass("active"),t(i).find(".content").hide(300),setTimeout(function(){e=!1},300)},closeGroup:function(i){t('.collapser[group="'+i+'"]').removeClass("active"),t('.collapser[group="'+i+'"]').find(".content").hide(300),setTimeout(function(){e=!1},300)},closeAll:function(){t(".collapser").removeClass("active"),t(".collapser").find(".content").hide(300),setTimeout(function(){e=!1},300)}},isUrlValid:function(t){return!!new RegExp("^(?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)+(?:[a-z\\u00a1-\\uffff]{2,}\\.?))(?::\\d{2,5})?(?:[/?#]\\S*)?$","i").test(t)},bytesToHuman:function(t,e,i,o,n){return(e=Math,i=e.log,o=1024,n=i(t)/i(o)|0,t/e.pow(o,n)).toFixed(2)+" "+(n?"KMGTPEZY"[--n]+"B":"Bytes")},getCurrentBackups:function(e=function(){}){t("#reloading-bm-list").length>0&&"none"==t("#reloading-bm-list")[0].style.display&&(t("#reloading-bm-list").show(),t.bmi.ajax("get-current-backups",{}).then(function(i){t("#reloading-bm-list").hide(),e(i)}).catch(function(t){console.log(t)}))},fillWithNewBackups:function(e,i=function(){}){backups={},t("#bmi_restore_tbody").html("");let o=Object.keys(e).sort(function(t,i){return+new Date(e[t][1].replace(/\-/g,"/"))-+new Date(e[i][1].replace(/\-/g,"/"))}),n=0;for(;n<o.length;++n){let i=o[n],r="locked"===e[i][5];i=(i=i.replace(/ /g,"")).trim();let s="bmi_br_backup_"+n,a=t(".br_tr_template").clone();a.removeClass("br_tr_template"),a[0].style.display="none",a.find(".br_label").attr("for",s),a.find(".br_checkbox").attr("id",s),a.find(".bc-download-btn").attr("href",t("#BMI_BLOG_URL").text().trim()+"/?backup-migration=BMI_BACKUP&backup-id="+i),a.find(".bc-logs-btn").attr("href",t("#BMI_BLOG_URL").text().trim()+"/?backup-migration=BMI_BACKUP_LOGS&backup-id="+i),a.find(".br_date").text(e[i][1]),a.find(".br_name").text(i),a.find(".br_size").text(t.bmi.bytesToHuman(e[i][4])+" ("+e[i][2]+")"),r?a.find(".bc-unlocked-btn").hide():a.find(".bc-locked-btn").hide(),a.prependTo("#bmi_restore_tbody"),e[i].push(i),backups[s]=e[i]}if(0==n){let e=t("#bmi_restore_tbody").data("empty");t("#bmi_restore_tbody").html('<tr><td class="center text-muted" colspan="100%">'+e+"</td></tr>")}t.bmi.tooltips.init(),t.bmi.showMoreBackups(),i()},showMoreBackups:function(e){backups={};let i=t("#bmi_restore_tbody").find("tr:hidden");for(let e=0;e<i.length&&e<10;++e)setTimeout(function(){t(i[e]).show(300)},50*e);i.length-10<=0?t("#load-more-backups-wrp").hide(300):t("#load-more-backups-wrp").show(300)},reloadBackups:function(e=function(){}){t.bmi.getCurrentBackups(function(i){t.bmi.fillWithNewBackups(i.backups,function(){e(),t("#backups-select-all").prop("checked",!1),t(".del-all-btn-wrp").hide(300)})})},hideAllLists:function(){let e=t(".dropdown-open");if(!(e.length<=0))for(let i=0;i<e.length;++i){let o=t(e[i]);o.hasClass("ignored-open")?o.removeClass("ignored-open"):(o.hide(300),o.removeClass("dropdown-open"),t(o[0].closest(".bmi-dropdown")).removeClass("active"))}},setOption:function(e,i=null,o=!1){let n=e.find(".dropdown-options");e.attr("data-optioner")&&(n=t(".optioner-"+e.attr("data-optioner"))),n.find(".active-option").removeClass("active-option"),!1!==o&&(i=n.find('.dropdown-option[data-value="'+o+'"]')),t(i).hasClass("active-option")||(e.find(".dropdown-title").text(i.text()),e.attr("data-selected",i.data("value")),i.addClass("active-option"),!1===o&&e.change(),t.bmi.hideAllLists())},prepareFile:function(e,i){let o=document.createElement("a");o.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(i)),o.setAttribute("download",e),o.style.display="none",document.body.appendChild(o),o.click(),document.body.removeChild(o),t.bmi.alert("success",t("#bmi-download-should-start").text(),3e3)}}})}),jQuery(document).ready(function(t){t(".collapser .header").on("click",function(e){e.preventDefault();let i=t(this).parent(".collapser")[0];t.bmi.collapsers.toggle(i)}),t(".bmi_will_collapse").on("change",function(e){e.preventDefault();let i=!1;"radio"==this.getAttribute("type")&&"false"==this.getAttribute("value")&&(i=!0),$child=t(this).data("if-checked"),!0!==this.checked||i?t("#"+$child).hide(300):t("#"+$child).show(300)}),t(".collapser-openner").on("click",function(e){e.preventDefault();let i="configuration",o=t(this).data("el");t(this).data("group")&&(i=t(this).data("group")),t.bmi.collapsers.open(o,i),setTimeout(function(){t([document.documentElement,document.body]).animate({scrollTop:t(o).offset().top-50+"px"},300)},300)}),function(){let e=t(".bmi_will_collapse");for(let i=0;i<e.length;++i){let o=!1;$trigger=e[i],$child=t($trigger).data("if-checked"),"radio"==$trigger.getAttribute("type")&&"false"==$trigger.getAttribute("value")&&(o=!0),!0===$trigger.checked?t("#"+$child).show():t("#"+$child).hide()}}()}),jQuery(document).ready(function(t){var e=!0,i=!1;t.bmi.crons=function(){function o(){!function(e,i){t.bmi.ajax("calculate-cron",e).then(function(e){"success"==e.status?i(e):(i(!1),t.bmi._msg(e))}).catch(function(t){i(!1),console.log(t)})}({type:t('[data-id="cron-period"]').attr("data-selected"),day:t('[data-id="cron-day"]').attr("data-selected"),week:t('[data-id="cron-week"]').attr("data-selected"),hour:t('[data-id="cron-hour"]').attr("data-selected"),minute:t('[data-id="cron-minute"]').attr("data-selected"),keep:t('[data-id="cron-keep-backups"]').attr("data-selected"),enabled:!0==!t("#cron-btn-toggle")[0].checked},function(i){"success"===i.status&&!1!==i?(t(".cron-time-server").tooltipster("option","interactive",!1),t(".cron-time-server").tooltipster("option","contentAsHTML",!0),!0===t("#cron-btn-toggle")[0].checked&&(i.data="---"),t(".cron-time-server").tooltipster("content","<b>"+t("#bmi-next-cron").text()+"</b>"+i.data+"<br><b>"+t("#bmi-current-time").text()+"</b>"+i.currdata),e?e=!1:t.bmi.alert("success",t("#bmi-cron-updated").text(),1500)):e?e=!1:t.bmi.alert("error",t("#bmi-cron-updated-fail").text(),2500)})}function n(e){"month"==e?(t(".cron-the").show(),t('[data-id="cron-day"]').show(),t('[data-id="cron-week"]').hide(),t("#cron-on-word").show()):"week"==e?(t(".cron-the").hide(),t('[data-id="cron-day"]').hide(),t('[data-id="cron-week"]').show(),t("#cron-on-word").show()):(t(".cron-the").hide(),t('[data-id="cron-day"]').hide(),t('[data-id="cron-week"]').hide(),t("#cron-on-word").hide())}!0!==i&&(i=!0,t("#bmi").on("change",'[data-id="cron-period"]',function(t){o(),n(t.target.getAttribute("data-selected"))}),t("#bmi").on("change",'[data-id="cron-day"]',function(t){t.target.getAttribute("data-selected");o()}),t("#bmi").on("change",'[data-id="cron-week"]',function(t){t.target.getAttribute("data-selected");o()}),t("#bmi").on("change",'[data-id="cron-hour"]',function(t){t.target.getAttribute("data-selected");o()}),t("#bmi").on("change",'[data-id="cron-minute"]',function(t){t.target.getAttribute("data-selected");o()}),t("#bmi").on("change",'[data-id="cron-keep-backups"]',function(t){t.target.getAttribute("data-selected");o()}),t("#i-backup-cron").on("click",function(){t(".cron-backups").find(".turned-off").is(":visible")&&(t("#cron-btn-toggle").prop("checked",!1),t(".cron-backups").removeClass("disabled"),o(),t(".cron-backups").find(".turned-on").css({opacity:0}),t(".cron-backups").find(".turned-off").css({opacity:0}),t(".cron-backups").find(".turned-on").show(),t(".cron-backups").find(".turned-on").css({opacity:1}),setTimeout(function(){t(".cron-backups").find(".turned-off").hide()},300))}),t("#cron-btn-toggle").on("change",function(){this.checked?t(".cron-backups").addClass("disabled"):t(".cron-backups").removeClass("disabled"),o()}),n(t('[data-id="cron-period"]')[0].getAttribute("data-selected")),o())}}),jQuery(document).ready(function(t){t.bmi.dropdowns={init:function(){let e=t("#bmi");function i(e="null",i="---"){let o=t(".option-template").clone();return o.removeClass("option-template"),o.attr("data-value",e),o.text(i),o}function o(o){if("none"!=o.style.display){o.style.display="none";let n=t(o),r=n.find("option"),s=function(e="---"){let i=t(".dropdown-template").clone();return i.removeClass("dropdown-template"),i.find(".dropdown-title").text(e),i}(function(t){let e="";for(let i=0;i<t.length;++i){let o=t[i].innerText;e.length<o.length&&(e=o)}return e}(r));s=function(e,o){let n=t(e).find(".dropdown-options");t(e).attr("data-optioner")&&(n=t(".optioner-"+t(e).attr("data-optioner")));for(let t=0;t<o.length;++t){let e=o[t];n.append(i(e.value,e.innerText))}return e}(s,r);let a=r[0].value,l=o.getAttribute("data-parent"),c=o.getAttribute("data-classes"),p="true"===o.getAttribute("data-hide");if(n.data("def")&&(a=n.data("def")),t(s).attr("data-id",o.id),t(s).attr("class",((null!=c?c:"")+" bmi-dropdown").trim()),t(s).insertBefore(n),null!==l){let e=parseInt(864197532*Math.random()+123456789);t(s).attr("data-optioner",e),t(s).find(".dropdown-options").attr("data-oparent",e),t(s).find(".dropdown-options").addClass("optioner-"+e),t(s).find(".dropdown-options").appendTo(l),t(l).css({position:"relative"})}let u=t(s).clone();if(!u)return;u[0].style.visibility="hidden",e.append(u);let d=u.width();u.remove(),t.bmi.setOption(t(s),null,a),t(s).find(".dropdown-title")[0].style.minWidth=d+10+"px",p&&t(s).hide()}}!function(){let t=e.find("select");for(let e=0;e<t.length;++e)o(t[e])}(),t.bmi.crons(),e.on("click",function(e){t(e.target).hasClass("bmi-dropdown")||e.target.closest(".bmi-dropdown")||t.bmi.hideAllLists()}),e.on("click",".dropdown-title",function(e){$dropdown=t(e.target.closest(".bmi-dropdown")),function(e){let i=e.find(".dropdown-options");if(e.attr("data-optioner")){(i=t(".optioner-"+e.attr("data-optioner"))).css({position:"absolute"});let o=e[0].offsetWidth,n=e[0].offsetLeft+240,r=e[0].offsetTop+e[0].offsetHeight+5;i.css({maxWidth:o+"px",minWidth:o+"px",top:r+"px",left:n+"px"})}i.hasClass("dropdown-open")?(e.removeClass("active"),i.removeClass("dropdown-open"),i.hide(300)):(e.addClass("active"),i.addClass("dropdown-open"),i.addClass("ignored-open"),i.show(300))}($dropdown),t.bmi.hideAllLists()}),e.on("click",".dropdown-option",function(e){t(e.target.closest(".dropdown-options")).attr("data-oparent")?($dropdown=t('.bmi-dropdown[data-optioner="'+t(e.target.closest(".dropdown-options")).attr("data-oparent")+'"]'),$option=t(e.target),t.bmi.setOption($dropdown,$option)):($dropdown=t(e.target.closest(".bmi-dropdown")),$option=t(e.target),t.bmi.setOption($dropdown,$option))})}}}),jQuery(document).ready(function(t){var e,i,o=!1,n=!1,r=0;let s=0,a=0,l=null,c=null,p=null,u=!1,d=!1,_=!1;function f(e){return $cb=t("#"+e).is(":checked"),!0===$cb?"true":"false"}function h(){return size=0,t("#files-group-plugins").is(":checked")&&(size+=parseInt(t('label[for="files-group-plugins"]').find(".value").attr("bytes"))),t("#files-group-uploads").is(":checked")&&(size+=parseInt(t('label[for="files-group-uploads"]').find(".value").attr("bytes"))),t("#files-group-themes").is(":checked")&&(size+=parseInt(t('label[for="files-group-themes"]').find(".value").attr("bytes"))),t("#files-group-other-contents").is(":checked")&&(size+=parseInt(t('label[for="files-group-other-contents"]').find(".value").attr("bytes"))),t("#files-group-wp-install").is(":checked")&&(size+=parseInt(t('label[for="files-group-wp-install"]').find(".value").attr("bytes"))),size}function m(e,i){if(a+=1,s+=parseInt(i.bytes),i.bytes<=1e4)t("#bmi-scan-"+e).find(".value").text("(0 MB)");else{let o=(parseInt(i.bytes)/1024/1024).toFixed(2);t("#bmi-scan-"+e).find(".value").text("("+o+" MB)")}t("#bmi-scan-"+e).find(".value").attr("bytes",parseInt(i.bytes)),5==a&&(t("#bmi-scan-total").find(".value").text("("+t.bmi.bytesToHuman(s)+")"),t("#bmi-scan-total").find(".value").attr("bytes",parseInt(s)),w())}function g(e){t.bmi.ajax("scan-directory",{folder:e}).then(function(t){m(e,t)}).catch(function(t){m(t,{bytes:"0",readable:"0 B"})})}function b(e=!1,i=function(){}){t.bmi.ajax("is-running-backup",{}).then(function(o){"success"==o.status?i(!1):1==e?i(!0):t.bmi._msg(o)}).catch(function(t){i(!1),console.log(t)})}function w(){let e=parseInt(t("#bmi-scan-total").find(".value").attr("bytes")),i=parseInt(h());t("#files-group-backup").is(":checked")||(e=0,i=0);let o=((e-i)/1024/1024).toFixed(2),n=(i/1024/1024).toFixed(2);"0.00"==o&&(o="0"),"0.00"==n&&(n="0"),t("#esta-exclude").text(o+" MB"),t("#esta-size-for").text(n+" MB")}function v(){t("#prenotice-modal .prenotice").hide(),t("#prenotice-size").text(t.bmi.bytesToHuman(h())),t(".prenotic-3").show(),"true"!==f("database-group-backup")||"true"!==f("database-group-backup")||"true"===f("files-group-backup")&&("true"!==f("files-group-plugins")&&"true"!==f("files-group-themes")&&"true"!==f("files-group-uploads")&&"true"!==f("files-group-wp-install")&&f("files-group-other-contents"),1)||t(".prenotic-6").show(),"true"===f("database-group-backup")||"true"===f("database-group-backup")||"true"!==f("files-group-backup")||"true"!==f("files-group-plugins")&&"true"!==f("files-group-themes")&&"true"!==f("files-group-uploads")&&"true"!==f("files-group-wp-install")&&"true"!==f("files-group-other-contents")||t(".prenotic-5").show(),"true"===f("database-group-backup")&&"true"===f("files-group-backup")&&"true"===f("files-group-plugins")&&"true"===f("files-group-themes")&&"true"===f("files-group-uploads")&&"true"===f("files-group-other-contents")||t(".prenotic-4").show(),t("#prenotice-modal .prenotice:visible").css({background:""});let e=t("#prenotice-modal .prenotice"),i=[];for(let t=0;t<e.length;++t)"none"!==e[t].style.display&&i.push(e[t]);for(let t=0;t<i.length;t+=2)i[t].style.background="#f8f8f8"}function y(t,e=function(){}){try{window.XMLHttpRequest?xmlhttp=new XMLHttpRequest:xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"),xmlhttp.onloadend=function(){4==xmlhttp.readyState&&200==xmlhttp.status?e(xmlhttp.responseText):e(!1)},xmlhttp.open("GET",t),xmlhttp.send()}catch(t){e(!1)}}function k(e,i){if(!1===e)return;let o=e.split("\n"),n=r;r=o.length,n>0&&n--;for(let e=n;e<o.length;++e){let n=o[e],r=document.createElement("DIV"),s="";"[INFO]"==n.substr(0,6)?s="blue":"[SUCCESS]"==n.substr(0,9)?s="green":"[WARN]"==n.substr(0,6)?s="orange":"[ERROR]"==n.substr(0,7)&&(s="red"),"[STEP]"==n.substr(0,6)&&(r.classList.add("bold"),r.classList.add("step"),t("#restore-progress-modal").hasClass("open")?t("#restore_current_step").text(n.slice(29)):t("#current_step").text(n.slice(29))),s.length>0&&r.classList.add(s),r.style.display="none",r.innerText=n,setTimeout(function(){i.appendChild(r),t(r).show(55),i.scrollTop=i.scrollHeight},55*e)}setTimeout(function(){i.scrollTop=i.scrollHeight},110)}function x(e=0,r=1e3,s=null){if(c==e)return;c=e,clearInterval(i);let a=parseFloat(t(".progress-percentage")[0].style.left)-1;if(t("#restore-progress-modal").hasClass("open")&&(a=parseFloat(t("#restore-progress-modal .progress-percentage")[0].style.left)-1),a>e&&0!=e)return;let l=e-a,p=a,d=Math.abs(Math.floor(r/l));i=setInterval(function(){if(p+=1,t("#restore-progress-modal").hasClass("open")?(t("#restore-progress-modal .progress-active-bar")[0].style.width=p.toFixed(2)+"%",t("#restore-progress-modal .progress-percentage")[0].style.left=p.toFixed(2)+"%",t("#restore-progress-modal .progress-percentage")[0].innerText=p.toFixed(0)+"%"):(t(".progress-active-bar")[0].style.width=p.toFixed(2)+"%",t(".progress-percentage")[0].style.left=p.toFixed(2)+"%",t(".progress-percentage")[0].innerText=p.toFixed(0)+"%"),p>=100&&clearInterval(i),p>=100&&null!=s&&(c=null,t("#backup-progress-modal").hasClass("open"))){o=!0,n=!0,S(s,0==u)}p>e&&clearInterval(i)},d)}t("#live-log-toggle").on("click",function(){t(".expanded-logs").length>0?t(this).text(t(this).data("hide")):t(this).text(t(this).data("show")),t("#live-log-wrapper").toggleClass("expanded-logs")}),t("#backup-stop").on("click",function(){t.bmi.ajax("stop-backup",{}).then(function(e){"success"==e.status?t.bmi.alert("success",t("#bmi-abort-soon").text(),3e3):t.bmi._msg(e)}).catch(function(t){console.log(t)})}),t("#bmi_restore_tbody").on("click",".bc-unlocked-btn",function(e){e.preventDefault();let i=e.target,o=i.closest("tr").querySelector(".br_name").innerText.trim();t.bmi.ajax("lock-backup",{filename:o}).then(function(e){"success"==e.status?(t.bmi.alert("success",t("#bmi-lock-success").text(),3e3),t(i.closest("tr").querySelector(".bc-unlocked-btn")).hide(),t(i.closest("tr").querySelector(".bc-locked-btn")).show()):(t.bmi.alert("error",t("#bmi-lock-error").text(),3e3),console.error("BMI Backend error: ",e))}).catch(function(t){console.log(t)})}),t("#files-group-backup").on("change",w),t(".basic-file-exlusion").on("change",'input[type="checkbox"]',w),t("#bmi_restore_tbody").on("click",".bc-locked-btn",function(e){e.preventDefault();let i=e.target,o=i.closest("tr").querySelector(".br_name").innerText.trim();t.bmi.ajax("unlock-backup",{filename:o}).then(function(e){"success"==e.status?(t.bmi.alert("success",t("#bmi-unlock-success").text(),3e3),t(i.closest("tr").querySelector(".bc-locked-btn")).hide(),t(i.closest("tr").querySelector(".bc-unlocked-btn")).show()):(t.bmi.alert("error",t("#bmi-unlock-error").text(),3e3),console.error("BMI Backend error: ",e))}).catch(function(t){console.log(t)})}),t("#bmi_restore_tbody").on("click",".bc-url-btn",function(e){let i=e.target.closest("tr").querySelector(".bc-download-btn").getAttribute("href");t.bmi.clipboard(i)}),t("#bmi_restore_tbody").on("click",".bc-remove-btn",function(e){let i=e.target.closest("tr").querySelector(".br_name").innerText.trim();p=[i],t("#delete-confirm-modal").find(".text2").hide(),t("#delete-confirm-modal").find(".text1").show(),t.bmi.modal("delete-confirm-modal").open()}),t("#sure_delete").on("click",function(){t.bmi.ajax("delete-backup",{filenames:p}).then(function(e){p=null,"success"==e.status?(t.bmi.reloadBackups(),t.bmi.modal("delete-confirm-modal").close(),t.bmi.alert("success",t("#bmi-remove-success").text(),3e3)):(t.bmi.alert("warning",t("#bmi-remove-error").text(),3e3),console.error("BMI Backend error: ",e))}).catch(function(t){console.log(t)})}),t("#add-exclusion-rule").on("click",function(e){e.preventDefault();let i=t(".exclusion_template").clone();i[0].classList.remove("exclusion_template"),i[0].style.display="none",t("#bmi_exclusion_rules").append(i),i.show(300)}),t("#bmi_exclusion_rules").on("click",".kill-exclusion-rule",function(e){e.preventDefault(),$el=e.target,$parent=$el.closest(".exclude-row"),$parent&&(t($parent).hide(300),setTimeout(function(){$parent.remove()},320))}),t("#i-backup-creator").on("click",function(){if(!isNaN(h()))return h()/1024/1024>1e3*parseInt(t("#BMI_REV").text().trim())?E():void("true"===f("database-group-backup")||"true"===f("files-group-backup")&&("true"===f("files-group-plugins")||"true"===f("files-group-themes")||"true"===f("files-group-uploads")||"true"===f("files-group-wp-install")||"true"===f("files-group-other-contents"))?(v(),b(!1,function(){t.bmi.modal("prenotice-modal").open()})):t.bmi.alert("warning",t("#bmi-no-selected").text(),3e3));t.bmi.alert("warning",t("#bmi-preb-processing").text(),3e3)}),t("#BFFSIN").on("change",function(t){let e=parseInt(this.value);isNaN(e)?this.value=1:this.value=e>9999?9999:e<=0?1:e}),t(".save-btn").on("click",function(e){e.preventDefault();let i={},o=t(this.closest(".save-action")).data("save");if(o){if("save-storage"==o)i.directory=t("#bmi_path_storage_default").val(),i.access="true"===t('[name="radioAccessViaLink"]:checked').val()?"true":"false";else if("save-file-config"==o){i.database_group=f("database-group-backup"),i.files_group=f("files-group-backup"),i["files-group-plugins"]=f("files-group-plugins"),i["files-group-uploads"]=f("files-group-uploads"),i["files-group-themes"]=f("files-group-themes"),i["files-group-other-contents"]=f("files-group-other-contents"),i["files-group-wp-install"]=f("files-group-wp-install"),i.files_by_filters=f("files_by_filters"),i.ex_b_fs=f("ex_b_fs"),i.BFFSIN=t("#BFFSIN").val()?t("#BFFSIN").val():"1",i.ex_b_names=f("ex_b_names"),i.ex_b_fpaths=f("ex_b_fpaths"),i.ex_b_dpaths=f("ex_b_dpaths");let e=[],o=t("#bmi_exclusion_rules").find(".exclude-row");for(let i=0;i<o.length;++i){let n=t(o[i]),r=n.find(".exclusion_txt").val(),s=n.find(".exclusion_position").find(".bmi-dropdown").data("selected")+"",a=n.find(".exclusion_where").find(".bmi-dropdown").data("selected")+"";e.push({txt:r,pos:s,whr:a})}i["dynamic-names"]=e,i["dynamic-fpaths-names"]=t("#dynamic-fpaths-names").val().split("\n"),i["dynamic-dpaths-names"]=t("#dynamic-dpaths-names").val().split("\n")}else if("store-config"==o)i.name=t("#backup_filename").val().trim();else{if("save-other-options"!=o)return;i.email=t("#email-for-notices").val().trim(),i.email_title=t("#email-title-for-notices").val().trim(),i.schedule_issues=f("scheduled-issues"),i.uninstall_config=f("uninstalling-configs"),i.uninstall_backups=f("uninstalling-backups")}t.bmi.ajax(o,i).then(function(e){"success"==e.status?e.errors<=0?(t.bmi.alert("success",t("#bmi-save-success").text(),3e3),t.bmi.collapsers.closeAll()):t.bmi.alert("warning",t("#bmi-save-issues").text(),3e3):t.bmi._msg(e)}).catch(function(t){console.log(t)})}}),t(".close-chapters").on("click",function(e){e.preventDefault(),t.bmi.collapsers.closeAll()}),t("#rescan-for-backups").on("click",function(){t.bmi.reloadBackups()});var $=0;function C(e=function(){}){let i=t("#BMI_BLOG_URL").text().trim();y(i+"?backup-migration=PROGRESS_LOGS&progress-id=latest_progress.log&backup-id=current&t="+ +new Date,function(o){y(i+"?backup-migration=PROGRESS_LOGS&progress-id=latest.log&backup-id=current&t="+ +new Date,function(i){let n=t(".log-wrapper").find("pre")[0],r=t("#bmi-making-archive").text().trim();if(o&&0!=o&&void 0!==o&&(x(parseInt(o.split("/")[0])/parseInt(o.split("/")[1])*100),t("#current_step").text().trim().slice(0,r.length)==r)){let e=document.getElementById("bmi_counter_magic");if(e){(async function(t,e,i,o){let n=null,r=function(s){if($>i)return;n||(n=s);let a=Math.min((s-n)/o,1);t.innerText=Math.floor(a*(i-e)+e),a<1&&window.requestAnimationFrame(r)};window.requestAnimationFrame(r)})(e,parseInt(e.innerText),$=parseInt(o.split("/")[0]),2e3),t("#bmi_magic_max_count").text("---")&&100!=parseInt(o.split("/")[1])&&t("#bmi_magic_max_count").text(parseInt(o.split("/")[1]))}else{let e=parseInt(o.split("/")[1]);100==e&&(e="---"),t("#current_step").html(r+' (<span id="bmi_counter_magic">0</span>/<span id="bmi_magic_max_count">'+e+"</span>)")}}i&&0!=i&&void 0!==i&&k(i,n),e()})})}function T(){t(".log-wrapper").find("pre")[0].innerText="",x(0),setTimeout(function(){C(function(){!function t(){e=setTimeout(function(){C(function(){!0===u&&t()})},1e3)}()})})}function O(){x(0),setTimeout(function(){L(function(){!function t(){e=setTimeout(function(){L(function(){!0===d&&t()})},1e3)}()})})}function I(t=function(){}){b(!0,function(e){t(e)})}function S(r,s=!1){(o&&n||s)&&setTimeout(function(){u=!1,t("#backup-progress-modal").hasClass("open")&&(t.bmi.modal("backup-progress-modal").close(),"true"==t('[name="radioAccessViaLink"]:checked').val()?t("#accessible-at-section").show():t("#accessible-at-section").hide(),t.bmi.modal("backup-success-modal").open()),clearInterval(i),clearTimeout(e);let o=t("#BMI_BLOG_URL").text().trim()+"?backup-migration=BMI_BACKUP&backup-id="+r.filename+"&t="+ +new Date,n=t("#BMI_BLOG_URL").text().trim()+"?backup-migration=PROGRESS_LOGS&progress-id=latest.log&backup-id=current&t="+ +new Date;t("#text-input-copy")[0].value=o,t("#download-backup-url").attr("href",o),t("#download-backup-log-url").attr("href",n),t.bmi.reloadBackups(),setTimeout(function(){clearInterval(i),t(".log-wrapper").find("pre")[0].innerText="",t(".progress-active-bar")[0].style.width="0%",t(".progress-percentage")[0].style.left="0%",t(".progress-percentage")[0].innerText="0%"},300)},700)}function z(){setTimeout(function(){t("#backup-error-pre").text("Loading..."),t.bmi.modal("backup-error-modal").open(),y(t("#BMI_BLOG_URL").text().trim()+"?backup-migration=PROGRESS_LOGS&progress-id=latest.log&backup-id=current&t="+ +new Date,function(e){if(0==e)z();else{let i=t("#backup-error-pre")[0];t("#backup-error-pre").text(""),r=0,k(e,i)}})},100)}function E(){t.bmi.modal("bfs-modal").open()}function A(){I(function(e){!0===e?t("#backup-progress-modal").hasClass("open")||(!1===u&&(o=!1,u=!0,_=!0),t("#bmi-ongoing-backup").show(300)):(t("#bmi-ongoing-backup").is(":visible")&&t("#bmi-ongoing-backup").hide(300),t("#backup-progress-modal").hasClass("open")&&!0===_?(!0===u&&(u=!1),_=!1,t.bmi.getCurrentBackups(function(e){t.bmi.fillWithNewBackups(e.backups,function(){y(t("#BMI_BLOG_URL").text().trim()+"?backup-migration=PROGRESS_LOGS&progress-id=latest.log&backup-id=current&t="+ +new Date,function(e){if(!1===e)t.bmi.modal("backup-progress-modal").close();else{let i="Backup process aborted",o="[ERROR]";if((e=e.split("\n"))[e.length-1].includes(i)||e[e.length-2].includes(i))t.bmi.modal("backup-progress-modal").close(),t.bmi.alert("info",t("#bmi-aborted-al").text(),3e3);else if(e[e.length-1].includes(o)||e[e.length-2].includes(o))t.bmi.modal("backup-progress-modal").close(),z();else{t.bmi.modal("backup-progress-modal").close(),t.bmi.modal("backup-success-modal").open();let e=t(t("#bmi_restore_tbody").find("tr")[0]).find(".bc-download-btn").attr("href");t("#download-backup-url").attr({href:e}),t("#text-input-copy").val(e)}}})})})):!0!==u||t("#backup-progress-modal").hasClass("open")||(u=!1,t.bmi.reloadBackups()))})}function L(e=function(){}){let i=t("#BMI_BLOG_URL").text().trim();y(i+"?backup-migration=PROGRESS_LOGS&progress-id=latest_migration.log&backup-id=current&t="+ +new Date,function(o){y(i+"?backup-migration=PROGRESS_LOGS&progress-id=latest_migration_progress.log&backup-id=current&t="+ +new Date,function(i){let n=t("#restore-live-log-wrapper").find("pre")[0];if(0!=o){let t=o.split("\n");(t=void 0!==t[t.length-2]?t[t.length-2]:"").includes("[")&&t.includes("]")&&k(o,n)}0!=i&&x(i),e({progress:i,logs:o})})})}function B(e=function(){}){t.bmi.ajax("htaccess-litespeed",{}).then(function(t){setTimeout(function(){e(!0)},400)}).catch(function(t){e(!1),console.log(t)})}function M(e=function(){}){t.bmi.ajax("migration-locked",{}).then(function(i){"success"==i.status?e(!0):(t.bmi._msg(i),e(!1))}).catch(function(t){console.log(t)})}function P(e=""){if(!t("#restore-progress-modal").hasClass("open"))return;d=!1,t("#restore-error-pre").text("Loading..."),y(t("#BMI_BLOG_URL").text().trim()+"?backup-migration=PROGRESS_LOGS&progress-id=latest_migration.log&backup-id=current&t="+ +new Date,function(i){let o=t("#restore-error-pre")[0];t("#restore-error-pre").text(""),r=0,e.length>0&&(i+="\n"+e),k(i,o)}),t.bmi.modal("restore-progress-modal").close(),t.bmi.modal("restore-error-modal").open()}function D(o=!1){let n=l;if(!n||n.trim().length<=0)return t.bmi.alert("warning",t("#bmi-no-file").text(),3e3);t("#pre-restore-modal").hasClass("open")&&t.bmi.modal("pre-restore-modal").close(),t("#restore-progress-modal").hasClass("open")||t.bmi.modal("restore-progress-modal").open(),o||(t("#restore-live-log-wrapper").find("pre")[0].innerText=""),r=0,d=!0,O(),B(function(){t.bmi.ajax("restore-backup",{file:n,remote:o}).then(function(o){"success"===o.status?setTimeout(function(){clearInterval(i),clearTimeout(e),d=!1,t.bmi.modal("restore-progress-modal").close(),t.bmi.modal("restore-success-modal").open(),setTimeout(function(){t("#restore-progress-modal .progress-active-bar")[0].style.width="0%",t("#restore-progress-modal .progress-percentage")[0].style.left="0%",t("#restore-progress-modal .progress-percentage")[0].innerText="0%"},500)},1500):"error"===o.status?setTimeout(function(){clearInterval(i),clearTimeout(e),P()},1e3):(t.bmi.modal("pre-restore-modal").close(),t.bmi.modal("restore-progress-modal").close(),t.bmi._msg(o))}).catch(function(t,e){P(e),console.log(t)})})}function R(){return t("#bmi_restore_tbody").find('input[type="checkbox"]:checked')}function j(e){e.preventDefault(),t("#format-tip-wrp")[0].style.minWidth="calc(100% - 120px)","none"===t("#format-tip-wrp")[0].style.display?t("#format-tip-wrp").show(300):t("#format-tip-wrp").hide(300)}t("#configuration-reset-absolute").on("click",function(e){e.preventDefault(),t.bmi.ajax("reset-configuration",{}).then(function(e){"success"==e.status?window.location.reload():t.bmi._msg(e)}).catch(function(t){console.log(t)})}),t("#download-site-infos").on("click",function(e){e.preventDefault(),t.bmi.ajax("get-site-data",{}).then(function(e){"success"==e.status?t.bmi.prepareFile("bmi-site-info.debug",JSON.stringify(e.data)):t.bmi._msg(e)}).catch(function(t){console.log(t)})}),t("#start-entire-backup").on("click",function(){t.bmi.modal("prenotice-modal").close(),function(e=function(){}){t.bmi.ajax("reset-latest",{}).then(function(i){"success"==i.status?(e(),t.bmi.modal("backup-progress-modal").open()):t.bmi._msg(i)}).catch(function(t){console.log(t)})}(function(){B(function(){_=!1,o=!1,u=!0,t.bmi.ajax("create-backup",{estaminated_size:h()}).then(function(n){"success"==n.status?(o=!0,clearTimeout(e),u=!1,C(function(){setTimeout(function(){x(101,500,n),S(n,!0)},350)})):(u=!1,setTimeout(function(){clearInterval(i),t(".log-wrapper").find("pre")[0].innerText="",t(".progress-active-bar")[0].style.width="0%",t(".progress-percentage")[0].style.left="0%",t(".progress-percentage")[0].innerText="0%"},300),t.bmi._msg(n),t("#backup-progress-modal").hasClass("open")&&(t.bmi.modal("backup-progress-modal").close(),void 0!==n.bfs?E():z()))}).catch(function(e){t("#backup-progress-modal").hasClass("open")&&(t.bmi.modal("backup-progress-modal").close(),z()),console.log(e)}),r=0,u=!0,T()}),T()})}),t("#open_trouble_extenstion").on("click",function(){t("#trouble_extenstion").hasClass("openned")?(t("#trouble_extenstion").hide(300),t("#trouble_extenstion").removeClass("openned"),t(this).removeClass("active")):(t("#trouble_extenstion").show(300),t("#trouble_extenstion").addClass("openned"),t(this).addClass("active"))}),t("#switch-show-trs").on("click",function(){let e=this.dataset.see,i=this.dataset.hide,o=t(".hide-show-tr");t(this).hasClass("shown")?(o.hide(300),t(this).removeClass("shown"),this.innerText=e):(o.show(300),t(this).addClass("shown"),this.innerText=i)}),t("#ex_b_fs").on("change",function(){t("#ex_b_fs").is(":checked")?t("#bmi__collon").show():t("#bmi__collon").hide()}),t("#show-upload-area").on("click",function(){t(".upload_area").hasClass("hidden")?(t(".upload_area").show(300),t(".upload_area").removeClass("hidden"),t([document.documentElement,document.body]).animate({scrollTop:t(this).offset().top-50+"px"},300)):(t(".upload_area").hide(300),t(".upload_area").addClass("hidden"))}),t(".bmi-copper").on("click",function(e){e.preventDefault();let i=t("#"+this.getAttribute("data-copy"))[0];i.value&&i.value.length>0?t.bmi.clipboard(i.value):t.bmi.clipboard(i.innerText)}),t("#bmi_restore_tbody").on("click",".restore-btn",function(e){M(function(i){if(i){let i=e.target.closest("tr").querySelector(".br_name").innerText;if(l=i,!i||i.trim().length<=0)return t.bmi.alert("warning",t("#bmi-no-file").text(),3e3);t("#restore-ok").prop("checked",!1),t.bmi.modal("pre-restore-modal").open()}})}),t("#quick-download-migration").on("click",function(){let e=t("#bm-d-url").val();t.bmi.isUrlValid(e)?M(function(i){i&&(e.length>0?(l=-100,t("#restore-ok").prop("checked",!1),t.bmi.modal("pre-restore-modal").open()):t.bmi.alert("warning",t("#bmi-invalid-url").text(),5e3))}):t.bmi.alert("warning",t("#bmi-invalid-url").text(),5e3)}),t("#restore-start-sure").on("click",function(){t("#restore-ok").is(":checked")?-100===l?(l=null,t("#restore-live-log-wrapper").find("pre")[0].innerText="",M(function(o){B(function(){if(o){let o=t("#bm-d-url").val();t("#restore_current_step").text(t("#bmi-downloading-remote").text()),t.bmi.ajax("download-backup",{url:o}).then(function(o){clearInterval(i),clearTimeout(e),"success"===o.status?(t.bmi.reloadBackups(),l=o.name,x(100,300),setTimeout(function(){clearInterval(i),t("#restore-progress-modal .progress-active-bar")[0].style.width="0%",t("#restore-progress-modal .progress-percentage")[0].style.left="0%",t("#restore-progress-modal .progress-percentage")[0].innerText="0%",t("#restore_current_step").text(t("#bmi-restoring-prepare").text()),setTimeout(function(){D(!0)},300)},600)):"error"===o.status?P():(t.bmi._msg(o),P())}).catch(function(t,e){P(e),console.log(t)}),t("#restore-live-log-wrapper").find("pre")[0].innerText="",r=0,d=!0,O(),t.bmi.modal("pre-restore-modal").close(),t.bmi.modal("restore-progress-modal").open()}})})):D():t.bmi.alert("warning",t("#bmi-restore-require-checkmark").text(),3e3)}),t(".backup-minimize").on("click",function(){I(function(e){!0===e?t("#bmi-ongoing-backup").show(300):t("#bmi-ongoing-backup").hide()})}),setInterval(function(){A()},4500),A(),t("#bmi-ongoing-backup").on("click",function(){I(function(e){!0===e?(r=0,T(),t.bmi.modal("backup-progress-modal").open()):(t.bmi.alert("info",t("#bmi-bc-ended").text(),3e3),t.bmi.reloadBackups()),t("#bmi-ongoing-backup").hide(300)})}),t("#bmi_support_chat").on("click",function(){if(0===t("#support-bmi").length){t("#bmi").append('<script id="support-bmi" src="//code.jivosite.com/widget/qli4YP0snZ" async><\/script>'),setTimeout(function(){t("#bmi_support_chat").hide()},100);var e=!1;let i=setInterval(function(){1==e&&clearInterval(i),void 0!==window.jivo_api&&(window.jivo_api.open(),e=!0)},30)}}),t("#bmi_restore_tbody").on("change",'input[type="checkbox"]',function(e){let i=R().length;i>0?t(".del-all-btn-wrp").show(300):t(".del-all-btn-wrp").hide(300),i==t("#bmi_restore_tbody").find('input[type="checkbox"]').length?t("#backups-select-all").prop("checked",!0):t("#backups-select-all").prop("checked",!1)}),t("#backups-select-all").on("change",function(){!0===this.checked?t("#bmi_restore_tbody").find('input[type="checkbox"]').prop("checked",!0):t("#bmi_restore_tbody").find('input[type="checkbox"]').prop("checked",!1),R().length>0?t(".del-all-btn-wrp").show(300):t(".del-all-btn-wrp").hide(300)}),t(".lrn-mr-btn, .closer-learn-more").on("click",function(){t(".learn_more_about_cron").hasClass("open")?(t(".learn_more_about_cron").removeClass("open"),t(".learn_more_about_cron").hide(300),t(".lrn-mr-btn").show(),t(".lrn-mr-btn").css({opacity:0}),t(".lrn-mr-btn").animate({opacity:1},300)):(t(".learn_more_about_cron").addClass("open"),t(".learn_more_about_cron").show(300),t(".lrn-mr-btn").css({opacity:1}),t(".lrn-mr-btn").animate({opacity:0},300,function(){t(".lrn-mr-btn").hide()}))}),t("#bmi-error-toggle").on("click",function(){t(".error-body").hasClass("open")?(t(".error-body").hide(300),t(".error-body").removeClass("open"),t("#bmi-error-toggle").text(t("#bmi-error-toggle").data("expand"))):(t(".error-body").show(300),t(".error-body").addClass("open"),t("#bmi-error-toggle").text(t("#bmi-error-toggle").data("collapse")))}),t("#bmi-error-dismiss").on("click",function(){t(".error-noticer").hide(300),setTimeout(function(){t(".error-noticer").remove()},330),t.bmi.ajax("dismiss-error-notice",{}).then(function(t){}).catch(function(t){})}),t(".deleteAllSelected").on("click",function(){let e=R(),i=[];for(let t=0;t<e.length;++t){let o=e[t].closest("tr");i.push(o.querySelector(".br_name").innerText)}t("#delete-confirm-modal").find(".text1").hide(),t("#delete-confirm-modal").find(".text2").show();let o=i.length;o<=0||(t("#backup-multiple-del-count").text(o),o>1?(t("#del-only-one").hide(),t("#del-more-than-one").show()):(t("#del-more-than-one").hide(),t("#del-only-one").show()),p=i,t.bmi.modal("delete-confirm-modal").open())}),t("#load-more-backups").on("click",function(e){e.preventDefault(),t.bmi.showMoreBackups()}),t("#show-format-tip").on("click",j),t("#hide-format-tip").on("click",j),t(".go-to-marbs").on("click",function(e){e.preventDefault(),document.getElementById("marbs").click(),t.bmi.modal().closeAll()}),t(".site-reloader").on("click",function(){window.location.reload()}),async function(){g("plugins"),g("uploads"),g("themes"),g("contents_others"),g("wordpress")}(),t.bmi.ajax("get-dynamic-names",{}).then(function(e){let i=e.data;if(t("#bmi_exclusion_rules").text(""),void 0!==i&&void 0!==i.length){for(let e=0;e<i.length;++e){let o=t(".exclusion_template").clone();o.removeClass("exclusion_template"),o.find(".exclusion_txt").val(i[e].txt);let n=o.find(".exclusion_position").find("select"),r=o.find(".exclusion_where").find("select");n&&(n[0].setAttribute("data-def",i[e].pos),r&&(r[0].setAttribute("data-def",i[e].whr),t("#bmi_exclusion_rules").append(o)))}t("#dynamic-fpaths-names").text(e["dynamic-fpaths-names"].join("\n")),t("#dynamic-dpaths-names").text(e["dynamic-dpaths-names"].join("\n"))}}).catch(function(t){console.log(t)}),t.bmi.reloadBackups(),function(){let e=1e3*parseInt(t("#server-time-auto").attr("data-time")),i=new Date(e);t("#server-time-auto").text(i.toUTCString()),setInterval(function(){e+=1e3,i=new Date(e),t("#server-time-auto").text(i.toUTCString())},1e3),t("#ex_b_fs").is(":checked")?t("#bmi__collon").show():t("#bmi__collon").hide()}()}),jQuery(document).ready(function(t){t(".modal-opener").on("click",function(e){this.getAttribute("data-modal")&&""!=this.getAttribute("data-modal")&&(e.preventDefault(),this.getAttribute("data-close")&&t.bmi.modal(this.getAttribute("data-close")).close(),t.bmi.modal(this.getAttribute("data-modal")).open())}),t(".modal-closer").on("click",function(e){this.getAttribute("data-close")&&""!=this.getAttribute("data-close")?(e.preventDefault(),t.bmi.modal(this.getAttribute("data-close")).close()):this.closest(".modal")&&(e.preventDefault(),t("#"+this.closest(".modal").getAttribute("id")).length>0&&t.bmi.modal(this.closest(".modal").getAttribute("id")).close())}),t(".modal-close").on("click",function(e){this.closest(".modal")&&(e.preventDefault(),t.bmi.modal(this.closest(".modal").id).close())}),t(".modal").on("click",function(e){e.target!=this||t(e.target).hasClass("modal-no-close")||t.bmi.modal(this.id).close()})}),jQuery(document).ready(function(t){t.bmi.tooltips.init();let e,i=-1,o=!1,n="";for(let t=0;t<12;++t)n+="<div></div>";function r(o){clearInterval(e),0==o?(t(".upload-progress-bar").find("span")[0].style.width=o+"%",t(".upload-percentage").text(o+"%")):100==o?(t(".upload-progress-bar").find("span")[0].style.width=o+"%",t(".upload-percentage").text(o+"%")):function(o=0,n=1e3){if(i==o)return;i=o,clearInterval(e);let r=parseInt(t(".upload-percentage").text())-1;if(r>o&&0!=o)return;let s=o-r,a=r,l=Math.abs(Math.floor(n/s));e=setInterval(function(){a+=1,t(".upload-progress-bar").find("span")[0].style.width=a+"%",t(".upload-percentage").text(a+"%"),a>=100&&(clearInterval(e),i=null)},l)}(o,1e3)}t(".spinner-loader").html(n).addClass("lds-spinner"),t.fchunker({upId:"upid",upShardSize:"5",upMaxSize:"2000",upUrl:ajaxurl,upType:"zip",upCallBack:function(e){var i=e.status,n=e.message;e.url,Math.random();2==i&&(setTimeout(function(){t("#drop-area").show(300),t(".upload-progress").hide(300)},100),t.bmi.alert("success",t("#bmi-upload-end").text(),3e3),t.bmi.modal("upload-success-modal").open(),t.bmi.reloadBackups()),1==i&&(o||(t.bmi.alert("success",t("#bmi-upload-start").text(),3e3),o=!0)),0==i&&(t.upErrorMsg(n),t("#drop-area").show(300),t(".upload-progress").hide(300)),5==i&&(t.bmi.modal("upload-invalid-manifest-modal").open(),t("#drop-area").show(300),t(".upload-progress").hide(300)),3==i&&(r(100),t.upErrorMsg(n),t("#drop-area").show(300),t(".upload-progress").hide(300))},upEvent:function(t){r(t)},upStop:function(e){r(0),setTimeout(function(){t("#drop-area").show(300),t(".upload-progress").hide(300)},100),e.includes("Type error")?(t.bmi.modal("upload-wrong-file-modal").open(),t.bmi.alert("warning",t("#bmi-upload-wrong").text(),3e3)):e.includes("File already exists")?(t.bmi.modal("upload-exist-file-modal").open(),t.bmi.alert("warning",t("#bmi-upload-exists").text(),3e3)):(t.bmi.alert("error",t("#bmi-upload-error").text(),3e3),console.error(e))},upStart:function(){o=!1,i=-1,r(0),setTimeout(function(){t("#drop-area").hide(300),t(".upload-progress").show(300)},100)}})}),jQuery(document).ready(function(t){function e(t){for(let e=0;e<t.length;++e){let i=t[e].closest(".container-radio");i&&void 0!=typeof i.classList&&(i.classList.remove("active"),!0===t[e].checked&&i.classList.add("active"))}}t('input[type="radio"]').on("change",function(){let t=this.getAttribute("name");this.closest(".container-radio");e(document.querySelectorAll('[name="'+t+'"]'))}),e(document.getElementById("bmi").querySelectorAll('input[type="radio"]'))}),jQuery(document).ready(function(t){let e=!1;t(".tabs").on("click",".tab",function(i){if(this.classList.contains("active"))return;if(!0===e)return;e=!0,t.bmi.collapsers.closeAll();let o=this.getAttribute("data-point");"manage-restore-wrapper"==o?(t("#create-backup-wrapper").hide(300),t('[data-point="create-backup-wrapper"]').removeClass("active")):"create-backup-wrapper"==o&&(t("#manage-restore-wrapper").hide(300),t('[data-point="manage-restore-wrapper"]').removeClass("active")),t("#"+o).show(300),t(this).addClass("active"),setTimeout(function(){e=!1},320)})}),jQuery(document).ready(function(t){let e=document.getElementById("drop-area");function i(t){t.preventDefault(),t.stopPropagation()}function o(t){e.classList.add("highlight")}function n(t){e.classList.remove("highlight")}e&&(["dragenter","dragover","dragleave","drop"].forEach(t=>{e.addEventListener(t,i,!1)}),["dragenter","dragover"].forEach(t=>{e.addEventListener(t,o,!1),document.querySelector("body").addEventListener(t,o,!1)}),["dragleave","drop","mouseleave"].forEach(t=>{e.addEventListener(t,n,!1)}),t("body, #drop-area").on("mouseleave dragleave drop",function(){n()}),e.addEventListener("drop",function(t){!function(t){t=[...t],jQuery.fchunker_upload("file",t[0])}(t.dataTransfer.files)},!1))});
|
1 |
+
!function(t,e){"function"==typeof define&&define.amd?define(["jquery"],function(t){return e(t)}):"object"==typeof exports?module.exports=e(require("jquery")):e(jQuery)}(0,function(t){var e={animation:"fade",animationDuration:350,content:null,contentAsHTML:!1,contentCloning:!1,debug:!0,delay:300,delayTouch:[300,500],functionInit:null,functionBefore:null,functionReady:null,functionAfter:null,functionFormat:null,IEmin:6,interactive:!1,multiple:!1,parent:null,plugins:["sideTip"],repositionOnScroll:!1,restoration:"none",selfDestruction:!0,theme:[],timer:0,trackerInterval:500,trackOrigin:!1,trackTooltip:!1,trigger:"hover",triggerClose:{click:!1,mouseleave:!1,originClick:!1,scroll:!1,tap:!1,touchleave:!1},triggerOpen:{click:!1,mouseenter:!1,tap:!1,touchstart:!1},updateAnimation:"rotate",zIndex:9999999},i="undefined"!=typeof window?window:null,o={hasTouchCapability:!(!i||!("ontouchstart"in i||i.DocumentTouch&&i.document instanceof i.DocumentTouch||i.navigator.maxTouchPoints)),hasTransitions:function(){if(!i)return!1;var t=(i.document.body||i.document.documentElement).style,e="transition",o=["Moz","Webkit","Khtml","O","ms"];if("string"==typeof t[e])return!0;e=e.charAt(0).toUpperCase()+e.substr(1);for(var n=0;n<o.length;n++)if("string"==typeof t[o[n]+e])return!0;return!1}(),IE:!1,semVer:"4.2.8",window:i},n=function(){this.__$emitterPrivate=t({}),this.__$emitterPublic=t({}),this.__instancesLatestArr=[],this.__plugins={},this._env=o};function s(t){this.$container,this.constraints=null,this.__$tooltip,this.__init(t)}function r(e,i){var o=!0;return t.each(e,function(t,n){if(void 0===i[t]||e[t]!==i[t])return o=!1,!1}),o}function a(e){var i=e.attr("id"),n=i?o.window.document.getElementById(i):null;return n?n===e[0]:t.contains(o.window.document.body,e[0])}n.prototype={__bridge:function(e,i,o){if(!i[o]){var n=function(){};n.prototype=e;var s=new n;s.__init&&s.__init(i),t.each(e,function(t,e){0!=t.indexOf("__")&&(i[t]||(i[t]=function(){return s[t].apply(s,Array.prototype.slice.apply(arguments))},i[t].bridged=s))}),i[o]=s}return this},__setWindow:function(t){return o.window=t,this},_getRuler:function(t){return new s(t)},_off:function(){return this.__$emitterPrivate.off.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_on:function(){return this.__$emitterPrivate.on.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_one:function(){return this.__$emitterPrivate.one.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_plugin:function(e){if("string"==typeof e){var i=e,o=null;return i.indexOf(".")>0?o=this.__plugins[i]:t.each(this.__plugins,function(t,e){if(e.name.substring(e.name.length-i.length-1)=="."+i)return o=e,!1}),o}if(e.name.indexOf(".")<0)throw new Error("Plugins must be namespaced");return this.__plugins[e.name]=e,e.core&&this.__bridge(e.core,this,e.name),this},_trigger:function(){var t=Array.prototype.slice.apply(arguments);return"string"==typeof t[0]&&(t[0]={type:t[0]}),this.__$emitterPrivate.trigger.apply(this.__$emitterPrivate,t),this.__$emitterPublic.trigger.apply(this.__$emitterPublic,t),this},instances:function(e){var i=[];return t(e||".tooltipstered").each(function(){var e=t(this),o=e.data("tooltipster-ns");o&&t.each(o,function(t,o){i.push(e.data(o))})}),i},instancesLatest:function(){return this.__instancesLatestArr},off:function(){return this.__$emitterPublic.off.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},on:function(){return this.__$emitterPublic.on.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},one:function(){return this.__$emitterPublic.one.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},origins:function(e){return t((e?e+" ":"")+".tooltipstered").toArray()},setDefaults:function(i){return t.extend(e,i),this},triggerHandler:function(){return this.__$emitterPublic.triggerHandler.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this}},t.tooltipster=new n,t.Tooltipster=function(e,i){this.__callbacks={close:[],open:[]},this.__closingTime,this.__Content,this.__contentBcr,this.__destroyed=!1,this.__$emitterPrivate=t({}),this.__$emitterPublic=t({}),this.__enabled=!0,this.__garbageCollector,this.__Geometry,this.__lastPosition,this.__namespace="tooltipster-"+Math.round(1e6*Math.random()),this.__options,this.__$originParents,this.__pointerIsOverOrigin=!1,this.__previousThemes=[],this.__state="closed",this.__timeouts={close:[],open:null},this.__touchEvents=[],this.__tracker=null,this._$origin,this._$tooltip,this.__init(e,i)},t.Tooltipster.prototype={__init:function(i,n){var s=this;if(s._$origin=t(i),s.__options=t.extend(!0,{},e,n),s.__optionsFormat(),!o.IE||o.IE>=s.__options.IEmin){var r=null;if(void 0===s._$origin.data("tooltipster-initialTitle")&&(void 0===(r=s._$origin.attr("title"))&&(r=null),s._$origin.data("tooltipster-initialTitle",r)),null!==s.__options.content)s.__contentSet(s.__options.content);else{var a,l=s._$origin.attr("data-tooltip-content");l&&(a=t(l)),a&&a[0]?s.__contentSet(a.first()):s.__contentSet(r)}s._$origin.removeAttr("title").addClass("tooltipstered"),s.__prepareOrigin(),s.__prepareGC(),t.each(s.__options.plugins,function(t,e){s._plug(e)}),o.hasTouchCapability&&t(o.window.document.body).on("touchmove."+s.__namespace+"-triggerOpen",function(t){s._touchRecordEvent(t)}),s._on("created",function(){s.__prepareTooltip()})._on("repositioned",function(t){s.__lastPosition=t.position})}else s.__options.disabled=!0},__contentInsert:function(){var t=this._$tooltip.find(".tooltipster-content"),e=this.__Content;return this._trigger({type:"format",content:this.__Content,format:function(t){e=t}}),this.__options.functionFormat&&(e=this.__options.functionFormat.call(this,this,{origin:this._$origin[0]},this.__Content)),"string"!=typeof e||this.__options.contentAsHTML?t.empty().append(e):t.text(e),this},__contentSet:function(e){return e instanceof t&&this.__options.contentCloning&&(e=e.clone(!0)),this.__Content=e,this._trigger({type:"updated",content:e}),this},__destroyError:function(){throw new Error("This tooltip has been destroyed and cannot execute your method call.")},__geometry:function(){var e=this._$origin,i=this._$origin.is("area");if(i){var n=this._$origin.parent().attr("name");e=t('img[usemap="#'+n+'"]')}var s=e[0].getBoundingClientRect(),r=t(o.window.document),a=t(o.window),l=e,c={available:{document:null,window:null},document:{size:{height:r.height(),width:r.width()}},window:{scroll:{left:o.window.scrollX||o.window.document.documentElement.scrollLeft,top:o.window.scrollY||o.window.document.documentElement.scrollTop},size:{height:a.height(),width:a.width()}},origin:{fixedLineage:!1,offset:{},size:{height:s.bottom-s.top,width:s.right-s.left},usemapImage:i?e[0]:null,windowOffset:{bottom:s.bottom,left:s.left,right:s.right,top:s.top}}};if(i){var p=this._$origin.attr("shape"),u=this._$origin.attr("coords");if(u&&(u=u.split(","),t.map(u,function(t,e){u[e]=parseInt(t)})),"default"!=p)switch(p){case"circle":var d=u[0],_=u[1],f=u[2],h=_-f,m=d-f;c.origin.size.height=2*f,c.origin.size.width=c.origin.size.height,c.origin.windowOffset.left+=m,c.origin.windowOffset.top+=h;break;case"rect":var g=u[0],b=u[1],w=u[2],v=u[3];c.origin.size.height=v-b,c.origin.size.width=w-g,c.origin.windowOffset.left+=g,c.origin.windowOffset.top+=b;break;case"poly":for(var y=0,k=0,x=0,$=0,C="even",T=0;T<u.length;T++){var O=u[T];"even"==C?(O>x&&(x=O,0===T&&(y=x)),O<y&&(y=O),C="odd"):(O>$&&($=O,1==T&&(k=$)),O<k&&(k=O),C="even")}c.origin.size.height=$-k,c.origin.size.width=x-y,c.origin.windowOffset.left+=y,c.origin.windowOffset.top+=k}}for(this._trigger({type:"geometry",edit:function(t){c.origin.size.height=t.height,c.origin.windowOffset.left=t.left,c.origin.windowOffset.top=t.top,c.origin.size.width=t.width},geometry:{height:c.origin.size.height,left:c.origin.windowOffset.left,top:c.origin.windowOffset.top,width:c.origin.size.width}}),c.origin.windowOffset.right=c.origin.windowOffset.left+c.origin.size.width,c.origin.windowOffset.bottom=c.origin.windowOffset.top+c.origin.size.height,c.origin.offset.left=c.origin.windowOffset.left+c.window.scroll.left,c.origin.offset.top=c.origin.windowOffset.top+c.window.scroll.top,c.origin.offset.bottom=c.origin.offset.top+c.origin.size.height,c.origin.offset.right=c.origin.offset.left+c.origin.size.width,c.available.document={bottom:{height:c.document.size.height-c.origin.offset.bottom,width:c.document.size.width},left:{height:c.document.size.height,width:c.origin.offset.left},right:{height:c.document.size.height,width:c.document.size.width-c.origin.offset.right},top:{height:c.origin.offset.top,width:c.document.size.width}},c.available.window={bottom:{height:Math.max(c.window.size.height-Math.max(c.origin.windowOffset.bottom,0),0),width:c.window.size.width},left:{height:c.window.size.height,width:Math.max(c.origin.windowOffset.left,0)},right:{height:c.window.size.height,width:Math.max(c.window.size.width-Math.max(c.origin.windowOffset.right,0),0)},top:{height:Math.max(c.origin.windowOffset.top,0),width:c.window.size.width}};"html"!=l[0].tagName.toLowerCase();){if("fixed"==l.css("position")){c.origin.fixedLineage=!0;break}l=l.parent()}return c},__optionsFormat:function(){return"number"==typeof this.__options.animationDuration&&(this.__options.animationDuration=[this.__options.animationDuration,this.__options.animationDuration]),"number"==typeof this.__options.delay&&(this.__options.delay=[this.__options.delay,this.__options.delay]),"number"==typeof this.__options.delayTouch&&(this.__options.delayTouch=[this.__options.delayTouch,this.__options.delayTouch]),"string"==typeof this.__options.theme&&(this.__options.theme=[this.__options.theme]),null===this.__options.parent?this.__options.parent=t(o.window.document.body):"string"==typeof this.__options.parent&&(this.__options.parent=t(this.__options.parent)),"hover"==this.__options.trigger?(this.__options.triggerOpen={mouseenter:!0,touchstart:!0},this.__options.triggerClose={mouseleave:!0,originClick:!0,touchleave:!0}):"click"==this.__options.trigger&&(this.__options.triggerOpen={click:!0,tap:!0},this.__options.triggerClose={click:!0,tap:!0}),this._trigger("options"),this},__prepareGC:function(){var e=this;return e.__options.selfDestruction?e.__garbageCollector=setInterval(function(){var i=(new Date).getTime();e.__touchEvents=t.grep(e.__touchEvents,function(t,e){return i-t.time>6e4}),a(e._$origin)||e.close(function(){e.destroy()})},2e4):clearInterval(e.__garbageCollector),e},__prepareOrigin:function(){var t=this;if(t._$origin.off("."+t.__namespace+"-triggerOpen"),o.hasTouchCapability&&t._$origin.on("touchstart."+t.__namespace+"-triggerOpen touchend."+t.__namespace+"-triggerOpen touchcancel."+t.__namespace+"-triggerOpen",function(e){t._touchRecordEvent(e)}),t.__options.triggerOpen.click||t.__options.triggerOpen.tap&&o.hasTouchCapability){var e="";t.__options.triggerOpen.click&&(e+="click."+t.__namespace+"-triggerOpen "),t.__options.triggerOpen.tap&&o.hasTouchCapability&&(e+="touchend."+t.__namespace+"-triggerOpen"),t._$origin.on(e,function(e){t._touchIsMeaningfulEvent(e)&&t._open(e)})}if(t.__options.triggerOpen.mouseenter||t.__options.triggerOpen.touchstart&&o.hasTouchCapability){e="";t.__options.triggerOpen.mouseenter&&(e+="mouseenter."+t.__namespace+"-triggerOpen "),t.__options.triggerOpen.touchstart&&o.hasTouchCapability&&(e+="touchstart."+t.__namespace+"-triggerOpen"),t._$origin.on(e,function(e){!t._touchIsTouchEvent(e)&&t._touchIsEmulatedEvent(e)||(t.__pointerIsOverOrigin=!0,t._openShortly(e))})}if(t.__options.triggerClose.mouseleave||t.__options.triggerClose.touchleave&&o.hasTouchCapability){e="";t.__options.triggerClose.mouseleave&&(e+="mouseleave."+t.__namespace+"-triggerOpen "),t.__options.triggerClose.touchleave&&o.hasTouchCapability&&(e+="touchend."+t.__namespace+"-triggerOpen touchcancel."+t.__namespace+"-triggerOpen"),t._$origin.on(e,function(e){t._touchIsMeaningfulEvent(e)&&(t.__pointerIsOverOrigin=!1)})}return t},__prepareTooltip:function(){var e=this,i=e.__options.interactive?"auto":"";return e._$tooltip.attr("id",e.__namespace).css({"pointer-events":i,zIndex:e.__options.zIndex}),t.each(e.__previousThemes,function(t,i){e._$tooltip.removeClass(i)}),t.each(e.__options.theme,function(t,i){e._$tooltip.addClass(i)}),e.__previousThemes=t.merge([],e.__options.theme),e},__scrollHandler:function(e){if(this.__options.triggerClose.scroll)this._close(e);else if(a(this._$origin)&&a(this._$tooltip)){var i=null;if(e.target===o.window.document)this.__Geometry.origin.fixedLineage||this.__options.repositionOnScroll&&this.reposition(e);else{i=this.__geometry();var n=!1;if("fixed"!=this._$origin.css("position")&&this.__$originParents.each(function(e,o){var s=t(o),r=s.css("overflow-x"),a=s.css("overflow-y");if("visible"!=r||"visible"!=a){var l=o.getBoundingClientRect();if("visible"!=r&&(i.origin.windowOffset.left<l.left||i.origin.windowOffset.right>l.right))return n=!0,!1;if("visible"!=a&&(i.origin.windowOffset.top<l.top||i.origin.windowOffset.bottom>l.bottom))return n=!0,!1}if("fixed"==s.css("position"))return!1}),n)this._$tooltip.css("visibility","hidden");else if(this._$tooltip.css("visibility","visible"),this.__options.repositionOnScroll)this.reposition(e);else{var s=i.origin.offset.left-this.__Geometry.origin.offset.left,r=i.origin.offset.top-this.__Geometry.origin.offset.top;this._$tooltip.css({left:this.__lastPosition.coord.left+s,top:this.__lastPosition.coord.top+r})}}this._trigger({type:"scroll",event:e,geo:i})}return this},__stateSet:function(t){return this.__state=t,this._trigger({type:"state",state:t}),this},__timeoutsClear:function(){return clearTimeout(this.__timeouts.open),this.__timeouts.open=null,t.each(this.__timeouts.close,function(t,e){clearTimeout(e)}),this.__timeouts.close=[],this},__trackerStart:function(){var t=this,e=t._$tooltip.find(".tooltipster-content");return t.__options.trackTooltip&&(t.__contentBcr=e[0].getBoundingClientRect()),t.__tracker=setInterval(function(){if(a(t._$origin)&&a(t._$tooltip)){if(t.__options.trackOrigin){var i=t.__geometry(),o=!1;r(i.origin.size,t.__Geometry.origin.size)&&(t.__Geometry.origin.fixedLineage?r(i.origin.windowOffset,t.__Geometry.origin.windowOffset)&&(o=!0):r(i.origin.offset,t.__Geometry.origin.offset)&&(o=!0)),o||(t.__options.triggerClose.mouseleave?t._close():t.reposition())}if(t.__options.trackTooltip){var n=e[0].getBoundingClientRect();n.height===t.__contentBcr.height&&n.width===t.__contentBcr.width||(t.reposition(),t.__contentBcr=n)}}else t._close()},t.__options.trackerInterval),t},_close:function(e,i,n){var s=this,r=!0;if(s._trigger({type:"close",event:e,stop:function(){r=!1}}),r||n){i&&s.__callbacks.close.push(i),s.__callbacks.open=[],s.__timeoutsClear();var a=function(){t.each(s.__callbacks.close,function(t,i){i.call(s,s,{event:e,origin:s._$origin[0]})}),s.__callbacks.close=[]};if("closed"!=s.__state){var l=!0,c=(new Date).getTime()+s.__options.animationDuration[1];if("disappearing"==s.__state&&c>s.__closingTime&&s.__options.animationDuration[1]>0&&(l=!1),l){s.__closingTime=c,"disappearing"!=s.__state&&s.__stateSet("disappearing");var p=function(){clearInterval(s.__tracker),s._trigger({type:"closing",event:e}),s._$tooltip.off("."+s.__namespace+"-triggerClose").removeClass("tooltipster-dying"),t(o.window).off("."+s.__namespace+"-triggerClose"),s.__$originParents.each(function(e,i){t(i).off("scroll."+s.__namespace+"-triggerClose")}),s.__$originParents=null,t(o.window.document.body).off("."+s.__namespace+"-triggerClose"),s._$origin.off("."+s.__namespace+"-triggerClose"),s._off("dismissable"),s.__stateSet("closed"),s._trigger({type:"after",event:e}),s.__options.functionAfter&&s.__options.functionAfter.call(s,s,{event:e,origin:s._$origin[0]}),a()};o.hasTransitions?(s._$tooltip.css({"-moz-animation-duration":s.__options.animationDuration[1]+"ms","-ms-animation-duration":s.__options.animationDuration[1]+"ms","-o-animation-duration":s.__options.animationDuration[1]+"ms","-webkit-animation-duration":s.__options.animationDuration[1]+"ms","animation-duration":s.__options.animationDuration[1]+"ms","transition-duration":s.__options.animationDuration[1]+"ms"}),s._$tooltip.clearQueue().removeClass("tooltipster-show").addClass("tooltipster-dying"),s.__options.animationDuration[1]>0&&s._$tooltip.delay(s.__options.animationDuration[1]),s._$tooltip.queue(p)):s._$tooltip.stop().fadeOut(s.__options.animationDuration[1],p)}}else a()}return s},_off:function(){return this.__$emitterPrivate.off.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_on:function(){return this.__$emitterPrivate.on.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_one:function(){return this.__$emitterPrivate.one.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_open:function(e,i){var n=this;if(!n.__destroying&&a(n._$origin)&&n.__enabled){var s=!0;if("closed"==n.__state&&(n._trigger({type:"before",event:e,stop:function(){s=!1}}),s&&n.__options.functionBefore&&(s=n.__options.functionBefore.call(n,n,{event:e,origin:n._$origin[0]}))),!1!==s&&null!==n.__Content){i&&n.__callbacks.open.push(i),n.__callbacks.close=[],n.__timeoutsClear();var r,l=function(){"stable"!=n.__state&&n.__stateSet("stable"),t.each(n.__callbacks.open,function(t,e){e.call(n,n,{origin:n._$origin[0],tooltip:n._$tooltip[0]})}),n.__callbacks.open=[]};if("closed"!==n.__state)r=0,"disappearing"===n.__state?(n.__stateSet("appearing"),o.hasTransitions?(n._$tooltip.clearQueue().removeClass("tooltipster-dying").addClass("tooltipster-show"),n.__options.animationDuration[0]>0&&n._$tooltip.delay(n.__options.animationDuration[0]),n._$tooltip.queue(l)):n._$tooltip.stop().fadeIn(l)):"stable"==n.__state&&l();else{if(n.__stateSet("appearing"),r=n.__options.animationDuration[0],n.__contentInsert(),n.reposition(e,!0),o.hasTransitions?(n._$tooltip.addClass("tooltipster-"+n.__options.animation).addClass("tooltipster-initial").css({"-moz-animation-duration":n.__options.animationDuration[0]+"ms","-ms-animation-duration":n.__options.animationDuration[0]+"ms","-o-animation-duration":n.__options.animationDuration[0]+"ms","-webkit-animation-duration":n.__options.animationDuration[0]+"ms","animation-duration":n.__options.animationDuration[0]+"ms","transition-duration":n.__options.animationDuration[0]+"ms"}),setTimeout(function(){"closed"!=n.__state&&(n._$tooltip.addClass("tooltipster-show").removeClass("tooltipster-initial"),n.__options.animationDuration[0]>0&&n._$tooltip.delay(n.__options.animationDuration[0]),n._$tooltip.queue(l))},0)):n._$tooltip.css("display","none").fadeIn(n.__options.animationDuration[0],l),n.__trackerStart(),t(o.window).on("resize."+n.__namespace+"-triggerClose",function(e){var i=t(document.activeElement);(i.is("input")||i.is("textarea"))&&t.contains(n._$tooltip[0],i[0])||n.reposition(e)}).on("scroll."+n.__namespace+"-triggerClose",function(t){n.__scrollHandler(t)}),n.__$originParents=n._$origin.parents(),n.__$originParents.each(function(e,i){t(i).on("scroll."+n.__namespace+"-triggerClose",function(t){n.__scrollHandler(t)})}),n.__options.triggerClose.mouseleave||n.__options.triggerClose.touchleave&&o.hasTouchCapability){n._on("dismissable",function(t){t.dismissable?t.delay?(d=setTimeout(function(){n._close(t.event)},t.delay),n.__timeouts.close.push(d)):n._close(t):clearTimeout(d)});var c=n._$origin,p="",u="",d=null;n.__options.interactive&&(c=c.add(n._$tooltip)),n.__options.triggerClose.mouseleave&&(p+="mouseenter."+n.__namespace+"-triggerClose ",u+="mouseleave."+n.__namespace+"-triggerClose "),n.__options.triggerClose.touchleave&&o.hasTouchCapability&&(p+="touchstart."+n.__namespace+"-triggerClose",u+="touchend."+n.__namespace+"-triggerClose touchcancel."+n.__namespace+"-triggerClose"),c.on(u,function(t){if(n._touchIsTouchEvent(t)||!n._touchIsEmulatedEvent(t)){var e="mouseleave"==t.type?n.__options.delay:n.__options.delayTouch;n._trigger({delay:e[1],dismissable:!0,event:t,type:"dismissable"})}}).on(p,function(t){!n._touchIsTouchEvent(t)&&n._touchIsEmulatedEvent(t)||n._trigger({dismissable:!1,event:t,type:"dismissable"})})}n.__options.triggerClose.originClick&&n._$origin.on("click."+n.__namespace+"-triggerClose",function(t){n._touchIsTouchEvent(t)||n._touchIsEmulatedEvent(t)||n._close(t)}),(n.__options.triggerClose.click||n.__options.triggerClose.tap&&o.hasTouchCapability)&&setTimeout(function(){if("closed"!=n.__state){var e="",i=t(o.window.document.body);n.__options.triggerClose.click&&(e+="click."+n.__namespace+"-triggerClose "),n.__options.triggerClose.tap&&o.hasTouchCapability&&(e+="touchend."+n.__namespace+"-triggerClose"),i.on(e,function(e){n._touchIsMeaningfulEvent(e)&&(n._touchRecordEvent(e),n.__options.interactive&&t.contains(n._$tooltip[0],e.target)||n._close(e))}),n.__options.triggerClose.tap&&o.hasTouchCapability&&i.on("touchstart."+n.__namespace+"-triggerClose",function(t){n._touchRecordEvent(t)})}},0),n._trigger("ready"),n.__options.functionReady&&n.__options.functionReady.call(n,n,{origin:n._$origin[0],tooltip:n._$tooltip[0]})}if(n.__options.timer>0){d=setTimeout(function(){n._close()},n.__options.timer+r);n.__timeouts.close.push(d)}}}return n},_openShortly:function(t){var e=this,i=!0;if("stable"!=e.__state&&"appearing"!=e.__state&&!e.__timeouts.open&&(e._trigger({type:"start",event:t,stop:function(){i=!1}}),i)){var o=0==t.type.indexOf("touch")?e.__options.delayTouch:e.__options.delay;o[0]?e.__timeouts.open=setTimeout(function(){e.__timeouts.open=null,e.__pointerIsOverOrigin&&e._touchIsMeaningfulEvent(t)?(e._trigger("startend"),e._open(t)):e._trigger("startcancel")},o[0]):(e._trigger("startend"),e._open(t))}return e},_optionsExtract:function(e,i){var o=this,n=t.extend(!0,{},i),s=o.__options[e];return s||(s={},t.each(i,function(t,e){var i=o.__options[t];void 0!==i&&(s[t]=i)})),t.each(n,function(e,i){void 0!==s[e]&&("object"!=typeof i||i instanceof Array||null==i||"object"!=typeof s[e]||s[e]instanceof Array||null==s[e]?n[e]=s[e]:t.extend(n[e],s[e]))}),n},_plug:function(e){var i=t.tooltipster._plugin(e);if(!i)throw new Error('The "'+e+'" plugin is not defined');return i.instance&&t.tooltipster.__bridge(i.instance,this,i.name),this},_touchIsEmulatedEvent:function(t){for(var e=!1,i=(new Date).getTime(),o=this.__touchEvents.length-1;o>=0;o--){var n=this.__touchEvents[o];if(!(i-n.time<500))break;n.target===t.target&&(e=!0)}return e},_touchIsMeaningfulEvent:function(t){return this._touchIsTouchEvent(t)&&!this._touchSwiped(t.target)||!this._touchIsTouchEvent(t)&&!this._touchIsEmulatedEvent(t)},_touchIsTouchEvent:function(t){return 0==t.type.indexOf("touch")},_touchRecordEvent:function(t){return this._touchIsTouchEvent(t)&&(t.time=(new Date).getTime(),this.__touchEvents.push(t)),this},_touchSwiped:function(t){for(var e=!1,i=this.__touchEvents.length-1;i>=0;i--){var o=this.__touchEvents[i];if("touchmove"==o.type){e=!0;break}if("touchstart"==o.type&&t===o.target)break}return e},_trigger:function(){var e=Array.prototype.slice.apply(arguments);return"string"==typeof e[0]&&(e[0]={type:e[0]}),e[0].instance=this,e[0].origin=this._$origin?this._$origin[0]:null,e[0].tooltip=this._$tooltip?this._$tooltip[0]:null,this.__$emitterPrivate.trigger.apply(this.__$emitterPrivate,e),t.tooltipster._trigger.apply(t.tooltipster,e),this.__$emitterPublic.trigger.apply(this.__$emitterPublic,e),this},_unplug:function(e){var i=this;if(i[e]){var o=t.tooltipster._plugin(e);o.instance&&t.each(o.instance,function(t,o){i[t]&&i[t].bridged===i[e]&&delete i[t]}),i[e].__destroy&&i[e].__destroy(),delete i[e]}return i},close:function(t){return this.__destroyed?this.__destroyError():this._close(null,t),this},content:function(t){var e=this;if(void 0===t)return e.__Content;if(e.__destroyed)e.__destroyError();else if(e.__contentSet(t),null!==e.__Content){if("closed"!==e.__state&&(e.__contentInsert(),e.reposition(),e.__options.updateAnimation))if(o.hasTransitions){var i=e.__options.updateAnimation;e._$tooltip.addClass("tooltipster-update-"+i),setTimeout(function(){"closed"!=e.__state&&e._$tooltip.removeClass("tooltipster-update-"+i)},1e3)}else e._$tooltip.fadeTo(200,.5,function(){"closed"!=e.__state&&e._$tooltip.fadeTo(200,1)})}else e._close();return e},destroy:function(){var e=this;if(e.__destroyed)e.__destroyError();else{"closed"!=e.__state?e.option("animationDuration",0)._close(null,null,!0):e.__timeoutsClear(),e._trigger("destroy"),e.__destroyed=!0,e._$origin.removeData(e.__namespace).off("."+e.__namespace+"-triggerOpen"),t(o.window.document.body).off("."+e.__namespace+"-triggerOpen");var i=e._$origin.data("tooltipster-ns");if(i)if(1===i.length){var n=null;"previous"==e.__options.restoration?n=e._$origin.data("tooltipster-initialTitle"):"current"==e.__options.restoration&&(n="string"==typeof e.__Content?e.__Content:t("<div></div>").append(e.__Content).html()),n&&e._$origin.attr("title",n),e._$origin.removeClass("tooltipstered"),e._$origin.removeData("tooltipster-ns").removeData("tooltipster-initialTitle")}else i=t.grep(i,function(t,i){return t!==e.__namespace}),e._$origin.data("tooltipster-ns",i);e._trigger("destroyed"),e._off(),e.off(),e.__Content=null,e.__$emitterPrivate=null,e.__$emitterPublic=null,e.__options.parent=null,e._$origin=null,e._$tooltip=null,t.tooltipster.__instancesLatestArr=t.grep(t.tooltipster.__instancesLatestArr,function(t,i){return e!==t}),clearInterval(e.__garbageCollector)}return e},disable:function(){return this.__destroyed?(this.__destroyError(),this):(this._close(),this.__enabled=!1,this)},elementOrigin:function(){if(!this.__destroyed)return this._$origin[0];this.__destroyError()},elementTooltip:function(){return this._$tooltip?this._$tooltip[0]:null},enable:function(){return this.__enabled=!0,this},hide:function(t){return this.close(t)},instance:function(){return this},off:function(){return this.__destroyed||this.__$emitterPublic.off.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},on:function(){return this.__destroyed?this.__destroyError():this.__$emitterPublic.on.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},one:function(){return this.__destroyed?this.__destroyError():this.__$emitterPublic.one.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},open:function(t){return this.__destroyed?this.__destroyError():this._open(null,t),this},option:function(e,i){return void 0===i?this.__options[e]:(this.__destroyed?this.__destroyError():(this.__options[e]=i,this.__optionsFormat(),t.inArray(e,["trigger","triggerClose","triggerOpen"])>=0&&this.__prepareOrigin(),"selfDestruction"===e&&this.__prepareGC()),this)},reposition:function(t,e){return this.__destroyed?this.__destroyError():"closed"!=this.__state&&a(this._$origin)&&(e||a(this._$tooltip))&&(e||this._$tooltip.detach(),this.__Geometry=this.__geometry(),this._trigger({type:"reposition",event:t,helper:{geo:this.__Geometry}})),this},show:function(t){return this.open(t)},status:function(){return{destroyed:this.__destroyed,enabled:this.__enabled,open:"closed"!==this.__state,state:this.__state}},triggerHandler:function(){return this.__destroyed?this.__destroyError():this.__$emitterPublic.triggerHandler.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this}},t.fn.tooltipster=function(){var i=Array.prototype.slice.apply(arguments);if(0===this.length)return this;if("string"==typeof i[0]){var o="#*$~&";return this.each(function(){var e=t(this).data("tooltipster-ns"),n=e?t(this).data(e[0]):null;if(!n)throw new Error("You called Tooltipster's \""+i[0]+'" method on an uninitialized element');if("function"!=typeof n[i[0]])throw new Error('Unknown method "'+i[0]+'"');this.length>1&&"content"==i[0]&&(i[1]instanceof t||"object"==typeof i[1]&&null!=i[1]&&i[1].tagName)&&!n.__options.contentCloning&&n.__options.debug;var s=n[i[0]](i[1],i[2]);if(s!==n||"instance"===i[0])return o=s,!1}),"#*$~&"!==o?o:this}t.tooltipster.__instancesLatestArr=[];var n=i[0]&&void 0!==i[0].multiple,s=n&&i[0].multiple||!n&&e.multiple,r=i[0]&&void 0!==i[0].content,a=r&&i[0].content||!r&&e.content,l=i[0]&&void 0!==i[0].contentCloning,c=(l&&i[0].contentCloning,i[0]&&void 0!==i[0].debug);c&&i[0].debug;return this.length>1&&(a instanceof t||"object"==typeof a&&null!=a&&a.tagName),this.each(function(){var e=!1,o=t(this),n=o.data("tooltipster-ns"),r=null;n?s&&(e=!0):e=!0,e&&(r=new t.Tooltipster(this,i[0]),n||(n=[]),n.push(r.__namespace),o.data("tooltipster-ns",n),o.data(r.__namespace,r),r.__options.functionInit&&r.__options.functionInit.call(r,r,{origin:this}),r._trigger("init")),t.tooltipster.__instancesLatestArr.push(r)}),this},s.prototype={__init:function(e){this.__$tooltip=e,this.__$tooltip.css({left:0,overflow:"hidden",position:"absolute",top:0}).find(".tooltipster-content").css("overflow","auto"),this.$container=t('<div class="tooltipster-ruler"></div>').append(this.__$tooltip).appendTo(o.window.document.body)},__forceRedraw:function(){var t=this.__$tooltip.parent();this.__$tooltip.detach(),this.__$tooltip.appendTo(t)},constrain:function(t,e){return this.constraints={width:t,height:e},this.__$tooltip.css({display:"block",height:"",overflow:"auto",width:t}),this},destroy:function(){this.__$tooltip.detach().find(".tooltipster-content").css({display:"",overflow:""}),this.$container.remove()},free:function(){return this.constraints=null,this.__$tooltip.css({display:"",height:"",overflow:"visible",width:""}),this},measure:function(){this.__forceRedraw();var t=this.__$tooltip[0].getBoundingClientRect(),e={size:{height:t.height||t.bottom-t.top,width:t.width||t.right-t.left}};if(this.constraints){var i=this.__$tooltip.find(".tooltipster-content"),n=this.__$tooltip.outerHeight(),s=i[0].getBoundingClientRect(),r={height:n<=this.constraints.height,width:t.width<=this.constraints.width&&s.width>=i[0].scrollWidth-1};e.fits=r.height&&r.width}return o.IE&&o.IE<=11&&e.size.width!==o.window.document.documentElement.clientWidth&&(e.size.width=Math.ceil(e.size.width)+1),e}};var l=navigator.userAgent.toLowerCase();-1!=l.indexOf("msie")?o.IE=parseInt(l.split("msie")[1]):-1!==l.toLowerCase().indexOf("trident")&&-1!==l.indexOf(" rv:11")?o.IE=11:-1!=l.toLowerCase().indexOf("edge/")&&(o.IE=parseInt(l.toLowerCase().split("edge/")[1])),t.tooltipster._plugin({name:"tooltipster.sideTip",instance:{__defaults:function(){return{arrow:!0,distance:6,functionPosition:null,maxWidth:null,minIntersection:16,minWidth:0,position:null,side:"top",viewportAware:!0}},__init:function(t){var e=this;e.__instance=t,e.__namespace="tooltipster-sideTip-"+Math.round(1e6*Math.random()),e.__previousState="closed",e.__options,e.__optionsFormat(),e.__instance._on("state."+e.__namespace,function(t){"closed"==t.state?e.__close():"appearing"==t.state&&"closed"==e.__previousState&&e.__create(),e.__previousState=t.state}),e.__instance._on("options."+e.__namespace,function(){e.__optionsFormat()}),e.__instance._on("reposition."+e.__namespace,function(t){e.__reposition(t.event,t.helper)})},__close:function(){this.__instance.content()instanceof t&&this.__instance.content().detach(),this.__instance._$tooltip.remove(),this.__instance._$tooltip=null},__create:function(){var e=t('<div class="tooltipster-base tooltipster-sidetip"><div class="tooltipster-box"><div class="tooltipster-content"></div></div><div class="tooltipster-arrow"><div class="tooltipster-arrow-uncropped"><div class="tooltipster-arrow-border"></div><div class="tooltipster-arrow-background"></div></div></div></div>');this.__options.arrow||e.find(".tooltipster-box").css("margin",0).end().find(".tooltipster-arrow").hide(),this.__options.minWidth&&e.css("min-width",this.__options.minWidth+"px"),this.__options.maxWidth&&e.css("max-width",this.__options.maxWidth+"px"),this.__instance._$tooltip=e,this.__instance._trigger("created")},__destroy:function(){this.__instance._off("."+self.__namespace)},__optionsFormat:function(){if(this.__options=this.__instance._optionsExtract("tooltipster.sideTip",this.__defaults()),this.__options.position&&(this.__options.side=this.__options.position),"object"!=typeof this.__options.distance&&(this.__options.distance=[this.__options.distance]),this.__options.distance.length<4&&(void 0===this.__options.distance[1]&&(this.__options.distance[1]=this.__options.distance[0]),void 0===this.__options.distance[2]&&(this.__options.distance[2]=this.__options.distance[0]),void 0===this.__options.distance[3]&&(this.__options.distance[3]=this.__options.distance[1])),this.__options.distance={top:this.__options.distance[0],right:this.__options.distance[1],bottom:this.__options.distance[2],left:this.__options.distance[3]},"string"==typeof this.__options.side){this.__options.side=[this.__options.side,{top:"bottom",right:"left",bottom:"top",left:"right"}[this.__options.side]],"left"==this.__options.side[0]||"right"==this.__options.side[0]?this.__options.side.push("top","bottom"):this.__options.side.push("right","left")}6===t.tooltipster._env.IE&&!0!==this.__options.arrow&&(this.__options.arrow=!1)},__reposition:function(e,i){var o,n=this,s=n.__targetFind(i),r=[];n.__instance._$tooltip.detach();var a=n.__instance._$tooltip.clone(),l=t.tooltipster._getRuler(a),c=!1,p=n.__instance.option("animation");switch(p&&a.removeClass("tooltipster-"+p),t.each(["window","document"],function(o,p){var u=null;if(n.__instance._trigger({container:p,helper:i,satisfied:c,takeTest:function(t){u=t},results:r,type:"positionTest"}),1==u||0!=u&&0==c&&("window"!=p||n.__options.viewportAware))for(o=0;o<n.__options.side.length;o++){var d={horizontal:0,vertical:0},_=n.__options.side[o];"top"==_||"bottom"==_?d.vertical=n.__options.distance[_]:d.horizontal=n.__options.distance[_],n.__sideChange(a,_),t.each(["natural","constrained"],function(t,o){if(u=null,n.__instance._trigger({container:p,event:e,helper:i,mode:o,results:r,satisfied:c,side:_,takeTest:function(t){u=t},type:"positionTest"}),1==u||0!=u&&0==c){var a={container:p,distance:d,fits:null,mode:o,outerSize:null,side:_,size:null,target:s[_],whole:null},f=("natural"==o?l.free():l.constrain(i.geo.available[p][_].width-d.horizontal,i.geo.available[p][_].height-d.vertical)).measure();if(a.size=f.size,a.outerSize={height:f.size.height+d.vertical,width:f.size.width+d.horizontal},"natural"==o?i.geo.available[p][_].width>=a.outerSize.width&&i.geo.available[p][_].height>=a.outerSize.height?a.fits=!0:a.fits=!1:a.fits=f.fits,"window"==p&&(a.fits?a.whole="top"==_||"bottom"==_?i.geo.origin.windowOffset.right>=n.__options.minIntersection&&i.geo.window.size.width-i.geo.origin.windowOffset.left>=n.__options.minIntersection:i.geo.origin.windowOffset.bottom>=n.__options.minIntersection&&i.geo.window.size.height-i.geo.origin.windowOffset.top>=n.__options.minIntersection:a.whole=!1),r.push(a),a.whole)c=!0;else if("natural"==a.mode&&(a.fits||a.size.width<=i.geo.available[p][_].width))return!1}})}}),n.__instance._trigger({edit:function(t){r=t},event:e,helper:i,results:r,type:"positionTested"}),r.sort(function(t,e){return t.whole&&!e.whole?-1:!t.whole&&e.whole?1:t.whole&&e.whole?(i=n.__options.side.indexOf(t.side))<(o=n.__options.side.indexOf(e.side))?-1:i>o?1:"natural"==t.mode?-1:1:t.fits&&!e.fits?-1:!t.fits&&e.fits?1:t.fits&&e.fits?(i=n.__options.side.indexOf(t.side))<(o=n.__options.side.indexOf(e.side))?-1:i>o?1:"natural"==t.mode?-1:1:"document"==t.container&&"bottom"==t.side&&"natural"==t.mode?-1:1;var i,o}),(o=r[0]).coord={},o.side){case"left":case"right":o.coord.top=Math.floor(o.target-o.size.height/2);break;case"bottom":case"top":o.coord.left=Math.floor(o.target-o.size.width/2)}switch(o.side){case"left":o.coord.left=i.geo.origin.windowOffset.left-o.outerSize.width;break;case"right":o.coord.left=i.geo.origin.windowOffset.right+o.distance.horizontal;break;case"top":o.coord.top=i.geo.origin.windowOffset.top-o.outerSize.height;break;case"bottom":o.coord.top=i.geo.origin.windowOffset.bottom+o.distance.vertical}"window"==o.container?"top"==o.side||"bottom"==o.side?o.coord.left<0?i.geo.origin.windowOffset.right-this.__options.minIntersection>=0?o.coord.left=0:o.coord.left=i.geo.origin.windowOffset.right-this.__options.minIntersection-1:o.coord.left>i.geo.window.size.width-o.size.width&&(i.geo.origin.windowOffset.left+this.__options.minIntersection<=i.geo.window.size.width?o.coord.left=i.geo.window.size.width-o.size.width:o.coord.left=i.geo.origin.windowOffset.left+this.__options.minIntersection+1-o.size.width):o.coord.top<0?i.geo.origin.windowOffset.bottom-this.__options.minIntersection>=0?o.coord.top=0:o.coord.top=i.geo.origin.windowOffset.bottom-this.__options.minIntersection-1:o.coord.top>i.geo.window.size.height-o.size.height&&(i.geo.origin.windowOffset.top+this.__options.minIntersection<=i.geo.window.size.height?o.coord.top=i.geo.window.size.height-o.size.height:o.coord.top=i.geo.origin.windowOffset.top+this.__options.minIntersection+1-o.size.height):(o.coord.left>i.geo.window.size.width-o.size.width&&(o.coord.left=i.geo.window.size.width-o.size.width),o.coord.left<0&&(o.coord.left=0)),n.__sideChange(a,o.side),i.tooltipClone=a[0],i.tooltipParent=n.__instance.option("parent").parent[0],i.mode=o.mode,i.whole=o.whole,i.origin=n.__instance._$origin[0],i.tooltip=n.__instance._$tooltip[0],delete o.container,delete o.fits,delete o.mode,delete o.outerSize,delete o.whole,o.distance=o.distance.horizontal||o.distance.vertical;var u,d,_,f=t.extend(!0,{},o);if(n.__instance._trigger({edit:function(t){o=t},event:e,helper:i,position:f,type:"position"}),n.__options.functionPosition){var h=n.__options.functionPosition.call(n,n.__instance,i,f);h&&(o=h)}l.destroy(),"top"==o.side||"bottom"==o.side?(u={prop:"left",val:o.target-o.coord.left},d=o.size.width-this.__options.minIntersection):(u={prop:"top",val:o.target-o.coord.top},d=o.size.height-this.__options.minIntersection),u.val<this.__options.minIntersection?u.val=this.__options.minIntersection:u.val>d&&(u.val=d),_=i.geo.origin.fixedLineage?i.geo.origin.windowOffset:{left:i.geo.origin.windowOffset.left+i.geo.window.scroll.left,top:i.geo.origin.windowOffset.top+i.geo.window.scroll.top},o.coord={left:_.left+(o.coord.left-i.geo.origin.windowOffset.left),top:_.top+(o.coord.top-i.geo.origin.windowOffset.top)},n.__sideChange(n.__instance._$tooltip,o.side),i.geo.origin.fixedLineage?n.__instance._$tooltip.css("position","fixed"):n.__instance._$tooltip.css("position",""),n.__instance._$tooltip.css({left:o.coord.left,top:o.coord.top,height:o.size.height,width:o.size.width}).find(".tooltipster-arrow").css({left:"",top:""}).css(u.prop,u.val),n.__instance._$tooltip.appendTo(n.__instance.option("parent")),n.__instance._trigger({type:"repositioned",event:e,position:o})},__sideChange:function(t,e){t.removeClass("tooltipster-bottom").removeClass("tooltipster-left").removeClass("tooltipster-right").removeClass("tooltipster-top").addClass("tooltipster-"+e)},__targetFind:function(t){var e={},i=this.__instance._$origin[0].getClientRects();i.length>1&&(1==this.__instance._$origin.css("opacity")&&(this.__instance._$origin.css("opacity",.99),i=this.__instance._$origin[0].getClientRects(),this.__instance._$origin.css("opacity",1)));if(i.length<2)e.top=Math.floor(t.geo.origin.windowOffset.left+t.geo.origin.size.width/2),e.bottom=e.top,e.left=Math.floor(t.geo.origin.windowOffset.top+t.geo.origin.size.height/2),e.right=e.left;else{var o=i[0];e.top=Math.floor(o.left+(o.right-o.left)/2),o=i.length>2?i[Math.ceil(i.length/2)-1]:i[0],e.right=Math.floor(o.top+(o.bottom-o.top)/2),o=i[i.length-1],e.bottom=Math.floor(o.left+(o.right-o.left)/2),o=i.length>2?i[Math.ceil((i.length+1)/2)-1]:i[i.length-1],e.left=Math.floor(o.top+(o.bottom-o.top)/2)}return e}}})}),jQuery(document).ready(function($){var fchunker_upload={fchunker:function(t){$.extend(t),$.upId&&$.upUrl&&($.domHtml=$("#"+$.upId).html(),$.upInputId=$.upId+"_input")},fchunker_limitFileSize:function(t,e){for(var i=["KB","MB","GB"],o=e.toUpperCase(),n=0,s=0;s<i.length;s++){var r=o.indexOf(i[s]);if(r>-1){n=parseInt(o.substr(0,r))*Math.pow(1024,s+1);break}}return!(t.size>n)},upErrorMsg:function(t){$.upError=t},upStop:function(t){$.upError=t},upStatus:function(){return!$.upError||("function"==typeof $.upStop&&$.upStop($.upError),!1)},fchunker_getPercent:function(t,e){if(t=parseFloat(t),e=parseFloat(e),isNaN(t)||isNaN(e))return"-";return e<=0?0:Math.round(t/e*1e4)/100},fchunker_upload:function(t,e){$.upError="",$.tempFile=$("#"+$.upInputId)[0].files[0],"file"==t&&($.tempFile=e);var i=$.tempFile;if(!i)return!1;"function"==typeof $.upStart&&$.upStart();var o=i.name,n=o.lastIndexOf("."),s=o.length,r=o.substring(n+1,s);if($.upType&&(uptype=$.upType.split(","),-1==$.inArray(r,uptype)&&($.upError="Type error: Error-"+r)),$.upMaxSize&&($.fchunker_limitFileSize(i,$.upMaxSize+"MB")||($.upError="Error")),0==$.upStatus())return!1;$.taskStart=+new Date,setTimeout("jQuery.fchunker_upload_core()","100")},fchunker_upload_core:function(){var file=$.tempFile;if(!file)return!1;$.upShardSize||($.upShardSize=2);for(var filename=file.name,size=file.size,index1=filename.lastIndexOf("."),index2=filename.length,suffix=filename.substring(index1+1,index2),shardSize=1024*$.upShardSize*1024,succeed=0,shardCount=Math.ceil(size/shardSize),re=[],start,end=0,i=0;i<shardCount;++i)re[i]=[],start=i*shardSize,end=Math.min(size,start+shardSize),re[i].file_data=file.slice(start,end),re[i].file_name=filename,re[i].file_size=size;const URL=$.upUrl;var i2=0,i3=1,fcs=Array(),xhr=new XMLHttpRequest;function ajaxStack(stack){if(0!=$.upStatus()){var form=new FormData;stack[i2]&&(fcs=stack[i2],form.append("file_data",fcs.file_data),form.append("file_name",fcs.file_name),form.append("file_size",fcs.file_size),form.append("file_total",shardCount),form.append("file_index",i3),form.append("taskStart",$.taskStart),form.append("action","backup_migration"),form.append("token","bmi"),form.append("f","upload-backup"),xhr.open("POST",URL,!0),xhr.setRequestHeader("X-Requested-With","XMLHttpRequest"),xhr.setRequestHeader("HTTP_X_REQUESTED_WITH","XMLHttpRequest"),xhr.onload=function(){ajaxStack(stack)},xhr.onreadystatechange=function(){if(0!=$.upStatus()&&4==xhr.readyState&&200==xhr.status){var data=xhr.responseText?eval("("+xhr.responseText+")"):"";++succeed;var cent=$.fchunker_getPercent(succeed,shardCount);"function"==typeof $.upEvent&&$.upEvent(cent),100==cent?setTimeout(function(){"function"==typeof $.upCallBack&&$.upCallBack(data)},500):"function"==typeof $.upCallBack&&$.upCallBack(data)}},xhr.send(form),i2++,i3++,form.delete("file_data"),form.delete("file_name"),form.delete("file_size"),form.delete("file_total"),form.delete("taskStart"),form.delete("file_index"),form.delete("action"),form.delete("token"),form.delete("f"))}}ajaxStack(re),re=null,file=null}};$.extend(fchunker_upload)}),jQuery(window).on("load",function(){setTimeout(function(){jQuery("#bmi").css({opacity:0}),jQuery("#bmi-preload").css({opacity:1}),jQuery("#bmi-preload").animate({opacity:0},150,function(){jQuery("#bmi-preload").remove(),jQuery("#bmi").css({display:"block"}),jQuery.bmi.dropdowns.init(),setTimeout(function(){jQuery("#bmi").animate({opacity:1},350)},100)})},50)}),jQuery(document).ready(function(t){let e=!1;t.extend({bmi:{clipboard:function(e){try{const i=document.createElement("textarea");return i.value=e,i.setAttribute("readonly",""),i.style.position="absolute",i.style.left="-9999px",document.body.appendChild(i),i.select(),document.execCommand("copy"),document.body.removeChild(i),t.bmi.alert("success",t("#bmi-success-copy").text(),3e3),!0}catch(e){return console.log(e),t.bmi.alert("warning",t("#bmi-failed-copy").text(),3e3),!1}},alert:function(e="default",i="---",o=7e3){t(".bmi-notification-box").length<=0&&t("body").find("#bmi").prepend(t('<div class="bmi-notification-box"></div>')),e="default"==e?"":"success"==e?" is-success":"warning"==e?" is-warning":"error"==e?" is-danger":" is-info";let n=Math.floor(Math.random()*Math.floor(64e3)),s=`<div style="display: none;" id="ntf-${n}" class="bmi-notification${e}">\n <button class="bmi-times-button" onclick="jQuery.bmi.hideAlert(this)">×</button>\n <div class="bmi-cf">\n <div class="bmi-left bmi-alert-icon"><div class="bmi-icon-bg"></div></div>\n <div class="bmi-left bmi-alert-msg-title">\n <div class="bmi-title${e}">Backup Migration</div>\n <div>${i}</div>\n </div>\n </div>\n </div>`;t(".bmi-notification-box").prepend(s);let r=t(`#ntf-${n}`);r.css({opacity:0,display:"block"});let a=r.outerWidth();r.outerHeight();r.css({right:"-35vw","font-size":"0px",width:0,padding:0,opacity:"0"}),r.animate({right:"15px",width:a,padding:"1rem 2rem 1rem 1.5rem",opacity:"1"},{duration:200,queue:!1}),r.animate({"font-size":"16px"},{duration:300,queue:!1}),setTimeout(()=>{t(`#ntf-${n}`).css({width:""})},250),setTimeout(()=>{r.animate({"font-size":"0px"},{duration:200,queue:!1}),r.animate({right:"-35vw",height:0,width:0,margin:0,padding:0,opacity:"0"},300,function(){r.remove()})},o)},_msg:function(e){"msg"==e.status&&(void 0===e.level&&(e.level="info"),t.bmi.alert(e.level,e.why,3e3),console.log("Backup-migration: ","["+e.level.toUpperCase()+"]",e.why))},hideAlert:function(e){let i=t(e).parents(".bmi-notification");i.animate({"font-size":"0px"},{duration:200,queue:!1}),i.animate({right:"-35vw",height:0,width:0,margin:0,padding:0,opacity:"0"},300,function(){i.remove()})},modal:function(e=!1){let i=!1;return 0!=e&&(i=document.getElementById(e)),{clearModal:function(){i.querySelectorAll(".customselect").forEach(function(t){t.classList.remove("active")}),i.querySelectorAll('input[type="text"]').forEach(function(t){t.value="",t.setAttribute("value","")})},open:function(e=function(){}){i.classList.add("before-open"),setTimeout(function(){i.classList.add("open"),t("html")[0].style.overflowY="hidden",setTimeout(e,410)},10)},close:function(e=function(){}){i.offsetWidth>0&&i.offsetHeight>0?(i.classList.add("before-close"),setTimeout(function(){i.classList.add("closed"),setTimeout(function(){i.classList.remove("before-open"),i.classList.remove("open"),i.classList.remove("before-close"),i.classList.remove("closed"),t.bmi.modal(i.id).clearModal(),e()},410)},10)):(i.classList.remove("before-open"),i.classList.remove("open"),i.classList.remove("before-close"),i.classList.remove("closed"),e()),t("html")[0].style.overflowY="auto"},closeAll:function(){document.querySelectorAll(".modal").forEach(function(e){t.bmi.modal(e.id).close()}),t("html")[0].style.overflowY="auto"}}},json:function(e){return new Promise(function(i,o){try{return i(JSON.parse(e))}catch(n){if("string"!=typeof e)return o(!1);{let n=t.bmi.reverse(e).indexOf("}");n=0==n?e.length:-n,e=e.slice(e.indexOf("{"),n);try{return i(JSON.parse(e))}catch(t){return o(!1)}}}})},reverse:function(e){return"string"==typeof e?""===e?"":t.bmi.reverse(e.substr(1))+e.charAt(0):e},ajax:function(e,i={}){return new Promise(function(o,n){function s(t,i){i||(i=t),console.log("------- BACKUP MIGRATION ERROR START -------"),!1===t?(console.log("Call: ",e),console.log("Status: ",i.status),console.log("Error: ",i.responseText)):console.log(i),console.log("-------- BACKUP MIGRATION ERROR END --------\n\n"),n(t,i.responseText)}i.action="backup_migration",i.token="bmi",i.f=e,t.post(ajaxurl,i).done(e=>{t.bmi.json(e).then(function(t){o(t)}).catch(function(t){s("json")})}).fail(t=>{s(!1,t)})})},tooltips:{init:function(){let e={delay:200,debug:!1,delayTouch:[100,200],interactive:!1,distance:0,side:"top",contentAsHTML:!1,maxWidth:460,triggerOpen:{mouseenter:!0,touchstart:!0},triggerClose:{mouseleave:!0,click:!0,tap:!0},theme:["bmi-tooltip","bmi-tt-default","bmi-tt-default-customized"],repositionOnScroll:!0,functionReady:function(){setTimeout(()=>{let e=t.tooltipster.instances();for(instance in e)e[instance].reposition()},10)}},i=t(".tooltip"),o=t(".tooltip-html"),n=t(".premium-wrapper"),s=JSON.parse(JSON.stringify(e));s.contentAsHTML=!0,s.interactive=!0;for(let o=0;o<i.length;++o){let n=i[o],s=n.getAttribute("data-top"),r=n.getAttribute("side"),a=JSON.parse(JSON.stringify(e));a.content=n.getAttribute("tooltip"),s&&(a.distance=parseInt(s)),r&&r.trim().length>0&&(a.side=r),t(n).tooltipster(a)}for(let e=0;e<o.length;++e){let i=o[e],n=i.getAttribute("side"),r=JSON.parse(JSON.stringify(s));r.content=i.getAttribute("tooltip"),n&&n.trim().length>0&&(r.side=n),t(i).tooltipster(r)}for(let i=0;i<n.length;++i){let o=n[i],s=JSON.parse(JSON.stringify(e));s.contentAsHTML=!0,s.interactive=!0,s.maxWidth=500,o.getAttribute("tooltip")?s.content=o.getAttribute("tooltip"):s.content=t("#premium-tooltip")[0].innerHTML,o.getAttribute("side")&&(s.side=o.getAttribute("side")),t(o).tooltipster(s)}},hideAll:function(e=!1){function i(){let e=t.tooltipster.instances();for(instance in e)e[instance].close()}e?i():setTimeout(i,10)}},collapsers:{toggle:function(i){if(!0===e)return;e=!0;let o=i.getAttribute("group");i.classList.contains("active")?t.bmi.collapsers.close(i):t.bmi.collapsers.open(i,o)},open:function(i,o){t.bmi.collapsers.closeGroup(o),t(i).addClass("active"),t(i).find(".content").show(300),setTimeout(function(){e=!1},300)},close:function(i){t(i).removeClass("active"),t(i).find(".content").hide(300),setTimeout(function(){e=!1},300)},closeGroup:function(i){t('.collapser[group="'+i+'"]').removeClass("active"),t('.collapser[group="'+i+'"]').find(".content").hide(300),setTimeout(function(){e=!1},300)},closeAll:function(){t(".collapser").removeClass("active"),t(".collapser").find(".content").hide(300),setTimeout(function(){e=!1},300)}},isUrlValid:function(t){return!!new RegExp("^(?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)+(?:[a-z\\u00a1-\\uffff]{2,}\\.?))(?::\\d{2,5})?(?:[/?#]\\S*)?$","i").test(t)},bytesToHuman:function(t,e,i,o,n){return(e=Math,i=e.log,o=1024,n=i(t)/i(o)|0,t/e.pow(o,n)).toFixed(2)+" "+(n?"KMGTPEZY"[--n]+"B":"Bytes")},getCurrentBackups:function(e=function(){}){t("#reloading-bm-list").length>0&&"none"==t("#reloading-bm-list")[0].style.display&&(t("#reloading-bm-list").show(),t.bmi.ajax("get-current-backups",{}).then(function(i){t("#reloading-bm-list").hide(),e(i)}).catch(function(t){console.log(t)}))},fillWithNewBackups:function(e,i=function(){}){backups={},t("#bmi_restore_tbody").html("");let o=t("#bmi-manual-locked").text().trim(),n=Object.keys(e).sort(function(t,i){return+new Date(e[t][1].replace(/\-/g,"/"))-+new Date(e[i][1].replace(/\-/g,"/"))}),s=0;for(;s<n.length;++s){let i=n[s],r="locked"===e[i][5];i=(i=i.replace(/ /g,"")).trim();let a="bmi_br_backup_"+s,l=t(".br_tr_template").clone();l.removeClass("br_tr_template"),l[0].style.display="none",l.find(".br_label").attr("for",a),l.find(".br_checkbox").attr("id",a),l.find(".bc-download-btn").attr("href",t("#BMI_BLOG_URL").text().trim()+"/?backup-migration=BMI_BACKUP&backup-id="+i),l.find(".bc-logs-btn").attr("href",t("#BMI_BLOG_URL").text().trim()+"/?backup-migration=BMI_BACKUP_LOGS&backup-id="+i),l.find(".br_date").text(e[i][1]),l.find(".br_name").text(i),l.find(".br_size").text(t.bmi.bytesToHuman(e[i][4])+" ("+e[i][2]+")"),0!=(""+e[i][6]).trim().length&&e[i][6]+""!="false"||(l.find(".bc-locked-btn").addClass("forever"),l.find(".bc-locked-btn").attr("tooltip",o),r=!0),r?l.find(".bc-unlocked-btn").hide():l.find(".bc-locked-btn").hide(),l.prependTo("#bmi_restore_tbody"),e[i].push(i),backups[a]=e[i]}if(0==s){let e=t("#bmi_restore_tbody").data("empty");t("#bmi_restore_tbody").html('<tr><td class="center text-muted" colspan="100%">'+e+"</td></tr>")}t.bmi.tooltips.init(),t.bmi.showMoreBackups(),i()},showMoreBackups:function(e){backups={};let i=t("#bmi_restore_tbody").find("tr:hidden");for(let e=0;e<i.length&&e<10;++e)setTimeout(function(){t(i[e]).show(300)},50*e);i.length-10<=0?t("#load-more-backups-wrp").hide(300):t("#load-more-backups-wrp").show(300)},reloadBackups:function(e=function(){}){t.bmi.getCurrentBackups(function(i){t.bmi.fillWithNewBackups(i.backups,function(){e(),t("#backups-select-all").prop("checked",!1),t(".del-all-btn-wrp").hide(300)})})},hideAllLists:function(){let e=t(".dropdown-open");if(!(e.length<=0))for(let i=0;i<e.length;++i){let o=t(e[i]);o.hasClass("ignored-open")?o.removeClass("ignored-open"):(o.hide(300),o.removeClass("dropdown-open"),t(o[0].closest(".bmi-dropdown")).removeClass("active"))}},setOption:function(e,i=null,o=!1){let n=e.find(".dropdown-options");e.attr("data-optioner")&&(n=t(".optioner-"+e.attr("data-optioner"))),n.find(".active-option").removeClass("active-option"),!1!==o&&(i=n.find('.dropdown-option[data-value="'+o+'"]')),t(i).hasClass("active-option")||(e.find(".dropdown-title").text(i.text()),e.attr("data-selected",i.data("value")),i.addClass("active-option"),!1===o&&e.change(),t.bmi.hideAllLists())},prepareFile:function(e,i){let o=document.createElement("a");o.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(i)),o.setAttribute("download",e),o.style.display="none",document.body.appendChild(o),o.click(),document.body.removeChild(o),t.bmi.alert("success",t("#bmi-download-should-start").text(),3e3)}}})}),jQuery(document).ready(function(t){t(".collapser .header").on("click",function(e){e.preventDefault();let i=t(this).parent(".collapser")[0];t.bmi.collapsers.toggle(i)}),t(".bmi_will_collapse").on("change",function(e){e.preventDefault();let i=!1;"radio"==this.getAttribute("type")&&"false"==this.getAttribute("value")&&(i=!0),$child=t(this).data("if-checked"),!0!==this.checked||i?t("#"+$child).hide(300):t("#"+$child).show(300)}),t(".collapser-openner").on("click",function(e){e.preventDefault();let i="configuration",o=t(this).data("el");t(this).data("group")&&(i=t(this).data("group")),t.bmi.collapsers.open(o,i),setTimeout(function(){t([document.documentElement,document.body]).animate({scrollTop:t(o).offset().top-50+"px"},300)},300)}),function(){let e=t(".bmi_will_collapse");for(let i=0;i<e.length;++i){let o=!1;$trigger=e[i],$child=t($trigger).data("if-checked"),"radio"==$trigger.getAttribute("type")&&"false"==$trigger.getAttribute("value")&&(o=!0),!0===$trigger.checked?t("#"+$child).show():t("#"+$child).hide()}}()}),jQuery(document).ready(function(t){var e=!0,i=!1;t.bmi.crons=function(){function o(){!function(e,i){t.bmi.ajax("calculate-cron",e).then(function(e){"success"==e.status?i(e):(i(!1),t.bmi._msg(e))}).catch(function(t){i(!1),console.log(t)})}({type:t('[data-id="cron-period"]').attr("data-selected"),day:t('[data-id="cron-day"]').attr("data-selected"),week:t('[data-id="cron-week"]').attr("data-selected"),hour:t('[data-id="cron-hour"]').attr("data-selected"),minute:t('[data-id="cron-minute"]').attr("data-selected"),keep:t('[data-id="cron-keep-backups"]').attr("data-selected"),enabled:!0==!t("#cron-btn-toggle")[0].checked},function(i){"success"===i.status&&!1!==i?(t(".cron-time-server").tooltipster("option","interactive",!1),t(".cron-time-server").tooltipster("option","contentAsHTML",!0),!0===t("#cron-btn-toggle")[0].checked&&(i.data="---"),t(".cron-time-server").tooltipster("content","<b>"+t("#bmi-next-cron").text()+"</b>"+i.data+"<br><b>"+t("#bmi-current-time").text()+"</b>"+i.currdata),e?e=!1:t.bmi.alert("success",t("#bmi-cron-updated").text(),1500)):e?e=!1:t.bmi.alert("error",t("#bmi-cron-updated-fail").text(),2500)})}function n(e){"month"==e?(t(".cron-the").show(),t('[data-id="cron-day"]').show(),t('[data-id="cron-week"]').hide(),t("#cron-on-word").show()):"week"==e?(t(".cron-the").hide(),t('[data-id="cron-day"]').hide(),t('[data-id="cron-week"]').show(),t("#cron-on-word").show()):(t(".cron-the").hide(),t('[data-id="cron-day"]').hide(),t('[data-id="cron-week"]').hide(),t("#cron-on-word").hide())}!0!==i&&(i=!0,t("#bmi").on("change",'[data-id="cron-period"]',function(t){o(),n(t.target.getAttribute("data-selected"))}),t("#bmi").on("change",'[data-id="cron-day"]',function(t){t.target.getAttribute("data-selected");o()}),t("#bmi").on("change",'[data-id="cron-week"]',function(t){t.target.getAttribute("data-selected");o()}),t("#bmi").on("change",'[data-id="cron-hour"]',function(t){t.target.getAttribute("data-selected");o()}),t("#bmi").on("change",'[data-id="cron-minute"]',function(t){t.target.getAttribute("data-selected");o()}),t("#bmi").on("change",'[data-id="cron-keep-backups"]',function(t){t.target.getAttribute("data-selected");o()}),t("#i-backup-cron").on("click",function(){t(".cron-backups").find(".turned-off").is(":visible")&&(t("#cron-btn-toggle").prop("checked",!1),t(".cron-backups").removeClass("disabled"),o(),t(".cron-backups").find(".turned-on").css({opacity:0}),t(".cron-backups").find(".turned-off").css({opacity:0}),t(".cron-backups").find(".turned-on").show(),t(".cron-backups").find(".turned-on").css({opacity:1}),setTimeout(function(){t(".cron-backups").find(".turned-off").hide()},300))}),t("#cron-btn-toggle").on("change",function(){this.checked?t(".cron-backups").addClass("disabled"):t(".cron-backups").removeClass("disabled"),o()}),n(t('[data-id="cron-period"]')[0].getAttribute("data-selected")),o())}}),jQuery(document).ready(function(t){t.bmi.dropdowns={init:function(){let e=t("#bmi");function i(e="null",i="---"){let o=t(".option-template").clone();return o.removeClass("option-template"),o.attr("data-value",e),o.text(i),o}function o(o){if("none"!=o.style.display){o.style.display="none";let n=t(o),s=n.find("option"),r=function(e="---"){let i=t(".dropdown-template").clone();return i.removeClass("dropdown-template"),i.find(".dropdown-title").text(e),i}(function(t){let e="";for(let i=0;i<t.length;++i){let o=t[i].innerText;e.length<o.length&&(e=o)}return e}(s));r=function(e,o){let n=t(e).find(".dropdown-options");t(e).attr("data-optioner")&&(n=t(".optioner-"+t(e).attr("data-optioner")));for(let t=0;t<o.length;++t){let e=o[t];n.append(i(e.value,e.innerText))}return e}(r,s);let a=s[0].value,l=o.getAttribute("data-parent"),c=o.getAttribute("data-classes"),p="true"===o.getAttribute("data-hide");if(n.attr("data-def")&&(a=n.attr("data-def")),t(r).attr("data-id",o.id),t(r).attr("class",((null!=c?c:"")+" bmi-dropdown").trim()),t(r).insertBefore(n),null!==l){let e=parseInt(864197532*Math.random()+123456789);t(r).attr("data-optioner",e),t(r).find(".dropdown-options").attr("data-oparent",e),t(r).find(".dropdown-options").addClass("optioner-"+e),t(r).find(".dropdown-options").appendTo(l),t(l).css({position:"relative"})}let u=t(r).clone();if(!u)return;u[0].style.visibility="hidden",e.append(u);let d=u.width();u.remove(),t.bmi.setOption(t(r),null,a),t(r).find(".dropdown-title")[0].style.minWidth=d+10+"px",p&&t(r).hide()}}!function(){let t=e.find("select");for(let e=0;e<t.length;++e)o(t[e])}(),t.bmi.crons(),e.on("click",function(e){t(e.target).hasClass("bmi-dropdown")||e.target.closest(".bmi-dropdown")||t.bmi.hideAllLists()}),e.on("click",".dropdown-title",function(e){$dropdown=t(e.target.closest(".bmi-dropdown")),function(e){let i=e.find(".dropdown-options");if(e.attr("data-optioner")){(i=t(".optioner-"+e.attr("data-optioner"))).css({position:"absolute"});let o=e[0].offsetWidth,n=e[0].offsetLeft+240,s=e[0].offsetTop+e[0].offsetHeight+5;i.css({maxWidth:o+"px",minWidth:o+"px",top:s+"px",left:n+"px"})}i.hasClass("dropdown-open")?(e.removeClass("active"),i.removeClass("dropdown-open"),i.hide(300)):(e.addClass("active"),i.addClass("dropdown-open"),i.addClass("ignored-open"),i.show(300))}($dropdown),t.bmi.hideAllLists()}),e.on("click",".dropdown-option",function(e){t(e.target.closest(".dropdown-options")).attr("data-oparent")?($dropdown=t('.bmi-dropdown[data-optioner="'+t(e.target.closest(".dropdown-options")).attr("data-oparent")+'"]'),$option=t(e.target),t.bmi.setOption($dropdown,$option)):($dropdown=t(e.target.closest(".bmi-dropdown")),$option=t(e.target),t.bmi.setOption($dropdown,$option))})}}}),jQuery(document).ready(function(t){var e,i,o=!1,n=!1,s=0;let r=0,a=0,l=null,c=null,p=null,u=!1,d=!1,_=4500,f=!1;function h(e){return $cb=t("#"+e).is(":checked"),!0===$cb?"true":"false"}function m(){return size=0,t("#files-group-plugins").is(":checked")&&(size+=parseInt(t('label[for="files-group-plugins"]').find(".value").attr("bytes"))),t("#files-group-uploads").is(":checked")&&(size+=parseInt(t('label[for="files-group-uploads"]').find(".value").attr("bytes"))),t("#files-group-themes").is(":checked")&&(size+=parseInt(t('label[for="files-group-themes"]').find(".value").attr("bytes"))),t("#files-group-other-contents").is(":checked")&&(size+=parseInt(t('label[for="files-group-other-contents"]').find(".value").attr("bytes"))),t("#files-group-wp-install").is(":checked")&&(size+=parseInt(t('label[for="files-group-wp-install"]').find(".value").attr("bytes"))),size}function g(e,i){if(a+=1,r+=parseInt(i.bytes),i.bytes<=1e4)t("#bmi-scan-"+e).find(".value").text("(0 MB)");else{let o=(parseInt(i.bytes)/1024/1024).toFixed(2);t("#bmi-scan-"+e).find(".value").text("("+o+" MB)")}t("#bmi-scan-"+e).find(".value").attr("bytes",parseInt(i.bytes)),5==a&&(t("#bmi-scan-total").find(".value").text("("+t.bmi.bytesToHuman(r)+")"),t("#bmi-scan-total").find(".value").attr("bytes",parseInt(r)),v())}function b(e){t.bmi.ajax("scan-directory",{folder:e}).then(function(t){g(e,t)}).catch(function(t){g(t,{bytes:"0",readable:"0 B"})})}function w(e=!1,i=function(){}){t.bmi.ajax("is-running-backup",{}).then(function(o){"success"==o.status?i(!1):1==e?i(!0):t.bmi._msg(o)}).catch(function(t){i(!1),console.log(t)})}function v(){let e=parseInt(t("#bmi-scan-total").find(".value").attr("bytes")),i=parseInt(m());t("#files-group-backup").is(":checked")||(e=0,i=0);let o=((e-i)/1024/1024).toFixed(2),n=(i/1024/1024).toFixed(2);"0.00"==o&&(o="0"),"0.00"==n&&(n="0"),t("#esta-exclude").text(o+" MB"),t("#esta-size-for").text(n+" MB")}function y(){t("#prenotice-modal .prenotice").hide(),t("#prenotice-size").text(t.bmi.bytesToHuman(m())),t(".prenotic-3").show(),"true"!==h("database-group-backup")||"true"!==h("database-group-backup")||"true"===h("files-group-backup")&&("true"!==h("files-group-plugins")&&"true"!==h("files-group-themes")&&"true"!==h("files-group-uploads")&&"true"!==h("files-group-wp-install")&&h("files-group-other-contents"),1)||t(".prenotic-6").show(),"true"===h("database-group-backup")||"true"===h("database-group-backup")||"true"!==h("files-group-backup")||"true"!==h("files-group-plugins")&&"true"!==h("files-group-themes")&&"true"!==h("files-group-uploads")&&"true"!==h("files-group-wp-install")&&"true"!==h("files-group-other-contents")||t(".prenotic-5").show(),"true"===h("database-group-backup")&&"true"===h("files-group-backup")&&"true"===h("files-group-plugins")&&"true"===h("files-group-themes")&&"true"===h("files-group-uploads")&&"true"===h("files-group-other-contents")||t(".prenotic-4").show(),t("#prenotice-modal .prenotice:visible").css({background:""});let e=t("#prenotice-modal .prenotice"),i=[];for(let t=0;t<e.length;++t)"none"!==e[t].style.display&&i.push(e[t]);for(let t=0;t<i.length;t+=2)i[t].style.background="#f8f8f8"}function k(t,e=function(){}){try{window.XMLHttpRequest?xmlhttp=new XMLHttpRequest:xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"),xmlhttp.onloadend=function(){4==xmlhttp.readyState&&200==xmlhttp.status?e(xmlhttp.responseText):e(!1)},xmlhttp.open("GET",t),xmlhttp.send()}catch(t){e(!1)}}function x(e,i){if(!1===e)return;let o=e.split("\n"),n=s;s=o.length,n>0&&n--;for(let e=n;e<o.length;++e){let n=o[e],s=document.createElement("DIV"),r="";"[INFO]"==n.substr(0,6)?r="blue":"[SUCCESS]"==n.substr(0,9)?r="green":"[WARN]"==n.substr(0,6)?r="orange":"[ERROR]"==n.substr(0,7)&&(r="red"),"[STEP]"==n.substr(0,6)&&(s.classList.add("bold"),s.classList.add("step"),t("#restore-progress-modal").hasClass("open")?t("#restore_current_step").text(n.slice(29)):t("#current_step").text(n.slice(29))),r.length>0&&s.classList.add(r),s.style.display="none",s.innerText=n,setTimeout(function(){i.appendChild(s),t(s).show(55),i.scrollTop=i.scrollHeight},55*e)}setTimeout(function(){i.scrollTop=i.scrollHeight},110)}function $(e=0,s=1e3,r=null){if(c==e)return;c=e,clearInterval(i);let a=parseFloat(t(".progress-percentage")[0].style.left)-1;if(t("#restore-progress-modal").hasClass("open")&&(a=parseFloat(t("#restore-progress-modal .progress-percentage")[0].style.left)-1),a>e&&0!=e)return;let l=e-a,p=a,d=Math.abs(Math.floor(s/l));i=setInterval(function(){if(p+=1,t("#restore-progress-modal").hasClass("open")?(t("#restore-progress-modal .progress-active-bar")[0].style.width=p.toFixed(2)+"%",t("#restore-progress-modal .progress-percentage")[0].style.left=p.toFixed(2)+"%",t("#restore-progress-modal .progress-percentage")[0].innerText=p.toFixed(0)+"%"):(t(".progress-active-bar")[0].style.width=p.toFixed(2)+"%",t(".progress-percentage")[0].style.left=p.toFixed(2)+"%",t(".progress-percentage")[0].innerText=p.toFixed(0)+"%"),p>=100&&clearInterval(i),p>=100&&null!=r&&(c=null,t("#backup-progress-modal").hasClass("open"))){o=!0,n=!0,S(r,0==u)}p>e&&clearInterval(i)},d)}t("#live-log-toggle").on("click",function(){t(".expanded-logs").length>0?t(this).text(t(this).data("hide")):t(this).text(t(this).data("show")),t("#live-log-wrapper").toggleClass("expanded-logs")}),t("#backup-stop").on("click",function(){t.bmi.ajax("stop-backup",{}).then(function(e){"success"==e.status?t.bmi.alert("success",t("#bmi-abort-soon").text(),3e3):t.bmi._msg(e)}).catch(function(t){console.log(t)})}),t("#bmi_restore_tbody").on("click",".bc-unlocked-btn",function(e){e.preventDefault();let i=e.target,o=i.closest("tr").querySelector(".br_name").innerText.trim();t.bmi.ajax("lock-backup",{filename:o}).then(function(e){"success"==e.status?(t.bmi.alert("success",t("#bmi-lock-success").text(),6e3),t(i.closest("tr").querySelector(".bc-unlocked-btn")).hide(),t(i.closest("tr").querySelector(".bc-locked-btn")).show()):(t.bmi.alert("error",t("#bmi-lock-error").text(),8e3),console.error("BMI Backend error: ",e))}).catch(function(t){console.log(t)})}),t("#files-group-backup").on("change",v),t(".basic-file-exlusion").on("change",'input[type="checkbox"]',v),t("#bmi_restore_tbody").on("click",".bc-locked-btn",function(e){if(e.preventDefault(),t(e.target).hasClass("forever"))return;let i=e.target,o=i.closest("tr").querySelector(".br_name").innerText.trim();t.bmi.ajax("unlock-backup",{filename:o}).then(function(e){"success"==e.status?(t.bmi.alert("success",t("#bmi-unlock-success").text(),3e3),t(i.closest("tr").querySelector(".bc-locked-btn")).hide(),t(i.closest("tr").querySelector(".bc-unlocked-btn")).show()):(t.bmi.alert("error",t("#bmi-unlock-error").text(),3e3),console.error("BMI Backend error: ",e))}).catch(function(t){console.log(t)})}),t("#bmi_restore_tbody").on("click",".bc-url-btn",function(e){let i=e.target.closest("tr").querySelector(".bc-download-btn").getAttribute("href");t.bmi.clipboard(i)}),t("#bmi_restore_tbody").on("click",".bc-remove-btn",function(e){let i=e.target.closest("tr").querySelector(".br_name").innerText.trim();p=[i],t("#delete-confirm-modal").find(".text2").hide(),t("#delete-confirm-modal").find(".text1").show(),t.bmi.modal("delete-confirm-modal").open()}),t("#sure_delete").on("click",function(){t.bmi.ajax("delete-backup",{filenames:p}).then(function(e){p=null,"success"==e.status?(t.bmi.reloadBackups(),t.bmi.modal("delete-confirm-modal").close(),t.bmi.alert("success",t("#bmi-remove-success").text(),3e3)):(t.bmi.alert("warning",t("#bmi-remove-error").text(),3e3),console.error("BMI Backend error: ",e))}).catch(function(t){console.log(t)})}),t("#add-exclusion-rule").on("click",function(e){e.preventDefault();let i=t(".exclusion_template").clone();i[0].classList.remove("exclusion_template"),i[0].style.display="none",t("#bmi_exclusion_rules").append(i),i.show(300)}),t("#bmi_exclusion_rules").on("click",".kill-exclusion-rule",function(e){e.preventDefault(),$el=e.target,$parent=$el.closest(".exclude-row"),$parent&&(t($parent).hide(300),setTimeout(function(){$parent.remove()},320))}),t("#i-backup-creator").on("click",function(){if(!isNaN(m()))return m()/1024/1024>1e3*parseInt(t("#BMI_REV").text().trim())?A():void("true"===h("database-group-backup")||"true"===h("files-group-backup")&&("true"===h("files-group-plugins")||"true"===h("files-group-themes")||"true"===h("files-group-uploads")||"true"===h("files-group-wp-install")||"true"===h("files-group-other-contents"))?(y(),w(!1,function(){t.bmi.modal("prenotice-modal").open()})):t.bmi.alert("warning",t("#bmi-no-selected").text(),3e3));t.bmi.alert("warning",t("#bmi-preb-processing").text(),3e3)}),t("#BFFSIN").on("change",function(t){let e=parseInt(this.value);isNaN(e)?this.value=1:this.value=e>9999?9999:e<=0?1:e}),t(".save-btn").on("click",function(e){e.preventDefault();let i={},o=t(this.closest(".save-action")).data("save");if(o){if("save-storage"==o)i.directory=t("#bmi_path_storage_default").val(),i.access="true"===t('[name="radioAccessViaLink"]:checked').val()?"true":"false";else if("save-file-config"==o){i.database_group=h("database-group-backup"),i.files_group=h("files-group-backup"),i["files-group-plugins"]=h("files-group-plugins"),i["files-group-uploads"]=h("files-group-uploads"),i["files-group-themes"]=h("files-group-themes"),i["files-group-other-contents"]=h("files-group-other-contents"),i["files-group-wp-install"]=h("files-group-wp-install"),i.files_by_filters=h("files_by_filters"),i.ex_b_fs=h("ex_b_fs"),i.BFFSIN=t("#BFFSIN").val()?t("#BFFSIN").val():"1",i.ex_b_names=h("ex_b_names"),i.ex_b_fpaths=h("ex_b_fpaths"),i.ex_b_dpaths=h("ex_b_dpaths");let e=[],o=t("#bmi_exclusion_rules").find(".exclude-row");for(let i=0;i<o.length;++i){let n=t(o[i]),s=n.find(".exclusion_txt").val(),r=n.find(".exclusion_position").find(".bmi-dropdown").data("selected")+"",a=n.find(".exclusion_where").find(".bmi-dropdown").data("selected")+"";e.push({txt:s,pos:r,whr:a})}i["dynamic-names"]=e,i["dynamic-fpaths-names"]=t("#dynamic-fpaths-names").val().split("\n"),i["dynamic-dpaths-names"]=t("#dynamic-dpaths-names").val().split("\n")}else if("store-config"==o)i.name=t("#backup_filename").val().trim();else{if("save-other-options"!=o)return;i.email=t("#email-for-notices").val().trim(),i.email_title=t("#email-title-for-notices").val().trim(),i.schedule_issues=h("scheduled-issues"),i.uninstall_config=h("uninstalling-configs"),i.uninstall_backups=h("uninstalling-backups")}t.bmi.ajax(o,i).then(function(e){"success"==e.status?e.errors<=0?(t.bmi.alert("success",t("#bmi-save-success").text(),3e3),t.bmi.collapsers.closeAll()):t.bmi.alert("warning",t("#bmi-save-issues").text(),3e3):t.bmi._msg(e)}).catch(function(t){console.log(t)})}}),t(".close-chapters").on("click",function(e){e.preventDefault(),t.bmi.collapsers.closeAll()}),t("#rescan-for-backups").on("click",function(){t.bmi.reloadBackups()});var C=0;function T(e=function(){}){k(t("#BMI_BLOG_URL").text().trim()+"?backup-migration=PROGRESS_LOGS&progress-id=latest_full.log&backup-id=current&t="+ +new Date,function(i){if(!i)return;let o=i.split("\n").slice(0,1)[0];i=i.split("\n").slice(1).join("\n");let n=t(".log-wrapper").find("pre")[0],s=t("#bmi-making-archive").text().trim();if(o&&0!=o&&void 0!==o&&t("#current_step").text().trim().slice(0,s.length)==s){let e=document.getElementById("bmi_counter_magic");if(e){let i=parseInt(e.innerText);C=parseInt(o.split("/")[0]),isNaN(i)||isNaN(C)||($(parseInt(o.split("/")[0])/parseInt(o.split("/")[1])*100),t("#entire_magic_counter").is(":hidden")&&t("#entire_magic_counter").show(),async function(t,e,i,o){let n=null,s=function(r){if(C>i)return;n||(n=r);let a=Math.min((r-n)/o,1);t.innerText=Math.floor(a*(i-e)+e),a<1&&window.requestAnimationFrame(s)};window.requestAnimationFrame(s)}(e,i,C,2e3),"---"===t("#bmi_magic_max_count").text()&&100!=parseInt(o.split("/")[1])&&t("#bmi_magic_max_count").text(parseInt(o.split("/")[1])))}else{let e=parseInt(o.split("/")[1]);100==e&&(e="---"),t("#current_step").html(s+' <span id="entire_magic_counter">(<span id="bmi_counter_magic">0</span>/<span id="bmi_magic_max_count">'+e+"</span>)</span>"),isNaN(parseInt(e))&&t("#entire_magic_counter").hide()}}i&&0!=i&&void 0!==i&&x(i,n),e()})}function O(){t(".log-wrapper").find("pre")[0].innerText="",$(0),setTimeout(function(){T(function(){!function t(){T(function(){e=setTimeout(function(){!0===u&&t()},1500)})}()})})}function I(){$(0),setTimeout(function(){B(function(){!function t(){e=setTimeout(function(){B(function(){!0===d&&t()})},1e3)}()})})}function z(t=function(){}){w(!0,function(e){t(e)})}function S(s,r=!1){(o&&n||r)&&setTimeout(function(){u=!1,t("#backup-progress-modal").hasClass("open")&&(t.bmi.modal("backup-progress-modal").close(),"true"==t('[name="radioAccessViaLink"]:checked').val()?t("#accessible-at-section").show():t("#accessible-at-section").hide(),t.bmi.modal("backup-success-modal").open()),clearInterval(i),clearTimeout(e);let o=t("#BMI_BLOG_URL").text().trim()+"?backup-migration=BMI_BACKUP&backup-id="+s.filename+"&t="+ +new Date,n=t("#BMI_BLOG_URL").text().trim()+"?backup-migration=PROGRESS_LOGS&progress-id=latest.log&backup-id=current&t="+ +new Date;t("#text-input-copy")[0].value=o,t("#download-backup-url").attr("href",o),t("#download-backup-log-url").attr("href",n),t.bmi.reloadBackups(),setTimeout(function(){clearInterval(i),t(".log-wrapper").find("pre")[0].innerText="",t(".progress-active-bar")[0].style.width="0%",t(".progress-percentage")[0].style.left="0%",t(".progress-percentage")[0].innerText="0%"},300)},700)}function E(){setTimeout(function(){t("#backup-error-pre").text("Loading..."),t.bmi.modal("backup-error-modal").open(),k(t("#BMI_BLOG_URL").text().trim()+"?backup-migration=PROGRESS_LOGS&progress-id=latest.log&backup-id=current&t="+ +new Date,function(e){if(0==e)E();else{let i=t("#backup-error-pre")[0];t("#backup-error-pre").text(""),s=0,x(e,i)}})},1e3)}function A(){t.bmi.modal("bfs-modal").open()}function L(e=function(){}){z(function(i){!0===i?t("#backup-progress-modal").hasClass("open")||(!1===u&&(o=!1,u=!0,f=!0),t("#bmi-ongoing-backup").show(300)):(t("#bmi-ongoing-backup").is(":visible")&&t("#bmi-ongoing-backup").hide(300),t("#backup-progress-modal").hasClass("open")&&!0===f?(!0===u&&(u=!1),f=!1,t.bmi.getCurrentBackups(function(e){t.bmi.fillWithNewBackups(e.backups,function(){k(t("#BMI_BLOG_URL").text().trim()+"?backup-migration=PROGRESS_LOGS&progress-id=latest.log&backup-id=current&t="+ +new Date,function(e){if(!1===e)t.bmi.modal("backup-progress-modal").close();else{let i="Backup process aborted",o="[ERROR]";if((e=e.split("\n"))[e.length-1].includes(i)||e[e.length-2].includes(i))t.bmi.modal("backup-progress-modal").close(),t.bmi.alert("info",t("#bmi-aborted-al").text(),3e3);else if(e[e.length-1].includes(o)||e[e.length-2].includes(o))t.bmi.modal("backup-progress-modal").close(),E();else{t.bmi.modal("backup-progress-modal").close(),t.bmi.modal("backup-success-modal").open();let e=t(t("#bmi_restore_tbody").find("tr")[0]).find(".bc-download-btn").attr("href");t("#download-backup-url").attr({href:e}),t("#text-input-copy").val(e)}}})})})):!0!==u||t("#backup-progress-modal").hasClass("open")||(u=!1,t.bmi.reloadBackups())),e()})}function B(e=function(){}){k(t("#BMI_BLOG_URL").text().trim()+"?backup-migration=PROGRESS_LOGS&progress-id=latest_migration_full.log&backup-id=current&t="+ +new Date,function(i){if(!i)return e();let o=i.split("\n").slice(0,1)[0];i=i.split("\n").slice(1).join("\n");let n=t("#restore-live-log-wrapper").find("pre")[0];if(0!=i){let t=i.split("\n");(t=void 0!==t[t.length-2]?t[t.length-2]:"").includes("[")&&t.includes("]")&&x(i,n)}0!=o&&$(o),e()})}function M(e=function(){}){t.bmi.ajax("htaccess-litespeed",{}).then(function(t){setTimeout(function(){e(!0)},400)}).catch(function(t){e(!1),console.log(t)})}function D(e=function(){}){t.bmi.ajax("migration-locked",{}).then(function(i){"success"==i.status?e(!0):(t.bmi._msg(i),e(!1))}).catch(function(t){console.log(t)})}function P(e=""){setTimeout(function(){if(!t("#restore-progress-modal").hasClass("open"))return;d=!1,t("#restore-error-pre").text("Loading..."),k(t("#BMI_BLOG_URL").text().trim()+"?backup-migration=PROGRESS_LOGS&progress-id=latest_migration.log&backup-id=current&t="+ +new Date,function(i){let o=t("#restore-error-pre")[0];t("#restore-error-pre").text(""),s=0,e.length>0&&(i+="\n"+e),x(i,o)}),t.bmi.modal("restore-progress-modal").close(),t.bmi.modal("restore-error-modal").open()},1e3)}function R(o=!1){let n=l;if(!n||n.trim().length<=0)return t.bmi.alert("warning",t("#bmi-no-file").text(),3e3);t("#pre-restore-modal").hasClass("open")&&t.bmi.modal("pre-restore-modal").close(),t("#restore-progress-modal").hasClass("open")||t.bmi.modal("restore-progress-modal").open(),o||(t("#restore-live-log-wrapper").find("pre")[0].innerText=""),s=0,d=!0,I(),M(function(){t.bmi.ajax("restore-backup",{file:n,remote:o}).then(function(o){"success"===o.status?setTimeout(function(){clearInterval(i),clearTimeout(e),d=!1,t.bmi.modal("restore-progress-modal").close(),t.bmi.modal("restore-success-modal").open(),setTimeout(function(){t("#restore-progress-modal .progress-active-bar")[0].style.width="0%",t("#restore-progress-modal .progress-percentage")[0].style.left="0%",t("#restore-progress-modal .progress-percentage")[0].innerText="0%"},500)},1500):"error"===o.status?setTimeout(function(){clearInterval(i),clearTimeout(e),P()},1e3):(t.bmi.modal("pre-restore-modal").close(),t.bmi.modal("restore-progress-modal").close(),t.bmi._msg(o))}).catch(function(t,e){P(e),console.log(t)})})}function j(){return t("#bmi_restore_tbody").find('input[type="checkbox"]:checked')}function F(e){e.preventDefault(),t("#format-tip-wrp")[0].style.minWidth="calc(100% - 120px)","none"===t("#format-tip-wrp")[0].style.display?t("#format-tip-wrp").show(300):t("#format-tip-wrp").hide(300)}t("#configuration-reset-absolute").on("click",function(e){e.preventDefault(),t.bmi.ajax("reset-configuration",{}).then(function(e){"success"==e.status?window.location.reload():t.bmi._msg(e)}).catch(function(t){console.log(t)})}),t("#download-site-infos").on("click",function(e){e.preventDefault(),t.bmi.ajax("get-site-data",{}).then(function(e){"success"==e.status?t.bmi.prepareFile("bmi-site-info.debug",JSON.stringify(e.data)):t.bmi._msg(e)}).catch(function(t){console.log(t)})}),t("#start-entire-backup").on("click",function(){t.bmi.modal("prenotice-modal").close(),function(e=function(){}){t.bmi.ajax("reset-latest",{}).then(function(i){"success"==i.status?(e(),t.bmi.modal("backup-progress-modal").open()):t.bmi._msg(i)}).catch(function(t){console.log(t)})}(function(){M(function(){f=!1,o=!1,u=!0,t.bmi.ajax("create-backup",{estaminated_size:m()}).then(function(n){"success"==n.status?(o=!0,clearTimeout(e),u=!1,T(function(){setTimeout(function(){S(n,!0)},350)})):(u=!1,setTimeout(function(){clearInterval(i),t(".log-wrapper").find("pre")[0].innerText="",t(".progress-active-bar")[0].style.width="0%",t(".progress-percentage")[0].style.left="0%",t(".progress-percentage")[0].innerText="0%"},300),t.bmi._msg(n),t("#backup-progress-modal").hasClass("open")&&(t.bmi.modal("backup-progress-modal").close(),void 0!==n.bfs?A():E()))}).catch(function(e){t("#backup-progress-modal").hasClass("open")&&(t.bmi.modal("backup-progress-modal").close(),E()),console.log(e)}),s=0,u=!0,O()}),O()})}),t("#open_trouble_extenstion").on("click",function(){t("#trouble_extenstion").hasClass("openned")?(t("#trouble_extenstion").hide(300),t("#trouble_extenstion").removeClass("openned"),t(this).removeClass("active")):(t("#trouble_extenstion").show(300),t("#trouble_extenstion").addClass("openned"),t(this).addClass("active"))}),t("#switch-show-trs").on("click",function(){let e=this.dataset.see,i=this.dataset.hide,o=t(".hide-show-tr");t(this).hasClass("shown")?(o.hide(300),t(this).removeClass("shown"),this.innerText=e):(o.show(300),t(this).addClass("shown"),this.innerText=i)}),t("#ex_b_fs").on("change",function(){t("#ex_b_fs").is(":checked")?t("#bmi__collon").show():t("#bmi__collon").hide()}),t("#show-upload-area").on("click",function(){t(".upload_area").hasClass("hidden")?(t(".upload_area").show(300),t(".upload_area").removeClass("hidden"),t([document.documentElement,document.body]).animate({scrollTop:t(this).offset().top-50+"px"},300)):(t(".upload_area").hide(300),t(".upload_area").addClass("hidden"))}),t(".bmi-copper").on("click",function(e){e.preventDefault();let i=t("#"+this.getAttribute("data-copy"))[0];i.value&&i.value.length>0?t.bmi.clipboard(i.value):t.bmi.clipboard(i.innerText)}),t("#bmi_restore_tbody").on("click",".restore-btn",function(e){D(function(i){if(i){let i=e.target.closest("tr").querySelector(".br_name").innerText;if(l=i,!i||i.trim().length<=0)return t.bmi.alert("warning",t("#bmi-no-file").text(),3e3);t("#restore-ok").prop("checked",!1),t.bmi.modal("pre-restore-modal").open()}})}),t("#quick-download-migration").on("click",function(){let e=t("#bm-d-url").val();t.bmi.isUrlValid(e)?D(function(i){i&&(e.length>0?(l=-100,t("#restore-ok").prop("checked",!1),t.bmi.modal("pre-restore-modal").open()):t.bmi.alert("warning",t("#bmi-invalid-url").text(),5e3))}):t.bmi.alert("warning",t("#bmi-invalid-url").text(),5e3)}),t("#restore-start-sure").on("click",function(){t("#restore-ok").is(":checked")?-100===l?(l=null,t("#restore-live-log-wrapper").find("pre")[0].innerText="",D(function(o){M(function(){if(o){let o=t("#bm-d-url").val();t("#restore_current_step").text(t("#bmi-downloading-remote").text()),t.bmi.ajax("download-backup",{url:o}).then(function(o){clearInterval(i),clearTimeout(e),"success"===o.status?(t.bmi.reloadBackups(),l=o.name,setTimeout(function(){clearInterval(i),t("#restore-progress-modal .progress-active-bar")[0].style.width="0%",t("#restore-progress-modal .progress-percentage")[0].style.left="0%",t("#restore-progress-modal .progress-percentage")[0].innerText="0%",t("#restore_current_step").text(t("#bmi-restoring-prepare").text()),setTimeout(function(){R(!0)},300)},600)):"error"===o.status?P():(t.bmi._msg(o),P())}).catch(function(t,e){P(e),console.log(t)}),t("#restore-live-log-wrapper").find("pre")[0].innerText="",s=0,d=!0,I(),t.bmi.modal("pre-restore-modal").close(),t.bmi.modal("restore-progress-modal").open()}})})):R():t.bmi.alert("warning",t("#bmi-restore-require-checkmark").text(),3e3)}),t(".backup-minimize").on("click",function(){z(function(e){!0===e?t("#bmi-ongoing-backup").show(300):t("#bmi-ongoing-backup").hide()})}),function t(){L(function(){setTimeout(function(){t()},_)})}(),t("#bmi-ongoing-backup").on("click",function(){z(function(e){!0===e?(s=0,O(),t.bmi.modal("backup-progress-modal").open()):(t.bmi.alert("info",t("#bmi-bc-ended").text(),3e3),t.bmi.reloadBackups()),t("#bmi-ongoing-backup").hide(300)})}),t("#bmi_support_chat").on("click",function(){if(0===t("#support-bmi").length){t("#bmi").append('<script id="support-bmi" src="//code.jivosite.com/widget/qli4YP0snZ" async><\/script>'),setTimeout(function(){t("#bmi_support_chat").hide()},100);var e=!1;let i=setInterval(function(){1==e&&clearInterval(i),void 0!==window.jivo_api&&(window.jivo_api.open(),e=!0)},30)}}),t("#bmi_restore_tbody").on("change",'input[type="checkbox"]',function(e){let i=j().length;i>0?t(".del-all-btn-wrp").show(300):t(".del-all-btn-wrp").hide(300),i==t("#bmi_restore_tbody").find('input[type="checkbox"]').length?t("#backups-select-all").prop("checked",!0):t("#backups-select-all").prop("checked",!1)}),t("#fix-uname-issues").on("click",function(e){e.preventDefault(),t.bmi.ajax("fix_uname_issues",{}).then(function(e){t.bmi.alert("success",t("#bmi-default-success").text(),3e3)}).catch(function(e){t.bmi.alert("error",t("#bmi-default-fail").text(),3e3)})}),t("#revert-uname-issues").on("click",function(e){e.preventDefault(),t.bmi.ajax("revert_uname_issues",{}).then(function(e){t.bmi.alert("success",t("#bmi-default-success").text(),3e3)}).catch(function(e){t.bmi.alert("error",t("#bmi-default-fail").text(),3e3)})}),t("#backups-select-all").on("change",function(){!0===this.checked?t("#bmi_restore_tbody").find('input[type="checkbox"]').prop("checked",!0):t("#bmi_restore_tbody").find('input[type="checkbox"]').prop("checked",!1),j().length>0?t(".del-all-btn-wrp").show(300):t(".del-all-btn-wrp").hide(300)}),t(".lrn-mr-btn, .closer-learn-more").on("click",function(){t(".learn_more_about_cron").hasClass("open")?(t(".learn_more_about_cron").removeClass("open"),t(".learn_more_about_cron").hide(300),t(".lrn-mr-btn").show(),t(".lrn-mr-btn").css({opacity:0}),t(".lrn-mr-btn").animate({opacity:1},300)):(t(".learn_more_about_cron").addClass("open"),t(".learn_more_about_cron").show(300),t(".lrn-mr-btn").css({opacity:1}),t(".lrn-mr-btn").animate({opacity:0},300,function(){t(".lrn-mr-btn").hide()}))}),t("#bmi-error-toggle").on("click",function(){t(".error-body").hasClass("open")?(t(".error-body").hide(300),t(".error-body").removeClass("open"),t("#bmi-error-toggle").text(t("#bmi-error-toggle").data("expand"))):(t(".error-body").show(300),t(".error-body").addClass("open"),t("#bmi-error-toggle").text(t("#bmi-error-toggle").data("collapse")))}),t("#bmi_send_test_mail").on("click",function(e){e.preventDefault(),t.bmi.ajax("send-test-mail",{}).then(function(e){t.bmi.alert("success",t("#bmi-email-success").text(),3e3)}).catch(function(e){t.bmi.alert("error",t("#bmi-email-fail").text(),3e3)})}),t("#bmi-error-dismiss").on("click",function(){t(".error-noticer").hide(300),setTimeout(function(){t(".error-noticer").remove()},330),t.bmi.ajax("dismiss-error-notice",{}).then(function(t){}).catch(function(t){})}),t(".deleteAllSelected").on("click",function(){let e=j(),i=[];for(let t=0;t<e.length;++t){let o=e[t].closest("tr");i.push(o.querySelector(".br_name").innerText)}t("#delete-confirm-modal").find(".text1").hide(),t("#delete-confirm-modal").find(".text2").show();let o=i.length;o<=0||(t("#backup-multiple-del-count").text(o),o>1?(t("#del-only-one").hide(),t("#del-more-than-one").show()):(t("#del-more-than-one").hide(),t("#del-only-one").show()),p=i,t.bmi.modal("delete-confirm-modal").open())}),t("#load-more-backups").on("click",function(e){e.preventDefault(),t.bmi.showMoreBackups()}),t("#show-format-tip").on("click",F),t("#hide-format-tip").on("click",F),t(".go-to-marbs").on("click",function(e){e.preventDefault(),document.getElementById("marbs").click(),t.bmi.modal().closeAll()}),t(".site-reloader").on("click",function(){window.location.reload()}),async function(){b("plugins"),b("uploads"),b("themes"),b("contents_others"),b("wordpress")}(),t.bmi.ajax("get-dynamic-names",{}).then(function(e){let i=e.data;if(t("#bmi_exclusion_rules").text(""),void 0!==i&&void 0!==i.length){for(let e=0;e<i.length;++e){let o=t(".exclusion_template").clone();o.removeClass("exclusion_template"),o.find(".exclusion_txt").val(i[e].txt);let n=o.find(".exclusion_position").find("select"),s=o.find(".exclusion_where").find("select");n&&(n[0].setAttribute("data-def",i[e].pos),s&&(s[0].setAttribute("data-def",i[e].whr),t("#bmi_exclusion_rules").append(o),o.find(".exclusion_position").find(".bmi-dropdown").length>0&&t.bmi.setOption(o.find(".exclusion_position").find(".bmi-dropdown"),null,i[e].pos),o.find(".exclusion_where").find(".bmi-dropdown").length>0&&t.bmi.setOption(o.find(".exclusion_where").find(".bmi-dropdown"),null,i[e].whr)))}t("#dynamic-fpaths-names").text(e["dynamic-fpaths-names"].join("\n")),t("#dynamic-dpaths-names").text(e["dynamic-dpaths-names"].join("\n"))}}).catch(function(t){console.log(t)}),t.bmi.reloadBackups(),function(){let e=1e3*parseInt(t("#server-time-auto").attr("data-time")),i=new Date(e);t("#server-time-auto").text(i.toUTCString()),setInterval(function(){e+=1e3,i=new Date(e),t("#server-time-auto").text(i.toUTCString())},1e3),t("#ex_b_fs").is(":checked")?t("#bmi__collon").show():t("#bmi__collon").hide()}()}),jQuery(document).ready(function(t){t(".modal-opener").on("click",function(e){this.getAttribute("data-modal")&&""!=this.getAttribute("data-modal")&&(e.preventDefault(),this.getAttribute("data-close")&&t.bmi.modal(this.getAttribute("data-close")).close(),t.bmi.modal(this.getAttribute("data-modal")).open())}),t(".modal-closer").on("click",function(e){this.getAttribute("data-close")&&""!=this.getAttribute("data-close")?(e.preventDefault(),t.bmi.modal(this.getAttribute("data-close")).close()):this.closest(".modal")&&(e.preventDefault(),t("#"+this.closest(".modal").getAttribute("id")).length>0&&t.bmi.modal(this.closest(".modal").getAttribute("id")).close())}),t(".modal-close").on("click",function(e){this.closest(".modal")&&(e.preventDefault(),t.bmi.modal(this.closest(".modal").id).close())}),t(".modal").on("click",function(e){e.target!=this||t(e.target).hasClass("modal-no-close")||t.bmi.modal(this.id).close()})}),jQuery(document).ready(function(t){t.bmi.tooltips.init();let e,i=-1,o=!1,n="";for(let t=0;t<12;++t)n+="<div></div>";function s(o){clearInterval(e),0==o?(t(".upload-progress-bar").find("span")[0].style.width=o+"%",t(".upload-percentage").text(o+"%")):100==o?(t(".upload-progress-bar").find("span")[0].style.width=o+"%",t(".upload-percentage").text(o+"%")):function(o=0,n=1e3){if(i==o)return;i=o,clearInterval(e);let s=parseInt(t(".upload-percentage").text())-1;if(s>o&&0!=o)return;let r=o-s,a=s,l=Math.abs(Math.floor(n/r));e=setInterval(function(){a+=1,t(".upload-progress-bar").find("span")[0].style.width=a+"%",t(".upload-percentage").text(a+"%"),a>=100&&(clearInterval(e),i=null)},l)}(o,1e3)}t(".spinner-loader").html(n).addClass("lds-spinner"),t.fchunker({upId:"upid",upShardSize:"5",upMaxSize:"2000",upUrl:ajaxurl,upType:"zip",upCallBack:function(e){var i=e.status,n=e.message;e.url,Math.random();2==i&&(setTimeout(function(){t("#drop-area").show(300),t(".upload-progress").hide(300)},100),t.bmi.alert("success",t("#bmi-upload-end").text(),3e3),t.bmi.modal("upload-success-modal").open(),t.bmi.reloadBackups()),1==i&&(o||(t.bmi.alert("success",t("#bmi-upload-start").text(),3e3),o=!0)),0==i&&(t.upErrorMsg(n),t("#drop-area").show(300),t(".upload-progress").hide(300)),5==i&&(t.bmi.modal("upload-invalid-manifest-modal").open(),t("#drop-area").show(300),t(".upload-progress").hide(300)),3==i&&(s(100),t.upErrorMsg(n),t("#drop-area").show(300),t(".upload-progress").hide(300))},upEvent:function(t){s(t)},upStop:function(e){s(0),setTimeout(function(){t("#drop-area").show(300),t(".upload-progress").hide(300)},100),e.includes("Type error")?(t.bmi.modal("upload-wrong-file-modal").open(),t.bmi.alert("warning",t("#bmi-upload-wrong").text(),3e3)):e.includes("File already exists")?(t.bmi.modal("upload-exist-file-modal").open(),t.bmi.alert("warning",t("#bmi-upload-exists").text(),3e3)):(t.bmi.alert("error",t("#bmi-upload-error").text(),3e3),console.error(e))},upStart:function(){o=!1,i=-1,s(0),setTimeout(function(){t("#drop-area").hide(300),t(".upload-progress").show(300)},100)}})}),jQuery(document).ready(function(t){function e(t){for(let e=0;e<t.length;++e){let i=t[e].closest(".container-radio");i&&void 0!=typeof i.classList&&(i.classList.remove("active"),!0===t[e].checked&&i.classList.add("active"))}}t('input[type="radio"]').on("change",function(){let t=this.getAttribute("name");this.closest(".container-radio");e(document.querySelectorAll('[name="'+t+'"]'))}),e(document.getElementById("bmi").querySelectorAll('input[type="radio"]'))}),jQuery(document).ready(function(t){let e=!1;t(".tabs").on("click",".tab",function(i){if(this.classList.contains("active"))return;if(!0===e)return;e=!0,t.bmi.collapsers.closeAll();let o=this.getAttribute("data-point");"manage-restore-wrapper"==o?(t("#create-backup-wrapper").hide(300),t('[data-point="create-backup-wrapper"]').removeClass("active")):"create-backup-wrapper"==o&&(t("#manage-restore-wrapper").hide(300),t('[data-point="manage-restore-wrapper"]').removeClass("active")),t("#"+o).show(300),t(this).addClass("active"),setTimeout(function(){e=!1},320)})}),jQuery(document).ready(function(t){let e=document.getElementById("drop-area");function i(t){t.preventDefault(),t.stopPropagation()}function o(t){e.classList.add("highlight")}function n(t){e.classList.remove("highlight")}e&&(["dragenter","dragover","dragleave","drop"].forEach(t=>{e.addEventListener(t,i,!1)}),["dragenter","dragover"].forEach(t=>{e.addEventListener(t,o,!1),document.querySelector("body").addEventListener(t,o,!1)}),["dragleave","drop","mouseleave"].forEach(t=>{e.addEventListener(t,n,!1)}),t("body, #drop-area").on("mouseleave dragleave drop",function(){n()}),e.addEventListener("drop",function(t){!function(t){t=[...t],jQuery.fchunker_upload("file",t[0])}(t.dataTransfer.files)},!1))});
|
backup-backup.php
CHANGED
@@ -8,23 +8,21 @@
|
|
8 |
* Plugin URI: https://backupbliss.com
|
9 |
* Text Domain: backup-migration
|
10 |
* Domain Path: /languages
|
11 |
-
* Version: 1.0.
|
12 |
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
13 |
|
14 |
// Exit on direct access
|
15 |
-
if (!defined('ABSPATH'))
|
16 |
-
exit;
|
17 |
-
}
|
18 |
|
19 |
// Default namespace
|
20 |
-
use BMI\Plugin
|
21 |
|
22 |
// Not dynamic constants
|
23 |
if (!defined('BMI_DEBUG')) {
|
24 |
define('BMI_DEBUG', false);
|
25 |
}
|
26 |
if (!defined('BMI_VERSION')) {
|
27 |
-
define('BMI_VERSION', '1.0.
|
28 |
}
|
29 |
if (!defined('BMI_ROOT_DIR')) {
|
30 |
define('BMI_ROOT_DIR', __DIR__);
|
@@ -32,9 +30,22 @@
|
|
32 |
if (!defined('BMI_ROOT_FILE')) {
|
33 |
define('BMI_ROOT_FILE', __FILE__);
|
34 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
|
36 |
// Load plugin after all
|
37 |
add_action('plugins_loaded', function () {
|
|
|
38 |
// Global plugin variables
|
39 |
require_once BMI_ROOT_DIR . '/includes/constants.php';
|
40 |
|
@@ -45,7 +56,8 @@
|
|
45 |
require_once BMI_ROOT_DIR . '/includes/initializer.php';
|
46 |
|
47 |
// Initialize entire plugin
|
48 |
-
$bmi_instance = new Backup_Migration_Plugin();
|
49 |
$bmi_instance->initialize();
|
50 |
}
|
|
|
51 |
}, 15);
|
8 |
* Plugin URI: https://backupbliss.com
|
9 |
* Text Domain: backup-migration
|
10 |
* Domain Path: /languages
|
11 |
+
* Version: 1.0.6
|
12 |
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
13 |
|
14 |
// Exit on direct access
|
15 |
+
if (!defined('ABSPATH')) exit;
|
|
|
|
|
16 |
|
17 |
// Default namespace
|
18 |
+
use BMI\Plugin AS BMI;
|
19 |
|
20 |
// Not dynamic constants
|
21 |
if (!defined('BMI_DEBUG')) {
|
22 |
define('BMI_DEBUG', false);
|
23 |
}
|
24 |
if (!defined('BMI_VERSION')) {
|
25 |
+
define('BMI_VERSION', '1.0.6');
|
26 |
}
|
27 |
if (!defined('BMI_ROOT_DIR')) {
|
28 |
define('BMI_ROOT_DIR', __DIR__);
|
30 |
if (!defined('BMI_ROOT_FILE')) {
|
31 |
define('BMI_ROOT_FILE', __FILE__);
|
32 |
}
|
33 |
+
if (!defined('BMI_INCLUDES')) {
|
34 |
+
define('BMI_INCLUDES', BMI_ROOT_DIR . DIRECTORY_SEPARATOR . 'includes');
|
35 |
+
}
|
36 |
+
|
37 |
+
// Activation hook
|
38 |
+
register_activation_hook(BMI_ROOT_FILE, function () {
|
39 |
+
require_once BMI_INCLUDES . '/activation.php';
|
40 |
+
BMI\bmi_activate_plugin();
|
41 |
+
});
|
42 |
+
|
43 |
+
// Fixes for some cases
|
44 |
+
require_once BMI_INCLUDES . '/compatibility.php';
|
45 |
|
46 |
// Load plugin after all
|
47 |
add_action('plugins_loaded', function () {
|
48 |
+
|
49 |
// Global plugin variables
|
50 |
require_once BMI_ROOT_DIR . '/includes/constants.php';
|
51 |
|
56 |
require_once BMI_ROOT_DIR . '/includes/initializer.php';
|
57 |
|
58 |
// Initialize entire plugin
|
59 |
+
$bmi_instance = new BMI\Backup_Migration_Plugin();
|
60 |
$bmi_instance->initialize();
|
61 |
}
|
62 |
+
|
63 |
}, 15);
|
includes/activation.php
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// Namespace
|
4 |
+
namespace BMI\Plugin;
|
5 |
+
|
6 |
+
// Exit on direct access
|
7 |
+
if (!defined('ABSPATH')) exit;
|
8 |
+
|
9 |
+
// Alias for classes
|
10 |
+
use BMI\Plugin\BMI_Logger as Logger;
|
11 |
+
|
12 |
+
// Activation
|
13 |
+
if (!function_exists('bmi_activate_plugin')) {
|
14 |
+
function bmi_activate_plugin() {
|
15 |
+
|
16 |
+
// Require classes
|
17 |
+
require_once BMI_INCLUDES . '/logger.php';
|
18 |
+
require_once BMI_ROOT_DIR . '/includes/constants.php';
|
19 |
+
|
20 |
+
// Log the activation
|
21 |
+
Logger::log(__("Plugin has been activated", 'backup-migration'));
|
22 |
+
update_option('_bmi_redirect', true);
|
23 |
+
|
24 |
+
}
|
25 |
+
}
|
includes/ajax.php
CHANGED
@@ -4,9 +4,7 @@
|
|
4 |
namespace BMI\Plugin;
|
5 |
|
6 |
// Exit on direct access
|
7 |
-
if (!defined('ABSPATH'))
|
8 |
-
exit;
|
9 |
-
}
|
10 |
|
11 |
// Uses
|
12 |
use BMI\Plugin\Backup_Migration_Plugin as BMP;
|
@@ -85,10 +83,16 @@
|
|
85 |
BMP::res($this->resetConfiguration());
|
86 |
} elseif ($this->post['f'] == 'get-site-data') {
|
87 |
BMP::res($this->getSiteData());
|
|
|
|
|
88 |
} elseif ($this->post['f'] == 'calculate-cron') {
|
89 |
BMP::res($this->calculateCron());
|
90 |
} elseif ($this->post['f'] == 'dismiss-error-notice') {
|
91 |
BMP::res($this->dismissErrorNotice());
|
|
|
|
|
|
|
|
|
92 |
} elseif ($this->post['f'] == 'htaccess-litespeed') {
|
93 |
BMP::res($this->fixLitespeed());
|
94 |
} elseif ($this->post['f'] == 'debugging') {
|
@@ -135,12 +139,131 @@
|
|
135 |
];
|
136 |
}
|
137 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
138 |
public function resetLatestLogs() {
|
139 |
|
140 |
// Check time if not bugged
|
141 |
if (file_exists(BMI_BACKUPS . '/.running') && (time() - filemtime(BMI_BACKUPS . '/.running')) > 65) {
|
142 |
-
@unlink(BMI_BACKUPS . '/.running');
|
143 |
-
@unlink(BMI_BACKUPS . '/.abort');
|
144 |
}
|
145 |
|
146 |
// Check if backup is not in progress
|
@@ -197,9 +320,36 @@
|
|
197 |
|
198 |
$name = $tmpname . '.zip';
|
199 |
|
|
|
200 |
return $name;
|
201 |
}
|
202 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
203 |
public function prepareAndMakeBackup($cron = false) {
|
204 |
|
205 |
// Require File Scanner
|
@@ -215,7 +365,30 @@
|
|
215 |
$zip_progress->log(__("Initializing backup...", 'backup-migration'), 'step');
|
216 |
$zip_progress->log((__("Backup & Migration version: ", 'backup-migration') . BMI_VERSION), 'info');
|
217 |
$zip_progress->log(__("Site which will be backed up: ", 'backup-migration') . $this->siteURL(), 'info');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
218 |
$zip_progress->log(__("Checking if backup dir is writable...", 'backup-migration'), 'info');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
219 |
|
220 |
// Checker
|
221 |
$checker = new Checker($zip_progress);
|
@@ -227,8 +400,8 @@
|
|
227 |
$zip_progress->log(__("Path: ", 'backup-migration') . BMI_BACKUPS, 'error');
|
228 |
|
229 |
// Close backup
|
230 |
-
@unlink(BMI_BACKUPS . '/.running');
|
231 |
-
@unlink(BMI_BACKUPS . '/.abort');
|
232 |
|
233 |
// Log and close log
|
234 |
$zip_progress->end();
|
@@ -263,8 +436,8 @@
|
|
263 |
$zip_progress->log(str_replace('%s', BMI_REV, __("Site weights more than %s GB.", 'backup-migration')), 'error');
|
264 |
|
265 |
// Close backup
|
266 |
-
@unlink(BMI_BACKUPS . '/.running');
|
267 |
-
@unlink(BMI_BACKUPS . '/.abort');
|
268 |
|
269 |
// Log and close log
|
270 |
$zip_progress->end();
|
@@ -280,8 +453,8 @@
|
|
280 |
$zip_progress->log(__("There is no space for that backup, checked: ", 'backup-migration') . ($bytes) . __(" bytes", 'backup-migration'), 'error');
|
281 |
|
282 |
// Close backup
|
283 |
-
@unlink(BMI_BACKUPS . '/.running');
|
284 |
-
@unlink(BMI_BACKUPS . '/.abort');
|
285 |
|
286 |
// Log and close log
|
287 |
$zip_progress->end();
|
@@ -330,8 +503,8 @@
|
|
330 |
|
331 |
// Check time if not bugged
|
332 |
if (file_exists(BMI_BACKUPS . '/.running') && (time() - filemtime(BMI_BACKUPS . '/.running')) > 65) {
|
333 |
-
@unlink(BMI_BACKUPS . '/.running');
|
334 |
-
@unlink(BMI_BACKUPS . '/.abort');
|
335 |
}
|
336 |
|
337 |
// Mark as in progress
|
@@ -356,17 +529,14 @@
|
|
356 |
$zip_progress->log(__("Aborting backup...", 'backup-migration'), 'step');
|
357 |
|
358 |
// Close backup
|
359 |
-
@unlink(BMI_BACKUPS . '/.running');
|
360 |
-
@unlink(BMI_BACKUPS . '/.abort');
|
361 |
|
362 |
// Log and close log
|
363 |
$zip_progress->end();
|
364 |
|
365 |
// Return error
|
366 |
-
if (file_exists($backup_path))
|
367 |
-
@unlink($backup_path);
|
368 |
-
}
|
369 |
-
|
370 |
return ['status' => 'error'];
|
371 |
}
|
372 |
|
@@ -376,11 +546,9 @@
|
|
376 |
// Make sure it's open
|
377 |
$zip_progress->start();
|
378 |
|
379 |
-
if (file_exists($backup_path))
|
380 |
-
|
381 |
-
|
382 |
-
@unlink(BMI_BACKUPS . '/.running');
|
383 |
-
@unlink(BMI_BACKUPS . '/.abort');
|
384 |
|
385 |
// Log and close log
|
386 |
$zip_progress->log(__("Backup process aborted.", 'backup-migration'), 'warn');
|
@@ -404,8 +572,8 @@
|
|
404 |
$zip_progress->log(__("Path: ", 'backup-migration') . $backup_path, 'error');
|
405 |
|
406 |
// Close backup
|
407 |
-
@unlink(BMI_BACKUPS . '/.running');
|
408 |
-
@unlink(BMI_BACKUPS . '/.abort');
|
409 |
|
410 |
// Log and close log
|
411 |
$zip_progress->end();
|
@@ -419,12 +587,13 @@
|
|
419 |
$zip_progress->end();
|
420 |
|
421 |
// Unlink progress
|
422 |
-
@unlink(BMI_BACKUPS . '/.running');
|
423 |
-
@unlink(BMI_BACKUPS . '/.abort');
|
424 |
|
425 |
// Return
|
426 |
Logger::log(__("New backup created and its name is: ", 'backup-migration') . $name);
|
427 |
|
|
|
428 |
return ['status' => 'success', 'filename' => $name, 'root' => plugin_dir_url(BMI_ROOT_FILE)];
|
429 |
}
|
430 |
|
@@ -441,6 +610,29 @@
|
|
441 |
return ['status' => 'success', 'backups' => $manifests];
|
442 |
}
|
443 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
444 |
public function restoreBackup() {
|
445 |
|
446 |
// Require File Scanner
|
@@ -478,6 +670,30 @@
|
|
478 |
$migration->log(__('Initializing restore process', 'backup-migration'), 'STEP');
|
479 |
$migration->log((__("Backup & Migration version: ", 'backup-migration') . BMI_VERSION), 'info');
|
480 |
$migration->log(__("Site which will be restored: ", 'backup-migration') . $this->siteURL(), 'info');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
481 |
|
482 |
// Check file size
|
483 |
$zippath = BMP::fixSlashes(BMI_BACKUPS) . DIRECTORY_SEPARATOR . $this->post['file'];
|
@@ -493,7 +709,7 @@
|
|
493 |
$migration->log(__('Aborting...', 'backup-migration'), 'ERROR');
|
494 |
$migration->log(__('Unlocking migration', 'backup-migration'), 'INFO');
|
495 |
|
496 |
-
@unlink($lock);
|
497 |
$migration->end();
|
498 |
|
499 |
return ['status' => 'error'];
|
@@ -508,7 +724,7 @@
|
|
508 |
$migration->log(__('Aborting...', 'backup-migration'), 'ERROR');
|
509 |
$migration->log(__('Unlocking migration', 'backup-migration'), 'INFO');
|
510 |
|
511 |
-
@unlink($lock);
|
512 |
$migration->end();
|
513 |
|
514 |
return ['status' => 'error'];
|
@@ -523,7 +739,7 @@
|
|
523 |
$migration->log(__('Aborting...', 'backup-migration'), 'ERROR');
|
524 |
$migration->log(__('Unlocking migration', 'backup-migration'), 'INFO');
|
525 |
|
526 |
-
@unlink($lock);
|
527 |
$migration->end();
|
528 |
|
529 |
return ['status' => 'error'];
|
@@ -533,7 +749,7 @@
|
|
533 |
$migration->log(__('Restore process completed', 'backup-migration'), 'SUCCESS');
|
534 |
$migration->log(__('Finalizing restored files', 'backup-migration'), 'STEP');
|
535 |
$migration->log(__('Unlocking migration', 'backup-migration'), 'INFO');
|
536 |
-
@unlink($lock);
|
537 |
|
538 |
$migration->end();
|
539 |
|
@@ -649,11 +865,11 @@
|
|
649 |
$migration->log(__('Downloading remote file...', 'backup-migration'), 'STEP');
|
650 |
$fileError = $this->downloadFile($url, $dest, $progress, $lock);
|
651 |
$migration->log(__('Unlocking migration', 'backup-migration'), 'INFO');
|
652 |
-
@unlink($lock);
|
653 |
|
654 |
if ($fileError) {
|
655 |
$migration->log(__('Removing downloaded file', 'backup-migration'), 'INFO');
|
656 |
-
@unlink($dest);
|
657 |
$migration->log(__('Download error', 'backup-migration'), 'ERROR');
|
658 |
|
659 |
if (strpos($fileError, 'Failed writing body') !== false) {
|
@@ -692,7 +908,7 @@
|
|
692 |
} catch (\Exception $e) {
|
693 |
$migration->log(__('Error: ', 'backup-migration') . $e, 'ERROR');
|
694 |
$migration->log(__('Removing downloaded file', 'backup-migration'), 'ERROR');
|
695 |
-
@unlink($dest);
|
696 |
|
697 |
$migration->end();
|
698 |
|
@@ -700,7 +916,7 @@
|
|
700 |
} catch (\Throwable $e) {
|
701 |
$migration->log(__('Error: ', 'backup-migration') . $e, 'ERROR');
|
702 |
$migration->log(__('Removing downloaded file', 'backup-migration'), 'ERROR');
|
703 |
-
@unlink($dest);
|
704 |
|
705 |
$migration->end();
|
706 |
|
@@ -725,7 +941,7 @@
|
|
725 |
$migration->log(__('Removing downloaded file', 'backup-migration'), 'ERROR');
|
726 |
}
|
727 |
|
728 |
-
@unlink($dest);
|
729 |
$migration->end();
|
730 |
|
731 |
return ['status' => 'error'];
|
@@ -797,7 +1013,7 @@
|
|
797 |
}
|
798 |
} else {
|
799 |
if ($created === true) {
|
800 |
-
@unlink($dir_path);
|
801 |
}
|
802 |
|
803 |
return ['status' => 'msg', 'why' => __('Entered path is not writable, cannot be used.', 'backup-migration'), 'level' => 'warning'];
|
@@ -1224,6 +1440,14 @@
|
|
1224 |
continue;
|
1225 |
}
|
1226 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1227 |
$total_size += $size;
|
1228 |
}
|
1229 |
|
4 |
namespace BMI\Plugin;
|
5 |
|
6 |
// Exit on direct access
|
7 |
+
if (!defined('ABSPATH')) exit;
|
|
|
|
|
8 |
|
9 |
// Uses
|
10 |
use BMI\Plugin\Backup_Migration_Plugin as BMP;
|
83 |
BMP::res($this->resetConfiguration());
|
84 |
} elseif ($this->post['f'] == 'get-site-data') {
|
85 |
BMP::res($this->getSiteData());
|
86 |
+
} elseif ($this->post['f'] == 'send-test-mail') {
|
87 |
+
BMP::res($this->sendTestMail());
|
88 |
} elseif ($this->post['f'] == 'calculate-cron') {
|
89 |
BMP::res($this->calculateCron());
|
90 |
} elseif ($this->post['f'] == 'dismiss-error-notice') {
|
91 |
BMP::res($this->dismissErrorNotice());
|
92 |
+
} elseif ($this->post['f'] == 'fix_uname_issues') {
|
93 |
+
BMP::res($this->fixUnameFunction());
|
94 |
+
} elseif ($this->post['f'] == 'revert_uname_issues') {
|
95 |
+
BMP::res($this->revertUnameProcess());
|
96 |
} elseif ($this->post['f'] == 'htaccess-litespeed') {
|
97 |
BMP::res($this->fixLitespeed());
|
98 |
} elseif ($this->post['f'] == 'debugging') {
|
139 |
];
|
140 |
}
|
141 |
|
142 |
+
public function backupErrorHandler() {
|
143 |
+
set_error_handler(function ($errno, $errstr, $errfile, $errline) {
|
144 |
+
|
145 |
+
if (strpos($errstr, 'deprecated') !== false) return;
|
146 |
+
if (strpos($errstr, 'php_uname') !== false) return;
|
147 |
+
Logger::error(__("There was an error during backup:", 'backup-migration'));
|
148 |
+
Logger::error(__("Message: ", 'backup-migration') . $errstr);
|
149 |
+
Logger::error(__("File/line: ", 'backup-migration') . $errfile . '|' . $errline);
|
150 |
+
|
151 |
+
if ($errno != E_ERROR && $errno != E_CORE_ERROR && $errno != E_COMPILE_ERROR && $errno != E_USER_ERROR && $errno != E_RECOVERABLE_ERROR) return;
|
152 |
+
if (strpos($errfile, 'backup-backup') === false) {
|
153 |
+
Logger::error(__("Restore process was not aborted because this error is not related to Backup Migration.", 'backup-migration'));
|
154 |
+
$this->migration_progress->log(__("There was an error not related to Backup Migration Plugin.", 'backup-migration'), 'warn');
|
155 |
+
$this->migration_progress->log(__("Message: ", 'backup-migration') . $errstr, 'warn');
|
156 |
+
$this->migration_progress->log(__("Backup will not be aborted because of this.", 'backup-migration'), 'warn');
|
157 |
+
return;
|
158 |
+
}
|
159 |
+
if (strpos($errstr, 'unlink(') !== false) {
|
160 |
+
Logger::error(__("Restore process was not aborted due to this error.", 'backup-migration'));
|
161 |
+
Logger::error($errstr);
|
162 |
+
return;
|
163 |
+
}
|
164 |
+
if (strpos($errfile, 'pclzip') !== false) {
|
165 |
+
Logger::error(__("Restore process was not aborted due to this error.", 'backup-migration'));
|
166 |
+
Logger::error($errstr);
|
167 |
+
return;
|
168 |
+
}
|
169 |
+
if (strpos($errstr, 'rename(') !== false) {
|
170 |
+
Logger::error(__("Restore process was not aborted due to this error.", 'backup-migration'));
|
171 |
+
Logger::error($errstr);
|
172 |
+
$this->migration_progress->log(__("Cannot move: ", 'backup-migration') . $errstr, 'warn');
|
173 |
+
return;
|
174 |
+
}
|
175 |
+
|
176 |
+
$this->zip_progress->log(__("There was an error during backup:", 'backup-migration'), 'error');
|
177 |
+
$this->zip_progress->log(__("Message: ", 'backup-migration') . $errstr, 'error');
|
178 |
+
$this->zip_progress->log(__("File/line: ", 'backup-migration') . $errfile . '|' . $errline, 'error');
|
179 |
+
$this->zip_progress->log(__('Unfortunately we had to remove the backup (if partly created).', 'backup-migration'), 'error');
|
180 |
+
|
181 |
+
$backup = $GLOBALS['bmi_current_backup_name'];
|
182 |
+
$backup_path = BMI_BACKUPS . DIRECTORY_SEPARATOR . $backup;
|
183 |
+
if (file_exists($backup_path)) @unlink($backup_path);
|
184 |
+
if (file_exists(BMI_BACKUPS . DIRECTORY_SEPARATOR . '.running')) @unlink(BMI_BACKUPS . DIRECTORY_SEPARATOR . '.running');
|
185 |
+
if (file_exists(BMI_BACKUPS . DIRECTORY_SEPARATOR . '.abort')) @unlink(BMI_BACKUPS . DIRECTORY_SEPARATOR . '.abort');
|
186 |
+
|
187 |
+
$this->zip_progress->log(__("Aborting backup...", 'backup-migration'), 'step');
|
188 |
+
$this->zip_progress->end();
|
189 |
+
|
190 |
+
$GLOBALS['bmi_error_handled'] = true;
|
191 |
+
BMP::res(['status' => 'error', 'error' => $errstr]);
|
192 |
+
exit;
|
193 |
+
|
194 |
+
}, E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED & ~E_WARNING);
|
195 |
+
}
|
196 |
+
|
197 |
+
public function migrationErrorHandler() {
|
198 |
+
set_exception_handler(function ($exception) {
|
199 |
+
$this->migration_progress->log(__("Restore exception: ", 'backup-migration') . $exception->getMessage(), 'warn');
|
200 |
+
Logger::log(__("Restore exception: ", 'backup-migration') . $exception->getMessage());
|
201 |
+
});
|
202 |
+
}
|
203 |
+
|
204 |
+
public function migrationExceptionHandler() {
|
205 |
+
set_error_handler(function ($errno, $errstr, $errfile, $errline) {
|
206 |
+
|
207 |
+
if (strpos($errstr, 'deprecated') !== false) return;
|
208 |
+
if (strpos($errstr, 'php_uname') !== false) return;
|
209 |
+
Logger::error(__("There was an error/warning during restore process:", 'backup-migration'));
|
210 |
+
Logger::error(__("Message: ", 'backup-migration') . $errstr);
|
211 |
+
Logger::error(__("File/line: ", 'backup-migration') . $errfile . '|' . $errline);
|
212 |
+
|
213 |
+
if ($errno != E_ERROR && $errno != E_CORE_ERROR && $errno != E_COMPILE_ERROR && $errno != E_USER_ERROR && $errno != E_RECOVERABLE_ERROR) return;
|
214 |
+
if (strpos($errfile, 'backup-backup') === false) {
|
215 |
+
Logger::error(__("Restore process was not aborted because this error is not related to Backup Migration.", 'backup-migration'));
|
216 |
+
$this->migration_progress->log(__("There was an error not related to Backup Migration Plugin.", 'backup-migration'), 'warn');
|
217 |
+
$this->migration_progress->log(__("Message: ", 'backup-migration') . $errstr, 'warn');
|
218 |
+
$this->migration_progress->log(__("Backup will not be aborted because of this.", 'backup-migration'), 'warn');
|
219 |
+
return;
|
220 |
+
}
|
221 |
+
if (strpos($errstr, 'unlink(') !== false) {
|
222 |
+
Logger::error(__("Restore process was not aborted due to this error.", 'backup-migration'));
|
223 |
+
Logger::error($errstr);
|
224 |
+
return;
|
225 |
+
}
|
226 |
+
if (strpos($errfile, 'pclzip') !== false) {
|
227 |
+
Logger::error(__("Restore process was not aborted due to this error.", 'backup-migration'));
|
228 |
+
Logger::error($errstr);
|
229 |
+
return;
|
230 |
+
}
|
231 |
+
if (strpos($errstr, 'rename(') !== false) {
|
232 |
+
Logger::error(__("Restore process was not aborted due to this error.", 'backup-migration'));
|
233 |
+
Logger::error($errstr);
|
234 |
+
$this->migration_progress->log(__("Cannot move: ", 'backup-migration') . $errstr, 'warn');
|
235 |
+
return;
|
236 |
+
}
|
237 |
+
|
238 |
+
$this->migration_progress->log(__("There was an error during restore process:", 'backup-migration'), 'error');
|
239 |
+
$this->migration_progress->log(__("Message: ", 'backup-migration') . $errstr, 'error');
|
240 |
+
$this->migration_progress->log(__("File/line: ", 'backup-migration') . $errfile . '|' . $errline, 'error');
|
241 |
+
|
242 |
+
if (file_exists(BMI_BACKUPS . DIRECTORY_SEPARATOR . '.migration_lock')) @unlink(BMI_BACKUPS . DIRECTORY_SEPARATOR . '.migration_lock');
|
243 |
+
|
244 |
+
$this->migration_progress->log(__("Aborting restore process...", 'backup-migration'), 'step');
|
245 |
+
$this->migration_progress->end();
|
246 |
+
|
247 |
+
$GLOBALS['bmi_error_handled'] = true;
|
248 |
+
BMP::res(['status' => 'error', 'error' => $errstr]);
|
249 |
+
exit;
|
250 |
+
|
251 |
+
}, E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED & ~E_WARNING);
|
252 |
+
}
|
253 |
+
|
254 |
+
public function backupExceptionHandler() {
|
255 |
+
set_exception_handler(function ($exception) {
|
256 |
+
$this->zip_progress->log(__("Exception: ", 'backup-migration') . $exception->getMessage(), 'warn');
|
257 |
+
Logger::log(__("Exception: ", 'backup-migration') . $exception->getMessage());
|
258 |
+
});
|
259 |
+
}
|
260 |
+
|
261 |
public function resetLatestLogs() {
|
262 |
|
263 |
// Check time if not bugged
|
264 |
if (file_exists(BMI_BACKUPS . '/.running') && (time() - filemtime(BMI_BACKUPS . '/.running')) > 65) {
|
265 |
+
if (file_exists(BMI_BACKUPS . '/.running')) @unlink(BMI_BACKUPS . '/.running');
|
266 |
+
if (file_exists(BMI_BACKUPS . '/.abort')) @unlink(BMI_BACKUPS . '/.abort');
|
267 |
}
|
268 |
|
269 |
// Check if backup is not in progress
|
320 |
|
321 |
$name = $tmpname . '.zip';
|
322 |
|
323 |
+
$GLOBALS['bmi_current_backup_name'] = $name;
|
324 |
return $name;
|
325 |
}
|
326 |
|
327 |
+
public function fixUnameFunction() {
|
328 |
+
$file = trailingslashit(ABSPATH) . 'wp-admin/includes/class-pclzip.php';
|
329 |
+
$backup = trailingslashit(ABSPATH) . 'wp-admin/includes/class-pclzip-backup.php';
|
330 |
+
|
331 |
+
// Make backup
|
332 |
+
if (!file_exists($backup)) {
|
333 |
+
@copy($file, $backup);
|
334 |
+
}
|
335 |
+
|
336 |
+
// Replace deprecated php_uname function which is mostly disabled and cause errors
|
337 |
+
$replace = file_get_contents($file);
|
338 |
+
$replace = str_replace('php_uname()', '(DIRECTORY_SEPARATOR === "/" ? "linux" : "windows")', $replace);
|
339 |
+
file_put_contents($file, $replace);
|
340 |
+
return ['status' => 'success'];
|
341 |
+
}
|
342 |
+
|
343 |
+
public function revertUnameProcess() {
|
344 |
+
$file = trailingslashit(ABSPATH) . 'wp-admin/includes/class-pclzip.php';
|
345 |
+
$backup = trailingslashit(ABSPATH) . 'wp-admin/includes/class-pclzip-backup.php';
|
346 |
+
if (file_exists($backup)) {
|
347 |
+
if (file_exists($file)) @unlink($file);
|
348 |
+
@copy($backup, $file);
|
349 |
+
}
|
350 |
+
return ['status' => 'success'];
|
351 |
+
}
|
352 |
+
|
353 |
public function prepareAndMakeBackup($cron = false) {
|
354 |
|
355 |
// Require File Scanner
|
365 |
$zip_progress->log(__("Initializing backup...", 'backup-migration'), 'step');
|
366 |
$zip_progress->log((__("Backup & Migration version: ", 'backup-migration') . BMI_VERSION), 'info');
|
367 |
$zip_progress->log(__("Site which will be backed up: ", 'backup-migration') . $this->siteURL(), 'info');
|
368 |
+
$zip_progress->log(__("PHP Version: ", 'backup-migration') . PHP_VERSION, 'info');
|
369 |
+
if (isset($_SERVER['SERVER_SOFTWARE'])) {
|
370 |
+
$zip_progress->log(__("Web server: ", 'backup-migration') . $_SERVER['SERVER_SOFTWARE'], 'info');
|
371 |
+
} else {
|
372 |
+
$zip_progress->log(__("Web server: Not available", 'backup-migration'), 'info');
|
373 |
+
}
|
374 |
+
$zip_progress->log(__("Max execution time (in seconds): ", 'backup-migration') . @ini_get('max_execution_time'), 'info');
|
375 |
$zip_progress->log(__("Checking if backup dir is writable...", 'backup-migration'), 'info');
|
376 |
+
$zip_progress->log(__("Initializing custom error handler", 'backup-migration'), 'info');
|
377 |
+
if (defined('BMI_BACKUP_PRO')) {
|
378 |
+
if (BMI_BACKUP_PRO == 1) {
|
379 |
+
$zip_progress->log(__("Premium plugin is enabled and activated", 'backup-migration'), 'info');
|
380 |
+
} else {
|
381 |
+
$zip_progress->log(__("Premium version is enabled but not active, using free plugin.", 'backup-migration'), 'warn');
|
382 |
+
}
|
383 |
+
}
|
384 |
+
|
385 |
+
// Error handler
|
386 |
+
$this->zip_progress = &$zip_progress;
|
387 |
+
$this->backupErrorHandler();
|
388 |
+
$this->backupExceptionHandler();
|
389 |
+
|
390 |
+
// Just in case (e.g. syntax error, we can close the file correctly)
|
391 |
+
$GLOBALS['bmi_backup_progress'] = &$zip_progress;
|
392 |
|
393 |
// Checker
|
394 |
$checker = new Checker($zip_progress);
|
400 |
$zip_progress->log(__("Path: ", 'backup-migration') . BMI_BACKUPS, 'error');
|
401 |
|
402 |
// Close backup
|
403 |
+
if (file_exists(BMI_BACKUPS . '/.running')) @unlink(BMI_BACKUPS . '/.running');
|
404 |
+
if (file_exists(BMI_BACKUPS . '/.abort')) @unlink(BMI_BACKUPS . '/.abort');
|
405 |
|
406 |
// Log and close log
|
407 |
$zip_progress->end();
|
436 |
$zip_progress->log(str_replace('%s', BMI_REV, __("Site weights more than %s GB.", 'backup-migration')), 'error');
|
437 |
|
438 |
// Close backup
|
439 |
+
if (file_exists(BMI_BACKUPS . '/.running')) @unlink(BMI_BACKUPS . '/.running');
|
440 |
+
if (file_exists(BMI_BACKUPS . '/.abort')) @unlink(BMI_BACKUPS . '/.abort');
|
441 |
|
442 |
// Log and close log
|
443 |
$zip_progress->end();
|
453 |
$zip_progress->log(__("There is no space for that backup, checked: ", 'backup-migration') . ($bytes) . __(" bytes", 'backup-migration'), 'error');
|
454 |
|
455 |
// Close backup
|
456 |
+
if (file_exists(BMI_BACKUPS . '/.running')) @unlink(BMI_BACKUPS . '/.running');
|
457 |
+
if (file_exists(BMI_BACKUPS . '/.abort')) @unlink(BMI_BACKUPS . '/.abort');
|
458 |
|
459 |
// Log and close log
|
460 |
$zip_progress->end();
|
503 |
|
504 |
// Check time if not bugged
|
505 |
if (file_exists(BMI_BACKUPS . '/.running') && (time() - filemtime(BMI_BACKUPS . '/.running')) > 65) {
|
506 |
+
if (file_exists(BMI_BACKUPS . '/.running')) @unlink(BMI_BACKUPS . '/.running');
|
507 |
+
if (file_exists(BMI_BACKUPS . '/.abort')) @unlink(BMI_BACKUPS . '/.abort');
|
508 |
}
|
509 |
|
510 |
// Mark as in progress
|
529 |
$zip_progress->log(__("Aborting backup...", 'backup-migration'), 'step');
|
530 |
|
531 |
// Close backup
|
532 |
+
if (file_exists(BMI_BACKUPS . '/.running')) @unlink(BMI_BACKUPS . '/.running');
|
533 |
+
if (file_exists(BMI_BACKUPS . '/.abort')) @unlink(BMI_BACKUPS . '/.abort');
|
534 |
|
535 |
// Log and close log
|
536 |
$zip_progress->end();
|
537 |
|
538 |
// Return error
|
539 |
+
if (file_exists($backup_path)) @unlink($backup_path);
|
|
|
|
|
|
|
540 |
return ['status' => 'error'];
|
541 |
}
|
542 |
|
546 |
// Make sure it's open
|
547 |
$zip_progress->start();
|
548 |
|
549 |
+
if (file_exists($backup_path)) @unlink($backup_path);
|
550 |
+
if (file_exists(BMI_BACKUPS . '/.running')) @unlink(BMI_BACKUPS . '/.running');
|
551 |
+
if (file_exists(BMI_BACKUPS . '/.abort')) @unlink(BMI_BACKUPS . '/.abort');
|
|
|
|
|
552 |
|
553 |
// Log and close log
|
554 |
$zip_progress->log(__("Backup process aborted.", 'backup-migration'), 'warn');
|
572 |
$zip_progress->log(__("Path: ", 'backup-migration') . $backup_path, 'error');
|
573 |
|
574 |
// Close backup
|
575 |
+
if (file_exists(BMI_BACKUPS . '/.running')) @unlink(BMI_BACKUPS . '/.running');
|
576 |
+
if (file_exists(BMI_BACKUPS . '/.abort')) @unlink(BMI_BACKUPS . '/.abort');
|
577 |
|
578 |
// Log and close log
|
579 |
$zip_progress->end();
|
587 |
$zip_progress->end();
|
588 |
|
589 |
// Unlink progress
|
590 |
+
if (file_exists(BMI_BACKUPS . '/.running')) @unlink(BMI_BACKUPS . '/.running');
|
591 |
+
if (file_exists(BMI_BACKUPS . '/.abort')) @unlink(BMI_BACKUPS . '/.abort');
|
592 |
|
593 |
// Return
|
594 |
Logger::log(__("New backup created and its name is: ", 'backup-migration') . $name);
|
595 |
|
596 |
+
$GLOBALS['bmi_error_handled'] = true;
|
597 |
return ['status' => 'success', 'filename' => $name, 'root' => plugin_dir_url(BMI_ROOT_FILE)];
|
598 |
}
|
599 |
|
610 |
return ['status' => 'success', 'backups' => $manifests];
|
611 |
}
|
612 |
|
613 |
+
public function sendTestMail() {
|
614 |
+
|
615 |
+
$email = Dashboard\bmi_get_config('OTHER:EMAIL') != false ? Dashboard\bmi_get_config('OTHER:EMAIL') : get_bloginfo('admin_email');
|
616 |
+
$subject = __('Backup Migration – Example email', 'backup-migration');
|
617 |
+
$message = __('This is test email sent by Troubleshooting options!', 'backup-migration');
|
618 |
+
|
619 |
+
try {
|
620 |
+
|
621 |
+
if (wp_mail($email, $subject, $message)) return [ 'status' => 'success' ];
|
622 |
+
else return ['status' => 'error'];
|
623 |
+
|
624 |
+
} catch (\Exception $e) {
|
625 |
+
|
626 |
+
return ['status' => 'error'];
|
627 |
+
|
628 |
+
} catch (\Throwable $e) {
|
629 |
+
|
630 |
+
return ['status' => 'error'];
|
631 |
+
|
632 |
+
}
|
633 |
+
|
634 |
+
}
|
635 |
+
|
636 |
public function restoreBackup() {
|
637 |
|
638 |
// Require File Scanner
|
670 |
$migration->log(__('Initializing restore process', 'backup-migration'), 'STEP');
|
671 |
$migration->log((__("Backup & Migration version: ", 'backup-migration') . BMI_VERSION), 'info');
|
672 |
$migration->log(__("Site which will be restored: ", 'backup-migration') . $this->siteURL(), 'info');
|
673 |
+
$migration->log(__("PHP Version: ", 'backup-migration') . PHP_VERSION, 'info');
|
674 |
+
if (isset($_SERVER['SERVER_SOFTWARE'])) {
|
675 |
+
$migration->log(__("Web server: ", 'backup-migration') . $_SERVER['SERVER_SOFTWARE'], 'info');
|
676 |
+
} else {
|
677 |
+
$migration->log(__("Web server: Not available", 'backup-migration'), 'info');
|
678 |
+
}
|
679 |
+
$migration->log(__("Max execution time (in seconds): ", 'backup-migration') . @ini_get('max_execution_time'), 'info');
|
680 |
+
if (defined('BMI_BACKUP_PRO')) {
|
681 |
+
if (BMI_BACKUP_PRO == 1) {
|
682 |
+
$zip_progress->log(__("Premium plugin is enabled and activated", 'backup-migration'), 'info');
|
683 |
+
} else {
|
684 |
+
$zip_progress->log(__("Premium version is enabled but not active, using free plugin.", 'backup-migration'), 'warn');
|
685 |
+
}
|
686 |
+
}
|
687 |
+
|
688 |
+
// Error handler
|
689 |
+
$migration->log(__("Initializing custom error handler", 'backup-migration'), 'info');
|
690 |
+
// Error handler
|
691 |
+
$this->migration_progress = &$migration;
|
692 |
+
$this->migrationErrorHandler();
|
693 |
+
$this->migrationExceptionHandler();
|
694 |
+
|
695 |
+
// Just in case (e.g. syntax error, we can close the file correctly)
|
696 |
+
$GLOBALS['bmi_migration_progress'] = &$migration;
|
697 |
|
698 |
// Check file size
|
699 |
$zippath = BMP::fixSlashes(BMI_BACKUPS) . DIRECTORY_SEPARATOR . $this->post['file'];
|
709 |
$migration->log(__('Aborting...', 'backup-migration'), 'ERROR');
|
710 |
$migration->log(__('Unlocking migration', 'backup-migration'), 'INFO');
|
711 |
|
712 |
+
if (file_exists($lock)) @unlink($lock);
|
713 |
$migration->end();
|
714 |
|
715 |
return ['status' => 'error'];
|
724 |
$migration->log(__('Aborting...', 'backup-migration'), 'ERROR');
|
725 |
$migration->log(__('Unlocking migration', 'backup-migration'), 'INFO');
|
726 |
|
727 |
+
if (file_exists($lock)) @unlink($lock);
|
728 |
$migration->end();
|
729 |
|
730 |
return ['status' => 'error'];
|
739 |
$migration->log(__('Aborting...', 'backup-migration'), 'ERROR');
|
740 |
$migration->log(__('Unlocking migration', 'backup-migration'), 'INFO');
|
741 |
|
742 |
+
if (file_exists($lock)) @unlink($lock);
|
743 |
$migration->end();
|
744 |
|
745 |
return ['status' => 'error'];
|
749 |
$migration->log(__('Restore process completed', 'backup-migration'), 'SUCCESS');
|
750 |
$migration->log(__('Finalizing restored files', 'backup-migration'), 'STEP');
|
751 |
$migration->log(__('Unlocking migration', 'backup-migration'), 'INFO');
|
752 |
+
if (file_exists($lock)) @unlink($lock);
|
753 |
|
754 |
$migration->end();
|
755 |
|
865 |
$migration->log(__('Downloading remote file...', 'backup-migration'), 'STEP');
|
866 |
$fileError = $this->downloadFile($url, $dest, $progress, $lock);
|
867 |
$migration->log(__('Unlocking migration', 'backup-migration'), 'INFO');
|
868 |
+
if (file_exists($lock)) @unlink($lock);
|
869 |
|
870 |
if ($fileError) {
|
871 |
$migration->log(__('Removing downloaded file', 'backup-migration'), 'INFO');
|
872 |
+
if (file_exists($dest)) @unlink($dest);
|
873 |
$migration->log(__('Download error', 'backup-migration'), 'ERROR');
|
874 |
|
875 |
if (strpos($fileError, 'Failed writing body') !== false) {
|
908 |
} catch (\Exception $e) {
|
909 |
$migration->log(__('Error: ', 'backup-migration') . $e, 'ERROR');
|
910 |
$migration->log(__('Removing downloaded file', 'backup-migration'), 'ERROR');
|
911 |
+
if (file_exists($dest)) @unlink($dest);
|
912 |
|
913 |
$migration->end();
|
914 |
|
916 |
} catch (\Throwable $e) {
|
917 |
$migration->log(__('Error: ', 'backup-migration') . $e, 'ERROR');
|
918 |
$migration->log(__('Removing downloaded file', 'backup-migration'), 'ERROR');
|
919 |
+
if (file_exists($dest)) @unlink($dest);
|
920 |
|
921 |
$migration->end();
|
922 |
|
941 |
$migration->log(__('Removing downloaded file', 'backup-migration'), 'ERROR');
|
942 |
}
|
943 |
|
944 |
+
if (file_exists($dest)) @unlink($dest);
|
945 |
$migration->end();
|
946 |
|
947 |
return ['status' => 'error'];
|
1013 |
}
|
1014 |
} else {
|
1015 |
if ($created === true) {
|
1016 |
+
if (file_exists($dir_path)) @unlink($dir_path);
|
1017 |
}
|
1018 |
|
1019 |
return ['status' => 'msg', 'why' => __('Entered path is not writable, cannot be used.', 'backup-migration'), 'level' => 'warning'];
|
1440 |
continue;
|
1441 |
}
|
1442 |
|
1443 |
+
if ($size === 0) {
|
1444 |
+
array_splice($files, $i, 1);
|
1445 |
+
$maxfor--;
|
1446 |
+
$i--;
|
1447 |
+
|
1448 |
+
continue;
|
1449 |
+
}
|
1450 |
+
|
1451 |
$total_size += $size;
|
1452 |
}
|
1453 |
|
includes/compatibility.php
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// Exit on direct access
|
4 |
+
if (!defined('ABSPATH')) exit;
|
5 |
+
|
6 |
+
// Fix PclZip error when php_uname is disabled
|
7 |
+
if (PHP_MAJOR_VERSION >= 8 && !function_exists('php_uname')) {
|
8 |
+
function php_uname() {
|
9 |
+
if (DIRECTORY_SEPARATOR === '/') {
|
10 |
+
return 'linux';
|
11 |
+
} else return 'windows';
|
12 |
+
}
|
13 |
+
}
|
includes/constants.php
CHANGED
@@ -10,10 +10,7 @@
|
|
10 |
|
11 |
// Plugin includes
|
12 |
if (!defined('BMI_AUTHOR_URI')) {
|
13 |
-
define('BMI_AUTHOR_URI', 'https://
|
14 |
-
}
|
15 |
-
if (!defined('BMI_INCLUDES')) {
|
16 |
-
define('BMI_INCLUDES', BMI_ROOT_DIR . DIRECTORY_SEPARATOR . 'includes');
|
17 |
}
|
18 |
if (!defined('BMI_BACKUPS_DEFAULT')) {
|
19 |
define('BMI_BACKUPS_DEFAULT', WP_CONTENT_DIR . DIRECTORY_SEPARATOR . 'backup-migration');
|
@@ -74,3 +71,27 @@
|
|
74 |
if (!file_exists(BMI_BACKUPS . DIRECTORY_SEPARATOR . '.htaccess')) {
|
75 |
copy(BMI_INCLUDES . DIRECTORY_SEPARATOR . 'htaccess' . DIRECTORY_SEPARATOR . '.htaccess', BMI_BACKUPS . DIRECTORY_SEPARATOR . '.htaccess');
|
76 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
11 |
// Plugin includes
|
12 |
if (!defined('BMI_AUTHOR_URI')) {
|
13 |
+
define('BMI_AUTHOR_URI', 'https://backupbliss.com/');
|
|
|
|
|
|
|
14 |
}
|
15 |
if (!defined('BMI_BACKUPS_DEFAULT')) {
|
16 |
define('BMI_BACKUPS_DEFAULT', WP_CONTENT_DIR . DIRECTORY_SEPARATOR . 'backup-migration');
|
71 |
if (!file_exists(BMI_BACKUPS . DIRECTORY_SEPARATOR . '.htaccess')) {
|
72 |
copy(BMI_INCLUDES . DIRECTORY_SEPARATOR . 'htaccess' . DIRECTORY_SEPARATOR . '.htaccess', BMI_BACKUPS . DIRECTORY_SEPARATOR . '.htaccess');
|
73 |
}
|
74 |
+
|
75 |
+
// Tooltips
|
76 |
+
if (!defined('BMI_PREMIUM_TOOLTIP')) {
|
77 |
+
$tooltip = sanitize_text_field(__("This feature isn’t ready yet in the premium plugin, that’s why you can buy it at a <b>big discount</b>", 'backup-migration'));
|
78 |
+
$tooltip .= ' – <a href="' . BMI_AUTHOR_URI . '" target="_blank">' . sanitize_text_field(__('learn more', 'backup-migration')) . '</a>.';
|
79 |
+
define('BMI_PREMIUM_TOOLTIP', $tooltip);
|
80 |
+
}
|
81 |
+
if (!defined('BMI_COMMING_SOON_TUNED')) {
|
82 |
+
$cmsx = '<b><a href="' . BMI_AUTHOR_URI . '" target="_blank" class="link-white">' . sanitize_text_field(__('Order it now at a big discount!', 'backup-migration')) . '</a></b>';
|
83 |
+
define('BMI_COMMING_SOON_TUNED', $cmsx);
|
84 |
+
}
|
85 |
+
if (!defined('BMI_COMMING_SOON_PRO')) {
|
86 |
+
$cmsv = '<p class="f16">';
|
87 |
+
$cmsv .= sanitize_text_field(__("Coming soon in the Premium Plugin", 'backup-migration'));
|
88 |
+
$cmsv .= ' – ' . BMI_COMMING_SOON_TUNED;
|
89 |
+
$cmsv .= '</p>';
|
90 |
+
define('BMI_COMMING_SOON_PRO', $cmsv);
|
91 |
+
}
|
92 |
+
if (!defined('BMI_COMMING_SOON_FREE')) {
|
93 |
+
$cmsne = '<p class="f16">';
|
94 |
+
$cmsne .= __("Coming soon also in the free plugin", 'backup-migration') . ' – <b>' . __("stay tuned!", 'backup-migration') . '</b>';
|
95 |
+
$cmsne .= '</p>';
|
96 |
+
define('BMI_COMMING_SOON_FREE', $cmsne);
|
97 |
+
}
|
includes/dashboard/chapter/troubleshooting.php
CHANGED
@@ -24,7 +24,7 @@
|
|
24 |
|
25 |
<table class="center-table trouble-section">
|
26 |
|
27 |
-
<tr class="
|
28 |
<td style="width: 33%">
|
29 |
<a href="https://wordpress.org/support/plugin/backup-backup/" target="_blank" class="nodec">
|
30 |
<div class="shadow">
|
@@ -167,12 +167,35 @@
|
|
167 |
<?php _e("Logging", 'backup-migration'); ?>
|
168 |
</div>
|
169 |
|
170 |
-
<div class="mm mtll f16">
|
171 |
<?php _e("All backup creation & restore processes are documented in log files which to debug issues.", 'backup-migration'); ?>
|
172 |
<a href="<?php echo get_site_url(); ?>/?backup-migration=PROGRESS_LOGS&progress-id=complete_logs.log&backup-id=current&t=<?php echo time(); ?>"
|
173 |
download="<?php _e('bmi-debug-info', 'backup-migration') ?>" class="nodec hoverable secondary">
|
174 |
<?php _e("Download logs.", 'backup-migration'); ?>
|
175 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
176 |
</div>
|
177 |
|
178 |
<div class="mm mtl mbll semibold">
|
24 |
|
25 |
<table class="center-table trouble-section">
|
26 |
|
27 |
+
<tr class="lh28">
|
28 |
<td style="width: 33%">
|
29 |
<a href="https://wordpress.org/support/plugin/backup-backup/" target="_blank" class="nodec">
|
30 |
<div class="shadow">
|
167 |
<?php _e("Logging", 'backup-migration'); ?>
|
168 |
</div>
|
169 |
|
170 |
+
<div class="mm mtll f16 lh28">
|
171 |
<?php _e("All backup creation & restore processes are documented in log files which to debug issues.", 'backup-migration'); ?>
|
172 |
<a href="<?php echo get_site_url(); ?>/?backup-migration=PROGRESS_LOGS&progress-id=complete_logs.log&backup-id=current&t=<?php echo time(); ?>"
|
173 |
download="<?php _e('bmi-debug-info', 'backup-migration') ?>" class="nodec hoverable secondary">
|
174 |
<?php _e("Download logs.", 'backup-migration'); ?>
|
175 |
+
</a>
|
176 |
+
</div>
|
177 |
+
|
178 |
+
<div class="mm mtl semibold">
|
179 |
+
<?php _e("Error: php_uname is disabled for security reasons", 'backup-migration'); ?>
|
180 |
+
</div>
|
181 |
+
|
182 |
+
<div class="mm mtll f16 lh28">
|
183 |
+
<?php _e("Some hostings blocks php_uname function which is required by pclzip module included in WordPress.", 'backup-migration'); ?><br>
|
184 |
+
<?php _e("You can automatically replace the function with compatible code:", 'backup-migration'); ?>
|
185 |
+
<a href="#" class="nodec secondary hoverable" id="fix-uname-issues"><?php _e("Replace php_uname function in pclzip file", 'backup-migration'); ?></a><br>
|
186 |
+
<?php _e("You can also restore the changes with one click if something went wrong:", 'backup-migration'); ?>
|
187 |
+
<a href="#" class="nodec secondary hoverable" id="revert-uname-issues"><?php _e("Restore original pclzip file (will work after first replacement)", 'backup-migration'); ?></a>
|
188 |
+
</div>
|
189 |
+
|
190 |
+
<div class="mm mtl semibold">
|
191 |
+
<?php _e("Test email", 'backup-migration'); ?>
|
192 |
+
</div>
|
193 |
+
|
194 |
+
<div class="mm mtll f16 lh28">
|
195 |
+
<?php _e("If you're willing to know if your server is properly configured to send emails, you can test it here.", 'backup-migration'); ?><br>
|
196 |
+
<?php _e("Remember that even if you get success alert there still might be some s.", 'backup-migration'); ?> <?php _e("Check if the email is visible in your mailbox / spam folder.", 'backup-migration'); ?><br>
|
197 |
+
<?php _e("Message will be send to e-mail you provided in the ", 'backup-migration'); ?> <a href="#" class="collapser-openner nodec secondary hoverable" data-el="#other-options"><?php _e("other options", 'backup-migration'); ?></a>.<br>
|
198 |
+
<a href="#" id="bmi_send_test_mail" class="nodec hoverable secondary"><?php _e("Click here", 'backup-migration'); ?></a> <?php _e("to send the mail.", 'backup-migration'); ?><br>
|
199 |
</div>
|
200 |
|
201 |
<div class="mm mtl mbll semibold">
|
includes/dashboard/chapter/what_backed_up.php
CHANGED
@@ -7,9 +7,7 @@
|
|
7 |
use BMI\Plugin\Backup_Migration_Plugin as BMP;
|
8 |
|
9 |
// Exit on direct access
|
10 |
-
if (!defined('ABSPATH'))
|
11 |
-
exit;
|
12 |
-
}
|
13 |
|
14 |
function siteURL() {
|
15 |
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
|
@@ -19,16 +17,13 @@
|
|
19 |
}
|
20 |
|
21 |
// Tooltips
|
22 |
-
$sellcodes_url = BMI_AUTHOR_URI;
|
23 |
$tooltip_files = __("Here are stored all plugin, theme, WordPress installation files, but also files from Media library and other folders and files located in your server’s site directory. Note that WordPress keeps records of files such as Media library in the Databases, so you should also backup Databases if you want WordPress to “see” e.g. recovered media files. Size here is the total size you can get.", 'backup-migration');
|
24 |
$domain = siteURL();
|
25 |
$tooltip_exclude_file = __("Enter the paths to the files you want to exclude from your backup (one per line).", 'backup-migration');
|
26 |
$tooltip_exclude_path = __("Enter the paths to the directories/folders you want to exclude from your backup (one per line).", 'backup-migration');
|
27 |
$tooltip_premium_details = __("You can already exclude files based on filters (click on “Yes” below), however in the premium plugin you’ll also be able to browse through them.", 'backup-migration') . "<br><br>";
|
28 |
-
$tooltip_premium_details .=
|
29 |
-
|
30 |
-
$tooltip_smart_exclusion = __("This feature isn’t ready yet in the premium plugin, that’s why you can buy it at a <b>big discount</b>. ", 'backup-migration');
|
31 |
-
$tooltip_smart_exclusion .= "<a href='" . $sellcodes_url . "' target='_blank'>" . __("Learn more", 'backup-migration') . "</a>.";
|
32 |
|
33 |
if (!function_exists('bmi_cb_collapsible')) {
|
34 |
function bmi_cb_collapsible($c) {
|
@@ -381,9 +376,10 @@
|
|
381 |
</div>
|
382 |
|
383 |
<div class="mm mbl lh30 f20">
|
384 |
-
<?php _e("With above exclusion rules you excluded", 'backup-migration'); ?> <b id="esta-exclude">0 B</b> <?php _e("of data, which means your backup will be about", 'backup-migration'); ?> <b id="esta-size-for">0 B</b> <?php _e("large, unzipped.", 'backup-migration');
|
385 |
<!-- <?php _e("(refresh)", 'backup-migration'); ?> -->
|
386 |
<!-- <?php _e("See the list of files you excluded.", 'backup-migration'); ?> -->
|
|
|
387 |
</div>
|
388 |
|
389 |
<?php include BMI_INCLUDES . '/dashboard/chapter/save-button.php'; ?>
|
7 |
use BMI\Plugin\Backup_Migration_Plugin as BMP;
|
8 |
|
9 |
// Exit on direct access
|
10 |
+
if (!defined('ABSPATH')) exit;
|
|
|
|
|
11 |
|
12 |
function siteURL() {
|
13 |
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
|
17 |
}
|
18 |
|
19 |
// Tooltips
|
|
|
20 |
$tooltip_files = __("Here are stored all plugin, theme, WordPress installation files, but also files from Media library and other folders and files located in your server’s site directory. Note that WordPress keeps records of files such as Media library in the Databases, so you should also backup Databases if you want WordPress to “see” e.g. recovered media files. Size here is the total size you can get.", 'backup-migration');
|
21 |
$domain = siteURL();
|
22 |
$tooltip_exclude_file = __("Enter the paths to the files you want to exclude from your backup (one per line).", 'backup-migration');
|
23 |
$tooltip_exclude_path = __("Enter the paths to the directories/folders you want to exclude from your backup (one per line).", 'backup-migration');
|
24 |
$tooltip_premium_details = __("You can already exclude files based on filters (click on “Yes” below), however in the premium plugin you’ll also be able to browse through them.", 'backup-migration') . "<br><br>";
|
25 |
+
$tooltip_premium_details .= str_replace('"', "'", BMI_PREMIUM_TOOLTIP);
|
26 |
+
$tooltip_smart_exclusion = str_replace('"', "'", BMI_PREMIUM_TOOLTIP);
|
|
|
|
|
27 |
|
28 |
if (!function_exists('bmi_cb_collapsible')) {
|
29 |
function bmi_cb_collapsible($c) {
|
376 |
</div>
|
377 |
|
378 |
<div class="mm mbl lh30 f20">
|
379 |
+
<?php _e("With above exclusion rules you excluded", 'backup-migration'); ?> <b id="esta-exclude">0 B</b> <?php _e("of data, which means your backup will be about", 'backup-migration'); ?> <b id="esta-size-for">0 B</b> <?php _e("large, unzipped.", 'backup-migration'); ?><br>
|
380 |
<!-- <?php _e("(refresh)", 'backup-migration'); ?> -->
|
381 |
<!-- <?php _e("See the list of files you excluded.", 'backup-migration'); ?> -->
|
382 |
+
<?php _e("* At this moment excluded files are not counted here - yet (it will be in future of course!).", 'backup-migration'); ?>
|
383 |
</div>
|
384 |
|
385 |
<?php include BMI_INCLUDES . '/dashboard/chapter/save-button.php'; ?>
|
includes/dashboard/chapter/where_config.php
CHANGED
@@ -10,8 +10,8 @@
|
|
10 |
|
11 |
// Preorder URL
|
12 |
$preorder = BMI_AUTHOR_URI;
|
13 |
-
|
14 |
-
?>
|
15 |
|
16 |
<div class="mm mt mbl f20">
|
17 |
<?php _e("Select all the storage options you want to use:", 'backup-migration'); ?>
|
@@ -81,7 +81,7 @@
|
|
81 |
<div class="tab2-item">
|
82 |
<div class="not_ready"></div>
|
83 |
<div class="bg_clock_day2"><img src="<?php echo $this->get_asset('images', 'clock2.svg') ?>" alt="clock" class="clock_img">
|
84 |
-
|
85 |
</div>
|
86 |
<div class="d-flex ia-center"><img src="<?php echo $this->get_asset('images', 'google-drive.svg') ?>" alt="logo" class="tab2-img"> <span class="ml25 title_whereStored"><?php _e("Google Drive", 'backup-migration'); ?></span></div>
|
87 |
<div class="ia-center">
|
@@ -94,7 +94,7 @@
|
|
94 |
<div class="tab2-item">
|
95 |
<div class="not_ready"></div>
|
96 |
<div class="bg_clock_day2"><img src="<?php echo $this->get_asset('images', 'clock2.svg') ?>" alt="clock" class="clock_img">
|
97 |
-
|
98 |
</div>
|
99 |
<div class="d-flex ia-center"><img src="<?php echo $this->get_asset('images', 'google-cloud.svg') ?>" alt="logo" class="tab2-img"> <span class="ml25 title_whereStored">Google Cloud</span> <img src="<?php echo $this->get_asset('images', 'premium.svg') ?>"
|
100 |
alt="logo" class="crown2"></div>
|
@@ -108,7 +108,7 @@
|
|
108 |
<div class="tab2-item">
|
109 |
<div class="not_ready"></div>
|
110 |
<div class="bg_clock_day2"><img src="<?php echo $this->get_asset('images', 'clock2.svg') ?>" alt="clock" class="clock_img">
|
111 |
-
|
112 |
</div>
|
113 |
<div class="d-flex ia-center"><img src="<?php echo $this->get_asset('images', 'ftp.svg') ?>" alt="logo" class="tab2-img"> <span class="ml25 title_whereStored">FTP</span></div>
|
114 |
<div class="ia-center">
|
@@ -121,7 +121,7 @@
|
|
121 |
<div class="tab2-item">
|
122 |
<div class="not_ready"></div>
|
123 |
<div class="bg_clock_day2"><img src="<?php echo $this->get_asset('images', 'clock2.svg') ?>" alt="clock" class="clock_img">
|
124 |
-
|
125 |
</div>
|
126 |
<div class="d-flex ia-center"><img src="<?php echo $this->get_asset('images', 'sftp-scp.svg') ?>" alt="logo" class="tab2-img"> <span class="ml25 title_whereStored">SFTP / SCP</span> <img src="<?php echo $this->get_asset('images', 'premium.svg') ?>"
|
127 |
alt="logo" class="crown2"></div>
|
@@ -135,7 +135,7 @@
|
|
135 |
<div class="tab2-item">
|
136 |
<div class="not_ready"></div>
|
137 |
<div class="bg_clock_day2"><img src="<?php echo $this->get_asset('images', 'clock2.svg') ?>" alt="clock" class="clock_img">
|
138 |
-
|
139 |
</div>
|
140 |
<div class="d-flex ia-center"><img src="<?php echo $this->get_asset('images', 'Amazon.svg') ?>" alt="logo" class="tab2-img"> <span class="ml25 title_whereStored">Amazon S3</span></div>
|
141 |
<div class="ia-center">
|
@@ -148,7 +148,7 @@
|
|
148 |
<div class="tab2-item">
|
149 |
<div class="not_ready"></div>
|
150 |
<div class="bg_clock_day2"><img src="<?php echo $this->get_asset('images', 'clock2.svg') ?>" alt="clock" class="clock_img">
|
151 |
-
|
152 |
</div>
|
153 |
<div class="d-flex ia-center"><img src="<?php echo $this->get_asset('images', 'microsoft-azure.svg') ?>" alt="logo" class="tab2-img"> <span class="ml25 title_whereStored">Microsoft Azure</span> <img src="<?php echo $this->get_asset('images', 'premium.svg') ?>"
|
154 |
alt="logo" class="crown2"></div>
|
@@ -162,7 +162,7 @@
|
|
162 |
<div class="tab2-item">
|
163 |
<div class="not_ready"></div>
|
164 |
<div class="bg_clock_day2"><img src="<?php echo $this->get_asset('images', 'clock2.svg') ?>" alt="clock" class="clock_img">
|
165 |
-
|
166 |
</div>
|
167 |
<div class="d-flex ia-center"><img src="<?php echo $this->get_asset('images', 'onedrive.svg') ?>" alt="logo" class="tab2-img"> <span class="ml25 title_whereStored">OneDrive</span> <img src="<?php echo $this->get_asset('images', 'premium.svg') ?>"
|
168 |
alt="logo" class="crown2"></div>
|
@@ -176,7 +176,7 @@
|
|
176 |
<div class="tab2-item">
|
177 |
<div class="not_ready"></div>
|
178 |
<div class="bg_clock_day2"><img src="<?php echo $this->get_asset('images', 'clock2.svg') ?>" alt="clock" class="clock_img">
|
179 |
-
|
180 |
</div>
|
181 |
<div class="d-flex ia-center"><img src="<?php echo $this->get_asset('images', 'rackspace.svg') ?>" alt="logo" class="tab2-img"> <span class="ml25 title_whereStored">Rackspace</span></div>
|
182 |
<div class="ia-center">
|
@@ -189,7 +189,7 @@
|
|
189 |
<div class="tab2-item">
|
190 |
<div class="not_ready"></div>
|
191 |
<div class="bg_clock_day2"><img src="<?php echo $this->get_asset('images', 'clock2.svg') ?>" alt="clock" class="clock_img">
|
192 |
-
|
193 |
</div>
|
194 |
<div class="d-flex ia-center"><img src="<?php echo $this->get_asset('images', 'backblaze.svg') ?>" alt="logo" class="tab2-img"> <span class="ml25 title_whereStored">Backblaze</span> <img src="<?php echo $this->get_asset('images', 'premium.svg') ?>"
|
195 |
alt="logo" class="crown2"></div>
|
@@ -203,7 +203,7 @@
|
|
203 |
<div class="tab2-item">
|
204 |
<div class="not_ready"></div>
|
205 |
<div class="bg_clock_day2"><img src="<?php echo $this->get_asset('images', 'clock2.svg') ?>" alt="clock" class="clock_img">
|
206 |
-
|
207 |
</div>
|
208 |
<div class="d-flex ia-center"><img src="<?php echo $this->get_asset('images', 'dream-objects.svg') ?>" alt="logo" class="tab2-img"> <span class="ml25 title_whereStored">DreamObjects</span></div>
|
209 |
<div class="ia-center">
|
@@ -216,7 +216,7 @@
|
|
216 |
<div class="tab2-item">
|
217 |
<div class="not_ready"></div>
|
218 |
<div class="bg_clock_day2"><img src="<?php echo $this->get_asset('images', 'clock2.svg') ?>" alt="clock" class="clock_img">
|
219 |
-
|
220 |
</div>
|
221 |
<div class="d-flex ia-center"><img src="<?php echo $this->get_asset('images', 'openstack-swift.svg') ?>" alt="logo" class="tab2-img"> <span class="ml25 title_whereStored">Openstack (Swift)</span></div>
|
222 |
<div class="ia-center">
|
10 |
|
11 |
// Preorder URL
|
12 |
$preorder = BMI_AUTHOR_URI;
|
13 |
+
|
14 |
+
?>
|
15 |
|
16 |
<div class="mm mt mbl f20">
|
17 |
<?php _e("Select all the storage options you want to use:", 'backup-migration'); ?>
|
81 |
<div class="tab2-item">
|
82 |
<div class="not_ready"></div>
|
83 |
<div class="bg_clock_day2"><img src="<?php echo $this->get_asset('images', 'clock2.svg') ?>" alt="clock" class="clock_img">
|
84 |
+
<?php echo BMI_COMMING_SOON_FREE; ?>
|
85 |
</div>
|
86 |
<div class="d-flex ia-center"><img src="<?php echo $this->get_asset('images', 'google-drive.svg') ?>" alt="logo" class="tab2-img"> <span class="ml25 title_whereStored"><?php _e("Google Drive", 'backup-migration'); ?></span></div>
|
87 |
<div class="ia-center">
|
94 |
<div class="tab2-item">
|
95 |
<div class="not_ready"></div>
|
96 |
<div class="bg_clock_day2"><img src="<?php echo $this->get_asset('images', 'clock2.svg') ?>" alt="clock" class="clock_img">
|
97 |
+
<?php echo BMI_COMMING_SOON_PRO; ?>
|
98 |
</div>
|
99 |
<div class="d-flex ia-center"><img src="<?php echo $this->get_asset('images', 'google-cloud.svg') ?>" alt="logo" class="tab2-img"> <span class="ml25 title_whereStored">Google Cloud</span> <img src="<?php echo $this->get_asset('images', 'premium.svg') ?>"
|
100 |
alt="logo" class="crown2"></div>
|
108 |
<div class="tab2-item">
|
109 |
<div class="not_ready"></div>
|
110 |
<div class="bg_clock_day2"><img src="<?php echo $this->get_asset('images', 'clock2.svg') ?>" alt="clock" class="clock_img">
|
111 |
+
<?php echo BMI_COMMING_SOON_FREE; ?>
|
112 |
</div>
|
113 |
<div class="d-flex ia-center"><img src="<?php echo $this->get_asset('images', 'ftp.svg') ?>" alt="logo" class="tab2-img"> <span class="ml25 title_whereStored">FTP</span></div>
|
114 |
<div class="ia-center">
|
121 |
<div class="tab2-item">
|
122 |
<div class="not_ready"></div>
|
123 |
<div class="bg_clock_day2"><img src="<?php echo $this->get_asset('images', 'clock2.svg') ?>" alt="clock" class="clock_img">
|
124 |
+
<?php echo BMI_COMMING_SOON_PRO; ?>
|
125 |
</div>
|
126 |
<div class="d-flex ia-center"><img src="<?php echo $this->get_asset('images', 'sftp-scp.svg') ?>" alt="logo" class="tab2-img"> <span class="ml25 title_whereStored">SFTP / SCP</span> <img src="<?php echo $this->get_asset('images', 'premium.svg') ?>"
|
127 |
alt="logo" class="crown2"></div>
|
135 |
<div class="tab2-item">
|
136 |
<div class="not_ready"></div>
|
137 |
<div class="bg_clock_day2"><img src="<?php echo $this->get_asset('images', 'clock2.svg') ?>" alt="clock" class="clock_img">
|
138 |
+
<?php echo BMI_COMMING_SOON_FREE; ?>
|
139 |
</div>
|
140 |
<div class="d-flex ia-center"><img src="<?php echo $this->get_asset('images', 'Amazon.svg') ?>" alt="logo" class="tab2-img"> <span class="ml25 title_whereStored">Amazon S3</span></div>
|
141 |
<div class="ia-center">
|
148 |
<div class="tab2-item">
|
149 |
<div class="not_ready"></div>
|
150 |
<div class="bg_clock_day2"><img src="<?php echo $this->get_asset('images', 'clock2.svg') ?>" alt="clock" class="clock_img">
|
151 |
+
<?php echo BMI_COMMING_SOON_PRO; ?>
|
152 |
</div>
|
153 |
<div class="d-flex ia-center"><img src="<?php echo $this->get_asset('images', 'microsoft-azure.svg') ?>" alt="logo" class="tab2-img"> <span class="ml25 title_whereStored">Microsoft Azure</span> <img src="<?php echo $this->get_asset('images', 'premium.svg') ?>"
|
154 |
alt="logo" class="crown2"></div>
|
162 |
<div class="tab2-item">
|
163 |
<div class="not_ready"></div>
|
164 |
<div class="bg_clock_day2"><img src="<?php echo $this->get_asset('images', 'clock2.svg') ?>" alt="clock" class="clock_img">
|
165 |
+
<?php echo BMI_COMMING_SOON_PRO; ?>
|
166 |
</div>
|
167 |
<div class="d-flex ia-center"><img src="<?php echo $this->get_asset('images', 'onedrive.svg') ?>" alt="logo" class="tab2-img"> <span class="ml25 title_whereStored">OneDrive</span> <img src="<?php echo $this->get_asset('images', 'premium.svg') ?>"
|
168 |
alt="logo" class="crown2"></div>
|
176 |
<div class="tab2-item">
|
177 |
<div class="not_ready"></div>
|
178 |
<div class="bg_clock_day2"><img src="<?php echo $this->get_asset('images', 'clock2.svg') ?>" alt="clock" class="clock_img">
|
179 |
+
<?php echo BMI_COMMING_SOON_FREE; ?>
|
180 |
</div>
|
181 |
<div class="d-flex ia-center"><img src="<?php echo $this->get_asset('images', 'rackspace.svg') ?>" alt="logo" class="tab2-img"> <span class="ml25 title_whereStored">Rackspace</span></div>
|
182 |
<div class="ia-center">
|
189 |
<div class="tab2-item">
|
190 |
<div class="not_ready"></div>
|
191 |
<div class="bg_clock_day2"><img src="<?php echo $this->get_asset('images', 'clock2.svg') ?>" alt="clock" class="clock_img">
|
192 |
+
<?php echo BMI_COMMING_SOON_PRO; ?>
|
193 |
</div>
|
194 |
<div class="d-flex ia-center"><img src="<?php echo $this->get_asset('images', 'backblaze.svg') ?>" alt="logo" class="tab2-img"> <span class="ml25 title_whereStored">Backblaze</span> <img src="<?php echo $this->get_asset('images', 'premium.svg') ?>"
|
195 |
alt="logo" class="crown2"></div>
|
203 |
<div class="tab2-item">
|
204 |
<div class="not_ready"></div>
|
205 |
<div class="bg_clock_day2"><img src="<?php echo $this->get_asset('images', 'clock2.svg') ?>" alt="clock" class="clock_img">
|
206 |
+
<?php echo BMI_COMMING_SOON_FREE; ?>
|
207 |
</div>
|
208 |
<div class="d-flex ia-center"><img src="<?php echo $this->get_asset('images', 'dream-objects.svg') ?>" alt="logo" class="tab2-img"> <span class="ml25 title_whereStored">DreamObjects</span></div>
|
209 |
<div class="ia-center">
|
216 |
<div class="tab2-item">
|
217 |
<div class="not_ready"></div>
|
218 |
<div class="bg_clock_day2"><img src="<?php echo $this->get_asset('images', 'clock2.svg') ?>" alt="clock" class="clock_img">
|
219 |
+
<?php echo BMI_COMMING_SOON_FREE; ?>
|
220 |
</div>
|
221 |
<div class="d-flex ia-center"><img src="<?php echo $this->get_asset('images', 'openstack-swift.svg') ?>" alt="logo" class="tab2-img"> <span class="ml25 title_whereStored">Openstack (Swift)</span></div>
|
222 |
<div class="ia-center">
|
includes/dashboard/modals/backup-error-modal.php
CHANGED
@@ -47,12 +47,12 @@
|
|
47 |
<div class="mm60 flex flexcenter mtl">
|
48 |
<div class="flex1 f16">
|
49 |
<a href="<?php echo get_site_url(); ?>/?backup-migration=PROGRESS_LOGS&progress-id=latest.log&backup-id=current&t=<?php echo time(); ?>"
|
50 |
-
class="hoverable nodec secondary" download="
|
51 |
<?php _e('Download logs', 'backup-migration') ?>
|
52 |
</a>
|
53 |
</div>
|
54 |
<div class="flex2">
|
55 |
-
<a class="btn inline semibold mm60 f16" href="
|
56 |
<?php _e('Go to Support Forum', 'backup-migration') ?>
|
57 |
</a>
|
58 |
</div>
|
47 |
<div class="mm60 flex flexcenter mtl">
|
48 |
<div class="flex1 f16">
|
49 |
<a href="<?php echo get_site_url(); ?>/?backup-migration=PROGRESS_LOGS&progress-id=latest.log&backup-id=current&t=<?php echo time(); ?>"
|
50 |
+
class="hoverable nodec secondary" download="backup_error_log">
|
51 |
<?php _e('Download logs', 'backup-migration') ?>
|
52 |
</a>
|
53 |
</div>
|
54 |
<div class="flex2">
|
55 |
+
<a class="btn inline semibold mm60 f16" href="https://wordpress.org/support/plugin/backup-backup/" target="_blank">
|
56 |
<?php _e('Go to Support Forum', 'backup-migration') ?>
|
57 |
</a>
|
58 |
</div>
|
includes/dashboard/modals/bfs-modal.php
CHANGED
@@ -45,7 +45,7 @@
|
|
45 |
<?php _e("We made it really affordable and it’s a great way to show your appreciation and support the further development of the plugin :) Thank you!", 'backup-migration'); ?>
|
46 |
</div>
|
47 |
|
48 |
-
<a href="
|
49 |
<div class="f18"><?php _e("Yes, that’s fair…", 'backup-migration'); ?></div>
|
50 |
<div class="f30 bold"><?php _e("Get premium", 'backup-migration'); ?></div>
|
51 |
<div class="f18"><?php _e("(which includes other cool features too!)", 'backup-migration'); ?></div>
|
45 |
<?php _e("We made it really affordable and it’s a great way to show your appreciation and support the further development of the plugin :) Thank you!", 'backup-migration'); ?>
|
46 |
</div>
|
47 |
|
48 |
+
<a href="<?php echo BMI_AUTHOR_URI; ?>" target="_blank" class="btn center lh45">
|
49 |
<div class="f18"><?php _e("Yes, that’s fair…", 'backup-migration'); ?></div>
|
50 |
<div class="f30 bold"><?php _e("Get premium", 'backup-migration'); ?></div>
|
51 |
<div class="f18"><?php _e("(which includes other cool features too!)", 'backup-migration'); ?></div>
|
includes/dashboard/modals/pre-restore-modal.php
CHANGED
@@ -10,8 +10,7 @@
|
|
10 |
|
11 |
// Premium
|
12 |
$sellcodes = BMI_AUTHOR_URI;
|
13 |
-
$tooltip = "
|
14 |
-
$tooltip .= "<a href='" . $sellcodes . "' target='_blank'>Learn more</a>.";
|
15 |
|
16 |
?>
|
17 |
|
10 |
|
11 |
// Premium
|
12 |
$sellcodes = BMI_AUTHOR_URI;
|
13 |
+
$tooltip = str_replace('"', "'", BMI_PREMIUM_TOOLTIP);
|
|
|
14 |
|
15 |
?>
|
16 |
|
includes/dashboard/modals/restore-error-modal.php
CHANGED
@@ -52,7 +52,7 @@
|
|
52 |
</a>
|
53 |
</div>
|
54 |
<div class="flex2">
|
55 |
-
<a class="btn inline semibold mm60 f16" href="
|
56 |
<?php _e('Go to Support Forum', 'backup-migration') ?>
|
57 |
</a>
|
58 |
</div>
|
52 |
</a>
|
53 |
</div>
|
54 |
<div class="flex2">
|
55 |
+
<a class="btn inline semibold mm60 f16" href="https://wordpress.org/support/plugin/backup-backup/" target="_blank">
|
56 |
<?php _e('Go to Support Forum', 'backup-migration') ?>
|
57 |
</a>
|
58 |
</div>
|
includes/dashboard/modals/restore-success-modal.php
CHANGED
@@ -23,7 +23,7 @@
|
|
23 |
|
24 |
<div class="cf mb inline center block suc-buttns">
|
25 |
<div class="left a1">
|
26 |
-
<a href="
|
27 |
<div class="flex nowrap flexcenter">
|
28 |
<div class="fcentr">
|
29 |
<img class="center block inline" src="<?php echo $this->get_asset('images', 'thumb.png'); ?>" alt="trash">
|
@@ -37,7 +37,7 @@
|
|
37 |
</a>
|
38 |
</div>
|
39 |
<div class="left a2">
|
40 |
-
<a href="
|
41 |
<div class="flex nowrap flexcenter">
|
42 |
<div class="fcentr">
|
43 |
<img class="center block inline" src="<?php echo $this->get_asset('images', 'crown-bg.png'); ?>" alt="trash">
|
23 |
|
24 |
<div class="cf mb inline center block suc-buttns">
|
25 |
<div class="left a1">
|
26 |
+
<a href="https://wordpress.org/plugins/backup-backup/#reviews" target="_blank" class="btn lime">
|
27 |
<div class="flex nowrap flexcenter">
|
28 |
<div class="fcentr">
|
29 |
<img class="center block inline" src="<?php echo $this->get_asset('images', 'thumb.png'); ?>" alt="trash">
|
37 |
</a>
|
38 |
</div>
|
39 |
<div class="left a2">
|
40 |
+
<a href="<?php echo BMI_AUTHOR_URI; ?>" target="_blank" class="btn">
|
41 |
<div class="flex nowrap flexcenter">
|
42 |
<div class="fcentr">
|
43 |
<img class="center block inline" src="<?php echo $this->get_asset('images', 'crown-bg.png'); ?>" alt="trash">
|
includes/dashboard/modules/backup_controller.php
CHANGED
@@ -175,13 +175,12 @@
|
|
175 |
<li>
|
176 |
<?php _e("Above times are", 'backup-migration'); ?>
|
177 |
<b><?php _e("server times", 'backup-migration'); ?></b>
|
178 |
-
(<span id="server-time-auto" data-time="<?php echo time(); ?>"></span>)
|
179 |
</li>
|
180 |
<li>
|
181 |
<?php _e("There needs to be", 'backup-migration'); ?>
|
182 |
<b><?php _e("at least one visitor", 'backup-migration'); ?></b>
|
183 |
-
<?php _e("so that the backup process gets triggered
|
184 |
-
<span class="secondary hoverable collapser-openner" data-el="#troubleshooting-chapter"><?php _e("troubleshooting section", 'backup-migration'); ?></span>)
|
185 |
</li>
|
186 |
<li>
|
187 |
<?php _e("We suggest to", 'backup-migration'); ?>
|
@@ -189,10 +188,10 @@
|
|
189 |
<?php _e("otherwise you may run out of space.", 'backup-migration'); ?>
|
190 |
</li>
|
191 |
<li>
|
192 |
-
<b><?php _e("Locked backups will not be deleted", 'backup-migration'); ?></b>
|
193 |
<?php _e("automatically. Those are indicated by a lock sign", 'backup-migration'); ?>
|
194 |
<img src="<?php echo $this->get_asset('images', 'lock-min.svg'); ?>" alt="lock" class="inline" height="18px">.
|
195 |
-
<?php _e('Manually created backups (i.e. those after click on "Create backup now!") are locked, while automatically created backups are unlocked.', 'backup-migration'); ?>
|
196 |
<?php _e("You can change their lock status on the", 'backup-migration'); ?>
|
197 |
<span class="secondary hoverable go-to-marbs"><?php _e("Manage & Restore Backup(s)", 'backup-migration'); ?></span>
|
198 |
<?php _e("tab", 'backup-migration'); ?>.
|
@@ -203,9 +202,6 @@
|
|
203 |
<?php _e("when your backups are created, please go", 'backup-migration'); ?>
|
204 |
<span class="secondary hoverable collapser-openner" data-el="#other-options"><?php _e("here", 'backup-migration'); ?></span>.
|
205 |
</li>
|
206 |
-
<li>
|
207 |
-
<?php _e("Settings change saves automatically and it's confirmed with alert.", 'backup-migration'); ?>.
|
208 |
-
</li>
|
209 |
</ol>
|
210 |
<div class="right-align hoverable secondary closer-learn-more">
|
211 |
<?php _e("Collapse", 'backup-migration'); ?>
|
175 |
<li>
|
176 |
<?php _e("Above times are", 'backup-migration'); ?>
|
177 |
<b><?php _e("server times", 'backup-migration'); ?></b>
|
178 |
+
(<?php _e("time now:", 'backup-migration'); ?> <span id="server-time-auto" data-time="<?php echo time(); ?>"></span>)
|
179 |
</li>
|
180 |
<li>
|
181 |
<?php _e("There needs to be", 'backup-migration'); ?>
|
182 |
<b><?php _e("at least one visitor", 'backup-migration'); ?></b>
|
183 |
+
<?php _e("so that the backup process gets triggered", 'backup-migration'); ?>
|
|
|
184 |
</li>
|
185 |
<li>
|
186 |
<?php _e("We suggest to", 'backup-migration'); ?>
|
188 |
<?php _e("otherwise you may run out of space.", 'backup-migration'); ?>
|
189 |
</li>
|
190 |
<li>
|
191 |
+
<b><?php _e("Locked backups will <u>not</u> be deleted", 'backup-migration'); ?></b>
|
192 |
<?php _e("automatically. Those are indicated by a lock sign", 'backup-migration'); ?>
|
193 |
<img src="<?php echo $this->get_asset('images', 'lock-min.svg'); ?>" alt="lock" class="inline" height="18px">.
|
194 |
+
<?php _e('Manually created backups (i.e. those after click on "Create backup now!") are permanently locked, while automatically created backups are by default unlocked.', 'backup-migration'); ?>
|
195 |
<?php _e("You can change their lock status on the", 'backup-migration'); ?>
|
196 |
<span class="secondary hoverable go-to-marbs"><?php _e("Manage & Restore Backup(s)", 'backup-migration'); ?></span>
|
197 |
<?php _e("tab", 'backup-migration'); ?>.
|
202 |
<?php _e("when your backups are created, please go", 'backup-migration'); ?>
|
203 |
<span class="secondary hoverable collapser-openner" data-el="#other-options"><?php _e("here", 'backup-migration'); ?></span>.
|
204 |
</li>
|
|
|
|
|
|
|
205 |
</ol>
|
206 |
<div class="right-align hoverable secondary closer-learn-more">
|
207 |
<?php _e("Collapse", 'backup-migration'); ?>
|
includes/dashboard/settings.php
CHANGED
@@ -9,8 +9,7 @@
|
|
9 |
}
|
10 |
|
11 |
// Configuration sets tooltip
|
12 |
-
$
|
13 |
-
$configu_sets = __('This feature isn’t ready yet in the premium plugin, that’s why you can buy it at a <b>big discount</b>. ', 'backup-migration') . " <a href='" . $sellcodes_url . "' target='_blank'>" . __('Learn more', 'backup-migration') . '.</a>';
|
14 |
|
15 |
?>
|
16 |
|
9 |
}
|
10 |
|
11 |
// Configuration sets tooltip
|
12 |
+
$configu_sets = str_replace('"', "'", BMI_PREMIUM_TOOLTIP);
|
|
|
13 |
|
14 |
?>
|
15 |
|
includes/dashboard/templates/premium-overlay.php
CHANGED
@@ -15,12 +15,8 @@
|
|
15 |
<div>
|
16 |
<img src="<?php echo $this->get_asset('images', 'clock.svg') ?>" alt="clocks-bg">
|
17 |
</div>
|
18 |
-
<div>
|
19 |
-
|
20 |
-
<b>
|
21 |
-
<a href="<?php echo $sellcodes_url; ?>" target="_blank" class="secondary"><?php _e("Order it now at a <b>big discount</b>!", 'backup-migration'); ?></a>
|
22 |
-
</b>
|
23 |
-
</p>
|
24 |
</div>
|
25 |
</div>
|
26 |
</div>
|
15 |
<div>
|
16 |
<img src="<?php echo $this->get_asset('images', 'clock.svg') ?>" alt="clocks-bg">
|
17 |
</div>
|
18 |
+
<div class="secondary-all">
|
19 |
+
<?php echo BMI_COMMING_SOON_PRO; ?>
|
|
|
|
|
|
|
|
|
20 |
</div>
|
21 |
</div>
|
22 |
</div>
|
includes/dashboard/translations.php
CHANGED
@@ -12,8 +12,7 @@
|
|
12 |
|
13 |
<div class="translations">
|
14 |
<div id="premium-tooltip">
|
15 |
-
<?php
|
16 |
-
<a href="<?php echo BMI_AUTHOR_URI; ?>" target="_blank"><?php _e('Learn more', 'backup-migration') ?>.</a>
|
17 |
</div>
|
18 |
<div id="bmi-success-copy">
|
19 |
<?php _e('Text copied successfully', 'backup-migration') ?>
|
@@ -108,6 +107,21 @@
|
|
108 |
<div id="bmi-making-archive">
|
109 |
<?php _e("Making archive", 'backup-migration') ?>
|
110 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
<div id="BMI_URL_ROOT"><?php echo plugin_dir_url(BMI_ROOT_FILE); ?></div>
|
112 |
<div id="BMI_BLOG_URL"><?php echo get_site_url(); ?></div>
|
113 |
<div id="BMI_REV"><?php echo BMI_REV; ?></div>
|
12 |
|
13 |
<div class="translations">
|
14 |
<div id="premium-tooltip">
|
15 |
+
<?php echo BMI_PREMIUM_TOOLTIP; ?>
|
|
|
16 |
</div>
|
17 |
<div id="bmi-success-copy">
|
18 |
<?php _e('Text copied successfully', 'backup-migration') ?>
|
107 |
<div id="bmi-making-archive">
|
108 |
<?php _e("Making archive", 'backup-migration') ?>
|
109 |
</div>
|
110 |
+
<div id="bmi-email-success">
|
111 |
+
<?php _e('Email send successfully, check mailbox.', 'backup-migration') ?>
|
112 |
+
</div>
|
113 |
+
<div id="bmi-email-fail">
|
114 |
+
<?php _e("There was an error sending the email, please use additional plugins to debug it or ask your hosting administrator for help.", 'backup-migration') ?>
|
115 |
+
</div>
|
116 |
+
<div id="bmi-manual-locked">
|
117 |
+
<?php _e("Manually created backups are always locked.", 'backup-migration') ?>
|
118 |
+
</div>
|
119 |
+
<div id="bmi-default-success">
|
120 |
+
<?php _e("Operation finished with success.", 'backup-migration') ?>
|
121 |
+
</div>
|
122 |
+
<div id="bmi-default-fail">
|
123 |
+
<?php _e("Operation failed, please try again.", 'backup-migration') ?>
|
124 |
+
</div>
|
125 |
<div id="BMI_URL_ROOT"><?php echo plugin_dir_url(BMI_ROOT_FILE); ?></div>
|
126 |
<div id="BMI_BLOG_URL"><?php echo get_site_url(); ?></div>
|
127 |
<div id="BMI_REV"><?php echo BMI_REV; ?></div>
|
includes/initializer.php
CHANGED
@@ -19,8 +19,10 @@
|
|
19 |
use BMI\Plugin\Zipper\BMI_Zipper as Zipper;
|
20 |
|
21 |
// Uninstallator
|
22 |
-
|
23 |
-
|
|
|
|
|
24 |
}
|
25 |
|
26 |
/**
|
@@ -30,40 +32,38 @@
|
|
30 |
public function initialize() {
|
31 |
|
32 |
// Handle CRONs
|
33 |
-
add_action('bmi_do_backup_right_now', [
|
34 |
-
add_action('bmi_handle_cron_check', [
|
35 |
-
add_action('init', [
|
36 |
|
37 |
// Return if CRON time
|
38 |
-
if (function_exists('wp_doing_cron') && wp_doing_cron())
|
39 |
-
return;
|
40 |
-
}
|
41 |
|
42 |
// POST Logic
|
43 |
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
44 |
|
45 |
// Register AJAX Handler
|
46 |
-
add_action('wp_ajax_backup_migration', [
|
47 |
|
48 |
// Stop GET Registration
|
49 |
return;
|
50 |
-
}
|
51 |
|
52 |
-
|
53 |
-
add_action('init', [$this, 'handle_downloading']);
|
54 |
|
55 |
// Hooks
|
56 |
-
|
57 |
-
register_deactivation_hook(BMI_ROOT_FILE, [$this, 'deactivation']);
|
58 |
register_uninstall_hook(BMI_ROOT_FILE, 'bmi_uninstall_handler');
|
59 |
|
|
|
|
|
|
|
60 |
// Actions
|
61 |
-
add_action('admin_init', [
|
62 |
-
add_action('admin_menu', [
|
63 |
-
add_action('admin_notices', [
|
64 |
|
65 |
// Settings action
|
66 |
-
add_filter('plugin_action_links_' . plugin_basename(BMI_ROOT_FILE), [
|
67 |
|
68 |
// Ignore below actions if those true
|
69 |
if (function_exists('wp_doing_ajax') && wp_doing_ajax()) {
|
@@ -71,8 +71,8 @@
|
|
71 |
}
|
72 |
|
73 |
// Styles & scripts
|
74 |
-
add_action('admin_head', [
|
75 |
-
add_action('admin_footer', [
|
76 |
}
|
77 |
|
78 |
public function ajax() {
|
@@ -82,28 +82,113 @@
|
|
82 |
|
83 |
// Extend execution time
|
84 |
$exectime = intval(ini_get('max_execution_time'));
|
85 |
-
if ($exectime < 10800 && $exectime != 0)
|
86 |
-
|
87 |
-
}
|
88 |
|
89 |
// Require AJAX Handler
|
90 |
require_once BMI_INCLUDES . '/ajax.php';
|
91 |
$handler = new BMI_Ajax();
|
|
|
92 |
} catch (\Exception $e) {
|
|
|
|
|
|
|
93 |
Logger::error('POST error:');
|
94 |
Logger::error($e);
|
|
|
95 |
$this->res(['status' => 'error', 'error' => $e]);
|
96 |
exit;
|
|
|
97 |
} catch (\Throwable $e) {
|
|
|
|
|
|
|
98 |
Logger::error('POST error:');
|
99 |
Logger::error($e);
|
|
|
100 |
$this->res(['status' => 'error', 'error' => $e]);
|
101 |
exit;
|
|
|
102 |
}
|
103 |
}
|
104 |
}
|
105 |
}
|
106 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
public function submenu() {
|
108 |
|
109 |
// Menu icon
|
@@ -120,6 +205,7 @@
|
|
120 |
|
121 |
// Remove default submenu by menu
|
122 |
remove_submenu_page($parentSlug, $parentSlug);
|
|
|
123 |
}
|
124 |
|
125 |
public function settings_action($links) {
|
@@ -142,6 +228,7 @@
|
|
142 |
|
143 |
public function admin_init_hook() {
|
144 |
if (get_option('_bmi_redirect', false)) {
|
|
|
145 |
delete_option('_bmi_redirect');
|
146 |
wp_safe_redirect(admin_url('admin.php?page=backup-migration'));
|
147 |
}
|
@@ -196,7 +283,7 @@
|
|
196 |
public function handle_cron_check() {
|
197 |
$now = time();
|
198 |
if (file_exists(BMI_INCLUDES . '/htaccess/.last')) {
|
199 |
-
$last = file_get_contents(BMI_INCLUDES . '/htaccess/.last');
|
200 |
$last_status = explode('.', $last)[0];
|
201 |
$last_time = intval(explode('.', $last)[1]);
|
202 |
} else {
|
@@ -204,7 +291,7 @@
|
|
204 |
$last_status = 0;
|
205 |
}
|
206 |
|
207 |
-
$plan = intval(file_get_contents(BMI_INCLUDES . '/htaccess/.plan'));
|
208 |
if ($last_time < $plan && ((time() - $plan) > 55)) {
|
209 |
if ($last_status !== '0') {
|
210 |
$this->backup_inproper_time($plan);
|
@@ -317,7 +404,7 @@
|
|
317 |
public function handle_cron_backup() {
|
318 |
|
319 |
// Planned time
|
320 |
-
$plan = intval(file_get_contents(BMI_INCLUDES . '/htaccess/.plan'));
|
321 |
|
322 |
// Check difference
|
323 |
if ((time() - $plan) > 45) {
|
@@ -419,6 +506,7 @@
|
|
419 |
}
|
420 |
|
421 |
public function handle_downloading() {
|
|
|
422 |
$allowed = ['BMI_BACKUP', 'BMI_BACKUP_LOGS', 'PROGRESS_LOGS'];
|
423 |
$get_bmi = !empty($_GET['backup-migration']) ? sanitize_text_field($_GET['backup-migration']) : false;
|
424 |
$get_bid = !empty($_GET['backup-id']) ? sanitize_text_field($_GET['backup-id']) : false;
|
@@ -434,8 +522,15 @@
|
|
434 |
|
435 |
// Prevent parent directory downloading
|
436 |
if (file_exists($file) && $this->fixSlashes(dirname($file)) == $this->fixSlashes(BMI_BACKUPS)) {
|
|
|
|
|
|
|
|
|
|
|
|
|
437 |
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
|
438 |
header('Content-Disposition: attachment; filename="' . $backupname . '"');
|
|
|
439 |
header('Content-Type: application/octet-stream');
|
440 |
header('Content-Length: ' . filesize($file));
|
441 |
header('Content-Description: File Transfer');
|
@@ -444,19 +539,21 @@
|
|
444 |
header('Expires: 0');
|
445 |
http_response_code(200);
|
446 |
|
447 |
-
if (ob_get_level())
|
448 |
-
ob_end_clean();
|
449 |
-
}
|
450 |
|
451 |
-
|
|
|
452 |
exit;
|
453 |
}
|
454 |
} else {
|
|
|
455 |
header('HTTP/1.0 423 Locked');
|
|
|
456 |
echo __("Backup download is restricted (allowed for admins only).", 'backup-migration');
|
457 |
exit;
|
458 |
}
|
459 |
} elseif ($type == 'BMI_BACKUP_LOGS') {
|
|
|
460 |
$backupname = $get_bid;
|
461 |
$file = $this->fixSlashes(BMI_BACKUPS . DIRECTORY_SEPARATOR . $backupname);
|
462 |
|
@@ -471,37 +568,95 @@
|
|
471 |
if ($logs) {
|
472 |
header('Content-Disposition: attachment; filename="' . substr($backupname, 0, -4) . '.log"');
|
473 |
http_response_code(200);
|
|
|
474 |
echo $logs;
|
475 |
exit;
|
476 |
} else {
|
|
|
477 |
header('HTTP/1.0 404 Not found');
|
478 |
echo __("There was an error during getting logs, this file is not right log file.", 'backup-migration');
|
479 |
exit;
|
480 |
}
|
481 |
}
|
482 |
} elseif ($type == 'PROGRESS_LOGS') {
|
483 |
-
|
484 |
-
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
|
485 |
-
http_response_code(200);
|
486 |
-
$allowed_progress = ['latest.log', 'latest_progress.log', 'latest_migration_progress.log', 'latest_migration.log', 'complete_logs.log'];
|
487 |
if (isset($get_pid) && in_array($get_pid, $allowed_progress)) {
|
|
|
|
|
|
|
|
|
488 |
if ($get_pid == 'complete_logs.log') {
|
489 |
$file = BMI_CONFIG_DIR . DIRECTORY_SEPARATOR . 'complete_logs.log';
|
|
|
490 |
readfile($file);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
491 |
} else {
|
492 |
$file = dirname(BMI_BACKUPS) . DIRECTORY_SEPARATOR . 'backups' . DIRECTORY_SEPARATOR . $get_pid;
|
493 |
-
if (file_exists($file) && (time() - filemtime($file)) < (60 * 5)) {
|
|
|
494 |
readfile($file);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
495 |
} else {
|
496 |
if (file_exists($file) && !(time() - filemtime($file)) < (60 * 5)) {
|
|
|
497 |
echo __("Due to security reasons access to this file is disabled at this moment.", 'backup-migration') . "\n";
|
498 |
echo __("Human readable: file expired.", 'backup-migration');
|
|
|
499 |
} else {
|
|
|
500 |
echo '';
|
|
|
501 |
}
|
502 |
}
|
503 |
}
|
504 |
-
|
505 |
exit;
|
506 |
}
|
507 |
}
|
@@ -509,15 +664,8 @@
|
|
509 |
}
|
510 |
}
|
511 |
|
512 |
-
public function activation() {
|
513 |
-
Logger::log(__("Activated", 'backup-migration'));
|
514 |
-
$this->fixLitespeed();
|
515 |
-
|
516 |
-
update_option('_bmi_redirect', true);
|
517 |
-
}
|
518 |
-
|
519 |
public function deactivation() {
|
520 |
-
Logger::log(__("
|
521 |
$this->revertLitespeed();
|
522 |
}
|
523 |
|
@@ -556,8 +704,8 @@
|
|
556 |
$litepath = BMI_INCLUDES . DIRECTORY_SEPARATOR . 'htaccess' . DIRECTORY_SEPARATOR . '.litespeed';
|
557 |
$htpath = ABSPATH . DIRECTORY_SEPARATOR . '.htaccess';
|
558 |
if (file_exists($htpath)) {
|
559 |
-
$litespeed = file_get_contents($litepath);
|
560 |
-
$htaccess = file_get_contents($htpath);
|
561 |
$htaccess = explode("\n", $htaccess);
|
562 |
$litespeed = explode("\n", $litespeed);
|
563 |
|
@@ -590,7 +738,7 @@
|
|
590 |
$htpath = ABSPATH . DIRECTORY_SEPARATOR . '.htaccess';
|
591 |
$addline = true;
|
592 |
|
593 |
-
$htaccess = file_get_contents($htpath);
|
594 |
$htaccess = explode("\n", $htaccess);
|
595 |
$htFilter = [];
|
596 |
|
@@ -641,7 +789,7 @@
|
|
641 |
}
|
642 |
}
|
643 |
|
644 |
-
private function get_asset($base = '', $asset) {
|
645 |
return BMI_ASSETS . '/' . $base . '/' . $asset;
|
646 |
}
|
647 |
}
|
19 |
use BMI\Plugin\Zipper\BMI_Zipper as Zipper;
|
20 |
|
21 |
// Uninstallator
|
22 |
+
if (!function_exists('bmi_uninstall_handler')) {
|
23 |
+
function bmi_uninstall_handler() {
|
24 |
+
require_once BMI_ROOT_DIR . '/uninstall.php';
|
25 |
+
}
|
26 |
}
|
27 |
|
28 |
/**
|
32 |
public function initialize() {
|
33 |
|
34 |
// Handle CRONs
|
35 |
+
add_action('bmi_do_backup_right_now', [&$this, 'handle_cron_backup']);
|
36 |
+
add_action('bmi_handle_cron_check', [&$this, 'handle_cron_check']);
|
37 |
+
add_action('init', [&$this, 'handle_crons']);
|
38 |
|
39 |
// Return if CRON time
|
40 |
+
if (function_exists('wp_doing_cron') && wp_doing_cron()) return;
|
|
|
|
|
41 |
|
42 |
// POST Logic
|
43 |
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
44 |
|
45 |
// Register AJAX Handler
|
46 |
+
add_action('wp_ajax_backup_migration', [&$this, 'ajax']);
|
47 |
|
48 |
// Stop GET Registration
|
49 |
return;
|
|
|
50 |
|
51 |
+
}
|
|
|
52 |
|
53 |
// Hooks
|
54 |
+
register_deactivation_hook(BMI_ROOT_FILE, [&$this, 'deactivation']);
|
|
|
55 |
register_uninstall_hook(BMI_ROOT_FILE, 'bmi_uninstall_handler');
|
56 |
|
57 |
+
// File downloading
|
58 |
+
add_action('init', [&$this, 'handle_downloading']);
|
59 |
+
|
60 |
// Actions
|
61 |
+
add_action('admin_init', [&$this, 'admin_init_hook']);
|
62 |
+
add_action('admin_menu', [&$this, 'submenu']);
|
63 |
+
add_action('admin_notices', [&$this, 'admin_notices']);
|
64 |
|
65 |
// Settings action
|
66 |
+
add_filter('plugin_action_links_' . plugin_basename(BMI_ROOT_FILE), [&$this, 'settings_action']);
|
67 |
|
68 |
// Ignore below actions if those true
|
69 |
if (function_exists('wp_doing_ajax') && wp_doing_ajax()) {
|
71 |
}
|
72 |
|
73 |
// Styles & scripts
|
74 |
+
add_action('admin_head', [&$this, 'enqueue_styles']);
|
75 |
+
add_action('admin_footer', [&$this, 'enqueue_scripts']);
|
76 |
}
|
77 |
|
78 |
public function ajax() {
|
82 |
|
83 |
// Extend execution time
|
84 |
$exectime = intval(ini_get('max_execution_time'));
|
85 |
+
if ($exectime < 10800 && $exectime != 0) set_time_limit(10800);
|
86 |
+
register_shutdown_function([$this, 'execution_shutdown']);
|
|
|
87 |
|
88 |
// Require AJAX Handler
|
89 |
require_once BMI_INCLUDES . '/ajax.php';
|
90 |
$handler = new BMI_Ajax();
|
91 |
+
|
92 |
} catch (\Exception $e) {
|
93 |
+
|
94 |
+
if ($_POST['f'] == 'create-backup') $this->handleErrorDuringBackup($e->getMessage(), $e->getFile(), $e->getLine());
|
95 |
+
if ($_POST['f'] == 'restore-backup') $this->handleErrorDuringRestore($e->getMessage(), $e->getFile(), $e->getLine());
|
96 |
Logger::error('POST error:');
|
97 |
Logger::error($e);
|
98 |
+
|
99 |
$this->res(['status' => 'error', 'error' => $e]);
|
100 |
exit;
|
101 |
+
|
102 |
} catch (\Throwable $e) {
|
103 |
+
|
104 |
+
if ($_POST['f'] == 'create-backup') $this->handleErrorDuringBackup($e->getMessage(), $e->getFile(), $e->getLine());
|
105 |
+
if ($_POST['f'] == 'restore-backup') $this->handleErrorDuringRestore($e->getMessage(), $e->getFile(), $e->getLine());
|
106 |
Logger::error('POST error:');
|
107 |
Logger::error($e);
|
108 |
+
|
109 |
$this->res(['status' => 'error', 'error' => $e]);
|
110 |
exit;
|
111 |
+
|
112 |
}
|
113 |
}
|
114 |
}
|
115 |
}
|
116 |
|
117 |
+
public function execution_shutdown() {
|
118 |
+
$err = error_get_last();
|
119 |
+
|
120 |
+
if ($err != null) {
|
121 |
+
|
122 |
+
$msg = $err['message'];
|
123 |
+
$file = $err['file'];
|
124 |
+
$line = $err['line'];
|
125 |
+
$type = $err['type'];
|
126 |
+
|
127 |
+
if ($type != E_ERROR && $type != E_CORE_ERROR && $type != E_COMPILE_ERROR && $type != E_USER_ERROR && $type != E_RECOVERABLE_ERROR) return;
|
128 |
+
|
129 |
+
if (strpos($file, 'pclzip') !== false) return;
|
130 |
+
if (strpos($file, 'backup-backup') === false) return;
|
131 |
+
if (strpos($msg, 'php_uname') !== false) return;
|
132 |
+
if (strpos($msg, 'unlink(') !== false) return;
|
133 |
+
if (strpos($msg, 'rename(') !== false) return;
|
134 |
+
if (strpos($msg, 'deprecated') !== false) return;
|
135 |
+
if ($GLOBALS['bmi_error_handled']) return;
|
136 |
+
|
137 |
+
if ($_POST['f'] == 'create-backup') {
|
138 |
+
$this->handleErrorDuringBackup($msg, $file, $line);
|
139 |
+
Logger::error(__('There was an error during backup', 'backup-migration'));
|
140 |
+
|
141 |
+
$fullPath = BMI_ROOT_DIR . '/tmp' . '/';
|
142 |
+
array_map('unlink', glob($fullPath . '*.tmp'));
|
143 |
+
array_map('unlink', glob($fullPath . '*.gz'));
|
144 |
+
}
|
145 |
+
|
146 |
+
if ($_POST['f'] == 'restore-backup') {
|
147 |
+
$this->handleErrorDuringRestore($msg, $file, $line);
|
148 |
+
Logger::error(__('There was an error during restore process', 'backup-migration'));
|
149 |
+
}
|
150 |
+
|
151 |
+
Logger::error(__('Error message: ', 'backup-migration') . $msg);
|
152 |
+
Logger::error(__('Error file/line: ', 'backup-migration') . $file . '|' . $line);
|
153 |
+
$this->res(['status' => 'error', 'error' => $err]);
|
154 |
+
exit;
|
155 |
+
}
|
156 |
+
}
|
157 |
+
|
158 |
+
private function handleErrorDuringBackup($msg, $file, $line) {
|
159 |
+
$backup = $GLOBALS['bmi_current_backup_name'];
|
160 |
+
$progress = &$GLOBALS['bmi_backup_progress'];
|
161 |
+
|
162 |
+
Logger::log('Due to fatal error backup handled correctly (closed and removed).');
|
163 |
+
$progress->log(__('Something bad happened on PHP side.', 'backup-migration'), 'error');
|
164 |
+
$progress->log(__('Unfortunately we had to remove the backup (if partly created).', 'backup-migration'), 'error');
|
165 |
+
$progress->log(__('Error message: ', 'backup-migration') . $msg, 'error');
|
166 |
+
$progress->log(__('Error file/line: ', 'backup-migration') . $file . '|' . $line, 'error');
|
167 |
+
if (strpos($msg, 'execution time') !== false) {
|
168 |
+
$progress->log(__('Probably we could not increase the execution time, please edit your php.ini manually', 'backup-migration'), 'error');
|
169 |
+
}
|
170 |
+
|
171 |
+
$backup_path = BMI_BACKUPS . DIRECTORY_SEPARATOR . $backup;
|
172 |
+
if (file_exists($backup_path)) @unlink($backup_path);
|
173 |
+
if (file_exists(BMI_BACKUPS . DIRECTORY_SEPARATOR . '.running')) @unlink(BMI_BACKUPS . DIRECTORY_SEPARATOR . '.running');
|
174 |
+
if (file_exists(BMI_BACKUPS . DIRECTORY_SEPARATOR . '.abort')) @unlink(BMI_BACKUPS . DIRECTORY_SEPARATOR . '.abort');
|
175 |
+
|
176 |
+
$progress->log(__("Aborting backup...", 'backup-migration'), 'step');
|
177 |
+
$progress->end();
|
178 |
+
}
|
179 |
+
|
180 |
+
private function handleErrorDuringRestore($msg, $file, $line) {
|
181 |
+
$progress = &$GLOBALS['bmi_migration_progress'];
|
182 |
+
|
183 |
+
Logger::log('There was fatal error during restore.');
|
184 |
+
$progress->log(__('Something bad happened on PHP side.', 'backup-migration'), 'error');
|
185 |
+
$progress->log(__('Error message: ', 'backup-migration') . $msg, 'error');
|
186 |
+
$progress->log(__('Error file/line: ', 'backup-migration') . $file . '|' . $line, 'error');
|
187 |
+
if (file_exists(BMI_BACKUPS . DIRECTORY_SEPARATOR . '.migration_lock')) @unlink(BMI_BACKUPS . DIRECTORY_SEPARATOR . '.migration_lock');
|
188 |
+
$progress->log(__("Aborting restore process...", 'backup-migration'), 'step');
|
189 |
+
$progress->end();
|
190 |
+
}
|
191 |
+
|
192 |
public function submenu() {
|
193 |
|
194 |
// Menu icon
|
205 |
|
206 |
// Remove default submenu by menu
|
207 |
remove_submenu_page($parentSlug, $parentSlug);
|
208 |
+
|
209 |
}
|
210 |
|
211 |
public function settings_action($links) {
|
228 |
|
229 |
public function admin_init_hook() {
|
230 |
if (get_option('_bmi_redirect', false)) {
|
231 |
+
$this->fixLitespeed();
|
232 |
delete_option('_bmi_redirect');
|
233 |
wp_safe_redirect(admin_url('admin.php?page=backup-migration'));
|
234 |
}
|
283 |
public function handle_cron_check() {
|
284 |
$now = time();
|
285 |
if (file_exists(BMI_INCLUDES . '/htaccess/.last')) {
|
286 |
+
$last = @file_get_contents(BMI_INCLUDES . '/htaccess/.last');
|
287 |
$last_status = explode('.', $last)[0];
|
288 |
$last_time = intval(explode('.', $last)[1]);
|
289 |
} else {
|
291 |
$last_status = 0;
|
292 |
}
|
293 |
|
294 |
+
$plan = intval(@file_get_contents(BMI_INCLUDES . '/htaccess/.plan'));
|
295 |
if ($last_time < $plan && ((time() - $plan) > 55)) {
|
296 |
if ($last_status !== '0') {
|
297 |
$this->backup_inproper_time($plan);
|
404 |
public function handle_cron_backup() {
|
405 |
|
406 |
// Planned time
|
407 |
+
$plan = intval(@file_get_contents(BMI_INCLUDES . '/htaccess/.plan'));
|
408 |
|
409 |
// Check difference
|
410 |
if ((time() - $plan) > 45) {
|
506 |
}
|
507 |
|
508 |
public function handle_downloading() {
|
509 |
+
@error_reporting(0);
|
510 |
$allowed = ['BMI_BACKUP', 'BMI_BACKUP_LOGS', 'PROGRESS_LOGS'];
|
511 |
$get_bmi = !empty($_GET['backup-migration']) ? sanitize_text_field($_GET['backup-migration']) : false;
|
512 |
$get_bid = !empty($_GET['backup-id']) ? sanitize_text_field($_GET['backup-id']) : false;
|
522 |
|
523 |
// Prevent parent directory downloading
|
524 |
if (file_exists($file) && $this->fixSlashes(dirname($file)) == $this->fixSlashes(BMI_BACKUPS)) {
|
525 |
+
ob_clean();
|
526 |
+
|
527 |
+
if ($exectime < 10800 && $exectime != 0) set_time_limit(10800);
|
528 |
+
if (@ini_get('zlib.output_compression')) @ini_set('zlib.output_compression', 'Off');
|
529 |
+
$fp = @fopen($file, 'rb');
|
530 |
+
|
531 |
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
|
532 |
header('Content-Disposition: attachment; filename="' . $backupname . '"');
|
533 |
+
header('Content-Type: application/zip');
|
534 |
header('Content-Type: application/octet-stream');
|
535 |
header('Content-Length: ' . filesize($file));
|
536 |
header('Content-Description: File Transfer');
|
539 |
header('Expires: 0');
|
540 |
http_response_code(200);
|
541 |
|
542 |
+
if (ob_get_level()) ob_end_clean();
|
|
|
|
|
543 |
|
544 |
+
fpassthru($fp);
|
545 |
+
fclose($fp);
|
546 |
exit;
|
547 |
}
|
548 |
} else {
|
549 |
+
ob_clean();
|
550 |
header('HTTP/1.0 423 Locked');
|
551 |
+
if (ob_get_level()) ob_end_clean();
|
552 |
echo __("Backup download is restricted (allowed for admins only).", 'backup-migration');
|
553 |
exit;
|
554 |
}
|
555 |
} elseif ($type == 'BMI_BACKUP_LOGS') {
|
556 |
+
ob_clean();
|
557 |
$backupname = $get_bid;
|
558 |
$file = $this->fixSlashes(BMI_BACKUPS . DIRECTORY_SEPARATOR . $backupname);
|
559 |
|
568 |
if ($logs) {
|
569 |
header('Content-Disposition: attachment; filename="' . substr($backupname, 0, -4) . '.log"');
|
570 |
http_response_code(200);
|
571 |
+
if (ob_get_level()) ob_end_clean();
|
572 |
echo $logs;
|
573 |
exit;
|
574 |
} else {
|
575 |
+
if (ob_get_level()) ob_end_clean();
|
576 |
header('HTTP/1.0 404 Not found');
|
577 |
echo __("There was an error during getting logs, this file is not right log file.", 'backup-migration');
|
578 |
exit;
|
579 |
}
|
580 |
}
|
581 |
} elseif ($type == 'PROGRESS_LOGS') {
|
582 |
+
$allowed_progress = ['latest_full.log', 'latest.log', 'latest_progress.log', 'latest_migration_progress.log', 'latest_migration.log', 'complete_logs.log', 'latest_migration_full.log'];
|
|
|
|
|
|
|
583 |
if (isset($get_pid) && in_array($get_pid, $allowed_progress)) {
|
584 |
+
header('Content-Type: text/plain');
|
585 |
+
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
|
586 |
+
http_response_code(200);
|
587 |
+
ob_clean();
|
588 |
if ($get_pid == 'complete_logs.log') {
|
589 |
$file = BMI_CONFIG_DIR . DIRECTORY_SEPARATOR . 'complete_logs.log';
|
590 |
+
if (ob_get_level()) ob_end_clean();
|
591 |
readfile($file);
|
592 |
+
exit;
|
593 |
+
} else if ($get_pid == 'latest_full.log') {
|
594 |
+
$progress = dirname(BMI_BACKUPS) . DIRECTORY_SEPARATOR . 'backups' . DIRECTORY_SEPARATOR . 'latest_progress.log';
|
595 |
+
$logs = dirname(BMI_BACKUPS) . DIRECTORY_SEPARATOR . 'backups' . DIRECTORY_SEPARATOR . 'latest.log';
|
596 |
+
if ((file_exists($progress) && (time() - filemtime($progress)) < (60 * 5)) || current_user_can('administrator')) {
|
597 |
+
if (ob_get_level()) ob_end_clean();
|
598 |
+
readfile($progress);
|
599 |
+
echo "\n";
|
600 |
+
readfile($logs);
|
601 |
+
exit;
|
602 |
+
} else {
|
603 |
+
if (file_exists($progress) && !(time() - filemtime($progress)) < (60 * 5)) {
|
604 |
+
if (ob_get_level()) ob_end_clean();
|
605 |
+
echo __("Due to security reasons access to this file is disabled at this moment.", 'backup-migration') . "\n";
|
606 |
+
echo __("Human readable: file expired.", 'backup-migration');
|
607 |
+
exit;
|
608 |
+
} else {
|
609 |
+
if (ob_get_level()) ob_end_clean();
|
610 |
+
echo '';
|
611 |
+
exit;
|
612 |
+
}
|
613 |
+
}
|
614 |
+
} else if ($get_pid == 'latest_migration_full.log') {
|
615 |
+
$progress = dirname(BMI_BACKUPS) . DIRECTORY_SEPARATOR . 'backups' . DIRECTORY_SEPARATOR . 'latest_migration_progress.log';
|
616 |
+
$logs = dirname(BMI_BACKUPS) . DIRECTORY_SEPARATOR . 'backups' . DIRECTORY_SEPARATOR . 'latest_migration.log';
|
617 |
+
if ((file_exists($progress) && (time() - filemtime($progress)) < (60 * 5)) || current_user_can('administrator')) {
|
618 |
+
if (ob_get_level()) ob_end_clean();
|
619 |
+
readfile($progress);
|
620 |
+
echo "\n";
|
621 |
+
readfile($logs);
|
622 |
+
exit;
|
623 |
+
} else {
|
624 |
+
if (file_exists($progress) && !(time() - filemtime($progress)) < (60 * 5)) {
|
625 |
+
if (ob_get_level()) ob_end_clean();
|
626 |
+
echo __("Due to security reasons access to this file is disabled at this moment.", 'backup-migration') . "\n";
|
627 |
+
echo __("Human readable: file expired.", 'backup-migration');
|
628 |
+
exit;
|
629 |
+
} else {
|
630 |
+
if (ob_get_level()) ob_end_clean();
|
631 |
+
echo '';
|
632 |
+
exit;
|
633 |
+
}
|
634 |
+
}
|
635 |
} else {
|
636 |
$file = dirname(BMI_BACKUPS) . DIRECTORY_SEPARATOR . 'backups' . DIRECTORY_SEPARATOR . $get_pid;
|
637 |
+
if ((file_exists($file) && (time() - filemtime($file)) < (60 * 5)) || current_user_can('administrator')) {
|
638 |
+
if (ob_get_level()) ob_end_clean();
|
639 |
readfile($file);
|
640 |
+
echo "\n";
|
641 |
+
if ($get_pid == 'latest.log') $file = dirname(BMI_BACKUPS) . DIRECTORY_SEPARATOR . 'backups' . DIRECTORY_SEPARATOR . 'latest_progress.log';
|
642 |
+
if ($get_pid == 'latest_migration.log') $file = dirname(BMI_BACKUPS) . DIRECTORY_SEPARATOR . 'backups' . DIRECTORY_SEPARATOR . 'latest_migration_progress.log';
|
643 |
+
echo __("[DOWNLOAD GENERATED] File downloaded on (server time): ", 'backup-migration') . date('Y-m-d H:i:s') . "\n";
|
644 |
+
echo __("[DOWNLOAD GENERATED] Last update (seconds): ", 'backup-migration') . (time() - filemtime($file)) . __(" seconds ago ", 'backup-migration') . "\n";
|
645 |
+
echo __("[DOWNLOAD GENERATED] Last update (date): ", 'backup-migration') . date('Y-m-d H:i:s', filemtime($file)) . " \n";
|
646 |
+
exit;
|
647 |
} else {
|
648 |
if (file_exists($file) && !(time() - filemtime($file)) < (60 * 5)) {
|
649 |
+
if (ob_get_level()) ob_end_clean();
|
650 |
echo __("Due to security reasons access to this file is disabled at this moment.", 'backup-migration') . "\n";
|
651 |
echo __("Human readable: file expired.", 'backup-migration');
|
652 |
+
exit;
|
653 |
} else {
|
654 |
+
if (ob_get_level()) ob_end_clean();
|
655 |
echo '';
|
656 |
+
exit;
|
657 |
}
|
658 |
}
|
659 |
}
|
|
|
660 |
exit;
|
661 |
}
|
662 |
}
|
664 |
}
|
665 |
}
|
666 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
667 |
public function deactivation() {
|
668 |
+
Logger::log(__("Plugin has been deactivated", 'backup-migration'));
|
669 |
$this->revertLitespeed();
|
670 |
}
|
671 |
|
704 |
$litepath = BMI_INCLUDES . DIRECTORY_SEPARATOR . 'htaccess' . DIRECTORY_SEPARATOR . '.litespeed';
|
705 |
$htpath = ABSPATH . DIRECTORY_SEPARATOR . '.htaccess';
|
706 |
if (file_exists($htpath)) {
|
707 |
+
$litespeed = @file_get_contents($litepath);
|
708 |
+
$htaccess = @file_get_contents($htpath);
|
709 |
$htaccess = explode("\n", $htaccess);
|
710 |
$litespeed = explode("\n", $litespeed);
|
711 |
|
738 |
$htpath = ABSPATH . DIRECTORY_SEPARATOR . '.htaccess';
|
739 |
$addline = true;
|
740 |
|
741 |
+
$htaccess = @file_get_contents($htpath);
|
742 |
$htaccess = explode("\n", $htaccess);
|
743 |
$htFilter = [];
|
744 |
|
789 |
}
|
790 |
}
|
791 |
|
792 |
+
private function get_asset($base = '', $asset = '') {
|
793 |
return BMI_ASSETS . '/' . $base . '/' . $asset;
|
794 |
}
|
795 |
}
|
includes/scanner/backups.php
CHANGED
@@ -6,7 +6,6 @@
|
|
6 |
// Use
|
7 |
use BMI\Plugin\BMI_Logger AS Logger;
|
8 |
use BMI\Plugin\Zipper\BMI_Zipper AS Zipper;
|
9 |
-
use BMI\Plugin\Zipper\PclZip AS PclZip;
|
10 |
use BMI\Plugin\Zipper\Zip AS Zip;
|
11 |
|
12 |
// Exit on direct access
|
6 |
// Use
|
7 |
use BMI\Plugin\BMI_Logger AS Logger;
|
8 |
use BMI\Plugin\Zipper\BMI_Zipper AS Zipper;
|
|
|
9 |
use BMI\Plugin\Zipper\Zip AS Zip;
|
10 |
|
11 |
// Exit on direct access
|
includes/scanner/files.php
CHANGED
@@ -138,7 +138,7 @@
|
|
138 |
|
139 |
}
|
140 |
|
141 |
-
public static function scanDirectorySizeOnlyAndIgnore($path, $ignored = [], $bm) {
|
142 |
|
143 |
$files = [];
|
144 |
foreach (new \DirectoryIterator($path) as $fileInfo) {
|
@@ -172,7 +172,7 @@
|
|
172 |
|
173 |
}
|
174 |
|
175 |
-
public static function scanDirectorySizeOnlyAndIgnoreDirOnly($path, $ignored = [], $bm) {
|
176 |
|
177 |
$files = [];
|
178 |
foreach (new \DirectoryIterator($path) as $fileInfo) {
|
138 |
|
139 |
}
|
140 |
|
141 |
+
public static function scanDirectorySizeOnlyAndIgnore($path, $ignored = [], $bm = '') {
|
142 |
|
143 |
$files = [];
|
144 |
foreach (new \DirectoryIterator($path) as $fileInfo) {
|
172 |
|
173 |
}
|
174 |
|
175 |
+
public static function scanDirectorySizeOnlyAndIgnoreDirOnly($path, $ignored = [], $bm = '') {
|
176 |
|
177 |
$files = [];
|
178 |
foreach (new \DirectoryIterator($path) as $fileInfo) {
|
includes/zipper/src/zip.php
CHANGED
@@ -29,7 +29,7 @@ class Zip {
|
|
29 |
|
30 |
public function zip_start($file_path, $files = [], $name = '', &$zip_progress = null, $start = null) {
|
31 |
|
32 |
-
|
33 |
$this->new_file_path = $file_path;
|
34 |
$this->backupname = $name;
|
35 |
$this->zip_progress = $zip_progress;
|
@@ -48,6 +48,7 @@ class Zip {
|
|
48 |
}
|
49 |
|
50 |
return true;
|
|
|
51 |
}
|
52 |
|
53 |
public function return_bytes($val) {
|
@@ -92,7 +93,7 @@ class Zip {
|
|
92 |
|
93 |
public function zip_add($in) {
|
94 |
|
95 |
-
|
96 |
if ($this->lib === 0 || $this->new_file_path === 0) {
|
97 |
throw new \Exception("PHP-ZIP: must call zip_start before zip_add");
|
98 |
}
|
@@ -100,13 +101,13 @@ class Zip {
|
|
100 |
// Push file
|
101 |
array_push($this->org_files, $in);
|
102 |
|
103 |
-
//
|
104 |
return true;
|
105 |
}
|
106 |
|
107 |
public function zip_end($force_lib = false) {
|
108 |
|
109 |
-
|
110 |
$this->zip_progress->log(__("Smart memory calculation...", 'backup-migration'), 'STEP');
|
111 |
if ((intval($this->return_bytes(ini_get('memory_limit'))) / 1024 / 1024) < 256) {
|
112 |
@ini_set('memory_limit', '256M');
|
@@ -115,6 +116,7 @@ class Zip {
|
|
115 |
$memory_limit = (intval($this->return_bytes(ini_get('memory_limit'))) / 1024 / 1024);
|
116 |
$this->zip_progress->log(str_replace('%s', $memory_limit, __("There is %s MBs of memory to use", 'backup-migration')), 'INFO');
|
117 |
$safe_limit = intval($memory_limit / 4);
|
|
|
118 |
$this->zip_progress->log(str_replace('%s', $safe_limit, __("Setting the safe limit to %s MB", 'backup-migration')), 'SUCCESS');
|
119 |
|
120 |
$abs = BMP::fixSlashes(ABSPATH) . DIRECTORY_SEPARATOR;
|
@@ -125,7 +127,7 @@ class Zip {
|
|
125 |
|
126 |
if (Dashboard\bmi_get_config('BACKUP:DATABASE') == 'true') {
|
127 |
|
128 |
-
|
129 |
require_once BMI_INCLUDES . DIRECTORY_SEPARATOR . 'database' . DIRECTORY_SEPARATOR . 'manager.php';
|
130 |
|
131 |
// Get database dump
|
@@ -159,11 +161,11 @@ class Zip {
|
|
159 |
// using zipArchive class
|
160 |
if ($this->lib === 1) {
|
161 |
|
162 |
-
|
163 |
$this->zip_progress->log(__("Using Zlib to create Backup", 'backup-migration'));
|
164 |
|
165 |
$lib = new \ZipArchive();
|
166 |
-
if (!$lib->open($this->new_file_path, \
|
167 |
throw new \Exception('PHP-ZIP: Permission Denied or zlib can\'t be found');
|
168 |
}
|
169 |
|
@@ -180,14 +182,14 @@ class Zip {
|
|
180 |
$this->zip_progress->progress($i + 1 . '/' . $max);
|
181 |
}
|
182 |
|
183 |
-
if (($i + 1) %
|
184 |
$this->zip_progress->log((__("Milestone: ", 'backup-migration') . ($i + 1) . '/' . $max), 'info');
|
185 |
}
|
186 |
}
|
187 |
|
188 |
if (file_exists(BMI_BACKUPS . DIRECTORY_SEPARATOR . '.abort')) {
|
189 |
|
190 |
-
|
191 |
$lib->close();
|
192 |
} else {
|
193 |
$this->zip_progress->log((__("Milestone: ", 'backup-migration') . $max . '/' . $max), 'info');
|
@@ -220,7 +222,7 @@ class Zip {
|
|
220 |
// using PclZip
|
221 |
if ($this->lib === 2) {
|
222 |
|
223 |
-
|
224 |
$this->zip_progress->log(__("Using PclZip to create Backup (forced)", 'backup-migration'));
|
225 |
|
226 |
// require the lib
|
@@ -241,7 +243,7 @@ class Zip {
|
|
241 |
}
|
242 |
|
243 |
try {
|
244 |
-
$chunks = array_chunk($this->org_files,
|
245 |
$chunkslen = sizeof($chunks);
|
246 |
$sizeoflast = sizeof($chunks[$chunkslen - 1]);
|
247 |
if ($chunkslen > 1 && $sizeoflast == 1) {
|
@@ -258,16 +260,16 @@ class Zip {
|
|
258 |
}
|
259 |
|
260 |
$chunk = $chunks[$i];
|
261 |
-
$back = $lib->add($chunk, PCLZIP_OPT_REMOVE_PATH, $abs, PCLZIP_OPT_ADD_PATH, 'wordpress' . DIRECTORY_SEPARATOR, PCLZIP_OPT_TEMP_FILE_THRESHOLD, $safe_limit);
|
262 |
if ($back == 0) {
|
263 |
$this->zip_failed($lib->errorInfo(true));
|
264 |
|
265 |
return false;
|
266 |
}
|
267 |
|
268 |
-
$curfile = (($i *
|
269 |
$this->zip_progress->progress($curfile . '/' . $max);
|
270 |
-
if ($curfile %
|
271 |
$this->zip_progress->log(__("Milestone: ", 'backup-migration') . ($curfile . '/' . $max), 'info');
|
272 |
}
|
273 |
}
|
@@ -282,8 +284,14 @@ class Zip {
|
|
282 |
}
|
283 |
|
284 |
if (file_exists(BMI_BACKUPS . DIRECTORY_SEPARATOR . '.abort')) {
|
285 |
-
|
286 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
287 |
} else {
|
288 |
|
289 |
// End
|
@@ -310,14 +318,19 @@ class Zip {
|
|
310 |
}
|
311 |
$lib->add($files, PCLZIP_OPT_REMOVE_PATH, $database_file_dir);
|
312 |
|
313 |
-
|
314 |
-
|
|
|
|
|
|
|
|
|
315 |
|
316 |
$this->zip_progress->progress($max . '/' . $max);
|
|
|
317 |
}
|
318 |
}
|
319 |
|
320 |
-
@unlink($database_file);
|
321 |
if (!file_exists($this->new_file_path)) {
|
322 |
throw new \Exception('PHP-ZIP: After doing the zipping file can not be found');
|
323 |
}
|
@@ -340,7 +353,7 @@ class Zip {
|
|
340 |
|
341 |
public function unzip_file($file_path, $target_dir = null, &$zip_progress = null) {
|
342 |
|
343 |
-
|
344 |
$this->zip_progress = $zip_progress;
|
345 |
|
346 |
// if it doesn't exist
|
29 |
|
30 |
public function zip_start($file_path, $files = [], $name = '', &$zip_progress = null, $start = null) {
|
31 |
|
32 |
+
// save the new file path
|
33 |
$this->new_file_path = $file_path;
|
34 |
$this->backupname = $name;
|
35 |
$this->zip_progress = $zip_progress;
|
48 |
}
|
49 |
|
50 |
return true;
|
51 |
+
|
52 |
}
|
53 |
|
54 |
public function return_bytes($val) {
|
93 |
|
94 |
public function zip_add($in) {
|
95 |
|
96 |
+
// Just to make sure.. if the user haven't called the earlier method
|
97 |
if ($this->lib === 0 || $this->new_file_path === 0) {
|
98 |
throw new \Exception("PHP-ZIP: must call zip_start before zip_add");
|
99 |
}
|
101 |
// Push file
|
102 |
array_push($this->org_files, $in);
|
103 |
|
104 |
+
// Return
|
105 |
return true;
|
106 |
}
|
107 |
|
108 |
public function zip_end($force_lib = false) {
|
109 |
|
110 |
+
// Try to set limit
|
111 |
$this->zip_progress->log(__("Smart memory calculation...", 'backup-migration'), 'STEP');
|
112 |
if ((intval($this->return_bytes(ini_get('memory_limit'))) / 1024 / 1024) < 256) {
|
113 |
@ini_set('memory_limit', '256M');
|
116 |
$memory_limit = (intval($this->return_bytes(ini_get('memory_limit'))) / 1024 / 1024);
|
117 |
$this->zip_progress->log(str_replace('%s', $memory_limit, __("There is %s MBs of memory to use", 'backup-migration')), 'INFO');
|
118 |
$safe_limit = intval($memory_limit / 4);
|
119 |
+
if ($safe_limit > 64) $safe_limit = 64;
|
120 |
$this->zip_progress->log(str_replace('%s', $safe_limit, __("Setting the safe limit to %s MB", 'backup-migration')), 'SUCCESS');
|
121 |
|
122 |
$abs = BMP::fixSlashes(ABSPATH) . DIRECTORY_SEPARATOR;
|
127 |
|
128 |
if (Dashboard\bmi_get_config('BACKUP:DATABASE') == 'true') {
|
129 |
|
130 |
+
// Require Database Manager
|
131 |
require_once BMI_INCLUDES . DIRECTORY_SEPARATOR . 'database' . DIRECTORY_SEPARATOR . 'manager.php';
|
132 |
|
133 |
// Get database dump
|
161 |
// using zipArchive class
|
162 |
if ($this->lib === 1) {
|
163 |
|
164 |
+
// Verbose
|
165 |
$this->zip_progress->log(__("Using Zlib to create Backup", 'backup-migration'));
|
166 |
|
167 |
$lib = new \ZipArchive();
|
168 |
+
if (!$lib->open($this->new_file_path, \ZipArchive::CREATE)) {
|
169 |
throw new \Exception('PHP-ZIP: Permission Denied or zlib can\'t be found');
|
170 |
}
|
171 |
|
182 |
$this->zip_progress->progress($i + 1 . '/' . $max);
|
183 |
}
|
184 |
|
185 |
+
if (($i + 1) % 500 === 0 || $i == 0) {
|
186 |
$this->zip_progress->log((__("Milestone: ", 'backup-migration') . ($i + 1) . '/' . $max), 'info');
|
187 |
}
|
188 |
}
|
189 |
|
190 |
if (file_exists(BMI_BACKUPS . DIRECTORY_SEPARATOR . '.abort')) {
|
191 |
|
192 |
+
// close the archive
|
193 |
$lib->close();
|
194 |
} else {
|
195 |
$this->zip_progress->log((__("Milestone: ", 'backup-migration') . $max . '/' . $max), 'info');
|
222 |
// using PclZip
|
223 |
if ($this->lib === 2) {
|
224 |
|
225 |
+
// Verbose
|
226 |
$this->zip_progress->log(__("Using PclZip to create Backup (forced)", 'backup-migration'));
|
227 |
|
228 |
// require the lib
|
243 |
}
|
244 |
|
245 |
try {
|
246 |
+
$chunks = array_chunk($this->org_files, 200);
|
247 |
$chunkslen = sizeof($chunks);
|
248 |
$sizeoflast = sizeof($chunks[$chunkslen - 1]);
|
249 |
if ($chunkslen > 1 && $sizeoflast == 1) {
|
260 |
}
|
261 |
|
262 |
$chunk = $chunks[$i];
|
263 |
+
$back = $lib->add($chunk, PCLZIP_OPT_REMOVE_PATH, $abs, PCLZIP_OPT_ADD_PATH, 'wordpress' . DIRECTORY_SEPARATOR, PCLZIP_OPT_ADD_TEMP_FILE_ON, PCLZIP_OPT_TEMP_FILE_THRESHOLD, $safe_limit);
|
264 |
if ($back == 0) {
|
265 |
$this->zip_failed($lib->errorInfo(true));
|
266 |
|
267 |
return false;
|
268 |
}
|
269 |
|
270 |
+
$curfile = (($i * 200) + 200);
|
271 |
$this->zip_progress->progress($curfile . '/' . $max);
|
272 |
+
if ($curfile % 500 === 0) {
|
273 |
$this->zip_progress->log(__("Milestone: ", 'backup-migration') . ($curfile . '/' . $max), 'info');
|
274 |
}
|
275 |
}
|
284 |
}
|
285 |
|
286 |
if (file_exists(BMI_BACKUPS . DIRECTORY_SEPARATOR . '.abort')) {
|
287 |
+
|
288 |
+
if (file_exists($database_file_dir . 'bmi_backup_manifest.json')) {
|
289 |
+
@unlink($database_file_dir . 'bmi_backup_manifest.json');
|
290 |
+
}
|
291 |
+
if (file_exists($database_file_dir . 'bmi_logs_this_backup.log')) {
|
292 |
+
@unlink($database_file_dir . 'bmi_logs_this_backup.log');
|
293 |
+
}
|
294 |
+
|
295 |
} else {
|
296 |
|
297 |
// End
|
318 |
}
|
319 |
$lib->add($files, PCLZIP_OPT_REMOVE_PATH, $database_file_dir);
|
320 |
|
321 |
+
if (file_exists($database_file_dir . 'bmi_backup_manifest.json')) {
|
322 |
+
@unlink($database_file_dir . 'bmi_backup_manifest.json');
|
323 |
+
}
|
324 |
+
if (file_exists($database_file_dir . 'bmi_logs_this_backup.log')) {
|
325 |
+
@unlink($database_file_dir . 'bmi_logs_this_backup.log');
|
326 |
+
}
|
327 |
|
328 |
$this->zip_progress->progress($max . '/' . $max);
|
329 |
+
|
330 |
}
|
331 |
}
|
332 |
|
333 |
+
if (file_exists($database_file)) @unlink($database_file);
|
334 |
if (!file_exists($this->new_file_path)) {
|
335 |
throw new \Exception('PHP-ZIP: After doing the zipping file can not be found');
|
336 |
}
|
353 |
|
354 |
public function unzip_file($file_path, $target_dir = null, &$zip_progress = null) {
|
355 |
|
356 |
+
// Progress
|
357 |
$this->zip_progress = $zip_progress;
|
358 |
|
359 |
// if it doesn't exist
|
readme.txt
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
=== Backup
|
2 |
Contributors: Migrate
|
3 |
Tags: Backup, Migration, Migrate, Backups, Clone, Duplicate
|
4 |
Requires at least: 4.6
|
5 |
-
Tested up to: 5.
|
6 |
-
Stable tag: 1.0.
|
7 |
License: GPLv3
|
8 |
Requires PHP: 5.6
|
9 |
|
10 |
-
|
11 |
|
12 |
== Description ==
|
13 |
|
@@ -18,7 +18,6 @@ Simply install the plugin, click on "Create backup now" - done.
|
|
18 |
You can also schedule backups, e.g. define that a backup should be taken automatically every week (or every day/month).
|
19 |
|
20 |
Use a wide choice of configuration options:
|
21 |
-
|
22 |
- Define exactly which files / databases should be in the backup, which not
|
23 |
- Define where the backup will be stored (as of now, only local option is available, but we'll expand this soon)
|
24 |
- Define what name your backup should have, in which instances you should receive a notification email, and much more
|
@@ -69,7 +68,6 @@ Backup file size depends on the criteria you select on the “What will be backe
|
|
69 |
|
70 |
Yes. You can create full site backups, automatic backups, and migrate your site free of charge. [Backup Migration Pro](https://sellcodes.com/oZxnXtc2) provides more sophisticated filters and selections of files that will be included/excluded from backups (affecting backup size), faster backup creation times, number of external backup storage locations, backup encryption, backup file compression methods, advanced backup triggers, additional backup notifications by email, priority support, and more.
|
71 |
|
72 |
-
|
73 |
== Screenshots ==
|
74 |
1. Backup Migration plugin front
|
75 |
2. What will be backed up
|
@@ -79,7 +77,6 @@ Yes. You can create full site backups, automatic backups, and migrate your site
|
|
79 |
6. Restoring in progress
|
80 |
7. Restore finished
|
81 |
|
82 |
-
|
83 |
== Installation ==
|
84 |
|
85 |
= Admin Installer via search =
|
@@ -99,40 +96,56 @@ Yes. You can create full site backups, automatic backups, and migrate your site
|
|
99 |
|
100 |
== Changelog ==
|
101 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
102 |
= 1.0.5 =
|
103 |
-
* Premium
|
104 |
-
*
|
105 |
-
* Load priority change (for better
|
106 |
|
107 |
= 1.0.4 =
|
108 |
-
* Removed included PclZip
|
109 |
-
* Added
|
110 |
-
*
|
111 |
-
* Rephrased some tooltips
|
112 |
-
* Added
|
113 |
-
* Changed excluded
|
114 |
|
115 |
= 1.0.3 =
|
116 |
* Created special htaccess for litespeed
|
117 |
-
* Added dynamic counter of current file
|
118 |
* Added more info in backup logs
|
119 |
|
120 |
= 1.0.2 =
|
121 |
-
* Dedicated
|
122 |
-
* Added smart memory manager
|
123 |
* Fixed migration issues (database)
|
124 |
* Fixed backup issues (litespeed users)
|
125 |
-
*
|
126 |
* Added more error messages (backup)
|
127 |
|
128 |
= 1.0.1 =
|
129 |
-
* Changed
|
130 |
-
* Updated some
|
131 |
|
132 |
= 1.0.0 =
|
133 |
-
* Initial release
|
134 |
|
135 |
== Upgrade Notice ==
|
136 |
|
137 |
-
= 1.0.
|
138 |
-
Please upgrade
|
1 |
+
=== Backup Backup ===
|
2 |
Contributors: Migrate
|
3 |
Tags: Backup, Migration, Migrate, Backups, Clone, Duplicate
|
4 |
Requires at least: 4.6
|
5 |
+
Tested up to: 5.6
|
6 |
+
Stable tag: 1.0.6
|
7 |
License: GPLv3
|
8 |
Requires PHP: 5.6
|
9 |
|
10 |
+
Backup and migration
|
11 |
|
12 |
== Description ==
|
13 |
|
18 |
You can also schedule backups, e.g. define that a backup should be taken automatically every week (or every day/month).
|
19 |
|
20 |
Use a wide choice of configuration options:
|
|
|
21 |
- Define exactly which files / databases should be in the backup, which not
|
22 |
- Define where the backup will be stored (as of now, only local option is available, but we'll expand this soon)
|
23 |
- Define what name your backup should have, in which instances you should receive a notification email, and much more
|
68 |
|
69 |
Yes. You can create full site backups, automatic backups, and migrate your site free of charge. [Backup Migration Pro](https://sellcodes.com/oZxnXtc2) provides more sophisticated filters and selections of files that will be included/excluded from backups (affecting backup size), faster backup creation times, number of external backup storage locations, backup encryption, backup file compression methods, advanced backup triggers, additional backup notifications by email, priority support, and more.
|
70 |
|
|
|
71 |
== Screenshots ==
|
72 |
1. Backup Migration plugin front
|
73 |
2. What will be backed up
|
77 |
6. Restoring in progress
|
78 |
7. Restore finished
|
79 |
|
|
|
80 |
== Installation ==
|
81 |
|
82 |
= Admin Installer via search =
|
96 |
|
97 |
== Changelog ==
|
98 |
|
99 |
+
= 1.0.6 =
|
100 |
+
* Backup Support for WordPress 5.6
|
101 |
+
* Backup Support for PHP 8.0
|
102 |
+
* Fixed issue with completely empty backup files (0 bytes)
|
103 |
+
* Fixed back up progress (NaN shouldn't display anymore)
|
104 |
+
* For better backup & network performance decreased amount of calls
|
105 |
+
* Admin can bypass backup logs protection (File won't expire for them)
|
106 |
+
* Added update information to downloaded backup and restore logs
|
107 |
+
* Added some server infos to backup / migration logs
|
108 |
+
* Support for backup "front-end" errors – for easier debugging
|
109 |
+
* Server back up errors should be also logged in (limited on LSWS)
|
110 |
+
* Better back up error logging – global log will contain all errors
|
111 |
+
* Added back up troubleshooting option: send test email
|
112 |
+
* Added back up troubleshooting option: fix php_uname warning/error
|
113 |
+
* Removed back up PHP Errors reports from log files
|
114 |
+
|
115 |
= 1.0.5 =
|
116 |
+
* Premium relation
|
117 |
+
* Translations adjustment
|
118 |
+
* Load priority change (for better performance of entire website)
|
119 |
|
120 |
= 1.0.4 =
|
121 |
+
* Removed included PclZip
|
122 |
+
* Added support for WordPress 4.6
|
123 |
+
* Support for PHP 5.6
|
124 |
+
* Rephrased some tooltips to be more clear
|
125 |
+
* Added support for custom wp-content folder
|
126 |
+
* Changed excluded files by default
|
127 |
|
128 |
= 1.0.3 =
|
129 |
* Created special htaccess for litespeed
|
130 |
+
* Added dynamic counter of current file
|
131 |
* Added more info in backup logs
|
132 |
|
133 |
= 1.0.2 =
|
134 |
+
* Dedicated space checking with dummy file
|
135 |
+
* Added smart memory manager
|
136 |
* Fixed migration issues (database)
|
137 |
* Fixed backup issues (litespeed users)
|
138 |
+
* Progress won't hide on front-end error (e.g. lost connection)
|
139 |
* Added more error messages (backup)
|
140 |
|
141 |
= 1.0.1 =
|
142 |
+
* Changed tooltips background color for better contrast
|
143 |
+
* Updated some translation strings
|
144 |
|
145 |
= 1.0.0 =
|
146 |
+
* Initial release
|
147 |
|
148 |
== Upgrade Notice ==
|
149 |
|
150 |
+
= 1.0.6 =
|
151 |
+
Please upgrade the Backup & Migration plugin!
|