empty; `null` otherwise. */ function array_key_first( array $array ) { // phpcs:ignore Universal.NamingConventions.NoReservedKeywordParameterNames.arrayFound foreach ( $array as $key => $value ) { return $key; } } } if ( ! function_exists( 'array_key_last' ) ) { /** * Polyfill for `array_key_last()` function added in PHP 7.3. * * Get the last key of the given array without affecting the * internal array pointer. * * @since 5.9.0 * * @param array $array An array. * @return string|int|null The last key of array if the array *. is not empty; `null` otherwise. */ function array_key_last( array $array ) { // phpcs:ignore Universal.NamingConventions.NoReservedKeywordParameterNames.arrayFound if ( empty( $array ) ) { return null; } end( $array ); return key( $array ); } } if ( ! function_exists( 'str_contains' ) ) { /** * Polyfill for `str_contains()` function added in PHP 8.0. * * Performs a case-sensitive check indicating if needle is * contained in haystack. * * @since 5.9.0 * * @param string $haystack The string to search in. * @param string $needle The substring to search for in the `$haystack`. * @return bool True if `$needle` is in `$haystack`, otherwise false. */ function str_contains( $haystack, $needle ) { if ( '' === $needle ) { return true; } return false !== strpos( $haystack, $needle ); } } if ( ! function_exists( 'str_starts_with' ) ) { /** * Polyfill for `str_starts_with()` function added in PHP 8.0. * * Performs a case-sensitive check indicating if * the haystack begins with needle. * * @since 5.9.0 * * @param string $haystack The string to search in. * @param string $needle The substring to search for in the `$haystack`. * @return bool True if `$haystack` starts with `$needle`, otherwise false. */ function str_starts_with( $haystack, $needle ) { if ( '' === $needle ) { return true; } return 0 === strpos( $haystack, $needle ); } } if ( ! function_exists( 'str_ends_with' ) ) { /** * Polyfill for `str_ends_with()` function added in PHP 8.0. * * Performs a case-sensitive check indicating if * the haystack ends with needle. * * @since 5.9.0 * * @param string $haystack The string to search in. * @param string $needle The substring to search for in the `$haystack`. * @return bool True if `$haystack` ends with `$needle`, otherwise false. */ function str_ends_with( $haystack, $needle ) { if ( '' === $haystack ) { return '' === $needle; } $len = strlen( $needle ); return substr( $haystack, -$len, $len ) === $needle; } } // IMAGETYPE_WEBP constant is only defined in PHP 7.1 or later. if ( ! defined( 'IMAGETYPE_WEBP' ) ) { define( 'IMAGETYPE_WEBP', 18 ); } // IMG_WEBP constant is only defined in PHP 7.0.10 or later. if ( ! defined( 'IMG_WEBP' ) ) { define( 'IMG_WEBP', IMAGETYPE_WEBP ); } }ےȕ*!EHMxg]zՒɭmww(@4.*Gi/ ?8nK4>~X ~!y%Q@a/]_}@V[C'qͅ/B@@Fjmu! Q[nEӻ"JVhމ(&KxդS5ٺ|(S[MKZ_>4'`/yh\q+0tFa:cOCeֲ M$o[qmAb|/kz Pvu-u<[No`F fEO|+thG?VSו/^ ("j^b QtmASa,չX_(ޥxg%|ph\@'.KyYJc1Vc7+<&ZyXG y;M}T-CPBTݺy㭇nB$8s B||=oŶ^h\n5cj^?4+H^9!3|/ct߭Րc0 걉/Ԕ,W 4M9`i;o`Z譳~:A#G9姤}ivo>=ƃO9E0 m?88xj+OKCx; BG5δhû%0S,+ow{'`0tn:aisM3MX0VK 'G% Y}K.wUcs :`9vx6P q\JNy4/xo)Cŀ"O"wנf7 qMmfwa^NC$&fwuvXوRw#Guy4i>.+.j^ہ#."E:mۇ2U &Ѥ3M|Z^J |nD+nTaùwlztІt]A4jA B(.-Pw e2[}ĩFi %TT`(QH$ gPH˛_n,u/f|u޿Bs s.Q}dZVeAsr?e9T8-PX'fDG`Ȭe2Zdl`q ;VVhV)E2CA}ZSFSfaOpjWv W%/^CwEࡽ`Մ=> TC(4u`vQ!>@A^NN"+Tޛ.¦%H!a J L轺%[5`ZN0t&ȊƔpo/ ̺r@Kk <&Ѫ9 1//vlu%Q昄|76@ӪZ%1zט[zb8µ)Uk(ww(k;J[@5K 1XƕZ(wWFef6?Sm>T9w*MB#XF"4IL#;csLtdw볟.<3>ϊa|kV  z3KX>$R璆x[2CgXĞn/ d ORécOQ_n1]#THH8̾v11wŖ:WI0x7E9@7`C[@UaViv7m7l[ְm4UHl~{dBbŰJ8]vMӲ6GFh[ƨmvרREշ~ŀ}_*q/R$\$_@`vo7!ǨRVnk*_16A!S.h%8L"W+sf۴-f%"i@h'caaei7jo $wsp0(Po Qi%6vxrv&`2dz}k~d:$XMY(c+<;1zj-nGs#̓ec}dnlC}tmLii٥6h:5^ R4xt2L"p- #mk&tAYuhd6aul=k#plYƄz°wK.e ҃,5^_c9,2,];&ucP"̚8 9TYpԟnUk1-Np8G}to[iW9溲[1IZ锋k<v܆Z%zeCF~.t#vtzμc_4e)@?34~N o*h4^P# D-L61P1S Ƶ&37b⻞S|ނ``UPUfnvF᫔esL Ů࢞2qQ~QK1<Т(96dy9'wGyk`ddk`eaek`Շv[[f2v+TC5#Jr6c{EVh+ W*@mjjL-]lfqْ`۝=" -lݫrugǞݝQdo~܋ͻm-`nuGv ȷir7[vw۰ຍuUenj{٪[5E_s n#NéE8eJXS~%bjN/K>/g ߐe/5".B ,|']P_,Br f:|ezdp-̑mIג@?ԴbyF?tB͞4Ђu안·GL. }@h{D0Pwj!%\y\Mg>̳qDX`?觫F ǍG߽}n(l}X} 0Cԉ8AX81yN&S?9IOXLD"}r=/W$:e@WYcFLBKX__-HG{Ixx5YPJL=~dtG Ǥlo+4'z(p7=R ,u:k;p,mζԺv>;&m̖<"=OE0Ő*/$k:wx0Q0։V0Xփ&Z͢M3N"L\@Q O_EݕF#Bśjʣ%w[,2):Qc @"zqycJFE!SQ9 ;_p_3,9<$Lͳe2gns3\ U߆i䠎57H\c[T"EY>.=bU ? 2R*FD Nཆw%+SЊsA>VU!w09q_yOA [q<GD)^IʫF(<_!^atXjr2p/sUfYVc*(j,34zXaRS{ PQL\pGE! Pd>iJQp]~\*Lc3WxNtSbS*^HKlE_% uL8UsmMtcʬHT2҉t@%UIAyԭLVLiA8gV=#;cwK<ًɷ6|ي c5q%PPko ^0ߏS^Q{O[aA ~7psՃ?@-]_v2C樘- mp_P?Ux=,xwnfW1b#?[i4{`i 2 iՇy(s!G!0:ˠ*~nAn5ԇ eoRJqNhrZQT |x,j O7kAX j`/t@,y!]J ,0OvnS9!G"tãN)>_}o:KMVg` v@3o݂`(gWŧ| ;1zߺC,O7G̐7Cq\=Tg s~E7Qm|^&( Pot ? '|>$ E:6B,pIQ˞rG \#F+cP5xPdZ>HyaV. 5*&w׾8נX!kB姗Pf?8xF˰k#%2Azb'`F VdYrsc HZN4 qRD,sm3Ԡ0R804R.L^R%9or} ХVy(14œF+T1Dp${@gry ܷl&b{n|C ]pgnG3٨GຆqfF o0Hv `LXBaHRJ?ac\c_5N~eEW dL-QQs>NCHPu{!rSuʦ N:ZQ4o!OE@!е &Nf~p!0\Gu]볾֏eF _l*chڲ h/́ HhP3ך%(.A'f>)V`eB Mih^ .NeuQ598vKnZVKSG \#xUNlKD7@M}@ꖙ/pfQ{0ڗ*?Z7]xꂥ532Ԝ5uP i {H ֠LfgDTf4\kCAUueGxz*|Q'r\Ò&8>n"hYR'ft'XŮXNC6ÌxRHGXDfp&AЌ= @ᡞ6Mb诧ASe7}d?{-]ݔ! 2, ?F.>Ba%hնf2O +j:Rɔtwk vQm:(1vCQN6t}N(@\w\(!̱7bGQ 9{HfO3(Z7c/<}>uQPD~+>%9`~ۜ:` M?%. (C$`0 H u<x]3:4]$6)bz+X,ep[w~<TȐQZ͋$ V$t  .@}'mvyG?*"twzoW'a`|LOR^%$`Q‚)%agl3?X '8;QJrYgB  ,kx-O@[VFTF&1𕳃LNOHC*2AB6bw  p J>Kl%`L Xى-1ԍ!r>0.o!#s@"{H@*xd'Tgb(yBIjxj%1i=&ЕlPD 4'eԯHZI)U4L!wX )Q^ᬥ>&%楺@]t KZ%%omʀΝAGJ/޸E2CM=fsSE0[M0С2Po@cfzʐ> L=^n+#<0II| ]^ߢtsRg!-bVy|%؍fZ{ŵbb 5LUAQka{WnUUň^!FlX?w gn~!8q8*pXүFP*e+;K>e(92:k|Z`#Z^9G(/+6{7 G; ,+AMJutѬK풳$j.tЩ.{L ޑ*׈9OH{G@`ðHsmd<M0omۅ8ؕ5.q)lS~f5Yk>E&W}Pql$0KN^PÐT_R10Z R0q"!8CB:gial,{A]P WŠYmc) Gj%9岃se{w#e.C9EA=R g[*WgEaz~lVpb)$@q<].ZB"J`7{60H%^r |1@%s#{1^6t@8kU&rZ$ʉW"ꥨ]]r+Zsz4MԓA32@ zC ޽>B 4Cp\v%|A\ !aDJ"|gt]25hWoUK@@p^1,@ 'qW_t ]w^V q>TAjv Zؖ4ǽa-} {BUqĜtPO ;;{-t4|:HǠ4mH)%L V?-;Q6)`g!/iR%Рf[)^޺╽_'OǎipCq ?$+\XJ:b(#8y_v@uM۶I7v4 YJ[&vi;u=k6A]Q0\23L!QKps[Э[pz^ H9n-^GkxlB[ gB86b`WOIV䖀HAK.ܓAǰ_ sG8X3(4UkLdoxku%xx]z7]dAtإ=9kAHf1 CQa9k-m@Rtn@[lXj=K>d |׻f/-%, iX04:oܴtkDH[[V$j ]iM+ΊՖNwh}o-=v迂 ZR-K_ImћReG^m]sތߣLfEn+dtT?ε 醳9BE,.bemvC̶=gyöef={oOqg 6MtjwvE)v v'gܢ߭UQNv.]7C⾻Ѥk06R *ai9/TmkE*{kpbGP+-[oG8o1{6!ߛ߶ z>е6vk[]Nv~vM۫wφ1xg`eN?.[8g2'ޤ;(c<P2+Vn.I޿P}z9{=Cl7g0 KM\N5Ȗw-kb 'ƨ O7_rf(ϸR tDvUH3k0brJi3gfKwE+H47~.hox*62Z 4=PWv6;Fu0lܮH;!$w^'80rP}E7=WN7aB/eju. mP$fX 8bQn/?|P /{1i_/{H wyB (S];7MKd.''w8W8 ^ 'O|-洳 mr.x: $UI뿨4Nu QؚZ26sh~e+Aytqv?H08қ|$:A _.HpS96OLհ{^lrxX +_Q619С)2,+` K)<F$%`#NNu:;>'"TśոMeo$.q?l~./‮ؠ+z䕃rVEwQ!tØ_Y1pܷ#/xdÁ1z~f4 c+hLz1`?WIh^\QTQy߿nB qfaoFݎitPsO 2Zck4}NO&?ۍ\- 77mlk.*vo^9)gݚz_򻺽z_:WqܜդixeZq-nJ|}c z mGF2Wj@+{xfm ::)K`?`x_q5ʇ:q?<_-x^9議EC{%坩'HҪҫR:E;f^Vq𰫲Z2ڠ lWUi٤{+.*51 =5Ia%s9؝[x/-' f! =h9`SL#$@8 l-8: r谍h.nsJ]~={*;ǝt.gdW}g>:7Okxg6O_;>z?RF+U?Gw{(gӰڬw˓w׫% / #V7 dn8y) _Y5TOE~@ͽ8jlvn|(䃚WO$ ~U't!:|TOMB]KYHdג&[<d =[s.},܏F/PRǼ{L nFśv-Fom kēKv-J"kQ8tds y.]vd@]-Sjp\3ed>2,ٶxKgA40>ij|v^OkįE<ܳ}\9[:g: {HO>ڦin{Td-]IGu0v{r+N7] @:~ֻQ,)iNU\I^}V`2qr;zóO=spМ%>8x0X9ώظ>֡{ :i2YAZ>txfM4G?)v|L\P:p./n"cmB9;@gS n<ω rkK7hRCPX~Ft9\zOk2ڞaטAi̠ÚUNz]!_6545< Kg!bh+Yh ҵ~תU87Քko VCCȦ?`(Pe3Wʅw`@(BOHq8K/R=y;?@K4 s2I8@Q>$⋃7"[;qw~vAc "+C