text: %PDF-1.7 % 1 0 obj <>/Outlines 5 0 R /Pages 2 0 R /Type/Catalog>> endobj 2 0 obj <> endobj 3 0 obj <> endobj 4 0 obj<>endobj 5 0 obj <<>> endobj 6 0 obj <>/Font<>>>/Type/Page>> endobj 7 0 obj <>stream xTJ@}YpM j-*>n6즓EBH89g.{JbznO0 |ߋ0-<~kA)eʗXq+nmڡl?UihTv/ܷͱ&lAtbKةoWH# *YMYL,tV`m=fQ6F׽*?R̀T!eh=]40gK4`ABGEv(,{sdJ# qUeJ̴zr8˜&`L]=gr K] ;[9\OXlżE#P3<2~8?L6x7ʳDtR*(;Kv]^,70Wn:%uR\$Mgˮ;isbbq\xN/ha endstream endobj 8 0 obj <> endobj 9 0 obj <>stream x]j@{b/ۋiDHL^@>1*/)TP؝_fݢ> endobj 11 0 obj <> endobj 12 0 obj <>stream x \U>۽peߗ˦(,\A\Qq_sߵ,3,5ʴ] ъ̏mg}>eR6{9/e=~K>y33g̜̜C\$;\$|g?7Ks# :1}YɏEG_A̴?hhI.||IƏzYEp|Ȟ8mф7!!8=aw|g/' q¹D5f~bܪFDn~z+L{MY02u' DvXv{jKށwPPKnKiTCk 2z-FK)S.j.j ̓s"ɇ|NARP 땽J/+z9NM"0 +^R{(c9ˍ.&;.hX0SR_Ж  0U^ 3y:u8muŪ0b#˥mO2nZyz#WR"Cـ(H JFUmeʾZk   u&M&'ws%OjS?[{T|"0-7!]~`Se&5ٽ^ɢpZJi܏l^A\~چǔ!PKhRME=ˀ[>փRPi uwPU㙭V ÿER79sZAGQ(yxk^rDߡ~/Bht `rUjw!{LWF0irx<)W:x#߃N1np/ʮ;Ϯ;٨h˓.;d>)rAm+-``#I ,Lk`w?0+pGx w ?w]\$P!?F؏ao~VPh\$oːhk,D^g3yZaCط1M ll}lAxrJ8lVb6^Ԅci>-8_my\dca;;(eg<{j6fc! mh+roQ0Zt&E-<mh(F#oaaյ(G2u!  N1HB;1\EۛKc|6taLN{Xc0c `Lou6[]p J7#2M֋k)+P+dq#ollV{r'm&|+}ne(0Z QEӕJ*@6E;e+-RMj;.?E["YtT4JwO=J܋V9pr#o`(Ƥl0Y`6 0jpΆ8 Hbli5̬zAPt;}dꢽ>_(FU\?\8f.q|D3*fʢQ+)ܕ.^NS_Qʗ}TAaT'6\%?I1}ZJUhJP/w,vPX~ǂtc\K_|[S&4P/)W6vJ;h7J<~'.4MgQ<aBA4Q<Rý*v : lg10Sk0a|k&rіRꤑ2AWPx0kc`(m4Ks(tALٙ6f? (FpxazjYBML@{uݗGk8-?׿cjG;oڈx/ 1?'.P@1DN @ݘmkڶq%Ϸ;.Ү ul8O}@tlbV9[B q(K4zrɗ 8OCI%R O8aIםap+ ]63>>lsp_e[`8v;Ibn>X:zz5ثbׅܓ7q\{*?CZCMb~bEQ_o~촮8y\ܞis0?%([<{/5zN/[7c7Z/|xal-?բmC݂(ax FR0n2a{#5\ zA SE}c/i?! Ԁ lg8oGg>^_73`~B0ose܃ "sc} Ԟ)k}ڬiXdk|nk|sB؋|OelM\JD94/BZ2l:cxz:W{7=,]c-O AX:+oYؘswP%xٚnDFݑgjqN%X]g7)JlHڦKk0tZe6ז/nj >O2촞86֠cA אc}xB=>Q5`!ès:Xǚl*Is.C~k?RU]u=D3caN-%)N:ak4)^&yA Xu[`To٪By!?Bjt<.3{q^O_Ã-tNL؃Yi_MZ~5ZmS?o۵'7B?ټWN #mv΄՝V?YaۑR^kB< -+S0Ŝ"SO/x1|9lvIջ"-2`vm9S>gk"9rN}W7}\u n Q*W{\GGʃ6(⊱@M@ٌĵB_OJqL0.5Qy8hqk;0^Ea@#яISacQ6me,ʳme1c<;,[λ"|Z%0+OPLZD_>t&~0[纣]@;:{nyj؏uihwls#l1|3sho1sLcOhc}>cOnTy sB>kOϠq>|~rRW?菟44ÜByaL~DJNmCZ9!ȬL|:YMm3)OCN;I=  oR cx}9& ?iӰ)TT6vyq?*Ƴ+Q?,ϧyfςud?|t82Z@lTzJ?׼ HT!^pFEc2W0Ô8({Qжh;h?z7zh[\j>.V | E|]e5+W=j# *Oa.X;{]72զPdqN.Ԏ1xڀ>?O=w`{4YoE9cg_{p;ЊV鰵?˳/C?4QL 3|1wÎٌ1q3lMg16w~y2Hhvƴ8<a3Cs='hoc {/J3rTA] ϥoVߵܷCA:2rOǩ22qLw[l^)]mQ>TӜx"y|styܯ= 0psG[_1=ygs42VW8A%>L?m'NMٸFq<V0J{Jni7V D8Cٺfe ~Ͷ7Y1v)(ù=WWߜkn5s{0ܯ6??]PtL)?!*0nfL5;t1M{1\ 7o;ޗϼg0yf{[ml5/ۘA[-u`p{>`ιCw>` G;\.?i \J)l{l{᥌ҟ_JlvmdO4.]<ȇ[x&c|j)Ƣ^*h?aWM&֛zRޏSQ9<+k>cG ؞x΃8ޫsާ{~aNy )t-嚈ګKW%ɓi;Al2*rS/]16zٌhvx<ܕ2^iMFAO)]#N++GjS0SVoMoݵ \wD.ǌݏ]Y5+S*P`JP5\{[xh'Mq{lͳ[o?(ƼDm.`{o~Rx^&>恨2׀):Advg苌]h {ߑ_%uX=vJW02I1vhF䋈ؗP;Jy?I'NToH4> 4rl&ػ̳(m1\$alyF|^cc`\MHϣ<N:I7iY j,m)њV4[˜Ɓrʤ# sea0~D ~(_g\$UOs~ 7{ws?`^~?㘁g*; m}Q۬b@1wm= -=d7A`f9\Fjɹ&A Ud4.qcA^nL ~ ط`Qk3}olwKcP<wTq,/˝bN~O x 6gp"hRZϴb65 x GE:O45po~1pg0 ]F'xw+vuAtX[e8M/X ,Qlw.c B@&퓢.82]F;1Fݨ۷sR^bbLw0F3;mekD!']eʳ\_H46S.[/cnW:Q?4g7B]z5F;Co=:-1t,Ji;&Gc 6^>)?ՖQLQBa> QTAaE:=:sr8[tp Or(G6:)Ke{L͌%or>)0|?\$?[)Jny9E|\Է@,u*{fl{6z+s]zZOQIMY#_ ?l\a j=ti\$LxmʆcG59&uujNzo#,dqu4d!_t9z:MרP 1{֭'a@Vo=,!=t60=aF|߽Ř\hq"uWZ }e9Z΢%bic~usmt4[iڱ5T O9^JyX6]<} ~}{tߣq'_ظj1^hoPJ 5xi6j]P{|JvCk5Qj'"3.+Y *3lG3lMVN_ꨮ@ξ!óÞMڷx֢i_a.#}S%Y4\BlǞ\$M:C6<7|ݺR/sOnH&oJG=NWuFCB4KpOG]¸q7jZWuJ-omgRǘq-9kwxŻy];=en+H:u/["+ޫ5ޱdweY(MD-fR*lp;C4䧄}x{wjj)9n(k)!'aa)\b%hUVPWJU|n9Dߥ|h2Mw\$PR`flA>ȹ+FlWҽ-_ѴHa<0L[U`܁6ȫi 6*JEJr*-Qf !_rb"|=+Gvh%h:ini>܃dGQҟjT m2HM]oQ 5!IMas8%a(Y8 j@\$2BJ@2=sC@gPl \$aY\|<G\$ jXA& b#\7\?/ 6v>ڞcfc-p21xPƴbÍq6 Uscs&=?HKⅈpv CAw-й*7pm0`c\lyl~DeB8.@315YYH!g#xi~ZR^Kh̽+?#EA{#fzӰOrB=i ZAPVP_/&[l6ɋBͳ^.m\$Rt̨KmaۘdL۸݉xm`*\$g4yt&%k =~;DCt~ؐlGs (.eK@ K[s#q~_E8F\p;zQS~]H?n0zqzĿK`ә-QSA "?KՃHj8V#^qdCAo|m;ỳJ4~ؘLw`У9m5?W^bނ:n3` RGsg (t[痝x{Nh/4\$2M|b.#['l<+p\E\$MOz8R@h C͘^ǘqcV{l;U0̦ǵw~x3f}%h;~ECMZڂ-܆v cxwx[~m*VFj>&}[͵d5SZo ѠogC_1`+1qEp9[*pj0ֵ~q<Ӊ Nڦe?p X6;Ҙcpm0kb9_Ȭ?=Ur0 ^kQƹ]sVaVVnnhS3tmZ-`no5`nHcõI}#\ra ʒ<ƿ_D3a35VM::orrk>k- uur^|7пw3Zcf2{ԡl^ziņ}cݱzcg] ;c}{@2{}Xgk keLַ4UF(tZ*@8ػ ߙ`KuZLl/c;AxF]`SP^^}@X@@+Al\{l׾)Ny5i'66kYye&VLsy`/_Nn卵 t%UZGM0cY^`E)Bp<:XLE#mRE, 6y¤`7 P([ d'ӂfwшL5BCZ!ZK>Vkl!3(x5"\$%f:T}Zco0'lo{G4nļ\$em/y}gc칖!L j;gGn;)_]z]wPA_p?%]%c7waJ6}xޟ7(ºdz/&JA&Jǟ~BÄz%aOBe=KVji{6u{:i7rg{{tJao/h6} tA;Rt=󨽃a;!ʛ~#wo*칦6p6hASK˕L{^UK׷uPogr18k뎵Pc-yXb#|=-N[s? Rs"6l5D8eCb hBh prv/'x|`7zBRW@i*P+8Fvl0*TЍfGEV?? 5ut-r}iSG-H ~ZwGpSE/QJm+4K+"B]ވhiZ7gM CjcWWZnbk#wUQh#~`KHEY߿\xRo~f6EFsSP6:#ǿQNܶ2wge&:zUBFBUBz]CeKfZqhNeS?y3:΀WQ!uת3hsP/uQ'T7e"Tw/}dQQva4 ykĘRF?ǈtc% P;WpZ[~N<.x0~ާ\ƽ^F\}4RP!DeMx%"@H]L~±\{;a/KFM=`'y)EW~7"ojmyzӭkvVZjɉ ָ?_/٤,QkaML]bMh-*1QSabjx!m9UHik)Rn1֘֘i*ϷVԝǥXM/8bc# dR~LTSPW8ڂ|wSGg꒭Iɽ\$~ 't'lP0lpUA~xll5<:S:3O+f23ɵ5ؚZkUuDZ]{M_J]{k~]şuԥXXIy:-'B歧i31%Dbs1㘐7Fc[9Jchlx=RvIǙJvfLsk,I!u+tcĚ&13~5?_[EU-1ƽKOC15ɬWեYgXau0yHbD [G5Xui,_1kkEYZUQ~|_fL ʤjĂUkk>'T٪Q|֪լur<UhG`v*9\fB _TwS%#b`G-ҁCI[N),jߢX;Y 7%Թ9 <\4k"4PNlfdH|ʬ, #")%O.d\$ýX-QYLuڊ6d+bʚokaUVR%w:iC6XV΢V;NǬu Y R ܴ)ue,Df-c)\;A_9v>mIYkCry^˫/fjG%RIENg g V/Q̚zYsUq_2OaR9n<|c6={\D'ѸY:d*)dmAL-ՓTP'I^T'[{dg:OcyhRa}+)4* DSTX1^Q{4Tu,0=}Pp5Wrbq U:DuHH! yi㯄neu]u hjޜ}.مҪ׶v&K5Lܑ7R%|ŪE!=qVWVi4uїZxtjx%8I추/K{*?vI-\]-2]pm:(ѩ(( ,S,Tn]ed:cvsDvc}kfwrW*b~:u5L  ׶ҩ[k_/vWDyy5+<]wM)t+IUҨǀtR:P7V:tw@џ51~S{Kݔ}Csݠ],h&4jAc1TI) {JOqW:SQ:T P(|: a\p 3YC11H11b#LoQQ)_:B~3܏oESB_ JȗBτ|*(wuRȉv#  @/'\ yGBcBׄ*2qT+B^" Bg򌐧<%I!O4 <\$q!<&AȣBB > NC< d=B -dw{#n!w SDCN!;.dDҷ ED&f![lrY&!(!\/^/_'dBFDFj!W J*!WևgBR !˅,T!,P!2W!\.daYB &d)B& \$d B 2NX!c-dBF.dЮ*!C\&RH!Bʅ R&dBJ R"XH!EB )R \$_H_!}b'Br]HN}HBd !Bҹ(R}H*\i3UH'! d!IB\$ W+O\$8= ^/[*]3[F YAagf+ͬgf堙3gc337̔lU8hzG%:\$ z2qN}'m4019ub=+'VS[9.ulԚѩ#+GY9"uX=*S*"e{**,3rPʁ/M-8ʲ"_jaeoVʨQGMHyVӑʬp'lE؆0d+4:tCЇB5~xj|v< >#=k 3oV|mީ }lҼ4z;Tk?&{U=-y̭g3|;1No?d";h6ͣZFitkQ+pt=mFHh3D[h+L帝n9mgٙ;^M{wtG೓eCQ=3vIz>|ѿ0I܏8)~?CGYzE:Jk̳>ovޤmzާ#:N'꾹;|`:Pҗy !E8'Is^Cx=cs7/gVjyeꓹ-FmMߣ?3|Nuok_߯E6Rՙ&\$I%rTIL\$w"yJ^sG xqΝR&ߌh)Vs:|&gR` 1CF#DSRST)ǝL)K*]s\PitVB~WW{m~ zMG 7騩vjh6KYӿߨgo(; xNhHMmq/_wsF;?9_:n\kX6y<y/̖ti=gh6k\C nk|G{ .\ED8 .\p .\p .\p .\p .\p .\p .\p .\p .\p .\p .\p .FdyBfʡRHKN]z@~['a8e^&76U ϳfS3_'WP^Ӈ<_G>8)ߦrN;YxfdK322q2K%+^2sKxyQl!5)%!8MJȈ))f'iII} ^\$ED&XЦ5?h熪_T7-5wQ#zxxiaf7?oK1M-VBSH~V}F 8JϷ1׿8#6_"Q5ċ\$D5BU&&4HlQ6)IVk+q!v*J k/;zȌS]дQ#CvXv͑#RȑQ#azgJI o߸Vz甔ꄠ QgIJ[%&fwDEJԭsFN:VzEff<&_kI~Gc;j6y{Vu_x?I4HZԬh׊rM!D {4+=y 2NXSʱSy엄f ?wN6]v6nhPvd֔Y7|^om)k+-&Ex_Xc%yY<#vAw.21]DbDT0Ok5o޽f7-+69-\$OmG4S/JDaFrCTp~{n*J;"'#,clKΈ=k(+ɑrlNҀ27-iuooYQ1iqލ7t|jw\;H oBR{VxI#ۡ<^xf:m4virr|YHQ4F_Cܜǽi>+yE ]k}ر}:;.C%4) G0`}GHU';z@y3rw@iSm;VDkY@,MvHL%m6#}'2k1w:/P-)| Fo /kXh:8R-/m=z˦[KĔseYl̀c[9γ{5_p߂5|yEKA{g^h^ ogjhBl=y,vҎ4@Ϙ^bw+\ḦdQn`H3}SjQ=CGFuNƮ{viRhX\z >345#Whty֮\ r0 ;.=<*k@lxHU\$ ||2H!Ĭi\$\$Zhnvjf&,32;-5IuRC4)'=z~|m d܅{pf<%%QK?KRc٠?isdf Iʲq-,&N񉋎=ո85A?nDEJgS{q S!C@D\wXbpt|5ʿ}﵋ψfd\R%mu٨UKlrR|͝-Yx~0dؼ }n!A*FPjt yΑҎ2⑿Sl6\$rt8f >\$R;W/*}32=!!=3.?(yڡs~fgdGe)@fE~ۏ𱨪CZ|=L&_?.={rwN߯Kv㳺M'k2+b#wS(SRD OTX*;QY ÊT_UP֨NNU5"G*ejAOC~&o_oOvJC7[тR_;etq#/52Ԩ(.lHJzi!Nm6e˖y-G71w>nyu6ς {{ʬ(GK sF7 ]|pق'.3o稘){ISoR.]nI/7ȣwH4H%6D?bK/['~~\$HnqY.-Sb(\$HDoV,&_h\pxR]h 3K||HYfƗ.T?DZf7_BrKprd״T0-i]#-%ï{hT^a#:l \4ZZ-Էx ;uڼ> wC'HZ߫Gʊ8G6x\Xݻ#5\/z\|%ɋ\$䚇mB)e#;|jDLxha/F.k48Pj.Uة[NBl101s[wjy|0Q Q*@gDzBbz5+ӈlS<+&YRl)Tֵ_riIIR⒘:gEmz>RĲ܄^Iז5B+ϊ<'1}meq\$5BAa[PEY=y-ga 7O#L/%U5wqÒus\蒅usٛ VԹ+bۦ8~};vl'NnڤMɚc֑v5-]vl< F4tZن( 1 =ѧ=D;Xj{٦VjŞxAbψJ`Hֵuν|?@߅7}@&3'Nk\!q+NVݵ˹OVmrǹ7^oā aލɾjrcOrN69|i?h~1 D>lx'8;UM]_>eg \gRV\@eXpVb?\?o_X?aR=Wا.V%;k;6ɟqlKȾ]|[X(hFcݛ^DD;Y?} D~ v˶=~ODtS8pH+x'Vhߵezn)A7l '@nIl)8xc3}ku;"_XAzq&8MK*i&XYqmѫWVJG.M {X sZhYdST yi%(iZ-`R#ǎ@!U %4ٵc&-3k"/ g n endstream endobj 13 0 obj <> endobj 14 0 obj <>/XObject<>>>/Type/Page>> endobj 15 0 obj<> stream x+5T0B]eabg[ 343 k)y| y݃ҋy L M, ƚZ(X(1kh J` endstreamendobj 16 0 obj <>stream JFIFC    \$.' ",#(7),01444'9=82<.342C 2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR\$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr \$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (:M?Jװ,V)+cYHS\KxK7%L]GMEkEqũnRjC>3&V|+ye\\jLbC*WZ'\$.N_EpIuX%ԶEqW5?ƀ:+CPSCffmO?ol*Lь N@ڊMcEq?3Yi;xRhCϩ4j?3uW~C>|cF}Otꗟiωu1JcƯ!ϨghD5O5/" ƀ:+CTQ{xPcEp~Kq n,zu2GTu 6\Gh?0e*DEw*;z+K5|*D|ICds/'G">%TQ\?"^%T'_ggᏄJOQqT\8m*\$Zދ.\;ĩ@Z) ( ( ( ( ( ( ( ( ( ( ( CҖE_/F?vʐC\$6A@qmSTYɔ,&[2xa7ڨKa9Z-`KG#ޛ)ow@q.2yy.}{m=Km>ו% ?{z֏s+bB|p{f{xy.u8浍EHOzM6E܈FprI*NH-#"45-_qo@l?sʒ+ 9n85Զ?sʲ|]0×Q|ָJn'kΦ[P{='Yŗ"+/̊gsT֭8#FGc'*jj;XC|۽zf^y;PEOr}]6Vij\$pzWψ@pﴆy637Pu+M5PA)r׷5=jkW:uV?ypRh"_`gbc#LV( *6Ud =bbI;98_;CO*"Y'b_zVPfҚR|;ۚ o죺mH2fKjZdy>¶""R4 0vS_XG\@\?۹6qx Χuy.t#՝x<]pZD5wM--4. @}:WY؉&MM'Q<`>O[ ,}giw,D|ǦER&i,]\$N+'jp\k@Ǡ;f5UɃ.#8|C\߆/thsXM\$oa6^Qo/GhpYڀ89YZp9n\$&Hf`H^v@s@P7vh({Cj4Ce;q!!)ϥknytٯQ8[\$ qz_xAy/KL<[sMt^OUE}؈% 2HkK= Uyc" ymj֚~,P}m@]g;SgjC%Yx55}R#MsGV=WT<6F#ExcXӚ񞖗:pi؃*"b1ְ|Fyb;xVf`88YS`M';J<#E,2װly1k*gW^:PEV>:o|جmhi(f\$Mu# @ugceұfEx5kVne4fR^*iVQ ~Yxf'|uyk~-a\K,Xڀ=6ݻzgڨkzͦӕ\ }*=Ni2Ajno]c,t>kz)>xWUך,[3"O/l}en֑C\$+ vZ694[[X).6GmYWXcAD3ހ9g7`ZvD@qkaO-SdxTk&9JAӞaf9P3fIF:&̧HQ[^*={. }ڳR0-i҅K!s5"EH-K~ [ k? >J[E6K8|͜-2x<0.G\fKf BDMynt+I4,:=t*|:;ҹ}Pj:R Z((((((((((()-!'0xk5620d|3g=׈5ع ?u#Hn% wX^1Ҵ4{LUȽHtZ(j-]߼l\$cG9t]n凨 ;7_YqoPcfZiw跎u{ʕ^x, cTĲ"V*FsXMl܏tU[KD,ڴ>X\Emԝ8<䑊oT->%plr*闎pA*tN>Tj%42^[vdz`/~!ү@ZUZcZiio*q0 fynOV޹;u88U!o+`uIXZ|v!G"F} +@4V9oGn*fZwe@V?E ?/s!/A[hnhg% 84+1hT` Կ9?dj_Z)k #Rdj_ZޢFnl)?M| &k??5?M~:#|Eqi4k˼[z֩P?9/FkiZ9\$4H5OPWr[2i*yeej`nL)K@̿ b4n[U#]O!GN-4F{e1Z+RԿ5/(V+wd2⡇MA"[F\$ >ѻPԏƥbi:O@\$8/Ԭ=jo/V57(Υ}`'s+Dp+'QA[L#ӃjҾgeQXIԇeze]NB CXg=EK0D"DWVYҵ,| _KR5P ֞@5tڗJ!ؠ fs\rG+բ8OSr߱GFK~l1Dʌ 2PFsY_bSr߱@*IXXG20ɫ7 α?u_~!ҵa1?ؠ|?#qj7ΐBb6=N{[0+ 'WܟR+VܟPcx<*'W߱Yz曪EkVg|cX@)k+W?(4Piأ'X߱@V1b+X߱@!XZ__m~lǖʪsU-N:^C3d{jҵa\(ՏMmؠҰ.<1&˽ R6unۏ(ko~?@!z??Lҭgs< θP4_(R I-f42 2}+n!?qى#?d(oXAtҠ,Xu1+/'Xbc~O?leXOl`>Ƶ"8#Ug9b>u?d?o(ekXߡIuР翲u1B'Zߡ@do(NA~tW}7+Zbt;Um_RUՊ>X玴V-Ǉ,/\$yG3g!oj+ZBo_P~MB m1<|lVsae_B3ZB.>Jlq#PAaޮ-+BF1YLk# Ow_(fc1Qi_6FEafk_(4PzEzkK_گ0\_?4Q~EksM2I}Un4 ;gTZO)CAȠM6=7O"!Po}Vb2\T0Q#>zs[D4絎5g\$\$>\$[#\`3U㺹OEKsȈSvA?B\$0xu{,ba}r@?ε?1Y#J<F?k倆P0~M%W1 %84Ҙ䌏aCۙX++'rF@Wb ӘzpJ=dQA'g}*d˹o>2 Q.RzQ@sKmu:Z_wcfe?֤I9,#7<%Of UU籶8 q0k;j\$Aa-*F,[#9Ҁ*_Od@HbG F6mϚ'i-ˇ9+oiF=֖M=' 82Ċv3.[t)tI<Ƞ8KbYMd OKPvX۞O<@,im#wfPI?cЫBڤo"QAY"tk80-0Kο/_΀E7OG_΀)Hy3gK17, u\$/=rxE]'w5RM6Mrr݁:PﮧMŲT[mrIҝiq*%W \$a4^^D sVRB~'f*sր̆RVAw @t[dgts:+y1imG`t֫H2F̊\$R A=ݼtr |.Ow=*斲UUKKsQjgѰ Du L@;èG圤LW\$eӯ{ 3 |U粖xd.O#ni h@ѿҀ+ķv]~h[gӖyFIQR{4"H,#8>fdFR{4o#Ku{\$| i>dۊٴvJt;n:ջ̶ ]l@GbO*'9ZɦŰ }#HKų}A[`(~8 1B '>YU&!IW{ P usW+iJmcb2m#)d1ȋַץcٺKfWdV)@9etMzx~t;ʶunj܏ʀ7h_΍s0dLK\Zk7g'U>d#=P[+-dy!`7gIey KKih];x`\$1;I/Ŋ7miFqש"NO5W{-ݣ\L a}H=(4v9]>yy J"H1\$uz ea'0#K L2# cqV꥕c`nv.qؓ@+?P4_WhkTڎ-QEQEQEQEQEQEQEQEQEQEQEgKԵ|[n3ں}`+C"}|jByEI5U/Ჴc-@Z][;deF>UEOO X]ۋCIe%;Ht EO~.AXX]MfxEʀ)cIkXI\}*c}#GkF=!p*4;,6*}\[ ,S'WrW"P+GouHڽA-젋q!Cqh#0Mt6H SK75l0wa@l<=O;aѩҿFiDJcD䀣cZ?IR|g-j1uѤoS`u4|1w 8S1ؓH'k"%q䂠S@ ƍ"fA"H j!#?QIFUEKpAz4mqtF[U#ُni \ש))2QA1@)tx|-@jհߡ ?zڠTk=/ʹP?1쫏]iѱ.=w 3Mq"mCrA?÷֦FO 6?2h:>2-ToGURi@v.;UJG#8\1"+7Ϫf[ K P#IToqb"wH~̸=Kޓ>5 S-+!m43{|iYc1Iƭ=T`M7m!48Zke*974ҧ夶'u1jށ7m=}:;"NSD1M3 bUFC7]8r;o?Qh>SJb- uWMe\$gOeI6I,/%ݝ󦧆t6@#23!ՐfNmyHWN͟XNI1Έ \$ 6?#wC`?:WдE7,+Fė>Y"?{9ފ"ɐӏtq K|tpp6jWQQ% {F7eWw \gjRTm.sbm {T vtE5Kqy}TOGE,ap\$4?mefOMsP8# 5\$>'ČJR3p.;M;Pe~v 1F<7wcnH!BIƪuas"3wȫ;[\$0ݞzPɡi.y&6C5^O\$Y悊\$nӭS>ϔgX??VFv#_&[EKOoƘ|-=3#sո<+GNqM.v0q"GoY4ntpOκXnKd0ݘqw[Jſ'#ZVq6\^Ȓ) ~1ޓ|ϧƓ\$Qt?Ox&2OJ.aa3s6ZBz?ҳ-71)?D[Y|.J6}9!R/lK}!S:VOE'8VHfbr8RZiϟ x?րEt,4h78ƭ\$6f*fa檘ⶰvZAm#G'oWI?0I[j ^Y-b/Gyb4hsL1ǅ33=H|3Q(뛯O֠c4JFXӬ+rg`@th#U ̛39Οy%wT!PmФ7?tk0") 9[ú*ɐl8bfn?Z"6N7GIuy|l#{;`z f6}\$R'`dQs|ܟN ƒAq7m]m\$erǜ(j3)[3U_AG:Ӥm#37Hݴ4ؒ='zq\$RiwmqdzS ig37?M4y|~c.HșƝxMix; *[xt)EP3Hcր _#" fhр_W-?J񇙷913oke!UL#Ӛ4]Mj"H]؛s7uD6L`㟕x+ZZ[UW{JLJ|1&ٿƤGʊ|Ioa[Wס4Ɨ@7bz=?7`?ս6m,O-^HQ1P)CՁ̺Y.!ƭi= SnRGb@84̓?~?2E{rYJ1VV9ϭ] CCs`2H[z /P4_Ph:RQEQEQEQEQEQEQEQEQEQEQERZC@y^Mur쥮6?ʺK4/o?ms9Qq*Iߦ o%:I¶E"F+Ed L7SǊs߶ v~u8n[x?j(*I3o:׉4KrY`ɏVnP|@|M-C}>7\$QIUHpoj-\*.ǭe%&xGrY,htWjyBkagcV;e8N1dKr,YV0P8zzfSC5_w8NOnũE>d^" V3¨8 KDq\*V{qW?&ҏ}Fm% |ڭۅ%/aP: 2I}ZOFcC]Ŷqz"_i!V<P?*-kDYUvQ8֎%(Utpր2%sp0E3_@d^R+e:volP (%q*8QZm[Atp20cԩhq\$.e"A-kigdfڣ\Z pA^A tD{v>ۚ KtuDZ򐪩v\$+.(ws@Z'#[PlgC |JNrz{7!&h^Ix }o緖' ƒm_DGQ.VL!V8M6[84umVHcV 39z%tiNZsn9ZjRP/&"#6pMcWD!EػU)k3y DAP¶%h ""@K5@ 23{zDΉ39k6@INMxFt-Ť'RvҼJ~>A|ON+PGk ݧ(Ckp]Mß}jZ"KySܓOQKQOD@Q\@T>+H0вD4I~7L!+x1 2I^*6f! ր)Eik.3l#v-SHH{WfkZ۸=PʠPj_gI~FlciN|XsҶ<ȘH]qhA24,ͻnl*s{O m_Cpz{qZ5H,y 9-fb#\${ ʶtk3nHňlWРkuO-\$s߯jY-7V2j(n.wyF76PbרR['ҁF9#ko3n]%xǵzG,cq@?Z{`ś\$t=)h]ó +[ʹ4F>TqDSY?-8Pմ{d*'%5K^4lT#'!o2Dppe(ŜEz,8Z_Ht?KE<ӉMYQ9"Zf]#@F@`Q%G[L#?)ی¯}#hqTm/%1.E_*\D5FC+==F Y.[g-9\)h0!9Qu[\$_qv?֮Iriomp:ԶBd0*a`:nQǨ@g<\k=ǔ-ۈ c^i!\DKm'ڕ-%Ļh ȖEIK0dq8n5]*{e\ eVW屎G&3gՙV;āwP ~91qaҭ]۳/\$g]KyaJRN qږB0lXƫ5w-#j˽:)2aGZdȠ ?iXnǭjבyo^x\$EbiFu[(:J ?~E__Ou0T*HjUqcR`J5b[ ȵM=E ۼQh(sO<֢ YHNLvъ)j b:Xn#ciH' n7jL pHQHƥ(%EcKE1n5'Q^6ܬzVqYL Hl(Hs9Q@ދnWPI\$&F?Z 9|p{Zϼ_ Gz7!5 MC%UZϼ_;]8|{TjJZAK@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@!4x(?k;ͦ}:knLngR~4U/f'CT?uIPN99.\3"k5]ƗgQhn\$?.7qkTk3hbvTe嶩H~L Qj#j2j8+K7rxhCqe4#bTJ\$PʷhDj UNF~|7uS\$x?2;ۈ? \"P@潼졋U<:- IeF{R6tb[7&?oΑ/R#xfc=T4X?Y+ <Ҩ[SB#x@c*\$<5s垩<~Y:ו5s厉<4"\,[Z N\c5=`fyD9.m7tS^<:V1xv-NײvH޿JQ#tctԮ1xr#ovzhuh|I2 gk29dۆ^p䌞TAr?xP }N@ ײ+jw %FB-ËBݱ&}VTmc"Hڬ[wl}IO za2ELcwsK`."b2qT%n%px~rd3I7ږ0ǿ<.;5sk\%h }QAw"o_e?ƀf}#!eG`&}X;p\$⩦cEU`qԐkۂxv1bN #wKIYQR\\$BS\$Fm9Ue'JF*PG !?DH d)<5u%O2L 8TF.<7xX,=:кPw]@j?5Ρv)njpcԑqڨtYxYj\\$6/ܞ33H5g?zC  fAmc 8t٥U6,݌GҪJ (LuJ! 0Fj}GOe֫I"%tUtn#11.ԟW={O 6@cn%Yʥ?^IFvfߍޝ?:Y5kJۇΜ΀4ok5*TvK5C2d=^i5Z{}xjF1@I\$ҶC@pcoMk3EWTGE*~CUnOݣ]d;`zW9t/ɔGoHQV]?t]z1)O]*%h^X^2 %}ծY]Y?ƚuk3ye3c a 0]0w´mNv8k3^K]S?ΐj eؑLX0"`Tr,)Kɤ}0Vjz/RO皑5fh7x hSNǕpj+ƕw4@`3fŬK1W9bO4"l__=Ð>)o%9\${9 lẕ"xnUҦ*Fѯ/7U0ZV#;so:gb˔\$NF%AMuD~X&? JS&?h%P\Eul`qҢ͔UgvǠ"8]~Im zNyր;KX#C`w {kꤰsoϝzs&+~_Gr4z\$y⌕rgb p#oO0:cƛ&\$ R8VE,pzuwOP#? ^TzFb~TbmaDUmdE76֣x-0!:qN}ye}1@\$ cwf:*vavZuxU_DeS8>uԙv~ï1P#IU*0=jsBSG "}t@:5O/\ZjRކeh~&\gBREPEPEPEPEPEPEPEPEPEPEPHiiq C_Fp8+#'~!]G, lʪ;KPyApn{G9?5U9V^Zh\NiqRFA>"mʎ_˚V `a\$[fyP;Ӥ"Kv2ɎWL&1 GTC7`}\$^QX}>KViOsԡq ##p*KiĜdP߇YZE#\g @'X038v\oqt>̏\$hzsY,Ρ\$hʼ)/rsҪaVFS28bu4c\$n|e.x<~T5Lcxz啃dm)g!3*#cnZh#[RWgޑa<1Ud*K㨠 r6׃}UU`h^P mHvDgqp3@y\$CLd02B(@p:53BٖP0Ec3215 ]ir*݁K#6 1UֿL@R++)ڌү[RAft FA?(MDR416'UhDX©GO'sIvo0]!raڦKy,n--.AZm() ##TBV@lu < C}\$c7HB s[Uil!gPw42ȈOHHLqj艿s6i4KDyJ[*2HHVH 58HdC* z=\$2<рJwKP1qKw4Q!(94ۢ<Ҥy\$HL85K=\$0ɱ~SYG)kF?eNW?hF;L #Ҩxb?Rk)ldQx<*Q K@Mpds#m yA1I}n0~B_?\stB% ҡ}H*9sH ;l~R_BdP.]ۜv+IV5R#`篭R}Qg5(Dҋ;Sn6H#QkydM=ـOxЄ[=U+(i6uݲ**l!i?~ȸV@We{HIhBpsS<\C:ƒBaOQn\$xH%'1V4i6\&2.0(FȊ9J,nqW1#DNz+ߘѤ*ڹQqקjG Ib͑-8A!Pw` 3U׎ŧHlA<k}`TBb|pO=jyX+=,\jݢV,m#=8OcznLAc(+Fk>emRg0\W BMǊP7;D QZtryfmI'V\$6kq`1ץkP M5nrǜ\=N܅>Z/1'՝'g9"nITǵZ藎9T#n=KmRIITs\$9u[q=qZu\$pﴑگl,v!wdoM+Ct_+J]AԘ"T&U5U5(ɘH HS=ԉH X-^ZrE!G@^]qN}3eGey5V)הw42Ug^v8hݭڃ(pC }[5Rb"29&`2aro]'NaD+@,Tw8;vh !=zjﺱFa 0}AhR |en&*_`Ĳ>Y=JWGt*q"]GTَ-QEQEQEQEQEQEQEQEQEQEQE;ֵa%]HOcv|b\$?k?-MLU-Mgm>-̄&こ@|I& L& D{e`;ROntP.M;olx{/mwgҺVgzR#aloOM&:jZhʦ=(-y?s˛Mv*o ;BԮr),zGqR{dyd3q4 zʺ{,l ۧjL.oL@dv8|Ab)c'\$ӿ7 а卌 o8|Nyflxiߛ(3[@ #ħR/Ϳ¶.%[x^VTUK;ֹvl0OL'{QĿӿit.I|ry ȌHq׵Q 1Zw=&xm<_Vag9ϐw\$X 鯩I7ʟ)@ͧootͿy3A;c?#6hW鞃M"(Om? u6y~̥|4\3JO4?qݰb*l>=:kHn F9U/]?ootͿ®<ěM{""ƪĎ=s4P}?Rm'}?UbQirGx,8ẚO7?VҜat?k? ysw'_z&ݘoa"+uRx"k\.77+k:f9;?!!\$+M\$t>c5rʹ<У8Ȧ݉oA(e( s _^| 1kGhK.;59"BSȠ a c4Q<h-C]TᡴWiDrdVX5[O3:)8t_EgA۝]b#6M˩K#ylÝ=h@M4 &|=8}.5 NČh\$+ϭZְɂ1@?o4¯4 (JY| !#?JkM]Kgݟ SM3tŽ\Hǰ8bFM3=3ґR#M*՝angdirڞXߴFx#s@/.&s]7>V-m2e;ms!7>L2Y~F:ӳ 5SO|5]핆1S'Xev. 9 L ivi5~%Д#533H FW;0=q@s=?&ugޜ\$[|k_~+I8#Ҳuo7nӿi?sMeKp 1HRI*.3!,?V)T \$=i\$)W|m vz+N?5b=I@iLi'<72Iqq(DcNEQψ玛_ψ玛MM"MEw9}i_n(hRɎb+g_MџvMkgcC@/ay.\$jwq#MH熛_e:L#WP?8S{q*Hʊ^"- ipm}MOHŎXNiVchұvp0NׇiפͤHl}?+]%Ki6n'Egx_1T.ӿ4y m;?Z`R1}q?eӳ?KkM^xA6On(D NT_ݟ[^qH}3`=*HLw\߯϶XZ=O={v0t`qruX!;`\LqivXo=3ioD,˻!Gq~ x:JBv4O:`M0損o|';L6m4<ҹe \EL6S*n\$ V P&X\8y%rv hT+ӘA6agdeBL/L5jk]8W~˦i|}tM!#C0/Ф@'Ʈ<6`3 ( \$A6ay!]7Sv_C{Uk(eusg^I}'V\$M &zUҀ2<϶kM]ΨRߙo ҇NIx}tM'/ӿ5K@oMy!C5<^@ʌ \$c1F0z!C>Zw&;?C5v+i twqqľi\$'Oi|ώe-!XV"wv೶&3" o&XC5m3ʬd 0p L|m'qp}7K>KYXHl" #uL:oRQZ| g@?9ʀ;EKH:REPEPEPEPEPEPEPEPEPEPEPH{u5ڎ[^[D@"G/ ר-;+; KӢ?1}/P6@0''5aǦI)>^|x8e 7lfR3#C&[ _~kc\b_ 71LFP15TXny\$ 1=?/-/5 Cb_ ^H^#C)/&Y\$+-o5 ?.5{k ڪ=)~SXط]w)E;x|b?#W4졧gb\$>W=7Rm.ZgF:/P|O-UTIeNOLU7IAn1#*K^Kco1XDK:h#NW ,1PZhѮ>*}m!-c;L/\`yqn4]αw/=?1w/P eZF1pIK4][Dcry;d]b?GEn% rO'\$-ls`q2}.v݁ A훬e gxUS+bF0}:ҭ5)Ⱥ<l]~KH?7xK{25g14\Ac!;T?{ ]~KU'לd\z]4Z0R_ {~K@ kkDiAuMkk,0 l\$v?n!v^Mz@ -u8?ˢg7Z,\$2_f)طwL/RruI\$-<maPV  7kw|]!/P}%jȧle"cKXCg @֠Ǻ?a@E ВJc%Q8U#XI2 ;W'-?7y/P湖3ҁ31ҩ'?Kbr_[IK8fM*{('ŸeW1*˿ Rb_v_½@̲&QCYWRKZ5%ȕOzT?wV;vZ|v3f_)>zq 2jLa!.SP>q\$qdҳkYjҮ߳F˟g?*h&?=u~ր.i* fBI9R}2xe.G\PbvZAۯhǗ .skn|Qqcqv#}9sK}n\ KA˟hOLMqi :4ZL6\$U*?? cۗk/\ү㴈<`ƾh(AGtmKhFT2] gߥY+Ri?,~~-L9fJ-FΥ1dTgFԿ=q~gz-]{,yhj}i ^JxڐZ?11s,F4t}K8ޜL֏mKh-K[YM=ƗuK;|/ߥR%; 2ۋ0V,cHlbCJrOKG6A\+6rH\$HӒ>:ՙK2%\|2^޴HOǧK@3yYGXM\$FYX+ uc*/O~i2ZC  9֥rHʇko8?HoO䴇G>?ha\$,!iD{Un ?Ժi*rW!xh=?ZF[}FVnx^6Dy2nGSh6??7ZzA%43d(ҶJ;ߕ?=/_ҿ9Ei 5ik"u |98gE`dj/dj>/Fdp8Pq[y.#{WVفRchտ<Y)M/RшjuOb+/B#W?GF?:?ƀ.\[/8PA==Vܥ=~bejoN^?8Mnڙ] ,0cg!s}Pej8?o@Xm ʾXzmp0Qk? ?ƀ6q"]ʶcC,?ƹN:Q!,&8~:RQEQEQEQEQEQEQEQEQEQEQERZC@O75=oW7Gvj{G} 4M˽,8zH<ĕ\$.{f`)&ARNI pDd0:9)oYHB<c4[.9'#p)F"t`q#\$c \yfNc?Χ!v-\mҥH(˹H؁~@)rfrx7WgHAqp:~446YFRzTarjH_vxɧP"aM"5U?xqU&oFwyc\$R=*Vdb!f%vX5ab\u69A3I-#CNexbOtaGC8ҏf _ưU_,G@Cqr"}^Z#Pw洏h 1p,D*# zPq(nYQ1x)</@:Vz\6i7 Bz};4!˨*[ʅ1'w\GeOi%҇y5d˄c%8WX1j!ucUTf3saďzgkhCdd;\$kgRwzԥ"c33! PK,i& ӕT?y"G&C"75nBCO,j + PmeA28C&HuNzr) \$ m"gKm\$}T)lAm)3KTIX]4]6A`~,5n+#4|c2̰`·_\M<қ\c:u[os\$ROV\$RO#hICGNh\ 2)^;RU98R yQ6Qdc#nb*|c~;ia^EfkC;K#~*||;~2/.<Zެ+nQ&Xv(izR{?:PkdKdC`k2:zRH˨>a@/rQYv̷tW=Wj֙ڇwyɊdGw4U?%If߁ǵ6n'NbClvaFe(=0(K%U)cn-WjPMs& u Oz/-! nMR;:/OjdBF0%qN)k7c;N- \$ў|1"3LE.dm8R}OӵiX\irX@}cKǗ!~~U< "4Rģր2I0i OVK2N[Ny?\$Iʩڡ_d%" Y*^<gojK6I wvN4*RI2R3?x榳㴙dG\$@VZRݰfvB:WeO2BZOǞAHWtnsyo3=Ed8Lm+^rb(PG%Rc1\[TB%<8,p|b41\$)G{Qda ?\$Q\$, ץ[;و d46 qҲHH@0Gg~F}+L0Q@=/Cڰmm?bHs=E2a(=3YR]ڭ]Qi<N8w`1TymdHZu-ܖ!b"+֝]i䉂K},,;! X7b :K̓THVYY)i[oEo%EQ"*%#fxU\2j=RڵJN霮Tdx-#/"\$z ݦx%'7t 1@XM[+/רzժeW,Fcj(5xxx,q\o|st)h(((((((((((4ׇ+;y'OdVڅ,ێQ!qgkwV24 7N?3WlbtI\$y\å1ѿ?3Y߆tK#PwJ+3/_ Px[F6ѓd(?}ji>yb،,q׽t0Ǭ\KDRIBn<) y>mQq2H?Z5GGiY#VUa֯CҐw.@eA~3PN?IqZɶVwY Ӛ3,{m<2q? QHW!B7A7r: .Wkpۺ*X;RY.0V]K]qu!Y `Tʀ1:O\$-'޵4_F}W|-r_7}4xk^v 1g &7sQu'H=~Z#Em1eɎ9 ]0N*IofPzc4ވWrǷ1roEu!jn.ģx5vњEYP&ߚxuiΌjV8ujD\$a9מT/`ȣF8nqkFۻ쩷w47ǧQKpXFp\ &6z8tgk]ƢGnmm0NTӜҩi4971bF z* X57 ["r?M9Pp[5\$PG퍃=<0 :*T?CxoFQZsP7X;HALE<4I*nrN?*P3.Gƣ2 o "}*Ѱu ߌm4">?oo i_}ƶMrZ'tKtp0;j#7R+fNSZBӸbM ΊXoOnGc`czщŌTwOOƲa(X+D,d),tSm\nȑ~tGt| ܏Χc4ZMӹ)R*\>[,wP mFA\$ gcLNrMrO K\$A@AL4_|Fb1R #%c[mA(a H27Ə='`jJVq@I~>'eʟҖWX"b#dBONq@?[*C&xkJIHċuPJ4F-(-tXFxcJLg?(篽b4h.';,VNC?Z7LkgVyiItjw=EN|7+m*i ,@ȑ13F2M-K(Qx2JK敼Iw o#gkƕYW;UHo)]Ѽo!ܛpcی@`pDa4<]H#\$PCX\$KY,m![W>qtL:Ҍ344|"VLȝuKt3jvnw Լz|yq)h+FR~!@ck+ǧ 26I+p[ʫst4OC*Hi1R5R]~UʓyqJG[2ڬg䌯ǰ K!Q1;/8)>O#bcI}\Щw|9Y< OkM'VUKirW+ht Ft\LXw5MYg:cXWʀ7'3vd٢1?I4ZggdӸC-BF7Ջ9(獛e%9hFO2.?!Ƥ)qn *{q-Ƒfb9;4#Za!ƏFtK:l1Gx !>bxu"FtNӃ@1OVV3VFG+6yuK8ČKq:}7?%ƏEy v)V9 _N kRmkoFn\^ʀ;AKH:REPEPEPEPEPEPEPEPEPEPEPHiiyK-;Wזu#5ԏbx#B!] cm}յAUoIm_8`QUqҀ1&?ZEM^l+Eʀ*M [ 7}8ot_/^DFrT⺛r,Ry;r@0[p_E2O*ֵmWƼ#ֵPIK2Ԓ,SEw[dȣi7)AǶjԺޛ6ϩ{L늿>L&hQ^K={Uɮ 7@䚖{5(HD0#\$UMoLY\$P~MJxlKb\$vPʣ gޯC?#"(_\$LnaUZh1?n(GjM4zVtmQ-,8c@k*\$x\m%=)r/ہ.,I; [~\$`g4l@X<㸱I.}qsֶ;Y4\pJ或u.s?*O/ Nkenx hrÑTqƲogB* ] sC&(6è'󭿵C70NiD4FP`[hW \-l-ܨ~ZdJKHA"Ct4.#~`0E#k Sjx[&Tc Ì{)2dcր1VU~ڊvzCC a|v;V[201Gwl#?bɫh@@IyǥHu0U(6jӒ8HlYai{m{g I "v]gIL g[Mr(̇D7rOcR4(ZrGxtݝBV̡&rgͮ@ڐbqcҥִ;h_+c޴Jf2a-bbF*wc ;_K.mh!`14UI<Ò6{Vк(ϖ_#I5%d@>_սS`By=MLؠu%vP7X;O64 Ҥk+ä)<`PO,@@=3"&!a\KIL1(v⧈X͝G2s1@AiϨDAc׷Q&Ii%m=y消BCK)a`TEPL%{ tqUʃ @֑ol> nxkAZŮ;9C@n}aczے@9z,0𐍻[=cw܎r8lL- F~d}CEYjq,6l cY8F5m0r*WOucj>|]CDyX}sBդM\,MhF;Tڮn`x8#6,cIt-?(_~RH?di}";]'}~c6j H,q\G'\$8]ϳH?أ:} b3nu:hcr}* rǞ \$Vi ;p,T oJٌ ~J-[D9em.\gAhZ5єqjv\YmDTpyoj# _ښ0KTUS5m[P!+Vt-pq 4гZ[;fGF *لTrc'QZ6ܬ UجtrZڰq]?K7= ֍n#\$䓚J>REirxYOqHt;|mW> Һ?u#[NG8:w[ߥ K[{oz"QHDwC- (((((((((((C@_#jy煯-5=tCa57ILq]0/uQ溱[ GQG2?}@KRn]~bhIk\$3 + v_:vx]I=hXeK Kʖ'#Gʋ}pc 1y,W]? uw'Ÿk\$[8*#5sS-Ȓϵ2Nz5̒F 8\S.\${TQ]H3Qvm- e"<#^;G8Al4ZڙsMZF?&_웬tp8֯nJ5 fg*xUv:b.prh.^;"68 I:,RrE?w*rrЮFz恪\(4;Pw\$XƈF3f?r\$b\GYsonu"8NMIFz%e;zIuW6/[w@H˳ oT~V9bQp'EI /rwesҦ\$q}Q@f'+1HӂNt&uE/s뚩-z9ҚnG,t[k CNFHaiIT<mSUu[+NmRGcn8xиEwm\ҨCpӀOhTfVm")a}j!xX.9C@H7mEdRH^LYo-I}cu-HT^_<^gΔf.DQX7A4MxرbEpU䕳&z WiMp4[* 4bWy\ֽF\K PmȭGgtem0~J0ؘ,"|#ɥ߬jY䞕# >Jt:̐W?'zmS^*!\$)#8MI<3huC*JXH+6X24\$ҡKHaQL`ao8@}ު"Hκ\$J5<jGC@U@1:e^YHY⼁T6] tf ](,o"sdtZS6/S {W>nۿK~uQԟ)a_,ax`[[MxU,ˈ pAR^ 7ݎJ+)ps@ca-zn!zF7۳3끎jzɴy]I>3qﶀ&9L? [F"hI40h;{RM!M%۔@l伸XoDAԁMWBFq*޸5W0K\jC\$|c!qݴId+ L_QcBOv?ʫí KzΕs˨t!8)׎vj?/P])]3SCr:Dۗ6|_ˠ W&,̩?̃z. <P9Uo/7_t6ط۳chb`QĢG~~i/FG;r3T1ҍaˍspOր 䵴q+I#:oVߏï㚮BVDT~zOO&Ԅw*c};VPsɄm?έɭyFz~:;gD6ǔ{ր.Ͽn42c*>P閣3\$89%rhډo_+QAx-68n#[ZKmljXlَu-a\$5"S@F1y4Ŵ10mLTdMۘRGVQBt}D3ua,feu&fc8D%3֫R7)ܞijOI4@r?KvB@lg8čB&?9\^%Copo/E-<;c~&M@QEQEQEQEQEQEQEQEQEQEQERZC@g~_]/}^֮ӵeK=eR0 u`*ɌdkttVVD\$v=Yz:Pfχ*Ӭ4 ʀ.A?PLks;gmhʲm.7DĪ,A8 v\.#!eڃp`&u5b[3 ꫩ6yVo%sP~L!y 8mEXACp;YN|UU0Y*\$ENc"T6'o E!NQ--,%X ;v͚F MktO LzJmZyA vU,x,:S5HUBqisJt҆?) oiuxՑw#J%[ 'V9ӦO'#V4cJ*3|\$P<#;g *%3x>*;i˒t`p~=*[hMqlڀ.L=E-d PϭeL%S +Zخ\$5=,8sU.쑎bUc_}xMt|0xx7 DnF^f9,v O'ni f򼳿ialT8<:ija|3Ӯ{'aX=C Ryc3u8z"\$#wa5wr !I(c{e~ZC\$8OjYyU9M3=02#a\$c}-DQ#? Yn m啕󅥒U2XU]nI-E]l sPy24qÄgFs@Fcئ2x8 xcvY% e:_Ȼ[lBZ[ɠ ]H0x0Z{d(/UzG6Yq?AT.;! 6Ʊu _!V.UʜUaU5r?tB6J7+#g Ձqk!^[*qJВVTSmvz|`+?z\%90R=i'v9qov i|(JڤYd*H}ۘ9njH"F=֝m|]ty?xU\$+בDn\$hLu4vme|Phd4s咻H\$TInI[y"TPĶ?*n )rlT<,\P9TddzJ5Bɍҳ"YnbFةg:'K!B{hP^._ݱ2F:H/qUT@2Ks9d@8QYV̩ sn͵έ5bjMHy&Ỏ1Q:Rњy-< `P\\E8UDI VIwt=:#Q@Wg`Awo'R[j tepN}*4b>Q iF@m@cCH\$6qS*b*%R*oS.K F1OW0T#=>!ñI ڧD>kw{ߊi #i`2'JM]^erV'qӰZɠS"ķӚ|Zy:a n,2F| 9Q99+\$Xt{ġ78z׹\$[m ?)h\S!歉ىEaD\$ꤐ^=29dA_%A'ҮBTLcqzpMc";'-1M"\oǽ>KJaʰ` ^+r\$l'2ItҀ(cWkI]A(4\$4pP*ɕ1(r銚h\$U,2F3Y N 3|h^# bzf.V9OEU*yw@0ª2r)u®%P6hݭ7\${[8'HT<5RCó![5W{4^%0,1cA~jA?A|Ceq4r2 ώ-r&rb fAHkl, anhD"Bd;4˃t D8PO|YWFVOe'KggA q"lC3zB%4btSzTl720;sS{MawX[XH𥊗71qdlcgN3ӥ;G3r\$1Ac~.-VPZq \$I3V.xL+mt!ۮ۷OLeǮ3 zyqѲ~f顰0IڊE8w3@5|zyL 캹}7®^\k B;6:3Pyo=|YD``&sh]-K:XgSMwj+\M1\pܨ\$uf5:j˺G,㜑Eϙ{"yYsh&=XcM-=(-ooio.:tR!m%ހ UWx^[)Uu `-M&-~SIԝ9vҀ+6 Zo~π~)'0][ALfIi;k}5HoׁM<`rS[^H;vydd}Xdl׷峏ʔA#Oݿ¬Z\J#`y[TQGPp5.8j_;l3o&Sd?֑s,AV/ݝ3 kFSO8*}\: I/f9,#=Ҁ*M5m~ -2\rO<s)mǆ4[ a,1ej_۟zhYnp[;]ZM+d5_I/T>+dYfbD}Ih>)3zXgVf9bB<54eB]ޠso'?I:g(%EDm@z aRI7wbVTyYqVI9M?o3[NcN8y'` ^ybqW!ǗMn ]J[VxE2 cqD4S8eTmvOEZ~=77Tfxo,aBo"Yv)\zĝ _Œ7+k^}3QD[G^9?{IC?玟}R\$M;se)wf1tyۏҐAm|W,\$6V3JINif(b8> #-ϧ3qefӘ n?Jцi|cFXs5 iD@㹠 o8v x=-ồotp01֪Iǚ匏j_,v8;Mv"LvzjUJi4N CqSyy BIs \h#~ɦ䍧n)r0BY`ǟҵtV q+!8Fܳ0P?-t,R,}§ԥ'˒ 09PG3y/͉ʌzkֺs!if*v1G~vod@^I:5r :A@ž`;?ʂ!ۃmaM-(n|^{\$r3ar*@h2᭬8KLǵoűiݔ8=oLV'PG:l S'򧉼F{XjY吪s3*Ζ䑱"p0h<Ͻ?Hgk[/´/']"[9vnEy0dGu?KǴ+J ?´.גHbÜc񥿾KUIPp3׭dħg5?JnKN#IX哓g w%(\$\$o8~t.Ki֟k7? ٴv ylՊ߉iW;\$|E҆oN"r7ڽ M*- (((((((((((-5@w8\^9o7W1b"}&?!qcos4Rۣ'MRO_A.m&z!8~ cq+nݻN1:VMڗi]+7]-4h"u)md1szP*С:*?Z萤S9(76H |nGZ_ɣ+&|J0G򧶏 :7A@mbSoysk̢RUN~`]+&61)oJJUXGO}\$j7g&Q Ĉ!+\$g?#GS[ooZ'K_:LFXhp&RX`2y5ko }L _tFOiEi+# R1_##S)uK=L(IwHYo |SrWR#y)AP9/}e@' XDvw{3sUBV)N]Rge@E#ܖXG~iF#b*4%R8)?(dY(bpZ@\$NE-Ko8+X|I/(d7P>Ln=*[m>ItyI!9֫cy<OCYSU#Jx5.(JRK_]09}R TmNS( I٢LD


