PNG  IHDRQgAMA a cHRMz&u0`:pQ<bKGDgmIDATxwUﹻ& ^CX(J I@ "% (** BX +*i"]j(IH{~R)[~>h{}gy)I$Ij .I$I$ʊy@}x.: $I$Ii}VZPC)I$IF ^0ʐJ$I$Q^}{"r=OzI$gRZeC.IOvH eKX $IMpxsk.쒷/&r[޳<v| .I~)@$updYRa$I |M.e JaֶpSYR6j>h%IRز if&uJ)M$I vLi=H;7UJ,],X$I1AҒJ$ XY XzI@GNҥRT)E@;]K*Mw;#5_wOn~\ DC&$(A5 RRFkvIR}l!RytRl;~^ǷJj اy뷦BZJr&ӥ8Pjw~vnv X^(I;4R=P[3]J,]ȏ~:3?[ a&e)`e*P[4]T=Cq6R[ ~ޤrXR Հg(t_HZ-Hg M$ãmL5R uk*`%C-E6/%[t X.{8P9Z.vkXŐKjgKZHg(aK9ڦmKjѺm_ \#$5,)-  61eJ,5m| r'= &ڡd%-]J on Xm|{ RҞe $eڧY XYrԮ-a7RK6h>n$5AVڴi*ֆK)mѦtmr1p| q:흺,)Oi*ֺK)ܬ֦K-5r3>0ԔHjJئEZj,%re~/z%jVMڸmrt)3]J,T K֦OvԒgii*bKiNO~%PW0=dii2tJ9Jݕ{7"I P9JKTbu,%r"6RKU}Ij2HKZXJ,妝 XYrP ެ24c%i^IK|.H,%rb:XRl1X4Pe/`x&P8Pj28Mzsx2r\zRPz4J}yP[g=L) .Q[6RjWgp FIH*-`IMRaK9TXcq*I y[jE>cw%gLRԕiFCj-ďa`#e~I j,%r,)?[gp FI˨mnWX#>mʔ XA DZf9,nKҲzIZXJ,L#kiPz4JZF,I,`61%2s $,VOϚ2/UFJfy7K> X+6 STXIeJILzMfKm LRaK9%|4p9LwJI!`NsiazĔ)%- XMq>pk$-$Q2x#N ؎-QR}ᶦHZډ)J,l#i@yn3LN`;nڔ XuX5pF)m|^0(>BHF9(cզEerJI rg7 4I@z0\JIi䵙RR0s;$s6eJ,`n 䂦0a)S)A 1eJ,堌#635RIgpNHuTH_SԕqVe ` &S)>p;S$魁eKIuX`I4춒o}`m$1":PI<[v9^\pTJjriRŭ P{#{R2,`)e-`mgj~1ϣLKam7&U\j/3mJ,`F;M'䱀 .KR#)yhTq;pcK9(q!w?uRR,n.yw*UXj#\]ɱ(qv2=RqfB#iJmmL<]Y͙#$5 uTU7ӦXR+q,`I}qL'`6Kͷ6r,]0S$- [RKR3oiRE|nӦXR.(i:LDLTJjY%o:)6rxzҒqTJjh㞦I.$YR.ʼnGZ\ֿf:%55 I˼!6dKxm4E"mG_ s? .e*?LRfK9%q#uh$)i3ULRfK9yxm܌bj84$i1U^@Wbm4uJ,ҪA>_Ij?1v32[gLRD96oTaR׿N7%L2 NT,`)7&ƝL*꽙yp_$M2#AS,`)7$rkTA29_Iye"|/0t)$n XT2`YJ;6Jx".e<`$) PI$5V4]29SRI>~=@j]lp2`K9Jaai^" Ԋ29ORI%:XV5]JmN9]H;1UC39NI%Xe78t)a;Oi Ҙ>Xt"~G>_mn:%|~ޅ_+]$o)@ǀ{hgN;IK6G&rp)T2i୦KJuv*T=TOSV>(~D>dm,I*Ɛ:R#ۙNI%D>G.n$o;+#RR!.eU˽TRI28t)1LWϚ>IJa3oFbu&:tJ*(F7y0ZR ^p'Ii L24x| XRI%ۄ>S1]Jy[zL$adB7.eh4%%누>WETf+3IR:I3Xה)3אOۦSRO'ٺ)S}"qOr[B7ϙ.edG)^ETR"RtRݜh0}LFVӦDB^k_JDj\=LS(Iv─aTeZ%eUAM-0;~˃@i|l @S4y72>sX-vA}ϛBI!ݎߨWl*)3{'Y|iSlEڻ(5KtSI$Uv02,~ԩ~x;P4ցCrO%tyn425:KMlD ^4JRxSهF_}شJTS6uj+ﷸk$eZO%G*^V2u3EMj3k%)okI]dT)URKDS 7~m@TJR~荪fT"֛L \sM -0T KfJz+nإKr L&j()[E&I ߴ>e FW_kJR|!O:5/2跌3T-'|zX ryp0JS ~^F>-2< `*%ZFP)bSn"L :)+pʷf(pO3TMW$~>@~ū:TAIsV1}S2<%ޟM?@iT ,Eūoz%i~g|`wS(]oȤ8)$ ntu`өe`6yPl IzMI{ʣzʨ )IZ2= ld:5+請M$-ї;U>_gsY$ÁN5WzWfIZ)-yuXIfp~S*IZdt;t>KūKR|$#LcԀ+2\;kJ`]YǔM1B)UbG"IRߊ<xܾӔJ0Z='Y嵤 Leveg)$znV-º^3Ւof#0Tfk^Zs[*I꯳3{)ˬW4Ւ4 OdpbZRS|*I 55#"&-IvT&/윚Ye:i$ 9{LkuRe[I~_\ؠ%>GL$iY8 9ܕ"S`kS.IlC;Ҏ4x&>u_0JLr<J2(^$5L s=MgV ~,Iju> 7r2)^=G$1:3G< `J3~&IR% 6Tx/rIj3O< ʔ&#f_yXJiގNSz; Tx(i8%#4 ~AS+IjerIUrIj362v885+IjAhK__5X%nV%Iͳ-y|7XV2v4fzo_68"S/I-qbf; LkF)KSM$ Ms>K WNV}^`-큧32ŒVؙGdu,^^m%6~Nn&͓3ŒVZMsRpfEW%IwdǀLm[7W&bIRL@Q|)* i ImsIMmKmyV`i$G+R 0tV'!V)֏28vU7͒vHꦼtxꗞT ;S}7Mf+fIRHNZUkUx5SAJㄌ9MqμAIRi|j5)o*^'<$TwI1hEU^c_j?Е$%d`z cyf,XO IJnTgA UXRD }{H}^S,P5V2\Xx`pZ|Yk:$e ~ @nWL.j+ϝYb퇪bZ BVu)u/IJ_ 1[p.p60bC >|X91P:N\!5qUB}5a5ja `ubcVxYt1N0Zzl4]7­gKj]?4ϻ *[bg$)+À*x쳀ogO$~,5 زUS9 lq3+5mgw@np1sso Ӻ=|N6 /g(Wv7U;zωM=wk,0uTg_`_P`uz?2yI!b`kĸSo+Qx%!\οe|އԁKS-s6pu_(ֿ$i++T8=eY; צP+phxWQv*|p1. ά. XRkIQYP,drZ | B%wP|S5`~́@i޾ E;Չaw{o'Q?%iL{u D?N1BD!owPHReFZ* k_-~{E9b-~P`fE{AܶBJAFO wx6Rox5 K5=WwehS8 (JClJ~ p+Fi;ŗo+:bD#g(C"wA^ r.F8L;dzdIHUX݆ϞXg )IFqem%I4dj&ppT{'{HOx( Rk6^C٫O.)3:s(۳(Z?~ٻ89zmT"PLtw䥈5&b<8GZ-Y&K?e8,`I6e(֍xb83 `rzXj)F=l($Ij 2*(F?h(/9ik:I`m#p3MgLaKjc/U#n5S# m(^)=y=đx8ŬI[U]~SцA4p$-F i(R,7Cx;X=cI>{Km\ o(Tv2vx2qiiDJN,Ҏ!1f 5quBj1!8 rDFd(!WQl,gSkL1Bxg''՞^ǘ;pQ P(c_ IRujg(Wz bs#P­rz> k c&nB=q+ؔXn#r5)co*Ũ+G?7< |PQӣ'G`uOd>%Mctz# Ԫڞ&7CaQ~N'-P.W`Oedp03C!IZcIAMPUۀ5J<\u~+{9(FbbyAeBhOSܳ1 bÈT#ŠyDžs,`5}DC-`̞%r&ڙa87QWWp6e7 Rϫ/oY ꇅ Nܶըtc!LA T7V4Jsū I-0Pxz7QNF_iZgúWkG83 0eWr9 X]㾮݁#Jˢ C}0=3ݱtBi]_ &{{[/o[~ \q鯜00٩|cD3=4B_b RYb$óBRsf&lLX#M*C_L܄:gx)WΘsGSbuL rF$9';\4Ɍq'n[%p.Q`u hNb`eCQyQ|l_C>Lb꟟3hSb #xNxSs^ 88|Mz)}:](vbۢamŖ࿥ 0)Q7@0=?^k(*J}3ibkFn HjB׻NO z x}7p 0tfDX.lwgȔhԾŲ }6g E |LkLZteu+=q\Iv0쮑)QٵpH8/2?Σo>Jvppho~f>%bMM}\//":PTc(v9v!gոQ )UfVG+! 35{=x\2+ki,y$~A1iC6#)vC5^>+gǵ@1Hy٪7u;p psϰu/S <aʸGu'tD1ԝI<pg|6j'p:tպhX{o(7v],*}6a_ wXRk,O]Lܳ~Vo45rp"N5k;m{rZbΦ${#)`(Ŵg,;j%6j.pyYT?}-kBDc3qA`NWQū20/^AZW%NQ MI.X#P#,^Ebc&?XR tAV|Y.1!؅⨉ccww>ivl(JT~ u`ٵDm q)+Ri x/x8cyFO!/*!/&,7<.N,YDŽ&ܑQF1Bz)FPʛ?5d 6`kQձ λc؎%582Y&nD_$Je4>a?! ͨ|ȎWZSsv8 j(I&yj Jb5m?HWp=g}G3#|I,5v珿] H~R3@B[☉9Ox~oMy=J;xUVoj bUsl_35t-(ՃɼRB7U!qc+x4H_Qo֮$[GO<4`&č\GOc[.[*Af%mG/ ňM/r W/Nw~B1U3J?P&Y )`ѓZ1p]^l“W#)lWZilUQu`-m|xĐ,_ƪ|9i:_{*(3Gѧ}UoD+>m_?VPۅ15&}2|/pIOʵ> GZ9cmíتmnz)yߐbD >e}:) r|@R5qVSA10C%E_'^8cR7O;6[eKePGϦX7jb}OTGO^jn*媓7nGMC t,k31Rb (vyܴʭ!iTh8~ZYZp(qsRL ?b}cŨʊGO^!rPJO15MJ[c&~Z`"ѓޔH1C&^|Ш|rʼ,AwĴ?b5)tLU)F| &g٣O]oqSUjy(x<Ϳ3 .FSkoYg2 \_#wj{u'rQ>o;%n|F*O_L"e9umDds?.fuuQbIWz |4\0 sb;OvxOSs; G%T4gFRurj(֍ڑb uԖKDu1MK{1^ q; C=6\8FR艇!%\YÔU| 88m)֓NcLve C6z;o&X x59:q61Z(T7>C?gcļxѐ Z oo-08jہ x,`' ҔOcRlf~`jj".Nv+sM_]Zk g( UOPyεx%pUh2(@il0ݽQXxppx-NS( WO+轾 nFߢ3M<;z)FBZjciu/QoF 7R¥ ZFLF~#ȣߨ^<쩡ݛкvџ))ME>ώx4m#!-m!L;vv#~Y[đKmx9.[,UFS CVkZ +ߟrY٧IZd/ioi$%͝ب_ֶX3ܫhNU ZZgk=]=bbJS[wjU()*I =ώ:}-蹞lUj:1}MWm=̛ _ ¾,8{__m{_PVK^n3esw5ӫh#$-q=A̟> ,^I}P^J$qY~Q[ Xq9{#&T.^GVj__RKpn,b=`żY@^՝;z{paVKkQXj/)y TIc&F;FBG7wg ZZDG!x r_tƢ!}i/V=M/#nB8 XxЫ ^@CR<{䤭YCN)eKOSƟa $&g[i3.C6xrOc8TI;o hH6P&L{@q6[ Gzp^71j(l`J}]e6X☉#͕ ׈$AB1Vjh㭦IRsqFBjwQ_7Xk>y"N=MB0 ,C #o6MRc0|$)ف"1!ixY<B9mx `,tA>)5ػQ?jQ?cn>YZe Tisvh# GMމȇp:ԴVuږ8ɼH]C.5C!UV;F`mbBk LTMvPʍϤj?ԯ/Qr1NB`9s"s TYsz &9S%U԰> {<ؿSMxB|H\3@!U| k']$U+> |HHMLޢ?V9iD!-@x TIî%6Z*9X@HMW#?nN ,oe6?tQwڱ.]-y':mW0#!J82qFjH -`ѓ&M0u Uγmxϵ^-_\])@0Rt.8/?ٰCY]x}=sD3ojަЫNuS%U}ԤwHH>ڗjܷ_3gN q7[q2la*ArǓԖ+p8/RGM ]jacd(JhWko6ڎbj]i5Bj3+3!\j1UZLsLTv8HHmup<>gKMJj0@H%,W΃7R) ">c, xixј^ aܖ>H[i.UIHc U1=yW\=S*GR~)AF=`&2h`DzT󑓶J+?W+}C%P:|0H܆}-<;OC[~o.$~i}~HQ TvXΈr=b}$vizL4:ȰT|4~*!oXQR6Lk+#t/g lԁߖ[Jڶ_N$k*". xsxX7jRVbAAʯKҎU3)zSNN _'s?f)6X!%ssAkʱ>qƷb hg %n ~p1REGMHH=BJiy[<5 ǁJҖgKR*倳e~HUy)Ag,K)`Vw6bRR:qL#\rclK/$sh*$ 6덤 KԖc 3Z9=Ɣ=o>X Ώ"1 )a`SJJ6k(<c e{%kϊP+SL'TcMJWRm ŏ"w)qc ef꒵i?b7b('"2r%~HUS1\<(`1Wx9=8HY9m:X18bgD1u ~|H;K-Uep,, C1 RV.MR5άh,tWO8WC$ XRVsQS]3GJ|12 [vM :k#~tH30Rf-HYݺ-`I9%lIDTm\ S{]9gOڒMNCV\G*2JRŨ;Rҏ^ڽ̱mq1Eu?To3I)y^#jJw^Ńj^vvlB_⋌P4x>0$c>K†Aļ9s_VjTt0l#m>E-,,x,-W)سo&96RE XR.6bXw+)GAEvL)͞K4$p=Ũi_ѱOjb HY/+@θH9޼]Nԥ%n{ &zjT? Ty) s^ULlb,PiTf^<À] 62R^V7)S!nllS6~͝V}-=%* ʻ>G DnK<y&>LPy7'r=Hj 9V`[c"*^8HpcO8bnU`4JȪAƋ#1_\ XϘHPRgik(~G~0DAA_2p|J묭a2\NCr]M_0 ^T%e#vD^%xy-n}-E\3aS%yN!r_{ )sAw ڼp1pEAk~v<:`'ӭ^5 ArXOI驻T (dk)_\ PuA*BY]yB"l\ey hH*tbK)3 IKZ򹞋XjN n *n>k]X_d!ryBH ]*R 0(#'7 %es9??ښFC,ՁQPjARJ\Ρw K#jahgw;2$l*) %Xq5!U᢯6Re] |0[__64ch&_}iL8KEgҎ7 M/\`|.p,~`a=BR?xܐrQ8K XR2M8f ?`sgWS%" Ԉ 7R%$ N}?QL1|-эټwIZ%pvL3Hk>,ImgW7{E xPHx73RA @RS CC !\ȟ5IXR^ZxHл$Q[ŝ40 (>+ _C >BRt<,TrT {O/H+˟Pl6 I B)/VC<6a2~(XwV4gnXR ϱ5ǀHٻ?tw똤Eyxp{#WK qG%5],(0ӈH HZ])ג=K1j&G(FbM@)%I` XRg ʔ KZG(vP,<`[ Kn^ SJRsAʠ5xՅF`0&RbV tx:EaUE/{fi2;.IAwW8/tTxAGOoN?G}l L(n`Zv?pB8K_gI+ܗ #i?ޙ.) p$utc ~DžfՈEo3l/)I-U?aԅ^jxArA ΧX}DmZ@QLےbTXGd.^|xKHR{|ΕW_h] IJ`[G9{).y) 0X YA1]qp?p_k+J*Y@HI>^?gt.06Rn ,` ?);p pSF9ZXLBJPWjgQ|&)7! HjQt<| ؅W5 x W HIzYoVMGP Hjn`+\(dNW)F+IrS[|/a`K|ͻ0Hj{R,Q=\ (F}\WR)AgSG`IsnAR=|8$}G(vC$)s FBJ?]_u XRvύ6z ŨG[36-T9HzpW̞ú Xg큽=7CufzI$)ki^qk-) 0H*N` QZkk]/tnnsI^Gu't=7$ Z;{8^jB% IItRQS7[ϭ3 $_OQJ`7!]W"W,)Iy W AJA;KWG`IY{8k$I$^%9.^(`N|LJ%@$I}ֽp=FB*xN=gI?Q{٥4B)mw $Igc~dZ@G9K X?7)aK%݅K$IZ-`IpC U6$I\0>!9k} Xa IIS0H$I H ?1R.Чj:4~Rw@p$IrA*u}WjWFPJ$I➓/6#! LӾ+ X36x8J |+L;v$Io4301R20M I$-E}@,pS^ޟR[/s¹'0H$IKyfŸfVOπFT*a$I>He~VY/3R/)>d$I>28`Cjw,n@FU*9ttf$I~<;=/4RD~@ X-ѕzἱI$: ԍR a@b X{+Qxuq$IЛzo /~3\8ڒ4BN7$IҀj V]n18H$IYFBj3̵̚ja pp $Is/3R Ӻ-Yj+L;.0ŔI$Av? #!5"aʄj}UKmɽH$IjCYs?h$IDl843.v}m7UiI=&=0Lg0$I4: embe` eQbm0u? $IT!Sƍ'-sv)s#C0:XB2a w I$zbww{."pPzO =Ɔ\[ o($Iaw]`E).Kvi:L*#gР7[$IyGPI=@R 4yR~̮´cg I$I/<tPͽ hDgo 94Z^k盇΄8I56^W$I^0̜N?4*H`237}g+hxoq)SJ@p|` $I%>-hO0eO>\ԣNߌZD6R=K ~n($I$y3D>o4b#px2$yڪtzW~a $I~?x'BwwpH$IZݑnC㧄Pc_9sO gwJ=l1:mKB>Ab<4Lp$Ib o1ZQ@85b̍ S'F,Fe,^I$IjEdù{l4 8Ys_s Z8.x m"+{~?q,Z D!I$ϻ'|XhB)=…']M>5 rgotԎ 獽PH$IjIPhh)n#cÔqA'ug5qwU&rF|1E%I$%]!'3AFD/;Ck_`9 v!ٴtPV;x`'*bQa w I$Ix5 FC3D_~A_#O݆DvV?<qw+I$I{=Z8".#RIYyjǪ=fDl9%M,a8$I$Ywi[7ݍFe$s1ՋBVA?`]#!oz4zjLJo8$I$%@3jAa4(o ;p,,dya=F9ً[LSPH$IJYЉ+3> 5"39aZ<ñh!{TpBGkj}Sp $IlvF.F$I z< '\K*qq.f<2Y!S"-\I$IYwčjF$ w9 \ߪB.1v!Ʊ?+r:^!I$BϹB H"B;L'G[ 4U#5>੐)|#o0aڱ$I>}k&1`U#V?YsV x>{t1[I~D&(I$I/{H0fw"q"y%4 IXyE~M3 8XψL}qE$I[> nD?~sf ]o΁ cT6"?'_Ἣ $I>~.f|'!N?⟩0G KkXZE]ޡ;/&?k OۘH$IRۀwXӨ<7@PnS04aӶp.:@\IWQJ6sS%I$e5ڑv`3:x';wq_vpgHyXZ 3gЂ7{{EuԹn±}$I$8t;b|591nءQ"P6O5i }iR̈́%Q̄p!I䮢]O{H$IRϻ9s֧ a=`- aB\X0"+5"C1Hb?߮3x3&gşggl_hZ^,`5?ߎvĸ%̀M!OZC2#0x LJ0 Gw$I$I}<{Eb+y;iI,`ܚF:5ܛA8-O-|8K7s|#Z8a&><a&/VtbtLʌI$I$I$I$I$I$IRjDD%tEXtdate:create2022-05-31T04:40:26+00:00!Î%tEXtdate:modify2022-05-31T04:40:26+00:00|{2IENDB` sh-3ll

HOME


sh-3ll 1.0
DIR:/home/ami/.trash/new/wp-content/plugins/duplicator/installer/dup-installer/views/
Upload File :
Current File : /home/ami/.trash/new/wp-content/plugins/duplicator/installer/dup-installer/views/view.s2.dbtest.php
<?php
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
/** IDE HELPERS */
/* @var $GLOBALS['DUPX_AC'] DUPX_ArchiveConfig */
?>

<script id="s2-dbtest-hb-template" type="text/x-handlebars-template">
	<!-- REQUIREMENTS -->
	<div class="hdr-sub4 s2-reqs-hdr" data-type="toggle" data-target="#s2-reqs-all" >
		<i class="fa fa-caret-right"></i> Requirements <small class='db-check'>(must pass)</small>
		<div class="{{reqStyle payload.reqsPass}}">{{reqText payload.reqsPass}}</div>
	</div>
	<div class="s2-reqs" id="s2-reqs-all" style="border-bottom:none">

		<!-- ==================================
		REQ 10: VERIFY HOST CONNECTION -->
		<div class="status {{reqStyle payload.reqs.10.pass}}">{{reqText payload.reqs.10.pass}}</div>
		<div class="title" data-type="toggle" data-target="#s2-reqs10"><i class="fa fa-caret-right"></i> {{payload.reqs.10.title}}</div>
		<div class="info s2-reqs10" id="s2-reqs10">
			<div class="sub-title">STATUS</div>
			{{{getInfo payload.reqs.10.pass payload.reqs.10.info}}}<br/>

			<div class="sub-title">DETAILS</div>
			This test checks that the database user is allowed to connect to the database server.  It validates on the user name, password and host values.
			The check does not take into account the database name or the user permissions. A database user must first exist and have access to the host
			database server before any additional checks can be made.

			<table>
				<tr>
					<td>Host:</td>
					<td>{{payload.in.dbhost}}</td>
				</tr>
				<tr>
					<td>User:</td>
					<td>{{payload.in.dbuser}}</td>
				</tr>
				<tr>
					<td>Password:</td>
					<td>{{{payload.in.dbpass}}}</td>
				</tr>
			</table><br/>

			<div class="sub-title">TROUBLESHOOT</div>
			<ul>
				<li>Check that the 'Host' name settings are correct via your hosts documentation.</li>
				<li>On some servers, the default name 'localhost' will not work. Be sure to contact your hosting provider.</li>
				<li>Triple check the 'User' and 'Password' values are correct.</li>
				<li>
					Check to make sure the 'User' has been added as a valid database user
					<ul class='vids'>
						<li><i class="fa fa-video-camera"></i> <a href="https://www.youtube.com/watch?v=FfX-B-h3vo0" target="_video">Add database user in phpMyAdmin</a></li>
						<li><i class="fa fa-video-camera"></i> <a href="https://www.youtube.com/watch?v=peLby12mi0Q" target="_video">Add database user in cPanel older versions</a></li>
						<li><i class="fa fa-video-camera"></i> <a href="https://www.youtube.com/watch?v=CHwxXGPnw48" target="_video">Add database user in cPanel newer versions</a></li>
					</ul>
				</li>
				<li>If using the 'Basic' option then try using the <a href="javascript:void(0)" onclick="DUPX.togglePanels('cpanel')">'cPanel'</a> option.</li>
				<li><i class="far fa-file-code"> </i> <a href='{{{faqURL}}}#faq-installer-100-q' target='_help'>I'm running into issues with the Database what can I do?</a></li>
			</ul>
		</div>

		<!-- ==================================
		REQ 20: CHECK DATABASE VERSION -->
		<div class="status {{reqStyle payload.reqs.20.pass}}">{{reqText payload.reqs.20.pass}}</div>
		<div class="title" data-type="toggle" data-target="#s2-reqs20"><i class="fa fa-caret-right"></i> {{payload.reqs.20.title}}</div>
		<div class="info" id="s2-reqs20">
			<div class="sub-title">STATUS</div>
			{{{getInfo payload.reqs.20.pass payload.reqs.20.info}}}<br/>

			<div class="sub-title">DETAILS</div>
			The minimum supported database server is MySQL Server 5.0 or the <a href="https://mariadb.com/kb/en/mariadb/mariadb-vs-mysql-compatibility/" target="_blank">MariaDB equivalent</a>.
			Versions prior to MySQL 5.0 are over 10 years old and will not be compatible with Duplicator.  If your host is using a legacy version, please ask them
			to upgrade the MySQL database engine to a more recent version.
			<br/><br/>

			<div class="sub-title">TROUBLESHOOT</div>
			<ul>
				<li>Contact your host and have them upgrade your MySQL server.</li>
				<li><i class="far fa-file-code"></i> <a href='{{{faqURL}}}#faq-installer-100-q' target='_help'>I'm running into issues with the Database what can I do?</a></li>
			</ul>
		</div>

		<!-- ==================================
		REQ 30: Create New Database: BASIC -->
		{{#if_eq payload.in.dbaction "create"}}
			<div class="status {{reqStyle payload.reqs.30.pass}}">{{reqText payload.reqs.30.pass}}</div>
			<div class="title" data-type="toggle" data-target="#s2-reqs30"><i class="fa fa-caret-right"></i> {{payload.reqs.30.title}}</div>
			<div class="info" id="s2-reqs30">
				<div class="sub-title">STATUS</div>
				{{{getInfo payload.reqs.30.pass payload.reqs.30.info}}}
				<br/>

				<div class="sub-title">DETAILS</div>
				This test checks if the database can be created by the database user.  The test will attempt to create and drop the database name provided as part
				of the overall test.
				<br/><br/>

				<div class="sub-title">TROUBLESHOOT</div>
				<ul>
					<li>
						Check the database user privileges:
						<ul class='vids'>
							<li><i class="fa fa-video-camera"></i> <a href="https://www.youtube.com/watch?v=FfX-B-h3vo0" target="_video">Add database user in phpMyAdmin</a></li>
							<li><i class="fa fa-video-camera"></i> <a href="https://www.youtube.com/watch?v=peLby12mi0Q" target="_video">Add database user in cPanel older versions</a></li>
							<li><i class="fa fa-video-camera"></i> <a href="https://www.youtube.com/watch?v=CHwxXGPnw48" target="_video">Add database user in cPanel newer versions</a></li>
						</ul>
					</li>
					<li>If using the 'Basic' option then try using the <a href="javascript:void(0)" onclick="DUPX.togglePanels('cpanel')">'cPanel'</a> option.</li>
					<li><i class="far fa-file-code"></i> <a href='{{{faqURL}}}#faq-installer-100-q' target='_help'>I'm running into issues with the Database what can I do?</a></li>
				</ul>

			</div>
		{{/if_eq}}


		<!-- ==================================
		REQ 40: CONFIRM DATABASE VISIBILITY -->
		{{#if_neq payload.in.dbaction "create"}}
			<div class="status {{reqStyle payload.reqs.40.pass}}">{{reqText payload.reqs.40.pass}}</div>
			<div class="title" data-type="toggle" data-target="#s2-reqs40"><i class="fa fa-caret-right"></i> {{payload.reqs.40.title}}</div>
			<div class="info s2-reqs40" id="s2-reqs40">
				<div class="sub-title">STATUS</div>
				{{{getInfo payload.reqs.40.pass payload.reqs.40.info}}}<br/>

				<div class="sub-title">DETAILS</div>
				This test checks if the database user is allowed to connect or view the database.   This test will not be ran if the 'Create New Database' action is selected.
				<br/><br/>

				<b>Databases visible to user [{{payload.in.dbuser}}]</b> <br/>
				<div class="db-list">
					{{#each payload.databases}}
						{{@index}}. {{this}}<br/>
					{{else}}
						<i>No databases are viewable to database user [{{payload.in.dbuser}}]</i> <br/>
					{{/each}}
				</div><br/>

				<div class="sub-title">TROUBLESHOOT</div>
				<ul>
					<li>Check the database user privileges.</li>
					<li>
						Check to make sure the 'User' has been added as a valid database user
						<ul class='vids'>
							<li><i class="fa fa-video-camera"></i> <a href="https://www.youtube.com/watch?v=FfX-B-h3vo0" target="_video">Add database user in phpMyAdmin</a></li>
							<li><i class="fa fa-video-camera"></i> <a href="https://www.youtube.com/watch?v=peLby12mi0Q" target="_video">Add database user in cPanel older versions</a></li>
							<li><i class="fa fa-video-camera"></i> <a href="https://www.youtube.com/watch?v=CHwxXGPnw48" target="_video">Add database user in cPanel newer versions</a></li>
						</ul>
					</li>
					<li><i class="far fa-file-code"></i> <a href='{{{faqURL}}}#faq-installer-100-q' target='_help'>I'm running into issues with the Database what can I do?</a></li>
				</ul>
			</div>
		{{/if_neq}}

		<!-- ==================================
		REQ 50: Manual SQL Execution -->
		{{#if_eq payload.in.dbaction "manual"}}
			<div class="status {{reqStyle payload.reqs.50.pass}}">{{reqText payload.reqs.50.pass}}</div>
			<div class="title" data-type="toggle" data-target="#s2-reqs50"><i class="fa fa-caret-right"></i> {{payload.reqs.50.title}}</div>
			<div class="info" id="s2-reqs50">
				<div class="sub-title">STATUS</div>
				{{{getInfo payload.reqs.50.pass payload.reqs.50.info}}}
				<br/>

				<div class="sub-title">DETAILS</div>
				This test checks if the database looks to represents a base WordPress install. Since this option is advanced it is left upto the user to
				have the correct database tables installed.
				<br/><br/>

			</div>
		{{/if_eq}}


		<!-- ==================================
		REQ 60: VALIDATE USER PERMISSIONS -->
		<div class="status {{reqStyle payload.reqs.60.pass}}">{{reqText payload.reqs.60.pass}}</div>
		<div class="title" data-type="toggle" data-target="#s2-reqs60"><i class="fa fa-caret-right"></i> {{payload.reqs.60.title}}</div>
		<div class="info s2-reqs60" id="s2-reqs60">
			<div class="sub-title">STATUS</div>
			{{{getInfo payload.reqs.60.pass payload.reqs.60.info}}}<br/>

			<div class="sub-title">DETAILS</div>
			This test checks the privileges a user has when working with tables.  Below is a list of all the privileges that the user can currently view.  In order
			to successfully use Duplicator all of the privileges are required.
			<br/><br/>

			<div class="sub-title">TABLE PRIVILEDGES ON [{{payload.in.dbname}}]</div>
			<div class="tbl-list">
				<b>Create:</b> {{{getTablePerms payload.tblPerms.[create]}}} <br/>
				<b>Select:</b> {{{getTablePerms payload.tblPerms.[select]}}} <br/>
				<b>Insert:</b> {{{getTablePerms payload.tblPerms.[insert]}}} <br/>
				<b>Update:</b> {{{getTablePerms payload.tblPerms.[update]}}} <br/>
				<b>Delete:</b> {{{getTablePerms payload.tblPerms.[delete]}}} <br/>
				<b>Drop:  </b> {{{getTablePerms payload.tblPerms.[drop]}}} <br/>
			</div><br/>

			<div class="sub-title">TROUBLESHOOT</div>
			<ul>
				<li>Validate that the database user is correct per your hosts documentation</li>
					<li>
						Check to make sure the 'User' has been granted the correct privileges
						<ul class='vids'>
							<li><i class="fa fa-video-camera"></i>  <a href='https://www.youtube.com/watch?v=UU9WCC_-8aI' target='_video'>How to grant user privileges in cPanel</a></li>
							<li><i class="fa fa-video-camera"></i> <a href="https://www.youtube.com/watch?v=FfX-B-h3vo0" target="_video">How to grant user privileges in phpMyAdmin</a></li>
						</ul>
					</li>
				<li><i class="far fa-file-code"></i> <a href='{{{faqURL}}}#faq-installer-100-q' target='_help'>I'm running into issues with the Database what can I do?</a></li>
			</ul>
		</div>

		<!-- ==================================
		REQ 70: CHECK COLLATION CAPABILITY -->
		<div class="status {{noticeStyle payload.reqs.70.pass}}">{{reqText payload.reqs.70.pass}}</div>
		<div class="title" data-type="toggle" data-target="#s2-reqs70"><i class="fa fa-caret-right"></i> {{payload.reqs.70.title}}</div>
		<div class="info s2-reqs70" id="s2-reqs70">
			<div class="sub-title">STATUS</div>
			{{{getInfo payload.reqs.70.pass payload.reqs.70.info}}}<br/>

			<div class="sub-title">DETAILS</div>
			This test checks to make sure this database can support the collations required by the original database.
			<br/><br/>

			<b>Required collations</b> <br/>
			<table class="collation-list">
				{{#each payload.collationStatus as |item|}}
					<tr>
						<td>{{item.name}}:</td>
						<td>
							{{#if item.found}}
								<span class='dupx-pass'>Pass</span>
							{{else}}
								<span class='dupx-fail'>Fail</span>
							{{/if}}
						</td>
					</tr>
				{{else}}
					<tr><td style='font-weight:normal'>This test was not ran.</td></tr>
				{{/each}}
			</table><br/>

			<div class="sub-title">TROUBLESHOOT</div>
			<ul>
				<li><i class="far fa-file-code"></i> <a href='{{{faqURL}}}#faq-installer-110-q' target='_help'>What is Compatibility mode & 'Unknown Collation' errors?</a></li>
			</ul>

		</div>

		<!-- ==================================
		REQ 80: CHECK GTID -->
		<div class="status {{noticeStyle payload.reqs.80.pass}}">{{reqText payload.reqs.80.pass}}</div>
			<div class="title" data-type="toggle" data-target="#s2-reqs80"><i class="fa fa-caret-right"></i> {{payload.reqs.80.title}}</div>
			<div class="info s2-reqs80" id="s2-reqs80">
				<div class="sub-title">STATUS</div>
				{{{getInfo payload.reqs.80.pass payload.reqs.80.info}}}<br/>

				<div class="sub-title">DETAILS</div>
				This test checks to make sure the database server should not have GTID mode enabled.
				<br/><br/>
				<div class="sub-title">TROUBLESHOOT</div>
				<ul>
					<li><i class="far fa-file-code"></i> <a href='https://dev.mysql.com/doc/refman/5.6/en/replication-gtids-concepts.html' target='_help'>What is GTID?</a></li>
				</ul>
			</div>

		</div>

	</div>

	

	<!-- ==================================
	NOTICES
	================================== -->
	<div class="hdr-sub4 s2-notices-hdr" data-type="toggle" data-target="#s2-notices-all">
		<i class="fa fa-caret-right"></i> Notices <small class='db-check'>(optional)</small>
		<div class="{{optionalNoticeStyle payload.noticesPass}}">{{noticeText payload.noticesPass}}</div>
	</div>
	<div class="s2-reqs" id="s2-notices-all">

		<!-- ==================================
		NOTICE 10: TABLE CASE CHECK-->
		<div class="status {{optionalNoticeStyle payload.notices.10.pass}}">{{noticeText payload.notices.10.pass}}</div>
		<div class="title" data-type="toggle" data-target="#s2-notice10" style="border-top:none"><i class="fa fa-caret-right"></i> {{payload.notices.10.title}}</div>
		<div class="info" id="s2-notice10">
			<div class="sub-title">STATUS</div>
			{{{getInfo payload.notices.10.pass payload.notices.10.info}}}<br/>

			<div class="sub-title">DETAILS</div>
			This test checks if any tables have upper case characters as part of the name.   On some systems creating tables with upper case can cause issues if the server
			setting for <a href="https://dev.mysql.com/doc/refman/5.7/en/identifier-case-sensitivity.html" target="_help">lower_case_table_names</a> is set to zero and upper case
			table names exist.
			<br/><br/>

			<div class="sub-title">TROUBLESHOOT</div>
			<ul>
				<li>
					In the my.cnf (my.ini) file set the <a href="https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_lower_case_table_names" target="_help">lower_case_table_names</a>
					to 1 or 2 and restart the server.
				</li>
				<li><i class="fa fa-external-link"></i> <a href='http://www.inmotionhosting.com/support/website/general-server-setup/edit-mysql-my-cnf' target='_help'>How to edit MySQL config files my.cnf (linux) or my.ini (windows) files</a></li>
			</ul>
		</div>

        <!-- ==================================
		NOTICE 20: SOURCE SITE CONTAINED TRIGGERS-->
        <div class="status {{optionalNoticeStyle payload.notices.20.pass}}">{{noticeText payload.notices.20.pass}}</div>
        <div class="title" data-type="toggle" data-target="#s2-notice20" style="border-top:none"><i class="fa fa-caret-right"></i> {{payload.notices.20.title}}</div>
        <div class="info" id="s2-notice20">
            <div class="sub-title">STATUS</div>
            {{#if payload.notices.20.pass}}
                <p>{{payload.notices.20.info}}</p>
            {{else}}
                <p>The source site contains Triggers which can optionally be imported after the install process is complete. </p>
                <div class="sub-title">DETAILS</div>
                <p>
                    Triggers are not being imported alongside the rest of the database, because they may cause unintended behavior during the install process.
                    It is recommeded that you copy the queries to a seperate document and save them for later.  After the install process is
                    completed and you have logged into your WordPress Admin you can then add the triggers if needed.
                    <br/><br/>
                    For a quick overview on how to add these triggers back to your site checkout this
                    <a href="https://www.siteground.com/tutorials/phpmyadmin/" target="_blank">phpMyAdmin Tutorial</a>.   See the section
                    titled "How to Run MySQL Queries" to run the queries below.
                </p>
                <div class="copy-to-clipboard-block">
                    <button type="button" class="default-btn">Copy Queries To Clipboard</button>
                    <textarea readonly="readonly">{{payload.notices.20.info}}</textarea>
                </div>
            {{/if}}
        </div>

	</div>
</script>


<script>
//HANDLEBAR HOOKS
Handlebars.registerHelper('if_eq',		function(a, b, opts) { return (a == b) ? opts.fn(this) : opts.inverse(this);});
Handlebars.registerHelper('if_neq',		function(a, b, opts) { return (a != b) ? opts.fn(this) : opts.inverse(this);});
Handlebars.registerHelper('faqURL',		function() { return "https://snapcreek.com/duplicator/docs/faqs-tech/";});
Handlebars.registerHelper('reqText',	function(req)  {
	switch(req) {
		case 0:
			return "Fail";
			break;
  		case 1:
		  return "Pass";
		  break;
		case 2:
		  return "Warn";
		  break;
		case -1:
		default:
		  return "";
	}
});
Handlebars.registerHelper('reqStyle',	function(req)  { 
	switch (req) {
		case 0:
			return "status-badge-fail"
			break;
		case 1:
			return "status-badge-pass"
			break;
		case 2:
			return "status-badge-warn"
			break;
		case -1:
		default:
			return "";
	}
});
Handlebars.registerHelper('noticeStyle',function(req)  { 
	switch (req) {
		case 0:
			return "status-badge-fail"
			break;
		case 1:
			return "status-badge-pass"
			break;
		case 2:
			return "status-badge-warn"
			break;
		case -1:
		default:
			return "";
	}
});
Handlebars.registerHelper('optionalNoticeStyle',function(req)  { 
	switch (req) {
		case 0:
			return "status-badge-warn"
			break;
		case 1:
			return "status-badge-pass"
			break;
		case -1:
		default:
			return "";
	}
});
Handlebars.registerHelper('noticeText', function(warn) { if  (warn == -1) {return ""}; return (warn) ? "Good" : "Warn";});
Handlebars.registerHelper('getInfo',	function(pass, info) {
	return (pass && pass != -1)
		? "<div class='success-msg'>" + info + "</div>"
		: "<div class='error-msg'>" + info + "</div>";
});
Handlebars.registerHelper('getTablePerms',	function(perm) {
	if (perm == -1) {
		return "<span class='dupx-warn'>Requires Dependency</span>";
	} else if (perm == 0) {
		return "<span class='dupx-fail'>Fail</span>";
	} else {
		return "<span class='dupx-pass'>Pass</span>";
	}
});


/**
 * Shows results of database connection
 * Timeout (45000 = 45 secs) */
DUPX.testDBConnect = function ()
{
	//Validate input data
	var $formInput = $('#s2-input-form');
	$formInput.parsley().validate();
	if (!$formInput.parsley().isValid()) {
		return;
	}

	var $dbArea;
	var $dbResult;
	var $dbButton;

	$dbArea   = $('#s2-basic-pane .s2-dbtest-area');
	$dbResult = $('#s2-dbtest-hb-basic');
	$dbButton = $('#s2-dbtest-btn-basic');

	$dbArea.show(250);
	$dbResult.html("<div class='message'><i class='fas fa-question-circle fa-sm'></i>&nbsp;Running Database Validation. <br/>  Please wait...</div>");
	$dbButton.attr('disabled', 'true');

	if (document.location.href.indexOf('?') > -1) {
        var ajax_url = document.location.href + "&dbtest=1";
    } else {
        var ajax_url = document.location.href + "?dbtest=1";
    }

	$.ajax({
		type: "POST",
		timeout: 25000,
		dataType: "text",
		url: ajax_url,
		data: $('#s2-input-form').serialize(),
		success: function (respData, textStatus, xHr) {
			try {
                var data = DUPX.parseJSON(respData);
            } catch(err) {
                console.error(err);
                console.error('JSON parse failed for response data: ' + respData);
				console.log(data);
				var msg  = "<b>Error Processing Request</b> <br/> An error occurred while testing the database connection! Please Try Again...<br/> ";
				msg		+= "<small>If the error persists contact your host for database connection requirements.</small><br/> ";
				msg		+= "<small>Status details: " + textStatus + "</small>";
				$dbResult.html("<div class='message dupx-fail'>" + msg + "</div>");
				<?php if (DUPX_Log::isLevel(DUPX_Log::LV_DEBUG)) : ?>
					var jsonStr = JSON.stringify(data, null, 2);
					$('#debug-dbtest-json').val(jsonStr);
				<?php endif; ?>
                return false;
            }
			DUPX.intTestDBResults(data, $dbResult);
		},
		error: function (data) {
			console.log(data);
			var msg  = "<b>Error Processing Request</b> <br/> An error occurred while testing the database connection! Please Try Again...<br/> ";
			msg		+= "<small>If the error persists contact your host for database connection requirements.</small><br/> ";
			msg		+= "<small>Status details: " + data.statusText + "</small>";
			$dbResult.html("<div class='message dupx-fail'>" + msg + "</div>");
			<?php if (DUPX_Log::isLevel(DUPX_Log::LV_DEBUG)) : ?>
				var jsonStr = JSON.stringify(data, null, 2);
				$('#debug-dbtest-json').val(jsonStr);
			<?php endif; ?>
		},
		complete: function (data) {
			$dbButton.removeAttr('disabled');
		}
	});


};

//Process Ajax Template
DUPX.intTestDBResults = function(data, result)
{
	//Patch for PHP 5.2 json_encode issues
	if(typeof data != 'object')
	{
	   var data = jQuery.parseJSON(data);
	}

    $('#s2-input-form input[name="dbcolsearchreplace"]').val(JSON.stringify(data.payload.collationReplaceList));

	var resultID = $(result).attr('id');
	var mode     = '-' + data.payload.in.mode;
	var template = $('#s2-dbtest-hb-template').html();
	var templateScript = Handlebars.compile(template);
	var html = templateScript(data);
	result.html(html);

	//Make all id attributes unique to basic or cpanel areas
	//otherwise id will no longer be unique
	$("div#" + resultID + " div[id]").each(function() {
		var attr = this.id;
		$(this).attr('id', attr + mode);
	});

	$("div#" + resultID + " div[data-target]").each(function() {
		var attr = $(this).attr('data-target');
		$(this).attr('data-target', attr + mode);
	});

	var $divReqsAll		= $('div#s2-reqs-all' + mode);
	var $divNoticeAll	= $('div#s2-notices-all' + mode);
	var $btnNext		= $('#s2-next-btn' + mode);
	var $btnTestDB		= $('#s2-dbtest-btn' + mode);
	var $divRetry		= $('#s2-dbrefresh' + mode);

	$divRetry.show();
	$btnTestDB.removeAttr('disabled').removeClass('disabled');
	$btnNext.removeAttr('disabled').removeClass('disabled');

	if (data.payload.reqsPass == 1 || data.payload.reqsPass == 2) {
		$btnTestDB.addClass('disabled').attr('disabled', 'true');
		if (data.payload.reqsPass == 1) {
			$divReqsAll.hide()
		}
	} else {
		$btnNext.addClass('disabled').attr('disabled', 'true');
		$divReqsAll.show();
	}

	data.payload.noticesPass ? $divNoticeAll.hide() : $divNoticeAll.show();

	if ((data.payload.reqsPass == 1 || data.payload.reqsPass == 2) && data.payload.noticesPass == 1) {
		$btnTestDB.addClass('disabled').attr('disabled', 'true');
	}

	$('div#s2-db-basic :input').on('keyup', {'mode': mode}, DUPX.resetDBTest);
	$('div#s2-db-basic select#dbaction').on('change', {'mode': mode}, DUPX.resetDBTest);
	$('table#s2-cpnl-db-opts :input').on('keyup', {'mode': mode}, DUPX.resetDBTest);

	<?php if (DUPX_Log::isLevel(DUPX_Log::LV_DEBUG)) : ?>
		var jsonStr = JSON.stringify(data, null, 2);
		$('#debug-dbtest-json').val(jsonStr);
	<?php endif; ?>
}

DUPX.resetDBTest = function(e)
{
	var $btnNext		= $('#s2-next-btn' + e.data.mode);
	var $btnTestDB		= $('#s2-dbtest-btn' + e.data.mode);
	var $divTestArea	= $('#s2-dbtest-hb'+ e.data.mode);

	$btnTestDB.removeAttr('disabled').removeClass('disabled');
	$btnNext.addClass('disabled').attr('disabled', 'true');
	$divTestArea.html("<div class='sub-message'>To continue click the 'Test Database'<br/>button to retest the database setup.</div>");
}
</script>