%PDF-1.7 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R 27 0 R 32 0 R 37 0 R 42 0 R 47 0 R 52 0 R 57 0 R ] /Count 8 /Resources << /ProcSet 4 0 R /Font << /F1 8 0 R /F2 9 0 R /F3 10 0 R /F4 11 0 R /F5 12 0 R >> /XObject << /I1 13 0 R /I2 20 0 R /I3 21 0 R /I4 29 0 R /I5 30 0 R /I6 34 0 R /I7 35 0 R /I8 39 0 R /I9 40 0 R /I10 44 0 R /I11 45 0 R /I12 49 0 R /I13 50 0 R /I14 54 0 R /I15 55 0 R /I16 59 0 R /I17 60 0 R >> /ExtGState << /GS1 23 0 R /GS2 24 0 R /GS3 25 0 R /GS4 26 0 R >> >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text /ImageC ] endobj 5 0 obj << /Producer (dompdf 1.0.2 + CPDF) /CreationDate (D:20240516094705+00'00') /ModDate (D:20240516094705+00'00') >> endobj 6 0 obj << /Type /Page /MediaBox [0.000 0.000 595.280 841.890] /Parent 3 0 R /Annots [ 14 0 R 16 0 R 18 0 R ] /Contents 7 0 R >> endobj 7 0 obj << /Filter /FlateDecode /Length 1604 >> stream xWnF+nw `!)YՉU;;r4@((i$$ 9~@?@7x0,Jg=Y̲,W]˜ТiB6ek5>E/;h̢9чGWczʅPњYD QxU.dݾAak.(\+9EqMjğ yuX>i"OO_F9ATn3 0LEBc\,EdelB*Aؼ-'B t' Y-sD2&4g h&R(*cMcAB/3pȣw_Aے(_J 7dpeCqǰ@D:.r/h%h֪xrh rr-P}v{j" Mmtm aJi+/Z~M5"MT 4Y9'T&N0n]&H2eNِȬ}:*I $lvC G ]"uz7 ܈\X %p{Nh 6ɵ!Z3 *WQRK,Y;¯Iuur.?؊lU*|EȋZAbo fH jCǔ1zmʊs#= <"I8.|8dNvHUefIpS7E=SRT[H\P.*Uˢ>gEU45NAAeyZDIˤ۳Q5kb%WB6i<6k)Zv3Dk/t.esucd0t6Y`{ ~:K$28E,U'5*)ֹ }#t2v,Ñowl|h)s].D觠sɂ@lt)V 1ߪJtG+TI/WK}|t>~u|||B䕨bڑm 5$ɹjF8-4=13kp"P[܊t 2]|,DU}vaFrBFϲ G*h(jm&j(u_EVߜcqHL/'|v^sC FSM~M˶y.U\N~|ba85Vj]< A6͒fMek31u?[Nٲgn`+mW4G伮j߀`>&0v忄#Y?a"Xqnʃ`3Zi-(| M__Ƨ鳋 ;uZ2 6#ͅ59]Nr>鴰aCT6To؎s>rחz 軘m<ش(1>lᢈOMps0Z{un efa~Ϫk~(n301mc},ծ!vnæwg׹aGLL6 ; ki1 E8Z|E~ endstream endobj 8 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >> endobj 9 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >> endobj 10 0 obj << /Type /Font /Subtype /Type1 /Name /F3 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 11 0 obj << /Type /Font /Subtype /Type1 /Name /F4 /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding >> endobj 12 0 obj << /Type /Font /Subtype /Type1 /Name /F5 /BaseFont /Courier /Encoding /WinAnsiEncoding >> endobj 13 0 obj << /Type /XObject /Subtype /Image /Width 813 /Height 1107 /ColorSpace /DeviceRGB /Filter /DCTDecode /BitsPerComponent 8 /Length 49953>> stream JFIFC  !"$"$CS-" dE:5"ե'$"S$DgdOK%U4ʍMR/{K LD[ I Ly42uLA>kK{5_C{':qLņW[g;9dkhVgo,,;TGe{j)u#襺 0lkB]> n~ui'糶~8P>>σ#PϠ#3 N!lUQl-mڑ.;C`L|BIrM7sM3RˑYK_CiZ}@(Z_i^ {e_/ޜ9|>߼$GTk5}v/|Yʪ ěfA8{˃*S\%Kcr"*ɱ#RY@9 a皖"I둸ٕ.^,:dm)!fZlf&JAϠyDQ)JEDQ)JEDQ)M9cJ=:PT[1e%kQCVxBp:l(DEa4}(O^-Ő#i_(s28]$]l @ꣁY_E.ɔKV?K['tO⪲k/a-#͗\5^jF^[V*m>=y֫Nٔ.YecQߺЀ<{n""r' "r' *z$3מgkm윊e?C@(<mI4qRY`̥36N.YJ|Iy>v>_Dn0Z[*#.[ GBFc"/  tx'S2ZY#$, D{Z\p +ۊexz+ ?c@J4QTk1EtHs8p#y"HeÜ ȋ( hLWCKί?o\N$gnQF<60 j+>evgP~ݶ]T1)ZҟU8KV[d0fi@k=~1՟Z;\퀚¬ُQyM6hVZMHj" ZbRI*H*HjR#PJ>b%J?*G;kxeeo!MG+9rv2b rr85*'Ԑ+m[[)YdԜ4XOʍJEعT&Ң)2E{ |8U?رe7K .j7{\#M Q|{q|R OP]]r*dbldE˿R+.+Y_&([Uj;l uj2_?bqKċ,1wܧ$49죭LPI2$XMW)sTNGkDdJm %+U=1jH%sǩo(Nk!A';C %$JT*xSYm0piWs,*@$]sy–e}N; d֋Ÿjl_+k|Z9%`i2+J߆;qͪzJrX@LWYOD(~^HҜp2:^HHQAڠ妟UKQ {*Sӭr.AHezڠ2խH8HC$ֳo*Oa|/v_; a|/v_; a|/vBrqr#-mz .aful-+z*dnzvg*$z{6 f׹xs! ^9hI5ϳסfՊ}PN.u Jxt&MtK m%hՑ]uڭz::^K;#gD`kh?SYrg+rg+rg+rg+rg+r//{^bt]moٮ۪.ʇ+~?P)9l%0^ғ^؞f DAULVJI?e-k%mo/ʶC%I*+I$|Q"}c22K& M; (J0k| lj!mrGB[U5)oVz"5mH-[ V 9[zsrQPM ҬJ k&l(7z_,_U%PT $k[:gYl-euβ[:gYl-euβ[:gYl-eBrޙGf--ah-[F4V<rw'&+ާ<)5{PlkoE;9Wi&]7>N+}9]}VO찹#""VpE ^'JXᕱt$6N4I$MtK mϳpqG=ls9{g=ls9{g=ls9턵̯amuvWΪw U%a3O 䮡|W&jY7_e(~PN N[OUvAצAyA Aw)_"cX'ZjńJl83{H+Ji()Q.Icս3a>#+g6z4ij}E'!IÁMVPLt+ľ"+@%HQУM .GTU;"ȳ,;"ȳ,;"ȳ,;"ȳ,;"ȳ,;"Ȱ޶dN[{=Ev)2}dV϶@8m!=\_m``^/zkAH^z;yj.ΪM,LcB ]hEklk"ՙTկ/{xշ`az%'Z˖Q.QsU[@; nEo!\QkWs^1,Y7TtCZֹ( œr1JPBkZ(B84uagXYuagXYuagXYuagXYuagXYuaaܷ5v[:)m=>R n e$ŨMS˓;Es^E{^T 5Mbݦo1̊ I&&R9EN8 ggdYs˲,;"ȳ,;"ȳ,;"ȳ,;"ȳ, H42$ce ͭ"S(u- 5mMW㯨7W=Bwoj>͜H-%`T)FHX/u7$WM l;LВkPBXLT8!Wmu|*P[.oX(/z"ˆEAyuclp[8- glp[8- glp[8-VܷN]Ҋ',=r d;bmW]֑ބ.3Ü^ɞeOйrڀA9"M. 뜲/bWSU-0_OKa ̣`B֔?RU쭝vV[;+gel쭝vV[;+gel쭝vV[Q̭HuklG;)](X:%Z{K'Of 7ĄGZSH%gшB#^n?+Y2,0DԪf|(;l3apŁFY %!x%bi/p,d"أ1k̐gt+Ztm:e`r<\]2f[) j~`EIKZ~wM{kJ8Un!€U]!BT"( \p5 p\qtlœf./JW<\T ֨O 禿>+, a:mk}APg}APg}APg}APg}A:_ľ+ZZ獦޶[W>'=C,: N[Dxp5^"Pd  UDAduB"f'BN$]/"19Ŀ1QY&K[ֵĚX u:~{N=_ӯiu:~{N=_ӯiu:U5G5A!1Qp PR`a0"3@q?' U~9wQz5ڂ9M􀢆mw_&O>xfsW+~sb GolVuBcā>pcAU~U5)Qx'R.OS0:`VuV"u$6}'`BoDhY%I+Kmz^׭-Kmz^׭-釉k)nTnA=&I&ZI0/l6Qg"Ud*{P T,Bg =ШYBt @ 4 !1AQp PR`0@aqB"3?8hXj!,Tsqy GP?dOc ͮ=(EyWD@:*԰]"@ܑG|| ( xyqE tQry~O|+k x4HY>" Qօ +kø$k4r80P?J0.AOQAFɳx#/ %fP R|: YhrYk(OgO>pVXH.A#ɦL 6eJ э4cp3F7 э4cp3F7fdZIgJx:FKEB&gifvnHUJt`F26em41ic,hYьMfF 3K  !1"24AQ#Caq3`@BR $Pbr0Ds%cp?Q.& ӆnhT&k m'Dr_Vފ\v˛ us*ZpAFn}Aauqt'[qנ'("&ƌI8/ bmPI7#%^j?1#XuIQ97 )")q מ8;Z%klxee˵M*9f㱺 JIzC^x j#bVEogÅNjLh"'qU4C,B||&C(mA=i1" /M*L9u^GTQēaKlpoAfE<8`q>Ek-b.nyP}+X~vGCui.P-uRd>j-c*2yid{k\>$pSeWcwfV-ub?EEfk~P+Bײ_Gɇ"aTlk°bmbpޑXqGmV/qIr[\yaZ/aJ9cccNHP:EcGffo 4huBl-*}M3/_FM7ω2*uఎY\F+e9CHĈr-ζؼ nvG2ϡ6VcPh}0 0X!w~g0Ϟܫ۶ˌAj5#f|+3 +ggؼcǪ>>B_^?{}Gmmh/SssQ,Un?us+2D6e4QCuɘ_G+&lFY3^MzPҐH-)\f6DRT\_,n12! ݚZ 27JMKqGb0786y(\]> #knr-Q8$bٖLX"ha͑ .y2F t\n:c›xs1%T7Tyy4YF[; .,K4Rc "cf.bi<(RŴ3ii5 DL_,hF0ة%d1ry=%:rH5,ʶI5% jo9e߅DaYbUa!rB3;Ua $(Xz0LM騃aLbGa|>zA+({OUY5cjj\5oYq&`(obWD_g) ?"Ȇ$S2yL ,n.?),b+ ډ?5_ Υ1Z ]ͿU9LH1'.ߏEO>,۔Idy,@VCǕYL4n:?H3Zci}B8HQ&tÙes}}bYtLvb3r@F zu𥸵%N!v٭Ƭ"<R,u,Knrĭ![x{-:*fuX^5y(|mAuac7f8eaD~eE+`")"Ʃ'&s oT.Z)?/託4AVI,=UD.O/dx3 }EwZA@s-n4ƒIpˇ6޺Y)^"Tpe[=)\vv "(%)&Dieg F,.}&Xwk1aͷOhe n>K ])W1+vfU`F<yjIE5:0e<53PS7ij˧&L5?FƗfJcQ"'n_z\di+ٶ=YxaiM(FPTI[ֹ/ ɵk$4Z#ĭ.Z}Rȇ='iBGjDYy}A"F[GeW]1) pZH6#v ̭PyŲvTl&I$ʥT!6Ջ8ȶB PK3iK6e-"bԐ DbX[ɓ>MOѿٹRbG2GUt#y@J7*<D٭;Ղa\umKSۺfXiGoHc(ro(hȨ̹D nʇYXkKnQ `cz`&=<7@.+qj:d(ړsfixvo" ZYOh>SnYuAS&]{ҶYLrou8nE2IEJ9/hxoӿLDIT7D< G)L*,nlW'GJp#fT,^k;Eczw r7 XݛZ^dʼnԋ07e{Kpj2ap @uRWަTѶ2sښ(p2m7N >VOc-L`z3>ϨC? QhbfhJrzka]WTjx&RHGVP/#Ÿ_)˟$a\a4;2"ArB$on$,3rio4i¥a#(oQ3/OV- y޾XA&c 8zfin7ͿRG3 nnmR.LSL7+(`zh]XXEPA#l"M}|~}|~}|~}|~}|~}|~}|~}|~}|~}|~}|~}|~}|~}|~}|~}|~}|~}|~}|~}|~}|~}|~Y$FeպírI+JzL5|-M{V,Λ$K%4wӎ;Dw=Tc8Dw{zmhZ򤳰mHv nam߾hF WD[{M Ym1TPM;myaLAkzc.^urd-KRݝNc5IFi+5ULэ`voi-Sr;xy LW.cBfU)&ea`W+RImc*e𣣓?VndɹblTaPakﵩ$|C6b!amϪS#^U o6Vyws.` cyn>ɧ&Be-Xf99$ܡ.Sfvrಁ=jViyxaSj;C1#MUk4HW+K$2%ŁәdVP=Co5Kz逑9SjţkXQYNjϰKsLbFT.M׵µUps/k3GZ)qHa挖$_OY 6zXnd{OkoVrpz36!L(%S(7x[I_5TѴEFc}7!g dO`Gu8yu ^Vrz¦7ǒGOcEF[vc}L𯩏~1O¾?W? '_S+c}L𯩏~1O¾?W? '_S+c}L𯩏~1O¾?W? o}LfScR#EEI2u> N@XK+gjHcH9y +EAVy%ú'ĭHdۀ'fL&ǯgQ ^ ளز$Toaoس4$k՞'W^7k^ߐMT$6;m.U;d~Xy,%}I܎i9?Jؕ~V,d\fH79I:Vu( z0RmbE9vxz*x9fܢMK$3dR*'2ZcX4;7]03FY=r3 ,קMWU&:6uoRes$A[{O^ӝ#M՛~OgJ r=+4( 6l h*Nȧ_CY5e?Qvf2$2 .AS!$ }=[b1 @srco6RH{;bxs}][ڰ#Kfkbb)$>%77>mάn9fԷ/;<ۈܚO8eo+vS0oوɿlP4f1PE\np]tx]/pWGtx]/pWGtx]/pWGtx]/pWGtx]/pWGtx]/pPxT9-'8I^eAqX !u>2͇"#2rQ\ǪuA%ijQ^AHiƎ`"=4i[HI!TvH$-dmrn)!q}I Xyl,UkV-zxK&[$V@pVvTzqK#XozY29!c~-X9n&eǔgm]_8 roROu 18E&f#*<*͢Xe uNS2B|S1KAUnѰ[60c1 t9-~1 3M$R@sڕ0?1XIza'/.'6Z'/{{i3+]@߅bY p[>C=,i1 b|Ѳa_?jgke ye{g!v6U(Dm~iƂҕaQǔgm]_!Aڄz=a.B\ږ!zdD^=0KI&VDV<.[7;oe$^ApR [.^]bD#+wה^S}yO>+wה^S}yO>+wה^S}yO>+wה^S}yO>+wה^S}yO>+wהRHLʤOɆDy@5A>U^W+E#2B!sZzgm< 5 *4{pi!O`nC &vJKuo )9A5;MM(2s,h)ϴE5RyXX=ui<55[C2,m4V82!lxp22ZesxQF[-n(BYhV,;FÜnK˄(rw /jQOc3Ik5+('LTM%Gp* o?[j3MbÓf&mnQ32vޞl*ܢzɈWvv(&ϑdeoQ>UKg5 m}!άYdb8Q7)dmV5#R{*7fΞ&Ǫ E6vzîp,2?]xvaT at@3nïBi#oF92kP0^ʛc8{'d')𛺼n |&)𛺼n |&)𛺼n |&)𛺼n |&)𛺼n |&)𛺼n HITgx}l𷶆+62)Ge')(okF#kBrZacƂ% [On޺Hfw挤S.;5uG'prjFuPElݞ$gI-_Hd BHڰx#+f2.[ߨV=&<%s~`$aY|a"V' #.yK.7H{Mx1hyy sae[߯Rn';I iKk+Lb@?mM\Q#+exPsa2*j4O%,yn+h&dumVsvTDhÒ976/1)"LA5K)_R Fl,7,񱂶-Kys3kpKJöޛԷ?v@N8܁:4R1|S$"OڦNn`ލKHE&Fozv#5`wdH/B&3v"Kp1En#F-C:Aߜrs[[`y|ZڙKsk[I5?_.P7\DG6[^ʹ-lnn2P˽ #I>]rT B]Xڼn|V)[n|V)[n|V)[n|V)[n|V)[n:3 7ɆDy@5A>U^W+E#2B!sZzgm ʌ[04έ{ԲaPcja,d{!!}5rL#iA͔ߙ1s+ZpB%`w_Kxć3e<:MySo/Opd*4Y bdSh͘kʥ5Yxzxkk7Pd*4Y H£>{ަR@_{0#@/]} ~ޚqji"3xJ"4|=7]: rXYO rBgJ)==[QL*'$? aeyGWRosz |&)𛺋|ZM^S7uyO>wWM^S7uyO>wWM^S7uyO>wWM^S7uyO>wWM^S7uyOTXցQ0PsvXRȧV c q/X4Gtm`ylB(@\@ko5}5цV5q"c/UMԋmV(Ϊ(]x>CZ{m۽@X[Ie~Vyٯgt3CGReKiHdA .UUo9oOuf߬*n[5ÐokTYX? ۮ*[Lڈ @ n%{KWH/]"_D/ut~^%{KWH/]"_D/ut~^%{KWH/]"_곌unr![W3[n O3{+KaԽaKi~mbpr-_QfcC+MdgiA2Lg%}6WSqO\mJʹR,"[$9-Ɣfb#7 S-OveO #\1 PLVd‹ikU2LLre [sWV} C0]Tr&Ż/WU}+#yJUu- Q8 Df)ޗ$&{Ĩr,սa12VہXH96lϘ3v`~eXE['Hs78ۮD^+E{D^+E{D^+E{D^+E{D^+E{D^($r+7ØFw:ɬN"\ѭgHd VEUXqMWKl8("'qP1GT8&ke;vTTE4X2}ijZk(LV #r7eck2y4'OoRxJ,d;ҰD12 q~n}ч {}qȅ[xH+&&s$ vn)Dub4&yW5t贋14 LnEw6LymlQtZ#`xp8i2ꬬ^2mWD0;2,za#BsɿҍFWPXFX(Íi$b6Bxq~$q*ɑ!N W/aPtpfM{2KQM:ii7nMT.k1hGMVqцlF2SA @5IX93ֽ0d32Tm+?u)Uomx.BQg#nΫc/2 nsq5cn&D'0rB[0mED >ڈ9.U`-Lzgѩd\3cG4WHޛqx $ vR]4 x|}@{ rL+׽:'_j~?+WDs]º'tO? ~?+WDs]º'tO? ~?)`/d߽?&bWl8E]J6GxovpOԑ$zY&T͘KAu ҥl u |FBTqYlk^£P_KrCqOb4ɣ &2F{ u[K6Psqɽ- A;1?+5gTx('PE5̄*)B VWJԑLX_,<tQ.L|T t>qx` xj]2:Rט@,*C+J'-ў`roAfD>0 4M18(rpTЄIFTQf)z"Z)|r7f"yF(WwXS'V}99*qJ9 k!b5.k݆.qv@4w¸y>Hd12f1Dj`\).!!= -cRyF* G}W̸COںXpXM"" jPo#ٯ L `)v?tTj<\DPOOHB- ٳm{q+Yc0qJhОG&\̃8Ki9 Lx[UFb^W 7;vIy]fbc.U]@/RB dIyx!*-=yP0}JS>P2p5\dCϞ$\, 3 QF}4jK?䃚j`E)vZκEyA wA@ | P #fh|?̧p@ _ciPFFDg|B21E0- ۿwASnOЮ>$.PpHhl{n[4n/ =G9W1mkO3f@:M3fF=iEȶUqWe?7ꖪO(wQP'Ӆ k0~Lh--`ްv@DRb aꅕ-GE q0W:7 Fk3,*൘n.>QWж4:5TPYNܣi(Qze@`7 ƪXT\/j ''P{\$镦6 0ȁB20X›`Vzl1*<#­`k .CNler .`pՓh40`*5ETwYl2Ui R91xKyQL=5C#PV2DĪ$5*tAja4w+9Vb4,X@*٢iUv(b0(-_x {ʠpՓh40UVHD6&?P`I` GOA XDl150#!J#C*%`.]`XTz<\%1DIj;bv^T~,Pffdt8XÂ$݂ ZL 4C: (` 1j^EGw0$1'XY("ɀǽr@a© O &"$sS"s?~ɏŝ ssssssssssssssssssssssK ܶ0, t|hhaAO*P梆]AM+<(IװDOA(^ "bc #,KbOaa^ c!4 BuCXx('PE5̄*)Y \6\#P(I4,$"gc##a7v%Ю#Y;7{8c ZPW5NJ)k x J 0973g "bi7Z`1k@ rHQ0;WHO0K$$k"񚈋q%0L@5pE@%:A$1-c}@-L etBka +9~Bi;P;aC|D 5;|^֔cANۘwm2X#BˀF 7=%5#f:? {UILw(&E_d T& VEۖycX(&YjHDn_MAB4hP瘝$I$I$I$I$I 1;-g?ɲmE9'Csr+CqأfnG4( OА.(acAVo_8r c$#ydPcZPh, X4LL.J'? jH`s"Yd ˩b*b4=D l-"q% W@No2 2M-.ِHT

-T푼qqqqqqqqqqqqqqqqqqqqqqPFNܻy9p*ڀ)qjxb:?IT^?GgZ ȇ[N_.  N Gn.()E5K~`wp4$de c(`RE|Xf`G(1od ō?Xp! ,iźQo1l1{i+^"@'*>A.û B-QINF1b}[HkL"È@4ĤYԘ>3ahV>_hZ 3y\5 ^LyV vQ.%"Ea J9u6QřyaV'XRQda57wPfP6(A/OHYҕ2#G4i9sH#G4i9sH#G4i9 )b([ H%-Hw6Pǝ Ug0鑜iHn`DmPFOD|$` ? ;HiECcL4MLq4x;yYZV 5 o m*(`CW 0B0RR ZPArАT!Xzo ?E/XzEiFP~Z8@wvG:kxef0PZY]iX \&6=I%{FJeF.B cQ|P"$LtR ]nE06SmAJÜ5$JJAu FXE8 ~o:8,éMsgGD@ DXpΕ6}ZT` P x4lvc2ROUy ; ,%2w,P`NR\#Q4 Q&r[-#ĖnY0"Y:C#pDZ 5,"\7#"5 h&5 ;.ƙ "qH#G)R8qH#G)R8qH#G)R ܢ$ jA?xAtYR[d2H'-pS"YK;qA aI2!+Q㟖 %о"'0} ɌLRJ as`*|T)ˇ눒Ie6f4Xl=ΐQpϯBQу1cO@&v2 `!! PO^9l>YJ::m m7Om#I[]q:Jt|?4K30КC^G 47C \섙Fpg 7(%L),wLiPX7vW5H}4 O_H*@ 0k?@%`.ɢy$"gc#; 0}-[ da J9u6QřyaV'X ' r)!F٭xLQHYɀ ]2iG%[M7fcLXp>I+9?'&#G4i9sH#G4i9sH#G4i0@?ɂH-s@$j;([`V΅ȁ4a=$ QS?1n!#s b;5{4}w< i@OAOz`$vaA`b7J48'ocN ")ҶF~p%am%%JGho;5-oB@+5E @XKN0} ;qhK = I-uDR2f, f>c>0@3G)",)R8qH#G)R8qH#G)R0@ܲ$ jA?xAtY*7 UA;Ǩy0j[PvSK> Z>['BH ,#\:rn^Ȝ|7 bR gS9b[,YwiB0Az{,NExsK^ GX9ղYMaL ,meraV z9(v:F^;AP `z3fue7dV/M kDxS243M`-k3hU^'$ P[ڹPaտ0ZG;  葩{ I@akߚ$abARrTS2zBáFegNՃ_\ǔ zpF[,% i <,Mߥ9txO!Y(GP $"IFA f+@(`+zK GnQع8~BhBlQ.4 C pXQEС-"mC68MO&!U_LI e뵁@h9 "B@# DےaywAdpbpʉQA r p >* ޤ&Z3u{la6a*]@7!%FRY њ يmϺ("bC'LlN]׶DP[ 9B,_X1b:ߐEv|٥XCSч5-X uq,V n'0 3 @Oa0bo Z ,k0l(cf$记P q<q!+(?"DcI@3 3`^CE8Akl![dEɉCJ*id 8. CPQ[71ac}!% {s&Rab+rtޠ&t- la#b@w0V=6hB`6*0` h<.fX裄! SʘAH4'Vc?"1uZ6O9<<<<<<<<i<<<<<<Ü<<?_|-ڼ<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<#dKdnc 0k@nQ/id=D>ޞry:"XjOH{c3ӢCMqF4̿ BiS>;s$"g?2cZbc6f 3wLX5|>N njt`Mϓ`0TA;"i_VE7#]ϒ4=4V(``3xا9;@>&M\SYQށ 034GQA0-4:$fAqt ^j&frPR]璈wF*鑌&66 *\舀A(`6\vaҧD3X(4l ۔ V׶jr <}`Yх3O>ڧ| 0iS[{fG͏D8(.b^i'R}QPDD Q3Vm6\(g~Q4Nt͹AMNbX &w@[fH8Ѿa0~O^==:POQ ,哝<#`FohA0DTPF&oPnmN1K$& .NJh1>C7 \rvʂ NAwcr \j0{NO䭕B LZҷ302ڡh@ͩ哝<'Ⱦª0m  & .NJh1ad:4w" !LfFljRr#|9n(84:0ׄ`uD͟ gS <6ٖFf G3%ȓAXT(/y!Íg4f!'TK ̅,}AytN>8!4"` d"Zj*w@|s,QӔ.dNie[MbKL<,('(ƟC @oK&=*oSI gPX 9G h)pš h)`ptp&itj0D>K߻E taN0aiDG\:Xczh-}0D0aq܌ ?q7/ / ,!1AQaqP0`p@ ?B!`4s&8A 6Ͷ: P{=}# )ȟ B,`SwP>96B1i AtCE}EhBxqe kFMd<$ ?ށ Cќ]2! 8jub﩯@GqWz髟)MCŏLjgrP!XS#± ÎUU۶쀮Κ:0ꠃv1X |oC7M<Q!:9X@?Ak#4"*B5]zEFj*/-yA7]ClCUTk P&@5b/K]JӠ]FfBGt ?e522ÐU+"ٴQf$v~H ݣEV>:өcltnPaQ(yBѯD:@9aRfX)ʥ&GZF!*oY Xf!z`?Uܚ AoQŇsJ~ 6#,P T͑~?cԝ{HD7*#w*#ߘ ª*ǩ.#]KD꼼:ڄ A XN]pd$WN**ۊ1D:Jk=P NA'0_vXJӐ>a9aԡ' ;1}r?h?G|<:3rrM[`ĵMM9^S@&)+tA;މyxu41 zyV.]rռa+N@zBJEsrVv(YH$X&9 B=G@Xv@;Uܠr* UU9~0N]ЅvxFWt"Α:C㣾DU S]R7!Y#8D~Vwj.MWI0ڧBDý6FYSr$87{m- h E jD"Y_U$jxLӑNCVQd`H6{U%S^ |R9wA%Ud~m\ 9O%cU?r/iYU'TURyUIU' yUI2yⷻwjcܡi2|,G7E"B|sDIO֚PPsZkPen!N[;W}_`W}_`P$u?+!1AQa`@q P0pѱ?$dUPEl,N6 uÐRVq|xVQ$nkǞ=QF` q=9N( +\ SoT^umIJ!-3Q@EL=b%,{ͅ`0eh |r R88OUHHvL8D M({NA e P#LA,8ΟNRbSsxY|r!pDm#psg+# Cq%T'=T0NpxRv?T!SZ &PV"upcɰ'xtGqR8Ӊ WTyͻX(+YHiP=8GgQ´`T/ PC(T5s&F Ka:YpSm1@jЏ#B*0i2Wʾ6a=cLyTUF"%85 GrpNq:Jb6g.WHQ<; >p,k9F)ǭ֨SּrO"* Ux3MbdR ;ШCU@+0O_rYz0Br_a:T*pаr0D V+xΥ$ЭA@( "+{E⡶nvߎs\gI1 D@  Йlaa&p*@QeFbS,NDN:v;j/yt^NHUŠb34',Ķ Up*zѤs^"y+OTg}/DGiN &(WwZ2WEiv5B;QCUPQ8nj@U):ᛆq& &"槖SPÀDDDD'.%Cm#@P<Dc1p/d ]wM|P-uF{ A"%F&(T2UC[FSx#T( ?@͢Fu)Z mZL x~n k Tc/Q*:ln.T;clǎB3WPc6%0'Z׆,D\EݐN!;"2 j՜|}z@T,Eq.*[ү*+ő!,*tLgr9mvt(R f4 j [WD6舂.EDL]qC#SmDɌ' Sz-u,Ubqq(9R#Dլ8ܼ!. q 5J佋% 1 H9P$S(U#( H*]hE E Į(B$k޼WYP9\PW0Ҁbmu &Җ K% !,D:p3Tz$p o ]"[{ޡ3H&-7߈UņcE"I0jg*Z."i =FN1<*aށ 6/VF∔p&2J$#h@u^sdu0GYAb鸋\5bxe1P5BB'[]h(!("؀6 %B""J'րXh4?oB3+Sy (F sPO4cs*\yPͺ T?j:,J 4]DNG4Fb]DRPL.O]ՆwS)?b%1s[5B,@DoƝ:]v(J٬9>U (:" KQ18zA DFTfAFDAVCA (aus : htPR1+tB2V"9PF&zP^RB]WPL:˥e-HؓR̂z(=ӆ5D0^2&|3a)uXl!dX* ~0`DQf#( KBTK %I j^cK@%zF#)VmJ0k[A" HzA@f\H@xu9%HE2ڢV@MDh}x`i ixo5_+0%Np^J6 E١.Zގ[EH5Y<2Q "VCrj(|2r9 O$~ ϡnFxc 꽫 %v@&"^(J۾9}n۾9}n۾9}n۾9}n۾9}n۾9DU ʀ2@( ht]DTDZ'guC`*@qw}cHB⚐0D*TF.W6}<{xH.×h⪆$+ 4ȫ āPnYl tTpVg[6fv-̓yF hSѨDˆ`T*&P.AbŤm.= 7PV馵*yV.B1CЅEDB @h!jD_fcί-d aA4 uʤ"rj{O}Q ad?qM,^r? BUH&щCAMO2y+ɕ= :vK,2Ie]8^n{R0OhƜG!P*hƆ (($LFJ @I2"@:@VCJ$ 9Ԝi!"J`Zv0xz;_sS?T[bL DjիVZjիVZjիVH[`\W\ ` B}8uëb$}8Ӭ & :N8e/q-VǮ,%ZNke ZTd4yAqg*J #iM *c!`vnYXa[U_-Iao٘Ur+4\qPTP#0$B}u@J`[U@c9hPQkF3S[^ڐ(JssaEHԞ/"@`{l`sblIX dԁRP׷T#(tL|pF#QN@gD562Q)^r0Nuz Ƭ3R%PP)RRL Tꞧ!PQ'A"%|#)!Δ&{M|QuhF'7Vd @@*eB2 %1C 6VCR==}2KN̈ K*:QPQsyY4P÷+E*JM9 EQ%XiaD΄˶ m (wݪ) G]S@UUuٔUTN".= p58+BhGU%'rXITܟ芺xP +Wn۾9}n۾9}n۾9}n۾9}n۾9B^ш룊"^fb@P,0sT)]^OG`-BR8E7yho(mQ=ɡH#zs*MD*F\pR֙"*K̓ F /r#KV+ŁAofcί-dLڀ($eK w)vC1`=ґAA tfkqeq tcAUEm{7Ӱa:c51CB5%j6zP_~8;_E28:zpP UX=_)ج"Q?oZjիVZjիVZjիV$*?n˜"NadN="San*K|U1m R}h2mʑGXZͧhML"{1z;oU-|;\Ԗ-A@POG("AUE< bD.XD:+{Ţ@a~ +z/LJ*Yy '"@鋭%c2-:Ue@g#HR(ҏ@b*p 'oY* zAð,eeSc:SJTOZ藠ޖyк$k@ &"HչpN%uj-|~&M 0~R ZWZAVUrM@Q 'Uh&$ 6Q=^1Bz":>sk`vP+f5;m"'HB#0%+~) (C@g $H\׏)#뚒.N-7 !0ㆢ(#TF9kOɵXs0!9D֫ ,{(щ5u%'ڠ dN "## -1eX j h0U"Evڪi\uGATU]?nxǏҪj]Q   jCFV$ol{ hG & (6!0Zy9 #VS0` R!qaEtҗ6Pb6d8wL@E2}o̰e"L,D7E|L|[pCTz8QDG:_۞Q=Ś )׸DAS.WL@ V] b%[ ' ۩BVҊɘ pL*I(S24Zp^ /L H6 EAV ʪ,֗`yP( =[MxeCߖ"-D*$$Ϸ|Ϸ|Ϸ|Ϸ|Ϸ|B -@*yaV#QY D20yGe.P@iB*L#Bprs7}WWlKqf@Tǫ>i H>‰ ;T1H P  >`Tm*A%),$C*Mr!j~%+Q(QSUAHf hr;h"3 Z }*3e{~çN"X (ET#b DPCqN>if&8m <4UD+&"%ӮYcтG:UH U*tzLFD;/J krX.TEִQt_R /2du'u=,B*xԏ s:O:kWXap1; (T{0*siD-9д@*GN%İLAr%(0;Bءg0"&P@D'cO2zh\BI$S r١"!7d CASBFD(@XErE%,*)SB-a`pt{NG~N@*z_}P[{z 5ljdhZ B#v&w Ae"umCZ֠Tid *U 11EDrt5P ET!: 8@- ^g Z$[t8?)7DDDDDDDDDW%ZGB1Cs֊B,`OIBDxJdU DGЈU}87CV(҄<8W@* &at"ZJawT Qke I"f@ J]4Tb#N LB !4 Z7G)@#vQ:m8ɒT@/ 9veױmlOb5PhhLJR4R‚FSJ|VZ3E 4GVZ=ZV6V-J;( 1S+=+>+ Jf> endobj 15 0 obj << /Type /Action /S /URI /URI (https://homepage-nach-preis.de/?sdm_process_download=1&download_id=8174) >> endobj 16 0 obj << /Type /Annot /Subtype /Link /A 17 0 R /Border [0 0 0] /H /I /Rect [ 80.9960 133.9806 480.4640 146.1906 ] >> endobj 17 0 obj << /Type /Action /S /URI /URI (https://github.com/HNP-Christopher-Rohde/hnp-openstreetmap-wordpress-plugin/tree/main/hnp_openstreetmap) >> endobj 18 0 obj << /Type /Annot /Subtype /Link /A 19 0 R /Border [0 0 0] /H /I /Rect [ 35.0000 119.3286 230.4320 131.5386 ] >> endobj 19 0 obj << /Type /Action /S /URI /URI (https://github.com/HNP-Christopher-Rohde/hnp-openstreetmap-wordpress-plugin/tree/main/hnp_openstreetmap) >> endobj 20 0 obj << /Type /XObject /Subtype /Image /Width 300 /Height 313 /Filter /FlateDecode /DecodeParms << /Predictor 15 /Colors 1 /Columns 300 /BitsPerComponent 8>> /ColorSpace /DeviceGray /BitsPerComponent 8 /Length 3962>> stream x]ݙ7ɣ_N:p:!l |%PKM@ ہc 6H3hXqxp8ddddԤ`?8RԷL:v;a/nE v{B*.ĪSwnQ;W? >QEխJ>>:c\e@A/nY*  ʁ.u{jRWԁ,\IV^|?RG_OnԡfU0Nz\'p𠞸3hG;#+ 7WY81XyЇfXY88QιN<, ',hMh*  uN|\e@j1`摋 XGeXeӒŀaeǧU=}uAw풬"2xhR$k)tOlmL}~hlX0B$˒Xp -y%{!*IV G T=U~#x%m9`x=t:" =Hiɲ\noƧՓ]16 eq2{QȪA:y %dUQ\-qCʉݑI*zTb.̕>f5b7uij:zlXK`V9p,6b$݊LJ b^/W @7ry,V{l|,)~|f3F*3-XK,ai 9Y]>Vj&e}LVRQeu(N.bC"3(dNhˠP%# K1L$ecanZxsH*,VrU˓Cbn,VrSyFX, 効HLYavqZ0YPYa_BTEc 2("ptU:# NrƋ~^hN Kj"Q5#98dt6]2E$Dրόdqr3M̠,?,R Q'\i:iKNHŜ`\! X-7o LCݭ^A^66e8O&Q~W la sgIPK(kjg Qx2yS8ֶ=KؙkTX_؊p*WkZ&5֥`+শSK8n 0>5֑؅Ա.pP/CɃ8la8s96K8gx:&4$25}Um@lp݀=*!bMG^꠆ݶw=XzZR( 6|։*pSYc qKԩmQqM!ȈS⡲ATQRRg0Ѿfu8f6 p͖[C!H*bcu/7g^:f*hUx4v4!ZRUg@ qt&7%NQXJ쑨}7:DOE0Ru8ՁZXɭ sT|ax*I6fm:;:Biܐ Ò1L_lv_CNBN :T!`7k{B/7tkA:sb5ʓ5ԡ8.!pjWC(Q OzKK!8Ǚ^J5?T]+TjNC-pF +jy(YPC2=NɎK/m\C& $i6 r:0ti pHCN3?K)*G=:*X1ECku PKEL/%/u^ 6ŋR!p9PGN18P :OÁ*YFk[&;l+mNcQOZC#Q`bp`JSꐿ!^I5saL!RJI8Ww`kg+(+d /RPT"|nU6CgM*e [1h>JC [)%㸥bP b.JX?pÈԑ'R|lՉ7S #֕:+uao(u1'pxK0[꼧b-uS1RǛmVapS4R KwV #Ȇ[+RJK7W #hc:u:@)ubA(ubO#}IxK% TWd0g8Y4RN&V/RS WӤNNV KHb:Y1X@Vԑ)b8d.ub:Mt2b:Y1 J0؆CJ*ub[UŒ^, wiYdQhpP+CV nK> /ColorSpace [ /Indexed /DeviceRGB 7 22 0 R ] /BitsPerComponent 4 /Length 1816>> stream xQn8 `kO`aaN0GbQI-HJEđ?8mq]*nf髼Y)YTIY5++i2ꛥ3Wf$fFЪ)Y%1+_jJVڭ U,}39Y%'fV6VɪY_,CVy U[V+XW @Vg}|U)K,×P 뻇g`U҆+'#zy!)K@VM*U.Ϊ|g5eU cʪVV5ú$*4YaMԱn;ln]G-{7 :Xqm%ƊsY_Xamg -x /鏠Sx?1^W.-a>)n0S'OiWsl:^ݸ[?Qm<-]]]6z³ĩ6,qXuZYK|kEV|Vxhd5VVl^Yދ˔YaD`E뺋VL߳#xXjw0e,6/ dהj{ <]tq_q|Pu W3, pK)×sy%kKEfI],XKˊ,$U wId1`(̐,.#,Fr}ZNYw~u= >9);Ё]4d㥙U!7`~Pڑf=^R_|U|>F8 -?#RŽf1{篗DTg a/b)V_XvOf Rq5X"m>.1`eCpk{X>Ew^v~}ķzƈ. fsFEEg t(F0`ݪ̀EE,B.pz;e,4ZznmHf!f_xXx fÅ@l!u-c 6F.=篾&*.ZGAְwTm}Åz(,t) O NպXɟk=U0ZK jjLj9K|ThM_/ƲN{tG U'Le!'O7M+2_^-b啲˖[+jr{X=P]S`P圬F{rNVʩ\7>Qtyy[=U)[h|rNVВيY=]TN3r\ܣJ_S? endstream endobj 22 0 obj << /Filter /FlateDecode /Length 35 >> stream xGpLM# endstream endobj 23 0 obj << /Type /ExtGState /BM /Normal /CA 0.3 >> endobj 24 0 obj << /Type /ExtGState /BM /Normal /ca 0.3 >> endobj 25 0 obj << /Type /ExtGState /BM /Normal /CA 1 >> endobj 26 0 obj << /Type /ExtGState /BM /Normal /ca 1 >> endobj 27 0 obj << /Type /Page /MediaBox [0.000 0.000 595.280 841.890] /Parent 3 0 R /Contents 28 0 R >> endobj 28 0 obj << /Filter /FlateDecode /Length 1626 >> stream xXmS8ίvvbvp^R]gt)/77vvÍWEǵ jWRvxX(Ǝ비z}Di$I/])r80$1p7N M[  raZ_nz@:\y6-`o00EF5/%69ESdJD i$IEc>rL{be5Ox 0Mj[QY" yu| qs$j.򮳁ts= *Go5&=Lr3"m7ORE%KNSߝN4t~^z|b}X/O՜آM+G^? WKP-)=󡫿zLF~L'qQ tMCGm>eGre` )#k],NB0쩋o%71oB;՗zXĵ-FŽ6l/Wy#+JА)mP}?<;wzӝVw4 \`ث"f>S;=з5N0[ UXM}~1#Q/Qysqo.5d}00*ɧ)tѲy9ahL ڍupz,,,Z*y|~N3y֕a[P@=Uof4QRsf=up[tk }r?ΠUK1J9v{>ML endstream endobj 29 0 obj << /Type /XObject /Subtype /Image /Width 300 /Height 313 /Filter /FlateDecode /DecodeParms << /Predictor 15 /Colors 1 /Columns 300 /BitsPerComponent 8>> /ColorSpace /DeviceGray /BitsPerComponent 8 /Length 3962>> stream x]ݙ7ɣ_N:p:!l |%PKM@ ہc 6H3hXqxp8ddddԤ`?8RԷL:v;a/nE v{B*.ĪSwnQ;W? >QEխJ>>:c\e@A/nY*  ʁ.u{jRWԁ,\IV^|?RG_OnԡfU0Nz\'p𠞸3hG;#+ 7WY81XyЇfXY88QιN<, ',hMh*  uN|\e@j1`摋 XGeXeӒŀaeǧU=}uAw풬"2xhR$k)tOlmL}~hlX0B$˒Xp -y%{!*IV G T=U~#x%m9`x=t:" =Hiɲ\noƧՓ]16 eq2{QȪA:y %dUQ\-qCʉݑI*zTb.̕>f5b7uij:zlXK`V9p,6b$݊LJ b^/W @7ry,V{l|,)~|f3F*3-XK,ai 9Y]>Vj&e}LVRQeu(N.bC"3(dNhˠP%# K1L$ecanZxsH*,VrU˓Cbn,VrSyFX, 効HLYavqZ0YPYa_BTEc 2("ptU:# NrƋ~^hN Kj"Q5#98dt6]2E$Dրόdqr3M̠,?,R Q'\i:iKNHŜ`\! X-7o LCݭ^A^66e8O&Q~W la sgIPK(kjg Qx2yS8ֶ=KؙkTX_؊p*WkZ&5֥`+শSK8n 0>5֑؅Ա.pP/CɃ8la8s96K8gx:&4$25}Um@lp݀=*!bMG^꠆ݶw=XzZR( 6|։*pSYc qKԩmQqM!ȈS⡲ATQRRg0Ѿfu8f6 p͖[C!H*bcu/7g^:f*hUx4v4!ZRUg@ qt&7%NQXJ쑨}7:DOE0Ru8ՁZXɭ sT|ax*I6fm:;:Biܐ Ò1L_lv_CNBN :T!`7k{B/7tkA:sb5ʓ5ԡ8.!pjWC(Q OzKK!8Ǚ^J5?T]+TjNC-pF +jy(YPC2=NɎK/m\C& $i6 r:0ti pHCN3?K)*G=:*X1ECku PKEL/%/u^ 6ŋR!p9PGN18P :OÁ*YFk[&;l+mNcQOZC#Q`bp`JSꐿ!^I5saL!RJI8Ww`kg+(+d /RPT"|nU6CgM*e [1h>JC [)%㸥bP b.JX?pÈԑ'R|lՉ7S #֕:+uao(u1'pxK0[꼧b-uS1RǛmVapS4R KwV #Ȇ[+RJK7W #hc:u:@)ubA(ubO#}IxK% TWd0g8Y4RN&V/RS WӤNNV KHb:Y1X@Vԑ)b8d.ub:Mt2b:Y1 J0؆CJ*ub[UŒ^, wiYdQhpP+CV nK> /ColorSpace [ /Indexed /DeviceRGB 7 31 0 R ] /BitsPerComponent 4 /Length 1816>> stream xQn8 `kO`aaN0GbQI-HJEđ?8mq]*nf髼Y)YTIY5++i2ꛥ3Wf$fFЪ)Y%1+_jJVڭ U,}39Y%'fV6VɪY_,CVy U[V+XW @Vg}|U)K,×P 뻇g`U҆+'#zy!)K@VM*U.Ϊ|g5eU cʪVV5ú$*4YaMԱn;ln]G-{7 :Xqm%ƊsY_Xamg -x /鏠Sx?1^W.-a>)n0S'OiWsl:^ݸ[?Qm<-]]]6z³ĩ6,qXuZYK|kEV|Vxhd5VVl^Yދ˔YaD`E뺋VL߳#xXjw0e,6/ dהj{ <]tq_q|Pu W3, pK)×sy%kKEfI],XKˊ,$U wId1`(̐,.#,Fr}ZNYw~u= >9);Ё]4d㥙U!7`~Pڑf=^R_|U|>F8 -?#RŽf1{篗DTg a/b)V_XvOf Rq5X"m>.1`eCpk{X>Ew^v~}ķzƈ. fsFEEg t(F0`ݪ̀EE,B.pz;e,4ZznmHf!f_xXx fÅ@l!u-c 6F.=篾&*.ZGAְwTm}Åz(,t) O NպXɟk=U0ZK jjLj9K|ThM_/ƲN{tG U'Le!'O7M+2_^-b啲˖[+jr{X=P]S`P圬F{rNVʩ\7>Qtyy[=U)[h|rNVВيY=]TN3r\ܣJ_S? endstream endobj 31 0 obj << /Filter /FlateDecode /Length 35 >> stream xGpLM# endstream endobj 32 0 obj << /Type /Page /MediaBox [0.000 0.000 595.280 841.890] /Parent 3 0 R /Contents 33 0 R >> endobj 33 0 obj << /Filter /FlateDecode /Length 1512 >> stream xXmsF_0q2ӫRpL@!xl $8pB;>Xn_}vN^%>Dۿb,&[\D|\^I,!"Lr8 䁐Y, y /5}bu,%+I` tG LXFt ,_2,U܎ GUsTӔʝ5*M*QYxI[ gPY ~{Rl|p{3)a~AxΔ2$F p4?u۞5tI2l Q n E^hM1oKd)]kq{^C0f,䌁`笐 (a@LN, rhX6:).h0 u<Lݨj8,i`05 |*Qba`#V)ИpͣGO0L023#<$TV+G59Ah%N I#ŵRޥqu,c>uZlʳ(*}2 mXr!$H)\D*IXӅԱVxE#},mueXU$XB}?b\#sy'nL[ldۺC4@ +* hNco3uY(N[UꑺM }+X%2C<} 6F޳X,4]GMt&q擷|:'HӬEՙD7 >:K)=O,d݊'ka2!b9&6MDjnIQ*j Hr[3UV;?|]οEe'ֳi۟!2b ޕ0> /ColorSpace /DeviceGray /BitsPerComponent 8 /Length 3962>> stream x]ݙ7ɣ_N:p:!l |%PKM@ ہc 6H3hXqxp8ddddԤ`?8RԷL:v;a/nE v{B*.ĪSwnQ;W? >QEխJ>>:c\e@A/nY*  ʁ.u{jRWԁ,\IV^|?RG_OnԡfU0Nz\'p𠞸3hG;#+ 7WY81XyЇfXY88QιN<, ',hMh*  uN|\e@j1`摋 XGeXeӒŀaeǧU=}uAw풬"2xhR$k)tOlmL}~hlX0B$˒Xp -y%{!*IV G T=U~#x%m9`x=t:" =Hiɲ\noƧՓ]16 eq2{QȪA:y %dUQ\-qCʉݑI*zTb.̕>f5b7uij:zlXK`V9p,6b$݊LJ b^/W @7ry,V{l|,)~|f3F*3-XK,ai 9Y]>Vj&e}LVRQeu(N.bC"3(dNhˠP%# K1L$ecanZxsH*,VrU˓Cbn,VrSyFX, 効HLYavqZ0YPYa_BTEc 2("ptU:# NrƋ~^hN Kj"Q5#98dt6]2E$Dրόdqr3M̠,?,R Q'\i:iKNHŜ`\! X-7o LCݭ^A^66e8O&Q~W la sgIPK(kjg Qx2yS8ֶ=KؙkTX_؊p*WkZ&5֥`+শSK8n 0>5֑؅Ա.pP/CɃ8la8s96K8gx:&4$25}Um@lp݀=*!bMG^꠆ݶw=XzZR( 6|։*pSYc qKԩmQqM!ȈS⡲ATQRRg0Ѿfu8f6 p͖[C!H*bcu/7g^:f*hUx4v4!ZRUg@ qt&7%NQXJ쑨}7:DOE0Ru8ՁZXɭ sT|ax*I6fm:;:Biܐ Ò1L_lv_CNBN :T!`7k{B/7tkA:sb5ʓ5ԡ8.!pjWC(Q OzKK!8Ǚ^J5?T]+TjNC-pF +jy(YPC2=NɎK/m\C& $i6 r:0ti pHCN3?K)*G=:*X1ECku PKEL/%/u^ 6ŋR!p9PGN18P :OÁ*YFk[&;l+mNcQOZC#Q`bp`JSꐿ!^I5saL!RJI8Ww`kg+(+d /RPT"|nU6CgM*e [1h>JC [)%㸥bP b.JX?pÈԑ'R|lՉ7S #֕:+uao(u1'pxK0[꼧b-uS1RǛmVapS4R KwV #Ȇ[+RJK7W #hc:u:@)ubA(ubO#}IxK% TWd0g8Y4RN&V/RS WӤNNV KHb:Y1X@Vԑ)b8d.ub:Mt2b:Y1 J0؆CJ*ub[UŒ^, wiYdQhpP+CV nK> /ColorSpace [ /Indexed /DeviceRGB 7 36 0 R ] /BitsPerComponent 4 /Length 1816>> stream xQn8 `kO`aaN0GbQI-HJEđ?8mq]*nf髼Y)YTIY5++i2ꛥ3Wf$fFЪ)Y%1+_jJVڭ U,}39Y%'fV6VɪY_,CVy U[V+XW @Vg}|U)K,×P 뻇g`U҆+'#zy!)K@VM*U.Ϊ|g5eU cʪVV5ú$*4YaMԱn;ln]G-{7 :Xqm%ƊsY_Xamg -x /鏠Sx?1^W.-a>)n0S'OiWsl:^ݸ[?Qm<-]]]6z³ĩ6,qXuZYK|kEV|Vxhd5VVl^Yދ˔YaD`E뺋VL߳#xXjw0e,6/ dהj{ <]tq_q|Pu W3, pK)×sy%kKEfI],XKˊ,$U wId1`(̐,.#,Fr}ZNYw~u= >9);Ё]4d㥙U!7`~Pڑf=^R_|U|>F8 -?#RŽf1{篗DTg a/b)V_XvOf Rq5X"m>.1`eCpk{X>Ew^v~}ķzƈ. fsFEEg t(F0`ݪ̀EE,B.pz;e,4ZznmHf!f_xXx fÅ@l!u-c 6F.=篾&*.ZGAְwTm}Åz(,t) O NպXɟk=U0ZK jjLj9K|ThM_/ƲN{tG U'Le!'O7M+2_^-b啲˖[+jr{X=P]S`P圬F{rNVʩ\7>Qtyy[=U)[h|rNVВيY=]TN3r\ܣJ_S? endstream endobj 36 0 obj << /Filter /FlateDecode /Length 35 >> stream xGpLM# endstream endobj 37 0 obj << /Type /Page /MediaBox [0.000 0.000 595.280 841.890] /Parent 3 0 R /Contents 38 0 R >> endobj 38 0 obj << /Filter /FlateDecode /Length 1436 >> stream xXmoH_1R$G[((xXku];o8)'gޞmb>w~I{, v?Yp<#m9ܤ0 O@Ԥ7ynܰkw9 -|'%OHd ɵ1DwV TceY.˸(D|GTk!"?` I]W'OS*K5F.韟P׹^Q|2QAH6њeyQՓ"ϙ)$Mۓ^tL䗎Ry\fr )0#K9BB]Zb9$*-Y\%̊ ~޳\h[-q0 (|DH[澚w(EgJ!aa 6jl 'eU YK%xHJH4lm%FB/ Ŭ}k=0! .?\Gu] QbuəuVNteKІe@D b)LJsӪb;HS4`Xv,BulꐴxQqH:*49K[ /pbC-fU,5:D8 6-JZ#[+2.Zlv-HrBGGϪ H7 5baF+Yȸ]ݲ@̱̕oyOER~6FmCR*.$UD*۶yyOr?~~[_aClaX9=íd#'h-lZ `y( 17ᇗ.Wo箮^ 5-ie ݨ2̇W۹q>i@7stmcjhq̄Fo#x]>r#r7aؼ( baћkfJ~wxjv1.v{8C8OZjwI6`~2[lCwJ N v`9ܨFs1|o >VD=i[V. 0/.*I> 6}u' endstream endobj 39 0 obj << /Type /XObject /Subtype /Image /Width 300 /Height 313 /Filter /FlateDecode /DecodeParms << /Predictor 15 /Colors 1 /Columns 300 /BitsPerComponent 8>> /ColorSpace /DeviceGray /BitsPerComponent 8 /Length 3962>> stream x]ݙ7ɣ_N:p:!l |%PKM@ ہc 6H3hXqxp8ddddԤ`?8RԷL:v;a/nE v{B*.ĪSwnQ;W? >QEխJ>>:c\e@A/nY*  ʁ.u{jRWԁ,\IV^|?RG_OnԡfU0Nz\'p𠞸3hG;#+ 7WY81XyЇfXY88QιN<, ',hMh*  uN|\e@j1`摋 XGeXeӒŀaeǧU=}uAw풬"2xhR$k)tOlmL}~hlX0B$˒Xp -y%{!*IV G T=U~#x%m9`x=t:" =Hiɲ\noƧՓ]16 eq2{QȪA:y %dUQ\-qCʉݑI*zTb.̕>f5b7uij:zlXK`V9p,6b$݊LJ b^/W @7ry,V{l|,)~|f3F*3-XK,ai 9Y]>Vj&e}LVRQeu(N.bC"3(dNhˠP%# K1L$ecanZxsH*,VrU˓Cbn,VrSyFX, 効HLYavqZ0YPYa_BTEc 2("ptU:# NrƋ~^hN Kj"Q5#98dt6]2E$Dրόdqr3M̠,?,R Q'\i:iKNHŜ`\! X-7o LCݭ^A^66e8O&Q~W la sgIPK(kjg Qx2yS8ֶ=KؙkTX_؊p*WkZ&5֥`+শSK8n 0>5֑؅Ա.pP/CɃ8la8s96K8gx:&4$25}Um@lp݀=*!bMG^꠆ݶw=XzZR( 6|։*pSYc qKԩmQqM!ȈS⡲ATQRRg0Ѿfu8f6 p͖[C!H*bcu/7g^:f*hUx4v4!ZRUg@ qt&7%NQXJ쑨}7:DOE0Ru8ՁZXɭ sT|ax*I6fm:;:Biܐ Ò1L_lv_CNBN :T!`7k{B/7tkA:sb5ʓ5ԡ8.!pjWC(Q OzKK!8Ǚ^J5?T]+TjNC-pF +jy(YPC2=NɎK/m\C& $i6 r:0ti pHCN3?K)*G=:*X1ECku PKEL/%/u^ 6ŋR!p9PGN18P :OÁ*YFk[&;l+mNcQOZC#Q`bp`JSꐿ!^I5saL!RJI8Ww`kg+(+d /RPT"|nU6CgM*e [1h>JC [)%㸥bP b.JX?pÈԑ'R|lՉ7S #֕:+uao(u1'pxK0[꼧b-uS1RǛmVapS4R KwV #Ȇ[+RJK7W #hc:u:@)ubA(ubO#}IxK% TWd0g8Y4RN&V/RS WӤNNV KHb:Y1X@Vԑ)b8d.ub:Mt2b:Y1 J0؆CJ*ub[UŒ^, wiYdQhpP+CV nK> /ColorSpace [ /Indexed /DeviceRGB 7 41 0 R ] /BitsPerComponent 4 /Length 1816>> stream xQn8 `kO`aaN0GbQI-HJEđ?8mq]*nf髼Y)YTIY5++i2ꛥ3Wf$fFЪ)Y%1+_jJVڭ U,}39Y%'fV6VɪY_,CVy U[V+XW @Vg}|U)K,×P 뻇g`U҆+'#zy!)K@VM*U.Ϊ|g5eU cʪVV5ú$*4YaMԱn;ln]G-{7 :Xqm%ƊsY_Xamg -x /鏠Sx?1^W.-a>)n0S'OiWsl:^ݸ[?Qm<-]]]6z³ĩ6,qXuZYK|kEV|Vxhd5VVl^Yދ˔YaD`E뺋VL߳#xXjw0e,6/ dהj{ <]tq_q|Pu W3, pK)×sy%kKEfI],XKˊ,$U wId1`(̐,.#,Fr}ZNYw~u= >9);Ё]4d㥙U!7`~Pڑf=^R_|U|>F8 -?#RŽf1{篗DTg a/b)V_XvOf Rq5X"m>.1`eCpk{X>Ew^v~}ķzƈ. fsFEEg t(F0`ݪ̀EE,B.pz;e,4ZznmHf!f_xXx fÅ@l!u-c 6F.=篾&*.ZGAְwTm}Åz(,t) O NպXɟk=U0ZK jjLj9K|ThM_/ƲN{tG U'Le!'O7M+2_^-b啲˖[+jr{X=P]S`P圬F{rNVʩ\7>Qtyy[=U)[h|rNVВيY=]TN3r\ܣJ_S? endstream endobj 41 0 obj << /Filter /FlateDecode /Length 35 >> stream xGpLM# endstream endobj 42 0 obj << /Type /Page /MediaBox [0.000 0.000 595.280 841.890] /Parent 3 0 R /Contents 43 0 R >> endobj 43 0 obj << /Filter /FlateDecode /Length 1047 >> stream xXao:ίJ;N7nSv4 e$lQvŴt h gyO%')q%܆ 1)´7?R6MS7ڑ_0_r?e9C)Z[Nr ލ`u$Nn5M 33{Ķml;R~E %;"Jˮ# ߸A~w֜Kƹ3)>W> /ColorSpace /DeviceGray /BitsPerComponent 8 /Length 3962>> stream x]ݙ7ɣ_N:p:!l |%PKM@ ہc 6H3hXqxp8ddddԤ`?8RԷL:v;a/nE v{B*.ĪSwnQ;W? >QEխJ>>:c\e@A/nY*  ʁ.u{jRWԁ,\IV^|?RG_OnԡfU0Nz\'p𠞸3hG;#+ 7WY81XyЇfXY88QιN<, ',hMh*  uN|\e@j1`摋 XGeXeӒŀaeǧU=}uAw풬"2xhR$k)tOlmL}~hlX0B$˒Xp -y%{!*IV G T=U~#x%m9`x=t:" =Hiɲ\noƧՓ]16 eq2{QȪA:y %dUQ\-qCʉݑI*zTb.̕>f5b7uij:zlXK`V9p,6b$݊LJ b^/W @7ry,V{l|,)~|f3F*3-XK,ai 9Y]>Vj&e}LVRQeu(N.bC"3(dNhˠP%# K1L$ecanZxsH*,VrU˓Cbn,VrSyFX, 効HLYavqZ0YPYa_BTEc 2("ptU:# NrƋ~^hN Kj"Q5#98dt6]2E$Dրόdqr3M̠,?,R Q'\i:iKNHŜ`\! X-7o LCݭ^A^66e8O&Q~W la sgIPK(kjg Qx2yS8ֶ=KؙkTX_؊p*WkZ&5֥`+শSK8n 0>5֑؅Ա.pP/CɃ8la8s96K8gx:&4$25}Um@lp݀=*!bMG^꠆ݶw=XzZR( 6|։*pSYc qKԩmQqM!ȈS⡲ATQRRg0Ѿfu8f6 p͖[C!H*bcu/7g^:f*hUx4v4!ZRUg@ qt&7%NQXJ쑨}7:DOE0Ru8ՁZXɭ sT|ax*I6fm:;:Biܐ Ò1L_lv_CNBN :T!`7k{B/7tkA:sb5ʓ5ԡ8.!pjWC(Q OzKK!8Ǚ^J5?T]+TjNC-pF +jy(YPC2=NɎK/m\C& $i6 r:0ti pHCN3?K)*G=:*X1ECku PKEL/%/u^ 6ŋR!p9PGN18P :OÁ*YFk[&;l+mNcQOZC#Q`bp`JSꐿ!^I5saL!RJI8Ww`kg+(+d /RPT"|nU6CgM*e [1h>JC [)%㸥bP b.JX?pÈԑ'R|lՉ7S #֕:+uao(u1'pxK0[꼧b-uS1RǛmVapS4R KwV #Ȇ[+RJK7W #hc:u:@)ubA(ubO#}IxK% TWd0g8Y4RN&V/RS WӤNNV KHb:Y1X@Vԑ)b8d.ub:Mt2b:Y1 J0؆CJ*ub[UŒ^, wiYdQhpP+CV nK> /ColorSpace [ /Indexed /DeviceRGB 7 46 0 R ] /BitsPerComponent 4 /Length 1816>> stream xQn8 `kO`aaN0GbQI-HJEđ?8mq]*nf髼Y)YTIY5++i2ꛥ3Wf$fFЪ)Y%1+_jJVڭ U,}39Y%'fV6VɪY_,CVy U[V+XW @Vg}|U)K,×P 뻇g`U҆+'#zy!)K@VM*U.Ϊ|g5eU cʪVV5ú$*4YaMԱn;ln]G-{7 :Xqm%ƊsY_Xamg -x /鏠Sx?1^W.-a>)n0S'OiWsl:^ݸ[?Qm<-]]]6z³ĩ6,qXuZYK|kEV|Vxhd5VVl^Yދ˔YaD`E뺋VL߳#xXjw0e,6/ dהj{ <]tq_q|Pu W3, pK)×sy%kKEfI],XKˊ,$U wId1`(̐,.#,Fr}ZNYw~u= >9);Ё]4d㥙U!7`~Pڑf=^R_|U|>F8 -?#RŽf1{篗DTg a/b)V_XvOf Rq5X"m>.1`eCpk{X>Ew^v~}ķzƈ. fsFEEg t(F0`ݪ̀EE,B.pz;e,4ZznmHf!f_xXx fÅ@l!u-c 6F.=篾&*.ZGAְwTm}Åz(,t) O NպXɟk=U0ZK jjLj9K|ThM_/ƲN{tG U'Le!'O7M+2_^-b啲˖[+jr{X=P]S`P圬F{rNVʩ\7>Qtyy[=U)[h|rNVВيY=]TN3r\ܣJ_S? endstream endobj 46 0 obj << /Filter /FlateDecode /Length 35 >> stream xGpLM# endstream endobj 47 0 obj << /Type /Page /MediaBox [0.000 0.000 595.280 841.890] /Parent 3 0 R /Contents 48 0 R >> endobj 48 0 obj << /Filter /FlateDecode /Length 1142 >> stream xXko8ίhĎnUli;RgڡRF(%! B Qay"a|?"l9q>fFIJ|ׁPFz _{̇\'q0χieQ Gl~Ng=lspo|gAN"J&yۄ*0߂78ԇq"OՈqgݨu8a'cXiTs#˄[>zmr|{uOӬnF92p1uI=f~ODYH%'.5vۅz0~N0N3h l0 XJ v$txp28M{/M˰4Rb4Q>/:$SD?e,_qi]$ANs|Uk5}hU ۴̶ZlYwZ5 |ȣhG#|wsw'{9⥃ A+5%48Mt'(u2$kZ Y҃ҔzӊT( ucںq">/riD˝F tQ^)Lʳ- }c`h9`y0n=:_~N lSMK(ה;&ȭ.\V Q= 7W^X,9{_)y4I6~I H endstream endobj 49 0 obj << /Type /XObject /Subtype /Image /Width 300 /Height 313 /Filter /FlateDecode /DecodeParms << /Predictor 15 /Colors 1 /Columns 300 /BitsPerComponent 8>> /ColorSpace /DeviceGray /BitsPerComponent 8 /Length 3962>> stream x]ݙ7ɣ_N:p:!l |%PKM@ ہc 6H3hXqxp8ddddԤ`?8RԷL:v;a/nE v{B*.ĪSwnQ;W? >QEխJ>>:c\e@A/nY*  ʁ.u{jRWԁ,\IV^|?RG_OnԡfU0Nz\'p𠞸3hG;#+ 7WY81XyЇfXY88QιN<, ',hMh*  uN|\e@j1`摋 XGeXeӒŀaeǧU=}uAw풬"2xhR$k)tOlmL}~hlX0B$˒Xp -y%{!*IV G T=U~#x%m9`x=t:" =Hiɲ\noƧՓ]16 eq2{QȪA:y %dUQ\-qCʉݑI*zTb.̕>f5b7uij:zlXK`V9p,6b$݊LJ b^/W @7ry,V{l|,)~|f3F*3-XK,ai 9Y]>Vj&e}LVRQeu(N.bC"3(dNhˠP%# K1L$ecanZxsH*,VrU˓Cbn,VrSyFX, 効HLYavqZ0YPYa_BTEc 2("ptU:# NrƋ~^hN Kj"Q5#98dt6]2E$Dրόdqr3M̠,?,R Q'\i:iKNHŜ`\! X-7o LCݭ^A^66e8O&Q~W la sgIPK(kjg Qx2yS8ֶ=KؙkTX_؊p*WkZ&5֥`+শSK8n 0>5֑؅Ա.pP/CɃ8la8s96K8gx:&4$25}Um@lp݀=*!bMG^꠆ݶw=XzZR( 6|։*pSYc qKԩmQqM!ȈS⡲ATQRRg0Ѿfu8f6 p͖[C!H*bcu/7g^:f*hUx4v4!ZRUg@ qt&7%NQXJ쑨}7:DOE0Ru8ՁZXɭ sT|ax*I6fm:;:Biܐ Ò1L_lv_CNBN :T!`7k{B/7tkA:sb5ʓ5ԡ8.!pjWC(Q OzKK!8Ǚ^J5?T]+TjNC-pF +jy(YPC2=NɎK/m\C& $i6 r:0ti pHCN3?K)*G=:*X1ECku PKEL/%/u^ 6ŋR!p9PGN18P :OÁ*YFk[&;l+mNcQOZC#Q`bp`JSꐿ!^I5saL!RJI8Ww`kg+(+d /RPT"|nU6CgM*e [1h>JC [)%㸥bP b.JX?pÈԑ'R|lՉ7S #֕:+uao(u1'pxK0[꼧b-uS1RǛmVapS4R KwV #Ȇ[+RJK7W #hc:u:@)ubA(ubO#}IxK% TWd0g8Y4RN&V/RS WӤNNV KHb:Y1X@Vԑ)b8d.ub:Mt2b:Y1 J0؆CJ*ub[UŒ^, wiYdQhpP+CV nK> /ColorSpace [ /Indexed /DeviceRGB 7 51 0 R ] /BitsPerComponent 4 /Length 1816>> stream xQn8 `kO`aaN0GbQI-HJEđ?8mq]*nf髼Y)YTIY5++i2ꛥ3Wf$fFЪ)Y%1+_jJVڭ U,}39Y%'fV6VɪY_,CVy U[V+XW @Vg}|U)K,×P 뻇g`U҆+'#zy!)K@VM*U.Ϊ|g5eU cʪVV5ú$*4YaMԱn;ln]G-{7 :Xqm%ƊsY_Xamg -x /鏠Sx?1^W.-a>)n0S'OiWsl:^ݸ[?Qm<-]]]6z³ĩ6,qXuZYK|kEV|Vxhd5VVl^Yދ˔YaD`E뺋VL߳#xXjw0e,6/ dהj{ <]tq_q|Pu W3, pK)×sy%kKEfI],XKˊ,$U wId1`(̐,.#,Fr}ZNYw~u= >9);Ё]4d㥙U!7`~Pڑf=^R_|U|>F8 -?#RŽf1{篗DTg a/b)V_XvOf Rq5X"m>.1`eCpk{X>Ew^v~}ķzƈ. fsFEEg t(F0`ݪ̀EE,B.pz;e,4ZznmHf!f_xXx fÅ@l!u-c 6F.=篾&*.ZGAְwTm}Åz(,t) O NպXɟk=U0ZK jjLj9K|ThM_/ƲN{tG U'Le!'O7M+2_^-b啲˖[+jr{X=P]S`P圬F{rNVʩ\7>Qtyy[=U)[h|rNVВيY=]TN3r\ܣJ_S? endstream endobj 51 0 obj << /Filter /FlateDecode /Length 35 >> stream xGpLM# endstream endobj 52 0 obj << /Type /Page /MediaBox [0.000 0.000 595.280 841.890] /Parent 3 0 R /Contents 53 0 R >> endobj 53 0 obj << /Filter /FlateDecode /Length 1497 >> stream xo6_qȺ9Jև@ִ P`ua(@eI&n}GJNbbu Ms?_dť*ċ)dT8} 8s7JBԘ!`'E+c~\ }}BM6RT3)JsӼ˯= ɢ*x%@Y݂ LYq e[+gʝ3u 37sVUЏ"Y-QhqMh'vP3Vc~aQ0UGhVt/ͥ,sSn,j̹~\̲^m,O2^vMk=?q L<^^T4&%JUq.;<ݼ̈z5a{W,%qQI2ɗDoK[?'~`RSk'h&q'?í\dg`lF {%UHpTaYK T^O'i|L-+B,tKz`YkzWw0E4Nfq0iN˒_SϥXmO49fOGF& g*Ub1e!m>70jB`z~dO0Z# cS[rkdqm@  qiw[6F4f 4 5&àZ$rޝ8ģG5qz'(]~2ՑG,B4ouDm^6꺿Z`v@hcMlCEa׳r_ͱO[p 5ySճnMpE?$pl~3CǣZX%x¢tE%UCZݩ Q*~dxhxoțf|pCަE6?Ηg i)I7A&6gm>!08zwH/4 :{w{Άp4n&!j\x1g hS'xq^ ]]]sr8$.Q-f~?Q/"/&D endstream endobj 54 0 obj << /Type /XObject /Subtype /Image /Width 300 /Height 313 /Filter /FlateDecode /DecodeParms << /Predictor 15 /Colors 1 /Columns 300 /BitsPerComponent 8>> /ColorSpace /DeviceGray /BitsPerComponent 8 /Length 3962>> stream x]ݙ7ɣ_N:p:!l |%PKM@ ہc 6H3hXqxp8ddddԤ`?8RԷL:v;a/nE v{B*.ĪSwnQ;W? >QEխJ>>:c\e@A/nY*  ʁ.u{jRWԁ,\IV^|?RG_OnԡfU0Nz\'p𠞸3hG;#+ 7WY81XyЇfXY88QιN<, ',hMh*  uN|\e@j1`摋 XGeXeӒŀaeǧU=}uAw풬"2xhR$k)tOlmL}~hlX0B$˒Xp -y%{!*IV G T=U~#x%m9`x=t:" =Hiɲ\noƧՓ]16 eq2{QȪA:y %dUQ\-qCʉݑI*zTb.̕>f5b7uij:zlXK`V9p,6b$݊LJ b^/W @7ry,V{l|,)~|f3F*3-XK,ai 9Y]>Vj&e}LVRQeu(N.bC"3(dNhˠP%# K1L$ecanZxsH*,VrU˓Cbn,VrSyFX, 効HLYavqZ0YPYa_BTEc 2("ptU:# NrƋ~^hN Kj"Q5#98dt6]2E$Dրόdqr3M̠,?,R Q'\i:iKNHŜ`\! X-7o LCݭ^A^66e8O&Q~W la sgIPK(kjg Qx2yS8ֶ=KؙkTX_؊p*WkZ&5֥`+শSK8n 0>5֑؅Ա.pP/CɃ8la8s96K8gx:&4$25}Um@lp݀=*!bMG^꠆ݶw=XzZR( 6|։*pSYc qKԩmQqM!ȈS⡲ATQRRg0Ѿfu8f6 p͖[C!H*bcu/7g^:f*hUx4v4!ZRUg@ qt&7%NQXJ쑨}7:DOE0Ru8ՁZXɭ sT|ax*I6fm:;:Biܐ Ò1L_lv_CNBN :T!`7k{B/7tkA:sb5ʓ5ԡ8.!pjWC(Q OzKK!8Ǚ^J5?T]+TjNC-pF +jy(YPC2=NɎK/m\C& $i6 r:0ti pHCN3?K)*G=:*X1ECku PKEL/%/u^ 6ŋR!p9PGN18P :OÁ*YFk[&;l+mNcQOZC#Q`bp`JSꐿ!^I5saL!RJI8Ww`kg+(+d /RPT"|nU6CgM*e [1h>JC [)%㸥bP b.JX?pÈԑ'R|lՉ7S #֕:+uao(u1'pxK0[꼧b-uS1RǛmVapS4R KwV #Ȇ[+RJK7W #hc:u:@)ubA(ubO#}IxK% TWd0g8Y4RN&V/RS WӤNNV KHb:Y1X@Vԑ)b8d.ub:Mt2b:Y1 J0؆CJ*ub[UŒ^, wiYdQhpP+CV nK> /ColorSpace [ /Indexed /DeviceRGB 7 56 0 R ] /BitsPerComponent 4 /Length 1816>> stream xQn8 `kO`aaN0GbQI-HJEđ?8mq]*nf髼Y)YTIY5++i2ꛥ3Wf$fFЪ)Y%1+_jJVڭ U,}39Y%'fV6VɪY_,CVy U[V+XW @Vg}|U)K,×P 뻇g`U҆+'#zy!)K@VM*U.Ϊ|g5eU cʪVV5ú$*4YaMԱn;ln]G-{7 :Xqm%ƊsY_Xamg -x /鏠Sx?1^W.-a>)n0S'OiWsl:^ݸ[?Qm<-]]]6z³ĩ6,qXuZYK|kEV|Vxhd5VVl^Yދ˔YaD`E뺋VL߳#xXjw0e,6/ dהj{ <]tq_q|Pu W3, pK)×sy%kKEfI],XKˊ,$U wId1`(̐,.#,Fr}ZNYw~u= >9);Ё]4d㥙U!7`~Pڑf=^R_|U|>F8 -?#RŽf1{篗DTg a/b)V_XvOf Rq5X"m>.1`eCpk{X>Ew^v~}ķzƈ. fsFEEg t(F0`ݪ̀EE,B.pz;e,4ZznmHf!f_xXx fÅ@l!u-c 6F.=篾&*.ZGAְwTm}Åz(,t) O NպXɟk=U0ZK jjLj9K|ThM_/ƲN{tG U'Le!'O7M+2_^-b啲˖[+jr{X=P]S`P圬F{rNVʩ\7>Qtyy[=U)[h|rNVВيY=]TN3r\ܣJ_S? endstream endobj 56 0 obj << /Filter /FlateDecode /Length 35 >> stream xGpLM# endstream endobj 57 0 obj << /Type /Page /MediaBox [0.000 0.000 595.280 841.890] /Parent 3 0 R /Contents 58 0 R >> endobj 58 0 obj << /Filter /FlateDecode /Length 1081 >> stream xWkoHίVHe*meVjC~ǎAfBU=瞹I .lpp/q aw9Q?<$e,_f->xvAي%!T+. J"CUHXTT9+tƩMOg<0ZHkA?.B.x4c""a lgo5xnWL _S`prHZeݬ8*gY <>pi*,XYr*߸Ȫr~{6<}O*P[x 5dDfހHaY8CAqc+K.p\ zh(g;u(AC+]x"f>hm:Z?ˇ5[|Tќh"V?%ZO$xN.~m0kNwGY>UVY{#٥n +B#U`L{1.WG^;j*81560GNQUӜ`1&] 8E_v*'?(@ )y\V%V`y-aE!WJKKܧN]upp]йKV_Ȁc{]6ݤ8*X+6ŧ%b>ǓH(a] |<&٧HӤ ^ͷ1IEt^FS=5uŠYFٟDarŠ^F:xZ6-՘goi]=Z7T7+:o 4aEX'9فto)QKETT}t`E#-ݱl Q/;8L7:*g & bm0fӠ(XtoJZ ]0O > /ColorSpace /DeviceGray /BitsPerComponent 8 /Length 3962>> stream x]ݙ7ɣ_N:p:!l |%PKM@ ہc 6H3hXqxp8ddddԤ`?8RԷL:v;a/nE v{B*.ĪSwnQ;W? >QEխJ>>:c\e@A/nY*  ʁ.u{jRWԁ,\IV^|?RG_OnԡfU0Nz\'p𠞸3hG;#+ 7WY81XyЇfXY88QιN<, ',hMh*  uN|\e@j1`摋 XGeXeӒŀaeǧU=}uAw풬"2xhR$k)tOlmL}~hlX0B$˒Xp -y%{!*IV G T=U~#x%m9`x=t:" =Hiɲ\noƧՓ]16 eq2{QȪA:y %dUQ\-qCʉݑI*zTb.̕>f5b7uij:zlXK`V9p,6b$݊LJ b^/W @7ry,V{l|,)~|f3F*3-XK,ai 9Y]>Vj&e}LVRQeu(N.bC"3(dNhˠP%# K1L$ecanZxsH*,VrU˓Cbn,VrSyFX, 効HLYavqZ0YPYa_BTEc 2("ptU:# NrƋ~^hN Kj"Q5#98dt6]2E$Dրόdqr3M̠,?,R Q'\i:iKNHŜ`\! X-7o LCݭ^A^66e8O&Q~W la sgIPK(kjg Qx2yS8ֶ=KؙkTX_؊p*WkZ&5֥`+শSK8n 0>5֑؅Ա.pP/CɃ8la8s96K8gx:&4$25}Um@lp݀=*!bMG^꠆ݶw=XzZR( 6|։*pSYc qKԩmQqM!ȈS⡲ATQRRg0Ѿfu8f6 p͖[C!H*bcu/7g^:f*hUx4v4!ZRUg@ qt&7%NQXJ쑨}7:DOE0Ru8ՁZXɭ sT|ax*I6fm:;:Biܐ Ò1L_lv_CNBN :T!`7k{B/7tkA:sb5ʓ5ԡ8.!pjWC(Q OzKK!8Ǚ^J5?T]+TjNC-pF +jy(YPC2=NɎK/m\C& $i6 r:0ti pHCN3?K)*G=:*X1ECku PKEL/%/u^ 6ŋR!p9PGN18P :OÁ*YFk[&;l+mNcQOZC#Q`bp`JSꐿ!^I5saL!RJI8Ww`kg+(+d /RPT"|nU6CgM*e [1h>JC [)%㸥bP b.JX?pÈԑ'R|lՉ7S #֕:+uao(u1'pxK0[꼧b-uS1RǛmVapS4R KwV #Ȇ[+RJK7W #hc:u:@)ubA(ubO#}IxK% TWd0g8Y4RN&V/RS WӤNNV KHb:Y1X@Vԑ)b8d.ub:Mt2b:Y1 J0؆CJ*ub[UŒ^, wiYdQhpP+CV nK> /ColorSpace [ /Indexed /DeviceRGB 7 61 0 R ] /BitsPerComponent 4 /Length 1816>> stream xQn8 `kO`aaN0GbQI-HJEđ?8mq]*nf髼Y)YTIY5++i2ꛥ3Wf$fFЪ)Y%1+_jJVڭ U,}39Y%'fV6VɪY_,CVy U[V+XW @Vg}|U)K,×P 뻇g`U҆+'#zy!)K@VM*U.Ϊ|g5eU cʪVV5ú$*4YaMԱn;ln]G-{7 :Xqm%ƊsY_Xamg -x /鏠Sx?1^W.-a>)n0S'OiWsl:^ݸ[?Qm<-]]]6z³ĩ6,qXuZYK|kEV|Vxhd5VVl^Yދ˔YaD`E뺋VL߳#xXjw0e,6/ dהj{ <]tq_q|Pu W3, pK)×sy%kKEfI],XKˊ,$U wId1`(̐,.#,Fr}ZNYw~u= >9);Ё]4d㥙U!7`~Pڑf=^R_|U|>F8 -?#RŽf1{篗DTg a/b)V_XvOf Rq5X"m>.1`eCpk{X>Ew^v~}ķzƈ. fsFEEg t(F0`ݪ̀EE,B.pz;e,4ZznmHf!f_xXx fÅ@l!u-c 6F.=篾&*.ZGAְwTm}Åz(,t) O NպXɟk=U0ZK jjLj9K|ThM_/ƲN{tG U'Le!'O7M+2_^-b啲˖[+jr{X=P]S`P圬F{rNVʩ\7>Qtyy[=U)[h|rNVВيY=]TN3r\ܣJ_S? endstream endobj 61 0 obj << /Filter /FlateDecode /Length 35 >> stream xGpLM# endstream endobj xref 0 62 0000000000 65535 f 0000000009 00000 n 0000000074 00000 n 0000000120 00000 n 0000000643 00000 n 0000000680 00000 n 0000000829 00000 n 0000000965 00000 n 0000002642 00000 n 0000002751 00000 n 0000002859 00000 n 0000002967 00000 n 0000003080 00000 n 0000003186 00000 n 0000053309 00000 n 0000053436 00000 n 0000053559 00000 n 0000053686 00000 n 0000053841 00000 n 0000053968 00000 n 0000054123 00000 n 0000058331 00000 n 0000060429 00000 n 0000060536 00000 n 0000060595 00000 n 0000060654 00000 n 0000060711 00000 n 0000060768 00000 n 0000060873 00000 n 0000062573 00000 n 0000066781 00000 n 0000068879 00000 n 0000068986 00000 n 0000069091 00000 n 0000070677 00000 n 0000074885 00000 n 0000076983 00000 n 0000077090 00000 n 0000077195 00000 n 0000078705 00000 n 0000082913 00000 n 0000085011 00000 n 0000085118 00000 n 0000085223 00000 n 0000086344 00000 n 0000090552 00000 n 0000092650 00000 n 0000092757 00000 n 0000092862 00000 n 0000094078 00000 n 0000098286 00000 n 0000100384 00000 n 0000100491 00000 n 0000100596 00000 n 0000102167 00000 n 0000106375 00000 n 0000108473 00000 n 0000108580 00000 n 0000108685 00000 n 0000109840 00000 n 0000114048 00000 n 0000116146 00000 n trailer << /Size 62 /Root 1 0 R /Info 5 0 R /ID[<08628c69c6385a3233a5d83bd3be36ad><08628c69c6385a3233a5d83bd3be36ad>] >> startxref 116253 %%EOF HNP OpenStreetMap kostenloses Plugin - Homepage nach Preis - Webseite erstellen lassen

HNP OpenStreetMap kostenloses Plugin
Veröffentlicht am: 10.04.2024 | Letztes Update am: 11.04.24 | Lesezeit: 9 Minute/n

Das “HNP OpenStreetMap Shortcode” Plugin ermöglicht es Benutzern, OpenStreetMap-Karten mit einem Pin direkt auf ihrer WordPress-Website einzubetten, indem sie einen Shortcode verwenden. Es bietet eine einfache Möglichkeit, einen Standort auf einer interaktiven Karte zu markieren.

 

Hier sind die Hauptmerkmale des Plugins:

  1. Shortcode-Unterstützung: Benutzer können den bereitgestellten Shortcode verwenden, um eine Karte mit einem Pin an einem bestimmten Standort anzuzeigen.
  2. Anpassbare Optionen: Das Plugin bietet verschiedene anpassbare Optionen, darunter die Möglichkeit, die Adresse des Pins, den Namen des Markers, den Zoomlevel der Karte, den Kartenstil sowie die Höhe und Breite der Karte anzupassen.
  3. Integrierte Sicherheitsmaßnahmen: Das Plugin enthält Sicherheitsmaßnahmen wie Nonce-Überprüfung, um unautorisierte Zugriffe auf die Plugin-Optionen zu verhindern und die Datenintegrität zu gewährleisten.
  4. Einfache Konfiguration: Benutzer können die Plugin-Optionen über das WordPress-Adminpanel konfigurieren, um ihre Karten entsprechend ihren Anforderungen anzupassen.

Das Plugin wurde von Homepage-nach-Preis.de entwickelt und steht unter der GNU General Public License Version 3 (GPLv3), was bedeutet, dass es kostenlos verwendet und modifiziert werden kann, solange die Lizenzbedingungen eingehalten werden.

Download:

Github: https://github.com/HNP-Christopher-Rohde/hnp-openstreetmap-wordpress-plugin/tree/main/hnp_openstreetmap
Quellcode:

<?php
/*
  Plugin Name: HNP OpenStreetMap Shortcode
  Description: Creates a frontend OpenStreetMap map with a pin using a shortcode
  Version: 1.0
  Author: HNP - C.R.
  Author URI: https://homepage-nach-preis.de/
  License: GPLv3
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
 */

// Security check to prevent direct access to the plugin file
defined('ABSPATH') or die('No script kiddies please!');

// Function to enqueue Leaflet library
function hnp_openmaps_enqueue_leaflet_scripts() {
    // Define a version number for your CSS file
    $version = '1.9.4';

    // Check if Leaflet CSS is not already enqueued
    if (!wp_style_is('leaflet-css')) {
        // Enqueue Leaflet CSS with the defined version
        wp_enqueue_style('leaflet-css', plugin_dir_url(__FILE__) . 'leaflet/leaflet.css', array(), $version);
    }

    // Check if Leaflet JavaScript is not already enqueued
    if (!wp_script_is('leaflet-js')) {
        // Enqueue Leaflet JavaScript with the defined version
        wp_enqueue_script('leaflet-js', plugin_dir_url(__FILE__) . 'leaflet/leaflet.js', array(), $version, true);
    }
}
add_action('wp_enqueue_scripts', 'hnp_openmaps_enqueue_leaflet_scripts');

// Function to display OpenStreetMap maps with a pin
function hnp_openmaps_display_map_with_pin() {
    // Load options and sanitize address
    $raw_address = get_option('hnp_openmaps_map_address', 'Hardenbergpl. 8, 10787 Berlin, Germany');
    $clean_address = sanitize_text_field($raw_address);

    // Load options and sanitize marker name
    $marker_name = get_option('hnp_openmaps_map_name', 'Berlin Zoological Garden'); 

    // Load zoom level, map style, height, and width of the map
    $zoom = get_option('hnp_openmaps_map_zoom', 12);
    $style = get_option('hnp_openmaps_map_style', 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png');
    $height = get_option('hnp_openmaps_map_height', '400px');
    $width = get_option('hnp_openmaps_map_width', '100%');

    // JavaScript variable for map initialization and adding markers
    $map = "
        <script>
            document.addEventListener('DOMContentLoaded', function() {
    ";

    // Split address into individual parts and encode
    $address_parts = explode(',', $clean_address);
    $encoded_address_parts = array_map('urlencode', $address_parts);
    $encoded_address = implode(',', $encoded_address_parts);

    // Construct Nominatim URL
    $nominatim_url = "https://nominatim.openstreetmap.org/search?format=json&q={$encoded_address}";

    // Get geocoding data from Nominatim
    $response = wp_remote_get($nominatim_url);

    // Check if the request was successful
    if (!is_wp_error($response) && wp_remote_retrieve_response_code($response) === 200) {
        $data = json_decode(wp_remote_retrieve_body($response), true);

        // Check if geocoding results were obtained
        if (!empty($data)) {
            $latitude = $data[0]['lat'];
            $longitude = $data[0]['lon'];

            // Initialize map with center at marker coordinates
            $map .= "
                var hnp_openmaps_map = L.map('hnp_openmaps_map').setView([$latitude, $longitude], $zoom);
            ";

            // Add tiles to the map
            $map .= "
                L.tileLayer('$style', {
                    attribution: '&copy; <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors'
                }).addTo(hnp_openmaps_map);
            ";

            // Add marker to the map
            $map .= "
                L.marker([$latitude, $longitude]).addTo(hnp_openmaps_map).bindPopup('" . esc_js($clean_address) . "').bindTooltip('" . esc_js($marker_name) . "');
                console.log('Geocoding successful for address:', " . wp_json_encode($clean_address) . ");
            ";
        } else {
            // Error retrieving geocoding data
            error_log("Error retrieving geocoding data for address: $clean_address");
            $map .= "
                console.log('Error retrieving geocoding data for address:', " . wp_json_encode($clean_address) . ");
            ";
        }
    } else {
        // Error retrieving geocoding data
        error_log("Error retrieving geocoding data for address: $clean_address");
        $map .= "
            console.log('Error retrieving geocoding data for address:', " . wp_json_encode($clean_address) . ");
        ";
    }

    // Add JavaScript end
    $map .= "
            });
        </script>
    ";

    // Return map div and JavaScript
    return '<div id="hnp_openmaps_map" style="height: ' . esc_attr($height) . '; width: ' . esc_attr($width) . ';"></div>' . $map;
}

// Register shortcode
add_shortcode('hnp_openmaps_display_map_with_pin', 'hnp_openmaps_display_map_with_pin');

// Function to add plugin options to the main menu
function hnp_openmaps_add_plugin_options_page() {
    // Check permission
    if (current_user_can('manage_options')) {
        add_menu_page(
            'HNP OpenStreetMap Settings',
            'HNP OpenStreetMap',
            'manage_options',
            'hnp-openmaps-osm-settings',
            'hnp_openmaps_render_plugin_options_page',
            plugin_dir_url(__FILE__) . 'img/hnp-favi.png' 
        );
    }
}
add_action('admin_menu', 'hnp_openmaps_add_plugin_options_page');

// Add settings link to plugin on the Plugins page
function hnp_openmaps_add_settings_link($links) {
    $settings_link = '<a href="admin.php?page=hnp-openmaps-osm-settings">' . __('Settings') . '</a>';
    array_unshift($links, $settings_link); // Add the settings link at the beginning of the array
    return $links;
}
add_filter('plugin_action_links_' . plugin_basename(__FILE__), 'hnp_openmaps_add_settings_link');


// Function to render plugin options page
function hnp_openmaps_render_plugin_options_page() {
    ?>
    <div class="wrap">
        <h1>HNP OpenStreetMap Settings</h1>
        <form method="post" action="options.php">
            <?php settings_fields('hnp_openmaps_osm_settings_group'); ?>
            <?php do_settings_sections('hnp-openmaps-osm-settings'); ?>
            <?php 
                // Add nonce
                wp_nonce_field('hnp_openmaps_osm_settings_nonce', 'hnp_openmaps_osm_settings_nonce'); 
            ?>
            <?php submit_button(); ?>
        </form>
    </div>
    <?php
}


// Function to register plugin options
function hnp_openmaps_register_plugin_options() {
    // Adresse
    add_settings_section(
        'hnp_openmaps_osm_address_section',
        'Address',
        'hnp_openmaps_osm_address_section_callback',
        'hnp-openmaps-osm-settings'
    );
    add_settings_field(
        'hnp_openmaps_map_address',
        'Address',
        'hnp_openmaps_map_address_callback',
        'hnp-openmaps-osm-settings',
        'hnp_openmaps_osm_address_section'
    );
    register_setting('hnp_openmaps_osm_settings_group', 'hnp_openmaps_map_address');

    // Name
    add_settings_section(
        'hnp_openmaps_osm_name_section',
        'Name',
        'hnp_openmaps_osm_name_section_callback',
        'hnp-openmaps-osm-settings'
    );
    add_settings_field(
        'hnp_openmaps_map_name',
        'Name',
        'hnp_openmaps_map_name_callback',
        'hnp-openmaps-osm-settings',
        'hnp_openmaps_osm_name_section'
    );
    register_setting('hnp_openmaps_osm_settings_group', 'hnp_openmaps_map_name');

    // Karten-Zoom
    add_settings_section(
        'hnp_openmaps_osm_zoom_section',
        'Map Zoom',
        'hnp_openmaps_osm_zoom_section_callback',
        'hnp-openmaps-osm-settings'
    );
    add_settings_field(
        'hnp_openmaps_map_zoom',
        'Map Zoom',
        'hnp_openmaps_map_zoom_callback',
        'hnp-openmaps-osm-settings',
        'hnp_openmaps_osm_zoom_section'
    );
    register_setting('hnp_openmaps_osm_settings_group', 'hnp_openmaps_map_zoom');

    // Kartenstil
    add_settings_section(
        'hnp_openmaps_osm_style_section',
        'Map Style',
        'hnp_openmaps_osm_style_section_callback',
        'hnp-openmaps-osm-settings'
    );
    add_settings_field(
        'hnp_openmaps_map_style',
        'Map Style',
        'hnp_openmaps_map_style_callback',
        'hnp-openmaps-osm-settings',
        'hnp_openmaps_osm_style_section'
    );
    register_setting('hnp_openmaps_osm_settings_group', 'hnp_openmaps_map_style');

    add_settings_section(
        'hnp_openmaps_osm_height_section',
        'Map Height',
        'hnp_openmaps_osm_height_section_callback',
        'hnp-openmaps-osm-settings'
    );
    add_settings_field(
        'hnp_openmaps_map_height',
        'Map Height',
        'hnp_openmaps_map_height_callback',
        'hnp-openmaps-osm-settings',
        'hnp_openmaps_osm_height_section'
    );
    register_setting('hnp_openmaps_osm_settings_group', 'hnp_openmaps_map_height');

    add_settings_section(
        'hnp_openmaps_osm_width_section',
        'Map Width',
        'hnp_openmaps_osm_width_section_callback',
        'hnp-openmaps-osm-settings'
    );
    add_settings_field(
        'hnp_openmaps_map_width',
        'Map Width',
        'hnp_openmaps_map_width_callback',
        'hnp-openmaps-osm-settings',
        'hnp_openmaps_osm_width_section'
    );
    register_setting('hnp_openmaps_osm_settings_group', 'hnp_openmaps_map_width');

    add_settings_section(
        'hnp_openmaps_shortcode_section',
        'Shortcode',
        'hnp_openmaps_shortcode_section_callback',
        'hnp-openmaps-osm-settings'
    );
}


// Callback functions for each option
function hnp_openmaps_osm_address_section_callback() {
    echo '<p>Enter the address to be displayed on the map. <br>Format: Streetname + Housenumber, City Name + ZIP Code, Country <br>(Separate each part with a comma)</p>';
}
function hnp_openmaps_map_address_callback() {
    $address = get_option('hnp_openmaps_map_address', 'Hardenbergpl. 8, 10787 Berlin, Germany');
    echo '<input type="text" name="hnp_openmaps_map_address" value="' . esc_attr($address) . '" />';
}

function hnp_openmaps_osm_name_section_callback() {
    echo '<p>Enter the name for the marker to be displayed on the map.</p>';
}
function hnp_openmaps_map_name_callback() {
    $name = get_option('hnp_openmaps_map_name', 'Berlin Zoological Garden');
    echo '<input type="text" name="hnp_openmaps_map_name" value="' . esc_attr($name) . '" />';
}

function hnp_openmaps_osm_zoom_section_callback() {
    echo '<p>Set the zoom level of the map.</p>';
}
function hnp_openmaps_map_zoom_callback() {
    $zoom = get_option('hnp_openmaps_map_zoom', 12);
    echo '<input type="number" name="hnp_openmaps_map_zoom" value="' . esc_attr($zoom) . '" />';
}
function hnp_openmaps_osm_style_section_callback() {
    echo '<p>Select the map style.</p>';
}
function hnp_openmaps_map_style_callback() {
    $style = get_option('hnp_openmaps_map_style', 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png');
    $styles = array(
        'Standard (OpenStreetMap)' => 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
        'Hot' => 'https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png',
        'Cycle' => 'https://tile.thunderforest.com/cycle/{z}/{x}/{y}.png',
        'Transport' => 'https://{s}.tile.thunderforest.com/transport/{z}/{x}/{y}.png'
        // More styles can be added here
    );
    echo '<select name="hnp_openmaps_map_style">';
    foreach ($styles as $label => $url) {
        echo '<option value="' . esc_attr($url) . '" ' . selected($style, $url, false) . '>' . esc_html($label) . '</option>';
    }
    echo '</select>';
}

function hnp_openmaps_osm_height_section_callback() {
    echo '<p>Set the height of the map.</p>';
}
function hnp_openmaps_map_height_callback() {
    $height = get_option('hnp_openmaps_map_height', '400px');
    echo '<input type="text" name="hnp_openmaps_map_height" value="' . esc_attr($height) . '" />';
}
function hnp_openmaps_osm_width_section_callback() {
    echo '<p>Set the width of the map.</p>';
}
function hnp_openmaps_map_width_callback() {
    $width = get_option('hnp_openmaps_map_width', '100%');
    echo '<input type="text" name="hnp_openmaps_map_width" value="' . esc_attr($width) . '" />';
}
function hnp_openmaps_shortcode_section_callback() {
    echo '<p>Shortcode: &#x5B;hnp_openmaps_display_map_with_pin]</p>';
}

// Register plugin options and security measures
add_action('admin_init', 'hnp_openmaps_register_plugin_options');

// Security measures: Nonce verification for options update
function hnp_openmaps_validate_settings($input) {
    return $input; // Simply return the input, no further validation here
}

// Security measures: Nonce verification and save options
function hnp_openmaps_register_security_options() {
    // Check if the current page is our plugin options page
    if (isset($_POST['option_page']) && $_POST['option_page'] == 'hnp_openmaps_osm_settings_group') {
        // Check if the nonce is set and valid
        if (!isset($_POST['hnp_openmaps_osm_settings_nonce']) || !wp_verify_nonce($_POST['hnp_openmaps_osm_settings_nonce'], 'hnp_openmaps_osm_settings_nonce')) {
            // Unauthorized request, do not save options
            wp_die('Unauthorized request.'); // Output error message for unauthorized requests
        }

        // Save options
        update_option('hnp_openmaps_map_address', $_POST['hnp_openmaps_map_address']);
        update_option('hnp_openmaps_map_name', $_POST['hnp_openmaps_map_name']);
        update_option('hnp_openmaps_map_zoom', $_POST['hnp_openmaps_map_zoom']);
        update_option('hnp_openmaps_map_style', $_POST['hnp_openmaps_map_style']);
        update_option('hnp_openmaps_map_height', $_POST['hnp_openmaps_map_height']);
        update_option('hnp_openmaps_map_width', $_POST['hnp_openmaps_map_width']);
    }
}
add_action('admin_init', 'hnp_openmaps_register_security_options');

Avatar
Homepage-nach-Preis

Homepage-nach-Preis DE ist eine Werbeagentur für Onlinemarketing und aktiv in der Webentwicklung tätig. Spezialisierungen wie Suchmaschinenoptimierung (SEO), Webdesign und Conversion sind feste Bestandteile des Unternehmens..

View admin Posts


↩ Zurück zur Blogübersicht

Die Webseite ist gerade offline.

>