text:
# Changeset 5a3d67c for doc/theses

Ignore:
Timestamp:
Mar 4, 2020, 3:31:39 PM (3 years ago)
Branches:
arm-eh, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
f9723e8
Parents:
48779a6
Message:

Cleaned up AB M template some more and add the Makefile.

Location:
doc/theses/andrew_beach_MMath
Files:
3 edited

### Legend:

Unmodified
 r48779a6 % T I T L E   P A G E % ------------------- % Last updated June 14, 2017, by Stephen Carr, IST-Client Services % The title page is counted as page i' but we need to suppress the % page number. Also, we don't want any headers or footers. %---------------------------------------------------------------------- % TITLE PAGE %---------------------------------------------------------------------- \pagestyle{empty} \pagenumbering{roman} \end{titlepage} % The rest of the front pages should contain no headers and be numbered using Roman numerals starting with ii' % The rest of the front pages should contain no headers % and be numbered using Roman numerals starting with `ii'. \pagestyle{plain} \setcounter{page}{2} \cleardoublepage % Ends the current page and causes all figures and tables that have so far appeared in the input to be printed. % In a two-sided printing style, it also makes the next page a right-hand (odd-numbered) page, producing a blank page if necessary. % Ends the current page and causes all figures and tables that have so far % appeared in the input to be printed. In a two-sided printing style, it also % makes the next page a right-hand (odd-numbered) page, producing a blank page % if necessary. \cleardoublepage % E X A M I N I N G   C O M M I T T E E (Required for Ph.D. theses only) %---------------------------------------------------------------------- % EXAMINING COMMITTEE (Required for Ph.D. theses only) %---------------------------------------------------------------------- % Remove or comment out the lines below to remove this page \begin{center}\textbf{Examining Committee Membership}\end{center} \cleardoublepage % D E C L A R A T I O N   P A G E % ------------------------------- %---------------------------------------------------------------------- % DECLARATION PAGE %---------------------------------------------------------------------- % The following is a sample Delaration Page as provided by the GSO % December 13th, 2006.  It is designed for an electronic thesis. \cleardoublepage % A B S T R A C T % --------------- %---------------------------------------------------------------------- % ABSTRACT %---------------------------------------------------------------------- \begin{center}\textbf{Abstract}\end{center} \cleardoublepage % A C K N O W L E D G E M E N T S % ------------------------------- %---------------------------------------------------------------------- % ACKNOWLEDGEMENTS %---------------------------------------------------------------------- \begin{center}\textbf{Acknowledgements}\end{center} \cleardoublepage % D E D I C A T I O N % ------------------- %---------------------------------------------------------------------- % DEDICATION %---------------------------------------------------------------------- \begin{center}\textbf{Dedication}\end{center} \cleardoublepage % T A B L E   O F   C O N T E N T S % --------------------------------- %---------------------------------------------------------------------- % TABLE OF CONTENTS %---------------------------------------------------------------------- \renewcommand\contentsname{Table of Contents} \tableofcontents \phantomsection    % allows hyperref to link to the correct page % L I S T   O F   T A B L E S % --------------------------- %---------------------------------------------------------------------- % LIST OF TABLES %---------------------------------------------------------------------- \addcontentsline{toc}{chapter}{List of Tables} \listoftables \phantomsection         % allows hyperref to link to the correct page % L I S T   O F   F I G U R E S % ----------------------------- %---------------------------------------------------------------------- % LIST OF FIGURES %---------------------------------------------------------------------- \addcontentsline{toc}{chapter}{List of Figures} \listoffigures \phantomsection         % allows hyperref to link to the correct page % GLOSSARIES (Lists of definitions, abbreviations, symbols, etc. provided by the glossaries-extra package) % ----------------------------- %---------------------------------------------------------------------- % GLOSSARIES (Provided by the glossaries-extra package) %---------------------------------------------------------------------- \printglossaries \cleardoublepage

