From ebe346a7716f2520d939c3a98326faaee8a952d6 Mon Sep 17 00:00:00 2001 From: binaryfz Date: Tue, 29 Sep 2020 16:00:18 +0800 Subject: [PATCH 1/5] [jbc2mpl]add fatal warning for error const pool index --- src/bin/jbc2mpl | Bin 3177024 -> 3177024 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/bin/jbc2mpl b/src/bin/jbc2mpl index fe7befca06590b3ecfb1e6c7fe367fd896521665..fe6a8bba33b048d922602022d223908df69b7913 100755 GIT binary patch delta 696740 zcmZtP3A`I+xj*npMF}W6Mew9`n--U_c+Rv}C4g6_pfv4u8MrPfC{F7_0KHCe3!r3* zECCg#yugG-nSww>#VNQ16qzDwtfB*WHQ>VF8gLsHHR8S3|C~I}bI#=VKYl*d3z4W&2_s{O_?ml4hU+!+TZ|QIQmhXJZ{FZaIiv6Cy|wyFkZjM9ydSdNssTl()*A;X&p|!YT7A#XxeJ+8JcC^ ze9*HleO}vs!#eld`H;*!VUR*!rD?)`>50Z*SGAA)<^D*5@(F8~78d6jwA zM(7ukXW;2~R!rKD(TC*P_UYQveobE9J~x?vAqDAES55}fp+i<7uYkKpkQ?CfYsjnM z*6Ya41*iG7?9&veEd(a((6YOqJ^6nu@aV_nb#Uh~avR)w(sL%`G{D_<@Z3qjfq;KG zc@tcJ)$=CpUGVsL@)o#x$nz)dJ#c@MG4XZ>0_jIqO#(i6b`E(L-0qWy;PKN}PsZti zyBCs2ClG`-hYwD;MRs0PTCK^{ZEi5;QANHhf|*C-#Fk!lY!EyKu-M^ zPkaRKfBe9SXW-Ts$j9K}m&mn?rmq73{|=hJ|K&Fz2pBgVJefcT&mJYOfT!O-WYXRM z*M3Z11y5f7l1Y0r_euRP+yP%nff{r$Pb0U$jmydF;L$h9ZE)>Rq=BZU&(2z&KgRO^>ELUYt6N_&yX-m3)x)ni zIv-=rzt1S+mE{!Q)1q7JzF3u4A06wuE_^;LWqvlFqRJ)FvS@C75BWUwg^~g~( z?b|pdLx`^6t33t(0PlAMeioNS25#^;WAKM53+lXAFJEy3@2-65bV*&LcD{OM#m9N% z3PhE9FpnO@Cs2jxF>3j1X4)5X-x@?e&2EA3{WHpD9sEGvg$=%zy#fBR(PW&1GzS9r zZlVdA;K!-E^W~me;$nhmLy8If9ej)JfM3Vk^TGGzTSpiCF;2#bM=#%SCl^Ey+HB(c zLyh`kT~9<^)3Oz8{iz72Ejuk&qg2yH&Z>rcU- z!PmkF{A@ne4E!DZx?v0+(Ax6X|J~`bQ+&{6@W<57jWg}9@P$!<=%;zB2KXsbaNsYC z=y_s-zmo1iS`GZ4e5tShkLB%m@C&Xww6WxF2mWVHZ3BEiK1v7tX1=dC!B3$AJxFsQ zaE9Ff!1GshubtTt@`Jbo(K9&1KKQ@*LEi=ctlIqAnU#n0!Sx_oxlLX4+S$@AYS(LL zRy@eh;{i1Ky?P{%{)wYQi0)LYUN^I%#~1YoqMOw*dGw1M9Ygf1YFi$?iKFGqrfcec zwexi|?H|a?D2Tp~FMI?1QO;Wxyv+w^f^X%=N)7yLw5o$N3j#a1XzSqbR$E^`)4rWc zy#djG<43mxexke&0DmQC%mqK?B)SAz;P0n#)ShoxzTvri5A8sk7qa`{@8>bQ;ODE& zZ1j1|MG^qOscbhMCe`>b^J3t@u2j*bv(Mk6LBVtk}irA3^jC zbxa<8+Ho}d7^2@(+w$mGo_3c{m(F|DPJ3p<*Z7jGK=e?~g#rE>e!5q|KcJQ$Gqa)1 z*J}-;ecqh~-sM|j9sEDk)?@Ob=hp-ch`vef$mjY9KW~~4J&lXr1%EZ)#9H7#Q>9~P zR{WN0vIEiM)tWrI59hZF(Vp6T?97Ir$SWj>?$3FNz@Njn$3D2Lb{#uc`mTB;pRvs~ zKZG_nsa5|u(>{;)K7#0W_6+=PKL0WJQT$NQu9&Wk^Lh3%_!TsMThk$MFF$N6;4k8> z8sKMhp;W9y zqGzbP-#F9$5|7-1=<_+Z9{4Z#AUfc$=j!vp|H-p=!GBNVs1x6`d_{x%_MpuOV5~m>|}yl$I(Y$HE^5V0(aQ!;QZ0rk(vzwk2^HLeRc;tR6E|X z`1zg(QJuHZ0Z&w^F|#5)o;K5kXsFiYQTg<*2hmJzZp^II-bQ`<5Y?f+z8xu$TRRzt=crRQI@EEdOGLMX6jW2ciDAtZ;Lu>)9e~kk`7^;y#}7C z2RF^M!&7LoIz+Aak=x+1=mxlPCbf6KHTEXBPOd(D+<|MXuTZ&mppD1wgJJK;Ii@Tcdn)3>gd;#+u%u$yaCS3I!bdOAfK2w!TlR(AQwEmLH+8jvkP}8 zAHosuqYG|FG+YQCviHD^o2h*S&WS!s>q9{H5rf-(8fXCS^wm9YTg=A@!ZGh70}pw) zF}U`1nnt^7I_=Ik$jjgh`OqOC`>25XyJ#Q-Jlv)3IAJj#7K9VtM;)Dqv%$?fXqpCi zb|<+5zL1Y51Y{pBxcPk=s0D6)U)}Wf#eH-koboVcfye9-xN#Rv-v?jVM+^bk z#{fM1Aq|v(M?X|oJB$0sAe`|&#^5Orr-jq?WBrJxDT9XzxemUtj|v229|m}G4-HfW zPw!C|ZC>0*9l}~fw{;s_zn6wzw zA3gBwKH5hFZrxAb2RD969)mCJV*ml!M*{BriUt~jyT4MWzGHD8V+b3(4{gVE{TMHL z`sCGO8Qf*p!PA4OeFc1B9|iYr zCc6v1u#Xl5WFH>5{ckiu2i*BLb?mzq_tAr}#rufB?R7Lp(#E;j0~|%j?Ms9WE+cw6xx z?DG;k;296+gB$OlMR&pF!VSSC8z;KUS4lP^Xk+r2eYJe+jEdZ9JLFXjp=HdTg8Mwe z2wZ;`tu_Pq-%UOSm({*y>tflLubZP6wv(@#=DnZ#>frwS)#Y0k588yV_EqXu15bE3 z3tamEwXcIa>^8V8ef_D6OLw4+c{+{R1h-CC7o57d^bUkI`2-Ez<>9*EF?$G}u=l`a z>4(05ap`?%W1UG$kHPIT)#>kFTzU#&otHiW_jtGr+-%b{WAM-;*RG$NDh65li$Acq zbRF7wXH(w_xPP`f`2&kLj~avxUb>}reQ;)79isX2@)En?77rJK`|LgNm^}iQ)7|q!%Qwi)BZf9chn7A7H`#~aSE|h) zn#upr^JyQNE8U?!mwz3q`|_`u+Uvt}%PRY+!#_N`?8*D7lk;zL`>D(GZ}t7u?)=-^ z_ES%Mc((Lmbzp0*biUe@f4xGTpMSkk-I9O(j(RBn`hZ$-+Fa>xYQt%B%l6q{oqpQv zvKQ>HZpgnKzQ4LZ|Mt55)!wJimd;Rzoj$kh9s8@3^Z&S1U3U8VcFYe(JX44x4|QRN;bgd>FIzQN6^Gg@Mw;_HSxmF4!@ut zI%BT%J+p$n3J0JWK8U(b;9MewI2s|MvE0 zsgplCTl$E)?4xs~i`4h>uaWx4N7t{&meF5@iatMms-IPx&RoC3dlE%ch<;t&l1Gg_ zD5`&9y6?SeMSJ~@u^WPWEQk znnzQsA+&N{L!N>gN2}d=H{Y#1;Z2w8&DuknB$xZO&Sam_( z&3ZG1Z3z2sB5#1lZ&DBE-JAx6TNr)|xd)!TMQuDQU*u*AhY&VTAn$=YC#W0pZuUDU zJb-Yrg**Yzwy3>7mM`)|3TF_G-%UOS&)%(0{@Cma@0AobZ=6oRooeUDW=cO*-}~75 z4emy2(}Xq_y9@5Hd*FXjo6cUp(ftn^tp`zyJpy;wWAO5`)x&4cE?f0%wep<&mi274 zG5_|)XRFimZ>Kz4-Ehuq=>m1%IrI0tz0RF0{XiXd?)sH_ck;IiHUCS~+l?<%m!CVk zR>FM_c$xLbbav%^1QlPowRe&Y6A@O;ZLp*mdyeVs+dF zi@Px)obWU?aJ@^@Sl|(R9bCUsJzSWk3E`Bdal!SgXqpzd!R~?Q1%3L*7k3jvIOA!0 z;0_NLfv4hi)g`c05(o~8n>T}Q(i z;5vI1+`C>K^vT8D)FEu}G&Z>Yd77pHZm>Jx(HGUNg=stpn>GJ4D&Q5xW~iQz!P>0-2JwCqA-nvVVH>dpH(dyOJWU90 zBs5JA++~lz^?TLI?TgbS5cYYRA$a-|nkEI$*hk>ned>n7H03W(r!?egba3tGG))EE zVmH9O2h`ygE$+sGaKzKp!L?u0G&Z=--T=3Mr*>a7yHV#`WDCLuy9b{BfnIg_;1xq1 zsb-h0G1RH~xBoEI)%my0hPp@1mbR(V#dD>uT9be6tIhe>AFJ*8*GJT@i|3X-bCr7Z z;{1*0Dz*BOyyq%)Z2qmeN}YAdY^kGmUNTp@K|Pp%{gGOJ>0D{7)?GTc*Z!;NujQI* zTQH;iOZB~8#!{b1oXc@6&P1|H_0pND6wH;bR%`OF-&UK0^&36j<>0H+xlH(w6L6c` zr{MWz`)H8=ffo*IUz;8-<>AWUa@p$Oa@khE-EUKltLXj7eCn$1@`W|jpiRbWu)t*v zb#PgO4K8bNz&pH#xyu&U;6fYia(YmObY4RQ zE^Fw6%Nk;ESwjNe=QX_H^2KvVp^d?77@_kGE(4bv-xyrKm(HO~b1wX)+Jx8eKw%9P zXk+pk3~;&mR>5TrCb+D@0)L1uzk@X!0;L1!+I7Gy2dK-hm|b?n0cv;t%{f3lamD-% z;J_>AN;j!Z`Pci@`B$!Q+Yi#OXVGq%zQ&vf$jji~pQ+|_a6KchpmTcz+@bdB4WB-6 zVGS0vad{1O@bod7%Lca|CvSj<{~&k3H+=VX)YVw zd=+^ETtAxJ0r!raxO#i{^E*;!@J9$OzxM5~r1ETqc55Hk? z!xn@i$t`&3(4aQBxrMv|ZnHb!vfZaGyzZ9hv3@j)IJ55BD?*@LW1Mz1RK1DGI+vc z>fkAR1zbCW)?k3k8czJu;uP&7>Z{BSmY_!DIFccz7|jH^3zq>%X?R1`FEQ4^ZDac={*$#H|4?`*py1 zF3kmh>x(BJurAX)wXHv+%Kd67|EvA|`QPTTIsf_xwY{JJ)TOHK=+7=YvZ@~K&z9b= zR^2lHNBfS+zkXY7%fJ3b?Yw19xwn?p=$7iT+JS1{TW6P@aG*N!*4ff|YU{0Yr7x=; z`Pci^-M7vy(+*P0zCOEb^+9TF{_Rx8X`zA?A#c?YYrzA?M(-w#$d<=>ox)vvxW|D&Six6PHVQS0)r-&R}muYXiKZkt=S z_aW+@+h&)|9-@|gGyemHhp4sRoGqQIHh*)jq}2BO>rS;R|C*>r@~@d%b^F}1*MA5&&h6y*XMgE?V4$4JntCW^Z43edK)rt8C>So!Tob+JqGxV zv-GQ2gI((u&ZG`)w411}4W9Da8sM@v2R!P~I8E^E+==h2wIHxtopi_gw$9Us5VhEQ z;Iga;T$a@b*Dj=G#o);WysQKQzf!vN^T#&ZG0<*?edIyMcMi1~dxQ_BQ@g)Czv1QI znOR}-l;z!U#%kSnW{!~!S0HMKG^GLVT}5t!H~0u@YTI{bRQ#RAU+LU{mKLwa0hc3a zg6F?R`nxl0!W}ek3!}Ww4)_PvY2RJH#+KuTsLS3557i^zo!KB~GJvRmHLW25*Vt2V zUmY`;D}70A8?0aJeVzVU0^|GBS@79S@a3j@VlcbL&FCKwupzAdo!kN6p*DRl{|z{g zQ`Cc~&Aoi^uc}+VH+RwQ@_`WqV*a-aV(>(**gdz_KbQVNf)t_|dj|fxwd(ZU^JTef z_slZ$LUsS{*>-vj{bK~RA55Q%w}adQcltDE9o+pUxeXrPLf!zkE}V?NMROovQ$TBi z8@p&A7u;lTf%`m8M?JWE=As|yE48a>M_p*>Uab!L!R*S6!+i)l*Qir}uy{^G2-}~f zQB&~vue96|xSUf4o^bmyIG@w;ns(Q8g5;da;BrnnxSUf3+`mwre%I`(g!fT{uyrl% zFaHxPcg?8uE`4Rp(twucb!zV)&TdYwq7E$xXP+eZz{AheL3O}2&R-WiRhRv6t{q)M zqxB)GbFUaY;#mgZGD`w(@Hj*8g>|Kb)+^dCt6P>*Wu5tSgc*5?3r{qUzT?lBOqBMoz273gqy;QBf`{;IZ z5p^3v*yL_0`d9d31DAbd;0Etw3~rHc(X<~;AG>6?3~uqnI=E!F0`Bv~Rki(|8Rgug zue5keHE3ynN?mYI{`Vd@+<>sl-UQcQsvf@QgoVo^g0RQk`rtP2BL3d+c&}aShi>`1msv+;8Ir}xXBZDz-{)f+VSK3)!%>TcWK^I4_YRlQV;+4 z?AnyW0|;mAL-2JkRU3bDbX)W3!qo1bK6jVB3~t>;2c?52KPIn$M?WMt!1(|-YE=lx z0h-{>PideUxXW&-9Y38>?oX?$GG4j^EuHPORab4zTP8o%*QP8Uw6ytd<%4f}soHnA zSaf{|r`#)w zj5koZXSx_PrB1(Zc8#v+0BaC7*z4dQRrlSue&N>dLe%75EpY$)w0jTS`vG|eJmdC0 zIG@(>S{DLxS|PZcRu5cGD+15&TuzQ$q6pry;M-8+5k zm#G~;Ti^CLT7{_3Zi3rGI;R?Vc0aj=&h6{q3%58M0&;#0aEI^w4!HXZnz#w>bNiOs zl^;<0bA3(7Tk1f|h`kH`Rki9D`CsnkXbe%~Vk*}Gxcf_5PXg}zhI|NaK0uy=hrgTn z@!ALiazGil9MBj%rhzo=$J6=G3+%{W&aUx!9|nXob`$)EYR50vFT7xAK-A^e*$%ip zqFpw@wTH=FaF^S+z%6ROMe`uw@x&c)ITasVF1s$club|V`ej}=59n)rdFuczL-qmq z@6@Vv@qjXj#@uTRZu3EC|2>^0^N(~uWpJO{>)?D{9j{d&AO~cC%K=rv<$z4^`LcO% zc1^PREL1g_fZ>MPN)GcC**+33At+Buk#1iZ}hbeZ^?s}F1rtY@XOTI zzd5??akvj*qe~|ggQvXX0eJLJI-vyI_&fO!oKNU@Ero!b&kC4oKOW^PRIb46RLvG7tSdE4dA@qI)oke2Kbq3)kBL9Di5L|_v(O0 z>^}Na=v2Dk_LIp&@P)eRK|oF=0+&*UiKFnwXcKLd%3b1HWAD zczE%ED)&vNJLO&mc*b4@_xGfOFu`5+8u-EiSrCu|s)Ne`+2C?O4RAT2{9pBaIDcmS zL0_X?K}&2wOP##~-dC&sxV~+0G=gZ%-Um>2QH`50r&a3>Z)CT%FE`@`Wl0m-h-ANdmsEUwdya6*HsEp?K8Bo z5xCBtfyaD6WAKn&``L8b7Rsg!0XZNYTn?xLE(c_Q&zDV>|1uw5uLWU~-3DL&a&>i< zfBYjq4}q}7-8}Gwx7h*LI88oyBIyH9$&b=P2x#)jAh^Na2VeVgb;Bcz`$!>d^FBu4 zG5>5K1DAb_!4qz;{d_vT3;QTTK=z@7%RUV7|9H8&>Cwe~)FJFh8o?zW4RG0q1D+&o0x@Ob{Y1g}f`#dLl{b{)K>_WJAF+Yv__5RKU#aO)6SL=#+g>4Hbx zz6GwmWHQc?ng;>hqzO9UlC3WIh3de+<)3Qua$|_5>;rI;91!6)$%T(Ue_#U^<7<;WSGbT(+TuXWYI5zK{(A0?rXMK^0uKQ3KD^h9?%c;b4@v z(FFH+78hK$(E^XTy$8T?kw3A-H`MP16IHeMI0sx9@{n zubGTko_AAvz~9Z6O8t^;rTjPK{Hxm5`Old(p{2p@f;-32j4g24k_Vn}`wn<^ z!epEyH6H@j7Mh?7E?eq>pL5A+rS)x-mzzM;VjrTvgJwy=Wg8>#gxhD}sXS7~5YYH$ zrTuEURAd`E_!YsnQoav)rqm#8^FA!_l-E@Umwnja`a5ag4e3p?5xXbNhaQ_tE#{dGdj|5!yk%Ipy*#4x_Txk^S z%D*jpQZ0D&Nu~U+GSq_Ad*t5_uLZ}>e?O)coHhTwSqpB;zn9Jq9^50}eSG-J$#2?> zem$Lh?FjNdxWyiW+w22yhdlxJb{O;XwzVMyoLeUWEd}@4N8sj&+GpSv`xxA1*M2j< z;TLENf3wEpfIbN<`U?&VHa?|v^xE(>bRso~N9=X*BMuAhcuHw@t@r0==M!mK6XM2S z$X)Q{{$TZ|JnuMC0|qTZhwYjy|{_?A)`oeogWibxR?vKTe*3?+gws z=hfB=Hs#;i&erElHdp=abosdKCb-951J_QaaV&71-3CAL$jPRjsW}k%wC*U`-r{IqVkL1IxIQ-Q#oc6ov)9`{- zd*`!#hrCxj!9b4dU5q@;dm2^}%sZpTDVcya{pr0P5EQ zch(2D=Kb0Z_v=F3<90hedK0WQz{D)_=P--LiX^K0Pp z%(uYhnO_H&XTA+C&-}*3^S`88p6oOKcVYOM-wd|xTbc>X@j%63mr`Sh{e;1IWU9{Z+#P86eIAh z!D;*EFDdOETt*L1msiYQ0rwTPH^8$i$gAMmmE&oErXXZB%*`N#Yl>4>7jZ0`A4_r3b0hbN>;0qhep%Hk#!K?Qx zY%qa%${87gyXVq8DY$HK1TGuQzykhV z!qKO>AkcY#Hh9eK8{iqc18#g~GJacYLcpeg=7Kxt(Slmw_EqE_dPwerf10n@?!<$i zJgap0!Xfmbt;59;gC`fz*aL7$asn<%9)fd{+gb_%N%9EX{RB;%q4Pq=;FA3EAE%4u zW< z2Yd*fi3dloC>%l$+J-!K1TL3*A6yP02A4w^fG-?E0s%RMA-Khdkb+0N&=I&C!WjG^ zJ_PMg^A!@Dxw5pn^sivY%2NJ|x!+9BHZxfMoct9*wz5=RxKiv%^Tp?*b~WXs0Um#f z+yU3QeG}Ydcfl9Vrv(9rJ9y}PJ{@q6+xy^hJ|Xx^_z-#%51#d$LXixhtC0cgh89!?mqVz4zlIONn0RpR^Gf>$&T|Xp zU_l3iC#Zvmd=fUe$?Y59F1rK1a1u=j$mQaKYg~sd@R%p?z~v--@DunXx)Yy2iNo6o zkI{#==4a`YV{qpp@&UNqGZJu(pWs9Ag+oXoAcrslH~A1UaGw`C2A4x9|7E&-PUAz+ zCmwwB`K8qx5BMj2=wLwG^WQ^W1>cX`o8SlhGdRe|Uw1|CJ7Dt0#D=*2G4cj@%VRkLKDf4(+IPWq_Hg3u#apYvfgW@)*&}d^ zy$^1)$KVe8py;p5569&|QVitou@Aw0_7S+&2v)By9o-H&u4mKbBq^ zl2Q{qy=s!`wpN3Hq|^e}PNfvp!F6^U++c5j>%35B;!C8o2^~xx$OX4}pcc5z?twe( zouW@tI!inAi-A0)7Ejy-mz4Iv_iY4gUrovukqX}RddlKEjN_7QXQd$K+q7fWhEu_?j zxTLfJZoHr7allRXCb*>31=p_Sl(rxsDfPf5r5$idsShqG?Se~6!-+4E(jIh>lt$o^ z(muGPGzOQH4vIdXQq86#O^Sh>Ext;I;F8i2xZMc09F(Ut;#VX3W79PyDXoBeoH_&C zXRo63%Oev!d~A}^m0Aq~l2R*p0z?aD5&H;S zF3Jqtcw8Qx5ReRNk58ABT$E*SxhQpTxhN~(Iv0xFj&0_!0>mK?g}-MhP54SQ4oHb-Lgrfo1UIb##C_ zxFoOwE(xrXFDCHHV7pmb9~f&&<+cr-Bzp~ThqL5>yX;MH$({>t^(NWVTI7p2D#@M) z9VB}laLJwzF4^mXOZLJk&!3HQ`Sqp(`Kt|nG)3SR*L@#c(iwwGItSqC8}f9%I)4Tx z5RiNh!6ly~@Gk{B*5=n^B#*?uO_!5ov;rP;<_z$Jy$UWFHNov0_rXW~n|%4tFelLvCaC8I5H$*2b|8SNDPwRtA9`IP4W^NWG}zdfF~ z3oaS$fqy61`O?z*4Jl_LfpEq?1UJ7x*VYL9fneRs@*j0+AEecl{|*K6A-=DG>)gHq zZm=8RQXo}uotD+sObAGU)WBVyzykN!>)<}S4K4-JnD`O};y?!}kS2J@6S&|~AT4ky z5U=Pj%L^gpm%*K4pim$_xW6@6eQ0TRL&OV+ARe>#!JRKsB@Dp-8eDd0>Fo=ZppTcX zgbH}V(-`0>dlg(N!3584lv@P`_}*oKOC{97r4np#se}f&RDv_{B`To_9i$RmaH)hA zxKx4%E|t(J`lJ&6lW!HpK%o-4;CUt7a9C+}qsbR*AL15!44y?)2?_Y#n}XGc=P$!G zPT?5hHjk(MW4c5f_AxRgQ@TuQ+$`g|$)Z=zCY6$6D*@WAs@Sow;)6k9 zSPQ`q-xMr+RbC1X_ZvW5UP~t6F1H_od+aH=l)?yHyP59_83g36Fa}R~0_~sEHRYT} z2T}%4Pbb&Gr4%X?U!oKY=pdy~1-JO6o(Z1u#5Hg!1*_=upO}Sjrj^!0WQm+5X1f}gx8xO!dw1In2D#Sl+Dnr8r>aQg(@{0Oxl zf=h{{;O5u3L`D#h63M`|kJ1EVaGhQIpXt&u*~{QkBKpLaD3J#pzxZDsDbXr#a*T*0rH-r>iK7Sa2%jXXn zxW)+_gG(i7|2JPzOWY93lfdGiWRObG!KD%^;8F<&xFZ!+^!d*pTn?DUK;ec^1NXUo z9sF~__Ie?sE`%kcEp*PD2kx+Uz$K$Tcq$p~LO?Paf=fnw;F8e@Tr%1R*ZDl+i7%1S z0dz3ALjo=t9fI53J_VPIj*4E)XjTjqGCBsAjF$g3eV2=a9UDvQ4~zH}wFzO#Xbs%u z%;i7T+BpAHEeJ~jZE$-R-6*Xs-S*$Bdt(LQ*@nTx?=_5rwLGy#t! zqeBQtMpJOf=m=agnt@A3$KaAttu$YfOJuY>2`tvCWK;*2j8?!UqXxKSv|9A}cUvx( zfLRO_GFk)oxqTgcuj7Jy?EDRM!l`f}p0c;Vt!-3M9(c&!0hg5e;NGo#k#->`d_0#|20JXI=^sKXV%pm#f}ECvdtkb?VMYZ>^@g-8~LI+7{3tUp_flEp|;F40m=<_K}-asks76XNp zhTxLY2z=vl!IrlaQaXgVq%;K&IdvoOh&=UGw2{G9fM0s zwI@&4q@=VAE-BTEK6#;h0zXTOfkH|Ra7n2Nep;~Y_`(b2286TiG>rqEa^{-g8M_Pa zCzH%+EpX#r&Zq|g$!G^$GU|g%M!VpW(GXlR+MDz$MdO(Tmq~rx++?+6R|RcfsYF?ty)=ZO%K5>&S(m5vyZ?f(;4~$oar$HB-2`Xy7VN|WpK%~4lbFlfJ>&0i7%1q zDs+%co8Xe^8n|TI0+&qJi(bsMT?`a5-2j(NJK&OO7yPc^uy+&U;F9SYcp7YecOlabhR>(WHNmY5$X)P|y#+3r_Q1_gbEZ2G zkWBmFlIbqEWI6Dx(Z?MLdvKKp0d}#txr*V3tTc?2X}tYnYJMynQnmVK26|&8|+PR z$+QbDnQl#diA;OYK{DL|mrVQMlIbqEWI8PRd-9Bi4(+U03=}dQflH?Q;F9S9_#Vga zk&mWnNwB?{|H6~xxxTIYNkN?bRuRuW3Zh)u! z96Rv^R_Xt~?zEzkqg&f!s~@7PzF{ z1DCY>;46*~?tf3=^O8Qq<@H$%u3bdsH~`n#6L3lO5IlX9Q=LLUQau9KPo{}8aEB)z zgS+h7)23@uQeB?-5~z=xjUCLW;l#*SUQc++YvEr3iZ9){nUeA_zzk^ueVFVsI&f z0k{-F0xm@`ocIz&kU|G3f)ThBK?W{GFb0<*(Do@*<$MuD4N5_|7$_8hj?P6;0rxls z2Dr~|g4gGZ;H_KpB9NPY16oKCIN%|V*aVN*U2rLa7P$8lE&>k%QUo1vDFPo{il7TF zMG%5Z5%ea$L=i;LL5iRcE=3T7OA!pfr3jLu&liEl&-!68P$+^For_=uu3yaeN^pZ+ zdwQYz^6^iYFM=!IUnqhqw2&e&!A%~q25zxi;8Fy2aQC-d1U3Yu2pZs01P-_qK@(hx zzy+5gXia>HBJiMt6hQ}Eioge#BItrk5rjpbF9J(m@D&4vB8bqr2>RgiIEcaJagcz2 zXub%3{=q^KjG;v+<@1c`^3g8gdl$IFu7gVvRKTM@a1j^~kRqspOA(mhQUo<{DFO>z zil9F6C5pg?4pIaSa47-@T#BFxE=AxLeZC07&2*%#VxUk29y%962V9E42bUrU!9O{9 zP0%V7!2nw5m(t1-aFcxqZn3A}QUoLLjM}%g3I|(!r$& zDidF#2n^^TMNkEoA~3IXC1`0(mLgymLz@-Sr;8FzTeW$DPuK6Ok^US;m zTs~V9T1XMpz&&nnf&1)rbpBDh4X!`IMbLnN6oCV-Uq(gH1h?5;aE*_u1ujM4O?-(W z=s*W40v}w8pbIWV5Q0k)^ol-z&rkT?9u)(*%jZ6QaG!S;gUdZX0sn3AkeA={eLko$ zgeBA3GpB1L{_=6?qO@7#rW!rlV6{%?{BtpmQ_TZ7BbDV?xT zA_>H$M26rQ&y#{{SJ1UO0+$lWz_p)oiHsp2C8F&=opLFWGPsn84lX590hbanCcZ?8 zRH1{EhzTwwQUjL~vB0H7>P4R~5%=wMbapXND3J!Zl!ybKm&hIG>Y6J z=TstH@Rz(bIJ{H%F+mJ*d0q^_J)S24_t}T&{K_B&*J)jCZ3F=+kqlfu5*UNa%R}v1 z(R_ejS}(8Q9?R z@~{CeFAtmGN53_HdH9hF@|TAhC(nl#+LctiU2umz1drK!;Budc(Er8vi9Q6R2x4&m z)3l%gc*vfBYkX8ga4CXx;!7042s%g+WZ+T+V{j<~ZDzVEr3lJJpTAFJ@3DBLG1 z;6Crn0MG9e7kpy=QNkx;LEQKZonReY)5sg(o8KBN`(*wo@ws0JasPAFuLmA-`v}~= zirV+Vr9@)zIGnW4|9v$GNQoriQX)feDUlRhN@N6{(!^Re@j{7sPoW)*p@Wo&R+&z@ zlt>v|N<;^j5~&n@{yyQnlO{HbfkKH?!KFk@aCu!>1JCxP@$2Bt{J(>@eyX(JhK$do z0WHEE)YAcv*j?~eaLcFiSFj0(yAV#k7;6UH1R@B#ZRRjWY9rsY78zlrLCB*HL0mGxYU$h^!b`fxTY$_ zK%u4#aH**(xYU#hu0M@7W`R5Te+U1wJ+G;R&%}ln-nG=T0q(Om!7m6lU6j{U#9<%8 zF?$!>xsIj@!S(COd*D)25xCczv~O#D2uMxE;8IfqaH**TTxx0v9@4~GI`KkHW&6+$ zM$kcODg&3A8iPwsX)C8|O=_xK^!b`H-$fJa#XzB^D&SI62DsEz72JCUjb8(AgPZ)8y$dci6@o|fkwIJQK|pFM0++YueQfrYVt1h2^lJO7ATnNiM^A>o-(|F)9dk0)9#0S@(&v%_J1f)VjaQQiH4_rRU zjleZdcpqFUB%b&Z6*7PhQXvVrRLBrqDkKG$3K_(^V73=}G43@#O-J$JgI&oL2@02=H(gg>3`$q!;WuBtY%*#E!Y>KdI_;2}i9Plbn+ys9xJ7 zn)p)}fAP#qgJZ({yiVbG2m1XY*p`Pkyy+g=XBWa}UqHi#;3s~C+V{Xu4<4MK?Lb~- zAHtsqmhZ^JD|^&?0O4;3>*m9M=EEIA_}#(QJluYjOT9-B-tz?V41Cl6w1+YH>3k&G z^QSB9p{MLIDXlX23K~Dy^Xk&_4OO130*y}LgEYX;;{&ULUlnY=I^Xh*ucbBCApE0X zdmi5K0j~BsgkQ(yY=e8;z5yNukIc_@1gED7;X{K}*W|PPgU`PO;e+<1MS9=|aymQU zcLdw=;Z{6gQnxOI?+$k6;r3~KVm%0doYND5zokpV^}%1wn~K5T$UXo+g~}pW|Jl;= z6@TNL524WqgRP&ssa0KD6(dDjX;7{H~YaD|=8r+=^x8kUeQl*xS>B@UJC|#SM z$Q?Xt1;XVAX;cIJDXYn=;Gg7+*91SCPrL?x6y^6I&4R$W|Dg5O!QU3_%GbMMe_mGu z!kdCe=C^ZUR?)#JzuZqU6&{LfmhNQb)nHef}Pjp zTX-)gxCi0Q!Gn2t!*x7$AHsX?NwCE5f3UGQK&T)X@pnynAvi}|Et@TaYz z_5<)^`7WM-|L$gLKLkI7mYe?*_Ym0QRn%bwzLFQ3fuF#S%rW?9&&BWImie!1q81|1wzhh0@I0$GKEI2)}+a-Cun0&6|UhzfhW8>)mv~ zp>&sp^@f6(u_zNaJ0?*hpaQ7F~ehjY9OyQ3LKQsbB$(g}NvJ`<;fXEqn7s}zNwC5FC(~Ip(D_PmCSFK_^-J1W6FQiR z+yyuIN@#&+JaGs7L!1P^=)r9}3rUEIq5MjS_M|=Z!NW^vNin!2VF2!?)II@UNWu^T zF;AR=%at$!mn3B19v}7?+-KKbIA3*zB>242@+7eMF5bD6cA$ex5-Q+YnNF?>{z*=P zS@ht&H|I$R_n~KkT@2-`vv{Zm`Yp612V9cS1owYU?Okw(#&2sa2)I142X0#NZkGpy>Jhnzk2ZEhz?aw%Ld1 zdsF)q{i)<5^rw+$==;2Iz6dpKjDe?92kk|0cYFqU8C@sW(U+4~(Dx-bUSz&xxh67nKkk_a6 z96E_HxXrFrq0rdN;6A$^l)jO_Yp+09e=bd9fE(;paFg8xPoBpGi2i(Xi~R6~JF32l z0(I!1KT4Tvfd4qy^o_h?<(;AjVULIFfNOkX^TDNJyWlQAQ$ui_ULoZ_vxk7s6Gz|) zdmr58ms&Bnyi**2OT{J=FI23&QyfAEd8e47^Xuagc*+YMga3tJnrR0X3N3iCIggOMQ186}uxX0cAmn1mgl7uF>B*C5d z5=m%52T6j5&PnKi`@GOD_+BUPk)LaRvPBQ>y1nowB`${YrWp@401tXp}e0#URrKs!Ra=|AAAqo_&J?;1TH7u2e%%g_Axl0 zc>b3PFi@qFO~CyFxm3ViKJgS>PJ9F|C!S4wiQC8+I>?D@hfLR=oOl^L*MlANVH?6Wha17&d3d=4 zVK+D?=RhBn%FA7d`N6jNm^B~sAQlBX=VR`C%!gPKJUAZ<=VKwnvS9fjk0p6*MFcUu zNgM44kK}FIF@#MH55O(<1l(pHf;;RfxXV5w4;~nl_FCaFX3*FVO5e**JLItTlIfa= zf;D+K$i9~!fex`G*gW4g<*o*VvtWB3ZfpFq%Y?AbUIRDSEpU^)4!-V(^iwh${DHqu zJb3Z${0Eck|4u(1a-h*A@?#_LETQ%;_~XI0-T9Uu=dcIiF9$pGaQp9v(~^7$zv(pc zF8G;mBM-q3-H*Hn{!bo10)Le;X@8K`hrm%3&|>i8gRS4s*Zba+Xr2VZ4PNgM{B<9v z(@DWM-9bJAKj#4&KLdZp+{D}37y_*)QwME!x*A__8BI_IKb1G2gP+b`0Y8Ed)|hzV zC!hUb`w#L1c`I++gnsY3mey4Rf9@HyE(?4adma4b^JyF#{1DpT!CC_X&3&nZ1HRb` zj=ifiyV?2xJxe@@yX+nCklhE5H_$jCco;l*S81-41j~O|nkn5H9Qec1`n57?hK)Z+ zgN(tG4+dBNF#j{nX`AAex#{d?>{am6d-=Hm{y?zeNBKMG_*@#!fpE&+1lP}__AT%u zc$yCQN_HRIrT-2d_)+P=jnT(x&K>lcPIA?$Lu8o0+^2M>a+ch7&!_V7WIC%Fq@=MUs9aQEC*llC5Xb_IC{ zT)UFo2iM8lS{DKacL>2v_8z$QM_OnEZgKk&W>3Hq_91x6o`PrO`QO-wfOZv4oPq1? zV{n6ATRVM-CVLtEuXG^##EUPQANzmAoe6wX)z-IH=hHc1Y8VYzAc9~~#2_j~MS_aA z4rma2FHR!gCZ0JjVMwki3(aKi6~MKHQ@9;o192` zsUP}9uJzvH5mRH|CSA;9WsRz2c^#BPaKr6$!{DKsWvn z;{I~{hhFToLys7KKiCLVmPjSs8x@BNe$6)=SpC#u@yPn@Wr$)7k; zH70-JM1@TL#EGhl`~P^N!lnU<6IE~a8?ONov)_28H<lRxpQSBk&M ziK=TKA5dl*u+~52b52y9adNz-uoz!QRr-51aH4#saNAaSDV%zooUh0T8BMAe)8i4zrR;!iqJ4NU@vPgK<8Pn@VmlRt5y zVkUp$L`k2fC-CN; zqW)f6lAci>Q@GkVQ5F6*TRBl)Q#f&=Doy^xiSn8Ji4#?2@+VGIz~oPysOq@?k0&Z< z8jv_qHD{=|t2H}NN(sQM;>!zU_Y@+VGIgUO#bQBjjWaiSVc{@+hj z%oIqRC^@O=5loyY&E!vME|F(lR9!@ zZO)FAk23U%HkLyPX{R);R88Bs-(vDtwu}31CV$D6R)^-XoBUNj#{CYnf8Qa$E+wWw z_0RDEPLsbZwdl|Sr6zw>M%?c*`?KTzGLyeCKkj!Q@^g3-m#)+r50sk*RJDlvJtn`j zi~B1~{sw#8?=|_$y2kyL$$s^b_x7IgfG;_KzoK{CUuE*!owW~slk!AXYQ;&lo%W~P zm)iOU<9nyBvZfbtm4E3EJfKz^-#T@h!d~Nh!{sLbmB#PqdQAR)@$U^wg~{LF@Ow@E zf?sCjVW=K7uCy2}b`KlfTmV zHJFgee^1=+FN*Q2Vlzj_zkeJybz0&d5F^LqV)0xertqy_$A>kT{2PpK_eV|s7V#QM zqshN!YJC2f$^Sw8+tmJzD#tlSj@tQ6ulojn$^m{Pa$GE)i_H|i$=^$bZ!u1d!xWDA zhpX^?Mpd1r@H+n#!h<)Q7oXf^3KtpIw#?-J%;@hn`QP#HRja*gd>h|m3eWR*JV{)lW7Sio*E&dbV zZqjH9tT`*bK+NP{;9o<&t)Db*Ywg0Or}bBV%5Q|bKO0ZOW(q&)@1??h^8aAGHaboI zuEwdTF!{G9{&RxK|4uwD|9h#a*1;bcIm*zcTj*{~T4M4KUSm8aP5#aPj%jSU)s69r z)S1G2{O7CiH^u?8U)*%H)&B7+{Hk%QR+_?}_~#SW`>&2q-e3xk{UGkQT+(#b-p1P{ zl$!jm1M&V9CV%h0#rIZi@*jv_X8)k{RI9$ocsh!^>0&K9#wRT?`5!WVcfH)?Pb5)g z@}F-cU1#!_#OLP&lT3j<@5HmVU)nUGY~xq-%S`@S;|sb6(;{+9fQTm13D%H>VxzcD^fHz_d% z&M_`yxyk>Vzhfr(o|bsDn8M}8$!;|HeMY|aE1IrVO&6PE{K|f*$v?_?R#ce$Q;jEowaM>|Z<6PvDKIC~sPdIf7vAO{ zla*RDIB|=Wo5BfymC1jZQJgxH{~`YxHQf;7X0cz@bhR4e<+RM?pO<*SGWpB=y)>R1 zHO6imOyN%c;VN8Zob1x_rmNNYrw|^z)wmYbrf@ss2C6sthZ)Js@TSu}>))%U8*6O6 z+!Q|7I2TnW|A{xp@83F;f2RNZY?2>od{J$`y6I};{o_^mV&lM6n!+FW=M&bSF`hmR zrm){g#&S*5S;rcCD>eC>8}IQ@Ve-d}FIcKg{*rj@IA^AS7;hpW*EU^vnSV?U+nH@V z1jw~uJLTEE1z(d18mFn$+Qn*7#y*4?DW6bL3B zjwb&%{^7Ztg$2gND;?Q%{RzeysWAE58E^PeZSqI`OVxBMjOpaMrqiVzh##R6lYgzz zzue^CW{`-w8+dWN}pY0#dbb4W;c&2cHkzI|+?=_y&4JQAs z#tVw&`licFF^X1d@~@5GK>nh9zMj#pj9RyqlT&ZjQ%pZ>HN-ki7t~8 zQ(&%`D5@vb$Mrf}k2YidmX zM~y??VDcy4#>R4U(`CNj6+dvLCcp8%HvS?DSMYP=^hrh2!7Kd(EaaH@7rMn1?zTNX zx6R~l_HNv7H~EVniTfQU{|C><{Us*<3)2tzn~T#FDA``S%aZz7KkML|ZXZ7C`fKgi z+>W?F-!yjAsEXTe@pssi)**d_x8jy3ylHJ~ zGww^>*4@8sVrq-jYrXz8-P79p=dDc3t1VoR+9vN016%u3UP^1>Z?`Hn-(O)#E37SB zoLbWU_u(&gOKV+Q`C001`6<`u0wu{;U9VZh*8(tZy7PN_V}4;Z|2tKyp;A%fi<}*_AXuQ4*$}9 zsV)7l?Mv;Qa!l=qZ>3rD{Q2Ru+5Yw6wBKrfeLrnlVeR}+(jH1Z)UWoWO=;^|)pq?Z z?aP$fZr`W%Y?~tfi!JGM^@EpYOV(xC(h|K%TWKcktNui5h$;D#^ciiX#JKBeE4_eD zEzg$PVMmmHDA3}nY*8A2LHO8-v>CXL%n0!ngIj(j;f zNA{zi&~D_w_t4EbG6T&+Q_-vFBlJ{yt{guuBUeh$R*d_#Tv?PEr)rzEf_{aWwcVPh zf11|w{_VN)3p#N}u53ojXe*9Jy$2t4v9o!m^=w_~2PJvvV&cFL1i&?wsXqm{J# z!1GZA%|bWe+ksSHCBgSMqy0AR#?E;T__Pr=ow*T6hpmd>iZpiO$u6n$t$zDzkTUj}IT zGL80}oP6n(l`oyo%9r`4=gaH4`LbnTzNEPFWhEMo@5Dj*vYEaeGxKG~fP5JNA0RgD zsC-#^M!xLEp4K&AHZbp{N9W5xVlA7|uP9&kGVh9>`EqJrzKqSv*JU1^v-9(1A&X8r zGhgmx^0(1544lV+)+PBe82>X&a4E{q&X@N!Y?3-(wfm7wt9<$1o-dzZ4?i_urk=v4 zN|_f8b+Vaa7VMud2TseE_H6KOlAKB6!*ld}u`>7<7VnEQgN1H8n_U&K<1YC!gv7ot z%$H->^#Lj|k%gxyANDlH&1ccCm~a}4>>$x0EI14rL<&DD+!Ui{`iC(%>J+BEwklZWeqW|D3jrW!ERNk%cGI zmrK-(P2{twIV3WSLR1v%Ct`2u%`VyPrLYH+S*gm~eK;`etRs{D!sJ7_{#!_(Fa5s4KLY12?SP?mwR4Y3|29qksJ>8qYYN4R zPDNi~zYaH}%Tb55h4S}Jg>v!cLRkqK&$LqilTK=qKO6kN5!0s~ZxI<1R|oi?=+|>C@~xpSVL}IK z??Znwr~YTb|AW{S@$7byrP2>*t4W_@o7J64U55sv3(<*a4EhHeh9;u^Luz+*N#B>D zxBSo|I_ixsMoZUlI8f1AI-y&4#q~7Yhh`g0_&>mY9=-OBMXpAQc9+;tgdS3JfyrzDa%+OO~1>*-mb&m>TYq-g)T3~ z8_JLn8f@5QNq!Ye*6B(1oTRqu(+^#VR$R*>BU;GS=x)@2{Q=yD0_Z0+XoTKEtT(if zE;qK2r(qZ^^0bhl*!Q9zv0sH7#pMy03-2i|#jV^7~QYzaV)~U9Z(yw*g?pM?@aaH=%dQV8N z$k3nETglbqTge{u!h}}hy0?|wWl*)J;IBify}vR})lSwB`macebx0bo`aMDH{VA>F zw?|vaKy(kvLZ?2~N|!qxYb8rD=EG&HT1m?4Rx%fb+jHHsMKWY|k!Z8|zo{M?-{N=% zEs3XPk5bV09~Q}1Xfs-aR-lFGB{UOFMGv66(HJxWU5bXF z0q8_@3~G<8C<7h%ph$M3EocLJAH9v{qd6b&1{Kq2OhV()SadxahR#O=QD4*pbwn*u zHu_~{k?ch~&?jgWT8dsr^UyPB3Yv)SM5EDgG!zX+r=nh{^Gdx)T9f5K)E^B)YBxjC za5M>xMq`nV?nkN$v(PIjovJN@%h5;ZWAr(SqJ8LRlt-U-=vZ_LIu~7mMxo_8f8B-d zMU&AJXgUg_1!xhfN83>h<$Y8ncGL@EL~S*uA1 z^+x)+{B_sbBB?;vA~!l0m7?Crf!ZMpN=LCZMe+@5K@0o7jE%_bM4(Z|H8+HvWL#($STCna$36q^(eFr+6M ze~}lRYLg)P87*K;|I=+U1O4_VYITN9E+1@@S(p7$ddsup&Nt~$LHqL;Y_c20P|Fu> za>H9TxgCu|Pbr3NG6@CH>*&diHkpfFMjxQ>_S)o}?+&YapG^j%{pb#9Evr)wt2m{# zE~{{QaXw$zTKFm3@4Cd&nm4U#Eia(c+VJ1>+8)-|*pH+B_?n&3S^{UbmaZrhEyv!0 zvIn;2yOFJ>&snXd$kkfb(Y_e}g}3$Ud)0*%SB)Ni{P=xkT@E9}zor4zO+ky6=Dd+@zC!?Y03iK4d1Lzvs6VM#mibqn0;a_5HqstGg z+DQ6G|GrWg_gD1ibL;>9!hb&DKcDa8BW!fKj`LAd!2U0)ahxeW#IR2@c%L!f^Kc@* z$>>QGM8~gbBVVsQEIrxypSIJPc$cxj`LwS@KVn;IVHz)+5V zsRxYy8=;OG7^5Z}YVhCN1lRxH8xZgRj*-Nc|9D|zUA2S%B!N}NxR2TO+;weuwQD22 z*SC=^*o)zL#8tZw{_V7tea?n9G7?o2Z-s2c^dNzE(Sv9_!H;l`qJ0CLKqnvE2i2cf zwziSJNs7?EEJ@n7Hd2J0tTEULO{T5XiGGIkMB^_}O+5P8w!iD9?rkMmgNXI+(N+?C zgLdqywsK{Xjwx>|r(wsXGuhQ`#fl?Y4`L@YpSIG+|Dn{ptEaS;uaorDqitmc_UaM* zH47sV`~+J`*{VZ=%J=&q!=H!^Wqg~*4$qO8E5X%MYJWX9y<3X@U4A>+jdr3f=rgnd ztw!&ochK9Y7R^U5pgCv;nuZ=jlhFNWJo*P3i*82OqifJGbO|~ior4CV{-|$$J6#sh zXj#}!tf&`ihdQBdXe{cB`lCUp3|)$@L8H+)bU&Jk=Abvwd*~DNHTne=TG~k))ESka ze&{T8KDxr9x0CiHa22{7sq9ChQRp_b1l@xkKvU3@=vnj_JUzi!RLiLOJ#(dB3;`WqUI&OoQ4lTa_z9d$-Wq1LE5 z%12o!1^txUPQFKb&{t?1+Ke`$HRuDh0xd!MLjLMQDO72?p<>hl*-$f-hcc0%gOqbW z`W8jeRYu)A+!L!h~}bd^dx#5O-4R6p^)o;7meSL+uBYpLbsu-&pz1=ISI@{ z(~-)49(o1UqEvSNF8mO!N1M@?s1d1(xI=wUP!O-Ik68nh5C z)A{QI^akgk20f2vqvJwj2KeXukNsGU1w2cn`<)pa&`;7$?3u{NHLL#Or zl-%x+)K~edTTp7KbTFx%@cn_h(fJR7|3!cLpUkBnY2hOcIFe6|{b&B`YCbk zf=?#3RZQ6%kZLDXZL}3tOki1(&P-}2`)TuW&;%zk=ou77HtdA*lG+JhGLI+zbiWQV zk8$-$nx527_9xm)h>yLcgS5HT(?RyoNWHa#Y=Re5c937tTC@u-K`qC3kk3EvAR{+Y zC8XMYq0+J~ES#jLlG-1CaX9wz7qycwN&hrk?`*Y8_amss5qv%I^)~rW#x6zu4V?>z zBIQ>)Gs%9F_A;~*two<&?YeBGp#r-Ms`k>Pwz8G>p@T>8C*psFsm<*2WLLZVhJHZX zyXtn?O+$0U16G5oQ@5nHvXzd;*X9WRMEtMt9p*X694(KrONq{3UtpXAN22lQX;h0= zqvgbuR3F8i_t+Q@?1`nmpHX!Js-ph4&YGz@vrt>_*Gje|Zk z89k1kMAc|6dJ!!^Z=z*rC0dKF{Y&Ed|Fw=s?)NE+Y(=|K45bC^Qh-{cVssoj84W~b z=yEg?jX`&z`*r?$6g`82XaQP^>e1Ouc%~v!gD*x`psSGw-GpvOCEA&L;zr$fH zbR8Ol{(&Zz6U=-8_*^cMf;JkgU;w1Gy{7L z`V8$rd(Z)tMl2r{p^m7#vWFd(o^1SYwohcC{%A0|5Di1up_|ZHbQikkicY#bNMj0` zN4Bq`w^0CF?Ro~Bi(W#np*r*-ilCp-q?=CF@=M>(OVZ5f$;_X9p)2%P&Z1 zr=d)gjq*?-YKB@Gvca~8ZGPT**!VwfcVOK^Z-rcL>nsoQiIDg5QGz24s9r_qMc1~y6fo}u+n!d|u*Aq*>sk2;v zb7y%Reu@U7SFu;4qi*hejeJc*KItsZPdiH|sM?Ckex0{C+?Ccv_N8=@jj3Ivs81K^ zg^E$Ovx`Lgc9FaKb&>UdqSN}+{_0IHNYO`@ca<}Sca^fMSP`y8~!-ap*~$ri>|}AUfWd`!(y0F z>WHo~8ND(>?fidtuJU&{-LMmLCQ+9=jRnr8b5h{H+J5!-O>zDIY|%Aj zo=s;}u4~Z!s1G`pWXsWV+S6c%o4U%I6GZn&kZJcQ1my#(G3YfuN`yKe0& z>uDdre}ayYds|nz2s)vLb1LmMv@b=92~A9Dzi;$O#QHOFB`RV3N29w+PZAnP|C`|~ z^f_vKb5|LPF7$PkW)F0gfZ|5}3jWwt+QrBUe)FTh)wuL0_2q7dym+ZY^3fo)2m2uG zewjn=f@$RrIdPOjDrqZixFT*V-(Qi_7@yqtsmp&KtN+VM+B3n6SN$;o zX#u&wNZ`idhx@De`YRpscDb(pI;^deSc%9Q}^Yf3mLnUwqgBM*K*W7Ckw-dhq0{Qu? zvEVAh3*FRC4K^321!k#@6Lhiw&`krYqv`>)y-#;HH!7dxbMi9^=F?Pv~iW8b;N zp-Uc(r%{g`IM55*98&P5L%O07*ptvqbSd`huoTMZ;ru82o)x#;Jo5TcBMz-`=&zBL ze0&=ASuA7|ryOD6ldF7(o$@ivjY<8UbjJh9FTWrsi zjcGYcGi6bF?mLC%u^ zxISIxr5CSFmsRO!i~ROmN*_5_@WdN~Zjj)<N5*>WXrUy;%(WoAFcwvJ9H(;wU^u_a+fwYUG7bp!rL4a)TSRhc#bBeTD8W1GI&apQCGdB z$r-WZ?ZGw~C#1Bz zUF3G_q%>KRQutk}1X7E?NR>tRpWZH`_Vjj{r#+`%`z(cSArkv3T`Flien}VmJ*g7@ zHC<}3BhZWOkPHc9`%*F_gdNPt;4VxRTV@8oK9MTUtPH7wJ}pCH^b14BZ03da_#@dF zQig5I$&gCuhBdQ!Y4FjA;0QsDH*MAOGNcrG^D{)|;D;qJ2FszdfQ6tJ)9N5~l4`y8d4Oad>GAdI|0MWFT;6VuPLh%@vE6?mIC4Av2c zv1QB;-S07P74xhmG5Uwr>Xe#>wvGh|xIU&5*g+^$=on!lX#12MLEmQL(EUY*l)lKJ zge8x%qaBnQI{P5@du$h zz&f3IiGzBqTc*e~cGi;sbob(=j*ebfgYD_f0#B02Ntsfv*pL1!96Tjc?2oha(=x>a z!~N+G-2*Zu2BW8EN-6Kn>^(D6d@wpNQ|gpGi2f=O7aIzs>f$H!OhxSPmnw3fjup@lzxS>#&2c5k{f?6%OzDY>2q?0(J_0und0~R;u`g zB>V~=5#XWGpaRfR!&$h9%wYh!VesNii7-Lz65>yjpqmNtM=oPR?7-!j62%7=^NcYYA;oyONGf6ow_((Q-=+DT+q@hqY{#7}i0%3Zm6^e9co*Yer?lhPId&9!v9Pe_ zDVr~18kBu+CLcws9QQNu4R#J4)tt@;*a5cdAxZ=tlc-EBHnhP2ET>;+GKs<9qm0Mz zd5np%ZBMW;wi8yVaWDwounu}*1p1!P*#V6J4oiq@10667oilmB_*n=>1Dpx`G3dkA zo}~29_7rjaP8h*k0sJ25!1hk3BG5MjKa9*`V=$&aONVC(%wfkcIG0i} zFbZp6;5jD7?|gw%J)6T;gN;8lpGqv`>?|Mw7<-i+LdWZzCFp*G+l>CU5c9y;Le_bc zO25fQpbg3#?tkARPC1S!tbj4-Qyt&tw5pCU1Rby*I$;#LpuELGu#t&kOITnoJLfCt z3h3L!rGSCYN%T3+$`+{l!*Xo*Ha7Yk_kVahr6%C}l7(RaR>L5yr=w>V69*~nHzcCs zupHaAhn>ObK1w=|_Q2B8~< zVFk4P%He?y7-K+Gvc&ZQw^>G(M4%%pOM=9munxLl1bSd23_;h6B$}Nil`xQ#C6>2Y z2RdK~mg+PjG~CdUnL27KCmXgC1yE%mUB}L$C~n zq2ndyv66^lbLLlUnI*c14pADF(Ag?Ws-YKJUZ$irb^vW{h(ljH{I5{L4p|bWp9eOm z{?LVA8_2}acOePE*luQ$xNWatKB$e%;`-BwT$jZ^anuuvokH*EEGc1t z54vCwmcuagLfcIw3LP*6T{mZmR!1eE9eSWFU<0?aAavXf@w;Fd48RKfkxHGC(r`~8 zQ`PZa7Jik?C(?nA+I?B#gEm-=-{+&`D*hlldX2+52|sZk48aJDK*wYfCmwr*ox<=G z;?VsV*Zg(XnM%S-sklzVPQwMg1OiWINe$GVrNbKxc%ICOdtn)j!czRc7wHcpFVnA< z%GKb9Uj8BFg|62i{oSw%dSDRxU>&r*&e?*xgNC+@0Cd6tEQ3K9WuibROFYRvNXM~_ zg%**~E+%}N9q;9^!RSFISWY58aqX}@qKUSc9j9ty!ykjZ;i0&*H0~NML9WJWhlQGy z5O-RLFX8TKrin|<1AW-;mYPIh$fk)yuOs8O8ix%>dyPZHLPu%R2pz=?TuLGi7J!j% zEC9WInRpos4c4Tbi9^r}!>|fQU;}Z_*_v41VgBZC zL3@}I*N_ESCQ(|a?j<-mFet|{A zp|_3=;@5pN%4h_j2ZmrJ)Rs~@XoDdbgR&C;GA4vJSOT5U1%1#1L(r$<%T)zf7&byD ztl=vjH`Mro#tX}z<^B)Q2;m4p7hgy?-X#GTdk;VKzR$ItOXg4u(od1sbLR(|l)~VL zObl%w(eHU!PvYujdJUI|S5N0U7UI>;4I7~sMtCucuBVc(sQZ5dr&zt{e9X0h(T(hc zXT19p7UEGH{*;ozD6ChH-c2mXlhO7$6YvD|eSsf(w_x+2vTfsb-S zD_|7*pldht!4M2XcOwaX#CYh0zDDl{+&+dG+f`YF!aG17={h1!+s9Y8g>p#VGvfp zsIpga_`WAm?C_6_$M(e-r}`aaL2S=YEVPz+e<9(Ic=Y~C>9IY$B~dAMNKeTYFAZ;M zHaq38q-9GC#-MXG9ny(IZ$`FMGcb@vKWw*_Ee+V-9QtEBbF;<1juPiHuAakJkS*od zP7C9eZDqW&n`cWMb__OP>$X-5Tu*6>vc&_Vtyutu+GUHZVMpz=xkFgUo-Jy#}) z7$|0880?bGcTMQ;$d&*McgvP2boI!VvW@gVo}Ds}?F15mL0F@B68$&w{l5?mZ7p}f zX$*kg{@LP#wo)>MAsB-<>_uFlt zzvpVTQN~}BEfvr+DqF(qx&IwEWlI$uBd`WWp={v3zm*Qyp0U|t`-Gj{&I0(oeF?YDQPvC!@w*u#UFz8svnF&_p=;A z6`#$e`k001P!Z^Uj&U#)Bo1xQbM2w`1rpuJS5PmiLrEoHCJ`8Xg|{cJqoK`bV(4AK z1nOG7O2(Aj_ZkyX(!d)Gpd!H#mw=sz-lQK4FQQWHD6*JKL_*OzRS`C_j8cEW_~o1l z>@f7e2&`1`6|AfLIt}e}cJwZp!7%heZa)CC9p&5C}{%;e!_%M+eYFr zvV(D3=>IJ{hK{{lx~=&4F%G)+lOPO#PldN(|41C_;TWe`ISx`{82*WbwqyUo4q*6K zuD!A)M{1Ovk|R-Nr{#!!2X=anxS=aEN2-*al_OzgXXl7~iJg-pPUy6&Q2QM5enDkmNtA2XiG{G;Fodmj&Jpb^#&^w; zQW)x)BaMpA90}|qelkD2g6@9w`bUySb)Qb0q+6Pv=S_3{B4!$G7ZoX0Ft!#9#z^U?cQFt${-f?J)3cu9U+l zEYbHf!JJ(2;)uX16@VW6vFCCni0ue6F$}>5)elw^_q>oRvW5E`+F%GezGnjqSl|Z^ zYi+KS{z_tRF+YqfWf;y!^pZ^@u~QF5{5xo2P4pxk|tUtSC>i}(NA+F zsycqgju4D`;E2I%R-1}#*~$-K~aGV@q;N^we_L~(>qBLOQJ4`5;*sln5kh)1c$ zdt5tsbb1D|10Fb$vzV9%Ow2{1>H%{O_Sf8YLztN7fb(xu00zsLSJ@Y^@E+_7^TZ8p zL)i%QT}%aZ8nH{b){QK1DW!*z%krcGx~?EY7#hY7pyMhkwU;MjIf+5->OAp5?=>V0 zqu1u~l`l`ak!)likJ{_FRM2^So>ar&4O9x+M&*g+I}#YpJBGVx#BO3|&{M&+gpo0n z5;|{X01q11SmHcbg0~Zgu{(%E&z)3;2Tknn_@Q<;XX!^08pk1q5#Ep83!USs2npb=zfX}BQ!!!Q<9&VU^>?nYBSj}^vq&s zF#Ie#hK@Px_!mkymun59&vEUcYhIqz!{GB&fJdwLB2-V%mx#mg%go0U(NV*E&^sUU z;PdIPGLd@Fyhcape1iZFm_RKHss~Mofjn4ZZ_dPtYQH7ZFDt>sQY&f z6T-k+O3iJgt!JSqw;QxW2XsOwEQ2oSfo@m{Jum>hum<{I7zSWNl>0wOBZeacEnjiJ zLkEn&QW%A97=sm1+rTx3HdqZEFa({j9=c!@x}oeM0ce9>SOR^}1p}~rm(Bx+h8IT& zR>3d~!U(K`Q5bK;JHQ2;IAxXg3QsQW3?y?3D3QSdFdir=&3Q z0~Kt}VT-ZjZ|Qe{`C;rQc8uTk3+rIpg!gF=;P9m6^WzkDke)B~*uIQ>@nE~Pe9`#W z!C-d2gs{E5$$KewI3Ir_CFFhCz1UISHr+Dif*d7pMS4iE1tUIpE}?RkKJhj$l`D)LU^CHq*IcNO=-2yZAJgc|Qo zUI%S30v)gsx}f$Q{gt2jG~Simj_rn)R$LO^3EhPqf#uLyqUZB(es;q9tA}8Sw?Yrn zF~HlRyNXDR_h)aw?^DF~@m}nj4gV?ZNKJ4W3+!h+ti~T2kS}G}5$J(YSP5e=0JYPp z5OlyWbm}x3Xn3LJdk!CT!5A!u+8OK|x}m2H&xbRaK-n-1J+J}#l%Ke3U_Sr12tTwz zFD!up7$xpLiv+QK&;#`VjY`#V5ZACR*V4rqz_tx$0CYh4kqOSGGAe#96JTpYr~r1L zjES(Lu%sO&AIhb~cEBKX!aC@IVd5S)^J4p8dHXb7Y?re@j09kyJv+E6pOeb~Ski&p zWH^To+kG_)VLL}cWy4Asgf-B69rGMTf;YeeY~V&VgdH4BC9nfys1&wyEaS1=&}rxO z-*!6_;c&rnI|!*=|GL^|>a9fu9I3B)^LPh@9mVkk#biTg+#dLCdNXnUA` z&^w8R6{|Ru^bbO3XKX)*R#y|ys8o&sXW$?`O8PSsLa&2y&lATE!5ZwqOH=?m2;IkU30`J{P^)2n=y;Vxj>Z2v_rI5p;nz7d zYC;%;(CYfTpp%Z#wnTji0#ouB96^A|*ht)8s{KTV+Nd#M4!UmuX z#$XKEdr~QVDH;Dp>0mhwLobZN3OWRraaSlmtbq|2hA|ja@pnjE#i8(C=MiXw+Hw{o zuC3ti!FEF1aoF!sS!`RFgt2wkhfIXS1M8p{Mqm&&(80HwiBqtl4TfL|4AgT8_{_D? zIx4~wGqQox3}YMd^Q6>1Wn(-M9h;a3`ZhDZH5K`s{?Oe(0`Y*k`nQN@$94$JUDz`@#y9G5d4}1VR$!*^E`;|f!x=wy_BBY)$<(_bDM_uGcR=f zz=GVat{C$blkfp50Bt{!XfgM{_h(9qBk~J7Rkz)5Ovv33kOHYxr#+QVso+$H(+fm6 zz0u49X@pJeJN7f3mbeYl->;k&;x6r7lxq^HoyRk!63Ax za><|rhG8j;KsSs+y@E!Jh7W4(3Zxp^UtV%`&|42<+kU{4_COCnF&SEDT6Aq%pFfy1#)P%4G+kG}WhrV;TB-tc#E|p@Oa|rV*`#k1_ zw)3eB^jt`y#C6wD7RaGgP~<=SU%P{f=ce%W-<^~iN8leEIy$)SW`aCQJB|uq`zjfL z9fr<6EIfe(uwAf1+4pd`6z`=H_(L#;?YfV7RlobG$Vog09^{hbv-5|j40hyU);o#& zKkx|G#>q8(jFLjz6HEwW)0hZ4r;~YK?)zCBI_REFg-&MNbKD)!Hjl%pCWby3fnjKS zo_PzX2z0_2tbnc;*Z>T?NJVuTj+dCQ9~r+)X6!id3KOdZYnXrq+zTir^t^^mzwqnW z&{B+EDV2cHW!x1oxE%j!B=9afhOzf4A&h*;P8jF<*=h0 znFo45V?F$?P2B$tG=iJR*h)z@vojcj9_ag=fiMayNWjxTKPIqkrC%uvZ=-TBxPu9y zb0-TZf0RT9u+T2%fsx&8Ow9uu)ci08wQqHvcyw@nOX;8oTAHyibifdF!7ywf9)of^ zhiMPDA$}+HLKm!p9vFlH7={sOSN-?0AhvBEi8tp=e8+hFQT+e|REOW#A%Q3iLWdOc zPcbHh(t--X5@^#3r5uJ}74&8oN*#3O6iOp>Lpg&>WFZdS?FvO}NrLSQC5j#DP$>2@ zsi3`(e?xHpdppvRhUe%)andmiqu9Z7PB7gZA@TcyS^BhUAhgq14#H4-2J6^@kA{T15qQ8ZjDfb*)y@;XHQ6r(Q*& zXDt)`jfK_`hu#e&2%{gfAoNAJ)+`+RgdIW8XN+f|@aI%e&HDxOV0*VP&jsvwTcMP} z$aXH3vcD`8-EL!NU$G+?{hE>!aPBUYnCkc~JGzhw8u1f%eaFPuf&GP24c*^U($-Yy zM<#|o=z#$kRq+^?K*bL-9!7qm(ibuRFNIPLy}uReQbQvu7Lhg_z7#l=ouyjDi5*P0 zNGY}_!y;a6UzSBGv0WOUaE0y3;n#PdE053n;uBW`g%&A;VHl=g6ne4U7K=o&16Dp0 zOvRg7q~u}}Xu(Hr`DjF1Fd=leVnRB2ideWEXT!$Cmk@799NW1vTW=<2~obI~sXZS6_8C%lwI_*kxT=u;of1)V2aM7xZ`sP|za8Ud$80x;6gB8|{> z8ve@}Fu)?!iUUau#s-nt6-+qTB2~~igq=ZO8UA7HXejf**d@#ZBYdWm>q-*6ig{q9 zoc_>tjYaHNasO*0EmA?l;h|*Eb^{rg({VI@=&8UDZMQLCI1As&j-mH1i_}BUI1B$Y z=g?KM01S<%0?;?XB9?2Y)O~y|6b$>Q02T2*K&7w)4^n|k)YtzsJgU?Wvmm8)OkyCV z3{GZ2CbCs=&D20>yOso|umHC6aV|{j#Gg%P7Z8nuT zihi&TM&`1Po%=uX9GTfU{fZ-4-~|G72){^4uOrhsN~r8*_=($Aa1CJ)HbPgJ_(=MF zzydJ*5eYG$Z#9X)Fl>NhODVtWt^X z$hGn|*fgRvY&UT2EPTopw%2Nv7>q&t(LAY|S;Ymt&8<=aoh=~!qeWH;DBEV`mkc;F z?XCPa6p3`OilvzGumpyVA_3^NvoMVCv0OD!>%`}Q*>9wDovi!@JUekPf$9hwu|3B! zF?JA!l-+|wMzK&&67I~x$63XP?Smm0Enyst9Zx^vt`n#P^gtgB!VrwYC=B({*SL8s=st;zM{{lZ(E$cdvx@U3IEaae`&=Z1?K|5l)!4CfSrFQWSVikf;;*kKQe97BH?!Ed{f@neYJWEBVg5cFUND!2qt*KT8CH9+weI(jJ;wi8xE z?M^0w;lJ~-YQ)`@R7P!4Ayfl0Z+8YlS~F zj~(`4f#;bJ243J&;dj5tgxKDfN%VFO@hg)tybOB{Fo-0LoL_Ya9fVsPVFVl3$> z)nq+n8T%13By)%wk`B>~B~B#`NvER5+9AtisY9x<#35w}T`7iCzsLJpzH#sG{BfV} z*X#Xyzqa@LGiUBBpHsm$Hp2YV5;9-=3zCy(6!t*{VIJ$)hmB{-4v#^uZBMZ9EJt6k zN6$+r$S+7_Qvoo+8g^qF^O$>)qcD#pY~Ua^F*!wxU()(uha;HB78Yv4n}|3|{7;(u)+rV}Sc16avS zic)rM%ws8@6phfAbE{2?DirnACq>IBnq3TB6@|%@JSs{AhsgOU=7R$qBe$nbin<3R zGGkIy44gSB%5E-^b=i{(*-23wYx5^X{qzm&IgOu%;*pCuc$(|KvuKhJ18ULYNzo|g zv5ggMT9BrbeAVBUtT!o2ayqa+N94kWlf0qqOmt6*`sf=QbBs+K!ZtRrgQJ+=WRm~R zJ9LE}`D9m>lj~T+CU&1;D|VAGmOeVk`+p`{2Frq?cas0Nt8fp7XENMVK+NxjL66aw zbz<*HQ7=~Zw?#pZ%dmm*hXukcwlMjMtvP@_whx*V<>>PVD=^q$xn`nus0=C6qC zY+)Vat+g=7?BXL;NKUa2>o|zXQ94l3q5erel!(V_d9eGOgtuXbZTj|c&K9|Kyadh? z_k>A4|6@@9yaY_Nv5AEf1@3W5F~tUsuuD$1ketI(n8)~R9Xdsa$VF@hd+cETR0)Rp zvcTKgB5aa#r|I-p>Cd1jnJAti0nDGNRVI=_4zY3}M_Bl#3d}b#caBOfb~Z3~8Ha(F zYxQ>KF^?_m!+41O*F55VM;z>2;c}!eeosN9r1# z$AQj|B!s0On|E02KXb~%p}h&6o%j}sI7{iR?46m~FC-Ao#E5myO8s{JFuB8_vlW#) zoe>=^$9HR~mXwlaVH1nN5e@`LSPPDD7~|jQ7$!J|DRwZ2 zT{|iSQ!HQ)7O_w^C>iu)1uIy?A*^Eq8#pY1WK_$rg6W`yu@8$6XeqlAwy}cIPW)hk zb?n9l=CO%=*urwjplvY3QSLz2(wtnF?Oxrx&EW`IrzO+n@BNBE?^JVus1BgA~tXUn^?mZ4r3de*ugQ3 z|Dg4lU>`pX?An<Dj;4qJ4 zm|_QW*tLs2#}o_LgGDT03Hz~9HmDfXa0u(zzy^+D6WiFrXjhqIf*tI}_)&>VsEEVZ z#5{cq`+|L#5B4}1>>sm*nBWMOQ-hX44wqp*kfS=L7wEtr?cHt`U=~x%VGesSk3}rt z02Z-^rJ%RIgLN!Eu0zP~ViP;K?4xBBwY7A26<`lmu!s#T2@pRg z02cmgE3p2&R+=yUO`w{Dm#K_gds#vs)2UY!6!C>|hVZYfg>|m|{QXv0O1I8Vq3tyD!%2wIzVfbtXp*`j$TgJwk3x5rCYV#_=aq zFq=%@nKRkzf*fu_e~GQ!baK=exYT;=?5Gg)t(_)&UC{cSC3vZ;X_v{q|6|bXog5{5 zYT+jslG}T7NX~z1vfD675Xb0qpSJK@9DYV6*xYM!RKeQb0tNkk{`mA|0v~7|+Xq>X zY0-S}hppf*kUn=<`0Le|+tVXdVxoy%pHvwZ=<`QSjs~%CjKAlN$>$_GU~HT$?x%F5Y%m-geSrgt;cg{Mu9dMWBy#0Cyv2Zyk5 z`eb)Ra2=na6TuEU*v9lT4%L||#v)d*jty*MJIsGs=k}5?<}v;X|9koU-!d4Xs8l4f zw@S`Z0XELoI&6JaB_YADNd!yh3P4}Oda(bxis&mfhxa?S;$kwEu0->7>|h7G_Ob5! z>;kXC@0Kn20f*nUw?CATi3$z}18ib?EyM4z8)g?AU#Io#JJ+k|3WxCLI*0We%wy#y z1!3_PfieCC@{`93Kk``el^^VoV)psOYFj7|kT*2w9zT95U=PL8ra(AgJk zAr@aWkIldFhq-^a{?lt@{vWOE<8a&*Z@(~HbxJgZt?^T$=l~tU7P&cLifz(?%oN}0 zv~Kk&wh7m;?pj=PN>uof!0(%4yV$SA-ugCnW4!j1D32*7Ki26ke>lC@pgnU+RL92b zDNzSoa|K{n$#NVVVEPlSTyIJ=fc5wLBkP!MG$qRZ)cWozzB6j?H=7cTV7gR*>)35Q zCF;k{HvD6{-IQncrAwH{38Nm6FXRXl*3yEddxi5AJhvO%ZEP4)dhgSJ8UA@+RLsZj}=JnXkkOo}QJ)1RtY8a^^rh_7sEz4-j_Gqaig|2f0i(k_!eN3X?8XY_ zv4(wE#}YPh5S#PMQ=_^;i(&-Z*uvZb4iD!5Q;Zi%1e3)Qz#NwDve!!_LayVm1mpDt zrZ26}A13eT=Lq)Lb+^68UW_-802az0nCdh6TD2j=CdEcmy(1!H?7=4XVce}Fn8zM= zosG$XACwS%Zc~Y44M*sct#sm74)=#8j=61Y<&iprDdv0l#d2dO4h)iy*%OA1J!N>0 z3ig%pQChkm84LRhh_yZ)GhaDK!uR4)WGoy@zE2^?PmKy#I9W$9_rwdZL$CKqsYw8W}fPcB}h z(%(2#7fXabxl{)*HzdF@692YJF}*^kvGRRe)bDpnU19y6|97s|0gB=^T7RqsKNJ9q z*pDUb6QF|?a(t~$VLp()_#=l9+n9{1@W)z??Vm`5UF~}Q$(^6+&;#@hiG5C-Tlg&- z)b4ajO%z%jV&h>BF?m#`58@wHj_DH|Vtq_YgZz~F-;)0%Af|t|KFEL3;vlyLdWifi z|Cs*OmWY?U=y4$E|K|E{8021ZePZkH9RAK;{X^y0d`0G%ykU!ePmZQVeV9y~77Yh^ z^=Z*E4m)d1^IvXTxYo2Ndz{W-50~`M-sYwWmcR6isXe100~Q zbO}JNVSK!K%wh|37_T$Udp!c-0M@aF$)ssf6Z1HR1?*r2yH4N_Q*2Hu%haGlQN(mI zM_9l*R&ZD%^{Emh7n5o3rzzl!X`U_V!0c&JH@TUe<~<&VZob4?5?`oN%rCNzK3yUa zav_z#iPmHKu(MNMPfHD&8&a64Y%CG1ZK9H3_(6%7Z*L~>BM#B#)1p!OBsa}3CW+wy zrc3Fuf$^gpf7m>>ww7q{w=MrA9okM}^vOqT4Y`~%Xj7y+PV>!XneVC+6Zzd$j)jlO z9CN)A3-g~)5$5-t<~<%A!4A2D-G6j;3KGKRezp<|2hl$+k;CY*el*#-#tG&h5C8xF zyv&}k;6w%{N+;V>a^;k1(GcdpC?I{|3}=B{I@6Yosqo7Z3Oq|oPgdDibrNgmNE}P& zP4h%mN6y!gCk6h7MCl9Pv_)S~V0D_edR+hMr7~hr{FVf;aG92e1w$4Den-HkRQMxX zf{kIV=Aii#flqM=f2xu&kJ&#-@H+PNjq9}0CUgS!%5Sl0jy1# z?mv*$O(SDFneMs2glA2Uy4u#wneNVp*5NX2VGn(49)APY&7bZ&VG^1@-Ti+IDhoI? z(ZSra_I$nReqnHo4RX5ibZ;g}43pEe_Jh--BDS#WIqNr{?z>zn-cmyJ`K=@n>~NUA zy;LID_%J{8>DChYt2o<~IWkCkRDQYyww)dgk>l;BN4?|*Rxtj^^r(fE9WDHlR_`=D zDqx%!2ovm*V2W)8)pnj94NAPQi#64tYI66G5xglXR^ocz=942erCFx(&Apz-OLR4mU!Sk62o$FUxA*N>3-9r z4n+yOzQQr)G2UNbEMX1nSYco9vo++}0oDcmf$S^nKC2_H|5$?iB~d>) z?n|P2&>xWalA6vOD3O2Y+-D_06T|sL|-{l0$4vP z@qJ$v_gnai4jj)ByV~ayuW|}hvJTtW2!2iy7~_+ZsQX+zl|8nwiM6sqzOLYM;{X2! z9f}@I2NL(~bx5!uD_Fq>4q+P`n4BhnfN4c%$VJR|bmS}nuyRfk#ji=|Jc*mHd_#u@ z`M)4>|6lgsv~}i7mk2yW(Yll&mcA{K^8~^o#^1H4n7cyDgM6im&bLK%31aCgt;X8b zNz}sPHA$5H2K#FT!1l0tY&Q500e_MBG^8#1r9`n&zR!Yx8H{p>x!CFTSQgY`l>~W7zz!gv^&F&WO@)y8b(v z8Bw1>y2gyiUE+Q0dPX#e>C_p%5yMe3BN{eem@&g&CY9LC8By&&4%Ms~QMPI;X3y|c z+!oH6;hRp@Eu0Z0|MiHvWQHqCC(;>FKe@4i_2l>iGotPqf7n|K@BbO}Q^Xt2@ERUR z*u-Sx8BveJ*2D^SHj#)uZ*3|;dz{;BhVSw?jGMF5%5;kv(TEPzx113bLIF!vD51)S z6^Na!t(Qo?M}ikgY+L$^{C0|WnBimBD*A|uqVZ9EM-H&DlL|1|c}6sb@opT1h1k8y zc<&MDP>}Z!=wg2MoZ;&^j1#3pzV)yjM%<$;sX`qCB~UgJpyIK3Zd< zy{`($l><1u#KHr$2;ugwm zEPG5pC*k1tIQ}k`$ni70{udUWKrvyw>zMEyMhmRhm)Y`TSw=8#BCo?=WAeFpR4+y#H@dtXhbTOJsbR zGjO?pmy?HV1s1=p0<3-4*}&v`GrVAhKR1t!hI#DVU@I|qqn3Z$VZ{XN*o`gBV|tTL zhWVSy_Q)W<#a>_o>sYy!BTRpxwcp`zM1|PE3bt;ONYLNT4l5XcSE6@H2%C5F6Xd3O z>|pi^cE2)@$vxs>qiir@P`Fpi!o+<7eosQbkr)=Sh9w-v!l*sR3Kn924WQ-h1pOl_ zyOP64C5Xu%Z5@^{yP7lc1iLVgx$m1F(*Z2k3~C0QCnbW#rx;@GPg+)YD6xR`r`cid z&+G#KqT;J`=o$0az#)v==CO`#EIez^uNLq*fw752EdEs?tB?2n|K}ZsHJsuX1YFah zS!Mzof7hb0@MV_`R&WeEIJlO>_KH3JfdH7rBIdAyz1YAKCa+2?$T%A0j!t6{yRIqA z_%#n8*Ju?Mv4w+}e_bWm#ATTKm&5c!m0=I2Z?F$C)-d@ud#qtQ$p6ve$^P^QCf7>z zzqSbDXr>pdC4?hogJhMNQ5#Db|40IuVt(9AcPtkG`!Qa1W;7UNY+`3T`(YJNz-cb<;nb9(g*PI#UeoTI!1TbD}rvLvNbPRf@`#TR^Gu@6!#_P=V zDmcfJX1ejX1(Rn+MQq{_rc-2&6&%ABcKuYqsS?08#xp$PB@z$%84|}jj$jkVg58Xn z-v7T&YiG`kvRK4kY+(uW>k5c<9Kkp%(DgdCU}n^Z4Xj`jhp>eWOc&0KMlpwNEMojK z>oALzp!a~(SyZNQ8C90d^ffw_uWthL8_tXhE}Pm$GRJshEyvO(GoxsAb|2JAEPP0X z*xYQUPtdu{ax=BtBiVSZO)6ZP6LP z(&5%&{z#q0^k^Nxq~H8hl^?4^Q(ga^<2aybpP&+_xOgJRSU8Cu^IzcDq0E1ArmxL# zV9UA^_5(A0!B}fgciORdhP}tam+2k8v_g;Vv*@w@RaXI)zHaMg^7jq%Gs`l$fB{AG zn+(E4jlsGCU2Lzgeu=#byi@|%#+*ac!CtI?iz94c4V&0u7hk5uv+VWd>;i{$!hGr5 z;)Hcq>O}eHE`z#-402c7BXa#mDkrywRX$tme{4&F{-^e|!TvglVe5K{2R7K<-~r|a zTZT={W93FI#`Goy1R2{{xY>O0d#mez$e=M|0^7GaR5!X@ZkI9Eu^$V+ba`O~8`!|? z9G$w;;lk!!5~eRUZOu&{0Wrn+9*-NC!vQQ{4eL0JoqJsWO@s7a6=DOsZnoe)m0%5f zvG8l1!TfJr6^mdY^2 zQOsfYTzmeo&X5}z-O2%GF?mD)%wv&V{!xJfALA$Rj}Ei>0+z6dgIK~kR&WGsWrLPM z9hYGP<6qcA%wh|3*v4M$U=icTwG>mVVF8D+giWmA7}l_Z4eT1>2UConPym(_gMvYd z{aD07Y~V09aZE+&nA4oqT5QtSut1KVVvnUi(PR5*otoz|{ENh~`3%39dsgLGe~v#) zp673V`2GJkmCfgP8Aq6Zi2)Y=ZVMLR%VYub|Im@!B!qd)|C3`ZVFl|rgt=F2Ar`TX zZA@+_ziJ(}u@vNvgl;cW7_2T^RB#!#FuTwL%NttvOM$RJF08U{l#*N6hsAO0 zMnl+~xUP4(=rO*7U(8|$a~NmVje0S~e#~K|Y>+n?!U8t1h@)7-HdZjYQ_C^IT)b}7 zjisp)!1nZYz4>IzX0p4>{2YO>F^^wtEs_{^u&sdF5((Z-kL9dEAze4hV;#E}+3W6g z-R+u;1DI~SuDe`2^_$2z%zsFL#r7H-LBH9$ekD5#If-C#3k-p_Tvu@VrRzpr?BlJ; z>{~tjlGE+h_5N>gw4IhVwdf-%SmG?~Bmr_^7Xh$>W7xp>S1R090_>7cS+~AJwzrPa z*Y=Spxv?KV?|0qz34D(ZVT!o}6pGD**kS9Svb|xLmSjv(#1_^uzE_J+S~nUr-#J+V z7zg_e1Q?*l!k5AcZC&3H5%@d-uy&EwV{u65*tIdgA^D1RqY-kwY%oNT zd|zOSB6hHW$$cExEx_DW>w1$>rB_P?(`(G9t`^K;5erzsZkp_oAtYaIS z7_aB|f7>86$X&|;RjQr-phWXn#}bZW1Ec#L zKJ3O?!|4w)4&Cqn|LF}{qywcJC9;vgH#ybVxJ||kD|e{$*BoJkKE6|n$vG@y5eKnw zmkwh7Zi%wXH(h?eVfQP6yLI9oe#z~7*<*5_M1SM@kMGw~iW}AkD zD50RoWtje!{R8xv#U|#kgS|n1$a-x3PA4(suRSXo3ifN4XGJ5yF~t~mu!Bk0tf=b`GR723 zlVudcsmJU0|&9ay@guW*oi$k z&I>?p?`$2GcGaoPZO!i1VY^pHgWcW&KY{z{Af|n@JhzY#jy~b~&l|KUD(Ln#-dNBw zY+^UI4$xZ6A82bht{o~Na;Yc*tYH(2hYN^}BXsUb2_I=|a;}1-k=(!vxo{l+TR1x< zXW+@QKqtvKC{E=FYp3hLmKIi2W?=7C4?;;z&6&fgTq08j&*@ww{?HA z{yhFMJ>NXmu#L$#BvO9bgh4mfFW?Z9Z)!2NE}G?aUGl{OV*&G6yhJ6~zy@}340D&V z|BC?FjU6lm`CAIW_%an^5l69!Wq)APOKmd6I`(55Ygia!h)s;!68*MAhBaK~aU%Jy z#9Y3$D>%mZN(s3-5*!Iz^?iwHd8@8+9ZarPIo5w5A$}S^m{pDj4Vn~nY~cvDu@&TN z?B%m$OtFJK82?aZm|#DqSiu|)VICV;z)>t>8%yX%ZHePLan3_F)GH zF}_w}nBWMe*uoqx!#u`+6$rCf$6jn;5t}%G$&YjZQ*2@hJ6I_jbUiNFgBr#!N&vIiz#KNQ z7h71w^e4^+=5QGE*u(;kVG%pn!1Qm{V-L2lfNku@+)r)Q-@^58(4Z*bC>F7eC5)C? zh}o@Nx7Txkt)HoszKwb8;9!{lxkRvmee_L?m%6MQIuPuziSZ2*#S}Z?-RYb`*GnqF z6bqQQuz>@?!Hrsm73>M~H%aWn<}ruq%@Ux`VLkZ4kzj`{EaEaOVf=S{j#;c>u53^@ z=*0#Wv55oN!jb^FTeKQ$Sfel9$|1Rh>DC@{f1zXa1&m%65ECq6H&!r@HSEJWmau{4 zL4&429a}hpZERsOA`qq+|3ihC#XRP)fW276A~vyxEgZ%+HnD?a7~iJln8U7r@^hQ( zKQ$;(6jjo~A+0n=M>BuV*#~w^^)O-cw z9>0{ZK;ODw!PvgPtYU)>MGNC!s~8KIeN|yoqtTQhIwpaAC_ANC4>A!62T&lUX60S=S%kII8s@Q%eb~Sfws8r<@>XiA~i?08cL7gJ` zh%HzqW30WT13`Y7VUYh}uY&xF1a>69ssc=2)1e^0uH_iNVe57x|678X{MVtxMl{oKQ5}g)D9?`i4C2geUnumjoDETcGjHj`+@!w zxz=po`}07u_H565&95^%%I;!*(rhnQn4dB`8pPJr**^25lhbGW+8+C4wihk?qld!MxeNR%c?tY+n@Tc%h7SsJUczG(t|+o9(6}?AMpr zI9s#9?5O*r9sxI;9Tl;&(QMyxQ}M>LeXm@FADkU^?e59zrn5aY*O|>EXkB58+0g*G zoNT2v2Cbz6VSQ_@`IroQbOv+V=?um@=nOVLqBFf5?IZ!L?5qF|o4e=`xv`rLVSRTU z3hdRPJ^1^$4qqa$5pnE3Ng2zmX3F3 zutsk0uhrN*SRnewAvzd%DESlC75NSJhe-?zhf6rf7)>ZUrAIKFpq1Ez#Ut$z7LL-& zz@sICwPQHuu+`5YCZFRF3&(MYwc{nar}-23!Q@1Kuu$R$YbWs&=1&&*ljcuRc-f%v zMXko#sak_ghjIkt(`*UmPv>}|yV!q;isDUSKt_Z@EfLVdRTKbk0AEi;PF5A7*Axt1f$V-s6A z7W6-I`Z0%Ht6PUD*02W~SilzcV}4kmpufo>$I34qN{sJtwXMP5om$;%klyKV1;t$s zA6D*Wh;8gzQ-ELDD{S1uF~;|*JjnM+44e0}dmlf);qNnA{eVizH5|aggY4-`4=Ics z|4zZ=T)Cx!y|n5Pj)EaZYjN}_Jyx(7=KtvWC3kQj=pW}O*gat#w#L}6ZT(X^fNks# z@}Hau>nl&|EV+g)a^ug|lgk~0ra|d1_8Rlgc%AwY_?_e*vwdx!naN%d-93R&fXSF#|w68NUX--sFC;a`NDGW>$r_PC5 zm`-Cj$yOu`usCB*G=vpwU;{@nH`6>v#aVN_A!#0Kt z;syP@Io{BA{U`GUwy>~pPPEKK3F9eRg;{K14qMoZxkYn4&U1(ZSXd&VpiiyGHs+@C zyS{m>VIA}DpA&Vkgk94lf@#^HxWSw#kNFSGi7FUxI42sx1Y6j_?0#CjvDQuJ0Q<=8 zO*zKOW*pJiH&-zhwooxvwo)cdr1v@N{7!(a!!4Q{W9pgk`OfkO= z$5_AuHgGHi-gZt@BDXQw-viM0wjj*oFm`Yhb34rO8_;@;XNZTr!G4E1+=WR><+$bE0l?2b%}$ z$oUdF1i!%{RxWh<&F8D;v4m}`T_oXo{9M8hwy_@MOI=+-zRcCbfAKr)${csDm=g_R z^GcTu$7!7-EM6txp%VLn>m6%9R2jCfwKYLMY;TL~up4XGGhgShH^@I`k4-Glx3M47 zpXd~Q;isn^v!gztsU>0+?SdYb9k$vG8 z?6HM)`s6ly9sFSS2wQx+*3-9ccl~!Qw5PvR0VdebAb*Dpv3RFIM@r}}TZHwykzE^$ zm^QT-b2x-~Y+wOLv50LfVYJAh#02AC={SGx|D|O?(dH0Km>eZj%wh96@?wGhDiAq- zP3y7qhJ@+c|F-uW<@TE!4O*Y9&mA;3YLY7llaJx=7&7LLpX=W8^f-d8vO&Jz z<#pm*e}ci`!45XCYl#4uVqBW*#)1;T8vEiG=K8XlM7}uJm(_G=0L|BNh@3lJU~=wD zbE7u7aHfFd3U+_a)_mDKmYe6!_2puf4Kl>er2-vCzMKKpz9)06)FpJhg;&q@l`9Ec zD-d>mDq&1-pg%z&f0*lyWrwh(QgY*kx!$N$z>9OE+~@gyRi`j{o!#d>|IhtLMkjJG zA?t2-TAs^ybrbvr%-CGqP#c&E_Py zMK;Qp!<|)-9I=JUr_;xrN7N-Ev9GPRvG4Y@KAD zqx9sgzi>r=M%MShwHk-8jeYdFv$D|$IX+tflDrha@x*wnze4yjoz4ZxZk{E&fF| z>J~VMc`RZ-wr~jZBU!Ki7?cdMN6Y9o1{mL-b+1N&f0>QOu!ND*+q^>};WT3%<2wZk zhw(03fbF~4+1vcR{Mnl1eidqc@*DO#+!*B#a}O#|+}eX#zyIGaBZ^*3eyc((U@=ti zkV?Zmjs-qUrf)r>vJJHKQ7t9c{;0y!CGfZc=<84D1h&Sq-p-+aQl~!P0qZGou<*13 zG56=P%o%k4Y_BPjw!Qh102ps*!E+pA>2Dkb`DKZP`Hro^%Jg|r_6!wmInUQ}$lK0y z19}NyIwLj%O9T?wGCQ(&WrlKf}fh_ju;&F z&GW4Wh6l{^|2bQ6$h>G-;9=~}Vt3@cXbAJi%=7nO1v++~+j!ZklljBe=>mV1{MC6; ze2)2Z=S98PzF=N77UWCjMg3oM{TIG1({r`@3Jx&;JqB30cAi^n(EoT|G!pnzjs{h5 zlLWANi$FTk!e}E`LEw4e>_~{5U^k{XMBli3UX&*{u@76=InVW<{$ZY5F4=;oEc}MR z&&ZrXuC0~W#tzn=l~A`+`n(y5&jxhI4tzKn*6n{{nn8gm3 zf_{SepvMNeGtoMXb}GyXb@`~N(Ad0N#HUq?3Ms_KBxjLZ8kqDUao>IIK*_RfI|-LHe{@C zJ3s0Voxtq3t=oRSzk*7?GUJdNS7WTNTDhJPZe|YwXTIXtt4^yG5sCl^cSUFM$Ts`@t>0LFQV{{4| z$CkCybFViyY?U%K~8gE9@NV###Jf>8tdZe2w1WY?aSdkweuORAD$==aa)>`G!u|O-#EyDh-tuQ<5U zmOLO~%#TSBD}Sc{zC`}wOkf9V>~n4Yuz`d0m1pO>Q>ws!Wry|W#rb|&V|m38wMM19!oUf|xqD$gy5@>kpQ?G|{JM4!hWI6J#9 zh;saudKdV^Bd&^%FNm7h+;f4~|E^)M*8*)8V4np(LdS651^y6;1om6t``uc({{nBL z%lJSGwip++Kg%)u#-SXNi$(e$O6Z6M(FnP4BtKhvoH%NMcfKWjqQrt+VvqHcB}`vD zbwN}fr6`pxxR%4OE{JM@=P!tsVS2#=Z@pT0A^wQIw!lkn&cY=EVP{By;c%G97!NP- z`-0td0$}0J1yR>eoT*>2!_NKm{8fIpDNel(klXB`&IfNzh-L`(0<)|iIv{qm;dI!QDRB7Flvh9 z`)3P%0YPTt7W!lx!|@BF-Vku&!YFsWLlZCbzask87dqKmw#Gt#LPd+$To{dF@qG(@ zp+E=LS{QYGnA~MOHs&mhiu7@IVKjuzK>GIlh0z$fz5vP1@*)nlHdu^5*RmxGqdx3l zKYg59NG`4?fuR3@gy<_9k;D8Z3!|QG{BqiKVU#pf^dSk78=Lb(F6AUju52m69`;KY z`XlB#xrcS+a_3Vza0A1Fg%mApV*N85ZY!~URDvxWzE&+&HV`vk=J zKnY_BbNt4K@*8-VMCkKJ>d^N5A4A?gy#CkE!44K2YXVz15ai=kXkq>H49OjgKBDy} zE{wXdRMH{r;4oHBTIdgwm_K=;+iQkXZXS!LNEDM(#o5XHX%fW>rZ>9&^A#jIN&=W~?Tftm`i{VjWjjmsB$0ZM=?1;$EUV!H@*l>)GJwGLq6hZ4f}Fh9Gp zyPh9RZ{#P)H}O-xX}qUUD%wp&w=y8terb=$tveh_a`A4C$n_>iAH{pvVf$W=u!9}U z-LK-C{ThCNX1I;%mn#aGB%!D=-ZJxi32*Ef8JIo ztog!1-~U!w`vnzY@}i19W#Qjk4JxT%i@t$9ARTf2A z73Ef44^2?7x^?jzY`WkgY?P7MbSvG!v=jm!w)%Eju%DIZ33*u;U{If z`XV2Ta0u7nn4GN10Xcc!A~z6pd9Ag`rzBiXYjZ&EVD@$uccIR;*IDH28xojgJ-In$ zkx#jMNSli<3&oIFjrdX0d;g1}Xix}^3?=g!N%wg_v39_p_!Jb?gbLzu9wuAmjhwwgE$CHc7 zQMWt(?3~&^}jBPn%H<=U<;eLjNE!b>+fgxqCi-|0@nU!o?Qb6$Q>NQ+%g4( zdF<*lkKNe8KFqyTRj)uw2_bra1&)SN$7rV=y7Gp2gv4~9^z!ui99cWz#hsot) zmp}&TI*Yv=&H$5xbYRlrs0Z6v#JGEL)W8@E>N14ZjG`JL1MSsf(jFdy{T7kChROb=e{ucYvYW5u$H3_4-r5CIRf5L3)!50C7kt;V_|ET#}>@|JmR`cY>FLV@>5rHvxo7O*ux0fjxroR+`qIQQ2v3{q( zN6YXot^K1tZ#sO~{1u1vo%;m9_ODe&-}sF)@VEpsY}yHn4-ESZhh(Se<*AV{Bsyi;vg> ztm7~i9+SYBGw`^xf#u>D#pi4R=CJgnPGJ5ij-0F+>z^fn`DYwHEa3ian>JT=tflX{-@*KMp6oe_Zu>SX z*UHY{9X1sdUXd`?UzaGm7M6maf3XYp{~uIDWA%-8(fC7zUMHCD)t z>=Ku>4$NQT^(0%eKmzoYg-fF3FXk65@%%pwmdNBpdzo5@t@W1p%QX^OCyj>5l}V|) zquJvrsr$X^#MCtE!(>|O9T4`o3~STVD0h;|lGGnBw*@$W>5NqO_?wwVgVnP1E?R|o1${!oehL%_p1q_1Fwod29HA-AxE`4a@DPfz4O*kK!!lJ);|R!&v` zHp-_muqU|zd!)6s(Y!Q9! z5{aDVy1z<-^i3?1+drW1NbHBs2IjBj7mGiVfce6(t?G>5zzaqKQRIFq3VaY$y~xc)+Q+@YBbSLv#5d}wC+DuwFKhh{b!S2?J9GVQq9LDj1d%`6@_ zaBy|?BQonxc;33f>Pd%Y-k+JZN)!zpJifa3i4^3b7*uyg0%p5#oe6&}{^sS#w@jBD3 zBdYftmf36-H%vM_v(YMj)r}9&Y(B2iUp@SA;Rin#IDg_5tNO$8Csc2wQ{0n>XO@hs zogOmVa9sWL>Xx`k7WZwC4d+g}Q@iL;H@Q&8sJu^Oo-nxs!`o`(idjgxMS6>gT ze7U;*k(sT>b-q$PJg|0l^=e!tSAF)#%r@g%U$3rz6m{wR>fxxzR~?nvXhvKeAN_p! zPP`e)r-P%%CPwZ9_0mz9xf4g~^xq*_~^`>Rf^Rc zj?Qc}v9|Vv=##5dcfXq1?{S%5>8v8Xx|FO4~81#G67uKH;?fF0Y zrN&3n4^~e*CbNy!-FA$qja>EhV=|jl10XAPUH6e0mnsahVM)o%xMS04!IsjhMy^j9|y7^of)FkC$^ zV5EB6ahd58a#u`<##LXaW)@dhJwCH&TwJfNf4tqRR}VWrv(qZQ)gK?9nY+qZ^?^6> z((#rqtIj*YMbr+MJYnft%kz9wb6U_Gxm;s7eMajC6W(>kLfbDjJy`wm3EJLWeJQ|I z`FX*b)ssF?vgHA3^);9n-#8&U@~s2%*%KX*w0hQwlIT=#IFVJY`dUD)x1dSIx!&KDTh0wzz`fO@dH?VFmWY8|DB(pzk@y}+GD41}}-}wo8x800->DPQm`_@%VpQm5rJ^CZ*d){Lox_SnEym(?X zKiEs?OXI3no|>67uCiYB##1x9&*-c_afN2AX_KAqa%TFtN_Tb3a%RpZ#oUT!`!MT! zk3NKSi$ib1RL{06g^=@TQ5S?~OW zc1`iPQQBq2SR2syuSD<0by1Q2y|LU+j{WjjyPsk_@X-~0UO-=3iT;|fmj1my?^teM zePkdr=fJx8_vY>*EGK#AxTR6U&d*xSbsL8OT1z$6r76cX>_)=!> zE(3S2=+1X|qS8wAYx>0d$bBoiTS(u$ue#+Ko;q}@pE)D5(JskDE4mF|X6Rap{tEi! z*%kYAGkx~i>Vs!^mes62aHa?QH>gII59jzWx;xLkdsX-i?jzdK$lt5motfEiX7=TG zXA$O)H=n#*J==Ua|DO5K%bU&jtVI71efrA8XbGFQe}etlG%VOX>S}%|u^*+ZsdQ>*$*w&8+Z?=sxuLJjO7w5gcb}PLB2OUS`3aRznJ2*I)%7c$Ip(gY?o#pOyKqJIdBlHgEJ3pby zGv2ayimR8OotaTyS+JY`KfxaQ{{(yftzfx#LcO_X^Yx_U|kS z)o*H|@#e(4^t;gy(=UHk@zxAgbdZ0V&s0zTs{aLyK2!b9S2G*#GWx=b-Fqn5twjGk z{RsVgubuIWf_-)7Ievw9%)3_K`3ZS0HQ)ErigEU&FRVm=Bz-Ua3cIn~zIw4Zo=hKm zZf5f4H&b=Lnu+|O_;-Fn$cN}t`uC>l{gz-~-Kw0KF=tIL%=Iz)-+Xtlcp-h^)#{dC z%j{U~KQ}XF!Wk6p6^jc`-r`eer3VDl(jtAdz0RiKE!%&(nrz{ zuS9953WT2G<{_y`ZwqY-qDxeY)$Cal=b|ge`n(V z^c&FkuSCBCeQ_oFedzmEqCcL#@LqlRRd9}p-uF(>UqPRz&%T+<@_)m_*3HZ9mv7&k z$BaX;|J{yY^AGyM-0JG*Ik2_4)%640bE~_Ym)U(>ZhrM*@-DggD{j}#>pQC}(LY3= z(r1@v@#a4v&hyLd-#SW8Uk{rVjuQRKVlAa#S*$(jL#!2!5`FeP`sEMf^vV3Vddc~j z*`c@_&sS`5en@K0x~2Cl2+w-nu%O?9HIB%vm)U@3;B8?a!r8 zM&1@?eZUp;wy+yv>@8v9DTHP7tLI;k*>KhDg16#5M%hjHR|vl5hSFIWS8w`bW{b>j zgrUW63Fi=c)_Y61k1+QBw}dq}5^s~Y*AV(Y^!6G;SMKdKgyAjUUenF&!*8!4boDG3 zK2#k(DKkEE4$ZP{{@-K<~+4_3*2SmL7TWjcYkwyopGVJde24XlaB}8j@7=4Gx4gePsG)|$E~(+ zwQF)be)XF_DDWraXzK}YzGm>s#hLjtBPznq*JN1Ol8=?ho&ee8P5ar7JGw||2EY5ETR|DM)xnBJftyfBWg z2*z(d=eumJ*kJp$;;?SkhaAFh#&5o6K%Mu5FeJF?hoX#+xW>^%Z@p6Vg;}djtB(FD zlc^3~>UmE7((1*RdMUL1{doCv%iuoz1fTcuIb4sURhMht{6`wm)AY5gs;^&~*=*H; zYi!SmUu#P@b6&4`w{b{(Px|~1tA~HfD+c)=zI#3dImdk0weJod)?GoLTwA@-x-HY| zR-Av#d^dgY@n%Cl{`Pa=<*x?4v3$Nd=`v3{D%V%Hyvz&6{naNg%S@hl{N@hL&#GsK zsezwWe{z}sg>*M!cQyFGA5S`>r`hEi)z^bvPop~j^6ZBphW?Og0?|P;Z z{4e#WJ$7fPYfiO)$mX{1te!mNL8tkr>cvBz66c<&-b0>Uc;?;vu+-w`E$*d1u)6Q4 z^$Wh8nLS~EJWxIAcuyscAdhQ2^Z)2N8@Q;d^p9VLm$`$0gMtjhfWz<-A{rthA}Sgg zA=+eAgji&zq|{Qe{aK=*a*K?LjC{zbrLrQTmWnn~DpIycsj#R>simSKq?XKW390_S z=iWOobLZ}SK5*{&KF@i7x#ygF?zy!4as66+2?DLOSzNI93BBl(IxGs$E0t^U6KH?c zBb5Jy{;|r`l?Ipg!pWLkj=p4#LBKM>)Q@=(qEL3Z!6iw|6Tqw9@)c%IY0FhJll8%! zt0wCgfR}*J5d`kStew)50~~^0 z>OXzmA~*@20j`cn&_5_;gy?zxvK1+NExkJdM%vYhxxKZi0>40`H)N-tKHopkqU04{35 zoqggMo(9kQ$yJ~8#c!2>(Y&wl5U!Pc+u_JJuKNj)4?-@Ly34}SHhS}Qz5ljcD2)GC zsu}Es^y2`F!G&@6i0o4I)e&p}AA>&}sN=^GYy%g^>B!T3lgCgTrg?b6UC%EA%4b;5 ztWUso;TgHCD|28O`^~+EZ3Q0(S4X4*yi+&BB_f=lI`DpQwSEhDqv)>R1wL$?QR(K< z00gz6Gq^2H{iGrSuLoBL;I~@VSMzA_YUn%X7+2PG@J8@++4nW{VUymrp%|=nuB$GG zxeL5ogExQ=f;&$-+3z;+@ws%Q36o7R)>Y2_O+s$f;6ZE9%)!-hO#rvYvVZZF1-LFu zaMfWyOTo)Dcnx?hcm#ADKi1z5UJvf?fH0YNfR`+C^`Fz!2VT8s2AzCXzaS|t)jd&` zbI=!oI~M@A&SY>gld_xj8!C&=o8i_eH$Yyf!P~&|Gx?b1}_C4KRLr`EQRnnMl}$OL7*PW?*|{& z;2q$D8oUp@AKX(Fp;7Q&4enKm%HFNvkp;XH+(YG2GI+a&ehzr62Hy(aq`@n|8^J5R zRRPpNP_N;j1-w>+cY#-H@B#2D4SpKDY?{mE&qd&eJ8a3cK#CUgXz(Hpo(^89!E?d$ zGtjHYEipE6;_}~conm{p9KLktn z&#;jGe0_2jvhSA}wC*K+wl}W3@rd>Bn2}|jkrc9h&IkK#hBQ0l>ny>K?rGJp_w3gB z(U~kfUM{%_Q#-$Gd!x%64yCl0A#V?t9qGFOt0NUl(0Wvv7{$A-u*A)y z@;0cCC&~WP+z^@B;8e@aYE-a^F>|=*Kw93nmv? z4ftTHA2M8^e;?3?&us%JO80Y{*7Sgvq$8uB6~p(wisUq0@sD>X~!G-q?9&Xm%*dRDR1NedcbQ{5lV*6 z5P0=^nrPRjEUwz%=d$@kioiz5!JQK#4cx(@FOA!m7Q>QpfxF{f;91~m#|^T+aA(JSdmjZif)CIwhcNh_e?T9z#JJH<0{a{?k}T}1NzvclFhDFgmWe+7dZ{?>_59p05920&9Cci5xJ~W=qFgg z9Y5A71~*L>glPg)K`&)j{ppUd2o<2DMt+6pQD7X)2`+hwI|_(9M~0B^m= zJx?-Of3IuUTw4mjs~(kWOGE`Mg^&5UJZIv7>%hgwIpA2c^$FLAu_t|yw?9cEuj?b` zRPT3>l;5Sa;Z6M7HIw=lKbJ=$EN_53;{|#N^3cQ=(bIxCew?90kjK%5 zZ|P@;PvSE1HP?E@$q%}WRc?DrALgBm%YJ&CwR3PesG+@8QaJ|glwG*2KH%rJ7oY*W z7F=C{+a!HD(uqwHRR`VUdK&UFaA$X%20uKYEz#i7;6>o-J}(`-5IoS45u8Z;P`golr7C;P`RKr@^~bj=5&~ zZDM`0p}$Eob-LbS*j*0fR&eJ)xyfw>H+53^A^nD=tV8aR?Sb45?(B{uI|QC}h$aqU z5m7ws?#@zx#DlBdC4-BHDf=+owL=~XzZ^e~XEEfRDtDZ|UEuA9Y2RV&{^;y-ZN8k2 zF36kS_7jZC?hnr{eN0mQQTL)t*o<*ExO2offK2fEqmeu#z_iOMD@Lmnx2j1<*5&kFyoe-#J z&t6xe6}UOTLMwQy22TcW(%?DZjT(F_IKIB@o<$W9)N1fL@M;a-0$!!TyTHpd_yBl` z!l!Nt+&`R#pvdGe&y+H^paxnf|6NRNM5_$-LxBBJibnEPNbp&deFTrg%I4F)BN!nx zCD0L=VP%W`ankejF9Da6(6=W0)6Niao^QfdkW_zRj!xcvzVoO)#z$D`FZ3x-0}e8% zT{R76^yp(eGgkZ4{4ep4G3RO|0+yW%4Cj*c@T>vEzQ$j8Q-0=fqDLR@*?x{c-8071 z#z=#gZ^AZYRHnc1o{rwX28+xE@98bxrt|!TEcpRo*`Ivp&};AMXX?hY>BxIL;K5k_ zJuG}>UEnWOI!A(}+thZ{gDw8@Lo-Fdd@K0)Hh-5L#>^|gt=rvs9e5Tv#$!`I&aM{l zTJTLC*vQkMkFgB^RPFS4>()<$mw{*N=#5)3nOytEWRCRACbGl0R$9`F3Qv z1{wcL(OWrE7!%-catAUT@^j^>#_|vKG2X3@`U|_r z|86{Vy5mEA_+n#|dqdv86I~a$^X-f?xC6ZPS$|r$9rbAxma!N7>5&HgyfjNOimKJU zXp_NBD$X&>0Uzt|7j`Ih_nwasHRBupLif}ojTrBe!~VkS6#lC|jI4cnqptG^CH3JU zdf`#j(ZA|rd=ubP#kDB(qqGMCoxO(+^&wBIduW91!#!mFSif+KIN+KVsWM&%#~OSq z`1lET{R(h9^qt2v7I;wyo;N_vA7fusk%oUgkaueEA@Ft$J_+6mZiU~DABPk4C)TI< zPxt}j0A+uIjEMWfUw(yP>=mr&v_PX51f>(>n+zud0IetK)F=8BUFs;sf6CkLM*S(w zQ;ea+op4fIg1fad@o4}l8Ksv#MfSD+Okc5SJx#Ov*?yYVz%*z4$KPd{go~l{dbCMB z?Pk5W06KtIzCFh*0km_qA$;#=SoILY$@eq;N}s$30tCIZh!agWe1@2bd#L#{RQ&3F zH1Qc+ckiS4z8d^}Sx6q?GhM81*TrVcIHwL)fb{cNPh~Q~g&N(}bW+9>ISJ~m8zB|vx&I*uPFp`a8c^-6%8J%evxcR>w^@P2^sjojNE zJ%RqTu{S_onM?RHa`)2!dTz6LzPU_^`6k>1ZwCX=iP44!Q1h?+TtC-)@Y?|4UvgeN{yE+W$Qq^tpQAGv9-#>~ ztAC)hFJKn^o65gH9-4ll<}dg$`f2)*&7#vZ0q!~cAC!pF|BIe^69GzJpD%j(w3H#% zXXwzspr3Uejr~SqxR6s$#GC*Qk8GFHq7DGHmb#+A;)te>?3P(r@rd zJup+)qx4O)ztP96D|=(6yo(+l@Q=$g{Z@=qz)^ftKjyjM;+r#FR&=<66@w=pnkh9< zYWza)<ZlUWc(TV=x(|1GwA57JNH>gQ6)x5$UGAE_Kn z*ZZTa*9JY5{SjtZYKDIiWc-dZ>@=CbLxv6iN;|&8eu=7ynZo59S==pjxzo1`zAH6U zq5e-Ok->G|89EL(o?~ZbN}YU!cE43|_CN>|r#tEKk}oj0|lz&^|Vs z{OJhuet#NKOyBRphy5vy&2fL)@jWuW)<{Qw#xvTM+tHmHjdV{1I*h^Zk%YKN8i9t- zV3bkVuH3NKji79WSfkSf9nnBkO7B3{$I|W*eM&?k2wRDrlWYW{(jqVkL`QwDZC1jngY&;;bV z+G{BPN7Tp6yHKjqb*!#YVRc|l*HH71s1~i)80op~`fwWi5uuFlq=_HVz4u>hRJ!*V ziu=$IOwz5XxEimcWAU&U*kBD=iw+FQvv}+>tDILwFN}H(@JW0W6JW zs0^+8^9?PqlvEgnf6LAL_%xW_29q@@Y>!kY(;E_YF` zRhi&f4;x+X5ZuBFz%w2;(#h|{(8>x}3Zdi&f#b)H>%j9gcni2)gLi>*U}}E`z!8`m zKMkJxn6c7r@zC!+w2|lBQxgqt0#9(n5++A99Xt_Suj0Ajao}^EIH$f?(VxY9HEl78 zvm$B~W^mGt#`S*icI;#O58B&cD}BZ0a4Y%#f_519BBlL;;%I-F@_)f*I-$)-2an+u zgw9_uw8&~Rx}~fKtuaHzIYvX^sckgDzSXyp`M+p4!fUkgzj#bzf6eH&u(zugMFSq} z6kE=T2Jk}g^HsbJyk3L%fcJuDsPu=x$7L>Mk|gE;CLyrW>T&(-3xXcNy`;lEjS1i- z8axxcNX5A%3&0CI(DoM_V#ta%Yp79tsF9}?hsQCG?1YB2QE?PPSX_E)E-0@(i1O=X z{uS+__6@X)UVR+x{FVFlcU&XM8D0nNykpe-D`)sII`XT2rFYYZM&T-XX0vz#?#c#S z-AR#s5Ox1^x?uvtl8mp7cu`7vXmgbHttVY$#o?TWe)}l-oI{xpj!okF?_qs#W_>wC@bYLbc=c74);?es$I7a`1ZyoKGw28A;w#NQhH{R7XfYw6ucF%?l*we-_XT-(C=Ad8nynW zH=0X+ca0J!p=&S7_jfw}8zo{N4*57wlo^4~G!PZa}Q;?5ql z5E_R_hamTEoEa$GO`H3~Ff#su#v~eD^*IkL^{5Gffi7>q^Bpc3JoPrp{zJdkyD%tF z2&U(4xQ8G71K}s$!F=UIR#DW|hd&fAF5J>&3lu!y%<*Hd3m(Re0$iQFrQllnHH!XB zhbJ((`1iB^Sq~i$u}%K0hmMPQV>zD89wI71e4xud7|wvqeW(QSl<$GVw(H|*w}+Ub z>s&y)Jw>yj2eQrufkG+$_O(8Iwj546j7bQL3j>8K<;JoY6C+(`5^dCp3%#w21BF}V zd((5^-u20W7|lsFRy<}1Azx21KqoFGvnN6{Ev0Nv#4u|qhluLBl$x2hFQemZhdIIa z`sEbw1v|`aFL9wy`|?2HKBbJG^b#@rSwTl2&~>k&308z@_7*qjigIa(HwUzt_Q70T zwmHzH9dL&AJciB#JdP76t%PiIY{8Yf{ZW>02^6ppf#>8a=J|#ySuRzGzu`VW9tLrC zcrq^I?s6~K9B`aF0hP+FxHLgUUB(rx0`A;I+4nj{U(H*b^$J1 zHMC2?n`G@8TsF!f?#E@lOgnH{EBn!h%e=eYtH3C@odRc|mUumZ5sQY31w4aRvq~~9 zQ#Dj_z!N1E@2$9ulRd1!rBy?_4%{Sr*n&%=hDsN>D60(MQqWL24L(j6`XZD4o<+x# z%|ROkMH&J3fEQ{6Fa(~b5x^ukPX9nDcn9t0a`*7VWdbf6>2ao+xU8ng09+Q}5(iQE z=aQ{4fcLC0o_K^9!4-si3{3XWdI2#u#u(9lrl1ar(e z{ACT3h95c5FjC-5adzZZT#71BxaX??Zv>x3n{iOah6csz36bN+x!wj|&uR_`lX;J# z?;JPwc1Y5v2|qESvgm&I)LEWJ`fJ^5NiujUxH|kC@I-KRE!hel2ksm`$EyO|D*Imv ztNdd@9Rwy>;J{KsTELAOybD|eR|h-*E@P9y{Don^IY(L4gF&9UJd)P#no;UEFruE8_Gv%uB<6o6~hp;GYiX??l;xd>_?7}E$~Klt#p11ZBrOdI}lLVr)cg1#6d~>7#bb05730ulO*_9pu7g0^Be+r zT(X=?8H+_PeFI40et4w3+$MUKJsmjpMjf_YwxB&e6DTifG{Dl?9OzimI5Arc_bhr& zR-dsI=}dSY3N4avSNhb!(*FWA2VrcM_aaRMVQeP8O!2{DN@Z)C`?z823+NL55hyhx zsc7(zOQ!<7^|e5^$8dGvP2lQDYKx*D;P6E8r%TZf6$I=TQGOi2fZ{+skU0(BjsU_P z$}m~q@9#(@xYdbsDMy2gZ&KPEjB@+mqVhSM;KS6+_UfZF!e-Xb6dwX}_-EP?A};i7 znhd0MN3e0WuNAEkz4OTsae-%($1DmnVWeF&o6<}e3| z+3cQA$Jy+kPrl(Whv!ooo8$9o2b*F7?PD_zkNd;L6z{5pSwfdQ1&oToRL{6z76wn! zW7(_NUNvoh5_a9#0y-2S;@R8TvjnqKhtBao{VIC4B=Vh$iVZVsO6<2z;Z$(AL^D>|41Lz8NQd%UMZhHxpvzdA$ z9bmJmlqT4W`wOMnU=Ej4xecBaRZ+7IeIM2eU}pOycVK9B7iC9*)jvl2qQq}2d!L-; z_FnC-*U_&%Kg+EjYyfZ7;BDaT;G9*CA6K6q@RB!X$?pU!0@fJ<7vG#EY{m@tk7zN} z9OpM%xYFSgCK`iac>{f1FeSxcEg?0`RnECq0J%MhZiqpyRwd0AwyWIlhrE9k9e{gX zRTg~(J@2XwvxTqe^;`8OS`aHPHe2np1)Y<-bX;$J6XU$AsXP`L*}a_(uvxT&CM5fH zbmS~#WN9aKZlK*~L6%p}Y=f@-7Ba_)E4{@#XJgDRJRaXVP(;4v)x9P>Hma38ax*~PlFeO+co$u z@GNkp&y-4rD^de^hRj{Z*liG`YIxKGo~Xfxz~jJuC9maw9Ka;FRf7k;jWGzGaJu-a6~Ev6X2*g0FC6iIg$KBQ0nvAhQI#4hcEWO)nZcF5w1J&+edp2~8Uw^K{#%}Kps@7YK}Sr_@9jcz5io6^ok&zaXv`D~B-h<39*>mzDD z8!LK)AJJE5i8}<}=S^BOK z0}g~)B>L<6gD8Iyy8YVVAjfvAgNx7%+GFVWB5^~62}d@rcIwu15b=bgNacbcA;e4G zl(aKRjPbE93KD`n=<;3^#LG$I0`D<^x8wqtu~=N8%S)#0#p1SD`_dp`3;QVLkLNNE z<@MdIKpj1pyQT&S|526!&%mK~YFd!6U5@uv$*^ZE4-&qmAHLUzP)D+8sT_yhDTY#a zI`AIaBDgm^b^N#jo(3;U4{~|@$_3~5J_-grg_Wg99!2lvtO6ww^f@&WvRBuHMim8p=&N)q{>)UY78gF7lK zOPB}sqNQu-CxDM>=x2ftYv>n%*ER(4b12s#btweZ5X8xGk^XbQHQU@j~K=En1+tmF*N!|SqG=VJ?iQQ`<(-MA-G{GL^%_-g6Dz9t9S)? ziH3e1c#%q$nrHZn^C=u+D$b=JdR&F@)Yr7Z-bG{2oL% zuN1MZ=o4hBXYiDC^9pgXw|!=?uw3pt4z576$p{R_fI`~rIAbNA3=9U6?<#SP&(=>d zf-+J0N_6<9FlU`epVN@Fhq2yT&%xwinxAHnAC*`1qpGC@)6V~j^YksSB&G(_!8B|> zO{~X*{z(w)G6#tiy$m^@;a{Ix!Bcw%!&U=W zHv|iVj^YCFY`q{@-qeJhn%H%AF&$rx&OGi?nplngw{Ul`@TJ^Y8$J+cQsEj=3^Uym zECe`;3no{>;uFZtnqUeGH{gy3EuHuPHLv0O!b5aqjhNz7yEj>Wb+RwbZc`44^Rohn(9~1>{0^uuBJP0jdLU!aGUlAmG#|>Bu>#Xx&XT!DiFD z6rTw`{w`&+nc7M_GMTs1zD#jLc-Bk7E>B&#l8kwA4E>nA%POwKS1cp~%{dEzxu(nr&#EL2kKhrzV&6a74&1{Qxv6Ip0w zL%1H6uGe}ueiV#TE2NgV^L!pI_tEb2F)SB9rsHh3e@yY&;s$fxr@=1k6dZiT*XZs( zr9Iggywrb6N3u~jV2)%XulqkG^E%jv`zdW5M)38YA&JT>wNI`?7m#;6SU4;P{4?yj z{u5-*L9bQ)Ipwq2{T1!YK?L%?r4hF0{Y3HW(Fc$D&T%O#&imYNksx2%u^vko_5QAM zZeul&*ZR-ly=@Q*n-*@G5t7tNG- zfoRnk-=vKfAhSB(q}wk*CN{lA2iTr>h(<0z=CvOpU%R+4BJc1V`7{mo4L|lU{d=Sd zJk(S6u*41zOWvkEcAj(`rvq>po{F=p&-IYpNdLIhM&Z!--5gbtiGl z0-rw}tTc3K0dECY-?h8IyEXU#_@IVAr@_a;Q6@X4g5Z|nH;RP)Bne!2GgN?D(| z2)Wej8-f!WF-?|EXpHe0oDm{C>?PkM@68n#>k^H0C>O?%!d!!&@=nQ=H>AWfgp9GYvZ^mV!)u(q`h#-2>V--lootL4WW#Ov=mvN7MeTb0g z$$rJqjC^FZ_4W|Q28K=f+-==X<@sW)cj8||gn!7r%2DP`f2EOpRO}*rs$mm%XLVG* zNleM_tqT!0D3QKOnXs^xJA#hW`1eqV=8;5P&jui`f?SVl$B$d&Y4Ea#$hQFD#qFi+ z0&#<9+%qB5XYcEK{)2%B$jN)KliTtOs^3en@KFqzuvE8&(582B`U0*+jQKVrzV!!b zVl({1F=T0%a|6Zd^yS<`yiLuQi?O!Bw?l+3js!Aa_lA@Z92_T)EC&9I2GmEVpr*1GhPpVX}S$c!>sY1Fr^OtJ3cQ@09sDQzG_g2!e44?sV#3nNM;6 zVJ4wzN?Y!*gMLS`S}6W%B&gm(JJ=kzP&1p|;WTnJI{df@^4$izh@&&N!JajjcEI#0 zn`^?^Pg6a~Od7W0y&>yG1~2N}CW=0y%_MA8j7Y%RWT+ygFz+LUXO=L2_7C;i8s;wxnhj;w4eZ>FxDizraUdEDZ<@i zIF_1=P&x5kfr%n9!rVR23r7BNOH9IMxgQN%hEcJ72S&xIDU`nhS(2Jc#@C9}gj8C9S!Z>;6i7 z4F+b$D%!&)FQ#70O*Vr@VE43UVX3ALL)gUYkgU8cO1n;st!&IP3DpC%1 zm%5H75E)&`IiVpZX0Pgn@t<38T{O_jV7Ux6U&)u*NY6y*YGm zi9W=TWAqTFt@>iwN;lsxh8k*MF>W(qv&=1v4N=s%9WSJGNQ@@_PmG|k|KoAM#n$iK{q>rSc&a#$JuKk8-UZ5uwBi+;2?3 zVOpx3p=8RKVWOKWu=d>j2kov9W5cYNDQ-uk96yd=Td)V7l84gK3f%n1aWUf-3MGizWDnyg5tZV?xzv_enn$CSXh(4s?d zZvj6`VQg?5(!s}OgbH=a-2cW~#c;FTKU97&tthi%9TbcFsrgoMWo3PUt4AEbDCDi+ z;ffnJn0uK#gm!Sdid(?PGG+6<*v@aP~j{3ZM8U`GO9$;TsA9I z{MIEV(%16Mb?bZ|Sk^MIWL$OUf?3w0U0aE=y(w}MOc z2N{wbP>C+km@nljE7U-t(@Eh&m!j_+Fb6gO&PA|-Lq%=Esn_@~4MvO>-ncRe z1+D|q1Z7G=R^tFI;i&g>-BX$j-mc>5(9Z!cNeZQtIpQ*X4J_8hq4dbG80pgnOW9&N zvP+Cz+`BkbP*0&wLq4qH++p}dAO^|klY|@Wbl4;C$lVUwLGg zO#9e0EukZ97U94>Hrtm_{GH;$jrB`iTLtG>!CcfS@GM;ONCm4mj)96)^c9fXm$|x2 zhH4#n+)8S`69cl6m7#d2PI@=k<1UQcI$?K=F4o0L>Zy8)|5rKI4;3d)Z?JPn6UDi4|aMWPXa ztM#M7>oxS#!D}^mE_k)XGabRoDJh1aN+W<>;AP+sPOD3|kOpw!9D1o5OQS}6sBn$4 zhhxUw7=a{i3>Ds0o@;Dk(3%@6lqw^+=NJrLIt|V+Fm4JJLZub87+SYmj9EN*d8pe8 zd1(}4Ul=MRIYmZV1qN>|45f7+Ve-|v8)HuKN;4g!m2;ta zMZ@=N$b1jx7jf578cff)n?mK?Ms*Ojms9gS7{i+?Y2+SW!nuvoYB29>ye(ATA6goN z(z}gz1A5!P4#goEkN$!C@L&yA!0g|I3J+k_jbF%*yjMJ1H}(K+yjNUl?%eBItQ?iP zScJBhn(xI5!7$`^D|y!tfZYHy?i2mZar<0rDQAP_EVTRQDd|2;n5v(r{QEGFuYW#N z_^15-&-@fD3Lm)-@BfUyO2;A8_4kqQ{dnHk*zcOB9EHp{4v4$u)cac=wsoAo0UU&|RWg3%v;jiPuS3IrDZG=-r7md=q-;bD2l!$-APy|dy> ziCXNnw4X#bg=I3Ik z$)cQ4S_5MJHI$ay(C_uYBAf~3WvqD-ld#zFg+Ay0E*XgoO29y5lHwo4jLiBQZF!J$ z?l;;EyQf_+%d`2x2Sw4d8n%-UVjpOnhnd3aaM6tm%=Tj{1)bStK+1KjbOA>5;3c?r z{Fv8(mw?Ml0J4Pne(-7ye>%V$!4Ek+fyw%P;CY^A!QVr*(#r!~maS@Dc;XH(=J+ z_z=%&4b=P)R&fT6=mb4z<%O91{Pd7G*SjRxj8`YF-3xo-UMLm?Q`%lsqM|vpV=v|h zC3Bp8pYHjS5n#jFs8@4n1o||{j>jcSia8_H?9!QYRHGA7gK?}Z@iH6ayLi@vQ2#>W z-0*I*s{_e*IOqib8@>KC)|Pq*^ZPgpK3~FZK7!)w5zDLy%CAQ)u}5%hk=A-q3?H9s zb{W~FBlMOGcA%ST>(S&yXKtyA{MhsC+(L7QtN_}-bBgps0+@*fr#E-%8HtOhX0 zk5g3xc_H|@45eF(ZnZQ#g_S#j7RU$V%yjd&m=O#0Kw9OhgFu8pnXt}yRGh=_m+EP3 z9~WmDP3#j_Mr6J3o}uZqYq+8u0w3K7;FOtaopQS@@J*pTOGSO$}JLDO!WCtKfl+{amxKTDgTGk})y%^R#m( z2O*@V;BE`~zvU&*o1yQMc)nR!tK86zN?<*rrab8gdkh+57npftmh>IyodCMdi)hbd zs9WO~(SgU%-KOT!akkgylJ0M~&n8}M=8apou0$d({2RtJ#!Jk?dCE?%2mgkhT*gby z!n5+Gr7xjisJaZVLL-6#ZO$@;&gLtWCH^eS&{gJ}vFl9Q7_q65gD;@l8&SovLi-Y% z8Jp=VHmf$%tjA$?Zl*PC3YXIjFnuyEHw&Wl7$}C0J}$=CgsoJj{tFRBAN(hScZ2^ENq77>&vL-4 z?xrpKk=c#A&4NvNF8$(u)cn>OGj>dTz7`K2e%ddd?NhZEeG8U9iZQ-e{gimNr}1es z&7Z`vH;qq;qIdl>=!Q|)P=EI+aqjxOXWesdbS3T`8r*9Ymc&$?8ZXpG9>Z$ESv#MJqG@gH4-H=^9KT@U0t&8vxANnF{nnyIX*h@m zuh!t{;8hwt7rab^7lW68PiIK3(!?Ps(s0lKUI^~vh$T#pXd8GQxbqC38)^@@{V;v? zJl50LowJHMrw6FgY7Z^zP6kInZu&Xk zTH$O3M>yp#i3`_hh12ps!s$}NQOA2g4oA*yzZ^OD)RB({=fKpFPY37RQJrooe)fuu=UBA5!|OiJ`*pgU0D9zQF?fCB+wR5G28Z<;ya(L=4(535q4LXt zIRxGW{;oW&k7~mlG_Kn{0Xge&-vC!HoNfhYeRVaeQ1sQj4&0>D=XkV$XS{0`dN8o4 zJcNCTClM2mTDt8YI7A_619J6|Ey%Pb9*QSc0Kbq0G~fJw~}GXDb`Q}TM;t8X#nc5vq!AoVKXS>SHH3V4Qw zej9kIhJFutqO9+Fqa1=DPQ$?@xK$&7AUjGami7>AM|-cFpl?hU&Wo3Q?6d@w_GSkOwE(Q zIpyji$^q9(`Bre(l*8~KdtV-K@lw*@gM*q=U8(~>jJO-#Egyg(m_6+2gI1r zxKA`JTEUy9_|psmo&nz?l6a-*97idEbM*~ob{iR-7kI}8_tcNxwrq^OHjGM zo!xUe6oU&Y&b59Q_;^3O|#$t0TdIZ3T}zPUUYRQF(Bu?z&na zw`=e&@GNk3OBn#?c&UdKr@=X1YXAK%lj8;b>21rLkZ1_Bawi?!Dn&ScLou#7a_Yc# zfpg^4fi-}uGmSH$4LtQYzK44%|f79}?G94&gHO3$xn;)k*LSaCLnN+Jt8U;OZzOfDeMtf%lFd z=U}Fy@7!r|6bir-2hFtnuy}rD3oQ08-6PQjo(Hau!~nSPm3t&kgO5XB9SOezSzjHA zXz;ABrAVy5x@gEf0yR)50ar(0Ke*`|_Xu==8^N6;z^Uy6FZ$Lj+#xSUmc4@gr1QH( z|H`KC+yhPDj0qCBI?!D3ykYl1i^1*S&Vh2)?^5*D{xm51$P?G0OdAAQ8UgfxXMn3c z8UjxRcfQ|pz>`VxMbDm6BjqmRubsoX7650C~&w`lGzv^h&sgJYSLP?9&Ps_8;;=$agyA()JfC+oYRN z3*?F0!i4V_$lFUZ12XRLyicclk7qlW^U%M##X#NIHaf+TYTZt@cd>d|RTL&t=!wU%b}@JpSw zVVHEtZ%g%H9kczBFd8UWcRpJV8D|m{!Db+!c1%Y}2y9L}1&L!*kall>R zdEj#$5GL~h@IvtGoH*CI)8OskSMs1vF624yV}*6RmD1iv8PvDa4mO8z@cH|An%wzX zn9CH1hf00h;m2z<@;)A=6&;}X4`AXAh#enbUuf^aFyT40BKF(!Sr5mELA5aoZpNw8kynK-NogX4sn{Y%e1m^J%!-T(b43!^yJg^gq`-o0` zD8?oY_l3FiRa}CWVr1hdVJ-tQc9#qu_X%Zxga=+#kRO$&9(zARc;csY;3F}@yMHJQ z`v#?th5Y&vo=sMN-!bNAVv+UhPTwFuhG)7Cds20@y_Gb;K|cq#%uJ?~QXdV&vv zm&*?mZu~?HzshcKcV7p+>KPW{IVA(x;7n=(xB6M!ws>}d$AJes=_liQ06fvpLT4KE zi+qAg&^Z0^9Skl~f6D$88~h86u8ug6Qs@ICbFl!T2r* zKQ@^|M?OP~$6G(X$I(M%gjif&Y2Z4Vc_VJ{cnR(}!n2y`c9@lUb1j02dj{pl;k7`o z&}tE0Q1LGC@komht#fEAy&AYN+9G(X^iPAA#ez?(OY!zAMG1i?V^!;KUy8vS5&&ue z)C2!a@M`cVCl5G+1>lVu9+!gGseybIiHl|3Suhxet{RCik4aMTCOy_82=2PG~i>2d@KGBA*ES_<;uwDjuT}%GOn` zS;s;5K~cSSK{Dc6X2q2le36 z&Kg-?a!?FD2<}{F9I;*C{i|u;mtsWrxQ2fnkdJ|@w=wjAo7TAdHwupR6ZmId?{_n9 zWzca;6nLBlPY1VxFH+*ohEz|$v*_4YVwiU+E}Q75uf*9)YjD|kjz#$1Nt?4~KX_TD z#btcTzI1?BWm@RDkM*G&24FF+b&uLw5+ssZql`z_J|CkDStbbxy;d}0#ui{{^oF-e2<7PrNoQt0)AJJ+0KB)tZ_x1OH( z7Oz$JKa4w}l0?t%FaeEgu*fH;lzfNdO4=W@2v#_8{J1zOs<1odF$B zrr}R9c!})K^b>C$M(l#1=t+Dy2*ZeyLv)DEdK|g{)3Y%(T>cPL#`h@TqLq~WJT(@krNfto+mRQaSTG=#4(a;nd(;}Z7G`_PA2IYB!D&|2>%-+2HA{xN>T@8kwTHVcfo%n^2X`KPa{4R48^NWy%7y^r6}Y7{ue-xzgU}Aa^yp8y zdvOH7)sw+4@YKt~UGA3LUIth{KU_FPzs(buQ{qX{Xs+EH?(!A}=Sb!*MDXvFf08F| z|D=6vRu9tglV~EQuPA;LCxK-B5H9?noHX{}D9$~KGe*cUhX?%Q0_ylHO4?2nqnJaC zjiMa-^Vt$>6E;Om?H;>B$FCg8Kc0al+==48g4X?n29a zCW3CR#@^-{SV~}#Had5}QsuCW!cwbPd@R+t$2L*YzcI-hYl;wlRZbhb=ig|JjW0yd z{9^qQ|4jHk0L_w@A{>Xhg^l6$x#5>0P@C_&+7!pMS!WsQ%7raLy?_IPSl1uG`yF#rL4` zgR9><-UU9q$6dbxd=Ol%-v(Y(@2=kiUI-5T>Bh^IYzP9eohD8p31#h+_A^YZDwMN{ z(*h5$+5H+#u$g**(oVx{IzZ)Ynhw$dHmh;2!fBMJsf*(O1ABcJ?O@aNPils_zW-hK zh>qTe1Z!}w`!SSMagL`2yzuB;l-Oo`XOk}aMGU_>@x8fjOE#tK{(blGYQQ@+_}2vBzD|OUvWA5JKpNBPNE$Q z$58wv_7Wz>Mhf@JhuGXRiCSGUFH%^k-0e;PcqcB56kd?~?x^3;cNZ>-6wY>hF6}o2 zmz6}jf8%)J!zI7re%ZMqQrN5Ud*=Z4A_P_ zM)^9!HqXvek@7bwCm+EL`4>3>`t%0)J09tDJR3mCM5KID$l!ID(X@aJ8g0Vc-g3=4 z>1l}Z9t^Qf)d?>{h_`66;S(X!a11*}LTI;_A;6~^Fhp6HJ?v$ONy-bexphpVk79TQ z9_Og_Fu6bXdJHKE!zX79sG5+!tJH;^-UxooViVq%SN#sc?o$$B6XHGSjdE<1_3$yw z)fLVqn~wq8t8ounrM&ulvyb6opRqWbaIpe#HtogUz4L9ti2P33^?JixoWN|umwlgK zfK9b8!mhI}pbz!%$-clQJfJj>`69k?)oC!qNgsbJejKCsMK->Z!~}3LHvm|ZY=Tue z4egt=eT@`ate;^RfJ9hq6K<9R^v?60Nmhfw=$!$0o6_?b4B_6jupgD5+O1kUBb59+ zMN!}K1ZqsOjSoznXBdDbG1-RCi%CmwVZO+g#w9ik+#kjFgJ~!1KEhI)uu>_2g8-gm z%WQP?2Qhr_4AhMF4Dy{}*x-|Oo=w>9DL0EdW*AoZ*t2ayv~m^@&L>&ylW4aICgr%H z1%3d+#WvwR4PX0EJs@0u~viQw#46K&XvZ+k^(?gr?6Kj9p_B8kODl4Y{I; zj`oQLLrxR!?AO_Zi{za7R~hoJ=VMVcG(gaJy$$bzNM|~HGSgs7%6c5-gfesdcpx?j zJv+Gbe31L%pl5NfyoutChJ~R`PuQHE^~xLY3m`9{z(B)!WW5w87q-A&c(YCTO)ip? zMr4EW7MrkGwl5Df#DojC+FS<6+=#a}V|566%VfPLp{EAik>3h*@l%#S|evKYuZh|!K`|QAVpCK&t<=saUtk`rv+Lf$$;~aQ6UTYJQ#D=K+`RBzVS)Xvp|dGWB|j zUS}n|h??-CO+K?g8jRxjDJADP%pAxIU$XJI4{zndVr-Kw-aW8%Qe>!Mx!&(3REt*? zr5sqSuQ^=6(tAL$^uUtQVUuqxelNqXH*M}W7JDeZ$(sXdBGDGJ0o&Ezq&;Q>PF*=n z2iO$ep|9BNKT5t~Fvs4bBsTG|BA?CL59oHu{s}dQ86qOOKXK2>o;E}t{3qoQ0#Az} zTvyePBkB#YBz*!o{T0M-*e2|eOX_9|I+wz-C|dW2egzF$(7Twvrx6R{mpVdbI5QWH zxQ4@heC9t;4@M{-a_=h0uaob+Plp?9y1Y{y9JcZ=pb5xz)`et?Ff5EMTo@&ca1ltw zp&NFT2Up^PS8>B#6eSEPFZnzYfo`NTB}zE0fRg~;h3Qek5qYGse6Atp;=xr>!Z7>D z=goY6W;>*zYIh_J9ZN_bTs`J5d*BRGH+TcFsvJ&NyTQV03D)v!3G z>gFf`!)+-gp10wto01fskys8OZ*GVZev$j&O_3;49Iam-X~0`#6;W>IJhVZ-2;5QK z;e|B+>H#m*;6vbf8hjGmuEB#2V(2OJ>1`*RH3<-8(DgRM>}{F2OofhfF0o1hc;T&4 zf)__h`7tjA&(q*F;C66lf4KSX2hX~d4%iGB8&}Z;oAp(c7G;Q7-d_{t(lJ}0U(kUY z$o*0BJ{hV0xgJnn0eMwz6wR;3M>iT2i!`U~fu$A_$uh~_I4lXTqjz{9O8y3J0W4Jy z!h=%%k{R4W8UP9(ilUPbh>?aaSc)Esa(owN`qQ?4Z=fI9D?6jYGy}dT12VQRN*?hw zz+!K7@^t{9@Tn;2gv|)AH<1a?yB4%m6~U{XrKDJNzMainNqg8Swe!qpp$T#1*`SX3`UdF{|`8cVnEv>Qe=KjX`Nn zacEARA4kdi?WCff`UZ)>RmXA&sqT*wf++k7e8gkkPK@pfz^dTpY6?#kqvY*~K!dJo zK0T5eeKilg+t|l6D;{w!`h?Qr4S2ceGir`EETqPGbfMh?Y)SDc{5nc_S=oC!V?MgH z+A-8+1#AK^*nf@^9zd)FdN0g3j1ugkxU8WIm0}`Fh+(e$xRJDh4}<^10bz2M^nll% ziNZ11(lCBTf+40dV=~HRv4`C!{}YW2{0b-c%yYmS!PltxR`7oCEETT+H~!|{i0i;b znP*Np;Q(475Fl7EMdgat1#SX&UeQi~&H#9?XEdGpLLVb7%J{vF5WS)ui!$pLpbM<_ zq8$q`3^D1Wg`IMzy^cqcXBJ?*V)7&3g@zRKm|wI@HYCIM%y$q?f69m4yCfhQjdH<* znE13TG~fl}nREoaax5!aXyMqR0_pY#i01|vSM&XfQ{&f-c5jRp7O9?XMuXSSiWY3_ zPWiEZI(X-zXqP^Tc`kT=dbCU5#?7X<+rv|^uc9Mo8}LT+*{Du=tMKIlw3i|YVkvbM zojMzJuX+`k6Acj?t5-$K=Nc=aa*vn(E~+%RG!&MafwX-{Iz5L&FMzxja_2_N?n=So z?{4^O9?yuD_m;sue<_H|rUi0LwGSm47JAm^;P_+56xnhF4d#Mqc|=tJOGd6@X@I5V zQrY4=0E>N7w6FjNlJddOvy(7s%D6llI}xNC@1`USNLsI!w3kp~DF#g~N73nRqeDq3 z(E4rBE)Q=wN|TTeZlhU?4GX;oAz#OH`Y+0>a8>Y8V6fM-rYXy7LF!vivM!6If(L^$j#2{pcj$aNg zEbpTq2jA})4=mvU%yrSimGS|14NFkn>aU{%OAJ_m0sp7KFCXJ5$rPS9|0!Bnr3`&; zPGOhVN8{78*KS8e?MQ*krt9%h1H;;w#v7yMenKkZ=`k)hz=U2rmV^8udDgUTDF$a^ zDeYd0L0d*?G!A5uCda4F@da;E*6cC#HEN^89f z{~Rq$9~>ETRmn}!F2_7`{mT3hZM!VmZJTldcm}w%Jc&r-U_Gf-m4c_LIM>G-@Ty(W zbYis_>hu3}eGgcbMf&yx=fHX2bI$vogA@oTsGx|bsF)l$PY5B&8&^q@*Mz zrKBXWq|}C#l9G~?R!Uk)DJj{NRZ2E3Nh~R8WtD!iNvo@t-~G%CN8P-{GYcHKX69ui`!5$?RYi)Hd1aoj~b1MZ1awA98Zwnj95P!^N-vrzGpN|sy^g; zyw<;0_8SrGei~z`e^g7cM{yErQv}oGE>G6enD7+EYffu!X+*cTX=(KBsWn2d^BQJP zfCtKYlSd_>I9lKI$ZjS){Vl#HK^wBN`K^fmdC8&U8}vR~BG^OSTHr4gm*ra&*E{1bD~3leEt~C9n=8w`b*OkC=Y?M zcktK7XgImFBjSb+IFmB9;9EbuQArAS6nNZ6{0zeRWK>7c>i1ivSTnqJEG#ScV?JZ7 z*4tY0aRgR)L{GGJtk%n?Zg&K;s?~wBV^J^ppK!l%SeHrsG=kw6qKM&-O_sDM0q$BUp9!Izu9Q)7B#qEJp#G32=QI!HT=n0$|Pm zK7y^5&34#$Ex@b!dp>zQEIIiUUoc+7X`xg9TSXg=!zO?`kmK%uR27xL>&`~7Wdw@m zM*AYNXP{DR1mAi-g1th#`bRd_20XnB=}>=xaMynWWzKed17&fS-jgRx(D3B-MLv0g z)_Zu##R#^JqJX&9%Z81jU(^Ci(EH2n72@!Z)G7deQRkZw&I^C{OhDzNIr=lZdIf$? zxqdSbn}}vzV)Ceo+8y3$uKx0Kifd26vEqmLoMJV8WV!G~0(2)H$|iZ_ zc2s@)D1Pa7bX_9bQ>+e8C-BpU~fI16Xjd!`D`f_Bjp7khQU8UbsV#rZEYh z70~Xsr!V(nN%T8(EKm7O8_Z)SX*QpRXT4Z2tRx-Odh+R$@T_9-b6(=Xa!UX{5}*xn zHsJRy6zsy7%UAjMm(l0^I!Wv8EPLKdyxDF!O!z&o;-gz5leJ(ytiX%?fYdGf_>5$2 zh`r(kmF%`LyyzP(0zEvu8|t#|MK7#_K@bZ&$y)Ehac_Bv%CYQ3gu*^#j~fg5wUAE- zzlS2;MhSkN0ELI#srfluf!|^QzFy!feEagncWQl{`LB4f7KD@dJ==lr1FmPk>V+jd z;0yVgJE36KdM`8!{GJ2_d+9-Z%w#Rt-u|{1j?4lL9>aJ1q75|tk%a4Y74&KX-#l3x z?5yBkY$=6pNuWZYG!~sgNth{`W{=yXq_-yUvv+C(-A55c)mBwJD=Eb1%OL#A&w7CF zk11MOxfk2V_>g;$wVf&2FlQYA8!6F)grEBY(VMB1wRgSPZ&VZ~Gzns@cVoG_R6Z{%kI){`Ed&WaBe&OP{>!1eY|yx1wq?`r@dZfjX1Vc(D~^5(`Bk zQ$*sq>A*BCQqTTBFZO?=3tq=fgIg@@^kSgp#(bf)%XAf_T+E&?K(6Hyeds*|I)??|2HD*zQGQVUgY} ziZnUKN8gJj=k&qe>_NPIK~+5EvgYDLKZ5gWx)*hkHN=}8p)y(SQCj3a`VWlC@rJg` z*%{-_l1X9?NxWT(ounC4(G)KZ_h!>6k@=pGvrqY&ykaVq&?s-_#$jj6bXehRE#mcQ zD4_HS-t+|yW|`;-A<{}Gvg~$mhA9!V1b9e%PS503Ank#ZyxC?VFU0dx)6fL+lfBtI zib~j`s5Bv+cps!oQoO}OAXGh~o?p2S^;~zCHybAk@Wy&>r69Jc-fR#huqvLnG@=|6 z*J&1`-h{bN^Jed(SFz0DlkeB=cIIYyvjQsd{WnI_a6byZX#u`pOXL8m#Qs>9h7AQi z<;_0DVtpE_`qAlB)fL`sEhV;?Z=bG>)f?VdzbDe~(FVRE%UnAY7QjcRYh&%{mFo9d zk*C{?BrM~UeW1X7{2&Rn|H&IqdLZKU@qF{w+CZZoLSa=(XepokfHu}y@(gq&p%j&Y zz8vp?+`_+nK(p)Z%e?Ve7Dzk)=>ctsp7yLaUJJr+Zyq!QO{igoH=9kBetI+1fxo=1p(*8u;&c|Cg@U;dyr*xp|4 z%~Hs99=?sIJg4{KO%I~&HGJ&Nd`N8fZP4zC95~uRd+^Pu-g7kFUifDfWU~sAHb=AB z8}@k1?sOHmmBX4d7jM-mHki z?&CojXw}J|d&~ZAmq&hf27Gh-es8>U54o)#{7u4h;j?a{Jgg^Nb_yBjEHVzNcvgGl zzYl~?^+AZ_OK;XnaV_@)f=BH!SCg9eBp99`r=G@mO|K@L7^t`GnrbDk%^nB z+5cA92*P^nSr^prP$^RlnY4=vv-8mpYrXC1|53j$jN)fAwVtL0cUTfHDe%-NUi7fm z%N}=G0f(iOF%42-R}{FHA4gP9+wb1E2t*kfg+h6Cy{!iid_)TzoZrVs&W?5i$B=3= zEsW!AFb%1WA|8ZbJt!+XDBQpP>Dz;6Q@G^ra9jR2Tyz);6yXYlsd>_Cpm474a7F(c zt^nbfmxcADa4S9Oh0WIj2Q`N&J(t`VE(t+SAY6^N1$WR9ZvH6QjjWij1@Yp$HH#VE z2QA0f!e)>snhyF=Ey&wD*PHLV30DQvzSb@7MG$FsTNpN`m?fT4c8^2Xsb^_H?rLxu zJuK|+#PuLf4C1C|X}t_fUqpSgg*`?laEd>lg$^MVSXQVHn@93{`N1qL$|wL|Sj>EDSanW$8FArFt^%`0at_o?x z)q}gSM5*T6z?Y4*FdONya}>XPOdn{3gyX9)qbzI{f$RCE1;}hBu+G~o`0g>V`TVB^ z$ZRRFns^I)h%kKrV4)V}J_@X9tcAhBG0O-lL}7wi3pM{CjtG3Oq}wb~{#Ti3@Np9? z4D%v55WXGpnVG<1k}NErbm=#W`kYYiwMgsh#-y2L++kr2l#-oNx;9EoU!;W_n7FYD z)WtH2?j*j9f#{NebwY(l3EO`wKih!(<^jyQ)57j0a2vk_L9LnuQE-|3(`Qg=VVf~N z%lMCGbyB30Axru!#Ah>5HnCV3tV^}9ITRjG$3BK~SOl#7E(?pc0vn(zrF#tfIJB#W zKw3W^Y%fBf2cPgbw7UWk=JWR^o9 zJKTqTKrx*g$@?wF6y*fK_6Jm+j*R4&7ty>0OCMDcKI}1)+%=M)eHx>YRDfACEo?S{ zoF80FLjz#Nvn(u^u;ogy7GUm!7C9A~!$)UBunSn(91H7D8c!U_TXHbBiH?HCbCs=( zAdQ6$)Mab_!!p4&K?Pxu#Qm2mDgd9DslpDpKCJ6zGT2)1wnr@NJZW}~PkTc1AJ_#h zqdRWm{wr?(LEy7sG5oGP)M@e4n!lL}?Bb)qD88$){LmBHK&=2^@j?r>Vn5B(2Jy%z zQC}y3m7tUtk>CzK<4NS+KN=?V1)@xWP zxa4jv_uZ&v0_BkSjj(tFVRump+_MCu{`;0_0q!f{3b(=y5jT~rN^l#AOTd;ugb$*gPFf1vXnIQXcPD_e)hmwQz?nJV!VX#FOy$_EeDAYRDXc@YY9J!N zvWQpo9!0IbxyRSwQ=W#;z5*uwuu_Rjm1420-PxqDv26_~#ZZqkjMKlWc*zqPQ3DO`$&t3Ws-6R4b)WU&A5Qja|bfCF6T(HPF<5f6AI4d&=V8(wGcuMAzzWQ|WlFIu5DQHv!Y(ktb zQ=B{a@a3?_4q!FETi7q8$U44Yxi;CIG!hCkEBlJDnN$!$IWZq;Uk>kD3V~cSS7Gd- z(!&`?0ao?*VW%l}Z+>qcVt3pMeZ8%67Izw-6+zaMfW=s?a;AQW{J?dw=fSI#LZEqo z55Dh#h}QFinj04vt5tS@yzgJR`MMBoaf+6X4gw6dG1eaG|3E1<40|C?=bj@Y~Q? z_OY^Fq}9q;>027W7Z}VCQ0a{JoI2JqPJpk{)AaqbSvQKKePW&rQSmtmm{a!+{G& z=@YE%4q*X&&2!pla~iO+BrBUieQpZ+zpZ+h^_`oHnDM-`N((W|!B-_)+3mzn0Z$GR zAK?w;bvc^DeFbzys+D29jui?|>neU8gP>UW_||UszZBemwXSKzr&$@6kZFMN_4BBk zwZKa5wX*&c-xRK|(k2)ufaTtYV=;t{;4=t|9)s>7-O5%_R_uKHDr6-GSRF>h0y~YG zSf!2RO@GxbW-XYDv#fI5upedXqYpH@0A@dEWuH;bcEs{Q+mW-90#sZo?(;X#wXzS1 z*$Z)+=XZi}mxD>1Z)N95<$X6=dGZTdxPFC#W?5O8!T)#}Q_6KOXd}&O&CR+0D$6ya?+TJbg7X=ok;1ecj3yQgmEZ zY84oFCYZE0tn3{s*CJ0s@L(>k6>9z5wGgP-Y-JZofGYL6cAilPP5dVyhPSNvo-73B z@z)BqzGf0(TVUIy9gGa?hvEEmq4t7#1&r-ItMsDBV)^Dx&@np=Q{vc(sGeeXF24rtpMOA!x%}-eo^~32 zGVtU*RvakfudKm%{iz}?zzDe=<^~YUY~+166=@UnMZnTOv$9)pm1C_I!YAiz26v$x z-1T4*zp%2OsYDmvXj54bFhcHtP1R#F8QXWX!nGFdKL=Q6qm@k|ud@*2u?;Y(lrvb# zj(J&g7>%H9N30A72Wdhu`DK`c|0ERXH&)r1?m|(Y(4w5cYQD9yCrJ(?;+Nr+3xKg^ zEAykMmwWUPwifvc^f>{6hVQK`hdj&{e4{{{phYLc>ja~x<}W{q@+r%O&&&i?7UIKj zX&AN?%Tr2Fx30hGRwszUpR8;=5sP`yI=H{1!1CLy40#f6R5-NUbx1DyPLy0P)kd&F zNz$3XGS0xDsDuZ={Z-QXT(Q>2s0Ne$e^!=FaR>9^#gOg*R&mbCno0WV2vgI%15q7jq-54?gCd2t~FYP8{pwYI7Jz z1(-?T!iM|EB{W|Y2`!=J0gS^TYoWxc5#2T^BC7>g18xr~c*MhDyCTpRz z0$r&H1xke4<)MV?dEnwkDsJoboCwxDO2xR|L(P6w#+W-=QL8+ZNbD|jn`3;$0VB&2 z4>fxOdh*Ud4Di6$jPqfwl!bZ3i&Z+Y;+CCC?G*yq6I28#*GCZGw%m=joZ`d2q`>il zJMKGxSH7y*+)3aPAM#usch$bH*~ZKEbL zlOHTWpIZv7x!i|cqRfQypf|7#SP!h~T_1+sBuQy0JDAPBNuos4CBi;W4$2uJ|z5} z4?9emYvCVl)`q)tfU)B~tc(ib@UU)cHcQdD)PgIi@L@H?alz4WHmy|icXd%*@B6SH ziQ7NyGQaXL?kT)n3a1czKlDM`Vx?xwFga!Ys#NRk&I41k-G^Nv?Uzu559Ptd-~1+A zP%XHMN+?GWE+lRkt$?Pzi8)Ufxah@Orf>rX!HRf@A8-~J}dG!t0WP9MBZ z56mQaF`;gmqWk-2i_?OYkZ6XEV$^+#N4*7mxI!^i`LH;$k-dD`TUen>N=IIH`QR=L zu+1^uF)e@A-W}6gNZ49bOp8TK?i0Y$|LlW3LWG*6LWS^WwrIgd_yed_%%MffsI9kf z-YEY8tbyi$NW`dH5NC(-nKf8Kss~uS+lSpkI_)2d^sh}rvdXA4oq?qG_^{h3shxaN z85s_+jJ*m&e_e(NLChL>rnMkS_W3Zp-GGjYViSuSL*LeVnJ2)tcPBq?C?E6|l8>GV zU--GoegFj!1xeZGKfJB^m^l#WguqZTsk1})`M0r(R0*)6-iM8$WDXCJp+fkb?`Xkh z7r54wDwmswP%>jg{@qElQ1hn{ilRDCp@ed$-_d&AwgFsgyAL}>#&H@PhTindmzUQ% zaVBxRktj|~)Iu(>!-pLsPjiIgxHe(U*oxxvpN$Ukybqg6-Lfx#Z7aqei-1*J^kMB9 zu$e>UOvP1>ab-Q2{0xmfKpB}hlo$OWM{`ye2%DF$oO=$qv0BO~+)020Yo~%U&c$*5Xl+CapL5^I`95{meFq2%B?#ga-G0Pm3^WArR>Dm8)L^_~`dAfan62=JsVvD3E;! zUw(@oWy^qV_yOaC|AhqW-lGu@u+|<*?$BVq<2_8|O94jStiT-#JPI)T76le5(D4wO zdw>ELDliEk>#4vL1?B-v4pQJC1y%zr4pyLDfgJ#wLlk&6TB;O27sHU=3OpphC<9nl zsKRzA!3_Yb!W38(&4ah0xd6M^M_~)4pkbMZ#@Nr7J$n;MD24BNA94x63d0pPNML3T zu%-xKx!h`x<_k|_+!~gzSq%_@1AN&?GODwKXf}4IX~{(1V|--~e|`{OwO#Aujs=(j za5N=#WDwabohSKnJ6vfFal?GsEneWZ4dTmRf&rF2h^_QWFv%l)rQhZ}Y6oUjCxF!e zyP2eyiVq555~r@_a4fN@I~1nQD}*>6;M=cCkA_5-xv)cI(u4{Fj$ zdh>%HK#5XdfmkXN!-ke9eu!4lj{=ODqQHF$bY!8>(v-SeyVV8AruwpIYLZ+2OWi+_ zx)8{kqttEj2%uQI)rCO*3}1Gi12OFAR(B@~JoQnS%p*#RBT9<`fcPx2)OWW8jaq;; zS-uR%m}m)QbQLvIU||b=*&%OW>!ReWV11R=$4pv)C?5A^Tj2IBOTf@_NqZGiECtiP z&Bh9-@Yg3xCh@Sb^RGjB*0Y%~lGX=K9Bou^w2} z6H4yT9Xw?h3IkaClM35;hs<~EVpK(r#vUhi*5AS7$*(Q~nEsRkmnyIvAa*-skraaS=6-0C8xn+keJvA6R?7#_pzK#JQeNNNHf~d5tY5>~a#{Y_ktEqL-i?R%!B(&`G`>g6>RU zb$e~>87l<$Cv~SN)?;jYkYX(bDo|=3NfJ%KbmYL{y+Ga(p>`yRT{9yIV9aWb%_49e zzqALL%mbEQsIVmhGpm8+zof9~Nj$y|c>q?iMq%+%F8nE2W|6`|llTsj19ow(!n~#2 z24G>YDD3n^9{f2H29~@|VTUI2%X?s2mZwqW#R}Xxkr$C5u##65wq6P50IYjWflCD_ z1l!juY^D-ygP?1p0>@3{3-=<%r6{o171mD)P6L?173e#Ww?|3sogdr>+bRH-U#{fNjpz2y5FxONcNKPIyv$1%z^3;U zxO+TbPJ+u&f!h?eSqWwW40~UJE64M*N-%l5!saQ#qY%vAp}{9!}&t-leV`VBLNjyO(0xm3Un!lQ%VBw%#-iGnrCIHGH6gZdO5$0xUadldIk< zZw#8dAKh&9vuMp<+E@{3H0OE&gCE`xjS3);_$L+Z&_wA1fMxAeE}#b=U5~7F0joNU zi#nv_g>nC@WL-JNXDi@vj@THEYhr0+96wZ#c2WQ^|63b7K`LAr$G!gouohqqk`VJU zfTAmOtc0@P+2pa|!+gzOU>-@p*!MQ}0)^f`j$ihs6AAzePuk=}d^f)YL3cHg&z zpVHoZqk`#wMNv5N(F?Vyn2N3!F!;{Dq9`&U5LTs%V&*s=-vC8R0VaQ_%3>TqWXXLL zVAIbwIjQY;eN-mTJ%ABa^mE8byG_pEeEIeR(WQpGV!VUiWkR61S}6rvAf-wv(8o%t3u9E70IWN2V~f2JQ;Rxp zuExo^2jTjo3y{4(E2R#MkyG(JfXNqZ>u#0)Vx&ct;&=g7`H50s zs!|{cVAy|b4Ci+-Xu3Wsl*->}$O(aqS8VJpN-Ow!0Sq}CX@m@cY(y(6;B10SEBZw^ zggq*)!vJ9bdM3c8KTwu9&PnH$L*LchGLc#^6<(Um5WoJEu*#7CYR1@JmB@URNGia{ zT9rtOOvGIPFyErFJ1Ij$uaC;)8BHkB6A)-eDA9;|B*GQp-x4ottQ26nrm-(ca-Zj*upELP)*{?p5J+@rYz!%|qR{H=1q?pmYs~piK%lv& z#(Gh4&EYe?#wupWTG%v_5+j#!eACxx9n*j{g+eDPwSJ@d!lRh^|KHa*Tv7_Ay{{$* zbC+-9!AG!i+y<~JTw}NZ%q$0Z)KT2@Ek1(DX!y%0{r-yBOvG?kCa|Ufnz$rlS$x}N zej?T$#Q!*gb&N_-%>$KqiV!zCfMpHR*h8dpC|_`tPG`M>20d6~PZH+MKRSwmVgaz$ zdXyMp$LN%(*wh;E4UShFCGM|ClJwh8r$n*0zYZar2NgD5 zU}iP2#6t=j5hr&yIsnG~pvk=mlN1m;ZZCX`adC7pTGS~O;4033enSQguo!DgLaP=9 zmIBP}P~dI_9tD`uslfFLbi4|;)1|=03QPhRb5VgQ3d{o-ctwE&6j%+A;hv#L-CKbj z0NcG4c=A@MXZUNVFkc1k#Yv-YF$w}!V^{4?sY5ct1B)qjAHO6- zUI`&vh|Z2tRpZvyajeI70c-tC1@!*^1Wet4BI~Wo)wv`5AOe~jfMwL_veDwGiCA|` zYr$xx4NO^>&dyVQwv6P#Z)iOY$41moADy*Q+C_LFSsSjW0;~C)(&n$ch};S9bFKyL ztsG2egwBGf9ZltZPhc~n4OrrSU0k-LJz}g3MLA!Gk=N^TT^Ku`*s(OH0W1ECE?4w> zjO2E#)SGJoHvCnWGl~nbYJ?21^MI0UiItL907m{zmrHs3uygn*PQk@;_|St0&cA;J zin{h<2`6y|7JwIlXphw8)h@9mj6<{`T>C)_c2|RI8mP06sT`)#KA$+elK%r1;5)!o zL@93Q4V)QXf+|5`!n4|O?%)i3*erm7(Ms2Iv{57$bFcn@ZG}p3?L%NxRJMCP+?11a z@(Y}8n9ho*BysZVB${yS8*n?ZI>SL(oQC2bouq9GV4X-*EFpQuHy1b_|!jqtwu~z(qq1-G8)TF2cvF`E{7RM@q#WktgF-OQ@ zd>g>3dvvyiO8NZo>r^*+;VHzF@FsM*PiJ*x3#a*>Q#gs339J>^zo>AI4Cg7W+Aw!H zz%oQH>fzA!F<}gWBGs-yAS+$R12D5UA*aP{u%_6zP@G@v)s2Dn(8as3*&0?O z_iI*jEkv9DuGF7{O-1Uq>jAPOI-5>@e&TQ*yb#rdLl#yIMD8q|J?G88`WdN-qAB|s z1FC6TVB82I^fYfwQWS0_1k&f|ESq#XNn1wUrEl`Ie_#Y-DMLG*tK7udVZ7yGt*0Ih zFl(O9{)+3ir?EOx_YYb%2gn}L*?Uw_SBJ?3{6GGIUbT|Mvvj#@h&TqF#u7;zz~V=B zc7?HJ)~W_1@p#`UDm zP9SS?=kCM7I5XAjpIU&co+1Xf(F+`Q=lGRZ?2+y(6zfwuK5z_lA{D4`C&m9n3B_)O zGk#iUYl!PNjL-ZIE@KhE=A}Aoq9p8M(~gp`p1}!}N^phHUHF)jJn9Vkp*CPK%T!^W zq)j&AVpgBQW>#!D41Bqcmy{6Kju^hV2y@djZ{ZGbXOZ3M0_*xt8N+%C*rZw!5y<240~R6VD=ck zcM6u`=k>%mRR6 zFX(d1c;`^Hjz^L&>a3?XGQN(F{)HxHz&cOpa=p0-JA0?Q7k;?oeO{z{u08{?`o=25p4D56RU!dzLDB34iAtjA9nB zl9zOb27r}S+71&|*LeVqVc1?sd}5lV3a0u&aU9A$QV{2UA9(oWRW) zU~e=6%)P3>iG1>JG-B9^KHkgDZt;OK0i=xZF*|?5ZGc(eas%x0u(dC^>yCpaArE=r zOLRN?fJ)&q?Q%VFA1*8f{hN-NfD1G2vI>v!3IE2S!Y*J{z}Arb?m_ZYSINIoo~czZ z5ZwN4rb=DM5B?j)Q~<0l(9SvuTTHQwOZ|PZWoI;kD+#sB+c-1%slA)fBI8l?W7trZ#fPm{ZJKmv%05;-+e~0V9NYd&85f^V~ zKa*{o5_@8okhujHF;MXT2$>samwTdnqxeGF>PZEdm1xI@B@ke9l)Tka0I)9CE-#fY zkK!p8AXy8r`F1<2Ajvt{9{V@IE`Tw~c6L800uXx<;^DRsm-=T|Os1Vx z5x0vt^l*LoIdDcPxa3Fe@<0F%uKy0}I0~%pDOC|mBV|Q6cB3Mmw#x&SGb81OP7**D zs?18c9LK*vXd{mV5#z0-Wj}uDcO0rX3aoCCU0&fbWsHWS26ga^T@F^x^EH1U=_FwJ z%k1*1$$&_HC<`Xm`EQsQh>9od@@nI9%ELoVcp@R-D)Ltku6Vg!-u69A+_l@jE3Rrj zZvRiPu##tIG*XlWASS6h5!jps&bGqNCQ)s#jFd+RHUJD;X_seK<^T-9Mm{dBTU{U` z^X>8^Kzw&mZd|NKxWo6r%$~Qi)fCbB0nmaD=59Qo_cC%oWxs7_D~LL>@mC!N2&j3L zUAq3=BrR?L-F}lEV03`HSO9}1aolgXNslta_o854w6mU6(u)Vsok+Z}aFgEKy$DQt zp`G=k@=g&k(VG>f7ZR=o7gq#dL7{^AXfJ)T;a`iwfHLJmPyU)0v`Gcl@S0s7RzKDs z+6e1DhdA7&-~u<=<)QVh#0jrA&Rg$gc7VIc?F={6QF#5;*;8*l+?DhxN&~4>Qz}dP zU*-vZ_DCZSX!=&WybCg&U-HJTWHqqPayxsGB;)yT3$PAg$?w@2Ck*R97JalC`x$)J zHamMm=pDg#d;g0d<9h|a!A*LRD zHuz}bk4S!%*Ms8inh;=Z;9I-HANb$!mVHpVJN(`o!zZ9kuy6=eePEX>Ejw{~nO-DG zT#wxk?1G&IS@>8dUIzS|rjIbz0&KoyXHF@o>&S2$u;MFrxg#BqcYCO@tk88FnyQB} z|6ykxlwc3OUDqd=dBAF{4z|PzY!IaBrH?SX9nZ zyk$=Z!?QAIRUQF68|~tsIP`wTA_xScH1C8pV}wuw07i+&V}}uw>~mldiZVr2T^GEJ6J0N zGYQd&LxI^i6j-Vb1!jvwfeDbyo$ioBpHZG<#RY&?MC9H8fy7x3d8IqRBOr#Hac-Dq z2LuWqbg&nwJ3Y%6xb;0|^&yl^zC)hjm>)sYuP7(5=I0!2J?Wpq7xTpqNre2F?NR59)gr+zug z09Nyo3cWR)A9@*srW}AVa~&*#%wRR5q$^k*VOk*1&et4fBj~{S4z`NuqHyWTv;9#Z z;a|a*E^@H@NS9UNu=t1Q;BSq;?r+QjckwX?o9G0$m>>6tB~}BgLh940j@uYfb~!RP12e3Bv=4ThBrDwE&Y}b4X{3 z_Y}pjy&hoL8wwnxz$*abHaX<^U%VVhXB3UtCREO5hnzm0;PA>)gfQYm`|l3R{HT;241;%726)se}}*}RZP?Q z_5k?KOkhnF4i--~K8gZ~k(X~EBCG~ix7{H}jU$K?7kQ==XZadjr9*BjgnAMaR~(YS zW$aX(>EXot9|hppM~b^j84ybL>ZykgYXo=k6Nj9koCfz_Gn5YSS$p8@sN`Ej=4mzf zrJj1QJN5`1YORC4L)>oSL?0ktBx>%7HnA20?VmbWI<>y#To2Owx@&<2e&&$ZZilrGyDwI8LD;^8rBQTK_`zVkuaO6= z5SZB08o@6GW86_s5gdlYpoZbwPd*Qo6@pBMe2YZCamaUedhkslP%;x({xRh}ygel) zyoaq90@XsG;X8-Ct#^u#?xjyK9LM0*S{!mzi93+J^x;M-u&fgfc9M#G8=en`Tq&@N z-#hRT2w>}YP;a!hE?}*#4ta}tPG2=q?2VLCn<4!Z{3l6|;0H;%99Zkm4tA9=@4oUt zV5tEoP&^$stFC}9{HKb{moE!N{*%5#b3W@}|0G2&;A(t)>wF-pNSUvS7n6!UmcAIcms zcFDnTBO2{TNtg72Q%Y@trhhnC47IG_KHU~6+;}Gh%yI~1;M>wHC$xvzU4dI9^4@_2| zitKc#C$ez&Q7~mePI=k+Kq&MV1No&97|4g8gxN+r<;lXWi0>n`lBR!Pa1Fv1;*`Dg zYJNNdHeL=atT%E;EoTlzBra#f^+$(r0$ejV^pP~0pV1#)(7zRf?NBHC8)YDv4nJxksILgWJzyn&1C$LD~6-lu}AThzo4ASqIC-D48y_d`XC!{>vDKEWm z4aJ@ISbHen6$$gt1eHI*$+{@ml2AD?w+*B=4kmpL>VOJiAs;;uh0sM20TVC9Ork_Y z-?DC?KG>al3a0UplTD(Syor<3uYr0my_C32C#HA&@hA*>h0jflg4$hR${uy9`EzfC z5*^6N_c6?>ih{u=wL!t#o$PQAL>nNYrT682ih^_A04`&J6K{or8zl049M3=wAB0)R z32<@GIOPG!P(EW2>OA~swDm2!X5*oNN>0G;gXn^(a8^+YqI>>21{RP9t~tbD ztEf3`<(CkLSq&_vw;^YntKm@B;XF|Xz``$`>}GF%cN{)4nKw+2F%!r~Cm@34PN%792+_D+#@$;G>1|GiYi$_A@SqW>t}bBgER9d`-$_qVi{_v5 zJN6f|7oq1%{RI^b%}OX4Joq;PIW7R!+UaDqRGC}DWd9Z!3#Cqgv0Ze^=W@0PX}ACX zA)QN3`P$_=PdZ{+S3`joK_K~eC;OU`z^pA6&8iw$>mTr2WCw$843s`n57!+S?Ic65 z7rppbqfjtgM(Q`4NdU{d4B4}v3YAv@PK~548BC1LV9%4v$H354fVf*>P#s{hoQ8a- z=nxr=Xuv|fVhET?olwOz(8bB1VjA2I#wZ1o9BQx`r1&WwGzw*N6j(+dL)s_$EP4>p z?f4gZs=fyMoD9=Wxe-2Y+bHxf)4-+mH{=-pJbD}@{8l(9*%-b zj8fbjPh5fv`4!dzZV#n1$-}L@4dF7ur43fxP!D$%ahjDBZn)ARAWRPW+W=OLQ~^Y5 z5=w~3qR%7eaY~66Dzs|~=74LBSKNLNXO4yvwcyedRGd4A6XS3iqZ?PiHIFys?e)!k z*=U$SQWun-sN!1XiR&cd8oCzT#mR;oS}z2Lar-K-6=E@q+IuB<+g%15NwqT{Ri2F* zQyW0n-3o*^CeR4^4L)Ux!SIqQt*UK`M?FphmVK`w2kF7el+MTNeT;H2Wm64y6G@-r zeG}kEP5{fj&ycIdgZPXDG{%sBqfqZRG+uwE=65QK7H)qR{H~hLHcjZl5&RJ(Sj|Ufpd;bUbzApkNLJs)m{D z042N^Pj%~2dL^*r5hh!St5oCBlE)?LHydpL^Pe(U9}?Wc=O$tb?0*SZt|5D^9lc~5 zu1Q22UIgZ1o*@^8T0H5BUc)sW0`(BcSZTTjs#yf@R>EJzK?%25#8z{U>8daxvg`EVxp1h>q)x5Sq>_Hlfed( zXFS|Xp2HZMgaz~tFj-p+xzu=p0$rQj7AHZ!q(5l+-eAvBB^@9EF+4k+1edY_T+=&n zxWsM6=X+zY*wF~ErreP4er)5DZ%0G3Ttz?jp26NH!F9cOa0^xx-@F~qL??kst1wtC zK7w)wMtI-du8+`50oLp==qr5y(ILK##lLZPz_)aOiL5eM0X3hM9(6@=7T-aRoZ%_^ zKO5{Q<#e^G({?cKQZN;t8uG-+DhetNeBCw)Q~Wk?8FdExg53Wc;^YB}N!Uh+y$LUz zA28%$u<87xNfA8wR9jz((s%qa9Pn-e7vR&j*zgSd^<3A94+IlT_B5$`iocTzb!P#~J*%4kfnag4(Om#At;1lA zREfKSk(xZna~E1(J-E(a3^q%&uVC3=9=r<;#^H-+@jDTUqTflOKZZQ%x z2tj_Jq;aMBfu=TDLu;7Zr!=44~ve5hWdDzls}CU z%7ul}kv<~R#9SIIAP-pF&8B=Ky@g*&qqQYqWdSDZL2~pk7!P6geNUJkgX?r{5v6U|?Qs|LpsO?EHE zxt_RtEO@%)?y1nT16(Ay#l$W4gqwXo(u;ONm+o*AZw!|SE+3rGGt?9Acj&pY99-gf zlif{mp6{tfNO@v}gvlkV2cHdI=yUcu9v`Y8z72d8_$d_rR5$;uC%gqu1Gj>oN_@+8 zJi;e1d_XN60%;RWRz?CxARr4vJQJM>t_s{X;&ytt-{}eIa&Tc2Rk$J#H|9QMstsHn zxWN=|zDyL~vhnO-T1->`_))~ql>92MM?E{3;ow=43P0t4!zY1vfsd!~6T8FX^W?}> zIAfz(CIqS=P)Y)$x&`R_9zqA8^3mb7kgK>|l`hH2+8%OMH(j8bK#9ukL6k5OQP~z3 z(!WCmI~~{^Oc+T5xHxd4viB2r&A9Tw6;4v&_>JMJ!Bv5qLn<%vgu81x%DM|&TCxf^ z>Bex;ZumxUB3!@g!}Z{;K6a}MyzNfaxGn^A>mwRhCAeg8qEQ|q?pmX41D6j@aLaEDHw)aw?r_s@3|9&+Zn8>m(2e1ag3AUcoPe(do8%g6qR1ljp6FSWq=dm=6k};o`Er<#UHK>++cE!@%;H27&F8Y zmTJnAIH4pjrc;M!pqI`A7k7^-=ZAA{k$XJV0MqVOV7vl50A@{9;2;Ht-wes=3d94a z*doFLW&j>&0#W#oDc?(*N@zf3%QWS=kWn6ea4w`L&zOZ3v@Qs^7MW}v zWkM({hK6FSmHnO0rLmqxsLJORln2k=d9+)fFl+*e7co-kEvn#;b zpEuhaa+$zdOH6i!2K^)WPY+@MRST@J%w*-%!OrvO zDOO1`=HNhwe^2W?e-N)xY|XaomMxoM0yLFZC@zzQ2pc~EmVKRy?E+W@TUOOu(D zkImd~9gMU;_vC;{{MLm31vAxO z^<~+fzGwsZ4De%#pL87$x19>C8hqGslOa*$9K1Z(Ha!z#GfQvS%t6~PSFxcm<$s%UyK4%`Ut4yrR$@R!T%`H!G&#fG6Qd|a%Q@@jf)RDXJpAX+DZ(8nEmhF4j!g68<$|Yk>vc?84W;f#GSi zEMWD(>TXfkM1g5nfMo@`*n0kEBSz)LSty>^z9>4Ii)mEUCjTf4#j_SzO;49x8$Q;9 zij%(lGcEvAzOs2ZHGUKVVWBSR7LW9heoZ{zqpuKR07cX6GzKU`GU6 z`v8|5u}>sUxapn5%>ow~>0($B#0Hor+`bp=$PKu7@ zu411fPAD`K-;i*}_D5GVSe4K|;$&B}2LwA0z%efN2o+f{ z4|*I^ofE*4$GX@`GLy@0KJ#(?HZweuhQBVk@OIKIKWg>q<9dLW38reii%sFZvSDdu zf8hLfDX@kKE;-NN%7YeT{&y5u=R_C7d+u;Uh#?>EfIYJqr-`BmVsw-2V$YE4U&XgC zrfDd!^!rhCROE-<$kO=7@&1}C8*`^}aCP9aNa2A6Gx7&r-#a;&Pc-+z>3DSAs)AL)6MKum+MT@i}t_PErB;qz{n^Ik)Y$HHHAG(XpRW1!Enopo5(Lw9F4%5 zO*h*^arjakur7QLEeDnwG6Yrkpo^hyVJikW;fzEW{tPV`14}GJUIKt!FsN6*)15E^u6VZ#Ck_DG$(F7u z+xiT0vjGCdpSV~7>2%mrcw$jEZW)sAfI!1u7kiroa2$9Uj3OZx1Cq~N%t6>f3M7_b zPA-FCtp(Q%>%E&&9KrSF)JFkJt8?LoKd=BkVL9UP9|_O#g^Nul>@*dIh@+-I{53vy zXEie+kOqqu5$!PK3j(D8+v{EI<6HRSxnx!^XeLk0LxpvL2|M9pndD(+qE*ltoDwkZ z)LUV7tuBVoD`8;Z$)a2Vrl92zC_Cknr{zOUKImN>ewg?yHnh6Hxc=diuL8h6mOP8~ z)o2VtE81Nwjx;~Uw?9j#IDr**=bDtowIrh&V8$630tv3;!&jgvI)LSNxa5drHD9m- zwHY0UO#R|wUr~`Q4a}4`eG@*G>*haL?Y=JX&F~I;h&MgFIOSCdF4v{Ft5i86 zEbSm^9pD0cxY<%ZX1N}~!^Yw1u{HVVzGFwjK?bO;5Imj&^_iiCh zbcUh$UY5}aE;qz2KI4h)ipkGG`76L0fW1%3?IQVCZ?fTpZh@}36XH>yy%e|E!`WW| zmj|u_+)^s?RYC{)GLO)&9vthd^qVR;8toh={TvBsP!USMc;c?lwtHFR^Ao!z<%{TySUd!$>wb8(6|@#UcHt5AN^z=aKV%d@?^1n1GO z6kJ7&Tb@zbOq|efTmf|N0M{_w&7PyOT1lK(@OouBmO#cL$`Nk)F|EZ!T`R^+aAn=x zbPp%gET?d>Zut?Tal{EVC%izTG;kN=-0Y~Z8^Mv9t6zXBvE$IF*KBlSPbw>itI22xTatixUg}G+j}Dyn~2^Z$t_2&+lUheiqDn> zxO2c2Pg2IqJ)Cp39%|HrD@<|Acf?lm(W|jF)z0qxgpz=8Vkw4p3wNeyzGfE$vZuKjzJ7@g#?F@%;!*18 z2`It)-Rex69ihb2vwtbX!o?zRSr53`7V-tB_?bfZf@)x$54q(I_-;E79!19s=`%tg z3TL?G^`y;w!AlU1orqPhxo&yfez9G>c>5Ci$viMMbKI;qMLm&{75gte*I@sp9$eKt zH+x-FDsiGbXRpx*;9YlQGSkg6h&!Tpb04h1Aa@$LL~vQeZS!!yfHOCM%La!(mFSG9#qj)xgR=aLYSn`#ma&ZZN$VIy)xAr|ovjCD(N%;CWCRkGW$w1WsJ@ zS?LMfeH<)|yAI*}3xrDcxY?hmURLs;S83D?jMciCm8xZuE=O2}uOhjG6qw`Z(4M3R zQMHSC{x`3}bn?J8eBow?s3fkc$_#rAef3c=#SLzDkwTr)_~nggv5&uoeXo#Ix|F=sP3Ag)?)&236Ad^BVOO2vXf zP3O;U)<*K7Di?2UKrT|jBzL*lZa*+4Kez#ARt~Jn$4`#STWmaj0~$dGzy@Ch?o(jw z6wGC82ukI))y9{99X_v1)nN|p8(e2$JcO-YW(j(+5005 zo2L}BroA~1Isu*48Qx!z*8 zp^P!f3*c)@^gws)y{OAxio5LF%{78Ea=@`rKly;yS-xhI9>R?`^xk?c2wNXNmSW{U z{0FDUQs2;H498S}{rwm|k45vSHE-YuT_&)MC=vv=ga7n~K0&W0Y^Wc5&%*yykG6-8 zk+^yKCbT`rH0U1dCtr72O6iTp^XYI-qx|Gs_4E1Hn=oc80G1u6uu0r&Gq7rsi}#bS z<__S)H>1otfEAASV|Vahu3*z%Y{jqJ45Lf94=(LaKQ@W#^q3DaEqsh>W;1oZGV`g-(a(gLCKNA>B z^JCMg41!61SPpvqs}xryxP}M(k7b(RZ{NS5Nu>e@ugMRF3a-pjzkQnj|cnf2Rqu|mW@?+~reyWwn z4}|0Gya!7}j&v9>7%?y#N}d^u?YSg}-%`!BFZU zQ1`SS+bxTELK)Uct^mtgstO|1!VkTPRAOg95TGcD3*JaYl*F+z8dZVoTn5`D|9Ze% ze*Y%&Z76&KOnbf`E2bLT@6CH;V%aAjj1fB%CHtZuTTaYg{?Xg$3k!gy75T|yKfAcs zJLoY^0Be5TPp;-}p>&1)tb7MvEqWHpnftLHN%N+UfygF5xhOP%1Vo>-v%-!;@)__A;6$Hfdhvzmcfr(Qc6owN=r*qR7%SAqogD?#dx1Hb6KR{+aIw$&zUnb zXJ*cP-1$JoB!4lJG>N(}qJqi~T=qpDHi?R39C4y&T<{5|@|!BK^qM#oUB&M{>jd`Vd|WDfd5omP{7p1ut4^1_gmZ=p@NfQ*gMW_lE58tW@B9azF&--r!(iNH$w`m%p1hI|)U znhug)1!h5iUsg^A7{P-o^+A320b>JvpWq~_B!B@^PFSg!*`^3A%Z*D@ca!@G`_{t}%_7f$?fSXXOFM&&f#qe+vR&R(C zX|9ACNpY!`8&A^)%m)1_i?=6SyIJ42CEr}+AD6x`aUG%mj*XL$ngEzr1y zPVNwW6UYSD^o%bnrcuc};@W#B_mA;?v>F0Ca((4oYkKPqUVq#p(z_Yx;XF;{UZ+a& z$s>LyD$|R;EPyO6vhdnX_klcSD~hQYTvEQKO=MwCcaJ#!VTHbvcRg{7edP^4lSrrd zfb;AYbO81&nDZrHc~zX?gvnaBVt^#dKL-LCFZ;?B<0uL&F22|?*&~48y%h`f`yi08 z#FyPmsk-?u1cZj^TVVv#li&(`<$~Zr;zZ0_wj$umV9nI`!$e!0qL`e89K6JX2; z6MLW9^g{m2CzxrJ0&BR>#PGNg*5;j>#N;t<8=BZ92oyYGVt8*CQxWH~!?JDYnB%iC z(tp&%9w4qC-?bY1lxCTji8w{1j^2nkwVmt(t_hq6aW};h1Fa2(?m+R?f!i_L#JZDT zJ3}1mFuo)ZXPJvc&oRl987GMoUlaH2z~QPKaC!4h@;uNUp_7*Md_L6&c~pa|eagfF z`0uANFG=|n^O9y@o1Zqx{R+8!?xz?WB+f%a7~sb?la)u4jz{SJjx(RaV8!6#2Kuom zkyozYiMdN1um#VU*cdY66+UVwbXanL<(lOD;|k4JMf&&bMEbM9)#jPxY0g8$347^x zVP(GxTmtkTCH-skazSS7F0wKhbD;^JIKUK%88F?Qv1S)ECeH^~f;vENNY#8;owN69^Zb->(TGs(@_3;C#O+*qJKg%mG0u?O$q55ETUJZRB-@y*q! zikV>8Y7@hwqS(`cWfdAR6kUd=rI#lS)f5mBU~nTgHGGCT)C}zKZWF^BOsH3SdR5xS zmw$#u^2DdnCRKae9@g7I<+h?HE1fLA31%&vZHJ!Scb zyIi|SsX$5L>xZ4zz?O(W zRHVH=N297I`2aum5ph#Ah2cE+bBtc27s86r^$_Xm;ZDncT|F`Z+6McvsoZmmf|tcV z!CZ?TWAR!A;&`y1T)Ms1i3fk757XBHjI{YN`yKrGEqEJCOd@B0K`n0)tkl_${Xwnr z2+f>DPK4L0`2sn~fj~_pOiN8+J^$+qd?c;{mVn3;DMbf6$=yfFpM!h5 zR|E3}sBMe_ku=;-?h%+m@rvt1BI5}f-8KY7+`N+)sF%e#>@CHcu++QTS-m;^1^ zhfKsikA#f&ldh#m%Y<+(=y&KntHlt=8?PnfawmE8rW#<`1V8x!_=DpG=e)k&5s3BDNf^4_d`eY3z(Wb>L<6skKh~j!>?rl+wqtmQ%Oe`eqleYcmgY# z?uUC#fOX>GwJ6|5U@@~bxyvSgalgK^A8qilyojR7_LHm2hiI#e=)m{XVz`|JE^-by zK6$!6_|32B*aM)9xqb|e4x8UibWJ2q+|li?^778b^l6mY0qlm7CKcTT-$y+2-p_-u^yDu*(A{3YRe9w zStl<>OMBjr;erlyiB19GGH}By*83sAinLTucSa$OcU=NkX7QIEdnRo56i!0fUqZoH z{n@LO7l4!Q(s$LT1B|ToW4+z^tOH2g<%9Y@hANT_@t4O*C-Nui=wl(U>tPx;P-1q> zz*3I-$?KUy`8twI2j;N*vr!aFCw>B$S1B-dm%n^w=Ati;szP$=0LFFc2pZj%VEPv6 z1aI=2Q^vPVATD{uYG0oc$@liaH5tORI|)<7;nLnFYv20wX))j~cM55Ra? z3Lw~B6P&FHrUFd)S?hf#@bBrRm|_yV+h4B!jo|u22)qwib`O8K+dayck8Xq@u! zp_eZoxSg)sC`8kNLh-Kp6~5&Vs&fuuJ+;6WeZ=iyUX=ik_tHWi@{yq%0cM=lLT{C! z?XRF@dTXIKV*kvmxZ?zvdmkME<|n_y=Z#W;8Nd3;Gqh*D(-0w2)2x7D^g?AX@FE6!l^%gfe8PWkR80s%4nCJM3BUA^0Z62nnIH>J$ z5h@zNG$s1Wb1vK{&bfG5&`KhQ`^#NA3yt)sZC67o!0ZwJ^7zvf9`u90FE1I3!Nn>N zJCZb_Hxc;SK<#XlzZ@%e(jt7UA8t9#uEZ^;%f@0~LF_V=(rADAO4Jc;BgwZvVC{Vo zn1W<~hO|*vcY`$U19o_fhAqV206GCS?MGO_RDyBvIDdId*a(f;3dTDV%;pPz>{}Xb z`qGzm@j>hQj~Jb<0vDO0IfRQm=orj&6jN(zDUIwz2zXCyH zBCzaKf3}kn$PG7nx;I^G2K4&^8{A0SAjcz z-LGwK7jzQ+Up=rHkNV52MHT+gNknFP1A(V&*kzSZI*DmnGQhGK{?g0h+I9#U76Y?A zp<&wz!&8JfP|F!v|@*+G(<#}Cw# zPGDr^BjM+m-L0IeAg*`AHMl*xE2np%-4u3 zeCH_?=VD+r3;gAGxcv&vuwz#Q-U<4i6z;0-%q-lf27pZGI>8lz0mqQy{lBrc0=1Q)XfeKN(kNtN@T z{9oua>ME%C)L-u8e420h1x1ww?D$T9hLf?_5T){qnI3`0Qh=LxX&@}ZEp{c)0I;B1 z1AD9DN@wpzfDL>6<*_BXwZVCe%7QVddyT(5u_C7V!gh4h#gGmz4%~Fg)FFQ2ERs?R zEco2$IE~EfrBChvLYFrK!*gW~&9 z>rjg@316+?eFK2z0Ox3FF<~(KgeG{4G4oy8RSw zat3flaDbeE`8wOW+?xIp)+pV|k)4nLwm?jINI-m4QG*u!549_MI(iJF+ff``>EvHI`fiT<&NCi_`EIYeF4OTmM<_3UAyPYQ|`5*q$?fl;V<<<9Z)4#o)52VXWDYem>fJp5|2#EV% zD7D0>iXOG9vyl5 zd=w4d5f#8bpf#_4q+P7*e)&7?x&l`Q-J%Cu!!P`fZ}F>uUGEtnzr}MN^anilQD8Ae z0rD1uTt5B}RA09WG_T$PEL2uR8m!p&#W_3anvFfE+q| zArV9QJ&$1TLG)#Pq_GjCaa;iFL=E|j{wB}rtJrzLWwhb=574EI50KYf9D|3Tokk5{ z45eUfsR44ib0ha@!iI%Qz{(~Duozln%jHi1^G@7=2Au)(k@EdcFCi9s98HK~6$Iik z(c-AZFVpi$+woB>;ZJ;AXa=)(W&k@tt6k1?m4VVHZ$wOU1K9J}g7g;}(wRT?eZ0#7 zvZn&rV`PzI6qWc6JmN3()6L*wVCh71MhD@{@hp)cx)Pl?%sQUH^?U=aDE7((mR%g6 z-6NpL1rzrxn1ok@xn3H;lBgmap@N)qvy+)BU?Px9VAHr(l)H!(zPHCqSoT^=jwAL% z#PU{v{KT}C1jIs8kL5U*v6#5^FeW8rA#q|n8P<#~a&_R+DgxLA;zkfBay7dd4#)Bl zT=2#K)`xOT#VWZy#AShV|1dzVTDDum>u+$?;Nms~$Q@s6oR*qGoVp3az%2pt9RGAD zw~4rPaE`43Y&)f;2XP{u|NM<~mV-;!5g^ap1v|qz7UH;**jU{Rfwi;Da%hDuR43_% z%;?R~INL18=KJ}EtElanz-%=E@-A8Id%23KbUCo5Y_pt)ulL{!tCX(#dVpnL1hCGy zE}{hP|C=M2MC4vWLZd&1+I<0R0vSeZj1opW1kSJsT-tv08I*}&e&ZVTguqH_QR;+U z!>%S;;+=3ElPb3@s1FANSbyrY_s|Nd$nrbak>zA?GrkRAWyCFWa_5OF1y}Q302@vz z5G$)9T+e^N)q|@&62MLq*TWg^8RG0)(ZBx~fUA$dwbClz&r`A8sQMqh*((!Vo~M}| zqWF$Z0$`no77KW+E_EQk#rZaY)KcXI&Pw?E(RCb*Ua7~=YR`nTIi@6u+7k(K=POG zgg5F2Z-i^ev6*rks_g*eUpOkh0^(jdz)}*->_Ng>@00_En=KeaHQ4p4cOB@oL^FF# z1fl&yZC$dFzvixw@Uo*WXD6BEO$u8Po-T+T{R%!wG~CjwxYr%6XslV=-hq4FF&(Y~ zW@}5~%C;0{WW)7>i9~H)MrmKjpZFJ5%f18oS)f(>X@~&T-YXs8^=CA2gao}y0cI>T z%b{-+rM3MAfjV#n;KX6=PGTPv-E@GVFU}|35BH*eicYLe;3RD_a*mC?lfk(^rzze< zT)X1M;9|f{Bd=D}7VZtJf*TY-Wq=ZKPHCek&H!(>oiO|Jn#$fCRmOu`08Xg%Y6}OI zzC30;lDY_dTCNuMEbUNgPfiuMJa8h;Jz{5*mQQ?$CoWG5x4dJx=v^4qgA;LzT~Cz# z_BgY^yXR|Rhjk2F4lV|qh%>ZfoQ>d`Ue>~05qpc;rz6$yzDu-lhlp!8c{*`LTDW&R zhARb^08Yf0+cDfxa4E%FxCtG@sh`2F;6%6{9m6GqODfUAxpoY<7+f|u5$=q0`;REc zec)oa7H%tX?PbvdE)ARrx2$8h_}xfLnHFwZ$8b5|)`AmdF}N+9s8Us+8bGb5+UDCv z@mq8+L^HUi6=wOd^fK*Q>3O147haj{;qD!~2P#*Z*;)#BP;gW&Fl)xXdvI)(rgOcM z6FRHF8Q<1)=6BTD46X*8&^g5!j&yp&)}V>6flmHeg+7$Gq++vY4zQSaG+hB5bya~o z3{L2}Li<2ORS@ZGrf}=D^ogxPf)nYB{TxlKT+_KxgcEsw&BNU*2VBW}W_ikf38Uvi zx_JUS{=QjmZr#PZxhuH42biq_9*msM8YXVdHdwxZzxco`7drF#3KC2OR zOk0BwS%yoXu79Z|W3)_$eLwQGUrR<0h>K*T11+o7RQtB6E(Ln{YYn}2OG{iGQ1^ox zdQw9TZna2q9lB|%Aba?W2AClpSj9JHhRRJ}ns*YG11#o{nPGTCYpUJ6fK>w9aahA< z3e2OC^nDMEe>N5$krTWWyuS1`jfph5Niu9Iu#_Ln@>|7V{ypg{23Gc?S>DIrkL!&} zH;;Y5*hvgN_=mIb!0MVGJp8;`fSKzxxoa(4F`_(U4;g6}B+ z*`Heej@^{`TLrM}FEcw#>Dk4Dd=dI6u$X2o-D__0Nl@wj4GQINGy9T1_aF+u=%zOr z6M>~%Gt1LK({JA3@xLQ4i-0EGFv~lgr|=ulXsiOpS~SUFQnITjsk~*Dw-a{ZPnZz3 z{abX{ty-BXH+hs7${-z}yGx)fz{|KiU%~1lu(i5Cx&QRY4eW1{lP5pLYN!X7l2h8jl$WGC;oI}N`VyMXWhYCB)S7Hieu_V5PuYi%|GG%3p&6htDv%8z!S#GD z3EGbU>!ArQ(F9Wg+F~?~(}hOEViN47VIyQLRfP4{0(X&ty&5TStY*|s*U6|>o)@IJ z8BIq~h64jxCs#`7HPo74JaDUZkb+NVplZej%8xd?uAu^oRlO;1V)lL*=eUej5HJo6 zWJ9RBtVdXNFm2`wR_sRg2h^?+f!bX*pz5xo;UogBNeX1UDY9w&i(qAdcQHwh3zUnC z`4o$&=Cr%Rcof{)`vTdsBp-VH25*^+_2pR>CB)0}BijGjKzS!%>ouGsM>9$VczAxG zyqEnf|K6hXGL!);cjb2n(-s^$thK<3Y94(Isd+w7Ue}4$ z4@eubfSF$ily~yu7@!r6vmDswf6WNy(&LlnC{3slk@$gCTmH3JSve5*5t!kGKO*j5J0%l=0oQ1KghQ}p3b zCB&fqgtWaK$Rf!?QT&xqSTq&b+IIrkcT_A2#V@9JV&}wl=<}|GK;-&Bc7o=yXRfvh zh~=jg8wA`=pj}o5vQe~V^{!JuZmEKRAsqt8t5NYt1Mc>-!Az@wId*HD(=TX z`DBMHD0L+U42`6uAyB*1|8IDz=@{!+>d|fe5-68qaO^Cc26(`XzXq~FVwC(h-(^SD zZwg1%Uks)O46cjCK^N$_l<8qMRst>iO+$GbdK75(IStKkLtB6*IW%;38)`p=;ySOP zliJW^px4{b5p8G=(8Cur+1_pFDxeh?H8fO1z4igkyQHDY-+Xk5666Ie?RO2k)-3bT z*K`{7`wtC0+kB&a5j)Y4E!VNd@^L)mA}?#UImCC`;ghp~mHn+@oA?D_-m8GkXbEH` zWT|D)r;X&F#e}#X+zxP@xS3Aw*0Y$|Wv3r(Oa6r5qw2wM3PKcYoOe?+=Ugu22H##M6|!uuiBppvm45B=4)*L!59^ zn}|yXH^VE48K@}+kWRU?jkrp1k;Wi4m72*-3MbYc$8`bM0xr$0aaWw&8sd_FhUc*c zvB#;d`a0A3YZs)m7+hpnkh~K{7(+BY(QslS(XtvLzy<`#t3rEI;I^d~ys!)bL;Nq$ zFer$XP|NDXcSb6s45h#_1_w!}bd39SMQ>k6a-D-%DXkFix&qf|fbY%jia6|NQCFjb zxSl@3GDE&AbI#C3eO9mX_o_Qx;IGM4+VwM z*wEq$(0zmkUc|csO1Jw=zoOYB1+j3dNQeHqLEjW^f2b`Md<=N{vf;K@@@)^bB?C(Z zpAEi__>16WS#O$&l{aIw;?}bq0!?iSZvL-=ec&@j2FXp>mq`JZ_q0verr(g;Q9(>k zx!pw^HWl~go9QN`ba3vYgXAXcjl_xb4q_AbDsT>P9u#gRaiVv_CTw}Dld%y3o0Eg& z^e*==`1ULex#;Rpyjg&-V}jWCl%XjUR?Lw<>5ht)4$eI_NDdCiIrY-vBx59iv!#S}q{6g+cPT5;ZH-oqU}-G|mPWS%l_7Z5`w6p6Fif7cs&eZ;`{Ijijq>SY+*) z11@`lMSd5{m+5HxI!Wm$)%X#Vj;ATC@HvzE;F`gdUZ|suB#^2p81cUf+|Y1|7YYXc zuYw+_Byhi`K)+_up<~0!`@{C=r3`z?)ex8$t`l z6Zoj!$^fJ3ceEy?B%QKy1U*m7PE_2Qf!Kosrob&&E|X(#PHzS86%p1cnDr(@VrNk- zuuH%eAl5mg0bV7RyviS_rTSp@D!IRjd>vuwz{=EMwvsSx&4@)Ilmla4!E&3H@S`|P zXXQitpypiym*gGHtipwojpV0v;$knO@O*>inU<4O*y5W&T^|L9lfh+}g5`^V+xcI8 zFj%Pu=57g=w@DA?1Nx%#x&+K@4Q4;9NKX`hqAy%@ViVe2*I=fnILGlXAg9j(RuUD= zmfgvp?}bt3%i3Z43^K3Pjja5iGE6u(ex(@Fg92ok)95_7F*#fKJ14^ zp9(6kZ!jw&BMzfrqNdIq;_lA}eS-5qru_by3sh`0p;*Y62t-AP~} zX=v}C)8nv8WCr9QuUITFqx&p! zqijBn+v@aoAKJ1L52p6%VD>i+bf@#3{iz=VmYo-juNuH|xz7M)fW97BTz)VM#M$iu z81>E>p!7DxHluWx1hYTrBWDrcG5~>#ft4){W~<445P{s&G7smnBkQh}&cL1=Zie3}oM%PHkd_xC4Q_vmoF=yZ)5&ev$;7lXCAWaJDpy99~|z-o}Z8j4j}5 zAGFAAl@n;qO7x9u?xk^aE6Qw=MXn2uAWobsyG-0FaB&Y?+qH(!~BU9s^zMbN&PYB-v~K48ZA7FJ0vt~XZd zgoB+tLJ5d*bJ4MqGgjGsuWu2#VwyoH~XDqj{@^A!QiKR`;N%-c^5VU6|sFb## zBXA({wjD9l?=A+v`4bBpMI}6t4otp=_b9mW84shl6r>t_ZM8){UR%TmB%zCS!?OV; zyU~|Z>Stn+TBLM!k`iD@BAZ&(S;ywAc`lZtT^ zt>`kwjl|%l1zZ7={0Y^@as1hlm{!Cha7?X59$x9)7Uef1l>lQ7sKX6bxeYfMRNYCq z4;ra@Rf0PHwMFjFY`w*!MkzfFmk2zFGNt5P;ZKZ08;!<4j{j_xxBs2w8%80@OkmmH zSQt72ETv$1UF7oCC?&w79F*-WQphKdLElg^QZe$Bvv_+O`1NlsYzjHUqFcySdpDLh z8fz)Bc!oTs(aJt`;U8sV^}BX7R@1Wp)*eG6r-=6Q3!`af3(RpGJp$Qhy;GBD2?@z) z3C$45IEBq#!l#jdc=EI$849CuRj&D0tK8eWl5a?++yHAjV_~_Xk3()m6}goR1D1n| zIct&ES|Bb-4H|>uYy@Te%_=_A=#?S#Z-4 zpH+Zy#iks^hr5hLCs754owLdd?cU|R#$wof30T2p3(FvXy~LSAF(oY-3kQ+t4kJ6P z>|-*^ME(T@S_CZZnuV28pn)9&*~X#kI|_l6^H%m51yYa~wHTE_oF-CntL=)PX&I2_fjC z2tKl;C?-9wg}{)|iW{f-!znQ5nOPX7T};5OVY_XL!8;xF4nHKBQq-GFff1vb|MtA% zZOUMYXxghF;rQJu_nb%Ypz&zBjleSet!yCG&};A%qL(Zfj~W$^n;Mfst*n5GbfL3G z9UhMXN)FxPc-hLR^Kg3_X03i7Zw&fQP{NG+K&6CP9~x0|k+hg$F(Qs}R{8w$ z!H%`527!z@5Xf#uAj;MXYb(l9yu1^X)V&>L!DlanmY4UT@+D(%{?|18aKBDnH{c=eh^s zysCiN9=FQL;ChNf^tKZp#3BGT5-?kfRbFF_o{`5skNm^~b$`Mtr%jV6gqZ$(neXB2 zn?XI?A_y#)X=O*L@%H049#ndHR|AWjZI!#L2T~w0qE2}TMbHe6Wn1Od)4@)zfVgNA ziU*uKS^uW^fJK{}M7T_Fo99^Boy47Vatr?QFnO;6S1=ci0O@ht<>X=}LFZ9$Df6tX znYfisZY^=DAL?d~#x3l~C4y^c<0f_F7J;jnuZ0`v5^JG?TJ`V7xv@uH4+=>5q=)87qr|0It#9kgoK)GYi=DoBYDV%H6`V8_NOY zEwnO>DB&jm(Yn1slQGY01eNd{Dkz0N_D@?WEt;&Dz3sT0wR@%%pW6_yZD94@Z{ydHot(zDZDYsi+U)0L(;>j!7UI-x}^m=hVO0Z82ZPW5o)p4 zCj=mGqEG(jVHyU2O88fkZ$-K*zeTof$FX$|%=MS7tbvk!)|s@CQ;@V~a51e`c_IzB z1WiGejt)c(Y9e2e0qyC)B6T71ZQJR1NB|vnDX_z@TIBk6jV)#l__M;-jpFx@n<}OilO3ouLG){AkG)TqN{MpM;qcRLN$!%mAN ztI!TfZYCvIj1L`^Z5vc`AdqmU7HFInVV{CuPwK-E;MArr#IOoS3gRlVo(YC5V@jsl79hl!y;g56;`&6)Z&Z>sjUW< zq-bilO0~_vN;X*K(Qgj5(&~?q)opM(s%C@SYkcN3?6b`RXs)#4R!JT*15RI=jtO2h zz&KA$@oYX|I?~$=EN_#QouTwjfa1!0IQmzoDG^f7&o@(0BhK4 zWe)Oiv-w}sVY6~zYpbmCu=GTlbJIuKVKeZNwi%SoD?}bpo9>({qkS9rfg9KkW}Dph z6m@bqYX1(ayo4c&ADDqPj#Y$NLgYj*iu`x`W_$(1DnR*VQ?sbY}G zS3HiHWe%{Es1Sxn3t?^2*VgTMaq|-xiqt`1LH`gIPlJVHBp@o>>?bhOv)EAs?g^2L z+J{7ELTAdvqIM=Y$--G9y67$KBmqnkr5&Cs@9W;XDEMlDmMOC&cp_#OppypAnc#2$Ark2+r%uj-Ivb%N7`C7sCOY3DIx5gNGO=cU&+GaRVJ{S1tIKpGD|4`1(lP)!Ks zQ4XpJp`PSRpG2K9euW;j9+-Psh}_o^>WoTs0(r9#Rcs_0>PQ44Z$?8nu`4SJsQc(p zxxXA^I9|K}pI*y>CM1W-w-g9%iNVlcOv}JHR)w$=WV&(xiDouM(-m#3B82@&0s)vp z#*as`kApH4gED^s4}mPW zucvlYsNA)_p0AjP^k)GpXbNG&$i2+t7v|9t2e7>65VnPE&<}%IRgWVokLM^6cqafR z_&0=oAjCVyQIkVsW(cI9ct?^=Cm^iYY+#tLgm_njx~>alD`_dIi!-dKMj7)l?Kbs5 z27E)=AU8gCDYDx-8B?hpV7#-yL8L7*l$l*Llf+;ln)Auxjk zEHUURLqgdV64={OpoRo;Adnp%iiaE^P~;R4wZ;52a#ja{B;+hl43E&V)k9d%bnA&a zIVMzo@LU75_zRD&Mu26}p{y50mfulV19TZmA;4ln*~_$+I-2_|K!d&n%zdn;|03m4 zd_`Nf0In^*7kZ)lLgjv#wy8=uKSNwGxa;FX<=c~+D4aY5LywcxgDXo#rpUo@;>1GS z)5O_(!`c%=Sp#vH-Dun%aGkQiCCv!sMcztxo)M#W^DYOH@p!1bVFl%?d3tfhd?PrP zrEyz3a`ssCJ+njQw|_CY6urP_^zAn$_lCaoum-rBmew`&}Qj_N$4Ui6`0{_`4M-(WP(e{4Q18B(Gw?9aciLxYODm8 zmLJM+r;c=n>DzHQB4rVZ+^sJXxH?q2|BG-q^;eLHc%X3~gt8@+h(oj}*6zm}5X`$2 z0@)vi%DFZ+sUjt`gwg9cCCE?@u54$h94}%UII3!3afd@$7^Px#$3Pj+Bk`s6vFX~mJ^o?&vXfl!`;SSA?a(k_{?0TYY%&WDDQ2P zU(=%yyZB=Ius9PQ4I?Ll&jz1LjV1J7uDl3$mIJWHXk#~B`A4&^3wg9=2Q00xjkOY1MDn6dl>Dh1^P;Wa)JfUgD>BGZceJ8l+`EitArQyw$+U?y|8`vLpKA+pA5+ zi!g#I9^U>Qo9qHmk;YMhj2-nUfgFBvNljk<~I>X_xpVhk*T;3>+6Fr*UqR7GUaA49>j8 z##YgS<3_G8M2;GPW$d!CyC@bR-|puM3ZXC_Q)0Mk)pPT@dsW}#(KvlqJb%4Sjq+0iMSW;!J6nduVBqS2V99~7{*SMAAqGce~&p$ zC9t$_Y?v@Z{uu98guzZTuslN;TS1tpO2T8jUIZT-568CPD9l5yaUU}vat{v3JgR)c4;!kthGx~ zREt2(xME}C?YS31C#)abTows zrC$W9!Yd4G6#S2g@JGgFv;+k(&nHa2F4zkBRck%$o_09DOJK@OVNAzQ`9L~%8IH%B zFmB893uC>=Ino?T`1MTZT_3UF*Mb+X3eqr2@bWGY(wPdr2E2~^KIU2f-`2ro$Ss0g zg?|{EN3$223qcRg$#d5drN2iV$m1cDuraG|Uo-dD@xSc<>JJ_Y=Rcjn5T4B{m&=WEjQs8O0+EuozfOxMqMUZDHCCP!2u? zyfDCoHopBblzrf{!KYE2Bii`qoi`shf-i{(ljEp~;N=AYLk+eehR7iXJ~*qBp3~zz z-uBUm$sQ)(6kQHU=}7my28WmhuA+^jRNlr_fn%M+|}C!?uFh2iTqf7K7oUHxnHF)x?VP{3yQUg^ z+>>GQ3Td$j3e$aX71?3z8ub(VX+ey(gd6dCnIQ|5`Pne`5qUAJhI06- zeZaEwP{3r7CA4DKu5U&eoVsN^8sEz>Klzu5P606(ts#LN2*j)iW96a@=1M9?IDV0k%4f{YX))!3~Y{eAkS(;5;o8;PEQLja+$wM_;3_^3lU>;o zjWfy7_S#kO;i(Ux)$a>qHiiGY1`Y7sDy5IU5@6(^Ft$j?-@b({1A|v9-3=`OkADyE zM;Ye)+0|IBjGYK$9t~p)s50R4pw-GKeK9ci(_t7^@;`Q zSUA(Cw>*TldLBL)pJcZo$Ac~)$9vX7V-}c#i(zt;uXx^~eWz+QxX3>>ZZ93NZs*iV zD7H3kNk=XnT;yL`xX~TCN(u)qhH@^BZDTd5?P6wd1y|rTh&xF~q=m~_u@0YP6VoxG zXx4IfkT{XMGwYCtVsK?YXqA62ao;_To3L!}Di%W>xE;oDHjQfZEc0F9vqlFPx=NmCwc77<89mNI9hIz_|Y# zChrEuwZ!G5`(YZ%h08hS6gNI;E*hBlei9GH>>19wQc8yLo#prvxCmHUU^ok<9Cx9V z3k!$7hg{Wxiwp{9g(NQyg|`nj>49tyJ6dT%zi@UBzx58ju!zs>wII9}fpE8kvzN%r zEpwH(i`d>rBRxt%!jTt>Zy6on7X21>3Yht__fc8nF#>h(9L|nviF_XmV#UD9x`fNg zdnnhhM>h8X%jk-1l2LG3k}%=J>v4`qeFW0o!{wLnV>-U_3~nMw1ennyoUNpI_v6V4 zvf*indl!S*5fjdQNYP3V=9oDMhMizh0AU+S4S_aSw*jCnu=Z##2?g7rc+2! zBWQ8kkPfb(f4E%S9>-5qVE1S-F!O+L^rC$12TB-6_lbS%nBICH1!KG?TzjkBscH5H z&}2cynE_7pueeU@1GL^`!Ul)S{QmQLR3 zGtnP+i(vmyN<--;jz6HEZ-jQv zQgiRPe{CzOo8?JV#kdI8ld8VBK|>UT?B%vnF9(5yfe~yzvEq8jcV^v7TVsHtgBUl!3 zvo%iZ4kAB6k68}^^J@|Exy>H@p-+@j5IB=y^&ZeTF;Nj4P^nzX`b(Y0gs+r0v24e;+In#2SrKd~h3d^8+Kv_F*g2?k^CINavpw#_y|h_a zV>^z8HbXI}>+>Vn4jOOZzLFiZF&EeZ6lVjaY!@G}16^A)u#~(A?e29xcLzSi#m+@7 zc@a@j`(4Pl0K*;g=ztbS$jzUkvuQ8cfnTBPkNH$ld)7fJ36_ec;?0NQ#neHrU&RBv z1ip+cNxbNm+KL~~yS#=yYti#y>e2|g9dQE8ip!6@G68118Nr^T^o+ifkG>ZpAG$tW zzY0v!3X~b9X4DCbYjp0IMX2GfmIk*m>S}L5>GH_n;IdF<=wMfoj{Bhi)t49vN zgm+*|KDk;!Z`~i``f6ZF9|NQ0iXK^b2V7>X-IU}uAC}r0Av>a*RMDIrkv1kX)#vhkP#oLqnpUb(! z(RDX}?{npqpvf=ajxPI*^enR596wCtBfn6(J@z;ug?rlq>K#b{F1ivV?aoEzPk z9Jo6sRLi_XI!5Bx9+-wX#^IOa!mbE5vhb^%3{(Xy zx$v5!4u9LyOMi#(p8J&W;C}!o6%AT9pVHFj-6A`za5}m0FGtfZK5L&cKv%VkZ`h|K z>SpcYP5YG5y0Be*(3i?6-48o?;g`yEYxGVs>|(na2}>$UwkISN7Sp@o3|ak%dw!+F z1#JH(OeVBiO7*{tbj|&gr+=kHSD;iUxV%pN<>P85qC&YsFu;c{>lOReI=hxASqe%DC_~C0AQ_ zlULe_7^o&$J;JnFlMj84knOytR*BG^-^PEfRU&=%Y@_l!<2WY%?spv8#zVhWI_nCy z@!?-X@5F8V>93V=-Gps?<=0Br)C$N^4J+KAT==i!*&hr@+dTI@GhkImvEcS674;VM zUyg%|iC$=&H00qSQ}&{QNw?g>$i z6h4Bg+ByN8aqO((u?LkX-IG=Pk%P*+y4tP$&N`*L?yar7Po0vhGjHYF>Xf&23%2kF zzEMJSX2xA1M>C}VZCAM?JKmBB6_uOI%c;-dR;vuy5P7do5!NAf2% z_vM9JbD#QzXzp{q`~RBzQr6bo=WV9!EV4&B9>*`)+-KvLLy!M;Z0?Rt|J&S;0wYsh z!r$AQ`vmTNSovM|?MH8Zr;vC@{k{tY+bK`yyOQZPG{P{5B#8<)rD^0n|@Tf z>0CGPlRqjCC>JZJNL`aq7x8`xb7yhKY=(3mp`;!tHFz)>b z<~6YfuihsYW*bq3lM4TE9C)9{o>0w z1%_Da`OCv%yLc!4v+%NG4&$|!w zVNgH``|}_Y_6^XEhCPWfA0_O{Dt_}9Wt%Q|HQ#y`25nu%&zwa8H?0)5>h5Y=rB%si z?iUuCci=x3>W@zkvUV*^wA+&U?}vZvypn&=sHC~<;ksXy_`tU@^prKTe5FX#qOXyt zG(_R@m)WF$1T>}PnH7BgugYUOmlgcfuT<$)@T}ipq~YL&kycNTM(X!gTkXRSS^Lhx zNS&JhleGK`9gLJy)>iw<+S2p*TOvI}(9RrI`rWbiK~B`ZGQRN~T6+QK!yU?9x(v=| zIh0p*#xnk|1HH#s&TZ%6Z1%m$A3CoL)g6A5zkMFwV#J&L*mfH!#TMWwHK%NvNN2whWB{$BT_mwwOjr1qIy%3r()4;SzT-+xgF zGsm_`jm+QIF7@s5H!mrZb8|6UkS2Z!(*l(H?*F}qIRdX3L{ z)ysF{lfR(oXyE0TfSH)=zDDAgHd@6m#|2DGJ9b~SK>la63XHn1I{dAx;|~lE>Y)fo z>!V7xdG&F5jlcPa5_Ja=b^PjgN)MM3e%JTPV5Q`?-YnY(y;%u=>avoeyYn?(ds#`- zRhRJaCM70l1q2;0VHH8M@3Z(fS?tASJgW&~pOqzid6SZ?n_R+wZc^s!eq6@W{zUlV zWqiw@7(gt06&Kzr#jZcU8o}TGI_mj;ODW=+k&YR!3Z0H@@%N15da=w-4gNYtYvcrt zJXp*lt|()DZ-PWZVE>+1lM8=w+*}&Ls}4lX(-lSVt_P#KxGd#i&B|S_or@#*vtI{~ z^+s$X^M^;eTvRC0cR|d%FgPGIzDVZ64SyZWq*4bLf6q9)iujpkWwh&yP%?R0@XMt9 z*JZ(dNO&Osd56~+KC>jauZn*r7hXX@^{g4fH(NbJd0k0xZ$gmC3IEE{WhjpY1l$QT#pQ82b`m zdqWxJ`o+r;+k z(u-PrE3tq;MxTbijz98cd{@QaGmcp=^1NG^8vT;bqyJW3);*NZtNvE{+|e7n7T>_D zN*|Y1yl0CtS$EHieDgobMBRINGLMU2=n&_7xmujNa%G(P`0Fr02$jX*FaDl!yqfz) zhC0es_d*0e)!XxBU0wu#G}g0^Tb?t@i?N=4xpylfd^ne<=+tq#51-@j=+ppR`Ez`y z4qwDlpW}L0HBo1Hj;FY)qjjGz;;UWNVY)?&_%E*N(>m8h+b6lH-Y&YPXSdI~Lw)BC z-KiWr?x~K;wHWR|qaJP>S@gVdWYKW5*Y<3^<5;B|`4z9lSm*=0|29%}>}(^mX}*YB zPeWarNz56DP~<{r?v^S3(PzrLS1}Qzv9Rk?SYD~g8J@JX&wWntkEr?$|e<>s7U@|6B85J`AqFCfeg<_xI8~K2lX5(>*y)_&l`=g9G?H za&&L;!>VdCzx*qu!#PDyl%u=8d%3%(I!3pDt_bI8Xb*Sg8~&ZDV&T|R?KH5{;tnJJ z;WBi|7i}){skum#NO~52NtZbnzZ{-(`FEbGNq24zKj*1Nh3uU3zlndJFjUChb2uI` zPuC^P;jbD{rcK%WH2qzh&F}V7yXQXQ>VoOt~`RKN+>}>DFls^x{Lz4Z<~#L2pmc$87i*M-dHn~myO->+R~;Q0eut0R-E+V!vL88L$CRh|U?0`0 zGtS}<`=~)Fi$RUdf4K&RaT!_oaO55vrR4OJ&H%1YVdbGP;;Uh1-Tq+~kPKH)LSz?2 za_}9lLRA0~Y7}IE#?%VzRyA!JU z$%MPagt6dzS@~jUeaQG}B$9)v#ms71eTk;@RtIrtxayVup{c?Q>6A)S- z`U;4%$Bn_5cYfr>D9ZXbGkKUv_4oTk3jzbZf}dpRbu)RgN#*?mp>kyYV!Jd4OdUg` zp1t!_mROi$Pf04wvZqnYvQa}xaqRSwc3zjoEq-cW&mgEv!g35E8$6Fs@lzwietjZ> zolj_OZOy;#H-FNe3^Lt!z%;R|b9sfIde6|8N$lr;TU$%^M3Tr;?IJ7Zs_d(K&2Ibe z71mEKe9}hi21$kYY9%p>!oJ77-%?|Fy1&{>_v+)k#9uY3NB23+{VCtsa%ny7j%^c&1e_Wb5#nB7Dq?zOJ%W-4|C0R__VrZVHcYHj9TLaYa(4~So z<9M%4;$8?|*5+&_Gx);+>hHQak8dAiR{wI*edx!B1gW9A=*RffAhoORwMY5VAhjZ3 z!{3y!VtWNLpS*Ojy?~4`*OMm)tIzAUWb(RTb+~TlG;Xq}b4?F6OW_6~oM>O*u&aE9 zMV+SGl*wByYJ#r&G(N<7NSn`eE$)uPWz|?4?fP1gs2k(hXQJwzhzKGrzU80?0SR`3srmSW=!Qzg{m`j z-#)?{LebS#x04p)QvjsK7ew^~}X4{5TCW! zj{isY0zVt6KCFwH$cJ@R*XhpP&(C#LU)K$r$QO1~AJDD5fBTVcYJV49Mk+T%tJON) zgza_FYA+YvtnqK&tq#!rGM>lZjg&urAAj_2^?lvvDcrM%I>A%DPgZCYbk7I*lRebC z0)I+rD`?H5Q9)-r#^1*)d!V4tr13L7)Iwcq8h;{24fkvq=hSdV8hiUcpO4PaUJC#i2ExlC>zq^mxN$0nO6#4e6mcHd8Hf2&$sfToYI|}K? zKd3f1KF2>~_1lkM$%UC{RG!KFg+8$L6Qe}zo@bbdT}AA*jIW7RlXO={$~^Rb&l$b> zJ<3Bcf3h#)AF+hL)=%~IxhCVUe9OkpSHrP7hVr~VaE{|f3e|>vts*?B{;>5bUmL5A z(49<@Su>YAb>HGy{m`1CUnZ?Vy4P^Bte-ki7n>xsm=_pC0)wDsn*2$YN;2@!IJlwD zM#!|@Sm)GtW}Qf@$5+I;va(WObNNq2jGIR7U&}(r%RS)BEzPrC#nD)}WR0$W^<5-S9 zsfZTp=V^#hLyV3`2>EZNQ|teqO4kn{Ro8L%ZeKG%9qp3)_fcxm_*{}q>o5-22I4a! z@9o)mJ|11-9{QZ(n4H+=a%pCG!EtJryVkJ{1M@$g*WFPKI4M8>I85d;rm)KXe{5ZM zKvX#sXWxP%yhjnF2+~#TpkgmzT@)41a-QYH?%8`+Kx~NEb?k~~JI``gi|_}@OEQzmOeUF3${s?COeupSxw9ZHMnyd3E)bh0(l0gCH7*w} zTM==G{A;Sijg#sGQ(CB}o70)47TIiB`i>Iox_kNu{|_B9)vjC#X_Q3r*)m`c-}r`6 z(sVYxsHqk=+5v;1va_2~=qQz|rB*d=kJ3?oT4F(&u|%SbYyMfFeBHnbB!Pvw|}4R`>|u?fG#rtUT~`b8v-tF0D}?us%n1_ftf3|5f>I-pmVoPGc-=a4ll zkSmdA9`P(zV38=wtgR+0f7X_32E$?tKOQa;Ylc>BJ_>f6_p(}Zgi9?*njzU?&wi;b z*%8V*A|~0<4KZeef7XtcJGFu-u%2^q_gXRs*4=tUd4D`oi%LgfjPt8au~C@KX4Izs zQR+NnPk_vtrn)KPYm;vswX^c9CMDFtw2Z@&^XsU?TrQuLT_=wB-zw}d`PNm3DTQm% z+`4M%lVURh>&9 zXL)WJOsGM#8e#B?s1FM#yatV}uNF1_RZXYtes%h@zB=1=&R6E@AWz&uOgZ#(q1`OiJmu7$vD4aFeT2#is9A_OV>F(gVN@zUj7xHiLPUx zA-hf-SI)>ibEPKzJb~^uR_ho)RnQScenU`HBA^a2YW_;eDsRz{5FLD@1V54_dtM}4 zR{?ZF5#!i0#AMG~Re=`8s5OoC&B#-xTc{f_T~hb&6G7eIj#lW`Nc36~g*O3pzm?ai zd!A}R@OP>}K%1JV`P)~q2Hz^d2ad<=u%6Fl`OC}EAS+*%SC*3HuB$?%Tmjt(x6Bb} zfZUcjjx??dx5LS`DJ;wzsk^#0Rcje~{Dh3?q{(8%Q$KmAZ*9CQon6V4oar|f5AWD@`IYc$+_#YyA0snC3cUkQH55WvSD)5ueMRvpPTSh33q0oT%A@oK>hzO3T^UTrMwR<>8kGcobKAuDiO(^YL$aAQ*Ip)E>CTy~v9y_D~xsO}!|*x9aBgaTB@+OpB91$n8RI z*Ro@qZD`<|QtouH2h6=fUR0nb#%#~+6xtI8|1wWXz_)sHkVSJ2(QiG$VX8;xda8vh zw(P-Wx-UeKUfGk2RX0CN;zLR{46&HxiXm*c7esu-gM5EcBb3t~qAst-RRwOoA5dOK zxl!j?m8Sdxqpqcgpg@~7&_cnmfwaCS#&G9eYW^xs>T(Wj7lJmW&J}d*X@cX8upJz_ zLxZ7oLQpiC6>AlnjAqU;j zE*NgO0jV2q8%0Wu5St+d`1v2U)Lrn{-}HMPJa*fFMCfITJ9X);?r_+?SAH)kL_vMj zNyRI#l2V*0BwdfMf_B*0V0ME)q-SVy6PO_x?72Ig@1ri)z82&fB9uDVher2Ri+lft zB(qu2)4XQ(Vs+hUZ(j)Weqs8juiD>j{>t3dY@zo3)Uk%k^iMyvmGabu!uzX*gVrYr zR(nGV^JSC^WVDE)YOI23b1P>r>hWu6!J-pgI60u1&&EA@ZUS0?@+W&+1h$d(^;ZLw zVM%nSzv@}7VI1!=W6;bp92otDH=G6FL-vw zohwu-J6P@N-ejpP$?@`%J(<@IS~D1nz|9(E4_2!bj!=WSLnu;CLq zj8q#JP0uHL2xc|3pZAa{XcBseLuX45c}}B7s=>wjp9}bHS!uiTN z;zM?jZX&tn(~9t*oI;$vu>&+(9T`SJ12)-Fz$mySCfZT-C`dUD z_aH}MUaMh8vq!<9lDL>dK4&HD==dmzcTzs8GFq*vytk#{qq(EVZWoPK?G4IVBc+W| zYkSnN&-j9GyX z$(S{Wv6l+|)!+rB`UsoEffYuIWvt_He5`X|Mnf>28K;(aJZHlpGT1|#U@8!={?9G{ zX_Ucnl^G>CcQV*ol=Mn~Phxa7bxBaWDiHTZvFsr0afoliq-9fw zM3@&fzS7D>*bqTq=}e+p#r0j6}UZvmk%T=7~(d=k6`UB1xbB(;L_^)p>a!fboNmYyZS z>6reR@=s7h)D(`$cC-`OqD0V1JU#|B}`B~9U?vl3HdkqOlcD!_vxSM?gUKn zc5XCsA~0SkNSh|AA;G=;9Kn(Qc(eSyEYV}$mMAVszMY6IfRa9zq-K6pZjxHw_a-I* zz?zcMv8{zhu)kyi`{5(*=6v=HP-=gq<&#j$$lN7+>Lp)%2m*@t%>E-ioCLlnexxRo zp@7{!(#XlML|T2IQ@;*p63&Y=G zNMUvQn^&gmkdsxVyR$#GqvUFIzNPE|*l=LdKg(&OG9XDTwpv z5eGIeaMLFq;v%!Lapb!$k=*E=noSjx)o!j0CR@?jayG3`R%g1bo@AAbhmNMIQ*A%I z39_MSrTqfD?jv?E7#P{(w~$|I%_G4O@Upk$lA;C~7rhCh<=eeH3MHZ#@4gEWqG=NZ z5wzk*{~#KlqLwl|r%fqp2PN$-Y16Q7tcGGZtMzT2DLl$8-%_J#*w4K4nr2SJn)SmQ zS~Crc+JUI$PCYfm%i%SzCHHbOci?4%dTz&X+d%coKCg7*WrenETVZ3ap zzVHp4N&Ba(X*3-bc|2mFuYlQVxmoEIO_`w%ak-aZ1$U9unefWjd`Sams>OZ&er};C z$7<7yJ$VsCElg@#W%&zoo~5R`){VD96P`*NXQ@9M)1C*>foL_GhU><(*GINo}*4xT0EhIxvIOiu%Ttd8`n@Q$ZEb=Ek?Y5 zv6+%%!B`5W84NlfymcV`HHIgsM=TiMXQ3A$+lGC~qNush-ep+=yLunqAASGp6s?$x zP1iEkSVJV%?$!A^(Vd>mg*#8tflc3l%Wz=t63bT!%4Qw4qKrFNLD^r`%!|di$24vp zmI)0W%QjA{Z=qsfeYtAAhf{8Fcx7LBo3o8>5|dLk3Y)J6`i*`BT{IuO)|Zt%kj4jq z_(#-#zIszxd4XaGb+vg#Ye)^zRx-0@v-B5qjnqKzAxN@POu3)(l#%NKIE_lapt%dw zuCD(Lmwh0X4;5j|E}04}RQoBbAJWBx5L8x_r4bjRXp4vH6<=qCXvA%J-?*UkJ+5D5 zBl=d7f(m0T9!f#QvS`Glpqe4Z9zWncCFdU3Nu=l#)R>T1%uYk?`Ee8+OM1>Wh|(GC zn1qT>amu;;+x%cx?L}&JgVt^6d${m3nIR_7beliw1xSg{57cy;M4p%@HC zSuvkU(1l#sv=MTGn{bbMEx`hAsSj;gqPmrDv)*VEop|B{I#>9mcXdrc&hw6d{d{OE zgNs4j(8#&zf8*aED&p%AINu$oIRlo$Z+-Y*3S5tw-M*HEeNSsjmt032ze67|;KUkd zpMFw5K)U3nmY3|aX9NC~>GT4<& z@?NGc^ei(-$~H_)1MpYDlw?IG(WzzXK+n|!^T=E}k(w{Z#F93Y#x7T*wX3*I2{$qq zgyX+-c{z40Ue6=P6)=qkccfA)@S5PH3^J`y$0|Q&&>#Px$1JU8Y4Z4LV)J=^nwr1q z%;vJaVcap`vS+sJF8<|YdtI1ahHP&b`+UdTUIWtD5`60I#m+PL!j8HVL~)w$!6A^h5= zAsV)^T+Z_ia$jWel)LD#yi?)OLR*@<8gm?ASHnV5ZqcpPY8kf%+umj$2t}zsu~6p2 z*Va*O zAZi{3Q#1Y=#s8+RP`+G|3STeWLT`z1idwJw$9vV}ie}OD@lw-I6qTgfvkg}ysiABo zVv^K#h_Sl(XYG6sM2e-eh04yRA&rw(6rr%+TJh7FQLUm{wlF0=S!Y8T>(yApQwsYX z27H&EH2QaSxck$toF=(s=YvBWtCG4a-v+gg0iKH7SwWMi{YG_&yYqKBqo&aPjcN)G z`VZKo{_O7B*%~yK^_fZkZc?|pHtzH-Cp!5$+fA!Ct78fth_g<1Or{Eds3Qti%$43L zh4%jef4bJ40=K9wm9^(6cDssSYprD2HGM%#x2RQ>2IuJFR`lO#*i+K`@4ymbNmcwF zj{RZa-Hzkt+;5Zs1>j>*+@9VraG?s0ewfLp*i!g5xB;30iL&RcsKzVSLsS!hwOfRY z@?~6M52CGV6{QKzXYnfMgj%W`5h|(-dOS%~`3F2G)>ZbARTeBlrMIbJ%Aqr|qU%ou z3hog*D5JchRZqowQE7KZRHUXAw^THVUT#&rgFZ|Y^#tGLc16yn4UqK&_>$jt)N}5% zsK;QU-rLnEWx#1k`Oab%go}#_%I!6Y@d`cPu6pH<@BwSK8aQj*C~yb*)9-X)t6E5V zS=0h~wWw^fX@a2TOE?#8PFjXaS_TxRb2~tb-(P|jC7~$!?!=O8&nZbvc8CS#{SbkY zmhDvYN9`$>n~CEk!g1bGlj2y{Q(Tkw3DL42@gbF|17hsMNqV>wOQb(fQq*PD&9*%I z^(2+rrB-uD#~jCJ&G?hM`tMQ~8{Dt_$VrdEV8%@%K4->_BELOq-})`T%UK=|kH)T^ zp$8+;o!H?MAOLeSw(wl>jV-+Ae{kgOampGafD7L+yiFJOsP(iqD9V)^mdV(26!<5c z6d@<5(Vv)6=>+xoQ!P@A9k*bsB(YunBC*+XZ16q&$L2Pq^?#}*w1p_Ed;AZarMm!c z+aF0*1|TL|Sb4?aFX-A6`wEzRlC0kxcBtJl)V*HTM4Us+4qC{fGD_Hu61 zYndZ!Ipacu4r005z+Ws62B}Qfa(< z`R)9)lJ1l}-$|nb2US-k@t{DhrWdxL-as!8s@}c*B<9P-tS~Q-n4_Jg0*0}22e|@b zQfEaGliF7bv8=+UWbepiWazd9bEdxzDMg);U_Jm^c?5#?ED_U{ThqE$&H%2> zvHU>r7V2|U4K8|nAMd~1pMIc_RIijwu3mjW3%G}ExcBTg+J00mrzKm8vQ5Y6#Zh#v z*89lonCe^mB(mV@5c_&jDfNB1Dg|(@@#h)*+E@AkYz^?SpyqCV^H3}uU=48eqwCP% zV``+~6m36-$?N$(dVWkD)_7Fo93-3A?lF8Xa74(XuKX~E(9;KhT4?{Krx&(zJ?(>| z$RNK8$M08*{y46d)uyAkq=jueLRrVva@Bs|NvS*kfHh(sBu4NZ1a^vN?*#jYDx8F)wz`SdoK(Zz z?Y}D!{1auJRC~CkHq4E59d$dU_9^0Im7$Lq#oBNu9p>%$X1>LglRL=cFSV$Wxq|{u ztDfGbdqN?6p~c}c$`#t<-aFdV+S!-x&J1-mj^7a^wno*HE*9;<{>NYNJ|wJ@3Ozt> zif)l=)5wnA{DrmF*X^PbWt0n5J*`$V{t-XylpTTae4@V`?W0ZfkRobTckSLvt6qi_} zC>1)ZP6??aHt=%VpdDKBDtm_V@gN}l9UHr!4xd$@xR5s9JX=|I&#JJwTd3E0>=A_R zq3P$UR-) zNc}cRdv1FHi=1&s;G!Df`{rG4Tj!w^a)qz{bbbf?ip4L%KF!=HYBBZ?ct>~FJGoQ8 zOW3a-vr!sSN9-+V*V+q1s=Id&F+to%jJc?{$l)&W5qY}KBSvch4CS~Q2=6W z?}l%E=^*0z>RjJ#NZr5sxwsn}kp4Xbe)~qMf6?LD{Ykd%<9d>dv zJR+Z~YHj7nZ*nzOz|O*gXSTxqQXsC2V8OWYwDhX#nQzKRf15`a$$zwSu(9@U5{o)$ zzmS>}MD-J8U&XTY$vTO!f~^Iimqb{9D$YD(S#k85^y%sToZ`4JAC-KAudqKzp4zho z>o`yOwUX(GNruivjFnqQo3E)JCGz9L;s?X>?)?xK_Ij;ssv`&Hrey}RSx3*VsjH32 zYbCu}_XmPr-nAM(pq%j<)EY!T-ZYJr*~$8@2)Wu zd=)WC@GZpHaGn8Tpk=xbsufbKNw;HBqErU^NrdUFIl`H(DD8&2NjbY(`Wbu{TIjP` zNQ3^t5r=-O#nNBhZez)UTKuC181O;~900zR-a=+Wxx0jWGT4u+<#2|%3td0xrW)*1 z97(3sZ8;}5u^Y;kt){q}>QLps4Rr0M`h(lfigJ>W9x^`jT%;Pe)SjNzb7f$@I>B1h zr@hEDe5B2w!>RUH3)@4!z9rZ9Ztm3Xw(4vgjj!+tCEe=odnH-v!d9-7tPEod5R

lE6@Q5HU&Mal}|0&#;np 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

wl_pPRh=fJTaSJC=&YGjZT>SXSq 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샪w*&%|oGyB>BVfL3G)ofie&Fm-6n%Q?i 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%0AKT#I22gYW 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∓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�cXGmkA#(tmovk?^b*k+)kaCFS#YAXIM})azrmT&6c;Y#m!Y`|_$V+WRqEK9gcu{#J{yyjF`avnYl7f5MM?o6Q!> zajdGz6cM%gMT^L@M~lc)$iJ`ngqyt5X?53pEh2WJlSZ!Or;L#<>EBMQYN|z;`K!e0 z^>ZauwUW(rJ0U8>w$LKX*iO*cRov?@>kS+|H^{S>M=hlCRouR&%dEQorLVGK=A7q( zduJ|aZj`i%YZ?8LrF!%w+Ovu4 zVb^O9JEEUw8D4vdVn1gai}Y1Bw$f?rT$NSEp6k^33%1o|gV@4x-C_eR`GQkt1zY_x zE|~6o!IQCCAL?kxIW3|gJA2ctFFC`^nO1#9&!kJN3OWCisL(I_w1^C!{X{Pnv$^K_ zsVZXYJkLpgT}QtZ^Ag{EMe^bt`BIBW_<f^(!vqnPjVwu3AKFXfjoO#f3cf zyfg!O{j`YKYsr+hneW(>Spkwfu%N)YGXjXRi#gs&aG)ef$k~RNIY~s^LcR-^w;Ndv0B+FJ(bx&$m+f z7xZR`bEzv)7MGQZRZR_M~hhu zdXLex7ph54=?^T;=bY4K2dn&dTZLcWMXPsk;jx}uj_~so_ARS^^K8NgCejL4g>=%- zUD5JjEuyRLR+0TXHamEbRd}~S^d3}`JxlW0V7m7m&zg_cTFrcOElnxqR4snDCX(%U zItNukGpma1^LoHe&X^NysWO6T`%bRnrDc|_L(8c9F5Vx$s!#d5II5qXBxrVLJ3X@7 z>}GryPtWW&pKq2LFTdrVzu3!Gaf&^B@GoB%#=E}TZ7ytV)JD0Ij+q<0jF|`N#&I*; zsN6)&PMGZtXAt#1VRkTLqABf!IV!L))yo#Y9X^hqt{3rfDjhpvK4}c-Kn+itk;eYd z=*g3&YSNDX1XOXf&}MsQlAT|ix;}U1>bD43s zkhYyNBmDaCme1;D{QK!sW{y$#Ce8lAY~gqP5vXHdDx_6Em}CstPu)+Ot^8K<-4&-^ zxsg&%n~RM6LaI7#b~FOhDCCUEZxnBE#hfu)82%f6Jy#dlDw}_WOzLt_3(EY_OfkYg zrE@=;V?zhmNZ(@ZchMpSHl*f+{)+sTWH0=Le9$`AtaIFv#?_5#Z%2D?nuSJfA6NRH<~<+77VDZ)V>U7x{Sm{(@$1OG72T`p z?R)0;tcoS6Cr_DtLtF-)T7g=KMQtrVrycSB^(h z{(Upd_?ln0y>E^;21QfrTJFoH(KNc2Cw9OBdb`#%?HhY(i(~u0(~li8T(5IF`DfuT z#=rAw2v6PI?sTG-m&1(ibf?x#G&*&s_&T12!{*W1I&+C}dhUl4)EQ%Y5yg9{JI2~9 z>S3tS#>uXE_)_MkPI7qy7k?+>~s(fE#f z5*hTpzZ%>=^IO@DaE+g;MVL+0A~JRq(MC>x)q!4asDeX-JO$j+H+D#O_JF&9nU6~W zz6O;vRObS=WLOPel|ic-sTNH(N4n<=CTLK_&0kyx8>x|oai*9e0#!JFEzi|IP_1fY zJiLyoTBza1j% zJQ{0#t!cf;mwtRyO$t4yZ^&^8yI+fF#ik=CsL4<5gDInxa)!(-v$}G$7Lg{tjDBjR zGU{daJV~90MFi6%yGk}145j^c)w;=o;D0nOq~f&fuFSUT z5wFH+3y#-SB#e-~{KW;XRqYhNj2hmUp6;NMf|9nMV~;2N|Lvs3XDed1)4C4oRU>;O zJrt?lHkJiaex#aXGz+BA$JNW7er>{K&Y$ILo6eu`dEyj^Ujtjtu3>l?9I+yUIFesA z`}}eBV!fS?lN3KJ(oSYa6<{!m`RT*&S;)MRzfBFNsfarM11&>TNPYo)u-Ot z-}$?RnE~PC=%~EuHB&V(YERKDj(Xynetw1LH77lfvbKuICLX+LCVp|2v%eU&%8zBQ zbJmbsW29W1^gnA6qqTbs^;fEeVLwF^6xVJ+rKCdCE0t0^I;^+?u9Nfw;_ofArpoz+ z)YhR|8-q?#e+Ngk^ZZq}(R%vGp*k2po}k?v71FwkRkpttQNZ;m3hT^ePd-60o!LNx z7cARXM$_WXY}+_Nn-KNmEvs6kx9DzX)yl{_PA#K2>cxXrRNsR%DT<42f1H*_sT)D} z`PE+jHfz$mi9!6jQUg9(x~Ts%g8XPgS2c(|kkgi~JSErr$~GCe;0m9l*|Cq7xh{8A ziAIxN$c=p)>#%!8))wmhq+(wqHk$IJ`qZd+o&5u;iBUfs;x~jo*qPMB=cGuxd=IdE zlx2PiZXb(>b%HqG8@@*wR~@1+yQ?nab6Guod{U2qsSrl9un59X78XJnz{1-Q;#r7= z(4B=j5EKiuA+%*76G9jZZ$NmMg;@|9vM}=yB}S`z(M9h|7d_2=zD$d8EY8xRgT)uL zh`p_k7BN2U-lsV+DlYn{zOqGZiRU6WU&MbN@p0}~47=asOQ?5!#(zS$VpN8ayMQM5 z;C*Y#0?O&3qWb6lFL&4ieyfhh=5A7S>>A-w%uD+Ede`<02wXUTq5tCBfhDCpZbkyX zVm;P-Zj#scb>;8$ZOMM5*(+7-*t^uQry6J6uW?Q7sm2-szxA~y!hybYz87!yWAuG3 zYM!7)wCizl@5SH$B^8}OuJOH9eXquA7h4tXW^S;*h|Vi?AL)*_7U z9z=%{RVzQoZL#&?i>~`|%Hh@JIWL*aSgF0Vh}3OFl$HA61;@jGO2(VdbEWuW->%pD zsOJ2g<~pegvj40_DNMxw%0A_$WM7u-&VIbFN;A47>L)wMZh9W_JS5_OW&gHXvR`~o zXQ%lI>Qum=N3DK1bCf0|s=*;fqP5pwPOz5gp#1z5jQGFBi!|xbdN7B3L zyzXMpC(w>0b*IY_Id|evrxGoqN%{IT!rt|uM-r}zwMoO=b-LT1uRC^}r%?lV*)PbT z%mHecQBp}|1JszN2dAHt7g%?@!)?>4??81YG}K?(fYGY;vzl|!k9Q4xZF+N+l(F+! z*X*ZNjuG;iewKjbIiAM~8NGG;E?kz>HwM$dXVhCEm-OQ*BtGbQa#h?*Cl1qzI}UaQ zIn`XFU2Qh_bXjr3_4yEWjh#(Ta(yyPwe>Qh(_DLp zs~Pn|L+>BMg_BhOo`~qIi}#MXtN)X({!^~mqtxSG#)$E*jmc_Jps^#9qSDkJqyBK$ zoiugTFg86*mtR%mjpAo%@Dx>P?7`ov)f2ejPJc~>dHKKgjPAgfpK(#T`oha_4RR$; zQv?07o_~dp;NiR!*)J)7a(l#3=YF3^zQw|S`+Xi`NxLTrYt15#)NjNAPHgHnRPKqf zM==Y;2WT-O*fEQw^Ql>cjrEC}9PoAFxcz9J&sC;!rBCLlh^zypHd|f9A^tb8RUAv;iCi&TWjSgUu?vj4R+b5G1#??$ zm8HU)!FY$WvRJqX%x)2Fl?B3U!1xkbWsYzj7!J-Vv%y&rxlq6*TV=W=SOVsQ+*X+) zJP(Yoz*IVgGr|7gIN@nvxLvDs2&aJ?f$hSnV0@ylGDtWX4A=0LHs-9lh#^qGM^a@q z`~9qo7yu3e<6EY65q-e$5mQ+v90P`%kjhfwDDXqzV&O>e!{7qpaBwqlj&O5uFgUxG z%dd-Q3dJK(q)P&Sa0oa>*Z_xuox(NWF~i?VWt{LI;1*zqa22>E*e-kl90m>&J`08~ zl}cMJmtPlg42o7zRNn_50NcUk!n?q&!DYf*!QtRi;mzPS;9}t-@MGWt;Wgk0aE@>u zxGgw4OBA_Kw1XmDcnP>YI7N6KxC7WJoC%Hu#|cjZKMr;Xr-3_y?ZTnegYCi>z%PJWx`v*so+xK&ET=%V&Nk2IB~pt;Z*Re;2`1T9X$RM zr$Av7#SkQT4P1Rk<^VVyTrS)PJQZ9f90Q&PE)|XfzYZ=Ijs#B!7YK)gGr&2*&9k7G z0Y$bbnu2G7(}n%Pv%o3B2KWuIQ@Cb3b0#=W_z&=GutT^CJO^wSz5xCgI7m3_EEI1- zVH3qMu&jz|zOm=C0Gy5Za^YRzxnTH&t&7+So(C=!-VB}(E*35VF8~(^uK~XW&H-md z7rYRhF1!T12%I8354;%c6wU-M0mlhX1HS`y2&aMn4YmuXg5L!PF=y39 zBt!8Y6gEjP1pGd@nmya{Spd!fmkaj+F9nwg$AELerNU9*W#D4rNbm>X0^xA*hv1ys zTz*|db10TWku3?Df(e{1><|73oFZ(1SAd4M;qHH2 zpD$Dkd`faudSTOXS-1kQ$@iQQW@owPMLVw5-*7tK;hnX9p^hzahx^>&DR+3u9o}|_ z^%v>%!S1lFJM88T6WrklcR0Zv&TxlsyTj!=%(AU_D@xqqK6iM^9bR&Wx7}g=#qJ8Y z!?y0Qn>$Q!ha=qK1a~;Y9lq@jmrKao_IkIX#2xN)ho{`(C3kq+9oApsu7Epi>khlQ z!vuFY!W~XnqFnKpRX=~S5BBzUwRAeXBkH{tXHdt>DvaVX96?R8-}1)D*dBz7XiSDf z`TOpvFKXXCl$YV?)+GJq2Eq@*J?zQC(Ys#icWvCZW;lZU9}M?6{_Xkqd$_wZ+D SQ64zQ%{f`FvojnM>is|E!pN)u delta 695201 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

t=opGetDyACe_?7 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%0DNAtYV8=JfsENor7uBUd0U$Hf-6ec)6V1WvOoK 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

U;ZGS<)iN+wk>bRmDpK$~-?kmcrsVm; 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 R)`Lq-E}3hu%(PB)|9==?y37Co -- Gitee From 02b565ff7dd254ccbb34b56a33ebfe01c5c5137a Mon Sep 17 00:00:00 2001 From: binaryfz Date: Mon, 30 Nov 2020 10:35:21 +0800 Subject: [PATCH 2/5] add third_party --- third_party/libnativehelper/ALog-priv.h | 76 + third_party/libnativehelper/Android.bp | 123 ++ third_party/libnativehelper/JNIHelp.cpp | 407 +++++ third_party/libnativehelper/JniConstants.cpp | 287 ++++ third_party/libnativehelper/JniConstants.h | 83 + third_party/libnativehelper/JniInvocation.cpp | 321 ++++ .../libnativehelper/MODULE_LICENSE_APACHE2 | 0 third_party/libnativehelper/NOTICE | 190 +++ third_party/libnativehelper/README | 11 + .../nativehelper/nativehelper_utils.h | 55 + .../nativehelper/scoped_bytes.h | 83 + .../nativehelper/scoped_local_frame.h | 39 + .../nativehelper/scoped_local_ref.h | 91 ++ .../nativehelper/scoped_primitive_array.h | 147 ++ .../nativehelper/scoped_string_chars.h | 73 + .../nativehelper/scoped_utf_chars.h | 94 ++ .../include/nativehelper/JNIHelp.h | 300 ++++ .../include/nativehelper/JniInvocation.h | 80 + .../include/nativehelper/ScopedBytes.h | 23 + .../include/nativehelper/ScopedLocalFrame.h | 22 + .../include/nativehelper/ScopedLocalRef.h | 23 + .../nativehelper/ScopedPrimitiveArray.h | 23 + .../include/nativehelper/ScopedStringChars.h | 23 + .../include/nativehelper/ScopedUtfChars.h | 23 + .../include/nativehelper/module_api.h | 23 + .../include/nativehelper/toStringArray.h | 78 + third_party/libnativehelper/include_jni/jni.h | 1143 +++++++++++++ .../libnativehelper/libnativehelper.map.txt | 40 + .../nativehelper/detail/signature_checker.h | 1441 +++++++++++++++++ .../nativehelper/jni_macros.h | 285 ++++ third_party/libnativehelper/tests/Android.bp | 74 + .../libnativehelper/tests/AndroidTest.xml | 26 + .../tests/JniInvocation_test.cpp | 95 ++ .../JniSafeRegisterNativeMethods_test.cpp | 1282 +++++++++++++++ .../tests/jni_gtest/Android.bp | 12 + .../jni_gtest/base/nativehelper/jni_gtest.h | 126 ++ .../tests/libnativehelper_api_test.c | 26 + third_party/libnativehelper/toStringArray.cpp | 53 + 38 files changed, 7301 insertions(+) create mode 100644 third_party/libnativehelper/ALog-priv.h create mode 100644 third_party/libnativehelper/Android.bp create mode 100644 third_party/libnativehelper/JNIHelp.cpp create mode 100644 third_party/libnativehelper/JniConstants.cpp create mode 100644 third_party/libnativehelper/JniConstants.h create mode 100644 third_party/libnativehelper/JniInvocation.cpp create mode 100644 third_party/libnativehelper/MODULE_LICENSE_APACHE2 create mode 100644 third_party/libnativehelper/NOTICE create mode 100644 third_party/libnativehelper/README create mode 100644 third_party/libnativehelper/header_only_include/nativehelper/nativehelper_utils.h create mode 100644 third_party/libnativehelper/header_only_include/nativehelper/scoped_bytes.h create mode 100644 third_party/libnativehelper/header_only_include/nativehelper/scoped_local_frame.h create mode 100644 third_party/libnativehelper/header_only_include/nativehelper/scoped_local_ref.h create mode 100644 third_party/libnativehelper/header_only_include/nativehelper/scoped_primitive_array.h create mode 100644 third_party/libnativehelper/header_only_include/nativehelper/scoped_string_chars.h create mode 100644 third_party/libnativehelper/header_only_include/nativehelper/scoped_utf_chars.h create mode 100644 third_party/libnativehelper/include/nativehelper/JNIHelp.h create mode 100644 third_party/libnativehelper/include/nativehelper/JniInvocation.h create mode 100644 third_party/libnativehelper/include/nativehelper/ScopedBytes.h create mode 100644 third_party/libnativehelper/include/nativehelper/ScopedLocalFrame.h create mode 100644 third_party/libnativehelper/include/nativehelper/ScopedLocalRef.h create mode 100644 third_party/libnativehelper/include/nativehelper/ScopedPrimitiveArray.h create mode 100644 third_party/libnativehelper/include/nativehelper/ScopedStringChars.h create mode 100644 third_party/libnativehelper/include/nativehelper/ScopedUtfChars.h create mode 100644 third_party/libnativehelper/include/nativehelper/module_api.h create mode 100644 third_party/libnativehelper/include/nativehelper/toStringArray.h create mode 100644 third_party/libnativehelper/include_jni/jni.h create mode 100644 third_party/libnativehelper/libnativehelper.map.txt create mode 100644 third_party/libnativehelper/platform_include/nativehelper/detail/signature_checker.h create mode 100644 third_party/libnativehelper/platform_include/nativehelper/jni_macros.h create mode 100644 third_party/libnativehelper/tests/Android.bp create mode 100644 third_party/libnativehelper/tests/AndroidTest.xml create mode 100644 third_party/libnativehelper/tests/JniInvocation_test.cpp create mode 100644 third_party/libnativehelper/tests/JniSafeRegisterNativeMethods_test.cpp create mode 100644 third_party/libnativehelper/tests/jni_gtest/Android.bp create mode 100644 third_party/libnativehelper/tests/jni_gtest/base/nativehelper/jni_gtest.h create mode 100644 third_party/libnativehelper/tests/libnativehelper_api_test.c create mode 100644 third_party/libnativehelper/toStringArray.cpp diff --git a/third_party/libnativehelper/ALog-priv.h b/third_party/libnativehelper/ALog-priv.h new file mode 100644 index 0000000000..5e24fc8230 --- /dev/null +++ b/third_party/libnativehelper/ALog-priv.h @@ -0,0 +1,76 @@ +/* + * Copyright 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef NATIVEHELPER_ALOGPRIV_H_ +#define NATIVEHELPER_ALOGPRIV_H_ + +#include + +#ifndef LOG_NDEBUG +#ifdef NDEBUG +#define LOG_NDEBUG 1 +#else +#define LOG_NDEBUG 0 +#endif +#endif + + +/* + * Basic log message macros intended to emulate the behavior of log/log.h + * in system core. This should be dependent only on ndk exposed logging + * functionality. + */ + +#ifndef ALOG +#define ALOG(priority, tag, fmt...) \ + __android_log_print(ANDROID_##priority, tag, fmt) +#endif + +#ifndef ALOGV +#if LOG_NDEBUG +#define ALOGV(...) ((void)0) +#else +#define ALOGV(...) ((void)ALOG(LOG_VERBOSE, LOG_TAG, __VA_ARGS__)) +#endif +#endif + +#ifndef ALOGD +#define ALOGD(...) ((void)ALOG(LOG_DEBUG, LOG_TAG, __VA_ARGS__)) +#endif + +#ifndef ALOGI +#define ALOGI(...) ((void)ALOG(LOG_INFO, LOG_TAG, __VA_ARGS__)) +#endif + +#ifndef ALOGW +#define ALOGW(...) ((void)ALOG(LOG_WARN, LOG_TAG, __VA_ARGS__)) +#endif + +#ifndef ALOGE +#define ALOGE(...) ((void)ALOG(LOG_ERROR, LOG_TAG, __VA_ARGS__)) +#endif + +/* + * Log a fatal error if cond is true. The condition test is inverted from + * assert(3) semantics. The test and message are not stripped from release + * builds + */ +#ifndef ALOG_ALWAYS_FATAL_IF +#define ALOG_ALWAYS_FATAL_IF(cond, ...) \ + if (cond) __android_log_assert(#cond, LOG_TAG, __VA_ARGS__) +#endif + +#endif // NATIVEHELPER_ALOGPRIV_H_ diff --git a/third_party/libnativehelper/Android.bp b/third_party/libnativehelper/Android.bp new file mode 100644 index 0000000000..f2340f1c55 --- /dev/null +++ b/third_party/libnativehelper/Android.bp @@ -0,0 +1,123 @@ +// Copyright (C) 2009 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +cc_library_headers { + name: "jni_headers", + host_supported: true, + export_include_dirs: ["include_jni"], + vendor_available: true, + target: { + windows: { + enabled: true, + }, + }, +} + +cc_library_headers { + name: "libnativehelper_header_only", + host_supported: true, + export_include_dirs: ["header_only_include"], + target: { + windows: { + enabled: true, + }, + }, +} + +cc_library_headers { + name: "jni_platform_headers", + host_supported: true, + export_include_dirs: ["platform_include"], + target: { + windows: { + enabled: true, + }, + }, +} + +cc_library { + name: "libnativehelper", + host_supported: true, + srcs: [ + "JNIHelp.cpp", + "JniConstants.cpp", + "JniInvocation.cpp", + "toStringArray.cpp", + ], + shared_libs: [ + "libbase", + "liblog", + ], + cflags: [ + "-Werror", + "-fvisibility=protected", + ], + export_include_dirs: [ + "include", + "header_only_include", + "platform_include" + ], + stubs: { + symbol_file: "libnativehelper.map.txt", + versions: ["1"], + }, + target: { + windows: { + enabled: true, + }, + }, +} + +// +// NDK-only build for the target (device), using libc++. +// - Relies only on NDK exposed functionality. +// - This doesn't include JniInvocation. +// + +cc_library_shared { + name: "libnativehelper_compat_libc++", + export_include_dirs: [ + "header_only_include", + "include", + ], + cflags: ["-Werror"], + include_dirs: [ + "libnativehelper/header_only_include", + "libnativehelper/platform_include", + ], + srcs: [ + "JNIHelp.cpp", + "JniConstants.cpp", + "toStringArray.cpp", + ], + shared_libs: [ + "liblog", + ], + sdk_version: "19", + stl: "c++_static", +} + +ndk_headers { + name: "ndk_jni.h", + from: "include_jni", + to: "", + srcs: ["include_jni/jni.h"], + license: "NOTICE", +} + +// +// Tests. +// + +subdirs = ["tests"] diff --git a/third_party/libnativehelper/JNIHelp.cpp b/third_party/libnativehelper/JNIHelp.cpp new file mode 100644 index 0000000000..8432f7a37c --- /dev/null +++ b/third_party/libnativehelper/JNIHelp.cpp @@ -0,0 +1,407 @@ +/* + * Copyright (C) 2006 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "JNIHelp" + +#include "nativehelper/JNIHelp.h" + +#include "ALog-priv.h" + +#include + +#include "JniConstants.h" +#include "nativehelper/ScopedLocalRef.h" + +/** + * Equivalent to ScopedLocalRef, but for C_JNIEnv instead. (And slightly more powerful.) + */ +template +class scoped_local_ref { +public: + explicit scoped_local_ref(C_JNIEnv* env, T localRef = NULL) + : mEnv(env), mLocalRef(localRef) + { + } + + ~scoped_local_ref() { + reset(); + } + + void reset(T localRef = NULL) { + if (mLocalRef != NULL) { + (*mEnv)->DeleteLocalRef(reinterpret_cast(mEnv), mLocalRef); + mLocalRef = localRef; + } + } + + T get() const { + return mLocalRef; + } + +private: + C_JNIEnv* const mEnv; + T mLocalRef; + + DISALLOW_COPY_AND_ASSIGN(scoped_local_ref); +}; + +static jclass findClass(C_JNIEnv* env, const char* className) { + JNIEnv* e = reinterpret_cast(env); + return (*env)->FindClass(e, className); +} + +MODULE_API int jniRegisterNativeMethods(C_JNIEnv* env, const char* className, + const JNINativeMethod* gMethods, int numMethods) +{ + JNIEnv* e = reinterpret_cast(env); + + ALOGV("Registering %s's %d native methods...", className, numMethods); + + scoped_local_ref c(env, findClass(env, className)); + ALOG_ALWAYS_FATAL_IF(c.get() == NULL, + "Native registration unable to find class '%s'; aborting...", + className); + + int result = e->RegisterNatives(c.get(), gMethods, numMethods); + ALOG_ALWAYS_FATAL_IF(result < 0, "RegisterNatives failed for '%s'; aborting...", + className); + + return 0; +} + +/* + * Returns a human-readable summary of an exception object. The buffer will + * be populated with the "binary" class name and, if present, the + * exception message. + */ +static bool getExceptionSummary(C_JNIEnv* env, jthrowable exception, std::string& result) { + JNIEnv* e = reinterpret_cast(env); + + /* get the name of the exception's class */ + scoped_local_ref exceptionClass(env, (*env)->GetObjectClass(e, exception)); // can't fail + scoped_local_ref classClass(env, + (*env)->GetObjectClass(e, exceptionClass.get())); // java.lang.Class, can't fail + jmethodID classGetNameMethod = + (*env)->GetMethodID(e, classClass.get(), "getName", "()Ljava/lang/String;"); + scoped_local_ref classNameStr(env, + (jstring) (*env)->CallObjectMethod(e, exceptionClass.get(), classGetNameMethod)); + if (classNameStr.get() == NULL) { + (*env)->ExceptionClear(e); + result = ""; + return false; + } + const char* classNameChars = (*env)->GetStringUTFChars(e, classNameStr.get(), NULL); + if (classNameChars == NULL) { + (*env)->ExceptionClear(e); + result = ""; + return false; + } + result += classNameChars; + (*env)->ReleaseStringUTFChars(e, classNameStr.get(), classNameChars); + + /* if the exception has a detail message, get that */ + jmethodID getMessage = + (*env)->GetMethodID(e, exceptionClass.get(), "getMessage", "()Ljava/lang/String;"); + scoped_local_ref messageStr(env, + (jstring) (*env)->CallObjectMethod(e, exception, getMessage)); + if (messageStr.get() == NULL) { + return true; + } + + result += ": "; + + const char* messageChars = (*env)->GetStringUTFChars(e, messageStr.get(), NULL); + if (messageChars != NULL) { + result += messageChars; + (*env)->ReleaseStringUTFChars(e, messageStr.get(), messageChars); + } else { + result += ""; + (*env)->ExceptionClear(e); // clear OOM + } + + return true; +} + +/* + * Returns an exception (with stack trace) as a string. + */ +static bool getStackTrace(C_JNIEnv* env, jthrowable exception, std::string& result) { + JNIEnv* e = reinterpret_cast(env); + + scoped_local_ref stringWriterClass(env, findClass(env, "java/io/StringWriter")); + if (stringWriterClass.get() == NULL) { + return false; + } + + jmethodID stringWriterCtor = (*env)->GetMethodID(e, stringWriterClass.get(), "", "()V"); + jmethodID stringWriterToStringMethod = + (*env)->GetMethodID(e, stringWriterClass.get(), "toString", "()Ljava/lang/String;"); + + scoped_local_ref printWriterClass(env, findClass(env, "java/io/PrintWriter")); + if (printWriterClass.get() == NULL) { + return false; + } + + jmethodID printWriterCtor = + (*env)->GetMethodID(e, printWriterClass.get(), "", "(Ljava/io/Writer;)V"); + + scoped_local_ref stringWriter(env, + (*env)->NewObject(e, stringWriterClass.get(), stringWriterCtor)); + if (stringWriter.get() == NULL) { + return false; + } + + scoped_local_ref printWriter(env, + (*env)->NewObject(e, printWriterClass.get(), printWriterCtor, stringWriter.get())); + if (printWriter.get() == NULL) { + return false; + } + + scoped_local_ref exceptionClass(env, (*env)->GetObjectClass(e, exception)); // can't fail + jmethodID printStackTraceMethod = + (*env)->GetMethodID(e, exceptionClass.get(), "printStackTrace", "(Ljava/io/PrintWriter;)V"); + (*env)->CallVoidMethod(e, exception, printStackTraceMethod, printWriter.get()); + + if ((*env)->ExceptionCheck(e)) { + return false; + } + + scoped_local_ref messageStr(env, + (jstring) (*env)->CallObjectMethod(e, stringWriter.get(), stringWriterToStringMethod)); + if (messageStr.get() == NULL) { + return false; + } + + const char* utfChars = (*env)->GetStringUTFChars(e, messageStr.get(), NULL); + if (utfChars == NULL) { + return false; + } + + result = utfChars; + + (*env)->ReleaseStringUTFChars(e, messageStr.get(), utfChars); + return true; +} + +MODULE_API int jniThrowException(C_JNIEnv* env, const char* className, const char* msg) { + JNIEnv* e = reinterpret_cast(env); + + if ((*env)->ExceptionCheck(e)) { + /* TODO: consider creating the new exception with this as "cause" */ + scoped_local_ref exception(env, (*env)->ExceptionOccurred(e)); + (*env)->ExceptionClear(e); + + if (exception.get() != NULL) { + std::string text; + getExceptionSummary(env, exception.get(), text); + ALOGW("Discarding pending exception (%s) to throw %s", text.c_str(), className); + } + } + + scoped_local_ref exceptionClass(env, findClass(env, className)); + if (exceptionClass.get() == NULL) { + ALOGE("Unable to find exception class %s", className); + /* ClassNotFoundException now pending */ + return -1; + } + + if ((*env)->ThrowNew(e, exceptionClass.get(), msg) != JNI_OK) { + ALOGE("Failed throwing '%s' '%s'", className, msg); + /* an exception, most likely OOM, will now be pending */ + return -1; + } + + return 0; +} + +MODULE_API int jniThrowExceptionFmt(C_JNIEnv* env, const char* className, const char* fmt, va_list args) { + char msgBuf[512]; + vsnprintf(msgBuf, sizeof(msgBuf), fmt, args); + return jniThrowException(env, className, msgBuf); +} + +MODULE_API int jniThrowNullPointerException(C_JNIEnv* env, const char* msg) { + return jniThrowException(env, "java/lang/NullPointerException", msg); +} + +MODULE_API int jniThrowRuntimeException(C_JNIEnv* env, const char* msg) { + return jniThrowException(env, "java/lang/RuntimeException", msg); +} + +MODULE_API int jniThrowIOException(C_JNIEnv* env, int errnum) { + char buffer[80]; + const char* message = jniStrError(errnum, buffer, sizeof(buffer)); + return jniThrowException(env, "java/io/IOException", message); +} + +static std::string jniGetStackTrace(C_JNIEnv* env, jthrowable exception) { + JNIEnv* e = reinterpret_cast(env); + + scoped_local_ref currentException(env, (*env)->ExceptionOccurred(e)); + if (exception == NULL) { + exception = currentException.get(); + if (exception == NULL) { + return ""; + } + } + + if (currentException.get() != NULL) { + (*env)->ExceptionClear(e); + } + + std::string trace; + if (!getStackTrace(env, exception, trace)) { + (*env)->ExceptionClear(e); + getExceptionSummary(env, exception, trace); + } + + if (currentException.get() != NULL) { + (*env)->Throw(e, currentException.get()); // rethrow + } + + return trace; +} + +MODULE_API void jniLogException(C_JNIEnv* env, int priority, const char* tag, jthrowable exception) { + std::string trace(jniGetStackTrace(env, exception)); + __android_log_write(priority, tag, trace.c_str()); +} + +// Note: glibc has a nonstandard strerror_r that returns char* rather than POSIX's int. +// char *strerror_r(int errnum, char *buf, size_t n); +// +// Some versions of bionic support the glibc style call. Since the set of defines that determine +// which version is used is byzantine in its complexity we will just use this C++ template hack to +// select the correct jniStrError implementation based on the libc being used. +namespace impl { + +using GNUStrError = char* (*)(int,char*,size_t); +using POSIXStrError = int (*)(int,char*,size_t); + +inline const char* realJniStrError(GNUStrError func, int errnum, char* buf, size_t buflen) { + return func(errnum, buf, buflen); +} + +inline const char* realJniStrError(POSIXStrError func, int errnum, char* buf, size_t buflen) { + int rc = func(errnum, buf, buflen); + if (rc != 0) { + // (POSIX only guarantees a value other than 0. The safest + // way to implement this function is to use C++ and overload on the + // type of strerror_r to accurately distinguish GNU from POSIX.) + snprintf(buf, buflen, "errno %d", errnum); + } + return buf; +} + +} // namespace impl + +MODULE_API const char* jniStrError(int errnum, char* buf, size_t buflen) { +#ifdef _WIN32 + strerror_s(buf, buflen, errnum); + return buf; +#else + // The magic of C++ overloading selects the correct implementation based on the declared type of + // strerror_r. The inline will ensure that we don't have any indirect calls. + return impl::realJniStrError(strerror_r, errnum, buf, buflen); +#endif +} + +MODULE_API jobject jniCreateFileDescriptor(C_JNIEnv* env, int fd) { + JNIEnv* e = reinterpret_cast(env); + jobject fileDescriptor = e->NewObject(JniConstants::GetFileDescriptorClass(e), + JniConstants::GetFileDescriptorInitMethod(e)); + // NOTE: NewObject ensures that an OutOfMemoryError will be seen by the Java + // caller if the alloc fails, so we just return nullptr when that happens. + if (fileDescriptor != nullptr) { + jniSetFileDescriptorOfFD(env, fileDescriptor, fd); + } + return fileDescriptor; +} + +MODULE_API int jniGetFDFromFileDescriptor(C_JNIEnv* env, jobject fileDescriptor) { + JNIEnv* e = reinterpret_cast(env); + if (fileDescriptor != nullptr) { + return e->GetIntField(fileDescriptor, + JniConstants::GetFileDescriptorDescriptorField(e)); + } else { + return -1; + } +} + +MODULE_API void jniSetFileDescriptorOfFD(C_JNIEnv* env, jobject fileDescriptor, int value) { + JNIEnv* e = reinterpret_cast(env); + if (fileDescriptor == nullptr) { + jniThrowNullPointerException(e, "null FileDescriptor"); + } else { + e->SetIntField(fileDescriptor, JniConstants::GetFileDescriptorDescriptorField(e), value); + } +} + +MODULE_API jlong jniGetOwnerIdFromFileDescriptor(C_JNIEnv* env, jobject fileDescriptor) { + JNIEnv* e = reinterpret_cast(env); + return e->GetLongField(fileDescriptor, JniConstants::GetFileDescriptorOwnerIdField(e)); +} + +MODULE_API jarray jniGetNioBufferBaseArray(C_JNIEnv* env, jobject nioBuffer) { + JNIEnv* e = reinterpret_cast(env); + jclass nioAccessClass = JniConstants::GetNioAccessClass(e); + jmethodID getBaseArrayMethod = JniConstants::GetNioAccessGetBaseArrayMethod(e); + jobject object = e->CallStaticObjectMethod(nioAccessClass, getBaseArrayMethod, nioBuffer); + return static_cast(object); +} + +MODULE_API int jniGetNioBufferBaseArrayOffset(C_JNIEnv* env, jobject nioBuffer) { + JNIEnv* e = reinterpret_cast(env); + jclass nioAccessClass = JniConstants::GetNioAccessClass(e); + jmethodID getBaseArrayOffsetMethod = JniConstants::GetNioAccessGetBaseArrayOffsetMethod(e); + return e->CallStaticIntMethod(nioAccessClass, getBaseArrayOffsetMethod, nioBuffer); +} + +MODULE_API jlong jniGetNioBufferPointer(C_JNIEnv* env, jobject nioBuffer) { + JNIEnv* e = reinterpret_cast(env); + jlong baseAddress = e->GetLongField(nioBuffer, JniConstants::GetNioBufferAddressField(e)); + if (baseAddress != 0) { + const int position = e->GetIntField(nioBuffer, JniConstants::GetNioBufferPositionField(e)); + const int shift = + e->GetIntField(nioBuffer, JniConstants::GetNioBufferElementSizeShiftField(e)); + baseAddress += position << shift; + } + return baseAddress; +} + +MODULE_API jlong jniGetNioBufferFields(C_JNIEnv* env, jobject nioBuffer, + jint* position, jint* limit, jint* elementSizeShift) { + JNIEnv* e = reinterpret_cast(env); + *position = e->GetIntField(nioBuffer, JniConstants::GetNioBufferPositionField(e)); + *limit = e->GetIntField(nioBuffer, JniConstants::GetNioBufferLimitField(e)); + *elementSizeShift = + e->GetIntField(nioBuffer, JniConstants::GetNioBufferElementSizeShiftField(e)); + return e->GetLongField(nioBuffer, JniConstants::GetNioBufferAddressField(e)); +} + +MODULE_API jobject jniGetReferent(C_JNIEnv* env, jobject ref) { + JNIEnv* e = reinterpret_cast(env); + return e->CallObjectMethod(ref, JniConstants::GetReferenceGetMethod(e)); +} + +MODULE_API jstring jniCreateString(C_JNIEnv* env, const jchar* unicodeChars, jsize len) { + JNIEnv* e = reinterpret_cast(env); + return e->NewString(unicodeChars, len); +} + +MODULE_API void jniUninitializeConstants() { + JniConstants::Uninitialize(); +} diff --git a/third_party/libnativehelper/JniConstants.cpp b/third_party/libnativehelper/JniConstants.cpp new file mode 100644 index 0000000000..6d6ce791ec --- /dev/null +++ b/third_party/libnativehelper/JniConstants.cpp @@ -0,0 +1,287 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "JniConstants" +#include "ALog-priv.h" + +#include "JniConstants.h" + +#include +#include +#include + +#include "nativehelper/ScopedLocalRef.h" + +namespace { + +// Mutex protecting the initialization of cached class references. +std::mutex g_class_refs_mutex; + +// Atomic boolean flag for double locked checking that class references are +// initialized before use. +std::atomic g_class_refs_initialized(false); + +// Cached global references to class instances. +// +// These are GC heap references that are initialized under the protection of +// |g_class_refs_mutex| as they should only be initialized once to avoid losing a +// global reference. Initialization happens lazily when an accessor tries to +// retrieve one of these classes. + +jclass g_file_descriptor_class = nullptr; // java.io.FileDescriptor +jclass g_nio_access_class = nullptr; // java.nio.Access +jclass g_nio_buffer_class = nullptr; // java.nio.Buffer +jclass g_reference_class = nullptr; // java.lang.ref.Reference +jclass g_string_class = nullptr; // java.lang.String + +// Cached field and method ids. +// +// These are non-GC heap values. They are initialized lazily and racily. We +// avoid holding a mutex here because the JNI API supports concurrent calls to +// Get{Field,Method}ID and also because finding an id may recursively call into +// Get{Field,Method}ID. +// +// The recursion issue occurs here for the fields in the FileDescriptor class +// since retrieving a field id requires the class to be initialized. Class +// initialization leads to the initialization of static fields. The +// FileDescriptor class has static fields that are FileDescriptor instances. The +// initialization of these static FileDescriptor fields follows a convoluted +// path that that leads to a call to jniGetFDFromFileDescriptor() which then +// needs to call GetFieldID() which is in the call stack. If thread-safety were +// desirable here, a recursive mutex would be required. +// +// These field and method ids have default values of nullptr. They are reset +// back to nullptr in JniConstants::Uninitialize(), along with the class +// references, when a new runtime instance is created via JNI_CreateJavaVM(). The +// reset happens before the new runtime instance is returned to the caller and +// under the protection of the |g_class_refs_mutex|. + +jfieldID g_file_descriptor_descriptor_field = nullptr; // java.io.FileDescriptor.descriptor +jfieldID g_file_descriptor_owner_id_field = nullptr; // java.io.FileDescriptor.ownerId +jmethodID g_file_descriptor_init_method = nullptr; // void java.io.FileDescriptor.() +jmethodID g_nio_access_get_base_array_method = nullptr; // Object java.nio.NIOAccess.getBaseArray() +jmethodID g_nio_access_get_base_array_offset_method = nullptr; // Object java.nio.NIOAccess.getBaseArray() +jfieldID g_nio_buffer_address_field = nullptr; // long java.nio.Buffer.address +jfieldID g_nio_buffer_element_size_shift_field = nullptr; // int java.nio.Buffer._elementSizeShift +jfieldID g_nio_buffer_limit_field = nullptr; // int java.nio.Buffer.limit +jfieldID g_nio_buffer_position_field = nullptr; // int java.nio.Buffer.position +jmethodID g_nio_buffer_array_method = nullptr; // Object java.nio.Buffer.array() +jmethodID g_nio_buffer_array_offset_method = nullptr; // int java.nio.Buffer.arrayOffset() +jmethodID g_reference_get_method = nullptr; // Object java.lang.ref.Reference.get() + +jclass FindClass(JNIEnv* env, const char* name) { + ScopedLocalRef klass(env, env->FindClass(name)); + ALOG_ALWAYS_FATAL_IF(klass.get() == nullptr, "failed to find class '%s'", name); + return reinterpret_cast(env->NewGlobalRef(klass.get())); +} + +jfieldID FindField(JNIEnv* env, jclass klass, const char* name, const char* desc) { + jfieldID result = env->GetFieldID(klass, name, desc); + ALOG_ALWAYS_FATAL_IF(result == nullptr, "failed to find field '%s:%s'", name, desc); + return result; +} + +jmethodID FindMethod(JNIEnv* env, jclass klass, const char* name, const char* signature) { + jmethodID result = env->GetMethodID(klass, name, signature); + ALOG_ALWAYS_FATAL_IF(result == nullptr, "failed to find method '%s%s'", name, signature); + return result; +} + +jmethodID FindStaticMethod(JNIEnv* env, jclass klass, const char* name, const char* signature) { + jmethodID result = env->GetStaticMethodID(klass, name, signature); + ALOG_ALWAYS_FATAL_IF(result == nullptr, "failed to find static method '%s%s'", name, signature); + return result; +} + +} // namespace + +jclass JniConstants::GetFileDescriptorClass(JNIEnv* env) { + EnsureClassReferencesInitialized(env); + return g_file_descriptor_class; +} + +jclass JniConstants::GetNioAccessClass(JNIEnv* env) { + EnsureClassReferencesInitialized(env); + return g_nio_access_class; +} + +jclass JniConstants::GetNioBufferClass(JNIEnv* env) { + EnsureClassReferencesInitialized(env); + return g_nio_buffer_class; +} + +jclass JniConstants::GetReferenceClass(JNIEnv* env) { + EnsureClassReferencesInitialized(env); + return g_reference_class; +} + +jclass JniConstants::GetStringClass(JNIEnv* env) { + EnsureClassReferencesInitialized(env); + return g_string_class; +} + +jfieldID JniConstants::GetFileDescriptorDescriptorField(JNIEnv* env) { + if (g_file_descriptor_descriptor_field == nullptr) { + jclass klass = GetFileDescriptorClass(env); + g_file_descriptor_descriptor_field = FindField(env, klass, "descriptor", "I"); + } + return g_file_descriptor_descriptor_field; +} + +jfieldID JniConstants::GetFileDescriptorOwnerIdField(JNIEnv* env) { + if (g_file_descriptor_owner_id_field == nullptr) { + jclass klass = GetFileDescriptorClass(env); + g_file_descriptor_owner_id_field = FindField(env, klass, "ownerId", "J"); + } + return g_file_descriptor_owner_id_field; +} + +jmethodID JniConstants::GetFileDescriptorInitMethod(JNIEnv* env) { + if (g_file_descriptor_init_method == nullptr) { + jclass klass = GetFileDescriptorClass(env); + g_file_descriptor_init_method = FindMethod(env, klass, "", "()V"); + } + return g_file_descriptor_init_method; +} + +jmethodID JniConstants::GetNioAccessGetBaseArrayMethod(JNIEnv* env) { + if (g_nio_access_get_base_array_method == nullptr) { + jclass klass = GetNioAccessClass(env); + g_nio_access_get_base_array_method = + FindStaticMethod(env, klass, "getBaseArray", + "(Ljava/nio/Buffer;)Ljava/lang/Object;"); + } + return g_nio_access_get_base_array_method; +} + +jmethodID JniConstants::GetNioAccessGetBaseArrayOffsetMethod(JNIEnv* env) { + if (g_nio_access_get_base_array_offset_method == nullptr) { + jclass klass = GetNioAccessClass(env); + g_nio_access_get_base_array_offset_method = + FindStaticMethod(env, klass, "getBaseArrayOffset", "(Ljava/nio/Buffer;)I"); + } + return g_nio_access_get_base_array_offset_method; +} + +jfieldID JniConstants::GetNioBufferAddressField(JNIEnv* env) { + if (g_nio_buffer_address_field == nullptr) { + jclass klass = GetNioBufferClass(env); + g_nio_buffer_address_field = FindField(env, klass, "address", "J"); + } + return g_nio_buffer_address_field; +} + +jfieldID JniConstants::GetNioBufferElementSizeShiftField(JNIEnv* env) { + if (g_nio_buffer_element_size_shift_field == nullptr) { + jclass klass = GetNioBufferClass(env); + g_nio_buffer_element_size_shift_field = FindField(env, klass, "_elementSizeShift", "I"); + } + return g_nio_buffer_element_size_shift_field; +} + +jfieldID JniConstants::GetNioBufferLimitField(JNIEnv* env) { + if (g_nio_buffer_limit_field == nullptr) { + jclass klass = GetNioBufferClass(env); + g_nio_buffer_limit_field = FindField(env, klass, "limit", "I"); + } + return g_nio_buffer_limit_field; +} + +jfieldID JniConstants::GetNioBufferPositionField(JNIEnv* env) { + if (g_nio_buffer_position_field == nullptr) { + jclass klass = GetNioBufferClass(env); + g_nio_buffer_position_field = FindField(env, klass, "position", "I"); + } + return g_nio_buffer_position_field; +} + +jmethodID JniConstants::GetNioBufferArrayMethod(JNIEnv* env) { + if (g_nio_buffer_array_method == nullptr) { + jclass klass = GetNioBufferClass(env); + g_nio_buffer_array_method = FindMethod(env, klass, "array", "()Ljava/lang/Object;"); + } + return g_nio_buffer_array_method; +} + +jmethodID JniConstants::GetNioBufferArrayOffsetMethod(JNIEnv* env) { + if (g_nio_buffer_array_offset_method == nullptr) { + jclass klass = GetNioBufferClass(env); + g_nio_buffer_array_offset_method = FindMethod(env, klass, "arrayOffset", "()I"); + } + return g_nio_buffer_array_offset_method; +} + +jmethodID JniConstants::GetReferenceGetMethod(JNIEnv* env) { + if (g_reference_get_method == nullptr) { + jclass klass = GetReferenceClass(env); + g_reference_get_method = FindMethod(env, klass, "get", "()Ljava/lang/Object;"); + } + return g_reference_get_method; +} + +void JniConstants::EnsureClassReferencesInitialized(JNIEnv* env) { + // Fast check if class references are initialized. + if (g_class_refs_initialized.load(std::memory_order_acquire)) { + return; + } + + // Slower check with initialization if necessary. + std::lock_guard guard(g_class_refs_mutex); + if (g_class_refs_initialized.load(std::memory_order_relaxed)) { + return; + } + + // Class constants should be initialized only once because they global + // references. Field ids and Method ids can be initialized later since they + // are not references and races only have trivial performance + // consequences. + g_file_descriptor_class = FindClass(env, "java/io/FileDescriptor"); + g_nio_access_class = FindClass(env, "java/nio/NIOAccess"); + g_nio_buffer_class = FindClass(env, "java/nio/Buffer"); + g_reference_class = FindClass(env, "java/lang/ref/Reference"); + g_string_class = FindClass(env, "java/lang/String"); + g_class_refs_initialized.store(true, std::memory_order_release); +} + +void JniConstants::Uninitialize() { + // This method is called when a new runtime instance is created. There is no + // notification of a runtime instance being destroyed in the JNI interface + // so we piggyback on creation. Since only one runtime is supported at a + // time, we know the constants are invalid when JNI_CreateJavaVM() is + // called. + // + // Clean shutdown would require calling DeleteGlobalRef() for each of the + // class references. + std::lock_guard guard(g_class_refs_mutex); + g_file_descriptor_class = nullptr; + g_file_descriptor_descriptor_field = nullptr; + g_file_descriptor_owner_id_field = nullptr; + g_file_descriptor_init_method = nullptr; + g_nio_access_class = nullptr; + g_nio_access_get_base_array_method = nullptr; + g_nio_access_get_base_array_offset_method = nullptr; + g_nio_buffer_class = nullptr; + g_nio_buffer_address_field = nullptr; + g_nio_buffer_element_size_shift_field = nullptr; + g_nio_buffer_limit_field = nullptr; + g_nio_buffer_position_field = nullptr; + g_nio_buffer_array_method = nullptr; + g_nio_buffer_array_offset_method = nullptr; + g_reference_class = nullptr; + g_reference_get_method = nullptr; + g_string_class = nullptr; + g_class_refs_initialized.store(false, std::memory_order_release); +} diff --git a/third_party/libnativehelper/JniConstants.h b/third_party/libnativehelper/JniConstants.h new file mode 100644 index 0000000000..b2d03bea4f --- /dev/null +++ b/third_party/libnativehelper/JniConstants.h @@ -0,0 +1,83 @@ +/* + * Copyright 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include "jni.h" + +struct JniConstants { + // Global reference to java.io.FileDescriptor. + static jclass GetFileDescriptorClass(JNIEnv* env); + + // java.io.FileDescriptor.descriptor. + static jfieldID GetFileDescriptorDescriptorField(JNIEnv* env); + + // java.io.FileDescriptor.ownerId. + static jfieldID GetFileDescriptorOwnerIdField(JNIEnv* env); + + // void java.io.FileDescriptor.(). + static jmethodID GetFileDescriptorInitMethod(JNIEnv* env); + + // Global reference to java.nio.NIOAccess. + static jclass GetNioAccessClass(JNIEnv* env); + + // Object java.nio.NIOAccess.getBaseArray(Buffer); + static jmethodID GetNioAccessGetBaseArrayMethod(JNIEnv* env); + + // int java.nio.NIOAccess.getBaseArrayOffset(Buffer); + static jmethodID GetNioAccessGetBaseArrayOffsetMethod(JNIEnv* env); + + // Global reference to java.nio.Buffer. + static jclass GetNioBufferClass(JNIEnv* env); + + // long java.nio.Buffer.address + static jfieldID GetNioBufferAddressField(JNIEnv* env); + + // int java.nio.Buffer._elementSizeShift + static jfieldID GetNioBufferElementSizeShiftField(JNIEnv* env); + + // int java.nio.Buffer.limit; + static jfieldID GetNioBufferLimitField(JNIEnv* env); + + // int java.nio.Buffer.position; + static jfieldID GetNioBufferPositionField(JNIEnv* env); + + // Object java.nio.Buffer.array() + static jmethodID GetNioBufferArrayMethod(JNIEnv* env); + + // int java.nio.Buffer.arrayOffset() + static jmethodID GetNioBufferArrayOffsetMethod(JNIEnv* env); + + // Global reference to java.lang.ref.Reference. + static jclass GetReferenceClass(JNIEnv* env); + + // Object java.lang.ref.Reference.get() + static jmethodID GetReferenceGetMethod(JNIEnv* env); + + // Global reference to java.lang.String. + static jclass GetStringClass(JNIEnv* env); + + // Ensure class constants are initialized before use. Field and method + // constants are lazily initialized via getters. + static void EnsureClassReferencesInitialized(JNIEnv* env); + + // Ensure any cached heap objects from previous VM instances are + // invalidated. There is no notification here that a VM is destroyed so this + // method must be called when a new VM is created (and calls from any + // earlier VM's are completed). The caching of heap objects in this class is + // one reason why there is a limit of VM instance per process. + static void Uninitialize(); +}; diff --git a/third_party/libnativehelper/JniInvocation.cpp b/third_party/libnativehelper/JniInvocation.cpp new file mode 100644 index 0000000000..6d992e69c3 --- /dev/null +++ b/third_party/libnativehelper/JniInvocation.cpp @@ -0,0 +1,321 @@ +/* + * Copyright (C) 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "nativehelper/JniInvocation.h" + +#ifdef _WIN32 +#include +#else +#include +#endif +#include +#include + +#include + +#define LOG_TAG "JniInvocation" +#include + +#ifdef __ANDROID__ +#include +#endif + +#include "android-base/errors.h" +#include "JniConstants.h" + +namespace { + +template +void UNUSED(const T&) {} + +bool IsDebuggable() { +#ifdef __ANDROID__ + char debuggable[PROP_VALUE_MAX] = {0}; + __system_property_get("ro.debuggable", debuggable); + return strcmp(debuggable, "1") == 0; +#else + return false; +#endif +} + +int GetLibrarySystemProperty(char* buffer) { +#ifdef __ANDROID__ + return __system_property_get("persist.sys.dalvik.vm.lib.2", buffer); +#else + UNUSED(buffer); + return 0; +#endif +} + +#ifdef _WIN32 +#define FUNC_POINTER FARPROC +#else +#define FUNC_POINTER void* +#endif + +void* OpenLibrary(const char* filename) { +#ifdef _WIN32 + return LoadLibrary(filename); +#else + // Load with RTLD_NODELETE in order to ensure that libart.so is not unmapped when it is closed. + // This is due to the fact that it is possible that some threads might have yet to finish + // exiting even after JNI_DeleteJavaVM returns, which can lead to segfaults if the library is + // unloaded. + const int kDlopenFlags = RTLD_NOW | RTLD_NODELETE; + return dlopen(filename, kDlopenFlags); +#endif +} + +int CloseLibrary(void* handle) { +#ifdef _WIN32 + return FreeLibrary(static_cast(handle)); +#else + return dlclose(handle); +#endif +} + +FUNC_POINTER GetSymbol(void* handle, const char* symbol) { +#ifdef _WIN32 + return GetProcAddress(static_cast(handle), symbol); +#else + return dlsym(handle, symbol); +#endif +} + +std::string GetError() { +#ifdef _WIN32 + return android::base::SystemErrorCodeToString(GetLastError()); +#else + return std::string(dlerror()); +#endif +} + +} // namespace + +struct JniInvocationImpl final { + public: + JniInvocationImpl(); + ~JniInvocationImpl(); + + bool Init(const char* library); + + // static const char* GetLibrary(const char* library, char* buffer); + + static const char* GetLibrary(const char* library, + char* buffer, + bool (*is_debuggable)() = IsDebuggable, + int (*get_library_system_property)(char* buffer) = GetLibrarySystemProperty); + + static JniInvocationImpl& GetJniInvocation(); + + jint JNI_GetDefaultJavaVMInitArgs(void* vmargs); + jint JNI_CreateJavaVM(JavaVM** p_vm, JNIEnv** p_env, void* vm_args); + jint JNI_GetCreatedJavaVMs(JavaVM** vms, jsize size, jsize* vm_count); + + private: + JniInvocationImpl(const JniInvocationImpl&) = delete; + JniInvocationImpl& operator=(const JniInvocationImpl&) = delete; + + bool FindSymbol(FUNC_POINTER* pointer, const char* symbol); + + static JniInvocationImpl* jni_invocation_; + + // Handle to library opened with dlopen(). Library exports + // JNI_GetDefaultJavaVMInitArgs, JNI_CreateJavaVM, JNI_GetCreatedJavaVMs. + void* handle_; + jint (*JNI_GetDefaultJavaVMInitArgs_)(void*); + jint (*JNI_CreateJavaVM_)(JavaVM**, JNIEnv**, void*); + jint (*JNI_GetCreatedJavaVMs_)(JavaVM**, jsize, jsize*); + + friend class JNIInvocation_Debuggable_Test; + friend class JNIInvocation_NonDebuggable_Test; +}; + +// Check JniInvocationImpl size is same as fields, e.g. no vtable present. +static_assert(sizeof(JniInvocationImpl) == 4 * sizeof(uintptr_t)); + +JniInvocationImpl* JniInvocationImpl::jni_invocation_ = NULL; + +JniInvocationImpl::JniInvocationImpl() : + handle_(NULL), + JNI_GetDefaultJavaVMInitArgs_(NULL), + JNI_CreateJavaVM_(NULL), + JNI_GetCreatedJavaVMs_(NULL) { + LOG_ALWAYS_FATAL_IF(jni_invocation_ != NULL, "JniInvocation instance already initialized"); + jni_invocation_ = this; +} + +JniInvocationImpl::~JniInvocationImpl() { + jni_invocation_ = NULL; + if (handle_ != NULL) { + CloseLibrary(handle_); + } +} + +static const char* kLibraryFallback = "libart.so"; + +const char* JniInvocationImpl::GetLibrary(const char* library, + char* buffer, + bool (*is_debuggable)(), + int (*get_library_system_property)(char* buffer)) { +#ifdef __ANDROID__ + const char* default_library; + + if (!is_debuggable()) { + // Not a debuggable build. + // Do not allow arbitrary library. Ignore the library parameter. This + // will also ignore the default library, but initialize to fallback + // for cleanliness. + library = kLibraryFallback; + default_library = kLibraryFallback; + } else { + // Debuggable build. + // Accept the library parameter. For the case it is NULL, load the default + // library from the system property. + if (buffer != NULL) { + if (get_library_system_property(buffer) > 0) { + default_library = buffer; + } else { + default_library = kLibraryFallback; + } + } else { + // No buffer given, just use default fallback. + default_library = kLibraryFallback; + } + } +#else + UNUSED(buffer); + UNUSED(is_debuggable); + UNUSED(get_library_system_property); + const char* default_library = kLibraryFallback; +#endif + if (library == NULL) { + library = default_library; + } + + return library; +} + +bool JniInvocationImpl::Init(const char* library) { +#ifdef __ANDROID__ + char buffer[PROP_VALUE_MAX]; +#else + char* buffer = NULL; +#endif + library = GetLibrary(library, buffer); + handle_ = OpenLibrary(library); + if (handle_ == NULL) { + if (strcmp(library, kLibraryFallback) == 0) { + // Nothing else to try. + ALOGE("Failed to dlopen %s: %s", library, GetError().c_str()); + return false; + } + // Note that this is enough to get something like the zygote + // running, we can't property_set here to fix this for the future + // because we are root and not the system user. See + // RuntimeInit.commonInit for where we fix up the property to + // avoid future fallbacks. http://b/11463182 + ALOGW("Falling back from %s to %s after dlopen error: %s", + library, kLibraryFallback, GetError().c_str()); + library = kLibraryFallback; + handle_ = OpenLibrary(library); + if (handle_ == NULL) { + ALOGE("Failed to dlopen %s: %s", library, GetError().c_str()); + return false; + } + } + if (!FindSymbol(reinterpret_cast(&JNI_GetDefaultJavaVMInitArgs_), + "JNI_GetDefaultJavaVMInitArgs")) { + return false; + } + if (!FindSymbol(reinterpret_cast(&JNI_CreateJavaVM_), + "JNI_CreateJavaVM")) { + return false; + } + if (!FindSymbol(reinterpret_cast(&JNI_GetCreatedJavaVMs_), + "JNI_GetCreatedJavaVMs")) { + return false; + } + return true; +} + +jint JniInvocationImpl::JNI_GetDefaultJavaVMInitArgs(void* vmargs) { + return JNI_GetDefaultJavaVMInitArgs_(vmargs); +} + +jint JniInvocationImpl::JNI_CreateJavaVM(JavaVM** p_vm, JNIEnv** p_env, void* vm_args) { + return JNI_CreateJavaVM_(p_vm, p_env, vm_args); +} + +jint JniInvocationImpl::JNI_GetCreatedJavaVMs(JavaVM** vms, jsize size, jsize* vm_count) { + return JNI_GetCreatedJavaVMs_(vms, size, vm_count); +} + +bool JniInvocationImpl::FindSymbol(FUNC_POINTER* pointer, const char* symbol) { + *pointer = GetSymbol(handle_, symbol); + if (*pointer == NULL) { + ALOGE("Failed to find symbol %s: %s\n", symbol, GetError().c_str()); + CloseLibrary(handle_); + handle_ = NULL; + return false; + } + return true; +} + +JniInvocationImpl& JniInvocationImpl::GetJniInvocation() { + LOG_ALWAYS_FATAL_IF(jni_invocation_ == NULL, + "Failed to create JniInvocation instance before using JNI invocation API"); + return *jni_invocation_; +} + +MODULE_API jint JNI_GetDefaultJavaVMInitArgs(void* vm_args) { + return JniInvocationImpl::GetJniInvocation().JNI_GetDefaultJavaVMInitArgs(vm_args); +} + +MODULE_API jint JNI_CreateJavaVM(JavaVM** p_vm, JNIEnv** p_env, void* vm_args) { + // Ensure any cached heap objects from previous VM instances are + // invalidated. There is no notification here that a VM is destroyed. These + // cached objects limit us to one VM instance per process. + JniConstants::Uninitialize(); + return JniInvocationImpl::GetJniInvocation().JNI_CreateJavaVM(p_vm, p_env, vm_args); +} + +MODULE_API jint JNI_GetCreatedJavaVMs(JavaVM** vms, jsize size, jsize* vm_count) { + return JniInvocationImpl::GetJniInvocation().JNI_GetCreatedJavaVMs(vms, size, vm_count); +} + +MODULE_API JniInvocationImpl* JniInvocationCreate() { + return new JniInvocationImpl(); +} + +MODULE_API void JniInvocationDestroy(JniInvocationImpl* instance) { + delete instance; +} + +MODULE_API int JniInvocationInit(JniInvocationImpl* instance, const char* library) { + return instance->Init(library) ? 1 : 0; +} + +MODULE_API const char* JniInvocationGetLibrary(const char* library, char* buffer) { + return JniInvocationImpl::GetLibrary(library, buffer); +} + +MODULE_API const char* JniInvocation::GetLibrary(const char* library, + char* buffer, + bool (*is_debuggable)(), + int (*get_library_system_property)(char* buffer)) { + return JniInvocationImpl::GetLibrary(library, buffer, is_debuggable, get_library_system_property); +} diff --git a/third_party/libnativehelper/MODULE_LICENSE_APACHE2 b/third_party/libnativehelper/MODULE_LICENSE_APACHE2 new file mode 100644 index 0000000000..e69de29bb2 diff --git a/third_party/libnativehelper/NOTICE b/third_party/libnativehelper/NOTICE new file mode 100644 index 0000000000..c5b1efa7aa --- /dev/null +++ b/third_party/libnativehelper/NOTICE @@ -0,0 +1,190 @@ + + Copyright (c) 2005-2008, The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + diff --git a/third_party/libnativehelper/README b/third_party/libnativehelper/README new file mode 100644 index 0000000000..5a5f5d45c2 --- /dev/null +++ b/third_party/libnativehelper/README @@ -0,0 +1,11 @@ +Support functions for Android's class libraries + + +These are VM-agnostic native functions that implement methods for system +class libraries. All code here: + + - MUST not be associated with an android.* class (that code lives in + frameworks/base/). + - SHOULD be written in C rather than C++ where possible. + +Some helper functions are defined in include/nativehelper/JNIHelp.h. diff --git a/third_party/libnativehelper/header_only_include/nativehelper/nativehelper_utils.h b/third_party/libnativehelper/header_only_include/nativehelper/nativehelper_utils.h new file mode 100644 index 0000000000..d7289f9fa2 --- /dev/null +++ b/third_party/libnativehelper/header_only_include/nativehelper/nativehelper_utils.h @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2007 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef NATIVEHELPER_MACROS_H_ +#define NATIVEHELPER_MACROS_H_ + +#if defined(__cplusplus) + +#if !defined(DISALLOW_COPY_AND_ASSIGN) +// DISALLOW_COPY_AND_ASSIGN disallows the copy and operator= functions. It goes in the private: +// declarations in a class. +#define DISALLOW_COPY_AND_ASSIGN(TypeName) \ + TypeName(const TypeName&) = delete; \ + void operator=(const TypeName&) = delete +#endif // !defined(DISALLOW_COPY_AND_ASSIGN) + +#ifndef NATIVEHELPER_JNIHELP_H_ +// This seems a header-only include. Provide NPE throwing. +static inline int jniThrowNullPointerException(JNIEnv* env, const char* msg) { + if (env->ExceptionCheck()) { + // Drop any pending exception. + env->ExceptionClear(); + } + + jclass e_class = env->FindClass("java/lang/NullPointerException"); + if (e_class == nullptr) { + return -1; + } + + if (env->ThrowNew(e_class, msg) != JNI_OK) { + env->DeleteLocalRef(e_class); + return -1; + } + + env->DeleteLocalRef(e_class); + return 0; +} +#endif // NATIVEHELPER_JNIHELP_H_ + +#endif // defined(__cplusplus) + +#endif // NATIVEHELPER_MACROS_H_ diff --git a/third_party/libnativehelper/header_only_include/nativehelper/scoped_bytes.h b/third_party/libnativehelper/header_only_include/nativehelper/scoped_bytes.h new file mode 100644 index 0000000000..f53931e5d0 --- /dev/null +++ b/third_party/libnativehelper/header_only_include/nativehelper/scoped_bytes.h @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SCOPED_BYTES_H_ +#define SCOPED_BYTES_H_ + +#include "jni.h" +#include "nativehelper_utils.h" + +/** + * ScopedBytesRO and ScopedBytesRW attempt to paper over the differences between byte[]s and + * ByteBuffers. This in turn helps paper over the differences between non-direct ByteBuffers backed + * by byte[]s, direct ByteBuffers backed by bytes[]s, and direct ByteBuffers not backed by byte[]s. + * (On Android, this last group only contains MappedByteBuffers.) + */ +template +class ScopedBytes { +public: + ScopedBytes(JNIEnv* env, jobject object) + : mEnv(env), mObject(object), mByteArray(NULL), mPtr(NULL) + { + if (mObject == NULL) { + jniThrowNullPointerException(mEnv, NULL); + } else { + jclass byteArrayClass = env->FindClass("[B"); + if (mEnv->IsInstanceOf(mObject, byteArrayClass)) { + mByteArray = reinterpret_cast(mObject); + mPtr = mEnv->GetByteArrayElements(mByteArray, NULL); + } else { + mPtr = reinterpret_cast(mEnv->GetDirectBufferAddress(mObject)); + } + mEnv->DeleteLocalRef(byteArrayClass); + } + } + + ~ScopedBytes() { + if (mByteArray != NULL) { + mEnv->ReleaseByteArrayElements(mByteArray, mPtr, readOnly ? JNI_ABORT : 0); + } + } + +private: + JNIEnv* const mEnv; + const jobject mObject; + jbyteArray mByteArray; + +protected: + jbyte* mPtr; + +private: + DISALLOW_COPY_AND_ASSIGN(ScopedBytes); +}; + +class ScopedBytesRO : public ScopedBytes { +public: + ScopedBytesRO(JNIEnv* env, jobject object) : ScopedBytes(env, object) {} + const jbyte* get() const { + return mPtr; + } +}; + +class ScopedBytesRW : public ScopedBytes { +public: + ScopedBytesRW(JNIEnv* env, jobject object) : ScopedBytes(env, object) {} + jbyte* get() { + return mPtr; + } +}; + +#endif // SCOPED_BYTES_H_ diff --git a/third_party/libnativehelper/header_only_include/nativehelper/scoped_local_frame.h b/third_party/libnativehelper/header_only_include/nativehelper/scoped_local_frame.h new file mode 100644 index 0000000000..91180fe2d3 --- /dev/null +++ b/third_party/libnativehelper/header_only_include/nativehelper/scoped_local_frame.h @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SCOPED_LOCAL_FRAME_H_ +#define SCOPED_LOCAL_FRAME_H_ + +#include "jni.h" +#include "nativehelper_utils.h" + +class ScopedLocalFrame { +public: + explicit ScopedLocalFrame(JNIEnv* env) : mEnv(env) { + mEnv->PushLocalFrame(128); + } + + ~ScopedLocalFrame() { + mEnv->PopLocalFrame(NULL); + } + +private: + JNIEnv* const mEnv; + + DISALLOW_COPY_AND_ASSIGN(ScopedLocalFrame); +}; + +#endif // SCOPED_LOCAL_FRAME_H_ diff --git a/third_party/libnativehelper/header_only_include/nativehelper/scoped_local_ref.h b/third_party/libnativehelper/header_only_include/nativehelper/scoped_local_ref.h new file mode 100644 index 0000000000..3eb21d9d25 --- /dev/null +++ b/third_party/libnativehelper/header_only_include/nativehelper/scoped_local_ref.h @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SCOPED_LOCAL_REF_H_ +#define SCOPED_LOCAL_REF_H_ + +#include + +#include "jni.h" +#include "nativehelper_utils.h" + +// A smart pointer that deletes a JNI local reference when it goes out of scope. +template +class ScopedLocalRef { +public: + ScopedLocalRef(JNIEnv* env, T localRef) : mEnv(env), mLocalRef(localRef) { + } + + ScopedLocalRef(ScopedLocalRef&& s) noexcept : mEnv(s.mEnv), mLocalRef(s.release()) { + } + + explicit ScopedLocalRef(JNIEnv* env) : mEnv(env), mLocalRef(nullptr) { + } + + ~ScopedLocalRef() { + reset(); + } + + void reset(T ptr = NULL) { + if (ptr != mLocalRef) { + if (mLocalRef != NULL) { + mEnv->DeleteLocalRef(mLocalRef); + } + mLocalRef = ptr; + } + } + + T release() __attribute__((warn_unused_result)) { + T localRef = mLocalRef; + mLocalRef = NULL; + return localRef; + } + + T get() const { + return mLocalRef; + } + + + // We do not expose an empty constructor as it can easily lead to errors + // using common idioms, e.g.: + // ScopedLocalRef<...> ref; + // ref.reset(...); + + // Move assignment operator. + ScopedLocalRef& operator=(ScopedLocalRef&& s) noexcept { + reset(s.release()); + mEnv = s.mEnv; + return *this; + } + + // Allows "if (scoped_ref == nullptr)" + bool operator==(std::nullptr_t) const { + return mLocalRef == nullptr; + } + + // Allows "if (scoped_ref != nullptr)" + bool operator!=(std::nullptr_t) const { + return mLocalRef != nullptr; + } + +private: + JNIEnv* mEnv; + T mLocalRef; + + DISALLOW_COPY_AND_ASSIGN(ScopedLocalRef); +}; + +#endif // SCOPED_LOCAL_REF_H_ diff --git a/third_party/libnativehelper/header_only_include/nativehelper/scoped_primitive_array.h b/third_party/libnativehelper/header_only_include/nativehelper/scoped_primitive_array.h new file mode 100644 index 0000000000..d6840c264e --- /dev/null +++ b/third_party/libnativehelper/header_only_include/nativehelper/scoped_primitive_array.h @@ -0,0 +1,147 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SCOPED_PRIMITIVE_ARRAY_H_ +#define SCOPED_PRIMITIVE_ARRAY_H_ + +#include "jni.h" +#include "nativehelper_utils.h" + +#ifdef POINTER_TYPE +#error POINTER_TYPE is defined. +#else +#define POINTER_TYPE(T) T* /* NOLINT */ +#endif + +#ifdef REFERENCE_TYPE +#error REFERENCE_TYPE is defined. +#else +#define REFERENCE_TYPE(T) T& /* NOLINT */ +#endif + +// ScopedBooleanArrayRO, ScopedByteArrayRO, ScopedCharArrayRO, ScopedDoubleArrayRO, +// ScopedFloatArrayRO, ScopedIntArrayRO, ScopedLongArrayRO, and ScopedShortArrayRO provide +// convenient read-only access to Java arrays from JNI code. This is cheaper than read-write +// access and should be used by default. +#define INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RO(PRIMITIVE_TYPE, NAME) \ + class Scoped ## NAME ## ArrayRO { \ + public: \ + explicit Scoped ## NAME ## ArrayRO(JNIEnv* env) \ + : mEnv(env), mJavaArray(NULL), mRawArray(NULL), mSize(0) {} \ + Scoped ## NAME ## ArrayRO(JNIEnv* env, PRIMITIVE_TYPE ## Array javaArray) \ + : mEnv(env) { \ + if (javaArray == NULL) { \ + mJavaArray = NULL; \ + mSize = 0; \ + mRawArray = NULL; \ + jniThrowNullPointerException(mEnv, NULL); \ + } else { \ + reset(javaArray); \ + } \ + } \ + ~Scoped ## NAME ## ArrayRO() { \ + if (mRawArray != NULL && mRawArray != mBuffer) { \ + mEnv->Release ## NAME ## ArrayElements(mJavaArray, mRawArray, JNI_ABORT); \ + } \ + } \ + void reset(PRIMITIVE_TYPE ## Array javaArray) { \ + mJavaArray = javaArray; \ + mSize = mEnv->GetArrayLength(mJavaArray); \ + if (mSize <= buffer_size) { \ + mEnv->Get ## NAME ## ArrayRegion(mJavaArray, 0, mSize, mBuffer); \ + mRawArray = mBuffer; \ + } else { \ + mRawArray = mEnv->Get ## NAME ## ArrayElements(mJavaArray, NULL); \ + } \ + } \ + const PRIMITIVE_TYPE* get() const { return mRawArray; } \ + PRIMITIVE_TYPE ## Array getJavaArray() const { return mJavaArray; } \ + const PRIMITIVE_TYPE& operator[](size_t n) const { return mRawArray[n]; } \ + size_t size() const { return mSize; } \ + private: \ + static const jsize buffer_size = 1024; \ + JNIEnv* const mEnv; \ + PRIMITIVE_TYPE ## Array mJavaArray; \ + POINTER_TYPE(PRIMITIVE_TYPE) mRawArray; \ + jsize mSize; \ + PRIMITIVE_TYPE mBuffer[buffer_size]; \ + DISALLOW_COPY_AND_ASSIGN(Scoped ## NAME ## ArrayRO); \ + } + +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RO(jboolean, Boolean); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RO(jbyte, Byte); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RO(jchar, Char); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RO(jdouble, Double); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RO(jfloat, Float); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RO(jint, Int); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RO(jlong, Long); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RO(jshort, Short); + +#undef INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RO + +// ScopedBooleanArrayRW, ScopedByteArrayRW, ScopedCharArrayRW, ScopedDoubleArrayRW, +// ScopedFloatArrayRW, ScopedIntArrayRW, ScopedLongArrayRW, and ScopedShortArrayRW provide +// convenient read-write access to Java arrays from JNI code. These are more expensive, +// since they entail a copy back onto the Java heap, and should only be used when necessary. +#define INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RW(PRIMITIVE_TYPE, NAME) \ + class Scoped ## NAME ## ArrayRW { \ + public: \ + explicit Scoped ## NAME ## ArrayRW(JNIEnv* env) \ + : mEnv(env), mJavaArray(NULL), mRawArray(NULL) {} \ + Scoped ## NAME ## ArrayRW(JNIEnv* env, PRIMITIVE_TYPE ## Array javaArray) \ + : mEnv(env), mJavaArray(javaArray), mRawArray(NULL) { \ + if (mJavaArray == NULL) { \ + jniThrowNullPointerException(mEnv, NULL); \ + } else { \ + mRawArray = mEnv->Get ## NAME ## ArrayElements(mJavaArray, NULL); \ + } \ + } \ + ~Scoped ## NAME ## ArrayRW() { \ + if (mRawArray) { \ + mEnv->Release ## NAME ## ArrayElements(mJavaArray, mRawArray, 0); \ + } \ + } \ + void reset(PRIMITIVE_TYPE ## Array javaArray) { \ + mJavaArray = javaArray; \ + mRawArray = mEnv->Get ## NAME ## ArrayElements(mJavaArray, NULL); \ + } \ + const PRIMITIVE_TYPE* get() const { return mRawArray; } \ + PRIMITIVE_TYPE ## Array getJavaArray() const { return mJavaArray; } \ + const PRIMITIVE_TYPE& operator[](size_t n) const { return mRawArray[n]; } \ + POINTER_TYPE(PRIMITIVE_TYPE) get() { return mRawArray; } \ + REFERENCE_TYPE(PRIMITIVE_TYPE) operator[](size_t n) { return mRawArray[n]; } \ + size_t size() const { return mEnv->GetArrayLength(mJavaArray); } \ + private: \ + JNIEnv* const mEnv; \ + PRIMITIVE_TYPE ## Array mJavaArray; \ + POINTER_TYPE(PRIMITIVE_TYPE) mRawArray; \ + DISALLOW_COPY_AND_ASSIGN(Scoped ## NAME ## ArrayRW); \ + } + +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RW(jboolean, Boolean); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RW(jbyte, Byte); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RW(jchar, Char); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RW(jdouble, Double); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RW(jfloat, Float); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RW(jint, Int); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RW(jlong, Long); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RW(jshort, Short); + +#undef INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RW +#undef POINTER_TYPE +#undef REFERENCE_TYPE + +#endif // SCOPED_PRIMITIVE_ARRAY_H_ diff --git a/third_party/libnativehelper/header_only_include/nativehelper/scoped_string_chars.h b/third_party/libnativehelper/header_only_include/nativehelper/scoped_string_chars.h new file mode 100644 index 0000000000..4debb2af1d --- /dev/null +++ b/third_party/libnativehelper/header_only_include/nativehelper/scoped_string_chars.h @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SCOPED_STRING_CHARS_H_ +#define SCOPED_STRING_CHARS_H_ + +#include "jni.h" +#include "nativehelper_utils.h" + +// A smart pointer that provides access to a jchar* given a JNI jstring. +// Unlike GetStringChars, we throw NullPointerException rather than abort if +// passed a null jstring, and get will return NULL. +// This makes the correct idiom very simple: +// +// ScopedStringChars name(env, java_name); +// if (name.get() == NULL) { +// return NULL; +// } +class ScopedStringChars { + public: + ScopedStringChars(JNIEnv* env, jstring s) : env_(env), string_(s), size_(0) { + if (s == NULL) { + chars_ = NULL; + jniThrowNullPointerException(env, NULL); + } else { + chars_ = env->GetStringChars(string_, NULL); + if (chars_ != NULL) { + size_ = env->GetStringLength(string_); + } + } + } + + ~ScopedStringChars() { + if (chars_ != NULL) { + env_->ReleaseStringChars(string_, chars_); + } + } + + const jchar* get() const { + return chars_; + } + + size_t size() const { + return size_; + } + + const jchar& operator[](size_t n) const { + return chars_[n]; + } + + private: + JNIEnv* const env_; + const jstring string_; + const jchar* chars_; + size_t size_; + + DISALLOW_COPY_AND_ASSIGN(ScopedStringChars); +}; + +#endif // SCOPED_STRING_CHARS_H_ diff --git a/third_party/libnativehelper/header_only_include/nativehelper/scoped_utf_chars.h b/third_party/libnativehelper/header_only_include/nativehelper/scoped_utf_chars.h new file mode 100644 index 0000000000..bab7cb7d39 --- /dev/null +++ b/third_party/libnativehelper/header_only_include/nativehelper/scoped_utf_chars.h @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SCOPED_UTF_CHARS_H_ +#define SCOPED_UTF_CHARS_H_ + +#include + +#include "jni.h" +#include "nativehelper_utils.h" + +// A smart pointer that provides read-only access to a Java string's UTF chars. +// Unlike GetStringUTFChars, we throw NullPointerException rather than abort if +// passed a null jstring, and c_str will return nullptr. +// This makes the correct idiom very simple: +// +// ScopedUtfChars name(env, java_name); +// if (name.c_str() == nullptr) { +// return nullptr; +// } +class ScopedUtfChars { + public: + ScopedUtfChars(JNIEnv* env, jstring s) : env_(env), string_(s) { + if (s == nullptr) { + utf_chars_ = nullptr; + jniThrowNullPointerException(env, nullptr); + } else { + utf_chars_ = env->GetStringUTFChars(s, nullptr); + } + } + + ScopedUtfChars(ScopedUtfChars&& rhs) noexcept : + env_(rhs.env_), string_(rhs.string_), utf_chars_(rhs.utf_chars_) { + rhs.env_ = nullptr; + rhs.string_ = nullptr; + rhs.utf_chars_ = nullptr; + } + + ~ScopedUtfChars() { + if (utf_chars_) { + env_->ReleaseStringUTFChars(string_, utf_chars_); + } + } + + ScopedUtfChars& operator=(ScopedUtfChars&& rhs) noexcept { + if (this != &rhs) { + // Delete the currently owned UTF chars. + this->~ScopedUtfChars(); + + // Move the rhs ScopedUtfChars and zero it out. + env_ = rhs.env_; + string_ = rhs.string_; + utf_chars_ = rhs.utf_chars_; + rhs.env_ = nullptr; + rhs.string_ = nullptr; + rhs.utf_chars_ = nullptr; + } + return *this; + } + + const char* c_str() const { + return utf_chars_; + } + + size_t size() const { + return strlen(utf_chars_); + } + + const char& operator[](size_t n) const { + return utf_chars_[n]; + } + + private: + JNIEnv* env_; + jstring string_; + const char* utf_chars_; + + DISALLOW_COPY_AND_ASSIGN(ScopedUtfChars); +}; + +#endif // SCOPED_UTF_CHARS_H_ diff --git a/third_party/libnativehelper/include/nativehelper/JNIHelp.h b/third_party/libnativehelper/include/nativehelper/JNIHelp.h new file mode 100644 index 0000000000..bab5dd5766 --- /dev/null +++ b/third_party/libnativehelper/include/nativehelper/JNIHelp.h @@ -0,0 +1,300 @@ +/* + * Copyright (C) 2007 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * JNI helper functions. + * + * This file may be included by C or C++ code, which is trouble because jni.h + * uses different typedefs for JNIEnv in each language. + */ +#ifndef NATIVEHELPER_JNIHELP_H_ +#define NATIVEHELPER_JNIHELP_H_ + +#include +#include + +#include +#include "module_api.h" + +#ifndef NELEM +# define NELEM(x) ((int) (sizeof(x) / sizeof((x)[0]))) +#endif + +/* + * Register one or more native methods with a particular class. + * "className" looks like "java/lang/String". Aborts on failure. + * TODO: fix all callers and change the return type to void. + */ +MODULE_API int jniRegisterNativeMethods(C_JNIEnv* env, + const char* className, + const JNINativeMethod* gMethods, + int numMethods); + +/* + * Throw an exception with the specified class and an optional message. + * + * The "className" argument will be passed directly to FindClass, which + * takes strings with slashes (e.g. "java/lang/Object"). + * + * If an exception is currently pending, we log a warning message and + * clear it. + * + * Returns 0 on success, nonzero if something failed (e.g. the exception + * class couldn't be found, so *an* exception will still be pending). + * + * Currently aborts the VM if it can't throw the exception. + */ +MODULE_API int jniThrowException(C_JNIEnv* env, const char* className, const char* msg); + +/* + * Throw an exception with the specified class and formatted error message. + * + * The "className" argument will be passed directly to FindClass, which + * takes strings with slashes (e.g. "java/lang/Object"). + * + * If an exception is currently pending, we log a warning message and + * clear it. + * + * Returns 0 on success, nonzero if something failed (e.g. the exception + * class couldn't be found, so *an* exception will still be pending). + * + * Currently aborts the VM if it can't throw the exception. + */ +MODULE_API int jniThrowExceptionFmt(C_JNIEnv* env, const char* className, const char* fmt, va_list args); + +/* + * Throw a java.lang.NullPointerException, with an optional message. + */ +MODULE_API int jniThrowNullPointerException(C_JNIEnv* env, const char* msg); + +/* + * Throw a java.lang.RuntimeException, with an optional message. + */ +MODULE_API int jniThrowRuntimeException(C_JNIEnv* env, const char* msg); + +/* + * Throw a java.io.IOException, generating the message from errno. + */ +MODULE_API int jniThrowIOException(C_JNIEnv* env, int errnum); + +/* + * Return a pointer to a locale-dependent error string explaining errno + * value 'errnum'. The returned pointer may or may not be equal to 'buf'. + * This function is thread-safe (unlike strerror) and portable (unlike + * strerror_r). + */ +MODULE_API const char* jniStrError(int errnum, char* buf, size_t buflen); + +/* + * Returns a new java.io.FileDescriptor for the given int fd. + */ +MODULE_API jobject jniCreateFileDescriptor(C_JNIEnv* env, int fd); + +/* + * Returns the int fd from a java.io.FileDescriptor. + */ +MODULE_API int jniGetFDFromFileDescriptor(C_JNIEnv* env, jobject fileDescriptor); + +/* + * Sets the int fd in a java.io.FileDescriptor. Throws java.lang.NullPointerException + * if fileDescriptor is null. + */ +MODULE_API void jniSetFileDescriptorOfFD(C_JNIEnv* env, + jobject fileDescriptor, + int value); + +/* + * Returns the long ownerId from a java.io.FileDescriptor. + */ +MODULE_API jlong jniGetOwnerIdFromFileDescriptor(C_JNIEnv* env, jobject fileDescriptor); + +/* + * Gets the managed heap array backing a java.nio.Buffer instance. + * + * Returns nullptr if there is no array backing. + * + * This method performs a JNI call to java.nio.NIOAccess.getBaseArray(). + */ +MODULE_API jarray jniGetNioBufferBaseArray(C_JNIEnv* env, jobject nioBuffer); + +/* + * Gets the offset in bytes from the start of the managed heap array backing the buffer. + * + * Returns 0 if there is no array backing. + * + * This method performs a JNI call to java.nio.NIOAccess.getBaseArrayOffset(). + */ +MODULE_API jint jniGetNioBufferBaseArrayOffset(C_JNIEnv* env, jobject nioBuffer); + +/* + * Gets field information from a java.nio.Buffer instance. + * + * Reads the |position|, |limit|, and |elementSizeShift| fields from the buffer instance. + * + * Returns the |address| field of the java.nio.Buffer instance which is only valid (non-zero) when + * the buffer is backed by a direct buffer. + */ +MODULE_API jlong jniGetNioBufferFields(C_JNIEnv* env, + jobject nioBuffer, + /*out*/jint* position, + /*out*/jint* limit, + /*out*/jint* elementSizeShift); + +/* + * Gets the current position from a java.nio.Buffer as a pointer to memory in a fixed buffer. + * + * Returns 0 if |nioBuffer| is not backed by a direct buffer. + * + * This method reads the |address|, |position|, and |elementSizeShift| fields from the + * java.nio.Buffer instance to calculate the pointer address for the current position. + */ +MODULE_API jlong jniGetNioBufferPointer(C_JNIEnv* env, jobject nioBuffer); + +/* + * Returns the reference from a java.lang.ref.Reference. + */ +MODULE_API jobject jniGetReferent(C_JNIEnv* env, jobject ref); + +/* + * Returns a Java String object created from UTF-16 data either from jchar or, + * if called from C++11, char16_t (a bitwise identical distinct type). + */ +MODULE_API jstring jniCreateString(C_JNIEnv* env, const jchar* unicodeChars, jsize len); + +/* + * Log a message and an exception. + * If exception is NULL, logs the current exception in the JNI environment. + */ +MODULE_API void jniLogException(C_JNIEnv* env, int priority, const char* tag, jthrowable exception); + +/* + * Clear the cache of constants libnativehelper is using. + */ +MODULE_API void jniUninitializeConstants(); + +/* + * For C++ code, we provide inlines that map to the C functions. g++ always + * inlines these, even on non-optimized builds. + */ +#if defined(__cplusplus) + +inline int jniRegisterNativeMethods(JNIEnv* env, const char* className, const JNINativeMethod* gMethods, int numMethods) { + return jniRegisterNativeMethods(&env->functions, className, gMethods, numMethods); +} + +inline int jniThrowException(JNIEnv* env, const char* className, const char* msg) { + return jniThrowException(&env->functions, className, msg); +} + +/* + * Equivalent to jniThrowException but with a printf-like format string and + * variable-length argument list. This is only available in C++. + */ +inline int jniThrowExceptionFmt(JNIEnv* env, const char* className, const char* fmt, ...) { + va_list args; + va_start(args, fmt); + return jniThrowExceptionFmt(&env->functions, className, fmt, args); + va_end(args); +} + +inline int jniThrowNullPointerException(JNIEnv* env, const char* msg) { + return jniThrowNullPointerException(&env->functions, msg); +} + +inline int jniThrowRuntimeException(JNIEnv* env, const char* msg) { + return jniThrowRuntimeException(&env->functions, msg); +} + +inline int jniThrowIOException(JNIEnv* env, int errnum) { + return jniThrowIOException(&env->functions, errnum); +} + +inline jobject jniCreateFileDescriptor(JNIEnv* env, int fd) { + return jniCreateFileDescriptor(&env->functions, fd); +} + +inline int jniGetFDFromFileDescriptor(JNIEnv* env, jobject fileDescriptor) { + return jniGetFDFromFileDescriptor(&env->functions, fileDescriptor); +} + +inline void jniSetFileDescriptorOfFD(JNIEnv* env, jobject fileDescriptor, int value) { + jniSetFileDescriptorOfFD(&env->functions, fileDescriptor, value); +} + +inline jlong jniGetOwnerIdFromFileDescriptor(JNIEnv* env, jobject fileDescriptor) { + return jniGetOwnerIdFromFileDescriptor(&env->functions, fileDescriptor); +} + +inline jarray jniGetNioBufferBaseArray(JNIEnv* env, jobject nioBuffer) { + return jniGetNioBufferBaseArray(&env->functions, nioBuffer); +} + +inline jint jniGetNioBufferBaseArrayOffset(JNIEnv* env, jobject nioBuffer) { + return jniGetNioBufferBaseArrayOffset(&env->functions, nioBuffer); +} + +inline jlong jniGetNioBufferFields(JNIEnv* env, jobject nioBuffer, + jint* position, jint* limit, jint* elementSizeShift) { + return jniGetNioBufferFields(&env->functions, nioBuffer, + position, limit, elementSizeShift); +} + +inline jlong jniGetNioBufferPointer(JNIEnv* env, jobject nioBuffer) { + return jniGetNioBufferPointer(&env->functions, nioBuffer); +} + +inline jobject jniGetReferent(JNIEnv* env, jobject ref) { + return jniGetReferent(&env->functions, ref); +} + +inline jstring jniCreateString(JNIEnv* env, const jchar* unicodeChars, jsize len) { + return jniCreateString(&env->functions, unicodeChars, len); +} + +inline jstring jniCreateString(JNIEnv* env, const char16_t* unicodeChars, jsize len) { + return jniCreateString(&env->functions, reinterpret_cast(unicodeChars), len); +} + +inline void jniLogException(JNIEnv* env, int priority, const char* tag, jthrowable exception = NULL) { + jniLogException(&env->functions, priority, tag, exception); +} + +#if !defined(DISALLOW_COPY_AND_ASSIGN) +// DISALLOW_COPY_AND_ASSIGN disallows the copy and operator= functions. It goes in the private: +// declarations in a class. +#define DISALLOW_COPY_AND_ASSIGN(TypeName) \ + TypeName(const TypeName&) = delete; \ + void operator=(const TypeName&) = delete +#endif // !defined(DISALLOW_COPY_AND_ASSIGN) + +#endif // defined(__cplusplus) + +/* + * TEMP_FAILURE_RETRY is defined by some, but not all, versions of + * . (Alas, it is not as standard as we'd hoped!) So, if it's + * not already defined, then define it here. + */ +#ifndef TEMP_FAILURE_RETRY +/* Used to retry syscalls that can return EINTR. */ +#define TEMP_FAILURE_RETRY(exp) ({ \ + typeof (exp) _rc; \ + do { \ + _rc = (exp); \ + } while (_rc == -1 && errno == EINTR); \ + _rc; }) +#endif + +#endif /* NATIVEHELPER_JNIHELP_H_ */ diff --git a/third_party/libnativehelper/include/nativehelper/JniInvocation.h b/third_party/libnativehelper/include/nativehelper/JniInvocation.h new file mode 100644 index 0000000000..0d87aa98ae --- /dev/null +++ b/third_party/libnativehelper/include/nativehelper/JniInvocation.h @@ -0,0 +1,80 @@ +/* + * Copyright (C) 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef JNI_INVOCATION_H_included +#define JNI_INVOCATION_H_included + +#include +#include "module_api.h" + +struct JniInvocationImpl; + +MODULE_API struct JniInvocationImpl* JniInvocationCreate(); +MODULE_API void JniInvocationDestroy(struct JniInvocationImpl* instance); +MODULE_API int JniInvocationInit(struct JniInvocationImpl* instance, const char* library); +MODULE_API const char* JniInvocationGetLibrary(const char* library, char* buffer); + +#ifdef __cplusplus + +// JniInvocation adds a layer of indirection for applications using +// the JNI invocation API to allow the JNI implementation to be +// selected dynamically. Apps can specify a specific implementation to +// be used by calling InitJniInvocation. If this is not done, the +// library will chosen based on the value of Android system property +// persist.sys.dalvik.vm.lib on the device, and otherwise fall back to +// a hard-coded default implementation. +class JniInvocation final { + public: + JniInvocation() { + impl_ = JniInvocationCreate(); + } + + ~JniInvocation() { + JniInvocationDestroy(impl_); + } + + // Initialize JNI invocation API. library should specifiy a valid + // shared library for opening via dlopen providing a JNI invocation + // implementation, or null to allow defaulting via + // persist.sys.dalvik.vm.lib. + bool Init(const char* library) { + return JniInvocationInit(impl_, library) != 0; + } + + // Exposes which library is actually loaded from the given name. The + // buffer of size PROPERTY_VALUE_MAX will be used to load the system + // property for the default library, if necessary. If no buffer is + // provided, the fallback value will be used. + static const char* GetLibrary(const char* library, char* buffer) { + return JniInvocationGetLibrary(library, buffer); + } + + private: + JniInvocation(const JniInvocation&) = delete; + JniInvocation& operator=(const JniInvocation&) = delete; + + static const char* GetLibrary(const char* library, char* buffer, bool (*is_debuggable)(), + int (*get_library_system_property)(char* buffer)); + + JniInvocationImpl* impl_; + + friend class JNIInvocation_Debuggable_Test; + friend class JNIInvocation_NonDebuggable_Test; +}; + +#endif // __cplusplus + +#endif // JNI_INVOCATION_H_included diff --git a/third_party/libnativehelper/include/nativehelper/ScopedBytes.h b/third_party/libnativehelper/include/nativehelper/ScopedBytes.h new file mode 100644 index 0000000000..7cb2ad09c6 --- /dev/null +++ b/third_party/libnativehelper/include/nativehelper/ScopedBytes.h @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SCOPED_BYTES_H_included +#define SCOPED_BYTES_H_included + +#include "JNIHelp.h" +#include + +#endif // SCOPED_BYTES_H_included diff --git a/third_party/libnativehelper/include/nativehelper/ScopedLocalFrame.h b/third_party/libnativehelper/include/nativehelper/ScopedLocalFrame.h new file mode 100644 index 0000000000..57873f271e --- /dev/null +++ b/third_party/libnativehelper/include/nativehelper/ScopedLocalFrame.h @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SCOPED_LOCAL_FRAME_H_included +#define SCOPED_LOCAL_FRAME_H_included + +#include + +#endif // SCOPED_LOCAL_FRAME_H_included diff --git a/third_party/libnativehelper/include/nativehelper/ScopedLocalRef.h b/third_party/libnativehelper/include/nativehelper/ScopedLocalRef.h new file mode 100644 index 0000000000..0fb03d75ac --- /dev/null +++ b/third_party/libnativehelper/include/nativehelper/ScopedLocalRef.h @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SCOPED_LOCAL_REF_H_included +#define SCOPED_LOCAL_REF_H_included + +#include "JNIHelp.h" +#include + +#endif // SCOPED_LOCAL_REF_H_included diff --git a/third_party/libnativehelper/include/nativehelper/ScopedPrimitiveArray.h b/third_party/libnativehelper/include/nativehelper/ScopedPrimitiveArray.h new file mode 100644 index 0000000000..626b64f18f --- /dev/null +++ b/third_party/libnativehelper/include/nativehelper/ScopedPrimitiveArray.h @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SCOPED_PRIMITIVE_ARRAY_H_included +#define SCOPED_PRIMITIVE_ARRAY_H_included + +#include "JNIHelp.h" +#include + +#endif // SCOPED_PRIMITIVE_ARRAY_H_included diff --git a/third_party/libnativehelper/include/nativehelper/ScopedStringChars.h b/third_party/libnativehelper/include/nativehelper/ScopedStringChars.h new file mode 100644 index 0000000000..59c405c09f --- /dev/null +++ b/third_party/libnativehelper/include/nativehelper/ScopedStringChars.h @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SCOPED_STRING_CHARS_H_included +#define SCOPED_STRING_CHARS_H_included + +#include "JNIHelp.h" +#include + +#endif // SCOPED_STRING_CHARS_H_included diff --git a/third_party/libnativehelper/include/nativehelper/ScopedUtfChars.h b/third_party/libnativehelper/include/nativehelper/ScopedUtfChars.h new file mode 100644 index 0000000000..f123115feb --- /dev/null +++ b/third_party/libnativehelper/include/nativehelper/ScopedUtfChars.h @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SCOPED_UTF_CHARS_H_included +#define SCOPED_UTF_CHARS_H_included + +#include "JNIHelp.h" +#include + +#endif // SCOPED_UTF_CHARS_H_included diff --git a/third_party/libnativehelper/include/nativehelper/module_api.h b/third_party/libnativehelper/include/nativehelper/module_api.h new file mode 100644 index 0000000000..8b109e3935 --- /dev/null +++ b/third_party/libnativehelper/include/nativehelper/module_api.h @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#ifdef __cplusplus +#define MODULE_API extern "C" +#else +#define MODULE_API +#endif // __cplusplus diff --git a/third_party/libnativehelper/include/nativehelper/toStringArray.h b/third_party/libnativehelper/include/nativehelper/toStringArray.h new file mode 100644 index 0000000000..1965d6a7fe --- /dev/null +++ b/third_party/libnativehelper/include/nativehelper/toStringArray.h @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef TO_STRING_ARRAY_H_included +#define TO_STRING_ARRAY_H_included + +#include + +#include +#include "module_api.h" + +// Public API for libnativehelper library. +MODULE_API jobjectArray newStringArray(JNIEnv* env, size_t count); +MODULE_API jobjectArray toStringArray(JNIEnv* env, const char* const* strings); + +#ifdef __cplusplus + +#include +#include +#include "ScopedLocalRef.h" + +template +jobjectArray toStringArray(JNIEnv* env, Counter* counter, Getter* getter) { + size_t count = (*counter)(); + jobjectArray result = newStringArray(env, count); + if (result == NULL) { + return NULL; + } + for (size_t i = 0; i < count; ++i) { + ScopedLocalRef s(env, env->NewStringUTF((*getter)(i))); + if (env->ExceptionCheck()) { + return NULL; + } + env->SetObjectArrayElement(result, i, s.get()); + if (env->ExceptionCheck()) { + return NULL; + } + } + return result; +} + +struct VectorCounter { + const std::vector& strings; + explicit VectorCounter(const std::vector& strings) : strings(strings) {} + size_t operator()() { + return strings.size(); + } +}; +struct VectorGetter { + const std::vector& strings; + explicit VectorGetter(const std::vector& strings) : strings(strings) {} + const char* operator()(size_t i) { + return strings[i].c_str(); + } +}; + +inline jobjectArray toStringArray(JNIEnv* env, const std::vector& strings) { + VectorCounter counter(strings); + VectorGetter getter(strings); + return toStringArray(env, &counter, &getter); +} + +#endif // __cplusplus + +#endif // TO_STRING_ARRAY_H_included diff --git a/third_party/libnativehelper/include_jni/jni.h b/third_party/libnativehelper/include_jni/jni.h new file mode 100644 index 0000000000..4c343139e0 --- /dev/null +++ b/third_party/libnativehelper/include_jni/jni.h @@ -0,0 +1,1143 @@ +/* + * Copyright (C) 2006 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * JNI specification, as defined by Sun: + * http://java.sun.com/javase/6/docs/technotes/guides/jni/spec/jniTOC.html + * + * Everything here is expected to be VM-neutral. + */ + +#ifndef JNI_H_ +#define JNI_H_ + +#include +#include + +/* Primitive types that match up with Java equivalents. */ +typedef uint8_t jboolean; /* unsigned 8 bits */ +typedef int8_t jbyte; /* signed 8 bits */ +typedef uint16_t jchar; /* unsigned 16 bits */ +typedef int16_t jshort; /* signed 16 bits */ +typedef int32_t jint; /* signed 32 bits */ +typedef int64_t jlong; /* signed 64 bits */ +typedef float jfloat; /* 32-bit IEEE 754 */ +typedef double jdouble; /* 64-bit IEEE 754 */ + +/* "cardinal indices and sizes" */ +typedef jint jsize; + +#ifdef __cplusplus +/* + * Reference types, in C++ + */ +class _jobject {}; +class _jclass : public _jobject {}; +class _jstring : public _jobject {}; +class _jarray : public _jobject {}; +class _jobjectArray : public _jarray {}; +class _jbooleanArray : public _jarray {}; +class _jbyteArray : public _jarray {}; +class _jcharArray : public _jarray {}; +class _jshortArray : public _jarray {}; +class _jintArray : public _jarray {}; +class _jlongArray : public _jarray {}; +class _jfloatArray : public _jarray {}; +class _jdoubleArray : public _jarray {}; +class _jthrowable : public _jobject {}; + +typedef _jobject* jobject; +typedef _jclass* jclass; +typedef _jstring* jstring; +typedef _jarray* jarray; +typedef _jobjectArray* jobjectArray; +typedef _jbooleanArray* jbooleanArray; +typedef _jbyteArray* jbyteArray; +typedef _jcharArray* jcharArray; +typedef _jshortArray* jshortArray; +typedef _jintArray* jintArray; +typedef _jlongArray* jlongArray; +typedef _jfloatArray* jfloatArray; +typedef _jdoubleArray* jdoubleArray; +typedef _jthrowable* jthrowable; +typedef _jobject* jweak; + + +#else /* not __cplusplus */ + +/* + * Reference types, in C. + */ +typedef void* jobject; +typedef jobject jclass; +typedef jobject jstring; +typedef jobject jarray; +typedef jarray jobjectArray; +typedef jarray jbooleanArray; +typedef jarray jbyteArray; +typedef jarray jcharArray; +typedef jarray jshortArray; +typedef jarray jintArray; +typedef jarray jlongArray; +typedef jarray jfloatArray; +typedef jarray jdoubleArray; +typedef jobject jthrowable; +typedef jobject jweak; + +#endif /* not __cplusplus */ + +struct _jfieldID; /* opaque structure */ +typedef struct _jfieldID* jfieldID; /* field IDs */ + +struct _jmethodID; /* opaque structure */ +typedef struct _jmethodID* jmethodID; /* method IDs */ + +struct JNIInvokeInterface; + +typedef union jvalue { + jboolean z; + jbyte b; + jchar c; + jshort s; + jint i; + jlong j; + jfloat f; + jdouble d; + jobject l; +} jvalue; + +typedef enum jobjectRefType { + JNIInvalidRefType = 0, + JNILocalRefType = 1, + JNIGlobalRefType = 2, + JNIWeakGlobalRefType = 3 +} jobjectRefType; + +typedef struct { + const char* name; + const char* signature; + void* fnPtr; +} JNINativeMethod; + +struct _JNIEnv; +struct _JavaVM; +typedef const struct JNINativeInterface* C_JNIEnv; + +#if defined(__cplusplus) +typedef _JNIEnv JNIEnv; +typedef _JavaVM JavaVM; +#else +typedef const struct JNINativeInterface* JNIEnv; +typedef const struct JNIInvokeInterface* JavaVM; +#endif + +/* + * Table of interface function pointers. + */ +struct JNINativeInterface { + void* reserved0; + void* reserved1; + void* reserved2; + void* reserved3; + + jint (*GetVersion)(JNIEnv *); + + jclass (*DefineClass)(JNIEnv*, const char*, jobject, const jbyte*, + jsize); + jclass (*FindClass)(JNIEnv*, const char*); + + jmethodID (*FromReflectedMethod)(JNIEnv*, jobject); + jfieldID (*FromReflectedField)(JNIEnv*, jobject); + /* spec doesn't show jboolean parameter */ + jobject (*ToReflectedMethod)(JNIEnv*, jclass, jmethodID, jboolean); + + jclass (*GetSuperclass)(JNIEnv*, jclass); + jboolean (*IsAssignableFrom)(JNIEnv*, jclass, jclass); + + /* spec doesn't show jboolean parameter */ + jobject (*ToReflectedField)(JNIEnv*, jclass, jfieldID, jboolean); + + jint (*Throw)(JNIEnv*, jthrowable); + jint (*ThrowNew)(JNIEnv *, jclass, const char *); + jthrowable (*ExceptionOccurred)(JNIEnv*); + void (*ExceptionDescribe)(JNIEnv*); + void (*ExceptionClear)(JNIEnv*); + void (*FatalError)(JNIEnv*, const char*); + + jint (*PushLocalFrame)(JNIEnv*, jint); + jobject (*PopLocalFrame)(JNIEnv*, jobject); + + jobject (*NewGlobalRef)(JNIEnv*, jobject); + void (*DeleteGlobalRef)(JNIEnv*, jobject); + void (*DeleteLocalRef)(JNIEnv*, jobject); + jboolean (*IsSameObject)(JNIEnv*, jobject, jobject); + + jobject (*NewLocalRef)(JNIEnv*, jobject); + jint (*EnsureLocalCapacity)(JNIEnv*, jint); + + jobject (*AllocObject)(JNIEnv*, jclass); + jobject (*NewObject)(JNIEnv*, jclass, jmethodID, ...); + jobject (*NewObjectV)(JNIEnv*, jclass, jmethodID, va_list); + jobject (*NewObjectA)(JNIEnv*, jclass, jmethodID, const jvalue*); + + jclass (*GetObjectClass)(JNIEnv*, jobject); + jboolean (*IsInstanceOf)(JNIEnv*, jobject, jclass); + jmethodID (*GetMethodID)(JNIEnv*, jclass, const char*, const char*); + + jobject (*CallObjectMethod)(JNIEnv*, jobject, jmethodID, ...); + jobject (*CallObjectMethodV)(JNIEnv*, jobject, jmethodID, va_list); + jobject (*CallObjectMethodA)(JNIEnv*, jobject, jmethodID, const jvalue*); + jboolean (*CallBooleanMethod)(JNIEnv*, jobject, jmethodID, ...); + jboolean (*CallBooleanMethodV)(JNIEnv*, jobject, jmethodID, va_list); + jboolean (*CallBooleanMethodA)(JNIEnv*, jobject, jmethodID, const jvalue*); + jbyte (*CallByteMethod)(JNIEnv*, jobject, jmethodID, ...); + jbyte (*CallByteMethodV)(JNIEnv*, jobject, jmethodID, va_list); + jbyte (*CallByteMethodA)(JNIEnv*, jobject, jmethodID, const jvalue*); + jchar (*CallCharMethod)(JNIEnv*, jobject, jmethodID, ...); + jchar (*CallCharMethodV)(JNIEnv*, jobject, jmethodID, va_list); + jchar (*CallCharMethodA)(JNIEnv*, jobject, jmethodID, const jvalue*); + jshort (*CallShortMethod)(JNIEnv*, jobject, jmethodID, ...); + jshort (*CallShortMethodV)(JNIEnv*, jobject, jmethodID, va_list); + jshort (*CallShortMethodA)(JNIEnv*, jobject, jmethodID, const jvalue*); + jint (*CallIntMethod)(JNIEnv*, jobject, jmethodID, ...); + jint (*CallIntMethodV)(JNIEnv*, jobject, jmethodID, va_list); + jint (*CallIntMethodA)(JNIEnv*, jobject, jmethodID, const jvalue*); + jlong (*CallLongMethod)(JNIEnv*, jobject, jmethodID, ...); + jlong (*CallLongMethodV)(JNIEnv*, jobject, jmethodID, va_list); + jlong (*CallLongMethodA)(JNIEnv*, jobject, jmethodID, const jvalue*); + jfloat (*CallFloatMethod)(JNIEnv*, jobject, jmethodID, ...); + jfloat (*CallFloatMethodV)(JNIEnv*, jobject, jmethodID, va_list); + jfloat (*CallFloatMethodA)(JNIEnv*, jobject, jmethodID, const jvalue*); + jdouble (*CallDoubleMethod)(JNIEnv*, jobject, jmethodID, ...); + jdouble (*CallDoubleMethodV)(JNIEnv*, jobject, jmethodID, va_list); + jdouble (*CallDoubleMethodA)(JNIEnv*, jobject, jmethodID, const jvalue*); + void (*CallVoidMethod)(JNIEnv*, jobject, jmethodID, ...); + void (*CallVoidMethodV)(JNIEnv*, jobject, jmethodID, va_list); + void (*CallVoidMethodA)(JNIEnv*, jobject, jmethodID, const jvalue*); + + jobject (*CallNonvirtualObjectMethod)(JNIEnv*, jobject, jclass, + jmethodID, ...); + jobject (*CallNonvirtualObjectMethodV)(JNIEnv*, jobject, jclass, + jmethodID, va_list); + jobject (*CallNonvirtualObjectMethodA)(JNIEnv*, jobject, jclass, + jmethodID, const jvalue*); + jboolean (*CallNonvirtualBooleanMethod)(JNIEnv*, jobject, jclass, + jmethodID, ...); + jboolean (*CallNonvirtualBooleanMethodV)(JNIEnv*, jobject, jclass, + jmethodID, va_list); + jboolean (*CallNonvirtualBooleanMethodA)(JNIEnv*, jobject, jclass, + jmethodID, const jvalue*); + jbyte (*CallNonvirtualByteMethod)(JNIEnv*, jobject, jclass, + jmethodID, ...); + jbyte (*CallNonvirtualByteMethodV)(JNIEnv*, jobject, jclass, + jmethodID, va_list); + jbyte (*CallNonvirtualByteMethodA)(JNIEnv*, jobject, jclass, + jmethodID, const jvalue*); + jchar (*CallNonvirtualCharMethod)(JNIEnv*, jobject, jclass, + jmethodID, ...); + jchar (*CallNonvirtualCharMethodV)(JNIEnv*, jobject, jclass, + jmethodID, va_list); + jchar (*CallNonvirtualCharMethodA)(JNIEnv*, jobject, jclass, + jmethodID, const jvalue*); + jshort (*CallNonvirtualShortMethod)(JNIEnv*, jobject, jclass, + jmethodID, ...); + jshort (*CallNonvirtualShortMethodV)(JNIEnv*, jobject, jclass, + jmethodID, va_list); + jshort (*CallNonvirtualShortMethodA)(JNIEnv*, jobject, jclass, + jmethodID, const jvalue*); + jint (*CallNonvirtualIntMethod)(JNIEnv*, jobject, jclass, + jmethodID, ...); + jint (*CallNonvirtualIntMethodV)(JNIEnv*, jobject, jclass, + jmethodID, va_list); + jint (*CallNonvirtualIntMethodA)(JNIEnv*, jobject, jclass, + jmethodID, const jvalue*); + jlong (*CallNonvirtualLongMethod)(JNIEnv*, jobject, jclass, + jmethodID, ...); + jlong (*CallNonvirtualLongMethodV)(JNIEnv*, jobject, jclass, + jmethodID, va_list); + jlong (*CallNonvirtualLongMethodA)(JNIEnv*, jobject, jclass, + jmethodID, const jvalue*); + jfloat (*CallNonvirtualFloatMethod)(JNIEnv*, jobject, jclass, + jmethodID, ...); + jfloat (*CallNonvirtualFloatMethodV)(JNIEnv*, jobject, jclass, + jmethodID, va_list); + jfloat (*CallNonvirtualFloatMethodA)(JNIEnv*, jobject, jclass, + jmethodID, const jvalue*); + jdouble (*CallNonvirtualDoubleMethod)(JNIEnv*, jobject, jclass, + jmethodID, ...); + jdouble (*CallNonvirtualDoubleMethodV)(JNIEnv*, jobject, jclass, + jmethodID, va_list); + jdouble (*CallNonvirtualDoubleMethodA)(JNIEnv*, jobject, jclass, + jmethodID, const jvalue*); + void (*CallNonvirtualVoidMethod)(JNIEnv*, jobject, jclass, + jmethodID, ...); + void (*CallNonvirtualVoidMethodV)(JNIEnv*, jobject, jclass, + jmethodID, va_list); + void (*CallNonvirtualVoidMethodA)(JNIEnv*, jobject, jclass, + jmethodID, const jvalue*); + + jfieldID (*GetFieldID)(JNIEnv*, jclass, const char*, const char*); + + jobject (*GetObjectField)(JNIEnv*, jobject, jfieldID); + jboolean (*GetBooleanField)(JNIEnv*, jobject, jfieldID); + jbyte (*GetByteField)(JNIEnv*, jobject, jfieldID); + jchar (*GetCharField)(JNIEnv*, jobject, jfieldID); + jshort (*GetShortField)(JNIEnv*, jobject, jfieldID); + jint (*GetIntField)(JNIEnv*, jobject, jfieldID); + jlong (*GetLongField)(JNIEnv*, jobject, jfieldID); + jfloat (*GetFloatField)(JNIEnv*, jobject, jfieldID); + jdouble (*GetDoubleField)(JNIEnv*, jobject, jfieldID); + + void (*SetObjectField)(JNIEnv*, jobject, jfieldID, jobject); + void (*SetBooleanField)(JNIEnv*, jobject, jfieldID, jboolean); + void (*SetByteField)(JNIEnv*, jobject, jfieldID, jbyte); + void (*SetCharField)(JNIEnv*, jobject, jfieldID, jchar); + void (*SetShortField)(JNIEnv*, jobject, jfieldID, jshort); + void (*SetIntField)(JNIEnv*, jobject, jfieldID, jint); + void (*SetLongField)(JNIEnv*, jobject, jfieldID, jlong); + void (*SetFloatField)(JNIEnv*, jobject, jfieldID, jfloat); + void (*SetDoubleField)(JNIEnv*, jobject, jfieldID, jdouble); + + jmethodID (*GetStaticMethodID)(JNIEnv*, jclass, const char*, const char*); + + jobject (*CallStaticObjectMethod)(JNIEnv*, jclass, jmethodID, ...); + jobject (*CallStaticObjectMethodV)(JNIEnv*, jclass, jmethodID, va_list); + jobject (*CallStaticObjectMethodA)(JNIEnv*, jclass, jmethodID, const jvalue*); + jboolean (*CallStaticBooleanMethod)(JNIEnv*, jclass, jmethodID, ...); + jboolean (*CallStaticBooleanMethodV)(JNIEnv*, jclass, jmethodID, + va_list); + jboolean (*CallStaticBooleanMethodA)(JNIEnv*, jclass, jmethodID, const jvalue*); + jbyte (*CallStaticByteMethod)(JNIEnv*, jclass, jmethodID, ...); + jbyte (*CallStaticByteMethodV)(JNIEnv*, jclass, jmethodID, va_list); + jbyte (*CallStaticByteMethodA)(JNIEnv*, jclass, jmethodID, const jvalue*); + jchar (*CallStaticCharMethod)(JNIEnv*, jclass, jmethodID, ...); + jchar (*CallStaticCharMethodV)(JNIEnv*, jclass, jmethodID, va_list); + jchar (*CallStaticCharMethodA)(JNIEnv*, jclass, jmethodID, const jvalue*); + jshort (*CallStaticShortMethod)(JNIEnv*, jclass, jmethodID, ...); + jshort (*CallStaticShortMethodV)(JNIEnv*, jclass, jmethodID, va_list); + jshort (*CallStaticShortMethodA)(JNIEnv*, jclass, jmethodID, const jvalue*); + jint (*CallStaticIntMethod)(JNIEnv*, jclass, jmethodID, ...); + jint (*CallStaticIntMethodV)(JNIEnv*, jclass, jmethodID, va_list); + jint (*CallStaticIntMethodA)(JNIEnv*, jclass, jmethodID, const jvalue*); + jlong (*CallStaticLongMethod)(JNIEnv*, jclass, jmethodID, ...); + jlong (*CallStaticLongMethodV)(JNIEnv*, jclass, jmethodID, va_list); + jlong (*CallStaticLongMethodA)(JNIEnv*, jclass, jmethodID, const jvalue*); + jfloat (*CallStaticFloatMethod)(JNIEnv*, jclass, jmethodID, ...); + jfloat (*CallStaticFloatMethodV)(JNIEnv*, jclass, jmethodID, va_list); + jfloat (*CallStaticFloatMethodA)(JNIEnv*, jclass, jmethodID, const jvalue*); + jdouble (*CallStaticDoubleMethod)(JNIEnv*, jclass, jmethodID, ...); + jdouble (*CallStaticDoubleMethodV)(JNIEnv*, jclass, jmethodID, va_list); + jdouble (*CallStaticDoubleMethodA)(JNIEnv*, jclass, jmethodID, const jvalue*); + void (*CallStaticVoidMethod)(JNIEnv*, jclass, jmethodID, ...); + void (*CallStaticVoidMethodV)(JNIEnv*, jclass, jmethodID, va_list); + void (*CallStaticVoidMethodA)(JNIEnv*, jclass, jmethodID, const jvalue*); + + jfieldID (*GetStaticFieldID)(JNIEnv*, jclass, const char*, + const char*); + + jobject (*GetStaticObjectField)(JNIEnv*, jclass, jfieldID); + jboolean (*GetStaticBooleanField)(JNIEnv*, jclass, jfieldID); + jbyte (*GetStaticByteField)(JNIEnv*, jclass, jfieldID); + jchar (*GetStaticCharField)(JNIEnv*, jclass, jfieldID); + jshort (*GetStaticShortField)(JNIEnv*, jclass, jfieldID); + jint (*GetStaticIntField)(JNIEnv*, jclass, jfieldID); + jlong (*GetStaticLongField)(JNIEnv*, jclass, jfieldID); + jfloat (*GetStaticFloatField)(JNIEnv*, jclass, jfieldID); + jdouble (*GetStaticDoubleField)(JNIEnv*, jclass, jfieldID); + + void (*SetStaticObjectField)(JNIEnv*, jclass, jfieldID, jobject); + void (*SetStaticBooleanField)(JNIEnv*, jclass, jfieldID, jboolean); + void (*SetStaticByteField)(JNIEnv*, jclass, jfieldID, jbyte); + void (*SetStaticCharField)(JNIEnv*, jclass, jfieldID, jchar); + void (*SetStaticShortField)(JNIEnv*, jclass, jfieldID, jshort); + void (*SetStaticIntField)(JNIEnv*, jclass, jfieldID, jint); + void (*SetStaticLongField)(JNIEnv*, jclass, jfieldID, jlong); + void (*SetStaticFloatField)(JNIEnv*, jclass, jfieldID, jfloat); + void (*SetStaticDoubleField)(JNIEnv*, jclass, jfieldID, jdouble); + + jstring (*NewString)(JNIEnv*, const jchar*, jsize); + jsize (*GetStringLength)(JNIEnv*, jstring); + const jchar* (*GetStringChars)(JNIEnv*, jstring, jboolean*); + void (*ReleaseStringChars)(JNIEnv*, jstring, const jchar*); + jstring (*NewStringUTF)(JNIEnv*, const char*); + jsize (*GetStringUTFLength)(JNIEnv*, jstring); + /* JNI spec says this returns const jbyte*, but that's inconsistent */ + const char* (*GetStringUTFChars)(JNIEnv*, jstring, jboolean*); + void (*ReleaseStringUTFChars)(JNIEnv*, jstring, const char*); + jsize (*GetArrayLength)(JNIEnv*, jarray); + jobjectArray (*NewObjectArray)(JNIEnv*, jsize, jclass, jobject); + jobject (*GetObjectArrayElement)(JNIEnv*, jobjectArray, jsize); + void (*SetObjectArrayElement)(JNIEnv*, jobjectArray, jsize, jobject); + + jbooleanArray (*NewBooleanArray)(JNIEnv*, jsize); + jbyteArray (*NewByteArray)(JNIEnv*, jsize); + jcharArray (*NewCharArray)(JNIEnv*, jsize); + jshortArray (*NewShortArray)(JNIEnv*, jsize); + jintArray (*NewIntArray)(JNIEnv*, jsize); + jlongArray (*NewLongArray)(JNIEnv*, jsize); + jfloatArray (*NewFloatArray)(JNIEnv*, jsize); + jdoubleArray (*NewDoubleArray)(JNIEnv*, jsize); + + jboolean* (*GetBooleanArrayElements)(JNIEnv*, jbooleanArray, jboolean*); + jbyte* (*GetByteArrayElements)(JNIEnv*, jbyteArray, jboolean*); + jchar* (*GetCharArrayElements)(JNIEnv*, jcharArray, jboolean*); + jshort* (*GetShortArrayElements)(JNIEnv*, jshortArray, jboolean*); + jint* (*GetIntArrayElements)(JNIEnv*, jintArray, jboolean*); + jlong* (*GetLongArrayElements)(JNIEnv*, jlongArray, jboolean*); + jfloat* (*GetFloatArrayElements)(JNIEnv*, jfloatArray, jboolean*); + jdouble* (*GetDoubleArrayElements)(JNIEnv*, jdoubleArray, jboolean*); + + void (*ReleaseBooleanArrayElements)(JNIEnv*, jbooleanArray, + jboolean*, jint); + void (*ReleaseByteArrayElements)(JNIEnv*, jbyteArray, + jbyte*, jint); + void (*ReleaseCharArrayElements)(JNIEnv*, jcharArray, + jchar*, jint); + void (*ReleaseShortArrayElements)(JNIEnv*, jshortArray, + jshort*, jint); + void (*ReleaseIntArrayElements)(JNIEnv*, jintArray, + jint*, jint); + void (*ReleaseLongArrayElements)(JNIEnv*, jlongArray, + jlong*, jint); + void (*ReleaseFloatArrayElements)(JNIEnv*, jfloatArray, + jfloat*, jint); + void (*ReleaseDoubleArrayElements)(JNIEnv*, jdoubleArray, + jdouble*, jint); + + void (*GetBooleanArrayRegion)(JNIEnv*, jbooleanArray, + jsize, jsize, jboolean*); + void (*GetByteArrayRegion)(JNIEnv*, jbyteArray, + jsize, jsize, jbyte*); + void (*GetCharArrayRegion)(JNIEnv*, jcharArray, + jsize, jsize, jchar*); + void (*GetShortArrayRegion)(JNIEnv*, jshortArray, + jsize, jsize, jshort*); + void (*GetIntArrayRegion)(JNIEnv*, jintArray, + jsize, jsize, jint*); + void (*GetLongArrayRegion)(JNIEnv*, jlongArray, + jsize, jsize, jlong*); + void (*GetFloatArrayRegion)(JNIEnv*, jfloatArray, + jsize, jsize, jfloat*); + void (*GetDoubleArrayRegion)(JNIEnv*, jdoubleArray, + jsize, jsize, jdouble*); + + /* spec shows these without const; some jni.h do, some don't */ + void (*SetBooleanArrayRegion)(JNIEnv*, jbooleanArray, + jsize, jsize, const jboolean*); + void (*SetByteArrayRegion)(JNIEnv*, jbyteArray, + jsize, jsize, const jbyte*); + void (*SetCharArrayRegion)(JNIEnv*, jcharArray, + jsize, jsize, const jchar*); + void (*SetShortArrayRegion)(JNIEnv*, jshortArray, + jsize, jsize, const jshort*); + void (*SetIntArrayRegion)(JNIEnv*, jintArray, + jsize, jsize, const jint*); + void (*SetLongArrayRegion)(JNIEnv*, jlongArray, + jsize, jsize, const jlong*); + void (*SetFloatArrayRegion)(JNIEnv*, jfloatArray, + jsize, jsize, const jfloat*); + void (*SetDoubleArrayRegion)(JNIEnv*, jdoubleArray, + jsize, jsize, const jdouble*); + + jint (*RegisterNatives)(JNIEnv*, jclass, const JNINativeMethod*, + jint); + jint (*UnregisterNatives)(JNIEnv*, jclass); + jint (*MonitorEnter)(JNIEnv*, jobject); + jint (*MonitorExit)(JNIEnv*, jobject); + jint (*GetJavaVM)(JNIEnv*, JavaVM**); + + void (*GetStringRegion)(JNIEnv*, jstring, jsize, jsize, jchar*); + void (*GetStringUTFRegion)(JNIEnv*, jstring, jsize, jsize, char*); + + void* (*GetPrimitiveArrayCritical)(JNIEnv*, jarray, jboolean*); + void (*ReleasePrimitiveArrayCritical)(JNIEnv*, jarray, void*, jint); + + const jchar* (*GetStringCritical)(JNIEnv*, jstring, jboolean*); + void (*ReleaseStringCritical)(JNIEnv*, jstring, const jchar*); + + jweak (*NewWeakGlobalRef)(JNIEnv*, jobject); + void (*DeleteWeakGlobalRef)(JNIEnv*, jweak); + + jboolean (*ExceptionCheck)(JNIEnv*); + + jobject (*NewDirectByteBuffer)(JNIEnv*, void*, jlong); + void* (*GetDirectBufferAddress)(JNIEnv*, jobject); + jlong (*GetDirectBufferCapacity)(JNIEnv*, jobject); + + /* added in JNI 1.6 */ + jobjectRefType (*GetObjectRefType)(JNIEnv*, jobject); +}; + +/* + * C++ object wrapper. + * + * This is usually overlaid on a C struct whose first element is a + * JNINativeInterface*. We rely somewhat on compiler behavior. + */ +struct _JNIEnv { + /* do not rename this; it does not seem to be entirely opaque */ + const struct JNINativeInterface* functions; + +#if defined(__cplusplus) + + jint GetVersion() + { return functions->GetVersion(this); } + + jclass DefineClass(const char *name, jobject loader, const jbyte* buf, + jsize bufLen) + { return functions->DefineClass(this, name, loader, buf, bufLen); } + + jclass FindClass(const char* name) + { return functions->FindClass(this, name); } + + jmethodID FromReflectedMethod(jobject method) + { return functions->FromReflectedMethod(this, method); } + + jfieldID FromReflectedField(jobject field) + { return functions->FromReflectedField(this, field); } + + jobject ToReflectedMethod(jclass cls, jmethodID methodID, jboolean isStatic) + { return functions->ToReflectedMethod(this, cls, methodID, isStatic); } + + jclass GetSuperclass(jclass clazz) + { return functions->GetSuperclass(this, clazz); } + + jboolean IsAssignableFrom(jclass clazz1, jclass clazz2) + { return functions->IsAssignableFrom(this, clazz1, clazz2); } + + jobject ToReflectedField(jclass cls, jfieldID fieldID, jboolean isStatic) + { return functions->ToReflectedField(this, cls, fieldID, isStatic); } + + jint Throw(jthrowable obj) + { return functions->Throw(this, obj); } + + jint ThrowNew(jclass clazz, const char* message) + { return functions->ThrowNew(this, clazz, message); } + + jthrowable ExceptionOccurred() + { return functions->ExceptionOccurred(this); } + + void ExceptionDescribe() + { functions->ExceptionDescribe(this); } + + void ExceptionClear() + { functions->ExceptionClear(this); } + + void FatalError(const char* msg) + { functions->FatalError(this, msg); } + + jint PushLocalFrame(jint capacity) + { return functions->PushLocalFrame(this, capacity); } + + jobject PopLocalFrame(jobject result) + { return functions->PopLocalFrame(this, result); } + + jobject NewGlobalRef(jobject obj) + { return functions->NewGlobalRef(this, obj); } + + void DeleteGlobalRef(jobject globalRef) + { functions->DeleteGlobalRef(this, globalRef); } + + void DeleteLocalRef(jobject localRef) + { functions->DeleteLocalRef(this, localRef); } + + jboolean IsSameObject(jobject ref1, jobject ref2) + { return functions->IsSameObject(this, ref1, ref2); } + + jobject NewLocalRef(jobject ref) + { return functions->NewLocalRef(this, ref); } + + jint EnsureLocalCapacity(jint capacity) + { return functions->EnsureLocalCapacity(this, capacity); } + + jobject AllocObject(jclass clazz) + { return functions->AllocObject(this, clazz); } + + jobject NewObject(jclass clazz, jmethodID methodID, ...) + { + va_list args; + va_start(args, methodID); + jobject result = functions->NewObjectV(this, clazz, methodID, args); + va_end(args); + return result; + } + + jobject NewObjectV(jclass clazz, jmethodID methodID, va_list args) + { return functions->NewObjectV(this, clazz, methodID, args); } + + jobject NewObjectA(jclass clazz, jmethodID methodID, const jvalue* args) + { return functions->NewObjectA(this, clazz, methodID, args); } + + jclass GetObjectClass(jobject obj) + { return functions->GetObjectClass(this, obj); } + + jboolean IsInstanceOf(jobject obj, jclass clazz) + { return functions->IsInstanceOf(this, obj, clazz); } + + jmethodID GetMethodID(jclass clazz, const char* name, const char* sig) + { return functions->GetMethodID(this, clazz, name, sig); } + +#define CALL_TYPE_METHOD(_jtype, _jname) \ + _jtype Call##_jname##Method(jobject obj, jmethodID methodID, ...) \ + { \ + _jtype result; \ + va_list args; \ + va_start(args, methodID); \ + result = functions->Call##_jname##MethodV(this, obj, methodID, \ + args); \ + va_end(args); \ + return result; \ + } +#define CALL_TYPE_METHODV(_jtype, _jname) \ + _jtype Call##_jname##MethodV(jobject obj, jmethodID methodID, \ + va_list args) \ + { return functions->Call##_jname##MethodV(this, obj, methodID, args); } +#define CALL_TYPE_METHODA(_jtype, _jname) \ + _jtype Call##_jname##MethodA(jobject obj, jmethodID methodID, \ + const jvalue* args) \ + { return functions->Call##_jname##MethodA(this, obj, methodID, args); } + +#define CALL_TYPE(_jtype, _jname) \ + CALL_TYPE_METHOD(_jtype, _jname) \ + CALL_TYPE_METHODV(_jtype, _jname) \ + CALL_TYPE_METHODA(_jtype, _jname) + + CALL_TYPE(jobject, Object) + CALL_TYPE(jboolean, Boolean) + CALL_TYPE(jbyte, Byte) + CALL_TYPE(jchar, Char) + CALL_TYPE(jshort, Short) + CALL_TYPE(jint, Int) + CALL_TYPE(jlong, Long) + CALL_TYPE(jfloat, Float) + CALL_TYPE(jdouble, Double) + + void CallVoidMethod(jobject obj, jmethodID methodID, ...) + { + va_list args; + va_start(args, methodID); + functions->CallVoidMethodV(this, obj, methodID, args); + va_end(args); + } + void CallVoidMethodV(jobject obj, jmethodID methodID, va_list args) + { functions->CallVoidMethodV(this, obj, methodID, args); } + void CallVoidMethodA(jobject obj, jmethodID methodID, const jvalue* args) + { functions->CallVoidMethodA(this, obj, methodID, args); } + +#define CALL_NONVIRT_TYPE_METHOD(_jtype, _jname) \ + _jtype CallNonvirtual##_jname##Method(jobject obj, jclass clazz, \ + jmethodID methodID, ...) \ + { \ + _jtype result; \ + va_list args; \ + va_start(args, methodID); \ + result = functions->CallNonvirtual##_jname##MethodV(this, obj, \ + clazz, methodID, args); \ + va_end(args); \ + return result; \ + } +#define CALL_NONVIRT_TYPE_METHODV(_jtype, _jname) \ + _jtype CallNonvirtual##_jname##MethodV(jobject obj, jclass clazz, \ + jmethodID methodID, va_list args) \ + { return functions->CallNonvirtual##_jname##MethodV(this, obj, clazz, \ + methodID, args); } +#define CALL_NONVIRT_TYPE_METHODA(_jtype, _jname) \ + _jtype CallNonvirtual##_jname##MethodA(jobject obj, jclass clazz, \ + jmethodID methodID, const jvalue* args) \ + { return functions->CallNonvirtual##_jname##MethodA(this, obj, clazz, \ + methodID, args); } + +#define CALL_NONVIRT_TYPE(_jtype, _jname) \ + CALL_NONVIRT_TYPE_METHOD(_jtype, _jname) \ + CALL_NONVIRT_TYPE_METHODV(_jtype, _jname) \ + CALL_NONVIRT_TYPE_METHODA(_jtype, _jname) + + CALL_NONVIRT_TYPE(jobject, Object) + CALL_NONVIRT_TYPE(jboolean, Boolean) + CALL_NONVIRT_TYPE(jbyte, Byte) + CALL_NONVIRT_TYPE(jchar, Char) + CALL_NONVIRT_TYPE(jshort, Short) + CALL_NONVIRT_TYPE(jint, Int) + CALL_NONVIRT_TYPE(jlong, Long) + CALL_NONVIRT_TYPE(jfloat, Float) + CALL_NONVIRT_TYPE(jdouble, Double) + + void CallNonvirtualVoidMethod(jobject obj, jclass clazz, + jmethodID methodID, ...) + { + va_list args; + va_start(args, methodID); + functions->CallNonvirtualVoidMethodV(this, obj, clazz, methodID, args); + va_end(args); + } + void CallNonvirtualVoidMethodV(jobject obj, jclass clazz, + jmethodID methodID, va_list args) + { functions->CallNonvirtualVoidMethodV(this, obj, clazz, methodID, args); } + void CallNonvirtualVoidMethodA(jobject obj, jclass clazz, + jmethodID methodID, const jvalue* args) + { functions->CallNonvirtualVoidMethodA(this, obj, clazz, methodID, args); } + + jfieldID GetFieldID(jclass clazz, const char* name, const char* sig) + { return functions->GetFieldID(this, clazz, name, sig); } + + jobject GetObjectField(jobject obj, jfieldID fieldID) + { return functions->GetObjectField(this, obj, fieldID); } + jboolean GetBooleanField(jobject obj, jfieldID fieldID) + { return functions->GetBooleanField(this, obj, fieldID); } + jbyte GetByteField(jobject obj, jfieldID fieldID) + { return functions->GetByteField(this, obj, fieldID); } + jchar GetCharField(jobject obj, jfieldID fieldID) + { return functions->GetCharField(this, obj, fieldID); } + jshort GetShortField(jobject obj, jfieldID fieldID) + { return functions->GetShortField(this, obj, fieldID); } + jint GetIntField(jobject obj, jfieldID fieldID) + { return functions->GetIntField(this, obj, fieldID); } + jlong GetLongField(jobject obj, jfieldID fieldID) + { return functions->GetLongField(this, obj, fieldID); } + jfloat GetFloatField(jobject obj, jfieldID fieldID) + { return functions->GetFloatField(this, obj, fieldID); } + jdouble GetDoubleField(jobject obj, jfieldID fieldID) + { return functions->GetDoubleField(this, obj, fieldID); } + + void SetObjectField(jobject obj, jfieldID fieldID, jobject value) + { functions->SetObjectField(this, obj, fieldID, value); } + void SetBooleanField(jobject obj, jfieldID fieldID, jboolean value) + { functions->SetBooleanField(this, obj, fieldID, value); } + void SetByteField(jobject obj, jfieldID fieldID, jbyte value) + { functions->SetByteField(this, obj, fieldID, value); } + void SetCharField(jobject obj, jfieldID fieldID, jchar value) + { functions->SetCharField(this, obj, fieldID, value); } + void SetShortField(jobject obj, jfieldID fieldID, jshort value) + { functions->SetShortField(this, obj, fieldID, value); } + void SetIntField(jobject obj, jfieldID fieldID, jint value) + { functions->SetIntField(this, obj, fieldID, value); } + void SetLongField(jobject obj, jfieldID fieldID, jlong value) + { functions->SetLongField(this, obj, fieldID, value); } + void SetFloatField(jobject obj, jfieldID fieldID, jfloat value) + { functions->SetFloatField(this, obj, fieldID, value); } + void SetDoubleField(jobject obj, jfieldID fieldID, jdouble value) + { functions->SetDoubleField(this, obj, fieldID, value); } + + jmethodID GetStaticMethodID(jclass clazz, const char* name, const char* sig) + { return functions->GetStaticMethodID(this, clazz, name, sig); } + +#define CALL_STATIC_TYPE_METHOD(_jtype, _jname) \ + _jtype CallStatic##_jname##Method(jclass clazz, jmethodID methodID, \ + ...) \ + { \ + _jtype result; \ + va_list args; \ + va_start(args, methodID); \ + result = functions->CallStatic##_jname##MethodV(this, clazz, \ + methodID, args); \ + va_end(args); \ + return result; \ + } +#define CALL_STATIC_TYPE_METHODV(_jtype, _jname) \ + _jtype CallStatic##_jname##MethodV(jclass clazz, jmethodID methodID, \ + va_list args) \ + { return functions->CallStatic##_jname##MethodV(this, clazz, methodID, \ + args); } +#define CALL_STATIC_TYPE_METHODA(_jtype, _jname) \ + _jtype CallStatic##_jname##MethodA(jclass clazz, jmethodID methodID, \ + const jvalue* args) \ + { return functions->CallStatic##_jname##MethodA(this, clazz, methodID, \ + args); } + +#define CALL_STATIC_TYPE(_jtype, _jname) \ + CALL_STATIC_TYPE_METHOD(_jtype, _jname) \ + CALL_STATIC_TYPE_METHODV(_jtype, _jname) \ + CALL_STATIC_TYPE_METHODA(_jtype, _jname) + + CALL_STATIC_TYPE(jobject, Object) + CALL_STATIC_TYPE(jboolean, Boolean) + CALL_STATIC_TYPE(jbyte, Byte) + CALL_STATIC_TYPE(jchar, Char) + CALL_STATIC_TYPE(jshort, Short) + CALL_STATIC_TYPE(jint, Int) + CALL_STATIC_TYPE(jlong, Long) + CALL_STATIC_TYPE(jfloat, Float) + CALL_STATIC_TYPE(jdouble, Double) + + void CallStaticVoidMethod(jclass clazz, jmethodID methodID, ...) + { + va_list args; + va_start(args, methodID); + functions->CallStaticVoidMethodV(this, clazz, methodID, args); + va_end(args); + } + void CallStaticVoidMethodV(jclass clazz, jmethodID methodID, va_list args) + { functions->CallStaticVoidMethodV(this, clazz, methodID, args); } + void CallStaticVoidMethodA(jclass clazz, jmethodID methodID, const jvalue* args) + { functions->CallStaticVoidMethodA(this, clazz, methodID, args); } + + jfieldID GetStaticFieldID(jclass clazz, const char* name, const char* sig) + { return functions->GetStaticFieldID(this, clazz, name, sig); } + + jobject GetStaticObjectField(jclass clazz, jfieldID fieldID) + { return functions->GetStaticObjectField(this, clazz, fieldID); } + jboolean GetStaticBooleanField(jclass clazz, jfieldID fieldID) + { return functions->GetStaticBooleanField(this, clazz, fieldID); } + jbyte GetStaticByteField(jclass clazz, jfieldID fieldID) + { return functions->GetStaticByteField(this, clazz, fieldID); } + jchar GetStaticCharField(jclass clazz, jfieldID fieldID) + { return functions->GetStaticCharField(this, clazz, fieldID); } + jshort GetStaticShortField(jclass clazz, jfieldID fieldID) + { return functions->GetStaticShortField(this, clazz, fieldID); } + jint GetStaticIntField(jclass clazz, jfieldID fieldID) + { return functions->GetStaticIntField(this, clazz, fieldID); } + jlong GetStaticLongField(jclass clazz, jfieldID fieldID) + { return functions->GetStaticLongField(this, clazz, fieldID); } + jfloat GetStaticFloatField(jclass clazz, jfieldID fieldID) + { return functions->GetStaticFloatField(this, clazz, fieldID); } + jdouble GetStaticDoubleField(jclass clazz, jfieldID fieldID) + { return functions->GetStaticDoubleField(this, clazz, fieldID); } + + void SetStaticObjectField(jclass clazz, jfieldID fieldID, jobject value) + { functions->SetStaticObjectField(this, clazz, fieldID, value); } + void SetStaticBooleanField(jclass clazz, jfieldID fieldID, jboolean value) + { functions->SetStaticBooleanField(this, clazz, fieldID, value); } + void SetStaticByteField(jclass clazz, jfieldID fieldID, jbyte value) + { functions->SetStaticByteField(this, clazz, fieldID, value); } + void SetStaticCharField(jclass clazz, jfieldID fieldID, jchar value) + { functions->SetStaticCharField(this, clazz, fieldID, value); } + void SetStaticShortField(jclass clazz, jfieldID fieldID, jshort value) + { functions->SetStaticShortField(this, clazz, fieldID, value); } + void SetStaticIntField(jclass clazz, jfieldID fieldID, jint value) + { functions->SetStaticIntField(this, clazz, fieldID, value); } + void SetStaticLongField(jclass clazz, jfieldID fieldID, jlong value) + { functions->SetStaticLongField(this, clazz, fieldID, value); } + void SetStaticFloatField(jclass clazz, jfieldID fieldID, jfloat value) + { functions->SetStaticFloatField(this, clazz, fieldID, value); } + void SetStaticDoubleField(jclass clazz, jfieldID fieldID, jdouble value) + { functions->SetStaticDoubleField(this, clazz, fieldID, value); } + + jstring NewString(const jchar* unicodeChars, jsize len) + { return functions->NewString(this, unicodeChars, len); } + + jsize GetStringLength(jstring string) + { return functions->GetStringLength(this, string); } + + const jchar* GetStringChars(jstring string, jboolean* isCopy) + { return functions->GetStringChars(this, string, isCopy); } + + void ReleaseStringChars(jstring string, const jchar* chars) + { functions->ReleaseStringChars(this, string, chars); } + + jstring NewStringUTF(const char* bytes) + { return functions->NewStringUTF(this, bytes); } + + jsize GetStringUTFLength(jstring string) + { return functions->GetStringUTFLength(this, string); } + + const char* GetStringUTFChars(jstring string, jboolean* isCopy) + { return functions->GetStringUTFChars(this, string, isCopy); } + + void ReleaseStringUTFChars(jstring string, const char* utf) + { functions->ReleaseStringUTFChars(this, string, utf); } + + jsize GetArrayLength(jarray array) + { return functions->GetArrayLength(this, array); } + + jobjectArray NewObjectArray(jsize length, jclass elementClass, + jobject initialElement) + { return functions->NewObjectArray(this, length, elementClass, + initialElement); } + + jobject GetObjectArrayElement(jobjectArray array, jsize index) + { return functions->GetObjectArrayElement(this, array, index); } + + void SetObjectArrayElement(jobjectArray array, jsize index, jobject value) + { functions->SetObjectArrayElement(this, array, index, value); } + + jbooleanArray NewBooleanArray(jsize length) + { return functions->NewBooleanArray(this, length); } + jbyteArray NewByteArray(jsize length) + { return functions->NewByteArray(this, length); } + jcharArray NewCharArray(jsize length) + { return functions->NewCharArray(this, length); } + jshortArray NewShortArray(jsize length) + { return functions->NewShortArray(this, length); } + jintArray NewIntArray(jsize length) + { return functions->NewIntArray(this, length); } + jlongArray NewLongArray(jsize length) + { return functions->NewLongArray(this, length); } + jfloatArray NewFloatArray(jsize length) + { return functions->NewFloatArray(this, length); } + jdoubleArray NewDoubleArray(jsize length) + { return functions->NewDoubleArray(this, length); } + + jboolean* GetBooleanArrayElements(jbooleanArray array, jboolean* isCopy) + { return functions->GetBooleanArrayElements(this, array, isCopy); } + jbyte* GetByteArrayElements(jbyteArray array, jboolean* isCopy) + { return functions->GetByteArrayElements(this, array, isCopy); } + jchar* GetCharArrayElements(jcharArray array, jboolean* isCopy) + { return functions->GetCharArrayElements(this, array, isCopy); } + jshort* GetShortArrayElements(jshortArray array, jboolean* isCopy) + { return functions->GetShortArrayElements(this, array, isCopy); } + jint* GetIntArrayElements(jintArray array, jboolean* isCopy) + { return functions->GetIntArrayElements(this, array, isCopy); } + jlong* GetLongArrayElements(jlongArray array, jboolean* isCopy) + { return functions->GetLongArrayElements(this, array, isCopy); } + jfloat* GetFloatArrayElements(jfloatArray array, jboolean* isCopy) + { return functions->GetFloatArrayElements(this, array, isCopy); } + jdouble* GetDoubleArrayElements(jdoubleArray array, jboolean* isCopy) + { return functions->GetDoubleArrayElements(this, array, isCopy); } + + void ReleaseBooleanArrayElements(jbooleanArray array, jboolean* elems, + jint mode) + { functions->ReleaseBooleanArrayElements(this, array, elems, mode); } + void ReleaseByteArrayElements(jbyteArray array, jbyte* elems, + jint mode) + { functions->ReleaseByteArrayElements(this, array, elems, mode); } + void ReleaseCharArrayElements(jcharArray array, jchar* elems, + jint mode) + { functions->ReleaseCharArrayElements(this, array, elems, mode); } + void ReleaseShortArrayElements(jshortArray array, jshort* elems, + jint mode) + { functions->ReleaseShortArrayElements(this, array, elems, mode); } + void ReleaseIntArrayElements(jintArray array, jint* elems, + jint mode) + { functions->ReleaseIntArrayElements(this, array, elems, mode); } + void ReleaseLongArrayElements(jlongArray array, jlong* elems, + jint mode) + { functions->ReleaseLongArrayElements(this, array, elems, mode); } + void ReleaseFloatArrayElements(jfloatArray array, jfloat* elems, + jint mode) + { functions->ReleaseFloatArrayElements(this, array, elems, mode); } + void ReleaseDoubleArrayElements(jdoubleArray array, jdouble* elems, + jint mode) + { functions->ReleaseDoubleArrayElements(this, array, elems, mode); } + + void GetBooleanArrayRegion(jbooleanArray array, jsize start, jsize len, + jboolean* buf) + { functions->GetBooleanArrayRegion(this, array, start, len, buf); } + void GetByteArrayRegion(jbyteArray array, jsize start, jsize len, + jbyte* buf) + { functions->GetByteArrayRegion(this, array, start, len, buf); } + void GetCharArrayRegion(jcharArray array, jsize start, jsize len, + jchar* buf) + { functions->GetCharArrayRegion(this, array, start, len, buf); } + void GetShortArrayRegion(jshortArray array, jsize start, jsize len, + jshort* buf) + { functions->GetShortArrayRegion(this, array, start, len, buf); } + void GetIntArrayRegion(jintArray array, jsize start, jsize len, + jint* buf) + { functions->GetIntArrayRegion(this, array, start, len, buf); } + void GetLongArrayRegion(jlongArray array, jsize start, jsize len, + jlong* buf) + { functions->GetLongArrayRegion(this, array, start, len, buf); } + void GetFloatArrayRegion(jfloatArray array, jsize start, jsize len, + jfloat* buf) + { functions->GetFloatArrayRegion(this, array, start, len, buf); } + void GetDoubleArrayRegion(jdoubleArray array, jsize start, jsize len, + jdouble* buf) + { functions->GetDoubleArrayRegion(this, array, start, len, buf); } + + void SetBooleanArrayRegion(jbooleanArray array, jsize start, jsize len, + const jboolean* buf) + { functions->SetBooleanArrayRegion(this, array, start, len, buf); } + void SetByteArrayRegion(jbyteArray array, jsize start, jsize len, + const jbyte* buf) + { functions->SetByteArrayRegion(this, array, start, len, buf); } + void SetCharArrayRegion(jcharArray array, jsize start, jsize len, + const jchar* buf) + { functions->SetCharArrayRegion(this, array, start, len, buf); } + void SetShortArrayRegion(jshortArray array, jsize start, jsize len, + const jshort* buf) + { functions->SetShortArrayRegion(this, array, start, len, buf); } + void SetIntArrayRegion(jintArray array, jsize start, jsize len, + const jint* buf) + { functions->SetIntArrayRegion(this, array, start, len, buf); } + void SetLongArrayRegion(jlongArray array, jsize start, jsize len, + const jlong* buf) + { functions->SetLongArrayRegion(this, array, start, len, buf); } + void SetFloatArrayRegion(jfloatArray array, jsize start, jsize len, + const jfloat* buf) + { functions->SetFloatArrayRegion(this, array, start, len, buf); } + void SetDoubleArrayRegion(jdoubleArray array, jsize start, jsize len, + const jdouble* buf) + { functions->SetDoubleArrayRegion(this, array, start, len, buf); } + + jint RegisterNatives(jclass clazz, const JNINativeMethod* methods, + jint nMethods) + { return functions->RegisterNatives(this, clazz, methods, nMethods); } + + jint UnregisterNatives(jclass clazz) + { return functions->UnregisterNatives(this, clazz); } + + jint MonitorEnter(jobject obj) + { return functions->MonitorEnter(this, obj); } + + jint MonitorExit(jobject obj) + { return functions->MonitorExit(this, obj); } + + jint GetJavaVM(JavaVM** vm) + { return functions->GetJavaVM(this, vm); } + + void GetStringRegion(jstring str, jsize start, jsize len, jchar* buf) + { functions->GetStringRegion(this, str, start, len, buf); } + + void GetStringUTFRegion(jstring str, jsize start, jsize len, char* buf) + { return functions->GetStringUTFRegion(this, str, start, len, buf); } + + void* GetPrimitiveArrayCritical(jarray array, jboolean* isCopy) + { return functions->GetPrimitiveArrayCritical(this, array, isCopy); } + + void ReleasePrimitiveArrayCritical(jarray array, void* carray, jint mode) + { functions->ReleasePrimitiveArrayCritical(this, array, carray, mode); } + + const jchar* GetStringCritical(jstring string, jboolean* isCopy) + { return functions->GetStringCritical(this, string, isCopy); } + + void ReleaseStringCritical(jstring string, const jchar* carray) + { functions->ReleaseStringCritical(this, string, carray); } + + jweak NewWeakGlobalRef(jobject obj) + { return functions->NewWeakGlobalRef(this, obj); } + + void DeleteWeakGlobalRef(jweak obj) + { functions->DeleteWeakGlobalRef(this, obj); } + + jboolean ExceptionCheck() + { return functions->ExceptionCheck(this); } + + jobject NewDirectByteBuffer(void* address, jlong capacity) + { return functions->NewDirectByteBuffer(this, address, capacity); } + + void* GetDirectBufferAddress(jobject buf) + { return functions->GetDirectBufferAddress(this, buf); } + + jlong GetDirectBufferCapacity(jobject buf) + { return functions->GetDirectBufferCapacity(this, buf); } + + /* added in JNI 1.6 */ + jobjectRefType GetObjectRefType(jobject obj) + { return functions->GetObjectRefType(this, obj); } +#endif /*__cplusplus*/ +}; + + +/* + * JNI invocation interface. + */ +struct JNIInvokeInterface { + void* reserved0; + void* reserved1; + void* reserved2; + + jint (*DestroyJavaVM)(JavaVM*); + jint (*AttachCurrentThread)(JavaVM*, JNIEnv**, void*); + jint (*DetachCurrentThread)(JavaVM*); + jint (*GetEnv)(JavaVM*, void**, jint); + jint (*AttachCurrentThreadAsDaemon)(JavaVM*, JNIEnv**, void*); +}; + +/* + * C++ version. + */ +struct _JavaVM { + const struct JNIInvokeInterface* functions; + +#if defined(__cplusplus) + jint DestroyJavaVM() + { return functions->DestroyJavaVM(this); } + jint AttachCurrentThread(JNIEnv** p_env, void* thr_args) + { return functions->AttachCurrentThread(this, p_env, thr_args); } + jint DetachCurrentThread() + { return functions->DetachCurrentThread(this); } + jint GetEnv(void** env, jint version) + { return functions->GetEnv(this, env, version); } + jint AttachCurrentThreadAsDaemon(JNIEnv** p_env, void* thr_args) + { return functions->AttachCurrentThreadAsDaemon(this, p_env, thr_args); } +#endif /*__cplusplus*/ +}; + +struct JavaVMAttachArgs { + jint version; /* must be >= JNI_VERSION_1_2 */ + const char* name; /* NULL or name of thread as modified UTF-8 str */ + jobject group; /* global ref of a ThreadGroup object, or NULL */ +}; +typedef struct JavaVMAttachArgs JavaVMAttachArgs; + +/* + * JNI 1.2+ initialization. (As of 1.6, the pre-1.2 structures are no + * longer supported.) + */ +typedef struct JavaVMOption { + const char* optionString; + void* extraInfo; +} JavaVMOption; + +typedef struct JavaVMInitArgs { + jint version; /* use JNI_VERSION_1_2 or later */ + + jint nOptions; + JavaVMOption* options; + jboolean ignoreUnrecognized; +} JavaVMInitArgs; + +#ifdef __cplusplus +extern "C" { +#endif +/* + * VM initialization functions. + * + * Note these are the only symbols exported for JNI by the VM. + */ +jint JNI_GetDefaultJavaVMInitArgs(void*); +jint JNI_CreateJavaVM(JavaVM**, JNIEnv**, void*); +jint JNI_GetCreatedJavaVMs(JavaVM**, jsize, jsize*); + +#define JNIIMPORT +#define JNIEXPORT __attribute__ ((visibility ("default"))) +#define JNICALL + +/* + * Prototypes for functions exported by loadable shared libs. These are + * called by JNI, not provided by JNI. + */ +JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved); +JNIEXPORT void JNI_OnUnload(JavaVM* vm, void* reserved); + +#ifdef __cplusplus +} +#endif + + +/* + * Manifest constants. + */ +#define JNI_FALSE 0 +#define JNI_TRUE 1 + +#define JNI_VERSION_1_1 0x00010001 +#define JNI_VERSION_1_2 0x00010002 +#define JNI_VERSION_1_4 0x00010004 +#define JNI_VERSION_1_6 0x00010006 + +#define JNI_OK (0) /* no error */ +#define JNI_ERR (-1) /* generic error */ +#define JNI_EDETACHED (-2) /* thread detached from the VM */ +#define JNI_EVERSION (-3) /* JNI version error */ +#define JNI_ENOMEM (-4) /* Out of memory */ +#define JNI_EEXIST (-5) /* VM already created */ +#define JNI_EINVAL (-6) /* Invalid argument */ + +#define JNI_COMMIT 1 /* copy content, do not free buffer */ +#define JNI_ABORT 2 /* free buffer w/o copying back */ + +#endif /* JNI_H_ */ diff --git a/third_party/libnativehelper/libnativehelper.map.txt b/third_party/libnativehelper/libnativehelper.map.txt new file mode 100644 index 0000000000..62c980d4e5 --- /dev/null +++ b/third_party/libnativehelper/libnativehelper.map.txt @@ -0,0 +1,40 @@ +# This library should only export C linkage definitions. +# +# VERSION string that follows is derived from _. +LIBNATIVEHELPER_1 { + global: + JNI_GetDefaultJavaVMInitArgs; + JNI_CreateJavaVM; + JNI_GetCreatedJavaVMs; + + jniRegisterNativeMethods; + jniThrowException; + jniThrowExceptionFmt; + jniThrowNullPointerException; + jniThrowRuntimeException; + jniThrowIOException; + jniStrError; + jniCreateFileDescriptor; + jniGetFDFromFileDescriptor; + jniSetFileDescriptorOfFD; + jniGetOwnerIdFromFileDescriptor; + jniGetNioBufferBaseArray; + jniGetNioBufferBaseArrayOffset; + jniGetNioBufferPointer; + jniGetNioBufferFields; + jniGetReferent; + jniCreateString; + jniLogException; + jniUninitializeConstants; + + JniInvocationCreate; + JniInvocationDestroy; + JniInvocationInit; + JniInvocationGetLibrary; + + newStringArray; + toStringArray; + + local: + *; +}; diff --git a/third_party/libnativehelper/platform_include/nativehelper/detail/signature_checker.h b/third_party/libnativehelper/platform_include/nativehelper/detail/signature_checker.h new file mode 100644 index 0000000000..7c2a7fc1b9 --- /dev/null +++ b/third_party/libnativehelper/platform_include/nativehelper/detail/signature_checker.h @@ -0,0 +1,1441 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +/* + * WARNING: Do not include and use these directly. Use jni_macros.h instead! + * The "detail" namespace should be a strong hint not to depend on the internals, + * which could change at any time. + * + * This implements the underlying mechanism for compile-time JNI signature/ctype checking + * and inference. + * + * This file provides the constexpr basic blocks such as strings, arrays, vectors + * as well as the JNI-specific parsing functionality. + * + * Everything is implemented via generic-style (templates without metaprogramming) + * wherever possible. Traditional template metaprogramming is used sparingly. + * + * Everything in this file except ostream<< is constexpr. + */ + +#pragma once + +#include // std::ostream +#include // jni typedefs, JniNativeMethod. +#include // std::common_type, std::remove_cv + +namespace nativehelper { +namespace detail { + +// If CHECK evaluates to false then X_ASSERT will halt compilation. +// +// Asserts meant to be used only within constexpr context. +#if defined(JNI_SIGNATURE_CHECKER_DISABLE_ASSERTS) +# define X_ASSERT(CHECK) do { if ((false)) { (CHECK) ? void(0) : void(0); } } while (false) +#else +# define X_ASSERT(CHECK) \ + ( (CHECK) ? void(0) : jni_assertion_failure(#CHECK) ) +#endif + +// The runtime 'jni_assert' will never get called from a constexpr context; +// instead compilation will abort with a stack trace. +// +// Inspect the frame above this one to see the exact nature of the failure. +inline void jni_assertion_failure(const char* /*msg*/) __attribute__((noreturn)); +inline void jni_assertion_failure(const char* /*msg*/) { + std::terminate(); +} + +// An immutable constexpr string view, similar to std::string_view but for C++14. +// For a mutable string see instead ConstexprVector. +// +// As it is a read-only view into a string, it is not guaranteed to be zero-terminated. +struct ConstexprStringView { + // Implicit conversion from string literal: + // ConstexprStringView str = "hello_world"; + template + constexpr ConstexprStringView(const char (& lit)[N]) // NOLINT: explicit. + : _array(lit), _size(N - 1) { + // Using an array of characters is not allowed because the inferred size would be wrong. + // Use the other constructor instead for that. + X_ASSERT(lit[N - 1] == '\0'); + } + + constexpr ConstexprStringView(const char* ptr, size_t size) + : _array(ptr), _size(size) { + // See the below constructor instead. + X_ASSERT(ptr != nullptr); + } + + // No-arg constructor: Create empty view. + constexpr ConstexprStringView() : _array(""), _size(0u) {} + + constexpr size_t size() const { + return _size; + } + + constexpr bool empty() const { + return size() == 0u; + } + + constexpr char operator[](size_t i) const { + X_ASSERT(i <= size()); + return _array[i]; + } + + // Create substring from this[start..start+len). + constexpr ConstexprStringView substr(size_t start, size_t len) const { + X_ASSERT(start <= size()); + X_ASSERT(len <= size() - start); + + return ConstexprStringView(&_array[start], len); + } + + // Create maximum length substring that begins at 'start'. + constexpr ConstexprStringView substr(size_t start) const { + X_ASSERT(start <= size()); + return substr(start, size() - start); + } + + using const_iterator = const char*; + + constexpr const_iterator begin() const { + return &_array[0]; + } + + constexpr const_iterator end() const { + return &_array[size()]; + } + + private: + const char* _array; // Never-null for simplicity. + size_t _size; +}; + +constexpr bool +operator==(const ConstexprStringView& lhs, const ConstexprStringView& rhs) { + if (lhs.size() != rhs.size()) { + return false; + } + for (size_t i = 0; i < lhs.size(); ++i) { + if (lhs[i] != rhs[i]) { + return false; + } + } + return true; +} + +constexpr bool +operator!=(const ConstexprStringView& lhs, const ConstexprStringView& rhs) { + return !(lhs == rhs); +} + +inline std::ostream& operator<<(std::ostream& os, const ConstexprStringView& str) { + for (char c : str) { + os << c; + } + return os; +} + +constexpr bool IsValidJniDescriptorStart(char shorty) { + constexpr char kValidJniStarts[] = + {'V', 'Z', 'B', 'C', 'S', 'I', 'J', 'F', 'D', 'L', '[', '(', ')'}; + + for (char c : kValidJniStarts) { + if (c == shorty) { + return true; + } + } + + return false; +} + +// A constexpr "vector" that supports storing a variable amount of Ts +// in an array-like interface. +// +// An up-front kMaxSize must be given since constexpr does not support +// dynamic allocations. +template +struct ConstexprVector { + public: + constexpr explicit ConstexprVector() : _size(0u), _array{} { + } + + private: + // Custom iterator to support ptr-one-past-end into the union array without + // undefined behavior. + template + struct VectorIterator { + Elem* ptr; + + constexpr VectorIterator& operator++() { + ++ptr; + return *this; + } + + constexpr VectorIterator operator++(int) const { + VectorIterator tmp(*this); + ++tmp; + return tmp; + } + + constexpr /*T&*/ auto& operator*() { + // Use 'auto' here since using 'T' is incorrect with const_iterator. + return ptr->_value; + } + + constexpr const /*T&*/ auto& operator*() const { + // Use 'auto' here for consistency with above. + return ptr->_value; + } + + constexpr bool operator==(const VectorIterator& other) const { + return ptr == other.ptr; + } + + constexpr bool operator!=(const VectorIterator& other) const { + return !(*this == other); + } + }; + + // Do not require that T is default-constructible by using a union. + struct MaybeElement { + union { + T _value; + }; + }; + + public: + using iterator = VectorIterator; + using const_iterator = VectorIterator; + + constexpr iterator begin() { + return {&_array[0]}; + } + + constexpr iterator end() { + return {&_array[size()]}; + } + + constexpr const_iterator begin() const { + return {&_array[0]}; + } + + constexpr const_iterator end() const { + return {&_array[size()]}; + } + + constexpr void push_back(const T& value) { + X_ASSERT(_size + 1 <= kMaxSize); + + _array[_size]._value = value; + _size++; + } + + // A pop operation could also be added since constexpr T's + // have default destructors, it would just be _size--. + // We do not need a pop() here though. + + constexpr const T& operator[](size_t i) const { + return _array[i]._value; + } + + constexpr T& operator[](size_t i) { + return _array[i]._value; + } + + constexpr size_t size() const { + return _size; + } + private: + + size_t _size; + MaybeElement _array[kMaxSize]; +}; + +// Parsed and validated "long" form of a single JNI descriptor. +// e.g. one of "J", "Ljava/lang/Object;" etc. +struct JniDescriptorNode { + ConstexprStringView longy; + + constexpr JniDescriptorNode(ConstexprStringView longy) : longy(longy) { // NOLINT(google-explicit-constructor) + X_ASSERT(!longy.empty()); + } + constexpr JniDescriptorNode() : longy() {} + + constexpr char shorty() { + // Must be initialized with the non-default constructor. + X_ASSERT(!longy.empty()); + return longy[0]; + } +}; + +inline std::ostream& operator<<(std::ostream& os, const JniDescriptorNode& node) { + os << node.longy; + return os; +} + +// Equivalent of C++17 std::optional. +// +// An optional is essentially a type safe +// union { +// void Nothing, +// T Some; +// }; +// +template +struct ConstexprOptional { + // Create a default optional with no value. + constexpr ConstexprOptional() : _has_value(false), _nothing() { + } + + // Create an optional with a value. + constexpr ConstexprOptional(const T& value) // NOLINT(google-explicit-constructor) + : _has_value(true), _value(value) { + } + + constexpr explicit operator bool() const { + return _has_value; + } + + constexpr bool has_value() const { + return _has_value; + } + + constexpr const T& value() const { + X_ASSERT(has_value()); + return _value; + } + + constexpr const T* operator->() const { + return &(value()); + } + + constexpr const T& operator*() const { + return value(); + } + + private: + bool _has_value; + // The "Nothing" is likely unnecessary but improves readability. + struct Nothing {}; + union { + Nothing _nothing; + T _value; + }; +}; + +template +constexpr bool +operator==(const ConstexprOptional& lhs, const ConstexprOptional& rhs) { + if (lhs && rhs) { + return lhs.value() == rhs.value(); + } + return lhs.has_value() == rhs.has_value(); +} + +template +constexpr bool +operator!=(const ConstexprOptional& lhs, const ConstexprOptional& rhs) { + return !(lhs == rhs); +} + +template +inline std::ostream& operator<<(std::ostream& os, const ConstexprOptional& val) { + if (val) { + os << val.value(); + } + return os; +} + +// Equivalent of std::nullopt +// Allows implicit conversion to any empty ConstexprOptional. +// Mostly useful for macros that need to return an empty constexpr optional. +struct NullConstexprOptional { + template + constexpr operator ConstexprOptional() const { // NOLINT(google-explicit-constructor) + return ConstexprOptional(); + } +}; + +inline std::ostream& operator<<(std::ostream& os, NullConstexprOptional) { + return os; +} + +#if !defined(PARSE_FAILURES_NONFATAL) +// Unfortunately we cannot have custom messages here, as it just prints a stack trace with the +// macros expanded. This is at least more flexible than static_assert which requires a string +// literal. +// NOTE: The message string literal must be on same line as the macro to be seen during a +// compilation error. +#define PARSE_FAILURE(msg) X_ASSERT(! #msg) +#define PARSE_ASSERT_MSG(cond, msg) X_ASSERT(#msg && (cond)) +#define PARSE_ASSERT(cond) X_ASSERT(cond) +#else +#define PARSE_FAILURE(msg) return NullConstexprOptional{}; +#define PARSE_ASSERT_MSG(cond, msg) if (!(cond)) { PARSE_FAILURE(msg); } +#define PARSE_ASSERT(cond) if (!(cond)) { PARSE_FAILURE(""); } +#endif + +// This is a placeholder function and should not be called directly. +constexpr void ParseFailure(const char* msg) { + (void) msg; // intentionally no-op. +} + +// Temporary parse data when parsing a function descriptor. +struct ParseTypeDescriptorResult { + // A single argument descriptor, e.g. "V" or "Ljava/lang/Object;" + ConstexprStringView token; + // The remainder of the function descriptor yet to be parsed. + ConstexprStringView remainder; + + constexpr bool has_token() const { + return token.size() > 0u; + } + + constexpr bool has_remainder() const { + return remainder.size() > 0u; + } + + constexpr JniDescriptorNode as_node() const { + X_ASSERT(has_token()); + return {token}; + } +}; + +// Parse a single type descriptor out of a function type descriptor substring, +// and return the token and the remainder string. +// +// If parsing fails (i.e. illegal syntax), then: +// parses are fatal -> assertion is triggered (default behavior), +// parses are nonfatal -> returns nullopt (test behavior). +constexpr ConstexprOptional +ParseSingleTypeDescriptor(ConstexprStringView single_type, + bool allow_void = false) { + constexpr NullConstexprOptional kUnreachable = {}; + + // Nothing else left. + if (single_type.size() == 0) { + return ParseTypeDescriptorResult{}; + } + + ConstexprStringView token; + ConstexprStringView remainder = single_type.substr(/*start*/1u); + + char c = single_type[0]; + PARSE_ASSERT(IsValidJniDescriptorStart(c)); + + enum State { + kSingleCharacter, + kArray, + kObject + }; + + State state = kSingleCharacter; + + // Parse the first character to figure out if we should parse the rest. + switch (c) { + case '!': { + constexpr bool fast_jni_is_deprecated = false; + PARSE_ASSERT(fast_jni_is_deprecated); + break; + } + case 'V': + if (!allow_void) { + constexpr bool void_type_descriptor_only_allowed_in_return_type = false; + PARSE_ASSERT(void_type_descriptor_only_allowed_in_return_type); + } + [[clang::fallthrough]]; + case 'Z': + case 'B': + case 'C': + case 'S': + case 'I': + case 'J': + case 'F': + case 'D': + token = single_type.substr(/*start*/0u, /*len*/1u); + break; + case 'L': + state = kObject; + break; + case '[': + state = kArray; + break; + default: { + // See JNI Chapter 3: Type Signatures. + PARSE_FAILURE("Expected a valid type descriptor character."); + return kUnreachable; + } + } + + // Possibly parse an arbitary-long remainder substring. + switch (state) { + case kSingleCharacter: + return {{token, remainder}}; + case kArray: { + // Recursively parse the array component, as it's just any non-void type descriptor. + ConstexprOptional + maybe_res = ParseSingleTypeDescriptor(remainder, /*allow_void*/false); + PARSE_ASSERT(maybe_res); // Downstream parsing has asserted, bail out. + + ParseTypeDescriptorResult res = maybe_res.value(); + + // Reject illegal array type descriptors such as "]". + PARSE_ASSERT_MSG(res.has_token(), "All array types must follow by their component type (e.g. ']I', ']]Z', etc. "); + + token = single_type.substr(/*start*/0u, res.token.size() + 1u); + + return {{token, res.remainder}}; + } + case kObject: { + // Parse the fully qualified class, e.g. Lfoo/bar/baz; + // Note checking that each part of the class name is a valid class identifier + // is too complicated (JLS 3.8). + // This simple check simply scans until the next ';'. + bool found_semicolon = false; + size_t semicolon_len = 0; + for (size_t i = 0; i < single_type.size(); ++i) { + switch (single_type[i]) { + case ')': + case '(': + case '[': + PARSE_FAILURE("Object identifiers cannot have ()[ in them."); + break; + } + if (single_type[i] == ';') { + semicolon_len = i + 1; + found_semicolon = true; + break; + } + } + + PARSE_ASSERT(found_semicolon); + + token = single_type.substr(/*start*/0u, semicolon_len); + remainder = single_type.substr(/*start*/semicolon_len); + + bool class_name_is_empty = token.size() <= 2u; // e.g. "L;" + PARSE_ASSERT(!class_name_is_empty); + + return {{token, remainder}}; + } + default: + X_ASSERT(false); + } + + X_ASSERT(false); + return kUnreachable; +} + +// Abstract data type to represent container for Ret(Args,...). +template +struct FunctionSignatureDescriptor { + ConstexprVector args; + T ret; + + static constexpr size_t max_size = kMaxSize; +}; + + +template +inline std::ostream& operator<<( + std::ostream& os, + const FunctionSignatureDescriptor& signature) { + size_t count = 0; + os << "args={"; + for (auto& arg : signature.args) { + os << arg; + + if (count != signature.args.size() - 1) { + os << ","; + } + + ++count; + } + os << "}, ret="; + os << signature.ret; + return os; +} + +// Ret(Args...) of JniDescriptorNode. +template +using JniSignatureDescriptor = FunctionSignatureDescriptor; + +// Parse a JNI function signature descriptor into a JniSignatureDescriptor. +// +// If parsing fails (i.e. illegal syntax), then: +// parses are fatal -> assertion is triggered (default behavior), +// parses are nonfatal -> returns nullopt (test behavior). +template +constexpr ConstexprOptional> +ParseSignatureAsList(ConstexprStringView signature) { + // The list of JNI descriptors cannot possibly exceed the number of characters + // in the JNI string literal. We leverage this to give an upper bound of the strlen. + // This is a bit wasteful but in constexpr there *must* be a fixed upper size for data structures. + ConstexprVector jni_desc_node_list; + JniDescriptorNode return_jni_desc; + + enum State { + kInitial = 0, + kParsingParameters = 1, + kParsingReturnType = 2, + kCompleted = 3, + }; + + State state = kInitial; + + while (!signature.empty()) { + switch (state) { + case kInitial: { + char c = signature[0]; + PARSE_ASSERT_MSG(c == '(', + "First character of a JNI signature must be a '('"); + state = kParsingParameters; + signature = signature.substr(/*start*/1u); + break; + } + case kParsingParameters: { + char c = signature[0]; + if (c == ')') { + state = kParsingReturnType; + signature = signature.substr(/*start*/1u); + break; + } + + ConstexprOptional + res = ParseSingleTypeDescriptor(signature, /*allow_void*/false); + PARSE_ASSERT(res); + + jni_desc_node_list.push_back(res->as_node()); + + signature = res->remainder; + break; + } + case kParsingReturnType: { + ConstexprOptional + res = ParseSingleTypeDescriptor(signature, /*allow_void*/true); + PARSE_ASSERT(res); + + return_jni_desc = res->as_node(); + signature = res->remainder; + state = kCompleted; + break; + } + default: { + // e.g. "()VI" is illegal because the V terminates the signature. + PARSE_FAILURE("Signature had left over tokens after parsing return type"); + break; + } + } + } + + switch (state) { + case kCompleted: + // Everything is ok. + break; + case kParsingParameters: + PARSE_FAILURE("Signature was missing ')'"); + break; + case kParsingReturnType: + PARSE_FAILURE("Missing return type"); + case kInitial: + PARSE_FAILURE("Cannot have an empty signature"); + default: + X_ASSERT(false); + } + + return {{jni_desc_node_list, return_jni_desc}}; +} + +// What kind of JNI does this type belong to? +enum NativeKind { + kNotJni, // Illegal parameter used inside of a function type. + kNormalJniCallingConventionParameter, + kNormalNative, + kFastNative, // Also valid in normal. + kCriticalNative, // Also valid in fast/normal. +}; + +// Is this type final, i.e. it cannot be subtyped? +enum TypeFinal { + kNotFinal, + kFinal // e.g. any primitive or any "final" class such as String. +}; + +// What position is the JNI type allowed to be in? +// Ignored when in a CriticalNative context. +enum NativePositionAllowed { + kNotAnyPosition, + kReturnPosition, + kZerothPosition, + kFirstOrLaterPosition, + kSecondOrLaterPosition, +}; + +constexpr NativePositionAllowed ConvertPositionToAllowed(size_t position) { + switch (position) { + case 0: + return kZerothPosition; + case 1: + return kFirstOrLaterPosition; + default: + return kSecondOrLaterPosition; + } +} + +// Type traits for a JNI parameter type. See below for specializations. +template +struct jni_type_trait { + static constexpr NativeKind native_kind = kNotJni; + static constexpr const char type_descriptor[] = "(illegal)"; + static constexpr NativePositionAllowed position_allowed = kNotAnyPosition; + static constexpr TypeFinal type_finality = kNotFinal; + static constexpr const char type_name[] = "(illegal)"; +}; + +// Access the jni_type_trait from a non-templated constexpr function. +// Identical non-static fields to jni_type_trait, see Reify(). +struct ReifiedJniTypeTrait { + NativeKind native_kind; + ConstexprStringView type_descriptor; + NativePositionAllowed position_allowed; + TypeFinal type_finality; + ConstexprStringView type_name; + + template + static constexpr ReifiedJniTypeTrait Reify() { + // This should perhaps be called 'Type Erasure' except we don't use virtuals, + // so it's not quite the same idiom. + using TR = jni_type_trait; + return {TR::native_kind, + TR::type_descriptor, + TR::position_allowed, + TR::type_finality, + TR::type_name}; + } + + // Find the most similar ReifiedJniTypeTrait corresponding to the type descriptor. + // + // Any type can be found by using the exact canonical type descriptor as listed + // in the jni type traits definitions. + // + // Non-final JNI types have limited support for inexact similarity: + // [[* | [L* -> jobjectArray + // L* -> jobject + // + // Otherwise return a nullopt. + static constexpr ConstexprOptional + MostSimilarTypeDescriptor(ConstexprStringView type_descriptor); +}; + +constexpr bool +operator==(const ReifiedJniTypeTrait& lhs, const ReifiedJniTypeTrait& rhs) { + return lhs.native_kind == rhs.native_kind + && rhs.type_descriptor == lhs.type_descriptor && + lhs.position_allowed == rhs.position_allowed + && rhs.type_finality == lhs.type_finality && + lhs.type_name == rhs.type_name; +} + +inline std::ostream& operator<<(std::ostream& os, const ReifiedJniTypeTrait& rjtt) { + // os << "ReifiedJniTypeTrait<" << rjft.type_name << ">"; + os << rjtt.type_name; + return os; +} + +// Template specialization for any JNI typedefs. +#define JNI_TYPE_TRAIT(jtype, the_type_descriptor, the_native_kind, the_type_finality, the_position) \ +template <> \ +struct jni_type_trait< jtype > { \ + static constexpr NativeKind native_kind = the_native_kind; \ + static constexpr const char type_descriptor[] = the_type_descriptor; \ + static constexpr NativePositionAllowed position_allowed = the_position; \ + static constexpr TypeFinal type_finality = the_type_finality; \ + static constexpr const char type_name[] = #jtype; \ +}; + +#define DEFINE_JNI_TYPE_TRAIT(TYPE_TRAIT_FN) \ +TYPE_TRAIT_FN(jboolean, "Z", kCriticalNative, kFinal, kSecondOrLaterPosition) \ +TYPE_TRAIT_FN(jbyte, "B", kCriticalNative, kFinal, kSecondOrLaterPosition) \ +TYPE_TRAIT_FN(jchar, "C", kCriticalNative, kFinal, kSecondOrLaterPosition) \ +TYPE_TRAIT_FN(jshort, "S", kCriticalNative, kFinal, kSecondOrLaterPosition) \ +TYPE_TRAIT_FN(jint, "I", kCriticalNative, kFinal, kSecondOrLaterPosition) \ +TYPE_TRAIT_FN(jlong, "J", kCriticalNative, kFinal, kSecondOrLaterPosition) \ +TYPE_TRAIT_FN(jfloat, "F", kCriticalNative, kFinal, kSecondOrLaterPosition) \ +TYPE_TRAIT_FN(jdouble, "D", kCriticalNative, kFinal, kSecondOrLaterPosition) \ +TYPE_TRAIT_FN(jobject, "Ljava/lang/Object;", kFastNative, kNotFinal, kFirstOrLaterPosition) \ +TYPE_TRAIT_FN(jclass, "Ljava/lang/Class;", kFastNative, kFinal, kFirstOrLaterPosition) \ +TYPE_TRAIT_FN(jstring, "Ljava/lang/String;", kFastNative, kFinal, kSecondOrLaterPosition) \ +TYPE_TRAIT_FN(jarray, "Ljava/lang/Object;", kFastNative, kNotFinal, kSecondOrLaterPosition) \ +TYPE_TRAIT_FN(jobjectArray, "[Ljava/lang/Object;", kFastNative, kNotFinal, kSecondOrLaterPosition) \ +TYPE_TRAIT_FN(jbooleanArray, "[Z", kFastNative, kFinal, kSecondOrLaterPosition) \ +TYPE_TRAIT_FN(jbyteArray, "[B", kFastNative, kFinal, kSecondOrLaterPosition) \ +TYPE_TRAIT_FN(jcharArray, "[C", kFastNative, kFinal, kSecondOrLaterPosition) \ +TYPE_TRAIT_FN(jshortArray, "[S", kFastNative, kFinal, kSecondOrLaterPosition) \ +TYPE_TRAIT_FN(jintArray, "[I", kFastNative, kFinal, kSecondOrLaterPosition) \ +TYPE_TRAIT_FN(jlongArray, "[J", kFastNative, kFinal, kSecondOrLaterPosition) \ +TYPE_TRAIT_FN(jfloatArray, "[F", kFastNative, kFinal, kSecondOrLaterPosition) \ +TYPE_TRAIT_FN(jdoubleArray, "[D", kFastNative, kFinal, kSecondOrLaterPosition) \ +TYPE_TRAIT_FN(jthrowable, "Ljava/lang/Throwable;", kFastNative, kNotFinal, kSecondOrLaterPosition) \ +TYPE_TRAIT_FN(JNIEnv*, "", kNormalJniCallingConventionParameter, kFinal, kZerothPosition) \ +TYPE_TRAIT_FN(void, "V", kCriticalNative, kFinal, kReturnPosition) \ + +DEFINE_JNI_TYPE_TRAIT(JNI_TYPE_TRAIT) + +// See ReifiedJniTypeTrait for documentation. +constexpr ConstexprOptional +ReifiedJniTypeTrait::MostSimilarTypeDescriptor(ConstexprStringView type_descriptor) { +#define MATCH_EXACT_TYPE_DESCRIPTOR_FN(type, type_desc, native_kind, ...) \ + if (type_descriptor == type_desc && native_kind >= kNormalNative) { \ + return { Reify() }; \ + } + + // Attempt to look up by the precise type match first. + DEFINE_JNI_TYPE_TRAIT(MATCH_EXACT_TYPE_DESCRIPTOR_FN); + + // Otherwise, we need to do an imprecise match: + char shorty = type_descriptor.size() >= 1 ? type_descriptor[0] : '\0'; + if (shorty == 'L') { + // Something more specific like Ljava/lang/Throwable, string, etc + // is already matched by the macro-expanded conditions above. + return {Reify()}; + } else if (type_descriptor.size() >= 2) { + auto shorty_shorty = type_descriptor.substr(/*start*/0, /*size*/2u); + if (shorty_shorty == "[[" || shorty_shorty == "[L") { + // JNI arrays are covariant, so any type T[] (T!=primitive) is castable to Object[]. + return {Reify()}; + } + } + + // To handle completely invalid values. + return NullConstexprOptional{}; +} + +// Is this actual JNI position consistent with the expected position? +constexpr bool IsValidJniParameterPosition(NativeKind native_kind, + NativePositionAllowed position, + NativePositionAllowed expected_position) { + X_ASSERT(expected_position != kNotAnyPosition); + + if (native_kind == kCriticalNative) { + // CriticalNatives ignore positions since the first 2 special + // parameters are stripped. + return true; + } + + // Is this a return-only position? + if (expected_position == kReturnPosition) { + if (position != kReturnPosition) { + // void can only be in the return position. + return false; + } + // Don't do the other non-return position checks for a return-only position. + return true; + } + + // JNIEnv* can only be in the first spot. + if (position == kZerothPosition && expected_position != kZerothPosition) { + return false; + // jobject, jclass can be 1st or anywhere afterwards. + } else if (position == kFirstOrLaterPosition && expected_position != kFirstOrLaterPosition) { + return false; + // All other parameters must be in 2nd+ spot, or in the return type. + } else if (position == kSecondOrLaterPosition || position == kReturnPosition) { + if (expected_position != kFirstOrLaterPosition && expected_position != kSecondOrLaterPosition) { + return false; + } + } + + return true; +} + +// Check if a jni parameter type is valid given its position and native_kind. +template +constexpr bool IsValidJniParameter(NativeKind native_kind, NativePositionAllowed position) { + // const,volatile does not affect JNI compatibility since it does not change ABI. + using expected_trait = jni_type_trait::type>; + NativeKind expected_native_kind = expected_trait::native_kind; + + // Most types 'T' are not valid for JNI. + if (expected_native_kind == NativeKind::kNotJni) { + return false; + } + + // The rest of the types might be valid, but it depends on the context (native_kind) + // and also on their position within the parameters. + + // Position-check first. + NativePositionAllowed expected_position = expected_trait::position_allowed; + if (!IsValidJniParameterPosition(native_kind, position, expected_position)) { + return false; + } + + // Ensure the type appropriate is for the native kind. + if (expected_native_kind == kNormalJniCallingConventionParameter) { + // It's always wrong to use a JNIEnv* anywhere but the 0th spot. + if (native_kind == kCriticalNative) { + // CriticalNative does not allow using a JNIEnv*. + return false; + } + + return true; // OK: JniEnv* used in 0th position. + } else if (expected_native_kind == kCriticalNative) { + // CriticalNative arguments are always valid JNI types anywhere used. + return true; + } else if (native_kind == kCriticalNative) { + // The expected_native_kind was non-critical but we are in a critical context. + // Illegal type. + return false; + } + + // Everything else is fine, e.g. fast/normal native + fast/normal native parameters. + return true; +} + +// Is there sufficient number of parameters given the kind of JNI that it is? +constexpr bool IsJniParameterCountValid(NativeKind native_kind, size_t count) { + if (native_kind == kNormalNative || native_kind == kFastNative) { + return count >= 2u; + } else if (native_kind == kCriticalNative) { + return true; + } + + constexpr bool invalid_parameter = false; + X_ASSERT(invalid_parameter); + return false; +} + +// Basic template interface. See below for partial specializations. +// +// Each instantiation will have a 'value' field that determines whether or not +// all of the Args are valid JNI arguments given their native_kind. +template +struct is_valid_jni_argument_type { + // static constexpr bool value = ?; +}; + +template +struct is_valid_jni_argument_type { + static constexpr bool value = true; +}; + +template +struct is_valid_jni_argument_type { + static constexpr bool value = + IsValidJniParameter(native_kind, ConvertPositionToAllowed(position)); +}; + +template +struct is_valid_jni_argument_type { + static constexpr bool value = + IsValidJniParameter(native_kind, ConvertPositionToAllowed(position)) + && is_valid_jni_argument_type::value; +}; + +// This helper is required to decompose the function type into a list of arg types. +template +struct is_valid_jni_function_type_helper; + +template +struct is_valid_jni_function_type_helper { + static constexpr bool value = + IsJniParameterCountValid(native_kind, sizeof...(Args)) + && IsValidJniParameter(native_kind, kReturnPosition) + && is_valid_jni_argument_type::value; +}; + +// Is this function type 'T' a valid C++ function type given the native_kind? +template +constexpr bool IsValidJniFunctionType() { + return is_valid_jni_function_type_helper::value; + // TODO: we could replace template metaprogramming with constexpr by + // using FunctionTypeMetafunction. +} + +// Many parts of std::array is not constexpr until C++17. +template +struct ConstexprArray { + // Intentionally public to conform to std::array. + // This means all constructors are implicit. + // *NOT* meant to be used directly, use the below functions instead. + // + // The reason std::array has it is to support direct-list-initialization, + // e.g. "ConstexprArray{T{...}, T{...}, T{...}, ...};" + // + // Note that otherwise this would need a very complicated variadic + // argument constructor to only support list of Ts. + T _array[N]; + + constexpr size_t size() const { + return N; + } + + using iterator = T*; + using const_iterator = const T*; + + constexpr iterator begin() { + return &_array[0]; + } + + constexpr iterator end() { + return &_array[N]; + } + + constexpr const_iterator begin() const { + return &_array[0]; + } + + constexpr const_iterator end() const { + return &_array[N]; + } + + constexpr T& operator[](size_t i) { + return _array[i]; + } + + constexpr const T& operator[](size_t i) const { + return _array[i]; + } +}; + +// Why do we need this? +// auto x = {1,2,3} creates an initializer_list, +// but they can't be returned because it contains pointers to temporaries. +// auto x[] = {1,2,3} doesn't even work because auto for arrays is not supported. +// +// an alternative would be to pull up std::common_t directly into the call site +// std::common_type_t array[] = {1,2,3} +// but that's even more cludgier. +// +// As the other "stdlib-wannabe" functions, it's weaker than the library +// fundamentals std::make_array but good enough for our use. +template +constexpr auto MakeArray(Args&& ... args) { + return ConstexprArray::type, + sizeof...(Args)>{args...}; +} + +// See below. +template +struct FunctionTypeMetafunction { +}; + +// Enables the "map" operation over the function component types. +template +struct FunctionTypeMetafunction { + // Count how many arguments there are, and add 1 for the return type. + static constexpr size_t + count = sizeof...(Args) + 1u; // args and return type. + + // Return an array where the metafunction 'Func' has been applied + // to every argument type. The metafunction must be returning a common type. + template class Func> + static constexpr auto map_args() { + return map_args_impl(holder < Args > {}...); + } + + // Apply the metafunction 'Func' over the return type. + template class Func> + static constexpr auto map_return() { + return Func{}(); + } + + private: + template + struct holder { + }; + + template class Func, typename Arg0, typename... ArgsRest> + static constexpr auto map_args_impl(holder, holder...) { + // One does not simply call MakeArray with 0 template arguments... + auto array = MakeArray( + Func{}()... + ); + + return array; + } + + template class Func> + static constexpr auto map_args_impl() { + // This overload provides support for MakeArray() with 0 arguments. + using ComponentType = decltype(Func{}()); + + return ConstexprArray{}; + } +}; + +// Apply ReifiedJniTypeTrait::Reify for every function component type. +template +struct ReifyJniTypeMetafunction { + constexpr ReifiedJniTypeTrait operator()() const { + auto res = ReifiedJniTypeTrait::Reify(); + X_ASSERT(res.native_kind != kNotJni); + return res; + } +}; + +// Ret(Args...) where every component is a ReifiedJniTypeTrait. +template +using ReifiedJniSignature = FunctionSignatureDescriptor; + +// Attempts to convert the function type T into a list of ReifiedJniTypeTraits +// that correspond to the function components. +// +// If conversion fails (i.e. non-jni compatible types), then: +// parses are fatal -> assertion is triggered (default behavior), +// parses are nonfatal -> returns nullopt (test behavior). +template ::count> +constexpr ConstexprOptional> +MaybeMakeReifiedJniSignature() { + if (!IsValidJniFunctionType()) { + PARSE_FAILURE("The function signature has one or more types incompatible with JNI."); + } + + ReifiedJniTypeTrait return_jni_trait = + FunctionTypeMetafunction::template map_return(); + + constexpr size_t + kSkipArgumentPrefix = (native_kind != kCriticalNative) ? 2u : 0u; + ConstexprVector args; + auto args_list = + FunctionTypeMetafunction::template map_args(); + size_t args_index = 0; + for (auto& arg : args_list) { + // Ignore the 'JNIEnv*, jobject' / 'JNIEnv*, jclass' prefix, + // as its not part of the function descriptor string. + if (args_index >= kSkipArgumentPrefix) { + args.push_back(arg); + } + + ++args_index; + } + + return {{args, return_jni_trait}}; +} + +#define COMPARE_DESCRIPTOR_CHECK(expr) if (!(expr)) return false +#define COMPARE_DESCRIPTOR_FAILURE_MSG(msg) if ((true)) return false + +// Compares a user-defined JNI descriptor (of a single argument or return value) +// to a reified jni type trait that was derived from the C++ function type. +// +// If comparison fails (i.e. non-jni compatible types), then: +// parses are fatal -> assertion is triggered (default behavior), +// parses are nonfatal -> returns false (test behavior). +constexpr bool +CompareJniDescriptorNodeErased(JniDescriptorNode user_defined_descriptor, + ReifiedJniTypeTrait derived) { + + ConstexprOptional user_reified_opt = + ReifiedJniTypeTrait::MostSimilarTypeDescriptor(user_defined_descriptor.longy); + + if (!user_reified_opt.has_value()) { + COMPARE_DESCRIPTOR_FAILURE_MSG( + "Could not find any JNI C++ type corresponding to the type descriptor"); + } + + char user_shorty = user_defined_descriptor.longy.size() > 0 ? + user_defined_descriptor.longy[0] : + '\0'; + + ReifiedJniTypeTrait user = user_reified_opt.value(); + if (user == derived) { + // If we had a similar match, immediately return success. + return true; + } else if (derived.type_name == "jthrowable") { + if (user_shorty == 'L') { + // Weakly allow any objects to correspond to a jthrowable. + // We do not know the managed type system so we have to be permissive here. + return true; + } else { + COMPARE_DESCRIPTOR_FAILURE_MSG( + "jthrowable must correspond to an object type descriptor"); + } + } else if (derived.type_name == "jarray") { + if (user_shorty == '[') { + // a jarray is the base type for all other array types. Allow. + return true; + } else { + // Ljava/lang/Object; is the root for all array types. + // Already handled above in 'if user == derived'. + COMPARE_DESCRIPTOR_FAILURE_MSG( + "jarray must correspond to array type descriptor"); + } + } + // Otherwise, the comparison has failed and the rest of this is only to + // pick the most appropriate error message. + // + // Note: A weaker form of comparison would allow matching 'Ljava/lang/String;' + // against 'jobject', etc. However the policy choice here is to enforce the strictest + // comparison that we can to utilize the type system to its fullest. + + if (derived.type_finality == kFinal || user.type_finality == kFinal) { + // Final types, e.g. "I", "Ljava/lang/String;" etc must match exactly + // the C++ jni descriptor string ('I' -> jint, 'Ljava/lang/String;' -> jstring). + COMPARE_DESCRIPTOR_FAILURE_MSG( + "The JNI descriptor string must be the exact type equivalent of the " + "C++ function signature."); + } else if (user_shorty == '[') { + COMPARE_DESCRIPTOR_FAILURE_MSG( + "The array JNI descriptor must correspond to j${type}Array or jarray"); + } else if (user_shorty == 'L') { + COMPARE_DESCRIPTOR_FAILURE_MSG( + "The object JNI descriptor must correspond to jobject."); + } else { + X_ASSERT(false); // We should never get here, but either way this means the types did not match + COMPARE_DESCRIPTOR_FAILURE_MSG( + "The JNI type descriptor string does not correspond to the C++ JNI type."); + } +} + +// Matches a user-defined JNI function descriptor against the C++ function type. +// +// If matches fails, then: +// parses are fatal -> assertion is triggered (default behavior), +// parses are nonfatal -> returns false (test behavior). +template +constexpr bool +MatchJniDescriptorWithFunctionType(ConstexprStringView user_function_descriptor) { + constexpr size_t kReifiedMaxSize = FunctionTypeMetafunction::count; + + ConstexprOptional> + reified_signature_opt = + MaybeMakeReifiedJniSignature(); + if (!reified_signature_opt) { + // Assertion handling done by MaybeMakeReifiedJniSignature. + return false; + } + + ConstexprOptional> user_jni_sig_desc_opt = + ParseSignatureAsList(user_function_descriptor); + + if (!user_jni_sig_desc_opt) { + // Assertion handling done by ParseSignatureAsList. + return false; + } + + ReifiedJniSignature + reified_signature = reified_signature_opt.value(); + JniSignatureDescriptor + user_jni_sig_desc = user_jni_sig_desc_opt.value(); + + if (reified_signature.args.size() != user_jni_sig_desc.args.size()) { + COMPARE_DESCRIPTOR_FAILURE_MSG( + "Number of parameters in JNI descriptor string" + "did not match number of parameters in C++ function type"); + } else if (!CompareJniDescriptorNodeErased(user_jni_sig_desc.ret, + reified_signature.ret)) { + // Assertion handling done by CompareJniDescriptorNodeErased. + return false; + } else { + for (size_t i = 0; i < user_jni_sig_desc.args.size(); ++i) { + if (!CompareJniDescriptorNodeErased(user_jni_sig_desc.args[i], + reified_signature.args[i])) { + // Assertion handling done by CompareJniDescriptorNodeErased. + return false; + } + } + } + + return true; +} + +// Supports inferring the JNI function descriptor string from the C++ +// function type when all type components are final. +template +struct InferJniDescriptor { + static constexpr size_t kMaxSize = FunctionTypeMetafunction::count; + + // Convert the C++ function type into a JniSignatureDescriptor which holds + // the canonical (according to jni_traits) descriptors for each component. + // The C++ type -> JNI mapping must be nonambiguous (see jni_macros.h for exact rules). + // + // If conversion fails (i.e. C++ signatures is illegal for JNI, or the types are ambiguous): + // if parsing is fatal -> assertion failure (default behavior) + // if parsing is nonfatal -> returns nullopt (test behavior). + static constexpr ConstexprOptional> FromFunctionType() { + constexpr size_t kReifiedMaxSize = kMaxSize; + ConstexprOptional> + reified_signature_opt = + MaybeMakeReifiedJniSignature(); + if (!reified_signature_opt) { + // Assertion handling done by MaybeMakeReifiedJniSignature. + return NullConstexprOptional{}; + } + + ReifiedJniSignature + reified_signature = reified_signature_opt.value(); + + JniSignatureDescriptor signature_descriptor; + + if (reified_signature.ret.type_finality != kFinal) { + // e.g. jint, jfloatArray, jstring, jclass are ok. jobject, jthrowable, jarray are not. + PARSE_FAILURE("Bad return type. Only unambigous (final) types can be used to infer a signature."); // NOLINT + } + signature_descriptor.ret = + JniDescriptorNode{reified_signature.ret.type_descriptor}; + + for (size_t i = 0; i < reified_signature.args.size(); ++i) { + const ReifiedJniTypeTrait& arg_trait = reified_signature.args[i]; + if (arg_trait.type_finality != kFinal) { + PARSE_FAILURE("Bad parameter type. Only unambigous (final) types can be used to infer a signature."); // NOLINT + } + signature_descriptor.args.push_back(JniDescriptorNode{ + arg_trait.type_descriptor}); + } + + return {signature_descriptor}; + } + + // Calculate the exact string size that the JNI descriptor will be + // at runtime. + // + // Without this we cannot allocate enough space within static storage + // to fit the compile-time evaluated string. + static constexpr size_t CalculateStringSize() { + ConstexprOptional> + signature_descriptor_opt = + FromFunctionType(); + if (!signature_descriptor_opt) { + // Assertion handling done by FromFunctionType. + return 0u; + } + + JniSignatureDescriptor signature_descriptor = + signature_descriptor_opt.value(); + + size_t acc_size = 1u; // All sigs start with '('. + + // Now add every parameter. + for (size_t j = 0; j < signature_descriptor.args.size(); ++j) { + const JniDescriptorNode& arg_descriptor = signature_descriptor.args[j]; + // for (const JniDescriptorNode& arg_descriptor : signature_descriptor.args) { + acc_size += arg_descriptor.longy.size(); + } + + acc_size += 1u; // Add space for ')'. + + // Add space for the return value. + acc_size += signature_descriptor.ret.longy.size(); + + return acc_size; + } + + static constexpr size_t kMaxStringSize = CalculateStringSize(); + using ConstexprStringDescriptorType = ConstexprArray; + + // Convert the JniSignatureDescriptor we get in FromFunctionType() + // into a flat constexpr char array. + // + // This is done by repeated string concatenation at compile-time. + static constexpr ConstexprStringDescriptorType GetString() { + ConstexprStringDescriptorType c_str{}; + + ConstexprOptional> + signature_descriptor_opt = + FromFunctionType(); + if (!signature_descriptor_opt.has_value()) { + // Assertion handling done by FromFunctionType. + c_str[0] = '\0'; + return c_str; + } + + JniSignatureDescriptor signature_descriptor = + signature_descriptor_opt.value(); + + size_t pos = 0u; + c_str[pos++] = '('; + + // Copy all parameter descriptors. + for (size_t j = 0; j < signature_descriptor.args.size(); ++j) { + const JniDescriptorNode& arg_descriptor = signature_descriptor.args[j]; + ConstexprStringView longy = arg_descriptor.longy; + for (size_t i = 0; i < longy.size(); ++i) { + c_str[pos++] = longy[i]; + } + } + + c_str[pos++] = ')'; + + // Copy return descriptor. + ConstexprStringView longy = signature_descriptor.ret.longy; + for (size_t i = 0; i < longy.size(); ++i) { + c_str[pos++] = longy[i]; + } + + X_ASSERT(pos == kMaxStringSize); + + c_str[pos] = '\0'; + + return c_str; + } + + // Turn a pure constexpr string into one that can be accessed at non-constexpr + // time. Note that the 'static constexpr' storage must be in the scope of a + // function (prior to C++17) to avoid linking errors. + static const char* GetStringAtRuntime() { + static constexpr ConstexprStringDescriptorType str = GetString(); + return &str[0]; + } +}; + +// Expression to return JNINativeMethod, performs checking on signature+fn. +#define MAKE_CHECKED_JNI_NATIVE_METHOD(native_kind, name_, signature_, fn) \ + ([]() { \ + using namespace nativehelper::detail; /* NOLINT(google-build-using-namespace) */ \ + static_assert( \ + MatchJniDescriptorWithFunctionType(signature_),\ + "JNI signature doesn't match C++ function type."); \ + /* Suppress implicit cast warnings by explicitly casting. */ \ + return JNINativeMethod { \ + const_cast(name_), \ + const_cast(signature_), \ + reinterpret_cast(&(fn))}; \ + })() + +// Expression to return JNINativeMethod, infers signature from fn. +#define MAKE_INFERRED_JNI_NATIVE_METHOD(native_kind, name_, fn) \ + ([]() { \ + using namespace nativehelper::detail; /* NOLINT(google-build-using-namespace) */ \ + /* Suppress implicit cast warnings by explicitly casting. */ \ + return JNINativeMethod { \ + const_cast(name_), \ + const_cast( \ + InferJniDescriptor::GetStringAtRuntime()), \ + reinterpret_cast(&(fn))}; \ + })() + +} // namespace detail +} // namespace nativehelper + diff --git a/third_party/libnativehelper/platform_include/nativehelper/jni_macros.h b/third_party/libnativehelper/platform_include/nativehelper/jni_macros.h new file mode 100644 index 0000000000..da01e6fae6 --- /dev/null +++ b/third_party/libnativehelper/platform_include/nativehelper/jni_macros.h @@ -0,0 +1,285 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Compile-time, zero-cost checking of JNI signatures against their C++ function type. + * This can trigger compile-time assertions if any of the input is invalid: + * (a) The signature specified does not conform to the JNI function descriptor syntax. + * (b) The C++ function is itself an invalid JNI function (e.g. missing JNIEnv*, etc). + * (c) The descriptor does not match the C++ function (e.g. "()V" will not match jint(jint)). + * + * The fundamental macros are as following: + * MAKE_JNI_[FAST_|CRITICAL_]NATIVE_METHOD - Create a checked JNINativeMethod{name, sig, func}. + * MAKE_JNI_[FAST_|CRITICAL_]NATIVE_METHOD_AUTOSIG - Same as above, but infer the JNI signature. + * + * Usage examples: + * // path/to/package/KlassName.java + * class KlassName { + * native jobject normal(int x); + * @FastNative native jobject fast(int x); + * @CriticalNative native int critical(long ptr); + * } + * // path_to_package_KlassName.cpp + * jobject KlassName_normal(JNIEnv*,jobject,jint) {...} + * jobject KlassName_fast(JNIEnv*,jobject,jint) {...} + * jint KlassName_critical(jlong) {...} + * + * // Manually specify each signature: + * JNINativeMethod[] gMethods = { + * MAKE_JNI_NATIVE_METHOD("normal", "(I)Ljava/lang/Object;", KlassName_normal), + * MAKE_JNI_FAST_NATIVE_METHOD("fast", "(I)Ljava/lang/Object;", KlassName_fast), + * MAKE_JNI_CRITICAL_NATIVE_METHOD("critical", "(Z)I", KlassName_critical), + * }; + * + * // Automatically infer the signature: + * JNINativeMethod[] gMethodsAutomaticSignature = { + * MAKE_JNI_NATIVE_METHOD_AUTOSIG("normal", KlassName_normal), + * MAKE_JNI_FAST_NATIVE_METHOD_AUTOSIG("fast", KlassName_fast), + * MAKE_JNI_CRITICAL_NATIVE_METHOD_AUTOSIG("critical", KlassName_critical), + * }; + * + * // and then call JNIEnv::RegisterNatives with gMethods as usual. + * + * For convenience the following macros are defined: + * [FAST_|CRITICAL_]NATIVE_METHOD - Return JNINativeMethod for class, func name, and signature. + * OVERLOADED_[FAST_|CRITICAL_]NATIVE_METHOD - Same as above but allows a separate func identifier. + * [FAST_|CRITICAL_]NATIVE_METHOD_AUTOSIG - Return JNINativeMethod, sig inferred from function. + * + * The FAST_ prefix corresponds to functions annotated with @FastNative, + * and the CRITICAL_ prefix corresponds to functions annotated with @CriticalNative. + * See dalvik.annotation.optimization.CriticalNative for more details. + * + * ======================================= + * Checking rules + * ======================================= + * + * --------------------------------------- + * JNI descriptor syntax for functions + * + * Refer to "Chapter 3: JNI Types and Data Structures" of the JNI specification + * under the subsection "Type Signatures" table entry "method type". + * + * JNI signatures not conforming to the above syntax are rejected. + * --------------------------------------- + * C++ function types + * + * A normal or @FastNative JNI function type must be of the form + * + * ReturnType (JNIEnv*, jclass|jobject, [ArgTypes...]) {} + * + * A @CriticalNative JNI function type: + * + * must be of the form... ReturnType ([ArgTypes...]){} + * and must not contain any Reference Types. + * + * Refer to "Chapter 3: JNI Types and Data Structures" of the JNI specification + * under the subsection "Primitive Types" and "Reference Types" for the list + * of valid argument/return types. + * + * C++ function types not conforming to the above requirements are rejected. + * --------------------------------------- + * Matching of C++ function type against JNI function descriptor. + * + * Assuming all of the above conditions are met for signature and C++ type validity, + * then matching between the signature and the type validity can occur: + * + * Given a signature (Args...)Ret and the + * C++ function type of the form "CRet fn(JNIEnv*, jclass|jobject, CArgs...)", + * or for @CriticalNative of the form "CRet fn(CArgs...)" + * + * The number of Args... and the number of CArgs... must be equal. + * + * If so, attempt to match every component from the signature and function type + * against each other: + * + * ReturnType: + * V <-> void + * ArgumentType + * + * ArgumentType: + * PrimitiveType + * ReferenceType [except for @CriticalNative] + * + * PrimitiveType: + * Z <-> jboolean + * B <-> jbyte + * C <-> jchar + * S <-> jshort + * I <-> jint + * J <-> jlong + * F <-> jfloat + * D <-> jdouble + * + * ReferenceType: + * Ljava/lang/String; <-> jstring + * Ljava/lang/Class; <-> jclass + * L*; <- jobject + * Ljava/lang/Throwable; -> jthrowable + * L*; <- jthrowable + * [ PrimitiveType <-> ${CPrimitiveType}Array + * [ ReferenceType <-> jobjectArray + * [* <- jarray + * + * Wherein <-> represents a strong match (if the left or right pattern occurs, + * then left must match right, otherwise matching fails). <- and -> represent + * weak matches (that is, other match rules can be still attempted). + * + * Sidenote: Whilst a jobject could also represent a jclass, jstring, etc, + * the stricter approach is taken: the most exact C++ type must be used. + */ + +#ifndef NATIVEHELPER_JNI_MACROS_H +#define NATIVEHELPER_JNI_MACROS_H + +// The below basic macros do not perform automatic stringification, +// invoked e.g. as MAKE_JNI_NATIVE_METHOD("some_name", "()V", void_fn) + +// An expression that evaluates to JNINativeMethod { name, signature, function }, +// and applies the above compile-time checking for signature+function. +// The equivalent Java Language code must not be annotated with @FastNative/@CriticalNative. +#define MAKE_JNI_NATIVE_METHOD(name, signature, function) \ + _NATIVEHELPER_JNI_MAKE_METHOD(kNormalNative, name, signature, function) + +// An expression that evaluates to JNINativeMethod { name, signature, function }, +// and applies the above compile-time checking for signature+function. +// The equivalent Java Language code must be annotated with @FastNative. +#define MAKE_JNI_FAST_NATIVE_METHOD(name, signature, function) \ + _NATIVEHELPER_JNI_MAKE_METHOD(kFastNative, name, signature, function) + +// An expression that evaluates to JNINativeMethod { name, signature, function }, +// and applies the above compile-time checking for signature+function. +// The equivalent Java Language code must be annotated with @CriticalNative. +#define MAKE_JNI_CRITICAL_NATIVE_METHOD(name, signature, function) \ + _NATIVEHELPER_JNI_MAKE_METHOD(kCriticalNative, name, signature, function) + +// Automatically signature-inferencing macros are also available, +// which also checks the C++ function types for validity: + +// An expression that evalutes to JNINativeMethod { name, infersig(function), function) } +// by inferring the signature at compile-time. Only works when the C++ function type +// corresponds to one unambigous JNI parameter (e.g. 'jintArray' -> '[I' but 'jobject' -> ???). +// +// The equivalent Java Language code must not be annotated with @FastNative/@CriticalNative. +#define MAKE_JNI_NATIVE_METHOD_AUTOSIG(name, function) \ + _NATIVEHELPER_JNI_MAKE_METHOD_AUTOSIG(kNormalNative, name, function) + +// An expression that evalutes to JNINativeMethod { name, infersig(function), function) } +// by inferring the signature at compile-time. Only works when the C++ function type +// corresponds to one unambigous JNI parameter (e.g. 'jintArray' -> '[I' but 'jobject' -> ???). +// +// The equivalent Java Language code must be annotated with @FastNative. +#define MAKE_JNI_FAST_NATIVE_METHOD_AUTOSIG(name, function) \ + _NATIVEHELPER_JNI_MAKE_METHOD_AUTOSIG(kFastNative, name, function) + +// An expression that evalutes to JNINativeMethod { name, infersig(function), function) } +// by inferring the signature at compile-time. +// +// The equivalent Java Language code must be annotated with @CriticalNative. +#define MAKE_JNI_CRITICAL_NATIVE_METHOD_AUTOSIG(name, function) \ + _NATIVEHELPER_JNI_MAKE_METHOD_AUTOSIG(kCriticalNative, name, function) + +// Convenience macros when the functions follow the naming convention: +// .java file .cpp file +// JavaLanguageName <-> ${ClassName}_${JavaLanguageName} +// +// Stringification is done automatically, invoked as: +// NATIVE_[FAST_|CRITICAL]_METHOD(ClassName, JavaLanguageName, Signature) +// +// Intended to construct a JNINativeMethod. +// (Assumes the C name is the ClassName_JavaMethodName). +// +// The Java Language code must be annotated with one of (none,@FastNative,@CriticalNative) +// for the (none,FAST_,CRITICAL_) variants of these macros. + +#define NATIVE_METHOD(className, functionName, signature) \ + MAKE_JNI_NATIVE_METHOD(#functionName, signature, className ## _ ## functionName) + +#define OVERLOADED_NATIVE_METHOD(className, functionName, signature, identifier) \ + MAKE_JNI_NATIVE_METHOD(#functionName, signature, className ## _ ## identifier) + +#define NATIVE_METHOD_AUTOSIG(className, functionName) \ + MAKE_JNI_NATIVE_METHOD_AUTOSIG(#functionName, className ## _ ## functionName) + +#define FAST_NATIVE_METHOD(className, functionName, signature) \ + MAKE_JNI_FAST_NATIVE_METHOD(#functionName, signature, className ## _ ## functionName) + +#define OVERLOADED_FAST_NATIVE_METHOD(className, functionName, signature, identifier) \ + MAKE_JNI_FAST_NATIVE_METHOD(#functionName, signature, className ## _ ## identifier) + +#define FAST_NATIVE_METHOD_AUTOSIG(className, functionName) \ + MAKE_JNI_FAST_NATIVE_METHOD_AUTOSIG(#functionName, className ## _ ## functionName) + +#define CRITICAL_NATIVE_METHOD(className, functionName, signature) \ + MAKE_JNI_CRITICAL_NATIVE_METHOD(#functionName, signature, className ## _ ## functionName) + +#define OVERLOADED_CRITICAL_NATIVE_METHOD(className, functionName, signature, identifier) \ + MAKE_JNI_CRITICAL_NATIVE_METHOD(#functionName, signature, className ## _ ## identifier) + +#define CRITICAL_NATIVE_METHOD_AUTOSIG(className, functionName) \ + MAKE_JNI_CRITICAL_NATIVE_METHOD_AUTOSIG(#functionName, className ## _ ## functionName) + +//////////////////////////////////////////////////////// +// IMPLEMENTATION ONLY. +// DO NOT USE DIRECTLY. +//////////////////////////////////////////////////////// + +#if defined(__cplusplus) && __cplusplus >= 201402L +#include "nativehelper/detail/signature_checker.h" // for MAKE_CHECKED_JNI_NATIVE_METHOD +#endif + +// Expands to an expression whose type is JNINativeMethod. +// This is for older versions of C++ or C, so it has no compile-time checking. +#define _NATIVEHELPER_JNI_MAKE_METHOD_OLD(kind, name, sig, fn) \ + ( \ + (JNINativeMethod) { \ + (name), \ + (sig), \ + _NATIVEHELPER_JNI_MACRO_CAST(reinterpret_cast, void *)(fn) \ + } \ + ) + +// C++14 or better, use compile-time checking. +#if defined(__cplusplus) && __cplusplus >= 201402L +// Expands to a compound expression whose type is JNINativeMethod. +#define _NATIVEHELPER_JNI_MAKE_METHOD(kind, name, sig, fn) \ + MAKE_CHECKED_JNI_NATIVE_METHOD(kind, name, sig, fn) + +// Expands to a compound expression whose type is JNINativeMethod. +#define _NATIVEHELPER_JNI_MAKE_METHOD_AUTOSIG(kind, name, function) \ + MAKE_INFERRED_JNI_NATIVE_METHOD(kind, name, function) + +#else +// Older versions of C++ or C code get the regular macro that's unchecked. +// Expands to a compound expression whose type is JNINativeMethod. +#define _NATIVEHELPER_JNI_MAKE_METHOD(kind, name, sig, fn) \ + _NATIVEHELPER_JNI_MAKE_METHOD_OLD(kind, name, sig, fn) + +// Need C++14 or newer to use the AUTOSIG macros. +#define _NATIVEHELPER_JNI_MAKE_METHOD_AUTOSIG(kind, name, function) \ + static_assert(false, "Cannot infer JNI signatures prior to C++14 for function " #function); + +#endif // C++14 check + +// C-style cast for C, C++-style cast for C++ to avoid warnings/errors. +#if defined(__cplusplus) +#define _NATIVEHELPER_JNI_MACRO_CAST(which_cast, to) \ + which_cast +#else +#define _NATIVEHELPER_JNI_MACRO_CAST(which_cast, to) \ + (to) +#endif + +#endif // NATIVEHELPER_JNI_MACROS_H diff --git a/third_party/libnativehelper/tests/Android.bp b/third_party/libnativehelper/tests/Android.bp new file mode 100644 index 0000000000..8bbeed7d19 --- /dev/null +++ b/third_party/libnativehelper/tests/Android.bp @@ -0,0 +1,74 @@ +// Build the unit tests. + +cc_test { + name: "JniInvocation_test", + test_suites: ["device-tests"], + host_supported: true, + srcs: ["JniInvocation_test.cpp"], + cflags: ["-Wall", "-Werror"], + // Link to the non-stub version of the library to access some internal + // functions. + bootstrap: true, + shared_libs: ["libnativehelper"], +} + +cc_test { + name: "JniSafeRegisterNativeMethods_test", + host_supported: true, + srcs: ["JniSafeRegisterNativeMethods_test.cpp"], + + cflags: [ + // Base set of cflags used by all things ART. + "-fno-rtti", + "-ggdb3", + "-Wall", + "-Werror", + "-Wextra", + "-Wstrict-aliasing", + "-fstrict-aliasing", + "-Wunreachable-code", + "-Wredundant-decls", + "-Wshadow", + "-Wunused", + "-fvisibility=protected", + + // Warn about thread safety violations with clang. + "-Wthread-safety", + "-Wthread-safety-negative", + + // Warn if switch fallthroughs aren't annotated. + "-Wimplicit-fallthrough", + + // Enable float equality warnings. + "-Wfloat-equal", + + // Enable warning of converting ints to void*. + "-Wint-to-void-pointer-cast", + + // Enable warning of wrong unused annotations. + "-Wused-but-marked-unused", + + // Enable warning for deprecated language features. + "-Wdeprecated", + + // Enable warning for unreachable break & return. + "-Wunreachable-code-break", + "-Wunreachable-code-return", + + // Enable thread annotations for std::mutex, etc. + "-D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS", + ], + + tidy: true, + + shared_libs: ["libnativehelper"], +} + +cc_test { + name: "libnativehelper_api_test", + host_supported: true, + cflags: ["-Wall", "-Werror"], + srcs: ["libnativehelper_api_test.c"], // C Compilation test. + tidy: true, + shared_libs: ["libnativehelper"], +} diff --git a/third_party/libnativehelper/tests/AndroidTest.xml b/third_party/libnativehelper/tests/AndroidTest.xml new file mode 100644 index 0000000000..0f377f249f --- /dev/null +++ b/third_party/libnativehelper/tests/AndroidTest.xml @@ -0,0 +1,26 @@ + + + + + + \ No newline at end of file diff --git a/third_party/libnativehelper/tests/JniInvocation_test.cpp b/third_party/libnativehelper/tests/JniInvocation_test.cpp new file mode 100644 index 0000000000..bb62e3933a --- /dev/null +++ b/third_party/libnativehelper/tests/JniInvocation_test.cpp @@ -0,0 +1,95 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "NativeBridge_test" + +#include +#include + + +#include "string.h" + +#if defined(__ANDROID__) && defined(__BIONIC__) +#define HAVE_TEST_STUFF 1 +#else +#undef HAVE_TEST_STUFF +#endif + +#ifdef HAVE_TEST_STUFF + +// PROPERTY_VALUE_MAX. +#include "cutils/properties.h" + +#endif + +#ifdef HAVE_TEST_STUFF +static const char* kTestNonNull = "libartd.so"; +static const char* kTestNonNull2 = "libartd2.so"; +static const char* kExpected = "libart.so"; +#endif + +TEST(JNIInvocation, Debuggable) { +#ifdef HAVE_TEST_STUFF + auto is_debuggable = []() { return true; }; + auto get_library_system_property = [](char* buffer) -> int { + strcpy(buffer, kTestNonNull2); + return sizeof(kTestNonNull2); + }; + + char buffer[PROPERTY_VALUE_MAX]; + const char* result = + JniInvocation::GetLibrary(NULL, buffer, is_debuggable, get_library_system_property); + EXPECT_FALSE(result == NULL); + if (result != NULL) { + EXPECT_TRUE(strcmp(result, kTestNonNull2) == 0); + EXPECT_FALSE(strcmp(result, kExpected) == 0); + } + + result = + JniInvocation::GetLibrary(kTestNonNull, buffer, is_debuggable, get_library_system_property); + EXPECT_FALSE(result == NULL); + if (result != NULL) { + EXPECT_TRUE(strcmp(result, kTestNonNull) == 0); + EXPECT_FALSE(strcmp(result, kTestNonNull2) == 0); + } +#else + GTEST_LOG_(WARNING) << "Host testing unsupported. Please run target tests."; +#endif +} + +TEST(JNIInvocation, NonDebuggable) { +#ifdef HAVE_TEST_STUFF + auto is_debuggable = []() { return false; }; + + char buffer[PROPERTY_VALUE_MAX]; + const char* result = JniInvocation::GetLibrary(NULL, buffer, is_debuggable, nullptr); + EXPECT_FALSE(result == NULL); + if (result != NULL) { + EXPECT_TRUE(strcmp(result, kExpected) == 0); + EXPECT_FALSE(strcmp(result, kTestNonNull) == 0); + EXPECT_FALSE(strcmp(result, kTestNonNull2) == 0); + } + + result = JniInvocation::GetLibrary(kTestNonNull, buffer, is_debuggable, nullptr); + EXPECT_FALSE(result == NULL); + if (result != NULL) { + EXPECT_TRUE(strcmp(result, kExpected) == 0); + EXPECT_FALSE(strcmp(result, kTestNonNull) == 0); + } +#else + GTEST_LOG_(WARNING) << "Host testing unsupported. Please run target tests."; +#endif +} diff --git a/third_party/libnativehelper/tests/JniSafeRegisterNativeMethods_test.cpp b/third_party/libnativehelper/tests/JniSafeRegisterNativeMethods_test.cpp new file mode 100644 index 0000000000..716b5f789c --- /dev/null +++ b/third_party/libnativehelper/tests/JniSafeRegisterNativeMethods_test.cpp @@ -0,0 +1,1282 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wused-but-marked-unused" +#pragma clang diagnostic ignored "-Wdeprecated-dynamic-exception-spec" +#pragma clang diagnostic ignored "-Wdeprecated" +#include +#pragma clang diagnostic pop +#include + +#define PARSE_FAILURES_NONFATAL // return empty optionals wherever possible instead of asserting. +#include "nativehelper/jni_macros.h" + +// Provide static storage to these values so they can be used in a runtime context. +// This has to be defined local to the test translation unit to avoid ODR violations prior to C++17. +#define STORAGE_FN_FOR_JNI_TRAITS(jtype, ...) \ +constexpr char nativehelper::detail::jni_type_trait::type_descriptor[]; \ +constexpr char nativehelper::detail::jni_type_trait::type_name[]; + +DEFINE_JNI_TYPE_TRAIT(STORAGE_FN_FOR_JNI_TRAITS) + +template +std::string stringify_helper(const T& val) { + std::stringstream ss; + ss << val; + return ss.str(); +} + +#define EXPECT_STRINGIFY_EQ(x, y) EXPECT_EQ(stringify_helper(x), stringify_helper(y)) + +TEST(JniSafeRegisterNativeMethods, StringParsing) { + using namespace nativehelper::detail; // NOLINT + + // Super basic bring-up tests for core functionality. + + { + constexpr ConstexprStringView v_str = "V"; + EXPECT_EQ(1u, v_str.size()); + EXPECT_EQ(false, v_str.empty()); + + std::stringstream ss; + ss << v_str; + EXPECT_EQ("V", ss.str()); + } + + { + auto parse = ParseSingleTypeDescriptor("", /*allow_void*/true); + EXPECT_EQ("", parse->token); + EXPECT_EQ("", parse->remainder); + } + + { + auto parse = ParseSingleTypeDescriptor("V", /*allow_void*/true); + EXPECT_EQ("V", parse->token); + EXPECT_EQ("", parse->remainder); + } + + { + auto parse = ParseSingleTypeDescriptor("[I"); + EXPECT_EQ("[I", parse->token); + EXPECT_EQ("", parse->remainder); + } + + { + auto parse = ParseSingleTypeDescriptor("LObject;"); + EXPECT_EQ("LObject;", parse->token); + EXPECT_EQ("", parse->remainder); + } + + { + auto parse = ParseSingleTypeDescriptor("LBadObject);"); + EXPECT_FALSE(parse.has_value()); + } + + { + auto parse = ParseSingleTypeDescriptor("LBadObject(;"); + EXPECT_FALSE(parse.has_value()); + } + + { + auto parse = ParseSingleTypeDescriptor("LBadObject[;"); + EXPECT_FALSE(parse.has_value()); + } + + // Stringify is used for convenience to make writing out tests easier. + // Transforms as "(XYZ)W" -> "args={X,Y,Z}, ret=W" + +#define PARSE_SIGNATURE_AS_LIST(str) (ParseSignatureAsList(str)) + + { + constexpr auto jni_descriptor = PARSE_SIGNATURE_AS_LIST("()V"); + EXPECT_STRINGIFY_EQ("args={}, ret=V", jni_descriptor); + } + + { + constexpr auto + jni_descriptor = PARSE_SIGNATURE_AS_LIST("()Ljava/lang/Object;"); + EXPECT_STRINGIFY_EQ("args={}, ret=Ljava/lang/Object;", jni_descriptor); + } + + { + constexpr auto jni_descriptor = PARSE_SIGNATURE_AS_LIST("()[I"); + EXPECT_STRINGIFY_EQ("args={}, ret=[I", jni_descriptor); + } + +#define EXPECT_OK_SIGNATURE_PARSE(signature, args, ret) \ + do { \ + constexpr auto jni_descriptor = PARSE_SIGNATURE_AS_LIST(signature); \ + EXPECT_EQ(true, jni_descriptor.has_value()); \ + EXPECT_STRINGIFY_EQ("args={" args "}, ret=" ret, jni_descriptor); \ + } while (0) + + // Exhaustive tests for successful parsing. + + EXPECT_OK_SIGNATURE_PARSE("()V", /*args*/"", /*ret*/"V"); + EXPECT_OK_SIGNATURE_PARSE("()Z", /*args*/"", /*ret*/"Z"); + EXPECT_OK_SIGNATURE_PARSE("()B", /*args*/"", /*ret*/"B"); + EXPECT_OK_SIGNATURE_PARSE("()C", /*args*/"", /*ret*/"C"); + EXPECT_OK_SIGNATURE_PARSE("()S", /*args*/"", /*ret*/"S"); + EXPECT_OK_SIGNATURE_PARSE("()I", /*args*/"", /*ret*/"I"); + EXPECT_OK_SIGNATURE_PARSE("()F", /*args*/"", /*ret*/"F"); + EXPECT_OK_SIGNATURE_PARSE("()J", /*args*/"", /*ret*/"J"); + EXPECT_OK_SIGNATURE_PARSE("()D", /*args*/"", /*ret*/"D"); + EXPECT_OK_SIGNATURE_PARSE("()Ljava/lang/Object;", /*args*/"", /*ret*/"Ljava/lang/Object;"); + EXPECT_OK_SIGNATURE_PARSE("()[Ljava/lang/Object;", /*args*/"", /*ret*/"[Ljava/lang/Object;"); + EXPECT_OK_SIGNATURE_PARSE("()[I", /*args*/"", /*ret*/"[I"); + EXPECT_OK_SIGNATURE_PARSE("()[[I", /*args*/"", /*ret*/"[[I"); + EXPECT_OK_SIGNATURE_PARSE("()[[[I", /*args*/"", /*ret*/"[[[I"); + + + EXPECT_OK_SIGNATURE_PARSE("(Z)V", /*args*/"Z", /*ret*/"V"); + EXPECT_OK_SIGNATURE_PARSE("(B)V", /*args*/"B", /*ret*/"V"); + EXPECT_OK_SIGNATURE_PARSE("(C)D", /*args*/"C", /*ret*/"D"); + EXPECT_OK_SIGNATURE_PARSE("(S)V", /*args*/"S", /*ret*/"V"); + EXPECT_OK_SIGNATURE_PARSE("(I)V", /*args*/"I", /*ret*/"V"); + EXPECT_OK_SIGNATURE_PARSE("(F)V", /*args*/"F", /*ret*/"V"); + EXPECT_OK_SIGNATURE_PARSE("(J)F", /*args*/"J", /*ret*/"F"); + EXPECT_OK_SIGNATURE_PARSE("(D)V", /*args*/"D", /*ret*/"V"); + EXPECT_OK_SIGNATURE_PARSE("(Ljava/lang/Object;)V", "Ljava/lang/Object;", "V"); + EXPECT_OK_SIGNATURE_PARSE("([Ljava/lang/Object;)V", + "[Ljava/lang/Object;", + "V"); + EXPECT_OK_SIGNATURE_PARSE("([I)V", /*ret*/"[I", "V"); + EXPECT_OK_SIGNATURE_PARSE("([[I)V", /*ret*/"[[I", "V"); + EXPECT_OK_SIGNATURE_PARSE("([[[I)V", /*ret*/"[[[I", "V"); + + EXPECT_OK_SIGNATURE_PARSE("(ZIJ)V", /*args*/"Z,I,J", /*ret*/"V"); + EXPECT_OK_SIGNATURE_PARSE("(B[IJ)V", /*args*/"B,[I,J", /*ret*/"V"); + EXPECT_OK_SIGNATURE_PARSE("(Ljava/lang/Object;B)D", + /*args*/"Ljava/lang/Object;,B", + /*ret*/"D"); + EXPECT_OK_SIGNATURE_PARSE("(Ljava/lang/Object;Ljava/lang/String;IF)D", + /*args*/"Ljava/lang/Object;,Ljava/lang/String;,I,F", + /*ret*/"D"); + EXPECT_OK_SIGNATURE_PARSE("([[[Ljava/lang/Object;Ljava/lang/String;IF)D", + /*args*/"[[[Ljava/lang/Object;,Ljava/lang/String;,I,F", + /*ret*/"D"); + + /* + * Test Failures in Parsing + */ + +#define EXPECT_FAILED_SIGNATURE_PARSE(jni_descriptor) \ + EXPECT_STRINGIFY_EQ(ConstexprOptional>{},\ + ParseSignatureAsList(jni_descriptor)) + + // For the failures to work we must turn off 'PARSE_FAILURES_FATAL'. + // Otherwise they immediately cause a crash, which is actually the desired behavior + // when this is used by the end-user in REGISTER_NATIVE_METHOD. + { + EXPECT_FAILED_SIGNATURE_PARSE(""); + EXPECT_FAILED_SIGNATURE_PARSE("A"); + EXPECT_FAILED_SIGNATURE_PARSE(")"); + EXPECT_FAILED_SIGNATURE_PARSE("V"); + EXPECT_FAILED_SIGNATURE_PARSE("("); + EXPECT_FAILED_SIGNATURE_PARSE("(A"); + EXPECT_FAILED_SIGNATURE_PARSE("()"); + EXPECT_FAILED_SIGNATURE_PARSE("()A"); + EXPECT_FAILED_SIGNATURE_PARSE("()VV"); + EXPECT_FAILED_SIGNATURE_PARSE("()L"); + EXPECT_FAILED_SIGNATURE_PARSE("()L;"); + EXPECT_FAILED_SIGNATURE_PARSE("()BAD;"); + EXPECT_FAILED_SIGNATURE_PARSE("()Ljava/lang/Object"); + EXPECT_FAILED_SIGNATURE_PARSE("()Ljava/lang/Object;X"); + + EXPECT_FAILED_SIGNATURE_PARSE("(V)V"); + EXPECT_FAILED_SIGNATURE_PARSE("(ILcat)V"); + EXPECT_FAILED_SIGNATURE_PARSE("([dog)V"); + EXPECT_FAILED_SIGNATURE_PARSE("(IV)V"); + EXPECT_FAILED_SIGNATURE_PARSE("([V)V"); + EXPECT_FAILED_SIGNATURE_PARSE("([[V)V"); + EXPECT_FAILED_SIGNATURE_PARSE("()v"); + EXPECT_FAILED_SIGNATURE_PARSE("()i"); + EXPECT_FAILED_SIGNATURE_PARSE("()f"); + } + +} + +#define EXPECT_IS_VALID_JNI_ARGUMENT_TYPE(expected, expr) \ + { constexpr bool is_valid = (expr); \ + EXPECT_EQ(expected, is_valid) << #expr; \ + } + +// Basic smoke tests for parameter validity. +// See below for more exhaustive tests. +TEST(JniSafeRegisterNativeMethods, ParameterTypes) { + using namespace nativehelper::detail; // NOLINT + EXPECT_TRUE(IsJniParameterCountValid(kCriticalNative, 0u)); + EXPECT_TRUE(IsJniParameterCountValid(kCriticalNative, 1u)); + EXPECT_TRUE(IsJniParameterCountValid(kCriticalNative, 2u)); + EXPECT_TRUE(IsJniParameterCountValid(kCriticalNative, 3u)); + EXPECT_TRUE(IsJniParameterCountValid(kCriticalNative, 4u)); + + EXPECT_FALSE(IsJniParameterCountValid(kNormalNative, 0u)); + EXPECT_FALSE(IsJniParameterCountValid(kNormalNative, 1u)); + EXPECT_TRUE(IsJniParameterCountValid(kNormalNative, 2u)); + EXPECT_TRUE(IsJniParameterCountValid(kNormalNative, 3u)); + EXPECT_TRUE(IsJniParameterCountValid(kNormalNative, 4u)); + + EXPECT_TRUE((IsValidJniParameter(kNormalNative, kReturnPosition))); + EXPECT_IS_VALID_JNI_ARGUMENT_TYPE(true,(is_valid_jni_argument_type::value)); + EXPECT_IS_VALID_JNI_ARGUMENT_TYPE(true,(is_valid_jni_argument_type::value)); + EXPECT_IS_VALID_JNI_ARGUMENT_TYPE(true,(is_valid_jni_argument_type::value)); + EXPECT_IS_VALID_JNI_ARGUMENT_TYPE(false,(is_valid_jni_argument_type::value)); +} + +struct TestReturnAnything { + template + operator T() const { // NOLINT + return T{}; + } +}; + +namespace test_jni { + void empty_fn() {} +} +struct TestJni { + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-parameter" + + // Always bad. + static void bad_cptr(const char* ptr) {} + static void* bad_ret_ptr() { return nullptr; } + static JNIEnv* bad_ret_env() { return nullptr; } + static void bad_wrongplace_env(jobject, JNIEnv*) {} + static void bad_wrongplace_env2(jobject, jobject, JNIEnv*) {} + static void v_e(JNIEnv*) {} + static void v_ei(JNIEnv*, jint l) {} + static void v_el(JNIEnv*, jlong l) {} + static void v_et(JNIEnv*, jstring) {} + static jobject o_none() { return nullptr; } + static void bad_noref_jint_norm(JNIEnv*, jclass, jint&) {} + static void bad_noref_jint_crit(jint&) {} + + // Good depending on the context: + + // CriticalNative + static void empty_fn() {} + static jint int_fn() { return 0; } + + static void v_() {} + // Note: volatile,const don't participate in the function signature + // but we still have these here to clarify that it is indeed allowed. + static void v_vol_i(volatile jint) {} + static void v_const_i(const jint) {} + static void v_i(jint) {} + static void v_l(jlong) {} + static void v_lib(jlong, jint, jboolean) {} + static jshort s_lib(jlong, jint, jboolean) { return 0; } + + // Normal or FastNative. + static void v_eo(JNIEnv*, jobject) {} + static void v_eoo(JNIEnv*, jobject, jobject) {} + static void v_ek(JNIEnv*, jclass) {} + static void v_eolib(JNIEnv*, jobject, jlong, jint, jboolean) {} + static jshort s_eolAibA(JNIEnv*, jobject, jlongArray, jint, jbooleanArray) { return 0; } + +#define DEC_TEST_FN_IMPL(name, ret_t, ...) \ + static ret_t name (__VA_ARGS__) { return TestReturnAnything{}; } + +#define DEC_TEST_FN(name, correct, ret_t, ...) \ + DEC_TEST_FN_IMPL(normal_ ## name, ret_t, JNIEnv*, jobject, __VA_ARGS__) \ + DEC_TEST_FN_IMPL(normal2_ ## name, ret_t, JNIEnv*, jclass, __VA_ARGS__) \ + DEC_TEST_FN_IMPL(critical_ ## name, ret_t, __VA_ARGS__) + +#define DEC_TEST_FN0(name, correct, ret_t) \ + DEC_TEST_FN_IMPL(normal_ ## name, ret_t, JNIEnv*, jobject) \ + DEC_TEST_FN_IMPL(normal2_ ## name, ret_t, JNIEnv*, jclass) \ + DEC_TEST_FN_IMPL(critical_ ## name, ret_t) + +#define JNI_TEST_FN(FN, FN0) \ + FN0(a0,CRITICAL,void) \ + FN0(a ,CRITICAL,jboolean) \ + FN0(a1,CRITICAL,jbyte) \ + FN0(g, CRITICAL,jchar) \ + FN0(c, CRITICAL,jshort) \ + FN0(b, CRITICAL,jint) \ + FN0(f, CRITICAL,jlong) \ + FN0(d, CRITICAL,jfloat) \ + FN0(e, CRITICAL,jdouble) \ + FN0(f2,NORMAL ,jobject) \ + FN0(f3,NORMAL ,jclass) \ + FN0(fr,NORMAL ,jstring) \ + FN0(fa,NORMAL ,jarray) \ + FN0(fb,NORMAL ,jobjectArray) \ + FN0(fc,NORMAL ,jbooleanArray) \ + FN0(fd,NORMAL ,jcharArray) \ + FN0(fe,NORMAL ,jshortArray) \ + FN0(ff,NORMAL ,jintArray) \ + FN0(fg,NORMAL ,jlongArray) \ + FN0(fk,NORMAL ,jfloatArray) \ + FN0(fi,NORMAL ,jdoubleArray) \ + FN0(fl,NORMAL ,jthrowable) \ + FN(aa, CRITICAL,jboolean,jboolean) \ + FN(ax, CRITICAL,jbyte,jbyte) \ + FN(ag, CRITICAL,jchar,jchar) \ + FN(ac, CRITICAL,jshort,jshort) \ + FN(ac2,CRITICAL,jshort,jshort,jchar) \ + FN(ab, CRITICAL,jint,jint) \ + FN(af, CRITICAL,jlong,jlong) \ + FN(ad, CRITICAL,jfloat,jfloat) \ + FN(ae, CRITICAL,jdouble,jdouble) \ + FN(af2,NORMAL ,jobject,jobject) \ + FN(af3,NORMAL ,jclass,jclass) \ + FN(afr,NORMAL ,jstring,jstring) \ + FN(afa,NORMAL ,jarray,jarray) \ + FN(afb,NORMAL ,jobjectArray,jobjectArray) \ + FN(afc,NORMAL ,jbooleanArray,jbooleanArray) \ + FN(afd,NORMAL ,jcharArray,jcharArray) \ + FN(afe,NORMAL ,jshortArray,jshortArray) \ + FN(aff,NORMAL ,jintArray,jintArray) \ + FN(afg,NORMAL ,jlongArray,jlongArray) \ + FN(afk,NORMAL ,jfloatArray,jfloatArray) \ + FN(afi,NORMAL ,jdoubleArray,jdoubleArray) \ + FN(agi,NORMAL ,jdoubleArray,jdoubleArray,jobject) \ + FN(afl,NORMAL ,jthrowable,jthrowable) \ + \ + FN0(z0,ILLEGAL ,JNIEnv*) \ + FN(z1, ILLEGAL ,void, JNIEnv*) \ + FN(z2, ILLEGAL ,JNIEnv*, JNIEnv*) \ + FN(z3, ILLEGAL ,void, void*) \ + FN0(z4,ILLEGAL ,void*) \ + +#define JNI_TEST_FN_BOTH(x) JNI_TEST_FN(x,x) + +// we generate a return statement because some functions are non-void. +// disable the useless warning about returning from a non-void function. +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wreturn-type" + JNI_TEST_FN(DEC_TEST_FN, DEC_TEST_FN0); +#pragma clang diagnostic pop + + // TODO: probably should be an x-macro table + // and that way we can add critical/normal to it as well + // and also the type descriptor, and reuse this for multiple tests. + +#pragma clang diagnostic pop +}; +// Note: Using function-local structs does not work. +// Template parameters must have linkage, which function-local structs lack. + +TEST(JniSafeRegisterNativeMethods, FunctionTypes) { + using namespace nativehelper::detail; // NOLINT + // The exact error messages are not tested but they would be seen in the compiler + // stack trace when used from a constexpr context. + +#define IS_VALID_JNI_FUNCTION_TYPE(native_kind, func) \ + (IsValidJniFunctionType()) +#define IS_VALID_NORMAL_JNI_FUNCTION_TYPE(func) IS_VALID_JNI_FUNCTION_TYPE(kNormalNative, func) +#define IS_VALID_CRITICAL_JNI_FUNCTION_TYPE(func) IS_VALID_JNI_FUNCTION_TYPE(kCriticalNative, func) + +#define EXPECT_ILLEGAL_JNI_FUNCTION_TYPE(func) \ + do { \ + EXPECT_FALSE(IS_VALID_CRITICAL_JNI_FUNCTION_TYPE(func)); \ + EXPECT_FALSE(IS_VALID_NORMAL_JNI_FUNCTION_TYPE(func)); \ + } while (false) + +#define EXPECT_NORMAL_JNI_FUNCTION_TYPE(func) \ + do { \ + EXPECT_FALSE(IS_VALID_CRITICAL_JNI_FUNCTION_TYPE(func)); \ + EXPECT_TRUE(IS_VALID_NORMAL_JNI_FUNCTION_TYPE(func)); \ + } while (false) + +#define EXPECT_CRITICAL_JNI_FUNCTION_TYPE(func) \ + do { \ + EXPECT_TRUE(IS_VALID_CRITICAL_JNI_FUNCTION_TYPE(func)); \ + EXPECT_FALSE(IS_VALID_NORMAL_JNI_FUNCTION_TYPE(func)); \ + } while (false) + + { + EXPECT_ILLEGAL_JNI_FUNCTION_TYPE(TestJni::bad_cptr); + EXPECT_ILLEGAL_JNI_FUNCTION_TYPE(TestJni::bad_ret_ptr); + EXPECT_ILLEGAL_JNI_FUNCTION_TYPE(TestJni::bad_ret_env); + EXPECT_ILLEGAL_JNI_FUNCTION_TYPE(TestJni::bad_wrongplace_env); + EXPECT_ILLEGAL_JNI_FUNCTION_TYPE(TestJni::bad_wrongplace_env2); + + EXPECT_CRITICAL_JNI_FUNCTION_TYPE(TestJni::empty_fn); + EXPECT_CRITICAL_JNI_FUNCTION_TYPE(test_jni::empty_fn); + EXPECT_CRITICAL_JNI_FUNCTION_TYPE(TestJni::int_fn); + + EXPECT_CRITICAL_JNI_FUNCTION_TYPE(TestJni::v_); + EXPECT_CRITICAL_JNI_FUNCTION_TYPE(TestJni::v_vol_i); + EXPECT_CRITICAL_JNI_FUNCTION_TYPE(TestJni::v_const_i); + EXPECT_CRITICAL_JNI_FUNCTION_TYPE(TestJni::v_i); + EXPECT_CRITICAL_JNI_FUNCTION_TYPE(TestJni::v_l); + + EXPECT_ILLEGAL_JNI_FUNCTION_TYPE(TestJni::v_e); + EXPECT_ILLEGAL_JNI_FUNCTION_TYPE(TestJni::v_ei); + EXPECT_ILLEGAL_JNI_FUNCTION_TYPE(TestJni::v_el); + EXPECT_ILLEGAL_JNI_FUNCTION_TYPE(TestJni::v_et); + + EXPECT_NORMAL_JNI_FUNCTION_TYPE(TestJni::v_eo); + EXPECT_NORMAL_JNI_FUNCTION_TYPE(TestJni::v_ek); + + EXPECT_ILLEGAL_JNI_FUNCTION_TYPE(TestJni::o_none); + EXPECT_ILLEGAL_JNI_FUNCTION_TYPE(TestJni::bad_noref_jint_norm); + EXPECT_ILLEGAL_JNI_FUNCTION_TYPE(TestJni::bad_noref_jint_crit); + } + + enum class TestJniKind { + ILLEGAL, + NORMAL, + CRITICAL + }; + + // ILLEGAL signatures are always illegal. + bool kExpected_ILLEGAL_against_NORMAL = false; + bool kExpected_ILLEGAL_against_CRITICAL = false; + // NORMAL signatures are only legal for Normal JNI. + bool kExpected_NORMAL_against_NORMAL = true; + bool kExpected_NORMAL_against_CRITICAL = false; + // CRITICAL signatures are legal for both Normal+Critical JNI. + bool kExpected_CRITICAL_against_CRITICAL = true; + bool kExpected_CRITICAL_against_NORMAL = true; + // Note that we munge normal and critical type signatures separately + // and that a normal_ prefixed is always a bad critical signature, + // and a critical_ prefixed signature is always a bad normal signature. + // See JNI_TEST_FN_MAKE_TEST for the implementation of this logic. + +#undef EXPECTED_FOR +#define EXPECTED_FOR(jni_kind, context) \ + (kExpected_ ## jni_kind ## _against_ ## context) + + { +#define JNI_TEST_FN_MAKE_TEST(name, jni_kind, ...) \ + do { \ + EXPECT_EQ(EXPECTED_FOR(jni_kind, NORMAL), \ + IS_VALID_NORMAL_JNI_FUNCTION_TYPE(TestJni::normal_ ## name)); \ + EXPECT_FALSE(IS_VALID_CRITICAL_JNI_FUNCTION_TYPE(TestJni::normal_ ## name)); \ + EXPECT_EQ(EXPECTED_FOR(jni_kind, NORMAL), \ + IS_VALID_NORMAL_JNI_FUNCTION_TYPE(TestJni::normal2_ ## name)); \ + EXPECT_FALSE(IS_VALID_CRITICAL_JNI_FUNCTION_TYPE(TestJni::normal2_ ## name)); \ + EXPECT_EQ(EXPECTED_FOR(jni_kind, CRITICAL), \ + IS_VALID_CRITICAL_JNI_FUNCTION_TYPE(TestJni::critical_ ## name)); \ + EXPECT_FALSE(IS_VALID_NORMAL_JNI_FUNCTION_TYPE(TestJni::critical_ ## name)); \ + } while (false); + + JNI_TEST_FN_BOTH(JNI_TEST_FN_MAKE_TEST); + } +} + +#define EXPECT_CONSTEXPR_EQ(lhs, rhs) \ + { constexpr auto lhs_val = (lhs); \ + constexpr auto rhs_val = (rhs); \ + EXPECT_EQ(lhs_val, rhs_val) << "LHS: " << #lhs << ", RHS: " << #rhs; \ + } + +TEST(JniSafeRegisterNativeMethods, FunctionTypeDescriptorConversion) { + using namespace nativehelper::detail; // NOLINT + { + constexpr auto cvrt = MaybeMakeReifiedJniSignature(); + ASSERT_TRUE(cvrt.has_value()); + EXPECT_CONSTEXPR_EQ(2u, cvrt->max_size); + EXPECT_CONSTEXPR_EQ(1u, cvrt->args.size()); + EXPECT_STRINGIFY_EQ("args={jint}, ret=void", cvrt.value()); + } + + { + constexpr auto cvrt = MaybeMakeReifiedJniSignature(); + EXPECT_FALSE(cvrt.has_value()); + } + + { + constexpr auto cvrt = MaybeMakeReifiedJniSignature(); + ASSERT_TRUE(cvrt.has_value()); + EXPECT_EQ(2u, cvrt->args.size()); + EXPECT_STRINGIFY_EQ("args={jdoubleArray,jobject}, ret=jdoubleArray", cvrt.value()); + } + + { + constexpr auto cvrt = MaybeMakeReifiedJniSignature(); + ASSERT_TRUE(cvrt.has_value()); + EXPECT_EQ(2u, cvrt->args.size()); + EXPECT_STRINGIFY_EQ("args={jshort,jchar}, ret=jshort", cvrt.value()); + } + + // TODO: use JNI_TEST_FN to generate these tests automatically. +} + +struct test_function_traits { + static int int_returning_function() { return 0; } +}; + +template +struct apply_return_type { + constexpr int operator()() const { + return sizeof(T) == sizeof(int); + } +}; + +#define FN_ARGS_PAIR(fn) decltype(fn), (fn) + +TEST(JniSafeRegisterNativeMethods, FunctionTraits) { + using namespace nativehelper::detail; // NOLINT + using traits_for_int_ret = + FunctionTypeMetafunction; + int applied = traits_for_int_ret::map_return(); + EXPECT_EQ(1, applied); + + auto arr = traits_for_int_ret::map_args(); + EXPECT_EQ(0u, arr.size()); +} + +struct IntHolder { + int value; +}; + +constexpr int GetTestValue(const IntHolder& i) { + return i.value; +} + +constexpr int GetTestValue(int i) { + return i; +} + +template +constexpr size_t SumUpVector(const nativehelper::detail::ConstexprVector& vec) { + size_t s = 0; + for (const T& elem : vec) { + s += static_cast(GetTestValue(elem)); + } + return s; +} + +template +constexpr auto make_test_int_vector() { + using namespace nativehelper::detail; // NOLINT + ConstexprVector vec_int; + vec_int.push_back(T{1}); + vec_int.push_back(T{2}); + vec_int.push_back(T{3}); + vec_int.push_back(T{4}); + vec_int.push_back(T{5}); + return vec_int; +} + +TEST(JniSafeRegisterNativeMethods, ConstexprOptional) { + using namespace nativehelper::detail; // NOLINT + + ConstexprOptional int_opt; + EXPECT_FALSE(int_opt.has_value()); + + int_opt = ConstexprOptional(12345); + EXPECT_EQ(12345, int_opt.value()); + EXPECT_EQ(12345, *int_opt); +} + +TEST(JniSafeRegisterNativeMethods, ConstexprVector) { + using namespace nativehelper::detail; // NOLINT + { + constexpr ConstexprVector vec_int = make_test_int_vector(); + constexpr size_t the_sum = SumUpVector(vec_int); + EXPECT_EQ(15u, the_sum); + } + + { + constexpr ConstexprVector vec_int = make_test_int_vector(); + constexpr size_t the_sum = SumUpVector(vec_int); + EXPECT_EQ(15u, the_sum); + } +} + +// Need this intermediate function to make a JniDescriptorNode from a string literal. +// C++ doesn't do implicit conversion through two+ type constructors. +constexpr nativehelper::detail::JniDescriptorNode MakeNode( + nativehelper::detail::ConstexprStringView str) { + return nativehelper::detail::JniDescriptorNode{str}; +} + +#define EXPECT_EQUALISH_JNI_DESCRIPTORS_IMPL(user_desc, derived, cond) \ + do { \ + constexpr bool res = \ + CompareJniDescriptorNodeErased(MakeNode(user_desc), \ + ReifiedJniTypeTrait::Reify()); \ + (void)res; \ + EXPECT_ ## cond(CompareJniDescriptorNodeErased(MakeNode(user_desc), \ + ReifiedJniTypeTrait::Reify())); \ + } while (0); + +#define EXPECT_EQUALISH_JNI_DESCRIPTORS(user_desc, derived_desc) \ + EXPECT_EQUALISH_JNI_DESCRIPTORS_IMPL(user_desc, derived_desc, TRUE) + +#define EXPECT_NOT_EQUALISH_JNI_DESCRIPTORS(user_desc, derived_desc) \ + EXPECT_EQUALISH_JNI_DESCRIPTORS_IMPL(user_desc, derived_desc, FALSE) + +TEST(JniSafeRegisterNativeMethods, CompareJniDescriptorNodeErased) { + using namespace nativehelper::detail; // NOLINT + EXPECT_EQUALISH_JNI_DESCRIPTORS("V", void); + EXPECT_NOT_EQUALISH_JNI_DESCRIPTORS("V", jint); + EXPECT_EQUALISH_JNI_DESCRIPTORS("Z", jboolean); + EXPECT_NOT_EQUALISH_JNI_DESCRIPTORS("Z", void); + EXPECT_NOT_EQUALISH_JNI_DESCRIPTORS("Z", jobject); + EXPECT_EQUALISH_JNI_DESCRIPTORS("J", jlong); + EXPECT_NOT_EQUALISH_JNI_DESCRIPTORS("J", jobject); + EXPECT_NOT_EQUALISH_JNI_DESCRIPTORS("J", jthrowable); + EXPECT_NOT_EQUALISH_JNI_DESCRIPTORS("J", jint); + EXPECT_EQUALISH_JNI_DESCRIPTORS("Ljava/lang/String;", jstring); + EXPECT_EQUALISH_JNI_DESCRIPTORS("Ljava/lang/Class;", jclass); + EXPECT_EQUALISH_JNI_DESCRIPTORS("Ljava/lang/Object;", jobject); + EXPECT_EQUALISH_JNI_DESCRIPTORS("Ljava/lang/Integer;", jobject); + EXPECT_NOT_EQUALISH_JNI_DESCRIPTORS("[Z", jthrowable); + EXPECT_NOT_EQUALISH_JNI_DESCRIPTORS("[Z", jobjectArray); + EXPECT_NOT_EQUALISH_JNI_DESCRIPTORS("Ljava/lang/Integer;", jintArray); + EXPECT_NOT_EQUALISH_JNI_DESCRIPTORS("Ljava/lang/Integer;", jarray); + EXPECT_NOT_EQUALISH_JNI_DESCRIPTORS("Ljava/lang/Integer;", jarray); + + // Stricter checks. + EXPECT_NOT_EQUALISH_JNI_DESCRIPTORS("Ljava/lang/Object;", jobjectArray); + EXPECT_NOT_EQUALISH_JNI_DESCRIPTORS("Ljava/lang/String;", jobject); + EXPECT_NOT_EQUALISH_JNI_DESCRIPTORS("Ljava/lang/Class;", jobject); + EXPECT_NOT_EQUALISH_JNI_DESCRIPTORS("[Z", jobject); + EXPECT_NOT_EQUALISH_JNI_DESCRIPTORS("[Ljava/lang/Object;", jobject); + EXPECT_NOT_EQUALISH_JNI_DESCRIPTORS("Ljava/lang/Object;", jarray); + + // Permissive checks that are weaker than normal. + EXPECT_EQUALISH_JNI_DESCRIPTORS("Ljava/lang/Exception;", jobject); + EXPECT_EQUALISH_JNI_DESCRIPTORS("Ljava/lang/Error;", jobject); + EXPECT_EQUALISH_JNI_DESCRIPTORS("[Z", jarray); + EXPECT_EQUALISH_JNI_DESCRIPTORS("[I", jarray); + EXPECT_EQUALISH_JNI_DESCRIPTORS("[[Z", jarray); + EXPECT_EQUALISH_JNI_DESCRIPTORS("[[Ljava/lang/Object;", jarray); + + // jthrowable-related checks. + EXPECT_NOT_EQUALISH_JNI_DESCRIPTORS("Ljava/lang/Throwable;", jobject); + EXPECT_EQUALISH_JNI_DESCRIPTORS("Ljava/lang/Throwable;", jthrowable); + EXPECT_EQUALISH_JNI_DESCRIPTORS("Ljava/lang/Exception;", jthrowable); + EXPECT_EQUALISH_JNI_DESCRIPTORS("Ljava/lang/Error;", jthrowable); +} + +#define EXPECT_SIMILAR_TYPE_DESCRIPTOR_MATCH(type_desc, type) \ + do { \ + constexpr auto res = ReifiedJniTypeTrait::MostSimilarTypeDescriptor(type_desc); \ + EXPECT_TRUE((ReifiedJniTypeTrait::MostSimilarTypeDescriptor(type_desc)).has_value()); \ + if (res.has_value()) EXPECT_EQ(ReifiedJniTypeTrait::Reify(), res.value()); \ + } while (false) + +#define EXPECT_SIMILAR_TYPE_DESCRIPTOR_NO_MATCH(type_desc) \ + do { \ + auto res = ReifiedJniTypeTrait::MostSimilarTypeDescriptor(type_desc); \ + EXPECT_FALSE(res.has_value()); \ + } while (false) + +#define JNI_TYPE_TRAIT_MUST_BE_SAME_FN(type_name, type_desc, ...) \ + /* skip jarray because it aliases Ljava/lang/Object; */ \ + do { \ + constexpr auto str_type_name = ConstexprStringView(#type_name); \ + if (str_type_name != "jarray" && str_type_name != "JNIEnv*") { \ + EXPECT_SIMILAR_TYPE_DESCRIPTOR_MATCH(type_desc, type_name); \ + } \ + } while(false); + +TEST(JniSafeRegisterNativeMethods, MostSimilarTypeDescriptor) { + using namespace nativehelper::detail; // NOLINT + EXPECT_SIMILAR_TYPE_DESCRIPTOR_MATCH("Z", jboolean); + EXPECT_SIMILAR_TYPE_DESCRIPTOR_MATCH("[[I", jobjectArray); + EXPECT_SIMILAR_TYPE_DESCRIPTOR_MATCH("[[Z", jobjectArray); + EXPECT_SIMILAR_TYPE_DESCRIPTOR_MATCH("[Ljava/lang/String;", jobjectArray); + EXPECT_SIMILAR_TYPE_DESCRIPTOR_MATCH("[Ljava/lang/Integer;", jobjectArray); + EXPECT_SIMILAR_TYPE_DESCRIPTOR_NO_MATCH("illegal"); + EXPECT_SIMILAR_TYPE_DESCRIPTOR_NO_MATCH("?"); + EXPECT_SIMILAR_TYPE_DESCRIPTOR_NO_MATCH(""); + + DEFINE_JNI_TYPE_TRAIT(JNI_TYPE_TRAIT_MUST_BE_SAME_FN); +} + +#define ENFORCE_CONSTEXPR(expr) \ + static_assert(__builtin_constant_p(expr), "Expression must be constexpr") + +#define EXPECT_MATCH_JNI_DESCRIPTOR_AGAINST_FUNCTION_IMPL(cond, native_kind, func, desc) \ + do { \ + ENFORCE_CONSTEXPR((MatchJniDescriptorWithFunctionType< \ + native_kind, \ + decltype(func), \ + func, \ + sizeof(desc)>(desc))); \ + EXPECT_ ## cond((MatchJniDescriptorWithFunctionType< \ + native_kind, \ + decltype(func), \ + func, \ + sizeof(desc)>(desc))); \ + } while(0) + +#define EXPECT_MATCH_JNI_DESCRIPTOR_AGAINST_FUNCTION(native_kind, func, desc) \ + EXPECT_MATCH_JNI_DESCRIPTOR_AGAINST_FUNCTION_IMPL(TRUE, native_kind, func, desc) + +#define EXPECT_NO_MATCH_JNI_DESCRIPTOR_AGAINST_FUNCTION(native_kind, func, desc) \ + EXPECT_MATCH_JNI_DESCRIPTOR_AGAINST_FUNCTION_IMPL(FALSE, native_kind, func, desc) + +TEST(JniSafeRegisterNativeMethods, MatchJniDescriptorWithFunctionType) { + using namespace nativehelper::detail; // NOLINT + // Bad C++ signature. + EXPECT_NO_MATCH_JNI_DESCRIPTOR_AGAINST_FUNCTION(kCriticalNative, TestJni::bad_cptr, "()V"); + EXPECT_NO_MATCH_JNI_DESCRIPTOR_AGAINST_FUNCTION(kNormalNative, TestJni::bad_cptr, "()V"); + + // JNI type descriptor is not legal (by itself). + EXPECT_NO_MATCH_JNI_DESCRIPTOR_AGAINST_FUNCTION(kCriticalNative, TestJni::v_, "BAD"); + EXPECT_NO_MATCH_JNI_DESCRIPTOR_AGAINST_FUNCTION(kNormalNative, TestJni::v_eo, "BAD"); + + // Number of parameters in signature vs C++ function does not match. + EXPECT_NO_MATCH_JNI_DESCRIPTOR_AGAINST_FUNCTION(kCriticalNative, TestJni::v_i, "()V"); + EXPECT_NO_MATCH_JNI_DESCRIPTOR_AGAINST_FUNCTION(kNormalNative, TestJni::v_eoo, "()V"); + + // Return types don't match. + EXPECT_NO_MATCH_JNI_DESCRIPTOR_AGAINST_FUNCTION(kCriticalNative, TestJni::v_, "()Z"); + EXPECT_NO_MATCH_JNI_DESCRIPTOR_AGAINST_FUNCTION(kFastNative, TestJni::v_eo, "()Z"); + + // Argument types don't match. + EXPECT_NO_MATCH_JNI_DESCRIPTOR_AGAINST_FUNCTION(kCriticalNative, TestJni::v_i, "(Z)V"); + EXPECT_NO_MATCH_JNI_DESCRIPTOR_AGAINST_FUNCTION(kNormalNative, + TestJni::v_eoo, + "(Ljava/lang/Class;)V"); + + // OK. + EXPECT_MATCH_JNI_DESCRIPTOR_AGAINST_FUNCTION(kCriticalNative, TestJni::v_i, "(I)V"); + EXPECT_MATCH_JNI_DESCRIPTOR_AGAINST_FUNCTION(kNormalNative, + TestJni::v_eoo, + "(Ljava/lang/Object;)V"); + + EXPECT_MATCH_JNI_DESCRIPTOR_AGAINST_FUNCTION(kCriticalNative, TestJni::v_lib, "(JIZ)V"); + EXPECT_MATCH_JNI_DESCRIPTOR_AGAINST_FUNCTION(kNormalNative, TestJni::v_eolib, "(JIZ)V"); + EXPECT_MATCH_JNI_DESCRIPTOR_AGAINST_FUNCTION(kCriticalNative, TestJni::s_lib, "(JIZ)S"); + EXPECT_MATCH_JNI_DESCRIPTOR_AGAINST_FUNCTION(kNormalNative, TestJni::s_eolAibA, "([JI[Z)S"); +} + +TEST(JniSafeRegisterNativeMethods, Infer) { + using namespace nativehelper::detail; // NOLINT + { + using Infer_v_eolib_t = InferJniDescriptor; + EXPECT_CONSTEXPR_EQ(6u, Infer_v_eolib_t::kMaxStringSize); + std::string x = Infer_v_eolib_t::GetStringAtRuntime(); + EXPECT_STRINGIFY_EQ("(JIZ)V", x.c_str()); + } + + { + using Infer_v_eolib_t = InferJniDescriptor; + EXPECT_STRINGIFY_EQ("args={[J,I,[Z}, ret=S", Infer_v_eolib_t::FromFunctionType().value()); + EXPECT_CONSTEXPR_EQ(8u, Infer_v_eolib_t::kMaxStringSize); + std::string x = Infer_v_eolib_t::GetStringAtRuntime(); + EXPECT_STRINGIFY_EQ("([JI[Z)S", x.c_str()); + } +} + +// Test the macro definition only. See other tests above for signature-match testing. +TEST(JniSafeRegisterNativeMethods, MakeCheckedJniNativeMethod) { + // Ensure the temporary variables don't conflict with other local vars of same name. + JNINativeMethod tmp_native_method; // shadow test. + (void) tmp_native_method; + bool is_signature_valid = true; // shadow test. + (void) is_signature_valid; + + // Ensure it works with critical. + { + JNINativeMethod m = + MAKE_CHECKED_JNI_NATIVE_METHOD(kCriticalNative, + "v_lib", + "(JIZ)V", + TestJni::v_lib); + (void)m; + } + + // Ensure it works with normal. + { + JNINativeMethod m = + MAKE_CHECKED_JNI_NATIVE_METHOD(kNormalNative, + "v_eolib", + "(JIZ)V", + TestJni::v_eolib); + (void)m; + } + + // Make sure macros properly expand inside of an array. + { + JNINativeMethod m_array[] = { + MAKE_CHECKED_JNI_NATIVE_METHOD(kCriticalNative, + "v_lib", + "(JIZ)V", + TestJni::v_lib), + MAKE_CHECKED_JNI_NATIVE_METHOD(kNormalNative, + "v_eolib", + "(JIZ)V", + TestJni::v_eolib), + }; + (void)m_array; + } + { + JNINativeMethod m_array_direct[] { + MAKE_CHECKED_JNI_NATIVE_METHOD(kCriticalNative, + "v_lib", + "(JIZ)V", + TestJni::v_lib), + MAKE_CHECKED_JNI_NATIVE_METHOD(kNormalNative, + "v_eolib", + "(JIZ)V", + TestJni::v_eolib), + }; + (void)m_array_direct; + } + +} + +static auto sTestCheckedAtFileScope = + MAKE_CHECKED_JNI_NATIVE_METHOD(kCriticalNative, + "v_lib", + "(JIZ)V", + TestJni::v_lib); + +static auto sTestInferredAtFileScope = + MAKE_INFERRED_JNI_NATIVE_METHOD(kCriticalNative, + "v_lib", + TestJni::v_lib); + +TEST(JniSafeRegisterNativeMethods, TestInferredJniNativeMethod) { + (void) sTestCheckedAtFileScope; + (void) sTestInferredAtFileScope; + + // Ensure it works with critical. + { + JNINativeMethod m = + MAKE_INFERRED_JNI_NATIVE_METHOD(kCriticalNative, + "v_lib", + TestJni::v_lib); + (void)m; + } + + // Ensure it works with normal. + { + JNINativeMethod m = + MAKE_INFERRED_JNI_NATIVE_METHOD(kNormalNative, + "v_eolib", + TestJni::v_eolib); + (void)m; + } +} + +static void TestJniMacros_v_lib(jlong, jint, jboolean) {} +static void TestJniMacros_v_lib_od(jlong, jint, jboolean) {} +static void TestJniMacros_v_eolib(JNIEnv*, jobject, jlong, jint, jboolean) {} +static void TestJniMacros_v_eolib_od(JNIEnv*, jobject, jlong, jint, jboolean) {} + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-parameter" + +static jint android_os_Parcel_dataSize(jlong) { return 0; } +static jint android_os_Parcel_dataAvail(jlong) { return 0; } +static jint android_os_Parcel_dataPosition(jlong) { return 0; } +static jint android_os_Parcel_dataCapacity(jlong) { return 0; } +static jlong android_os_Parcel_setDataSize(JNIEnv*, jclass, jlong, jint) { return 0; } +static void android_os_Parcel_setDataPosition(jlong, jint) {} +static void android_os_Parcel_setDataCapacity(JNIEnv*, jclass, jlong, jint) {} +static jboolean android_os_Parcel_pushAllowFds(jlong, jboolean) { return true; } +static void android_os_Parcel_restoreAllowFds(jlong, jboolean) {} +static void android_os_Parcel_writeByteArray(JNIEnv*, jclass, jlong, jbyteArray, jint, jint) {} + +static void android_os_Parcel_writeBlob(JNIEnv*, jclass, jlong, jbyteArray, jint, jint) {} +static void android_os_Parcel_writeInt(JNIEnv*, jclass, jlong, jint) {} +static void android_os_Parcel_writeLong(JNIEnv* env, + jclass clazz, + jlong nativePtr, + jlong val) {} +static void android_os_Parcel_writeFloat(JNIEnv* env, + jclass clazz, + jlong nativePtr, + jfloat val) {} +static void android_os_Parcel_writeDouble(JNIEnv* env, + jclass clazz, + jlong nativePtr, + jdouble val) {} +static void android_os_Parcel_writeString(JNIEnv* env, + jclass clazz, + jlong nativePtr, + jstring val) {} +static void android_os_Parcel_writeStrongBinder(JNIEnv* env, + jclass clazz, + jlong nativePtr, + jobject object) {} +static jlong android_os_Parcel_writeFileDescriptor(JNIEnv* env, + jclass clazz, + jlong nativePtr, + jobject object) { return 0; } +static jbyteArray android_os_Parcel_createByteArray(JNIEnv* env, + jclass clazz, + jlong nativePtr) { return nullptr; } + +static jboolean android_os_Parcel_readByteArray(JNIEnv* env, + jclass clazz, + jlong nativePtr, + jbyteArray dest, + jint destLen) { return false; } +static jbyteArray android_os_Parcel_readBlob(JNIEnv* env, + jclass clazz, + jlong nativePtr) { return nullptr; } + +static jint android_os_Parcel_readInt(jlong nativePtr) { return 0; } + +static jlong android_os_Parcel_readLong(jlong nativePtr) { return 0; } + +static jfloat android_os_Parcel_readFloat(jlong nativePtr) { return 0.0f; } +static jdouble android_os_Parcel_readDouble(jlong nativePtr) { return 0.0; } + +static jstring android_os_Parcel_readString(JNIEnv* env, + jclass clazz, + jlong nativePtr) { return nullptr; } + +static jobject android_os_Parcel_readStrongBinder(JNIEnv* env, + jclass clazz, + jlong nativePtr) { return nullptr; } + + +static jobject android_os_Parcel_readFileDescriptor(JNIEnv* env, + jclass clazz, + jlong nativePtr) { return nullptr; } + +static jobject android_os_Parcel_openFileDescriptor(JNIEnv* env, + jclass clazz, + jstring name, + jint mode) { return 0; } + + +static jobject android_os_Parcel_dupFileDescriptor(JNIEnv* env, + jclass clazz, + jobject orig) { return 0; } + + +static void android_os_Parcel_closeFileDescriptor(JNIEnv* env, + jclass clazz, + jobject object) {} + + +static void android_os_Parcel_clearFileDescriptor(JNIEnv* env, + jclass clazz, + jobject object) {} + + +static jlong android_os_Parcel_create(JNIEnv* env, jclass clazz) { return 0; } + + +static jlong android_os_Parcel_freeBuffer(JNIEnv* env, + jclass clazz, + jlong nativePtr) { return 0; } + + +static void android_os_Parcel_destroy(JNIEnv* env, jclass clazz, jlong nativePtr) {} + + +static jbyteArray android_os_Parcel_marshall(JNIEnv* env, + jclass clazz, + jlong nativePtr) { return 0; } + + +static jlong android_os_Parcel_unmarshall(JNIEnv* env, + jclass clazz, + jlong nativePtr, + jbyteArray data, + jint offset, + jint length) { return 0; } + + +static jint android_os_Parcel_compareData(JNIEnv* env, + jclass clazz, + jlong thisNativePtr, + jlong otherNativePtr) { return 0; } + + +static jlong android_os_Parcel_appendFrom(JNIEnv* env, + jclass clazz, + jlong thisNativePtr, + jlong otherNativePtr, + jint offset, + jint length) { return 0; } + + +static jboolean android_os_Parcel_hasFileDescriptors(jlong nativePtr) { return 0; } + + +static void android_os_Parcel_writeInterfaceToken(JNIEnv* env, + jclass clazz, + jlong nativePtr, + jstring name) {} + + +static void android_os_Parcel_enforceInterface(JNIEnv* env, + jclass clazz, + jlong nativePtr, + jstring name) {} + + +static jlong android_os_Parcel_getGlobalAllocSize(JNIEnv* env, jclass clazz) { return 0; } + + +static jlong android_os_Parcel_getGlobalAllocCount(JNIEnv* env, jclass clazz) { return 0; } + + +static jlong android_os_Parcel_getBlobAshmemSize(jlong nativePtr) { return 0; } + +#pragma clang diagnostic pop + +TEST(JniSafeRegisterNativeMethods, ParcelExample) { + // Test a wide range of automatic signature inferencing. + // This is taken from real code in android_os_Parcel.cpp. + + const JNINativeMethod gParcelMethods[] = { + // @CriticalNative + MAKE_JNI_CRITICAL_NATIVE_METHOD_AUTOSIG( + "nativeDataSize", android_os_Parcel_dataSize), + // @CriticalNative + MAKE_JNI_CRITICAL_NATIVE_METHOD_AUTOSIG( + "nativeDataAvail", android_os_Parcel_dataAvail), + // @CriticalNative + MAKE_JNI_CRITICAL_NATIVE_METHOD_AUTOSIG( + "nativeDataPosition", android_os_Parcel_dataPosition), + // @CriticalNative + MAKE_JNI_CRITICAL_NATIVE_METHOD_AUTOSIG( + "nativeDataCapacity", android_os_Parcel_dataCapacity), + // @FastNative + MAKE_JNI_FAST_NATIVE_METHOD_AUTOSIG( + "nativeSetDataSize", android_os_Parcel_setDataSize), + // @CriticalNative + MAKE_JNI_CRITICAL_NATIVE_METHOD_AUTOSIG( + "nativeSetDataPosition", android_os_Parcel_setDataPosition), + // @FastNative + MAKE_JNI_FAST_NATIVE_METHOD_AUTOSIG( + "nativeSetDataCapacity", android_os_Parcel_setDataCapacity), + // @CriticalNative + MAKE_JNI_CRITICAL_NATIVE_METHOD_AUTOSIG( + "nativePushAllowFds", android_os_Parcel_pushAllowFds), + // @CriticalNative + MAKE_JNI_CRITICAL_NATIVE_METHOD_AUTOSIG( + "nativeRestoreAllowFds", android_os_Parcel_restoreAllowFds), + MAKE_JNI_NATIVE_METHOD_AUTOSIG( + "nativeWriteByteArray", android_os_Parcel_writeByteArray), + MAKE_JNI_NATIVE_METHOD_AUTOSIG( + "nativeWriteBlob", android_os_Parcel_writeBlob), + // @FastNative + MAKE_JNI_FAST_NATIVE_METHOD_AUTOSIG( + "nativeWriteInt", android_os_Parcel_writeInt), + // @FastNative + MAKE_JNI_FAST_NATIVE_METHOD_AUTOSIG( + "nativeWriteLong", android_os_Parcel_writeLong), + // @FastNative + MAKE_JNI_FAST_NATIVE_METHOD_AUTOSIG( + "nativeWriteFloat", android_os_Parcel_writeFloat), + // @FastNative + MAKE_JNI_FAST_NATIVE_METHOD_AUTOSIG( + "nativeWriteDouble", android_os_Parcel_writeDouble), + MAKE_JNI_NATIVE_METHOD_AUTOSIG( + "nativeWriteString", android_os_Parcel_writeString), + MAKE_JNI_NATIVE_METHOD( + "nativeWriteStrongBinder", "(JLandroid/os/IBinder;)V", android_os_Parcel_writeStrongBinder), + MAKE_JNI_NATIVE_METHOD( + "nativeWriteFileDescriptor", "(JLjava/io/FileDescriptor;)J", android_os_Parcel_writeFileDescriptor), + + MAKE_JNI_NATIVE_METHOD_AUTOSIG( + "nativeCreateByteArray", android_os_Parcel_createByteArray), + MAKE_JNI_NATIVE_METHOD_AUTOSIG( + "nativeReadByteArray", android_os_Parcel_readByteArray), + MAKE_JNI_NATIVE_METHOD_AUTOSIG( + "nativeReadBlob", android_os_Parcel_readBlob), + // @CriticalNative + MAKE_JNI_CRITICAL_NATIVE_METHOD_AUTOSIG( + "nativeReadInt", android_os_Parcel_readInt), + // @CriticalNative + MAKE_JNI_CRITICAL_NATIVE_METHOD_AUTOSIG( + "nativeReadLong", android_os_Parcel_readLong), + // @CriticalNative + MAKE_JNI_CRITICAL_NATIVE_METHOD_AUTOSIG( + "nativeReadFloat", android_os_Parcel_readFloat), + // @CriticalNative + MAKE_JNI_CRITICAL_NATIVE_METHOD_AUTOSIG( + "nativeReadDouble", android_os_Parcel_readDouble), + MAKE_JNI_NATIVE_METHOD_AUTOSIG( + "nativeReadString", android_os_Parcel_readString), + MAKE_JNI_NATIVE_METHOD( + "nativeReadStrongBinder", "(J)Landroid/os/IBinder;", android_os_Parcel_readStrongBinder), + MAKE_JNI_NATIVE_METHOD( + "nativeReadFileDescriptor", "(J)Ljava/io/FileDescriptor;", android_os_Parcel_readFileDescriptor), + MAKE_JNI_NATIVE_METHOD( + "openFileDescriptor", "(Ljava/lang/String;I)Ljava/io/FileDescriptor;", android_os_Parcel_openFileDescriptor), + MAKE_JNI_NATIVE_METHOD( + "dupFileDescriptor", "(Ljava/io/FileDescriptor;)Ljava/io/FileDescriptor;", android_os_Parcel_dupFileDescriptor), + MAKE_JNI_NATIVE_METHOD( + "closeFileDescriptor", "(Ljava/io/FileDescriptor;)V", android_os_Parcel_closeFileDescriptor), + MAKE_JNI_NATIVE_METHOD( + "clearFileDescriptor", "(Ljava/io/FileDescriptor;)V", android_os_Parcel_clearFileDescriptor), + + MAKE_JNI_NATIVE_METHOD_AUTOSIG( + "nativeCreate", android_os_Parcel_create), + MAKE_JNI_NATIVE_METHOD_AUTOSIG( + "nativeFreeBuffer", android_os_Parcel_freeBuffer), + MAKE_JNI_NATIVE_METHOD_AUTOSIG( + "nativeDestroy", android_os_Parcel_destroy), + + MAKE_JNI_NATIVE_METHOD_AUTOSIG( + "nativeMarshall", android_os_Parcel_marshall), + MAKE_JNI_NATIVE_METHOD_AUTOSIG( + "nativeUnmarshall", android_os_Parcel_unmarshall), + MAKE_JNI_NATIVE_METHOD_AUTOSIG( + "nativeCompareData", android_os_Parcel_compareData), + MAKE_JNI_NATIVE_METHOD_AUTOSIG( + "nativeAppendFrom", android_os_Parcel_appendFrom), + // @CriticalNative + MAKE_JNI_CRITICAL_NATIVE_METHOD_AUTOSIG( + "nativeHasFileDescriptors", android_os_Parcel_hasFileDescriptors), + MAKE_JNI_NATIVE_METHOD_AUTOSIG( + "nativeWriteInterfaceToken", android_os_Parcel_writeInterfaceToken), + MAKE_JNI_NATIVE_METHOD_AUTOSIG( + "nativeEnforceInterface", android_os_Parcel_enforceInterface), + + MAKE_JNI_NATIVE_METHOD_AUTOSIG( + "getGlobalAllocSize", android_os_Parcel_getGlobalAllocSize), + MAKE_JNI_NATIVE_METHOD_AUTOSIG( + "getGlobalAllocCount", android_os_Parcel_getGlobalAllocCount), + + // @CriticalNative + MAKE_JNI_CRITICAL_NATIVE_METHOD_AUTOSIG( + "nativeGetBlobAshmemSize", android_os_Parcel_getBlobAshmemSize), + }; + + const JNINativeMethod gParcelMethodsExpected[] = { + // @CriticalNative + {"nativeDataSize", "(J)I", (void*)android_os_Parcel_dataSize}, + // @CriticalNative + {"nativeDataAvail", "(J)I", (void*)android_os_Parcel_dataAvail}, + // @CriticalNative + {"nativeDataPosition", "(J)I", (void*)android_os_Parcel_dataPosition}, + // @CriticalNative + {"nativeDataCapacity", "(J)I", (void*)android_os_Parcel_dataCapacity}, + // @FastNative + {"nativeSetDataSize", "(JI)J", (void*)android_os_Parcel_setDataSize}, + // @CriticalNative + {"nativeSetDataPosition", "(JI)V", (void*)android_os_Parcel_setDataPosition}, + // @FastNative + {"nativeSetDataCapacity", "(JI)V", (void*)android_os_Parcel_setDataCapacity}, + + // @CriticalNative + {"nativePushAllowFds", "(JZ)Z", (void*)android_os_Parcel_pushAllowFds}, + // @CriticalNative + {"nativeRestoreAllowFds", "(JZ)V", (void*)android_os_Parcel_restoreAllowFds}, + + {"nativeWriteByteArray", "(J[BII)V", (void*)android_os_Parcel_writeByteArray}, + {"nativeWriteBlob", "(J[BII)V", (void*)android_os_Parcel_writeBlob}, + // @FastNative + {"nativeWriteInt", "(JI)V", (void*)android_os_Parcel_writeInt}, + // @FastNative + {"nativeWriteLong", "(JJ)V", (void*)android_os_Parcel_writeLong}, + // @FastNative + {"nativeWriteFloat", "(JF)V", (void*)android_os_Parcel_writeFloat}, + // @FastNative + {"nativeWriteDouble", "(JD)V", (void*)android_os_Parcel_writeDouble}, + {"nativeWriteString", "(JLjava/lang/String;)V", (void*)android_os_Parcel_writeString}, + {"nativeWriteStrongBinder", "(JLandroid/os/IBinder;)V", (void*)android_os_Parcel_writeStrongBinder}, + {"nativeWriteFileDescriptor", "(JLjava/io/FileDescriptor;)J", (void*)android_os_Parcel_writeFileDescriptor}, + + {"nativeCreateByteArray", "(J)[B", (void*)android_os_Parcel_createByteArray}, + {"nativeReadByteArray", "(J[BI)Z", (void*)android_os_Parcel_readByteArray}, + {"nativeReadBlob", "(J)[B", (void*)android_os_Parcel_readBlob}, + // @CriticalNative + {"nativeReadInt", "(J)I", (void*)android_os_Parcel_readInt}, + // @CriticalNative + {"nativeReadLong", "(J)J", (void*)android_os_Parcel_readLong}, + // @CriticalNative + {"nativeReadFloat", "(J)F", (void*)android_os_Parcel_readFloat}, + // @CriticalNative + {"nativeReadDouble", "(J)D", (void*)android_os_Parcel_readDouble}, + {"nativeReadString", "(J)Ljava/lang/String;", (void*)android_os_Parcel_readString}, + {"nativeReadStrongBinder", "(J)Landroid/os/IBinder;", (void*)android_os_Parcel_readStrongBinder}, + {"nativeReadFileDescriptor", "(J)Ljava/io/FileDescriptor;", (void*)android_os_Parcel_readFileDescriptor}, + + {"openFileDescriptor", "(Ljava/lang/String;I)Ljava/io/FileDescriptor;", (void*)android_os_Parcel_openFileDescriptor}, + {"dupFileDescriptor", "(Ljava/io/FileDescriptor;)Ljava/io/FileDescriptor;", (void*)android_os_Parcel_dupFileDescriptor}, + {"closeFileDescriptor", "(Ljava/io/FileDescriptor;)V", (void*)android_os_Parcel_closeFileDescriptor}, + {"clearFileDescriptor", "(Ljava/io/FileDescriptor;)V", (void*)android_os_Parcel_clearFileDescriptor}, + + {"nativeCreate", "()J", (void*)android_os_Parcel_create}, + {"nativeFreeBuffer", "(J)J", (void*)android_os_Parcel_freeBuffer}, + {"nativeDestroy", "(J)V", (void*)android_os_Parcel_destroy}, + + {"nativeMarshall", "(J)[B", (void*)android_os_Parcel_marshall}, + {"nativeUnmarshall", "(J[BII)J", (void*)android_os_Parcel_unmarshall}, + {"nativeCompareData", "(JJ)I", (void*)android_os_Parcel_compareData}, + {"nativeAppendFrom", "(JJII)J", (void*)android_os_Parcel_appendFrom}, + // @CriticalNative + {"nativeHasFileDescriptors", "(J)Z", (void*)android_os_Parcel_hasFileDescriptors}, + {"nativeWriteInterfaceToken", "(JLjava/lang/String;)V", (void*)android_os_Parcel_writeInterfaceToken}, + {"nativeEnforceInterface", "(JLjava/lang/String;)V", (void*)android_os_Parcel_enforceInterface}, + + {"getGlobalAllocSize", "()J", (void*)android_os_Parcel_getGlobalAllocSize}, + {"getGlobalAllocCount", "()J", (void*)android_os_Parcel_getGlobalAllocCount}, + + // @CriticalNative + {"nativeGetBlobAshmemSize", "(J)J", (void*)android_os_Parcel_getBlobAshmemSize}, + }; + + ASSERT_EQ(sizeof(gParcelMethodsExpected)/sizeof(JNINativeMethod), + sizeof(gParcelMethods)/sizeof(JNINativeMethod)); + + + for (size_t i = 0; i < sizeof(gParcelMethods) / sizeof(JNINativeMethod); ++i) { + const JNINativeMethod& actual = gParcelMethods[i]; + const JNINativeMethod& expected = gParcelMethodsExpected[i]; + + EXPECT_STREQ(expected.name, actual.name); + EXPECT_STREQ(expected.signature, actual.signature) << expected.name; + EXPECT_EQ(expected.fnPtr, actual.fnPtr) << expected.name; + } +} + +TEST(JniSafeRegisterNativeMethods, JniMacros) { + JNINativeMethod tmp_native_method; // shadow variable check. + (void)tmp_native_method; + using Infer_t = int; // shadow using check. + Infer_t unused; + (void)unused; + + MAKE_JNI_CRITICAL_NATIVE_METHOD("v_lib", "(JIZ)V", TestJniMacros_v_lib); + MAKE_JNI_CRITICAL_NATIVE_METHOD_AUTOSIG("v_lib", TestJniMacros_v_lib); + CRITICAL_NATIVE_METHOD(TestJniMacros, v_lib, "(JIZ)V"); + OVERLOADED_CRITICAL_NATIVE_METHOD(TestJniMacros, v_lib, "(JIZ)V", v_lib_od); + CRITICAL_NATIVE_METHOD_AUTOSIG(TestJniMacros, v_lib); + + MAKE_JNI_FAST_NATIVE_METHOD("v_eolib", "(JIZ)V", TestJniMacros_v_eolib); + MAKE_JNI_FAST_NATIVE_METHOD_AUTOSIG("v_eolib", TestJniMacros_v_eolib); + FAST_NATIVE_METHOD(TestJniMacros, v_eolib, "(JIZ)V"); + OVERLOADED_FAST_NATIVE_METHOD(TestJniMacros, v_eolib, "(JIZ)V", v_eolib_od); + FAST_NATIVE_METHOD_AUTOSIG(TestJniMacros, v_eolib); + + MAKE_JNI_NATIVE_METHOD("v_eolib", "(JIZ)V", TestJniMacros_v_eolib); + MAKE_JNI_NATIVE_METHOD_AUTOSIG("v_eolib", TestJniMacros_v_eolib); + NATIVE_METHOD(TestJniMacros, v_eolib, "(JIZ)V"); + OVERLOADED_NATIVE_METHOD(TestJniMacros, v_eolib, "(JIZ)V", v_eolib_od); + NATIVE_METHOD_AUTOSIG(TestJniMacros, v_eolib); + + _NATIVEHELPER_JNI_MAKE_METHOD_OLD(kNormalNative, "v_eolib", "(JIZ)V", TestJniMacros_v_eolib); + tmp_native_method = + _NATIVEHELPER_JNI_MAKE_METHOD_OLD(kNormalNative, "v_eolib", "(JIZ)V", TestJniMacros_v_eolib); +} diff --git a/third_party/libnativehelper/tests/jni_gtest/Android.bp b/third_party/libnativehelper/tests/jni_gtest/Android.bp new file mode 100644 index 0000000000..d6a0a6fe77 --- /dev/null +++ b/third_party/libnativehelper/tests/jni_gtest/Android.bp @@ -0,0 +1,12 @@ +// Do not use directly. Use the defaults below. +cc_library_headers { + name: "jni_gtest_headers", + host_supported: true, + export_include_dirs: ["base"], +} + +cc_defaults { + name: "jni_gtest_defaults", + header_libs: ["jni_gtest_headers"], + shared_libs: ["libnativehelper"], +} diff --git a/third_party/libnativehelper/tests/jni_gtest/base/nativehelper/jni_gtest.h b/third_party/libnativehelper/tests/jni_gtest/base/nativehelper/jni_gtest.h new file mode 100644 index 0000000000..975d56caf3 --- /dev/null +++ b/third_party/libnativehelper/tests/jni_gtest/base/nativehelper/jni_gtest.h @@ -0,0 +1,126 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef LIBNATIVEHELPER_TESTS_JNI_GTEST_H +#define LIBNATIVEHELPER_TESTS_JNI_GTEST_H + +#include + +#include + +#include +#include + +namespace android { + +// Example test setup following googletest docs: +// +// template +// class TemplatedTest : public JNITestBase { +// ... +// } +// +// typedef ::testing::Types Providers; +// TYPED_TEST_CASE(TemplatedTest, Providers); +// +// TYPED_TEST() { +// // Test code. Use "this->" to access TemplatedTest members. +// } + + + +// Provider is a concept that must follow this structure: +// +// class JNIProvider { +// public: +// JNIProvider(); +// +// void SetUp(); +// JNIEnv* CreateJNIEnv(); +// +// void DestroyJNIEnv(JNIEnv* env); +// void TearDown(); +// } + +template +class JNITestBase : public Test { +protected: + JNITestBase() : provider_(), env_(nullptr), java_vm_(nullptr) { + } + + void SetUp() override { + Test::SetUp(); + provider_.SetUp(); + env_ = provider_.CreateJNIEnv(); + ASSERT_TRUE(env_ != nullptr); + } + + void TearDown() override { + provider_->DestroyJNIEnv(env_); + provider_->TearDown(); + Test::TearDown(); + } + +protected: + Provider provider_; + + JNIEnv* env_; + JavaVM* java_vm_; +}; + +// A mockable implementation of the Provider concept. It is the responsibility +// of the test to stub out any needed functions (all function pointers will be +// null initially). +// +// TODO: Consider googlemock. +class MockJNIProvider { +public: + MockJNIProvider() { + } + + void SetUp() { + // Nothing to here. + } + + // TODO: Spawn threads to allow more envs? + JNIEnv* CreateJNIEnv() { + return CreateMockedJNIEnv().release(); + } + + void DestroyJNIEnv(JNIEnv* env) { + delete env->functions; + delete env; + } + + void TearDown() { + // Nothing to do here. + } + +protected: + std::unique_ptr CreateMockedJNIEnv() { + JNINativeInterface* inf = new JNINativeInterface(); + memset(inf, 0, sizeof(JNINativeInterface)); + + std::unique_ptr ret(new JNIEnv{0}); + ret->functions = inf; + + return ret; + } +}; + +} // namespace android + +#endif // LIBNATIVEHELPER_TESTS_JNI_GTEST_H diff --git a/third_party/libnativehelper/tests/libnativehelper_api_test.c b/third_party/libnativehelper/tests/libnativehelper_api_test.c new file mode 100644 index 0000000000..fde635606b --- /dev/null +++ b/third_party/libnativehelper/tests/libnativehelper_api_test.c @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// All header files with MODULE_API decorated function declarations. +#include "nativehelper/JNIHelp.h" +#include "nativehelper/JniInvocation.h" +#include "nativehelper/toStringArray.h" + +int main() { + // The test here is that the headers are properly guarded to support + // compilation with a C compiler. + return 0; +} diff --git a/third_party/libnativehelper/toStringArray.cpp b/third_party/libnativehelper/toStringArray.cpp new file mode 100644 index 0000000000..b1f0f42868 --- /dev/null +++ b/third_party/libnativehelper/toStringArray.cpp @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include "JniConstants.h" + +namespace { + +struct ArrayCounter { + const char* const* strings; + explicit ArrayCounter(const char* const* strings) : strings(strings) {} + size_t operator()() { + size_t count = 0; + while (strings[count] != nullptr) { + ++count; + } + return count; + } +}; + +struct ArrayGetter { + const char* const* strings; + explicit ArrayGetter(const char* const* strings) : strings(strings) {} + const char* operator()(size_t i) { + return strings[i]; + } +}; + +} // namespace + +MODULE_API jobjectArray newStringArray(JNIEnv* env, size_t count) { + return env->NewObjectArray(count, JniConstants::GetStringClass(env), nullptr); +} + +MODULE_API jobjectArray toStringArray(JNIEnv* env, const char* const* strings) { + ArrayCounter counter(strings); + ArrayGetter getter(strings); + return toStringArray(env, &counter, &getter); +} -- Gitee From 2585141efcdf9aa7edb8ec5cc94e7146ee64b3fa Mon Sep 17 00:00:00 2001 From: binaryfz Date: Thu, 17 Dec 2020 14:51:02 +0800 Subject: [PATCH 3/5] test --- Readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Readme.md b/Readme.md index 1a6833a933..da9947e65d 100644 --- a/Readme.md +++ b/Readme.md @@ -1,3 +1,4 @@ +test # OpenArkCompiler ## Overview -- Gitee From b0c3ba86e25d1d6c20e95b5148c7afff87acde06 Mon Sep 17 00:00:00 2001 From: binaryfz Date: Thu, 17 Dec 2020 20:55:21 +0800 Subject: [PATCH 4/5] revert test --- Readme.md | 1 - 1 file changed, 1 deletion(-) diff --git a/Readme.md b/Readme.md index da9947e65d..1a6833a933 100644 --- a/Readme.md +++ b/Readme.md @@ -1,4 +1,3 @@ -test # OpenArkCompiler ## Overview -- Gitee From 8fffc08c952c9936a093f6ee6d80852945ae5cb7 Mon Sep 17 00:00:00 2001 From: binaryfz Date: Tue, 22 Dec 2020 19:52:56 +0800 Subject: [PATCH 5/5] update java2d8&testlist --- build/java2d8 | 4 +-- test/testsuite/ouroboros/testlist | 57 +++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 2 deletions(-) diff --git a/build/java2d8 b/build/java2d8 index ff9833c2c5..6f88b4fd08 100755 --- a/build/java2d8 +++ b/build/java2d8 @@ -36,7 +36,7 @@ THIRD_PARTY=${MAPLE_ROOT}/android/out/target/common/obj/ #echo "Compiling $INPUT_FILE to $OUTPUT_FILE in temporary directory $DESTDIR" echo "Compiling $INPUT_FILE to $OUTPUT_FILE" -javac -g -d $DESTDIR -bootclasspath $THIRD_PARTY/JAVA_LIBRARIES/core-oj.com.android.art_intermediates/classes.jar:$THIRD_PARTY/JAVA_LIBRARIES/core-libart.com.android.art_intermediates/classes.jar:$THIRD_PARTY/JAVA_LIBRARIES/services_intermediates/classes.jar $@ +javac -g -d $DESTDIR -bootclasspath $THIRD_PARTY/JAVA_LIBRARIES/core-oj_intermediates/classes.jar:$THIRD_PARTY/JAVA_LIBRARIES/core-libart_intermediates/classes.jar:$THIRD_PARTY/JAVA_LIBRARIES/services_intermediates/classes.jar $@ mkdir -p $DESTDIR/classes cd $DESTDIR/classes @@ -46,7 +46,7 @@ jar -cvf $CLASSES_JAR *.class cd - cd $DESTDIR -$EXECDIR/d8 --min-api 39 --output $DESTDIR $CLASSES_JAR --classpath $THIRD_PARTY/JAVA_LIBRARIES/core-oj.com.android.art_intermediates/classes.jar --classpath $THIRD_PARTY/JAVA_LIBRARIES/core-libart.com.android.art_intermediates/classes.jar --classpath $THIRD_PARTY/JAVA_LIBRARIES/services_intermediates/classes.jar +$EXECDIR/d8 --min-api 39 --output $DESTDIR $CLASSES_JAR --classpath $THIRD_PARTY/JAVA_LIBRARIES/core-oj_intermediates/classes.jar --classpath $THIRD_PARTY/JAVA_LIBRARIES/core-libart_intermediates/classes.jar --classpath $THIRD_PARTY/JAVA_LIBRARIES/services_intermediates/classes.jar cd - if [ -f $CLASSES_DEX ]; then diff --git a/test/testsuite/ouroboros/testlist b/test/testsuite/ouroboros/testlist index dc1bd85edb..6a8ba1a931 100644 --- a/test/testsuite/ouroboros/testlist +++ b/test/testsuite/ouroboros/testlist @@ -21,6 +21,32 @@ memory_management/MemoryTest/RC0410-rc-Memory-stressTestCase29 thread_test/RT0180-rt-thread-MonitorTestCase8 rc_test/RC0249-rc-function-RC_Finalize_03 + rc_test/RC0380-rc-Annotation-RCWeakRefTest + rc_test/RC0381-rc-Annotation-RCWeakRefTest2 + rc_test/RC0383-rc-Annotation-RCWeakRefTest4 + rc_test/RC0384-rc-Annotation-RCWeakRefThreadTest + rc_test/RC0385-rc-Annotation-RCUnownedRefTest + rc_test/RC0386-rc-Annotation-RCUnownedRefTest2 + rc_test/RC0387-rc-Annotation-RCUnownedRefUnCycle + rc_test/RC0389-rc-Annotation-RCUnownedRefUncycleThread + rc_test/RC0392-rc-Annotation-RCAnnotationThread02 + rc_test/RC0394-rc-Annotation-RCAnnotationThread04 + rc_test/RC0395-rc-Annotation-RCAnnotationThread05 + rc_test/RC0396-rc-Annotation-RCAnnotationOneCycle + rc_test/RC0397-rc-Annotation-RCAnnotationOneCycleThread + rc_test/RC0398-rc-Annotation-RCAnnotationTwoCycle + rc_test/RC0399-rc-Annotation-RCAnnotationTwoCycle2 + rc_test/RC0400-rc-Annotation-RCAnnotationTwoCycleThread + rc_test/RC0401-rc-Annotation-RCAnnotationTwoCycleThread2 + rc_test/RC0402-rc-Annotation-RCAnnotationMultiCycle + rc_test/RC0403-rc-Annotation-RCAnnotationMultiCycle2 + rc_test/RC0404-rc-Annotation-RCAnnotationMultiCycleThread + rc_test/RC0405-rc-Annotation-RCAnnotationMultiCycleThread2 + rc_test/RC0417-rc-Annotation-RCUnownedRefTest3 + rc_test/RC0418-rc-Annotation-RCUnownedRefThreadTest3 + rc_test/RC0419-rc-Annotation-RCUnownedLocalTest + rc_test/RC0420-rc-Annotation-RCUnownedLocalThreadTest + rc_test/RC0421-rc-Annotation-RCUnownedOuterTest rc_test/RC0433-rc-SoftRef-SoftRefTest03 rc_test/RC0440-rc-RCHeader-RCHeaderTest04 rc_test/RC0443-rc-PlacementRC-PlacementRCTest01 @@ -42,6 +68,8 @@ rc_test/RC0495-rc-GC-TaskQueue-FrequentSystemGC_01 rc_test/RC0496-rc-GC-TaskQueue-StartupInvoke_01 rc_test/RC0515-GC-FrequentGCTest01 + rc_test/common_test/RC0427-rc-Annotation-RCMixTest + rc_test/common_test/RC0428-rc-Annotation-RCMixThreadTest rc_test/common_test/RC0434-rc-SoftRef-SoftRefTest04 rc_test/common_test/RC0436-rc-SoftRef-SoftRefTest06 rc_test/common_test/RC0437-rc-RCHeader-RCHeaderTest @@ -52,6 +80,9 @@ rc_test/common_test/RC0445-rc-PlacementRC-PlacementRCTest03 rc_test/native_test/RC0411-rc-Annotation-RCPermanentTest rc_test/native_test/RC0412-rc-Annotation-RCPermanentTest2 + rc_test/native_test/RC0413-rc-Annotation-RCPermanentTest3 + rc_test/native_test/RC0414-rc-Annotation-RCPermanentTest4 + rc_test/native_test/RC0415-rc-Annotation-RCPermanentTest5 rc_test/native_test/RC0416-rc-Annotation-RCPermanentThread rc_test/native_test/RC0423-rc-Annotation-RCPermanentTest6 rc_test/native_test/RC0424-rc-Annotation-RCPermanentThread2 @@ -60,3 +91,29 @@ rc_test/native_test/RC0429-rc-Annotation-RCPermanentTest8 rc_test/native_test/RC0430-rc-Annotation-RCPermanentThread4 rc_test/native_test/RC0448-rc-Annotation-RCPermanentLimit2 + memory_management/Annotation/RC0383-rc-Annotation-RCWeakRefTest4 + memory_management/Annotation/RC0384-rc-Annotation-RCWeakRefThreadTest + memory_management/Annotation/RC0386-rc-Annotation-RCUnownedRefTest2 + memory_management/Annotation/RC0387-rc-Annotation-RCUnownedRefUnCycle + memory_management/Annotation/RC0389-rc-Annotation-RCUnownedRefUncycleThread + memory_management/Annotation/RC0391-rc-Annotation-RCAnnotationThread01 + memory_management/Annotation/RC0392-rc-Annotation-RCAnnotationThread02 + memory_management/Annotation/RC0393-rc-Annotation-RCAnnotationThread03 + memory_management/Annotation/RC0394-rc-Annotation-RCAnnotationThread04 + memory_management/Annotation/RC0395-rc-Annotation-RCAnnotationThread05 + memory_management/Annotation/RC0396-rc-Annotation-RCAnnotationOneCycle + memory_management/Annotation/RC0397-rc-Annotation-RCAnnotationOneCycleThread + memory_management/Annotation/RC0398-rc-Annotation-RCAnnotationTwoCycle + memory_management/Annotation/RC0399-rc-Annotation-RCAnnotationTwoCycle2 + memory_management/Annotation/RC0400-rc-Annotation-RCAnnotationTwoCycleThread + memory_management/Annotation/RC0401-rc-Annotation-RCAnnotationTwoCycleThread2 + memory_management/Annotation/RC0402-rc-Annotation-RCAnnotationMultiCycle + memory_management/Annotation/RC0403-rc-Annotation-RCAnnotationMultiCycle2 + memory_management/Annotation/RC0404-rc-Annotation-RCAnnotationMultiCycleThread + memory_management/Annotation/RC0405-rc-Annotation-RCAnnotationMultiCycleThread2 + memory_management/Annotation/RC0419-rc-Annotation-RCUnownedLocalTest + memory_management/Annotation/RC0420-rc-Annotation-RCUnownedLocalThreadTest + memory_management/Annotation/RC0421-rc-Annotation-RCUnownedOuterTest + memory_management/Annotation/RC0428-rc-Annotation-RCMixThreadTest + memory_management/Annotation/issue-RC0388-rc-Annotation-RCUnownedRefUnCycle02 + memory_management/Annotation/issue-RC0390-rc-Annotation-RCUnownedRefUncycleThread2 -- Gitee