1iv11i[116111ܞ1$11N.? 1211 %1up)1 41371~D1H1R1*X2Ta!.e1}t1`x1Ѱ1hE11̓16Ԟ11[1f1ԅ1'1&O1c111w111~1_m/?' 1- 1f1Zw"1m'111K51?1C1{N1Q1]1a1.Dl1n1x1i\}11w1z_1v1F1o1yٳ1 a11 1÷1,j1g1191//1F,1! 0? 111 '21ߖ61 F1K1c(Y1%]1k1p1.11椗1AP1=1s1S1}1]2!111| 1?1c"1'1=418:1G1bL13+Z1^1sm1|Tq1X111ɟ1<111z1j118L1;1@1&@ 2?[ 1x1<1/&1*1c>4171C1F1X{Q1T10_1c1&Eo1Or1"}141ъ1O11O"1Y1Bƪ1=1k1*1ڝ1N1!11s181J4af3?Ô1h 1;11F1P'1)1941o*816 B1DE1O1RS1^1O(b1 On1q1{1a1É1E%1ݚ10+1>ǥ1A8121v 101a11}/111Y'111!4?c+ 1–1^ 1*1-1O81ú;1 F1I1~T1X1d1Óh1DZr1u1v&11Ay1W1lb1xӟK8?N-9?WD?ajI?B1U#1GRJ?d1y1],DYM?O?i+P?{,1A2g5Q?71A1"71rNoR?,z]?~{f?#?eM11g1E1xUng?#xht/w-?z1+n11\Ȕ1E?.?[1?6?V>?[~Ͽ?1g 1v1ί1y[п?6]fZq?I\1m1Cq1v|1%_.r?*1M ?1 \1җ1Z:2=!7"idO?[RB??"uBgд?1H1ض1E1[?nPB??z?a?dTR?U#T? >?.? ?w~ 111`1 11/!1&1m(1@,/1.01~51T71=16>1D1E1K1+:M17R1T1lZ1@\1נa1lc1h1 !k1rp1Lr16w1fy1Y:121\1(1?1o1"1 1/1=1䝦11QW1o1X1nƷ11[s1!+1 11181qp1='1"1`111111m;1=t?F1E 1_1k1111%1'1f/1Q1171F91?1@1EfH1&qJ1&P1wQ1|XW1@Y1^1a`1Xg1 h1n1o1#u1!w1 }1i11֜11Ɏ1111A1F11\71_<1sR11 1Ѫ1Z1MN1wQ1O11191:11111m1x1{19@1?aa1) 1{ 11_111!1#1I)16r,1b11{31:1X<1uB1w[D19J1K1Q1S1Z1`\1ec1e1mk1Ym1r1et1'Kz14|11Ӄ111911#1 11ߊ1 11Ұ1=1iD1.c1U1q1A1,1Z1o1[I1`1I11}1l1)-11$1?E1n 1[ 1/1111G!1j*#1](1&*101i21l81"91?1AiA1@G1NI1pO1[Q19W1X1^1B`1]f10g1m1o1u1܄w1O5}1!11L1 111C1K11)*11ɣ1荬1Ꮂ10w1Z 1n1—11{1x11Q1E?1:1-311k"111p1@?1 1*11.1:1 1G"1k(1N+1113191;1B1D1vJ1cL1 S1 V1[1`]1c1 e1&m1Do1t1v1~1` 11 1G1剏1w1D1L1g1u1c1-11Ҵ11kv1^1 1111q11t11e11~1q161^"11N?31h 111y1 11 $1̱&1N,1Y.1u5171=1?1PuE1`G1h7M1$O1U1mV1\1^1|d1f1Al10n1s1u1a1 :111j.11111b1D1v,111ْ1o2Y\!1ݧ111111q11o1l1]h1-d1F1B1~\1?^!K?I1o& 1"1e1w1J1?M 1m&1Q)1.10171H81L>1@1'F1I1N1(Q1V1X1;t^1q`1xf15h1'o1r1v1x1 ~114}1w1Ɏ1 1ז1ј12111 1DZ1Y1u11O1R11.1111111<1Id1m11Ȅ1,o12?12111S121 1"1)1q+11131e91;14~A1C1FI1_/K1P1R1&Y1[1`1b1h1߶j1p1r1x1z1׀1݂1p11[P1 $1R1k]11s1G1[1;1511<1;-1,11+13111?111$;1\1ݬ1Ƥ1X`1\h?1Va 1^ 1W21&1I1/1X#1#z%1{+1-14161"<1>1E1F1L1]N1\IU1EW1¦^1`1 f1?h1D n1 p1iv1Tx10}1+1繅11p1o1.D1?1m1e1qH1H1կ1d 1 1l111p11(11'1K1]11ة1,12!1|s?1E 1!/ 111#11~1!1 $1*1,1߾21+41;1r6=1C19F1ǜL1|SN1n T1U1[1]1c1P5e1Ek1m1s1u1ۤ{1f}1W1k211И1q711<11#1~71Fg1T1;"11F1)511z1f111R1B411Q1E1y1U1'1B)1a?<1* 1_1-F131t1~)1!1&1Ũ(1Y/1401r6191I>1I8@1E1G1M1[O1 0U17W1A]1_1\e1Ag1l1rn1`t1=v1|1~1Y1i>111z˔1J11P1 +11ӫ1⾭1҉1|[1+1'11Xs1Q1:11G1%11_11#1E1o1j1|1]l?1 1a 12J1h~111a1!1ۢ#1R)17+1|01*2181i~:1@1.B1>cH1EJJ1NP13R10X1YZ1}_1[a1g1i1`wo1aq1w1y11W1=1쓈1u1/א11:11EӢ1j1i1q)1 111ء141^1_k1JL1P1x11O16111G1V1Of1k]!?1}> 1) 11,1J1<1 1"1)1V*1X0121g81>:1F@1oPB1H1O{J1VdP1GR1yX1eZ17G`10b1h1Oj1Do1q1nx1 z11Uց1X1D11m11\1-T1A1Ũ17\11س11C1#F1~)1I11g1S1[1oT11RX?1s 111tT1X!1yz#1Hc+1J-1t5171pK@1B15I1"K1PKS12U1k[1]1kc1Te1+k18m1&s1Vt1.{1>}1"1Xf1&11111~1111111S1R@1E14111%1}1U91 111 111:11Aϐ!1 1 1f1tM111#1$1*1D-13141;1<1=B1D1,J1vL1R1S1^Z1\1a10c1i1~k1bq1!ms1+y1{1;1!11Ip1W1i111Q͡11ѩ111M1b1S1A1-151n?10P1<11111_1D1r1Ti17y$?11111h1y 1"1,(1Qy*1_01C21#81:1 B1VD1L1ʕN1sT1XV12\1?^1d1KZg1l1On1t1۷v1F|1&1q1U1Č1101u11g111l1n21 11_1^1+H11m1ڈ1Lw1t1Y11ú1%1;11au1<1$1b61y\?1Ԑ 1} 181M1!1p1"1W$1K*1,<,13151;1d=1bC1RE19K1sL1WT1g?V1d]\1FG^1e1g1Vm1o1zv1"w1}11131HU111[{1v11W1ꓧ1ex1 181h1.1j 111A11 1191%u1c1JI1/121#1U11M^,G?0111r1a1=1!1#1)1;+1#1131*91!;1@1hB1kH1tTJ1EQ1BS1_Y1[1ca13c1h1j1wp1r1ax1^z11mՁ1k?ߑ1ד1kə19ě1nq1Z1Y1sR1^11ϊ1@1w"J1111w1%-111(111511 1?1Z 111 1Z1T1%1 '1a,1|.1A51 71<1O>1E1vF1L1N1T1íV1ԏ\1^1Ld1zf1$l1<n1{s1u1{1o}1|1ۍ1^1î1K1U1$111Z1}1Tx1ؽ161uɺ1S1F1E1õ111/61%1 1a11P1E91D1.11 r??A1) "L11]1U1)11111M1J1I 1 11161`ν1(\11?1O1)1^1111111j11k1Of?(1? 1% 11111#1,%1,154-1P3141:1}<1BB1ȢD1ʢJ1L1$S1ܐT1YZ18\1Jh11j1Mp1Er1qw1y11܂1Ј1Ȋ101%.1V$1G1v.1!1ܕ1鮭11a11b1111>18A181=1'11?1141@1L%1c 1AD !1 1 1w1M`1O171@ !1"1V)1~+1S11}31 916;1JA1-C1GI13K1DP1H0S1ĚX1Z1`10b1Kg1ii1o1Ir1 Qw11e1;Ý111{1'11ʹ1 1l1U1[1:1>1P13~1b11111 1111WO16JL?r1ҟ 1 1 1@11o1,&1'1Z-1/16171=1?1E1}G19N12P1MV19X1]1_1Gf1~h1"wn1 5p1iv1w1}1e1υ1ˇ11&111|1171?1E)1!1111sG1["1R1121+111M1XW11111~1xP?+1P 1L 1J1h1m;1!416#1%1 +1,12141[E;1-=16C1- E1`J1-L1ˍR1T1Z1E\1* b1c1i1^k1yq1bs1jy1X{1{1`߄1؊1Č1fƒ1`1S}1/R1,1C1(11 1 1111Q1181{1'1V1r1\111 s1 1xp13Q1n61 A!1+ 1 p 1!1I 11T1l!1;S#1*1%,121 41y:1lS<1A1C1;I1K1xQ1(bS1Y1oZ1`1b1+j1`l1Rr1vVt1y1"{1M16s1X>1F&1͐11N161N11 1<1Y1ܱ1;1j111111ɠ1t1^1Q1- 1+1X111}q111̑?1Dp1+s1g1D11O1U< 1C&1\(1/11171p911?1iA1BG10I1N1P1X1Z1_1la1h1j1o1xq1yCw1+y1~11ņ11Z֏1湑1I1g1d11u1a1l1E11˼1pP1 31v1111m1F1w1W1\1G1b111T?1R1GC 11111&V16>!1!'1_ )1=/1 1171Ia:1?1B1qG1 `I1>N1P1–W1Y1D_11a1Mg19Ai1*o1{q1Vw1x1W1 11Q11~1q1Q1r11u1Mi151p!11d111Q1}101*N11 111=11L1w1f11+11*?ݲ1φ 19v111E1v!1H(14*1/1117191@1B1xH1\J1TP1YR1X1Z1`1pb r?$s? &AΑ?w?DJ?p^?FI?8J1p11Wka?bl?WGn1R1h?U?XY)??18Ӂ11 1!?)+% ?S'?BN?HV?1 u1X18ܿ13P_[fW?TgW?wT+ސPR?V@%S1-'1Q7@1B@<\ 1%@>6p]10s@^1f@101v111xܭ@D01+F@=<o?j51Fq1t1Bh~1pс@,01}B=?v1-1r1w*1C 0@.>01h@C_*?zR1Pܳ1:1QB1٨@L01QMk?1V1Ē1T͜1@]01}^@p̦'"?w1l17`1t 1M112@i0a@1211t^@Db "c@Jf1M@?i1G@wj1=1pe1ʷ1կ@Vk(1O5 1x15"o1'0'1R+1P4171A1BE1U,O1HR1N[1 !_1nh1k1@u1y1ԅ1 1n13111W11.d1PY1z1,1#11111g1U]@l01Q 1F>11a1ב(1+1:61:1KF1.H1AR1U1_18Kc16"n1Mq1{1ʂ1É1X1g11}101+1V1Gr11y11a1@m1rG1>117,1"101^31=1A*A1J8K2N!Y1A7]1Rg1+k1i2{1~181r^1b 1uؙ111GŲ151>$11,1!1I1B1m1W11R@n 1A 111b1M'1B*1!!51 x81kC1E1{O1;S1c]1`1Rj1Jn1y1@p|1(11ȣ1t91V|11ek1j1l 1e11151@ o81;111-&1f)1}51,71߼E1XG1>|X1[1Zf1i1@v1>{1/1C10ٞ11X+1ݳ1y"11f1j161B1111"@ p1 11O31Q$1)1u21g51@1eC1M1DQ1A\1^10j1o1{1a1)1J11{613Ħ11X1I11 1)1ԍ13;1{111JW1@bq 1< 1"1T1'#18&111a51i?1B1?L1Q1a]1DOb1m k1a{n1Iy1|1k11nV1vӗ1P1n1˲1I 1\1P 1)1KV11"1R1Ա15@r1ix 1A1k1$1uh'1*1771FE;1xF12I1$U1)Y1ܼf1g1Xr1xu1@111MU1Z1D1H1p1I11Y1h11d11ai181`@z s1Gx 111B)1,1:1>1II13wL1:W1,Z1d1Bh1&Ar1u1(I1&v1S11NĞ112K11+11 1!6117g1G11J13@et111h1:"1%101g51J>1A1L1h?P1[1@:_1Ej1cm1.y1 i|1̖11Y$11;1i111b1m1X1Y61 @u19 1 1Z11Z$1p%1G+1*-1z31S[61eu>1:3A1HL1QM1sW1X1R`1sb1{h1Yj1qq1hRt1}111Ӓ11g1Zr1pB1o1E1v1<1t11= 1q1o1j81}11V@{vX1/D 1`1s1g%1Ȍ)151su91V;F1_I1c\T1&sX11c1Kh1u1y1@1i1n 1@11Z11F41Z1}'11^11`11%10@w1] 1W 111D11t?&1(1d01AV21281z:1w@1oB1mH1rJ1+P1R1 :Y1 [1!a1Pb1Hj1k1Y7r1t1|1H}1X1Z11xr1 1811U1[(11O1"1,1\111 (1~"1J111s1q1Y111M1h1"@`x1-1c 1=9 1׍1Ä1"e;1N'1)1j;1"1071'91?1B1DH1-J10P1=R1aX1#nZ1b"31h1j1@p1"r1Gx1k{1E1M91v+1G)11ܓ1#"$1n1ch1""{1,1oW1!1]1ϒ1+t1\11\1@<1 181_s1^11˕1/1m1@y1`1E' 1!1pz1L1M1#1'1x=/1s11!:1b=1fE1YG1_R1T1_1b1ii1n1s1Pgu1^/1)1P1 1˘1$11aX1=171f1-1N 1 91ra1;#1917Q1@OzP""1kX"G{1J11Ә1s1i41C1$1B&1R11"@21e:1 <1vH"j1yO1R1#R^1Z_1g1j1pWp1x"SC1 11&i1V11511E/1=11ϩ1d1VH1?J1161111P11M1H11v1K1Z1\1s1C@k{1K1c 1: 11D1o>11d"1$1K+18y-1541u861r<19~>1wC1F1nnL1[CN1\T1V1.Y]1^1-f"[1l1n1ot1Ev1%|16~1dM1G11'1Ͼ111F/1$>1v1y10=171_1J@1vl1c1161jf1N11)1Q1P*11=1U1f1|@|1s"Ѿ1x 1L1"c11?1uh%1`''1-1J11Yq5181>1s@1F1WH1fO1Q1-]1~_1^f1={g1Ԗm1@~o1u1Wx1Ђ1(1`D111{1(O10111=1rQ1O1)11 <1Ԯ1{1Z:1q111"v11^@T}"zw1& 1 11v11k1s'1(1!5/1:11Wu8"1f-?1N A1jG17~I1Q1)R1@Z1x[1sa1TQc1xji1l1q12$t1||1=}1B1Ii101 1~1J11!11!161Ų1W1111)11V11h1V1 1_1d111111C@{~1A1b 16 1111z1(1-1z71;17E1I1U1 Y1nc1f1q1Au1S1dą1顒1\1Π1&1u1DZ1x111t(1{^11!011G1A1}@ 011EU1h1? '1 *14181jC1G1"SQ1T1ob_1b1U>m1+p1}1~1[ 1x1J1111e1Nݹ1|11!1$1m14 1Y1y1p@1 1 11V\1L&1h*174181B1eE1O1@S1A_1zb1m1q1{1v*1 11ߛ1=141e1111ݕ1+11 1;1H1@u1 1a@1|1!17$121:71`B11cF1nQ1U1b1:e1p1t1~1d1Q1J(1m1f=11111@PV1Pw1.1861?1R1Y1dp1)y2Ց!ė1k]1!11Q1111@ԣ1s11sE 111571+F1J1+v\1-qd1;u1z1:݉1L11˦1 11Gh1 120`1!1R1F1*1-.1v&B1OG1:X2q_!k1 n1}1 j11[l11 1 141k 1o11@ 1Qw151z1)i1"1.111.=1@1؞K1N1Z1n]1q1{t1ր11'O1⬔11t1Ǭ1B1 11O1ߩ171Z1:K111@:19 1os13}17$1/*1 71819C1FKF1eP1S1^16Ob1sl1@p1]{1m#~181114R111 z1}1C1t1 1K)1}1Q11@1vJ1,,1w1!1x&1W01mU31gb=1@1K1W0O1Z1]1ڙg10k1Kgv1y1 1 +1ǹ1.1[1d1:1-1w=11}1Y11p11a@A2Z !E1O1"1er&1 11M51C1hH1MR1V1)`1d1 o1Wr1Ǒ}116 11_111611c1.1;1211.B1H1}1}@V1 1A1qX1W%1(1@31861A1D1HN1_R1\1+`1k1No1%{1?~1:1Z1̜1Z11 1f1닽1{11k1 118191@111Y1G 1 $1-1SQ11;1*?1`I1L1UX1[1me1+]i1Bw1#z1LĄ1y11&1n1&171>@{9"1>J1SN1.\1G_1/k1n1y1E6}1e1Y1}1v11'\1ȳ1sj11r1w1Sq1I1 11K1@81_ 12 1|1~1@'1*141 81>kF1I1V1NY1d1,h1U|s1 w11 C1381Ŕ1u111qc3|ܼ1Ϝ1& 1i1111%X1h@: 1111'1*1YE51.81j*C1G1wR1A V16_1b1Em1mq1({1x~1Ո1H;1<1H1*'1,1|1=1ھ111@1^1_1Lr11It1E@. 1E 141^|1;h&1*1[61/6;1&D1H1/S1ebV1a1Xe1w1O{1{1P1{1ҫ1ʾ11\1ϰ1j1q@1]1R1e118#1/1!p21?1eDB1/ P1 T1g"1n12*r1~1l111)11ǭ1*Ʊ1$+1 1F1h111^12@Q1P11=1|d$1Y)1Y51:1'D1I1T1Y1Wd1yg1\lt1w1҆1H1{11ݧ11 }1K1Y1Z171}1n2!1=@21 1Ӯ1I1h'1=+1717<17F1~K1V1#[1r;f1}j1yu1x1T1mV1z111/1711V1E1+1a111D1%@51 1E114'17*1E61M91(D1 V@ 11C:1: 1a+1B/1p-;1>1WQK1GN1Y1=]1l1]o1>{1g~1$-1z1"1m11F1jw1A1o1011@1}M111\1P@ 1Q1Ǻ1ׂ1jd*1-1491 =1^I1t\M1Y1`\1Mh18l1Sy1C{11ב1U1v1mŬ11(1w1&t111[1a11@1 16 111݆(1+1081p;1wHG1ƫJ1W1>[1f1L%j1Sv1b{1Ԉ1 1!1u1|1V1cI1Oɽ1!1Y1K11 1M1R1!@G61 1<1d1J)1,1_h91j<1zH1NK1=W1)P[1pj1m19z1Q(}11z11ɹ111g1l11|1G1I1j@2o11/-.151|I1FQ1h1$n1b1/f1 1%s1I11-1Ӷ131L1Fc1111W@1 1B11!1[,1i/10;1.g>1J1ְM1~Z1:^1j1m1H{1|1Y1Ɍ1NJ1]161&T1 11d1111111>1@1r1>11d("1L41:1]0C1vF1kR1TV1E`1e1!p1~s11%1FB11О1U1٭11Tt1Z131A11%1%1@ 1D 101,15171F?1bA1tJ1TN1/bT1\1V1c[1_1@Xd1-f1Hl1m1v1x1~11t1Q1A1ڐ11)i@t1?@ب1©@1?@1s@51˳@,.&1M(11@'; 1<@-1W1"0@  1ǒ11r1 @ (1NZ"1y17Oz@z 1[U@ @vm@o= ? 111$1B(1mr1]@#@"YHf?bW1%1)1_D31֪611@IDo@y?>1@15u 1޲ 1T"@#P(<ҿ? *1101F1@"V01fXѶK?F"g"1+ "@5;L01C<@A|R+?ַ119c11G@01??:?}p11N@x 19@1@q1Ʀ@|o0">1761:71X=1U>1nD13F1ԕK1/lM1S1eT1YyZ1S\1ua14Fd1@Mi1k1!p1gr1]"1aB1E1XJ1P1 AS1NW1l[1QT]1 c1=d1_l1-n1s1ڎu1h\{1.}1®1ф111s1q131.1Oʡ1ӵ1܌1閬1U11=1Ϻ1g1r 1x111#1S1{1 D1$11m1BO1i1G 1 1@,f@1G1C1-1p1L1g1-11ր$1@N&1p+1h-141Yg51;1=1CC1.E1K1!M1FR1sWT1\1]1'-c1d1j1l1r1ϳt1A|1N~1IR11Č1~1P1J1ߛ1+11V11511S111711$1a,1,Z1\1114l1511b11ː1j1x@[1F1b13 1=1X11v1l 1Ks#1N(1&*1n01U21Q8191J?1jA1YG1H1o\N1:P1V1Z1^1B_1g1ah1:[n16p1u1_x1G}1 $11m1s1oP1,91B161`~1t1 1䫫1׬11\1 111{11f111111(1311S11118p@1=1( 1t 110111q"!1}#124)1x+10121391:1_@1wB1IH1mJ1aP1eCR1Y1ڃ[1a1Fc19k1m1us1 u1{1|1d=1և111Tx1Yt1ћ111@1+1118ع11{1\14 11;1m11d14~1111~1R111J@11l 101 1c1j11Q 1&1N(1X_.1S01;61X81=1\?1E1G1N1QP1W1X1O^1.`1vf1]Mh1)n1&"p14u1+x1^}1:1lZ1g1b1Um1{1k1Y1%11111X̮1ܙ1Xn1G/1\1*I11`1t11B121N1l1ֈ1{1aW1s)1@1 1Ԙ 1 1M11;11Q"1$1(*1',121L31G:1;1A1԰C1TI1K1?R1wT1քZ1d\1[b1d1j1l1oBr1c)t1}z1{11(1Ҋ1Ƌ1頑1E141,1Yڡ11ʩ11s12Y1^b1L1zY11=_1O1C1C1l1211158"g^1t|1$F15V1gC@1>11 1ݛ11ZX1`31 1t#1nK(17!*1%/11h13;91;1ZA1TC1:I1CK1P1ZR1ЬX1 {Z1 `1(a1h1MAj1Zo1|q1y1z1\191m1?1?ݏ11BU1/1111ͩ1p11s/11,1K11171'1o1V11611)141111P@O1 1V 1511 q1[1E1 1&1(1.101#6181?1A1G1GI1#xO1&hQ1_W1AY1_1`1-h1eaj1`Bp14r1}x1x{1U1rx1E1֚121R11ɚ11҉1m1'1&1氳1wn1eW11111e1f1$11?1+X11111a1۲@,p141@. 1 111O|1BW1"1u#1)1 +1~1131281:1<[@1p9B1'*H1I1zoQ1A@S1 GY1[1a1m\c1 Xi1k1+q1r1x1z1"W1911щ1k?111|-11kN11ߩ1֯1/s11Qj1111:11 1&1u11*j111\1;1rH1d1\181p@ Y 1Z1D1^ 111j111T#&1>'1e-1pc/1051w61w<1(V>1C1E1K1M1[1:d1K 13018 1o111.!1&1y(14.10161j71=1?1DE1: G1L1N1/T1V1([11]1?Kc1;e1j1Cl1as1#v1 {1Z}1B1P1]ʊ1璌101 1ٙ111cǤ1ʪ1<1D1E910ڻ11J`1K1_"1m1W1&11mz1G11͹1ڂ1b1R1u1!1N@#11 1 1515111OO#1%1O*1,141$61<1V>10mD17F1nS"1.Y1 [1Wb1ad1i1Kk1q1t1/y1{1-g1f111"1A#1*1G+111Y313 91:1@1;B1EH1LJ1P1cQ1W1{sY1_1j`1f1}h1Aon1Fp1v1w1Ȅ}1B1?1a1L111F1͛1ߟ1~10Q111d2@!11T125161#11^z1=>1r111111$1j-1@ :%11 "111sj1_v1#1%1|+1-121641]<1g9>1sE1JoG1gM12N1&T1fU1+[1]1d"M1Csl1n1u1kw1y}11>k"1wٌ1C11o`1sI1M#1'1ܿ1eu1Xj11ٵ11pQ1c41Q1 11De1~B1JY"#k1W1VS1H1.1G111@M&1\1[ 19 1.?1 11h1 1`j"14(1 *1/1.11F71!91!>1@1VF1!H1N1ְO1W1^Y1_1`1e g1Oh1y:n1p1v16w1>}1's11+ֈ1 11t<111~1ס1gU1y&1g1S1η111Z1sX1 111Qc1B1j 111h10 1111K@F'11Е 1m 1Q11g1+F1#1$1Wq*1L,1,5161,=1?1$"E1@F1TWL12N1 T1U1}[1s\]1"c1d1l1m1s1vu1B{1E}111M1,1]֑1n1࠙1e{131$11r1m1MY1]E1μ111y1l{111y1;o171k_1/1#k1g1ˇ1N1q@(11 1U 11i111"1ʀ%1M+1~-1131O51Q;1?=1HC1E1J1L1-S1MT1 Z1V\1~b1zd1 i1k1q1 s1*y1{1nh1gT1݈1w11&{1=a1W1: 1_1ç1ʩ1l1s1e1$11.1Q181i1s,1_11U1'1M11"1 111]@)117 1 111c1E1B!1#1dx+1V-13141:1<1b!e1nj1Btl1Qr1*t1i!z1{1ȁ1Ã14w1_R1^1';1M11&:1f111ѯ1▱19s1y1;11c1o1=11M1}11(]1O1JF11V`1I1Dh11"@*1G1@ 1 111|1it12$1@&1u+1Jt-1CT5"c1F<1 >1D1F1.jK1M1'5S1T1= [1K\1 c1*d1j1Xl1[r1)s1]ez"1z1Jw1s111^1111V11U1a15C1 1Z1B151!111/111411q1N1h 11[1@+1ǥ11a 1#1 Z1<1 1U1!1(1)1.1w016171A"B"41E1G1L1N1IgT1@V1[1]1FTc17e1\k1=l1r1t1 z1N0|1 1 1 1F61Ә1_1=0111Զ1,W1D11q1 1H1111S1j1JҸ1 112'1N11m'1>1`1&w1e1ff@P,`11 1 J1:1111 1&1(1.1,01-1^%3151۝;1Cs=1pC1fF1K1O1R1T1[1]1pc1Ee1%j1l19s1uu1\{2%}!1˄1$1]1\1l1 "Ѿ11}111c1@111Y 1{121D?1=1B1X121E1111H1111p@H.1P1 1 11z1]121""1m(1+1[01a31u81+h:1W0@1 B1G1*I1kO1DQ10RW1Y1^1m`1wg12i1(p1r1 x1kz1LM1-115131 1T1™111<11߯1%1T}1Y1*1l13o1$111711'u1q1p1H11F1f1Fo/?u1M1P111p1K1=1!1d&19(1$B.1+01@91;1A1%C1H1 J1P1(R1tX1Y1 _1a1C$g1h1n1p1w1x1 `~1<1*11dR1e+1 11 1&1 1A2ɫ!11}1Tc"q1e1QT1"62!11111h1)1${11>W11V@u01121ma 11-1131b1n}!1XZ'1(&)1`.1016181f`>1G@1`?G1H1IM1gO1CfX"z1"\1|l^1d1e1:l1Vm1os1u1T{1}19#1ń11̏1u1.1p^1+11Ҧ111i1b1_61211[11a1Z1BU@3@r4@ d71e@޷=1Wn@K6E@17eG@GA1B@=B1Hy?1*81@yIe11ZN?w@PQ@\1i^1ph1k1u1y@01 ;?.1_$1'1ц2141%1@$"@m?׹@w1y2@m315@z1L@a"@m{1b|1y1w1 b1?1uY1@2!1.1M&1ħ1-1(11HY"l1Խ1171111'1O1<111`a1"11br13W11@(1<1[ 1s81j111T 19&2(!.1$01p:6181=1?1E1,cG1M1e O1WT1V1\1c^1sd1tf1PGl1!n1s1u1z{1BX}1211.111ڔ1o1.1)1 1qϫ1ϫ1@1%11Mj111\211.11BQ1;/111Y1M1111bz@9 1t1r 1yb 1/N1;11,1F!1#1ga)1W+1 1121ȯ81:1@1B1HMH14J17P1R1X1Y1~_1oa1o g1h1n1|fp1Bv1Ow1}1t111)>11]1?1111131ʯ1C1˷1ޑ1k1+11Q1 11}1 e1711r1vQ131191q1\1r@!1#111 11v11Ni%1$I'1Q1"F151(61>"r1f[D19F1DL11N1wS1U1w][13;]1b1d1aj1/in_admin(); } elseif ( defined( 'WP_ADMIN' ) ) { return WP_ADMIN; } return false; } /** * Determines whether the current request is for a site's administrative interface. * * e.g. `/wp-admin/` * * Does not check if the user is an administrator; use current_user_can() * for checking roles and capabilities. * * @since 3.1.0 * * @global WP_Screen $current_screen WordPress current screen object. * * @return bool True if inside WordPress site administration pages. */ function is_blog_admin() { if ( isset( $GLOBALS['current_screen'] ) ) { return $GLOBALS['current_screen']->in_admin( 'site' ); } elseif ( defined( 'WP_BLOG_ADMIN' ) ) { return WP_BLOG_ADMIN; } return false; } /** * Determines whether the current request is for the network administrative interface. * * e.g. `/wp-admin/network/` * * Does not check if the user is an administrator; use current_user_can() * for checking roles and capabilities. * * Does not check if the site is a Multisite network; use is_multisite() * for checking if Multisite is enabled. * * @since 3.1.0 * * @global WP_Screen $current_screen WordPress current screen object. * * @return bool True if inside WordPress network administration pages. */ function is_network_admin() { if ( isset( $GLOBALS['current_screen'] ) ) { return $GLOBALS['current_screen']->in_admin( 'network' ); } elseif ( defined( 'WP_NETWORK_ADMIN' ) ) { return WP_NETWORK_ADMIN; } return false; } /** * Determines whether the current request is for a user admin screen. * * e.g. `/wp-admin/user/` * * Does not check if the user is an administrator; use current_user_can() * for checking roles and capabilities. * * @since 3.1.0 * * @global WP_Screen $current_screen WordPress current screen object. * * @return bool True if inside WordPress user administration pages. */ function is_user_admin() { if ( isset( $GLOBALS['current_screen'] ) ) { return $GLOBALS['current_screen']->in_admin( 'user' ); } elseif ( defined( 'WP_USER_ADMIN' ) ) { return WP_USER_ADMIN; } return false; } /** * Determines whether Multisite is enabled. * * @since 3.0.0 * * @return bool True if Multisite is enabled, false otherwise. */ function is_multisite() { if ( defined( 'MULTISITE' ) ) { return MULTISITE; } if ( defined( 'SUBDOMAIN_INSTALL' ) || defined( 'VHOST' ) || defined( 'SUNRISE' ) ) { return true; } return false; } /** * Converts a value to non-negative integer. * * @since 2.5.0 * * @param mixed $maybeint Data you wish to have converted to a non-negative integer. * @return int A non-negative integer. */ function absint( $maybeint ) { return abs( (int) $maybeint ); } /** * Retrieves the current site ID. * * @since 3.1.0 * * @global int $blog_id * * @return int Site ID. */ function get_current_blog_id() { global $blog_id; return absint( $blog_id ); } /** * Retrieves the current network ID. * * @since 4.6.0 * * @return int The ID of the current network. */ function get_current_network_id() { if ( ! is_multisite() ) { return 1; } $current_network = get_network(); if ( ! isset( $current_network->id ) ) { return get_main_network_id(); } return absint( $current_network->id ); } /** * Attempts an early load of translations. * * Used for errors encountered during the initial loading process, before * the locale has been properly detected and loaded. * * Designed for unusual load sequences (like setup-config.php) or for when * the script will then terminate with an error, otherwise there is a risk * that a file can be double-included. * * @since 3.4.0 * @access private * * @global WP_Textdomain_Registry $wp_textdomain_registry WordPress Textdomain Registry. * @global WP_Locale $wp_locale WordPress date and time locale object. */ function wp_load_translations_early() { global $wp_textdomain_registry, $wp_locale; static $loaded = false; if ( $loaded ) { return; } $loaded = true; if ( function_exists( 'did_action' ) && did_action( 'init' ) ) { return; } // We need $wp_local_package. require ABSPATH . WPINC . '/version.php'; // Translation and localization. require_once ABSPATH . WPINC . '/pomo/mo.php'; require_once ABSPATH . WPINC . '/l10n/class-wp-translation-controller.php'; require_once ABSPATH . WPINC . '/l10n/class-wp-translations.php'; require_once ABSPATH . WPINC . '/l10n/class-wp-translation-file.php'; require_once ABSPATH . WPINC . '/l10n/class-wp-translation-file-mo.php'; require_once ABSPATH . WPINC . '/l10n/class-wp-translation-file-php.php'; require_once ABSPATH . WPINC . '/l10n.php'; require_once ABSPATH . WPINC . '/class-wp-textdomain-registry.php'; require_once ABSPATH . WPINC . '/class-wp-locale.php'; require_once ABSPATH . WPINC . '/class-wp-locale-switcher.php'; // General libraries. require_once ABSPATH . WPINC . '/plugin.php'; $locales = array(); $locations = array(); if ( ! $wp_textdomain_registry instanceof WP_Textdomain_Registry ) { $wp_textdomain_registry = new WP_Textdomain_Registry(); } while ( true ) { if ( defined( 'WPLANG' ) ) { if ( '' === WPLANG ) { break; } $locales[] = WPLANG; } if ( isset( $wp_local_package ) ) { $locales[] = $wp_local_package; } if ( ! $locales ) { break; } if ( defined( 'WP_LANG_DIR' ) && @is_dir( WP_LANG_DIR ) ) { $locations[] = WP_LANG_DIR; } if ( defined( 'WP_CONTENT_DIR' ) && @is_dir( WP_CONTENT_DIR . '/languages' ) ) { $locations[] = WP_CONTENT_DIR . '/languages'; } if ( @is_dir( ABSPATH . 'wp-content/languages' ) ) { $locations[] = ABSPATH . 'wp-content/languages'; } if ( @is_dir( ABSPATH . WPINC . '/languages' ) ) { $locations[] = ABSPATH . WPINC . '/languages'; } if ( ! $locations ) { break; } $locations = array_unique( $locations ); foreach ( $locales as $locale ) { foreach ( $locations as $location ) { if ( file_exists( $location . '/' . $locale . '.mo' ) ) { load_textdomain( 'default', $location . '/' . $locale . '.mo', $locale ); if ( defined( 'WP_SETUP_CONFIG' ) && file_exists( $location . '/admin-' . $locale . '.mo' ) ) { load_textdomain( 'default', $location . '/admin-' . $locale . '.mo', $locale ); } break 2; } } } break; } $wp_locale = new WP_Locale(); } /** * Checks or sets whether WordPress is in "installation" mode. * * If the `WP_INSTALLING` constant is defined during the bootstrap, `wp_installing()` will default to `true`. * * @since 4.4.0 * * @param bool $is_installing Optional. True to set WP into Installing mode, false to turn Installing mode off. * Omit this parameter if you only want to fetch the current status. * @return bool True if WP is installing, otherwise false. When a `$is_installing` is passed, the function will * report whether WP was in installing mode prior to the change to `$is_installing`. */ function wp_installing( $is_installing = null ) { static $installing = null; // Support for the `WP_INSTALLING` constant, defined before WP is loaded. if ( is_null( $installing ) ) { $installing = defined( 'WP_INSTALLING' ) && WP_INSTALLING; } if ( ! is_null( $is_installing ) ) { $old_installing = $installing; $installing = $is_installing; return (bool) $old_installing; } return (bool) $installing; } /** * Determines if SSL is used. * * @since 2.6.0 * @since 4.6.0 Moved from functions.php to load.php. * * @return bool True if SSL, otherwise false. */ function is_ssl() { if ( isset( $_SERVER['HTTPS'] ) ) { if ( 'on' === strtolower( $_SERVER['HTTPS'] ) ) { return true; } if ( '1' === (string) $_SERVER['HTTPS'] ) { return true; } } elseif ( isset( $_SERVER['SERVER_PORT'] ) && ( '443' === (string) $_SERVER['SERVER_PORT'] ) ) { return true; } return false; } /** * Converts a shorthand byte value to an integer byte value. * * @since 2.3.0 * @since 4.6.0 Moved from media.php to load.php. * * @link https://www.php.net/manual/en/function.ini-get.php * @link https://www.php.net/manual/en/faq.using.php#faq.using.shorthandbytes * * @param string $value A (PHP ini) byte value, either shorthand or ordinary. * @return int An integer byte value. */ function wp_convert_hr_to_bytes( $value ) { $value = strtolower( trim( $value ) ); $bytes = (int) $value; if ( str_contains( $value, 'g' ) ) { $bytes *= GB_IN_BYTES; } elseif ( str_contains( $value, 'm' ) ) { $bytes *= MB_IN_BYTES; } elseif ( str_contains( $value, 'k' ) ) { $bytes *= KB_IN_BYTES; } // Deal with large (float) values which run into the maximum integer size. return min( $bytes, PHP_INT_MAX ); } /** * Determines whether a PHP ini value is changeable at runtime. * * @since 4.6.0 * * @link https://www.php.net/manual/en/function.ini-get-all.php * * @param string $setting The name of the ini setting to check. * @return bool True if the value is changeable at runtime. False otherwise. */ function wp_is_ini_value_changeable( $setting ) { static $ini_all; if ( ! isset( $ini_all ) ) { $ini_all = false; // Sometimes `ini_get_all()` is disabled via the `disable_functions` option for "security purposes". if ( function_exists( 'ini_get_all' ) ) { $ini_all = ini_get_all(); } } if ( isset( $ini_all[ $setting ]['access'] ) && ( INI_ALL === $ini_all[ $setting ]['access'] || INI_USER === $ini_all[ $setting ]['access'] ) ) { return true; } // If we were unable to retrieve the details, fail gracefully to assume it's changeable. if ( ! is_array( $ini_all ) ) { return true; } return false; } /** * Determines whether the current request is a WordPress Ajax request. * * @since 4.7.0 * * @return bool True if it's a WordPress Ajax request, false otherwise. */ function wp_doing_ajax() { /** * Filters whether the current request is a WordPress Ajax request. * * @since 4.7.0 * * @param bool $wp_doing_ajax Whether the current request is a WordPress Ajax request. */ return apply_filters( 'wp_doing_ajax', defined( 'DOING_AJAX' ) && DOING_AJAX ); } /** * Determines whether the current request should use themes. * * @since 5.1.0 * * @return bool True if themes should be used, false otherwise. */ function wp_using_themes() { /** * Filters whether the current request should use themes. * * @since 5.1.0 * * @param bool $wp_using_themes Whether the current request should use themes. */ return apply_filters( 'wp_using_themes', defined( 'WP_USE_THEMES' ) && WP_USE_THEMES ); } /** * Determines whether the current request is a WordPress cron request. * * @since 4.8.0 * * @return bool True if it's a WordPress cron request, false otherwise. */ function wp_doing_cron() { /** * Filters whether the current request is a WordPress cron request. * * @since 4.8.0 * * @param bool $wp_doing_cron Whether the current request is a WordPress cron request. */ return apply_filters( 'wp_doing_cron', defined( 'DOING_CRON' ) && DOING_CRON ); } /** * Checks whether the given variable is a WordPress Error. * * Returns whether `$thing` is an instance of the `WP_Error` class. * * @since 2.1.0 * * @param mixed $thing The variable to check. * @return bool Whether the variable is an instance of WP_Error. * * @phpstan-assert-if-true WP_Error $thing */ function is_wp_error( $thing ) { $is_wp_error = ( $thing instanceof WP_Error ); if ( $is_wp_error ) { /** * Fires when `is_wp_error()` is called and its parameter is an instance of WP_Error. * * @since 5.6.0 * * @param WP_Error $thing The error object passed to `is_wp_error()`. */ do_action( 'is_wp_error_instance', $thing ); } return $is_wp_error; } /** * Determines whether file modifications are allowed. * * @since 4.8.0 * * @param string $context The usage context. * @return bool True if file modification is allowed, false otherwise. */ function wp_is_file_mod_allowed( $context ) { /** * Filters whether file modifications are allowed. * * @since 4.8.0 * * @param bool $file_mod_allowed Whether file modifications are allowed. * @param string $context The usage context. */ return apply_filters( 'file_mod_allowed', ! defined( 'DISALLOW_FILE_MODS' ) || ! DISALLOW_FILE_MODS, $context ); } /** * Starts scraping edited file errors. * * @since 4.9.0 */ function wp_start_scraping_edited_file_errors() { if ( ! isset( $_REQUEST['wp_scrape_key'] ) || ! isset( $_REQUEST['wp_scrape_nonce'] ) ) { return; } $key = substr( sanitize_key( wp_unslash( $_REQUEST['wp_scrape_key'] ) ), 0, 32 ); $nonce = wp_unslash( $_REQUEST['wp_scrape_nonce'] ); if ( empty( $key ) || empty( $nonce ) ) { return; } $transient = get_transient( 'scrape_key_' . $key ); if ( false === $transient ) { return; } if ( $transient !== $nonce ) { if ( ! headers_sent() ) { header( 'X-Robots-Tag: noindex' ); nocache_headers(); } echo "###### wp_scraping_result_start:$key ######"; echo wp_json_encode( array( 'code' => 'scrape_nonce_failure', 'message' => __( 'Scrape key check failed. Please try again.' ), ) ); echo "###### wp_scraping_result_end:$key ######"; die(); } if ( ! defined( 'WP_SANDBOX_SCRAPING' ) ) { define( 'WP_SANDBOX_SCRAPING', true ); } register_shutdown_function( 'wp_finalize_scraping_edited_file_errors', $key ); } /** * Finalizes scraping for edited file errors. * * @since 4.9.0 * * @param string $scrape_key Scrape key. */ function wp_finalize_scraping_edited_file_errors( $scrape_key ) { $error = error_get_last(); echo "\n###### wp_scraping_result_start:$scrape_key ######\n"; if ( ! empty( $error ) && in_array( $error['type'], array( E_CORE_ERROR, E_COMPILE_ERROR, E_ERROR, E_PARSE, E_USER_ERROR, E_RECOVERABLE_ERROR ), true ) ) { $error = str_replace( ABSPATH, '', $error ); echo wp_json_encode( $error ); } else { echo wp_json_encode( true ); } echo "\n###### wp_scraping_result_end:$scrape_key ######\n"; } /** * Checks whether current request is a JSON request, or is expecting a JSON response. * * @since 5.0.0 * * @return bool True if `Accepts` or `Content-Type` headers contain `application/json`. * False otherwise. */ function wp_is_json_request() { if ( isset( $_SERVER['HTTP_ACCEPT'] ) && wp_is_json_media_type( $_SERVER['HTTP_ACCEPT'] ) ) { return true; } if ( isset( $_SERVER['CONTENT_TYPE'] ) && wp_is_json_media_type( $_SERVER['CONTENT_TYPE'] ) ) { return true; } return false; } /** * Checks whether current request is a JSONP request, or is expecting a JSONP response. * * @since 5.2.0 * * @return bool True if JSONP request, false otherwise. */ function wp_is_jsonp_request() { if ( ! isset( $_GET['_jsonp'] ) ) { return false; } if ( ! function_exists( 'wp_check_jsonp_callback' ) ) { require_once ABSPATH . WPINC . '/functions.php'; } $jsonp_callback = $_GET['_jsonp']; if ( ! wp_check_jsonp_callback( $jsonp_callback ) ) { return false; } /** This filter is documented in wp-includes/rest-api/class-wp-rest-server.php */ $jsonp_enabled = apply_filters( 'rest_jsonp_enabled', true ); return $jsonp_enabled; } /** * Checks whether a string is a valid JSON Media Type. * * @since 5.6.0 * * @param string $media_type A Media Type string to check. * @return bool True if string is a valid JSON Media Type. */ function wp_is_json_media_type( $media_type ) { static $cache = array(); if ( ! isset( $cache[ $media_type ] ) ) { $cache[ $media_type ] = (bool) preg_match( '/(^|\s|,)application\/([\w!#\$&-\^\.\+]+\+)?json(\+oembed)?($|\s|;|,)/i', $media_type ); } return $cache[ $media_type ]; } /** * Checks whether current request is an XML request, or is expecting an XML response. * * @since 5.2.0 * * @return bool True if `Accepts` or `Content-Type` headers contain `text/xml` * or one of the related MIME types. False otherwise. */ function wp_is_xml_request() { $accepted = array( 'text/xml', 'application/rss+xml', 'application/atom+xml', 'application/rdf+xml', 'text/xml+oembed', 'application/xml+oembed', ); if ( isset( $_SERVER['HTTP_ACCEPT'] ) ) { foreach ( $accepted as $type ) { if ( str_contains( $_SERVER['HTTP_ACCEPT'], $type ) ) { return true; } } } if ( isset( $_SERVER['CONTENT_TYPE'] ) && in_array( $_SERVER['CONTENT_TYPE'], $accepted, true ) ) { return true; } return false; } /** * Checks if this site is protected by HTTP Basic Auth. * * At the moment, this merely checks for the present of Basic Auth credentials. Therefore, calling * this function with a context different from the current context may give inaccurate results. * In a future release, this evaluation may be made more robust. * * Currently, this is only used by Application Passwords to prevent a conflict since it also utilizes * Basic Auth. * * @since 5.6.1 * * @global string $pagenow The filename of the current screen. * * @param string $context The context to check for protection. Accepts 'login', 'admin', and 'front'. * Defaults to the current context. * @return bool Whether the site is protected by Basic Auth. */ function wp_is_site_protected_by_basic_auth( $context = '' ) { global $pagenow; if ( ! $context ) { if ( 'wp-login.php' === $pagenow ) { $context = 'login'; } elseif ( is_admin() ) { $context = 'admin'; } else { $context = 'front'; } } $is_protected = ! empty( $_SERVER['PHP_AUTH_USER'] ) || ! empty( $_SERVER['PHP_AUTH_PW'] ); /** * Filters whether a site is protected by HTTP Basic Auth. * * @since 5.6.1 * * @param bool $is_protected Whether the site is protected by Basic Auth. * @param string $context The context to check for protection. One of 'login', 'admin', or 'front'. */ return apply_filters( 'wp_is_site_protected_by_basic_auth', $is_protected, $context ); }