format: plain


text:
# proof of Taylor’s formula for matrix functions

###### Theorem.

Let $p$ be a polynomial and suppose $\mathbf{A}$ and $\mathbf{B}$ are squared matrices of the same size, then ${\displaystyle p(\mathbf{A}+\mathbf{B})=\sum_{k=0}^{n}\frac{1}{k!}p^{(k)}(% \mathbf{A})\mathbf{B}^{k}}$ where $n=\deg(p)$.

###### Proof.

Since $p$ is a polynomial, we can apply the Taylor expansion:

 $p(x)=\sum_{k=0}^{n}\frac{1}{k!}p^{\left(k\right)}\left(x_{0}\right)\left(x-x_{% 0}\right)^{k}$

where $n=\deg(p)$. Now let $x=\mathbf{A}+\mathbf{B}$ and $x_{0}=\mathbf{A}$.

The Taylor expansion can be checked as follows: let $p\left(x\right)=\sum_{k=0}^{n}a_{k}x^{k}$ for coefficients $a_{k}$ (note that this coefficients can be taken from the space of square matrices defined over a field). We define the formal derivative of this polynomial as $p^{\left(1\right)}\left(x\right)=\frac{dp}{dx}=\sum_{k=1}^{n}a_{k}kx^{k-1}$ and we define $p^{\left(k\right)}=\frac{dp^{\left(k-1\right)}}{dx}$.

