From d1e689fffbd001241326c629e4720db9f2141034 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Bl=C3=A4sing?= Date: Sat, 13 Jul 2024 20:23:42 +0200 Subject: [PATCH 1/4] Improve performance for Cleaner implementation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Cleaner used multiple monitors to protect its datastructures. And as datastructre a (manually) linked list was used. The datastructure was updated to a ConcurrentHashMap and the multiple monitor usages are replaced with a ReentrandReadWriteLocks. Performance numbers: Commandline: java -jar target/benchmarks.jar -t 1000 -i 1 -wi 0 ========== 5.14.0 ========== Result "eu.doppelhelix.jna.jmh.MyBenchmark.testMethod": 1211666,184 ±(99.9%) 134595,856 ops/s [Average] (min, avg, max) = (1178371,132, 1211666,184, 1271195,212), stdev = 34954,116 CI (99.9%): [1077070,328, 1346262,040] (assumes normal distribution) Estimated CPU Load: 650% ========== 5.14.0 ========== Result "eu.doppelhelix.jna.jmh.MyBenchmark.testMethod": 3260953,271 ±(99.9%) 655799,010 ops/s [Average] (min, avg, max) = (3092006,068, 3260953,271, 3527896,224), stdev = 170308,920 CI (99.9%): [2605154,261, 3916752,281] (assumes normal distribution) Estimated CPU Load: 1500% ============================ Code: package eu.doppelhelix.jna.jmh; import com.sun.jna.internal.Cleaner; import java.util.concurrent.atomic.AtomicLong; import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.infra.Blackhole; public class MyBenchmark { @Benchmark public void testMethod(Blackhole blackhole) { DummyObject dummyObj = new DummyObject(); DummyObjectCleaner dummyCleaner = new DummyObjectCleaner(blackhole, dummyObj.getDummyValue()); Cleaner.getCleaner().register(dummyObj, dummyCleaner); } public static class DummyObject { private static final AtomicLong ai = new AtomicLong(); private final String dummyValue; public DummyObject() { this.dummyValue = "d " + ai.incrementAndGet(); } public String getDummyValue() { return dummyValue; } } public static class DummyObjectCleaner implements Runnable{ private final Blackhole bh; private final String data; public DummyObjectCleaner(Blackhole bh, String data) { this.bh = bh; this.data = data; } public void run() { this.bh.consume(this.data); } } } --- src/com/sun/jna/internal/Cleaner.java | 149 ++++++++++++++------------ 1 file changed, 80 insertions(+), 69 deletions(-) diff --git a/src/com/sun/jna/internal/Cleaner.java b/src/com/sun/jna/internal/Cleaner.java index a2095937f..333b9e698 100644 --- a/src/com/sun/jna/internal/Cleaner.java +++ b/src/com/sun/jna/internal/Cleaner.java @@ -27,6 +27,12 @@ import java.lang.ref.PhantomReference; import java.lang.ref.Reference; import java.lang.ref.ReferenceQueue; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.locks.ReadWriteLock; +import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.logging.Level; import java.util.logging.Logger; @@ -44,65 +50,79 @@ public static Cleaner getCleaner() { return INSTANCE; } + // Guard for trackedObjects and cleanerThread. The readlock is utilized when + // the trackedObjects are manipulated, the writelock protectes starting and + // stopping the CleanerThread + private final ReadWriteLock cleanerThreadLock = new ReentrantReadWriteLock(); private final ReferenceQueue referenceQueue; - private Thread cleanerThread; - private CleanerRef firstCleanable; + // Count of objects tracked by the cleaner. When >0 it means objects are + // being tracked by the cleaner and the cleanerThread must be running + private final AtomicLong trackedObjects = new AtomicLong(); + // Map only serves as holder, so that the CleanerRefs stay hard referenced + // and quickly accessible for removal + @SuppressWarnings("MismatchedQueryAndUpdateOfCollection") + private final Map map = new ConcurrentHashMap<>(); + // Thread to handle the actual cleaning + private volatile Thread cleanerThread; private Cleaner() { referenceQueue = new ReferenceQueue<>(); } - public synchronized Cleanable register(Object obj, Runnable cleanupTask) { + @SuppressWarnings("EmptySynchronizedStatement") + public Cleanable register(Object obj, Runnable cleanupTask) { // The important side effect is the PhantomReference, that is yielded // after the referent is GCed - return add(new CleanerRef(this, obj, referenceQueue, cleanupTask)); + try { + return add(new CleanerRef(this, obj, referenceQueue, cleanupTask)); + } finally { + synchronized (obj) { + // Used as a reachability fence for obj + // Ensure, that add completes before obj can be collected and + // the cleaner is run + } + } } - private synchronized CleanerRef add(CleanerRef ref) { - synchronized (referenceQueue) { - if (firstCleanable == null) { - firstCleanable = ref; - } else { - ref.setNext(firstCleanable); - firstCleanable.setPrevious(ref); - firstCleanable = ref; - } - if (cleanerThread == null) { - Logger.getLogger(Cleaner.class.getName()).log(Level.FINE, "Starting CleanerThread"); - cleanerThread = new CleanerThread(); - cleanerThread.start(); + private CleanerRef add(CleanerRef ref) { + map.put(ref, ref); + cleanerThreadLock.readLock().lock(); + try { + long count = trackedObjects.incrementAndGet(); + if (cleanerThread == null && count > 0) { + cleanerThreadLock.readLock().unlock(); + cleanerThreadLock.writeLock().lock(); + try { + if (cleanerThread == null && trackedObjects.get() > 0) { + Logger.getLogger(Cleaner.class.getName()).log(Level.FINE, "Starting CleanerThread"); + cleanerThread = new CleanerThread(); + cleanerThread.start(); + } + } finally { + cleanerThreadLock.readLock().lock(); + cleanerThreadLock.writeLock().unlock(); + } } - return ref; + } finally { + cleanerThreadLock.readLock().unlock(); } + return ref; } - private synchronized boolean remove(CleanerRef ref) { - synchronized (referenceQueue) { - boolean inChain = false; - if (ref == firstCleanable) { - firstCleanable = ref.getNext(); - inChain = true; - } - if (ref.getPrevious() != null) { - ref.getPrevious().setNext(ref.getNext()); - } - if (ref.getNext() != null) { - ref.getNext().setPrevious(ref.getPrevious()); - } - if (ref.getPrevious() != null || ref.getNext() != null) { - inChain = true; - } - ref.setNext(null); - ref.setPrevious(null); - return inChain; + private void remove(CleanerRef ref) { + map.remove(ref); + cleanerThreadLock.readLock().lock(); + try { + trackedObjects.decrementAndGet(); + } finally { + cleanerThreadLock.readLock().unlock(); } } private static class CleanerRef extends PhantomReference implements Cleanable { private final Cleaner cleaner; private final Runnable cleanupTask; - private CleanerRef previous; - private CleanerRef next; + private final AtomicBoolean cleaned = new AtomicBoolean(false); public CleanerRef(Cleaner cleaner, Object referent, ReferenceQueue q, Runnable cleanupTask) { super(referent, q); @@ -112,26 +132,11 @@ public CleanerRef(Cleaner cleaner, Object referent, ReferenceQueue Date: Wed, 17 Jul 2024 21:24:35 +0200 Subject: [PATCH 2/4] Move break to correct location --- src/com/sun/jna/internal/Cleaner.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/sun/jna/internal/Cleaner.java b/src/com/sun/jna/internal/Cleaner.java index 333b9e698..1fe5ac657 100644 --- a/src/com/sun/jna/internal/Cleaner.java +++ b/src/com/sun/jna/internal/Cleaner.java @@ -169,8 +169,8 @@ public void run() { if (trackedObjects.get() == 0) { Logger.getLogger(Cleaner.class.getName()).log(Level.FINE, "Shutting down CleanerThread"); cleanerThread = null; + break; } - break; } finally { cleanerThreadLock.readLock().lock(); cleanerThreadLock.writeLock().unlock(); From 8944da6aa51a8431bee3362688dfe871f76c9e57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Bl=C3=A4sing?= Date: Fri, 6 Sep 2024 14:56:52 +0200 Subject: [PATCH 3/4] Unfinished --- build.xml | 1 + lib/native/linux-x86-64.jar | Bin 52099 -> 54543 bytes src/com/sun/jna/internal/Cleaner.java | 11 ++++ .../jna/different_package/CleanerTest.java | 47 ++++++++++++++++++ 4 files changed, 59 insertions(+) create mode 100644 test/com/sun/jna/different_package/CleanerTest.java diff --git a/build.xml b/build.xml index 489379c65..df25d5951 100644 --- a/build.xml +++ b/build.xml @@ -1240,6 +1240,7 @@ cd .. + diff --git a/lib/native/linux-x86-64.jar b/lib/native/linux-x86-64.jar index d659f63ac1f9f5f29225e2b714ba6e33c0967da0..653423182fd3005e88c1f84b8520271feed27070 100644 GIT binary patch literal 54543 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∾ABE zS0auNyI+j(i`VEr9q)f*_lptd7`yL;@I&nWD#G`%`%t|9nB9*?8Q#C<`uy#7?22sB z&=&qgCt>X{M!p_7+G^V{2Wn%KWLuTbzBnT-Jey`b_ZL^NpT;Z z<3up7DKaRnDPE-A?mIu|j4w6s-5I~_)E3_#N&7X89VMI4^OXB_HWA*uGUtk^Rq5oB zqHSX*1%0Bs-|@U}If8oTF6^}fY?seTs z%#arDO*4D>ejqAGdVz1tEeEghX9w^acMINS_ipAg21A)O8vx@Q#0V8I(l|y4Vic&C zM;q63wfCj*Bbf9aw=d}dH9UnIUlw*ql4DERdxF^xKUN5RPGB5>z~YNxkTu!jz*eyp zQu1#3khH7XSK4*b*J_(;u9IxHnq#^iu9=!z5~JkJLE|=$QQF{%gQa9xB`?hdNcE%4 zlca*005yFSo{Qx=&lvj%H#NRI|@fD7e zkVYD`j1KPQmo=ghri-)w=p$Fg^R4^?m9hANN?Ivjc(#frtIZJqVAK zAOdax9-_i|72^9<<>PYERLE85F7P z*&;#!il1i2Prn?52&SA~@sB1br%w*!kXjxsv5)ro@~>lK!#b|Le;Qi%7E}~RLa3dV zv{fMFe=f0)J(KhpemN2Fozew6us|QnGmq1Gx}pGl>G4*w%}#vbd1Ub-^hi=NDM_#J zBN5dfM}iu*sTy94JX9*!~cWAm+DT9wd=_QuMob7UxQCV2Cx_XZ zpJLmjqXQrydq^6lwEkt7+`5`Jhl?O*h~oD~j52oIVA*e7f!d~^&S&;xF$D{@&I(-LGMkdb|Id?jfi(+5%U7WaB;nz2zkBa@?`6KP z=k((|>eQ)Ir%s(Zb)3PSS`1Ova>TQ9%%bCEL@P)3RBox+js7tAi&B$Y`i$Xj8S_&t zwd;qjBNDNnitL~XboO{dWYq69V(S{U1{r^}Mr#! zSov9`6}LPl$0fg~9Rr=n8odaZVj>>z-f$gB$G5PhRH@D>ZBj=)g2xkkQ&~GgdftVn z4}zraPF7!J3F3_j`aHtUGd@nXPsdUIy-JW5@G1M$jPb}87fe-e8?T*zJ)Yp8E_^+^ zr;a;ld>8AP^~?y1IFhud>pH%ig$wGZ@eJiC?fjEe80D+=Ubp193D2c+^Ty*mVPMye z^St&$?F?~Tbe-$gSCt?57u8I?;UR5#9vAVXTGynQ~Nq79~0OBixc|k2{UCE4GYr4k2;AK`yuygGvoF+N`qBzW)@dn-^ z(^p>&aF{m9PaI~-c;Ya09*53avhe&#+3YsFu&e}A?*+}-3hwp zsvG;!@nH4Z9-3rJaD~wYxH=E-4-6t7>n689$W={8vmeKqi1t(B(zg=TxBrvTM(=45 ziAk^er`O+OpN>3;PQdXj*&(7~eH_mSMEAmVqO>(27ezSmFrF`155f)($smNjZ^!n_ zb)t2S?}vCi1y;SwP3OOf&{0qyDQ#Sf6>v$%T%79w6z`G_sb{YyD;j|5{VgVwRHx3I zf!%X0RfThH?Ce99?Wf*QL#X~v6A9=PT0uHP#5qwFM6yjF^V!vlNCt^XfHAHIYs2;0 z8yK?DUPn`5`^ZB)ttpvwDv`cYUl@tuXd9yvk5j~%GM=F8xsUpYdQ~xD)VzhdCRE^+ z!e9_t-kz#Pb}F&qNLUvunU~*KM&0u;lZ&w_HVM=~i|Z-7J65uuKK=o;`ZVM~ahJ2W ze_(O{^G_D{I*QxW7(VZ(OrSS4%ntK0n>r!q+yIPbk)J-td6Jq3U@Lio`VXeol48EC z6DSWdp9r+`MtaoJ?||;ejCyb@6?qhfX#?a50*LR2t-e0z2YOrfPk!)NVQ(6Uu0M3kX+tz04|z zD=J6{4JKyq0tG^oY^FNGH{CMqbxjmg;!+7tVwg(5ZEuCvQGgCeZNwsKRvXp0(8BWY z{Dxj1f>fK{VklJN%$s$695Yb!h(?=zdP23*ZM+P< z2+uF7H?cDcv()euE)5EYKDHlQF|clo@q9bk;vCRvKDK2In~zmPYd5{67LPT=58Dd5 zjVIare&Bg&{#sssiyA|6uLjU#HP9z*0V zf_Sv-Nr>V6oSDUU;pqx-JFYOBQnr$PAEcVbWOAqMO28@9xDft*%OMyi=bkj-(Gb41 zTA7*Lh7rl?S=w-qIilNgUaG}u73Eh3`DLX+vE}a)h&8ee3YJrVa@x&!WrF&J%nYuLNJ>KA9w^Eg+POS3drg00Xuw>QW)&#*Q#iab~1 zp;wWo92QnPmC4a)5eQRPUdc3^lDe5+e2AF_9!0aj2fG}87|`w8?y_}i?>#Ft{oh!W z&q6R&FYE4%Sb#kHPXsmr*BwHky=!t@YSqJHsq0Q|`OkcWUq)PTC^m$M{6^9y(AH@gR`D z;&~Y0`3-?lfa5McML*W_8yR6fGw$2fz+* zM!Js*wKJn_Pz<%SoR)%zaYcNWU5|D`X zXybifLp}O#rm|Qew_uTh4jP(tdHbUBWoK=7iz7UH`xw{X6gW!uqyHVgHz2-Op1l}+ zSLTQCeS8zccf>hcTDop=joGP-^F#Rl&nAZNVQ0hpPAI(~KNBWM$V)HZy<9!`Kqz^I zmi$OqZz@XPxTPONdDaTwV{>D;s#U}pM<)t$ZUT&4-qqSkauf8E}IIZq`U zb&U~C#A1T_-g-lGT$ShBxhm z{!7J(vW$(ujt)XbC{J3=Vp`Rv`M`D$hR#2d$IbPfx|~~D#pWV+!L&-+!so|S^5%v+ z=)8B!Z+ZiNcNqBl+J7_tUgLzUmY(`Kd?SSTfDbjzbTne1e|v;IvYGrq$KCkv2tJyR zh1HXK+OoeFKs49@(Npg-h=w@{ML;#TYL#c0Ui#<+>+20khEWptY9#hP;rHw5NTEe7gP?1IC_N#V~dT zL7s+o^Ns1czc!Gb*PINJFDDq<1CBe4^4bQwc6Q7p!yJwbvlri?8R`?prHz|2;>{q~ zfJg~*eapsLm=kAM84vx6ug|cN#NR*TO8mN}mhNvbPW`;s%jrpU1nF1mXLr&8D^3)8 zMQvp>G`|`-isn}<*V80qz#rNCsxAi!Y?C!B<;Qy=2}@Cp@vSWW?^*oo|IOn69^yBB zjJ{4*(fdBy``_aGx4PGF?;=T?p<+A8+V?L9Ou*PNf0-!%a}g6z7SRgAkpkc3jII zy8>xz^XPb!`uXihLcrDhEojd^e|czui1uZ+GZ}XI1{-xW_=FXMB9~30FYZOq`17vvg5Y_#>F7c?=W`}Y5&F+yNkNp zM+v><8Uy70A|aP8f3TQM(&voBC~@MybVk!YiY80b`f~=J!l*;ZE{zjBQo!qna*l_->T-7-0_K}S?Qrbvsxg+1;ab4@jD6~JJB`RFZ>by+#R+f!RB2A?4fH}** zb(#NpxF`Lalgp}Q>r_O%$QmWT=QIfx{$V{#+Un9WUAK>`TcmFz_Mxqu9D+(~Iria&Sgti5J6gg`7VMCf|06BAt14V*%A`2 z<(hD+p3>r$&IbCMQPd~BUsh3eeT<#;u{A3gdR67u6gqM7E;@X;Jeq1beb9lbL^9g) zFONtzX4$A@?WJ3uKQ)uv5S#2aA6B1wlFq6W%H>Pwg$ zW-Bpk7}FuOG(c9CDaWi<%9?x~W^M_d%jRqA&sBZRhLfq;a*UmOJEM1@uPutJ`U})Z zDLYk2aqocae5wV$z{9U;Nihm#(tch%;?VRCO$$)u6dlx_T-EsB=~CFuqq7#=>}I)M|D6z35M=Cyq$}(}4>>^NW~TON+lt{oBeb6`)D~Yqz_j|h3g6Hke~*fYxqAwQl6G{cA>#ZfT*|`NzIFim z#^`YCDgBz)F&!VvD05jXG-B4YY)Q1ohgvgBZ_NWDTbEYXKSAr0i-_z)4MJluNArM5 z)39}*iK&7753<8SM`K~K!WJH)5Oei0Rvc0dh%hvae+DGeaPF3la8+rLcMFTkRSjeH zFVgBi<(^M4OosDGGDXUWs~>t~{f zZ*UtLFx!SF*m@FH?Gz!hjMntVPIW7#@w`+kuc5_S>4^G450a^>UpKLpJ$1wcTGsR9 zs)P_ixU5+EcNY)G-#}70o*UPbI}n=(+i>a^43r0r`goVDASGe6(Bfjv zU&D)w;pIoQe+uH7@_MdKUvd0FAxx-mW`R_*g7%j>|4KNz@ptUYAMnc(z)hKYBpKJ^ z#+EU`bYYSDRdR^P;61I=fzWkU+u+(AY`Ktm;6YOKg~)H@y|kEykAWv4ozwS2rqg#O zo?AMEXg}^Y;BVRaF@I%q&b27#1~~Y%b_L#9@NOC2orc6~ab8EdleGctV__a2Sk)1F zzO9wOZh+w>usrEKp`Xrq+p4DiT(?{Wv3#W(EEXp&+wXEn0 zUYcsls`}B>W6|7rlXqZ9<$r(J-!+p^pxEpFVlv%}^PeZ7N0GczGn#Gs<&RO8-dDRx zANH3ApvdX#Ku(z`9ap^?6gFw9m6mEk_F|A<+fkO^H}s|3^C6hVA3^?a}A%z$^L>R}GPucF8 z7Bd;>dXi{OAUb4Zf(r$f&$W-_hm^sX>Z!{+vX%MM7! z`C(7$h0@7FX{=R{Mi*ZX>5!rO|aFEy^0XxbC^7LyQCVo(zh-P9db4eWqS2GtJ|^7 zbB!S1PIdSR>hM$t)!`cg;(qe??yMgj&**sn{efUsXrFjWizt1fK0pb)pSb0T)+~8+ zOw)5DgWunY9tCMDx`f2De67wLrvwO4@$A^G8#VvoiY4|xOiMD^jVshxw5N zy`Yr|0CTP>^eyP!j}YdGM*pAEt^jY)FB3kD{;2aUuXi9dD}6IiC#zV#C)cSlbTBb* z^KbR^hCXVO;~s}-O12q2a9Y<>Z*Xnno~gNC>Q@F|jO&*)F9`hgMx0+FF8L_4z7Bl? zy9-+%xABgh<-Pc5U?^~N4KHWldZqUeo4U}-$GIPLigVyIO^i8LBJ zvoOZHl))}4b3e8g>ZgXh27;JnAiTtG$@RCKf!?hSzX_*^>ASJ>dnO?(JNqk`XkCqM zS}|0+!&$Usc^Bh9I24)KUIcRruVlh~+$v-&*EaCV#2|m|Ug%4lKPfdBavBSC33PA` zMyj{WgkUQC)aQqy+g9W~lI66?Y-*|s(I+dsJJ+7|-05?>c1XJkbVj6gS zKiG^j(LE_O>JyMs+K2}n#;Ud?D8{B_H~CJPXAkqWKM4F(&e~%TlXhv87P6oU>0jzY zqs7BXLGn40zlT>wUneRReZsnXRNN=kqV9gsIo21A+I#OqqB0W~1^3c2`XRyhT{8-o z{EcV|dmLU0%DllKJdXZwJ^8CuQVU+g#Gk7}Aj$@l$%-lhb!w7UM-HigohO}$?rnmk zl8$XNH9e*l{l+H~(B6R`$7;#+xP#V1UE zlAd=Oeaa>yw$Lw`TAawnN)MaXs?v>Yxc!vP*wsh1=S{r)-pWsO$@iNiVqLFkFV$$^ zDNsevpY`>bNqfR37^81YT3|Mt}Eu z`ResIFs$@~T<#AHIjgzX?JR%L_NN}EFj4+C8Ka9Yr#DNBoG{aKR$m;N7=HY6Bi51jEGGz*HyV)D+$&&@4$X3jqn zO$d@c11Xl$K7#VNYw=k=kVx#fSagy`(BI#$c6-%!=gTlM?snho@ROea5 zrz7?6r?BjJ3qAaf9yX$K%6IS#FXOWL4gfX+p6xVqoUFmqQ-?=R9Y<$QXkg`|2VzGn zS6P`H1`E5jZ<|?=CV}YTvH;vST@8u63DEp!+km5gP1@RnFxF4Dc8(0QMS>%pz*sV$ z78&aJ+V8FK3Z@_2Qq(gm|3M#xwLjT>hpf`kod=cm$VO_9*nEd$q*J{*;LYQv8h8`1 z`M!?YdC>fE?e|>LF^~e4>^LQNz*YQC=u$_0Uz>R|8+&=>H`zN6ib@QrGUW6e0JKox zN-p_b>jE$G$zHent8F!Jj1G#{7?BXiz zC^RoIV}tCv+yO{aq?VmFdNu=9X_GxIywYcq5MDfOCGWLgi~ z5G;^3ZP1$WEtVq8)AKl%3ee=YM|djyB0<}ig&1gU^c{@m{K;o&v;s2Og~vhwS@6C> zYX{N>FZF18mE^XyJm4PXhDGbHf&UG~ByES+`{hgigW&KTI(sg6oj3PDn_08e;&_j;s7d1gwo*)mc&mP9j*vv{f3cgGgByx8fwi+Q?OY z3&We+@vxoMLXdvTVEt$)!a5~cklhAY-yRx<6}~W7pFOR?`aeSrur53ulB;^P3+6qd zH1xO>7k3iX8Cl6dlx|z#1ed!(CtA+eF&)WLzF;k zhhe=r+EUE&`E4klsfK)jiT(Nn;`SHV^&OV`@WD5Tt*Va2h~%({p5v~egzY@H1SfGY zoP69$F3Xle&@_PHaLcox1%KqKs%e?R4S8-U{~m?~;Q1pQyra3|%WTCJ^>#|5(AtbM zEP;Ei2KS0M>dPG<3y*4LayuroK=kqiUGV);Od>^u`4hGN1jz!u(CFCzG8y~dG_aLS zm8ooZG%2W>Td?A|dW{yp1#6o)=r2;i7K#&3s?hnkSIO#@en7Z+Wh`{@j*OQ2o}S)( z>mJ{Mo}x0Mr(0fNb+*(;c{d8a!)JhT+_rX{5_<>mw({4-wA3q)Bl<2!D=T?&yjy-C z*$sTHY6j&$20Lx@F(i)LP>PdsfRSVZhW2^9@D=Dg2k86Fjf}pJQ(v^y97Fov$W_Kb z5_eh!(6`fqv^OzPz~1s>5-O$c0VfjX_>gtTWtm|8;%cww=-71V(8OG`1t6e`^nTNiE#Q*Q!>oNQ;rxAIAcZR5iRUEXxO18{pq(&(h*sIh z+XFw4!Nw%^7IpQ|IQBqE2cn z{^{UJ`1C3KRnxA94M;TaXJa<#zZp6b&;n9?jdub(;9`U~(~XPw{Rk|rpE>k?b`1){ zX@jR8K>~g81{_4Nli?2etdttJG&(VWgBav#7f=xb7|sED%AgW}o}55WcTp)o=l%Lq zHdAjf&=i#XG-e=YY9&9Tm0U+=)Y}4=;}|K&o=(}y``WGnZnHyWLRKx3&CUZ*X47@V z2ce&tw*n!7oK*vI)`&XVE_XZ0kHi`G+exmUYvKG=%b^y891T0>3i^rm2tF$)-T#M}~SB9tIHj#|eZc zb|*pXs!!1rl46Ozs|AK+J~?Al~QkC0haKYII_hnZ zUlE@p{9A^nwPZhmN(o%d?qpElORqQt>x=rCwcpWiTiYz860DP6xgAddrFL z8Lv?XK|@LwCw$S=A|EiM?f;&dVl4*J%gMAI@d)lQBbTf|gbOJ9OpZsLTdi)8xtT0! z9Vfc820Y1;;{)Bh`)5$#B6;c*Mlvv{7hI^_!5!zf7K@-n?yI4E#K47G74xYHob6 z^OnHLF(%Eg?}6^@i6}pL@GrhYLQ)U~P6^`vl)`qBt+ya1U%>KlYKvGT`zPOfBWeCx z6=e=3Owp3EgwdoZdls`-@4uY({3VknsttF;a#br(Qc9{5%{NUzZ}w7dVp||px0`4B zz8>+UWZ?oN!Ul@N>x=5Iu4CJ%{)%h9>Gyq$WZ@5-MFnE+x6DopPZM2f=KQ#9CdXxd zOFL?p{T77=KQ5a=Cv}ptW!-hiwu0+>62w2Luf@@ZU8=4B-?-xSWh`W2Li2(u|5;Q( z_2c}{cHkMFXSI1>zGbmWbIJ^mKsS5=b8c6I4Q1#9w2;Qo@b>_sdNn$^WXK5Ab!h2* zV&689E5h>z4Zr?>1H96H^%a0AaAR2RS5p76l$t%`X&hi_Q!N{7{k(RozJ0mwD%mqb zRMy~oQF$3-Hr*I%{}=FieGJi1s^w|6bTv4ZO|ze&-KnS6_a@BXMm4oEj=7{vh>LTrvzyIHUV5S(8I9OVVHb{W;-Y7>A|LwJm-R<316b z2ciJ;IiLEUB~ykwovL>S9h87IiH>FZwQ(RVndz;Ovc>g)ks?BAy7T4hwKqR29vxJCN!1Jod=1?dD=RboaJ<)8qm zD4iH#@#$t{R!gT-?9-QXOMAoJIwZ??@Xtw2C&yKNM>Eg)5J(L>)s@j))eeZ*+Tc3? zlJOp15lvP>5kCUL{xwKN6*k^+l&ktPP7KphA4GTamFurUWcy2C|O(3Vco3*R)FiuAcr58f}?DuaxTimQZ=~w}k$M$a$B(%xcWJWXsj~ z-uF!#l$wQ%7PYOSqlNRCNtJ5p{Vfhtn>k-4%_avA!0eKmfn7JFBY58ybG8zDi{Seh zFdKIgUrCu(QL3=ESgt-y+Bq@-Rno6Oxc>x{7^pVdf2RKB8?C@JEzp_ z+<73&T;r1JTlc$q)k~+Yt(CU4?zwi$I_zfLyEPolZ}UNdpN9l7?=0l_piPuV+feOX z)ndh&fMxtQND%+L5(yo30CPhGq4bRwlaBGe_G`E$>w95eZ5GU5L9O8HXe%kpx0qpu z1-Jb{_&$k_d;MEIZdCRH^3V}6;HZWC`FeT)t3Xu0Ap|Ei*bh1V%|Nt-#0fSKN4FkC zAQG-bsvHYc>5S(k9zp;{iu)7!6i$8hpys0~w11+0bC3qp4&bokqp6DxKZISV%1^o|rb+lhQeKtI$>{DAgWIvjH?BFZNVSO{UIW#oRXSgNLvLpPmmA+cbTlRg8uzd`I zYd>-*FZ~8k7KL;WIBr;f<=&{1;{E{<0>!}IiFe? zT=hW?p>VDh7b1O!&xlE_P1hOrYqA*?ygbpM*BMCp!*o;1 z#xDlF&Z$B4C6T`Pf`Im+#7x=<LCO8hVN~(bq$1>17Ujf0md6esh{ltPPC9o_k!+!$|YI8 z+K=A5aP|m9cAG|IzQ@n9(Z+UyNf2BWmcuJkZ7X|nRZUoj)_t@^f3NRgPhJ^eEyD8$k;L&4Ncn#KKv(X)H?fNaCnD=E{ z&4HUVCk)aazI8upet?;hHgisSTtGLiKY z-m3SLJzV9uIAcF)?5>{#txW&+nFMmrA)it7WD{}|`*3xM@H zCdHljg1D>*9Yd6|;|1w17)G4&fkCH0JX-n{kkfD48P#8TlH2lvyqj0X*xky6wLnL_GS0?xnH{1s*4DBS`urjk z9a=vZr7ga%dx}bIA3kXd`v2a?1PD=zdv_laKqe|siUE}DdRHH&`j9OD+=tb1rM2<( zW39hJEdo~>cj7BFW0_)u`@wB={~%Dt;4jHXb^2F$mI)wC>h~?)rS-LP{#Q^ouGfU9 zvB{+M8#_{zEbA~z>ki00nXE3%JCIOtjn&amaT_w!DkB#>UrY zw9&nzpU! zCVk1Wp7TEf<9@GtT(V4`N$2yH19vW?UE{zQ;{j&{dzp|{c`qtiuWSnjcOGipbuAEX z+Fo=Z*ow5d1-Mhd55fh*rZo6A%53mTI;l4OpI@>Tm*QT-yR=vv=bzm_j5OIo?DAl0hp{?$K4b(_;Nr((@li)kT^U7#O3;9F~L^zuK1z1XIfP7bc&d33p z?Nz*mt_p?T^Cgi(nobUXfKP#5bk5FxkX1g!zV|O0X*8M5CjhrzcoJ(|gM1pXOe^q9 z&D|*H*G8XM`;DVFKOpx%g1{d7Em|873LnKo9FtE zxBDBs-d+uEb3l+hXHAmjW%6q~KACiqBhg406_PG#>&^qNYoQ0uIe|V%TK8VtuwEB+ zU3Dq@P$+tW2}P)X!ci!JJB(faAHqS+7}(nHsT^w90QSv`;Gdg#rhes*!Fhu*?frr`}yDNw7X zho-8!K|G*^aOXPIL$3?#q2C8!J2#LE8UtF$39aGueH{bnarN3JNS~jhm9z#Db_O7} zSuod*lb`vBAqxg%bZRO97PzW^(Iz2=3FsDt3}NTNfSXo7Xf6JV-6%pog+7l;FAJ~3 z?!N9|f>;&E5@&I2GOeTFE6Nyp4xZ1txW zDNK+Aef3AMJISdp?b7gkMm8MS~Fez576Vfh&(We`ci?Y^1X{dc;Z#~5mNkRw8N z9#OkkyB{*FKkVWv#eSNd$LM}Ye0)5RwoRya>gx|qTc8O>M$z1gSPS)4F%3FvBMzDJ z=tL015^3w__}6L>;hb*2i;c`B3}}S?Rl=!F&#_5uasND2+CjIi=a+juGUw-hVx zUJOu{28kKi=16@30S_Sn?s*@U`yucL)Vi~UAnJhYsRO=9TCHrHt^NY*;A_H~{ics` ze|rv^pq$-_Uw^{EW?~vePc?Rq!5CPftKwJxnMWws-scT>| zkbtvSjcESKjXA*F0?+&uq~9bn+Ij5=VmEd(l)V_suKc1ml3Cx);V4fW!Q6R!;HhKO zxNOhTmo&6avZv@%K)>3DXYDU4Vqdi+0aSNZcS4=vF z!X!zNj&yD(nZ#kvj`a3Md_YT5Q66h`w$wyxkk(D6;)AT#YN~4zZUyVw0DFb>@hD|hoBAT~hPnC9%JYf_gcq#VskoDUb zv$k(ijvL*G^^WPa^DxS?8UA+8zX#Wa+oia~Muv8&37jtlO<1gW-0#xJC}pLXaYH3J}E`-vic#UdV|Ag*CYm=ps){YcIlxvHC4XOEZ~ z;KCoU4r?!5U&MLyKw7G8bW1sj0rOE@2XTF-(ckEi+#8#v)EVUPxmjCHw4CTB)2rQ% zyfRu`0RM6Je}MdH9&OzG1s+3whe3^NBq4V`TLx^L0AZC!h%&g zg=5nqHa4j+HXVSmsn*r2tN8Ey#y0?P1w1Q;H}_{!5iVCAV_7BpbLL?7CLcY4xhU^e*CnD-j-d*e_5 zjmg%cuZ&!W7Uh_F)O9?7QUg#m8w2XRpTh%=0Ue*PG2ns<}EcUxiIC~CE!DTQIT;FKM z#QWURRG>>Fw=~NfOz8UzN9d1wK<`eo6wn*=Z5?>0hbB?s(rzlcxqg#OA3*d+&ESWo zkYX;G%9nd!`AqjggzBd?{0SpP7=Hx^L!@U86k?+I_x3=#nrrtw0R5B=A`_{AxC0;K z>>2P;i%dbvfa&T4W~e5jDcW^Z5D(K8R0U07hHCMc6u-u>uZj3I5QRntQii>0#W)Fw z6-S^K5u{MP^3cWi7qn%G0>?4lE-I)M+lqD#gB>4Z zHJ-7s1?@h8p0w+2EMuGPxG11Zu{XUDD2EvAZ;s{M`@u9PdxP)Yq3uVE795*!f5T`i z-VEa9dtqX^5BE15V4D`09p^aaD}xiG^W*P@Z)~%c2{-i69*9?ZcIyvPx93*-u=ImM z{s7lEM(E4sG<79&ImkZ$u`!|!%wLG*-#cxmvf+K9S@(A#tjU)`V5sH_f7vUqc5%BGisA`lROZ3&4rP0Z>-uO7ga#%(H z`d|pswohaLZ@75}Zgw>Uccp zD-qA7YQXhkXi#{DxngQ9KD*enU45suBN#%?zu`e&H?X|kfYaM(2K{K1M_$A?tOD^q z%W`-E-ac4@5ULZnllg;1t+~aE?(gT}f^%GX1Fpv|=)rbUP13gUM=T)4tIwY5ARpyK zd*mo1-;#u-DWewgwTGis4@F?EKyWW@=Y=+a4$n7O&-Mm;PG@IZ%18L_|+EkfNoygjfl>%M-CjTd>$~(jZ zGeTP%nEK-yys17TnN0#`eS%cEAi0|5l@DBHzuWu+$Pae(p5`|H1Y#)k)6uGmOTjKj zI-c6Fa0e6kBb|^!)h_#lor!`Kd%Ue9!hi05we2Lf<@_z`5x7aIX?nlYexNX_&%Fa= zE!8spg^#<~Vu;GC)Ak30YGzAEa04bm7t)I58ZWxUu3d+3Qfk-^-U$eZlG;*4kyJZC zN(~ky!ElqPq_%preum4f(*WHlKGRt+$_vwu(5BxF(`~F;J6g2lD&YjWl;Y3WkE4c? zydR^sI4AMSvx)mj6(B0gNVv;^NR#oa;urBTrA8GHD&Ho%udSzd887=Wfq;7w&{2q( z_8w-&`5wVxCaE6a5~JT6N%^NQ{Rk>`4H}E~1BfL{(MQ-LgPvchSL3Qh9W|Q2 z(K}d9cVh|_Qq)`S_=p+QvHpbq?j~&s?_jyMlP5#t{#5luN3iK*)ePBG%a&WIG&4It zm|P;z$?3lIx$i^hS%AAsf7(t;>(kp!ntp46wcc`4e*%tG5Rdj++I}v}+uNywuf?D> zbsYqfysHKew|*YHc?nt5?0{_wbszkEVU7 z^%l2QuDWO+Sry+!rKM(KG4+z=Ml9&N<5bYCaPJuRTh2*_SHm&$=T9Ir+oNqvUZk~q%06|0;RCC$@1~Rwk?Ut8 z=#{(|v6ss4Ue@s6(kcNso|ThZE#A#@{FO};mt>VMo&&2z~Ukp6u` zdLN-?zxqd*A>WG!po45MA)@He_^kQ1(npt(om{UL`WE))xTSBN=?HRfPwCAo{rb$M z$bqq&uwKl3QsZwxch%v?RR41D0|b%ZfhxJv1w$aqXvB+Vh$`4H{E$&C@nCZ<79H)7KXIXXHrj61x<^n(R0S>{TF-GktBnxhnLP;X4I4dl_5v_VS(5{3iNN z;Zqwt{TZHI3LkX(PMNtSE9gnko_^21omz_qJn$-N_CQ~tr|(qs6*Vw@_tiubUZj|( zL5#zF;dN#KZmyC0J}t*Q=cx63heOXSv~=0RB6;_b+?j>j2CTU8T#QaeJowwl)!+P; zgSaI;f|nNUOSJOH_~7|wrYs_Li)M-Xkvh`>-J)3GFoBP#j<)=pEkPj9YSp{pLEo`&3CX3 zo4E2O+(3D-EoH0piLcfwN-=jhc9b7yXDZ2-+zKS3XgUI^zDF-C!_78@WYd=(fj`j~ za#ey0^uzISObpuS1Qv(=Zqk10z;hiD{5h~B{EV$b2SsV)MKneD8YVVmz>!ju(%3X2 z+=&5n??7prZ`9L0Isf}%I}s(v?5hP7HxPNT!;3~dEnn_y2NHUo_KKQk@Ab9!@V+N) zlVhLuwMTnCgh$V2R)?kyP_-%LtkSiRTxw)EtalAOgJIw-`lVNX>Y`bnk%S&tUARKwl zRZi(xCmGJU_#nClAszTJXaIRaJWlHc=^HVBLJY60J3vw2DSHiakR;2ANj9f1Ymgr_4jozK5Fybbj%E4V5*2xmzM< z)LE#p%|d+-%!8l2JBr*`XDcyV>dBcL4UUQzH~CcaO4cd}7eTlZ!e!E$Tr%N)p^So8 zd0G{EHX|7BZ*F|O?PoFLzCQWJ0`K&rtOw95o(bk<5=TaSeUWGXf~ zYn89f%00Q=jN0qBv#jgMZx|jmg-h{b9lD|=4-)7}qE`cMi&uDP*iY2|`2nTi7!dih zmIJG=7JT(q^izQ{ryqSti!wnfGw5Z4o|g%1KA%c=%Id1R@w=@NGATXM8C+!s-pLR!6pGMLY6*;Qy0<=_EEl2|y;h9a0qMrKqS>!T-SJ{3i zbRWV?FQ9=XOd&-j?v*m+yD!jOKzeT)*@%DS#<7zux810|et9J6pgtY#8}(WbZfO;W zBBSM)*M$6-N|9Xt81)VQY1Eu1&4rnjt4hSx3>x%0%yicSni*l_{68X5aT@?8`8^^7 zDYo9n;D-?ikJGWb9Vfj@+){_cV3Y|MQ6^A{NfTdDM&rUp^m^uE?htdt2*42bYrl!n z^LOmQl>{#HLv$vQ^trk{0K}?QUy1v3DR9aqG@fbs#r(|t=0)T;9`Xy^5{&S#|6U^H zq>zocyoPd7VmbIgdDq8mrg&(d=cq^P4P{gh^ohY`ZV{6X0-dVyPzGdvv_w1Gkn|*s zqcL{&IuV;jh_ye(=u{{j=4%fD^&Jy{9|HA>NxON+neGVw3{c-8MtvvHZw^x5h_(ox z=0Q3<1oXavb<8D5fP!=!4Rz-)4-8}H%`mDB9BJ3>y;;i(`4LSXuy%C%&b=QQ0o_EY zM-FwIQ~zc>49@pMkvyo=5TIn9C9iq1K4|;eqr4CB@$&yOr zBc{BZ{|_WTM|eA}?!>_6bcqtUXN1wdfNb|+z}26f@`M;1H%^%8tSqZ9U`CfC^H=f8 z{i~rv&!vw3Bgm{);uA{3$Gn2BzO$Z?yvqdX6KPTvFWq0=bgSl1I_n8-Ajp&_EsLJC z3Ivjcw@H(hK?2&hCN;Yqhd5*bLBY2fW<&8XzAVS_1|anKpCNzgfBKd$4-ZL7-@eN)K1#!(}EjJ@luZa{p?CpTtj*hQqJa zsjZq6j$|);S1aSs3cfQj-u_fJiu|Xdxh0JR@fqMp)GbJpfVSEoc3;uxJ9ySt$GN0$ zAa?CHeS7T<{0*X$HVunL`A*L)AmKxA?O`5?lej2gLPv}s)8Y;@}3uC+!XN$C!Pzm@!(vhqevKWKa;JI}8t~ zxN`$*g;hTo<*Vx%_zbs(WWDKAqkV1B+)^t_o{c!+_vQJPP>TYsRn!s4hbmT4fBexUed zr>#g{cNZB1>Q3YXsCephhhaR3$mz}$Hq|9N7TPD{!iH)4x+7@RF92>CD7^zep3wMa zU|>q*ez%CDnodlVdw?LT+*g$Sw{nzw6r-ZsANLHULJWEog^mS*t9UCJryb1>74+hcT`8^112Vux;5EdU`LuT#8$%vdk z1y{P2>F6*2TOhWVQDAAU$9~HBasPotqg%>8w_Io?_T?r$@cdPDw6c4p8&64?55oR@ zVC1x$$SwT@vNPsW@Av2fvE*I`(W*7y(=Zuevw$@j^znwKC-_Ps-L2Q5ui*Uy0NCc3_}?K^LLkHo zC*__DxjBUoo}vkI!clz!f=5vRurNxXLhG++4I{%lB)S3=`nk7V37y7^BW5;Ow4sB# zagyt#X`CE;ln&{Mj)HlTR*rYMC=-TYHo-HwDuYQ`Q`y{N8X=>Vj%yzY{=qDftliTL5baoimV@;q4iFL2j^@0kDX^)1H=8s zki5XX9r-NLV|af!&u!2mWN6RtM?Np_6d#_98bWmOi%7cIb0NCu5z%hk+mX+5kH~i7 zHgt;r{`uqca*s}QQPRUm2gkVu5zqUEb)t(B8@w{mg$!hHYxo(`N6-a416{-!;sagC zJv6$7vebV!bo}4nmeBFbfgv;ok~K;aGsm?rQ1ulmu@fJ{y%kVn780LCZZIZAj)w+a=1hRVm#aj;ND55psq{t zF2%bP?^3)=@h-)?6z@{JOYttnyAJqTH=nluue60zk@ItCp-m%kr$XqU>HNNUnr7QJ%CKK_i1# z+TREjbjnk%%96*%(-Aa%$dn=DPTZqbtHz+kB)aKXe3-#`>fF}HLl}sg$e{LwS>Jb< zUq{=;%x!Kd$A&Jo+!Am1wfEzyu0elLfXf9Bi%Q>mw>-s~Qqy#UW=Dy8jH@mqH|eLM zywTj-0|Y6ymd>YkZ1#*4r1;}no;8yrV z#FHp-Y)iy0&Ayd;Ye3+*VL!7xAn>ixo}V?{!En>n@{7M_aBe%dp|GLpynJ`SQP%Yt zb_{9%h+dwyPoN}xo`x6$&t}@Pjkis!L+OU&W`b8<@96CRM;=5QqLgejf}N9&UZJ?R zoxP>azC&jVeI5Ng*@eEg81GQrJ0HV6Q={b8#6*vck)~WlyI33zoLEaTaevH9r^C;I=TArMX9;cP=*>>U#(4Uk ziCr4=(T=KCzj%v|^%=QV-wJVh1Z{=Dvl1Gj*{%q#e>84mz-=KFiK6s~VH-m=+w8zA zsnLKc^~v{w!KR%C^j9-@nB6e}H76EwCP(+u94pxwqroxS8i)AoBz-du+wV4omp++{ z8ymJ@KT7f>*tw*63CS)l$(4`+|6)Q8{O2Z2ga7*y%HY3X5&X@nhClBL_?y4lz+V0F zv@2b9#vlhm54ABL5S?liEl3-+y{lr<=NHM0rl6|=dEr$80PPC`=efa*$Ng;w=F`YM z`6r}pX(KPAnKf@#?gAd=Z4GC%YykUx4Eh5X5Bs?cXTcN z3A-%!w?m?|jq{ORycD}p@YPz;t()U>Pb!a_=jGVVqI@0s8}NM}#rxXLb83(n1?8?i z0ylaGCcuO&k@rJUCKyC?X864*9dZU6d71EIU|Y}Nf8rW6g69(7OD5y=HW!yj2fje4 z^wa>i61$CCx&j{VAQPz!(^ic>`TQC|f~Vt7 zu0I6T$FxwbScMk%z(3h{w2^DNuCSVWTYrAPrfEQ7wZtB)^?c|L_bqFoUXK2({(|M} zT*jUYo%o@!+Npm({Ypm=@*_M*qGn`-_C@h%Ut|~LY%(l#OASrG)b>xEBOY9LC%Wa# zWROdy9^?AE5=O$mn2-Vgxd}Y{-s6ze~SMze~SMzyFW_vd24bw~x*%`K8C6=kes_7uielJjJsM?4F|Xg1qT= zPpN&f+g?~&ZqJ`tTH!4(uovZ(OrKd$-rJCVg4bg&Ews-nm{nT-XehgxGfVUHJOy?P zX4(tO^JW!j@!@&qLwWg+*h?RJxFFvHSytE|Dkvzi&&Vr(C~roAJ->A3O!!bRy>|qh z`K8{O)9odt9{cnHf>i@Duh3Ia9?q2@EH0UWiHB6&ZWl^s=glmhP7&ZWWK%M`pu|&L zT4GNeGe&qY)9HH9nJFY;IS=Q}&Ko{6uVlt>0YI3MH`7@@!#fLNXU)woD8n=i9%H^0 zo^o%#2XQmKps={4nB}bF@zJsZcx^8zFE1@0YS+ul{dG>3D{D-WUO!`gd0LT_)&Sz& zV=)y=(h0{EWqJ7pteLQKG1f5Ma~ORoG{FD?C8d_UXmt zNaBEiqC7xLp1rKRcvdl?2rGf~m{(q&_o!Bn(V?oBKIF+OF3~y_VbGA0O2hb*N+A2v z86^aGR|3CXuRwn3tl<^jlHm`RYP6_uc88gnKcYR9tI!}%PB1`@f384 zS6adV0OT+hb#dv+3ZSU~0Kl~1x=>1!p}%SAXUr^p2v}Nq0W?BEiQe(LWHFww)=l~f zpq=7;Xj)HE>2#owin7uQ$fUe<)&+8j?7yQiZkpl61Y)Pqp^dH0(!2A@fDfge4-PD! zMNXughuT?wNf!f|5iY{~jklps^a5i1(C_9p>Ls8StiI0+kIRY@SJmer3S!`rJG$>wd z%5LgCr@Yv6@kMt{ua8aV=cEx?M5OoVNWb_TF1DSAWj;DNZ>INR>0`7eQ$&oD`pdg@ zKA+$u5oZF8nH4`L-%u9AI%V;5)1PM?FoLd)UTOD45~ZHqdB*|h4SKwD^}ViOC3as< zr}A~M&dVR5{4w5=d_<5I|Kh=jz>CI_&I!W>_!PjwcnlMYe+Cd;_-qIt-M&2seMNBB zT#|stmX~_VE;K%cWiOWKX90czdYq!qB`y%pIHq^Sb7;gmFYAfO;{xRg(4;d8%8`qA z)2_3T6I_VNL}qbu^5{9ryRck(v3SfLFJzU>?j*l6#3U3J7C)%Zg)Xi=B9nB5ySQX_ z=_3Wkar&aOx`0%1A^5sW(%pE|MF8s-yXVX;63)^zytp7`MV(UWk)%n3+FvzVA3!GMUDgmfWOG5w$5~aRtqw zLX%hqcWU87j*+Riq}-Bxb6$S_^bsRd^HXmbkv}5!=IPTNsW<28^}D$FcxefMmxmKM zil0+n`q0dRSrzn>CXhP+7hF`;-shi}mzL;EN6+?L`If>=F_h=eg4bK3XB|#=9(eTV z-SOLmNhSGt-Wf$O= z-;n>DqT-naKd+R?_SThGTD2>HUFOXw_&IcJ)GHx`_Qd?60ssL9#QaA{TVae*kz}M} z<9I}Q-ozA@8W{g8{bp~ILHiWONI6rMctWFvrspw$K#Dr3QCO!ir>LNW>D>^!TJ1v| zx7%_;TB|(Nz)UZg8&Y3I#5WGC-6S?BF1xD2pzcP(r7Y+#BkEsJg%4Mh$(4N-AP2EVc zrcuaz?=YcO%ajOAMpG!6!V_&%c*r#A!dLf0A!N|Kv}~9on+y|I6Y{FNvElJ%3Qj0Z ztQ}4I?Cu<6u0BEQj(?ti8fG%gP)uEC3#LwjyQ#B49Fe;&iJeO$g$U`YcbK!8uT+)Pgp;M1)m=m~-@l8}8?aYY591;spU$OnN~QM`JnwA3?fX7NMi zdF77|E6ei~nc(5!yg8m>6{XP8h9jwir1ap}0uKZledAC}0@S(1A;T9Je8KV3@M>yG zioI-Ro(H)3EG9VJHY|DA&D4vBAyS61hB3S#EE%3P&DAibRWf{-80JsIN{UN|F)_^W z41KcmyU|5?<(=P6ECTM@`6bXs=T{;$R_AwPuo*kQbWw{M-x9o-p7r=dq!3o|VV+V} zkHjQH)X7L929yBQz~PTPOWDOlhiO`_7e&VVI(o2GA9qE35|JF zL=;ZVq%AiM12$jGmY+K1*rkRVXj(<@MTD^r!)P!vQMTGW!l>P9Rn?wCt)M*m-gV|o^fHn&(W_3JiQaYQO!Tq~ zXJYUYyTK)D!#kaK7~bgoK*L5v&(ZIC|tJdMdZ>SrEA6cgeKWjAKxfe%{qxxF6 z&N|`iy_qJx?{+&>!*_@@+GJpXCg@Dv4(brG>!97GZ<`_*CnORu;Y9qSyKMX$gMTj5 zJ*GksG>3r*REo1{(|PO~KvIlUvCRTu2Gc~o?JU2B1X0b{qf>M!3YO-Gnamk|8tl(Vlp7 zlBpad=F)<>1^K4oW#y&$!z&7A77j<9t+&FIlQ;Et6TX3I@?7ovtWqybIZWEi!U{Xe zSb%JkC}g5BNUl4_CERTqK0B{`xMxV8Z`}*C@E|gKM7l{F33@cDR1Hh&=jkJomSu=lP~z_gzGs^IbDLrJo1SPkho5 z9I>k-c;Yj-hifQYpMKgAoDSECogKj#xSnZ*_;9_sqa)~o>(d67&a;z+F2nT%d|L(K zOYqJ0arnY`pTfIMn>&J!Ztn<=f$Q{#9lR#EVzdyqF4)e~zsJDkg6l@@%0wLxTod8C2QEQ-pAA>l$YAi>+k?UT(t^RO z;QGM<_aiUvS_N@kkoKjK;mhL)-*=ZL0lq&2Y2ro&gV)~?3{HXTHn`qT4+e)`&HcYyJB20qJ3Z( zGMbv9I!@DQmVi`n2OT^dq@zXb6u(cW_M-g@O590|Go&YbXV$JL!+lS!{Vm$1|7@W! zrdxWjhQjD>zsH2as0*aO>;m8WUf_G@ns+Y0_XWQ9>h^n7D70SSd(Upan?qrb3w*a+ z;Ctk6IE?R8>1Q(KE(-?#T-6c09l|Hz`V(AzFL1r7h4(!k3_bv9w=WF_x5528aIJ<5 zpU-zS$-!X!6YNsu@P+TKPlT`Up9%(7Xjgo7Fj!R0LVUmZnPBkUr=ffZw?g;`gzMm1 z1=l`!ei6dEv^d}Xo?YK)_jBQW^s~WWHG~qpdk(I@J;R>QcbR_?oz@qcq6Tm{t)e5C z2=^ItI)XV6=0I44&psF*eql0YLHO=fCeyDWoH^KJDu-~(H73&>2(Pl6O!M$Pgo`1p zfiMT~xCrxxa213Hq>kVh_$-4wfaLK+M=%*eJA@*HD|iOdocVT$REhp2B96oX%M;~Y=+PSVe%h3 zg3BOW4dI&@?~ec%gc%SvLs;`?zyov-+X^TL!VCzDAS{D$9)$M4LU|D8Kv;wCA^a4= z6%eYJ?r$Bzc<6o^5RQa!1%yQq+Ft4iE{8DrKY%v~r@aN^A9mxnLB@h`+S-m_8H6<; z)2)Co=N*6#zrPFlLbw{jtNH;xK+X^`1bJjGgf$R80ig}#lvNN;gK#^9DZy=2vbAzujX5ZWOe0bve=xe!i+un59M5YB^e1%%ZQHe4GF)<9TxeK6RJ z&j}z`41)5927@Am(;%D%;Q!bLD%zXV|egbfhd1*ji{DZ7ANuKU{$34w%IKsd4?Shk5j5~402aUh4fLSIM%!~(*AL%b`rDW`?8XoP4F(O#m1G=2;bjnG)Ii2P#b!;~-4LGr(YL?d6(bsS5YQ%?- z+vxA~=i_<{GZyE1b~>vjW)^q5O1s?7RTD^ovg~sDug#|D82#nkAJ?a6C~OH~_qvws zaqrG3@6PNR=R7BqXaYY#f0rMO>+gswDuFNE>)PY4+?`P+@NveMWMjrixWhDFEz}J1 zOS)ZM?t54Tjk^b55PzC5;x>h9#w?r2vl-5>h~myroY)jl`4#VWm36yIyE2^1Ij@TB zDj|!@9wGdUhvNDV68Vv=C3{@E-Q5{ona(dVesQ*}|NRcOwYctZ8gyI2y1CXm0Aw9b z5bn?y;`$_q!j(5&gjl8r6Ru~)j<98yEb<1itB&xFvu-s9m<6gYZ<*XTj)?g zd0(V)+%-~%^-2fERZ#q!G|p>@dM`&kIzMl0p9tX&)42bnslN8ODo_F2B)FO@jCG9> zeg@4CZgCp$OB40=p(>b{qR$YffaVaFjcr*jv84pwEWu766cYAIws~=H(stP<@`yJ? zyrs;jLVYgoa@}+4xM)W%#{$CS(LCi##=NK;E1+0|G&0ffEW3g5ZG@j^=m+-^FGf86 zy_&X+WmHbg46|;hDsnO@7!uiu`aMM0_X)c?p;L+KGaHXro~bxRP|k<@+U$qp`pw8^ zKK)(bw=)oLyUWlvly)gKVy%-EU6NfX$$Ckoeluus&_i>tDq~-gd2V1_dA93X2lA~T z>=Bxm-GqFZx4|vvYBzu<+MjqAiT8X$W(E3ZH5+RM8S6_dyEt3Qh!MVNAI%pGa*q&i z7xAt&@Jmy!WqR#GuP1eiSS#rGi%;Hm`lG)egkdGNAyw_-()b4&l zu)NvqgL;i^Pz8A*mRD+&$M_9|_x2j|-(bvtu@&D<_z2;r=NfFPQuX7majt!;$C3Tf z-%-K`4#xFQy3M|^Y>&HacSf1)`uEAs?E1A+bwgnjmndz`H{$wNjAbpCc?mbURc5u3 zNpRpIOD1Oe z3~lgZccN_EM~Vo)=y+V`w+U(YFn;O8%zL;^on4|2FP43n%hg0!&k33`gY-VV@*Llm!eK)7xB zdg24bTWItnrZKNZ_HpOwME|--wC_}0f6!R!m{x^_loOT#=cS3<#IMlZ|VGkEEAWxgRpIo~_Y*eq#@MjDzfeQ#`)jS(_0p`j z!265&AKwg1YyRn0>^kW;jMxI|bc^1K>*KB1mD1BIthlR}um!xYkABMO1H_w6ybm=? z`Vh*nBUy%S?%+R5fep%TX2iZs*f$9~)vDK8X+xW(c!9k@*wg3Y`b;bKF6qjR<@HRY z@$GH0p;540-bIA%dne9sjuH?13?K0h6R*vfUX69n%Q|!R$cZS=X*vmi`Q5laY%TLk zvK*V}znK3K?!@`HK4irml5M7N1BC1T`RKSygsb^Q3fyzjUKFl?<{~qGnF4oMwu!=3 z5bnYlaJ>I?c#zhVR@}4Z^7axg_^Z+N>nGgoe;XY)M7Z|}_i5w$gy!qK=G>13A-AcA z8Z+lYa;#zAEaGJucr0%L@!Z7gHRfBzbGz+{IU3Ki0))GdaD%x9oLaxuh#AH2#!GW( z$FfVs_)ML^&?=)Wdo1P zx`TLGzmMy;CflYLIq^)2HJ^)A*YW!P_UJ?BQvb9ssge=$$jry0sqL%d7GyWeOV ziFs$0T;;5lzKrKGI|yGfP1kFUa~ZPDvfb{o?u<&BR`*J8cAxAc+#WAenjP2Z`t8O% zs685B@8>A~0L8Z^;;Y5lt%B@*1uRsw`4nmo!YLod^_54wOT@d)IA53guRw+6I*?Bh zr~inqKdTvZ7yARwyXDeB)=2~5cI4~&p792m$u=W{c5QYT`XTS@UbsOw*~wwz4HNH@ zreyHiaX0za<>XvjW#xpWj}_}b-V?r2*FR(IL!vF0p%b}wIM9|{mK>V%4}475`%Ud8 z_HrsHg9FM&<`b^rW?i3?WtCg4Bz#AquJ0Ntx3nvxO%5!dl>-Z#g_!?Q znl~v;u_;ZrtE$VrS|(U242bnULD)-#U1G5XzbxCG3}oEJsdDePBY~?DI5|}=&0dD} zLLT+Q4#M&G+S*F=m*sMux`@k9@rNj0%n8(9MA>dR#`Q^4<*kd7_SMGny+)fM`Obi>fMraUW#0{5VuZa+*z1k;rwhT>58+OPa|#`p;JKle4_z)isXnBy)Gh9`|0CvwFhu z;xoms7yqRAtk@%|6n?LdWIs@kIi@9v*#D*Yqs6-3Wz!_Z zN_74E#{FgJx?H%r^~yyEyqEBYD|FqFZ;-#-us=|wMjmNP{C&)Sgs@j-(U*NgC&f1f zU^nJHwk@*e(K)e>;kG(LX%11EGD};D>H7+?l_ByzPq={q`td!gY{|ZJnVoB`u6vAr zp65=*vYO;NW2x|^w^Dg85VqZ+d_sk}+%uAUQ;c6n`1y6Z{;E-Sg8~1yj>J9+&y#jt zU3WAaT-cA=yQS2qMk!v@Xsn`yDvH{*N2+M;C{?u*t7h?{)DE?0Xr-tT<5g6NT4_-c zHCihXGeq)vzw@p0-FxnRp68t3@1Ez}zn*i?xxeQU^_~TmT@W&Ktg)qg`6+Te{PrsE zy!1GLk(j^Tf|wNH{IjN|sXiWMM&4wPS2xW&GI(6%_M=@k?X)Cp+P?eXlWRaf;h9a! zZhNZ<`NB8?&8=ztU0vK0*GLKYTXEgW{n7c={36V<*gamrn55e&d*9B=+k19;O@e~m zsU_Uh9{m}OJ+0*nb z1?6;w%G~bHta7i;c(rBI(kb0bgGo(Dwe)Yw*c#h}&#FGLyTNO(vTs$G z;|VvR-F8?o-q!oA!@9Xzjm9!1R1v0m@J`shLsur z2?bYdvU5awA}Ph2fv+QDO@7?13@b5V?0%iXe~O4#&?wzJZ%VUuV{w&!?H2jcvWr-W zqe-A^V$zZJ?mxaY*lM4Q!8|Qv!F3kM-s>j#RnYOxHT`A%B)hz0`PzkMGgG=J=Mh^zMA~RR{RgCEJ7g*%@*Y!Y!Ewq1*`(m_eFV zGl|YYyyV6cg7ECD$S? zd_8k;4=i%bo!_oHB<^eU*DWSq+L3*O2a9s-QB%R0z|kTtFlau_Zddp8B0=waY9P1Q zy+NlH4$(Ut8WYh(-`VVYwTKX2YXp|WZ{*0ZLC+a&prff9q2pc}ReDxRUm90BP&)V6 z=uRnPsq2K81<(tid|{4tj$VjJV4>i3sfJq_AVjy#uuYd1 za~N|N#}&;L%N3WRms14xqN};m$}-I?1W1d15qlW@S?5&eRF_$YSvOJFA0b`4eOHSN z%-p>;adTo=C5uT18*`!~tCOm8B|2Oe$~YrR;OQSI)jLmUU58o6Jnk^AhhvU8oJE;w zj(v{)6MHLfD}5_K8Q4lUO<%wm?k%*>C~`rBL92RM?kqSS-W(q?@S&n&MTxPk>BskL z0lo@(O31)~vZL(abyO;mGT-}c5`6P#V|TR^SzVQKN0@q`O39cff;|Tm-sA1Q6Qkf& zB?X-D?$2P(;h8)2o>3S&bPQE;%Bz9WCIsE#JI=&hiLu+RA!g|IAi1_#NwH}~*yxNE zlcj?t+B6dlqDld?MOAt03moNWTVJ(;VIn|XjPyHqiS*dv$ef6p7ZtfchQ&Q8L0g$y1WV=z+B?3*U2VGT@(!yR>TJgvpWcUp}?0tTQ#M(V{cGoXAc&tt*F zD8T@Fngj84m&sU#MmbxVCZT<^3BEG894p1ICK1As+uWcA7pu@p+5@y2j?)kq7 z)gJ9vC|1N*0~Jp-`2qDH|1X{cI4*U%Y3|(oIki3@%pk$0ljFy5@;p&0BaYfEi%M@7 zp$Ke!;3xSGRp#!6s!|m6#sMeatcVC9srheDTiUdj#M|NCD#vHWT*n)cQ(?oqj$79s zyVGc#>iW&_RYb9a7w(FO{miKb z7*@<(ol`v4pSq!EdM@?QM|&!0OT|kPnH@ds$5Q#z+ji@FnIB2Dx%GV-XF?Aq&_q}E z9Zr7f61yi1i+_c)Qu?$7ZMR99!sL8jtGzv`UT$}hnjT*SXU`QbKe-ho0GIg8w)jWw zhfFw-czj} zP}jxnAghr-S$HIXhOFzVF}HyZsICUBisImJ@Z5bgfn$1Nn-8!WB!wy(>op8gH2)0y z`hu94F+vn2X8agdZy-fkCh$_7M{3{VBVuTAX+=ioP1gwpqpOT);NE#>$u3?>k6*qU z_*i!kks76;Ozd7d>XH~3Qf$&9)!Z=7s?`9Ezv5$4y-@<`;mPe)8B(V~ovO z$Q1Mqg?GX{$CqbcJ(d)Q4z${cw4+0op=)+qu2II{dcKrg*q}2qvL#Aa1HAioB<~dIB8&6OXglOfr9vb8^{! z-vOk8D#Dl!-aanks6UKy-gV3Kxq8Q2eElj>Ux0b$=puH#@-xnD0G)lTR<(r7W{#-O zaeHvuYDPpo5$vHmFKLc`1%-JgMyZlZ7_}9hYyn?QPD6=N_M!FUZD1c^G!D!Fc6an4 zf2b;h>tfa|F^CIj?mbx>TH{o^h@mz&9hf2~_?e^^@mUhW34N2sKf4>@4n>%^HlgI^ zW?doXK=PN^xsRWi)|MIT_AR@ebG1qJw(9;)zW%}YzI>O7Pr5R#GzGy4u}R?U6kIdV z($oBGIHy(*2hV58@BsWmzqth6OE(xv;-i%=+}fmg?Z|K-bM|wfQ#ZQF%|z_1tDn5~ zc9GQS>*VB^4M>ravwCWeoxJMJ7E<$?9EJM2XE;AV9m6}KBMqC-Dy_A*=J=cUX(`7&ZA=Bt=^K*Cs_f8~oa(DPrO`GOL5avbYFgUR@`4=T7` zT=>p&&3c@4a-oZ^Q+?VQxIbDLpIr+sHhXKeE9UxarfK%t8kW28ecDGce~T$p|9IWjhP<9*XPX5Q$uxz@lqxF1>qnTxNjaHC5M>@QJ--H} z0@0SUk-`YdfhnqRvi2s#K@Jiw!sRcQiC0lsWw*DgxOIE7NFUCtkZJ~f?$=%}U`Sfa zRF?T-9{S}%rIJ7h0$xA81n&Iy)pP7HoQMJ3JVkeZdVyfm>Z(7z|X_6d~@_q1_ zoHLg^O!iLwJ~t`3V}LCv^cAml;glzr7GwwXKLVGBVkh^hMzQg4OF=U#uT5LqeUx3~ zax3cfpE0L5`@+gU{Z;-ECGXQ{vD!LRkqPG-k>#^Pj;Q^Ro$pu{3q&_c1#@BZ?_B*e z(N+0MLD2YPZZ}rElIJM6n&8}@$9v6%94}YqZwoY$kBL;sPdAd<*tqHX6Yjpj$^Nim zx1iYL=PCKgb+mEj0~u&JUUXoUFNw+k#HaZ8YU z8iStc_29Jc>5T7o0wYRgqO>CBZaMHl)F&+FWfJ^lKBAN7CV|HDd6r?nqT7WuPv~1o60jU$(u^!`I$I#{AwVF};efx9Na*mp4`!q^bt6 zVO8^=v#6r(aYVf+annH64ua=aDzq95Lfq1e9`+$W(maqMvIui{xR@fVlJ1=8LvjcvPae*I%y*!7Up>@IYt4>g@RDed9a-KxY} z*?_~eb$(-c6yzJc<`uLi-{{x6*vUGou_~T5J`fmEG-B#Q;y2ja2ZbR@pYc7|5iLGl zN#IeVpDBz)UmfD`b$Ze2-Q67dRJ+mRM>4Ba*r4r*mdYo&FIW2WF8loIbWClt!Kw;F z%^zx8EiCA{+dp^Ovwy-rl0QC6_~D(<60uvff0j)cD9-uUH4AJ zZZ!uXTDcnj@aHVERfm_QbfnB2WW(UyWBewc#*$a2?Z3v%Ci%iv-_bCRB$LjSL%|lX zHME4S?1Q98XJA*FX&ESln|Dk*ZW}HLw|ZQ(CG(0Ss@d#CZSnl>|Ltq zR}d$cYW~}qKWRYU`hO%m4^tjG7=-L>OIMTR@EX=TFu04M9HuPZS5d;U&7-XEp3UnX z>_wYgUt6z#Zp69dBkZ2TdaxsywMPQXUcDx+xG^mU*S~Tu3Ym68m6l5;WdrOMvyvu- zN<;iogBQX+3-hSDSjpa~9tt()BUzbDFdaxg(2KxV1xC2t`-v#@@b`oIvB9#6&@7n; zs$Q@9{M~pYy`Ab`_qpasFIBhCT3E}`?@CWjSMjC9#De()eEJf-YRqIS65fdl>WP;* z#iIOCj&3!53i3}5)h23+Sd0W=Vb+NIW!k|q<0%X*=Q7yBMxa&k54m^MCht4lpBYx8 zub$iJ$x6&{BbqDEAX~WA$69-1G4JEq<^Gs!jy=z1gm$03f=kk3n%ZjiH;R(pK|hWC zX&~Mu0F@-(4nT3t|orb9?=(tZlg z8ZHq~DGjm?alNlKdwAX-8e-v56_>jieTV;~S%qe$genPrUj<*tTD115qAy>ewW`1o z`5S!vsV#r)7pZ8CyGUz%;{aO16?{fC^Zwxt&hw)ADfRSbQ6)@Hs7hSCV=c~V9%Hl$ ziL+i|F5X6RjUW^SfrVb7d6?LI(0IDmv2{Ng^L`>!g)DqE$F*2*6zG0Ji>JzTpDeZm z{#>yyK=z6eqD(&)8zaXx8&54HuNs7h?8rS^ay=uXKE)XEdSsjYev@7grE~YkIw}S_K{{vdyQ21d(#sqHqVpIo2(6gXxtVibQdnu zvjG4s0Dw)zzCGao3|0Wce?=Do+q(a{ruq+c<&4Y>6sTVSfd8ek03M!GL$OwL@N-br z`MUfs`oBg+jO@AhKU7m)Gb00i>xc5D2LJzrzhh5UKvU?&MK=U#r`n{0ip7Ls0a`W zpVVmMG)13JdiiI^`RxCfswl1`D&Za1JuQ)NTAkWG+iz?5`G&M2ZsLHXxwR7k^ zA%W$@BBL-RqX7{KNsEg5fTHNxmKCLnEw8HPn$1*=6CI%Q5Z%n`CXpm}FDK`QD*vx3 zKM3x-SW@aZR|^F_45SS1o5Vlq(*7jCrRxXaluBMi3E)E*%h!D`U2V55abvI9B z2uPUE!Jlv7vt4BRc;ZO@?G>c?jbYF)NYQtrqpjD60rg!h8zuj=!R{>rCrI~I`ZMb zKlgcB@I|R&x>i|Zd4Hk&>?+-Sb)K#zGD;0dZ_uVO%R@Y0Jzygex1yblLW}wFtYJT6 zr^`H)J7((iqr4#P5nM(aWJ}-ut_?10(j~Ug|D{@R*IeMcgw2xs`2Eus$<{wlGnOr; zs-&j`&p2xZRs7e1o1X02E0}Q1ik2s*RA`%JB-K;jfdDYz?XKoXf^+yp=#p&pl8V++ zF8Z{ZHawy0d_@303*OHqh;_dXUI^%1QTQ3fFsbfY%Q)8mrv~yR+o&UBPL=|e;y#1% z8WV$kglw)f7!(rgP|$=@gg#P80ife0HzOI*oTEoF|Ip!QgCdk0K5@?!*9?k=5a-i| zzr)MkmOX`we^M1Dhfar@gDt`;VwVva!HeId_-e){HNs`Up9A4caNs{jjz2XCHH!71 z9~1!pC1`(?y3zOV?aSh3AYfh^_-;YR_0U6nk(6N?Q1ksi=ePRqzSz@;P4=`y*n zj6hRx$r^qumt%Y#)rm(JtB81)9qGX+!XM$710dfK?}Dl+2q~gurTGAA`~di3t3Tdi z2GCAHBoJ*ep1dR1;s*3x%p>;{cp-ynkQCEF(NL>siO6@-4XmXPjPYMxv(Qu#8kEcA zMdLNb!0)9^A@{h6v7AW9w@C4;16$CDK?=~T=yz!0#Afg^oFmThloTF`?;RB6K|+e& z5C?4WO!4&MXn{fu`pc45@N%M9Q^ND#h;Nb>P%rWamkE0Q>JsDqe}=nMaK+ z4ooneisVaCEG%Xpe;*3seqnb0-=Oid6L4l4aL}!6+5a#Qj4T$w@K6-Qi}7>JzOP3FtoXHG_1 zhi}9VMalYOX}#=qoNu=7vUmh3w;KAKRMq2PXC3GEPy6@n0Mnvik}9W&Y3D!B2|v7j zoYyZk>;$@w+5Oslxl{WY;q@XhP_-xKZ3STJG6jA z>rG~#P!r*lRy*73Uf5F@x4#AT{*EgU=0v*xO#ID2ug86!bDKObw~Kb=hM>#Ph+rG| z8t#I!ziNE=It~BFgk``D*Hq^zHusyZvUN(2SuXj@WH-A9n(gwtZ!VuRA6(D*?bz+< z-;U>+u9e%FH_@W7VU#w<=cU|k5zA2`ZsEfZrSsYA%VZh!A{cMNao zLt!6!`<>>OOs`HDodcTNiUcZs)%4706m%>MU{m-rMiNEfv(I z>#v<;u=;B0eVCxuA}G>BUpw7hOkD$0`$2ub8ZjJ48X&;-)nECEOSmN4u}bf)pL9H| zmh@3?js96E&22erz3a$j+bSi_{;bVzADH_5u<3EMn<wVYWs> z$tER<{lVa`gRb{sZrPs6+0=Jafi=8*)S=kW1N-`Wptppe`44ma6%XQ^dp zY@>JD&TRRho_!q%Ftl6ueJMpExKTz~Ti-J33?+Q%zxq3QPYrkZ z{%@zfwUl56rIxR3dLQnxf@{YQ6a~(bvKY|9d6J6_Co~w4%bjM32)Des zxMj3~da+D=0}Z#28ymOPbE_O8{&gM&$OPTvJ>EObg#t2e7XPa3X50NCjXLIFW4-mk z8GN2X&}35*2sWI5t1eXiAo4-$zotH-GyZy+Ea1K46a$Q*8>$rK@bQn!Tn)X2uuGwz zz0dQrBRu9C7aTF*+I8z-d>MX|*7r~rYyhO3;)i=E8a+0tOD^9lc9GW@8h$M0oUJCT z-oG7^3vz97q&xW=9?{u1ewn)Nzm_o)%C+CvrZiZMIQu#5>K_;IX5N+cQ$d+NXCdP@ z<4ei?vE;j_u$8G-4v?9&Tohm=V6HZ%%W2PQB=G#gp}+i%Z>)Onr$FrMw%noih`%ez ze#!Qi>}~A#KMI${VZ5jV+ogBJCqv#GxBCN=54};MTB~xG4f+WrZ%L;PH? zvwe}&)30XRaTn)zX(Cw{9rUWg{R+n)yq&CnD^syV2G_=OZ>x@-63H5FwID9bKpe@r z%1`78e$boY846=a{e|Y@Y=^CBH5t)z&#G~?d4JOzBtb8w|-fs(!jkl ztpN#c170g%a%!J>uGwX~q7U^leabxxBK&cIlF9}2Mo$1++|{&=y1$~N>x&gPIdRcz z7A@E|4_Frjq&=G^+ItW0k#iChLnm#^1&*TIJzxZF=)Yh;>b?}tzAvR-+{4#F0bO2K z%?z74*FHF!m!)nam%&z7)94)8Z=+P!sUb{r5f@>u|Gs+OuB|uEDz7tHZHzbmgaozm zibTzP9n|>vFvlJoMIv$(=`kpD;*-7SPP(`U|8pgSmwOSAL>Knl(3W|(ErCDU#s=rC z;g-0^>^-R~wI-Z`ehztGg{k^=7rQS`MAQOgyLUeEBS8&z z7Hw`((vh~9Z`B=D27)paADd(zLFs$eUk6_H=ng=sQ{3yU;3>lerC#X5GdamFTd0lE>Y*t`cIh z5Wnoh#!ILOVrcj_mpjf@f}nLK={85bJBCbZN$o{hP4r+Mw0C`@nFQvZd7XOBCCV+u zL4SFpb9LAhwb~web{qEejen)gT=Hvdx++!isa`OcYMF8CZ*pi$07{+#8qEO2gJDdO zT)tbv{qJ^eu06Cjt%~Xqm8m$D2#HDaC;@qZ~^wg@j_a<6` zSrSO9et$I@!4HtlYm1SF`WC)jeH>i!8sme&d^k&u77hKk*h&O8s3zd-hQLsQZ~1eT zoBAgpPtu2A42xx7uUu}_>OZ1}!1+V`TIU3n;Al>I-t(@kknZSU;BMoTtyWaq!V=SU zHM?Fe7rXEwXltJ9|DO0x9MLlb~OqIATr%Tn3 z|Ag^>!s$N|_@9^!_{uX$HrMbI6xa+AfFwv5^DQy5d^#>4;tS9ZX-L8^bb92+uh*kj zBUX1Nd*yoO_2U~sr`cgulBN)q>>QO|a%aXV6BH)S<&_g}9I0h$DUrX+z0F@?Dy8aH z4%PJ3@z+B6qkd94E@5)SlGRnaOflZ$0i!6T%O;2`=a0Oye3PJU)T&hfc`7A{T6TKw zVgT#6qo?~t*q2U6Uqcy|f~N86w25Ox&xf?p#wf z5BSJn01!1NEKAsUL8ZnJv5{@sU~M!3^t~*=C{73ZUV$WHbDew$O8Vcd2uZf#0+k3S z1>5$=j-<`Pp&Bu@o8MbM-fbOkK2l#E<3Ec)9D*m)oo$%Wk#Dp9T+ zBlUG)Ui@ND?ro`fD9cP4c7nd{J8{>?_d4qALgCJBDnE8?dOo$Ix*nuJFcC7iCy%w% zkc{&YWFhmB^Y2w0-NC7Am5=A|MUG$O8$vnm!~0<%hy{cQiW-K2 zkiUXNT1?n`dr9mH-r`#Zj+^0sj~iuPI@Z>D;=f2}6T(K`0rCC?oj>$#1V*5fic3pA zVUWB)XP9{KpPWJn!UiJ7>UR%*n|;;K)9T5(+F&w337y}cPMQuk0 z^+j!%p<>)>`9ftfNF`jD2I|0tsl1#TNls{R3e%{4=J?-xoW2W=INjls)z_cci%knZ z%1;%CO*3QXRHYl?m8)ysOx3OC2Dl1f-=Z8!e*ZpqcGk}?Yz2eg3_-@CgUrJ1-?#QH zyM*j+qlR3u)O;HnmkqzWxmzfL&d74-eS0&OL`!A z-?!|}@Jt*SkI1CyPWOx)U=Giu?al_OL}+2Q$oQh)qC{w6x5$B5nmr;1h{M-uwq%5q z_mGlv*>7p~B(eA~(Pe}}Jj(|r2l}zd<$Rk5SO>;wbHsfc2dW2{X+%PR?h)(ZTCzfM zK(dHq?AjDh%v%X8bd1^rAmv^&RxPCg{Vm6BBUUZ#7R9Z=UQC0iBUqH}1^O8f!E6{0 zmKTcnOi6Ko6$^d-jXCo(OL!UsaUqt}?U=4@ZPr_t2Lso}K);Xy_C&wrf%^`QZs|R+ z;!_yPh0VbS&6@!9TO(GSPxh@;@GCQYf!CMSOqwmR!%~?}>{WE0x)vFbX$7F4e$JOB z=b@ZCE`$) zJAL@|Qnhsr$REC9ppRctb?bc67y@<5NkrJKGq1tUt2v&McK7eAGW$_IZhJk#bE3IY ztw6!ae5h;Yn}A+csBI+@0Q{QVjs{d5K9DSs9-&ibXYV>09Z?U|WgpYKj?k(3sUM!f zY-#TNg3V#MfeZA&@GR^t^nZK$`P&1_F|l{>dNc!u&A*3Va%b<^ZW8L6>E<&$onusQ z2eOdFjxdZpuBURKGG;4KS1hyF2T@3QXV1a-9+vH+q()}P4~7f_7z4$Q+j^2~9Qce4 zv<}RKHDJ5>fZAqpy!Cm-g(7FTxr8F8xnT-K$NNk%s;9IH4~P*+js;W+Tt?6XRl8UB zh9Pz;?eHOjs(J^varqE@TYHINbC?{9dHbXh_+@vfVePRzGkVovMC5iX0!xv7%X+1e zH>ezMpAQJ3$eA50d%0jlBzO3bH|TDhpr)}~f$NXHfyx-;hF+AXw#wl&zYK=~^Nsru zU8xUOpPNtHi&{Nm5Dw^iVH!!gY@eMd`L*5VhOm>&4dw2Ur~LzdffHs~>--gIf%9QW z>-4p&%ygu>cIJ`djKKPQ+|7^jjKJi)zuh1}K(j?8@BIG9aJ)`#?Rn#mVHF*R`N#4y zQ-tc4GjF`J)`JCIS3i=o)`f*kH(^valUyfJu@k^(Gw4Lvj0#ToNFb-zEEJ-)lC&S))dj{k2A!e0m)HM?RXEoGE-KzC3RA zh)TllZzMb%1M@N6{;%|E!CUOt*e`iM-+GqTY^uASwrs9lh~lplKd`&VPDKtxXC0_E zQ$ao94?0CIBY*-e>TLNB?01s6_fG{J{owY=kdL3D21ghKJUo6Xaa5bRAbM}SIp|M9 zDV1x}o7zGr(Q3^+cdc^kQ z9vts-PwZtfKO@X1kcod_Xa9bX`82sy29imBVEYlB`hIHrGTYxj6@=5-1JRjw=G_1P z0*9gJpu>(j_9azf3;F+2Eenhd6M0nA7CA~zc0|G$pgwxLX3nN<9cqHAol2*aF%5;J zntuI?gVouUTQRb@+O<3#2oCJ_3Rr=Er%=yU#?xc<-c2bfb&mF9UCA|M4~K)_IZ}y( zsEZA*4PfV2H6=hYe3U%0dR!bF>b7sF#SpmA{RhWi3;EQ6E8l^z#aRxq5SDQZ(y2|; zL+}ma*Z&*kq6>T5sh_nB$99CETA>IUq`N|Vxk2ZIVO(V+!yO3D58BO}po7cev$Au) z^(@PyQIN}%g^Ix{OB}nEwl7ou8<)^l9Uing({s#{ApqfxGoTjqr}_SCw2XfO0%pQk zrufi7Eniqh6eHP9S9@!#r{#)aLl5qSbU&BurdK8~d7f#%ZH?}AwBcIZh17-&CS!E! zs~5+guDc2H-SSPg7vE7i!?398kf^30b~P- z1`Twh!asWw(A1ZLifs_PopHWG=yaVQwl!=A_s~~Qf?Q0u4lkYrer6YxMoz-=niYD* zK0Idr+Z!a~Rcc;lfiI9KmVg~zP?-iOJ zL{MLL)3vQY5$!vJ@|bhYh{dAONkim}DE4uG{CV;p8lC2VE?WO0Wlo2&mT@y&L zaev5?RJ>)fxIccI&0sLv*-8`LJwaM(mTsG2bOmN!N7&+dsPE;Tv=hhVC_3tuqM&xW zB>aJPIJU$shHq>8rQkx!XNWrwBI8T-Dac%Qz7Nh}5Y%&{Y%)PCl5m6|P|@>UeThtZ z#P>ocIsFIQiRO~+GnRfPz_+qWZE=-+{~DfX^Bo-hWyQ%0e#Ss05=vYrtoVhwfrtYh10@-wt`DzvD1GzMwB%o9*RQ!^q&T%-7qRMv&l{WD{MKoBN>A9FI@Kk z&VH|?q>A|nK?Q$;X{OkH5?1`CM-e6w&fC_l`^;M#haSes=uP^IM9e;mk_niu5PPJp zP|@QcDHluJAvE_{nGWM`ek7(=evaPZ^fNu1q8(iQF_?Dp*0qg*LATK7_A;=@Mp4<6 zI4LzZsrG5WZ;BRAwvG!#D=Va!9v2<)HZ)e zHMxGCiS&2}PbOL%Jk}PcSJ3a~R8OownV@_PX5;7y6V&7JjzcD#yWJ>_x{af+7P)RG zfcmJ(40-p{+fId!gNgByx$%M;dF1`#4(-QZx_|M)?(ttf7DUKB78*i_&|mB$kI#9h zGQR=#SvpPT;e!U(B4?}pwz!P9ba}Rtm`%Low~fsVh3@KiCcV$$x|D8?06}1EbREU8 z!!xcrjL}rAs%u3KvPmH_6`hpke=uRjRw2fO%;6z!+}vR2@aCEQYG#g}R`x={UKf&i z`pP^Zi4_W0HD3O}u8Sl>t z1;XfQ!UeO^aRQuuE9|h1e^~cQmbLV|^rf3%SI2|Q-2~_r!utd|`1?5D>h#fHAY$cQ zGV{|y3jX3mt~KyZxU-T+rrMBMlGViCIKD(a39~FodjfYNf0I2K-V&4PJcdbh3%Jjn zkSQR}=*Mf8CZuY?HcIeE@%XeP53YCc_H99rueW$Kvh{6M93o!ow}PHm*7Hy!XS+@k z6B`fH*Lq=og*=P??U2vfoD$T?bg%d-|a#um|-sbL`Q-PL$5=!FRKhg^ex8 z-y2sSKd#+yKCEy_eJKZ4sRgh8(j1Z6g7GaTJiQW)KE&7g`v{BmqLv5;NrN#yrgD6szhc zI#0Ky$LtN?UMjPfLZf%C@TSfGqWb1<^+dG>4ay*~I&z$@8UA$@R zE;NbXOtZ~At^}Qm&7#`i`=O&>v+@@q=xwLes%Kz~4QR3c5e4o|#_y&Q z1^ij{vXz?fLIvr)C}L|&-+hcF0y=N zu<;&F;Oj-`=+nrz4BKNoNd;aTV(qoi(G|#^1uY2^fFL=r(=^e@8;}L9Z@bSWo#D%c z;xDh}>lfNgh-aZPWc*|3aTQ;?IS>;zNE<2N3s+0@-+5VM1iszgGI{9<$GAs*WzfkA z0TaPhAnm{USzBL5qel|9OWARPV*IS1E)@Dg9hNh5a#p2?&b1BJ8 znx$%M13GGj`kmin#uP`)U`X~D1*4PnQA{>l5bzJ=>3a0r$4GQonUNHK$=Z^J2mY9X zUt^!8nobJUl4tN&lNJMoN)OduiZPfaRizKs44w)c69>UCyZtOatrD^&hjCBVNODJsmvMp}nuYkVam9+aqRrlc1vRXWW|6wwxK@V@dODa?l--i2kA^EbF@;f4wBr z4Rvr%rh0$sOixAq{mM!kp}GXSGj5Q)<0?A+*^&E;PwIKdDy7%B2Zx&D{@a8XzT?jU zHBS>va}qW@0_0QC?x93-FY}9jW}^;<79a0O<6!g0d=ec^{NtGhCVW`RC5=I+`(Gm- zXD`?%`tD9)`c?EhZRGhi9U!lwrsOGVbGvVYap)?0Mc?AuW~jFvkPD2rgY>dz{Tir) z>c$rGLMpkus3AO={~5Xt`0ShgTmR|n4w|8kGd(BfY$ThV*2grmL8$rQc2bzQLKGQYT$dny0AkRrK9RcK{7bo#{6W(JQ=A;<;D*vGn;!=!pbRs`<_>t>A z>_O$0lK+#>iN*=P!Oh{%z|ZAe7<+j&SZnX3UPnBJAFzGGdNeNc&16e;VnoOrnCv&W zh@gVU8(w7J?M#^VKLf=ZGG9)$6pc83J>cQ3fX%YR1Q0=aNC)6z57*y(!V#@}KYkn1 z01*{Cxutv=cLDM=A~8G8ilE?x***8ZR64AlgdM94Pbr0KxITJXEYVk(K0cdMrvP}6 zW34;A5hU$AC2NzZH0E=x0nS>p@<8!01Qsxg?&b?JC>xe60>Ab9kV`3tMyFfg04S*b@3&k zy0Cf5l{0&i-VR@Y=H$X4=-ER>u!BBMfY{IP`>)-q?red~GTI@q9&w|6{9iJ}<(Oei zkwPzC5YbuH#hSa|Tj-o+wm9iu!ey-I4z2k*H$NeJO?2A8VjYH|VeOXqcJfSyt0aV} z#ev$fIJ}Y{go}coUa%(VVEK!)b z=zFf5u+a*ejlwWe)AOT`-`;rjW@;?vBF#v=w?SxlUkCWU?_8tO`344wMgs3Kfx*y-JzD?hjhev(gZ!1p7(r6ZGaSE>Oy0fX z-mXhHimB%@F1MC5n=^0cm%03XMR&5PZgf|Aq+qur__rH4>@D7S8G+sdqQ_2Gy)|7` zV(b*Z1LGPTaL3tI(#Ry~7{39oD4q=e(Nla7oag>~mHyx81kRib@`2tIf2L=|VlxZ^ z{X^#UZiqrVS=_ke@}Utz*sz)+@~3gji1PbU2!HNM!Ft2zdxu`2RR5r0|3*xZF+GC? zs}nF2g+khuke80cjhH`(@;(tS8E7wUDIn3O5(LMn!uD;SK;WOMK2BM`$lEyU=d3z{AlrUx{yQaM`J!PPlkgsSuU_IO|H;0}Ne` zz!g0k@$Q<90Xq}E+x$Yla?h6k(tbO9q<@^a3%UXo?xp;+?ZsB{h@NCj%FU8k?%t5C zN$28Ow%rc0S+J9YXgir?Tr`j*E+Z29qaKJxt8yo&`DkFMxL8bQY0O&m3wVnk(kB z+hKJGO__mSU{)Pz$U3M>wrdX3?<{%B9SN$eDZubHnymmeDIu^QPNSNvmIx z^kiyM4HC!n7i4U!vg0mp)~sKEfIuB7cta_tQ5>@y3In3tp`8ghc z+C!sD28#WrZ3RnpzDW3QoVVsx|1XN|Q9t*)yUk>}0TZHlQ|D2>x_ell2q7wN(X*Cn zjH5!^Hr=Ykqma|jB`@gl*l(-JKwl%PlFq~IaYj#Q9GKFI=kv>Lbi3odB9z+6p^QOc z3#U|xs^+Lz0WURu2D8*EH_d58BJ;*s?;*Ai>wnK6YdaIMoQ6=U{fU7Qqm)s6Pv81T zN4^T4-;8PMr_=G}oG*v<~T>vPCT|`$5`!RP~u< z;?Cvazx3Kk4@8`|R8dBmSh;eJonGCJxfst&Mj7uYpx+3+YhLE!Vb|r}*QD)V8(*M2 z&taBhX`KF$c`IPrTQQ*`VNi5* zh7SKaP)*zub)b6830d%%@&}4+J?L$^gBm4&R`oBk0PuKs8g;xlc|DJLL$22>LzDhvvkmsR@8X)^^kp7EakVSA9?mk)14k&h zU6d})tSC>T#QE7{qBMo94Ikjot~?KvREQm{fK`5*_VgeOZ+%4=>Oyp&`!WJj7VK-i zw*Bo(x-T87QqBnaQ2trzq zeGU1%>48P9zeXgfV!Co0m}k(P zxi-8Zl1y?Pqv*Dn5KEpL8B3lc7mE%9SnIttqId2jQd+ya+Dtpowh8DzD`zJy?fj*Q z@FAdMoNh@+=nJRKu-?UZnn>lytnPNRj*4n9_>MR@GHUbc6JMGJxpreI+4y^YeLbEa47GXzi{`Go zc~0L8UEljnbqHO*iCnu-g$fbaqRoI{Ri1M%acqiG6L^MN?sfMq%EZ2?w$)G5G=!2x z@!Box?7zuc#z-WM5OtZ^kk~0MF<2rlF>Hn{g)?XT){eDEUu?}4Z5}ph7`DaAZiX@A z|Exwt?#<=;Q9t}vY!-J+$Ml3D2ks@agypPQruiFT9Vgc?{F`BrEJd|pIGmwJSVsa@ z)q#o6JzeJMMlqn^aJ}hiMHut4-o+$9*u9y`hs6r=NxKDq&FA6^&C2wWXGB=k=kvZb z3}a)jl9^nnCyFn5dIy=rEdNd7DN$0X;`9;JpS9eqXAI+*qK4P5cj}RVP0jc+g}Lfu*}4xNxtYd z;{mOObnxTSdC9@>r#7z+0k*d*T+`02`j)mX7WXO|hclX zLO`n!dpE08w9K=QEC)4;lC;Dny{MIEhDq7*-^6^lV#ZLS#$-^D^{O%z`{;(86~^<7 znnaK02b_}?N#}cJ`Nj%e4AB51i+79mIt6cuajXEmYmlZjV3s@ zg^lOA-1{5iCas!;jKwCR=+w{b$L=amCalXue~H)8qBM?9SxDF&m&J=e>uv*D=#K0C zKn>2ZV1S0|cqK_?0DoJEnCB1^1=^3m!>l2I8}ZG&m4abw$d=|0Wbk?hbmttnY$HuD zWowB`d%>&m$qv;EVp|i-=FevA->)M-h*z?pk_3g?DUB03k#2Q7{sdhxKbx zAs>IjhQ_ZdVo9}!31VV3OvUmmGi8U>Ol5{^>n)e)s$;L?BuTf)h&c?pm!ltirr;Bg zHS(yxy0Cmr?Eh#7bA+zV@6-z!L`p%+=FK{f5FBa`A|sw!Ddx0%a0_Er;SH8+qY&$R&WoFnj2xpk++J*Ow%&A&?@#8EK!q@HOdu z82CPVFdGR=w(%YBgiohl?5srefqps~?Nr$vMXL%^ybP7K?|lhqjUy)7mGD{Jf%DUp z8SlMA#wKQ2s*uNkkd&i4T%ciS0WKc2p>#)I8uPLKaqzuiIJ-~-@Wr@kJGay3k4ant z@hI7*6yp;?>#g$p=(QBjsq$ajnw9-$ss?F&t{!3DRY(xJy8VVJy^n98Bs!k;CFd`k zHPfLo2%m|kS%?IGMT6n+`Xs4$KY%mQ>VC?PNKryTxkvhr6v{zW}aA@;630Bj1 zb^xjx_QOU3nco(2zyBU}0cuEJT(sm5X!Q1P_=hkxdo^3V$C!|eDC7a3(u4DZCT z$0RU^IO7bR1Z@JcWiAH*sZTY7n0Y2++ zI&**?w`@0{py-T4Yj?A{@e{YiResM(En~6^MollKa5Fz?$*Ytu$jzo&9(Xaw#9OK@ zpY(A_inna#_as7^6G7bF&Tf#(w8bplS3tiyCv8})z*;&G?f#td`wz$3TCmdq+mkXv z!I1EebfRgsOXym2(xI?9pn|QHlp#~6kmY@gjLWR{A!bkU9V8m4(+>v>lT5;=eVm*> zwHCt<&@0++)rdYpUkfsC_duDq>!Z=MzS+~AVX*$IdQs-9DPLc>%6AWW-;6n+;jf z%6f$(0m(NMwScML3459Y0=cA3OqL5+Rj9wIjgT=ryPcD+QJ=^zX++0i=AXjVd*(&Q zDw>Yy%c+6~KQXKfg2^%EQ9~8xMg;d&_Oez*w6Yv}Y<%ZrnMGq5-#e#w+UE8J)AP#j zBkp;;x{ubYrPHB8g+AsL%VBHWC(&Xzns%1H|44W^fww+JW5o)8Djk;nD*l6kdN2uY zHjmy0Jks){Ty)3!Z^PQQ#M8X$hmnTjbe#TFHy7lmNB7mvtECo zdXOj+Eh71zM21dapHFCoD!Sm7^TNBsj9Gk0e(sr~t^{HTpZJt(itYjmHW7+Q(EYXs z6Qs1c+cfQf8;h8trdonesbd5a0yCA}O`g?rZkT=N?R z)~K|EdJoGYKgJ@lcwZsgU5^k4cI`i6a*sSG5ihT&%7ErMe#y8*I{kcP!89Wb%+o=V z$e(JUY2T(S$t~Eec-ipdKKON!n)5T5B{wm$uwZaZoz>+ZP>AxJM@n1dU8J z-B|WEvPe*?Gb}C9Oz~o_tsVZOF+T6hIa_hp88Yj#BPCq$P@4i}XBWXOM8pUaUZL&x zb0D5$aVBn_r2|7l(J%Bc?r-&B?xaJ52 zg2p?nnu9X1m+H+;Uwk2fWPi(s5M>RhCc=h9oPJ`!cG_XlgaZL>;xAWa%#*P#$MUTj1AC^cF3o zD?s(mdo9iuxUZl#1@;0^JoBLy*-jQ1xK{UuQZ4O2wB(zIu}q!J*hF?({WA_@%i6V% z@S2{6+9t{p7#~gw53!Y)kF+&+`1`s46WLSYcbZR-naw9wjPnhPO3Rc;Aj3oorgQq$ z7B-@g?&wpn@95cI6P`l^ik#H#xzTA4HtQ`7yYXH^^20$3D$V5kIBp*#5!-G=@42W= zXscX*mMPc#73vTl$MWSwW3~H!FT`n~{&2k3k!lqsF4);>LUDQZxt^9O z4-B2*mrnVBf{tiVtfU35J1eXTvZSpOWe~y%%3^%PxOv+L_sIUT>p6of_@OY}OB2q> zRX(%t+7s7L`^ZQ~%lC*bSFoZ-+!*YWMb7)&)W%AK1ySe|b!2`KI@FkX(tfNz|2c8(mnmvGHU&YY<iQ8@bFa%?^honE$=OefmeHLC)gr;P8fP4s3y_~;4A5eu?X8@8ffVH;nCVhHlv*}|`YfNk zOtpl3mY3@7`WaFGWyeP;3HTQQc;t5C{+&LFJutw5s0xCt?hk}Cx+cVP0MyB<;tp(U z&|wC_58gB;9sQ)zpN2CgT<(iIz4%poo3(qJE}H*3%n^54Mb3u>9WVmkqQ_#qf)TD! zSR%m+Q64~}0UHvM0FM<$tnF3gL?1s{`{C-~)l9L07Iak%-4u*HwqTrr_xwCf@|d*4 z7iNs>mf(ybW~o0YNV7S@);=G%(NNFl(+F2NT>h;NXfU?0>h^j9@jFw)1wJB+eTu}t z9i>r`ET{LaWqcj9$K`{U6W3=wFa)s?_^k4vJV3u-p05It^pJ7%AX*jt;1w8^we?Jabi7pk(LR2M=#bhQToWpB#?_skpSwUl- z@9TjXyncTiJJ4*oV$sA6B`a5%Q?y|=eJHCggLCg*MP>EDfQkowbMl`B@9@7*MBFzrfN=>nnB-HbSqMi}ixLv>-cgOrby%T}V4GDiGKWwGp?nJ(Qh(v9L!C z_Ij(%Fa8Z#(|L2c8E8@Cx`#bI4T$R(-(ZC>ShH2_9cG@w|0DS!mQj(+@Fh1 zbC+;5@8^0ykJ~dyjY{LXtCP|D4eqJ#Huq2fvbB=ntP%UyA$R4c!S9HEO#XV%JdSX2 zm2tRysb0(u1*hzKbuHQzZfmv>e!x;y-t&7NdodPS7|?^@X8Tq+YP9O)k!86v;4AC{}hjji)GXTCO5W7f7jO>kvKC zvIP58vjwTtvJVq9>64{0;PK)i@uEv7q$W92)LGIbGXe&z&V~pb796v|yfDW_UOJOE z4~{cx!z7t?));+{m7%E}j*}R;X8JCty-GW~^ zGf~7YyNo#dhf5|&x?EqS>-7Tr!&m(IHP>Bo-bKx-xOdF-?Xdt|cEt0$^&5YSfq9qa z#{00h9c>pL_lS3d{e>n@-Gz{d`n3*WC?<`(O4;CJ+N7={-Hrd+XuW4nclzLA zv&5qdp)kp63yp^J>-6u_#@tXSAE{u)8(FO_=|Y2gB*Do(*(!(qFiVvrm7L~Lq{v_B z{lxHB8g0IQMjy&~F^)nSWvbUdvy!DcmGxD<51@-8K7Wu(4k9HJ);J*DM7fu}CBAZ2 z#=bVROMb~%a)K}JE`08(ZUKF4fE4PEFHISIjsyK8MDa3wtGz8nR~4x19Fus=sW3I=EmJlvtrh6 zDehm;tNd^IJu%28c(I^e6cXkj23X?MrH~T>R%{gCu9FCacr_}39dM$PTlr71&;J8Q zK)ApA`JX1yUA>6%yW({hO#1egz@gN;=8Do`ZK7Lgw9tOB(TZ+t%u?H_*mUU=DDwRm z#c~fF*XcH5^&0bKE<|`rGw*Z_t@xc(wKNE;I$HgFk33rSWmSK^GhSEgS5+MfBd++{ zdQc~j4lTodhWFIU#lBL89nXEz@21)OM$l&H52$^_glbeO%Y#X7V9}9ucRa5!ZlPhp zklaU&e|V4MANr{A4^ZH}*ueXLKdJkl@A3ZUPn!MD-njqy9`Aql;r&l6TKI0j{%0TB z|LnsDUk_or*9ax!R_vm?gA!{E;3o%yo;WOEx3_y?ZYf$J$}Tec&Y?LNeMnl^hjav;6*}m5O_M&qlaYopWL4axJ@rtJdA3eK#AL|6xikx{8I{&2Je{l=`>jt@ zcCxw6EuyVY?C%8bP`gNL*afITvaOa6rYt&rHeQwiK~7JYVA<_`;F3Bkqi*%ofAQE3 z^Q88PXFI6b&>V?;En8~61m^|EZOJxA7pF8Vxs!hWFeGtDO*u)Pku@WHo;9q(2YzeB zqC4Vsc42CxeqB{ZwvD8vPwX?76%(fydHb{7{26D8=zt4z8rHL$q|Z*Ku_VfLM?4L! zse<0$q|ivRdC)ju6(J!J3;8drU`~w00WhNigXO3sEioF+F}$u(&HL1vF*RXLcEH1P z>O)N4=KY7S5p#w598)oR&5fUX)aRIx(whL!6Za>2ytgzatWpUv^PZQz1I=?ueU8}x zy+<2AuU4O9Dl6}1nq3T6s%WqoQtuyZyc;j$eGN0-Y1+fdcJM&eCPwIP$5i(AbJE^g zC4$1g|J4M2RS%i|f3-e2JTUW*=+7~Iz4V`2Z0G^`o0_7ZqR1aw%bOdT_`{~?rz!OM zTHYN9MQ@|kl0Djv`L`;))fWIRG|*f=&sCH za{k<1J5aS`0tg}PL)`tM5o$N?BAE+$YM$P%#eCj7{l8V54&EuXJu zt!6zOI~ImXtkNc2mlok!KIsKcnwK&;e%A{h8@lzx?+fUa%xavHvjg+7u6REZ3RA@w zBdxd#Vt}qErM-c}@qLlr+ts{WlUTJ)zk_P2ifUx6NU7jW80({bf$_{rbUL2aSBS=} z+vDX<1};{)rApp)ah<1y?OYEG%!~ME5hh*XSK^U=%SCAE0Ikf7u81bK1n+H@I-bBw zcrfoktMy=v#j${x5>D8Msos#$CN8eVc`J^R9mLL{p%biS$iAJ8X%&uO5XQH}CRnPh z{%{st(8GG9hvovG;o~0a2F~*CibqmG8XG?Du6QJcQ~<*8v>%--3Qb@3o#LCkn@fYy z!teaP$-}@by-4N8>D|dU8H+{N7HEBwEBK5!7y3ifZ#vAIbq7Ft*djSJo%0id zNoOv=X`vn(u}LVihWVtO3utykYd&IeoqnMk`okvY=`e5$N4g#P;kjT^rzczv@wW~< zmvx3Mbc}<6%%d(GQu6V_!Z5bt5C+xc<0LKNcLZtJ-v+OEb`Nq~@uePAlfYqGIQi0_ zqxWCT;HKuk4v{qOWw%cWeHrp+N#kln@~VSt@g}Sda7N^7g@gB#xorD+A$T_|%e-j; z`7i!7|62;B7^$Nx)O+p19&?UsFL(!z8Jzw6VmE(wYW$u`$UGqA%N^<#Ek$O12?-|mLYt@j zksx_lnX>;J^hBS%P}SpD_rP5fwYFj%ZJ|(Qhqd=R1SHgP+E!PmeY6^u{pCTCk57GT)xX zh0JA5?ucgv+E02b4rejLqWwBbjvyw%N~Pm#v}KZ5hkGA`1R9Ks_UM%C2_9GvdcAa6 zm-eu{Kd9@!9hzpOY;kx?)W@qek8$D5D`xK^l_0NM;3fdC{=IXqsq4YokCg2kRBrOC zpvoiur`%S{p?!AX|Q=`3An_+ThTFuZm4kXidnYKlv`^YeRbGThs z`r3gVCd0Wf7^lOayv>mbP6cLk6=QqeMvlh&T{T}hz^!^3ZF%aHhuYR^&WBv92;#)_ z>QvzfObIYn{c3?1aWC!cY4bvu#VF&g@d4)*&m2(Z%}4oFO*!D7Hxs(RBzYf|8#&++o;ykdKocs|D+PE(g*XPh#}|C~bw z#c|3Ue;`MrI_{69SK-N4Vx8oD1!uzNsIsiLKI_@!NZSXE5$zDmPYiCVMZ#qO@1E_MQ=k z_MRRWa6Xi^hs2NG1(GMfO)(h{#L2rnCbswZ&WgPq^QpkzS+RGC-xTvdMtNROp?a=1LT7j3BPhtk_*h7 z@!JbS#+ucc4=SYc{vYXLkXtyG3C6SfQ8l!`7Hzh6Us4f9m<^MLL}w{ ztC+W5;YF`EV#cNz8b)LzZjDUP)7=BeWS6!3I%;f z3Nd~8s~=c2ak!Xf)D072l7@?Bqs}RHbk;YUIWtwXB}}*CU|vh(R$dV|#fe}Y{@Khb za>gFPJ+XU2QEU;`q%r>2tx>Q zn}hmBrCf~-4}s)P)U}0bUc0N3yI3V&3)65!WUI>}Fd({_Uh1=RH8VT4;=fHiI31Bkzk8OlM1D4oP|lnhALoH0z-4(c@bBKo`eUPRf8v>o)< zzYm3%T`P1t^~07~ahgw8HT|6@cT~yGwES!+*Qs7=j(-=a1Rjl{M>vN`t>~i=9Vi)P zzz3~JIwr7x8C^qkQmH2Vpjw}x{XG?g8yB-GioSpX<|fQCCLGh=6U*v|8L)WYM>r|( z=Vf+41d}ng*Iw@5WRo+po{PaGsxNoo4dI}Stlz}o3L&<8IVKCs=pfs|(4(B1ia+l& zlif;W$)SY3##EPgBGrwmF#KC9>?tO@N@Qnm2qEk~raDMel{YBDjx`ci#AH=O_DLvV zZ!*=FL^Vehwyu$|*-W;Q$kIazOJ}NAi0W=t*ei{M-OFT7B8vLH>k*DFbrM{J{UY8=T# z9=o^(T|$$bT30m0AR|w3zC$dl70c3-tl6Pz{3)8Kyk*q>^@{qZ%L3IeV={@z`h*hp z5mRj^sz_D+`5sdL?Xr;SPmK;z|3Q{DgJf-K7ox`gOf`n6-f5?(|3D-4W0`Cuk^Lu> zu(NuiN+7D#c8dBHTS@(cr6JYdpbt`i19n)t5wdI7(4}ZE2wTnM}5t z$kv1smcmpyMD=QvqJAq@|Hjbjw+vSQT04@JOtOZAs__t0-AGiORP}Feq<$fjbs)0y zZ9@oqgQ-q$N2*Q7>_Dk6I>l(2qG^(9f++bHVq-a_gh@q|?WO4}gy&$cC5nItPLRE?EPl|ocUm9LZ- zhBi`vIg=$3+4|NYgk>|;4Mep-{h~?~tABH7_3sZ>KZRxO^q{O^p=!LDsTLDeXI1^h zoWv5ts&L_uuYKqZ?LR8NR~5HjZZLDGoqTT ze2^rzz6fiKiuRE7E^U;^QZ+;WV1|8kEAn+$`8>>baVzm1Y8}MahWWM--)ZH$46!-P zcZm5G1oItbJr@&Sfyy_A`L;0Mh+w`I%=a?!%~kn2G2bHQyWT2@Z#MHyBR-4DS6xVa z^O$c#FyH;mmr8t5DqlYHWia2dV7^Y^m@~XTA|3>#J$avpexEQu%JC!9J?P zM&dgY8N}C*`I-~oRFyBD`69T!)xmttnXeh~^;Y?Ka*1jv;r0@&=Ydwl_ge|If8{F@ zvER_B9`y_J{Tf`~r_6Vh_=;6NiTS=S38m+A%(t8PTqcRaOPV^e0G0* z1;qCm^9>2+>%e@^5MQjyx0vz_iEjn* zrK^0;aD8_&-_yZ-pE93|_~KN)a&Bj@FyD}1zUP?l-^BMzbA>OA>)X7A_*w+>4QIY# z#J5W2o51y%WV=KJw@>ElPJCG^-y7tXMBUHzeH6_1Qw!p|z6JS=D&I-&57(LR>0rKf z%y)wLB2>P3uJ7n(Zr8zlPUhP}d|x+H_-1l_#j;(3`NlEd$HbSX@~x$bKk5mtZ%=p- zUpMBPLwu7}K8g8W;QID7m-+nP`VpD$QR3^a@~vUMdLDO|2J=0{d9j5TjV!mFi z=Yn9qJDD$%_zG0M6y`h3^^FMTyBa}!-*2Y*PvwhbzVuDR*C&{77xS$rK8wn?Z!?d( z%-15A?*rz0mH47mzJ<*94f7pq7R2`i^GzncgF1z83iDMk--ckm!OWLPe2e%b5C6cO zy1g~HwQ87ty(@3!wQ$^^@qzLwey#nyqbHT~Im|ONRkDhcF{b34P0aFtS7ysPQf~P^l2+T$m6-8d{>3Np zK;m@Pb~)8Qhsmu6s;?WU&Yf6iZ*7>|UBFWFW@fH(ewQj7;xIJ&?yD78AB47EZdpv* zjku$Ig=~|x7_sleFp!UFYnq}1)AN=4NH#RAQ0^NOogbDp5_B>7(h@q6fRCw>M_ciP zaa}WXO$XUsKF3^&K}$>M3dEVY`0EaYkiLfOQFA-ng^ss;nYmC7rWm!4Op&~r-_w0F zIUwIA)Cb)^aL0bOk%(_2=l4gDB6Xa}pXA}^tNHnr-SpflSQbikGiZ-|A%$YebcUWA z@t&@iHmM!=$kELozJ@#5+Y-XEYD_!B6YvSW!tQu5gdf{XUno6|+BiMEtYZ2? z&?*+S!iz_41O4n-1{jnt4xkDz0DTD_9N-_v|E1vnAGB7zYxi~3?}QgK$mRmLi!}8b zMz2)g--ImuBoRd>8BfZH3xekYa~JZZP;=^}zFScWl}h#B$_oWcj7i z8+k|@KjMz<&(G5f<>%5t&2!9$OWzEr^zMW5bmy5~R$*VtOV{oAjqAun504KvcT^Ub zIz_*sE;S=&?I?HK)+XO^jIZchnYiDZcTl~L*0<98u0wM#uA{yrl0N1=5KLwhU#_Oo z*v-&X@#sNASIBhn0d!&z-35I#jpEj+i%1RDbgjy448zm@5p37{(tq)V)HCh171;idq(b=aWtwpC*2 zPPO)aaoqp}g>=MQ z%vXrrxpD-7b9=N^gvaR>>ZNVvK6bff4gD*)U*gkYK2vs)pmIyTOthGZTy(tbe10Mx zMB&ZRvEhkz)@>)i0~^-Gx=jkVZmSOWU%19AsTL1~SYMn%;RvWvVjZyk2~!b%ctzSe zMGb5b?+drO!*|f7@1|MSh>wP2l$ISYffjQd(9br$Gi4FZSnwLh5(H^;8~?pt$s0+r z8D^nI3}1-8O9O>#q$OBw?(iSD-^YBH>HKf&cKYm_pcOjnZ_&@kNPWSRnh`$V7FI8R zM~h?bF9CTK*q@?KK=K_{F&WxP9!GBE(XsxQ|MB^p^)Q8UsYs>z?4Md=>;p%lK$o%! zhcS49SP*fZVR%*DGVsZSaQ*xrC@hw57zaetDfe3QxQz{)NUk4#-^(oi zH{620&l}|Snu>AEw}}O0dX8AC8IpUcym~0!VVe_%7n36~9LVAs=}fNHIbu@9mf%bI zYszT_G^JstfscgG7@8`Mm}nBdALdM6eA7(t$c(m&F;3*b$xG$oy3R20Ty}hh?*iyY zis3MTBuUF2_4$x@W*Obvu;eQjTNld#R8}!7U#fZ17ksf5=PzorqG^h=zCA2(+F={$ zsLxJDo$ABE5pIVW6qo(p6;l|w9;OXWVtHvJ4FG!A`A8TBEJc?KW#h+gGjbnD)LC{ybh4WGI*p_1W*x>$Vipi_mA! zm;VG?t${ZJT6;!{F(*cf{f{SB4)euSd#C#Ezhk^%%y(AjAb@=E8iw2iw4}G7$h)?| zAD?KcP$;a_8lz>xeBlS2Q(pcZQIeH(QxoR8&xWfhu{Jf&sN?|@%D{{XRM@JGqvF&-Qc!PCdd;QDD@T9_dC35C%VpQ8p zUH^~0Z;y|nx*p%n?vhO)%z}x=N@UU4CL)?xqO2j6C0Ut`8{W~NwLZ`kty;hhpvcSF zB}|9Wv_eZ;wAfOM@2ETiDr6JLCQ%`e@(Pxx!VHVZLlY7p`#a~{ncWRyzy0=)-|zGL ze3H)xcIMtY_i^sI=bm%!Ip<zW9F?|BWSE| z19>rdj~jjnPnk0)qXVyAzJBI(V9rQm|J1)ew z(}PaNex%HPnj~>;g+y2xH=XuCdqHy>s{UIN_FQU5@6e%WPcZcjQX$I{7;V8o^u2vg6he~ML4Xuo8C`_Jg_H&6U< zm-l@O^>%(2OMl%GN8CWlgWuQi7sl?Du~gG5-bOxd?5JfhkF;`kKlACs3bZBlVy&{5$4;v^-Kz4=&z+ z$G4GISYVU6I1v)3vlrTTTVu-r1xYz^+-}f4y~}RUV=+l7UqU(+f~|9hUV!sevrbGu zA2X)CPErSX#7>ZfmAmV3X;5H*S60NxpgPF1l&en>SEH7njY-xZp0YJW-R7m~)1qEL zT17IGifbYtWh?W%tghVH2DLfr+3s)IRAni5)UZ#i|E`ZWJj@CmIdhpl+W&WbyjrX4 z4`*UzFj_UpvL%Ax0H~Al>2a)-KGLgP7uzYZMyX(IF*6O1Q^%Z%=@hl=)bw{+)8lQ} zMUS)uhpt@rb&szT&S>j6r{S1gzyE0>7Rjl`1a|)uB&goAG5(-hgA1#eP~^*mOy?&Q z+3917?3Ag|7x92{Zh{`y=@%%=FWSoDI(=kNDUswH(1D)LhH1xjlR;5?c?EbDrHIIAh#oCLc%-g99S%oDYMXkP zf(N0meo-ZDG{wZLdyD}RnT$1KWpkgHJ!6627yQHfC{)jVKBsWUv_&2X_Q3hCy%51t%KAjt8AvIojz(z( z=l_o3olY-~UXEU9J_>q!JC1(8y?4+5V0)E4+Vl5lZ}sKdV_W(s%z5n=HT@gdqI>*B z^`lQ|t`8Jy!!7P4jVUw8cLO5IImY!-w}Lv(_W@x)ntDC7(GWHDqEocr>v>5R=-fJG z{Klwf0avnW}n}vwV)+Sny*_5WviyZH&r1j)F0ah>NPS6<+Zpk>buyj+J=)2?P|7hVxFLU~-9@9_ zL&FCxUjjPepOkkLo*GmhFb?m}nL~RzQ|rokn~oueaKfr=EDDDiKo|W!2B3JZ1Vu1@ zK@an_>=u^!0%qD!zsrkF_ecCX} zv^_7txo>PZ9Qs(pM+J4#x;`4i)#m*T5L`Lx3G4AIuB0nXVid_t@4gwG*2$|<5sSjQ zKhDFvJm*Jv6t^B76pd{C-;K%;bGoz6m1=~Y+8IPEH@rZ|h0$TyE$i&A`LdBx-u1M= zPAXT7C9QaoM+|9~$S`?API-f!Z@*MQ-zqbw0DZYP%+4$?-c5w4f~-_>#=XaijKd%<763-GsRdy2qye6^4s$K6? z@jd^c=w&ZX@msp@Mf>Usm+#AhB@bQg5vSX{eHPA1HI)76hwpdcFZBbWOc>8cKqnet zK=;23eDp6$zIUHE#gB1|7t#0j+eviHfsVB6aZzeFI!Vu`+msJ8*;9$~ej)Q4orYIA zw5RD4oe#OHaQw#JHj(8mbIlq@KRJCbL5OhH}Xk6m|+j)k=%;|VD5<$X!(Z3q^ z&2s1;`SsD}SEqX)mkh%cSh_@I>1;-zi?*mH=9DQc(GmdXY5k7yOnqlHbyYyeWpeCe z!q_*Egt)1sB7nsF5{X)8?zGh=e(E_E4_7(o##3`zTJTN&L&`C?<|oT4A&|GaBVL18 zXnHUo$)!R0$c?drm;a5rkUtH3EhXK&51GXLhnBp&iblzUbie~0w4z(5VyMBeiCU*| z3jGb-iyv8V4wju~&fBi+cD2w*hbH>|kUy<3XjT{n=*A_O0E<}EO;ea7xGrZf_L1}7 z1A`E{K$e?F25>YI_Vwr`$r*0hWh#`Dzoz;{au??V2Vw77UP*oPSCQOMt$%3Be~1^G zdDGn`qq)t=8GsyY|0W+vrR`DL_Zi=6jJN_LCrVDT_%$iL10)S{^;nHTTEPjK?^$}7&d9Ec2n zvlo4LiinMJT%^dr;{S2lAB@wc{X*PjrXAzL>|yu`^F^~RCf94lAcZFXl1WxBJQ6#* z@GZ`bLIx|RjTn<=Vq(lh(|q~I6BC;iab38%ZbPKth&dpFQ&2RB0U}kO7p9w%cfP zockU!clhlCb6C(`G?zha6RXOQh;Js=91GFU_@im@P9pH;8*N4x4`*aDdN}yqGcs8;ZhwkU=Lfgns)j zXmVvr=dK>*(t4KrP%oD>h00mg*Djzwjoe+8ofy3{NaS0SI*IRJv=z6Mn4`UlXfTF1 z--?F#ME>Hw(FjJWt(;*_f`pheMI(PUD056hc9H6%sTQhBOMx!1*4zhzCO#b^9>tp{5IwQ&#>a5-1nD znFrle_tS}@Wh0=hOKdNknq0}t=D6@d4T~~RMu(1UL_;c;q-aU6N0X*&NiRo}R%uBK zqe)A&q^F`uRa(-0(WE9VX-qV!L`xbTO&X;o4Z(0|^00+(!=zlHpI_?yNRe2l@gg90 zoYjK$Rgu_?#zKtU`kfZ`5Yk=sXtY&F8Z#zaasGnHl!~E_;#Fukp_DptVkb@a;2}2BCR7}{ zpcM+EgE79HTTBLK0U;JwhHeLZu)NWV5=G8^Z(!fioHT26RGz^Y&`u#}bU7X~bBjxj zY)dQ<4@$`|2wiEjx1fz7Kn(WVsr_E$ji=GPtAIhlDV3QqmUPPCHYDS~jXi{+;2;&Y z4&X3(ia;$PIfn{867d*rDY*_m<~9#EW;ZDP_Tq@Tte&N{Dc780 zVb+J5v2QNeyXPdr^yRY(VD@dweZB-9J>akf;Gq8IV$buK zqDssw5W84i$<1_5QM^hS(uSx3hz=hWN9+Qq{vxQqix!Uy%|8!=B%a(100h4F8DM_; z)p;bTN?)r|at(m24i}MNDJcIQ5^AxE)wl>ubMV z0FY_e0D}eeyJ(d%1qD^92>NZL2xl?h*s0fFqWBnZbZ{YvxYlJ|?wW zPu&@tx~7PANKe31tI6Ytj;|p>rAzq)VYw>yqi2d@UVc1It9M>Zk?a=bRXzQ&^D*lt zIsqq0F>cxY83DEOuK?7a#sc-WTxb>}<40Qh%tKhe2C?3D9`%dS(8(V8srslw_cInc zdFw*h_?Pfv*+O3W<3iemck@9P?)>aNZ;Eyt38u^~!=put!cwQ5TeKIXTa7_iMI0&$ zgRT{XE}AJN=l_toykISIaRpUlcZzh=xBmbmS@p`5CnBo3TcP(W0Q)U~W^Q>NYUwU6 z)UGS-TlneH|_`f z29w*>NZZvjuOZiPob6ci9V}qoC@M+2swq$T>!oXt zgX+|K!i-Pao9c~P{c>3)u;-fDY|ypV$YzzSX_eB|81=4rZ2{~| zz#Fc@ecR=4adOM+TrfwXYX#?vXOTu@Cw_!B@sy_?B7X?U(%C@$X#{v~x-qstCDBh#~681?ao z%N|qLVwuSP%xyr^(kpo3xKU7y{0csy2}q+6aEKR8-oEUn0ux=;0py;q~&kous7g^uW(@Dp`*RKLq@ zXyKtF&>g(xAfbl*acB+l;uWOCWfes9jlwt3rPD$7rd%E>6V;rcgLRTE1w{7+$@pg~+Yiofx2DtQbw&0jS z)N8?E@IHz+eBJ31w*nt^bClmcVf5a};5E-ca5w>Q$mu3H9Afhj9Y#ekKb7c*cp#dp zZn!HVuVbv%9ZLH}Qo08`(yy!qQocFl>!EMG$BEuwMdIhse+py@Tb|`NK{OYzd&GX} zMPk4y){D(-+en}}DZAI{*#FE#_f+5q^1AEnXdb=Oz&pCU9;ZAOpx@w@J)avw1NC)1 zfENN*%)g1-Ff*}K=;pkA;r}GB#glv8?5mg}?Ck7aFbDq5=G z*?Y6g_jTF(p#d8F{S9pV-Zq?{f=fa#jxq!-^WiJ}3+-q33(A%`&2+G&!Og}ycF#=U zP2;Wj!12;3JTodg%Dz|n<{(*aU?waGue|A4A&%Rdh~7c^c~;*0xGM%Nzkuv862PG4 zernndotOeobV8p#9F_EW>6qi4317{HuavQnx&`G^#eA#wgz-$Eka9MgwxY7z0A)I8 z-yI)@yl?T*UsIM0$p`ghe+}n*9HZus&DQx#R_nX)9@@tI9P=hL*#T{#dn@6)68KZz z%f?8h8{t*7424{}K1091Pqy$)1TXCbL_E*-0f1Yp4!72sgClUmlNRwPhM!e8+#2QA z00m5QQhCP#?|!@oW#z53;96Li+DrXOXLV!UPnd(Y?Q?ST!F^PQnxD6bZG zOF9YaycscLA1|hDfHZFoY}zNh1ZibEW|5!XGFH6o_A0{3MO(2>26TqELCaH(Y=LN* zR8R|ijC!fRSMNZP;DPGUJ+u$!40x3_viD|&nIj<0prvio($a~yA;smuY$9g^iF1&< znc0?qCb0;4-@#tH(U7J2Q0`Y;x3KS5s2-iK$ZLi&>Im)L06Jgfve*&eK$zR0>WGbh zPQ8!4uS281-P-2Sit)g4gGU3mChcBpkTqaI=+Z`vALaUC1mXn)LSuCOY~~S2m_NcJ z-QaGZ6W0QTg7QUj{K4qzD)Cj=(1vC<5NvElz*U&MMC^abINk(ZO>IX}B`=E0~2qm%P}MR9h<+1!qLu6#ZQSrXl;ZqW@} zNJ9~-JC+htGzM@d?G3=cLU~Xv@5tqR(=novBjo{Xq}&A`x*gBiIiK7Y1%W~sdV_Z| z??}p{{2Qp^30b`KpdDt#o5DNNuBV*7G`uNxUc4J~Gcb1$%Nqmfw?+;a-887 z@1zh&_gUL(jhwF@UfOE`oNi>*9Vu-=9QR~1y=clHRBgU{RRG zJDNG)4DwBx3G^~&F@9G5G&MgKsMicz5yqgUD8Yz>_h~Hn}AUSz{sNf)V>5|8177rla9d1xsr0a>0Dq20AnoVPRzhldB{yU zSBJR=DR%+@1Nv*+gXS(mqmdWy1tMjR=N)-_p;*~306nYVK^+=Le3^3g924mmliP0I z1?aajW*AFbaFI@;GkWaBn!ZUm(#?zaSubry4CoM??SU=FUxzE9QA!($4}rsG-pGt) zS`Yg7aK2q6J&m^Uxt5>eAYQnJ2JxJY7h#VP$H4Essp>*3CDysJtBJAV11GJ3Zg=1! z!;rP4q*&CA#{`?;aUtYg38QdU4xT+-eiip{XJ!9D$R-@IihG@z7}>n_sQi1wsc<-O z+$J10i_Ol=CP;eGPz_0{O*jV~6Fup)G55!<2Fb#Zb$Rz@kycd?+ zSlMg@jISvW1JtwD!yXZqLU2q5lU2tML6(y8x7iK;M$Y#KWHcMx!a3Mwukc#k&C2_Z zg3JJ_R9lZgm7$^0^I_mG10mS#YRzbG?vc%HG*~af!U**83?euot)sTAnU|8zY_&63 z0rnwmPMS@jnVxxp;1g(i8YA1y!c=iFD`&j7T6;FX}9bR zB2n_4&~O59r3q4^sG&|68biMm_J|gq>T6PmlEelJN16zX!!AI4jDaj$reS{IkQwdq z9NRhn4b=H>01$}`%&-jfv(K7sXw{c!yfWM8&N99r<{+Y`chIO^)>U5?5{<8 z3`c`Ep$Ms0HO93T?*{5M#a3FOIokjpAL<5Hz-R{=i5u5H+X?mk{cvB)OxuY|1yRW3 zu>7_byYwuXEsSgfKt`ZMCpy|bY_dFzJhPZLlYVMoy^SX(T3aNJya`y3uMQmyaxIhb zW$~*7p`<&pAQF-n*}ZcA7nnBi9cNL1JWQ9Eluw157{sov(IGa$$_ERKR-T4r*%iP#EQ4!M4CYg>t`K1nv8LZrXDJoYuEV zyPprcMn3EswVdxGO1K-AWzzTn(SP!=a;BmcNfA+Awq4_{aV3sV2o&$W!Nzd6ou|O!j-&&W6C~GW9<~i9 z=4R-*0m^-YSX|{1+vz?!O>k*^y0z;U4aHAwfH zV4XD)-N&25iSD1`C6LsF!x!9+-9-1hHskUdZzFQQ53vn5fEJ1`b03Vn1V%myM-OyA zpXk0Cj?updEuU=GP>OF-#0H$&p^IY;t`+9pjSMh z9juh;_Rv=qz_dKP8S%@F9SQcKT9ab@uN-+!%Fm>Z4r;>b(Wi=Tq|x;ug&7`sG&M3% z-DlL>_sC9Y|1>YnfUI_Ge+F?&vmpc9N3;#M)(%Ol{RAlZ(TM-eCQ7dvlJXX&|1-wl zXIuu6-UrF*eOyMUpVkiWXLzT~6y!azohihk-U1oWPK4gVI-T(ej%NyGOUe%y#C46wxEZ&BGh%C2rDJ1)0f^?ipAg?7^aK7o!b z8u27gCzA_rFy{PmWD;We$Hz<^qMqppNA9jyXLV8Lb00@g=w9tn9o$K$8+O1RJ5_|Y za;u4SP~o-{tT&y-;5`B8fI|GYLpeu| z`D5HSw?kh-$8~v9*C{H4ucx~Mth|(~v|_L+GFm=xe}h_fCdOWY#p-xq53~PO^dk%q z*qdMgLSDx@7&7N`Pz<8HwoP`!N7td0mvLPO?CvD-bq0-|UTcSTvcuRWY8bJ_a_?`|2t?HW?8wG9LScSJ;E9z z3+N=|iEB|3UV1;;QZ1`SBZLLrcxy;QcGyXR_(q(BP4QY!`o{Fc{|bhLY8VWa8-#O7 zoXMTe;gm@zYb6O^ZG%n%9b=J^*poxk#l}ImFE51rHI#&uphKQ zl<(5CgQYsomxW@w{8T;aRy=avuBGU&=MhhDN;E|7GPog)^^#fFp(Bb%3~w|O!QXZE z^|B_9{DgUP5xpr^5SmA zcrCli!2#nJ)9(Bbrt}C5-HFCec|$)Wz@s^jx`OPF){SDgIdo}sT>3bblxq=-=UkOt zz33Axw>12GCy6+mZzJ1o-H#A-+9mW~8ia(TPU8`ZaKFOqEMtK3g@n>3(o+pCWFhvA zk~E0m$Svv8$PR5l?Cu;?6)9gZKy$t?so6P3DxhrBlRu~A=|%)6)(fy)$xENmx2Fa% zfMi^YE??ArF=glnfSs>L;urv4#bT9)-`Qd1Lxi(fs}?f50V(hJ`=loFi073K#FHB? z^tAUpiiU%78j^-Btf;aB%Uz@c?0MD7!&-O#2&qBKpWoN$$|xK(f|!s662luydtC zb4&Ap4LJ|;O9Jii53a`@(T^67;#^=s9!%u}M@`7X2=ykn=(4&6Pma~-7Pi^iEzbhk zi1YS?R_DNzVoJjca)3!sA@XaHAd&QlHn(FZ(^s>Hh`w4XNp;HwX{4-G2Bi_%@$E*) zg_R;bp+ zpiDi+bT2Lzw(ZF(fW?MuSlZ8`<>+25^bt@Z2X&0E(mIPbsRmA(#M9)&kLR;Ffwd?e zu`LPuUQTysi?II;+p?B*S2#DATZ}ps)>|<^9Tpml7%vpdh$+kHrx5wvxJdu+jExhJ zGi5CSXV%}4>~BTtY8lNay|1|&ZJj&XhSboS<34WTTs8a(URoL)Pmpy2P(DXxCUhs1 z0P~HnViPY-u#(eBINWZz0GMjj?tgWp{qjSSjM&^x{E*}WkNjln?I5(ehwOAa{>3e3HrU@NA9gUx zj`105K%(XR_j7v8$`-d=bdb+%=H+C-{#$vx=VyByFU~}vHqqLbdRUN1Za{plB@0@5 zCLUn@6L|2LhLu34Jh{WB;Ey=05PoLG!-IQ0%Cb8V@&Mn6J(cB+511g+(T06>YaJ~| z9hzhmGeC(;qB4A)RZtvEu(olB1%kV~1$PZ@!CgLFg4^N{ zg1ft0aCZ+5!Ce=3cilbt@BWKZr}}PYYI>?`s-~-^`+3QFt$F!jQPSD7V`&Zq)F$4; z@P&A2i74K9$P3uJ<9DI=6pH0_(!AgCB7>hvudG@qng&>}JS?vVt9U1p=n~sjs%{w411Jzo8GtO*a#HcDGwvD8cX|qXC-bKHlDg45Y%bsUJtvf% zx@(yGBO-9_v~EdKK|l^)>8cC#Q5o8Q%$_^?L&QLWplfvnV$Kl$A@W2~p=)iWwB#`L zQ^)O;Wcl-F%{2;-E?QU7X~nf}+b~=n$zF5|+tb!UCC?w#h6yeh3D21d=-&CiX{Njo zuK(e7VN+#Y=RL(wzGLrJP-ov8&C%-*$d3g8RQR2bAr#d zCFz7ZyI)WR^39^Osw1Ro16P;4LWp)t+GAF1Cy;`)ABDOYBAxrQlT ziGqKVf<*Az6up}VG{#*cvJgxH8MAP7Fu!G+}< z`H}zpM!!7xrvfzQ8Ddu(#1``lol+8MqPj5K1w?NITfHDvukw5scVzw6pHv=%Rsv+$ z0K`DqGCpChII}C%s81hX*AGb4kt%PRfk`lEXpt(UFcX!vaGSaca?77-AO)Y)jB?qgkgg*_E)=p6$BH?}@amHY z%z$V3%2)1iL{Ek?0G8^%bk!DjVcVA&xI_5+E9S=L-HZzg@$SaniS0Da=8kfAO7nw5 z2_CvJ*;lk*64x8wzFB-=dEEq?2Wf4^@RKp$APR^fd}oq_0)IAV@P#Q*8Y@H9<8pRm zvr;n%OvU!R5VWaA?hL*SlR!5Kx_TjI9(eqJHBtj zjIo}2d-(OmM`cDR1!M;XKXfYz5KpD&=W$MaHVJt8BxGhu^sJ*!;_et&(59iRF^-5s z`#JeU4|rkMmJ&Lj7#G5h9oP6re4?2q)KqFAP_+x0R{fNF07OvOvg+wJu}l@5Fo(ABowx zH5&W%?9xadNuslB^HlF-1!=m@tXpP(fA$2529Zh=Q`{~e zX|tef-$Z4XdDSLsbb`;)LT7<3XfgOLIJf^1jr74H?||!>+C?%7?tQnA@4G}G-<3}X zWB%NvR5SdZgo~lxcqx7VA$7HT4ywVdTLtj$Y9n5bhF+`pzm@4sq8r1_KwL6?K~HBe z>MvzCbrIk!LiBvQiBQS840ddJ>9?|(S)vfSnJ{p zpQ$;1!?MktaW6BjV3d+I>;Epy^li`+4YC7Lf|?Edv)uj4#edT(xxlK1rzcK(unXeP zEenCjh2N25v)y_@eTY&kw;(QeXirhh!?QP9oCx$9L=m%HBvF3-g{^oxD?^0|W2sJG z69p0nt(Dq_FLf&d1iJk`>WK!yTZ0Q~rt^X?%jSh>xijaBgu?L_wa;UpXQ!B!NZJ-~ z2)_jzmHAtX1BA;j$s_cjC}c@>w&l^lp0yu14sCL2BO3&^M7bzi=5H=i^qs*zrlk>S zVvrE$7LY-6N75#=Q|a4>#CB!snIiJRY!W(_8qAQ2+@ zU+5(_zBu3*EYIm8n4(&=*^F(DVT^A6SrK;n;c9&~^!^3>pS6nnV2m!Q+Uae3CFg@y z%dN+mEr~^ySn=gGo3O4^h=qz=2pnw=!S1_3d}J=^lvLJmNuOjd69qA$VtE!}?%t^y z+%0V*Q!Qoar)Rf4VsFYFnYYnC+ra^|{DrN^+4a!}B}3Y5?C&hDv&YGTv(FMT1j*EF z?w>xZQM*v(CoTtH&bA~AzBlXM8mzhAUiWK8jX#Dqc8J0Vy11w5Z%X)aBp@Hgn~1}Y za`47Dev11NU4-MAW=OTS@h6GC3t^veZDl31Xcp>})6G|?Ad(KkX6egPDRCPzX(WO1dwLt|KXlb+8w?x zBrbkwxzQwLj-j%Hg?H^69}- z(Xb=TEhCkC+bj$NVk?gx1qxyt3M|UD>FHar5D~JxGo??+4A^c%4X7S4R~rOp$ro zLaL3yN&?Um(BJ!SJih-%c&Pn)_*Yl@eH!&4nF}}2)Dosscj=Ro>1$XjLt#GG_mftw zIaV}63J;@*-}h6Cs}{?vp1-NqS7)1=b1v$0n(rmh!Wyzz6Z@sO?yxq$^Bugevj*@ zsJ~Z^(!Vc=#W>8wM`15AkryQlfwC8XnNk_*Aau{L#<_3e2RRj_4BpXJyEql$`gPO0&m;1<7{rkjl z=c6c;_2eEe=YpO-ujjUNv|KLj$8v`C^8(NDyqNw=4uH$^`VTh^i1eS`a|EGC%bW;BD@t=sK51R8LgC1tGLYjkxWC+KiGWLMOOwjYtc%- zQ6T?wSOqK4lps9j>(eg+&Z71H8${{i3p)>wY7w8sfDP(C4QM}%f9i#TzrMen_EA{g z=WhU%p5p8A1ZY23Y=#@wOpDEbUf5Z>w-bl_hvsa1jPO#KD~Dc0&E~GgZhV*saTE)x zmenhj&C`KyDI@E5WNq7xzo-n81Zvw@R)oQ3fyv);EiImaC=zuJ_r<)twLH~~(`_L~ z3L_{YN%>kC)S|Ic2^FG|XT_^=WLP2g(C#&4E*70hKl+m&UK+(_)k;Ic1n>E7pha&w zhL>`J)Fyx$F1Vc$7Ry1KTwpETZ%&jP8+s4XE;3eYrX7T?-I)_w__zEK39BG=&)5_% z+JN1YD-1-|+d59)?>^P!jKg=80S$34sk4?3#?M;B4ko31_^HNY{ zqGIUv^9HDrhNHzu1uSo*YN3iO>4cf^*V^{tw%87 z6RI?fb?c13uj8(F)3QAAPNT$fssAA9OH$zEXwK(gos2Mu>4SgH>#8Xs8x%ppek<^( z%osaPvj83|EHnk_^hy(W4k~O?oy2i}{8|wutP3UcFuiiVH6!OdjebXjFdVl_gA)2xexB71}Gj8hkjD0tkdJH zRRcI&$6Z%~Y$SMX-8PL30T26hZ{us2+Pij2EG|L@o{)zw;yf2wM9g zF7+2(*zE6`Z3DsnU5hg~ayDv~6ac3Y8~$~=Q}RUR<_W*EhBy&+=fei`+X(NO0~SOQ z?I*$Q$Z#m~7u;~ks2smiK{h+``ozv*7nGUu?03zSPvDoMStjI1e7l&S z_&9w>7v?_-1gGcw=xRc1@0y4s#1hYtDp2J=2XnP;!Bbr-LoE+w=%5WB;Z~naU z*OGYSlYHHYhb7}{s$q?C3VJp}uhho_g{$}FbfeYlDbW0C3LB4dSQag8ihtJM#bAzU z`q2eMI5WVz-U@?e{O{wh3i5$%1xUSc;b1Ga)ZnMf>gQ}_-Yx%(8H-BH_$iJTRbSTD z9-bI8_Ib+Tai%O8Q8E1|c3b;JJ#&{}mjuD9>z`_&6xH=ELh|cx$ke7d#NM(C7lUlB z3}C{!@kyC0Zn<&xdyVA48RD6pB>{1E7#Ygn{@}LRG?awZHfUoLY|uPB+KEW#D9`r1 z^rYFgq_N>Mrd}Njdm*_u5j@|cc??JQse*gW9JRFkGsb*~bmU|{eO+7)*;;gOu&gSp zu-y~JfRvuC!1B%}l&dTWht3Q3gSl-~H2YrzsX`Lr`9bYzzMv9syJ+Coj+3T>Xa?;k zQB!?p4h1xJ%@C3!a#c%1f=ScRUKN>u-9$s&6AI|zl1AK#LBR&eUS%e5b^j`@`{SzMV>xRbGZBY%vR8<8NiF z-i|+-3|`hxz1f&}G=G7#Y8Gjrwz* z39l|~q~s1ya({AL;W%Gv>4ngdb%;*zHyK(5zPp-9PenaZB#9i6Ktu=$bxq#V+7g4n zQz>niABI8Pqm9@i*@GD2auLa&vl6Y&-(^|G(ZN1Afe7P@&LZdMo|x6Tx^4A7I{lqS zdx?%}#@8rZlx#aaimtCpwKKom{P7MHG+V~C07{EL|C3Jgu9x+J??RyR2yXt6FZ%p* z51tU+G)u`(onP2W^j{Q?_>sLee>2d`>ufaUm%(PdKf=2=L@}C-xf2|=N7&7nP0Im3fPMVf-z3&`j|lfm>qj08fozxmk_yljCnl>`)qJjCWNB3h=7+ z*1c1CZycZaEH3$o)J&valhpQG5^k*7UI?sn@ym2`2>XR) zHZ1^BVVy0%I{!xsLy_a-&re52(tL8%x*D{zsBV?dasOQKFg54S>zpRalhthyB8#&z zS!TMbmlHcz4om$N0a2VqM`>)8hWEEq{>oLT7WsJGgwQ%zmF+&? zZh+?8yP=v$WU1r@X7jw%MLR)1XY;OL(!@Vq_>Ri8|NgkWvCrKykW^v$MMYW2!b2eC z^%+Ouh%#yFbX7!EB8j1&qW^wzS#q#s=n&o~V zm-h|KL^Dascymf`h#VhH}_TslHFVUSva( zS2^S@pfjal7rISg$pfMlWJ9AE)BP6bFVsnP5D!+NEM&**TKz_y>4!3Q!1Z5@_C>6T z<^h-PSG+eOv}8?kz(=j-g+0?8FL%n{Lv#gC|0)RE)KjYnh5BSMTipNrTydT zN{cSmLUTu|szO6tBt6u3mbvT6|sK%634=^(TV`MIif4P%J=Y(Bzx8x@e|LWKOoHq@ZmFa9uo(Pfjk(;rsl><(DzO^40->?~JLd z+2O4>Neob620C(y+-~AMbxA6QLlRY450Ca?Kdy>E{}@ZJUZC7}yw%^EM$5AvrML+I zfc%TlG7%Bf>2rU}U zu0NnW-M9#9V@Ivn?F=WL3X{Fv_3!>s@}Aca>AzbSxk=eg%WE2>8Mq!|F*eRp@p_Fw z6uALnuE~MZ!p6Uf{PtStv-n0y9Pa5p=+RWY`p>N6=>l*D1+}osjDRj09gg z3jb*R*s@Uf_rm(6vN$Tp-;?*hSH@*6&vpNcT|HxH8TqN$>nMRW z{e7clI_-#)#`BsXu)_bUr@MWhEWVvImu8vceR5IVaX?VWdxrG|?s7~KwH^LIHym&W zybRu?zu8SaT^}?@y@ixB-9Q?(ULf5HJs(z*l!~TDSRs-TAQ=#6n2fgA%IO6U>UbjjY5WBI~(JY{r*A zJgpou)fJeNjoY6kCn?&S;0@1FJP2LZ$^>n1^Jl{I$wb@Sd zUVyS&gBxk#vVrg;&-NHOE9hDTMr0q_&o7hoVEOgWp3<%TYxkAMk8ghIyqsW$jVpli zw$un=e)J0AIqXZ<*YEM&M3>O16xg~_v*hhjrm6+$6nLw$2`CmwWY}KkE{{lkM&xhz zqvH=NhHWeFM&ma_<=N!Fk>l(9?;pG0{kKEsJ;}1(`vYv)Sje)P$X|9xE$lH`r|Icl z7nVN@BQ2ljZXLimQ*FyQc})UzZ0Bk&0sWxo<)dfOI*q4Yf%kWuY{_Ke?Hx1r8PLN_ zOfInc&ikhPP-r0gQ15kZ3^>~Cuiv}R#l@HTA^dc$l5_5-`iSgfT~fDy*Y^7QqV?s` zy?Nb3G+=V*ZE5@dR+ayF->KyOw$CryIJno3Zsz2N-^>ecl{fD0@jeLL0-d~ue?eV`5pCz4yChc!N}Eta6Td@6dutUxw9h$T9*;J^NV}V%D19H2ob3|9H-D3ZJHo0|F-y^g zB06pt1cG$k^O#(mu)Mvp>-umUjJv*Z%Ss2z6jV&8+ujx)8 z6}QC$pwXZGFg`@R2?1=1jgj}*RMERB6}UFnowEoBP%2B92>fEKo;0na@E4(Y7*r9v zzBR?X4VzkcRlDK?CCtS31DE+$L_3~B`TA0hon(QH53ir}Aits;vX9FL6dM$uo4}Xb zzsp(?&s^42A9=8E_FYx`XIfWO z-QTIdklITwv

