Backup Migration - Version 1.0.6

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 Icon wp 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 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)">&times;</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)">&times;</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.5
12
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
13
 
14
  // Exit on direct access
15
- if (!defined('ABSPATH')) {
16
- exit;
17
- }
18
 
19
  // Default namespace
20
- use BMI\Plugin\Backup_Migration_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.5');
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
- @unlink($backup_path);
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://premium.backupbliss.com/');
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 .= '&nbsp;– <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 .= '&nbsp;–&nbsp;' . 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="lh30">
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
- </a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 .= __("This feature isn’t ready yet in the premium plugin, that’s why you can buy it at a", 'backup-migration') . " <b>" . __("big discount", 'backup-migration') . "</b>. <a href='" . $sellcodes_url . "' target='_blank'>" . __("Learn more", 'backup-migration') . "</a>.";
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
- <p class="f16"><?php _e("Coming soon also in the free plugin", 'backup-migration'); ?> – <b><?php _e("stay tuned!", 'backup-migration'); ?></b></p>
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
- <p class="f16"><?php _e("Coming soon in the Premium Plugin", 'backup-migration'); ?> – <b><a href="<?php echo $preorder; ?>" target="_blanck" class="link-white"><?php _e("Order it now at a <b>big discount</b>!", 'backup-migration'); ?></a></b></p>
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
- <p class="f16"><?php _e("Coming soon also in the free plugin", 'backup-migration'); ?> – <b><?php _e("stay tuned!", 'backup-migration'); ?></b></p>
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
- <p class="f16"><?php _e("Coming soon in the Premium Plugin", 'backup-migration'); ?> – <b><a href="<?php echo $preorder; ?>" target="_blanck" class="link-white"><?php _e("Order it now at a <b>big discount</b>!", 'backup-migration'); ?></a></b></p>
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
- <p class="f16"><?php _e("Coming soon also in the free plugin", 'backup-migration'); ?> – <b><?php _e("stay tuned!", 'backup-migration'); ?></b></p>
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
- <p class="f16"><?php _e("Coming soon in the Premium Plugin", 'backup-migration'); ?> – <b><a href="<?php echo $preorder; ?>" target="_blanck" class="link-white"><?php _e("Order it now at a <b>big discount</b>!", 'backup-migration'); ?></a></b></p>
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
- <p class="f16"><?php _e("Coming soon in the Premium Plugin", 'backup-migration'); ?> – <b><a href="<?php echo $preorder; ?>" target="_blanck" class="link-white"><?php _e("Order it now at a <b>big discount</b>!", 'backup-migration'); ?></a></b></p>
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
- <p class="f16"><?php _e("Coming soon also in the free plugin", 'backup-migration'); ?> – <b><?php _e("stay tuned!", 'backup-migration'); ?></b></p>
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
- <p class="f16"><?php _e("Coming soon in the Premium Plugin", 'backup-migration'); ?> – <b><a href="<?php echo $preorder; ?>" target="_blanck" class="link-white"><?php _e("Order it now at a <b>big discount</b>!", 'backup-migration'); ?></a></b></p>
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
- <p class="f16"><?php _e("Coming soon also in the free plugin", 'backup-migration'); ?> – <b><?php _e("stay tuned!", 'backup-migration'); ?></b></p>
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
- <p class="f16"><?php _e("Coming soon also in the free plugin", 'backup-migration'); ?> – <b><?php _e("stay tuned!", 'backup-migration'); ?></b></p>
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="restore_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="#">
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="#" 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>
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 = "This feature isn’t ready yet in the premium plugin, that’s why you can buy it at a <b>big discount</b>. ";
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="#" 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,7 +37,7 @@
37
  </a>
38
  </div>
39
  <div class="left a2">