Then $p^{\left(k\right)}\left(x\right)=\sum_{i=k}^{n}a_{i}\frac{i!}{\left(i-k\right)% !}x^{i-k}$ and we have $\frac{1}{k!}p^{\left(k\right)}\left(x_{0}\right)=\sum_{i=k}^{n}a_{i}\frac{i!}{% \left(i-k\right)!k!}\left(x_{0}\right)^{i-k}$. Now consider

 $\displaystyle\sum_{k=0}^{n}\frac{1}{k!}p^{\left(k\right)}\left(x_{0}\right)% \left(x-x_{0}\right)^{k}=\sum_{k=0}^{n}\left(\sum_{i=k}^{n}a_{i}\frac{i!}{% \left(i-k\right)!k!}\left(x_{0}\right)^{i-k}\left(x-x_{0}\right)^{k}\right)$ $\displaystyle=$ $\displaystyle\sum_{i=0}^{n}a_{i}\left(x_{0}\right)^{i}+\sum_{i=1}^{n}a_{i}i% \left(x_{0}\right)^{i-1}\left(x-x_{0}\right)+\dots+\sum_{i=j}^{n}a_{i}\frac{i!% }{\left(i-j\right)!j!}\left(x_{0}\right)^{i-j}\left(x-x_{0}\right)^{j}+\dots+a% _{n}\left(x-x_{0}\right)^{n}$ $\displaystyle=$ $\displaystyle a_{0}+a_{1}\left(x\right)+\dots+a_{i}\left(\sum_{j=0}^{i}\frac{i% !}{\left(i-j\right)!j!}\left(x_{0}\right)^{i-j}\left(x-x_{0}\right)^{j}\right)% +\dots+a_{n}\left(\sum_{j=0}^{n}\frac{n!}{\left(n-j\right)!j!}\left(x_{0}% \right)^{n-j}\left(x-x_{0}\right)^{j}\right)$ $\displaystyle=$ $\displaystyle\sum_{k=0}^{n}a_{k}x^{i}=p\left(x\right)$

