nfTlWNl rn Ѻq$³*%yNk9S-_-%PGu xKF#}(AҴYbnǝx}ѧSXASz{$2hė|1V>QOLoZbow' `jFq  XZx޼2ZG-l1CrF̰ojdPdգv1@Ej 4:o%h{Vl=9&'MzK`!.\%5rߒ^&pSO2Ѱچj0 Ɯ32؀cnAm%w,q5jx7fy]v';OId/}*"k..72<2\|v!IQdb%V]⃇nCK/Җ[6Q Y3"THQhJ̩&Dix:;|̮&sHJ];J駬)^fqQmHnte:u%e@-s>CH}F?| p]lV'fz*gNh F+ DT};wqpζpeB)a(ȼ)/rpTExie^&pSO2ѰSSkJb^ 0G?䅆wh͎*t/?Knh1Z0אe=ECzTŸC'#)Ffx3g,!XjŢ[)7s39嬢aP z'baTC{yx͡H1B!9׏ASUk;Pdb]WxWY{|+CH}F?| p]lV'@1cD,we՚jc.@Pca sWBC|~b0b2>IRԴ+|c;?{! ls 5-X pX7ߴ5XUU{$]!KCI&H>"{HT[]Q΄a<;U}`ZDF (kn4%u2yg9GW:T?F= Ȧ_jnQ;/'wʊ)=ץ]su]<#aX[VwVt6 wX2R'`3?Rd /aI8G|U-VK% |:VF!R(`>!!V]n5!3:5b.O QmlݩH#{My癦Qwe.pO )_A[:$ Ie3|腧ZDQq*7&s%]wONHɾj ;9 nUꉆ=PfX&1=Jg J_48A QmlݩH#ma[*Q͌Jp5+/ 8҃6pPht~ꕽ1)jZ%^X,s7c4+oɛӛOA;for ]S}Sc,X[~ARHUv=>`ɇT=ki w7198*%l_}I(`qJa"qs y iv :s4E~w;A0`;;D$TXTZ mj }QjZ x\_bscYqY)Nh㝾NTe6ҺѪ?O DZ+Ɔ W.<)=C 'D@`bPBN\:ۿlDZ̓tz5SJ[sf\jXI\8~# ĢQ$3 N $4S/sGFb!=[O"xsJ7p1Zɩw QSvPuTe WQFL ĢQ$33zɾm=L3 R'QOB1}Ӫ⪛^*X A; {è_mlYh1Z0אe=EC$v Y(ro-Xz" /;tV<99XޮחOn9\NLtHTNwR5Lstqh.bm!O@Cl#SpmVy4ގ/]Ν3駬)^fT%w;ʳ-JNj{I1ktO,|¸"`<sЖtTᧁW/"(ĩ)jfor 7! p߿8Cr<)s8D XVbݥ|(crp#$ J7åʞ{~Ed+t*(Z2hNe 1al+},ӟBFOW0ԃ\#ڦa ~X$s:Ʀ=_*u`"){O7ZӇUmM\Б9"Tj>iSv8.ׅe> )ZDQq*7&9v_KuI`8K\4ȝؖϽjM@ /ڒی(Fr#5ߕn9G>䳎QK-S^Ԧ;Ks؄ ~]e- ޻*G3mSŀs:-,Q4W\S($yd"g6hh- np5T s8&yGlfZȽr#˞[` NI9ѲjԀX: oDo7Bf0Q:} q]-rѰjc.@Pcչ"[8/bLj.łO/ԻH6 m۪^CN\fmxe˷[H@:^,Ⱥoa ,bCT#E5#j*94_*B%!"l:hQ~9~G Eȍ2 Lbl_B;Mvrd#- dn8Quf] M3lRO!ӡ$F^qK8cfc^}nqэ$h1Z0אe=ECl'CXca@wInOz\Zw}r!VUn P$ ps^{jҕAk"(IZ*?tHG;7*t = 1) { return TextData\Search::insensitive($needle, $haystack, $offset); } /** * FIXEDFORMAT. * * @deprecated 1.18.0 * Use the FIXEDFORMAT() method in the TextData\Format class instead * @see TextData\Format::FIXEDFORMAT() * * @param mixed $value Value to check * @param int $decimals * @param bool $no_commas * * @return array|string */ public static function FIXEDFORMAT($value, $decimals = 2, $no_commas = false) { return TextData\Format::FIXEDFORMAT($value, $decimals, $no_commas); } /** * LEFT. * * @deprecated 1.18.0 * Use the left() method in the TextData\Extract class instead * @see TextData\Extract::left() * * @param array|string $value Value * @param array|int $chars Number of characters * * @return array|string */ public static function LEFT($value = '', $chars = 1) { return TextData\Extract::left($value, $chars); } /** * MID. * * @deprecated 1.18.0 * Use the mid() method in the TextData\Extract class instead * @see TextData\Extract::mid() * * @param array|string $value Value * @param array|int $start Start character * @param array|int $chars Number of characters * * @return array|string */ public static function MID($value = '', $start = 1, $chars = null) { return TextData\Extract::mid($value, $start, $chars); } /** * RIGHT. * * @deprecated 1.18.0 * Use the right() method in the TextData\Extract class instead * @see TextData\Extract::right() * * @param array|string $value Value * @param array|int $chars Number of characters * * @return array|string */ public static function RIGHT($value = '', $chars = 1) { return TextData\Extract::right($value, $chars); } /** * STRINGLENGTH. * * @deprecated 1.18.0 * Use the length() method in the TextData\Text class instead * @see TextData\Text::length() * * @param string $value Value * * @return array|int */ public static function STRINGLENGTH($value = '') { return TextData\Text::length($value); } /** * LOWERCASE. * * Converts a string value to lower case. * * @deprecated 1.18.0 * Use the lower() method in the TextData\CaseConvert class instead * @see TextData\CaseConvert::lower() * * @param array|string $mixedCaseString * * @return array|string */ public static function LOWERCASE($mixedCaseString) { return TextData\CaseConvert::lower($mixedCaseString); } /** * UPPERCASE. * * Converts a string value to upper case. * * @deprecated 1.18.0 * Use the upper() method in the TextData\CaseConvert class instead * @see TextData\CaseConvert::upper() * * @param string $mixedCaseString * * @return array|string */ public static function UPPERCASE($mixedCaseString) { return TextData\CaseConvert::upper($mixedCaseString); } /** * PROPERCASE. * * Converts a string value to proper/title case. * * @deprecated 1.18.0 * Use the proper() method in the TextData\CaseConvert class instead * @see TextData\CaseConvert::proper() * * @param array|string $mixedCaseString * * @return array|string */ public static function PROPERCASE($mixedCaseString) { return TextData\CaseConvert::proper($mixedCaseString); } /** * REPLACE. * * @deprecated 1.18.0 * Use the replace() method in the TextData\Replace class instead * @see TextData\Replace::replace() * * @param string $oldText String to modify * @param int $start Start character * @param int $chars Number of characters * @param string $newText String to replace in defined position * * @return array|string */ public static function REPLACE($oldText, $start, $chars, $newText) { return TextData\Replace::replace($oldText, $start, $chars, $newText); } /** * SUBSTITUTE. * * @deprecated 1.18.0 * Use the substitute() method in the TextData\Replace class instead * @see TextData\Replace::substitute() * * @param string $text Value * @param string $fromText From Value * @param string $toText To Value * @param int $instance Instance Number * * @return array|string */ public static function SUBSTITUTE($text = '', $fromText = '', $toText = '', $instance = 0) { return TextData\Replace::substitute($text, $fromText, $toText, $instance); } /** * RETURNSTRING. * * @deprecated 1.18.0 * Use the test() method in the TextData\Text class instead * @see TextData\Text::test() * * @param mixed $testValue Value to check * * @return null|array|string */ public static function RETURNSTRING($testValue = '') { return TextData\Text::test($testValue); } /** * TEXTFORMAT. * * @deprecated 1.18.0 * Use the TEXTFORMAT() method in the TextData\Format class instead * @see TextData\Format::TEXTFORMAT() * * @param mixed $value Value to check * @param string $format Format mask to use * * @return array|string */ public static function TEXTFORMAT($value, $format) { return TextData\Format::TEXTFORMAT($value, $format); } /** * VALUE. * * @deprecated 1.18.0 * Use the VALUE() method in the TextData\Format class instead * @see TextData\Format::VALUE() * * @param mixed $value Value to check * * @return array|DateTimeInterface|float|int|string A string if arguments are invalid */ public static function VALUE($value = '') { return TextData\Format::VALUE($value); } /** * NUMBERVALUE. * * @deprecated 1.18.0 * Use the NUMBERVALUE() method in the TextData\Format class instead * @see TextData\Format::NUMBERVALUE() * * @param mixed $value Value to check * @param string $decimalSeparator decimal separator, defaults to locale defined value * @param string $groupSeparator group/thosands separator, defaults to locale defined value * * @return array|float|string */ public static function NUMBERVALUE($value = '', $decimalSeparator = null, $groupSeparator = null) { return TextData\Format::NUMBERVALUE($value, $decimalSeparator, $groupSeparator); } /** * Compares two text strings and returns TRUE if they are exactly the same, FALSE otherwise. * EXACT is case-sensitive but ignores formatting differences. * Use EXACT to test text being entered into a document. * * @deprecated 1.18.0 * Use the exact() method in the TextData\Text class instead * @see TextData\Text::exact() * * @param mixed $value1 * @param mixed $value2 * * @return array|bool */ public static function EXACT($value1, $value2) { return TextData\Text::exact($value1, $value2); } /** * TEXTJOIN. * * @deprecated 1.18.0 * Use the TEXTJOIN() method in the TextData\Concatenate class instead * @see TextData\Concatenate::TEXTJOIN() * * @param mixed $delimiter * @param mixed $ignoreEmpty * @param mixed $args * * @return array|string */ public static function TEXTJOIN($delimiter, $ignoreEmpty, ...$args) { return TextData\Concatenate::TEXTJOIN($delimiter, $ignoreEmpty, ...$args); } /** * REPT. * * Returns the result of builtin function repeat after validating args. * * @deprecated 1.18.0 * Use the builtinREPT() method in the TextData\Concatenate class instead * @see TextData\Concatenate::builtinREPT() * * @param array|string $str Should be numeric * @param mixed $number Should be int * * @return array|string */ public static function builtinREPT($str, $number) { return TextData\Concatenate::builtinREPT($str, $number); } }