40
- <a href="#" 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">
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 (learn more about this in the", 'backup-migration'); ?>
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
- $sellcodes_url = BMI_AUTHOR_URI;
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
- <p class="f18 secondary"><?php _e("Coming soon in the Premium Plugin", 'backup-migration'); ?>
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 _e("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') ?>
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
- function bmi_uninstall_handler() {
23
- require_once BMI_ROOT_DIR . '/uninstall.php';
 
 
24
  }
25
 
26
  /**
@@ -30,40 +32,38 @@
30
  public function initialize() {
31
 
32
  // Handle CRONs
33
- add_action('bmi_do_backup_right_now', [$this, 'handle_cron_backup']);
34
- add_action('bmi_handle_cron_check', [$this, 'handle_cron_check']);
35
- add_action('init', [$this, 'handle_crons']);
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', [$this, 'ajax']);
47
 
48
  // Stop GET Registration
49
  return;
50
- }
51
 
52
- // File downloading
53
- add_action('init', [$this, 'handle_downloading']);
54
 
55
  // Hooks
56
- register_activation_hook(BMI_ROOT_FILE, [$this, 'activation']);
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', [$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,8 +71,8 @@
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,28 +82,113 @@
82
 
83
  // Extend execution time
84
  $exectime = intval(ini_get('max_execution_time'));
85
- if ($exectime < 10800 && $exectime != 0) {
86
- set_time_limit(10800);
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
- readfile($file);
 
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
- header('Content-Type: text/plain');
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(__("Deactivated", 'backup-migration'));
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
- // save the new file path
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
- // Just to make sure.. if the user haven't called the earlier method
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
- // Try to set limit
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
- // Require Database Manager
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
- // Verbose
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, \ZIPARCHIVE::CREATE)) {
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) % 5000 === 0 || $i == 0) {
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
- // close the archive
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
- // Verbose
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, 500);
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 * 500) + 500);
269
  $this->zip_progress->progress($curfile . '/' . $max);
270
- if ($curfile % 5000 === 0) {
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
- @unlink($database_file_dir . 'bmi_backup_manifest.json');
286
- @unlink($database_file_dir . 'bmi_logs_this_backup.log');
 
 
 
 
 
 
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
- @unlink($database_file_dir . 'bmi_backup_manifest.json');
314
- @unlink($database_file_dir . 'bmi_logs_this_backup.log');
 
 
 
 
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
- // Progress
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 Migration ===
2
  Contributors: Migrate
3
  Tags: Backup, Migration, Migrate, Backups, Clone, Duplicate
4
  Requires at least: 4.6
5
- Tested up to: 5.5.3
6
- Stable tag: 1.0.5
7
  License: GPLv3
8
  Requires PHP: 5.6
9
 
10
- Fast backup and migration
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 backup plugin relation
104
- * Backup translations adjustment
105
- * Load priority change (for better back up performance of entire website)
106
 
107
  = 1.0.4 =
108
- * Removed included PclZip from Backup
109
- * Added backup support for WordPress 4.6
110
- * Backup support for PHP 5.6
111
- * Rephrased some tooltips in backup migration plugin to be more clear
112
- * Added backup support for custom wp-content folder
113
- * Changed excluded backup files by default
114
 
115
  = 1.0.3 =
116
  * Created special htaccess for litespeed
117
- * Added dynamic counter of current file to backup plugin
118
  * Added more info in backup logs
119
 
120
  = 1.0.2 =
121
- * Dedicated backup space checking with dummy file
122
- * Added smart memory manager in backup migration plugin
123
  * Fixed migration issues (database)
124
  * Fixed backup issues (litespeed users)
125
- * Backup progress won't hide on front-end error (e.g. lost connection)
126
  * Added more error messages (backup)
127
 
128
  = 1.0.1 =
129
- * Changed backup tooltips background color for better contrast
130
- * Updated some backup and migration translation strings
131
 
132
  = 1.0.0 =
133
- * Initial release of backup & migrate plugin
134
 
135
  == Upgrade Notice ==
136
 
137
- = 1.0.5 =
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!