e@3Zuy9BC}KlbK9HHlU^buqKk`<&K+fA3 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 h0000400000P)h{{000000{{a6)BpegnaThF004kx=w1K- diff --git a/src/com/sun/jna/internal/Cleaner.java b/src/com/sun/jna/internal/Cleaner.java index 1fe5ac657..5dff307da 100644 --- a/src/com/sun/jna/internal/Cleaner.java +++ b/src/com/sun/jna/internal/Cleaner.java @@ -85,6 +85,7 @@ public Cleanable register(Object obj, Runnable cleanupTask) { } private CleanerRef add(CleanerRef ref) { + runCleanup(); map.put(ref, ref); cleanerThreadLock.readLock().lock(); try { @@ -109,6 +110,16 @@ private CleanerRef add(CleanerRef ref) { return ref; } + private void runCleanup() { + if (Boolean.valueOf(System.getProperty("jna.inlinecleanup", "false"))) { + for (Reference cref = referenceQueue.poll(); cref != null; cref = referenceQueue.poll()) { + if (cref instanceof CleanerRef) { + ((CleanerRef) cref).clean(); + } + } + } + } + private void remove(CleanerRef ref) { map.remove(ref); cleanerThreadLock.readLock().lock(); diff --git a/test/com/sun/jna/different_package/CleanerTest.java b/test/com/sun/jna/different_package/CleanerTest.java new file mode 100644 index 000000000..37ff9628b --- /dev/null +++ b/test/com/sun/jna/different_package/CleanerTest.java @@ -0,0 +1,47 @@ +package com.sun.jna.different_package; + +import com.sun.jna.Structure; +import junit.framework.TestCase; + +import java.util.ArrayList; +import java.util.List; + +public class CleanerTest extends TestCase { + private static final int NUM_THREADS = 16; + private static final long ITERATIONS = 10000; + + @Structure.FieldOrder({"bytes"}) + public static class Dummy extends Structure { + public byte[] bytes; + + public Dummy() {} + + public Dummy(byte[] what) { bytes = what; } + } + + private static class Allocator implements Runnable { + @Override + public void run() { + for (long i = 0; i < ITERATIONS; ++i) { + Dummy d = new Dummy(new byte[1024]); + d.write(); + } + } + } + + public void testOOM() { + List threads = new ArrayList<>(NUM_THREADS); + for (int i = 0; i < NUM_THREADS; ++i) { + Thread t = new Thread(new Allocator()); + t.start(); + threads.add(t); + } + for (Thread t : threads) { + while (t.isAlive()) { + try { + t.join(); + } catch (InterruptedException ignore) {} + } + } + } +} From d074cca011b5bc3ce02d2ea80bdcb675f8ca45d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Bl=C3=A4sing?= Date: Tue, 23 Sep 2025 16:44:29 +0200 Subject: [PATCH 4/4] Add missing license header --- .../jna/different_package/CleanerTest.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/test/com/sun/jna/different_package/CleanerTest.java b/test/com/sun/jna/different_package/CleanerTest.java index 37ff9628b..5a0f8b15a 100644 --- a/test/com/sun/jna/different_package/CleanerTest.java +++ b/test/com/sun/jna/different_package/CleanerTest.java @@ -1,3 +1,27 @@ +/* Copyright (c) 2025, Matthias Bläsing, All Rights Reserved + * + * The contents of this file is dual-licensed under 2 + * alternative Open Source/Free licenses: LGPL 2.1 or later and + * Apache License 2.0. (starting with JNA version 4.0.0). + * + * You can freely decide which license you want to apply to + * the project. + * + * You may obtain a copy of the LGPL License at: + * + * http://www.gnu.org/licenses/licenses.html + * + * A copy is also included in the downloadable source code package + * containing JNA, in file "LGPL2.1". + * + * You may obtain a copy of the Apache License at: + * + * http://www.apache.org/licenses/ + * + * A copy is also included in the downloadable source code package + * containing JNA, in file "AL2.0". + */ + package com.sun.jna.different_package; import com.sun.jna.Structure;