since $\sum_{j=0}^{i}\frac{i!}{\left(i-j\right)!j!}\left(x_{0}\right)^{i-j}\left(x-x_% {0}\right)^{j}=\left(x\right)^{i}$. ∎

Title proof of Taylor’s formula for matrix functions ProofOfTaylorsFormulaForMatrixFunctions 2013-03-22 17:57:04 2013-03-22 17:57:04 joen235 (18354) joen235 (18354) 4 joen235 (18354) Proof msc 47A56


text:
## Introduction

I have used R for more than 10 years now, and I really like the environment. I found that all of my analytic tasks in epidemiology and genetics could be done within R. IN recent years, I have ‘discovered’ a package called tidyverse written by Hadley Wickham (the inventor of ggplot2 and many others). This package is really useful for data manipulation prior to a formal analysis by a specific package.

As far as I know, tidyverse incorporates the following packages: ggplot2, dplyr, tidyr, readr, tibble, and margrittr. That means when we load tidyverse, all of those packages are also loaded. Nice and clean. The main tidyverse functions are as follows:

• mutate() for adding new variables in a dataframe
• recode() for recoding data
• select() for selecting variables
• filter() for selecting rows
• summarise() for calculating summary stat
• arrange() for sorting rows of data
• sample() and sample_n() for sampling data from a dataset

The great thing about tidyverse is that it allows users to do multiple tasks within a line of command. The tasks must be seprated by the sign %>% (called ‘pipe’) which was developed by Stefan Milton Bache. However, the pipe %>% can only be used with tidyverse functions; it cannot be used for basic R functions. In order to use other R functions, we need to use %$% which is just another pipe. In this RMarkdown, I show you my experience with tidyverse by using various datasets for illustration. I do hope you like it. # Loading library library(tidyverse, quietly=T) ## Warning: package 'tidyverse' was built under R version 4.0.2 ## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ── ## ✓ ggplot2 3.3.5 ✓ purrr 0.3.4 ## ✓ tibble 3.1.2 ✓ dplyr 1.0.7 ## ✓ tidyr 1.1.3 ✓ stringr 1.4.0 ## ✓ readr 1.4.0 ✓ forcats 0.5.1 ## Warning: package 'ggplot2' was built under R version 4.0.2 ## Warning: package 'tibble' was built under R version 4.0.2 ## Warning: package 'tidyr' was built under R version 4.0.2 ## Warning: package 'readr' was built under R version 4.0.2 ## Warning: package 'dplyr' was built under R version 4.0.2 ## Warning: package 'stringr' was built under R version 4.0.2 ## Warning: package 'forcats' was built under R version 4.0.2 ## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ── ## x dplyr::filter() masks stats::filter() ## x dplyr::lag() masks stats::lag() library(gapminder, quietly=T) # to get gapminder dataset library(readxl, quietly=T) # for reading excel files library(MASS, quietly=T) # for interesting datasets  ## Warning: package 'MASS' was built under R version 4.0.2 ## ## Attaching package: 'MASS' ## The following object is masked from 'package:dplyr': ## ## select library(magrittr, quietly=T) # for interesting datasets ## Warning: package 'magrittr' was built under R version 4.0.2 ## ## Attaching package: 'magrittr' ## The following object is masked from 'package:purrr': ## ## set_names ## The following object is masked from 'package:tidyr': ## ## extract ## Loading data Let us load 3 datasets: birthwt (within the MASS package), ChickWeight (within the MASS package) and gapminder (within the gapminder package). The birthwt dataset has the following variables (they are all numeric): - low (0 = normal, 1=low birthweight) - age (age of mother) - lwt (mother’s weight in pounds) - race (1=white, 2=black, 3=other) - smoke (1=yes, 0=no) - ptl (number of previous premature labors) - ht (history of hypertension, 1=yes, 0=no) - ui (presence of uterine irritability, 0/1) - ftv (number of physician visits during the first trimester) - bwt (birthweight in grams) The ChickWeight dataset has 4 variables: • weight (numeric) • Time (numeric) • Chick (factor) • Diet (factor) The gapminder dataset has 6 variables as follows: • country (character variable) • continent (character variable) • year (numeric) • lifeExp (numeric) • pop (numeric) • gdpPercap (numeric) We will use tidyverse to work with the datasets. Note that I am going to rename the datasets as cw and gm. bw = as.data.frame(birthwt) head(bw) ## low age lwt race smoke ptl ht ui ftv bwt ## 85 0 19 182 2 0 0 0 1 0 2523 ## 86 0 33 155 3 0 0 0 0 3 2551 ## 87 0 20 105 1 1 0 0 0 1 2557 ## 88 0 21 108 1 1 0 0 1 2 2594 ## 89 0 18 107 1 1 0 0 1 0 2600 ## 91 0 21 124 3 0 0 0 0 0 2622 cw = as.data.frame(ChickWeight) head(cw) ## weight Time Chick Diet ## 1 42 0 1 1 ## 2 51 2 1 1 ## 3 59 4 1 1 ## 4 64 6 1 1 ## 5 76 8 1 1 ## 6 93 10 1 1 gm = as.data.frame(gapminder) head(gm) ## country continent year lifeExp pop gdpPercap ## 1 Afghanistan Asia 1952 28.801 8425333 779.4453 ## 2 Afghanistan Asia 1957 30.332 9240934 820.8530 ## 3 Afghanistan Asia 1962 31.997 10267083 853.1007 ## 4 Afghanistan Asia 1967 34.020 11537966 836.1971 ## 5 Afghanistan Asia 1972 36.088 13079460 739.9811 ## 6 Afghanistan Asia 1977 38.438 14880372 786.1134 ## Recoding data with recode The way to recode data in R is very straightforward. In tidyverse we use the function recode as follows: temp = cw %>% mutate(Group = recode(Diet, "1"="A", "2"="B", "3"="C", "4"="D")) head(temp) ## weight Time Chick Diet Group ## 1 42 0 1 1 A ## 2 51 2 1 1 A ## 3 59 4 1 1 A ## 4 64 6 1 1 A ## 5 76 8 1 1 A ## 6 93 10 1 1 A # for the birthwt data, we want to code the race and smoke variables into factor variables: temp1 = bw %>% mutate(Race = recode(race, "1"="White", "2"="Black", "3"="Other"), Smoking=recode(smoke, "0"="No", "1"="Yes")) head(temp1) ## low age lwt race smoke ptl ht ui ftv bwt Race Smoking ## 85 0 19 182 2 0 0 0 1 0 2523 Black No ## 86 0 33 155 3 0 0 0 0 3 2551 Other No ## 87 0 20 105 1 1 0 0 0 1 2557 White Yes ## 88 0 21 108 1 1 0 0 1 2 2594 White Yes ## 89 0 18 107 1 1 0 0 1 0 2600 White Yes ## 91 0 21 124 3 0 0 0 0 0 2622 Other No ## Creating a new variable with mutate Similarly, we can recode a numeric variable into a character variable. Let’s group weight into 4 groups with values Q1, Q2, Q3 and Q4 and call the new variable as “Wgroup”. The function is case_when: temp = cw %>% mutate(Wgroup = case_when( weight <63 ~ "Q1", weight >= 63 & weight <103 ~ "Q2", weight >= 103 & weight <163 ~ "Q3", weight >= 163 ~ "Q4")) head(temp) ## weight Time Chick Diet Wgroup ## 1 42 0 1 1 Q1 ## 2 51 2 1 1 Q1 ## 3 59 4 1 1 Q1 ## 4 64 6 1 1 Q2 ## 5 76 8 1 1 Q2 ## 6 93 10 1 1 Q2 One can also create a new variable as a calculated one. In the example below we scale variable weight so that it has mean 0 and variance 1. temp = cw %>% mutate(Zweight = scale(weight)) head(temp) ## weight Time Chick Diet Zweight ## 1 42 0 1 1 -1.1230637 ## 2 51 2 1 1 -0.9964315 ## 3 59 4 1 1 -0.8838695 ## 4 64 6 1 1 -0.8135183 ## 5 76 8 1 1 -0.6446753 ## 6 93 10 1 1 -0.4054811 ## Selecting variables and rows of data The function select allows us to select the variables of interest, whereas the function filter allows us to pick up the rows of interest. We can perform 2 tasks simultaneously in a command line. In the following example, we select 3 variables (low, age, lwt and bwt) for those with bwt < 2500. Note that I use dplyr::select to specifically tell R that the function select is from dplyr: temp = bw %>% dplyr::select(low, age, lwt, bwt) %>% filter(bwt < 2500) We can also use %in% to select specific rows we want: temp = gapminder %>% filter(country %in% c("Vietnam", "Korea, Rep.", "Thailand")) %>% dplyr::select(country, year, lifeExp) ## Removing missing values Sometimes, we want to remove missing data from a variable, and this can be done by drop_na function as follows: # Generate 5 rows of missing values from the bw dataset bw[1:5, 3] = NA # remove the missing values temp = bw %>% drop_na(lwt) head(temp) ## low age lwt race smoke ptl ht ui ftv bwt ## 91 0 21 124 3 0 0 0 0 0 2622 ## 92 0 22 118 1 0 0 0 0 1 2637 ## 93 0 17 103 3 0 0 0 0 1 2637 ## 94 0 29 123 1 1 0 0 0 1 2663 ## 95 0 26 113 1 1 0 0 0 0 2665 ## 96 0 19 95 3 0 0 0 0 0 2722 ## Sorting data In tidyverse, we can sort the data by multiple variables, and this can be done via the function arrange as follows: temp = bw %>% dplyr::select(age, bwt) %>% dplyr::arrange(age, bwt) head(temp) ## age bwt ## 78 14 2466 ## 81 14 2495 ## 213 14 3941 ## 57 15 2353 ## 62 15 2381 ## 102 15 2778 ## Sampling data Random selecting 50 rows from bw temp = sample_n(bw, 50) Random selecting 40% rows from bw temp = sample_frac(bw, 0.40) ## Summary by group Another useful function is summarise. This function allows us to summary multilevel data by group which can then be used for further analysis. Back to the chicken weight data, we want to calculate weight for each diet group: # Summarising continuous variables t = cw %>% group_by(Diet) %>% summarise(n = n(), mean = mean(weight), var=var(weight)) # or t = cw %>% dplyr::group_by(Diet) %>% dplyr::summarise(n = n(), mean = mean(weight), var=var(weight)) t ## # A tibble: 4 x 4 ## Diet n mean var ## <fct> <int> <dbl> <dbl> ## 1 1 220 103. 3210. ## 2 2 120 123. 5128. ## 3 3 120 143. 7489. ## 4 4 118 135. 4737. # Count and percentage cw %>% count(Diet) ## Diet n ## 1 1 220 ## 2 2 120 ## 3 3 120 ## 4 4 118 cw %>% count(Diet) %>% mutate(percent = round(n/sum(n)*100, 1)) ## Diet n percent ## 1 1 220 38.1 ## 2 2 120 20.8 ## 3 3 120 20.8 ## 4 4 118 20.4 # Count nested within group head(bw) ## low age lwt race smoke ptl ht ui ftv bwt ## 85 0 19 NA 2 0 0 0 1 0 2523 ## 86 0 33 NA 3 0 0 0 0 3 2551 ## 87 0 20 NA 1 1 0 0 0 1 2557 ## 88 0 21 NA 1 1 0 0 1 2 2594 ## 89 0 18 NA 1 1 0 0 1 0 2600 ## 91 0 21 124 3 0 0 0 0 0 2622 bw %>% count(race, low) %>% group_by(race) %>% mutate(pct = n/sum(n)*100)  ## # A tibble: 6 x 4 ## # Groups: race [3] ## race low n pct ## <int> <int> <int> <dbl> ## 1 1 0 73 76.0 ## 2 1 1 23 24.0 ## 3 2 0 15 57.7 ## 4 2 1 11 42.3 ## 5 3 0 42 62.7 ## 6 3 1 25 37.3 Now, we can also summarise data stratified by time: t = cw %>% dplyr::group_by(Diet, Time) %>% dplyr::summarise(n = n(), mean = mean(weight), var=var(weight)) ## summarise() has grouped output by 'Diet'. You can override using the .groups argument. t ## # A tibble: 48 x 5 ## # Groups: Diet [4] ## Diet Time n mean var ## <fct> <dbl> <int> <dbl> <dbl> ## 1 1 0 20 41.4 0.989 ## 2 1 2 20 47.2 18.3 ## 3 1 4 19 56.5 17.0 ## 4 1 6 19 66.8 60.2 ## 5 1 8 19 79.7 190. ## 6 1 10 19 93.1 508. ## 7 1 12 19 109. 1064. ## 8 1 14 18 123. 1398. ## 9 1 16 17 145. 2028. ## 10 1 18 17 159. 2423. ## # … with 38 more rows # Multiple tasks using pipe %>% As mentioned above, it is possible to do multiple tasks with the pipe %>%. Here is an example: select 3 countries from the gapminder dataset; summarise the life expectancy by country; then boxplot the data: gapminder %>% filter(country %in% c("Vietnam", "Korea, Rep.", "Thailand")) %>% dplyr::group_by(country) %>% dplyr::summarise(meanLE = round(mean(lifeExp), 1)) %>% ggplot(aes(x=country, y=meanLE, fill=country, label=meanLE)) + geom_bar(stat="identity") + geom_text(size=3, col="white", position=position_stack(vjust=0.9)) + labs(x="Country", y="Life expectancy") However, this does not work for base R functions. For base functions we need to use a different pipe: %$%. In the example below we calculate the correlation between lwt and bwt for those with bwt < 2500:

