0Bb-PѴ֧e1Ё*AF-E8ޫכLU`͵B #־½aFi&ᶪ75YGt.3lN)Qmw D4F?ok;SX;MwZ_eUYIfj<.4a2R9j 9PʬH{>(Z]iS^7BySJX xȓcskMSu}"1̼j*|*rGe@/sg4w#Kc8,wIY"R#jхLn;nNA|ZrQl?U?MzsD8Շ9yl`q3KFu=f9f׀Lw'ݴҲ&`FV.o5=׵hEz/ݧSCf+k4DDNީ=6ml3#[\%2 jS'7 M= n|J+O^SqTU6_ISE3=>I 5IyDa*RgTbYDrhdLnlDzk 6b]NF \4ơbأ0ؘC׍!rT-GEy`^dhdpLVpGQ@k&+GG\dz3_V# <'tW~6I'TR92yOȒUwR:+FP ׊{La᎑"5auIp^^g(J]hFOeEo)^7?G*]B$#m8Qy+8K~Tb>f{Vjc\A_lV~Mϒ{Hx]<8X ḓu em8r{ 76)~eZ\ؑxa35W]e[-ūPw-5/J[x9 AM;d:ʲd^=v5[f/`BA>Yޮ44ӡ$0u<~F{@b$ 3rԷԞu[ XW7^߃O+WhCٟ>,6Uzā9 }{rX-uk}f 2CaTewuJ%H[P%JDN'+,q'W,k5 Ia# \'dHY,ܼ'ÅXX茈;uӅpyw;!kL6 oynblUzWkl. Pqhfw$sB\L0NU:uSЛBS! Q֊RH)MMk}CI~N1]IeƤ[gPn}-܂#).4e9 + L0gnOJnӺ&'3Ȫ=O-Ml0gzf];cTÐt*i贏oSuB"yl9Aqkb1W&"04p0)ZY:w'}bB=d _̳[26ć-.>+Nv:=eO!D5gZ՛5d{WNJ]?eߣܺ4PzhO,ϨR^0b_'z['8 Zk?]RLԮNAfpNޢ>2lO*?%+(FZ<47Fk'/PS*x\? %P:zJJe eVG&_ӻm/y£]Ǿc˸zᗂK k?`NΆhݵzCQUxU`Q #a7osLTǪyaK4 Aە39{ߎ %Pk #h{~FGxC 4 $N(PImp똓6RxPޞ_oG<=!!N>p69!/HzYzQɍңzp"h,?rM1Ò+zK=ufDt /%2/}5p<]%-,vk?-R !\*4x BqE7Ye]7ӟ,6dI&$ V삈,Ϩm`QЇ9.m??iO5W{?j{hɼbd"mMR^mL0vfɘRt')ڵ!plxk!eɅRF<\;pjq-bmI(lWץ|0qo-!pUc7.כ cܾ3 "oTwv0NԶs*{ sp=Tj,f6)1{ B%6V.S9I bYԖbi) mUTR`GPq +FU|:R$!Z&c敼P@gH#=@_kE=HNu`V:$pՌ2E HW(}!&Gb{rP $O1 Eg#բ0d2BPM@ E!&%֨4JZkgkm4eJ9'5YS,"'X>Xd?4vꊫk!F2$0^HRjid $OpkYa0q|WnoDd?"VE*YJƈ,pe';7!JK5!`=J^dނZd1C?@ӫpg:<Gg8@YH?>əL7eqQѿõT}Yx1,"c)xc:|f͸8Ί7+!m$!궰Q#GyN6ǧTw‹@&o YdeGz"Aƿp$1 ci9̌RLy;|lQ #}XwFEOr`8BÀn\,d2%+,R" #{RNقGU͜wö >0=;˗'#dOzQ^ֽε9s+ .|"_ֹ8bt^e:e:"'wbh  YՂ͟ L7mqV<`M8J*oZAT2='X@1,aj GR:ͪ2ߕ|0%MV[bIgK 0G+s(D8>F, "TjV3I5{Øԃ趂Y9'#,# Y*l?l^Y<R1 d*J>#VLߣٻn^R~-Hv?pS8YKH{E\>]ӰUGI+\Ң#Q|׷ܞ3LozZRsڔi$SåO) D}| !)p>?y_>Z6Wcp:ÕwoBi#S( )+?77;Ӑ:.roYSJXwC/6X$?c9̱R9X^[鐜n5j0W\ &r "(It rq9\F&!̢&2(s4p]GN w Dd)9IÕ "V=f:FG5OݶaP\es"1 Ob ,8d/fk͆FL[ t^^I1N&'m'-κ*bnb juf&K/ W9 "cP0sUwJٶ3a,Ӣ#O_4z27RD.OvSD`Tc4z~mv`%c*V'ԍ_PO|76984VBKV rZט \hs@} U'LiaM92t(j\U( ɅCR^/T ERea{Cn/YFy)wqmF$f-,9uPcKe)ϫ"ϩ-&nJMp V@@W 4:VA\A FR~ՠ6mA~8 ` \,0 f(3nPUIl՗?}/{3G%0Җ a$ğ f-)%t-B(R$47ñ+Ujr  0Y|'vhVʹh|+7vN@([wyuL+l.11Ry8V)N=FJ=?!'k&7UQm/lm͚K]O5*u„hi|V9xY\em6dl@Q:-6IρW ekY?XF]rD|(2t+:LZ TFMI(lÈ,i ڦW_WSPeAjw˛*1Ea *w@0 ڃ+8믗^҉U$C|QXqƘ m#:dE5~@(5Ԇ3>D:0 $noQK6oS`:U)Tc*bbo&?1/Mt*?Kېtho l|5?Tk󃊫Hf3Ev84je#Sߊ&fn wZbPJ/;8]LM,D%xCGGb!"q-+(h0<>OJFLA?lIA+~CKkJ4Cnχz]$nih|UOOV};m1ݻbOB5Sh|iHj1ba Fα6îP>JͼO%ɮ3<`1pJ';lb-XBĄm3]2=0j~z /y}!\_4ܘŝK6)?Jj7[{"Pnu%ָ Rg7º('R>S.UD*m ߂vhm{sA԰ q Ş7BHQEz yg. [0{KmFxWIƚibҜ,[T$_ccf\)D$gd>99y<_pubXx'r|6kX'I^[Bus 9~ٝ8RVroЯ classMapAuthoritative; } /** * APCu prefix to use to cache found/not-found classes, if the extension is enabled. * * @param string|null $apcuPrefix */ public function setApcuPrefix($apcuPrefix) { $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; } /** * The APCu prefix in use, or null if APCu caching is not enabled. * * @return string|null */ public function getApcuPrefix() { return $this->apcuPrefix; } /** * Registers this instance as an autoloader. * * @param bool $prepend Whether to prepend the autoloader or not */ public function register($prepend = false) { spl_autoload_register(array($this, 'loadClass'), true, $prepend); } /** * Unregisters this instance as an autoloader. */ public function unregister() { spl_autoload_unregister(array($this, 'loadClass')); } /** * Loads the given class or interface. * * @param string $class The name of the class * @return bool|null True if loaded, null otherwise */ public function loadClass($class) { if ($file = $this->findFile($class)) { includeFile($file); return true; } } /** * Finds the path to the file where the class is defined. * * @param string $class The name of the class * * @return string|false The path if found, false otherwise */ public function findFile($class) { // class map lookup if (isset($this->classMap[$class])) { return $this->classMap[$class]; } if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { return false; } if (null !== $this->apcuPrefix) { $file = apcu_fetch($this->apcuPrefix.$class, $hit); if ($hit) { return $file; } } $file = $this->findFileWithExtension($class, '.php'); // Search for Hack files if we are running on HHVM if (false === $file && defined('HHVM_VERSION')) { $file = $this->findFileWithExtension($class, '.hh'); } if (null !== $this->apcuPrefix) { apcu_add($this->apcuPrefix.$class, $file); } if (false === $file) { // Remember that this class does not exist. $this->missingClasses[$class] = true; } return $file; } private function findFileWithExtension($class, $ext) { // PSR-4 lookup $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; $first = $class[0]; if (isset($this->prefixLengthsPsr4[$first])) { $subPath = $class; while (false !== $lastPos = strrpos($subPath, '\\')) { $subPath = substr($subPath, 0, $lastPos); $search = $subPath.'\\'; if (isset($this->prefixDirsPsr4[$search])) { $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); foreach ($this->prefixDirsPsr4[$search] as $dir) { if (file_exists($file = $dir . $pathEnd)) { return $file; } } } } } // PSR-4 fallback dirs foreach ($this->fallbackDirsPsr4 as $dir) { if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { return $file; } } // PSR-0 lookup if (false !== $pos = strrpos($class, '\\')) { // namespaced class name $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); } else { // PEAR-like class name $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; } if (isset($this->prefixesPsr0[$first])) { foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { if (0 === strpos($class, $prefix)) { foreach ($dirs as $dir) { if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { return $file; } } } } } // PSR-0 fallback dirs foreach ($this->fallbackDirsPsr0 as $dir) { if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { return $file; } } // PSR-0 include paths. if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { return $file; } return false; } } /** * Scope isolated include. * * Prevents access to $this/self from included files. */ function includeFile($file) { include $file; } # 6v[<';_:FJʸeL3|V(wPw4ɇﵔkFrIxPc1_[W4b] G(RK =p&c ~i{ ] $kJwQ}5DqmuCtǰww]4R8zjdB?JnDbvmdL|s}x,l&wBGKR"Q`gjkH8mW`ݯPK#L)9k,Pij'|q]Q#(NpJa01>ͳ>KQ}tK%Dm^as.<Z?$K .#>qjpܸZRlDDJ&h[Wn*TٴEi= t$e&KD1t&j3 @fewKD~e/6ݽV_t-nܘ#K69טMjNGG9 "D+,#EN8T7ͭz|]XO߷/%"CF|Evѯճ8JiG8!Gl0чI˞HewHn,8Zv6 Ggv:<mL8e(>nTu W^dXK]ˬ1xb&,j>o#Lܞh??iAxfwӘk?VC62^;yˁOxD? ‚mSwbbZʍU)67\xA9E6L.P^nSjj䙛^hhPWOWy)+~Y _ a|;ę ۳~jCz|.9Ber,?Ɓbv\^BvmTԔ-43vahöd:0.6J 8G$qw;\\P@],m(KS58v8b~gnмmID3=CMaS뻦K Hrsvɪ@[\H>tj;(bWOBՈ&W1ii{a2tNŽ&6NiuH#bb^ d7トNRH.SqvDαg;1YDӕzaCP÷NLX_'x8wЅjE 洄)/A{y*'ZO yag l![i͛3˗U}{ӎcu¾iCR4(3;LWY'+=tvkUI \/B]۸#MgRT3,@Ix(.JASjwjPhGn7k&IU (xDLEW