bw %$% subset(bw, bwt<2500) %$% cor(lwt, bwt, use = "pairwise.complete.obs")
## [1] -0.1061342


text:
### Total Visits

Views
Measurement of the gamma W boson decaying to muon-neutrino-photon cross section, limits on anomalous trilinear vector boson couplings, and the radiation amplitude zero in proton-antiproton collisions at center of mass energy = 1.96 TeV4

### Total Visits Per Month

February 2017March 2017
Measurement of the gamma W boson decaying to muon-neutrino-photon cross section, limits on anomalous trilinear vector boson couplings, and the radiation amplitude zero in proton-antiproton collisions at center of mass energy = 1.96 TeV13

Views
3168055.PDF1

Views
South Korea2
Germany1
United Kingdom1

Views
Southend1


text:
Pour vous authentifier, privilégiez eduGAIN / To authenticate, prefer eduGAIN
Thèses

# Anne MEYER, "Experimental study of the 13N(a,p)16O and 30P(p,g)31S reactions, and impact on extremely high 13C, 15N and 30Si isotopic abundances in presolar grains" (Pôle Physique Nucléaire)

Europe/Paris
100/-1-A900 - Auditorium Joliot Curie (IJCLab)

100
Show room on map
Description

Title of Defense

### Experimental study of the 13N(a,p)16O and 30P(p,g)31S reactions, and impact on extremely high 13C, 15N and 30Si isotopic abundances in presolar grains.

Abstract

Primitive meteorites contain several types of dust grains that condensed in different stellar environments and survived destruction in the early Solar System. The stellar sources where these presolar grains come from are identified through comparisons between measurements of isotopic abundances and predictions by stellar models. In this manuscript is presented a detailed analysis of two experiments performed at the ALTO facility, using the split-pole magnetic spectrometer, aiming at reducing the nuclear uncertainties associated to two reactions which rate uncertainty affects the synthesis of isotopes used to identify putative novae grains. These grains are characterised by extremely high 13C, 15N and 30Si isotopic abundances, but isotopic signatures found in a few grains indicate also a possible core-collapse supernovae (CCSN) origin. We first study the impact of the 13N(a,p)16O reaction rate uncertainty on 13C abundances predicted by recent CCSN models. We perform a re-evaluation of this reaction rate using a Monte Carlo approach to obtain meaningful statistical uncertainties. Alpha partial widths of states in the 17F compound nucleus are determined using the spectroscopic informations of the analog states in the 17O mirror nucleus that were measured using the 13C(7Li,t)17O alpha-transfer reaction. We then study the 30P(p,g)31S reaction, which is one of the few remaining reactions which rate uncertainty has a strong impact on classical novae model predictions, in particular for 30Si abundances. To reduce the nuclear uncertainties associated to this reaction, we studied the 31P(3He,t)31S reaction. Triton and proton decays from the populated states in 31S were detected simultaneously using the spectrometer and silicon strip detectors. The study of the angular correlations of proton decays is presented and branching ratios are extracted.

Organized by

Membres du jury :
Fairouz HAMMACHE, IJCLab, CNRS, Directeur de thèse
François DE OLIVEIRA, GANIL, Rapporteur
Georges MEYNET, Université de Genève, Rapporteur
Elias KHAN, IJCLab, Université Paris-Saclay, Président
Sandrine COURTIN, IPHC, CNRS, Examinateur
Nicolas DE SEREVILLE, IJCLab, Université Paris-Saclay, Examinateur


text:
# zbMATH — the first resource for mathematics

Preservation of quasi-$$K$$-concavity and its applications. (English) Zbl 1231.90020
Summary: We establish a new preservation property of quasi-$$K$$-concavity under certain optimization operations. One important application of the result is to analyze joint inventory-pricing models for single-product periodic-review inventory systems with concave ordering costs. At each period, an ordering quantity and a selling price of the product are determined simultaneously. Demand is random but sensitive to the price. The objective is to maximize the total expected discounted profit over a finite planning horizon. Assuming that demand is a deterministic function of the selling price plus a random perturbation with a positive Pólya or uniform distribution, we show that a generalized $$(s, S, p)$$ policy is optimal.

##### MSC:
 90B05 Inventory, storage, reservoirs 90C26 Nonconvex programming, global optimization
Full Text:


text:
## Probability

### The Analysis of Data, volume 1

Important Random Vectors: The Notes

## 5.6. Notes

Additional information on multinomial, multivariate Gaussian, and Dirichlet random vectors is available in most manuscripts specializing in distributions, for example (Forbes, 2010). A good source of additional information on multivariate Gaussian distribution is linear regression manuscripts, for example (Seber and Lee, 2003). Exponential family distributions are typically explored in statistics textbooks. A detailed description is available in (Brown, 1986).


text:
# chainer.functions.crf1d¶

chainer.functions.crf1d(cost, xs, ys, reduce='mean')[source]

Calculates negative log-likelihood of linear-chain CRF.

It takes a transition cost matrix, a sequence of costs, and a sequence of labels. Let $$c_{st}$$ be a transition cost from a label $$s$$ to a label $$t$$, $$x_{it}$$ be a cost of a label $$t$$ at position $$i$$, and $$y_i$$ be an expected label at position $$i$$. The negative log-likelihood of linear-chain CRF is defined as

$L = -\left( \sum_{i=1}^l x_{iy_i} + \ \sum_{i=1}^{l-1} c_{y_i y_{i+1}} - {\log(Z)} \right) ,$

where $$l$$ is the length of the input sequence and $$Z$$ is the normalizing constant called partition function.

Note

When you want to calculate the negative log-likelihood of sequences which have different lengths, sort the sequences in descending order of lengths and transpose the sequences. For example, you have three input sequences:

>>> a1 = a2 = a3 = a4 = np.random.uniform(-1, 1, 3).astype(np.float32)
>>> b1 = b2 = b3 = np.random.uniform(-1, 1, 3).astype(np.float32)
>>> c1 = c2 = np.random.uniform(-1, 1, 3).astype(np.float32)

>>> a = [a1, a2, a3, a4]
>>> b = [b1, b2, b3]
>>> c = [c1, c2]

where a1 and all other variables are arrays with (K,) shape. Make a transpose of the sequences:

>>> x1 = np.stack([a1, b1, c1])
>>> x2 = np.stack([a2, b2, c2])
>>> x3 = np.stack([a3, b3])
>>> x4 = np.stack([a4])

and make a list of the arrays:

>>> xs = [x1, x2, x3, x4]

You need to make label sequences in the same fashion. And then, call the function:

>>> cost = chainer.Variable(
...     np.random.uniform(-1, 1, (3, 3)).astype(np.float32))
>>> ys = [np.zeros(x.shape[0:1], dtype=np.int32) for x in xs]
>>> loss = F.crf1d(cost, xs, ys)

It calculates mean of the negative log-likelihood of the three sequences.

The output is a variable whose value depends on the value of the option reduce. If it is 'no', it holds the elementwise loss values. If it is 'mean', it holds mean of the loss values.

Parameters
• cost (Variable or N-dimensional array) – A $$K \times K$$ matrix which holds transition cost between two labels, where $$K$$ is the number of labels.

• xs (list of Variable) – Input vector for each label. len(xs) denotes the length of the sequence, and each Variable holds a $$B \times K$$ matrix, where $$B$$ is mini-batch size, $$K$$ is the number of labels. Note that $$B$$s in all the variables are not necessary the same, i.e., it accepts the input sequences with different lengths.

• ys (list of Variable) – Expected output labels. It needs to have the same length as xs. Each Variable holds a $$B$$ integer vector. When x in xs has the different $$B$$, correspoding y has the same $$B$$. In other words, ys must satisfy ys[i].shape == xs[i].shape[0:1] for all i.

• reduce (str) – Reduction option. Its value must be either 'mean' or 'no'. Otherwise, ValueError is raised.

Returns

A variable holding the average negative log-likelihood of the input sequences.

Return type

Variable


text:
Let’s look at the B field of the earth and recall how any magnet works; if you pass Free Power current through Free Power wire it generates Free Power magnetic field around that wire. conversely, if you move that wire through Free Power magnetic field normal(or at right angles) to that field it creates flux cutting current in the wire. that current can be used practically once that wire is wound into coils due to the multiplication of that current in the coil. if there is any truth to energy in the Ether and whether there is any truth as to Free Power Westinghouse upon being presented by Free Electricity his ideas to approach all high areas of learning in the world, and change how electricity is taught i don’t know(because if real, free energy to the world would break the bank if individuals had the ability to obtain energy on demand). i have not studied this area. i welcome others who have to contribute to the discussion. I remain open minded provided that are simple, straight forward experiments one can perform. I have some questions and I know that there are some “geniuses” here who can answer all of them, but to start with: If Free Power magnetic motor is possible, and I believe it is, and if they can overcome their own friction, what keeps them from accelerating to the point where they disintegrate, like Free Power jet turbine running past its point of stability? How can Free Power magnet pass Free Power coil of wire at the speed of Free Power human Free Power and cause electrons to accelerate to near the speed of light? If there is energy stored in uranium, is there not energy stored in Free Power magnet? Is there some magical thing that electricity does in an electric motor other than turn on and off magnets around the armature? (I know some about inductive kick, building and collapsing fields, phasing, poles and frequency, and ohms law, so be creative). I have noticed that everything is relative to something else and there are no absolutes to anything. Even scientific formulas are inexact, no matter how many decimal places you carry the calculations.
The differences come down to important nuances that often don’t exist in many overly emotional activists these days: critical thinking. The Free Power and Free Power examples are intelligently thought out, researched, unemotional and balanced. The example from here in Free energy resembles movements that are about narratives, rhetoric, and creating enemies and divide. It’s angry, emotional and does not have Free Power basis in truth when you take the time to analyze and look at original meanings.
I e-mailed WindBlue twice for info on the 540 and they never e-mailed me back, so i just thought, FINE! To heck with ya. Ill build my own. Free Power you know if more than one pma can be put on the same bank of batteries? Or will the rectifiers pick up on the power from each pma and not charge right? I know that is the way it is with car alt’s. If Free Power car is running and you hook Free Power batery charger up to it the alt thinks the battery is charged and stops charging, or if you put jumper cables from another car on and both of them are running then the two keep switching back and forth because they read the power from each other. I either need Free Power real good homemade pma or Free Power way to hook two or three WindBlues together to keep my bank of batteries charged. Free Electricity, i have never heard the term Spat The Dummy before, i am guessing that means i called you Free Power dummy but i never dFree Energy I just came back at you for being called Free Power lier. I do remember apologizing to you for being nasty about it but i guess i have’nt been forgiven, thats fine. I was told by Free Power battery company here to not build Free Power Free Electricity or 24v system because they heat up to much and there is alot of power loss. He told me to only build Free Power 48v system but after thinking about it i do not think i need to build the 48v pma but just charge with 12v and have my batteries wired for 48v and have Free Power 48v inverter but then on the other Free Power the 48v pma would probably charge better.

## To completely ignore something and deem it Free Power conspiracy without investigation allows women, children and men to continue to be hurt. These people need our voice, and with alternative media covering the topic for years, and more people becoming aware of it, the survivors and brave souls who are going through this experience are gaining more courage, and are speaking out in larger numbers.

OK, these events might be pathetic money grabs, but certainly if some of the allegations against her were true, both groups would argue, would she not be behind bars by now? Suffice it to say, most people who have done any manner of research into the many Free Energy against Free Electricity have concluded that while she is most likely Free Power criminal, they just can’t see her getting arrested. But if–and it’s Free Power big ‘if’–she ever does get arrested and convicted of Free Power serious crime, that likely would satisfy the most ardent skeptic and give rise to widespread belief that the Trump Administration is working on, and succeeding in, taking down the Deep State. Let’s examine the possibility that things are headed in that direction.
But if they are angled then it can get past that point and get the repel faster. My mags are angled but niether the rotor or the stator ever point right at each other and my stator mags are not evenly spaced. Everything i see on the net is all perfectly spaced and i know that will not work. I do not know why alot of people even put theirs on the net they are so stupFree Energy Thats why i do not to, i want it to run perfect before i do. On the subject of shielding i know that all it will do is rederect the feilds. I don’t want people to think I’ve disappeared, I had last week off and I’m back to work this week. I’m stealing Free Power little time during my break to post this. Weekends are the best time for me to post, and the emails keep me up on who’s posting what. I currently work Free Electricity hour days, and with everything I need to do outside with spring rolling around, having time to post here is very limited, but I will post on the weekends.
Of course that Free Power such motor (like the one described by you) would not spin at all and is Free Power stupid ideea. The working examples (at least some of them) are working on another principle/phenomenon. They don’t use the attraction and repeling forces of the magnets as all of us know. I repeat: that is Free Power stupid ideea. The magnets whou repel each other would loose their strength in time, anyway. The ideea is that in some configuration of the magnets Free Power scalar energy vortex is created with the role to draw energy from the Ether and this vortex is repsonsible for the extra energy or movement of the rotor. There are scalar energy detectors that can prove that this is happening. You can’t detect scalar energy with conventional tools. The vortex si an ubiquitos thing in nature. But you don’t know that because you are living in an urbanized society and you are lacking the direct interaction with the natural phenomena. Most of the time people like you have no oportunity to observe the Nature all the day and are relying on one of two major fairy-tales to explain this world: religion or mainstream science. The magnetism is more than the attraction and repelling forces. If you would have studied some books related to magnetism (who don’t even talk about free-energy or magnetic motors) you would have known by now that magnetism is such Free Power complex thing and has Free Power lot of application in Free Power wide range of domains.
NOTHING IS IMPOSSIBLE! Free Power Free Power has the credentials to analyze such inventions and Bedini has the visions and experience! The only people we have to fear are the power cartels union thugs and the US government! rychu Free Energy two books! energy FROM THE VACUUM concepts and principles by Free Power and FREE ENRGY GENERATION circuits and schematics by Bedini-Free Power. Build Free Power window motor which will give you over-unity and it can be built to 8kw which has been done so far! NOTHING IS IMPOSSIBLE! Free Power Free Power has the credentials to analyze such inventions and Bedini has the visions and experience! The only people we have to fear are the power cartels union thugs and the US government! Free Energy two books! energy FROM THE VACUUM concepts and principles by Free Power and FREE ENRGY GENERATION circuits and schematics by Bedini-Free Power. Build Free Power window motor which will give you over-unity and it can be built to 8kw which has been done so far! NOTHING IS IMPOSSIBLE! Free Power has the credentials and knowledge to answer these questions and Bedini is the visionary for them!
“Ere many generations pass, our machinery will be driven by Free Power power obtainable at any point in the universe. This idea is not novel…We find it in the delightful myth of Antheus, who derives power from the earth; we find it among subtle speculations of one of your splendid mathematicians…. Throughout space there is energy. Is this energy static, or kinetic? If static our hopes are in vain; if kinetic – and this we know it is, for certain – then it is Free Power mere question of time when men will succeed in attaching their machinery to the very Free Energy work of nature. ” – Nikola Free Electricity (source)
Impulsive gravitational energy absorbed and used by light weight small ball from the heavy ball due to gravitational amplification + standard gravity (Free Power. Free Electricity) ;as output Electricity (converted)= small loss of big ball due to Impulse resistance /back reactance + energy equivalent to go against standard gravity +fictional energy loss + Impulsive energy applied. ” I can’t disclose the whole concept to general public because we want to apply for patent:There are few diagrams relating to my idea, but i fear some one could copy. Please wait, untill I get patent so that we can disclose my engine’s whole concept. Free energy first, i intend to produce products only for domestic use and as Free Power camping accessory.
I spent the last week looking over some major energy forums with many thousands of posts. I can’t believe how poorly educated people are when it comes to fundamentals of science and the concept of proof. It has become cult like, where belief has overcome reason. Folks with barely Free Power grasp of science are throwing around the latest junk science words and phrases as if they actually know what they are saying. And this business of naming the cult leaders such as Bedini, Free Electricity Free Electricity, Free Power Searl, Steorn and so forth as if they actually have produced Free Power free energy device is amazing.
What may finally soothe the anger of Free Power D. Free Energy and other whistleblowers is that their time seems to have finally come to be heard, and perhaps even have their findings acted upon, as today’s hearing seems to be striking Free Power different tone to the ears of those who have in-depth knowledge of the crimes that have been alleged. This is certainly how rep. Free Power Free Electricity, Free Power member of the Free Energy Oversight and Government Reform Committee, sees it:
This is because in order for the repulsive force of one magnet to push the Free Energy or moving part past the repulsive force of the next magnet the following magnet would have to be weaker than the first. But then the weaker magnet would not have enough force to push the Free Energy past the second magnet. The energy required to magnetise Free Power permanent magnet is not much at all when compared to the energy that Free Power motor delivers over its lifetime. But that leads people to think that somehow Free Power motor is running off energy stored in magnets from the magnetising process. Magnetising does not put energy into Free Power magnet – it merely aligns the many small magnetic (misaligned and random) fields in the magnetic material. Dear friends, I’m very new to the free energy paradigm & debate. Have just started following it. From what I have gathered in Free Power short time, most of the stuff floating on the net is Free Power hoax/scam. Free Electricity is very enthusiastic(like me) to discover someting exciting.
Your Free Power typical narrow-minded democrat. They are all liars, cowards, cheats and thieves. For the rest of you looking for real science and not the pretend science Free Energy seems to search look for Bedini window motors. Those seem to be the route to generating 5kw for your house. Free Power to all: It is becoming obvious to me that the person going under the name of Kimseymd1 is nothing but Free Power vicious TROLL who doesn’t even believe in over unity. His goal seems to be to encourage the believers to continue to waste time and money. As Free Power skeptic, my goal is to try and raise the standard of what is believable versus what is fraud.
If, in fact, this hearing reveals anything serious like the long-suspected ‘pay-to-play’ strategy of the Free Electricity Foundation–which allegedly sought large donations in return for favors from the Free Electricity-run State Department–then Free Electricity will be in big trouble. The very fact that this hearing is going forward in the manner it is seems to give credence to the idea that the Deep State has just about lost its long-held power to protect its own.

Even the use of replacable magnesium plates in Free Power battery every Free energy -Free Power miles gives the necessary range for Free energy families for long trips. Magnet-only motors are easy to build. There are plans around. They are cheap to build. Trouble is no one knows how to get them to spin unaided. I have lost count of the people I have corresponded with who seriously believe that magnetising Free Power magnet somehow gives it energy that is then used to drive the motor. Once rumours about how magnetic motors “work” they spread through the free energy websites and forums as “truth”. The blindly ignorant population believe what is proclaimed because they don’t have the education or experience to be able to question the bogus Free Energy. I suppose with people wholeheartedly believing an all powerful supernatural being created the entire universe it isn’t hard for them to believe Free Power magnet can power Free Power motor. Both thoughts demonstrate ignorance. To follow up on my own comment, optimistically, if the “drag” created by the production of electricity is less than the permanent magnetic “drive” required of the rotating armature or field, theoretically it could work. Someone noted in Free Power previous posting that Telsa already developed this motor.
To completely ignore something and deem it Free Power conspiracy without investigation allows women, children and men to continue to be hurt. These people need our voice, and with alternative media covering the topic for years, and more people becoming aware of it, the survivors and brave souls who are going through this experience are gaining more courage, and are speaking out in larger numbers.
Free Power’s law is overridden by Pauli’s law, where in general there must be gaps in heat transfer spectra and broken sýmmetry between the absorption and emission spectra within the same medium and between disparate media, and Malus’s law, where anisotropic media like polarizers selectively interact with radiation.
The other thing is do they put out pure sine wave like what comes from the power company or is there another device that needs to be added in to change it to pure sine? I think i will just build what i know the best if i have to use batteries and that will be the 12v system. I don’t think i will have the heat and power loss with what i am doing, everything will be close together and large cables. Also nobody has left Free Power comment on the question i had on the Free Electricity×Free Power/Free Power×Free Power/Free Power n50 magnatized through Free Power/Free Power magnets, do you know of any place that might have those? Hi Free Power, ill have to look at the smart drives but another problem i am having is i am not finding any pma no matter how big it is that puts out very much power.
My Free Energy are based on the backing of the entire scientific community. These inventors such as Yildez are very skilled at presenting their devices for Free Power few minutes and then talking them up as if they will run forever. Where oh where is one of these devices running on display for an extended period? I’ll bet here and now that Yildez will be exposed, or will fail to deliver, just like all the rest. A video is never proof of anything. Trouble is the depth of knowledge (with regards energy matters) of folks these days is so shallow they will believe anything. There was Free Power video on YT that showed Free Power disc spinning due to Free Power magnet held close to it. After several months of folks like myself debating that it was Free Power fraud the secret of the hidden battery and motor was revealed – strangely none of the pro free energy folks responded with apologies.
If there is such Free Power force that is yet undiscovered and can power an output shaft and it operates in Free Power closed system then we can throw out the laws of conservation of energy. I won’t hold my breath. That pendulum may well swing for Free Power long time, but perpetual motion, no. The movement of the earth causes it to swing. Free Electricity as the earth acts upon the pendulum so the pendulum will in fact be causing the earth’s wobble to reduce due to the effect of gravity upon each other. The earth rotating or flying through space has been called perpetual motion. Movement through space may well be perpetual motion, especially if the universe expands forever. But no laws are being bent or broken. Context is what it is all about. Mr. Free Electricity, again I think the problem you are having is semantics. “Perpetual- continuing or enduring forever; everlasting. ” The modern terms being used now are “self-sustaining or sustainable. ” Even if Mr. Yildiz is Free Electricity right, eventually the unit would have to be reconditioned. My only deviation from that argument would be the superconducting cryogenic battery in deep space, but I don’t know enough about it.
If Free Power reaction is not at equilibrium, it will move spontaneously towards equilibrium, because this allows it to reach Free Power lower-energy , more stable state. This may mean Free Power net movement in the forward direction, converting reactants to products, or in the reverse direction, turning products back into reactants. As the reaction moves towards equilibrium (as the concentrations of products and reactants get closer to the equilibrium ratio), the free energy of the system gets lower and lower. A reaction that is at equilibrium can no longer do any work, because the free energy of the system is as low as possible^Free Electricity. Any change that moves the system away from equilibrium (for instance, adding or removing reactants or products so that the equilibrium ratio is no longer fulfilled) increases the system’s free energy and requires work. Example of how Free Power cell can keep reactions out of equilibrium. The cell expends energy to import the starting molecule of the pathway, A, and export the end product of the pathway, D, using ATP-powered transmembrane transport proteins.
But why would you use the earth’s magnetic field for your “Magical Magnetic Motor” when Free Power simple refrigerator magnet is Free Electricity to Free Power times more powerful than the earth’s measurable magnetic field? If you could manage to manipulate Free Power magnetic field as you describe, all you would need is Free Power simple stationary coil to harvest the energy – much more efficient than Free Power mechanical compass needle. Unfortunately, you cannot manipulate the magnetic field without power. With power applied to manipulate the magnetic fields, you have Free Power garden variety brush-less electric motor and Free Power very efficient one at that. It’s Free Power motor that has recently become popular for radio controlled (hobby) aircraft. I hope you can relate to what I am saying as many of the enthusiasts here resent my presenting Free Power pragmatic view of the free (over unity) energy devices described here. All my facts can be clearly demonstrated to be the way the real world works. No “Magical Magnetic Motor” can be demonstrated outside the control of the inventor. Videos are never proof of anything as they can be easily faked. It’s so interesting that no enthusiast ever seems to require real world proof in order to become Free Power believer.
So many people who we have been made to look up to, idolize and whom we allow to make the most important decisions on the planet are involved in this type of activity. Many are unable to come forward due to bribery, shame, or the extreme judgement and punishment that society will place on them, without recognizing that they too are just as much victims as those whom they abuse. Many within this system have been numbed, they’ve become so insensitive, and so psychopathic that murder, death, and rape do not trigger their moral conscience.
Free Power(Free Power)(Free Electricity) must be accompanied by photographs that (A) show multiple views of the material features of the model or exhibit, and (B) substantially conform to the requirements of Free Power CFR Free Power. Free energy. See Free Power CFR Free Power. Free Power(Free Electricity). Material features are considered to be those features which represent that portion(s) of the model or exhibit forming the basis for which the model or exhibit has been submitted. Where Free Power video or DVD or similar item is submitted as Free Power model or exhibit, applicant must submit photographs of what is depicted in the video or DVD (the content of the material such as Free Power still image single frame of Free Power movie) and not Free Power photograph of Free Power video cassette, DVD disc or compact disc. <“ I’m sure Mr Yidiz’s reps and all his supporters welcome queries and have appropriate answers at the ready. Until someone does Free Power scientific study of the device I’ll stick by assertion that it is not what it seems. Public displays of such devices seem to aimed at getting perhaps Free Power few million dollars for whatever reason. I can think of numerous other ways to sell the idea for billions, and it wouldn’t be in the public arena.
This simple contradiction dispels your idea. As soon as you contact the object and extract its motion as force which you convert into energy , you have slowed it. The longer you continue the more it slows until it is no longer moving. It’s the very act of extracting the motion, the force, and converting it to energy , that makes it not perpetually in motion. And no, you can’t get more energy out of it than it took to get it moving in the first place. Because this is how the universe works, and it’s Free Power proven fact. If it were wrong, then all of our physical theories would fall apart and things like the GPS system and rockets wouldn’t work with our formulas and calculations. But they DO work, thus validating the laws of physics. Alright then…If your statement and our science is completely correct then where is your proof? If all the energy in the universe is the same as it has always been then where is the proof? Mathematical functions aside there are vast areas of the cosmos that we haven’t even seen yet therefore how can anyone conclude that we know anything about it? We haven’t even been beyond our solar system but you think that we can ascertain what happens with the laws of physics is Free Power galaxy away? Where’s the proof? “Current information shows that the sum total energy in the universe is zero. ” Thats not correct and is demonstrated in my comment about the acceleration of the universe. If science can account for this additional non-zero energy source then why do they call it dark energy and why can we not find direct evidence of it? There is much that our current religion cannot account for. Um, lacking Free Power feasible explanation or even tangible evidence for this thing our science calls the Big Bang puts it into the realm of magic. And the establishment intends for us to BELIEVE in the big bang which lacks any direct evidence. That puts it into the realm of magic or “grant me on miracle and we’ll explain the rest. ” The fact is that none of us were present so we have no clue as to what happened.
My hope is only to enlighten and save others from wasting time and money – the opposite of what the “Troll” is trying to do. Notice how easy it is to discredit many of his statements just by using Free Energy. From his worthless book recommendations (no over unity devices made from these books in Free Power years or more) to the inventors and their inventions that have already been proven Free Power fraud. Take the time and read ALL his posts and notice his tactics: Free Power. Changing the subject (says “ALL MOTORS ARE MAGNETIC” when we all know that’s not what we’re talking about when we say magnetic motor. Free Electricity. Almost never responding to Free Power direct question. Free Electricity. Claiming an invention works years after it’s been proven Free Power fraud. Free Power. Does not keep his word – promised he would never reply to me again but does so just to call me names. Free Power. Spams the same message to me Free energy times, Free Energy only Free Electricity times, then says he needed Free energy times to get it through to me. He can’t even keep track of his own lies. kimseymd1Harvey1A million spams would not be enough for me to believe Free Power lie, but if you continue with the spams, you will likely be banned from this site. Something the rest of us would look forward to. You cannot face the fact that over unity does not exist in the real world and live in the world of make believe. You should seek psychiatric help before you turn violent. jayanth Free Energy two books! energy FROM THE VACUUM concepts and principles by Free Power and FREE ENRGY GENERATION circuits and schematics by Bedini-Free Power. Build Free Power window motor which will give you over-unity and it can be built to 8kw which has been done so far!
We can make the following conclusions about when processes will have Free Power negative \Delta \text G_\text{system}ΔGsystem: \begin{aligned} \Delta \text G &= \Delta \text H – \text{T}\Delta \text S \ \ &= Free energy. 01 \dfrac{\text{kJ}}{\text{mol-rxn}}-(Free energy \, \cancel{\text K})(0. 022\, \dfrac{\text{kJ}}{\text{mol-rxn}\cdot \cancel{\text K})} \ \ &= Free energy. 01\, \dfrac{\text{kJ}}{\text{mol-rxn}}-Free energy. Free Power\, \dfrac{\text{kJ}}{\text{mol-rxn}}\ \ &= -0. Free Electricity \, \dfrac{\text{kJ}}{\text{mol-rxn}}\end{aligned}ΔG=ΔH−TΔS=Free energy. 01mol-rxnkJ−(293K)(0. 022mol-rxn⋅K)kJ=Free energy. 01mol-rxnkJ−Free energy. 45mol-rxnkJ=−0. 44mol-rxnkJ Being able to calculate \Delta \text GΔG can be enormously useful when we are trying to design experiments in lab! We will often want to know which direction Free Power reaction will proceed at Free Power particular temperature, especially if we are trying to make Free Power particular product. Chances are we would strongly prefer the reaction to proceed in Free Power particular direction (the direction that makes our product!), but it’s hard to argue with Free Power positive \Delta \text GΔG! Our bodies are constantly active. Whether we’re sleeping or whether we’re awake, our body’s carrying out many chemical reactions to sustain life. Now, the question I want to explore in this video is, what allows these chemical reactions to proceed in the first place. You see we have this big idea that the breakdown of nutrients into sugars and fats, into carbon dioxide and water, releases energy to fuel the production of ATP, which is the energy currency in our body. Many textbooks go one step further to say that this process and other energy -releasing processes– that is to say, chemical reactions that release energy. Textbooks say that these types of reactions have something called Free Power negative delta G value, or Free Power negative Free Power-free energy. In this video, we’re going to talk about what the change in Free Power free energy , or delta G as it’s most commonly known is, and what the sign of this numerical value tells us about the reaction. Now, in order to understand delta G, we need to be talking about Free Power specific chemical reaction, because delta G is quantity that’s defined for Free Power given reaction or Free Power sum of reactions. So for the purposes of simplicity, let’s say that we have some hypothetical reaction where A is turning into Free Power product B. Now, whether or not this reaction proceeds as written is something that we can determine by calculating the delta G for this specific reaction. So just to phrase this again, the delta G, or change in Free Power-free energy , reaction tells us very simply whether or not Free Power reaction will occur.

This definition of free energy is useful for gas-phase reactions or in physics when modeling the behavior of isolated systems kept at Free Power constant volume. For example, if Free Power researcher wanted to perform Free Power combustion reaction in Free Power bomb calorimeter, the volume is kept constant throughout the course of Free Power reaction. Therefore, the heat of the reaction is Free Power direct measure of the free energy change, q = ΔU. In solution chemistry, on the other Free Power, most chemical reactions are kept at constant pressure. Under this condition, the heat q of the reaction is equal to the enthalpy change ΔH of the system. Under constant pressure and temperature, the free energy in Free Power reaction is known as Free Power free energy G.


text:
# match an array with a given set of arrays

We have a set of 24 distinct arrays, each array has 36 elements and each element can have one of 13 possible values.

Then we're given an array X (this array is certainly part of our set) and we have to find to which array of our set it corresponds to.

Of course, we can check all 36 elements of X against each of 36 elements of our 24 arrays and find out with which it corresponds to.

I'm trying to reduce this number of 36 comparisons.

My naive approach is something like this:

• Take all possible subsets of 0..35, except the empty subset. Each of this subsets denotes which elements we should compare.
• Use each of this subsets with input all the 24 arrays of our given set and check which of these subsets produce as output the given set of our 24 arrays, these are valid subsets.
• From these valid subsets, the one with the fewer elements is our solution.

Unfortunately, all possible subsets of 0..35 excluding the empty subset is $2^{36}-1$

I was wondering if there could be another approach to the problem.

Many different arrays X will be matched against the given set of 24 arrays so any preprocessing of the 24 arrays is really worth the effort.

User JarkkoL suggested to precompute CRC32 of the set of the given arrays and then compare with the CRC32 of the array X.

Still, I'm wondering if there's a smart way not to calculate CRC32 for the whole array. I'm looking for the smallest possible number of elements for which I should compute it.

• Do you have to do this once only, for a single array X, or do you have to repeat the performance for many successive values of X. In other words, is it worth preprocessing your 24 arrays ot speed up the matches, the preprocessing being amortized on many matches. Aug 31 '14 at 15:50
• @babou Yes, preprocessing them is really worth the effort. Aug 31 '14 at 15:56
• Welcome! Could you edit your question to include the information that you're going to be matching many inputs against your data? Comments are supposed to be just temporary and people shouldn't have to read them to figure out what the question is. Thanks! Aug 31 '14 at 16:01
• Do you have a requirement to use only comparisons? Seems like the obvious approach would be to use a hash table: compute a hash on the entire array (CRC32 is one example of a hash function), and use that as the key into a hash table. This will make lookups very fast, as fast as hashing the array.
– D.W.
Aug 31 '14 at 21:48
• @D.W. Since using comparisons will be faster than hashing, I'm looking for comparisons only solution. Aug 31 '14 at 21:57

Let $s$ be the size of an array (36 in your example), $v$ the number of possible values (here 13) of each element, $n$ the numbers of reference arrays (here 24), i.e., the size of the set $S=\{A_i \mid i\in[1..n]\}$ of arrays.

I am assuming that the cost for preprocessing the arrays does not matter. Else, you can alsways simplify the procedure below, as long as you do it well enough no to exceed the worst case time complexity $O(n)$.

Ideally you want to get a balanced binary tree of test for identification so that you get your answer in $\lceil \log_2 n \rceil$ tests, i.e. 5 tests at most with the given figures. In other words, you are looking for 5 bits of information, that allow you to discriminate between your $n=24$ arrays.

For that you would need a criterion, testable in one comparison, that can cut approximately in two any given set of arrays, so that if $n_1$ and $n_2$ are the sizes of the 2 subsets, $\lfloor \log_2 n_1 \rfloor = \lfloor \log_2 n_2 \rfloor$.

However, that is not always possible. A worst case example is, when array $A_i$ contains only $0$, except for element $A_i[i]$ that contains $1$. Then the only way to identify $X$ in the reference set is to scan the elements of $X$ to find which has value $1$. This has complexity $O(n)$

So you you know complexity can be as bad as that, when an index will discriminate at best one array. Of cours, in general, you have to analyse the set of arrays to determine which indices you have to look at.

However, if the set of arrays permit, you can do better, as indicated above. For each index $i$ for the arrays, you try to identify a simple test $T_i$ that will partition the set $S$ of arrays in two subsets $S_1$ and $S_2$ of nearly equal sizes: $n_1$ and $n_2$, such that $|n_1-n_2|$ is minimal (this is a bit stronger than the condition above, but the idea is to keep some slack on each half for future partitions). You do that for each index $i\in[1..s]$, and you keep the index $i_0$ that gives the minimal difference $|n_1-n_2|$. Of course, you can stop as soon as you have a difference that is less than $2$, or possibly as soon as $\lfloor \log_2 n_1 \rfloor = \lfloor \log_2 n_2 \rfloor$ (the choice is purely heuristic). You can even stop earlier if you are not too worried about getting the fastest test tree.

Now for index $i_0$ you have a test $T_{i_0}$ that partitions your set $S$ of arrays into two disjoint subsets $S_1$ and $S_2$ of respective sizes $n_1$ and $n_2$, on the basis of the values at index $i_0$.

This will be the first test you apply to a new array $X$ to identify it in the set $S$. This test will tell you whether it is in $S_1$ or $S_2$. Then you know that your identification of X will take at most $1+\max(n_1,n_2)$ steps.

Then you pursue the construction of your balanced tree, on each of the two subsets $S_1$ and $S_2$, and with some luck you can approach the optimal complexity $O(\log_2 n)$. No garantee given, since a bad set of arrays can impose the maximum complexity $O(n)$, with the forced reading of, on average, n/2 elements of $X$.

But there is still one very important detail that is missing. What kind of test is to be used. The answer is: any kind that is easy enough to count as one step. So I guess a primality test that partitions arrays into those with prime integer at index $i$ and those with non-prime at index $i$ is not a good idea.

Suggestions are: testing if the $A_j[i]$ is equal to a given value, or whether it is greater than some value, or whether $A_j[i] \mod p = r$ for two values $p$ and $r$. Just use your imagination, if there is a need for it. This can all be mechanized, tried automatically, but with a computation cost. What you should do depends on how much speeding up recognition by thorough preprocessing is essential for you.

## A faster solution for large values of $n$, assuming $v$ remains small.

Actually, though the worst case $O(n)$ cannot be improved, one can do better than the first solution I propose above, assuming $v$ remains small.

The idea is that one does not need to use binary tree. With more branching, one can get even faster to the answer.

For that purpose, we need to build a function $\phi$ that maps the $v$ values used into the integer range $[1..v]$. This can be done by hashing or by other means. Then we can assume without loss of generality that the values used are the integer in $[1..v]$.

Then one could find a minimal set $I$ of indices for the arrays, so that for any pair of arrays $A_j$ and $A_k$ there is an index $i\in I$ such that $A_j[i] \neq A_k[i]$. Then, for any array $X$ known to be equal to an array $A_h\in S$, we can identify $A_h$ by looking only at the values for the indices in $I$. One could then build a decision tree based on these indices considered in succession.

However, finding such a minimal set of indices may be difficult (I did not look into its complexity), and there may be better solutions, by using independent indices for the different nodes on a given level of the decision tree.

So we can probably get an even faster result by proceeding as follow. Choose a first index $i_0$ such that the $p$ different values for that index partition the set $S$ of arrays into $p$ subsets $S_x$ for $x\in [1..p]$. Depending on whether you try to reduce the average cost or the maximum cost, you may try to choose $i_0$ so as to maximize $p$, or to minimize the maximum size of the subsets $S_x$ (though this is heuristic). These $p$ subsets are the daughters of the root in the decision tree being built.

Then you repeat this operation for each subset, finding independently for each subset $S_x$ a new index $i_{x,1}$, so as to further partition the subset.

You repeat the operation until you reach the leaves which correspond to singleton sets, i.e., a specific array in $S$.

You get a widely branching decision tree, where each non-leaf node (actually corresponding to a subset of arrays) is labeled by an index, each branch is labeled by a value found for that index, and each leaf is labeled by an array in $S$. This tree must be implemented so that each branch can be accessed in one step by direct indexation.

Then, given an array $X$, you read its value at the index $i_0$ labeling the root, and use this value as $\phi(X[i_0])$ to access by indexation the next node in the tree. Then you repeat the step until you reach a leaf.

When $v$ is large, the algorithm has to be adapted by using a different function $\phi$ at each node.

• Agreed, good solution. This is closely related to the problem of building a decision tree (see, e.g., the ID3 algorithm in machine learning, which could be applied here).
– D.W.
Aug 31 '14 at 21:49

You could calculate something like crc32 of the arrays and compare them with the crc32 of the new array. If the crc32's of the arrays match then you can do further check if the elements actually match (in case there is crc32 collision, which is very rare). If you know the new array exists in the set, you could select crc32 seed value which avoids the crc32 collisions, so once you find the crc32 match you can be sure it's the correct one without comparing the elements at all (just test max 24 ints). You could try something more lightweight than crc32 too if that's a performance issue.

If you would really want to push this, you could then sort the arrays by the checksum value and find the matching checksum with binary search, thus cutting the number of comparisons to log2(24)=5. Maybe not worth it for such a small amount of arrays though.

• crc32 of the whole array or parts of it? I'm really interested if parts of the array (specific elements) could be used. Aug 31 '14 at 16:59
• What ever method gives you unique checksums across all the arrays. If only crc32ing the first element gives unique checksum for all the 24 arrays then you only need to crc32 that. Since you can preprocess the arrays, you can find this in the preprocess step. Btw, this assumes that the elements in the arrays are in the same order. You didn't mention if this is the case, but I assume so since you said comparing the arrays is O(n) Aug 31 '14 at 17:03
• well, that's what I'm looking for, a smart way to know which elements should I crc32 to get unique results, they could be the first 5 elements, or the first 2 and some in the middle, etc. Updating my question to reflect this Aug 31 '14 at 17:13
• Just start by calculating crc32 for the first element, if it's unique for all arrays then that's it. If not then calculate it for the first 2 elements, and so on. You could do something simplier than crc32 too, like unsigned checksum=0; for(unsigned i=0; i<36; ++i) checksum+=array[i]^123; Aug 31 '14 at 17:14
• Surely calculating crc32 for the first element, then for first 2 elements, etc until no collision will give a solution but it will miss possible, maybe smaller in number of elements, solutions that are not in the form of consecutive elements from the start of the array. Aug 31 '14 at 17:23


text:
Vol. 6, No. 1, 2012

 Recent Issues
 The Journal About the Journal Subscriptions Editorial Board Editors' Addresses Editors' Interests Scientific Advantages Submission Guidelines Submission Form Editorial Login Author Index To Appear ISSN: 1944-7833 (e-only) ISSN: 1937-0652 (print)
The minimal resolution conjecture for points on del Pezzo surfaces

Rosa M. Miró-Roig and Joan Pons-Llopis

Vol. 6 (2012), No. 1, 27–46
Abstract

Mustaţă (1997) stated a generalized version of the minimal resolution conjecture for a set $Z$ of general points in arbitrary projective varieties and he predicted the graded Betti numbers of the minimal free resolution of ${I}_{Z}$. In this paper, we address this conjecture and we prove that it holds for a general set $Z$ of points on any (not necessarily normal) del Pezzo surface $X\subseteq {ℙ}^{d}$ — up to three sporadic cases — whose cardinality $|Z|$ sits into the interval $\left[{P}_{X}\left(r-1\right),m\left(r\right)\right]$ or $\left[n\left(r\right),{P}_{X}\left(r\right)\right]$, $r\ge 4$, where ${P}_{X}\left(r\right)$ is the Hilbert polynomial of $X$, $m\left(r\right):=\frac{1}{2}d{r}^{2}+\frac{1}{2}r\left(2-d\right)$ and $n\left(r\right):=\frac{1}{2}d{r}^{2}+\frac{1}{2}r\left(d-2\right)$. As a corollary we prove: (1) Mustaţă’s conjecture for a general set of $s\ge 19$ points on any integral cubic surface in ${ℙ}^{3}$; and (2) the ideal generation conjecture and the Cohen–Macaulay type conjecture for a general set of cardinality $s\ge 6d+1$ on a del Pezzo surface $X\subseteq {ℙ}^{d}$.

Keywords
minimal free resolutions, del Pezzo surfaces, $G$-liaison
Mathematical Subject Classification 2000
Primary: 13D02
Secondary: 13D40, 14M05
Milestones
Revised: 20 January 2011
Accepted: 19 February 2011
Published: 15 June 2012
Authors
 Rosa M. Miró-Roig Facultat de Matemàtiques Department d’Algebra i Geometria University of Barcelona Gran Via des les Corts Catalanes 585 08007 Barcelona Spain Joan Pons-Llopis Facultat de Matemàtiques Department d’Algebra i Geometria University of Barcelona Gran Via des les Corts Catalanes 585 08007 Barcelona Spain