rust ·“2#rustc 1.98.1 (48a229cea 2026-09-01)ÁûÊÆÍRLñ.åSÛAúwjL-df1bddb45adbe94bÁ‰m6GÞ­n6ÇèÆ2-64f5f36fb0927694Á«ª1Úë• ¢›ºXÝÓrŽ*-1ad4f876c768bda9Á±ò‰<å%Z‰>¸64‡ËV`-2d2ab9fb0fe1def5Á»ÄóG Øg{ë(3íi«F×-06449a08aaab5e30Árustc_std_workspace_coreÁ€û{ù`ä"Ei¥€ÞÏ%G-cb0d4d77988d81b5Áó"Æ)ΉÉðÛÕpEÍ—E-3ec41d3a5a80a4a4Á miniz_oxideÁÐ8°ø‚ðbž Lƨ°J-e44eaef1807e5fc0Áadler2Á9lí©yA6P/D$UBŸ-dca52f01a59c33e7Á hashbrownÁ™¸ÈXó®÷ …ùý{e-143c77bb957d9940Árustc_std_workspace_allocÁð…¨À �¶÷Üúò·_z%í-145a318e0772276cÁ std_detectÁK(ƒ0ì*ãÛ8²D?-f99feda5ce9e492aÁrustc_demangleÁµ%jŽeårVŠÕÓ•-cfd0ab54bb33760eÁcfg_ifÁÍ}λ—©ŒÕž§C•×o-360da4ba13154744Á addr2lineÁ‹c²ŽúY\ÈGÞö÷ö--09755979c57b7e64ÁgimliÁ¢±QÄÍ`ª§DÞåù¬y-9a1fede77fbbf2f0ÁobjectÁö‚F λâËvú.zËí-7ff85ea729a864ffÁmemchrÁž˜]²1<õ¶=U�ý�Où-0e3477fb2664a277Á  ÿŽ—jl‹®¾To–K™G-549498e8b2e4d924Á regex_syntaxÁeüš;ÖZü¢Ù4®ö”‚â-64dae4b52f103216Á aho_corasickÁ·­­ ¯ohë¦ Ç÷*'-5fed2b58eacfc033Áì% Àºø…�Úu½÷;%ý×C-de3d4e99a744dd44Á AutomatonÁLósÓ dfa-searchÁ´´s OverlappingStateÁ„þsÓí&( StartErrorÁT�tÓíDF StartKindÁL¨tÓíac denseÁ,ÕxÓí´´x testsÁ,þúÍ$Þú regexÁ,´yÓí´“y sparseÁ4âyÓí´Áy accelÁ,™zÓí´ñy automatonÁLÃzÓí´¦z determinizeÁ\ðzÓ dfa-buildÁ¬Ôz minimizeÁDŸ{Ó� ¬ƒ{Ôà ,âCÓ� ¬ÆC searchÁ4–|Óí´ù{ specialÁ<Á|Óí´¤| ‚,í|Óí´Ð|ûStateMapÁD× Ó‰|¿ Œ¾ ûû ,¸Á Í$˜Á Ÿdfa_try_search_half_revÁ¼ÍÓ� ¬§Ÿ dfa_eoi_revÁ\û=Ó� ¬«=Ûû ,âùÍ$×ùêû ,Ý*Í$Ò*÷dfa_try_search_half_fwdÁ¼�Ó� ¬ê÷ dfa_eoi_fwdÁ\ü1Ó� ¬¬1‚û ,ìÚÍ$áÚ£ dfaÁ‰ Ó� ¬æ ² û ,¸Á Í$­Á ¯ û ,­Æ Í$¢Æ é û ,å¿ Í$Ú¿ ‰ û ,è¡ Í$Ý¡ Î û ,œ„Í$øƒÅÍ<�Óinternal-instrument-pikevmÁüä&ÅCountersÁD³ÙÓæüëØ&Êû ,Ú§Í$ϧ–û ,ˆ„Í$éƒôCaptureNameMapÁt©¢Ó‰|‘¢Œ�¢”û ,åTÍ$ÚTžlazyÁ$ºDÓ«Œ¡Dœ Džû ,Ò†Í$džØ is_word_charÁd¨èÓsyntaxÁ”ðçÓ unicode-perlÁÄ„èüïç.üëç3ØÑdûõÓunicode-word-boundaryÁüÒõ!üÑõ#Øû ,�ûÍ$öú¬innerÁ,‡ÒÓ‰|ðÑŒïѬû ,Ï’Í$Ä’£û ,�zÍ$…zôNEÁ܆·Ò¬´†ôû ,§ŒÍ$ˆŒóû ,À÷Í$µ÷Æð,© Óperf-literal-substringÁüô "üó $Ïû ,ÞµÍ$Óµå perl_wordÁLÝÓí”ËÓ€ĨüÍúüÉÿû‰«macrosÁlogÁ¨traceÁÒ DEADÁ onepassÁ                                        ! " 1˜ 1 match_kindÁ1starts_for_each_patternÁ1 byte_classesÁ1 size_limitÁ1get_match_kindÁ1get_starts_for_each_patternÁ1get_byte_classesÁ1get_size_limitÁ1 overwriteÁ <˜ <buildÁ< build_manyÁ?Œ<build_from_nfaÁ< configureÁ<í<thompsonÁ E'aÁE˜ EáEshuffle_statesÁEcompile_transitionÁJ Eadd_start_stateÁEadd_dfa_state_for_nfa_stateÁEadd_empty_stateÁN E stack_pushÁ Q˜ Qnew_manyÁSŒQ new_from_nfaÁQ always_matchÁQ never_matchÁQconfigÁQbuilderÁQcreate_capturesÁQ create_cacheÁQ reset_cacheÁQ get_configÁQget_nfaÁQ pattern_lenÁQ state_lenÁQ alphabet_lenÁQstride2ÁQstrideÁQ memory_usageÁd fis_matchÁg'hÁg…ffindÁj¸j…fcapturesÁm¸m…f try_searchÁftry_search_slotsÁftry_search_slots_impÁ s search_impÁs find_matchÁ v‚v start_patternÁv transitionÁvset_transitionÁvsparse_transitionsÁvpattern_epsilonsÁvset_pattern_epsilonsÁv prev_state_idÁv last_state_idÁv swap_statesÁvremapÁ�impl Fn(StateID) -> StateIDÁ ƒñ„debug_state_transitionsÁ †Ä†Ÿ†¥   Š˜ ŠresetÁŠŽŠexplicit_slotsÁŠ setup_searchÁ  � STATE_ID_BITSÁ�STATE_ID_SHIFTÁ�STATE_ID_LIMITÁ�MATCH_WINS_SHIFTÁ� INFO_MASKÁ�˜ �is_deadÁ� match_winsÁ�state_idÁ� set_state_idÁ�epsilonsÁ  œñ  žPATTERN_ID_BITSÁžPATTERN_ID_SHIFTÁžPATTERN_ID_NONEÁžPATTERN_ID_LIMITÁžPATTERN_ID_MASKÁž EPSILONS_MASKÁžemptyÁžis_emptyÁž pattern_idÁžpattern_id_uncheckedÁžset_pattern_idÁž®#ž set_epsilonsÁ  ¬ñ ® SLOT_MASKÁ® SLOT_SHIFTÁ® LOOK_MASKÁ®Ø$®å$®slotsÁ® set_slotsÁ®looksÁ® set_looksÁ ¸ñ ºLIMITÁºinsertÁºremoveÁºå$º�ºapplyÁ Áñ ßå  ÆnfaÁÆwordÁÆtoo_many_statesÁÆtoo_many_patternsÁÆunsupported_lookÁÆexceeded_size_limitÁÆ not_one_passÁ ÎsourceÁÏ ÑñÒ remapperÁÔÔÔ RemappableÁ×Ð×óן ×± Û¾ Ôݘ Þimpl RemappableÁÞ ÝswapÁáõ)ݱ ãõ)ã Ôæto_indexÁæ to_state_idÁÔëéééééîÐîóîŸ î± ò¾ hybridÁôôôôôôôÒûûûûûûûûûû û û û û ûûûûûûûûûûûûûûûûûûû û!û"û#û$û%û&û'û(û)û MIN_STATESÁûSENTINEL_STATESÁû¨˜ ¨ûªŒ¨¤¨·¨É¨Ö¨ú¨�¨¾¨¿¨Ÿ¨°¨ó¨�¨Žû¹try_search_fwdÁº » ¹try_search_revÁ½ ¾ ¹try_search_overlapping_fwdÁÀ ¹try_search_overlapping_revÁ ¹try_which_overlapping_matchesÁûÅ next_stateÁÅnext_state_untaggedÁÅnext_state_untagged_uncheckedÁÅnext_eoi_stateÁÅ start_stateÁÅstart_state_forwardÁË Åstart_state_reverseÁÍ Å match_lenÁÅ match_patternÁûј Ñ´!Ñ search_startÁÑ search_updateÁÑ search_finishÁÑsearch_total_lenÁ× Ñ clear_countÁÑŽÚID_SIZEÁÚ STATE_SIZEÁûݶûµ ûà'iÁà'cÁà˜ àÐäÄàcache_next_stateÁæ àcache_start_groupÁàcache_start_oneÁé àadd_builder_stateÁë#impl Fn(LazyStateID) -> LazyStateIDÁà add_stateÁíÙ4à next_state_idÁàtry_clear_cacheÁà�à clear_cacheÁò à init_cacheÁô ô ô à save_stateÁàsaved_state_idÁàset_all_transitionsÁà—àset_start_stateÁàget_state_builderÁàput_state_builderÁûÿÂ3ÿÌ3ÿ˜ ÿget_cached_start_idÁÿget_cached_stateÁÿ is_sentinelÁÿ unknown_idÁÿdead_idÁÿquit_idÁÿis_validÁÿstate_fits_in_cacheÁÿstate_builder_fits_in_cacheÁÿmemory_usage_for_one_more_stateÁŒ‡3Œ–3û�¾ � take_to_saveÁ� take_savedÁû“˜ “�“ prefilterÁ“¡“¿“unicode_word_boundaryÁ“quitÁ“specialize_start_statesÁ“cache_capacityÁ“skip_cache_capacity_checkÁ“minimum_cache_clear_countÁ“minimum_bytes_per_stateÁ“ã“ get_prefilterÁ“ø“š“get_unicode_word_boundaryÁ“get_quitÁ¥ “get_specialize_start_statesÁ“get_cache_capacityÁ“get_skip_cache_capacity_checkÁ“get_minimum_cache_clear_countÁ“get_minimum_bytes_per_stateÁ“get_minimum_cache_capacityÁ“byte_classes_from_nfaÁ“quit_set_from_nfaÁ“Ư û ±˜ ±á±í´Œ±…±š±í±±û º‚º get_matchÁû"skip_empty_utf8_splits_overlappingÁ½‚ûminimum_lazy_state_idÁûminimum_cache_capacityÁÀ‡3À–3ôerrorÁÃÃÃÃÃÈß'Èinsufficient_cache_capacityÁÈinsufficient_state_id_capacityÁÈ%unsupported_dfa_word_boundary_unicodeÁÃÍñ(ÃÏñÃÑcacheÁѼ:Ñunsupported_anchoredÁÃÕñ(Ã×ñÃÙtoo_many_cache_clearsÁÙbad_efficiencyÁÃÃÝñôidÁßàMAX_BITÁà MASK_UNKNOWNÁà MASK_DEADÁà MASK_QUITÁà MASK_STARTÁà MASK_MATCHÁàMAXÁà˜ à¢ àas_usize_untaggedÁàas_usize_uncheckedÁà to_unknownÁàto_deadÁàto_quitÁàto_startÁàto_matchÁà is_taggedÁà is_unknownÁàé"àis_quitÁàis_startÁà©ß÷ attemptedÁßßúñô• üüüüüüüüüü ü ü ü ü üüŒ˜ ŒûŽŒŒÖŒúŒ�ü“©”¸”…“È—¸—…“ find_iterÁš'rÁšÌ3š¸š…üŸþŸ is_anchoredÁü¢forwardÁ¢reverseÁ¢¾ü¦æG¦Ì3¦¸¦Ÿ¦¥ « ü­˜ ­´!­­H­¼H­ forward_mutÁ­ reverse_mutÁ­as_partsÁ­ as_parts_mutÁ­Žü·˜ ·á·íºŒ·build_from_dfasÁ·í·±·ÒüÀ>ôå      Âfind_fwdÁ find_fwd_impÁÒnext_uncheckedÁÒ Ò Âfind_revÁ find_rev_impÁ×ÎK× × Âfind_overlapping_fwdÁÂfind_overlapping_fwd_impÁÜ Âfind_overlapping_revÁÞ Âinit_fwdÁÂinit_revÁÂeoi_fwdÁâ â Âeoi_revÁå å Âprefilter_restartÁÂgave_upÁª êêêêêêêêêê ê ê°@ööööööööþpatternÁþÒþ syntax_errorÁþastÁþhirÁþß'ö…ñ(ö‡ñööŠñöŒ”öŽ˜ öö‘ñö “”ö • from_offsetÁö ö ˜ñö š”öœ”�êlimitedÁŸŸŸŸŸŸŸŸhybrid_try_search_half_revÁ§ § Ÿhybrid_eoi_revÁª ª êЭ­­­­­­­alternation_literalsÁµµµêprefixÁ¹¹¹¹¹¹hir_can_contain_literalÁ¿ ¹hir_has_fixed_lengthÁÁ  ¹has_disjoint_class_separatorÁÄ Ä ¹has_disjoint_class_separator_atÁÇ ¹hir_matches_empty_onlyÁ¹required_classÁ¹hir_is_disjoint_from_classÁË ¹ uncaptureÁ¹classes_are_disjointÁ¹class_is_disjoint_from_literalsÁÏ ¹class_is_disjoint_from_literalÁÑ Ñ Ó ¹hir_can_consume_byteÁÕ ¹byte_class_containsÁ× ¹unicode_class_containsÁÙ ê• ÛÛÛÛÛÛÛÛÛÛ Û Û Û Û ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ Û!Û"Û#Û$Û%Û&Û'Û(Û)Û*Û+Û,Û CachePoolÁÛCachePoolGuardÁŠÄÛ CachePoolFnÁÛ�˜ �û�Œ�É�ÖÛ“©”¸”…“È—¸—…“ᚸš…“ÕG�æG�¸�…“ captures_iterÁ¡æG¡¸¡…“splitÁ¥æG¥¸¥…“splitnÁ©æG©¸©…Û­å ­ search_halfÁ­search_capturesÁ­ search_slotsÁ­which_overlapping_matchesÁÛ³ search_withÁ³search_half_withÁ³search_captures_withÁ³search_slots_withÁ³which_overlapping_matches_withÁÛ¹ä¹ú¹¾¹ captures_lenÁ¹static_captures_lenÁ¾ ¹ group_infoÁ¹Ÿ¹is_acceleratedÁ¹ŽÛÄŽÅ Ûǘ ÇÉÇpropsÁÇ props_unionÁÇ¾ÇŽÍ Çis_anchored_startÁÇis_always_anchored_startÁÐÇis_always_anchored_endÁÒÇcaptures_disabledÁÇ is_impossibleÁÛÖæGÖ¸Ö• ÖinputÁÚ'sÁÛÜæGܸܟܥ à ÜŠâ Û äæGä¸Û çæGç¸ç• ç–`ë£`Û íæGí¸íŸí¥ ñ íŠó Û õæGõ¸Û øæGø¸ø–`û£`ÛýæGý¸ýŸý¥ Û‚æG‚¸Û…æG…¸…–`ˆ£`ÛŠæGŠ¸ŠŸŠ¥ Š size_hintÁÛ�æG�¸Û“˜ “´!“ŽÛ—˜ —�— utf8_emptyÁ—auto_prefilterÁ—þ9—which_capturesÁ—nfa_size_limitÁ—onepass_size_limitÁ—hybrid_cache_capacityÁ—dfa_size_limitÁ—dfa_state_limitÁ—¿—line_terminatorÁ— pool_capacityÁ—ª+—Ò—ë— backtrackÁ—ã—get_utf8_emptyÁ—get_auto_prefilterÁ—æ;—get_which_capturesÁ—get_nfa_size_limitÁ—get_onepass_size_limitÁ—get_hybrid_cache_capacityÁ—get_dfa_size_limitÁ—get_dfa_state_limitÁ—š—get_line_terminatorÁ—get_pool_capacityÁ¶DEFAULT_POOL_CAPACITYÁ¶ ¸¸AVAILABLE_PARALLELISMÁº » — get_hybridÁ—get_dfaÁ— get_onepassÁ— get_backtrackÁ—to_thompson_configÁ—ÆÂ ÛĘ ÄáÄíÇŒÇÇ Ç Äbuild_from_hirÁÄbuild_many_from_hirÁÍ„Í Í ÄšÄíê reverse_innerÁÓÓÓÓÓÓÓÓÓÓ Ó Ó Óhas_no_earlier_matchÁà Ó☠Óprefilter_with_literalsÁÓ top_concatÁå ÓflattenÁç ç êreverse_suffixÁêêêêêêêêÊkêstrip_literal_suffixÁêstrip_literal_suffix_atÁêstrip_repetition_literal_suffixÁõ êstopatÁ÷÷÷÷÷÷hybrid_try_search_half_fwdÁý ÷hybrid_eoi_fwdÁÿ ÿ êstrategyÁ‚‚‚‚‚‚‚‚‚‚ ‚ ‚ ‚ ‚ ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ ‚!‚"‚#‚$‚%‚&‚'‚(‚)‚*‚+‚,‚-‚.‚/‚StrategyÁ³‚ ³Ö]³ú³�³ð]³Ž³å ³›[³©³Å[³Ù[‚˜ ¿ ‚ÁŒÁ˜ ‚Ä from_prefixesÁÄfrom_alternation_literalsÁƂȌȂ ÈÖ]ÈúÈ�Èð]ÈŽÈå Ð Ð È›[Ó È©ÈÅ[ÈÙ[‚ؘ Øtry_search_mayfailÁØ search_nofailÁØsearch_half_nofailÁØsearch_slots_nofailÁØis_match_nofailÁØis_capture_search_neededÁ‚à‚ àÖ]àúà�àð]å àŽç ç àå à›[à©àÅ[àÙ[‚ï˜ ïtry_search_half_anchored_revÁ‚ò‚ òÖ]òúò�òð]òŽòå ò›[ò©òÅ[òÙ[‚þ˜ ÿ þtry_search_half_startÁþtry_search_half_fwdÁþtry_search_half_rev_limitedÁ‚„ ‚ „ Ö]„ ú„ �„ ð]„ Ž„ å „ ›[„ ©„ Å[„ Ù[‚ � ˜ ‘ � try_search_fullÁ� try_search_half_fwd_stopatÁ� ‡w‚ – ‚ – Ö]– ú– �– ð]– Ž– å – ›[– ©– Å[– Ù[‚copy_match_to_slotsÁêwrappersÁ£ £ £ £ £ £ £ £ £ £  £  £  £  £  £ £ £ £ £ £ £ £ £ £ » ˜ » ú» getÁ£ ¿ ˜ ¿ ©¿ Å[¿ Ù[£ Ä ¾ Ä ´!Ä ŽÇ Ä êzÉ £ Ë ˜ Ë úË êz£ Ï ˜ Ï ©Ï Å[Ï max_haystack_lenÁ£ Ô ¾ Ô ´!Ô Ž× Ô êzÙ £ Û ˜ Û úÛ êzÛ Žß £ á ˜ á Å[á Žá °£ æ ¾ æ ˜ è æ ´!æ Žë £  í ¾ í ˜ í úí êzí is_someÁ£  ó ˜ ó þõ ó ìv÷ ó °xó try_search_half_revÁú ó ‡wó ñ/ý £  ÿ ¾ ÿ ˜ � ÿ ´!ÿ Ž„ £  † ¾ † ˜ † êz† í}† Ž‹ £  � ˜ � þ� ìv� °x� «~� ‡w� ñ/� Ž£ – ¾ – ˜ – ú– êz£ › ˜ › ‡w£ ž ¾ ž ˜   ž ´!ž Ž£ £ ¥ ¾ ¥ ˜ ¥ êz¥ í}¥ Žª £ ¬ ˜ ¬ ‡w¬ Žß'° ±± ÿe² ² ² ² ² ² ² ² ² ²  ²  ²  ²  ²  ² ² ² ² ² ² ² ² ² ² ² ² ² min_visited_capacityÁ² Î ˜ Î þ9Î visited_capacityÁÎ æ;Î get_visited_capacityÁÓ DEFAULTÁÎ ÆÕ ² × ˜ × á× íÚ Œ× …× š× í× ±² à ˜ à ûâ Œà ‘à ¤à ·à Éà Öà úà äà �à ¾à Ÿà °à ƒ|² ð  try_is_matchÁñ ¸ñ …ñ ð try_findÁõ ¸õ …ð  try_capturesÁø ¸ø …ð  try_find_iterÁû æGû Ì3û ¸û …ð try_captures_iterÁ€ æG€ Ì3€ ¸€ …² … þ… �‡ ‡ ‡ ‡ … ¦Œ � … Å… ÿe… stepÁ‘ ² “ æG“ Ì3“ ¸“ Ÿ“ ¥ ˜ ² š æGš Ì3š ¸š Ÿš ¥ Ÿ ² ¡ ˜ ¡ ´!¡ Ž¡ ß!² ¦  BLOCK_SIZEÁ¦ ˜ ¦ ‚'¦ ´!¦ ß!« ¦ ޲ div_ceilÁ± Ö¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯  ¯  ¯  ¯  ¯  ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ Æ gotoÁÆ Ž¯ É ˜ É clearÁÉ áÉ òÍ É finish_patternÁÉ current_pattern_idÁÉ ¾É  add_emptyÁÉ  add_unionÁÉ add_union_reverseÁÉ  add_rangeÁÉ  add_sparseÁÉ add_lookÁÉ add_capture_startÁÉ add_capture_endÁÉ add_failÁÉ  add_matchÁÉ œÜ É patchÁÉ set_utf8ÁÉ get_utf8ÁÉ  set_reverseÁÉ  get_reverseÁÉ set_look_matcherÁÉ get_look_matcherÁÉ set_size_limitÁÉ ±É ŽÉ check_size_limitÁ± °é é é é é é é é é é  é  é  é  é  é é é é é é é é é é é é é é é é é é é  é !é "é � ˜ � utf8Á� ¼H� ¹d� shrinkÁ� á� £d�  look_matcherÁ� š�� ½�� êf�  get_shrinkÁ�  get_capturesÁ� Ðf� è�� get_unanchored_prefixÁ� Æž é   >é ¢ is_noneÁ¢ is_anyÁé ¥ ˜ ¥ á¥ í¨ Œ¥ ¦j¥ ¼j« „¥ š¥ íé ¯ compileÁ° „° ° ¯ ™´ ´ ´ ´ ¯ c_concatÁ¹ …¯  c_alt_sliceÁ» » ¯  c_alt_iterÁ¾ …¯ c_capÁ¯  c_repetitionÁ¯  c_boundedÁ¯  c_at_leastÁà ¯  c_zero_or_oneÁ¯  c_exactlyÁÆ ¯  c_byte_classÁ¯ c_unicode_classÁÉ ¯ #c_unicode_class_reverse_with_suffixÁ¯ c_lookÁ¯  c_literalÁÍ ¯ c_rangeÁ¯ c_emptyÁ¯ c_failÁ¯ ýŒ¯ ò¯ ùН ±‹¯ 싯 ý‹¯ �Œ¯ ‹¯ Ó‹¯ ŸŒ¯ ¸Œ¯ ÏŒ¯ ߌ¯  is_reverseÁé à ˜ à ׊é ã Äã ˜ ã finishÁã œç è ã  compile_fromÁã Ë’ã  add_suffixÁã ±‹ã  pop_freezeÁã pop_rootÁã top_last_freezeÁé ñ set_last_transitionÁ± °@ó ó ó ó ó ó ó ú Òú ¦ú íú áú ê'ú �(ú ö'ú ¾(ú invalid_capture_indexÁú unsupported_capturesÁó … ñ(ó ‡ ñ±  literal_trieÁ‰ ‰ ‰ ‰ ‰ ‰ ‰ ‰ ‰ ‰  ‰  ‰  ‰  ‰ — ­H— ¼H— œ— get_or_add_stateÁ› › — Ë’‰ Ÿ ñ‰ ¡ Ä¡ ˜ ‰ ¤ ߌ¤ is_leafÁ¤ chunksÁ¤  active_chunkÁ¤ active_chunk_startÁ© ‰ « ñ‰ ­ Ä­ Ÿ­ ¥ ‰ ± ñ± ƒ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³  ³ PRIMEÁ³ INITÁ³ À ˜ À ׊À ÆÀ êzÀ setÁ³ Æ ˜ Æ ׊Æ ÆÉ ¤�É ±�Æ êzÆ ã�± ß'Î Î Î Î Î Î Î Î Î Î  Î  Î  Î  Î  Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î  Î !Î "Î #Î ó ˜ ó ûõ Œó ¤ó ·ó Éó °ó patternsÁó ¾ó start_anchoredÁó start_unanchoredÁó òó byte_class_setÁó ¿ó ƒó statesÁó Ö]ó  has_captureÁó  has_emptyÁó is_utf8Áó ê–ó is_always_start_anchoredÁó ¼�ó  look_set_anyÁó look_set_prefix_anyÁó Ž�Î �ñÎ ‘into_nfaÁ‘Ö]‘œ‘ set_startsÁ‘Š�‘ª�‘Ð�‘ set_capturesÁ™ š ‘± Î �ñÎ Ÿ is_epsilonÁŸŽŸ± Î £ñ¤ ¤ Î §matchesÁ¨ § matches_unitÁª § matches_byteÁÎ ­¨¤® ­¼¤° ­Õ¤­�³ ³³ ³ Î ¸¨¤¹ ¸¼¤» ¸Õ¤Î  ¾ñ¿Î  ÁÄÁŸÁ¥ ± pikevmÁÅÅÅÅÅÅÅÅÅÅ Å Å Å Å ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ instrumentÁÅ㘠ã�ãþ9ãããæ;ãÆé Åë˜ ëáëíîŒë…ëšëíë±Åô˜ ôûöŒô‘ô¤ô·ôÉôÖôäôúô�ô¾ôŸô°Åƒ©„¸„…ƒÈ‡¸‡…ƒáЏЅƒÕG�æG�Ì3�¸�…ƒ–Z’æG’Ì3’¸’…Å—å —Å[™ ™ —search_slots_impÁœ � —Ù[Å Å which_overlapping_impÁ nextsÁ nexts_overlappingÁ ¥  epsilon_closureÁ epsilon_closure_exploreÁ  start_configÁÅ©æG©Ì3©¸©Ÿ©¥ ® ŰæG°Ì3°¸°Ÿ°¥ µ Å·˜ ·´!·Žº·ß!Å ½˜ ½´!½Ž½ß!И ´!Ä ÂŽÂß! for_stateÁ all_absentÁ±  range_trieÁÊÊÊÊÊÊÊÊÊÊ Ê Ê ÊFINALÁÊROOTÁÊÙ˜ Ù׊Ù�Ü�܂ق'ß Ù±‹Ù duplicateÁÙadd_transitionÁÙadd_transition_atÁÙset_transition_atÁÙƒÙ state_mutÁÊèÈé binary_searchÁê�ê‚é è׊Êï˜ ð ïpushÁïŠ#ïrangesÁÊõ˜ ö ö ö ö õparts1Áõparts2Áõparts3Áõas_sliceÁÊÿñÊ�ñ‚ Ê„ñÊ intersectsÁ± ± ± ± ± ± ± ± ± ±  ±  ±  ±  ±  utilÁ•alphabetÁ–––––––�™�eoiÁ�as_u8Á�as_eoiÁ�as_usizeÁ�is_byteÁ£ �is_eoiÁ� is_word_byteÁ–§ñ–©Ø$ª © singletonsÁ© from_bytesÁ©write_toÁ© write_to_lenÁ©ã�©êz© get_by_unitÁ©æ³©à©ó© is_singletonÁ©�©representativesÁ¸Ž¸©elementsÁ©element_rangesÁ–½>–¿ñ–ÁÄÁŸÁ¥ –ÅÄÅŸÅ¥ –ÉÄÉŸÉ¥ –ÍÄÍŸÍ¥ – Ñ>– ÓØ$Ó set_rangeÁÓadd_setÁÓ¿– ØØ$Ù ØœØ�'ØcontainsÁØcontains_rangeÁÞ Ø�Ø iter_rangesÁØå$؃µãØ•µå�娥µ– éñ– ëÄëŸë¥ –ïÄïŸï¥ ò •áôôôôôôôôôô ô ô ô ô ôôô…ª…¨¤…Ø$…©…îN…¢?… get_groupÁ…get_group_by_nameÁ…�Ž … group_lenÁ…Ö]…interpolate_stringÁ…interpolate_string_intoÁ“ “ …interpolate_bytesÁ…interpolate_bytes_intoÁ— — …extractÁš¸šŠš š š … extract_bytesÁ ¸ Š      ô¦׊¦ set_patternÁ¦©&¦ slots_mutÁô«ñôCapturesDebugMapÁ­Ä­pidÁ­capsÁô±Ä±ñ³KeyÁ´ ´Ä´ó´ô³¹Ä¹ñô¼Ä¼Ÿ¼¥ ¼›c¼ŠôÂÄôÄÄôƘ ÇŒÇƒÇŠÇ ÆØ$Ì Æ¿*Î Æto_nameÁÆ pattern_namesÁÑ Æ all_namesÁÆ©&Ô ÆslotÁÆ¾ÆØ»Æ all_group_lenÁÆslot_lenÁÆimplicit_slot_lenÁÆexplicit_slot_lenÁÆŽÝôÚôàadd_first_groupÁàadd_explicit_groupÁâŠâ àfixup_slot_rangesÁåå à¾àØ»àsmall_slot_lenÁê ô ì�(ìtoo_many_groupsÁìmissing_groupsÁìfirst_must_be_unnamedÁìÛ¯ô òñ(ô ôñõô ÷Ø$ô ùÄùŸù¥ ü ù›cùŠô€Äô‚Äô„Ä„Ÿ„¥ •escapeÁˆˆŠñ‹ ˆ DebugHaystackÁ� �Ä�óˆ‘Ä‘ñ• interpolateÁ”””””stringÁ™impl FnMut(usize, &mut String)Á™!impl FnMut(&str) -> OptionÁ™ ”bytesÁ�impl FnMut(usize, &mut Vec)Á�ÈÆ� ”¡Ä¡””¤”” find_cap_refÁ”find_cap_ref_bracedÁ§ § ”is_valid_cap_letterÁ•�«««««««²¸²˜ ²–`µ£`² advance_halfÁ·‚²advanceÁ¹‚²try_advance_halfÁ»‚² try_advanceÁ½‚²into_half_matches_iterÁ¿‚²into_matches_iterÁÁ‚²into_captures_iterÁ²#handle_overlapping_empty_half_matchÁÅ‚²handle_overlapping_empty_matchÁÇ‚«TryHalfMatchesIterÁɸɂÉitÁÉfinderÁ«Î¸Î‚Î infallibleÁΖ`ÒÂ3«Ô¸Ô‚ÔŸÔ¥ «Ù¸Ù‚Ùñ«Ý¸Ý‚Ý–`àÂ3«â¸â‚âŸâ¥ «TryMatchesIterÁç¸ç‚çÛËçåË«ì¸ì‚ìˆÌì–`ðÂ3«ò¸ò‚òŸò¥ «÷¸÷‚÷ñ« û¸û‚û–`þÂ3« €¸€‚€Ÿ€¥ «TryCapturesIterÁ…¸…‚…ÛË…ɾ…åË« ‹¸‹‚‹ˆÌ« �¸�‚�Ÿ�¥ “ « •¸•‚•ñ«™¸™‚™Ÿ™¥ •›žžLazyÁ   � ‚ óž¥�¥‚¥˜ ž©�©‚©êzž­�­‚­ë­Ãž²�²‚²ñž›¶¶¶¶¶¶¶¶�Ѿ�¾‚¾dataÁ¾createÁ¾ownedÁ¶Ä�Ä‚¶Ç�ǂǘ ¶Ë�Ë‚ËêzËÀ ¶Ð�ЂÐñ¶Ô�Ô‚Ôõ•lookÁØØØØÜreversedÁÜas_reprÁÜ from_reprÁÜas_charÁØáØ$á¢á singletonÁá¶áå$á̸ácontains_anchorÁácontains_anchor_haystackÁácontains_anchor_lineÁácontains_anchor_lfÁácontains_anchor_crlfÁá contains_wordÁácontains_word_unicodeÁácontains_word_asciiÁá�á‚'á set_insertÁá�'á set_removeÁásubtractÁá set_subtractÁáCá set_unionÁá intersectÁá set_intersectÁá read_reprÁá write_reprÁá availableÁØþñØ€Ÿ€¥ ؃˜ ƒset_line_terminatorÁƒ€hƒ¨¤ƒmatches_inlineÁƒ matches_setÁƒmatches_set_inlineÁƒadd_to_bytesetÁ‹ ƒØEƒis_endÁƒ is_start_lfÁƒ is_end_lfÁƒ is_start_crlfÁƒ is_end_crlfÁƒ is_word_asciiÁƒis_word_ascii_negateÁƒis_word_unicodeÁƒis_word_unicode_negateÁƒis_word_start_asciiÁƒis_word_end_asciiÁƒis_word_start_unicodeÁƒis_word_end_unicodeÁƒis_word_start_half_asciiÁƒis_word_end_half_asciiÁƒis_word_start_half_unicodeÁƒis_word_end_half_unicodeÁØŸ>Ø¡checkÁØØ¤ñØÑ¦¦æÝ¦fwdÁ¦revÁ¦is_word_characterÁ•poolÁ¬PoolÁ­ ­�­‚­ó¬²�²‚²˜ ² with_capacityÁ²#with_available_parallelism_capacityÁ··Ûh¹ º ¬¼�¼‚¼êz¬À�À‚Àñ¬ PoolGuardÁÄ ÄÄÄ�Ä‚Äó¬ÊÄÊ�Ê‚ÊputÁ¬ÏÄÏ�Ï‚ÏëÏìÕÄÕ�Õ‚ÕŬÚÄÚ�Ú‚Úñ¬ðßßßßßßßßßß ß ß ß ß ßßCOUNTERÁßTHREAD_ID_UNOWNEDÁßTHREAD_ID_INUSEÁßTHREAD_ID_DROPPEDÁßMAX_POOL_STACKSÁßÖÞô�ô‚ôöÒôstacksÁôownerÁô owner_valÁßû�û‚ßþ�þ‚ß���‚ß„�„‚„˜ „œß߉�‰‚‰êzŒ ‰get_slowÁ‰ put_valueÁ� ‰ guard_ownedÁ‰ guard_stackÁ‰guard_stack_transientÁß”�”‚”ñß­à˜Ä˜�˜‚˜ÊÞ˜�˜discardÁߟğ�Ÿ‚Ÿ�Ÿ value_mutÁŸ€áŸput_impÁߧħ�§‚§õ߬Ĭ�¬‚¬ñ•þ9±ù²²²²²²¸˜ ¹þ²»‚ »È½ »¹R¿ »Ž»is_fastÁ±bytesetÁÃÃÃÃÃÃɘ ÊþÊ ÃÍ‚ ÍÈÏ Ï Í¹RÍŽÍåè±ìÕÕÕÕÕÕÛ˜ ÜþÕÞ‚ ÞÈà Þ¹RÞŽÞåèÕå˜ æþæ Õé‚ éÈë é¹RéŽéåèÕð˜ ñþñ Õô‚ ôÈö ô¹RôŽôåè±memmemÁûûûûûû�˜ ‚þû„‚ „Ȇ „¹R„Ž„åè±teddyÁ‹‹‹‹‹‹‘˜ ’þ’ ‹•‚ •È— •¹R™™ •Žœ•åè±±±±±±±±±± ± ± ± ± ±±±±±±±±±µ˜ ¶þ¶ ¸ µ from_choiceÁµfrom_hir_prefixÁµfrom_hirs_prefixÁ¼„¼ µÈµ¹RµŽµmax_needle_lenÁµåè± PrefilterIÁÄ‚ ÄÈĹRÄŽÄåè±ÊŒÊ‚ ÊÈʹRÊŽÊåè±Ñ˜ ÒþÒ ±prefixesÁÕ„±suffixesÁׄ• primitivesÁÙÙÙÙÙÙÙÙᘠáêzÙäñÙæ€Dæõ&æZEROÁæSIZEÁæ˜ æ¢ æmustÁ挴æas_u64Áæas_u32Áæas_i32Áæone_moreÁæ from_ne_bytesÁó æfrom_ne_bytes_uncheckedÁõ æ to_ne_bytesÁ÷ Ùù�ù´ù÷Ùý�ýøÙ€�€´€÷Ù„�„øÙ‡”Ù‰ErrorÁ‰øÙ ŒßôŒøÙ �ßô�øÙ ’ßô’øÙ •õEÙ Ù˜ñÙšŸš¥ Ùindex_type_implsÁÙIteratorIndexExtÁžwith_pattern_idsÁžwith_state_idsÁÙ¡…•‚££££££££££­˜ ­from_input_forwardÁ¯ ­from_input_reverseÁ­ look_behindÁ­anchoredÁ­get_look_behindÁ­ get_anchoredÁ£¶˜ · ¶êz¶ƒµº ¶•µ¶¥µ£¾ñ¿£Á�Á¶Áñ³ÁŒ´•íÆÆÆÆÆÆÆÆÆÆ ÆparseÁÆ parse_manyÁÒŒÆ parse_withÁÆparse_many_withÁÕŒÆ×˜ ×case_insensitiveÁ× multi_lineÁ×dot_matches_new_lineÁ×crlfÁ×»e× swap_greedÁ×ignore_whitespaceÁ×unicodeÁׂ�× nest_limitÁ×octalÁ× get_unicodeÁ×get_case_insensitiveÁ×get_multi_lineÁ×get_dot_matches_new_lineÁ×get_crlfÁ×€h×get_swap_greedÁ×get_ignore_whitespaceÁך�×get_nest_limitÁ× get_octalÁ×®'× apply_astÁ× apply_hirÁÆò>•wireÁôôôôôôôôôô ô ô ô ô‚buffer_too_smallÁô„ñôô‡genericÁ‡Ôþ‡ invalid_usizeÁ‡version_mismatchÁ‡endian_mismatchÁ‡alignment_mismatchÁ‡label_mismatchÁ‡arithmetic_overflowÁ‡pattern_id_errorÁ‡state_id_errorÁôô“ñ”ôu32s_to_state_idsÁôu32s_to_state_ids_mutÁôu32s_to_pattern_idsÁôcheck_alignmentÁ™�ôskip_initial_paddingÁôalloc_aligned_bufferÁœ�ô read_labelÁž ô write_labelÁôwrite_label_lenÁôread_endianness_checkÁôwrite_endianness_checkÁ£�ôwrite_endianness_check_lenÁô read_versionÁô write_versionÁ§�ôwrite_version_lenÁôread_pattern_idÁª ª ôread_pattern_id_uncheckedÁôwrite_pattern_idÁ®�ôtry_read_state_idÁô read_state_idÁ± ± ôread_state_id_uncheckedÁôwrite_state_idÁµ�ôtry_read_u16_as_usizeÁ· ¸ ¸ ôtry_read_u32_as_usizeÁ» ¼ ¼ ô try_read_u16Áô try_read_u32Áô try_read_u128Áôread_u16Á ôread_u32ÁÄ ô read_u128ÁÆ ôcheck_slice_lenÁÈ�ôó ôœô„Ì ô padding_lenÁôEndianÁÏ write_u16ÁÏ write_u32ÁÏ write_u128ÁôLEÁôBEÁô¾ôÖ˜ˆÖ©ˆÖºˆôÚ˜ˆÚ©ˆÚºˆ•† ÞÞÞÞÞÞÞÞÞÞ Þ Þ Þ Þ ÞÞÞÞÞÞÞƒóóóóóóóóóó ó ó ó ó óóƒborrowÁó…ñó‡deadÁ‡©‡ is_from_wordÁ‡ is_half_crlfÁ‡ look_haveÁ‡ look_needÁ‡Ö1‡ç1‡match_pattern_idsÁ‡iter_nfa_state_idsÁ‘‚‡Ž‡½ ó•˜ • into_matchesÁ•׊•capacityÁóšñóœå¢œset_is_from_wordÁœset_is_half_crlfÁœÈ‹œ set_look_haveÁ¡impl FnMut(LookSet) -> LookSetÁœadd_match_pattern_idÁœ½ œrepr_vecÁó¦ñó¨to_stateÁ¨׊¨Ù‹¨Ó�¬è�¨ set_look_needÁ®è�¨add_nfa_state_idÁ¨as_bytesÁ¨½ ¨²ŽóReprÁ´ ´Ä´óó¸Ä¸©¸has_pattern_idsÁ¸ ‹¸´‹¸È‹¸Ù‹¸Ö1¸ç1¸ú‹Â ¸iter_match_pattern_idsÁÄ‚¸“ŒÆ‚¸pattern_offset_endÁ¸encoded_pattern_lenÁó ÊÄÊñÌ óReprVecÁÎ ÎÄÎóó ÒÄÒ set_is_matchÁÒset_has_pattern_idsÁÒš�Ò²�ÒÈ‹ÒÙ‹ÒÓ�Úè�Òˆ�Üè�ÒŽŽÒclose_match_pattern_idsÁÒ¦�Ò½ ó write_vari32Áó read_vari32Áó write_varu32Áó read_varu32Áó©ˆæÞ¥ è è è è Þæ«Þadd_nfa_statesÁî î Þset_lookbehind_from_startÁñ ñ ñ ñ ñ ñ ñ ñ ñ ñ ñ ñ ñ •Ø$ÿÿÿÿskip_splits_fwdÁƒ�ƒ‚ÿskip_splits_revÁ†�†‚ÿ skip_splitsÁ‰�‰‚•intÁŒU8Á�Œ´Œ�Œ´ŒU16Á‘Œ´‘low_u8Á‘high_u8ÁŒ•Œ´• —•®—ŒU32Á™Œ´™ —™low_u16Á™high_u16ÁŒžŒ´ž —žú—ž‰˜ŒU64Á£Œ´£ —£ú—£low_u32Á£high_u32ÁŒ©Œ´© —©ú—©è˜©÷˜ŒI32Á¯Œ´¯to_bitsÁ¯ from_bitsÁŒ³Œ´³Í™³Ü™ŒUsizeÁ·ñ³·as_u16Á·çò·ÙòŒ¼ñ³¼£š¼çò¼ÙòŒºÁŒ´ŒÃ�ÃŒ´•ìÆÆðÈìÈmemchr2ÁÈmemchr3ÁÈmemrchrÁÈmemrchr2ÁÈmemrchr3Á•å ÏÏÏÏÏÏÏÏ׸ט Ù„×spanÁÛ�×rangeÁÝŽ×ã÷×earliestÁ×set_spanÁá�ׂ¸ãŽã× set_startÁ×set_endÁ× set_anchoredÁ× set_earliestÁ×haystackÁׂג×get_spanÁ× get_rangeÁ׊ø× get_earliestÁ×is_doneÁ×is_char_boundaryÁÏó¸óñõÏ÷¸÷„÷”ÏûÙœûå$û¶û̸ûÑ Ï�ñσ´ƒ÷φøÏˆ´ˆ÷Ï‹”Ï �”Ï �•Ï ‘•Ï “˜ “Äò“îN“Ñ Ï ˜˜ ™�˜Äò›�˜îN˜‚˜’˜Ùœ˜Åœ˜å$˜¶Ï¤˜ ¤׊¤̸¤‚'¤ try_insertÁ¤å$¤is_fullÁ¤¶¤ïŒ¤�ÏϰñϲIJŸ²¥ ²›cÏ·Ä· next_backÁϺ•HºîNϽcontinue_past_first_matchÁÏ¿˜ ¿¦¿¼:¿ñM¿haystack_too_longÁ¿ˆBÏÏÇñ• sparse_setÁÉÉÉÉÉΘ ÎresizeÁÎ׊Α*ÎŽÉÔ˜ Ôê¤ÔïŒÔ¶Ôå$Ô‚'Ô̸Ô׊Ô�ÔŽÉßñÉáÄáŸá¥ • unicode_dataÁ•‚�æ¾´ç mkwordsetÁè è çWORDÁë ædecodeÁæ decode_lastÁæ¶æ is_boundaryÁæis_leading_or_invalid_byteÁ ConfigÁò�ò¡ò¿òÒ ÷Ž ùñ û> BuilderÁýÉý± €Ž ‚ñ InternalBuilderÁ„Ą҄uncompiled_nfa_idsÁ„ nfa_to_dfa_idÁ„stackÁ„seenÁ„matchedÁ„É„ß'„classesÁ �Ä�ñ DFAÁ’É’ß'’tableÁ’startsÁ’ min_match_idÁ’ש’à’ó’ pateps_offsetÁ’explicit_slot_startÁ �Ž SparseTransitionIterÁŸÄŸÛËŸcurÁ £Ä£ñ CacheÁ¦É!¦ÔÁ ©Ž «ñ  TransitionÁ­ ­ó   !±Ž " #´Ý $ %·• PatternEpsilonsÁ¹ ¹ó & '½Ž ( EpsilonsÁÀ Àó ) *ÄŽ + SlotsÁÇ Çó , -ËŽ .  SlotsIterÁΩ& /Ðñ  BuildErrorÁÒ¦ 0ÔŽ 1Öñ BuildErrorKindÁØNFAÁÙ ÙóØWordÁÜ ÜóØ TooManyStatesÁßlimitÁØTooManyPatternsÁ᪯ØUnsupportedLookÁã¢ÔØExceededSizeLimitÁåª¯Ø NotOnePassÁçmsgÁ 2éŽ 3ëñÔRemapperÁíƒ íidxmapÁÔðñÔ IndexMapperÁòóÔôñûù©öÉöß'öóö start_mapÁöשöquitsetÁöç:û þŽû €ñûâ«‚transÁ‚¡ª‚œ¡‚ states_to_idÁ‚sparsesÁ‚Ÿ©‚scratch_state_builderÁ‚ state_saverÁ‚memory_usage_stateÁ‚ì2‚bytes_searchedÁ‚progressÁû �Žû‘ñûSearchProgressÁ“‚“atÁû–Žû˜ñû�ÑšÂ3šÌ3šÒšóAûŸÂ3ŸÌ3ŸñûLazyRefÁ£Â3£Ì3£Ò£óAû¨Â3¨Ì3¨ñû StateSaverÁ¬­­ ¬ToSaveÁ¯ˆC¯ƒ¬SavedÁ² ²óûµŽû·ñûç¹�¹preÁ¹¡¹¿¹Ÿ:¹ä±¹È:¹ç:¹ý:¹ž;¹¿;ûÅŽûÇñûÉ>û“¨ËÉ˱ûÎŽûÐñû� ÒmatÁÒˆCÒ™´Ònext_match_indexÁÒrev_eoiÁûØŽûÚñûÜÝûûß•Ã�®á¦Ã ãŽÃ åñÃήçä®è èóçInsufficientCacheCapacityÁëminimumÁëgivenÁçInsufficientStateIDCapacityÁîerrÁç UnsupportedÁð ðóà óŽÃ õñÃ¥ ÷â«ø¬º÷QuitÁúbyteÁ÷UnsupportedAnchoredÁümodeÁà þŽÃ€ñà CacheErrorÁ‚ ‚óÃ…ŽÃ‡ñß LazyStateIDÁ‰ ‰óßß�Žßß�ñß’>ß ”Ýß –Æ—ÿß ß š•ß œ¤ ßž–ßLazyStateIDErrorÁ õEߢŽß¤ñߦÝßß©•üRegexÁ«­H«¼Hü®ñü FindMatchesÁ°æG°Ì3°¸°reÁ°óA°ÛËü ·æG·Ì3·¸·ñü⫼­H¼¼Hü ¿ñü ÁŽü“¨ÃÒü ÅŽü Çñö�®É¦öËŽöÍñöήÏSyntaxÁо¾Ð¬ºÏä®Ó ÓóöÖŽöØñö RetryErrorÁÚ QuadraticÁÛ ÛóÚFailÁÞ ÞóöáñöRetryQuadraticErrorÁã ãóöæñöRetryFailErrorÁèÑ öêñÛ”¾ìimpÁìÊÞÛïñÛRegexIÁñstratÁñinfoÁÛôñÛ RegexInfoÁö öóÛùŽÛûñÛ RegexInfoIÁýÉýµ^ýÂ^Û�ŽÛƒñÛ¾¾…æG…¸…é¾…óA…ÛËÛ‹æG‹¸‹ñÛCapturesMatchesÁ�æG�¸�é¾�óA�ɾ�ÛËÛ–æG–¸–ñÛSplitÁšæGš¸šåËš¯ÛŸæGŸ¸ŸñÛSplitNÁ£æG£¸£splitsÁ£ª¯Û¨æG¨¸¨ñÛ⫬ capmatchesÁ¬ˆ¦¬ÿe¬ë¬ª+¬ revhybridÁÛ ³ñÛ!µŽÛç·�·óc·autopreÁ·Ѷ·£d·¹d·Ïd·éd·ª+·Ò·†e·œe·ë·ÿe·¿·»e·ÒeÛ"ÉŽÛ#ËñÛ$Í>Û“¨ÏÉÏ™OϤOÛ%ÓŽÛ&ÕñÓInnerPrefilterÁ×¹R×Ѷ×literalsÁÓÛñ‚PreÁÝŒÝѶÝÖ]‚ áŒáŽ‚ äŒäñ‚CoreÁç†ÃçѶçß'çnfarevÁ爦çÿeçëçª+çÒ‚ ññ‚ReverseAnchoredÁóû‚õñ‚ ReverseSuffixÁ÷û÷Ѷ‚úñ‚ ReverseInnerÁüûüpreinnerÁüˆËüª+üÒ‚‚ ñ£ PikeVMÁ„ „ ó£ ‡ ñ£  PikeVMEngineÁ‰ ‰ ó£ Œ ñ£  PikeVMCacheÁŽ Ž ó£ ‘ Ž£ “ ñ£ BoundedBacktrackerÁ• • ó£ ˜ ñ£ BoundedBacktrackerEngineÁš š ó£ � ñ£ BoundedBacktrackerCacheÁŸ Ÿ ó£ ¢ Ž£ ¤ ñ£ OnePassÁ¦ ¦ ó£ © ñ£  OnePassEngineÁ« « ó£ ® ñ£  OnePassCacheÁ° ° ó£ ³ Ž£ µ ñ£ HybridÁ· · ó£ º ñ£  HybridEngineÁ¼ ¼ ó£  ¿ ñ£  HybridCacheÁÁ Á ó£ !Ä Ž£ "Æ ñ£ ù©È È ó£ #Ë ñ£  DFAEngineÁÍ Í ó£ $Ð ñ£  ReverseHybridÁÒ Ò ó£ %Õ ñ£ ReverseHybridEngineÁ× × ó£ &Ú ñ£ ReverseHybridCacheÁÜ Ü ó£ 'ß Ž£ (á ñ£  ReverseDFAÁã ã ó£ )æ ñ£ ReverseDFAEngineÁè è ó£ *ë ñ² çí Ѷí ˆƒ²  𠎲  ò ñ²  ô >² “¨ö Éö ±²  ù ޲  û ñ² �Îý Éý ß'² €!޲ ‚!ñ² TryFindMatchesÁ„!æG„!Ì3„!¸„!龄!óA„!ɾ„!Û˲ Œ!æGŒ!Ì3Œ!¸Œ!ñ² TryCapturesMatchesÁ‘!æG‘!Ì3‘!¸‘!龑!óA‘!ɾ‘!Û˲ ™!æG™!Ì3™!¸™!ñ² ⫞!Ÿ©ž!visitedÁ² ¡!޲ £!ñ² FrameÁ¥!StepÁ¦!sidÁ¦!™´¥!RestoreCaptureÁ©!ùÀ©!Ñ ² ¬!޲ ®!ñ² VisitedÁ°!bitsetÁ°!�² ³!޲ µ!ñ¯ StateÁ·!EmptyÁ¸!¥ ·! ByteRangeÁº!ž²·!SparseÁ¼! transitionsÁ·!LookÁ¾!¢Ô¾!¥ ·! CaptureStartÁÁ!õ$Á! group_indexÁÁ!¥ ·! CaptureEndÁÅ!õ$Å!ÊÚÅ!¥ ·!ùÉ! alternatesÁ·! UnionReverseÁË!˜Û·!»ÁÍ! ·!MatchÁÏ!õ$¯ Ñ!ޝ Ó!ñ¯ Õ!ݯ ¯ Ø!•¯ “¨Ú!õ$Ú!œ¡Ú!òÚ!áÚ! memory_statesÁÚ!‚�Ú!¼HÚ!¼�Ú!Ò¯ ä!ޝ æ!ñ¯  è!>é çê!‚�ê!¼Hê!¹dê!ž�ê!£dê!¼�é ñ!Žé  ó!ñé  õ!>é  WhichCapturesÁ÷!AllÁø! ÷!ImplicitÁú! ÷!­ü! é  é  ÿ!Žé  é ‚"ñé CompilerÁ„"parserÁ„"É„"Ö„" utf8_stateÁ„" trie_stateÁ„" utf8_suffixÁé ‹"Žé �"ñé  ThompsonRefÁ�"‚�"’é é “"Žé é –"ñé  Utf8CompilerÁ˜"Ę"Ö˜"ƒ˜"´é �"Ä�"ñé  Utf8StateÁ "compiledÁ " uncompiledÁé £"Žé ¥"ñé Utf8NodeÁ§"ž²§"¯é ª"Žé ¬"ñé Utf8LastTransitionÁ®"‚®"’é ±"Žé ³"ñó �®µ"¦ó ·"Žó ¹"ñó ή»"»À¼" ¼"ó»"CapturesÁ¿" ¿"ó»"ü®Â" Â"ó»"·¯Å"ü¹Å"ª¯»"•¯È"ü¹È"ª¯»"÷¯Ë"ª¯»"InvalidCaptureIndexÁÍ"÷»"UnsupportedCapturesÁÏ" ó Ñ"Žó Ó"ñ‰  LiteralTrieÁÕ"œ¡Õ"¦Þ‰ Ø"މ ‡ØÚ"ÄÚ"ò›Ú"þÙÚ"CÚ"° ‰ à"Äà"ñ‰ ´Ùã"þÙã"ò›‰  æ"މ  è">‰ StateChunksIterÁê"Äê"þÙê"ò›ê"activeÁ‰  ï"Äï"ñ‰ —¬ò"—»ò"¥ ‰  ‰  ö"މ ³ Utf8BoundedMapÁù"™ù"ïŒù"ƒ ³ ý"޳ ÿ"ñ³ Utf8BoundedEntryÁ�#™�#keyÁ�#޳ …#޳ ‡#ñ³ ‰#>³  Utf8SuffixMapÁ‹#™‹##ƒ ³ �#޳ ‘#ñ³  Utf8SuffixKeyÁ“#”“#‚“#’³  —#޳  ™#ñ³  ›#>³  �#ݳ  ³  #•³ Utf8SuffixEntryÁ¢#™¢#�è¢#޳ ¦#޳ ¨#ñ³ ª#>Π䮬# ¬#óÎ  ¯#ŽÎ InnerÁ±#œ¡±#À ±#Ö ±#ò±#Ö]±#ö ±#¿±#²¡±#Å¡±#‚�±#¼H±#¼�±#—¢±#«¢±# memory_extraÁÎ  Á#>Î ´ÙÃ#ÖÙÄ#ž²Ã#ðÙÆ# Æ#óÃ#DenseÁÉ# É#óÃ#‘ÚÌ#¢ÔÌ#¥ Ã#ùÏ#˜ÛÃ# BinaryUnionÁÑ#alt1ÁÑ#alt2ÁÃ#`Ô#¥ Ô#õ$Ô#ÊÚÔ#ùÀÃ#»ÁÙ# Ã#ÕÛÛ#õ$Î  Ý#ŽÎ ß#ÝÎ Î â#•Î SparseTransitionsÁä#þÙÎ æ#ŽÎ è#ñÎ ê#ÝÎ Î í#•Î DenseTransitionsÁï#þÙÎ ñ#ŽÎ ó#ñÎ õ#ÝÎ Î ø#•Î —¬ú#‚ú#’ú#¥ Î Î ÿ#ŽÎ Î ‚$ÝÎ „$Æ…$ÿÎ  Î !ˆ$•Î  PatternIterÁŠ$ÄŠ$ÛËŠ$_markerÁÎ "Ž$ÄŽ$ñÅç‘$�‘$ѶÅ ”$ŽÅ –$ñÅ ˜$>Å“¨š$Éš$±Å�$ŽÅŸ$ñÅýÌ¡$É¡$ß'Ť$ŽÅ¦$ñž¾¨$æG¨$Ì3¨$¸¨$龨$óA¨$ɾ¨$ÛËŰ$æG°$Ì3°$¸°$ñÅëĵ$æGµ$Ì3µ$¸µ$é¾µ$óAµ$ɾµ$ÛËŽ$æG½$Ì3½$¸½$ñÅâ«Â$Ÿ©Â$currÁÂ$¥ ÅÆ$ŽÅÈ$ñÅ ActiveStatesÁÊ$ã�Ê$ slot_tableÁÅÍ$ŽÅÏ$ñÅ SlotTableÁÑ$”ªÑ$slots_per_stateÁÑ$slots_for_capturesÁÅÕ$ŽÅ×$ñÅ FollowEpsilonÁÙ$ExploreÁÚ$ Ú$óÙ$´ØÝ$ùÀÝ$Ñ Åà$ŽÅâ$ñÊ RangeTrieÁä$œ¡ä$freeÁä$ iter_stackÁä$ÿ¸ä$ dupe_stackÁä$ insert_stackÁÊë$ŽÊ´Ùí$þÙÊï$ŽÊ—¬ñ$Ùœñ$next_idÁÊ ô$ŽÊNextDupeÁö$old_idÁö$new_idÁÊ ù$ŽÊ û$ñÊNextIterÁý$Š#ý$tidxÁÊ €%ŽÊ ‚%ñÊ NextInsertÁ„%Š#„%³±†% „%¶Ê‰%ŽÊ‹%ñÊÒÅ�% partitionsÁŽ% �%¶Ê‘%ŽÊ“%ñÊ•%Ý–% ÊÊ™%•Ê SplitRangeÁ›%OldÁœ% œ%ó›%NewÁŸ% Ÿ%ó›%BothÁ¢% ¢%óÊʦ%ŽÊÊ©%ñÊ«%ÝÊÊ®%•–UnitÁ°% °%ó––´%Ž––·%Ý––º%•–¼%¤ –¾%––UnitKindÁÀ%ë–Á% Á%óÀ%EOIÁÄ% Ä%ó––È%Ž––Ë%Ý––Î%•–Ð%¤ –Ò%–– ByteClassesÁÔ% Ô%óÖ% –– Ù%ŽÚ% –!– ByteClassIterÁÝ%ÄÝ%שÝ%Ÿ–"á%Äá%ñ–ByteClassRepresentativesÁä%Ää%שä%cur_byteÁä%end_byteÁä% last_classÁ–#ê%Äê%ñ–ByteClassElementsÁí%Äí%שí%classÁí%—»–$ò%Äò%ñ–ByteClassElementRangesÁõ%Äõ%¶¶õ%Ùœ–%ù%Äù%ñ– ByteClassSetÁü% ü%ó–&ÿ%Ž–'�&ñ–ByteSetÁƒ&¼–(–)†&Ž–*–+‰&ñ–,‹&>–-�&Ý–.–/�&•–BitSetÁ’& ’&ó”& –0–1—&Ž˜& –2–3›&>–4�&Ýž& –5–6¡&•– ByteSetIterÁ£&Ä£&ã�£&˜–7§&ħ&ñ–ByteSetRangeIterÁª&Ī&ã�ª&˜–8®&Ä®&ñôœã±&Ö]±&¾¾±&©&ôµ&ŽôCapturesPatternIterÁ·&Ä·&ɾ·&ƒ ô»&Ä»&Žô¾&ľ&ñô GroupInfoÁÁ& Á&óôÄ&ŽôÆ&ñôÈ&>ôGroupInfoInnerÁÊ& slot_rangesÁÊ& name_to_indexÁÊ& index_to_nameÁÊ&‚ìôÏ&ñôÑ&>ôGroupInfoErrorÁÓ&¦ôÕ&Žô×&ñôGroupInfoErrorKindÁÙ&·¯Ú&¬ºÙ& TooManyGroupsÁÜ&îNÜ&í¹Ù& MissingGroupsÁß&îNÙ&FirstMustBeUnnamedÁá&îNÙ& DuplicateÁã&îNã&‚ ôæ&Žôè&ñôGroupInfoPatternNamesÁê&Äê&ÛËôí&Äí&Žôð&Äð&ñôGroupInfoAllNamesÁó&Äó&Ö]ó&pidsÁó& current_pidÁó&ƒ ôù&Äù&ñˆ DebugByteÁü& ü&󈈀'Žˆ” CaptureRefÁƒ'ă'capÁƒ'’”‡'Ä”‰'ĉ'Ž”Œ'Ä”Ž'ÄŽ'ñ”‘'Ä‘'Ý””'Ä”–'Ä–'•”RefÁ™'Ä™'ª›' ›'ó™'NumberÁž' ž'ó” ¡'Ä” £'Ä£'Ž” ¦'Ä” ¨'Ĩ'ñ” «'Ä«'Ý”®'Ä”°'İ'•«SearcherÁ³'¸³'–`³'last_match_endÁ«·'¸·'Ž«º'¸º'ñ«HalfMatchesIterÁ½' ½'¸½'‚½'ó«Â'¸Â'‚Â'ñ« MatchesIterÁÆ' Æ'¸Æ'‚Æ'ó«Ë'¸Ë'‚Ë'ñ« CapturesIterÁÏ' Ï'¸Ï'‚Ï'ó«Ô'¸Ô'‚Ô'ñØ‘ÚØ'StartÁÙ' Ù' Ø'EndÁÜ' Ü' Ø'StartLFÁß' ß' Ø'EndLFÁâ' â' Ø' StartCRLFÁå' å' Ø'EndCRLFÁè' è' Ø' WordAsciiÁë' ë' Ø'WordAsciiNegateÁî' î' Ø' WordUnicodeÁñ' ñ' Ø'WordUnicodeNegateÁô' ô' Ø'WordStartAsciiÁ÷' ÷' Ø' WordEndAsciiÁú' ú' Ø'WordStartUnicodeÁý' ý' Ø'WordEndUnicodeÁ€( €( Ø'WordStartHalfAsciiÁƒ( ƒ( Ø'WordEndHalfAsciiÁ†( †( Ø'WordStartHalfUnicodeÁ‰( ‰( Ø'WordEndHalfUnicodeÁŒ( Œ( Ø Ø �(ŽØ Ø “(ñØ •(ÝØØ˜(•ØLookSetÁš(¼ØØ�(ŽØØ (>Ø¢(ÝØØ¥(•Ø LookSetIterÁ§(ã�Ø©(ŽØ«(ñØ LookMatcherÁ­(linetermÁد(ŽØ±(ñØUnicodeWordBoundaryErrorÁ³( ³(óض(ŽØ¸(ñß THREAD_IDÁº(__rust_std_internal_init_fnÁº( ¼( ½(__RUST_STD_INTERNAL_VALÁ¼( ¿(Ηß CacheLineÁÁ( Á(�Á(óß Å(�Å(ñ² AhoCorasickÁÈ(acÁ²Ê(޲Ì(ñÃÎ�Î( Î(óÐ( ÃÒ(ŽÃÔ(ñÕMemchrÁÖ( Ö(óÕÙ(ŽÕÛ(ñÕMemchr2ÁÝ( Ý(óÝ(ôÕá(ŽÕ ã(ñÕMemchr3Áå( å(óå(ôå(õÕ ê(ŽÕ ì(ñûMemmemÁî(åËûð(Žûò(ñ‹TeddyÁô(searcherÁô( anchored_acÁô( minimum_lenÁ‹ø(Ž‹ú(ñ± PrefilterÁü(Ѷü(åèü(Öï±€)ޱ‚)ñ±ChoiceÁ„)¢™…) …)ó„)×™ˆ) ˆ)ó„)•š‹) ‹)ó„)ÛšŽ) Ž)ó„)Œ›‘) ‘)ó„)Î�”) ”)ó„)¶˜—) —)ó±š)ޱœ)ñÙ NonMaxUsizeÁž) ž)óÙÙ¢)ŽÙÙ¥)ÝÙ§)ƨ)ÿÙÙ«)•Ù­)¤ Ù¯)–Ù SmallIndexÁ±) ±)óÙÙµ)ŽÙÙ¸)ñÙº)>Ù¼)ÝÙ ¾)Æ¿)ÿÙ!Ù"Â)•Ù#Ä)¤ Ù$Æ)–ÙSmallIndexErrorÁÈ)õEÙ%Ê)ŽÙ&Ì)ñÙ'Î)ÝÙ(Ù)Ñ)•ÙSmallIndexIterÁÓ)rngÁÙ*Õ)ŽÙ+×)ñÙ PatternIDÁÙ) Ù)óÙ,Ù-Ý)ŽÙ.Ù/à)>Ù0â)ÝÙ1ä)Æå)ÿÙ2Ù3è)•Ù4ê)¤ Ù5ì)–ÙStateIDÁî) î)óÙ6Ù7ò)ŽÙ8Ù9õ)>Ù:÷)ÝÙ;ù)Æú)ÿÙ<Ù=ý)•Ù>ÿ)¤ Ù?�*–Ù@ƒ*€Dƒ*õ&ƒ*œòƒ*¨òƒ*˜ ƒ*¢ ƒ*Äòƒ*Œ´ƒ*Ùòƒ*çòƒ*õòƒ*ƒóƒ*“ó�* ƒ*­ó’* ƒ*Ñó”* ƒ*�ÙA—*ñÙB™*�™*´™*÷ÙC�*��*øÙD *� *´ *÷ÙE¤*�¤*øÙF§*”ÙG©*ßô©*øÙH¬*ßô¬*øÙI¯*ßô¯*øÙJ²*ßô²*øÙKµ*õEÙLÙM¸*ñÙNº*˜ ÙO¼*Ÿ¼*¥ ÙP¿*…¿*˜ ÙQÂ*…Â*ŸÂ*¥ ÙPatternIDErrorÁÆ* Æ*óÙRÉ*ŽÙSË*ñÙTÍ*ÝÙUÙVÐ*•Ù PatternIDIterÁÒ* Ò*óÙWÕ*ŽÙX×*ñÙWithPatternIDIterÁÙ*…Ù*ÛËÙ*idsÁÙYÝ*…Ý*ŽÙZà*…à*ñÙ[ã*€Dã*õ&ã*œòã*¨òã*˜ ã*¢ ã*Äòã*Œ´ã*Ùòã*çòã*õòã*ƒóã*“óð* ã*­óò* ã*Ñóô* ã*�Ù\÷*ñÙ]ù*�ù*´ù*÷Ù^ý*�ý*øÙ_€+�€+´€+÷Ù`„+�„+øÙa‡+”Ùb‰+ßô‰+øÙcŒ+ßôŒ+øÙd�+ßô�+øÙe’+ßô’+øÙf•+õEÙgÙh˜+ñÙiš+˜ Ùjœ+Ÿœ+¥ ÙkŸ+…Ÿ+˜ Ùl¢+…¢+Ÿ¢+¥ Ù StateIDErrorÁ¦+ ¦+óÙm©+ŽÙn«+ñÙo­+ÝÙpÙq°+•Ù StateIDIterÁ²+ ²+óÙrµ+ŽÙs·+ñÙWithStateIDIterÁ¹+…¹+Û˹+ì¨Ùt½+…½+ŽÙuÀ+…À+ñ£çÃ+Ð÷Ã+ã÷£Æ+Ž£È+ñ£ StartByteMapÁÊ+ƒ Ë+ £Í+Ž£ž�Ï+ NonWordByteÁÐ+ Ð+ Ï+WordByteÁÓ+ Ó+ Ï+TextÁÖ+ Ö+ Ï+LineLFÁÙ+ Ù+ Ï+LineCRÁÜ+ Ü+ Ï+CustomLineTerminatorÁß+ ß+ ££ã+Ž£ £ æ+ñ£ è+Ý£ £ ë+•Æçí+°úí+Èúí+Úúí+öúí+»eí+Šûí+œûí+µûí+‚�í+Íûí+ßûÆÆú+ŽÆÆý+ñôAlignAsÁÿ+þÿ+�ÿ+_alignÁ‚, ÿ+öÆô…,þ…,�…,ñôSerializeErrorÁ‰,whatÁô ‹,ñôDeserializeErrorÁ�, �,óô �,ñôDeserializeErrorKindÁ’,GenericÁ“,«°’,BufferTooSmallÁ•,dz’, InvalidUsizeÁ—,dz’,VersionMismatchÁ™,§™,foundÁ’,EndianMismatchÁœ,§œ,¡µ’,AlignmentMismatchÁŸ,©Ÿ,Ÿ’, LabelMismatchÁ¢,§’,ArithmeticOverflowÁ¤,dz’,¦¡¦,¬º¦,dz’,µ¢©,¬º©,dzô ¬,ñ¡ ó´Ù¯, ¯,óó ²,Žó ´,Ýó ¶,Æ·,ÿóóº,•ó¼,¤ ó¾,–óStateBuilderEmptyÁÀ, À,óóÃ,ŽóÅ,ñóStateBuilderMatchesÁÇ, Ç,óóÊ,ŽóStateBuilderNFAÁÌ,½ Ì,prev_nfa_state_idÁóÏ,ŽÏ—Ñ,¸Ñ,ý�Ñ,ÅœÑ,ã÷Ñ,÷œÏ×,¸×,ŽÏSpanÁÚ,‚Ú,’ÏÏÞ,ŽÏÏá,ÝÏã,Æä,ÿÏÏç,•Ï HalfMatchÁé,îNé,Ñ Ï Ï!í,ŽÏ"Ï#ð,ñÏ$ò,ÝÏ%ô,Æõ,ÿÏ&Ï'ø,•ÏÕÛú,îNú,ÅœÏ(Ï)þ,ŽÏ*Ï+�-ñÏ,ƒ-ÝÏ-…-Ɔ-ÿÏ.Ï/‰-•Ï PatternSetÁ‹-¶‹-whichÁÏ0Ž-ŽÏ1�-ñÏ2’-ÝÏ3Ï4•-•ÏPatternSetInsertErrorÁ—-õE—-ïŒÏ5š-ŽÏ6œ-ñÏPatternSetIterÁž-Äž-ÛËÏ7¡-Ä¡-ŽÏ8¤-Ĥ-ñÏAnchoredÁ§-NoÁ¨- §-YesÁª- §-PatternÁ¬- ¬-óÏ9Ï:°-ŽÏ;Ï<³-ñÏ=µ-ÝÏ>Ï?¸-•Ï MatchKindÁº-¡Þ»- Ï@ÏA¾-ŽÏBÏCÁ->ÏDÃ-ñÏEÅ-ÝÏFÏGÈ-•º- LeftmostFirstÁÊ- Ï MatchErrorÁÌ- Ì-óÏHÏ-ŽÏIÑ-ñÏJÓ-ÝÏKÏLÖ-•ÏMatchErrorKindÁØ-‹»Ù-—»Ù-Ñ Ø-GaveUpÁÜ-Ñ Ø-HaystackTooLongÁÞ-¶Ø-£»à-¾»ÏMâ-ŽÏNä-ñÏOæ-ÝÏPÏQé-•É SparseSetsÁë-set1Áë-set2ÁÉî-ŽÉð-ñÉ SparseSetÁò-¶ò-à ò-° Éö-ŽÉ SparseSetIterÁø- ø-Äø-óÉü-Äü-ñø8ú8ú8ú8788898:8;8�8ƒ8ƒ8ƒ8>8>8?8?8A8B8C8D8‘8‘8‘8I8J8J8L8M8N8P8ž8R8S8Z8[8\8\8]8^8_8`8a8b8c8d8g8g8j8j8m8m8m8p8p8p8p8p8q8q8q8q8q8r8r8r8r8r8t8t8t8t8t8u8u8u8u8u8u8w8x8y8z8{8|8}8~88€8�8„8„8„8…8…8…8¥8¥8¥8‰8ª8¬8¬8¬8‹8Œ8Œ8�8Ž8�8²8µ8¸8¸8˜8™8š8›8�8�8�8¾8­8­8­8Å8¹8¹8¹8Ì8À8Â8Â8Â8Ñ8Ñ8Ñ8Å8Õ8×8×8×8ê8ì8ì8ì8Ï8Ò8Ò8Ò8Ø8Ù8Ú8Û8ñ8ñ8ñ8Þ8á8á8ã8õ8õ8õ8ç8è8ï8ð8ñ8ò8ÿ8�8�8�8©8ª8°8±8±8²8³8´8µ8¶8·8¸8º8º8º8º8½8½8½8½8À8À8À8À8À8Â8Â8Â8Â8Â8Ä8Ä8Ä8Ä8Ä8Æ8Æ8Ç8Ç8È8È8É8É8Ê8Ê8Ê8Ë8Ë8Ë8Ë8Í8Í8Í8Í8Ï8Ï8Ð8Ð8�8’8’8’8Ò8Ó8Ó8Ô8Õ8Ö8×8Ù8Ú8—8™8™8™8Þ8¢8¢8¢8æ8è8é8ë8í8ï8ð8ñ8ò8ô8ø8ù8ú8û8ü8ý8þ8«8«8«8ƒ8„8…8†8‡8ˆ8‰8Š8Š8‹8‹8Œ8¶8¸8¸8¸8‘8’8Æ8È8È8È8 8¡8¢8£8¤8¥8§8¨8©8ª8«8¬8¬8­8­8­8®8®8¯8Ï8Ñ8Ñ8Ñ8³8³8´8´8¶8·8¸8¹8Ù8Û8Û8Û8Ý8à8à8¼8½8½8½8½8½8½8¿8À8À8ä8æ8æ8æ8ô8ö8ö8ö8Î8Ð8Ð8Ð8ÿ8�8�8�8Ö8Ø8Ø8Ø8†8ˆ8ˆ8ˆ8Þ8Þ8Þ8Ž8‘8‘8‘8•8—8—8›8›8�8�8Ÿ8Ÿ8ê8ë8ì8í8î8ï8ð8ñ8ò8ó8ô8õ8ö8£8¥8¥8¥8§8ª8ª8ø8û8û8û8¯8¯8¯8�8Ž8‘8’8’8”8”8—8—8 8 8 8 8¡8¡8¡8£8¤8¥8»8»8»8«8À8À8À8Â8®8¯8¯8°8±8²8³8´8µ8¶8Æ8È8È8È8¹8¹8º8º8¼8½8¾8¿8Ñ8Ñ8Ñ8Ñ8Ò8Ò8Ò8Ò8Ò8Ö8Ö8Ö8Ö8×8×8×8×8Û8Û8Û8Û8Û8Ü8Ü8Ü8Ü8Ü8Ü8Þ8Þ8Þ8Þ8Þ8à8à8à8à8á8á8á8á8â8â8â8â8â8â8å8å8å8å8å8å8è8è8è8è8Ì8Î8Î8Î8×8Ù8Ù8Ù8ÿ8€8�8†8ˆ8ˆ8ˆ8â8â8â8‹8‹8‹8ç8ç8ç8’8’8’8ë8ë8ë8™8™8™8§8§8§8§8ª8ª8ª8ª8ª8ª8µ8µ8µ8¿8¿8Á8Ä8Ä8Ç8Ç8É8Ê8Ë8Ë8Í8Î8Î8Ï8Ï8Ñ8Ñ8Õ8×8Ù8ð8ð8ð8õ8õ8õ8Ž8�8”8—8š8š8®8®8®8¯8¯8¯8°8°8°8°8±8±8±8±8²8²8²8²8´8´8´8´8µ8µ8µ8µ8¶8¶8¶8¶8¶8·8·8·8·8·8¸8¸8¸8¸8¸8º8»8¼8½8¾8À8Á8Â8Ã8Å8ú8ü8ü8ü8‚8„8„8„8È8È8É8Ê8Ë8Ì8Í8Ï8Ï8Ï8Ð8Ò8Ô8Õ8Õ8Õ8Ž8Ž8Ž8Ù8à8™8™8™8ê8ñ8¢8¢8¢8�8«8«8«8Ž8�8´8´8´8¶8”8•8•8–8Ê8Ì8Ì8Ì8ª8«8¬8­8®8¯8°8±8²8³8´8µ8¶8½8¾8¿8À8Á8Â8Ô8Ö8Ö8Ö8Æ8Æ8Ç8Ç8Ì8Ì8Í8Í8Ñ8Ò8à8à8Ü8Ü8Ü8ã8ã8ä8å8ç8ò8ò8ò8ó8ó8ô8ô8õ8õ8ý8ý8ý8ý8ÿ8ÿ8ÿ8ÿ8ÿ8ÿ8´8µ8¶8·8·8¸8¹8º8º8º8º8»8»8»8»8¼8¼8¼8¼8½8½8½8½8½8¾8¾8¾8¾8¾8¿8¿8¿8ã8æ8æ8æ8Å8Å8Æ8Æ8Æ8Ê8Ë8Ì8Í8Í8Î8Ï8Ð8Ð8Ð8Ð8Ó8Ó8Ó8Ó8Õ8Õ8Õ8Õ8Ö8Ö8Ö8Ö8Ö8×8×8×8×8×8ò8ò8ò8Ù8Ù8Ú8Ú8Ú8Ú8Û8Û8Û8Û8Ü8Ü8Ü8Ü8Ý8Ý8Ý8Ý8Ý8Þ8Þ8Þ8Þ8ß8á8â8ã8ä8ä8å8ç8ê8ê8ê8ê8ë8ë8ë8ë8ì8ì8ì8ì8í8í8í8í8í8î8î8î8î8î8ö8ö8ö8ñ8ñ8ñ8ñ8ó8ô8õ8ö8ö8÷8ø8ù8ù8ù8ù8ú8ú8ú8ú8û8û8û8û8ü8ü8ü8ü8ü8ý8ý8ý8ý8ý8û8û8û8ÿ8ÿ8� 8� 8� 8� 8‚ 8‚ 8‚ 8‚ 8ƒ 8ƒ 8ƒ 8ƒ 8… 8† 8‡ 8ˆ 8ˆ 8‰ 8Š 8‹ 8‹ 8‹ 8‹ 8Œ 8Œ 8Œ 8Œ 8� 8� 8� 8� 8Ž 8Ž 8Ž 8Ž 8Ž 8� 8� 8� 8� 8� 8ƒ 8ƒ 8ƒ 8‘ 8‘ 8“ 8“ 8“ 8“ 8” 8” 8” 8” 8• 8• 8• 8• 8— 8˜ 8™ 8š 8š 8› 8œ 8� 8� 8� 8� 8ž 8ž 8ž 8ž 8Ÿ 8Ÿ 8Ÿ 8Ÿ 8  8  8  8  8  8¡ 8¡ 8¡ 8¡ 8¡ 8¢ 8ˆ 8ˆ 8ˆ 8¼ 8¼ 8½ 8¾ 8� 8� 8� 8À 8À 8Á 8Á 8Á 8Á 8 8 8 8 8 8à 8à 8à 8à 8à 8’ 8” 8” 8” 8Æ 8Æ 8Ç 8É 8É 8™ 8™ 8™ 8Ì 8Ì 8Í 8Î 8Î 8Î 8ž 8ž 8ž 8Ð 8Ð 8Ñ 8Ñ 8Ñ 8Ñ 8Ò 8Ò 8Ò 8Ò 8Ò 8Ó 8£ 8¥ 8¥ 8¥ 8Ö 8Ö 8× 8Ù 8Ù 8ª 8ª 8ª 8Ü 8Ü 8Ý 8Þ 8Þ 8Þ 8ß 8¯ 8¯ 8¯ 8â 8â 8ã 8ã 8ã 8ã 8ã 8ä 8å 8´ 8¶ 8¶ 8¶ 8è 8ê 8ê 8ë 8» 8» 8» 8ï 8ï 8ï 8ð 8ñ 8ñ 8ñ 8ò 8À 8À 8À 8ô 8ô 8ô 8õ 8õ 8õ 8õ 8÷ 8÷ 8÷ 8÷ 8ù 8ù 8ù 8ù 8ú 8ú 8ú 8ú 8ü 8ü 8ü 8ü 8ý 8ý 8ý 8ý 8ý 8Å 8Ç 8Ç 8Ç 8� 8ƒ 8ƒ 8„ 8Ì 8Ì 8Ì 8ˆ 8ˆ 8ˆ 8‰ 8‰ 8‰ 8Š 8‹ 8Ñ 8Ñ 8Ñ 8Ž 8Ž 8Ž 8� 8� 8� 8� 8� 8� 8‘ 8‘ 8‘ 8’ 8’ 8’ 8“ 8“ 8“ 8” 8” 8” 8” 8• 8Ö 8Ö 8Ö 8˜ 8˜ 8™ 8š 8š 8š 8Û 8Û 8Û 8œ 8œ 8� 8� 8� 8� 8à 8â 8â 8â 8  8¢ 8¢ 8£ 8ç 8ç 8ç 8§ 8§ 8¨ 8¨ 8¨ 8© 8ª 8ì 8ì 8ì 8­ 8­ 8® 8® 8® 8¯ 8Í 8Í 8Í 8ñ 8ó 8ó 8ó 8Ò 8Ó 8Õ 8ú 8ü 8ü 8ü 8Ù 8Ù 8Ú 8Ú 8Ü 8Ý 8Þ 8ß 8�!8ƒ!8ƒ!8ƒ!8á 8â 8é 8ê 8ë 8ë 8ì 8í 8î 8ï 8ñ 8ñ 8õ 8õ 8ø 8ø 8ø 8† 8† 8† 8† 8† 8‡ 8‡ 8‡ 8‡ 8‡ 8Œ 8Œ 8Œ 8Œ 8Œ 8� 8� 8� 8� 8� 8� 8� 8� 8� 8� 8‘ 8‘ 8‘ 8‘ 8‘ 8�!8�!8�!8˜ 8�!8�!8�!8Ÿ 8¢!8¤!8¤!8¤!8¢ 8£ 8£ 8¤ 8¥ 8¥ 8¥ 8¥ 8­!8¯!8¯!8¯!8´!8¶!8¶!8¶!8¨ 8© 8ª 8ª 8« 8« 8« 8« 8­ 8Ò!8Ô!8Ô!8Ô!8Ö!8Ù!8Ù!8Ç 8È 8å!8ç!8ç!8ç!8Ë 8Ì 8Í 8Ï 8Ð 8Ñ 8Ò 8Ó 8Ô 8Õ 8Ö 8× 8Ø 8Ù 8Ú 8Û 8Ü 8Þ 8ß 8à 8á 8â 8ã 8ä 8å 8æ 8ç 8è 8ò!8ô!8ô!8ô!8– 8— 8˜ 8™ 8š 8› 8œ 8� 8ž 8€"8ƒ"8ƒ"8ƒ"8£ 8¤ 8Œ"8Ž"8Ž"8Ž"8§ 8§ 8¨ 8¨ 8ª 8ª 8« 8« 8­ 8® 8° 8° 8´ 8´ 8¹ 8» 8» 8¾ 8À 8À 8À 8Á 8Á 8 8 8à 8à 8Å 8Å 8Æ 8Æ 8È 8È 8É 8É 8Ë 8Ë 8Ì 8Ì 8Í 8Í 8Ï 8Ð 8Ñ 8Ò 8Ó 8Ô 8Õ 8Ö 8× 8Ø 8Ù 8Ú 8Û 8Û 8Ü 8Ý 8Þ 8ß 8”"8—"8—"8—"8Ÿ"8Ÿ"8Ÿ"8¤"8¦"8¦"8¦"8«"8­"8­"8­"8²"8´"8´"8´"8â 8æ 8ç 8ç 8ê 8ë 8ì 8ì 8í 8î 8ï 8ð 8ò 8¸"8º"8º"8º"8Ò"8Ô"8Ô"8Ô"8û 8ü 8† 8ˆ 8ˆ 8ˆ 8Ù"8š 8š 8› 8ž 8ž 8  8  8  8â"8â"8â"8ç"8¥ 8¦ 8§ 8¨ 8© 8¬ 8¬ 8¬ 8ñ"8ñ"8ñ"8° 8÷"8² 8² 8² 8þ"8€#8€#8€#8†#8ˆ#8ˆ#8ˆ#8 8à 8à 8Ä 8Ä 8Å 8�#8’#8’#8’#8˜#8š#8š#8š#8ž#8¡#8¡#8§#8©#8©#8©#8È 8É 8É 8Ì 8Ì 8Í 8°#8ô 8õ 8û 8ü 8ý 8þ 8ÿ 8€8�8‚8ƒ8„8…8†8‡8ˆ8‰8Š8‹8Œ8�8�8�8�8“8”8•8•8–8—8˜8™8™8œ8œ8ž8ž8ž8Þ#8à#8ã#8ã#8 8¡8¢8¢8¤8¤8¤8ç#8é#8é#8é#8ë#8î#8î#8¨8¨8ª8¬8ò#8ô#8ô#8ô#8ö#8ù#8ù#8®8®8°8²8³8€$8ƒ$8…$8…$8‰$8‰$8¹8¹8»8½8¿8¿8¿8�$8�$8�$8Ä8•$8—$8—$8—$8ç8è8é8ž$8 $8 $8 $8í8í8î8î8ð8ñ8ò8ó8¥$8§$8§$8§$8õ8ö8ý8þ8ÿ8ÿ8€8�8‚8„8„8‡8‡8Š8Š8Š8˜8˜8˜8˜8˜8™8™8™8™8™8œ8œ8œ8œ8œ8Ÿ8Ÿ8Ÿ8Ÿ8Ÿ8¡8¡8¡8¡8¡8¢8¢8¢8¢8¢8£8£8£8£8£8£8£8¤8¤8¤8¤8¤8¤8¤8¥8¥8¥8¥8¥8¥8¦8¦8¦8¦8¦8¦8§8§8§8§8§8§8¨8¨8¨8´$8´$8´$8®8Á$8Á$8Á$8µ8Ç$8É$8É$8É$8¸8¹8¹8º8¼8Î$8Ð$8Ð$8Ð$8¾8¿8¿8À8Á8Ö$8Ø$8Ø$8Ø$8Ä8Ä8Æ8Ç8È8É8á$8ã$8ã$8ã$8ì$8ð$8õ$8Û8Ü8Ü8ß8ß8ß8á8â8ã8ä8å8æ8ç8é8ê8ê8î8ú$8ü$8ü$8ü$8�%8ƒ%8ƒ%8ƒ%8Š%8Œ%8Œ%8Œ%8ð8ò8ò8ò8ó8ô8’%8”%8”%8”%8–%8š%8š%8§%8ª%8ª%8ª%8¬%8¯%8¯%8þ8€8€8€8‚8‚8‚8…8…8…8µ%8¸%8»%8»%8½%8½%8¿%8¿%8É%8Ì%8Ï%8Ï%8Ñ%8Ñ%8Ó%8Ó%8¨8¨8¨8Ú%8­8®8®8¯8°8±8²8³8´8µ8¶8·8¸8»8¼8À8À8À8ã%8ã%8ã%8Ä8ì%8ì%8ì%8È8ô%8ô%8ô%8Ì8û%8û%8û%8Ð8€&8‚&8‚&8‚&8Õ8Ö8Ö8×8‡&8Š&8Š&8Š&8Ž&8‘&8‘&8˜&8ž&8¢&8¢&8Û8Ü8Ý8Þ8à8á8â8ã8å8å8è8ê8ê8ê8©&8©&8©&8î8°&8°&8°&8ò8¶&8‰8Š8‹8Œ8�8�8Ž8�8‘8’8’8’8“8“8“8“8–8–8–8—8—8—8—8š8 8§8¨8©8ª8¬8¬8¬8³8³8³8»8»8»8½&8À&8À&8À&8¿8À8Å&8Ç&8Ç&8Ç&8Î8Î8Ð8Ñ8Ó8Ô8Ö8×8Ø8Ù8Ú8Û8Ü8Ý8Ð&8Ð&8Ð&8á8â8å8è8é8ê8Ö&8Ø&8Ø&8Ø&8ç&8é&8é&8é&8ñ8ó8õ8õ8õ8ï&8ò&8ò&8ò&8ü8þ8û&8û&8û&8‡8�'8‹8‹8‹8“8“8“8™8™8™8™8�8�8�8�8‹'8�'8�'8�'8“'8˜'8˜'8¥'8ª'8ª'8ª'8­'8²'8²'8¦8§8¹'8¼'8¼'8¼'8·8·8·8¹8¹8¹8»8»8»8½8½8½8¿8¿8Á8Á8Ã8Ã8Ã8Å8Å8Å8Ç8Ç8Ç8Ô8Ô8Ø8Ü8Ü8Ü8Å'8Å'8Å'8â8â8æ8ò8ò8ö8ú8ú8ú8Î'8Î'8Î'8€8€8„8�8�8�8“8˜8˜8˜8×'8×'8×'8™8™8™8�8¬8±8µ8µ8µ8Î8Ï8Ó8Ó8Ó8×8‘(8”(8”(8”(8–(8™(8™(8ž(8£(8¦(8¦(8è8é8ê8ë8ì8ò8ô8ö8ø8ú8û8ü8ÿ8ÿ8ÿ8ª(8¬(8¬(8¬(8‚8°(8²(8²(8²(8…8†8‡8‡8ˆ8ˆ8‰8‰8Š8Š8‹8‹8�8�8Ž8Ž8�8�8�8�8‘8‘8’8’8“8“8”8”8•8•8–8–8—8—8˜8˜8™8™8š8š8›8›8œ8œ8�8�8ž8ž8·(8¹(8¹(8¹(8¥8¥8¥8©8ª8¿8Ã8Ã8Ã8Î8Ô8Ù8Þ8Þ8Þ8Ç(8Ç(8Ç(8Œ8Ž8�8‘8’8“8—8—8—8£8¤8¥8¦8«8°8°8°8Ë(8Í(8Í(8Í(8¹8¼8½8½8¿8¿8Á8Â8Ó(8Õ(8Õ(8Õ(8Ê8Î8Ï8Ï8Ò8Ò8Ó8Ô8Ú(8Ü(8Ü(8Ü(8Ü8ß8à8à8â8â8ã8ä8â(8ä(8ä(8ä(8æ8ê8ë8ë8í8í8î8ï8ë(8í(8í(8í(8ñ8õ8ö8ö8ø8ø8ù8ú8ñ(8ó(8ó(8ó(8‚8…8†8†8ˆ8ˆ8‰8Š8ù(8û(8û(8û(8’8–8—8—8™8™8œ8ž8�)8ƒ)8ƒ)8ƒ)8¶8»8¼8¿8¿8À8À8Á8Â8Ã8Å8Æ8Æ8Ç8Ç8È8É8Ì8Í8Í8Î8Î8Ï8Ð8›)8�)8�)8�)8Ò8Õ8×8£)8¦)8¨)8¨)8¬)8¬)8®)8®)8°)8°)8å8å8å8¶)8¹)8¹)8¹)8½)8¿)8¿)8Ã)8Ã)8Å)8Å)8Ç)8Ç)8î8ï8ð8ñ8ò8÷8ü8ÿ8ƒ8†8Ë)8Í)8Í)8Í)8Ï)8Ò)8Ò)8–8™8™8™8Ö)8Ø)8Ø)8Ø)8œ8Þ)8ã)8å)8å)8é)8é)8ë)8ë)8í)8í)8ó)8ø)8ú)8ú)8þ)8þ)8€*8€*8‚*8‚*8‹*8Œ*8�*8Ž*8�*8”*8˜*8˜*8˜*8œ*8Ÿ*8£*8¦*8Ê*8Ì*8Ì*8Ì*8Î*8Ñ*8Ñ*8¶*8¹*8¹*8¹*8Ö*8Ø*8Ø*8Ø*8¾*8ß*8â*8â*8â*8Å*8ë*8ì*8í*8î*8ï*8ô*8ø*8ø*8ø*8ü*8ÿ*8ƒ+8†+8ª+8¬+8¬+8¬+8®+8±+8±+8–+8™+8™+8™+8¶+8¸+8¸+8¸+8ž+8¿+8Â+8Â+8Â+8¥+8Ç+8É+8É+8É+8¯8¯8±8±8´8µ8Î+8·8¹8º8¼8¼8½8¿8¿8¿8ä+8ç+8ç+8ç+8é+8ì+8ì+8Ä8Å8Ñ8Ò8Ô8Ô8Õ8Õ8û+8þ+8þ+8þ+8ä8å8æ8ç8è8é8ê8ë8ì8í8î8ï8ï8ð8ð8ñ8ñ8ˆ,8ˆ,8ˆ,8Œ,8Œ,8Œ,8…8…8…8‘,8‘,8‘,8­,8­,8­,8”8”8”8–8—8˜8™8›8ž8 8 8¡8¢8£8¦8§8ª8­8®8°8±8´8µ8·8»8¿8À8Á8Â8Ä8Æ8È8Ð8Ñ8Ò8×8Ø8Ù8Û8Ü8Ý8³,8µ,8·,8·,8»,8»,8½,8½,8¿,8¿,8„8†8†8†8‰8Š8‹8Œ8�8Ž8�8�8‘8“8”8Ä,8Æ,8Æ,8Æ,8˜8™8Ë,8›8›8›8ž8Ÿ8 8¡8£8¤8¥8Ð,8§8§8§8©8«8¬8®8°8±8²8³8º8»8¼8½8¾8¿8À8Á8Â8Ä8Æ8È8É8Ì8Ì8Ì8Ô8Õ8Ö8×8Ø8Ù8Ú8Ü8Þ8ß8à8à8á8â8ã8ä8å8æ8è8è8è8è8í8í8í8î8î8î8ñ8ñ8ñ8ƒ8ƒ8ƒ8ƒ8†8†8†8†8‰8‰8‰8‰8É8Ê8Ë8Ì8Í8Î8Ù,8á8ã8æ8ç8è8é8ê8ë8ì8í8î8ï8ð8ñ8ò8õ8õ8õ8ß,8â,8ä,8ä,8è,8è,8ü8ý8þ8ÿ8€8‚8‚8‚8…8‡8Š8�8�8’8’8î,8ñ,8ñ,8ñ,8ó,8õ,8õ,8ù,8ù,8–8—8ÿ,8‚-8‚-8‚-8„-8†-8†-8Š-8Š-8�8ž8Ÿ8 8¡8¢8£8�-8‘-8‘-8‘-8“-8–-8–-8¦8§8¨8©8ª8«8¬8­8®8›-8�-8�-8�-8±8±8±8£-8¦-8¦-8¦-8µ8¶8¹8±-8´-8´-8´-8¶-8¹-8¹-8»8¼8¿-8Ä-8Ä-8Ä-8Æ-8É-8É-8¾8Ð-8Ò-8Ò-8Ò-8Ô-8×-8×-8Á8ã-8å-8å-8å-8ç-8ê-8ê-8È8È8È8ï-8ñ-8ñ-8ñ-8Ð8Ñ8Ò8Ó8÷-8Ö8×8Ø8Ù8Ú8Û8Ü8Ý8Þ8à8à8à8þ-8þ-8þ-8ä8í8î8ð8´ 8׳ĞÏ�‘™£¯·Á…òòçó� ô¡ õ¿ öÒ ˆ]ºuíÜŠŸŸgÑæöÑæ…ýý“¨þÉ ÿ± E§5tá{Ÿg½çŸg„„ɨ †Ò ‡ð¨ ˆŠ© ‰Ÿ© Ь© ‹¸© ŒÉ �ß' Žש &2–�zûgéÄ…’’ù© “É ”ß' •”ª –¡ª —¯ª ˜ש ™à šó ›ܪ œñª í¬‡2}¨<�Ÿg¡éŸgŸŸ—«¡ÛË ¢Ä« 6›âu5ôQJÄÄQÊê…¦¦â«§É! ¨ÔÁ Éožá|˜^Ÿg�눭­®—¬¯ó  Ôí¤÷…éëù éëÌéë�Çéë÷±éëéëŸgé눹¹ºå¬»ó  Êŵ ª4…êìù êìŸgêìˆÀÀÁœ­Âó  ––-ß[c…Äíù ÄíŸgÄíˆÇÇÈÌ­Éó  œÇ¨„Ðï�…žîù žîŸgžîŸgÎÎù­Ï©& .h£ƒ(=«ÄQøî…ÒÒ�®Ó¦ G±‰ž¾ÄΟg¸ï…ØÙÚä®Ûó ÜÝü®Þó ß•¯àª¯ ᷯ⪯ ãׯä¢Ô å÷¯æª¯ ç™°è«° ùO!;× ¤Ÿgøï�¸ï¤g¸ïŸgííΰîƒ Ôïæ°Ôí³Ñz­-…¼Ÿgòò�±óóÔÜ<•:ï•·Òסé…ööù©÷Éûøß'ûùóûúʱûûשûüä±ûýç:û:”ê¥TÁ¢Ÿgïò…‚‚â« ƒž²û„¡ªû…œ¡û†½²û‡ѲûˆŸ©û‰é²ûІ³û‹™³ûŒì2û�»³ûŽѳûä;Ì}ƒ/Ÿgûó…““û³”‚û•™´û¨ªWŠ9ƒ,lŸgËõŸgšš�Ñ�ÒûžóAû×Å­Ñ8Â3Ì3Ÿg££ƒµ¦Òû§óAûO9ѸbÜ[ Â3Ì3…¬­®­¯îµ°ˆCû±ƒû²³Œ¶´óû ç,5‡ªR§Ÿgµ÷…¹¹ç º�û»Ѷû¼¡û½¿û¾Ÿ:û¿ä±ûÀÈ:ûÁç:ûÂý:ûÞ;ûÄ¿;û�"�¥Íc§Ÿg¯øö¯ø…ËË“¨ÌÉûͱûoE’óUœ±‚Ÿgõù…ÒÒ� Ó†¸ÔˆCÕ™´Ö¢¸×º¸¸”´€ªe8ŸgÂúÌÂú�ÇÂú÷±ÂúÂú…áá�®â¦Ãû›(g¸KŸgØû…çèéä®êóÃë̹ìí¹Ãíü¹ÃךּÃðñ·ºòóÃ1¬*ØKÔ×]Ÿg™ü�Øû¤gØû…÷øâ«ù¬ºú‹»û—»ü£»ý¾»ùØÉ®åTŸgÒý�Òý¤gÒý…‚‚ƒä»„óà z£7ˆ±I6ÖŸgÕþ�Õþ¤gÕþˆ‰‰Š�¼‹óß ÞÂ�¼Îˆ…°ÿù °ÿŸg°ÿö°ÿ̰ÿûh°ÿ�ǰÿ÷±°ÿ°ÿ¯²°ÿ°ÿí°ÿ…  »½¡õEß»'•ˆ¾5Ÿgã€Ìã€�Çã€÷±ã€ã€�〤g〟g««”¾¬­Hü­¼HüŒä2‡·âþŸg°°¾¾´é¾üµóAü¶ÛËü‹½õìÆoŠæGÌ3¸ÄQ£‚Ÿg¼¼â«½­Hü¾¼HüdŠ0PÁß…�ƒ…ÃÓ¨ÄÒüÒAØZÁ¬kŸg݃ö݃…ÉÉ�®Ê¦öÚÜ�0¤Ÿg©„…ÏлÀѾ¾öÒ¬ºöÓÔä®Õóö‡ ¼_r‰ùŸgê„�©„¤g©„ŸgÚÛÜ�ÁÝóÞß»ÁàóQ©ÃiLJ�ì…¤gì…¬ì…Ì-Ì-Í-ÛÀÎ-óÏ 7bl’âËÿÀŸgããäáÁåóö r 1›@nn�•‡¤g•‡¬ì…•‡Ÿgèè–ÂéÑ ö½¶EjîN£�ô‡¤gô‡¬ì…ô‡¬ô‡Û†Ÿgì씾íÊÂÛîÊÞÛ¶W )|ÉûŸgññëÂòùÂÛó†ÃÛ˜.·M^B‡ø…Þˆ…öö÷ŸÃøóÛ  ’¤aL¤Ÿgñ‰…ýý×ÃþÉÛÿµ^Û€Â^Û7†“"ý§"Ÿg¶ŠŸg……¾¾ˆé¾Û‰óAÛŠÛËÛxâ ÜAì³�æG¸ÄQ�‹¼T�‹Ÿg��ëÄ’é¾Û“óAÛ”ɾÛ•ÛËÛõù’?ÔÙ3§æG¸ÄQ�Œ¼T�ŒŸgššÒÅ�åËÛž¯ÛÂbé1ºÄmHæG¸ÄQ€�¼T€�Ÿg££�Ʀ»ÆÛ§ª¯ÛZ>÷_ácäæG¸ÄQå�¼Tå�Ÿg¬¬â«­øÆ®ˆ¦¯ÿe°ë±ª+²«Ç¡HdÆy�ªe…ËŽ…··ç¸�Û¹ócÛºïÇÛ»ѶÛ¼£dÛ½¹dÛ¾ÏdÛ¿édÛÀª+ÛÁÒÛ†eÛÜeÛÄëÛÅÿeÛÆ¿ÛÇ»eÛÈÒeÛ<�6ɹœŒ«ŸgÅ�öÅ�…ÏÏ“¨ÐÉÛÑ™OÛÒ¤OÛïŒùÃ’ðŸgÓ‘Ÿg××ÐÉØ¹RÙѶÚ÷ÉŽNGpQ¥"…ÝÝ”ÊßѶ‚àÖ]‚ŸªjFÅN¥vŒŸgù’³ù’ŸgççâÊ è†Ã‚éѶ‚êß'‚ëˆË‚숦‚íÿe‚îë‚ïª+‚ðÒ‚ìš‘8é7'y³Ø“ŸgóóÌËôû‚ik[¤�£mZ³ý”Ÿg÷÷øËøû‚ùѶ‚5#}²ÄWÐâ³¾•Ÿgüü«Ìýû‚þÇÌ‚ÿˆË‚€ ª+‚� Ò‚Y3„”|볌–Ÿg„ „ … ý̆ ó£  b49³Û¶Ÿg‰ ‰ Š ¥Í‹ ó£  Ú܈ öÐ@…Ž Ž � ÓÍ� ó£  ²Is«?¸oŸgó—Ÿg• • – �Η ó£  ¦þ‘ˆìšíŸgš š › ÁΜ ó£  ÎÖî¡cKò…Ÿ Ÿ   ûΡ ó£  *Î×à?²­ËŸg¬™Ÿg¦ ¦ § ÁϨ ó£  ¼.j?ßÕ–Ÿg« « ¬ êÏ­ ó£  ÿáS”ý§0…° ° ± ™Ð² ó£  ÑïÍ�ˆCƒcŸg嚟g· · ¸ Ôй ó£  N;o¯�'ìŸg¼ ¼ ½ üо ó£  ª/°œÿ¥>…Á Á  ªÑà ó£  ˆòcY‰³:îŸgžœŸgÈ È É ù©Ê ó£  k¹ãr·»!ŸgÍ Í Î ‡ÒÏ ó£  š%—8¼.£:ŸgÒ Ò Ó ²ÒÔ ó£  çwèT›$žŸg× × Ø áÒÙ ó£  †–Pùd¨‡…Ü Ü Ý –ÓÞ ó£  1_�ÚúÍ'ŸgËžŸgã ã ä ×Óå ó£  ¼Ð,‘æ×ôúŸgè è é ƒÔê ó£  Fí]SN:üD…í í çî Ѷ² ï ˆƒ² ³Òªò À„Ÿg„ ö„ …ö ö “¨÷ ɲ ø ±² Ê S(¥µÚŸgÞ …ý ý �Îþ ɲ ÿ ß'² BÎôü.JEŸg«¡Ÿg„!„!ÜÕˆ!é¾² ‰!óA² Š!ɾ² ‹!Û˲ *wIå äF9æGÌ3¸ÄQø¡Ÿg‘!‘!ÒÖ•!é¾² –!óA² —!ɾ² ˜!Û˲ ��÷Î"DÖæGÌ3¸ÄQò¢…ž!ž!⫟!Ÿ©²  !Þײ cÀ>‰–Š ¥Ÿg죅¥!¦!”ا! Ø² ¨!™´² ©!´Øª!ùÀ² «!Ñ ² µ½£¹ï*¾ƒŸg»¤…°!°!õر!„Ù² ²!�² �²Ã§Ø“Ÿg°¥…·! ¸!ÁÙ¹!¥ ¯ º!ÖÙ»!ž²¯ ¼!ðÙ½!þÙ¯ ¾!‘Ú¿!¢Ô¯ À!¥ ¯ Á!®ÚÂ!õ$¯ Ã!ÊÚ¯ Ä!¥ ¯ Å!åÚÆ!õ$¯ Ç!ÊÚ¯ È!¥ ¯ É!ùÊ!˜Û¯ Ë!ªÛÌ!˜Û¯ Í!Î!»ÁÏ!ÕÛ Ð!õ$¯ l±«»§0ªèŸgþ¥Ìþ¥�Çþ¥÷±þ¥þ¥…Ú!Ú!“¨ Û!õ$¯ Ü!œ¡¯ Ý!ò¯ Þ!ᯠß!Íܯ à!‚�¯ á!¼H¯ â!¼�¯ ã!Ò¯ |í6ŸtdñªŸg�©ö�©…ê!ê!çë!‚�é ì!¼Hé í!¹dé î!ž�é ï!£dé ð!¼�é Ã?A1€‡9Ÿg±ªö±ªˆ÷!ø!ù!¡Þú!û!±Þü!ý!­�í±–’,â…¼«ù ¼«Ÿg¼«ö¼«…„"„"÷Þ…"‡ßé †"Éé ‡"Öé ˆ"¥ßé ‰"·ßé Š"Éßé Ü«ÐÝ�•Ÿg·¬ˆ�"�"öß�"‚‘"’éëCjDÓÄ…¸­ù ¸­Ÿg¸­Ÿg˜"˜"½àš"Öé ›"ƒé œ"´é a˜Eœì«QÄ… " "†á¡"—áé ¢"§áé OZØ1  žjŸgí®…§"§"Óá¨"ž²é ©"¯é ƒÈhˆÌŸg¼¯…®"®"Žâ¯"‚é °"’é ±ØU¶Ž�Ÿgа…µ"µ"�®¶"¦ó J~Qq«uÄ Ÿg×°…»"¼"½"»À¾"óó ¿"À"œãÁ"óó Â"Ã"ü®Ä"óó Å"·¯Æ"ü¹ó Ç"ª¯ó È"•¯É"ü¹ó Ê"ª¯ó Ë"÷¯Ì"ª¯ó Í"—äÎ"÷ó Ï"Ð"ºäLd ¿ce•æŸg˜±�×°¤g×°…Õ"Õ"ôäÖ"œ¡‰ ×"¦Þ‰ F lÞ%J�Ÿg¿³ŸgÚ"Ú"‡ØÜ"ò›‰ Ý"þÙ‰ Þ"C‰ ß"° ‰ e%µ'V롳Ä…ã"ã"´Ùä"þÙ‰ å"ò›‰ 2<¹Ÿ9Ȉöï´Ÿgï´Ÿgê"ê"¡æì"þÙ‰ í"ò›‰ î"Òæ‰ ŽUz¬ô•ÀÙÄÄQɵˆò"ò"—¬ó"—»‰ ô"¥ ‰ @E&°—#2§…«¶ù «¶Ÿg«¶…ù"ù"¦çú"™³ û" ü"ƒ ³ OÞwP ‹oìŸg�·…�#�#ïç‚#™³ ƒ#�è³ „#޳ æùÏQ<ÐàŸgé·öé·…‹#‹#ÈèŒ#™³ �# Ž#ƒ ³ 㾞“a~ÈÔŸgθ…“#“#�é”#”•#‚–#’kf•ô ðŸg¨¹ö¨¹Ì¨¹�Ǩ¹÷±¨¹¨¹…¢#¢#‚ê£#™³ ¤#�è³ ¥#޳ Ögé¢1Z\hŸgªºöªº…¬#¬#­#ä®®#óÎ  ²£gNpk+Ÿg�»ö±#±#ûê²#œ¡Î ³#À Î ´#Ö Î µ#òÎ ¶#Ö]Î ·#ö Î ¸#¿Î ¹#²¡Î º#šΠ»#‚�Î ¼#¼HÎ ½#¼�Î ¾#—¢Î ¿#«¢Î À#‚ìÎ Œ›Zx»·ÒãŸgÔ»…Ã# Ä#ÖÙÅ#ž²Æ#Ç#ðÙÈ#óÉ#Ê#ÓìË#óÌ#‘ÚÍ#¢ÔÎ#¥ Ï#ùÐ#˜ÛÑ#˜íÒ#«íÓ#·íÔ#`Õ#¥ Ö#õ$×#ÊÚØ#ùÀÙ#Ú#»ÁÛ#ÕÛÜ#õ$ï=Ì@`PÆöÌȽ�ÇȽ÷±ȽȽŸgȽ…ä#ä#·îå#þÙGws£{wò±Ÿg‘ÀÌ‘À�Ç‘À÷±‘À‘À…ï#ï#’ïð#þÙŠF%Ã}Ÿg÷ÀÌ÷À�Ç÷À÷±÷À÷Àˆú#ú#—¬û#‚ü#’ý#¥ Cý±$5vc§…ÝÁù ÝÁÌÝÁûhÝÁ�ÇÝÁ÷±ÝÁÝÁŸgÝÁŸgŠ$Š$ØðŒ$ÛËÎ �$üðÎ  ð 66\ÇÄÄQõÂ…‘$‘$ç’$�Å“$ѶÅ#›ý¿h} ŸgÊÃöÊÃ…š$š$“¨›$ÉÅœ$±ÅhÐcCC¹)kŸg£Ä…¡$¡$ýÌ¢$ÉÅ£$ß'Å&U‘Ì�lˆªŸgðÄŸg¨$¨$¾¾¬$é¾Å­$óAÅ®$ɾů$ÛËÅJ%½5Î…çæGÌ3¸ÄQ½ÅŸgµ$µ$ëĹ$é¾Åº$óAÅ»$ɾż$ÛËÅÕŽðÃ÷¸ápæGÌ3¸ÄQ·Æ…Â$Â$â«Ã$Ÿ©ÅÄ$ªôÅÅ$¥ Åbö‡ó;åןg±Ç…Ê$Ê$ØôË$ã�ÅÌ$õôÅýIî,}óŸgŒÈ…Ñ$Ñ$¡õÒ$”ªÅÓ$»õÅÔ$ÒõÅâ:p()£bÔŸgÛÈ…Ù$Ú$Û$›öÜ$óÅÝ$´ØÞ$ùÀÅß$Ñ ÅÏ+dÞ»g+Ÿg·É…ä$ä$ëöå$œ¡Êæ$…÷Êç$‘÷Êè$ÿ¸Êé$¬÷Êê$¾÷Ê…Së 3;5Ç…í$í$´Ùî$þÙÊf™és¶ Ì…ñ$ñ$—¬ò$ÙœÊó$�øÊEY_í9>…ö$ö$¬ø÷$¼øÊø$ÊøÊ7nûY=tHŸg•Ì…ý$ý$òøþ$Š#Êÿ$ŠùÊr —B£¤Š°ŸgäÌ…„%„%°ù…%Š#ʆ%³±Êˆ%¶Êø¿»Ýó4Ÿg²Í…�%�%ÒÅŽ%ƒúÊ�%¶Êñ†)0ØF«ŸgŒÎÌŒÎ�ÇŒÎ÷±ŒÎŒÎˆ›%œ%�%òúž%óÊŸ% %Šû¡%óÊ¢%£%¢û¤%óÊü%Ž#y vå…�Ïù �ÏŸg�ÏÌ�Ï�Ç�Ï÷±�Ï�ÏŸg¢ÊŸgšËŸgÑˈ°%°%±%þû²%ó– âf–æ) ©J…ÞÐù ÞÐÌÞÐ�ÇÞÐ÷±ÞÐÞЯ²ÞÐÞÐíÞЈÀ%Á%Â%ë–Ã%ó–Ä%Å%�ýÆ%ó–åŠf±‚¦Ðã…ðÑù ðÑÌðÑ�ÇðÑ÷±ðÑðѯ²ðÑðÑíðÑŸgÞЈÔ%Ô%Õ%õýÖ%ó– 8ì/3š!š¬…ªÓù ªÓöªÓŸgªÓŸgÝ%Ý%¶þß%ש–à%Ÿ–›Î¸¦°ÐbÈÄÄQ�ÔŸgä%ä%ùþæ%ש–ç%ªÿ–è%ºÿ–é%Êÿ–�nzðLiÄÄQäÔŸgí%í%ñÿï%ש–ð%›€–ñ%—»–ÕaÆëMò×ÄÄQÓÕŸgõ%õ%Æ€÷%¶¶–ø%Ùœ–q´Æ í^™ÄÄQµÖ…ü%ü%ý%“�þ%ó– š‰e“�Äê@ŸgŠ×öŠ×ˆƒ&ƒ&Î�„&¼–¡Påí1g:…Ú×ù ÚןgÚ×öÚ×ÌÚ×�ÇÚ×÷±Ú×Ú׈’&’&“&´‚”&ó– 9?꟦åìö…ãØù ãØöãØÌãØ�ÇãØ÷±ãØãØŸgãØŸg£&£& ƒ¥&ã�–¦&˜–jÆcáÎh�­ÄÄQðÙŸgª&ª&წ&ã�–­&˜–79æa¯ÝAÄÄQÄÚ…±&±&œã²&Ö]ô³&¾¾ô´&©&ôMs!ŽÂ—ÔŽŸg˜ÛŸg­­ž¾¯¾¾ô°ɾôG‹F ¯{òTÄŸg´´µê¾·óô¸ôô ¸L®�§OîÄ…·&·&Ö„¹&ɾôº&ƒ ôMöT Pƒb ÄŸgˆÝÄQˆÝŽQˆÝ¼TˆÝ…Á&Á&Â&´…Ã&óô bYváR–íŸgýÝöýÝŸgÊ&Ê&ø…Ë&ކôÌ&¡†ôÍ&¶†ôÎ&‚ìô‚¸œAÖl HöÍÞ…Ó&Ó&í†Ô&¦ôžÂÆLyFdMŸg¶ß…Ù&Ú&·¯Û&¬ºôÜ&чÝ&îNôÞ&í¹ôß&÷‡à&îNôá&”ˆâ&îNôã&¶ˆä&îNôå&‚ ôu×â‰ä€0Ÿg÷ß�¶ß¤g¶ß…ê&ê&ñˆì&ÛËô'|±0Ú2yßÄŸgÌáÄQÌáŽQÌá¼TÌáŸgó&ó&ɉõ&Ö]ôö&ò‰ô÷&þ‰ôø&ƒ ô”¨½ªox2ÄÄQµâˆü&ü&ý&®Šþ&ó )šÛ8OhC…¢ãù ¢ãŸg¢ãŸg��Ž®Å�ó °µûS…òĈƒ'ƒ'㊅'ýŠ”†'’”†R�T±™ íÄ…·äù ·äŸg·äÌ·ä�Ç·ä÷±·ä·äˆ™'›'œ'ª�'ó”ž'Ÿ'³Œ 'ó”™]Ô(!"l€Ä…Èåù ÈåŸgÈåÌÈå�ÇÈå÷±ÈåÈå¬Èå Ĭ™'›'œ'ª�'ó”ž'Ÿ'³Œ 'ó”™]Ô(!"l€…³'³'É�µ'–`«¶'é�«„z¢®é£ˆw¸ŸgÛçÄQÉɱËÌÛË«ÍåË«ÝzU¹¾ÿ¸‚Ÿg¯èŸg½'½'¾'©ŽÁ'ó« Otäy_»T�¸òèÄQŠéÄQçç¶ÍêÛË«ëåË«VS§�´�¸òèŸgÙéŸgÆ'Æ'Ç'úŽÊ'ó« Ýîâ� n]^¸òèÄQ²êÄQ……¨ÏˆÛË«‰ɾ«ŠåË«åÂJÀa똸òèŸg�ëŸgÏ'Ï'Ð'Ç�Ó'ó« 5;!Î&Ì_¸òèÄQçëÜ"  ¡�Ñ¤óž ø¥c õ8Tz�òèŸg¶ìÿ ¾¾�ÑÁêÒ¶ÂöҶÄӶÖ!Ô§I|neéìòèŸg…í€#…íˆØ'Ù'Ú'ž�Û'Ü'Ý'µ�Þ'ß'à'Ê�á'â'ã'ã�ä'å'æ'ú�ç'è'é'•‘ê'ë'ì'®‘í'î'ï'É‘ð'ñ'ò'ê‘ó'ô'õ'‡’ö'÷'ø'ª’ù'ú'û'Ê’ü'ý'þ'è’ÿ'€(�(Š“‚(ƒ(„(ª“…(†(‡(Γˆ(‰(Š(ð“‹(Œ(�(–”Ž(7�  °ZÞ…ôíù ôíŸgôíÌôí�Çôí÷±ôíô툚(š(ý”›(¼T–6Ên¼É…¯ñù ¯ñö¯ñ̯ñ�ǯñ÷±¯ñ¯ñŸg¯ñ…§(§(Ö•¨(ã�ØÇY%>œhCŸgµòÄQµò…­(­(Œ–®(Ÿ–ØûÈÖåsï*Ÿg‚óö‚ó…³(³(´(É–µ(óØ hè�ʨ¸ôŸgÏó�Ïó¤gÏóŸg­­®ÖÞ±ó¬ 4EøôµéìòèÜ"ÄÄÅ­àÉó¬ Œ¿‚ÄÆk"`Ä�‚é"ìôŸgìôŸgÁ(Á(Â(û—Ä(óß ô›ÛY·Ú¡¢éìÿ ôôÖÞ÷öÒßøæãßùôãßú�äßP C“­�ƒÐéìò蕚�ö–š�öŸg�ö€#˜˜­àœÊÞß��ßžÑæßSi`H™ÄªÄ¥õ«õŸg–÷…È(È(¶˜É(ɘ²âÑêíÜ“nÉŸgÿ÷Äÿ÷…Î(Î(Ï(Î�Ð(óà ÔWzÝùØm ŸgÌøÄÌø…Ö(Ö(×(¢™Ø(óÕ Kõ“v‘ÓPŒŸgœùÄœù…Ý(Ý(Þ(×™ß(óÕà(ôÕ +ÿ ÿÿÝqŸgìùÄìù…å(å(æ(•šç(óÕè(ôÕé(õÕ Æ¢æŸ8°âìŸgÈúÄÈú…î(î(Ûšï(åËûØ¢n«Ô-Ÿg°ûİû…ô(ô(Œ›õ(™›‹ö(©›‹÷(¼›‹ï«–[‰ ¯ŸgýûÄýû…ü(ü(é›ý(Ѷ±þ(åè±ÿ(Öï±E¯t2aƒè&ŸgäüÄ„K„KK‡Kí ä7ˆKphantomÁä7‰K«ä7ƒ¢3à6ú�µ“ÅFÅFÆFGlobalÁ Ä› +ÉÑ…„)…)†)¢™‡)óˆ)‰)×™Š)ó‹)Œ)•š�)óŽ)�)Ûš�)ó‘)’)Œ›“)ó”)•)Î�–)ó—)˜)¶˜™)ó¶OÖ"ߥŸgÃþˆž)ž)Ÿ)ñ� )óÙ i°1f[ á4…¯€ù ¯€Ì¯€ûh¯€�ǯ€÷±¯€¯€¯²¯€¯€í¯€Ÿg¯€ˆ±)±)²)öž³)óÙ ðS±¦…×�ù ×�Ÿg×�ö×�Ì×�ûh×��Ç×�÷±×�×�¯²×�×�í×�Žý éì×�¨#‹ƒ×�Žý…C…CüˆCbufÁÐ=‰C¶Ð=ò¹ÚàÅéì�þ×�¨#«ƒ×�¬×�³×�³×�³×�³×�…È)È)“ É)õEÙÊ9«ÅÔžÔŸgЄÌЄ�ÇЄ÷±ЄЄ�Є¤gЄ…Ó)Ó)ë Ô)�¡Ù¶úë:ú°’åŸgÎ…ÄQÎ…ˆÙ)Ù)Ú)¦¡Û)óÙ 8ÛL�,<Q…›†ù ›†ö›†Ì›†ûh›†�Ç›†÷±›†›†¯²›†›†í›†ˆî)î)ï)µ¢ð)óÙ ;¤4Kéã©…Çù ÇöÇÌÇûhÇ�ÇÇ÷±Çǯ²ÇÇíÇŸg›†Žý‹ƒ›†¨#‹ƒ›†Žý«ƒ›†¨#«ƒ›†¬›†³›†³›†³›†³›†…Æ*Æ*Ç*ª§È*óÙ ÙBJ›–Ê#ןgú‰Ìú‰�Çú‰÷±ú‰ú‰�ú‰¤gú‰…Ò*Ò*Ó*†¨Ô*óÙ Ë ‘5X¦¿êŸgüŠÄQüŠ…Ù*Ù*¨Û*ÛËÙÜ*ì¨Ùÿƒ¡/eƒ …ŸgÌ‹ÄQÌ‹ŸgÇŽý‹ƒÇ¨#‹ƒÇŽý«ƒÇ¨#«ƒÇ¬Ç³Ç³Ç³Ç³Ç…¦+¦+§+‰­¨+óÙ ÓÇi¤O’'ÇŸg»�Ì»��Ç»�÷±»�»��»�¤g»�…²+²+³+ã­´+óÙ fL,ƒ ÙŸg½ŽÄQ½Ž…¹+¹+�®»+ÛËÙ¼+ì¨ÙNüŸ[-𢉌Ÿg��ÄQ��ž‰Œ…Ã+Ã+çÄ+Ð÷£Å+ã÷£¨ñaE )øçŸgö�…Ê+Ê+­¯Ë+ƒ £щ ú'sÑŸgÅ�ˆÏ+Ð+Ñ+ä¯Ò+Ó+Ô+�°Õ+Ö+×+›°Ø+Ù+Ú+±°Û+Ü+Ý+ɰÞ+ß+à+á°á+6égIq5þ…†‘ù †‘Ÿg†‘̆‘�dž‘÷±†‘†‘ˆí+í+ç î+°úÆï+ÈúÆð+ÚúÆñ+öúÆò+»eÆó+ŠûÆô+œûÆõ+µûÆö+‚�Æ÷+ÍûÆø+ßûÆs±m«ŠK‚…Ý’ù Ý’ŸgÝ’öÝ’Ÿgÿ+ÿ+Ù²‚,ø²„,öÆPc>„†Ðªµþ¥õŸg‰,‰,±³Š,dzôË^?uÄs¤g‰•�‰•Ÿg�,�,Ž,à³�,óô ç–«E¿;lПg’, “,®´”,«°ô•,Æ´–,dzô—,å´˜,dzô™,‚µš,§ô›,¡µôœ,®µ�,§ôž,¡µôŸ,Õµ ,©ô¡,Ÿô¢,þµ£,§ô¤,›¶¥,dzô¦,¦¡§,¬ºô¨,dzô©,µ¢ ª,¬ºô«,dzô%�ûrÓ&,�Ö•¤gÖ•ÏÓvå½lЬëÏÔlÇÙAÕˆÕ…¯,¯,°,´Ù±,óó ‘ F8ôŒºÌ½™ûh½™�ǽ™÷±½™½™¯²½™½™í½™Í½™ Ÿg½™…À,À,Á,÷·Â,óó M}•©— ½—ŸgÞš…Ç,Ç,È,·¸É,óó /V�,ò¨ ŸŸg£›…Ì,Ì,ì¸Í,½ óÎ,‹¹óß=%R^˜Ÿg蛟g´´µß�·óó oëëmÆr/#Ä�‘™£¯·Á éì…Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²¸Ÿg¿�¬¿� ¸„ˆÚ,Ú,ú¹Û,‚Ü,’é*H]ÎûË…Åžù ÅžÌÅžûhÅž�ÇÅž÷±ÅžÅžŸgÅžŽýȚި#ȚŞŽýÅž¬Åž¶ý¶ý¼¸ý‚¹ý’}£²ËJüü ¬… Åž÷±Åž… ÷±… Åžˆé,é,áºê,îNÏë,Ñ Ï(� IßE…ö ù ö Ÿgö Ìö ûhö �Çö ÷±ö ö ˆú,ú,ÕÛû,îNÏü,ÅœÏ%:U"¹N…‹¢ù ‹¢Ÿg‹¢Ì‹¢ûh‹¢�Ç‹¢÷±‹¢‹¢…‹-‹-̼Œ-¶Ï�-æ¼Ïòò�Çœ *Ÿg¡£Ì¡£�Ç¡£÷±¡£¡£…—-—-¬½˜-õEÏ™-ïŒÏÍOöÀÝS"îŸg–¤�–¤¤g–¤…ž-ž-ô½ -ÛËÏSöE°ç(6ÄŸgú¤ÄQú¤ÔPú¤ˆ§-¨-©-Õ¾ª-«-侬-­-ô¾®-óvW ŸâõMK…Ø¥ù Ø¥ŸgØ¥ÌØ¥�ÇØ¥÷±Ø¥Ø¥ˆº-»-¼-¡ÞÊ-Ë-ÁÀ̘»if³K…ù¦ù ù¦öù¦Ÿgù¦Ìù¦�Çù¦÷±ù¦ù¦…Û†ŸgÛ†ÌÛ†�ÇÛ†÷±Û†Û†…Ø-Ù-‹»Ú-—»Û-Ñ Ü-ãÁÝ-Ñ Þ-ùÁß-¶à-£»á-¾»¾&Aº2h–�ŸgȨÌȨ�ÇȨ÷±ȨȨ�Û†¤gÛ†…ë-ë-ãÂì-õÂí-�Ã=Õ›kT½Ÿg�ª…ò-ò-§Ãó-¶Éô-à Éõ-° Éégíõ¶ EcŸgݪŸgø-ø-ù-ÝÃû-óÉ ë …ÒÍ_ÄÄQ¶«÷ò€ý�’©¦±­½¹ÄÀËÇÔÒéØþö�‚–“µ¬Å¹ÎËØÒãáóçþ÷…‚�‰¢ Á¼ÅÃËÉÖÏÄìùö�ýµ¬É·ÓÏáÝ‘ Ž ¢ Ÿ ³ ° Ä Á ß Ü ð í ù ö €!ý ¡!ž!¬!¥!³!°!Ñ!·!ä!Ú!ñ!ê!ÿ!÷!‹"„"“"�"£" "ª"§"±"®"·"µ"Ñ"»"Ø"Õ"æ"ã"ö"ò"ý"ù"…#�#�#‹#—#“#¦#¢#¯#¬#Ý#Ã#æ#ä#ñ#ï#ÿ#ú#”$‘$�$š$¤$¡$Æ$Â$Í$Ê$Õ$Ñ$à$Ù$ë$ä$ï$í$ô$ñ$ù$ö$€%ý$‰%„%‘%�%¦%›%´%°%È%À%Ù%Ô%ÿ%ü%†&ƒ&—&’&µ&±&»&·&Ä&Á&Õ&Ó&æ&Ù&í&ê&€'ü&‰'ƒ'£'™'·'³'�(Ø'�(š(©(§(¯(­(¶(³(Ê(È(Ò(Î(Ù(Ö(á(Ý(ê(å(ð(î(ø(ô(€)ü(š)„)¢)ž)µ)±)Ê)È)Õ)Ó)Ý)Ù)ò)î)É*Æ*Õ*Ò*Ý*Ù*©+¦+µ+²+½+¹+Æ+Ã+Í+Ê+ã+Ï+ú+í+²,¯,Ã,À,Ê,Ç,Ï,Ì,×,Ñ,Þ,Ú,í,é,þ,ú,Ž-‹-š-—-¡-ž-°-§-¾-º-Ï-Ì-â-Ø-î-ë-ö-ò-ùò‚ý�„ƒ’£Ÿ«¦œ­¬¹¸ÀÁÇÐÎÖÒëØðíôò€ö‘‚˜“Ÿš¨£·¬Ç¹ÐËÚÒåáõç€÷‡‚�‰¤ ®«·°¿¼ÇÃÍÉØÏáÚæãêèïìôñûöƒý‹…–�Ÿš¨£³¬Ë·ÕÏÛ×äÝñçõóú÷‚ ü‡ „ Œ ‰ “ Ž ˜ • � š ¤ Ÿ © ¦ ® « µ ° º · ¿ ¼ Æ Á Ë È Ð Í Õ Ò Ú × á Ü æ ã ë è ò í û ö ‚!ý Œ!„!™!‘!£!ž!®!¥!µ!°!Ó!·!æ!Ú!ó!ê!‚"÷!�"„"–"�"�"˜"¥" "¬"§"³"®"¹"µ"Ó"»"Ÿ Õ"à"Ú"« ã"ï"ê"± ò"ÿ"ù"‡#�#‘#‹#™#“#¨#¢#�¬#�±#£Ã#è#ä#ó#ï#¾ú#Ž$Š$–$‘$Ÿ$š$¦$¡$°$¨$½$µ$È$Â$Ï$Ê$×$Ñ$â$Ù$û$ö$‚%ý$‹%„%“%�%©%›%ÿä$�í$„ñ$§°%¿Ô%á%Ý%ê%ä%ò%í%ù%õ%�&ü%‰&ƒ&é’&§&£&®&ª&«±&±­¹´¾&·&Æ&Á&Ï&Ê&×&Ó&è&Ù&ð&ê&ù&ó&Šü&‘�Ž'ƒ'¨'™'º'³'ÙÉÂ'½'÷çË'Æ'•…Ô'Ï'² Ð¾“(Ø'þš(«(§(±(­(¸(³(À­ÚÄÅ(Á(”ô¬˜Ì(È(Ô(Î(Û(Ö(ã(Ý(ì(å(ò(î(ú(ô(‚)ü(œ)„)äž)¸)±)Ì)È)×)Ó)—*Ù)Ë*Æ*×*Ò*à*Ù*÷*î)«+¦+·+²+À+¹+È+Ã+¾Ê+æ+Ï+ý+í+…,ÿ+‹,‰,�,�,¬,’,…¯,Å,À,šÇ,¦Ì,Ê´óÑ,�Ú,ð,é,�-ú,�-‹-œ-—-¤-ž-³-§-Ã-º-Ñ-Ì-ä-Ø-ð-ë-ßò-ü-ø-ûòɹ’‰ÀÃÍ·ô í è!Ú!õ!ê!  ÷!è"ã"‰#�#›#“#ª#¢#Á#±#˜$‘$½Ô%Ñü%‹&ƒ&›&’&È&Á&Ñ&Ê& (š(Ÿ­(º)±)à)Ù)õ)î)òí+Á-º-†ŸÃΦ°Ü…í�ýšŠ£“ „!š ‘!­ ê"ÁŠ$©¨$°µ$ÁÝ%Åä%Éí%Íõ%ë£&ïª&¼·&ùê&„ó&ÔÉâ½'òç€Æ'�…™Ï'€§(šÓ)¼*Ò*Â*Ù*œ+²+¢+¹+²ž-áø-°­¼¹ÃÀÊÇŒ‰þ!÷!’"�"õ"ò"þ#ú#¥%›%³%°%Ç%À%Ø%Ô%…&ƒ&–&’&ÿ&ü&‡'ƒ'¡'™'�(Ø'œ(š(¡)ž)´)±)Ü)Ù)ñ)î)â+Ï+ù+í+Ý,Ú,ì,é,ý,ú,¯-§-½-º-³­¿¹ÆÀÍÇ�‰�"÷!•"�"ø"ò"�$ú#¨%›%¶%°%Ê%À%Ü%Ô%ˆ&ƒ&š&’&‚'ü&Œ'ƒ'¦'™'’(Ø'Ÿ(š(¤)ž)·)±)ß)Ù)ô)î)å+Ï+ü+í+à,Ú,ï,é,€-ú,²-§-À-º-´­ÜÒ”‰¦ Õ!·!�#“#ß#Ã#ê#ä#õ#ï#‚$ú#•%�%«%›%·%°%Ë%À%�&ƒ&�&’&‘'ƒ'«'™'•(Ø'¢(š(¥)ž)¼)±)Î)È)â)Ù)÷)î)Í*Æ*­+¦+è+Ï+´,¯,á,Ú,ò,é,ƒ-ú,’-‹-µ-§-Å-º-Ó-Ì-æ-Ø-¶­ÞÒ™‰¨ ×!·!Ÿ#“#á#Ã#ì#ä#÷#ï#‡$ú#˜%�%­%›%¹%°%Í%À%�&ƒ& &’&”'ƒ'®'™'—(Ø'¤(š(ª)ž)Á)±)Ð)È)ç)Ù)ü)î)Ï*Æ*¯+¦+ê+Ï+¹,¯,æ,Ú,÷,é,ˆ-ú,”-‹-·-§-Ç-º-Õ-Ì-è-Ø-·­ßÒš‰© Ø!·! #“#â#Ã#í#ä#ø#ï#ˆ$ú#™%�%®%›%º%°%Î%À%�&ƒ&¡&’&–'ƒ'°'™'˜(Ø'¥(š(«)ž)Â)±)Ñ)È)è)Ù)ý)î)Ð*Æ*°+¦+ë+Ï+º,¯,ç,Ú,�Ú,‘¶ýø,é,‰-ú,•-‹-¸-§-È-º-Ö-Ì-é-Ø-ÎÒÍáÕ÷Ü‚ù …ɉÚ�ã—è… µ"òÓ&£³(—È)·*Æ*—+¦+†‰,’�,¯—-ÆÌ-ÑÒÏá×÷Ý‚ú ‡ÉŠÚ‘ã˜è‡ µ"ôÓ&¤³(˜È)¸*Æ*˜+¦+„‰,“�,°—-ÇÌ-î’–‰„$ú#§)ž)¾)±)ä)Ù)ù)î)¶,¯,ã,Ú,ô,é,…-ú,œ‰¼%°%Ð%À%­)ž)Ä)±)ê)Ù)ÿ)î)¼,¯,ž‰¾%°%Ò%À%¯)ž)Æ)±)ì)Ù)�*î)¾,¯,ŒÚ“ښڜ衙'¤™'‡±)§*Ù)‡+î)÷Ñ,‹Ú,�¶ýä…õ�‚š�£Ä·&‚ê&ÈÝàçòó„ ÷– ü·&€ê&­ ÏÄľûôÔ¾§˜ÕÄþô�ô»È(ÍÎ(ÞÖ(éÝ(ôå(„î(•ô(Ê„Kù €…C™*  *…Cù* €+…Cƒ ˆý „…C�* ¤*…Cý* „+…C† ‰±)Œ±)�±)’±)©*Ù)¬*Ù)¯*Ù)²*Ù)‰+î)Œ+î)�+î)’+î)¡ÖÓÚÔƒ¯,�•ž©³¼Ã ·ž-…“ì(ŸgÝ…ö‹ ÄQ$Ĉüù ÙÌ%Ù�Ç%ƒ÷±'ƒ�’¤g…×…ûh ¯²Fí8¬ 8¼TU³*ŽQ#Ü"ÿ €#é"•š–šÄŽý8¨#)³ %žTÏÍ�‘™£¯·ÁÔPü…x& æ*ÇüÒwZ ÇüÞw 'Fæ*Ç&crate::util::primitives::StateID::ZEROÁè¡Å™Ç™È™­É™Ê™àË™óG*¤�R{9 ù¦\a †Þ×s{øÄ%řǙș­É™Ê™àË™óG*¤�R{9 [` †ߨrzÐïߨ²Ù(0ø�! řǙș­É™Ê™àË™óG*¤�R{9 řǙș­É™Ê™àË™óG*¤�R{9 ¡¦ †“Ú ¸À(ñ òöø4 Ñæ@ ÑæKÞ×L Þ×Xߨá ߨíߨw³Ü€“ÚT “Ú`¥¯³Ø²²Ù9²ÙÁ¬Û“(ø  è¡  ²ÝÞ×) ŸgøÄ% ²Ý ߨ* îÝÐï   ²Ý ߨ)  îÝø�!   ²Ý“Ú*6îÝ ßg 17%+îó ½ Â �’jýú„ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwĤĤŤßô Ñâó:½ÖàM ŠÜ €g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡W²Ý`²ÝQîÝZžÜc²Ý)îÝ2³Ü;²Ý îݳܲÝêîÝó ÚÜÿÚÜâœðûžÜîÝñ³Üîݸ³Üî݇èâîÝWÆß.è¡ ÷Þ×øÄ%  ÷ߨÐïŽäø�!  ÷“Ú8ÿ ò†ü4Ñæ@Þ×Òߨ¶ߨ™“ÚƒgéãûŽäÝŽä¾Ñä¦pÛnÑæ †Ñæ.6àŽo·¬ †·¬.6(³n ý¸n�.½ç: ½çEÑæÊÜË·¬˜ ·¬£q{•æûÐæÆ(ºn ²ÝpÛn ²ÝÑæ)îÝàŽo ²Ý ·¬)  5 îÝ™ž Ûg¯´¢§rwпnƒé ­àõ¨çý·á²Ý²ÝîÝ ŠÜ²ÝáîÝé ËçôËçüVœdoŠÜîÝf¾êîÝ6¤éŽ Æv  lØv·¬üØv"Tæv ¨ µ“2Dñv¤ævüØv;<ûv Ç_�»×°¸ï Ç^|ƒwšì Äûvø« Øv<  �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw�»¸ï·w|ˆ›üØv< m�» !, ²w   Äžwt£w A$žw @ œ£w¬ “w [ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw¸Ä¬©^—¯f¸ï¬ˆ �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw¡é¸ï€ï ñ# »w  ¼w ! ) )üÎuîV f  ?3üÂvz‰�—& þï¼ v¨ç,øu  µ“D‡v�»ŸÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^€ï�»RÖì£ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw�»×°3ËçRž€ï§�»8�» Á¨ ß'¸Æ ó Ž‡ ÀÔ빈ìŒÐìKÌîUøïY�»7(Ê› ‘ ²Ý @“œ¡éîÝøåŸ  …C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅÇ�þV  îÝØ¬£ •ö  îÝøõ¦…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅÇÄí�þ[ îÝxاݪîÝhü©îÝpëªÑæîÝ`â« �»îݠשׁÓ"îÝ îÝ    HU  îÝkt²Ý�  ²Ý™Ÿ ãg±·½ÃÌÏ›‘çíô­à „„ɨ †Ò ‡ð¨ ˆŠ© ‰Ÿ© Ь© ‹¸© ŒÉ �ß' Žש &2–�zûg阷á¡Åõª�ú³ îÝ ÍçüÖîݱ ¡é½îÝŸ •ö«îÝM¦ýVîÝ8 £÷DîÝá ݪíîÝÏ ÙîݽŠÜÆîݨ �ù´îÝ“  ªÓ¢³þ«²Ý ¼ú©³œÁƒ Ï‘Ûä ‘ýîÝĦýîݧ¦ýîÝJÍýîÝ-âýîÝË÷ýîÝ®ŠÜîÝ“œþîÝv±þîÝVÓúI  ²Ý½Æ ²ÝӺà ²ÝÐr { ²Ýˆ o x ²Ý…  n w²Ý„  kt²Ý�en²Ý{u ²Ý U²Ý  §¶‘ÇÅõÔÇõݲݑ²Ýš²Ý<²ÝE²Ý'²Ý0²ÝͲÝֲݸ²ÝÁ²Ý¥²Ý®²Ý�²Ý™²Ýx²Ý�u p"Š„Ñæ•æ)1@"»†�» †�»/7°"²Œ…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅéë�þW\ †³…n w " � •ö †•ö /8¨"Ï‘ Ç †Ç / 8 "˜“ ªÓ †ªÓ / 8 ˜"“•p"†– "ÜœÐ"íŸ ("»ƒ ’   "Àƒ"¿ƒ $ vž…¡é‘‘ý™ÑæÎŠÜ×�»ª�ù³³…€ ³…Œ•ö¦ý"Çî ÇúªÓƳþÏš ¥‹óŠ”zóŠƒióŠrZe •æ�‡…n‚†9¿†Äü†Ž¹‡X †'ó‹ ó‹ñó‹Ö•öy³…€�»‡t¯¦d¯¦ Y 쯦,¾¦ >F<Ħt¾¦ ѦÒ¦üð¥bRþï¼�¦²Ý<û¥¨çýçËîNPÃŒéñŒÁ½ç”½çšt ­d ­ÃŒü ­#T¯­ ?µ“JDº­¤¯­ È­É­ü̬}Sþï¼þ¬§òD묨çǽçϨ QÃŒîùŽÇ½ç•½ç›lÉÎ\ÉÎ 2ÜÎXü¥Î7Ñæ4¸ÎØ�WtÓ×dÓ× =ç×Yü­×:½ç<Á×¼‘WD©Ü�»¬©ÜT²Ü „0d²Üì©Ü,¿Ü †ýÝH<¿Üü›Ü,l›Ü †I"ÍÜZüçÛf˜ÛDˆÜ‘ý,þÛýÝ� ýÝÅ�ùä'Lµ’êà’Å�“œ„®ßT®ß ‹$¹ß$Äß[ü€ßD�ë,žß‘ý,”ß 1¸”wŒ»ë,Áë Œ,»ë$Çë\ÁëÓë\ü„ëO°ë‘ý,—ë �ë,žëy!óA R¼•£dÆìÑæØì]ü˜ì@ŠÜ<´ì‘ý,ªì 1LÇí�»Öí^üŸí7�ù$¸í‘ý,®í 1t®ï<³ï ^$®ïL³ïä®ï\½ï ü Fl½ïÐï_ü�ïO,žï‘ý,”ï�ùŽ8¼˜«é˜„T’ò³…„’ò�ò éCéë�þ8,�òt¦ò<«ò b$¦òL«òü’ò"@$ 9ºò`üçñS,‚ò‘ý,øñݦŠü¹”(L�ššãŒºÿÑÿaüŒÿE,ªÿ‘ý, ÿ 0d‘‹£‹büèŠ;,�‹‘ý,÷Š 0t±�<¶�š$±�L¶�œ¬�@#  ¬�J%Å�cü„�A,œ�‘ý,’�É¥=šìTᓳ…„á“ì“�š.,쓼ô“¬ô“ Ùéë üá“* -\š” •öŒš”¦” éCÇ�þ 8,¦”¤®””®” ÙÇ  üš”(     - üá“a   - È”dü’“¶ ,°“‘ý,¦“^´¦ŠÔœ‚Þ=¦ý]Æ£ÿÆ£Êh��šµ ü®¡Šá¡^ dÆ­$Ì­ «…Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²,Æ­4Ì­ÜÆ­DÓ­ à§$Ü­ tÓ­,÷­¤÷­dý­ ï,tý­+ ‰#ñ|] )#Â}] !#«}] ù#ñ|`],©® l¼® §-ü©®!d¯® è B 7 ܯ®4û®<ƒ¯ gÓ¤ řǙș­É™Ê™àË™óG*¤�R{9 ¯€u  ¹¨üÞ®-„ã® q$Þ®,ô®Äº üã®(üÞ®64Œ¯ Ó_řǙș­É™Ê™àË™óG*¤�R{9 ›†Û†¨ DŒ¯w üÞ®@<•¯ êW›† £ L•¯¤¯gü¹¬ëü¶­î"$§­‘ý,ꬔ–,ù¬Ó¤,”­Ù¤Lº­Ù¤ÊlØ¥ Ù¤ d�®Y Ù¤‹Ø¥„ €ªm€ªvÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw€ªÛ†œ¬·ž©±¶¨ºóA–` –`dͤáÙ¥\¤¦í§W¹©’ú©XÿªÚˆ¯ ¹¨HXg˶¨u¸¨F…3d¹Å$¿Åͤ,¹Å4¿Å,ÛŤÛÅd፦(táÅ'‰$ñ|])$Â}] !$«}] ù$ñ|`],�Æ l Æ §-ü�Æ!d“Æí§ > 3 Ü“ÆtÅÆ<ÊÆ¼˜$ÅÆLÊÆäÅÆ\ÔÆé˜C  lÔÆüÅÆ!   åÆ'  $†Ç Å™¯€$ŒÇ Å™¯€d…Ç ¹¨4ÖÇTÞÇž©ü¹Ç0„¾Ç¹©$¹Ç,ÏÇZP ü¾Ç+ü¹Ç94êÇú©X DêÇøÜ ¹Ç:  �%€ªG %*6ü¹Ç:m›† “È D�È% /ÓÝ òÇ �%řǙș­É™Ê™àË™óG*¤�R{9 ‹¢Å™Ç™È™­É™Ê™àË™óG*¤�R{9 Ïï2ü¶¬0Œ Œ�È4–È øW¯€9D–ȼ�ÈŸÈ ãI,ŸÈ ÂÈ " D¼È #"% #/"J !"Œ¼È 4ÅÈþ·!q DÅȼ¼È ÎÈ®¸ @,ÎÈœýÈ % Ú,üíÈ$ TíÈ ™ÅžøÈ%C$/üèÈ* Å™‹¢$ê0t²É<·É¼˜$²É'L·ÉܲÉTÁɵ’'C&dÁÉÌçÉ ŒíÉ Û&,çÉ(œíÉ$ŸÊ * Å™¯€ù%„ ! ±%„  šD¹¨*;(L¥Ê)04àÊ /TèÊ 1)  ê"…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàŹ¨�þ1h01qüÃÊ0 „Èʹ©$ÃÊ,ÙÊ/¯0¥.1üÈÊ+üÃÊ9 4ôÊú©.Y-1DôÊøÞ ÃÊ:  Û´-B, 1 % 2,1 2!"üÃÊ: 3,m›†+3,“Ë8)™Ë;+t™ËD�Ë ‹*;*:$1T�Ë´ß üÊ­¶�ü¶#1Ú ´Ì )0”™Ë<: ªË& <:(%1N9<¤˜Ë ‘ý‹½89„7&1-Ì“Ë67ü“Ë"4­Ëþ·6*5'1D­Ëü“Ë(¶Ë®¸5C4(1,¶Ë,ÏËA)ÕËE+tÕËDÙËå¿E(D)1TÙË”ÕËFD æË& FD(*1NCF´ÕËGC êË& GC(+1NBGÄÔË«ÁABz@,1#ìÏË?@üÏË&4íËþ·?*>-1DíËüÏË,öË®¸>C=.1,öËœšÌI Ú,4=üŠÌ$TŠÌ½º+•ÌI=H/1*ü…Ì* Å™‹¢H )0µÌ" )2ü§ÄŽjü©ÅŒ üõƨüŸÇþ~…Œ ü�Èœü²Èk ü¦É�ü×ÉÞ üŠÊ« ü¹Êü ø ÿ „ü‡Ë®üÅËpJ³¶l‘Å‘ý,ÔÄ”–,ãÄÓ¤,þÄÙ¤L­Åö Ø¥‰ œ¬£ dñÅà º¬ Ø¥ w ¦ �ùÛ ¹¨Lùƹ¨t ¹¨d ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ü¶›†ó €ª& ä¬o œ¬ª ž©¤  ¾É° S ›†å ,…ȯ€¤ ¹¨É ï Ø ¶È ¯€þ¹¨a ‡ p ‹¢³ÅžØã“,ªÉ�ùrLÛÉ ‹½LŽÊ ¹¨›†½Ê éÉà€ªä¬^œ¬îž©è ‹½ô_›†ß ,‹Ë¯€Ÿ¹¨º ¹¨ø ‹½ílÝ ›†úÆ£‰É˯€d¹¨�Ͱ›Í¿!‡··ÍÑÆ£¡Æ£L‹¢KÅžpóA–` –` ©&ª¾¾£ÇÆ r  ü¶Ž ‚- ’ ginfoÁá & slots_lenÁã (©&ä )¾¾Ý+Æ } ü¶Ž�3‚´4’g=Þ#ͤš¤¦fí§©¼˜�é˜\¹©Œú©SÛ´0­¶7þ·› ®¸r þ·Ø ®¸¶ ½ºz ¼˜# µ’þ î»Ü ¸¼œ …½_ ¹©î ú©´ Û´� å¿ ­¶ž ‹½Ä«Á[þ·®¸ú忸«ÁÙþ·¦®¸‚½ºD‹½ ‹½  dôÜ$úÜͤ,ôÜ4úÜ,–ݤ–ÝdœÝ¤¦(tœÝ' ‰&ñ|] )&Â}] !&«}] ù&ñ|`],ÈÝ lÛÝ §-üÈÝ!dÎÝí§ > 3 ÜÎÝ4”ÞüýÝ$T‚Þ p$ýÝ,�Þ:$œÞü‚ÞüýÝ-4¢Þ Ó_Û†e  D¢Þ±ÞmüÒÛßüäÜÍÙÜ‘ý,ƒÜ”–,’ÜÓ¤,­Ü ˜Û$¿ÜÙ¤LèÜeØ¥øœ¬d¬ÝOº¬~Ø¥wçÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÛ†…œ¬ŸãóAå–`çɾç–`éMͤ¤¦éí§,”ÕõØÕ¸ „‡ˆLŒˆ ª$‡ˆ\Œˆüã‡5„臹©$ã‡,ù‡,€ˆ^üè‡0øà ã‡6  �%ä¬`%*6Iüã‡6 m€ª¬£ˆ\¨ˆ ¨$£ˆ ´ˆ „¨ˆá ˜ˆ [ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÏïÛ†v �%²×´Û Œ44ˆ ÀœÛ†ÀΈ püº†”üÙ‡uðöüR ²×´¸‡‘ý,Õ†”–,䆜¬,ÿ†ÕÖ$š‡ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^´Û€ª8䬄ž©»²´Û»€ª»óA½–`¿ɾ¾¾݇ Æ  Žv S�ÙK¹©$ŽÚèúÚƒ™Üö%t�¤<†¤¼˜$�¤L†¤Ô�¤L�¤ †E\�¤+tŸ¤<¤¤¼˜$Ÿ¤L¤¤ü�¤6 ÄŸ¤<®¤ ‡fL®¤LŤ  üä¤.¤é¤ r$ä¤,þ¤,…¥,Œ¥"üé¤)tì¥<ñ¥¼˜$ì¥  Lñ¥Üì¥Tû¥µ’ C  dû¥üì¥/Œˆ¦î» A  œˆ¦,¨¦\¨¦”¨¦    üЦ.¤Õ¦“â$Ц,ê¦,ñ¦,ø¦"üÕ¦)t•§<š§¼˜$•§Lš§ä•§\¤§é˜Cl¤§ü•§! µ§'$×§ Å™¯€$ݧ Å™¯€dÖ§ ¹¨\¢¨ž©üú§4¤ÿ§“â$ú§,”¨,›¨Süÿ§/øâ ú§5 ŽÚZ$06üú§5m€ª4è©,ñ©"\ñ©!"hä ï© àý!|î© ‘ý¾ÉàýàýÆâý’ür 1¡z÷™ pYã ®¨[´Û-# �%䬴Û9"QüÑ©-|ש øx¹¨,Ñ©´ç©üש'<“ª Àœ€ªÛ†tŒª"$Ī$ Å™¯€ù'„ !±'„ ¸¼$5 ʪ#*\Š« (# …½(#'#,üâª4 ¤çª“â$âª,üª,ƒ«'c&#üçª/øæ âª5  ŽÚ&[%# % )%1 )üâª5 +%m€ª4Ĭ .#,ͬ 1\ͬ 01hè ˬ / àý0|ʬ  ‘ý‹½Ñè.l/C- #-ç –« *%[´Ûø "¿é*.# ð¬#"ü­¬- |³¬ñé,­¬-´Ã¬,!#ü³¬'<ä¬ Àœ€ªÛ†+i#"ñ¬„#$ü¯¢ qüñ£€ üâ¥�üŧàüð§µcjq=ü®ªÃüت™ I P W ÷ 2ä¬üÁ£%‘ý,Т”–,ߢœ¬,ú¢ž©,•£Lõ£`�ù•�ù6Çæ¥ã“E�ùzåü  ©Bq�ù¦¾ÉTɧ¹¨1¹¨!áÝ•ä¬áž© çʨ´Û±€ªy×ñ) ¾É‚Ñè]t×ñ�‹½T²ª¹¨UáÝ�ä¬êž©&ÖÌ/å´Ûî €ª� ®×ñ:›Í�Ñèk‚×ñ›½óAÀ–`é&Æ utf8emptyÁÔminÁ¹ enoughÁ{gotÁô§Æ ŽÑòó #„ôܪ +Æ è *Ž� +*¼˜é ¾àÄ ¼˜� ÇáI “â ¼˜Å µ’  î»~ ³w¹¨S “â& ¼˜çé˜Â“âŽÚÅ öH¿éÓÆè(ñ鈸¼ …½å“⹎Ú| ö¿éŠ‹½w¾íïñés‹½Œ‹½“"$묄ë¬Lð¬ `*\ð¬˜‚è¬ ¶ý 謘…è¬  ‘P… P%*ø…߬�G V[ ÆQ…  mv{ ‡ 6" 㬠à$œ­tœ­<¡­š) L¡­\„¯)•öŒ„¯�¯®¡).(,�¯œ—­ @#  9   $Ä­œÄ­dÉ­ a* tÉ­°†Á­ ¶ý Á­°‰Á­ ¿øJ $ø‰¸­­ APU�ùa jo{ ¼­àTõ­³…T€®   -dÿ­ ‘ý³…rb,üõ­!DŒ® ™´õ­TŒ®T¨® ³…T³®"  " -!"d²® ª#³… r!a+Ì®$LÌ®% & ‡#¾ Ç$@%6#?ü¨®.d¿® 𴍮#h!¼¿® Š�¯' ¶ý �¯( ��¯ ¿ø'J&$*&ø�ø®[@,*OT�ù,`+in-+z- ü®.+൯0\¹¯4•öį ‘ý•ö45. ů3/ دt¹¯23œµ¯1 2“¥€0Ÿ1(/1\¤¯6•ö¯¯ ª#•ö65. °¯5.ü¤¯$5/‚Ù¯Ë ü”¬ÅP � MTüŠ­å�ˆüê­{þ7Ô¬ ¡éL¨¬«€³¬… î… +\‘ýw… ØÚ … &ö”4Ž­{‘ý–$… v… ³ä‘ýÿ… ™ØÚ¢φ«�/Ç$î­ éëÙ¦Š6)Æ£2À éëQ ³…²¤Æ£­Ç8 «€S±€M… ©… æ4¦ýT… ÌØÚÕφÞ´cÇ×ƈ\±€éÇÍŠQ¦ýq Ç •öæ ôƒ ÷�èŸR Ñ Â �!˜¡¥ u�ª*Ÿ+.äã÷­ ¿øW �ù^ š˜®¡`Îûå¿ø��ù–¡þ¤Øþx×ÿü¥€Äà€…¿ø%�ù,�ƒi«€:¥€!±„Ú«€O(S´Ä ²ÝøSâÄ< ²ÝƒŠƒŠ EnumerateÁ…Š�Ð<†ŠŠÐ< 0{?i—�p�pIterÁ pí óo¡p end_or_lenÁóo¢püðóoÛê2ÝЫéëÉîÝøS¤Å! ²Ý řǙș­É™Ê™àË™óG*¤�R{9 éëv  ‚ î݇�¤é›¡�•ÁÆÀS¹Ä¥Û ­àè ŸŸ—«¡ÛË ¢Ä« 6›âu5ôQJ-·á6²Ý?²Ý0îÝ9 ÐŒE²ÝtîÝ}  ªŽŒ‡‘•‘œŸªç�îÝ …‘îÝФéÉøTõÖ(‹½ †‹½08ÀT…Ù(T–Ó ¦T›Óª0�ë< �ëG‹½®›Í¶€óŠˆoy‰’âó‹«‹½TšÓ(U�Ó ²ÝøUõÖ( ²Ý‹½+îÝÀU…Ù ²Ý )  5 îÝœ¡¤é®³ ¥nsÏU¢Ó¬é ­àõ…“ý·á²Ý²ÝÿîݛͲÝÝîÝå óŠðóŠøUœcn›ÍîÝd –îÝ2¤é�(WƒóWˆó²&+éë8æ‡@ISY’óµY�ó æ‡&0Z²ó&Z�ó¸HZ”󿇿‡ov5î BL21ÁôŽôŽô@Ì“ô‘2 4@1‘büòó;’ˆôŸ2‰‘”‘_ÁôÎôÌÓô‘@/  ÎôC‘_.n‘ü²ô;“Èô¯.®‘¹‘Ä‘_Áü•õ Ì–õ‘ ²õ9 4‘1iü�õ$�õ@' (@N ³õüòôC”Šõ …›…›£A‘ ‘_Áÿÿÿÿÿ0x000003FF_FFFFFFFFÁ(cè�cí�¾&+êì8 êìCLV22ÁüòŽ%òŽ@ü÷Ž Ÿ4 5@2ŸdüÔŽD ìŽ…›Ÿ0ˆŸ“Ÿ_Áÿÿ?0x00000000_003FFFFFÁÿÿ? PatternEpsilons::PATTERN_ID_NONEÁüÿÿ0xFFFFFC00_00000000Áÿÿÿÿÿ0x000003FF_FFFFFFFFÁ(mׯmܯÅ&+Äí8 ÄíCLVüÿÿÿ0x000003FF_FFFFFC00Á 10Áÿ0x00000000_000003FFÁ(wóËwøËÌ&+žî8 žîCLV 32Á(…ÙÛ  ²Ý`…øÛ ²Ýžî+7îÝch Ùgy~jo�…ÞÛÑ«­à· øî·áʲÝÒ²ÝÁîÝÉ �¦Ô�¦Üþœ ±¨îÝ ¹§+ †�äøï †øï08(†òã Ò†÷ãÕ/¸ï; ¸ïFøï‹ øï–bl¥©³(‡ùã  ²Ý ‡�ä ²Ýøï+7îÝch¹§uzfkŒ‡þã×§­à³þ©»·áòÝ˲ݺîÝ ‘ªÍ‘ªÕ÷œŸ¬îݹ§$ (ˆŽå/ˆˆ¥ç™°²Ýa ؈’å `ˆ„ç ÷¯ ® ØM PˆÞæ ׯôí % †ôí 7  ?Pˆºæ ·¯ : Ø Ú Pˆ–敯ƒ Ø# Àˆçåü®Ïó % †Ïó7 ?øˆ»å ä®×°!& †×°8 @, ØÌ L Ø:>Ïóó s Ø  ˆ“åꩯ¶½ÄËÒÙøï瑪ðø ×°×°& ÏóvÏó ÔÜ—³.6 ôí†ôí�óŠàè ²ÝB²ÝK‹__self_0Áº‡³ ‡³b‡³¸ ‡³  ‡³^ ‡³¹ø †²ÝÓó‹Œæ®K †‹µÑ½°Ž‚±Q (‰•å/ˆ‰¥ç ™°²ÝT!\ ²Ý2":²ÝF$ R#$îÝ› ¹§­!²"�#† Ä`‰„ç÷¯æî²Ý19²ÝEQîÝ-3¹§AG„‰ ZP‰Þæׯôí~‡²Ý4< ²ÝHTîÝÇ͹§Ûᇌ ôP‰ºæ·¯ !²Ý3;²ÝGSîÝ`f¹§tz†‹ �P‰–æ •¯° ¹" ²Ý3;²ÝG SîÝùÿ¹§  †‹ &À‰çåü®ÏóJ S#²Ý4 @  îÝ… çg— � w «ø‰»å ä®×°ÐÙ$²Ý5AîÝ À¼t -‰šåìIOV]dkry%­à‡‘ª�·á™¡í²ù²Ý²îÝ  í²‚³¤²ÝÙîݶ ‚³Â—³d²Ý²ÝvîÝ —³‹—³-²Ý0²Ý?îÝHË¿Q»³ô²Ý]²ÝîÝ »³óŠ»²Ý�²ÝÍîÝÖ –ßá³{²Ýº²Ý�îÝ– á³¢ âœð‡³N‡³à‡³† ‡³,‡³Ó‡³w‡³ V…ÁîÝ.¹§k –îݬ¹§|¨ÀîÝ&¹§�Ë¿îÝ�¹§žË¿îݹ§¯›¿îÝ�À¼Àô¾îÝÀ¼Ñ(˜¬ %²Ýˆ˜ô  &²Ý•ö*îݘ˜Å! '²Ý ®ò*  6 îÝœ¡¤é®³ ¥otϘ±ñé ­àõ ëñ·á ²Ý²ÝîÝ ¦ý²ÝãîÝë  ®òùÕÅ^œlw¦ýîÝmÓÅîÝ<¤é–(™¤= ( ²Ýp™Ž? )²Ý)5îÝ`e¹§rwdi‰™©=õ£­à¯ÕÅ··á¿²ÝDzݷîÝ¿ –ÇóŠÏðœý –îÝý¹§¬¾MT¾M �«€$ÉMÏM-ÝMòüúLc¯M�†LƒM«€ŽMƒ DëÈ“œá |á § ó / 2§0_üÇ .¦,٠ƣ˜.˜§£§_Á3Á pšž%¯ø †¯ø/7�š²%�»‡…)2pšÊ%¸šÞ% Å� †Å� /8 šû% ªÓ¹‡ ) 2€š•& Ú× †Ú× / 8¨š«&(šú$ ö  šÿ$šþ$]ÿlïòx ïòƒ¯øó ¯øÿ�»Ì�ùÕ¦óНÅ�– Å�¢ªÓn³þwÚ×I Ú×U óŠ) ùË�‡…Zó‹*ŽÍ¹‡Ù‚Ωó‹s�»¯ø&(›�% � ²Ýp›ž%¯øîÝ�›²% �»  îÝp›Ê%   îݸ›Þ%Å� îÝ ›û%ªÓîÝ€›•&Ú×îݨ›«&!îÝG îÝ   jw�ú‰’*²ÝŸ¼ú³¹ÓúÇÍÓÙ⛆%�ý ­à»Ï!·á*ÀÑ3�ú< îÝVíÕ_îÝ<ÏÏEîÝ'�ù0îÝóŠîÝþ‡ÐîÝé³þòîÝÔ®ÐÝîÝ¿ –ÈóŠÑ²Ýï¼úøœƒ ‘*3ÏÏîÝ�ùîÝøóŠîÝÛ‡ÐîÝ¿³þîÝ¢®ÐîÝ… –îÝhÓú„=F²ÝS:C)²ÝP8A+ ²ÝN5 >²ÝK 2 ;,²ÝH  / 8-²ÝE  h ²ÝJ²Ý  ”£�´ÀÑÁÂÑʲ݀²Ý‰²Ýk²Ýt²ÝW²Ý`²ÝB²ÝK²Ý-²Ý6²Ý²Ý!>tØ3dØ3 ¯üØ3#Tç3 ´µ“IDò3¤ç3 €4�4ü„3}ªÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwïòØû¼¶3§òD£3 õùõù¨ "§…Ü?³Üõùëõùñtµ°<º° µ$µ°Lº°Ôµ°LݾàE\İ)tÓ°<ذçÞ$Ó°Lذüµ°6 ÄÓ°<â°ÇádLâ°ü„±$„„± Ñ$•±,›±,¢± 5ø°„±%  �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwřǙș­É™Ê™àË™óG*¤�R{9 ö Û† ñ ½Â  Î  ¾Vü„±% mÖá & üþ°+ ±¨±  [´ÛM# �%‡á´Û 9qâ± àö Lê±$ʱ Å™ö DDZ ÀœÖáÛ†|À±�² àö ¤²ç¹\ç¹4ê¹ —*Dê¹ã àö D�² Å™ö dþ± ÀœÖáÛ†ŒXüô¹€ » Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwřǙș­É™Ê™àË™óG*¤�R{9 ö Û†Uÿ»Ï ûóüʰ´Å¹ ƒö »¾æËè,ܹã¹þ}Oûºº ü�¯ë ü¥°Ö üõ°† GNU£üݱ-t˜²‡áüõ¯%»Ï,¯¯Ðè,¾¯œ¬,Ù¯L©°Í�ù�ù¥ö ù°ÖáÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^´ÛÖáa‡á¦B´ÛKÖá›$¸±Öáæö ) ö 5"ÖáKö Îœ–ì¶üè' 0óA3–`6Îó<hmÁ&Æ þ ŽQ�ìÐ�ìÝ�ìj çÞ�¾àhçÞ5ÇáïÆàÍ�á˜É㟲åuòè¾$¥º »Ï,«º Ðèü”º$„”ºÆà D 4,²º-ø²”º% �áK$0Cü”º%mÖáüʺκ þWö ½è¼ö ½èUÿʺž]�ð´ÒºÜκ³¸º[´Ûá" �%©ç´Û8üǺ# ÀœøçÛ†ôº »ªüŠºj•›¡! ©çû¹ üè蜬,õ¹ýꛇáØè´ÛðÖárøç_»Ï/Ðè8–`R$°¯»ÏóAXÐè„ôŽºÆ aŽç›Æày�áL�ðíõðZ _ref__selfÁ _ref__cacheÁܺ\ܺ4ߺ²å(DߺŒ×º 躼/½èÖº�ðGö Óºy–ì’�ìw²å¡t…ï<ŠïçÞ$…ïLŠïÔ…ïL”ï¾àC\”ï)t£ï<¨ïçÞ$£ïL¨ïü…ï6 Ä£ï<²ïÇádL²ïüÔï$„Ôï Ö$åï,ëï,òï 5ø´Ôï% �á S $  0  ‘aüÔï% mÖá & üÎï+ µøï  [´Û¯"Éã .Ȳð àö Lºð$šð Å™ö D—ð ÀœÖáÛ†|�ðíð àö ôð­ñ\­ñ4°ñ²å(D°ñá àö DÑð Å™ö dÎð ÀœÖáÛ†Qcüºñ€ ¾¾æËèü‹ñ°´‹ñ †ö ¾¾æËè,¢ñ©ñëkMÁò½ üàíáüõîÌüÅïü&-4‚ü­ð-tèð‡áüÅî%»Ï,ÿíÐè,Žîœ¬,©îLùî�ùC�ùæö ÉïÖáýýêQ‡á–дÛÙÖá)$ˆðÖá€ö Ã–ì̹Öáäö e3–ìM°üÀ ÜóAÞ–`àÎóå�ìÍÆ ƒ ŽÖ�ìa�ìn�ìû¹ çÞt¾àOçÞÇáÖ·÷´�áÉㆲå¦üb$ëñ »Ï,ññ ÐèüÚñ$„Úñ·÷ D 4,øñ-ø¶Úñ% �áK$0CüÚñ%mÖáü�ò”ò þWö ½è¿˜ð�òìfç‚ ´˜òÜ”ò·þñ[´Û×"õð.ðü�ò# ÀœøçÛ†ºò ¾(üÐñjŠ�–  ©çÁñ °üfœ¬,»ñýꆇáÃÝ´ÛåÖá]øçJ»Ï­Ðè¶–`R$€î»ÏóAéÐè„ôÔñÆ VŽÒ·÷d�á7Ù‚ ØõðEîòûò¢ò\¢ò4¥ò²å(D¥òŒ�ò ®ò¿½èœòç‚ )ö ™òy–ì’�ìY²å¡t‘—<–—çÞ$‘—L–—Ô‘—L —¾àC\ —)t¯—<´—çÞ$¯—L´—ü‘—6 į—<¾—ÇádL¾—üÑ—7äÑ— Û$î—,ô—,û—,‚˜ =ø¸Ñ—8  �%²× a %*  6  Ïj,™˜Œ™˜LŸ˜ ¼+  \Ÿ˜¹ˆ˜  [´Û©"™Ü .Âd ¼“˜ Lá˜4Á˜ ÀœÛ†©k Ƙüï™n ÁÇæ Âú²×UÿËèü�™ßü�™" ½ÁçŒ Ëè,Á™,Ø™|E4î˜ ÀœÛ†dl ó˜ýšÀüÉ•´ü�—ü‘˜ŸüÑ—8²×´à–»Ï,ô•Ðè,ƒ–œ¬,ž– Âú,¹–L…—x�ù­�ùPÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^´Ûï²×<t´Û}ÖᯠÂúÍ$¹˜H«� ÿôóAö–`øƒ÷ÎóüÆ ö Ž\n• çÞȾà£çÞpÇá*ç‰ ªŠ Ë�‹ o™ÜÙ¥� h$±š»Ï,·šÐèü”š7䔚ç‰ D4,¾š,Åš5ÝšÁ-²×ý™ «� Hœ¬,ð™…� ,÷™»ÏgÐèp–`*ƒ,$õ•»ÏóA‰Ðè¹ç‰ åîòûòt�Ã<’ÃçÞ$�ÃL’ÃÔ�ÃLœÃ¾àC\œÃ)t«Ã<°ÃçÞ$«ÃL°Ãü�Ã6 Ä«Ã<ºÃÇádLºÃüÍÃ7äÍà Þ$êÃ,ðÃ,÷Ã,þà =øºÍÃ8 ªŠ  [ $  0  ûp,•ÄŒ•ÄL›Ä�‹ )  \›Ä»„Ä  [´Û¡"™Ü .ºb ¼�Ä LÝÄ4½Ä ÀœÛ†Óq ÂÄüëÅn ÃçŒ Ëèü‰Åßü‰Å" ½ÃçŒ Ëè,½Å,ÔÅbE4êÄ ÀœÛ†tr ïÄùÆÂüÅÁ´üýÂüw~…üÍÃ8²×´Ü»Ï,ðÁÐè,ÿÁœ¬,šÂ…� ,µÂL�ÃS�ùˆ�ù+µ� z²×Ç´ÛÖá@±� [$µÄØ»™ �žóA –`¢ƒ¤Îó©Æ † ŽÔs? çÞP¾à+çÞøÇá²™– �ªŠ S�‹ ý™Üaµ™ $­Æ»Ï,³ÆÐèü�Æ7ä�Æ™– D4,ºÆ,ÁÆ5ÙÆÃ½²×ùÅ »™ Øœ¬,ìÅ…� ,óÅ»Ï÷Ðè–`*ƒ,$ñÁ»ÏóA3ÐèI™– åîòûò̈à¼ˆà »Tûà üÍà9ÔÒà À$Íà,íà,ôà DüÒà4ø½Íà: ªŠ \$ 0 C,•á Œ•áL›á�‹  (\›á¾†á [´ÛŸ"™Ü .¸ü¿àq <µà  ºààö  Ùá\Ùá<Ûá –* LÛáôÇáTÎá ©4ÇáL ¼Îá4Ýâ„Ýâ<äâ «+ Läâ+ ¤ñâd÷â ð,ñâ t÷â04¿ã ÀœÛ†ÛwËã ÄüÂÞ‰üøßÓü±á…ÖÝäüÍà:ü¿á÷²×´×ß»Ï,ðÞÐè,ÿÞœ¬,šß ¡£4µßÂúLüßÖáµ� ײ×%…� @o´Ûx±� ¹>ö 3ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw–¤7›†k–ì…  ¡£+äóA–`patsetÁƒÆ l Ž�Êy£+Ý öŸ ˜ª  lªŠ .�‹ Ú™Ü<ú¢ 7¥£ è£ ×¤¤ ¢ d�úªÓ¼�úœú ±0, úTœúüƒú$\ƒú ®T)<¾ú ܾúŒÆú ê * œÆúü¾ú#     - \õú…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàŰÿ�þD€û ‘ý« t4�û .œõú –û „–ûTšû ò*dšû+Ìâû”âû ž,õû $<¼û Àœ°ÿÕþ Áü ´…üL…ü ã$�ü,•ü 16ü…ü6„œü æc<­ü$¶ü üœü“ÆüÖøëü÷ùÊü±ú�üëúÖü×ûjÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw°ÿÕþüÍù»Ï,ñøÐè,€ù°ÿ<›ù,¹ù,ûùz³þš4µú# °ÿ@Æ£°ÿïúó° � « òOó° iÞÐ$Ûû šš�Ñ�ÒûžóAû×Å­Ñ8ű ùóAûcurrentÁ–`›€ Ñ þ Øâ ʽýé© ³žª ‡Ûª O”¬ šë¬ M§­ €® ÇÅ® ‰ <¸§œ¸§LÀ§ ñ*\À§+Éž‡T]  ¸[˜.&²Ý£)dî§ ªÓ¼î§û§é©  .,ÿ§ Tû§üâ§$\â§žª  J!<�¨ ä�¨”¥¨ ë * ¤¥¨ü�¨$   - \˨« DÖ¨”¬ + 4ר$œË¨ä¨Çü—¦ÍüÖ§Žü�¨T°ÿ\“§»Ï,»¦ ûó,ʦ°ÿ<á¦,ÿ¦ó° *ä,Ú§±³þÑ4”¨dó° ~Æ£Mó° œ± "—óA–°± ™–`œ›€‰Ñ y ê³ Ï¥´ šé© \žª 2Óµ ”¬ Œ <ÈÜÈÃLÐÃê³ (\ÐÃ)É¢‡T] ¥´ £‚.&²Ý®‚'dþà ªÓ¼þËÄé©  .,�Ä T‹ÄüòÃ$\òÞª  J!<­Ä ä­Ä”µÄÓµ  ( ¤µÄü­Ä$   - \ÜÄ« üÜÄ!  Þ"« 2#*lèÄ Ùw°ÿ^ 4öÄ ¬èÄüÛÄ"ƒÅÈü–ÂíüæÃ�ü Äc°ÿ\£Ã»Ï,ËÂÅ· ,Ú°ÿ<ñÂ,�Ã>ó° X,êÃã³þ4¤Ä–ó° °Æ£�ó° 6  °ÿCœ± c¡óA£°± ¦–`©›€–Ñ † ê³  ¥´ ×é© ›žª qÓµ A×¼ Í€½ Ô d¼âªÓ”¼âÉâ ³0,Éâì¼âDÏâ ¢DTÏâ<ðâ ÜðâŒøâÛª  (œøâüðâ!   - \¥ã « D°ã”¬  +4±ã $œ¥ã Æã „ÆãTÊãë¬ (dÊã)d’äªÓ”’äŸäÐÀ . ,Ÿä<ìã Àœ°ÿÕþ êä ´®äL®ä€® $¸ä,¾ä +0ü®ä6„ÅäÅ® W<Öä$ßä üÅä‡Éü áÊü²â¸üãâ‡ü›ãÏü‡äc¼¯ üˆâ»Ï,¿áÐè,Îá°ÿ<éá¶âÞÐ˳þë4çâ�ó° ›Æ£l°ÿŸãó° ,œ± Lòó°  ÞÐ$‹ä³þ×ñ sű |µóA·°± ºæ³¾Ñ ­ Ø” ÊrPÐÀ ³ûÀ �Ûª \”¬ èë¬ ¥ÐÀ ]€® Å® Ö,·ó̤ód¤ó ‚$±ó8.¬ÖódÝó µ4ÖótÝóćô|Žô ´4‡ôŒŽô, ô�ô _Š$Ôô àdóô Ú×¼óôD€õ â 0 T€õ\¶ô Ï+ I  dŽõÚ×ÜŽõD›õ Ý0 $¤õ  t›õ3  ´Ëõ„Ëõ Ó $Üõ $ÜÇõ Àœ°ÿÒý•‹t†öÅ�Ćö•ö ¹0 $™ö L•ö$Ïö,òöüÏö)œÔö ƒ>Dèö<üÔö$ø¿Ïö*  �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw°ÿÒý®x}‰üÏö*m°ÿ D‡÷¬‡÷T�÷ë¬ (d�÷Àøö[ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÏïÒýhv �%îÍ æÏ ŒŒÃ´Ò÷LÒ÷€® $Ü÷,â÷+d²÷ Àœ°ÿÒý;Ž[,…øüÒ÷9Œé÷ è—Dû÷<üé÷"‘øÊ üˆò‰ü™óøüÇóÊüõóœüÏôÝüÀöÑ·¾Å*îÍ üïò»Ï,¤òÐè,³ò ö�4Îò££ƒµ¦Òû§óAûO9ѸbÜ[ $�óÅ· ðØ¥DËó†‘,ùóřǙș­É™Ê™àË™óG*¤�R{9 Þ$®ôšq®Ð‘®Ð2Òýà‡Ð•°ÿDÄöÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^æÏ °ÿTîÍ › ÖÓ Ç†‘Á‚æÏ ‹°ÿòÂó° Üñ ű  †‘ª ãóAæÉæ›®ã÷§‚¨—»î start_idÁ-Æ 9Ž£Ø ÓÈ ç‡É ¹µÉ ’»Ê ªË «îË nÙÌ  «Í ÀèÍ ‰ë¬ ¿ËÐ —€® ù‡Ò ‡üûÿ(üûÿ! ¯,�€&<Å€ü­€ \²€ Ê$­€,¾€;ܲ€üÖ€÷ ÌÒýÛ†Uÿœ¬ü­€¡<΀ Ç_°ÿÒýÛ†Ì–Ú ¤Ú ¡lü΀€Ô„ËüÚþúüîÿæÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw°ÿÛ†üÄÿ»Ï,þþÐè,�ÿœ¬,¨ÿö�4òÿîÍ sÈÓ �ÔÚ KHóAJ–`LÉNò�Ù ØÙ ÏÂÚ m â€LÜ€'$óƒ £»Ø¥ü�„&ü�„  Å $°„ &$Ó�‹»,ü� œ¬üü�",—‚ ë 2<—‚,¤� œ¬l¤�,ª�àÞ  -<ª�ü��"œ�� ÃC "üü�F\´‚ 駯 À‚t´‚üß‚&  /$²Ýüü�Š4Ø‚ ÷Wz =üØ‚.ô˜ƒ„˜ƒ Â$©ƒ4¯ƒ ,̹̈́üÀ�„üï�Õüуr Û†Û€ÔÚ ñÒý×€Äô€~ø4ó�ØÚGã²ÝØ¥mœ¬Lœ¬U¬ºg–`Kœ¬—»cÑ o¾»Ã ¢†Þ ºàÞ fàÞ +Ëß  ôß çÑà ’…á c _ref__inputÁü¾Œ(ü¾Œ! ±,àŒ&<ˆ�üðŒ \õŒØÙ $ðŒ,��9ÜõŒü™�ö Î–Ú ¤Ú üðŒ <‘� Ç_°ÿÒýÛ†Î–Ú ¤Ú “`ü‘�ÿ–�Íü�‹ùü±Œå«Û ü‡Œ»Ï,Á‹Ðè,Ћœ¬,ë‹ö�4µŒîÍ ÈÓ ,¯å ìGóAI–`KÉMž†ä ¢ØÙ m�å ¥�LŸ�'$µ�£»Ø¥üÑ�&üÑ� †Þ $ò�$$”Ž‹»,½Žœ¬\½ŽÃŽ ì1,ÃŽ,ç� œ¬\ç�í�äè  -,í�üÓ� œÓ�Ëß A ôÚŽ„ÚŽ…á $ëŽ4ñŽ*��ÎÀü�Ž…ü°ŽVü“�r Û†ž�¯å ÷Òýš�Ä·�ç_4´ŽØ¥¸œ¬7œ¬@¬ºL–`•œ¬—»°Ñ U¾»�†Þ äè ³äè yËß W…á 7ââ ȨlȨD˨ ö*T˨+Ìà¨dà¨ÓÈ $í¨,ó¨ +°¤À¨ ¥´ +œ0²Ý6œ'^ üà¨.„ú¨ „Š‹©¤ú¨üà¨:L�© ŽR\�© ©Ïüõ§« ,°¨»Ï,†¨Å· ,�¨°ÿœ¨Xó° rú ½™ËºÖ ?ÖÓ HUóAWˆCY”Íì ¼ÓÈ ‡¥´ \öí )®î ø”Ï´\Ô´ ²$Ï´lÔ´¼Ï´ å´&|ü´ †*›†ˆ¶ÌŸµdŸµÓÈ $¬µ,²µ +0 üŸµ;„Ƶöí V×µ¤ÆµüŸµclèµ �L\öµÔèµ±ÐüÕ°³ ›†Lϱ»Ï,ó°Å· ,‚±°ÿ™±\²±U‰©ï 輅 ÖÓ UóAWˆCY match_indexÁg­Œ†*›†²ð ÓÈ ~öí G¬ò ¸¦¶Â«  †« 08À¦¼Ç« æô *3�¦åÉ…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàŽ™�þX] †Ëõ ox°¦èÏ ää’ébaseÁÏd�žä`f½™°ÿåBåB RandomStateÁæBk0ÁëçBk1ÁëžQ �Ñ*á3�þœ¡ †Èö  ³¼˜¦ìÐ �ª †�ª 0 9°¦÷Ñ •ö¿† *  3ø¦»Ô(Þš †Þš1 :¸¦û×µ÷ †µ÷0 9ȦÍÚ�¦¿Ü ¨¦íß ø¦þâ  Å™Ç™È™­É™Ê™àË™óG*¤�R{9 Ëõ_d †æú v  (¦ã¼ ‚   ¦è¼¦ç¼  % 5 EUeuÏ�ÞûóêÅ· ò« �œ± –« bœ± kËõ < Ëõ HÈö Ô Èö à�ª( �ª4•öÿ¦ýÞšÙ Þšåµ÷¯ µ÷»…óŠŽsóŠ|aóŠjæú P æú \âíæô ‹æô Ušö $Û÷ ®™ø ô¿†½�ù ŒÎù Tó‹ó‹ó‹å»û ɵ÷Þš •ö�ªÈö Ëõ %« ,« 3(§ê¼ ’ ²Ý ¸§¶Â« îÝÀ§¼Ç «   îÝ�§åÉ Ëõ   îݰ§èÏÈö  îݘ§ìÐ�ªîݰ§÷Ñ•öîÝø§»Ô(Þšîݸ§û×µ÷îÝȧÍÚîÝ�§¿Ü îݨ§íß îÝø§þâ  æú $îÝ îÝ    JW�úi r²Ý!¼ú“™Óú§ ­!³¹Â§ï¼’Þäë"­àùÅ· ·á ö€ �ú îÝ 7ƒ‡ @îÝœ± %îÝœ± îÝðùý ùîÝÚŽþ ãîÝÄ£þ ÍîÝ®¦ý·îݘÊþ ¡îÝ�ßþ ŠîÝkóŠtîÝVóŠ_îÝAóŠJîÝ, §ÿ 8§ÿ A²Ý-¼ú6@œNƒ \‘hq œ± îÝRœ± îÝ4ùý îÝŽþ îÝø£þ îÝÚ¦ýîݼÊþ îÝžßþ îÝóŠîÝaóŠîÝDóŠîÝ'óˆ îÝ Óúô«´1²ÝÁ§°2²Ý½£¬3 ²Ý¹Ÿ ¨4²Ýµ › ¤ ²Ý±  —  5²Ý­  ’›6 ²Ý¨Ž—7²Ý¤‹”8 ²Ý¡ˆ‘9²Ýž…Ž:²Ý›Œ ²Ý m;²Ý  ÇÖ’çö€ ôø€ ý²Ý±²Ýº²Ý›²Ý¤²Ý…²Ý޲Ýo²Ýx²ÝY²Ýb²ÝC²ÝL²Ý,²Ý5²Ý²Ý²Ý²Ý ²Ýì²Ýõ²ÝײÝàËl¥þ æú ¤¥þ$³þ «XËõ54³þ-<›þ  þàËõ ßþ<ßþáþ Þ*,áþôÈþ     6  ü”þ]ü�ÿ  “üŠÿ& Å™Ëõ üúþ6 æú  ·ÿüøü¿Ôüºþ7 ¡ýÐèLŒý—ýæú Ÿ æú ÃzËõoL ËõiÆ£8æú ÍËõði™´m¦ÁÁß� !ב °l‰ƒ æú ´‰ƒ4—ƒ ñWËõ5D—ƒü§ƒ! <²Ýü‰ƒ@4 ƒ ÷W Ëõh@ü ƒ)LÓƒãƒÕüÀ‚£üõ‚nê‚ÐèLÕ‚à‚ù• ù‚řǙș­É™Ê™àË™óG*¤�R{9 ù• 0ó“ Q²Ý�™´…¦‡É«• yó• 9l÷… æú ¤÷…$…†ß� /4…†ü“†! =²Ýü÷…>4Œ† ÷WËõ_=üŒ†)L¿† é†<é†ë†ב (,ë†ôÒ†     6  ÷†Öüª…Íüß…˜ Ô…ÐèL¿…Ê…Ëõ,ã…æú eó“ †²ÝP昔 ÿÆ£ÏS™´W¦Yœß� Å‘™ ‹ב :Ä£‘  ´£‘ Ù°ÿ'üŒ‘0Û,›‘(_Á”ß‘  „ß‘ Ù½™'üÅ‘-Ü,ב(_Á`°â™H°ô™(°·™ “°¼™—2Ëõ>˜” F“óŠ›óЇmwó‹Çó‹ª(±¾™ >²Ý`±â™ ?²Ý*îÝH±ô™ @²Ý *  6 îÝ�¢¤é¯´ ¥otÐ±Ù™ë ­à÷˜” ÿ·á²Ý²ÝîÝ óвÝàîÝè –ðóŠøUœcnóŠîÝc –îÝ2¤é�(²�¢ A²Ý`²£¢ ²Ý»Ï+îÝ ²µ¢ B²Ý Ðè+  7 îÝŸ¤¤é±¶¢§puÒ²†¢¢í ­àù ű ·á ²Ý²ÝîÝ »Ï²ÝèîÝð  Ðèþ®¥ eœs~�¥ îÝs¬¥ îÝA¤é�(Ò¸í C²Ý`ÒÝí ²Ý»Ï+îÝ€Òïí B²Ý Å· +  7 îÝŸ¤¤é±¶¢§puÒÒ½í«í ­àùºÖ ·á ²Ý²ÝîÝ �¥ ²ÝâîÝê  Å· øÑ¨ _œmx�¥ îÝmϨ îÝ;¤é—,èò„èòDîò Å*TîòD”ótŽó'Ÿô ô¾›†D½ô"»Ï¬½ôTÆô ´"0 dÆôdåóTåó Ã\»óÔåó   ,  þóü½ô3ÜÓô ¢ Ê  ìÓô,  äõ täõDèõå¿( Tèõü’õ*ü’õ  ÔD³õ  &üŽõ/ Àœ°ÿÒý (¼Döõ#»Ï´öõ\ÿõ²ð #.lÿõüäõ(t­ö<²ö ‡$­öL²ö”ªö Àœ°ÿÒýç¼dåöTåö„« ”àö áö& (MdŠ÷TŠ÷„« ™÷ t™÷D�÷å¿(T�÷ü‰÷ -üàöH -üàöj - ×÷Œï÷$Å·  $« ,�ø!<€ø”¬  L!*!Äï÷äì÷ Àœ°ÿÒýŽø ƒüÊñÄüÖò¸ü‚óŒü�ôË%îÍ ü¬òºÖ ,êñØ¥Dùñ†‘,•ò\Úò †‘ˆ,†ód«ó߯£®›†NsÏÏ,Òý‚H·Íb°ÿ~9Æ£#uÔ¬·ÍÆÆ£—Æ£cÆ£/°ÿ�ó° ¿œ± á»Ï'»Ï0Å· 9Cã÷G‚J start_indexÁY÷O¾¾„ Ù Щ ïÙª m„« IЬ Ë忆€­ d²ð ý¹® ·„« a„« êå¿Á”¬ ¥ľ•  ´¾•µœ !ü§•0�,¶•(_Á”ú•  „ú•Ÿ� !üà•-Ž,ò•(_Á (×ä™'XײŸŒ¶°ÿ % †°ÿ7?x×€�îµ°ÿ`ב�îµ½™>C¨º OWÎ ¬á[` †½™rz ¬×è™6 ¬$×é™¶kqx µ÷†ßþ �—ó° .©ï °ÿ@½™+ó° –°ÿŸ×‡³t__self_1Áj‡³Ù¨º í¨º °Å» ™(Øë™'XزŸ Œ¶°ÿLTD²Ý2 >îÝ„À¼‘–m£xØ€�îµ°ÿ`Ø‘�îµ½™äìE²ÝPXF²Ýd îÝW _G²Ýk w  îÝPV¤édjÈ Í ´ ¹‡�–H²Ý¥« Êg½ÃÌØð™¸èîõ­àßþ  ·á²Ý&ó° ‡©ï r²ÝA²Ý¢îÝ«²Ý–îÝŸ ©ï «ó° L²ÝƒîÝ^ ó° j¢œ°‡³À¼ ‡³« â–à îÝÂÀ¼÷ó° îÝYï îÝE¤é·Á èÙì²Þ׳Ø*2ðÙ�³Å™Ç™È™­É™Ê™àË™óG*¤�R{9 řǙș­É™Ê™àË™óG*¤�R{9 äü£¨ †ôÄ ºÂøÙ³³%ߨ²Ù+ 4ÐÙÞ³ ߨ²Ù * 3øÙþ³# ߨ²Ù +  4ÀÙ§´ řǙș­É™Ê™àË™óG*¤�R{9 Ú×^c †åÇ  u  ~øÙÅ´%ߨ²Ù+ 4èÙð´ØÚ †ØÚ0 9øÙ“µ'ߨ²Ù+  4øÙÀµ0 “Ú¬Û+  4øÙöµ. “Ú¬Û+  4(Ù�¯ ¹   Ù¢¯Ù¡¯ \Æk¯øwÏÏÞ×ÔžÜÝôÄ ¯ ôÄ »ߨý³ÜߨÖ³Üßߨ°³Ü¹åÇ ‰ åÇ •ߨ³Ü$ØÚô ØÚߨ˳ÜÔ“Ú¤ÚÜ­“Ú}Ú܆Wb ³ØºŽÆ вÙʲ٘²ÙgºÈ 5²Ù¹±É ‡²ÙP¬Û¬ÛìôÄ s(Ú¤¯ È ²Ý èÚì²Þ×îÝðÚ�³ ôÄ   îÝøÚ³³% ߨ  îÝÐÚÞ³ߨ îÝøÚþ³#ߨîÝÀÚ§´åÇ îÝøÚÅ´%ߨîÝèÚð´ØÚîÝøÚ“µ'ߨîÝøÚÀµ0 “ÚîÝøÚöµ. “Ú$îÝ÷ îÝ    &3�úEN²Ý[¼úouÓúƒ‰�•žÚ©¯ÈºÀÇ ­àÕÏÏÞ·áçÔÎ ð�úù îÝ ½Ô îÝøžÜîÝâ•Ì ëîÝ̳ÜÕîݵ³Ü¾îÝŸ³Ü¨î݈àÌ ‘îÝr³Ü{îÝ[‡Í dîÝE³ÜNîÝ.ÚÜ7îÝèâ ÚÜ)²Ýô¼úýœƒ #‘/8 žÜîÝ•Ì îÝû³ÜîÝݳÜîݾ³ÜîÝ àÌ îÝ�³ÜîÝc‡Í îÝD³ÜîÝ&ÚÜîÝèâîÝèÓú±hqI²Ý~dm²Ýz_h ²Ýu[ dJ²Ýq V _,²Ýl  R [K²Ýh  MV-²ÝcIRL²Ý_DMM²ÝZ?HN²ÝU% ²Ý  ²Ý  ]lÈ}ÔÎ ŠÖÎ “²ÝG²ÝP²Ý1²Ý:²Ý²Ý#²Ý²Ý ²Ýí²Ýö²ÝײÝà²ÝÀ²Ýɲݪ²Ý³²Ý“²Ýœ²Ý|²Ý…OèÛì² éãðÛ�³  ÷ôÄ øÛ³³% Žä ÐÛÞ³ Žä øÛþ³# Žä ÀÛ§´  ÷åÇ   øÛÅ´% Žä èÛð´  ÷ØÚ  øÛ“µ' Žä   øÛÀµ0 Ñä   øÛöµ. Ñä   8Û«¯ ¹    Û²¯Û±¯ \Êk ¯øwÞ×þôÄ çߨÊߨ±ߨ™åÇ €ߨbØÚIߨ+“Ú“Úùà éãiÊÝ PŽä1ŽäŽäüÕÞ áŽäÁžß ¦Žä†ÑäkÑäPôÄ ðpá´¾ ¯øùË*2àáç¾ ·¬Ðæ*3(ጾ  Ëᑾ á�¾ AÏPõù\†Þd¯øÛÏÏã·¬´Ëç¼�—ùËÐæà¯ø‚(⓾  ²Ýpâ´¾  ²Ý¯ø+îÝàâç¾  ²Ý ·¬+  7 îÝŸ¤¤é±¶¢§puÒ☾ Ñí ­àù†Þ·á ²Ý²ÝîÝ ÏϲÝâîÝê¾êòËçúXœfqÏÏîÝf¾êîÝ4¤é�“Æ  类  ·¬ü™Æ /,ÁÆ Ðæ / <ÁÆ (  ¼ÛÇ ¬ÛÇ  Ž ì—È  ÷!üÛÇ ZtˆÈ  ”  R5 üˆÈ -ü™Æ «LÀÇ  ­  ½ SüÀÇ „3ü™Æ ÍTÒÈ Ôë[DÝÈ ¤ÒÈ ü™Æ ó<ôÈ  Ç_�»×°Øû Éa|üÈ ‰ë  ÄôÈ øÜ™Æ ô  �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw�»Øû¿z‹ žü™Æ ôm�»#. �É  ÝŒÉ [ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÏïØûbv �%ŸÝ»í Œ ‡® «É  Ä—É tœÉ  ¶$—É E œœÉ  ´É  µÉ #+ *\ ü›Å šjz´5ü�Æ ¦¡¨¯ŸÝ¼íÅ †Þ,ÅÅ §òDÔÅ �»jÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^»í �»1Êë ˆ¡óÅËç ·¬„ò Ç·¬ÐËçð±ªs±ª´¼«›¤»í ­�»�»Æ¨ ß'rÆ ùŽR² Ðæq”é AÍé �ê äÔë©÷ê |Äë 5·¬[ î C·¬iƒï ‘·¬w�»møå°û !Öá †Öá19øåŠÿ "řǙș­É™Ê™àË™óG*¤�R{9 °ÿ_d †ðô v~ å×� øåé„ * ØÚ±É  +3Àåʼn   (å¬ù  Ò å±ù Ù; ÂúG±� OÖá• Öá¡ðô l ðô xýóŠØÚë‡Í óÁ÷ýɰºÂô Åõ Ëó‹O±É 3 †(æ³ù  O²Ýøæ°û !P²ÝÖá,îÝøæŠÿ "F²Ý ðô , îÝ æ×�   @²Ý *  îÝøæé„ * Q²ÝØÚ,îÝÀæʼn  R²Ý)5îÝSY ág kq^d-3 ü  ÌÑ™ž±æ¸ù ÛÍ­àÚ±� ã·áì²Ýõ²ÝåîÝî¸÷ ÷²ÝÃîÝÌÍ÷ ղݡîݪ󊳲Ý�îÝŠ‡Í “²Ý_îÝh ÷ýt÷ý}’œ «¸÷ îÝ Í÷ îÝmóŠîÝ:‡Í îÝ Äý îÝÖ¬û èç¼ù Ýçºù  ".±� 6?I Àèʼn %6øè°û !ÖáÖá,1 ù±ÖáÖáHMU\øèŠÿ " ðô  ðô ,1 ù±ðô ðô  H M U\  è×�  '  8 øèé„ *ØÚØÚ,1 ù±ØÚØÚHMUZboèÇù àHè¾ù ±� ±� "ä¸÷ í¸÷ ö’Í÷ ›Í÷ ¤@HP‡Í ‡Í ˜î ¥¯©€ c”� ÿÆ‚ T,Ì– ŒÌ– LÒ– �‹ )\Ò– (¼Æ– 8茗 àö “— ¤¥— d«— ¤¦,¥—  t«— 4÷–  ÀœÛ†²è½è[  ü¥— "\º—  » ƒ lº— -  í— \í— 4ð— ²å( Dð— üÖ— #„Ü—  ò,Ö—  N  ìÜ— 7  $”˜  Å™ö „ˆ˜ ÖáüÒ— Q 4³˜  ÀœÛ†ééôé㘠\㘠4æ˜ ²å( Dæ˜ ü̘ #„Ò˜ ð‡ ,̘ JìÒ˜ 34Œš  ÀœÛ†–ê “š 4ú˜ ¤ú˜  * Š#‚œ¬…� G<E¨áú˜  ªŠ b$0,¤™ Œ¤™ Lª™ �‹ )\ª™ ⎙ [´Û˜"™Ü.²d¼ž™ ì™ àö ü™™ güŘ Â 4Ó™  ÀœÛ†9ìDì®”š Êüž’ ö}½ü¹– Ût‡— ,3:¬ú˜ tç™ ²×´™“ œ¬,Ì’ …� ,ã’ úŠ T…“ ö 4½– Öá+±� F$è– ö õh Ø¥ÝØ¥æ ?–ìYÖááAs–ì�µ� †²×Û úŠ ÷€‹ ð1´Û:Öák±� †$Ä™ ö –`ƒå  �ì�ìêÆ ®ŽyHî�ìqâ�‹ {¤¦ù† £²å]ð‡ :²å~ð‡ [úŠ ùôŠ àªŠ ›�‹ O™Ü©úŠ úŠ #Ä­­   ´­­ µœ !ü–­ 0Á,¥­ (_Á”å­   „å­ Ÿ� !üË­ -Â,Ý­ (_Á í ™ü †™ü/7(íõ áíúä-Øû9 ØûD™üˆ ™ü“`jΔ °(îü  ²Ý î  ²Ý™ü*6îÝaf¹§sxejŠî�椭థ• ¸·áÀ²ÝȲݸîÝÀ ¸• ˸• Óôœ × îݹ§! (ïÂ(`ï–  ·º²Ý Y ç ïÆ¨ïí  ‰ºã€$ †ã€ 6 >pï« ̹`ï» ̹8) ç»Èïïä®×°$‚±08o ç� ç 7ïÇôÄÊÑØß ™üí¸• öþí²Õ×°ÝóŠYóŠFjV ã€Áã€Êá³²Ý(a‡³>‡³¿À¼ °‡³ ‡³u ­ð´‰¸™ Dó‹‚±›ó‹ú(ðÉ(`ð– ·º²ÝLTS ²Ý1=îÝ„À¼‘–l£¨ðí ‰ºã€ÅÍT²Ý19U²ÝEQîÝ ¹§ &„‰9pð« ̹`ð»  ̹w €V²ÝN VW²Ýb îÝW _X²Ýk wîÝåë¤éù ÿ Æ Ë ´¹Èðïä®×°?H$²Ý3?îÝtzÀ¼ˆŽrœðÎö·½ÄËÒ­àต é·áòúí²á²Ý îÝòô¾úóŠåóŠÒ²Ý6²ÝîÝ ²ÝöîÝÿ –Éœ IJÝu²ÝÖîÝß Éœ ëá³m²Ý¥îÝ…ÁˆÁœÏ‡³¼‡³¬À¼ � ‡³]‡³ã …ÁîÝúÀ¼0€¥ îÝ’¹§AóŠîÝ  –îÝú¤é\ô¾îÝDÀ¼m(÷ƒ!&p÷ˆ&£»Ø¥$ †Ø¥6>@÷¬$‹»™ ÷÷‡!x÷æ"â«Õþ$ †Õþ6>þ ÷èùÕþl# ÷‹÷ˆ!ÿW]dk Òýy Òý…� ÕþÞÕþæ ;CÕ� �Ø¥˜Ï‡³#‡³{‡³Ëç ß †¨Ѩ d(øŠ!&pøˆ&£»Ø¥JRY²Ý19Z²ÝEQîÝ‘–¹§£¨€…º@ø¬$ ‹»Û ã[²Ý0 8\²ÝD  P  îÝ"(¹§6 < ƒ ˆOxøæ"â«Õþr{²Ý3;U²ÝGSîÝ»Á¹§ÏÕ†‹èø�!� ­à%ë© .·á7?ÿ© ó²ÝP²ÝîÝ  ÿ© ’ª ¸²Ý€²ÝÊîÝÓ ’ª ßÕ� z²Ý°²ÝŒîÝ• Õ� ¡Øœæ‡³ ‡³C ‡³âß° îÝù¹§-¯° îÝx¹§>ÿ¯ îÝó¹§Oƒ•>†(ƒ�>Õþÿ© !+ †ƒµ>(„—> ] ²Ý„µ>!îÝLQÀ¼^cPp„œ>ˆŠ­à–ÿ© ž·á¦²Ý®îÝž  «�´ ³Ôœáë‹´ îÝàÀ¼þ(‡‚?‡‡?Ž&+°ÿ8ó° @IS(‰�? ^ ²Ý‰ß?!îÝLQÀ¼^cPp‰”?‘Š­à–ó° ž·á¦²Ý®îÝž  «ø¶ ³Ôœáëö¶ îÝàÀ¼þŠß?  ÷8Š–? ‰Š�?“-°ÿ9bGÕ· s‹¡?•‹Ÿ? ó° &0Œß? ühÿ3 Œ£?DŒ§?—&1ó° 9 ù Dø¶ „Uƒblº¹ ®�ß?&�²?›H�©?ó° ó° ov5î BLPŽ´?  î°ÿ (- Å™�²‚²ƒ²LessÁ„²…²†²‡²ˆ²‰²GreaterÁв%ÑÓ¡yû޾?�ºÅ™Ç™È™­É™Ê™àË™óG*¤�R{9 µ¼  ó° ó° µ¼ &0î >I‡¼ T�ß?(- î>CK�Ã?Ÿ�À?µ¼ ó° ó°  ø¶ �ø¶ •9î FP‹¿ ¿31ÁÜËA´ÐAá@-  ËAAá\-láü¯A8â,ÃAª,ªáµáÀá_ÁÔŠB¤‹Bá ¢B5 2á0eü…B@#  …BI$ £BüìA9ã,ýA Æ£§=á"á_ÁÔÈB¤ÉBá àB5 2á0eüÃB@#  ÃBI$ áBüªB9ä,»B Æ£§=á"á_ÁÔ‡C¤ˆCá ŸC5 2á0eü‚C@#  ‚CI$  CüèB:å,úB Æ£§=á"á_ÁÔÆC¤ÇCá ÞC5 2á0eüÁC@#  ÁCI$ ßCü§C:æ,¹C Æ£§=á"á_ÁÜ„D¼„Dæ žD/ 2æ0_üæC:ç,üCÆ£˜.˜æ£æ_ÁLàJàJ èJ´ÔJ ‰ éJðJéüÏI¡°ÿ\ôIæI…„ˆC=ÌÃM”ÈMÓµ $ÃM¤ÈMüÃM, „ßMçõMêü‰Ml,³Mó° ,©Mw4YçÓµ Ÿ4¡P|¡P¶Pëü”O¢,ÅOó° ,»OX5y} ¯Pƒë�}ó° {Ñ‹®ü±Q5̱Q$±Q $”¶QÓµ /¤¶Q ÉQW ÌÍQâ åQü‰Qh  Ô‰Q é˜' ðQ÷QìüÊP­°ÿ\óPó° ,éPãáó° á!E¦âüïR2ÌïR$ïR $”ôRÓµ /¤ôR ‡SW ´‹Sã  SüÇRe  ÔÇRüÓ –% «S²Síü‹R§°ÿ\±Ró° ,§Ráßó° ß!E¤ãüªT2̪T$ªT $”¯TÓµ /¤¯T ÂTW ´ÆTä ÛTü‚Te  Ô‚TüÓ –% æTíTîüÆS§°ÿ\ìSó° ,âSáßó° ß!E¤äü¿V3Ì¿V$¿V $”ÄVÓµ /¤ÄV ×VW ¼ÛVå ñVü—Vf  Ô—VüÓ –% üVƒWïüÚU©°ÿ\�Vó° ,÷Uáßó° ß!E¤åüÚX3ÌÚX$ÚX $”ßXÓµ /¤ßX òXW ¼öXæ ŒYü²Xf  Ô²XüÓ –% —YžYðüõW©°ÿ\œXó° ,’Xáßó° ß!E¤æ̰[”µ[Óµ $°[¤µ[ü°[,„Ì[çâ[ñü€[b$¡[ó° ,—[v3XçÓµ ž¨™ŸÁ ÈÆÓµ Ä È[ÈÅç Û[ËñÉÆó° Ä8ó° ,Þÿ$ç̬^”±^Óµ $¬^¤±^ü¬^5 ÌÈ^âü¬^9 ä^ë^òüû]p$�^ó° ,“^s :‚âÓµ ȬØÉÏñ øöÓµ ôò Ä^ø õâ à^ûø ýòûøó° ög•ó° ‰:ƒâ̯a”´aÓµ $¯a¤´aü¯a2 ´Ëaãü¯a6 äaëaóü�aj$ aó° ,–as :‚ãÓµ ȬØÉÏñ øöÓµ ôò Çaø õã àaûø ýóûøó° ög•ó° ‰:ƒãÌãe”èeÓµ $ãe¤èeüãe2 ´ÿeäüãe6 ˜fŸfôüµej$Ôeó° ,Êes :‚äÓµ ȬØÉÏñ øöÓµ ôò ûeø õä ”fûø ýôûøó° ög•ó° ‰:ƒäÌ¢i”§iÓµ $¢i¤§iü¢i3 ¼¾iåü¢i7 Øißiõüóhl$“ió° ,‰is :‚åÓµ ȬØÉÏñ øöÓµ ôò ºiø õå Ôiûø ýõûøó° ög•ó° ‰:ƒåÌ‚k”‡kÓµ $‚k¤‡kü‚k3 ¼žkæü‚k7 ¸k¿köüÓjl$ójó° ,éjs :‚æÓµ ȬØÉÏñ øöÓµ ôò škø õæ ´kûø ýöûøó° ög•ó° ‰:ƒæp�ÿm(�¸m  �½m£-ã€9Éœ Aj—³rYc‹µ�(‘¿m _²Ýp‘ÿm ` ²Ý)5îÝ`e¹§rwdi‰‘Äm¥£­à¯Éœ ··á¿²ÝDzݷîݿ˿Ǘ³ÏðœýË¿îÝý¹§’Èm§’Æm Éœ &0p“ÿm&“ÓmªH“ÊmÉœ Éœ ov5î BL(–’ a²Ý`–ö b²Ýïò*îÝ`–• c²Ý ïò*  6 îÝœ¡¤é®³ ¥otÏ–—¯é ­àõ á�·á ²Ý²ÝîÝ »Ï²ÝãîÝë�¥ ó»ÏûWœep»ÏîÝf�¥ îÝ5¤é�„õ-tõ- �üõ-%T†. ºµ“ID‘.¤†. Ÿ. .ü�-�ŽÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwá�ØûÌÑ-§òD¸- ݃݃ ¨ "¨Öû @„ü ݃ì݃ò üËWr   tËW<ÐW £$ËW LÐW”öWûó,‹X   d‹X$‘Xͤ 8  4‘XÜ‹XD˜XÙ¥ <$¡X  t˜XäŠX  üËW\tçW ºã¿ 2 üçW@+4µX Ó_ÖáÛ†S DµXYüËW‰<ËX êWö … LËXÚXüäUö ÙX ”6$ÒV¤ú ,•V �ƒ,¤VÓ¤,¿V¸÷ Öá‡á*»ÏþÐèÞœ¬UÙ¤‘Ù¤ÁÓ¤í­yóAy–`|çàþ iͤ٥ff ³߀ °Ÿ� OÓ¤dªi$°iͤ,ªi4°il©iü’i%T—i  $’i,¢i6ü—i ü’i.4¸i Ó_³¶Û†XD¸iÆi—ü�h¶³¶lúh¤ú ,½hš‚ ,ÌhÓ¤,çhÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw³¶Û†œ¬Ù¤M�óA�–`“Ëͤ…¸„ Vð„ %déz$ïzͤ,éz4ïzüÕz!œÕz ´C#ü€{# °©{šü­yüüÌz]°°¾¾´é¾üµóAü¶ÛËü‹½õìÆoмªz¤ú Dçyš‚ ,ùyÓ¤,—z³'³'É�µ'–`«¶'é�«„z¢®é£ˆwÐzÙ¤VlóAo–`rÛË< ͤ›̇ z3”ĉûó”؉ûóüÉ( 4±‰Ðè4¹‰Ðèt…Š<ŠŠàþ $…Š LŠŠü…Š,t”Ь€  D4£Š,«Š 씊øù…Š- �á Q $  0 Á+ü…Š- mÖáüÿ‰3ú±Š [´Û¤" �%×… ´Û82ÇëŠàö óŠ lÁ�,Ç�àÞ ,Á� <Ç�$ÓŠ Å™‹¢DЊ Àœ³¶Û†|ÉŠ2Ò� dÒ�4Ö�²å( DÖ�ìÁ� ˜Ž l˜Ž<œŽú¢ ( LœŽ·Ž d·Ž4»Ž²å( D»ŽÅŽ dÅŽ4ÉŽ²å(DÉŽÐû·Ž ¶ýüü�dTü� ™… ØF,ü÷�j Å™‹¢üô�n Àœ³¶Û†{.2¼»‘\À‘ ¡$»‘,Ì‘ ”À‘6 Œ’$ lŒ’<�’ú¢ $(#L�’l«’,±’àÞ ,«’&<±’º’( dº’4¾’²å(('D¾’Øþ«’% ¶ý&'üð‘eTð‘°‘ #Æ%@"&üë‘k! Å™‹¢"üè‘o Àœ³¶Û†!õ/2Ôî›,�œ †Ù¤,î›,<�œl›œ,¡œàÞ ,›œ.<¡œªœ0 dªœ4®œ²å0(/D®œØ�›œ- ¶ý./üî›I$–œ Û… ,Ö-G+ü–œ!lΜ1 §-üî›nDÅœ ß+h17*¼ÅœüDêœÙ¥*L,óœ )|êœÜ��<¡� ¤$��5L¡�TÏ�6)ü��Kt¸� ½5W4Ç�684ü¸�"ø„��L �á4Q3 $7307!"ü��L93mÖáüð�2: d0²Ýü��”4é� ÷Wö 9S:>2#üé�:…Ú�83[´ÛÇ "À� 8.2à,Ëž >2|Ëž <Ñžú¢ >(=$LÑž1™Þ] <=èž A lèž <ìžú¢ A(@%Lìž9™æ] ?@‰™Ý] ; <?A™þ] B;·ÍI™ˆ] C;·ÍÉ™¬]  ù±›†›†BI™­]CQ™º]D&8?D')ù™ç!]E ±šñšè]ñ‡è] –güƒŸ4e2²ÝH(4ù™Ë<]G Å™‰¥‰¥ ArgumentsÁ‹¥templateÁûcŒ¥Çûcg‡@#éó Hù™‹}]ù™‹ ] Ê[›†›†E!™¬]BQ™²]CY™¾]G³FL,ÚŸ K2tÚŸ 4àŸ²åK(J*DàŸìŸ M dìŸ 4ðŸ²åM(L+DðŸôÚŸ IJL I,-É�‡T]  ¥´ ª5f0²Ý¶5N)–  R l–  <š ú¢ R(Q.Lš ,¥  U2t¥  4« ²åU(T/D« µ  W dµ  4¹ ²åW(V0D¹ àˆ¥  S ¶ýTVü‹ 7 T‹ °‘ QÒS@P1&ü† = O Å™‹¢Püƒ A Àœ³¶Û†OÊ 2  üŸˆ«ü¬‰žüõ‰Õ0 7 > € „æŠüÞ›ìüƒ�Çßæ í] ù™ý¬] ù™Ü¿]X×… ü€‰!¤ú ,ºˆš‚ ,Ɉœ¬,äˆÐèì Ðèá ÐèÐè ÐèL Ðè? ö ù‰ýê™ ‡áÜ »Ï , ´Û5 Öáy $Áг¶· ö  I ù € –ìš ³¶M ‹¢‡ ›†I –ìc … Ä + –ìE  –ì N ³¶) ‹¢] ›† –ì- … š  Ñ –ìë Ù¤Lâ›Ù¤,Ù¤�Ù¤@ … µ ì–ì Ø¥ö ,‡�ýꙇáÜ»Ï"œ¬ÿ´ÛÖá�²Ý|·Í·Ín·ÍÑ›†–ì·Í£›†Ó–ìí·Í˜ ·Í‹ z±š²š³š~´šµšNeÁ¶š·šÕÛ¨±vXç]!™à]ÊřǙș­É™Ê™àË™óG*¤�R{9 ë� †ë� ÈgΖìè§–ìÁk³¶Q‹¢…›†G–ìa… Â)–ìC–ì¡óA¤–`§fcacheÁœrcacheÁš’œ Æ ¯Žö’‚ revsearchÁ½)‚x 2Æ h 8ŽÝ 9left_valÁ¦B right_valÁ¥C¦ËE.&àþ 6¬€ �áÞÀ� åàÞ õ²å{ú¢ '²åö²åŰ‘ ƒ«’  ú¢ ¾ àÞ œ ²åh °‘ & ¥• ¶ àÞ ‹ ²åW Ü–  ¨— Ð Ù¥¤ ”˜ q Ò˜ ; �á ‚š š À�  ú¢ ' ú¢ å Äœ q ²�  Úž p²å²å䥴 Ÿú¢ g²å6²å°‘ à ( ɱ g ²Ýh ú± h²Ý¤ú +îÝ  �² B²Ý š‚ + îݰ §²  ²Ý ¢‰ +  7  îÝÛà Ýgñöâç°µ ~ ƒ α»8­àE ¯ˆ Q·áZ²Ýc²ÝSîÝ\ ¤ú h²Ý5îÝ> š‚ J²ÝîÝ   ¢‰ /©³ 8Óœáìë² îÝታ îݯ§³ îÝ}×± 䳤ú l賚‚ T÷³¢‰ ü ´# ¬Åæ×… Uÿ¤ú š‚ ü•´/<˜´ ¹¬ú´ е •´„ü˜´,Ê´«ü¤³¦üÒ³x³¶lº³ ¯ˆ L¬³¤ú  š‚  ¢‰  µµ þš‚ 2>é¾_óAVÛËM—­µ ¨´¤ú ,¶´š‚ ܨ´T«´¸„ C3,½´Ä«´ô¬Ê×… §´ µµ 圬,¡´¤ú ùš‚ –`é¾\¤ú óA,𳚂 @¸„ É_ref__reÁûò(¡Í» ²Ý˜¡ó» b²Ýûó+îݘ¡Œ¼ c²Ý ûó+  7 îÝŸ¤¤é±¶¢§puÒ¡Ò»Àí ­àù �ƒ·á ²Ý²ÝîÝÅ· ²ÝåîÝíѨ õÅ· ý[œitÅ· îÝiѨ îÝ7¤é“˜¢ó»ûó †ûó08˜¢Œ¼ûóú¼ *3(¢Ô» ¼¢Ù»¢Ø»AÂP�ƒ\µ» dûóáÅ· éûó´Å· ¼�—ú¼ ú¼ àû󂈣‹ìõù †õù08(£ãë ãèëÆ/݃;Øý Cõùˆ†Þ�\f¨¿ ­(¤êë ²Ýˆ¤‹ì ²Ýõù+7îÝch¹§uzfkŒ¤ïëȧ­à³Øý »·áòÝ˲ݺîÝ †Þ͆ÞÕ÷œœÂ îݹ§$<¶ñ" !DÀñõùìÀñTÉñ³Ü.DÔñ¤Éñð‹Àñ  �%ŸÝM$)5’GôÀñ mïò"!, ¬öñõùüöñ*,™ò¨¿ /<™òŒÝñ[»í æ" �%ñü »í 8 olÉò\Éò ®$öò Å™äüüÉò2Lìò –W:|ìòüÉòf¼‘ó ›L,©ó  ô‘ótÐó º-üÉò–TÅó •k6 ÔÅóüöñøL®ò ·‹T ü®òÀ¼…ô¬…ô”é  ü…ô%<�ô � <$¥ô  l�ôüöñµDüó ¹¯\üüó/2 üöñ×T¹ô³Ü ZDÄô ¤¹ôø�öñØ íà  L !& 2üöñØ mïò !#.  ÎôŽÍô [»í ­"ÎÅ .ÇO<ðô" <ùô!   üÛô&|àô ¼$Ûôh Küàô!üØô* Àœá�Øû ‡õ! "ˆõ6!>KX"`BL}ü¼ðÌŸ ¯!ÀÐ"º Vü²ñÖÃÊÑPüèñ  l #ñü ÌŽñØý ,æð§òDõðïòhÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^»í ïòQŸÝ‹†Þ«¢»í «ïò,ïò<ìñÚÏ xŸÝµ†Þÿ õù †Ñ ¨†Ñ !õù*†ÞJ¯øÿ¯øX¯ø“¯øÙ¹Å Àù¦B±ªª±ªÕz»í ƒïòÙá�ïòRïò9Âɇ¨ ‹­HöÆ ÈŽL ¼H# Æ  Že ¤³Üíà ܨ¿ CÎÅ êŒÆ ÓÊÆ �üÆ rÍÇ )€È ý”é Î×È ³”É ~³ÜDíà õùŸÎÅ %õù­ªÌ ïò¾õùÂïòÌïòÓ íœ ê„ †ê„/7(íñ Éíö Ì-©„9 ©„Dꄈ ê„“`jôÔ °(îø   ²Ý îœ  ²Ýê„*6îÝaf¹§sxejŠîý Τ­à°ËÕ ¸·áÀ²ÝȲݸîÝÀ ÞÕ ËÞÕ Óôœ é× îݹ§!(ï¾ $Èï¤ ä®×°$‚±08pïð »À›†Àï€ »ÀÓÔÕParseÁÖóר TranslateÁÙód ®�..*Ž“ †›†¥­—œ †ØÙ ®¶@ Ïï f Ï#ïà ך § ꄵÞÕ ¾Æ·Íg ØÙ V›†|ØÙ hí²Ë×°Ô ‡³°À¼  ‡³;‚±ºÚ åàÚ Ï(ðÅ $Èð¤ ä®×°H P$²Ý1 =îÝ{€À¼� ’lŸpðð »À›†Àð€ »ÀØÙ Þæi²ÝNVj²ÝbîÝV ^U²Ýj v  îÝJP¤é^dÆË ³ ¸�ðÊ Ùœ¢©­à·ÞÕ À·áÉÑ·Í6ŽÜ "²Ýì²ÝQîÝZ²ÝFîÝO ŽÜ [í²ú²Ý.îÝ ô¾JœX‡³ÃÀ¼ ³‡³V Šô¾îÝmÀ¼Ÿ·Íîݯá îÝò¤éº(õÇ' $põ™( »Áô‡H Pk²Ý1 =  îÝ{€À¼� ’ lŸ˜õú' �Á•‡ÁÉl ²Ý1=îÝôùÀ¼ nõÌ' â5;B ­àP ì…\·áem •‡Õ²Ý�îÝæ Òå ñ ô‡u²Ý©î݇ ùå “ÈœÖ‡³A‡³Çû—æ îÝÞÀ¼îå îÝvÀ¼!(ö«.  m²ÝöÙ. !îÝLQÀ¼^cPpö°. 犭à–Òå ž·á¦²Ý®îÝž‹´ ¦�´ ®ÏœÜæ‹´ îÝÛÀ¼ù(ùÄ8  n²Ýhùó8  o²Ý)5îÝ`e¹§rwdi‰ùÉ8 룭à¯ùå ··á¿²ÝDzݷîÝ¿ –ÇóŠÏðœý –îÝý¹§(¡®O a²Ý€¡öO p²Ý„K„KK‡Kí ä7ˆKÞüä7‰K«ä7ƒ¢3à6ú�¢‰�þtîÝx¡ðU q²Ý ­­®ÖÞ±ó¬ 4EøôµËŽŸŸ BoxÁ£ó‹¤ô‹ljô²ßk#…#�#ËŽ–š•šýÆÿ �þÓ  ß îÝ�•¤é£©—�$Ê¡³Oðå ­àò Þˆþ·á²Ý²ÝîÝ  öë ²ÝšîÝ£  ûì ²ÿï »bœp{ßï îÝqýï îÝö¤éš(¢îV r²ÝÀ¢ßZ s²Ý„K„KK‡Kí ä7ˆKÞüä7‰K«ä7ƒ¢3à6ú�³�þzîÝx¢•_ t²Ý ñ‰*  6 îÝìñ¤éþñöpu ¢óVõ; ­àH ¢‰T·á]²Ýf²ÝWîÝ` œñ l²ÝêîÝò  ñ‰ùó  ¶œÄÏÛó îÝÅ÷ó îÝD¤é‚t‡‚ ’!ü‡‚%T˜‚ ǵ“MD£‚¤˜‚ ±‚²‚ü¢���ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÞˆ©„Ìã�§òDÊ� Ó‘"Ó‘+¨ #«êô Kšõ #Ó‘ñÓ‘÷,ç d˧$ѧͤ,˧4ѧÜ˧DاÙ¥C$á§ tاDó§öë ló§ Þ"öë 1"'ñ‰4�¨ üó§#l�¨ Õd 0¬�¨1,¬¨  £ª LÕ¨ ûì |Õ¨ߨ ¿ËŽ²í  8 ,ߨ 㨠Dû¨öë tû¨âø +"œñ üû¨+  Þ"œñ Q  $T“©  ê"ÄÄÅ­àÉó¬ Œ¿‚ÄÆk"`ËŽ²í b k4Ÿ©ªDŠ© ¼âñ  ú 5  䊩,ˆª  ¬ù©tù© ÎËŽ²í H -4˜ª ú ¤ªüô¦°6 G”7ü¿§åüŨßü$°§¯ï ,œ§Ó¤,£§Ù¤ÞÙ¤Ïùó f«ó oßï �œ¬Høû Lɨÿï è4ò¨ âñ RÛó ‘«ó šßï º ËŽP øû \œ¬õ“øû À\Ñ–`Ó–`³Â¤ Ç � w ͤÅÙ¥ âø Z°ù ©ú ¤âø M»û òû üäü ,Áý 0øû ðd™®$Ÿ®ͤ,™®4Ÿ®l˜®ÔŒ®4‘® ®$Œ®2¬‘®¬®—ü¼­p³¶lô­¯ï ,à­Ó¤,ç­œ¬‡Ù¤¹'–`)YͤãÀ‚ ®d†¶$Œ¶ͤ,†¶4Œ¶l…¶üðµ)|õµ °$ðµ3$”¶üõµ$Ÿ¶šüù´¦åµ¯ï ,ªµÓ¤,¹µÕÖ$˵œ¬œÙ¤Î2–`4ɾ7rͤ·„ Ò,°¼   L¸¼ûì |¸¼¼©ú .,¼,î¼  dî¼$ô¼ͤ;4ô¼üÚ¼!œÚ¼̇ C",�½ü…½# …®½ ­½ü³»û!1 �5ü¬¼‚üѼ] ……¾¾ˆé¾Û‰óAÛŠÛËÛxâ ÜAì³�œŽ¼¯ï Dé»Ó¤,û»øû ïÿï Ï¢‰ Õ¼Ù¤€Ó¤­øû A V–`XóAIÛËU/©ú )ͤä̇ Áøû bÓ¤i ,¢È   LªÈûì |ªÈ´È©ú . ,´È´ÎÈ|ÓÈ º$ÎÈŒÓÈ,‹É  d‹É$‘Éͤ;4‘Éü÷È!œ÷È̇ C",¾É $ÅÉ ü¢É- �  ÕÉ ÔÉ ü�Ǹ1A ¡5üžÈ·üÃÈ’üîÈg ��ëÄ’é¾Û“óAÛ”ɾÛ•ÛËÛõù’?ÔÙ3§¼üǯï D×ÇÓ¤,éÇøû Xÿï 8˜Û$ÇÈ¢‰ òÈÙ¤ÅÓ¤òøû †˜Û€Ej–`lóAÆɾiÛËjg©ú ²ŽŒ �ͤĖ "˜Û±øû ¸Ó¤¿¬‡öLŒö �Ó¤$‡ö,–ö„Œöü÷õ0 š ¤ö­ö¥üˆõ¥ššÒÅ�åËÛž¯ÛÂbé1ºÄmHlßõ¯ï DºõÓ¤,Ìõ„‰ í–`!ŽΑ Œ¤‹,©‹ ¥Ó¤$¤‹,¯‹d©‹ü“‹+ £Ä‹©üŒŠ¸££�Ʀ»ÆÛ§ª¯ÛZ>÷_ácätúНï D¿ŠÓ¤,ÑŠ,ãŠÊ’ æ)–`+ª¯/§ó“ ü㑃 Dæ‘öë læ‘âø +!ñ‰üæ‘!Œô‘ ÔOœô‘,D—’ öë l—’âø  + ! ñ‰ü—’"l¥’°ù M,³’¤¥’2$×’ Å™‹¢úœLÿ’ ûì |ÿ’ ‰“©ú  A ,‰“D¥“öë t¥“âø + "œñ ü¥“( »û K T»“ òû # ,V4´“ ºâñ ¦R,Ç“  Ì´“,Þœ  ¬ÏœtÏœÁý < !4îœ ùœ ¨³ü ‘Ú ; K®5üï’‹ ü˜“â ³¶lË‘¯ï ,®‘œ¬,µ‘ùó T«ó ]ßï }±ùó ï«ó øßï øû Ló’ÿï y³¶4œ“øÿ ïÛó .«ó 7ßï WŸ€ ð«€ ùrøû ŸMÈ–`ʈ Ç  W âø 7‚—  âø ¾°ù �©ú âø Ï»û  òû „àš ®Áý øû Õüº§ƒ D½§öë l½§âø +!ñ‰ü½§!ŒË§‚— MœË§*Dî§ öë lî§âø  + ! ñ‰üî§"lü§°ù M,Ѝ¤ü§2$®¨ Å™ö §ªLÖ¨ ûì |Ö¨ ਩ú  A ,à¨Dü¨öë tü¨âø + "œñ üü¨- »û K T—© òû # ,V\‹© »âñ ¦R,£©  ô‹©,‹ª  ¬ü©tü©Áý < !4›ª ¦ª ¨³ü; K¯5üƨáü器Öጞ§¯ï ,�§œ¬,ˆ§ùó R«ó [ßï {±ùó ï«ó øßï øû Lʨÿï yÖá4ó¨øÿ ïÛó .«ó 7ßï WŸ€ ð«€ ùrøû ŸMÈ–`ʈ Ç  W âø 5‚— âø ¾°ù �©ú âø Ï»û  òû „–¤ ®Áý øû Õ$òÄ Å™›†´áÄ\æÄúÚ$áÄ:ŒæÄ„¤ÅL©Å�Ù$¤Å\©Åü‹Å*d�Å ±$‹Å,�ÅVü�Å%¬¿Å\ÄÅúÚ$¿ÅÐÅ„ÄÅÛŰü‘ÄÊü�ÅZ Öįï ,¨Äœ¬,¯ÄÕÖ$ÂÄ%€ªI€ª…Åž©°N–`PɾS¾¾E¤úÚŽ�Ùd„ª ?úÚ üáÛƒ DäÛöë läÛâø +!ñ‰üäÛ!ŒòÛ‚— MœòÛ*D•Ü öë l•Üâø  + !  ñ‰ü•Ü"l£Ü°ù  M,±Ü¤£Ü2$ÕÜ Å™›†ÖÞLýÜ ûì |ýÜ ‡Ý©ú  A ,‡ÝD£Ýöë t£Ýâø + "œñ ü£Ý5 »û K T¿Ý òû # ,Vd²Ý ½âñ ¦R,ËÝ,ÒÝ ü²Ý&,ºÞ  ¬«Þt«ÞÁý < !4ÊÞ ÕÞ ±¼üÒÚ„; K±5üíÜéü–ÝÀ€ªŒÅÛ¯ï ,ïÚœ¬,þÚž©,™Û(ùó f«ó oßï �Åùó «ó  ßï ,øû LñÜÿï �€ª4šÝøÿ Ûó B«ó Kßï kŸ€ «€  }øû ªXÓ–`Õ©&ו Ç Œo âø V‚— (âø ß°ù ±©ú <âø ð»û Áòû ¥–± ÏÁý øû íüžðE D¡ðöë l¡ðâø +!ñ‰ü¡ð"l¯ð°ù M,½ð¤¯ð2 Lüð ûì |üð †ñ©ú  A,†ñ¬¢ñöë ü¢ñ( âø ,  #  œñ ü¢ñj »û  L  Tòñòû # ,VÌØñ ¾âñ  §R,þñ4…ò  üØñ4,îò ¬ßòtßòÁý <  ! ‰ó Šó  ü¡ïé< L ²5üìðžü•ñõ“ð¯ï ,Ë,Úï�¦ 4õïoùó ­«ó ¶ßï Öøû Lððÿï ]4™ñøÿ ÑÛó «ó ßï :Ÿ€ Ò«€ ÛKøû x5°–`²ª§ µÂ•Ç �#„S âø ‚°ù T©ú âø ¹»û ‰òû m¹ —Áý ãøû Ä Dšþöë lšþâø +!ñ‰üšþ!Œ¨þ‚— Mœ¨þ*DËþ öë lËþâø  + !  ñ‰üËþ"lÙþ°ù  M,çþ¤Ùþ2$‹ÿ Å™‹¢Ìÿ D£ÿöë t£ÿâø +! œñ ü£ÿ# »û  J  $4²ÿàš  m,¹ÿ,Àÿ ¤²ÿ±´ü�ý¯³¶lÿý¯ï ,¹ýŸ€ ,Èýœ¬,ãýÜùó «ó #ßï Cyùó ·«ó Àßï àøÿ êÛó '«ó 0ßï P‰óA‹–`�Éâø ©‚— {âø 2°ù âø �»û _àš f Då‰öë lå‰âø +!ñ‰üå‰!Œó‰‚— Mœó‰*D–Š öë l–Šâø  + !  ñ‰ü–Š"l¤Š°ù  M,²Š¤¤Š2$ÖŠ Å™ö œ‹ DîŠöë tîŠâø +! œñ üîŠ( »û  J  $\ýŠ–¤  m,‰‹,�‹ Ìýбµü߈½ÖáŒÆ‰¯ï ,€‰Ÿ€ ,�‰œ¬,ª‰Üùó «ó #ßï Cyùó ·«ó Àßï àøÿ êÛó '«ó 0ßï P‰óA‹–`�Éâø ©‚— {âø 2°ù âø �»û _–¤ f$º© Å™›†´©©\®©úÚ$©©:Œ®©„ø©Lý©�Ù$ø©\ý©üÓ©6ŒØ© ·$Ó©,ê©,ñ©^üØ©1¬“ª\˜ªúÚ$“ª¤ª „˜ª¯ª¶üš¨•üÉ©f ž©¯ï ,¿¨Ÿ€ ,Ψœ¬,é¨ÕÖ$„©8€ª\€ªÍ©ž©$»YóA[–`]ɾ`¾¾R¼úÚ®�Ù„…Ë _úÚ! Dé»öë lé»âø +!ñ‰üé»!Œ÷»‚— Mœ÷»*Dš¼ öë lš¼âø  + !  ñ‰üš¼"l¨¼°ù  M,¶¼ ¤¨¼2 $Ú¼ Å™›†¨½ Dò¼öë tò¼âø +!œñ üò¼0 »û J  $d�½–±  m,޽,•½,œ½ ü�½!º·ü·ºñ€ªŒÊ»¯ï ,ÙºŸ€ ,躜¬,ƒ»ž©,ž»ðùó .«ó 7ßï W�ùó Ë«ó Ôßï ôøÿ þÛó ;«ó Dßï d”óA––`˜©&šáâø Ê‚— œâø S°ù %âø ®»û €–± ‡DñÊöë lñÊâø +!ñ‰üñÊ"lÿʰù M,�ˤÿÊ2D¼Ë öë t¼Ëâø  + !  œñ ü¼Ë> »û  J $ÌË˹  m,åË,ìË4óËüËË/€Ì¸üÑɯ ãʯï ,€ÊŸ€ ,�Êœ¬,ªÊ�¦ 4ÅÊGùó …«ó Žßï ®øÿ ÞÛó «ó $ßï DróAt–`vª§ y¿âø °ù Òâø �»û S¹ ZDþ•öë Ôþ•âø +!ñ‰üþ•5\¦– ËOl¦–üþ•aäÁ– ­FôÁ–üþ•�í– þW¿Uÿeˆ’þÙ Üñ–üí– “—¾üÁ•ÒØÚl敯ï ,Ü•ØÚÁ ¼¼½ PropertiesÁ¾óã Ie}å“ýo0ùó n«ó wßï —s™âø ž™Ù pÅÙ KòÙ &¬÷–tû– ”¨÷– Š—Œû–Œ—¿Fö–þÙ ]ò–¶ |¤Ü ™DÒ¯öë tÒ¯âø +!œñ ÜÒ¯»û I#Tᯠµâñ rdá¯ó¯Àü¡¯Rã“T½¯¯ï ,³¯øÿ ‡Ûó Ä«ó Ìßï ë,Qâø ñ»û Â´Þ ÈDü±öë lü±âø +!ñ‰´ü±4в ÉNDв˜²ÁüαJ Å�<걯ï ,à±ùó ›«ó £ßï Â$Lâø ȳà ™DËÄöë tËÄâø +!œñ üËÄ »û J$tÚÄ ¸âñ s„ÚÄðÄÂüœÄT$¼Ä¯ï ,²Äøÿ †Ûó ëó Ëßï ê,Oâø ð»û ÁÄâ ÇDèÌöë tèÌâø +!œñ ìèÌ»û I#d÷Ì ¹âñ rt÷Ì‹ÍÃüºÌQ,ØÌ¯ï ,ÎÌøÿ †Ûó ëó Ëßï ê,Pâø ð»û Ááä Çx£èЄK„KK‡Kí ä7ˆKÞüä7‰K«ä7ƒ¢3à6ú�¶Š�þch †–æ z‚(£½Ð ö£ÂÐú/ñ‰;ùó C–æ Ò –æ Ý_iðæ ú(¤ÄÐ u ²Ýx¤èЖæ #îÝOTÀ¼afRs¤ÉÐüŽ­àšùó ¢·áª²Ý²îÝ¡ Ùç ¬Ùç ´ÖœãíÆé îÝáÀ¼p¥«ÑÅ� †Å�08Ø¥¿Ñ…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅûÚ �þX] †äê oxà¥àÑûÚ  †ûÚ 09(¥„Ñ ý¥‰Ñ¥ˆÑT‚c¶Šo ¶ŠzÅ�zìà ƒäê O äê [ûÚ çùÚ ïºÄ·ê Ƴë �ñë äê ´Å�º (¦‹Ñ v ²Ýp¦«Ñ ²ÝÅ�+îÝئ¿Ñ w²Ý äê + îÝà¦àÑ  x ²Ý ûÚ +  7  îÝÛà×± íòÞ㬱 z ¦�Ñ„4­àAÿì J·áS²Ý\²ÝLîÝUìà ^²Ý+îÝ4¥í =²Ý îÝ ùÚ ùÚ (ÜÑÜìà îÝÑ¥í îÝŸ©ñ îÝm×± ¤îÞdôÞ¤¦,îÞtôÞ*üîÞ"\ƒßù† Plƒß*üîÞE ü”ßÄ™ß Ð$”ßԙ߹ßÏü¢Þ—$ßÞùó ,ÂÞœ¬,ÉÞËÕ�  Ø¥/–`1`¤¦?ù† ¸ó ¹”®â\³â™Ù $®âl³âü®â$|Áâ §FŒÁâ\Üâ Áü®â:DÓâ ÏZ5¬ÓâîâÐüÉá¥$úáùó ,ðáÞÞý”ß¼QâÐ`J ÐùÚ ÁÂÞ�ÄÅÆµ�ÇÈÉÊ�ÊËÌã�ÍÎÏú�ÐÑÒ•‘ÓÔÕ®‘ÖרɑÙÚÛê‘ÜÝÞ‡’ßà᪒âãäÊ’åæçè’èéꊓëìíª“îïðΓñòóð“ôõö–”÷6{Å“ý|Ý ¶Û™Ù •ªõ pêõ 7”ñå\öå™Ù $ñålöåüñå$|„æ ©FŒ„æLŸæ Áüñå8D–æêõ X3œ–æ¯æÒüŽå¡$½åùó ,³å½ö ¦ùÚ Úöö Œ$H™Ù ÿÛú Ùêõ Ÿ"lçó,íóàÞ ,çó<íóŒçó ÷ó&üüóÄ�ô¸ó $üóÔ�ô-$±ô W¤!\úô€õäè ,úô,€õ„ˆõDŽõ ê,ˆõ TŽõ´ˆõ üúô$ ì®õ´³õ Ò$®õ  ijõ.  $éõ G¥!”‹÷\�÷™Ù $‹÷  l�÷ü‹÷ \ž÷ ¤ F  lž÷*  ü…÷& Ì¥4á÷ à„ŠøD�ø í,ŠøT�ø,É÷ 6¦!P´Šø›ø þw,›øüŠø$¿ø ³¦!ì†üŒ‹ü Ï$†ü,�üÄ‹ü6 ì§ü´¬ü–ÿ $§üĬü, ”æü\ëü™Ù $æülëüüæü \ùü ¥Flùü*üàü&4Äýà„õýDûý”�,õýTûý,¨ý ¨!L´õý†þò�q,†þüõý $®þ ’¨!,Ôþ ßþ! Õüíñò üøöç´Ü÷üÓüø´¿ý$›òùó ,þñœ¬,…òZŒ2pá� ÈšÉmØÚéùÚ $º÷®D Åž®Åž·ï¯ØÚOùÚ „$™ýй«ˆÅž%ò–`ôminlenÁ4üö°ˆ^maxlenÁ4×üшš�àÞ Æ¸ó läè ³þ î ³wÌ–ÿ ž™Ù D¤€”�µò�^ã‚ô–ÿ ´™Ù ~”„Y”�úò�§ (©ƒ‚ g ²Ýh©°‚ h²Ý¯ï +îÝȩ B²Ý øû + îݰ©â‚  ²Ý ¢‰ +  7  îÝÛà×± íòÞ㬱 z ©ˆ‚Ž4­àA „‰ M·áV²Ý_²ÝOîÝX ¯ï d²Ý1îÝ: øû F²Ýîݧ³ %©³ .Éœ×âì�îÝ׊ŽîÝ¥§³ îÝs×±  <›„¯ï ¨„Ùüðƒ8¯ï L‡„¼�,ýƒ 1<͆¢‰ |͆,Õ† µ2<Õ†â†Úü—†Kœ¬lµ†¼�D¨†©³ |9��‚€ˆ¯ï l„ˆøû T“ˆ¢‰ ü¼ˆ( áú´ ¯ï «€ ü±ˆ4<´ˆ ¹áú´ ÷‘±ˆgü´ˆ1ëˆàüÀ‡«üî‡}³¶lÖ‡ „‰ Lȇ¯ï «€ õÁ¶ 碒Ù-é¾1óA(Ûˆš’îLj¯ï ,Öˆ«€ òû (0äLj\ʈ ´eU,݈ÌʈüĈ  Àœ³¶Û†äˆáÞ×… È ¢’ùœ¬,½ˆ³¶šŸ€ Ù¯ï «€ &–`/é¾€¯ï óA,Œˆ«€ dòû 3Þ”§¸ ûò‹¯ï LÆ‹øû Ñ‹¢‰ ,ÁŒ4ÀŒòû &ü÷Œ- ãÅæ‡áUÿ¯ï Ÿ€ üÐŒ_´ÓŒ ¿ãí—ý—ÐŒsüÓŒ\üÐŒp,¹� ËQÉɱËÌÛË«ÍåË«ÝzU¹¾ÿ¨˜ª<¹� Å�Æ�üÿˆÇâü°‹–ü¯Œ— ,‘‰„‰ $ˆ‰¯ï àøû Õ¢‰ ÊŸ€ ­«€ Èó˜c¨˜¦Ké¾.óA&ÛËóA,³ŒÉòû  ˜Åí˜øû øû ‚�¯ï ,–�Ÿ€ ü‚�!„…� µF6,��ô…�üÿŒ% ÀœÖáÛ†¤�㸇áþŒ ¨˜Óœ¬,øŒÖᛯï  ø–`'é¾�¯ï óAAŸ€ 4²œó§¸ ûò(ªá‘ y²Ýhª’’ h²Ý¯ï +îÝȪ¥’ B²Ý øû + îÝpªÄ’  z²Ý ˜Û+  îݰªØ’  ²Ý¢‰ +7îÝÆß +1$îó ¼ Á Š�dªæ‘™€­à� ñŽ ™·á¢²Ý«²Ý›îݤì�­²ÝzîÝƒŠŽŒ²ÝYîÝb ˜Ûn²Ý;îÝD§³ M©³ V-œ;Fì�îÝ;ŠŽîÝ Ÿ¢îÝ×§³ îÝ¥Æßy<•”¯ï ¢”êüê“8¯ï L�”¹¡,÷“ 1<Ç–¢‰ |Ç–,Ï–��.<Ï–Ü–ëü‘–Kœ¬l¯–¹¡D¢–©³ x9��~Ϙ¯ï lÓ˜øû d☘ÛT𘢉 ü­™m òú´ ¯ï «€ ÕÖü¢™y<¥™ ¹òú´ ¨¦¢™mü¥™v$¨š |¨šD­š ‰ +T­š+$Ëš dËš,К †˜Û / <К”Æš Å™˜Û ü¥š_$öš Å™˜Û'Š›ñüÁ—Éü¹˜Ñüš™ð řǙș­É™Ê™àË™óG*¤�R{9 ˜Û„×— ñŽ LÉ—¯ï F«€ :ÕÖ-Á¶  ³¶ßÙ¦“Ÿ¢®˜ÛYŸ¢tdé¾­óA¤ɾ›ÛË’Ѧ\¬§ø§ÂÙ¯ï ,Û™«€ òû (0$é™ ÕÖüÙ+¤Æ™ ¶{k,â™ CüÆ™($ÿ™ ÕÖ „ÿ™L„š ‹=\„š¤ü™ Àœ³¶Û†ššòÉ ×… ´™ ٦䜬,®™ìŸ€ @³¶œŸ¢È¯ï «€ !ÕÖ*ÕÖ3–`Qé¾£¯ï óA,Û˜«€ ɾ$ê˜ÕÖ‡òû Ó¨¬Žˆ­4§¸ ûò _ref__capsÁ Ö›¯ï LÚ›øû 团‰ ,Ùœ4Øœòû &ü��- ôí—ý—üèœ_´ëœ ¿ôí—ý—èœbüëœ\üèœp,Ñ� ËQÉɱËÌÛË«ÍåË«ÝzU¹¾ÿÿ°ª<Ñ� Ý�˜Û'üž›ÀÞ�Q˜Ûó5üÀ›žüÇœ— ,°›ñŽ $§›¯ï ùøû  㟀 Æ«€ áʱ�ÿ°¿Ké¾GóA?ÛË8óA,Ëœêòû 3÷°ïı©øû @˜ÛGøû N˜ÛUš�¯ï ,®�Ÿ€ üš�!„��²œD4,µ�ô��ü—�% ÀœÖáÛ†¼�ô݇á–� ÿ°øœ¬,��Öá™¯ï Ÿ€ –`'龦¯ï óAMŸ€ Y²œñ§¸ ûò(«¿¡ {²ÝØ«æ¡ |²Ý„‰ +îÝX«‡¢ }²Ý *  6 îÝž£¤é°µ¡¦otѫġ¢ì ­àø Ê’ ·á ²Ý²Ýîݼ�²ÝäîÝì –ôóŠüZœhs¼�îÝh –îÝ6¤é’\פ„‰ œ×¤,㤠Ú4<ã¤ð¤ûü¡¤Oœ¬l¿¤°¹D²¤¼�~9ùº„(¬¼® ~²Ý¨¬ä® ²ÝÊ’ +îÝ`¬ÿ® ²Ý *  6 îÝž£¤é°µ¡¦otѬÁ®«ì ­àø Ý” ·á ²Ý²Ýîݰ¹²ÝäîÝì –ôóŠüZœhs°¹îÝh –îÝ6¤é’\ѱÊ’ œÑ±,ݱ û4<ݱ걈ü›±Oœ¬l¹±ô½D¬±°¹~9½¿„(­üÇ ´ ²Ýø­¢È˜ÛîÝø­ÇÈ( ó—  îÝø­õÈ7 ¬™  îÝø­²É*åš îÝø­âÉ(žœîÝø­�Ê2Ëž$îÝ/ îÝ   O\�únw²Ý„¼ú˜žÓú¬²¸¾Ç­�È´ãéð­àþ ËŽ ·áÓÀ�ú% îÝ?èÄHîÝ$Ÿ¢-îÝ  ó—îÝù ¬™îÝå åšñîÝÑ žœÝîݽ  ËžÌúÅÕ²ÝØ¼úáëœùƒ ‘Ÿ¢îÝý¤ÅîÝÞ¹ÅîÝ¿ÎÅîÝ ãÅîÝ�øÅîÝbÓúc "€²Ý0� ²Ý,‚²Ý(  ƒ²Ý$   „ ²Ý   ( ²Ý … ²Ý Ra´r ÓÀÕÀˆ²Ý;²ÝD²Ý$²Ý-²Ý ²Ý²Ýö²Ýÿ²Ýß²Ýèê ø®¢È˜Ûø§+3ø®ÇÈ(ó— †ó—1 :ø®õÈ7¬™ †¬™1 :ø®²É* åš †åš 1 :ø®âÉ( žœ †žœ 1 :ø®�Ê2 Ëž †Ëž 1 :(®ƒÈ ¬  ®ˆÈ®‡È  % 5 E �¶œËލ¿Ä°˜Û+Ÿ¢4ó—¤Å¬™Ø¹Åáåš«ÎÅ´žœ~ãŇ˞QúÅZ%0 ø§®�Ë}ÎËE�Ì ÌÌÕ‹Í�žœ-åš4¬™;ó—B˜ÛI说çÞ׳Ø*2À¯×çߨ²Ù*2¨¯õçߨ²Ù*2ð¯�è ôÄ ŽÆ  *2ø¯´è% řǙș­É™Ê™àË™óG*¤�R{9 ¼«_d †£Ò v ø¯ßè% “Ú¬Û + 4ø¯Šé)“Ú¬Û+4ø¯¹é$ØÚ±É +4 ¯ãéߨ²Ù* 3ˆ¯ýé ߨ²Ù* 3ø¯”ê% “Ú¬Û+ 4ø¯¿ê& “Ú¬Û+ 4¨¯ëê ߨ²Ù* 3¸¯†ë ߨ²Ù*3Я£ëߨ²Ù*3دÃë!»Ô  †»Ô !0 9à¯äë#ØÚ±É #*"3(¯åã ·   "¯êã¯éãnÊ}$Å�‰ìà ‘ÞפžÜ­ߨ³ÜˆߨZ³ÜcôÄ 5•Ì >£Ò £Ò“Ú¡Úܪ“ÚzÚ܃ØÚS‡Í \ߨ,³Ü5ߨ³Ü“ÚàÚÜé“Ú¹ÚÜÂߨ’³Ü›ߨl³ÜuߨF³ÜO»Ô   »Ô ,ØÚ÷‡Í ÒݳØó²ÙÃ²Ù“ŽÆ cøÒ3¬Û¶¬Û„±É R²Ù ²Ùï¬Û¾¬ÛŒ²ÙZ²Ù)²Ùøë×Ç±É �ôÄ )(°ìã Ì ²Ýè°´çÞ×îÝÀ°×ç ߨ  îݨ°õç ߨ  îÝð°�èôÄ  îÝø°´è%£ÒîÝø°ßè%“ÚîÝø°Šé)“ÚîÝø°¹é$ØÚîÝ °ãéߨî݈°ýé ߨîÝø°”ê% “ÚîÝø°¿ê& “Úîݨ°ëê  ߨ îݸ°†ë" ߨ!"îÝа£ë$ߨ#$îÝذÃë&»Ô %&îÝà°äë)ØÚ()#'(îÝç îÝ   !#%'(5�úG*P²Ý]+¼úqwÓú…*‹+‘— °ñã̼ÂÉ,­à×ìà à·áéÀÝò�úû îÝ«åîÝúžÜîÝä³ÜíîÝγÜ×îݸ•Ì ÁîÝ¢¤Ú«îÝ‹ÚÜ”îÝtÚÜ}îÝ]‡Í fîÝF³ÜOîÝ0³Ü9îÝÚÜ#îÝÚÜ îÝì³ÜõîÝÖ³ÜßîÝÀ³ÜÉîݪíÛ³îÝ” ‡Í  ‡Í ©²Ýe¼únxœ†ƒ ”‘ ©žÜîÝŠ³ÜîÝl³ÜîÝN•Ì îÝ0¤ÚîÝÚÜîÝóÚÜîÝÔ‡Í îݵ³ÜîÝ–³ÜîÝxÚÜîÝZÚÜîÝ;³ÜîݳÜîÝþ³ÜîÝàíÛîÝÂõçîݤÓú^"† ²Ý,‡²Ý)I²Ý%  ˆ²Ý"  ‰²Ý    Š²Ý  ÿ‹²Ýûƒ²Ýø²ÝôýŒ²Ý ðù�²Ýìõ‚²Ýéò� ²Ýæï ²Ýüâ뎲Ýùß!è� ²Ýö !· ²Ý˜ ²Ý     Ì! "ÀÝ. ÂÝ7 ²Ýë²Ýô²ÝÕ²Ý޲ݿ²ÝȲݩ²Ý²²Ý’²Ý›²Ý{²Ý„²Ýd²Ým²ÝM²ÝV²Ý7²Ý@²Ý!²Ý*²Ý ²Ý²Ýó²Ýü²ÝÝ²Ýæ²ÝDzÝвݱ²Ýº²Ý›²Ý¤_ è±´ç éãÀ±×ç Žä¨±õç Žäð±�è ÊÝ ø±´è%  ÷£Ò!ø±ßè% Ñäø±Šé) Ñäø±¹é$ žß  ±ãé Žä  ˆ±ýé Žä  ø±”ê% Ñä  ø±¿ê& Ñä  ¨±ëê Žä  ¸±†ë Žäб£ë ŽäرÃë  ÷»Ô  à±äë žß 8±óã ·     ±úã±ùãnÎ}Å�‰Þ×Îߨ·ߨ ôÄ ‰£Òr“ÚS“Ú:ØÚ!ߨߨð“ÚØ“Ú¿ߨ¦ߨŽߨv»Ô ^ØÚ@)éãqŽäXŽä?ÊÝ &§ó ÑäìÑäÑžß ¶Žä›Žä�ÑägÑäLŽä1ŽäŽäý�öãžß ÃôÄ R8Áp²�¢Å�·ê *2ð²£¢ÙÙ ParserBuilderÁÚœûÛÍûÜßûÝempty_min_rangeÁ)~Cix™J‚‡ †éú™¢ø²Ç¢&ÉÉTranslatorBuilderÁÊ‚�ìË»eìÌflagsÁìæWmóoTsx †‘üŠ“(²ç¡ ϲ졲ë¡DÔSÓ‘_õö gÅ�åìà îéúÀ éúÌ‘ü. ‘ü:¬¶·ê 6âûúüfÅ�¦ (³î¡ ²Ýp³�¢ ²ÝÅ�+îÝð³£¢ �²Ý éú, îÝø³Ç¢& ‘²Ý ‘ü-  9  îÝÞã×± ðõáæ¯´ | �³ó¡Ö7­àDõö M·áV²Ý_²ÝOîÝXìà a²Ý.îÝ7›þ@²Ý îÝ °þ!°þ*ÆœÔßìà îÝÔ›þîÝ¢¡‚îÝo×± ;„ç¼B A¹µ¾ ©µ¾  ŒC¿ ÀÁÁÙÂóÃÄFlagsÁÅóÆÇLiteralÁÈóÉÊDotÁËóÌÍ AssertionÁÎóÏÐ ClassUnicodeÁÑóÒÓ ClassPerlÁÔóÕÖClassBracketedÁ×óØÙ RepetitionÁÚóÛÜGroupÁ ÝóÞß AlternationÁ àóáâConcatÁ ãóZ$ŽÐóWô¿¹¶¾ ©¶¾  ŒC¶¶HirÁ·¦ã¸µ^ã­2¯è¾æ%5_V DѼ…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅσ�þDÛ¼…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅ–‡�þ|‘½$š½ ìwµ“D‘½ 34š½ü‘½"„¡½ Ÿ�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫµ“ œ 3”¡½øø‘½"  ‘PÙ*Ù*¨Û*ÛËÙÜ*ì¨Ùÿƒ¡/eƒ ≠Ö3ch øø�½‚…  ”™ ÆQÝŠ « 3´¹ Å Ú†½ à›† µ“›† ‹½ ཌŒÌ̽éúü̽2,÷½ @0 3<÷½|¯¿$¸¿¨‰D¯¿$34¸¿WT–¾4˜¾ ¥µ“ –¾ 2D˜¾ü̽U,�¾ G´S 2Œ�¾ü»¾ ʵ“²²ßô³¦ ´îN µÅœ â!\åuèxí©„Uÿ·Íü̽�<³¾ Ç_σøŽ©„ʵ“óŽÂ�êÀ2ü³¾(øù̽�  �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwσ©„Æ2z‹ü̽�mσB#. ܾ:úÛ¾[ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÏï©„Yv �%Œö ¢’Œ2~®-3$ê¾ô¾B  tê¾$ï¾ ‘Mσ�þU J:Lï¾ ‚¿B }ü¯¿"„¿¿܉$¬#3”¿¿$Ö¿'\Ö¿ Þ"ÿ‡'+&3#*$Û¿ ìwσ&U%34Û¿ü¯¿3Ò¿ ÞQÝŠ�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫσ#ÿ%É"3„Ò¿øû¯¿3  ‘P²Œ²ŒZipÁµŒ—ÍJ¶Œ˜ÍJ·Œ÷ÍJ¸Œ¶ÍJÉ by­]òÝŠò•"!3†‹(!øûŒ¿· ¨ *(· ¼ ÆQò–*Î)3×Ü +)è +’¿ ,)ཌ σ½Œ›† —¿ -)à꘽ŒÂŒ›¿ .)àê˜ï˜̃À 5‘üüƒÀ2 ,®À ‹5143<®À,åÁ@ Þ"Òˆ@(?)31a 34TÑÀ 4ÓÀû�- ÑÀ6 1DÓÀüƒÀ^ LÇÀ –3·6L.ÝÀ2!1ÔÇÀüûÀ 8, 7 ˵“‘‘ßô’¦ã“îNã”ÅœãHÔc4„Mz©„UÿÂ�8üƒÀ˜ <óÀ Ç_–‡Ù›©„˵“Ô›Â�2ô7Á1"1üóÀ(øüƒÀ™   �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw–‡©„1Æ0#1z 90‹ 9$%üƒÀ™ ;0m–‡A#./; œÁ 4'8ý›Á :0[¢’ #‡“:/&1!Q 4,3$ªÁ =´Á A  >/tªÁ $¯Á ‘M–‡�þ=U>J<(8L¯Á ÂÁ A J üÌÁœÑÁ Í–‡$ÌÁ?j*3ÔÑÁ ðÁ+40} A…Ú.¡BªÚ.b/4r0ñÁ´ 43'3¯4¿6 ö¼6ü”µÝ M /3^ A37u3†B39ÇZü̼¥  ü½ÁÝäë?  üù¿Ê ° · ¾ CŒö Ìæµõö ,¾µ§òD͵ÿ‡rÒˆ(ÿ‡Òˆðÿ‡Î҈݊M ÝŠÒ â‰ÝŠh řǙș­É™Ê™àË™óG*¤�R{9 ½Œ¶  ÝŠ T ›†ò ÂŒÔ σƽÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^¢’σe º�à ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwσøŽÍ  ââParserÁ ãposÁä capture_indexÁåÍûæßûçinitial_ignore_whitespaceÁè­úéœûêcommentsÁë stack_groupÁì stack_classÁí capture_namesÁîscratchÁ*9lFò¼{ô§„›þ¤²Ý0ò�Õ ·ÍÞ ) ¢’2 σˆ d  ÿ‡¤ σ� ò– ò–Ÿ ÝŠ: â‰×ò•  σ  ÿ‡; ò–W řǙș­É™Ê™àË™óG*¤�R{9 ꘥  ò–±  ›†É ÂŒ¦  –‡ý¿ ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^¢’–‡œ�nÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw–‡Ù›‚  ÑÑ TranslatorÁÒŸ©ìÓÎûìÔ‚�ìÕ»eìB›q3Ó† �®� °þ¯ ²Ý1 ÔœÕ ·ÍÞ (¢’1 –‡‡ À Òˆ–‡ù  –‡Ì ÒˆØ ¾Ê ª¨ ®astsÁ'hirsÁä�ì ¾¾¦ý™O,Æ Xޱ� (¾¾4 ,¦ -™Oü .¤Ot /Æ K :ޤ ;h,Ƀ%�‡e¨‰O܉#׊®å‹µ–�~¨‰Yû�&±Žøà�Q´�ô§2‡“ô§@û“W܉�•з•×è•‡ì– �˜ì™˜ ¡št û�6 ‰› œ_ –� �®@ ‡“ �®N €  ۠o Òˆ< ÿ‡C ÒˆJ ÿ‡Q �® ô§èÒˆf ÿ‡m ÿ‡¥–‡Ø σäѾ·ÍÌÁ¾|Á¾ ‚<Ö¾)Ú¾Ê(©„À¾ò�@øŽ¼¾›†‘·Í\¬º¾¾�·Í…Å´ª _ref__pidÁ‘Á·ÍÌ�Á|�Á ƒ<–Á)šÁË« ©„€ÁÔœà ٛüÀ›†‘·Íß ¬º¾¾T·Í©¶ªè´$4Ôà( &)'1<%DO$W\ÝàÅ�œÝà( ,éà·ê A<éà\Àâ$Åâ ìw„$Àâ#4ÅâüÀâ#Ìâ ãQ�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫ�¹ –‡Ï�¹ �¹¢ºUÿÆÚ©º”Ðâ#¼ÌâüÀâ-<äâ ŽRÌŠÌŠMapÁÏŠ�Њœ“D^)c˜þOþÓ¹©º…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅ¢º�þY#Läâ4‘ã( ') ,™ã  Þ"Ï» ( !1ì‚ã' t‚ã È ™ i!< žã& ',Ãã,Êã÷¼"+ܵãlµã ¿ZP'àþµã  �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwœñ ©„�  x} ‰ œäµã mœñ %!, 4‹ä ”€äT€ä †œñ /'ÿÐã [¢’5#‡“/ P üå% äÃä  Ð�¹ËŽUÿœñ üºä& Dºä ¬Ð�¹þÁ‰Â^9> $FQ ²í \‚å Å�ü‚å ŒŽå ¶1œŽå4£å $  üîä< œîä ¶ËŽ²í rL1 ³å $ ,àå %  ! $çå &  "´×å ñ!"üÎå  DÎå é8¢‰ ;($ðå #üÁå5  ì#ü¾å9 ÀœÞˆ©„@%IU&^l#{(„ýå�&¦´#Ã(ÌHRíþ#üÔß©Ë Ü $@ Q%ct&t …' ©º("Í ÃüÐà­üªâÓü÷â†ü©ãÔAHOËüÛã¢üôãÀü ä” )Œö ̬àõö ,ˆà  �¹$—àÅ�[ ìà  Ï»$®â‡»ŽÓ¹Ìñ‰$ûâÅ�@  ¢º Ï»$œñ ,­ãÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^¢’œñ z€¿±ùó ûìÊõùÊþŽ¢’—œñ ûì $ßãœñ ,øãÛó ü²í 4¤ä ŸŸ Àì £ó‹¤ô‹ljô²ßk#­Â�þ„­Â»ìà <²í Þˆöë E¢‰jœñ ·ñ‰žûì <æ?F;T  ¡¯ Éj ¡¯ †ÃúùÂÚ Æ ìŽmÊÞ\ ùÂ^ öÒW Û·ê m —¹6 ͹ �»[ ÷¼v ·½G ÷¼Õ;ªú¾ƒèÀž‡“‘ñ‰B§ÂõÒ̲í ÿŸÃ�ïÃEœñ œñ ›ÅªÏ»yÏ»€ûì ‡Ï»Ž²í Cœñ œñ‰£Å�˜ Å�±dÖâ4Úâ Ï�¹–‡ÖâDÚâââÏn ¢ºÕâ ©º‰ »ºÑâ¤O © �ÑŽ,Ëäœñ ¤Ëä»û +#dÑä ¶âñ TtÑäßäЪˎÊä ­ÂÅøÿ …Ûó ¤ù‘œñ ð»û ²àÒ¸ù (¿®%! ’²Ý°¿Ý%! “²Ý–‡+îÝÈ¿ª&! I²Ý äü* îÝø¿�)!!  ”²Ý …C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅŸŸ•ƒ öƼ¡exactÁ¼‡§T–Ö>q�þ¨  ´  îÝW]×± kq^d.4 ÿ �¿³%!ܸ­àÅ ¬’Ñ·áÚ²Ýã²ÝÓîÝÜ¢ºå²Ý²îÝ» äüDzݕîÝž  ¯Õ­¬Ø¶Pœ^i¢ºîÝ^ŒØîÝ,ªØîÝû×± ’0øÑ<µ“ †µ“/7¨øÝ<ýÝà’)2(ø®< ݵ“ø³<ø²<BãQù’] ù’hµ“ãÂŒëýÝ·ã“¿‘›·Ùà’㵓„(ùµ< •²Ý0ùÑ< I²Ýµ“*îݨùÝ< – ²Ý ýÝ+  7 îÝž£¤é°µ¡¦puÑùº<æë ­à÷éÚÿ·á²Ý²ÝîÝ ÂŒ²ÝàîÝè ã“óã“ûXœfqÂŒîÝf…ÞîÝ5¤é�Dózµ“|óz$üz ŵ“14üzx¨ózù¨„#( # ᳨îz  §f²Ý T &Q §¤§¤ArgumentÁ©¤‚¡f‹0mÖ”49d ™ ¡—    ÐÕ ‹g   ùþð"=™þð" ã,ùÿ„#(,ùþÇ"qÑþÇ" › ëIëIåìI–æ4È ª¬KÄñùþâ"UZüÐz4 ¾Š{Êü¢zháè¾ÁÂBorrowedÁÃóÄÅOwnedÁÆóÀ9cgˆ¸†MŒ´zéÚ,ªz˜â˜âÐë� 9á³{á³”²ÝÇÂŒæŠà­Šà�Þà¿ ÌäËá³Ô‰ÇëÇ÷ '…ßEæßìŒáßá’âÛ„ö{ýÝŒ|ËüÉ{Cã“Tá{éÚ,×{ .Œê|Tï| µù’$ê|dï|Ìê|,ü|à’C<ü|üÜ|(lÜ|�“<ìš}Üš} Å  üÐ})üÐ}' Õ  ô�~ä�~ ç  ìÄ~ÜÄ~ €  üú~$üú~" Ÿ  ü¼|í ¬ ¯ ¨  " 2 Bü’|�Ì ËŽ,¬|éÚ,¢|˜ÛŠýݹã“ð󗀬™gåšLžœ3ËžS† Øæ;à’�“õÑç×õ缗蟹è„Ýèižœåš!¬™(ó—/˜Û6áÍüµ,ÞéÚ,ÄŸ€ 4Ë_cacheÁJD’€µ“”’€<›€ ɵ“4L›€ª€ÎüçC$ƒ€éÚ,ùÂŒz5øì€DÚ€µ“¼Ú€d〠ȵ“4tã€÷€Ïü°€G,Ê€éÚ,À€ÂŒ}8šîƒ|Œ‚<’‚ ñ,Œ‚L’‚0$±‚ Å™‹¢Ú¤Ì‚dÒ‚¤¦,Ì‚tÒ‚*üÌ‚"\á‚ù† Plá‚* Ì„ƒ µ“„¶ƒD¼ƒ³þ ,¶ƒ T¼ƒ„ȃD΃”�,ȃ T΃ü„ƒU4¯ƒ ǵ“ � { T ü¯ƒ*ü„ƒ�ëƒ þWÅž‹¢Ñµ“Åž‹¢Uÿ|Ú»òüïƒ$üëƒ)D¨„ µ“„ÄDÉ„³þ ,Ä TÉ„„Õ„DÛ„”�,Õ„ TÛ„ü¨„>$¾„ Ƶ“ �{T  ü¾„(ü¨„uô„ þWÅž‹¢Òµ“Èò qÚÇôüø„$üô„)£…Ðü¶�í³¶lñ�éÚ,À�Ÿ€ 4Ç�œ¬,Û�5žÕ� ߨ¥èřǙș­É™Ê™àË™óG*¤�R{9 ÅžVÂŒÎå‡ÀÅž�íõmÂŒåå‡×Åž´Ï°ëÒ–`Ô ªï¤¦¶ù† …³þ <”�ññò­ò¾³þ K”�&þó¹ôÍüôƒTôƒ½º|ÿƒ†*›†�„6“„Ñé‹¢óƒ»òÅžðƒspÁ#w†*›†½º üý„Tý„½º|ˆ…†*›†™…6œ…Ò”‹¢ü„Çô¬Åžù„þ÷Ív†*›†½ºŸÌ܆4ᆠºù’$܆,è†,á†ü܆Gö† þW‹¢ö Ôµ“‹¢ö Uÿ‚Ú½ûüú†(üö†-©‡Óüâ…ÇÖáŒÀ†éÚ,ú…Ÿ€ ,‰†œ¬,¤†³¶õ*óA,–`.jìú,¯ûñ �‡\�‡<�‡ �*L�‡ š‡<š‡œ‡ Ÿ*,œ‡üþ†$tþ† ”J'¢‡Ôeö ý†½û}‹¢ û†›†Ñ ‹¢í©€ÿ£/¿»ý õýסþ²̳ˆ4¸ˆìú$³ˆ,¿ˆ,ƈ¤¸ˆ:ü³ˆ#<͈ êW‹¢fL͈܈Õüè‡t$¤ˆéÚ,ô‡Ÿ€ ,û‡œ¬,Žˆ ³¶dz¶Ï5óA7–`9rìú¨€ÅÌÉŠ4Ίìú$ÉŠ,ÕŠ,ÜŠ¤ÎŠЩÉŠ  �%³¶X$)5HÔÉŠ m‹¢ „�‹<‡‹ ×w¹¨,�‹ �‹ T‡‹ÂªâŠ �%€ªü¶Úü¶#ò�  TôŠ  $ùŠ  à ¹¨ ¹‹L¹‹,»‹ ž*<»‹ܨ‹„¨‹ âD  !ü ‹#  üíŠa „ë‹<ñ‹«ƒ,ë‹ ù‹ Tñ‹ATÞ‹ $ã‹àÑ„ £Œ<£Œ¥Œõý( ,¥ŒÌ’Œ„’Œ¥…@üŠŒ!ü׋_ ÄŒ\ÄŒ<ÆŒ»ý(LÆŒŒ¿Œ Å™›†ÖŒ Öü›‰»üÁŠ•ov}üü’‹<üü‹:€ªŒ¥ŠéÚ,´‰Ÿ€ ,Éœ¬,Þ‰ž©,ù‰‹¢ ÅŠÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ü¶‹¢³¶EJ‹¢ËřǙș­É™Ê™àË™óG*¤�R{9 Ñ„òmÑ„b¹¨E€ÿ_ÄŠå Ñ„•¹¨J{€ÿ•›†€ÿ* kóAn–`q©&t£wÆ `Úü¶Žì ùÀ1 ùÀ== ìú¥´‚p«ƒöƒ~ú„@¥…«ƒÜõýW¥…5»ýè̬Ž4±Žìú$¬Ž,¸Ž,¿Ž¤±Ž:ü¬Ž#<ÆŽ¨€`LÆŽ*ôÞŽ4åŽ ¨4ÞŽ|쎆*›†¼åŽ��×ü•�ø žŽéÚ,»�Ÿ€ ,Ê�œ¬,å��¦ 4€ŽÒ��"³¶+¯KóAM–`Oª§ R˜Ï†*›†ìúƒ¨€BîŽ(€š� òÅõx€´�ñ‰îݰ€É� ¹Å   îÝ@€å� �»  îݘ€ó�řǙș­É™Ê™àË™óG*¤�R{9 �»\ îÝÀ€Œ�ÿ–îÝø€ª�'¸˜îÝЀ×�ñ™îÝÀ€÷�ª›îÝ�€•‘ãœ#îÝÖ îÝ    ÿ �ú'˜²Ý5¼úIOÓú]ciox€Ÿ�ò”š¡­à¯ Ø“»·áÄÅõÍ�úÖåüßçüèîÝÕùó ÞîÝ¿ ¹Å Ëîݬ�ùµîÝ– Ÿ’¢îÝ> ÿ–JîÝ+ ¸˜7îÝ ñ™#îÝ ª›îÝñ  㜒˜ ²Ý´¼ú½ÇœÕƒ ã‘ïø ùó îÝꀗîÝÌ�ùîÝ®§—îÝ�¼—îÝ-Ñ—îÝæ—îÝðû—îÝÒ�˜îÝ´Óú]%.I²Ý;!*²Ý7&™²Ý4Õ Þ€²Ýì Ò Û� ²Ýé  Î ×‚²Ýå  ËÔƒ²ÝâÈѲÝÞŽ ²Ý €t²Ý  ÀÏòàÅõíÇõö²Ý»²ÝIJݥ²Ý®²Ý�²Ý˜²Ý4²Ý=²Ý²Ý'²Ý²Ý²Ýñ²Ýú²ÝÛ²ÝäŽ Dõµãœœõµþµ ‰ 0,‚¶Tþµ1<ëµ  ðµà ��œç¶Té¶ �  ç¶,ô¶Œé¶Ìâ¶ Å™ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw³¶ô‡üäµ€ \œ· ª›´œ·¨· ñ  0,¬· T¨·1  <’·   —· à 䛌ž¸žœü‘¸&T“¸ õ  ‘¸:,±¸ ü“¸$üŒ¸, Å™àŸ ü‹·Ù $Ö¸ Å™àŸ( ê¸üÇ´£Úü‰¶|ü³·�řǙș­É™Ê™àË™óG*¤�R{9 àŸü¬µ-¬–,æ´Ÿ€ ,õ´œ¬,�µÅ™Ç™È™­É™Ê™àË™óG*¤�R{9 �ŸC’˜c�Ÿ àŸöřǙș­É™Ê™àË™óG*¤�R{9 É¡{û—›OÉ¡DàŸ žœ<óA–`›Æ›™ Õºž7ªŸÎó  ú¡�DÆØ�»¬ÆØTÏØµ’.dÏØáØâü™ØHã“T±Ø¬–,§Ø�ùx9µ’~ŒøÙTýÙ µØ“$øÙdýÙÌøÙ,ŠÚà’I<ŠÚüêÙ(lêÙ�“A \¨Úÿ–Ô¨Úd´Ú ½ 0 t´ÚtÛÚ¸˜ìÛÚdêÚ Í 0 têÚd�Û ñ™Ü�ÛdœÛ Ý  0  tœÛ\ÀÛ ª›ÔÀÛdÌÛ ð  0  tÌÛüóÛ$üóÛ"Ýè  üÊÙØ ¬   ¨Ü ¡Ü  # 3 Cü ÙˆãËŽ,ºÙ¬–,°Ù˜Û ýÝ>ã“yó—ë¼— ¬™¼Ñ—Üåš�æ—­žœ^û—~ËžDx­ ´¨èà’½�“›Ë©fŒª,ͪòŽ«¸Ý蓞œBåšI¬™Pó—W˜Û^dšÝó—d­Ýÿ–üšÝ ,§Ý Æ G6œ§Ý|Äݬ™|Úݸ˜üÄÝ&,ÔÝ Ö G6´ÔÝlôÝ åšlˆÞ ñ™üôÝ",‚Þ ê  G 6 ¤‚Þd Þ žœd³Þª›ü Þ ,­Þ ƒ  G6 œ­ÞÇÞäüçÜà�ݬ–,öÜŸ€ ,ý܇ ó—À¼—³H ¬™�Ñ—t  åšBæ—5ʆ¦ÿû—ñ…óA‡·ª¯†°Ãâ°n¾±D¶ä㜜¶ä¿äºž.,ÃäT¿ä/<¬ä ±äà�Ÿœ®åT°åªŸ ®å,»åŒ°å2 ̨å Ú$ôå €ô‡üÑæ lÖæ Û$Ñæ,äæ,ëæÜÖæ ×å ¯³¶ Ýå \²ç ª›´²ç¾çó  .,Âç T¾ç/ <¨ç  ­ç àÉ¡Œºèžœü­è&T¯èú¡ ­è8,Íè ü¯è$9ü§è, $†é€ô‡üãé lèéÞµ$ãé,öé,ýéÜèé é诳¶ ïèüÁê lÆêÞµ$Áê,Ôê,ÛêÜÆêòêêüÀâ²üÊäÑTÔåüðå“üÉçäTæèü‚铳¶lú⬖,Ê⟀ ,Ñ✬,ä⤤œ’˜¼r�ŸgàŸT,Ôå³¶±ô‡•¥yû—™OÉ¡DàŸ†¦<,æè³¶†ô‡æ »óA½–`¿›®H _errÁ± ›Ë®ôÜ»X†ºž²ªŸNÞµÜó \ú¡âÞµsÞµ Dæí㜜æíïíºž.,óíTïí/<Üí áíà�ŸäÞîœàî �  Þî,ôîÔàî4 üØî" Ú$­ï €ô‡ü�ð%””ð Ü$�ð,§ð,®ðü”ð  �ï ¯Öá –ï \õ𠪛´õð�ñó  .,…ñ T�ñ/ <ëð  ðð àÉ¡Œ†òžœüðñ/œòñ ÷  ðñ:,™ò üòñ-;üêñ5 $Òò€ô‡ü´ó%”¹óà¿$´ó,Ìó,Óóü¹ó  µò¯Öá »òü—ô%”œôà¿$—ô,¯ô,¶ôüœô Ìôëü±ë› üúíäT�ïü©ï�üŒñ÷T²òüÎò�ÖáŒ�쬖,É럀 ,Øëœ¬,ó뤤¤’˜Äz�ŸoÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÖáô‡¯,�ïÖáô‡k•¥Ðû—ð¦É¡›«År†¦“,²òÖáÚô‡; óA–`›l®¢ Ü»  ›"®HÜ»­Ùºž 㾩à¿4ó ³éÁ9à¿Èà¿^Dçõ㜜çõðõºž.,ôõTðõ/<Ýõ âõà�Ÿä‘÷œ“÷ã¾ ‘÷,§÷Ô“÷2 ü‹÷" Ú$ê÷ €ô‡üÌø"|Ñø Þ$Ìø,áø,èøìÑø Ã÷ ¯Öá É÷  \É÷<Ë÷Ÿ�  (LË÷\¯ùª›´¯ù»ùó .,¿ù T»ù/ <¥ù  ªù àÉ¡ŒòúžœüÜú/œÞúéÁ Üú8,…û üÞú-9üÖú5 $Èû€ô‡üªü"|¯ü¸Ê$ªü,¿ü,Æüì¯ü ¡û¯Öá §û\§û<©ûŸ� (L©ûüŠý"|�ý¸Ê$Šý,Ÿý,¦ýì�ý¼ýìü‹õ±üûõ�¤À÷üæ÷šüÆù°¤žûüÄûš$Çõ¬–,—õŸ€ ,žõœ¬,±õ¤¤Ù’˜ù¯�Ÿ¤«Å‘,À÷Öáí¸÷ Üô‡X•¥Ÿû—¿uÉ¡j«ÅA†¦b,žûÖᬸ÷ ›ô‡ ÍóAÏ–`Ñ›]®– Ü»ü ›÷® Ü»„“ ºžþ㾚¸Ê'Ÿ� Æó �éÁ¸Ê¦Ÿ� G¸Ê%,Â\Âü¥‚*Ī‚ ß$¥‚3üª‚%5d«‹ñ™4¼‹,Ä«‹¸‹ Þ L,< \¸‹Ì­ƒ4²ƒ ºØ“$­ƒ,¹ƒ,Àƒ ¤²ƒе­ƒ ´‚ X #  / ÚÔ­ƒ m‹¢ ìÕƒœÕƒ ¢  éƒ,ìƒ  ,¥¶ƃöƒÚü¶Ë Œ„\Œ„<Ž„»ý( LŽ„Œ‡„ Å™›†Ä€„£ü«‹"<Ä‹ êW «šÓ LÄ‹4 4ƒŒ-üã‹.œè‹ Ý$ã‹,ü‹-H,‹Œüè‹)ü³Œ%”¸Œ Ú$³Œ,ËŒ,ÒŒü¸Œ >ü­Œ+_ààŸ,‡ààŸ¯³¶_üŠ�-œ��ÀØ$Š�,£�,ª�,±�ü��($¿�ààŸ€ô‡ü Ž-œ¥ŽÀØ$ Ž,¹Ž,ÀŽ,ÇŽü¥Ž($¤� Å™›†\�� ôŒààŸ¯³¶à‹¢ üŒÔ‘“,¤“¥• ,‘“<¤“ ¾“"L¾“,À“ú„"(!<À“ É“$<ɓ˓õý$(#,Ë“�·¾“ ¶ý!#ü‘“@$¹“Ü– Ô ?Ĺ“ ú“'\ú“<ü“»ý'(&Lü“ôè“% §-&ü‘“vDß“¨— –%6üß“(4Ô *ü£”. œ¨”ÀØ$£”,¼”*9,Ë”)ü¨”)¬ê” + š²Ýü£”] 4ã” ÷W›†)y+=(ìã”ü‘”z Å™›†(‘• í üûý–ü¥ƒ~dkrØü¥Œì´çŒü¶�¦ü…“Œ.€ªŒ…ÿ¬–,”þŸ€ ,£þœ¬,¾þž©,Ùþy’×ñ«‹¢ ©ƒЉµ³¶‹¢„e›†ÿ€ÿ° řǙș­É™Ê™àË™óG*¤�R{9 å׳…ã¼æ—ø œ¬ïæãå‹¢ ©Œ²£–<ïŒ\쌌猋¢,ô‡ÆÙ¤,‰“Ù¤LÙ¤… €ç€ÿÀ€ÿÚØ¥$›†T€ÿn›†Œ€ªðœ¬ ²ÝÁœ¬Ìœ¬Â éóAì–`ï©&ò£ÝÆ éÚü¶Ž\ £B£HÜ»æ–`# ç öæ ¶ÓÜ ¬Ôl ÜÔC ´‚ �Ö�öƒ »ý<ß×äÀØŠ…ÙLÀØ—ÀØ3¥• �ú„[õý*Ü– è»ý±¨— xÀØ@«àìDõ–㜜õ–þ–ºž.,‚—Tþ–/<ë– ð–à�Ÿü­˜.쯘 ”  ­˜,͘4Ô˜ ü¯˜,>  ü§˜4  Ú”™  €ô‡üä–© \Žš ª›´Žšššó  .,žš Tšš/ <„š  ‰š àÉ¡Œú›žœüÉ›€ìË› ý  É›;,�œ4´œ üË›~DüÛ† ª�€ô‡üý™� \‘Ÿÿ–Œ‘Ÿ�Ÿ ¾ 0 ,�ŸŒÈŸó—ü¬Ÿ=Ì®Ÿ à  ¬Ÿ:,ÛŸ4⟠ü®Ÿ;ïŸîüЕŸ ü‰—îüœ˜Û|�™ü¥šèü¸›Õ|¦�ü‰ŸfÙ–¬–,ö•Ÿ€ ,…–œ¬, –�¦ 4»–¤¤c’˜ƒ9�Ÿ.ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwô‡m4î˜ô‡•¥ßû—ÿµÉ¡ª«ï�†¦¢4Üœô‡7 ¹— �Ÿ¼—%¥²î &óA)–`,ª§ 0›GÜ»$ ˜ ¬ºÝ ›ZÜ»$¼›¬ºÞ›§ºžù¥é•ó òÑëxõìÙ·íŸ(ÁüŸ ›²ÝPÁ¡  œ²ÝØ“,8îÝej¹§w|glŽÁ� ö©­àµ ý”À·áȲÝвݾîÝÆ ¬–Ѭ–Ùüœ µôîݹ§) lб,Ö±¥• ,б<Ö±lç± §-üб%DÞ±¨— X3¼Þ±l�²Ø“ãœ4¢² Ì�²ž²ºžB -\ž², <†²   ‹² à�Ÿ4س 쳜ij ’  ³ 2 Üij„€´Ø“ª›4•´䀴‘´ó B- \‘´, <ö³  û³ àÉ¡ŒËµžœ4Þµüµµ0œ·µ ú  µµI8 ü·µ.ùÒŽ"`ù»Ž"` �gùÎ¥.`�J²Ý 9ùÑñ@`áÑñ` ´[^%öü�®³ñüıÿüª²¿ü�´Ò«Åüÿ®)Šô,¹®Ÿ€ ,È®œ¬,ã®Ù¤,ȱÙ¤#Ø¥¤¤�’˜Ñœ¬À�Ÿtœ¬c•¥ÿû—3œ¬"áɡֆ¦Åœ¬¸4ë� }ÂóAÄ–`Æ–`È› ›@V¥•  ¨— Òºž�§÷󠼑ù6Ñù�úÊL£¼Ø“´£¼T­¼´¨.d­¼¿¼ôüö»Iã“T޼Šô,„¼¬–x9´¨~L¨½Ø“Ĩ½d²½ ¶Ø“4t²½ƽõüþ¼HËŽ,˜½Šô,޽¬–~9—ÿ„L¸¾Ø“举\¾ ·Ø“4,ξ”¾Û¾öü…¾V­¾Šô,”¾Ÿ€ ,›¾x¬–—&óA(W½€ª¤·Âd½Â¤¦,·Ât½Â*ü·Â"\ÌÂù† PlÌÂ*LïÂØ“ôïÂ4ùÂÜÔ.,€Ã,‡Ã¤ùÂü§Ã/ä¬Ã ñ$§Ã,ÉÃ,ÐÃü¬Ã*> ü¡Ã5  ah ¯Öá5  ±Å ¯Öáàö ÛÅ dÛÅ<ÞÅú¢ ( LÞÅ$—Å Å™‹¢$éà €ô‡LËÄ Ø“üËÄ%lÕÄÞµ /,ãÄ,êÄÜÕÄéÅ \éÅ4ìŲå( DìÅ\öÅüÅäè ,öÅ ,üÅÀ¼éÅ ¶ýüÐÅ2TÐŰ‘ RA'üËÅ8 Å™‹¢ �Æ¡ÆùüâÁ¿üåÙü©Åh³¶lœÂŠô,ìÁŸ€ ,óÁœ¬,†ÂBÕ� ƒØ¥Œ¬–$«ÅÝ$ŽÅLåÃô‡ê¬–Ùö |‹¢›†X–ìr… S®–ìÈ–¹óA»–`½Ü»k �ìø ( ¤¦]ù† ,ÜÔ㶃±ú¢ òÞµ~²å<äè °‘ Õ¤ÝÇdãǤ¦,ÝÇtãÇ*üÝÇ"\òÇù† PlòÇ*L•ÈØ“ü•È#\ŸÈ »Ø“5,«È,²ÈÌŸÈüÒÈ/ä×ȶƒ$ÒÈ,ôÈ,ûÈü×È*< üÌÈ5  _f ¯Öá5  áÊ ¯Öáàö ºÎ dºÎ<½Îú¢ ( L½Î$ÇÊ Å™ö $”É €ô‡LöÉ Ø“üöÉ*”€Êà¿ /,“Ê,šÊü€Ê \ÈÎÎÎäè ,ÈÎ ,ÎÎü«Î)t«Î¡þúI %ü¦Î/ Å™ö  âÎóÎúüàÆ“ü�ÉžüÙÊŠÖጾNJô,øÆŸ€ ,‡Çœ¬,¢ÇïÕ� 0Ø¥9¬–ѫŃ$¾ÊL�Éô‡’¬–�ö $ö ›†–ì[ŸóA¡–`£Ü»ù �ì† ¤¦ðù† ¿ Œv¶ƒ=ú¢ €à¿ äè Ø¡þ³ ¤€Ðd†Ð¤¦,€Ðt†Ð*ü€Ð"\•Ðù† Pl•Ð*L¸ÐØ“ü¸Ð DÂÐ ¼Ø“5,ËÐ,ÒÐ ´ÂÐüòÐ/ä÷жƒ$òÐ,”Ñ,›Ñü÷Ð*< üìÐ5  _f ¯Öá5  $†Ó  ,äÒ  $´Ñ €ô‡L–Ò Ø“ü–Ò'| Ò¸Ê /,°Ò,·Ò ì Ò›Óûü²Ïéü°Ñ› $îÏŠô,¾ÏŸ€ ,ÅÏœ¬,ØÏÕ� `Ø¥i¬–«Å³$ÛÒL°Ñô‡¬–ñróAt–`vÜ»< Ȥ¦åù† ´Ï”k¶ƒ2¸Ê:¤ƒÕd‰Õ¤¦,ƒÕt‰Õ*üƒÕ"\˜Õù† Pl˜Õ*L»ÕØ“ü»Õ+dÅÕ ½Ø“5,ÒÕ,ÙÕ,àÕüÅÕ!ü€Ö/ä…Ö¶ƒ$€Ö,¢Ö,©Ö ü…Ö*<  üúÕ5  _f  ¯Öá5  —Ø ¯Öáàö LµØØ“,ØØ\ØØüµØ/ĿضÓN. ü¿Ø%$ý× Å™›†$ÂÖ  €ô‡L¤× Ø“ü¤×2œ®×ÀØ /,Â×,É×,Ð×ü®×(Å –Û\–Û4™Û²å(D™ÛÞÙdÞÙ<áÙú¢ (LáÙìÙ\ìÙ4ïÙ²å(DïÙ\ùÙÿÙäè ,ùÙ,ÿÙÀ¿ìÙ ¶ýüÓÙ2TÓÙ°‘ Æ@&ì›Úœ›Ú�Ö ¯Ú,²Ú* ÚÚ\ÚÚ<ÜÚ»ý(LÜÚŒÕÚ Å™›†Úü¿Û",ÚÛ¥• ,¿Û!<ÚÛ\ƒÜ‰Üäè ,ƒÜ#,‰Ü�ÂüÛ" ¶ý#ü¿ÛP$÷ÛÜ– !‘"? Ä÷ÛÀÜ&dÀÜ<ÃÜú¢ &(%LÃÜü®Ü$ §-%ü¿Û�D¥Ü¨—  ˜$8ü¥Ü)LàÜ'Ø“4…Ý(üàÜ3œêÜÀØ'>,þÜ(6,�ÝüêÜ)±ÝüüÚÓ× ü¾Ö¦ü�Ø’üËÙ®üŠÛ—ü³Ûî)€ªŒäÔŠô,óÓŸ€ ,‚Ôœ¬,�Ôž©,¸Ô&Õ� gØ¥p¬–«Å±$ô×L¾Öô‡”¬–ƒö Rþ¬–= ×ñ9‹¢ ÏÙ›†–ì)… –ñ–ì Ùh›†1€ÿK,ŽÛ–ì°Ù¤,·ÛÙ¤—Ù¤… ËýØ¥U›†…–쟬–'œ¬ oóAr–`u©&xÜ»Ñ �슣‚Ζ`Å3¤¦ù† îÞš¥¶ƒc ö’ÀضÓ�²å±ú¢ €²åOäè -°‘ è�Ö»ý‰¥• ?äè Ü– Ôú¢ �¨— cÀØL­áØ“ü­á9Ì·á ¾Ø“5,Ñá,Øá4ßáü·á/ìáýüðÝüùÞŠô,–ÞŸ€ ,¥Þœ¬,ÀÞ�¦ 4ÛÞ¬–¹5óA7–`9ª§ <‚�«ç(Þùá ž ²ÝPޜ⠜²ÝØ“,îÝpÞ¬â I²Ý äü+  7 îÝ¡¦¤é³¸£¨puÔÞþáûï ­àû ¾•·á²Ý²Ýîݬ–²ÝåîÝí ŒØøŒØaœoz¬–îÝnƯîÝ;¤é™„˜ˆDžˆ”�,˜ˆTžˆ ƈ üшóDùˆäü„‡‰D�‰³þ ,‡‰T�‰$™‰ üùˆ%$‚‰ ¿lZ 5䂉4 üóˆ+ Ú$Õ‰ àÅžôÜŠ,󊥕 ,ÜŠ<óŠl•‹ §-üÜŠGDŒ‹¨— X3 ¼Œ‹lº‹,À‹àÞ ,º‹ <À‹dÉ‹ ØÅº‹ ¶ýüÜŠz$µ‹Ü–  ¦?  üµ‹!L®Œ L¹Œü†Œ=Ü‹Œ ƒ $†Œ,§ŒJ@ ü‹Œ8øÈ†Œ>  �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÖáì…² x}‰ ü†Œ>mÖáDë‹ÉÃŒ[ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÏïì…Dv �%¾µ’·ŒhT–�D¤�´–�ð‹àö DíŒ Å™ö dêŒ ÀœÖáì…Útí�" ìí�\ü� ä§"/ ˆŽ!tü�üí�&4‹Ž øW!` D‹Žüà�3 d­Ž# Ä¡Ž#$ÐŽ$ Å™ö DÍŽ ÀœÖáì…$ÛŽ � üñ†êü‰ˆÒü²ˆ©üäˆà”ЉüÍŠ÷üÑŒ4«²¹ú %¾µüÙ‡%ý®,“‡Ÿ€ ,¢‡œ¬,½‡ÅžD�ˆl¶ˆíõ¾ŒØå‡ Åžê$±‰ÅžŒÙ¤DÑŠÙ¤DÙ¤�Ø¥l… ó8ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^’·Ö᫾µöœ¬ù’·ÖáE'ö 9Öá(lš�§ØÚóÖá[ –óA™–`œÅœ  min_startÁ«litmatchÁDèˆ Åœ! revinputÁ  Æ óŽ9 �ì)³ ”�w³þ ߱ܥ• g¨— .àÞ Ü– ®÷´g¸µ,÷·3æ¹ ªºÐ lÅ�Ø“ãœ4×�ÌÅ�Ó�ºžO:\Ó�,<»�  À�à�Ÿ4“’  ìý‘œÿ‘ã¾ ý‘=Üÿ‘„»’ Ø“ª›4Ð’  ä»’Ì’ó  O: \Ì’,  <±’   ¶’ àÉ¡ŒŒ”žœ4Ÿ”üö“0œø“éÁ ö“TCüø“.ùÿŽ"`ùËŽ"`Ñùùû¥.`ŸH²Ý5ùþñ@`áþñ`�úX#‚•üš�è‚ üß�ÅüؒثÅü€�)ý®,º�Ÿ€ ,É�œ¬,ä�¤¤’’˜ÓæãÂt�ŸiæãX•¥Üû—æã ¾É¡³†¦¢æã• ë� Oœ¬3œ¬¸œ¬Zœ¬ÉÉóAË–`Í››6Gºž�ã¾ó ¤éÁÑùà�ú« lŠ—Ø“ãœ4œ—ÌŠ—˜—ºžO:\˜—,<€—  …— à�Ÿ4¾™  ü ™0Ü¢™ “   ™@LÆ™ü¢™.„ñ™ Ø“ª›4†š  äñ™‚šó  O: \‚š, <ç™  ì™ àÉ¡Œ¨œžœ4»œüŠœCÜŒœ ü  ŠœVELÜüŒœAù‹Ž"`ùÍŽ"`Ñùù‡¥.`ŸH²Ý5ùŠñ@`áŠñ`�úX#©�üÁ•èƒ ü¤—¶üŽšÉ¾µüÉ–%ý®,镟€ ,ø•œ¬,“–L®–¤¤²’˜óæãâ”�Ÿ‰æãx•¥ðû—1æã Òɡdž¦¶æã©ë� Yœ¬Sœ¬Øœ¬nœ¬ÝÓóAÕ–`ס¿Û›C ›X_ºž¯ªË2ó Æ·Í3Ñùø�úÃL’ŸØ“´’ŸTœŸ´¨.dœŸ®Ÿ† üåžIã“Týžý®,󞬖x9´¨~L— Ø“Ä— d¡ —ÿ.t¡ µ ‡ üíŸHËŽ,‡ ý®,ýŸ¬–x9—ÿ~L§¡Ø“ä§¡\±¡½€.,½¡”±¡Ê¡ˆ üô Vœ¡ý®,ƒ¡Ÿ€ ,Š¡r¬–‘&óA(W½€¤¤�¤d•¤¤¦,�¤t•¤*ü�¤"\¤¤ù† Pl¤¤*LǤØ“ôǤ4ѤÜÔ.,ؤ,ߤ¤Ñ¤üÿ¤(¬„¥ � $ÿ¤,š¥,¡¥ü„¥#> üù¤. Új €ì…7  ’ ¯Öá_  DϨ¯Öáàö üþ¨",™©¥• ,þ¨ <™©$µ¨ Å™‹¢$€§ €ì…»Áô‡Lé§Ø“üé§%ló§Þµ/,�¨,ˆ¨Üó§L²¦ Ø“ô²¦4¼¦ÜÔ .,æ,ʦ¤¼¦DÑ©”Ñ©<Ú©ú¢ (LÚ©ü¿©% §-üþ¨gD¶©¨— {8ü¶©/D€ªŒ€ª4‰ª²å(D‰ª\“ª™ªäè ,“ª,™ªð΀ª ¶ýüþ¨¡$û©Ü– Î@üû©$Lתü·ª*œ¼ª ‚ $·ª,Ъ;ü¼ª%;ü±ª0\¯Öá,4ö®"¯Öáàö D«¯%”«¯<´¯ú¢ %($L´¯ù™Ž"`ùÒŽ"`Ñùù•¥.` g²Ý!5$üª€ô‡Lª¬Ø“üª¬%l´¬Þµ/,¬,ɬÜ´¬ù˜ñ@`á˜ñ`�ú!Á #Dׯ(Œ×¯4௲å(('Dà¯4ê¯*"|ê¯4ñ¯²å*()Dñ¯øÓׯ"& ¶ý')ü‡¯‰T‡¯°‘ $£&C#(ü‚¯� Å™‹¢# �°°‹ üº£ˆ ü¶¥¨ü릱üǨëüï¨Ãüøªíü+³¶lô£ý®,Ä£Ÿ€ ,Ë£œ¬,Þ£îÕ� /Ø¥8¬–ܺ¥$¬¨ü¶¥ ¬– ô‡‹¬–nö Ù¤Dó¨Ù¤œÙ¤Ø¥È›†ø–ì… 6‘–ì«y«Åöœ¬$ý¬Løªô‡ÿ¬–î¤ë� Rö º‹¢›†––ì°… B©–ìÂ–ìœ �óA„–`‡Ü»$Ð¥Ú•‡Ü»Ú hm_startÁcfwdinputÁ\Ü»èhm_endÁ“"q¤¦% ù† ôÜÔ«Í×y¥• ŸÞµÜÔÓú¢ ’¨— X²åäè ýÜ– ¸†Þú¢ ÌÑùªÞµF�ú²åá²å°°‘ m¤þ±d„²¤¦,þ±t„²*üþ±"\“²ù† Pl“²*L¶²Ø“ü¶²#\À² Œ/,̲,Ó²ÌÀ²üó²(¬ø²Í×$ó²,޳,•³üø²#< üí². Úh €ì…7  � ¯Öá_  Dý¶¯Öáàö üǼ",â¼¥• ,Ǽ <â¼$ã¶ Å™ö $þ´ €ì…»Áô‡L’¶Ø“ü’¶*”œ¶à¿/,¯¶,¶¶üœ¶ L«´ Ø“ü«´#\µ´ Œ /,Á´,È´̵´Dš½”š½<£½ú¢ (L£½üˆ½% §-üǼgDÿ¼¨— }8üÿ¼/DɽŒÉ½4Ò½²å(DÒ½\ܽâ½äè ,ܽ,â½ðÖɽ ¶ýüǼ¡$ĽÜ– Î@üĽ$L ¾ü€¾*œ…¾†Þ$€¾,™¾9ü…¾%9üú½0Z¯Öá,4ÄÂ"¯Öáàö dРřö " ÛÂù§Ž"`ùÚŽ"`Ñùù£¥.` g²Ý!5$ž€ô‡Ló¿Ø“üó¿*”ý¿à¿/,�À,—Àüý¿ ù¦ñ@`á¦ñ`�ú! #�ÃŒ ü�±Œüª³²üé´áüõ¶ˆ ü¸¼ÅüÁ¾òü¼Â #ÖáŒß±ý®,™±Ÿ€ ,¨±œ¬,ñóÕ� 4Ø¥=¬–Õ¾µ�Ü®³$Ú¶üª³ ¬–ô‡‘¬–tö Ù¤D¼¼Ù¤ Ù¤Ø¥Ì›†ü–ì… :•–ì¯}«Åúœ¬$ËÀLÁ¾ô‡¬–¸ë� gö À ;óA>–`AÜ»$ijÚ•‡Ü»š ÏæãæÜ»©„ç@"¤¦Ñù†   ŒWÍ×$¥• Là¿È Œú¢ =¨— ²åÊäè ¨Ü– c†Þ*Ñù_à¿û�úǤšÄd Ä¤¦,šÄt Ä*üšÄ"\¯Äù† Pl¯Ä*LÒÄØ“üÒÄ DÜÄÏ”/,åÄ,ìÄ ´ÜÄüŒÅ(¬‘ÅÍ×$ŒÅ,§Å,®Åü‘Å#< ü†Å. _f €ì…5  Ž ¯Öá]  $ŸÉ  ,ýÈ  $›Ç €ì…»Áô‡L¯ÈØ“ü¯È'|¹È¸Ê/,ÉÈ,ÐÈ ì¹ÈLÄÆ Ø“üÄÆ'|ÎÆ¸Ê /,ÞÆ,åÆ ìÎÆ´É� üÌÃèüÃŶü†ÇÞ$ˆÄý®,ØÃŸ€ ,ßܬ,òçÕ� èØ¥ñ¬–‰¾µAÜÇÅ$ôÈüÃÅ ¬–þô‡{¬–^†óAˆ–`ŠÜ»$ÝÅÚ•‡Ü»Í þ¤¦˜ù† gÏ”Í×ë¸Ê¿¸Êw¤œËd¢Ë¤¦,œËt¢Ë*üœË"\±Ëù† Pl±Ë*LÔËØ“üÔË+dÞËÞš/,ëË,òË,ùËüÞË!L—Ì Ø“,ºÌ \ºÌ  ü—Ì/Ä¡Ì¶Ó N . ü¡Ì%0 ü¸Î(¬½ÎÍ×$¸Î,ÓÎ,ÚÎü½Î#̤Í4©Í º¾•$¤Í,°Í,·Í¤©ÍÐÛ¤Í ´‚X #/ ÚÔ¤Ím‹¢ ìÌÍœÌÍ�Ö àÍ,ãÍ *£Ü½ÍöƒÚü¶É ƒÎ \ƒÎ<…λý(L…ÎŒþÍ Å™›†Ä÷ͯü²Î. Ñ€ì…- ú¯ÖáV DˆÓ¯Öáàö D–Ó DÿÔŒÿÔ4ˆÕ²å(DˆÕ$îÒ Å™›†\çÒ$×Ѐ셻Áô‡L�ÒØ“ü�Ò2œ—ÒÀØ/,«Ò,²Ò,¹Òü—Ò(LûÏØ“üûÏ+d…ÐÞš/,’Ð,™Ð, Ðü…Ð!Ô¦Õ ,¹Õ¥• ,¦Õ"<¹Õ\ÚÕ àÕäè ,ÚÕ$,àÕ�ÝÓÕ # ¶ý$ü¦Õ@ $ÎÕÜ– "�#?!ÄÎÕD�Ö '”�Ö <˜Öú¢ '(&L˜ÖüýÕ% % §-&ü¦Õ} DôÕ¨— !—%7 üôÕ/L­Ö (Ø“4ÒÖ ) ü­Ö3 œ·ÖÀØ(>,ËÖ)6,ÚÖü·Ö)æÖŽ üóÉó üœÍ~$ˆü£ÎÃüïÎÆüÂÐŒô€ÓüóÔóüšÕÌ *€ªŒýÊý®,ŒÊŸ€ ,›Êœ¬,¶Êž©,ÑÊÞÕ� Ø¥(¬–À9¬–x[×ñt‹¢  ÍЉ¦³¶ñ‹¢uV›†ò€ÿ ö D§Î¾µnÜóÎ$ÞÒüïÎ ¬–cô‡ê¬–Íö Ž,÷Ô–ìmÙ¤,žÕ Ù¤ÓÙ¤T… 9Ø¥‘›†Á–ìÛ¬–dœ¬X }óA€–`ƒ©&†£F Æ EÚü¶Ž¶Ïæ+Ü»$‰ÏÚ•‡Ü»ýÏæœ ‚ –`  ¶¤¦+ ù† úÞš± öR¶ÓHÍ×Ò„×´‚œ�Ö1öƒª»ýÒ²åÐÀØMÞšü¥• Àäè ›Ü– Vú¢ ¨— åÀؘL¹ØØ“ü¹Ø9ÌÃØ�«/,ÝØ,äØ4ëØüÃØ/øØ� ü¥×Ó®Øý®,Ëן€ ,Úל¬,õ×�¦ 4�ج–³5óA7–`9ª§ <‚�«á(µ…Ù ¡ ²ÝPµ§Ù œ²ÝØ“,îݘµ·Ù ¢²Ý äü, îÝXµÐÙ  ™²Ý �»,  îÝøµáÙ ƒ²Ý×�-îÝȵ†Ú ²Ý�Ÿ+7îÝY_¬û ms_e.4 ý  ËЗœ³µŠÙƒ Ï­àÜ Œ–è·áñ²Ýú²ÝéîÝò¬–û²ÝÇîÝÐŒØÙ²Ý¥îÝ®�ù·²ÝƒîÝŒ ×�˜²ÝcîÝl  �Ÿ{…œ„�œ«¶¬–îݪŒØîÝw�ùîÝDå›î݃œîÝݬû ó+„ƒ†D‰†”�,ƒ†T‰† ·†  Ú† üå†�l�‡äü„ ‡D¦‡³þ , ‡ T¦‡$²‡ ü�‡*$›‡ß±j X 3䛇2 ü‡‡0 )Ú$î‡ àÅžt›ˆ l¬ˆô›ˆ  ÔøŠÄøŠ � ô‹Œ,¢Œ¥• ,‹Œ <¢ŒüâŠ1 ÚÚ•‡üÞŠ6 Àœ³¶ì…Ú*lÄŒ §-ü‹ŒGD»Œ¨— ¥3 ¼»ŒléŒ,ïŒàÞ ,éŒ <ïŒtøŒ èàéŒ ¶ýü‹Œ|$äŒÜ– ¦? üäŒ#L•‘|°‘üÌ�‚ÜÑ� • $Ì�,þ�KAüÑ�}øãÌ�ƒ ¸µ[ %1üÌ�ƒmÖá t»� %äΑ[’·š " �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw³¶ì…’·‹*DÀ�!àö üñ‘",Œ’¥• ,ñ‘$<Œ’DÄ’'!”Ä’<Í’ú¢ '(&LÍ’ü²’%% §-&üñ‘gD©’¨— $•%7#ü©’/Dó’*!Œó’4ü’²å*()Dü’\†“Œ“äè ,†“+,Œ“ðåó’( ¶ý)+üñ‘¡$î’Ü– #Í(@"üî’$LÑ“ ."üª“1 Ô¯“ ” $ª“,Ê“.;-ü¯“,øèª“2   �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwö ô‡-ÿ,ÊÏ /,Û /üª“2 1,mžª 21ü¤“8 2éÛ“ 0,[ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÏïô‡—v �%ƒ¥ö«0Œ*»4®• 71¯ö DŠ–;!”Š–<“–ú¢ ;(:!L“–4÷“ 31€´œ”3tÙ”6 ìÙ”\è”æ¹6, ô”5tè”üÙ”&4÷”ªº5X4 D÷”üÌ”34ü´�ü%Dº–>!Œº–4Ö²å>(="DÖ4Í–@7|Í–4Ô–²å@(?#DÔ–øêº–"< ¶ý=?üâ••Tâ•°‘ :œ<C9$(üÝ•›8 Å™‹¢9üÚ•Ÿ Àœ³¶ì…8Ú *TÁ—BDÏ—C´Á—ABCA&)t˜˜F 옘\§˜æ¹F, ³˜E't§˜ü˜˜&4¶˜ªºEXD(D¶˜ü‹˜3DdÞ˜G ô̘G² $�™H Å™‹¢Dþ˜ Àœ³¶ì…HŒ™* “ ü愦üô…˜ü�†ïü†Êüø†ý”é‡üü‹ù üБàý M üâ‘Κ ¡ ¨ êüó“£ ü«•å Iƒ¥üÈ…!äš,‚…Ÿ€ ,‘…œ¬,¬…ÅžDø…œ¡†ŒÆ†íõ´ ŒØ å‡ Åžà $ʇÅž„ O y n ì…ö •‡L Ù¤D€ŒÙ¤° Ù¤F Ø¥Ø … _ ¤ ‚ þ½Å ¾µ œ¬: 3 j ’·s Öá· ˜ ö ôÙ¤Dæ‘Ù¤oÙ¤õØ¥››†Ë–ìå…  e–ìMÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ö«žªÞÏ©$œ¬>Ñö«Ú žª \ó“  ”ØÚÝúö } ³¶¬‹¢â›†m–쇅  ‡–ì¡`–ìz‡µª'ØÚp�³¶àÒóAÕ–`ØÅœÜmin_match_startÁí min_pre_startÁü¶¿Dü† Åœc Ù¿ºÆ Ï Ž ÏæO !ãæ_ "Æ w 0޾1ïm£3„ç7‡”� ³þ ‡ß±S𠛥• ¨— ù àÞ Ñ Ü– y ¨£2 ¸µö ý¤ý ¥• Ò ú¢ � ¨— c ²å+ äè  Ü– Ä �©‹ É©U Û¬\ ú¢ w湪ºá²åŒ²å[°‘ æ¹Hªº l„›Ø“ãœ4–›Ì„›’›ºžO:\’›,<úš  ÿšà�Ÿ4Øœ  ü»œ$Ô½œ ‘  »œ@ü½œ"„€� Ø“ª›4•�  ä€�‘�ó  O: \‘�,  <öœ   ûœ àÉ¡Œ×žžœ4êžüºž7Ô¼ž ù  ºžVEü¼ž5ùÚŽ"`ùîŽ"`ÑùùÖ¥.`£G²Ý5ùÙñ@`áÙñ`�úX#ÌŸüË™�” üž›Ëü��ÞÏ©ü¸š0äš,ò™Ÿ€ ,�šœ¬,œš¤¤˜’˜ÙæãÈz�Ÿoæã^•¥Þû—æãÀÉ¡µ†¦¤æã— ë� Oœ¬9œ¬¾œ¬\œ¬ËÉóAË–`Í››8Gºž‡¦À 󠦫ÂÑùà�ú« DÔ¡�Ÿ4ᡤԡݡ ¨ L<\Ý¡.<Ê¡  Ï¡ à ÊŸ4‚¤  üä£0Üæ£ ®  ä£@LФüæ£.\µ¤ ×�4Ť  ¼µ¤Á¤ š  L< \Á¤. <«¤  °¤ à ‘ž¤÷¦Ëž4�§üȦ…Üʦ �  ȦWFLµ§üʦƒùæŽ"`ùðŽ"`Ñùùâ¥.`£G²Ý5ùåñ@`áåñ`�úX#¨¨ü‹ �• ü页üͤоµü“¡%äš,³ Ÿ€ , œ¬,Ý Lø Å™Ç™È™­É™Ê™àË™óG*¤�R{9 ÝÇþ…œ:æã.ÞÝÇÓæã¿Å™Ç™È™­É™Ê™àË™óG*¤�R{9 ÔÉ�国æã±aÔÉV ËžEæã8¡ë� 本眬gœ¬œ¬l`óAc–`f¡¿k›Ù ›îðŠÇG”ÈÅ�É^¢ÊÆÑù‰�úTL�ªØ“´�ªT™ª´¨.d™ª«ª˜ üâ©Iã“Tú©äš,𩬖x9´¨~L¤«Ø“Ĥ«d®«—ÿ.t®«\Ø«×�ÔØ«dä« ™ 0tä«|ƫ˞˞,ü«‡¬BËž ñ« †¬üêª�™ ü”«sËŽ,„«äš,úªËŽL˜«¬–AËžõå›1óA3{—ÿdõÑ-˞ˎ­Lù¬Ø“äù¬\ƒ­½€.,�­”ƒ­|Ÿ­Ëždµ­×�üŸ­#,¯­ ¢ G6œ¯­É­š üƬƒî¬äš,Õ¬Ÿ€ ,ܬϬ–η囩=óA?o½€¯Õà ¤ó°dù°¤¦,ó°tù°*üó°"\ˆ±ù† Plˆ±*L«±Ø“ô«±4µ±ÜÔ.,¼±,ñ ¤µ±üã±"|è± “ $ã±,ø±,ÿ±ìè±= üݱ( `g €ì…5  D€µ¯³¶D�µ ”µ $ݳ €ì…»Áô‡L½´ Ø“ü½´%lÇ´Þµ /,Õ´,Ü´ ÜÇ´L�³ Ø“ô�³4™³ÜÔ ., ³,§³ ¤™³¦µ� üž°ˆü”²§üȳ¨Äý´³¶lذäš,¨°Ÿ€ ,¯°œ¬,°Õ� Àإɬ–aƒ¥ܘ²ü”² ¬–þô‡{¬–^³¶Ã…óA‡–`‰Ü»$®²Ú•‡Ü»Ö matornotÁ ¤¦„ù† SÜÔ ÀØØÞµÝÜÔ•¤â¶d趤¦,â¶tè¶*üâ¶"\÷¶ù† Pl÷¶*Lš·Ø“üš·#\¤· Œ/,°·,··̤·ü×·"|Ü·ÀØ$×·,ì·,ó·ìÜ·; üÑ·( ^e €ì…5  � ¯³¶]   «»¯³¶à‹¢ Æ»\Æ»<È»»ý( LÈ»$‘» Å™ö $Û¹ €ì…»Áô‡LÀºØ“üÀº*”ʺà¿/,ݺ,äºüʺ Lˆ¹ Ø“üˆ¹#\’¹ Œ /,ž¹,¥¹Ì’¹ Ó»<Ó»Õ»õý(,Õ»ü·»$t·»¡þaG&ü²»* Å™ö  Û»í»ž ü嵈üˆ¸±üƹ²ü£»9ÖáŒÃ¶äš,ýµŸ€ ,Œ¶œ¬,§¶‚Õ� ÃØ¥Ì¬–dƒ¥ÜŒ¸$ˆ»üˆ¸ ¬–™ô‡¬–û‹¢ªö 4›††€ÿ w€ÿ‘¼óA¾–`ÀÜ»$¢¸Ú•‡Ü»Ÿ £+L ¤¦¶ù† … Œ<ÀØ »ý%à¿¥ Œ\õý¡þø¤ú¼d€½¤¦,ú¼t€½*üú¼"\�½ù† Pl�½*L²½Ø“ü²½ D¼½Ï”/,Ž,̽ ´¼½üì½"|ñ½ÀØ$ì½,�¾,ˆ¾ìñ½; üæ½( ^e €ì…5  � ¯³¶]  $ÉÁ  ,§Á  $ô¿ €ì…»Áô‡LÙÀØ“üÙÀ'|ãÀ¸Ê/,óÀ,úÀ ìãÀL�¿ Ø“ü�¿'|§¿¸Ê /,·¿,¾¿ ì§¿ÞÁŸ ü¬¼²ü�¾µüß¿¯$è¼äš,¸¼Ÿ€ ,¿¼œ¬,Ò¼¦Õ� çØ¥ð¬–ˆƒ¥@Ü¡¾$žÁü�¾ ¬–þô‡{¬–^†óAˆ–`ŠÜ»$·¾Ú•‡Ü»Í þ¤¦—ù† fÏ”ÀØê¸Ê¿¸Êw¤ÆÃdÌä¦,ÆÃtÌÃ*üÆÃ"\ÛÃù† PlÛÃ*LþÃØ“üþÃ+dˆÄÞš/,•Ä,œÄ,£ÄüˆÄ!LÁÄ Ø“,äÄ \äÄ  üÁÄ/ÄËÄ¶Ó N . üËÄ%0 üÛÆ"|àÆÀØ$ÛÆ,ðÆ,÷ÆìàÆÌÎÅ4ÓÅ ºŒ–$ÎÅ,ÚÅ,áŤÓÅÐñÎÅ ´‚X #/ ÚÔÎÅm‹¢ ìöÅœöÅ�Ö ŠÆ,�Æ *£òçÅöƒÚü¶É ­Æ \­Æ<¯Æ»ý(L¯ÆŒ¨Æ Å™›†Ä¡Æ®üÕÆ( Ѐì…- ù¯³¶V  Þʯ³¶à‹¢ åÊ Ô»Ì,ÎÌ¥• ,»Ì <ÎÌ$ÄÊ Å™›†\½Ê$óȀ셻Áô‡LãÉØ“üãÉ2œíÉÀØ/,�Ê,ˆÊ,�ÊüíÉ(L—ÈØ“ü—È+d¡ÈÞš/,®È,µÈ,¼Èü¡È! èÌ#LèÌ,êÌú„#("<êÌ óÌ%<óÌõÌõý%($,õÌ�óèÌ! ¶ý"$ü»Ì@$ãÌÜ–  Ð!@ÄãÌ ¤Í(\¤Í<¦Í»ý(('L¦Íô’Í& §-'ü»ÌvD‰Í¨— —&6ü‰Í(L»Í )Ø“4àÍ *ü»Í3 œÅÍÀØ)>,ÙÍ*6,èÍüÅÍ)ôÍ  ü�Â× üÆÅ~")0”üÍÆ§üŒÇÅüÞÈÆ„ÖÊü¯ÌÅ+€ªŒ§Ãäš,¶ÂŸ€ ,Åœ¬,àž©,ûÂÞÕ� Ø¥(¬–À9¬–x[×ñt‹¢ ÊÅЉ§³¶ò‹¢vW›†ó€ÿ ‹¢ ÑÆƒ¥nÜ�Ç$´ÊüŒÇ ¬–pô‡÷¬–Ú‹¢�Ù¤,³ÌÙ¤µÙ¤v… éP€ÿj)€ÿCØ¥Œ›†¼€ÿÖ¬–`œ¬T „óA‡–`Š©&�£M Æ MÚü¶Ž¾£1Ü»$¦ÇÚ•‡Ü»£¢ –` ¤¤¦$ ù† óÞšª öK¶ÓAÀØôòÑ´‚–�Ö+öƒ¤»ýÌ¥• ÙÀØSÞšú„·õý†Ü– D»ý ¨— ÓÀ؆LÇÏØ“üÇÏ9ÌÑÏ�«/,ëÏ,òÏ4ùÏüÑÏ/†Ð¡ ü³ÎÓ¼Ïäš,ÙΟ€ ,èΜ¬,ƒÏ�¦ 4žÏ¬–³5óA7–`9ª§ <‚�«á ªÕ\ªÕ<¬Õ»ý(L¬Õ'´ªÕD¶Õå¿LT¶ÕÔªÕ ÃÕ& (MtÙÕ  æÕ&  (M  Ì�Ö<‡Ö«ƒ,�ÖT�Ö œ‡Ö2  TôÕ  $ùÕ  àÑ„ ¾ÖL¾Ö,ÀÖú„(<ÀÖÜ­Ö„­Ö¥…@ü¥Ö# üíÕb ¼èÖ<îÖ«ƒ,èÖ DöÖ ŒîÖ2TÛÖ $àÖàÑ„ £×<£×¥×õý( ,¥×̒ׄ’×¥…@ üŠ×!üÔÖ^´×üÏÔå¢ ü™Õ›üÊÕêü›Ö4ü€×2’Õ‹¢ æÔž©,ðÔT�Õ8·Ív›†€ÿ™Æ£5DÎÕÆ£ëÄŠ•_Ñ„T¹¨ :€ÿTĊިф�¹¨Rƒ€ÿ�£É©&Ë slot_startÁØslot_endÁµ ùÀð ùÀv»ý{å¿M«ƒqú„û¥…Ù«ƒ›õý%¥…(üÆ  ¤²Ý`üç ¹—"îÝNSÀ¼`eQrüË ˆ Œ­à˜¼— ·á¨²Ý°îÝŸ áðªáð²Ôœáë¤�îÝßÀ¼þ<— ¹—¤ ¾ üãA áðlÿ ¼—,õ  .(ý±  ¥ ²ÝpýØ ðÄ"îÝNSÀ¼`eQrý¶ � Œ­à˜áð ·á¨²Ý°îÝŸ  ðÄ­““µ×œäî‘“îÝâÀ¼4… ðÄ<° ðÄ”¦ ¬  É ,¦ 4d¬ ü…C ÌŒ  ŸqL,º 4Á üŒ< Î à üàî ú áð,‘ ¥²,  œ¬,Á �¦ 4Ü ““è ±ÇÉ““çDóAG–`Jª§ N�š”ʔˆ řǙș­É™Ê™àË™óG*¤�R{9 ±Ç]b †Æ–t|(€Û Ž €à ’ -ó—9¤ÅAÆ–Ê Æ–Õ]g›—ò(�â  ¦ ²Ý¨�ˆ Æ–"îÝNSÀ¼`eQr�ç ” Œ­à˜¤Å ·á¨²Ý°îÝŸ ‚˜ª‚˜²Ôœáëí™îÝßÀ¼þ(‚ö"  §²Ýø‚£# řǙș­É™Ê™àË™óG*¤�R{9 ò˜\hîÝ”™À¼¦«—¸‚û" ™ Ò­àÞÑ—æ·áî²ÝöîÝå  æšó¾œûœ+6¼œîÝ+À¼K(ƒ€1  ¨²ÝèƒÚ1 «¡"îÝNSÀ¼`eQrƒ…1 ž Œ­à˜ ò˜£·á«²Ý³îÝ¢  «¡°Òž¸ÚœçñОîÝåÀ¼À†ÎJ řǙș­É™Ê™àË™óG*¤�R{9 ì£]b †³Ÿt|(†îI Ÿ †óI £ -¬™9¹ÅA³ŸÊ ³ŸÕ]gˆ ò(‡õI  ©²ÝÀ‡ÎJ ³Ÿ"îÝNSÀ¼`eQr‡úI ¥ Œ­à˜¹Å ·á¨²Ý°îÝŸ ԜáëÚ¢îÝßÀ¼þ(ˆøR  ª²Ý¨ˆšS řǙș­É™Ê™àË™óG*¤�R{9 «š[gîÝ“˜À¼¥ª–·ˆýR ª Ñ­àÝæ—å·áí²ÝõîÝä  Ò£òª¥úœ*5¨¥îÝ*À¼J4±V Ò£|±V 4¸V  ðW«š1D¸V €ü±V   �%…ãG#(4G„±V måפÏV dÕV ¤¦,ÏV tÕV �ýÀV  �%…ãü¶Úü¶" ¿\  üÏV" \äV ù†  €läV ' „‚W <‰W  å 4‚W  L‰W ü‚W+ Ä“W  ‰ B  Ô“W )  $ËW  Å™å×Ú dãW  Å™å×õW  Þ üÔU¡ ü¤VÑ FMT¢ …ã´ƒV æ—,æU œ¬,íU ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ü¶å×m…㢪¥Áòå×BÅÕ� 8Ø¥A|�ù¯»–`¾engineÁ4¨V Æ [Úü¶Ž¶E¡¦Dͦ¤¦¾ݧ-ù† bר1‚©(‰òX  « ²Ý`‰¿Y ¡é"îÝNSÀ¼`eQr‰÷X ¯ Œ­à˜å× ·á¨²Ý°îÝŸ ‘ýª‘ý²ÔœáëÉ®îÝßÀ¼þ4Éu ¡é„Éu <Ðu ¼˜+LÐu Êw å üïtÛ �ù$„u å×,út ‘ýq7¼˜x°�ªx řǙș­É™Ê™àË™óG*¤�R{9 �ë]b †Á°t|(�×w ° �Üw ´ -åš9ÎÅAÁ°Ê Á°Õ]g–±ò(‘Þw  ¬ ²Ý°‘ªx Á°"îÝNSÀ¼`eQr‘ãw ¶ Œ­à˜ÎÅ ·á¨²Ý°îÝŸ ý±ªý±²Ôœáëè³îÝßÀ¼þ(’í€  ­²Ý ’Ž� řǙș­É™Ê™àË™óG*¤�R{9 ä›\hîÝ•šÀ¼§¬—¹’ò€ » Ô­ààû—è·áð²ÝøîÝæ  â´ô»¶üœ-8¹¶îÝ,À¼M4¹… â´|¹… 4À…  ðWä›4DÀ… €þ¹…   �%•¥K$)5H„¹… mÉ¡dÓ…  Å™É¡å… “ÿÈ…  �%•¥ü¶Úü¶#ÃDñ üÜ„‰ ü¬…9 U[a°•¥¬Œ… û—,î„ œ¬4õ„ ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ü¶É¡~•¥¶»¶ÖÉ¡R”_inputÁœš«4°… Æ BÚü¶ŽŸµ·1ã· ö¸(“½†  ® ²Ý “„‡ á�#îÝPUÀ¼bgRt“† À �­à›É¡£·á«²Ý³îÝ¡ë² ©¤ú ±Ôœáëë² îÝÞÀ¼þ<ó£ řǙș­É™Ê™àË™óG*¤�R{9 �ƒ„ó£ 4û£  ñW�ƒzDû£ Ìó£ 4„¤  øWš‚ LD„¤ 4š¤ á�üš¤ T¡¤ ¸„ /,¬¤ ,³¤ Ä¡¤ üš¤5 <º¤  Ç_³¶Û†ô‡ö Û†ô‡UÿzÚ¦Àd¤ ¬º¤ »¦ õ ü˜¢£ üç£r  àŸü†£% É¡,º¢ †¦,É¢ œ¬,ê¢ š‚ ,ë£ Å™Ç™È™­É™Ê™àË™óG*¤�R{9 š‚ ¹ ‹¾"×… [¤ú {™óA›–`�óAŸï澕¿ò¸„ µ”À‚DƤ $Ȥ  «Û†ô‡ Ƥ 4Ȥ Τ ö ‹ô‡Ť ¦À£Û† ä › ãË4ਠá�„ਠ<ç¨ àþ .Lç¨ <‘©  ‹¾„‘© 4™© æ¾ / D™© Ì‘© 4¢© •¿ @D¢© ü‘©( d«©  µCt«© ü‘©* ÐèlÜ©   üÉ©( tÍ© ¬€ É© ?,ë© üÍ©$ üÉ©> <ò©  Ç_ÖáÛ†ô‡ø ¯À qÚ�Çdú© ¬ò© ó« ÷ üú¦ù üÖ¨» üþ¨“ «Åüñ§) É¡,¥§ †¦,´§ œ¬,Õ§ »ÏÚ¨ ¤ú  Ðèd‚© ü¤ vš‚ ¨ÆÁÚ”Âû‡á< ÐègÐèpƒóA…–`‡›ÞŠfwdcacheÁ‰ùàþ —æ¾_•¿=âŬ€ ÄûÆ�Dþ© $€ª £Ã þ© 4€ª †ª ø ™ô‡ý© �DZۆ û© › Ñ£Ã�4¦® á�„¦® <­® àþ .L­® <Ô®  ‹¾„Ô® 4Ü® æ¾ / DÜ® ÌÔ® 4å® •¿ @Då® üÔ®( dî® âÅAtî® üÔ®* ÐèTÒ¯   üŒ¯f üŒ¯/  ýͯ B,Þ¯ 3Þ± ù ü²¬¬ üœ®à üÄ®¸  Ï©ü°­0 É¡,ä¬ †¦,ó¬ œ¬,”­ »Ï ® ¤ú ¯ÐèLÈ® ü¤ š‚ MÆÁ” ðÈÐè wóAy–`{Ò}óAtäàþ 'æ¾ï•¿ÍâÅ«ªÍV4ƒ´ á�„ƒ´ <Š´ ”˜ .LŠ´ <´´  ‹¾„´´ 4¼´ æ¾ / D¼´ Ì´´ 4Å´ •¿ @DÅ´ ü´´( dδ âÅAtδ ü´´* Ðèlÿ´   üì´( tð´ Ò˜ ì´ ?,޵ üð´$ üì´> <•µ  Ç_ÖáÛ†ô‡û ¯À qÚÜÒd�µ ¬•µ –· ú ü�²ù üù³» ü¡´“ «Åü”³) É¡,Ȳ †¦,ײ œ¬,ø² »Ïý³ ¤ú Ðèd¥´ ü¤ tš‚ ¦ÆÁØ”Âù‡á<ðÈdÐèm€óA‚–`„¦Þ‡revcacheÁ†ö”˜ ’æ¾Z•¿8âÅÒ˜ ÁÊÒ�D¡µ $£µ £Ã ¡µ 4£µ ©µ û –ô‡ µ ÜÒ®Û† žµ › ΣÃ�4Ù¹ á�„Ù¹ <๠”˜ .L๠<‡º  ‹¾„‡º 4�º æ¾ / D�º ̇º 4˜º •¿ @ D˜º ü‡º( d¡º âÅ At¡º ü‡º* ÐèT†»   ü¿ºr ü¿º0  §�» B,’» L™» ;�½ ü üÕ·È üϹì ü÷¹Ä ¾µüî¸% É¡,ˆ¸ †¦,—¸ œ¬,¸¸ LÓ¸ »ÏÓ¹ ¤ú ÁÐèLû¹ ü¤ -š‚ _ÆÁ‘”²ðÈÐè�óAƒ–`…¡¿‰Ò‹óA‚ü”˜ G澕¿íâÅËöØv4³¿ á�„³¿ <º¿ àþ .Lº¿ <ä¿  ‹¾„ä¿ 4ì¿ æ¾ / Dì¿ Ìä¿ 4õ¿ •¿ @ Dõ¿ üä¿( dþ¿ âÅ Atþ¿ üä¿* Ðèl¾À   üœÀ? ì À  ÄœÀ A,ÍÀ 4ÔÀ ü À; üœÀf <íÀ  Ç_Û†ô‡þ ¯À zÚÑÞdõÀ ¬íÀ î ý ü±½½ ü©¿ã üÑ¿» «ïÔÓ¾ É¡,æ½ †¦,õ½ œ¬,–¾ �¦ 4±¾ »Ï­¿ ¤ú ÐèdÕ¿ ü¤ ‡š‚ ¹ÆÁë” ²×OðÈwÐ耋óA�–`�ª§ ’›Þ•»È�àþ ­æ¾u•¿SâÅ1ûÝÜÀÞžDùÀ $ûÀ £Ã ùÀ 4ûÀ �Á þ ¨ô‡øÀ ÑÞÀÛ† öÀ › à£Ã�àšÈà ‹¾ †‹¾08(šû Á š€Ã Å /žœ;ãÅC‹¾ˆ ‹¾“_iŠã°(›‚à  ¯ ²Ýà›Èà ‹¾#îÝPUÀ¼bgRt›‡Ã Ç �­à›ãÅ£·á«²Ý³îÝ¡ óã¬óã´×œäîáåîÝáÀ¼(œàË  *²ÝˆœþË Å™Ç™È™­É™Ê™àË™óG*¤�R{9 ��\hîÝ”™À¼¦«—¸œåË Ì Ó­àß’˜ç·áï²Ý÷îÝæ  Ûæô´èüœ,7²èîÝ,À¼L4´Ï Ûæ|´Ï 4»Ï  ðW��4D»Ï €€´Ï   �%¤¤K$)5H„´Ï m�ŸdÎÏ  Å™�ŸàÏ “�ÃÏ  �%¤¤ü¶Úü¶#ÃD‰ üÚΆ ü§Ï9 U[a°¤¤”ŠÏ ’˜,ìÎ œ¬4óÎ ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ü¶�Ÿ~¤¤¶´èÖ�ŸR”Šº—š«4«Ï Æ =Úü¶Žš®é,Üéïê (�¨Ñ  ° ²Ý�©Ò "îÝOTÀ¼afQs�­Ñ Ñ Ž­àš�Ÿ¢·áª²Ý²îÝ ‹´ ¨�´ °Óœàê‹´ îÝÝÀ¼ýù ­D`Á ­`¥´ ù Æ*`±(²Ý2� üÎòÎ àŸü›ó% �Ÿ,ðò œ¬,ÿò p–`Q¥´ šù£­D`Á£­`¥´ ù£Æ*`±(²Ý2� üÛö� «Åü±÷) �Ÿ,†÷ œ¬,•÷ p–`Q¥´ šù¦­D`Á¦­`¥´ ù¦Æ*`±(²Ý2‘ üªû› Ï©ü‡ü0 �Ÿ,Üû œ¬,ëû p–`Q¥´ šù©­D`Á©­`¥´ ù©Æ*`±(²Ý2’ ü„€‘ «ÅüÚ€) �Ÿ,¯€ œ¬,¾€ p–`Q¥´ šù¬­D`Á¬­`¥´ ù¬Æ*`±(²Ý2“ üÔ„Ö ¾µüÌ…% �Ÿ,‡… œ¬,–… L±… z'–`)¡¿-i¥´ ²ù¯­D`Á¯­`¥´ ù¯Æ*`±(²Ý2” ü¾‰ö «ïÔ¿Š �Ÿ,ó‰ œ¬,‚Š �¦ 4�Š z(–`*ª§ -i¥´ ²(³à‘  ² ²Ýسˆ’ řǙș­É™Ê™àË™óG*¤�R{9 ‘ž\hîÝ•šÀ¼§¬—¹³å‘ Ö Ô­ààå›è·áð²ÝøîÝæ  ³øôŒúüœ-8ŠúîÝ,À¼M4¼– ³ø|¼– 4Ö  ðW‘ž4DÖ €‚¼–   �%©ÍK$)5H„¼– mÔÉdÖ–  Å™ÔÉè– “ƒË–  �%©Íü¶Úü¶#ÃDš üÁ•§ ü¯–9 U[a°©Í䈖 å›,Ü• œ¬4ë• ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ü¶ÔÉ~©Í¶ŒúÖÔÉR”Šº—š«4³– Æ =Úü¶Žš†û,´ûÇü (´õ–  ³²Ý€´× ïò#îÝPUÀ¼bgRt´ú– Û �­à›ÔÉ£·á«²Ý³îÝ¡�¥ ©»Ï±Ôœáë�¥ îÝÞÀ¼þ<ƒ§ ïò<¨§ řǙș­É™Ê™àË™óG*¤�R{9 û󄨧 4°§  ñWûózD°§ ̨§ 4¹§  øWÐèLD¹§ T–¨   üϧr üϧ0 öØ‘¨ @,¢¨ L©¨ 9­ª � üø¤µ üù¦Ò ü˜§³  ¾µü˜¦% ÔÉ,«¥ šÎ,º¥ œ¬,⥠Lý¥ »Ïý¦ ÐèLœ§ řǙș­É™Ê™àË™óG*¤�R{9 Ðè† ì�ïðÈ?ÐèH®óA°–`²¡¿¶Ò¸óA¸)Ç‚ö‚ÙöØ”йŽ« ì� †ì�08(¹ºª Ü ¹¿ª à /Ëž;úÅCì�ˆ ì�“_iõ†°(ºÁª  ´²ÝкŽ« ì�#îÝPUÀ¼bgRtºƪ â �­à›úÅ£·á«²Ý³îÝ¡ Þ‡¬Þ‡´×œäî̉îÝáÀ¼(»ã³  µ ²ÝÀ»ˆ´ řǙș­É™Ê™àË™óG*¤�R{9 ÊŸ\hîÝ•šÀ¼§¬—¹»è³ ç Ô­àà…œè·áð²ÝøîÝæ  ÇŠô Œüœ-8žŒîÝ,À¼M4¢· ÇŠ|¢· 4©·  ðWÊŸ4D©· €„¢·   �%¯ÌK$)5H„¢· mÝÇd¼·  Å™ÝÇη “…±·  �%¯Ìü¶Úü¶#ÃD¨ üÁ¶� ü•·9 U[a°¯ÌÌñ¶ …œ,Ó¶ œ¬4Ú¶ ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ü¶ÝÇ~¯Ì¶ ŒÖÝÇR”Šº—š«4™· Æ =Úü¶Žšš�,È�ÛŽ (¼–¹  ¶²Ý¼¦º "îÝOTÀ¼afQs¼›¹ ì Ž­àšÝÇ¢·áª²Ý²îÝ ‹´ ¨�´ °Óœàê‹´ îÝÝÀ¼ýù¿­D`Á¿­`¥´ ù¿Æ*`±(²Ý2® ü‡ÐÍ ¾µüÿÐ% ÝÇ,ºÐ œ¬,ÉÐ LäÐ z'–`)¡¿-i¥´ ²ðÃê ôÄ ŽÆ )1øÃŽ ØÚ±É *3(ú í ÿ þ >ñ M„ Y „ dôÄ Ú•Ì âØÚ´‡Í ¼�—ŽÆ ±É àôÄ „(ÄÁ  ²ÝðÄê  I²ÝôÄ *îÝøÄŽ  ·²Ý ØÚ,  8 îÝž£¤é°µ¢§qvÑÄÆ ó ë ­à÷â–ÿ·á²Ý²ÝîÝ •Ì ²ÝáîÝéõçñ‡Í ùUœcn•Ì îÝdõçîÝ3¤é�ðÅê  ÊÝ øÅŽ  žß 8ÅÈ í ÅÏ ÅÎ >õ M„ YôÄ ŸØÚˆpÊÝ ¸žß ŸôÄ \L™; Ÿ;  #/@?  š; M p/z |“; “; $ 'K ¡; üü:' Ô ,‹; $,3Æ££E_ÁpÆóP „  †„ /7àÆ¦Q ·¬Ðæ)2(ÆËP ö ÆÐP ÆÏP >ú MÞ Y Þ d„ ßâ–ç·¬³Ëç»�—¡ŸÐæß„ „(ÇÒP  ²ÝpÇóP  ²Ý„ *îÝàǦQ  ²Ý ·¬*  6 îÝœ¡¤é®³ ¥otÏÇ×P ü é ­àõÏ ý·á²Ý²ÝÿîÝâ–²ÝÞîÝæ¾êîËçöRœ`kâ–îÝa¾êîÝ0¤éŠ «X  l±X ·¬ü±X" T¿X Ôë,DÊX ¤¿X ø†±X#   �%¡óJ$)5Hü±X# m�» !, òX    ÄÞX tãX  Ü $ÞX  A œãX ‡ÓX [ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÏï×°Gu �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw«¡×°‡§Þ¾ ûX  üX ! ))ü¤WØ V f  Ú 4ü§XU w~… ò§üöW& Ï ,ÎW §òDÝW �»êÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^‡§�»ë¡ó"ËçA-‡§6�»È�»™c´¨ ¸ß'¥Æ €Ž `Ô릩¥Ò¦Üì§��»ÐpÈÒ† „ ¡Ÿ*2@Èæ† �»‡…*3(ÈŸ† ý Ȥ† È£† A�!P«¡\Òžd„ Ûâ–ã�»´�ù¼�—¡Ÿ‡…à„ ‚(ɦ†  §²ÝpÉÒ†  ²Ý„ +îÝ@Éæ†  ²Ý �»+  7 îÝ ¥¤é²·¢§puÓÉ«† ƒ!î ­àúÒž·á ²Ý²ÝîÝ â–²ÝâîÝêœþò�ùúYœgrâ–îÝfœþîÝ4¤é‘슗 ÜŠ—  è !üŠ—2 T¨—  Ú µ“MD³— ¤¨—  Á— — ü˜–ª â ò§üÙ–& §òDÀ– Ï ÍÞ Õ¨ T‘²ôÁ²ËÞ ˜Þ ždÔã „ æã í ü¦ã@ â–<Âã Òž,¸ã  1LÕä �»ää î ü­ä7 �ù$Æä Òž,¼ä  1 Œ‹ù T�ù  í $‹ù d�ù ü‹ù( ¤�ù  Ó H´�ù ü‡ù,  ‡ù ' (NüÊù' DÊù  ® DÓù œÝù § 6ü�ú* t–ú  ˜¨4�ú œ¥ú § ü–ú# D€ü  �»Œ€ü 4‰ü  ƒ 0 D‰ü ¼€ü   üïû)   $  5  üïû; t™ü  –¨a ¨ü Œ™ü °ü ï üýö³ üøø¸ ü½ùó üûùµ  ,Ÿ÷ Òž,•÷ Düø Bâ–yÆ£*4Áù lÿù 1  Ƚg�ù‡?qïŒublocksÁb real_capacityÁpì8§ § öµ.¥¶¯·„ì·N¸þ ³wȽâÁ¹”dñ� $÷� ͤ,ñ� 4÷� Üñ� Dþ� Ù¥C$‡‘  tþ� 4³‘ <»‘   ñ Ó¤¶¨  ž©ü–‘- „›‘  ‡ $–‘ ,¬‘ lbü›‘( ü–‘F Ä‘  º_€ªÛ†ô Ó¤€ªUÿ„ÚÙ¾œÈ‘ ÄÄ‘ â‘ ñ üÐ�’ üå�}  ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÛ†ÄÂ� Òž,…� ì£,”� Ó¤,¯� Ù¤,é� Ù¤ä¬gœ¬²ž©¬¶¨µ]óA\–`^–``ͤjÙ¥E‡¾Ôɾ™À‘  ¹¨*:ñ V¶¨X¸¨GhΑ lΑ <Ò‘ ÿª(LÒ‘ Û‘ ô ýÍ‘ Ù¾€ªÉ‘ Ϭv¾¾<ÿª…4dÓ› $Ù› ͤ,Ó› 4Ù› tì› <ñ›  î $ì› Lñ› äì› \û› é˜Elû› üì›!  Œœ '$­œ  Å™¯€$³œ  Å™¯€d¬œ  ¹¨  4óœ  Tûœ ž©üÖœ0 „Ûœ ‡¾$Öœ ,ìœ ZP üÛœ+ øŠÖœ1  ŽÚ W $ 0 ÚüÖœ1  m€ªüМ7  ‹†�  [´Û¤"À� .0½È� à›† ˆž  D‚ž % / $¬�  Å™‹¢D©�  Àœ³¶Û†|¢� 0�tü�   Ëž ீ<Ñž Óž ®¸ Ñž ,Óž $¯ž  Å™‹¢D¬ž  Àœ³¶Û†Ú0 ‹Ÿ  D…Ÿ % /J tÿž  Ο !ீ<ÔŸ ÖŸ ®¸! ÔŸ ,ÖŸ $²Ÿ Å™‹¢D¯Ÿ Àœ³¶Û† Ú 0œ—  $ Ú,ü‡ $ T‡  ½º’  $=#)ü‚ * " Å™‹¢#üÿŸ. Àœ³¶Û†"üøŸ5 0tÍ  <Ò  —Ä$Í  &LÒ  ÜÍ  TÜ  µ’&C%dÜ  Ì‚¡ Œˆ¡ î»%,‚¡ 'œˆ¡ $º¡ ) Å™¯€ùÊ„ !±Ê„ ¸¼)7'LÀ¡ (,4�¢ -T‰¢ /(…½/#.1,üä¡0 „é¡ ‡¾$ä¡ ,ú¡ -j.`,1üé¡+ øŒä¡1  ŽÚ,X+1 %0+10üä¡1 2+m€ª32üÞ¡7 3 �”¢ 1+[´Ûš"À� 1.31´΢ 52à›†Ö¢ *5,€£ 8(†£ ;*t†£ DŠ£ å¿;(:!1TŠ£ $¶¢ 4 Å™‹¢D³¢  Àœ³¶Û†4|¬¢ /”†£ <: —£ & <:("1N9<¤…£ «Á89z7#1#Ì€£ =7üú¢ =%$ Ò£ ?7ீ<Ø£ Ú£ ®¸? Ø£ 6&1,Ú£ $º£ > Å™‹¢D·£  Àœ³¶Û†>Ú/,„¤ B(Ф F*tФ Dޤ å¿F(E'1Tޤ ”Ф GE ›¤ & GE((1NDG´Š¤ HD Ÿ¤ & HD()1NCHĉ¤ «ÁBCzA*1#설 IAüþ£# I,+ Ú¤ KAீ<ठ⤠®¸K ठ@-1,⤠$¤ J Å™‹¢D¿¤  Àœ³¶Û†JÚ/œ”¥ N Ú,6@ü„¥$ T„¥ ½º*�¥ N=M.1*üÿ¤* L Å™‹¢Müü¤.  Àœ³¶Û†L ¯¥ (0(0°¥ -(2ü­šƒ `/õ üÇ›é üœœœ üÆœò F M T – „Ã� üð�È ”Æž üõžÃ  ”ÉŸ  üÁ ï üò ¾  ü¥¡‹ üÔ¡Ü “š¡ã„É¢ üî¢Â ”Í£ üô£¼ ”Õ¤ O×… ü››! Òž,Þš ¬À,íš Ó¤,ˆ› Ù¤,Ë› À ï �ù& ¾ÉL œ ¹¨¯ ¹¨Ÿ áÝ ä¬P œ¬‹ ž©… çÊŽ ¬ ´Ûµ €ªù $š� ³¶ ›†Ÿ ,ô� — € $�ž ³¶™ ¯€ê ùž o X $ Ÿ ³¶· ¯€ ³¶: ‹¢q Åž– ã“,Å  �ù Lö  ‹½L©¡ ¹¨±›†Ø¡ áÝöä¬@œ¬‹ž©…ÖÌŽ¥´Û®€ªò$¤¢ ³¶›†—,ò¢ �Í“›ÍŠz·Í”Æ£$¨£ ³¶<¯€�ø£ �Í ›Í~ä·Í.Æ£þÆ£©$°¤ ³¶Ç¯€³¶I‹¢�Åž¦ÊóAÍ–`Ж`Ó©&¼¾¾Êœ Æ :Ž�¾¾‚} ©F ’` ©G !ÊÎ( %ÛÎ"'©&#(¾¾*Æ – 1ŽÝ 2¾¾s 5‚à6©'?’ž@©_Kͤ—Äòé˜Ë‡¾ûŽÚÂÀ� É®¸®¸ö ½ºr —Äý µ’Ø î»¶ ¸¼x …½? ‡¾ ŽÚÙ À� à å¿å «Á ®¸»å¿2«ÁS®¸ð½ºk‹½‹½ ‹½d¾± $ı ͤ,¾± 4ı l½± ü¦±+ T«±  † $¦± ,¶± ;$̱ ü«±& ×± ø üö¯á ²×´…± Òž,«° ¬À,º° Ó¤,Õ° ÕÖ$ç° œ¬°Ù¤â=óA?–`AɾD‹ͤ'‚èó $⺠  tûº <€» —Ä$ûº  L€» Üûº TŠ» µ’D dŠ» üûº# ,—» à’B <—» üéº6 Œéº  ‡E #,Æ»    dÆ» $Ì» ͤ ; 4Ì» ü²»! œ²» ̇  C"$ÿ»  üÝ»,  „! �¼  ޼  ü¸¹× !1  û 5üÞº± ü©»f  „!„!ÜÕˆ!é¾² ‰!óA² Š!ɾ² ‹!Û˲ *wIå äF9Ô¹º ÒžDö¹ ¬À,ˆº Ó¤,¦º ˜Û{ýÝã“5�ùk¢‰ ­» Ù¤±Ó¤Þ˜Ûr5sóAu–`wɾõÛËci—Äêµ’Äà’¡­ë}ͤ8̇ ˜Û±Ó¤¸$ÛÉ   ´âÉ |çÉ  ê $âÉ ŒçÉ ,ŸÊ   dŸÊ $¥Ê ͤ;4¥Ê ü‹Ê! œ‹Ê ̇ C"$ÜÊ ü¶Ê0  ‘!ìÊ  ëÊ ü©Èà !1 € 5ü×É• ü‚Êj  ‘!‘!ÒÖ•!é¾² –!óA² —!ɾ² ˜!Û˲ ��÷Î"DÖô®É ÒžDëÈ ¬À,ýÈ Ó¤,›É ˜Ûþ¢‰ †Ê Ù¤–ӤØÛWXóAZ–`\ɾ]ÛËcNüðRͤ̇ å˜Û�Ó¤ˆ $üê  Å™›†´ëê \ðê úÚ$ëê :Œðê „¹ë L¾ë �Ù$¹ë \¾ë ü•ë5 „šë ‡¾$•ë ,«ë ,²ë \üšë0 øŽ•ë6  ŽÚZ$ 0 Cü•ë6 m€ª¬Õë \Úë úÚ$Õë æë „Úë �Êë [´Ûµ"™Ü . Î4ôë  ÀœÛ†Ú€ì  † üÌé´ ü‹ëu “™Ÿó²×´Êê Òž,çé ¬À,öé œ¬,‘ê ÕÖ$¬ê  €ªDáÝ’ä¬Þž©´Û€ªt`{óA}–`ɾ‚¾¾�ë  Æ | ŽÖ úÚÔ�Ùª‡¾…ŽÚIúÚê™ÜW1tí† <ò† —Ä$í† Lò† Ôí† Lü† ¾àC\ü† )t‹‡ <�‡ —Ä$‹‡ L�‡ üí†6  Ä‹‡ <š‡ ÇádLš‡ L±‡   ü؇. ¤Ý‡  Œ $؇ ,ò‡ ,ù‡ ,€ˆ ü݇) ø�؇/  �á _  $  0  Úü؇/  mÖáüŸˆ ¨ˆ  þWö ›†ˆ ›ð›†UÿDŸˆ ÚÑÿŒ¬ˆ  ´¨ˆ ‘†ˆ   [´Ûâ"¿é ..ûüœˆ#  Àœ€ªÛ†ü•ˆ* .t™‰ <ž‰ —Ä$™‰ Lž‰ Ü™‰ T¨‰ µ’Cd¨‰ ü™‰/ Œµ‰ î»Aœµ‰ ,Õ‰ \Õ‰ ”Õ‰ ü…Š. ¤ŠŠ “þ$…Š ,ŸŠ ,¦Š ,­Š üŠŠ) ø’…Š/  �á]$0 ü…Š/ mÖáüÌŠ ÕŠ  þWö ›†‰ ÚÿDÌŠ ÚþƒŒÙŠ ´ÕŠ “³Š [´ÛÏ "¿é..èüÉŠ#  Àœ€ªÛ†üŠ* .tƒ‹ <ˆ‹ —Ä$ƒ‹ Lˆ‹ 䃋 \’‹ é˜Cl’‹ üƒ‹!  £‹ '#$Å‹  Å™¯€$Ë‹ ! Å™¯€dÄ‹  ¹¨ !\�Œ % $%ž©üè‹4 ¤í‹ “þ$è‹ ,‚Œ ,‰Œ $S#üí‹/ ø”è‹5  �á#Z"$ &"0 & üè‹5 ("mÖá4Ö� +,ß� .\ß� -.h–Ý� , àý-|Ü� Æè+a,8* !•œŒ '"[´Ûë"¿é'..ü¿�- |Å� ñé,¿� *´Õ� )!üÅ�' Ô„Ž ˆŽ  þWö ›†Š Úÿ(„Ž Ú·ŠŒŒŽ /"´ˆŽ ô�Ž  Àœ€ªÛ†/üú�% .$ÉŽ 1 Å™¯€ùË„ !±Ë„ ¸¼17ÏŽ 0$,\�� 50…½5#4%/,üçŽ4 ¤ìŽ “þ$çŽ ,�� ,ˆ� 4c3&/üìŽ/ ø˜çŽ5  �á3[2'/ %6216() üçŽ5 82mÖá4É� ;0,Ò� >\Ò� =>hšÐ� < àý=|Ï� ¾í;a<8:+/"™›� 72[´Ûí"¿é7.*/ Œ‘ 0.ü²�- |¸� ñé,²� :´È� 9,/ü¸�' Ôì� ð�  þWö ›†‹ Úÿ8ì� ÚÔ�Œô� ?-/´ð� ôé�  Àœ€ªÛ†?À0.�‘ Û00ü›…ò ‡ ü݆° üɇ� x† ü�‰þ üö‰� …Œ “  ü³‹÷ üÞ‹Ì  F MT èü³ŽÚ üÝŽ° ïöý’@ä¬ü­†% Òž,¼… ¬À,Ë… œ¬,æ… ž©,�† LᆠM �ù‚ �ù% ¸ ýêW ‡á¨ £ ´Û¬ Öá. €ª “‰ ã“9 �ùn Ùð×ñ ýꈇá×ç´ÛðÖáj€ªWJy�ù®¾ÉT·‹ ¹¨9¹¨)ýê�‡áéž©çÊò´Ûû Öá‘ Î×ñ;çò‘Ñèlƒ×ñœ€ªÍ‹½T·Ž ¹¨_ýꥇáòž©.ÖÌ7ø´ÛÖá˜Á×ñB›Í˜ÑèsŠ×ñ£€ª¿3óA6–`9©&<ÎóBmaybe_hmÁD͇ Æ Ë  ŽP ãó–Dú‰ Æ Ú ŽW òóÐ „ôâ‹ (Æ �'Ž6(òól0„ôᎠ8Æ H7Žâ83%—Ä�¾àk—Ä8Çáò “þ° �áo Ãÿ ¿é} —ÄS µ’. î»  öÛ “þ® �áo ðƒ ¿é} —Äf é˜A “þ€ �áD  öÑ¿éR Æè±ñéT©Š%¸¼�…½e“þ9�áü öˆ¿é ‹½¾íoñéþÆ�΋½‹½%±ˆ d±ˆ <´ˆ ú¢ (L´ˆ ½ˆ ˆ î ›†°ˆ Ñÿö ­ˆ –ìx�ì/ú¢ ‡ÞŠ dÞŠ <አú¢ (LáŠ êŠ ‰ l ›†ÝŠ þƒ„ ö ÚŠ –ìx�ì­ ú¢ ‡‘Ž d‘Ž <”Ž ú¢ (L”Ž �Ž Š Ö ›†�Ž ·Šî ö �Ž –ìx�ì ú¢ ‡ù� dù� <ü� ú¢ (Lü� …‘ ‹ Ü›†ø� Ô�ôö õ� –ìx�ìú¢ ‡(Ì¼à  ¸²ÝÐÌðà  h²ÝÒž+îÝ Ì�á  B²Ý ¬À+ îÝpÌªá  z²Ý ˜Û+  îÝ°Ì¾á  ²Ý¢‰ +7îÝÆß ,2$îó ¼ Á Š�eÌÁà �!�­àŽ â횷ᣲݬ²Ý›îÝ¤О­²Ýzî݃ ¬À�²Ý\îÝeŸ¢n²Ý;îÝD§³ M©³ V.œ<GОîÝ;ˆ¤îÝ Ÿ¢îÝ×§³ îÝ¥Æßzðã Òžlôã ¬Àdƒä ˜ÛT‘ä ¢‰ üÊäd  ™ ú´ Òž¬ÀÕÖü»ät \¾ä  ½™ ú´ ²¦»ä ~ü¾äq ü»ä‰ L¹å  ÷_‹¢Û†q\¹å Êå ˜ üÒâø üÛãï  Å™Ç™È™­É™Ê™àË™óG*¤�R{9 ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw‹¢Û†üèâ! âíLÚâ Òžý ¬ÀôÕÖçÁ¶ Ú×… Šã¦Ö¬À!Né¾NóAEɾ<ÛË3Nۦ§àä Òž,îä ¬À$üä ÕÖüàä! Tãä ‚è Y I,õä Aôãä ø®àä"  ªŠ S$0C$“å ÕÖ „“å L˜å ˆ­;\˜å ¯�å [´Û²"À� .ˤ�å Àœ³¶Û†®å  ™ Ï…‹üàä"  ×… Ñä  ã¦œ¬,Ëä µ� Y²×žÕ´Ûݳ¶ Ÿ¢9ÒžM¬ÀVÕÖ_ÕÖh–`dé¾ØÒžóA,üã ¬Àɾ$‹ä ÕÖÆ iŽäÚÚ‚è`ªŠ +ˆ­ÄÀ� 9§¸ ûò¾®(Í–ê  ¹²ÝÐÍÎê  h²ÝÒž+îÝ Íîê  B²Ý ¬À+ îÝpÍˆë  z²Ý ˜Û+  îÝ°Íœë  ²Ý¢‰ +7îÝÆß ,2$îó ¼ Á Š�eÍ›ê �!�­àŽ ·óš·á£²Ý¬²Ý›îÝ¤О­²Ýzî݃ˆ¤Œ²ÝYîÝbŸ¢k²Ý8îÝA§³ J©³ S+œ9DОîÝ8ˆ¤îÝŸ¢îÝÔ§³ îÝ¢Æßw Üí Òžlàí ¬Àdïí ˜ÛTýí ¢‰ üËîp    ú´ ²¦ü¯î� \¿î  ½  ú´ ²¦¯î  w ü¿î} ü¯î¦ LÊï ª§ h\Êï ø°¯î§   �%÷§I&+ 7 Jü¯î§  m¼¨  Öï Œ±Õï  �%řǙș­É™Ê™àË™óG*¤�R{9 ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw˜ÛÛ†ü¶Úü¶» T$ãï |ãï Dèï ¬§) Tèï )  $‰ð d‰ð ,Žð ø§) <Žð „†ð  Àœ˜ÛÛ†´�ð  Å™޹üàïc  $µð  Å™޹' Éð Ÿ ü·ì’ üÃí† ü§î¢ íôûBɸüÍì$ ·óL¿ì ҞDz©»ÕÖ®Á¶ ¡¼¨ŽÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ü¶¼¨9÷§m×… Åȶ ˼¨Ÿ¢޹¡˜ÛÑŸ¢ì¬À�óé¾½óA´ɾ«Û袮 RÚü¶Ž¦ ¢À¶…ª§=¹·¼¨¦ø'¬§Âø§åî Òž,óî ¬À$�ï ÕÖüåî! Tèî ‚è Y I,úî Aôèî ø²åî"  ªŠ S$0C$œï ÕÖ „œï L¡ï ˆ­;\¡ï ³†ï [´Û²"À� .ˤ™ï Àœ³¶Û†»ï    �…‹üåî"  ×… Òî  ȶ¸œ¬,Ìî µ� Y²×žÕ´Ûݳ¶ Ÿ¢9Òžÿ¬ÀÕÖÕÖ–`d龊ҞóA,èí ¬Àɾ$÷í ÕÖÆ iŽäÚŒ‚è`ªŠ +ˆ­ÄÀ� 9§¸ ûò¾®ˆÎ‚ø …C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅ»¤�þX] †ÊÅow€Îáú °¥ †°¥09(Ήö ž!ÎŽö Î�ö A¢!Pì£\ ì£gÊÅ) ÊÅ5°¥ °¥Í˜¢™ÆfÖÆñÊÅ�(Ï�ö  ²ÝˆÏ‚ø   ²ÝÊÅ+îÝ€Ïáú  º²Ý °¥,  8 îÝ ¥¤é²·£¨qvÓÏ•ö ¤!î ­àúÑÇ·á ²Ý²ÝîÝ åDzÝãîÝë ùÇöùÇþ\œjuåÇîÝjùÊîÝ8¤é”(Ñ‚— %€Ñ�œ ´Ø×�ØÑ¡œ ´Ø¹¨>C †×�U ]`Ñ„˜ ”ØÇHÑ’˜ ”Ø=Bü†NV=ö ¥!ц— ÔÙ †¹¨ë óB ¥!  Mч— ­!z€‡ »¤• »¤¡©ÍŠ$óŠÇ6  ×�¬�Í—×�¾¹¨©ý‡³~À¼ m‡³úÀ¼ é<ÉÌü†Àó‹©ýÍ(Ò‰— %€Ò�œ ´Ø×�ØÒ¡œ ´Ø¹¨hp»²ÝQY¼²Ýf îÝYao²Ým yîÝÖÛ¤éèíÆË²· `Ò„˜ ”ØÇHÒ’˜ ”ØJS½²ÝRZ¾²ÝgîÝZ b@²Ýn z  îݺÀ¤éÎÔËÐ · ¼ñÒŽ— ¯! ­à(ïÎ1·á:BÍŠ<óŠ'²Ý]²ÝWîÝ`²ÝKîÝT –]¦Ïg�ÍR²Ý¥²Ý‚îÝ‹²ÝvîÝ �͋ߜ퇳íÀ¼ ܇³ê À¼ Ù ,¦ÏîÝ‹ÖîÝú¤éKÍŠîÝF –îÝ2¤éf�ÓƦ …C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅ�þW\ †Â×nvhÓú§ (Ó®ž °!Ó³ž ´!2°¥>ùÇFÂ×ì Â×÷ƒóŠ‹q{�Ø#ó‹¯Â×Ó²ž (Ôµž  ¿²Ý�ÔƦ  À²ÝÂ×,îÝhÔú§  Á²Ý +  7 îÝ¡¦¤é³¸£¨puÔÔºž ¶!ï ­àûùÇ·á ²Ý²ÝîÝ ŸÙ²ÝâîÝê –òóŠúZœhsŸÙîÝg –îÝ4¤é’ìæ¨  Üæ¨  Ù,üâ¨!  ⨠' (N ‚© üȨ< § ,Ú¨ ÂÆ£™7_Á(Öœ   4¨Ö²2 ÕÛ ›† $ºÚ 08x ·!‹ÀÖ , ªÛ•ö$¿†08ÀÖ½$ ù•ö#¿†/7¨Öú åÚ›†¸Öô! åÚ×�hÖÖ" åÚÇY^ºÚ jr¨Ö± ®Ú›†¸Ö« ®Ú×�hÖ� ®ÚÇY^ºÚ  jrPÖ¹ ‘ÚôíhÖÅ ‘ÚÇ<Aæ® M UàÖµ ðÙ…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅÝÁ�þ^c †ßãu}ˆÖÍ ÖÙÝÁ$ †ÝÁ6 >hÖ« ÁÙÇ$ü†0 8V ·!Ö  y ·!#˜ ·!B¢¨ü† µ ¾Û ·!  ˆ_eÉÌr{flü†y‚E ·!õCIÉÌV_JPü†]f² ·!bØ ·!‚ø ·!¢ ·! ÂÖ¡ Ò! MSZahov}„‹þ¥™ þ¥¥­ÍŠ�Ǧ ÝÁõÝÁþ ßãŒßã•»³øÍŠäôí Çö·Í“¦ÏÍŠk›†®×�šÇ†·Í@¦Ï,ÍŠ›†[×�GÇ3¦ý²•ö»¦ý•ö ·Ík›†t¹‡³¯‡³ÿ‡³Ž‡³õ À¼ å ‡³† À¼ v__self_2Ám‡³+À¼ ’ì ‡³Ž‡³Ø‡³= �ºÚ Q¿†¿†ÊºÚ •ºÚ %段®äbñäçü†«ü†´ÉÌ2ü†ÉÌ·ü†¡ (×£   4¨×²2 <ÕÛ ›†X =`²Ý2 >:à ²ÝG @<S ?@îÝ¡ ¦ ¹§³=¸>‚?‡ ÊÏ;×k²Ýåê·Á ÷;ü À× , 6ªÛ•ö'70Ä ²Ý48<Å ²ÝI:6U9:îÝrx¹§†7Œ8ˆ9� ŸÀ×½$ 1ù•öÁ2ÊÆ²Ý33;Å ²ÝH51T45îÝ ¹§ 2&3‡4Œ 9 ¨×ú &åÚ›†¸×ô! 'åÚ×�h×Ö" (åÚÇ–)ŸÇ ²Ýn*và ²Ýƒ+&îÝw,È ²ÝŒ-'îÝ€.ˆÉ²Ý•0(¡/0îÝ-3×± A)G*+,ý-.ë/ð q ¨×± ®Ú›†¸×« ®Ú×�h×� ®ÚÇÎ×Ê ²Ýnvà ²Ýƒ îÝw!È ²ÝŒ"îÝ€#ˆÉ²Ý•%¡$%îÝek×± y !ý"#ë$ð ©P×¹ ‘Úôíh×Å ‘ÚÇéò˲ÝQY ²ÝeîÝYaɲÝnzîÝY_¤émsÊÏ·¼ �à×µ ðÙß㳼̲Ý4<Í ²ÝIUîÝþ¹§ˆ� +ˆ×Í ÖÙÝÁN WÎ ²Ý4 <;²ÝH  T  îݘž¹§¬ ² ‡ Œ Åh׫ ÁÙÇèñϲÝ4<ɲÝIUîÝ39¹§GMˆ� `ר Ô! {�ˆ�–�¤«²¹A­àÇ�êзáÙáÍŠ²Ýó²Ý1îÝ: ÍŠF¶êé²Ý#²ÝûîÝ ¶êËê´²ÝS²ÝÆîÝÏ ËêÛ»³ËÍŠ·²ÝŒ²ÝæîÝï²ÝÛîÝäïþí·ÍK¦Ï7ÍŠ#²ÝݲÝoîÝx²ÝdîÝm²ÝYîÝbïþk·Íæ¦ÏÒÍŠ¾²Ý@ ²Ý îݲÝÿîݲÝôîÝýïþ¦ýã²Ý‘ ²ÝõîÝþ ¦ý ¦ý®²ÝÁ ²ÝÀîÝÉ�‚Ò²Ýå ·Í³ ²Ý÷ ²ÝÅ îÝÎ ·ÍÚ  œ- ‡³q‡³ ‡³À‡³´À¼ ¤‡³À¼ ö’ìæ‡³e&À¼ U'’ìE(‡³& 1‡³Î 6‡³ª <î ó‚îÝÁ ¹§ ·Á  �‚îÝ ¹§ �‚îÝ€ ¹§, ·ÍîÝ÷¦ÏîÝäïþîÝÑ×± Q ·ÍîÝä¦ÏîÝÑïþîݾױ v »³îÝÑïþîݾ¤é‘ Ïÿîݹ§¢ ŸÿîÝ{¹§³ ïþîÝò¹§Ä ج Ö! ت  !'-3?�êGPZ%HÙ® +: JN�ê[Nh    $‰‘ž#¦®»#ÃO�êÔOáðP�êPQ�ê1 Q? OR�êa Ro S�ê‘ SŸ ¯T�êÁ TÏ ßU�êñ Uÿ V�ê!V/?W�êQW_  ¨Ù²2 X�êJXÕÛ ›†.Y�ê?KYÕÛ ›†X LJd MKr w ù±·Í·ÍLŽM“#›ÀÙ , Z�êFZªÛ•ö.[�ê?G[ªÛ•öX HFd IGr w ù±¦ý¦ýHŽI“#›ÀÙ½$ \�êB\ù•ö-]�ê>C]ù•öV DBb ECp u¾ŽD�E†#ލÙú ^�ê4^åÚ›†¸Ùô! _�ê5_åÚ×�hÙÖ" `�ê6`åÚÇŠa�ê›7aåÚ›††b�ê—8båÚ×�‚c�ê“9cåÚÇ;4<7$*ž�;7<=:F¨Ù± d�ê&d®Ú›†¸Ù« e�ê'e®Ú×�hÙ� f�ê(f®ÚÇŠg�ê›)g®Ú›††h�ê—*h®Ú×�‚i�ê“+i®ÚÇ-&.)$*ž�-7.=,F PÙ¹ j�êj‘ÚôíhÙÅ k�êk‘ÚÇ\l�êml‘ÚôíXm�êi m‘Úǰ"¼#ÊÏ ù±»³»³"æ#ë!óàÙµ n�ênðÙßã.o�ê?oðÙßãXdrw ù±ËêËꎓ#›ˆÙÍ p�êpÖÙÝÁ.q�ê?qÖÙÝÁXdrw ù±¶ê¶êŽ“#›hÙ« r�êrÁÙÇ.s�ê?sÁÙÇXdrw ù±ÍŠÍŠŽ“#›Ú!¼$É% ØÞÁš$ë%ñ#ú #œ,~0'‹1*š  ù±¦Ï¦Ï0¸1¾/ÇÏ/±2(¾3+ÍÓÁš2à3æ#ïõþ #¿:"¡>5®?8½Ã•œ>Ð?Ö= ßç="!É@6ÖA9åëÁš@øAþ# $#Ù· Ú Ù! ê ð ÷ þ     ! ( / 6 tB �êK �êT \ d k �ê�êy � ‰ ‘ ™ ¡ © ± ¹ Á É ÍŠÀÍŠÉïþÒïþÛ¶ê„¶ê�Ÿÿ–ŸÿŸËêHËêQÏÿZÏÿc»³dÍŠ?»³vÍŠQ†¨À�¨À˜ïþsïþ|·Íÿ¦ÏÚÍŠµ·Í¦ÏõÍŠÐ3ó‚<ó‚E ¦Ï*’£3ïþïþ·ÍÈ ¦Ï£ ÍŠ~ ·Í㠦Ͼ ÍŠ™ ü ó‚ ó‚ ç ’£ð ’£ù ïþÔ ïþÝ ¦ýÕ ¦ýÞ �‚ç �‚ð ¦ý™ ¦ý¢ �‚« �‚´ ·Í] ·Íf ó‚o ó‚x �êð�êù�ê�ê �ê�ê�ê&�ê/�ê8�êA�êJ�êS�ê\�êe�ên�êw�ê€�ê‰�ê’�ê›�ê¤�ê­�ê¶�ê¿�êÈ�êÑ�êÚ�êã�êì�êõ�êþ�ê�ê�ê�ê"�ê+�ê4�ê= Gî U __self_discrÁo __arg1_discrÁ‡‡³‚__arg1_0Á–‡³CѧP‡³ýѧ ‡³ À¼ î ѧ) __arg1_1Á  ‡³– &À¼ u '’ìT (ѧ½ )À¨œ *__arg1_2Á‚ +‡³7 4À¼  5’ìõ 6ѧ^ 7À¨= 8•© 9‡³ Bѧ% C‡³Ò Fѧß G‡³Œ Jѧ™ Kž�­¾Ž¾Ž{ž�ï ž�ª á–e �˜t ¡™Û ÁšB ÁšS •œ¦ Áš •œÁšÙ èÚ´u €ª †€ª/7�Ú‡x …C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅþ¥�þW\ †„­nvØÚêz •ö¿†) 2øÚÆ~$ …C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅ…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅřǙș­É™Ê™àË™óG*¤�R{9 „K„KK‡Kí ä7ˆKÞüä7‰K«ä7ƒ¢3à6ú��þ�þ�þ$* †·® =G Ú‹�  PÚÌ‚  hÚšƒ ÈÚäƒ ‚ó †‚ó09ÈÚÃ… ØÚ±É *3(Úºs Ú!   Ú¿s Ú¾s  $ så!‚�©Ž �©™€ª¹Ϭ„­� „­›•ö)¦ý2·® ·®ËóŠÔ¸÷ýÁ¦÷ý¯‚ó– ‚ó¢ØÚm‡Í vHS جvÓ­A¿†ÍÔ°�ó‹W¹ø ;¹ø  û±±É η®^•öe„­l(ÛÁs  ç!ÅõèÛ´u €ªîÝ�Û‡x  „­  îÝØÛêz  •ö  îÝøÛÆ~$ ·® îÝ Û‹� îÝPÛÌ‚ îÝhÛšƒ îÝÈÛäƒ ‚óîÝÈÛÃ… ØÚ#î݇ îÝ    °½�úÏØ²Ýå¼úùÿÓú (ÛÆs ç!CIP­à^à³g·ápÅõy�ú‚åü‹çü”îÝ‚Ϭ‹îÝm†´vîÝX¦ýaîÝC­´LîÝ-óŠ6îÝ÷ý!îÝ÷ý îÝðó´ùîÝÚõçã‡Í ì²ÝH¼úQ[œiƒ w‘ƒŒ Ϭî݆´îÝb¦ýîÝE­´îÝ(óŠîÝ ÷ýîÝí÷ýîÝÑó´îݵõçîÝ—Óúñ»Ä2²ÝѸÁÐ ²Ý϶¿Ñ²Ýͳ ¼Ò ²ÝÊ ± ºÓ²ÝÈ  ° ¹c²ÝÆ  ®·Ô ²ÝÅ«´ ²ÝÁ" ²Ý à ²Ý  Udç!uÅõ‚Çõ‹²ÝR²Ý[²Ý=²ÝF²Ý(²Ý1²Ý²Ý²Ýý²Ý²Ýé²Ýò²ÝÕ²Ý޲ݿ²ÝÈ#èÜ´u   ÷€ª�܇x   ÷„­ØÜêz   ÷•ö øÜÆ~$   ÷·®   Ü‹�   ÷ PÜÌ‚   ÷ hÜšƒ  ƒÄ ÈÜäƒ   ÷‚ó  ÈÜÃ…  žß   8ÜÈs Ú!  ÜÏs ÜÎs   $ sé!‚ �©Ž€ªß„­Ã•ö§·®ŠkL.‚óØÚøà ÅÂ3êÂ�Ã÷¶ÃØÝøƒÄ™ƒÄ{ÉÄažß A·®ê•öð„­ö�ñ� ߨ²Ù)1¨ñ¥ ߨ²Ù)1øñÀ% “Ú¬Û*2 ñë ߨ²Ù )1øñ…% £ÒøÒ * 2øñ°! řǙș­É™Ê™àË™óG*¤�R{9 ‚ó^c †ãÉ u }(ñÝ ê!  ñâ ò!<±ªH ±ªSߨí³ÜöߨɳÜÒ“Ú¥ÚÜ®ߨ€³Ü‰£Ò\¤ÚeãÉ7 ãÉCËÕ²Ùq²ÙB¬Û²ÙãøÒ´¸Ê„(òä  ô!ÓÀ�ò� ߨîݨò¥  ߨ  îÝøòÀ%  “Ú  îÝ òë ߨ îÝøò…% £ÒîÝøò°! ãÉ#îÝ îÝ   4A�úS\²Ýi¼ú}ƒÓú‘—�£¬òé ô!ÇÍÔ­àâžËë·áôÓÀý�úæÄèÄîݳÜîÝñ³ÜúîÝÜÚÜåîÝÆ³ÜÏîݱ¤ÚºîÝ› ŒÌ§ŒÌ°²Ý™¼ú¢¬œºƒ È‘ÔݳÜîÝгÜîݳÚÜîÝ–³ÜîÝx¤ÚîÝ[àÑîÝ=Óú$ î÷c²Ýëô‰²ÝèñÕ²Ýÿæ Ýý ã ìÔ ²Ýú  è ²ÝÛÓ²Ý !ô!2 ÓÀ?ÕÀH²Ý²Ý²Ýú²Ý²Ýä²Ýí²ÝÏ²ÝØ²Ý¹²Ýª�ó�  Žä¨ó¥  ŽäøóÀ%  Ñä óë  Žäøó…%  §óøó°!   ÷ãÉ8óë ê!óò ö!<±ªHߨߨû“ÚäߨÌ£ÒµãÉ�€ŽäKŽä3ÑäŽä§óêÅ×Ð(ô‚¡ ô‡¡ €"(¼«4 ¼«?HR(ö�¡ '.6H²Ýö“¡ QYÖ²Ý$pxײÝC‘–·Á £¨°ö”¡ ƒ"Ë­à×ÉÙß·áç²Ýïöÿœ ·Á " ¨ø¼Û ññóùò™Oðó¤OðÖîBýAPU †³ÜgopøûÛ ±ª †±ª08ÈøŒÝ ð0ð0Íò0ìŠñ.ó0�ñ.žFår­ä�©TY †äÝksðø‚ß ð0ð0Íò0ìŠñ.ó0�ñ.žFår­äí®TY †ÜÞ k tðøñß ð0ð0Íò0ìŠñ.ó0�ñ.žFår­ä¢ÊTY †Õß k tøø“á# ð0ð0Íò0ìŠñ.ó0�ñ.žFår­äθUZ †Ïà l u(ø¸Ú „"  ø½Ú ø¼Ú   % mŒ"|·¬ˆËç�³Ü- ³Ü9±ªÎžË×äÝ£ äݯÜÞ@ ÜÞLÕßÜ ÕßèÏàx Ïà„ úÜ¿·ÝR¯Þ§ß« à9šáÇÕßÜÞ#äÝ*(ù¿Ú  Ž"ÓÀ¨ù¼Û ³ÜîÝpùûÛ  ±ª  îÝÈùŒÝ  äÝ  îÝðù‚ß ÜÞ îÝðùñß ÕßîÝøù“á# Ïà$îÝ îÝ   9F�úXaزÝo¼úƒ‰Óú—�£©²ùÄÚ Ž"ÎÔÛ­àéËçò·áûÓÀ�ú æÄèÄîÝ ÒâîÝöžËÿîÝàùâéîÝÊŽãÓîÝ´£ã½îÝž ¸ãª¸ã³²Ý ¼ú©³œÁƒ Ï‘ÛäÒâîÝÖžËîݸùâîÝšŽãîÝ|£ãîÝ^ªéîÝ@Óú+ óü²Ý ïøÙ²ÝìõÚ ²Ýé òÛ ²Ý æ ïÜ ²Ýý  ï ²ÝáÝ²Ý (Ž"9 ÓÀFÕÀO²Ý²Ý²Ýþ²Ý²Ýè²Ýñ²ÝÒ²Ý۲ݼ²Ýű¹ú¾ ©ú¾ �‡@Ó™÷   ‘P§òD™÷ (-øÓ�÷† JY^ ÆQâ‰py~ŠÚ ”÷  àÂŒ$°÷  \Ë÷ ³ÜüË÷( ,ì÷  ø1<ì÷ ,¸ù ¡š"+[T�ø 4‘ø û� �ø  D‘ø üË÷O ,‰ø  † ±L Œ‰ø üË÷€ <°ø  Ç_–‡ØÙ ×° ý _”¸ø Ýñ  ܰø øÔË÷�   �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw–‡×° ¿  z ‹ üË÷�  m–‡ü°÷« $µ÷ €  < üµ÷¦ ÕËø  [‡§# �%¡ó‡§9- Ûø üŸù œ¤ù  « –‡$Ÿù jÔ¤ù  Ãù Äù Š=üýõÇ ¨ üñöÓ ÆÍ&-4Š¡ó¼Ïö Ëç,§ö §òD¶ö ÒˆDõö â‰^â‰gřǙș­É™Ê™àË™óG*¤�R{9 ÂŒµ â‰ÁŽÂŒ,#µ¯#ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^‡§–‡?žò–ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw–‡ØÙ $ úúþ¦û™Oðü¤OðFLg�obþ²ùÒâ'²Ý¯‡§(–‡€ʯׯù¨ ý¡¯�`¦Æ Æ �Žê°�‡¾˜îŸìî¦�ðÆ¡š¢û�j˜ñDËñ˜òÒ€  šôà²ù²²ù¹ðô�ÒˆjÒˆq²ùÕÒˆœ ’ <¥’  ° �¹$ ’ ,­’ t¥’ ¹’ « ü¥‘” ¡ó¼þ‘ Ëç,Ù‘ šÊ,è‘ exprsÁO¶ü¥W\ý¡ ôý¡ „‹¢ …* \Ó¢ üµ¢* ìµ¢  € +"ü±¢/ Àœ�»×°ÚM\÷¢ ±ªÌ÷¢ \ƒ£  — 0lƒ£ + \ £ ±ªü £ ”¬£  ›  1 ¤¬£ *  ü £) 4Á£  ¤  R DÁ£ ,  üë£" üë£  „  üç£' Àœ�»×° ÚMd£¤ äÝÌ£¤ T°¤  Š1�©4 d°¤ -ü£¤!   ê"ý1ý1RefMutÁ€2�ñ.�2ìŠñ.‚2… ñ.뜿Eòür�©¦ Usz,½¤  Ë Ì U<½¤  Ĥ dΤ äÝÌΤ TÛ¤ Í�.dÛ¤ 'üΤ:  ‡‚KT\ñ¤ ±ª´ñ¤ Dý¤  – 0TTý¤ fDè¤  ß ²GTüè¤  ˆ¥ d’¥ äÝÌ’¥ TŸ¥ Í�.dŸ¥ 'ü’¥@  ‡‚KS\¸¥ ±ª̸¥ \Ä¥  ÿ .SlÄ¥ d\¬¥  á °ESü¬¥&  Ò¥ dÜ¥ %äÝüÜ¥& Tö¥ Í�%/$dö¥ (#$üÜ¥d  ‡‚#L"R\¡¦ '±ªô¡¦ „­¦  œ '0&R”­¦ f„�¦  ã "³&G!Rü�¦0  À¦ $dʦ -äÝüʦ& Tä¦ Í�-/,dä¦ (+,üʦd  ‡‚+L*Q\�§ /±ªü�§ ”™§  ˜ /1. Q¤™§ gtþ¦  å *´.H)!Qüþ¦0 øÖʦe   �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw×°)("Qy~0(Š0$%#Ú ¯§ ,'×®§ 1([‡§Õ"šô1.&QïN,Mdü© $‚ª —¹,ü© 4(4‚ª *34ü�ª’ 5 ² �¹¹ºUÿËçüü©¤ ‰ª  ÅRÓ¹² �¹º�Ä�3š5h2)ü‰ª— \º¬ 8±ªüº¬# ¬Æ¬  � 817*¼Æ¬ ,7,+dᬠ62ü¹¬4 - 6!-D’­ :6:3.t©­ <®­  Ð $©­ </L®­ xØ©­   �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw¸­×°<�;0w|=;ˆ=12#|©­ ?;m¸­ 9?ü�­‰ :Ù·­ >;[‡§ê "šô>.MŒð­ D žÜç­ Dç­  µD/C4!äæ­ BCüÖ­7 TÛ­  à $Ö­ B3,„®   ‹® A5PüÛ­2 øÚÖ­8  †�Ao@6P %E@1E78#üÖ­8 G@m¸­9G —® C:Û�® F@[‡§— "šôF.9P±NCMd® $È® —¹,® K;4È® üÓ®Ó L ³ �¹¹ºŒ�UÿÄ�ü®å Ï®  ãQÓ¹Œ�³ �¹¯•Ä�K‘LlJ<ü쨯 ü²®ö T·®  ¾ ÌŠÌŠ“ºÏŠ�Њœ“D^)c˜þOþÓ¹å•$²® JºI=ü·®ñ øÜ²®÷  †�I•H> %MH1M?@#ü²®÷ OHm¸­¬¾± R9ÇtÕ± SOÇü³±1 ,¸±  Ò $³± RLS=QAü¸±, ݨ± NH[‡§Ü"šôN.Mõøè³±2  õŠQŒPB$TP0TCD#Ìù± \äÝüù±3 T ² Í�\/[Ed ² éä± UP[‡§�"šôU.M¶cZ[üù±o   Þ"�‚ZŒYFO$tÀ² ]OǼв ^9ÇS,º²  Ì YÚ]E^6XGOüº². øêù±p  ©¥XžWHO %_W1_IJ#üù±p aWm�»Va é² [LNëè² `W[‡§˜"šô`.KO²O[Mų bV<³  Àœ�»×°bϳ M  γ VV¶[VCV ,VÀ $VÄ VÅ VÈ Vü¦¡© ° q x  üʦe ü驿 üª¬¥ ü÷¬Ø  S ËÒ Ùü£®¬ ¿ÆÍQ%,ü³±2 üï±à ý Kc¡ó¼Ø¡ Ëç,Á¡ šÊ,È¡ ´Ë×°…ž)žËI°ÉÙñ¼«úžË×°—ü �© �‚P�‚Yùây.ú¡7†¢v�‚ù⟞Ë?xú¡�†¢À�‚ÉùâéižË‰à ú¡Ì †¢ �‚ùâ5‚ó¶ žËÖ ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^‡§É ûŠh ú¡q †¢± �‚º ùâÚ ØÚ[ žË{ X ‡§a dí©  Ó¹) Ó¹2 ì� D®¬ ƒ žË£ ¸­Œû¬ ) ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^‡§¸­3 Œ�j w ‡§€ ¸­½ Õ¥± Œ� ¢º, –‡[ žŸ AnyCharÁ¡¢AnyByteÁ£¤ AnyCharExceptÁ¥ó¦§AnyCharExceptLFÁ¨©AnyCharExceptCRLFÁª« AnyByteExceptÁ¬ó­®AnyByteExceptLFÁ¯°AnyByteExceptCRLFÁ‘å;æl´C† o ‡§x ¸­¹ Õ¥ Œ�œ ®–ö Ó¹X å•7 ƒ‡§Œ¸­ Ú£aûŠßÇ Ç ‡§ �»ó± °ªQ¡óáà³ê �‚g�‚pùâ�ÇèÇÝ ‡§)�»k�»ð°üÆ Ÿ1Ž%Ú all_anchoredÁb2ã÷H6unanchored_prefixÁJ9Æ Y >Ž™ ?Æ  FŽZ G—áD§® OÆ  NŽ“ OÆ e UŽ>Úß'nVÆ E`ŽŠa?Å…*E ³w�¹ûȭĶþº ÿVòÿ ª€Û耥Í�E‡‚€ƒ�‚{Í�[‡‚,Äùì„:�‚¬Í�Œ‡‚] ÿ*܆k�‚ßÍ�¿‡‚�¦ˆ\ψ��‚Í�¿šŠŒÊÍõŠ>�‚�šôL�‚«—¹Uâ�öÃŽ›Ù� †�äšô릒ÓÞ’£†�R–‡ï šô`–‡ý —¹§ וU ¨– †�• «˜ šô£ õŠ® Í�] šô¼ æšú ¸› ©¥� �‚ šô� �‚, �»� �‚: –‡{�‚„�‚'�‚!�‚�‚ T«ª 4­ª �Ñ «ª D­ª ¼«ª T¶ª  ¥Ed¶ª \Óª  Ëç ±ªÌÓª \ߪ  ÿ@lߪ )¼ÿª |…« Ûú ,ÿª Œ…« t «  Áüÿª0 D—« êõ X3Ä—« ¼Õ« |Û« ªõ ,Õ« ŒÛ« „ö«  ÁüÕ«2 Dí« êõ  X 3Ôí« Ÿ¬ ² ÂüŸª€  �ª  ì�滺 Žª ùÚ ,£ª ¢ºëtžË¦½ö Löö +½ö ïöö ÍËç@›\$¡ Ëçµ^rt�Ñe÷±@ ÿõÛú Âêõ ‰ªõ aêõ (îò$í® !Ëç¤í® lò®  Ó !0|ò® ¨Þí®   �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw›†×°šw|ˆÚ¬í® m›†$š¯ "Ëç$¨¯  Å™²ÝT®¯ 4°¯ �Ñ ®¯ D°¯ ß�¯ [‡§4# �%Œ�‡§9Xüš¯ ,Ÿ¯  À "½ ¥¯  À ª ÔŸ¯ øàš¯  †� `$ 0  üš¯ m¸­$ݯ #Ëç„ݯ L⯠ Þ #0 \⯠ṯ  [‡§¸"Û¹ .шâݯ   �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÇ×°Õ w|ˆ ŒÝ¯ mÇ$ü¯ $Ëç<‡° Çüü¯# ,�° «˜$C3t�° ô�° ãí¯ [‡§/ #Û¹/Iøäü¯$  õŠ‹$ 0 $¶° %ËçLʰ Çô¶° t»°  Ô %D4Ì»° 埰 [‡§·"Û¹.Ðøæ¶°  «·‚$ 0 ü¶° m›†Lû°  Çüæ°5  �" üã°9  Àœ¸­×°¦± çÔ° [‡§Õ"Û¹.îH³ ³üå®Á §®µ/ü�¯– ¡¨¯ üȯÞ y€ ‡¼ ÃÊ üü¯$ ü®°x  ð öü y&Œ�Ö®  å•…»º Ô® ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^‡§›†ä±·Þ‡§ç›†cÕ¥gŒ�¹Å™Ç™È™­É™Ê™àË™óG*¤�R{9 ²Ý•¢ºƒ4‡§=¸­ ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^‡§Çc²¼Òb‡§kÇíÚ£>ûŠ»ÇÚ¾‡§Ç «Ä“±·Ç&õ‡§þ ›†~ ¸­YÇvËç‰Ëç’Ëç›Ëç¤Ëç­›*c ËçÆ »Ž:oneÁ”¯ Æ · Ž match_state_idÁt̯ Æ œ Ž!Æ ÛŽÚÆ Žˆ��·± «·� �ѧ۹› �ºB†�Ç»•Û¹¬¼=«˜gÛ¹KõŠê¿œÛ¹«·?Û¹FîòJ,ÓÒ G GáÒ LáÒ $äÒ  ÆQ‰Œ/=4äÒ .|ÛÒ Ú4¨Ó àŒ�8õ³Ó  †�4³Ó ="lˆÓ 4�Ó  Ñ $ˆÓ >=D�Ó Vb<³Ó  m¸­âÓ  LâÓ $åÓ æË ) =4åÓ ö¹Ó  [‡§ã"Û¹ .?=ýd  |ÜÓ   4¥Ô  àŒ�8÷°Ô  †�4°Ô  ="L‰Ô  Àœ¸­×° „‚Ô 7T` <°Ô m¸­„ÙÔ LÞÔ  Ù $ÙÔ =\ÞÔ ø¶Ô [‡§Ö "Û¹.@=ðˆùÙÔ  ¬¼�=$0ŒÙÔ mÇ„þÔ LƒÕ  Õ $þÔ =\ƒÕ úéÔ [‡§¦"Û¹.A=ÀˆûþÔ  ¬¼�=$ 0 ŒþÔ mÇ\«Õ  Çô™Õ ,žÕ «˜$™Õ ,¤Õ ==ÌžÕ üŽÕ [‡§Å"Û¹.B=ßøý™Õ  õŠ�= % 1 LÍÕ $ ÇÔÂÕ ,ÇÕ «˜$ÂÕ $5ØÕ #=¬ÇÕ þ·Õ ![‡§­"Û¹!.C=ÇØÿÂÕ  õŠ#Œ"=$%"0%dùÕ )ÇüçÕ ,ìÕ «˜$çÕ ,òÕ )>(=ÔìÕ €ÜÕ &"[‡§­"Û¹&.D=Çø�çÕ  õŠ(Ž'= %*'1* !TœÖ .ÇÜ‘Ö ,–Ö «˜$‘Ö .5¨Ö -"=´–Ö ‚†Ö +'[‡§­ "Û¹+.E=Çàƒ‘Ö  õŠ-Œ,#=$/,0/$%ÅÖ G 2…ÅÖ   ‘P‰Œ2@1&=%„¬Ö 0,[‡§¬$"Û¹0.F=Æf31ø…·Öœ ''ƒ'53’'—æË5£4(9¬±'64½'6*)4»Ö '74àŒ�8†åÖ ( †�74åÖ 8+9"…Ò× 35=<(98H(9,-<åÖ (;8m¸­tŒ× )>;ÇüúÖ! ),ÿÖ «˜$úÖ ,…× >>=.9äÿÖ ‡ëÖ (:8[‡§Þ+"Û¹:.G9øøˆúÖ" ) õŠ=Ž</9 %)?<1)?01dµ× )C;Çìª× ),¯× «˜$ª× C5Ã× B29į× ‰›× )@<[‡§­/"Û¹@.H9ÇðŠª× ) õŠBŒA39$)DA0)D'4‹Ç× )EA[‡§^3"Û¹E.I9xüß×! F �"üÜ×%  Àœ¸­×°F †Ø 8l37=G8;‡Ø š3=ü´ÑÓ Z8i:yG:<„ 7¸ 7… 7™7Ý77?7| 7¹$7u+6�/6¾36¾ 6ÈüÏÒ¸ ¼£Ó Š ‘ ˜ ò üÏÓ¸ ¼ Ô ‰ �  — æ  üÍÔº éð÷F üôÔ“  * 18 ¦x†ü™Õ ÉÐ×ÜÂÕ  'üçÕ !kr#yä‘Ö %?F'üÖÖ} ( ('*.(�,n)u.|)üúÖ" 0)2)ôª× 4HŒ�üÚÑ Ëç,ÅÑ ‰Œ4ÌÑ Å™Ç™È™­É™Ê™àË™óG*¤�R{9 Œ�¸  ‰ŒÖ $ùÒ Œ�~ Õ¥k ­ ‡§¶ ¸­ Åæð “ç $úÓ Œ�ˆ Õ¥u Ä ‡§Í ¸­ «Æ¡ ²¼ ) ‡§2 ǃ «Æ ²¼z o ‡§x Çè Ú£L ûŠË Çê Ö ‡§ß Ú£ª ûŠ) ÇH 4 ‡§= Ú£ ûŠˆ ǧ ’‡§›Ú£fûŠåÇ ñ‡§ú‰Œ-‰ŒZ‰Œ?ÅæH“çQåŒ�”'Õ¥�ȇ§Ñ(¸­B(Ú£¥ûŠ%ÇD/‡§8)Ú£ûŠ‚Ç¡Ü‡§å)¸­²{!ÀÛËÄfirstÁz Ç òÆ  Ž{ secondÁ4ÓÓ Ç ìÆ # Žw C,ÑÔ Æ � ŽÕ ’øÔ Æ Á Ž4 Æ  !ŽŠÚÆ \ &ŽŠÚÆ ­ +Ž‹!ÚÆ ÿ #0Ž‹%Ú�H '3Ç † (7—áDÚÖ );Æ Ä*:Ž8 ,;Æ .@Ž—0ÚÆ ®2EŽ—4Ú(æËó†�…„ÍcæËõÛ¹š†�c¥ÐÞÛ¹q¬¼�ìÑ,Û¹�¬¼Ï«˜fÛ¹ÝõŠþ «˜­ Û¹ õŠE «˜õ Û¹S õŠŒ «˜; Û¹š õŠÓ ‹Úu Û¹á æËƒ †�  ‰Œ~ «˜& Û¹µ õн «˜l Û¹Ë õŠ Û¹ ‰Œ¶ ‰Œ½ ‰Œe‰Œl(…Ž” …“” ”"(-¸­: ¸­ENX(‡›”  Þ ²ÝȇÇ”  ?²ÝÇ+îݸ‡æ”  ß²Ý Ç,  8 îÝ¡¦¤é³¸£¨qvÔ‡ ” —"ï ­àû¤ò·á ²Ý²ÝîÝ ÍŠ²ÝãîÝëïþóÍŠûZœhsÍŠîÝgïþîÝ5¤é’ (ˆ¶ž  à ²ÝÀˆÜž  Ù²Ýú¡,îÝÀˆúž  G²Ý  í®. îÝxˆ˜Ÿ  á²Ý Ç,  8  îÝáæ×± óøãè°µ { €ˆ»ž Ÿ":­àG ˜"˜"½àš"Öé ›"ƒé œ"´é a˜Eœì«Q˜·á¡²Ýª²Ý™îÝ¢ ú¡®²Ýzî݃ éö�²ÝYîÝbïþkÍŠtœ"-¬ùîÝ!ÊùîÝîïþîݹױ VÀ‰ÛŸ �· †�·08ȉùŸ …C…CüˆC¾‚Ð=‰C¶Ð=ò¹Úàż¯�þX] †�ûox(‰µŸ  "‰ºŸ ‰¹Ÿ A¤"Pí®\ í®g�·) �·5�û �û š¤ðúhìû2�·�(мŸ  â ²ÝÀŠÛŸ  ã²Ý�·,îÝÈŠùŸ  ä ²Ý �û,  8 îÝ¢§¤é´¹¤©qvÕŠÁŸ ¦"ð ­àüçü·á ²Ý²ÝîÝûü²ÝãîÝë �ýö�ýþ^œlwûüîÝk”€îÝ8¤é–°‹Å  ßã®ä*2ø‹á  řǙș­É™Ê™àË™óG*¤�R{9 а_d †»�v(‹   §"‹¥  ‹¤  A«"P¼¯\ ¼¯gßã*Ëê3»� »�—¡®äf�‚6ßã�(Œ§   å²Ý°ŒÅ   ;²Ýßã+îÝøŒá  }²Ý »�,  8 îÝ¡¦¤é³¸£¨qvÔŒ¬  ­"ï ­àû‹ƒ·á ²Ý²ÝîÝ Ëê²ÝãîÝë ±ƒö±ƒþ]œkvËêîÝj´†îÝ8¤é•H�¾¡ 8�Í¡ (��¡ ®"�”¡ ²"2а> аI–’ª ž‚’ª Špzýª Êýª ­(Ž–¡  æ²ÝH޾¡  ?²Ý*îÝ8ŽÍ¡  ß²Ý +  7 îÝŸ¤¤é±¶¡¦puÒŽ›¡ ´"í ­àù˜ˆ·á ²Ý²ÝîÝ ’ª ²ÝâîÝ꯰ ò’ª úXœfq’ª îÝe¯° îÝ4¤é� ›†"˜± †˜±/7(›Û" µ"›à"¸"-×°9í²A˜±… ˜±�]g©Œ­(œâ"  ²Ý œ†" ²Ý˜±*6îÝaf¹§sxejŠœç"º"¤­à°í²¸·áÀ²ÝȲݸîÝÀ ��Ë��Óôœ ›�îݹ§!(�÷" 07 »"J P�ë"—ä{ »"�û" `�Ã"÷¯Æ »"K `�Â" •¯`�‡"•¯8 )6 »"¿ `�›" ·¯`�â" ·¯8 ) ª »"  3 ð�¿"ü®Ïó$½°0 8À�Ú "œã¶ß$ †¶ß6 >˜�� "»ÀØÙ $àÚ 0 8Š »" ª »"0 Ê »"ÚÏóX �ü"Ò" ")07˜±E��NVŽÜ ØÙ  ¶ßj¶ßs‚³¹ÏóÂóŠ@óŠ-Q=óŠÖóŠÃçÓóŠ?Gø¶ ›£ ÿ‡³Á‡³‡³[‡³Ý À¼ Î ‡³k À¼ \‡³Ì‡³$ †=ó‹ùó‹¹ó‹L½°ÞŸ”¨àÚ ló‹Ló‹Ç (žþ" 07*?ç²ÝNS·Á `*e mPžë"%—äŽ&–è²Ý1'9é²ÝF)%R()îÝ×ܹ§é&î'�(† `žÃ" ÷¯"!+²Ý2":²ÝF$ R#$îÝkq¹§!…"…#Š ˜`žÂ"•¯`ž‡"•¯Öß" ²ÝNVX²ÝbîÝW_²ÝkwîÝDJ¤éX^ÆË´¹ {`ž›"·¯`žâ"·¯¹Â!²ÝNVX²ÝbîÝW_²ÝkwîÝ'-¤é;AÆË´¹ ^ðž¿" ü®Ïó� Š#²Ý3 ?îݶ¼À¼Ê Ðr ÞÀžÚ "œã¶ß  ê²Ý4 @  îÝ7=À¼K Q s _˜ž� "»ÀØÙ ‚‹i²Ý3?îÝ·½À¼ËÑr ßžƒ"Ô"ú#*+­à8��A·áJRŽÜ ö²Ýcîݯá Ù–š²Ý‡îݬ Ù–¸‚³A²Ý®îÝS›¿\óŠHóŠ5²ÝÛ²ÝcîÝl²ÝYîÝb –kóŠsóŠ`²Ý#²ÝŽîÝ—²Ý„îÝ� ––óŠS²Ýb²ÝeîÝn –wø¶ ²Ý�²Ý&îÝ/ö¶ 8²Ý³ ½œË‡³u‡³‡³� ‡³€À¼ q‡³}À¼ n‡³/ ‡³Ð%K·Á Vö¶ îÝî¹§g –îÝk¹§xóŠîÝä –îÝÒ¤é“óŠîÝ –îÝ ¤é®›¿îÝTÀ¼¿Ô¤îÝåÀ¼Ð¯á îÝuÀ¼á�¯›$ …C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅï´�þW\ †¾©nvH¯¡% (¯ñ! Õ"¯ö! Ù"0¿³< ¿³G¾©ë ¾©ö�÷ý‰q{�ª!¹ø ­¾©¯õ! (ºýj  ë²ÝغÔk  ì²Ýê"ê"¡æì"þÙ‰ í"ò›‰ î"Òæ‰ ŽUz¬ô•ÀÙsîÝøºÐm.  Í ²Ý �p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫ«¶w îݘºøp  í²Ý •ö+  îÝøºÔr!  î²Ýßã,8îݬ²Æß ÀƳ¹;A ¿ Ä �’ûº‚k â"­à# Ú"Ú"‡ØÜ"ò›‰ Ý"þÙ‰ Þ"C‰ ß"° ‰ e%µ'V롳�·áŠ²Ý“²ÝƒîÝŒ ©¬˜²ÝîÝ& ®­2²Ý³îݼ¦ýŲݒîÝ›Ïÿ¤Ëê­œ&1“±îÝ&±±îݬ¦ýîÝ.ÏÿîÝüÆßdà½Öƒ …C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅ«¶�þX] †ì²owؽøƒ …C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅ�þ[` †è³r{(½²ƒ ã"½·ƒ ½¶ƒ Aç"Pï´\ ï´gì²k ì²wè³ è³š¤»³ªº´5ì²�à¾Öƒ   ÷ì²ؾøƒ   ÷è³ 8¾¹ƒ ã"¾Àƒ ¾¿ƒ Aé"Pï´\첯賑s­¶ÈÓ¶¨ì²] (Ǭš  ï²ÝèÇÕš  Í ²Ý  «¶0îÝøÇøš- ì²Ý �p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫ£´x îÝøÇ«› ð²Ý řǙș­É™Ê™àË™óG*¤�R{9 ¿¸r  ~  îÝu{×± ‰�{�FL É ÎºÇ±š ñ"Ö­à㓱ì·áõ²Ýþ²ÝíîÝö ¿¸²ÝÊîÝÓ �¹ß²Ý_îÝh  Šºwм€nœ|‡’¼îÝ{°¼îÝDμîÝÅ×± °(Èÿž È„Ÿ ÷"(-3«¶@ «¶KT^³ 1099511628211Á%#"„äœòË14695981039346656037Á`Ì£##xÌí##ÐÌ€%#…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅé·�þW\ †ÿnv(Ìû# ù"Ì€ #þ"3�·?ûüG  þóŠÿí ÿø†� †^ó‹C’À( (Í‚ # ñ²Ý`Í£## ò²Ý*îÝxÍí## ó²Ý * îÝÐÍ€%#  &²Ý ÿ*  6  îÝØÝ×± êïÛય y ~͇ #€#0­à=ûüF·áO²ÝX²ÝHîÝQÿÀZ²Ý(îÝ1óŠ:²ÝîÝ ¢Á¢Á&¿œÍØÿÀîÝÍóŠîÝœŠÅîÝk×± `ÎÆ'# Î¨(#ßã®ä)1`Τ)#Çü†)2(ÎÂ%# �#ÎÇ%#ÎÆ%#A†#Pé·\ é·gýÿÀßãìËêôÇÆÍŠÎ ªÃÁC®ä(ü†ùßã› (ÏÉ%# ô²Ý`ÏÆ'# ò²Ý*îݠϨ(# õ²Ý ßã+ îÝ`Ϥ)#  ö²Ý Ç+  7  îÝÚß×± ìñÝ⬱ z ÏÎ%#ˆ#2­à?áÇH·áQ²ÝZ²ÝJîÝSÿÀ\²Ý*îÝ3Ëê<²Ý îÝïþÍŠ$¾œÌ×ÿÀîÝÌËêîÝ›ïþîÝi×± `ÐÆ'#  ÷ Ð¨(#  ÷ßã`Ф)#  ÷Ç8ÐÐ%# �#Ð×%#ÐÖ%#AŠ#Pé·\Ðßã´Ç—zðÌñ”Íӹʹßãi`ÖÖB#xÖ C#ÈÖ³D#…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàŪº�þW\ †ÆÏnv(ÖÇ@# ‹#ÖÌ@#�#3θ? θJÿÀÿóŠÆÏî ÆÏù‡‘ÃÁZó‹?•Ð$ (×Î@# ÷ ²Ý`×ÖB# ò²Ý*îÝx× C# ó²Ý * îÝÈ׳D#  &²Ý ÆÏ*  6  îÝØÝ×± êïÛય y ~×Ó@#’#0­à=òÐF·áO²ÝX²ÝHîÝQÿÀZ²Ý(îÝ1óŠ:²ÝîÝ ¦Ñ¦Ñ&¿œÍØÿÀîÝÍóŠîÝœ‰ÕîÝk×± ˆØ­F#Çü†)1hØÄF#XØ×F#(ØçE# “#ØìE#˜#3¨¹? ¨¹JÇÌÍŠÔ¥’ª ­’’ª š�‹ü†ýª àýª Ä (ÙîE# ø ²ÝˆÙ­F# ù²ÝÇ+îÝhÙÄF# ?²Ý ) îÝXÙ×F#  ß²Ý *  6  îÝØÝ×± êïÛà©® y ~ÙóE#š#0­à=®×F·áO²ÝX²ÝHîÝQÍŠZ²Ý'îÝ0’ª 9²Ýîݯ° ’ª #¼œÊÕÍŠîÝÊ’ª îݘ¯° îÝh×± þˆÚ­F# ¹ÍhÚÄF#  ÷XÚ×F# ÑÜ8ÚõE# “#ÚüE#œ#3¨¹?ǧ�r\¹ÍÆÑÜ­ÑÜ�Û€F#ž#ÛþE# ®×#,6hÜÄF#&7XÜ×F#&7ˆÜ­F# Ç Ç*/ ù±ÇÇ F KSX`mÜ‹F#¡#HÜ‚F# ®×®×:BJ ÍŠÞÍŠæeî r|›à`Ý�I#�ÝæI#¨¹ †¨¹/7`ݽJ#Çü†)1(ÝŠG# ¢#Ý�G#§#3ªº? ªºJåÿÀí¨¹Ó®×Ûǧ͊¯‚ŒÃÁ*Çâü†Ú (Þ‘G# ú²Ý`Þ�I# ò²Ý*îÝ�ÞæI# õ²Ý ¨¹+ îÝ`Þ½J#  ö²Ý Ç+  7  îÝÚß×± ìñÝ⬱ z Þ–G#©#2­à?ÚãH·áQ²ÝZ²ÝJîÝSÿÀ\²Ý*îÝ3®×<²Ý îÝïþÍŠ$¾œÌ×ÿÀîÝÌ®×îÝ›ïþîÝi×± `ß�I# ðÌ�ßæI#  ÷¨¹`ß½J# ¹Í8ߘG# ¢#ߟG#«#3ªº?§¨¹�Çs]ðÌÈ�鯹Í�³ 1099511628211Á%#"„äœòË14695981039346656037ÁPå¥D„K„KK‡Kí ä7ˆKÞüä7‰K«ä7ƒ¢3à6ú�Ô»�þbg †Œëy�(å›> ¬#å >°#-�»9�ùAŒëÏ ŒëÚ]gæë÷|ÔQlÔQ ú üÔQ$TäQÔëCDïQ¤äQ ýQþQü€Q~õ ¡ó¼²Q§òDŸQË纷¬Â¨ OŒíáÔ뺷¬‘·¬—4소ë¤ì† Þ"Œë1"'•öÔì†�‡®¡R,�‡Œ‡ü ü¿†M,܆�ù,Ò†¦ý› Ô»¦ÍìÅ'K ïË®¡–4Â�Œë¬Â� ï+!ÇÝ�ý ü��MÇ<°��ù,¦�²ðmÍìŒA ï’4à–Œë¼à– ï+!Çý–þ ü¬–QÇ<Ζ�ù,Ä–²ðmÍìŒA ï’4¾¥Œë¤¾¥ ï+!•öü¾¥(  Þ"•öP#×¥ t×¥DÛ¥å¿ (TÛ¥bÓ¥ ÕwÇ´KœÓ¥ü¾¥14ç¥ ÃXǶDç¥õ¥ÿ üõ¤€ řǙș­É™Ê™àË™óG*¤�R{9 Ç|¤¥�ù,Š¥›†‘¥Å™Ç™È™­É™Ê™àË™óG*¤�R{9 ÍŠ–  Ç£¦ýá²ðêÍì �·Í§ž¾¾¡ ï1±ôå¿Ñ’õÊõ‚4´·Œëœ´· ï+¤³·ªÓÍ·�üþ¶O³þdœ·�ù,’·²ðpÍì�A ï•lò¿4÷¿¸$ò¿D÷¿$ÿ¿ ‘ý“»ÇK€À/‰À‚ü¼¿M Ƚ4à¿�ù,É¿Çп‘»¨ˆC!T¸Ò¹ú¬4¢ÇŒël¢Ç ï+t¡Ç…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅȽ�þV[ Þ"¬ümuµÇƒüöÆ?‘»DŽÇ�ù,„Ç ¬ü·²ðàÍìÿ'L ïûüë4øÒŒëœøÒ ï+#TÿÒ “PdÿÒ¤÷Ò‘Ó„üÆÒKã“TâÒ�ù,ØÒ…ÞVã“§²ð¯ÍìÎ,Q ïÔØþÚ4ØáŒë”Øá ï+!ðá…ü¬áD$Éá�ù,¿á²ðiÍìˆ? ïŽ4ÖþŒë„Öþ ï+!ìþ†ü¬þ@$Çþ�ù,½þ²ðiÍìˆ? ïŽ4¿‘Œë\¿‘ ï+! Б‡ü—‘9$°‘�ù,¦‘²ðiÍìˆ? ïŽ4ºœŒëtºœ ï+! Μˆü�œ?$«œ�ù,¡œ²ðiÍìˆ? ïެ÷®tü® ý $÷®„ü®,¼�¯„•¯ þ $�¯”•¯,ü÷®0 ›à‰T"­¯‰ü¾®o$è®�ù,ޮ͊ÓÇÛÍŠ©Ã‡±,Oß…™†Õ›à¡4¼¼Œëœ¼¼ ï+¤»¼ ‚óÕ¼Šü†¼Oó´d¤¼�ù,š¼²ðpÍì�A ï•4ŒÌŒëœŒÌ ï+! ¯ñ¥Ì‹üÜËI¯ñ<úË�ù,ð˲ðmÍìŒA ï’4ÊÚŒëÔÊÚ ï+! ¯ñêÚŒü“ÚW¯ñ<¸Ú�ù,®Ú²ðmÍìŒA ï’”ïð„ïð ÙÔ» 4±ñ Œël±ñ ï + ! ¬üœ±ñ¿ñ éCȽ�þV,¿ñ”Çñ„Çñ ÙȽ  ü±ñ(     - üïðj   - 4èñŒë¤èñ ï+!•öÔèñýñ®¡L,ýñ¤…ò”…òá¡ üèñ1  -üïðª  .4¨òŒëŒ¨ò ï+ !ýÝü¨ò dºò ÝO tºòüïðÙ .4×òŒëœ×ò ï+!üïðû .ðò�ü ðÐ,¾ð�ù,´ðþ¹ÏÝ|Ëýº²ðÃÍìãlÆ£PÆ£S£¦ýá²ðêÍì �Æ£‡Æ£SÑ㓲ðÍì8Æ£Ë~²ð‡Íì§Æ£g*  ŒÖ ï¡‘�sÄ�G ï˜®¡já¡H ïž¿‘p ïø�èµú  ÷¬ü¸èþú ¹ÍÈèÎû ¹ÍØè¸þ �èèôÿ  ÷ýÝ àèá…  ÷Š× È詊  ÷ªÓ ˆè�‹ ƒÄxèÞ‹ ƒÄ  P蹎 ƒÄ  hèŒ� ƒÄ  ÈèÚ� ÉÄ  ¨èÇ‘  ÷¯ñ   àè⒠噘贖 ÝÃ8èÀ÷ ±#     èÇ÷èÆ÷%ˆÂ#—Ô»£¬üµÇ˜Ç€•öhýÝPŠ×2ªÓôÚÀ¦‚óޝñv¯ñX?(–=¹Í¹Í�ÃêË—Ðò—°™˜�ƒÄpƒÄVƒÄ<ƒÄ"ÉÄå™îå™ÎÝôýÝI•öP¬üW(ý©ç  3¨ýÞ�ÕÛ›† %ºÚ 19x Ã#‹hýÚ…`Ǩýª†`›†¸ýÀˆ`×�€ýÚ‹`×�rwü†ƒ‹hý‰ý˜íÇhýéþ˜íÇ>Cü†OWÐýü÷ ùŸŸ Àì £ó‹¤ô‹ljô²ßk#À÷�þbg †‹¡ y�PýÓó ‘ÚôíhýÅô ‘ÚÇ>Cæ® O W€ýÉîÓì÷À % †÷À7 ?ˆýæíðÙ‘À % †‘À7 ?ˆý¨éÖÙÝÁ %ñä1 9' Ã#ý­çK Ã#$j Ã#Chnü† { „­ Ã#  ‰Ï Ã#¨¯µü†ÂË Ã#î‡�ºÚ š£�•ÉÌ¢«—�É̪³  Ã#‚É Ã#¢ý®çÞ# ÿ !(/6ȽD€ûMU¶êuÝÁ~ ‘ÀΑÀ× ÷À'÷À0»³•ÍŠ€ôí§Ç’ ‹¡B‹¡KÍŠ°ÍŠ›ÇÂÇ­ÍŠd·ÍQ¦Ï>¦Ï+Lj›†u×�b×�O·Í›†R‡³x‡³É‡³‡³ƒ À¼ r ‡³# ‡³ŒÀ¼ {‡³6À¼ '’ì__self_3Á‡³Ê  ºÚ Þü†Œü†Þ¡®æ®/þ¢Ú£�ñä`ü†-ü†ºÚ ¯ÉÌšÉÌ…þ²çà# þ°ç "(.4@€ûHQ[#Hÿ´ç,; KI€û\Ii   "ˆ��!¥­º!ÂJ€ûÓJàïK€ûKL€û0 L> NM€û` Mn ~N€û� Nž ®O€ûÀ OÎ ÞP€ûð Pþ  Q€û Q. ¨ÿÞ�R€ûERÕÛ›†/S€û@FSÕÛ›†Y GEe HFs xž�G„H‰!‘hÿÚ…T€û2T`Ǩÿª†U€û3U`›†¸ÿÀˆV€û4V`×�€ÿÚ‹W€û5W`×�´X€ûÅ6X`ǯY€ûÀ7Y`›†ªZ€û»8Z`×�¥[€û¶9[`×�T ;2a <6p vÁš;ƒ<‰:’ hÿ‰ý\€û)\˜íÇhÿéþ]€û*]˜íÇ^^€ûo+^˜íÇY_€ûj,_˜íDz.)¾/+ÌÑÁš.Ý/â-êÐÿü÷`€û%`ù‹¡.a€û?&aù‹¡W'%c(&qv ù±­©­©'�(’!š PÿÓób€ûb‘ÚôíhÿÅôc€ûc‘ÚÇ^d€ûod‘ÚôíYe€ûje‘ÚDz!¾"ÌÑá–!Ý"â ê€ÿÉîf€ûfÓì÷À/g€û@gÓì÷ÀYesx ù±ô¨ô¨�”!œˆÿæíh€ûhðÙ‘À/i€û@iðÙ‘ÀYesx ù±ߨߨ�”!œˆÿ¨éj€ûjÖÙÝÁ/k€û@kÖÙÝÁYesx¡™„‰!‘É ª#·$ÆÌÁš#Ù$ß!èî÷!Í-®0*»1,ÊÐÁš0Ý1ã!ìòû !Û : ¾ >3Ë ?7Ú àž�>í?ó=ü = ç A4ô B8  •œAB@%- @  C5 D9, 2•œC?DE!NT ]k !ÿ½çß ã# ï õ ü      & - 4 l@ €ûI €ûR Z b i €û€ûw  ‡ � — Ÿ § ¯ · ¿ ¶ê�¶ê¦Ÿÿ¯Ÿÿ¸ߨbߨk ߨwåÅ€ô¨*ô¨3 ô¨?ŒÆH»³@ÍŠ»³RÍŠ,b¨Àk¨ÀtïþNïþW­©.­©7 ­©C‚ÇLÍŠDÍŠÍŠVÍŠ0fïþoïþxïþRïþ[ÍŠ+ ·Í ¦Ï㠦Ͽ ÍŠO ·Í+ ¦Ï ¦Ïã q ïþz ïþƒ ] ó‚f ó‚o I ’£R ’£[ ’£7 ’£@ ·Íf ·Ío ó‚x ó‚� €ûÈ €ûÑ €ûÚ €ûã €ûì €ûõ €ûþ €û€û€û€û"€û+€û4€û=€ûF€ûO€ûX€ûa€ûj€ûs€û|€û…€ûŽ€û—€û €û©€û²€û»€ûÄ€ûÍ€ûÖ€û߀ûè€ûñ€ûúî ”§!¬§.‡³ѧ‡³Ëѧ؇³†ѧ“‡³� À¼ m ѧ© À¨‡ ‡³b %ѧo &‡³k )À¼ I *ѧ… +À¨c ,‡³7 2À¼  3’ì÷ 4àª× 5ѧk 6À¨K 7•©+ 8__arg1_3Á 9‡³< EѧI F� ž�]ÁšÎ Áš= Á¹U á–½ ѼÕ ò½; ¡™¡Ášª Áš? ž�à •œº •œ” ,€š\ú™  4$Çœ ,°› Üœ üÏ™�$뙀û,ᙼ”š:øšùÁ"ŸŸ Àì £ó‹¤ô‹ljô²ßk# ÝÁ�þ^c †ÒÑu}(šüÀ ä#š�Áç#/‘À;ߨCÒÑÍ ÒÑØ_i¦Òõ(›ƒÁ û²Ýø›ùÁ"Í ²ÝÒÑ-9îÝfk¹§x}hm�›ˆÁé#ª­à¶ß¨¾·áƲÝβݼîÝÄ �ÓÏ�Ó×úœ Õîݹ§'œŒÁë#œŠÁ ߨ'1ø�ùÁ"ÒÑÒÑ,1 ù±ÒÑÒÑHMU�—Áî#H�ŽÁߨߨ�Ó—�ÓŸ8î EOýÖÉ„ÒÅÛÅ ÕwDÒÅßÅ<ÛÅÌìÅ ©’ª ŠöUÿߨüÒÅ4DãÅ ˜X’ª Ç©êØøØšeüãÅ#ŒÆ¨üƒÅ‰Šö|¸Åߨ,’Åå‡D™ÅªÅřǙș­É™Ê™àË™óG*¤�R{9 ’ª E£Ùxý�{™´º­Øˆ•Ù( îÅ$ñÅߨ¤ñÅdöÅ ¬/ ƒÆ|öÅ…Æ©ÌKŠöðÅ£Ùê’ª íÅœߨ$“Åߨ˜Â+îÛ¯îò „áÌÒÑ ÀÀUniqueÁ¿ µÃüðµ´]8"»Oÿ‘Ò®®«°¿ ”3¯f*²Û�‘Ò ‘ÒŸ¼áÌ$òÌ ìwÝÁË4ò̸¶áÌ  ‘P�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫÝÁ–otø¶ØÌÑ ¥ ÆQŽß·¿Ä Ð  ã ÜÌ à¶ê<ŠÍ tŠÍ    ¤ÈÍdÊÍ ½ ÈÍ$×Í ”ÊÍ6  4ûÍ ÇdöÍ Å™Ç�Ö $¤Î Å™Ç& 0¬ü–Ì÷ |ƒŠö|¾Ìߨ,ªÌ$±ÌŽß3Žßk ‘Ò%ŽßQřǙș­É™Ê™àË™óG*¤�R{9 ¶êŸ Žß«1¶êÒ«Ç•ÇYÒÑÆµÞÎ×—»Û�ª2 1ÚÞ_ˆß7£à>ÆáøžÆÛ‹¡Þ¡+3(žšÚ ï#žŸÚò#/÷À;ô¨C‹¡ƒ­©‹\fÞ¡¨(Ÿ¡Ú ü²ÝøŸÆÛÍ ²Ý‹¡-9îÝfk¹§x}hm�Ÿ¦Úô#ª­à¶ô¨¾·áƲÝβݼîÝÄ‚ÇÌ­©Ô÷œ‚Çîݹ§$ ªÚö# ¨Ú ô¨'1ø¡ÆÛ‹¡‹¡,1 ù±‹¡‹¡HMU¡µÚù#H¡¬Úô¨ô¨­©—­©Ÿ8î EO¹êÉ„¨ß±ß­ØD¨ßµß<±ßÌÂß ¯êØô¨ü¨ß4D¹ß ˜X’ª Ç¯êØ¢ìˆ[ü¹ß#âß®üÙÞ‰Šö|Žßô¨,èÞå‡DïހߙÚîÍìÄ1ý�4™´8s­Ø/¿ìá Äß$Çßô¨¤ÇßdÌß ²/ Ùß|ÌßÛ߯zKŠöÆßÍ옒ª Ãßœô¨³$éÞô¨˜ÂÙÐî¯îòŒÃæ\Ãæžª $Ïæ#ü²æ# ‹¡  ÀÀÈÜ¿ µÃüðµ´]8"»OÿÀ÷®®«°¿ ”3¯f*²Û�À÷ À÷› §¸ Ì ‹¡Þ  ËðŒñ½ñ÷ $âælêæ  ²ÍŠ¬âæ›à? 5!($†ç Å™Çüßæ]T¨ç Å™Ç*Âç²üååÝü§æ›Šö|�æô¨,ùå$€æÇ$«æ7ôÍŠ'ÍŠ!‹¡O‹¡W½ñ_½ñgp—»t¥ vºræ*Çžª ›àp˜¡æ*ǰ¿²ÍŠÝÇæîóæ*ÇÒíÍŠØílßí ¶���ÍŠ¤Øí ú±ÇÇ\R,ìí¶üËí!N×í ¶ ÍŠUÿC œøTÌíÇýÍŠãÍŠÜÍŠ# Ø …üæ*DZ÷à"æ*Ç1@¶#ÍŠ^Çgotæ*Ç$�î$ˆîÍŠd³î,¸î ¸$³î<¸îdÖî,ÛîÅú$Öî<Ûîü�îx ú#‡ï·üÿíˆ<ÝÁŽî ·œøÝÁUÿ;œøl€îÇëÁÍŠ*—»;¥ 4�Åú$Åúú(¢Ëð¢Ðð€$(-3ÝÁ@¶êHQ[¤Úðƒ$¤Øð ¶ê$-7h¥¹ñ ühù 2 ¥ÜðDX¥ùñÓþ)@6ˆ¥ÀòÇ ühÇù 4†A¥àð…$©´¶ê¼Žº Ä’ª  Ê’ª ÒÍŠŸõƒ ÓþOÓþ ØÿÙh¦¹ñ'8X¦ùñ'8ˆ¦Àò Ç Ç+0›à < AINVc¦ëð‰$H¦âð ¶ê¶ê4<D ÍŠÖÍŠÞfî s}›à(«¡ÿ ý ²Ýˆ«Êÿ ²ÝüŠ+îÝø«­‚*þ²Ý „!„!…! PhantomDataÁo$z�é -�´ ^  j îÝÓØ¤éåêÕÚ£¨«¦ÿ�$" ­à/ Š$Š$ØðŒ$ÛËÎ �$üðÎ  ð 66\Çv·á²Ýˆ²ÝwîÝ€ üŠŒ²ÝYîÝb  º…qú‡zÚœèóÚ‡îÝçø‡îݵ¤éè¬�Þ׳Ø)1ð¬ÀôÄ ŽÆ )1(¬í ‘$¬ò•$0ÊÃ< ÊÃGÞ×»žÜÃôÄ ••Ì �pz³ØðŽÆ À(­ô ²Ýè­�  ²ÝÞ×*îÝð­À I²Ý ôÄ *  6 îÝœ¡¤é®³ ¥otÏ­ù—$é ­àõ…Šý·á²Ý²ÝÿîݞܲÝÞîÝæ •Ì ñ•Ì ùUœcnžÜîÝd—�îÝ3¤é�è®� éãð®À ÊÝ 8®û ‘$®‚™$0ÊÃ<Þ×€ôÄ iSéã™ÊÝ €p¯¾HÊà †ÊÃ/7à¯ñH·¬Ðæ)2(¯–H š$¯›H¯šH>ž$M£ÄY £ÄdÊÃß…Šç·¬³Ëç»�—Á�ÐæßÊÄ(°�H ²Ýp°¾H ²ÝÊÃ*îÝà°ñH ²Ý ·¬*  6 îÝœ¡¤é®³ ¥otϰ¢H $é ­àõï�ý·á²Ý²ÝÿîÝ…Š²ÝÞîÝæ¾êîËçöRœ`k…ŠîÝa¾êîÝ0¤éŠ £O  l©O·¬ü©O"T·OÔë,DÂO¤·Oø¼©O# ©¥D#/Bü©O# m�» !, êO   ÄÖOtÛO ð$ÖO A œÛO½ËO[‡§î! �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwðÄ×°‡§Šd óO  ôO! ))ü¨NÌV f  î4üŸOU#*1Á ¸—ÔúNï�,ÒN§òDáN�»�°ª?¡óvË畇‡§��»"�»óc¨ gß'ùÆ ÚŽo Ôëú©¥Óì–6²—á�»~p±†vÊÃÁ�)1@±šv�»‡…)2(±ßu ¡$±äu±ãu>¥$MðÄY““aÊÃÖ…ŠÞ�»°�ù¸Š”Á� ‡…ÜÊÃ�(²æu ¤²Ýp²†v ²ÝÊÃ*îÝ@²šv ²Ý �»*  6 îÝ�¢¤é¯´ ¥otвëu§$ê ­àö““þ·á²Ý²ÝÿîÝ…Š²ÝÞîÝæœþî�ùöSœal…ŠîÝaœþîÝ0¤é‹Œâ„|â„ ü!üâ„&Tô„ MDÿ„¤ô„ �…Ž…üüƒ’ö¸—Ô½„§òD¤„ï�Ì£ÄÔ¨ Sú óª¡Ê£Ä—£Ä�dÅËÊÃ×Ë�ü—Ë@…Š<³Ë““,©Ë 1LÆÌ�»ÕÌ‚üžÌ7�ù$·Ì““,­Ì 1d§ß$­ßͤ,§ß4­ßܧßD´ßÙ¥C$½ß t´ß4åß<íß  „Ó¤¶¨   ž©üÌß)dÑß ™$Ìß,Þßl büÑß$@üÌß3<ößÿªfLöß…à„üžÞçü›ßj $Œß““,ÏÞΕ,ÞÞÓ¤,ùÞÙ¤,ŸßÙ¤~Ϭ〪뜬5ž©/¶¨8aóAc–`e–`g´ͤì٥ǃ¦Vÿªòß ¹¨¬¼„¶¨Ú¸¨Gê6dáï$çïͤ,áï4çïtúï<ÿï ‚$úïLÿïäúï\‰ðé˜El‰ðüúï! šð'$»ð Å™¯€$Áð Å™¯€dºð ¹¨  4÷ð Tÿðž©üÞð,dãðƒ¦$Þð,ðð ZP üãð'øÀÞð- Û´ W $ 0 ÚüÞð- m›† «ñ D¥ñ% / ÐÁŠñ­¶Úü¶0öwHÂ¥ñ  �%¹¨£ $)5 L¥ñm¯€|¥ñ¯ñ®¸2,¯ñŠ Ã­ñ­¶Úü¶0° Òñ DÌñ% /JHÄÌñ îp#/LÌñm¯€|ÌñÖñ®¸2,Öñ„ÅÔñ­¶Úü¶0ªœ…ò ! Ú,üõñ$ Tõñ½º€ò!= )üðñ* Å™‹¢ üéñ1 0tºò<¿òô©$ºò#L¿òܺòTÉòµ’#C"dÉòÌïòŒõòî»",ïò$œõò$§ó& Å™¯€ù³„ !±³„ ¸¼&7$L­ó%,4äó*Tìó,%…½,#+1,üËó,dÐóƒ¦$Ëó,Ýó*j+`)1üÐó'øÆËó- Û´)X(1 %-(1-üËó-.(m›†'.,Žô3%”ô6't”ôD˜ôå¿6(51T˜ô²Ç÷ó­¶Úü¶31Ù””ô75 ¥ô& 75( 1N47¤“ô«Á3ê4y2!1"ÌŽô12ÐÈŽô î1(0"1$8008#$ÔŽô90m¯€üŽô ©ô®¸93/%1,©ô‡É§ô­¶Úü¶41®,Âô>%ÈôB'tÈôDÌôå¿B(A&1TÌô”ÈôCA Ùô& CA('1N@C´ÈôD@ Ýô& D@((1N?DÄÇô«Á>?z=)1#ìÂô<=ðÊÂô î<(;*1$E;0E+,ôÂôF;m¯€üÂô$áô®¸F3:-1,áô‡!Ëßô­¶Úü¶51®œ…õH Ú,/:üõô$Tõô½º'€õH=G.1*üðô* Å™‹¢G Ÿõ%0%0 õ-%2üÓîÍÒ/f/~!/‡$5üÕïËüªðûüÔðÑöý ” ü™ñŒX_ f¶ üÂñcW^eµü®òòüßòÁü’óŽüÁóßý ‡ü‚ôžØßæ8ü¸ôh  k"I³¶l½ï““,€ïΕ,�ïÓ¤,ªïÙ¤,Ùïõ $ �ù[ ¾ÉL®ð¹¨ä ¹¨Ô éÉ< €ª… œ¬À ž©º çÊà “ ›†% ,�ñÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ü¶¯€Ê ¹¨Z € i [ ¯€­ Æñ©ÃÙ ¹¨< b K p ¯€ ‹¢@ Åže ã“,²ò�ù Lãò‹½L–󹨡›†ÅóéÉæ€ª0œ¬{ž©uÖÌ~[›†Ù,†ô©Ã·¹¨Ò�Í›ÍásÑ·ÍëÆ£�p¯€Ä¼ô©Ã%¹¨@�Íq›Í€âHx·Í’Æ£bÆ£ ﯀C‹¢¾ÅžãÛóAÞ–`á–`ä©&;¾ØðÆ 2 Úü¶ŽÏ ‚®Æ ™ Úü¶Žö ’M Æ ž Úü¶Žû ÊÎ+"ÛÎ%$©&&%¾¾'Æ O Úü¶ŽØ .‚/Æ /Úü¶ŽŽ9’Î:Æ h Úü¶ŽÇ"F·#ͤ£ô©~é˜Wƒ¦‡Û´N­¶UîQ®¸÷ ­¶_î9 ®¸å ­¶G ½ºƒ ô©/ µ’ î»è ¸¼ª …½q ƒ¦E Û´ 忊 ­¶ «Áâ î° ®¸[ ­¶¾ å¿ò«Áîஸ‹­¶î½º&‹½ß‹½æ‹½ídÔý$Úýͤ,Ôý4ÚýlÓýüÀý'4Åý ˜$Àý,Ìý;$âýüÅý"íýŠü®ü¿µý““,ßüΕ,îüÓ¤,‰ýÕÖ$›ýœ¬¯Ù¤á=óA?–`AɾDŠͤ&£Íò $ã„   tü„<�…ô©$ü„ L�…Üü„T‹…µ’D d‹…üü„#,˜…à’B <˜…üê„6Œê„­ëC !,Ç…   dÇ…$Í…ͤ ; 4Í…ü³…!œ³…̇  C"$ý… üÞ…) ¨$ �† Œ† üÀƒÍ!1  �5üß„®üª…c ¨$¨$¾¾¬$é¾Å­$óAÅ®$ɾů$ÛËÅJ%½5Î…ç¼½„““DúƒΕ,Œ„Ó¤,ª„˜ÛyýÝã“3�ùi¢‰ ®…Ù¤±Ó¤Þ˜Ûr5sóAu–`wɾóÛËciô©èµ’Âà’Ÿ­ë{ͤ8̇ ˜Û±Ó¤¸$ê‘   ´ñ‘|ö‘ ý$ñ‘Œö‘,®’  d®’$´’ͤ;4´’üš’!œš’̇ C"$è’üÅ’- µ$ø’ ÷’ü¿�¹!1 ’5üæ‘’ü‘’g µ$µ$ëĹ$é¾Åº$óAÅ»$ɾż$ÛËÅÕŽðÃ÷¸ápÜÀ‘““Dý�Ε,�‘Ó¤,­‘˜Ûþ¢‰ •’Ù¤–ӤØÛWXóAZ–`\ɾ]ÛËcNšÖRͤ̇ å˜Û�Ó¤ˆ$×® Å™›†´Æ®\Ë®úÚ$Æ®:ŒË®„�¯L•¯�Ù$�¯\•¯üð®1dõ®ƒ¦$ð®,‚¯,‰¯\üõ®,¬«¯\°¯úÚ$«¯¼¯ „°¯ǯ˜üÅ­‚üæ®a »®““,Ü­Ε,ë­œ¬,†®ÕÖ$¡®6€ªZ€ªê®ž©"»YóA[–`]ɾ`¾¾R¼úÚ¬�Ù‚ƒ¦]úÚ!)tçÆ<ìÆô©$çÆLìÆÔçÆLöƾàC\öÆ)t…Ç<ŠÇô©$…ÇLŠÇüçÆ6 Ä…Ç<”ÇÇádL”ÇL«Ç  üÌÇ*„ÑÇ œ$ÌÇ,âÇ,éÇ,ðÇ üÑÇ%øÌÌÇ+  �%Öá e  %*  6  ÚüÌÇ+ mö  ‘È d‘È<”Èú¢ ( L”ȲÍöÇöƒÚü¶&Ø”ŒÈ Å™›†Ì…È&tðÍ<õÍô©$ðÍLõÍÜðÍTÿ͵’CdÿÍüðÍ/ŒŒÎî»AœŒÎ,¬Î\¬Î”¬ÎüÖÎ*„ÛÎûà$ÖÎ,ìÎ,óÎ,úÎüÛÎ%øÎÖÎ+ Âá]$0 üÖÎ+mö  ›Ïd›Ï<žÏú¢ (LžÏ¡ Ï€ÏöƒÚü¶&Ç”–Ï Å™›†Ì�Ï&t¿Ï<ÄÏô©$¿Ï LÄÏä¿Ï\ÎÏé˜ ClÎÏü¿Ï! ßÏ'$�Ð" Å™¯€$‡Ð# Å™¯€d€Ð! ¹¨"#\ÈÐ &! %&ž©ü¤Ð0 „©Ðûà$¤Ð,ºÐ,ÁÐ%S$ü©Ð+4‡Ò)!,�Ò,\�Ò+,hÐŽÒ* àý+|�ÒÆè)a*8(!üðÑ-|öÑñé,ðÑ(´†Ò'üöÑ'Ô²Ò¶Ò þWö ›†šÚÿ$²Òڶ댺Ò&´¶Ò$öÒ. Å™¯€ù´„ !±´„ ¸¼.7üÒ- ,\¸Ó1-…½1#0!',ü”Ó0„™Óûà$”Ó,ªÓ,±Ó0c/"'ü™Ó+4ëÔ4-,ôÔ7\ôÔ67hÒòÔ5 àý6|ñÔ¾í4a583#'"üÔÔ-|ÚÔñé,ÔÔ3´êÔ2$'üÚÔ'Ô‹Õ�Õ þWö ›†›Úÿ/‹ÕÚøîŒ“Õ%'´�Õ ªÕ-&«Õ-(ü­Åþ™üׯÔüÃÇf¤«²üæÍÅüÍÎf×Þ åQ üïÏèüšÐ½ üàÒËüŠÓ¡8€ªŒ»Æ““,ÊÅΕ,ÙÅœ¬,ôÅž©,�ÆLÛÆ1 �ùf �ù œö ÇÇÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ü¶ö —Öáèñö _›†1–ìKêÍã“¢�ù×BY×ñrö ÑÎôñüÖáKgö Õ›†§–ìÁå�ùI¾ÉTóϹ¨Ô¹¨ÄÖážÐ ž©©çʲá×ñçòhÑèCZ×ñs‹½TäÒ¹¨—ÖáŽÓž©_ÖÌh…×ñ·›Í Ñèèÿ×ñFóAI–`L©&OÎóU�ì7 Æ Ç Úü¶Ž@ ãóÔ�ì¬Æ  Úü¶Ž| òó� !„ôq$òó--„ô&/Ü ô©X ¾à3 ô© ÇẠûàx Âá7 ú¢ µ öƒE ô©D µ’ î»ý  öÌ ûàŸ Âá` ú¢ ïöƒn ô©~é˜Yûà˜ ö?Æèñé÷¨ëȸ¼`…½6ûà  ö°¾í‰ñégêî7‹½ç‹½î¿Òd¿Ò<ÂÒú¢ (LÂÒËÒš›†¾Ò¶ë6ö »Ò–ìx�ì_ú¢ ‡˜Õd˜Õ<›Õú¢ (L›Õ¤Õ›ÿ›†—Õøîö ”Õ–ìx�ì@ú¢ ‡üåî0¬êî ¢$åî,€ï,‡ï4Žïüêî+›ïŸüÍíÎÚî““,÷íΕ,†îœ¬,¡î�¦ 4¼î-óA/–`1ª§ 4z„üÞ(ÉñÁ g ²Ýpɢ h²Ý““+îݠɶ B²Ý Ε+ îÝpÉР z²Ý ˜Û+  îݰÉä  ²Ý¢‰ +7îÝÆß +1$îó ¼ Á Š�dÉöÁ´$€­à� €Ó™·á¢²Ý«²Ý›îݤ‘“­²Ýzî݃ Ε�²Ý\îÝeŸ¢n²Ý;îÝD§³ M©³ V-œ;F‘“îÝ;¹�îÝ Ÿ¢îÝ×§³ îÝ¥ÆßyèÄ““lìÄΕdûĘÛT‰Å¢‰ üºÆ_ ¯ú´ ““ΕÕÖü¯Æk<²Æ ¹¯ú´ ワÆ~ü²Æh Ç®üáÿüÖÄʳ¶l÷à €ÓLéÓ“/ Ε&ÕÖÁ¶  ”„ÿΕIDé¾vóAmɾdÛË[«Œ„ÐÆ““,ÚÆΕ$èÆÕÖìÐÆ4ÓÆ£ÍXH,áÆ@ÔÓÆ$þÆ ÕÖ „þÆLƒÇˆ­;\ƒÇ¤ûÆ Àœ³¶Û†™Ç¯] ×… ÁÆ ”„xœ¬,»Ææ³¶‘Ÿ¢½““£Ε¬ÕÖµÕÖ¾–`Hé¾.““óA,ôÄΕɾ$ƒÅÕÖ£Íxˆ­"§¸ ûò¾®(Ê°Ë y²ÝpÊåË h²Ý““+îÝ ÊùË B²Ý Ε+ îÝpÊ“Ì  z²Ý ˜Û+  îÝ°Ê§Ì  ²Ý¢‰ +7îÝÆß +1$îó ¼ Á Š�dʵËÁ$€­à� ÕØ™·á¢²Ý«²Ý›îݤ‘“­²Ýzî݃¹�Œ²ÝYîÝbŸ¢k²Ý8îÝA§³ J©³ S*œ8C‘“îÝ8¹�îÝŸ¢îÝÔ§³ îÝ¢Æßv¹Î““l½ÎΕdÌΘÛTÚ΢‰ ü‹Ð_  ¶ú´ ムü€Ðk<ƒÐ ¹¶ú´ ダÐvüƒÐh$øÐ |øÐDýЬ§ )TýÐ)$›Ñ d›Ñ, Ñø§ ) < Ñ”–Ñ Å™˜Û üõÐ_$ÆÑ Å™˜Û'Úѵü«Í¯ü£Î· ™©„ÁÍ ÕØL³Í““÷•…ëÕÖÞÁ¶ ѳ¶‰¡�Í;Ÿ¢V˜ÛŸ¢Ε:mé¾góA^ɾUÛËLÔ™�¬§·ø§t¡Ð““,«ÐΕ$¹ÐÕÖì¡Ð4¤Ð£ÍXH,²Ð@Ô¤Ð$ÏÐ ÕÖ „ÏÐLÔЈ­;\ÔФÌÐ Àœ³¶Û†êж\ ×… ’Ð ¡�wœ¬,ŒÐæ³¶‘Ÿ¢½““¢Ε«ÕÖ´ÕÖ½–`Hé¾-““óA,ÅÎΕɾ$ÔÎÕÖ£Íxˆ­"§¸ ûò¾®ÈË�Ø…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅ·É�þX] †›˜ow�Ë›ÙŒÈ †ŒÈ09�ˢڌȧ™*3(ËÊÖ Â$ËÏÖËÎÖTÇ$c±Ço ±Çz›˜t ›˜€ŒÈ  ŒÈŒÈä–›ì½Çê˜Ã§™N§™ŒÈ·›˜½ (ÌÑÖ ²ÝÈÌ�Ø  ²Ý›˜+îÝ�̛٠ÿ²Ý ŒÈ, îÝ�Ì¢Ú  É²Ý ŒÈ,  8  îÝÝâ×± ïôà害 { €ÌÖÖÉ$6­àCíšL·áU²Ý^²ÝNîÝW�›`²Ý-îÝ6–›?²Ý îÝ –› –›)ÅœÓÞ�›îÝÓ–›îÝ¡œŸîÝn×± pÎÄýݪ †ݪ08¨Î™ÿÛÈ †ÛÈ09(Îíû Ê$ÎòûÎñûAÎ$PŒÈ\–›dݪçâýïÛȺ ÛÈÅ�š§ ä éݪ…(Ïôû € ²ÝpÏÄý �²Ýݪ,îݨϙÿ ‚ ²Ý ÛÈ,  8 îÝ¢§¤é´¹¤©qvÕÏùûÐ$ð ­àü–›·á ²Ý²ÝîÝâý²ÝãîÝë ÿ¡öÿ¡þ^œlwâýîÝk�¥îÝ8¤é–øÐÌ”‹½‰’+3°ÐÔ•ÈЦ—(Ð�” Ñ$І”Ö$5ÛÈAÿ¡I‹½Ï›Í×¦óŠ®’óŠš€Š‰’ó‹áó‹Ä‹½Ð…” (ш” ƒ ²ÝøÑÌ”„²Ý‹½-îݰÑÔ• …²Ý + îÝÈѦ—  †²Ý +  7  îÝÞã×± ðõà嬱 z Ñ�”Ø$7­àDÿ¡M·áV²Ý_²ÝNîÝW›Í`²Ý+îÝ4óŠ=²Ý îÝ –óŠ%ÜÑÜ›ÍîÝÐóŠîÝœ –îÝj×± (ÕÜÇ%€Õ²É´Ø×�ØÕÄɴع¨>CÉÌOW8ÕÅÈ›öÇ %ü†19Æ Ù$ÕàÇ¡¦ýͲº  Ù$GÕáÇá$AGN ·É\ ·ÉhpÍŠñÇù¦Ï]�ÍH×�o¹¨Z®‡³5‡³žÀ¼ �àÉÌ¿ü†jýͯ(ÖãÇ%€Ö²É´Ø×�ØÖÄÉ ´Ø¹¨h p»²ÝQ Y¼²Ýf îÝY ao²Ým yîÝÖÛ¤éè í Æ Ë ²· 8ÖÅÈ›öÇ-6‡²Ý5AîÝciÀ¼w}t‹ÖèÇã$§­´­à„¯Ë·áÔÜÍŠÖ²ÝíîÝçïþï¦ÏÚ�ÍŲݲÝõîÝþ²ÝéîÝò‹ÖûOœ]‡³]‡³MÀ¼ < �¦ÏîÝq‹ÖîÝ]¤é®ïþîÝ©À¼¿lò6 æ*ÇüÛ6%×Ç<è6'Eæ*Ç StateID::ZEROÁ̸7  ´¸7 é* Ï77ü¢70ØÇ<®7'_Á �׊B…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅšË�þW\ †ë·nv€×èCë·º¸) 2ø×éD"ð0ð0Íò0ìŠñ.ó0�ñ.žFår­ä…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅäÌ�þ“˜ †ž¹ª ³ø×ÕE$ ð0ð0Íò0ìŠñ.ó0�ñ.žFår­ä…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅßß Utf8RangeÁà‚á’’›©9Dù¼�þÌÑ †Öº ã ìÈוG …C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅ•Ì�þW\ †Ƽ n wèלH …C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàŲÍ�þW\ †½ n w(×¼@ ä$  ×Á@×À@  $ 4 D Šì$™¢Ê¥ ¢Ê°ë·  ë·ë·¥é¿®ž¹€ ž¹ŒÖºÝ ÖºéƼ Ƽ ½š ½¦4? º¸�º¸)¨ºù™¼H•½^‘¾éƼ>ÖºEž¹Lë·Së·ZàØ�J…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅÑË�þW\ †ÚÁnv(ØèH í$ØíHð$-šË9 šËDÚÁÇ ÚÁÒ`j©Âï€ÙŸLÌ» †Ì»/7€ÙÞLÇü†)1(ÙçK ñ$ÙìKõ$0ÑË< ÑËGÌ»Á Ì»Ìǘ͊ s}äÃùü†ÃxíïÎÇü†*2xíÃÏÇü†*2(í¢Î ö$í§Îú$2•Ì> •ÌIǿ͊Çǘ͊ r|ü†ôü†Ã(î©Î ˆ²ÝxîïÎ ‰²ÝÇ,îÝxîÃÏ Š²Ý Ç,  8 îÝ¢§¤é´¹¤©qvÕî®Îü$ð ­àüüÆ·á ²Ý²ÝîÝÍŠ²ÝãîÝëïþóÍŠû[œitÍŠîÝhïþîÝ5¤é“ˆïþÐÇü†*2Xï•Ñ(ïÙÐ ý$ïÞÐ�%2äÌ> äÌIǫ͊³ƒóŠ‹q{ü†ßó‹®(ðàÐ ‹²ÝˆðþÐ Œ²ÝÇ,îÝXð•Ñ �²Ý +  7 îÝ¡¦¤é³¸£¨puÔðåЃ%ï ­àûŒÌ·á ²Ý²ÝîÝ ÍŠ²ÝâîÝê –òóŠúZœhsÍŠîÝg –îÝ4¤é’4Áˆñ®ÔÇü†*2°ñ£ÕÌ»', †ÜÐ>F8ñöÕ(ñ…Ó „%ñŠÓŠ%5²ÍA ²ÍLÇùÍŠÜÐÓ ÜÐÞš’ª ¢ˆ’ü†AúÐýª Í (òŒÓ Ž ²Ýˆò®Ô Œ²ÝÇ,îݰò£Õ �²Ý ÜÐ, îÝ8òöÕ  �²Ý +  7  îÝÞã×± ðõàå­² z ò‘ÓŒ%7­àDüÑM·áV²Ý_²ÝNîÝWÍŠ`²Ý,îÝ5 Ò>²Ý îݯ° ’ª %ÜÑÜÍŠîÝРÒîÝ�¯° îÝj×± 4Á3ÁØ÷ç‚�Ï', †¸×>FP÷ˆƒ(÷¶‚ �%÷»‚’%2ŒÎ> ŒÎI¸×¿ ¸×ʆóŠŽt~Ö×öó‹±(ø½‚ {²ÝØøç‚ ‘ ²Ý¸×,îÝPøˆƒ �²Ý +  7 îÝ ¥¤é²·£¨puÓø‚”%î ­àúÕØ·á ²Ý²ÝîÝ èØ²ÝâîÝê –òóŠúYœgrèØîÝg –îÝ4¤é‘ùÆ‚–%ùÄ‚ ÕØ$-73ÁØú炸׸×+0 ù±¸×¸×GLT[Púˆƒ'8@HUúÑ‚š%HúÈ‚ÕØÕØèØ èØ²¹Oî \fîÝM(ûèƒû탧%(-�Ï: �ÏENX(ýõƒ'HýÏ„ ¢ûÌ»L T’²Ý3 ?îÝ€…À¼’ —n¤Hýº„ŠûÌ»Ç Ï“²Ý3 ?  îÝûÀ¼  q"Hý¦„òúÌ»FO”²Ý5AîÝ|‚À¼�–t¤ýúƒª%ÀÆÍÔ­àâÐàë·áôü‡ÅÝ²Ý îÝî ‡Åù‡Å€²Ý2îÝ’“囇ŲÝVîÝ1“å:rœ€‡³g‡³ó‡³{ ²“åîÝ’À¼Ç“åîÝ(À¼Ø“åîݺÀ¼éþþƒ¬%þüƒ Ðà'1 Hÿ€„,; KÐà\ i |„‘ ›¢Ðà³À ÏÐààíüÐà   HÿÏ„Ðà¢ûÌ»/Ðà@¢ûÌ»Yesx ù±‡Å‡Å�” œHÿº„ÐàŠûÌ»/Ðà@ŠûÌ»Yesxìꄉ ‘Hÿ¦„Ðà òúÌ»/ Ðà@  òúÌ»Y  e sxìê „‰ ‘ÿ‰„¯%")0!<ÐàEÐàNV^eÐàÐàs{ƒ‹“‡Å:‡ÅC“åL“åU‡Åô‡Åý“å“å‡Å¹‡Å“åË“åÔÐàÐàÐàÐà#Ðà,Ðà5Ðà>ÐàGÐàPÐàY cî q”§€¬§�‡³8 ѧE ‡³èѧõ‡³£ѧ°äìêÄìê*ìê›(� ž� £µ%&+ÞÐ8 ÞÐCLV’ ­¸%’ « ‰ò&0@“ ÜðÑðÑ*/ ù±ðÑðÑFKS“ ¸»%H“ ¯‰ò‰ò ðÑ–•ôž:î GQºóÈP” º  îÞÐ (- Å™µ¼ ” Ľ%[»½ g‰òo‰òwµ¼ ˆî •Ÿéô©@• ÜðÑðÑ*/ îðÑAFN• É¿%• Ƶ¼ ‰ò‰ò •ô�•ô˜9î FPÃöÂ(– ñ– öÉ%&+1ðÑ>•ôFOY˜ €Ì%˜ þ •ô#,6 H™ ‚+: J•ô[ h y�Ž˜Ÿ•ô°½Ì•ôÝê™ ¥"•ô�ý-•ô>�ýVbpu ù±ÿÀÿÀŒ‘™™ ¤ •ô ë–-•ô> ë–V  b  pu ù±’ª ’ª  Œ ‘™™ ‹Ï%JPW^eq•ôz•ôƒ‹“š•ô•ô¨°¸À’ª 2’ª ;¯° D¯° MÿÀôÿÀý ÿÀ ™ÿ•ô•ô•ô&•ô/•ô8•ôA•ôJTî b”§q¬§~‡³ô ѧ ‡³¬ѧ¹»‘üͯý6Pš � Ãö"' Å™µ¼ š —Ñ%U»½ a•ôi•ôqµ¼ y‚î �™Ãö£ › ™&49 îJOW\hw› › ‘ ¡ •ô² ¿ ÒÙ •ôê ÷  •ô & › ¥" •ô�ý- •ô>�ýX] îns {› ¤  •ô ë–- •ô>ë–X] î ns {› œÓ%KQX_fmµ¼ {•ô„•ô�•�µ¼ ¦ ±Ò‡ºÂ½þËÓÛã’ª 6’ª ?ÿÀÈÿÀÑ•ô•ô•ô"•ô+•ô4•ô=•ôF Pî ^”§m¬§z‡³Ñ ѧÞ‡³kѧx–ºÃå‚ο…Ÿ¿†&256Á(¤ ¤F¤ ©FÚ%&+ªÓ8³þ@IS256ÁD–H —H¬ŠH Ô%¥HªüâGCªÓ\ôGs-256Á ¤çI”çI ª8²ŽJ  ÷# ŽJ ’Jÿ ;8³ŽJ  ‘PòýòýÁôý‚õý’öý exhaustedÁÝ ßÖ çP­sxø³…J;“¢§ ÆQµ�¹ÁÆÒå ‰Jà<¤J Œ¤J¬J ° ( °J ³J L¬J<ÉJÖJ¬ü¨I®üÕI�÷ý ªÓ\¿IªÓ\ÙIµ�¤µ�ïµ�¶»Ô ¿ µ�ËMïÍ ªÓéש^�˜#®ÌŒ…íŒk¯�0ÍŽ7Ä�)Œ«[\«[žª $·[ ̤[$ .ü¤[!ÿ‹Ì[°üïZ]™[‡‘LúZ$…[,�[ˬ*—»/›€4hžª  ŒÉ\\É\žª $Õ\ ÌÂ\$ .Iÿ‹á\±ü–\Kµ\³þ,¡\$¨\¿ !—»&Qžª ð4�^ðÑd—^( ù^ðÑ�ýtÿ^\ÿ^ ® ‹_( ¿^ðÑë–\Ñ^Ö^é© $Ñ^ Ú^4Ö^ÄÅ^\Å^žª Ež_²üÞ]Àü²^+üë^",‡^³þ,ñ]ÞÐ$ø]|²^̳'4Ê7˜þ˜V�Þ–Ié© žª Ûœ¼adÁa ´$¼atÁaü¼a"\Ðaôß @ ÜatÐaü¼a+4ßaªºSDßaü²a6L²a Ÿ? îa³ü¨`ÆÞÐ$½`³þ,³`‚ØÚÇø!EÁ™ôß òªº»ÐššÅe ÿ\¾e$ .Iÿ‹IJe\²ežª uä²e Íe$ 'Kü²e  Ñe% 'LØe´ü¼cœ ,Úc³þ,Ðcì}¢ŒÆ£Æ£ÁBežª \œ‡jdŒjÁ™$‡jtŒjü‡j'Œ›j ƨAœ›jü‡j8t¯j ɧC„¯j´Éj|Éj ¶,Ùj(üÉj4àj Ó_£ä£ä¤äTryFromIntErrorÁ¥äó ¬q£:{ aŽDàjîjµüÒiœüûis,ëi³þ,ái,ÿi8hÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw�¡GzerosÁˆ»Á™ñƒ Ð­ ­× Š†¡bœÕmdÚmÁ™$ÕmtÚmÔÕmìmõm¶ü¨mM$Æm³þ,¼m{3Á™˜ü�o% Ý% £o¬o·üÏn]Ý%Ý%¶þß%ש–à%Ÿ–›Î¸¦°ÐbÈŒån³þ,Ûn h,ë�œë�\ñ� ›$Ž3lñ�3Ìå�Ú Ÿƒ   Ñ‚$ExcludedÁ’ª "$tׂ\ׂžª  ã‚ $ ž‚%IncludedÁ’ª "%t¤‚\¤‚žª  °‚$ìׂ\æ‚æ¹ œ ò‚ tæ‚üׂ&4õ‚ªº YDõ‚,ʃ ŒÊƒLЃ œ$è¦ 1  \Ѓ1 ¼Äƒ $§… Å™ ë„& ꦒª &tö„\ö„žª  ‚…$ ûƒ' ħ’ª 't˜„\˜„žª  ¤„ $옄\§„æ¹B ³„t§„ü˜„&4¶„ªºYD¶„ü“„, Å™ Ì„¤ñ„ Å™ „…A¦ ì ]I¦ ö ] ¸è¦óŠ©¦ ë ] A¦ �!]óŠI¦ š!]óŠI¦ ½!]Q¦ Ê!]¹¦ ½!]ù¦ ö!!] ±šñ§ ÷$]ñ¿÷$]²� ü††*•(²Ý 2ù¦ Ú$<] Å™ë�  ù¦ š$}]ù¦ š$ ] Ê[!¦ »$]Q¦ Á$]Y¦ Í$]dKD‡‡!D�‡" $¿‡# Å™üņ‰ ä%!"# Ó‡Ô‡ü¯€¥“2¸ *üÖ�þü�‚%üÀ‚=üµƒŸüêƒcüÚ„+ù¦ �!©]ù¦ ë!¿](ä%ä%ùþæ%ש–ç%ªÿ–è%ºÿ–é%Êÿ–�nzðLiä��³þ,î€è¦,ý€DÚ�œþžþŸþħ þó¡þ¢þꦣþó¤þ¥þ UnboundedÁn¦»�€'�’ª  è¦/œ�‚N°ØÚ�ØÚD¹ƒô³¤é´¾œêƒ÷iØÚ³ækIóŠóŠíóŠ'óŠóŠóóŠæ³ßÕ´© !¦ ï!]@“ª jë� ª ØÚ»Ô þ’ª 3’ª <’ª Œ’ª • Òٜ֪ÿÛŸ ŸºÿI Ÿ&Ÿ…£¬ é·¬ à¦æITî…ħâ¦ûžª Ižª öæ¹Òªº˜›ªežª Ížª �æ¹]ªº#²� Û¦°Šè¦åè¦ì|„ħÖ帲óŠÇÓħü¾’3 í% î’÷’»ü÷‘€í%í%ñÿï%ש–ð%›€–ñ%—»–ÕaÆëMò׬ž’³þ,‡’ÞÐ,Ž’›€“(¸ ÆŸ – ²ÝÀ¸ ñŸ ²Ý³þ+îÝ@¸ �  —²Ý +  7 îÝ ¥¤é²·¢§puÓ¸ ËŸã%î ­àú Õ¥·á²Ý²Ýîݱþ²ÝåîÝí –õóŠý\œju±þîÝi –îÝ7¤é”(¹ ᥠ˜²ÝÀ¹ —¦ ²Ý³þ+îÝx¹ µ¦ ™²Ý + îݸ¹ ʦ  š²Ý ØÚ,  îݰ¹ ç¦  › ²Ý»Ô ,8îÝ Æß .4 &ðõ ¾ à ‹�g¹ æ¥ì%ƒ­à� ô²œ·á¥²Ý®²Ý�îݦ±þ¯²Ý|î݅󊎲Ý[îÝd‡Í m²Ý9îÝB íÛNíÛW0œ>I±þîÝ=óŠîÝ ‡Í îÝÙ½ÃîݦÆß| (º œ³ œ²ÝÀº ˳ ²Ý³þ+îÝXº é³ �²Ý ÞÐ, îÝXº ú³  \²Ý *  6  îÝÜá×± îóÞ㬱 y ~º ¡³ô%5­àB òºN·áW²Ý`²ÝOîÝX±þa²Ý.îÝ7‰ò@²Ý îÝ –óŠ'ÄœÒݱþîÝщòîÝŸ –îÝl×± (» œ¹ ž²Ýø» ̹Ÿ²Ýòº-îÝØ» ñ¹  ²Ý řǙș­É™Ê™àË™óG*¤�R{9 ÞÐÞÐv  ‚ îÝíò¤éÿðõ¼Á!» ¡¹û%= ­àJ õ%õ%Æ€÷%¶¶–ø%Ùœ–q´Æ í^™‘·áš²Ý£²Ý’îÝ›öƤ²ÝoîÝx  Áɇ˜Ì�òœ öÆîÝÿ–ÌîÝˤé*8¼ êËÚׂÎ*2(¼ ¼Ë ü%¼ ÁË€&/Š×; Š×FÚ×…®Ð�_i‚Ϊ(½ ÃË ¡ ²Ý8½ êËÚ×#îÝPUÀ¼bgRt½ ÈË‚&�­à›íÍ£·á«²Ý³îÝ¡ ®Ð¬®Ð´×œäîëÏîÝáÀ¼( ŸÙ ¤Ù‡&(-Ú×:®ÐBKU(Ä ¬Ù ¢²Ý`Ä ìÙ £²ÝãØ,8îÝej¹§w|glŽÄ ±ÙŠ&©­àµ®Ð½·áŲÝͲݻîÝà  ãØÑ€ÓÙüœ þÒîݹ§)`Å ìÙ  ÷ãØ8Å ³Ù ƒ&Å ºÙŒ&/Ú×;ãØgJãÓxÆ ¾ÙŽ&Æ ¼Ù ®Ð'1`Ç ìÙãØãØ+0 ù±ãØãØGLTÇ ÉÙ‘&HÇ ÀٮЮЀӖ€Óž8î EOâÕÈ2Á(È –ÛÈ ›Û˜&(-ãØ:€ÓBKU2ÁHÊ ÊÛ  ÷,8Ê £Û ’&Ê ªÛœ&/ãØ;£ØtJ�Ø…Ë ®Ûž&Ë ¬Û €Ó'12ÁHÌ ÊۣأØ+0 ù±£Ø£ØGLTÌ ¹Û¢&HÌ °Û€Ó€Ó £Ø™šÛ¡;î HR½ÚË2Á\ñèãØ£Ø4€é âšÛ¬ñè½ÚJ5!ŒéâüÁèK$âè®Ð,ØèšÛ”šÛ‚?½Úƒª  �é „éðþ⸚ۣØ#+(Ñ �û ¤ ²Ý€Ñ ¿û �²Ý®Ð,îÝ@Ñ Õû ¥²Ý +  7 îÝ¡¦¤é³¸£¨puÔÑ ”û©&ï ­àû £&£& ƒ¥&ã�–¦&˜–jÆcáÎh�­@·áI²ÝR²ÝAîÝJëÏS²ÝîÝ( –1óŠ:›œ©´ëÏîݨ –îÝu¤éÓ(Ò ­þ ¦²Ý€Ò âþ �²Ý®Ð,îÝ@Ò øþ ¥²Ý +  7 îÝ¡¦¤é³¸£¨puÔÒ ²þ°&ï ­àû ª&ª&წ&ã�–­&˜–79æa¯ÝA@·áI²ÝR²ÝAîÝJëÏS²ÝîÝ( –1óŠ:›œ©´ëÏîݨ –îÝu¤éÓ¨Ó ¿-ýÝà’)1°Ó È.€ªج)2øÓ Œ>‹½‰’*3(Ó °+ ±&Ó µ+Ó ´+A¶&P˜Û\Ÿ¢dýÝã“€ªíϬõ‹½Æ›ÍΟ©à’Xج)‰’ùýÝšDùm€ª”ùm<‚nÿª+L‚n‘n‰üÐmA$êmŸ¢,àmϬn4ÿªuDÆy€ªÔyŠü‘yC€ªŒªyŸ¢, y . tÊ�<Ï� Š$Ê�LÏ�xõÊ� Û´D#/Ú|Ê�m›†ŒÛ�Là� Œ$Û� ê�dà�«öØ�­¶Úü¶ Ñ�÷Û�  �%íõŽ$) 5  ”Û� mÅžü¿�/T¿�½º : '�øì�­¶Úü¶ µüº�5 Å™‹¢õ�  ‹ ü‡�n&-4 †Œ’æ ³¶l¢�Ÿ¢,˜�‹¢îéÉ/€ªf�›†þÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ü¶ÅžËíõFHÅžŸ«Æ $Úü¶Ž�Æ ˆÚü¶Žê D…ëJÛ´#™ìÄ­¶1Ší`½º­¶n1tØ–<Ý–…ë$Ø–LÝ–xùØ– Û´B#/Ú|Ø–m›†Œê˜Tï˜ ‘$ê˜ dúæ– �%íõü¶Úü¶#0Äüê˜\ü˜ ×  lü˜üê˜$   �™' ¤ž™\¤™ ï§,ž™ °™ t¤™¨ûž™  �%ØÚb  $) 5 ¬ž™ m¤µ™\»™àô,µ™ Ç™ t»™£ü²™ÆóÚü¶0ɨÿµ™ ¥õ†#/¬µ™müµ™$\Ë™æ¹2 ×™tË™› €É™ÆóÚü¶0Áøýµ™% ¥õ…$0üµ™%mü�™> üç˜ÀþÙ™ÆóÚü¶0¥Œù™Tþ™™ó$ù™dþ™üù™#,‹š ÔF‘š,–šŒ‹šø�ù™$  �%řǙș­É™Ê™àË™óG*¤�R{9 £´žjo{üù™$m£´ X¿‚œšÆóÚü¶0åTϘ DÛ˜ T½š#‹½Ô½š Þ"‹½#1"")Èš Õw¹¨"]TÌš!|Èšü½š#4Øš ÃX¹¨!€ DØšø…½š$  �%řǙș­É™Ê™àË™óG*¤�R{9 ¹¨ ”jo${$ !ü½š$%m¹¨øƒ½š% î%3"Î†àšÆóÚü¶0ôQ&]&#$ü½š%'m¯€Töš-‹½Äöšöü-+,%Â„ášÆóÚü¶0èP�›Ÿý,{D…›+&l�›üöš!4�›Úý+–*'D�›ø‰öš" ‹þ*A)($.)0.)*üöš"/)m¹¨ø‡öš# î/3(+ƒ"Š—›ÆóÚü¶0©Q0(]0,-üöš#1(m¯€\¶› ¼›®¸',¶›3.,¼›¶&ˆ˜›ÆóÚü¶0ÜLÈ› Ì›®¸1È›4/,Ì›ü¨›+ 2 Ú,34ü£›1 řŞ2Ú›0 Œ)üŽ–ÌüΖŒ   f üʘ�¨¯¶ ü  q lszÄ4;B�ü±š©“š¡ï!�üìšn18!?�#½Ä%Ë'5íõd·–Ÿ¢,Ÿ–,¦–éÉß €ª W ›†® øí£´—$ V ã“Ä ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ü¶ ØÚ_ y ã ÒˆšØÚ Òˆt ØÚí åM I”ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ü¶£´Øú`ã“•q£´²©ÃæÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ü¶¹¨è‘þ#řǙș­É™Ê™àË™óG*¤�R{9 �ÍÑ×ñÚ›Íú†¹¨Öû¯€]©Ã0Ž‹–‘þÉñ‹P×ñY›Íy:¹¨Š»¯€Åž{µü÷¾¾Ò–Æ X Úü¶Žº ߌ ôŒ Æ  Úü¶Ž† Æ h Úü¶ŽÜ Æ Ü Úü¶Ž3 Æ ¨ Úü¶Žô ‚,µš'Æ Úü¶Ži%Æ ’Úü¶Žÿ'’ðš 1Æ ¸!Úü¶Ž#/Æ H%Úü¶Ž©'1½"…ë{Û´V™ó÷Æódÿó àôE¥õàô­ Æó¥õK æ¹ø ÆóY ¥õ˜ ÆóŸ ™óú —úÕ Òú  Æó§ öü‡ ŸýŽ Úý5 ‹þ îi Æó öüØÆó~ ŸýæÚýo‹þLîöÆóZ®¸zÆó ®¸/\�©$’© Ž$�©4’©¬�©<™© „R·&·&Ö„¹&ɾôº&ƒ ôMöT Pƒb …L™©<È©tÈ©$Щ ÆQß?ß?FlattenÁá?ð†?#TzÛúé=«“d4ЩLÞ©  §²ÝüÈ© 4ש ÷WÅžš =Œ×©üÇ©"  ‘ýÅžD¿©[.4‡ª  ˆªŠü’ªp  ŸŠ²ÝUÿ ¤”²Ý ü‡ª|Žª Ô+ŠŸŠº–Ç–²Ý ¨ Œ üŽªuä�«  ¯«šü‚¨­üû¨´ü¬©ƒü󩼲ݲ݊¼Ù¨Ÿ¢,®¨²ÝD½¨¤”\ÿ¨«“ٲ݊ŞÈíõMÉ–h²ÝýŠ˜l÷©Š”ü–|É–…ƒý�†¸©‰ whole_matchÁ\°© group_matchesÁy  ÷’›¥“tž”›•�Í•_í–É<­ªÉ–t­ª$µªž”.4µªÌê ¨²Ýü­ª04¼ª›•Y7ü¼ª!D쪲Ý$ôªÍ•+õª$‚«Ÿøü¤ª^²Ý•ª ü– “ªÅž¨ªíõ²ÝèÉ–L²ÝU¸©<ƒ©É–ý�`²Ýþ÷[“ž”i›•/Í•ñ _ref__matchedÁ_ref__haystackÁ\ç¹$ì¹÷’$ç¹4칬ç¹<󹥓CLó¹<¢ºt¢º$ªºž”)4ªºL¸º  §²Ýü¢º 4±º›•Y 7Œ±ºü¡º"  ‘ýȚŞD™ºW04Ạ ⺊üìºp  ¥Š½–å‡UÿÉ–å‡ üáº|èº Ô+Š¥Š¿ Ë å‡ ¤ ˆ üèºuäç»  ‰¼ üÓ¸¶üÕ¹´ü†ºƒüͺ¼å‡å‡Š̱¹Ÿ¢,…¹å‡D”¹¤”\Ù¹«“T凈ŞÀíõ É–%²Ýõ‹¢lѺý˜‹ý sÉ–|~ý��¸©„ǘ\Šºà˜^ ÷’û¥“Öž”¤›•jПBî ®<‡»É–t‡»$�»ž”.4�»Ì�» ¨²Ýü‡»04–»›•Y7ü–»!DÆ»å‡$λП+Ï»$Ü»¥Ùüþº^å‡ïº ý þ íºÅž‚»íõ²ÝèÉ–-å‡6¸©<ݹÉ–ý�Eå‡þ÷[tž”i›•/ПñȜ؜ $ØÐ Å™›†|ÍЀªTòЋ½¬òÐ…½,#DýÐ íw¹¨UTýШ“òÐ  ‘PµpµpIterMutÁ¸pí óo¹pºŒóoºpüðóo¥hECØ8G¹¨¼uzø“æÐG– ¥ª ÆQ⨠¼ÄÉ Õ è$êÐ àÑ„$žÑ Å™¯€d–Ñ  ¬³Ñ§ü«ÐˆÒØ ÂÐÕÖL¸Ð€ªâ¨‹â¨ãž©ìÖÌ â¨¯ÄŠ¸ â¨ÄDф湨Ôo�óùÀ ¹…½b®¨iܨ!ü©(tŸâ€ª´â¨üßáU”âÕÖLòဪýá¾¾I\ãò‹½öü(0ôò©ü«òI×ñ´ÂòŸ¢,¸ò›Ío9öüŒ|‘ö‹½…½)1¦öªüÍõYž©ÔìõÕÖLÞõÖÌp9…½��Ü €…Ÿ¢øÜ ˜…7ƒŠƒŠÜ‹…Š�Ð<†ŠŠÐ< 0{?i—ê&ê&ñˆì&ÛËô'|±0Ú2y߇Œ †é°ž¦(Ü È„ ·&Ü Í„½&4«“@ «“KŸ¢" Ÿ¢.é° é°~ˆ †Ÿ¢gæ±J(Ý Ï„ ©²Ý�Ý €… z²ÝŸ¢+îÝøÝ ˜…7ª²Ý é°-  9 îÝ¢§¤é´¹¤©rwÕÝ Ô„À&ð ­àüIJ·á ²Ý²ÝîÝز²ÝäîÝì í²÷í²ÿ^œlwزîÝkñµîÝ9¤é–˜Þ ’Æ„K„KK‡Kí ä7ˆKÞüä7‰K«ä7ƒ¢3à6ú�ÍÞ�þch †à¶z‚(Þ åÅ Á&Þ êÅÅ&/ýÝ;ã“Cà¶Ò à¶Ý_iº·ú(ß ìÅ « ²Ý˜ß ’Æà¶#îÝPUÀ¼bgRtß ñÅÇ&�­à›ã“£·á«²Ý³îÝ¡ £¸¬£¸´×œäîÝáÀ¼˜à ’Æ  ÷à¶8à óÅ Á&à úÅÉ&/ýÝ;à¶gJðºxUt›íK J)I1<HDOGWbKj¹á ¾ ©á ¾  ŒC×�×�P+¹â ¾ ©â ¾  ŒCää’éÛõ Ïd�žä`fò¯×�‚÷ �þAa¹ã ¾ ©ã ¾  ŒCò®@&ü¬ížJ  Ê& ¾îtóîK  ÔóîL‚ï ‘Pµ“ AN\‚ïüóî&LŽï òQ�Pµ“VN\ŽïøŸóî&  ‘PƒŠƒŠÜ‹…Š�Ð<†ŠŠÐ< 0{?i—Ò¿•Nej øŸÔî„ ‡  –› ÆQŠÀ ­ ?¶»  Ç  ÚlÙî àƒ4èîI  àìÁðÁìÃðtÃð ˆ*lÒð L%Ÿ×ù +NüÃðY<òð Ç_›†ú‰¶ß ímüúð!“à  Lüòð*ø ÃðZ  �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw›†¶ß¿Ly~Š üÃðZm›†4ÂñI ”ÂñLÉñ ‘PðÁAL\Éñ¡œñ[ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÏï¶ßƒv �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwýݶßèÅßQLûôÂñLÕñ òQ�PðÁCL\Õñ ßñH \ôñ ”ôñ $€ò ÆQƒŠƒŠÜ‹…Š�Ð<†ŠŠÐ< 0{?i—ØÇnJ4€òm Äîñ  � àřǙș­É™Ê™àË™óG*¤�R{9 ŠÃÉ{   ‰ô Jü™ó* ü™ó% ð¿ó>'ü¬ò# ô¬ò ïËò>&ü¨ò( Àœýݶßü¡ò/ 6ü•ó/ ÀœýݶßüŽó6 6T—ô !ü—ô |¢ô á!,²ô J¤¢ô\úõ H  #X¢úõ   ‘P·È#@"J%* $"ø¢Ùõõ G &$V [±È&g%=pu '%� '  \Þõ (%à¿ÉTëõ G  )%à¿ÉÃÉäó÷ |ó÷ ë(\ƒø,!H%¢Íù $*Jü˜ø] . /( - ˵“ðÁˆÊЄ¶ßUÿ·ÍóŠ./üó÷ƒ <�ø Ç_×�Є¶ß˵“ðÁˆÊ¶ÏÄÏ,Û-¡+"Hü�øfø£ó÷„   �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw×�¶ß+Î*#Hz 0*‹ 0$% üó÷„ 2*m×�T‰ù 5T³ù G  6)ü‰ù5 ””ù âˆÊ5R§ù2,¬ù6W4&Hü”ù*¤öø 1*[èÅM#ÍÆ1/RHhø¥‰ù6   �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw¶ß4ô3'Hx} 73‰ 7() Ò GÛÁ ¦¾ù 83[èÅ×"ÍÆ8.SHñ ×ùH T I] Z Táù;ôáùŒìù å;+:,Nœìùø§áù ³Ó:C9-N %<91<./ ´Šú?…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅö¼�þüŠú&l¡ú ¤Cö¼�þ?x>0N|¡ú¨ÿù=9[èÅè"ÍÆ=.TNĺúA…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàŨ½�þüºú(lÓú ¤C¨½�þAx@1N|ÓúÄìúC·®üìú(l…û ¤Cò®�þC9B2N|…ûT´ûJ F¤«ûD«û é8ÍÞFBE3N'ü¡ûD Á&Eüžû# ÀœýݶßD ÆûJ <( G5C8 GAO $EJ£ EJAHJÚ8¢ I9F² I» É  :NÄ;PÒJÚç<Çû $JW J5  N ÉîAPüÎëùg )5=J7L[H7D« 9?¬ )=½ G=G¡L²HLI?I?KP JPM2BCKBO8ž494Ú:Ç4ü—í°�¤ü¹ðŸ P W ^ Ý ü¬ñ¬¶  ½  üç÷ç ÿ    ¨! (/ ü‰ù6ÅÌÓüáùLÓÆüøë!µ“tâëÍÞöàÖˆ¦Ø_·®ŠÀ ŠÀLÒ¿…µ“²ŠÀ.řǙș­É™Ê™àË™óG*¤�R{9 ìÁ| ŠÀˆµðÁ𛆽ðÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^èÅ›†;ÕÓÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw›†ú‰0•èÅž›†·È|°ñØÇéðÁřǙș­É™Ê™àË™óG*¤�R{9 ¿Éà ·Èá<ëò$™ò¶ß¤ ¶ßÛ   ÍÞ8 ·ÈØ ·È ·Èê ›åó éåü Ì z ÃÉe ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^èÅ×�— ÊÐý ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw×�Єð úϺ ·Íà óŠÌ ï èÅø ×�• ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^èÅ ¹Ó¨ £æå ÃÉÞ ƒ èÅŒ éèå ¹Ó £æ5 4 èÅ= x  àÖÚ Æ ¦Ø( � ·®³ýÝ"à¶WÍÞ„á &pattern_groupsÁÙÖ]Ò�Î pattern_indexÁgroupsÁò¾¾\Æ 4ޏ groups_iterÁ§ �Ú $ÊÚU ( maybe_nameÁM )groupÁ,ë÷ 2Æ  1Ž´ 2Æ 2 8ŽÚÆ Ö =ŽÚ5ð¼z¢½Oо_Ì¿6„À”Á ¿Â׊À²�äÏÃ\´Å~ÍÆjÒÇn±È›åÍÊ úÊã•ÌOêÌÿ±ÈÏÎ)·ÈèÏ ÄÐJ¯ÒfÍÆX³Óï ÍÆö ñÕ¿ ³Óš ¶× ÍÆ¨ üØQ ÆÙ �Ú¾ ·Èf›å°ŠÀ„ÍÞu ·È‚›åÌŠÀ ¦Øa àÖh ÃÉ¥·È~ ðÁÃÃɺ·È“ ðÁØÍÞÉ µ“Ð Òø·Í\×øóŠü²ø1ü²ø î_C(õøËT¶ß›øúÏlЄ ™ø›†±—·Í�󊘾¾„·ÍÊÚHóŠÆ£ñ¾è´_ref__group_indexÁ0Á 4–‘ ඤ–‘ Þ"à¶ 1"'¦Øü–‘(  Þ"¦ØV#¯‘ t¯‘D³‘å¿ ( T³‘b«‘ Õw¨½º Kœ«‘ø©–‘)  �%řǙș­É™Ê™àË™óG*¤�R{9  ¨½ûmr ~ ‘ü–‘) mÉõŒÉ‘Ñ‘ �ò¯×�‚÷ �þ <É‘$Õ‘ LÑ‘üª¾‘ �%ØÚü¶Úü¶# ,ÔÉ‘4Û‘ ÄX×�Ÿ DÛ‘üÉ‘0ä‘ þW×�Ï×�UÿkÚñ÷„è‘ ¬ä‘ÿ‘Îüº�Åüˆ‘wæìòaØÚlð�ã“,Ê�›†Ñ�²Ý$á�ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ü¶Éõ„„õ#  ¨½0 ¦Øw ÍÞƒ£¸£ ·Í:ÓÉõEřǙș­É™Ê™àË™óG*¤�R{9 ×�÷řǙș­É™Ê™àË™óG*¤�R{9 ¦ÏÅq¾¾u‚ xindicesÁ<Œ‘ Æ ÂÚü¶Ž?   ªó¼æóˆå¿VÇô–þô²öZùö²÷èä÷¾ ì‘dì‘Dî‘ î*Tî‘ø‘ÏÑë‘ñ÷è×� 鑦ÏyŸ¾ý‡4ü  ඤü ªó +!·®üü (  Þ"·®P#•¡ t•¡D™¡å¿ ( T™¡b‘¡ Õwò®´ Kœ‘¡ø«ü )  �%řǙș­É™Ê™àË™óG*¤�R{9  ò®ûmr ~ Úüü ) mý€ô¯¡ Þ"ò® l¯¡ %⬤¡ �%ºÅü¶Úü¶#d½¡ Õw­¯g\Á¡ „½¡ø­¯¡  �%řǙș­É™Ê™àË™óG*¤�R{9  ­¯ ns ü¯¡m΃ü¯¡*DÏ¡ ’Xò¯:Tϡܮ͡“‚Úü¶ß¡Ð ü” Ëüè wš¡¨ükqwκÅdÑ ã“,£ ›†ª \º ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ü¶ý€8¸€×  ò®ä­´"™ú+£¸KηÍè›ý€ñÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ü¶΃”‰ƒ8  ­¯EÑ΃+O¾¾SÊÚXÁÀlì  Æ jÚü¶ŽË Æ ?Úü¶Ž¤! ªódšÿ6å¿ûÿD²€µå�“‚ÃÉ‚ƒƒ€°„Û“‚޼­­ à¶ü­­6 ªó ,"·®ü­­[ šÿKù­ tù­Dý­å¿ ( Tý­\õ­ûÿ¦ Bœõ­ü­­Šš® þWý€�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫ­¯Òý€ý‹UÿÚ̌Ю욮Ӯ Ñ ­¯+ •ˆLÓ®$Ö® ìw­¯ [ 4Ö®ü­­°LÉ® ùWý‹5 T¤É®ü…­ã ê&î®Ñü²¬¼¨±Ìá¬ã“,Ǭ›†άý‹–řǙș­É™Ê™àË™óG*¤�R{9 ý‹ù¸€‰è†’­´Ñ™úÚ£¸ú‚·Íœý‹Y•ˆ Ÿ�©Æ¾¾Éúªó;šÿ å¿àûÿó‹šØ�º‰Ž’  ­¯(ÑhŸ�F¡�OWt¨®å�<¨®&$°®Ø�&4°®¶®Ò×ý‹§®ÌŒïý€<Ÿ®•ˆŠšûå�ªØ�°”Ù½\Þ½ÿó$Ù½lÞ½üɽ#|ɽ –*F"$‡¾ Å™›†$ ¾ Å™é°ü…½ª ó&µ¾Óüʼëó&ó&ɉõ&Ö]ôö&ò‰ô÷&þ‰ôø&ƒ ô”¨½ªox2¬å¼ã“,Û¼üŠ ?€ªõřǙș­É™Ê™àË™óG*¤�R{9 é°)sìÿó³ê“ŽÜîÉ$óÉ Ö$îÉøÉ\ýÉ´óÉüîÉ;ŠÊ þW£´ÕŠÚ £´UÿwÚÑ—ÔŽÊüŠÊ¯ÊÔü·ÇøØú´‘Èã“,ÍÇ›†ÜÇ\ôÇØÚè)¾¾,ÊÚ0k…—!Ä—êLžÊ ¦Ê& (M”–Ê ¨ÊÕ3£´•ÊÑ—K,�ʮƣ¶‚yœ¼ÑLÁÑ Ø$¼ÑËÑtÁÑü­Ñ"$åÑ Å™Ãׄ¬Ô »Ô&ÐÔ tÐÔDÔÔå¿ (TÔÔ4ÞÖà¶”ÞÖªó+”ÐÔ  áÔ&  (M ÄËÔ Å™ü©Ô”¨ àÖ,ðÖ ‘ýàÖ›† ÛñÖ  /,ÒÖ ×�,ˆ× „ˆ×DŽ×¾ý( TŽ×Œœ× «×& ( M¼›× °×& ( Müˆ×*  -üƒ×0 Å™·ìÖüØÐëüÍÖpØÚl’Ñã“,äЛ†ëÐ\ûÐ~ºD§·Í(Æ£Á×�û ö¼; àÖ™ú £¸,&¦Ï)œÆ£ Æ£¶Æ£bо¾ÓÊÚׂœ (”›¡å¿åªó®Ξù¾ý¦4ºÞඤºÞªó+#\ÁÞ èPlÁÞÔÞ×ü�ÞG,ªÞã“, Þ™ú‚£¸¡@ªó§”¥­4‹ëඬ‹ëªó+#L’ë éPœët’ë¦ëØüÐêV,ûêã“,áꛆèê™ú•£¸´'¾¾*YªóÈã¦Î|ÀùDÅù Ú$ÀùTÅùœÀù Òù!5 F FÙùÙü‘ùH,°ùã“,¦ùÈ¢=ž¨ë4†�à¶¼†�ªó+#t�� êP„��Iü†�"Dž�¾ýoTž�®�ÚüÜ€R,ö€ã“,쀦ϸ×�À™úÈ£¸ç,Pªóí˪ó¾ý¢”ýŠ\‚‹ÿó$ýŠl‚‹´ýŠ ’‹& (M™‹ÛüÊŠO,íŠã“,㊿ƣ�?ÿóä|�–D†–ž¨$�–T†–Ä –Œ¥–î»$ –œ¥–ü�–8t‘–Á¹pIü‘–(¿–ÜüΕq,ñ•ã“,畾™>ž¨âÁ¹–¬ÿ˜œÿ˜ ÙÍÞ 4£™ à¶”£™ªó + ! àÖÄ£™¶™ éCö¼�þV,¶™ü¾™ì¾™ Ùö¼ !ü£™:     - üÿ˜^   - 4ì™à¶¤ì™ªó+!¦ØÔì™�š éC¨½�þV,�š¬‰šœ‰š Ù¨½  üì™2  -üÿ˜Ÿ  .4­šà¶¤­šªó+ !·®Ô­šš éCò®�þV ,šäÊšÔÊš Ùò® ü­š9 -üÿ˜ç .4õš à¶œõšªó +!üÿ˜‰! !.!Ž›Ýü«˜ã",ɘã“,¿˜þ$JY—ø�£6™ú?£¸_èÆ£ËÆ£—¾�ú\™úe£¸…Æ£òÆ£¾äD­´‚™ú‹£¸«4ƣƣ䗙ú £¸ÀÆ£€C �°kªó6ޱ±Üªó,­³þà³Òªó"̵ôÿµÈªó(ä ‚¤ ¬²Ýøä ¯¤*­ ²ÝàÖ-îÝøä ߤ"® ²Ý ¦Ø- îÝøä ‡¥) ¯ ²Ý ·®-  îÝ˜ä ¶¥  ° ²Ý+7îÝ$Æß 28$*ò÷ ¾ à Š�kä ‡¤Ð&‡­à”™ú�·á¦²Ý¯²Ýžîݧ�£°²Ý{îÝ„�ú�²ÝXîÝa­´j²Ý5îÝ> –GóŠP.œ<G�£îÝ;�úîÝ­´îÝÓ –îÝŸÆßz øå ¯¤*  ÷àÖ øå ߤ"  ÷¦Ø!øå ‡¥) ¶Ã˜å ¶¥ ÝÃ8å ‰¤ Ê&å �¤å �¤%gÒ&vÍÞ‚àÖ¦Øü·®ÜÁ©âÀC‰Á#¶ÃÝÃç·®œ¦Ø¢àÖ¨=±¸] \)\1„¼¸àÖ,̸ ª#àÖ›†6͸;/ä·¸×�ô¸ tô¸Dø¸¾ý ) ;Tø¸”ô¸  …¹&  (;N üä¸#|ä¸ÏÎ x ;!ü�¹R 䊶ϷͦÏüä¸<ˆ¹ Ç_×�Є¶ßäÎÆ¶ÏÛÆ ©ˆ ;üˆ¹[ø¯ä¸€ ÄÐ l;!&2 Eü一m×�üݸ‡T‚ºTõ¹ !°ã¹[èŹ" �%¹ÓèÅ8<;Ý$ú¹\ àÎÆ$·ºl·º4¼º ¥ÎÆ0 3D¼ºü¦º„¦º ®ò¯²ÝU 3, ĺ] ”Öº¦Ø,èº ‘ý¦Ø›†6éº 80$ýº,üº Þ"ò¯+8#üÖº,dîº «ò¯×�‚÷ �þ¼Öº4ûº8¤îºJ,¿»!ÄË!" 8+ü »%Ì » ñº» T8+üœ»* Àœ¶ß ýÀ03$ì»$Tì»ÄË$%#8$ñ» ¦€#L"8,ñ»”„¼'¦Ø,–¼ ª#¦Ø›†'6—¼&8/,®¼)Œ£¼T£¼ †ò¯)/(8'ü„¼84œ¼ ¯ò¯×�‚÷ �þ&¼„¼(`,¶¼%8üœ¼ ”ʼ,·®,ܼ ª#·®›†,6ݼ+8/$ì¼] .Tç¼- Å™ò¯.üʼ($â¼ ‘M­¯�þ+¼Ê¼-H*8„â¼üò½(üò½& Ù­¯18#üë½02"1 2"18.02üç½43 ç½0' 3(08O/3ü½Y4/ 4/884üÑÀ"üÑÀ  Ù×�58#ü¼À765 65 886—] ®&;”’Á9·®,¤Á¨Ð9,¥Á8";%$¯Á: Å™ò¯ü’Á"$ªÁ Ñ8¼’Á:;7#;TªÁü×Á(ü×Á&ÞÑ;$;üÂÁ=<; <;%;8<ü&,¼Ã@„¼ÃDÂà ò@*?';TÂÃ1ê à ]>?$ÎÃCœÎÃLÓÃã¦C)ÝÃB(;tÓÃ9ê è ]AB‰ê ß ]= >AAê € ]D=óŠIê Š ]E=óŠIê ¯ ] GDQê ¼ ] HEÉê ® ] FGH F*),´ÄO„´ÄDºÄª×O(N+;TºÄùê é !] I ±šáê Í] K Å™ë� ùê �]] ùê � ]¦°I!ê ®]DQê ´]EYê À]KXJ;C1ë à ]MN”ÆÄS·®,ØÄ ‘ý·®›†S6ÙÄR,;0ìÆÄÞÄ éC­¯�þR¼ÆÄQ-;,ÞÄ9ë è ]PQ‰ë ß ]L MPAë € ]TLóŠIë Š ]ULóŠIë ¯ ] WTQë ¼ ] XUÉë ® ] VWX V/.4îÄ Àœ¶ßÚ ùÄ2ùë é !] Y ±šáë Í] [ Å™ë� ùë �]] ùë � ]¦°Y!ë ®]TQë ´]UYë À][XZ;C‰]’ 1;®^º^52úÄÚ;üþ³üø\26 àÎÆ2% 36 ]37G\4:YàÎÆ4s_€_94� 1â ¹ü­¸Í   # z ü�ºñü›ºãü⻜ùê ÿ Œ]ùê Þ Ÿ] ùë ÿ Œ]ùë Þ Ÿ] `¹ÓÔ’µ£æL¬´›†¿´×�,״řǙș­É™Ê™àË™óG*¤�R{9 ÎÆTò´ ×�¢ ö¼Z¢ê{õæÆ ÊÐ#Øçš2¦ÏMÆ£�ÇŸ·Í¨¦Ï±� èÅŠ ×�ã ¯ ÎÆ^ ò¯$Ÿº²Ý4  ÎÆQ G ÉõÀ �úà ²ÝŒ  ò¯© ¶ßì ²Ý' Èä0 滲Ý� Èä· ÐúØ  ¨½W ¶êx ò¯$ Èä> /  ò®¯ ÊêÐ ­¯k ò¯– »  1 Æ£ Æ£Ý Æ£‡ @ Æ£! YÃå§ÊêÈ­¯�IÆ£0øµ>óŠ«Ý¦Ï÷óŠrª™úÅóŠfóŠY&RH´© !ê â ] ·“ª ÝøµÜóŠŠ7¦ÏQóŠMý€�­´­óŠ óŠÍùï´© !ë â ] d“ª Š´¼ ÃËŸ¾¾£âë§Ìëf’Æ ~ŽÚ‚ P‚ õ¶™"£¬ Û D·¬ Ò E¦e I£¬  T·¬  U¦ÿ Y¶'¨ÄO¾ýúÏÎyþÆÄÐÅ„ÉÌñɳ¥ÊˆþÊ1ÄËòòËÏÄË}ýÌRò¯ÄËì‘ÎóÑΖšÏXÈÏ1¨ÐÔ  Ñg ÞÑ1 òÓ$ ÎÆM¨Ð  ÑA ÞÑ ª×� ã¦G ª×r ¦° �Û³×Ûƒ¦°RÎÆšÎÆ¡ÎÆ§ò¯¯ÎƵ¹·Í,ǹ¦Ï„ǹD͹¾ý-T͹ü¢¹6ü¢¹£ñyG&â¹äú¶ß“¹�ÇЄ ‘¹›†Ë›·Í5¦Ï>¾¾o·Íâëw¦Ïl¾ýå£ñÂè´ _ref__groupÁÀì ¤ß÷ß †÷ß08(ì õÞ Ó&ì úÞÖ&/¶ß;Ù–C÷߈ ÷ß“_iâï°(í üÞ ±²ÝÀí ¤ß ²Ý÷ß+7îÝdi¹§v{fk�í �ߨ&¨­à´Ù–¼·áIJÝ̲ݺîÝ ËðÍËðÕøœÚòîݹ§%(î êà+�î Žî ¶ˆ›†`î Ê˜â>CºÚ  O W�î �ê ”ˆ›† %ºÚ  1  9�î Èç ÷‡›† %ºÚ  1  9�î òãч›†pî óäч=BºÚ NV˜î žâ·¯ú‰ % †ú‰7?© Ù&î îà ¥Ú Ù&4 ü Ù& S  Ù& r ìò †˜â d Ù&¾ î ïàç&œ¢©°·¾÷ßÌËðÕÝ ú‰„ú‰�·ÍñóŠÜ›†í·ÍR›†[·Í¢›†«·Í ˜âþ›†%˜âj‡³‡³|À¼ k‡³Ô ‡³ ‡³ˆ À¼ wÐºÚ ©ºÚ TºÚ ºÚ æºö’ó‹Öó÷µ(ï ñà+�ï Žî¶ˆ›†`ï Ê˜ânv² ²ÝQY³²ÝfîÝY a´²Ýn"z!"îÝÝâ¤éïôÇÌ ³!¸�ï �ꔈ›†4=µ²Ý5=³²ÝJVîÝ…¹§“™‰Ž¬�ï Èç÷‡›†ÐÙ¶ ²Ý5=³²ÝJVîÝ!¹§/5‰ŽH�ï òã ч›†pï óä ч‰ ’· ²ÝR Z³²Ýg  îÝZbW²Ýn zîÝùÿ¤é   Ë Ð·¼0˜ï žâ·¯ú‰T]!²Ý4<U²ÝHTîÝ�£¹§±·‡ŒÊï öàé&æìóú#­àËð·á(0�ù²ÝB²ÝîÝ �ù*·ÍóвÝ{²Ý6îÝ?²Ý*îÝ3 –<·Íÿ²Ýº²ÝîÝó‚#·ÍȲÝç²ÝÚîÝãó‚ì·ÍÙòùIJݲÝôîÝý²ÝèîÝñ òùý Wœe‡³>‡³3 À¼ " ‡³é‡³’‡³ƒÀ¼ rË ·Íîݧ‚†îÝ“¤éêó‚îÝÞ¹§ûó‚îÝS¹§ ·ÍîÝÈ –îÝ´¤é'•„îÝû¹§8øú °‡+ý‹ †ý‹19(ú ö† ê&ú û†ï&1¨±= ¨±Hý‹Ž ý‹™dn¤ˆ¶(û ý† ¸²Ýøû °‡+²Ýý‹,8îÝej¹§w|glŽû ‚‡ò&©­àµÿˆ½·áŲÝͲݻîÝà ’‰Î’‰Öùœ¢‹îݹ§&(ü ÍŽ ¹²ÝÈü üŽ – ²Ýã“,îݘü ›� º²Ý üŠ, îÝðü ´�  » ²Ý €ª,  îÝøü Ø�? ª²Ýù•-9îÝ#Æß 17#)ò÷ ¿ Ä Œ‘jü ÒŽû&†­à“ ÷”Ÿ·á¨²Ý±²Ý îÝ©…Þ²²Ý~î݇ڇ�²Ý\îÝeϬn²Ý:îÝC  ù•RŽ�[6œDO…ÞîÝCÚ‡îÝϬîÝÝŒ�îݪÆß‚(ý �$ý •$�'&+¢ã8 ¢ãCLV 10Á)ü…º\Œ´ŒD˜ §€($T˜* \À ´ÀDÌ ¯€ ( $TÌü³$4³ É$º$ Q$05 ü­*  Ú † à\¬å¸ àý ,· ‘ýÑèH?$*üžD¢ ¨5žŒ«  $Ü¢\Þçê Ìý ,é ‘ýÌýÌý¾Îý‚É>�ÌIFëTul $WüÏ\¶´¶DÂð’% $TÂì¶Í­Ø< Ñ $4Íü¶;4Ô ƒX’ª œ¢ÆÈÆíØUÿ,Û Ú¸—tâ $ìÔq�  ¼²ÝŒ€ D„ 𔀠5$l„ \® éº  Ìý º ,¹ Ê•PG$!üŸ Ú\÷ ´÷ Dƒ!§’%$Tƒ!'É‘ ‡T] ¥´ Ú½)²ÝÚ$+\¹!"´¹!DÅ!ð’"%!$TÅ!ü¬!$d¬! ¦!? $!&# ü¦!*#¬"& ¼²ÝŒŸ"D£"ð”Ÿ"&5%$l£"<ä!$ àƒ'ƒ'㊅'ýŠ”†'’”†R�T±™ í\­#+\¹#-$hí¹#, Ìý-|¸#Ê•+Q,6*$!\Ñ"(ëÝ") Ìý Ý",Ü"Ê•(P)G'$!üÂ"'Úüž#)*\×#.$™'›'œ'ª�'ó”ž'Ÿ'³Œ 'ó”™]Ô(!"l€ŒÑ#.$ª$2$랪²ÝlÖ$4œÖ$5 2% Š#Å—²Ý4=533$< ý#/$ëž³Œ4ƒ$0tƒ$1 /( Š#¾— ˜â0E1;'$D·63<Ì$6 Ñ$73à4€%9t€%: 7(Š¡94:*8($3\Ñ%<ÌÄ%DÈ%ð”Ä%<,;!$¬È% ß%"%#à%,%<&üÓ� ^Ú™(ü�|ü˜!§Äß!üñ# üŸ$�üê$7=þ²Ý|æ¾—T�Å—Œ±˜¡ë›E ²Ý^ ØÚäå‡ ²Ý0 $æ§:²Ýt²Ý©Ñ褲ݲÝ6Ó•1;™Ú�凱²ÝÊŲÝç²Ýn²Ý´Ó•¯6²ÝOřǙș­É™Ê™àË™óG*¤�R{9 ®œõå‡%²Ý>lß!®œŽÂ²Ýä²Ý´²ÝúÓ•õ²Ý2²ÝyÓ•b|tñ#É ¾—·”¡±²ÝUØÚ1 Å—L£ F‹€a�¨y”¡s3²ÝL replacementÁdappendÁn¡†sdstÁzŸë  cap_refÁ<œ!$á¨Þ$ŸÅ/‚ ?2ŸH7h§’ ð’Õ ›“² ¼” ð”ë Ê•• ð’! ­Ø ¬—Ë ð”9 ʕק’�¥´ \ð’#ž›ð”«Ê•õÊ•™™ °Š¡IŠ¡Áð”€Å—Y¾—`Å—g¾—n äLç$ì$ðœ. 4渗I ’ª ãj˜tm &ü”1œ\›1´›1D§1 ´w*!T§1,\Ï1 ÌÂ14Â1›“$É1$  4!-2 ü¼1 Ú Š2 à\¹2ðÅ2 àý ,Ä2 ‘ýÈšÑèJA !,ü¢2(Œ¦2 ˆD�þ¢2 Œ¸2 !ü¦2$\ë2ò÷2 Ìý ,ö2 ‘ýÈšÓ•JA !,üÜ2\Ã3”Ã3Ï3­Ø% Ó3 !4Ï3üÃ304Ö3 ƒX’ª  ƒÇÅ—Ï—v,Ý3 ÚÁ±tä3 !ìÖ3h t‚4$†4 ‘M�þ‚4$‹4$  !T†4\­4ô¹4 Ìý ¹4,¸4¥°PG!!üž4Ú\ö4´ö4D‚5£­%!T‚5'É• ‡T] ¥´ Ú½)²ÝÚ!+\¸5Ì«5d«5ž›%!#ü¥5t“6$—6­²“6$œ6$ !!T—6<Ø5 ஜ\ž7&\ª7( høª7' Ìý(|©7¥°&Q'6%!!\Â6#öÎ6$ Ìý Î6,Í6¥°#P$G"!!ü³6"Úü�7)%\È7) 람Â7)$›8- 랪²ÝlÇ8/œÇ80 -%™ /10'.!0 î7* ëž³Œ4ô7+tô7, *( Š#DZ …C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅ�þ+ƒ,y$!‚é1.<½81 Â82.à4ñ84tñ85 2(¼¹445*3%!3\Ë97üµ9"Œ¹9ïµ97-6!ô¹9 Ù9" Ú9,"<#üà/ú �Û�(ü…2…ü—5™ÄÓ5üâ7 ü�8�üÛ878�1å‡|ò/DZTŽ0Å—Œ¿0ʹù0œ;å‡TØÚå‡$ê1¿P凌å‡ÁÑè¼å‡å‡DÓ•?›™Úáå‡ú<å‡Éå‡Ó• ‘凪i»¦2å‡KlÓ5®œÒå‡)å‡oÓ•j凧å‡îÓ•×ñtâ7— DZ…ƹ²ÝØÚó´¨ £  î�ÀƹÀå‡Ù ˆ¨å¡¨ê¡†ïĨôŸ†  á¨<›5 á¨ÿ Ÿy*‚ ç-Ÿ¾2Ý£­� ›“= �¯£ ïw ¥° ­ØÐµ±š­²(¥°³£­i¥´ 8ž›ÿ­²Á¥°;¥°ß™ C¼¹è¼¹"ïáÅ—¹DZÀÅ—ÇDZÎ æ3Lé3$î3$ò3 ÿ4è3Á± ’ª å3j˜t> (— Í;— Ò;‹'&+1®œ> ®œIR\(™ Ú; ¾ ²Ý`™ �< ¿²Ýëž+îÝP™ Ÿ< ß²Ý *  6 îÝž£¤é°µ¡¦otÑ™ ß;�'ë ­à÷ŠÅÿ·á²Ý²ÝîÝ  ëž²ÝâîÝê –òóŠúXœfqÚÇîÝf –îÝ4¤é�š ã;“'š á; ŠÅ#,6`› �<ëžëž*/ ù±ëžëžFKSZP› Ÿ<&7?GT› î;˜'H› å;ŠÅŠÅþÚÇÚÇ®µMî ZdÝÉH(œ Ž=œ “=¥'&+1ëž>ÚÇFOY(ž ›=$(ž à=³ŒG OÀ²Ý1 =  îÝ{€À¼� ’ lŸ8ž Ë=ª²ÝÀÈÁ²Ý1=îÝôùÀ¼ nž  =ª'5;B ­àPÚÇY·ábjá³Ï²Ý{îÝà…ÁèóŠi²Ý�îÝ{ –„¹œÇ‡³2‡³¸ì –îÝÏÀ¼…ÁîÝgÀ¼Ÿ ¤=­'Ÿ ¢= ÚÇ#,6 H  ¦=+: JÚÇ[ h y�Ž˜ŸÚǰ½ÌÚÇÝê(  à=ÚdzŒ-ÚÇ>³ŒVbpu ù±óŠóŠŒ‘™8  Ë=ÚÇ ª²Ý-ÚÇ> ª²ÝV  b  pu ù±á³á³ Œ ‘™  ¯=²'JPW^eqÚÇzÚǃ‹“šÚÇÚǨ°¸Àá³2á³;…ÁD…ÁMóŠôóŠý – –ÚÇÚÇÚÇ#ÚÇ,ÚÇ5ÚÇ>ÚÇGQî _”§n¬§{‡³ñ ѧþ ‡³©ѧ¶¸ÐÔÊîÕ3€£ Õ9%Ù¤¥• )1è£ µ;%ØÚ±É )1(£ š8% ³'£ Ÿ8%¹'2¢‰ >©³ FÙ¤ºœ¬ÂØÚ”‡Í œoy¥• ï±É ¿(¤ ¡8% ²݀¤ Õ9% òÝÙ¤+îÝè¤ µ;% Ä²Ý ØÚ+  7 îÝŸ¤¤é±¶¢§puÒ¤ ¦8%¼'ì ­àø©³ ·á ²Ý²ÝîÝ œ¬²ÝáîÝéõçñ‡Í ùWœepœ¬îÝeõçîÝ3¤é� ì©Z%„®Z% »òè$©Z%4¿Z%Ä®Z%5ü£Z#%WñZ%€Û†ƒµ[% ùƒŽ"`  (ƒ´[% Û† §fÛ†4 = ØZ%¯Öá£\%y Šà ‰ ‘Å [²  ÀÅ ‹g[ ò ÷ù§ ñ@`á§ ñ`�úù¨ Ž"`* ‘\%ü‚Y¡%·TÕZ%üíZ¥%u|ÖጲY%Á¶ L™Y%òè4¤Y%‡á/,ÕZ%Û†ã¹ë� ¥úßÓúßìÌäåŠàÛôà÷õäúß å˃£Ù¬ºdÇGÇS ÞÞî�à[¢áu�útÛ†J Ä¿y%\Äy% ½òè$¿y%4Ðy%œÄy%5ô¹y%V‚z%€Û†…Áz% ù…Ž"`  (…Àz%úß�à) 2 éy%¯³¶¯{%n Šà ~ †Æ V§  µº ‹gV ç ìõù« ñ@`á« ñ`�úù¬ Ž"`* �{%ü¥xŠ%¹Tæy%üþy %ip³¶lÐx%Á¶ L·x%òè4Âx%×… ",æy%ۆ׹ë� ¥¤ãÅúßÞÌä׊àÍ€çéõäòúßû}åË�£Ö¬ºVÇ9ÇE öäß�àM®çg�úrÛ†H,ÿ~%( (4�%\”%Ù¤œ�% 9 Š#òè¤Ú O1: †�% �áV# / Ú¤�% mÖá  Ô‡% ‡ % [´Ûž!Éã -¸ Ú% àö  à% þ%Tþ%4€€%²å&D€€%$Â% Å™ö D¿% ÀœÖáÛ† |¸%„ù% Å™œ�€%ØÚüù'%Æ‚ Q0 ")  â€%4å€%( ü¹€3%ü¾€#% Åòè$¹€%\R ü¾€.%øˆ¹€4% �áY  %1 ü¹€4%mÖáü³€:%‰ì€%[´Ûš"Éã.´ ®�%àö ü¯€•%üöÙ%$’�% Å™ö D��% ÀœÖáÛ†|ˆ�%TØ�% Ù¤ í�%"Tí�%4ï�%²å"(!Dï�%üØ� %Lã�% æ m!K¬ã�% �‚%%T�‚%4Ÿ‚%²å%($DŸ‚%„˜‚%# Å™$ü‚‚&%ØÚ# º‚%'<µ‚%& Å™ö '\²‚% ÀœÖáÛ†& ‚%((Â%ü§}œ%>M\l(7ú» hüû~È%àçî,dÕ%ÁÈÏ d©�%)‡áüö}%%Á¶ LË}%òèTÞ}%ö ]ýêÚ‡á$ òèS¤Ú 9œ¬V‡´Û�ÖáÐ$°%Öáö y¢‡Í èØÚñc–ì|‡Í åýê*‡áuö ±òè«Ð´ÛÙÖá$€�%Öá€ö Âúº¬T5–ìOØÚ²â–ìüÖáŒö ¤^ eåËj£ËÆ É Ž  £¦Æ ªŽñ £† ¥ÕëÜ�á¢Éã©²å¼Æ‚ “ð¸�á}Éㄲå,Ýó ²åÍòè.òè5òè< ,ü…%* *4І%\‘†%Ù¤œŠ†% <ÕëH(1 ŠІ%  �%×… T%* 6 Ú¤Š†% m³¶  Ô„†% ‹�†% [´Û¨"À�  . ׆% à‹¢ ݆% ö†%dö†%Dø†% ¢*Tø†%$¿†% Å™‹¢D¼†% Àœ³¶Û† |µ†%r  ‹‡%<‹‡%�‡%õý( ,�‡%l†‡% Å™œ—‡%ØÚü†‡$% Æ‚ S1 #*  ç‡%4ê‡%* üÇ.%ôȇ% Çòè$Ç%[Q üȇ)%øŒÇ/% ’ýX %1üÇ/%m³¶ü½‡5%�ñ‡%[´Ûš"À� .´ ³ˆ% à‹¢ü¹‡�% üó†á%$—ˆ% Å™‹¢D”ˆ% Àœ³¶Û†|�ˆ%T݈%"Ù¤ òˆ%$<òˆ%ôˆ%õý$(#,ôˆ%ì݈%Lèˆ%Ýó"h#F!”èˆ% Ÿ‰%'<Ÿ‰%¡‰%õý'(&,¡‰%lš‰%% Å™&ü„‰#%ØÚ% ¹‰%)<´‰%( Å™‹¢)\±‰% Àœ³¶Û†( Á‰%**‰%ü±„‘%?N]m*’÷½ iüø…Ê%3:A�dÒ†%ÀÇÎ d®ˆ%+×… üû„!%Á¶ LЄ%òèTã„%‹¢·ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^´Û³¶‹×… Ìã÷ú¤Ú Þœ¬ü,´Û5³¶w$­†%³¶±‹¢ë€ÿ‡Í JØÚSƒ€ÿ�‡Í F¹‰ ‹×… Õ‹¢òè 1´Û:³¶~$…ˆ%³¶à‹¢#Zº¬´•€ÿ¯ØÚG€ÿa³¶ñ‹¢ à ÆåËÊ£„Æ  ŽÄ £[Æ  ŽR £ç  Õë’’ýaÀ� h”ÿnõýãÆ‚ „ù� ’ýåÀ� ìõý“Ýópõý9òèšòè¡òè¨üÁ–'% Éòèî–%¿üü”ò%ÉɱËÌÛË«ÍåË«ÝzU¹¾ÿòèÌÈ•%¢‰ $¦•%òè4´•%åËŠü³£#% çòèÜ£%Áü’¢Ê%çç¶ÍêÛË«ëåË«VS§�´�òè¬Â¢%¢‰ $®¢%òè4´¢%åËŠüû¸*% …ò諹%Ãü¥·†%……¨ÏˆÛË«‰ɾ«ŠåË«åÂJÀaë˜òè´…¸%¢‰ $Ë·%˜Û$Ù·%òè4ñ·%"ɾ%åË(° TÂÂ%Ù¤T×Â% Ù¤”×Â%,âÂ%àÞ  .<âÂ%ü×Â!%\êÂ%æ¹B öÂ%têÂ%ü×Â*%4ùÂ%ªºZDùÂ%üÂÂ@%LÍÂ%ÝóÜHüÍÂ5%4ŒÃ% \“Ã% Ù¤œŒÃ%  <Õë H (1 ¤Ã%¥Ã%ü™¼Œ%Å ‡áü�½%%Á¶ L̼%ö  ß¼%òèTõ¼%º¬ÓBØÚ�¿œ¬ßã÷ ¤Ú  oåËg³àÞ æ¹ëªº°ÝóŒÕë?òèòè  ¤Ï%d¤Ï%D¦Ï%”ÿ( T¦Ï%*T»Ï%Ù¤TÐÏ% Ù¤”ÐÏ%,ÛÏ%àÞ  .  <ÛÏ%¨­ œÏ% ¥´ ÚDzÝÚ +üÐÏ!%\ãÏ%æ¹ t ïÏ%  tãÏ%üÐÏ*%4òÏ%ªº Z  DòÏ%ü»Ï@%LÆÏ%Ýó I üÆÏ5%4…Ð% \ŒÐ%Ù¤œ…Ð% <Õë H( 1 �Ð% žÐ% ü´Íê%Ç×… üŸÎ!%Á¶ LâÍ%‹¢ õÍ%òèT‡Î%5€ÿOµº¬ZØÚ¥ œ¬)ã÷"¤Ú œ¬$‡£‰åËŒØ ”ÿÌàÞ m¥´ J湪ºäÝóÀÕëròèAòèH¬ŽÙ% ½'òè©Ù%ÑüÒØW%½'½'¾'©ŽÁ'ó« Otäy_»T�òè´íØ%�� $äØ% f<ùÛ%¢‰ |ùÛ%,�Ü%��.<�Ü%ŽÜ%ÒüÃÛK%œ¬láÛ% �� DÔÛ%©³ {<���<˜Þ%¢‰ „±Þ%òèü˜Þ*%„ Þ% »ã÷N=ü Þ"%ü˜Þ6%LÃÞ% ÷_ö Û†Z\ÃÞ%ÔÞ%ØüÒÝ‚%řǙș­É™Ê™àË™óG*¤�R{9 ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwö Û†üèÝ%% �� LÚÝ%‡áAÁ¶ xã÷k'éø¡ q°¢ @¤÷ß% ȲÝüèß$%dêß% ×g èß%>üêß"%5$ à% ²ÝD¦à% ¢‰   îÝüèßG%,šà% ´dŸb P¬šà%DÃà%  |²ÝdÍà%  Üòèá³  îÝüèßr%,½à%—¦ š g Uì½à%üè߈%4èà% »dSDèà%öà%Üü™ßÝ%­àŒÌß%ÿ  , ß%·á §ß% ¨d¨d DebugStructÁ«dñ�d¬dÇ �d­d has_fieldsÁ�d»1âî¦9èÏ­¨ ’­¨ ¯¨ %²ÝH²ÝõîÝ穳 ð²Ý™îÝ‹á³”ØœÚ –¥ �©³ îÝA—¦  á³îÝÛ—¦ ¯Χ ‚\Îà% É ²Ý ܃á³:²ÝNJ(¯ Òæ% ʲÝȯ üæ%�� #îÝPUÀ¼bgRt¯ ׿%Å'�­à› ­Ÿ ¦·á®²Ý¶îݤ ÿ  ¯ÿ  ·Úœçñî¬ îÝäÀ¼LŒê%�� ¢‰ ŒŒê%,–ê%��3<–ê%£ê%àüÖéM%œ¬lôé%ˬ Dçé%©³ }9��~ 4ˆì%�� lˆì%$�ì% ÆQ�� 54�ì%pŽˆì%  �%ò¢ K$)5Útˆì%m·£ ¤‚ì%Œ�•ì% �%Öáü¶Úü¶# ¼Çì% €Û†‘‹í%  ù‘Ž"`  (‘Ší% úß�à* 3 ¨ì%¯ö <®ì% Å™ö ùí% Ž Šàž¦Åôà·ÅÊ¢á×Ü   åù² ñ@`á² ñ`�ú ù³ Ž"`  *š çí% üÐë©%æ ­´»„¥ì%üÃì¥%‚‰ÖáŒæë% ­Ÿ LØë%ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ü¶·£ íò¢ %–¤ Fv·£ ¿,¥ì%ö ìÛ†k[ë� H¤ãYúßsÌäkŠàaôà}õä†úß�ôÆ Úü¶ŽU£{¬ºþ Çß Ç뻉¯ ·¯ òð ù�à¢á�ú6Û†ŒÏö% Æ'òèæö%ïü—öO%Æ'Æ'Ç'úŽÊ'ó« Ýîâ� n]^ò蔲ö%Û� $©ö% f<¶ù%¢‰ |¶ù%,¾ù%��.<¾ù%Ëù%ðü€ùK%œ¬lžù% Û� D‘ù%©³ {<���<Åû%¢‰ „Ùû%òèüÅû%%\Íû% ½ã÷N=ìÍû%üÅû1%Lëû%ª§O\ëû%üû%öüƒûy%÷§ü™û!% Û� L‹û%×… �Á¶ Óã÷Å$MѺ ʪ§™„›ý% ˲ÝüŒý %dŽý%–¥  Œý%:ôŽý%0$Àý% ²ÝDÆý% ¢‰   îÝüŒýC%,ºý%—¦ ”\ J¬ºý%Dãý%  |²Ýdíý%  úòèá³  îÝüŒýn%,Ýý%—¦ ” g UìÝý%üŒý„%4ˆþ%Χ MDˆþ%–þ%úü½üÙ%­àŒðü%ع ,Äü%·á Ëü%­¨ £­¨ '­¨ ¬¯¨ µ²Ýز݊îÝ|©³ …²Ý4îÝ&á³/yœ{¬–¥ ©³ îÝÕ—¦ ´á³îÝu—¦ IΧ \îý% É ²Ý§¶ú#á³Ô²ÝNä(´ ܃% Ì ²Ý¨´ ‚„%Û� #îÝPUÀ¼bgRt´ áƒ%Î'�­à› †¸ ¦·á®²Ý¶îݤ ع ¯Ø¹ ·Úœçñ­Ã îÝäÀ¼LЇ%Û� ¢‰ ŒŠ‡%,”‡%��3<”‡%¡‡%þüÔ†M%œ¬lò†%ŠÃ Då†%©³ }9��~ 4öˆ%Û� löˆ%$ýˆ% ÆQÛ� 54ýˆ%p’öˆ% ¹·E#/Útöˆ%m¼¨¤ðˆ%†“ƒ‰%­¶Úü¶ ¬µ‰% €Û†•ô‰%  ù•Ž"`  (•ó‰% úß�à* 3 –‰%¯‹¢<œ‰% Å™‹¢âŠ% Ž Šàž¦Æ€ç·ÅÊ®ç×Ü   åù· ñ@`á· ñ`�ú ù¸ Ž"`  *š Њ% üˆ %„ £ª±ø„“‰%ü±‰ %‚‰³¶l؈% †¸ Lʈ%Œ½Œ÷§ÄË» 弨d,“‰%‹¢›Û† ë� ÷¤ãúß!ÌäŠà€ç+õä4úß=¢Æ ¥Úü¶Žù£)¬º¬ Ç� Ç™iÈÅ ¸¹·�­¶—�௮çÉ�úäÛ†±”ˆ”% Ï'òè ”%ŽüÏ“Q%Ï'Ï'Ð'Ç�Ó'ó« 5;!Î&Ì_òèœê“%¬’ $á“% f,Ž—% TÕ–%¢‰ dá–%˜Ûtï–%òèüÆ—d% ”òèú´ ã÷ÕÖüª—�%\º—% ½”òèú´ ÂÏ ª—% lüº—q%üª—š%L¹˜%ª§h\¹˜%ø–ª—›% ¹·C % 1 Úüª—›% m¼¨#. 4Õ˜% dϘ%  ¬—Ę%øÚü¶Ò Á™% ™% ›™% €Û†D¨™% Àœ˜ÛÛ†t£™% Å™޹ °™% $û˜%dû˜%,€™%ø§) <€™%„ø˜% Àœ˜ÛÛ†´ó˜% Å™޹  ˆ™% % &üú•È%V h€Û† ‚� “_ü¿–ƒ%ü�—¥%èïöaÔ—™%ɸü�–$% ¬’ L‚–%Á¶ ËÕÖ¾ã÷±¼¨4¡—%Œ½÷§9×… ‘îÏ Êw¼¨ä,ê˜%޹š˜ÛËŸ¢æÛ†e޹A˜ ­ÛË{ɾråËiÇ »Æ Úü¶Ž‡ ¬ºçËæÏ oª§'¹·ø ø§�Û†ADà—% ã÷$ð—% ÕÖ¬à—%  D Š#ò蜬ÕÖ _:B°˜à—% ªŠ _#/B$‹˜% ÕÖ  „‹˜%L�˜%ˆ­ ;\�˜%™õ—%[´Û±"À� .ʤˆ˜% Àœ³¶Û†ª˜% ”N…‹´à—% ×… Í—% îÏ „œ¬,Ç—%µ� W²×©ÅÙ ²Ý´Ûå³¶Ÿ¢Aã÷ÔÕÖÝÕÖæ–`dåË4÷–%ã÷ɾ$é–%ÕÖÆ UŽÐÚE»Ù XªŠ ˆ­°À� $ _ref__finderÁ¾®Œüš% ͲÝüíš!%dïš%–¥  íš%:üïš%1$¢›%  ²ÝD¨›% ¢‰   îÝüíšD%,œ›%—¦ • \ J¬œ›%4Å›%  z²ÝTÍ›%˜Û îÝüíšk%,¿›%—¦ ‰ \ JÌ¿›%Dì›% |²Ýdö›% ˜òèá³ îÝüíš–%,æ›%—¦ •hVìæ›%ü횬%4‘œ%Χ ND‘œ%Ÿœ%˜üžš�%­àŒÑš% ¬’ ,¥š%·á ¬š%­¨ §­¨ +­¨ ¥­¨ +¯¨ 4²ÝW²ÝîÝú©³ ²Ý²îݤŸ¢­²Ý\îÝNá³W�œŸÓ–¥ ¹©³ îÝn—¦ MŸ¢îÝ—¦ íá³îÝ®—¦ ‚Χ T\÷›% É ²Ýàï˜[á³ ²ÝN(¹ ‰¢% Î ²Ý°¹ °¢%¬’ #îÝPUÀ¼bgRt¹ Ž¢%×'�­à› ãÍ ¦·á®²Ý¶îݤ ¶â ¯¶â ·Úœçñåæ îÝäÀ¼ 4À¤%¬’ lÀ¤%$Ǥ% ÆQ¬’ 54Ǥ%pšÀ¤%  �%ɸK$)5ÚtÀ¤%m޹¤º¤%Œ›ͤ% �%™©ü¶Úü¶# ¼ÿ¤% €Û†�Â¥%  ù�Ž"`  (�Á¥% úß�à* 3 à¤%¯˜Û<æ¤% Å™˜Û°¦% Ž Šàž¦Ï ZÇÕÚ ‹gZ    ù¼ ñ@`á¼ ñ`�ú ù½ Ž"`  *Í ž¦% ü‰¤§%� àçî5„ݤ%üû¤¤%µ¼™©„Ÿ¤% ãÍ L‘¤%ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ü¶޹ ɸX›Ö y©޹ò,ݤ%˜ÛÛ†ž[ë� H¤ãŒúߦÌäžŠà”˜ë °õä¹úßÂôÆ 4Úü¶Žˆ£®¬º1 Ç Ç»Ûç M‰è %•é ,�à4Æë N�ú6Û†¼Ð|Ð Êéìòè4à*ìË  éìòèî¨ü—W¶ìT¶òè4¨…íƒöÒ8ß𠢬’˜Ä ËÉßð ½æ æÄ  éìòè çʨѶìÎòèÌ…íMòè6öÒé 4™…íd™  Îéìòè5, «¬üë@ éìŒ ¶ì$ö …íƒthisÁDîó �|¡L¡ ¬éìòè$«*¶±ü�5¬ô ”¹ô ,Š .‹õ z4»…íl»Â  g…í1 Æ4ÂεüüR­à\¥¹ô ,ƒ·á ŠÆô ‡œ M¥ö ›¬�.œ�. Ùéìü�.%t�. ­aéìC&4¸.üä-� ¾éìòèÚ„!„!…!È„o$z�é -ŸŸ Àì £ó‹¤ô‹ljô²ßk#éì�þû. ú.ü¥-ÖÊ…íTË-òè4½-ÿ`ÿ`V�a¬â`½68ŸœRt éìR±ú �òè9öÒWŠÍ÷ ªõ÷ ‹òè´œÉÐ Ø×Í÷ ïÏ ×Õõ÷ õ ¥.Øß\×. „!ïø û ¾éìòè ð.š™˜Ê¨…í–òè•„ú ·±ú æòèžÈø »öÒÄø\ú1$ÿ1 Ïéìòè$ú14ÿ10Tí1$ò1à¬ô $Ÿ2á: lÊ2òè|Ê2 ‡#òè2Ú(0tƒ3Dƒ3 ¬éì$Œ3&ìõ2lõ2 ùéìI$LÀ5 „ú ¬ì5œì5Í÷ “6 „¨6 “�ŒÊ6 “�üÀ5ª„Ê5 »aéì ˆ w _ VG üÊ5 4Š7 Dÿ6 ƒ7 €±ú Ë8”½8l½8 ÷éì, $ü¯8#$¯8 öïø ì´8 &Lä8üø6„ ,Ð:   )¨éì9K Zfz „¨éì³¥ø‚!´ ÂÎà ìö  !F ü¹1¨ Îü†2,ü¿2¢üç2úü³5®ü‘7ë¬ô Õ1Æô ,Ë1řǙș­É™Ê™àË™óG*¤�R{9 ¬ô r>¬ô 4éì$Ã2 òè±ú <ë2ïø ÝÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw±ú ±ú 4·5 „ú ð±ú ã±ú Ï“�”�•�Ï–�—�И�™�Gš�›�Fœ���Ü­Úݱä}LÂ5‰ˆ!*̱ú Âvïø c±ú ìô Jø‚!S[ckrø‚!{ƒŠ‘˜ êÒðêÒÀí ¶Ç \ oldÁ€³ëý ‡�ÿ ö»ÿ Æèÿ  Í÷ hý€!ˆ‚!•³‚!qLç<„ú Œö< “�üçCIT»³\»³dkr{î ˆ”§–¬§¢ª$Œ9T†9 @€€€€€€ €@€€€€€€€€ RÔÃ@ Ø'Ä�@ Ø'Ľ? Ø'´ÿ> Ø'´¿> Ø' ¤…> Ø' ¤É= Ø' ”“= Ø' ¼Ö< Ø' Œœ< Ø'¬ä; Ø'|®; Ø'|þ: Ø'lÒ: Ø'l¤: Ø'\ü9 Ø'\Ò9 Ø'L®9 Ø'î@ÝüØ8–ôí$÷8ôí$î8\Ÿ98¼» @€€€€€€ €@€€€€€€€€  » Ø'Ï» Ø'Ï» Ø'Ï» Ø'Ï» Ø' Ï» Ø' Ï» Ø' Ï» Ø' Ï» Ø' Ï» Ø'Ï» Ø'Ï» Ø'Ï» Ø'Ï» Ø'Ï» Ø'Ï» Ø'Ï» Ø'Ï» Ø'ϻݺôí·ôí¶µÈí\ÃD ÔDÞü²C¢ÐCôí$ÇC$ÃD7#)„Ž ÍDŠÞˆ„ôí‚ôí�ˆš½T×F @€€€€€€ €@€€€€€€€€ $™P Å™ôíÄíO Ø'ôèO Å™ôí …PÔ£O Ø'üžO  Å™ôí ½O´ÝN Ø'äØN Å™ôí óNÄ•N Ø'ô�N Å™ôí ­N¤ÑM Ø' ÔÌM Å™ôí åM´‹M Ø' ä†M Å™ôí ¡M”ÉL Ø' ÄÄL Å™ôí  ÛL¤…L Ø' Ô€L Å™ôí  ™L¼¾K Ø' ì¹K Å™ôí  ÕKŒýJ Ø'¼øJ Å™ôí  ŽK¬¸J Ø'ܳJ Å™ôí  ÍJ|ùI Ø'¬ôI Å™ôí ˆJl¼I Ø'œ·I Å™ôí ÉI|ýH Ø'¬øH Å™ôí ŒI\ÂH Ø'Œ½H Å™ôí ÍHl…H Ø'œ€H Å™ôí ’HLÌG Ø'|ÇG Å™ôí ÕG\‘G Ø'ŒŒG Å™ôí œG®Pßü›F“ řǙș­É™Ê™àË™óG*¤�R{9 ôídÀF$²Fôíµôí÷ôí9ôí|ôí¿ôíôíEôíˆôíËôíôíQôí”ôí×ôíôí]ôí ôíäôí'½ ¬± @€€€€€€ €@€€€€€€€€ ° Å™ôíɰ· Ø'¶ Å™ôí³¼»Â Ø'Á Å™ôí½ÆÅÌ Ø'Ë Å™ôíÈÑÐ× Ø'Ö Å™ôíÓÜÛâ Ø' á Å™ôíÞçæí Ø' ì Å™ôíéòñ ø Ø' ÷ Å™ôí ô ýü  Ø'  Å™ôí ÿ   Ø'   Å™ôí     Ø' Å™ôí   $ Ø'# Å™ôí   )(/ Ø'. Å™ôí+43: Ø'9 Å™ôí6?>E Ø'D Å™ôíAJIP Ø'O Å™ôíLUT[ Ø'Z Å™ôíW`_f Ø'e Å™ôíbkjq Ø'p Å™ôímvußt•Ö!,+ôíßôí"ôíeôí¨ôíëôí.ôíqôí´ôí÷ôí: ôí} ôíÀ ôí ôíF ôí‰ ôíÌ ôí ôíS ½ ØA$èSTâS @€€€€€€ €@€€€€€€€€ R,¸Y ¶%,‰Y À%,ØX ·%,«X Á%,üW  0,ÑW 0¦W >ÿV <4ÓV ©Ö4¤V ÃÖþU BÔU b°U RŽU rêT $ÊT ^¨T zŠT AÎYàüµS™$ÓSôí$ÊS\ûS6 @€€€€€€ €@€€€€€€€€ d¶%-À%.·%/Á%0  01!02">3#<4$©Ö5%ÃÖ6&B7'b8(R9 )r:!*$;"+^<#,z=$-A>%à$!ôí 2U(à Ô[à Ù[ž(&+¯ñ8 ¯ñCLVhÅ º` Õ· 8Å á[ š(Å è[¡(-¯ñ9]GÕ· nÆ ì[£(Æ ê[ Çñ!&0hÇ º`&Ç ÷[¦(HÇ î[Çñ!Çñ!ov5î BLœÈa š( Øaáaâü¤a=¯ñ<¶a¤c ¥c¤”c š(®cãüñb=¯ñ<‚c\„»et»e âì»e4Ìe ñ8$ÓedÌeÞeäü‰eU¯ñ<©eôí$še¯ñ„¢Ô8Ãö!£äö!ˆLêg´êgTôg ¦£,dôgüÚg'|Úg× @üÚg04‚h†¡<D‚h�håüºfÖ,Îf¯ñ$Åf¹¢�±Ì!D‹ø!Õ× ²†¡’Tƒiˆi å$ƒi,ˆi|ƒi ‘i˜iæüÛh=$ôh¯ñ$ëh}3ùù!šL¼jtÈj<Íj Þ$ÈjLÍjÔ¼j ü¼j ÚjájçüˆjY$­j¯ñ$˜jôí$žjm°£*¢Ô.Y²û!Îü¾lÄÃl é$¾lÔÃl+ü¾l> Üál¤æl ê$ál´æl‚mèüŽlt$¯lÇñ!,¥l¶2Žý!Óéý!}$än\òn Ø'ÔänDén ç;1¬én-üän6 $‚oL�o Ø'Ä‚oD‡o•ÿ!9/œ‡o oéü«nu$ÕnÇñ!,ËnÛ¯ñôí¯ñ™ôí’3T•ÿ!•ÿ!¡ $Ñqlßq Ø'äÑqDÖq•ÿ!9/¼Öq+$ýq\‹r Ø'ÔýqD‚r•ÿ!9/¬‚r+$§r |µr Ø'ô§rD¬r•ÿ! 9 /̬r+üÑq  $Õr lãr Ø'äÕrDÚr•ÿ! 9 /¼Úr÷rêüœqÛ $ÂqÇñ!,¸q—¯ñÄôí¾R¯ñôíy ¯ñ:ôí4¯ñÍôíÆfˆ•ÿ! •ÿ!²•ÿ![•ÿ!ã$‘ulŸu Ø'ä‘uD–u•ÿ!9/¼–u+ü‘u: $±u\¿u Ø'Ô±uD¶u•ÿ!9/¬¶uÑuëüÞts$‚uÇñ!,øtÙ¯ñôíÿ¯ñ˜ôí‘2S•ÿ!•ÿ! $çw|õw Ø'ôçwDìw•ÿ!9/Ììw+üçw> $‰xl—x Ø'ä‰xDŽx•ÿ!9/¼Žx«xìü²wy$ØwÇñ!,ÎwÙ¯ñôíÿ¯ñ˜ôí‘2S•ÿ!•ÿ! äžz¬£z î$žz¼£z*üžz: Ô¾zœÃz ï$¾z¬ÃzÞzíüñym$�z¯ñ$†zµ2ª‹"Ò…Œ"} Œº| Ø'ü¬| D±|•ÿ!$¬|2ܱ|. ¼ê| Ø' üÜ|&Dá|•ÿ!$Ü|2üá|!/ ´ } Ø' ü’}%D—}•ÿ!$’}2ü—} / ¤Õ} Ø' üÇ}#DÌ}•ÿ!$Ç} 2ôÌ}. Ôˆ~ Ø'üú})Dÿ}•ÿ!$ú} 2  üÿ}$/  ü¬|®  ÄÁ~ Ø'ü³~'D¸~•ÿ!$³~ 2 ü¸~"à~îü÷{é $�|¯ñ$”|ôí<Üôíú™ôí·Vôítôí2ôíÇc…•ÿ!�•ÿ!B•ÿ!ö•ÿ!ª•ÿ!_•ÿ!ò |¶€ Ø'ô¨€D­€•ÿ!$¨€5Ì­€1 ¬ä€ Ø'üÖ€$DÛ€•ÿ!$Ö€6üÛ€3 ¤˜� Ø' üŠ�#D��•ÿ!$Š�6ô��2 ”Ë� Ø' ü½�!DÂ�•ÿ!$½� 6äÂ�2 Äü� Ø'üî�'Dó�•ÿ!$î� 6  üó�"3  ü¨€¢  ´³‚ Ø'ü¥‚%Dª‚•ÿ!$¥‚ 6 üª‚ ЂïüõÛ $™€¯ñ$�€=ôí\÷ôí¯ôíÎhôí‡!ôí@ôíÏd‡•ÿ!¬•ÿ!]•ÿ! •ÿ!¼•ÿ!l•ÿ!ùÌ߃ §(þƒðü´ƒJµò\Ƀ¯ñ$Àƒ 1L«†t·†<¼†²û!$·†L¼†Ô«† ü›†, š(͆ñüæ…g¯ñ<‰†¯ñ$ô…ôí$ú…n´¦,¢Ô/_²û!Ñ$†ˆŒ†ˆ4‹ˆäö!)$’ˆd‹ˆÌþ‡žˆòüˇSó‡ ¯ñL݇ôí$臯ñ†¯ñ '¢Ô*\äö!¹LËŠtØŠ<ÝŠ²û!$ØŠLÝŠ|׊ÜËŠ ü»Š- š(îŠóü†Šh¯ñ<©Š¯ñ$”Šôí$šŠn˼3¢Ô6f²û!ç$¦ŒŒ¦Œ4«Œ ó+$²Œd«ŒÌžŒ¾Œôüë‹S“Œ–œ"Lý‹ôí$ˆŒ¯ñ…¯ñŸ'¢Ô*YšŸ"¸Lþ�T‹Ž\ŠŽ¼þ� üî�) š(�Žõü³�j¯ñ<Ü�¯ñ$Ã�¯ñ,É�nª‹¥3î 5e$Ø�¤Ø�DÝ� õ+,æ�|Ý�äÐ�ó�öü—�\Å�–œ"L«�¯ñ,¶�¯ñ…¯ñŸ'î )XÖ¢"·L–‘T¢‘´–‘ ü†‘( š(´‘÷üÎ�f¯ñ<ô�¯ñ$Û�¯ñ,á�n›�,î .^$ã’Œã’,è’ ÷+,î’dè’ÌÛ’û’øü¥’VÐ’–œ"L¶’¯ñ,Á’¯ñ…¯ñŸ'î )Xû¥"·L©”Tµ”´©” ü™”( š(Ç”ùüÝ“j¯ñ<‡”¯ñ$ñ,ô“n›�,î .^$þ•¬þ•Lƒ– ù+,�–„ƒ–ìö•š–úü¼•^ë•–œ"LÑ•¯ñ,Ü•¯ñ…¯ñŸ'î )X ©"·ž¬˜ àý ®˜,«˜�¯,¦˜M$¬¦˜D±˜ ²å‡T¦˜T±˜ô¦˜4¼˜ Ó_È«"ÑþÑþÒþTryFromSliceErrorÁÓþó–' —�gˆâ~×W§D¼˜ü“˜2”“˜ ³¤‘#„Ϙ š(å˜ûüÔ—‘üˆ˜]¯ñ<ö—å‡,å—$Œ˜È«"ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÈ«"‹¬"£å‡×Ñè厼‘É�¯ ¾«"æ�¬"ªø¬"; Lëš¼ëš\õš ­¤/lõš ›› 4—›% /J ’› DŒ›     ,   ŒŒ› ¶›  4²› % / J  ­› D§›, Œ§› Ñ› 4Í›% /J È› D›, ŒÂ› ì› 4è›% /J ã› DÝ› ,   ŒÝ›õ›üü­šÈüáš”!Öš¯ñ$¿š Èš,Śȫ"åš4ßîž Èš‹“š2XAñ†¸"Üä냩’B†¸"-5<Ôú㓆¸"~†� å @ UÓ¯"6`Ì ¢§¯ñ †¯ñ08(Ì ö¦ §(Ì û¦ª(/µò; µòF¯ñ‹Çñ!“_i¨º"°(Í ý¦ ã ²Ý`Í ¢§ �²Ý¯ñ,8îÝej¹§w|glŽÍ ‚§¬(©­àµ�»"½·áŲÝͲݻîÝà Çñ!ÎÇñ!Öùœ¡½"îݹ§&D¬¨¯ñœ¬¨Dµ¨ æ0Tµ¨+$Õ¨ Å™ôíÚl„ª¯ñô„ªt’ª ©£5„’ªüö©-lö© ¶M)üö©64¤ª Ó_�¡QD¤ªDѪ     Ѫ@ !ÌÁª|Áª ß u !ЩÁª  �%•Ö! D $) 5  HÔÁª môíDðª¯ñ¬ðª4ùªšŸ". $€« dùª°ªÚª �%•Ö!ü¶Úü¶#àüåª ¯ñT�« Å™ôí Ÿ« ‚üü§£ü쩳ü¶ªiŸ¥«•Ö!d’¨ µòL„¨¯ñ6ð©ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw�¡Þ5ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ü¶ôíc•Ö!”øÿÎôí=¯ñ¯ñ6&bitÁ¢Ô$ºª Æ Úü¶Ž™ ¼™¾"‡“¿"Á¿"ïð¿"ÆüÀ"@£Á"šŸ"§ÓÂ"-˜Î ﳢ㠆¢ã08(Πó ­(Πȳ°(/‚ó;ó´C¢ãˆ½‘�\fðÇ"­(Ï Ê³ ä ²Ý˜Ï ï³ å²Ý¢ã,8îÝej¹§w|glŽÏ ϳ²(©­àµó´½·áŲÝͲݻîÝà ½‘ν‘ÖùœæÊ"îݹ§&üÇÆ'tÌÆ ˆ$ÇÆ$ÛÆDáÆëÆüÌÆ"ôƇü÷Å}$¸Æó´,†Æôí$�Æå‡D™ÆªÆ,¢Ô/ý�2™´6yÊË"Ý$¦ÏT Ï @€€€€€€ €@€€€€€€€€ TüƒÛ+ĈÛ ž$ƒÛD¡Û«Û üˆÛ&ü„Ú-Ô‰Ú �$„ÚD¤Ú®Ú ü‰Ú(ü�Ù)´•Ù œ$�ÙD¬Ù¶Ùü•Ù$üžØ+Ä£Ø ›$žØD¼ØÆØü£Ø&ü¦×&œ«× š$¦×D¿×É× ü«×!ü°Ö(¬µÖ ™$°ÖDËÖÕÖüµÖ#üÒÕ$Œ×Õ ˜$ÒÕDéÕóÕü×ÕüˆÕ&œ�Õ —$ˆÕD¡Õ«Õü�Õ!ü£Ô)´¨Ô –$£ÔD¿ÔÉÔü¨Ô$ü½Ó"|ÂÓ •$½ÓDÒÓÜÓìÂÓüóÒ'¤øÒ ”$óÒD�Ó—ÓüøÒ"ü¬Ò l±Ò “$¬ÒD¿ÒÉÒܱÒôíÑ\òÑ ’$íÑDþшÒÌòÑü®Ñ l³Ñ ‘$®ÑDÁÑËÑܳÑäñÐLöÐ �$ñÐD€ÑŠÑ¼öÐô¶Ð\»Ð �$¶ÐDÇÐÑÐÌ»ÐÌþÏ4ƒÐ Ž$þÏDŠÐ”ФƒÐÜÈÏDÍÏ �$ÈÏDÖÏàÏ´ÍÏü½Ó+4àÓ Ó_ÏóSDàÓü£Ô24ÍÔ‚×"¾DÍÔü°Ö14ÙÖ‚×"©DÙÖü¦×/4Íׂ×" DÍ×ü„Ú64²Ú‚×" ÿD²ÚüƒÛ44¯Û‚×" jD¯ÛÕÛˆü›Îº  $‘Ïó´,ÁÎôí$ÐÎå‡DäÎýÎ\¹ÏÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÏóïØÙ"8ØÙ"ØÙ"JØÙ"ØÙ"\½¢ÔÀý�Ù´Ç �Î"¥ÏÎ"l�Ï"3ÏÏ"ú�Ð"ÁÏÐ"ˆ�Ñ"OÏÑ"�Ò"ÝÏÒ"¤ŽÓ"lÎÓ"3ŒÔ"ûËÔ"ĉÕ"ŒÇÕ"U…Ö"ÃÖ"ç‚×"°‚×"„‚×"`‚×"<‚×"‚×"ôü–ä*”›ä Š$–ä®äD³ä½äü›ä%Æä‰ü™ã­$‡äó´,µã¯ñÄãå‡DÚãóã,ã�/ý�2™´6zãÜ"Þb\Ûè Ø'ÌÎèDÒè•ÿ!Îè5¬Òè1ÜúèDÿèÃÖ"$úèDˆé’é´ÿè<,¯é ÚaLæé Ø'¼ÙéDÝé•ÿ!Ùé 5œÝé1 ̃ê4ˆê…Ö"$ƒêD�ê™ê ¤ˆê<  ,¶ê Úalíê Ø'ÜàêDäê•ÿ!àê 5  ¼äê1  ôŽë\“ëÇÕ"$ŽëDŸë©ë  Ì“ë< ,Æë Úa\ýë Ø'ÌðëDôë•ÿ!ðë5¬ôë1äœìL¡ì‰Õ"$œìD«ìµì¼¡ì<,Òì Úa|‰í Ø'ìüìD€í•ÿ!üì5Ì€í1ü¬í l±íËÔ"$¬íD¿íÉíܱí=,æí Úal�î Ø'Ü�îD”î•ÿ!�î5¼”î1ô¾î\ÃîŒÔ"$¾îDÏîÙîÌÃî<,öî Úa|­ï Ø'ì ïD¤ï•ÿ! ï5̤ï1# üÐï lÕïÎÓ"$ÐïDãïíï!ÜÕï="#,Šð Úa¬Áð Ø'ü´ð#D¸ð•ÿ!´ð6$ü¸ð3(%üêð'¤ïðŽÓ"$êðD„ñŽñ&üïð">'(,«ñ ÚaŒâñ Ø'üÕñDÙñ•ÿ!Õñ6)ÜÙñ2.*ü‡ò"|ŒòÏÒ"$‡òDœò¦ò +ìŒòü‡ò+4ªò‚×" U,Dªò*-.,Ìò Úa¼ƒó" Ø' üöò%Dúò•ÿ!öò"6!/üúò!3!40ü®ó)´³ó�Ò"$®óDÊóÔó$1ü³ó$ü®ó24Øó‚×"$V#2DØó*#34,úó Úa¤±ô& Ø' ü¤ô"D¨ô•ÿ!¤ô&6%5ô¨ô2%96üÙô&œÞôÏÑ"$ÙôDòôüô'7üÞô!>'89,™õ Úa”Ðõ) Ø' üÃõ DÇõ•ÿ!Ãõ)6(:äÇõ2(>;üöõ$Œûõ�Ñ"$öõD�ö—ö*<üûõ>*=>,´ö Úa´ëö, Ø' üÞö$Dâö•ÿ!Þö,6+?üâö 3+D@ü•÷(¬š÷ÏÐ"$•÷D°÷º÷.Aüš÷#ü•÷14¾÷‚×".V-BD¾÷*-CD,à÷ Úa¤—ø0 Ø' üŠø"DŽø•ÿ!Šø06/EôŽø2/JFü¿ø&œÄø�Ð"$¿øDØøâø2GüÄø!ü¿ø/4æø‚×"2V1HDæø*1IJ,ˆù ÚaÄ¿ù4 Ø'ü²ù&D¶ù•ÿ!²ù463Kü¶ù"33OLüëù+ÄðùÏÏ"$ëùD‰ú“ú5Müðù&>5NO,°ú Úa´çú7 Ø'üÚú$DÞú•ÿ!Úú766PüÞú 36TQü‘û)´–û�Ï"$‘ûD­û·û8Rü–û$>8ST,Ôû ÚaÔ‹ü: Ø'üþû(D‚ü•ÿ!þû:69Uü‚ü$39ZVü¹ü-Ô¾üÏÎ"$¹üDÙüãü<Wü¾ü(ü¹ü64çü‚×"<V;XDçü*;YZ,‰ý ÚaÄÀý> Ø'ü³ý&D·ý•ÿ!³ý>6=[ü·ý"3=`\üìý+Äñý�Î"$ìýDŠþ”þ@]üñý&üìý44˜þ‚×"@V?^D˜þ*?_`,ºþ Úa$áþ ëþa ŠüÇå¤A$Ãæó´,ñå¯ñ€æå‡D–æ¯æ`ôí.²ôíÑ€ôí#Ò V ôíu $ ¨ ôíÇ v ù ôí Ç K ôíj  œ ôí» h ê ôí z ØÙ"À  ôí8 §ØÙ"îFôíe•ôí´bäôírØÙ"¹ôí0 ØÙ"ç?ôí^ �ôí¬YÛôíúiØÙ"°ôí'–ØÙ"Ýã�ý�™´ R*•ÿ!zÃÖ"?•ÿ!Ã…Ö"ˆ•ÿ! ÇÕ"Ñ•ÿ!U‰Õ"•ÿ!žËÔ"c•ÿ!æ ŒÔ"« •ÿ!/ ÎÓ"ô •ÿ!w ŽÓ": •ÿ!¼ ÏÒ"€ ‚×"J •ÿ!à �Ò"£ ‚×"l •ÿ! ÏÑ"Æ •ÿ!H �Ñ" •ÿ!ŽÏÐ"Q‚×"•ÿ!°�Ð"t‚×"=•ÿ!ÓÏÏ"–•ÿ!�Ï"Û•ÿ!]ÏÎ" ‚×"é•ÿ!�Î"B‚×" <ó— ù—€˜�ü­—S$ä—ó´,½—å‡LÄ—Ö—! _haystackÁ,™´0ht䚤ޚøšŽü›š]$Ïšó´,©šå‡D°šÁšm(ý�+™´/g•ЦÜß�Dä�ÃÖ"$ß�Dí�÷�´ä�<üß�B 4‡ž Œž& (M„þ�   4|’ž ¢ãüþ�# ï§ž�ü—�� $Ð�ó´,ª�å‡D±�Â�ŽÍ1Æ£:åë¯Tý�W™´[”ÃÖ"ôÌŠ¡4�¡…Ö"$Š¡D–¡ ¡¤�¡<üŠ¡< d§¡ 4|·¡¢ãü§¡’Ì¡�üÄ ˆ $û ó´,Õ å‡DÜ í 1ÍÔÚžCý�F™´Jƒ…Ö"†Ü·¤D¼¤ÃÖ"$·¤DŤϤ´¼¤<4ë¤ ð¤& (M„⤠     4Ìâ¤,ö¤ ü·¤² 4•¥ š¥& (M „Œ¥   4  ÌŒ¥  , ¥   tÀ¥¤º¥ ü‹¥^ ü¹¥/ dÒ¥  4¬Ò¥,⥠ƒï¥‘üí£‚$¨¤ó´,‚¤å‡D‰¤š¤3OšÿÆ£³ºŽÙ>Æ£Gòù€—+3:¬ý�¯™´³ìÃÖ"ñ•ŠïÌÖ¨4Û¨…Ö"$Ö¨Dâ¨ì¨¤Û¨<dÿ¨ 4¬ÿ¨,�© üÖ¨Ÿ  d¥©      4 ¬¥©  ,µ©  <Ï©  Õ©&  ü¤©Q  üΩ&  4ã© è©& ( M„Ú©  4ÌÚ©,î© à û©’üލí$Ǩó´,¡¨å‡D¨¨¹¨ÙR�¥¬Ý(07ÍfÆ£o!“ý�–™´šÓ…Ö"~ 4ø¬ ý¬&4ž­ £­& (üø¬. n„•­      4ü‚­$”‚­ ç_"tÒ­ œÍ­   d÷­  üÍ­7   Uüä­ ”ä­‡Ÿ#~   \Ž®T�® ÌŽ®­®“üœ¬‘üæ¬Çü°­}$׬ó´,±¬å‡D¸¬ɬ\ê¬vËQÆ£ZäëT´­€—mu|øï”ý�—™´› word_beforeÁª word_afterÁ‡ ‡Ÿ#G•Š'‡Ÿ#–ü¦± l«±ÎÓ"$¦±D¹±ñÜ«±ü¥±!̱”üÔ°x$–±ó´,ð°å‡D÷°ˆ±–'ý�*™´.fÎÓ"Ï üê¶Œê¶ ªDü¶†·-ø­ê¶   �%ØÙ"Q%*6Úüê¶ mü¥·Œ¥· ©D··Á· - ®‰· �%ØÙ"ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÏïÏóÚ¢§#v #ø¯¥·  ù¥# Ö$ 0  ü¥·  mÌÒ·  ìÏ· ÀœÏó ò· ˜°Ä·˜§#Ú¢§# ¾:• ü˵§üضšov}×ü”·^rx~à ØÙ"ü§¶&ó´,ëµå‡Dúµ“¶ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^¢§#ÔØÙ"@šêª#ÊØÙ"’>¡� ¹ý�¼™´Àˆ¢#\ܶÆ ±Ú¢§#Žž¢#T˜· Æ ½Ú¢§#Ž- £Æ¥#áù¥#´æ¦#O˜§#Âù¥#ž˜§#¥4óÍ øÍ& ±«Î àý4ªÎ�¯D¢Î;$üóÍÈ  ü�Î"Œ�Î î|¡Î%* ü‰Î( ÚV àÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw‡ üŒÏŒŒÏÆ¥#DžÏ¨Ï  +LâÎ ÀœÏó,å΄ÛÎø³ŒÏ  ù¥# ~  $  0  üŒÏ  m r´«Ï˜§#Ú¢§#˜tÛÏœÖÏ µ–Ð Ìý4•Ð¥°D�Ð;$üÖÏÐ ìÿÏdÿÏ í|ŒÐ$)üùÏ#Jàͯ#,ü÷ÐŒ÷Ðæ¦#D‰Ñ“Ñ+LÍÐ ÀœÏó,ÐЄÆÐø·÷Ð  ù¥#~$0ü÷Ð m fr¸–ј§#Ú¢§#˜\³ÑTÂÑ̳Ñì°Ñ ÀœÏóÓÑ – ü÷»ÜüáÍò½ÄËüÅÏŽÎÔÚ ØÙ"üÚ¼&ó´,ž¼å‡D­¼Ƽ\å͆řǙș­É™Ê™àË™óG*¤�R{9 ͯ#3凉Ñè±4ÐÎ$ÄÎêª#+ØÙ"›ÅTÉϧ¾и#)å‡Ó•§4»Ð$¯Ðêª#}ØÙ"íTáþ Cý�G™´Lˆ¢#RÆ ŒÚ¢§#ŽÖž¢#ÚÆ ¢Ú¢§#Žì - �¯Û÷®#•Æ¥#Ìù¥#l˜§#s•ŠÝ¥°“è³#Mæ¦#àù¥#€˜§#‡ 4ÛÔ àÔ&4�Õ †Õ& (üÛÔ. n„øÔ      4üåÔ$”åÔ‡Ÿ#] tµÕ œ°Õ   dÚÕ  ü°Õ7   UüÇÕ ”ÇÕ‡Ÿ#~   \òÕ T�Ö ÔñÕ    ‘Ö—üùÓ˜üÉÔÈü“Õ~$ºÔó´,”Ôå‡D›Ô¬Ô\ÍÔ�òxÆ£� T—Õ©À–ž¥!�ý�’™´–ˆ¢#›ž¢#o ü‡Ÿ#U•Š7‡Ÿ#¦ 4•Ù šÙ&4»Ù ÀÙ& (ü•Ù. n„²Ù      4üŸÙ$”ŸÙ‡Ÿ#] tïÙ œêÙ   d”Ú  üêÙ7   Uü�Ú ”�Ú‡Ÿ#~   \«Ú T»Ú \ºÚÔ«Ú    ËÚ˜üµØ–üƒÙÈüÍÙ~$ôØó´,ÎØå‡DÕØæØ\‡Ù¬‡Æ£�!TÑٸϥ­´0–ý�™™´�ˆ¢#¢ž¢#v ‡Ÿ#l•ŠN‡Ÿ#½üôߌô߯¥#D†à�à+ø¹ôß  ù¥#I$0Úüôß mü¯àŒ¯àæ¦#DÁàËà +˜º“à˜§#Ú¢§# ¾ø»¯à  ù¥# v$ 0  ü¯à  m\Ýà o¼Îà˜§#Ú¢§# •ÔÜà   Tìà 1 ôÙà ÀœÏó ýà  ™ üÏÞ®üâß›LSZ²üžà_ÖÜâ ØÙ"ü±ß&ó´,õÞå‡D„ß�ßêª#[ØÙ"–Ï'êª#·ØÙ"TŽ< jý�m™´qˆ¢#\æßÆ @Ú¢§#Ž¥ž¢#T¢à Æ ÓÚ¢§#Ž UÆ¥#fù¥#;æ¦#ܘ§#Iù¥#‹˜§#’ü¢æŒ¢æÆ¥#D´æ¾æ+ø½¢æ  ù¥#I$0Úü¢æ müÝæŒÝææ¦#Dïæùæ +˜¾Á昧#Ú¢§# ¾ø¿Ýæ  ù¥# v$ 0  üÝæ  m\Šç oÀü昧#Ú¢§# •\™ç  ÔŠç     ô‡ç ÀœÏó «ç  š üÿä¬ü�æ›LSZ²üÌæ_ÖÜâ ØÙ"üßå&ó´,£åå‡D²åËåêª#[ØÙ"–Ï'êª#·ØÙ"TŽ+ jý�m™´qˆ¢#\”æÆ @Ú¢§#Ž¥ž¢#TÐæ Æ ÓÚ¢§#Ž UÆ¥#fù¥#;æ¦#ܘ§#Iù¥#‹˜§#’4Ûê àê&4�ë †ë& (üÛê. n„øê      4üåê$”åꇟ#] \”ë d“ë ¥ë›üÕéÐüÉê\ $ºêó´,þéå‡D�ê¦ê\ÍêšïtÆ£}«^ý�a™´eˆ¢#j´‡Ÿ#tÂîdçî   ü½î7 UüÔî ”Ô#~ Tÿî \þî �ïœüÍíÂü îo $‘îó´,ëíå‡DòíƒîT¤î+B '£Vý�Y™´]ž¢#b¬•Š¥‡Ÿ#4Ôö Ùö& ÁŒ÷ àý4‹÷�¯Dƒ÷;$üÔöÈ  üðö"Œðö÷®#|‚÷#( üêö( ÚT àͯ#7 üí÷Œí÷Æ¥#Dÿ÷‰ø  +LÃ÷ ÀœÏó,Æ÷„¼÷øÃí÷  ù¥# ~  $  0  üí÷  mp rÄŒø˜§#Ú¢§#˜\ªød©ø„¦ø ÀœÏó¼ø �ü—ó¥üÂöú•›¡ÝØÙ"üþó&ó´,Âóå‡DÑóêó\Æöäи#L凢ÑèÊ4±÷$¥÷êª#–ØÙ"0m �ý�’™´–ˆ¢#›Æ „Ú¢§#ŽÎ!�¯U÷®#Æ¥#˜ù¥#8˜§#?tþÿœùÿ Ź€ Ìý4¸€¥°D°€ ;$üùÿÐ  좀d¢€è³#|¯€"' üœ€# ÚS àͯ#7 üš�Œš�æ¦#D¬�¶�  +Lð€ ÀœÏó,ó€„é€øÇš�  ù¥# ~  $ 0 üš�  mo rȹ�˜§#Ú¢§#˜T×�\Ö�|Ó� ÀœÏóè� žüÂü¦üèÿ€•›¡ÝØÙ"ü§ý&ó´,ëüå‡Dúü“ýTìÿÑèи#S凩ӕÑ4Þ€$Ò€êª#žØÙ"8u'—ý�š™´žž¢#£Æ ŒÚ¢§#ŽÖ)•Š­¥°cè³#æ¦#§ù¥#G˜§#NÒ Ë†·((Ò Æ†Ïó‚³",º² Ò ù†(Ó Í† æ²ÝÓ ù†"îÝOTÀ¼afQsÓ Ò†¹(Ž­àš‚³¢·áª²Ý²îÝ ‹´ ¨�´ °Óœàê‹´ îÝÝÀ¼ý Ë�ß Ìý4Œß¥°D„ß;$ìöÞdöÞè³#|ƒß"'üðÞ#JQàͯ#5Ôß àͯ#¯¬ÜߌÜß « îß$,¹ß üíÞ� ÀœÏóƒà©üíÝ–üÌß% ØÙ"üµÞ-å‡DˆÞ¡ÞüðÞŒи#b凖ӕ¾4®ß$¢ßý�Y™´]chÁ? ¦¥°öè³#Ò³ô#; Íçá àý4æá�¯DÞá;$üËá"ŒËá÷®#|Ýá#(üÅá(KRàͯ#5®â àͯ#¯¬¶âŒ¶â³ô# Èâ",“â üÂá• ÀœÏóÝâªüÂà›ü¦â% ØÙ"üŠá-å‡DÝàöàüÅá‘и#a凕Ñè½4ˆâ$üáý�Y™´]¹õ#< ¥�¯ô÷®#гô#8üÍã'üÍã# ¾ñã&ü‰ä˜ çx²ÝüÍãß4õã Ò_���UnicodeWordErrorÁ‘óŠ  yÌ¥]¿Í®ú¦€üõã·²å«üœã–$¾ã±ãÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwúû#E²Ý#¹õ#q“«û#nòû#.Ä£@„£@ ‡éìòè4´@*üŒ@0´Œ@ ¬�öN%ü‡@6 ­éìòèÃ@µüÙ?jªôTò?òè4ä?ŸŸ Àì £ó‹¤ô‹ljô²ßk#�ö�þÂ�öûöÒ`ƒ«þ#Ýþ#ðü•HCÔ•H ˆéìòèD½H4ÇH2üþG[´þGÝþ#PüùGa ­éìòèàH¶ü°G°ªôTäGDÅGòè4ÖGÈÿ#ƒ�öÄïŒ'öÒ+XÚ€$ñÝþ#¾ üýN! ´‡O¬ˆOè   ¡�Ñ¤óž ø¥c õ8TzØÚØÚBÿ‡LýN ¬ØÚƃ$|®³DòN øNà4‚P ôëOœëO ¶éìòè ÿOJ 04ÇO Œ½OL½O µéìòèC )ðPü†Lê ïP0Ì~·SüîN¥ ªôT¿Lòè4±LòèÛS‡Í /�ƒ$<óNòè^¢öÒG¤–Ðàƒ$|ê„$tÂ…$#òèâü“N$ü“N" ­ü“N5¸N º_ù ù ú ¬ü óÕ  >¨WTÑp™Y�7�7ßôž7½ Ù6wQ?mˆ!؆»¢ˆ$Uÿ»Ú‰‰$\¼N„¸Nü“N:ÉN ¶_׈$×$ÉNßNºüúMeØÚüM ºØÚUÿ/ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw׈$‚ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw¢ˆ$׈$íú‡$œˆ$÷Ô‰$F<ÀNÂN ¼  ÀN,ÂNÇN»¥¿N‰‰$»¢ˆ$ ½N¤ Ú§Œ$~4ÑXÈÿ# ÀÀÈÜ¿ µÃüðµ´]8"»Oÿ�ö®®«°¿ ”3¯f*²Û��ö �ö™ø‚!¨ ¶¿¨�öÏá  ð  ü ¨�ö¼ÇX ÄéìòèäX^ ø‚!n  }  Š� ªµÄ  ÓdÑXØX Œéìòè,ØX¿ü”XPÄÄÅ­àÉó¬ Œ¿‚ÄÆk"`éìò蜩X ªô,ŸX˜˜­àœÊÞß��ßžÑæßSi`H™Äªéìòèå �öÓÈÿ#mµŽ$uø‚!ìôü ø‚!#*1Ì+“‘$m4„Z é²Ý¬öY\øY åg öY9œøY/<’ZÈÿ#îÝüöY$,ŒZ ËdHtŒZüöY-4›Z ÒdND›Z©ZÃü«Y~ ­àŒÚYŠ’$,²Y·á ¹Y ¾d¾d DebugTupleÁÁdñ�dÂdÇ �dÃdä�dÄd empty_nameÁ�d“(5&àç:“–$r•–${²Ý�îÝQ Èÿ#]·œºç¥”$Ä©—$îÝ’‰•$r»•$G4Ü_˜˜­àœÊÞß��ßžÑæßSi`H™Äª¥õ«õìÆ_¬Æ_ ¥¥õ«õ†*ê_Îü–_T»_ÄÄÅ­àÉó¬ Œ¿‚ÄÆk"`¥õ«õ$¡_œ�˜$Õó xò˜$Ä4�a�˜$t�a,ˆa £¥õ«õ7<ˆa•aÔüá`4 ¥õô` ¹™$,ê` �˜$…?Öš$Œ4¥b�˜$”¥bL¬b ¤¥õ«õ8\¬b½bÙüùaD ¥õ4”b ¹™$L†b �˜$†?„œ$Œ\€d ê ²ÝÔòc\ôc¥”$ òc5Äôc+<“d�˜$îÝüòc),�d‰•$uBt�düòc24œd»•$BDœdªdÞü§cƒ ­àŒÖc£›$,®c·á µc“–$’“–$ù•–$²Ý#îÝÛ°›$ãGœJx¥”$E°›$î݉•$÷»•$Ñ8ÁùÙ ·™e éÙ ·e ¾ùÙ Õúe¼(řǙș­É™Ê™àË™óG*¤�R{9  ØÚ BÿÙ $nžùØ Çg�aº(®®§°ð¨³¤²šè;áØ Ùga[ܼ(Ù $Ù $_Á<æ� ë ÿ`ÿ`V�a¬â`½68ŸœRtŒû� “�üæ�'Lî� ¥ } ø�Nüî�L¹” Á”&ùÝ Ž"`ùÐŽ"`²� üÜ”-ì+²Ý3ùÜ ñ@`áÜ ñ`�úV#Ù ˜e»(ùÙ ÔDeüÛ�Ù,Å�Ü¢$€‰ˆ!>æ{ë� ½¥ $ß�Z¸£$[²� ã�ú¯ùÙ ðe éÙ ðe é18ùÙ ¦®e  ½(Þ $­¡$Uÿ1Ù $ Ù ¿eùÙ íÔeùÙ ‚!­e  ¿(þ¦$%Ù $ Ù ›!eS Ù À$eùÙ Ûôe¼(Ù $"'½(þ¦$õ¿(þ¦$ªX_Á¹Ù ¿#eÀ(ùÙ ¿#ZeYÙ ×#e –g »(;ÁÙ ã#eÙÙ ý#e·©$ ùÙ ×#BeÙ ¯$e¿(C­¡$Ù œ!e Ú¨$`řǙș­É™Ê™àË™óG*¤�R{9  ØÚÁÙ ƒ!e �g�gStorageÁ�g�ûf‘gƒûf§~Ÿ½[l(Ú>__rust_std_internal_initÁu0¬©$d(Þ Á™ í ²ÝÞ û™éì#îÝPUÀ¼bgRtÞ Æ™Ç(�­à› Îõ¦·á®²Ý¶îݤ ¬ô ¯¬ô ·ÚœçñÉ­$îÝäÀ¼ü¿À,œ¿ÀÚ€$|ÓÀó4äÀ5õÀ‡ü†Ào�öT¦Àòè4˜ÀöÒ3nóÚ€$–|€Ø‰Ø ïD€Ø �Ø4‰Øüí×#”í× �CÁ(Á(Â(û—Ä(óß ô›ÛY·Ú¡¢²6²6¨´6ð 6µ6poisonÁ 6¶6êÒ 6M‹3àT—r…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅïø �þ(é4ªØŒªØD±Ø ŸC�°$�þ2T±Ø Ñ§Ø ¶ý §Ø Ô§Ø ¿øJ$ øÔžØi@  OT�ù ` in  z  �4ÎØ¹ß ¾ ©ß ¾  ŒCïø  &Œ±Ù îóŠü Ù#„ Ù • F $”äØTäØ Å6ž±$Ÿ 'ìÚØ Á(Ѱ$üÎØ*$ÕØ ‘M�°$�þþD üÕØ#$ñÙ Å™éì¬áÙ|áÙ š2řǙș­É™Ê™àË™óG*¤�R{9 éì~ l4¥Ú4­ÚüžÚ) ôéìòèÑÚ ÐÚüˆÄÉKˆüÜ×õªü”Ù½üÑÙ€�öTÃÄD¤Äòè4µÄ…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅ�°$�þTà×… r… ¯é †¹$… ˜ØÚ¡φª€J †¹$2�°$|Ѱ$±ž±$;Þ¢$,˜Ù#óŠ,“2“2 UnsafeCellÁ•2�ñ.ç–\*=°"�Ŷ$LÕÙŶ$ ò膹$ïŒ]öÒaæã&�‘ ôã´�äl ̯$k—°$)”²$1¿øÒ�ùÙ¥´$:÷´$뢵$Çëµ$…¿¶$8†¹$yòè€L˜ä Œéìòè ä¡$Ęä$¢ä ¿�éìòè UÿoÚÀ½$D§ät¢äTÊäÞ¢$ŒÚä “�üÊä"$Õä Ÿ G7¼Õä|ýäTúæ Þ¢$|‹ç  ïóŠ Œœç “�üúæ4,…ç    p ` <ü…ç)ÄÇç\Ìç ‘éìòè$Çç4ØçœÌçäûçD€è Žéìòè$ûç4‰è,‘è¼€è¡èŒüªÜ÷ ü‹ä–ü¾äã —’$œÆÜî’$,¼Ü4�ä�½$x,ÂäÜ¢$ü‰ˆ!ð°@Ü¢$ž‘󊚉ˆ!zmàpôãiÀõº(ä¡$·½$á̾$Tô¿$³«À$‚éÀ$K09º(ä¡$HWŒ7�½$uä¡$~†‹º(ä¡$¬ä¯ä�H«äÀ½$_óЍäˆC 2üÜë¦ 5 4 Œèë îóŠÔßë TíðÞ¢$Œžñ  îóŠ |Åñ  ïóŠ „êñ “�Œ�ò “�üíðÇ„øð £ ¯ Ÿ { WGüøð¼Éò\Éò,Íò °_0<Íò1 l†õòè|†õ�ÿ +Ú (¬�õ5  Å™éìtêôìº$¤êôùô  2Ŷ$4+,ùô¬éô5%=ø‚!4> =B?K¨Ŷ$[m@ >?|A@ˆœ A¦¨Ŷ$>-½5ÅÐ8ø‚!ß9 8í:ö¨Ŷ$; 9:)<;6K <V¨Ŷ$9,\§ö†¹$Œ§ö³ö éC�°$�þ8 ,³öÔžö#  4  Õ»ù ¶ý »ù ¾ù Ø»ù  ‘P¶ý¶ý¼¸ý‚¹ý’}£²ËJüü ‘ [`øØ²ùÓ }Œ‘ ÆQ®Î$£«°¼Ú\èù$†¹$Tóù ‘ý†¹$$5Dôù#.lÆ€3òè|Æ€�ÿ 3+Ú 2(¼èù"#Ѱ$üèù"D€ú Ì6ž±$"5!T€ú.%!üâù(%%,Ìú&!¯›R›R©žRlockÁ 6ŸRð¯$ 6R¤KíÊ6çž±$,Öú4  & îú6!6!"\•û›û àCïø �þ(,•û'),›û5*'\‡û*,Œû+'àïø ¼¾û\Ãû ’éìòè$¾û+,Ïû0)”Ãû,‰ý4 - \„ý$„ý öúÑ$-A,)&l¶ý0òè|¶ý�ÿ 0+Ú /))Ì­ýD­ý»ÿ /H.)!¼ßý\äý…Ô$$ßý.,ðý1)”äý̽€D½€»ÿ 2ë1!ü¢€5¬§€ “éìòè$¢€1Rü§€0 „þ4 Úá€üØê‰) PV ê"úÑ$)H()s�!!)†4ŽÚ Í!#Û7!è7#$Ö å4&ö 4 ( •õ 5 *àHø‚!ðI HÿJ §Ŷ$-KI:ML KJ]MLl M /{Bø‚!‹C BšD¤§Ŷ$µÈECÕèF EDøGF  G . f5oÄÉõ\Îõ«À$$Éõ4ÚõœÎõm } +u'…'ŽÎüãðŸü�öÒ üÒù³”Éúü¡ûGü¡ýdN—’$œºëî’$,ñê4„ë,Ÿë! R óŠ[ ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwçðÜ¢$t g óŠp O óŠX ‰ˆ!8 ‰ˆ!, É  –Þ$æ Ŷ$Z éì� ï†!°  Ŷ$1  ìº$T D“öš ò¹$º y ®Î$ ®Î$H ®Î$ řǙș­É™Ê™àË™óG*¤�R{9 `  ®Î$l  úÑ$LÖùÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwúÑ$Ñ8Ó8Ô8PoisonedÁÕ8óÖ8×8 WouldBlockÁÌaú† tiàúÑ$¯ Ѱ$Ò �°$U ò¹$u 4¡úúÑ$”řǙș­É™Ê™àË™óG*¤�R{9 ïø C ž±$O úÑ$:"ïø ¢úÑ$Ïïø ,¥ýéì}ï†!�ïø éìÞ ï†!þ ¸§íõø‚!~ † Ž – � ø‚!¦ ® ¶ ¾ Å ø‚!Î Ö Ý ä ë ò ø‚!û   (à,ôã1resÁÎstack_idÁV�@ Ÿ©Ð Ÿ©Ž &�¦ +��.ܧÇ$ øÇ$¾�ÿ nÂÉ$Ŷ$Ù«À$¥÷Ì$b ¨Î$· ¯Ï$¾ •Ð$Ö �ÿ “ §Ñ$V ”Ó$o …Ô$ æÔ$« �ÿ p »ÿ G …Ô$& »ÿ øÞÖ$×à×$§ �á$Ð �á$× úÑ$¸úÑ$¿Ŷ$®4ø‚ L�ƒ �éìòè�½$Ä�ƒ$‹ƒ ¿�éìòèѽ$[ÚÀé$D�ƒt‹ƒ\¿ƒ†¹$Œ¿ƒ˃÷Ì$.,˃Ô¶ƒ# 5 (Ù»‰ ¶ý »‰¾‰ (Ü»‰ ¨Î$ T $  øÜ²‰‡A  PU¯Ï$ a jo { Ú\鉆¹$Tô‰•Ð$+Dõ‰ % ‹¼é‰Ѱ$üé‰"D�ЧÑ$/ T�Š)üã‰( ,ÍŠ¯úÑ$,׊ ïŠ,Œ‹ Œ�‹$‡‹ ‘Mïø �þ,�‹M\‡‹ ¸‹Ëü€ V†‹à×$v  ëû ÄÕ�¤üô‚Ïü§ƒœ°üÓ‰æ”ÊŠå‚î’$,Ђïø ,ׂ‰�½$iD«ƒèò¹$ЮÎ$W®Î$ž®Î$i±à$rþà${QúÑ$L׉�á$–Êâ$¶Öâ$ûò¹$4¢ŠúÑ$zÌã$Øã$ïø Tƒ‹û�ýà‰Ãå$ü�; Ÿ©¼Ÿ© :Ÿº(ä¡$·é$Ž÷Ì$&¨Î$ƒ¯Ï$Š•Ð$ãïø ¾§Ñ$žˆï$îúÑ$¹úÑ$Àà×$�á$N�á$Uïø ö"º(ä¡$1@�ñ�½$^ä¡$gotº(ä¡$•ƒ˜ƒ�E”ƒÀé$\󊑃ˆC |\ˆ� Àœïø üéŒ< ˜éìòè,ž�¯�‘üŸŒ�—’$œÇŒî’$,®Œ4µŒÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwïø èpàs£LüŽ Àœïø üÝŽ: ˜éìòè,��¡�’ü“ŽŽ—’$œ»Žî’$,¢Žïø ,©Ž‰ø$—�!RLå‘ Àœïø üÆ‘9 ˜éìòè$ù‘‰’“üò�——’$œ¤‘î’$,‹‘ïø ,’‘‰ø$—�!R4¾“ é²Ý´¯“d±“–¥  ¯“9¤±“/DÝ“  ð²Ýdç“ †¹$  îÝü¯“E,ד—¦ ” ] Jìד<Œ”  ñ²Ý\•”Þ¢$ îÝü¯“r,†”—¦ Š ] J܆”\¹” ò ²Ý|Æ”ìº$îÝü¯“§,³”—¦ ‹^Kü³”#ü¯“Á4è”Χ ODè”ú”—üÜ’ž­àŒ�“î’$,ã’·á ê’­¨ ¥­¨ ­¨ š­¨ ¯¨ (²ÝK²ÝþîÝïò¹$ø²Ý§îݘܢ$¡²ÝPîÝAèß$J�œŸÐ–¥ ­ò¹$îÝc—¦ BÜ¢$îÝ—¦ áèß$îÝ¡—¦ €Χ QTú�ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwŸŸ Àì £ó‹¤ô‹ljô²ßk#¥õ�þ„ô�À ꢶ‚%€1â ñ]Œ½¥óóŠ9â ù]‰â ð] Aâ ‘]óŠIâ ›] óŠIâ ¾] Qâ Ë] ¹â ¾]    ,šž¶‚%¯…ƒ% ¤ž ÀÀÈÜ¿ µÃüðµ´]8"»Oÿ¥õ®®«°¿ ”3¯f*²Û�¥õ ¥õ•ø‚!¤ ²»¨¥õËÝ  ì! ø  !¨¥õ ùâ ÷!] ±šáâ Û] Å™ë� ùâ ›]]ùâ › ]¦° !â ¼]Qâ Â] Yâ Î]XBœë¥ ôôÖÞ÷öÒßøæãßùôãßú�äßP C“­�ƒÐ¥õ«õs“2“2ö¹$•2�ñ.ç–\*=°"�řǙș­É™Ê™àË™óG*¤�R{9 ¥õÌë¥ÿ¥  2ÄŠ%,ÿ¥ä饸‚!  )¨ÄŠ%9K Zfz „¨ÄŠ% üé¥8„�¦ ýW–›$üé¥%”�¦2 ²¦ ̦ô'ø‚!( ')(2* )?J+*Y + <"ø‚!L# "[$#h{% $ˆ“&%¢ & ±Á öK4†¦ ðW¥õ!D†¦£üÅ�‡ t—žüæ¢Íùâ �‰]ùâ ìŸ],–›$ã�°›$,Ù�L—ž …ƒ%�søµ+óŠfóŠNóŠ1óŠ$ñ´© !â ð]l“ª ’–›$qřǙș­É™Ê™àË™óG*¤�R{9 –›$¡ ÄŠ%h ÄŠ%¡ •Š%¨…ƒ%|¤‰% ø†%Žø‚!£«³»Âø‚!Ÿ§¯·¾ø‚!ÇÏÖÝäø‚!!(/6¼¬BˆC)£¬ з¬ Ç ¦� O¦°Ÿ‹%ÉÑ�%çëŒ% Tæ§¶‚%„à§+ Û¬¶‚%€1å ñ]Œ®¯óóŠ9å ù]‰å ð] Aå ‘] óŠIå ›] óŠIå ¾] Qå Ë] ¹å ¾]    L†¨¶‚%¯…ƒ% ”¨ ††%dž%ø†%)ø‚!8 F O¨¥õ_q!  €"!Œ  "ª¨¥õ ùå ÷!] ±šáå Û] Å™ë� ùå ›]]ùå › ]¦°!å ¼] Qå Â] Yå Î]XBœÜ¯¤‰%•Š%Ìܯ𯟋%@,ð¯äÚ¯ø‚!  )¨ÄŠ%9K Zfz „¨ÄŠ% üÚ¯8„€° ýWÄœ$üÚ¯%”€°2 £° üà§Ó½°(ø‚!) ($*)1D+ *Q\,+k , #ø‚!$ #&%$3F& %S^'&m ' |�  _4÷¯ ñW¥õ5D÷¯¤ü¥§˜ ”ƒ¨ü׬Íùå �‰]ùå ìŸ]-Äœ$4˧Þœ$L½§Äœ$»lƒ¨ …ƒ%gJøµóŠ=óŠ%óŠóŠûÈôê´© !å ð]°“ª ÖÄœ$ŽÅ™Ç™È™­É™Ê™àË™óG*¤�R{9 Äœ$¾ ÄŠ%…ª’%µµ’%ç…ƒ%N¤‰%ø†%`ø‚!»ÃËÓÚø‚!px€ˆ�ø‚!˜ §®µø‚!19@GNÀ¬ˆCû£¬ ¢ ·¬ ™ ¦ŠS¦°CŸ‹%ÚÕž%ÿÛ›%$üÉ´"äÉ´ Æ�˜$$æ´*$ù´tù´ ê"ï­ï­ ManuallyDropÁñ­�¶„Ÿ~ Á$�˜$i_f<þ´ ¦¥õ«õ˜Lþ´’µ¥ü™±ùüº´Xű�˜$$«±Ф%D¾´äÞœ$ì Ф% Õó 4Õó 7oޤ%dʤ%*°¥%1 |ú¶¶‚%Œ�· óóŠ´‹· Àœ…ƒ%üç¶;”ç¶ ô¶‚%~D+0üá¶AS ,ÏÁ €1æ ñ]Œ×ÃóóŠ9æ ù] ‰æ ð] Aæ ‘] óŠIæ ›] óŠIæ ¾]Qæ Ë]¹æ ¾],¸·¯…ƒ%d°º   µ» L‰»¤‰%,�» Ô‰»L“» �¥õ«õG 7  „“»ùæ ÷!] ±šáæ Û] Å™ë� ùæ ›]]ùæ › ]¦°!æ ¼]Qæ Â]Yæ Î]XB|†Ä¤‰%Þ¢$Œ£Ä “�ü†Ä/,–Äô¿$V ,œÄ< ü–ÄàĦü½¶£üµ·�üËÁýùæ �‰]ùæ ìŸ]Ò¶Þœ$Lȶ¶‚%5 ¶‚%¡¶‚%kœóŠ¥Lµ·…ƒ%?,Ø…ƒ%ò4øµòóŠ-óŠóŠøóŠë¸äÚ´© !æ ð]Ö“ª übÜ¢$©‰ˆ!‹¤‰%褉%ðù�ôãã £¬ �·¬ ‡¦ˆŒë§%v…ƒ%�«%ߦ°{ô¿$ýtæÅ<ëŰ¥%$æÅLëÅÿÅ«üÅÅ:×ÅÞœ$LÍÅb7°¥%\ÛÇ ê ²ÝÜÌÇdÎÇ–¥  ÌÇ9ÌÎÇ/4ÿÇ q²ÝT‡È ¤‰%  îÝüÌÇF,ùÇ—¦ “\ JÌùÇ<ªÈ  ô²Ý\³È ¶‚%  îÝüÌÇs,¤È—¦ Š ] JܤÈüÌÇ�4ÑÈΧ MDÑÈãȰüýÆæ­àŒ¬Ç°›$,„Ç·á ‹Ç­¨ £­¨ ­¨ ¡¯¨ ª²ÝͲ݀îÝr ¤‰%~²Ý-îÝ ¶‚%*œ�²–¥ èµ%îÝÑ—¦ °†¶%îÝp—¦ OΧ "èç ‹&® ® ¶˜¯ autÁ ° ¦ ± start_kindÁ ü�"¶_e_ej †ÿ¶%|„(ç Z& È(ç _&Ë(+ÿ÷7 ÿ÷Bÿ¶%Ó ÿ¶%Þ^hÜ·%û(è a& õ ²Ýèè ‹& ö²Ýÿ¶%+7îÝbg¹§tyfk‹è f&Í(¤­à°±¸%¸·áÀ²ÝȲݸîÝÀ ĸ%Ëĸ%Óôœ Ϻ%îݹ§!$Ö &TÐ &Úü° && ýlƒ&¤ƒ&”&ô$üª"& Û ü€¬&üò,& Û "üÇ$&üÇ"& E <‡&l‚& Å™Û Ü Ý NoncontiguousNFAÁÞ ß ContiguousNFAÁà á ù©Qó6Τ4BüÇI&$ý& ©Ðš œý&üÇt&T¢& ¦ Fl­& Ì¢&ìØ& �üǯ&TÍ& § \3  üÍ)&üÇþ&Lµ& ª I,¿&  „µ&6  üÇž &,×& ¢  ø” ø” m<Ý& t×&4‚&dü& $½&€ëë�®ì¦ª ÂCÓ°Í5¶$±& Å™ÿ÷Œ&ž&¯ÿ¶%”é& È(Ää& Å™ÿ÷V`¹üÄÈ&ü¼ Ê&üò” &üºÌ &üó“&d›&ü¹�&řǙș­É™Ê™àË™óG*¤�R{9 ÿ÷œ &ù¦$ï&—À%<ˆ&ýþÿStandardÁ€�ÁÀ‚ƒLeftmostLongestÁ£ïžéxXlÀ &Äí &¯½%<ö&awÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwÿ¶%ôÀ%4¾& Ï Ï AhoCorasickBuilderÁÐ nfa_noncontiguousÁ Ñ nfa_contiguousÁ Ò Ò Ó ¦ Ô ¬¶% Â9‚î:‹ »Å%—ÌÆ%ÐÌÆ%ÌÆ%SÌÆ%»Å%řǙș­É™Ê™àË™óG*¤�R{9 ¯½%0¯½%G��‘¢û’“ UnanchoredÁ”•žOMžáÔÌ5·4›&ÿ¶%xôÀ%éÿ÷q¦—needlesÁ¢ ac_match_kindÁYac_kindÁYÇ ùɘ÷&ɘÿÜ»t° ³wø”ó¼%’ª¾%áؾ%ºœ¿%~Ì¿%U‘À%256ÁXë ƒ'"(ë Z' Î(ë _'Ó(+Ìø7 ÌøBÌÊ%y ÌÊ%„^h †ÌÊ%§(ì a' ¢²ÝXì ƒ'ÌÊ%"îÝMRÀ¼_dQqì f'Õ(Š­à–¤Ë%ž·á¦²Ý®îÝž ·Ë%©·Ë%±Òœßé¦Í%îÝÞÀ¼üdÒ',Ó'tú'$‚' ìwø”<ú'4‚'pãú'  ‘P�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫø””nsøãìè'�ž£ ÆQÚÎ%µ½Â Î á4ð' àŸÀ%|¨'4¯' ¥ø”Èš 4¨' D¯'î'dæ' Î(”á' Å™Ìøƒ'dÌ'  ŒÌ'   Ü'$  $û' Å™Ìøe º' L³'   3 ´§'\§'žª Z Ü£'$ . ü£"'$Á'IaÊü¥Þ'üĹ'w~ü›¹'řǙș­É™Ê™àË™óG*¤�R{9 Ìø|‚'ù¦,Ð'—À%<ê'ÌÊ%<È'ÚÎ%„ÚÎ%»ÚÎ%–řǙș­É™Ê™àË™óG*¤�R{9 ŸÀ%ä ÚÎ%ðwŸÀ%å‡4Ÿ'†œà,Q<CãÌøÌÊ%'_kindÁéÇ% ã��”needleÁ¾ äÖ%© Ö¦Î%ôÔÎ%ÍîÏ%Ô×Ð%Ø•Šdžª §256Áí ‚((í Z( Ö(í _(Ú(+œù7 œùBk’ª sZdýª �(î a( ÷²Ýî ‚(!îÝLQÀ¼^cPpî f(Ü(‰­à•®Ù%�·á¥²Ý­îÝ�¯° ¥’ª ­ÎœÛ寰 îÝÚÀ¼ø l±(”±( Â($$Ý( Å™œùÚ  ˆ(  T€(      3 œ€(4‹(×Ð%YD‹(Ì€(ô€( �($$¸( Å™œùÚ  ì( Tä( 3œä(4ï(×Ð%YDï( ø( ´ä(  3 ôÝ( Ö( üØ$( Å™œù Œ(  Üüšò(řǙș­É™Ê™àË™óG*¤�R{9 œùt÷(ù¦,Å(—À%<ß(åû  å‡MŸÀ%š¿ª±œù Så‡�ŸÀ%êú¡Œ“©Ö%¯éÇ%³&åÉ%³×Ð%ô•Š××Ð%ï À (ï Ä ((ï — ( Ý(ï œ (â(0ìù< ìùG’’ª š’ª ‡nxýª Æýª ª(ð ž ( ø²Ýð À (îÝð Ä (!îÝsx ég‰ŽzY ð £ (ä(º ­àÆÇä%ηáÖ²ÝÞîÝÍ’ª ÕîÝ·¯° ¿’ª Çœ(’ª îݯ° îݘæ%Glõ(”õ( †($$¡( Å™ìùÚ tÅ($Í(¦Î%<Å(4Í(&üÅ-(Ô( ÅRÚÎ%èø”ŸÀ%UÿmÚ¢é%ÌØ(ôÔ(X ½(  Tµ(      $Œ( Å™ìùÚ W  œµ(4À(×Ð% } DÀ( É( ´µ(   3  ê( Tâ(  3œâ(4í(×Ð%Y Dí( ö( ´â(  3|‹( Ý(¬†( Å™ìù«(  æüÝ Î(ü¬y(üÙL(řǙș­É™Ê™àË™óG*¤�R{9 ìù|º (ù¦,ˆ (—À%<¢ (µË6¯Ö%tÚÎ%}°(å‡nŸÀ%ßïör]dÝ(å‡ÓŸÀ% E07×ÂÉìù�©Ö%ÚéÇ%Þb1Á¼b2Á€}åÉ%ȦÎ%h˜é%:×Ð%U×Ð%xTÜ(4Þ(×Ð% Ü(DÞ(„Ü(¬Ü( ð(ñ(èzÛ( ¢é%’ŸÀ% Ù(m凛¤À×Ð%º•Ššñ ù(ñ ý(ñ �((ñ Ð( å(ñ Õ(ë(3Èú? ÈúJ·’ª ¿¤’ª ¬‘’ª ™€Šýª úýª Þýª Â(ò ×( ù²Ýò ù(îÝò ý(îÝò �(   ! îÝ™ž ëg¯´ ^Ëò Ü(í(å ­àñÓô%ù·á²Ý îÝú’ª îÝå’ª íîÝϯ° ×’ª ßMœ[f’ª îÝ[’ª îÝ?¯° îÝ#ßö%�l²(”²( Ã($$Þ( Å™ÈúÚt‚($Š(¦Î%<‚(4Š(&ü‚-(‘( ÅRÚÎ%󸔝é%eÚ‹ú%Ì•(ô‘(P ú(  Tò(      $É( Å™ÈúÚW  œò(4ý(×Ð% } Dý( †( ´ò(   3  §( TŸ(  3œŸ(4ª(×Ð%Y Dª( ³( ´Ÿ(  3 Ô( TÌ(  3œÌ(4×(×Ð%YD×( à(  ´Ì(!" ! "! 3 œõ(# å(Ìð( Å™Èú#™( ñüšÿ(üéª(ü–}(üÃP($řǙș­É™Ê™àË™óG*¤�R{9 Èú|÷(ù¦,Å(—À%<ß(ž´¯Ö%]ÚÎ%fí(å‡_ŸÀ%ÐõàçcNUš(å‡ÄŸÀ%6!(ȳºÇ(å‡)ŸÀ%v›†�-Èúæ©Ö%#éÇ%(‘ð%žð%Êb3ÁŽÞåÉ%¦Î%¨�ú%z×Ð%�×Ð%À×Ð%ãT™(4›(×Ð% ™(D›(„™(¬™( ­(®(óɘ( ‹ú%áŸÀ% –(m凛¤×Ð%º•Ššøó ¨')¸ ¸ FinderÁº äÖ%ž» ™›žF7/7úSWY^ †í†&px(ó Z) î(ó _)ñ(+°û7 °ûBí†&Ç í†&Ò^h½‡&ï(ô a) ú²Ýøô ¨') |²Ýí†&+7îÝbg¹§tyfk‹ô f)ó(¤­à°’ˆ&¸·áÀ²ÝȲݸîÝÀ ¥ˆ&Ë¥ˆ&Óôœ °Š&îݹ§!l©)”©) º)$$Õ) Å™°û•) Š) T‚)   3œ‚)4�)×Ð%YD�)ü°#)ܰ) ŠÈš4Ì) )ü°0)TÔ) � J dÔ)Œó) î( ¼î) Å™°û (‚üæ¯)üõš)ü£l) řǙș­É™Ê™àË™óG*¤�R{9 °ûtÃ)ù¦,‘)—À%<«) å‡4ù)ŸÀ%°ÕÀÇí†&4§)í†&p°û ©Ö%léÇ%päÖ%eåËG åÉ%¬×Ð%íýŒ&ά�&¥øõ €(*ááÉ�⨠©ã rabinkarpÁ©ä search_kindÁ©å¼›©8R½ bhr~ƒ †á�&•�øõ ¨ #*³ ³ ù© ´ ž²Ùµ ¨¤Ù¶ matches_memory_usageÁÙ· pattern_lensÁÙ¸ þ9Ù¹ �Ùº ÐÙ» àÙ¼ óÙ½ ¿Ù¾ min_pattern_lenÁÙ¿ max_pattern_lenÁÙÀ � Ùªd?D _…m †ƒ’&-7�õ   *(õ Z* ô(õ _*õ ^*>ù(MýûY ýûdá�&m á�&yƒ’&à ƒ’&ì·óŠ¿¦°Ö‘&»�”& ó‹êƒ’&£á�&© (ö a* û²Ýøö €(* ü²Ýá�&,îÝøö ¨ #* ý ²Ý ƒ’&, îÝ�ö   *  þ ²Ý *  6  îÝÛà×± íòß䬱 y ~ö f*û(2­à?¬•&H·áQ²ÝZ²ÝKîÝTÀ•&]²Ý)îÝ2Õ•&;²ÝîÝ –óŠ"¾œÌ×À•&îÝÍÕ•&îÝš –îÝg×± $›*T•*Úüõ.* ¶ü¹&* ýüß“* Œñ*¶·¸ÁÀ¹º�Ã%À!ïYØl„*ÖÃ%t±*$¹*¦Î%<±* 4¹*ü±(*À* ãQÚÎ%”ø”²é%Uÿ bÚœ&¤Ä* ÌÀ*ü±.*Ú* ýRÌŠÌŠ“ºÏŠ�Њœ“D^)c˜þOþÚÎ%œ& ¸ ,Ú*ü±;*Là* ùW Š ê* dà*ü‡#*ü‡!* ¹!ü‡R*T¼* »HŒÇ*ì¼*.ü‡m*<ë* ºU Lë*'ü‡Ž*4†* È—À%ŸÀ%W<�* |†*8ü‡§*,§* Ä` <§*øì‡¨*  �%řǙș­É™Ê™àË™óG*¤�R{9 á�&� kp| ü‡¨*má�&  ¯*Çí®* �%řǙș­É™Ê™àË™óG*¤�R{9 ýûü¶Úü¶g<�üÏ!*üÏ* ÷""!"üÏL*T‚* ¦!Il�* Ì‚*ü¸!*# �üÏ‹*T­* © ^#4ü­-*üÏ­*Lì* ¨J,ö* „ì*7üÏÍ*,Ž* š—À%ŸÀ%g<”*tŽ*üÏã*®* ¶_ƒ’&ôÀ%[$®*øîÏä*  �%řǙș­É™Ê™àË™óG*¤�R{9 ƒ’&•kp$|$üÏä*%mƒ’&4Ø*' üÆ4*& ô('% üÁ:* Å™ýû&‹*ü ï²*›¢&Úü¶" „* K LüÈ Ã*’ üì™*ü�ö*üú‹*|ƒŠÐü½È*ÀÆ ÌF (¡¢&l¤*ù¦$ó *—À%<Œ*°›&PÖÃ%°›&ÖÃ%ü•ì*IJ*°›&¸ÖÃ%­\“*ØÚ¹•�&ÚÎ%Má�&4þ*ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ü¶á�&iÜ &� ÙÙ“¨ÚÉ©ÛinertÁ©Ü¨ ©$,Fâa&’9 ¿«&E’¬&„¿«&� ÆÆçǦ©ÈforceÁ©Éonly_teddy_fatÁ©Êonly_teddy_256bitÁ©Ëheuristic_pattern_limitsÁ©áû^éwm ²¬&yÓ­&²²¬&»âá�&*ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ü¶ƒ’&d‰¦& ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwƒ’&ôÀ%6 à à “¨Ä noncontiguousÁÙÅ ¬¶%ÙÆ ¿Ùp÷-iO¢ØºÙ ï&åž°&ž°&mž°&§ï&°ÜÇ%Yfƒ’&ãýûÄá�&Û ¦¢éÇ%§packed_match_kindÁ þÇ%Ò ¼›™ ô € Æ ÎÚü¶Ž!©›\Á*%Æ  Úü¶Ž¢ %Ó¦Î%8 µœ& ��&Ä þ�&\ Áž&! ðž&ø ­Ÿ& äŸ&“ « &S Ö &/ ¿«&�›¢&= ¿«&�©£&øÙ£&Ο¤&�Ф&f–¥&'Ð¥&ôƒ¦&È›¢&Ïá�&¬á�&³¿«&ÜTÈ*4Ê*×Ð% È*DÊ*„È*Ø*”¿ Ç* œ&Ø ŸÀ% Å*å‡s¤ÿ ×Ð%’•ŠrÀ÷ Ý)+„K„KK‡Kí ä7ˆKÞüä7‰K«ä7ƒ¢3à6ú�Ä�þhm †šµ&‡h÷ ™*+¨÷ Ê*+(÷ á(+ ü(÷ æ(+�)3äü?ŒØGšµ& šµ&*¥÷ý­“󊛂Œúµ&ešµ&šµ&o¹ø êó‹Ïšµ&÷ å(+ (ø è(+ ÿ ²ÝÀø Ý)+ I²Ýšµ&*îÝhø ™*+ €²Ý ) îݨø Ê*+  �²Ý *  6  îÝ×Ü×± éîÚß©® y ~ø í(+ƒ)/­à<ŒØE·áN²ÝW²ÝGîÝP«·&Y²Ý'îÝ0÷ý9²ÝîÝ –óŠ#»œÉÔ«·&îÝÉ÷ýîݘ –îÝh×± ýÔÿ;+\ÿ;+ Òø”$‹<+<‘<+-ü£<½+ ¸ø”Ãþ¹Å Uÿ—À%üÿ;â+Dš<+ ˜XÃþäü¸ø”î¼&ü¼&šmüš<Ç+ç=+¶üŽ;Ù+¹Å Œã;+ù¦$²;+—À%<Ë;+řǙș­É™Ê™àË™óG*¤�R{9 Ãþ6¦½& ¦méÇ%qŸ³¼&l˜½& t¾<+   <ß<+—À%tß<+$ç<+¦Î%*4ç<+üß<(+î<+ ãQÚÎ%¹ø”Ïœ&ZÚ£À&¤ò<+Ìî<+üß<.+ˆ=+ üRÌŠÌŠ“ºÏŠ�Њœ“D^)c˜þOþÚÎ%£À&²,ˆ=+üß<;+LŽ=+þ�&† ˜=+dŽ=+4¿=+  ü¨=.+´¨=+ º;tÇ=+(à=+ ß=+ ¸Aüº<¦+ ¹Å «<+¦½&bÃþ4¤<+'ØÚxðÀ&ÕÚÎ%Ãþç—À% �choiceÁLéÇ%—À%Öï‹á¦Î%b–À&BêÀ&õþ�&Œ¹Â&4Ãþ÷ _ref__needlesÁTö<+4ø<+×Ð% ö<+Dø<+„ö<+†=+¹‚õ<+ £À&›ŸÀ% ó<+å‡s˜Â×Ð%’•Šr¤ÉY+DÉY+ Õ�¹$ÒY+$ØY+,1üÉY,+DëY+ ðWTëY+üŒZ!+ ¾�¹  êչŠUÿ ù¦üÉYe+DƒZ+ ˜X¶Ç&äü¾�¹±Ç&ÃÇ&¡~üƒZ++ ³Z+´Z+üÎXæ+¼¹Å Œ­Y+ù¦$ÿX+šÊ$˜Y+řǙș­É™Ê™àË™óG*¤�R{9 ¶Ç&g ––SeqÁ—÷ɼÎóÿ‚DÊê^àÔÉ&éïÇ&‹ÅÇ&”¦¹¡¯½úµÆ&(õÆ&ðáÇ&‹ÔÉ&EÔÉ&L$¢Z+ÅÇ&Ô“Z+t“Z+ ¶êÕ>$¨Z++­Z+¾N¹Å ’Z+ïÇ&e¶Ç&$�Z+ù¦�ÅÇ&€litsÁ!¦¶ÅÇ&«¨Ë&« _ref__kindÁD¼d+šµ&ì¼d+$Åd+ Æšµ&1DÊd+$Ôd+¤Åd+éd+¿üìbý+íõdŸc+ŒØ,øb+å‡Dÿb+Åž$�c+«·&™'ý�+Åœ/g€Í&¼Dóq+šµ&üóq+4üq+ Çšµ&2Dƒr+$�r+´üq+¢r+Àü¡p�+íõdÖp+ŒØ,¯p+å‡D¶p+Åž$Çp+«·&š'ý�+Åœ/gÞÎ&½D·t+šµ&¼·t+dÀt+ Èšµ&1tÀt+Þt+ÁüƒsÛ+,¡s+ŒØ,—s+«·&v6»Ð&}œòv+•w+Âü¼uÙ+,Üu+ŒØ,Òu+ .dô€+��+ÃüÆÊ+$ß+ŒØ,Õ+ -D©Ž+ Þ"Àý,«Ž+%|©Ž+$²Ž+…ßC4²Ž+¾Ž+Ìü€Ž>+²Ýd’Ž+ Àý,ˆŽ+ÂŒ�<ŠÓ&­…߇DÃ�+ŠÓ&,Å�+ìÃ�+$Ì�+þó=DÑ�+$Û�+¤Ì�+æ�+ÍüýŽi+íõd¬�+ûÓ&,…�+å‡DŒ�+Åž$��+ÂŒ­*ý�-Åœ0kŠÓ&æþóÆDí�+ŠÓ&,ï�+üí�+4ö�+ññ>Dý�+$‡‘+´ö�+’‘+Îü¥�m+íõdÖ�+ûÓ&,¯�+å‡D¶�+Åž$Ç�+ÂŒ®*ý�-Åœ0kŠÓ&çññÇDû‘+ŠÓ&,ý‘+¼û‘+d„’+šî=t„’+˜’+ÏüÑ‘G+,ë‘+ûÓ&,á‘+ÂŒ†8ŠÓ&£šîƒ4ý’+ŠÓ&,þ’+œû’+<…“+øìLû’+L…“+”“+Ðü×’=+$ì’+ûÓ&,â’+ÂŒˆ7ŠÓ&¥øì…(ù ·�+/Xù ëž+¶˜ÿ÷ % †ÿ÷7?8ù Ñž+ Î�Ìø % †Ìø 7?(ù ½ž+ Œ›ýû % †ýû 7  ?0ù ªž+ Ûš°û % †°û 7  ?8ù •ž+•šÈú % †Èú7 ?8ù ÿ�+×™ìù % †ìù7 ?0ù ê�+¢™œù % †œù7 ? „)ù »�+6 „)$U „)Ct „) b“ „) �² „) Ñ „)¿ù ¼�+›) !(/6ÃþD ÃþPX®Ù%“œùœÇä%éìùòÓô%?ÈúH’ˆ&•°ûž¬•&ëýûô¤Ë%AÌøJ±¸%—ÿ÷ à‡³!‡³r‡³Ã‡³ ‡³e ‡³¶ ‡³FüÛ&ÀÜ&Þ„Ý&¡ÈÝ&dŒÞ&'ÐÞ&ê”ß&­ (ú ¾�+/Xú ëž+¶˜ÿ÷T\õ ²Ý3?î݈�À¼šŸn ¬8ú Ñž+Î�ÌøÏ×¢²Ý3?îÝ À¼r +(ú ½ž+Œ›ýûOXû²Ý5AîÝ…‹À¼™Ÿt ­0ú ªž+Ûš°ûÑÚú²Ý5AîÝ À¼!t /8ú •ž+ •šÈúS \ù²Ý5 Aî݉�À¼� £t ±8ú ÿ�+×™ìùÕ Þø²Ý5 A  îÝ À¼ % t 30ú ê�+¢™œùW`÷²Ý5AîÝ�“À¼¡§t µú Ã�+�)Ñ×Þåìóú ­àåá&·á!)®Ù%ù²Ý:îÝ  ®Ù%Çä%¡²Ýaîݳ Çä%¿Óô%J²ÝˆîÝ\ Óô%h’ˆ&ó²Ý¯îÝ ’ˆ&¬•&œ²ÝÖîÝ® ¬•&º¤Ë%C²ÝýîÝU ¤Ë%a±¸%å²Ý$îÝ÷ ±¸% CœQ‡³'‡³¶‡³E ‡³Ô‡³c‡³ð‡³x·Õî&îÝ�À¼Ì®î&îÝ%À¼Ý‡î&îݶÀ¼îàí&îÝEÀ¼ÿ¹í&îÝÔÀ¼’í&îÝcÀ¼!ëì&îÝòÀ¼2lÑ©+”Ñ©+ â©+&$Ǫ+ Å™ÃþÚt•¬+$�¬+¦Î%<•¬+4�¬+*ü•¬-+¤¬+ ÌRÚÎ%Ôø”¯é%kÚ ò&̨¬+ô¤¬+T$¦­+ Å™ÃþÚÔÓ°+\Ó°+ Üø”$ß°+<å°+16 Lǰ+  ̰+ àœùœ·±+ „) ̲±+ Å™Ãþ ÚÜò±+dò±+ æø”$ÿ±+<…²+  16  Læ±+  ë±+ àìù¤Ø²+ „)ÔÓ²+ Å™ÃþÚÜ”³+d”³+ ñø”$¡³+<§³+ 16Lˆ³+�³+àÈú¤ú³+ „)Ôõ³+ Å™ÃþÚÔ¶´+\¶´+ ‚ø”$´+<È´+16Lª´+¯´+à°ûœšµ+ „)Ì•µ+ Å™ÃþÚÌÕµ+TÕµ+ ’ø”$àµ+<æµ+16Lɵ+ε+àýû”·¶+ „)IJ¶+ Å™ÃþÚÜñ¶+dñ¶+ Êø”$þ¶+<„·+16Lå¶+ê¶+àÌø¤×·+ „)ÔÒ·+ Å™ÃþÚü“¸+„“¸+ ¹ø”$¤¸+<ª¸+ 27! L‡¸+!Œ¸+" àÿ÷Ä‚¹+# „)"ôý¸+ Å™Ãþ#Ú$ø¹+ Å™Ãþ‚º+ üð§’+Òüî°h+ü޲j+ü°³j+üÑ´h+üïµf+ü�·j+ü³¸s+$‘¾&t̨+ù¦$›¨+—À%<´¨+«Â%¯Ö%gÚÎ%pýà%¶|œùqÃþ`Ëî%(îìùãÃþÒ��&š`ÈúUÃþD³Ž& Ò°ûÇÃþ¶¡¢&~Dýû9Ãþ(ÙÔ%ð¶Ìø«ÃþšóÂ%b'ÿ÷Ãþ  ¦5éÇ%9Ѷu ѶÑѶ-Ѷ‰ѶåѶAѶœ" åÉ%[¦Î%÷–ò&Å ó&BÑô&˜‚ö&î³÷&Däø&š•ú&ðÇû&FT¬¬+4®¬+×Ð% ¬¬+D®¬+¬¬¬+D·¬+£­CT·¬+Á¬+Ô,«¬+  ò&EŸÀ% ©¬+凔¤m×Ð%³£­�ÌëÁ+¼ëÁ+ ÈLŠÂ+ä™Â+ �üŠÂ,+$”Â+ Ë@5ü”Â"+¬ÐÂ+œÐÂ+ é óöÂ+  ‘PšÊ$öÂ+(- øóëÂU+I  X] ÆQÓ¹ o x}  ‰  ÚïÂ+ ໺D…Ã+L™Ã+d«Ã+4¯Ã+�Ñ «Ã+ D¯Ã+$óÄ+TíÄ+ ü™Ã+<£Ã+ É{o ¬£Ã+ü”Ã$+ü…Ã4+,ŽÃ+ ùÎ2 üŽÃ++ ¹Ã+D�Æ+ü�Æ,+ü–Æ!+ ™-ü–Æ#+D¢Å+|¢Å+$«Å+ €+4«Å+D¿Å+„¿Å+,ÈÅ+ þ+<ÈÅ+DöÇ+€È+å ÿÇ+üâÀž+ó‚Õ(ü×Á©+ü½ÂÃ+¶½ÔÉ&dœÁ+ù¦$üÀ+šÊ$�Á+�� ExtractorÁ‚¦¼ƒ limit_classÁ¼„ limit_repeatÁ¼…limit_literal_lenÁ¼† limit_totalÁ¼cAbxÆ;$lÛÁ+ Ž‹' ¯Œ'O�Ž�PrefixÁ�‘SuffixÁa2¡ëa´�F†ÔÉ&dÁÂ+Ó¹/Ó¹8řǙș­É™Ê™àË™óG*¤�R{9 »º†Œ¥�\»ºû5 ÔÉ&õ˜Ž']ÔÉ&– Ž‹'¢ºût‚Å+嘎'º˜Ž'ÕF˜Ž'a¦¡¯ extractorÁŒ€ñ2�b ¤OÉ É߃'§„'ÞØ„'³ú„'—Í…'ž�ÑŬ‡'|ï‡'@ÔÉ&ƈ'øƒ‰'À¿‰'‹ÔÉ&0ÔÉ&B(— …,— Š,£)&+¯€8 ¯€CLV™ ”,¦)™ ’, �‘'&0`š å,¢ˆ$ üh¢ˆ$ù 3 š –,Dš š,¨)&1�‘'9Žº A ¢ˆ$„Uƒbl¯’'®`› å,¢ˆ$¢ˆ$*/ ù±¢ˆ$¢ˆ$FKS› ¥,¬)H› œ,�‘'�‘'Š“'“Š“'›7î DNú“'ÅPœ §,   (- Å™µ¼ œ ±,®)[»½ g�‘'o�‘'wµ¼ ˆî •Ÿ¦•'©`� å,¢ˆ$¢ˆ$*/ $AFN� ¶,°)� ³,µ¼ �‘'�‘' Š“'�Š“'˜9î FP€—'¬÷,dý, ›¨,÷, Š,|ý,üå(,Œå, ¸ ]$üå9,Ž, þW¢ˆ$¯€ Ÿ)Q\’,¤™' „Ž,¤,âü«y,¹¨œÇ,,¶,řǙș­É™Ê™àË™óG*¤�R{9 ¢ˆ$ç/�aƒ©˜'Nì˜'–™'ð4Í,¢ˆ$dÍ,Ô,§Œ$*,Ô,äÍ,dÚ, �¨> ç,|Ú,ï,ãü©F,,½,¯€$´,—¢ˆ$´<§Œ$¼Ë›'œ(  �2,  ”2,¶)&+×�8¦Ï@IS(¢ œ2, ‚ ²Ý¢ €3,!îÝMRÀ¼_dPq¢ ¡2,¹)‹­à—¦ÏŸ·á§²Ý¯îÝžö¶ ¦ø¶ ®ÐœÝçö¶ îÝÛÀ¼ú£ €3, Õ· 8£ £2, ±)£ ª2,»)-×�9]GÕ· n¤ ®2,½)¤ ¬2, ¦Ï&0¥ €3,º¹ ( ¥ °2,9¥ ´2,¿)&1¦Ï9Žº Aø¶ vRƒ_iº¹  ¦ €3,&¦ ¿2,Ã)H¦ ¶2,¦Ï¦Ïov5î BLP§ Á2,  î×� (- Å™µ¼ § Ë2,Å)[»½ g¦Ïo¦Ïwµ¼ ˆî •Ÿú£'©¨ €3,(-‹¿ 9>F¨ Ð2,Ç)¨ Í2,µ¼ ¦Ï¦Ï ø¶ ˆø¶ �9î FP‹¿ ºÜ’5,¼’5,t’5,óà* ¬5,L 'sMüø46,  Ìø4, ì¨' ­5,üˆ4§,ç×�T—4,çæÆ£ö>èóà_ÁÔ¾7,|¾7,è¦Ï4 ;DÎ7,¾ýFTÎ7, ×7,ô¾7, Û7,$ 'KMü¥78,è,¶7,î¦Ïî×�öÆ£¡¦ÏNç×�_Á/8ç×�GV触Ïs×�|„‰ç×�äž8,  Ìž8,„¨' ¸8,5ü�8:,é×�T‘8,'_ÁüŸ9",  üŸ9 ,òÓ!ü‡9;,ê,—9,&_Áܦ;,¤¦;, ¶×�,»;,)Ç;,ëüÜ:k,Øçüø:#,,ç:,÷ /’®'zdÔ@,ÄÉ@, ±)ç@,ìü¾?©,×�Tê?,,Ù?,[÷6},Ô@,— ß@,� ±) à@,£ì¡×��›ôx÷³Ö´ûA,|ûA,ÏÎ,‹B,¬™B, ƒ²ÝüûA4,4’B, Ò_×�Є]>ì’B,µB,íüÉAl,×�TæA,,ÕA,Øç¦²ÝŠ÷>ÏÎÌò±'•4©D,|©D,¾D,îü­C‘,,ÍC,¦Ï,ÃC,X5y} ·D,ƒî�}¦Ï{Ñ‹®4¥F,l¥F,¸F,ïü¬EŒ,ÊE,¦Ï,ÀE,X5y} ±F,ƒï�}¦Ï{Ñ‹®4ãG,ïG,ðü·G8,ÕG,¦Ï,ËG, -a_ð]Z¦ÏXaƒ4ƒJ,lƒJ,–J,ñü‰I�,§I,¦Ï,�I,X5y} �J,ƒñ�}¦Ï{Ñ‹®|£L,D¨L,¾ý$£L,T¨L,œ£L, µL,$ 'K¼L,òüùKC,,“L,¦Ï,‰L,µÆ£—<¾ýÚ Ì¿O,”¿O,ø¬",ÒO,|êO, ó¦ÏÄêO,4úO, ð2DúO,ìåO,l¹P,L¹P, ®ÃP,(üœP,, È)ü˜P1, Àœ×�Є�Q,lúP,DýP, šúP, TýP,üàP(,ÌàP,„¨' CüÝP,, Àœ×�Є~ˆóüÑN¾,ü¶OÙ, ØçüˆO#,È«",ïN,ºO,W…¦Ï©Є U×�¿óöÆNˆCRˆîç×�ø¬"%¼'í�½'ªþ½'?„¨')2ç×�APóö¦Ïm×�v~ƒç×�4ÁÌ T,” T,ø¬",³T,ü T$,DºT,þ½'<TºT,ü†T?,̆T,„¨'=ËT,õü¿SŒ,×�TñS,È«",ÞS,€­öÆ?ø¬"Ìþ½'¬„¨'‹4Á4îU,¤îU,\õU,Ó¯"*lõU,ˆV,÷ü¿UI,È«"<ÜU,¦Ï,ÒU,n5Ó¯"v4Á,œW,„œW,D¢W,¾ý%T¢W,´—W, ¼–W,³W,üüãVP,¬ô ‰W, ‹ƒ,ìV,×�,óV,ª¦Ï•›1÷4d¾ýé,ÄX,„ÄX,DÊX,¾ý%TÊX,´¿X,+ ܺX,ÛX,ÿüûW`, éì4©X, ‹ƒLˆX,×�,“X,º¦ÏÒ ‹ƒ¨¯µ;÷>q¾ý,ŒZ,„ŒZ,D’Z,¾ý%T’Z,”‹Z, ‘ý«ƒ$‡Z,J,£Z,ƒüÓYP,¬ô ùY, «ƒ,ÜY,×�,ãY,™¦Ï±$÷'W¾ýËÍÉ'«,Ñ[,„Ñ[,D×[,¾ý%T×[,”Ð[, ª#«ƒ$Ì[,I+è[,†üˆ[`,�È'4¶[, «ƒL•[,×�, [,˜¦Ï°$÷'W¾ýʹË'ªp© Él,(© Šl, È)© �l,Ë)-Є9 ЄDm—³u\f‹µ’(ª ‘l, „²Ýpª Él, ` ²Ý)5îÝaf¹§sxdiŠª –l,Í)¤­à°ÁÍ'¸·áÀ²ÝȲݷîݿ˿Ǘ³ÏñœþË¿îÝý¹§« šl,Ï)« ˜l, ÁÍ'&0p¬ Él,&¬ ¥l,Ò)H¬ œl,ÁÍ'ÁÍ'ov5î BL௠²q,…  †… /7(¯ üp, Ó)¯ �q,Ö)-Î…9 Î…D… ˆ … “`jÂÒ'°(° ƒq, …²Ýà° ²q, †²Ý… +7îÝch¹§uzfkŒ° ˆq,Ø)¦­à²™Ó'º·á²ÝʲݹîÝÁ ¬Ó'̬Ó'Ôöœ¹Õ'îݹ§#(± �Ë,± ¢Ë,Þ)(-›†:·ÍBKUP³ „Ì,  ÷×�8³ ªË, Ù)³ ±Ë,á)/›†;×�gJÿÖ'x´ µË,ã)´ ³Ë, ·Í'1Pµ „Ì,×� üh×�ù 4 µ ·Ë,Fµ »Ë,å)(3·Í;Žº C¦Ï„TƒakìØ'®P¶ „Ì,×�×�+0 ù±×�×�GLT¶ ÆË,é)H¶ ½Ë,·Í·Í¦Ï–¦Ïž8î EO·Ú'ÈP· ÈË,  !). Å™µ¼ · ÒË,ë)]»½ i·Íq·Íyµ¼ �Šî —¡æÛ'«P¸ „Ì,×�×�+0ú£'<AI¸ ×Ë,í)¸ ÔË,µ¼ ·Í·Í!¦Ï�¦Ï•:î GQú£'¿(¹ æÐ,¹ ëÐ,ó)(-Ç:ÍŠBKUP» ËÑ, ÿÖ'8» óÐ, î)» úÐ,ö)/Ç;×�aJÿÖ'r¼ þÐ,ø)¼ üÐ, ÍŠ'1P½ ËÑ,×�ìØ'* ½ €Ñ,<½ „Ñ,ú)(3ÍŠ;Žº C¦ÏzTƒakìØ'¤P¾ ËÑ,×�×�+0·Ú'<AI¾ �Ñ,þ)H¾ †Ñ,ÍŠÍŠ¦Ï‹¦Ï“8î EO·Ú'½P¿ ‘Ñ,  îÇ!). Å™µ¼ ¿ ›Ñ,€*]»½ iÍŠqÍŠyµ¼ �Šî —¡˜ä'«PÀ ËÑ,×�×�+0ú£'<AIÀ  Ñ,‚*À �Ñ,µ¼ ÍŠÍŠ!¦Ï�¦Ï•:î GQú£'¿°Á ûv, Ù)xÁ �w,ç×�øÁ äv.,„*›†(Á óv,+Bç×�_ÁˆÁ ýw, èøÁ äw+,…*(Á õw,*IèSmallIndex::LIMITÁ¸Á Õx, Ù)€Á Ûx,é×�øÁ ½x0,†*›†(Á Íx,+Bé×�_Á€Á Ûy, êøÁ Ãy),‡*(Á Óy,*IêSmallIndex::SIZEÁ°Á Ÿ|,xÁ Ÿ|,ÏÎ(Á ¯|,%øÁ Ÿ|!,Á ¶|, º_×�Є›† Ú)Z(Á º|,©ë' PÁ ¶|,øÁ Ÿ|/,8Á Á|, Ç_›†Єú‰ Ç*~ Á É|,ùë' hÁ Á|,Á Ü|,ˆ*øÁ Ý{,ˆä˜Á ù{,(Á è{,ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw›†Є.Øçc�s™Ï΂—ë']çë'øÁ ä� ,ÈÁ ä�,„¨'(Á þ�,)øÁ Þ�', Ù)Á “‚,‰*øÁ š�y,›†(Á Æ�,(Á µ�,×�‰�?„¨'§±›¡É ÐÊ„¨'ÅéÁ ƒ‚,Ë Ù)Á „‚,Љ*Ë›†ÅÀ×�D0�ÛˆÁ ´ƒ,PÁ ´ƒ,¿Â(Á ¿ƒ,(øÃ ̓~,‡²ÝøÁ ´ƒ˜,0Á ƃ, Ò_›†ú‰qIøÁ ƃ†,Á Ú„,Š*øÁ ÿ‚Û,›†(Á œƒ,(Á ‹ƒ,ˆä̲ݧ�H¿ÂòÇñ'®0Á ¬†,×�ˆÁ ¬†,@Á ³†,¾ý4PÁ ³†,Á ˆ,‹*øÁ ô…W,(Á ”†,·Í(Á І,¦Ï‡>¾ý‹®´×�­ ´¯¾ýÞªÁ ¼†,°‹*«¥·Í ¦Ï"²Ú0Á �ˆ,×�xÁ �ˆ,0Á –ˆ, ï6@Á –ˆ,Á ¬ˆ,Œ*øÁ Û‡Q,Á ù‡,·Í(Á ï‡,¦Ï‰>Úõ'�°¶×�¯ ¶±Úõ'àªÁ �ˆ,°Œ*«¥·Í ¦Ï$²Ú0Á ö‰,×�xÁ ö‰,0Á ý‰,¼'4@Á ý‰,Á “Š,�*øÁ ‰Q,Á à‰,·Í(Á Ö‰,¦Ï‡>¼'‹®´×�­ ´¯¼'ÞªÁ „Š,°�*«¥·Í ¦Ï"²Ú0Á ß‹,×�xÁ ß‹,0Á æ‹, ñ6@Á æ‹,Á ü‹,Ž*øÁ «‹Q,Á É‹,·Í(Á ¿‹,¦Ï‰>âú'�°¶×�¯ ¶±âú'àªÁ í‹,°Ž*«¥·Í ¦Ï$²Ú0Á æŽ,×�ˆÁ æŽ,@Á íŽ,ª×4PÁ íŽ,Á …�,�*øÁ ´ŽQ,(Á ÎŽ,·Í(Á ÄŽ,¦Ï‡>ª×‹øÁ š’ ,ÈÁ š’, ó(Á ´’,+øÁ š’+,Á »’,—ë'N(Á ¿’,©ë' PÁ »’,øÁ š’9,8Á Æ’,çë'\ Á Î’,ùë' hÁ Æ’,Á á’,�*øÁ Ì‘•,ˆä˜Á ô‘,È«"(Á á‘,Ûì'ÁØçûöÆ JÀþ'—ë'ïçë'µ4ÁøÁ …–*,øÁ …–#, õ(Á ©–,,øÁ ÿ•1, Ù)Á ¾–,’*øÁ µ•‰,›†(Á ç•,È«"(Á Ô•,×�ŽöÆB‰�(­4Á0Á ý—,×� Á ý—,XÁ „˜, ÷6hÁ „˜,Á Ÿ˜,”*øÁ Æ—Y,È«"8Á ã—,·Í(Á Ù—,¦ÏŠ?ì‚(Ž4Á(Á …Ÿ,€Á …Ÿ,@Á ‹Ÿ,å¿.PÁ ‹Ÿ,°Á €Ÿ," ¸Á ÿž,Á ¤Ÿ,œ*øÁ Éž[,¬ô Á êž,ˆÆ'(Á Òž,›†(Á Ùž,Å·Íà§­7÷7må¿(Á Ó ,€Á Ó ,@Á Ù ,å¿.PÁ Ù ,°Á Π,. ØÁ É ,Á ò ,Ÿ*øÁ ‡ k,�È'0Á ° ,œÈ'HÁ ” ,›†(Á Ÿ ,Ò·ÍíÂÈ'µ¼Â?÷?uå¿(Á Ñ¢,€Á Ñ¢,@Á ×¢,å¿.PÁ ×¢,�Á Т, ÍÉ' Á Ì¢,O(Á ð¢,£*øÁ •¢[,¬ô Á ¶¢,šÊ'(Á ž¢,›†(Á ¥¢,ª·ÍÅ*÷*`å¿ÜÍÉ'³(Á Ĥ,€Á Ĥ,@Á ʤ,å¿.PÁ ʤ,�Á ä, ¹Ë' Á ¿¤,O(Á ã¤,¦*øÁ ø£k,�È'0Á ¡¤,…Ì'HÁ …¤,›†(Á �¤,ª·ÍÅ*÷*`å¿ܹË'³xÅ º±,Є †Є08(Å „±, Æ*Å ‰±,Ê*/ú‰;�ùCЄˆÁÍ'�\fƒ�(­(Æ ‹±, ˆ²ÝxÆ º±,Є#îÝPUÀ¼bgRtÆ �±,Ì*�­à›�ù£·á«²Ý³îÝ¡ ÁÍ'¬ÁÍ'´×œäî×�(îÝáÀ¼Ç ”±,Î*Ç ’±, �ù'1xÈ º±,ЄЄ+0 ù±ЄЄGLTÈ Ÿ±,Ñ*HÈ –±,�ù�ùÁÍ'–ÁÍ'ž8î EO°‘(ÈpÌ ¨·,Î… †Î…08(Ì ù¶, Ò*Ì þ¶,Ö*/üŠ;Ú‡CÎ…ˆ™Ó'�\fñ’(­(Í €·, ‰ ²ÝpÍ ¨·,Î…#îÝPUÀ¼bgRtÍ …·,Ø*�­à›Ú‡£·á«²Ý³îÝ¡ ™Ó'¬™Ó'´×œäîÅ•(îÝáÀ¼(Ó •¿,‰Œ †‰Œ08PÓ ¨¿,üŠ †üŠ09(Ó Ñ¾, Ù*‰ŒÓ Ö¾,Ó Õ¾,Eß*TÌ‹` Ì‹k‰Œî ‰ŒùüŠÄڇ̗¡¶–(&ó–(ð‰Œˆ(Ô Ø¾, вÝ(Ô •¿, ²Ý‰Œ+îÝPÔ ¨¿, ‹²Ý üŠ,  8 îÝ¡¦¤é³¸£¨qvÔÔ Ý¾,â*ï ­àûò—(·á ²Ý²ÝîÝ …˜(²ÝãîÝë Ú‡öÚ‡þ]œkv…˜(îÝj–›(îÝ8¤é•Á ÎÀ,@Á ÎÀ,Á ÑÀ, �Q‰Œ4(Á ÑÀ,¨Á ÂÀ,XÁ ÂÀ,ê“Q$Á õÀ,¨Á éÀ, Ù*‰ŒÁ ŒÁ,Á ‹Á,øÁ ˆÀ„,Á*øÁ ¸ÀT,Ì‹`Á ™À,‰ŒÁ �À,üŠÁ ¼À, …˜(%‰Œ¼ÛË6ì¨7‡™œ(F꓉Œ´ 8Á åÂ,‰ŒpÁ åÂ, Á íÂ,æË50Á íÂ,x�åÂ,  �%řǙș­É™Ê™àË™óG*¤�R{9 ÅQ‰Œ˜qvÁ åÂ,šxÁ åÂ,m‡ (@Á ‘Ä, üŠxÁ ‘Ä, Á šÄ, ÆQüŠ ;  0Á šÄ,‚óÂ, �%řǙș­É™Ê™àË™óG*¤�R{9 ›†‡ (ü¶Úü¶m“ÀÁ ‘Ä,0Á ¡Ä, øW›† Ú @Á ¡Ä, Á ÅÄ, PÁ ÀÄ,  €Á »Ä, Å™ ¢( Á ÙÄ,Á ØÄ, øÁ ™ÂÀ,Å*øÁ ÚÂÿ,LSZÞøÁ ˆÄQ, Û¡(ÀÁ ¯Â, Ì‹HÁ ¡Â,‡ ( Á ÞÂ,ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ü¶‡ (Ÿ(L“ço‡ (–›†Á ŒÄ,€ªk üŠ‘ ¢(‚‡ (œÌ›ÌÆ oÚü¶ŽˆCmsæË?(Ç£¡(ìÕ¡(ÕÜ¢(A‡ (¶°Õ ûv, î)xÕ �w,ç×�øÕ äv.,ä*Ç(Õ óv,+Bç×�_ÁˆÕ ýw, èøÕ äw+,å*(Õ õw,*IèSmallIndex::LIMITÁ¸Õ Õx, î)€Õ Ûx,é×�øÕ ½x0,æ*Ç(Õ Íx,+Bé×�_Á€Õ Ûy, êøÕ Ãy),ç*(Õ Óy,*IêSmallIndex::SIZEÁ°Õ Ÿ|,xÕ Ÿ|,ÏÎ(Õ ¯|,%øÕ Ÿ|!,Õ ¶|, º_×�ЄÇ ï)Z(Õ º|,¼«( PÕ ¶|,øÕ Ÿ|/,8Õ Á|, Ç_ÇЄ»� §+~ Õ É|,Œ¬( hÕ Á|,Õ Ü|,è*øÕ Ý{,ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÇ»�˜Õ ù{,(Õ è{,ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÇЄ�Øç¶�sìÏÎÕª«(°ú«(gøÕ ä� ,ÈÕ ä�,„¨'(Õ þ�,)øÕ Þ�', î)Õ “‚,é*øÕ š�y,Ç(Õ Æ�,(Õ µ�,×�‰�?„¨'§±›¡É ÐÊ„¨'ÅéÕ ƒ‚,Ë î)Õ „‚,Ðé*ËÇÅÀ×�D0�ÛˆÕ ´ƒ,PÕ ´ƒ, è*(Õ ¿ƒ,*ø× ̓~,Œ²ÝøÕ ´ƒ˜,0Õ Æƒ, Ò_Ç»�sIøÕ ƃ†,Õ Ú„,ê*øÕ ÿ‚Û,Ç(Õ œƒ,(Õ ‹ƒ,׬(βݧ�Há±(ô¯²(®0Õ ¬†,×�ˆÕ ¬†,@Õ ³†,¾ý4PÕ ³†,Õ Ë†,ë*øÕ ô…W,(Õ ”†,ÍŠ(Õ Š†,¦Ï‡>¾ý‹®´×�­ ´¯¾ýÞªÕ ¼†,°ë*«¥ÍŠ ¦Ï"²Ú0Õ �ˆ,×�xÕ �ˆ,0Õ –ˆ,Úõ'4@Õ –ˆ,Õ ¬ˆ,ì*øÕ Û‡Q,Õ ù‡,ÍŠ(Õ ï‡,¦Ï‡>Úõ'‹®´×�­ ´¯Úõ'ÞªÕ �ˆ,°ì*«¥ÍŠ ¦Ï"²Ú0Õ ö‰,×�xÕ ö‰,0Õ ý‰,¼'4@Õ ý‰,Õ “Š,í*øÕ ‰Q,Õ à‰,ÍŠ(Õ Ö‰,¦Ï‡>¼'‹®´×�­ ´¯¼'ÞªÕ „Š,°í*«¥ÍŠ ¦Ï"²Ú0Õ ß‹,×�xÕ ß‹,0Õ æ‹,âú'4@Õ æ‹,Õ ü‹,î*øÕ «‹Q,Õ É‹,ÍŠ(Õ ¿‹,¦Ï‡>âú'‹®´×�­ ´¯âú'ÞªÕ í‹,°î*«¥ÍŠ ¦Ï"²Ú0Õ æŽ,×�ˆÕ æŽ,@Õ íŽ,ª×4PÕ íŽ,Õ …�,ï*øÕ ´ŽQ,(Õ ÎŽ,ÍŠ(Õ ÄŽ,¦Ï‡>ª×‹øÕ š’ ,ÈÕ š’,Àþ'(Õ ´’,)øÕ š’+,Õ »’,ª«(L(Õ ¿’,¼«( PÕ »’,øÕ š’9,8Õ Æ’,ú«(\ Õ Î’,Œ¬( hÕ Æ’,Õ á’,ð*øÕ Ì‘•,׬(˜Õ ô‘,È«"(Õ á‘,Á­(ÁØçùöÆ JÀþ'ª«(ïú«(µ4ÁøÕ …–*,øÕ …–#,‰�((Õ ©–,*øÕ ÿ•1, î)Õ ¾–,ò*øÕ µ•‰,Ç(Õ ç•,È«"(Õ Ô•,×�ŒöÆB‰�(«4Á0Õ ý—,×� Õ ý—,XÕ „˜,ì‚(4hÕ „˜,Õ Ÿ˜,ô*øÕ Æ—Y,È«"8Õ ã—,ÍŠ(Õ Ù—,¦Ïˆ?ì‚(Œ4Á(Õ …Ÿ,€Õ …Ÿ,@Õ ‹Ÿ, ë*0PÕ ‹Ÿ,°Õ €Ÿ," ¸Õ ÿž,Õ ¤Ÿ,ü*øÕ Éž[,¬ô Õ êž,ˆÆ'(Õ Òž,Ç(Õ Ùž,ÇÍŠâ§­7÷7mŠÅ((Õ Ó ,€Õ Ó ,@Õ Ù ,ŠÅ(.PÕ Ù ,°Õ Π,. ØÕ É ,Õ ò ,ÿ*øÕ ‡ k,�È'0Õ ° ,œÈ'HÕ ” ,Ç(Õ Ÿ ,ÒÍŠíÂÈ'µ¼Â?÷?uŠÅ((Õ Ñ¢,€Õ Ñ¢,@Õ ×¢,ŠÅ(.PÕ ×¢,�Õ Ð¢, ÍÉ' Õ Ì¢,O(Õ ð¢,ƒ+øÕ •¢[,¬ô Õ ¶¢,šÊ'(Õ ž¢,Ç(Õ ¥¢,ªÍŠÅ*÷*`ŠÅ(ÜÍÉ'³(Õ Ä¤,€Õ Ĥ,@Õ Ê¤,ŠÅ(.PÕ Ê¤,�Õ Ã¤, ¹Ë' Õ ¿¤,O(Õ ã¤,†+øÕ ø£k,�È'0Õ ¡¤,…Ì'HÕ …¤,Ç(Õ �¤,ªÍŠÅ*÷*`ŠÅ(ܹË'³xÙ º±,Єƒ�(*2(Ù „±, ¦+Ù ‰±,ª+/»�; »�FЄ…ÁÍ'�_iƒ�(ª(Ú ‹±, � ²ÝxÚ º±,Є#îÝPUÀ¼bgRtÚ �±,¬+�­à›¶Î(£·á«²Ý³îÝ¡×�(©ÁÍ'±Ôœáë×�(îÝÞÀ¼þÛ ”±,®+Û ’±, ¶Î('1xÜ º±,ЄЄ+0°‘(<AIÜ Ÿ±,±+HÜ –±,¶Î(¶Î(ÁÍ'‹ÁÍ'“8î EO°‘(½pà ¨·,Î…ñ’(*2(à ù¶, ²+à þ¶,¶+/½Ž; ½ŽFÎ……™Ó'�_iñ’(ª(á €·, Ž ²Ýpá ¨·,Î…#îÝPUÀ¼bgRtá …·,¸+�­à›’Ô(£·á«²Ý³îݡŕ(©™Ó'±ÔœáëÅ•(îÝÞÀ¼þ(ç •¿,‰Œ¶–(*2Pç ¨¿,½Ž †½Ž09(ç Ѿ, ¹+‰Œç Ö¾,ç Õ¾,E¿+T��` ��k‰Œè…˜(ð½ŽÁ’Ô(É”ž¶–(´×(퉌…(è Ø¾, �²Ý(è •¿, ²Ý‰Œ+îÝPè ¨¿, ‹²Ý ½Ž,  8 îÝ¡¦¤é³¸£¨qvÔè ݾ,Â+ï ­àû³Ø(·á ²Ý²ÝîÝ …˜(²ÝãîÝë ’Ô(ö’Ô(þ]œkv…˜(îÝjÔÛ(îÝ8¤é•Õ ÎÀ,@Õ ÎÀ,Õ ÑÀ,™œ(.(Õ ÑÀ,¨Õ ÂÀ,XÕ ÂÀ, ö*M&Õ õÀ,¨Õ éÀ, ¹+‰ŒÕ ŒÁ,Õ ‹Á,øÕ ˆÀ„,¡+øÕ ¸ÀT,��`Õ ™À,‰ŒÕ �À,½ŽÕ ¼À,…˜(!‰Œ¼ÛË6ì¨7‡™œ(B‡Ý(‰Œ´ 8Õ åÂ,‰ŒpÕ åÂ, Õ íÂ,æË50Õ íÂ,x‹åÂ, ¼Ÿ(E#Õ åÂ,GxÕ åÂ,m‡ (@Õ ‘Ä, ½ŽxÕ ‘Ä, Õ šÄ, ÆQ½Ž ;  0Õ šÄ,ÅŒóÂ, �%řǙș­É™Ê™àË™óG*¤�R{9 LJ (ü¶Úü¶m?ÀÕ ‘Ä,0Õ ¡Ä, øWÇ Ù @Õ ¡Ä, Õ ÅÄ, PÕ ÀÄ,  €Õ »Ä, Å™†â( Õ ÙÄ,Õ ØÄ, øÕ ™ÂÀ,¥+øÕ ÚÂÿ,LSZÝøÕ ˆÄQ, Áá(ÀÕ ¯Â, ��HÕ ¡Â,‡ ( Õ ÞÂ,ì¤(oŸ(§“çÊ¿‡ (DÇÕ ŒÄ,Šö ½Ž?†â(1‡ (K{›{Æ Úü¶Ž®ˆCm"æËJ¼Ÿ("Šá(š»á(0Ââ(ð‡ (eäÁÖ,´ÁÖ, Á*$ØÖ,*ãÖ,ŸüËÕ˜,Ù*Ù*¨Û*ÛËÙÜ*ì¨Ùÿƒ¡/eƒ Êæ(¼èÕ,Êæ($ßÕ, oÄæ(¼ÔÛ×,¤Û×, ¡+Êæ($ð×,)û×, üéÖ’,¹+¹+�®»+ÛËÙ¼+ì¨ÙNüŸ[-ð¢Êæ(¬„×,Êæ($ûÖ, o�è(»¸é í!»Ô ë×)1�é Š"Ø¥ç )1(é Æ! Ã+é Ë!Ç+0ö�<ÈÓ D»Ô ¸íÛÀØ¥’Õ� šmwë×íç ½(ê Í! ²Ý¸ê í! � ²Ý»Ô +îÝ�ê Š" ‘²Ý Ø¥+  7 îÝž£¤é°µ¢§puÑê Ò!É+ë ­à÷ÈÓ ÿ·á²Ý²ÝîÝ íÛ²ÝàîÝèß° ðÕ� øUœcníÛîÝdß° îÝ2¤é�256Áˆë Ì<†‘&+ †�ï(=E(ë Ÿ< Ê+ë ¤<Î+-Å�9‡ÐA�ï(“ �ï(ž]gŸï(»256ÁŒÉK\ÉKžª $ÕK ÜÀK$ .I�ï(áK¹üŠKW†‘,°K‡Ð,œK$£KÀ¡!—»&Ržª ñ256Á0Á1Á2Á3Á4Á5Á(ô ªfô ¯fä+&†‘2°´ :CM (ö ·f,3;’²Ýö »fV^“²Ý#u}”²ÝB”œ•²Ýa³»–²Ý€ÒÚ— ²ÝŸóø·Á   ö ¼fç+/­à<°´ E·áN²ÝW_iœw‚·Á �÷ Àfé+÷ ¾f°´  *Hø Âfø Ëfì+>CIT°´ \°´ dkr{î ˆ”§–¬§¢ª,áw\áw òwÄüÑv¡ïv°´ ,åv†‘_f=dèy,íy Ä$èy<íyÌÜy\Üyžª @ûyÅü«yP,Ìy°´ ,Ây�4ëú(žžª zŒ€-|€- ÷Ý’”ÿ-üå--|å- Õµ“Dõ-3+”-Òü“�-ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÒˆØÙ ¼Ç-§òD´- Ý’ÍÝ’ø¨  —œü(Ðü(뤤-”¤- ÷dË-Ô¾-,Å- ï4¾-/œÅ-¹ù ¾ ©ù ¾ �‡|‚-$‹-¨‰D‚-4‹-x¨‚-  ‘Pâ‰D$) ø¨ùW-D  SXìî d mr  ~  Ú ý- àÂŒ$œ-<¦-|¦-,®-�ð% <®-$Ø-DÕ- ÀœÒˆØÙ ß-^T¼-4¾-û� ¼- D¾-ü¦!-,¶-˜ñ¬D Œ¶-ø©¦"-  �%ÔøI%*6ü¦"-m–‡üœ--$¡-€ Z7ü¡(-ªÇ-[ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÏïØÙ þt �%�ý( „)Š" É- Þ-Ì=+üŸÀ-Õ ü’Í-üÞ�-29@��ý(¼ô-§òDÊ-÷ý(4Þ-³Ü\–- ³Ü;ÒˆDâ-≿â‰ñâ‰ÑõöÚÃ÷ã´ÂŒZµ¯RÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ „)–‡ÊÔø°ùŸ²ù¨ÒâÁ²ÝMp „)y–‡ÊÒˆ¸¨ 8É<Ö@¡¯/�ð ¦b Æ äŽ8Çþ(Ö÷þ(­�‡…¨‰fõÿ(DìîK�ð€û�˜ñø‹ƒ)Ò€ w„…)à²ù½²ùÄÒˆ©²ùÒÒˆ·(ú ½"-ú Â"-û+&+17Ý’D÷ý(LU_(ü Ê"- þ+ÔÎ °ü ê"-îÝ€ü †#-   îÝÐü œ#-   îÝPü ¼#- îݘü Ì#-îÝ€ü å#-îݸü û#-îÝhü ˜$-îÝPü «$-îÝxü »$- îÝXü Ð$-  îÝÀ îÝ    ïü�ú²Ý$¼ú8>ÓúLRX^gü Ï"-þ+‚ˆ� ­à�÷ý(¦·á¯ÔÎ ¸�úÁ»Ô Ê½Ô ÓîÝÁ÷ýÊîÝ®÷ý·îÝ›÷ý¤î݈÷ý‘îÝu’ª ~îÝa÷ýjîÝN÷ýWîÝ;÷ýDîÝ(÷ý1îÝø¶ îÝÄý  ÷ý²Ý«¼ú´¾œÌƒ Ú‘æï ÷ýîÝâ÷ýîÝÇ÷ýîݬ÷ýîÝ‘’ª îÝv÷ýîÝZ÷ýîÝ?÷ýîÝ$÷ýîÝ ø¶ îÝîÄý îÝÒÓúh4=˜ ²ÝK4=™²ÝK4=š²ÝK4 =޲ÝK 3 <› ²ÝJ  3 <œ²ÝJ  3<�²ÝJ3<Ó²ÝJ3<ž ²ÝJ2;Ÿ²ÝIæ ²Ý Ù ²Ý  .þ+?ÔÎ LÖÎ U²Ý²Ý'²Ý ²Ý²Ýø²Ý²Ýå²Ýî²ÝѲÝڲݾ²ÝDzݫ²Ý´²Ý˜²Ý¡²Ý…²Ý޲Ýq²Ýz0Á(ý É ¡²Ý�ý µ ¢²Ý¥õ9îÝ`ý � £²Ý ø”+  7 îÝ­²¤é¿Ä°µpuàý Έ,ú ­à Á”·á²Ý$²ÝîÝ ëš))²ÝèîÝð ŸÀ%ûŸÀ%pœ~‰æœ)îÝ~‚�)îÝ>¤é¨(þ ˜ ¤²Ý�þ û% ¥²Ý²Ý+7îÝch¹§uzfkŒþ �Œ,¦­à² ‰•½·áŲÝͲݼîÝÄ…ÁÌá³Ôöœ…Áîݹ§#(� û/ ¦²Ý � Ÿ0�–"îÝNSÀ¼`eQr� €0‘,Œ­à˜ Ö•£·á«²Ý³îÝ¢  �–°Ï¡)¸ÚœçñÍ¡)îÝåÀ¼ (‚ À0  4ˆ‚ ¢4=µ¢ »��‚ µ4>µ¢ ²Ýu ?}§²ÝO @WU²Ýc A=îÝW B_¥²Ýl D>x CDîÝã è ¤éõ?ú@ÄAÉB±C¶ ˜‚ é35¦¡ú‰�‚ þ36¦¡²ÝV 7_¨ ²ÝQ 8YU²Ýe 95îÝY :a¥²Ýn <6z ;<îÝÆ ̤éÚ7à8Ê9Ï:·;¼ ý�‚ Ã30›¶²Ý 1)©²Ý42<¥²ÝI40U34îÝkq¹§1…2ˆ3� ˜°‚ �3+þµ²Ý»,Ī ²Ý4-<«²ÝI/+U./îÝ ¹§, -ˆ.� 3€‚ Ø2#Õµp‚ ê2$Õµq%z¬²ÝO&W­ ²Ýd'#îÝY(a®²Ýn*$z)*îÝâè¤éö%ü&É'Î(·)¼ h‚ £2®µP‚ ²2®µW`¯²ÝOW«²ÝdîÝY a°²Ýn"z!"îÝÈΤéÜâÉÎ ·!¼ ÿh‚ ñ1‚µP‚ €2‚µ=F±²ÝOW«²ÝdîÝYa°²ÝnzîÝ®´¤éÂÈÉη¼ å�‚ Å1崲ݲ ²Ý4<¥²ÝIUîÝSY¹§gmˆ� €�‚ œ1 Æ´²Ý£ ¬³²Ý4 <¥²ÝI  U  îÝîô¹§  ˆ � ˆ‚ ò0®´²Ý>G´²Ý4<²ÝHTîÝˆŽ¹§œ¢‡Œ µ‚ Å0­, ÐÖÝäëòùE­à#Ï¡),·á5=á³%²ÝO²Ý7îÝ@…ÁIá³í²Ý|²ÝÿîÝ…Áá³µ²Ý©²ÝÇîÝÐ…ÁÙø¶ Èø¶ µ²Ýß²ÝãîÝì²ÝÙîÝâö¶ ëø¶ öø¶ ã²Ý' ²ÝîݲÝîÝö¶ óŠ$óвÝo ²Ý?îÝH²Ý5îÝ> –Gᳲݮ ²ÝîÝ"…Á+á³Ï²ÝÛ ²ÝáîÝê…Áó�ùãá³Ï²Ý ²ÝþîÝ ²ÝóîÝü…Á ¶Î( á³ø ²ÝY ²Ý' îÝ0 ²Ý îÝ% …Á. � œž ‡³Œ‡³4 ‡³Ü‡³ÏÀ¼ À‡³ÏÀ¼ À‡³Ï#À¼ À$‡³„+‡³, 0‡³ 5À¼  6‡³ =À¼  >l ¶Î(îÝ? …ÁîÝ, ¤é‹ �ùîÝy …ÁîÝf ¤é¦ …ÁîÝ­ ¹§· …ÁîÝ# ¹§È óŠîÝ™ –î݇¤éã ø¶ îÝÎö¶ îݼ¤éþ ø¶ îÝö¶ îÝñ¤é …ÁîÝ8¹§* …ÁîÝ®¹§; …ÁîÝ$¹§L |¸² ‡*«)4;?‡*PatternID::SIZEÁl¸Â ç*²)4;?ç* StateID::SIZEÁ2Á4Á16ÁH¯ «-„K„KK‡Kí ä7ˆKÞüä7‰K«ä7ƒ¢3à6ú�Èš�þbg †“½)y�(¯ å, ¯,¯ ê,³,-½™9©ï A“½)Ï “½)Ú]gí½)÷° î,µ,° ì, ©ï &0H± «-“½) üh“½)ù 3 ± ð,D± ô,·,&1©ï 9Žº AÔ¾)�Rƒ_iù¿)«H² «-“½)“½)*/ ù±“½)“½)FKS² ÿ,»,H² ö,©ï ©ï Ô¾)“Ô¾)›7î DNÁÁ)ÅP³ �-  î½™ (- Å™µ¼ ³ ‹-½,[»½ g©ï o©ï wµ¼ ˆî •ŸíÂ)©H´ «-“½)“½)*/ )AFN´ �-¿,´ �-µ¼ ©ï ©ï  Ô¾)�Ô¾)˜9î FPÇÄ)Â8µ ­@̹ †̹/7(µ ú? À,µ ÿ?Ä,-Þš9Êþ A̹… ̹�]g‚Æ)­(¶ �@ µ²Ý8¶ ­@̹"îÝNSÀ¼`eQr¶ †@Æ,Œ­à˜Êþ  ·á¨²Ý°îÝŸ éÆ)ªéÆ)²ÔœáëÔÈ)îÝßÀ¼þ8¸ ¡F̹‚Æ))1(¸ óE Ç,¸ øEË,-£›9 £›D̹‚éÆ)Š]g‚Æ)§h¹ ¦S̹‚Æ))1й ¹SÇü†)2(¹ öR Ì,¹ ûR¹ úR>Ð,Mè›Y è›d̹ÙéÆ)ádz͊»�—‚Æ)ü†ß̹„ü¦J8.\¦J. ‰éìòè$²J. ,¸J.T¿J.dËJ.$ÙJ.MàJ.ƒü¾H¢.ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwŶ$Û†ì¸I.œ¬,çH.éìTþH.d‘I.òè$ªI.–`) init_valueÁ6 match_offsetÁFÈIÝŠÍ)LüãL9.\ãL.ŠÍ),ïL. ,öL.TýL.d‰M.$—M.CžM.†üûJ£.ìÍ)ìõK.œ¬,¤K.éìT»K.dÎK.òè$çK.–`)�Î)-˜Î)2È5vŠÍ)Û.ü‰`´.. .¤Œ`.d’`.¤¦,Œ`.$t’`.'üŒ`".\¡`.ù† K$l¡`.(dÝ`. üÆ`$.„Ì`.ð‡ ,Æ`. - $ôÌ`./ Tþ`..  „ù`. Å™éì üÃ`r.$§a. Å™éì%üÀ`v. ÀœŶ$Û† Ú!Tòb..  l’c.,˜c.¥• ,’c.*#<˜c.,¬c.dÃc.ü¬c$.„²c.ð‡ 4+ #ô²c.- ,Âi.- \½i., Å™éì-|ºi. ÀœŶ$Û†, Êi.")<Þc. ,çe.,÷e.l÷e.,ýe.àÞ %#<ýe.ä÷e.\…f.æ¹< ‘f.#t…f.ü÷e%.4”f.ªºS#D”f.üçe6.Líe.ÝóÁC+#üíe0.,¼f.,Ðf.\Ðf.Öf.äè %#,Öf.ÔÐf.\Üf.ôß < èf.#tÜf.;üÊf .Ú«g.àü¼fŠ.<Âf. çáüÊf{.,#üÂf„.$�g. Å™éìDŒg. ÀœŶ$Û†Ú $àg."4åg.$dàg.# $3Õë"?#'!#0hªàg.  �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwřǙș­É™Ê™àË™óG*¤�R{9 éìÛ†!î #ÀÅ% Ñ%làg.' m•Ü)('œÚg.(«ìg.& [´Û5" �%ìÍ)´Û&8-#ZL§h.*'àÚÜ)éìl²h.+'àÚÜ),×h. $Žh.) Å™éìD‹h. ÀœŶ$Û†) ´i. S *äúh.+ü¥c�. { *@#¼ !$Í')Ëi.é $ú)ü M«."(."&:%K.%(( š³ò ‰ „üâbé.ü‚cÉ.„¦g. Wü¡h„./ìÍ)ì¦N.<ºM.œ¬,ÍM.éìTäM.„÷M.òèD”N.Õ� \Ø¥eŶ$vùéìÌéìLæb.Ù¤L†c.蜬 ­º¬aæØÚ,[œ¬t½ØÚ€¯œ¬È$ýf.Ŷ$îEÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^´Û•Ü)¹ÆÛ)ùã÷¤Ú  œ¬"Ì´ÛÕ•Ü)$üg.Ŷ$\é천Ŷ$ëéì¿ ­Hå–`é�Î)î˜Î)ôÈø� –`Ä’„Æ ‘&ŽÔ' new_valueÁk* new_match_endÁf+n¤¦à ù† • ð‡ U ¥• d ð‡ & òè§àÞ læ¹LªºÝóõäè ±ôß ‘öÙ)ÕëŠÀÛ)ZòÝ)aéìËéìûòè éì òè éì éì lÜ2/ï2/Åü·28/,Ì2/²�$Ã2/ -äÎtÎ ÓÝDá(ðÉü…kØÚl¶šå‡D¢n1Áý�H¿é)’�¿ Ô&å‡P¿ ì&Åž †Åž/7�¿ ü&Ø¥ç )1p¿ ”'  (¿ ±& Ñ,¿ ¶&Ù,8 Ù¤Dœ¬Lå‡  å‡Åžü«ˆØ¥ÑÕ� Ù©÷ý±™£ †å‡i“ë)Mç ¹ø 錜+4¥+ ¥·žÈšDœ+D¥+tý+üç+& Ú, õ+d¥, §-ü·+¢ Ñ,,É,ß,Ùü�(Ïü�+ÒÙ¤LÈ( ·žD´(å‡D‘+Åž¸ÍØ¥œý�.ý�2kçí)0•Š$­Iœ­ID²I á�0$»It²I$ÊIÔIÛüèHlÙ¤L™IÙ¤DƒIÃð)$�I‚º¬›$Åœ(U»ð)µ$ØS¬ØSLÝS ãŽ0,çS„ÝS$÷S�TÝü‰SxÙ¤LÄSÙ¤D­S”ò),·S‚º¬›$Ùœ(UŒò)µ$�z¼�zd†zí§&$“z”†z$¢z¬zßüÀylÙ¤LíyÙ¤DÐyØ¥$Úyxº¬‘$¾»(Uí§«$�Œ´�Œd¢Œ é-¯ŒŒ¢Œ$½ŒÇŒàüá‹fÙ¤L‰ŒÙ¤Dñ‹û‹„º¬ž$ê(V§õ)¶ \›“$ “ «Ãð)Åž$›“4 “DÅ“lѓ凜ѓüÅ“Tø“D†” Ć”d�”©˜' , œ” |�”üø“& „¡•Åž¸• ­ç”lù”凜ù”˜­ù”ù­Ž"` \ «ˆ ­º”  ©fÅžŽ'f óŠ­Ö”  §f—&“ Šà¦®¶ *ÏÝâ ‹g* ù ñ@`á ñ`�ú ùà Ž"` )áüÓ’åü�“¨qx…“º¬Lò’Ãð)$ý’Åž$”“ÄãQ¿Ÿ¼¿ë� ««ˆóŠú«ˆIóŠ4Šà+Šà ŠàÕ”û)F óý)Rå‡Ëå‡Ó«ˆkóŠtîÅœñÅœôÇ¥ DZ^êö)E•Šð©˜'œ•Šú“ú)¸Òú)€Âû)ï�úÐ,࡜à¡\æ¡ ›$”ò)1læ¡1ÌÚ¡Ú Ç£   †£ê¦óŠ„Œ£\Ž£æ¹ Œ£ š£ tŽ£ “¢ħóŠ ™¢ÌŒ£4�£ªº œD�£,í£ Œí£Ló£ œ$”ò) 1 \ó£1  ¼ç£  $…¥|…¥DŠ¥³þ ) TŠ¥ ܤ ê¦óŠ â¤  ž¤ ħ󊄤¤\¦¤æ¹ ¤¤ ²¤ t¦¤̤¤4µ¤ªº[ Dµ¤¬…¥ ,ĥ˥ œ½¥ Ú,ü¯¥"D´¥ áÅž$¯¥Dì´¥ ץإü¹žŸgýã)üΡŠÄ‚¢üõ¢0üÝ£ûü�¤0Äˤõžº¬Láž”ò),ìž,Ò¡œþžþŸþħ þó¡þ¢þꦣþó¤þ¥þ¿³n¦»�€'�óŠ� ”ò)ªœ‚¢¹-ØÚ ᣒˆ*aÿˆ*{œ�¤®ØÚ�å‡1œ¬LðÅž;4óŠ7óŠ@óŠÛóŠäSÙœW‚[Ÿ“Ÿ ’Ù ŸlŸ¹/ ýÿ)Èæ¹ªº¡ë‚*o³þ æ¹…ªºH•Š'£†*Û”ò)§”ò)®$á«|á«Dæ«”�)Tæ«üÑ«! Ú,üë0DÈ«£†*$ëAüÈ«+ú«æü�«k¸«º¬L «,««sÅžœÅžËœ¬å5‚8f”�ý£†*»$õ±|õ±Dú±”�)Tú±üç± Ú,üÙ±.DÞ±£†*$Ù±AüÞ±)޲çü©±e৪L¸±ñsÅžœÅžËœ¬å5’8f”�ý£†*»¤ù¶Ø¥”·èüÀ¶T¬LÔ¶Ø¥$ß¶¾»Iœ˜»²»éüäºN�»º¬Løºƒ»êFlû½å‡޾êüν@å‡D轜¬,Þ½ 1|µÃDºÃ”�$µÃTºÃ¬µÃÐÃëüŽÃB,¥Ãœ¬,›ÃÅžv8”�“|˜ÈD�È”�$˜ÈT�Èœ˜È±ÈìüóÇ>,ˆÈœ¬,þÇÅžv8”�“LˆÍÅž—ÍíüßÌ8Åž$ùÌœ¬,ïÌ 1|çÑDìÑ”�$çÑTìÑ*¼çÑ,÷Ñ üQ<÷Ñ„ÒîüµÑO… dÐÑœ¬,ÆÑ«ˆ›Åž£A”�À —*ŽlâÖØ¥õÖïü±ÖDØ¥DÏÖœ¬,ÅÖ 1l³ÙÆÙðü†Ù@$¤Ùœ¬,šÙ /|‹ÞD�Þ”�$‹ÞT�Þ¬‹Þ|£ÞD¨Þ”�$£ÞT¨Þœ£Þü‹Þ+¼ÞñüãÝY$üÝœ¬,òݜŞÎlÅžž*M”�ú”�Á|æäDëä³þ $æäTëäüÔä*ŒÔä ðF4÷ä*„åòü”äp$Å䜬,¬ä4³äå‡�Ñ !N³þ ÇÜ*¡¤ éT é Ù·žD«é+ºéúüðèJÙ¤LŒé´ï)Døèý�3ñ�*�(Ä ƒðÄ ˆðß,(-Åž:«ˆBKUÆ ’ðâ,Æ �𠫈'1€Ç íð ühù 2 Ç ”ðDpÇ ²ñÈ *)@6Ç ˜ðä,cn«ˆvŽº ~¼óŠÄ󊃞ƒ«µÈ *öÈ *³€È íð'8pÈ ²ñ'8@HUÈ £ðè,HÈ šð«ˆ«ˆßæí­´Jî Wa,Ãò”·ò\·ò ®… Åž4*Ïòüü‰òF… d ò«ˆ,–òÅž{9ú¤*†TØóDæó´Øóôóýü¯óE$Éó«ˆ,¿óqd=D®õTÆõü®õ#t·õÁ¹B3Ô·õ×õþü‰õN,žõ«ˆ,”õ�‚>Á¹‰|Ð÷DÕ÷ ý$Ð÷TÕ÷.Tã÷¤ã÷D…ø”û÷üÏ÷> !“øÿü—÷|$À÷«ˆ,§÷4®÷»Ö¦1Ñ 4aä¨*DTËùœËù ,DåùŒåù ,ü½ù; Ú,þù€ü‡ùw Åž$®ù«ˆ,•ù4œùêÆ£ú±ÌÆ£ÀCÑ Fu,­ül­ü,³ü —*(<³ü|¬ü ‘ýÈš… $¨üP/Áü…ü÷ûJå‡,—üå‡,€üÅž,‡ü… ¢«ˆ»'÷)Y —*Ô¾®*±,ÇýlÇý,Íý —*(<Íý|Æý ª#Èš… $ÂýO.Ûý‡ü�ýZÆ·"L©ýÆ·"LŽýÅž,™ý… ¡«ˆº'÷)Y —*Ó´°*°,äþläþ,êþ —*(<êþ|ãþ ‘ý… $ßþN-øþŠü¯þI²Ý$Ïþ²Ý,¸þÅž,¿þ…  «ˆ¹'÷)Y —*Ò©²*¯\îÿL€€üàÿ+ Ú,‘€Œü±ÿ`Åž$Ñÿ… ,¹ÿznÙœAT‡�D˜�üø€* ¶ý¨�ŽüÊ€^… dá€Åž$Ò€~rÅœAT›‚\©‚Ì›‚D¸‚LÄ‚¬¸‚ü›‚2 !Ó‚�üæ�m$Œ‚«ˆ,ì�¬Ó',ó�Éøë»®9Ùœ<jT½ƒT˃ĽƒDÙƒD僤كü½ƒ0 !óƒ’ü‘ƒb$®ƒ¬Ó',—ƒ«ˆ$žƒÉøë»®9Åœ<j(Ë ¾‰Ë Éî,(-3ö @–ìHQ[(Í Ë‰ · ²Ý�Í ›Š ³²Ý›†,îÝhÍ Ê‹ o²Ý *  6 îÝ ¥¤é²·¢§otÓÍ Ð‰ñ,î ­àú–ì·á ²Ý²ÝîÝ ·Í²ÝáîÝé –ñóŠùYœgr·ÍîÝf –îÝ3¤é‘Î Ô‰ó,Î Ò‰ –ì$-7�Ï ›Š›† üh›†ù 4 Ï Ö‰FhÏ Ê‹È *)@6Ï Ú‰õ,cn–ìvŽº ~¾·ÍÆóŠƒžƒ«µ¤À*øÈ *³�Ð ›Š›†›†+0Äœ <AIPhÐ Ê‹'8@HUÐ å‰ù,HР܉–ì–ì÷·Íÿ·Í°·Mî ZdÄœ @ì‰� é,¬�”üÄŒhö LõŒ›†<ÏŒ4ãŒîNÑ I¼‘�t‘�¿Â< �"ü‘� 4©� Ó_›†ú‰KD©�ü‚�8t‚�¡þL4³�(À�•üÀ�€ö Lî�<Ì�4Ü�›†¥ˆäÖîN'Ñ *Y¿Â˜Æ*ß¡þ±dŸ“›†±“–üò’?›†L‹“–ì,�“ 1\̕ݕ—ü¤•9,¼•–ì,²• 0(Ñ ØšÑ Ýšÿ,(-3‹¢@€ÿHQ[(Ó åš Â²Ý�Ó ±› ³²Ý›†,îÝPÓ ì› ¸²Ý Åž,  8 îÝ¢§¤é´¹¤©qvÕÓ êš‚-ð ­àü€ÿ·á ²Ý²ÝîݷͲÝãîÝë «ˆö«ˆþ^œlw·ÍîÝk÷Ì*îÝ8¤é–Ô îš„-Ô ìš €ÿ$-7�Õ ±››†¤À** Õ ðš<PÕ ì›Åž ühÅžù 4KAÕ ôš†-ny€ÿ�Žº ‰¿·ÍÇ«ˆŽ©ƒ¶À¤À*ù“Ï*¾�Ö ±››†›†+0Äœ <AIPPÖ ì›ÅžÅž+0 ù±ÅžÅžGLTYanÖ ÿšŠ-HÖ öš€ÿ€ÿ·Í·Í"«ˆÌ«ˆÔQî ^hÄœ ]ÍÑ*\¿¢$Ä¢ «�Åž$¿¢4Ä¢TÜ¢Dꢴܢ¼“£ ú,°£ùÚ Ž"`ù±Ž"`²� ¤ô¢¹²Ý2ùÙ ñ@`áÙ ñ`�úU#™üä¡Ìü®¢‚ ‹¢,ž¢›†<þ¡ÁÓ*$’¢Åž$²¢ú'Œë� ÍîNGÅœJÅœM’»Ó*¬²�  �úÚĪ« +|ª« Š*<º«M$Ä« üŸ«*TŸ« ™ÁÓ*•H-Ï«üتw Ϋ›7‹¢,�«<óªÁÓ*$ƒ«›†ÁÓ*ÐeîN/Åœ2”¨×*Tø×*åÁÓ*žd¿®›†Ñ®�ü’®?›†L«®€ÿ,¡® 1\�°$†° ¡$�°4†°Œ�°˜°žüÚ¯>,ñ¯€ÿ,ç¯Åžx8×Ú*•\±$DZ×Ú*$±4DZ|±×±Ÿü�±:,²±€ÿ,¨±Åžv8×Ú*“\š³$Ÿ³×Ú*$š³4Ÿ³*œš³,¦³ —*O<¦³³³ üá²R… ¼ø²€ÿ,ˆ™Åž¡A×Ú*¾ —*ŒL•´Åž¤´¡üð³4Åž$†´€ÿ,ü³ 1\ж$�¶×Ú*$ж4�¶*´Š¶D–¶ä¨*OT–¶¦¶¢üáµE$ûµ€ÿ,ñµ«ˆ—ÅžŸ?×Ú*¼ä¨*Š\á·$æ·×Ú*$á·4æ·*Œá·í·ò�O,í·ø·£ü¼·<,Ñ·€ÿ,Ç·«ˆ˜Åž @×Ú*½ò�‹PÛ  ÀøÛ äÈ ŸŸ Àì £ó‹¤ô‹ljô²ßk# �þ\a †—ã*s{(Û ¬¿ ‹-Û ±¿�-2¡£>ê§ FðóŠø—ã*Ý —ã*èq{ó‹(éã* (Ü ³¿ º ²ÝPÜ  À �²Ý+îÝøÜ äÈ »²Ý —ã*-  9 îÝ¢§¤é´¹¤©rwÕÜ ¸¿‘-ð ­àüê§ ·á ²Ý²ÝîÝóвÝäîÝì ää*÷ää*ÿ^œlwóŠîÝkáç*îÝ9¤é–Ý ¼¿“-Ý º¿ ê§ $-7PÞ  À'8øÞ äÈ —ã*—ã*,1 ù±—ã*—ã*HMUZboÞ Ç¿–-HÞ ¾¿ê§ ê§ ùää*Êää*ÒNî [e–ê*ü ä ¬ö›†ºÚ *2xä Æö(ä öõ —-ä ûõ›-2–¤> –¤I›†«·Í³ƒóŠ‹q{ºÚ ßó‹®(å ýõ ¼²Ý å ¬ö ` ²Ý›†+îÝxå Æö ó²Ý +  7 îÝ ¥¤é²·¢§puÓå ‚ö�-î ­àúƒí*·á ²Ý²ÝîÝ ·Í²ÝâîÝê –òóŠúYœgr·ÍîÝf –îÝ4¤é‘øè ãü6ƒŠƒŠÜ‹…Š�Ð<†ŠŠÐ< 0{?i—�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫ¢§ †ˆñ*¹Á(è °ü ž-è µü£-1ž-ž-ô½ -ÛËÏSöE°ç(6k óò*vˆñ*D ˆñ*P”ž ò*n(é ·ü ½²Ýøé ãü6²Ýˆñ*,8îÝej¹§w|glŽé ¼ü¦-©­àµ©ó*½·áŲÝͲݻîÝà ½ó*νó*ÖùœÏõ*îݹ§&(ê �¨ê ¢¨±-(-Ø¥:Õ� BKU(ì ª¨'Hì «­ô¾›†LT¾²Ý3 ? îÝ€…À¼’—n¤©±¿²ÝÀÅ·Á Ò×ßäìÀ²Ýû·Á ì ¯¨´-9? ­àMÕ� V·á_g²Ýp²Ýy·ÍT²Ý‹îÝfó‚o§œµ‡³–Íó‚îÝ­À¼â·Á é·Á ðí ³¨¶-í ±¨ Õ� '1Hî µ¨,; K Õ� \ ix€�•�ª²Õ� ÃÐHî «­Õ�  ô¾›†/Õ� @ ô¾›†Y  e  sxž� „ ‰‘î ¾¨¹-‹‘˜Ÿ«Õ� ´Õ� ½ÅÍÔÕ� Õ� âêò·Í·Í%ó‚.ó‚7Õ� Õ� (Õ� 1Õ� :Dî R”§a¬§n‡³œ ѧ© ‘ž�½,޲‰ï ñ|])ï Â}] !ï «}] À²üÙ±g»ùï ñ|`]$ö±Õ� ,ì±l•²T,ô¶\î¶$¾· Å™›†š·ô¾›†L¢· Å™›† ª·Ó·¼ü¹¶šüˆ·#€ªŒÒ¶Õ� ,ȶ´ˆ·›†”¾¾«Z(ð Œãð ‘ã¿-(ù¦4ÅÇ&<EOlÉå º-ò  ãÂ-8ò ™ãù¦(ó ¢ã%,4Á ²Ýó ¦ãPXײÝ$qv·Á ƒˆ�ó §ãÄ-«­à·ÅÇ&¿·áDzÝÏÖßœìö·Á ô «ãÆ-ô ©ãÅÇ&!+Hõ ­ãõ ¶ãÉ-@EKVÅÇ&^ÅÇ&fmt}î Š”§˜¬§¤¬øö êƒ!ŸŸ Àì £ó‹¤ô‹ljô²ßk#Ȩ�þ]b †¼Š+t|(ö —ƒ Ì-ö œƒÐ-/Û†;úßC¼Š+Ì ¼Š+×_i�‹+ô(÷ žƒ  ²Ýø÷ êƒ!¼Š+$îÝQVÀ¼chSu÷ £ƒÒ-�­àœúߤ·á¬²Ý´îÝ¢ ø‹+­ø‹+µØœåïç�+îÝâÀ¼ø §ƒÔ-ø ¥ƒ úß'1øù êƒ!¼Š+¼Š+,1 ù±¼Š+¼Š+HMUù ²ƒ×-Hù ©ƒúßúßø‹+—ø‹+Ÿ8î EOÁ�+É(ú ¡—)pú ¹ª £»Ø¥ %ç  1 9Pú ñ¡ ùÁ ˜ Ø- ú ¥—hú †žãÁå Ø-M@ú •™‹»hú 㙋»:*W Ø-Ãy Ø- âú ¦—ã-®´»ÂÉ Ȩ× Ȩãë’ª ñóŠÜëóŠX`󊶾Õ� Ø¥H‡³TÀ¼ D‡³¶‡³ ‡³[ ”ç oó‹8ó‹òýª ±ó‹›(û ¨—)pû ¹ª£»Ø¥NVY²Ý2:Z²ÝFRîÝ•š¹§§¬�†¾Pû ñ¡ùÁàèòÝ2:�²ÝGSîÝ)/¹§=C†‹Vhû †ž ãÁy ‚IJÝ4<o²ÝH TîÝÃɹ§× ݇Œð@û •™‹»hû 㙋»09[²ÝPX\²ÝdîÝX `o²Ýl x  îÝž¤¤é²¸ÈÍ µ ºÕû ­—å-ñ÷þ ­à»”+#·á,4’ª GóŠ3²ÝO²ÝbîÝk²ÝWîÝ` –ióŠ)²Ý޲Ý;îÝD –MóŠï²Ý»²ÝîÝ  –Õ� ¯²Ýè²ÝÁîÝÊß° Ó œ‡³4À¼ $‡³è ‡³Ž‡³.g ß° îÝE¹§| –îÝù§� –îÝ;¹§ž’ª îݲ –îÝŸ¤é¹ü ±—ç-ü ¯— "»”+*3=Hý ³—,; K!»”+\ !i ~†“�¤"»”+µ" Ñ#»”+â#ï þ$»”+ $  -%»”+? %M pý ¹ª&»”+&£»Ø¥/'»”+@'£»Ø¥Ye sx ù±Õ� Õ� � ”œPý ñ¡(»”+(ùÁ.)»”+?)ùÁWcqvÐÔ‚‡�hý †ž*»”+*ãÁ.+»”+?+ãÁWcqvÐÔ‚‡� @ý •™,»”+ ,‹»hý ã™-»”+ -‹»\.»”+m.‹»W/»”+h/‹»® ºÈͯýÙÞ æí Î ÚèíÐÔùþ #ý ¼—ê-–œ£ª±¸¿0Ë»”+Ô»”+Ýåíô»”+»”+ "*’ª  óŠè’ª óŠú/¯° 8¯° A – –%óŠðóŠù – – óŠ¨óŠ± –º –ÃÕ� mÕ� vß° ß° ˆ»”+î»”+÷»”+»”+ »”+»”+»”+$»”+-»”+6»”+?»”+H»”+Q»”+Z»”+c»”+lvî „”§“¬§ ‡³‡ À¼ f ѧ¡À¨€‡³Oѧ\‡³ýѧ ‡³¸ѧÅ+§¤+ÙÐÔ?ÐÔ²¯ý%ÐÔþЊ – 0ݪ§ )1Њ ¶ 0ݪ§ )2(Š ä 0 ë-Š é 0Š è 0>ï-M�ªY£þ aݪÖâýÞݪ°âý¸Š”§  § Üݪ�(‹ ë 0 Å ²ÝЋ – 0 ƲÝݪ+îÝЋ ¶ 0 Ç²Ý ݪ+  7 îÝŸ¤¤é±¶¢§puÒ‹ ð 0ñ-ì ­àø£þ ·á ²Ý²ÝîÝ âý²ÝáîÝé âýôâýüZœhsâýîÝh�´+îÝ6¤é’PŒ þ0˜Œ ×0•ö¿†)1 Œ »0•ö¿†)2(Œ ž0 ò-Œ £0Œ ¢0A÷-Pݪ\âýdúóŠ•öé¦ýñ•öæýË�§ó‹@¿†%¿†ö•ö˜(— ®<0 È ²Ýð— Ú<0�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫÇamîÝ™žÀ¼«°œ½— ³<0þ-×­àã ø-ø-ù-ÝÃû-óÉ ë …ÒÍ_·á(²Ý1îÝ!  ö·+0Œº+9\œjuŠº+îÝjÀ¼Š4­>0ö·+l­>0$´>0 ÆQö·+24´>0´­>04»>0ÊõAD»>0É>0äüý=L0Šö|“>0 ´¹+L…>0ðö‰ ö·+«D†»+±Êõ‹$Æ 1 ëÌÊ%TË 1„Æ 1$ .IØ 1çü¥³1$Ê1 À1ÌÊ%³¢˜˜!BØëÌÊ%<Ó1dÝ1,Þ1l÷1$÷1_”ó1$ .Ìó1$ˆ1 Œ1D›1$¦1 0ü´\1 dº1$º1$Â197 Å1lÙ1 $Ù1     å1 ”Õ1  $  . ÌÕ1 $ê1 î1 Lü1  „1   = üÇI1 Ë�1h p øË´\1 >D �1\™1$ 1Aü®\1 d´1$´1$¼1Z7  ¿1lÓ1$Ó1 ß1”Ï1$ . ÌÏ1$ä1 è1Lö1 þ1   =üÁI1 ̉1h p øÌ®\1 >D ‰1\“1$š1aü¨\1  d®1$®1$¶1z7  ¹1lÍ1$Í1 Ù1”É1$ .ÌÉ1$Þ1 â1Lð1  ø1   = ü»I1 ̓ 1h p  øÍ¨\1" >"D ƒ 1� 1 • 1– 1èüÕÁ1üÏÇ1ü—ÿ1$ÌÊ%\í1ÌÊ%pM4Ò¼U··yyV÷{ƒŠJ>>ÝêË+|ÏÃÃ……bêË+…�”ã�ƒ—»ÛW256Á256Á\µ 1  Lµ 1 è!ü› &1ëÌÊ%\§ 1'_Á256Á„à1Dæ1£­,à1Tæ1($‚1 Å™ͯ#Ú ¬1 D¦1 3l¢1¢1 ï[$œœ1 Úë1à(Î¥1! àý<¤1�¯,Ÿ1!8 " ×1 DÑ1 ë1àó1\ù1Œó1  Ø1  DÒ1      3  lÎ1 Àœ œÉ1 Å™ͯ# Úùà ž1 D˜1 ,àOl”1 Àœœ�1 Å™ͯ#Ú¤Æ1TÆ1 ®/&ÄÃ1 Àœô¾1 Å™ͯ#Úü‰#1¤‰1 „z lž1"'"üƒ)1" †1+ D€1,-+, -,+ º1#¯²ÝLÈ1,Ê1 À# È1(<Ê1)'(„È1$Ò1 ÆQù«ù«CharsÁû«�ýyD4]®¤Nc'‡&4Ò1ÌÈ14Ù1 øW&y%DÙ1ìÅ1$ Àœ%üÀ#1 Å™ͯ#$ â1R*+lü1) Àœ*œ÷1 Å™ͯ#) ‰1“1íü˜û1ü’�1üæ<1„æ1ü·,1.и#ľ1å‡,­1hØÚµ&$º1ͯ#5¤�–óŠí ͯ#±<'.ͯ#Y‹¥Êµ¼>ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw²Ýà«à« Utf8ErrorÁá« valid_up_toÁýyâ« error_lenÁýy"øCð*u³Hõå‡ÄÑèë,·1²Ý‚ͯ#°ßřǙș­É™Ê™àË™óG*¤�R{9 ‹ ûØ+ÏûØ+Øͯ#Í7\GNöÆd¶–1¶(¶4¶í©f#ê £­ ÁÐ+b�¯å•ŠNœÖ+�Œ×+4½Ø+‰õØ+XÕÙ+ÿ„Ÿ1D¥1£­,Ÿ1T¥1($Á1 Å™ͯ#¤1\á1|á1 ï1$ 'K\‚1ì‚1tŽ1Á¹% �1ŒŽ1,«1 l«1  ,Þ1 dØ1    3  ü½(1Ô½1 ñ \  '  Tð1 ù1$ ' Kü¥\1,š18Ñš1 ÌýL™1¥°,”18 "¼Œ14Œ1è³#|“1 $ì†1ELàͯ#3\‰1|‰1 —1$ 'Ì1àͯ#¯4Ù1 ÀœdÔ1 Å™ͯ# ß1$¶1 Å™ͯ#Ò´ƒ1 3Üÿ1 Àœüú!1 Å™ͯ# š1îüÒÒ1üÑÓ1üö®1äÄ1и#Äý1å‡,ì1½LÕ1sÆ£n,ú1$ÓénºÐÊÑÆ£`и#¬å‡ÞÓ•4É1$®1ͯ#ùͯ#K••Æ£�¶½öÆû‚øª¯ê¹õ#…_£­é•Š••Š3Á¹*óä+u¥°²è³#�•Š#Ìç1   $Ï1 Å™<„1 Å™ ‰1-Ì•1 €$²1 Å™ÌÀ1 À <Ý1 Å™ â1-Ìî1 à <‹1 Å™ �1-Ìœ1 ð <¹1 Å™ ¾1-am÷| ìøï x…ß•ò ÿ¿ ¡ ®¾ Ü1ïüª²1 ØÚl¾1$±1qxàçOVª±:A—»Svd±1·1­Ø,±1 »14·1-”«1N Ø$1à’ª „Þ$1\ã$1\£!1„ž!1 ­!1üÞ$$1 „ò$1\÷$1À=‹%1ðüë 1üÒ$01 $ 1å‡,…1 “1™Ú^$–!1È!’ª †öÆGŸK˜W‹­Ø¿•ŠŒæ,1 \ë,1Àüæ, 1\û,1€ˆ-1ñüù&�1$¡'1 —'1j˜4Œ ó ­®(éë4;B´ö� ¹º(êì4;B|å¯ ÀÁ(Äí4;Bd�Ì ÇÈ(žî4;B·å ØÚ(øï4×°<C$âå ØÝ(øï4Ïó<C,¬Ÿ ¬³(µ÷4°ÿ<Cë çé'™ü3×°;B\Š  çñ'™ü3²Ý;B¬Ÿ> ‚ƒ'Õþ3:A´È? ‰Š'°ÿ3:A  ÏÔ'ê„3×°;BLð' ÚÜ'ì…3•‡;B$”( Úß'ì…3ô‡;Bü³.% ãä(•‡4;BÜÌÐ ö÷(ñ‰4–æ <CÄÎ „ … 'ÿ–3¹—;Bô¹ ‰ Š '¹—3ðÄ;Bìê Ž � 'ó—3Æ–;Büþ"$ • – (¸˜4æš<Cüˆ1* š › (ò˜4«¡<CüýI) Ÿ   (¬™4³Ÿ<CÌ€S ¦ § 'ñ™3Ò£;BüúX « ¬ («š4¡é<Côæw ° ± 'åš3Á°;BÄõ€ · ¸ (ª›4â´<Côņ ¼ ½ (ä›4á�<CìŠÃ Á  (žœ4‹¾<C¬èË È É (ãœ4Ûæ<CܰÑ Í Î (��4;Büè‘ Ò Ó )×�5³ø=Düý–% × Ø )‘ž5ïò=Düɪ$ Ü Ý )Ëž5ì�=Däë³ ã ä (�Ÿ4ÇŠ<Cüž¹" è é )ÊŸ5<C4‰ " »"½"'˜±3ØÙ ;BDÑ " »"À"'˜±3¶ß;B$º" »"Ã"'˜±3Ïó;Bt£> ¬#­#'�»3Œë;B4ßí Ã#Ç#(Ƚ4‘À<C,Ãî Ã#Ê#(Ƚ4÷À<C<½È Ù$Û$(·É4Ç<C¢„ ›%�%(�Ï4Ì»<C¶„ ›% %(�Ï4Ì»<C$Ê„ ›%£%(�Ï4Ì»<C|Ì °%±%'ÞÐ3ðÑ;B¡  À%Â%'ðÑ3:A¡" À%Å%'ðÑ3:A´²F Ô%Õ%'ªÓ3ÿ‹;BôËË ü%ý%(Š×4Ú×<Cl¼Û ’&“&(ãØ4£Ø<CtÏû ´µ-´´µê¾·óô¸ôô ¸L®�§Oîv}ºÅ…Œ¤ýÅ Á&Â&(ýÝ4à¶<C¤ž$ ü&ý&'¢ã3:Aä„$ �Ž)��Ž®Å�ó °µûS…òcå‡kr,Å= ™'œ')ëž5²Ý=D4Ù= ™'Ÿ')ëž5<CüÚæ!% ½'òè ¾'/­Ÿ ;�� CJìäƒ% Æ'òèÇ'.†¸ :Û� BIô‘¢% Ï'òèÐ'.ãÍ :¬’ BIüƒ!  éìòè!¡0¶ì<…íDKüÕ†# ³(´()Ïó5<Cü‰>! ­éìòè!®0ªô<Èÿ#DKüï[/ Ä¥õ«õ#Å2¹™$>�˜$FMœç™ Á(éìÂ(,Îõ8éì@GÌi' Î(Ï(&Ìø2ÌÊ%:AÄi( Ö(×(&œù29@̦ ( Ý(Þ(*ìù6=DKÌß( å(æ(-Èú9@GNU4ã�+ „)†)(Ãþ4œù<C<÷�+ „)‰)(Ãþ4ìù<C<�ž+ „)Œ)(Ãþ4Èú<C4£ž+ „)�)(Ãþ4°û<C,·ž+ „)’)(Ãþ4ýû<C<Éž+ „)•)(Ãþ4Ìø<C\ßž+ „)˜)(Ãþ4ÿ÷<C´Î, ž)Ÿ)'¯€3¢ˆ$;B¬ê2, ±)²)'×�3:A¤ïË, Ù)Ú)(›†4×�<C”¸Ñ, î)ï)(Ç4×�<CøÁ ª±!, Æ*Ç*+ú‰7Є?FøÁ �·(, Ò*Ó*+üŠ7Î…?FøÕ ª±!, ¦+§++»�7Є?FøÕ �·(, ²+³++½Ž7Î…?F܃0 �,Ž,'Ö•3�–;B¼“- ¯,°,'½™3“½);Bü‰@# À,Á,(Þš4̹<CüûE% Ç,È,(£›4̹<C|Òu ´µ)´´µß�·óó oëëmÆr/#få‡nu”´· ÎÏ*ÎÎÏô‘Ñóó {L2>v1(gʹov<£­ §-­-(Ø¥4›†<C¬µƒ Ì-Í-(Û†4¼Š+<Cü¶<#0 ø-ù-*´¹+6ö·+>E ôê° •û‰Ìì2«,ùì2¦¡Léí2Ù)—,Ä&Ñ,ú¹$±ðÚ,áºLó‰é,ÕÛ,�›ú,̼TÕ¿‹-¬½¬�ö—-ô½tÊüž-žDʨ§-Ó¿LÂãº-ÛÀTÀƒÌ-³ÁtÈ—Ø-ü†ð2ü©Ò2¤Ò This crate exposes a variety of regex engines used by the `regex` crate. It provides a vast, sprawling and "expert" level API to each regex engine. The regex engines provided by this crate focus heavily on finite automata implementations and specifically guarantee worst case `O(m * n)` time complexity for all searches. (Where `m ~ len(regex)` and `n ~ len(haystack)`.) The primary goal of this crate is to serve as an implementation detail for the `regex` crate. A secondary goal is to make its internals available for use by others. # Table of contents * [Should I be using this crate?](#should-i-be-using-this-crate) gives some reasons for and against using this crate. * [Examples](#examples) provides a small selection of things you can do with this crate. * [Available regex engines](#available-regex-engines) provides a hyperlinked list of all regex engines in this crate. * [API themes](#api-themes) discusses common elements used throughout this crate. * [Crate features](#crate-features) documents the extensive list of Cargo features available. # Should I be using this crate? If you find yourself here because you just want to use regexes, then you should first check out whether the [`regex` crate](https://docs.rs/regex) meets your needs. It provides a streamlined and difficult-to-misuse API for regex searching. If you're here because there is something specific you want to do that can't be easily done with `regex` crate, then you are perhaps in the right place. It's most likely that the first stop you'll want to make is to explore the [`meta` regex APIs](meta). Namely, the `regex` crate is just a light wrapper over a [`meta::Regex`], so its API will probably be the easiest to transition to. In contrast to the `regex` crate, the `meta::Regex` API supports more search parameters and does multi-pattern searches. However, it isn't quite as ergonomic. Otherwise, the following is an inexhaustive list of reasons to use this crate: * You want to analyze or use a [Thompson `NFA`](nfa::thompson::NFA) directly. * You want more powerful multi-pattern search than what is provided by `RegexSet` in the `regex` crate. All regex engines in this crate support multi-pattern searches. * You want to use one of the `regex` crate's internal engines directly because of some interesting configuration that isn't possible via the `regex` crate. For example, a [lazy DFA's configuration](hybrid::dfa::Config) exposes a dizzying number of options for controlling its execution. * You want to use the lower level search APIs. For example, both the [lazy DFA](hybrid::dfa) and [fully compiled DFAs](dfa) support searching by exploring the automaton one state at a time. This might be useful, for example, for stream searches or searches of strings stored in non-contiguous in memory. * You want to build a fully compiled DFA and then [use zero-copy deserialization](dfa::dense::DFA::from_bytes) to load it into memory and use it for searching. This use case is supported in core-only no-std/no-alloc environments. * You want to run [anchored searches](Input::anchored) without using the `^` anchor in your regex pattern. * You need to work-around contention issues with sharing a regex across multiple threads. The [`meta::Regex::search_with`](meta::Regex::search_with) API permits bypassing any kind of synchronization at all by requiring the caller to provide the mutable scratch spaced needed during a search. * You want to build your own regex engine on top of the `regex` crate's infrastructure. # Examples This section tries to identify a few interesting things you can do with this crate and demonstrates them. ### Multi-pattern searches with capture groups One of the more frustrating limitations of `RegexSet` in the `regex` crate (at the time of writing) is that it doesn't report match positions. With this crate, multi-pattern support was intentionally designed in from the beginning, which means it works in all regex engines and even for capture groups as well. This example shows how to search for matches of multiple regexes, where each regex uses the same capture group names to parse different key-value formats. ``` use regex_automata::{meta::Regex, PatternID}; let re = Regex::new_many(&[ r#"(?m)^(?[[:word:]]+)=(?[[:word:]]+)$"#, r#"(?m)^(?[[:word:]]+)="(?[^"]+)"$"#, r#"(?m)^(?[[:word:]]+)='(?[^']+)'$"#, r#"(?m)^(?[[:word:]]+):\s*(?[[:word:]]+)$"#, ])?; let hay = r#" best_album="Blow Your Face Out" best_quote='"then as it was, then again it will be"' best_year=1973 best_simpsons_episode: HOMR "#; let mut kvs = vec![]; for caps in re.captures_iter(hay) { // N.B. One could use capture indices '1' and '2' here // as well. Capture indices are local to each pattern. // (Just like names are.) let key = &hay[caps.get_group_by_name("key").unwrap()]; let val = &hay[caps.get_group_by_name("val").unwrap()]; kvs.push((key, val)); } assert_eq!(kvs, vec![ ("best_album", "Blow Your Face Out"), ("best_quote", "\"then as it was, then again it will be\""), ("best_year", "1973"), ("best_simpsons_episode", "HOMR"), ]); # Ok::<(), Box>(()) ``` ### Build a full DFA and walk it manually One of the regex engines in this crate is a fully compiled DFA. It takes worst case exponential time to build, but once built, it can be easily explored and used for searches. Here's a simple example that uses its lower level APIs to implement a simple anchored search by hand. ``` use regex_automata::{dfa::{Automaton, dense}, Input}; let dfa = dense::DFA::new(r"(?-u)\b[A-Z]\w+z\b")?; let haystack = "Quartz"; // The start state is determined by inspecting the position and the // initial bytes of the haystack. let mut state = dfa.start_state_forward(&Input::new(haystack))?; // Walk all the bytes in the haystack. for &b in haystack.as_bytes().iter() { state = dfa.next_state(state, b); } // DFAs in this crate require an explicit // end-of-input transition if a search reaches // the end of a haystack. state = dfa.next_eoi_state(state); assert!(dfa.is_match_state(state)); # Ok::<(), Box>(()) ``` Or do the same with a lazy DFA that avoids exponential worst case compile time, but requires mutable scratch space to lazily build the DFA during the search. ``` use regex_automata::{hybrid::dfa::DFA, Input}; let dfa = DFA::new(r"(?-u)\b[A-Z]\w+z\b")?; let mut cache = dfa.create_cache(); let hay = "Quartz"; // The start state is determined by inspecting the position and the // initial bytes of the haystack. let mut state = dfa.start_state_forward(&mut cache, &Input::new(hay))?; // Walk all the bytes in the haystack. for &b in hay.as_bytes().iter() { state = dfa.next_state(&mut cache, state, b)?; } // DFAs in this crate require an explicit // end-of-input transition if a search reaches // the end of a haystack. state = dfa.next_eoi_state(&mut cache, state)?; assert!(state.is_match()); # Ok::<(), Box>(()) ``` ### Find all overlapping matches This example shows how to build a DFA and use it to find all possible matches, including overlapping matches. A similar example will work with a lazy DFA as well. This also works with multiple patterns and will report all matches at the same position where multiple patterns match. ``` use regex_automata::{ dfa::{dense, Automaton, OverlappingState}, Input, MatchKind, }; let dfa = dense::DFA::builder() .configure(dense::DFA::config().match_kind(MatchKind::All)) .build(r"(?-u)\w{3,}")?; let input = Input::new("homer marge bart lisa maggie"); let mut state = OverlappingState::start(); let mut matches = vec![]; while let Some(hm) = { dfa.try_search_overlapping_fwd(&input, &mut state)?; state.get_match() } { matches.push(hm.offset()); } assert_eq!(matches, vec![ 3, 4, 5, // hom, home, homer 9, 10, 11, // mar, marg, marge 15, 16, // bar, bart 20, 21, // lis, lisa 25, 26, 27, 28, // mag, magg, maggi, maggie ]); # Ok::<(), Box>(()) ``` # Available regex engines The following is a complete list of all regex engines provided by this crate, along with a very brief description of it and why you might want to use it. * [`dfa::regex::Regex`] is a regex engine that works on top of either [dense](dfa::dense) or [sparse](dfa::sparse) fully compiled DFAs. You might use a DFA if you need the fastest possible regex engine in this crate and can afford the exorbitant memory usage usually required by DFAs. Low level APIs on fully compiled DFAs are provided by the [`Automaton` trait](dfa::Automaton). Fully compiled dense DFAs can handle all regexes except for searching a regex with a Unicode word boundary on non-ASCII haystacks. A fully compiled DFA based regex can only report the start and end of each match. * [`hybrid::regex::Regex`] is a regex engine that works on top of a lazily built DFA. Its performance profile is very similar to that of fully compiled DFAs, but can be slower in some pathological cases. Fully compiled DFAs are also amenable to more optimizations, such as state acceleration, that aren't available in a lazy DFA. You might use this lazy DFA if you can't abide the worst case exponential compile time of a full DFA, but still want the DFA search performance in the vast majority of cases. A lazy DFA based regex can only report the start and end of each match. * [`dfa::onepass::DFA`] is a regex engine that is implemented as a DFA, but can report the matches of each capture group in addition to the start and end of each match. The catch is that it only works on a somewhat small subset of regexes known as "one-pass." You'll want to use this for cases when you need capture group matches and the regex is one-pass since it is likely to be faster than any alternative. A one-pass DFA can handle all types of regexes, but does have some reasonable limits on the number of capture groups it can handle. * [`nfa::thompson::backtrack::BoundedBacktracker`] is a regex engine that uses backtracking, but keeps track of the work it has done to avoid catastrophic backtracking. Like the one-pass DFA, it provides the matches of each capture group. It retains the `O(m * n)` worst case time bound. This tends to be slower than the one-pass DFA regex engine, but faster than the PikeVM. It can handle all types of regexes, but usually only works well with small haystacks and small regexes due to the memory required to avoid redoing work. * [`nfa::thompson::pikevm::PikeVM`] is a regex engine that can handle all regexes, of all sizes and provides capture group matches. It tends to be a tool of last resort because it is also usually the slowest regex engine. * [`meta::Regex`] is the meta regex engine that combines *all* of the above engines into one. The reason for this is that each of the engines above have their own caveats such as, "only handles a subset of regexes" or "is generally slow." The meta regex engine accounts for all of these caveats and composes the engines in a way that attempts to mitigate each engine's weaknesses while emphasizing its strengths. For example, it will attempt to run a lazy DFA even if it might fail. In which case, it will restart the search with a likely slower but more capable regex engine. The meta regex engine is what you should default to. Use one of the above engines directly only if you have a specific reason to. # API themes While each regex engine has its own APIs and configuration options, there are some general themes followed by all of them. ### The `Input` abstraction Most search routines in this crate accept anything that implements `Into`. Both `&str` and `&[u8]` haystacks satisfy this constraint, which means that things like `engine.search("foo")` will work as you would expect. By virtue of accepting an `Into` though, callers can provide more than just a haystack. Indeed, the [`Input`] type has more details, but briefly, callers can use it to configure various aspects of the search: * The span of the haystack to search via [`Input::span`] or [`Input::range`], which might be a substring of the haystack. * Whether to run an anchored search or not via [`Input::anchored`]. This permits one to require matches to start at the same offset that the search started. * Whether to ask the regex engine to stop as soon as a match is seen via [`Input::earliest`]. This can be used to find the offset of a match as soon as it is known without waiting for the full leftmost-first match to be found. This can also be used to avoid the worst case `O(m * n^2)` time complexity of iteration. Some lower level search routines accept an `&Input` for performance reasons. In which case, `&Input::new("haystack")` can be used for a simple search. ### Error reporting Most, but not all, regex engines in this crate can fail to execute a search. When a search fails, callers cannot determine whether or not a match exists. That is, the result is indeterminate. Search failure, in all cases in this crate, is represented by a [`MatchError`]. Routines that can fail start with the `try_` prefix in their name. For example, [`hybrid::regex::Regex::try_search`] can fail for a number of reasons. Conversely, routines that either can't fail or can panic on failure lack the `try_` prefix. For example, [`hybrid::regex::Regex::find`] will panic in cases where [`hybrid::regex::Regex::try_search`] would return an error, and [`meta::Regex::find`] will never panic. Therefore, callers need to pay close attention to the panicking conditions in the documentation. In most cases, the reasons that a search fails are either predictable or configurable, albeit at some additional cost. An example of predictable failure is [`BoundedBacktracker::try_search`](nfa::thompson::backtrack::BoundedBacktracker::try_search). Namely, it fails whenever the multiplication of the haystack, the regex and some constant exceeds the [configured visited capacity](nfa::thompson::backtrack::Config::visited_capacity). Callers can predict the failure in terms of haystack length via the [`BoundedBacktracker::max_haystack_len`](nfa::thompson::backtrack::BoundedBacktracker::max_haystack_len) method. While this form of failure is technically avoidable by increasing the visited capacity, it isn't practical to do so for all inputs because the memory usage required for larger haystacks becomes impractically large. So in practice, if one is using the bounded backtracker, you really do have to deal with the failure. An example of configurable failure happens when one enables heuristic support for Unicode word boundaries in a DFA. Namely, since the DFAs in this crate (except for the one-pass DFA) do not support Unicode word boundaries on non-ASCII haystacks, building a DFA from an NFA that contains a Unicode word boundary will itself fail. However, one can configure DFAs to still be built in this case by [configuring heuristic support for Unicode word boundaries](hybrid::dfa::Config::unicode_word_boundary). If the NFA the DFA is built from contains a Unicode word boundary, then the DFA will still be built, but special transitions will be added to every state that cause the DFA to fail if any non-ASCII byte is seen. This failure happens at search time and it requires the caller to opt into this. There are other ways for regex engines to fail in this crate, but the above two should represent the general theme of failures one can find. Dealing with these failures is, in part, one the responsibilities of the [meta regex engine](meta). Notice, for example, that the meta regex engine exposes an API that never returns an error nor panics. It carefully manages all of the ways in which the regex engines can fail and either avoids the predictable ones entirely (e.g., the bounded backtracker) or reacts to configured failures by falling back to a different engine (e.g., the lazy DFA quitting because it saw a non-ASCII byte). ### Configuration and Builders Most of the regex engines in this crate come with two types to facilitate building the regex engine: a `Config` and a `Builder`. A `Config` is usually specific to that particular regex engine, but other objects such as parsing and NFA compilation have `Config` types too. A `Builder` is the thing responsible for taking inputs (either pattern strings or already-parsed patterns or even NFAs directly) and turning them into an actual regex engine that can be used for searching. The main reason why building a regex engine is a bit complicated is because of the desire to permit composition with de-coupled components. For example, you might want to [manually construct a Thompson NFA](nfa::thompson::Builder) and then build a regex engine from it without ever using a regex parser at all. On the other hand, you might also want to build a regex engine directly from the concrete syntax. This demonstrates why regex engine construction is so flexible: it needs to support not just convenient construction, but also construction from parts built elsewhere. This is also in turn why there are many different `Config` structs in this crate. Let's look more closely at an example: [`hybrid::regex::Builder`]. It accepts three different `Config` types for configuring construction of a lazy DFA regex: * [`hybrid::regex::Builder::syntax`] accepts a [`util::syntax::Config`] for configuring the options found in the [`regex-syntax`](regex_syntax) crate. For example, whether to match case insensitively. * [`hybrid::regex::Builder::thompson`] accepts a [`nfa::thompson::Config`] for configuring construction of a [Thompson NFA](nfa::thompson::NFA). For example, whether to build an NFA that matches the reverse language described by the regex. * [`hybrid::regex::Builder::dfa`] accept a [`hybrid::dfa::Config`] for configuring construction of the pair of underlying lazy DFAs that make up the lazy DFA regex engine. For example, changing the capacity of the cache used to store the transition table. The lazy DFA regex engine uses all three of those configuration objects for methods like [`hybrid::regex::Builder::build`], which accepts a pattern string containing the concrete syntax of your regex. It uses the syntax configuration to parse it into an AST and translate it into an HIR. Then the NFA configuration when compiling the HIR into an NFA. And then finally the DFA configuration when lazily determinizing the NFA into a DFA. Notice though that the builder also has a [`hybrid::regex::Builder::build_from_dfas`] constructor. This permits callers to build the underlying pair of lazy DFAs themselves (one for the forward searching to find the end of a match and one for the reverse searching to find the start of a match), and then build the regex engine from them. The lazy DFAs, in turn, have their own builder that permits [construction directly from a Thompson NFA](hybrid::dfa::Builder::build_from_nfa). Continuing down the rabbit hole, a Thompson NFA has its own compiler that permits [construction directly from an HIR](nfa::thompson::Compiler::build_from_hir). The lazy DFA regex engine builder lets you follow this rabbit hole all the way down, but also provides convenience routines that do it for you when you don't need precise control over every component. The [meta regex engine](meta) is a good example of something that utilizes the full flexibility of these builders. It often needs not only precise control over each component, but also shares them across multiple regex engines. (Most sharing is done by internal reference accounting. For example, an [`NFA`](nfa::thompson::NFA) is reference counted internally which makes cloning cheap.) ### Size limits Unlike the `regex` crate, the `regex-automata` crate specifically does not enable any size limits by default. That means users of this crate need to be quite careful when using untrusted patterns. Namely, because bounded repetitions can grow exponentially by stacking them, it is possible to build a very large internal regex object from just a small pattern string. For example, the NFA built from the pattern `a{10}{10}{10}{10}{10}{10}{10}` is over 240MB. There are multiple size limit options in this crate. If one or more size limits are relevant for the object you're building, they will be configurable via methods on a corresponding `Config` type. # Crate features This crate has a dizzying number of features. The main idea is to be able to control how much stuff you pull in for your specific use case, since the full crate is quite large and can dramatically increase compile times and binary size. The most barebones but useful configuration is to disable all default features and enable only `dfa-search`. This will bring in just the DFA deserialization and search routines without any dependency on `std` or `alloc`. This does require generating and serializing a DFA, and then storing it somewhere, but it permits regex searches in freestanding or embedded environments. Because there are so many features, they are split into a few groups. The default set of features is: `std`, `syntax`, `perf`, `unicode`, `meta`, `nfa`, `dfa` and `hybrid`. Basically, the default is to enable everything except for development related features like `logging`. ### Ecosystem features * **std** - Enables use of the standard library. In terms of APIs, this usually just means that error types implement the `std::error::Error` trait. Otherwise, `std` sometimes enables the code to be faster, for example, using a `HashMap` instead of a `BTreeMap`. (The `std` feature matters more for dependencies like `aho-corasick` and `memchr`, where `std` is required to enable certain classes of SIMD optimizations.) Enabling `std` automatically enables `alloc`. * **alloc** - Enables use of the `alloc` library. This is required for most APIs in this crate. The main exception is deserializing and searching with fully compiled DFAs. * **logging** - Adds a dependency on the `log` crate and makes this crate emit log messages of varying degrees of utility. The log messages are especially useful in trying to understand what the meta regex engine is doing. ### Performance features **Note**: To get performance benefits offered by the SIMD, `std` must be enabled. None of the `perf-*` features will enable `std` implicitly. * **perf** - Enables all of the below features. * **perf-inline** - When enabled, `inline(always)` is used in (many) strategic locations to help performance at the expense of longer compile times and increased binary size. * **perf-literal** - Enables all literal related optimizations. * **perf-literal-substring** - Enables all single substring literal optimizations. This includes adding a dependency on the `memchr` crate. * **perf-literal-multisubstring** - Enables all multiple substring literal optimizations. This includes adding a dependency on the `aho-corasick` crate. ### Unicode features * **unicode** - Enables all Unicode features. This feature is enabled by default, and will always cover all Unicode features, even if more are added in the future. * **unicode-age** - Provide the data for the [Unicode `Age` property](https://www.unicode.org/reports/tr44/tr44-24.html#Character_Age). This makes it possible to use classes like `\p{Age:6.0}` to refer to all codepoints first introduced in Unicode 6.0 * **unicode-bool** - Provide the data for numerous Unicode boolean properties. The full list is not included here, but contains properties like `Alphabetic`, `Emoji`, `Lowercase`, `Math`, `Uppercase` and `White_Space`. * **unicode-case** - Provide the data for case insensitive matching using [Unicode's "simple loose matches" specification](https://www.unicode.org/reports/tr18/#Simple_Loose_Matches). * **unicode-gencat** - Provide the data for [Unicode general categories](https://www.unicode.org/reports/tr44/tr44-24.html#General_Category_Values). This includes, but is not limited to, `Decimal_Number`, `Letter`, `Math_Symbol`, `Number` and `Punctuation`. * **unicode-perl** - Provide the data for supporting the Unicode-aware Perl character classes, corresponding to `\w`, `\s` and `\d`. This is also necessary for using Unicode-aware word boundary assertions. Note that if this feature is disabled, the `\s` and `\d` character classes are still available if the `unicode-bool` and `unicode-gencat` features are enabled, respectively. * **unicode-script** - Provide the data for [Unicode scripts and script extensions](https://www.unicode.org/reports/tr24/). This includes, but is not limited to, `Arabic`, `Cyrillic`, `Hebrew`, `Latin` and `Thai`. * **unicode-segment** - Provide the data necessary to provide the properties used to implement the [Unicode text segmentation algorithms](https://www.unicode.org/reports/tr29/). This enables using classes like `\p{gcb=Extend}`, `\p{wb=Katakana}` and `\p{sb=ATerm}`. * **unicode-word-boundary** - Enables support for Unicode word boundaries, i.e., `\b`, in regexes. When this and `unicode-perl` are enabled, then data tables from `regex-syntax` are used to implement Unicode word boundaries. However, if `regex-syntax` isn't enabled as a dependency then one can still enable this feature. It will cause `regex-automata` to bundle its own data table that would otherwise be redundant with `regex-syntax`'s table. ### Regex engine features * **syntax** - Enables a dependency on `regex-syntax`. This makes APIs for building regex engines from pattern strings available. Without the `regex-syntax` dependency, the only way to build a regex engine is generally to deserialize a previously built DFA or to hand assemble an NFA using its [builder API](nfa::thompson::Builder). Once you have an NFA, you can build any of the regex engines in this crate. The `syntax` feature also enables `alloc`. * **meta** - Enables the meta regex engine. This also enables the `syntax` and `nfa-pikevm` features, as both are the minimal requirements needed. The meta regex engine benefits from enabling any of the other regex engines and will use them automatically when appropriate. * **nfa** - Enables all NFA related features below. * **nfa-thompson** - Enables the Thompson NFA APIs. This enables `alloc`. * **nfa-pikevm** - Enables the PikeVM regex engine. This enables `nfa-thompson`. * **nfa-backtrack** - Enables the bounded backtracker regex engine. This enables `nfa-thompson`. * **dfa** - Enables all DFA related features below. * **dfa-build** - Enables APIs for determinizing DFAs from NFAs. This enables `nfa-thompson` and `dfa-search`. * **dfa-search** - Enables APIs for searching with DFAs. * **dfa-onepass** - Enables the one-pass DFA API. This enables `nfa-thompson`. * **hybrid** - Enables the hybrid NFA/DFA or "lazy DFA" regex engine. This enables `alloc` and `nfa-thompson`. Á ôê° •ûaj‰bj«`j¦¡^jÙ)—\jÑ,ú¹[jÚ,áºYjé,ÕÛWjú,̼Uj‹-¬½Sj—-ô½Qjž-žOj§-Ó¿Mjº-ÛÀKjÌ-³ÁIjØ-\k_kbk„¿ì2Zk”ìì2OküÐí"2t¹í2`kœüí2T¢î24¦î2„”3¡3 ¥3 �3 «3 ¶3, ¬3 ­3 ´3, ®38ý¯3& ±38ý²3 µ3*¸3 »3 �3+ Å3 Æ3 ß38ìÇ3 Ê3 Þ38Ó<Ë3 Ó37loggingÁLÕ3 é3 ‡3, ÷3 ø3 ü3, ù38ýú3 ý3”’3,Ÿ3 ¥3 Ú3 «3 ¶3, ¬3 ­3 ´3, ®38ý¯3& ±38ý²3 µ3*¸3 »3 Ø38¼½3 À3 Á3 Ö38¼Â3'Å38¨,Ç3 Ì3 Í3 Õ3, Î3 Ï3 Ó3, Ð38ýÑ3 Ô3”Ý3,ê3 ð3 ¥3 ö3 �3, ÷3 ø3 ÿ3, ù38ýú3& ü38ýý3 €3*ƒ3 †3 £38¼ˆ3 ‹3 Œ3 ¡38¼�3'�38Í,’3 —3 ˜3  3, ™3 š3 ž3, ›38ýœ3 Ÿ3\ìî2ü¬s§s A module for building and searching with deterministic finite automata (DFAs). Like other modules in this crate, DFAs support a rich regex syntax with Unicode features. DFAs also have extensive options for configuring the best space vs time trade off for your use case and provides support for cheap deserialization of automata for use in `no_std` environments. If you're looking for lazy DFAs that build themselves incrementally during search, then please see the top-level [`hybrid` module](crate::hybrid). # Overview This section gives a brief overview of the primary types in this module: * A [`regex::Regex`] provides a way to search for matches of a regular expression using DFAs. This includes iterating over matches with both the start and end positions of each match. * A [`dense::DFA`] provides low level access to a DFA that uses a dense representation (uses lots of space, but fast searching). * A [`sparse::DFA`] provides the same API as a `dense::DFA`, but uses a sparse representation (uses less space, but slower searching). * An [`Automaton`] trait that defines an interface that both dense and sparse DFAs implement. (A `regex::Regex` is generic over this trait.) * Both dense DFAs and sparse DFAs support serialization to raw bytes (e.g., [`dense::DFA::to_bytes_little_endian`]) and cheap deserialization (e.g., [`dense::DFA::from_bytes`]). There is also a [`onepass`] module that provides a [one-pass DFA](onepass::DFA). The unique advantage of this DFA is that, for the class of regexes it can be built with, it supports reporting the spans of matching capturing groups. It is the only DFA in this crate capable of such a thing. # Example: basic regex searching This example shows how to compile a regex using the default configuration and then use it to find matches in a byte string: ``` use regex_automata::{Match, dfa::regex::Regex}; let re = Regex::new(r"[0-9]{4}-[0-9]{2}-[0-9]{2}")?; let text = b"2018-12-24 2016-10-08"; let matches: Vec = re.find_iter(text).collect(); assert_eq!(matches, vec![ Match::must(0, 0..10), Match::must(0, 11..21), ]); # Ok::<(), Box>(()) ``` # Example: searching with regex sets The DFAs in this module all fully support searching with multiple regexes simultaneously. You can use this support with standard leftmost-first style searching to find non-overlapping matches: ``` # if cfg!(miri) { return Ok(()); } // miri takes too long use regex_automata::{Match, dfa::regex::Regex}; let re = Regex::new_many(&[r"\w+", r"\S+"])?; let text = b"@foo bar"; let matches: Vec = re.find_iter(text).collect(); assert_eq!(matches, vec![ Match::must(1, 0..4), Match::must(0, 5..8), ]); # Ok::<(), Box>(()) ``` # Example: use sparse DFAs By default, compiling a regex will use dense DFAs internally. This uses more memory, but executes searches more quickly. If you can abide slower searches (somewhere around 3-5x), then sparse DFAs might make more sense since they can use significantly less space. Using sparse DFAs is as easy as using `Regex::new_sparse` instead of `Regex::new`: ``` use regex_automata::{Match, dfa::regex::Regex}; let re = Regex::new_sparse(r"[0-9]{4}-[0-9]{2}-[0-9]{2}").unwrap(); let text = b"2018-12-24 2016-10-08"; let matches: Vec = re.find_iter(text).collect(); assert_eq!(matches, vec![ Match::must(0, 0..10), Match::must(0, 11..21), ]); # Ok::<(), Box>(()) ``` If you already have dense DFAs for some reason, they can be converted to sparse DFAs and used to build a new `Regex`. For example: ``` use regex_automata::{Match, dfa::regex::Regex}; let dense_re = Regex::new(r"[0-9]{4}-[0-9]{2}-[0-9]{2}").unwrap(); let sparse_re = Regex::builder().build_from_dfas( dense_re.forward().to_sparse()?, dense_re.reverse().to_sparse()?, ); let text = b"2018-12-24 2016-10-08"; let matches: Vec = sparse_re.find_iter(text).collect(); assert_eq!(matches, vec![ Match::must(0, 0..10), Match::must(0, 11..21), ]); # Ok::<(), Box>(()) ``` # Example: deserialize a DFA This shows how to first serialize a DFA into raw bytes, and then deserialize those raw bytes back into a DFA. While this particular example is a bit contrived, this same technique can be used in your program to deserialize a DFA at start up time or by memory mapping a file. ``` use regex_automata::{Match, dfa::{dense, regex::Regex}}; let re1 = Regex::new(r"[0-9]{4}-[0-9]{2}-[0-9]{2}").unwrap(); // serialize both the forward and reverse DFAs, see note below let (fwd_bytes, fwd_pad) = re1.forward().to_bytes_native_endian(); let (rev_bytes, rev_pad) = re1.reverse().to_bytes_native_endian(); // now deserialize both---we need to specify the correct type! let fwd: dense::DFA<&[u32]> = dense::DFA::from_bytes(&fwd_bytes[fwd_pad..])?.0; let rev: dense::DFA<&[u32]> = dense::DFA::from_bytes(&rev_bytes[rev_pad..])?.0; // finally, reconstruct our regex let re2 = Regex::builder().build_from_dfas(fwd, rev); // we can use it like normal let text = b"2018-12-24 2016-10-08"; let matches: Vec = re2.find_iter(text).collect(); assert_eq!(matches, vec![ Match::must(0, 0..10), Match::must(0, 11..21), ]); # Ok::<(), Box>(()) ``` There are a few points worth noting here: * We need to extract the raw DFAs used by the regex and serialize those. You can build the DFAs manually yourself using [`dense::Builder`], but using the DFAs from a `Regex` guarantees that the DFAs are built correctly. (In particular, a `Regex` constructs a reverse DFA for finding the starting location of matches.) * To convert the DFA to raw bytes, we use the `to_bytes_native_endian` method. In practice, you'll want to use either [`dense::DFA::to_bytes_little_endian`] or [`dense::DFA::to_bytes_big_endian`], depending on which platform you're deserializing your DFA from. If you intend to deserialize on either platform, then you'll need to serialize both and deserialize the right one depending on your target's endianness. * Safely deserializing a DFA requires verifying the raw bytes, particularly if they are untrusted, since an invalid DFA could cause logical errors, panics or even undefined behavior. This verification step requires visiting all of the transitions in the DFA, which can be costly. If cheaper verification is desired, then [`dense::DFA::from_bytes_unchecked`] is available that only does verification that can be performed in constant time. However, one can only use this routine if the caller can guarantee that the bytes provided encoded a valid DFA. The same process can be achieved with sparse DFAs as well: ``` use regex_automata::{Match, dfa::{sparse, regex::Regex}}; let re1 = Regex::new(r"[0-9]{4}-[0-9]{2}-[0-9]{2}").unwrap(); // serialize both let fwd_bytes = re1.forward().to_sparse()?.to_bytes_native_endian(); let rev_bytes = re1.reverse().to_sparse()?.to_bytes_native_endian(); // now deserialize both---we need to specify the correct type! let fwd: sparse::DFA<&[u8]> = sparse::DFA::from_bytes(&fwd_bytes)?.0; let rev: sparse::DFA<&[u8]> = sparse::DFA::from_bytes(&rev_bytes)?.0; // finally, reconstruct our regex let re2 = Regex::builder().build_from_dfas(fwd, rev); // we can use it like normal let text = b"2018-12-24 2016-10-08"; let matches: Vec = re2.find_iter(text).collect(); assert_eq!(matches, vec![ Match::must(0, 0..10), Match::must(0, 11..21), ]); # Ok::<(), Box>(()) ``` Note that unlike dense DFAs, sparse DFAs have no alignment requirements. Conversely, dense DFAs must be aligned to the same alignment as a [`StateID`](crate::util::primitives::StateID). # Support for `no_std` and `alloc`-only This crate comes with `alloc` and `std` features that are enabled by default. When the `alloc` or `std` features are enabled, the API of this module will include the facilities necessary for compiling, serializing, deserializing and searching with DFAs. When only the `alloc` feature is enabled, then implementations of the `std::error::Error` trait are dropped, but everything else generally remains the same. When both the `alloc` and `std` features are disabled, the API of this module will shrink such that it only includes the facilities necessary for deserializing and searching with DFAs. The intended workflow for `no_std` environments is thus as follows: * Write a program with the `alloc` or `std` features that compiles and serializes a regular expression. You may need to serialize both little and big endian versions of each DFA. (So that's 4 DFAs in total for each regex.) * In your `no_std` environment, follow the examples above for deserializing your previously serialized DFAs into regexes. You can then search with them as you would any regex. Deserialization can happen anywhere. For example, with bytes embedded into a binary or with a file memory mapped at runtime. The `regex-cli` command (found in the same repository as this crate) can be used to serialize DFAs to files and generate Rust code to read them. # Syntax This module supports the same syntax as the `regex` crate, since they share the same parser. You can find an exhaustive list of supported syntax in the [documentation for the `regex` crate](https://docs.rs/regex/1/regex/#syntax). There are two things that are not supported by the DFAs in this module: * Capturing groups. The DFAs (and [`Regex`](regex::Regex)es built on top of them) can only find the offsets of an entire match, but cannot resolve the offsets of each capturing group. This is because DFAs do not have the expressive power necessary. * Unicode word boundaries. These present particularly difficult challenges for DFA construction and would result in an explosion in the number of states. One can enable [`dense::Config::unicode_word_boundary`] though, which provides heuristic support for Unicode word boundaries that only works on ASCII text. Otherwise, one can use `(?-u:\b)` for an ASCII word boundary, which will work on any input. There are no plans to lift either of these limitations. Note that these restrictions are identical to the restrictions on lazy DFAs. # Differences with general purpose regexes The main goal of the [`regex`](https://docs.rs/regex) crate is to serve as a general purpose regular expression engine. It aims to automatically balance low compile times, fast search times and low memory usage, while also providing a convenient API for users. In contrast, this module provides a lower level regular expression interface based exclusively on DFAs that is a bit less convenient while providing more explicit control over memory usage and search times. Here are some specific negative differences: * **Compilation can take an exponential amount of time and space** in the size of the regex pattern. While most patterns do not exhibit worst case exponential time, such patterns do exist. For example, `[01]*1[01]{N}` will build a DFA with approximately `2^(N+2)` states. For this reason, untrusted patterns should not be compiled with this module. (In the future, the API may expose an option to return an error if the DFA gets too big.) * This module does not support sub-match extraction via capturing groups, which can be achieved with the regex crate's "captures" API. * While the regex crate doesn't necessarily sport fast compilation times, the regexes in this module are almost universally slow to compile, especially when they contain large Unicode character classes. For example, on my system, compiling `\w{50}` takes about 1 second and almost 15MB of memory! (Compiling a sparse regex takes about the same time but only uses about 1.2MB of memory.) Conversely, compiling the same regex without Unicode support, e.g., `(?-u)\w{50}`, takes under 1 millisecond and about 15KB of memory. For this reason, you should only use Unicode character classes if you absolutely need them! (They are enabled by default though.) * This module does not support Unicode word boundaries. ASCII word boundaries may be used though by disabling Unicode or selectively doing so in the syntax, e.g., `(?-u:\b)`. There is also an option to [heuristically enable Unicode word boundaries](crate::dfa::dense::Config::unicode_word_boundary), where the corresponding DFA will give up if any non-ASCII byte is seen. * As a lower level API, this module does not do literal optimizations automatically. Although it does provide hooks in its API to make use of the [`Prefilter`](crate::util::prefilter::Prefilter) trait. Missing literal optimizations means that searches may run much slower than what you're accustomed to, although, it does provide more predictable and consistent performance. * There is no `&str` API like in the regex crate. In this module, all APIs operate on `&[u8]`. By default, match indices are guaranteed to fall on UTF-8 boundaries, unless either of [`syntax::Config::utf8`](crate::util::syntax::Config::utf8) or [`thompson::Config::utf8`](crate::nfa::thompson::Config::utf8) are disabled. With some of the downsides out of the way, here are some positive differences: * Both dense and sparse DFAs can be serialized to raw bytes, and then cheaply deserialized. Deserialization can be done in constant time with the unchecked APIs, since searching can be performed directly on the raw serialized bytes of a DFA. * This module was specifically designed so that the searching phase of a DFA has minimal runtime requirements, and can therefore be used in `no_std` environments. While `no_std` environments cannot compile regexes, they can deserialize pre-compiled regexes. * Since this module builds DFAs ahead of time, it will generally out-perform the `regex` crate on equivalent tasks. The performance difference is likely not large. However, because of a complex set of optimizations in the regex crate (like literal optimizations), an accurate performance comparison may be difficult to do. * Sparse DFAs provide a way to build a DFA ahead of time that sacrifices search performance a small amount, but uses much less storage space. Potentially even less than what the regex crate uses. * This module exposes DFAs directly, such as [`dense::DFA`] and [`sparse::DFA`], which enables one to do less work in some cases. For example, if you only need the end of a match and not the start of a match, then you can use a DFA directly without building a `Regex`, which always requires a second DFA to find the start of a match. * This module provides more control over memory usage. Aside from choosing between dense and sparse DFAs, one can also choose a smaller state identifier representation to use less space. Also, one can enable DFA minimization via [`dense::Config::minimize`], but it can increase compilation times dramatically. ÁÓí´¹î2Ó dfa-onepassÁ¼Ñî2ü¸î12ü¯î<2ôî2 ÔüÒw,$Øw Ç|üxüÛÖ A DFA that can return spans for matching capturing groups. This module is the home of a [one-pass DFA](DFA). This module also contains a [`Builder`] and a [`Config`] for building and configuring a one-pass DFA. ÁÓ©†/¼âxüÜx<„yòý„’Ÿ¦­®¹ºÀÁÇÈÎÒØ–ÎÐ= – üØ…C ΰD€í à$Š  ±$¥±  䮫¬# �õý\ÏÔ% œãDî±& ®ŠLˆü& ®Šý& �š,¡· Ý—¨™ ˜­£ ë–²�  ‘Ú$ÆØ' "ý”<Ìš( #É–ÄÕ³( $ñ�\…ž) &¦¡L’Ù) 'µ¢<�î) (žD¸§- *—,ÂÑ, +ÕÛ,Éú, ,ÛÀTÐÌ- -Ó¿Lܺ- .ú¹$çÚ, /§ÃL‚ò- 0,Æ-0DÓ,ã„ã”öþüã?öDšéìüãV¬Åà”äÓŒ€Æüã»§ª™œ‹Ž}€üãàuxgjY\üãŸQTCF58üãÒ-0 #öøæè¬öÚ\µÑæ23456789:;´€üÇ41 Return a new default one-pass DFA configuration.Á‡ÑæBÿ11Ø�ü®!6ü¾$! Set the desired match semantics.Áç�üïIF The default is [`MatchKind::LeftmostFirst`], which corresponds to theÁü½FC match semantics of Perl-like regex engines. That is, when multipleÁüˆHE patterns would match at the same leftmost position, the pattern thatÁüÕ30 appears first in the concrete syntax is chosen.Á��ü•B? Currently, the only other kind of match semantics supported isÁüÜHE [`MatchKind::All`]. This corresponds to "classical DFA" constructionÁü©+( where all possible matches are visited.ÁÙ�üáKH When it comes to the one-pass DFA, it is rarer for preference order andÁü±JG "longest match" to actually disagree. Since if they did disagree, thenÁü€HE the regex typically isn't one-pass. For example, searching `Samwise`ÁüÍGD for `Sam|Samwise` will report `Sam` for leftmost-first matching andÁü™KH `Samwise` for "longest match" or "all" matching. However, this regex isÁüéIF not one-pass if taken literally. The equivalent regex, `Sam(?:|wise)`Áü·96 is one-pass and `Sam|Samwise` may be optimized to it.Áõ�üýIF The other main difference is that "all" match semantics don't supportÁüË IF non-greedy matches. "All" match semantics always try to match as muchÁ„™! as possible.ÁTµ!Ñæù¦ÑæBÿ11 3$Ä!¦$Ê!ü»2=ü¥"EB Whether to compile a separate start state for each pattern in theÁŒï" one-pass DFA.Á…#�ü�#GD When enabled, a separate **anchored** start state is added for eachÁüÙ#HE pattern in the DFA. When this start state is used, then the DFA willÁü¦$HE only search for matches for the pattern specified, even if there areÁôó$ other patterns in the DFA.Á–%�üž%HE The main downside of this option is that it can potentially increaseÁüë%KH the size of the DFA and/or increase the time it takes to build the DFA.Á»&�üÃ&IF You might want to enable this option when you want to both search forÁü‘'HE anchored matches of any pattern or to search for anchored matches ofÁüÞ'JG one particular pattern while using the same DFA. (Otherwise, you wouldÁü­(0- need to compile a new DFA for each pattern.)Áâ(�üê(  By default this is disabled.Á�)�l—) # ExampleÁ©)�ü±)EB This example shows how to build a multi-regex and then search forÁüû)HE matches for a any of the patterns or matches for a specific pattern.ÁÈ*�<Ð* ```ÁÌÜ* use regex_automata::{Áüú*=: dfa::onepass::DFA, Anchored, Input, Match, PatternID,Á4¼+ };ÁÇ+�ÜÏ+ let re = DFA::builder()Áüï+?< .configure(DFA::config().starts_for_each_pattern(true))Áü³,,) .build_many(&["[a-z]+", "[0-9]+"])?;Áüä,JG let (mut cache, mut caps) = (re.create_cache(), re.create_captures());Áä³- let haystack = "123abc";ÁüÔ-=: let input = Input::new(haystack).anchored(Anchored::Yes);Á–.�üž.A> // A normal multi-pattern search will show pattern 1 matches.Áüä.2/ re.try_search(&mut cache, &input, &mut caps)?;Áü›/=: assert_eq!(Some(Match::must(1, 0..3)), caps.get_match());ÁÝ/�üå/EB // If we only want to report pattern 0 matches, then we'll get noÁ”¯0 // match here.ÁüÆ0FC let input = input.anchored(Anchored::Pattern(PatternID::must(0)));Áü‘12³©/üÈ1'$ assert_eq!(None, caps.get_match());Áô1�üü1.+ # Ok::<(), Box>(())Á<¯2ä¤/¼Â2ÑæÑæBÿ11 4$Þ2êä2üžA2üÅ3GD Whether to attempt to shrink the size of the DFA's alphabet or not.Á‘4�ü™4IF This option is enabled by default and should never be disabled unlessÁüç4$! one is debugging a one-pass DFA.Á�5�ü˜5IF When enabled, the DFA will use a map from all possible bytes to theirÁüæ5HE corresponding equivalence class. Each equivalence class represents aÁü³6KH set of bytes that does not discriminate between a match and a non-matchÁüƒ7A> in the DFA. For example, the pattern `[ab]+` has at least twoÁüÉ7JG equivalence classes: a set containing `a` and `b` and a set containingÁü˜8B? every byte except for `a` and `b`. `a` and `b` are in the sameÁüß8KH equivalence class because they never discriminate between a match and aÁt¯9 non-match.ÁÂ9�üÊ9FC The advantage of this map is that the size of the transition tableÁü•:DA can be reduced drastically from (approximately) `#states * 256 *ÁüÞ:HE sizeof(StateID)` to `#states * k * sizeof(StateID)` where `k` is theÁü«;IF number of equivalence classes (rounded up to the nearest power of 2).Áüù;HE As a result, total space usage can decrease substantially. Moreover,ÁüÆFC disabled, a byte class map is still used while searching. The onlyÁü†?FC difference is that every byte will be forced into its own distinctÁüÑ?HE equivalence class. This is useful for debugging the actual generatedÁüž@IF transitions because it lets one see the transitions defined on actualÁüì@-* bytes instead of the equivalence classes.Ád¥AÑæÑæBÿ11 5$¶Aê¼AüàO;ü’B>; Set a size limit on the total heap used by a one-pass DFA.ÁÕB�üÝB?< This size limit is expressed in bytes and is applied duringÁü¡CC@ construction of a one-pass DFA. If the DFA's heap usage exceedsÁüéCGD this configured limit, then construction is stopped and an error isÁlµD returned.ÁÇD�äÏD The default is no limit.ÁðD�løD•£/ŠE�ü’EDA This example shows a one-pass DFA that fails to build because ofÁüÛEEB a configured size limit. This particular example also serves as aÁü¥FFC cautionary tale demonstrating just how big DFAs with large UnicodeÁôðF character classes can get.Á“G�<›Gä¤/ü§G=: # if cfg!(miri) { return Ok(()); } // miri takes too longÁüéG30 use regex_automata::{dfa::onepass::DFA, Match};Á¡H�Ä©H // 6MB isn't enough!Á”ÆH DFA::builder()ÁüÝH=: .configure(DFA::config().size_limit(Some(6_000_000)))ÁÌŸI .build(r"\w{20}")Á´½I .unwrap_err();ÁØI�üàI // ... but 7MB probably is!Áü„JHE // (Note that DFA sizes aren't necessarily stable between releases.)ÁÜÑJø¥/üñJ=: .configure(DFA::config().size_limit(Some(7_000_000)))ÁܳK .build(r"\w{20}")?;ÁüÓKJœ§/ü¢L" let haystack = "A".repeat(20);ÁüÉL2/ re.captures(&mut cache, &haystack, &mut caps);Áü€M>; assert_eq!(Some(Match::must(0, 0..20)), caps.get_match());ÁÃM�üËM.Ǭ/<þMä¤/ŠN�ü’NDA While one needs a little more than 3MB to represent `\w{20}`, itÁüÛNDA turns out that you only need a little more than 4KB to representÁü¤O74 `(?-u:\w{20})`. So only use Unicode if you need it!ÁTçOÑæØÚÑæBÿ11 6$öOª¯,üOüœQ)üÝP:7 Returns the match semantics set in this configuration.Át£Qƒ. ƒ.Ñæù¦Bÿ1 ²Q1 7$³Qü…S1ü�RKH Returns whether this configuration has enabled anchored starting statesÁüßR! for every pattern in the DFA.ÁÜŒS„. „.ÑæBÿ1 ¨S1 8$©Sü¯U&üúSGD Returns whether this configuration has enabled byte classes or not.ÁüÆTJG This is typically a debugging oriented option, as disabling it confersÁ¬•U no speed benefit.Á„¶U…. ….ÑæBÿ1 ÇU1 9$ÈUü¬X-ü�VDA Returns the DFA size limit of this configuration if one was set.ÁüÖVEB The size limit is total number of bytes on the heap that a DFA isÁü WHE permitted to use. If the DFA exceeds this limit during construction,ÁüíW:7 then construction is stopped and an error is returned.Át³X†. †.ÑæØÚBÿ1 ÂX1 :$ÃXü�[3L›[‡. ‡.ÑæÑæÑæBÿ1 ¥[1 ;$¦[¥ ¬[d¯o½ç=>?ABCD¼ŒpüÂoEB Create a new one-pass DFA builder with the default configuration.Á“p½çBÿ<<¼‘üŒs=üÌq0- Build a one-pass DFA from the given pattern.Á�r�ü‰rJG If there was a problem parsing or compiling the pattern, then an errorÁ„Ør is returned.ÁÓí”órÔír,“sŒ.�. Œ.½ç �.þïBÿ< ™s<ñŒ$šsîN< süÎuiüûs1. Build a one-pass DFA from the given patterns.Á±t�ü¹tIF When matches are returned, the pattern ID corresponds to the index ofÁü‡u# the pattern in the slice given.ÁÓ픵uÔ¯uTÕuŽ.�. Ž.½ç �.©òþïBÿ<Œ@@ øu<þƵ“ àu£µ“TãuùŽ$ùu¨ ¯¸)+ü×}AüÂw# Build a DFA from the given NFA.Áêw�lòw•£/„x�üŒxGD This example shows how to build a DFA if you already have an NFA inÁLØx hand.Áæx�<îxä¤/üúxGD use regex_automata::{dfa::onepass::DFA, nfa::thompson::NFA, Match};ÁÆy�üÎyEB // This shows how to set non-default options for building an NFA.Áì˜z let nfa = NFA::compiler()Áüºz.+ .configure(NFA::config().shrink(true))Áôíz .build(r"[a-z0-9]+")?;Áü�{1. let re = DFA::builder().build_from_nfa(nfa)?;ÁüÆ{Jœ§/ü•|41 re.captures(&mut cache, "foo123bar", &mut caps);ÁüÎ|=: assert_eq!(Some(Match::must(0, 0..9)), caps.get_match());Á�}�ü˜}.Ǭ/<Ë}ä¤/tÞ}�. �.½ç�»þïBÿ< í}<Ìî$î}ß'ô}ü…ˆ;ü¹‡GD Apply the given one-pass DFA configuration options to this builder.ÁLŒˆ‘. ‘.½çÑæªã/Bÿ< –ˆ< B$›ˆÉ4¡ˆüú‹dü�‰74 Set the syntax configuration for this builder usingÁü̉41 [`syntax::Config`](crate::util::syntax::Config).Á…Š�ü�ŠJG This permits setting things like case insensitivity, Unicode and multiÁtÜŠ line mode.ÁïŠ�ü÷ŠGD These settings only apply when constructing a one-pass DFA directlyÁœÃ‹ from a pattern.ÁÓí”á‹ÔÛ‹4�Œ’. ’.½çÝ’˜ç/Bÿ< ‘Œ< C$–ŒÉ4¤Œü¤�DüŸ�=: Set the Thompson NFA configuration for this builder usingÁüá�<9 [`nfa::thompson::Config`](crate::nfa::thompson::Config).Á¢Ž�üªŽFC This permits setting things like whether additional time should beÁüõŽ(% spent shrinking the size of the NFA.Á¢��üª�EB These settings only apply when constructing a DFA directly from aÁdô� pattern.ÁÓ픋�Ô…�D«�“. “.½ç±ª¢ë/Bÿ< ´�< D$¹�É4¿�䈭ÄFFˆèGHIJLMNP�­üã­;æ­ Ñæ Ä�»ˆèBÿEE GÄÉ4ê­ß'ú­üãÃ-,æÃ ˆèþïBÿEE HÄ$ðÃ但tÀ† —. —.ˆèBÿE φE IÄ$Ô†üâ�¤”å� ˜.™. ˜.ˆèÇ ™.ÝÁÄíÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw¸ïBÿE �‘E JÄ$†‘dfa_idÁ4”‘ž²,­‘®#DÓ‘ΓJ�K�K�KKJKÞÐ»Ô Uÿü˜Ÿ„|›Ÿ š. š.ˆè€ªÇÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwǸïBÿE ´ŸE LÄ$¹Ÿ¾¾ÇŸnfa_idÁ4çŸü¿©pÜ© ›. ›.ˆèÇžñ/BÿE ç©E MÄ$ì©¥ñ/4ú©üÚ²<|ݲ œ. œ.ˆèžñ/BÿE í²E NÄ$ò²š¹N�O�O�OONO»�¸ïUÿ—³ü“ÃvT–à �. �.ˆèÇÄíåî/BÿE ªÃE PÄ$¯Ã¥ñ/4½Ã®#DÖÃDŒ ¡éRSUVWXYZ[\]^_`abcdüð¥4ü› JG Parse the given regular expression using the default configuration andÁüê *' return the corresponding one-pass DFA.Á™¡�ü¡¡HE If you want a non-default configuration, then use the [`Builder`] toÁüî¡ set your own configuration.Á’¢�l𢕣/¬¢�<´¢ä¤/üÀ¢3›Ã/ø¢�ü€£'$ let re = DFA::new("foo[0-9]+bar")?;Áü¬£Jœ§/û£�üƒ¤96 re.captures(&mut cache, "foo12345barzzz", &mut caps);ÁüÁ¤>; assert_eq!(Some(Match::must(0, 0..11)), caps.get_match());Áü„¥.Ǭ/<·¥ä¤/Óí”É¥ÔÃ¥÷¥Ÿ. Ÿ.þïBÿQ „¦Q RîNkÆü̬IüئIF Like `new`, but parses multiple patterns into a single "multi regex."Áü¦§85 This similarly uses the default regex configuration.Áã§�lë§•£/ý§�<…¨ä¤/ü‘¨3›Ã/ɨ�üѨ30 let re = DFA::new_many(&["[a-z]+", "[0-9]+"])?;Áü‰©Jœ§/Ø©�üà©1. re.captures(&mut cache, "abc123", &mut caps);Áü–ª=: assert_eq!(Some(Match::must(0, 0..3)), caps.get_match());Áت�üàª1. re.captures(&mut cache, "123abc", &mut caps);Áü–«=ï©/Ø«�üà«.Ǭ/<“¬ä¤/Ó픥¬ÔŸ¬DÓ¬ .  .©òþïBÿQŒTT õ¬QŸÛ/ ܬ°Û/T߬ Sµ“¨ wÇ!üý·8üÏ­GD Like `new`, but builds a one-pass DFA directly from an NFA. This isÁü›®HE useful if you already have an NFA, or even if you hand-assembled theÁDè® NFA.Áõ®�lý®•£/�¯�ü—¯EB This shows how to hand assemble a regular expression via its HIR,Áüá¯A> compile an NFA from it and build a one-pass DFA from the NFA.Á§°�<¯°ä¤/Ì»°ô¤/ÔÙ° dfa::onepass::DFA,ÁÜø° nfa::thompson::NFA,Át˜± Match,Á4«±Ý¥/ü¶±EB use regex_syntax::hir::{Hir, Class, ClassBytes, ClassBytesRange};Á€²�üˆ²;8 let hir = Hir::class(Class::Bytes(ClassBytes::new(vec![ÁüȲ)& ClassBytesRange::new(b'0', b'9'),Áüö²)& ClassBytesRange::new(b'A', b'Z'),Áü¤³)& ClassBytesRange::new(b'_', b'_'),ÁüÒ³)& ClassBytesRange::new(b'a', b'z'),ÁL€´ ])));ÁŽ´�ü–´;8 let config = NFA::config().nfa_size_limit(Some(1_000));ÁüÖ´FC let nfa = NFA::compiler().configure(config).build_from_hir(&hir)?;Á¡µ�ü©µ%" let re = DFA::new_from_nfa(nfa)?;ÁüÓµJœ§/ü¢¶.+ let expected = Some(Match::must(0, 0..1));ÁüÕ¶,) re.captures(&mut cache, "A", &mut caps);Áü†·+( assert_eq!(expected, caps.get_match());Á¶·�ü¾·.Ǭ/<ñ·ä¤/d„¸�»þïBÿQQ Uß'‘¸üß½0üî¸74 Create a new one-pass DFA that matches every input.Áª¹�l²¹•£/Ĺ�<̹ä¤/üع3›Ã/�º�ü˜º# let dfa = DFA::always_match()?;ÁüÀº'$ let mut cache = dfa.create_cache();Áüìº)& let mut caps = dfa.create_captures();Áš»�ü¢»(% let expected = Match::must(0, 0..0);ÁüÏ»,) dfa.captures(&mut cache, "", &mut caps);Áü€¼1. assert_eq!(Some(expected), caps.get_match());Áü¶¼/, dfa.captures(&mut cache, "foo", &mut caps);Áüê¼1†�0ü ½.Ǭ/<Ó½ä¤/dæ½þïBÿQQ Vü£Ã/üù¾;8 Create a new one-pass DFA that never matches any input.Á¹¿�lÁ¿•£/Ó¿�<Û¿ä¤/üç¿*' use regex_automata::dfa::onepass::DFA;Á–À�üžÀ" let dfa = DFA::never_match()?;ÁüÅÀ'©�0üñÀ)Û�0ŸÁ�ü§Á,ÏŽ0üØÁ'Ь/ü„Â/Â�0ü¸Â'Ь/üäÂ.Ǭ/<—Ãä¤/\ªÃþïBÿQQ WÌ¥Îü»Ä-* Return a default configuration for a DFA.ÁíÄ�üõÄIF This is a convenience routine to avoid needing to import the `Config`ÁüÃÅ41 type when customizing the construction of a DFA.ÁüÅ�l„Æ•£/–Æ�üžÆIF This example shows how to change the match semantics of this DFA fromÁüìÆKH its default "leftmost first" to "all." When using "all," non-greedinessÁü¼ÇJG doesn't apply and neither does preference order matching. Instead, theÁü‹ÈJG longest match possible is always returned. (Although, by construction,ÁüÚÈEB it's impossible for a one-pass DFA to have a different answer forÁü¤É+( "preference order" vs "longest match.")ÁÔÉ�<ÜÉä¤/üèÉ>; use regex_automata::{dfa::onepass::DFA, Match, MatchKind};Á«Ê�ܳÊø¥/üÓÊ<9 .configure(DFA::config().match_kind(MatchKind::All))Áä”Ë .build(r"(abc)+?")?;ÁüµË&# let mut cache = re.create_cache();ÁüàË(% let mut caps = re.create_captures();Á�Ì�ü•Ì1. re.captures(&mut cache, "abcabc", &mut caps);ÁüËÌFC // Normally, the non-greedy repetition would give us a 0..3 match.Áü–Í=: assert_eq!(Some(Match::must(0, 0..6)), caps.get_match());ÁüØÍ.Ǭ/<‹Îä¤/4¬ÎÑæBÿQQ XÜ­×üâÎ?< Return a builder for configuring the construction of a DFA.Á¦Ï�ü®Ï@= This is a convenience routine to avoid needing to import theÁüóÏ%" [`Builder`] type in common cases.Á�Ð�l¥Ð•£/·Ð�ü¿ÐDA This example shows how to use the builder to disable UTF-8 mode.ÁˆÑ�<�Ñä¤/üœÑ=ÔÂ/ÌÞÑô¤/ÔüÑîƒ0´›Ò nfa::thompson,Á¬¶Ò util::syntax,ÁtÐÒ·„04ãÒÝ¥/îÒ�ÜöÒø¥/ü–Ó2/ .syntax(syntax::Config::new().utf8(false))ÁüÍÓ63 .thompson(thompson::Config::new().utf8(false))ÁüˆÔ&# .build(r"foo(?-u:[^b])ar.*")?;Áü³ÔJœ§/‚Õ�üŠÕ0- let haystack = b"foo\xFFarzz\xE2\x98\xFF\n";Áü¿Õ.+ let expected = Some(Match::must(0, 0..8));ÁüòÕ1. re.captures(&mut cache, haystack, &mut caps);Áü¨Ö+ÄŠ0ØÖ�üàÖ.Ǭ/<“×ä¤/<´×½çBÿQQÃŒüçÛ)üí×GD Create a new empty set of capturing groups that is guaranteed to beÁü¹Ø*' valid for the search APIs on this DFA.ÁèØ�üðØIF A `Captures` value created for a specific DFA cannot be used with anyÁt¾Ù other DFA.ÁÑÙ�üÙÙA> This is a convenience function for [`Captures::all`]. See theÁüŸÚDA [`Captures`] documentation for an explanation of its alternativeÁüèÚIF constructors that permit the DFA to do less work during a search, andÁô¶Û thus might make it faster.Á|îÛ¡. ¡.¡é˜ÛBÿQ þÛQ Z$ÿÛü€ß#üÓÜ$! Create a new cache for this DFA.ÁüÜ�ü„Ý@= The cache returned should only be used for searches for thisÁüÉÝA> DFA. If you want to reuse the cache for another DFA, then youÁü�Þ?< must call [`Cache::reset`] with that DFA (or, equivalently,ÁÔÓÞ [`DFA::reset_cache`]).Ád‡ß¢. ¢.¡é�ëBÿQ ”ßQ [$•ßü„ë,üÊßIF Reset the given cache such that it can be used for searching with theÁü˜à! this DFA (and only this DFA).Á¾à�üÆàHE A cache reset permits reusing memory already allocated in this cacheÁÌ“á with a different DFA.Á±á�l¹á•£/Ëá�üÓáFC This shows how to re-purpose a cache for use with a different DFA.Ážâ�<¦âä¤/ü²â=ÔÂ/üôâ3›Ã/¬ã�ü´ã let re1 = DFA::new(r"\w")?;ÁüØã let re2 = DFA::new(r"\W")?;Áüüã*' let mut caps1 = re1.create_captures();Áü«ä*' let mut caps2 = re2.create_captures();ÁÚä�üâä'$ let mut cache = re1.create_cache();Á|Žå assert_eq!(Áü¢å# Some(Match::must(0, 0..2)),ÁüÊåJG { re1.captures(&mut cache, "Δ", &mut caps1); caps1.get_match() },Á4™æ );Á¤æ�ü¬æHE // Using 'cache' with re2 is not allowed. It may result in panics orÁüùæIF // incorrect results. In order to re-purpose the cache, we must resetÁüÇç96 // it with the one-pass DFA we'd like to use it with.Á4…è //Áü�èJG // Similarly, after this reset, using the cache with 're1' is also notÁ|ßè // allowed.Áüóè  re2.reset_cache(&mut cache);Á|˜é¡´0ü¬é# Some(Match::must(0, 0..3)),ÁüÔéKH { re2.captures(&mut cache, "☃", &mut caps2); caps2.get_match() },Á4¤ê½µ0¯ê�ü·ê.Ǭ/<êêä¤/\‹ë£.¤. £.¡é ¤.�ëBÿQ —ëQ \$˜ëóA›Êü˜ì#üÙë,) Return the config for this one-pass DFA.ÁTŸì¥. ¥.¡é ¥.ÑæBÿQ ªìQ ]$«ììŸíüÞì.+ Returns a reference to the underlying NFA.Á<¦í¦. ¦.¡é ¦.�»BÿQ ®íQ¼˜$¯íü�ï"üÜí@= Returns the total number of patterns compiled into this DFA.Á¡î�ü©îEB In the case of a DFA that contains no patterns, this returns `0`.Á\ˆï§. §.¡éBÿQ ”ïQ _$•ïüçñ üÖï<9 Returns the total number of states in this one-pass DFA.Á—ð�üŸðIF Note that unlike dense or sparse DFAs, a one-pass DFA does not exposeÁüíðJG a low level DFA API. Therefore, this routine has little use other thanÁļñ being informational.ÁLîñ¨. ¨.¡éBÿQ øñQã÷$ùñüŒÿ#üÀòFC Returns the total number of elements in the alphabet for this DFA.Á‹ó�ü“óC@ That is, this returns the total number of transitions that eachÁüÛóHE state in this DFA must have. The maximum alphabet size is 256, whichÁü¨ô,) corresponds to each possible byte value.ÁÙô�üáô=: The alphabet size may be less than 256 though, and unlessÁü£õHE [`Config::byte_classes`] is disabled, it is typically must less thanÁüðõHE 256. Namely, bytes are grouped into equivalence classes such that noÁü½öIF two bytes in the same class can distinguish a match from a non-match.Áü‹÷EB For example, in the regex `^[a-z]+$`, the ASCII bytes `a-z` couldÁüÕ÷GD all be in the same equivalence class. This leads to a massive spaceÁd¡ø savings.Á²ø�üºøIF Note though that the alphabet length does _not_ necessarily equal theÁüˆùGD total stride space taken up by a single DFA state in the transitionÁüÔùDA table. Namely, for performance reasons, the stride is always theÁü�úGD smallest power of two that is greater than or equal to the alphabetÁüéúDA length. For this reason, [`DFA::stride`] or [`DFA::stride2`] areÁü²ûGD often more useful. The alphabet length is typically useful only forÁÜþû informational purposes.Ážü�ü¦üC@ Note also that unlike dense or sparse DFAs, a one-pass DFA doesÁüîüEB not have a special end-of-input (EOI) transition. This is becauseÁü¸ýFC a one-pass DFA handles look-around assertions explicitly (like theÁüƒþHE [`PikeVM`](crate::nfa::thompson::pikevm::PikeVM)) and does not buildÁüÐþ)& them into the transitions of the DFA.Ád“ÿ©. ©.¡éBÿQ  ÿQÎû$¡ÿôèŠü×ÿJG Returns the total stride for every state in this DFA, expressed as theÁü¦€JG exponent of a power of 2. The stride is the amount of space each stateÁüõ€KH takes up in the transition table, expressed as a number of transitions.ÁüÅ�,) (Unused transitions map to dead states.)Áö��üþ�EB The stride of a DFA is always equivalent to the smallest power ofÁüÈ‚FC 2 that is greater than or equal to the DFA's alphabet length. ThisÁü“ƒHE definition uses extra space, but possibly permits faster translationÁüàƒKH between state identifiers and their corresponding offsets in this DFA'sÁ¬°„ transition table.ÁÊ„�üÒ„JG For example, if the DFA's stride is 16 transitions, then its `stride2`Áä¡… is `4` since `2^4 = 16`.ÁÂ…�üÊ…IF The minimum `stride2` value is `1` (corresponding to a stride of `2`)Áü˜†GD while the maximum `stride2` value is `9` (corresponding to a strideÁüä†GD of `512`). The maximum in theory should be `8`, but because of someÁü°‡KH implementation quirks that may be relaxed in the future, it is one moreÁü€ˆFC than `8`. (Do note that a maximal stride is incredibly rare, as itÁüˈHE would imply that there is almost no redundant in the regex pattern.)Á˜‰�ü ‰I§À0üî‰JûÀ0ĽŠÏÁ0<. ª.¡éBÿQ ÷ŠQš$øŠì„�ü©‹JG Returns the total stride for every state in this DFA. This correspondsÁüø‹GD to the total number of transitions used by each state in this DFA'sÁ¬ÄŒ€Ö0ÞŒ�üæŒIF Please see [`DFA::stride2`] for more information. In particular, thisÁü´�GD returns the stride as the number of transitions, where as `stride2`Áü€Ž/, returns it as the exponent of a power of 2.Á´Ž�ü¼ŽI§À0üŠ�JûÀ0ÄÙ�ÏÁ04‹�«. «.¡éBÿQ ’�Q c$“�ü’“#üË�41 Returns the memory usage, in bytes, of this DFA.Á„‘�üŒ‘EB The memory usage is computed based on the number of bytes used toÁ¼Ö‘ represent this DFA.Áò‘�üú‘DA This does **not** include the stack size used up by this DFA. ToÁüÃ’<9 compute that, use `std::mem::size_of::()`.Ád™“¬. ¬.¡éBÿQ ¦“Q d$§“”Ä“<Ï“DÌ”¡égjmpqrü¹¬rüÛ”IF Executes an anchored leftmost forward search, and returns true if andÁü©•96 only if this one-pass DFA matches the given haystack.Áç•�üï•C@ This routine may short circuit if it knows that scanning futureÁü·–FC input will never lead to a different result. In particular, if theÁü‚—FC underlying DFA enters a match state, then this routine will returnÁüÍ—IF `true` immediately without inspecting any future input. (Consider howÁü›˜EB this might make a difference given the regex `a+` on the haystackÁüå˜IF `aaaaaaaaaaaaaaa`. This routine can stop after it sees the first `a`,Áü³™FC but routines like `find` need to continue searching because `+` isÁ¼þ™ greedy by default.)Ášš�ü¢šGD The given `Input` is forcefully set to use [`Anchored::Yes`] if theÁüîšDA given configuration was [`Anchored::No`] (which is the default).Á·›�d¿› # PanicsÁЛ�üØ›HE This routine panics if the search could not complete. This can occurÁü¥œ# in the following circumstances:ÁÍœ�üÕœC@ * When the provided `Input` configuration is not supported. ForÁü��A> example, by providing an unsupported anchor mode. Concretely,Áüã�A> this occurs when using [`Anchored::Pattern`] without enablingÁü©ž(% [`Config::starts_for_each_pattern`].ÁÖž�üÞžGD When a search panics, callers cannot know whether a match exists orÁDªŸ not.Á·Ÿ�ü¿ŸGD Use [`DFA::try_search`] if you want to handle these panics as errorÁœ‹  values instead.Á£ �l« •£/½ �ÜÅ  This shows basic usage:Áå �<í ä¤/üù *Û‘0¨¡�ü°¡'„ø/üÜ¡&Ê›0‡¢�ü�¢41 assert!(re.is_match(&mut cache, "foo12345bar"));ÁüÈ¢0- assert!(!re.is_match(&mut cache, "foobar"));Áüý¢.Ǭ/<°£ä¤/¼£�üÄ£+( # Example: consistency with search APIsÁô£�üü£IF `is_match` is guaranteed to return `true` whenever `captures` returnsÁüʤGD a match. This includes searches that are executed entirely within aÁt–¥ codepoint:Á©¥�<±¥ä¤/ü½¥30 use regex_automata::{dfa::onepass::DFA, Input};Áõ¥�ìý¥ let re = DFA::new("a*")?;ÁüŸ¦&Ê›0ʦ�üÒ¦DA assert!(!re.is_match(&mut cache, Input::new("☃").span(1..2)));Áü›§.Ǭ/<Χä¤/Ú§�üâ§EB Notice that when UTF-8 mode is disabled, then the above reports aÁü¬¨IF match because the restriction against zero-width matches that split aÁôú¨ codepoint has been lifted:Á�©�<¥©ä¤/ü±©GD use regex_automata::{dfa::onepass::DFA, nfa::thompson::NFA, Input};Áý©�Ü…ªø¥/ü¥ª,) .thompson(NFA::config().utf8(false))Á´Öª .build("a*")?;Áüñª&Ê›0œ«�ü¤«C@ assert!(re.is_match(&mut cache, Input::new("☃").span(1..2)));Áüì«.Ǭ/<Ÿ¬ä¤/DÀ¬­.®. ­.¡é ®.�ëÓ¤Bÿf¸h…ihi ê¬fþÆÓ¤ ͬ©Ó¤¿�|Ь g¸Ó¤$ë¬óAfÕ–`qÕɬGIü§Äwüª¯JG Executes an anchored leftmost forward search, and returns a `Match` ifÁüù¯=: and only if this one-pass DFA matches the given haystack.Á»°�üðKH This routine only includes the overall match span. To get access to theÁü“±DA individual spans of each capturing group, use [`DFA::captures`].Áܱ�üä±GÍê0ü°²DŸë0ù²�d�³úë0’³�üš³Hžì0üç³#ñì0�´�ü—´C¬í0üß´Aúí0ü¥µAÆî0üëµ(’ï0˜¶�ü ¶GÒï0Dì¶£ð0ù¶�ü�·GÃð0œÍ·”ñ0å·�lí·•£/ÿ·�ü‡¸DA Leftmost first match semantics corresponds to the match with theÁüиGD smallest starting offset, but where the end offset is determined byÁüœ¹GD preferring earlier branches in the original regular expression. ForÁüè¹KH example, `Sam|Samwise` will match `Sam` in `Samwise`, but `Samwise|Sam`Áü¸º&# will match `Samwise` in `Samwise`.Áãº�üëºKH Generally speaking, the "leftmost first" match is how most backtrackingÁü»»HE regular expressions tend to work. This is in contrast to POSIX-styleÁüˆ¼FC regular expressions that yield "leftmost longest" matches. Namely,ÁüÓ¼C@ both `Sam|Samwise` and `Samwise|Sam` match `Samwise` when usingÁü›½FC leftmost longest semantics. (This crate does not currently supportÁüæ½  leftmost longest semantics.)Á‹¾�<“¾ä¤/üŸ¾3›Ã/×¾�üß¾$! let re = DFA::new("foo[0-9]+")?;Áüˆ¿&Ê›0ü³¿(% let expected = Match::must(0, 0..8);Áüà¿@= assert_eq!(Some(expected), re.find(&mut cache, "foo12345"));Á¥À�ü­ÀGD // Even though a match is found after reading the first byte (`a`),ÁüùÀJG // the leftmost first match semantics demand that we find the earliestÁüÈÁHE // match that prefers earlier parts of the pattern over later parts.Áü•  let re = DFA::new("abc|a")?;ÁüºÂ&Ê›0üåÂ(% let expected = Match::must(0, 0..3);Áü’Ã;8 assert_eq!(Some(expected), re.find(&mut cache, "abc"));ÁÒÃ�üÚÃ.Ǭ/<�Ää¤/$®Ä¯.°. ¯.¡é °.�ëÓ¤³¶Bÿf¸k…llk ÔÄfÀþ0 ·ÄÒþ0|ºÄ j¸Ó¤$ÕÄóAÌã–`×ã³Ä;=üÒÛ‡ü»ÌEB Executes an anchored leftmost forward search and writes the spansÁü…ÍFC of capturing groups that participated in a match into the providedÁüÐÍJG [`Captures`] value. If no match was found, then [`Captures::is_match`]ÁüŸÎ$! is guaranteed to return `false`.ÁÈÎ�üÐÎGÍê0üœÏDŸë0åÏ�díÏúë0þÏ�ü†ÐHžì0üÓÐ#ñì0ûÐ�üƒÑC¬í0üËÑAúí0ü‘ÒAÆî0ü×Ò(’ï0„Ó�üŒÓGÒï0DØÓ£ð0åÓ�üíÓGÃð0œ¹Ô”ñ0ÑÔ�lÙÔ•£/ëÔ�üóÔA> This shows a simple example of a one-pass regex that extractsÁÔ¹Õ capturing group spans.ÁØÕ�<àÕä¤/üìÕ96 use regex_automata::{dfa::onepass::DFA, Match, Span};ÁªÖ�´²Ö let re = DFA::new(ÁüÍÖIF // Notice that we use ASCII here. The corresponding Unicode regexÁü›×! // is sadly not one-pass.ÁüÁ×DA "(?P[[:alpha:]]+)[[:space:]]+(?P[[:alpha:]]+)",Á<ŠØ )?;Áü–ØJœ§/åØ�üíØ<9 re.captures(&mut cache, "Bruce Springsteen", &mut caps);Áü®Ù>; assert_eq!(Some(Match::must(0, 0..17)), caps.get_match());ÁüñÙ:7 assert_eq!(Some(Span::from(0..5)), caps.get_group(1));Áü°ÚHE assert_eq!(Some(Span::from(6..17)), caps.get_group_by_name("last"));ÁýÚ�ü…Û.Ǭ/<¸Ûä¤/DÙÛ±.².³. ±.¡é ².�ëÓ¤ ³.˜ÛBÿf¸n…ono ƒÜfÀþ0 æÛÒþ0|éÛ m¸Ó¤$„ÜóAÃê–`ÎêɾÜêâÛDFüº†”ü·ÞEŸ‘1ü�ßFï‘1üÌßJÀ’1ü›à$•“1Äà�üÌà/, The differences with [`DFA::captures`] are:Á€á�üˆáFC 1. This returns an error instead of panicking if the search fails.ÁüÓáKH 2. Accepts an `&Input` instead of a `Into`. This permits reusingÁü£âFC the same input for multiple searches, which _may_ be important forÁdîâ latency.ÁüÿâIF 3. This does not automatically change the [`Anchored`] mode from `No`ÁüÍãHE to `Yes`. Instead, if [`Input::anchored`] is `Anchored::No`, then anÁ´šä error is returned.Áµä�d½ä # ErrorsÁÎä�üÖäHE This routine errors if the search could not complete. This can occurÁü£å#ñì0Ëå�üÓåC¬í0ü›æAúí0üáæAÆî0ü§ç(’ï0Ôç�üÜçGD When a search returns an error, callers cannot know whether a matchÁ”¨è exists or not.Á¿è�üÇè&# # Example: specific pattern searchÁòè�üúèHE This example shows how to build a multi-regex that permits searchingÁüÇéFC for specific patterns. Note that this is somewhat less useful thanÁü’êEB in other regex engines, since a one-pass DFA by definition has noÁüÜêIF ambiguity about which pattern can match at a position. That is, if itÁüªëJG were possible for two different patterns to match at the same startingÁüùëIF position, then the multi-regex would not be one-pass and constructionÁ´Çì would have failed.Áâì�üêìIF Nevertheless, this can still be useful if you only care about matchesÁü¸íIF for a specific pattern, and want the DFA to report "no match" even ifÁü†î*' some other pattern would have matched.Áµî�ü½î96 Note that in order to make use of this functionality,ÁüûîGD [`Config::starts_for_each_pattern`] must be enabled. It is disabledÁüÇï:7 by default since it may result in higher memory usage.Á†ð�<Žðä¤/Ìšðô¤/ü¸ð=—¥/4úðÝ¥/…ñ�Ü�ñø¥/ü­ñ?�¦/üññ,æ¦/ü¢òJœ§/äñòï§/ü’ó=•¨/Ôó�üÜóAè¨/ü¢ô2³©/üÙô=ï©/›õ�ü£õEª/”íõ�«/ü„öF¬«/üÏö2³©/ü†÷'Ь/²÷�üº÷.Ǭ/<í÷ä¤/ù÷�ü�ø0- # Example: specifying the bounds of a searchÁ¶ø�ü¾øGD This example shows how providing the bounds of a search can produceÁüŠù;8 different results than simply sub-slicing the haystack.ÁÊù�<Òùä¤/üÞù=ÔÂ/ü úDA use regex_automata::{dfa::onepass::DFA, Anchored, Input, Match};Áéú�üñú;8 // one-pass DFAs fully support Unicode word boundaries!Áü±ûKH // A sad joke is that a Unicode aware regex like \w+\s is not one-pass.ÁT�ü // :-(Áü�ü(% let re = DFA::new(r"\b[0-9]{3}\b")?;Áü½üJœ§/üŒý let haystack = "foo123bar";Á°ý�ü¸ýEB // Since we sub-slice the haystack, the search doesn't know aboutÁü‚þFC // the larger context and assumes that `123` is surrounded by wordÁüÍþIF // boundaries. And of course, the match position is reported relativeÁü›ÿEB // to the sub-slice as well, which means we get `0..3` instead ofÁtåÿ // `3..6`.Áüøÿ.+ let expected = Some(Match::must(0, 0..3));Áü«€DA let input = Input::new(&haystack[3..6]).anchored(Anchored::Yes);Áüô€2³©/ü«�+ÄŠ0Û��üã�KH // But if we provide the bounds of the search within the context of theÁü³‚HE // entire haystack, then the search can take the surrounding contextÁü€ƒFC // into account. (And if we did find a match, it would be reportedÁü˃C@ // as a valid offset into `haystack` instead of its sub-slice.)ÁÄ“„ let expected = None;Áü°„IF let input = Input::new(haystack).range(3..6).anchored(Anchored::Yes);Áüþ„2³©/üµ…+ÄŠ0å…�üí….Ǭ/< †ä¤/TÁ†´.µ.¶.·.¸. ´.¡é µ.�ë ¶.Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²·. ¸.˜Û²×Bÿf Õ†f”Õ$Ö†óADî–`OîɾZîü¯¢·üÔˆEŸ‘1üž‰Fï‘1üé‰EB `slots`, and returns the matching pattern ID. The contents of theÁü³ŠJG slots for patterns other than the matching pattern are unspecified. IfÁü‚‹GD no match was found, then `None` is returned and the contents of allÁÜ΋ `slots` is unspecified.Áî‹�üö‹FC This is like [`DFA::try_search`], but it accepts a raw slots sliceÁüÁŒGD instead of a `Captures` value. This is useful in contexts where youÁü��0- don't want or need to allocate a `Captures`.ÁÂ��üÊ�KH It is legal to pass _any_ number of slots to this routine. If the regexÁüšŽFC engine would otherwise write a slot offset that doesn't fit in theÁüåŽKH provided slice, then it is simply skipped. In general though, there areÁüµ�63 usually three slice lengths you might want to use:Áð��üø�C@ * An empty slice, if you only care about which pattern matched.Á”À� * A slice withÁü×�@= [`pattern_len() * 2`](crate::dfa::onepass::DFA::pattern_len)Áüœ‘KH slots, if you only care about the overall match spans for each matchingÁdì‘áé/”ý‘ôÇ1ü”’KH [`slot_len()`](crate::util::captures::GroupInfo::slot_len) slots, whichÁüä’FC permits recording match offsets for every capturing group in everyÁd¯“áé/À“�dÈ“•£1Ù“�üá“H¹£1ü®”#ñì0Ö”�üÞ”C¬í0ü¦•Aúí0üì•AÆî0ü²–(’ï0ß–�üç–Gñ¤1”³—Â¥1Ê—�lÒ—•£/ä—�üì—A> This example shows how to find the overall match offsets in aÁü²˜JG multi-pattern search without allocating a `Captures` value. Indeed, weÁü�™)& can put our slots right on the stack.Á¯™�<·™ä¤/üÙHE use regex_automata::{dfa::onepass::DFA, Anchored, Input, PatternID};Á�š�옚 let re = DFA::new_many(&[Á¬ºš r"[a-zA-Z]+",Á”Ôš r"[0-9]+",ÁDëš ])?;Áüøš&Ê›0ü£›:7 let input = Input::new("123").anchored(Anchored::Yes);Áâ›�üê›DA // We only care about the overall match offsets here, so we justÁü³œGD // allocate two slots for each pattern. Each slot records the startÁäÿœ // and end of the match.Áô � let mut slots = [None; 4];ÁüÃ�C@ let pid = re.try_search_slots(&mut cache, &input, &mut slots)?;Áü‹ž.+ assert_eq!(Some(PatternID::must(1)), pid);Á¾ž�üÆžKH // The overall match offsets are always at 'pid * 2' and 'pid * 2 + 1'.Áü–ŸIF // See 'GroupInfo' for more details on the mapping between groups andÁ¤äŸ // slot indices.ÁüýŸ1. let slot_start = pid.unwrap().as_usize() * 2;Áü³ " let slot_end = slot_start + 1;ÁüÚ <9 assert_eq!(Some(0), slots[slot_start].map(|s| s.get()));Áü›¡:7 assert_eq!(Some(3), slots[slot_end].map(|s| s.get()));ÁÚ¡�üâ¡.Ǭ/<•¢ä¤/„¶¢¹.º.».¼.½. ¹.¡é º.�ë ».Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²¼. ½. ©ä¬Bÿf Тf¹©$Ñ¢óAæ÷–`ñ÷©&ü÷üŒ­·¤�­ ¾.¿.À.Á.Â. ¾.¡é ¿.�ë À.Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Á. Â. ©ä¬Bÿf ­­f“â$®­óA,¼­–`,×­©&,ò­D¢º¡étuü±º­T´º Ã.Ä.Å.Æ.Ç. Ã.¡é Ä.�ë Å.Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Æ. Ç. ©ä¬Bÿs Ⱥs t$ɺóA,׺–`,òº©&,�»üŸòâT¢ò È.É.Ê.Ë.Ì.Í. È.¡é É.�ë Ê.Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Ë.Ç Ì. © Í.€ªBÿs ¶òs u$·òóA,Åò–`,àò™´ûò ØŽó©&,¤ó matched_pidÁ\ÏóD؃¡éwxyz{|}~€�Ô¶„,¹„ Î. Î.¡éÇBÿv ¿„v w$À„üæ†Flé† Ï. Ï.¡é›†ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÇÛ†Bÿv ÷†v x$ø†¾¾þ†üÖŽ:TÙŽ Ð. Ð.¡éÇéëBÿv äŽv y$厠ØëŽ—»$ùŽü•‘Dt˜‘ Ñ. Ñ.¡éÇéëBÿv §‘v z$¬‘ Ø²‘—»$À‘toÁÊ‘üš—F”�— Ò. Ò.¡éÇŸŸ—«¡ÛË ¢Ä« 6›âu5ôQJÒ.Bÿv °—v {$±— Ø·—üŽ›;„‘› Ó. Ó.¡éÇêìBÿv ¢›v |$£› Ø©›üŠ�I¤�� Ô. Ô.¡éÇêìBÿv ¢�v }$§� Ø­�patepsÁ4»�üן7lÚŸ Õ. Õ.¡éÇŠöBÿv èŸv ~$韈CïŸüá£"lä£ Ö. Ö.¡éÇBÿv ò£v $ó£ü•©@\£© ×. ×.¡éÇÇBÿv ¯©v €$´©id1Áº©id2ÁÈ©ü”¬@,¢¬ Ø. Ø.¡é«€Bÿv¾ ‚‚ ¨¬vþÆ«€ܸ¬…#«€±€´½¬�#«€±€Ç<̬ëÈ$­¬ƒ “FHìݯ¡é„ g„ü�°@„°Ù.Ú.Û. Ù.¡é Ú.€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Û.­àBÿƒ ˆ°ƒ „$‰°œ �°ṵ̈•¼Ï° Ü.Ý.Þ. Ü.€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ý. Þ.¡éÇ­àBÿ ÷° …œ ô°Òž± Øµ±üÊÅ.ć‡ÊꈉÅQÆQ‰ÏÅLÿÅ$„Ɔ†ïŽü¦Æ2$©Æâ. â.ÊꪎBÿ† ®Æ† ‰Ä$³ÆT¢Ù�닌�Ž�ì²Üü³Ù-* Create a new [`onepass::DFA`](DFA) cache.ÁåÙ�üíÙ>; A potentially more convenient routine to create a cache isÁü°ÚDA [`DFA::create_cache`], as it does not require also importing theÁŒùÚ `Cache` type.Á�Û�ü—ÛKH If you want to reuse the returned `Cache` with some other one-pass DFA,ÁüçÛFC then you must call [`Cache::reset`] with the desired one-pass DFA.Á¹Üç. ç.¡é�ëBÿŠ ÁÜŠ¸”é¾½Üü–é!üÔÝB? Reset this cache such that it can be used for searching with aÁü›Þ$! different [`onepass::DFA`](DFA).ÁÄÞ�üÌÞHð¯0ü™ß" with a different one-pass DFA.ÁÀß�lÈß•£/Úß�üâßJG This shows how to re-purpose a cache for use with a different one-passÁD±à DFA.Á¾à�<Æàä¤/üÒà=ÔÂ/ü”á3›Ã/Ìá�üÔᥲ0üøáϲ0üœâ*ù²0üËâ*®³0úâ�ü‚ã'ð³0|®ã¡´0üÂã#»´0üêãJé´04¹ä½µ0Ää�üÌäHÛµ0ü™åI®¶0üçå9‚·04¥æÅ·0ü°æJÖ·0|ÿ檸0ü“ç ĸ0|¸ç¡´0üÌç#ý¸0üôçK«¹04Äè½µ0Ïè�ü×è.Ǭ/<Šéä¤/,�éè.é. è.�ë é.¡éBÿŠ £éм•$¨éé¾®éüÒì#ü…ë;8 Returns the heap memory usage, in bytes, of this cache.ÁÅë�üÍëFC This does **not** include the stack size used up by this cache. ToÁü˜ì52 compute that, use `std::mem::size_of::()`.ÁdÙìê. ê.�ëBÿŠ æìŠ �$çìüÓí:tÖí ë. ë.�ë ë. ©BÿŠ åíŠ Ž$êíüÖî4dÙî ì. ì.�ëBÿŠ æîŠ �$ëîÔÁŒñî|¹óéë‘’“”•–—˜™š›ÄÏólÕó ��Ìòótøó ��̲ôt¸ô ��Üòô„øô ��¤ºõLÀõ ��üºöH½ö ÇÄíéëBÿ�� –ø"TÁö ØÓö®#Dáöijù<¶ù éëBÿ�� —$¾ùä·ýTºý ñ. ñ.éëBÿ� Åý� ˜$ÆýìÞþDáþ ò. ò.éëÇBÿ� êþ�Øþ$ëþü΂(dÑ‚ ó. ó.éëÇBÿ� Þ‚�à€$ã‚ Øé‚ô‡„DŠ„ ô. ô.éëÄíBÿ� “„� ›$”„üâ„$éë� g�ü�…@�…õ.ö.÷. õ.éë ö.€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡÷.­àBÿœ ”…œ �$•…œ ›…¤”Žê쟠¡¢£¤¥¦§¨©ª«Ô¯Ž|µŽ žžÜÔŽ„ÚŽ žžÔ•�|›� žžÜË�„Ñ� žžÔ�‘|•‘ žžÄÅ‘lË‘ žžì�“,„“ êìBÿžž ¥Ì­•D°• êìBÿžž ¦$¹•üÜ–(Tß– ê쀪Bÿžž §$ê–üŸœ*¤¢œ ê웆Bÿžž ¨$·œü§ž:tªž ê웆êìBÿžž ©$¹ž¾¾¿žìÊ DÍ  êìÄíBÿžž ª$Ö ü�¢<d’¢ êìÄíêìBÿžž «$Ÿ¢®#D¥¢üþ£)êì­ g­ü®¤@±¤ù.ú.û. ù.êì ú.€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡û.­àBÿ¬ µ¤¬ ­$¶¤œ ¼¤lü¯Äí¯°±²³´µ¶·¤�°L–° ®®¬À°Tư ®®¤à°Læ° ®®´û±,þ± ÄíBÿ®® ²Ìþ²D�³ ÄíBÿ®® ³$г¼ç³,ê³ ÄížîBÿ®® ´$ð³üð´,Ló´ ÄížîÄíBÿ®® µ$ý´©&,ƒµÌ€·,ƒ· Äí¯ñBÿ®® ¶$‰·ü¯¸1L²¸ Äí¯ñÄíBÿ®® ·$¼¸look_setÁD¸ü÷¹"Äí¹ g¹ü º@£ºý.þ.ÿ. ý.Äí þ.€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ÿ.­àBÿ¸ §º¸ ¹$¨ºœ ®ºT•̞½¾¿À”¦Ì,¬Ì ººüôÌ%4÷Ì žîžîBÿºº ¼$þÌùÀ$„Íü°Î%4³Î žîžîBÿºº ½$ºÎùÀ$ÀÎÌýÏD€Ð žîBÿºº ¾$‰ÐÔúÐ$ýÐ žîøîBÿºº ¿$‚Ñü©Õk,¬Õ �/žî �/ ©Bÿº óÕº À$»Õ™´ÉÕcaller_explicit_slotsÁ¬ÜÕü¶Øžî gÂüÜØ@ߨ‚/ƒ/„/ ‚/žî ƒ/€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡„/­àBÿÁ ãØÁ Â$äØœ êØ܉ÜøîÄÅÅQÆQÅL«Ü$°ÜÃÃüÃÜ#$ÆÜˆ/ ˆ/øîØÚBÿà ËÜà Å$ÐÜ|½ç¸ïÇÈÉÊËÌÍüÓç;Öç ×°¸ïBÿÆÆšì¬ºÚçüÒè4$Õè Ïó¸ïBÿÆÆ ȬºÚèüËé,|Îé ¸ïBÿÆÆ ɪ¯,ÞéüÊê.ŒÍê ¸ïBÿÆÆ ʪ¯,ßêüÍë-„Ðë ôí¸ïBÿÆÆ Ë¢Ô$áëüÎì2œÑì ¸ïBÿÆÆ ̪¯,åìü×í0dÚí  ¸ïBÿÆÆ Í«°çíüëî%Ó‰|Ùî¼Óî¸ïÏ‚Ïü—ï>4šï‘/ ‘/¸ïřǙș­É™Ê™àË™óG*¤�R{9  ‘/�BÿÎ ¡ïÎ Ï$¢ï¤äïü‘ñ&¸ïÒ¥gÒü¾ñDÁñ’/“/”/ ’/¸ï “/€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡”/­àBÿÑ ÅñÑ Ò$Æñœ Ìñ¤‘òdå{Ó� ¬³{Ó©†/¼Ê{ü²{0ü©{;Dé{ ×éíòü…CÔÕµ¢<3î)ÔÖ|)ü ü¶ -TÇ  ××ÿÆÊæ(ü¶ ä ŸgÊæ(„Ó ×‰¥2,œ¥2 ‰¥28œ¥2,ØÙÚÛØÙÚÛÛÙÚØì• L˜  •/ •/Êæ(Bÿ× ¢ × ØÊæ($£ ÜÔ <×  –/ –/Êæ(Bÿ× ß × ÙÊæ($à üÙ6\Ü —/ —/Êæ(ÇÇBÿ× è× ÚÊæ($í�ê1ó›ê1�üâ6,å ˜/ ˜/Êæ(¾ Bÿ×¾ ÜÜ ë×þÆÓ¨2Üû…#Ó¨2±€´€�#Ó¨2±€Ç<� ÛÊæ(Ó¨2$ðƒ öLNlÝ!ëñÞáãüÆ#2Ô# œ/ œ/õ)ëñBÿÝõ)ßß Û#ÝþÆ®ª2|Ü#×®ª2Tá# Þ®ª2¨ Ø#%'ß$Þ�à�à�ààÞப2ŠÚ ÇUÿÕÅüð&y$þ& �/ž/ �/ëñ ž/®ª2ÇÇBÿÝõ)ââ Œ'ÝÛª2|§'ìª2T¬' ᮪2$‘'¨ Ÿ'�ê1À'›ê1Ö'68üŸ*6,­* Ÿ/ëñ Ÿ/®ª2BÿÝõ)ää À*ÝÛª2|Å*ìª2TÊ* 㮪2$·*¨ ½*$&4ø6ã�å�å�ååã宪2±€ÇUÿ¦ýÕÅ„¡?®òçèüå?(Dè?Ô£/ £/®òÇBÿæ ñ?æ ç$ò?ˆCø?üî@.\ñ@Ô¤/ ¤/®òÇBÿæ ý@æ è$þ@÷,„A\¯HÓ©†/¼•Hü�H<³HÔù©ÛH’éëµ¢<òHî)éì®)TŒI×éí,ÅHŒÍHEÌàH5Œ…I&¼�I¡éïðñòØÙÚÛñïòðä¿ILÂI ¥/ ¥/¡éBÿî ÌIî ï$ÍIÔ’J<•J ¦/ ¦/¡éBÿî �Jî ð$žJü‚L5\…L §/ §/¡éÇÇBÿî ‘Lî ñ$–L�ê1œL›ê1ªLüúL5,ýL ¨/ ¨/¡é«€Bÿî¾ óó ƒMîƒì1Ü“M•ì1´˜Mªì1<§M ò«€$ˆMƒ C$,.t”ï2ü�.4ü- A module for building and searching with lazy deterministic finite automata (DFAs). Like other modules in this crate, lazy DFAs support a rich regex syntax with Unicode features. The key feature of a lazy DFA is that it builds itself incrementally during search, and never uses more than a configured capacity of memory. Thus, when searching with a lazy DFA, one must supply a mutable "cache" in which the actual DFA's transition table is stored. If you're looking for fully compiled DFAs, then please see the top-level [`dfa` module](crate::dfa). # Overview This section gives a brief overview of the primary types in this module: * A [`regex::Regex`] provides a way to search for matches of a regular expression using lazy DFAs. This includes iterating over matches with both the start and end positions of each match. * A [`dfa::DFA`] provides direct low level access to a lazy DFA. # Example: basic regex searching This example shows how to compile a regex using the default configuration and then use it to find matches in a byte string: ``` use regex_automata::{hybrid::regex::Regex, Match}; let re = Regex::new(r"[0-9]{4}-[0-9]{2}-[0-9]{2}")?; let mut cache = re.create_cache(); let haystack = "2018-12-24 2016-10-08"; let matches: Vec = re.find_iter(&mut cache, haystack).collect(); assert_eq!(matches, vec![ Match::must(0, 0..10), Match::must(0, 11..21), ]); # Ok::<(), Box>(()) ``` # Example: searching with multiple regexes The lazy DFAs in this module all fully support searching with multiple regexes simultaneously. You can use this support with standard leftmost-first style searching to find non-overlapping matches: ``` # if cfg!(miri) { return Ok(()); } // miri takes too long use regex_automata::{hybrid::regex::Regex, Match}; let re = Regex::new_many(&[r"\w+", r"\S+"])?; let mut cache = re.create_cache(); let haystack = "@foo bar"; let matches: Vec = re.find_iter(&mut cache, haystack).collect(); assert_eq!(matches, vec![ Match::must(1, 0..4), Match::must(0, 5..8), ]); # Ok::<(), Box>(()) ``` # When should I use this? Generally speaking, if you can abide the use of mutable state during search, and you don't need things like capturing groups or Unicode word boundary support in non-ASCII text, then a lazy DFA is likely a robust choice with respect to both search speed and memory usage. Note however that its speed may be worse than a general purpose regex engine if you don't select a good [prefilter](crate::util::prefilter). If you know ahead of time that your pattern would result in a very large DFA if it was fully compiled, it may be better to use an NFA simulation instead of a lazy DFA. Either that, or increase the cache capacity of your lazy DFA to something that is big enough to hold the state machine (likely through experimentation). The issue here is that if the cache is too small, then it could wind up being reset too frequently and this might decrease searching speed significantly. # Differences with fully compiled DFAs A [`hybrid::regex::Regex`](crate::hybrid::regex::Regex) and a [`dfa::regex::Regex`](crate::dfa::regex::Regex) both have the same capabilities (and similarly for their underlying DFAs), but they achieve them through different means. The main difference is that a hybrid or "lazy" regex builds its DFA lazily during search, where as a fully compiled regex will build its DFA at construction time. While building a DFA at search time might sound like it's slow, it tends to work out where most bytes seen during a search will reuse pre-built parts of the DFA and thus can be almost as fast as a fully compiled DFA. The main downside is that searching requires mutable space to store the DFA, and, in the worst case, a search can result in a new state being created for each byte seen, which would make searching quite a bit slower. A fully compiled DFA never has to worry about searches being slower once it's built. (Aside from, say, the transition table being so large that it is subject to harsh CPU cache effects.) However, of course, building a full DFA can be quite time consuming and memory hungry. Particularly when large Unicode character classes are used, which tend to translate into very large DFAs. A lazy DFA strikes a nice balance _in practice_, particularly in the presence of Unicode mode, by only building what is needed. It avoids the worst case exponential time complexity of DFA compilation by guaranteeing that it will only build at most one state per byte searched. While the worst case here can lead to a very high constant, it will never be exponential. # Syntax This module supports the same syntax as the `regex` crate, since they share the same parser. You can find an exhaustive list of supported syntax in the [documentation for the `regex` crate](https://docs.rs/regex/1/regex/#syntax). There are two things that are not supported by the lazy DFAs in this module: * Capturing groups. The DFAs (and [`Regex`](regex::Regex)es built on top of them) can only find the offsets of an entire match, but cannot resolve the offsets of each capturing group. This is because DFAs do not have the expressive power necessary. Note that it is okay to build a lazy DFA from an NFA that contains capture groups. The capture groups will simply be ignored. * Unicode word boundaries. These present particularly difficult challenges for DFA construction and would result in an explosion in the number of states. One can enable [`dfa::Config::unicode_word_boundary`] though, which provides heuristic support for Unicode word boundaries that only works on ASCII text. Otherwise, one can use `(?-u:\b)` for an ASCII word boundary, which will work on any input. There are no plans to lift either of these limitations. Note that these restrictions are identical to the restrictions on fully compiled DFAs. ÁÓª+”ÿî2Ôùî24œï2ûÃßüÂ�®TŸ.4á÷ä»T«.4‚ø¥ T·.4÷ù�¼\Ì.4‰ú$‹.4Œ‹.4OQ@B24|È.4'\Ý.4üõð Types and routines specific to lazy DFAs. This module is the home of [`hybrid::dfa::DFA`](DFA). This module also contains a [`hybrid::dfa::Builder`](Builder) and a [`hybrid::dfa::Config`](Config) for configuring and building a lazy DFA. Áå.4¦§ß½¿Àö‚“𣬹ËÒ�$‚á8ûýà<� Ùûþü¨…Cûÿ�®TÙáûƒä»Tå‚û„¥ Tñ÷û…�¼\‹‰û‡»½„˜ ûˆå 4³Âû‰±D˱ ûŠ«³$ô–û�õý\úÔ%ûŽÎ�<‡ƒ&û�† $§Þû‘´Ù,­¯,û’á÷·Œ´À,û“âì¸|ÇÌ,û”äØ$,áÿû•é›Lûü(û–¦¡L›Ù)û˜ NFAStateIDÁT±î)û™žDܧ-û›áºLæé,ûœ—,ñÑ,û�ÛÀTøÌ-ûžÓ¿L„º-ûŸ̼T�‹-û ãÂTºë-û¡‚$Ö£û£ž�,ÜÏ+û¤­¯dãÊ+û¥$û¶¹dˆ«|œ�,²œ²ü²$—š‡Šx{ü²Vmp]`NQlÆCü²«ü²¿<Dé-0 ü²ò\™ñôÝàÊͤð¾ü²æ±´<¦œü²š�’‚ps`cPS@C´®4ü²¡(,Î  ¼Ç TÍ ûäÖ |Ü ûDÅ&ïò©ª¬­®¯°±²³´µ¶·¸ü¯,4üÔ&HE Parse the given regular expression using a default configuration andÁü¡'&# return the corresponding lazy DFA.ÁÌ'�üÔ'Hµö/ü¡(ˆ÷/Å(�lÍ(•£/ß(�<ç(ä¤/üó(=: use regex_automata::{hybrid::dfa::DFA, HalfMatch, Input};Áµ)�ü½)(% let dfa = DFA::new("foo[0-9]+bar")?;Áüê)'©�0–*�üž**' let expected = HalfMatch::must(0, 11);Á|Í*¡´0¼á* Some(expected),Áüý*DA dfa.try_search_fwd(&mut cache, &Input::new("foo12345bar"))?,Á4Æ+½µ0üÑ+.Ǭ/<„,ä¤/Óí”–,Ô�,¶,­/ ­/ŸÝBÿ¨ Ã,¨ ©îN<º,ü„3Iü—-IF Parse the given regular expressions using a default configuration andÁüå-,) return the corresponding lazy multi-DFA.Á–.�üž.Hµö/üë.ˆ÷/�/�l—/•£/©/�<±/ä¤/ü½/=¿ð2ÿ/�ü‡041 let dfa = DFA::new_many(&["[0-9]+", "[a-z]+"])?;ÁüÀ0'©�0ì0�üô0)& let expected = HalfMatch::must(1, 3);Á|¢1¡´0¼¶1žò2üÒ1D¿ò24›2½µ0ü¦2.Ǭ/<Ù2ä¤/Óí”ë2Ôå2D‹3®/ ®/©òŸÝBÿ¨Œ«« ­3¨ŸÛ/ ”3°Û/T—3 ªµ“¨ €. üÝ80ü‡430 Create a new lazy DFA that matches every input.Á¿4�lÇ4•£/Ù4�<á4ä¤/üí4=¿ð2¯5�ü·5#ûŒ0üß5'©�0‹6�ü“6)& let expected = HalfMatch::must(0, 0);ÁüÁ62/ assert_eq!(Some(expected), dfa.try_search_fwd(Áüø6&# &mut cache, &Input::new(""))?,Á4£7½µ0ü®72óú2üå7)& &mut cache, &Input::new("foo"))?,Á4“8½µ0üž8.Ǭ/<Ñ8ä¤/dä8ŸÝBÿ¨¨ ¬üÕ=/ü÷974 Create a new lazy DFA that never matches any input.Á³:�l»:•£/Í:�<Õ:ä¤/üá:2/ use regex_automata::{hybrid::dfa::DFA, Input};Á˜;�ü ;"�’0üÇ;'©�0ó;�üû;GD assert_eq!(None, dfa.try_search_fwd(&mut cache, &Input::new(""))?);ÁüÇ/, Return a default configuration for a `DFA`.Á¡?�ü©?KH This is a convenience routine to avoid needing to import the [`Config`]Áüù?96 type when customizing the construction of a lazy DFA.Á·@�l¿@•£/Ñ@�üÙ@JG This example shows how to build a lazy DFA that heuristically supportsÁä¨A Unicode word boundaries.ÁÉA�<ÑAä¤/üÝA=ÔÂ/üŸBIF use regex_automata::{hybrid::dfa::DFA, HalfMatch, MatchError, Input};ÁíB�ÜõBø¥/ü•C=: .configure(DFA::config().unicode_word_boundary(true))Áä×C .build(r"\b\w+\b")?;ÁüøC&Ê›0£D�ü«DJG // Since our haystack is all ASCII, the DFA search sees then and knowsÁüúDEB // it is legal to interpret Unicode word boundaries as ASCII wordÁ”ÄE // boundaries.ÁüÛE&# let input = Input::new("!!foo!!");Áü†F)& let expected = HalfMatch::must(0, 5);Áü´FGD assert_eq!(Some(expected), re.try_search_fwd(&mut cache, &input)?);Á€G�üˆGHE // But if our haystack contains non-ASCII, then the search will failÁ¬ÕG // with an error.ÁüïG)& let input = Input::new("!!βββ!!");Áü�H0- let expected = MatchError::quit(b'\xCE', 2);ÁüÒHEB assert_eq!(Err(expected), re.try_search_fwd(&mut cache, &input));ÁœI�ü¤I.Ǭ/<×Iä¤/4êI¯øBÿ¨¨ŒÆ ÜèQü JC@ Return a builder for configuring the construction of a `Regex`.ÁèJ�üðJ@ºŸ0üµK%… 0ßK�lçK•£/ùK�ü�LC@ This example shows how to use the builder to disable UTF-8 modeÁìÉL everywhere for lazy DFAs.ÁëL�<óLä¤/üÿL=ÔÂ/üÁMKH use regex_automata::{hybrid::dfa::DFA, util::syntax, HalfMatch, Input};Á‘N�Ü™Nø¥/ü¹N2è¢0üðN&æ£0ü›O&Ê›0ÆO�üÎO=: let input = Input::new(b"\xFEfoo\xFFarzz\xE2\x98\xFF\n");Áü�P/, let expected = Some(HalfMatch::must(0, 9));ÁüÄP52 let got = re.try_search_fwd(&mut cache, &input)?;ÁôþP assert_eq!(expected, got);Á¡Q�ü©Q.Ǭ/<ÜQä¤/<ïQõùBÿ¨¨…ÜüÑT#ü¨R)& Create a new cache for this lazy DFA.ÁÖR�üÞR@ˆ¬0ü£SB? lazy DFA. If you want to reuse the cache for another DFA, thenÁüêSC@ you must call [`Cache::reset`] with that DFA (or, equivalently,ÁÔ²Tè­0dØT¯/ ¯/ïòûóBÿ¨ åT¨ °$æTüžb,ü›UIã®0üéU&# this lazy DFA (and only this DFA).Á”V�üœVHð¯0ôéV with a different lazy DFA.ÁŒW�ü”WJG Resetting a cache sets its "clear count" to 0. This is relevant if theÁüãWFC lazy DFA has been configured to "give up" after it has cleared theÁü®X$! cache a certain number of times.Á×X�üßXEB Any lazy state ID generated by the cache prior to resetting it isÁä©Y invalid after the reset.ÁÊY�lÒY•£/äY�üìYFޱ0·Z�<¿Zä¤/üËZ=ÔÂ/ü�[=¿ð2Ï[�ü×[  let dfa1 = DFA::new(r"\w")?;Áüü[  let dfa2 = DFA::new(r"\W")?;Á¡\�ü©\(% let mut cache = dfa1.create_cache();Á|Ö\¡´0üê\$! Some(HalfMatch::must(0, 2)),Áü“]<9 dfa1.try_search_fwd(&mut cache, &Input::new("Δ"))?,Á4Ô]½µ0ß]�üç]IF // Using 'cache' with dfa2 is not allowed. It may result in panics orÁüµ^I®¶0üƒ_0- // it with the DFA we'd like to use it with.Á4¸_Å·0üÃ_KH // Similarly, after this reset, using the cache with 'dfa1' is also notÁ|“`ª¸0ü§`! dfa2.reset_cache(&mut cache);Á|Í`¡´0üá`$! Some(HalfMatch::must(0, 3)),ÁüŠa=: dfa2.try_search_fwd(&mut cache, &Input::new("☃"))?,Á4Ìa½µ0×a�üßa.Ǭ/<’bä¤/\¥b°/±/ °/ïò ±/ûóBÿ¨ ±b¨ ±$²bóA,¸büØk"ü…cEB Returns the total number of patterns compiled into this lazy DFA.ÁÏc�ü×cE®¾0¡d�l©d•£/»d�üÃdGD This example shows the pattern length for a DFA that never matches:Á�e�<—eä¤/ü£e)& use regex_automata::hybrid::dfa::DFA;ÁÑe�üÙe"�’0ü€f%" assert_eq!(dfa.pattern_len(), 0);Áüªf.Ǭ/<Ýfä¤/éf�üñfA> And another example for a DFA that matches at every position:Á·g�<¿gä¤/üËg)²¢3ùg�ü�h#ûŒ0ü©h%" assert_eq!(dfa.pattern_len(), 1);ÁüÓh.Ǭ/<†iä¤/’i�üšiC@ And finally, a DFA that was constructed from multiple patterns:Áâi�<êiä¤/üöi)²¢3¤j�ü¬j>; let dfa = DFA::new_many(&["[0-9]+", "[a-z]+", "[A-Z]+"])?;Áüïj%" assert_eq!(dfa.pattern_len(), 3);Áü™k.Ǭ/<Ìkä¤/\ßk²/ ²/ïòBÿ¨ ëk¨²ð $ìkü­r*ü§lKH Returns the equivalence classes that make up the alphabet for this DFA.Á÷l�üÿlEB Unless [`Config::byte_classes`] was disabled, it is possible thatÁüÉmGD multiple distinct bytes are grouped into the same equivalence classÁü•nFC if it is impossible for them to discriminate between a match and aÁüànHE non-match. This has the effect of reducing the overall alphabet sizeÁü­oHE and in turn potentially substantially reducing the size of the DFA'sÁ¬úo€Ö0”p�üœpKH The downside of using equivalence classes like this is that every stateÁüìpFC transition will automatically use this map to convert an arbitraryÁü·qGD byte to its corresponding equivalence class. In practice this has aÁüƒr%" negligible impact on performance.Ád´r³/ ³/ïò ³/ªÓBÿ¨ Ár¨ ³$Ârüªs#üûr*' Returns this lazy DFA's configuration.ÁT±s´/ ´/ïò ´/¯øBÿ¨ ¼s¨Ùª $½sü£t'üðs.¾¼0<ªtµ/ µ/ïò µ/�»Bÿ¨ ²t¨çÞ$³tÔàw<ãwû¶/ ¶/ïòBÿ¨ ëw¨ ¶$ìwÌ×y4Úyû·/ ·/ïòBÿ¨ áy¨ ·$âyüÖ#üšz96 Returns the memory usage, in bytes, of this lazy DFA.ÁØz�üàzIF This does **not** include the stack size used up by this lazy DFA. ToÁü®{FC compute that, use `std::mem::size_of::()`. This also does notÁüù{)& include the size of the `Cache` used.Á§|�ü¯|HE This also does not include any heap memory used by the NFA inside ofÁüü|KH this hybrid NFA/DFA. This is because the NFA's ownership is shared, andÁüÌ}JG thus not owned by this hybrid NFA/DFA. More practically, several regexÁü›~FC engines in this crate embed an NFA, and reporting the NFA's memoryÁüæ~EB usage in all of them would likely result in reporting higher heapÁü°! memory than is actually used.Ádݸ/ ¸/ïòBÿ¨ ê¨ ¸$ëD�ƒïòº½ÀÂÄü�¯Šü¬ƒJG Executes a forward search and returns the end position of the leftmostÁüûƒEB match that is found. If no match exists, then `None` is returned.ÁÅ„�üÍ„GD In particular, this method continues searching even after it entersÁü™…EB a match state. The search only terminates once it has reached theÁüã…FC end of the input or when it has entered a dead or quit state. UponÁü®†JG termination, the position of the last byte seen while still in a matchÁ´ý† state is returned.Á˜‡�d ‡•£1±‡�ü¹‡H¹£1ü†ˆ! in a number of circumstances:Á¬ˆ�ü´ˆKH * The configuration of the lazy DFA may permit it to "quit" the search.Áü„‰EB For example, setting quit bytes or enabling heuristic support forÁüΉJG Unicode word boundaries. The default configuration does not enable anyÁü�Š63 option that could result in the lazy DFA quitting.ÁüØŠGD * The configuration of the lazy DFA may also permit it to "give up"Áü¤‹C@ on a search if it makes ineffective use of its transition tableÁüì‹EB cache. The default configuration does not enable this by default,Áü¶Œ,) although it is typically a good idea to.ÁüçŒC¬í0ü¯�52 example, by providing an unsupported anchor mode.Áé��üñ�Gñ¤1”½ŽÂ¥1ÔŽ�lÜŽ•£/îŽ�üöŽ1. This example shows how to run a basic search.Á¬��<´�ä¤/üÀ�=¿ð2‚��üŠ�%" let dfa = DFA::new("foo[0-9]+")?;Áü´�'©�0üà�)& let expected = HalfMatch::must(0, 8);ÁüŽ‘2óú2üÅ‘.+ &mut cache, &Input::new("foo12345"))?,Á4ø‘½µ0ƒ’�ü‹’G‚Œ1ü×’JÔŒ1ü¦“H©�1üó“! let dfa = DFA::new("abc|a")?;Áü™”'©�0üÅ”)& let expected = HalfMatch::must(0, 3);Áüó”2óú2üª•)& &mut cache, &Input::new("abc"))?,Á4Ø•½µ0ã•�üë•.Ǭ/<ž–ä¤/ª–�ü²–&ì¥1Ý–�üå–KH This example shows how to build a lazy multi-DFA that permits searchingÁÔµ— for specific patterns.ÁÔ—�<Ü—ä¤/Ìè—ô¤/̆˜ hybrid::dfa::DFA,Áü¤˜.+ Anchored, HalfMatch, PatternID, Input,Á4טÝ¥/â˜�äê˜ let dfa = DFA::builder()Áü‹™?�¦/üÏ™;8 .build_many(&["[a-z0-9]{6}", "[a-z][a-z0-9]{5}"])?;Áü�š'©�0仚 let haystack = "foo123";ÁÜš�üäšC@ // Since we are using the default leftmost-first match and bothÁü¬›KH // patterns match at the same starting position, only the first patternÁüü›GD // will be returned in this case when doing a search for any of theÁ„Èœ // patterns.ÁüÝœ/, let expected = Some(HalfMatch::must(0, 6));Áü‘�EB let got = dfa.try_search_fwd(&mut cache, &Input::new(haystack))?;ÁôÛ�—‘3þ��ü†žJG // But if we want to check whether some other pattern matches, then weÁüÕž" // can provide its pattern ID.Áüüž/, let expected = Some(HalfMatch::must(1, 6));Áü°Ÿ$! let input = Input::new(haystack)ÁüÙŸ96 .anchored(Anchored::Pattern(PatternID::must(1)));Áü— 63 let got = dfa.try_search_fwd(&mut cache, &input)?;ÁôÒ —‘3õ �üý .Ǭ/<°¡ä¤/¼¡�üÄ¡0€±1ù¡�ü�¢Gȱ1üÍ¢;š²1�£�<•£ä¤/ü¡£=¿ð2ã£�üë£FC // N.B. We disable Unicode here so that we use a simple ASCII wordÁü¶¤EB // boundary. Alternatively, we could enable heuristic support forÁü€¥@= // Unicode word boundaries since our haystack is pure ASCII.ÁüÅ¥.+ let dfa = DFA::new(r"(?-u)\b[0-9]{3}\b")?;Áüø¥'©�0ü¤¦ص1Ȧ�üЦIF // Since we sub-slice the haystack, the search doesn't know about theÁüž§B? // larger context and assumes that `123` is surrounded by wordÁüå§I°·1ü³¨GD // to the sub-slice as well, which means we get `3` instead of `6`.Áüÿ¨/, let expected = Some(HalfMatch::must(0, 3));Áü³©! let got = dfa.try_search_fwd(ÁœÙ© &mut cache,Áüñ©%" &Input::new(&haystack[3..6]),Á<›ªÄ™1ô§ª—‘3ʪ�üÒªKŸº1ü¢«Hõº1üï«FÈ»1üº¬C™¼1Ä‚­æ¼1üŸ­!—Ú3œÅ­ÂÚ3üÝ­*' &Input::new(haystack).range(3..6),Á<Œ®Ä™1ô˜®—‘3»®�üî.Ǭ/<ö®ä¤/t—¯¹/º/»/¼/ ¹/ïò º/ûó »/Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²¼/‡áBÿ¹ ¯¯¹¬€ ø8óAµ4–`À4<ô¹º�»�»�»»ºüè$Òºº�¼�¼�¼¼º�ðüàíŠü�»JG Executes a reverse search and returns the start of the position of theÁüлDA leftmost match that is found. If no match exists, then `None` isÁl™¼º¿/«¼�d³¼•£1ļ�ü̼H¹£1ü™½!“¾3¿½�üǽK̾3ü—¾E¢¿3üá¾Jò¿3ü°¿6ÇÀ3üë¿GˆÁ3ü·ÀCÚÁ3üÿÀE¨Â3üÉÁ,øÂ3üúÁC¬í0üÂÂ5¾Ã3üÂ�ü„ÃGñ¤1”ÐÃÂ¥1çÃ�lïÕ£/�Ä�ü‰Ä30 This routine is principally useful when used inÁÄÁÄ conjunction with theÁüÞÄMJ [`nfa::thompson::Config::reverse`](crate::nfa::thompson::Config::reverse)Áü°ÅFC configuration. In general, it's unlikely to be correct to use bothÁüûÅEB `try_search_fwd` and `try_search_rev` with the same DFA since anyÁüÅÆDA particular DFA will only support searching in one direction withÁÜŽÇ respect to the pattern.Á®Ç�<¶Çä¤/ÌÂÇô¤/´àÇñ¡0ÌûÇûÊ3Ì™È HalfMatch, Input,Á4·ÈÝ¥/ÂÈ�äÊÈòË3üëÈ85 .thompson(thompson::Config::new().reverse(true))Áì¨É .build("foo[0-9]+")?;ÁüÊÉ'©�0üöÉ)Àú2|¤Ê¡´0¼¸Êžò2üÔÊA> dfa.try_search_rev(&mut cache, &Input::new("foo12345"))?,Á4šË½µ0¥Ë�ü­ËFC // Even though a match is found after reading the last byte (`c`),ÁüøËJÔŒ1üÇÌIF // match that prefers earlier parts of the pattern over latter parts.Áä•ÍòË3ü¶Í8ïè3ÌóÍ .build("abc|c")?;Áü‘Î'©�0ü½Î)Àú2üëÎ2/ assert_eq!(Some(expected), dfa.try_search_rev(Áü¢Ï)ÄÈ34ÐϽµ0ÛÏ�üãÏ.Ǭ/<–Ðä¤/¢Ð�̪Ð # Example: UTF-8 modeÁÈÐ�üÐÐA> This examples demonstrates that UTF-8 mode applies to reverseÁü–ÑDA DFAs. When UTF-8 mode is enabled in the underlying NFA, then allÁüßÑHE matches reported must correspond to valid UTF-8 spans. This includesÁü¬Ò:7 prohibiting zero-width matches that split a codepoint.ÁëÒ�üóÒJG UTF-8 mode is enabled by default. Notice below how the only zero-widthÁüÂÓ30 matches reported are those at UTF-8 boundaries:ÁúÓ�<‚Ôä¤/ÌŽÔô¤/̬ÔûÊ3´ÊÔñ¡0üåÔ$! HalfMatch, Input, MatchKind,Á4ŽÕÝ¥/™Õ�ä¡ÕòË3üÂÕ8ïè3¬ÿÕ .build(r"")?;Áü™Ö'©�0ÅÖ�üÍÖ2/ // Run the reverse DFA to collect all matches.Áü„×&# let mut input = Input::new("☃");Áì¯× let mut matches = vec![];ÁTÑ× loop {Áüà×74 match dfa.try_search_rev(&mut cache, &input)? {ÁÔœØ None => break,ÁÌ»Ø Some(hm) => {ÁüÙØ! matches.push(hm);ÁüÿØ96 if hm.offset() == 0 || input.end() == 0 {ÁÔ½Ù break;ÁüÜÙ52 } else if hm.offset() < input.end() {Áü–Ú/, input.set_end(hm.offset());ÁÄÊÚ } else {ÁüçÚB? // This is only necessary to handle zero-widthÁü®ÛFC // matches, which of course occur in this example.ÁüùÛC@ // Without this, the search would never advanceÁüÁÜ:7 // backwards beyond the initial match.Áü€Ý30 input.set_end(input.end() - 1);ÁŒ¸Ý }ÁlÎÝ }ÁLàÝ }Á,îÝ }ÁøÝ�ü€Þ$! // No matches split a codepoint.ÁÄ©Þ let expected = vec![ÁôÆÞ HalfMatch::must(0, 3),ÁôéÞ HalfMatch::must(0, 0),Á4Œß ];Áü—ß" assert_eq!(expected, matches);Á¾ß�üÆß.Ǭ/<ùßä¤/…à�ü�àB? Now let's look at the same example, but with UTF-8 mode on theÁäÔà underlying NFA disabled:Áõà�<ýàä¤/̉áô¤/̧áûÊ3´Åáñ¡0üàá$åò34‰âÝ¥/”â�äœâòË3ü½âDA .thompson(thompson::Config::new().reverse(true).utf8(false))Á¬†ãËó3ü ã'©�0Ìã�üÔã2‡ô3ü‹ä&Äô3ì¶äôô3TØä›õ3üçä7°õ3Ô£åñõ3ÌÂå•ö3üàå!¹ö3ü†æ9åö3ÔÄæ¨÷3üãæ5Í÷3ü�ç/�ø3ÄÑçÆø3üîçBéø3üµèF¶ù3ü€éC‡ú3üÈé:Õú3ü‡ê3šû3Œ¿ê×û3lÕêòû3Lçê‰ü3,õêœü3ÿê�ü‡ë$¹ü3İëçü3ôÍë‰ý3ôðë HalfMatch::must(0, 2),Áô“ì HalfMatch::must(0, 1),Áô¶ì±ý34ÙìÙý3üäì"êý3‹í�ü“í.Ǭ/<Æíä¤/tçí½/¾/¿/À/ ½/ïò ¾/ûó ¿/Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²À/‡áBÿ¹ ÿí¹Ò˜ ;BóAg>–`r><ºñ½�¾�¾�¾¾½°ü$˜ò½�¿�¿�¿¿½ç‚ üÉ•­üÇòJG Executes an overlapping forward search and returns the end position ofÁü–óKH matches as they are found. If no match exists, then `None` is returned.Áæó�üîóGD This routine is principally only useful when searching for multipleÁüºôIF patterns on inputs where multiple patterns may match the same regionsÁüˆõHE of text. In particular, callers must preserve the automaton's searchÁüÕõJG state from prior calls so that the implementation knows where the lastÁœ¤ö match occurred.Á¼ö�üÄöC@ When using this routine to implement an iterator of overlappingÁüŒ÷IF matches, the `start` of the search should remain invariant throughoutÁüÚ÷IF iteration. The `OverlappingState` given to the search will keep trackÁü¨øDA of the current position of the search. (This is because multipleÁüñøDA matches may be reported at the same position, so only the searchÁüºù>; implementation itself knows when to advance the position.)Áýù�ü…úGD If for some reason you want the search to forget about its previousÁüÑúKH state and restart the search at a particular position, then setting theÁü¡û>; state to [`OverlappingState::start`] will accomplish that.Áäû�dìû•£1ýû�ü…üH¹£1üÒü!“¾3øü�ü€ýK̾3üÐýE¢¿3üšþJò¿3üéþ6ÇÀ3ü¤ÿGˆÁ3üðÿCÚÁ3ü¸€E¨Â3ü‚�,øÂ3ü³�C¬í0üû�5¾Ã3µ‚�ü½‚Gñ¤1”‰ƒÂ¥1 ƒ�l¨ƒ•£/ºƒ�üƒDA This example shows how to run a basic overlapping search. NoticeÁü‹„FC that we build the automaton with a `MatchKind::All` configuration.ÁüÖ„FC Overlapping searches are unlikely to work as one would expect whenÁü¡…GD using the default `MatchKind::LeftmostFirst` match semantics, sinceÁüí…JG leftmost-first matching is fundamentally incompatible with overlappingÁü¼†IF searches. Namely, overlapping searches need to report matches as theyÁüЇKH are seen, where as leftmost-first searches will continue searching evenÁüÚ‡IF after a match has been observed in order to find the conventional endÁü¨ˆGD position of the match. More concretely, leftmost-first searches useÁüôˆJG dead states to terminate a search after a specific match can no longerÁüÉKH be extended. Overlapping searches instead do the opposite by continuingÁü“ŠKH the search to find totally new matches (potentially of other patterns).ÁãŠ�<ëŠä¤/ü÷Š=ÔÂ/̹‹ô¤/ü׋-* hybrid::dfa::{DFA, OverlappingState},Áü‰Œ$åò34²ŒÝ¥/½Œ�äÅŒòË3üæŒ<Ýš0ü§�*' .build_many(&[r"\w+$", r"\S+$"])?;ÁüÖ�'©�0‚Ž�ÔŠŽ let haystack = "@foo";Áü©Ž.+ let mut state = OverlappingState::start();ÁÜŽ�üäŽ/, let expected = Some(HalfMatch::must(1, 4));Áü˜�# dfa.try_search_overlapping_fwd(ÁüÀ�63 &mut cache, &Input::new(haystack), &mut state,Á<û�Ä™1ü‡�,) assert_eq!(expected, state.get_match());Á¸��üÀ�IF // The first pattern also matches at the same position, so re-runningÁüŽ‘FC // the search will yield another match. Notice also that the firstÁüÙ‘GD // pattern is returned after the second. This is because the secondÁü¥’IF // pattern begins its match before the first, is therefore an earlierÁüó’(% // match and is thus reported first.Áü “/, let expected = Some(HalfMatch::must(0, 4));ÁüÔ“#¸ 4üü“6æ 4<·”Ä™1üÔ,µ¡4ô”�üü”.Ǭ/<¯•ä¤/ÔЕÁ/Â/Ã/Ä/Å/ Á/ïò Â/ûó Ã/Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Ä/ Å/Âú²×Bÿ¹ ô•¹ª  gIóAóF–`þFƒ Gtï™À�Á�Á�ÁÁÀ«� üÅÁ­üƒ›FC Executes a reverse overlapping search and returns the start of theÁüΛJG position of the leftmost match that is found. If no match exists, thenÁ¼�œ `None` is returned.Á¹œ�üÁœC��4ü‰�IÛ�4ü×�I¯Ž4ü¥žDƒ�4üîžDÒ�4ü·Ÿ>¡�4úŸ�ü‚ G÷�4üΠKÉ‘4üž¡>Ÿ’4á¡�dé¡•£1ú¡�ü‚¢H¹£1üÏ¢!“¾3õ¢�üý¢K̾3üÍ£E¢¿3ü—¤Jò¿3üæ¤6ÇÀ3ü¡¥GˆÁ3üí¥CÚÁ3üµ¦E¨Â3üÿ¦,øÂ3ü°§C¬í0üø§5¾Ã3²¨�üº¨Gñ¤1”†©Â¥1�©�Ì¥©œî3é�üË©AÍî3ü‘ªD™ï3üÚªHèï3ü§«:»ð3æ«�üî«J�ñ3ü½¬3âñ3õ¬�<ý¬ä¤/̉­ô¤/ü§­-Ä�4´Ù­ñ¡0üô­$åò34�®Ý¥/¨®�ä°®òË3üÑ®<Ýš0ü’¯8ïè3üϯ%" .build_many(&[r"", r"☃"])?;Áüù¯'©�0¥°�ü­°2‡ô3üä°" let input = Input::new("☃");Áü‹±.¸Ÿ4ì¾±ôô3Tà±›õ3üï±HE dfa.try_search_overlapping_rev(&mut cache, &input, &mut state)?;Áü¼²! match state.get_match() {ÁÔâ²ñõ3ü�³)& Some(hm) => matches.push(hm),ÁL¯³‰ü3,½³œü3dz�üϳ$¹ü3Äø³çü3ô•´‰ý3ô¸´ HalfMatch::must(1, 0),ÁôÛ´±ý34þ´Ùý3ü‰µ"êý3°µ�ü¸µ.Ǭ/<ëµä¤/÷µ�üÿµBÎþ3䯶šÿ3ç¶�<ï¶ä¤/Ìû¶ô¤/ü™·-Ä�4´Ë·ñ¡0üæ·$åò34�¸Ý¥/š¸�䢸òË3üø<Ýš0ü„¹D¾€4ü͹%�°4ü÷¹'©�0£º�ü«º2‡ô3üâº"ë°4ü‰».¸Ÿ4ì¼»ôô3TÞ»›õ3üí»Hñ4üº¼!–²4Ôà¼ñõ3üÿ¼)в4L­½‰ü3,»½œü3Ž�üͽ:7 // Now *all* positions match, even within a codepoint,ÁüŒ¾52 // because we lifted the requirement that matchesÁüƾ'$ // correspond to valid UTF-8 spans.ÁÄò¾çü3ô�¿‰ý3ô²¿®„4ôÕ¿Ö„4ôø¿׳4ô›À±ý34¾ÀÙý3üÉÀ"êý3ðÀ�üøÀ.Ǭ/<«Áä¤/ÔÌÁÆ/Ç/È/É/Ê/ Æ/ïò Ç/ûó È/Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²É/ Ê/Âú²×Bÿ¹ ðÁ¹ Â!OóAM–`MƒMtëÅÂ�Ã�Ã�Ãû™ üÂÞ«üÿÆFC Writes the set of patterns that match anywhere in the given searchÁüÊÇEB configuration to `patset`. If multiple patterns match at the sameÁü”ÈJG position and the underlying DFA supports overlapping matches, then allÁüãÈ30 matching patterns are written to the given set.Á›É�ü£ÉGD Unless all of the patterns in this DFA are anchored, then generallyÁüïÉ96 speaking, this will visit every byte in the haystack.Á­Ê�üµÊIF This search routine *does not* clear the pattern set. This gives someÁüƒËGD flexibility to the caller (e.g., running multiple searches with theÁüÏËHE same pattern set), but does make the API bug-prone if you're reusingÁüœÌFC the same pattern set for multiple searches but intended them to beÁ„çÌ independent.ÁüÌ�ü„ÍDA If a pattern ID matched but the given `PatternSet` does not haveÁüÍÍIF sufficient capacity to store it, then it is not inserted and silentlyÁd›Î dropped.Á¬Î�d´Î•£1ÅÎ�üÍÎH¹£1üšÏ!“¾3ÀÏ�üÈÏK̾3ü˜ÐE¢¿3üâÐJò¿3ü±Ñ6ÇÀ3üìÑGˆÁ3ü¸ÒCÚÁ3ü€ÓE¨Â3üÊÓ,øÂ3üûÓC¬í0üÃÔ5¾Ã3ýÔ�ü…ÕGñ¤1”ÑÕÂ¥1èÕ�lðÕ•£/‚Ö�üŠÖGD This example shows how to find all matching patterns in a haystack,ÁüÖÖIF even when some patterns match at the same position as other patterns.Á¤×�<¬×ä¤/ü¸×=ÔÂ/Ìú×ô¤/̘ØûÊ3ü¶Ø%" Input, MatchKind, PatternSet,Á4àØÝ¥/ëØ�¬óØ let patterns = &[Áü�ÙFC r"\w+", r"\d+", r"\pL+", r"foo", r"bar", r"barfoo", r"foobar",Á4ØÙÙý3äãÙòË3ü„Ú<Ýš0üÅÚ .build_many(patterns)?;ÁüéÚ'©�0•Û�ü�Û%" let input = Input::new("foobar");ÁüÇÛ85 let mut patset = PatternSet::new(dfa.pattern_len());Áü„ÜHE dfa.try_which_overlapping_matches(&mut cache, &input, &mut patset)?;ÁüÑÜ'$ let expected = vec![0, 2, 3, 4, 6];ÁüýÜHE let got: Vec = patset.iter().map(|p| p.as_usize()).collect();ÁôÊÝ—‘3íÝ�üõÝ.Ǭ/<¨Þä¤/ìÉÞË/Ì/Í/Î/Ï/ Ë/ïò Ì/ûó Í/Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Î/ Ï/¡£²×Bÿ¹ ðÞ¹ûÝ$ñÞóA}R–`ˆRª§ –RDÏãïòÆÇÈÉÊËÍÏÐüÖø–üÞãHE Transitions from the current state to the next state, given the nextÁ”«ä byte of input.ÁÂä�üÊä>; The given cache is used to either reuse pre-computed stateÁü�åFC transitions, or to store this newly computed transition for futureÁüØåJG reuse. Thus, this routine guarantees that it will never return a stateÁü§æ! ID that has an "unknown" tag.ÁÍæ�üÕæ # State identifier validityÁùæ�ü�çDA The only valid value for `current` is the lazy state ID returnedÁüÊçC@ by the most recent call to `next_state`, `next_state_untagged`,Áü’è=: `next_state_untagged_unchecked`, `start_state_forward` orÁüÔèKH `state_state_reverse` for the given `cache`. Any state ID returned fromÁü¤éGD prior calls to these routines (with the same `cache`) is consideredÁüðéKH invalid (even if it gives an appearance of working). State IDs returnedÁüÀêFC from _any_ prior call for different `cache` values are also alwaysÁd‹ë invalid.Áœë�ü¤ëIF The returned ID is always a valid ID when `current` refers to a validÁüòëDA ID. Moreover, this routine is defined for all possible values ofÁd»ì `input`.ÁÌì�üÔìIF These validity rules are not checked, even in debug mode. Callers areÁü¢í.+ required to uphold these rules themselves.ÁÕí�üÝíEB Violating these state ID validity rules will not sacrifice memoryÁü§î=: safety, but _may_ produce an incorrect result or a panic.Áéî�dñîúë0‚ï�üŠïFC If the given ID does not refer to a valid state, then this routineÁüÕïHE may panic but it also may not panic and instead return an invalid orÁŒ¢ð incorrect ID.Á¸ð�lÀð•£/Òð�üÚðFC This shows a simplistic example for walking a lazy DFA for a givenÁü¥ñ.+ haystack by using the `next_state` method.ÁØñ�<àñä¤/üìñ2€þ2£ò�ü«ò$! let dfa = DFA::new(r"[a-z]+r")?;ÁüÔò'©�0ü€ó$! let haystack = "bar".as_bytes();Á©ó�ü±óGD // The start state is determined by inspecting the position and theÁüýó%" // initial bytes of the haystack.Áü§ô*' let mut sid = dfa.start_state_forward(ÁüÖô*' &mut cache, &Input::new(haystack),Á<…õÄ™1ü‘õ*' // Walk all the bytes in the haystack.ÁÄÀõ for &b in haystack {ÁüÝõ2/ sid = dfa.next_state(&mut cache, sid, b)?;Á,”öœü3üžöKH // Matches are always delayed by 1 byte, so we must explicitly walk theÁüîö96 // special "EOI" transition at the end of the search.Áü¬÷/, sid = dfa.next_eoi_state(&mut cache, sid)?;Áäà÷ assert!(sid.is_match());Á�ø�ü‰ø.Ǭ/<¼øä¤/TÝøÐ/Ñ/ Ð/ïò Ñ/ûó°ÿ¼¯ BÿÅ ñøÅ Æ$òøóAªW°± µW–`¿Wü—¦‡üÇüH´Ñ4ü”ý41 byte of input and a state ID that is not tagged.ÁÍý�üÕýJG The only reason to use this routine is performance. In particular, theÁü¤þIF `next_state` method needs to do some additional checks, among them isÁüòþFC to account for identifiers to states that are not yet computed. InÁü½ÿIF such a case, the transition is computed on the fly. However, if it isÁü‹€KH known that the `current` state ID is untagged, then these checks can beÁdÛ€ omitted.Áì€�üô€FC Since this routine does not compute states on the fly, it does notÁü¿�KH modify the cache and thus cannot return an error. Consequently, `cache`Áü�‚FC does not need to be mutable and it is possible for this routine toÁüÚ‚FC return a state ID corresponding to the special "unknown" state. InÁü¥ƒGD this case, it is the caller's responsibility to use the prior stateÁüñƒIF ID and `input` with `next_state` in order to force the computation ofÁü¿„HE the unknown transition. Otherwise, trying to use the "unknown" stateÁüŒ…GD ID will just result in transitioning back to itself, and thus neverÁüØ…IF terminating. (This is technically a special exemption to the state IDÁü¦†JG validity rules, but is permissible since this routine is guaranteed toÁüõ†IF never mutate the given `cache`, and thus the identifier is guaranteedÁ¬Ã‡ to remain valid.)Á݇�üå‡HE See [`LazyStateID`] for more details on what it means for a state IDÁܲˆ to be tagged. Also, seeÁüÒˆIF [`next_state_untagged_unchecked`](DFA::next_state_untagged_unchecked)Áü ‰A> for this same idea, but with bounds checks forcefully elided.Áæ‰�üî‰ØÔ4’Š�üšŠ>; The only valid value for `current` is an **untagged** lazyÁüÝŠ>; state ID returned by the most recent call to `next_state`,Áü ‹;8 `next_state_untagged`, `next_state_untagged_unchecked`,Áüà‹IF `start_state_forward` or `state_state_reverse` for the given `cache`.Áü®ŒFC Any state ID returned from prior calls to these routines (with theÁüùŒGD same `cache`) is considered invalid (even if it gives an appearanceÁüÅ�GD of working). State IDs returned from _any_ prior call for differentÁü‘Ž+( `cache` values are also always invalid.ÁÁŽ�üÉŽIæÙ4ü—�HE ID, although it may be tagged. Moreover, this routine is defined forÁüä�# all possible values of `input`.ÁŒ��ü”�GD Not all validity rules are checked, even in debug mode. Callers areÁüà�.€Ü4“‘�ü›‘EÆÜ4üå‘=–Ý4§’�d¯’úë0À’�üÈ’F†Þ4ü““H×Þ4Œà“©ß4ö“�lþ“•£/�”�ü˜”Fíß4üã”FC haystack by using the `next_state_untagged` method where possible.Á®•�<¶•ä¤/ü•2€þ2ù•�ü�–$®á4üª–'©�0üÖ–$ìá4ÿ–�ü‡—G¨â4üÓ—%úâ4üý—*ªã4ü¬˜*ßã4<ۘę1üç˜*¢ä4œ–™ let mut at = 0;Áü®™ while at < haystack.len() {ÁäÒ™ if sid.is_tagged() {Áüó™A> sid = dfa.next_state(&mut cache, sid, haystack[at])?;Á„¹š } else {ÁüΚ# let mut prev_sid = sid;ÁüöšHE // We attempt to chew through as much as we can while movingÁüÛHE // through untagged state IDs. Thus, the transition functionÁü�œGD // does less work on average per byte. (Unrolling this loopÁüÜœ# // may help even more.)Áü„�'$ while at < haystack.len() {Áü°� prev_sid = sid;ÁüÔ�.+ sid = dfa.next_state_untagged(Áü‡ž2/ &mut cache, sid, haystack[at],Á”¾ž );ÁÄÕž at += 1;Áüòž$! if sid.is_tagged() {ÁÔ›Ÿ¨÷3ŒºŸ×û3lПòû3üâŸIF // We must ensure that we never proceed to the next iterationÁü° EB // with an unknown state ID. If we don't account for thisÁüú HE // case, then search isn't guaranteed to terminate since allÁüÇ¡A> // transitions on unknown states loop back to itself.Áü�¢! if sid.is_unknown() {Áü³¢%" sid = dfa.next_state(ÁüÝ¢;8 &mut cache, prev_sid, haystack[at - 1],Áœ�£ )?;Álµ£òû3LÇ£‰ü3,Õ£œü3üߣKÄå4ü¯¤9šæ4üí¤/Þæ4ä¡¥—ç4Â¥�üÊ¥.Ǭ/<ý¥ä¤/œž¦Ò/Ó/ Ò/ïò Ó/ûó°ÿ°ÿBÿÅ »¦Å Ç$¼¦óAL[°± W[–`a[ü–˜üê¨HE Transitions from the current state to the next state, eliding boundsÁü·©KH checks, given the next byte of input and a state ID that is not tagged.Á‡ª�ü�ªJÍé4üÞªI¢ê4ü¬«Föê4ü÷«IÇë4üŬK›ì4d•­ðì4¦­�ü®­F”í4üù­Kåí4üÉ®F»î4ü”¯FŒï4ü߯GÝï4ü«°I¯ð4üù°Hƒñ4üƱGÖñ4ü’²I¨ò4üà²Jüò4ü¯³IÑó4¬ý³¤ô4—´�üŸ´HÑô4Üì´£õ4üŒµ52 [`next_state_untagged`](DFA::next_state_untagged)ÁüƵFC for this same idea, but with memory safety guaranteed by retainingÁ”‘¶ bounds checks.Á¨¶�ü°¶ØÔ4Ô¶�üܶ>’÷4üŸ·>Û÷4üâ·;¤ø4ü¢¸Iêø4üð¸F¾ù4ü»¹G�ú4ü‡ºGáú4üÓº+³û4ƒ»�ü‹»IæÙ4üÙ»H…ü4ü¦¼#Øü4μ�üÖ¼G“ý4ü¢½.€Ü4Õ½�üݽEÆÜ4ü§¾=–Ý4é¾�dñ¾ # SafetyÁ‚¿�üŠ¿JG Callers of this method must guarantee that `current` refers to a validÁüÙ¿JG state ID according to the rules described above. If `current` is not aÁü¨ÀKH valid state ID for this automaton, then calling this routine may resultÁÔøÀ in undefined behavior.Á—Á�üŸÁIF If `current` is valid, then the ID returned is valid for all possibleÁ´íÁ values of `input`.Áì¤ÂÔ/Õ/ Ô/ïò Õ/ûó°ÿ°ÿÿÅ ËÂÅ È$ÌÂóA‰^°± ”^–`ž^ü á‡ü‰ÅHE Transitions from the current state to the next state for the specialÁ|ÖÅ EOI symbol.ÁêÅ�üòÅ>°Ò4üµÆFùÒ4ü€ÇJÊÓ4üÏÇ!ŸÔ4õÇ�üýÇGD This routine must be called at the end of every search in a correctÁüÉÈKH implementation of search. Namely, lazy DFAs in this crate delay matchesÁü™ÉFC by one byte in order to support look-around operators. Thus, afterÁüäÉKH reaching the end of a haystack, a search implementation must follow oneÁÄ´Ê last EOI transition.ÁÑÊ�üÙÊKH It is best to think of EOI as an additional symbol in the alphabet of aÁü©ËJG DFA that is distinct from every other symbol. That is, the alphabet ofÁüøËKH lazy DFAs in this crate has a logical size of 257 instead of 256, whereÁüÈÌKH 256 corresponds to every possible inhabitant of `u8`. (In practice, theÁü˜ÍIF physical alphabet size may be smaller because of alphabet compressionÁüæÍIF via equivalence classes, but EOI is always represented somehow in theÁt´Î alphabet.)ÁÇÎ�üÏÎØÔ4óÎ�üûÎD�Õ4üÄÏCÞÕ4üŒÐ=¬Ö4üÎÐKôÖ4üžÑGÊ×4üêÑKœØ4üºÒFòØ4d…ÓÂÙ4–Ó�üžÓIæÙ4<ìÓ ID.ÁøÓ�ü€ÔI¬Û4üÎÔ.€Ü4�Õ�ü‰ÕEÆÜ4üÓÕ=–Ý4•Ö�d�Öúë0®Ö�ü¶ÖF†Þ4ü�×H×Þ4ŒÎשß4ä×�lìו£/þ×�ü†ØKH This shows a simplistic example for walking a DFA for a given haystack,ÁüÖØ@= and then finishing the search with the final EOI transition.Á›Ù�<£Ùä¤/ü¯Ù2€þ2æÙ�üîÙ$®á4ü—Ú'©�0üÃÚ$ìá4ìÚ�üôÚG¨â4üÀÛ%úâ4üêÛ*ªã4ü™Ü*ßã4<ÈÜÄ™1üÔÜ*¢ä4ăÝÖä4ü Ý2ùä4,×Ýœü3üáÝGD // Matches are always delayed by 1 byte, so we must explicitly walkÁü­ÞJG // the special "EOI" transition at the end of the search. Without thisÁüüÞJG // final transition, the assert below will fail since the DFA will notÁüËß&# // have entered a match state yet!Áüöß/Þæ4äªà—ç4Ëà�üÓà.Ǭ/<†áä¤/t§áÖ/×/ Ö/ïò ×/ûó°ÿ¼¯ BÿÅ ¿áÅ É$ÀáóAkb°± vbüˆò†üðäDA Return the ID of the start state for this lazy DFA for the givenÁܹå starting configuration.ÁÙå�üáåHE Unlike typical DFA implementations, the start state for DFAs in thisÁü®æ2/ crate is dependent on a few different factors:Áåæ�üíæC@ * The [`Anchored`] mode of the search. Unanchored, anchored andÁüµçJG anchored searches for a specific [`PatternID`] all use different startÁ\„è states.Áü”èFC * Whether a "look-behind" byte exists. For example, the `^` anchorÁüßè85 matches if and only if there is no look-behind byte.ÁüœéJG * The specific value of that look-behind byte. For example, a `(?m:^)`ÁüëéGD assertion only matches when there is either no look-behind byte, orÁü·ê30 when the look-behind byte is a line terminator.Áïê�ü÷êB? The [starting configuration](start::Config) provides the aboveÁ„¾ë information.ÁÓë�üÛëDA This routine can be used for either forward or reverse searches.Áü¤ìA> Although, as a convenience, if you have an [`Input`], then itÁüêì?< may be more succinct to use [`DFA::start_state_forward`] orÁü®íIF [`DFA::start_state_reverse`]. Note, for example, that the convenienceÁüüíEB routines return a [`MatchError`] on failure where as this routineÁìÆî returns a [`StartError`].Áèî�dðî•£1�ï�ü‰ïHE This may return a [`StartError`] if the search needs to give up whenÁüÖïFC determining the start state (for example, if it sees a "quit" byteÁü¡ðDA or if the cache has become inefficient). This can also return anÁüêðIF error if the given configuration contains an unsupported [`Anchored`]Á”¸ñ configuration.Á\�òØ/Ù/Ú/ Ø/ïò Ù/ûó Ú/ö�îÍ BÿÅ ¤òÅØÙ $¥òóAAiÉOiüÚþ‰ü—øGD Return the ID of the start state for this lazy DFA when executing aÁœãø forward search.Áûø�üƒùGD This is a convenience routine for calling [`DFA::start_state`] thatÁüÏùKH converts the given [`Input`] to a [start configuration](start::Config).ÁüŸúKH Additionally, if an error occurs, it is converted from a [`StartError`]ÁüïúA> to a [`MatchError`] using the offset information in the givenÁtµû [`Input`].ÁÈû�dÐû•£1áû�üéûHE This may return a [`MatchError`] if the search needs to give up whenÁü¶üIF determining the start state (for example, if it sees a "quit" byte orÁü„ýJG if the cache has become inefficient). This can also return an error ifÁüÓýIF the given `Input` contains an unsupported [`Anchored`] configuration.ÁœáþÛ/Ü/Ý/Þ/ Û/ïò Ü/ûó Ý/Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Þ/«Û BÿÅ þþÅ Ë$ÿþóA™m–`¤m,Ö€Ë�Ì�Ì�ÌÌËÔÚ ü�‹‰üÚ„G¿½5œ¦… reverse search.Á¾…�üÆ…G»¾5ü’†K�¿5üâ†Kã¿5ü²‡A¹À5tø‡„Á5‹ˆ�d“ˆ•£1¤ˆ�ü¬ˆHÅÁ5üùˆI˜Â5üljJìÂ5ü–ŠIÁÃ5œ¤‹ß/à/á/â/ ß/ïò à/ûó á/Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²â/«Û BÿÅ Á‹Å Í$‹óA¡r–`¬r,™�Í�Î�Î�ÎÎͯå üõ§@üœ�B? Returns the total number of patterns that match in this state.Áã��üë�A> If the lazy DFA was compiled with one pattern, then this mustÁü±‘74 necessarily always return `1` for all match states.Áí‘�üõ‘HE A lazy DFA guarantees that [`DFA::match_pattern`] can be called withÁüÂ’IF indices up to (but not including) the length returned by this routineÁ´�“ without panicking.Á«“�d³“úë0Ä“�üÌ“GD If the given state is not a match state, then this may either panicÁü˜”" or return an incorrect result.Á¿”�lÇ”•£/Ù”�üá”DA This example shows a simple instance of implementing overlappingÁüª•GD matches. In particular, it shows not only how to determine how manyÁüö•GD patterns have matched in a particular state, but also how to accessÁü–)& which specific patterns have matched.Áð–�üø–KH Notice that we must use [`MatchKind::All`] when building the DFA. If weÁüÈ—HE used [`MatchKind::LeftmostFirst`] instead, then the DFA would not beÁü•˜JG constructed in a way that supports overlapping matches. (It would onlyÁüä˜JG report a single pattern that matches at any particular point in time.)Á³™�ü»™GD Another thing to take note of is the patterns used and the order inÁü‡šIF which the pattern IDs are reported. In the example below, pattern `3`ÁüÕšC@ is yielded first. Why? Because it corresponds to the match thatÁü�›GD appears first. Namely, the `@` symbol is part of `\S+` but not partÁüé›JG of any of the other patterns. Since the `\S+` pattern has a match thatÁü¸œJG starts to the left of any other pattern, its ID is returned before anyÁT‡� other.Á–��<ž�ä¤/üª�=ÔÂ/üì�=: use regex_automata::{hybrid::dfa::DFA, Input, MatchKind};Á®ž�ä¶žòË3üמ<Ýš0´˜Ÿ .build_many(&[Áü³Ÿ1. r"\w+", r"[a-z]+", r"[A-Z]+", r"\S+",ÁdéŸ ])?;ÁüúŸ'©�0ü¦ %" let haystack = "@bar".as_bytes();ÁР�üØ G¨â4ü¤¡%úâ4üΡ*ªã4üý¡*ßã4<¬¢Ä™1ü¸¢*¢ä4Äç¢Öä4ü„£2ùä4,»£œü3üÅ£/Þæ4ù£�ä�¤—ç4ü¢¤2/ assert_eq!(dfa.match_len(&mut cache, sid), 3);ÁüÙ¤HE // The following calls are guaranteed to not panic since `match_len`ÁÔ¦¥ // returned `3` above.ÁüÅ¥DA assert_eq!(dfa.match_pattern(&mut cache, sid, 0).as_usize(), 3);ÁüަDA assert_eq!(dfa.match_pattern(&mut cache, sid, 1).as_usize(), 0);ÁüצDA assert_eq!(dfa.match_pattern(&mut cache, sid, 2).as_usize(), 1);Á §�ü¨§.Ǭ/<Û§ä¤/Lü§ã/ä/ ã/ïò ä/ûó°ÿBÿÅ †¨Å Ï$‡¨óAwˆC wüÕ°ƒü¦©HE Returns the pattern ID corresponding to the given match index in theÁ„ó© given state.Áˆª�ü�ªC@ See [`DFA::match_len`] for an example of how to use this methodÁüتGD correctly. Note that if you know your lazy DFA is configured with aÁü¤«FC single pattern, then this routine is never necessary since it willÁüï«C@ always return a pattern ID of `0` for an index of `0` when `id`Áü·¬! corresponds to a match state.Áݬ�üå¬DA Typically, this routine is used when implementing an overlappingÁü®­52 search, as the example for `DFA::match_len` does.Áè­�dð­úë0�®�ü‰®EB If the state ID is not a match state or if the match index is outÁüÓ®EB of bounds for the given state, then this routine may either panicÁü�¯FC or produce an incorrect result. If the state ID is correct and theÁüè¯EB match index is correct, then this routine always produces a validÁ„²° `PatternID`.Álܰå/æ/ å/ïò æ/ûó°ÿ›†BÿÅ ó°Å Ð$ô°óAyˆCyôò yT£ãûóÒÓÔÕÖ×ÙÚô±åü´ã.+ Create a new cache for the given lazy DFA.Áçã�üïãJG The cache returned should only be used for searches for the given DFA.Áü¾äFC If you want to reuse the cache for another DFA, then you must callÁü‰å# [`Cache::reset`] with that DFA.Á¸åë/ ë/ïòûóBÿÑ ÁåÑ ÒÒ¼åü³ø"ü¾ëJG Reset this cache such that it can be used for searching with the givenÁü�ì! lazy DFA (and only that DFA).Á³ì�ü»ìHð¯0ôˆí»•3«í�ü³íJï•3ü‚îFÖ3üÍî$“—3öî�üþîEÍ—3äÈ3éï�lñï•£/ƒð�ü‹ðFޱ0Öð�<Þðä¤/üêð=ÔÂ/ü¬ñ=¿ð2îñ�üöñ µ™3ü›ò ß™3Àò�üÈò(•š3|õò¡´0ü‰ó$Ôš3ü²ó<‚›34óó½µ0þó�ü†ôIá›3üÔôI®¶0ü¢õ0œ34×õÅ·0üâõK‰�3|²öª¸0¼Æö cache.reset(&dfa2);Á|âö¡´0üöö$£ž3üŸ÷=Ñž34á÷½µ0ì÷�üô÷.Ǭ/<§øä¤/,ºøì/í/ ì/ûó í/ïòBÿÑ ÀøÑ Ó$ÅøÒËøüøü)üŽù<9 Initializes a new search starting at the given position.ÁÏù�ü×ùJG If a previous search was unfinished, then it is finished automaticallyÁô¦ú and a new search is begun.ÁÉú�üÑúA> Note that keeping track of search progress is _not necessary_Áü—ûC@ for correct implementations of search using a lazy DFA. KeepingÁüßû>; track of search progress is only necessary if you want theÁü¢üC@ [`Config::minimum_bytes_per_state`] configuration knob to work.Ádÿüî/ î/ûóBÿÑ ŒýÑ Ô$‘ý™´c‰üÀ‚*ü½ÿDA Updates the current search to indicate that it has search to theÁ¬†€ current position.Á €�ü¨€GD No special care needs to be taken for reverse searches. Namely, theÁüô€JG position given may be _less than_ the starting position of the search.ÁÃ��dË�úë0Ü��üä�IF This panics if no search has been started by [`Cache::search_start`].ÁlÇ‚ï/ ï/ûóBÿÑ Õ‚Ñ Õ$Ú‚™´ðŠüª…*üéƒ?< Indicates that a search has finished at the given position.Á­„�dµ„úë0Æ„�ü΄I±ü5l±…ð/ ð/ûóBÿÑ ¿…Ñ Ö$Ä…™´�ü ‹'üý†HE Returns the total number of bytes that have been searched since thisÁÜʇ cache was last cleared.Áê‡�üò‡C@ This is useful for determining the efficiency of the cache. ForÁüºˆA> example, the lazy DFA uses this value in conjunction with theÁü€‰IF [`Config::minimum_bytes_per_state`] knob to help determine whether itÁÔΉ should quit searching.Áí‰�üõ‰HE This always returns `0` if search progress isn't being tracked. NoteÁüŠGD that the lazy DFA search routines in this crate always track searchÁlŽ‹ progress.Á„§‹ñ/ ñ/ûóBÿÑ ¸‹Ñ ×$¹‹‰Œ×�Ø�Ø�ØØ×Ø˜” UÿüÈŽ"ü¡ŒJG Returns the total number of times this cache has been cleared since itÁüðŒ%" was either created or last reset.Áš��ü¢�FC This is useful for informational purposes or if you want to changeÁüí�EB search strategies based on the number of times the cache has beenÁd·Ž cleared.Á\ÏŽò/ ò/ûóBÿÑ ÛŽÑ Ù$ÜŽüÞ�#ü‘�;àû1Ñ��üÙ�F³ü1ü¤�5„ý1då�ó/ ó/ûóBÿÑ ò�Ñ Ú$ó�¤Œ‘<’‘û¼Å‘TË‘ûœ‚šËõ޴؛ۛûø/ ø/ËõBÿÝ ß›Ýב $à›löŸÓ‰|䟼ޟDûŸûÈö Ì΢Â3áÌ3ââá™öãäæèéëíïðñòôøùúûüýþÓ¢×¢üº£:½£û Â3ïò Ì3ûó™öBÿàà ãÂ3Ì3ÒÁ£óA,Ï£üý¤*4€¥ûå å™ö££ƒµ¦Òû§óAûO9ѸbÜ[ Â3åBÿà‡¥à äÂ3Ì3$�¥#%ü™¬�„œ¬ûü/ ü/™ö°ÿÞм¯ Bÿà ¶¬à æÂ3Ì3$»¬°± <ͬÊ$ë¬,™¸æ�ç�ç�ççæç°ÿ°ÿUÿüŠ¿ƒŒ�¿ûý/ ý/™öØ¥†‘îÍ Bÿà ¨¿à èÂ3Ì3$­¿ã÷D»¿‚,׿üËʇ|ÎÊûþ/ þ/™ödž‘¼¯ Bÿà çÊà éÂ3Ì3$ìÊ nfa_start_idÁdúÊ‚,œË$øÑé�ê�ê�êêéêÄ‘6÷ýü¿×§ŒÂ×ûÿ/ ÿ/™öè›Ù4¼¯ BÿàÙ4ìì Ý×àþÆ„•6ü™Ø#…#„•6Ç‘6ôžØ�#„•6Ç‘6°ÿ\±Ø ëÂ3Ì3„•6$â×Ö<ð×idmapÁ,’Øhjü–à“L™àû€0 €0™ö½™„•6¼¯ BÿàÙ4îî ¬àౕ6üÜà#Ä•6ôáàÙ•6\ôà íÂ3Ì3„•6$±àƒ,¿à™•6,ÕàHJü�ð>l ðû�0 �0™ö¼¯ Bÿà ®ðà ïÂ3Ì3$³ðüƒû7|†ûû‚0 ‚0™öÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÕþBÿà –ûà ðÂ3Ì3$›û̈˜\‹˜ûƒ0 ƒ0™öBÿà —˜à ñÂ3Ì3$œ˜ÌÛŸ\ÞŸû„0 „0™öBÿà êŸà òÂ3Ì3$ïŸ$¨¬ò�ó�ó�óóòóÄ‘6ó° ĈµT‹µû…0 …0™öBÿà –µà ôÂ3Ì3$›µ$‰Âô�õ�õ�õõôõÄ‘6$ÜÂô�ö�ö�ööôöÄ‘6$¬Ãô�÷�÷�÷÷ô÷Ä‘6ü¹Ñ)T¼Ñû†0 †0™ö°ÿBÿà ÇÑà øÂ3Ì3$ÌшCÒÑüüÔ+tÿÔû‡0 ‡0™ö°ÿBÿà ŽÕà ùÂ3Ì3$“ÕüôÖEœ÷Öûˆ0 ˆ0™ö°ÿ°ÿBÿà ‹×à úÂ3Ì3$�×”$–×ðä1©×üßÙ}tâÙû‰0 ‰0™ö°ÿÞаÿBÿà úÙà ûÂ3Ì3$ÿÙ”$�ÚÊ$¨Úðä1ÆÚüûÞw|þÞûŠ0 Š0™öØ¥†‘°ÿBÿà —ßà üÂ3Ì3$œßã÷Dªß‚,ÆßˆCÜßüôç4Œ÷çû‹0 ‹0™öÞšBÿà ‰èà ýÂ3Ì3$Žèü‡ë9ŒŠëûŒ0 Œ0™öè›Bÿà œëà þÂ3Ì3$¡ëÖ<§ëä„îÂ3€Ì3��€çö‚ƒ„…†‡ˆ‰Š‹Œ‰î�îüóî9öîûë�6 Ì3ûóçöBÿÿÿ ‚Â3Ì3ÒúîóA,ˆïüÊñ�œÍñû�0 �0çöØ¥†‘îÍ Bÿÿ êñÿ ƒÂ3Ì3$ëñã÷”™‚Ÿ™ü£ù6„¦ùû‘0 ‘0çö°ÿ ‘0½™Bÿÿ ·ùÿ „Â3Ì3$¸ù Ø¾ùüèþ.\ëþû’0 ’0çö°ÿBÿÿ ÷þÿ …Â3Ì3$øþˆCþþü³€#T¶€û“0 “0çö°ÿBÿÿ Á€ÿ †Â3Ì3$€ü“‚ <–‚û”0 ”0çö°ÿBÿÿ ž‚ÿ ‡Â3Ì3$Ÿ‚üÄ… <Ç…û•0 •0çö°ÿBÿÿ Ï…ÿ ˆÂ3Ì3$Ð…üù‰+Dü‰û–0 –0çö°ÿBÿÿ …Šÿ ‰Â3Ì3$†ŠˆCŒŠüæ‹4œé‹û—0˜0 —0çö ˜0½™Bÿÿ ý‹ÿ ŠÂ3Ì3$þ‹ƒ,„ŒüÌ�FÜÏ�û™0š0 ™0çö š0è›Bÿÿ ë�ÿ ‹Â3Ì3$ì�ƒ,ò�ü»”aü¾”û›0 ›0çöBÿÿ ç”ÿ ŒÂ3Ì3$è”state_heap_sizeÁ|ö”¤§•<­•û¼à•Tæ•û|ßµ÷�‘’¼þŸ$� ûµ÷Bÿ�� �ü¿¡:d¡û 0  0µ÷řǙș­É™Ê™àË™óG*¤�R{9 °ÿ½™Bÿ� Ï¡� ‘$Ô¡ü‘¨/T”¨û¡0 ¡0µ÷ðô Bÿ� Ÿ¨� ’$¤¨\©¶¯ø”•–—˜™š›œ�žŸ ¡¢£¤¥§¨©ª«¬­®¯´ø¶ü»¶85 Return a new default lazy DFA builder configuration.Áÿ¶¯øBÿ““ ”ü©Ý6ü¶·$®�/ß·�üç·Iè�/üµ¸F»‘/ü€¹H‹’/ü͹3Ý’/…º�ü�ºB¦“/üÔºFC [`MatchKind::All`]. This corresponds to classical DFA constructionÁüŸ»96 where all possible matches are added to the lazy DFA.ÁÝ»�üå»EB Typically, `All` is used when one wants to execute an overlappingÁü¯¼HE search and `LeftmostFirst` otherwise. In particular, it rarely makesÁüü¼KH sense to use `All` with the various "leftmost" find routines, since theÁü̽IF leftmost routines depend on the `LeftmostFirst` automata constructionÁüš¾C@ strategy. Specifically, `LeftmostFirst` adds dead states to theÁüâ¾A> lazy DFA as a way to terminate the search and report a match.Áü¨¿HE `LeftmostFirst` also supports non-greedy matches using this strategyÁäõ¿ where as `All` does not.Á–À�üžÀ! # Example: overlapping searchÁÄÀ�üÌÀGD This example shows the typical use of `MatchKind::All`, which is toÁü˜Á report overlapping matches.Á¼Á�<ÄÁä¤/üÐÁ=ÔÂ/Ì’Âô¤/ü°Â-Ä�4üâÂ$åò34‹ÃÝ¥/–Ã�äžÃòË3ü¿Ã<Ýš0ü€Ä*Þ4ü¯Ä'©�0ÔÛÄ“Ÿ4üúÄ.¸Ÿ4­Å�üµÅ/þŸ4üéÅ#¸ 4ü‘Æ6æ 4<ÌÆÄ™1üØÆ,µ¡4‰Ç�ü‘ÇIù¡4üßÇFÍ¢4üªÈGž£4üöÈIð£4üÄÉ(Ĥ4üñÉ/÷¤4ü¥Ê#¸ 4üÍÊ6æ 4<ˆËÄ™1ü”Ë,µ¡4ÅË�üÍË.Ǭ/<€Ìä¤/ŒÌ�ü”Ì74 # Example: reverse automaton to find start of matchÁÐÌ�üØÌDA Another example for using `MatchKind::All` is for constructing aÁü¡ÍGD reverse automaton to find the start of a match. `All` semantics areÁüíÍDA used for this in order to find the longest possible match, whichÁü¶Î2/ corresponds to the leftmost starting position.ÁíÎ�üõÎ41 Note that if you need the starting position thenÁü®ÏJG [`hybrid::regex::Regex`](crate::hybrid::regex::Regex) will handle thisÁüýÏ?< for you, so it's usually not necessary to do this yourself.ÁÁÐ�<ÉÐä¤/ÌÕÐô¤/ÌóÐûÊ3ܑђ„0ü±Ñ.+ Anchored, HalfMatch, Input, MatchKind,Á4äÑÝ¥/ïÑ�ü÷Ñ+( let input = Input::new("123foobar456");Áì§Ò let pattern = r"[a-z]+r";ÁÉÒ�üÑÒ%" let dfa_fwd = DFA::new(pattern)?;ÁüûÒ  let dfa_rev = DFA::builder()Áü Ó.+ .thompson(NFA::config().reverse(true))ÁüÓÓ<Ýš0Ì”Ô .build(pattern)?;Áü²Ô/, let mut cache_fwd = dfa_fwd.create_cache();ÁüæÔ/, let mut cache_rev = dfa_rev.create_cache();ÁšÕ�ü¢Õ-* let expected_fwd = HalfMatch::must(0, 9);ÁüÔÕ-* let expected_rev = HalfMatch::must(0, 3);Áü†ÖKH let got_fwd = dfa_fwd.try_search_fwd(&mut cache_fwd, &input)?.unwrap();ÁüÖÖIF // Here we don't specify the pattern to search for since there's onlyÁü¤×IF // one pattern and we're doing a leftmost search. But if this were anÁüò×IF // overlapping search, you'd need to specify the pattern that matchedÁüÀØJG // in the forward direction. (Otherwise, you might wind up finding theÁü�ÙHE // starting position of a match of some other pattern.) That in turnÁüÜÙKH // requires building the reverse automaton with starts_for_each_patternÁ|¬Ú // enabled.Á¬ÀÚ let input = inputÁ„ÚÚ .clone()ÁüïÚ" .range(..got_fwd.offset())Áü–Û! .anchored(Anchored::Yes);Áü¼ÛKH let got_rev = dfa_rev.try_search_rev(&mut cache_rev, &input)?.unwrap();ÁüŒÜ&# assert_eq!(expected_fwd, got_fwd);Áü·Ü&# assert_eq!(expected_rev, got_rev);ÁâÜ�üêÜ.Ǭ/<�Ýä¤/T°Ý¯øù¦¯øBÿ““ÍÇ $¿Ý¦$ÅÝü�ô<ü ÞA> Set a prefilter to be used whenever a start state is entered.ÁæÞ�üîÞFC A [`Prefilter`] in this context is meant to accelerate searches byÁü¹ßGD looking for literal prefixes that every match for the correspondingÁü…àFC pattern (or patterns) must start with. Once a prefilter produces aÁüÐàHE match, the underlying search routine continues on to try and confirmÁt�á the match.Á°á�ü¸áIF Be warned that setting a prefilter does not guarantee that the searchÁü†âC@ will be faster. While it's usually a good bet, if the prefilterÁüÎâHE produces a lot of false positive candidates (i.e., positions matchedÁü›ãGD by the prefilter but not by the regex), then the overall result canÁüçãHE be slower than if you had just executed the regex engine without anyÁ|´ä prefilters.ÁÈä�üÐäA> Note that unless [`Config::specialize_start_states`] has beenÁü–åEB explicitly set, then setting this will also enable (when `pre` isÁüàåIF `Some`) or disable (when `pre` is `None`) start state specialization.Áü®æGD This occurs because without start state specialization, a prefilterÁüúæHE is likely to be less effective. And without a prefilter, start stateÁüÇç(% specialization is usually pointless.Áôç�üüç# By default no prefilter is set.Á¤è�l¬è•£/¾è�<Æèä¤/ÌÒèô¤/ÌðèûÊ3üŽé# util::prefilter::Prefilter,Áü¶é$! Input, HalfMatch, MatchKind,Á4ßéÝ¥/êé�üòéHE let pre = Prefilter::new(MatchKind::LeftmostFirst, &["foo", "bar"]);ÁÜ¿êø¥/üßê0- .configure(DFA::config().prefilter(pre))Áü”ë$! .build(r"(foo|bar)[a-z]+")?;Áü½ë&Ê›0üèë.+ let input = Input::new("foo1 barfox bar");Á|›ì¡´0ü¯ì%" Some(HalfMatch::must(0, 11)),ÁüÙì/, re.try_search_fwd(&mut cache, &input)?,Á4�í½µ0˜í�ü í.Ǭ/<Óíä¤/ßí�üçíFC Be warned though that an incorrect prefilter can lead to incorrectÁd²î results!ÁÃî�<Ëîä¤/Ì×îô¤/ÌõîûÊ3ü“ï#Þß6ü»ï$Œà64äïÝ¥/ïï�ü÷ïHE let pre = Prefilter::new(MatchKind::LeftmostFirst, &["foo", "car"]);ÁÜÄðø¥/üäð0·á6ü™ñ$òá6üÂñ&Ê›0üíñ.°â6| ò¡´0ü´ò>; // No match reported even though there clearly is one!Ál÷ò None,Áü‰ó/§ã64½ó½µ0Èó�üÐó.Ǭ/<ƒôä¤/L–ô¯ø¹Å ¯øBÿ““ÊÆ $¤ôѶªôüÞ�=ü£öEÑ›/líö lazy DFA.Áÿö�ü‡÷GÆœ/üÓ÷HE pattern in the lazy DFA. When this start state is used, then the DFAÁü øIF will only search for matches for the pattern specified, even if thereÁüîø" are other patterns in the DFA.Á•ù�ü�ùHîž/üêùFC the size of the DFA and/or increase the time it takes to build theÁüµúGD DFA at search time. However, since this is configuration for a lazyÁü�ûIF DFA, these states aren't actually built unless they're used. EnablingÁüÏûJG this isn't necessarily free, however, as it may result in higher cacheÁTžü usage.Á­ü�üµüHE There are a few reasons one might want to enable this (it's disabledÁ„‚ý by default):Á—ý�üŸýJG 1. When looking for the start of an overlapping match (using a reverseÁüîýKH DFA), doing it correctly requires starting the reverse search using theÁü¾þHE starting state of the pattern that matched in the forward direction.Áü‹ÿFC Indeed, when building a [`Regex`](crate::hybrid::regex::Regex), itÁüÖÿGD will automatically enable this option when building the reverse DFAÁ|¢€ internally.Áü¶€GD 2. When you want to use a DFA with multiple patterns to both searchÁü‚�GD for matches of any pattern or to search for anchored matches of oneÁüÎ�KH particular pattern while using the same DFA. (Otherwise, you would needÁüž‚+( to compile a new DFA for each pattern.)Á΂�üÖ‚ à¢/û‚�lƒƒ•£/•ƒ�ü�ƒIF This example shows how to use this option to permit the same lazy DFAÁüëƒJG to run both general searches for any pattern and anchored searches forÁ¼º„ a specific pattern.ÁÖ„�<Þ„ä¤/Ìê„ô¤/̈…ûÊ3ü¦….+ Anchored, HalfMatch, Input, PatternID,Á4Ù…Ý¥/ä…�äì…òË3ü�†?�¦/üц=: .build_many(&[r"[a-z0-9]{6}", r"[a-z][a-z0-9]{5}"])?;Áü“‡'©�0ü¿‡  let haystack = "bar foo123";Áä‡�üì‡DA // Here's a normal unanchored search that looks for any pattern.Áüµˆ*' let expected = HalfMatch::must(0, 10);Áüäˆ%" let input = Input::new(haystack);ÁüމHE assert_eq!(Some(expected), dfa.try_search_fwd(&mut cache, &input)?);ÁüÛ‰JG // We can also do a normal anchored search for any pattern. Since it'sÁüªŠGD // an anchored search, we position the start of the search where weÁüöŠ! // know the match will begin.Áüœ‹*¶ú6üË‹0- let input = Input::new(haystack).range(4..);Áü€ŒH›û6üÍŒGD // Since we compiled anchored start states for each pattern, we canÁü™�DA // also look for matches of other patterns explicitly, even if aÁüâ�52 // different pattern would have normally matched.ÁüœŽ*' let expected = HalfMatch::must(1, 10);ÁüËŽ$¡Ò3œôŽ .range(4..)ÁüŒ�9ÐÒ3üÊ�H›û6—��üŸ�.Ǭ/<Ò�ä¤/¼å�¯ø¯øBÿ““ —$�‘ꇑü¸ 2üè‘GD Whether to attempt to shrink the size of the lazy DFA's alphabet orÁD´’£ð0Á’�üÉ’I±®/ü—“" one is debugging the lazy DFA.Á¾“�üÆ“EB When enabled, the lazy DFA will use a map from all possible bytesÁü�”DA to their corresponding equivalence class. Each equivalence classÁüÙ”HE represents a set of bytes that does not discriminate between a matchÁü¦•GD and a non-match in the DFA. For example, the pattern `[ab]+` has atÁüò•IF least two equivalence classes: a set containing `a` and `b` and a setÁüÀ–HE containing every byte except for `a` and `b`. `a` and `b` are in theÁü�—FC same equivalence classes because they never discriminate between aÁÔØ— match and a non-match.Á÷—�üÿ—F›´/üʘIF can be reduced drastically from `#states * 256 * sizeof(LazyStateID)`Áü˜™EB to `#states * k * sizeof(LazyStateID)` where `k` is the number ofÁüâ™DA equivalence classes (rounded up to the nearest power of 2). As aÁü«šKH result, total space usage can decrease substantially. Moreover, since aÁüûšJG smaller alphabet is used, DFA compilation during search becomes fasterÁüÊ›JG as well since it will potentially be able to reuse a single transitionÁ¼™œ for multiple bytes.Áµœ�ü½œGD **WARNING:** This is only useful for debugging lazy DFAs. DisablingÁü‰�GD this does not yield any speed advantages. Namely, even when this isÁüÕ�F¼¹/ü žFŒº/üëžHܺ/ü¸ŸI®»/ü† -�¼/d¿ ¯ø¯øBÿ““ ˜$РêÖ ü˜À;ü¬¡1. Heuristically enable Unicode word boundaries.Áâ¡�üê¡JG When set, this will attempt to implement Unicode word boundaries as ifÁü¹¢JG they were ASCII word boundaries. This only works when the search inputÁüˆ£JG is ASCII only. If a non-ASCII byte is observed while searching, then aÁü×£+( [`MatchError::quit`] error is returned.Á‡¤�ü�¤FC A possible alternative to enabling this option is to simply use anÁüÚ¤JG ASCII word boundary, e.g., via `(?-u:\b)`. The main reason to use thisÁü©¥JG option is if you absolutely need Unicode support. This option lets oneÁüø¥FC use a fast search implementation (a DFA) for some potentially veryÁüæGD common cases, while providing the option to fall back to some otherÁü�§FC regex engine to handle the general case when an error is returned.ÁÚ§�üâ§IF If the pattern provided has no Unicode word boundary in it, then thisÁü°¨EB option has no effect. (That is, quitting on a non-ASCII byte onlyÁüú¨GD occurs when this option is enabled _and_ a Unicode word boundary isÁ䯩 present in the pattern.)Áç©�üï©GD This is almost equivalent to setting all non-ASCII bytes to be quitÁü»ªIF bytes. The only difference is that this will cause non-ASCII bytes toÁü‰«GD be quit bytes _only_ when a Unicode word boundary is present in theÁdÕ«áé/æ«�üî«<9 When enabling this option, callers _must_ be prepared toÁü¯¬=: handle a [`MatchError`] error during search. When using aÁüñ¬IF [`Regex`](crate::hybrid::regex::Regex), this corresponds to using theÁü¿­IF `try_` suite of methods. Alternatively, if callers can guarantee thatÁü�®KH their input is ASCII only, then a [`MatchError::quit`] error will neverÁüÝ®  be returned while searching.Á‚¯�üН  This is disabled by default.Á¯¯�l·¯•£/ɯ�üѯJG This example shows how to heuristically enable Unicode word boundariesÁü °IF in a pattern. It also shows what happens when a search comes across aÁœî° non-ASCII byte.Á†±�<ޱä¤/Ìš±ô¤/̸±ûÊ3üÖ±%" HalfMatch, Input, MatchError,Á4€²Ý¥/‹²�䓲òË3ü´²=õ„3üö² .build(r"\b[0-9]+\b")?;Áüš³'©�0Ƴ�üγC@ // The match occurs before the search ever observes the snowmanÁü–´%" // character, so no error occurs.ÁüÀ´" let haystack = "foo 123 ☃";Áüç´/, let expected = Some(HalfMatch::must(0, 7));Áü›µEúÏ3ôåµ—‘3ˆ¶�ü�¶GD // Notice that this search fails, even though the snowman characterÁüܶC@ // occurs after the ending match offset. This is because searchÁü¤·GD // routines read one byte past the end of the search to account forÁüð·JG // look-around, and indeed, this is required here to determine whetherÁü¿¸ // the trailing \b matches.Áüã¸! let haystack = "foo 123 ☃";Áü‰¹-* let expected = MatchError::quit(0xE2, 8);Áü»¹DA let got = dfa.try_search_fwd(&mut cache, &Input::new(haystack));Áü„º# assert_eq!(Err(expected), got);Á¬º�ü´ºKH // Another example is executing a search where the span of the haystackÁü„»KH // we specify is all ASCII, but there is non-ASCII just before it. ThisÁüÔ»'$ // correctly also reports an error.Áü€¼/, let input = Input::new("β123").range(2..);Áü´¼-* let expected = MatchError::quit(0xB2, 1);Áüæ¼52 let got = dfa.try_search_fwd(&mut cache, &input);Áü ½#½¨7Ƚ�üн41 // And similarly for the trailing word boundary.Áü‰¾/, let input = Input::new("123β").range(..3);Áü½¾-* let expected = MatchError::quit(0xCE, 3);Áüï¾5È«7ü©¿#½¨7Ñ¿�üÙ¿.Ǭ/<ŒÀä¤/¬ŸÀ¯ø¯øBÿ““ ™$¹Àê¿ÀüæÛ4ü¨Ã&# Add a "quit" byte to the lazy DFA.ÁÓÃ�üÛÃJG When a quit byte is seen during search time, then search will return aÁüªÄHE [`MatchError::quit`] error indicating the offset at which the searchÁd÷Ä stopped.ÁˆÅ�ü�ÅFC A quit byte will always overrule any other aspects of a regex. ForÁüÛÅJG example, if the `x` byte is added as a quit byte and the regex `\w` isÁüªÆFC used, then observing `x` will cause the search to quit immediatelyÁüõÆ30 despite the fact that `x` is in the `\w` class.Á­Ç�üµÇIF This mechanism is primarily useful for heuristically enabling certainÁüƒÈHE features like Unicode word boundaries in a DFA. Namely, if the inputÁüÐÈGD to search is ASCII, then a Unicode word boundary can be implementedÁüœÉGD via an ASCII word boundary with no change in semantics. Thus, a DFAÁüèÉJG can attempt to match a Unicode word boundary but give up as soon as itÁü·ÊIF observes a non-ASCII byte. Indeed, if callers set all non-ASCII bytesÁü…ËIF to be quit bytes, then Unicode word boundaries will be permitted whenÁüÓË85 building lazy DFAs. Of course, callers should enableÁü�ÌIF [`Config::unicode_word_boundary`] if they want this behavior instead.ÁüÞÌJG (The advantage being that non-ASCII quit bytes will only be added if aÁü­Í-* Unicode word boundary is in the pattern.)ÁßÍ�üçÍ<Çš7ü¨Î=Ž›7üêÎIÖ›7ä¸Ï `try_` suite of methods.ÁÙÏ�üáÏ,) By default, there are no quit bytes set.Á’Ð�dšÐúë0«Ð�ü³ÐHE This panics if heuristic Unicode word boundaries are enabled and anyÁü€ÑJG non-ASCII byte is removed from the set of quit bytes. Namely, enablingÁüÏÑKH Unicode word boundaries requires setting every non-ASCII byte to a quitÁüŸÒGD byte. So if the caller attempts to undo any of that, then this willÁTëÒ panic.ÁúÒ�l‚Ó•£/”Ó�üœÓFC This example shows how to cause a search to terminate if it sees aÁüçÓJG `\n` byte. This could be useful if, for example, you wanted to preventÁü¶ÔA> a user supplied pattern from matching across a line boundary.ÁüÔ�<„Õä¤/ü�Õ=ÔÂ/üÒÕ>; use regex_automata::{hybrid::dfa::DFA, MatchError, Input};Á•Ö�ä�ÖòË3ü¾Ö30 .configure(DFA::config().quit(b'\n', true))ÁüöÖ# .build(r"foo\p{any}+bar")?;Áüž×'©�0Ê×�ôÒ× let haystack = "foo\nbar";Áüõ×HE // Normally this would produce a match, since \p{any} contains '\n'.ÁüÂØGD // But since we instructed the automaton to enter a quit state if aÁüŽÙ=: // '\n' is observed, this produces a match error instead.ÁüÐÙ.+ let expected = MatchError::quit(b'\n', 3);ÁüƒÚ!—Ú3œ©ÚÂÚ3ôÁÚ &Input::new(haystack),ÁœäÚ ).unwrap_err();ÁôüÚ—‘3ŸÛ�ü§Û.Ǭ/<ÚÛä¤/$íÛ¯ø¯øBÿ““ š$öÛ—»$üÛê†Üüõþ=üŸà52 Enable specializing start states in the lazy DFA.ÁÙà�üáàIF When start states are specialized, an implementor of a search routineÁü¯áKH using a lazy DFA can tell when the search has entered a starting state.ÁüÿáGD When start states aren't specialized, then it is impossible to knowÁüËâ1. whether the search has entered a start state.Á�ã�ü‰ãC@ Ideally, this option wouldn't need to exist and we could alwaysÁüÑãJG specialize start states. The problem is that start states can be quiteÁü äIF active. This in turn means that an efficient search routine is likelyÁüîäGD to ping-pong between a heavily optimized hot loop that handles mostÁüºåHE states and to a less optimized specialized handling of start states.Áü‡æDA This causes branches to get heavily mispredicted and overall canÁüÐæHE materially decrease throughput. Therefore, specializing start statesÁü�ç-* should only be enabled when it is needed.ÁÏç�ü×çKH Knowing whether a search is in a start state is typically useful when aÁü§èIF prefilter is active for the search. A prefilter is typically only runÁüõèJG when in a start state and a prefilter can greatly accelerate a search.ÁüÄéIF Therefore, the possible cost of specializing start states is worth itÁü’êIF in this case. Otherwise, if you have no prefilter, there is likely noÁüàê&# reason to specialize start states.Á‹ë�ü“ëB? This is disabled by default, but note that it is automaticallyÁüÚëIF enabled (or disabled) if [`Config::prefilter`] is set. Namely, unlessÁü¨ìIF `specialize_start_states` has already been set, [`Config::prefilter`]ÁüöìHE will automatically enable or disable it based on whether a prefilterÁüÃíGD is present or not, respectively. This is done because a prefilter'sÁü�îFC effectiveness is rooted in being executed whenever the DFA is in aÁüÚîJG start state, and that's only possible to do when they are specialized.Á©ï�ü±ïA> Note that it is plausibly reasonable to _disable_ this optionÁü÷ïFC explicitly while _enabling_ a prefilter. In that case, a prefilterÁüÂðIF will still be run at the beginning of a search, but never again. ThisÁü�ñJG in theory could strike a good balance if you're in a situation where aÁüßñB? prefilter is likely to produce many false positive candidates.Á¦ò�l®ò•£/Àò�üÈòHE This example shows how to enable start state specialization and thenÁü•ó?< shows how to check whether a state is a start state or not.ÁÙó�<áóä¤/üíó>—Á7°ô�ä¸ôòË3üÙô?< .configure(DFA::config().specialize_start_states(true))ÁÜ�õ .build(r"[a-z]+")?;Áü½õ'©�0éõ�üñõ0- let haystack = "123 foobar 4567".as_bytes();Áü¦öJG let sid = dfa.start_state_forward(&mut cache, &Input::new(haystack))?;ÁüõöHE // The ID returned by 'start_state_forward' will always be tagged asÁüÂ÷@= // a start state when start state specialization is enabled.Áì‡ø assert!(sid.is_tagged());Á䩸 assert!(sid.is_start());ÁÊø�üÒø.Ǭ/<…ùä¤/‘ù�ü™ùC@ Compare the above with the default lazy DFA configuration whereÁüáùEB start states are _not_ specialized. In this case, the start stateÁü«ú52 is not tagged and `sid.is_start()` returns false.Áåú�<íúä¤/üùú>—Á7¼û�üÄû# let dfa = DFA::new(r"[a-z]+")?;Áüìû'©�0˜ü�ü ü0µÞ7üÕüJðÞ7ü¤ý@= // Start states are not tagged in the default configuration!Áôéý assert!(!sid.is_tagged());ÁìŒþ assert!(!sid.is_start());Á®þ�ü¶þ.Ǭ/<éþä¤/¼üþ¯ø¯øBÿ““üÆ $˜ÿêžÿü®” 7üÿÿHE Sets the maximum amount of heap memory, in bytes, to allocate to theÁüÌ€ KH cache for use during a lazy DFA search. If the lazy DFA would otherwiseÁüœ� GD use more heap memory, then, depending on other configuration knobs,Áüè� EB either stop the search and return an error or clear the cache andÁIJ‚  continue the search.ÁÏ‚ �üׂ DA The default cache capacity is some "reasonable" number that willÁü ƒ GD accommodate most regular expressions. You may find that if you needÁüìƒ GD to build a large DFA then it may be necessary to increase the cacheÁl¸„  capacity.ÁÊ„ �üÒ„ KH Note that while building a lazy DFA will do a "minimum" check to ensureÁü¢… GD the capacity is big enough, this is more or less about correctness.Áüî… KH If the cache is bigger than the minimum but still "too small," then theÁü¾† HE lazy DFA could wind up spending a lot of time clearing the cache andÁü‹‡ HE recomputing transitions, thus negating the performance benefits of aÁü؇ HE lazy DFA. Thus, setting the cache capacity is mostly an experimentalÁü¥ˆ FC endeavor. For most common patterns, however, the default should beÁ|ðˆ  sufficient.Á„‰ �üŒ‰ A> For more details on how the lazy DFA's cache is used, see theÁüÒ‰  documentation for [`Cache`].Á÷‰ �lÿ‰ •£/‘Š �ü™Š GD This example shows what happens if the configured cache capacity isÁüåŠ IF too small. In such cases, one can override the cache capacity to makeÁü³‹ JG it bigger. Alternatively, one might want to use less memory by settingÁ삌  a smaller cache capacity.Á¤Œ �<¬Œ ä¤/ü¸Œ =ÔÂ/üúŒ =¿ð2¼� �üÄ� ! let pattern = r"\p{L}{1000}";Áê� �üò� JG // The default cache capacity is likely too small to deal with regexesÁüÁŽ HE // that are very large. Large repetitions of large Unicode characterÁüŽ� ;8 // classes are a common way to make very large regexes.ÁüÎ� +( let _ = DFA::new(pattern).unwrap_err();Áüþ� 0- // Bump up the capacity to something bigger.Áä³� òË3üÔ� IF .configure(DFA::config().cache_capacity(100 * (1<<20))) // 100 MBÁÌ¢‘ ÃÉ6üÀ‘ '©�0ì‘ �üô‘ IF let haystack = "ͰͲͶͿΆΈΉΊΌΎÎ�ΑΒΓΔΕΖΗΘΙ".repeat(50);ÁüÂ’ 2/ let expected = Some(HalfMatch::must(0, 2000));Áüù’ FC let got = dfa.try_search_fwd(&mut cache, &Input::new(&haystack))?;ÁôÄ“ —‘3ç“ �üï“ .Ǭ/<¢” ä¤/tµ” ¯ø¯øBÿ““ œ$È” öÆ,Δ üǨ ?ü«• KH Configures construction of a lazy DFA to use the minimum cache capacityÁüû• KH if the configured capacity is otherwise too small for the provided NFA.ÁË– �üÓ– JG This is useful if you never want lazy DFA construction to fail becauseÁü¢— $! of a capacity that is too small.ÁË— �üÓ— HE In general, this option is typically not a good idea. In particular,Áü ˜ GD while a minimum cache capacity does permit the lazy DFA to functionÁüì˜ HE where it otherwise couldn't, it's plausible that it may not functionÁü¹™ HE well if it's constantly running out of room. In that case, the speedÁü†š EB advantages of the lazy DFA may be negated. On the other hand, theÁüК HE "minimum" cache capacity computed may not be completely accurate andÁü�› IF could actually be bigger than what is really necessary. Therefore, itÁüë› IF is plausible that using the minimum cache capacity could still resultÁ친  in very good performance.ÁÛœ �ü㜠Œž7ˆ� �l�� •£/¢� �üª� G“ò7üö� IF too small. In such cases, one could override the capacity explicitly.ÁüÄž IF An alternative, demonstrated here, let's us force construction to useÁü’Ÿ FC the minimum cache capacity if the configured capacity is otherwiseÁtÝŸ  too small.ÁðŸ �<øŸ ä¤/ü„  =ÔÂ/üÆ  =¿ð2ˆ¡ �ü�¡ !ûô7¶¡ �ü¾¡ J´õ7ü�¢ H‰ö7üÚ¢ ;Üö7üš£ +¢÷7üÊ£ GD // Configure construction such it automatically selects the minimumÁü–¤ 96 // cache capacity if it would otherwise be too small.ÁäÔ¤ òË3üõ¤ A> .configure(DFA::config().skip_cache_capacity_check(true))ÁÌ»¥ ÃÉ6üÙ¥ '©�0…¦ �ü�¦ IŸù7üÛ¦ 2óù7ü’§ F°ú7ôݧ —‘3€¨ �üˆ¨ .Ǭ/<»¨ ä¤/ÌΨ ¯ø¯øBÿ““ �$ì¨ êò¨ ü¢Ï HüÕ© GD Configure a lazy DFA search to quit after a certain number of cacheÁt¡ª  clearings.Á´ª �ü¼ª GD When a minimum is set, then a lazy DFA search will *possibly* "giveÁüˆ« IF up" after the minimum number of cache clearings has occurred. This isÁüÖ« JG typically useful in scenarios where callers want to detect whether theÁü¥¬ KH lazy DFA search is "efficient" or not. If the cache is cleared too manyÁüõ¬ KH times, this is a good indicator that it is not efficient, and thus, theÁüÅ­ 30 caller may wish to use some other regex engine.Áý­ �ü…® EB Note that the number of times a cache is cleared is a property ofÁüÏ® EB the cache itself. Thus, if a cache is used in a subsequent searchÁü™¯ A> with a similarly configured lazy DFA, then it could cause theÁü߯ DA search to "give up" if the cache needed to be cleared, dependingÁü¨° A> on its internal count and configured minimum. The cache clearÁüî° ?< count can only be reset to `0` via [`DFA::reset_cache`] (orÁü²± GD [`Regex::reset_cache`](crate::hybrid::regex::Regex::reset_cache) ifÁüþ± " you're using the `Regex` API).Á¥² �ü­² FC By default, no minimum is configured. Thus, a lazy DFA search willÁüø² HE never give up due to cache clearings. If you do set this option, youÁüų FC might consider also setting [`Config::minimum_bytes_per_state`] inÁü�´ HE order for the lazy DFA to take efficiency into account before givingÁ<Ý´  up.Áé´ �lñ´ •£/ƒµ �ü‹µ JG This example uses a somewhat pathological configuration to demonstrateÁüÚµ EB the _possible_ behavior of cache clearing and how it might resultÁü¤¶ &# in a search that returns an error.Á϶ �ü×¶ FC It is important to note that the precise mechanics of how and whenÁü¢· 52 a cache gets cleared is an implementation detail.ÁÜ· �<ä· ä¤/üð· =ÔÂ/ü²¸ NK use regex_automata::{hybrid::dfa::DFA, Input, MatchError, MatchErrorKind};Á…¹ �ü�¹ @= // This is a carefully chosen regex. The idea is to pick oneÁüÒ¹ DA // that requires some decent number of states (hence the boundedÁü›º HE // repetition). But we specifically choose to create a class with anÁüèº KH // ASCII letter and a non-ASCII letter so that we can check that no newÁü¸» KH // states are created once the cache is full. Namely, if we fill up theÁüˆ¼ JG // cache on a haystack of 'a's, then in order to match one 'β', a newÁü×¼ JG // state will need to be created since a 'β' is encoded with multipleÁü¦½ JG // bytes. Since there's no room for this state, the search should quitÁüõ½ " // at the very first position.Áüœ¾  let pattern = r"[aβ]{100}";ÁäÁ¾ òË3œâ¾  .configure(Áüú¾ FC // Configure it so that we have the minimum cache capacityÁüÅ¿ KH // possible. And that if any clearings occur, the search quits.ÁÌ•À  DFA::config()Áü³À 0- .skip_cache_capacity_check(true)ÁüèÀ " .cache_capacity(0)Áü�Á 41 .minimum_cache_clear_count(Some(0)),ÁLÈÁ  )ÁÌÖÁ ÃÉ6üôÁ '©�0 Â �ü¨Â 74 // Our search will give up before reaching the end!Áüä 0- let haystack = "a".repeat(101).into_bytes();Áü™Ã HE let result = dfa.try_search_fwd(&mut cache, &Input::new(&haystack));Á¬æÃ  assert!(matches!(Áü€Ä $! *result.unwrap_err().kind(),Áü©Ä &# MatchErrorKind::GaveUp { .. },Á<ÔÄ  ));ÁàÄ �üèÄ JG // Now that we know the cache is full, if we search a haystack that weÁü·Å GD // know will require creating at least one new state, it should notÁüƒÆ %" // be able to make much progress.Áü­Æ 1. let haystack = "β".repeat(101).into_bytes();ÁüãÆ Hò¦8¬°Ç ħ8üÊÇ $ä§8üóÇ &“¨8<žÈ è8ªÈ �ü²È JG // If we reset the cache, then we should be able to create more statesÁü�É 74 // and make more progress with searching for betas.Á´½É  cache.reset(&dfa);ÁüØÉ 1¹ª8üŽÊ Hò¦8¬ÛÊ ħ8üõÊ $ä§8üžË &“¨8<ÉË è8ÕË �üÝË KH // ... switching back to ASCII still makes progress since it just needsÁü­Ì -* // to set transitions on existing states!ÁüßÌ 0·¦8ü”Í Hò¦8¬áÍ ħ8üûÍ $ä§8ü¤Î &“¨8<ÏÎ è8ÛÎ �üãÎ .Ǭ/<–Ï ä¤/Ì©Ï ¯øØÚ¯øBÿ““ ž$ÇÏ ãóÍÏ üÊã Fü¹Ð FC Configure a lazy DFA search to quit only when its efficiency dropsÁä„Ñ  below the given minimum.Á¥Ñ �ü­Ñ IF The efficiency of the cache is determined by the number of DFA statesÁüûÑ JG compiled per byte of haystack searched. For example, if the efficiencyÁüÊÒ FC is 2, then it means the lazy DFA is creating a new DFA state afterÁü•Ó HE searching approximately 2 bytes in a haystack. Generally speaking, 2ÁüâÓ IF is quite bad and it's likely that even a slower regex engine like theÁü°Ô EB [`PikeVM`](crate::nfa::thompson::pikevm::PikeVM) would be faster.ÁúÔ �ü‚Õ KH This has no effect if [`Config::minimum_cache_clear_count`] is not set.ÁüÒÕ JG Namely, this option only kicks in when the cache has been cleared moreÁü¡Ö KH than the minimum number. If no minimum is set, then the cache is simplyÁüñÖ IF cleared whenever it fills up and it is impossible for the lazy DFA toÁü¿× -* quit due to ineffective use of the cache.Áñ× �üù× HE In general, if one is setting [`Config::minimum_cache_clear_count`],ÁüÆØ FC then one should probably also set this knob as well. The reason isÁü‘Ù GD that the absolute number of times the cache is cleared is generallyÁüÝÙ HE not a great predictor of efficiency. For example, if a new DFA stateÁüªÚ GD is created for every 1,000 bytes searched, then it wouldn't be hardÁüöÚ GD for the cache to get cleared more than `N` times and then cause theÁüÂÛ KH lazy DFA to quit. But a new DFA state every 1,000 bytes is likely quiteÁü’Ü FC good from a performance perspective, and it's likely that the lazyÁüÝÜ IF DFA should continue searching, even if it requires clearing the cacheÁŒ«Ý  occasionally.ÁÁÝ �üÉÝ FC Finally, note that if you're implementing your own lazy DFA searchÁü”Þ GD routine and also want this efficiency check to work correctly, thenÁüàÞ HE you'll need to use the following routines to record search progress:Á­ß �üµß DA * Call [`Cache::search_start`] at the beginning of every search.Áüþß C@ * Call [`Cache::search_update`] whenever [`DFA::next_state`] isÁ\Æà  called.ÁüÖà FC * Call [`Cache::search_finish`] before completing a search. (It isÁü¡á EB not strictly necessary to call this when an error is returned, asÁüëá GD `Cache::search_start` will automatically finish the previous searchÁü·â IF for you. But calling it where possible before returning helps improveÁü…ã @= the accuracy of how many bytes have actually been searched.)Á¼Ñã ¯øØÚ¯øBÿ““ Ÿ$íã ãóóã üœå )üÝä :ÀË/t£å ¦0 ¦0¯øù¦Bÿ“ ²å “  $³å ü׿ 1ü�æ C@ Returns the prefilter set in this configuration, if one at all.ÁlÞæ §0 §0¯øÅ™Ç™È™­É™Ê™àË™óG*¤�R{9  §0äüBÿ“ ìæ “ ¡$íæ üÀè 1üÊç KÖÌ/üšè !«Í/ÜÇè ¨0 ¨0¯øBÿ“ ãè “Ь $äè üêê &üµé G¦Î/ü�ê J÷Î/¬Ðê ÊÏ/„ñê ©0 ©0¯øBÿ“ ‚ë “ £$ƒë üöì /üÈë IF Returns whether this configuration has enabled heuristic Unicode wordÁü–ì IF boundary support. When enabled, it is possible for a search to returnÁläì  an error.ÁÌýì ª0 ª0¯øBÿ“ —í “ ¤$˜í üåï (üçí JG Returns whether this configuration will instruct the lazy DFA to enterÁü¶î IF a quit state whenever the given byte is seen during a search. When atÁü„ï JG least one byte has this enabled, it is possible for a search to returnÁlÓï ‰Ì8Dìï «0 «0¯øBÿ“ õï “ ¥$öï —»$üï ³ð ¥�¦�¦�¦¦¥¦Ú×UÿíØü“ó 1üÔð DA Returns whether this configuration will instruct the lazy DFA toÁü�ñ HE "specialize" start states. When enabled, the lazy DFA will tag startÁüêñ EB states so that search routines using the lazy DFA can detect whenÁü´ò FC it's in a start state and do some kind of optimization (like run aÁ|ÿò  prefilter).ÁÜšó ¬0 ¬0¯øBÿ“ ¶ó “ §$·ó üÆô )üˆô 96 Returns the cache capacity set on this configuration.Á”Íô ­0 ­0¯øBÿ“ àô “ ¨$áô üöõ 3ü²õ ?< Returns whether the cache capacity check should be skipped.Áìýõ ®0 ®0¯øBÿ“ ›ö “ ©$œö üèø <üïö JG Returns, if set, the minimum number of times the cache must be clearedÁü¾÷ HE before a lazy DFA search can give up. When no minimum is set, then aÁü‹ø FC search will never quit and will always clear the cache whenever itÁlÖø  fills up.Áìïø ¯0 ¯0¯øØÚBÿ“ �ù “ ª$Žù ü—ü :üéù JG Returns, if set, the minimum number of bytes per state that need to beÁü¸ú KH processed in order for the lazy DFA to keep going. If the minimum fallsÁüˆû IF below this number (and the cache has been cleared a minimum number ofÁüÖû <9 times), then the lazy DFA will return a "gave up" error.ÁÜžü °0 °0¯øØÚBÿ“ ºü “ «$»ü ü•ƒ qü”ý KH Returns the minimum lazy DFA cache capacity required for the given NFA.Áäý �üìý GD The cache capacity required for a particular NFA may change withoutÁü¸þ 74 notice. Callers should not rely on it being stable.Áôþ �üüþ IF This is useful for informational purposes, but can also be useful forÁüÊÿ GD other reasons. For example, if one wants to check the minimum cacheÁü–€ HE capacity themselves or if one wants to set the capacity based on theÁd〠 minimum.Áô€ �üü€ JG This may return an error if this configuration does not support all ofÁüË� IF the instructions used in the given NFA. For example, if the NFA has aÁü™‚ JG Unicode word boundary but this configuration does not enable heuristicÁüè‚ (% support for Unicode word boundaries.ÁÔœƒ ±0²0 ±0¯ø ²0�»ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwØûBÿ“ Àƒ “ ¬$Áƒ ß'σ üÚ‡ r¬Ý‡ û³0´0µ0 ³0¯ø ´0�» µ0ÚתÓBÿ“ ü‡ “ ­$ý‡ ß'‹ˆ ¼:$¨ˆ üª“ fŒ­“ û¶0·0 ¶0¯ø ·0�»ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÚרûBÿ“ È“ “ ®$É“ ß'ד üŸ� (L¢� û¸0 ¸0¯ø¯ø¯øBÿ“ ¬� “ ¯$­� ¥ ³� ´ž ¯�°�°�°°¯°ôÄ UÿÏÏdˆ¿ õù²³´¶·¸¹¼á¿ ü›¿ A> Create a new lazy DFA builder with the default configuration.Áè¿ õùBÿ±± ²üÝ =ü¡Á ,) Build a lazy DFA from the given pattern.ÁÒÁ �üÚÁ J„Ö/„©Â ×Ö/Óí”Ä Ծ ,ä ½0¾0 ½0õù ¾0ŸÝBÿ± ê ± ³$ë îN<ñ ü›Å iüÌà -* Build a lazy DFA from the given patterns.Áþà �ü†Ä I´Ø/üÔÄ #‡Ù/Ó픂ŠÔüÄ T¢Å ¿0À0 ¿0õù À0©òŸÝBÿ±Œµµ ÅÅ ±ŸÛ/ ­Å °Û/T°Å ³Ü$ÆÅ ¨ ÿ·"$üÒÒ bü»É #ñÚ/ãÉ �üëÉ JG Note that this requires owning a `thompson::NFA`. While this may forceÁüºÊ HE you to clone the NFA, such a clone is not a deep clone. Namely, NFAsÁü‡Ë KH are defined internally to support shared ownership such that cloning isÁ|×Ë  very cheap.ÁëË �lóË •£/…Ì �ü�Ì IF This example shows how to build a lazy DFA if you already have an NFAÁdÛÌ  in hand.ÁìÌ �<ôÌ ä¤/Ì€Í ô¤/ÌžÍ ûÊ3´¼Í ñ¡0Ì×Í ¢è34õÍ Ý¥/€Î �üˆÎ ص1¬Î �ü´Î EœÝ/üþÎ '$ let nfa = thompson::Compiler::new()ÁüªÏ 85 .configure(thompson::Config::new().shrink(true))ÁÜçÏ  .build(r"[0-9]+")?;Áü‡Ð 2/ let dfa = DFA::builder().build_from_nfa(nfa)?;Áü¾Ð '©�0üêÐ /ÀÏ3üžÑ EúÏ3ôèÑ —‘3‹Ò �ü“Ò .Ǭ/<ÆÒ ä¤/tÙÒ Á0 Á0õù�»ŸÝBÿ± ñÒ ±ƒï $òÒ ß'€Ó ü©è ;üáç C@ Apply the given lazy DFA configuration options to this builder.ÁL°è Â0 Â0õù¯øŽø8Bÿ± ºè ±€È $¿è É4Åè üšì dü´é 7÷â/üðé 4¹ã/©ê �ü±ê J…ä/t€ë Ùä/“ë �ü›ë JG These settings only apply when constructing a lazy DFA directly from aÁdêë áé/Óí”�ì Ôûë 4¡ì Ã0 Ã0õùÝ’¾ú8Bÿ± ±ì ± ¸$¶ì É4Äì üüð Dü¿í =åæ/ü�î <­ç/Âî �üÊî KH This permits setting things like whether the DFA should match the regexÁüšï JG in reverse or if additional time should be spent shrinking the size ofÁdéï  the NFA.Áúï �ü‚ð E’é/dÌð áé/Óí”ãð ÔÝð Dƒñ Ä0 Ä0õù±ªÎý8Bÿ± Œñ ±”É $‘ñ É4—ñ ¬â‰ Âú»¼üÞŠ "üþ‰ HE Create a new overlapping state that begins at the start state of anyÁtËŠ  automaton.Á,åŠ ÂúBÿººöŸ ü�Ž ,ü³Œ JG Return the match result of the most recent search to execute with thisÁT‚�  state.Á‘� �ü™� DA A searches will clear this result automatically, such that if noÁüâ� 63 match is found, this will correctly report `None`.ÁL¤Ž Ì0 Ì0ÂúÖáBÿº ®Ž º�‹ $¯Ž üž’ âü¡’ "ûÐ0Ñ0Ò0 Ð0Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Ñ0 Ò0ÂúúŠ ²×Bÿ‚¾¾ Ó’ þÆúŠ Ä’ Í0Î0Ï0ˆ#úŠ  Í0Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Î0 Ï0Âúü½“ BÍ0Î0Ï0�#úŠ Ÿ„9²×´é“  ½úŠ –`ǃ Çå 4‰“ èêü�� _¬ � ûÓ0 Ó0ªÓÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw°ÿã€Bÿ Ä�  ¿ש<»� ü“¬ |´–¬ ûÔ0Õ0 Ô0�» Õ0ªÓBÿ ·¬  Àß'²¬ ש<ˬ ¡¼æ¬ ¤–­ <œ­ û¼Ë­ TÑ­ ûLê.4,î.4ôáç÷‚ƒ»½„ ÃÅß'*° ÃÆžD=§-ÃÇ,ä @.0´/ |¨ ØûÉÊËÌü¾ ?Ì ×°ØûBÿÈÈ‰ë ¬ºÐ üÁ lÜÏ ØûBÿÈÈ Êí¹<ô ü¹,Œ üª `ô¸ ã€ØûBÿÈÈ Ë¬ºà üþCüŒ%ØûBÿÈÈ Ìü©%Ó‰|—¼‘Øû΂ÎüÕ>4ØÞ0 Þ0ØûřǙș­É™Ê™àË™óG*¤�R{9  Þ0ç¡2BÿÍ ßÍ Î$àü‘&ØûÐ¥gÐü¾DÁß0à0á0 ß0Øû à0€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡á0­àBÿÏ ÅÏ Ð$Æœ Ì|¢&ÒýÒÓÔü¸&2,Æ&ÕþÒýBÿÑÑ Ò¬ºÌ&üš'*$¨'ÒýBÿÑÑîË —»$­'üô'@¤‚(Ø¥ÒýBÿÑÑ€­ ¾»$—(ü‰)%Ó‰|÷(¼ñ(ÒýÖ‚Öüµ)>4¸)æ0 æ0ÒýřǙș­É™Ê™àË™óG*¤�R{9  æ0ç¡2BÿÕ ¿)Õ Ö$À)üî*&ÒýØ¥gØü›+Dž+ç0è0é0 ç0Òý è0€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡é0­àBÿ× ¢+× Ø$£+œ ©+|»>ÕþÚÛüÑ>3¬ß>ÕþBÿÙÙ Úü©?,t·?ÕþBÿÙÙ Ûü�@%Ó‰|þ?¼ø?Õþüº@&ÕþÞ¥gÞüç@Dê@î0ï0ð0 î0Õþ ï0€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ð0­àBÿÝ î@Ý Þ$ï@œ õ@4õ.4ù.4ô‰Š „æ?°ÿáâãäåæçèéêëìíîïðñòóôõö¤Ç@Æ32Á܇@Æ64Áܤ@ü†@:üý?E<Í@ßàà̯AdµAßàà´ìALòAßàà´ªBL°Bßàà¼èBTîBßà༧CT­CßààÜæC÷CààüÂEEÐEª†9Bÿàà èˆCÔEüÏI0lØIß°ÿBÿààüÓ ˆCçü‰M/Œ—Mþ0 þ0°ÿBÿà ©MàÛª $ªMü”O6”¨Oÿ0 ÿ0°ÿBÿà »OàÓµ $¼OüÊP4TÞP€1 €1°ÿ°ÿBÿà éPà ì$êPü‹R1<ŸR�1 �1°ÿ°ÿBÿà §Rà í$¨RüÆS1<ÚS‚1 ‚1°ÿ°ÿBÿà âSà î$ãSüÚU2DîUƒ1 ƒ1°ÿ°ÿBÿà ÷Uà ï$øUüõW2D‰X„1 „1°ÿ°ÿBÿà ’Xà ð$“Xü€[%ü¤Y<9 Return true if and only if this lazy state ID is tagged.ÁåY�üíYHE When a lazy state ID is tagged, then one can conclude that it is oneÁüºZ30 of a match, start, dead, quit or unknown state.ÁL�[…1 …1°ÿBÿà —[àê³ $˜[üû]&üè[FC Return true if and only if this represents a lazy state ID that isÁü³\IF "unknown." That is, the state has not yet been created. When a callerÁü�]JG sees this state ID, it generally means that a state has to be computedÁÄÐ] in order to proceed.ÁTˆ^†1 †1°ÿBÿà “^àë¬ $”^ü�a#üñ^IF Return true if and only if this represents a dead state. A dead stateÁü¿_FC is a state that can never transition to any other state except theÁüŠ`HE dead state. When a dead state is seen, it generally indicates that aÁ¼×` search should stop.Á<Ža‡1 ‡1°ÿBÿà –aà ó$—aüµe#üñaIF Return true if and only if this represents a quit state. A quit stateÁü¿bEB is a state that is representationally equivalent to a dead state,Áü‰cIF except it indicates the automaton has reached a point at which it canÁü×cGD no longer determine whether a match exists or not. In general, thisÁü£dIF indicates an error during search and the caller must either pass thisÁüñd1. error up or use a different search technique.Á<Âeˆ1 ˆ1°ÿBÿà Êeà ô$Ëeüóh$ü¥fFC Return true if and only if this lazy state ID has been tagged as aÁ„ðf start state.Á…g�„�g Note that ifÁü¢gFC [`Config::specialize_start_states`](crate::hybrid::dfa::Config) isÁüígGD disabled (which is the default), then this will always return falseÁü¹h'$ since start states won't be tagged.ÁD€i‰1 ‰1°ÿBÿà ‰ià õ$ŠiüÓj$üåiFˆ«9„°j match state.ÁDàjŠ1 Š1°ÿBÿà éjàÍì $êj¬’nã€øüôn%L‚o’1 ’1ã€Bÿ÷ Œo÷ ø$�oüÔo+Ó‰|Âo¼¼oã€ü„p,ã€û¥gûü·p@ºp“1”1•1 “1〠”1€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡•1­àBÿú ¾pú û$¿pœ Åplý.4üöñ A lazy DFA backed `Regex`. This module provides a [`Regex`] backed by a lazy DFA. A `Regex` implements convenience routines you might have come to expect, such as finding a match and iterating over all non-overlapping matches. This `Regex` type is limited in its capabilities to what a lazy DFA can provide. Therefore, APIs involving capturing groups, for example, are not provided. Internally, a `Regex` is composed of two DFAs. One is a "forward" DFA that finds the end offset of a match, where as the other is a "reverse" DFA that find the start offset of a match. See the [parent module](crate::hybrid) for examples. Á,…/4«°¼ÃÒ$¡ûü€ù©§öü��®T¼áü‚±Dر üƒ�$ö«ü…žD�§-ü‡—,—Ñ,üˆÕÛ,žú,ü‰ÛÀT¥Ì-üŠÓ¿L±º-ü‹,üœüüü"â›ÒÔŒµÄlÓµüün§©üüŽ›�ŠŒxzfhTVTáü¦:7 Convenience routines for regex and cache construction.Áá��Ž�‘’üˆ%6üòJžõ/üÁ # return the corresponding regex.Áé �üñ Hµö/ü¾!ˆ÷/â!�lê!•£/ü!�<„"ä¤/ü�"63 use regex_automata::{hybrid::regex::Regex, Match};ÁË"�üÓ")& let re = Regex::new("foo[0-9]+bar")?;Áü�#&Ê›0|¬#¡´0üÀ#$! Some(Match::must(0, 3..14)),Áüé#1. re.find(&mut cache, "zzzfoo12345barzzz"),Á4Ÿ$½µ0üª$.Ǭ/<Ý$ä¤/Óí”ï$Ôé$�%™1 ™1ñü BÿŒ œ%Œ �îN<“%ü�-Züô%Iåú/üÂ&8¹û/ÿ&�l‡'•£/™'�<¡'ä¤/ü­'6û9è'�üð'52 let re = Regex::new_many(&["[a-z]+", "[0-9]+"])?;Áüª(&Ê›0Õ(�üÝ(C@ let mut it = re.find_iter(&mut cache, "abc 1 foo 4567 0 quux");Áü¥)63 assert_eq!(Some(Match::must(0, 0..3)), it.next());Áüà)63 assert_eq!(Some(Match::must(1, 4..5)), it.next());Áü›*63 assert_eq!(Some(Match::must(0, 6..9)), it.next());ÁüÖ*85 assert_eq!(Some(Match::must(1, 10..14)), it.next());Áü“+85 assert_eq!(Some(Match::must(1, 15..16)), it.next());ÁüÐ+85 assert_eq!(Some(Match::must(0, 17..21)), it.next());Áü�,  assert_eq!(None, it.next());Áü²,.Ǭ/<å,ä¤/Óí”÷,Ôñ,D—-š1 š1©òñü BÿŒŒ�� Â-ŒŸÛ/  -°Û/T£- ޵“¨ Rþ Ü©6ü¦.C�Œ3î.�üö.@ºŸ0ü»/%… 0å/�lí/•£/ÿ/�ü‡0C›�3|Ï0 everywhere.Áã0�<ë0ä¤/ü÷0=ÔÂ/̹1ô¤/ü×1A> hybrid::regex::Regex, nfa::thompson, util::syntax, Match,Á4�2Ý¥/¨2�ì°2 let re = Regex::builder()ÁüÒ22è¢0ü‰36¥£0üÄ3&æ£0üï3&Ê›0š4�ü¢441 let haystack = b"\xFEfoo\xFFarzz\xE2\x98\xFF\n";ÁüÛ4.+ let expected = Some(Match::must(0, 1..9));ÁüŽ5,) let got = re.find(&mut cache, haystack);Áô¿5—‘3â5�üê5.Ǭ/<�6ä¤/<°6݃BÿŒŒÖû üš9#üé6(% Create a new cache for this `Regex`.Á–7�üž7@ˆ¬0üã7EB `Regex`. If you want to reuse the cache for another `Regex`, thenÁü­8GD you must call [`Cache::reset`] with that `Regex` (or, equivalently,Áäù8 [`Regex::reset_cache`]).Ád¡9›1 ›1á��ƒBÿŒ ®9Œ ‘$¯9ü¾E,üä9Iã®0ü²:)& this `Regex` (and only this `Regex`).Áà:�üè:Hð¯0ìµ; with a different `Regex`.Á×;�üß;Jï•3ü®�<š>ä¤/ü¦>=ÔÂ/üè>6û9£?�ü«?! let re1 = Regex::new(r"\w")?;ÁüÑ?! let re2 = Regex::new(r"\W")?;Á÷?�üÿ?'ð³0|«@¡´0ü¿@#»´0üç@# re1.find(&mut cache, "Δ"),Á4�A½µ0šA�ü¢AHÛµ0üïAI®¶0ü½B2/ // it with the Regex we'd like to use it with.Á4ôBÅ·0üÿBJÖ·0|ÎCª¸0üâC ĸ0|‡D¡´0ü›D#ý¸0üÃD$! re2.find(&mut cache, "☃"),Á4ìD½µ0÷D�üÿD.Ǭ/<²Eä¤/\ÅEœ1�1 œ1á� �1�ƒBÿŒ ÑEŒ ’$ÒEóA,ØET¶GüæFOL Standard infallible search routines for finding and iterating over matches.Áá�”—šüäUrüÇGFC Returns true if and only if this regex matches the given haystack.Á’H�üšHIF This routine may short circuit if it knows that scanning future inputÁüèHKH will never lead to a different result. In particular, if the underlyingÁü¸IKH DFA enters a match state or a dead state, then this routine will returnÁüˆJIF `true` or `false`, respectively, without inspecting any future input.ÁÖJ�dÞJúë0ïJ�ü÷JHžì0üÄK!“¾3êK�üòKK̾3üÂLE¢¿3üŒMJò¿3üÛM6ÇÀ3ü–NGˆÁ3üâNCÚÁ3üªOE¨Â3üôO,øÂ3ü¥PC¬í0üíP5¾Ã3§Q�ü¯QGÒï0DûQ£ð0ˆR�ü�RKH Use [`Regex::try_search`] if you want to handle these error conditions.ÁàR�lèR•£/úR�<‚Sä¤/üŽS-* use regex_automata::hybrid::regex::Regex;ÁÀS�üÈS)�¼9üöS&Ê›0¡T�ü©T4áò0üâT0 ó0ü—U.Ǭ/<ÊUä¤/DëUž1Ÿ1 ž1á� Ÿ1�ƒÓ¤Bÿ“¸•…––• •V“Àþ0 øUÒþ0|ûU ”¸Ó¤$–VóA¡–`«ôU8:ü�hwüàXGD Returns the start and end offset of the leftmost match. If no matchÁü¬Y$! exists, then `None` is returned.ÁÕY�dÝYúë0îY�üöYHžì0üÃZ!“¾3éZ�üñZK̾3üÁ[E¢¿3ü‹\Jò¿3üÚ\6ÇÀ3ü•]GˆÁ3üá]CÚÁ3ü©^E¨Â3üó^,øÂ3ü¤_C¬í0üì_5¾Ã3¦`�ü®`GÒï0Dú`£ð0‡a�ü�aKŽÜ9ßa�lça•£/ùa�<�bä¤/ü�b63 use regex_automata::{Match, hybrid::regex::Regex};ÁÈb�üÐb&# let re = Regex::new("foo[0-9]+")?;Áüûb&Ê›0|¦c¡´0üºc$! Some(Match::must(0, 3..11)),Áüãc.+ re.find(&mut cache, "zzzfoo12345zzz"),Á4–d½µ0¡d�ü©dG‚Œ1üõdIF // the default leftmost-first match semantics demand that we find theÁüÃeKH // earliest match that prefers earlier parts of the pattern over latterÁl“f // parts.Áü¥f" let re = Regex::new("abc|a")?;ÁüÌf&Ê›0ü÷fGD assert_eq!(Some(Match::must(0, 0..3)), re.find(&mut cache, "abc"));ÁüÃg.Ǭ/<ögä¤/$—h 1¡1  1á� ¡1�ƒÓ¤³¶Bÿ“¸˜…™™˜ ½h“Àþ0  hÒþ0|£h —¸Ó¤$¾hóAG–`Qœh8:ü­y”üÌiHE Returns an iterator over all non-overlapping leftmost matches in theÁü™jJG given bytes. If no match exists, then the iterator yields no elements.Áèj�dðjúë0�k�ü‰kHžì0üÖk!“¾3ük�ü„lK̾3üÔlE¢¿3üžmJò¿3üím6ÇÀ3ü¨nGˆÁ3üônCÚÁ3ü¼oE¨Â3ü†p,øÂ3ü·pC¬í0üÿp5¾Ã3¹q�üÁqGÒï0D�r£ð0šr�ü¢rIF The above conditions also apply to the iterator returned as well. ForÁüðrIF example, if the lazy DFA gives up or quits during a search using thisÁü¾s52 method, then a panic will occur during iteration.Áøs�ü€tKH Use [`Regex::try_search`] with [`util::iter::Searcher`](iter::Searcher)ÁüÐt1. if you want to handle these error conditions.Á†u�lŽu•£/ u�<¨uä¤/ü´u6û9ïu�ü÷u&‘ä9ü¢v&Ê›0Ív�üÕv# let text = "foo1 foo12 foo123";ÁüývGD let matches: Vec = re.find_iter(&mut cache, text).collect();ÁìÉw assert_eq!(matches, vec![Áìëw Match::must(0, 0..4),Áô�x Match::must(0, 5..10),Áü°x Match::must(0, 11..17),Á<Ôx ]);Áüàx.Ǭ/<“yä¤/L´y›œ ›á� œ�ƒÓ¤°°¾¾´é¾üµóAü¶ÛËü‹½õìÆoŠ›œ¸Bÿ“¸�…žž�¾y“Àþ0 ÊyÒþ0|Íy š¸Ó¤$ëyóA–`?AÂyÆyBDT´|ü­{JG Lower level "search" primitives that accept a `&Input` for cheap reuseÁüø{;8 and return an error if one occurs instead of panicking.Áá� ¡üŸˆ‚üÅ|Gúß9ü‘}$Ëà9º}�üÂ}:7 This is like [`Regex::find`] but with two differences:Á�~�ü‰~A> 1. It is not generic over `Into` and instead accepts aÁüÏ~IF `&Input`. This permits reusing the same `Input` for multiple searchesÁü�FC without needing to create a new one. This _may_ help with latency.ÁüèDA 2. It returns an error if the search could not complete where asÁü±€ [`Regex::find`] will panic.ÁÕ€�dÝ€•£1î€�üö€H¹£1üÃ�!“¾3é��üñ�K̾3üÁ‚E¢¿3ü‹ƒJò¿3üÚƒ6ÇÀ3ü•„GˆÁ3üá„CÚÁ3ü©…E¨Â3üó…,øÂ3ü¤†C¬í0üì†5¾Ã3¦‡�ü®‡Gñ¤1”ú‡Â¥1T¦ˆ¢1£1¤1¥1 ¢1á� £1�ƒ ¤1Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²¥1×… BÿŸ ºˆŸ¸„ $»ˆóAØ–`ãüÑ¡0\Ô¡ü¦1§1¨1 ¦1á� §1Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²¨1BÿŸ ࡟«’ $á¡–`,ç¡TÀ¤üæ£JG Non-search APIs for querying information about the regex and setting aÁt±¤ prefilter.Áá�£¤¥윦üѤDA Return the underlying lazy DFA responsible for forward matching.Áš¥�ü¢¥EB This is useful for accessing the underlying lazy DFA and using itÁüì¥+( directly if the situation calls for it.Á<£¦©1 ©1á� ©1ïòBÿ¢ «¦¢àþ $¬¦쨨üݦDA Return the underlying lazy DFA responsible for reverse matching.Á¦§�ü®§Eñ‚:üø§+Áƒ:<¯¨ª1 ª1á� ª1ïòBÿ¢ ·¨¢”˜ $¸¨üƒ¬"üé¨?< Returns the total number of patterns matched by this regex.Á­©�lµ©•£/Ç©�<Ï©ä¤/üÛ©=ÔÂ/ü�ª-•Ý9Ϫ�üת?< let re = Regex::new_many(&[r"[a-z]+", r"[0-9]+", r"\w+"])?;Áü›«$! assert_eq!(3, re.pattern_len());ÁüÄ«.Ǭ/<÷«ä¤/\Ь«1 «1á�Bÿ¢ –¬¢ ¥$—¬ü²5æG§Ì3¨¸©§©¨£‚ª«ÅQÆQ«Dz˲ϲLþ²$ƒ³¦¦‹¢ü¤³#$§³¯1 ¯1£‚³¶Bÿ¦ ¬³¦ «æGÌ3¸$±³< ´«�¬�¬�¬¬«µµ T¤¼�ƒ®¯°±²³´µ¶ü½¾üµ¼-* Create a new cache for the given `Regex`.Áç¼�üï¼EB The cache returned should only be used for searches for the givenÁü¹½IF `Regex`. If you want to reuse the cache for another `Regex`, then youÁü‡¾1. must call [`Cache::reset`] with that `Regex`.Áľ´1 ´1á��ƒBÿ­ ̾­ ®é¾ȾüÃË#ü÷¿J˜î5üÆÀ$! `Regex` (and only that `Regex`).ÁïÀ�ü÷ÀHð¯0ìÄÁ¡Î9æÁ�üîÁJï•3ü½ÂKâÎ9ô�öÏ9°Ã�l¸Ã•£/ÊÃ�üÒÃJƒÐ9¡Ä�<©Ää¤/üµÄ=ÔÂ/ü÷Ä6û9²Å�üºÅ!˜Ñ9üàÅ!ÃÑ9†Æ�üŽÆ'ð³0|ºÆ¡´0üÎÆ#»´0üöÆ#£Ò94žÇ½µ0©Ç�ü±ÇHÛµ0üþÇI®¶0üÌÈ2…Ó94ƒÉÅ·0üŽÉJÖ·0|Ýɪ¸0´ñÉ cache.reset(&re2);Á|ŒÊ¡´0ü Ê#ý¸0üÈÊ$’Ô94ñʽµ0üÊ�ü„Ë.Ǭ/<·Ëä¤/,Ê˵1¶1 µ1�ƒ ¶1á�Bÿ­ ÐË­ ¯$ÕËé¾ÛËüùÌ(üÈÌ,) Return a reference to the forward cache.Á<€Í·1 ·1�ƒ ·1ûóBÿ­ ˆÍ­ °$�ÍüöÍ(üÅÍ,) Return a reference to the reverse cache.Á<ý͸1 ¸1�ƒ ¸1ûóBÿ­ …έ ±$ŠÎüüÏ0üÂÎ41 Return a mutable reference to the forward cache.ÁûÎ�üƒÏJG If you need mutable references to both the forward and reverse caches,ÁüÒÏ%" then use [`Cache::as_parts_mut`].Á\ƒÐ¹1 ¹1�ƒ ¹1ûóBÿ­ �Э ²$”ÐüŽÒ0üÔÐ41 Return a mutable reference to the reverse cache.Á�Ñ�ü•ÑJ£˜:üäÑ%ø˜:\•Òº1 º1�ƒ º1ûóBÿ­ ¡Ò­ ³$¦Òü±Ó4üæÒFC Return references to the forward and reverse caches, respectively.ÁD¸Ó»1 »1�ƒ »1ûóÍ�:Bÿ­ ÁÓ­ ´$ÂÓüõÔDüšÔ@= Return mutable references to the forward and reverse caches,ÁŒßÔ respectively.ÁdüÔ¼1 ¼1�ƒ ¼1ûó›Ÿ:Bÿ­ ‰Õ­âÅ$ŽÕüñ×#üöÕHE Returns the heap memory usage, in bytes, as a sum of the forward andÁäÃÖ reverse lazy DFA caches.ÁäÖ�üìÖF³ü1ü·×5„ý1dø×½1 ½1�ƒBÿ­ …Ø­ ¶$†Ød¡ì݃¸¹º¼½¾¿¼÷ìü´ì>; Create a new regex builder with the default configuration.Áþì݃Bÿ·· ¸üýî?üÄí)& Build a regex from the given pattern.Áòí�üúíJ„Ö/„Éî×Ö/Óí”äîÔÞî,„ïÂ1Ã1 Â1݃ Ã1ñü Bÿ· Šï· ¹$‹ïîN<‘ïü¼ðküîï*' Build a regex from the given patterns.ÁÓ픣ðÔ�ðTÃðÄ1Å1 Ä1݃ Å1©òñü Bÿ·Œ»» æð·ŸÛ/ Îð°Û/TÑð„ü $çð¨ J'"$üâ‚BüŽõIF Build a regex from its component forward and reverse hybrid NFA/DFAs.ÁÜõ�üäõC@ This is useful when you've built a forward and reverse lazy DFAÁü¬öIF separately, and want to combine them into a single regex. Once build,ÁüúöJG the individual DFAs given can still be accessed via [`Regex::forward`]ÁÜÉ÷ and [`Regex::reverse`].Áé÷�üñ÷C@ It is important that the reverse lazy DFA be compiled under theÁ̹ø following conditions:Á×ø�üßø1. * It should use [`MatchKind::All`] semantics.Áü•ù! * It should match in reverse.Áü»ù@= * Otherwise, its configuration should match the forward DFA.Á€ú�üˆúJG If these conditions aren't satisfied, then the behavior of searches isÁ„×ú unspecified.Áìú�üôúGD Note that when using this constructor, no configuration is applied.ÁüÀûDA Since this routine provides the DFAs to the builder, there is noÁü‰ü52 opportunity to apply other configuration options.ÁÃü�lËü•£/Ýü�üåüIF This shows how to build individual lazy forward and reverse DFAs, andÁü³ý,) then combine them into a single `Regex`.Áäý�<ìýä¤/Ìøýô¤/ü–þ)& hybrid::{dfa::DFA, regex::Regex},Á´Äþñ¡0”ßþ MatchKind,Á4öþÝ¥/�ÿ�ü‰ÿ&# let fwd = DFA::new(r"foo[0-9]+")?;Áä´ÿ let rev = DFA::builder()ÁüÕÿ<Ýš0ü–€8ïè3ôÓ€ .build(r"foo[0-9]+")?;Áö€�üþ€85 let re = Regex::builder().build_from_dfas(fwd, rev);Áü»�&Ê›0üæ�85 assert_eq!(true, re.is_match(&mut cache, "foo123"));Áü£‚.Ǭ/<Ö‚ä¤/|邯1 Æ1݃ïòïòá�Bÿ· ù‚·ªÌ $ú‚­H<€ƒ¼H<ŽƒüÓ…düÕƒ7÷â/ü‘„4¹ã/Ê„�üÒ„J…ä/t¡…Ùä/Ó픺…Ô´…4Ú…Ç1 Ç1݃Ý’ж:Bÿ· ê…· ½$ï…É4ý…ü‰‰Düó†=åæ/üµ‡0- [`nfa::thompson::Config`](thompson::Config).Áê‡�üò‡F�è/ü½ˆ(Òè/Óí”ðˆÔêˆD�‰È1 È1݃±ªù·:Bÿ· ™‰· ¾$ž‰É4¤‰ü”Œ:ü‹ŠEB Set the lazy DFA compilation configuration for this builder usingÁ¤ÕŠ [`dfa::Config`].ÁîŠ�üöŠKH This permits setting things like whether Unicode word boundaries shouldÁüÆ‹IF be heuristically supported or settings how the behavior of the cache.Á›ŒÉ1 É1݃¯øƒ»:Bÿ· ŸŒ· ¿$¤ŒÉ4ªŒÄ‹�݃Á÷Á¼ª�<­�݃BÿÀÀ ÁTŒ/44�/4ôÑÒÖ×ÛÜÞàáâåèéâ«,)5‚ÂÆ� „05ÒÂÇù©B5öÂÈ�¼\T5‰ÂÉé›L‡5ü(ÂËáºL£5é,ÂÍ—,®5Ñ,ÂÎÛÀTµ5Ì-ÂÏú¹$Á5Ú,ÂÐ,5œ5ü"5ÆÈ¶¸¥§|P5—ül5¤|5‹üœ5|~kmY[GIüä5Dò5Ê1Ë1Ì1Í1 Ê1ïò Ë1ûó Ì1Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Í1‡áBÿ …5ÆàÒ€5óA,�5–`,¦5ü· ¬5dº 5ÂÎ1Ï1Ð1Ñ1Ò1 Î1ïò Ï1ûó Ð1Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Ñ1řǙș­É™Ê™àË™óG*¤�R{9  Ò1äü‡áBÿ Ñ 5 ÒÒÌ 5óA,Û 5–`,ò 5Ѷ‰ 5÷œD© 5Ü�5t�5 ¬5 à5 ¶5 Ê5 , ·58 Ø¸5& »58²$¼5$ À5, Â58™´Ã5& Å58²$Æ5*Ì5 Ï5 Ù5 Ð5 Ø58Þ58—»$â5 ç5 é58–`,ê5 ï58ý�Dð5 ø5 ù5 ú58 get_uncheckedÁlû5 ˆ5 Œ5, ‰58™´Š5% �58Ò›5 ž58È0ìŸ5 ¼5 Î58óA,½5$ Â5, Ä58 ØÅ5$ È58—»$Ê5% Ú5Î5Ò�Ô�Ô�ÔÔÒÔÕþÛ†UÿóІU5Ò�Õ�Õ�ÕÕÒÕÓÆ:áÆ:ü‘o5DŸo5Ó1Ô1Õ1Ö1 Ó1ïò Ô1ûó Õ1Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Ö1‡áBÿ ²o5·÷Ò­o5óA,¼o5–`,Óo5ü‘rŒ5d”r5Â×1Ø1Ù1Ú1 ×1ïò Ø1ûó Ù1Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Ú1‡áBÿ «r5 ×Ò¦r5óA,µr5–`,Ìr5÷œDãr5ÜÙx5tæx5 õx5 ©z5 ÿx5 “y5 , €y58 Ø�y5& „y58²$…y5$ ‰y5, ‹y58™´Œy5& Žy58²$�y5*•y5 ˜y5 ¢z5 ™y5 ¡z58§y58—»$«y5 °y5 ²y58–`,³y5 ¸y58ý�D¹y5 Áy5 Ây5 Ãy58ÚÃ:lÄy5 Ñy5 Õy5, Òy58™´Óy5% Öy58Òäy5 çy58È0ìèy5 …z5 —z58óA,†z5$ ‹z5, �z58 ØŽz5$ ‘z58—»$“z5% £z5�|5×�Ù�Ù�ÙÙ×ÙÓÆ:áÆ:½‘5×�Ú�Ú�ÚÚ×ÚÓÆ:áÆ:ü±›ž5¤¿›5Û1Ü1Ý1Þ1ß1 Û1ïò Ü1ûó Ý1Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Þ1 ß1Âú²×Bÿ Þ›5ç‰ ÒÙ›5óA,è›5–`,ÿ›5ƒ,–œ5ü� ·5Ä„ 5Âà1á1â1ã1ä1å1 à1ïò á1ûó â1Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²ã1řǙș­É™Ê™àË™óG*¤�R{9  ä1äü å1Âú²×Bÿ § 5 ÜÒ¢ 5óA,± 5–`,È 5Ѷß 5ƒ,ÿ 5“­5Ü�Ý�Ý�ÝÝÜÝÓÆ:áÆ:ü꾞5¤ø¾5æ1ç1è1é1ê1 æ1ïò ç1ûó è1Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²é1 ê1Âú²×Bÿ —¿5™– Ò’¿5óA,¡¿5–`,¸¿5ƒ,Ï¿5çÎ5Þ�ß�ß�ßßÞßÓÆ:áÆ:üâÛn5DåÛ5Âë1ì1í1î1 ë1ïò ì1ûó í1Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²î1«Û Bÿ øÛ5 àÒóÛ5óA,‚Ü5–`,™Ü5üÐÞn5DÓÞ5Âï1ð1ñ1ò1 ï1ïò ð1ûó ñ1Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²ò1«Û Bÿ æÞ5 áÒáÞ5óA,ðÞ5–`,‡ß5ü¾á 5<Áá5Âó1ô1õ1ö1÷1ø1 ó1ïò ô1ûó õ1Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²ö1 ÷1°ÿ ø1Öá²×Bÿ Óá5 âÒÎá5óA,Ýá5–`,ôá5 Ø‹â5†¸¦â5‰ä5â�ã�ã�ããâãÓÆ:áÆ:¥ç5â�ä�ä�ääâäÓÆ:¤Ú ü‹ë 5<Žë5Âù1ú1û1ü1ý1þ1 ù1ïò ú1ûó û1Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²ü1 ý1°ÿ þ1Öá²×Bÿ  ë5 åÒ›ë5óA,ªë5–`,Áë5 ØØë5†¸óë5éí5å�æ�æ�ææåæÓÆ:áÆ:Ñð5å�ç�ç�ççåçÓÆ:áÆ:üêþ†5Œíþ5Âÿ1€2�2‚2 ÿ1ïò €2ûó �2Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²‚2«Û Bÿ ‰ÿ5 èÒ„ÿ5óA,“ÿ5–`,ªÿ5™´Áÿ5üÌ�'5<Ï�5ÂÛ†Bÿ éÑ 4×�5d½ï2ü¤6Ÿ Provides a regex matcher that composes several other regex matchers automatically. This module is home to a meta [`Regex`], which provides a convenient high level API for executing regular expressions in linear time. # Comparison with the `regex` crate A meta `Regex` is the implementation used directly by the `regex` crate. Indeed, the `regex` crate API is essentially just a light wrapper over a meta `Regex`. This means that if you need the full flexibility offered by this API, then you should be able to switch to using this API directly without any changes in match semantics or syntax. However, there are some API level differences: * The `regex` crate API returns match objects that include references to the haystack itself, which in turn makes it easy to access the matching strings without having to slice the haystack yourself. In contrast, a meta `Regex` returns match objects that only have offsets in them. * At time of writing, a meta `Regex` doesn't have some of the convenience routines that the `regex` crate has, such as replacements. Note though that [`Captures::interpolate_string`](crate::util::captures::Captures::interpolate_string) will handle the replacement string interpolation for you. * A meta `Regex` supports the [`Input`](crate::Input) abstraction, which provides a way to configure a search in more ways than is supported by the `regex` crate. For example, [`Input::anchored`](crate::Input::anchored) can be used to run an anchored search, regardless of whether the pattern is itself anchored with a `^`. * A meta `Regex` supports multi-pattern searching everywhere. Indeed, every [`Match`](crate::Match) returned by the search APIs include a [`PatternID`](crate::PatternID) indicating which pattern matched. In the single pattern case, all matches correspond to [`PatternID::ZERO`](crate::PatternID::ZERO). In contrast, the `regex` crate has distinct `Regex` and a `RegexSet` APIs. The former only supports a single pattern, while the latter supports multiple patterns but cannot report the offsets of a match. * A meta `Regex` provides the explicit capability of bypassing its internal memory pool for automatically acquiring mutable scratch space required by its internal regex engines. Namely, a [`Cache`] can be explicitly provided to lower level routines such as [`Regex::search_with`]. ÁÓª „ªï2Ĥï2$Åï2öŸ­¹ÛÓê÷‚£ �®TÁ6É쓨<â6Ïîâ«,ë6¬ïëÄ|ò6�ðç4ƒ6·ñ¾¾\‹6…ò”¾,˜6ìóÒÅ,Ÿ6šô�Æ4®6£õ$®6Œº6¯ü®(6£¥”–…‡vxgiXZIK: Ì-öü¦¡LJ Ù)öýd hjY[,# LNÄ0 >+-|à ©„ÿ€�‚ƒ„ü”* üÙ J G If it is known which pattern ID caused this build error to occur, thenÁܨ  this method returns it.ÁÈ �üÐ J G Some errors are not associated with a particular pattern. However, anyÁüŸ G D errors that occur as part of parsing a pattern are guaranteed to beÁüë !  associated with a pattern ID.Á‘ �l™ •£/« �<³ ä¤/ü¿1 . use regex_automata::{meta::Regex, PatternID};Áõ �üýI F let err = Regex::new_many(&["a", "b", r"\p{Foo}", "c"]).unwrap_err();ÁüË8 5 assert_eq!(Some(PatternID::must(2)), err.pattern());Á<ˆ ä¤/<› ‹2 ‹2©„€ªBÿþ £ þ ÿ$¤ üâ) üÄI F If this error occurred because the regex exceeded the configured sizeÁü’J G limit before being built, then this returns the configured size limit.Áá �üéE B The limit returned is what was configured, and corresponds to theÁü³* ' maximum amount of heap usage in bytes.ÁTé Œ2 Œ2©„ØÚBÿþ ô þ €$õ ü‚: ü’J G If this error corresponds to a syntax error, then a reference to it isÁäá  returned by this method.Ád‰ �2 �2©„řǙș­É™Ê™àË™óG*¤�R{9  �2ØÙ Bÿþ – þ �$— üÆ@ Ô ›†øŽ©„BÿþþÅ´¾¾Ø ¬ºè ü‡@ • ›†Ù›©„Bÿþþ©¶¾¾™ ¬º© üÈ? Ö ×°©„Bÿþþ „¬ºÚ üá% Ó‰|Ï ¼É ©„†‚†ü�> 4� Ž2 Ž2©„řǙș­É™Ê™àË™óG*¤�R{9  Ž2ç¡2Bÿ… — … †$˜ üó& ©„ˆ¥gˆü D £ �2�2‘2 �2©„ �2€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡‘2­àBÿ‡ § ‡ ˆ$¨ œ ® üÅ(% Ó‰|³( ¼­( ì…üï(& ì…‹¥g‹üœ)D Ÿ) •2–2—2 •2ì… –2€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡—2­àBÿŠ £) Š ‹$¤) œ ª) üû*$ ì…�®�ü¦+' $©+ Û†ì…BÿŒŒ �merrÁ$®+ Äß. •‡�üþ.* Œ/ •‡BÿŽŽš üì/. Ó‰|Ú/ ¼Ô/ •‡üŸ0/ •‡’¥g’üÕ0D Ø0 ›2œ2�2 ›2•‡ œ2€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡�2­àBÿ‘ Ü0 ‘ ’$Ý0 œ ã0 üë1- ì…”®”üŸ2/ $¢2 •‡ì…Bÿ““ ”¬º§2 œ…9 ô‡–üŸ9: \­9 ô‡Bÿ•• –Ñ 4¹9 üŸ:) Ó‰|�: ¼‡: ô‡üÍ:* ô‡™¥g™üþ:D �; ¡2¢2£2 ¡2ô‡ ¢2€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡£2­àBÿ˜ …; ˜ ™$†; œ Œ; ü“<( ì…›®›üÂ<* $Å< ô‡ì…Bÿšš ›¬ºÊ< ü–=( ô‡�®�üÅ=+ $È= Û†ô‡Bÿœœ �ž�;$Í= üÿ=# \ƒ6Ó� ¬Ö6Óª+”í6üÕ+6üÌ66<‡6ꧪ‹ÁTÙÚŸ¢áÁœå㟣áºLÿé,Ÿ¤—,ŠÑ,Ÿ¥ÛÀT‘Ì-Ÿ¦,¾ľz|hjVXBD-/ü·,ÏÓª+”¢,Ôœ,ÔÅ,¤2¥2¦2§2 ¤2ïò ¥2ûó ¦2Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²§2¾µBÿ ê,öØÒå,óA,ˆ-–`,³-¡¿LÊ-í0§�¨�¨�¨¨§¨ÓÆ:áÆ:Û:§�©�©�©©§©›ðUÿ¤Ú üçFÞÓª+”�FÔ—FtêFŸ¨2©2ª2«2¬2­2 ¨2ïò ©2ûó ª2Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²«2 ¬2°ÿ ­2Öá²×Bÿ ƒG ªÒþFóA,¡G–`,ÌG ØãG†¸�HƒJª�«�«�««ª«ÓÆ:áÆ:…Mª�¬�¬�¬¬ª¬ÓÆ:áÆ:\�6<”6êµ– 7Ð=­¯–­¯ü7…C­° †47¶­±ŸÃLS7ö­³Ó¿Ll7º-­´,7z|D7Z´!7J,>7´F7=¼^7-üˆf7¤–7®2¯2°2 ®2ñ‰ ¯2 °2–‡Å™Ç™È™­É™Ê™àË™óG*¤�R{9 …C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅ̹�þBÿ ¶7 µ†Ã$°7¡¯$Æ7Œù7<�7<–7T�64¡6ê¿ÁÄÇÉÊËÍÎÏÑÕ×Ù•ƒ<¸8Ÿ¹»ClassÁ,Á8ë¹¼ †È8¶¹½HirKindÁ<Í8À¹¾Œ›8„¯8fNP<>$&üÔD8¼â8ê±2²2 ±2–‡ ²2ÈšBÿ ÿ8 ¿¤Oú8litÁ…8<À8¿�À�À�ÀÀ¿ÀÏ—¢ºü€ 58¤Ž 8ê³2 ³2–‡Bÿ ¨ 8 Á¤O£ 8,� 8Á�Â�Â�ÂÂÁÂŠÚ ߨUÿùÚ ,« 8Á�Ã�Ã�ÃÃÁÃŠÚ UÿáÆ:üäa8äò8ê´2µ2 ´2–‡ µ2¸Ç&Bÿ œ8 ĹR4”8÷ÉD¦8,ÿ8Ä�Å�Å�ÅÅÄÅõ¤;Uÿ,ø8Ä�Æ�Æ�ÆÆÄÆϨ;üÄo8üÇ8¹¶2·2 ¶2̯ ·2¸Ç&Bÿ ò8 Ç¡¯$ì8 separatorÁLþ8÷ÉD”8T� 8Ç�È�È�ÈÈÇÈ¢ºUÿóŠ ëìíUnicodeÁîóïðBytesÁñó:‹É=ËÀüë ,8´î 8¹¸2 ¸2–‡Bÿ Š!8 ɤO…!8üË!.8tÎ!8¹¹2 ¹2–‡Å™Ç™È™­É™Ê™àË™óG*¤�R{9  ¹2 «;Bÿ â!8 ʤOÝ!8üÀ$C8ÔÃ$8¹º2»2 º2–‡ »2 «;Bÿ ã$8 ˤOÞ$8�©;Lé$8,¹)8Ë�Ì�Ì�ÌÌËÌϨ;ž«;üþ)#8L�*8¹¼2 ¼2–‡Ô¯;Bÿ ”*8 ͤO�*8üˆ+<8¤‹+8¹½2¾2 ½2 «; ¾2 «;Bÿ ¦+8 ÎleftÁ$ +8rightÁ,®+8üŽ2M8ü‘28¹¿2À2 ¿2 «; À2¸Ç&Bÿ ¶28 ÏclsÁ±28÷ÉD¾28,ˆ38Ï�Ð�Ð�ÐÐÏÐ êÕUÿ¨¯;üÆ3B8ôÉ38¹Á2Â2 Á2 «; Â2ÈšBÿ í38 Ñϰ;è38”£;õ38<Õ48Ñ�Ò�Ò�ÒÒÑÒÏ— �� ClassBytesÁžã�ãMæ¦"X15,Ü58Ñ�Ó�Ó�ÓÓÑÓ£ Uÿ ùùóƒúã�ã/œ†åß›EY$„68Ñ�Ô�Ô�ÔÔÑÔUÿ¦µ;üÄ648¤Ç68¹Ã2 Ã2–‡Bÿ á68 Õ¤OÜ68—»$ç68,´>8Õ�Ö�Ö�ÖÖÕÖϨ;íØüî>M8œñ>8¹Ä2 Ä2�´;Bÿ Š?8 ×ϰ;…?8—»$ª?8<ì?8×�Ø�Ø�ØØ×Ø ¯¯ClassBytesRangeÁ°‚ã±’ãû5Ä’hûUÿíØü¥@]8´¨@8¹Å2 Å2ªµ;Bÿ É@8 Ùϰ;Ä@8¹õ#ï@8<¡A8Ù�Ú�Ú�ÚÚÙÚ ‹‹ClassUnicodeRangeÁŒ‚ã�’ãÊk.hôÓ-QUÿ L©6,­6ꉊŒìñö÷ý…�𣬷ÏY4ÍÛÝ RefUnwindSafeÁl,–šÛß UnwindSafeÁT;•šÛàÀì _ŸÛâKj„KÛã–oÐ=Ûä–Ûäüy…CÛå™O˜ Ûç¤O$§ãÛé †­¶Ûê�®TßÉÛíÝn$þ‚ÛïÝpD„³ÛðÒyD—£ Ûñ±$¼± ÛóŒÞlÂ÷!Ûô”œãDñ±&Û÷´…LûÁ&Ûø�$�«ÛùŒ–\£­(ÛúÖÞ$¿­Ûü­àLÅÄÛýé›Läü(Ûþñ�\„ž)Û€¦¡L‘Ù)Û�áºL®é,Ûƒ—,¹Ñ,Û„ÕÛ,Àú,Û…Ó¿LǺ-Û†̼TÒ‹-Û‡ú¹$ÞÚ,Ûˆ$tÆü%¬¯“–,PTX‰Ld|knDtMd„@Cü„ 7¡(+,»Œ»ŒØ$ü»@Dó  úýü»~ðD±áäü»Ÿü»³ÙÜÉ̺½Œ�®ü»�¡¤‘”¤Ù…ü»Æx{hkü»ð^aOR?B/2"téLîÛ­­®ÖÞ±ó¬ 4EøôµËŽŸŸ Àì £ó‹¤ô‹ljô²ßk#…#�#ËŽ–š•šýÆÿ �þ¼ÎtÓÛÄ‹‹ÄÄÅ­àÉó¬ Œ¿‚ÄÆk"`ÄËŽ½Ä;℞\£Û½Ä;Tõ_ü©_KH Convenience constructors for a `Regex` using the default configuration.ÁÞˆŽ�‘’üŸe6ü†`C@ Builds a `Regex` from a single pattern string using the defaultÁ”Î`”¼5å`�üí`KH If there was a problem parsing the pattern or a problem turning it intoÁü½a/, a regex matcher, then an error is returned.Áña�üùaKH If you want to change the configuration of a `Regex`, use a [`Builder`]Á´Éb with a [`Config`].Áäb�lìb•£/þb�<†cä¤/ü’c-* use regex_automata::{meta::Regex, Match};ÁÄc�üÌc(% let re = Regex::new(r"(?Rm)^foo$")?;Áäùc let hay = "\r\nfoo\r\n";Áüšd96 assert_eq!(Some(Match::must(0, 2..5)), re.find(hay));ÁØd�üàd.Ǭ/<“eä¤/¦eÌ2 Ì2Œö Bÿ� ³e� ŽîN<ªeü¢�Zü‹f@= Builds a `Regex` from many pattern strings using the defaultÁ”Ðf”¼5çf�üïfKH If there was a problem parsing any of the patterns or a problem turningÁü¿g96 them into a regex matcher, then an error is returned.Áýg�ü…hK¯È;´ÕhƒÉ;ðh�Üøh # Example: simple lexerÁ˜i�ü iJG This simplistic example leverages the multi-pattern support to build aÁüïiJG simple little lexer. The pattern ID in the match tells you which regexÁü¾jIF matched, which in turn might be used to map back to the "type" of theÁüŒk  token returned by the lexer.Á±k�<¹kä¤/üÅk-ÕÉ;÷k�üÿk let re = Regex::new_many(&[Á¼£l r"[[:space:]]",Áü¿l$! r"[A-Za-z0-9][A-Za-z0-9_]+",Átèl r"->",Álûl r".",ÁD�m•Ð1üšmJG let haystack = "fn is_boss(bruce: i32, springsteen: String) -> bool;";Áüém?< let matches: Vec = re.find_iter(haystack).collect();Áì­n·ò9üÏn'$ Match::must(1, 0..2), // 'fn'Áüûn&# Match::must(0, 2..3), // ' 'Áü¦o,) Match::must(1, 3..10), // 'is_boss'Áü×o&# Match::must(3, 10..11), // '('Áü‚p*' Match::must(1, 11..16), // 'bruce'Áü±p&# Match::must(3, 16..17), // ':'ÁüÜp&# Match::must(0, 17..18), // ' 'Áü‡q(% Match::must(1, 18..21), // 'i32'Áü´q&# Match::must(3, 21..22), // ','Áüßq&# Match::must(0, 22..23), // ' 'ÁüŠr0- Match::must(1, 23..34), // 'springsteen'Áü¿r&# Match::must(3, 34..35), // ':'Áüêr&# Match::must(0, 35..36), // ' 'Áü•s+( Match::must(1, 36..42), // 'String'ÁüÅs&# Match::must(3, 42..43), // ')'Áüðs&# Match::must(0, 43..44), // ' 'Áü›t'$ Match::must(2, 44..46), // '->'ÁüÇt&# Match::must(0, 46..47), // ' 'Áüòt)& Match::must(1, 47..51), // 'bool'Áü u&# Match::must(3, 51..52), // ';'Á<ËuÓó9×u�üßu.Ǭ/<’vä¤/žv�ü¦v;8 One can write a lexer like the above using a regex likeÁüævEB `(?P[[:space:]])|(?P[A-Za-z0-9][A-Za-z0-9_]+)|...`,Áü°wGD but then you need to ask whether capture group matched to determineÁüüwFC which branch in the regex matched, and thus, which token the matchÁüÇxJG corresponds to. In contrast, the above example includes the pattern IDÁü–y?< in the match. There's no need to use capture groups at all.ÁÚy�üây74 # Example: finding the pattern that caused an errorÁžz�ü¦zC@ When a syntax error occurs, it is possible to ask which patternÁäîz caused the syntax error.Á�{�<—{ä¤/ü£{1ëý:Ù{�üá{I²þ:ü¯|8…ÿ:<ì|ä¤/ø|�ü€}%" # Example: zero patterns is validÁª}�ü²}EB Building a regex with zero patterns results in a regex that neverÁüü}GD matches anything. Because this routine is generic, passing an emptyÁüÈ~GD slice usually requires a turbo-fish (or something else to help typeÁ|” inference).Á¨�<°ä¤/ü¼;8 use regex_automata::{meta::Regex, util::syntax, Match};Áü�ü„€+( let re = Regex::new_many::<&str>(&[])?;Áü´€" assert_eq!(None, re.find(""));ÁÛ€�üã€.Ǭ/<–�ä¤/D©�Í2 Í2©òŒö Bÿ�Œ�� Ô��ŸÛ/ ²�°Û/Tµ� �µ“¨ î: "Ì©‰ü¸‚1. Return a default configuration for a `Regex`.Áî‚�üö‚K¬�3üƃ85 type when customizing the construction of a `Regex`.Áƒ„�ü‹„'$ # Example: lower the NFA size limitÁ·„�ü¿„JG In some cases, the default size limit might be too big. The size limitÁüŽ…KH can be lowered, which will prevent large regex patterns from compiling.ÁÞ…�<æ…ä¤/üò…=ÔÂ/ü´†$! use regex_automata::meta::Regex;Á݆�üå†! let result = Regex::builder()Áü‹‡FC .configure(Regex::config().nfa_size_limit(Some(20 * (1<<10))))ÁüÖ‡IF // Not even 20KB is enough to build a single large Unicode class!Á¼¤ˆ .build(r"\pL");ÁìÀˆ assert!(result.is_err());Áâˆ�üêˆ.Ǭ/<�‰ä¤/4°‰Å�Bÿ�� ‘ÜŸ�üæ‰C�Œ3®Š�ü¶Š@ºŸ0üûŠ%… 0¥‹�ü­‹)& # Example: change the line terminatorÁÛ‹�üã‹JG This example shows how to enable multi-line mode by default and changeÁü²Œ(% the line terminator to the NUL byte:Áߌ�<çŒä¤/üóŒ;Áå;³��ì»�àÇ9üÝ�74 .syntax(syntax::Config::new().multi_line(true))Áü™Ž<9 .configure(Regex::config().line_terminator(b'\x00'))ÁÔÚŽ .build(r"^foo$")?;ÁäùŽ let hay = "\x00foo\x00";Áüš�96 assert_eq!(Some(Match::must(0, 1..4)), re.find(hay));ÁØ��üà�.Ǭ/<“�ä¤/<¦�Ó‘Bÿ��êô T©‘üÝ�KH High level convenience routines for using a regex to search a haystack.ÁÞˆ”—š�¡¥©üô¦@üº‘FÖÖ9…’�ü�’I²×9üÛ’HE will never lead to a different result. (Consider how this might makeÁü¨“HE a difference given the regex `a+` on the haystack `aaaaaaaaaaaaaaa`.Áüõ“JG This routine _may_ stop after it sees the first `a`, but routines likeÁüÄ”HE `find` need to continue searching because `+` is greedy by default.)Á‘•�l™••£/«•�<³•ä¤/ü¿•$èë;è•�üð•)�¼9ž–�ü¦–(% assert!(re.is_match("foo12345bar"));ÁüÓ–$! assert!(!re.is_match("foobar"));Áü–�ü„—.Ǭ/<·—ä¤/×�üË—+…ô0û—�üƒ˜GD `is_match` is guaranteed to return `true` whenever `find` returns aÁüϘEB match. This includes searches that are executed entirely within aÁt™™íõ0¬™�<´™ä¤/üÀ™-* use regex_automata::{meta::Regex, Input};Áò™�üú™ let re = Regex::new("a*")?;Ážš�ü¦šFC // This doesn't match because the default configuration bans emptyÁüñš*' // matches from splitting a codepoint.Áü ›85 assert!(!re.is_match(Input::new("☃").span(1..2)));ÁüÝ›<9 assert_eq!(None, re.find(Input::new("☃").span(1..2)));Ážœ�ü¦œ.Ǭ/<Ùœä¤/åœ�üíœE¨ø0ü·�Iøø0ô…žËù0¨ž�<°žä¤/ü¼ž41 use regex_automata::{meta::Regex, Input, Match};Áõž�ìýžàÇ9üŸŸ52 .configure(Regex::config().utf8_empty(false))Á´ÙŸ²û0ôŸ�üüŸ74 assert!(re.is_match(Input::new("☃").span(1..2)));Á|¸ ¡´0üÌ # Some(Match::must(0, 1..1)),Áüô .+ re.find(Input::new("☃").span(1..2)),Á4§¡½µ0²¡�üº¡.Ǭ/<í¡ä¤/ù¡�ü�¢JG A similar idea applies when using line anchors with CRLF mode enabled,ÁüТ@= which prevents them from matching between a `\r` and a `\n`.Á•£�<�£ä¤/ü©£4Ý€<â£�üê£%" let re = Regex::new(r"(?Rm:$)")?;Áü”¤96 assert!(!re.is_match(Input::new("\r\n").span(1..1)));ÁüÒ¤:7 // A regular line anchor, which only considers \n as aÁü‘¥# // line terminator, will match.Áü¹¥$! let re = Regex::new(r"(?m:$)")?;Áüâ¥85 assert!(re.is_match(Input::new("\r\n").span(1..1)));ÁŸ¦�ü§¦.Ǭ/<Ú¦ä¤/Dû¦Î2 Î2ÞˆÓ¤Bÿ“¸•…––• œ§“Àþ0 ˆ§Òþ0|‹§ ”¸Ó¤$�§–`?„§46ü¼­EüªªIF Executes a leftmost search and returns the first match that is found,Á”øª if one exists.Á�«�l—«•£/©«�<±«ä¤/ü½«-ÕÉ;ï«�ü÷«&‘ä9ü¢¬@= assert_eq!(Some(Match::must(0, 0..8)), re.find("foo12345"));Áç¬�üï¬.Ǭ/<¢­ä¤/$íÏ2 Ï2ÞˆÓ¤³¶Bÿ“¸˜…™˜™ à­“Àþ0 Ì­Òþ0|Ï­ —¸Ó¤$á­–`AÈ­46üù´lü²®HE Executes a leftmost forward search and writes the spans of capturingÁüÿ®FC groups that participated in a match into the provided [`Captures`]ÁüʯKH value. If no match was found, then [`Captures::is_match`] is guaranteedÁ´š° to return `false`.Áµ°�l½°•£/ϰ�<×°ä¤/üã°,) use regex_automata::{meta::Regex, Span};Á”±�üœ±@= let re = Regex::new(r"^([0-9]{4})-([0-9]{2})-([0-9]{2})$")?;Áüá±(û›0޲�ü–²)& re.captures("2010-03-14", &mut caps);ÁìIJ assert!(caps.is_match());Áüæ²:7 assert_eq!(Some(Span::from(0..4)), caps.get_group(1));Áü¥³:7 assert_eq!(Some(Span::from(5..7)), caps.get_group(2));Áüä³;8 assert_eq!(Some(Span::from(8..10)), caps.get_group(3));Á¤´�ü¬´.Ǭ/<ß´ä¤/D€µÐ2Ñ2 Ð2ÞˆÓ¤ Ñ2˜ÛBÿ“¸›…œ›œ ªµ“Àþ0 �µÒþ0|�µ š¸Ó¤$«µ–`Bɾ&B‰µ=?ü³»nü¥¶DA Returns an iterator over all non-overlapping leftmost matches inÁüî¶GD the given haystack. If no match exists, then the iterator yields noÁlº· elements.ÁÌ·�lÔ·•£/æ·�<î·ä¤/üú·-ÕÉ;¬¸�ü´¸&‘ä9ü߸'$ let haystack = "foo1 foo12 foo123";Áü‹¹?éÓ;ìϹ·ò9ìñ¹Ýò9ô“ºƒó9ü¶º«ó9<ÚºÓó9üæº.Ǭ/<™»ä¤/Lº»ž žÞˆÓ¤……¾¾ˆé¾Û‰óAÛŠÛËÛxâ ÜAì³�ž¸Bÿ“¸Ÿ…  ŸÄ»“Àþ0 Ì»Òþ0|Ï» �¸Ó¤$í»–`gD;=È»8:ü�Çvü´½IF Returns an iterator over all non-overlapping `Captures` values. If noÁü‚¾74 match exists, then the iterator yields no elements.Á¾¾�üƾIF This yields the same matches as [`Regex::find_iter`], but it includesÁü”¿EB the spans of all capturing groups that participate in each match.ÁÞ¿�üæ¿JG **Tip:** See [`util::iter::Searcher`](crate::util::iter::Searcher) forÁüµÀJG how to correctly iterate over all matches in a haystack while avoidingÁü„ÁJG the creation of a new `Captures` value for every match. (Which you areÁüÓÁ%" forced to do with an `Iterator`.)ÁýÁ�l…•£/—Â�<ŸÂä¤/ü«Â,à�<ÜÂ�üäÂ30 let re = Regex::new("foo(?P[0-9]+)")?;ÁœÃ�ü¤Ã'Ř<üÐà let matches: Vec = reÁüôà  .captures_iter(haystack)Áü™ÄKH // The unwrap is OK since 'numbers' matches if the pattern matches.ÁüéÄ?< .map(|caps| caps.get_group_by_name("numbers").unwrap())Áœ­Å .collect();ÁìÅÅ·ò9ÌçÅ Span::from(3..4),ÁÔ…Æ Span::from(8..10),ÁܤÆ Span::from(14..17),Á<ÄÆÓó9üÐÆ.Ǭ/<ƒÇä¤/l¤Ç¢ ¢ÞˆÓ¤��ëÄ’é¾Û“óAÛ”ɾÛ•ÛËÛõù’?ÔÙ3§¢¸Bÿ“¸£…¤¤£²Ç“Àþ0 ºÇÒþ0|½Ç ¡¸Ó¤$ÛÇ–`aG;=¶Ç8:üˆõdüÛÉFC Returns an iterator of spans of the haystack given, delimited by aÁü¦ÊKH match of the regex. Namely, each element of the iterator corresponds toÁüöÊJG a part of the haystack that *isn't* matched by the regular expression.ÁÅË�lÍË•£/ßË�üçËGD To split a string delimited by arbitrary amounts of spaces or tabs:Á³Ì�<»Ìä¤/üÇÌ$èë;ðÌ�üøÌ$! let re = Regex::new(r"[ \t]+")?;Áü¡Í" let hay = "a b \t c\td e";ÁüÈÍKH let fields: Vec<&str> = re.split(hay).map(|span| &hay[span]).collect();Áü˜Î63 assert_eq!(fields, vec!["a", "b", "c", "d", "e"]);ÁÓÎ�üÛÎ.Ǭ/<ŽÏä¤/šÏ�Ì¢Ï # Example: more casesÁÀÏ�„ÈÏ Basic usage:ÁÝÏ�<åÏä¤/üñÏ$èë;šÐ�ü¢Ð let re = Regex::new(r" ")?;ÁüÆÐ'$ let hay = "Mary had a little lamb";ÁüòÐDA let got: Vec<&str> = re.split(hay).map(|sp| &hay[sp]).collect();Áü»Ñ@= assert_eq!(got, vec!["Mary", "had", "a", "little", "lamb"]);Á€Ò�üˆÒ let re = Regex::new(r"X")?;ÁŒ¬Ò let hay = "";ÁüÂÒD¥¯<ô‹Ó assert_eq!(got, vec![""]);Á®Ó�ü¶Ó̰<üÚÓ$! let hay = "lionXXtigerXleopard";ÁüƒÔD¥¯<üÌÔ:7 assert_eq!(got, vec!["lion", "", "tiger", "leopard"]);Á‹Õ�ü“Õ  let re = Regex::new(r"::")?;Áü¸Õ%" let hay = "lion::tiger::leopard";ÁüâÕD¥¯<ü«Ö63 assert_eq!(got, vec!["lion", "tiger", "leopard"]);ÁæÖ�üîÖ.Ǭ/<¡×ä¤/­×�üµ×GD If a haystack contains multiple contiguous matches, you will end upÁü�Ø-* with empty spans yielded by the iterator:Á³Ø�<»Øä¤/üÇØ$èë;ðØ�üøØ̰<ܜ٠let hay = "XXXXaXXbXc";Áü¼ÙD¥¯<ü…Ú=: assert_eq!(got, vec!["", "", "", "", "a", "", "b", "c"]);ÁÇÚ�üÏÚ let re = Regex::new(r"/")?;Á´óÚ let hay = "(///)";ÁüŽÛD¥¯<ü×Û,) assert_eq!(got, vec!["(", "", "", ")"]);ÁˆÜ�ü�Ü.Ǭ/<ÃÜä¤/ÏÜ�ü×ÜHE Separators at the start or end of a haystack are neighbored by emptyÁT¤Ý spans.Á³Ý�<»Ýä¤/üÇÝ$èë;ðÝ�üøÝ let re = Regex::new(r"0")?;Á¤œÞ let hay = "010";ÁüµÞD¥¯<üþÞ'$ assert_eq!(got, vec!["", "1", ""]);Áªß�ü²ß.Ǭ/<åßä¤/ñß�üùßFC When the empty string is used as a regex, it splits at every validÁüÄàJG UTF-8 boundary by default (which includes the beginning and end of theÁt“á haystack):Á¦á�<®áä¤/üºá$èë;ãá�ôëá let re = Regex::new(r"")?;Á¬Žâ let hay = "rust";Áü¨âD¥¯<üñâ63 assert_eq!(got, vec!["", "r", "u", "s", "t", ""]);Á¬ã�ü´ã>; // Splitting by an empty string is UTF-8 aware by default!Áô÷ãȽ<¤šä let hay = "☃";Áü³äD¥¯<üüä)& assert_eq!(got, vec!["", "☃", ""]);Áªå�ü²å.Ǭ/<ååä¤/ñå�üùåJG But note that UTF-8 mode for empty strings can be disabled, which willÁüÈæ@= then result in a match at every byte offset in the haystack,Áü�ç,) including between every UTF-8 code unit.Á¾ç�<Æçä¤/üÒç$èë;ûç�ìƒèàÇ9ü¥è5·�<¬ßèËó3üùè let hay = "☃".as_bytes();Áü�éEB let got: Vec<&[u8]> = re.split(hay).map(|sp| &hay[sp]).collect();ÁÌçé assert_eq!(got, vec![Áü…êIF // Writing byte string slices is just brutal. The problem is thatÁüÓê52 // b"foo" has type &[u8; 3] instead of &[u8].Áü�ëIF &[][..], &[b'\xE2'][..], &[b'\x98'][..], &[b'\x83'][..], &[][..],Á<ÛëÓó9çë�üïë.Ǭ/<¢ìä¤/®ì�ü¶ìJG Contiguous separators (commonly shows up with whitespace), can lead toÁü…íDA possibly surprising behavior. For example, this code is correct:ÁÎí�<Öíä¤/üâí$èë;‹î�ü“îÉ®<Ü·î let hay = " a b c";Áü×îD¥¯<ü ï=Ú¶<âï�üêï.Ǭ/<�ðä¤/©ð�ü±ðKH It does *not* give you `["a", "b", "c"]`. For that behavior, you'd wantÁü�ñ)& to match contiguous space characters:Á¯ñ�<·ñä¤/üÃñ$èë;ìñ�üôñ  let re = Regex::new(r" +")?;ÁÜ™òÈÈ<ü¹òD¥¯<ü‚óEB // N.B. This does still include a leading empty span because ' +'ÁüÌó0- // matches at the beginning of the haystack.Áü�ô-* assert_eq!(got, vec!["", "a", "b", "c"]);Á³ô�ü»ô.Ǭ/<îôä¤/,�õ¦ ¦ÞˆÓ¤ššÒÅ�åËÛž¯ÛÂbé1ºÄmH¦¸Bÿ“¸§…¨§¨•õ“Àþ0 �õÒþ0| õ ¥¸Ó¤$¾õ–` I;=™õ8:üŒŠ|ü³öGD Returns an iterator of at most `limit` spans of the haystack given,ÁüÿöGD delimited by a match of the regex. (A `limit` of `0` will return noÁüË÷FC spans.) Namely, each element of the iterator corresponds to a partÁü–øGD of the haystack that *isn't* matched by the regular expression. TheÁüâøKH remainder of the haystack that is not split will be the last element inÁŒ²ù the iterator.ÁÈù�lÐù•£/âù�üêù-* Get the first two words in some haystack:Áœú�<¤úä¤/ü°ú=ÔÂ/üòú$èë;›û�ü£û)& let re = Regex::new(r"\W+").unwrap();ÁüÑû" let hay = "Hey! How are you?";ÁÜøû let fields: Vec<&str> =Áü˜ü;8 re.splitn(hay, 3).map(|span| &hay[span]).collect();ÁüØü74 assert_eq!(fields, vec!["Hey", "How", "are you?"]);Á”ý�üœý.Ǭ/<Ïýä¤/Ûý�Ôãý # Examples: more casesÁ‚þ�<Šþä¤/ü–þ$èë;¿þ�üÇþÉ®<üëþ'ó®<ü—ÿHE let got: Vec<&str> = re.splitn(hay, 3).map(|sp| &hay[sp]).collect();Áüäÿ:7 assert_eq!(got, vec!["Mary", "had", "a little lamb"]);Á£€�ü«€̰<ŒÏ€õ°<üå€HÒ×<ô²�Ÿ±<Õ��üÝ�̰<ü�‚$ä±<üª‚HÒ×<ü÷‚74 assert_eq!(got, vec!["lion", "", "tigerXleopard"]);Á³ƒ�ü»ƒ ô²<üàƒ%Ÿ³<üŠ„HE let got: Vec<&str> = re.splitn(hay, 2).map(|sp| &hay[sp]).collect();Áüׄ41 assert_eq!(got, vec!["lion", "tiger::leopard"]);Á�…�ü˜…̰<ļ… let hay = "abcXdef";ÁüÙ…HE let got: Vec<&str> = re.splitn(hay, 1).map(|sp| &hay[sp]).collect();Áü¦†%" assert_eq!(got, vec!["abcXdef"]);ÁІ�ü؆̰<¼ü† let hay = "abcdef";Áü˜‡HØÚ<üå‡$! assert_eq!(got, vec!["abcdef"]);ÁŽˆ�ü–ˆ̰<ĺˆ…Ü<ü׈HE let got: Vec<&str> = re.splitn(hay, 0).map(|sp| &hay[sp]).collect();Á䤉 assert!(got.is_empty());Áʼn�ü͉.Ǭ/<€Šä¤/4“Šª ªÞˆÓ¤££�Ʀ»ÆÛ§ª¯ÛZ>÷_ác䪸Bÿ“¸«…¬¬«šŠ“Àþ0 ¢ŠÒþ0|¥Š ©¸Ó¤$Ê–`4Jª¯>JDFžŠACT€ŒüÈ‹74 Lower level search routines that give more control.ÁÞˆ®¯°±²ü ‘8ü‘ŒGúß9üÝŒ$Ëà9†��üŽ�HE This is like [`Regex::find`] but, but it accepts a concrete `&Input`ÁüÛ�  instead of an `Into`.Á€Ž�lˆŽ•£/šŽ�<¢Žä¤/ü®Ž4Ý€<çŽ�üïŽ)& let re = Regex::new(r"Samwise|Sam")?;ÁÜ�� let input = Input::new(Áü½�96 "one of the chief characters, Samwise the Brave",Á4û�½µ0ü†�@= assert_eq!(Some(Match::must(0, 29..36)), re.search(&input));ÁË��üÓ�.Ǭ/<†‘ä¤/4§‘Ò2Ó2Ô2 Ò2Þˆ Ó2Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Ô2³¶Bÿ­ ®‘­À‚ $¯‘–`þMüî¦Aü€�JG Returns the end offset of the leftmost match. If no match exists, thenÁ¼Ï��ª4ë��üó�KH This is distinct from [`Regex::search`] in that it only returns the endÁüÞHE of a match and not the start of the match. Depending on a variety ofÁü�ŸIF implementation details, this _may_ permit the regex engine to do lessÁüÞŸJG overall work. For example, if a DFA is being used to execute a search,Áü­ HE then the start of a match usually requires running a separate DFA inÁüú JG reverse to the find the start of a match. If one only needs the end ofÁüÉ¡HE a match, then the separate reverse scan to find the start of a matchÁü–¢JG can be skipped. (Note that the reverse scan is avoided even when usingÁüå¢JG `Regex::search` when possible, for example, in the case of an anchoredÁd´£ search.)ÁÅ£�lÍ£•£/ߣ�<ç£ä¤/üó£85 use regex_automata::{meta::Regex, Input, HalfMatch};Á°¤�ü¸¤)Ûä<Üæ¤Žå<ü†¥9´å<4Ä¥½µ0üÏ¥EB assert_eq!(Some(HalfMatch::must(0, 36)), re.search_half(&input));Á™¦�ü¡¦.Ǭ/<Ô¦ä¤/\õ¦Õ2Ö2×2 Õ2Þˆ Ö2Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²×2ÖáBÿ­ �§­ ¯$‚§–`´Rü‘ÄEü­ªH�Ž<üúªFãŽ<üÅ«K´�<´•¬‰�<°¬�ü¸¬HE This is like [`Regex::captures`], but it accepts a concrete `&Input`Áü…­ Þã<ª­�ü²­&ì¥1Ý­�üå­HE This example shows how to build a multi-pattern `Regex` that permitsÁü²®$! searching for specific patterns.ÁÛ®�<ã®ä¤/Ìï®ô¤/¤�¯ meta::Regex,Áü¦¯*' Anchored, Match, PatternID, Input,Á4կݥ/à¯�üè¯DA let re = Regex::new_many(&["[a-z0-9]{6}", "[a-z][a-z0-9]{5}"])?;Áü±°(û›0äÞ°üÌ3ÿ°�ü‡±C°Í3üϱKþÍ3üŸ²GÔÎ3„ë²¥Ï3ü€³.+ let expected = Some(Match::must(0, 0..6));Áü³³96 re.search_captures(&Input::new(haystack), &mut caps);Áüñ³+ÄŠ0¡´�ü©´JåÐ3üø´"ºÑ3üŸµ.+ let expected = Some(Match::must(1, 0..6));ÁüÒµ$¡Ò3üûµ9ÐÒ3ü¹¶*' re.search_captures(&input, &mut caps);Áüè¶+ÄŠ0˜·�ü ·.Ǭ/<Ó·ä¤/ß·�üç·0€±1œ¸�ü¤¸Gȱ1üð¸;š²1°¹�<¸¹ä¤/üĹ=ÔÂ/ü†º41 use regex_automata::{meta::Regex, Match, Input};Á¿º�üǺ*' let re = Regex::new(r"\b[0-9]{3}\b")?;Áüöº(û›0ü£»ص1Ç»�üÏ»E�¶1ü™¼Fß¶1üä¼I°·1ü²½E„¸1tü½Ó¸1ü�¾.ì¸1ü¾,) let input = Input::new(&haystack[3..6]);Áüó¾*„û<ü¢¿+ÄŠ0Ò¿�üÚ¿KŸº1üªÀHõº1ü÷ÀFÈ»1üÂÁC™¼1ÄŠÂæ¼1ü§Â1. let input = Input::new(haystack).range(3..6);ÁüÝÂ*„û<üŒÃ+ÄŠ0¼Ã�üÄÃ.Ǭ/<÷Ãä¤/|˜ÄØ2Ù2Ú2Û2 Ø2Þˆ Ù2Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Ú2 Û2˜ÛBÿ­ ¨Ä­·„ $©Ä–`&Uɾ1UüÒÚ„üáÅH�Ž<ü®ÆFC groups that participated in a match into the provided `slots`, andÁüùÆKH returns the matching pattern ID. The contents of the slots for patternsÁüÉÇKH other than the matching pattern are unspecified. If no match was found,Áü™ÈGD then `None` is returned and the contents of `slots` is unspecified.ÁåÈ�üíÈDA This is like [`Regex::search`], but it accepts a raw slots sliceÁü¶ÉGÂÃ1ü‚Ê0”Ä1·Ê�ü¿ÊKÜÄ1ü�ËF²Å1üÚËKƒÆ1üªÌ6ÙÆ1åÌ�üíÌC§Ç1üµÍJG * A slice with [`pattern_len() * 2`](Regex::pattern_len) slots, if youÁü„ÎFC only care about the overall match spans for each matching pattern.Á”ÏÎôÇ1üæÎKÎÉ1ü¶ÏF¤Ê1d�Ðáé/’Ð�lšÐ•£/¬Ð�ü´ÐAäÌ1üúÐJ°Í1üÉÑ)…Î1÷Ñ�<ÿÑä¤/ü‹Ò=ÔÂ/üÍÒ85 use regex_automata::{meta::Regex, PatternID, Input};ÁŠÓ�ü’ÓäÑ;„¶Ó r"\pL+",Á|ËÓ r"\d+",ÁDßÓ•Ð1üìÓ%" let input = Input::new("!@#123");Á–Ô�üžÔD‰Ñ1üçÔGØÑ1ä³Õ©Ò1ôÔÕÏÒ1ü÷Õ2/ let pid = re.search_slots(&input, &mut slots);Áü®Ö.ÆÓ1áÖ�üéÖKŒÔ1ü¹×IâÔ1¤‡ØµÕ1ü Ø1ÔÕ1üÖØ"�Ö1üýØ<9 assert_eq!(Some(3), slots[slot_start].map(|s| s.get()));Áü¾Ù:7 assert_eq!(Some(6), slots[slot_end].map(|s| s.get()));ÁýÙ�ü…Ú.Ǭ/<¸Úä¤/dÙÚÜ2Ý2Þ2ß2 Ü2Þˆ Ý2Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Þ2 ß2 ©€ªBÿ­ ïÚ­„ª $ðÚ–`=Y©&HYü¡ïrüÜÞF›½4ü§ßEì½4üñßDA position and this `Regex` was configured with [`MatchKind::All`]ÁüºàGD semantics, then all matching patterns are written to the given set.Á†á�üŽáKH Unless all of the patterns in this `Regex` are anchored, then generallyÁüÞá1. speaking, this will scan the entire haystack.Á”â�üœâIÿÀ4üêâGÓÁ4ü¶ãH¥Â4üƒäFøÂ4„ÎäÈÃ4ãä�üëäDðÃ4ü´åI¿Ä4d‚æ’Å4“æ�l›æ•£/­æ�üµæGäÇ4ü�çI¶È4üÏçIF It is important that we configure the `Regex` with [`MatchKind::All`]Áü�èEB semantics here, or else overlapping matches will not be reported.Áçè�<ïèä¤/üûè=ÔÂ/ü½éDA use regex_automata::{meta::Regex, Input, MatchKind, PatternSet};Á†ê�¬ŽêšÊ4ü¨êFºÊ44óêÙý3ìþêàÇ9ü ë>; .configure(Regex::config().match_kind(MatchKind::All))Áüãë¶Ë4‡ì�ü�ì%üË4ü¹ì74 let mut patset = PatternSet::new(re.pattern_len());Áüõì63 re.which_overlapping_matches(&input, &mut patset);Áü°í'ÂÍ4üÜíHôÍ4ô©î—‘3Ìî�üÔî.Ǭ/<‡ïä¤/̨ïà2á2â2ã2 à2Þˆ á2Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²â2 ã2¡£Bÿ­ Ëï­ ²$Ìï–`Z]ª§ e]T�ôüŽóNK Lower level search routines that give more control, and require the callerÁüÝó/, to provide an explicit [`Cache`] parameter.ÁÞˆ´µ¶·¸ü�ýoüžô>; This is like [`Regex::search`], but requires the caller toÁüáô  explicitly pass a [`Cache`].Á†õ�üŽõ$! # Why pass a `Cache` explicitly?Á·õ�ü¿õJG Passing a `Cache` explicitly will bypass the use of an internal memoryÁüŽöGD pool used by `Regex` to get a `Cache` for a search. The use of thisÁüÚöIF pool can be slower in some cases when a `Regex` is used from multipleÁü¨÷HE threads simultaneously. Typically, performance only becomes an issueÁüõ÷EB when there is heavy contention, which in turn usually only occursÁü¿øHE when each thread's primary unit of work is a regex search on a smallÁlŒù haystack.Ážù�l¦ù•£/¸ù�<Àùä¤/üÌù4Ý€<…ú�ü�ú)Ûä<ü»ú&Ê›0ÜæúŽå<ü†û9´å<4Äû½µ0|Ïû¡´0üãû%" Some(Match::must(0, 29..36)),Áü�ü+( re.search_with(&mut cache, &input),Á4½ü½µ0Èü�üÐü.Ǭ/<ƒýä¤/\¤ýä2å2æ2ç2 ä2Þˆ å2ËŽ æ2Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²ç2³¶Bÿ³ ¹ý³Þ”$ºýóA¤`–`¯`ü߈xüÒÿC@ This is like [`Regex::search_half`], but requires the caller toÁüš€ Êž=¿€�üÇ€$‚Ÿ=ð€�üø€J¾Ÿ=üÇ�G“ =ü“‚Iå =üá‚H¹¡=ü®ƒEŒ¢=üøƒHÜ¢=lÅ„®£=ׄ�lß„•£/ñ„�<ù„ä¤/ü……8ÿï<Â…�üÊ…)Ûä<üø…&Ê›0Ü£†Žå<üÆ9´å<4�‡½µ0|Œ‡¡´0ü ‡%" Some(HalfMatch::must(0, 36)),Áüʇ0- re.search_half_with(&mut cache, &input),Á4ÿ‡½µ0Šˆ�ü’ˆ.Ǭ/<ňä¤/„æˆè2é2ê2ë2 è2Þˆ é2ËŽ ê2Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²ë2ÖáBÿ³ €‰³²œ$�‰óAšc–`¥cüš¨„ü¢‹GD This is like [`Regex::search_captures`], but requires the caller toÁüî‹ Êž=“Œ�ü›Œ$‚Ÿ=ÄŒ�üÌŒJ¾Ÿ=ü›�G“ =üç�Iå =üµŽH¹¡=ü‚�EŒ¢=üÌ�HÜ¢=l™�®£=«��ü³�&ì¥1Þ��üæ�H©õ<ü³‘$üõ<Ü‘�<ä‘ä¤/Ìð‘ô¤/¤Ž’Óö<ü§’*òö<4Ö’Ý¥/á’�üé’DÂ÷<ü²“Jœ§/ä�”üÌ3¢”�üª”C°Í3üò”KþÍ3ü•GÔÎ3„Ž–¥Ï3ü£–.öø<üÖ–JG re.search_captures_with(&mut cache, &Input::new(haystack), &mut caps);Áü¥—+ÄŠ0Õ—�üÝ—JåÐ3ü¬˜"ºÑ3üÓ˜.­ú<ü†™$¡Ò3ü¯™9ÐÒ3üí™;8 re.search_captures_with(&mut cache, &input, &mut caps);Áü­š+ÄŠ0Ýš�üåš.Ǭ/<˜›ä¤/¤›�ü¬›0€±1á›�üé›Gȱ1üµœ;š²1õœ�<ýœä¤/ü‰�=ÔÂ/üË�4ãü<„ž�üŒž*¯ý<ü»žJœ§/üŠŸص1®Ÿ�ü¶ŸE�¶1ü€ Fß¶1üË I°·1ü™¡E„¸1tã¡Ó¸1üö¡.ì¸1ü©¢,èþ<üÚ¢;÷³=üš£+ÄŠ0Ê£�üÒ£KŸº1ü¢¤Hõº1üï¤FÈ»1üº¥C™¼1Ä‚¦æ¼1üŸ¦1”€=üÕ¦;÷³=ü•§+ÄŠ0ŧ�üͧ.Ǭ/<€¨ä¤/¤¡¨ì2í2î2ï2ð2 ì2Þˆ í2ËŽ î2Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²ï2 ð2˜ÛBÿ³ ¿¨³¨¬$À¨óA¯e–`ºeɾÅeü·º¤üµªDA This is like [`Regex::search_slots`], but requires the caller toÁüþª Êž=£«�ü««$‚Ÿ=Ô«�üÜ«J¾Ÿ=ü«¬G“ =ü÷¬Iå =üÅ­H¹¡=ü’®EŒ¢=üÜ®HÜ¢=l©¯®£=»¯�lï•£/Õ¯�üݯAäÌ1ü£°J°Í1üò°)…Î1 ±�<¨±ä¤/ü´±=ÔÂ/üö±8 Š=³²�ü»²äÑ;„ß²þŠ=|ô²˜‹=Dˆ³•Ð1ü•³&Ê›0üÀ³%À‹=ê³�üò³D‰Ñ1ü»´GØÑ1䇵©Ò1ô¨µÏÒ1ü˵C@ let pid = re.search_slots_with(&mut cache, &input, &mut slots);Áü“¶.ÆÓ1ƶ�üζKŒÔ1üž·IâÔ1¤ì·µÕ1ü…¸1ÔÕ1ü»¸"�Ö1üâ¸<Ú�=ü£¹:¡Ž=â¹�üê¹.Ǭ/<�ºä¤/Œ¾ºñ2ò2ó2ô2õ2 ñ2Þˆ ò2ËŽ ó2Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²ô2 õ2 ©€ªBÿ³ Ùº³…Ë $ÚºóAƒh–`Žh©&™hüÑÉ’ü®½GD This is like [`Regex::which_overlapping_matches`], but requires theÁüú½*' caller to explicitly pass a [`Cache`].Á©¾�ü±¾J¾Ÿ=ü€¿G“ =üÌ¿Iå =üšÀH¹¡=üçÀEŒ¢=ü±ÁHÜ¢=lþÁ®£=�Â�ü˜Â$‚Ÿ=ÁÂ�lÉ•£/ÛÂ�<ãÂä¤/üïÂ=ÔÂ/ü±ÃDý–=úÃ�¬‚ÄšÊ4üœÄFºÊ44çÄÙý3ìòÄàÇ9ü”Å>’˜=ü×ŶË4üûÅ&Ê›0¦Æ�ü®Æ%üË4üØÆ7†™=ü”ÇGD re.which_overlapping_matches_with(&mut cache, &input, &mut patset);ÁüàÇ'ÂÍ4üŒÈHôÍ4ôÙÈ—‘3üÈ�ü„É.Ǭ/<·Éä¤/ôØÉö2÷2ø2ù2ú2 ö2Þˆ ÷2ËŽ ø2Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²ù2 ú2¡£Bÿ³ €Ê³ ¸$�ÊóAñj–`üjª§ kT–Íü„ÌHE Various non-search routines for querying properties of a `Regex` andÁüÍÌHE convenience routines for creating [`Captures`] and [`Cache`] values.ÁÞˆº»¼½¾ÀÁÂÃü´ã)ü§ÍJG Creates a new object for recording capture group offsets. This is usedÁüöÍKH in search APIs like [`Regex::captures`] and [`Regex::search_captures`].ÁÆÎ�üÎÎ%" This is a convenience routine forÁüøÎKH `Captures::all(re.group_info().clone())`. Callers may build other typesÁüÈÏGD of `Captures` values that record less information (and thus requireÁü”ÐDA less work from the regex engine) using [`Captures::matches`] andÁÄÝÐ [`Captures::empty`].ÁúÐ�l‚Ñ•£/”Ñ�üœÑ?< This shows some alternatives to [`Regex::create_captures`]:ÁàÑ�<èÑä¤/ÌôÑô¤/¤’ÒÓö<ü«Ò! util::captures::Captures,ÁüÑÒ Match, PatternID, Span,Á4õÒÝ¥/€Ó�üˆÓHE let re = Regex::new(r"(?[A-Z][a-z]+) (?[A-Z][a-z]+)")?;ÁÕÓ�üÝÓGD // This is equivalent to Regex::create_captures. It stores matchingÁü©Ô+( // offsets for all groups in the regex.ÁüÙÔ96 let mut all = Captures::all(re.group_info().clone());Áü—Õ/, re.captures("Bruce Springsteen", &mut all);ÁüËÕ=: assert_eq!(Some(Match::must(0, 0..17)), all.get_match());Áü�ÖGD assert_eq!(Some(Span::from(0..5)), all.get_group_by_name("first"));ÁüÙÖGD assert_eq!(Some(Span::from(6..17)), all.get_group_by_name("last"));Á¥×�ü­×EB // In this version, we only care about the implicit groups, whichÁü÷×HE // means offsets for the explicit groups will be unavailable. It canÁüÄØHE // sometimes be faster to ask for fewer groups, since the underlyingÁü‘Ù@= // regex engine needs to do less work to keep track of them.ÁüÖÙA> let mut matches = Captures::matches(re.group_info().clone());ÁüœÚ30 re.captures("Bruce Springsteen", &mut matches);ÁüÔÚ+( // We still get the overall match info.Áü„ÛA> assert_eq!(Some(Match::must(0, 0..17)), matches.get_match());ÁüÊÛ30 // But now the explicit groups are unavailable.Áü‚Ü96 assert_eq!(None, matches.get_group_by_name("first"));ÁüÀÜ85 assert_eq!(None, matches.get_group_by_name("last"));ÁýÜ�ü…ÝJG // Finally, in this version, we don't ask to keep track of offsets forÁüÔÝHE // *any* groups. All we get back is whether a match occurred, and ifÁü¡Þ.+ // so, the ID of the pattern that matched.ÁüÔÞ=: let mut empty = Captures::empty(re.group_info().clone());Áü–ß1. re.captures("Bruce Springsteen", &mut empty);Á¤Ìß // it's a match!Áôåß assert!(empty.is_match());Á¼ˆà // for pattern ID 0Áü¤à74 assert_eq!(Some(PatternID::ZERO), empty.pattern());Áüàà%" // Match offsets are unavailable.ÁüŠá(% assert_eq!(None, empty.get_match());Áü·á:7 // And of course, explicit groups are unavailable too.Áüöá74 assert_eq!(None, empty.get_group_by_name("first"));Áü²â63 assert_eq!(None, empty.get_group_by_name("last"));Áíâ�üõâ.Ǭ/<¨ãä¤/|»ãû2 û2Þˆ˜ÛBÿ¹ Ë㹎Œ $Ìãüåê#üœäA> Creates a new cache for use with lower level search APIs likeÁÜâä [`Regex::search_with`].Á‚å�üŠåIF The cache returned should only be used for searches for this `Regex`.ÁüØåJG If you want to reuse the cache for another `Regex`, then you must callÁü§æ'$ [`Cache::reset`] with that `Regex`.ÁÓæ�üÛæ52 This is a convenience routine for [`Cache::new`].Á•ç�l�ç•£/¯ç�<·çä¤/üÃç4Ý€<üç�ü„è.+ let re = Regex::new(r"(?-u)m\w+\s+m\w+")?;Áü·è&Ê›0üâè>; let input = Input::new("crazy janey and her mission man");Á|¥é¡´0ü¹é%" Some(Match::must(0, 20..31)),Áüãé+Ÿ¥=4“ê½µ0žê�ü¦ê.Ǭ/<Ùêä¤/dìêü2 ü2ވˎBÿ¹ ùê¹ »$úêüÏò"ü¼ë74 Returns the total number of patterns in this regex.Áøë�ü€ìGD The standard [`Regex::new`] constructor always results in a `Regex`ÁüÌìEB with a single pattern, but [`Regex::new_many`] permits building aÁÄ–í multi-pattern regex.Á³í�ü»íJG A `Regex` guarantees that the maximum possible `PatternID` returned inÁüŠîIF any match is `Regex::pattern_len() - 1`. In the case where the numberÁüØî.+ of patterns is `0`, a match is impossible.Á‹ï�l“ï•£/¥ï�<­ïä¤/ü¹ï$èë;âï�üêï)& let re = Regex::new(r"(?m)^[a-z]$")?;Áü˜ð$! assert_eq!(1, re.pattern_len());ÁÁð�üÉð+“æ;üùð$! assert_eq!(0, re.pattern_len());Á¢ñ�üªñ0- let re = Regex::new_many(&["a", "b", "c"])?;Áüßñ$§ˆ:ˆò�ü�ò.Ǭ/<Ãòä¤/\Öòý2 ý2ÞˆBÿ¹ âò¹ ¼$ãòüº€#ü£ó1. Returns the total number of capturing groups.ÁÙó�üáóC@ This includes the implicit capturing group corresponding to theÁü©ô?< entire match. Therefore, the minimum value returned is `1`.Áíô�lõô•£/‡õ�ü�õDA This shows a few patterns and how many capture groups they have.ÁØõ�<àõä¤/üìõ$èë;•ö�Ì�ö let len = |pattern| {Áü»ö74 Regex::new(pattern).map(|re| re.captures_len())Á4÷öÝ¥/‚÷�ìŠ÷ assert_eq!(1, len("a")?);Áü¬÷ assert_eq!(2, len("(a)")?);ÁüÐ÷# assert_eq!(3, len("(a)|(b)")?);Áüø÷)& assert_eq!(5, len("(a)(b)|(c)(d)")?);Áü¦ø! assert_eq!(2, len("(a)|b")?);ÁüÌø! assert_eq!(2, len("a|(b)")?);Áüòø  assert_eq!(2, len("(b)*")?);Áü—ù  assert_eq!(2, len("(b)+")?);Á¼ù�üÄù.Ǭ/<÷ùä¤/ƒú�ü‹ú  # Example: multiple patternsÁ°ú�ü¸úFC This routine also works for multiple patterns. The total number isÁüƒû2/ the sum of the capture groups of each pattern.Áºû�<Âûä¤/üÎû$èë;÷û�Ôÿû let len = |patterns| {Áüžü=: Regex::new_many(patterns).map(|re| re.captures_len())Á4àüÝ¥/ëü�üóü%" assert_eq!(2, len(&["a", "b"])?);Áü�ý)& assert_eq!(4, len(&["(a)", "(b)"])?);ÁüËý1. assert_eq!(6, len(&["(a)|(b)", "(c)|(d)"])?);Áü�þ63 assert_eq!(8, len(&["(a)(b)|(c)(d)", "(x)(y)"])?);Áü¼þ'$ assert_eq!(3, len(&["(a)", "b"])?);Áüèþ'$ assert_eq!(3, len(&["a", "(b)"])?);Áü”ÿ*' assert_eq!(4, len(&["(a)", "(b)*"])?);ÁüÃÿ+( assert_eq!(4, len(&["(a)+", "(b)+"])?);Áóÿ�üûÿ.Ǭ/<®€ä¤/dÁ€þ2 þ2ÞˆBÿ¹ ΀¹ ½$Ï€üÁ•2üþ�EB Returns the total number of capturing groups that appear in everyÁœÈ‚ possible match.Áà‚�üè‚IF If the number of capture groups can vary depending on the match, thenÁü¶ƒJG this returns `None`. That is, a value is only returned when the numberÁü…„0- of matching groups is invariant or "static."Áº„�ü„EB Note that like [`Regex::captures_len`], this **does** include theÁüŒ…JG implicit capturing group corresponding to the entire match. Therefore,ÁüÛ…KH when a non-None value is returned, it is guaranteed to be at least `1`.Áü«†B? Stated differently, a return value of `Some(0)` is impossible.Áò†�lú†•£/Œ‡�ü”‡EB This shows a few cases where a static number of capture groups isÁüÞ‡.+ available and a few cases where it is not.Á‘ˆ�<™ˆä¤/ü¥ˆ=ÔÂ/çˆ�üïˆ$èë;˜‰�Ì ‰Ñö=ü¾‰>; Regex::new(pattern).map(|re| re.static_captures_len())Á4�ŠÝ¥/ŒŠ�ü”Š# assert_eq!(Some(1), len("a")?);Áü¼Š%" assert_eq!(Some(2), len("(a)")?);ÁüæŠ)& assert_eq!(Some(2), len("(a)|(b)")?);Áü”‹/, assert_eq!(Some(3), len("(a)(b)|(c)(d)")?);ÁüÈ‹$! assert_eq!(None, len("(a)|b")?);Áüñ‹$! assert_eq!(None, len("a|(b)")?);ÁüšŒ# assert_eq!(None, len("(b)*")?);ÁüÂŒ&# assert_eq!(Some(2), len("(b)+")?);ÁíŒ�üõŒ.Ǭ/<¨�ä¤/´��ü¼� êú=á��üé�GD This property extends to regexes with multiple patterns as well. InÁüµŽIF order for their to be a static number of capture groups in this case,Áüƒ�30 every pattern must have the same static number.Á»��<Ã�ä¤/üÏ�=ÔÂ/‘��ü™�$èë;Â��ÔÊ�æü=üé�DA Regex::new_many(patterns).map(|re| re.static_captures_len())Á4²‘Ý¥/½‘�üÅ‘+( assert_eq!(Some(1), len(&["a", "b"])?);Áüõ‘/, assert_eq!(Some(2), len(&["(a)", "(b)"])?);Áü©’74 assert_eq!(Some(2), len(&["(a)|(b)", "(c)|(d)"])?);Áüå’<9 assert_eq!(Some(3), len(&["(a)(b)|(c)(d)", "(x)(y)"])?);Áü¦“*' assert_eq!(None, len(&["(a)", "b"])?);ÁüÕ“*' assert_eq!(None, len(&["a", "(b)"])?);Áü„”-* assert_eq!(None, len(&["(a)", "(b)*"])?);Áü¶”1. assert_eq!(Some(2), len(&["(a)+", "(b)+"])?);Áì”�üô”.Ǭ/<§•ä¤/œÈ•ÿ2 ÿ2ÞˆØÚBÿ¹ Ü•¹ ¾$Ý•,ñ–¾�¿�¿�¿¿¾þÙ ü¡¯&ü™—@= Return information about the capture groups in this `Regex`.ÁÞ—�üæ—GD A `GroupInfo` is an immutable object that can be cheaply cloned. ItÁü²˜GD is responsible for maintaining a mapping between the capture groupsÁüþ˜C@ in the concrete syntax of zero or more regex patterns and theirÁüÆ™JG internal representation used by some of the regex matchers. It is alsoÁü•šHE responsible for maintaining a mapping between the name of each groupÁüâš63 (if one exists) and its corresponding group index.Á�›�ü¥›KH A `GroupInfo` is ultimately what is used to build a [`Captures`] value,Áüõ›JG which is some mutable space where group offsets are stored as a resultÁ„Äœ of a search.ÁÙœ�l᜕£/óœ�üûœ?×Ð=¿��<Ç�ä¤/ÌÓ�ô¤/¤ñ�Óö<üŠž!ØÑ=ü°ž„Ò=4Ԟݥ/ßž�üçžHÉÒ=´Ÿ�ü¼ŸG©Ó=üˆ +ûÓ=ü¸ 9±Ô=üö /õÔ=üª¡=¯Õ=üì¡G÷Õ=ü¸¢GÉÖ=„£�üŒ£E¨×=üÖ£Hø×=ü£¤HËØ=üð¤@žÙ=üµ¥AéÙ=üû¥3µÚ=ü³¦+óÚ=üã¦A©Û=ü©§3õÛ=üá§9³Ü=üŸ¨8÷Ü=ܨ�üä¨JÇÝ=ü³©HœÞ=ü€ª.ïÞ=ü³ª=¨ß=üõª1ðß=¤«««à=ôÄ«Éà=¼ç«ñà=üƒ¬7“á=ü¿¬%Õá=üé¬(…â=ü–­:¸â=üÕ­7ýâ=ü‘®6¿ã=Ì®�üÔ®.Ǭ/<‡¯ä¤/T¨¯€3 €3Þˆ €3ýÝBÿ¹ ³¯¹ À$´¯üα#üù¯@= Returns the configuration object used to build this `Regex`.Á¾°�üư>; If no configuration object was explicitly passed, then theÁü‰±2/ configuration returned represents the default.ÁTÕ±�3 �3Þˆ �3Å�Bÿ¹ à±¹ Á$á±üœÄ$üž²HE Returns true if this regex has a high chance of being "accelerated."Áë²�üó²JG The precise meaning of "accelerated" is specifically left unspecified,Áü³FC but the general meaning is that the search is a high likelihood ofÁü�´DA running faster than a character-at-a-time loop inside a standardÁŒÖ´ regex engine.Áì´�üô´IF When a regex is accelerated, it is only a *probabilistic* claim. ThatÁüµJG is, just because the regex is believed to be accelerated, that doesn'tÁü‘¶GD mean it will definitely execute searches very fast. Similarly, if aÁüݶHE regex is *not* accelerated, that is also a probabilistic claim. ThatÁüª·JG is, a regex for which `is_accelerated` returns `false` could still runÁüù·IF searches more quickly than a regex for which `is_accelerated` returnsÁ\Ǹ `true`.Á׸�ü߸C@ Whether a regex is marked as accelerated or not is dependent onÁü§¹KH implementations details that may change in a semver compatible release.Áü÷¹JG That is, a regex that is accelerated in a `x.y.1` release might not beÁüƺ%" accelerated in a `x.y.2` release.Áðº�üøºGD Basically, the value of acceleration boils down to a hedge: a hodgeÁüÄ»FC podge of internal heuristics combine to make a probabilistic guessÁü�¼IF that this regex search may run "fast." The value in knowing this fromÁüݼIF a caller's perspective is that it may act as a signal that no furtherÁü«½HE work should be done to accelerate a search. For example, a grep-likeÁüø½IF tool might try to do some extra work extracting literals from a regexÁüƾEB to create its own heuristic acceleration strategies. But it mightÁü�¿HE choose to defer to this crate's acceleration strategy if one exists.ÁüÝ¿IF This routine permits querying whether such a strategy is active for aÁ¬«À particular regex.ÁÅÀ�lÍÀ•£/ßÀ�<çÀä¤/üóÀ$èë;œÁ�ü¤Á96 // A simple literal is very likely to be accelerated.ÁüâÁ! let re = Regex::new(r"foo")?;ÁüˆÂ! assert!(re.is_accelerated());Á®Â�ü¶Â@= // A regex with no literals is likely to not be accelerated.Áüû  let re = Regex::new(r"\w")?;Áü Ã" assert!(!re.is_accelerated());ÁÇÃ�üÏÃ.Ǭ/<‚Ää¤/t£Ä‚3 ‚3ÞˆBÿ¹ ²Ä¹ Â$³ÄüºÌ#üöÄMJ Return the total approximate heap memory, in bytes, used by this `Regex`.ÁÈÅ�üÐÅIF Note that currently, there is no high level configuration for settingÁüžÆHE a limit on the specific value returned by this routine. Instead, theÁüëÆGD following routines can be used to control heap memory at a bit of aÁ„·Ç lower level:ÁÌÇ�üÔÇGD * [`Config::nfa_size_limit`] controls how big _any_ of the NFAs areÁ” È allowed to be.Áü·ÈIF * [`Config::onepass_size_limit`] controls how big the one-pass DFA isÁ”…ÉÓ½>üœÉIF * [`Config::hybrid_cache_capacity`] controls how much memory the lazyÁüêÉ?< DFA is permitted to allocate to store its transition table.Áü®ÊIF * [`Config::dfa_size_limit`] controls how big a fully compiled DFA isÁ”üÊÓ½>ü“ËIF * [`Config::dfa_state_limit`] controls the conditions under which theÁüáËFC meta regex engine will even attempt to build a fully compiled DFA.ÁdÁ̃3 ƒ3ÞˆBÿ¹ Î̹ Ã$Ï̤�ÍވņÅĪÍ,­Í„3 „3ÞˆÞˆBÿÄ ³ÍÄ Å$´Í<âÎÅ�Æ�Æ�ÆÆÅÆþÁ‰Ât�Òñ‰ÈÉÊËÌÍÏÐÒÔÕü³Ó=ÁÓê�3Ž3Å� �3 Ž3–‡ñ‰BÿÇ ÛÓÇ·½É4ÅÓ¡¯$ÕÓüÄ×&4Ò×�3 �3ñ‰ �3Å�BÿÇ Ù×dzà $Ú×ü�Ø0,�Ø�3 �3ñ‰ �3 ûÚ BÿÇ £ØÇ Ê$¤ØüãØ4\ñØ‘3 ‘3ñ‰ ‘3ûÚ BÿÇ ýØÇ™Ù $þØüÁÙ)\ÏÙ’3 ’3ñ‰BÿÇ ÛÙÇ Ì$ÜÙü“Ú*d¡Ú“3 “3ñ‰BÿÇ ®ÚÇ Í$¯ÚàÚÍ�Î�Î�ÎÎÍΪ¦;Uÿü¢ÞAŒ°Þ”3•3–3 ”3ñ‰ •3Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²–3BÿÇ ÂÞÇã‚$ÃÞ–`�yüÉá5Ä×á—3 —3ñ‰BÿÇ ðáǸó $ñá¼�â$ âüŽå3´œå˜3 ˜3ñ‰BÿÇ ³åÇ–ÿ $´å¼Ðå$ãåü½ê#ŒÀêÛ™3 ™3ñ‰BÿÇ ÒêÇ‚— $Óêüíñ2lðñÛš3›3œ3 š3ñ‰ ›3Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²œ3BÿÇ þñǰù $ÿñ–`1ƒüý‚ æG׸Ø×Ø�‹ÙÚ‚ƒ†ƒüðƒ ü¤ƒ96 Returns the `Regex` value that created this iterator.Á,÷ƒ 3  3�‹ æGÞˆBÿÖ ýƒÖ ÙæG¸$þƒü—†+ü®„>; Returns the current `Input` associated with this iterator.Áñ„�üù„JG The `start` position on the given `Input` may change during iteration,ÁüÈ…<9 but all other values are guaranteed to remain invariant.Á,ž†Û Û�‹ ÛÑ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²¸BÿÖ¤†Ö ÚæG¸$¬†#%üæ†-æGݸÞÝÞ�‹ßàâÅQÆQËQâàë†ï†Lš‡$Ÿ‡ÜÜ‹¢üÀ‡#$Ç¡3 ¡3�‹³¶BÿÜ ȇÜ àæG¸$͇<¼ˆà�á�á�áá࢒¼ÿˆ,‚‰�‹BÿÜÜ âæG¸ºŒ<÷Œâ�ã�ã�ãã⨘üÊ�>æG叿æå�‹Ï�Ó�üó’$æGè¸éèé�Œêëø’ü’üê“ üž“9‹Ð>,ñ“¥3 ¥3�ŒóÑ>Bÿç ÷“ç êæG¸$ø“ü‘–+ü¨”>½Ñ>ë”�üó”J“Ò>ü•<èÒ>,˜–ì ì�Œ ìÜÔ>Bÿçž–ç ëæG¸$¦–#%üà–1æGî¸ïîï�ŒðñóÅQÆQËQóñå–é–L˜—$�—íí˜ÛüÁ—&$Ä—¦3 ¦3�Œ™©Bÿí É—í ñæG¸$Η<­™ñ�ò�ò�òòñÙ¦¼ž›,¡›�ŒBÿíí óæG¸;™<��ó�ô�ô�ôôóÿ°üâ�BæGö¸÷ö÷�Œç�ë�Ô—¢æGù¸úùú€�ûœ¢ ¢ü¡¤+ü¸¢>½Ñ>û¢�üƒ£J“Ò>üÒ£<èÒ>,¨¤ü ü€� üÜÔ>Bÿø®¤ø ûæG¸$¶¤#%üô¤'æGþ¸ÿÿþ€�€�ÅQÆQ�ù¤ý¤L¢¥$§¥ýýÅžü¹¥"$¼¥ª3 ª3€�íõBÿý Á¥ý �æG¸$Æ¥ü©ª8æGƒ¸„ƒ„€�®ª²ªÜ�¯æG†¸‡†‡å�ˆ•¯™¯ü›±+ü²¯>½Ñ>õ¯�üý¯J“Ò>ṵ̈<èÒ>,¢±‰ ‰å� ‰ÜÔ>Bÿ…¨±… ˆæG¸$°±#%üî±(æG‹¸Œ‹Œå��Ž�ÅQÆQÊQŽ�ó±÷±L�²$¢²ŠŠÅžü´²"$·²®3 ®3å�íõBÿŠ ¼²Š ŽæG¸$Á²üѶ-LÔ¶¯3 ¯3å�ØÚBÿŠ Þ¶Š �æG¸$ß¶ü¨·9æG‘¸’‘’å�­·±·TÇÊËŽ”•–üåÌüØÊ2/ Creates a new `Cache` for use with this regex.Á�Ë�ü—ËEùŒ:üáËIÉ�:ü¯Ì1�Ž:ìÌ´3 ´3ވˎBÿ“ ôÌ“ ”é¾ðÌüà×#ü¬ÍJ˜î5üûÍ$Ã�:¤Î�ü¬ÎIF A cache reset permits potentially reusing memory already allocated inÁüúÎ(% this cache with a different `Regex`.Á§Ï�l¯Ï•£/ÁÏ�üÉÏJƒÐ9˜Ð�< Ðä¤/ü¬Ð=ÔÂ/üîÐ4ãü<§Ñ�ü¯Ñ!˜Ñ9üÕÑ!ÃÑ9ûÑ�üƒÒ'ð³0|¯Ò¡´0üÃÒ#»´0üëÒ74 re1.search_with(&mut cache, &Input::new("Δ")),Á4§Ó½µ0²Ó�üºÓHÛµ0ü‡ÔI®¶0üÕÔ2…Ó94ŒÕÅ·0ü—ÕJÖ·0|æÕª¸0´úÕª“:|•Ö¡´0ü©Ö#ý¸0üÑÖ85 re2.search_with(&mut cache, &Input::new("☃")),Á4Ž×½µ0™×�ü¡×.Ǭ/<Ô×ä¤/,ç×µ3¶3 µ3ËŽ ¶3ÞˆBÿ“ íד •$ò×é¾ø×ü…Ú#ü¸Ø;àû1øØ�ü€ÙF³ü1üËÙ5„ý1dŒÚ·3 ·3ËŽBÿ“ ™Ú“ –$šÚ\…ìÅ�˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶½¾¿ÀÁ´Ðìü—ì41 Create a new configuration object for a `Regex`.Á×ìÅ�Bÿ—— ˜ü‡÷2üŽí*' Set the match semantics for a `Regex`.Á½í�üÅí63 The default value is [`MatchKind::LeftmostFirst`].Á€î�lˆî•£/šî�<¢îä¤/ü®î85 use regex_automata::{meta::Regex, Match, MatchKind};Áëî�üóî;8 // By default, leftmost-first semantics are used, whichÁü³ï>; // disambiguates matches at the same position by selectingÁüöï74 // the one that corresponds earlier in the pattern.Áü²ð(% let re = Regex::new("sam|samwise")?;Áüßð?< assert_eq!(Some(Match::must(0, 0..3)), re.find("samwise"));Á£ñ�ü«ñ:7 // But with 'all' semantics, match priority is ignoredÁüêñ;8 // and all match states are included. When coupled withÁüªò96 // a leftmost search, the search will report the lastÁ´èò // possible match.ÁìƒóàÇ9ü¥ó>’˜=üèó .build("sam|samwise")?;ÁüŒô?< assert_eq!(Some(Match::must(0, 0..7)), re.find("samwise"));ÁüÐô52 // Beware that this can lead to skipping matches!ÁüŠõ:7 // Usually 'all' is used for anchored reverse searchesÁüÉõ)& // only, or for overlapping searches.Áü÷õDA assert_eq!(Some(Match::must(0, 4..11)), re.find("sam samwise"));ÁÀö�üÈö.Ǭ/<ûöä¤/TŽ÷Å�ù¦Å�Bÿ—— ™$™÷¦$Ÿ÷ü—‚,üù÷IF Toggles whether empty matches are permitted to occur between the codeÁüÇø'$ units of a UTF-8 encoded codepoint.Áóø�üûøJG This should generally be enabled when search a `&str` or anything thatÁüÊùIF you otherwise know is valid UTF-8. It should be disabled in all otherÁü˜úJG cases. Namely, if the haystack is not valid UTF-8 and this is enabled,Áüçú! then behavior is unspecified.Á�û�ü•û  By default, this is enabled.Áºû�lÂû•£/Ôû�<Üûä¤/üèû-ÕÉ;šü�ì¢ü let re = Regex::new("")?;ÁüÄü85 let got: Vec = re.find_iter("☃").collect();Áü�ýB? // Matches only occur at the beginning and end of the snowman.ÁÌÈýŽÄ<ìæý Match::must(0, 0..0),Áìˆþ Match::must(0, 3..3),Á<ªþÓó9¶þ�ì¾þàÇ9üàþ5·�<¤šÿ .build("")?;Áü³ÿ8ýƒ?üðÿ+( // Matches now occur at every position!ÁÌ €ŽÄ<ì¾€š…?ìà€ Match::must(0, 1..1),Áì‚� Match::must(0, 2..2),Áì¤�Á…?<Æ�Óó9Ò��üÚ�,) Ok::<(), Box>(())Á<‹‚ä¤/Tž‚Å�Å�Bÿ—— š$©‚ꯂüò‰0ü‚ƒ;8 Toggles whether automatic prefilter support is enabled.Áƒ�üʃFC If this is disabled and [`Config::prefilter`] is not set, then theÁü•„EB meta regex engine will not use any prefilters. This can sometimesÁüß„EB be beneficial in cases where you know (or have measured) that theÁü©…85 prefilter leads to overall worse search performance.Áæ…�üî… Ù‚?“†�l›†•£/­†�<µ†ä¤/üÁ†=ÔÂ/üƒ‡-ÕÉ;µ‡�콇àÇ9ü߇96 .configure(Regex::config().auto_prefilter(false))Áô�ˆ .build(r"Bruce \w+")?;ÁüÀˆ)& let hay = "Hello Bruce Springsteen!";Áüîˆ:7 assert_eq!(Some(Match::must(0, 6..23)), re.find(hay));Á­‰�üµ‰,—ˆ?<æ‰ä¤/tù‰Å�Å�Bÿ—— ›$ˆŠêŽŠüÈŸ8üÞŠ=: Overrides and sets the prefilter to use inside a `Regex`.Á ‹�ü¨‹EB This permits one to forcefully set a prefilter in cases where theÁüò‹FC caller knows better than whatever the automatic prefilter logic isÁ|½Œ capable of.ÁÑŒ�üÙŒHE By default, this is set to `None` and an automatic prefilter will beÁü¦�GD used if one could be built. (Assuming [`Config::auto_prefilter`] isÁüò�%" enabled, which it is by default.)ÁœŽ�l¤Ž•£/¶Ž�ü¾ŽFC This example shows how to set your own prefilter. In the case of aÁü‰�EB pattern like `Bruce \w+`, the automatic prefilter is likely to beÁüÓ�GD constructed in a way that it will look for occurrences of `Bruce `.ÁüŸ�HE In most cases, this is the best choice. But in some cases, it may beÁüì�EB the case that running `memchr` on `B` is the best choice. One canÁü¶‘EB achieve that behavior by overriding the automatic prefilter logicÁü€’41 and providing a prefilter that just matches `B`.Á¹’�<Á’ä¤/üÍ’=ÔÂ/Ì�“ô¤/¤­“Óö<üÆ“#Þß6Ìî“ Match, MatchKind,Á4Œ”Ý¥/—”�üŸ”>; let pre = Prefilter::new(MatchKind::LeftmostFirst, &["B"])Áüâ” .expect("a prefilter");Á솕àÇ9ü¨•85 .configure(Regex::config().prefilter(Some(pre)))Áôå•€Ž?üˆ–)©Ž?ü¶–:ÝŽ?õ–�üý–.Ǭ/<°—ä¤/¼—�üÄ—B? # Example: incorrect prefilters can lead to incorrect results!Á‹˜�ü“˜DA Be warned that setting an incorrect prefilter can lead to missedÁüܘIF matches. So if you use this option, ensure your prefilter can _never_Áüª™JG report false negatives. (A false positive is, on the other hand, quiteÁüù™$! okay and generally unavoidable.)Á¢š�<ªšä¤/ü¶š=ÔÂ/Ìøšô¤/¤–›Óö<ü¯›#Þß6Ì×›­™?4õ›Ý¥/€œ�üˆœ>; let pre = Prefilter::new(MatchKind::LeftmostFirst, &["Z"])ÁüËœµš?ìïœàÇ9ü‘�8íš?ôÎ�€Ž?üñ�)©Ž?üŸž52 // Oops! No match found, but there should be one!ÁüÙž# assert_eq!(None, re.find(hay));Á�Ÿ�ü‰Ÿ.Ǭ/<¼Ÿä¤/LÏŸÅ�¹Å Å�Bÿ—— œ$ÙŸѶߟüø¿Hü¸ FC Configures what kinds of groups are compiled as "capturing" in theÁ䃡 underlying regex engine.Á¤¡�ü¬¡IF This is set to [`WhichCaptures::All`] by default. Callers may wish toÁüú¡FC use [`WhichCaptures::Implicit`] in cases where one wants avoid theÁüÅ¢30 overhead of capture states for explicit groups.Áý¢�ü…£IF Note that another approach to avoiding the overhead of capture groupsÁüÓ£C@ is by using non-capturing groups in the regex pattern. That is,Áü›¤JG `(?:a)` instead of `(a)`. This option is useful when you can't controlÁüê¤KH the concrete syntax but know that you don't need the underlying captureÁüº¥JG states. For example, using `WhichCaptures::Implicit` will behave as ifÁü‰¦DA all explicit capturing groups in the pattern were non-capturing.ÁÒ¦�üÚ¦KH Setting this to `WhichCaptures::None` is usually not the right thing toÁüª§HE do. When no capture states are compiled, some regex engines (such asÁü÷§KH the `PikeVM`) won't be able to report match offsets. This will manifestÁüǨC@ as no match being found. Indeed, in order to enforce consistentÁü�©JG behavior, the meta regex engine will always report `None` for routinesÁüÞ©DA that return match offsets even if one of its regex engines couldÁü§ªGD service the request. This avoids "match or not" behavior from beingÁüóªJG influenced by user input (since user input can influence the selectionÁÌ« of the regex engine).Áà«�lè«•£/ú«�ü‚¬JG This example demonstrates how the results of capture groups can changeÁüѬJG based on this option. First we show the default (all capture groups inÁü ­ the pattern are capturing):ÁÄ­�<Ì­ä¤/üØ­30 use regex_automata::{meta::Regex, Match, Span};Á�®�ü˜®,) let re = Regex::new(r"foo([0-9]+)bar")?;ÁÔÉ® let hay = "foo123bar";Áè®�üð®(û›0ü�¯  re.captures(hay, &mut caps);Áü¯:7 assert_eq!(Some(Span::from(0..9)), caps.get_group(0));Áü�°:7 assert_eq!(Some(Span::from(3..6)), caps.get_group(1));ÁÀ°�üȰ,—ˆ?<ù°ä¤/…±�ü�±FC And now we show the behavior when we only include implicit captureÁüرJG groups. In this case, we can only find the overall match span, but theÁü§²JG spans of any other explicit group don't exist because they are treatedÁüö²IF as non-capturing. (In effect, when `WhichCaptures::Implicit` is used,ÁüijKH there is no real point in using [`Regex::captures`] since it will neverÁü”´=: be able to report more information than [`Regex::find`].)ÁÖ´�<Þ´ä¤/Ìê´ô¤/¤ˆµÓö<ü¡µ%" nfa::thompson::WhichCaptures,Át˵·„0lÞµ Span,Á4ðµÝ¥/ûµ�샶àÇ9ü¥¶KH .configure(Regex::config().which_captures(WhichCaptures::Implicit))Áüõ¶# .build(r"foo([0-9]+)bar")?;ÁÔ�·Ó²?¼·�üÄ·(û›0üñ· ”³?ü–¸:¿³?üÕ¸(% assert_eq!(None, caps.get_group(1));Á‚¹�üй,—ˆ?<»¹ä¤/ǹ�üϹ-* # Example: strange `Regex::find` behaviorÁ�º�ü‰ºGD As noted above, when using [`WhichCaptures::None`], this means thatÁüÕºEB `Regex::is_match` could return `true` while `Regex::find` returnsÁ\Ÿ» `None`:Á¯»�<·»ä¤/Ìûô¤/¤á»Óö<üú»%¤¹?t¤¼ Input,Át·¼·„0lʼá¹?4ܼÝ¥/ç¼�ìï¼àÇ9ü‘½GD .configure(Regex::config().which_captures(WhichCaptures::None))Áüݽ#øº?Ô…¾Ó²?¤¾�ô¬¾ assert!(re.is_match(hay));ÁüϾ# assert_eq!(re.find(hay), None);Áü÷¾74 assert_eq!(re.search_half(&Input::new(hay)), None);Á³¿�ü»¿,—ˆ?<ì¿ä¤/tÿ¿Å�¼«Å�Bÿ—— �$’À£dt˜Àü�Ó;ü�ÁJG Sets the size limit, in bytes, to enforce on the construction of everyÁüÞÁ'$ NFA build by the meta regex engine.ÁŠÂ�ü’ÂGD Setting it to `None` disables the limit. This is not recommended ifÁüÞÂ(% you're compiling untrusted patterns.Á‹Ã�ü“ÃFC Note that this limit is applied to _each_ NFA built, and if any ofÁüÞÃGD them exceed the limit, then construction will fail. This limit doesÁüªÄKH _not_ correspond to the total memory used by all NFAs in the meta regexÁ\úÄ engine.ÁŠÅ�ü’ÅHE This defaults to some reasonable number that permits most reasonableÁlßÅ patterns.ÁñÅ�lùÅ•£/‹Æ�<“Æä¤/üŸÆ=ÔÂ/üáÆ$èë;ŠÇ�ü’Ç!¤ì;ü¸ÇFÐì;üƒÈI¡í;¼ÑÈôí;ìíÈ•î;�É�ü—ÉFC // But notice that building such a regex with the exact same limitÁüâÉGD // can succeed depending on other aspects of the configuration. ForÁü®ÊIF // example, a single *forward* NFA will (at time of writing) fit intoÁüüÊHE // the 20KB limit, but a *reverse* NFA of the same pattern will not.ÁüÉËIF // So if one configures a meta regex such that a reverse NFA is neverÁü—ÌJG // needed and thus never built, then the 20KB limit will be enough forÁÔæÌ // a pattern like \pL!Áü…Í!¤ì;ü«Í" .configure(Regex::config()ÁüÒÍ/, .nfa_size_limit(Some(20 * (1<<10)))Áü†ÎJG // The DFAs are the only thing that (currently) need a reverseÁüÕÎGD // NFA. So if both are disabled, the meta regex engine willÁü¡ÏIF // skip building the reverse NFA. Note that this isn't an APIÁüïÏJG // guarantee. A future semver compatible version may introduceÁü¾Ð/, // new use cases for a reverse NFA.ÁÔòÐ .hybrid(false)Á¼‘Ñ .dfa(false)ÁL­Ñ·¥8ü»ÑI¡í;¼‰Òôí;ä¥Ò assert!(result.is_ok());ÁÆÒ�üÎÒ.Ǭ/<�Óä¤/t”ÓÅ�ØÚÅ�Bÿ—— ž$£Óª¯,©ÓüôÝ?ü�Ô85 Sets the size limit, in bytes, for the one-pass DFA.ÁÊÔ�üÒÔC@ Setting it to `None` disables the limit. Disabling the limit isÁüšÕGD strongly discouraged when compiling untrusted patterns. Even if theÁüæÕKH patterns are trusted, it still may not be a good idea, since a one-passÁü¶ÖGD DFA can use a lot of memory. With that said, as the size of a regexÁü‚×DA increases, the likelihood of it being one-pass likely decreases.ÁË×�üÓ×HÇÇ?´ Ø one-pass patterns.Á»Ø�lÃØ•£/ÕØ�üÝØFC This shows how to set the one-pass DFA size limit. Note that sinceÁü¨ÙEB a one-pass DFA is an optional component of the meta regex engine,ÁüòÙHE this size limit only impacts what is built internally and will neverÁü¿Ú63 determine whether a `Regex` itself fails to build.ÁúÚ�<‚Ûä¤/üŽÛ=ÔÂ/üÐÛ$èë;ùÛ�ü�Ü!¤ì;ü§ÜIF .configure(Regex::config().onepass_size_limit(Some(2 * (1<<20))))ÁÔõÜ .build(r"\pL{5}");Áä”ÝîÒ?üµÝ.Ǭ/<èÝä¤/”ûÝÅ�ØÚÅ�Bÿ—— Ÿ$ŽÞª¯,”Þü¥í:üüÞ74 Set the cache capacity, in bytes, for the lazy DFA.Á¸ß�üÀßHE The cache capacity of the lazy DFA determines approximately how muchÁü�àHE heap memory it is allowed to use to store its state transitions. TheÁüÚàIF state transitions are computed at search time, and if the cache fillsÁü¨áGD up it, it is cleared. At this point, any previously generated stateÁüôáFC transitions are lost and are re-generated if they're needed again.Á¿â�üÇâHE This sort of cache filling and clearing works quite well _so long asÁü”ãKH cache clearing happens infrequently_. If it happens too often, then theÁüäãGD meta regex engine will stop using the lazy DFA and switch over to aÁܰä different regex engine.ÁÐä�üØäHE In cases where the cache is cleared too often, it may be possible toÁü¥åGD give the cache more space and reduce (or eliminate) how often it isÁüñåKH cleared. Similarly, sometimes a regex is so big that the lazy DFA isn'tÁüÁæ74 used at all if its cache capacity isn't big enough.Áýæ�ü…çFC The capacity set here is a _limit_ on how much memory is used. TheÁüÐç85 actual memory used is only allocated as it's needed.Á�è�ü•èKH Determining the right value for this is a little tricky and will likelyÁüåèKH required some profiling. Enabling the `logging` feature and setting theÁüµéHE log level to `trace` will also tell you how often the cache is beingÁd‚Ꚉ6“ê�l›ê•£/­ê�<µêä¤/üÁê=ÔÂ/üƒë$èë;¬ë�ü´ë!¤ì;üÚëGD .configure(Regex::config().hybrid_cache_capacity(20 * (1<<20)))ÁÔ¦ì¹Ü?äÅìîÒ?üæì.Ǭ/<™íä¤/¬¬íÅ�Å�Bÿ——  $Âíª¯,Èíüûþ;ü«îC@ Sets the size limit, in bytes, for heap memory used for a fullyÁŒóî compiled DFA.Á‰ï�ü‘ïGD **NOTE:** If you increase this, you'll likely also need to increaseÁüÝï  [`Config::dfa_state_limit`].Á‚ð�üŠðGD In contrast to the lazy DFA, building a full DFA requires computingÁüÖðGD all of its state transitions up front. This can be a very expensiveÁü¢ñFC process, and runs in worst case `2^n` time and space (where `n` isÁüíñGD proportional to the size of the regex). However, a full DFA unlocksÁü¹ò/, some additional optimization opportunities.Áíò�üõòJG Because full DFAs can be so expensive, the default limits for them areÁüÄóIF incredibly small. Generally speaking, if your regex is moderately bigÁü’ôIF or if you're using Unicode features (`\w` is Unicode-aware by defaultÁüàôKH for example), then you can expect that the meta regex engine won't evenÁü°õ" attempt to build a DFA for it.Á×õ�üßõGD If this and [`Config::dfa_state_limit`] are set to `None`, then theÁü«öGD meta regex will not use any sort of limits when deciding whether toÁü÷öB? build a DFA. This in turn makes construction of a `Regex` takeÁü¾÷IF worst case exponential time and space. Even short patterns can resultÁüŒøKH in huge space blow ups. So it is strongly recommended to keep some kindÁŒÜø of limit set!Áòø�üúøIF The default is set to a small number that permits some simple regexesÁüÈù1. to get compiled into DFAs in reasonable time.Áþù�l†ú•£/˜ú�< úä¤/ü¬ú=ÔÂ/üîú$èë;—û�üŸû!¤ì;üÅû1. // 100MB is much bigger than the default.Áüûû"ŽÎ?ü¢ü0- .dfa_size_limit(Some(100 * (1<<20)))Áü×ü>; // We don't care about size too much here, so justÁüšý52 // remove the NFA state limit altogether.ÁüÔý# .dfa_state_limit(None))ÁÔüý¹Ü?ä›þîÒ?ü¼þ.Ǭ/<ïþä¤/t‚ÿÅ�ØÚÅ�Bÿ—— ¡$‘ÿª¯,—ÿüà‰<üûÿHE Sets a limit on the total number of NFA states, beyond which, a fullÁüÈ€(% DFA is not attempted to be compiled.Áõ€�üý€HE This limit works in concert with [`Config::dfa_size_limit`]. Namely,ÁüÊ�KH where as `Config::dfa_size_limit` is applied by attempting to constructÁüš‚KH a DFA, this limit is used to avoid the attempt in the first place. ThisÁüê‚JG is useful to avoid hefty initialization costs associated with buildingÁü¹ƒKH a DFA for cases where it is obvious the DFA will ultimately be too big.Á‰„�ü‘„30 By default, this is set to a very small number.ÁÉ„�lÑ„•£/ã„�<ë„ä¤/ü÷„=ÔÂ/ü¹…$èë;â…�üê…!¤ì;ü�†"ŽÎ?ü·†B? // Sometimes the default state limit rejects DFAs evenÁüþ†DA // if they would fit in the size limit. Here, we disableÁüLJEB // the check on the number of NFA states and just rely onÁô‘ˆ // the size limit.Áü´ˆ#²ü?ü܈ .build(r"(?-u)\w{30}");Á䀉îÒ?ü¡‰.Ǭ/<Ô‰ä¤/|ç‰Å�ØÚÅ�Bÿ—— ¢$÷‰ª¯,ý‰ü¤”.üâŠGD Whether to attempt to shrink the size of the alphabet for the regexÁü®‹FC pattern or not. When enabled, the alphabet is shrunk into a set ofÁüù‹GD equivalence classes, where every byte in the same equivalence classÁüÅŒ52 cannot discriminate between a match or non-match.ÁÿŒ�ü‡�GŸ¸/üÓ�HE does not yield any speed advantages. Indeed, disabling it can resultÁü ŽEB in much higher memory usage. Disabling byte classes is useful forÁüêŽJG debugging the actual generated transitions because it lets one see theÁü¹�KH transitions defined on actual bytes instead of the equivalence classes.Á‰��ü‘�I±®/üß�74 one is debugging the meta regex engine's internals.Á›‘�l£‘•£/µ‘�<½‘ä¤/üÉ‘-ÕÉ;û‘�샒àÇ9ü¥’74 .configure(Regex::config().byte_classes(false))ÁÜá’óÝ7Ì�“ let hay = "!!quux!!";ÁüŸ“96 assert_eq!(Some(Match::must(0, 2..6)), re.find(hay));ÁÝ“�üå“.Ǭ/<˜”ä¤/d«”Å�Å�Bÿ—— £$¸”ê¾”üÒž0ü“•DA Set the line terminator to be used by the `^` and `$` anchors inÁ¤Ü• multi-line mode.Áõ•�üý•A> This option has no effect when CRLF mode is enabled. That is,ÁüÖIF regardless of this setting, `(?Rm:^)` and `(?Rm:$)` will always treatÁü‘—JG `\r` and `\n` as line terminators (and will never match between a `\r`Á„à— and a `\n`).Áõ—�üý—,) By default, `\n` is the line terminator.Á®˜�ü¶˜FC **Warning**: This does not change the behavior of `.`. To do that,Áü�™.+ you'll need to configure the syntax optionÁü´™UR [`syntax::Config::line_terminator`](crate::util::syntax::Config::line_terminator)ÁüŽšB? in addition to this. Otherwise, `.` will continue to match anyÁôÕš character other than `\n`.Áøš�l€›•£/’›�<š›ä¤/ü¦›;Áå;æ›�ìî›àÇ9ü�œ7õñ;üÌœ<·ò;Ô��ýò;ä¬�¡ó;üÍ�9Èó;‹ž�ü“ž.Ǭ/<Æžä¤/|ÙžÅ�Å�Bÿ—— ¤$éž—»$ïžüà¢5üÇŸFC Sets the capacity used to manage a pool of [`Cache`] values in theÁü’ " higher level convenience APIs.Á¹ �üÁ HE When not configured explicitly, a reasonable default is selected. ItÁüŽ¡JG is rarely expected that a number large than the number of logical CPUsÁüÝ¡IF makes sense as a value. A smaller number could result in slowdowns ifÁü«¢0- many regex queries are run under contention.Álç¢Å�Å�Bÿ—— ¥$õ¢ïŒDû¢üœ¨(üÜ£KH Toggle whether the hybrid NFA/DFA (also known as the "lazy DFA") shouldÁü¬¤2/ be available for use by the meta regex engine.Áã¤�üë¤B? Enabling this does not necessarily mean that the lazy DFA willÁü²¥IF definitely be used. It just means that it will be _available_ for useÁü€¦63 if the meta regex engine thinks it will be useful.Á»¦�üæGD When the `hybrid` crate feature is enabled, then this is enabled byÁü�§FC default. Otherwise, if the crate feature is disabled, then this isÁüÚ§=: always disabled, regardless of its setting by the caller.Á4£¨Å�Å�Bÿ—— ¦$ª¨ê°¨üž­%üÿ¨JG Toggle whether a fully compiled DFA should be available for use by theÁ´Î© meta regex engine.Áé©�üñ©IF Enabling this does not necessarily mean that a DFA will definitely beÁü¿ªGD used. It just means that it will be _available_ for use if the metaÁü‹«*' regex engine thinks it will be useful.Áº«�ü«JG When the `dfa-build` crate feature is enabled, then this is enabled byÁü‘¬Fš¡@üܬ=ë¡@¥­Å�Å�Bÿ—— §$©­ê¯­ü¼³)üû­IF Toggle whether a one-pass DFA should be available for use by the metaÁŒÉ®Þ¨>ß®�üç®DA Enabling this does not necessarily mean that a one-pass DFA willÁü°¯EB definitely be used. It just means that it will be _available_ forÁüú¯EB use if the meta regex engine thinks it will be useful. (Indeed, aÁüİEB one-pass DFA can only be used when the regex is one-pass. See theÁüޱC@ [`dfa::onepass`](crate::dfa::onepass) module for more details.)ÁÖ±�üÞ±IF When the `dfa-onepass` crate feature is enabled, then this is enabledÁü¬²IF by default. Otherwise, if the crate feature is disabled, then this isÁüú²=ë¡@<óÅ�Å�Bÿ—— ¨$˳êѳüã¸+ü¡´JG Toggle whether a bounded backtracking regex engine should be availableÁüð´%" for use by the meta regex engine.Ášµ�ü¢µKH Enabling this does not necessarily mean that a bounded backtracker willÁüòµI¦Ÿ@üÀ¶6úŸ@û¶�üƒ·KH When the `nfa-backtrack` crate feature is enabled, then this is enabledÁüÓ·I‹¬@ü¡¸=ë¡@Lê¸Å�Å�Bÿ—— ©$ô¸êú¸üüº)ü̹;8 Returns the match kind on this configuration, as set byÁÜŒº [`Config::match_kind`].Á¬º�ü´ºC@ If it was not explicitly set, then a default value is returned.Átƒ»¼3 ¼3Å�ù¦Bÿ— ’»— ª$“»ü´½$üï»IF Returns whether empty matches must fall on valid UTF-8 boundaries, asÁü½¼" set by [`Config::utf8_empty`].Áä¼�üì¼C‹²@t»½½3 ½3Å�Bÿ— ʽ— «$˽üÆ¿(ü޾?< Returns whether automatic prefilters are enabled, as set byÁüÒ¾ [`Config::auto_prefilter`].Áö¾�üþ¾C‹²@”Í¿¾3 ¾3Å�Bÿ— à¿— ¬$á¿üÌÁ1ü¡À74 Returns a manually set prefilter, if one was set byÁÔÝÀ [`Config::prefilter`].ÁüÀ�ü„ÁC‹²@lÓÁ¿3 ¿3Å�řǙș­É™Ê™àË™óG*¤�R{9  ¿3äüBÿ— áÁ— ­$âÁüèÃ1ü¿Â0- Returns the capture configuration, as set byÁüô [`Config::which_captures`].Á˜Ã�ü ÃC‹²@”ïÃÀ3 À3Å�¼«Bÿ— ‚Ä— ®$ƒÄü÷Å1üáÄA> Returns NFA size limit, as set by [`Config::nfa_size_limit`].Á§Å�ü¯ÅC‹²@”þÅÁ3 Á3Å�ØÚBÿ— ‘Æ— ¯$’Æü�È5üòÆ.+ Returns one-pass DFA size limit, as set byÁü¥Ç# [`Config::onepass_size_limit`].ÁÍÇ�üÕÇC‹²@´¤ÈÂ3 Â3Å�ØÚBÿ— »È— °$¼ÈüÓÊ0üŸÉ41 Returns hybrid NFA/DFA cache capacity, as set byÁüØÉ&# [`Config::hybrid_cache_capacity`].ÁƒÊ�ü‹ÊC‹²@ÌÚÊÃ3 Ã3Å�Bÿ— ôÊ— ±$õÊüãÌ1üÍËA> Returns DFA size limit, as set by [`Config::dfa_size_limit`].Á“Ì�ü›ÌC‹²@”êÌÄ3 Ä3Å�ØÚBÿ— ýÌ— ²$þÌüûØ2ü°×JG Returns DFA size limit in terms of the number of states in the NFA, asÁüÿ×'$ set by [`Config::dfa_state_limit`].Á«Ø�ü³ØC‹²@œ‚ÙÅ3 Å3Å�ØÚBÿ— –Ù— ³$—ÙüÝÛ&ü¯Ú74 Returns whether byte classes are enabled, as set byÁìëÚ [`Config::byte_classes`].Á�Û�ü•ÛC‹²@„äÛÆ3 Æ3Å�Bÿ— õÛ— ´$öÛüöÝ'ü»ÜA> Returns the line terminator for this configuration, as set byÁü�Ý  [`Config::line_terminator`].Á¦Ý�ü®ÝC‹²@œýÝÇ3 Ç3Å�Bÿ— ‘Þ— µ$’Þü„à(üÙÞ30 Returns the configured pool capacity, as set byÁô‘ß [`Config::pool_capacity`].Á´ß�ü¼ßC‹²@Œ‹àÈ3 È3Å�Bÿ— �à—ŸÃ$žàü’â"¬˜âÛåâ¶�¸�¸�¸¸¶¸Uÿ¼°ã$ÃãüÚã)¬áãÛ  ¡�Ñ¤óž ø¥c õ8TzBÿÃÉ�äº�»�»�»»º»ÉÊ@ëäº�¼�¼�¼¼º¼’‰$üÃè üˆçJG Returns whether the hybrid NFA/DFA regex engine may be used, as set byÁ¼×ç [`Config::hybrid`].Áóç�üûçC‹²@TÊèÉ3 É3Å�Bÿ— Õè— ½$ÖèìËëüžê?< Returns whether the DFA regex engine may be used, as set byÁ¤âê [`Config::dfa`].Áûê�üƒëC‹²@<ÒëÊ3 Ê3Å�Bÿ— Úë— ¾$Ûëüàî!ü¦íHE Returns whether the one-pass DFA regex engine may be used, as set byÁÄóí [`Config::onepass`].Á�î�ü˜îC‹²@\çîË3 Ë3Å�Bÿ— óî— ¿$ôîü‹ò#üÇðIF Returns whether the bounded backtracking regex engine may be used, asÁü•ñ! set by [`Config::backtrack`].Á»ñ�üÃñC‹²@l’òÌ3 Ì3Å�Bÿ—  ò— À$¡òü¦÷;”´÷Í3 Í3Å�±ªBÿ— Ç÷— Á$È÷üçü3LõüÎ3 Î3Å�Å�Å�Bÿ— ÿü— Â$€ý¥ †ýòþÂ�Ã�Ã�ÃÃÂÃÞé8ìà dò¢Ó‘ÅÆÇÌÍÑҼѣü…£GD Creates a new builder for configuring and constructing a [`Regex`].ÁØ£Ó‘BÿÄÄ ÅüÒª?ü§¥2/ Builds a `Regex` from a single pattern string.ÁÞ¥�üæ¥K•Ç;ü¶¦/êÇ;ê¦�lò¦•£/„§�üŒ§74 This example shows how to configure syntax options.Áȧ�<Чä¤/üܧ;Áå;œ¨�줨àÇ9üƨB? .syntax(syntax::Config::new().crlf(true).multi_line(true))ÁÔ�©ýò;䬩ÉÊ;üÍ©9ïÊ;‹ª�ü“ª.Ǭ/<ƪä¤/,ÙªÓ3Ô3 Ó3Ó‘ Ô3Œö BÿÄ ߪÄ Æ$àªîN<æªü”µküë/, Builds a `Regex` from many pattern strings.Á÷«�üÿ«K‘Í;üϬ9æÍ;�­�ü•­7½à;Ñ­�üÙ­CŠá;ä¡®Öá;®�<Ê®ä¤/üÖ®1ëý:Œ¯�ô”¯ let err = Regex::builder()Áü·¯1. .build_many(&["a", "b", r"\p{Foo}", "c"])Á´í¯ˆÅ/üˆ°8…ÿ:<Űä¤/Ѱ�üÙ°%äâ;ƒ±�ü‹±EŸã;üÕ±Gîã;ü¡²G¿ä;|í²�å;�³�<‰³ä¤/ü•³;Áå;Õ³�ìݳàÇ9üÿ³" .build_many::<&str>(&[])?;Áü¦´"Éæ;Í´�üÕ´.Ǭ/<ˆµä¤/T›µÕ3Ö3 Õ3Ó‘ Ö3©òŒö BÿÄŒÈÈ ¾µÄŸÛ/ ¦µ°Û/T©µšõ $¿µ¨ ×Ñ"$ü޶)„§¶,»¾Ç�Ê�Ê�ÊÊÇò�,ûÀÇ�Ë�Ë�ËËÇÔœü£ÍDü÷Á74 Builds a `Regex` directly from an `Hir` expression.Á³Â�ü»ÂHE This is useful if you needed to parse a pattern string into an `Hir`ÁüˆÃIF for other reasons (such as analysis or transformations). This routineÁüÖÃIF permits building a `Regex` directly from the `Hir` expression insteadÁü¤Ä;8 of first converting the `Hir` back to a pattern string.ÁäÄ�üìÄGD When using this method, any options set via [`Builder::syntax`] areÁü¸ÅIF ignored. Namely, the syntax options only apply when parsing a patternÁü†Æ&# string, which isn't relevant here.Á±Æ�ü¹ÆHE If there was a problem building the underlying regex matcher for theÁü†Ç+( given `Hir`, then an error is returned.Á¶Ç�l¾Ç•£/ÐÇ�üØÇIF This example shows how one can hand-construct an `Hir` expression andÁü¦È;8 build a regex from it without doing any parsing at all.ÁæÈ�<îÈä¤/LúÈ use {ÁüˆÉ-* regex_automata::{meta::Regex, Match},ÁüºÉ'$ regex_syntax::hir::{Hir, Look},Á4æÉÝ¥/ñÉ�ŒùÉ // (?Rm)^foo$Áü�Ê let hir = Hir::concat(vec![Áü³Ê# Hir::look(Look::StartCRLF),ÁüÛÊ'$ Hir::literal("foo".as_bytes()),Áü‡Ë! Hir::look(Look::EndCRLF),Á<­ËÓó9ì¹ËàÇ9üÛË .build_from_hir(&hir)?;ÁäÿËÉÊ;ü Ì9ïÊ;ÞÌ�üæÌ,—ˆ?<—Íä¤/tªÍ×3Ø3 ×3Ó‘ Ø3–‡Œö BÿÄ ¹ÍÄ Ì$ºÍ¤OÀÍüÔßqüžÎ:7 Builds a `Regex` directly from many `Hir` expressions.ÁÝÎ�üåÎDA This is useful if you needed to parse pattern strings into `Hir`Áü®ÏHE expressions for other reasons (such as analysis or transformations).ÁüûÏC@ This routine permits building a `Regex` directly from the `Hir`ÁüÃÐIF expressions instead of first converting the `Hir` expressions back toÁ¤‘Ñ pattern strings.ÁªÑ�ü²ÑGšæ@üþÑIìæ@üÌÒ&Àç@÷Ò�üÿÒHþç@üÌÓ74 given `Hir` expressions, then an error is returned.ÁˆÔ�ü�ÔEB Note that unlike [`Builder::build_many`], this can only fail as aÁüÚÔEB result of building the underlying matcher. In that case, there isÁü¤ÕGD no single `Hir` expression that can be isolated as a reason for theÁüðÕKH failure. So if this routine fails, it's not possible to determine whichÁüÀÖ(% `Hir` expression caused the failure.ÁíÖ�lõÖ•£/‡×�ü�×@= This example shows how one can hand-construct multiple `Hir`ÁüÔ×DA expressions and build a single regex from them without doing anyÁœ�Ø parsing at all.ÁµØ�<½Øä¤/LÉØãê@üר-÷ê@ü‰Ù'¯ë@4µÙÝ¥/ÀÙ�ŒÈÙûë@üÞÙ  let hir1 = Hir::concat(vec![ÁüƒÚ#Áì@ü«Ú'ïì@ü×Ú!¡í@<ýÚÓó9Œ‰Û // (?Rm)^bar$ÁüŸÛ  let hir2 = Hir::concat(vec![ÁüÄÛ#Áì@üìÛ'$ Hir::literal("bar".as_bytes()),Áü˜Ü!¡í@<¾ÜÓó9ìÊÜàÇ9üìÜ/, .build_many_from_hir(&[&hir1, &hir2])?;Áü Ý let hay = "\r\nfoo\r\nbar";ÁüÄÝ63 let got: Vec = re.find_iter(hay).collect();ÁÄÿÝçü3ìœÞ Match::must(0, 2..5),Áô¾Þ Match::must(1, 7..10),Á4áÞÙý3ôìÞ—‘3�ß�ü—ß,—ˆ?<Èßä¤/œÛßÙ3Ú3 Ù3Ó‘ Ú3œÊŒö BÿÄ„ÎÎ ˆàÄþÆ�¹ ïßÍ�¹–‡\òß Í�¹$‰à¡¯¢ä46,ÐâÍ�Ï�Ï�ÏÏÍ©º<ÃäÍ�Ð�Ð�ÐÐÍ­ÂüŠñ;üƒæ(% Configure the behavior of a `Regex`.Á°æ�ü¸æJG This configuration controls non-syntax options related to the behaviorÁü‡çKH of a `Regex`. This includes things like whether empty matches can splitÁü×çHE a codepoint, prefilters, line terminators and a long list of optionsÁü¤èJG for configuring which regex engines the meta regex engine will be ableÁ´óè to use internally.ÁŽé�l–é•£/¨é�ü°éHE This example shows how to disable UTF-8 empty mode. This will permitÁüýéEB empty matches to occur between the UTF-8 encoding of a codepoint.ÁÇê�<Ïêä¤/üÛê-ÕÉ;�ë�ì•ëÕƒ?ü·ë8ýƒ?üôëBÀ„?Ì»ìŽÄ<ìÙìš…?ìûìÁ…?<�íÓó9©í�ì±íàÇ9üÓí5·�<¤�î †?ü¦î8ýƒ?üãî+Ά?Ì“ïŽÄ<ì±ïš…?ìÓ?ìõïƇ?ì—ðÁ…?<¹ðÓó9Åð�üÍð,—ˆ?<þðä¤/L‘ñÛ3 Û3Ó‘Å�­ŠABÿÄ ›ñÄ Ñ$ ñÉ4¦ñü‚ødü•òDA Configure the syntax options when parsing a pattern string whileÁ¼Þò building a `Regex`.Áúò�ü‚óQN These options _only_ apply when [`Builder::build`] or [`Builder::build_many`]ÁüØóEB are used. The other build methods accept `Hir` values, which haveÁÄ¢ô already been parsed.Á¿ô�lÇô•£/Ùô�üáô;8 This example shows how to enable case insensitive mode.Á¡õ�<©õä¤/üµõ;Áå;õõ�ìýõàÇ9üŸö=: .syntax(syntax::Config::new().case_insensitive(true))Á¼áö .build(r"δ")?;Áüýö;8 assert_eq!(Some(Match::must(0, 0..2)), re.find(r"Δ"));Á½÷�üÅ÷,—ˆ?<ö÷ä¤/4‰øÜ3 Ü3Ó‘Ý’é�ABÿÄ ™øÄ Ò$žøÉ4¬øŒ´6l¸6êàäåç×üï!…CÓÔ¤O$’!ãÓÖÐ$¦!¼ÓØ•ƒ<¬!ŸÓÙ †º!¶ÓÚÿ¡;<¿!ÀÓÛ¹R4Þ!¹ÓÝé›L÷!ü(ÓÞÓ¿L‚!º-Óß|ã!ÆŒù!·‡!üù*!­<œ!�Ÿ‹�y{,Ð!dØ!pÔæ!`LNü»`!¤É!êÝ3Þ3 Ý3–‡ Þ3¸Ç&Bÿ ò! à concat_prefixÁlã!÷ÉDü!,Š!à�á�á�ááàáµ²;œ¶)!¬’ãüÐ):!Þ)!â3ã3 â3 ã3–‡Å™Ç™È™­É™Ê™àË™óG*¤�R{9 ¬’Bÿâ è)!â 㡯$â)!üõCJ!¼øC!Óä3 ä3–‡Å™Ç™È™­É™Ê™àË™óG*¤�R{9 äü¯ÕBÿ •D! ä¤O�D!üÂR0!TÅR!Óå3 å3–‡Å™Ç™È™­É™Ê™àË™óG*¤�R{9 ÒˆBÿ ÙR! å¤OÔR!˜Y!å�æ�æ�ææåæõ¤;–‡Uÿäì`!<ï`!Óæ3 æ3–‡–‡Bÿ ü`! ç¤O÷`!íe!ç�è�è�èèçèÙ™AÝf!ç�é�é�ééçéÙ™A”Ç6tË6êòóôõüN…Cê땃œž/üÜH¤êêç3è3é3 ç3 è3–‡ é3ÈšBÿ … ò¡¯$ÿsuffixÁ4Žü³@¤¶êê3ë3 ê3–‡ ë3ȚřǙș­É™Ê™àË™óG*¤�R{9 –‡Bÿ Ð ó¤OË”�A4Öüûq¼þêì3í3 ì3–‡ í3ȚřǙș­É™Ê™àË™óG*¤�R{9 –‡Bÿ   ô¤O›”�A4ª suffix_cursorÁl½üü €üÿ êî3ï3 î3��á„‘ãó’maxÁ“greedyÁ”¤°°Ex jÑb ï3Èšš ABÿ ©! õrepÁ¤!”�A4º!Œ AlÍ!,À%õ�ö�ö�ööõöUÿT’6Ó� ¬å6Óª+”ü6üä+6üÛ664–6êýÿ–Ât´è÷ùáºLÄé,÷ú—,ÏÑ,÷ûÛÀTÖÌ-÷ü,ŸܧdPR<>')ü°$ÄÓª+”›$Ô•$Ô¾$ð3ñ3ò3ó3 ð3ïò ñ3ûó ò3Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²ó3Ï©Bÿ ã$ªÍÒÞ$óA,�%–`,¬%ç'ý�þ�þ�þþýþÓÆ:áÆ:üº;ÞÓª+”ð:Ôê:t½;÷ô3õ3ö3÷3ø3ù3 ô3ïò õ3ûó ö3Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²÷3 ø3°ÿ ù3Öá²×Bÿ Ö; ÿÒÑ;óA,ô;–`,Ÿ< Ø¶<†¸à<Õ>ÿ�€�€�€€ÿ€ÓÆ:áÆ:ýAÿ�������ÿ�ÓÆ:¤Ú dž6D¢6곿¢ Ýçó÷üq,Ÿg‚„q¢g‚„»;l(–š‚†ä»;T7•š‚‡p\¾‚‰formatÁ4a‚ŠKo„K‚‹Ð<޼‚� †—¶‚Ž�®TÇÉ‚’‹ÁTÓÚ‚“–Âtßè‚”áÁœïã‚•â«,•¬‚—ŸÃLœö‚˜ùjl°Ó‚™Çlt¿ê‚šÒyDÏ£ ‚›±$ô± ‚�ŒÞlú÷!‚ž”䮉¬#‚Ÿ�œãD®±&‚¢´…L¸Á&‚£Œ–\Ò­(‚¤þ9$󱂦é›Lùü(‚§õïT„Ä‚¨ñ�\¦ž)‚ª¦¡L³Ù)‚«žDЧ-‚­áºLÚé,‚®—,åÑ,‚¯ÕÛ,ìú,‚°Ó¿Lóº-‚±̼Tþ‹-‚²$Tÿü!ÞáÎÑ,L\TƯ²Li¥Œz—š‡Š,¢Œ¢ü¢"„‡twdgTWü¢pIL9<*- ü¢ÏDéô÷àãü¢õü¢‰ØÛÈˌ̼ü¢Î°L硤‘”ü¢�‡Šwzü¢«mp]`NQ>A.1!ü� YD¡ ê³³‰¥2ü� ¦œ¥2,¯ ýÆÊæ($· ÿ Êæ($¾ –šÊæ(lÅ •šÊæ(TÕ Êæ(<â ³‰¥2rœ¥2n”´Ac¥´AYµ´ANÆ´AC×´A>‰¥2œœ¥2˜”´A�¥´Aƒµ´AxÆ´Am×´Ah´µ¶·¸¹º»¼½¾´µ¶·¸¹º»¼½¾ ´»·¾º¶½¹µ¼¸üˆ $$‹ êú3 ú3Êæ(¾Á±âÃóÄÅÒâÆóÀ9cgˆ¸†MBÿ³ � ³ ´Êæ($‘ ü² #Tµ êû3 û3Êæ( û3ýÝBÿ³ À ³ µÊæ($Á üÛ dÞ êü3 ü3Êæ(ËŽBÿ³ ë ³ ¶Êæ($ì ü�)\„êý3þ3 ý3Êæ( þ3ËŽBÿ³ �³ ·Êæ($‘óA,—ü°!t³êÿ3 ÿ3Êæ(Bÿ³ ³ ¸Êæ($Ãü× dÚê€4 €4Êæ(Bÿ³ ç³ ¹Êæ($èüýH4€ê�4‚4ƒ4„4 �4Êæ( ‚4ËŽ ƒ4Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²„4³¶Bÿ³ ‡³ ºÊæ($ˆóA,Ž–`,¡üËp\Îê…4†4‡4ˆ4 …4Êæ( †4ËŽ ‡4Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²ˆ4ÖáBÿ³ ã³ »Êæ($äóA,ò–`,�üÁADÄê‰4Š4‹4Œ4 ‰4Êæ( Š4ËŽ ‹4Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Œ4Bÿ³ ͳ ¼Êæ($ÎóA,Ô–`,çüˆœd‹ê�4Ž4�4�4‘4 �4Êæ( Ž4ËŽ �4Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²�4 ‘4 ©€ªBÿ³ ¡³ ½Êæ($¢óA,°–`,Ë©&,æüªŠÌ­ê’4“4”4•4–4 ’4Êæ( “4ËŽ ”4Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²•4 –4¡£Bÿ³ г ¾Êæ($ÑóA,ß–`,úª§ 4•ü¸fÆê—4˜4™4 —4ñ‰ ˜4 ™4–‡ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw„K„KK‡Kí ä7ˆKÞüä7‰K«ä7ƒ¢3à6ú�³�þ©„Bÿ Õ;†Ã$Ï¡¯$åLü.¿�À�À�ÀÀ¿À±Ç&ÃÇ&Ô÷<ŒÂŸÛ/ ü<ĵ“Tÿ<ù’Ãü˜=#›=‚µ“ÆÆABÿÁÁ õ“ѶŸ=d’BÝÝ”ÊßѶ‚àÖ]‚ŸªjFÅN¥vÅÆüªHol­H‚ž4Ÿ4 ž4ñ‰ Ÿ4ÔÉ&řǙș­É™Ê™àË™óG*¤�R{9 ÆÆABÿÄ ÊHÄ Å†Ã$ÄH€ñDÞHüƒjq̆j‚ 4¡4¢4  4ñ‰ ¡4 ¢4–‡ÈÊABÿÄ ¯jÄ Æ†Ã$©j¡¯$Ãjüƒk#\›küôy'ŒÉÉŸÛ/ ùyÁÈATüyù’ÊËÌÍÎÏÐÓÕÖ×´µ¶·¸¹º»¼½¾ ÎÊÕÍÐÌ×ÓÏËÖ‰‹ü¢z#$¥zê£4 £4ù’à¶ABÿÈ ªzÈ Êµ“$«züÉ{"TÌ{ê¤4 ¤4ù’ ¤4ýÝBÿÈ ×{È Ëµ“$Ø{ü’|d•|ê¥4 ¥4ù’ËŽBÿÈ ¢|È Ìµ“$£|üµ)\¸ê¦4§4 ¦4ù’ §4ËŽBÿÈ ÄÈ Íµ“$Űëšõüç têê¨4 ¨4ù’BÿÈ ùÈ Îµ“$úü°€d³€ê©4 ©4ù’BÿÈ À€È ϵ“$Á€ü¶�H4¹�êª4«4¬4­4 ª4ù’ «4ËŽ ¬4Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²­4³¶BÿÈ À�È Ðµ“$Á�°ë;ú–`Fú$ïƒÐ�Ñ�Ñ�ÑÑлò$ø„Ð�Ò�Ò�ÒÒÐÇôüâ…o\å…ê®4¯4°4±4 ®4ù’ ¯4ËŽ °4Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²±4ÖáBÿÈ ú…È Óµ“$û…óA»ý–`Æýú†Ó�Ô�Ô�ÔÔÓ½ûüè‡@Dë‡ê²4³4´4µ4 ²4ù’ ³4ËŽ ´4Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²µ4BÿÈ ô‡È Õµ“$õ‡óAýÿ–`ü›‰›dž‰ê¶4·4¸4¹4º4 ¶4ù’ ·4ËŽ ¸4Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²¹4 º4 ©€ªBÿÈ ´‰È Öµ“$µ‰óA(–`3©&>ü•�‰̘�ê»4¼4½4¾4¿4 »4ù’ ¼4ËŽ ½4Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²¾4 ¿4¡£BÿÈ »�È ×µ“$¼�óAV–`aª§ lL¬‘Ø“ÙÚÛÜÝÞßü¼‘y¿‘‚Ã4Ä4ñ‰¹Å Ã4 Ä4–‡ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwØ“©„BÿØ ‹’Ø Ù†Ã$Ì‘Ѷå‘¡¯$…’üÇ´’”Ê´‚Å4Æ4Ç4È4 Å4Ø“ Æ4ËŽ Ç4Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²È4²£BÿØ æ´Ø…Ù$ç´óA’–`�üð¸mló¸‚É4Ê4Ë4Ì4 É4Ø“ Ê4ËŽ Ë4Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Ì4³¶BÿØ йØÞµ$‹¹óA,™¹–`,´¹üáÃv”äÂÍ4Î4Ï4Ð4 Í4Ø“ Î4ËŽ Ï4Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Ð4ÖáBÿØ €ÄØà¿$�ÄóA,�Ä–`,ªÄüúÇ¢œýÇ‚Ñ4Ò4Ó4Ô4Õ4 Ñ4Ø“ Ò4ËŽ Ó4Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Ô4 Õ4 ©€ªBÿØ šÈØÀØ$›ÈóA,©È–`,ÄÈ©&,ßÈü¥ÏG|¨Ï‚Ö4×4Ø4Ù4 Ö4Ø“ ×4ËŽ Ø4Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Ù4BÿØ ¸ÏظÊ$¹ÏóA,¿Ï–`,ÒÏüîÕ<ÄñÕ‚Ú4 Ú4Ø“BÿØ ŠÖضÓ$‹ÖÛÎL‘Ö´ôÖØ“áâãäåçêëìíî´µ¶·¸¹º»¼½¾ äëçãêîâíåáìü‘×#$”×êÛ4 Û4Ø“à¶ABÿà ™×à á$š×ü™Ø"TœØêÜ4 Ü4Ø“ Ü4ýÝBÿà §Øà â$¨Øü Ùd£ÙêÝ4 Ý4ؓˎBÿà °Ùà ã$±ÙüçÜ(\êÜêÞ4ß4 Þ4Ø“ ß4ËŽBÿà öÜà ä$÷ÜóA–üÍÞ tÐÞêà4 à4Ø“Bÿà ßÞà å$àÞ,˜ßå�æ�æ�ææåæŒØUÿü¸ßd»ßêá4 á4Ø“Bÿà Èßà ç$Éß,¥àç�è�è�èèçè¼ðAUÿ,’áç�é�é�ééçé�ùUÿüÀâG4Ãâêâ4ã4ä4å4 â4Ø“ ã4ËŽ ä4Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²å4³¶Bÿà Êâà ê$ËâóAï–`úü±ëo\´ëêæ4ç4è4é4 æ4Ø“ ç4ËŽ è4Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²é4ÖáBÿà Éëà ë$ÊëóAö!–`"ü‹õ@DŽõêê4ë4ì4í4 ê4Ø“ ë4ËŽ ì4Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²í4Bÿà —õà ì$˜õóA…'–`�'üûý›dþýêî4ï4ð4ñ4ò4 î4Ø“ ï4ËŽ ð4Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²ñ4 ò4 ©€ªBÿà ”þà í$•þóA0–`Š0©&•0üЕ‰ÌÓ•êó4ô4õ4ö4÷4 ó4Ø“ ô4ËŽ õ4Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²ö4 ÷4¡£Bÿà ö•à î$÷•óAë6–`ö6ª§ 7¤° ý”ðñüË 3Π‚Ø“ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwý”Ø“Bÿïï ðû$Ò ü�®˜ä“®‚û4ü4ý4þ4 û4ý” ü4ËŽ ý4Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²þ4«ÅBÿï ¹®ï¶ƒ$º®óA =–`=üºº!ý”óôõö÷øùúûüý´µ¶·¸¹º»¼½¾ úöýùõüøôû÷óüâº#$åºêÿ4 ÿ4ý”à¶ABÿò êºò ó$ëºüö»"Tù»ê€5 €5ý” €5ýÝBÿò „¼ò ô$…¼üþ¼d�½ê�5 �5ý”ËŽBÿò ޽ò õ$�½ü…¾(\ˆ¾ê‚5ƒ5 ‚5ý” ƒ5ËŽBÿò ”¾ò ö$•¾óA@üá¾ tä¾ê„5 „5ý”Bÿò ó¾ò ÷$ô¾üÛÀdÞÀê…5 …5ý”Bÿò ëÀò ø$ìÀüâÁG4åÁê†5‡5ˆ5‰5 †5ý” ‡5ËŽ ˆ5Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²‰5³¶Bÿò ìÁò ù$íÁóAÊC–`ÕCüàÆo\ãÆêŠ5‹5Œ5�5 Š5ý” ‹5ËŽ Œ5Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²�5ÖáBÿò øÆò ú$ùÆóAH–`%Hü²Ï@DµÏêŽ5�5�5‘5 Ž5ý” �5ËŽ �5Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²‘5Bÿò ¾Ïò û$¿ÏóAyK–`„KüÚÓ›dÝÓê’5“5”5•5–5 ’5ý” “5ËŽ ”5Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²•5 –5 ©€ªBÿò óÓò ü$ôÓóA„R–`�R©&šRüð݉ÌóÝê—5˜5™5š5›5 —5ý” ˜5ËŽ ™5Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²š5 ›5¡£Bÿò –Þò ý$—ÞóA�U–`˜Uª§ £U”¿â¾•ÿ� ‚ ƒ üØâ@Û₟5 5Ø“ Ÿ5  5–‡ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw¾•Ø“Bÿþ ñâþ ÿû$ß⡯$ëâëöÿ�€ �€ �€ € ÿ€ ¹ðAüñ†�¬ô†‚¡5¢5£5¤5 ¡5¾• ¢5ËŽ £5Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²¤5¾µBÿþ “‡þÍ×$”‡óAá]–`ì]üš��œ��‚¥5¦5§5¨5 ¥5¾• ¦5ËŽ §5Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²¨5«ÅBÿþ º�þ†Þ$»�óA)c–`4cüÁ•­ÜÄ•‚©5ª5«5¬5 ©5¾• ª5ËŽ «5Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²¬5¾µBÿþ é•þ÷´$ê•óA'g–`2g¡¿`Ast`->`Hir`->`NFA` process. * Parsing a string into an `Ast` gives it a structured representation. Crucially, the size and amount of work done in this step is proportional to the size of the original string. No optimization or Unicode handling is done at this point. This means that parsing into an `Ast` has very predictable costs. Moreover, an `Ast` can be round-tripped back to its original pattern string as written. * Translating an `Ast` into an `Hir` is a process by which the structured representation is simplified down to its most fundamental components. Translation deals with flags such as case insensitivity by converting things like `(?i:a)` to `[Aa]`. Translation is also where Unicode tables are consulted to resolve things like `\p{Emoji}` and `\p{Greek}`. It also flattens each character class, regardless of how deeply nested it is, into a single sequence of non-overlapping ranges. All the various literal forms are thrown out in favor of one common representation. Overall, the `Hir` is small enough to fit into your head and makes analysis and other tasks much simpler. * Compiling an `Hir` into an `NFA` formulates the regex into a finite state machine whose transitions are defined over bytes. For example, an `Hir` might have a Unicode character class corresponding to a sequence of ranges defined in terms of `char`. Compilation is then responsible for turning those ranges into a UTF-8 automaton. That is, an automaton that matches the UTF-8 encoding of just the codepoints specified by those ranges. Otherwise, the main job of an `NFA` is to serve as a byte-code of sorts for a virtual machine. It can be seen as a sequence of instructions for how to match a regex. ÁÓîÌCÄÜ9üÖ 9Dÿ9² ¯ é ó ‰ ³ Î ÅÊ“¨<¥:Ú!ˆ�®T¹:µ"‰’ï„Ø:ï#‹Øð\ê:Š$Œ·îŒ÷:ä#�´Ù,Š:Ã#Ž—¬T‘:ú#�䮥:¬#�÷ÞDâ:„"’ç4ì:ê!“ŒÞlô:÷!”Œÿ:ü€ û An NFA backed bounded backtracker for executing regex searches with capturing groups. This module provides a [`BoundedBacktracker`] that works by simulating an NFA using the classical backtracking algorithm with a twist: it avoids redoing work that it has done before and thereby avoids worst case exponential time. In exchange, it can only be used on "short" haystacks. Its advantage is that is can be faster than the [`PikeVM`](thompson::pikevm::PikeVM) in many cases because it does less book-keeping. ÁÓôÃBÌã:üÝ!:L‡:Í ® í ö ý „!‘!ž!¥!°!–Ž Ð=² ´ –² ´ ü˜ …C² µ ±$À ± ² ¸ �®TÆ µ"² ¹ ‰´Ù,Ò Ã#² º Žä®Ù ¬#² » �œãDý ±&² ½ Ø$,� ÿ² ¾ �$– «² ¿ é›L¯ ü(² À ñ�\Ï ž)²  ¦¡LÜ Ù)² à öžTç ±)² Ä µ¢<ó î)² Å žDŽ §-² Ç áºL˜ é,² È —,£ Ñ,² É ÕÛ,ª ú,² Ê ÛÀT± Ì-² Ë ú¹$½ Ú,² Ì ,† ÒÕD“ ´,£ Ô£ ªDµ ›ž‡Šsvü£D ”ó hVYGJ¤¤ ;ü£© .1!þü£è óõáãÐÒ¾À¬®šœüë B üÏ@ = Returns the minimum visited capacity for the given haystack.Á� �ü”M J This function can be used as the argument to [`Config::visited_capacity`]ÁüâJ G in order to guarantee that a backtracking search for the given `input`Áü­L I won't return an error when using a [`BoundedBacktracker`] built from theÁ„ú given `NFA`.Á‹ �ü� O L This routine exists primarily as a way to test that the bounded backtrackerÁüß M J works correctly when its capacity is set to the smallest possible amount.Áü­ O L Still, it may be useful in cases where you know you want to use the boundedÁüý H E backtracker for a specific input, and just need to know what visitedÁüÆ ( % capacity to provide to make it work.Áï �üó N K Be warned that this number could be quite large as it is multiplicative inÁü ( % the size the given NFA and haystack.Á¤ò ß7à7á7 ß7�» à7Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²á7Bÿ Œ Í ß'‡ –`,’ \² „ Ï Ð Ñ Ò Ó Õ ´ö üÄ- * Return a new default regex configuration.Áý „ BÿÎ Î Ï ü±$< ü´A „Ô6ú �ü‚F ÝÔ6üÍG ®Õ6ü™F €Ö6üäH ÑÖ6t± £×6Ä �üÌI É×6üšC �Ø6üâH ëØ6ü¯G ¾Ù6üûH �Ú6|È âÚ6Ü �üä# ÞÞ6Œ �l” •£/¦ �<® ä¤/̺ ô¤/üØ5 2 nfa::thompson::backtrack::BoundedBacktracker,Áü’# Þß6üº  Input, Match, MatchKind,Á4ß Ý¥/ê �üòH Öà6ü¿* ' let re = BoundedBacktracker::builder()Áüî? < .configure(BoundedBacktracker::config().prefilter(pre))Áü²$ òá6üÛ& Ê›0ü†. °â6|¹ ¡´0üÍ$ ! Some(Match::must(0, 5..11)),Áüö( % re.try_find(&mut cache, input)?,Á4£ ½µ0® �ü¶. Ǭ/<é ä¤/õ �üýF ¦ä6dÈ öä6Ù �<á ä¤/Ìí ô¤/ü‹5 ³ýCüÅ# Þß6üí$ Œà64– Ý¥/¡ �ü© H ýå6üö * ÑþCü¥!? …ÿCüé!$ òá6ü’"& Ê›0ü½". °â6üð": 7 // No match reported even though there clearly is one!Áü¯#6 3 assert_eq!(None, re.try_find(&mut cache, input)?);Áê# �üò#. Ǭ/<¥$ ä¤/L¸$ „ ¹Å „ BÿÎ Î Ð $Æ$ ѶÌ$ üã6< ü¦%8 5 Set the visited capacity used to bound backtracking.Áã% �üë%K H The visited capacity represents the amount of heap memory (in bytes) toÁü»&H E allocate toward tracking which parts of the backtracking search haveÁüˆ'I F been done before. The heap memory needed for any particular search isÁüÖ'F C proportional to `haystack.len() * nfa.states().len()`, which an beÁü¡(J G quite large. Therefore, the bounded backtracker is typically only ableÁüð(  to run on shorter haystacks.Á•) �ü�)E B For a given regex, increasing the visited capacity means that theÁüç)B ? maximum haystack length that can be searched is increased. TheÁü®*I F [`BoundedBacktracker::max_haystack_len`] method returns that maximum.Áü* �ü„+E B The default capacity is a reasonable but empirically chosen size.ÁÎ+ �lÖ+ •£/è+ �üð+J G As with other regex engines, Unicode is what tends to make the boundedÁü¿,G D backtracker less useful by making the maximum haystack length quiteÁü‹-K H small. If necessary, increasing the visited capacity using this routineÁüÛ-G D will increase the maximum haystack length at the cost of using moreÁ\§.  memory.Á·. �ü¿.D A Note though that the specific maximum values here are not an APIÁüˆ/H E guarantee. The default visited capacity is subject to change and notÁ´Õ/  covered by semver.Áð/ �<ø/ ä¤/ü„0= ÔÂ/üÆ0E B use regex_automata::nfa::thompson::backtrack::BoundedBacktracker;Á�1 �ü˜1G D // Unicode inflates the size of the underlying NFA quite a bit, andÁüä1I F // thus means that the backtracker can only handle smaller haystacks,Áü²2< 9 // assuming that the visited capacity remains unchanged.Áüó2. + let re = BoundedBacktracker::new(r"\w+")?;Áü¦3, ) assert!(re.max_haystack_len() <= 7_000);Áü×3K H // But we can increase the visited capacity to handle bigger haystacks!Áü§4* ÑþCüÖ4H E .configure(BoundedBacktracker::config().visited_capacity(1<<20))ÁÄ£5  .build(r"\w+")?;ÁüÀ5- * assert!(re.max_haystack_len() >= 25_000);Áüò5- * assert!(re.max_haystack_len() <= 28_000);Áü¤6. Ǭ/<×6 ä¤/„ê6 „ „ BÿÎ Î Ñ $ÿ6 ïŒD…7 ü²81 üê7C öÆ8l¹8 æ7 æ7„ Å™Ç™È™­É™Ê™àË™óG*¤�R{9  æ7äüBÿÎ  Ç8 Î Ò $È8 üÆ:+ ü¥9, ) Returns the configured visited capacity.ÁÖ9 �üÞ9F C Note that the actual capacity used may be slightly bigger than theÁÄ©:  configured capacity.Á¤Í: ç7 ç7„ BÿÎ  â: Î ¥¶$ã: ¤ü: <‚; ² üè=3 Lö= è7 è7„ „ „ BÿÎ  €> Î Õ $�> ¥ ‡> Î> Õ �Ö �Ö �Ö Ö Õ Ö Þé8â–dÇQ Þ Ø Ù Ú Ü Ý Þ ß ¼ªR üÚQK H Create a new BoundedBacktracker builder with its default configuration.Á±R Þ Bÿ× × Ø ü²Uc üêS8 5 Build a `BoundedBacktracker` from the given pattern.Á§T �ü¯TJ „Ö/„þT ×Ö/Óí”™U Ô“U ,¹U í7î7 í7Þ  î7ò§Bÿ×  ÈU × Ù $ÉU îN<×U ü¤Wx üÇV9 6 Build a `BoundedBacktracker` from the given patterns.ÁÓ픋W Ô…W T«W ï7ð7 ï7Þ  ð7©òò§Bÿ× ŒÛ Û  ÎW × ŸÛ/ ¶W °Û/T¹W Á²$ÏW ¨ ¡!ü‹[g ü‚Y7 4 Build a `BoundedBacktracker` directly from its NFA.Á¾Y �üÆYK H Note that when using this method, any configuration that applies to theÁü–ZK H construction of the NFA itself will of course be ignored, since the NFAÁüæZ  given here is already built.Át’[ ñ7 ñ7Þ �»ò§Bÿ×  ª[ × Ò¦$«[ ß'¹[ üã]; ü‡]F C Apply the given `BoundedBacktracker` configuration options to thisÁdÒ] builder.ÁLê] ò7 ò7Þ „ ƦDBÿ×  ô] × Ý $ù] É4ÿ] üàad üî^7 ÷â/üª_4 ¹ã/ã_ �üë_J …ä/tº` Ùä/Í` �üÕ`F C These settings only apply when constructing a `BoundedBacktracker`Áä a  directly from a pattern.ÁÓí”Ça ÔÁa 4ça ó7 ó7Þ Ý’ý¨DBÿ×  ÷a × Þ $üa É4Šb ü–fD ü…c= åæ/üÇc< ­ç/ˆd �ü�dG D This permits setting things like if additional time should be spentÁüÜd"  shrinking the size of the NFA.Áƒe �ü‹eF à¦DäÖe ¯§DÓí”ýe Ô÷e D�f ô7 ô7Þ ±ª¼«DBÿ×  ¦f × ß $«f É4±f ¼ó† «¡á â ä å æ ç è é ê ë ì í î ï ü’�C ü‘‡J žõ/üà‡2 / return the corresponding `BoundedBacktracker`.Á—ˆ �üŸˆH µö/üìˆ ˆ÷/�‰ �l˜‰ •£/ª‰ �<²‰ ä¤/̾‰ ô¤/ü܉5 ³ýCt–Š ·„04©Š Ý¥/´Š �ü¼Š6 3 let re = BoundedBacktracker::new("foo[0-9]+bar")?;Áü÷Š& Ê›0|¢‹ ¡´0ü¶‹( % Some(Ok(Match::must(0, 3..14))),Áüã‹A > re.try_find_iter(&mut cache, "zzzfoo12345barzzz").next(),Á4©Œ ½µ0ü´Œ. Ǭ/<çŒ ä¤/Óí”ùŒ ÔóŒ ™� ù7 ù7ò§Bÿà  ¦� à á îN<�� ü˜–g ü˜ŽI åú/üæŽ8 ¹û/£� �l«� •£/½� �<Å� ä¤/ÌÑ� ô¤/üï�5 ³ýCt©� ·„04¼� Ý¥/Ç� �üÏ�B ? let re = BoundedBacktracker::new_many(&["[a-z]+", "[0-9]+"])?;Áü–‘& Ê›0Á‘ �üÉ‘G D let mut it = re.try_find_iter(&mut cache, "abc 1 foo 4567 0 quux");Áü•’: 7 assert_eq!(Some(Ok(Match::must(0, 0..3))), it.next());ÁüÔ’: 7 assert_eq!(Some(Ok(Match::must(1, 4..5))), it.next());Áü““: 7 assert_eq!(Some(Ok(Match::must(0, 6..9))), it.next());ÁüÒ“< 9 assert_eq!(Some(Ok(Match::must(1, 10..14))), it.next());Áü“”< 9 assert_eq!(Some(Ok(Match::must(1, 15..16))), it.next());ÁüÔ”< 9 assert_eq!(Some(Ok(Match::must(0, 17..21))), it.next());Áü•• éÃ9üº•. Ǭ/<í• ä¤/Óí”ÿ• Ôù• DŸ– ú7 ú7©òò§Bÿà Œã ã  Ê– à ŸÛ/ ¨– °Û/T«– â µ“¨ C "üê G lÈ— •£/Ú— �üâ—E ª‚0ü¬˜G D compile an NFA from it and build a BoundedBacktracker from the NFA.Áø˜ �<€™ ä¤/ÌŒ™ ô¤/üª™< 9 nfa::thompson::{NFA, backtrack::BoundedBacktracker},Átë™ ·„04þ™ Ý¥/ü‰šE Þ„0Óš �üÛš; »…0ü››) �†0üÉ›) µ†0ü÷›) é†0ü¥œ) �‡0LÓœ Ї0ᜠ�üéœ; ñ‡0ü©�F ·ˆ0ô� �üü�4 1 let re = BoundedBacktracker::new_from_nfa(nfa)?;ÁüµžJ œ§/ü„Ÿ. + let expected = Some(Match::must(0, 3..4));Áü·Ÿ7 4 re.try_captures(&mut cache, "!@#A#@!", &mut caps)?;ÁüóŸ+ ÄŠ0£  �ü« . Ǭ/<Þ  ä¤/dñ  �»ò§Bÿà à ä ß'þ  üÙ¦? üù¡? < Create a new `BoundedBacktracker` that matches every input.Á½¢ �lÅ¢ •£/×¢ �<ߢ ä¤/Ìë¢ ô¤/ü‰£5 ³ýCtã ·„04Ö£ Ý¥/ᣠ�üé£1 . let re = BoundedBacktracker::always_match()?;ÁüŸ¤& Ê›0ʤ �üÒ¤2 / let expected = Some(Ok(Match::must(0, 0..0)));Áü‰¥B ? assert_eq!(expected, re.try_find_iter(&mut cache, "").next());ÁüÐ¥E B assert_eq!(expected, re.try_find_iter(&mut cache, "foo").next());Áüš¦. Ǭ/<ͦ ä¤/dঠò§Bÿà à å üý«> ü…¨C @ Create a new `BoundedBacktracker` that never matches any input.Áͨ �lÕ¨ •£/ç¨ �<ï¨ ä¤/üû¨E ×�DÅ© �üÍ©0 - let re = BoundedBacktracker::never_match()?;Áü‚ª& Ê›0­ª �üµª> ; assert_eq!(None, re.try_find_iter(&mut cache, "").next());ÁüøªA > assert_eq!(None, re.try_find_iter(&mut cache, "foo").next());Áü¾«. Ǭ/<ñ« ä¤/\„¬ ò§Bÿà à æ Ì�¹ ü§­> ; Return a default configuration for a `BoundedBacktracker`.Áê­ �üò­I É”0üÀ®E B type when customizing the construction of a `BoundedBacktracker`.ÁН �l’¯ •£/¤¯ �ü¬¯D A This example shows how to disable UTF-8 mode. When UTF-8 mode isÁüõ¯D A disabled, zero-width matches that split a codepoint are allowed.Áü¾°& # Otherwise they are never reported.Áé° �üñ°G D In the code below, notice that `""` is permitted to match positionsÁü½±+ ( that split the encoding of a codepoint.Áí± �<õ± ä¤/Ì�² ô¤/üŸ²= : nfa::thompson::{self, backtrack::BoundedBacktracker},Átá² ·„04ô² Ý¥/ÿ² �ü‡³* ÑþCü¶³6 ¥£0¬ñ³ Ëó3ü‹´& Ê›0¶´ �ܾ´  let haystack = "a☃z";ÁüÞ´8 5 let mut it = re.try_find_iter(&mut cache, haystack);Áü›µ: 7 assert_eq!(Some(Ok(Match::must(0, 0..0))), it.next());ÁüÚµ: 7 assert_eq!(Some(Ok(Match::must(0, 1..1))), it.next());Áü™¶: 7 assert_eq!(Some(Ok(Match::must(0, 2..2))), it.next());Áüض: 7 assert_eq!(Some(Ok(Match::must(0, 3..3))), it.next());Áü—·: 7 assert_eq!(Some(Ok(Match::must(0, 4..4))), it.next());ÁüÖ·: 7 assert_eq!(Some(Ok(Match::must(0, 5..5))), it.next());Áü•¸ éÃ9º¸ �ü¸. Ǭ/<õ¸ ä¤/4ˆ¹ „ Bÿà à ç ÜÇ ü¾¹: 7 Return a builder for configuring the construction of aÁÌý¹  `BoundedBacktracker`.Á›º �ü£º@ ºŸ0üèº% … 0’» �lš» •£/¬» �ü´»C ›�3|ü» °Æ9�¼ �<˜¼ ä¤/ü¤¼= ÔÂ/Ìæ¼ ô¤/ü„½= �ËD¬Æ½ ‘¢0tའ·„04ó½ Ý¥/þ½ �ü†¾* ÑþCüµ¾2 è¢0üì¾6 ¥£0ü§¿& æ£0üÒ¿J œ§/¡À �ü©À4 ËÈ9üâÀ. ‰É9ü•Á6 3 re.try_captures(&mut cache, haystack, &mut caps)?;ÁüÐÁ+ ÄŠ0€Â �üˆÂ. Ǭ/<»Â ä¤/<ΠޠBÿà à ‘²ü½Å# ü‡Ã& # Create a new cache for this regex.Á²Ã �üºÃ@ ˆ¬0üÿÃE B regex. If you want to reuse the cache for another regex, then youÁüÉÄA > must call [`Cache::reset`] with that regex (or, equivalently,Áü�Å) & [`BoundedBacktracker::reset_cache`]).ÁdÄÅ û7 û7«¡ì£Bÿà  ÑÅ à é $ÒÅ ü·Ê) ü‡ÆG Ò¦0üÓÆ; 8 valid for the search APIs on this `BoundedBacktracker`.Á“Ç �ü›ÇI F A `Captures` value created for a specific `BoundedBacktracker` cannotÁüéÇ0 - be used with any other `BoundedBacktracker`.ÁžÈ �ü¦ÈA ߨ0üìÈD «©0üµÉE B constructors that permit the `BoundedBacktracker` to do less workÁüÿÉ3 0 during a search, and thus might make it faster.Á|¾Ê ü7 ü7«¡˜ÛBÿà  ÎÊ à üð$ÏÊ üõÖ, ü©ËI ã®0ü÷ËC @ this `BoundedBacktracker` (and only this `BoundedBacktracker`).Á¿Ì �üÇÌH ð¯0ü”Í* ' with a different `BoundedBacktracker`.ÁÃÍ �lËÍ •£/ÝÍ �üåÍA > This shows how to re-purpose a cache for use with a differentÁ̫Π‚ÒDÉÎ �<ÑÎ ä¤/üÝÎ= ÔÂ/ÌŸÏ ô¤/ü½Ï5 ³ýCt÷Ï ·„04ŠÐ Ý¥/•Ð �ü�Ð. + let re1 = BoundedBacktracker::new(r"\w")?;ÁüÐÐ. + let re2 = BoundedBacktracker::new(r"\W")?;ÁƒÑ �ü‹Ñ' ð³0|·Ñ ¡´0üËÑ' $ Some(Ok(Match::must(0, 0..2))),Áü÷Ñ3 0 re1.try_find_iter(&mut cache, "Δ").next(),Á4¯Ò ½µ0ºÒ �üÂÒH Ûµ0ü�ÓI ®¶0üÝÓ? < // it with the BoundedBacktracker we'd like to use it with.Á4¡Ô Å·0ü¬ÔJ Ö·0|ûÔ ª¸0´�Õ ª“:|ªÕ ¡´0ü¾Õ' $ Some(Ok(Match::must(0, 0..3))),ÁüêÕ4 1 re2.try_find_iter(&mut cache, "☃").next(),Á4£Ö ½µ0®Ö �ü¶Ö. Ǭ/<éÖ ä¤/\üÖ ý7þ7 ý7«¡ þ7ì£Bÿà  ˆ× à ë $‰× óA,�× ü�â" üÊ×; 8 Returns the total number of patterns compiled into thisÁÌŠØ ‚ÒD¨Ø �ü°ØI F In the case of a `BoundedBacktracker` that contains no patterns, thisÁ„þØ returns `0`.Á“Ù �l›Ù •£/­Ù �üµÙI F This example shows the pattern length for a `BoundedBacktracker` thatÁ”ƒÚ  never matches:ÁšÚ �<¢Ú ä¤/ü®ÚE ×�DøÚ �ü€Û0 áÃDüµÛ$ ! assert_eq!(re.pattern_len(), 0);ÁüÞÛ. Ǭ/<‘Ü ä¤/�Ü �ü¥ÜH E And another example for a `BoundedBacktracker` that matches at everyÁlòÜ position:Á„Ý �<ŒÝ ä¤/ü˜ÝE ×�DâÝ �üêÝ1 ¸¿Dü Þ$ ! assert_eq!(re.pattern_len(), 1);ÁüÉÞ. Ǭ/<üÞ ä¤/ˆß �ü�ßJ G And finally, a `BoundedBacktracker` that was constructed from multipleÁlßß patterns:Áñß �<ùß ä¤/ü…àE ×�DÏà �ü×àL I let re = BoundedBacktracker::new_many(&["[0-9]+", "[a-z]+", "[A-Z]+"])?;Áü¨á$ ! assert_eq!(re.pattern_len(), 3);ÁüÑá. Ǭ/<„â ä¤/\—â ÿ7 ÿ7«¡Bÿà  £â à ì $¤â ü¦ã# üßâ4 1 Return the config for this `BoundedBacktracker`.ÁT­ã €8 €8«¡ €8„ Bÿà  ¸ã à öµ$¹ã ì­ä üìã. ¾¼0<´ä �8 �8«¡ �8�»Bÿà  ¼ä à —Ä$½ä üýö' üêäF C Returns the maximum haystack length supported by this backtracker.Áµå �ü½åK H This routine is a function of both [`Config::visited_capacity`] and theÁü�æ+ ( internal size of the backtracker's NFA.Á½æ �lÅæ •£/׿ �üßæI F This example shows how the maximum haystack length can vary dependingÁü­çJ G on the size of the regex itself. Note though that the specific maximumÁüüçI F values here are not an API guarantee. The default visited capacity isÁüÊè0 - subject to change and not covered by semver.Áÿè �<‡é ä¤/ü“é= ÔÂ/ÌÕé ô¤/üóé5 ³ýCÔ­ê  Match, MatchError,Á4Ìê Ý¥/×ê �üßê8 5 // If you're only using ASCII, you get a big budget.Áüœë3 0 let re = BoundedBacktracker::new(r"(?-u)\w+")?;ÁüÔë& Ê›0üÿë/ , assert_eq!(re.max_haystack_len(), 299_592);Áü³ì!  // Things work up to the max.ÁüÙì+ ( let mut haystack = "a".repeat(299_592);Áü‰í8 5 let expected = Some(Ok(Match::must(0, 0..299_592)));ÁüÆíI F assert_eq!(expected, re.try_find_iter(&mut cache, &haystack).next());Áü”îH E // But you'll get an error if you provide a haystack that's too big.ÁüáîD A // Notice that we use the 'try_find_iter' routine instead, whichÁüªï9 6 // yields Result instead of Match.Á¼èï  haystack.push('a');Áü„ðE B let expected = Some(Err(MatchError::haystack_too_long(299_593)));ÁüÎðI ÀúDœñ �ü¤ñG ²‘DüðñI ƒ’Dü¾ò< Ö’Düÿò. œ“Dü²ó, Ô“DüãóK Š”Dü³ô* ÑþCüâôH í”Dįõ ¾•DüÌõ- à•Düþõ- —–Dü°ö. Ǭ/<ãö ä¤/„„÷ ‚8 ‚8«¡Bÿà  •÷ à ï $–÷ ¼´ü «¡ñ õ ø û € üÐ�Š üÒüF ÖÖ9�ý �ü¥ýE B In the case of a backtracking regex engine, and unlike most otherÁüïýK H regex engines in this crate, short circuiting isn't practical. However,Áü¿þI F this routine may still be faster because it instructs backtracking toÁü�ÿ+ ( not keep track of any capturing groups.Á½ÿ �dÅÿ •£1Öÿ �üÞÿG D This routine only errors if the search could not complete. For thisÁüª€H E backtracking regex engine, this only occurs when the haystack lengthÁü÷€5 2 exceeds [`BoundedBacktracker::max_haystack_len`].Á±� �ü¹�F C When a search cannot complete, callers cannot know whether a matchÁ”„‚ Â¥1›‚ �l£‚ •£/µ‚ �<½‚ ä¤/üÉ‚E ×�D“ƒ �ü›ƒ6 ¹­DüÖƒ& Ê›0�„ �ü‰„9 6 assert!(re.try_is_match(&mut cache, "foo12345bar")?);ÁüÇ„5 2 assert!(!re.try_is_match(&mut cache, "foobar")?);Áü�…. Ǭ/<´… ä¤/À… �üÈ…+ …ô0ø… �ü€†G ˆû;ü̆E Úû;t–‡ íõ0©‡ �<±‡ ä¤/̽‡ ô¤/üÛ‡5 ³ýCt•ˆ ™¿?4¨ˆ Ý¥/³ˆ �ü»ˆ, ) let re = BoundedBacktracker::new("a*")?;Áüìˆ& Ê›0—‰ �üŸ‰I F assert!(!re.try_is_match(&mut cache, Input::new("☃").span(1..2))?);Áüí‰. Ǭ/< Š ä¤/¬Š �ü´ŠE ¨ø0üþŠI øø0ôÌ‹ Ëù0ï‹ �<÷‹ ä¤/̃Œ ô¤/ü¡Œ< 9 nfa::thompson::{backtrack::BoundedBacktracker, NFA},Át⌠™¿?4õŒ Ý¥/€� �üˆ�* ÑþCü·�, üú0´è� ²û0üƒŽ& Ê›0®Ž �ü¶ŽH E assert!(re.try_is_match(&mut cache, Input::new("☃").span(1..2))?);Áüƒ�. Ǭ/<¶� ä¤/d×� ƒ8„8 ƒ8«¡ „8ì£Ó¤Å¿Bÿð ¸ò …ó ò ó  …� ð Àþ0 è� Òþ0|ë� ñ ¸Ó¤$†� óA³–`¾ä� <>,È‘ ñ �ô �ô �ô ô ñ Ù¾ü­š� üè‘K H Executes a leftmost forward search and returns a `Match` if one exists.Á¸’ �üÀ’= : This routine only includes the overall match span. To getÁü‚“? < access to the individual spans of each capturing group, useÁüÆ“) & [`BoundedBacktracker::try_captures`].Áô“ �dü“ •£1�” �ü•”G ·ƒEüá”H ‰„Eü®•5 Ü„Eè• �üð•F ©…E”»– Â¥1Ò– �lÚ– •£/ì– �<ô– ä¤/Ì€— ô¤/üž—5 ³ýCtØ— ·„04ë— Ý¥/ö— �üþ—3 0 let re = BoundedBacktracker::new("foo[0-9]+")?;Áü¶˜& Ê›0üá˜( ÷Š1üŽ™E B assert_eq!(Some(expected), re.try_find(&mut cache, "foo12345")?);ÁØ™ �üà™. Ǭ/<“š ä¤/D´š …8†8 …8«¡ †8ì£Ó¤×… Bÿð ¸ö …÷ ÷ ö  Þš ð Àþ0 Áš Òþ0|Äš õ ¸Ó¤$ßš óA}.–`ˆ.½š <>üö¯¥ ü¶¥H �Ž<üƒ¦F ãŽ<üΦK ´�<´ž§ ‰�<¹§ �dÁ§ •£1Ò§ �üÚ§G ·ƒEü¦¨H ‰„Eüó¨5 Ü„E­© �üµ©F ©…E”€ª Â¥1—ª �lŸª •£/±ª �<¹ª ä¤/ÌŪ ô¤/üãª5 ³ýCl�« á¹?4¯« Ý¥/º« �ü«% " let re = BoundedBacktracker::new(Áüì«. + r"^([0-9]{4})-([0-9]{2})-([0-9]{2})$",Á<Ÿ¬ Ä™1ü«¬J œ§/ú¬ �ü‚­: 7 re.try_captures(&mut cache, "2010-03-14", &mut caps)?;ÁìÁ­ ¾’<üã­: æ’<ü¢®: «“<üá®; ð“<¡¯ �ü©¯. Ǭ/<ܯ ä¤/dý¯ ‡8ˆ8‰8 ‡8«¡ ˆ8ì£Ó¤ ‰8˜Û²×Bÿð ¸ù …ú ù ú  «° ð Àþ0 ް Òþ0|‘° ø ¸Ó¤$¬° óAï3–`ú3ɾ4а EGü¸¹› üݱH “ê9üª²J åê9ù² �ü�³H E If the regex engine returns an error at any point, then the iteratorÁÔγ  will yield that error.Áí³ �lõ³ •£/‡´ �<�´ ä¤/Ì›´ ô¤/ü¹´5 ³ýCÔó´ ‘÷D4’µ Ý¥/�µ �ü¥µ3 ê”Eüݵ& Ê›0ˆ¶ �ü�¶# ºñ9ü¸¶3 0 let result: Result, MatchError> = reÁüð¶( % .try_find_iter(&mut cache, text)Áœ�· —¤<Ôµ·  let matches = result?;ÁìÔ· ·ò9ìö· Ýò9ô˜¸ ƒó9ü»¸ «ó9<߸ Óó9üë¸. Ǭ/<ž¹ ä¤/l¿¹ ü ý  ü «¡ ý ì£Ó¤„!„!ÜÕˆ!é¾² ‰!óA² Š!ɾ² ‹!Û˲ *wIå äF9ü ý ¸Bÿð ¸þ …ÿ þ ÿ ͹ ð Àþ0 Ù¹ Òþ0|ܹ û ¸Ó¤$ú¹ óAÔ6–`ß6CEѹ Õ¹ GIü©È£ ü•¼I ô›<üã¼7 Èœ<Ÿ½ �ü§½J G This yields the same matches as [`BoundedBacktracker::try_find_iter`],Áüö½I F but it includes the spans of all capturing groups that participate inÁ|ľ each match.Áؾ �üà¾H “ŸEÔ­¿ åŸEÌ¿ �üÔ¿J Èž<ü£ÀJ �Ÿ<üòÀJ òŸ<üÁÁ% Ç <ëÁ �lóÁ •£/… �<� ä¤/̙ ô¤/ü·Â5 ³ýClñ á¹?4ƒÃ Ý¥/ŽÃ �ü–Ã@ = let re = BoundedBacktracker::new("foo(?P[0-9]+)")?;ÁüÛÃ& Ê›0†Ä �üŽÄ# ºñ9ܶÄ  let mut spans = vec![];ÁüÖÄ: 7 for result in re.try_captures_iter(&mut cache, text) {ÁܕŠ let caps = result?;ÁüµÅK ø¢<ü…Æ? < spans.push(caps.get_group_by_name("numbers").unwrap());Á,ÉÆ œü3ÜÓÆ  assert_eq!(spans, vec![ÁÌóÆ ¤<Ô‘Ç å¤<ܰÇ ‰¥<<ÐÇ Óó9üÜÇ. Ǭ/<�È ä¤/Œ°È � ‚  � «¡ ‚ ì£Ó¤‘!‘!ÒÖ•!é¾² –!óA² —!ɾ² ˜!Û˲ ��÷Î"DÖ� ‚ ¸Bÿ𠸃 …„ ƒ „ ÂÈ ð Àþ0 ÎÈ Òþ0|ÑÈ € ¸Ó¤$ïÈ óA©9–`´9CEÆÈ ÊÈ GI¼ðÊ «¡† ‡ Œ � � ‘ üÌé” üŽËH �Ž<üÛËF ãŽ<ü¦ÌK ´�<´öÌ ‰�<‘Í �ü™ÍG D This is like [`BoundedBacktracker::try_captures`], but it accepts aÁüåÍ2 / concrete `&Input` instead of an `Into`.ÁœÎ �d¤Î •£1µÎ �ü½ÎG ·ƒEü‰ÏH ‰„EüÖÏ5 Ü„E�Ð �ü˜ÐF ©…E”ãР¥1úÐ �ü‚Ñ& ì¥1­Ñ �üµÑD A This example shows how to build a multi bounded backtracker thatÁüþÑ, ) permits searching for specific patterns.Á¯Ò �<·Ò ä¤/ÌÃÒ ô¤/üáÒ5 ³ýCü›Ó* ' Anchored, Input, Match, PatternID,Á4ÊÓ Ý¥/ÕÓ �üÝÓ, ) let re = BoundedBacktracker::new_many(&[Á´ŽÔ  "[a-z0-9]{6}",ÁÜ©Ô  "[a-z][a-z0-9]{5}",ÁDÉÔ •Ð1üÖÔJ œ§/ä¥Õ üÌ3ÆÕ �üÎÕC °Í3ü–ÖK þÍ3üæÖG ÔÎ3„²× ¥Ï3üÇ×. öø<üú×A > re.try_search(&mut cache, &Input::new(haystack), &mut caps)?;ÁüÀØ+ ÄŠ0ðØ �üøØJ åÐ3üÇÙ" ºÑ3üîÙ. ­ú<ü¡Ú$ ¡Ò3üÊÚ9 ÐÒ3üˆÛ2 ³©/ü¿Û+ ÄŠ0ïÛ �ü÷Û. Ǭ/<ªÜ ä¤/¶Ü �ü¾Ü0 €±1óÜ �üûÜG ȱ1üÇÝ; š²1‡Þ �<�Þ ä¤/ü›Þ= ÔÂ/ÌÝÞ ô¤/üûÞ5 ³ýC¬µß  Match, Input,Á4Ïß Ý¥/Úß �üâß7 4 let re = BoundedBacktracker::new(r"\b[0-9]{3}\b")?;ÁüžàJ œ§/üíà ص1‘á �ü™áE �¶1üãáF ß¶1ü®âI °·1üüâE „¸1tÆã Ó¸1üÙã. ì¸1üŒäH E re.try_search(&mut cache, &Input::new(&haystack[3..6]), &mut caps)?;ÁüÙä+ ÄŠ0‰å �ü‘åK Ÿº1üáåH õº1ü®æF È»1üùæC ™¼1ÄÁç æ¼1”Þç  re.try_search(ÁüõçA > &mut cache, &Input::new(haystack).range(3..6), &mut caps,Á<»è Ä™1üÇè+ ÄŠ0÷è �üÿè. Ǭ/<²é ä¤/TÓé Š8‹8Œ8�8Ž8 Š8«¡ ‹8ì£ Œ8Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²�8 Ž8˜Û²×Bÿ…  çé … ‚è$èé óA�<–`Œ<ɾ—<ü›…· ü†ìH �Ž<üÓìF “ƒ=üžíK äƒ=üîíK º„=ü¾îK H then `None` is returned and the contents of all `slots` is unspecified.ÁŽï �ü–ïI F This is like [`BoundedBacktracker::try_search`], but it accepts a rawÁüäïI F slots slice instead of a `Captures` value. This is useful in contextsÁü²ð: 7 where you don't want or need to allocate a `Captures`.Áñð �üùðK ÜÄ1üÉñF ²Å1ü”òK ƒÆ1üäò6 ÙÆ1Ÿó �ü§óC §Ç1”ïó ôÇ1ü†ôA > [`pattern_len() * 2`](crate::nfa::thompson::NFA::pattern_len)ÁüÌôK ÜÈ1dœõ áé/”­õ ôÇ1üÄõK ÎÉ1ü”öF ¤Ê1dßö áé/ðö �døö •£1‰÷ �ü‘÷G ·ƒEüÝ÷H ‰„Eüªø5 Ü„Eäø �üìøF ©…E”·ù Â¥1Îù �lÖù •£/èù �üðùA äÌ1ü¶úJ °Í1ü…û) …Î1³û �<»û ä¤/üÇû= ÔÂ/̉ü ô¤/ü§ü5 ³ýCÌáü  PatternID, Input,Á4ÿü Ý¥/Šý �ü’ý, ¿µE„Ãý þŠ=|Øý ˜‹=Dìý •Ð1üùý& Ê›0ü¤þ% À‹=Îþ �üÖþD ‰Ñ1üŸÿG ØÑ1äëÿ ©Ò1ôŒ€ ÏÒ1ü¯€C øÒ1ü÷€. ÆÓ1ª� �ü²�K ŒÔ1ü‚‚I âÔ1¤Ð‚ µÕ1üé‚1 ÔÕ1üŸƒ" �Ö1üƃ< Ú�=ü‡„: ¡Ž=Æ„ �ü΄. Ǭ/<�… ä¤/„¢… �8�8‘8’8“8 �8«¡ �8ì£ ‘8Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²’8 “8 ©ä¬Bÿ…  ¼… … ‡¾$½… óA×H–`âH©&íH$¬ˆ ‡ �ˆ �ˆ �ˆ ˆ ‡ Ñÿ$ÙŠ ‡ �‰ �‰ �‰ ‰ ‡ þƒ$ŒŽ ‡ �Š �Š �Š Š ‡ ·Š$ô� ‡ �‹ �‹ �‹ ‹ ‡ Ô�üÔ“· ¤×“ ² ”8•8–8—8˜8 ”8«¡ •8ì£ –8Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²—8 ˜8 ©‡áBÿ…  õ“ … “þ$ö“ óA,„” –`,Ÿ” ©&,º” <Û— Œ �� �� �� � Œ � ¾æÒž¬Àž©$À˜ Œ �Ž �Ž �Ž Ž Œ Ž ˜ðü¿œ­ Tœ ² ™8š8›8œ8�8 ™8«¡ š8ì£ ›8Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²œ8 �8 ©‡áBÿ…  Öœ … � $ל óA,åœ –`,€� ©&,›� üò³Æ Lõ³ ² ž8Ÿ8 8¡8¢8 ž8«¡ Ÿ8ì£  8Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²¡8Ç ¢8 ©ÖáBÿ…  ˆ´ … � $‰´ óA,—´ –`,²´ ™´Í´ óÖ Dà´ ©&,û´ ü£¾Ä $¦¾ ² £8¤8¥8¦8§8 £8«¡ ¤8ì£ ¥8Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²¦8Ç §8 ©ÖáBÿ…  ´¾ … ‘ $µ¾ óA,þ –`,Þ¾  Øý¾ ™´—¿ ©&,ª¿ ,½Õ ‘ �’ �’ �’ ’ ‘ ’ ±€»¤UÿáÆ:üÙá8 æG” Ì3• ¸– • ” – ø¡— ˜ ÅQÆQ˜ Þá âá æá L˜â $�â “ “ ¼¨üÒâ7 $Õâ «8 «8ø¡÷§Bÿ“  Úâ “ ˜ æGÌ3¸$ßâ <Êä ˜ �™ �™ �™ ™ ˜ ã¦ü·ë< æG› Ì3œ ¸� � › œ ò¢ž Ÿ ÅQÆQŸ ¼ë Àë Äë Lúë $ÿë š š Ž¹ü·ì: $ºì ¯8 ¯8ò¢ɸBÿš  ¿ì š Ÿ æGÌ3¸$Äì <Ëî Ÿ �  �  �    Ÿ ȶTöú 죢 £ ¤ ¥ ü®þ, ü‡û. + Create a new [`BoundedBacktracker`] cache.Áºû �üÂû> ªñ1ü…üE B [`BoundedBacktracker::create_cache`], as it does not require alsoÁüÏü  importing the `Cache` type.Áóü �üûü= : If you want to reuse the returned `Cache` with some otherÁü½ýF C `BoundedBacktracker`, then you must call [`Cache::reset`] with theÁüˆþ!  desired `BoundedBacktracker`.Áµþ ´8 ´8«¡ì£Bÿ¡  ½þ ¡ ¢ é¾¹þ üÈŠ0 ü£ÿJ G Reset this cache such that it can be used for searching with differentÁÜòÿ  [`BoundedBacktracker`].Á’€ �üš€H ð¯0üç€* ¬ÞD–� �lž� •£/°� �ü¸�A ‰ßDÌþ� ‚ÒDœ‚ �<¤‚ ä¤/ü°‚= ÔÂ/Ìò‚ ô¤/ü�ƒ5 ³ýCtʃ ·„04݃ Ý¥/èƒ �üðƒ. ÓàDü£„. ŒáDÖ„ �üÞ„' ð³0|Š… ¡´0üž…' ïáDüÊ…3 ¡âD4‚† ½µ0�† �ü•†H Ûµ0üâ†I ®¶0ü°‡? ˜ãD4ô‡ Å·0üÿ‡J Ö·0|Έ ª¸0´âˆ ª“:|ýˆ ¡´0ü‘‰' ©äDü½‰4 ÛäD4ö‰ ½µ0�Š �ü‰Š. Ǭ/<¼Š ä¤/,ÏŠ µ8¶8 µ8ì£ ¶8«¡Bÿ¡  ÕŠ ¡ £ $ÚŠ é¾àŠ üóŒ# ü¦‹; àû1æ‹ �üî‹F ³ü1ü¹Œ5 „ý1dúŒ ·8 ·8ì£Bÿ¡  ‡� ¡ ¤ $ˆ� üû’ dþ’ ² ¸8¹8º8»8 ¸8ì£ ¹8«¡ º8Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²»8²×Bÿ¡  ”“ ¡ ¥ $™“ é¾§“ –`,È“ dŒ¨ °¥§ ¨ © ª « ­ ¼È¨ TΨ ² ¦ ¦ üĪ* Ǫ ² Ä8 Ä8«¡°¥Bÿ¦  Ϫ ¦ ¨ é¾˪ ü•­5 4˜­ ² Å8 Å8°¥ÇBÿ¦  Ÿ­ ¦ © $¤­  Øª­ ™´¸­ üš±+ ,�± ² Æ8Ç8 Æ8°¥ Ç8«¡Bÿ¦  £± ¦ ª $¨±  ®± ü•´ d˜´ ² È8É8Ê8Ë8 È8°¥ É8«¡ Ê8Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Ë8²×Bÿ¦  ®´ ¦ « $³´ é¾Á´ –`,â´ ϶ « �¬ �¬ �¬ ¬ « ¬ Û†UÿáÆ:ü†¿ d‰¿ ² Ì8 Ì8°¥Bÿ¦  –¿ ¦ ­ $—¿ ü À, D£À ² Bÿ¯·¹¬À rhsÁ¸À \’:<–:± ·!Ú!˜  ô¯ ° K" „K¯ ² –' Ð=¯ ³ –¯ ³ ü1 …C¯ ´ �®Ti µ"¯ · ß'$ƒ Î ¯ ¹ ·îŒ‰ ä#¯ º —¬Tœ ú#¯ » 䮨 ¬#¯ ¼ ‘Ú$Ð Ø'¯ ¿ Œ–\Ö ­(¯ À ‚ö„ù ž¯  ¦¡L‹ Ù)¯ à öžT– ±)¯ Ä µ¢<¢ î)¯ Å L R, L H7:D, ,< Ô< Œb ü ; can be quite useful in the construction process of an NFA.Á³÷ �d»÷ •£1Ì÷ �üÔ÷K H This returns an error if the state identifier space is exhausted, or ifÁü¤ø5 2 the configured heap size limit has been exceeded.ÁLåø à8 à8�©²¼BÿÉ  ïø É Ò $ôø ü‚€k äÝù  Add a "union" NFA state.Áþù �ü†úH E A "union" NFA state that contains zero or more unconditional epsilonÁüÓúC @ transitions to other NFA states. The order of these transitionsÁü›ûJ G reflects a priority order where earlier transitions are preferred overÁ´êû  later transitions.Á…ü �ü�üK H Callers may provide an empty set of alternates to this method call, andÁüÝüJ G then later add transitions via `patch`. At final build time, a "union"Áü¬ýJ G state with no alternates is converted to a "fail" state, and a "union"ÁüûýH E state with exactly one alternate is treated as if it were an "empty"ÁTÈþ ¬ÿ8×þ �dßþ •£1ðþ �üøþK À£FüÈÿ5 –¤FL‰€ á8 á8�©•ö²¼BÿÉ  œ€ É Ó $¡€ ˜ÛT¯€ ü‰‰s ü©�$ ! Add a "reverse union" NFA state.ÁÒ� �üÚ�K H A "reverse union" NFA state contains zero or more unconditional epsilonÁüª‚C µ¦Füò‚C @ reflects a priority order where later transitions are preferredÁüºƒE B over earlier transitions. This is an inverted priority order whenÁü„„J G compared to `add_union`. This is useful, for example, for implementingÁüÓ„$ ! non-greedy repetition operators.Áü„ �ü„…K …¨FüÔ…K H then later add transitions via `patch`. At final build time, a "reverseÁü¤†I F union" state with no alternates is converted to a "fail" state, and aÁüò†H E "reverse union" state with exactly one alternate is treated as if itÁÔ¿‡  were an "empty" state.ÁÞ‡ �dæ‡ •£1÷‡ �üÿ‡K À£Füψ5 –¤FŒ�‰ â8 â8�©•ö²¼BÿÉ  «‰ É Ô $°‰ ˜ÛT¾‰ üä�d 俊  Add a "range" NFA state.ÁàŠ �üèŠJ G A "range" NFA state is a state with one outgoing transition to anotherÁü·‹J G state, where that transition may only be followed if the current inputÁü†Œ. + byte falls between a range of bytes given.Á¹Œ �dÁŒ •£1ÒŒ �üÚŒK À£Füª�5 –¤FLë� ã8 ã8�©ÝÁ²¼BÿÉ  þ� É Õ $ƒŽ ž²,‘Ž üñšp ìƒ�  Add a "sparse" NFA state.Á¥� �ü­�J G A "sparse" NFA state contains zero or more outgoing transitions, whereÁüü�I F the transition to be followed (if any) is chosen based on whether theÁüÊ�E B current input byte falls in the range of one such transition. TheÁü”‘J G transitions given *must* be non-overlapping and in ascending order. (AÁüã‘H E "sparse" state with no transitions is equivalent to a "fail" state.)Á°’ �ü¸’H E A "sparse" state is like adding a "union" state and pointing it at aÁü…“F C bunch of "range" states, except that the different alternates haveÁœÐ“  equal priority.Áè“ �üð“H E Note that a "sparse" state is the only state that cannot be patched.Áü½”H E This is because a "sparse" state has many transitions, each of whichÁüŠ•B ? may point to a different NFA state. Moreover, adding more suchÁüÑ•G D transitions requires more than just an NFA state ID to point to. ItÁü�–H E also requires a byte range. The `patch` routine does not support theÁüê–H E additional information required. Therefore, callers must ensure thatÁü·—J G all outgoing transitions for this state are included when `add_sparse`Áü†˜1 . is called. There is no way to add more later.Á¼˜ �dĘ •£1Õ˜ �üݘK À£Fü­™5 –¤Fç™ �dï™ úë0€š �üˆšH E This routine _may_ panic if the transitions given overlap or are notÁ¼Õš  in ascending order.ÁTøš ä8 ä8�©ßã²¼BÿÉ  Œ› É Ö $‘› þÙ\Ÿ› üá s ÜŸœ  Add a "look" NFA state.Á¿œ �üÇœ> ; A "look" NFA state corresponds to a state with exactly oneÁüŠ�E B *conditional* epsilon transition to another NFA state. Namely, itÁüÔ�F C represents one of a small set of simplistic look-around operators.ÁŸž �ü§žI F Callers may provide a "dummy" state ID (typically [`StateID::ZERO`]),Áüõž< 9 and then change it later with [`patch`](Builder::patch).Á¶Ÿ �d¾Ÿ •£1ÏŸ �üןK À£Fü§ 5 –¤FDè  å8 å8�©Çôí²¼BÿÉ  ú  É × $ÿ  ¥ $�¡ ¢Ô$¤¡ ü¤Ý¢ ü�¢$ ! Add a "start capture" NFA state.Á¸¢ �üÀ¢G D A "start capture" NFA state corresponds to a state with exactly oneÁüŒ£F C outgoing unconditional epsilon transition to another state. UnlikeÁü×£C @ "empty" states, a "start capture" state also carries with it anÁüŸ¤H E instruction for saving the current position of input to a particularÁüì¤G D location in memory. NFA simulations, like the Pike VM, may use thisÁü¸¥F C information to report the match locations of capturing groups in aÁ”ƒ¦  regex pattern.Áš¦ �ü¢¦H E If the corresponding capturing group has a name, then callers shouldÁ¤ï¦  include it here.Áˆ§ �ü�§I �ÆFüÞ§< ñÆFŸ¨ �ü§¨J G Note that unlike `start_pattern`/`finish_pattern`, capturing start andÁüö¨H E end states may be interleaved. Indeed, it is typical for many "startÁüéG D capture" NFA states to appear before the first "end capture" state.Á�ª �d—ª •£1¨ª �ü°ªK À£Fü€«D A the configured heap size limit has been exceeded or if the givenÁüÉ«$ ! capture index overflows `usize`.Áò« �üú«E B While the above are the only conditions in which this routine canÁüĬI F currently return an error, it is possible to call this method with anÁü’­I F inputs that results in the final `build()` step failing to produce anÁüà­H E NFA. For example, if one adds two distinct capturing groups with theÁü­®H E same name, then that will result in `build()` failing with an error.Áú® �ü‚¯D A See the [`GroupInfo`](crate::util::captures::GroupInfo) type forÁü˯A > more information on what qualifies as valid capturing groups.Á‘° �l™° •£/«° �ü³°J G This example shows that an error occurs when one tries to add multipleÁü‚±< 9 capturing groups with the same name to the same pattern.Áñ �<˱ ä¤/Ì×± ô¤/üõ±  nfa::thompson::Builder,Áü™²"  util::primitives::StateID,Á4À² Ý¥/˲ �üÓ²1 . let name = Some(std::sync::Arc::from("foo"));Áü‰³% " let mut builder = Builder::new();Áì³³  builder.start_pattern()?;ÁüÕ³2 / // 0th capture group should always be unnamed.ÁüŒ´C @ let start = builder.add_capture_start(StateID::ZERO, 0, None)?;ÁLÔ´  // OKÁüâ´? < builder.add_capture_start(StateID::ZERO, 1, name.clone())?;Áü¦µG D // This is not OK, but 'add_capture_start' still succeeds. We don'tÁüòµG D // get an error until we call 'build' below. Without this call, theÁü¾¶+ ( // call to 'build' below would succeed.Áüî¶? < builder.add_capture_start(StateID::ZERO, 2, name.clone())?;Áü²·9 6 // Finish our pattern so we can try to build the NFA.Áüð·# builder.finish_pattern(start)?;Áü˜¸- * let result = builder.build(start, start);Áìʸ •î;ì¸ �üô¸. Ǭ/<§¹ ä¤/³¹ �ü»¹C @ However, adding multiple capturing groups with the same name toÁôƒº  distinct patterns is okay:Á¦º �<®º ä¤/¼ºº  use std::sync::Arc;ÁÖº �ÌÞº ô¤/üüº= : nfa::thompson::{pikevm::PikeVM, Builder, Transition},Á|¾» util::{ÁüÒ»  captures::Captures,Áüö»- * primitives::{PatternID, StateID},ÁT¨¼  },Ál·¼ á¹?4ɼ Ý¥/Ô¼ �üܼG D // Hand-compile the patterns '(?P[a-z])' and '(?P[A-Z])'.Áü¨½% ƒÚFüÒ½F C // We compile them to support an unanchored search, which requiresÁü�¾K H // adding an implicit '(?s-u:.)*?' prefix before adding either pattern.Áüí¾? < let unanchored_prefix = builder.add_union_reverse(vec![])?;Áü±¿, ) let any = builder.add_range(Transition {Áüâ¿: 7 start: b'\x00', end: b'\xFF', next: StateID::ZERO,ÁD¡À  })?;Áü®À+ ( builder.patch(unanchored_prefix, any)?;ÁüÞÀ+ ( builder.patch(any, unanchored_prefix)?;ÁŽÁ �ü–ÁF C // Compile an alternation that permits matching multiple patterns.ÁüáÁ) & let alt = builder.add_union(vec![])?;Áü�Â+ ( builder.patch(unanchored_prefix, alt)?;Á¿Â �üÇÂ!  // Compile '(?P[a-z]+)'.Áìí ²ÚFü�ÃD A let start0 = builder.add_capture_start(StateID::ZERO, 0, None)?;ÁüØÃ5 2 // N.B. 0th capture group must always be unnamed.Áü’Ä/ , let foo_start0 = builder.add_capture_start(ÁüÆÄ1 . StateID::ZERO, 1, Some(Arc::from("foo")),Á<üÄ Ä™1üˆÅ2 / let lowercase = builder.add_range(Transition {Áü¿Å4 1 start: b'a', end: b'z', next: StateID::ZERO,ÁDøÅ ïçFü…Æ> ; let foo_end0 = builder.add_capture_end(StateID::ZERO, 1)?;ÁüÈÆ: 7 let end0 = builder.add_capture_end(StateID::ZERO, 0)?;Áü‡Ç& # let match0 = builder.add_match()?;Áü²Ç' $ builder.patch(start0, foo_start0)?;ÁüÞÇ* ' builder.patch(foo_start0, lowercase)?;Áü�È( % builder.patch(lowercase, foo_end0)?;ÁüºÈ# builder.patch(foo_end0, end0)?;ÁüâÈ!  builder.patch(end0, match0)?;ÁüˆÉ$ ! builder.finish_pattern(start0)?;Á±É �ü¹É!  // Compile '(?P[A-Z]+)'.ÁìßÉ ²ÚFü�ÊD A let start1 = builder.add_capture_start(StateID::ZERO, 0, None)?;ÁüÊÊ5 ÌëFü„Ë/ , let foo_start1 = builder.add_capture_start(Áü¸Ë1 ÆìF<îË Ä™1üúË2 / let uppercase = builder.add_range(Transition {Áü±Ì4 1 start: b'A', end: b'Z', next: StateID::ZERO,ÁDêÌ ïçFü÷Ì> ; let foo_end1 = builder.add_capture_end(StateID::ZERO, 1)?;ÁüºÍ: 7 let end1 = builder.add_capture_end(StateID::ZERO, 0)?;ÁüùÍ& # let match1 = builder.add_match()?;Áü¤Î' $ builder.patch(start1, foo_start1)?;ÁüÐÎ* ' builder.patch(foo_start1, uppercase)?;ÁüÿÎ( % builder.patch(uppercase, foo_end1)?;Áü¬Ï# builder.patch(foo_end1, end1)?;ÁüÔÏ!  builder.patch(end1, match1)?;ÁüúÏ$ ! builder.finish_pattern(start1)?;Á£Ð �ü«ÐE B // Now add the patterns to our alternation that we started above.ÁüõÐ  builder.patch(alt, start0)?;ÁüšÑ  builder.patch(alt, start1)?;Á¿Ñ �üÇÑI F // Finally build the NFA. The first argument is the anchored startingÁü•ÒA > // state (the pattern alternation) where as the second is theÁüÛÒ9 6 // unanchored starting state (the unanchored prefix).Áü™Ó5 2 let nfa = builder.build(alt, unanchored_prefix)?;ÁÓÓ �üÛÓD A // Now build a Pike VM from our NFA and access the 'foo' captureÁü¤ÔE B // group regardless of which pattern matched, since it is definedÁÌîÔ  // for both patterns.ÁüŒÕ( % let vm = PikeVM::new_from_nfa(nfa)?;Áü¹Õ& # let mut cache = vm.create_cache();ÁìäÕ  let caps: Vec =Áü†Ö< 9 vm.captures_iter(&mut cache, "0123aAaAA").collect();ÁôÇÖ  assert_eq!(5, caps.len());ÁêÖ �üòÖ< 9 assert_eq!(Some(PatternID::must(0)), caps[0].pattern());Áü³×I F assert_eq!(Some(Span::from(4..5)), caps[0].get_group_by_name("foo"));Á�Ø �ü‰Ø< 9 assert_eq!(Some(PatternID::must(1)), caps[1].pattern());ÁüÊØI F assert_eq!(Some(Span::from(5..6)), caps[1].get_group_by_name("foo"));Á˜Ù �ü Ù< 9 assert_eq!(Some(PatternID::must(0)), caps[2].pattern());ÁüáÙI F assert_eq!(Some(Span::from(6..7)), caps[2].get_group_by_name("foo"));Á¯Ú �ü·Ú< 9 assert_eq!(Some(PatternID::must(1)), caps[3].pattern());ÁüøÚI F assert_eq!(Some(Span::from(7..8)), caps[3].get_group_by_name("foo"));ÁÆÛ �üÎÛ< 9 assert_eq!(Some(PatternID::must(1)), caps[4].pattern());Áü�ÜI F assert_eq!(Some(Span::from(8..9)), caps[4].get_group_by_name("foo"));ÁÝÜ �üåÜ. Ǭ/<˜Ý ä¤/Œ«Ý æ8 æ8�©Ç­¯²¼BÿÉ  ÆÝ É Ø $ËÝ ¥ $ÙÝ ÊÚ\ðÝ ‚ $ŠÞ ü½÷€ üÆê"  Add a "end capture" NFA state.Áíê �üõêE B A "end capture" NFA state corresponds to a state with exactly oneÁü¿ëF ÿÉFüŠìA > "empty" states, a "end capture" state also carries with it anÁüÐìH žËFü�íG ñËFüéíF ÃÌF´î �ü¼îI �ÆFüŠï< ñÆFËï �üÓïJ æÎFü¢ðH »ÏFüïðG ŽÐF»ñ �dÃñ •£1Ôñ �üÜñK À£Fü¬òD —ÑFüõò$ æÑFžó �ü¦óE ¢ÒFüðóI òÒFü¾ôI ÆÓFüŒõH šÔFüÙõH íÔF¦ö �ü®öD ÍÕFü÷öA œÖF|Ä÷ ç8 ç8�©Ç²¼BÿÉ  Ý÷ É Ù $â÷ ¥ $ð÷ ÊÚ\‡ø ü‡ÿ9 ä¯û  Adds a "fail" NFA state.ÁÐû �üØûI F A "fail" state is simply a state that has no outgoing transitions. ItÁü¦üF C acts as a way to cause a search to stop without reporting a match.ÁüñüI F For example, one way to represent an NFA with zero patterns is with aÁÄ¿ý  single "fail" state.ÁÜý �däý •£1õý �üýýK À£FüÍþ5 –¤FDŽÿ è8 è8�©²¼BÿÉ  —ÿ É Ú $œÿ üÛ…: ììÿ  Adds a "match" NFA state.ÁŽ€ �ü–€C @ A "match" state has no outgoing transitions (just like a "fail"ÁüÞ€F C state), but it has special significance in that if a search entersÁü©�J G this state, then a match has been found. The match state that is addedÁüø�H E automatically has the current pattern ID associated with it. This isÁüÅ‚: 7 used to report the matching pattern ID at search time.Á„ƒ �dŒƒ •£1�ƒ �ü¥ƒK À£Füõƒ5 –¤F¯„ �d·„ úë0È„ �üЄC @ This must be called after a `start_pattern` call but before theÁü˜…> ; corresponding `finish_pattern` call. Otherwise, it panics.ÁLâ… é8 é8�©²¼BÿÉ  ì… É Û $ñ… üìˆ> ïˆ ¯ ê8 ê8�©þ¥²¼BÿÉ  óˆ É Ü $øˆ ƒ,þˆ ó‰ Ü �Ý �Ý �Ý Ý Ü Ý Îô/×°Uÿ†´üæ’l üº‹/ , Add a transition from one state to another.Áî‹ �üö‹E B This routine is called "patch" since it is very common to add theÁüÀŒJ G states you want, typically with "dummy" state ID transitions, and thenÁü��I F "patch" in the real state IDs later. This is because you don't alwaysÁüÝ�E B know all of the necessary state IDs to add because they might notÁt§Ž exist yet.ÁºŽ �dÂŽ •£1ÓŽ �üÛŽH E This may error if patching leads to an increase in heap usage beyondÁü¨�I F the configured size limit. Heap usage only grows when patching adds aÁüö�7 4 new transition (as in the case of a "union" state).Á²� �dº� úë0Ë� �üÓ�H E This panics if `from` corresponds to a "sparse" state. When "sparse"Áü ‘K H states are added, there is no way to patch them after-the-fact. (If youÁüð‘I F have a use case where this would be helpful, please file an issue. ItÁü¾’# will likely require a new API.)Á,í’ ë8 ë8�©ÇÇûŠBÿÉ  ü’ É Þ $�“ ”$�“ ðä1¦“ üŠ­% ü¢�I F Set whether the NFA produced by this builder should only match UTF-8.Áð� �üø�; 8 This should be set when both of the following are true:Á¸ž �üÀžI F 1. The caller guarantees that the NFA created by this build will onlyÁüŽŸ= : report non-empty matches with spans that are valid UTF-8.ÁüПI F 2. The caller desires regex engines using this NFA to avoid reportingÁüž J G empty matches with a span that splits a valid UTF-8 encoded codepoint.Áí  �üõ E B Property (1) is not checked. Instead, this requires the caller toÁü¿¡H E promise that it is true. Property (2) corresponds to the behavior ofÁüŒ¢F C regex engines using the NFA created by this builder. Namely, thereÁü×¢G D is no way in the NFA's graph itself to say that empty matches foundÁü££H E by, for example, the regex `a*` will fall on valid UTF-8 boundaries.Áüð£K H Instead, this option is used to communicate the UTF-8 semantic to regexÁüÀ¤I F engines that will typically implement it as a post-processing step byÁüŽ¥D A filtering out empty matches that don't fall on UTF-8 boundaries.Á×¥ �üߥ: 7 If you're building an NFA from an HIR (and not using aÁüž¦I F [`thompson::Compiler`](crate::nfa::thompson::Compiler)), then you canÁüì¦G D use the [`syntax::Config::utf8`](crate::util::syntax::Config::utf8)Áü¸§J G option to guarantee that if the HIR detects a non-empty match, then itÁü‡¨$ ! is guaranteed to be valid UTF-8.Á°¨ �ü¸¨G D Note that property (2) does *not* specify the behavior of executingÁü„©H E a search on a haystack that is not valid UTF-8. Therefore, if you'reÁüÑ©E B *not* running this NFA on strings that are guaranteed to be validÁü›ªB ? UTF-8, you almost certainly do not want to enable this option.ÁüâªJ G Similarly, if you are running the NFA on strings that *are* guaranteedÁü±«K H to be valid UTF-8, then you almost certainly want to enable this optionÁü�¬J G unless you can guarantee that your NFA will never produce a zero-widthÁTЬ  match.Á߬ �ôç¬  It is disabled by default.ÁD‘­ ì8 ì8�©BÿÉ  š­ É ì„$Ÿ­ ꥭ ôí® üÖ­; 8 Returns whether UTF-8 mode is enabled for this builder.Á–® �üž®J G See [`Builder::set_utf8`] for more details about what "UTF-8 mode" is.ÁDô® í8 í8�©BÿÉ  ý® É à $þ® üù²( ü«¯F C Sets whether the NFA produced by this builder should be matched inÁüö¯F C reverse or not. Generally speaking, when enabled, the NFA producedÁüÁ°K H should be matched by moving backwards through a haystack, from a higherÁü‘±- * memory address to a lower memory address.Áñ �ü˱2 / See also [`NFA::is_reverse`] for more details.Á‚² �üвH E This is disabled by default, which means NFAs are by default matchedÁìײ  in the forward direction.Á\€³ î8 î8�©BÿÉ  Œ³ É Ü†$‘³ ê—³ üñ´! ü˳= : Returns whether reverse mode is enabled for this builder.Á�´ �ü•´K H See [`Builder::set_reverse`] for more details about what "reverse mode"Á<å´  is.Á\ø´ ï8 ï8�©BÿÉ  „µ É â $…µ ü�¸2 üµµK H Sets the look-around matcher that should be used for the resulting NFA.Á…¶ �ü�¶B ? A look-around matcher can be used to configure how look-aroundÁüÔ¶> ; assertions are matched. For example, a matcher might carryÁü—·H E configuration that changes the line terminator used for `(?m:^)` andÁÄä·  `(?m:$)` assertions.Á„ˆ¸ ð8 ð8�©‚óBÿÉ  ™¸ É Ïˆ$ž¸ £ ¤¸ ü‡º. üà¸: 7 Returns the look-around matcher used for this builder.ÁŸ¹ �ü§¹I F If a matcher was not explicitly set, then `LookMatcher::default()` isÁlõ¹ º¿/„Žº ñ8 ñ8�© ñ8‚óBÿÉ  Ÿº É ä $ º üù¼g üÞº' $ Set the size limit on this builder.ÁŠ» �ü’»G D Setting the size limit will also check whether the NFA built so farÁüÞ»E B fits within the given size limit. If it doesn't, then an error isÁl¨¼ º¿/º¼ �ü¼2 / By default, there is no configured size limit.Át€½ ò8 ò8�©ØÚûŠBÿÉ  ˜½ É ÃŠ$�½ ª¯,«½ üË¿- ü¯¾/ , Return the currently configured size limit.Áã¾ �üë¾G D By default, this returns `None`, which corresponds to no configuredÁ|·¿ size limit.ÁtÒ¿ ó8 ó8�©ØÚBÿÉ  á¿ É æ $â¿ ü›Ã# üžÀI F Returns the heap memory usage, in bytes, used by the NFA states addedÁ\ìÀ  so far.ÁüÀ �ü„ÁH E Note that this is an approximation of how big the final NFA will be.ÁüÑÁF C In practice, the final NFA will likely be a bit smaller because ofÁüœÂE B its simpler state representation. (For example, using things likeÁüæÂ0 - `Box<[StateID]>` instead of `Vec`.)Ád¢Ã ô8 ô8�©BÿÉ  ¯Ã É ç $°Ã ü•Ä4 „˜Ä ¯ õ8 õ8�©ûŠBÿÉ  ©Ä É è $ªÄ dº:Ó픥:ÔŸ:D¾:± ê!÷!„"�"˜" "§"®"Y4 Íé ë Í „Ké î –C Ð=é ï –é ï üM …Cé ð ¤O$r ãé ó  †x ¶é ô ÖºL‰ ßé ö Utf8SequencesÁl” ïé ÷ óùl¨ ñé ø “¨<î Ú!é û �®T† µ"é ü ôä\¨ Õ"é ý ¦çtà ù"é ÿ �élÓ “#é € Èèlâ ‹#é � —¬T€ ú#é ƒ 䮌 ¬#é „ ëöL¦ ä$é … ‘Ú$Ó Ø'é ˆ Œ–\Ù ­(é ‰ ¦¡Lü Ù)é ‹ µ¢<‡ î)é Œ $ t l ,0 L8 öåèDH ÇdX ¼X ¼l ­°üX. ¢¥†‰vy,¿ Ô¿ „å rŒÿ cÌš Tü¿� GJ7:'*ü¿¾   ¬š ü¿� ü¿‘ úüèêü¿º ÜÞÊÌ\Œ ±ªŽ � � ‘ ’ “ ” • – — ˜ ™ š › œ � ž ´à üž= : Return a new default Thompson NFA compiler configuration.Áç ±ªBÿ� � ”é ü¡.* üž6 3 Whether to enable UTF-8 mode during search or not.ÁÙ �üáF C A regex engine is said to be in UTF-8 mode when it guarantees thatÁü¬ I F all matches returned by it have spans consisting of only valid UTF-8.Áüú B ? That is, it is impossible for a match span to be returned thatÁüÁ   contains any invalid UTF-8.Áå �üí 0 - UTF-8 mode generally consists of two things:Á¢ �üª H E 1. Whether the NFA's states are constructed such that all paths to aÁü÷ I F match state that consume at least one byte always correspond to validÁTÅ  UTF-8.ÁüÔ I F 2. Whether all paths to a match state that do _not_ consume any bytesÁü¢ 7 4 should always correspond to valid UTF-8 boundaries.ÁÞ �üæ : 7 (1) is a guarantee made by whoever constructs the NFA.Áü¥< 9 If you're parsing a regex from its concrete syntax, thenÁüæH E [`syntax::Config::utf8`](crate::util::syntax::Config::utf8) can makeÁü³I F this guarantee for you. It does it by returning an error if the regexÁü�K H pattern could every report a non-empty match span that contains invalidÁüÑK H UTF-8. So long as `syntax::Config::utf8` mode is enabled and your regexÁü¡J G successfully parses, then you're guaranteed that the corresponding NFAÁüðG D will only ever report non-empty match spans containing valid UTF-8.Á¼ �üÄH E (2) is a trickier guarantee because it cannot be enforced by the NFAÁü‘I F state graph itself. Consider, for example, the regex `a*`. It matchesÁüßH E the empty strings in `☃` at positions `0`, `1`, `2` and `3`, whereÁü¬I F positions `1` and `2` occur within the UTF-8 encoding of a codepoint,ÁüúD A and thus correspond to invalid UTF-8 boundaries. Therefore, thisÁüÃE B guarantee must be made at a higher level than the NFA state graphÁü�I F itself. This crate deals with this case in each regex engine. Namely,ÁüÛF C when a zero-width match that splits a codepoint is found and UTF-8Áü¦H E mode enabled, then it is ignored and the engine moves on looking forÁœó  the next match.Á‹ �ü“F C Thus, UTF-8 mode is both a promise that the NFA built only reportsÁüÞI F non-empty matches that are valid UTF-8, and an *instruction* to regexÁü¬F C engines that empty matches that split codepoints should be banned.Á÷ �üÿK H Because UTF-8 mode is fundamentally about avoiding invalid UTF-8 spans,ÁüÏK H it only makes sense to enable this option when you *know* your haystackÁüŸD A is valid UTF-8. (For example, a `&str`.) Enabling UTF-8 mode andÁüèK H searching a haystack that contains invalid UTF-8 leads to **unspecifiedÁ|¸ behavior**.ÁÌ �üÔG D Therefore, it may make sense to enable `syntax::Config::utf8` whileÁü K H simultaneously *disabling* this option. That would ensure all non-emptyÁüðK H match spans are valid UTF-8, but that empty match spans may still splitÁüÀA > a codepoint or match at other places that aren't valid UTF-8.Á† �üŽF C In general, this mode is only relevant if your regex can match theÁüÙ% " empty string. Most regexes don't.Áƒ �ü‹   This is enabled by default.Á¯ �l· •£/É �üÑ I F This example shows how UTF-8 mode can impact the match spans that mayÁüŸ!!  be reported in certain cases.ÁÅ! �<Í! ä¤/ÌÙ! ô¤/ü÷!. + nfa::thompson::{self, pikevm::PikeVM},Á¬ª" źE4Ä" Ý¥/Ï" �ô×"  let re = PikeVM::new("")?;Áüú"J œ§/É# �üÑ#( % // UTF-8 mode is enabled by default.Áüþ#& Äô3ü©$- * re.search(&mut cache, &input, &mut caps);ÁüÛ$= : assert_eq!(Some(Match::must(0, 0..0)), caps.get_match());Á�% �ü¥%D A // Even though an empty regex matches at 1..1, our next match isÁüî%G D // 3..3 because 1..1 and 2..2 split the snowman codepoint (which isÁ̺&  // three bytes long).Á¼Ø&  input.set_start(1);Áüô&- ëñGü¦'= : assert_eq!(Some(Match::must(0, 3..3)), caps.get_match());Áè' �üð'H E // But if we disable UTF-8, then we'll get matches at 1..1 and 2..2:Áô½(  let re = PikeVM::builder()Áüà(6 ¥£0¤›)  †?ü´)- ëñGüæ)= : assert_eq!(Some(Match::must(0, 1..1)), caps.get_match());Á¨* �¼°*  input.set_start(2);ÁüÌ*- ëñGüþ*= : assert_eq!(Some(Match::must(0, 2..2)), caps.get_match());ÁÀ+ �¼È+  input.set_start(3);Áüä+- ëñGü–,= äôGØ, �¼à,  input.set_start(4);Áüü,- ëñGü®-' Ь/Ú- �üâ-. Ǭ/<•. ä¤/$¨. ±ª±ªBÿ� � � $±. ê·. ü›=- ¤…/  Reverse the NFA.Áž/ �ü¦/D A A NFA reversal is performed by reversing all of the concatenatedÁüï/F C sub-expressions in the original pattern, recursively. (Look aroundÁüº0H E operators are also inverted.) The resulting NFA can be used to matchÁü‡1J G the pattern starting from the end of a string instead of the beginningÁ„Ö1 of a string.Áë1 �üó1I F Reversing the NFA is useful for building a reverse DFA, which is mostÁüÁ2I F useful for finding the start of a match after its ending position hasÁü�3F C been found. NFA execution engines typically do not work on reverseÁüÚ3K H NFAs. For example, currently, the Pike VM reports the starting locationÁüª4% " of matches without a reverse NFA.ÁÔ4 �üÜ4; 8 Currently, enabling this setting requires disabling theÁüœ5I F [`captures`](Config::captures) setting. If both are enabled, then theÁüê5K H compiler will return an error. It is expected that this limitation willÁäº6  be lifted in the future.ÁÛ6 �üã6 Œž7ˆ7 �l�7 •£/¢7 �üª7J G This example shows how to build a DFA from a reverse NFA, and then useÁüù7  the DFA to search backwards.Áž8 �<¦8 ä¤/̲8 ô¤/üÐ8  dfa::{self, Automaton},Áüô8, ) nfa::thompson::{NFA, WhichCaptures},ÁÌ¥9 ¢è34Ã9 Ý¥/Î9 �üÖ9( % let dfa = dfa::dense::Builder::new()Áüƒ:  .thompson(NFA::config()Áü§:0 - .which_captures(WhichCaptures::None)ÁÔÜ:  .reverse(true)ÁLû: ·¥8ì‰;  .build("baz[0-9]+")?;Áü«;/ ÝÙ3|ß; ¡´0Œó;  expected,Áü‰<; 8 dfa.try_search_rev(&Input::new("foobaz12345bar"))?,Á4É< ½µ0Ô< �üÜ<. Ǭ/<�= ä¤/<¢= ±ª±ªBÿ� � ×È $®= ê´= üäK? ü…>J G Sets an approximate size limit on the total heap used by the NFA beingÁlÔ> compiled.Áæ> �üî>I F This permits imposing constraints on the size of a compiled NFA. ThisÁü¼?J G may be useful in contexts where the regex pattern is untrusted and oneÁü‹@) & wants to avoid using too much memory.Á¹@ �üÁ@@ = This size limit does not apply to auxiliary heap used duringÁü†A2 / compilation that is not part of the built NFA.Á½A �üÅAH E Note that this size limit is applied during compilation in order forÁü’BD A the limit to prevent too much heap from being used. However, theÁüÛBE B implementation may use an intermediate NFA representation that isÁü¥CH E otherwise slightly bigger than the final public form. Since the sizeÁüòCH E limit may be applied to an intermediate representation, there is notÁü¿DJ G necessarily a precise correspondence between the configured size limitÁüŽE( % and the heap usage of the final NFA.Á»E �üÃE& # There is no size limit by default.ÁîE �löE •£/ˆF �ü�FG D This example demonstrates how Unicode mode can greatly increase theÁ¤ÜF  size of the NFA.ÁõF �<ýF ä¤/ü‰G= ÔÂ/üËG+ ( use regex_automata::nfa::thompson::NFA;ÁûG �ÔƒH  // 300KB isn't enough!Áœ¢H  NFA::compiler()ÁüºH? < .configure(NFA::config().nfa_size_limit(Some(300_000)))ÁÌþH æÄ/´œI ˆÅ/·I �ü¿I!  // ... but 500KB probably is.ÁìåI êÝ/ü‡J? < .configure(NFA::config().nfa_size_limit(Some(500_000)))ÁÜËJ ‚Ç/ëJ �üóJ% " assert_eq!(nfa.pattern_len(), 1);Á�K �ü¥K. Ǭ/<ØK ä¤/tëK ±ªØÚ±ªBÿ� � ‘ $þK öÆ,„L ü�^, üéLI F Apply best effort heuristics to shrink the NFA at the expense of moreÁ„·M time/memory.ÁÌM �üÔMI F Generally speaking, if one is using an NFA to compile a DFA, then theÁü¢NJ G extra time used to shrink the NFA will be more than made up for duringÁüñNJ G DFA construction (potentially by a lot). In other words, enabling thisÁüÀOK H can substantially decrease the overall amount of time it takes to buildÁT�P  a DFA.ÁŸP �ü§PG D A reason to keep this disabled is if you want to compile an NFA andÁüóPI F start using it as quickly as possible without needing to build a DFA,ÁüÁQI F and you don't mind using a bit of extra memory for the NFA. e.g., forÁü�R( % an NFA simulation or for a lazy DFA.Á¼R �üÄRC @ NFA shrinking is currently most useful when compiling a reverseÁüŒSF C NFA with large Unicode character classes. In particular, it tradesÁü×SK H additional CPU time during NFA compilation in favor of generating fewerÁ|§T NFA states.Á»T �üÃTE B This is disabled by default because it can increase compile timesÁü�U2 / quite a bit if you aren't building a full DFA.ÁÄU �lÌU •£/ÞU �üæUG D This example shows that NFA shrinking can lead to substantial spaceÁü²VJ G savings in some cases. Notice that, as noted above, we build a reverseÁü�W? < DFA and use a pattern with a large Unicode character class.ÁÅW �<ÍW ä¤/üÙW= ÔÂ/ü›X< 9 use regex_automata::nfa::thompson::{NFA, WhichCaptures};ÁÜX �üäXG D // Currently we have to disable captures when enabling reverse NFA.Áô°Y  let config = NFA::config()ÁüÓY, ) .which_captures(WhichCaptures::None)Á¼„Z  .reverse(true);Áü Z$ ! let not_shrunk = NFA::compiler()ÁüÉZ0 - .configure(config.clone().shrink(false))Á¼þZ  .build(r"\w")?;Áüš[  let shrunk = NFA::compiler()Áü¿[/ , .configure(config.clone().shrink(true))Á¼ó[ ¿¦H�\ �ü—\K H // While a specific shrink factor is not guaranteed, the savings can beÁüç\"  // considerable in some cases.ÁüŽ]C @ assert!(shrunk.states().len() * 2 < not_shrunk.states().len());ÁÖ] �üÞ]. Ǭ/<‘^ ä¤/4¤^ ±ª±ªBÿ� � ’ $¯^ êµ^ ü›i* ü…_3 0 Whether to include 'Capture' states in the NFA.Á½_ �üÅ_; »€Hü…`G D [`reverse`](Config::reverse) setting. If both are enabled, then theÁüÑ`K Ó�Hä¡a §‚HÂa �üÊa šîGîa �löa •£/ˆb �ü�bH E This example demonstrates that some regex engines, like the Pike VM,ÁüÝbE B require capturing states to be present in the NFA to report matchÁd§c offsets.Á¸c �üÀcF C (Note that since this method is deprecated, the example below usesÁü‹d: 7 [`Config::which_captures`] to disable capture states.)ÁÊd �<Òd ä¤/üÞd( % use regex_automata::nfa::thompson::{Á¼‹e  pikevm::PikeVM,Ád§e NFA,Á´¸e  WhichCaptures,Á4Óe Ý¥/Þe �ôæe ˆöGü‰fD A .thompson(NFA::config().which_captures(WhichCaptures::None))ÁÜÒf óÝ7üòf& Ê›0�g �ü¥g, ) assert!(re.is_match(&mut cache, "abc"));ÁüÖg1 . assert_eq!(None, re.find(&mut cache, "abc"));ÁŒh �ü”h. Ǭ/<Çh ä¤/0.3.5Áuse which_captures insteadÁäøh üÓhC D¢i ¿²HȲH-±ª±ªBÿ� � “ $«i ê±i üï{H üÓj= : Configures what kinds of capture groups are compiled intoÁü•kH E [`State::Capture`](crate::nfa::thompson::State::Capture) states in aÁŒâk  Thompson NFA.Áøk �ü€lK H Currently, using any option except for [`WhichCaptures::None`] requiresÁüÐlC @ disabling the [`reverse`](Config::reverse) setting. If both areÁü˜mH E enabled, then the compiler will return an error. It is expected thatÁüåm1 . this limitation will be lifted in the future.Á›n �ü£nI ’¤?üñnF æ¤?ü¼oG D overhead of capture states for explicit groups. Usually this occursÁüˆpG D when one wants to use the `PikeVM` only for determining the overallÁüÔpE B match. Otherwise, the `PikeVM` could use much more memory than isÁtžq necessary.Á±q �l¹q •£/Ëq �üÓqH ž¬Hü rE ð¬Hdêr ¾­Hûr �<ƒs ä¤/ü�s( �¯H¼¼s ¾¯HdØs Þ¯H´és ó¯H4„t Ý¥/�t �ô—t ˆöGüºtD ¹°H܃u óÝ7ü£u& Ê›0Îu �üÖu, ®±Hü‡v1 ä±H½v �üÅv. Ǭ/<øv ä¤/„w �üŒw0 - The same applies to the bounded backtracker:ÁÁw �<Éw ä¤/üÕw( �¯Hü‚x& # backtrack::BoundedBacktracker,Ád­x Þ¯H´¾x ó¯H4Ùx Ý¥/äx �üìx* ÑþCü›yD ¹°HÜäy óÝ7ü„z& Ê›0¯z �ü·z1 . assert!(re.try_is_match(&mut cache, "abc")?);Áüíz6 3 assert_eq!(None, re.try_find(&mut cache, "abc")?);Á¨{ �ü°{. Ǭ/<ã{ ä¤/tö{ ±ª¼«±ªBÿ� � Íé $‰| £dt�| üÔ‡7 ü†}C @ Sets the look-around matcher that should be used with this NFA.ÁÎ} �üÖ}I F A look-around matcher determines how to match look-around assertions.Áü¤~E B In particular, some assertions are configurable. For example, theÁüî~K H `(?m:^)` and `(?m:$)` assertions can have their line terminator changedÁü¾/ , from the default of `\n` to any other byte.Áò �lú •£/Œ€ �ü”€K H This shows how to change the line terminator for multi-line assertions.Áä€ �<ì€ ä¤/Ìø€ ô¤/ü–�. ŒðGüÉ�  util::look::LookMatcher,Á¬î� źE4ˆ‚ Ý¥/“‚ �ü›‚' $ let mut lookm = LookMatcher::new();ÁüÇ‚' $ lookm.set_line_terminator(b'\x00');Áó‚ �ôû‚ ˆöGüžƒ> ; .thompson(thompson::Config::new().look_matcher(lookm))Áüáƒ!  .build(r"(?m)^[a-z]+$")?;Áü‡„& Ê›0²„ �üº„9 6 // Multi-line assertions now use NUL as a terminator.Á|ø„ ¡´0üŒ…# Some(Match::must(0, 1..4)),Áü´…, ) re.find(&mut cache, b"\x00abc\x00"),Á4å… ½µ0üð…: 7 // ... and \n is no longer recognized as a terminator.Á|¯† ¡´0lÆ ðç6üÕ†( % re.find(&mut cache, b"\nabc\n"),Á4‚‡ ½µ0�‡ �ü•‡. Ǭ/<ȇ ä¤/dÛ‡ ±ª‚ó±ªBÿ� � • $ì‡ £ ò‡ ôë‹ ü¨‹> ; Returns whether this configuration has enabled UTF-8 mode.ÁDò‹ ú8 ú8±ªBÿ�  û‹ � Ä$ü‹ ü‰�! ü¹ŒK H Returns whether this configuration has enabled reverse NFA compilation.Á\�� û8 û8±ªBÿ�  œ� �  ÿ$�� üÇŽ1 üÞ�H E Return the configured NFA size limit, if it exists, in the number ofÁ¼«Ž  bytes of heap used.Á”ÎŽ ü8 ü8±ªØÚBÿ�  Ꭰ� šŠ$⎠üã� ü²�, ) Return whether NFA shrinking is enabled.ÁTê� ý8 ý8±ªBÿ�  õ� � ™ $ö� üÒ‘" ü¶�K H Return whether NFA compilation is configured to produce capture states.Á¿²Huse get_which_captures insteadÁü«‘ ü†‘G dÙ‘ ¿²H¢ÑH1þ8 þ8±ªBÿ�  æ‘ � š $ç‘ ü÷’1 ü­’E B Return what kinds of capture states will be compiled into an NFA.Á”þ’ ÿ8 ÿ8±ª¼«Bÿ�  ‘“ � òÿ$’“ ü¥”- üð“0 - Return the look-around matcher for this NFA.Á„¬” €9 €9±ª‚óBÿ�  ½” � ¦ˆ$¾” ü¾–' ¬Á– é �9 �9±ªBÿ�  ×– � ÃŽ$Ø– üŒš3 Lšš ‚9 ‚9±ª±ª±ªBÿ�  ¤š � ž $¥š ¥ «š —� ž �Ÿ �Ÿ �Ÿ Ÿ ž Ÿ ãÉUÿžËôž² ¼«¡ ÷¡ ìò <Ʋ ¼«Bÿ    ¡ ”‡³ ¼«£ ¤ ì’´ ü ³G D Returns true if this configuration indicates that no capture statesÁüì³!  should be produced in an NFA.Á<™´ ‡9 ‡9¼«Bÿ¢  ¡´ ¢ £ $¢´ ä±¶ üê´I F Returns true if this configuration indicates that some capture statesÁü¸µH E should be added to an NFA. Note that this might only include captureÁü…¶' $ states for implicit capture groups.Á4¸¶ ˆ9 ˆ9¼«Bÿ¢  ¿¶ ¢ ª€$À¶ l»á ·¬¦ § ¨ ª « ­ ® Ä�â üÏá< 9 Create a new NFA builder with its default configuration.Á—â ·¬Bÿ¥ ¥ ¦ ü™î= üˆå= : Compile the given regular expression pattern into an NFA.ÁÊå �üÒåJ G If there was a problem parsing the regex, then that error is returned.Á¡æ �ü©æH E Otherwise, if there was a problem building the NFA, then an error isÁüöæJ G returned. The only error that can occur is if the compiled regex wouldÁüÅçH E exceed the size limits configured on this builder, or if any part ofÁü’èH E the NFA would exceed the integer representations used. (For example,Áüßè> ; too many states might plausibly occur on a 16-bit target.)Á¢é �lªé •£/¼é �<Äé ä¤/üÐéF C use regex_automata::{nfa::thompson::{NFA, pikevm::PikeVM}, Match};Á›ê �ü£ê; ñ‡0üãêC @ let nfa = NFA::compiler().configure(config).build(r"(?-u)\w")?;Á«ë �ü³ë( % let re = PikeVM::new_from_nfa(nfa)?;Áüàë& Ê›0ü‹ì( û›0ü¸ì. ø»Düëì2 / re.captures(&mut cache, "!@#A#@!", &mut caps);Áü¢í+ ÄŠ0Òí �üÚí. Ǭ/<�î ä¤/, î �9Ž9 �9·¬ Ž9¡óBÿ¥  ¦î ¥ § $§î îN<­î üýõi üˆïD A Compile the given regular expression patterns into a single NFA.ÁÑï �üÙïI ´Ø/ü§ð# ‡Ù/Ïð �l×ð •£/éð �<ñð ä¤/üýðF ·âHÈñ �üÐñ; ñ‡0ü�ò= : let nfa = NFA::compiler().configure(config).build_many(&[ÁœÒò  r"(?-u)\s",Áœêò  r"(?-u)\w",ÁD‚ó •Ð1�ó �ü—ó( ÿãHüÄó& Ê›0üïó( û›0üœô. + let expected = Some(Match::must(1, 1..2));ÁüÏô2 / re.captures(&mut cache, "!A! !A!", &mut caps);Áü†õ+ ÄŠ0¶õ �ü¾õ. Ǭ/<ñõ ä¤/T„ö �9�9 �9·¬ �9©ò¡óBÿ¥ Œ© ©  §ö ¥ ŸÛ/ �ö °Û/T’ö Ôë$¨ö ¨ Ѻ"$ü€…C üÊùI F Compile the given high level intermediate representation of a regularÁܘú  expression into an NFA.Á¸ú �üÀúK H If there was a problem building the NFA, then an error is returned. TheÁü�ûG D only error that can occur is if the compiled regex would exceed theÁüÜûK H size limits configured on this builder, or if any part of the NFA wouldÁü¬üJ G exceed the integer representations used. (For example, too many statesÁüûü. + might plausibly occur on a 16-bit target.)Á®ý �l¶ý •£/Èý �<Ðý ä¤/üÜýF ·âHü§þE Þ„0ñþ �üùþ; »…0ü¹ÿ) �†0üçÿ) µ†0ü•€) é†0üÀ) �‡0Lñ€ Ї0ÿ€ �ü‡�; ñ‡0üÇ�F ·ˆ0’‚ �üš‚( ÿãHüÇ‚& Ê›0üò‚( û›0üŸƒ. ø»DüÒƒ2 ßäHü‰„+ ÄŠ0¹„ �üÁ„. Ǭ/<ô„ ä¤/t‡… ‘9’9 ‘9·¬ ’9–‡¡óBÿ¥  –… ¥ ª $—… ²$�… ü¥‘p üû…H E Compile the given high level intermediate representations of regularÁüȆ"  expressions into a single NFA.Áï† �ü÷†I ´Ø/üŇ# ‡Ù/í‡ �lõ‡ •£/‡ˆ �<�ˆ ä¤/ü›ˆF ·âHüæˆE Þ„0°‰ �Œ¸‰  let hirs = &[ÁüΉ5 2 Hir::class(Class::Bytes(ClassBytes::new(vec![ÁüˆŠ/ , ClassBytesRange::new(b'\t', b'\r'),Áü¼Š- * ClassBytesRange::new(b' ', b' '),ÁlîŠ ]))),Áü€‹5 ßöHüº‹- * ClassBytesRange::new(b'0', b'9'),Áüì‹- * ClassBytesRange::new(b'A', b'Z'),ÁüžŒ- * ClassBytesRange::new(b'_', b'_'),ÁüÐŒ- * ClassBytesRange::new(b'a', b'z'),Ál‚� �øH4”� Ùý3Ÿ� �ü§�; ñ‡0üç�K H let nfa = NFA::compiler().configure(config).build_many_from_hir(hirs)?;Á·Ž �ü¿Ž( ÿãHüìŽ& Ê›0ü—�( û›0üÄ�. ìéHü÷�2 ¥êHü®�+ ÄŠ0Þ� �üæ�. Ǭ/<™‘ ä¤/œ¬‘ “9”9 “9·¬ ”9œÊ¡óBÿ¥ „¬ ¬  Ù‘ ¥ ®€A À‘ À€A\Ñ « �¹$Ú‘ °ü¾(*üá•< ü¿’> ; Apply the given NFA configuration options to this builder.Á‚“ �lŠ“ •£/œ“ �<¤“ ä¤/ü°“+ ”“Hà“ �üè“; ñ‡0ü¨”C ¤ãHüð”% �–Hš• �ü¢•. Ǭ/<Õ• ä¤/Lè• •9 •9·¬±ªä€IBÿ¥  ò• ¥ �ê $÷• É4ý• üÍ�e üí–7 ÷â/ü©—4 ¹ã/â— �üê—J …ä/t¹˜ Ùä/̘ �üÔ˜H E This syntax configuration only applies when an NFA is built directlyÁü¡™J G from a pattern string. If an NFA is built from an HIR, then all syntaxÁÌð™  settings are ignored.ÁŽš �l–š •£/¨š �<°š ä¤/ü¼š; 8 use regex_automata::{nfa::thompson::NFA, util::syntax};Áüš �ü„›= : let syntax_config = syntax::Config::new().unicode(false);ÁüÆ›B ? let nfa = NFA::compiler().syntax(syntax_config).build(r"\w")?;Áü�œJ G // If Unicode were enabled, the number of states would be much bigger.ÁüÜœ% " assert!(nfa.states().len() < 15);Á†� �üŽ�. Ǭ/<Á� ä¤/4Ô� –9 –9·¬Ý’´‡IBÿ¥  ä� ¥ ® $é� É4÷� lóž ·¬° ´ ¹ » ¾ À Á Â Ã Å Æ È É Ë Ì Í Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß ü¦¡I <©¡ é —9˜9 —9·¬ ˜9œÊ¡óBÿ¯ „± ±  Á¡ ¯ ®€A ±¡ À€A\´¡ ¶üxÚ°üÐ!#�ª ° �² �² �² ² ° ì�Ó® ° �³ �³ �³ ³ ° å•ü‚´: …´ é ™9š9 ™9·¬ š9–‡Œ�Bÿ¯  ‡´ ¯ ´ $ˆ´ ²$Ž´ ŒË´ ,ß´ <æ´ ö¸ ´ �¸ �¸ �¸ ¸ ´ ¸ õ¤;Œ�UÿÄ�üž¼• D¡¼ é ›9 ›9·¬‰ŒŒ�Bÿ¯ …º º  ­¼ ¯ þƉŒ ª¼ ÔP‰Œü÷¼; ÅQ‰ŒŒ�ü‹½& ¹ ‰Œ$®¼ Û˸¼ HJüÞÅG \áÅ é œ9�9 œ9·¬ �9̯Œ�Bÿ¯  íÅ ¯ » $îÅ °ü,ôÅ ®Ç » �¼ �¼ �¼ ¼ » ¼  ¢ºUÿ˜É » �½ �½ �½ ½ » ½ „�IÄ�ü´ÑŒ T·Ñ é ž9 ž9·¬‰ŒŒ�Bÿ¯ …¿ ¿  ÅÑ ¯ ö�I ÂÑ ÄQ‰Œü�Ò0 šŽIü˜Ò& ¾ ‰Œ$ÆÑ ÛËÐÑ <>üõÛ… ,øÛ é Ÿ9 9¡9 Ÿ9·¬Å™Ç™È™­É™Ê™àË™óG*¤�R{9   9 ¡9–‡Œ�Bÿ¯  ‡Ü ¯ �º$ˆÜ ÷,–Ü ‚ $ªÜ ²$ÆÜ ü‹ãg dŽã é ¢9£9 ¢9·¬ £9Ö¡AŒ�Bÿ¯  ¤ã ¯ Á $¥ã ΡA³ã üüè“ Lÿè é ¤9¥9 ¤9·¬ ¥9–‡Œ�Bÿ¯  ’é ¯  $“é ²$¡é €¡A4µé ãóËé ô AÝé üÞû€ Táû é ¦9§9 ¦9·¬ §9–‡Œ�Bÿ¯  õû ¯ Þ’$öû ²$„ü €¡A4˜ü ¤ ®ü ,Çÿ à �Ä �Ä �Ä Ä à Ä ƒ§;üñ”s lô” é ¨9©9 ¨9·¬ ©9–‡Œ�Bÿ¯  ‹• ¯ Å $Œ• ²$š• €¡A4®• üŒ™i L�™ é ª9«9 ª9·¬ «9–‡Œ�Bÿ¯  ¢™ ¯ Æ $£™ ²$±™ ¤ Å™ ”š Æ �Ç �Ç �Ç Ç Æ Ç À£AŒ�UÿË確ü Ÿg d£Ÿ é ¬9­9 ¬9·¬ ­9�´;Œ�Bÿ¯  ¹Ÿ ¯ È $ºŸ ϰ;ÈŸ ü¦¨l |©¨ é ®9¯9 ®9·¬ ¯9ªµ;Œ�Bÿ¯  ¨ ¯ É $è ϰ;Ѩ ,º¾ É �Ê �Ê �Ê Ê É Ê   Ì»ûŠUÿ ¹øüöÜ€ üùÜ# é °9±9 °9·¬ ±9ªµ;Œ�Bÿ¯  ¦Ý ¯ Ë $§Ý ϰ;µÝ ü²éG 4µé é ²9³9 ²9·¬ ³9öö Œ�Bÿ¯  ¼é ¯ Ì $½é anchorÁ4Ãé üôóD L÷ó é ´9µ9 ´9·¬ µ9ÈšŒ�Bÿ¯  �ô ¯ Í $‚ô öÆ,ˆô ëô Í �Î �Î �Î Î Í Î Œ�UÿÄ�üÛ÷H <Þ÷ é ¶9 ¶9·¬Œ�Bÿ¯  æ÷ ¯ Ï $ç÷ ‚,í÷ ’ø÷ ü›û4 <žû é ·9 ·9·¬Œ�Bÿ¯  ¦û ¯ Ù�$§û üýü3 4€ý é ¸9 ¸9·¬Œ�Bÿ¯  ‡ý ¯ „Í$ˆý üŸ�E ,¢� é ¹9 ¹9·¬ÇÇûŠBÿ¯  ¨� ¯ «˜$©� ”$¯� ðä1¾� ü¤‚8 l§‚ é º9 º9·¬±·Bÿ¯  µ‚ ¯ �·$¶‚ üœƒc tŸƒ é »9 »9·¬Ç±·Bÿ¯  ·ƒ ¯ ê¿$¸ƒ óÖ Dƃ üÈ„2 LË„ é ¼9 ¼9·¬²¼Bÿ¯  Õ„ ¯ ìÑ$Ö„ ü¶…F L¹… é ½9 ½9·¬²¼Bÿ¯  Ã… ¯ Ö $Ä… ‚,Ê… ’Õ… ü“‡c T–‡ é ¾9 ¾9·¬ßã²¼Bÿ¯  ª‡ ¯ × $«‡ ³±4¹‡ ü¹ˆA D¼ˆ é ¿9 ¿9·¬ôí²¼Bÿ¯  ň ¯ Ø $ƈ ¢Ô$Ј ü•Š2 L˜Š é À9 À9·¬²¼Bÿ¯  ¢Š ¯ ¥Ð$£Š ü‰‹: ŒŒ‹ é Á9 Á9·¬²¼Bÿ¯  ž‹ ¯ Ú $Ÿ‹ ü�Œ� Œ�Œ é Â9Ã9 Â9·¬Å™Ç™È™­É™Ê™àË™óG*¤�R{9  Ã9²¼Bÿ¯  «Œ ¯ Û $¬Œ ›§lºŒ ‚ $ÖŒ üËŽc |ÎŽ é Ä9 Ä9·¬²¼Bÿ¯  çŽ ¯ Ü $èŽ ›§löŽ üŒ�1 D�� é Å9 Å9·¬²¼Bÿ¯  ˜� ¯ Ý $™� üø�2 Lû� é Æ9 Æ9·¬²¼Bÿ¯  …‘ ¯ Ç»$†‘ äæ‘ Té‘ é Ç9 Ç9·¬Bÿ¯  ô‘ ¯ ß $õ‘ tÙ¡ í®á â ¬î¡ ñ¡ é í®Bÿà à á œá¢ ,ä¢ é Û9 Û9í®Bÿà  ê¢ à â $ï¢ ÌÀ£ Ää ä ™®å æ ç ê ë ì í î ï ð Å£ üà£y ã£ é  Ä�© Äí®ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw™®×°Bÿã ã å ÄÖ<𣠃,’¤ ü—¦7 4š¦ é Ü9 Ü9™®Œ�Bÿã  ¡¦ ã æ Ä$¦¦ üü§A ÿ§ é Ý9Þ9 Ý9™® Þ9Õ�IûŠBÿã  ƒ¨ ã ç Ä$ˆ¨ ³±4ލ „µ© ç �è �è �è è ç è  ‡Å‹ƒUÿù© ç �é �é �é é ç é ˜ˆUÿ‡Åü–¬A d™¬ é ß9 ß9™®ûŠBÿã  ¦¬ ã ê Ä$«¬ ”$±¬ üÓ®b <Ö® é à9 à9™®ßã²¼Bÿã  ç® ã ë Ä$ì® nodeÁ$ú® üÖ±. TÙ± é á9â9 á9™® â9Õ�IBÿã  ä± ã ì Ä$é± ³±4ï± ¼ý¶ L€· é ã9 ã9™®Bÿã  Š· ã í Ä$�· üî·: Tñ· é ä9 ä9™®ÇßãBÿã  ü· ã î Ä$�¸ ¥ $‡¸ üÀ¹) Dù é å9 å9™®ßãBÿã  ̹ ã ï Ä$ѹ ü©», |¬» é æ9 æ9™®ÇBÿã  ¼» ã ð Ä$Á» ¥ $Ç» lº½ ¼¯ò üν0 œÑ½ é ç9 ç9¼¯ÇBÿñ  å½ ñ ò $ê½ ¥ $ð½ LÈ:,Ì:± µ"»"áD"ôó õ ¢Ô$!"Øó ö ¦¡L8"Ù)ó ø µ¢"4Þ'"ò9 ò9װřǙș­É™Ê™àË™óG*¤�R{9  ò9ç¡2Bÿ…  å'"… † $æ'"üÿ)&"×°ˆ ¥gˆ ü¬*D"¯*"ó9ô9õ9 ó9×° ô9€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡õ9­àBÿ‡  ³*"‡ ˆ $´*"œ º*"„î:Óí”Ù:ÔÓ:dò:± Õ"Ú"ã"ê"ò"˜  ô‰ Š – Ð=‰ Œ –‰ Œ ü& …C‰ � ±$N ± ‰ � öß\^ �"‰ ‘ �®Tk µ"‰ ’ ‰“¨#À Å $Š>#�è˜>#Æ$¶>#Š#DË>#”ÎJ#θÇ È É Ì Í ü‹N,#’N#θBÿÆ Æ Ç ïŒD–N#¼¿P#,ÆP#°: °:θBÿÆ  ÌP#Æ È $ÑP#üÍS0#$ÔS#±:²: ±:θ ²:¨¹BÿÆ  ÙS#Æ É $ÚS#�èàS#„‰U#,�U#³ |³U#$¹U#³ üÒYi#ÙY#³:´: ³:θ ´:¨¹ŠöBÿÆ  æY#Æ Ì $ëY#�èùY#Æ$–Z#ü­^I#´^#µ: µ:θ¨¹ÇBÿÆ  ¸^#Æ Í $½^#�èÃ^#Æ$×^#Š#Dä^#<¤:¨:± ¬#­#±#Ã#ä#ï#ú#Š$ñ ûcÎ Ð ˜ ôÎ Ñ Àì *ŸÎ Ó ¶«A4/Î Ô å4?ëIÎ Õ KM„KÎ Ö –RÐ=Î × –Î × ü\…CÎ Ø ÷ÞD©„"Î Û ç4³ê!Î Ü �®Tǵ"Î Ý “¨<ÿÚ!Î ß «³$§–Î â “�d­ü%Î ã õý\»Ô%Î ä ´…LÜÁ&Î æ í†tçÓ&Î ç ‘Ú$‡Ø'Î é Œ–\�­(Î ê ý”<šš(Î ë ‚ö„ÆžÎ í ¦¡LØÙ)Î î †¨lãÒ*Î ï öžTò±)Î ð µ¢<þî)Î ñ §ÃL¦ò-Î ò $@C25,T#)t7 LGÿîñDWФ‚Óí”iÔcü‚$ÓíçÓí('ùæÓí=<øŒÀÓíSRø,ÚüçîüÚ6üÚJåDœÖÙÆÉüÚ»¾«®üÚª¡¤‘”�„üÚÜwzgjWZGJ7:¬š+DµD�»ô õ ÷ ø ù ú û ü ý þ ÿ €�‚ƒ„…†‡ˆ‰Š‹Œ�ü¡J4üÄDHãî2Ì‘E build an NFA from it.Á¯E�ü·E=: If you want a non-default configuration, then use the NFAÁüùE# [`Compiler`] with a [`Config`].Á¡F�l©F•£/»F�<ÃFä¤/üÏF?< use regex_automata::{nfa::thompson::pikevm::PikeVM, Match};Á“G�ü›G(% let re = PikeVM::new(r"foo[0-9]+")?;ÁüÈGJœ§/—H�üŸH.î¤0üÒH41 re.captures(&mut cache, b"foo12345", &mut caps);Áü‹I+ÄŠ0»I�üÃI.Ǭ/<öIä¤/Ó픈JÔ‚J¨J·: ·:¡óBÿó  µJó ô îN<¬Jü€QIüŠKIœô2üØK  build a multi-NFA from them.ÁýK�ü…L=ÇïIüÇL#ŽðIïL�l÷L•£/‰M�<‘Mä¤/ü�M?íðIáM�üéM63 let re = PikeVM::new_many(&["[0-9]+", "[a-z]+"])?;Áü¤NJœ§/óN�üûN.+ let expected = Some(Match::must(1, 0..3));Áü®O74 re.captures(&mut cache, b"foo12345bar", &mut caps);ÁüêO+ÄŠ0šP�ü¢P.Ǭ/<ÕPä¤/Óí”çPÔáPD‡Q¸: ¸:©ò¡óBÿó Œö ö  ©Qó ŸÛ/ �Q°Û/T“Q õ µ“¨ ®6 äºWü„RKH Returns an NFA with a single regex pattern that always matches at everyÁlÔR position.ÁæR�lîR•£/€S�<ˆSä¤/ü”SF·âHßS�üçS85 let re = PikeVM::new_from_nfa(NFA::always_match())?;Áü¤TJœ§/óT�üûT.+ let expected = Some(Match::must(0, 0..0));Áü®U,) re.captures(&mut cache, b"", &mut caps);ÁüßU+ÄŠ0ü�V/, re.captures(&mut cache, b"foo", &mut caps);ÁüÃV+ÄŠ0óV�üûV.Ǭ/<®Wä¤/dÁW�»Bÿó ó ÷ Üùeüë`63 Returns an NFA that never matches at any position.Á¦a�ü®aIF This is a convenience routine for creating an NFA with zero patterns.Áüa�l„b•£/–b�<žbä¤/üªb=: use regex_automata::nfa::thompson::{NFA, pikevm::PikeVM};Áìb�üôb74 let re = PikeVM::new_from_nfa(NFA::never_match())?;Áü°cJœ§/ÿc�ü‡d,�ûIô¸d assert!(!caps.is_match());ÁüÛd/ÓûIô�e„€J²e�üºe.Ǭ/<íeä¤/\€f�»Bÿó ó ø ÌÊnü¦h0- Return a default configuration for an `NFA`.ÁÛh�üãhIÉ”0ü±i52 type when customizing the construction of an NFA.Áëi�lói•£/…j�ü�jGD This example shows how to build an NFA with a small size limit thatÁüÙjGD results in a compilation error for any regex that tries to use moreÁü¥k*' heap memory than the configured limit.ÁÔk�<Ükä¤/üèk=ÉþIªl�ü²l" let result = PikeVM::builder()ÁüÙl<9 .thompson(NFA::config().nfa_size_limit(Some(1_000)))ÁüšmB? // Remember, \w is Unicode-aware by default and thus huge.Á¼ám .build(r"\w+");Áìým•î;<Ÿnä¤/Óí”±nÔ«n4Ñn±ªBÿó ó ù ìÏwü‡oC@ Return a compiler for configuring the construction of an `NFA`.ÁÏo�ü×o@ºŸ0üœp&# [`Compiler`] type in common cases.ÁÇp�lÏp•£/áp�üépJG This example shows how to build an NFA that is permitted match invalidÁü¸qKH UTF-8. Without the additional syntax configuration here, compilation ofÁüˆrHE `(?-u:.)` would fail because it is permitted to match invalid UTF-8.ÁÕr�<Ýrä¤/Ìérô¤/ü‡s&# nfa::thompson::pikevm::PikeVM,Á¬²s‘¢0tÌs·„04ßsÝ¥/ês�ôòsˆöGü•t2è¢0üÌt" .build(r"[a-z]+(?-u:.)")?;ÁüótJœ§/Âu�üÊu.+ let expected = Some(Match::must(0, 1..5));Áüýu74 re.captures(&mut cache, b"\xFFabc\xFF", &mut caps);Áü¹v+ÄŠ0év�üñv.Ǭ/<¤wä¤/Óí”¶wÔ°wDÖw·¬Bÿó ó Œíüã})ü’xA> Returns an iterator over all pattern identifiers in this NFA.ÁØx�üàxEB Pattern IDs are allocated in sequential order starting from zero,ÁüªyHE where the order corresponds to the order of patterns provided to theÁü÷y" [`NFA::new_many`] constructor.Ážz�l¦z•£/¸z�<Àzä¤/üÌz85 use regex_automata::{nfa::thompson::NFA, PatternID};Á‰{�ü‘{>; let nfa = NFA::new_many(&["[0-9]+", "[a-z]+", "[A-Z]+"])?;ÁüÔ{85 let pids: Vec = nfa.patterns().collect();ÁÔ‘| assert_eq!(pids, vec![Áܰ| PatternID::must(0),ÁÜÐ| PatternID::must(1),ÁÜð| PatternID::must(2),Á<�}Óó9œ}�ü¤}.Ǭ/<×}ä¤/Dê}¹: ¹:�»Š$Š$ØðŒ$ÛËÎ �$üðÎ  ð 66\ǹ:Bÿó  ó}ó û $ô}ü¿†"üŸ;8 Returns the total number of regex patterns in this NFA.Áß�üçHE This may return zero if the NFA was constructed with no patterns. InÁü´€?< this case, the NFA can never produce a match for any input.Áø€�ü€�HE This is guaranteed to be no bigger than [`PatternID::LIMIT`] becauseÁüÍ�>; NFA construction will fail if too many patterns are added.Á�‚�ü˜‚IF It is always true that `nfa.patterns().count() == nfa.pattern_len()`.Áæ‚�lî‚•£/€ƒ�<ˆƒä¤/ü”ƒ+”“Hă�ü̃>ä‘Jü�„%" assert_eq!(3, nfa.pattern_len());Á¹„�üÁ„! let nfa = NFA::never_match();Áüç„%" assert_eq!(0, nfa.pattern_len());Á‘…�ü™…" let nfa = NFA::always_match();ÁüÀ…%" assert_eq!(1, nfa.pattern_len());Áê…�üò….Ǭ/<¥†ä¤/\Ɔº: º:�»Bÿó  Ò†ó é˜$Ó†ü��'ü’‡JG Return the state identifier of the initial anchored state of this NFA.Áá‡�üé‡FC The returned identifier is guaranteed to be a valid index into theÁü´ˆFC slice returned by [`NFA::states`], and is also a valid argument toÁœÿˆ [`NFA::state`].Á—‰�lŸ‰•£/±‰�ü¹‰GD This example shows a somewhat contrived example where we can easilyÁü…Š(% predict the anchored starting state.Á²Š�<ºŠä¤/üÆŠC@ use regex_automata::nfa::thompson::{NFA, State, WhichCaptures};ÁŽ‹�ì–‹êÝ/ü¸‹EB .configure(NFA::config().which_captures(WhichCaptures::None))Á¬‚Œ .build("a")?;ÁüœŒ0- let state = nfa.state(nfa.start_anchored());Á”ÑŒ match *state {ÁüèŒ'$ State::ByteRange { trans } => {Áü”�*' assert_eq!(b'a', trans.start);ÁüÃ�(% assert_eq!(b'a', trans.end);ÁLð�‰ü3üþ�.+ _ => unreachable!("unexpected state"),Á,±Žœü3»Ž�üÃŽ.Ǭ/<öŽä¤/t—�»: »:�»ÇBÿó  ¦�ó ß…$§�ü¬–)üã�GD Return the state identifier of the initial unanchored state of thisÁD¯�ï�0¼��üÄ�41 This is equivalent to the identifier returned byÁüý�JG [`NFA::start_anchored`] when the NFA has no unanchored starting state.ÁÌ‘�üÔ‘F‡žJüŸ’FØžJœê’¨ŸJ‚“�lŠ“•£/œ“�ü¤“GD This example shows that the anchored and unanchored starting statesÁüð“1. are equivalent when an anchored NFA is built.Á¦”�<®”ä¤/üº”+”“Hê”�ôò” let nfa = NFA::new("^a")?;Áü••=: assert_eq!(nfa.start_anchored(), nfa.start_unanchored());Áו�üß•.Ǭ/<’–ä¤/„³–¼: ¼:�»ÇBÿó  Ä–ó ™†$Å–üõ¤>üƒ—KH Return the state identifier of the initial anchored state for the givenÁüÓ—HE pattern, or `None` if there is no pattern corresponding to the givenÁ| ˜ identifier.Á´˜�ü¼˜JG If one uses the starting state for a particular pattern, then the onlyÁü‹™@= match that can be returned is for the corresponding pattern.ÁЙ�üØ™F‡žJü£šFØžJœîš¨ŸJ†›�dŽ›•£1Ÿ›�ü§›IF If the pattern doesn't exist in this NFA, then this returns an error.Áüõ›;8 This occurs when `pid.as_usize() >= nfa.pattern_len()`.Áµœ�l½œ•£/Ïœ�üלG�©Jü£�1á©JÙ��<á�ä¤/üí�8–‘Jªž�ü²ž,) let nfa = NFA::new_many(&["^a", "^b"])?;ÁüãžJG // The anchored and unanchored states for the entire NFA are the same,Áü²Ÿ.+ // since all of the patterns are anchored.ÁüåŸ=üªJü§ FC // But the anchored starting states for each pattern are distinct,Áüò EB // because these starting states can only lead to matches for theÁ켡 // corresponding pattern.ÁüÞ¡.+ let anchored = Some(nfa.start_anchored());Áü‘¢@= assert_ne!(anchored, nfa.start_pattern(PatternID::must(0)));ÁüÖ¢@= assert_ne!(anchored, nfa.start_pattern(PatternID::must(1)));Áü›£?< // Requesting a pattern not in the NFA will result in None:Áüߣ<9 assert_eq!(None, nfa.start_pattern(PatternID::must(2)));Á ¤�ü¨¤.Ǭ/<Û¤ä¤/lü¤½: ½:�»›†ŠöBÿó  Š¥ó ÿ $‹¥¾¾é:üü«4tЬ¾: ¾:�» ¾:Š×Bÿó  ™¬ó €$š¬üþ¶*üݬ&# Get the byte classes for this NFA.Áˆ­�ü�­EB Byte classes represent a partitioning of this NFA's alphabet intoÁüÚ­HE equivalence classes. Any two bytes in the same equivalence class areÁü§®IF guaranteed to never discriminate between a match or a non-match. (TheÁüõ®%" partitioning may not be minimal.)ÁŸ¯�ü§¯FC Byte classes are used internally by this crate when building DFAs.Áüò¯GD Namely, among other optimizations, they enable a space optimizationÁü¾°EB where the DFA's internal alphabet is defined over the equivalenceÁüˆ±GD classes of bytes instead of all possible byte values. The former isÁüÔ±KH often quite a bit smaller than the latter, which permits the DFA to useÁü¤²(% less space for its transition table.ÁѲ�lÙ²•£/ë²�üó²?< This example shows how to query the class of various bytes.Á·³�<¿³ä¤/ü˳+”“Hû³�üƒ´" let nfa = NFA::new("[a-z]+")?;Áüª´%" let classes = nfa.byte_classes();ÁüÔ´85 // 'a' and 'z' are in the same class for this regex.Áü‘µ52 assert_eq!(classes.get(b'a'), classes.get(b'z'));Áü˵ // But 'a' and 'A' are not.Áüïµ52 assert_ne!(classes.get(b'a'), classes.get(b'A'));Á©¶�ü±¶.Ǭ/<ä¶ä¤/d…·¿: ¿:�» ¿:ªÓBÿó  ’·ó �$“·ü¼¿*üÓ·FC Return a reference to the NFA state corresponding to the given ID.Áž¸�ü¦¸96 This is a convenience routine for `nfa.states()[id]`.Áä¸�dì¸úë0ý¸�ü…¹KH This panics when the given identifier does not reference a valid state.ÁüÕ¹85 That is, when `id.as_usize() >= nfa.states().len()`.Á’º�lšº•£/¬º�ü´ºC@ The anchored state for a pattern will typically correspond to aÁüüºC@ capturing state for that pattern. (Although, this is not an APIÁ|Ä» guarantee!)ÁØ»�<à»ä¤/üì»A> use regex_automata::{nfa::thompson::{NFA, State}, PatternID};Á²¼�캼 let nfa = NFA::new("a")?;ÁüܼGD let state = nfa.state(nfa.start_pattern(PatternID::ZERO).unwrap());Á”¨½ £Jü¿½(% State::Capture { slot, .. } => {Áüì½+( assert_eq!(0, slot.as_usize());ÁLœ¾‰ü3üª¾.å¤J,ݾœü3ç¾�üï¾.Ǭ/<¢¿ä¤/,ÿÀ: À:�»Ç À:ȽBÿó  É¿ó ‚$Ê¿ˆC=üöÆ ü�À.+ Returns a slice of all states in this NFA.ÁÂÀ�üÊÀJG The slice returned is indexed by `StateID`. This provides a convenientÁü™ÁHE way to access states while following transitions among those states.ÁæÁ�lîÁ•£/€Â�üˆÂJG This demonstrates that disabling UTF-8 mode can shrink the size of theÁü×ÂKH NFA considerably in some cases, especially when using Unicode characterÁd§Ã classes.Á¸Ã�<ÀÃä¤/üÌÃ=ÔÂ/üŽÄ+”“H¾Ä�üÆÄ'$ let nfa_unicode = NFA::new(r"\w")?;ÁüòÄ*' let nfa_ascii = NFA::new(r"(?-u)\w")?;Áü¡Å.+ // Yes, a factor of 45 difference. No lie.ÁüÔÅHE assert!(40 * nfa_ascii.states().len() < nfa_unicode.states().len());Á¡Æ�ü©Æ.Ǭ/<ÜÆä¤/4ýÆÁ: Á:�» Á:“»Bÿó  „Çó ¸$…ÇüÆÒ&ü»Ç2/ Returns the capturing group info for this NFA.ÁòÇ�üúÇEB The [`GroupInfo`] provides a way to map to and from capture indexÁüÄÈFC and capture name for each pattern. It also provides a mapping fromÁü�ÉHE each of the capturing groups in every pattern to their correspondingÁüÜÉ63 slot offsets encoded in [`State::Capture`] states.Á—Ê�üŸÊGD Note that `GroupInfo` uses reference counting internally, such thatÁüëÊ(% cloning a `GroupInfo` is very cheap.Á˜Ë�l Ë•£/²Ë�üºËGD This example shows how to get a list of all capture group names forÁ̆Ì a particular pattern.Á¤Ì�<¬Ìä¤/ü¸Ì8–‘JõÌ�üýÌ:7 let nfa = NFA::new(r"(a)(?Pb)(c)(d)(?Pe)")?;Áü¼ÍGD // The first is the implicit group that is always unnamed. The nextÁüˆÎKH // 5 groups are the explicit groups found in the concrete syntax above.ÁüØÎJG let expected = vec![None, None, Some("foo"), None, None, Some("bar")];Áü§Ï  let got: Vec> =ÁüÌÏB? nfa.group_info().pattern_names(PatternID::ZERO).collect();Áô“З‘3¶Ð�ü¾ÐB? // Using an invalid pattern ID will result in nothing yielded.Áü…ÑKH let got = nfa.group_info().pattern_names(PatternID::must(999)).count();Á¼ÕÑ assert_eq!(0, got);ÁñÑ�üùÑ.Ǭ/<¬Òä¤/TÍÒÂ: Â:�» Â:ýÝBÿó  ØÒó µ’$ÙÒü¬á!ü—Ó96 Returns true if and only if this NFA has at least oneÁüÕÓ:7 [`Capture`](State::Capture) in its sequence of states.Á”Ô�üœÔEB This is useful as a way to perform a quick test before attemptingÁüæÔHE something that does or does not require capture states. For example,Áü³ÕKH some regex engines (like the PikeVM) require capture states in order toÁ„ƒÖ work at all.Á˜Ö�l Ö•£/²Ö�üºÖJG This example shows a few different NFAs and whether they have capturesÁ\‰× or not.Á™×�<¡×ä¤/ü­×<¸£Hî×�üö×$! // Obviously has capture states.ÁüŸØ let nfa = NFA::new("(a)")?;ÁüÃØ assert!(nfa.has_capture());ÁçØ�üïØFC // Less obviously has capture states, because every pattern has atÁüºÙKH // least one anonymous capture group corresponding to the match for theÁ´ŠÚ // entire pattern.Áì¥ÚŽËJüÇÚ±çJëÚ�üóÚKH // Other than hand building your own NFA, this is the only way to buildÁüÃÛKH // an NFA without capturing groups. In general, you should only do thisÁü“ÜHE // if you don't intend to use any of the NFA-oriented regex engines.ÁüàÜIF // Overall, capturing groups don't have many downsides. Although theyÁü®ÝJG // can add a bit of noise to simple NFAs, so it can be nice to disableÁüýÝ# // them for debugging purposes.Á4¥ÞÅ·0ü°ÞC@ // Notice that 'has_capture' is false here even when we have anÁüøÞ-* // explicit capture group in the pattern.ÁìªßêÝ/üÌßE÷¡J¼–à .build("(a)")?;Áü²à  assert!(!nfa.has_capture());Á×à�üßà.Ǭ/<’áä¤/\³áÃ: Ã:�»Bÿó  ¿áó …$Àáü¬þüöáDA Returns true if and only if this NFA can match the empty string.Áü¿âHE When it returns false, all possible matches are guaranteed to have aÁ¤Œã non-zero length.Á¥ã�ü­ãHE This is useful as cheap way to know whether code needs to handle theÁüúãJG case of a zero length match. This is particularly important when UTF-8ÁüÉäHE modes are enabled, as when UTF-8 mode is enabled, empty matches thatÁü–åEB split a codepoint must never be reported. This extra handling canÁüàåGD sometimes be costly, and since regexes matching an empty string areÁü¬æHE somewhat rare, it can be beneficial to treat such regexes specially.Áùæ�l�ç•£/“ç�ü›çFC This example shows a few different NFAs and whether they match theÁüæçFC empty string or not. Notice the empty string isn't merely a matterÁü±èHE of a string of length literally `0`, but rather, whether a match canÁüþè*' occur between specific pairs of bytes.Á­é�<µéä¤/üÁé;ˆƒI�ê�ü‰ê0- // The empty regex matches the empty string.Áä¾ê let nfa = NFA::new("")?;Áüßê41 assert!(nfa.has_empty(), "empty matches empty");Áü˜ëFC // The '+' repetition operator requires at least one match, and soÁüãë'$ // does not match the empty string.Áô�ì let nfa = NFA::new("a+")?;Áü²ì85 assert!(!nfa.has_empty(), "+ does not match empty");Áüïì,) // But the '*' repetition operator does.Áô í let nfa = NFA::new("a*")?;ÁüÃí30 assert!(nfa.has_empty(), "* does match empty");ÁüûíJG // And wrapping '+' in an operator that can match an empty string alsoÁüÊî/, // causes it to match the empty string too.Áüþî! let nfa = NFA::new("(a+)*")?;Áü¤ï<9 assert!(nfa.has_empty(), "+ inside of * matches empty");Áåï�üíïFC // If a regex is just made of a look-around assertion, even if theÁü¸ðJG // assertion requires some kind of non-empty string around it (such asÁü‡ñGD // \b), then it is still treated as if it matches the empty string.ÁüÓñJG // Namely, if a match occurs of just a look-around assertion, then theÁü¢ò // match returned is empty.ÁìÆòêÝ/üèò2è¢0üŸó)& .build(r"^$\A\z\b\B(?-u:\b\B)")?;ÁüÍó74 assert!(nfa.has_empty(), "assertions match empty");Áü‰ôGD // Even when an assertion is wrapped in a '+', it still matches theÁ¤Õô // empty string.Áüîô  let nfa = NFA::new(r"\b+")?;Áü“õ@= assert!(nfa.has_empty(), "+ of an assertion matches empty");ÁØõ�üàõJG // An alternation with even one branch that can match the empty stringÁü¯ö63 // is also said to match the empty string overall.Áüêö+( let nfa = NFA::new("foo|(bar)?|quux")?;Áüš÷=: assert!(nfa.has_empty(), "alternations can match empty");ÁÜ÷�üä÷C@ // An NFA that matches nothing does not match the empty string.Áü¬ø" let nfa = NFA::new("[a&&b]")?;ÁüÓøIF assert!(!nfa.has_empty(), "never matching means not matching empty");Áü¡ùGD // But if it's wrapped in something that doesn't require a match atÁüíù/, // all, then it can match the empty string!Áü¡ú# let nfa = NFA::new("[a&&b]*")?;ÁüÉúEB assert!(nfa.has_empty(), "* on never-match still matches empty");Áü“ûIF // Since a '+' requires a match, using it on something that can neverÁüáûGD // match will itself produce a regex that can never match anything,Áü­ü0- // and thus does not match the empty string.Áüâü# let nfa = NFA::new("[a&&b]+")?;ÁüŠýHE assert!(!nfa.has_empty(), "+ on never-match still matches nothing");Á×ý�üßý.Ǭ/<’þä¤/L³þÄ: Ä:�»Bÿó  ½þó ¾à$¾þì—‘üòþ63 Whether UTF-8 mode is enabled for this NFA or not.Á­ÿ�üµÿFC When UTF-8 mode is enabled, all matches reported by a regex engineÁü€€HE derived from this NFA are guaranteed to correspond to spans of validÁüÍ€JG UTF-8. This includes zero-width matches. For example, the regex engineÁüœ�GD must guarantee that the empty regex will not match at the positionsÁüè�C@ between code units in the UTF-8 encoding of a single codepoint.Á°‚�ü¸‚.+ See [`Config::utf8`] for more information.Áë‚�üó‚šîG—ƒ�lŸƒ•£/±ƒ�ü¹ƒIèîGü‡„!»ïG­„�<µ„ä¤/ÌÁ„ô¤/üß„.ŒðG¬’…źE4¬…Ý¥/·…�ô¿…éðGüâ…Jœ§/±†�ü¹†(«ñGüæ†&Äô3ü‘‡-ëñGüÇ=¢òG…ˆ�ü�ˆDõòGüÖˆGÃóGÌ¢‰“ôG¼À‰µôGü܉-ëñGüŽŠ=äôGЊ�üØŠH·õGô¥‹ˆöGüÈ‹6¥£0¤ƒŒ †?üœŒ-ëñGüÎŒ=ÙöG���¼˜�«÷Gü´�-ëñGüæ�=Ú÷G¨Ž�¼°Ž¬øGüÌŽ-ëñGüþŽ=äôGÀ��¼È�ôøGüä�-ëñGü–�'Ь/Â��üÊ�.Ǭ/<ý�ä¤/<ž‘Å: Å:�»Bÿó  ¦‘ó Çá$§‘ü�œ üÖ‘A> Returns true when this NFA is meant to be matched in reverse.Áœ’�ü¤’JG Generally speaking, when this is true, it means the NFA is supposed toÁüó’KH be used in conjunction with moving backwards through the haystack. ThatÁüÓ?< is, from a higher memory address to a lower memory address.Á‡”�ü�”FC It is often the case that lower level routines dealing with an NFAÁüÚ”KH don't need to care about whether it is "meant" to be matched in reverseÁüª•HE or not. However, there are some specific cases where it matters. ForÁü÷•FC example, the implementation of CRLF-aware `^` and `$` line anchorsÁü–A> needs to know whether the search is in the forward or reverseÁüˆ—IF direction. In the forward direction, neither `^` nor `$` should matchÁüÖ—HE when a `\r` has been seen previously and a `\n` is next. However, inÁü£˜GD the reverse direction, neither `^` nor `$` should match when a `\n`Áüï˜KH has been seen previously and a `\r` is next. This fundamentally changesÁü¿™FC how the state machine is constructed, and thus needs to be alteredÁüŠš)& based on the direction of the search.Á¸š�üÀšLI This is automatically set when using a [`Compiler`] with a configurationÁü‘›IF where [`Config::reverse`] is enabled. If you're building your own NFAÁìß› by hand via a [`Builder`]ÁT–œÆ: Æ:�»Bÿó  ¡œó ˆ$¢œü¾®.üÔœKH Returns true if and only if all starting states for this NFA correspondÁü¤�+( to the beginning of an anchored search.ÁÔ��üÜ�KH Typically, an NFA will have both an anchored and an unanchored startingÁü¬žJG state. Namely, because it tends to be useful to have both and the costÁüûžGD of having an unanchored starting state is almost zero (for an NFA).ÁüÇŸJG However, if all patterns in the NFA are themselves anchored, then evenÁü– GD the unanchored starting state will correspond to an anchored searchÁüâ 30 since the pattern doesn't permit anything else.Áš¡�l¢¡•£/´¡�ü¼¡DA This example shows a few different scenarios where this method'sÁÄ…¢ return value varies.Á¢¢�<ª¢ä¤/ü¶¢+”“Hæ¢�üî¢KH // The unanchored starting state permits matching this pattern anywhereÁü¾£74 // in a haystack, instead of just at the beginning.Áìú£ŽËJüœ¤-* assert!(!nfa.is_always_start_anchored());ÁΤ�üÖ¤GD // In this case, the pattern is itself anchored, so there is no wayÁü¢¥# // to run an unanchored search.ÁôÊ¥ÓªJüí¥,) assert!(nfa.is_always_start_anchored());Áž¦�ü¦¦KH // When multiline mode is enabled, '^' can match at the start of a lineÁüö¦IF // in addition to the start of a haystack, so an unanchored search isÁÌħ // actually possible.Áüâ§" let nfa = NFA::new("(?m)^a")?;Áü‰¨-»­K»¨�üèJG // Weird cases also work. A pattern is only considered anchored if allÁü’©96 // matches may only occur at the start of a haystack.ÁüЩ" let nfa = NFA::new("(^a)|a")?;Áü÷©-»­K©ª�ü±ªIF // When multiple patterns are present, if they are all anchored, thenÁüÿª&# // the NFA is always anchored too.Áüª«2/ let nfa = NFA::new_many(&["^a", "^b", "^c"])?;Áüá«,ޝK’¬�üš¬DA // But if one pattern is unanchored, then the NFA must permit anÁÌ㬠// unanchored search.Áü�­1. let nfa = NFA::new_many(&["^a", "b", "^c"])?;Áü·­-»­Ké­�üñ­.Ǭ/<¤®ä¤/ÄÅ®Ç: Ç:�»Bÿó  Þ®ó ‚©$ß®ü†¼*ü³¯=: Returns the look-around matcher associated with this NFA.Áõ¯�üý¯IƒÁHü˰EÖÁHü•±K¥ÂHüå±/úÂH™²�ü¡²@= If the NFA was built using a [`Compiler`], then this matcherÁüæ²=: can be set via the [`Config::look_matcher`] configurationÁü¨³B? knob. Otherwise, if you've built an NFA by hand, it is set viaÁüï³" [`Builder::set_look_matcher`].Á–´�lž´•£/°´�ü¸´KÚÃHˆµ�<�µä¤/Ìœµô¤/üºµ.ŒðGüíµ èÄH¬’¶źE4¬¶Ý¥/·¶�ü¿¶'¼ÅHüë¶'îÅH—·�ôŸ·ˆöGü·>»ÆHü…¸!„ÇHü«¸&Ê›0Ö¸�üÞ¸9ÌÇH|œ¹¡´0ü°¹#žÈHüع,ÌÈH4‰º½µ0ü”º:‘ÉH|Óº¡´0lçºðç6üùº(òÉH4¦»½µ0±»�ü¹».Ǭ/<ì»ä¤/d�¼È: È:�» È:‚óBÿó  š¼ó Š$›¼üÜË%üÛ¼HE Returns the union of all look-around assertions used throughout thisÁü¨½GD NFA. When the returned set is empty, it implies that the NFA has noÁüô½IF look-around assertions and thus zero conditional epsilon transitions.Á¾�üʾB? This is useful in some cases enabling optimizations. It is notÁü‘¿GD unusual, for example, for optimizations to be of the form, "for anyÁüÝ¿HE regex with zero conditional epsilon transitions, do ..." where "..."ÁüªÀ! is some kind of optimization.ÁÐÀ�üØÀKH This isn't only helpful for optimizations either. Sometimes look-aroundÁü¨ÁIF assertions are difficult to support. For example, many of the DFAs inÁüöÁIF this crate don't support Unicode word boundaries or handle them usingÁüÄÂGD heuristics. Handling that correctly typically requires some kind ofÁü�ÃKH cheap check of whether the NFA has a Unicode word boundary in the firstÁTàà place.ÁïÃ�l÷Õ£/‰Ä�ü‘ÄJG This example shows how this routine varies based on the regex pattern:ÁàÄ�<èÄä¤/üôÄ?< use regex_automata::{nfa::thompson::NFA, util::look::Look};Á¸Å�ìÀÅ // No look-around at all.ÁìâÅŽËJü„Æ+( assert!(nfa.look_set_any().is_empty());Á´Æ�ü¼ÆHE // When multiple patterns are present, since this returns the union,Áü‰ÇEB // it will include look-around assertions that only appear in oneÁ|ÓÇ // pattern.ÁüçÇ63 let nfa = NFA::new_many(&["a", "b", "a^b", "c"])?;Áü¢È63 assert!(nfa.look_set_any().contains(Look::Start));ÁÝÈ�üåÈEB // Some groups of assertions have various shortcuts. For example:Áü¯É%" let nfa = NFA::new(r"(?-u:\b)")?;ÁüÙÉ0- assert!(nfa.look_set_any().contains_word());ÁüŽÊ96 assert!(!nfa.look_set_any().contains_word_unicode());ÁüÌÊ63 assert!(nfa.look_set_any().contains_word_ascii());Á‡Ë�ü�Ë.Ǭ/<ÂËä¤/dãËÉ: É:�»¯ñBÿó  ðËó ‹$ñËü“Ú,ü«ÌDA Returns the union of all prefix look-around assertions for everyÁüôÌKH pattern in this NFA. When the returned set is empty, it implies none ofÁüÄÍHE the patterns require moving through a conditional epsilon transitionÁü‘Î52 before inspecting the first byte in the haystack.ÁËÎ�üÓÎJG This can be useful for determining what kinds of assertions need to beÁü¢ÏGD satisfied at the beginning of a search. For example, typically DFAsÁüîÏHE in this crate will build a distinct starting state for each possibleÁü»ÐFC starting configuration that might result in look-around assertionsÁü†ÑEB being satisfied differently. However, if the set returned here isÁüÐÑHE empty, then you know that the start state is invariant because thereÁü�Ò74 are no conditional epsilon transitions to consider.ÁÙÒ�láÒ•£/óÒ�üûÒJÚÇKÊÓ�<ÒÓä¤/üÞÓ?ÊÈK¢Ô�ìªÔ ÉKìÌÔŽËJüîÔ2/ assert!(nfa.look_set_prefix_any().is_empty());Á¥Õ�ü­ÕH™ÊKüúÕEìÊKüÄÖJG // pattern. But it will only include assertions that are in the prefixÁü“×KH // of a pattern. For example, this includes '^' but not '$' even thoughÁ¼ã× // '$' does appear.Áüÿ×74 let nfa = NFA::new_many(&["a", "b", "^ab$", "c"])?;Áü»Ø=: assert!(nfa.look_set_prefix_any().contains(Look::Start));ÁüýØ<9 assert!(!nfa.look_set_prefix_any().contains(Look::End));Á¾Ù�üÆÙ.Ǭ/<ùÙä¤/œšÚÊ: Ê:�»¯ñBÿó  ®Úó Œ$¯Úü ð#üÁê41 Returns the memory usage, in bytes, of this NFA.Áúê�ü‚ëDA This does **not** include the stack size used up by this NFA. ToÁüËë30 compute that, use `std::mem::size_of::()`.Áƒì�l‹ì•£/�ì�ü¥ìIF This example shows that large Unicode character classes can use quiteÁ¤óì a bit of memory.ÁŒí�<”íä¤/ü í=ÔÂ/üâí+”“H’î�üšî'ßÒJüÆî+( let nfa_ascii = NFA::new(r"(?-u:\w)")?;Áöî�üþîHE assert!(10 * nfa_ascii.memory_usage() < nfa_unicode.memory_usage());ÁËï�üÓï.Ǭ/<†ðä¤/d§ðË: Ë:�»Bÿó  ´ðó �$µð”Òð<Ýð¼ôò�»� g�ü’ó8•óÌ:Í:Î: Ì:�» Í:€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Î:­àBÿ� ™ó� �$šóœ  óTÌ–Ô»’“”•–—˜™œü¥—'D³—± Ô»�»Bÿ‘‘ ’$À—ü›µ-T©µ± Ï: Ï:Ô» Ï:ýÝBÿ‘ ´µ‘Øþ$µµü£¸5±¸± Ð: Ð:Ô»ȽÇBÿ‘ µ¸‘ ”$º¸ƒ,À¸ü¬Ã™TºÃ± Ñ:Ò: Ñ:Ô»ÇÇ Ò:À÷Bÿ‘ ÎÑ •$ÓÃÀ táÃÖ „‚Äòl¥Äü‘Æ,DŸÆ± Ó: Ó:Ô»Bÿ‘ ¨Æ‘ –$­Æê³Æü�Ç/\�DZ Ô: Ô:Ô»Bÿ‘ ©Ç‘ —$®Çê´Çü¥È9„³È± Õ: Õ:Ô»‚óBÿ‘ ÄÈ‘ ˜$ÉÈ£ ÏÈü‡Í~d•ͱ Ö:×: Ö:Ô» ×:ꆹÓBÿ‘ «Í‘ ™$°ÍáD¾ÍÒΙ�š�š�šš™šØŒÌŠÌŠ“ºÏŠ�Њœ“D^)c˜þOþý‹›΃řǙș­É™Ê™àË™óG*¤�R{9 ÈäUÿUÿãΙ�›�›�››™ííKü…Ô6,“Ô± Ø:Ù: Ø:Ô» Ù:À÷Bÿ‘ ™Ô‘ œ$žÔ old_to_newÁT¤ÔÌÿÖÔ»ž gžüŸ×8¢×Ú:Û:Ü: Ú:Ô» Û:€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ü:­àBÿ� ¦×� ž$§×œ ­×Tÿ�Ƚ ¡¢üÏ™ ü�‘GD Returns true if and only if this state contains one or more epsilonÁ„Ü‘ transitions.Áñ‘�üù‘HE In practice, a state has no outgoing transitions (like `Match`), hasÁüÆ’GD only non-epsilon transitions (like `ByteRange`) or has only epsilonÁü’“ transitions (like `Union`).Á¶“�l¾“•£/Г�<Ø“ä¤/Ìä“ô¤/ü‚”+( nfa::thompson::{State, Transition},Áü²”;8 util::primitives::{PatternID, StateID, SmallIndex},Á4ò”Ý¥/ý”�ü…•.+ // Capture states are epsilon transitions.Áü¸•  let state = State::Capture {ÁäÝ• next: StateID::ZERO,Áüþ•$! pattern_id: PatternID::ZERO,Áü§–&# group_index: SmallIndex::ZERO,ÁüÒ– slot: SmallIndex::ZERO,Á4ö–Ý¥/ü�—  assert!(state.is_epsilon());Á¦—�ü®—  // ByteRange states are not.ÁüÓ—" let state = State::ByteRange {Áüú—JG trans: Transition { start: b'a', end: b'z', next: StateID::ZERO },Á4ɘÝ¥/üÔ˜! assert!(!state.is_epsilon());Áú˜�ü‚™.Ǭ/<µ™ä¤/TÖ™á: á:ȽBÿŸ ᙟ  $â™ü¤�d§�Î â: â:ȽBÿŸ ´�Ÿ ¡$µ�üΤ&,ѤÎ ã:ä: ã:Ƚ ä:À÷BÿŸ פŸ ¢$ܤ± ,â¤̽­Ƚ¤ g¤üÝ­8à­å:æ:ç: å:Ƚ æ:€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ç:­àBÿ£ ä­£ ¤$å­œ ë­а¤�¥�¥�¥¥¤¥¶ê˜âUÿ$�¶¤�¦�¦�¦¦¤¦ÍŠ˜âUÿ´ Â‘À¨ª¬üƒÅDü½Â?< This follows the matching transition for a particular byte.Á�Ã�ü‰ÃC@ The matching transition is found by looking for a matching byteÁüÑÃFC range (there is at most one) corresponding to the position `at` inÁ|œÄ `haystack`.Á°Ä�ü¸Ä85 If `at >= haystack.len()`, then this returns `None`.Á<ŠÅï:ð: ï:‘À ð:ÈšŠöBÿ§ ’ŧ ¨æmý�ˆl™´’l$ìŨ�©�©�©©¨£Ùü�Éad�Éñ: ñ:‘ÀÞЊöBÿ§ ¥É§ ª$¦ÉÊ$´É4ƒÊª�«�«�««ª«¬¡IŠöUÿøØü–Ì7ü®Ê?”€LòÊ�üúÊIF The matching transition is found by looking for a matching byte rangeÁüÈË;8 (there is at most one) corresponding to the byte given.Ád�Ìò: ò:‘ÀŠöBÿ§ ªÌ§îÛ$«Ì—»!q¬êÛ÷À®°²³üÙÞDü†Ü?”€LÊÜ�üÒÜEB The matching transition is found by looking for a transition thatÁüœÝEB doesn't correspond to `StateID::ZERO` for the byte `at` the givenÁÜæÝ position in `haystack`.Á†Þ�üŽÞ8°‚L<àÞú:û: ú:÷À û:ÈšŠöBÿ­ èÞ­ ®Hwý�2v™´ Returns true if the position `at` in `haystack` falls in thisÁü²ó  transition's range of bytes.Á×ó�üßó96 If `at >= haystack.len()`, then this returns `false`.Á<¤ô…;†; …;ÝÁ †;ÈšBÿ¸ ¬ô¸ ¹$­ôý�D³ô™´Äô$€õ¹�º�º�ºº¹ºÏ—ôÿKüßö8ü¦õFC Returns true if the given alphabet unit falls in this transition'sÁüñõKH range of bytes. If the given unit is [`EOI`](alphabet::Unit::eoi), thenÁÌÁö this returns `false`.Ádæö‡; ‡;ÝÁÞÐBÿ¸ óö¸ »$ôöÊ$úö4½÷»�¼�¼�¼¼»¼¬¡IUÿôÿKüÂø,üè÷FC Returns true if the given byte falls in this transition's range ofÁT³ø bytes.ÁdÉøˆ; ˆ;ÝÁBÿ¸ Öø¸Æá$×ø—»$Ýøô©ùÝÁ¿ g¿üÎù8Ñù‰;Š;‹; ‰;ÝÁ Š;€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡‹;­àBÿ¾ Õù¾ ¿$Öùœ Üùô•úLªúüÜ‚%ÄÂÂõÂÃÄÅQÆQÄá‚Lˆƒ$�ƒÁÁ›†ü¤ƒ'$§ƒ�; �;õ€ªBÿÁ ¬ƒÁ ÄÄ$±ƒtÌ:üÜ× An NFA backed Pike VM for executing regex searches with capturing groups. This module provides a [`PikeVM`] that works by simulating an NFA and resolving all spans of capturing groups that participate in a match. ÁÓ nfa-pikevmÁ´³:ô­:4Ô:‘$š$¡$¨$µ$Â$Ê$Ñ$Ù$–³Ð=ÅÇ–ÅÇü½…CÅȱ$å± ÅË�®Tëµ"Å̉´Ù,÷Ã#ÅÍŽä®þ¬#ÅÎ�œãD¢±&ÅÐØ$,´ÿÅÑ�$»«ÅÒé›LÔü(ÅÓñ�\ôž)ÅÕ¦¡L�Ù)ÅÖöžTŒ±)Å×µ¢<˜î)ÅØžDÀ§-ÅÚáºLÊé,ÅÛ—,ÕÑ,ÅÜÕÛ,Üú,ÅÝÓ¿Lãº-ÅÞ̼Tî‹-Åßú¹$úÚ,Åà§ÃLŸò-Åá,«þD¸à,ÈÔÈÖDÚÇʳ¶Ÿ¢üÈD”˜”‚…sv¤ÉgüÈ©Z]JM:=*-üÈè #ñóßáÍÏ»½¬“­¼  T­  ¸  ¯  ¾  È , ¿ 8funÁÀ & à 8²$Ä *Ê  Í  ¬ + ×  Ø  „ 8ìÙ  Ü  ƒ 8Ó<Ý  å 7æäç  Ž  ¦ 8œ 8ž¨L  & £  ¥ 8¦ 84ª 8‡,®  ³  Á  ´ 8µ 8ŒD¹  à  Å 8Æ , Ê 8ž¨LË % Î 8COUNTERSÁDÜ  ä 8withÁ$å  é  ›   ê 8™ ë & ì  î 8Í<ï  ö 8ŒD÷  ÿ  € 8ž¨L‚  …  š  † 8‡  ‹ 8™ Œ  � 8 borrow_mutÁTŽ  ˜  ™ % œ % ­ \ãÊÃäåæçèé´¨üõ.+ Return a new default PikeVM configuration.Á¯ÊÃBÿãã äüã6üæ$®�/��ü—Iè�/üåF»‘/ü°H‹’/üý3Ý’/µ�ü½B¦“/ü„Hò“/üÑFC where all possible matches are visited in the NFA by the `PikeVM`.Áœ�ü¤Eœ·6üîHì·6ü»K¿¸6ü‹I•¹6üÙC@ strategy. Specifically, `LeftmostFirst` results in the `PikeVM`Áü¡HE simulating dead states as a way to terminate the search and report aÁüîFC match. `LeftmostFirst` also supports non-greedy matches using thisÁü¹%" strategy where as `All` does not.ÁTêÊÃù¦ÊÃBÿãã å$ù¦$ÿüÜ0<üÚA„Ô6 �ü¨FÝÔ6üóG®Õ6ü¿ F€Ö6üŠ!HÑÖ6t×!£×6ê!�üò!IÉ×6üÀ"C�Ø6üˆ#HëØ6üÕ#G¾Ù6ü¡$H�Ú6|î$âÚ6‚%�üŠ%#ÞÞ6²%�lº%•£/Ì%�<Ô%ä¤/Ìà%ô¤/üþ%&…‹Jü©&#Þß6üÑ& €þC4ö&Ý¥/�'�ü‰'HÖà6ôÖ'ˆöGüù'30 .configure(PikeVM::config().prefilter(pre))Áü±($òá6üÚ(&Ê›0ü…).°â6ü¸)HE assert_eq!(Some(Match::must(0, 5..11)), re.find(&mut cache, input));Á…*�ü�*.Ǭ/<À*ä¤/Ì*�üÔ*F¦ä6dŸ+öä6°+�<¸+ä¤/ÌÄ+ô¤/üâ+&…‹Jü�,#Þß6üµ,$Œà64Þ,Ý¥/é,�üñ,Hýå6ô¾-ˆöGüá-3ɵLü™.$òá6üÂ.&Ê›0üí..°â6ü /:ý‚Düß/1. assert_eq!(None, re.find(&mut cache, input));Á•0�ü�0.Ǭ/<Ð0ä¤/Lã0ÊùŠÊÃBÿãã æ$ñ0Ѷ÷0ü�2)üÑ1:ÀË/t—2”; ”;ÊÃù¦Bÿã ¦2ã ç$§2üË31üƒ3CöÆ8lÒ3•; •;ÊÃřǙș­É™Ê™àË™óG*¤�R{9  •;äüBÿã à3ã è$á3ü¼63LÊ6–; –;ÊÃÊÃÊÃBÿã Ô6ã é$Õ6¥ Û6Ü7é�ê�ê�êêéêÞé8…Šd’I£Äìíîðñòó¼éIü¥I?< Create a new PikeVM builder with its default configuration.ÁðI£ÄBÿëë ìüåL@ü©K,) Build a `PikeVM` from the given pattern.ÁÚK�üâKJ„Ö/„±L×Ö/Óí”ÌLÔÆL,ìL›;œ; ›;£Ä œ;¸—Bÿë òLë í$óLîN<ùLü¨Nlü×M-* Build a `PikeVM` from the given patterns.ÁÓí”�NÔ‰NT¯N�;ž; �;£Ä ž;©ò¸—BÿëŒïï ÒNëŸÛ/ ºN°Û/T½Nª¡$ÓN¨ fŒ!ü÷QDüúO+( Build a `PikeVM` directly from its NFA.ÁªP�ü²PKš¢Dü‚QKï¢DüÒQ Ä£DtþQŸ; Ÿ;£Ä�»¸—Bÿë �Rëì–$ŽRß'”RüŒT;üÄSC@ Apply the given `PikeVM` configuration options to this builder.ÁL“T ;  ;£ÄÊñÆLBÿë �Të ñ$¢TÉ4¨TüûWdü—U7÷â/üÓU4¹ã/ŒV�ü”VJ…ä/tãVÙä/öV�üþVHE These settings only apply when constructing a PikeVM directly from aÁdËWáé/Óí”âWÔÜW4‚X¡; ¡;£ÄÝ’ÒÈLBÿë ’Xë ò$—XÉ4¥Xü£\Dü Y=åæ/üâY<­ç/£Z�ü«ZGð¨Dü÷Z"Á©Dž[�ü¦[HËÆLdó[áé/Ó픊\Ô„\Dª\¢; ¢;£Ä±ª°ÊLBÿë ³\ë ó$¸\É4¾\\§vðÄõöøùúûüýþÿ€�‚üè{7ü¹vJžõ/üˆw&# return the corresponding `PikeVM`.Á³w�ü»wHµö/üˆxˆ÷/¬x�l´x•£/Æx�<Îxä¤/üÚx?íðIžy�ü¦y*' let re = PikeVM::new("foo[0-9]+bar")?;ÁüÕy&Ê›0|€z¡´0ü”z$ݼ9ü½z=: re.find_iter(&mut cache, "zzzfoo12345barzzz").next(),Á4ÿz½µ0üŠ{.Ǭ/<½{ä¤/Óí”Ï{ÔÉ{ï{§; §;¸—Bÿô ü{ô õîN<ó{üüƒ[üÖ|Iåú/ü¤}8¹û/á}�lé}•£/û}�<ƒ~ä¤/ü�~?íðIÓ~�üÛ~63 let re = PikeVM::new_many(&["[a-z]+", "[0-9]+"])?;Áü–&Ê›0Á�üÉC–À9ü‘€6ãÀ9üÌ€6£Á9ü‡�6ãÁ9üÂ�8£Â9üÿ�8åÂ9ü¼‚8§Ã9üù‚ éÃ9üžƒ.Ǭ/<уä¤/Óí”ãƒÔ݃Dƒ„¨; ¨;©ò¸—BÿôŒ÷÷ ®„ôŸÛ/ Œ„°Û/T�„ öµ“¨ «� "ü‡�;ü”…HE Like `new`, but builds a PikeVM directly from an NFA. This is usefulÁüá…FC if you already have an NFA, or even if you hand-assembled the NFA.Á¬†�l´†•£/Ɔ�üΆEª‚0ü˜‡;8 compile an NFA from it and build a PikeVM from the NFA.Á؇�<à‡ä¤/üì‡F·âHü·ˆEÞ„0�‰�ü‰‰;»…0üɉ)�†0ü÷‰)µ†0ü¥Š)é†0üÓŠ)�‡0L�‹Ї0�‹�ü—‹;ñ‡0ü׋F·ˆ0¢Œ�üªŒ(ÿãHü׌Jœ§/ü¦�.ø»DüÙ�2ßäHü�Ž+ÄŠ0ÀŽ�üÈŽ.Ǭ/<ûŽä¤/dŽ��»¸—Bÿôô øß'›�üŽ”3üþ�30 Create a new `PikeVM` that matches every input.Á¶��l¾�•£/Ð��<Ø�ä¤/üä�?íðI¨‘�ü°‘%" let re = PikeVM::always_match()?;ÁüÚ‘&Ê›0…’�ü�’(œŽ0üº’DA assert_eq!(Some(expected), re.find_iter(&mut cache, "").next());Áüƒ“GD assert_eq!(Some(expected), re.find_iter(&mut cache, "foo").next());ÁüÏ“.Ǭ/<‚”ä¤/d•”¸—Bÿôô ùüë˜2ü¢•74 Create a new `PikeVM` that never matches any input.ÁÞ•�læ••£/ø•�<€–ä¤/üŒ–63 use regex_automata::nfa::thompson::pikevm::PikeVM;ÁÇ–�üÏ–$! let re = PikeVM::never_match()?;Áüø–&Ê›0£—�ü«—:7 assert_eq!(None, re.find_iter(&mut cache, "").next());Áüê—=: assert_eq!(None, re.find_iter(&mut cache, "foo").next());Áü¬˜.Ǭ/<ߘä¤/\ò˜¸—Bÿôô úÌå¤üý™2/ Return a default configuration for a `PikeVM`.Á´š�ü¼šIÉ”0üŠ›96 type when customizing the construction of a `PikeVM`.ÁÈ›�lЛ•£/â›�üê›D€ÈDü³œDÏÈDüüœ&žÉD§��ü¯�GÜÉDüû�+®ÊD«ž�<³žä¤/ü¿žGD use regex_automata::{nfa::thompson::{self, pikevm::PikeVM}, Match};Á‹Ÿ�ô“ŸˆöGü¶Ÿ6¥£0¬ñŸËó3ü‹ &Ê›0¶ �ܾ ÅÌDüÞ 41 let mut it = re.find_iter(&mut cache, haystack);Áü—¡63 assert_eq!(Some(Match::must(0, 0..0)), it.next());ÁüÒ¡63 assert_eq!(Some(Match::must(0, 1..1)), it.next());Áü�¢63 assert_eq!(Some(Match::must(0, 2..2)), it.next());ÁüÈ¢63 assert_eq!(Some(Match::must(0, 3..3)), it.next());Áüƒ£63 assert_eq!(Some(Match::must(0, 4..4)), it.next());Áü¾£63 assert_eq!(Some(Match::must(0, 5..5)), it.next());Áüù£ éÃ9ž¤�ü¦¤.Ǭ/<Ù¤ä¤/4ì¤ÊÃBÿôô ûܵ­ü¢¥DA Return a builder for configuring the construction of a `PikeVM`.Áë¥�üó¥@ºŸ0ü¸¦%… 0â¦�lꦕ£/ü¦�ü„§C›�3|̧°Æ9à§�<è§ä¤/Ìô§ô¤/ü’¨.ŒðG¬Å¨‘¢0tߨ·„04ò¨Ý¥/ý¨�ô…©ˆöGü¨©2è¢0üß©6¥£0üšª&æ£0üŪJœ§/”«�üœ«4ËÈ9üÕ«.‰É9üˆ¬1§¥0ü¾¬+ÄŠ0î¬�üö¬.Ǭ/<©­ä¤/<¼­£ÄBÿôôú üõ±)üõ­GÒ¦0üÁ®/, valid for the search APIs on this `PikeVM`.Áõ®�üý®JG A `Captures` value created for a specific `PikeVM` cannot be used withÁ¼Ì¯ any other `PikeVM`.Áè¯�üð¯Aߨ0ü¶°D«©0üÿ°JG constructors that permit the `PikeVM` to do less work during a search,Áüα" and thus might make it faster.Á|ü±©; ©;ðĘÛBÿô Œ²ôšÖ$�²ü�µ#üç²)& Create a new cache for this `PikeVM`.Á•³�ü�³@ˆ¬0üâ³GD `PikeVM`. If you want to reuse the cache for another `PikeVM`, thenÁü®´HE you must call [`Cache::reset`] with that `PikeVM` (or, equivalently,Áìû´ [`PikeVM::reset_cache`]).Ád¤µª; ª;ðıÇBÿô ±µô þ$²µüŸÀ,üçµIã®0üµ¶+( this `PikeVM` (and only this `PikeVM`).Áå¶�üí¶Hð¯0ôº· with a different `PikeVM`.ÁÝ·�lå·•£/÷·�üÿ·KH This shows how to re-purpose a cache for use with a different `PikeVM`.Áϸ�<׸ä¤/üã¸=ÔÂ/ü¥¹?íðIé¹�üñ¹" let re1 = PikeVM::new(r"\w")?;Áü˜º" let re2 = PikeVM::new(r"\W")?;Á¿º�üǺ'ð³0|󺡴0ü‡»#»´0ü¯»/, re1.find_iter(&mut cache, "Δ").next(),Á4㻽µ0î»�üö»HÛµ0üüI®¶0ü‘½30 // it with the PikeVM we'd like to use it with.Á4ɽÅ·0üÔ½JÖ·0|£¾ª¸0ü·¾ ĸ0|ܾ¡´0üð¾#ý¸0ü˜¿0- re2.find_iter(&mut cache, "☃").next(),Á4Í¿½µ0Ø¿�üà¿.Ǭ/<“Àä¤/\¦À«;¬; «;ðÄ ¬;±ÇBÿô ²Àô ÿ$³ÀóA,¹Àü�Ê"üôÀEB Returns the total number of patterns compiled into this `PikeVM`.Á¾Á�üÆÁJG In the case of a `PikeVM` that contains no patterns, this returns `0`.Á•Â�l�•£/¯Â�ü·ÂC@ This example shows the pattern length for a `PikeVM` that neverÁdÿ matches:Á�Ã�<˜Ãä¤/ü¤Ã6¡ÜLßÃ�üçÃ$ïÜLü�Ä$òéDü¹Ä.Ǭ/<ìÄä¤/øÄ�ü€ÅFC And another example for a `PikeVM` that matches at every position:ÁËÅ�<ÓÅä¤/üßÅ6¡ÜLšÆ�ü¢Æ%ÖØLüÌÆ$ûëDüõÆ.Ǭ/<¨Çä¤/´Ç�ü¼ÇHE And finally, a `PikeVM` that was constructed from multiple patterns:Á‰È�<‘Èä¤/ü�È6¡ÜLØÈ�üàÈ@= let re = PikeVM::new_many(&["[0-9]+", "[a-z]+", "[A-Z]+"])?;Áü¥É$ÎîDüÎÉ.Ǭ/<�Êä¤/\”Ê­; ­;ðÄBÿô  Êô €$¡Êü—Ë#üÜÊ(% Return the config for this `PikeVM`.ÁTžË®; ®;ðÄ ®;ÊÃBÿô ©Ëô �$ªËìžÌüÝË.¾¼0<¥Ì¯; ¯;ðÄ ¯;�»Bÿô ­Ìôô©$®Ì\ÙÌðÄ„‡Š�’üžÞrüëÌIF Returns true if and only if this `PikeVM` matches the given haystack.Á¹Í�üÁÍCæå0ü‰ÎF´æ0üÔÎFC underlying NFA enters a match state, then this routine will returnÁüŸÏIÖç0üíÏEªè0ü·ÐIúè0ü…ÑFÎé0¼ÐÑžê0ìÑ�lôÑ•£/†Ò�ÜŽÒÙñ0®Ò�<¶Òä¤/üÂÒ6¡ÜLýÒ�ü…Ó*æËLü´Ó&Ê›0ßÓ�üçÓ4áò0ü Ô0 ó0üÕÔ.Ǭ/<ˆÕä¤/”Õ�üœÕ+…ô0ÌÕ�üÔÕGˆû;ü ÖEÚû;têÖíõ0ýÖ�<…×ä¤/ü‘×?< use regex_automata::{nfa::thompson::pikevm::PikeVM, Input};ÁÕ×�üÝ×  let re = PikeVM::new("a*")?;Áü‚Ø&Ê›0­Ø�üµØD¯÷0üþØ.Ǭ/<±Ùä¤/½Ù�üÅÙE¨ø0ü�ÚIøø0ôÝÚËù0€Û�<ˆÛä¤/ü”ÛFC use regex_automata::{nfa::thompson::{pikevm::PikeVM, NFA}, Input};ÁßÛ�ôçÛˆöGüŠÜ,üú0´»Ü²û0üÖÜ&Ê›0�Ý�ü‰ÝCïû0üÑÝ.Ǭ/<„Þä¤/D¥Þ°;±; °;ðÄ ±;±ÇÓ¤Bÿƒ¸……††… ÏÞƒÀþ0 ²ÞÒþ0|µÞ „¸Ó¤$ÐÞóA+“–`6“®Þ<>üÓîwü‹àKÆ�EÛà�üãàKÜÿ0ü³áGD individual spans of each capturing group, use [`PikeVM::captures`].Áÿá�l‡â•£/™â�ü¡âD·ƒ1üêâG†„1ü¶ãGØ„1ü‚äKª…1üÒä&€†1ýä�ü…åK¾†1üÕåH”‡1ü¢æFç‡1üíæC¸ˆ1üµçF†‰1ü€è ׉1¥è�<­èä¤/ü¹è?íðIýè�ü…é'$ let re = PikeVM::new("foo[0-9]+")?;Áü±é&Ê›0üÜé(÷Š1ü‰ê@ª‹1Îê�üÖêG‚Œ1ü¢ëJÔŒ1üñëH©�1ü¾ì# let re = PikeVM::new("abc|a")?;Áüæì&Ê›0ü‘í(¶Ž1ü¾í;éŽ1þí�ü†î.Ǭ/<¹îä¤/$Úî²;³; ²;ðÄ ³;±ÇÓ¤³¶Bÿƒ¸ˆ…‰ˆ‰ €ïƒÀþ0 ãîÒþ0|æî ‡¸Ó¤$�ïóA� –`š ßî<>ü®ü‡ü¦õH�Ž<üóõFãŽ<ü¾öK´�<´Ž÷‰�<©÷�l±÷•£/Ã÷�<Ë÷ä¤/ü×÷>; use regex_automata::{nfa::thompson::pikevm::PikeVM, Span};Ášø�ü¢øA> let re = PikeVM::new(r"^([0-9]{4})-([0-9]{2})-([0-9]{2})$")?;ÁüèøJœ§/·ù�ü¿ù52 re.captures(&mut cache, "2010-03-14", &mut caps);Áìùù¾’<ü›ú:æ’<üÚú:«“<ü™û;ð“<Ùû�üáû.Ǭ/<”üä¤/Dµü´;µ;¶; ´;ðÄ µ;±ÇÓ¤ ¶;˜ÛBÿƒ¸‹…Œ‹Œ ßüƒÀþ0 ÂüÒþ0|Åü ЏӤ$àüóA�¦–`š¦ɾ¥¦¾üEGüÀƒ”üóýH“ê9üÀþJåê9�ÿ�l—ÿ•£/©ÿ�<±ÿä¤/ü½ÿ?íðI�€�ü‰€'§‘Müµ€&Ê›0à€�üè€#ºñ9ü��Gçñ9ìÜ�·ò9ìþ�Ýò9ô ‚ƒó9ü«ó9<ç‚Óó9üó‚.Ǭ/<¦ƒä¤/LǃŽ� ŽðÄ �±ÇÓ¤¨$¨$¾¾¬$é¾Å­$óAÅ®$ɾů$ÛËÅJ%½5Î…çŽ�¸Bÿƒ¸�…‘‘�уƒÀþ0 ݃Òþ0|àƒ �¸Ó¤$þƒóAr©–`}©CEÕƒÙƒGIü¿�œü“†Iô›<üá†7Èœ<�‡�ü¥‡JG This yields the same matches as [`PikeVM::find_iter`], but it includesÁüô‡Eë�<¾ˆ�üƈJÈž<ü•‰J�Ÿ<üä‰JòŸ<ü³Š%Ç <ÝŠ�l劕£/÷Š�<ÿŠä¤/ü‹‹>ƒ–M΋�üÖ‹41 let re = PikeVM::new("foo(?P[0-9]+)")?;Áü�Œ&Ê›0ºŒ�üÂŒ#ºñ9üꌣ¢<üŽ�(% .captures_iter(&mut cache, text)Áü»�Kø¢<ü‹Ž?Σ<œÏŽ—¤<ì玷ò9̉�¤<Ô§�å¤<ÜÆ�‰¥<<æ�Óó9üò�.Ǭ/<¥�ä¤/lÆ�“” “ðÄ ”±ÇÓ¤µ$µ$ëĹ$é¾Åº$óAÅ»$ɾż$ÛËÅÕŽðÃ÷¸áp“”¸Bÿƒ¸•…––•Ô�ƒÀþ0 à�Òþ0|ã� ’¸Ó¤$�‘óAG¬–`R¬CEØ�Ü�GI\ü’ðĘ™œŸüÅ­vüŽ“H�Ž<üÛ“FãŽ<ü¦”K´�<´ö”‰�<‘•�ü™•IF This is like [`PikeVM::captures`], but it accepts a concrete `&Input`Áüç• Þã<Œ–�ü”–&ì¥1¿–�üÇ–IF This example shows how to build a multi-PikeVM that permits searchingÁÔ•—®Ê3´—�<¼—ä¤/ÌÈ—ô¤/üæ—&…‹Jü‘˜*òö<4À˜Ý¥/˘�üÓ˜EB let re = PikeVM::new_many(&["[a-z0-9]{6}", "[a-z][a-z0-9]{5}"])?;Áü�™Jœ§/äì™üÌ3�š�ü•šC°Í3üÝšKþÍ3ü­›GÔÎ3„ù›¥Ï3üŽœ.öø<üÁœ<9 re.search(&mut cache, &Input::new(haystack), &mut caps);Áü‚�+ÄŠ0²��üº�JåÐ3ü‰ž"ºÑ3ü°ž.­ú<üãž$¡Ò3üŒŸ9ÐÒ3üÊŸ-ëñGüüŸ+ÄŠ0¬ �ü´ .Ǭ/<ç ä¤/ó �üû 0€±1°¡�ü¸¡Gȱ1ü„¢;š²1Ä¢�<Ì¢ä¤/üØ¢=ÔÂ/üš£FC use regex_automata::{nfa::thompson::pikevm::PikeVM, Match, Input};Áå£�üí£+( let re = PikeVM::new(r"\b[0-9]{3}\b")?;Áü�¤Jœ§/üì¤ص1�¥�ü˜¥E�¶1üâ¥Fß¶1ü­¦I°·1üû¦E„¸1tŧÓ¸1üا.ì¸1ü‹¨C@ re.search(&mut cache, &Input::new(&haystack[3..6]), &mut caps);ÁüÓ¨+ÄŠ0ƒ©�ü‹©KŸº1üÛ©Hõº1ü¨ªFÈ»1üóªC™¼1Ä»«æ¼1üØ«1”€=üެ-ëñGüÀ¬+ÄŠ0ð¬�üø¬.Ǭ/<«­ä¤/4Ì­·;¸;¹;º;»; ·;ðÄ ¸;±Ç ¹;Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²º; »;˜ÛBÿ— Ü­—£Í$Ý­óA5®–`@®ɾK®ü­ÅŸüͯH�Ž<üš°F“ƒ=üå°Käƒ=üµ±Kº„=ü…²G�…=Ѳ�üÙ²EB This is like [`PikeVM::search`], but it accepts a raw slots sliceÁü£³GÂÃ1üï³0”Ä1¤´�ü¬´KÜÄ1üü´F²Å1üǵKƒÆ1ü—¶6ÙÆ1Ò¶�üÚ¶C§Ç1”¢·ôÇ1ü¹·A´ÅEüÿ·KÜÈ1dϸáé/”à¸ôÇ1ü÷¸KÎÉ1üǹF¤Ê1d’ºáé/£º�l«º•£/½º�üźAäÌ1ü‹»J°Í1üÚ»)…Î1ˆ¼�<�¼ä¤/üœ¼=ÔÂ/üÞ¼JG use regex_automata::{nfa::thompson::pikevm::PikeVM, PatternID, Input};Á­½�üµ½  let re = PikeVM::new_many(&[Á„Ú½þŠ=|x‹=Dƒ¾•Ð1ü�¾&Ê›0ü»¾%À‹=å¾�üí¾D‰Ñ1ü¶¿GØÑ1ä‚À©Ò1ô£ÀÏÒ1üÆÀ>; let pid = re.search_slots(&mut cache, &input, &mut slots);Áü‰Á.ÆÓ1¼Á�üÄÁKŒÔ1ü”ÂIâÔ1¤âµÕ1üûÂ1ÔÕ1ü±Ã"�Ö1üØÃ<Ú�=ü™Ä:¡Ž=ØÄ�üàÄ.Ǭ/<“Åä¤/d´Å¼;½;¾;¿;À; ¼;ðÄ ½;±Ç ¾;Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²¿; À; ©€ªBÿ— ÊÅ—ƒ¦$ËÅóA#¸–`.¸©&9¸$ºÒ™�š�š�šš™¶ë$“Õ™�›�›�››™øîüîן„ñ×ÅÁ;Â;Ã;Ä;Å; Á;ðÄ Â;±Ç Ã;Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Ä; Å; ©ÖáBÿ— ‹Ø—ûà$ŒØóA,šØ–`,µØ©&,ÐØ<ÔÛœ�������œ�¾æ““Εž©$¸Üœ�ž�ž�žžœž˜ðüÍí�ü¨ÝF›½4üóÝEì½4ü½ÞEB position and this `PikeVM` was configured with [`MatchKind::All`]Áü‡ßGè‘=Óß�üÛßB? Unless all of the patterns in this `PikeVM` are anchored, thenÁü¢àC@ generally speaking, this will visit every byte in the haystack.Áêà�üòàIÿÀ4üÀáGÓÁ4üŒâH¥Â4üÙâFøÂ4„¤ãÈÃ4¹ã�üÁãDðÃ4üŠäI¿Ä4dØä’Å4éä�lñä•£/ƒå�ü‹åGäÇ4ü×åI¶È4¥æ�<­æä¤/ü¹æ=ÔÂ/Ìûæô¤/ü™ç&…‹JüÄç%ÐÉ44îçÝ¥/ùç�¬�èšÊ4ü›èFºÊ44æèÙý3ôñèˆöGü”é?< .configure(PikeVM::config().match_kind(MatchKind::All))ÁüØé¶Ë4üüé&Ê›0§ê�ü¯ê%üË4üÙê7†™=ü•ëB? re.which_overlapping_matches(&mut cache, &input, &mut patset);ÁüÜë'ÂÍ4üˆìHôÍ4ôÕì—‘3øì�ü€í.Ǭ/<³íä¤/ÌÔíÆ;Ç;È;É;Ê; Æ;ðÄ Ç;±Ç È;Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²É; Ê;¡£Bÿ— ÷í—Ê”$øíóAó½–`þ½ª§  ¾\ŸïðÄ¡¢£¤¥¦§¨üÌñ™TÏñÅË;Ì;Í;Î;Ï; Ë;ðÄ Ì;±Ç Í;Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Î; Ï; ©ÖáBÿ  ãñ  ¡$äñóA,òñ–`,�ò©&,¨òüƺ…¬ÉºÅÐ;Ñ;Ò;Ó;Ô; Ð;ðÄ Ñ;±Ç Ò;Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Ó; Ô;¡£Bÿ  躠„ü$éºóA,÷º–`,’»ª§ 4­»üÎÓö,ÑÓÅÕ;Ö;×;Ø;Ù;Ú;Û; Õ;ðÄ Ö;›˜ ×;ŒÈ Ø;ŒÈ Ù;Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Ú; Û; ©€ªBÿ  àÓ  £$áÓŸ©,ïÓªô$—Ô¥ $¸Ô–`,ÙÔ™´ôÔ©&,‡ÕüÀÛãŒÃÛÅÜ;Ý;Þ;ß;à;á;â; Ü;ðÄ Ý;›˜ Þ;ŒÈ ß;ŒÈ à;Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²á; â;¡£Bÿ  ÞÛ  ¤$ßÛŸ©,íÛªô$•Ü¥ $¶Ü–`,×Ü™´òܪ§ 4…ÝüÆëè$ÉëÅã;ä;å;æ;ç;è; ã;ðÄ ä;›˜ å;ÛÈ æ;ŒÈ ç;Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²è;Ç€ªBÿ  ×ë  ¥$ØëŸ©,æëcurr_slot_tableÁ|Žì¥ $·ì–`,Øì™´óì Ø†íüÒ‚å|Õ‚Åé;ê;ë;ì;í;î; é;ðÄ ê;›˜ ë; © ì;ŒÈ í;Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²î;ÇBÿ  î‚  ¦$©,ý‚ curr_slotsÁT¥ƒ¥ $Õƒ–`,öƒ™´‘„ Ø¤„ü¯”ñ¼²”Åï;ð;ñ;ò;ó;ô; ï;ðÄ ð;›˜ ñ; © ò;ŒÈ ó;Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²ô;ÇBÿ  Ó”  §$Ô”Ÿ©,├ÜMTŠ•¥ $º•–`,Û•™´ö• Ø�–ü»¹Dd¾¹Åõ;ö;÷; õ;ðÄ ö;Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²÷;řǙș­É™Ê™àË™óG*¤�R{9 ÇBÿ  ˹  ¨$̹–`,Ò¹üÿÂ5æGªÌ3«¸¬¬«ª½Å­®ÅQÆQ®„ÈÌÃL»Ã$Àé©‹¢üáÃ#$äÃû; û;½Å³¶Bÿ© éé ®æGÌ3¸$îÃ<ºÆ®�¯�¯�¯¯®”„üÂÌ9æG±Ì3²¸³±²³·Æ´µÅQÆQµÇÌËÌÏÌL‚Í$‡Í°°˜Ûü«Í&$®Íÿ; ÿ;·Æ™©Bÿ° ³Í° µæGÌ3¸$¸Í<‹Ðµ�¶�¶�¶¶µ¡�T¹Ú±Ç¸¹º¼ü¹Ý üÊÚ" Create a new [`PikeVM`] cache.ÁñÚ�üùÚ>ªñ1ü¼ÛGD [`PikeVM::create_cache`], as it does not require also importing theÁŒˆÜÁò1žÜ�ü¦ÜGD If you want to reuse the returned `Cache` with some other `PikeVM`,ÁüòÜB? then you must call [`Cache::reset`] with the desired `PikeVM`.ÁÀÝ„< „<ðıÇBÿ· ÈÝ· ¸é¾ÄÝüƒé$üîÞBêô1̵ß different [`PikeVM`].ÁÓß�üÛßHð¯0ô¨àˆóLËà�lÓà•£/åà�üíàKÙóL½á�<Åáä¤/üÑá=ÔÂ/ü“â?íðI×â�üßâ"õôLü†ã"¢õL­ã�üµã'ð³0|áã¡´0üõã#»´0ü�ä/ˆöL4Ñä½µ0Üä�üääHÛµ0ü±åI®¶0üÿå3ûöL4·æÅ·0üÂæJÖ·0|‘窸0´¥çª“:|Àç¡´0üÔç#ý¸0üüç0�øL4±è½µ0¼è�üÄè.Ǭ/<÷èä¤/,Šé…<†< …<±Ç †<ðÄBÿ· �é· ¹$•éé¾›éü¼ë#üïé;àû1¯ê�ü·êF³ü1ü‚ë5„ý1dÃë‡< ‡<±ÇBÿ· Ðë· º$Ñë”îë<ùëüûñ4dþñň< ˆ<±ÇBÿ· ‹ò· ¼$�òcaptures_slot_lenÁŒ–òŒ³ÿŒÈ¾¿ÀÁü¡�#¤�Å�< �<ðÄŒÈBÿ½ ¬�½ ¾é¾¨�üóƒ ,öƒÅŽ<�< Ž<ŒÈ �<ðÄBÿ½ üƒ½ ¿$�„龇„ü™†dœ†Å�< �<ŒÈBÿ½ ©†½ À$ª†ü¸ˆ4d»ˆÅ‘< ‘<ŒÈBÿ½ Ȉ½ Á$͈ŒñMŒÓˆtÄ—ÛÈÃÄÆÇÈɬ̘ϘÅÛÈBÿ Ãü«š ,®šÅ–<—< –<ÛÈ —<ðÄBÿ ´šÂ Ä$¹šé¾¿š… Ä�Å�Å�ÅÅÄÅŠÚ ØÚUÿáÆ:üì§dï§Å˜< ˜<ÛÈBÿ ü§Â Æ$ý§ü�­4d„­Å™< ™<ÛÈBÿ ‘­Â Ç$–­ŒñMŒœ­ü¤°CL§°Åš< š<ÛÈÇ š< ©Bÿ ±°Â È$¶° Ø¼°ü‡´6TŠ´Å›< ›<ÛÈ ›< ©Bÿ •´Â É$š´t÷:Óí”â:ÔÜ:Tû:± ר†ä$í$ñ$ö$ý$„%�%›%Í<¼4ð0ÊÌñÅ4ûcÊ͘ Ê4ôÊÎÁtÔ4òýÊ϶«A4ò4ÊÑå4‚5ëIÊÒ–Š5Ð=ÊÓ–ÊÓü”5…CÊÔÖºL³5ßÊÕµ¢<Ü5î)ÊÖ$¯4l¶4îÛÝÊÌœÏ4½,ê4¬®tú4ŸŒŽD�5lìŸ5\üÃ5 M¤Û6,á6ÊÇœ¢7$¨7ÊÇtóL¢ÊÚÛÜßáâãäåæç̯M¶M¢ÊBÿÙÙ Ú¼‘Q,˜Q£< £<¢ÊBÿÙ žQÙ Û$£QüÙSp$àS¥< ¥<¢ÊòèÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw�BÿÙ�Ý‚ÞÝÞ šTÙþÆõ€N åSþÆòè èS¤<ˆ#òè ¤<Õ�IüëS$¤<�#òèß�N£€Nl‚T Üõ€Nòè$›Tœ ­Ttvprüÿb.4†c§<¨< §<¢Ê ¨<Õ�IBÿÙ �cÙ ß$’c³±4˜cüÌ},ß�à�à�ààßà¦< ¦<¢ÊÇÌ»ÇUÿ üÁ˜&LȘ©< ©<¢ÊÇBÿÙ Ò˜Ù á$טüš¦3L�¦Êª< ª<¢ÊÇÇBÿÙ §¦Ù â$¬¦¼ø4²¦ü¡±yt¤±Ê«< «<¢ÊÇÌ»ÇBÿÙ ¼±Ù ã$Á±from_idÁ<ϱÙœ,é±�ø<ƒ²üý³ŽŒ€´Ê¬< ¬<¢ÊÇÌ»ÇBÿÙ ›´Ù ä$ ´Ÿ ®´Þ…N<À´Ùœ,Ú´�ø<ô´üÔ¶ŽŒ×¶Ê­< ­<¢ÊÇÌ»ÇBÿÙ ò¶Ù å$÷¶Ÿ …·Þ…N<—·Ùœ,±·�ø<Ë·ü„¹&,‡¹Ê®< ®<¢ÊÇ ®<šËBÿÙ �¹Ù æ$޹ˆC”¹ü’º2L•ºÊ¯< ¯<¢ÊÇ ¯<šËBÿÙ ŸºÙ ç$¤ºˆCªºTíºšËéîü¾Á)$ÁÁʰ< °<šËÌ»Bÿè ÆÁè é$ÇÁÙœ,ÍÁü¨Æfl«ÆÊ²< ²<‹ƒòèBÿ�ë‚ìëì ÃÆþÆéì ¹Æ¾�N ¼Æ±<ˆ#òè ±<éìŒüƱ<�#òè’�N$‰Ç êéìòèxsÁ¿ÆpredÁ$ÍÆuwy{¿Ìé�í�í�ííéí ÑËUÿíØœ¦Í,©Íʳ< ³<šËBÿè ¯Íè î$´Í|‚Ö²ÍðòóôüŒØ=�ØÊÀ<Ç À<Õ�I²ÍBÿï ®Øï ðŠ#D“س±4¦Ø ÙÙððüÕÜz$ØÜÊÁ<Â<Ã< Á<¢Ê Â<½ Ã<Õ�IÇBÿï ìÜï òtrieÁ$æÜŸ©,„ݳ±4©ÝìÐßDÓßÊÄ< Ä<²ÍÇBÿï Üßï ó$ÝßüÀà 4ÃàÊÅ< Å<²Í Å<Õ�IBÿï Êàï ô$ËàTÞ„ŒÎöûüýþüù…3ü…Ê̻̻řǙș­É™Ê™àË™óG*¤�R{9 ŒÎBÿõõ ö¥ €†¤ ކ¼Ã†ö�÷�÷�÷÷ö÷µ�Ì»Uÿ¾‡ö�ø�ø�øøöøЕN�ÏUÿ Ä•Nï‡ö�ù�ù�ùùöù²–N¾–N¡ˆö�ú�ú�úúöú²–N¾–Nü´–"4·–Ê�ÏŒÎBÿõõ ûr1Á¾–üИ24Ó˜Ê�Ï�ÏŒÎBÿõõ ü¿—NÚ˜r2Áê˜üüšB4ÿšÊ�Ï�Ï�ÏŒÎBÿõõ ý¿—N†›–˜N–›r3Á¦›ü·œ#DºœÊÔ< Ô<ŒÎ Ô< �ÏBÿõ Üõ þ$Äœì‹�¢Ê€ g€ü¯�8²�Õ<Ö<×< Õ<¢Ê Ö<€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡×<­àBÿÿ ¶�ÿ €$·�œ ½�ÌÜŸšË‚ g‚üüŸ8ÿŸØ<Ù<Ú< Ø<šË Ù<€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ú<­àBÿ� ƒ � ‚$„ œ Š ‹¡‚�ƒ�ƒ�ƒƒ‚ƒôĘâUÿôƒ¢ÑË… g…ü¨¢8«¢Û<Ü<Ý< Û<ÑË Ü<€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ý<­àBÿ„ ¯¢„ …$°¢œ ¶¢üâ¦3Tå¦Ê̻̻Bÿ †¿—N𦖘Nÿ¦$�:„œ:þœŒ²:óœü�<:éœíœÞœâœÓœלȜ̜½œÁœ²œ¶œD×:Ó픺:Ô´:¾œÓíÑœœÓí.,՜ƜÓíECÙœdùï2üØ ;Ó A collection of modules that provide APIs that are useful across many regex engines. While one should explore the sub-modules directly to get a sense of what's there, here are some highlights that tie the sub-modules to higher level use cases: * `alphabet` contains APIs that are useful if you're doing low level things with the DFAs in this crate. For example, implementing determinization or walking its state graph directly. * `captures` contains APIs for dealing with capture group matches and their mapping to "slots" used inside an NFA graph. This is also where you can find iterators over capture group names. * `escape` contains types for pretty-printing raw byte slices as strings. * `iter` contains API helpers for writing regex iterators. * `lazy` contains a no-std and no-alloc variant of `lazy_static!` and `once_cell`. * `look` contains APIs for matching and configuring look-around assertions. * `pool` provides a way to reuse mutable memory allocated in a thread safe manner. * `prefilter` provides APIs for building prefilters and using them in searches. * `primitives` are what you might use if you're doing lower level work on automata, such as walking an NFA state graph. * `syntax` provides some higher level convenience functions for interacting with the `regex-syntax` crate. * `wire` is useful if you're working with DFA serialization. Á$�ð2–ôˆ”«žØ¬±Ù£ÆôÞÿŒÆÏÉåæ„Ú ;üþù This module provides APIs for dealing with the alphabets of finite state machines. There are two principal types in this module, [`ByteClasses`] and [`Unit`]. The former defines the alphabet of a finite state machine while the latter represents an element of that alphabet. To a first approximation, the alphabet of all automata in this crate is just a `u8`. Namely, every distinct byte value. All 256 of them. In practice, this can be quite wasteful when building a transition table for a DFA, since it requires storing a state identifier for each element in the alphabet. Instead, we collapse the alphabet of an automaton down into equivalence classes, where every byte in the same equivalence class never discriminates between a match or a non-match from any other byte in the same class. For example, in the regex `[a-z]+`, then you could consider it having an alphabet consisting of two equivalence classes: `a-z` and everything else. In terms of the transitions on an automaton, it doesn't actually require representing every distinct byte. Just the equivalence classes. The downside of equivalence classes is that, of course, searching a haystack deals with individual byte values. Those byte values need to be mapped to their corresponding equivalence class. This is what `ByteClasses` does. In practice, doing this for every state transition has negligible impact on modern CPUs. Moreover, it helps make more efficient use of the CPU cache by (possibly considerably) shrinking the size of the transition table. One last hiccup concerns `Unit`. Namely, because of look-around and how the DFAs in this crate work, we need to add a sentinel value to our alphabet of equivalence classes that represents the "end" of a search. We call that sentinel [`Unit::eoi`] or "end of input." Thus, a `Unit` is either an equivalence class corresponding to a set of bytes, or it is a special "end of input" sentinel. In general, you should not expect to need either of these types unless you're doing lower level shenanigans with DFAs, or even building your own DFAs. (Although, you don't have to use these types to build your own DFAs of course.) For example, if you're walking a DFA's state graph, it's probably useful to make use of [`ByteClasses`] to visit each element in the DFA's alphabet instead of just visiting every distinct `u8` value. The latter isn't necessarily wrong, but it could be potentially very wasteful. ÁDâ ;°%±%À%Ô%Õ%Ý%ä%í%õ%ü%ý%ƒ&’&“&£&ª&®ŠLžü&–˜®Šý&–˜‚þ$´ô–šà³„º�,–›±³t̉,–œ\ƒŒ–rüƒ.M$­=?+-L®"ÞОŸ ¡¢£¥¦Üù&ü¾"1. Create a new haystack unit from a byte value.Áô"�üü"IF All possible byte values are legal. However, when creating a haystackÁüÊ#JG unit for a specific DFA, one should be careful to only construct unitsÁü™$GD that are in that DFA's alphabet. Namely, one way to compact a DFA'sÁüå$GD in-memory representation is to collapse its transitions to a set ofÁü±%HE equivalence classes into a set of all possible byte values. If a DFAÁüþ%HE uses equivalence classes instead of byte values, then the byte givenÁüË&)& here should be the equivalence class.Á€'ÞÐBÿ��§­ —»$ƒ'ü“+1üÃ'.+ Create a new "end of input" haystack unit.Áö'�üþ'HE The value given is the sentinel value used by this unit to representÁüË(KH the "end of input." The value should be the total number of equivalenceÁü›)FC classes in the corresponding alphabet. Its maximum value is `256`,Áüæ)>; which occurs when every byte is its own equivalence class.Á©*�d±*úë0Â*�üÊ*DA This panics when `num_byte_equiv_classes` is greater than `256`.Áš+ÞÐBÿ��Кnum_byte_equiv_classesÁ´ž+üÙ. üØ-DA If this unit is not an "end of input" sentinel, then returns itsÁü¡.30 underlying byte value. Otherwise return `None`.Á,à.ÞÐ»Ô Bÿ��  $æ.üž1"üö/JG If this unit is an "end of input" sentinel, then return the underlyingÁüÅ0DA sentinel value that was given to [`Unit::eoi`]. Otherwise returnÁ\Ž1 `None`.Á4¥1ÞÐřǙș­É™Ê™àË™óG*¤�R{9 Bÿ�� ¡$¬1ô 4üË2KH Return this unit as a `usize`, regardless of whether it is a byte valueÁü›3EB or an "end of input" sentinel. In the latter case, the underlyingÁüå363 sentinel value given to [`Unit::eoi`] is returned.ÁD§4ÞÐBÿ��ûÀ $°4üÿ6&üÐ5KH Returns true if and only of this unit is a byte value equivalent to theÁü 6HE byte given. This always returns false when this is an "end of input"Álí6 sentinel.Á<†7ÞÐBÿ�� £$Ž7—»$”7Ë7£�¤�¤�¤¤£¤МLíØܰ8üå7FC Returns true when this unit represents an "end of input" sentinel.Á4·8ÞÐBÿ�� ¥$¾8ü¨:!üù8B? Returns true when this unit corresponds to an ASCII word byte.ÁÀ9�üÈ9IF This always returns false when this unit represents an "end of input"Ál–:™ÓNd¯:ÞÐBÿ�� ¦$¼:ô™;ÞШ g¨ü¾;@Á;î<ï<ð< î<ÞÐ ï<€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ð<­àBÿ§ Å;§ ¨$Æ;œ Ì;„ÖFªÓª¬­®¯°±²³´µ¶·¸»¼ìâGüíFJG Creates a new set of equivalence classes where all bytes are mapped toÁœ¼G the same class.Á,éGªÓBÿ©©ÌŒšHªªü¨I"ü«HGD Creates a new set of equivalence classes where each byte belongs toÁô÷H its own equivalence class.ÁT¯IªÓBÿ©© ¬ü£MgT±Mò< ò<ÈšÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwªÓÖ•Bÿ© ÌM© ­å,ÅMü”ViD¢Vó<ô< ó<ªÓ ô<ÈšÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw‰•Bÿ© ´V© ®$µVĨÇVüçY*dõYõ< õ<ªÓBÿ© ‚Z© ¯$ƒZüïZ*ü«Z1. Set the equivalence class for the given byte.ÁöZö< ö<ªÓBÿ© úZ©Ä�$ÿZ—»& ›€/ ü–\!üÒ[1. Get the equivalence class for the given byte.Á�\÷< ÷<ªÓBÿ© ¡\©é© $¢\—»; üÞ].üç\HE Get the equivalence class for the given haystack unit and return theÁ¼´] class as a `usize`.Á\å]ø< ø<ªÓÞÐBÿ© ñ]© ²$ò]ʶ ̨`ü¤_JG Create a unit that represents the "end of input" sentinel based on theÁüó_" number of equivalence classes.Á¯`ù< ù<ªÓÞÐBÿ© ³`©ÐÀ $´`ü¼c#üôaFC Return the total number of elements in the alphabet represented byÁü¿bJG these equivalence classes. Equivalently, this returns the total numberÁÜŽc of equivalence classes.ÁdÃcú< ú<ªÓBÿ© Ðc©Á™$ÑcôÒiüÞe@= Returns the stride, as a base-2 exponent, required for theseÁÄ£f equivalence classes.ÁÀf�üÈfHE The stride is always the smallest power of 2 that is greater than orÁü•gHE equal to the alphabet length, and the `stride2` returned here is theÁüâgKH exponent applied to `2` to get the smallest power. This is done so thatÁü²hKH converting between premultiplied state IDs and indices can be done withÁü‚i=: shifts alone, which is much faster than integer division.Á<Ùiû< û<ªÓBÿ© ái© µ$âiü¨m"üôjHE Returns true if and only if every byte in this class maps to its ownÁüÁkFC equivalence class. Equivalently, there are 257 equivalence classesÁüŒlIF and each class contains either exactly one byte or corresponds to theÁüÚl;8 singleton class containing the "end of input" sentinel.Ád¯mü< ü<ªÓBÿ© ¼m© ¶$½müÏn'üûmA> Returns an iterator over all equivalence classes in this set.Á$Öný< ý<ªÓÝ%Ý%¶þß%ש–à%Ÿ–›Î¸¦°ÐbÈý = classes.representatives(..).collect();Áü¸xEB // Note that the specific byte values yielded are not guaranteed!ÁÄ‚yçü3ÔŸy Unit::u8(b'\x00'),Á¼¾y Unit::u8(b'a'),Á¼Úy Unit::u8(b'{'),Á¬öy Unit::eoi(3),Á4�zÙý3ü›z assert_eq!(expected, reps);Á¿z�üÇz.Ǭ/<úzä¤/†{�üŽ{KH Note though, that you can ask for an arbitrary range of bytes, and onlyÁüÞ{41 representatives for that range will be returned:Á—|�<Ÿ|ä¤/ü«|CÖùNó|�üû|"„ÂJü¢}%±ÂJüÌ}IF let reps: Vec = classes.representatives(b'A'..=b'z').collect();Áüš~E•ûNÄä~çü3¼� Unit::u8(b'A'),Á¼�“üN4¹Ùý3üÄÿüNè�üð.Ǭ/<£€ä¤/|¶€þ< þ<ªÓè¦ä%ä%ùþæ%ש–ç%ªÿ–è%ºÿ–é%Êÿ–�nzðLiþ This shows an example of how to get all of the elements in anÁ´–Ž equivalence class.Á±Ž�<¹Žä¤/üÅŽCÖùN���ü•�"„ÂJü¼�%±ÂJüæ�FC let elements: Vec = classes.elements(Unit::u8(1)).collect();Áü±�DA let expected: Vec = (b'a'..=b'z').map(Unit::u8).collect();Áüú�# assert_eq!(expected, elements);Á¢‘�üª‘.Ǭ/<Ý‘ä¤/Dþ‘ÿ< ÿ<ªÓÞÐí%í%ñÿï%ש–ð%›€–ñ%—»–ÕaÆëMò×ÿ˜Û†‡ˆ‰Š‹Œ�Ž�‘’“–—š ü€K-üÄ>HE Create new storage for the offsets of all matching capturing groups.Á‘?�ü™?HE This routine provides the most information for matches---namely, theÁüæ?KH spans of matching capturing groups---but also requires the regex searchÁü¶@! routines to do the most work.ÁÜ@�üä@HE It is unspecified behavior to use the returned `Captures` value in aÁü±AIF search with a `GroupInfo` other than the one that is provided to thisÁ„ÿA constructor.Á”B�lœB•£/®B�ü¶BEB This example shows that all capturing groups---but only ones thatÁü€CFC participated in a match---are available to query after a match hasÁ|ËC been found:ÁßC�<çCä¤/ÌóCô¤/ü‘D&…‹Jü¼D!ØÑ=¤âD Span, Match,Á4ûDÝ¥/†E�ÌŽE let re = PikeVM::new(Áü¬EGD r"^(?:(?P[a-z]+)|(?P[A-Z]+))(?P[0-9]+)$",Á<øEÄ™1ü„F&Ê›0ü¯FDA let mut caps = Captures::all(re.get_nfa().group_info().clone());ÁøF�ü€G1. re.captures(&mut cache, "ABC123", &mut caps);Áì¶G¾’<üØG=È�0üšHDA // The 'lower' group didn't match, so it won't have any offsets.ÁüãH63 assert_eq!(None, caps.get_group_by_name("lower"));ÁüžIHE assert_eq!(Some(Span::from(0..3)), caps.get_group_by_name("upper"));ÁüëIIF assert_eq!(Some(Span::from(3..6)), caps.get_group_by_name("digits"));Á¹J�üÁJ.Ǭ/<ôJä¤/‡KýݘÛBÿ……�“Ö]T‹KüÍW1ü«LGD Create new storage for only the full match spans of a pattern. ThisÁü÷L1. does not include any capturing group offsets.Á­M�üµMHüÀOü‚NIÎÁO„ÐN ÂOåN�líN•£/ÿN�ü‡OHE This example shows that only overall match offsets are reported whenÁüÔOGD this constructor is used. Accessing any capturing groups other thanÁü P&# the 0th will always return `None`.ÁËP�<ÓPä¤/ÌßPô¤/üýP&…‹Jü¨Q!ØÑ=tÎQ·„04áQÝ¥/ìQ�ÌôQ�ÅOü’RG°ÅO<ÞRÄ™1üêR&Ê›0ü•SHE let mut caps = Captures::matches(re.get_nfa().group_info().clone());ÁâS�üêS1öÆOì T¾’<üÂT=È�0ü„UKH // We didn't ask for capturing group offsets, so they aren't available.ÁüÔU6šÈOü�V63 assert_eq!(None, caps.get_group_by_name("upper"));ÁüÊV74 assert_eq!(None, caps.get_group_by_name("digits"));Á†W�üŽW.Ǭ/<ÁWä¤/<ÔWýݘÛBÿ……­ëÖ]TÜWüàe/üÉZJG Create new storage for only tracking which pattern matched. No offsetsÁ´˜[ are stored at all.Á³[�ü»[HüÀOüˆ\IÎÁO„Ö\ ÂOë\�ló\•£/…]�ü�]IF This example shows that only the pattern that matched can be accessedÁüÛ]96 from a `Captures` value created via this constructor.Á™^�<¡^ä¤/Ì­^ô¤/üË^&…‹Jüö^!ØÑ=”œ_ PatternID,Á4³_Ý¥/¾_�üÆ_85 let re = PikeVM::new_many(&[r"[a-z]+", r"[A-Z]+"])?;Áüƒ`&Ê›0ü®`FC let mut caps = Captures::empty(re.get_nfa().group_info().clone());Áù`�ü�a0- re.captures(&mut cache, "aABCz", &mut caps);Áì¶a¾’<üØa96 assert_eq!(Some(PatternID::must(0)), caps.pattern());Áü–b?< // We didn't ask for any offsets, so they aren't available.ÁüÚb'Ь/†c�üŽc63 re.captures(&mut cache, &"aABCz"[1..], &mut caps);ÁìÉc¾’<üëc96 assert_eq!(Some(PatternID::must(1)), caps.pattern());Áü©d? ÙOüíd'Ь/™e�ü¡e.Ǭ/<Ôeä¤/,çeýݘÛBÿ…… ˆÖ]TíeôÐmü×fHE Returns true if and only if this capturing group represents a match.Á¤g�ü¬gA> This is a convenience routine for `caps.pattern().is_some()`.Áòg�lúg•£/Œh�ü”hC@ When using the PikeVM (for example), the lightest weight way ofÁüÜhGD detecting whether a match exists is to create capturing groups thatÁü¨i96 only track the ID of the pattern that match (if any):Áæi�<îiä¤/Ìúiô¤/ü˜j&…‹JüÃj!ØÑ=4éjÝ¥/ôj�üüj%" let re = PikeVM::new(r"[a-z]+")?;Áü¦k&Ê›0üÑkFº×Oœl�ü¤l0–ØOìÙl¾’<ûl�üƒm.Ǭ/<¶mä¤/D×m¾= ¾=˜ÛBÿ… àm…¬§$ámü‘y*ü—n@= Returns the identifier of the pattern that matched when thisÁüÜnHE capturing group represents a match. If no match was found, then thisÁÔ©o always returns `None`.ÁÈo�üÐoHE This returns a pattern ID in precisely the cases in which `is_match`Áü�pDA returns `true`. Similarly, the pattern ID returned is always theÁüæpA> same pattern ID found in the `Match` returned by `get_match`.Á¬q�l´q•£/Æq�üÎqCæÝOü–rKH detecting which pattern matched is to create capturing groups that onlyÁüær41 track the ID of the pattern that match (if any):ÁŸs�<§sä¤/̳sô¤/üÑs&…‹Jüüs!ØÑ=”¢tµÖO4¹tÝ¥/Ät�üÌt8êÖOü‰u&Ê›0ü´uFº×Oÿu�ü‡v.+ re.captures(&mut cache, "ABC", &mut caps);Áüºv9ÐÚOüøvDA // Recall that offsets are only available when using a non-emptyÁüÁwJG // Captures value. So even though a match occurred, this returns None!Áü�x'Ь/¼x�üÄx.Ǭ/<÷xä¤/<˜y¿= ¿=˜Û€ªBÿ…  y……ë$¡yü‡�(üÚyFC Returns the pattern ID and the span of the match, if one occurred.Á¥z�ü­z?< This always returns `None` when `Captures` was created withÁüñz30 [`Captures::empty`], even if a match was found.Á©{�ü±{B? If this routine returns a non-`None` value, then `is_match` isÁüø{JG guaranteed to return `true` and `pattern` is also guaranteed to returnÁ¼Ç| a non-`None` value.Áã|�lë|•£/ý|�ü…}?< This example shows how to get the full match from a search:ÁÉ}�<Ñ}ä¤/üÝ}?íðI¡~�ü©~8êÖOüæ~Jœ§/µ�ü½.¦èOüð=ï©/²€�üº€.Ǭ/<í€ä¤/LŽ�À= À=˜Û³¶Bÿ… ˜�…ˆ­$™�üŽ–5üû�JG Returns the span of a capturing group match corresponding to the groupÁüÊ‚KH index given, only if both the overall pattern matched and the capturingÁüšƒ%" group participated in that match.Áă�ü̃KH This returns `None` if `index` is invalid. `index` is valid if and onlyÁüœ„GD if it's less than [`Captures::group_len`] for the matching pattern.Áè„�üð„?óëOü´…DA [`Captures::empty`], even if a match was found. This also alwaysÁüý…GD returns `None` for any `index > 0` when `Captures` was created withÁÔɆ [`Captures::matches`].Áè†�üð†B…íOü·‡DA guaranteed to return `true`, `pattern` is guaranteed to return aÁü€ˆIF non-`None` value and `get_match` is guaranteed to return a non-`None`ÁTΈ value.Á݈�üåˆDA By convention, the 0th capture group will always return the sameÁü®‰EB span as the span returned by `get_match`. This is because the 0thÁüø‰EB capture group always corresponds to the entirety of the pattern'sÁüŠHE match. (It is similarly always unnamed because it is implicit.) ThisÁü�‹EB isn't necessarily true of all regex engines. For example, one canÁüÙ‹EB hand-compile a [`thompson::NFA`](crate::nfa::thompson::NFA) via aÁü£ŒEB [`thompson::Builder`](crate::nfa::thompson::Builder), which isn'tÁüíŒKH technically forced to make the 0th capturing group always correspond toÁ¬½� the entire match.Á×��lß�•£/ñ��üù�HE This example shows how to get the capturing groups, by index, from aÁTÆŽ match:ÁÕŽ�<ÝŽä¤/üéŽ=ÔÂ/ü«�EB use regex_automata::{nfa::thompson::pikevm::PikeVM, Span, Match};Áõ��üý�A> let re = PikeVM::new(r"^(?P\pL+)\s+(?P\pL+)$")?;ÁüÃ�Jœ§/’‘�üš‘<ò™1üÛ‘>¹š1üž’:‚›1üÝ’;8 assert_eq!(Some(Span::from(6..17)), caps.get_group(2));Áü�“C@ // Looking for a non-existent capturing group will return None:Áüå“(% assert_eq!(None, caps.get_group(3));Áü’”52 # // literals are too big for 32-bit usize: #1039ÁüÌ”)& # #[cfg(target_pointer_width = "64")]Áüú”:7 assert_eq!(None, caps.get_group(9944060567225171988));Á¹•�üÁ•.Ǭ/<ô•ä¤/L•–Á= Á=˜ÛíõBÿ… Ÿ–…™ì$ –÷wCüË©;üà›J¬ñOü¯œJG name given, only if both the overall pattern matched and the capturingÁüþœ%×òO¨��ü°�JG This returns `None` if `name` does not correspond to a valid capturingÁüÿ�'$ group for the pattern that matched.Á«ž�ü³ž?óëOü÷žDØôOüÀŸG§õOÔŒ øõO« �ü³ B…íOüú D¹öOüáIˆ÷OT‘¢Û÷O ¢�l¨¢•£/º¢�ü¢GD This example shows how to get the capturing groups, by name, from aÁTŽ£žþO�£�<¥£ä¤/ü±£=ÔÂ/üó£EÝþO½¤�üŤAºÿOü‹¥Jœ§/Ú¥�üâ¥<ò™1ü£¦>¹š1üæ¦HE assert_eq!(Some(Span::from(0..5)), caps.get_group_by_name("first"));Áü³§HÇ›1ü€¨C•�PüȨ74 assert_eq!(None, caps.get_group_by_name("middle"));Á„©�üŒ©.Ǭ/<¿©ä¤/ŒÒ©Â=Ã= Â=˜Û Ã=íõBÿ… ä©… �$å©‚ $ë©üµ¾-üúªJG Returns an iterator of possible spans for every capturing group in theÁ¬É« matching pattern.Áã«�üë«EB If this `Captures` value does not correspond to a match, then theÁüµ¬)& iterator returned yields no elements.Áã¬�üë¬KH Note that the iterator returned yields elements of type `Option`.Áü»­HE A span is present if and only if it corresponds to a capturing groupÁüˆ®! that participated in a match.Á®®�l¶®•£/È®�üЮ;8 This example shows how to collect all capturing groups:Á�¯�<˜¯ä¤/ü¤¯=ÔÂ/üæ¯>ƒ–M©°�̱°�ÅOüϰB? // Matches first/last names, with an optional middle name.Áü–±FC r"^(?P\pL+)\s+(?:(?P\pL+)\s+)?(?P\pL+)$",Á<á±Ä™1üí±Jœ§/¼²�üIJ=: re.captures(&mut cache, "Harry James Potter", &mut caps);Á솳¾’<ü¨³:7 let groups: Vec> = caps.iter().collect();Áäç³ assert_eq!(groups, vec![Áüˆ´  Some(Span::from(0..18)),Áü­´ Some(Span::from(0..5)),ÁüÑ´  Some(Span::from(6..11)),Áüö´! Some(Span::from(12..18)),Á<œµÓó9¨µ�ü°µ.Ǭ/<ãµä¤/ïµ�ü÷µHE This example uses the same regex as the previous example, but with aÁüĶJG haystack that omits the middle name. This results in a capturing groupÁü“·IF that is present in the elements yielded by the iterator but without aÁTá·žþOð·�<ø·ä¤/ü„¸=ÔÂ/üƸ>ƒ–M‰¹�Ì‘¹�ÅOü¯¹B€’Püö¹FÍ’P<ÁºÄ™1üͺJœ§/œ»�ü¤»74 re.captures(&mut cache, "Harry Potter", &mut caps);Áì໾’<ü‚¼:ž”PäÁ¼â”Püâ¼  Some(Span::from(0..12)),Áü‡½´•Pl«½ðç6ü½½  Some(Span::from(6..12)),Á<â½Óó9î½�üö½.Ǭ/<©¾ä¤/$¼¾Ä= Ä=˜Û·&·&Ö„¹&ɾôº&ƒ ôMöT Pƒb Ä=Bÿ… Á¾…÷’$¾,Õ¿Ž�������Ž�›†é°UÿŸ¢üÊÊ üëÀIF Return the total number of capturing groups for the matching pattern.Á¹Á�üÁÁFC If this `Captures` value does not correspond to a match, then thisÁ¼ŒÂ always returns `0`.Á¨Â�ü°Â>; This always returns the same number of elements yielded byÁüóÂJG [`Captures::iter`]. That is, the number includes capturing groups evenÁüÂÃ+( if they don't participate in the match.ÁòÃ�lúÕ£/ŒÄ�ü”ÄHE This example shows how to count the total number of capturing groupsÁüáÄJG associated with a pattern. Notice that it includes groups that did notÁü°Å=: participate in a match (just like `Captures::iter` does).ÁòÅ�<úÅä¤/ü†Æ=ÔÂ/üÈÆ6¡ÜLƒÇ�Ì‹Ç�ÅOü©ÇB€’PüðÇFÍ’P<»ÈÄ™1üÇÈJœ§/–É�üžÉ7 šPüÚÉ$! assert_eq!(4, caps.group_len());ÁƒÊ�ü‹Ê.Ǭ/<¾Êä¤/LÑÊÅ= Å=˜ÛBÿ… ÛÊ… �$ÜÊüÖÛ&ü‘ÌC@ Returns a reference to the underlying group info on which theseÁ¼ÙÌ captures are based.ÁõÌ�üýÌHE The difference between `GroupInfo` and `Captures` is that the formerÁüÊÍIF defines the structure of capturing groups where as the latter is whatÁü˜ÎJG stores the actual match information. So where as `Captures` only givesÁüçÎC@ you access to the current match, `GroupInfo` lets you query anyÁü¯ÏGD information about all capturing groups, even ones for patterns thatÁüûÏ  weren't involved in a match.Á Ð�ü¨ÐIF Note that a `GroupInfo` uses reference counting internally, so it mayÁ´öÐ be cloned cheaply.Á‘Ñ�l™Ñ•£/«Ñ�ü³ÑDA This example shows how to get all capturing group names from theÁüüÑC@ underlying `GroupInfo`. Notice that we don't even need to run aÁ\ÄÒ search.ÁÔÒ�<ÜÒä¤/üèÒC@ use regex_automata::{nfa::thompson::pikevm::PikeVM, PatternID};Á°Ó�ü¸Ó ݹM´ÝÓ r"(?Pa)",Á”øÓ r"(a)(b)",Át�Ô r"ab",Áü¢Ô! r"(?Pa)(?Pa)",Á´ÈÔ r"(?Pz)",ÁDãÔ•Ð1üðÔ$! let caps = re.create_captures();Á™Õ�Ä¡Õçü3ü¾Õ&# (PatternID::must(0), 0, None),ÁüéÕ-* (PatternID::must(0), 1, Some("foo")),Áü›Ö&# (PatternID::must(1), 0, None),ÁüÆÖ&# (PatternID::must(1), 1, None),ÁüñÖ&# (PatternID::must(1), 2, None),Áüœ×&# (PatternID::must(2), 0, None),ÁüÇ×&# (PatternID::must(3), 0, None),Áüò×-* (PatternID::must(3), 1, Some("bar")),Áü¤Ø.+ (PatternID::must(3), 2, Some("quux")),Áüר&# (PatternID::must(4), 0, None),Áü‚Ù-* (PatternID::must(4), 1, Some("foo")),Á4´ÙÙý3ü¿Ù:7 // We could also just use 're.get_nfa().group_info()'.ÁüþÙ41 let got: Vec<(PatternID, usize, Option<&str>)> =Áü·Ú0- caps.group_info().all_names().collect();ÁôìÚ—‘3�Û�ü—Û.Ǭ/<ÊÛä¤/TÝÛÆ= Æ=˜Û Æ=ýÝBÿ… èÛ…™ó$éÛüÃèlü£ÜA> Interpolates the capture references in `replacement` with theÁüéÜIF corresponding substrings in `haystack` matched by each reference. TheÁü·Ý$! interpolated string is returned.ÁàÝ�üèÝHE See the [`interpolate` module](interpolate) for documentation on theÁüµÞ%" format of the replacement string.ÁßÞ�lçÞ•£/ùÞ�ü�ßFC This example shows how to use interpolation, and also shows how itÁüÌß(% can work with multi-pattern regexes.Áùß�<�àä¤/ü�àC™®PÕà�üÝà ݹMü‚áA> r"(?[0-9]{2})-(?[0-9]{2})-(?[0-9]{4})",ÁüÈáA> r"(?[0-9]{4})-(?[0-9]{2})-(?[0-9]{2})",ÁDŽâ•Ð1ü›â&Ê›0üÆâ(û›0óâ�üûâ;8 let replacement = "year=$year, month=$month, day=$day";Á»ã�üÃã&# // This matches the first pattern.Áüîã:7 let hay = "On 14-03-2010, I became a Tennessee lamb.";Áü­ä,) re.captures(&mut cache, hay, &mut caps);ÁüÞä;8 let result = caps.interpolate_string(hay, replacement);Áüžå63 assert_eq!("year=2010, month=03, day=14", result);ÁÙå�üáå+( // And this matches the second pattern.Áü‘æ:7 let hay = "On 2010-03-14, I became a Tennessee lamb.";ÁüÐæ,„ÀPü�ç;»ÀPüÁç6�ÁPüç�ü„è.Ǭ/<·èä¤/”ÊèÇ=È=É= Ç=˜Û È= É=˜âBÿ… æè… ’$çèý�Dõ舨\�éü¥÷�üµêA™¸PüûêIå¸PüÉë,) interpolated string is written to `dst`.Áúë�ü‚ìHõ¹PüÏì%ȺPùì�l�í•£/“í�ü›íF »Püæí(ñ»P“î�<›îä¤/ü§îC™®Pïî�ü÷î ݹMüœïAê¼PüâïA¶½PD¨ð•Ð1üµð&Ê›0üàð(û›0�ñ�ü•ñ;»¾PÕñ�üÝñ&Ž¿Püˆò:¿¿PüÇò,„ÀPüøò  let mut dst = String::new();Áü�ó=: caps.interpolate_string_into(hay, replacement, &mut dst);Áüßó30 assert_eq!("year=2010, month=03, day=14", dst);Á—ô�üŸô+ÏÁPüÏô:…ÂPüŽõ,„ÀPü¿õ ÛÇPüäõ=†ÈPü¦ö3ÎÈPÞö�üæö.Ǭ/<™÷ä¤/¼¬÷Ê=Ë=Ì=Í= Ê=˜Û Ë= Ì= Í=˜âBÿ… Í÷… “$Î÷ý�DÜ÷ˆ¨\ô÷Ĩ�ødëø“�”�”�””“” ˜âUÿŸ¢²Ý4Üú“�•�•�••“• ØÚUÿ¡ŸPüï‡nü½ûA™¸PüƒüIå¸PüÑü)& interpolated byte string is returned.Áÿü�ü‡ýHõ¹PüÔý%ȺPþý�l†þ•£/˜þ�ü þF »Püëþ(ñ»P˜ÿ�< ÿä¤/ü¬ÿC™®Pôÿ�üüÿ ݹMü¡€Aê¼Püç€A¶½PD­�•Ð1üº�&Ê›0üå�(û›0’‚�üš‚<9 let replacement = b"year=$year, month=$month, day=$day";ÁÛ‚�üã‚&Ž¿PüŽƒ;8 let hay = b"On 14-03-2010, I became a Tennessee lamb.";Áü΃,„ÀPüÿƒ:7 let result = caps.interpolate_bytes(hay, replacement);Áü¾„<9 assert_eq!(&b"year=2010, month=03, day=14"[..], result);Áÿ„�ü‡…+ÏÁPü·…;8 let hay = b"On 2010-03-14, I became a Tennessee lamb.";Áü÷…,„ÀPü¨†:¿ÑPüç†<„ÒP¨‡�ü°‡.Ǭ/<ã‡ä¤/Œö‡Î=Ï=Ð= Î=˜Û Ï=Èš Ð=Èš̹Bÿ… ‘ˆ… –$’ˆý�D ˆˆ¨\¹ˆüÏ–ƒüÛ‰A™¸Pü¡ŠIå¸PüïŠ1. interpolated byte string is written to `dst`.Á¥‹�ü­‹Hõ¹Püú‹%ȺP¤Œ�l¬Œ•£/¾Œ�üÆŒF »Pü‘�(ñ»P¾��<Æ�ä¤/üÒ�C™®PšŽ�ü¢Ž ݹMüÇŽAê¼Pü��A¶½PDÓ�•Ð1üà�&Ê›0ü‹�(û›0¸��üÀ�<‡ÐP�‘�ü‰‘&Ž¿Pü´‘;êÐPüô‘,„ÀPÌ¥’ let mut dst = vec![];ÁüÃ’<9 caps.interpolate_bytes_into(hay, replacement, &mut dst);Áü„“96 assert_eq!(&b"year=2010, month=03, day=14"[..], dst);Á“�üÊ“+ÏÁPüú“;çÒPüº”,„ÀPÌë”ÆØPü‰•<êØPüÊ•9±ÙPˆ–�ü�–.Ǭ/<Öä¤/´Ö–Ñ=Ò=Ó=Ô= Ñ=˜Û Ò=Èš Ó=Èš Ô=̹Bÿ… ö–… —$÷–ý�D…—ˆ¨\ž—Ĩº—d–˜—�˜�˜�˜˜—˜ ̹UÿŸ¢å‡4�š—�™�™�™™—™ýÍP¡ŸPü‚¨nüñš?< This is a convenience routine for extracting the substringsÁüµ›IF corresponding to matching capture groups in the given `haystack`. TheÁüƒœKH `haystack` should be the same substring used to find the match spans inÁÔÓœ this `Captures` value.Áòœ�üúœJG This is identical to [`Captures::extract_bytes`], except it works withÁôÉ� `&str` instead of `&[u8]`.Áì��dô�úë0…ž�ü�žA> This panics if the number of explicit matching groups in thisÁüÓžJG `Captures` value is less than `N`. This also panics if this `Captures`Áü¢Ÿ)& value does not correspond to a match.ÁП�üØŸFC Note that this does *not* panic if the number of explicit matchingÁü£ HE groups is bigger than `N`. In that case, only the first `N` matchingÁÌð  groups are extracted.ÁŽ¡�l–¡•£/¨¡�<°¡ä¤/ü¼¡6¡ÜL÷¡�üÿ¡?< let re = PikeVM::new(r"([0-9]{4})-([0-9]{2})-([0-9]{2})")?;Áüâ&Ê›0üî¢(û›0›£�ü££:…ÂPüâ£,„ÀP쓤¾’<üµ¤74 let (full, [year, month, day]) = caps.extract(hay);Áüñ¤# assert_eq!("2010-03-14", full);Á왥 assert_eq!("2010", year);Á以 assert_eq!("03", month);ÁÔÜ¥ assert_eq!("14", day);Áû¥�üƒ¦96 // We can also ask for fewer than all capture groups.ÁüÁ¦+( let (full, [year]) = caps.extract(hay);Áüñ¦#ªçPì™§×çP»§�üç.Ǭ/<ö§ä¤/<‰¨›Õ= Õ=˜Û ›¿ëP¿ëPŠBÿ…Šœœ‘¨…Št•¨ šŠ$¯¨ý�ªK57% ›¨’ªš�Ÿ�Ÿ�ŸŸšü–üÓ¸wüµ«?‚ÞPüù«IÌÞPüǬK ßPÔ—­õßP¶­�ü¾­DA This is identical to [`Captures::extract`], except it works withÁô‡® `&[u8]` instead of `&str`.Áª®�d²®úë0î�üË®AÌáPü‘¯J˜âPüà¯)íâPް�ü–°F®ãPüá°HÿãPÌ®±ÑäP̱�lÔ±•£/æ±�<î±ä¤/üú±6¡ÜLµ²�ü½²?ÇåPü�³&Ê›0ü¬³(û›0Ù³�üá³;çÒPü¡´,„ÀPìÒ´¾’<üô´=: let (full, [year, month, day]) = caps.extract_bytes(hay);Áü¶µ$! assert_eq!(b"2010-03-14", full);Áôßµ assert_eq!(b"2010", year);Áì‚¶ assert_eq!(b"03", month);Áܤ¶ assert_eq!(b"14", day);ÁĶ�ü̶9ÖèPüŠ·1. let (full, [year]) = caps.extract_bytes(hay);ÁüÀ·$áðPôé·�ñPŒ¸�ü”¸.Ǭ/<Ǹä¤/lÚ¸¡Ö= Ö=˜Û ¡ÈšËôPËôPŠBÿ…Š¢¢è¸…üëPtì¸  Š$†¹ý�«P/1% ò¸ìº �¥�¥�¥¥ ý lô½ü�¼NK Lower level "slot" oriented APIs. One does not typically need to use theseÁüܼLI when executing a search. They are instead mostly intended for folks thatÁü©½JG are writing their own regex engine while reusing this `Captures` type.Á˜Û§¨©ª¼«Ðüˆ¾  Clear this `Captures` value.Á­¾�üµ¾IF After clearing, all slots inside this `Captures` value will be set toÁüƒ¿GD `None`. Similarly, any pattern ID that it was previously associatedÁüÏ¿! with (for a match) is erased.Áõ¿�üý¿JG It is not usually necessary to call this routine. Namely, a `Captures`ÁüÌÀHE value only provides high level access to the capturing groups of theÁü™ÁHE pattern that matched, and only low level access to individual slots.ÁüæÁFC Thus, even if slots corresponding to groups that aren't associatedÁü±ÂFC with the matching pattern are set, then it won't impact the higherÁüüÂKH level APIs. Namely, higher level APIs like [`Captures::get_group`] willÁüÌÃJG return `None` if no pattern ID is present, even if there are spans setÁä›Ä in the underlying slots.Á¼Ä�üÄÄFC Thus, to "clear" a `Captures` value of a match, it is usually onlyÁü�Å<9 necessary to call [`Captures::set_pattern`] with `None`.ÁÐÅ�lØÅ•£/êÅ�üòÅGD This example shows what happens when a `Captures` value is cleared.Á¾Æ�<ÆÆä¤/üÒÆ=ÔÂ/ü”Ç6¡ÜLÏÇ�ü×ÇAºÿOü�ÈJœ§/ìÈ�üôÈ<ò™1ìµÉ¾’<ü×É# let slots: Vec> =ÁüÿÉB? caps.slots().iter().map(|s| s.map(|x| x.get())).collect();ÁüÆÊGD // Note that the following ordering is considered an API guarantee.ÁÜ’Ë assert_eq!(slots, vec![Á„²Ë Some(0),ÁŒÇË Some(17),Á„ÝËâƒQ„òË Some(5),Á„‡Ì Some(6),ÁŒœÌüƒQ<²ÌÓó9¾Ì�üÆÌKH // Now clear the slots. Everything is gone and it is no longer a match.ÁŒ–Í caps.clear();Áô¬Í„€JüÏÍ#ñ�Qü÷ÍBŸ‚QܾνƒQlÞÎðç6lðÎðç6l‚Ïðç6l”Ïðç6l¦Ïðç6l¸Ïðç6<ÊÏÓó9ÖÏ�üÞÏ.Ǭ/<‘Ðä¤/,²Ð×= ×=˜ÛBÿ¦ ¸Ð¦ §$½Ðüßá5ü¹Ñ-* Set the pattern on this `Captures` value.ÁëÑ�üóÑFC When the pattern ID is `None`, then this `Captures` value does notÁü¾ÒIF correspond to a match (`is_match` will return `false`). Otherwise, itÁÜŒÓ corresponds to a match.Á¬Ó�ü´ÓDA This is useful in search implementations where you might want toÁüýÓDA initially call `set_pattern(None)` in order to avoid the cost ofÁüÆÔ:7 calling `clear()` if it turns out to not be necessary.Á…Õ�l�Õ•£/ŸÕ�ü§ÕKH This example shows that `set_pattern` merely overwrites the pattern ID.Áü÷Õ;8 It does not actually change the underlying slot values.Á·Ö�<¿Öä¤/üËÖ=ÔÂ/ü�×6¡ÜLÈ×�üÐ×AºÿOü–ØJœ§/åØ�üíØ<ò™1ì®Ù¾’<üÐÙ&# assert!(caps.pattern().is_some());ÁüûÙ#ñ�Qü£ÚBŸ‚QüêÚGì‚QܶÛ½ƒQ„ÖÛâƒQŒëÛüƒQ„�ÜâƒQ„–Ü¥„Q„«Ü¿„QŒÀÜüƒQ<ÖÜÓó9âÜ�üêÜEB // Now set the pattern to None. Note that the slot values remain.ÁÜ´Ý caps.set_pattern(None);ÁôÔÝ„€Jü÷Ý'$ assert!(!caps.pattern().is_some());Áü£Þ#ñ�QüËÞBŸ‚Qü’ßGì‚QÜÞß½ƒQ„þßâƒQŒ“àüƒQ„©àâƒQ„¾à¥„Q„Óà¿„QŒèàüƒQ<þàÓó9Šá�ü’á.Ǭ/<Åáä¤/\æáØ= Ø=˜Û€ªBÿ¦ òá¦úÚ$÷á¾¾OVü«ò-üºâIF Returns the underlying slots, where each slot stores a single offset.Áˆã�ü�ãJG Every matching capturing group generally corresponds to two slots: oneÁüßãGD slot for the starting position and another for the ending position.Áü«äGD Typically, either both are present or neither are. (The weasel wordÁü÷äJG "typically" is used here because it really depends on the regex engineÁüÆåFC implementation. Every sensible regex engine likely adheres to thisÁü‘æA> invariant, and every regex engine in this crate is sensible.)Á׿�üßæJG Generally speaking, callers should prefer to use higher level routinesÁü®ç<9 like [`Captures::get_match`] or [`Captures::get_group`].Áïç�ü÷çJG An important note here is that a regex engine may not reset all of theÁüÆèHE slots to `None` values when no match occurs, or even when a match ofÁü“éHE a different pattern occurs. But this depends on how the regex engineÁüàé$! implementation deals with slots.Á‰ê�l‘ê•£/£ê�ü«êJG This example shows how to get the underlying slots from a regex match.Áúê�<‚ëä¤/ÌŽëô¤/ü¬ë&…‹Jü×ë30 util::primitives::{PatternID, NonMaxUsize},Á4�ìÝ¥/šì�ü¢ì ݹM”Çì r"[a-z]+",Á”ÞìùÏ1Dõì•Ð1ü‚íJœ§/Ñí�üÙí.+ re.captures(&mut cache, "123", &mut caps);ÁüŒî9ÐÚOüÊîFC // Note that the only guarantee we have here is that slots 2 and 3Áü•ïIF // are set to correct values. The contents of the first two slots areÁüãï74 // unspecified since the 0th pattern did not match.Á¬Ÿð let expected = &[Ál¹ððç6lËððç6äÝð NonMaxUsize::new(0),Áäþð NonMaxUsize::new(3),Á4ŸñÙý3üªñ'$ assert_eq!(expected, caps.slots());ÁÖñ�üÞñ.Ǭ/<‘òä¤/,²òÙ= Ù=˜Û Ù= ©Bÿ¦ ¸ò¦ ©$¹òüÍõ9üúòKH Returns the underlying slots as a mutable slice, where each slot storesÁ¤Êó a single offset.Áãó�üëóEB This tends to be most useful for regex engine implementations forÁüµô;8 writing offsets for matching capturing groups to slots.Áõô�üýô=: See [`Captures::slots`] for more information about slots.ÁLÔõÚ= Ú=˜Û Ú= ©Bÿ¦ Þõ¦�Ù$ãõüªö"˜Û¬ g¬üÓö@ÖöÛ=Ü=Ý= Û=˜Û Ü=€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ý=­àBÿ« Úö« ¬$Ûöœ áöÜþù„…úôÄ®®òÛG‹F ¯{òT¯°–út ú úô­­›†”´ú$´úô­­ ĘÛüËú2IJ²òÛ³ g³Ðúü„û@‡ûÞ=ß=à= Þ=òÛ ß=€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡à=­àBÿ± ‹û± ³Ä$Œûœ ’ûJ ÖûôͶ¼Ü¸L®�§Oîµ·¸Å™Ç™È™­É™Ê™àË™óG*¤�R{9 ðæ¼ÜBÿ˜J ’ô”®Q¼ÜBÿ´´ µÄÚû,Þûô´´|åûô´´”®Qü€ü%ĺº¼Ü» g»…üü´ü@·üá=â=ã= á=¼Ü â=€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ã=­àBÿ¹ »ü¹ »Ä$¼üœ ÂüüÔ…-Ľ½ˆÝ¾¿ÀÁÅQÆQÊQËQ¿ÀÁÙ…Lˆ†$�†¼¼íõü§†*$ª†è= è=ˆÝřǙș­É™Ê™àË™óG*¤�R{9 íõBÿ¼ ¯†¼ ¿Ä$´†üÁ‡-Lćé= é=ˆÝÖè>Bÿ¼ ·¼ ÀÄ$χ¼›ˆ,žˆˆÝBÿ¼¼ ÁÄ$¤ˆüÙˆ6ÄÃÈÝÞˆü“‰>ÄÅňݘ‰t©ÆýÝÇÌÎÐÑÓÔÖרÙÚÛÜÝüÎëºü¾ÆDA Creates a new group info from a sequence of patterns, where eachÁü‡ÇGD sequence of patterns yields a sequence of possible group names. TheÁüÓÇIF index of each pattern in the sequence corresponds to its `PatternID`,Áü¡ÈIF and the index of each group in each pattern's sequence corresponds toÁüïÈ" its corresponding group index.Á–É�üžÉHE While this constructor is very generic and therefore perhaps hard toÁüëÉFC chew on, an example of a valid concrete type that can be passed toÁü¶ÊC@ this constructor is `Vec>>`. The outer `Vec`ÁüþÊDA corresponds to the patterns, i.e., one `Vec>` perÁüÇËDA pattern. The inner `Vec` corresponds to the capturing groups forÁü�ÌEB each pattern. The `Option` corresponds to the name of theÁüÚÌ  capturing group, if present.ÁÿÌ�ü‡ÍFC It is legal to pass an empty iterator to this constructor. It willÁüÒÍFC return an empty group info with zero slots. An empty group info isÁü�ÎHE useful for cases where you have no patterns or for cases where slotsÁüêÎA> aren't being used at all (e.g., for most DFAs in this crate).Á°Ï�d¸Ï•£1ÉÏ�üÑÏGD This constructor returns an error if the given capturing groups areÁü�ÐGD invalid in some way. Those reasons include, but are not necessarilyÁ|éÐ limited to:ÁýÐ�ü…Ñ;8 * Too many patterns (i.e., `PatternID` would overflow).ÁüÅÑ=: * Too many capturing groups (e.g., `u32` would overflow).Áü‡ÒIF * A pattern is given that has no capturing groups. (All patterns mustÁüÕÒ<9 have at least an implicit capturing group at index `0`.)Áü–ÓFC * The capturing group at index `0` has a name. It must be unnamed.ÁüáÓHE * There are duplicate capturing group names within the same pattern.Áü®ÔEB (Multiple capturing groups with the same name may exist, but theyÁüøÔ# must be in different patterns.)Á Õ�ü¨ÕA> An example below shows how to trigger some of the above errorÁ|îÕ conditions.Á‚Ö�lŠÖ•£/œÖ�ü¤ÖFC This example shows how to build a new `GroupInfo` and query it forÁ„ïÖε5„×�<Œ×ä¤/ü˜×2/ use regex_automata::util::captures::GroupInfo;ÁÏ×�ü××# let info = GroupInfo::new(vec![Áüÿ×  vec![None, Some("foo")],Áœ¤Ø vec![None],Áü¼Ø2/ vec![None, None, None, Some("bar"), None],ÁüóØ&# vec![None, None, Some("foo")],ÁDžÙ•Ð1ü«Ù,) // The number of patterns being tracked.ÁüÜÙ&# assert_eq!(4, info.pattern_len());ÁćÚ // 2 slots per groupÁü¤Ú$! assert_eq!(22, info.slot_len());ÁÍÚ�üÕÚ.Ǭ/<ˆÛä¤/”Û�üœÛ  # Example: empty `GroupInfo`ÁÁÛ�üÉÛFæÆQ„”Üε5©Ü�<±Üä¤/ü½Ü2àÇQôÜ�üüÜ" let info = GroupInfo::empty();ÁÔ£Ý // Everything is zero.ÁüÂÝ&# assert_eq!(0, info.pattern_len());ÁüíÝ# assert_eq!(0, info.slot_len());Á•Þ�ü�Þ.Ǭ/<ÐÞä¤/ÜÞ�üäÞ # Example: error conditionsÁˆß�ü�ßHE This example shows how to provoke some of the ways in which buildingÁÜÝß a `GroupInfo` can fail.Áýß�<…àä¤/ü‘à2àÇQÈà�üÐàIF // Either the group info is empty, or all patterns must have at leastÁÜžá // one capturing group.Áü¾á  assert!(GroupInfo::new(vec![Áüãá$! vec![None, Some("a")], // okÁÌŒâ vec![None], // okÁ̪â vec![], // not okÁŒÈâ ]).is_err());ÁüÞâ41 // Note that building an empty group info is OK.Áü—ãGD assert!(GroupInfo::new(Vec::>>::new()).is_ok());Áãã�üëãEB // The first group in each pattern must correspond to an implicitÁüµäHE // anonymous group. i.e., One that is not named. By convention, thisÁü‚åKH // group corresponds to the overall match of a regex. Every other groupÁüÒå-* // in a pattern is explicit and optional.Áü„æ>; assert!(GroupInfo::new(vec![vec![Some("foo")]]).is_err());ÁÇæ�üÏæGD // There must not be duplicate group names within the same pattern.Áü›ç ÞÑQüÀç-* vec![None, Some("foo"), Some("foo")],ÁŒòçýÒQüˆè:7 // But duplicate names across distinct patterns is OK.ÁüÇè ÞÑQüìè ØÈQü‘é ØÈQ„¶é ]).is_ok());ÁËé�üÓé.Ǭ/<†êä¤/’ê�üšêC@ There are other ways for building a `GroupInfo` to fail but areÁüâêIF difficult to show. For example, if the number of patterns given wouldÁ̰ë overflow `PatternID`.ÁÕëµ“ÓÆBÿƌȃɊÊÊÈÉÆŸÛ/ ÙëþÆðÁ ÜëþÆˆÊ ßëŽPµ“´¯ì�Pµ“ðÁD¼ìŽPðÁôÒì�PðÁÃÉ„ß죈ÊTýì ǵ“ðÁˆÊ˜êOp¢¤�Ÿ˜š˜øÇ�Ë�Ë�ËËÇúÏÜÝ€üÍû&# This creates an empty `GroupInfo`.Áøû�ü€üFC This is a convenience routine for calling `GroupInfo::new` with anÁüËü%" iterator that yields no elements.Áõü�lýü•£/�ý�ü—ýHE This example shows how to build a new empty `GroupInfo` and query itÁ¤äý for information.Áýý�<…þä¤/ü‘þ2àÇQÈþ�üÐþ"˜ÍQÔ÷þÄÍQü–ÿ&éÍQüÁÿ(% assert_eq!(0, info.all_group_len());Áüîÿ#šÎQ–€�üž€.Ǭ/<Ñ€ä¤/,ä€ýÝBÿÆÆ Ì µ�üº�Cüÿ�IF Return the capture group index corresponding to the given name in theÁüÍ‚DA given pattern. If no such capture group name exists in the givenÁü–ƒ&# pattern, then this returns `None`.ÁÁƒ�üɃA> If the given pattern ID is invalid, then this returns `None`.Á�„�ü—„GD This also returns `None` for all inputs if these captures are emptyÁüã„HE (e.g., built from an empty [`GroupInfo`]). To check whether capturesÁü°…EB are present for a specific pattern, use [`GroupInfo::group_len`].Áú…�l‚†•£/”†�üœ†JG This example shows how to find the capture index for the given patternÁœë† and group name.Áƒ‡�ü‹‡HE Remember that capture indices are relative to the pattern, such thatÁü؇HE the same capture index value may refer to different capturing groupsÁÔ¥ˆ for distinct patterns.ÁĈ�<̈ä¤/ü؈=ÔÂ/üš‰8–‘J׉�ü߉@= let (pid0, pid1) = (PatternID::must(0), PatternID::must(1));Á¤Š�ô¬Š let nfa = NFA::new_many(&[ÁüÏŠ'$ r"a(?P\w+)z(?P\s+)",ÁÔûŠ r"a(?P\d+)z",ÁDš‹•Ð1ü§‹" let groups = nfa.group_info();Áü΋63 assert_eq!(Some(2), groups.to_index(pid0, "foo"));Áü‰ŒFC // Recall that capture index 0 is always unnamed and refers to theÁüÔŒJG // entire pattern. So the first capturing group present in the patternÁü£�'$ // itself always starts at index 1.ÁüÏ�63 assert_eq!(Some(1), groups.to_index(pid1, "foo"));ÁŠŽ�ü’ŽEB // And if a name does not exist for a particular pattern, None isÁ„ÜŽ // returned.ÁüñŽ52 assert!(groups.to_index(pid0, "quux").is_some());Áü«�52 assert!(groups.to_index(pid1, "quux").is_none());Áå��üí�.Ǭ/< �ä¤/DÁ�î=ï= î=ýÝ›† ï=ØÚBÿÆ Ê�Æ Î$Ë�¾¾ |‚ |è‘Î�Ï�Ï�ÏÏÎñ÷ü” Iü…’IF Return the capture name for the given index and given pattern. If theÁüÓ’GD corresponding group does not have a name, then this returns `None`.ÁŸ“�ü§“;8 If the pattern ID is invalid, then this returns `None`.Áç“�üï“JG If the group index is invalid for the given pattern, then this returnsÁü¾”KH `None`. A group `index` is valid for a pattern `pid` in an `nfa` if andÁüŽ•30 only if `index < nfa.pattern_capture_len(pid)`.ÁÆ•�üΕG›æQüš–HíæQüç–EÀçQ±—�l¹—•£/Ë—�üÓ—GD This example shows how to find the capture group name for the givenÁ䟘 pattern and group index.ÁÀ˜�<Șä¤/üÔ˜=ÔÂ/ü–™8–‘JÓ™�üÛ™@ÇëQ š�ô¨šžìQüËš%" r"a(?P\w+)z(\s+)x(\d+)",Áüõš r"a(\d+)z(?P\s+)",ÁD™›•Ð1ü¦›"«íQüÍ›.+ assert_eq!(None, groups.to_name(pid0, 0));Áü€œ52 assert_eq!(Some("foo"), groups.to_name(pid0, 1));Áüºœ.+ assert_eq!(None, groups.to_name(pid0, 2));Áüíœ.+ assert_eq!(None, groups.to_name(pid0, 3));Á ��ü¨�.+ assert_eq!(None, groups.to_name(pid1, 0));ÁüÛ�.+ assert_eq!(None, groups.to_name(pid1, 1));ÁüŽž52 assert_eq!(Some("foo"), groups.to_name(pid1, 2));ÁüÈž?< // '3' is not a valid capture index for the second pattern.ÁüŒŸ.+ assert_eq!(None, groups.to_name(pid1, 3));Á¿Ÿ�üÇŸ.Ǭ/<úŸä¤/<› ð= ð=ýÝ›†Å™Ç™È™­É™Ê™àË™óG*¤�R{9  ð=BÿÆ £ Æ Ð$¤ ¾¾t‚ÊÚ~‚ü²¬Hüå¡IF Return an iterator of all capture groups and their names (if present)Áì³¢ for a particular pattern.ÁÕ¢�üÝ¢GD If the given pattern ID is invalid or if this `GroupInfo` is empty,Áü©£)& then the iterator yields no elements.Á×£�üߣFC The number of elements yielded by this iterator is always equal toÁüª¤@= the result of calling [`GroupInfo::group_len`] with the sameÁ„ï¤Öé5„¥�lŒ¥•£/ž¥�ü¦¥G–ÚJÌò¥çÚJ�¦�<˜¦ä¤/ü¤¦8–‘Já¦�üé¦:ÂÛJü¨§G‡ÜJüô§KÙÜJüĨJ¯ÝJü“© „ÞJü¸©B¯ÞJôÿ©—‘3¢ª�üªªB—ßJüñªKäßJ¼Á«¹àJÝ«�üå«.Ǭ/<˜¬ä¤/l¹¬ñ= ñ=ýÝ›†ê&ê&ñˆì&ÛËô'|±0Ú2yßñ=BÿÆ ǬÆ Ñ$Ȭ¾¾‡Lž®Ñ�Ò�Ò�ÒÒÑÌŒüʼ0üô®JG Return an iterator of all capture groups for all patterns supported byÁüïJG this `GroupInfo`. Each item yielded is a triple of the group's patternÁü’°>; ID, index in the pattern and the group's name, if present.ÁÕ°�lݰ•£/ï°�ü÷°GD This example shows how to get a list of all capture groups found inÁüñ41 one NFA, potentially spanning multiple patterns.Áü±�<„²ä¤/ü�²8–‘JͲ�ôÕ²žìQ´ø²‚¯Pl“³ r"a",Á|¥³ r"(a)",ÁD¹³•Ð1ÄÆ³çü3üã³&û°PüŽ´-¬±PüÀ´&ä±Püë´&÷²Pü–µ&# (PatternID::must(2), 1, None),Á4ÁµÙý3ü̵4†¶Pü…¶/, nfa.group_info().all_names().collect();Áô¹¶—‘3ܶ�üä¶.Ǭ/<—·ä¤/£·�ü«·GD Unlike other capturing group related routines, this routine doesn'tÁü÷·63 panic even if captures aren't enabled on this NFA:Á²¸�<º¸ä¤/üƸ<¸£H‡¹�ì�¹êÝ/ü±¹E÷¡J´û¹·Ú5Ô–º r"(?Pa)",ÁŒµº r"a",ÁœËº r"(a)",Ád㺓Û5üôº?< // When captures aren't enabled, there's nothing to return.Áü¸»85 assert_eq!(0, nfa.group_info().all_names().count());Áõ»�üý».Ǭ/<°¼ä¤/LѼò= ò=ýÝó&ó&ɉõ&Ö]ôö&ò‰ô÷&þ‰ôø&ƒ ô”¨½ªox2ò=BÿÆ Û¼Æ Ó$ܼü·Çpü»¾C@ Returns the starting and ending slot corresponding to the givenÁüƒ¿HE capturing group for the given pattern. The ending slot is always oneÁüп)& more than the starting slot returned.Áþ¿�ü†ÀKH Note that this is like [`GroupInfo::slot`], except that it also returnsÁüÖÀ*' the ending slot value for convenience.Á…Á�ü�ÁGD If either the pattern ID or the capture index is invalid, then thisÁŒÙÁ returns None.ÁïÁ�l÷Á•£/‰Â�ü‘ÂFC This example shows that the starting slots for the first capturingÁüÜÂ'$ group of each pattern are distinct.ÁˆÃ�<�Ãä¤/üœÃ8–‘JÙÃ�üáÃ*' let nfa = NFA::new_many(&["a", "b"])?;Á|�Ä assert_ne!(Áü¤Ä63 nfa.group_info().slots(PatternID::must(0), 0),ÁüßÄ63 nfa.group_info().slots(PatternID::must(1), 0),Á4šÅ½µ0¥Å�ü­Å@= // Also, the start and end slot values are never equivalent.ÁüòÅKH let (start, end) = nfa.group_info().slots(PatternID::ZERO, 0).unwrap();ÁÜÂÆ assert_ne!(start, end);ÁâÆ�üêÆ.Ǭ/<�Çä¤/,¾Çó= ó=ýÝ›†ØúBÿÆ ÍÇÆ—ú$ÎǾ¾È‹ÊÚÒ‹<ŽÊÔ�Õ�Õ�ÕÕÔÑ—üØÐGüµÊHE Returns the starting slot corresponding to the given capturing groupÁü‚ËFC for the given pattern. The ending slot is always one more than theÁœÍË value returned.ÁåË�üíËGï˜RŒ¹ÌÀ™RÏÌ�l×Ì•£/éÌ�üñÌF„šRü¼Í'ÕšRèÍ�<ðÍä¤/üüÍ8–‘J¹Î�üÁÎ*¾›R|ðÎò›Rü„Ï52 nfa.group_info().slot(PatternID::must(0), 0),Áü¾Ï52 nfa.group_info().slot(PatternID::must(1), 0),Á4øÏ½µ0ƒÐ�ü‹Ð.Ǭ/<¾Ðä¤/$ßÐô= ô=ýÝ›†ØÚBÿÆ äÐÆ…—$åо¾£�ÊÚ­�ü�Þ"üÉ×=: Returns the total number of patterns in this `GroupInfo`.Á‹Ø�ü“ØC@ This may return zero if the `GroupInfo` was constructed with noÁlÛØ™È?íØ�üõØHÄ—JüÂÙFC `GroupInfo` construction will fail if too many patterns are added.Á�Ú�l•Ú•£/§Ú�<¯Úä¤/ü»Ú+”“HëÚ�üóÚ>ä‘Jü¶Û2/ assert_eq!(3, nfa.group_info().pattern_len());ÁíÛ�üõÛ!ßšJü›Ü2/ assert_eq!(0, nfa.group_info().pattern_len());ÁÒÜ�üÚÜ"È›Jü�Ý2/ assert_eq!(1, nfa.group_info().pattern_len());Á¸Ý�üÀÝ.Ǭ/<óÝä¤/\”Þõ= õ=ýÝBÿÆ  ÞÆÿó$¡ÞüÐê0üÚÞ52 Return the number of capture groups in a pattern.Á”ß�üœß85 If the pattern ID is invalid, then this returns `0`.ÁÙß�láß•£/óß�üûßGD This example shows how the values returned by this routine may varyÁüÇà2/ for different patterns and NFA configurations.Áþà�<†áä¤/ü’áIF use regex_automata::{nfa::thompson::{NFA, WhichCaptures}, PatternID};Áàá�üèá&# let nfa = NFA::new(r"(a)(b)(c)")?;Áü“âGD // There are 3 explicit groups in the pattern's concrete syntax andÁüßâ@= // 1 unnamed and implicit group spanning the entire pattern.Áü¤ã?< assert_eq!(4, nfa.group_info().group_len(PatternID::ZERO));Áèã�üðã  let nfa = NFA::new(r"abc")?;Áü•ä0- // There is just the unnamed implicit group.ÁüÊä?< assert_eq!(1, nfa.group_info().group_len(PatternID::ZERO));ÁŽå�ì–åêÝ/ü¸åE÷¡JÄ‚æ .build(r"abc")?;ÁüŸæ74 // We disabled capturing groups, so there are none.ÁüÛæ?< assert_eq!(0, nfa.group_info().group_len(PatternID::ZERO));ÁŸç�ì§çêÝ/üÉçE÷¡Jô“è .build(r"(a)(b)(c)")?;Áü¶èIF // We disabled capturing groups, so there are none, even if there areÁü„é.+ // explicit groups in the concrete syntax.Áü·é?•´Rûé�üƒê.Ǭ/<¶êä¤/L×êö= ö=ýÝ›†BÿÆ áêÆ”›$âê¾¾=“ü‘ù$ü¬ëB? Return the total number of capture groups across all patterns.Áóë�üûëFC This includes implicit groups that represent the entire match of aÁdÆìáé/×ì�lßì•£/ñì�üùìG§­RüÅí2ù­Rüí�<„îä¤/ü�îIÑ®RÞî�üæî&²¯Rü‘ïGã¯RüÝï@µ°Rü¢ð41 assert_eq!(4, nfa.group_info().all_group_len());ÁÛð�üãð ×±Rüˆñ0‚²Rü½ñ41 assert_eq!(1, nfa.group_info().all_group_len());Áöñ�üþñ30 let nfa = NFA::new_many(&["(a)", "b", "(c)"])?;Áü¶ò41 // Each pattern has one implicit groups, and twoÁüïò-* // patterns have one explicit group each.Áü¡ó41 assert_eq!(5, nfa.group_info().all_group_len());ÁÚó�ìâóêÝ/ü„ôE÷¡JÄÎô°³Rüëô7Ó³Rü§õ41 assert_eq!(0, nfa.group_info().all_group_len());Áàõ�ìèõêÝ/üŠöE÷¡JôÔöˆµRü÷öI±µRüÅ÷.…¶Rüø÷?•´R¼ø�üÄø.Ǭ/<÷øä¤/l˜ù÷= ÷=ýÝBÿÆ ¦ùÆ Ù$§ùüÜ€üßùDA Returns the total number of slots in this `GroupInfo` across allÁl¨ú™È?ºú�üÂúKH The total number of slots is always twice the total number of capturingÁü’û85 groups, including both implicit and explicit groups.ÁÏû�l×û•£/éû�üñûGD This example shows the relationship between the number of capturingÁ¬½ü groups and slots.Á×ü�<ßüä¤/üëü2àÇQ¢ý�üªý&# // There are 11 total groups here.ÁüÕý#ªÈQüýý ØÈQœ¢þ‚ÉQüºþ2 ÉQüñþ&ÝÉQDœÿ•Ð1ü©ÿ0- // 2 slots per group gives us 11*2=22 slots.ÁüÞÿ$¦ËQ‡€�ü�€.Ǭ/<€ä¤/Dã€ø= ø=ýÝBÿÆ ì€Æž¨$í€üÊŠ(ü´�DA Returns the total number of slots for implicit capturing groups.Áý��ü…‚GD This is like [`GroupInfo::slot_len`], except it doesn't include theÁüÑ‚EB explicit slots for each pattern. Since there are always exactly 2Áü›ƒKH implicit slots for each pattern, the number of implicit slots is alwaysÁüëƒ*' equal to twice the number of patterns.Áš„�l¢„•£/´„�ü¼„GþÂRüˆ….+ groups, implicit slots and explicit slots.Á»…�<Ã…ä¤/üÏ…2àÇQ††�üކ&¦ÄRü¹†KH let info = GroupInfo::new(vec![vec![None, Some("foo"), Some("bar")]])?;Áü‰‡0¯ÅRü¾‡# assert_eq!(6, info.slot_len());Áüæ‡IF // 2 implicit slots per pattern gives us 2 implicit slots since thereÁ¤´ˆ // is 1 pattern.Áü͈,) assert_eq!(2, info.implicit_slot_len());ÁüþˆA> // 2 explicit capturing groups gives us 2*2=4 explicit slots.Áüĉ,) assert_eq!(4, info.explicit_slot_len());Áõ‰�üý‰.Ǭ/<°Šä¤/ŒÑŠù= ù=ýÝBÿÆ ãŠÆî»$äŠüΕ(üŸ‹DA Returns the total number of slots for explicit capturing groups.Áè‹�üð‹GÕÇRü¼ŒKH implicit slots for each pattern. (There are always 2 implicit slots forÁ”Œ� each pattern.)Á£��ü«�IF For a non-empty `GroupInfo`, it is always the case that `slot_len` isÁüù�HE strictly greater than `explicit_slot_len`. For an empty `GroupInfo`,ÁüÆŽFC both the total number of slots and the number of explicit slots isÁD‘� `0`.Áž��l¦�•£/¸��üÀ�GþÂRüŒ�.¹ÊR¿��<Ç�ä¤/üÓ�2àÇQŠ‘�ü’‘&¦ÄRü½‘K¸ËRü�’0¯ÅRüÂ’#�ÌRüê’IËÌR¤¸“žÍRüÑ“,½ÍRü‚”AôÍRüÈ”,ÀÎRù”�ü�•.Ǭ/<´•ä¤/ŒÕ•ú= ú=ýÝBÿÆ ç•Æ Ü$è•ü«˜#üÅ–<9 Returns the memory usage, in bytes, of this `GroupInfo`.Á†—�üŽ—IF This does **not** include the stack size used up by this `GroupInfo`.ÁüÜ—<9 To compute that, use `std::mem::size_of::()`.Ád²˜û= û=ýÝBÿÆ ¿˜Æ¿‘$À˜”ݘ ó˜œÀ¡Ó‰|®¡¼¨¡tÅ¡ô¨½œÎ¥ÍÞáâåèéêüÉ©-|Ì©ôÿ= ÿ=ÍÞ›†Bÿà Ü©à•Ì$᩾¾ç©üþ³®”�´ô€> €>ÍÞ›†×�’â¹ÓBÿàŠãã ¬´àþÆÎÆ ”´£ÎÆT—´ âÎÆ$±´¾¾€°âë‹°ÌëÛ°DF�¹â�ä�ä�ääâ�Çü‡Ç=ŒŠÇô�> �>ÍÞ¹ÓBÿà œÇàñÕ$¡ÇüÓÇ)„ìÇ•Îå�ç�ç�ççåç¶ÏÄÏô€Ñ\ƒÑô‚> ‚>ÍÞBÿà �Ñà”¥$�Ñü÷Ò,LúÒôƒ> ƒ>ÍÞ›†Bÿà „Óàã¦$…Ó¾¾‹Óü…Ø&tˆØô„> „>ÍÞ×�Bÿà —Øà˪$˜Ø\óÛê�ë�ë�ëëêëõ¢×�Uÿœâî¶ßíîïðñüüî;Œÿîôú‰¶ßBÿìì“캑ïü’ðH|•ðô›†¶ßBÿìì£ñîN<¥ðí¹<¹ðüÕñ7tØñô›†¶ßBÿììúÊîN<çñüéò>¬ìòô›†¶ßBÿììÍÊîN<‚óüžô>L¡ôô�>›† �>¶ßBÿì ÅôìýÌîN<«ô‚ $¿ôü§ö)Ó‰|•ö¼�ö¶ßó‚óü×ö>4ÚöŽ> Ž>¶ßřǙș­É™Ê™àË™óG*¤�R{9  Ž>ç¡2Bÿò áöò ó$âöüâù*¶ßõ¥gõü“úD–ú�>�>‘> �>¶ß �>€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡‘>­àBÿô šúô õ$›úœ ¡úÄæúüà‡#ê&ê&ñˆì&ÛËô'|±0Ú2yßøüŠˆ,,�ˆô§éRBÿ÷÷ øüòˆ/ÄúúÌáûüþÿÅQÆQÊQËQþÿü÷ˆL¨‰$­‰ùù”®Qüʉ-$͉–> –>ÌářǙș­É™Ê™àË™óG*¤�R{9 ”®QBÿù Ò‰ù üÄ$׉•Šü�ý�ý�ýýüýùíKºÅUÿü²Š-LµŠ—> —>ÌáÖè>Bÿù ¿Šù þÄ$À쉋,Œ‹ÌáBÿùù ÿÄ$’‹üÄ‹8Ä��ÌáÉ‹ü€Œ@ăƒÌá…Œüœ�+Ä……µâ†‡ÅQÆQ‡¡�LÎ�$Ó�„„›†”®Qü„‘A$‡‘›> ›>µâřǙș­É™Ê™àË™óG*¤�R{9 ÛïRBÿ„ Œ‘„ ‡Ä$‘‘t˜ ;üü$÷ Provides convenience routines for escaping raw bytes. Since this crate tends to deal with `&[u8]` everywhere and the default `Debug` implementation just shows decimal integers, it makes debugging those representations quite difficult. This module provides types that show `&[u8]` as if it were a string, with invalid UTF-8 escaped into its byte-by-byte hex representation. Á4  ;�Žü&ý&‚�$�$戉Œ‚$ü½#$¢ã‹ g‹üç@$ê$�>ž>Ÿ> �>¢ã ž>€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ÿ>­àBÿŠ î$Š ‹$ï$œ õ$� $‹‹"­ ü… =$: Provides a convenient `Debug` implementation for `&[u8]`.Áà $�üÇ M$J This generally works best when the bytes are presumed to be mostly UTF-8,Áü• I$F but will work for anything. For any bytes that aren't UTF-8, they areÁüß $$! emitted as hex escape sequences.Ál�$Ä��úã°µûS…òŽ� ÄÈšúãBÿœ® M�ùRúãBÿ�� ŽÄ�$d¡$���ùRü±/$Ä’’úã“ g“¶$üç@$ê$ >¡>¢>  >úã ¡>€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡¢>­àBÿ‘ î$‘ “Ä$ï$œ õ$œÂ ;ü¡œ Provides routines for interpolating capture group references. That is, if a replacement string contains references like `$foo` or `${foo1}`, then they are replaced with the corresponding capture values for the groups named `foo` and `foo1`, respectively. Similarly, syntax like `$1` and `${1}` is supported as well, with `1` corresponding to a capture group index and not a name. This module provides the free functions [`string`] and [`bytes`], which interpolate Rust Unicode strings and byte strings, respectively. # Format These routines support two different kinds of capture references: unbraced and braced. For the unbraced format, the format supported is `$ref` where `name` can be any character in the class `[0-9A-Za-z_]`. `ref` is always the longest possible parse. So for example, `$1a` corresponds to the capture group named `1a` and not the capture group at index `1`. If `ref` matches `^[0-9]+$`, then it is treated as a capture group index itself and not a name. For the braced format, the format supported is `${ref}` where `ref` can be any sequence of bytes except for `}`. If no closing brace occurs, then it is not considered a capture reference. As with the unbraced format, if `ref` matches `^[0-9]+$`, then it is treated as a capture group index and not a name. The braced format is useful for exerting precise control over the name of the capture reference. For example, `${1}a` corresponds to the capture group reference `1` followed by the letter `a`, where as `$1a` (as mentioned above) corresponds to the capture group reference `1a`. The braced format is also useful for expressing capture group names that use characters not supported by the unbraced format. For example, `${foo[bar].baz}` refers to the capture group named `foo[bar].baz`. If a capture group reference is found and it does not refer to a valid capture group, then it will be replaced with the empty string. To write a literal `$`, use `$$`. To be clear, and as exhibited via the type signatures in the routines in this module, it is impossible for a replacement string to be invalid. A replacement string may not have the intended semantics, but the interpolation procedure itself can never fail. ÁÓ«Œ® ;̨ ;\Ê ;™�¦§ªƒ'™'å4·ëI”–üÄ…C”—ì4ä É”˜Ç,§t¯HD¿9ÜÏ*üÓ«üíOL Accepts a replacement string and interpolates capture references with theirÁ̽ corresponding values.Á×�üÛLI `append` should be a function that appends the string value of a captureÁü¨IF group at a particular index to the string given. If the capture groupÁüò63 index is invalid, then nothing should be appended.Á©�ü­LI `name_to_index` should be a function that maps a capture group name to aÁüúLI capture group index. If the given name doesn't exist, then `None` shouldÁ„Ç be returned.ÁØ�üÜNK Finally, `dst` is where the final interpolated contents should be written.Áü«MJ If `replacement` contains no capture group references, then `dst` will beÁüù  equivalent to `replacement`.Áš�üžEB See the [module documentation](self) for details about the formatÁtä supported.Áó�l÷•£/…�<‰ä¤/ü‘*' use regex_automata::util::interpolate;Á¼�üÀ ÛÇPÄá interpolate::string(Á¼ú "foo $bar baz",Á´’ |index, dst| {ÁÜ© if index == 0 {ÁüÅ$! dst.push_str("BAR");Álêòû3TøäãF„ƒ |name| {Áô” if name == "bar" {Á¼³ Some(0)Á¤Ë } else {Á¤à NoneÁlõòû3TƒäãFŒŽ &mut dst,Á4 ½µ0ü§# assert_eq!("foo BAR baz", dst);Á<Ëä¤/4Ú£>¤> £>¾—Å— ¤>˜âBÿ¢ÆšÈÆ›š› ÷þƾ—ô�þÆÅ—üÄ!¥>ˆ#¾— ¥>˜âÌ’¥>�#¾—Á›S¦>ˆ#Å— ¦>äɦ>�#Å—‚œSØÚlØ ™¾—Å—ˆ¨\ꡨ4…¡†lµĨÏÑÈÊÄÆ$â™�œ�œ�œœ™¸—üà/­üâ%NK Accepts a replacement byte string and interpolates capture references withÁü±& their corresponding values.ÁÑ&�üÕ&IF `append` should be a function that appends the byte string value of aÁüŸ'HE capture group at a particular index to the byte string given. If theÁüè'DA capture group index is invalid, then nothing should be appended.Á­(�ü±(L¦�Süþ(Lü�S„Ë)Ñ‘SÜ)�üà)N÷‘Sü¯*MÏ’Süý* ¦“Sž+�ü¢+EÜ“Stè+ª”S÷+�lû+•£/‰,�<�,ä¤/ü•,*ô”SÀ,�ÌÄ,ÆØP¼Þ, interpolate::bytes(ÁÄö, b"foo $bar baz",Á´�-‚–Sܦ-¡–SüÂ-.+ dst.extend_from_slice(b"BAR");Álñ-òû3Tÿ-äãF„Š.�—Sô›.¦—S¼º.Í—S¤Ò.í—S¤ç.Š˜Slü.òû3TŠ/äãFŒ•/Á˜S4§/½µ0ü®/)& assert_eq!(&b"foo BAR baz"[..], dst);Á<Ø/ä¤/,ç/§>¨> §>ÈšDZÅ— ¨>̹BÿƒÇžÈÆŸžŸ ƒ0þÆDZüš0Ÿ›SüÒ0!©>ˆ#DZ ©>̹ÔŸ0©>�#DZÀ¦Sª>ˆ#Å— ª>ä×0ª>�#Å—�§SØÚlæ0 �DZÅ—ˆ¨\ö/¡¨4’0¡†lÃ0ĨAÞÀÂÄÆ$ä3�� � �  �Á±üë="Ä¢¢È壮£ð=ô”>$—>ðæÈåBÿ¡¡ £Ä® œ>üÔ>!€ç¥®¥üü>!$ÿ>€çBÿ¤¤ ¥® „?üðB=dóB”¹> ¹>ȚřǙș­É™Ê™àË™óG*¤�R{9 ƒ'ƒ'㊅'ýŠ”†'’”†R�T±™ í¹>Bÿ �Cž›ˆ¨\€CüžLJœ¡L”º> º>ȚřǙș­É™Ê™àË™óG*¤�R{9 ƒ'ƒ'㊅'ýŠ”†'’”†R�T±™ íº>Bÿ ºL §ΡAµLŸ ÅL$×M§�¨�¨�¨¨§¨Ï—$ N§�©�©�©©§©Ï—üéS%œìS”Bÿ ª˜ €Td× ;üí%è Generic helpers for iteration of matches from a regex engine in a haystack. The principle type in this module is a [`Searcher`]. A `Searcher` provides its own lower level iterator-like API in addition to methods for constructing types that implement `Iterator`. The documentation for `Searcher` explains a bit more about why these different APIs exist. Currently, this module supports iteration over any regex engine that works with the [`HalfMatch`], [`Match`] or [`Captures`] types. Á$ß ;Éç…³'½'¾'Æ'Ç'Ï'Ð'œãD¤%±&«¬áºLÈ%é,«®—,Ó%Ñ,«¯ÕÛ,Ú%ú,«°ÛÀTá%Ì-«±ü�%Ó«Œõ%Ìï%�œ²%qs`bNP<>¬×;%¸³³Ûç´µ·¹»½¿ÁÃÅÇÜ;%üÈ>,%üó;;%8 Create a new fallible non-overlapping matches iterator.Á³<%�ü» % such as a prefilter scanner.ÁÏ>%¿�ÛçBÿ²² ´¸–`,Ó>%üÂA+%ü³?6%3 Returns the current `Input` used by this searcher.Áî?%�üö?D%A The `Input` returned is generally equivalent to the one given toÁü¿@I%F [`Searcher::new`], but its start position may be different to reflectÁü�A0%- the start of the next search to be executed.Á,ÉA%¶ ¶Ûç ¶¿�Bÿ²ÏA%² µ¸$×A%ü‚Y’%ü�BJ%G Return the next half match for an infallible search if one exists, andÁüÞB!% advance to the next position.Á„C%�üŒCE%B This is like `try_advance_half`, except errors are converted intoÁ\ÖC% panics.ÁæC%�dîC%úë0ÿC%�ü‡DK%H If the given closure returns an error, then this panics. This is usefulÁü×DI%F when you know your underlying regex engine has been configured to notÁ¤¥E% return an error.Á¾E%�lÆE%•£/ØE%�üàEJ%G This example shows how to use a `Searcher` to iterate over all matchesÁü¯F9%6 when using a DFA, which only provides "half" matches.ÁíF%�<õF%ä¤/Ì�G%ô¤/ÌŸG%ûÊ3ì½G% util::iter::Searcher,ÁÌßG%¢è34ýG%Ý¥/ˆH%�ü�H6%3 let re = DFA::new(r"[0-9]{4}-[0-9]{2}-[0-9]{2}")?;ÁüËH&%Ê›0öH%�üþH?%< let input = Input::new("2010-03-14 2016-10-08 2020-10-22");ÁüÂI&%# let mut it = Searcher::new(input);ÁíI%�üõI0%- let expected = Some(HalfMatch::must(0, 10));ÁüªJL%I let got = it.advance_half(|input| re.try_search_fwd(&mut cache, input));ÁôûJ%—‘3žK%�ü¦K0%- let expected = Some(HalfMatch::must(0, 21));ÁüÛKL%ÍÃSô¬L%—‘3ÏL%�ü×L0%- let expected = Some(HalfMatch::must(0, 32));ÁüŒML%ÍÃSôÝM%—‘3€N%�ĈN%æ¼1ü¥NL%ÍÃSôöN%—‘3™O%�ü¡O.%Ǭ/<ÔO%ä¤/àO%�üèOK%H This correctly moves iteration forward even when an empty match occurs:Á¸P%�<ÀP%ä¤/ÌÌP%ô¤/ÌêP%ûÊ3ìˆQ%çÀS̪Q%¢è34ÈQ%Ý¥/ÓQ%�ôÛQ% let re = DFA::new(r"a|")?;ÁüþQ&%Ê›0©R%�ü±R#% let input = Input::new("abba");ÁüÙR&%×ÂS„S%�üŒS/%, let expected = Some(HalfMatch::must(0, 1));ÁüÀSL%ÍÃSô‘T%—‘3´T%�ü¼T/%, let expected = Some(HalfMatch::must(0, 2));ÁüðTL%ÍÃSôÁU%—‘3äU%�üìU/%÷¤4ü VL%ÍÃSôñV%—‘3”W%�ÄœW%æ¼1ü¹WL%ÍÃSôŠX%—‘3­X%�üµX.%Ǭ/<èX%ä¤/d‰Y%Á> Á>ÛçòèÖáBÿ²‚¸¸ ™Y%²¾�N –Y%¿>À>ˆ#òè ¿>Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²À>üÙY:%¿>À>�#òèËÍS‡áüîY%% ·¸òè$žY%åËõðÌÎü¥x…%ü©\E%B Return the next match for an infallible search if one exists, andÁüó\!%õ»S™]%�ü¡]C%@ The search is advanced even in the presence of empty matches byÁüé]C%@ forbidding empty matches from overlapping with any other match.Á±^%�ü¹^H%E This is like `try_advance`, except errors are converted into panics.Á†_%�dŽ_%úë0Ÿ_%�ü§_K%´½Sü÷_I%‰¾S¤Å`%Û¾SÞ`%�læ`%•£/ø`%�ü€aJ%ž¿SüÏa*%' when using a regex based on lazy DFAs:Áþa%�<†b%ä¤/Ì’b%ô¤/ì°b% hybrid::regex::Regex,ÁìÒb%çÀS¬ôb%źE4Žc%Ý¥/™c%�ü¡c8%5 let re = Regex::new(r"[0-9]{4}-[0-9]{2}-[0-9]{2}")?;ÁüÞc&%Ê›0‰d%�ü‘d?%ŽÂSüÕd&%×ÂS€e%�üˆe/%, let expected = Some(Match::must(0, 0..10));Áü¼eC%@ let got = it.advance(|input| re.try_search(&mut cache, input));Áô„f%—‘3§f%�ü¯f0%- let expected = Some(Match::must(0, 11..21));ÁüäfC%íÔSô¬g%—‘3Ïg%�ü×g0%- let expected = Some(Match::must(0, 22..32));ÁüŒhC%íÔSôÔh%—‘3÷h%�Äÿh%æ¼1üœiC%íÔSôäi%—‘3‡j%�ü�j.%Ǭ/<Âj%ä¤/Îj%�üÖjK%H This example shows the same as above, but with the PikeVM. This exampleÁü¦kF%C is useful because it shows how to use this API even when the regexÁüñk-%* engine doesn't directly return a `Match`.Á£l%�<«l%ä¤/Ì·l%ô¤/üÕl&%…‹Jì€m%çÀS¬¢m%źE4¼m%Ý¥/Çm%�üÏm9%6 let re = PikeVM::new(r"[0-9]{4}-[0-9]{2}-[0-9]{2}")?;Áü�nJ%œ§/Ün%�üän?%ŽÂSü¨o&%×ÂSÓo%�üÛo/%´ÔSü�p"% let got = it.advance(|input| {Áü¶p0%- re.search(&mut cache, input, &mut caps);Áäëp% Ok(caps.get_match())Á<Œq% });Áü˜qH%E // Note that if we wanted to extract capturing group spans, we couldÁüåq % // do that here with 'caps'.ÁôŠr%—‘3­r%�üµr0%ÓÕSüêr"%ÆÛSü‘s0%òÛSäÆs%«ÜS<çs%ÐÜSôós%—‘3–t%�üžt0%´ÖSüÓt"%ÆÛSüút0%òÛSä¯u%«ÜS<Ðu%ÐÜSôÜu%—‘3ÿu%�ćv%æ¼1ü¤v"%ÆÛSüËv0%òÛSä€w%«ÜS<¡w%ÐÜSô­w%—‘3Ðw%�üØw.%Ǭ/<‹x%ä¤/<¬x%Ä> Ä>Ûçòè³¶Bÿ²‚ºº ·x%²¾�N ´x%Â>Ã>ˆ#òè Â>Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Ã>üóx6%Â>Ã>�#òè’âS×… üˆy!% ¹¸òè$¼x%åËôÌÎü§}Å%üµ{G%D Return the next half match for a fallible search if one exists, andÁü�|!%õ»S§|%�ü¯|K%H This is like `advance_half`, except it permits callers to handle errorsÁ¬ÿ|% during iteration.Á„®}%Ç> Ç>Ûçòè‡áBÿ²‚¼¼ Ë}%²¾�N ¿}%Å>Æ>ˆ#òè Å>Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Æ>ü±~:%Å>Æ>�#òè«æS‡áüÆ~%% »¸òè$Ð}%åË4â}%ÌÎü±„¸%üÉ‚J%G Return the next match for a fallible search if one exists, and advanceÁ̘ƒ% to the next position.Á¶ƒ%�ü¾ƒF%C This is like `advance`, except it permits callers to handle errorsÁ¬‰„%¡äS\¸„%Ê> Ê>Ûçòè×… Bÿ²‚¾¾ Є%²¾�N Ä„%È>É>ˆ#òè È>Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²É>ü²…6%È>É>�#òèÎêS×… üÇ…!% ½¸òè$Õ„%åË4ç„%ÑÓüü”¶%üȉJ%G Given a closure that executes a single search, return an iterator overÁü—Š0%- all successive non-overlapping half matches.ÁÌŠ%�üÔŠG%D The iterator returned yields result values. If the underlying regexÁü ‹C%@ engine is configured to never return an error, consider callingÁüè‹E%B [`TryHalfMatchesIter::infallible`] to convert errors into panics.Á²Œ%�lºŒ%•£/ÌŒ%�üÔŒA%> This example shows how to use a `Searcher` to create a properÁüš�% iterator over half matches.Á¾�%�<Æ�%ä¤/ÌÒ�%ô¤/Ìð�%ûÊ3쎎%çÀS̰Ž%¢è34ÎŽ%Ý¥/ÙŽ%�üáŽ6%´ÁSüœ�&%Ê›0Ç�%�üÏ�?%ŽÂSü“�F%C let mut it = Searcher::new(input).into_half_matches_iter(|input| {ÁüÞ�,%) re.try_search_fwd(&mut cache, input)Á<�‘%ÐÜS›‘%�ü£‘4%1 let expected = Some(Ok(HalfMatch::must(0, 10)));ÁüÜ‘$%! assert_eq!(expected, it.next());Á…’%�ü�’4%1 let expected = Some(Ok(HalfMatch::must(0, 21)));ÁüÆ’$%ÙòSï’%�ü÷’4%1 let expected = Some(Ok(HalfMatch::must(0, 32)));Áü°“$%ÙòSÙ“%�Äá“%æ¼1üþ“$%ÙòS§”%�ü¯”.%Ǭ/<â”%ä¤/´ƒ•%Ûçòè¯èBÿ²‚ÀÀ²¾�N š•%Ë>Ì>ˆ#òè Ë>Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Ì>ü÷•:%Ë>Ì>�#òèëöS‡áüŒ–%% ¿¸òè[åËfÏÑü’¢’%üô–J%¤ëSü×+%( all successive non-overlapping matches.Áó—%�üû—G%ÁìSüǘC%“íSü�™A%> [`TryMatchesIter::infallible`] to convert errors into panics.ÁÕ™%�lÝ™%•£/ï™%�ü÷™A%ÙîSÔ½š% iterator over matches.ÁÜš%�<äš%ä¤/Ìðš%ô¤/쎛%ÖÒSì°›%çÀS¬Ò›%źE4ì›%Ý¥/÷›%�üÿ›8%°ÓSü¼œ&%Ê›0çœ%�üïœ?%ŽÂSü³�A%> let mut it = Searcher::new(input).into_matches_iter(|input| {Áüù�(%% re.try_search(&mut cache, input)Á<¦ž%ÐÜS²ž%�üºž3%0 let expected = Some(Ok(Match::must(0, 0..10)));Áüòž$%ÙòS›Ÿ%�ü£Ÿ4%1 let expected = Some(Ok(Match::must(0, 11..21)));ÁüÜŸ$%ÙòS… %�ü� 4%1 let expected = Some(Ok(Match::must(0, 22..32)));ÁüÆ $%ÙòSï %�Ä÷ %æ¼1ü”¡$%ÙòS½¡%�üÅ¡.%Ǭ/<ø¡%ä¤/Œ™¢%ÛçòèÙéBÿ²‚²¾�N «¢%Í>Î>ˆ#òè Í>Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Î>üí¢6%Í>Î>�#òèÈ€T×… ü‚£!% Á¸òè)åË4ÏÑü¥·Ç%üâ£J%¤ëSü±¤5%2 all successive non-overlapping `Captures` values.Áë¤%�üó¤G%ÁìSü¿¥C%“íSü‡¦B%? [`TryCapturesIter::infallible`] to convert errors into panics.ÁΦ%�üÖ¦C%@ Unlike the other iterator constructors, this accepts an initialÁüž§J%G `Captures` value. This `Captures` value is reused for each search, andÁüí§I%F the iterator implementation clones it before returning it. The callerÁü»¨F%C must provide this value because the iterator is purposely ignorantÁü†©F%C of the underlying regex engine and thus doesn't know how to createÁüÑ©F%C one itself. More to the point, a `Captures` value itself has a fewÁüœªE%B different constructors, which change which kind of information isÁüæª:%7 available to query in exchange for search performance.Á¥«%�l­«%•£/¿«%�üÇ«J%G This example shows how to use a `Searcher` to create a proper iteratorÁü–¬H%E over `Captures` values, which provides access to all capturing groupÁÌã¬% spans for each match.Á�­%�<‰­%ä¤/Ì•­%ô¤/ü³­&%…‹JìÞ­%çÀSt€®%™¿?4“®%Ý¥/ž®%�̦®%�ÅOüÄ®;%8 r"(?P[0-9]{4})-(?P[0-9]{2})-(?P[0-9]{2})",Á<„¯%Ä™1ü�¯F%C let (mut cache, caps) = (re.create_cache(), re.create_captures());ÁÛ¯%�üã¯6%3 let haystack = "2010-03-14 2016-10-08 2020-10-22";Áüž°%%ëú6üȰ%%" let mut it = Searcher::new(input)Áüò°1%. .into_captures_iter(caps, |input, caps| {Áü¨±/%, re.search(&mut cache, input, caps);Á”ܱ% Ok(())Á\ó±% });Áƒ²%�ü‹².%+ let got = it.next().expect("first date")?;Áü¾²?%< let year = got.get_group_by_name("y").expect("must match");Áü‚³(%% assert_eq!("2010", &haystack[year]);Á¯³%�ü·³/%, let got = it.next().expect("second date")?;Áüë³@%= let month = got.get_group_by_name("m").expect("must match");Áü°´'%$ assert_eq!("10", &haystack[month]);ÁÜ´%�üä´.%+ let got = it.next().expect("third date")?;Áü—µ>%; let day = got.get_group_by_name("d").expect("must match");ÁüÚµ%%" assert_eq!("22", &haystack[day]);Á„¶%�üŒ¶!% assert!(it.next().is_none());Á²¶%�üº¶.%Ǭ/<í¶%ä¤/Ó«Œÿ¶%Ìù¶%”¬·%Ûç˜Ûòè�ëBÿ²‚ÄIJ¾�N ¿·%Ï>Ð>Ñ>ˆ#òè Ï>Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Ð> Ñ>˜Ûü±¸:%Ï>Ð>Ñ>�#òèוT²×´Õ¸% øòè ɾ åË îðü™¼ê%üœ¼#%«Ô> Ô>Ûçö òè‡áBÿ²‚ÆÆ ̼%²¾�N À¼%Ò>Ó>ˆ#òè Ò>Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Ó>üȽ:%Ò>Ó>�#ò踘T‡áüݽ%% Ÿòè$Ѽ% åË4ù¼%ØÚü´ÍÙ%ô·Í%«×> ×>Ûç‹¢òè×… Bÿ²‚ÈÈ âÍ%²¾�N ÖÍ%Õ>Ö>ˆ#òè Õ>Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Ö>üÖÎ6%Õ>Ö>�#ò臛T×… üëÎ!% Ǹòè$çÍ%£åË4‹Î%ÙÛüÈÕ$%ü¢ÐL%I An iterator over all non-overlapping half matches for a fallible search.ÁïÐ%�üóÐM%J The iterator yields a `Result` value until no moreÁÜÁÑ% matches could be found.ÁÝÑ%�üáÑ'%$ The type parameters are as follows:Á‰Ò%�ü�ÒD%A * `F` represents the type of a closure that executes the search.ÁÒÒ%�üÖÒ9%6 The lifetime parameters come from the [`Input`] type:Á�Ó%�ü”Ó6%3 * `'h` is the lifetime of the underlying haystack.ÁËÓ%�üÏÓJ%G When possible, prefer the iterators defined on the regex engine you'reÁüšÔN%K using. This tries to abstract over the regex engine and is thus a bit moreÁ¤éÔ% unwieldy to use.ÁþÔ%�ü‚ÕE%B This iterator is created by [`Searcher::into_half_matches_iter`].Á”ÓÕ%¸Ê‚ËËʾ�N êÕ%¯èÝzU¹¾ÿÌÍæÕ%(*„óÕ%óÕ%«ÉÉÛçL‰Ö%4‰Ö%«ÉÉòèü—Ö%%¸Ï‚ÐÐϾ�N  Ö%¯èÑÒœÖ%üÒØ1%üÃÖ2%/ Return an infallible version of this iterator.ÁúÖ%�ü‚×J%G Any item yielded that corresponds to an error results in a panic. ThisÁüÑ×I%F is useful if your underlying regex engine is configured in a way thatÁüŸØ.%+ it is guaranteed to never return an error.ÁTÙØ%¯èŠéBÿÎΠѸòèqüÃÛ+%ü¯Ù6%3 Returns the current `Input` used by this iterator.ÁêÙ%�üòÙC%@ The `Input` returned is generally equivalent to the one used toÁüºÚG%D construct this iterator, but its start position may be different toÁü†Û8%5 reflect the start of the next search to be executed.Á,ÊÛ%Ó Ó¯è Ó¿�BÿÎÐÛ%Î Ò¸òè$ØÛ%!#ü’Ü{%¸Õ‚ÖÕÖØ>Ù>�#òè Ø>Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²Ù>‡áüçÜ%%Ø>Ù>ˆ#ò肬TüÒÜ:%¾�N ›Ü%¯èרÅQÆQØ—Ü%"$L”Ý%$™Ý%ÔÔ·£ üÒÝ;%$ÕÝ%Ú> Ú>¯èò¢ BÿÔ ÚÝ%Ô Ø¸òè$ßÝ%üØÞ:%¸Ú‚ÛÛÚ¾�N áÞ%¯èÜ gÜÝÞ%ü™ßD%œß%Û>Ü>Ý> Û>¯è Ü>€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ý>­àBÿÙ  ß%٠ܸòè$¡ß%œ¦ü™ç"%¸Þ‚ßÞß¾�N ¢ç%Šéàžç%üÖé+%üÂç6%­§Týç%�ü…èC%û§TüÍèG%ɨTü™é8%›©T,Ýé%á áŠé á¿�BÿÝãé%Ý à¸òè$ëé%!#ü§êx%¸ã‚äãäá>â>�#òè á>Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²â>‡áüùê%%á>â>ˆ#òèµ³Tüäê:%¾�N °ê%ŠéåæÅQÆQæ¬ê%"$L¦ë%$«ë%ââö üÐë'%$Óë%ã> ã>ŠéÖáBÿâ Øë%â æ¸òè$Ýë%ü•ó %üýíG%D An iterator over all non-overlapping matches for a fallible search.ÁÅî%�üÉîI%F The iterator yields a `Result` value until no moreÁÜ“ï%Ÿ�T¯ï%�ü³ï'%Ò�TÛï%�üßïD%‘žT¤ð%�ü¨ð9%ížTâð%�üæð6%¾ŸT�ñ%�ü¡ñJ%Œ TüìñN%á T¤»ò%¹¡TÐò%�üÔò@%= This iterator is created by [`Searcher::into_matches_iter`].Át ó%¸è‚ééè¾�N ³ó%ÙéVS§�´�êë¯ó%(*„¼ó%¼ó%«ççÛçLÒó%4Òó%«ççòèüàó!%¸í‚îíî¾�N éó%Ùéïðåó%ü—ö-%üˆô2%±¤T¿ô%�üÇôJ%û¤Tü–õI%Ð¥Tüäõ.%¤¦TTžö%Ùé²êBÿìì ï¸òèÊü€ù+%üìö6%­§T§÷%�ü¯÷C%û§Tü÷÷G%ɨTüÃø8%›©T,‡ù%ñ ñÙé ñ¿�Bÿì�ù%ì ð¸òè$•ù%!#üÏùs%¸ó‚ôôóä>å>�#òè ä>Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²å>×… ü ú!%ä>å>ˆ#òèÓ¾Tü‹ú6%¾�N Øù%ÙéõöÅQÆQöÔù%"$LÉú%$Îú%òò¼¨üƒû7%$†û%æ> æ>Ùé÷§Bÿò ‹û%ò ö¸òè$�û%ü€ü6%¸ø‚ùøù¾�N ‰ü%Ùéú gú…ü%ü½üD%Àü%ç>è>é> ç>Ùé è>€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡é>­àBÿ÷ Äü%÷ ú¸òè$Åü%œEô›„%¸ü‚ýüý¾�N ¤„%²êþ „%üÔ†+%üÀ„6%­§Tû„%�üƒ…C%û§TüË…G%ɨTü—†8%›©T,Û†%ÿ ÿ²ê ÿ¿�Bÿûá†%û þ¸òè$é†%!#ü¥‡p%¸�‚‚�‚í>î>�#òè í>Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²î>×… üó‡!%í>î>ˆ#òè…ÆTüÞ‡6%¾�N ®‡%²êƒ„ÅQÆQ„ª‡%"$Lœˆ%$¡ˆ%€€‹¢üˆ#%$ň%ï> ï>²ê³¶Bÿ€ ʈ%€ „¸òè$ψ%ü��!%üæŠH%E An iterator over all non-overlapping captures for a fallible search.Á¯‹%�ü³‹L%I The iterator yields a `Result` value until no moreÁÜ€Œ%Ÿ�TœŒ%�ü Œ'%Ò�TÈŒ%�üÌŒD%‘žT‘�%�ü•�9%ížTÏ�%�üÓ�6%¾ŸTŠŽ%�üŽŽJ%Œ TüÙŽN%á T¤¨�%¹¡T½�%�üÁ�A%> This iterator is created by [`Searcher::into_captures_iter`].ÁÓ«Œ‰�%̃�%|¨�%¸†‚‡†‡¾�N ¼�%�ëåÂJÀa똈‰Š¸�%*,„Å�%Å�%«……ÛçtÛ�%$Û�%«……˜ÛLï�%4ï�%«……òèü—‘"%Ó«Œƒ‘%Ìý�%¸Œ‚�Œ�¾�N  ‘%�뎜‘%üÏ“.%üÀ‘2%±¤T÷‘%�üÿ‘J%û¤TüÎ’I%Ð¥Tüœ“.%¤¦TTÖ“%�ëçëBÿ‹‹ ޏòè§&ü¾”x%Ó«Œª”%̤”%¸�‚‘�‘ð>ñ>ò>�#òè ð>Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²ñ> ò>˜Û²×´Ÿ•%ð>ñ>ò>ˆ#òèÍÐTüû”:%¾�N Ç”%�ë’“ÅQÆQ“Ô%"$L½•%$•%��޹üú•:%$ý•%ó> ó>�ëɸBÿ� ‚–%� “¸òè$‡–%<Æ—%“�”�”�””“îÏ üà™7%Ó«ŒÌ™%ÌÆ™%¸–‚——–¾�N é™%�똠g˜å™%üžšD%¡š%ô>õ>ö> ô>�ë õ>€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ö>­àBÿ• ¥š%• ˜¸òè$¦š%œÈ0üä¢u%Ó«ŒÐ¢%ÌÊ¢%¸š‚››šú>û>ü>�#òè ú>Ñ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²û> ü>˜Û²×´Â£%ú>û>ü>ˆ#òèƒ×Tüž£:%¾�N í¢%çëœ�ÅQÆQ�é¢%"$Là£%$å£%™™˜Ûü‰¤&%$Œ¤%ý> ý>ç뙩Bÿ™ ‘¤%™ �¸òè$–¤%då ;üØÓ A lazily initialized value for safe sharing between threads. The principal type in this module is `Lazy`, which makes it easy to construct values that are shared safely across multiple threads simultaneously. Á$í ; ¡¶ñäûcžŸLÞ½ üê?< A lazily initialized value that implements `Deref` for `T`.Áª�ü®JG A `Lazy` takes an initialization function and permits callers from anyÁüùIF thread to access the result of that initialization function in a safeÁüÃOL manner. In effect, this permits one-time initialization of global resourcesÁü“+( in a (possibly) multi-threaded program.Á¿�üÃOL This type and its functionality are available even when neither the `alloc`Áü“JG nor the `std` features are enabled. In exchange, a `Lazy` does **not**ÁüÞIF guarantee that the given `create` function is called at most once. ItÁü¨KH might be called multiple times. Moreover, a call to `Lazy::get` (eitherÁüôMJ explicitly or implicitly via `Lazy`'s `Deref` impl) may block until a `T`ÁŒÂ is available.ÁÔ�üØKH This is very similar to `lazy_static` or `once_cell`, except it doesn'tÁü¤LI guarantee that the initialization function will be run once and it worksÁüñIF in no-alloc no-std environments. With that said, if you need strongerÁü» KH guarantees or a more flexible API, then it is recommended to use eitherÁü‡ ! `lazy_static` or `once_cell`.Á© �ü­ " # Warning: may use a spin lockÁÐ �üÔ MJ When this crate is compiled _without_ the `alloc` feature, then this typeÁü¢ JG may used a spin lock internally. This can have subtle effects that mayÁüí KH be undesirable. See [Spinlocks Considered Harmful][spinharm] for a moreÁü¹ %" thorough treatment of this topic.Áß �üã VS [spinharm]: https://matklad.github.io/2020/01/02/spinlocks-considered-harmful.htmlÁº �l¾ •£/Ì �üÐ KH This type is useful for creating regexes once, and then using them fromÁüœKH multiple threads simultaneously without worrying about synchronization.Áè�<ìä¤/üôEB use regex_automata::{dfa::regex::Regex, util::lazy::Lazy, Match};Áº�ü¾OL static RE: Lazy = Lazy::new(|| Regex::new("foo[0-9]+bar").unwrap());ÁŽ�ü’/, let expected = Some(Match::must(0, 3..14));ÁüÂ85 assert_eq!(expected, RE.find(b"zzzfoo12345barzzz"));Á<ûä¤/$Ž�¢‚££¢çŒN “¾�Nl–¶ìø¥c õ8Tz¡¤…í¶ìBÿ' hž…í¶ìBÿ   ¡éìòèy{~ –éìBÿ„¥ž  …í¬¹�¦‚§¦§çŒN ¾¾�N Á¶ì¨ü—)üÕIF Create a new `Lazy` value that is initialized via the given function.Á£�ü«FC The `T` type is automatically inferred from the return type of theÁäö `create` function given.Á¤òè¶ìBÿ¥¥ ¨éìòèöÒI8üò �ª‚«ª«�#òèéì …¾�N ú…#òèLýçŒN ÷¶ì¬  35üë#ü™74 Return a reference to the lazily initialized value.ÁÕ�üÝC@ This routine may block if another thread is initializing a `T`.Á¥�ü­HE Note that given a `x` which has type `Lazy`, this must be called viaÁüúFC `Lazy::get(x)` and not `x.get()`. This routine is defined this wayÁüÅ63 because `Lazy` impls `Deref` with a target of `T`.Á€�dˆúë0™�ü¡GD This panics if the `create` function inside this lazy value panics.ÁüíIF If the panic occurred in another thread, then this routine _may_ alsoÁü»+( panic (but is not guaranteed to do so).Áòþ> þ>¶ì þ>éìBÿ© ü©‹õ Õó À9ü¯5�®‚¯¯®ûòT ¾�N ·šóTLºçŒN ´¶ì°±Ý"Þ"±79\ë4ð­­éì¬�,„ÿ> ÿ>¶ì ÿ>éìBÿ­ Š­ ±éìòè$‹üº;�³‚´³´ûòT Ù¾�N ΟgéìTšóTLÑçŒN ¿¶ìµ gµ@Büü4ÿ€?�?‚? €?¶ì �?€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡‚?­àBÿ² ƒ² µéìòè$„œþ:DìÓ«ŒØÌÒ$ðž¾ñ�ûc¶¸È„\¤„!¶¹È„…!¶¹ AtomicPtrÁLÈŠa¶»²DÓ“�¶¼Àì üŸ¶½$ÿŒŽœœ~üÿFQS@BŒî1äŠ"$œ"ž�¿‚À¿ÀçŒN ¡"¾�N ¤"…íÖ!Ô§I|neÁÂÃ×-/24”±"$±"¶¾¾„ú LÍ"4Í"¶¾¾òèÔˆ&,ˆ&¶¾¾Èø ü–+?�Å‚ÆÆÅçŒN ¢+¾�N ²+ýÆéì$¥+ÿ éì$¬+ýÆòè$µ+ÿ òè$¼+…íRTWY¬Þ+�È‚ÉÉÈçŒN ã+¾�N æ+…íÊü¥-0¹-žòè…íBÿÇÇßð öÒ~<ü‡/ �Ì‚ÍÌÍûòT š/¾�N �/šóTL’/çŒN Œ/…íÎÏ+-ô¹1Ç1žƒ? ƒ?…í ƒ?éìBÿË Ë1Ëîó $Ì1ä²<$µ<¶„? „?…ířǙș­É™Ê™àË™óG*¤�R{9  „?éìBÿË º<Ëëý $»<üÀ?;�Ñ‚ÒÒÑûòT ß?¾�N Ô?ùûTTÈ?šóTL×?çŒN Å?…íÓ gÓ8:ü†@4‰@…?†?‡? …?…í †?€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡‡?­àBÿÐ �@Ð Óéìòè$Ž@œCIôšA�Õ‚ÖÕÖçŒN ŸA¾�N ¢A…í×�#× "”ÃA$ÆAˆ? ˆ?…íBÿÔ ËAÔ ×éìòè$ÐAdó ;ü�ü Types and routines for working with look-around assertions. This module principally defines two types: * [`Look`] enumerates all of the assertions supported by this crate. * [`LookSet`] provides a way to efficiently store a set of [`Look`] values. * [`LookMatcher`] provides routines for checking whether a `Look` or a `LookSet` matches at a particular position in a haystack. Á$û ;¦Ø'š(§(­(³(´(®ŠL¹ü&ØÚ®Šý&ØÚ‚�$ÄæØÛ\£Œ±FL‘6ôíÝÞßàüØ8#ü¡6JG Flip the look-around assertion to its equivalent for reverse searches.Áüð663 For example, `StartLF` gets translated to `EndLF`.Á«7�ü³7FC Some assertions, such as `WordUnicode`, remain the same since theyÁüþ7GD match the same positions regardless of the direction of the search.ÁDå8ôíôíBÿÜÜ Ý#bü²C!üô@HE Return the underlying representation of this look-around enumerationÁüÁAEB as an integer. Giving the return value to the [`Look::from_repr`]Áü‹BIF constructor is guaranteed to return the same look-around variant thatÁüÙBFC one started with within a semver compatible release of this crate.Á<¿CôíBÿÜܲû!Jeü›F1üÚDEB Given the underlying representation of a `Look` value, return theÁü¤EHE corresponding `Look` value if the representation is valid. OtherwiseÁ¼ñE�ª4L¨F•Ö!BÿÜÜüÀ"½ çjüµS"ü´P@= Returns a convenient single codepoint representation of thisÁüùPIF look-around assertion. Each assertion is guaranteed to be representedÁäÇQ by a distinct character.ÁèQ�üðQIF This is useful for succinctly representing a look-around assertion inÁü¾RKH human friendly but succinct output intended for a programmer working onÁ¤ŽS regex internals.Á<ÂSôíBÿÜÜ àÀtdÌ`¯ñâãäåæçèéêëìíîïðñòóôõö÷øùúûüý̤aüß`2/ Create an empty set of look-around assertions.Á,«a¯ñBÿááÃö!Äñbüça0- Create a full set of look-around assertions.Áœb�ü¤b:7 This set contains all possible look-around assertions.Á$øb¯ñBÿáá ãü‰e'ü´cHE Create a look-around set containing the look-around assertion given.Á�d�ü‰dIF This is a convenience routine for creating an empty set and insertingÁü×d one look-around assertions.ÁL�eôí¯ñBÿáá ä¢Ô/{̺füäeC@ Returns the total number of look-around assertions in this set.ÁÁf¯ñBÿááùù!|ìÛhü–h2/ Returns true if and only if this set is empty.ÁDâh¯ñBÿáᙾ"ß|üˆj)üžiJG Returns true if and only if the given look-around assertion is in thisÁDíi set.ÁD�j¯ñôíBÿáá•ÿ!¦}¢Ô°}üŽl%üçjHE Returns true if and only if this set contains any anchor assertions.Áü´kGD This includes both "start/end of haystack" and "start/end of line."Á|•l”? ”?¯ñBÿá ¥lá è$¦lü«n.üˆmC@ Returns true if and only if this set contains any "start/end ofÁüÐmHE haystack" anchors. This doesn't include "start/end of line" anchors.ÁIJn•? •?¯ñBÿá ËnáŽý!$Ìnüœq*ü¦oIF Returns true if and only if this set contains any "start/end of line"ÁüôoGD anchors. This doesn't include "start/end of haystack" anchors. ThisÁüÀpIF includes both `\n` line anchors and CRLF (`\r\n`) aware line anchors.Á¤£q–? –?¯ñBÿá ¸qáéý!$¹qüÞt(üýrI–¦UüËsKH anchors that only treat `\n` as line terminators. This does not includeÁü›t0- haystack anchors or CRLF aware line anchors.Á”åt—? —?¯ñBÿá øtá ë$ùtü²w*ü×uI–¦Uü¥vC@ anchors that are CRLF-aware. This doesn't include "start/end ofÁüív2/ haystack" or "start/end of line-feed" anchors.Á¤¹w˜? ˜?¯ñBÿá Îwá ì$Ïwüñy"ü±xFC Returns true if and only if this set contains any word boundary orÁüüxIF negated word boundary assertions. This include both Unicode and ASCIIÁ¤Êy word boundaries.Áløy¯ñBÿáá íÉ…ü÷{*üäzKH Returns true if and only if this set contains any Unicode word boundaryÁü´{0- or negated Unicode word boundary assertions.Á¬þ{¯ñBÿá᪋"*ˆüõ(üæ~IF Returns true if and only if this set contains any ASCII word boundaryÁü´.+ or negated ASCII word boundary assertions.Áœü¯ñBÿáá…Œ"‹ü´ƒ üÖ‚KH Returns an iterator over all of the look-around assertions in this set.Á$»ƒ¯ñµòBÿáá ðŒüæ…*ü„„KH Return a new set that is equivalent to the original, but with the givenÁüÔ„KH assertion added to it. If the assertion is already in the set, then theÁü¤…/, returned set is equivalent to the original.Á4í…¯ñôí¯ñBÿááäö!ÂŒ¢ÔÍŒüˇ(üÓ†DA Updates this set in place with the result of inserting the givenÁ䜇 assertion into this set.ÁTÒ‡™? ™?¯ñôíBÿá ݇á ò$⇢Ԩ�ü†Š*ü¤ˆKê²UüôˆKH assertion removed from it. If the assertion is not in the set, then theÁüĉ/–´U4�Нñôí¯ñBÿá᚟"˜Ž¢Ô£Žüë‹(üôŠC@ Updates this set in place with the result of removing the givenÁ伋 assertion from this set.ÁTò‹š? š?¯ñôíBÿá ý‹á ô$‚Œ¢Ô„�ü³�0üÄŒJG Returns a new set that is the result of subtracting the given set fromÁl“� this set.ÁDº�¯ñ¯ñ¯ñBÿááÖ¢"[�î f�ü—�.ü£ŽJG Updates this set in place with the result of subtracting the given setÁ”òŽ from this set.Ádž�›? ›?¯ñ¯ñBÿá «�á ö$°�î @‘üÎ�-üù�B? Returns a new set that is the union of this and the one given.Á,Õ�¯ñ¯ñ¯ñBÿááû¥"’î ’ü¥’+üº‘IF Updates this set in place with the result of unioning it with the oneÁTˆ’ given.ÁL¬’œ? œ?¯ñ¯ñBÿá ¶’á ø$»’î å’üÝ“1ü�“IF Returns a new set that is the intersection of this and the one given.ÁL䓯ñ¯ñ¯ñBÿáá ©"¬“î ·“ü¼•/üÍ”IF Updates this set in place with the result of intersecting it with theÁt›• one given.ÁlÕ�? �?¯ñ¯ñBÿá Ñ•á ú$Ö•î Š”üÔ—)ü –EB Return a `LookSet` from the slice given as a native endian 32-bitÁdê– integer.Áû–�dƒ—úë0”—�üœ—%" This panics if `slice.len() < 4`.ÁLÛ—ž? ž?Èš¯ñBÿá ì—á ûå`–ü­š)üë˜HE Write a `LookSet` as a native endian 32-bit integer to the beginningÁ¼¸™ of the slice given.ÁÔ™�dÜ™úë0í™�üõ™%�ÄUT´šŸ?¯ñ Ÿ?ÈšBÿá Ìšá ü?›åM›üŽ¢>üû›:7 Checks that all assertions in this set can be matched.Áºœ�üœKH Some assertions, such as Unicode word boundaries, require optional (butÁü’�FC enabled by default) tables that may not be available. If there areÁüÝ�KH assertions in this set that require tables that are not available, thenÁô­ž this will return an error.ÁО�üØž0- Specifically, this returns an error when theÁü�ŸC@ `unicode-word-boundary` feature is _not_ enabled _and_ this setÁüÕŸ/, contains a Unicode word boundary assertion.Á‰ �ü‘ 1. It can be useful to use this on the result ofÁüÇ B? [`NFA::look_set_any`](crate::nfa::thompson::NFA::look_set_any)ÁüŽ¡96 when building a matcher engine to ensure methods likeÁüÌ¡=: [`LookMatcher::matches_set`] do not panic at search time.ÁL•¢¯ñÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÏóBÿáá ý$Ÿ¢üË£!¯ñÿ gÿüó£@ö£ ?¡?¢?  ?¯ñ ¡?€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡¢?­àBÿþ ú£þ ÿ$û£œ �¤ì³§µò�‚ÅQÆQ‚L×§$ܧ€€ôíüü§"$ÿ§§? §?µò•Ö!Bÿ€ „¨€ ‚$‰¨„‡´‚ó„…†‡ˆ‰Š‹�Ž��‘’“”•–—˜™š›œ�žÜà´üž´=: Creates a new default matcher for look-around assertions.Áç´‚óBÿƒƒ „üû¹Cü¼µ@= Sets the line terminator for use with `(?m:^)` and `(?m:$)`.Á�¶�ü‰¶KH Namely, instead of `^` matching after `\n` and `$` matching immediatelyÁüÙ¶HE before a `\n`, this will cause it to match after and before the byteÁT¦·‹¿Uµ·�ü½·C@ It can occasionally be useful to use this to configure the lineÁü…¸:7 terminator to the NUL byte when searching binary data.Áĸ�ü̸DA Note that this does not apply to CRLF-aware line anchors such asÁü•¹FC `(?Rm:^)` and `(?Rm:$)`. CRLF-aware line anchors are hard-coded toÁ´à¹ use `\r` and `\n`.Áœ‚º¬? ¬?‚óüÙUBÿƒ –ºƒ …$›º—»$¡ºü÷½'üùºEB Returns the line terminator that was configured for this matcher.Áû�üË»A> If no line terminator was configured, then this returns `\n`.Á‘¼�ü™¼KH Note that the line terminator should only be used for matching `(?m:^)`Áüé¼EB and `(?m:$)` assertions. It specifically should _not_ be used forÁü³½?< matching the CRLF aware assertions `(?Rm:^)` and `(?Rm:$)`.Áœþ½­? ­?‚óBÿƒ ’¾ƒ †$“¾ü÷ÅEüľIF Returns true when the position `at` in `haystack` satisfies the givenÁÔ’¿ look-around assertion.Á±¿�d¹¿úë0Ê¿�üÒ¿HE This panics when testing any Unicode word boundary assertion in thisÁüŸÀKH set and when the Unicode word data is not available. Specifically, thisÁüïÀHE only occurs when the `unicode-word-boundary` feature is not enabled.Á¼Á�üÄÁGD Since it's generally expected that this routine is called inside ofÁü�ÂDA a matching engine, callers should check the error condition whenÁüÙÂEB building the matching engine. If there is a Unicode word boundaryÁü£ÃHE in the matcher and the data isn't available, then the matcher shouldÁ”ðà fail to build.Á‡Ä�ü�ÄFC Callers can check the error condition with [`LookSet::available`].ÁÚÄ�üâÄDA This also may panic when `at > haystack.len()`. Note that `at ==Áü«Å96 haystack.len()` is legal and guaranteed not to panic.Á<þÅ®?¯? ®?‚óôí ¯?ÈšBÿƒ †Æƒ ‡$‡Æ¢Ô·¥ý�Â¥™´Ì¥ü›Îzt©Î°?±? °?‚óôí ±?ÈšBÿƒ Á΃ÊË"$Â΢Ô2¬ý�=¬™´G¬ü™ãrüÛÛKH Returns true when _all_ of the assertions in the given set match at theÁü«Ü# given position in the haystack.ÁÓÜ�dÛÜúë0ìÜ�üôÜHêÞUüÁÝK½ßUü‘ÞH“àUÞÞ�üæÞGóàUü²ßDÅáUüûßE”âUüÅàHäâU”’á¶ãU©á�ü±áFàãUüá�ü„âD¾äUüÍâ9�åU\ ã²?³? ²?‚ó¯ñ ³?ÈšBÿƒ µãƒ ‰$¶ãã�Q®ý�\®™´f®üÇ倔Õå´?µ? ´?‚ó¯ñ µ?ÈšBÿƒ ñåƒãÜ"$òåã�¾ý�¾™´(¾ü•€}Ó«ŒýÿÌ÷ÿt£€¶?·? ¶?‚óôí ·?Š×Bÿƒ »€ƒ ‹$¼€¢Ô$Ê€ã�Þ€DÕŽ‹�Œ�Œ�ŒŒ‹ŒUÿü­—;ü–•JG Returns true when [`Look::Start`] is satisfied `at` the given positionÁ”å• in `haystack`.Áü•�d„–úë0•–�ü�–?< This may panic when `at > haystack.len()`. Note that `at ==Áüá–9�åUD´—¸?¹? ¸?‚ó ¹?ÈšBÿƒ ½—ƒÃÖ"$¾—óƒ#ÒÁ™´ÜÁü›š8ü†˜KH Returns true when [`Look::End`] is satisfied `at` the given position inÁ|Ö˜‰‚Lê˜�dò˜úë0ƒ™�ü‹™?‚ðUüÏ™9�åU4¢šº?»? º?‚ó »?ÈšBÿƒ ©šƒ…Ö"$ªšý�~™´ˆÂü—�=üþšC@ Returns true when [`Look::StartLF`] is satisfied `at` the givenÁÜÆ›ü‰Læ›�dî›úë0ÿ›�ü‡œ?‚ðUüËœ9�åU\ž�¼?½? ¼?‚ó ½?ÈšBÿƒ ª�ƒÇÕ"$«�ý�SÄ™´]ÄüÄ ;ü­žJG Returns true when [`Look::EndLF`] is satisfied `at` the given positionÁ”üž½ïU“Ÿ�d›Ÿúë0¬Ÿ�ü´Ÿ?‚ðUüøŸ9�åULË ¾?¿? ¾?‚ó ¿?ÈšBÿƒ Õ ƒ‰Õ"$Ö ý�øÅ™´Æüí£?üÒ¡EB Returns true when [`Look::StartCRLF`] is satisfied `at` the givenÁÜœ¢ü‰L¼¢�dÄ¢úë0Õ¢�üÝ¢?‚ðUü¡£9�åUlô£À?Á? À?‚ó Á?ÈšBÿƒ ‚¤ƒËÔ"$ƒ¤ý�ŽÉ™´˜Éüލ=üõ¥C@ Returns true when [`Look::EndCRLF`] is satisfied `at` the givenÁܽ¦ü‰Lݦ�då¦úë0ö¦�üþ¦?‚ðUü§9�åU\•¨Â?Ã? Â?‚ó Ã?ÈšBÿƒ ¡¨ƒŒÔ"$¢¨ý�:Í™´DÍüœ¬?ü�ªEB Returns true when [`Look::WordAscii`] is satisfied `at` the givenÁÜ˪ü‰Lëª�dóªúë0„«�üŒ«?‚ðUüЫ9�åUl£¬Ä?Å? Ä?‚ó Å?ÈšBÿƒ ±¬ƒÎÓ"$²¬ý�XЙ´bÐüÔ°Fü³®KH Returns true when [`Look::WordAsciiNegate`] is satisfied `at` the givenÁ܃¯ü‰L£¯�d«¯úë0¼¯�üį?‚ðUüˆ°9�åU¤Û°Æ?Ç? Æ?‚ó Ç?ÈšBÿƒ 𰃎Ó"$ñ°ý�ÜÑ™´æÑü˵‚üÒ±GD Returns true when [`Look::WordUnicode`] is satisfied `at` the givenÁÜž²ü‰L¾²�dƲúë0ײ�üß²?‚ðUü£³9�åUá³�d鳕£1ú³�ü‚´;8 This returns an error when Unicode word boundary tablesÁü´>; are not available. Specifically, this only occurs when theÁü…µ30 `unicode-word-boundary` feature is not enabled.Á|ÒµÈ?É? È?‚ó É?ÈšØÙ"Bÿƒ 뵃ÏÒ"$ìµý�ÙÔ™´ãÔü÷»‰üø·GD Returns true when [`Look::WordUnicodeNegate`] is satisfied `at` theÁüĸ! given position in `haystack`.Áê¸�dò¸úë0ƒ¹�ü‹¹?‚ðUüϹ9�åU�º�d•º•£1¦º�ü®º;‹ƒVüîº>уVü±»3š„V´þ»Ê?Ë? Ê?‚ó Ë?ÈšØÙ"Bÿƒ ž¼ƒ�Ò"$Ÿ¼ý�¯Û™´¹ÛüùÓEüÙÑJG Returns true when [`Look::WordStartAscii`] is satisfied `at` the givenÁܨÒü‰LÈÒ�dÐÒúë0áÒ�üéÒ?‚ðUü­Ó9�åUœ€ÔÌ?Í? Ì?‚ó Í?ÈšBÿƒ ”ÔƒÏÑ"$•Ôý�Gà™´QàüµØCü—ÖHE Returns true when [`Look::WordEndAscii`] is satisfied `at` the givenÁÜäÖü‰L„×�dŒ×úë0�×�ü¥×?‚ðUüé×9�åUŒ¼ØÎ?Ï? Î?‚ó Ï?ÈšBÿƒ ÎØƒ�Ñ"$ÏØý�½ã™´ÇãüÏÞˆüÑÚFC Returns true when [`Look::WordStartUnicode`] is satisfied `at` theÁüœÛ!¨†VÂÛ�dÊÛúë0ÛÛ�üãÛ?‚ðUü§Ü9�åUåÜ�díÜ•£1þÜ�ü†Ý;‹ƒVüÆÝ>уVü‰Þ3š„V¬ÖÞÐ?Ñ? Ð?‚ó Ñ?ÈšØÙ"Bÿƒ õÞƒÏÐ"$öÞý�%ç™´/çüÿä†üƒáDA Returns true when [`Look::WordEndUnicode`] is satisfied `at` theÁüÌá!¨†Vòá�dúáúë0‹â�ü“â?‚ðUü×â9�åU•ã�d�ã•£1®ã�ü¶ã;‹ƒVüöã>уVü¹ä3š„Vœ†åÒ?Ó? Ò?‚ó Ó?ÈšØÙ"Bÿƒ £åƒ�Ð"$¤åý�¼ê™´ÆêüÕéiü±çHE Returns true when [`Look::WordStartHalfAscii`] is satisfied `at` theÁüþç!¨†V¤è�d¬èúë0½è�üÅè?‚ðUü‰é9�åUÄÜéÔ?Õ? Ô?‚ó Õ?ÈšBÿƒ þéƒÏÏ"$ÿéý�Wí™´aíüÍíHü«ëFC Returns true when [`Look::WordEndHalfAscii`] is satisfied `at` theÁüöë!¨†Vœì�d¤ìúë0µì�ü½ì?‚ðUü�í9�åU´ÔíÖ?×? Ö?‚ó ×?ÈšBÿƒ ëíƒ�Ï"$ìíý�ï™´ïü—ó�ü•ïJG Returns true when [`Look::WordStartHalfUnicode`] is satisfied `at` theÁüäï!¨†VŠð�d’ðúë0£ð�ü«ð?‚ðUüïð9�åU­ñ�dµñ•£1Æñ�üÎñ;‹ƒVüŽò>уVüÑò3š„VÔžóØ?Ù? Ø?‚ó Ù?ÈšØÙ"Bÿƒ ÂóƒÏÎ"$Ãóý�rò™´|òüÂü‹üÂøHE Returns true when [`Look::WordEndHalfUnicode`] is satisfied `at` theÁü�ù!¨†Vµù�d½ùúë0Îù�üÖù?‚ðUüšú9�åUØú�dàú•£1ñú�üùú;‹ƒVü¹û>уVüüû3š„VÄÉüÚ?Û? Ú?‚ó Û?ÈšØÙ"Bÿƒ ëüƒ�Î"$ìüý�?ö™´Iöäì�‚ó ÷ Ü�‚<’‚‚óBÿŸŸ  ìÿ†Ïó¢ü“‰6ü¸ˆA> Returns an error if and only if Unicode word boundary data isÁ„þˆ unavailable.Á,š‰“ÏUBÿ¡¡ ¢ü‹Š3Ó‰|ù‰¼ó‰ÏóüÊ4Ïó¥¥g¥üþŠD�‹à?á?â? à?Ïó á?€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡â?­àBÿ¤ …‹¤ ¥$†‹œ Œ‹„ ÜÓ²üÃÛ!Óí”êÛӀĂÜü½Û`ü´Ûkd¤Üب©ª«‚�$ÈÜæ¦§Œ»ÜüÓÜD,áÜØ“ÏUBÿ ¨üíÝuûÝØã? ã?ÈšØÙ"Bÿ ’Þæ¦#ý�Gú™´QúüÂàuÐàØä? ä?ÈšØÙ"Bÿ çàÆ¥#ý�uü™´üüœã&ŒŸã¦Bÿ³ô#¹õ#þd› ;üê#„ÿ A thread safe memory pool. The principal type in this module is a [`Pool`]. It main use case is for holding a thread safe collection of mutable scratch spaces (usually called `Cache` in this crate) that regex engines need to execute a search. This then permits sharing the same read-only regex object across multiple threads while having a quick way of reusing scratch space in a thread safe way. This avoids needing to re-create the scratch space for every search, which could wind up being quite expensive. ÁÓ«Œ‡ ;Ì� ;$£ ;­®ÄÅß^„ üð'=: A thread safe pool that works in an `alloc`-only context.Á®(�ü²(KH Getting a value out comes with a guard. When that guard is dropped, theÁüþ(JG value is automatically put back in the pool. The guard provides both aÁüÉ)LI `Deref` and a `DerefMut` implementation for easy access to an underlyingÁD–* `T`.ÁŸ*�ü£*NK A `Pool` impls `Sync` when `T` is `Send` (even if `T` is not `Sync`). ThisÁüò*NK is possible because a pool is guaranteed to provide a value to exactly oneÁ¼Á+ thread at any time.ÁÙ+�üÝ+NK Currently, a pool never contracts in size. Its size is proportional to theÁü¬,GD maximum number of simultaneous uses. This may change in the future.Áô,�üø,KH A `Pool` is a particularly useful data structure for this crate becauseÁüÄ-KH many of the regex engines require a mutable "cache" in order to executeÁü�.NK a search. Since regexes themselves tend to be global, the problem is then:Áüß.B? how do you get a mutable cache to execute a search? You could:Á¢/�ü¦/NK 1. Use a `thread_local!`, which requires the standard library and requiresÁüõ//, that the regex pattern be statically known.Á¤¥0 2. Use a `Pool`.Áüº0MJ 3. Make the cache an explicit dependency in your code and pass it around.Áüˆ1KH 4. Put the cache state in a `Mutex`, but this means only one search canÁ´Ô1 execute at a time.Áüë1+( 5. Create a new cache for every search.Á—2�ü›2OL A `thread_local!` is perhaps the best choice if it works for your use case.Áüë2MJ Putting the cache in a mutex or creating a new cache for every search areÁü¹3LI perhaps the worst choices. Of the remaining two choices, whether you useÁü†4MJ this `Pool` or thread through a cache explicitly in your code is a matterÁüÔ430 of taste and depends on your code architecture.Áˆ5�üŒ5"êäT¯5�ü³5KH When this crate is compiled _without_ the `std` feature, then this typeÁüÿ5JùåTüÊ6KÍæTü–7%¢çT¼7�üÀ7VÝçT—8�l›8•£/©8�ü­8HE This example shows how to share a single hybrid regex among multipleÁüö8EB threads, while also safely getting exclusive access to a hybrid'sÁü¼9LI [`Cache`](crate::hybrid::regex::Cache) without preventing other searchesÁü‰:41 from running while your thread uses the `Cache`.Á¾:�<Â:ä¤/ÌÊ:ô¤/üä:&# hybrid::regex::{Cache, Regex},Áü‹;'$ util::{lazy::Lazy, pool::Pool},Át³;·„04Â;Ý¥/É;�äÍ; static RE: Lazy =Áüê;:7 Lazy::new(|| Regex::new("foo[0-9]+bar").unwrap());Áü¥<%" static CACHE: Lazy> =ÁüË<63 Lazy::new(|| Pool::new(|| RE.create_cache()));Á‚=�ü†=/åëTü¶=JG assert_eq!(expected, RE.find(&mut CACHE.get(), b"zzzfoo12345barzzz"));Á<�>ä¤/$”>�¯‚°°¯çŒN ™>¾�Nlœ>ªô4Eøôµ®±Èÿ#ªôBÿ�� h¬Èÿ#ªôBÿ­­ ®éìòèy{~ œ>©ïTü«>$¬­­Èÿ#¬Ó>�³‚´³´çŒN Ø>¾�N Û>ªôµ¶· üÙ?#üï>DA Create a new pool. The given closure is used to create values inÁä¸? the pool when necessary.Áà?òèªôBÿ²²Â…$öÒBÿü°G>üÉ@DØÃVä’A¥ÄV³A�ü»AKH When the `std` feature is enabled, a `Pool` is thread-aware and spreadsÁü‹BIF its memory out across multiple cache lines. The number of cache linesÁüÙBHE is determined by the `capacity` parameter passed here. By default, aÁü¦CJG fixed reasonable number is used. A smaller number means less memory isÁüõCHE used, but a higher number means there may be less contention on thisÁüÂDJG pool in highly threaded environments doing a lot of searches using theÁ¼‘E same `Regex` value.Á­E�üµEEB When `std` is not enabled, then the capacity parameter is ignoredÁüÿEC@ because the underlying pool implementation is not thread-aware.ÁÇF�üÏFDA The capacity must be at least 1. If it's less than 1, then it isÁœ˜G forced to be 1.Ál·GòèªôBÿ²²ê„$ïŒr öÒ| ü†LCüæHDØÃVä¯I¥ÄVÐI�üØIHE This is a convenience routine for calling `Pool::with_capacity` withÁü¥JJG a number equivalent to the available parallelism for this environment.ÁôJ�üüJEB If `std` is not enabled or if the query for available parallelismÁüÆK;8 failed, then this is equivalent to calling `Pool::new`.Áü�L#òèªôBÿ²² ·éìòèöÒá ¼†M$™Mü¬M1¬³M¬�ƒ$ÃÊúM¹�º�º�ºº¹�Š$¼N¹�»�»�»»¹‰‰$üôP&�½‚¾½¾ûòT �Q¾�N ‚Qß�U$üPšóTL…QçŒN ùPªô¿  02ü”X(ü¡Q?< Get a value from the pool. The caller is guaranteed to haveÁüåQFC exclusive access to the given value. Namely, it is guaranteed thatÁü°RGD this will never return a value that was returned by another call toÁüüR-* `get` but was not put back into the pool.Á®S�ü¶SGD When the guard goes out of scope and its destructor is called, thenÁü‚TC@ it will automatically be put back into the pool. Alternatively,ÁüÊTHE [`PoolGuard::put`] may be used to explicitly put it back in the poolÁü—U&# without relying on its destructor.ÁÂU�üÊUEB Note that there is no guarantee provided about which value in theÁü”VGD pool is returned. That is, calling get, dropping the guard (causingÁüàVEB the value to go back into the pool) and then calling get again isÁüªWIF *not* guaranteed to return the same value received in the first `get`ÁLøW call.Á›Xå? å?ªôÄÄÅ­àÉó¬ Œ¿‚ÄÆk"`å?éìòèBÿ¼ ŸX¼ ¿éìòè$ XüèX<�Á‚ÂÂÁçŒN íX¾�N ‚YùûT„ðXªôàgÃ#%(*ü«Y@®Yæ?ç?è? æ?ªô ç?€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡è?­àBÿÀ ²YÀ Ãéìòè$³Yœ� ü� ü­ZJG A guard that is returned when a caller requests a value from the pool.ÁøZ�üüZJG The purpose of the guard is to use RAII to automatically put the valueÁüÇ['$ back in the pool once it's dropped.ÁLú[ÄÆ�Ç‚ÈÇÈÆþÆ¥õ ˆ\þÆ«õ ‘\ýÆ¥õ$‹\…#«õL”\�#«õ¥õ œ\¥õĤ˖«õÄìôŒ¿‚ÄÆk"`ÅÉ–÷ìôBÿß à¬–÷ìôBÿÄÄ ÅÄ¥õ«õ„\çéãåÔŸ\¬ÄÄ–÷ü½\3ÄË�Ì‚ÍÍË̘áV Ú\ãàV Ï\ôàV$É\…áVLÒ\ÒàV Æ\ìôÎÂ\68ü–_%ü÷\74 Consumes this guard and puts it back into the pool.Á³]�ü»]JG This circumvents the guard's `Drop` implementation. This can be usefulÁüŠ^JG in circumstances where the automatic `Drop` results in poorer codegen,ÁüÙ^*' such as calling non-inlined functions.Á�_é?ÄÄÅ­àÉó¬ Œ¿‚ÄÆk"`é?¥õ«õBÿʱ_Ê ÎÄ¥õ«õÕó v üî_HÄÐ�Ñ‚ÒÑÒИáV ‹`ãàV €`ôàV$ú_…áVLƒ`ÒàV ÷_ìôÓÔÝ"Þ"Ôó_ "EG\½`4Â`ÏÏ¥õ¬á`,ä`ê? ê?ìô ê?¥õBÿÏ ê`Ï ÔÄ¥õ«õ$ë`ü™aKÄÖ�ׂØÖר˜áV ¶aãàV «aôàV$¥a…áVL®aÒàV ¢aìôÙê"Ùža>@üùa!Lüaë? ë?ìô ë?¥õBÿÕ †bÕ ÙÄ¥õ«õ$‹büÁb_ÄÛ�Ü‚ÝÛÝܘáV ñbãàV æbôàV$ÍbŸg¥õ„Ôb…áVLébÒàV ÊbìôÞ gÞÆbNPü§c@ªcì?í?î? ì?ìô í?€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡î?­àBÿÚ ®cÚ ÞÄ¥õ«õ$¯cœ  LÆdÓ‰|´d¼®d,Êd¬ïðñòóô˜º(Á(Â(ö¹$Tðd“2ßá»;lŒe–šßãä»;T›e•šßä AtomicUsizeÁ\¿e� ßæ²DÌe“�ßçÀì öeŸßé–ûeÐ=ßê–ßêü…f…Cßë¨, f²6ßíÖd§fµßî$Úd„êdýüÚd/îðÛÝüÚdbÃű³,çeTïe¦“•D€fs”f\šfhUWÜêg<ñgßÞ¢$CüÆiŒÍi߃ì÷k|þkßü˜qŒŸqß丌|¾Œßä¥�$·�¬�õ‚ööõçŒN ¼�¾�N ¿��öP C“­�ƒÐ÷øùú.024L»ž4»žßôôòèüº¡*4º¡ßôô†¹$”ƒ¦,ƒ¦ßôôÞ¢$ü›¨ L›¨ßôôìº$ü€·8�ü‚ýüýçŒN Œ·¾�N •·ß�U$�·€‚U$˜·‘‚U$Ÿ·�ö-/13üººL�ÿ‚€€ÿçŒN ¿º¾�N κ•šéìTº•šòèTѺ–šòèlÞº�öHJLNü‹¾W�‚‚ƒ‚ƒçŒN �¾¾�N Ÿ¾èöVT“¾úöVT¢¾Œ÷Vl¯¾�ö-/13¬ô¾�…‚†…†çŒN ù¾¾�N ü¾�ö‡ˆü†À*”À¬òè�öBÿ„„«þ#öÒ üˆÄEl–Ĭòè�öBÿ„„Ú€$ïŒô öÒÿ üÝÚ&�Š‚‹Š‹ûòT öÚ¾�N ëÚß�U$åÚšóTLîÚçŒN âÚ�öŒŽ�‘’“CEüªÜ/¸Ü¬ò? ò?�ö˜˜­àœÊÞß��ßžÑæßSi`H™Äªò?éìòèBÿ‰ ¼Ü‰“‘$$½Ü$§äŒ�������ŒÀ½$üØêuDÛêßó? ó?�ö˜˜­àœÊÞß��ßžÑæßSi`H™Äªó?éìòèBÿ‰ ñê‰éÀ$$òêàm. ôãw. üÂ"LÆ‚ßô? ô?�öïø Bÿ‰ Ђ‰ �éìòè$Ñ‚�Y8 $�ƒ���������Àé$üŸŒ;\¢Œßõ? õ?�ö˜˜­àœÊÞß��ßžÑæßSi`H™Äªõ?éìòèBÿ‰ ®Œ‰«À$$¯Œà‚; ü“Ž;\–Žßö? ö?�öïø ˜˜­àœÊÞß��ßžÑæßSi`H™Äªö?éìòèBÿ‰ ¢Ž‰…Ô$$£Ž�š< üò�E¬õ�ß÷? ÷?�öïø ˜˜­àœÊÞß��ßžÑæßSi`H™Äª÷?éìòèBÿ‰ ‹‘‰ÞÖ$$Œ‘�`= ü•’<�•‚–•–çŒN š’¾�N ¯’ùûT„�’�ö— g—&(*,üÜ’Dß’ø?ù?ú? ø?�ö ù?€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ú?­àBÿ” ã’” —éìòè$ä’œ®? üÕ•6L畬ę�š‚››š™ÒàV õ•ãàV þ•ôàV$ø•…áVL�–˜áV ‰–¯áVf¿áVm–÷Si`H™Äªœ�ž«ñ•_ace²$˖ߘ˜ Ħ‰%ä�™,�™ß˜˜¶‚%l²œ<²œß˜˜üÌœ3Ä �¡‚¢ ¡¢˜áV éœãàV ÞœôàV$Øœ…áVLáœÒàV Õœ–÷£¤¥¦ÑœDFüÅ� ,Ó�¬û? û?–÷ û?¥õBÿŸ Ù�Ÿ £Ä¥õ«õ$Ú�ü¥§,L³§¬ü? ü?–÷ ü?¥õBÿŸ ½§Ÿ ¤Ä¥õ«õ$§ü™±,§±¬ý?˜˜­àœÊÞß��ßžÑæßSi`H™Äªý?¥õ«õBÿŸ»±Ÿ ¥Ä¥õ«õÕó ŒR ¬½¶<À¶ßþ? þ?–÷BÿŸ ȶŸ ¦Ä¥õ«õ$ͶüìÄ<Ĩ�©‚ª¨©ª˜áV ‰ÅãàV þÄôàV$øÄ…áVL�ÅÒàV õÄ–÷«�#«ñÄCE”ÅÅ$ÈÅÿ? ÿ?–÷Bÿ§ Íŧ «Ä¥õ«õ$ÒÅü‹ÆcÄ­�®‚¯­¯®˜áV »ÆãàV °ÆôàV$—ƽìV„žÆ…áVL³ÆÒàV ”Æ–÷° g°�ÆLNüýÆ@€Ç€@�@‚@ €@–÷ �@€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡‚@­àBÿ¬ „Ǭ °Ä¥õ«õ$…Çœ#Z Œ© ;üÛ +Ö Defines a prefilter for accelerating regex searches. A prefilter can be created by building a [`Prefilter`] value. A prefilter represents one of the most important optimizations available for accelerating regex searches. The idea of a prefilter is to very quickly find candidate locations in a haystack where a regex _could_ match. Once a candidate is found, it is then intended for the regex engine to run at that position to determine whether the candidate is a match or a false positive. In the aforementioned description of the prefilter optimization also lay its demise. Namely, if a prefilter has a high false positive rate and it produces lots of candidates, then a prefilter can overall make a regex search slower. It can run more slowly because more time is spent ping-ponging between the prefilter search and the regex engine attempting to confirm each candidate as a match. This ping-ponging has overhead that adds up, and is exacerbated by a high false positive rate. Nevertheless, the optimization is still generally worth performing in most cases. Particularly given just how much throughput can be improved. (It is not uncommon for prefilter optimizations to improve throughput by one or two orders of magnitude.) Typically a prefilter is used to find occurrences of literal prefixes from a regex pattern, but this isn't required. A prefilter can be used to look for suffixes or even inner literals. Note that as of now, prefilters throw away information about which pattern each literal comes from. In other words, when a prefilter finds a match, there's no way to know which pattern (or patterns) it came from. Therefore, in order to confirm a match, you'll have to check all of the patterns by running the full regex engine. ÁL± ;²ÃÕû‹ÄÕ×ü(„)Y4¸+ͱ q,É+Ÿg±¡q¢g±¡»;lÜ+–š±£ä»;Të+•š±¤K§+„K±¥Ð<à+¼±§ †é+¶±¨Ó¿LŠ+º-±ªú¹$•+Ú,±«¶˜\Ø+È(­Î�<ò+Î(®¢™4ˆ+Ö(°×™<�+Ý(±•š<™+å(²Ûš4¯+î(³Œ›,Â+ô(´„Ý +dá +±È(õïT"&IJ´Ó¿L;&º-²¶ú¹$F&Ú,²·\&¬&Aü4&24!#„­&ÿ÷¹üÄo&Ò&‡@ù¦ ‡@™À%óÂ%Bÿ¸þºº ‘&¸þÆø” Ö&£ø”Èš\Ù&Çû&¦Fa éÇ%Pa ,.ü�&ÿ÷¼½¿ÁÂÅÆÇÈÉÁ¿½Â¼ô¶&$¹&ˆ@ ˆ@ÿ÷‹ 2Bÿ» ¾&» ¼$¿&üù;&$ü&‰@Š@ ‰@ÿ÷ Š@ȚŞíõBÿ» �&» ½$‚&ý�Dˆ&Åœ$™&’ &½�¾�¾�¾¾½¾ììÕÛíîNÓ îÅœÓ ¯ íÕí´sÝÅžUÿüÔ =&4× &‹@Œ@ ‹@ÿ÷ Œ@ȚŞíõBÿ» Þ &» ¿$ß &ý�Då &Åœ$ö &§$&¿�À�À�ÀÀ¿ÀÍ©Wüé$&dì$&�@ �@ÿ÷Bÿ» ù$&» Á$ú$&Ìñ&&<ô&&Ž@ Ž@ÿ÷Bÿ» ü&&» Â$ý&&\ï +<ó +±Î(Ï(õïT"'ÄÃÅÓ¿L;'º-ÃÇú¹$F'Ú,ÃÈ\'¬'Aü4'24!#d’'ÌøÊü¥l'³'“@ù¦ “@™À%ÙÔ%BÿÉþËË ó'ɘ¦W ·'©¦W\º'•ú&©Ö%,j éÇ%6j !#Ú'ÊÊ܇'ÌøÎÏÒÓÔÅÆÇÈÉÎÓÏÔÒô©'$¬'”@ ”@Ìø‹ 2BÿÍ ±'Í Î$²'üç;'$ê'•@–@ •@Ìø –@ȚŞíõBÿÍ ï'Í Ï$ð'ý�Dö'Åœ$‡'$Ì'Ï�Ð�Ð�ÐÐÏÐÏ—¤Ë%í'Ï�Ñ�Ñ�ÑÑÏÑŠÚ ÅžUÿáÆ:üò='4õ'—@˜@ —@Ìø ˜@ȚŞíõBÿÍ ü'Í Ò$ý'ý�Dƒ 'Åœ$” 'üû 'dþ '™@ ™@ÌøBÿÍ ‹ 'Í Ó$Œ '̲ '<µ 'š@ š@ÌøBÿÍ ½ 'Í Ô$¾ 'Tü +4€+±Ö(×(Ý(Þ(å(æ(õïT"(ÄÕ×Ó¿L;(º-ÕÙú¹$F(Ú,ÕÚ\(¬(Aü4(24!#\ˆ(œùÜüšk(¨(Ÿ@ù¦ Ÿ@™À%ýà%BÿÛþÝÝ è(Û˜¦W ¬(©¦W\¯( ó&©Ö%Pp éÇ%Zp !#Ô�(œùßàâãäÅÆÇÈÉäâàãßô±($´( @  @œù‹ 2BÿÞ ¹(Þ ß$º(üî;($ñ(¡@¢@ ¡@œù ¢@ȚŞíõBÿÞ ö(Þ à$÷(ý�Dý(Åœ$Ž(ˆ(à�á�á�ááàáý²WáÆ:ü§ =(4ª (£@¤@ £@œù ¤@ȚŞíõBÿÞ ± (Þ â$² (ý�D¸ (Åœ$É (ü¥ (d¨ (¥@ ¥@œùBÿÞ µ (Þ ã$¶ (ÌÜ (<ß (¦@ ¦@œùBÿÞ ç (Þ ä$è (dÊ (ìùæüÝ l(ë («@ù¦ «@™À%Ëî%Bÿåþçç « (嘦W ï (©¦W\ò (Ñô&©Ö%w éÇ%(w !#Ø(æ�è�è�èèæ¢é%ܯ(ìùêëíîïÅÆÇÈÉïíëîêôÑ($Ô(¬@ ¬@ìù‹ 2Bÿé Ù(é ê$Ú(ü�;($’(­@®@ ­@ìù ®@ȚŞíõBÿé —(é ë$˜(ý�Dž(Åœ$¯(²(ë�ì�ì�ììëìý²WáÆ:üÑ=(4Ô(¯@°@ ¯@ìù °@ȚŞíõBÿé Û(é í$Ü(ý�Dâ(Åœ$ó(üÞ(dá(±@ ±@ìùBÿé î(é î$ï(Ì•(<˜(²@ ²@ìùBÿé  (é ï$¡(d‡(Èúñüšl(¨(·@ù¦ ·@™À%��&Bÿðþòò è(ð˜¦W ¬(©¦W\¯(‚ö&©Ö%p€ éÇ%z€ !#•(ñ�ó�ó�óóñ‹ú%Ü�(ÈúõöøùúÅÆÇÈÉøöúùõô¿($Â(¸@ ¸@Èú‹ 2Bÿô Ç(ô õ$È(üý;($€(¹@º@ ¹@Èú º@ȚŞíõBÿô …(ô ö$†(ý�DŒ(Åœ$�(¨!(ö�÷�÷�÷÷ö÷ý²WáÆ:üÇ"=(4Ê"(»@¼@ »@Èú ¼@ȚŞíõBÿô Ñ"(ô ø$Ò"(ý�DØ"(Åœ$é"(üã$(dæ$(½@ ½@ÈúBÿô ó$(ô ù$ô$(Ìš%(<�%(¾@ ¾@ÈúBÿô ¥%(ô ú$¦%(Tˆ+4Œ+±î(õïT")ÄûýÓ¿L;)º-ûÿú¹$F)Ú,û€\)¬)Aü4)24!#\Ô)°û‚üæk)ô)Ã@ù¦ Ã@™À%³Ž&Bÿ�þƒƒ ´)�˜¦W ø)©¦W\û)³÷&©Ö%‡ éÇ%‡ !#Ô™)°û…†ˆ‰ŠÅÆÇÈɉ…Іˆôº)$½)Ä@ Ä@°û‹ 2Bÿ„ Â)„ …$Ã)ü÷;)$ú)Å@Æ@ Å@°û Æ@ȚŞíõBÿ„ ÿ)„ †$€)ý�D†)Åœ$—)· )†�‡�‡�‡‡†‡ý²WóŠ’ˆ&üï =)4ò )Ç@È@ Ç@°û È@ȚŞíõBÿ„ ù )„ ˆ$ú )ý�D€ )Åœ$‘ )üõ)dø)É@ É@°ûBÿ„ …)„ ‰$†)Ì£)<¦)Ê@ Ê@°ûBÿ„ ®)„ Š$¯)L”+,˜+±ô(õïT"*Ä‹�Ó¿L;*º-‹�ú¹$F*Ú,‹�\*¬*Aü4*24!#T· *ýû’üÈ i*Ö *Ï@ù¦ Ï@™À%¡¢&Bÿ‘þ““ •*‘˜¦W Ú *©¦W\Ý *äø&¦^” éÇ%h”  "Ä*’�”�”�””’œ&Ì�*ýû–—™œžÅÆÇÈÉ–™—žœô¯*$²*Ð@ Ð@ýû‹ 2Bÿ• ·*• –$¸*üë;*$î*Ñ@Ò@ Ñ@ýû Ò@ȚŞíõBÿ• ó*• —$ô*ý�Dú*Åœ$‹*• *—�˜�˜�˜˜—˜Í©Wü× =*4Ú *Ó@Ô@ Ó@ýû Ô@ȚŞíõBÿ• á *• ™$â *ý�Dè *Åœ$ù *üÕ""*Lî"*ð%*™�›�›�››™›Í©Wü²&*dµ&*Õ@ Õ@ýûBÿ• Â&*• œ$Ã&*ü’("*L«(*Ì–)*<™)*Ö@ Ö@ýûBÿ• ¡)*• ž$¢)*$¤+t°+ŸTÄ+’ü¤5+qt`c„š+Ó«Œ‚+Ìü+hŒÌ+Ó픳+Ô­+mÓílÓí+)~œô+or_b´¬+ÌÊ+W„é+Iü¬Y+<?-0!t§+d»+tä*+äü¶º»¼¿ÀÁÂÃüŽ;f+üù*I+F Create a new prefilter from a sequence of needles and a correspondingÁ¤Ç++ match semantics.Áà++�üè+D+A This may return `None` for a variety of reasons, for example, ifÁü±,C+@ a suitable prefilter could not be constructed. That might occurÁüù,C+@ if they are unavailable (e.g., the `perf-literal-substring` andÁüÁ-G+D `perf-literal-multisubstring` features aren't enabled), or it mightÁü�.G+D occur because of heuristics or other artifacts of how the prefilterÁTÙ.+ works.Áè.+�üð.J+G Note that if you have an [`Hir`] expression, it may be more convenientÁü¿/K+H to use [`Prefilter::from_hir_prefix`]. It will automatically handle theÁü�0/+, task of extracting prefix literals for you.ÁÃ0+�lË0+•£/Ý0+�üå0B+? This example shows how match semantics can impact the matchingÁü¬1H+E algorithm used by the prefilter. For this reason, it is important toÁüù1F+C ensure that the match semantics given here are consistent with theÁüÄ2I+F match semantics intended for the regular expression that the literalsÁÄ’3+ were extracted from.Á¯3+�<·3+ä¤/ÌÃ3+ô¤/üá3-+* util::{prefilter::Prefilter, syntax},ÁÄ“4+ MatchKind, Span,Á4°4+Ý¥/»4+�ôÃ4+ let hay = "Hello samwise";Áæ4+�üî4C+@ // With leftmost-first, we find 'samwise' here because it comesÁü¶50+- // before 'sam' in the sequence we give it..Áüë5K+H let pre = Prefilter::new(MatchKind::LeftmostFirst, &["samwise", "sam"])Áü»6+µš?|ß6+¡´0üó6 + Some(Span::from(6..13)),Áü˜7;+8 pre.find(hay.as_bytes(), Span::from(0..hay.len())),Á4Ø7+½µ0üã7I+F // Still with leftmost-first but with the literals reverse, now 'sam'ÁÔ±8+ // will match instead!ÁüÐ8K+H let pre = Prefilter::new(MatchKind::LeftmostFirst, &["sam", "samwise"])Áü 9+µš?|Ä9+¡´0üØ9+ Some(Span::from(6..9)),Áüü9;+ðèW4¼:+½µ0Ç:+�üÏ:.+Ǭ/<‚;+ä¤/•;+Û@ù¦ Û@™À%¹Å Bÿµþ·· Ô;+µ˜¦W ™;+©¦W\œ;+ ¶ø”¦�ž éÇ%‹ž &(D£<+¶�¸�¸�¸¸¶¦½&ò<+¶�¹�¹�¹¹¶£À&üè>a+\ë>+±Ãþ¹Å Bÿµµ¹Â&…Ã&4€?+Öït˜?+ü²LG+üíDI+F This attempts to extract prefixes from the given `Hir` expression forÁü»EF+C the given match semantics, and if possible, builds a prefilter forÁL†F+ them.Á”F+�lœF+•£/®F+�ü¶FH+E This example shows how to build a prefilter directly from an [`Hir`]ÁüƒGH+E expression, and use to find an occurrence of a prefix from the regexÁdÐG+áé/áG+�<éG+ä¤/ÌõG+ô¤/ü“H-+«åWÄÅH+áåW4âH+Ý¥/íH+�üõH3+0 let hir = syntax::parse(r"(Bruce|Patti) \w+")?;Áü­IH+E let pre = Prefilter::from_hir_prefix(MatchKind::LeftmostFirst, &hir)ÁüúI+µš?üžJ%+" let hay = "Hello Patti Scialfa!";Á|ÈJ+¡´0üÜJ +Õ›Pü�K;+ðèW4ÁK+½µ0ÌK+�üÔK.+Ǭ/<‡L+ä¤/Óí”™L+Ô“L+|¹L+Ü@ù¦ Ü@–‡¹Å Bÿµ ßL+µ »¦$ÉL+¤OÚL+üÎXp+ü¹MJ+G This attempts to extract prefixes from the given `Hir` expressions forÁüˆNF+äïWLÓN+³ðWáN+�üéNF+C Note that as of now, prefilters throw away information about whichÁü´OK+H pattern each literal comes from. In other words, when a prefilter findsÁü„PG+D a match, there's no way to know which pattern (or patterns) it cameÁüÐPJ+G from. Therefore, in order to confirm a match, you'll have to check allÁüŸQ5+2 of the patterns by running the full regex engine.ÁÙQ+�láQ+•£/óQ+�üûQF+C This example shows how to build a prefilter directly from multipleÁüÆRG+D `Hir` expressions expression, and use it to find an occurrence of aÁü’S#+ prefix from the regex patterns.ÁºS+�<ÂS+ä¤/ÌÎS+ô¤/üìS-+«åWÄžT+áåW4»T+Ý¥/ÆT+�üÎT$+! let hirs = syntax::parse_many(&[Áì÷T+ r"(Bruce|Patti) \w+",Áä™U+ r"Mrs?\. Doubtfire",ÁDºU+•Ð1üÇUJ+G let pre = Prefilter::from_hirs_prefix(MatchKind::LeftmostFirst, &hirs)Áü–V+µš?üºV%+" let hay = "Hello Mrs. Doubtfire";Á|äV+¡´0üøV + Some(Span::from(6..20)),Áü�W;+ðèW4ÝW+½µ0èW+�üðW.+Ǭ/<£X+ä¤/Ó픵X+Ô¯X+„ÕX+Ý@ù¦ Ý@œÊ¹Å Bÿµ„½½ žY+µ®€A æX+À€A\éX+ ¼�¹¦ô£ ¡¯þ£ &(4ŒZ+¼�¾�¾�¾¾¼ïÇ&üìb?+üºZK+H Run this prefilter on `haystack[span.start..end]` and return a matchingÁ¼Š[+ span if one exists.Á¦[+�ü®[I+F The span returned is guaranteed to have a start position greater thanÁüü[H+E or equal to the one given, and an end position less than or equal toÁ”É\+ the one given.Áà\+�lè\+•£/ú\+�ü‚]H+ëðWüÏ]K+H expression, and use it to find an occurrence of a prefix from the regexÁdŸ^+áé/°^+�<¸^+ä¤/ÌÄ^+ô¤/üâ^-+«åWÄ”_+áåW4±_+Ý¥/¼_+�üÄ_++( let hir = syntax::parse(r"Bruce \w+")?;Áüô_H+³óWüÁ`+µš?üå`)+©Ž?|“a+¡´0ü§a +Õ›PüÌa;+ðèW4Œb+½µ0—b+�üŸb.+Ǭ/<Òb+ä¤/$ób+Þ@ß@ Þ@äü ß@ȚŞíõBÿµ øb+µß±$ùb+ý�a¦ Åœk¦ ü¡pA+üïdG+D Returns the span of a prefix of `haystack[span.start..span.end]` ifÁÔ»e+ the prefilter matches.ÁÚe+�üâeJ+G The span returned is guaranteed to have a start position equivalent toÁü±fK+H the one given, and an end position less than or equal to the one given.Á�g+�l‰g+•£/›g+�ü£gH+ëðWüðgK+Ü„XüÀh8+5 pattern that begins at the start of a haystack only.Áýh+�<…i+ä¤/Ì‘i+ô¤/ü¯i-+«åWÄái+áåW4þi+Ý¥/‰j+�ü‘j++˜†XüÁjH+³óWüŽk+µš?ü²k)+©Ž?üàk1+. // Nothing is found here because 'Bruce' doesÁü–l0+- // not occur at the beginning of our search.Á|Ël+¡´0lßl+ðç6üñl=+: pre.prefix(hay.as_bytes(), Span::from(0..hay.len())),Á4³m+½µ0ü¾m1+. // But if we change where we start the searchÁüôm-+* // to begin where 'Bruce ' begins, then aÁܦn+ // match will be found.Á|Æn+¡´0üÚn +Õ›Püÿn=+: pre.prefix(hay.as_bytes(), Span::from(6..hay.len())),Á4Áo+½µ0Ìo+�üÔo.+Ǭ/<‡p+ä¤/4¨p+à@á@ à@äü á@ȚŞíõBÿµ ¯p+µ À$°p+ý�?§ ÅœI§ üƒs#+ü¨rH+E Returns the heap memory, in bytes, used by the underlying prefilter.ÁdŠs+â@ â@äüBÿµ —s+µ Á$˜s+ü¼u%+üät++( Return the length of the longest needleÁ¬”u+ in this PrefilterÁtÃu+ã@ ã@äüBÿµ Òu+µ Â$Óu+ìÆ+ü›wH+E Implementations might return true here if they believe themselves toÁüèwG+D be "fast." The concept of "fast" is deliberately left vague, but inÁü´xH+E practice this usually corresponds to whether it's believed that SIMDÁŒ�y+ will be used.Á—y+�üŸyG+D Why do we care about this? Well, some prefilter tricks tend to comeÁüëyG+D with their own bits of overhead, and so might only make sense if weÁü·zH+E know that a scan will be *much* faster than the regex engine itself.Áü„{E+B Otherwise, the trick may not be worth doing. Whether something isÁüÎ{G+D "much" faster than the regex engine generally boils down to whetherÁüš|H+E SIMD is used. (But not always. Even a SIMD matcher with a high falseÁüç|)+& positive rate can become quite slow.)Á•}+�ü�}H+E Even if this returns true, it is still possible for the prefilter toÁüê}H+E be "slow." Remember, prefilters are just heuristics. We can't reallyÁü·~J+G *know* a prefilter will be fast without actually trying the prefilter.Áü†-+* (Which of course we cannot afford to do.)Á<Í+ä@ ä@äüBÿµ Õ+µ Ã$Ö+üŸ„[+T°„+Äĉ¥2üŸ„Œ +œ¥2,À„+”´A$È„+¥´A$Ï„+µ´AlÖ„+Æ´ATæ„+×´A<ó„+ĉ¥2Sœ¥2N”´AK¥´AHµ´AEÆ´AB×´A?‰¥2}œ¥2x”´Au¥´Arµ´AoÆ´Al×´AiÅÆÇÈÉÅÆÇÈÉÆÇÅÉÈü¬…+$¯…+å@ å@Êæ(‹ 2BÿÄ ´…+Ä ÅÊæ($µ…+ü÷‡<+$ú‡+æ@ç@ æ@Êæ( ç@ȚŞíõBÿÄ ÿ‡+Ä ÆÊæ($€ˆ+ý�D†ˆ+Åœ$—ˆ+üËŠ>+4Ί+è@é@ è@Êæ( é@ȚŞíõBÿÄ ÕŠ+Ä ÇÊæ($ÖŠ+ý�DÜŠ+Åœ$íŠ+üÜ‹ +dß‹+ê@ ê@Êæ(BÿÄ ì‹+Ä ÈÊæ($í‹+Ô��+<’�+ë@ ë@Êæ(BÿÄ š�+Ä ÉÊæ($›�+üÇ�2+Ó«Œ³�+Ì­�+ŒËËÿƵ“4Ü�+ÁÈATÏ�+ÀýÌÍÎÏÐÅÆÇÈÉÍÏÐÎÌ Ì�+ô€Ž+$ƒŽ+ì@ ì@Àý‹ 2BÿÊ ˆŽ+Ê Ìµ“$‰Ž+üýŽ;+$€�+í@î@ í@Àý î@ȚŞíõBÿÊ …�+Ê Íµ“$†�+ý�Tª Åœ_ª ü¥�=+4¨�+ï@ð@ ï@Àý ð@ȚŞíõBÿÊ ¯�+Ê Îµ“$°�+ý�N« ÅœY« üÑ‘+dÔ‘+ñ@ ñ@ÀýBÿÊ á‘+Ê Ïµ“$â‘+Ì×’+<Ú’+ò@ ò@ÀýBÿÊ â’+Ê Ðµ“$ã’+\üž+ÃþÒüð§j+þ§+÷@ù¦ ÷@™À%‘¾&BÿÑþÓÓ ½¨+ј¦W ‚¨+©¦W\…¨+³¼&¦‡¾ éÇ%’¾ "$¨¬+Ò�Ô�Ô�ÔÔÒ ò&üâÀn+Óí”ÍÀ+ÔÇÀ+DðÀ+ø@ù¦ ø@œÊÔÉ&Bÿ„ÖÖ “Á+®€A ùÀ+À€A̶Á+µÆ&¦üÄ ¡¯Å "$üêÈn+Óí”ÕÈ+ÔÏÈ+DøÈ+ù@ù¦ ù@œÊÔÉ&Bÿ„ØØ ›É+®€A �É+À€A̾É+ ×�¹¦$„É+¡¯$•É+*,”¼ ;ü˜ ,“ Lower level primitive types that are useful in a variety of circumstances. # Overview This list represents the principle types in this module and briefly describes when you might want to use them. * [`PatternID`] - A type that represents the identifier of a regex pattern. This is probably the most widely used type in this module (which is why it's also re-exported in the crate root). * [`StateID`] - A type the represents the identifier of a finite automaton state. This is used for both NFAs and DFAs, with the notable exception of the hybrid NFA/DFA. (The hybrid NFA/DFA uses a special purpose "lazy" state identifier.) * [`SmallIndex`] - The internal representation of both a `PatternID` and a `StateID`. Its purpose is to serve as a type that can index memory without being as big as a `usize` on 64-bit targets. The main idea behind this type is that there are many things in regex engines that will, in practice, never overflow a 32-bit integer. (For example, like the number of patterns in a regex or the number of states in an NFA.) Thus, a `SmallIndex` can be used to index memory without peppering `as` casts everywhere. Moreover, it forces callers to handle errors in the case where, somehow, the value would otherwise overflow either a 32-bit integer or a `usize` (e.g., on 16-bit targets). * [`NonMaxUsize`] - Represents a `usize` that cannot be `usize::MAX`. As a result, `Option` has the same size in memory as a `usize`. This useful, for example, when representing the offsets of submatches since it reduces memory usage by a factor of 2. It is a legal optimization since Rust guarantees that slices never have a length that exceeds `isize::MAX`. ÁTÄ ;žž)Ÿ)±)²)È)Ó)Ù)Ú)î)ï)Æ*Ç*Ò*Ó*Ù*¦+§+²+³+¹+ NonZeroUsizeÁd© ,ÈçÙÚüâ ,…CÙÛ�š,ÿ ,·ÙÝŒ—†,‘ÙÞÝ—‹,™Ùߘ�,£Ù༞ ,„|Ö ,Ó«Œ¾ ,̸ ,‡„ì ,wyegSUAC„õ,¯€âãü«/,üŒ4,1 Create a new `NonMaxUsize` from the given value.ÁÅ,�üÍK,H This returns `None` only when the given value is equal to `usize::MAX`.Á²,¹¨Bÿá᥅�tÌ Ì©,üªI,F Return the underlying `usize` value. The returned value is guaranteedÁôø, to not equal `usize::MAX`.Á°,¯€Bÿá᮸¥Í ü�%,¯€å gåü¼@,¿,„A…A†A „A¯€ …A€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡†A­àBÿä Ã,ä å$Ä,œ Ê,|‡3,×�çèéêëìíîïðñòóõ÷̈4,ä�3, The maximum index value.ÁƇ—9ÜÈ3,Æ•—9Üå3,üÇ3:,ü¾3E,’4,ææ×�´¥7,üØ6H,E The total number of values that can be represented as a small index.Á,¯7,ææÔ�8,Ìã7, The zero index value.Á$‹8,ææ×�¬‡9,üÁ8A,> The number of bytes that a single small index uses in memory.Á$‘9,ææüÜ:?,ìÈ9, Create a new small index.Áê9,�üò9E,B If the given index exceeds [`SmallIndex::MAX`], then this returnsÁl¼:,‰Ì8ã:,ØçBÿææÏÎ÷ÝÖ ü¾?6,üÍ;E,B Create a new small index without checking whether the given valueÁü—< , exceeds [`SmallIndex::MAX`].Á¼<,�üÄ Using this routine with an invalid index value will result inÁüŠ=I,F unspecified behavior, but *not* undefined behavior. In particular, anÁüØ=I,F invalid index value is likely to cause panics or possibly even silentÁœ¦>, logical errors.Á¾>,�üÆ>J,G Callers must never rely on a `SmallIndex` to be within a certain rangeÁ´•?, for memory safety.ÁlË?,×�Bÿææ„¨'÷Z× üÉA',üí@I,F Like [`SmallIndex::new`], but panics if the given index is not valid.Á$ÐA,×�Bÿææ í÷ÂØ ü­C%,ü»BE,B Return this small index as a `usize`. This is guaranteed to neverÁ¬…C, overflow `usize`.ÁDºC,”A ”A×�Bÿæ ÃC,æ¾ý$ÄC,ü¬E!,üÄDC,@ Return this small index as a `u64`. This is guaranteed to neverÁlŒE, overflow.Á4¹E,•A •A×�Bÿæ ÀE,æÚõ'$ÁE,ü·G!,ü¾FH,E Return the internal `u32` of this small index. This is guaranteed toÁÌ‹G, never overflow `u32`.Á4ÄG,–A –A×�Bÿæ ËG,æ¼'$ÌG,ü‰I!,üõGJ,G Return the internal `u32` of this small index represented as an `i32`.ÁüÄH2,/ This is guaranteed to never overflow an `i32`.Á4–I,—A —A×�Bÿæ �I,æâú'$žI,üùK,üœJ6,3 Returns one more than this small index as a usize.Á×J,�üßJK,H Since a small index has constraints on its maximum value, adding `1` toÁü¯K7,4 it will always fit in a `usize`, `u32` and a `i32`.ÁD€L,˜A ˜A×�Bÿæ ‰L,æª×$ŠL,üÑNZ,üÂLH,E Decode this small index from the bytes given using the native endianÁü�M&,# byte order for the current target.ÁºM,�üÂMH,E If the decoded integer is not representable as a small index for theÁü�N/,, current target, then this returns an error.ÁlØN,È«"ØçBÿææÀþ'öÆ ß ûN,ü¿S<,ü•QH,«ÖXüâQ&,ýÖX�R,�ü•RJ,G This is analogous to [`SmallIndex::new_unchecked`] in that is does notÁüäRH,E check whether the decoded integer is representable as a small index.Á¼ÆS,È«"×�Bÿææ‰�(öÆäà êS,ü¿U$,üÑTK,H Return the underlying small index integer as raw bytes in native endianÁ\¡U, format.Á\ÆU,™A ™A×�È«"Bÿæ ÒU,æì‚($ÓU, áU,üŒV,,�úúçŒN ‘V,‹ƒûü�ý‘ýü\¿V,4ÄV,ùùéìüãV(,,æV,€šA šA‹ƒ×� šAéìBÿù ìV,ù üéì$íV,÷™â ü·W/,�þþçŒN ¼W,‹ƒÿª#ÿüûW4,LþW,€›A ›A‹ƒ×� ›AéìBÿý ˆX,ý ÿéì$�X,÷­ã üùX/,Ó«ŒåX,ÌßX,���çŒN þX,«ƒ‚ƒ�ý‘ýƒ\¯Y,4´Y,€€éìüÓY(,,ÖY,€œA œA«ƒ×� œAéìBÿ€ ÜY,€ ƒéì$ÝY,÷«ä üÁZ2,Ó«Œ­Z,̧Z,�……çŒN ÆZ,«ƒ†ª#†üˆ[4,L‹[,€�A �A«ƒ×� �AéìBÿ„ •[,„ †éì$š[,÷–å äì[,×�ˆ®ˆü�\ ,$’\,×�Bÿ‡‡ ˆ÷,—\,üñ\ ,×�Š‹µ¶‹T˜],,�],‰‰Єü»]>,D¾],ØçBÿ‰‰ ‹÷,Ç],üÉ_ ,×��޵¶ŽTð_,,õ_,ŒŒЄü“`>,D–`,ØçBÿŒŒ Ž÷,Ÿ`,ü–b ,×��‘µ¶‘T½b,,Âb,��Єüàb>,Dãb,ØçBÿ�� ‘÷,ìb,üØd",×�“”µ¶”T�e,,†e,’’Єü¤e@,D§e,ØçBÿ’’ ”÷,°e,¤Ül,Є–ô¿m,ü÷lC,@ Returns the value that could not be converted to a small index.ÁLÆm,¥A ¥AЄBÿ• Ðm,• –$Ñm,ü˜n*,Ó‰|†n,¼€n,ЄüÇn+,Є™¥g™üùn@,ün,¦A§A¨A ¦AЄ §A€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡¨A­àBÿ˜ €o,˜ ™$�o,œ ‡o,üÓq ,Î…›œÅQÆQœLúq,$ÿq,šš×�ü—r(,$šr,­A ­AÎ…ÐúBÿš Ÿr,š œ$¤r,ì¿u,„Ìu, Ýu, ëÄ, ãu, ™v,, äu,8‚ $åu,& éu,8Ý,êu,$ ïu,, ñu,8¬ºòu,& õu,8Ý,öu,$ ûu,, ýu,8�$þu,& ‚v,8Ý,ƒv,$ ˆv,, Šv,8withiterÁD‹v,& “v,8Ý,”v,*›v, žv, èÄ,ø8$¨v,, ­v,8‚ $®v, ³v, óš,Ý< The maximum value.Á´Áv,8äv,8,èv,8€Dîv,& ñv,, óv,8‚ $ôv, ùv,, ûv,8‚ $üv, €w, �w,8öžT�w,'‹w,8€D�w,% ‘w,<4 The total number of values that can be represented.Áü w7,8äw,8,èw,8õ&,îw,& ów,8€,õw, ûw,8öžTýw,'‡x,8õ&,‰x,% Žx,< The zero value.Áœ�x,8½x,8,Áx,8œò$Çx,& Ëx,, Íx,8‚ $Îx, Óx,, Õx,8‚ $Öx, Úx, ëx,8öžTÛx,'åx,8œò$çx,% ìx,<8 The number of bytes that a single value uses in memory.Áüûx;,8Ãy,8,Çy,8¨ò$Íy,& Ñy,8€,Óy, Ùy,8öžTÛy,'åy,8¨ò$çy,% ëy,<; Create a new value that is represented by a "small index."Áüúy>,<�Åz,<@ If the given index exceeds the maximum allowed value, then thisÁüÕzC,< returns an error.Á¬¥{,+ Ç{, È{, Ï{,8þ4É{,8Ý{,8 á{,8˜ ä{, ç{, ô{,8�,è{,& í{,8€,ï{,(ö{,8Ñ4ù{, ÿ{,, €|,8‚ $�|,$ …|,, ‡|,8¬ºˆ|, ‹|, �|, Û|, 8öžTŸ|,'©|,8˜ «|, ®|, ´|,8�,¯|, µ|,8ƒ ¶|, ¹|, ¿|,, º|,8‚ $»|, À|,8„ <Á|, È|, Í|,, É|,8¬ºÊ|,<? Create a new value without checking whether the given argumentÁüê|B,< exceeds the maximum.ÁĹ},<�Þ},<8 Using this routine with an invalid value will result inÁüî};,<7 unspecified behavior, but *not* undefined behavior. InÁü¶~:,<= particular, an invalid ID value is likely to cause panics orÁüý~@,<% possibly even silent logical errors.ÁüÊ(,<�ÿ,<< Callers must never rely on this type to be within a certainÁü�€?,< range for memory safety.ÁäÛ€,+ „�, …�, Œ�,8þ4†�,8š�,8,ž�,8 ¤�,8¢ l§�, ´�, Á�,8�,µ�,& º�,8€,¼�,(Ã�,, Æ�,8‚ $Ç�, Ì�, ’‚,, Þ�,8‚ $ß�, ã�, „‚,8öžTä�,'î�,8¢ lð�, ý�, ƒ‚,8�,þ�,<8 Like `new`, but panics if the given value is not valid.Áü¡‚;,+ é‚, ê‚, ñ‚,8þ4ë‚,8ÿ‚,8 ƒƒ,8Äò$†ƒ, Šƒ, —ƒ,8�,‹ƒ,& �ƒ,8€,’ƒ,(™ƒ,, œƒ,8‚ $�ƒ, ¢ƒ, Ù„,, ´ƒ,8‚ $µƒ,'¹ƒ,8˜ »ƒ, ¾ƒ, ă,8�,¿ƒ, Ń,8¦4ƃ, ̃, Ë„,8µ4̓, Óƒ, Ôƒ, Ê„,7invalid ÁTêƒ,$ ôƒ,8�LŠ„, “„, ”„, š„,, •„,8‚ $–„,$ ›„,7 valueÁD±„,<> Return the internal value as a `usize`. This is guaranteed toÁüè„A,< never overflow `usize`.Áܶ…,+ Þ…, ß…, æ…,8þ4à…,8ô…,8,ø…,8 þ…,8Œ´D�†, ‰†, �†, І,8$‹†,(‘†,8€,”†, š†, ʆ,8$¬†, °†,7ó ±†, ²†,8Œ´D³†, »†, ¼†,<< Return the internal value as a `u64`. This is guaranteed toÁüÙ†?,< never overflow.Áœ¥‡,+ Ň, Ƈ, ͇,8þ4LJ,8Û‡,8,߇,8 å‡,8Ùò4è‡, î‡, ô‡, ï‡,8$ð‡,(ö‡,8«ù‡, ý‡, «ˆ,8$�ˆ, “ˆ,7ó ”ˆ, •ˆ,8Ùò4–ˆ, œˆ, �ˆ,<< Return the internal value as a `u32`. This is guaranteed toÁüºˆ?,<œÑX̆‰,+ ¬‰, ­‰, ´‰,8þ4®‰,8‰,8,Ɖ,8 ̉,8çò4ω, Õ‰, Û‰, Ö‰,8$׉,(݉,8¥à‰, ä‰, ’Š,8$ö‰, ú‰,7ó û‰, ü‰,8çò4ý‰, ƒŠ, „Š,<; Return the internal value as a i32`. This is guaranteed toÁü¡Š>,< never overflow an `i32`.ÁäìŠ,+ •‹, –‹, �‹,8þ4—‹,8«‹,8,¯‹,8 µ‹,8õò4¸‹, ¾‹, Ä‹, ¿‹,8$À‹,(Æ‹,8ÙÉ‹, Í‹, û‹,8$ß‹, ã‹,7ó ä‹, å‹,8õò4æ‹, ì‹, í‹,<- Returns one more than this value as a usize.ÁüŠŒ0,<�ÇŒ,<= Since values represented by a "small index" have constraintsÁü׌@,<> on their maximum value, adding `1` to it will always fit in aÁü¤�A,< `usize`, `u32` and a `i32`.Áüò�,+ žŽ, ŸŽ, ¦Ž,8þ4 Ž,8´Ž,8 ¸Ž,8ƒóD»Ž, ÃŽ, ÉŽ, ÄŽ,8$ÅŽ,(ËŽ,8€,ÎŽ, ÔŽ, „�,8$æŽ, êŽ,7ó ëŽ, ìŽ,8ƒóDíŽ, õŽ, öŽ,<? Decode this value from the bytes given using the native endianÁü“�B,<ýÖXüâ�&,<�•�,<= If the decoded integer is not representable as a small indexÁü¥�@,<4 for the current target, then this returns an error.Áüò�7,+ ¶‘, ·‘, ¾‘,8þ4¸‘,8Ì‘,8 Б,8“ólÓ‘, à‘, ï‘,8öÆ,á‘,& æ‘, è‘, î‘,8™é‘,% ë‘,7÷ í‘,(ñ‘,8Ñ4ô‘, ú‘,, û‘,8‚ $ü‘,$ €’,, ‚’,8¬ºƒ’, †’, ˆ’, à’, 8öžTš’,'¤’,8“ól¦’, ³’, ¹’,8öÆ,´’, º’,8ƒ »’, ¾’, Ä’,, ¿’,8‚ $À’, Å’,8„ <Æ’, Í’, Ò’,, Î’,8¬ºÏ’,<»�Yüï’B,<ýÖXü¾“&,<�ñ“,<? This is analogous to `new_unchecked` in that is does not checkÁü�”B,<? whether the decoded integer is representable as a small index.ÁüДB,+ Ÿ•,  •, §•,8þ4¡•,8µ•,8 ¹•,8­ó¼¼•, Ó•, â•,8öÆ,Ô•,& Ù•, Û•, á•,8™Ü•,% Þ•,7÷ à•,(ä•,, ç•,8‚ $è•, í•, ½–,, ÿ•,8‚ $€–, „–, ¯–,8öžT…–,'�–,8­ó¼‘–, ¨–, ®–,8öÆ,©–,<< Return the underlying integer as raw bytes in native endianÁüÌ–?,<ˆÜX\˜—,+ °—, ±—, ¸—,8þ4²—,8Æ—,8 Ê—,8Ñó\Í—, Ø—, Þ—, Ù—,8$Ú—,(à—, ã—, é—,8™ä—,% æ—,7÷ è—, ë—, ž˜,8$ý—, �˜,7ó ‚˜, ƒ˜,8Ñó\„˜, �˜, �˜,<9 Returns an iterator over all values from 0 up to and notÁü­˜<,< including the given length.Áüö˜,<�¢™,<9 If the given length exceeds this type's limit, then thisÁü²™<,<ú¼S\û™,8“š, –š, œš,8,—š,8 žš,8�$¡š, ¥š, °š,8¶¦š,& ©š,8€,«š,(²š,, µš,8�$¶š, »š, éš,, Íš,8�$Κ,'Òš,8˜ Ôš, ך, Ûš,8¶Øš,8$ý›,8û$‚œ,'†œ,8ñˆœ,'‹œ,8q,�œ,8 “œ,, —œ,8‚ $˜œ, �œ, Ô�, 8 «œ,8ñ®œ, ±œ, Õœ,  ²œ,8$³œ,$ ·œ,8œ ¹œ,& ºœ, ¼œ,8½œ,8û$Áœ,'Åœ,8ñÇœ,'Êœ,8ŠLÌœ,(ל,8û$Úœ,'Þœ,8ñàœ,'ãœ,8Ñ4åœ, ìœ, Ê�, 8œ þœ, ÿœ,8 debug_tupleÁ\€�, ‹�, ��,8�LŒ�, •�, –�, œ�,, —�,8‚ $˜�, ž�,8Ú,Ÿ�, ¤�, ³�, ¥�,8$¦�, ª�,8çò4«�, ±�, ²�, ´�,8§—4µ�, »�, ¼�,8$ß�, ã�,8� ä�, å�,8û$ç�,'ë�,8â í�,'ð�,8IndexÁ,ò�, ÷�,, ø�,8‚ $ù�, ý�,8 ÿ�, ƒž, …ž,8� „ž, ‡ž, ­Ÿ,8!$•ž,8´4šž, ¡ž,8� £ž,% ¤ž,+ ³ž, ´ž, »ž,8þ4µž,8 Éž,8÷,Ìž, Ñž, åž, Òž,8$Óž,$ מ,8÷,Ùž,& Þž,, àž,8‚ $áž,(çž, êž,8� ëž, íž, £Ÿ, ÿž,8$€Ÿ, „Ÿ, •Ÿ,8÷,…Ÿ, ŠŸ,8Œ´D‹Ÿ, “Ÿ, ”Ÿ,8$¸Ÿ, ¼Ÿ,8� ½Ÿ, ¾Ÿ,8û$ÀŸ,'ÄŸ,8â ÆŸ,'ÉŸ,8IndexMutÁDËŸ, ÓŸ,, ÔŸ,8‚ $ÕŸ, ÙŸ,8 ÛŸ, ߟ, áŸ,8� àŸ, ãŸ, û , + ñŸ, òŸ, ùŸ,8þ4óŸ,8 ‡ ,8øLŠ , “ , « , ” ,8• ,8$™ ,$ � ,8÷,Ÿ ,& ¤ ,, ¦ ,8‚ $§ ,(­ , ° ,8± ,8� µ , · , ñ , É ,8Ê ,8$Π, Ò , ã ,8÷,Ó , Ø ,8Œ´DÙ , á , â ,+ †¡, ‡¡, ž¡,8숡, ‹¡, �¡,8Ó<Œ¡, ”¡,7«<–¡,8$¨¡, ¬¡,8� ­¡, ®¡,8û$°¡,'´¡,8â ¶¡,'¹¡,8Í£Y,»¡, À¡,, Á¡,8‚ $¡, Æ¡,8 È¡,8üÌ¡, Ï¡,8� С, Ñ¡, Ó¡, ù¢,8!$á¡,8´4æ¡, í¡,8� ï¡,% ð¡,+ ÿ¡, €¢, ‡¢,8þ4�¢,8 •¢,8÷,˜¢, �¢, ±¢, ž¢,8$Ÿ¢,$ £¢,8÷,¥¢,& ª¢,, ¬¢,8‚ $­¢,(³¢, ¶¢,8� ·¢, ¹¢, ï¢, Ë¢,8$Ì¢, Т, á¢,8÷,Ñ¢, Ö¢,8Œ´D×¢, ߢ, à¢,+ „£, …£, œ£,8솣, ‰£, ›£,8Ó<Š£, ’£,7«<”£,8$¦£, ª£,8� «£, ¬£,8û$®£,'²£,8â ´£,'·£,8§YD¹£, Á£,, £,8‚ $ã, Ç£,8 É£,8üÍ£, У,8� Ñ£, Ò£, Ô£, ì¤, + â£, ã£, ê£,8þ4ä£,8 ø£,8øLû£, „¤, œ¤, …¤,8†¤,8$Ф,$ ޤ,8÷,�¤,& •¤,, —¤,8‚ $˜¤,(ž¤, ¡¤,8¢¤,8� ¦¤, ¨¤, â¤, º¤,8»¤,8$¿¤, ä, Ô¤,8÷,Ĥ, ɤ,8Œ´Dʤ, Ò¤, Ó¤,8$÷¤,8�$ü¤, €¥,8™�¥, ƒ¥,8 …¥,, ‰¥,8‚ $Š¥, �¥, €¦,8 �¥,8”$ ¥, ¤¥, ®¥,8�,¥¥,& ª¥,8™¬¥,(°¥,, ³¥,8‚ $´¥, ¹¥, ö¥,, Ë¥,8‚ $Ì¥, Ð¥, è¥,8öžTÑ¥,'Û¥,8”$Ý¥, á¥, ç¥,8�,â¥,8$‹¦,8ò<�¦, —¦,8Ÿ˜¦, ›¦,8 �¦,, ¡¦,8‚ $¢¦, §¦, á§,8!$µ¦,8ßô,º¦, À¦,, ¦,8¬ºæ,% Ʀ,8 Õ¦,8øDئ, à¦, ë¦,8�,á¦,& æ¦,8Ÿè¦,(í¦,8Ñ4ð¦, ö¦,, ÷¦,8‚ $ø¦,$ ü¦,, þ¦,8¬ºÿ¦, ‚§, „§, ×§, 8öžT–§,' §,8øD¢§, ª§, °§,8�,«§, ±§,8ƒ ²§, µ§, »§,, ¶§,8‚ $·§, ¼§,8„ <½§, ħ, ɧ,, ŧ,8¬ºƧ,8$ì§,8ò<ñ§, ø§,8¥ù§, ü§,8 þ§,, ‚¨,8‚ $ƒ¨, ˆ¨, ©,8!$–¨,8ßô,›¨, ¡¨,, £¨,8¬º¤¨,% §¨,8 ¶¨,8øD¹¨, Á¨, ̨,8�,¨,& Ǩ,8¥ɨ,(Ψ,8Ñ4Ѩ, ר,, ب,8‚ $Ù¨,$ ݨ,, ߨ,8¬ºà¨, ã¨, å¨, ¸©, 8öžT÷¨,'�©,8øDƒ©, ‹©, ‘©,8�,Œ©, ’©,8ƒ “©, –©, œ©,, —©,8‚ $˜©, �©,8„ <ž©, ¥©, ª©,, ¦©,8¬º§©,8$Í©,8ò<Ò©, Ù©,8«Ú©, Ý©,8 ß©,, ã©,8‚ $ä©, é©, £«,8!$÷©,8ßô,ü©, ‚ª,, „ª,8¬º…ª,% ˆª,8 —ª,8øDšª, ¢ª, ­ª,8�,£ª,& ¨ª,8«ªª,(¯ª,8Ñ4²ª, ¸ª,, ¹ª,8‚ $ºª,$ ¾ª,, Àª,8¬ºÁª, Ī, ƪ, ™«, 8öžTت,'âª,8øDäª, ìª, òª,8�,íª, óª,8ƒ ôª, ÷ª, ýª,, øª,8‚ $ùª, þª,8„ <ÿª, †«, ‹«,, ‡«,8¬ºˆ«,8$®«,8ò<³«, º«,8€,»«, À«,8 «,, Æ«,8‚ $Ç«, Ì«, ˆ­,8!$Ú«,8ßô,ß«, å«,, ç«,8¬ºè«,% ë«,8 ú«,8øDý«, …¬, ’¬,8�,†¬,& ‹¬,8€,�¬,(”¬,8Ñ4—¬, �¬,, ž¬,8‚ $Ÿ¬,$ £¬,, ¥¬,8¬º¦¬, ©¬, «¬, þ¬, 8öžT½¬,'Ǭ,8øDɬ, Ѭ, ׬,8�,Ò¬, ج,8ƒ Ù¬, ܬ, â¬,, ݬ,8‚ $Þ¬, ã¬,8„ <ä¬, ë¬, ð¬,, ì¬,8¬ºí¬,+ “­, ”­, ž­,8ì•­, ˜­, �­,8Í$™­,8$¨­,8 quickcheckÁT­­,'·­,8 ArbitraryÁL¹­,8 í,, Ç­,8‚ $È­, Í­, Ö®,8 Û­,8 arbitraryÁLÞ­, ç­, �®,85è­,& ë­, í­,8î­,8¯ÆYTò­,'ü­,8GenÁþ­,(ƒ®,, †®,8‚ $‡®, Œ®, Ì®,, ž®,8‚ $Ÿ®, £®, ¾®,8öžT¤®,'®®,8›ÇYL°®, ¹®, ½®,85º®,<9 This error occurs when a value could not be constructed.Áüá®<,<�¦¯,<@ This occurs when given an integer exceeding the maximum allowedÁü²¯C,<Û÷OTþ¯,<�‘°,<? When the `std` feature is enabled, this implements the `Error`Áü�°B,< trait.ÁTè°,+ û°, ü°,  ±,8É4ý°, ƒ±, Ÿ±,8e,„±,$ ‰±,8q,‹±,$ �±,8~’±,$ ”±,8¶L–±,8ª±,84®±,, µ±,8¬º¶±, ¹±, ɱ,8“ |º±,% ʱ,8$Õ±,, Ú±,8¬ºÛ±, ß±, �³,<8 Returns the value that could not be converted to an ID.Áüí±;,8µ²,8 ¹²,8õEL¼², Ų, ˲, Ʋ,8$Dz,(Ͳ,8«в, Ô², …³,8$æ², ê²,7ó ë², ì²,8õELí², ö², ÷²,+ š³, ›³, °³,8윳, Ÿ³, ¯³,8Ó< ³, ¨³,7‰,ª³,8$º³,8‰¿³,'³,8°@,ij,'ɳ,8ßô,˳,8 ѳ,, Õ³,8¬ºÖ³, Ú³, Û³,8$æ³,8û$ë³,'ï³,8ññ³,'ô³,8u<ö³,8 þ³,, ‚´,8¬ºƒ´, ‡´, å¶, 8 •´,8ñ˜´, ›´, ¿´,  œ´,8$�´,$ ¡´,8œ £´,& ¤´, ¦´,8§´,8û$«´,'¯´,8ñ±´,'´´,8ŠL¶´,(Á´,8û$Ä´,'È´,8ñÊ´,'Í´,8Ñ4Ï´, Ö´, Û¶,8writeÁ,è´, í´, î´, Ͷ,8œ „µ,$ …µ,71failed to create {} from {:?}, which exceeds {:?}Áü›µ3,$ ε,8�Läµ, íµ, îµ, ôµ,, ïµ,8‚ $ðµ,$ õµ,8$‹¶, �¶,8õEL�¶, ™¶, š¶,$ ›¶,, ±¶,8‚ $²¶,'¶¶,8€D¸¶,$ »¶,+ ð¶, ñ¶, †·,8É4ò¶, ø¶, …·,8e,ù¶,$ þ¶,8q,€·,8�·, “·, ™·,8,”·,84›·,, ¢·,8�$£·, §·, ¶·,8ë t¨·,% ··,8$·,, Ç·,8�$È·, Í·, Óº,8 Û·,8˜ Þ·, á·, ì·,8¶â·,& å·,8€,ç·,(î·,, ñ·,8�$ò·, ÷·, ɺ,8Ú4‰¸, �¸, �¸, „º,8¶¦¸,ª¸,, ­¸,8‚ $®¸,'²¸,8õ&,´¸,$ ¹¸,7Xcannot create iterator for {} when number of \ elements exceed {:?}ÁüϸZ,$ ©¹,8�L¿¹, ȹ, ɹ, Ϲ,, ʹ,8‚ $˹,$ й,, æ¹,8‚ $ç¹,'ë¹,8õ&,í¹,$ ò¹,% …º,, —º,8�$˜º, œº, »º,8ë t�º, ¬º, ºº,8�¡®º,& ±º,7ó ³º,!´º,8¶¶º,8$Þº,8¡Dãº,8 ìº,, ðº,8�$ñº, öº, ‰¼,8!$„»,8Ÿ$‰», Ž»,, �»,8‚ $‘»,% •»,8 ¤»,8¥ $§», «», µ», ¬»,8­»,8$±»,(·»,8°4º», À»,, Á»,8‚ $», Æ», È», ÿ», 8$Ú», Þ»,7ó ß», à»,8¥ $á», å», æ», ç»,8ƒ è», ë», ñ»,, ì»,8‚ $í»,<D An iterator adapter that is like std::iter::Enumerate, but attachesÁü”¼G,<@ small index values instead. It requires `ExactSizeIterator`. AtÁüä¼C,<? construction, it ensures that the index of each element in theÁü°½B,<A iterator is representable in the corresponding small index type.Áüû½D,+ Ⱦ, ɾ, Þ¾,8É4ʾ, о, ݾ,8e,Ѿ,$ Ö¾,8q,ؾ,8è¾, ë¾, ñ¾,8,ì¾,84ó¾,, ú¾,8õíXDû¾, ƒ¿,8… „¿, …¿, ‡¿, ¼¿, 8ÛË•¿,& —¿,8… ™¿,$ š¿,8쨨¿,& «¿,, ­¿,8�$®¿,$ ²¿,8$Ç¿, Ë¿,8… Ì¿,& Í¿,8¡DÏ¿, Ø¿,8ExactSizeIteratorÁŒÚ¿, ë¿,, í¿,8õíXDî¿, ö¿,8… ÷¿, ø¿, ú¿, •Á, 8 ˆÀ,8˜ ‹À, ŽÀ, ”À,8ÛË�À,& ‘À,8… “À,(–À,, ™À,8õíXDšÀ, ¢À,8… £À, ¤À, ¦À, ‹Á, 8¸À,8쨼À, ÀÀ,, ÂÀ,8‚ $ÃÀ,'ÇÀ,8�$ÉÀ, ÍÀ, ÖÀ,8ÛËÎÀ, ÐÀ,8¶ÑÀ, ÔÀ, ÕÀ,% ×À,, éÀ,8õíXDêÀ, óÀ, ýÀ,8ÛËõÀ,$ ÷À,8ì¨ùÀ,8$ Á, ¤Á,8… ¥Á,& ¦Á,8¡D¨Á, ±Á,8‚äYŒ³Á, ÄÁ,8¡DÆÁ,8 ÏÁ,, ÓÁ,8õíXDÔÁ, ÜÁ,8… ÝÁ, ÞÁ, àÁ, âÄ,8!$îÁ,8Ÿ$óÁ, øÁ, úÁ, ‰Â,, ûÁ,8‚ $üÁ,$ €Â,8… ‚Â,'ƒÂ,8Ÿ$…Â,% ŠÂ,8 ™Â,8¥ $œÂ,  Â, ªÂ, ¡Â,8¢Â,8$¦Â,(¬Â,8°4¯Â, µÂ, ¶Â, ÅÂ,, ·Â,8‚ $¸Â,$ ¼Â,8… ¾Â,'¿Â,8Ÿ$ÁÂ, ÆÂ, ÈÂ, ØÄ,8ÚÂ,8›$ÞÂ, ãÂ,8$åÂ, éÂ,8ÛËêÂ, ìÂ,8¥ $íÂ, ñÂ, òÂ,- óÂ,% ôÂ,8ˆÄ,8ˆCŒÄ, �Ä,8$‘Ä, •Ä,8쨖Ä, ™Ä,8¥ $šÄ, žÄ, ŸÄ,  Ä,8ö4¡Ä, §Ä, ¨Ä,% ©Ä,8à$»Ä, ¿Ä, ÊÄ, ÀÄ, ÉÄ,8ˆCÁÄ,$ ÃÄ,8›$ÅÄ,% éÄ,ü™Õ+,„ªÕ,žž‰¥2ü™Õä,ÄQÊæ(D¼Õ,ž‰¥2.¥ïY!‰¥2:¥ïY-Ÿ Ÿ Ÿ üËÕg,„ÎÕ,Êæ(ƒç(BÿžžþÆÊæ(,˜Ö,ŽQÊæ(Œ Ö, ŸÊæ(O3 üéÖc,tìÖ,Êæ(Ëè(Bÿžž­ðY,²×,¿ðYŒº×,  Êæ(4 üÿ×(,…¢¢ö�I „Ø,‚’ID‡Ø,‰ŒlÐ ;üLG Provides helpers for dealing with start state configurations in DFAs. Á,Ø ;Ã+Ê+Ï+Œ–\k­(£¥žD…§-£§—,�Ñ,£¨‚þ$¢ô£ªà³„¨�,£«±³tº‰,£¬\RŒe„üR0uwdfüRMV$›FH46\¡"ö�®¯±²³´µ´Ï#ü³"-* Create a new default start configuration.Áå"�üí"KH The default is an unanchored search that starts at the beginning of theÁl½#®£=Ö#ö�Bÿ­­ ®ü÷&6ü°$DA A convenience routine for building a start configuration from anÁüù$# [`Input`] for a forward search.Á¡%�ü©%HE This automatically sets the look-behind byte to the byte immediatelyÁüö%GD preceding the start of the search. If the start of the search is atÁüÂ&0- offset `0`, then no look-behind byte is set.Á”þ&ŠB‹B ŠBÑ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²‹Bö�Bÿ­ ˜'­�Ù –`,‘'—(¯�°�°�°°¯°ŠÚ »Ô Uÿ¤Ú üØ+6üˆ)DœõYüÑ)# [`Input`] for a reverse search.Áù)�ü�*H£öYüÎ*C@ following the end of the search. If the end of the search is atÁü–+=: offset `haystack.len()`, then no look-behind byte is set.Á”ß+ŒB�B ŒBÑ,Ñ,—Ó,ý�ÏÔ,ÅœÏÕ,ã÷ÏÖ,÷œÏ€I³–¨{˜²�Bö�Bÿ­ ù+­†ä –`,ò+üŒ18ü¡-63 Set the look-behind byte at the start of a search.ÁÜ-�üä-JG Unless the search is intended to logically start at the beginning of aÁü³.KH haystack, this should _always_ be set to the byte immediately precedingÁüƒ/JG the start of the search. If no look-behind byte is set, then the startÁüÒ/IF configuration will assume it is at the beginning of the haystack. ForÁü 0'$ example, the anchor `^` will match.ÁÌ0�üÔ030 The default is that no look-behind byte is set.Á\“1ö�»Ô ö�Bÿ­­ ²$£1—»$©1üà23ü€2&# Set the anchored mode of a search.Á«2�ü³2(% The default is an unanchored search.ÁDç2ö�Ø¥ö�Bÿ­­ ³$ô2¾»$ú2ü–4+üÌ3EB Return the look-behind byte in this configuration, if one exists.Á|�4ŽB ŽBö�»Ô Bÿ­ ­4­µÉ $®4ü 5&üè430 Return the anchored mode in this configuration.Ád§5�B �Bö�Ø¥Bÿ­ ´5­‡É $µ5Œâ<Å�·¹º¼½üÅ>6Ó>‘B ‘B‚óÅ�Bÿ¶ Þ>¶ ·lookmÁ,×>©?··üŠK+˜K’B ’BÅ�†‘Bÿ¶ œK¶ÙÌ $�K—»„8 ü®NhT¼N“B “BÈšÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÅ�Ö•Bÿ¶ ×N¶ ºå,ÐN‚PººüºUeDÈU”B•B ”BÅ� •BÈš½ßNBÿ¶ ÚU¶ ¼$ÛUĨéUüˆY*d–Y–B –BÅ�Bÿ¶ £Y¶ ½$¤YüÊY&Å�¿ g¿ü÷Y@úY—B˜B™B —BÅ� ˜B€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡™B­àBÿ¾ þY¾ ¿$ÿYœ …ZôÆZLÛZT˜p†‘ÂÃÄÅüÁq3TÏqřǙș­É™Ê™àË™óG*¤�R{9 †‘BÿÁÁ ¤ ÚqäïtýtBÿÁÁ„« üÑv ,ßv¡B ¡B†‘BÿÁ åvÁëú($ævü«y&D¹y¢B ¢B†‘BÿÁ ÂyÁЩ $Ãytú ;ü½-¸ Utilities for dealing with the syntax of a regular expression. This module currently only exposes a [`Config`] type that itself represents a wrapper around the configuration for a [`regex-syntax::ParserBuilder`](regex_syntax::ParserBuilder). The purpose of this wrapper is to make configuring syntax options very similar to how other configuration is done throughout this crate. Namely, instead of duplicating syntax options across every builder (of which there are many), we instead create small config objects like this one that can be passed around and composed. ÁÓí”å ;Ôß ;4‚ ;ÑÒÔÕí+–Ë-Ð=ÆÈ–ÆÈüÕ-…CÆÉ™Oô- ÆË¤O$ƒ-ãÆÍ †‰-¶ÆÎßô,“-ÓÆÏóùlš-ñÆÐ,Ã-©«DÐ-‰dà-z|üà -oý-_aMO;=üÑ1-ü­J-G A convenience routine for parsing a pattern into an HIR value with theÁÔø- default configuration.Á“-�l—-•£/¥-�ü©8-5 This shows how to parse a pattern into an HIR value:Áâ-�<æ-ä¤/üî%-" use regex_automata::util::syntax;Á”-�ü˜3-0 let hir = syntax::parse(r"([a-z]+)|([0-9]+)")?;ÁüÌI-F assert_eq!(Some(1), hir.properties().static_explicit_captures_len());Á–-�üš.-Ǭ/<É-ä¤/,Ø-£B £BÔøBÿ ç- ÑîN<Þ-ü“K-ü´ K-H A convenience routine for parsing many patterns into HIR value with theÁÔ€ -÷–Z› -�lŸ -•£/­ -�ü± K-H This shows how to parse many patterns into an corresponding HIR values:Áý -�<� -ä¤/L‰ -ãê@ü“ %-" regex_automata::util::syntax,Áü¹ &-# regex_syntax::hir::Properties,Á4à -Ý¥/ç -�üë $-äüWì� - r"([a-z]+)|([0-9]+)",ÁÌ® - r"foo(A-Z]+)bar",ÁDÈ -•Ð1üÑ G-D let props = Properties::union(hirs.iter().map(|h| h.properties()));Áü™ >-; assert_eq!(Some(1), props.static_explicit_captures_len());ÁØ -�üÜ .-Ǭ/<‹-ä¤/Tš-¤B ¤B©ò�ý(BÿŒÓÓ ¾-ŸÛ/ ¥-°Û/T¨- Òµ“¨ q>  ü�G-ü–I-F A convenience routine for parsing a pattern into an HIR value using aÁlà- `Config`.Áî-�lò-•£/€-�ü„J-G This shows how to parse a pattern into an HIR value with a non-defaultÁ”Ï- configuration:Áâ-�<æ-ä¤/üî%-›˜Z”-�ü˜!- let hir = syntax::parse_with(Á¤º- r"^[a-z]+$",ÁüÏ;-8 &syntax::Config::new().multi_line(true).crlf(true),Á<‹-Ä™1ü“@-= assert!(hir.properties().look_set().contains_anchor_crlf());ÁÔ-�üØ.-Ǭ/<‡-ä¤/T–-¥B¦B ¥B ¦BÝ’ÔøBÿ ª- ÔîN<¡-É4°-üŸl-üËK-H A convenience routine for parsing many patterns into HIR values using aÁl—-Ì¡Z¥-�l©-•£/·-�ü»J-G This shows how to parse many patterns into an corresponding HIR valuesÁü†%-" with a non-default configuration:Á¬-�<°-ä¤/L¸-ãê@üÂ%-ÝœZüè&-Œ�Z4�-Ý¥/–-�¬š-šÊ4ì°-â�ZtÎ- r"\W",ÁÌÝ-ˆžZ4÷-Ùý3üþB-? let config = syntax::Config::new().unicode(false).utf8(false);ÁüÁ;-8 let hirs = syntax::parse_many_with(patterns, &config)?;ÁüýG-¸žZôÅ- assert!(!props.is_utf8());Áä-�üè.-Ǭ/<—-ä¤/|¦-§B¨B §B©ò ¨BÝ’�ý(BÿŒÖÖ Ô-ŸÛ/ ¶-°Û/T¹-Ðü(¨ êB ÉôB  "\à$-Ý’ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñ´¥%-üò$.-+ Return a new default syntax configuration.Á¬%-Ý’Bÿ×× Øüˆ,6-üü(;-8 Enable or disable the case insensitive flag by default.Á¼)-�üÄ)F-C When Unicode mode is enabled, case insensitivity is Unicode-aware.Áü�*B-? Specifically, it will apply the "simple" case folding rules asÁÌÖ*- specified by Unicode.Áô*-�üü*D-A By default this is disabled. It may alternatively be selectivelyÁüÅ+>-; enabled in the regular expression itself via the `i` flag.Á„�,-Ý’Ý’Bÿ×× Ù$¤,-êª,-üµ10-üþ,>-; Enable or disable the multi-line matching flag by default.ÁÁ--�üÉ-E-B When this is enabled, the `^` and `$` look-around assertions willÁü“.H-E match immediately after and immediately before a new line character,Áüà.H-E respectively. Note that the `\A` and `\z` look-around assertions areÁü­/G-D unaffected by this setting and always correspond to matching at theÁüù/#- beginning and end of the input.Á¡0-�ü©0D-º°Züò0>-; enabled in the regular expression itself via the `m` flag.ÁT¼1-Ý’Ý’Bÿ×× Ú$Ë1-êÑ1-üÙ9:-üŸ2F-C Enable or disable the "dot matches any character" flag by default.Áê2-�üò2K-H When this is enabled, `.` will match any character. When it's disabled,ÁüÂ3F-C then `.` will match any character except for a new line character.Á�4-�ü•4I-F Note that `.` is impacted by whether the "unicode" setting is enabledÁüã4K-H or not. When Unicode is enabled (the default), `.` will match any UTF-8Áü³5G-D encoding of any Unicode scalar value (sans a new line, depending onÁüÿ5H-E whether this "dot matches new line" option is enabled). When UnicodeÁüÌ6G-D mode is disabled, `.` will match any byte instead. Because of this,Áü˜7G-D when Unicode mode is disabled, `.` can only be used when the "allowÁüä7E-B invalid UTF-8" option is enabled, since `.` could otherwise matchÁ”®8- invalid UTF-8.ÁÅ8-�üÍ8D-º°Zü–9>-; enabled in the regular expression itself via the `s` flag.Á¤à9-Ý’Ý’Bÿ×× Û$ù9-êÿ9-ü£?*-ü×:6-3 Enable or disable the "CRLF mode" flag by default.Á’;-�üš;D-º°Züã;>-; enabled in the regular expression itself via the `R` flag.Á¦<-�ü®<5-2 When CRLF mode is enabled, the following happens:Áè<-�üðF-C `\r` and `\n` as line terminators. And in particular, neither willÁüú>$-! match between a `\r` and a `\n`.Á$ª?-Ý’Ý’Bÿ×× Ü$³?-ê¹?-üÊH4-ü�@D-A Sets the line terminator for use with `(?u-s:.)` and `(?-us:.)`.ÁÊ@-�üÒ@L-I Namely, instead of `.` (by default) matching everything except for `\n`,Áü£AF-C this will cause `.` to match everything except for the byte given.ÁîA-�üöAK-H If `.` is used in a context where Unicode mode is enabled and this byteÁüÆBE-B isn't ASCII, then an error will be returned. When Unicode mode isÁü�CK-H disabled, then any byte is permitted, but will return an error if UTF-8ÁüàC/-, mode is enabled and it is a non-ASCII byte.Á”D-�üœDI-F In short, any ASCII value for a line terminator is always okay. But aÁüêDH-E non-ASCII byte might result in an error depending on whether UnicodeÁü·E#- mode or UTF-8 mode are enabled.ÁßE-�üçEH-E Note that if `R` mode is enabled then it always takes precedence andÁü´FH-E the line terminator will be treated as `\r` and `\n` simultaneously.Á�G-�ü‰GC-@ Note also that this *doesn't* impact the look-around assertionsÁüÑGB-? `(?m:^)` and `(?m:$)`. That's usually controlled by additionalÁü˜H--* configuration in the regex engine itself.Á|ÑH-Ý’Ý’Bÿ×× Ý$åH-—»$ëH-ü‚L0-ü¾I7-4 Enable or disable the "swap greed" flag by default.ÁúI-�ü‚JK-H When this is enabled, `.*` (for example) will become ungreedy and `.*?`Á¼ÒJ- will become greedy.ÁîJ-�üöJD-º°Zü¿K>-; enabled in the regular expression itself via the `U` flag.ÁT‰L-Ý’Ý’Bÿ×× Þ$˜L-êžL-ü¥P7-üìL2-/ Enable verbose mode in the regular expression.Á£M-�ü«MG-D When enabled, verbose mode permits insignificant whitespace in manyÁü÷MG-D places in the regular expression, as well as comments. Comments areÁüÃN=-: started using `#` and continue until the end of the line.Á…O-�ü�OF-C By default, this is disabled. It may be selectively enabled in theÁüØOH-E regular expression by using the `x` flag regardless of this setting.ÁŒ¬P-Ý’Ý’Bÿ×× ß$ÂP-êÈP-üæW--ü�Q8-5 Enable or disable the Unicode flag (`u`) by default.ÁÚQ-�üâQG-D By default this is **enabled**. It may alternatively be selectivelyÁü®R?-< disabled in the regular expression itself via the `u` flag.ÁòR-�üúRG-D Note that unless "allow invalid UTF-8" is enabled (it's disabled byÁüÆSH-E default), a regular expression will fail to parse if Unicode mode isÁü“TE-B disabled and a sub-expression could possibly match invalid UTF-8.ÁÝT-�üåTK-H **WARNING**: Unicode mode can greatly increase the size of the compiledÁüµUF-C DFA, which can noticeably impact both memory usage and compilationÁü€VH-E time. This is especially noticeable if your regex contains characterÁüÍVH-E classes like `\w` that are impacted by whether Unicode is enabled orÁüšWG-D not. If Unicode is not necessary, you are encouraged to disable it.Á<íW-Ý’Ý’Bÿ×× à$ùW-êÿW-üÚ^*-üÊXH-E When disabled, the builder will permit the construction of a regularÁü—Y,-) expression that may match invalid UTF-8.ÁÈY-�üÐY;-8 For example, when [`Config::unicode`] is disabled, thenÁü�ZH-E expressions like `[^a]` may match invalid UTF-8 since they can matchÁüÝZF-C any single byte that is not `a`. By default, these sub-expressionsÁü¨[@-= are disallowed to avoid returning offsets that split a UTF-8Áüí[D-A encoded codepoint. However, in cases where matching at arbitraryÁü¶\H-E locations is desired, this option can be disabled to permit all suchÁ¤ƒ]- sub-expressions.Áœ]-�ü¤]F-C When enabled (the default), the builder is guaranteed to produce aÁüï]G-D regex that will only ever match valid UTF-8 (otherwise, the builderÁÔ»^- will return an error).Á$á^-Ý’Ý’Bÿ×× á$ê^-êð^-üžk1-ü¸_A-> Set the nesting limit used for the regular expression parser.Áþ_-�ü†`K-H The nesting limit controls how deep the abstract syntax tree is allowedÁüÖ`I-F to be. If the AST exceeds the given limit (e.g., with too many nestedÁü¤a5-2 groups), then an error is returned by the parser.ÁÞa-�üæaG-D The purpose of this limit is to act as a heuristic to prevent stackÁü²bI-F overflow when building a finite automaton from a regular expression'sÁü€cD-A abstract syntax tree. In particular, construction currently usesÁüÉcI-F recursion. In the future, the implementation may stop using recursionÁü—d0-- and this option will no longer be necessary.ÁÌd-�üÔdH-E This limit is not checked until the entire AST is parsed. Therefore,Áü¡eI-F if callers want to put a limit on the amount of heap space used, thenÁüïeG-D they should impose a limit on the length, in bytes, of the concreteÁü»fG-D pattern string. In particular, this is viable since the parser willÁü‡gH-E limit itself to heap space proportional to the length of the patternÁ\Ôg- string.Áäg-�üìgI-F Note that a nest limit of `0` will return a nest limit error for mostÁüºhJ-G patterns but not all. For example, a nest limit of `0` permits `a` butÁü‰iI-F not `ab`, since `ab` requires a concatenation AST item, which resultsÁü×iJ-G in a nest depth of `1`. In general, a nest limit is not something thatÁü¦jE-B manifests in an obvious way in the concrete syntax, therefore, itÁüðj)-& should not be used in a granular way.ÁT¥k-Ý’Ý’Bÿ×× â$´k-ª¯,ºk-üÇr+-ü‹l+-( Whether to support octal syntax or not.Á»l-�üÃlH-E Octal syntax is a little-known way of uttering Unicode codepoints inÁü�m@-= a regular expression. For example, `a`, `\x61`, `\u0061` andÁüÕmI-F `\141` are all equivalent regular expressions, where the last exampleÁ¼£n- shows octal syntax.Á¿n-�üÇnK-H While supporting octal syntax isn't in and of itself a problem, it doesÁü—oJ-G make good error messages harder. That is, in PCRE based regex engines,ÁüæoA-> syntax like `\1` invokes a backreference, which is explicitlyÁü¬pH-E unsupported in Rust's regex engine. However, many users expect it toÁüùpF-C be supported. Therefore, when octal support is disabled, the errorÁüÄqI-F message will explicitly mention that backreferences aren't supported.Á’r-�üšr(-% Octal syntax is disabled by default.Á,Îr-Ý’Ý’Bÿ×× ã$Ør-êÞr-üÚs!-ü§s.-+ Returns whether "unicode" mode is enabled.Á\ás-­B ­BÝ’Bÿ× ís-× ä$îs-üÚt*-üžt7-4 Returns whether "case insensitive" mode is enabled.Á¤át-®B ®BÝ’Bÿ× öt-× å$÷t-üæu$-ü°u1-. Returns whether "multi line" mode is enabled.Átíu-¯B ¯BÝ’Bÿ× üu-× æ$ýu-üðv.-ü°v;-8 Returns whether "dot matches new line" mode is enabled.ÁÄ÷v-°B °BÝ’Bÿ× �w-× ç$‘w-ôþw-üÎw+-( Returns whether "CRLF" mode is enabled.ÁD…x-±B ±BÝ’Bÿ× Žx-× è$�x-üþx'-ü¼x=-: Returns the line terminator in this syntax configuration.Áœ…y-²B ²BÝ’Bÿ× ™y-× é$šy-ü†z$-üÐy1-. Returns whether "swap greed" mode is enabled.Át�z-³B ³BÝ’Bÿ× œz-× ê$�z-ü�{+-üÐz8-5 Returns whether "ignore whitespace" mode is enabled.Á¬”{-´B ´BÝ’Bÿ× ª{-× ë$«{-ô”|-üå{*-' Returns whether UTF-8 mode is enabled.ÁD›|-µB µBÝ’Bÿ× ¤|-× ì$¥|-üü|#-üÒ|%-" Returns the "nest limit" setting.Átƒ}-¶B ¶BÝ’Bÿ× ’}-× í$“}-üö}-üÅ},-) Returns whether "octal" mode is enabled.ÁLý}-·B ·BÝ’Bÿ× ‡~-× î$ˆ~-üî~7-,ü~-¸B¹B ¸BÝ’ ¹B³ÜBÿ× ‚-×÷þ($ƒ-Ö<‰-üÓƒG-Láƒ-ºB»B ºBÝ’ »BéúBÿ× ëƒ-× ð$ìƒ-Ö<òƒ-üÿ…f-L�†-¼B½B ¼BÝ’ ½B‘üBÿ×  †-× ñ$¡†-Ö<¯†-¼Ö‰-Ý’ó÷ó´ô‰-<÷‰-Ý’Bÿòò ódŠ ;üèã Types and routines that support the wire format of finite automata. Currently, this module just exports a few error types and some small helpers for deserializing [dense DFAs](crate::dfa::dense::DFA) using correct alignment. Á$’ ;–—˜™›œž ¡¢£¥¦§©ª­®°±´µ·»¿ÀÁÂÄÆÈÊËÌÎÏÓÔÕÿ+‰,�,Ž,’,–ý¾ôöà<‡ Ùô÷–¸Ð=ôù–ôùüÂ…Côúº<åÁôü¦¡LÿÙ)ôþª§tŠÆ*ôÿµ¢<šî)ô€‰­d£¦+ô�$öÕ×d‚È,°Ó«Œ˜Ì’ÌÓ«ÝD½Ó«*(Ê\Ídà¿üÍ/°²ž ŒŽz|œ’&‰•ƒü¬&D„º&‹ 2‰•Bÿ‚‚ ƒdz$Ë&üœ'*‰•…¥g…üÍ'@Ð'ÄBÅBÆB ÄB‰• ÅB€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ÆB­àBÿ„ Ô'„ …$Õ'œ Û'üý()Ó‰|ë(¼å(‰•¬Î4Ö•ˆ‰Š‹Œ�Ž��‘üê4<<ø4‹ 2Ö•Bÿ‡‡ ˆ«°€5üô5F„‚6‹ 2Ö•Bÿ‡‡ ‰dz$“6ü�78l“7ô‹ 2Ö•Bÿ‡‡ Šdz$¡7üœ8B„Ÿ8ôÖ•Bÿ‡‡ ‹§D°8¡µ,¿8üá9A|ä9ôÖ•Bÿ‡‡ Œ§Dô9¡µ,ƒ:ü¤;b”§;ôÖ•Bÿ‡‡ �©LÃ;Ÿ<Ý;üŽ==t‘=ô‹ 2Ö•Bÿ‡‡ ާD =ü¤>>œ§>ô‹ 2Ö•Bÿ‡‡ �dz$»>ü¼?g„¿?ôú‰‹ 2Ö•Bÿ‡‡ �¬ºÙ?dz$ö?üù@nt‡A»�‹ 2Ö•Bÿ‡‡ ‘¬ºŸAdz$ºAüÑB+Ó‰|¿B¼¹BÖ•ü�C,Ö•”¥g”ü´C@·CÍBÎBÏB ÍBÖ• ÎB€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ÏB­àBÿ“ »C“ ”$¼Cœ ÂCÔƒDüÏR<ŒÝRÐB ÐB  ÐBÀ÷Bÿ öR –å,ïRüÌWH¬ÚWÑB ÑB�š[ ÑBÀ÷Bÿ ÷W —å,ðWüŒ]@œš]ÒB ÒB�š[ ÒB ›†Bÿ µ] ˜å,®]üÛcU|écÓB ÓBÈšÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÖ•Bÿ�šš ˆdçŒN ùc ™éìå,�düäi9¤òiÔB ÔBÈšBÿ Žj ›å,‡jüÄqFÓ«Œ°q̪q¤Òq̹Bÿ���çŒN çq œéìß$êqü˜ƒrT¦ƒÕB ÕBÈš‹ 2ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÖ•Bÿ ½ƒ žå,¶ƒexpected_labelÁtȃ$¦†ž�Ÿ�Ÿ�ŸŸžŸÏ—üýŽb\‹�ÖB×B ÖB ×BÈš½ßNBÿ £�  ©,œ�Ĩ­�üà”3|î”ØB ØBBÿ …• ¡©,þ”üß™[¬í™ÙB ÙBÈšß[Bÿ �š ¢å,ˆšüËžg´ÙžÚB ÚBÈš½ßNBÿ�¤¤ …Ÿ­�N 𞔨O4óž £õ€NĨ€Ÿ!#ü¡3ÔСBÿ ¥ü—¦md¥¦ÛB ÛBÈšß[Bÿ ¾¦ ¦å,·¦expected_versionÁ„ɦüÊ«plØ«ÜB ÜBÈš½ßNBÿ�¨¨ �¬­�N æ«”¨O4é« §õ€N™<ö«Ĩˆ¬*,üÆ®*ŒÔ®Bÿ ©ü§±z|µ±ÝB ÝBÈš‹ 2ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw›†Ö•Bÿ ѱ ªå,ʱdz$ܱö\ ,À³ª�¬�¬�¬¬ª¬†•FÖ•Uÿ¦äüƒ¶KÌ‘¶ÞB ÞBÈš¹¨[Bÿ ²¶ ­å,«¶üå¹]„ó¹ßB›† ßBÈšBÿ�¯¯ ­º­�N „º”¨O4‡º ®õ€N¾¾”ºĨ¨º+-ü‹½zŒ™½àB àBÈš‹ 2ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÇÖ•Bÿ ·½ °å,°½dz$½ü«Ávl¹ÁáB áBÈš‹ 2€¬[Bÿ ÓÁ ±å,ÌÁdz$ÞÁ^] ,ºÃ±�³�³�³³±³Îô/Ö•Uÿ¦äüõÅG¼ƒÆâB âBÈšϬ[Bÿ ¢Æ ´å,›ÆüÉÉYt×ÉãBÇ ãBÈšBÿ�¶¶ �Ê­�N æÉ”¨O4éÉ µõ€N ØöÉĨˆÊ+-ü­Î|¬»ÎäB äBÈš‹ 2ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw£´Ö•Bÿ ÝÎ ·å,ÖÎdz$èÎLÓÏ·�¸�¸�¸¸·¸ø°[Uÿ¦ä‹Ð·�¹�¹�¹¹·¹Ú—áÆ:­Ð·�º�º�ºº·ºÏïÖ•Uÿ¦äü°Ô|¬¾ÔåB åBÈš‹ 2ø°[Bÿ àÔ »å,ÙÔdz$ëÔLÖÕ»�¼�¼�¼¼»¼ø°[Uÿ¦äŽÖ»�½�½�½½»½Ú—áÆ:°Ö»�¾�¾�¾¾»¾�¡Ö•Uÿ¦äüçÙqdõÙæB æBÈš‹ 2ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwϲ[Ö•Bÿ ŽÚ ¿å,‡Údz$™ÚüÁÞqdÏÞçB çBÈš‹ 2ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwܵ[Ö•Bÿ èÞ Àå,áÞdz$óÞü�ãsl«ãèB èBÈš‹ 2ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÖ•Bÿ Åã Áå,¾ãdz$Ðãü¬ç+DºçéB éBÈšBÿ Êç Âå,Ãç îçüõê+DƒëêB êBÈšBÿ “ë Äå,Œë ·ëü—í-L¥íëB ëBÈšBÿ ¶í Æå,¯íÛíüùï…|‡ðìB ìB‹ƒ‹ 2¦œ[Bÿ�ÉÉ ¦ðçŒN —ð Èéìå,Ÿð at_least_lenÁd°ðdz$Éð68ü©ók·ó‹ 2ß[Bÿ Ê— Àó˜ Îódz$ÜóüÆökÔö‹ 2ß[Bÿ Ë— Ýö˜ ëödz$ùöüãùkñù‹ 2ß[Bÿ Ì— úù˜ ˆúdz$–ú„ûÌ�Í�Í�ÍÍÌÍœ·[¦äüðý:\þýBÿ Înon_padding_lenÁ|Šþ¼õÿ4†€Ïω¥2üõÿ�ω¥2‰¥2#ÐÑÒÐÑÒÒÐÑü½�%LÀ�íB íBÈšBÿÏ ×�Ï ÐÊæ(¤ Ê�ĨÒ�ü’ƒ%L•ƒîB îBÈšBÿÏ ¬ƒÏ ÑÊæ(¤ ŸƒĨ§ƒüé„'Tì„ïB ïBÈšBÿÏ ……Ï ÒÊæ(¤ ÷„Ĩ€…”¯…¿…ƒ™vå½lЬë”Ý…í… ™lÇÙAÕˆÕ”•†·ÑÄú…üô… ¥†ƒ™”憃™×ØÙÐÑÒÙØ×üÿ†$L‚‡ðB ðBÈšBÿÖ ™‡Ö פ Œ‡Ĩ”‡üå‡$Lè‡ñB ñBÈšBÿÖ ÿ‡Ö ؤ ò‡Ĩú‡üˈ&TΈòB òBÈšBÿÖ çˆÖ Ù¤ ÙˆĨ∔²‰ ™ÛÜÝÐÑÒÝÛÜüˉ$LΉóB óBÈšBÿÚ å‰Ú Û¤ ؉Ĩà‰ü±Š$L´ŠôB ôBÈšBÿÚ ËŠÚ Ü¤ ¾ŠĨÆŠü—‹&Tš‹õB õBÈšBÿÚ ³‹Ú ݤ ¥‹Ĩ®‹ÔÐ ;Ó� ¬£ ;Óª+”º ;ü¢ +;ü™ 6;\ß ;óèíîñüè<…CÞß´Ù,�<¯,á÷·Œ—<À,â·¸œª<Ç,ãì¸|¿<Ì,ä±Dê<± Þæ«³Dˆ<–Þè‘Ú$¡<Ø'Þêý”<§<š(Þëµ¢<Å<î)ÞìÓ¿LÞ<º-Þí§ÃLþ<ò-ÞïãÂT‰<ë-Þðž�,¥<Ï+Þñ‚�$´<æÞò|Ü<E\ý<69'*  ,Øv1(ŸCBÿœ ©Oœ ¥$®OüØS)è›§ g§üˆT@‹T¡C¢C£C ¡Cè› ¢C€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡£C­àBÿ¦ �T¦ §$�Tœ –T¤éU蛩ª«¬®°±²³ü„V&D’V¤C ¤C蛽™Bÿ¨ ›V¨ ©$œVüÞV.,ìVè›ÞšBÿ¨¨ ª$òVüûW)L‰X¥C ¥C蛯ñBÿ¨ “X¨ «$”XüÒXblàX¦C ¦C蛹ç[Bÿ¨è�­­ ÷X¨æç[ô�Y÷ç[Ì”Y�è[<¦Y ¬¹ç[$üXã�ŠY-/üíYblûY§C §C蛹ç[Bÿ¨è�¯¯ ’Z¨æç[ôªZ÷ç[̯Z�è[<ÁZ ®¹ç[$—Zã�¥Z-/üˆ[7„–[¨C ¨Cè›ÇBÿ¨ §[¨ °$¬[ Ø²[ü­\&D»\©C ©Cè› ©CÈšBÿ¨ Ä\¨ ±$Å\Ôô\$÷\óªC ªCè›´´µß�·óó oëëmÆr/#ªCBÿ¨ ü\¨ ²$ý\üµ]%D¸]ó«C «Cè›ÎÎÏô‘Ñóó {L2>v1(«CBÿ¨ Á]¨ ³$Æ] $ÙuóͶ¶œoëëmÆr/#µ·�ùR¶œBÿ Hó�ùR¶œBÿ´´ µÄÞuDâuó´´�ùRŒîuĹ¹¶œº»¼½¾¿ÀÁÂÄÆÈÉóuÔ–yD™yó¬C ¬C¶œBÿ¸ ¢y¸ ºÄ$£yüè|!|ë|ó­C ­C¶œBÿ¸ û|¸ »Ä$ü|ô†ƒd‰ƒó®C ®C¶œBÿ¸ –ƒ¸ ¼Ä$—ƒôê…dí…ó¯C ¯C¶œBÿ¸ ú…¸ ½Ä$û…ô¹ŠL¼Šó°C °C¶œ¯ñBÿ¸ ÆŠ¸ ¾Ä$ÇŠô©ŽL¬Žó±C ±C¶œ¯ñBÿ¸ ¶Ž¸ ¿Ä$·Žä“�L–�ó²C ²C¶œBÿ¸  �¸ ÀÄ$¡�üÅ“2lÈ“ó³C ³C¶œ›†Bÿ¸ Ö“¸ ÁÄ$ד÷,Ý“ü¾—5ŒÁ—ó´C ´C¶œÆÛ[Bÿ¸ Ó—¸ ÂÄ$Ô—,�™Â�Ã�Ã�ÃÃÂÖŸPUÿ ‹Ü[üú™?´ý™óµC µC¶œòèBÿ¸‚ÅÅ ©š¸¾�N ”šˆ#òè–ŸP„—š�#òè–ŸP ÄÄòè$ªšœ ´šOQüŠ¢9”�¢ó¶C ¶C¶œòèBÿ¸‚ÇÇ ³¢¸¾�N  ¢ˆ#òè±€t£¢�#òè±€ ÆÄòè$´¢œ ¾¢OQüõ§%”ø§ó·C ·C¶œBÿ¸ ‹¨¸ ÈÄ$Œ¨ü�­&œ�­ó¸C ¸C¶œBÿ¸ ¤­¸ ÉÄ$¥­üº¯&ÄË˶œÌ gÌ¿¯üç¯@꯹CºC»C ¹C¶œ ºC€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡»C­àBÿÊ î¯Ê ÌÄ$ﯜ õ¯,ó°Ì�Í�Í�ÍÍÌͱ€Uÿë‰E <»·óÄÐÐÎÎÏô‘Ñóó {L2>v1(Ä{L2>v1(ÏÑ Ä̹Õ†\BÿE …ó©‡\Õ†\BÿÎÎ ÏÄ÷|Ç·óÎΩ‡\¤Ú·ÄÓÓÕ†\ÔÕÖרÙÚÜÞßàáß·Ô¨¹d«¹ó¼C ¼CÕ†\BÿÒ ¸¹Ò ÔÄ$½¹üè¼!œë¼ó½C ½CÕ†\BÿÒ ÿ¼Ò ÕÄ$„½ôÒ¿„Õ¿ó¾C ¾CÕ†\BÿÒ æ¿Ò ÖÄ$ë¿ô„„‡Âó¿C ¿CÕ†\BÿÒ ˜ÂÒ ×Ä$�Âô¹ÃL¼ÃóÀC ÀCÕ†\¯ñBÿÒ ÆÃÒ ØÄ$ÇÃôŒÅL�ÅóÁC ÁCÕ†\¯ñBÿÒ ™ÅÒ ÙÄ$šÅüËÆDlÎÆóÂC ÂCÕ†\è�BÿÒè�ÛÛ ÜÆÒþÆã�\ôðƈ#ã�\‚è[ÌõÆ�#ã�\‚è[¯ñ<‡Ç ÚÄã�\$áÆã�ëÆTVüçÈDlêÈóÃC ÃCÕ†\ã�\BÿÒè�ÝÝ øÈÒ‘Ž\ôŒÉ£Ž\̑ɸŽ\<£É ÜÄã�\$ýÈã�‡É8:ü²Ì2¤µÌóÄC ÄCÕ†\›†BÿÒ ÊÌÒ ÞÄ$Ï̾¾ÕÌüýÜ%¼€ÝóÅC ÅCÕ†\BÿÒ ˜ÝÒ ßÄ$�Ýüôã@„÷ãóÆCÇC ÆCÕ†\ ÇCÇÇBÿÒ ˆäÒ àÄ$�äprevÁ$“ä Ø§äÔîå$ñåóÈC ÈCÕ†\´´µß�·óó oëëmÆr/#ÈCBÿÒ öåÒ áÄ$÷åü»ç+d¾çóÉC ÉC̹Bÿ Ñç âêÒ$Ëç¤ ßçü‚ê+\…êóÊC ÊCÈšBÿ —ê ãêÒ$‘êüãî/dæîóËC ËC̹Bÿ ùî äêÒ$óî¤ ‹ïü¬ñ+\¯ñóÌC ÌCÈšܵ[Bÿ Áñ åêÒ$»ñüÛõ'LÞõóÍC ÍC̹Bÿ íõ æĨèõ¤ ûõ¬�ö öü· ë<$Å <ÎCÏCÐCÑC ÎC�»ù¦ ÏC�ª ÐC•ö ÑC½™ÞÐÞšè›Bÿ Ô < èß'Ï <�Tè <Ѳ<ƒ!<Ÿ©,¡!<ƒ,¿!<Ê$Ò!< empty_builderÁlì!³çC çCÈšØÚBÿ ¬›“�é)‰t ý�“t ü¯GùèC èCÈšØÚBÿ ß Ê�é)Ån2ÁÍý�DÕüçvMéC éCÈšØÚBÿ À Ë�é)†ïÖ\–n3Á¦ý�D¶üÒ?­êC êCÈšØÚBÿ ú Ì�é)èý�DðüþHöëC ëCÈšØÚBÿ ¯  Í�é)• ïÖ\� ý�D¥ ü¸ wJìC ìCÈšØÚBÿ ’  Î�é)Ø ïÖ\è ä×\ø ý�Dˆ ¬­;4¼;Ñ,Ú,é,ú,‹-—-ž-§-º-Ì-Í-Ø-¼,жýÏÑ RangeBoundsÁ\‘™$ÏÒ®ŠLºü&ÏÔ®Šý&ÏÔ¦¡LÑÙ)ÏÕ‚�$ÜæÏÖLþ�‘rt\¤Œ²h¬ÅB.0”§'¸ØØ¿�ÙÛÝßàáãæçèéêëìíîïðñò¬'ü�(AüÀ'=: Create a new search configuration for the given haystack.Á—(±ž¿�BÿׄÚÚ×ÿÆ·ž4ž(£·žÈš\§( Ù¸·žý�;w ›(üèH:üå,! Set the span for this search.Á‹-�ü“-JG This routine does not panic if the span given is not a valid range forÁüâ-HE this search's haystack. If this search is run with an invalid range,Áü¯.IF then the most likely outcome is that the actual search execution willÁTý.¾¾7Œ/�ü”/>; This routine is generic over how a span is provided. WhileÁü×/<9 a [`Span`] may be given directly, one may also provide aÁü˜0DA `std::ops::Range`. To provide anything supported by rangeÁüá0,) syntax, use the [`Input::range`] method.Á’1�üš1,) The default span is the entire haystack.ÁË1�üÓ1DA Note that [`Input::range`] overrides this method and vice versa.Áœ2�d¤2úë0µ2�ü½2HE This panics if the given span does not correspond to valid bounds inÁüŠ30- the haystack or the termination of a search.Á¿3�lÇ3•£/Ù3�üá3FC This example shows how the span of the search can impact whether aÁü¬4KH match is reported or not. This is particularly relevant for look-aroundÁüü4GD operators, which might take things outside of the span into accountÁüÈ5(% when determining whether they match.Áõ5�<ý5ä¤/ü‰6=ÔÂ/ÌË6ô¤/üé6&…‹J¬”7źE4®7Ý¥/¹7�üÁ7-* // Look for 'at', but as a distinct word.Áüó7%" let re = PikeVM::new(r"\bat\b")?;Áü�8&Ê›0üÈ8(û›0õ8�üý8>; // Our haystack contains 'at', but not as a distinct word.ÁäÀ9 let haystack = "batter";Áá9�üé941 // A standard search finds nothing, as expected.Áü¢:%ëú6üÌ:-ëñGüþ:'Ь/ª;�ü²;DA // But if we wanted to search starting at position '1', we mightÁüû;DA // slice the haystack. If we do this, it's impossible for the \bÁüÄ=: assert_eq!(Some(Match::must(0, 0..2)), caps.get_match());ÁÔ>�üÜ>FC // But if we specify the span of the search instead of slicing theÁü§?DA // haystack, then the regex engine can "see" outside of the spanÁüð?)& // and resolve the anchors correctly.Áüž@0- let input = Input::new(haystack).span(1..3);ÁüÓ@-ëñGü…A'Ь/±A�ü¹A.Ǭ/<ìAä¤/øA�ü€BIF This may seem a little ham-fisted, but this scenario tends to come upÁüÎBGD if some other regex engine found the match span and now you need toÁüšCJG re-process that span to look for capturing groups. (e.g., Run a fasterÁüéCJG DFA first, find a match, then run the PikeVM on just the match span toÁü¸DGD resolve capturing groups.) In order to implement that sort of logicÁü„EHE correctly, you need to set the span on the search instead of slicingÁÔÑE the haystack directly.ÁðE�üøEJG The other advantage of using this routine to specify the bounds of theÁüÇFGD search is that the match offsets are still reported in terms of theÁü“GJG original haystack. For example, the second search in the example aboveÁüâGGD reported a match at position `0`, even though `at` starts at offsetÁü®H'$ `1` because we sliced the haystack.Á$ïH¿�Ãð)¿�Bÿ×�ÜÜ×þÆÃð) ôH©Ãð)ÅžT÷H Û¸Ãð)$‡IÅœ&x 79ü‰SDüÚI63 Like `Input::span`, but accepts any range instead.Á•J�ü�JKH This routine does not panic if the range given is not a valid range forÁüíJHØß\üºKIªà\TˆL¾¾7—L�üŸL-* The default range is the entire haystack.ÁÑL�üÙLC@ Note that [`Input::span`] overrides this method and vice versa.Á¡M�d©Múë0ºM�üÂMEB This routine will panic if the given range could not be convertedÁüŒNB? to a valid [`Range`]. For example, this would panic when givenÁüÓNEB `0..=usize::MAX` since it cannot be represented using a half-openÁü�O! interval in terms of `usize`.ÁÃO�üËOKH This also panics if the given range does not correspond to valid boundsÁü›P30 in the haystack or the termination of a search.ÁÓP�lÛP•£/íP�<õPä¤/ô�Q use regex_automata::Input;Á¤Q�ü¬Q%üË4üÖQ(% assert_eq!(0..6, input.get_range());ÁƒR�ü‹R2/ let input = Input::new("foobar").range(2..=4);ÁüÂR(% assert_eq!(2..5, input.get_range());Á<ïRä¤/,�S¿�”ò)¿�Bÿ׎ÞÞ×þÆ”ò) –S™$”ò)”™S ݸ”ò)$±SÙœ÷x 68üÀy6ü‡T%" Sets the anchor mode of a search.Á±T�ü¹T=: When a search is anchored (so that's [`Anchored::Yes`] orÁüûTHE [`Anchored::Pattern`]), a match must begin at the start of a search.ÁüÈUJG When a search is not anchored (that's [`Anchored::No`]), regex enginesÁü—VJG will behave as if the pattern started with a `(?s-u:.)*?`. This prefixÁüæV'$ permits a match to appear anywhere.Á’W�üšW63 By default, the anchored mode is [`Anchored::No`].ÁÕW�üÝWJG **WARNING:** this is subtly different than using a `^` at the start ofÁü¬XIF your regex. A `^` forces a regex to match exclusively at the start ofÁüúXGD a haystack, regardless of where you begin your search. In contrast,ÁüÆYFC anchoring a search will allow your regex to match anywhere in yourÁü‘ZDA haystack, but the match must start at the beginning of a search.ÁÚZ�üâZHE For example, consider the haystack `aba` and the following searches:Á¯[�ü·[HE 1. The regex `^a` is compiled with `Anchored::No` and searches `aba`Áü„\IF starting at position `2`. Since `^` requires the match to start atÁüÒ\DA the beginning of the haystack and `2 > 0`, no match is found.Áü›]HE 2. The regex `a` is compiled with `Anchored::Yes` and searches `aba`Áüè]GD starting at position `2`. This reports a match at `[2, 3]` sinceÁü´^HE the match starts where the search started. Since there is no `^`,Áü�_IF there is no requirement for the match to start at the beginning ofÁ¤Ï_ the haystack.Áüè_HE 3. The regex `a` is compiled with `Anchored::Yes` and searches `aba`Áüµ`JG starting at position `1`. Since `b` corresponds to position `1` andÁü„aGD since the search is anchored, it finds no match. While the regexÁüÐaHE matches at other positions, configuring the search to be anchoredÁü�bJG requires that it only report a match that begins at the same offsetÁüìb&# as the beginning of the search.Áü—cGD 4. The regex `a` is compiled with `Anchored::No` and searches `aba`ÁüãcEB starting at position `1`. Since the search is not anchored andÁü­dIF the regex does not start with `^`, the search executes as if thereÁüûdIF is a `(?s:.)*?` prefix that permits it to match anywhere. Thus, itÁüÉe# reports a match at `[2, 3]`.Áñe�üùeEB Note that the [`Anchored::Pattern`] mode is like `Anchored::Yes`,ÁüÃf<9 except it only reports matches for a particular pattern.Á„g�lŒg•£/žg�ü¦gDA This demonstrates the differences between an anchored search andÁüïgEB a pattern that begins with `^` (as described in the above warningÁl¹h message).ÁËh�<Óhä¤/Ìßhô¤/üýh&…‹Jü¨i Anchored, Match, Input,Á4ÌiÝ¥/×i�Ìßi let haystack = "aba";Áýi�ü…j! let re = PikeVM::new(r"^a")?;Áü«jJœ§/üújGD let input = Input::new(haystack).span(2..3).anchored(Anchored::No);ÁüÆk-ëñGüøkHE // No match is found because 2 is not the beginning of the haystack,ÁüÅl  // which is what ^ requires.Áüêl'Ь/–m�üžm  let re = PikeVM::new(r"a")?;ÁüÃmJœ§/ü’nHE let input = Input::new(haystack).span(2..3).anchored(Anchored::Yes);Áüßn-ëñGü‘oKH // An anchored search can still match anywhere in the haystack, it justÁüáoGD // must begin at the start of the search which is '2' in this case.Áü­p=: assert_eq!(Some(Match::must(0, 2..3)), caps.get_match());Áïp�ü÷p Æž]üœqJœ§/üëqHE let input = Input::new(haystack).span(1..3).anchored(Anchored::Yes);Áü¸r-ëñGüêrC@ // No match is found since we start searching at offset 1 whichÁü²sHE // corresponds to 'b'. Since there is no '(?s:.)*?' prefix, no matchÁ„ÿs // is found.Áü”t'Ь/Àt�üÈt Æž]üítJœ§/ü¼uGD let input = Input::new(haystack).span(1..3).anchored(Anchored::No);Áüˆv-ëñGüºvHE // Since anchored=no, an implicit '(?s:.)*?' prefix was added to theÁü‡wJG // pattern. Even though the search starts at 'b', the 'match anything'ÁüÖw-* // prefix allows the search to match 'a'.Áüˆx.+ let expected = Some(Match::must(0, 2..3));Áü»x+ÄŠ0ëx�üóx.Ǭ/<¦yä¤/DÇy¿�Ø¥¿�Bÿ×× ß¸$Ôy¾»¾y üá‹1ü²z30 Whether to execute an "earliest" search or not.Áêz�üòzKH When running a non-overlapping search, an "earliest" search will returnÁüÂ{IF the match location as early as possible. For example, given a patternÁü�|IF of `foo[0-9]+` and a haystack of `foo12345`, a normal leftmost searchÁüÞ|IF will return `foo12345` as a match. But an "earliest" search for regexÁü¬}EB engines that support "earliest" semantics will return `foo1` as aÁüö}JG match, since as soon as the first digit following `foo` is seen, it isÁüÅ~  known to have found a match.Áê~�üò~HE Note that "earliest" semantics generally depend on the regex engine.Áü¿GD Different regex engines may determine there is a match at differentÁü‹€HE points. So there is no guarantee that "earliest" matches will alwaysÁüØ€HE return the same offsets for all regex engines. The "earliest" notionÁü¥�HE is really about when the particular regex engine determines there isÁüò�HE a match rather than a consistent semantic unto itself. This is oftenÁü¿‚FC useful for implementing "did a match occur or not" predicates, butÁüŠƒ+( sometimes the offset is useful as well.Áºƒ�üƒ Œž7çƒ�l£/�„�ü‰„FC This example shows the difference between "earliest" searching andÁ¬Ô„ normal searching.Áî„�<ö„ä¤/ü‚…F´®MÍ…�üÕ…(ÂñIü‚†&Ê›0ü­†(û›0Ú†�üâ†=: // A normal search implements greediness like you expect.Áü¤‡'$ let input = Input::new("foo12345");ÁüЇ-ëñGü‚ˆ=: assert_eq!(Some(Match::must(0, 0..8)), caps.get_match());ÁĈ�ü̈?< // When 'earliest' is enabled and the regex engine supportsÁü�‰>; // it, the search will bail once it knows a match has beenÁlÓ‰ // found.Áüå‰63 let input = Input::new("foo12345").earliest(true);Áü Š-ëñGüÒŠ=: assert_eq!(Some(Match::must(0, 0..4)), caps.get_match());Áü”‹.Ǭ/<Ç‹ä¤/Dè‹¿�¿�Bÿ×× à¸$õ‹ê‘z üÓ’2üÍŒ/, Set the span for this search configuration.Á���ü‰�DA This is like the [`Input::span`] method, except this mutates theÁ”Ò� span in place.Áé��üñ�>–á\ü´Ž<Þá\ìõŽ `std::ops::Range`.Á—��dŸ�úë0°��ü¸�Héä\ü…�0»å\º��lÂ�•£/Ô��<Ü�ä¤/ôè�É�]‹‘�ü“‘)& let mut input = Input::new("foobar");ÁüÁ‘(‹‚]Ìî‘ input.set_span(2..4);ÁüŒ’(% assert_eq!(2..4, input.get_range());Á<¹’ä¤/DÚ’îC îC¿�Ãð)Bÿ×�ââ ò’×úú\ ã’‹û\Tæ’ á¸Ãð)$÷’Åœõ} .0ü¹ž<ü¾•?< Set the span for this search configuration given any range.Á‚–�üŠ–EB This is like the [`Input::range`] method, except this mutates theÁ”Ô–óº]ë–�üó–K¦û\ü×HØß\ü�˜Iªà\TÞ˜¾¾7í˜�dõ˜úë0†™�üŽ™Eåý\üØ™B´þ\üŸšE€ÿ\üéš!Ïÿ\�›�ü—›JG This also panics if the given span does not correspond to valid boundsÁüæ›3Û€]žœ�l¦œ•£/¸œ�<Àœä¤/ôÌœÉ�]ïœ�ü÷œ)ù¼]ü¥�(‹‚]ÜÒ� input.set_range(2..=4);Áüò�(…ƒ]<Ÿžä¤/LÀžïC ïC¿�”ò)Bÿ׎ää áž×ÿ„] Êž�…]”Íž 㸔ò)$æžÙœ�ƒ .0„„Ÿ,�Ÿü�«)üÞ¥GD Set the starting offset for the span for this search configuration.Áª¦�ü²¦GD This is a convenience routine for only mutating the start of a spanÁüþ¦*' without having to set the entire span.Á­§�dµ§úë0Ƨ�üΧJG This panics if the span resulting from the new start position does notÁü�¨FC correspond to valid bounds in the haystack or the termination of aÁ\è¨è­Pø¨�l€©•£/’©�<š©ä¤/ô¦©É�]É©�üÑ©)ù¼]üÿ©(‹‚]¼¬ª input.set_start(5);ÁüȪ(% assert_eq!(5..6, input.get_range());Á<õªä¤/L–«ðC ðC¿�Bÿ×  «× æ¸$¥«‚J† ü©±%ü€¬EB Set the ending offset for the span for this search configuration.Áʬ�üÒ¬EB This is a convenience routine for only mutating the end of a spanÁüœ­*šÇ]Ë­�dÓ­úë0ä­�üì­HE This panics if the span resulting from the new end position does notÁü¹®FÌÈ]\„¯è­P”¯�lœ¯•£/®¯�<¶¯ä¤/ô¯É�]å¯�üí¯)ù¼]ü›°(‹‚]¬È° input.set_end(5);Áüâ°(% assert_eq!(0..5, input.get_range());Á<�±ä¤/<°±ñC ñC¿�Bÿ× ¸±× ç¸$½±’j‡ üÀ¶.ü”²$! Set the anchor mode of a search.Á½²�üŲB? This is like [`Input::anchored`], except it mutates the searchÁÜŒ³ configuration in place.Á¬³�l´³•£/Ƴ�<γä¤/üÚ³52 use regex_automata::{Anchored, Input, PatternID};Á”´�üœ´)ù¼]üÊ´30 assert_eq!(Anchored::No, input.get_anchored());Á‚µ�üе! let pid = PatternID::must(5);Áü°µ/, input.set_anchored(Anchored::Pattern(pid));Áüäµ=: assert_eq!(Anchored::Pattern(pid), input.get_anchored());Á<¦¶ä¤/dǶòC òC¿�Ø¥Bÿ× Ô¶× è¸$Ù¶¾»ˆ üäº)üš·DA Set whether the search should execute in "earliest" mode or not.Áã·�üë·B? This is like [`Input::earliest`], except it mutates the searchÁܲ¸ùÑ]Ò¸�lÚ¸•£/ì¸�<ô¸ä¤/ô€¹É�]£¹�ü«¹)ù¼]üÙ¹# assert!(!input.get_earliest());Áì�º input.set_earliest(true);Áü£º" assert!(input.get_earliest());Á<ʺä¤/dëºóC óC¿�Bÿ× øº× é¸$ýºê’ˆ üν"ü¸»C@ Return a borrow of the underlying haystack as a slice of bytes.Á€¼�lˆ¼•£/š¼�<¢¼ä¤/ô®¼É�]Ѽ�üÙ¼%üË4üƒ½,) assert_eq!(b"foobar", input.haystack());Á<´½ä¤/DÕ½ôC ôC¿� ¸ÈšBÿ× Þ½× ê¸$ß½äŽÃü”¾-* Return the start position of this search.Áƾ�üξB? This is a convenience routine for `search.get_span().start()`.Á•¿�ü�¿DA When [`Input::is_done`] is `false`, this is guaranteed to returnÁüæ¿FC an offset that is less than or equal to [`Input::end`]. Otherwise,Áü±À2/ the offset is one greater than [`Input::end`].ÁèÀ�lðÀ•£/‚Á�<ŠÁä¤/ô–ÁÉ�]¹Á�üÁÁ%üË4üëÁ! assert_eq!(0, input.start());Á‘Â�ü™Â0- let input = Input::new("foobar").span(2..4);ÁüÎÂ! assert_eq!(2, input.start());Á<ôÂä¤/,•ÃõC õC¿�Bÿ× ›Ã× ë¸$œÃÔóÇüÖÃ+( Return the end position of this search.Á†Ä�üŽÄ@= This is a convenience routine for `search.get_span().end()`.ÁÓÄ�üÛÄHE This is guaranteed to return an offset that is a valid exclusive endÁü¨Å$! bound for this input's haystack.ÁÑÅ�lÙÅ•£/ëÅ�<óÅä¤/ôÿÅÉ�]¢Æ�üªÆ%üË4üÔÆ assert_eq!(6, input.end());ÁøÆ�ü€Ç0 á]üµÇ assert_eq!(4, input.end());Á<ÙÇä¤/úÇöC öC¿�Bÿ× þÇ× ì¸$ÿÇôßÌü·È2/ Return the span for this search configuration.ÁîÈ�üöÈJG If one was not explicitly set, then the span corresponds to the entireÁÔÅÉ range of the haystack.ÁäÉ�üìÉGD When [`Input::is_done`] is `false`, the span returned is guaranteedÁü¸Ê<9 to correspond to valid bounds for this input's haystack.ÁùÊ�l�Ë•£/“Ë�<›Ëä¤/ü§Ë&# use regex_automata::{Input, Span};ÁÒË�üÚË%üË4ü„Ì<9 assert_eq!(Span { start: 0, end: 6 }, input.get_span());Á<ÅÌä¤/DæÌ÷C ÷C¿�ÅžBÿ× ïÌ× í¸$ðÌüµÑ'ü�Í=: Return the span as a range for this search configuration.ÁßÍ�üçÍJ–è]Ô¶Îêè]ÕÎ�üÝÎHE When [`Input::is_done`] is `false`, the range returned is guaranteedÁüªÏ<îé]ëÏ�lóÏ•£/…Ð�<�Ðä¤/ô™ÐÉ�]¼Ð�üÄÐ%üË4üîÐ(‹‚]<›Ñä¤/L¼ÑøC øC¿�… Bÿ× ÆÑ× î¸$ÇÑü±Ö&üŠÒ;8 Return the anchored mode for this search configuration.ÁÊÒ�üÒÒFC If no anchored mode was set, then it defaults to [`Anchored::No`].Á�Ó�l¥Ó•£/·Ó�<¿Óä¤/üËÓ5ÕÒ]…Ô�ü�Ô)ù¼]ü»Ô3±Ó]óÔ�üûÔ!üÓ]ü¡Õ/¨Ô]üÕÕ=âÔ]<—Öä¤/d¸ÖùC ùC¿�Ø¥Bÿ× ÅÖ× ï¸$ÆÖü†Ù"üûÖA> Return whether this search should execute in "earliest" mode.ÁÁ×�lÉו£/Û×�<ã×ä¤/ôï×É�]’Ø�üšØ%üË4üÄØ#ºØ]<ìØä¤/d�ÙúC úC¿�Bÿ× šÙ× ð¸$›ÙìãÝüÌÙEB Return true if and only if this search can never return any otherÁd–Ú matches.Á§Ú�ü¯ÚJG This occurs when the start position of this search is greater than theÁüþÚ end position of the search.Á¢Û�lªÛ•£/¼Û�<ÄÛä¤/ôÐÛÉ�]óÛ�üûÛ)ù¼]ô©Ü assert!(!input.is_done());Á¼ÌÜ input.set_start(6);ÁôèÜÞø]¼‹Ý input.set_start(7);Áì§Ý assert!(input.is_done());Á<ÉÝä¤/<êÝûC ûC¿�Bÿ× òÝ× ñ¸$óÝü”ä5üÂÞJG Returns true if and only if the given offset in this search's haystackÁü‘ß63 falls on a valid UTF-8 encoded codepoint boundary.ÁÌß�üÔßIF If the haystack is not valid UTF-8, then the behavior of this routineÁœ¢à is unspecified.Áºà�lÂà•£/Ôà�üÜàEB This shows where codepoint boundaries do and don't exist in validÁT¦á‹ÙGµá�<½áä¤/ôÉáÉ�]ìá�üôá"ë°4ü›â'$ assert!(input.is_char_boundary(0));ÁüÇâ(% assert!(!input.is_char_boundary(1));Áüôâ(% assert!(!input.is_char_boundary(2));Áü¡ã'$ assert!(input.is_char_boundary(3));ÁüÍã(% assert!(!input.is_char_boundary(4));Á<úãä¤/„›äüC üC¿�Bÿ× ¬ä× ò¸$­äÑ Ž üˆå'¸ôô¿�õ gõ�åü¶å@¹åýCþCÿC ýC¿� þC€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ÿC­àBÿó ½åó õ¸$¾åœ Äåü…æ"lšæü®è;¸ø„ùøùòÞ\4ºèƒß\\Ãè¿�ú®ú³è ·èüðè%$ó豞¿�Bÿ÷÷ ú¸·žý�¿Ž LÅñÅžüýþÿ€ü‰ò#üÕñ! Returns this span as a range.Á,�ò†D †DÅž… Bÿû –òû —*$—òô¯óüÕòGD Returns true when this span is empty. That is, when `start >= end`.ÁD¶ó‡D ‡DÅžBÿû ¿óûä¨*$ÀóÔ‰õüúó$! Returns the length of this span.Á£ô�ü«ôKH This returns `0` in precisely the cases that `is_empty` returns `true`.Á�õˆD ˆDÅžBÿû ”õûò�$•õü—÷-üÝõEB Returns true when the given offset is contained within this span.Á§ö�ü¯öFC Note that an empty span contains no offsets and will always returnÁTúö false.ÁDž÷‰D ‰DÅžBÿû §÷û ÿ$¨÷Ñ Д ü‡ù+ü™øKH Returns a new span with `offset` added to this span's `start` and `end`Á\éø values.Á4ŽùŠD ŠDŞŞBÿû •ùû €$–ùÑ – ô‚úÅž‚ g‚ü§ú@ªú‹DŒD�D ‹DÅž ŒD€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡�D­àBÿ� ®ú� ‚$¯úœ µúü¥û$Èš„…�ý‘ý…\Ðû4ÕûƒƒÈšü÷û%,úû€ŽD ŽDȚŞÄ�^Bÿƒ €üƒ …$�ü÷— üÅü'Èš‡ª#‡ü�ý1L„ý€�D �DȚŞȑ^Bÿ† Žý† ‡$“ý÷˜ üßý#‰Š�ý‘ýŠ\‰þ4Žþˆˆü¯þ$,²þ€�D �DÅží’^Bÿˆ ¸þˆ Š$¹þ÷™ üüþ ÅžŒ®Œü±ÿ$$´ÿ… ÅžBÿ‹‹ ŒÙœÆ™ ü•€ … Ž®ŽüÊ€#$̀Ş… Bÿ�� ŽÅœoš ü¬�%Åž�ù±�üæ�*é�‘D’D ‘DÅž ’D… Bÿ� ì�� �$í�ÙœŒ› üׂ%… ’ù±’ü‘ƒ!”ƒ“D”D “D…  ”DÅžBÿ‘ —ƒ‘ ’$˜ƒÅœÉœ tÜ‹ö ”•–—üÄŒ:üñ‹@= Create a new half match from a pattern ID and a byte offset.ÁËŒ›†ö Bÿ““¡þîN¢ Ñ )¢ üÀ�7ü²�@Ç–^÷��üÿ�GD This is like [`HalfMatch::new`], but accepts a `usize` instead of aÁüËŽHE [`PatternID`]. This panics if the given `usize` is not representableÁ¬˜� as a `PatternID`.Á$Ç�ö Bÿ““ •îN£ Ñ !£ üò’"üÆ�/, Returns the ID of the pattern that matched.Áú��ü‚‘DA The ID of a pattern is derived from the position in which it wasÁüË‘IF originally inserted into the corresponding DFA. The first pattern hasÁü™’FC identifier `0`, and each subsequent pattern is `1`, `2` and so on.Á<ù’žD žDö ›†Bÿ“ �““ú¢ $‚“줕ô·“ The position of the match.ÁÚ“�üâ“FC If this match was produced by a forward search, then the offset isÁü­”GD exclusive. If this match was produced by a reverse search, then theÁÄù” offset is inclusive.Á4«•ŸD ŸDö Bÿ“ ²•“²å$³•Tû›‹¢™›�žŸ ¡¢£üä¡?üŒœ41 Create a new match from a pattern ID and a span.ÁÅœ�üÍœB? This constructor is generic over how a span is provided. WhileÁü”�<Þá\ìÕ�º»]÷��dÿ�úë0�ž�ü˜ž! This panics if `end < start`.Á¾ž�lÆž•£/Øž�üàžEB This shows how to create a match for the first pattern in a regexÁüªŸ)& object using convenient range syntax.ÁØŸ�<àŸä¤/üìŸ+( use regex_automata::{Match, PatternID};Áœ �ü¤ /, let m = Match::new(PatternID::ZERO, 5..10);ÁüØ *' assert_eq!(0, m.pattern().as_usize());Á쇡 assert_eq!(5, m.start());Áä©¡ assert_eq!(10, m.end());Á<Ê¡ä¤/ë¡›†ÁÓ*‹¢Bÿ˜�šš˜þÆÁÓ* ï¡©ÁÓ*ÅžTò¡ø×*îNbª Åœmª .0üت<ü¶£@= Create a new match from a pattern ID and a byte offset span.Áû£�üƒ¤Bè ^üʤ<Þá\ì‹¥º»]­¥�üµ¥C@ This is like [`Match::new`], but accepts a `usize` instead of aÁüý¥H͘^¬Ê¦Ÿ™^ä¦�dì¦úë0ý¦�ü…§B? This panics if `end < start` or if `pattern > PatternID::MAX`.Á̧�lÔ§•£/æ§�üî§EB This shows how to create a match for the third pattern in a regexÁü¸¨)ž£^æ¨�<î¨ä¤/ôú¨ use regex_automata::Match;Á�©�ü¥©" let m = Match::must(3, 5..10);ÁüÌ©*' assert_eq!(3, m.pattern().as_usize());Áìû©ž¥^ä�ªÅ¥^<¾ªä¤/$ߪÁÓ*‹¢Bÿ˜�œœ˜´§^ äªƧ^Tçª ›ÁÓ*îNó« Åœþ« (*ü’®"üÕ«/�š^‰¬�ü‘¬DÔš^üÚ¬FC originally inserted into the corresponding regex engine. The firstÁü¥­KH pattern has identifier `0`, and each subsequent pattern is `1`, `2` andÁTõ­ so on.Á<™®©D ©D‹¢›†Bÿ˜ ¡®˜»ý$¢®äÚ¯ü×®'$ The starting position of the match.Áƒ¯�ü‹¯<9 This is a convenience routine for `Match::span().start`.Á,ᯪD ªD‹¢Bÿ˜ 篘ú„$è¯Ô�±üž°%" The ending position of the match.ÁȰ�üа:7 This is a convenience routine for `Match::span().end`.Á¤±«D «D‹¢Bÿ˜ ¨±˜õý$©±üá².üݱ&# Returns the match span as a range.Áˆ²�ü�²>; This is a convenience routine for `Match::span().range()`.Á,責D ¬D‹¢… Bÿ˜   $ï²Ôð³ü¹³$! Returns the span for this match.Á$÷³­D ­D‹¢ÅžBÿ˜ ü³˜×Ú*$ý³ôáµüª´63 Returns true when the span in this match is empty.Áå´�üí´GD An empty match can only be returned when the regex itself can matchÁ¬¹µ the empty string.ÁDèµ®D ®D‹¢Bÿ˜ ñµ˜”ÿ$òµÔ¼·ü¬¶%" Returns the length of this match.ÁÖ¶�üÞ¶Kö‡^÷¯D ¯D‹¢Bÿ˜ Ç·˜ £$È·|£ÉÓ«Œ�É̉É¡£¥¦§¨©ª«¬­®ü×Î)ü¹ÉDA Create a new set of pattern identifiers with the given capacity.Á‚Ê�üŠÊHE The given capacity typically corresponds to (at least) the number ofÁü×Ê(% patterns in a compiled regex object.Á„Ë�dŒËúë0�Ë�ü¥ËKH This panics if the given capacity exceeds [`PatternID::LIMIT`]. This isÁüõËIF impossible if you use the `pattern_len()` method as defined on any ofÁüÃÌJG the regex engines in this crate. Namely, a regex will fail to build byÁü’ÍHE returning an error if the number of patterns given to it exceeds theÁüßÍGD limit. Therefore, the number of patterns in a valid regex is alwaysÁü«Î'$ a correct capacity to provide here.ÁÞΡ£Bÿ¤¤ ¥ïŒDâμÞÑü¡Ñ85 Clear this set such that it contains no pattern IDs.Á,åÑ·D ·D¡£Bÿ¤ ëѤ ¦$ðÑüÀÓ.üðÒKH Return true if and only if the given pattern identifier is in this set.ÁDÇÓ¸D ¸D¡£›†Bÿ¤ ÐÓ¤ §$ÑÓ¾¾×Óüý×0ü¸ÔJG Insert the given pattern identifier into this set and return `true` ifÁü‡Õ85 the given pattern ID was not previously in this set.ÁÄÕ�üÌÕKH If the pattern identifier is already in this set, then this is a no-op.ÁœÖ�ü¤ÖJG Use [`PatternSet::try_insert`] for a fallible version of this routine.ÁóÖ�dûÖúë0Œ×�ü”×@= This panics if this pattern set has insufficient capacity toÁüÙ× store the given pattern ID.Á4„عD ¹D¡£›†Bÿ¤ ‹Ø¤îŽ$�ؾ¾–Øü’ÜjüšÙJ®Ã^üéÙ8ƒÄ^¦Ú�ü®ÚKÓÄ^þÚ�d†Û•£1—Û�üŸÛJG This returns an error if this pattern set has insufficient capacity toÁüîÛþÆ^T™ÜºD ºD¡£›†÷¦ Bÿ¤ ­Ü¤¥£ $²Ü¾¾ÀÜô‹çü½æIF Return true if and only if this set has no pattern identifiers in it.ÁD’ç»D »D¡£Bÿ¤ ›ç¤ ª$œçìÑìüÏçIF Return true if and only if this set has the maximum number of patternÁü�èIF identifiers in the set. This occurs precisely when `PatternSet::len()Áüëè == PatternSet::capacity()`.Á�é�ü—éJG This particular property is useful to test because it may allow one toÁüæéJG stop a search earlier than you might otherwise. Namely, if a search isÁüµêIF only reporting which patterns match a haystack and if you know all ofÁüƒëHE the patterns match at a given point, then there's no new informationÁüÐëHE that can be learned by continuing the search. (Because a pattern setÁü�ì/, does not keep track of offset information.)Á<Øì¼D ¼D¡£Bÿ¤ àì¤è£ $áìÔçíü¢í@= Returns the total number of pattern identifiers in this set.Áîí½D ½D¡£Bÿ¤ òí¤ ¬$óíüåðü îFC Returns the total number of pattern identifiers that may be storedÁ„ëî in this set.Á€ï�üˆïHE This is guaranteed to be less than or equal to [`PatternID::LIMIT`].ÁÕï�üÝïKH Typically, the capacity of a pattern set matches the number of patternsÁü­ð30 in a regex object with which you are searching.ÁDìð¾D ¾D¡£Bÿ¤ õ𤠭$öðü×ò(ü«ñA> Returns an iterator over all pattern identifiers in this set.Áññ�üùñHE The iterator yields pattern identifiers in ascending order, startingÁdÆò at zero.Á$Þò¿D ¿D¡£ž-ž-ô½ -ÛËÏSöE°ç(6¿DBÿ¤ ãò¤ ®$äòüòö0Ó‰|àö¼Úö–¤üÁ÷1Ó«Œ­÷̧÷–¤±¥g±üù÷@ü÷ÄDÅDÆD ÄD–¤ ÅD€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ÆD­àBÿ° €ø° ±$�øœ ‡øü¸ý(Ó«Œ¤ýÌžýij³ú¤´µ¶ÅQÆQÊQ¶µ½ýLçý$ìý²²›†üƒþ'$†þËD ËDú¤€ªBÿ² ‹þ² µÄ$�þü¡‚-L¤‚ÌD ÌDú¤Öè>Bÿ² ®‚² ¶Ä$¯‚ü�ƒ3Ó«Œü‚Ìö‚ĸ¸ú¤¹ÕP¹•ƒüʃ,L̓ÍD ÍDú¤€ªBÿ· ׃· ¹Ä$܃lº­Ø¥»¼üÙ±!üέKH Returns true if and only if this anchor mode corresponds to any kind ofÁ¤ž® anchored search.Á·®�l¿®•£/Ñ®�üÙ®IF This examples shows that both `Anchored::Yes` and `Anchored::Pattern`Áü§¯%" are considered anchored searches.Áѯ�<Ù¯ä¤/üå¯.+ use regex_automata::{Anchored, PatternID};Á˜°�ü °)& assert!(!Anchored::No.is_anchored());Áüΰ)& assert!(Anchored::Yes.is_anchored());Áüü°>; assert!(Anchored::Pattern(PatternID::ZERO).is_anchored());Á<¿±ä¤/\à±ÕD ÕDØ¥Bÿº 챺ù† $í±ü¹¶*üƲIF Returns the pattern ID associated with this configuration if it is anÁü”³IF anchored search for a specific pattern. Otherwise `None` is returned.Áâ³�l곕£/ü³�<„´ä¤/ü�´.íá^ô�üË´-* assert_eq!(None, Anchored::No.pattern());Áüý´.+ assert_eq!(None, Anchored::Yes.pattern());Á°µ�ü¸µ!üÓ]üÞµ<9 assert_eq!(Some(pid), Anchored::Pattern(pid).pattern());Á<Ÿ¶ä¤/<À¶ÖD ÖDØ¥€ªBÿº ȶº ¼$ɶt¡íù¦¾üÔí6Ó«Œ¼í̶íÌâíÞD ÞDù¦Bÿ½ üí½ ¾$ýí|ĄۆÀÁÂÃÄÅü„†.üÚ„1. Create a new error value with the given kind.Á�…�ü˜…EB This is a more verbose version of the kind-specific constructors,Áìâ… e.g., `MatchError::quit`.Á‹†ȨÛ†Bÿ¿¿ À¦$�†ü½ˆ%üƒˆ52 Returns a reference to the underlying error kind.Á$ĈæD æDÛ† æDȨBÿ¿ Ɉ¿ Á$ʈüÄ‹2ü€‰HE Create a new "quit" error. The given `byte` corresponds to the valueÁü͉KH that tripped a search's quit condition, and `offset` corresponds to theÁü�Š63 location in the haystack at which the search quit.ÁØŠ�üàŠ85 This is the same as calling `MatchError::new` with aÁü�‹" [`MatchErrorKind::Quit`] kind.Á$ˋۆBÿ¿¿…á —»$ЋÑ 4Ú‹ü»Ž+üÃŒGD Create a new "gave up" error. The given `offset` corresponds to theÁü��96 location in the haystack at which the search gave up.ÁÍ��üÕ�8Äï^ü’Ž$! [`MatchErrorKind::GaveUp`] kind.Á<ÂŽÛ†Bÿ¿¿Ëß Ñ 4ÊŽü®‘2ü¯�JG Create a new "haystack too long" error. The given `len` corresponds toÁüþ�41 the length of the haystack that was problematic.Á·��ü¿�8Äï^üü�-* [`MatchErrorKind::HaystackTooLong`] kind.ÁŒµ‘Û†Bÿ¿¿ ĶǑüÚ”9ü¯’JG Create a new "unsupported anchored" error. This occurs when the callerÁüþ’FC requests a search with an anchor mode that is not supported by theÁŒÉ“Þ¨>ß“�üç“8Äï^ü¤”1. [`MatchErrorKind::UnsupportedAnchored`] kind.Á¤á”Ø¥Û†Bÿ¿¿†Þ ¾»$ö”üëª%Ó‰|Ùª¼ÓªÛ†ü•«&ۆȥgÈü«@Å«îDïDðD îDÛ† ïD€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ðD­àBÿÇ É«Ç È$Ê«œ ЫÌÞ;Ó«ŒÊ;ÌÄ;Tí;ë-ò-ø-ù-–Ó0Ð=ÉË–ÉËüÝ0…CÉ̵¢<�0î)ÉÍ,Ë0TVDØ04üè 0%|Õ 0�ªÏÐÑÒÓüŽ 00œ 0�ªBÿÎÎ ÏïŒD  0üš404¨0õD õD�ªBÿÎ ¯0Î Ð$´0 new_capacityÁdº0ôÌ0,Ú0öD öD�ªBÿÎ à0Î Ñ$å0ìË0$Ù0÷D ÷D�ªBÿÎ Þ0Î Ò$ã0üý*0d‹0øD øD�ªBÿÎ ˜0Î Ó$™0tÔ0ݪÕÖרÙÚÛÜÝÞü¾ /0Ì 0ݪBÿÔÔ ÕïŒDÐ 0üÄ#404Ò#0úD úDݪBÿÔ Ù#0Ô Ö$Þ#0áü^dä#0üý'&0D‹(0ûD ûDݪBÿÔ ”(0Ô ×$•(0üŒ)!0š)0üD üDݪBÿÔ ž)0Ô Ø$Ÿ)0ü‘*%0DŸ*0ýD ýDݪBÿÔ ¨*0Ô Ù$©*0üù.404‡/0þD þDݪÇBÿÔ Ž/0Ô Ú$“/0ˆC™/0ü¬420Dº40ÿD ÿDݪÇBÿÔ Ã40Ô Û$Ä40ˆCÊ40ô”60,¢60€E €EݪBÿÔ ¨60Ô Ü$­60üä6.0$ò60�E �Eݪø-ø-ù-ÝÃû-óÉ ë …ÒÍ_�EBÿÔ ÷60Ô Ý$ø60ü¯8*0d½80‚E ‚EݪBÿÔ Ê80Ô Þ$Ë80ü²9#0ݪà gàüÜ9@0ß90ƒE„E…E ƒEݪ „E€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡…E­àBÿß ã90ß à$ä90œ ê90üü<'0Äââ¶«ãäÅQÆQä�=0Lª=0$¯=0ááÇüý=%0$€>0‰E ‰E¶«ŠöBÿá …>0á äÄ$Š>0Üù;dˆ;œ–;$¥;çíîïðñü¥)1d³1Bÿ‡Ÿ#˜cÞ üÕ#1LÞ1æÌÊ%Bÿ‘Î+ô1å1èè¼› 1$¡ 1æÌÊ%® 1ü˜>14¦1ŠE ŠEÈšи#Bÿ ´1è³#öÆWí üÒC1\à1‹E ‹EÈšи#Bÿ ó1÷®#öÆ õ üª!1­1æØÚBÿÁÐ+—»tù üë91\ù1ŒE ŒEÈšBÿ Œ1Ü*öÆ-û Ÿ6û üù&,1Ôü&1æBÿóä+˜ü Œ‰ü˜>; The configuration used for building a [one-pass DFA](DFA).Á×�üÛOL A one-pass DFA configuration is a simple data object that is typically usedÁü«:7 with [`Builder::configure`]. It can be cheaply cloned.Áæ�üêHE A default configuration can be created either with `Config::new`, orÁü³41 perhaps more conveniently, with [`DFA::config`].Á4”Ñæˆ]ºuíÜŠŸóôõöì¡T¡ òòÞ×üÄ%¼Ä òòߨÔïdï òòߨü�!T� òò“ÚF­ñÑæø†øF­F­ÿ- ÿ-ÑæÑæBÿ÷ñ÷ øF­ ®òÑæú gú ® ®€.�.‚. €.Ñæ �.€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡‚.­àBÿùøù ú ®œ ®æ±óÑæü÷üæ±æ±ÑæBÿûû ü”Ânüž^(% A builder for a [one-pass DFA](DFA).ÁÇ^�üË^MJ This builder permits configuring options for the syntax of a pattern, theÁü™_OL NFA construction and the DFA construction. This builder is different from aÁüé_MJ general purpose regex builder in that it permits fine grain configurationÁü·`JG of the construction process. The trade off for this is complexity, andÁü‚aMJ the possibility of setting a configuration that might not make sense. ForÁüÐa1. example, there are two different UTF-8 modes:Á‚b�ü†bJG * [`syntax::Config::utf8`](crate::util::syntax::Config::utf8) controlsÁüÑbMJ whether the pattern itself can contain sub-expressions that match invalidÁTŸc‹ÙGüªcLI * [`thompson::Config::utf8`] controls whether empty matches that split aÁü÷c*' Unicode codepoint are reported or not.Á¢d�ü¦dJG Generally speaking, callers will want to either enable all of these orÁÌñd disable all of these.Á‹e�l�e•£/�e�ü¡eKH This example shows how to disable UTF-8 mode in the syntax and the NFA.ÁüíeDA This is generally what you want for matching on arbitrary bytes.Á²f�<¶fä¤/ü¾f=ÔÂ/Ìüfô¤/Ô–gîƒ0´±gñ¡0¬Èg‘¢0tÞg·„04ígÝ¥/ôg�Üøgø¥/ü”h2è¢0üÇh6¥£0üþh&æ£0ü¥iJœ§/ði�üôi0³¤0ü¥j1§¥0ü×j63 // Notice that `(?-u:[^b])` matches invalid UTF-8,ÁüŽk85 // but the subsequent `.*` does not! Disabling UTF-8ÁüÇk" // on the syntax permits this.Á4êkÅ·0üñk41 // N.B. This example does not show the impact ofÁü¦l52 // disabling UTF-8 mode on a one-pass DFA Config,ÁüÜl0- // since that only impacts regexes that canÁü�m# // produce matches of length 0.Áü±m=Õµ]ïm�üóm.Ǭ/<¢nä¤/<Ín½çE§5tá{ÂþÿtÛn4Ûn ýýÑæäŽoÓí”õnÔïnDŽo ýý·¬ê²ô½ç�†�ê²ê²ˆ. ˆ.½ç½çBÿ€³n€ �ê²€³õ½çƒ gƒ€³€³‰.Š.‹. ‰.½ç Š.€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡‹.­àBÿ‚ºn‚ ƒ€³œ€³ÔÒ›|Ù› Ä……ˆè&2–�zûg醇ˆ‰Š‹Œ�Žé›D“œ“œ „„¡éüåŸ ”åŸ „„•öܬ£l¬£ „„•öüõ¦,õ¦ „„£÷|ا$ا „„ݪlü©<ü© „„tëª4ëª „„Ñædâ«â« „„¹ì/¤ï¬<ï¬ „„ªÓ-ºöÄ��ˆè‘ g‘9<-º-º”.•.–. ”.ˆè •.€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡–.­àBÿ�Ê›� ‘Ä-ºœ-ºtÃü‚ÉJG A one-pass DFA for executing a subset of anchored regex searches whileÁüÍÉ resolving capturing groups.ÁíÉ�üñÉGD A one-pass DFA can be built from an NFA that is one-pass. An NFA isÁü¹ÊNK one-pass when there is never any ambiguity about how to continue a search.ÁüˆËHE For example, `a*a` is not one-pass because during a search, it's notÁüÑËKH possible to know whether to continue matching the `a*` or to move on toÁü�ÌMJ the single `a`. However, `a*b` is one-pass, because for every byte in theÁüëÌ>; input, it's always clear when to move on from `a*` to `b`.ÁªÍ�ü®Í*' # Only anchored searches are supportedÁÙÍ�üÝÍNK In this crate, especially for DFAs, unanchored searches are implemented byÁü¬ÎMJ treating the pattern as if it had a `(?s-u:.)*?` prefix. While the prefixÁüúÎNK is one-pass on its own, adding anything after it, e.g., `(?s-u:.)*?a` willÁüÉÏNK make the overall pattern not one-pass. Why? Because the `(?s-u:.)` matchesÁü˜ÐKH any byte, and there is therefore ambiguity as to when the prefix shouldÁüäÐ;8 stop matching and something else should start matching.Á Ñ�ü¤ÑLI Therefore, one-pass DFAs do not support unanchored searches. In additionÁüñÑLI to many regexes simply not being one-pass, it implies that one-pass DFAsÁü¾ÒMJ have limited utility. With that said, when a one-pass DFA can be used, itÁüŒÓJG can potentially provide a dramatic speed up over alternatives like theÁü×ÓOL [`BoundedBacktracker`](crate::nfa::thompson::backtrack::BoundedBacktracker)Áü§ÔLI and the [`PikeVM`](crate::nfa::thompson::pikevm::PikeVM). In particular,ÁüôÔMJ a one-pass DFA is the only DFA capable of reporting the spans of matchingÁ¬ÂÕ capturing groups.ÁØÕ�üÜÕLI To clarify, when we say that unanchored searches are not supported, whatÁÜ©Ö that actually means is:ÁÅÖ�üÉÖNK * The high level routines, [`DFA::is_match`] and [`DFA::captures`], alwaysÁ̘× do anchored searches.Áü²×LI * Since iterators are most useful in the context of unanchored searches,Áüÿ×,) there is no `DFA::captures_iter` method.Áü¬ØIF * For lower level routines like [`DFA::try_search`], an error will beÁüöØOL returned if the given [`Input`] is configured to do an unanchored search orÁüÆÙNK search for an invalid pattern ID. (Note that an [`Input`] is configured toÁü•ÚHE do an unanchored search by default, so just giving a `Input::new` isÁüÞÚ# guaranteed to return an error.)Á‚Û�¼†Û # Other limitationsÁžÛ�ü¢ÛHE In addition to the [configurable heap limit](Config::size_limit) andÁüëÛJG the requirement that a regex pattern be one-pass, there are some otherÁ„¶Ü limitations:ÁÇÜ�üËÜJG * There is an internal limit on the total number of explicit capturingÁü–ÝMJ groups that appear across all patterns. It is somewhat small and there isÁüäÝOL no way to configure it. If your pattern(s) exceed this limit, then buildingÁì´Þ a one-pass DFA will fail.ÁüÒÞNK * If the number of patterns exceeds an internal unconfigurable limit, thenÁü¡ßKH building a one-pass DFA will fail. This limit is quite large and you'reÁ¼íß unlikely to hit it.Áü…àMJ * If the total number of states exceeds an internal unconfigurable limit,ÁüÓàIF then building a one-pass DFA will fail. This limit is quite large andÁô�á you're unlikely to hit it.Á¼á�üÀá41 # Other examples of regexes that aren't one-passÁõá�üùáKH One particularly unfortunate example is that enabling Unicode can causeÁüÅâKH regexes that were one-pass to no longer be one-pass. Consider the regexÁü‘ãHE `(?-u)\w*\s` for example. It is one-pass because there is exactly noÁüÚãGD overlap between the ASCII definitions of `\w` and `\s`. But `\w*\s`Áü¢äLI (i.e., with Unicode enabled) is *not* one-pass because `\w` and `\s` getÁüïäOL translated to UTF-8 automatons. And while the *codepoints* in `\w` and `\s`Áü¿åMJ do not overlap, the underlying UTF-8 encodings do. Indeed, because of theÁü�æMJ overlap between UTF-8 automata, the use of Unicode character classes willÁüÛæIF tend to vastly increase the likelihood of a regex not being one-pass.Á¥ç�ü©ç63 # How does one know if a regex is one-pass or not?Áàç�üäçOL At the time of writing, the only way to know is to try and build a one-passÁü´èEB DFA. The one-pass property is checked while constructing the DFA.Áúè�üþèNK This does mean that you might potentially waste some CPU cycles and memoryÁüÍéOL by optimistically trying to build a one-pass DFA. But this is currently theÁü�êNK only way. In the future, building a one-pass DFA might be able to use someÁüìêLI heuristics to detect common violations of the one-pass property and bailÁŒ¹ë more quickly.ÁËë�¤Ïë # Resource usageÁäë�üèëLI Unlike a general DFA, a one-pass DFA has stricter bounds on its resourceÁüµìFC usage. Namely, construction of a one-pass DFA has a time and spaceÁüüìOL complexity of `O(n)`, where `n ~ nfa.states().len()`. (A general DFA's timeÁüÌíJG and space complexity is `O(2^n)`.) This smaller time bound is achievedÁü—îIF because there is at most one DFA state created for each NFA state. IfÁüáîMJ additional DFA states would be required, then the pattern is not one-passÁü¯ï and construction will fail.ÁÏï�üÓïKH Note though that currently, this DFA uses a fully dense representation.ÁüŸðNK This means that while its space complexity is no worse than an NFA, it mayÁüîðNK in practice use more memory because of higher constant factors. The reasonÁü½ñMJ for this trade off is two-fold. Firstly, a dense representation makes theÁü‹òMJ search faster. Secondly, the bigger an NFA, the more unlikely it is to beÁüÙòEB one-pass. Therefore, most one-pass DFAs are usually pretty small.ÁŸó�l£ó•£/±ó�üµóOL This example shows that the one-pass DFA implements Unicode word boundariesÁü…ôLI correctly while simultaneously reporting spans for capturing groups thatÁüÒôNK participate in a match. (This is the only DFA that implements full supportÁü¡õ! for Unicode word boundaries.)ÁÃõ�<Çõä¤/üÏõ=ÔÂ/ü�ö9…—1Çö�üËöGD let re = DFA::new(r"\b(?P\w+)[[:space:]]+(?P\w+)\b")?;Áü“÷Jœ§/Þ÷�üâ÷B? re.captures(&mut cache, "Шерлок ХолмÑ�", &mut caps);Áü¥ø>; assert_eq!(Some(Match::must(0, 0..23)), caps.get_match());ÁüäøIF assert_eq!(Some(Span::from(0..12)), caps.get_group_by_name("first"));Áü®ùIF assert_eq!(Some(Span::from(13..23)), caps.get_group_by_name("last"));Áüøù.Ǭ/<§úä¤/¯ú�ijú # Example: iterationÁÌú�üÐúGD Unlike other regex engines in this crate, this one does not provideÁü˜ûKH iterator search functions. This is because a one-pass DFA only supportsÁüäûNK anchored searches, and so iterator functions are generally not applicable.Á³ü�ü·ü52 However, if you know that all of your matches areÁüíü85 directly adjacent, then an iterator can be used. TheÁü¦ýNK [`util::iter::Searcher`](crate::util::iter::Searcher) type can be used forÁŒõý this purpose:Á‡þ�<‹þä¤/ü“þ=ÔÂ/ÌÑþô¤/Ôëþîƒ0ì†ÿçÀSô¤ÿ Anchored, Input, Span,Á4ÃÿÝ¥/Êÿ�üÎÿ$! let re = DFA::new(r"\w(\d)\w")?;ÁüóÿF³‹Tüº€@= let input = Input::new("a1zb2yc3x").anchored(Anchored::Yes);Áû€�üÿ€NK let mut it = Searcher::new(input).into_captures_iter(caps, |input, caps| {ÁüÎ�30 Ok(re.try_search(&mut cache, input, caps)?)Á¤‚‚ }).infallible();Áü—‚# let caps0 = it.next().unwrap();Áü»‚;8 assert_eq!(Some(Span::from(1..2)), caps0.get_group(1));Á÷‚�üû‚.Ǭ/<ªƒä¤/ ΃¡éí¬‡2}¨<�“”•–—˜™š›œtŠ„4Š„ ’’ÑæD»†»† ’’�»´²Œ,²Œ ’’³…¤ �4 � ’’•ö¬Ï‘dÏ‘ ’’Ǥ˜“<˜“ ’’ªÓœ“•d“• ’’t†–<†– ’’¤ÜœlÜœ ’’ÔíŸœíŸ ’’ÜÃ÷¡éž†žÜÃÜÞ. ž.¡é¡éBÿ�"»ƒ� žÜÃü¼Ä(¤ÃÄ Ä  Êê6›âu5ôQJ¡¢ØÄüâÄ<âÄ ŸŸƒŠƒŠÜ‹…Š�Ð<†ŠŠÐ< 0{?i—�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫÄéëü¤Å!¤Å ŸŸªŽ‘�Ĥ¤Êꥠg¥þ‘‘ß.à.á. ß.Êê à.€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡á.­àBÿ£S´Ä£ ¥Ä‘œ‘„¥Óü›ÎNK A cache represents mutable state that a one-pass [`DFA`] requires during aÁ\êÎè­PöÎ�üúÎOL For a given one-pass DFA, its corresponding cache may be created either viaÁüÊÏNK [`DFA::create_cache`], or via [`Cache::new`]. They are equivalent in everyÁü™ÐIF way, except the former does not require explicitly importing `Cache`.ÁãÐ�üçÐKH A particular `Cache` is coupled with the one-pass DFA from which it wasÁü³ÑHE created. It may only be used with that one-pass DFA. A cache and itsÁüüÑNK allocations may be re-purposed via [`Cache::reset`], in which case, it canÁüËÒA> only be used with the new one-pass DFA (and not the old one).Á),°Ó�ëÉožá|˜^§¨üõÖ(tõÖ ¦¦‹½Ä…ÙŒ…Ù ¦¦ÅŽ�몆ªÅÅã. ã.�ë�ëBÿ©T–Ó© ªÅc ��묠g¬c c ä.å.æ. ä.�ë å.€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡æ.­àBÿ«U�Ó« ¬c œc Aü +T§ó éëÔí¤÷®¯éëBÿAü 8 éëBÿ­­ ®²ó ­­ü ü ü �éëü �é벆²ü ü í. í.éëéëBÿ±Wƒó± ²ü  XŠó‘éës ’éëµÎµs s s s î. î.éëBÿ´Y�ó´ µs ü “éëü “éë¸ù±¸ü ü ï.ð. ï.éë ð.éëBÿ·Z”ó· ¸ü î ü ‘ü 0|ý� êìÊŵ ª4º»êìBÿ‘ü 8 êìBÿ¹¹ º�Ž ¹¹œœœ˜ê윘ê쾆¾œœø. ø.êìêìBÿ½cè�½ ¾œ dï�™êìáü 5Dì¯ Äí––-ß[cÁÂÄíBÿáü 8 ÄíBÿÀÀ Áõ¯ ÀÀ‹‹‹žÄ틞Äíņŋ‹ü. ü.ÄíÄíBÿÄmׯÄ Å‹ nÞ¯ŸÄí1ý :,ˆÌ žîœÇ¨„Ðï�ÈÉžîBÿ1ý 8 žîBÿÇÇ ÈŽÌ ÇÇQQQ¤žîQ¤žî̆ÌQQ€/ €/žîžîBÿËwóËË ÌQ xúË¥žî„áÛ?LèÛ øî.h£ƒ(=«ÏdøÛ,øÛ ÎΞîˬøîÑ gÑËË…/†/‡/ …/øî †/€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡‡/­àBÿÐ…ÙÛРјˬ�äü„ßEB An error that occurred during the construction of a one-pass DFA.ÁÊß�üÎßJG This error does not provide many introspection capabilities. There areÁü™à1. generally only two things you can do with it:ÁËà�üÏàGD * Obtain a human readable message via its `std::fmt::Display` impl.Áü—áJG * Access an underlying [`thompson::BuildError`] type from its `source`ÁüâáOL method via the `std::error::Error` trait. This error only occurs when usingÁü²âLI convenience routines for building a one-pass DFA directly from a patternÁ\ÿâœíZ‹ã�ü�ãNK When the `std` feature is enabled, this implements the `std::error::Error`ÁTÞãŸËY@TŒä¸ïG±‰ž¾ÄÎÓ¤�ä$�ä ÒÒøï?­¸ïÕ†Õ??‰/ ‰/¸ï¸ïBÿÔ†òãÔ Õ?À®¸ï× g×ÀÀŠ/‹/Œ/ Š/¸ï ‹/€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Œ/­àBÿÖ‡ùãÖ ×ÀœÀœ�åAt¢å øïùO!;× ¤ÙÚÜÝßáãåçÚÛ×°øïBÿÝÞÏóøïBÿàâäæè�ý A�ý  ØØ Ú�ý �ý  ×°øïBÿØØâ™`ü»å  ØØ×°Òý AÒý  ØØ ÝÒý Òý  ÏóøïBÿØØך`Äçå ØØÏól†æA ØØøïT–æ,–æ ØØ|¨æA ØØøïTºæ,ºæ ØØ|ÌæA ØØøïTÞæ$Þæ ØØôíŒðæA ØØøïd„ç,„ç ØØT˜çA ØØøïŒ¥ç¥ç ØØ‹ 2ð¯øïê†êðð�/ �/øïøïBÿ鈎åé êð4°øïì gì44Ž/�/�/ Ž/øï �/€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡�/­àBÿ뉕åë ì4œ4Ô´IDÆ ëñí³Ñz­-…¼îïŒô ô Ôíí•öœÅ!4Å!Ôíí®ò!¸ëññ gñ!!™/š/›/ ™/ëñ š/€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡›/­àBÿð˜¬ð ñ!œ!”¬=J\³=Ô®òÜ<•:ï•·ÒótŽ?<Ž?Ôòò³"¹®òõ gõ³"³" /¡/¢/  /®ò ¡/€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡¢/­àBÿô™¤=ô õ³"œ³"t‰%üù DA A hybrid NFA/DFA (also called a "lazy DFA") for regex searching.Á¾�üÂKH A lazy DFA is a DFA that builds itself at search time. It otherwise hasÁüŽMJ very similar characteristics as a [`dense::DFA`](crate::dfa::dense::DFA).ÁüÜMJ Indeed, both support precisely the same regex features with precisely theÁœª same semantics.Á¾�üÂOL Where as a `dense::DFA` must be completely built to handle any input beforeÁü’NK it may be used for search, a lazy DFA starts off effectively empty. DuringÁüáNK a search, a lazy DFA will build itself depending on whether it has alreadyÁü°LI computed the next transition or not. If it has, then it looks a lot likeÁüýMJ a `dense::DFA` internally: it does a very fast table based access to findÁüËNK the next transition. Otherwise, if the state hasn't been computed, then itÁüšOL does determinization _for that specific transition_ to compute the next DFAÁTê¬ÿ8õ�üùEB The main selling point of a lazy DFA is that, in practice, it hasÁü¿HE the performance profile of a `dense::DFA` without the weakness of itÁüˆIF taking worst case exponential time to build. Indeed, for each byte ofÁüÒIF input, the lazy DFA will construct as most one new DFA state. Thus, aÁüœJG lazy DFA achieves worst case `O(mn)` time for regex search (where `m ~Áüç-* pattern.len()` and `n ~ haystack.len()`).Á•�ü™)& The main downsides of a lazy DFA are:ÁÃ�üÇIF 1. It requires mutable "cache" space during search. This is where theÁü‘41 transition table, among other things, is stored.ÁüÆKH 2. In pathological cases (e.g., if the cache is too small), it will runÁü’MJ out of room and either require a bigger cache capacity or will repeatedlyÁüàLI clear the cache and thus repeatedly regenerate DFA states. Overall, thisÁü­96 will tend to be slower than a typical NFA simulation.Áç�”ë # CapabilitiesÁþ�ü‚OL Like a `dense::DFA`, a single lazy DFA fundamentally supports the followingÁ|Ò operations:Áâ�äæ 1. Detection of a match.Áüƒ&# 2. Location of the end of a match.ÁüªNK 3. In the case of a lazy DFA with multiple patterns, which pattern matchedÁÄù is reported as well.Á’�ü–LI A notable absence from the above list of capabilities is the location ofÁüãIF the *start* of a match. In order to provide both the start and end ofÁü­NK a match, *two* lazy DFAs are required. This functionality is provided by aÁüü+( [`Regex`](crate::hybrid::regex::Regex).Á¨ �l¬ •£/º �ü¾ IF This shows how to build a lazy DFA with the default configuration andÁüˆ!OL execute a search. Notice how, in contrast to a `dense::DFA`, we must createÁüØ!.+ a cache and pass it to our search routine.Á‡"�<‹"ä¤/ü“"=¿ð2Ñ"�üÕ"%ÃÅ3üû"'©�0£#�ü§#/, let expected = Some(HalfMatch::must(0, 8));Áü×#,) assert_eq!(expected, dfa.try_search_fwd(Áü„$.ÅÆ34³$½µ0üº$.Ǭ/<é$ä¤/K”%ïò:”ê¥TÁ¢÷øùúûüýtž%4ž%ûöö¯ø”²%²%ûöö�»tÊ%<Ê%ûöö¼Þ%LÞ%ûööÅ�¤û%<û%ûööªÓ„•&<•&ûööÚ׬«&t«&ûöö¿&ºïòÿ†ÿ¿&¿&©/ ©/ïòïòBÿþšú$þ ÿ¿&*(»ïò� g�*(*(ª/«/¬/ ª/ïò «/€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡¬/­àBÿ€›�%€ �*(œ*(„ò¼üŒ¶0- A cache represents a partially computed DFA.Á½¶�üÁ¶JG A cache is the key component that differentiates a classical DFA and aÁüŒ·MJ hybrid NFA/DFA (also called a "lazy DFA"). Where a classical DFA builds aÁüÚ·KH complete transition table that can handle all possible inputs, a hybridÁü¦¸KH NFA/DFA starts with an empty transition table and builds only the partsÁüò¸OL required during search. The parts that are built are stored in a cache. ForÁü¹NK this reason, a cache is a required parameter for nearly every operation onÁt‘º a [`DFA`].Á º�ü¤º:7 Caches can be created from their corresponding DFA viaÁüߺLI [`DFA::create_cache`]. A cache can only be used with either the DFA thatÁü¬»GD created it, or the DFA that was most recently used to reset it withÁüô»KH [`Cache::reset`]. Using a cache with any other DFA may result in panicsÁÌÀ¼ or incorrect results.ÁO,ý¼ûóä;Ì}ƒ/ƒ„…†‡ˆ‰Š‹Œ�޼¶Â,¶Âû‚‚« ļÇ4¼Çû‚‚« ”åÉ4åÉû‚‚Ëõ ´èÏdèÏû‚‚Èö œìÐ<ìÐû‚‚�ª´÷Ñ,÷Ñû‚‚•öü»Ô(¬»Ôû‚‚Þš¼û×\û×û‚‚µ÷ÌÍÚ”ÍÚû‚‚”¿Ü\¿Üû‚‚¬íßtíßû‚‚üþâ Dþâû‚‚æú V}Àûó�†�V}V}ç/ ç/ûóûóBÿ�¦ã¼� �V}ßÁûó’ g’ßßè/é/ê/ è/ûó é/€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ê/­àBÿ‘§ê¼‘ ’ߜ߬ƙVtÍ™ûËõ¨ªWŠ9ƒ,l”•dâ™,â™û““Lô™ô™û““¸ŽÄËõ—†—¸Ž¸Žô/ ô/ËõËõBÿ–°·™– —¸ŽJ�ÅËõ™ g™J�J�õ/ö/÷/ õ/Ëõ ö/€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡÷/­àBÿ˜±¾™˜ ™J�œJ�œ‰¢W$�¢ûÂ3›Ì3œœ›™ö×Å­Ñ8�ž•¢™¢d£¢£¢ûššë�6¤µ¢,µ¢ûššõ�6ã�ÆÂ3 Ì3¡¡ ™ö¢ g¢„†�ƒã�ã�ù/ú/û/ ù/™ö ú/€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡û/­àBÿŸ²�¢Ÿ ¢Â3Ì3ã�œã�´Àíe<ÇíûÂ3¤Ì3¥¥¤çöO9ѸbÜ[ ¦§ÏíÓídÝíÝíû££ë�6„ïí,ïíû££¤§6Œ’ÔÂ3©Ì3ª©ªçö« g«„†�ƒŒ’Œ’�0Ž0�0 �0çö Ž0€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡�0­àBÿ¨Ò¸í¨ «Â3Ì3Œ’œŒ’|ó™hTø™ûµ÷ ç,5‡ªR§­®¯²³®°±³´°ÿµ÷Bÿ$˜›hû¬¬µ÷û¬¬µ÷4÷œhû¬¬µ÷|€�€�û¬¬°ÿd‘�,‘�û¬¬½™#þ h#þ û¬¬ ³#þ #þ û°ÿµ÷Bÿ¬¬ÜÜ`\²Ÿû¬¬°ÿPœ×µ÷¶†¶PœPœœ0 œ0µ÷µ÷Bÿµ×䙵 ¶Pœ…žØµ÷¸ g¸…ž…ž�0ž0Ÿ0 �0µ÷ ž0€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ÿ0­àBÿ·Øë™· ¸…žœ…žŒµ¯ü†ª30 The configuration used for building a lazy DFA.Áºª�ü¾ªJG As a convenience, [`DFA::config`] is an alias for [`Config::new`]. TheÁü‰«IF advantage of the former is that it often lets you avoid importing theÁÜÓ« `Config` type directly.Áï«�üó«KH A lazy DFA configuration is a simple data object that is typically usedÁü¿¬  with [`Builder::configure`].Áà¬�üä¬JG The default configuration guarantees that a search will never return aÁü¯­KH "gave up" or "quit" error, although it is possible for a search to failÁüû­MJ if [`Config::starts_for_each_pattern`] wasn't enabled (which it is not byÁüÉ®JG default) and an [`Anchored::Pattern`] mode is requested via [`Input`].Ái4À¯¯ø�"�¥Íc§º»¼½¾¿ÀÁÂÃÄìì²Tì²û¹¹Þ×ô�³�³û¹¹ôÄ ü³³%¼³³û¹¹ߨÔÞ³dÞ³û¹¹ߨüþ³#¬þ³û¹¹ߨħ´<§´û¹¹åÇ üÅ´%¼Å´û¹¹ߨìð´tð´û¹¹ØÚü“µ'Ì“µû¹¹ߨüÀµ0ÌÀµû¹¹“Úüöµ.¼öµû¹¹“Ú÷¤Ù¯øÆ†Æ÷¤÷¤¢0 ¢0¯ø¯øBÿÅÙ�¯Å Æ÷¤½¦Ú¯øÈ gȽ¦½¦£0¤0¥0 £0¯ø ¤0€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡¥0­àBÿÇÚ¤¯Ç Ƚ¦œ½¦š¯Û¯øÊ÷Êš¯š¯¯øBÿÉÉ Ê”›¾ ü¬¦ IF A builder for constructing a lazy deterministic finite automaton fromÁÄö¦  regular expressions.Á�§ �ü“§ LI As a convenience, [`DFA::builder`] is an alias for [`Builder::new`]. TheÁüà§ I¶à`䪨  `Builder` type directly.ÁǨ �ü˨ *' This builder provides two main things:Áö¨ �üú¨ MJ 1. It provides a few different `build` routines for actually constructingÁüÈ© @= a DFA from different kinds of inputs. The most convenient isÁü‰ª NK [`Builder::build`], which builds a DFA directly from a pattern string. TheÁüت MJ most flexible is [`Builder::build_from_nfa`], which builds a DFA straightÁ„¦«  from an NFA.Áü·« :7 2. The builder permits configuring a number of things.Áüò« JG [`Builder::configure`] is used with [`Config`] to configure aspects ofÁü½¬ HE the DFA and the construction process itself. [`Builder::syntax`] andÁü†­ NK [`Builder::thompson`] permit configuring the regex parser and Thompson NFAÁüÕ­ KH construction, respectively. The syntax and thompson configurations onlyÁü¡® .+ apply when building from a pattern string.ÁЮ �üÔ® MJ This builder always constructs a *single* lazy DFA. As such, this builderÁü¢¯ IF can only be used to construct regexes that either detect the presenceÁüì¯ GD of a match or find the end location of a match. A single DFA cannotÁü´° JG produce both the start and end of a match. For that information, use aÁüÿ° MJ [`Regex`](crate::hybrid::regex::Regex), which can be similarly configuredÁüͱ LI using [`regex::Builder`](crate::hybrid::regex::Builder). The main reasonÁüš² NK to use a DFA directly is if the end location of a match is enough for yourÁüé² LI use case. Namely, a `Regex` will construct two lazy DFAs instead of one,Áü¶³ FC since a second reverse DFA is needed to find the start of a match.Áý³ �l�´ •£/�´ �ü“´ NK This example shows how to build a lazy DFA that uses a tiny cache capacityÁüâ´ -* and completely disables Unicode. That is:Á�µ �ü”µ IF * Things such as `\w`, `.` and `\b` are no longer Unicode-aware. `\w`ÁüÞµ HE and `\b` are ASCII-only while `.` matches any byte except for `\n`Áü§¶ IF (instead of any UTF-8 encoding of a Unicode scalar value except forÁüñ¶ JG `\n`). Things that are Unicode only, such as `\pL`, are not allowed.Áü¼· JG * The pattern itself is permitted to match invalid UTF-8. For example,Áü‡¸ JG things like `[^a]` that match any byte except for `a` are permitted.ÁÒ¸ �<Ö¸ ä¤/ÌÞ¸ ô¤/Ìø¸ ûÊ3´’¹ ñ¡0¬©¹ ‘¢0Ì¿¹ ¢è34Ù¹ Ý¥/๠�ää¹ òË3ü�º 74 .configure(DFA::config().cache_capacity(5_000))Áü¹º 6¥£0üðº A> .syntax(syntax::Config::new().unicode(false).utf8(false))Áü²»  .build(r"foo[^b]ar.*")?;ÁüÓ» '©�0û» �üÿ» 2/ let haystack = b"\xFEfoo\xFFar\xE2\x98\xFF\n";Áü²¼ 0“ÃSüã¼ EúÏ3ô©½ —‘3Ƚ �ü̽ .Ǭ/<û½ ä¤/k<¦¾ õùoE’óUœ±‚ÌÍt´¾ 4´¾ ûË˯øäç¾ Óí”ξ ÔȾ Dç¾ ûËË·¬K±ÞõùφÏK±K±¹0 ¹0õùõùBÿÎጾ Î ÏK±²ßõùÑ gѲ²º0»0¼0 º0õù »0€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡¼0­àBÿÐ⓾ РѲœ²ÜÊù ü‚ò :7 Represents the current state of an overlapping search.Á½ò �üÁò KH This is used for overlapping searches since they need to know somethingÁü�ó OL about the previous search. For example, when multiple patterns match at theÁüÝó OL same position, this state tracks the last reported pattern so that the nextÁü­ô LI search knows whether to report another matching pattern or continue withÁüúô MJ the search at the next position. Additionally, it also tracks which stateÁüÈõ '$ the last search call terminated in.Áðõ �üôõ JG This type provides little introspection capabilities. The only thing aÁü¿ö NK caller can do is construct it and pass it around to permit search routinesÁüŽ÷ JG to use it to track state, and also ask whether a match has been found.ÁÙ÷ �üÝ÷ ?< Callers should always provide a fresh state constructed viaÁü�ø NK [`OverlappingState::start`] when starting a new search. Reusing state fromÁüìø 63 a previous search may result in incorrect results.Ám„Õù Âú¸”´€ªe8ÓÔÕÖ×ü°û !»û ÒÒÖáüŠÿ "•ÿ ÒÒðô ¤×� â� ÒÒüé„ *„ô„ ÒÒØÚÄʼn <Љ ÒÒܺáÂúÙ†ÙܺܺÅ0 Å0ÂúÂúBÿØå¬ù Ø ÙܺÌ»âÂúÛ gÛ̻̻Æ0Ç0È0 Æ0Âú Ç0€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡È0­àBÿÚæ³ù Ú ÛÌ»œÌ»Ö¾ãÂúÝÎÝÖ¾Ö¾Ö¾Ö¾É0 É0ÂúBÿÜçºù Ü ÝÖ¾ÁäÂúÁäÂúàù±àÁÁÊ0Ë0 Ê0Âú Ë0ÂúBÿßè¾ù ß àÁî Á¬„üIGD An error that occurs when initial construction of a lazy DFA fails.Á‘�ü•MJ A build error can occur when insufficient cache capacity is configured orÁüãLI if something about the NFA is unsupported. (For example, if one attemptsÁü°NK to build a lazy DFA without heuristic Unicode support but with an NFA thatÁüÿ&# contains a Unicode word boundary.)Á¦�üªJÄ�`üõ1™�`§�ü«Gâ�`Ôó * Access an underlyingÁüŽC@ [`nfa::thompson::BuildError`](crate::nfa::thompson::BuildError)ÁüÒOL type from its `source` method via the `std::error::Error` trait. This errorÁü¢GD only occurs when using convenience routines for building a lazy DFAÁüê# directly from a pattern string.ÁŽ�ü’NÕ“`TáŸËYoT�Øûû›(g¸K⤠$ Ãáá™üèÉçØûä†äèÉèÉÖ0 Ö0ØûØûBÿãíõã äèÉgÊèØûæ gægÊgÊ×0Ø0Ù0 ×0Øû Ø0€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ù0­àBÿåîüå ægÊœgÊœÑptÖÙü1¬*ØKÔ×]èéëîðñéê×°™üBÿìíïñò‹ 2™üBÿtþ ptþ Ãçç étþ tþ Ã×°™üBÿççí¢aÌïÃçç×°Ì� pÃçç™üt« <« Ãççd» ,» ÃççÜÏ pÃçç™ü¬í í Ãççã€Äþ pÄþ Ãçç ñÄþ Äþ Ë 2™üBÿççí¤ad– Ãçç‹ 2”Ëé™üô†ô”Ë”ËÚ0 Ú0™ü™üBÿóïÂó ô”ËtÎê™üö götÎtÎÛ0Ü0Ý0 Û0™ü Ü0€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ý0­àBÿõðÉõ ötΜtΜ’!ü�HE An error that can occur when computing the start state for a search.ÁÖ�üÚ>; Computing a start state can fail for a few reasons, eitherÁü™=: based on incorrect configuration or even based on whetherÁü×96 the look-behind byte triggers a quit state. TypicallyÁü‘:7 one does not need to handle this error if you're usingÁüÌNK [`DFA::start_state_forward`](crate::hybrid::dfa::DFA::start_state_forward)Áü›HE (or its reverse counterpart), as that routine automatically convertsÁüä@= `StartError` to a [`MatchError`](crate::MatchError) for you.Á¥�ü©%" This error may be returned by theÁüÏGD [`DFA::start_state`](crate::hybrid::dfa::DFA::start_state) routine.Á—�ü›NK This error implements the `std::error::Error` trait when the `std` featureÁ|ê is enabled.Áú�üþJG This error is marked as non-exhaustive. New variants may be added in aÁôÉ  semver compatible release.Á:Œè tT›!ÒýùØÉ®åTøúüùûý, "ü¬!FC An error that occurs when cache inefficiency has dropped below theÁü÷!$! configured heuristic thresholds.Át„÷÷Òý|æ"ü°"-* The underlying cache error that occurred.Áæ"÷÷Õþ$ó#ü‚#IF An error that occurs when a starting configuration's look-behind byteÁôÐ# is in this DFA's quit set.Át€÷÷ÒýD¬$ü‚$! The quit byte that was found.Á$¬$÷÷œ±%üÁ$GD An error that occurs when the caller requests an anchored mode thatÁü�% isn't supported by the DFA.Át€÷÷Òýtˆ&üÏ%0- The anchored mode given that is unsupported.Á$ˆ&÷÷Ø¥íÒîÒýÿ†ÿíÒíÒâ0 â0ÒýÒýBÿþ÷ƒ!þ ÿíÒÕïÒý� g�ÕÕã0ä0å0 ã0Òý ä0€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡å0­àBÿ€øŠ!€ �ÕœÕÿ üô6A> An error that occurs when cache usage has become inefficient.Á¶7�üº7HE One of the weaknesses of a lazy DFA is that it may need to clear itsÁüƒ8NK cache repeatedly if it's not big enough. If this happens too much, then itÁüÒ8IF can slow searching down significantly. A mitigation to this is to useÁüœ9LI heuristics to detect whether the cache is being used efficiently or not.Áüé963 If not, then a lazy DFA can return a `CacheError`.Á :�ü¤:<9 The default configuration of a lazy DFA in this crate isÁüá:;8 set such that a `CacheError` will never occur. Instead,Áü�;:7 callers must opt into this behavior with settings likeÁüØ;eb [`dfa::Config::minimum_cache_clear_count`](crate::hybrid::dfa::Config::minimum_cache_clear_count)Á<¾< andÁüÆÕþz£7ˆ±I6Öƒ„ÕþBÿÿ 6ÃÕþBÿ‚‚ ƒµ>‚ˆØõÕþ†††ˆØˆØê0 ê0ÕþÕþBÿ…ƒ�>… †ˆØÑØöÕþˆ gˆÑØÑØë0ì0í0 ë0Õþ ì0€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡í0­àBÿ‡„—>‡ ˆÑØœÑØcÿ ü;8 A state identifier specifically tailored for lazy DFAs.Á<�ü@OL A lazy state ID logically represents a pointer to a DFA state. In practice,Áü�IF by limiting the number of DFA states it can address, it reserves someÁüÚJG bits of its representation to encode some additional information. ThatÁü¥HE additional information is called a "tag." That tag is used to recordÁüîLI whether the state it points to is an unknown, dead, quit, start or matchÁT»¬ÿ8Æ�üÊGD When implementing a low level search routine with a lazy DFA, it isÁü’HE necessary to query the type of the current state to know what to do:ÁÛ�üß<9 * **Unknown** - The state has not yet been computed. TheÁüœ=: parameters used to get this state ID must be re-passed toÁüÚNK [`DFA::next_state`](crate::hybrid::dfa::DFA::next_state), which will neverÁü© return an unknown state ID.ÁüÉOL * **Dead** - A dead state only has transitions to itself. It indicates thatÁü™NK the search cannot do anything else and should stop with whatever result itÁDè has.ÁüñKH * **Quit** - A quit state indicates that the automaton could not answerÁü½OL whether a match exists or not. Correct search implementations must return aÁü� JG [`MatchError::quit`](crate::MatchError::quit) when a DFA enters a quitÁTØ ¬ÿ8üã GD * **Start** - A start state is a state in which a search can begin.Áü« B? Lazy DFAs usually have more than one start state. Branching onÁüî EB this isn't required for correctness, but a common optimization isÁü´ DA to run a prefilter when a search enters a start state. Note thatÁüù HE start states are *not* tagged automatically, and one must enable theÁü \Y [`Config::specialize_start_states`](crate::hybrid::dfa::Config::specialize_start_states)ÁüŸ A> setting for start states to be tagged. The reason for this isÁüá LI that a DFA search loop is usually written to execute a prefilter once itÁü®LI enters a start state. But if there is no prefilter, this handling can beÁüûOL quite disastrous as the DFA may ping-pong between the special handling codeÁüËNK and a possible optimized hot path for handling untagged states. When startÁüšKH states aren't specialized, then they are untagged and remain in the hotÁLæ path.ÁüðFC * **Match** - A match state indicates that a match has been found.Áü·KH Depending on the semantics of your search implementation, it may eitherÁüƒLI continue until the end of the haystack or a dead state, or it might quitÁüÐ%" and return the match immediately.Áö�üúKH As an optimization, the [`is_tagged`](LazyStateID::is_tagged) predicateÁüÆLI can be used to determine if a tag exists at all. This is useful to avoidÁü“@= branching on all of the above types for every byte searched.ÁÔ�lØ•£/æ�üêKH This example shows how `LazyStateID` can be used to implement a correctÁü¶MJ search routine with minimal branching. In particular, this search routineÁü„KH implements "leftmost" matching, which means that it doesn't immediatelyÁüÐMJ stop once a match is found. Instead, it continues until it reaches a deadÁTž¬ÿ8©�ü­>; Notice also how a correct search implementation deals withÁüìB? [`CacheError`](crate::hybrid::CacheError)s returned by some ofÁü¯A> the lazy DFA routines. When a `CacheError` occurs, it returnsÁüñ85 [`MatchError::gave_up`](crate::MatchError::gave_up).Áª�<®ä¤/̶ô¤/üÐ" hybrid::dfa::{Cache, DFA},Áüó%" HalfMatch, MatchError, Input,Á4™Ý¥/ �ܤ fn find_leftmost_first(Á”À dfa: &DFA,ÁÔÓ cache: &mut Cache,ÁÄî haystack: &[u8],Áü‡0- ) -> Result, MatchError> {Áü¸KH // The start state is determined by inspecting the position and theÁü„JG // initial bytes of the haystack. Note that start states can neverÁüÏGD // be match states (since DFAs in this crate delay matches by 1Áü—JG // byte), so we don't need to check if the start state is a match.Áüâ.+ let mut sid = dfa.start_state_forward(Á”‘ cache,Áü¤" &Input::new(haystack),Á\Ç )?;ÁüÓ" let mut last_match = None;ÁüöJG // Walk all the bytes in the haystack. We can quit early if we seeÁüÁFC // a dead or a quit state. The former means the automaton willÁüˆ IF // never transition to any other state. The latter means that theÁüÒ DA // automaton entered a condition in which its search failed.Áü—!41 for (i, &b) in haystack.iter().enumerate() {Á¬Ì! sid = dfaÁüâ!*' .next_state(cache, sid, b)Áü�"63 .map_err(|_| MatchError::gave_up(i))?;ÁüÄ"  if sid.is_tagged() {Áüå"# if sid.is_match() {Áü‰#52 last_match = Some(HalfMatch::new(Áü¿#96 dfa.match_pattern(cache, sid, 0),ÁÔù# i,Á¼”$ ));Áü¬$)& } else if sid.is_dead() {ÁüÖ$*' return Ok(last_match);Áü�%)& } else if sid.is_quit() {Áü«%FC // It is possible to enter into a quit state afterÁüò%GD // observing a match has occurred. In that case, weÁüº&C@ // should return the match instead of an error.Áüþ&-* if last_match.is_some() {Áü¬'.+ return Ok(last_match);Á¬Û' }Áüñ'74 return Err(MatchError::quit(b, i));ÁŒ©(×û3ü»(KH // Implementors may also want to check for start states andÁü‡)MJ // handle them differently for performance reasons. But it isÁüÕ)MJ // not necessary for correctness. Note that in order to checkÁü£*>; // for start states, you'll need to enable theÁüâ*IF // 'specialize_start_states' config knob, otherwise startÁü¬+-* // states will not be tagged.ÁlÚ+òû3Lè+‰ü3üò+KH // Matches are always delayed by 1 byte, so we must explicitly walkÁü¾,A> // the special "EOI" transition at the end of the search.ÁŒ€- sid = dfaÁü’-'$ .next_eoi_state(cache, sid)Áüº-?< .map_err(|_| MatchError::gave_up(haystack.len()))?;ÁÜú- if sid.is_match() {Áü–.-* last_match = Some(HalfMatch::new(ÁüÄ.1. dfa.match_pattern(cache, sid, 0),Áüö. haystack.len(),Á|–/ ));ÁL¦/‰ü3´°/ Ok(last_match)Á,Ç/œü3Í/�üÑ/LI // We use a greedy '+' operator to show how the search doesn't just stopÁüž0HE // once a match is detected. It continues extending the match. UsingÁüç0GD // '[a-z]+?' would also work as expected and stop the search early.Áü¯1.+ // Greediness is built into the automaton.ÁüÞ1#üã7ü‚2'©�0üª20µÞ7üÛ2HE let mat = find_leftmost_first(&dfa, &mut cache, haystack)?.unwrap();Áü¤3,) assert_eq!(mat.pattern().as_usize(), 0);ÁüÑ3! assert_eq!(mat.offset(), 10);Áó3�ü÷3DA // Here's another example that tests our handling of the specialÁü¼4FC // EOI transition. This will fail to find a match if we don't callÁüƒ5LI // 'next_eoi_state' at the end of the search since the match isn't foundÁüÐ5,) // until the final byte in the haystack.Áüý5%" let dfa = DFA::new(r"[0-9]{4}")?;Áü£6'©�0üË60µÞ7üü6H“ýaüÅ7,åýaüò7! assert_eq!(mat.offset(), 15);Á”8�ü˜8HE // And note that our search implementation above automatically worksÁüá8KH // with multi-DFAs. Namely, `dfa.match_pattern(match_state, 0)` selectsÁü­9)& // the appropriate pattern ID for us.Áü×963 let dfa = DFA::new_many(&[r"[a-z]+", r"[0-9]+"])?;ÁüŽ:'©�0ü¶:0µÞ7üç:H“ýaü°;,) assert_eq!(mat.pattern().as_usize(), 1);ÁüÝ;  assert_eq!(mat.offset(), 3);Áüþ;NK let mat = find_leftmost_first(&dfa, &mut cache, &haystack[3..])?.unwrap();ÁüÍ<,åýaüú<  assert_eq!(mat.offset(), 7);Áü›=OL let mat = find_leftmost_first(&dfa, &mut cache, &haystack[10..])?.unwrap();Áüë=,Þ„bü˜>  assert_eq!(mat.offset(), 5);Á¹>�ü½>.Ǭ/<ì>ä¤/|\Ó?°ÿÞÂ�¼ÎˆŠ‹°ÿBÿcÿ 6ß°ÿBÿ‰‰ Šß?߉‰ÚÙÚÙÚÙø°ÿÚÙø°ÿކŽÚÙÚÙñ0 ñ0°ÿ°ÿBÿ�‡‚?� ŽÚÙ ˆ‰?ù°ÿ<Úú°ÿ‘ g‘<Ú<Úò0ó0ô0 ò0°ÿ ó0€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ô0­àBÿ�‰�?� ‘<Úœ<ÚiÛû°ÿ“÷“iÛiÛ°ÿBÿ’’ “ÚÛü°ÿ•ΕÚÛÚÛÚÛÚÛõ0 õ0°ÿBÿ”‹Ÿ?” •ÚÛQÜý°ÿ—üh—QÜQÜö0÷0 ö0°ÿ ÷0ù Bÿ–ÿ˜˜Œ£?–þÆù Q܃iù QÜ —ù Q܃QÜQÜQÜÝþ°ÿÝþ°ÿ›ù±›ÝÝø0ù0 ø0°ÿ ù0°ÿBÿš�©?š ›Ýî ÝyÝÿ°ÿ�±²�yÝyÝú0û0 ú0°ÿ û0°ÿ»½ BÿœŽ´?œ �yÝî yÝ>߀°ÿŸîŸ>ß>ßü0ý0 ü0°ÿ ý0°ÿµ¼ Bÿž�À?ž Ÿ>ßî >ßüÖm"}„èm〻'•ˆ¾5¡tÿmLÿmß  ù�〣†£ùù‹1 ‹1ã€ã€Bÿ¢�¸m¢ £ù‹ù‚〥 g¥‹ù‹ùŒ1�1Ž1 Œ1〠�1€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ž1­àBÿ¤‘¿m¤ ¥‹ùœ‹ùÇúƒã€§Î§ÇúÇúÇúÇú�1 �1ã€Bÿ¦’Æm¦ §ÇúPû„ã€Pû„〪ù±ªPûPû�1‘1 �1〠‘1ã€Bÿ©“Êm© ªPûî Pû„šüÈLI A regular expression that uses hybrid NFA/DFAs (also called "lazy DFAs")Á”• for searching.Á¨�ü¬MJ A regular expression is comprised of two lazy DFAs, a "forward" DFA and aÁüúJG "reverse" DFA. The forward DFA is responsible for detecting the end ofÁüÅHE a match while the reverse DFA is responsible for detecting the startÁüŽ GD of a match. Thus, in order to find the bounds of any given match, aÁüÖ JG forward search must first be run followed by a reverse search. A matchÁü¡ KH found by the forward DFA guarantees that the reverse DFA will also findÁdí  a match.Áú �Œþ  # FallibilityÁ� �ü” JG Most of the search routines defined on this type will _panic_ when theÁüß MJ underlying search fails. This might be because the DFA gave up because itÁü­ KH saw a quit byte, whether configured explicitly or via heuristic UnicodeÁüù LI word boundary support, although neither are enabled by default. It mightÁüÆ OL also fail if the underlying DFA determines it isn't making effective use ofÁü–MJ the cache (which also never happens by default). Or it might fail becauseÁüäOL an invalid `Input` configuration is given, for example, with an unsupportedÁ´´ [`Anchored`] mode.ÁË�üÏOL If you need to handle these error cases instead of allowing them to triggerÁüŸOL a panic, then the lower level [`Regex::try_search`] provides a fallible APIÁ´ï that never panics.Á†�lŠ•£/˜�üœFû¾7üãJG `\n` byte, and handle the error returned. This could be useful if, forÁü®HE example, you wanted to prevent a user supplied pattern from matchingÁÜ÷ across a line boundary.Á“�<—ä¤/üŸ=ÔÂ/üÝIF use regex_automata::{hybrid::{dfa, regex::Regex}, Input, MatchError};Á§�ì«àÇ9üÉ2/ .dfa(dfa::Config::new().quit(b'\n', true))Áüü#¹Â7ü &Ê›0Ç�üË'$ let input = Input::new("foo\nbar");ÁüóH«Ã7ü¼GþÃ7ü„=ÐÄ7üÂ.˜Å7üñ=: let got = re.try_search(&mut cache, &input).unwrap_err();Áô¯—‘3Î�üÒ.Ǭ/<�ä¤/,¥á�Œä2‡·âþ¬­dö<öü««ïòd•<•ü««ïò«û†á�¯ g¯«û«û–1—1˜1 –1á� —1€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡˜1­àBÿ®–’® ¯«ûœ«ûüѱ"ü¦­JG An iterator over all non-overlapping matches for an infallible search.Áñ­�üõ­OL The iterator yields a [`Match`] value until no more matches could be found.ÁüÅ®IF If the underlying regex engine returns an error, then a panic occurs.Á�¯�ü“¯+( The lifetime parameters are as follows:Á¿¯�üï74 * `'r` represents the lifetime of the regex object.Áüû¯B? * `'h` represents the lifetime of the haystack being searched.Áü¾°63 * `'c` represents the lifetime of the regex cache.Áõ°�üù°FC This iterator can be created with the [`Regex::find_iter`] method.Áƒ\ܱæG±Ì3²¸³²±³£‚‹½õìÆoŠ´µ¶è±ì±ð±lú±ú±ü°° æGá�¤�²,�²ü°° Ì3�ƒ´§²§²ü°°³'³'É�µ'–`«¶'é�«„z¢®é£ˆw¸qŒæG¸Ì3¹¸º¹º¸£‚» g»qq¬1­1®1 ¬1£‚ ­1€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡®1­àBÿ· ɱ· »æGÌ3¸qœq„Ü»üδDA A cache represents a partially computed forward and reverse DFA.Á“µ�ü—µJÑÂ`üâµM¦Ã`ü°¶KþÃ`üü¶KÔÄ`üÈ·OªÅ`ü˜¸N„Æ`„ç¸ a [`Regex`].Áø¸�üü¸>; Caches can be created from their corresponding `Regex` viaÁü»¹MJ [`Regex::create_cache`]. A cache can only be used with either the `Regex`Áü‰ºKH that created it, or the `Regex` that was most recently used to reset itÁüÕºMJ with [`Cache::reset`]. Using a cache with any other `Regex` may result inÁü£»  panics or incorrect results.Á„,ç»�ƒdŠ0PÁß½¾œó»<ó»ü¼¼û󜌼<Œ¼ü¼¼ûó8��ƒÀ gÀ88°1±1²1 °1�ƒ ±1€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡²1­àBÿ¿¡Í»¿ À8œ8LŽ�ƒÂ†ÂLL³1 ³1�ƒ�ƒBÿÁ¢Ô»Á ÂL”òëüâØ41 A builder for a regex based on a hybrid NFA/DFA.Á—Ù�ü›ÙMª–_üéÙOL NFA construction, the lazy DFA construction and finally the regex searchingÁü¹ÚJG itself. This builder is different from a general purpose regex builderÁü„ÛLI in that it permits fine grain configuration of the construction process.ÁüÑÛJG The trade off for this is complexity, and the possibility of setting aÁüœÜGD configuration that might not make sense. For example, there are twoÁÔäÜ different UTF-8 modes:ÁÿÜ�üƒÝJ£š_üÎÝM÷š_TœÞ‹ÙGü§ÞLI * [`thompson::Config::utf8`] controls how the regex iterators themselvesÁüôÞKH advance the starting position of the next search when a match with zeroÁ¤Àß length is found.ÁÕß�üÙßJñœ_̤àÄ�_¾à�üÂàGD Internally, building a regex requires building two hybrid NFA/DFAs,ÁüŠáLI where one is responsible for finding the end of a match and the other isÁü×áLI responsible for finding the start of a match. If you only need to detectÁü¤âNK whether something matched, or only the end of a match, then you should useÁüóâMJ a [`dfa::Builder`] to construct a single hybrid NFA/DFA, which is cheaperÁôÁã than building two of them.Áàã�läã•£/òã�üöãLI This example shows how to disable UTF-8 mode in the syntax and the regexÁüÃäLI itself. This is generally what you want for matching on arbitrary bytes.Á�å�<”åä¤/üœå=ÔÂ/ÌÚåô¤/üôåAýÆ94¶æÝ¥/½æ�ìÁæàÇ9üßæ2è¢0ü’ç6¥£0üÉç&æ£0üðç&Ê›0—è�ü›è4ËÈ9üÐè.‰É9üÿè,ÁÉ9ô¬é—‘3üËé6�¡_ü‚ê8Ý¡_ü»ê"Ÿ¢_üÞê@= assert_eq!(b"foo\xFFarzz", &haystack[got.unwrap().range()]);ÁŸë�ü£ë.Ǭ/<Òëä¤/…<ýë݃ÒAØZÁ¬kÄŒ‹ì‹ìüÃÃõùB�݃ƆÆBB¾1 ¾1݃݃BÿÅ£ãëÅ ÆB½�݃È gȽ½¿1À1Á1 ¿1݃ À1€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Á1­àBÿǤêëÇ È½œ½¬€ üW> ; An error that occurs when construction of a `Regex` fails.Á– �üšF C A build error is generally a result of one of two possible failureÁüáG D modes. First is a parse or syntax error in the concrete syntax of aÁü©L I pattern. Second is that the construction of the underlying regex matcherÁüöF C fails, usually because it gets too big with respect to limits likeÁü½D A [`Config::nfa_size_limit`](crate::meta::Config::nfa_size_limit).Á‚ �ü†H E This error provides very little introspection capabilities. You can:ÁÏ �üÓK H * Ask for the [`PatternID`] of the pattern that caused an error, if oneÁüŸN K is available. This is available for things like syntax errors, but not forÁüî* ' cases where build limits are exceeded.Áü™L I * Ask for the underlying syntax error, but only if the error is a syntaxÁTæ ž‘FüñM J * Ask for a human readable message corresponding to the underlying error.Áü¿C @ * The `BuildError::source` method (from the `std::error::Error`ÁüƒM J trait implementation) may be used to query for an underlying error if oneÁüÑF C exists. There are no API guarantees about which error is returned.Á˜ �üœ K H When the `std` feature is enabled, this implements `std::error::Error`.ÁšT‹ ©„ÚÜ�0¤Ê¤œ $œ öÉÉê„*µ©„̆Ì**ƒ2 ƒ2©„©„BÿËíñ Ë Ì*�*¶©„ΠgÎ�*�*„2…2†2 „2©„ …2€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡†2­àBÿÍîø Í Î�*œ�*œÍ ›tÒ öꄇ ¼_r‰ùÐÓÔÑÒÔÕ×°ê„Bÿ4ç ›öÏÏê„tð ð öÏÏ›†Ä€ € öÏÏØÙ ²ÿ ›²ÿ öÏÏ Ô²ÿ ²ÿ ö×°ê„BÿÏÏÈáb̤ öÏÏ×°º+·ê„׆׺+º+‡2 ‡2ê„ê„BÿÖï¾ Ö ×º+.¸ê„Ù gÙ..ˆ2‰2Š2 ˆ2ê„ ‰2€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Š2­àBÿØðÅ Ø Ù.œ.ÔÏ' žTß' ì…Q©ÃiLJÛÜÞßÜÝ•‡ì…Bÿßàô‡ì…Bÿ ž ÚÚ Ü  •‡ì…BÿÚÚàåbœú' ÚÚ•‡R žR ÚÚ ßR R ô‡ì…BÿÚÚÔæbt™( ÚÚô‡à0»ì…â gâà0à0’2“2”2 ’2ì… “2€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡”2­àBÿáõÇ' á âà0œà0¢ ŸœÅ. •‡r 1›@nnä啇Bÿ¢ 7ö•‡Bÿãã äÙ. öãã 3¼•‡ç gç 3 3˜2™2š2 ˜2•‡ ™2€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡š2­àBÿæö«. æ ç 3œ 3üÌ8 ¡tÞ8 ô‡½¶EjîN£éló8 4ó8 öèè4¾ô‡ë gë44ž2Ÿ2 2 ž2ô‡ Ÿ2€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ 2­àBÿêùÄ8 ê ë4œ4„¶OüùHE A regex matcher that works by composing several other regex matchersÁ”  automatically.ÁÕ �üÙ JG In effect, a meta regex papers over a lot of the quirks or performanceÁü¤ OL problems in each of the regex engines in this crate. Its goal is to provideÁüô OL an infallible and simple API that "just does the right thing" in the commonÁLÄ  case.ÁÎ �üÒ IF A meta regex is the implementation of a `Regex` in the `regex` crate.Áüœ JG Indeed, the `regex` crate API is essentially just a light wrapper overÁüç @= this type. This includes the `regex` crate's `RegexSet` API!Á¨ �Œ¬  # CompositionÁ¾ �ü IF This is called a "meta" matcher precisely because it uses other regexÁüŒHE matchers to provide a convenient high level regex API. Here are someÁüÕ63 examples of how other regex matchers are composed:ÁŒ�ü�>; * When calling [`Regex::captures`], instead of immediatelyÁüÏ;8 running a slower but more capable regex engine like theÁü‹KH [`PikeVM`](crate::nfa::thompson::pikevm::PikeVM), the meta regex engineÁü×NK will usually first look for the bounds of a match with a higher throughputÁü¦MJ regex engine like a [lazy DFA](crate::hybrid). Only when a match is foundÁüôLI is a slower engine like `PikeVM` used to find the matching span for eachÁ”Á capture group.ÁüÔEB * While higher throughout engines like the lazy DFA cannot handleÁüšLI Unicode word boundaries in general, they can still be used on pure ASCIIÁüçMJ haystacks by pretending that Unicode word boundaries are just plain ASCIIÁüµOL word boundaries. However, if a haystack is not ASCII, the meta regex engineÁü…OL will automatically switch to a (possibly slower) regex engine that supportsÁüÕ'$ Unicode word boundaries in general.ÁüýMJ * In some cases where a regex pattern is just a simple literal or a smallÁüËJG set of literals, an actual regex engine won't be used at all. Instead,Áü–DA substring or multi-substring search algorithms will be employed.ÁÛ�üßJG There are many other forms of composition happening too, but the aboveÁüªKH should give a general idea. In particular, it may perhaps be surprisingÁüöNK that *multiple* regex engines might get executed for a single search. ThatÁüÅKH is, the decision of what regex engine to use is not _just_ based on theÁü‘JG pattern, but also based on the dynamic execution of the search itself.ÁÜ�üàKH The primary reason for this composition is performance. The fundamentalÁü¬LI tension is that the faster engines tend to be less capable, and the moreÁüù&# capable engines tend to be slower.Á �ü¤IF Note that the forms of composition that are allowed are determined byÁüîOL compile time crate features and configuration. For example, if the `hybrid`Áü¾OL feature isn't enabled, or if [`Config::hybrid`] has been disabled, then theÁüŽ0- meta regex engine will never use a lazy DFA.Á¿�üÃ! # Synchronization and cloningÁå�üéHE Most of the regex engines in this crate require some kind of mutableÁü²KH "scratch" space to read and write from while performing a search. SinceÁüþIF a meta regex composes these regex engines, a meta regex also requiresÁüÈ DA mutable scratch space. This scratch space is called a [`Cache`].Á�!�ü‘!KH Most regex engines _also_ usually have a read-only component, typicallyÁüÝ!2/ a [Thompson `NFA`](crate::nfa::thompson::NFA).Á�"�ü”"JG In order to make the `Regex` API convenient, most of the routines hideÁüß"HE the fact that a `Cache` is needed at all. To achieve this, a [memoryÁü¨#IF pool](crate::util::pool::Pool) is used internally to retrieve `Cache`Áüò#MJ values in a thread safe way that also permits reuse. This in turn impliesÁüÀ$NK that every such search call requires some form of synchronization. UsuallyÁü�%LI this synchronization is fast enough to not notice, but in some cases, itÁüÜ%LI can be a bottleneck. This typically occurs when all of the following areÁL©& true:Á³&�ü·&HE * The same `Regex` is shared across multiple threads simultaneously,Áü€'LI usually via a [`util::lazy::Lazy`](crate::util::lazy::Lazy) or somethingÁüÍ'96 similar from the `once_cell` or `lazy_static` crates.Áü‡(@= * The primary unit of work in each thread is a regex search.ÁüÈ(/, * Searches are run on very short haystacks.Áø(�üü(JG This particular case can lead to high contention on the pool used by aÁüÇ)JG `Regex` internally, which can in turn increase latency to a noticeableÁü’*DA effect. This cost can be mitigated in one of the following ways:Á×*�üÛ*MJ * Use a distinct copy of a `Regex` in each thread, usually by cloning it.Áü©+KH Cloning a `Regex` _does not_ do a deep copy of its read-only component.Áüõ+IF But it does lead to each `Regex` having its own memory pool, which inÁü¿,PM turn eliminates the problem of contention. In general, this technique shouldÁü�-OL not result in any additional memory usage when compared to sharing the sameÁüà-30 `Regex` across multiple threads simultaneously.Áü”.MJ * Use lower level APIs, like [`Regex::search_with`], which permit passingÁüâ.MJ a `Cache` explicitly. In this case, it is up to you to determine how bestÁü°/NK to provide a `Cache`. For example, you might put a `Cache` in thread-localÁüÿ/+( storage if your use case allows for it.Á«0�ü¯0IF Overall, this is an issue that happens rarely in practice, but it canÁ\ù0 happen.Á…1�ü‰185 # Warning: spin-locks may be used in alloc-only modeÁÂ1�üÆ1NK When this crate is built without the `std` feature and the high level APIsÁü•2NK on a `Regex` are used, then a spin-lock will be used to synchronize accessÁüä2JG to an internal pool of `Cache` values. This may be undesirable becauseÁü¯3IF a spin-lock is [effectively impossible to implement correctly in userÁüù3LI space][spinlocks-are-bad]. That is, more concretely, the spin-lock couldÁÌÆ4 result in a deadlock.Áà4�üä4_\ [spinlocks-are-bad]: https://matklad.github.io/2020/01/02/spinlocks-considered-harmful.htmlÁÄ5�üÈ5IF If one wants to avoid the use of spin-locks when the `std` feature isÁü’6LI disabled, then you must use APIs that accept a `Cache` value explicitly.Áüß6(% For example, [`Regex::search_with`].Áˆ7�lŒ7•£/š7�<ž7ä¤/ü¦7$èë;Ë7�üÏ7:7 let re = Regex::new(r"^[0-9]{4}-[0-9]{2}-[0-9]{2}$")?;ÁüŠ8'$ assert!(re.is_match("2010-03-14"));Á²8�ü¶8.Ǭ/<å8ä¤/í8�ôñ8 # Example: anchored searchÁ�9�ü”9HE This example shows how to use [`Input::anchored`] to run an anchoredÁüÝ9JG search, even when the regex pattern itself isn't anchored. An anchoredÁü¨:LI search guarantees that if a match is found, then the start offset of theÁüõ:DA match corresponds to the offset at which the search was started.Áº;�<¾;ä¤/üÆ;>; use regex_automata::{meta::Regex, Anchored, Input, Match};Á…<�ü‰<%" let re = Regex::new(r"\bfoo\b")?;Áü¯FC // surrounding context into account, even if it means looking backÁü€?'$ // before the start of your search.Ą́? let hay = "xxfoo xx";ÁüÂ?C@ let input = Input::new(hay).range(2..).anchored(Anchored::Yes);Áü†@%" assert_eq!(None, re.find(input));Áü¬@A> // Indeed, you cannot achieve the above by simply slicing theÁüî@<9 // haystack itself, since the regex engine can't see theÁü«A?< // surrounding context. This is why 'Input' permits settingÁôëA // the bounds of a search!ÁüŠB>; let input = Input::new(&hay[2..]).anchored(Anchored::Yes);ÁlÉB // WRONG!Áü×B;8 assert_eq!(Some(Match::must(0, 0..3)), re.find(input));Á“C�ü—C.Ǭ/<ÆCä¤/ÎC�ôÒC # Example: earliest searchÁñC�üõCJG This example shows how to use [`Input::earliest`] to run a search thatÁüÀD96 might stop before finding the typical leftmost match.ÁúD�<þDä¤/ü†E>Ô§cÅE�üÉE(% let re = Regex::new(r"[a-z]{3}|b")?;ÁüòE1. let input = Input::new("abc").earliest(true);Áü¤F;8 assert_eq!(Some(Match::must(0, 1..2)), re.find(input));ÁàF�üäFFC // Note that "earliest" isn't really a match semantic unto itself.Áü«GDA // Instead, it is merely an instruction to whatever regex engineÁüðGC@ // gets used internally to quit as soon as it can. For example,Áü´HA> // this regex uses a different search technique, and winds upÁüöH/, // producing a different (but valid) match!Áü¦I# let re = Regex::new(r"abc|b")?;ÁüÊI1²³cüüI;‹°c¸J�ü¼J.Ǭ/<ëJä¤/óJ�ü÷J)çï;¡K�ü¥KJ¨ð;üðK(ýð;™L�<�Lä¤/ü¥L;Áå;áL�ìåLàÇ9üƒM7õñ;ü»M<·ò;ÔøMýò;ä“N¡ó;ü°N9Èó;êN�üîN.Ǭ/<�Oä¤/­,ÁOÞˆ¶W )|Éûíî„öOöOÛììöë |ðU$ðUÛìì†Ä;85ÔÞˆð gð8585Æ2Ç2È2 Æ2Þˆ Ç2€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡È2­àBÿï¡®Oï ð85œ85löV®4ýVÛ¢‰˜.·M^B‡øòóÄßZ,ßZÛññÆÆA|•_$•_Ûñññ‰Þ7Õ¢‰õ gõÞ7Þ7É2Ê2Ë2 É2¢‰ Ê2€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ë2­àBÿô¢îVô õÞ7œÞ7ò ¯LÞÐñ‰ ’¤aL¤÷ø–æ ñ‰Bÿò 9Û–æ ñ‰Bÿöö ÷|èÐÛöö–æ  sÖñ‰ú†ú s s…3 …3ñ‰ñ‰Bÿù£½Ðù ú sˆs×ñ‰ü güˆsˆs†3‡3ˆ3 †3ñ‰ ‡3€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ˆ3­àBÿû¤ÄÐû üˆsœˆsŒ“ѰTšÑÛ¶Š7†“"ý§"þÿ€t«Ñ4«ÑÛýýÅ�Ü¿Ñ,¿ÑÛýýäê äàÑ\àÑÛýýûÚ ŒuØ¶Š‚†‚ŒuŒu‰3 ‰3¶Š¶ŠBÿ�¥„Ñ� ‚Œu€vÙ¶Š„ g„€v€vŠ3‹3Œ3 Š3¶Š ‹3€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Œ3­àBÿƒ¦‹Ñƒ „€vœ€vô‹‚üãþ1. An iterator over all non-overlapping matches.Á•ÿ�ü™ÿO‡®béÿ�üíÿ+¯b™€�ü�€NK * `'r` represents the lifetime of the `Regex` that produced this iterator.Áüì€Bǰb¯��ü³�Fâ±b³\–‚æG†¸‡‡†�‹xâ ÜAì³�ˆ‰Š¢‚¦‚l°‚°‚Û……óÑ>ÌÂ,ÂÛ……ÄÄÅ­àÉó¬ Œ¿‚ÄÆk"`æGËŽ½Ä;´â‚â‚Û……³'³'É�µ'–`«¶'é�«„z¢®é£ˆw¸ö„ÚæGŒ¸��Œ�‹Ž gŽ ö„ö„�3ž3Ÿ3 �3�‹ ž3€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ÿ3­àBÿ‹©ƒ‚‹ ŽæG¸ö„œö„üé‘"ü�ŽNK An iterator over all non-overlapping leftmost matches with their capturingÁ\ÜŽ groups.ÁèŽ�üìŽKH The iterator yields a [`Captures`] value until no more matches could beÁT¸� found.ÁÃ��üÇ�+¯bó��ü÷�NÃÇcüÆ�Bǰb‰‘�ü�‘JG This iterator can be created with the [`Regex::captures_iter`] method.Á´|ô‘æG�¸‘�‘�Œõù’?ÔÙ3§’“”•„’ˆ’l’’’’Û��óÑ>Ì¥’,¥’Û��ÍÊctÄ’$Ä’Û��˜Û´Ø’Ø’Û��¨Ëc§ŽÛæG—¸˜˜—�Œ™ g™À½¿§Ž§Ž¢3£3¤3 ¢3�Œ £3€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡¤3­àBÿ–ªá‘– ™æG¸§Žœ§ŽÄÇ¡ü©žB? Yields all substrings delimited by a regular expression match.Áìž�üðž85 The spans correspond to the offsets between matches.Á©Ÿ�ü­Ÿ+¯bÙŸ�üÝŸNÃÇcü¬ Bǰbï �üó B? This iterator can be created with the [`Regex::split`] method.Áµ,Ò¡æG›¸œœ›€�Âbé1ºÄmH�žØ¡Ü¡Üæ¡4æ¡Ûšš�‹\‡¢$‡¢Ûšš4›ÜæG ¸¡ ¡€�¢ g¢ƒ…€‚4›4›§3¨3©3 §3€� ¨3€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡©3­àBÿŸ«¿¡Ÿ ¢æG¸4›œ4›ÌÄ®üæªEB Yields at most `N` spans delimited by a regular expression match.Á¬«�ü°«NK The spans correspond to the offsets between matches. The last span will beÁüÿ«%" whatever remains after splitting.Á¥¬�ü©¬+¯bÕ¬�üÙ¬NÃÇcü¨­Bǰbë­�üï­C@ This iterator can be created with the [`Regex::splitn`] method.Á¶4Ï®æG¤¸¥¤¥å�Z>÷_ác䦧֮ڮ¬ä®4ä®Û££€�dÿ®,ÿ®Û££x�ÝæG©¸ªª©å�« g«ƒ…€‚x�x�«3¬3­3 «3å� ¬3€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡­3­àBÿ¨¬¼®¨ «æG¸x�œx�„‹Èüæ·KH Represents mutable scratch space used by regex engines during a search.Á²¸�ü¶¸@= Most of the regex engines in this crate require some kind ofÁü÷¸EB mutable state in order to execute a search. This mutable state isÁü½¹>; explicitly separated from the core regex object (such as aÁüü¹MJ [`thompson::NFA`](crate::nfa::thompson::NFA)) so that the read-only regexÁüʺKH object can be shared across multiple threads simultaneously without anyÁü–»MJ synchronization. Conversely, a `Cache` must either be duplicated if usingÁüä»NK the same `Regex` from multiple threads, or else there must be some kind ofÁü³¼MJ synchronization that guarantees exclusive access while it's in use by oneÁ\�½ thread.Á�½�ü‘½KH A `Regex` attempts to do this synchronization for you by using a threadÁüݽLI pool internally. Its size scales roughly with the number of simultaneousÁœª¾ regex searches.Á¾¾�ü¾LI For cases where one does not want to rely on a `Regex`'s internal threadÁü�¿JG pool, lower level routines such as [`Regex::search_with`] are providedÁüÚ¿MJ that permit callers to pass a `Cache` into the search routine explicitly.Á¨À�ü¬ÀJG General advice is that the thread pool is often more than good enough.Áü÷ÀFC However, it may be possible to observe the effects of its latency,Áü¾ÁDA especially when searching many small haystacks from many threadsÁœƒÂ simultaneously.Á—Â�ü›Â>͸büÚÂM–¹bü¨ÃKî¹büôÃMĺbüÂÄ œ»bãÄ�lçÄ•£/õÄ�<ùÄä¤/ü�Å4Ý€<¶Å�üºÅ.ùè=üéÅ&Ê›0ü�Æ>Áé=|ÏÆ¡´0ü߯%˜ê=ü…Ç+Ÿ¥=4±Ç½µ0¸Ç�ü¼Ç.Ǭ/<ëÇä¤/·,–ÈËŽ¡HdÆy�ªe­®¯°±²ü¢ÈT­È¬¬˜ÛüÇÈ(4ÒȬ¬ó—üõÈ7L€É¬¬¬™ü²É*<½É¬¬åšüâÉ(4íɬ¬žœü�Ê2L›Ê¬¬Ëž¼ŸÞËŽ´ g´¼Ÿ¼Ÿ°3±3²3 °3ËŽ ±3€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡²3­àBÿ³­üdz ´¼Ÿœ¼Ÿ&¦ßËŽ¶†¶&¦&¦³3 ³3ËŽËŽBÿµ®ƒÈµ ¶&¦ŒýãüÅÜ85 An object describing the configuration of a `Regex`.ÁþÜ�ü‚Ý41 This configuration only includes options for theÁü·Ý@= non-syntax behavior of a `Regex`, and can be applied via theÁüøÝJG [`Builder::configure`] method. For configuring the syntax options, seeÁüÃÞ:7 [`util::syntax::Config`](crate::util::syntax::Config).ÁþÞ�ü‚ß'Ôé;ªß�ü®ßNK In some cases, the default size limit might be too big. The size limit canÁüýßGD be lowered, which will prevent large regex patterns from compiling.ÁÅà�<Éàä¤/üÑà=ÔÂ/ü�á$èë;´á�ü¸á!¤ì;üÚáFÐì;ü¡âI¡í;¼ëâôí;ìƒã•î;¡ã�ü¥ã.Ǭ/<Ôãä¤/¸4ˆäÅ�<�6ɹœŒ«¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈì´çT´çÛ··Þ×Ä×çT×çÛ··ߨ¬õç<õçÛ··ߨô�è�èÛ··ôÄ ü´è%t´èÛ··£Òüßè%tßèÛ··“ÚüŠé)”ŠéÛ··“Úü¹é$¬¹éÛ··ØÚ¤ãé4ãéÛ··ߨŒýéýéÛ··ߨü”ê%t”êÛ··“Úü¿ê&|¿êÛ··“Ú¬ëê<ëêÛ··ߨ¼†ëL†ëÛ··ߨÔ£ëd£ëÛ··ߨÜÃë|ÃëÛ··»Ô ääëläëÛ··ØÚ¾«àÅ�ʆʾ«¾«¸3 ¸3Å�Å�BÿɯåãÉ Ê¾«)®áÅ�Ì gÌ)®)®¹3º3»3 ¹3Å� º3€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡»3­àBÿ˰ìãË Ì)®œ)®ÔºâÅ�Î÷ÎÔºÔºÅ�BÿÍÍ Î”ö¡ü®†96 A builder for configuring and constructing a `Regex`.Áè†�üì†GD The builder permits configuring two different aspects of a `Regex`:Á´‡�ü¸‡IF * [`Builder::configure`] will set high-level configuration options asÁô‚ˆ described by a [`Config`].Áü¡ˆIF * [`Builder::syntax`] will set the syntax level configuration optionsÁüëˆLI as described by a [`util::syntax::Config`](crate::util::syntax::Config).Áü¸‰C@ This only applies when building a `Regex` from pattern strings.Áü‰�ü€ŠMJ Once configured, the builder can then be used to construct a `Regex` fromÁôΊ one of 4 different inputs:ÁíŠ�üñŠFC * [`Builder::build`] creates a regex from a single pattern string.Áü¸‹HE * [`Builder::build_many`] creates a regex from many pattern strings.Áü�Œ85 * [`Builder::build_from_hir`] creates a regex from aÁüºŒ*' [`regex-syntax::Hir`](Hir) expression.ÁüåŒ@= * [`Builder::build_many_from_hir`] creates a regex from manyÁü¦�+( [`regex-syntax::Hir`](Hir) expressions.ÁÒ��üÖ�KH The latter two methods in particular provide a way to construct a fullyÁü¢ŽHE feature regular expression matcher directly from an `Hir` expressionÁüëŽOL without having to first convert it to a string. (This is in contrast to theÁü»�MJ top-level `regex` crate which intentionally provides no such API in orderÁü‰�85 to avoid making `regex-syntax` a public dependency.)ÁÂ��üÆ�OL As a convenience, this builder may be created via [`Regex::builder`], whichÁü–‘# may help avoid an extra import.Áº‘�ü¾‘)çï;è‘�üì‘NK This example shows how to enable multi-line mode by default and change theÁü»’$! line terminator to the NUL byte:Áà’�<ä’ä¤/üì’;Áå;¨“�쬓àÇ9üÊ“7õñ;ü‚”<·ò;Ô¿”ýò;äÚ”¡ó;ü÷”9Èó;±•�üµ•.Ǭ/<ä•ä¤/ì•�üð•(% # Example: disable UTF-8 requirementÁ™–�ü�–IF By default, regex patterns are required to match UTF-8. This includesÁüç–MJ regex patterns that can produce matches of length zero. In the case of anÁüµ—NK empty match, by default, matches will not appear between the code units ofÁô„˜ a UTF-8 encoded codepoint.Á£˜�ü§˜JG However, it can be useful to disable this requirement, particularly ifÁüò˜NK you're searching things like `&[u8]` that are not known to be valid UTF-8.ÁÁ™�<Å™ä¤/üÍ™;Áå;‰š�ü�š'$ let mut builder = Regex::builder();ÁüµšC@ // Disables the requirement that non-empty matches match UTF-8.Áüùš63 builder.syntax(syntax::Config::new().utf8(false));Áü°›JG // Disables the requirement that empty matches match UTF-8 boundaries.Áüû›96 builder.configure(Regex::config().utf8_empty(false));Áµœ�ü¹œEB // We can match raw bytes via \xZZ syntax, but we need to disableÁüÿœGD // Unicode mode to do that. We could disable it everywhere, or justÁüÇ�" // selectively, as shown here.Áüê�85 let re = builder.build(r"(?-u:\xFF)foo(?-u:\xFF)")?;Á죞 let hay = b"\xFFfoo\xFF";ÁüÁž96 assert_eq!(Some(Match::must(0, 0..5)), re.find(hay));Áûž�üÿž,) // We can also match between code units.Áü¬Ÿ! let re = builder.build(r"")?;Á¤ÎŸÿ<üãŸ?< assert_eq!(re.find_iter(hay).collect::>(), vec![Á죠š…?ìÁ Ÿ‡?ìß Ƈ?ìý Á…?<›¡Óó9£¡�ü§¡.Ǭ/<Ö¡ä¤/¹<�¢Ó‘ïŒùÃ’ðÐÑÒt�¢4�¢ÛÏÏÅ�ô£¢£¢ÛÏÏéúüÇ¢&Ç¢ÛÏÏ‘ü¾ãÓ‘Ô†Ô¾¾Ï3 Ï3Ó‘Ó‘BÿÓ²ç¡Ó Ô¾õ¾äÓ‘Ö gÖõ¾õ¾Ð3Ñ3Ò3 Ð3Ó‘ Ñ3€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ò3­àBÿÕ³î¡Õ Öõ¾œõ¾ü¶% !ÁtÈ%!¬’ŽNGpQ¥"ØÙÚ´Ý%!4è%!××–‡̪&!µ&!××äüü�)!!D›)!×ׯÕwé鬒ܠgÜwéwéß3à3á3 ß3¬’ à3€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡á3­àBÿÛ¿®%!Û Üwéœwél½<ÜÄ<‚ŒÞÞŸÛ/ È<ù’ŸªjFÅN¥vßà "4Ñ<Ñ<‚Ýݵ“¬Ý<TÝ<‚ÝÝý݈셌ââŸÛ/‰…µ“øÈ<ù’ã†ã¬®ˆìˆìš4 š4ù’ù’Bÿáø®<á 㵓ˆìE톌ååŸÛ/8Ÿgµ“ùÈ<ù’æ gæ\_EíEí›4œ4�4 ›4ù’ œ4€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡�4­àBÿäùµ<ä æµ“EíœEí\¢�à$©�‚ؓ욑8é7'yèéêëìíîïð|´�$´�‚ççñ‰´É�É�‚çç¹Å Då�å�‚çç�»œó�4ó�‚ç矒Č�4Œ�‚ççÿ–üª�'Lª�‚ç縘Ô×�<×�‚ççñ™Ä÷�4÷�‚ç窛”•‘•‘‚ççãœøŠØ“ò gòøøÀ4Á4Â4 À4Ø“ Á4€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Â4­àBÿñ€š�ñ òøœø´„ �|‹ ‚ý”ik[¤�£mZôT¡ $¡ ‚óóØ“Ñ8«ý”ö göÑ8Ñ8ø4ù4ú4 ø4ý” ù4€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ú4­àBÿõÁüŸõ öÑ8œÑ8¤�â�lˆâ‚¾•5#}²ÄWÐâøùTœâ$œâ‚÷÷Ø“t¬â¬â‚÷÷äüþU»¾•û gûþUþUœ5�5ž5 œ5¾• �5€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ž5­àBÿúÞùáú ûþUœþUœ�Ù­d”Ù‚Œ–Y3„”|ëýþÿ€ � T§Ù$§Ù‚üüØ“œ·ÙD·Ù‚üüäü\ÐÙ4ÐÙ‚üü�»üáÙ4áÙ‚üü×�̆Ú†Ú‚üü�Ÿ‹ëŒ–ƒ  gƒ ‹‹Ê5Ë5Ì5 Ê5Œ– Ë5€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ì5­àBÿ‚ µ…Ù‚ ƒ ‹œ‹C Ë4à ÿ–b49³Û¶… † ¹—ÿ–BÿC 8£ ¹—ÿ–Bÿ„ „ … dç £ „ „ ¹—èÆ‘ ÿ–ˆ  gˆ èÆèÆù5ú5û5 ù5ÿ– ú5€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡û5­àBÿ‡ üÆ ‡ ˆ èÆœèÆ“ ÌdË ¹—Ú܈ öÐ@Š ‹ ðĹ—Bÿ“ 8£ ðĹ—Bÿ‰ ‰ Š tØ £ ‰ ‰ ðÄUÈ’ ¹—�  g� UÈUÈ€6�6‚6 €6¹— �6€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡‚6­àBÿŒ ý± Œ � UÈœUÈã Î\ü ó—²Is«?¸o� � Æ–ó—Bÿã 8£ Æ–ó—BÿŽ Ž � ¬ˆ £ Ž Ž Æ–5Ë” ó—’ †’ 5Ë5Ë“6 “6ó—ó—Bÿ‘ €Û ‘ ’ 5˱˕ ó—”  g” ±Ë±Ë”6•6–6 ”6ó— •6€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡–6­àBÿ“ �â “ ” ±Ëœ±Ë3 Ï”�# ¸˜¦þ‘ˆìší– — 暸˜Bÿ3 8£ 暸˜Bÿ• • – ü£# £ • • 暺̖ ¸˜™  g™ ºÌºÌœ6�6ž6 œ6¸˜ �6€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ž6­àBÿ˜ ‚ö" ˜ ™ ºÌœºÌ„ ÐÄš1 ò˜ÎÖî¡cKò› œ «¡ò˜Bÿ„ 8£ «¡ò˜Bÿš š › ìÚ1 ÓôÃB̾1 ü¸1! £ š š «¡Î— ò˜ž  gž ÎÎ¥6¦6§6 ¥6ò˜ ¦6€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡§6­àBÿ� ƒ€1 � ž ΜÎÕ Ò¼�J ¬™*Î×à?²­Ë  ¡ ³Ÿ¬™BÿÕ 8£ ³Ÿ¬™BÿŸ Ÿ   ÄÎJ ÓôÃB̲J ü¬J! £ Ÿ Ÿ ³Ÿ¢Ï™ ¬™£ †£ ¢Ï¢Ï´6 ´6¬™¬™Bÿ¢ †îI ¢ £ ¢ÏÐ𠬙¥  g¥ Ðе6¶6·6 µ6¬™ ¶6€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡·6­àBÿ¤ ‡õI ¤ ¥ МÐ& Ó<’S ñ™¼.j?ßÕ–§ ¨ Ò£ñ™Bÿ& 8£ Ò£ñ™Bÿ¦ ¦ § ¬šS £ ¦ ¦ Ò£'Ñ› ñ™ª  gª 'Ñ'ѽ6¾6¿6 ½6ñ™ ¾6€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡¿6­àBÿ© ˆøR © ª 'Ñœ'Ñv ÔlŒY «šÿáS”ý§0¬ ­ ¡é«šBÿv 8£ ¡é«šBÿ« « ¬ d¿Y Ó©†/¼¥Y üŸY £ « « ¡é Öœ «š¯  g¯  Ö ÖÇ6È6É6 Ç6«š È6€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡É6­àBÿ® ‰òX ® ¯  Öœ ÖÇ Ødøw åšÑïÍ�ˆCƒc± ² Á°åšBÿÇ 8£ Á°åšBÿ° ° ± ´ªx Ó©†/¼�x üŠx £ ° ° Á°0Ø  åš´ †´ 0Ø0ØÓ6 Ó6åšåšBÿ³ �×w ³ ´ 0جء åš¶  g¶ ¬Ø¬ØÔ6Õ6Ö6 Ô6åš Õ6€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ö6­àBÿµ ‘Þw µ ¶ ¬Øœ¬Ø Ù4‡� ª›N;o¯�'ì¸ ¹ â´ª›Bÿ 9£ â´ª›Bÿ· · ¸ ¤Ž� £ · · â´µÙ¢ ª›»  g» µÙµÙÛ6Ü6Ý6 Û6ª› Ü6€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ý6­àBÿº ’í€ º » µÙœµÙh Úd׆ 䛪/°œÿ¥>½ ¾ á�ä›Bÿh 9£ á�ä›Bÿ¼ ¼ ½ ¤„‡ Óª+”ï† Ôé† £ ¼ ¼ á�pÝ£ ä›À  gÀ pÝpÝæ6ç6è6 æ6ä› ç6€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡è6­àBÿ¿ “½† ¿ À pÝœpݹ Þ\œÃ žœˆòcY‰³:î à ‹¾žœBÿ¹ 9£ ‹¾žœBÿÁ Á  äÈà Ӫ+”³Ã Ô­Ã £ Á Á ‹¾$ñ§ žœÅ †Å $ñ$ñ…7 …7žœžœBÿÄ šûÂ Ä Å $ñ¢ñ¨ žœÇ  gÇ ¢ñ¢ñ†7‡7ˆ7 †7žœ ‡7€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ˆ7­àBÿÆ ›‚Ã Æ Ç ¢ñœ¢ñ  ßúË ãœk¹ãr·»!É Ê ÛæãœBÿ  9£ ÛæãœBÿÈ È É ŒþË £ È È Ûæ¯ò© ãœÌ  gÌ ¯ò¯ò�7Ž7�7 �7㜠Ž7€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡�7­àBÿË œàË Ë Ì ¯òœ¯ò[ àLÂÑ ��š%—8¼.£:Î Ï ��Bÿ[ 8£ ��BÿÍ Í Î ©Ò Ó� ¬�Ò ¼�Ò ü†Ò" !£ Í Í döª ��Ñ  gÑ dödö˜7™7š7 ˜7�� ™7€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡š7­àBÿÐ �¨Ñ Ð Ñ döœdö« èlú‘ ×�çwèT›$žÓ Ô ³ø×�Bÿ« 9£ ³ø×�BÿÒ Ò Ó Üˆ’ £ Ò Ò ³ø†û² ×�Ö  gÖ †û†û²7³7´7 ²7×� ³7€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡´7­àBÿÕ ³à‘ Õ Ö †ûœ†ûý éœ�— ‘ž†–Pùd¨‡Ø Ù ïò‘žBÿý 9£ ïò‘žBÿ× × Ø „× Óª+”®— Ô¨— £ × × ïò<ÿ³ ‘žÛ  gÛ <ÿ<ÿ»7¼7½7 »7‘ž ¼7€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡½7­àBÿÚ ´õ– Ú Û <ÿœ<ÿO ì”Ûª Ëž1_�ÚúÍ'Ý Þ ì�ËžBÿO 9£ ì�ËžBÿÜ Ü Ý ÔŽ« Óª+”ùª Ôóª £ Ü Ü ì�¶ Ëžà †à Ä7 Ä7˞˞Bÿß ¹ºª ß à �· Ëžâ  gâ ��Å7Æ7Ç7 Å7Ëž Æ7€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ç7­àBÿá ºÁª á â �œ�¡ íTý³ �Ÿ¼Ð,‘æ×ôúä å ÇŠ�ŸBÿ¡ 9£ ÇŠ�ŸBÿã ã ä Ĉ´ £ ã ã ÇŠš¸ �Ÿç  gç ššÌ7Í7Î7 Ì7�Ÿ Í7€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Î7­àBÿæ »ã³ æ ç šœšò î„°¹ ÊŸFí]SN:üDé ê ÊŸBÿò 8£ ÊŸBÿè è é ¦º Ó� ¬�º ¼Œº üƒº" !£ è è P¹ ÊŸì  gì PPÖ7×7Ø7 Ö7ÊŸ ×7€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ø7­àBÿë ¼–¹ ë ì PœPŒÒ üö > ; The configuration used for building a bounded backtracker.Áµ �ü¹G D A bounded backtracker configuration is a simple data object that isÁü�/ , typically used with [`Builder::configure`].Áñ4Ý „ ³Òªò À„î ï ôê ê ² í í ôÄ üŽ „Ž ² í í ØÚ… ¼ „ ñ †ñ … … â7 â7„ „ Bÿð ú ð ñ … > ½ „ ó  gó > > ã7ä7å7 ã7„  ä7€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡å7­àBÿò ÄÁ ò ó > œ>  ¾ „ õ ÷õ   „ Bÿô ô õ ”ÚP üÃ?( % A builder for a bounded backtracker.Áì? �üð?M ª–_ü¾@L I NFA construction and the `BoundedBacktracker` construction. This builderÁü‹AM J is different from a general purpose regex builder in that it permits fineÁüÙAN K grain configuration of the construction process. The trade off for this isÁü¨BM J complexity, and the possibility of setting a configuration that might notÁüöBA > make sense. For example, there are two different UTF-8 modes:Á¸C �ü¼CJ £š_ü‡DM ÷š_TÕD ‹ÙGüàDL æÃbü­EK ½Äb¤ùE ’ÅbŽF �ü’FJ ñœ_ÌÝF Ä�_÷F �lûF •£/‰G �ü�GL éÉbüÚGL ÀÊb§H �<«H ä¤/̳H ô¤/üÍH= �ËD¬‹I ‘¢0t¡I ·„04°I Ý¥/·I �ü»I* ÑþCüæI2 è¢0ü™J6 ¥£0üÐJ& æ£0ü÷J& Ê›0žK �ü¢K4 ËÈ9ü×K2 / let expected = Some(Ok(Match::must(0, 1..9)));ÁüŠL< 9 let got = re.try_find_iter(&mut cache, haystack).next();ÁôÇL —‘3üæL6 �¡_ü�M8 Ý¡_üÖM" Ÿ¢_4ùM Å·0ü€N4 Ø¢_üµNF C // disabling UTF-8 mode on a BoundedBacktracker Config, since thatÁüüN7 4 // only impacts regexes that can produce matches ofÁ„´O // length 0.ÁüÅOA > assert_eq!(b"foo\xFFarzz", &haystack[got.unwrap()?.range()]);Á‡P �ü‹P. Ǭ/<ºP ä¤/ò<åP Þ Ê S(¥µÚ÷ ø tóP 4óP ² ö ö „ ä¦Q Óí”�Q Ô‡Q D¦Q ² ö ö ·¬r¿ Þ ú †ú rré7 é7Þ Þ Bÿù ÆËP ù ú r+À Þ ü  gü ++ê7ë7ì7 ê7Þ  ë7€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ì7­àBÿû ÇÒP û ü +œ+쮆 üœgN K A backtracking regex engine that bounds its execution to avoid exponentialÁdëg blow-up.Áøg �üügH E This regex engine only implements leftmost-first match semantics andÁüÅhL I only supports leftmost searches. It effectively does the same thing as aÁü’iN K [`PikeVM`](thompson::pikevm::PikeVM), but typically does it faster becauseÁüáiM J it doesn't have to worry about copying capturing group spans for most NFAÁü¯jO L states. Instead, the backtracker can maintain one set of captures (providedÁüÿjM J by the caller) and never needs to copy them. In exchange, the backtrackerÁüÍkK H bounds itself to ensure it doesn't exhibit worst case exponential time.Áü™lM J This results in the backtracker only being able to handle short haystacksÁüçl"  given reasonable memory usage.ÁŠm �üŽm# # Searches may return an error!Á²m �ü¶mG D By design, this backtracking regex engine is bounded. This bound isÁüþmL I implemented by not visiting any combination of NFA state ID and positionÁüËnJ G in a haystack more than once. Thus, the total memory required to boundÁü–oJ G backtracking is proportional to `haystack.len() * nfa.states().len()`.ÁüáoM J This can obviously get quite large, since large haystacks aren't terriblyÁü¯pJ G uncommon. To avoid using exorbitant memory, the capacity is bounded byÁüúpJ G a fixed limit set via [`Config::visited_capacity`]. Thus, if the totalÁüÅqH E capacity required for a particular regex and a haystack exceeds thisÁüŽr; 8 capacity, then the search routine will return an error.ÁÊr �üÎrL I Unlike other regex engines that may return an error at search time (likeÁü›sO L the DFA or the hybrid NFA/DFA), there is no way to guarantee that a boundedÁüësJ G backtracker will work for every haystack. Therefore, this regex engineÁü¶tM J _only_ exposes fallible search routines to avoid the footgun of panickingÁü„u8 5 when running a search on a haystack that is too big.Á½u �üÁuE B If one wants to use the fallible search APIs without handling theÁü‡vB ? error, the only way to guarantee an error won't occur from theÁüÊvD A haystack length is to ensure the haystack length does not exceedÁü�w- * [`BoundedBacktracker::max_haystack_len`].Á½w �üÁw& # # Example: Unicode word boundariesÁèw �üìwK H This example shows that the bounded backtracker implements Unicode wordÁü¸x$ ! boundaries correctly by default.ÁÝx �<áx ä¤/üéx= ÔÂ/ü§yN K use regex_automata::{nfa::thompson::backtrack::BoundedBacktracker, Match};Áöy �üúy2 / let re = BoundedBacktracker::new(r"\b\w+\b")?;Áü­z& Ê›0Ôz �üØzI F let mut it = re.try_find_iter(&mut cache, "Шерлок ХолмÑ�");Áü¢{; 8 assert_eq!(Some(Ok(Match::must(0, 0..12))), it.next());ÁüÞ{< 9 assert_eq!(Some(Ok(Match::must(0, 13..23))), it.next());Áü›| éÃ9ü¼|. Ǭ/<ë| ä¤/ó| �ü÷|& # # Example: multiple regex patternsÁž} �ü¢}D A The bounded backtracker supports searching for multiple patternsÁüç}N K simultaneously, just like other regex engines. Note though that because itÁü¶~M J uses a backtracking strategy, this regex engine is unlikely to scale wellÁü„O L as more patterns are added. But then again, as more patterns are added, theÁüÔK H maximum haystack length allowed will also shorten (assuming the visitedÁü €  capacity remains invariant).ÁÁ€ �<Å€ ä¤/üÍ€N þ™eœ� �ü �B ȱDüã�& Ê›0Š‚ �üŽ‚G ±²DüÖ‚: ƒ³Dü‘ƒ: ȳDü̃: �´Dü‡„< Ò´DüÄ„< ™µDü�…< àµDü¾… éÃ9üß…. Ǭ/<ކ ä¤/󔹆 «¡BÎôü.JEþ ÿ tÒ† 4Ò† ² ý ý „ Dæ† æ† ² ý ý �»)Á «¡�!†�!))õ7 õ7«¡«¡Bÿ€!ÈŸ† €! �!)â «¡ƒ! gƒ!ââö7÷7ø7 ö7«¡ ÷7€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ø7­àBÿ‚!ɦ† ‚! ƒ!âœâüÄà% ü§ÜG �µTïÜ �üóÜH E The iterator yields a `Result‰–Š ¥Ÿ! !Œ‚ø ,‚ø ² ž!ž!ÊÅ„áú <áú ² ž!ž!°¥ñbŠ죢!†¢!ñbñb°8 °8ì£ì£Bÿ¡!Ήö ¡! ¢!ñbµcÆ ì£¤! g¤!µcµc±8²8³8 ±8ì£ ²8€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡³8­àBÿ£!Ï�ö £! ¤!µcœµcT‘— ú,–— ² »¤µ½£¹ï*¾ƒ¦!©!§!¨!ª!«!$ý— ú² ¥!¥!»¤d„˜ „˜ ² ¥!¥!ÇL’˜ ’˜ ² ¥!¥!tþ› ú² ¥!¥!»¤„�œ $�œ ² ¥!¥!×�Ü¡œ 4¡œ ² ¥!¥!¹¨UeÇ »¤­!†­!UeUe¼8 ¼8»¤»¤Bÿ¬!Ñ‚— ¬! ­!Ue½gÈ »¤¯! g¯!½g½g½8¾8¿8 ½8»¤ ¾8€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡¿8­àBÿ®!Ò‰— ®! ¯!½gœ½gt½ž û<Äž ² °¥�²Ã§Ø“±!²!”Ʀ 4Ʀ ² °!°!Â×lú§ 4ú§ ² °!°!ÍkÉ °¥´!†´!ÍkÍkÀ8 À8°¥°¥Bÿ³!Ó®ž ³! ´!ÍkolÊ °¥¶! g¶!ololÁ8Â8Ã8 Á8°¥ Â8€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ã8­àBÿµ!Ôµž µ! ¶!olœolTº ý,¿ ¯ þ¥l±«»§0ªè¸!º!¼!¾!Á!Å!É!Ë!Í!Î!Ï!¹!»!½!¿!À!Â!Ã!Ä!Æ!Ç!È!Ê!Ì!Î!  Ð!,Ú ý¯ ·!·!þ¥l« $« ¯ ·!·!ÇLÁ ý¯ ·!·!þ¥ŒÍ ,Í ¯ ·!·!ÝÁ4¬ ý¯ ·!·!þ¥äµ \µ ¯ ·!·!ßã$² ý¯ ·!·!þ¥T¹ $¹ ¯ ·!·!ôílÅ $Å ¯ ·!·!ÇdÙ ý¯ ·!·!þ¥¬± T± ¯ ·!·!›†¼« \« ¯ ·!·!×�l� $� ¯ ·!·!ÇT¤ ý¯ ·!·!þ¥¬ú Tú ¯ ·!·!›†¼ô! \ô! ¯ ·!·!×�lÖ" $Ö" ¯ ·!·!Ç,µ$ ý¯ ·!·!þ¥Ľ$ T½$ ¯ ·!·!•öd‘, ý¯ ·!·!þ¥Ä , T , ¯ ·!·!•ö$Ñ. ý¯ ·!·!þ¥¯ ·!·!þ¥,ª2 ý¯ ·!·!þ¥¬²2 T²2 ¯ ·!·!›†ònË þ¥Ò!†Ò!ònònÍ8 Í8þ¥þ¥BÿÑ!Öœ Ñ! Ò!ònåvÌ þ¥Ô! gÔ!åvåvÎ8Ï8Ð8 Î8þ¥ Ï8€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ð8­àBÿÓ!×£ Ó! Ô!åvœåvÊ‚Í þ¥Ö!ÎÖ!ʂʂʂʂÑ8 Ñ8þ¥BÿÕ!ت Õ! Ö!Ê‚3ƒÎ þ¥3ƒÎ þ¥Ù!ù±Ù!3ƒ3ƒÒ8Ó8 Ò8þ¥ Ó8þ¥BÿØ!Ù® Ø! Ù!3ƒî 3ƒ”Òs üŒ=6 3 An abstraction for building Thompson NFAs by hand.ÁÃ= �üÇ=N K A builder is what a [`thompson::Compiler`](crate::nfa::thompson::Compiler)Áü–>B ? uses internally to translate a regex's high-level intermediateÁüÙ># representation into an [`NFA`].Áý> �ü�?I F The primary function of this builder is to abstract away the internalÁüË?K H representation of an NFA and make it difficult to produce NFAs are thatÁü—@K H internally invalid or inconsistent. This builder also provides a way toÁüã@H E add "empty" states (which can be thought of as unconditional epsilonÁü¬AL I transitions), despite the fact that [`thompson::State`](nfa::State) doesÁüùAK H not have any "empty" representation. The advantage of "empty" states isÁüÅBN K that they make the code for constructing a Thompson NFA logically simpler.Á”C �ü˜CN K Many of the routines on this builder may panic or return errors. GenerallyÁüçCN K speaking, panics occur when an invalid sequence of method calls were made,Áü¶DO L where as an error occurs if things get too big. (Where "too big" might meanÁü†EN K exhausting identifier space or using up too much heap memory in accordanceÁüÕEA > with the configured [`size_limit`](Builder::set_size_limit).)Á—F �t›F # OverviewÁªF �ü®F  ## Adding multiple patternsÁÎF �üÒFA > Each pattern you add to an NFA should correspond to a pair ofÁü”GJ G [`Builder::start_pattern`] and [`Builder::finish_pattern`] calls, withÁüßGK H calls inbetween that add NFA states for that pattern. NFA states may beÁü«HM J added without first calling `start_pattern`, with the exception of addingÁ¬ùH  capturing states.Á�I �Ä“I  ## Adding NFA statesÁ¬I �ü°IM J Here is a very brief overview of each of the methods that add NFA states.ÁüþI% " Every method adds a single state.Á¤J �ü¨JB ? * [`add_empty`](Builder::add_empty): Add a state with a singleÁüëJ6 3 unconditional epsilon transition to another state.Áü¢KH E * [`add_union`](Builder::add_union): Adds a state with unconditionalÁüëKG D epsilon transitions to two or more states, with earlier transitionsÁô³L  preferred over later ones.ÁüÒLJ G * [`add_union_reverse`](Builder::add_union_reverse): Adds a state withÁü�MG D unconditional epsilon transitions to two or more states, with laterÁüåM, ) transitions preferred over earlier ones.Áü’NN K * [`add_range`](Builder::add_range): Adds a state with a single transitionÁüáNK H to another state that can only be followed if the current input byte isÁÜ­O  within the range given.ÁüÉOH E * [`add_sparse`](Builder::add_sparse): Adds a state with two or moreÁü’PJ G range transitions to other states, where a transition is only followedÁüÝPJ G if the current input byte is within one of the ranges. All transitionsÁü¨QK H in this state have equal priority, and the corresponding ranges must beÁ¤ôQ  non-overlapping.Áü‰RO L * [`add_look`](Builder::add_look): Adds a state with a single *conditional*ÁüÙRI F epsilon transition to another state, where the condition depends on aÁü£S!  limited look-around property.ÁüÅSJ G * [`add_capture_start`](Builder::add_capture_start): Adds a state withÁü�TH E a single unconditional epsilon transition that also instructs an NFAÁüÙTM J simulation to record the current input position to a specific location inÁü§UN K memory. This is intended to represent the starting location of a capturingÁTöU  group.Áü�VF C * [`add_capture_end`](Builder::add_capture_end): Adds a state withÁüÈVH ¶îeü‘WM ˆïeüßWL I memory. This is intended to represent the ending location of a capturingÁT¬X ¶ðeü·XM J * [`add_fail`](Builder::add_fail): Adds a state that never transitions toÁ”…Y  another state.Áü˜YO L * [`add_match`](Builder::add_match): Add a state that indicates a match hasÁüèYL I been found for a particular pattern. A match state is a final state withÁäµZ  no outgoing transitions.ÁÒZ �üÖZ- * ## Setting transitions between NFA statesÁ„[ �üˆ[L I The [`Builder::patch`] method creates a transition from one state to theÁüÕ[K H next. If the `from` state corresponds to a state that supports multipleÁü¡\L I outgoing transitions (such as "union"), then this adds the correspondingÁüî\N K transition. Otherwise, it sets the single transition. (This routine panicsÁü½]O L if `from` corresponds to a state added by `add_sparse`, since sparse statesÁü�^$ ! need more specialized handling.)Á²^ �l¶^ •£/Ä^ �üÈ^I F This annotated example shows how to hand construct the regex `[a-z]+`Áü’_# (without an unanchored prefix).Á¶_ �<º_ ä¤/ÌÂ_ ô¤/üÜ_= ¢âFüš`" ÿØFt½` ·„04Ì` Ý¥/Ó` �ü×`% ƒÚFüý`L I // Before adding NFA states for our pattern, we need to tell the builderÁüÊa( % // that we are starting the pattern.Áìóa ²ÚFü‘bM J // Since we use the Pike VM below for searching, we need to add capturingÁüßbO L // states. If you're just going to build a DFA from the NFA, then capturingÁü¯c& # // states do not need to be added.ÁüÖcC —ÛFüšd. + let range = builder.add_range(Transition {ÁüÉdN K // We don't know the state ID of the 'next' state yet, so we just fillÁü˜e# // in a dummy 'ZERO' value.Áü¼e4 ÍíFDñe ïçFüúeO L // This state will point back to 'range', but also enable us to move ahead.ÁüÊfO L // That is, this implements the '+' repetition operator. We add 'range' andÁüšg, ) // then 'end' below to this alternation.ÁüÇg) ÌéFüñgJ G // The final state before the match state, which serves to capture theÁü¼h!  // end location of the match.ÁüÞh9 6 let end = builder.add_capture_end(StateID::ZERO, 0)?;Áü˜i' $ // The match state for our pattern.ÁüÀi# let mat = builder.add_match()?;Áüäi5 2 // Now we fill in the transitions between states.Áüšj!  builder.patch(start, range)?;Áü¼j  builder.patch(range, alt)?;ÁüÜjG D // If we added 'end' before 'range', then we'd implement non-greedyÁä¤k  // matching, i.e., '+?'.ÁüÁk  builder.patch(alt, range)?;Áìák  builder.patch(alt, end)?;Áìÿk  builder.patch(end, mat)?;Áü�lN K // We must explicitly finish pattern and provide the starting state ID forÁüìl  // this particular pattern.ÁüŒm# ªßFü°mM J // Finally, when we build the NFA, we provide the anchored and unanchoredÁüþmK H // starting state IDs. Since we didn't bother with an unanchored prefixÁüÊnO L // here, we only support anchored searching. Thus, both starting states areÁ„šo // the same.Áü«o+ ( let nfa = builder.build(start, start)?;Á×o �üÛoM J // Now build a Pike VM from our NFA, and use it for searching. This showsÁü©pH E // how we can use a regex engine without ever worrying about syntax!Áüòp( ÿãHü›q& Ê›0üÂq( û›0üëq. ì¸1üšr/ , re.captures(&mut cache, "foo0", &mut caps);ÁüÊr+ ÄŠ0ör �üúr. Ǭ/<©s ä¤/þ<Ýs �©|í6ŸtdñªÛ!Ü!Ý!Þ!ß!à!á!â!ã!ì´u T´u ¯ Ú!Ú!€ª”‡x 4‡x ¯ Ú!Ú!„­Üêz lêz ¯ Ú!Ú!•öüÆ~$ DÆ~ ¯ Ú!Ú!·®¤‹� l‹� ¯ Ú!Ú!TÌ‚ $Ì‚ ¯ Ú!Ú!lšƒ <šƒ ¯ Ú!Ú!Ìäƒ däƒ ¯ Ú!Ú!‚óÌÃ… TÃ… ¯ Ú!Ú!ØÚΘÏ �©å!†å!ΘΘÖ8 Ö8�©�©Bÿä!Úºs ä! å!Θ…šÐ �©ç! gç!…š…š×8Ø8Ù8 ×8�© Ø8€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ù8­àBÿæ!ÛÁs æ! ç!…šœ…š¢Ñ �©é!÷é!¢¢�©Bÿè!è! é!Œõ üœ7 4 The configuration used for a Thompson NFA compiler.Áˆ4€ ±ªÃ?A1€‡9ë!ì!í!î!ï!ð!”� $� é ê!ê!ߨ¬¥ <¥ é ê!ê!ߨüÀ% tÀ é ê!ê!“Ú¤ë 4ë é ê!ê!ߨü…% t… é ê!ê!£Òü°! d° é ê!ê!ãÉÒ¤Ú ±ªò!†ò!Ò¤Ò¤ö8 ö8±ª±ªBÿñ!ñÝ ñ! ò!Ò¤à¥Û ±ªô! gô!à¥à¥÷8ø8ù8 ÷8±ª ø8€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ù8­àBÿó!òä ó! ô!ड़à¥Z«Ü ±ªö!÷ö!Z«Z«±ªBÿõ!õ! ö!´—¡ ü±ž- * A configuration indicating which kinds ofÁüßžO L [`State::Capture`](crate::nfa::thompson::State::Capture) states to include.Á¯Ÿ �ü³ŸM J This configuration can be used with [`Config::which_captures`] to controlÁü� : 7 which capture states are compiled into a Thompson NFA.Á¼  �üÀ 8 5 The default configuration is [`WhichCaptures::All`].Á‰l ¡ ¼«�í±–’,âø!ù!ú!û!ü!ý!ù!û!ý!Æ¢ ü´¡J G All capture states, including those corresponding to both implicit andÁüƒ¢> ; explicit capture groups, are included in the Thompson NFA.Á‰¦÷!÷!¼«º¼÷!÷!¼«Dè¦ üÏ¢D A Only capture states corresponding to implicit capture groups areÁü˜£H E included. Implicit capture groups appear in every pattern implicitlyÁüå£5 2 and correspond to the overall match of a pattern.ÁŸ¤ �ü§¤C @ This is useful when one only cares about the overall match of aÁüï¤F C pattern. By excluding capture states from explicit capture groups,Áüº¥I F one might be able to reduce the memory usage of a multi-pattern regexÁüˆ¦K H substantially if it was otherwise written to have many explicit captureÁ\ئ ÝÍc‰N÷!÷!¼«cf÷!÷!¼«$•² üö¦9 6 No capture states are compiled into the Thompson NFA.Á´§ �ü¼§J G This is useful when capture states are either not needed (for example,Áü‹¨J G if one is only trying to build a DFA) or if they aren't supported (forÁäÚ¨  example, a reverse NFA).Áû¨ �lƒ© # WarningÁ•© �ü�©7 4 Callers must be exceedingly careful when using thisÁüÙ©8 5 option. In particular, not all regex engines supportÁü–ª> ; reporting match spans when using this option (for example,ÁüÙª7 4 [`PikeVM`](crate::nfa::thompson::pikevm::PikeVM) orÁü•«Q N [`BoundedBacktracker`](crate::nfa::thompson::backtrack::BoundedBacktracker)).Áë« �üó«< 9 Perhaps more confusingly, using this option with such anÁü´¬? < engine means that an `is_match` routine could report `true`Áüø¬? < when `find` reports `None`. This is generally not somethingÁü¼­? < that _should_ happen, but the low level control provided byÁü€®!  this crate makes it possible.Á¦® �ü®®K H Similarly, any regex engines (like [`meta::Regex`](crate::meta::Regex))Áüþ®H E should always return `None` from `find` routines when this option isÁü˯E B used, even if _some_ of its internal engines could find the matchÁü•°E B boundaries. This is because inputs from user data could influenceÁüß°I F engine selection, and thus influence whether a match is found or not.Áü­±I F Indeed, `meta::Regex::find` will always return `None` when configuredÁ¬û±  with this option.Á‰A÷!÷!¼«VY÷!÷!¼«¬¬¬Ý ¼«¬Ý ¼«€"†€"¬¬ƒ9 ƒ9¼«¼«Bÿÿ!ô‚¡ ÿ! €"¬ õ‰¡ Þ ¼«r¬ß ¼«ƒ" gƒ"r¬r¬„9…9†9 „9¼« …9€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡†9­àBÿ‚"ö�¡ ‚" ƒ"r¬œr¬œÇÚ ü»ÅI F A builder for compiling an NFA from a regex's high-level intermediateÁÌ…Æ  representation (HIR).ÁŸÆ �ü£ÆL I This compiler provides a way to translate a parsed regex pattern into anÁüðÆO L NFA state graph. The NFA state graph can either be used directly to executeÁüÀÇN K a search (e.g., with a Pike VM), or it can be further used to build a DFA.Á�È �ü“ÈO L This compiler provides APIs both for compiling regex patterns directly fromÁüãÈ? < their concrete syntax, or via a [`regex_syntax::hir::Hir`].Á£É �ü§É@ = This compiler has various options that may be configured viaÁüèÉ!  [`thompson::Config`](Config).ÁŠÊ �üŽÊM J Note that a compiler is not the same as a [`thompson::Builder`](Builder).ÁüÜÊI F A `Builder` provides a lower level API that is uncoupled from a regexÁü¦ËL I pattern's concrete syntax or even its HIR. Instead, it permits stitchingÁüóË7 4 together an NFA by hand. See its docs for examples.Á«Ì �ü¯Ì/ , # Example: compilation from concrete syntaxÁßÌ �üãÌO L This shows how to compile an NFA from a pattern string while setting a sizeÁü³ÍO L limit on how big the NFA is allowed to be (in terms of bytes of heap used).ÁƒÎ �<‡Î ä¤/Ì�Î ô¤/ü©Î- * nfa::thompson::{NFA, pikevm::PikeVM},Át×Î ·„04æÎ Ý¥/íÎ �üñÎ; ñ‡0ü­ÏC ¤ãHñÏ �üõÏ( ÿãHüžÐ& Ê›0üÅÐ( û›0üîÐ. ø»Dü�Ñ2 ßäHüÐÑ+ ÄŠ0üÑ �ü€Ò. Ǭ/<¯Ò ä¤/·Ò �ü»Ò# # Example: compilation from HIRÁßÒ �üãÒN K This shows how to hand assemble a regular expression via its HIR, and thenÁü²Ó$ ! compile an NFA directly from it.Á×Ó �<ÛÓ ä¤/üãÓF ·âHüªÔE Þ„0ðÔ �üôÔ; »…0ü°Õ) �†0üÚÕ) µ†0ü„Ö) é†0ü®Ö) �‡0LØÖ Ї0âÖ �üæÖ; ñ‡0ü¢×F ·ˆ0é× �üí×( ÿãHü–Ø& Ê›0ü½Ø( û›0üæØ. ø»Dü•Ù2 ßäHüÈÙ+ ÄŠ0ôÙ �üøÙ. Ǭ/<§Ú ä¤/‹DÒÚ ·¬Ü«ÐÝ�•…"†"‡"ˆ"‰"Š"¬¼Û 4¼Û é „"„"³ÜtûÛ 4ûÛ é „"„"±ªÌŒÝ <ŒÝ é „"„"äÝô‚ß T‚ß é „"„"ÜÞôñß Tñß é „"„"Õßü“á# \“á é „"„"Ïà5°à ·¬Œ"†Œ"5°5°‰9 ‰9·¬·¬Bÿ‹"ø¸Ú ‹" Œ"5°£±á ·¬Ž" gŽ"£±£±Š9‹9Œ9 Š9·¬ ‹9€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Œ9­àBÿ�"ù¿Ú �" Ž"£±œ£±죔 “\µ” ¸­éëCjDÓÄ�"‘"ÌÇ” ,Ò” �"�"Ç¼æ” ñ” �"�"Çføføføå ¸­føå ¸­”"†”"føføÈ9 È9¸­¸­Bÿ“"…Ž” “" ”"fø †•” æ ¸­Íøç ¸­—" g—"ÍøÍøÉ9Ê9Ë9 É9¸­ Ê9€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ë9­àBÿ–"‡›” –" —"ÍøœÍø¼¾ž ”dÅž é Ä™"™"™®a˜Eœì«Qš"›"œ"Òž ÄÜž <Üž é ˜"˜"«±IÄúž ,úž é ˜"˜"µ±I|˜Ÿ 4˜Ÿ é ˜"˜"Çkúè Äž"ž"™®Ÿ" gŸ"Ž�kúkúÌ9Í9Î9 Ì9™® Í9€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Î9­àBÿ�"ˆ¶ž �" Ÿ"Äkúœkú„ÄŸ •LËŸ é í®OZØ1  žj¡"¢"ÄÛŸ DÛŸ é  " "�·ÌùŸ TùŸ é  " "�û‡ýé í®¤"†¤"‡ý‡ýÏ9 Ï9í®í®Bÿ£"‰µŸ £" ¤"‡ýNþê í®¦" g¦"NþNþÐ9Ñ9Ò9 Ð9í® Ñ9€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ò9­àBÿ¥"мŸ ¥" ¦"NþœNþ|¯  –D¶  é ¼¯ƒÈhˆÌ¨"©"´Å  ,Å  é §"§"ßãüá  $á  é §"§"»�«ë ¼¯«"†«"««Ó9 Ó9¼¯¼¯Bÿª"‹   ª" «"«oì ¼¯­" g­"ooÔ9Õ9Ö9 Ô9¼¯ Õ9€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ö9­àBÿ¬"Œ§  ¬" ­"oœoÌž¡ —”¥¡ é Š°±ØU¶Ž�¯"°"L¾¡ ,¾¡ é ®"®"<Í¡ Í¡ é ®"®"Ví Š°²"†²"VV×9 ×9ааBÿ±"��¡ ±" ²"Vëî Š°´" g´"ëëØ9Ù9Ú9 Ø9а Ù9€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ú9­àBÿ³"Ž–¡ ³" ´"ëœë¬ê"üQI"F An error that can occurred during the construction of a thompson NFA.Á›"�üŸJ"Ä�`üê1"™�`œ"�ü G"â�`üèI"F * Access an underlying [`regex_syntax::Error`] type from its `source`Áü²O"‰’`ü‚L"I convenience routines for building an NFA directly from a pattern string.ÁÏ"�üÓI"F Otherwise, errors typically occur when a limit has been breached. ForÁü�J"G example, if the total heap usage of the compiled NFA exceeds the limitÁüèI"F set by [`Config::nfa_size_limit`](crate::nfa::thompson::Config), thenÁü²" building the NFA will fail.Á Tõ"×°J~Qq«uÄ ¶"¤†"$†"ó µ"µ"˜±Ãï ×°¸"†¸"ÃÃè9 è9×°×°Bÿ·"›Û"·" ¸"Ã?ð ×°º" gº"??é9ê9ë9 é9×° ê9€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ë9­àBÿ¹"œâ"¹" º"?œ?œ†"¡t‹"ó ˜±Ld ¿ce•æ¼"½"¿"À"Â"Ã"Å"È"Ë"Í"Ï"Ð"½"¾"ØÙ ˜±BÿÀ"Á"¶ß˜±BÿÃ"Ä"Ïó˜±BÿÆ"Ç"É"Ê"Ì"Î"Ð"C Óí”ð "Ôê "¡C ó »"»" ½"C C ó ØÙ ˜±Bÿ»"»"ºåfœ� "ó »"»"ØÙ “ ¡“ ó »"»" À"“ “ ó ¶ß˜±Bÿ»"»"±æfÄÚ "ó »"»"¶ßã ¡ã ó »"»" Ã"ã ã ó Ïó˜±Bÿ»"»"¨çfô¿"ó »"»"Ïó|¾"¡ó »"»"˜±d›",›"ó »"»"dâ",â"ó »"»"lÊ"¡ó »"»"˜±dÂ",Â"ó »"»"d‡",‡"ó »"»"Œû"¡ó »"»"˜±dÃ",Ã"ó »"»"œŸ"¡ó »"»"˜±Të",ë"ó »"»"œÝ"Óí”Ä"Ô¾"¡ó »"»"˜±02ó »"»"˜±lñ ˜±Ò"†Ò"llì9 ì9˜±˜±BÿÑ"�÷"Ñ" Ò"l? ò ˜±Ô" gÔ"? ? í9î9ï9 í9˜± î9€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ï9­àBÿÓ"žþ"Ó" Ô"? œ? ìù! ª\‹" ¿³F lÞ%J�Ö"×"”›$ 4›$ ‰ Õ"Õ"¾©L¡% ¡% ‰ Õ"Õ"Èû ¿³Ù"†Ù"ÈÈö9 ö9¿³¿³BÿØ"¯ñ! Ø" Ù"È„…k ²,Œk ‰ ÄÛ"Û"Ž´e%µ'V롳Ü"Ý"Þ"ß"’k ÜÔk 4Ôk ‰ Ú"Ú"ɵüÐm. \Ðm ‰ Ú"Ú"�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫÄ«¶œøp ,øp ‰ Ú"Ú"•öüÔr! 4Ôr ‰ Ú"Ú"ßãiÿ Äá"á"Ž´â" gâ"ôöiiÿ9€:�: ÿ9Ž´ €:€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡�:­àBÿà"ºýj à" â"Äiœidà µ,ʃ ‰ ï´2<¹Ÿ9Ȉä"å"äÖƒ \Öƒ ‰ ã"ã"ì²Üøƒ 4øƒ ‰ ã"ã"è³Õ€ ï´ç"†ç"ÕÕ‚: ‚:ï´ï´Bÿæ"½²ƒ æ" ç"Õé� ï´é"÷é"ééï´Bÿè"è" é"Ô´š º|»š ‰ Äë"ë"ɵŽUz¬ô•ÀÙì"í"î"Ëš ìÕš \Õš ‰ ê"ê"©ÚIüøš- 4øš ‰ ê"ê"�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫÄ£´ü«› 4«› ‰ ê"ê"èÚI}† Äð"ð"ɵñ" gñ"ßá}}‹:Œ:�: ‹:ɵ Œ:€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡�:­àBÿï"Ǭš ï" ñ"Ä}œ}Œ�Ÿ »T”Ÿ ‰ «¶@E&°—#2§ó"ô"D¥Ÿ $¥Ÿ ‰ ò"ò"l³Ÿ $³Ÿ ‰ ò"ò"Ç999‡ «¶9‡ «¶÷"†÷"99�: �:«¶«¶Bÿö"Èÿž ö" ÷"9 ɆŸ ˆ «¶ÌŠ #½t• #�·OÞwP ‹oìú"û"ü"d£##<£##³ ù"ù"|í##Dí##³ ù"ù"Ô€%#€%#³ ù"ù"ÿ¬Š �·þ"†þ"¬¬“: “:�·�·Bÿý"Ìû#ý" þ"¬e ‹ �·€# g€#e e ”:•:–: ”:�· •:€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡–:­àBÿÿ"Í‚ #ÿ" €#e œe ¼Ú%#¾„á%#³ é·æùÏQ<Ðà‚#ƒ#„#dÆ'#<Æ'#³ �#�#¤¨(#¨(#³ �#�#ßãd¤)#¤)#³ �#�#Ç#Œ é·†#††###—: —:é·é·Bÿ…#ÎÂ%#…# †##Ô#� é·ˆ# gˆ#Ô#Ô#˜:™:š: ˜:é· ™:€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡š:­àBÿ‡#ÏÉ%#‡# ˆ#Ô#œÔ#O&Ž é·Š#÷Š#O&O&é·Bÿ‰#‰# Š#ÄÖ@#Ãlá@#θ㾞“a~ÈÔŒ#�#Ž#dÖB#<ÖB#³ ‹#‹#| C#D C#³ ‹#‹#̳D#³D#³ ‹#‹#ÆÏ¯'� θ�#†�#¯'¯'¡: ¡:θθBÿ�#ÖÇ@#�# �#¯'d(� θ’# g’#d(d(¢:£:¤: ¢:θ £:€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡¤:­àBÿ‘#×Î@#‘# ’#d(œd(ÄŽF#Äl™F#¨¹kf•ô ð”#•#–#Œ­F#$±F#“#“#ÇlÄF#,ÈF#“#“#\×F#ÛF#“#“#ë*‘ ¨¹˜#†˜#ë*ë*¥: ¥:¨¹¨¹Bÿ—#ØçE#—# ˜#ë*˜+’ ¨¹š# gš#˜+˜+¦:§:¨: ¦:¨¹ §:€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡¨:­àBÿ™#ÙîE#™# š#˜+œ˜+.“ ¨¹œ#÷œ#..¨¹Bÿ›#›# œ#–.” ¨¹ž#Ξ#–.–.–.–.©: ©:¨¹Bÿ�#ÛþE#�# ž#–.ñ/• ¨¹ñ/• ¨¹¡#ù±¡#ñ/ñ/ª:«: ª:¨¹ «:¨¹Bÿ #Ü‚F# # ¡#ñ/î ñ/´¢G#Å|©G#³ ªºÖgé¢1Z\h£#¤#¥#d�I#<�I#³ ¢#¢#”æI#æI#³ ¢#¢#¨¹d½J#½J#³ ¢#¢#Ç1– ªº§#†§#11¬: ¬:ªºªºBÿ¦#ÝŠG#¦# §#1Æ1— ªº©# g©#Æ1Æ1­:®:¯: ­:ªº ®:€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡¯:­àBÿ¨#Þ‘G#¨# ©#Æ1œÆ154˜ ªº«#÷«#5454ªºBÿª#ª# «#3 ü¼FC A byte oriented Thompson non-deterministic finite automaton (NFA).Áƒ�ü‡OL A Thompson NFA is a finite state machine that permits unconditional epsilonÁü×IF transitions, but guarantees that there exists at most one non-epsilonÁü¡?< transition for each element in the alphabet for each state.Áá�üåGD An NFA may be used directly for searching, for analysis or to buildÁü­+( a deterministic finite automaton (DFA).ÁÙ�”Ý # Cheap clonesÁð�üôHE Since an NFA is a core data type in this crate that many other regexÁü½MJ engines are based on top of, it is convenient to give ownership of an NFAÁü‹ JG to said regex engines. Because of this, an NFA uses reference countingÁüÖ NK internally. Therefore, it is cheap to clone and it is encouraged to do so.Á¥ �”© „´`¼ �üÀ &# Using an NFA for searching via theÁüç MJ [`PikeVM`](crate::nfa::thompson::pikevm::PikeVM) provides the most amountÁüµ IF of "power" of any regex engine in this crate. Namely, it supports theÁÜÿ  following in all cases:Á› �äŸ ¨µ`ü¼ IF 2. Location of a match, including both the start and end offset, in aÁü†  single pass of the haystack.Áü§ -* 3. Location of matching capturing groups.ÁüÕ NK 4. Handles multiple patterns, including (1)-(3) when multiple patterns areÁd¤ present.Á±�´µ # Capturing GroupsÁÌ�üÐOL Groups refer to parenthesized expressions inside a regex pattern. They lookÁü 1. like this, where `exp` is an arbitrary regex:ÁÒ�üÖ+( * `(exp)` - An unnamed capturing group.Áü‚B? * `(?Pexp)` or `(?exp)` - A named capturing group.ÁüÅ(% * `(?:exp)` - A non-capturing group.Áüî96 * `(?i:exp)` - A non-capturing group that sets flags.Á¨�ü¬B? Only the first two forms are said to be _capturing_. CapturingÁüïGD means that the last position at which they match is reportable. TheÁü·JG [`Captures`](crate::util::captures::Captures) type provides convenientÁü‚MJ access to the match positions of capturing groups, which includes lookingÁüÐ&# up capturing groups by their name.Á÷�œû # Byte orientedÁ��ü“JG This NFA is byte oriented, which means that all of its transitions areÁüÞLI defined on bytes. In other words, the alphabet of an NFA consists of theÁô« 256 different byte values.ÁÊ�üÎGD While DFAs nearly demand that they be byte oriented for performanceÁü–NK reasons, an NFA could conceivably be *Unicode codepoint* oriented. Indeed,ÁüåMJ a previous version of this NFA supported both byte and codepoint orientedÁü³OL modes. A codepoint oriented mode can work because an NFA fundamentally usesÁüƒKH a sparse representation of transitions, which works well with the largeÁüÏ'$ sparse space of Unicode codepoints.Á÷�üûJG Nevertheless, this NFA is only byte oriented. This choice is primarilyÁüÆJG driven by implementation simplicity, and also in part memory usage. InÁü‘IF practice, performance between the two is roughly comparable. However,ÁüÛMJ building a DFA (including a hybrid DFA) really wants a byte oriented NFA.Áü©LI So if we do have a codepoint oriented NFA, then we also need to generateÁüöHE byte oriented NFA in order to build an hybrid NFA/DFA. Thus, by onlyÁü¿OL generating byte oriented NFAs, we can produce one less NFA. In other words,Áü�NK if we made our NFA codepoint oriented, we'd need to *also* make it supportÁüÞMJ a byte oriented mode, which is more complicated. But a byte oriented modeÁܬ can support everything.ÁÈ�ÜÌ # Differences with DFAsÁè�üìMJ At the theoretical level, the precise difference between an NFA and a DFAÁüºLI is that, in a DFA, for every state, an input symbol unambiguously refersÁü‡ JG to a single transition _and_ that an input symbol is required for eachÁüÒ LI transition. At a practical level, this permits DFA implementations to beÁüŸ!NK implemented at their core with a small constant number of CPU instructionsÁüî!MJ for each byte of input searched. In practice, this makes them quite a bitÁü¼"OL faster than NFAs _in general_. Namely, in order to execute a search for anyÁüŒ#KH Thompson NFA, one needs to keep track of a _set_ of states, and executeÁüØ#JG the possible transitions on all of those states for each input symbol.Áü£$NK Overall, this results in much more overhead. To a first approximation, oneÁüò$EB can expect DFA searches to be about an order of magnitude faster.Á¸%�ü¼%KH So why use an NFA at all? The main advantage of an NFA is that it takesÁüˆ&NK linear time (in the size of the pattern string after repetitions have beenÁü×&MJ expanded) to build and linear memory usage. A DFA, on the other hand, mayÁü¥'IF take exponential time and/or space to build. Even in non-pathologicalÁüï'OL cases, DFAs often take quite a bit more memory than their NFA counterparts,Áü¿(LI _especially_ if large Unicode character classes are involved. Of course,ÁüŒ)KH an NFA also provides additional capabilities. For example, it can matchÁüØ)JG Unicode word boundaries on non-ASCII text and resolve the positions ofÁ¬£*»»_¹*�ü½*OL Note that a [`hybrid::regex::Regex`](crate::hybrid::regex::Regex) strikes aÁü�+OL good balance between an NFA and a DFA. It avoids the exponential build timeÁüÝ+MJ of a DFA while maintaining its fast search time. The downside of a hybridÁü«,OL NFA/DFA is that in some cases it can be slower at search time than the NFA.Áüû,MJ (It also has less functionality than a pure NFA. It cannot handle UnicodeÁüÉ-KH word boundaries on non-ASCII text and cannot resolve capturing groups.)Á•.�l™.•£/§.�ü«.OL This shows how to build an NFA with the default configuration and execute aÁìû. search using the Pike VM.Á™/�<�/ä¤/ü¥/?íðIå/�üé/(ÂñIü’0&Ê›0ü¹0(û›0â0�üæ0.î¤0ü•14œòIüÊ1+ÄŠ0ö1�üú1.Ǭ/<©2ä¤/±2�üµ2)& # Example: resolving capturing groupsÁß2�üã2EB This example shows how to parse some simple dates and extract theÁü©31. components of each date via capturing groups.ÁÛ3�<ß3ä¤/üç3=ÔÂ/Ì¥4ô¤/ü¿4&…‹Jüæ4!ØÑ=4ˆ5Ý¥/�5�ü“5EB let vm = PikeVM::new(r"(?P\d{4})-(?P\d{2})-(?P\d{2})")?;ÁüÙ5&ÊþF€6�ü„6;8 let haystack = "2012-03-14, 2013-01-01 and 2014-07-05";ÁüÀ6.+ let all: Vec = vm.captures_iter(Áüï6'$ &mut cache, haystack.as_bytes()Á„—7 ).collect();Áü¨7,) // There should be a total of 3 matches.ÁìÕ7 assert_eq!(3, all.len());Áüó70- // The year from the second match is '2013'.Áü¤863 let span = all[1].get_group_by_name("y").unwrap();ÁüÛ8(% assert_eq!("2013", &haystack[span]);Á„9�üˆ9.Ǭ/<·9ä¤/¿9�üÃ9GD This example shows that only the last match of a capturing group isÁü‹:IF reported, even if it had to match multiple times for an overall matchÁlÕ: to occur.Áã:�<ç:ä¤/üï:>ƒ–M®;�ü²;)& let re = PikeVM::new(r"([a-z]){4}")?;ÁüÜ;&Ê›0üƒ<(û›0¬<�ܰ< let haystack = b"quux";ÁüÌ<1§¥0ìþ<¾’<üœ=:7 assert_eq!(Some(Span::from(3..4)), caps.get_group(1));Á×=�üÛ=.Ǭ/<Š>ä¤/Ê®>�»²£gNpk+­#®#Œë�»Bÿ3 7Î Œë�»Bÿ¬#¬# ­#T¥DÎ ¬#¬#Œë€5™ �»°#†°#€5€5¶: ¶:�»�»Bÿ¯#å›>¯# °#€5¼Ê÷Í,Ü÷± Ô»Œ›Zx»·Òã²#³#´#µ#¶#·#¸#¹#º#»#¼#½#¾#¿#À#”µú4µúÎ ±#±#¬ü¼þútþúÎ ±#±#ÇÌÎû„ÎûÎ ±#±#Çܸþl¸þÎ ±#±#•ö¬ôÿTôÿÎ ±#±#ýÝäá…tá…Î ±#±#Š×Ì©Šd©ŠÎ ±#±#ªÓŒ�‹\�‹Î ±#±#|Þ‹LÞ‹Î ±#±#T¹Ž$¹ŽÎ ±#±#lŒ�<Œ�Î ±#±#ÌÚ�dÚ�Î ±#±#‚ó¬Ç‘dǑΠ±#±#¯ñäâ’œâ’Î ±#±#¯ñœ´–d´–Î ±#±#½Lš Ô»Â#÷Â#½L½LÔ»BÿÁ#Á# Â#tÀç´ØÞ A state in an NFA.ÁïÞ�üóÞMJ In theory, it can help to conceptualize an `NFA` as a graph consisting ofÁüÁßMJ `State`s. Each `State` contains its complete set of outgoing transitions.Á�à�ü“àGD In practice, it can help to conceptualize an `NFA` as a sequence ofÁüÛàNK instructions for a virtual machine. Each `State` says what to do and whereÁ|ªá to go next.Áºá�ü¾áLI Strictly speaking, the practical interpretation is the most correct one,Áü‹âIF because of the [`Capture`](State::Capture) state. Namely, a `Capture`ÁüÕâNK state always forwards execution to another state unconditionally. Its onlyÁü¤ãIF purpose is to cause a side effect: the recording of the current inputÁüîãHE position at a particular location in memory. In this sense, an `NFA`Áü·äIF has more power than a theoretical non-deterministic finite automaton.Á�å�ü…åMJ For most uses of this crate, it is likely that one may never even need toÁüÓåLI be aware of this type at all. The main use cases for looking at `State`sÁü æNK directly are if you need to write your own search implementation or if youÁüïæ0- need to do some kind of analysis on the NFA.Á×,ÉçȽï=Ì@`PÆöÄ#Æ#Ç#É#Ê#Ì#Ï#Ñ#Ô#Ù#Ú#Û#Å#Ç#È#‘ÀȽBÿÊ#Ë#÷ÀȽBÿÍ#Î#Ð#Ò#Ó#Õ#Ö#×#Ø#Ú#Ü#LÜèüÕçJG A state with a single transition that can only be taken if the currentÁü¤è30 input symbol is in a particular range of bytes.Á×›Ã#Ã#ȽŒ¨éüðè/, The transition from this state to the next.Á,¨éÃ#Ã#ÝÁƒ üÆéKH A state with possibly many transitions represented in a sparse fashion.Áü–êJG Transitions are non-overlapping and ordered lexicographically by inputÁTåê range.Áôê�üüêJG In practice, this is used for encoding UTF-8 automata. Its presence isÁüËëGD primarily an optimization that avoids many additional unconditionalÁü—ìFC epsilon transitions (via [`Union`](State::Union) states), and thusÁüâìGD decreases the overhead of traversing the NFA. This can improve bothÁü®í,) matching time and DFA construction time.Á׃ Ã#Ã# Ç#ƒ ƒ ‘ÀȽBÿÃ#Ã#§égŒæíÃ#Ã#‘ÀÔ üþí@= A dense representation of a state with multiple transitions.Á×Ô Ã#Ã# Ê#Ô Ô ÷ÀȽBÿÃ#Ã#äêg„ÉîÃ#Ã#÷À$âòüàî?< A conditional epsilon transition satisfied via some sort ofÁü¤ïC@ look-around. Look-around is limited to anchor and word boundaryÁ|ìï assertions.Á€ð�üˆðIF Look-around states are meant to be evaluated while performing epsilonÁüÖðJG closure (computing the set of states reachable from a particular stateÁü¥ñJG via only epsilon transitions). If the current position in the haystackÁüôñHE satisfies the look-around assertion, then you're permitted to followÁäÁò that epsilon transition.Á×=Ã#Ã#ȽTÓóüñòB? The look-around assertion that must be satisfied before movingÁt¼ó to `next`.Á$ÓóÃ#Ã#ôílÅôüçó>; The state to transition to if the look-around assertion isÁt®ô satisfied.Á$ÅôÃ#Ã#Ç,¤öüßôFC An alternation such that there exists an epsilon transition to allÁüªõGD states in `alternates`, where matches found via earlier transitionsÁüöõ)& are preferred over later transitions.Á×ßÃ#Ã#ȽÔü÷ü´öEB An ordered sequence of unconditional epsilon transitions to otherÁü‚÷B? states. Transitions earlier in the sequence are preferred overÁüÍ÷&# transitions later in the sequence.ÁTü÷Ã#Ã#‹¡\‚üü£øEB An alternation such that there exists precisely two unconditionalÁüíøJG epsilon transitions, where matches found via `alt1` are preferred overÁì¼ù matches found via `alt2`.ÁÞù�üæùGD This state exists as a common special case of Union where there areÁü²úGD only two alternates. In this case, we don't need any allocations toÁüþúEB represent the state. This saves a bit of memory and also saves anÁüÈû52 additional memory access when traversing the NFA.Á×Ã#Ã#Ƚl‰ýü˜üB? An unconditional epsilon transition to another NFA state. ThisÁìãü is preferred over `alt2`.Á$‰ýÃ#Ã#Çléþü ýEB An unconditional epsilon transition to another NFA state. MatchesÁüîýFC reported via this transition should only be reported if no matchesÁü½þ# were found by following `alt1`.Á$éþÃ#Ã#Ç<�…üƒÿ30 An empty state that records a capture location.Á»ÿ�üÃÿIF From the perspective of finite automata, this is precisely equivalentÁü‘€EB to an unconditional epsilon transition, but serves the purpose ofÁüÛ€JG instructing NFA simulations to record additional state when the finiteÁüª�96 state machine passes through this epsilon transition.Áè��üð�DA `slot` in this context refers to the specific capture group slotÁü¹‚EB offset that is being recorded. Each capturing group has two slotsÁüƒƒFC corresponding to the start and end of the matching portion of thatÁT΃¶ðe݃�üåƒJG The pattern ID and capture group index are also included in this stateÁü´„FC in case they are useful. But mostly, all you'll need is `next` andÁ\ÿ„ `slot`.Á×cÃ#Ã#ȽlÚ…ü¡…0- The state to transition to, unconditionally.Á$Ú…Ã#Ã#Ǭª†üñ…0- The pattern ID that this capture belongs to.ÁTª†Ã#Ã#›†¼ÀˆüɆGD The capture group index that this capture belongs to. Capture groupÁü™‡B? indices are local to each pattern. For example, when capturingÁüä‡B? groups are enabled, every pattern has a capture group at indexÁD¯ˆØÓR\ÀˆÃ#Ã#×�„Ú‹üáˆB? The slot index for this capture. Every capturing group has twoÁü¬‰@= slots: one for the start haystack offset and one for the endÁüõ‰C@ haystack offset. Unlike capture group indices, slot indices areÁüÁŠFC global across all patterns in this NFA. That is, each slot belongsÁü�‹A> to a single pattern, but there is only one slot at index `i`.Á$Ú‹Ã#Ã#×�$™�ü÷‹HE A state that cannot be transitioned out of. This is useful for casesÁüÄŒKH where you want to prevent matching from occurring. For example, if yourÁü”�GD regex parser permits empty character classes, then one could chooseÁüà�FC a `Fail` state to represent them. (An empty character class can beÁü«ŽJG thought of as an empty set. Since nothing is in an empty set, they canÁÔúŽ never match anything.)Á×ÍÃ#Ã#ȽâåÃ#Ã#Ƚ,©�ü£�JG A match state. There is at least one such occurrence of this state forÁüò�2/ each regex that can match that is in this NFA.ÁךÃ#Ã#Ƚ¬Þ�ä¹� The matching pattern ID.ÁTÞ�Ã#Ã#›†sN¥ ȽÞ#†Þ#sNsNÝ: Ý:ȽȽBÿÝ#ý©çÝ# Þ#sNV¦ Ƚà#Îà#VVVVÞ: Þ:ȽBÿß#þ°çß# à#VkV§ ȽkV§ Ƚã#ù±ã#kVkVß:à: ß:Ƚ à:ȽBÿâ#ÿ´çâ# ã#kVî kVäšÁüá½?< A sequence of transitions used to represent a sparse state.Á¡¾�ü¥¾LI This is the primary representation of a [`Sparse`](State::Sparse) state.Áüò¾KH It corresponds to a sorted sequence of transitions with non-overlappingÁü¾¿LI byte ranges. If the byte at the current position in the haystack matchesÁü‹ÀIF one of the byte ranges, then the finite state machine should take theÁìÕÀ corresponding transition.Á匥Á‘ÀGws£{wò±å#üùÁ"ü½Á74 The sorted sequence of non-overlapping transitions.Á\ýÁä#ä#ÒÑÀhµ ‘Àç#†ç#ÀhÀhè: è:‘À‘ÀBÿæ#šüÀæ# ç#Àh>i¶ ‘Àé# gé#>i>ié:ê:ë: é:‘À ê:€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ë:­àBÿè#›ƒÁè# é#>iœ>i‡j· ‘Àë#Îë#‡j‡j‡j‡jì: ì:‘ÀBÿê#œŠÁê# ë#‡j7k¸ ‘À7k¸ ‘Àî#ù±î#7k7kí:î: í:‘À î:‘ÀBÿí#�ŽÁí# î#7kî 7kܸÚü‘Ö>; A sequence of transitions used to represent a dense state.ÁÐÖ�üÔÖMJ This is the primary representation of a [`Dense`](State::Dense) state. ItÁü¢×LI provides constant time matching. That is, given a byte in a haystack andÁüï×LI a `DenseTransitions`, one can determine if the state matches in constantÁL¼Ø time.ÁÆØ�üÊØHE This is in contrast to `SparseTransitions`, whose time complexity isÁü“ÙOL necessarily bigger than constant time. Also in contrast, `DenseTransitions`ÁüãÙ-* usually requires (much) more heap memory.Áæ„ÃÚ÷ÀŠF%Ã}ð#üÆÛüÚÚHE A dense representation of this state's transitions on the heap. ThisÁÔ§Û always has length 256.Á\ÊÛï#ï#‹¡‚r¹ ÷Àò#†ò#‚r‚ró: ó:÷À÷ÀBÿñ#žšÚñ# ò#‚rýrº ÷Àô# gô#ýrýrô:õ:ö: ô:÷À õ:€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ö:­àBÿó#Ÿ¡Úó# ô#ýrœýrCt» ÷Àö#Îö#CtCtCtCt÷: ÷:÷ÀBÿõ# ¨Úõ# ö#Ctót¼ ÷Àót¼ ÷Àù#ù±ù#ótótø:ù: ø:÷À ù:÷ÀBÿø#¡¬Úø# ù#ótî ót¬îðü’ï)& A single transition to another state.Á¼ï�üÀïLI This transition may only be followed if the current byte in the haystackÁü�ð41 falls in the inclusive range of bytes specified.ÁçTùðÝÁCý±$5vc§û#ü#ý#l¹ñüŠñ*' The inclusive start of the byte range.Á,½ñú#ú#\ùñüÌñ(% The inclusive end of the byte range.Áýñú#ú#ŒÀòüŠò1. The identifier of the state to transition to.Á$Äòú#ú#Çë}ë}ë}½ ÝÁë}½ ÝÁ€$†€$ë}ë}ÿ: ÿ:ÝÁÝÁBÿÿ#¢Ëðÿ# €$ë} £Òð¾ ÝÁk~¿ ÝÁƒ$΃$k~k~k~k~€; €;ÝÁBÿ‚$¤Øð‚$ ƒ$k~è~À ÝÁ…$üh…$è~è~�;‚; �;ÝÁ ‚;ù Bÿ„$ÿ†$†$¥Üð„$��bè~¡�bè~ …$ù è~ƒè~è~è~(�Á ÝÁ(�Á ÝÁ‰$ù±‰$(�(�ƒ;„; ƒ;ÝÁ „;ÝÁBÿˆ$¦âðˆ$ ‰$(�î (�Ô©ÿü¹ý/, An iterator over all pattern IDs in an NFA.Áéý�üíý2/ This iterator is created by [`NFA::patterns`].Á þ�ü¤þLI The lifetime parameter `'a` refers to the lifetime of the NFA from whichÁüñþ&# this pattern iterator was created.Áê\´ÿÄ‹$‹$õ ð 66\ÇŒ$�$ÀÿŒÊÿÊÿÎ Š$Š$üŠü­‚*<­‚Î Š$Š$„!„!…!È„o$z�é - Ä»�Ä Ä�$�$õÂ�$ g�$ž »�»�Œ;�;Ž; Œ;õ �;€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ž;­àBÿŽ$«¡ÿŽ$ �$Ä»�œ»�Œ…ü 52 The configuration used for building a [`PikeVM`].ÁÖ�üÚNK A PikeVM configuration is a simple data object that is typically used withÁü©52 [`Builder::configure`]. It can be cheaply cloned.Áß�üãHœ�_ü¬74 perhaps more conveniently, with [`PikeVM::config`].Áë4�ÊÃ#›ý¿h} ’$“$ì�T�Å‘$‘$Þ×ôÀÀÅ‘$‘$ôÄ E„Å ÊÕ$†•$E„E„�; �;ÊÃÊÃBÿ”$¬í”$ •$E„Ú„Æ Ê×$ g—$Ú„Ú„‘;’;“; ‘;Êà ’;€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡“;­àBÿ–$­ô–$ —$Ú„œÚ„±†Ç ÊÙ$÷™$±†±†ÊÃBÿ˜$˜$ ™$”¥Hì…8 A builder for a `PikeVM`.Á£8�ü§8IF This builder permits configuring options for the syntax of a pattern,Áüñ8GD the NFA construction and the `PikeVM` construction. This builder isÁü¹9JG different from a general purpose regex builder in that it permits fineÁü„:NùødüÓ:MÑùdü¡;A¨údã;�üç;GD * [`util::syntax::Config::utf8`](crate::util::syntax::Config::utf8)Áü¯�ü�>Jñœ_ÌØ>Ä�_ò>�lö>•£/„?�üˆ?LéÉbüÕ?LÀÊb¢@�<¦@ä¤/Ì®@ô¤/üÈ@.ŒðG¬÷@‘¢0t�A·„04œAÝ¥/£A�ô§AˆöGüÆA2è¢0üùA6¥£0ü°B&æ£0ü×B&Ê›0þB�ü‚C4ËÈ9ü·C.‰É9üæC85 let got = re.find_iter(&mut cache, haystack).next();ÁôŸD—‘3ü¾D6�¡_üõD8Ý¡_ü®E"Ÿ¢_4ÑEÅ·0üØE4Ø¢_ü�F:7 // disabling UTF-8 mode on a PikeVM Config, since thatÁüÈF7¤€e„€Gä€eü‘G@¸ÍbÒG�üÖG.Ǭ/<…Hä¤/ì<°H£ÄhÐcCC¹)k›$œ$t¾H4¾HÅš$š$ÊÃäñHÓí”ØHÔÒHDñHÅš$š$·¬’‡È £Äž$†ž$’‡’‡—; —;£Ä£ÄBÿ�$¯–H�$ ž$’‡KˆÉ £Ä $ g $KˆKˆ˜;™;š; ˜;£Ä ™;€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡š;­àBÿŸ$°�HŸ$  $KˆœKˆŒîuü©]IF A virtual machine for executing regex searches with capturing groups.Áó]�¬÷] # Infallible APIsÁ�^�ü‘^NK Unlike most other regex engines in this crate, a `PikeVM` never returns anÁüà^LI error at search time. It supports all [`Anchored`] configurations, neverÁü­_52 quits and works on haystacks of arbitrary length.Áã_�üç_,) There are two caveats to mention though:Á”`�ü˜`NK * If an invalid pattern ID is given to a search via [`Anchored::Pattern`],Áüç`MJ then the PikeVM will report "no match." This is consistent with all otherÁüµa  regex engines in this crate.ÁüÖaLI * When using [`PikeVM::which_overlapping_matches`] with a [`PatternSet`]Áü£bLI that has insufficient capacity to store all valid pattern IDs, then if aÁüðbJG match occurs for a `PatternID` that cannot be inserted, it is silentlyÁü»c# dropped as if it did not match.Áßc�dãc # AdviceÁðc�üôcMJ The `PikeVM` is generally the most "powerful" regex engine in this crate.ÁüÂdNK "Powerful" in this context means that it can handle any regular expressionÁü‘eKH that is parseable by `regex-syntax` and any size haystack. Regrettably,ÁüÝeKH the `PikeVM` is also simultaneously often the _slowest_ regex engine inÁü©fMJ practice. This results in an annoying situation where one generally triesÁü÷fHE to pick any other regex engine (or perhaps none at all) before beingÁüÀg&# forced to fall back to a `PikeVM`.Áçg�üëgJG For example, a common strategy for dealing with capturing groups is toÁü¶hIF actually look for the overall match of the regex using a faster regexÁü€iLI engine, like a [lazy DFA](crate::hybrid::regex::Regex). Once the overallÁüÍiKH match is found, one can then run the `PikeVM` on just the match span toÁü™jIF find the spans of the capturing groups. In this way, the faster regexÁüãjKH engine does the majority of the work, while the `PikeVM` only lends itsÁü¯k! power in a more limited role.ÁÑk�üÕkNK Unfortunately, this isn't always possible because the faster regex enginesÁü¤lKH don't support all of the regex features in `regex-syntax`. This notablyÁüðlIF includes (and is currently limited to) Unicode word boundaries. So ifÁüºmGD your pattern has Unicode word boundaries, you typically can't use aÁü‚nKH DFA-based regex engine at all (unless you [enable heuristic support forÁüÎnKH it](crate::hybrid::dfa::Config::unicode_word_boundary)). (The [one-passÁüšoIF DFA](crate::dfa::onepass::DFA) can handle Unicode word boundaries forÁüäoNK anchored searches only, but in a cruel sort of joke, many Unicode featuresÁü³p74 tend to result in making the regex _not_ one-pass.)Áëp�lïp•£/ýp�ü�qKH This example shows that the `PikeVM` implements Unicode word boundariesÁÌÍq correctly by default.Áçq�<ëqä¤/üóq=ÔÂ/ü±r?íðIñr�üõr&# let re = PikeVM::new(r"\b\w+\b")?;Áüœs&Ê›0Ãs�üÇsEB let mut it = re.find_iter(&mut cache, "Шерлок ХолмÑ�");Áü�t74 assert_eq!(Some(Match::must(0, 0..12)), it.next());ÁüÅt85 assert_eq!(Some(Match::must(0, 13..23)), it.next());Áüþt éÃ9üŸu.Ǭ/<Îuä¤/í4ùuðÄ&U‘Ì�lˆª¢$£$t†v4†vÅ¡$¡$ÊÃDšvšvÅ¡$¡$�»›�Ê ðÄ¥$†¥$›�›�£; £;ðÄðÄBÿ¤$±ßu¤$ ¥$›�QŽË ðħ$ g§$QŽQޤ;¥;¦; ¤;ðÄ ¥;€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡¦;­àBÿ¦$²æu¦$ §$QŽœQŽüùÁ"ü›¾IF An iterator over all non-overlapping matches for a particular search.Áå¾�üé¾O‡®b¹¿�ü½¿+¯bé¿�üí¿1. * `'r` represents the lifetime of the PikeVM.ÁüŸÀ96 * `'c` represents the lifetime of the PikeVM's cache.ÁüÙÀBǰbœÁ�ü ÁGD This iterator can be created with the [`PikeVM::find_iter`] method.Áþ\„ÂæG©$Ì3ª$¸«$«$ª$©$½ÅJ%½5Î…ç¬$­$®$¯$�”˜Ât¢Â¢ÂŨ$¨$ æGðĤ¶Â,¶ÂŨ$¨$ Ì3±ÇtÐÂ$ÐÂŨ$¨$˜Û´äÂäÂŨ$¨$ú´b\¾Ð æG±$Ì3²$¸³$±$³$²$½Å´$ g´$âäßáÜÞ\¾\¾ø;ù;ú; ø;½Å ù;€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ú;­àBÿ°$ÉñÁ°$ ´$æGÌ3¸\¾œ\¾ü¸Ë&ü¤ÇOó®eüôÇ$! groups, for a particular search.Á™È�ü�ÈK€ÎcTéÈÕÎcôÈ�üøÈ+¯b¤É�ü¨É1•êhüÚÉ9Ñêhü”ÊBǰb×Ê�üÛÊKH This iterator can be created with the [`PikeVM::captures_iter`] method.Áÿ|ÃËæG¶$Ì3·$¸¸$¸$¶$·$·ÆÕŽðÃ÷¸áp¹$º$»$¼$ÓË×ËÛËtåËåËŵ$µ$‚îh¤ùË,ùËŵ$µ$§îht“Ì$“Ìŵ$µ$˜Û´§Ì§Ìŵ$µ$ú´btÄÑ æG¾$Ì3¿$¸À$¿$À$¾$·ÆÁ$ gÁ$ÔÖÑÓÎÐtÄtÄü;ý;þ; ü;·Æ ý;€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡þ;­àBÿ½$ʰ˽$ Á$æGÌ3¸tÄœtÄ„ÙÖüÞÑHE A cache represents mutable state that a [`PikeVM`] requires during aÁ\§Òè­P³Ò�ü·ÒMJ For a given [`PikeVM`], its corresponding cache may be created either viaÁü…ÓKH [`PikeVM::create_cache`], or via [`Cache::new`]. They are equivalent inÁüÑÓOL every way, except the former does not require explicitly importing `Cache`.Á¡Ô�ü¥ÔEB A particular `Cache` is coupled with the [`PikeVM`] from which itÁüëÔHE was created. It may only be used with that `PikeVM`. A cache and itsÁü´ÕNûú_üƒÖ=: only be used with the new `PikeVM` (and not the old one).Á€,äÖ±Çbö‡ó;å×Ã$Ä$Å$Ì�Ø,�ØÅÂ$Â$›˜”›Ù$›ÙÅÂ$Â$ŒÈ”¢Ú$¢ÚÅÂ$Â$ŒÈzÌÒ ±ÇÇ$†Ç$zÌzÌ€< €<±Ç±ÇBÿÆ$ËÊÖÆ$ Ç$zÌqÍÓ ±ÇÉ$ gÉ$qÍqÍ�<‚<ƒ< �<±Ç ‚<€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ƒ<­àBÿÈ$ÌÑÖÈ$ É$qÍœqÍœüû‚dƒüÅŒÈýIî,}óË$Ì$tÄýÄýÅÊ$Ê$ݪ¬™ÿT™ÿÅÊ$Ê$ÛÈÿÏÔ ŒÈÎ$†Î$ÿÏÿω< ‰<ŒÈŒÈBÿÍ$ÎíûÍ$ Î$ÿÏ»ÐÕ ŒÈÐ$ gÐ$»Ð»ÐŠ<‹<Œ< Š<ŒÈ ‹<€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Œ<­àBÿÏ$ÏôûÏ$ Ð$»Ðœ»Ð„�”ƒL—”ÅÛÈâ:p()£bÔÒ$Ó$Ô$üÌ”,Ì”ÅÑ$Ñ$‹½´Ô•|Ô•ÅÑ$Ñ$̦—”¦—ÅÑ$Ñ$ÛÒÖ ÛÈÖ$†Ö$ÛÒÛÒ’< ’<ÛÈÛÈBÿÕ$Ð�”Õ$ Ö$ÛÒ’Ó× ÛÈØ$ gØ$’Ó’Ó“<”<•< “<ÛÈ ”<€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡•<­àBÿ×$ш”×$ Ø$’Óœ’Ó”ëdžlðÇÅ·ÉÏ+dÞ»g+Ú$Û$Ý$Û$Ü$Ç·ÉBÿÞ$ß$% †% ÅÙ$Ù$ Û$% % ÅÇ·ÉBÿÙ$Ù$�ˆi<ÅÈÅÙ$Ù$Çt¡É†ÅÙ$Ù$·É„²É$²ÉÅÙ$Ù$×�ÜÄÉ4ÄÉÅÙ$Ù$¹¨£ÕÙ ·Éá$†á$£Õ£Õœ< œ<·É·ÉBÿà$ÕÜÇà$ á$£Õ¨×Ú ·Éã$ gã$¨×¨×�<ž<Ÿ< �<·É ž<€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ÿ<­àBÿâ$ÖãÇâ$ ã$¨×œ¨×¤Ä@‡LÏ@¢Ê…Së 3;5Çå$æ$ç$è$é$ê$”ŠB4ŠBÊä$ä$ë·„èC$èCÊä$ä$ë·üéD"TéDÊä$ä$ž¹üÕE$\ÕEÊä$ä$ֺ̕GT•GÊä$ä$ƼìœHdœHÊä$ä$½¬ÞÛ ¢Êì$†ì$¬Þ¬Þ <  <¢Ê¢ÊBÿë$×¼@ë$ ì$¬ÞdðHˆ,÷HÊšËf™és¶ Ìî$ä�J\�JÊí$í$ÚÁÃàÜ šËð$†ð$ÃàÃà¡< ¡<šËšËBÿï$ØèHï$ ð$ÃàŒïK‰TöKÊÑËEY_í9>ò$ó$„ŸL,ŸLÊñ$ñ$Ì»„ÞL<ÞLÊñ$ñ$Ç´áÝ ÑËõ$†õ$´á´á¢< ¢<ÑËÑËBÿô$ÙçKô$ õ$´á|±Î—D¸ÎÊ•Ì7nûY=tH÷$ø$|ïÎ4ïÎÊö$ö$Ç|ÃÏ4ÃÏÊö$ö$Ǻâà •Ìú$†ú$ºâºâ´< ´<•Ì•ÌBÿù$í¢Îù$ ú$ºâQãá •Ìü$ gü$QãQãµ<¶<·< µ<•Ì ¶<€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡·<­àBÿû$î©Îû$ ü$QãœQã|èИDïÐÊäÌr —B£¤Š°þ$ÿ$ŒþÐDþÐÊý$ý$Ç\•Ñ$•ÑÊý$ý$Jåâ äÌ�%†�%JåJå¸< ¸<äÌäÌBÿ€%ïÙЀ% �%Jåàåã ä̃% gƒ%àåàå¹<º<»< ¹<äÌ º<€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡»<­àBÿ‚%ðàЂ% ƒ%àåœà匔әT›ÓÊ²Íø¿»Ýó4…%†%ˆ%Œ®ÔD®ÔÊ„%„%Ç´£Õ4£ÕÊ„%„%ÜÐ ·Õ<öÕöÕÊ„%„%7èä ²ÍŠ%†Š%7è7è¼< ¼<²Í²ÍBÿ‰%ñ…Ó‰% Š%7èìèå ²ÍŒ% gŒ%ìèìè½<¾<¿< ½<²Í ¾<€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡¿<­àBÿ‹%òŒÓ‹% Œ%ìèœìèdÔ‚œ,Û‚ÊŒÎñ†)0ØF«Ž%�%Üç‚Tç‚Ê�%�%¸× €ƒTˆƒˆƒÊ�%�%“ëæ ŒÎ’%†’%“ë“ëÆ< Æ<ŒÎŒÎBÿ‘%÷¶‚‘% ’%“ë,ìç ŒÎ”% g”%,ì,ìÇ<È<É< Ç<ŒÎ È<€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡É<­àBÿ“%ø½‚“% ”%,ìœ,ìßíè ŒÎ–%Ζ%ßíßíßíßíÊ< Ê<ŒÎBÿ•%ùÄ‚•% –%ßíïé ŒÎïé ŒÎš%ù±š%ïïË<Ì< Ë<ŒÎ Ì<ŒÎBÿ™%úÈ‚™% š%ïî ï|Œ„�T‘„Ê�Ïü%Ž#y våœ%�%Ÿ% %¢%£%�%ž%Ì»�ÏBÿ %¡%Ì»�ÏBÿ£%¤%Ì»�ÏBÿv �v Ê›%›% �%v v ÊÌ»�ÏBÿ›%›%Œ¤iL¦„Ê›%›%Ì»Ç �Ç Ê›%›%  %Ç Ç ÊÌ»�ÏBÿ›%›%„¥iLº„Ê›%›%Ì» � Ê›%›% £%  ÊÌ»�ÏBÿ›%›%ü¥iLτʛ%›%Ì»’ï’ï’ïê �Ï’ïê �ϧ%†§%’ï’ïÍ< Í<�Ï�ÏBÿ¦%û胦% §%’ï üïƒë �Ïùïì �Ϫ% gª%ùïùïÎ<Ï<Ð< Î<�Ï Ï<€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ð<­àBÿ©%ýõƒ©% ª%ùïœùïóí �Ϭ%ά%óóóóÑ< Ñ<�ÏBÿ«%þüƒ«% ¬%óDóî �ÏDóî �ϯ%ù±¯%DóDóÒ<Ó< Ò<�Ï Ó<�ÏBÿ®%ÿ€„®% ¯%Dóî Dói üáJG Unit represents a single unit of haystack for DFA based regex engines.Á¬�ü°KH It is not expected for consumers of this crate to need to use this typeÁüüGD unless they are implementing their own DFA. And even then, it's notÁüÄMJ required: implementors may use other techniques to handle haystack units.Á’�ü–JG Typically, a single unit of haystack for a DFA would be a single byte.ÁüáMJ However, for the DFAs in this crate, matches are delayed by a single byteÁü¯MJ in order to handle look-ahead assertions (`\b`, `$` and `\z`). Thus, onceÁüýMJ we have consumed the haystack, we must run the DFA through one additionalÁüËB? transition using a unit that indicates the haystack has ended.ÁŽ�ü’JG There is no way to represent a sentinel with a `u8` since all possibleÁüÝFC values *may* be valid haystack units to a DFA, therefore this typeÁü¤.+ explicitly adds room for a sentinel value.ÁÓ�ü×EB The sentinel EOI value is always its own equivalence class and isÁü�NK ultimately represented by adding 1 to the maximum equivalence class value.ÁüìJG So for example, the regex `^[a-z]+$` might be split into the followingÁÄ· equivalence classes:ÁÐ�\Ô ```textÁŒà 0 => [\x00-`]Átò 1 => [a-z]ÁŒ� 2 => [{-\xFF]Át“ 3 => [EOI]Á<¢ä¤/ª�ü®EB Where EOI is the special sentinel value that is always in its ownÁüô  singleton equivalence class.Á¥$×ÞÐâf–æ) ©J±%²%ðÑÞÐBÿi 7–ðÑÞÐBÿ°%°% ±%DÜ–°%°%ðÑMøMøMø÷ ÞÐMø÷ Þе%†µ%MøMøÞ< Þ<ÞÐÞÐBÿ´%� ž´% µ%Mø ‘ ¥ø ÞÐÇøù Þи%θ%ÇøÇøÇøÇøß< ß<ÞÐBÿ·%’ «·% ¸%Çøsùú ÞÐsùú Þл%ù±»%sùsùà<á< à<ÞÐ á<ÞÐBÿº%“ ¯º% »%sùî sùÛùû Þн%±²½%ÛùÛùâ<ã< â<ÞÐ ã<Þл½ Bÿ¼%” º¼% ½%Ûùî Ûù÷úü Þп%î¿%÷ú÷úä<å< ä<ÞÐ å<Þе¼ Bÿ¾%• ƾ% ¿%÷úî ÷úlŸ¦D¤–ðÑåŠf±‚¦ÐãÁ%Â%Ä%Å%Â%Ã%ðÑBÿÅ%Æ%ðÑBÿ¹ ¦¹ –À%À% Â%¹ ¹ –ðÑBÿÀ%À%ùÀi¤ –À%À% ¦ –À%À% Å%  –ðÑBÿÀ%À%îÁi¥"–À%À%\û\û\ûý ðÑ\ûý ðÑÉ%†É%\û\ûæ< æ<ðÑðÑBÿÈ%– ñÈ% É%\û — øþ ðÑÙûÿ ðÑÌ%ÎÌ%ÙûÙûÙûÙûç< ç<ðÑBÿË%˜ þË% Ì%Ùûü€ ðÑü€ ðÑÏ%ù±Ï%üüè<é< è<ðÑ é<ðÑBÿÎ%™ ‚Î% Ï%üî üùÿ� ðÑÑ%±²Ñ%ùÿùÿê<ë< ê<ðÑ ë<ðÑ»½ BÿÐ%š �Ð% Ñ%ùÿî ùÿ§‚ ðÑÓ%îÓ%§§ì<í< ì<ðÑ í<ðѵ¼ BÿÒ%› ™Ò% Ó%§î §W ü�=:7 A representation of byte oriented equivalence classes.ÁØ=�üÜ=NK This is used in a DFA to reduce the size of the transition table. This canÁü«>OL have a particularly large impact not only on the total size of a dense DFA,Áôû> but also on compile times.Áš?�üž?LI The essential idea here is that the alphabet of a DFA is shrunk from theÁüë?LI usual 256 distinct byte values down to a set of equivalence classes. TheÁü¸@NK guarantee you get is that any byte belonging to the same equivalence classÁü‡AJG can be treated as if it were any other byte in the same class, and theÁüÒA'$ result of a search wouldn't change.ÁúA�lþA•£/ŒB�ü�B63 This example shows how to get byte classes from anÁüÇBNK [`NFA`](crate::nfa::thompson::NFA) and ask for the class of various bytes.Á–C�<šCä¤/ü¢C+”“HÎC�üÒC"„ÂJüõC%±ÂJü›D8áÂJüÔD5¤ÃJüŠEäÃJüªE5ŽÄJàE�üäE.Ǭ/<“Fä¤/ª\½FªÓ8ì/3š!š¬Õ%Ö%ÿ‹ªÓBÿW 7–ÿ‹ªÓBÿÔ%Ô% Õ%LÉF–Ô%Ô%ÿ‹ÎF¥¥¥‡ ªÓ¥‡ ªÓÚ%†Ú%¥¥ñ< ñ<ªÓªÓBÿÙ%¤ ¤FÙ% Ú%¥¹ ¥ «Fˆ ªÓäΟü–�,) An iterator over each equivalence class.ÁÃ��üÇ�JG The last element in this iterator always corresponds to [`Unit::eoi`].Á’ž�ü–ž85 This is created by the [`ByteClasses::iter`] method.ÁÏž�üÓžJG The lifetime `'a` refers to the lifetime of the byte classes that thisÁôžŸ iterator was created from.Á´lÙŸÄÞ%Þ%�ԛθ¦°ÐbÈß%à%çŸÄñŸ<ñŸ–Ý%Ý% ĪÓD�  � –Ý%Ý%‡’ Äâ%â%�Ôã% gã%vx‡‡„=…=†= „=�Ô …=€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡†=­àBÿá%¸ ÆŸá% ã%ćœ‡üé¥'üÛ£FC An iterator over representative bytes from each equivalence class.Á¢¤�ü¦¤C@ This is created by the [`ByteClasses::representatives`] method.Áê¤�üî¤JýÔiô¹¥ÑÕiµÄô¥Äå%å%äÔ�nzðLiæ%ç%è%é%�¦Ä—¦<—¦–ä%ä%Ë×i|µ¦Dµ¦–ä%ä%¼Ê¦Dʦ–ä%ä%ØÚ´ç¦T禖ä%ä%»Ô '“ Äë%ë%äÔì% gì%«­''ˆ=‰=Š= ˆ=äÔ ‰=€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Š=­àBÿê%¹ á¥ê% ì%Ä'œ'ü¤³ ü©±:7 An iterator over all elements in an equivalence class.Áä±�üè±<9 This is created by the [`ByteClasses::elements`] method.Á¥²�ü©²JýÔiôô²ÑÕi¶Œ¯³Äî%î%ÓÕÕaÆëMò×ï%ð%ñ%Á³Ä˳<˳–í%í%Ë×i\é³,é³–í%í%ÞÐ\ú³$ú³–í%í%¯!” Äó%ó%ÓÕô% gô%��¯!¯!Œ=�=Ž= Œ=ÓÕ �=€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ž=­àBÿò%º œ³ò% ô%į!œ¯!ü¤¹!·´«¹–Äö%ö%µÖq´Æ í^™÷%ø%¹ü̹D̹–õ%õ%ÓÕÜñ¹,ñ¹–õ%õ%ÁÉÁ#• Äú%ú%µÖû% gû%qsÁ#Á#�=‘=’= �=µÖ ‘=€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡’=­àBÿù%» œ¹ù% û%ÄÁ#œÁ#§ Ó«ŒŸË̙˸dÝˊך‰e“�Äê@ý%þ%Ú׊×Bÿ§ 9–Ú׊×Bÿü%ü% ý%<êË–ü%ü%Ú×.&– Š×€&†€&.&.&”= ”=Š×Š×Bÿÿ%¼ ¼Ëÿ% €&.&¬&— Š×‚& g‚&¬&¬&•=–=—= •=Š× –=€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡—=­àBÿ�&½ ÃË�& ‚&¬&œ¬&ÌÌÙº<ÞÙÚסPåí1g:„&dìÙ$ìÙ–ƒ&ƒ&ãØ¹'¹'¹'š Ú×¹'š Úׇ&†‡&¹'¹'œ= œ=Ú×Ú×Bÿ†& ŸÙ†& ‡&¹' à ¦Ù› Ú×(œ Ú׊& gŠ&((�=ž=Ÿ= �=Ú× ž=€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ÿ=­àBÿ‰&Ä ¬Ù‰& Š&(œ(x)� Ú׌&÷Œ&x)x)Ú×Bÿ‹&‹& Œ&í)ž Ú׎&ÎŽ&í)í)í)í) =  =Ú×Bÿ�&Æ ¼Ù�& Ž&í)œ*Ÿ Úל*Ÿ Úב&ù±‘&œ*œ*¡=¢= ¡=Ú× ¢=Ú×Bÿ�&Ç ÀÙ�& ‘&œ*î œ*ø »4ÃÛ–ãØ9?꟦åìö“&”&£ØãØBÿø :–£ØãØBÿ’&’& “&LÊÛ–’&’&£Ø ÑÛ+++  ãØ+  ãØ˜&†˜&++£= £=ãØãØBÿ—&È –Û—& ˜&+» É �Û¡ ãØ¿+¢ ãØœ&÷œ&¿+¿+ãØBÿ›&›& œ&4,£ ãØž&Ξ&4,4,4,4,¤= ¤=ãØBÿ�&Ë ¬Û�& ž&4,Ì÷,¤ ãØ÷,¤ ãØ¢&ù±¢&÷,÷,¥=¦= ¥=ãØ ¦=ãØBÿ¡&Ì °Û¡& ¢&÷,î ÷,ü—û!¾\©ûĤ&¤&ðÙjÆcáÎh�­¥&¦&µû„¿û¿û–£&£& ÄÚ×DÕû Õû–£&£&Ä.§ Ĩ&¨&ðÙ©& g©&vxÄ.Ä.µ=¶=·= µ=ðÙ ¶=€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡·=­àBÿ§&Ñ �û§& ©&ÄÄ.œÄ.üµþ&¿„ÇþÄ«&«&ÄÚ79æa¯ÝA¬&­&Øþ„âþâþ–ª&ª&”øiDøþ øþ–ª&ª&£0¨ į&¯&ÄÚ°& g°&oq£0£0¹=º=»= ¹=ÄÚ º=€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡»=­àBÿ®&Ò ­þ®& °&Ä£0œ£0œ¸+ü�FC The span offsets of capturing groups after a match has been found.Á×�üÛHE This type represents the output of regex engines that can report theÁü¤HE offsets at which capturing groups matches or "submatches" occur. ForÁüíOL example, the [`PikeVM`](crate::nfa::thompson::pikevm::PikeVM). When a matchÁü½LI occurs, it will at minimum contain the [`PatternID`] of the pattern thatÁüŠKH matched. Depending upon how it was constructed, it may also contain theÁüÖJG start/end offsets of the entire match of the pattern and the start/endÁü¡C@ offsets of each capturing group that participated in the match.Áå�üéNK Values of this type are always created for a specific [`GroupInfo`]. It isÁü¸MJ unspecified behavior to use a `Captures` value in a search with any regexÁü†LI engine that has a different `GroupInfo` than the one the `Captures` wereÁŒÓ created with.Áå�”é # ConstructorsÁü�ü€HE There are three constructors for this type that control what kind ofÁüÉ*' information is available upon a match:Áô�üøMJ * [`Captures::all`]: Will store overall pattern match offsets in additionÁüÆFC to the offsets of capturing groups that participated in the match.Áü�@= * [`Captures::matches`]: Will store only the overall patternÁüÎOL match offsets. The offsets of capturing groups (even ones that participatedÁüž$! in the match) are not available.ÁüÃJG * [`Captures::empty`]: Will only store the pattern ID that matched. NoÁüŽ'$ match offsets are available at all.Á¶�üºNK If you aren't sure which to choose, then pick the first one. The first oneÁü‰&# is what convenience routines like,Áü°WT [`PikeVM::create_captures`](crate::nfa::thompson::pikevm::PikeVM::create_captures),Á܈ will use automatically.Á¤�ü¨LI The main difference between these choices is performance. Namely, if youÁüõNK ask for _less_ information, then the execution of regex search may be ableÁÄÄ to run more quickly.ÁÝ�\á # NotesÁí�üñNK It is worth pointing out that this type is not coupled to any one specificÁüÀKH regex engine. Instead, its coupling is with [`GroupInfo`], which is theÁüŒMJ thing that is responsible for mapping capturing groups to "slot" offsets.ÁüÚOL Slot offsets are indices into a single sequence of memory at which matchingÁüªNK haystack offsets for the corresponding group are written by regex engines.Áù�lý•£/‹ �ü� OL This example shows how to parse a simple date and extract the components ofÁüß " the date via capturing groups:Á‚!�<†!ä¤/üŽ!>ƒ–MÍ!�üÑ!AÙ–Mü“"Jœ§/Þ"�üâ"5Á—Mì˜#¾’<ü¶#:æ’<üñ#:«“<ü¬$;ð“<è$�üì$.Ǭ/<›%ä¤/£%�ü§%%" # Example: named capturing groupsÁÍ%�üÑ%IF This example is like the one above, but leverages the ability to nameÁü›&=: capturing groups in order to make the code a bit clearer:ÁÙ&�<Ý&ä¤/üå&>ƒ–M¤'�ü¨'PM let re = PikeVM::new(r"^(?P[0-9]{4})-(?P[0-9]{2})-(?P[0-9]{2})$")?;Áüù'Jœ§/Ä(�üÈ(5Á—Mìþ(¾’<üœ)DA assert_eq!(Some(Span::from(0..4)), caps.get_group_by_name("y"));Áüá)DA assert_eq!(Some(Span::from(5..7)), caps.get_group_by_name("m"));Áü¦*EB assert_eq!(Some(Span::from(8..10)), caps.get_group_by_name("d"));Áì*�üð*.Ǭ/<Ÿ+ä¤/ÀDÃ+˜ÛMs!ŽÂ—ÔŽ²&³&´&¬¿-T¿-ô±&±&ýÝ´È.È.ô±&±&€ªüŒ>,Œ>ô±&±&‹½'3© ˜Û¶&†¶&'3'3½= ½=˜Û˜ÛBÿµ&Ó °+µ& ¶&'3üׄ"üï�@= An iterator over all capturing groups in a `Captures` value.Á°‚�ü´‚IF This iterator includes capturing groups that did not participate in aÁüþ‚KH match. See the [`Captures::iter`] method documentation for more detailsÁŒÊƒ and examples.Á܃�üàƒHE The lifetime parameter `'a` refers to the lifetime of the underlyingÁ¬©„ `Captures` value.ÁÇœâ„ĸ&¸&ˆÝMöT Pƒb ¹&º&ö„”€…$€…ô·&·&ЫQü˜…7,˜…ô·&·&ƒŠƒŠÜ‹…Š�Ð<†ŠŠÐ< 0{?i—Ìá€X¬ ļ&¼&ˆÝ½&†½&°²€X€Xä= ä=ˆÝˆÝBÿ»&Ü È„»& ½&Ä€X+Y­ Ä¿&¿&ˆÝÀ& gÀ&?B+Y+Yå=æ=ç= å=ˆÝ æ=€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ç=­àBÿ¾&Ý Ï„¾& À&Ä+Yœ+Yã üÖ‰FC Represents information about capturing groups in a compiled regex.Á�Š�ü¡ŠLI The information encapsulated by this type consists of the following. ForÁŒîŠ each pattern:Á€‹�ü„‹LI * A map from every capture group name to its corresponding capture groupÁTÑ‹ index.ÁüÜ‹MJ * A map from every capture group index to its corresponding capture groupÁLªŒ name.Áü´ŒLI * A map from capture group index to its corresponding slot index. A slotÁü��NK refers to one half of a capturing group. That is, a capture slot is eitherÁüÐ�JG the start or end of a capturing group. A slot is usually the mechanismÁü›ŽMJ by which a regex engine records offsets for each capturing group during aÁ\éŽè­PõŽ�üùŽIF A `GroupInfo` uses reference counting internally and is thus cheap toÁTÃ� clone.ÁÎ��üÒ�*' # Mapping from capture groups to slotsÁý��ü��KH One of the main responsibilities of a `GroupInfo` is to build a mappingÁüÍ�MJ from `(PatternID, u32)` (where the `u32` is a capture index) to somethingÁü›‘GD called a "slot." As mentioned above, a slot refers to one half of aÁüã‘GD capturing group. Both combined provide the start and end offsets ofÁü«’30 a capturing group that participated in a match.Áß’�üã’MJ **The mapping between group indices and slots is an API guarantee.** ThatÁü±“DA is, the mapping won't change within a semver compatible release.Áö“�üú“IF Slots exist primarily because this is a convenient mechanism by whichÁüÄ”GD regex engines report group offsets at search time. For example, theÁüŒ•KH [`nfa::thompson::State::Capture`](crate::nfa::thompson::State::Capture)ÁüØ•NK NFA state includes the slot index. When a regex engine transitions throughÁü§–OL this state, it will likely use the slot index to write the current haystackÁü÷–KH offset to some region of memory. When a match is found, those slots areÁü×NK then reported to the caller, typically via a convenient abstraction like aÁ¼’˜ [`Captures`] value.Áª˜�ü®˜NK Because this crate provides first class support for multi-pattern regexes,Áüý˜HE and because of some performance related reasons, the mapping betweenÁüÆ™MJ capturing groups and slots is a little complex. However, in the case of aÁü”šMJ single pattern, the mapping can be described very simply: for all captureÁüâšNK group indices `i`, its corresponding slots are at `i * 2` and `i * 2 + 1`.Áü±›JG Notice that the pattern ID isn't involved at all here, because it onlyÁüü›B? applies to a single-pattern regex, it is therefore always `0`.Á¿œ�üÜMJ In the multi-pattern case, the mapping is a bit more complicated. To talkÁü‘�EB about it, we must define what we mean by "implicit" vs "explicit"Á¬×� capturing groups:Áí��üñ�KH * An **implicit** capturing group refers to the capturing group that isÁü½žKH present for every pattern automatically, and corresponds to the overallÁü‰ŸJG match of a pattern. Every pattern has precisely one implicit capturingÁüÔŸNK group. It is always unnamed and it always corresponds to the capture groupÁt£  index `0`.Áü² HE * An **explicit** capturing group refers to any capturing group thatÁüû JG appears in the concrete syntax of the pattern. (Or, if an NFA was handÁüÆ¡OL built without any concrete syntax, it refers to any capturing group with anÁä–¢ index greater than `0`.)Á³¢�”·¢ Some examples:ÁÊ¢�ü΢HE * `\w+` has one implicit capturing group and zero explicit capturingÁ\—£ÝÍcü££<9 * `(\w+)` has one implicit group and one explicit group.Áüà£MJ * `foo(\d+)(?:\pL+)(\d+)` has one implicit group and two explicit groups.Á®¤�ü²¤EB Turning back to the slot mapping, we can now state it as follows:Áø¤�üü¤KH * Given a pattern ID `pid`, the slots for its implicit group are alwaysÁüÈ¥# at `pid * 2` and `pid * 2 + 1`.Áüì¥EB * Given a pattern ID `0`, the slots for its explicit groups startÁü²¦&# at `group_info.pattern_len() * 2`.ÁüÙ¦KH * Given a pattern ID `pid > 0`, the slots for its explicit groups startÁü¥§NK immediately following where the slots for the explicit groups of `pid - 1`ÁDô§ end.Áý§�ü�¨MJ In particular, while there is a concrete formula one can use to determineÁüϨJG where the slots for the implicit group of any pattern are, there is noÁüš©JG general formula for determining where the slots for explicit capturingÁüå©KH groups are. This is because each pattern can contain a different numberÁt±ª of groups.ÁÀª�üĪJG The intended way of getting the slots for a particular capturing groupÁü�«DA (whether implicit or explicit) is via the [`GroupInfo::slot`] orÁüÔ«  [`GroupInfo::slots`] method.Áõ«�üù«JG See below for a concrete example of how capturing groups get mapped toÁTĬ slots.ÁϬ�lÓ¬•£/á¬�üå¬FæÆQ„¬­ε5½­�<Á­ä¤/üÉ­KH use regex_automata::util::{captures::GroupInfo, primitives::PatternID};Á•®�ü™®#ªÈQü½® ØÈQœÞ®‚ÉQüò®2 ÉQü¥¯&ÝÉQD̯•Ð1üÕ¯,œÊQü‚°&ÓÊQü©°96 // We can query the number of groups for any pattern.Áüã°63 assert_eq!(2, info.group_len(PatternID::must(0)));Áüš±63 assert_eq!(1, info.group_len(PatternID::must(1)));Áüѱ63 assert_eq!(5, info.group_len(PatternID::must(2)));Áüˆ²63 assert_eq!(3, info.group_len(PatternID::must(3)));Áü¿²1. // An invalid pattern always has zero groups.Áüñ²85 assert_eq!(0, info.group_len(PatternID::must(999)));ÁγƒËQüó$¦ËQè³�üì³HE // We can map a group index for a particular pattern to its name, ifÁ”µ´ // one exists.ÁüÈ´A> assert_eq!(Some("foo"), info.to_name(PatternID::must(3), 2));Áüе:7 assert_eq!(None, info.to_name(PatternID::must(2), 4));Áüŵ(% // Or map a name to its group index.ÁüîµB? assert_eq!(Some(1), info.to_index(PatternID::must(0), "foo"));Áü±¶B? assert_eq!(Some(2), info.to_index(PatternID::must(3), "foo"));Áô¶�üø¶.Ǭ/<§·ä¤/¯·�ü³·30 # Example: mapping from capture groups to slotsÁç·�üë·JG This example shows the specific mapping from capture group indices forÁü¶¸LI each pattern to their corresponding slots. The slot values shown in thisÁüƒ¹,) example are considered an API guarantee.Á°¹�<´¹ä¤/ü¼¹K¹Íjˆº�üŒº#ªÈQü°º ØÈQœÑº‚ÉQüåº2 ÉQü˜»&ÝÉQD¿»•Ð1È»�üÌ»A> // We first show the slots for each pattern's implicit group.Áü޼@= assert_eq!(Some((0, 1)), info.slots(PatternID::must(0), 0));Áüϼ@= assert_eq!(Some((2, 3)), info.slots(PatternID::must(1), 0));Áü�½@= assert_eq!(Some((4, 5)), info.slots(PatternID::must(2), 0));Áüѽ@= assert_eq!(Some((6, 7)), info.slots(PatternID::must(3), 0));Á’¾�ü–¾C@ // And now we show the slots for each pattern's explicit group.ÁüÚ¾@= assert_eq!(Some((8, 9)), info.slots(PatternID::must(0), 1));Áü›¿B? assert_eq!(Some((10, 11)), info.slots(PatternID::must(2), 1));ÁüÞ¿B? assert_eq!(Some((12, 13)), info.slots(PatternID::must(2), 2));Áü¡ÀB? assert_eq!(Some((14, 15)), info.slots(PatternID::must(2), 3));ÁüäÀB? assert_eq!(Some((16, 17)), info.slots(PatternID::must(2), 4));Áü§ÁB? assert_eq!(Some((18, 19)), info.slots(PatternID::must(3), 1));ÁüêÁB? assert_eq!(Some((20, 21)), info.slots(PatternID::must(3), 2));Á­Â�ü±ÂLI // Asking for the slots for an invalid pattern ID or even for an invalidÁüþÂKH // group index for a specific pattern will return None. So for example,ÁüÊÃNK // you're guaranteed to not get the slots for a different pattern than theÁ¬™Ä // one requested.Áü¯Ä85 assert_eq!(None, info.slots(PatternID::must(5), 0));ÁüèÄ85 assert_eq!(None, info.slots(PatternID::must(1), 1));Á¡Å�ü¥Å.Ǭ/<ÔÅä¤/ÈLˆÆýÝbYváR–íÂ&Ã&à¶ýÝBÿã 8ôà¶ýÝBÿÁ&Á& Â&œ’ÆôÁ&Á&à¶T[® ýÝÅ&†Å&T[T[ê= ê=ýÝýÝBÿÄ&Þ åÅÄ& Å&T[Ò[¯ ýÝÇ& gÇ&Ò[Ò[ë=ì=í= ë=ýÝ ì=€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡í=­àBÿÆ&ß ìÅÆ& Ç&Ò[œÒ[]° ýÝÉ&÷É&]]ýÝBÿÈ&È& É&¬“¤Ìtš¤ôÍÞ‚¸œAÖl HË&Ì&Í&Î&ü¯¤*\¯¤ôÊ&Ê&àÖüߤ"lߤôÊ&Ê&¦Øü‡¥)l‡¥ôÊ&Ê&·®œ¶¥d¶¥ôÊ&Ê&J�± ÍÞÐ& gÐ&J�J�ü=ý=þ= ü=ÍÞ ý=€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡þ=­àBÿÏ&ä ‚¤Ï& Ð&J�œJ�b ² ÍÞÒ&÷Ò&b b ÍÞBÿÑ&Ñ& Ò&Ì„ßü�Ü85 An error that may occur when building a `GroupInfo`.ÁÆÜ�üÊÜDA Building a `GroupInfo` does a variety of checks to make sure theÁü�ÝNK capturing groups satisfy a number of invariants. This includes, but is notÁüÞÝKH limited to, ensuring that the first capturing group is unnamed and thatÁüªÞA> there are no duplicate capture groups for a specific pattern.ÁÓt�ß¶ßžÂÆLyFdMÔ&Ĥß$¤ßôÓ&Ó&÷ß|·³ ¶ßÖ&†Ö&|·|·…> …>¶ß¶ßBÿÕ&ì õÞÕ& Ö&|·ú·´ ¶ßØ& gØ&ú·ú·†>‡>ˆ> †>¶ß ‡>€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ˆ>­àBÿ×&í üÞ×& Ø&ú·œú·¼ùàÔ”þàô÷ßu×â‰ä€0Ú&Ü&ß&á&ã&Û&Ý&Þ&à&â&ä&å&|ŒâÔôÙ&Ù&÷ßœžâžâôÙ&Ù&ú‰lžãÔôÙ&Ù&÷ß”òã<òãôÙ&Ù&›†tóä<óäôÙ&Ù&lðæÔôÙ&Ù&÷ß”Èç<ÈçôÙ&Ù&›†”ŽéÔôÙ&Ù&÷ß”�ê<�êôÙ&Ù&›†L­íÔôÙ&Ù&÷ß”Žî<ŽîôÙ&Ù&›†dÊî$ÊîôÙ&Ù&˜â+¹µ ÷ßç&†ç&+¹+¹‰> ‰>÷ß÷ßBÿæ&î êàæ& ç&+¹<½¶ ÷ßé& gé&<½<½Š>‹>Œ> Š>÷ß ‹>€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Œ>­àBÿè&ï ñàè& é&<½œ<½ü…‡$üå„MJ An iterator over capturing groups and their names for a specific pattern.Á³…�ü·…=: This iterator is created by [`GroupInfo::pattern_names`].Áõ…�üù…IF The lifetime parameter `'a` refers to the lifetime of the `GroupInfo`ÁüÆ)& from which this iterator was created.ÁÚ¬�‡Äë&ë&Ìá'|±0Ú2yßì&¦‡ü°‡+°‡ôê&ê&�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫÄ­¯¾Ã¼ Äî&î&Ìáï&†ï&¢¤¾Ã¾Ã’> ’>ÌáÌáBÿí&ú ö†í& ï&ľÃAĽ Äñ&ñ&Ìáò& gò&14AÄAÄ“>”>•> “>Ìá ”>€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡•>­àBÿð&û ý†ð& ò&ÄAÄœAÄüÕŽ üÅŒHE An iterator over capturing groups and their names for a `GroupInfo`.ÁŽ��ü’�96 This iterator is created by [`GroupInfo::all_names`].ÁÌ��üÐ�I²üjüšŽ)†ýjÛŒàŽÄô&ô&µâ”¨½ªox2õ&ö&÷&ø&òŽÌüŽTüŽôó&ó& ÄýÝœ›�$›�ôó&ó&üŠô´�\´�ôó&ó&€ªüØ�?,Ø�ôó&ó&řǙș­É™Ê™àË™óG*¤�R{9  jsž Äú&ú&µâû& gû&ùûsÅsŘ>™>š> ˜>µâ ™>€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡š>­àBÿù&ü ÍŽù& û&ÄsÅœsÅ4 ü–<$9 Provides a convenient `Debug` implementation for a `u8`.ÁÓ$�ü×L$I The `Debug` impl treats the byte as an ASCII, and emits a human readableÁü¤M$J representation of it. If the byte isn't ASCII, then it's emitted as a hexÁ¤ò$ escape sequence.ÁÜL©$¢ã)šÛ8OhCý&þ&¢ãBÿ4 6¢ãBÿü&ü& ý&4³$ü&ü&ÈÈÈ¿ ¢ãÈ¿ ¢ã�'†�'ÈÈœ> œ>¢ã¢ãBÿ€'ý �$€' �'È þ —$À ¢ã¬ñ;çTø;”Ä„'„'·ä†R�T±™ í…'†'ƒ<d�<�<”ƒ'ƒ'ÈåTŸ<Ÿ<”ƒ'ƒ'ÈáÈáÈáÍ Äˆ'ˆ'·ä~€ÈáÍ ÄŠ'Š'·ä‹'†‹'¯±ÈáÈá«> «>·ä·äBÿ‰'— Í;‰' ‹'ÄÈá ˜ Ô;Î Ä�'�'·ä473âÏ Ä�'�'·ä�' g�'gj3â3â¬>­>®> ¬>·ä ­>€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡®>­àBÿŽ'™ Ú;Ž' �'Ä3âœ3âäãÐ Ä’'’'·ä“'Γ'VYäãäãäãäã¯> ¯>·äBÿ‘'š á;‘' “'ÄäãåÑ Ä•'•'·äùüåÑ Ä—'—'·ä˜'ù±˜'-0åå°>±> °>·ä ±>·äBÿ–'› å;–' ˜'Äåî åd²=è·=”Äš'š'Èå™]Ô(!"l€›'œ'ž'Ÿ'œ'�'ðæÈåBÿŸ' 'ÈåBÿ»= è ”™'™' œ'Ä  ”ðæÈåBÿ™'™'ÿ•k<Ë=”™'™'ðæU èU ”™'™' Ÿ'ÄU U ”ÈåBÿ™'™'ý–k,à=”™'™'}å}å}åÒ Ä¢'¢'ÈåAD}åÒ Ä¤'¤'Èå¥'†¥'tw}å}å²> ²>ÈåÈåBÿ£'œ Ž=£' ¥'Ä}å � •=Ó Ä§'§'ÈåûþååÔ Ä©'©'Èåª' gª'.1åååå³>´>µ> ³>Èå ´>€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡µ>­àBÿ¨'ž ›=¨' ª'ÄååœååèÕ Ä¬'¬'Èå­'έ' èèèè¶> ¶>ÈåBÿ«'Ÿ ¢=«' ­'Äè]èÖ Ä¯'¯'ÈåÀÃ]èÖ Ä±'±'Èå²'ù±²'ô÷]è]è·>¸> ·>Èå ¸>ÈåBÿ°'  ¦=°' ²'Ä]èî ]輩8%üïK%H A searcher for creating iterators and performing lower level iteration.Á»%�ü¿L%I This searcher encapsulates the logic required for finding all successiveÁüŒJ%G non-overlapping matches in a haystack. In theory, iteration would lookÁÄ×% something like this:Áð%�üô)%& 1. Setting the start position to `0`.Áüž:%7 2. Execute a regex search. If no match, end iteration.ÁüÙK%H 3. Report the match and set the start position to the end of the match.Á´¥% 4. Go back to (2).Á¼%�üÀJ%G And if this were indeed the case, it's likely that `Searcher` wouldn'tÁü‹ O%L exist. Unfortunately, because a regex may match the empty string, the aboveÁüÛ K%H logic won't work for all possible regexes. Namely, if an empty match isÁü§ J%G found, then step (3) would set the start position of the search to theÁüò 8%5 position it was at. Thus, iteration would never end.Á« %�ü¯ H%E Instead, a `Searcher` knows how to detect these cases and forcefullyÁüø H%E advance iteration in the case of an empty match that overlaps with aÁœÁ % previous match.ÁÕ %�üÙ N%K If you know that your regex cannot match any empty string, then the simpleÁü¨ 2%/ algorithm described above will work correctly.ÁÛ %�üß J%Œ TüªN%á T¤ù%¹¡TŽ%�ü’O%L In particular, a `Searcher` is not itself an iterator. Instead, it providesÁüâN%K `advance` routines that permit moving the search along explicitly. It alsoÁü±I%F provides various routines, like [`Searcher::into_matches_iter`], thatÁüûL%I accept a closure (representing how a regex engine executes a search) andÁüÈ$%! returns a conventional iterator.Áí%�üñB%? The lifetime parameters come from the [`Input`] type passed toÁ´´% [`Searcher::new`]:ÁË%�üÏ6%¾ŸT†%�ÔŠ% # Searcher vs IteratorÁ¥%�ü©M%J Why does a search type with "advance" APIs exist at all when we also haveÁü÷J%G iterators? Unfortunately, the reasoning behind this split is a complexÁüÂ(%% combination of the following things:Áë%�üïM%J 1. While many of the regex engines expose their own iterators, it is alsoÁü½O%L nice to expose this lower level iteration helper because it permits callersÁü�O%L to provide their own `Input` configuration. Moreover, a `Searcher` can workÁüÝK%H with _any_ regex engine instead of only the ones defined in this crate.Áü©G%D This way, everyone benefits from a shared iteration implementation.ÁüñL%I 2. There are many different regex engines that, while they have the sameÁü¾I%F match semantics, they have slightly different APIs. Iteration is justÁüˆM%J complex enough to want to share code, and so we need a way of abstractingÁüÖN%K over those different regex engines. While we could define a new trait thatÁü¥N%K describes any regex engine search API, it would wind up looking very closeÁüôM%J to a closure. While there may still be reasons for the more generic traitÁüÂJ%G to exist, for now and for the purposes of iteration, we use a closure.Áü�M%J Closures also provide a lot of easy flexibility at the call site, in thatÁüÛO%L they permit the caller to borrow any kind of state they want for use duringÁ¬«% each search call.ÁüÁN%K 3. As a result of using closures, and because closures are anonymous typesÁü�J%G that cannot be named, it is difficult to encapsulate them without bothÁüÛJ%G costs to speed and added complexity to the public API. For example, inÁü¦"% defining an iterator type likeÁüÉ@%= [`dfa::regex::FindMatches`](crate::dfa::regex::FindMatches),ÁüŠ N%K if we use a closure internally, it's not possible to name this type in theÁüÙ L%I return type of the iterator constructor. Thus, the only way around it isÁü¦!N%K to erase the type by boxing it and turning it into a `Box`.Áüõ!L%I This boxed closure is unlikely to be inlined _and_ it infects the publicÁüÂ"N%K API in subtle ways. Namely, unless you declare the closure as implementingÁü‘#J%G `Send` and `Sync`, then the resulting iterator type won't implement itÁüÜ#H%E either. But there are practical issues with requiring the closure toÁü¥$J%G implement `Send` and `Sync` that result in other API complexities thatÁüð$9%6 are beyond the scope of this already long exposition.Áüª%I%F 4. Some regex engines expose more complex match information than justÁüô%J%G "which pattern matched" and "at what offsets." For example, the PikeVMÁü¿&I%F exposes match spans for each capturing group that participated in theÁü‰'K%H match. In such cases, it can be quite beneficial to reuse the capturingÁüÕ'M%J group allocation on subsequent searches. A proper iterator doesn't permitÁü£(O%L this API due to its interface, so it's useful to have something a bit lowerÁüó(K%H level that permits callers to amortize allocations while also reusing aÁü¿)B%? shared implementation of iteration. (See the documentation forÁü‚*L%I [`Searcher::advance`] for an example of using the "advance" API with theÁdÏ*% PikeVM.)ÁÜ*%�üà*J%G What this boils down to is that there are "advance" APIs which requireÁü«+M%J handing a closure to it for every call, and there are also APIs to createÁüù+F%C iterators from a closure. The former are useful for _implementing_ÁüÀ,L%I iterators or when you need more flexibility, while the latter are usefulÁü�-9%6 for conveniently writing custom iterators on-the-fly.ÁÇ-%�üË-&%# # Example: iterating with capturesÁò-%�üö-J%G Several regex engines in this crate over convenient iterator APIs overÁüÁ.L%I [`Captures`] values. To do so, this requires allocating a new `Captures`ÁüŽ/K%H value for each iteration step. This can perhaps be more costly than youÁüÚ/G%D might want. Instead of implementing your own iterator to avoid thatÁü¢0J%G cost (which can be a little subtle if you want to handle empty matchesÁüí0=%: correctly), you can use this `Searcher` to do it for you:Á«1%�<¯1%ä¤/Ì·1%ô¤/üÑ1&%…‹Jìø1%çÀS¤–2% Input, Span,Á4«2%Ý¥/²2%�ü¶24%Ö¡Müë2'%Ř<“3%�ü—3(%û›0üÀ3&%Ê›0ìç3%ôô3ü…4;%8 let mut searcher = Searcher::new(Input::new(haystack));ÁüÁ42%/ while let Some(_) = searcher.advance(|input| {Áüô40%òÛSä¥5%«ÜSDÂ5% }) {ÁüË5K%ø¢<ü—6A%> matches.push(caps.get_group_by_name("numbers").unwrap());Á,Ù6%œü3ìß6%·ò9Ìý6%¤<Ô—7%å¤<ܲ7%‰¥<<Î7%Óó9Ö7%�üÚ7.%Ǭ/<‰8%ä¤/ëD´8%¸´'´'Ûç„z¢®é£ˆwµ'¶'½8%„Õ9%,Õ9%«³'³'¿�ìµ;%tµ;%«³'³'ØÚŸì× ¸¸'¸'Ûç¹'†¹'kmŸìŸì»> »>ÛçÛçBÿ·'£ š8%·' ¹'¸Ÿì3íØ ¸»'»'Ûç¼' g¼'ùû3í3í¼>½>¾> ¼>Ûç ½>€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡¾>­àBÿº'¤ ¡8%º' ¼'¸3íœ3í¦ üúàO%L An iterator over all non-overlapping half matches for an infallible search.ÁÊá%�üÎáL%I The iterator yields a [`HalfMatch`] value until no more matches could beÁT›â%ÕÎc¦â%�üªâ'%Ò�TÒâ%�üÖâD%‘žT›ã%�üŸã9%ížTÙã%�üÝã6%¾ŸT”ä%�ü˜äJ%Œ TüãäN%á T¤²å%¹¡TÇå%�üËåH%E This iterator is created by [`Searcher::into_half_matches_iter`] andÁü”æ4%1 then calling [`TryHalfMatchesIter::infallible`].Áï|åæ%¸¿'‚À'¿'À'¾�N ùæ%ŠéOtäy_»T�¾'Á'¯èŠéBÿ¦ `«¯èŠéBÿ½'½' ¾'¸òèõæ%{}Ìüæ%«½'½'¯è,Ý ¸Ã'‚Ä'Ä'Ã'¾�NÔŸgòè¯ ùæ%ŠéÅ' gÅ'„†üþ,,Þ>ß>à> Þ>Šé ß>€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡à>­àBÿÂ'¯ Òæ%Â' Å'¸òè,œ,þ üšþJ%¥­båþ%�üéþO%‡®b¹ÿ%�ü½ÿ'%Ò�Tåÿ%�üéÿD%‘žT®€%�ü²€9%ížTì€%�üð€6%¾ŸT§�%�ü«�J%Œ Tüö�N%á T¤Å‚%¹¡TÚ‚%�üÞ‚C%@ This iterator is created by [`Searcher::into_matches_iter`] andÁü¢ƒ0%- then calling [`TryMatchesIter::infallible`].Áñ\ïƒ%¸È'‚É'È'É'¾�N ÿƒ%²êÝîâ� n]^Ç'Ê'Ùé²êBÿþ `«Ùé²êBÿÆ'Æ' Ç'¸òèûƒ%{}¬‚„%«Æ'Æ'Ùék à ¸Ì'‚Í'Ì'Í'¾�NÔöÞk´ ÿƒ%²êÎ' gÎ'|~ôök k ê>ë>ì> ê>²ê ë>€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ì>­àBÿË'´ ܃%Ë' Î'¸òèk œk U ü£œK%H An iterator over all non-overlapping captures for an infallible search.Áïœ%�üóœK%€ÎcT¿�%ÕÎcÊ�%�üÎ�'%Ò�Tö�%�üú�D%‘žT¿ž%�üÞ9%ížTýž%�ü�Ÿ6%¾ŸT¸Ÿ%�ü¼ŸJ%Œ Tü‡ N%á T¤Ö %¹¡Të %�üï I%F This iterator is created by [`Searcher::into_captures_iter`] and thenÁü¹¡,%) calling [`TryCapturesIter::infallible`].ÁÓ«Œì¡%Ìæ¡%ódœ¢%¸Ñ'‚Ò'Ñ'Ò'¾�N ­¢%çë5;!Î&Ì_Ð'Ó'�ëçëBÿU `«�ëçëBÿÏ'Ï' Ð'¸òè©¢%{}´°¢%«Ï'Ï'�ë#2ã ¸Õ'‚Ö'Ö'Õ'¾�NÔöÞk¹ ­¢%çë×' g×'|~ôö#2#2÷>ø>ù> ÷>çë ø>€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ù>­àBÿÔ'¹ ‰¢%Ô' ×'¸òè#2œ#2lÚäÌ A look-around assertion.Áé�üíHE An assertion matches at a position between characters in a haystack.Áü¶ OL Namely, it does not actually "consume" any input as most parts of a regularÁü† MJ expression do. Assertions are a way of stating that some property must beÁüÔ /, true at a particular point during matching.Á„ �üˆ 2/ For example, `(?m)^[a-z]+$` is a pattern that:Á» �ü¿ LI * Scans the haystack for a position at which `(?m:^)` is satisfied. ThatÁüŒ LI occurs at either the beginning of the haystack, or immediately followingÁ¬Ù  a `\n` character.Áüï 30 * Looks for one or more occurrences of `[a-z]`.Áü£ KH * Once `[a-z]+` has matched as much as it can, an overall match is onlyÁüï 41 reported when `[a-z]+` stops just before a `\n`.Á¤�ü¨HE So in this case, `abc` and `\nabc\n` match, but `\nabc1\n` does not.Áñ�üõMJ Assertions are also called "look-around," "look-behind" and "look-ahead."ÁüÃNK Specifically, some assertions are look-behind (like `^`), other assertionsÁü’NK are look-ahead (like `$`) and yet other assertions are both look-ahead andÁäá look-behind (like `\b`).Áþ�Ô‚ # Assertions in an NFAÁ��ü¡IF An assertion in a [`thompson::NFA`](crate::nfa::thompson::NFA) can beÁüëNK thought of as a conditional epsilon transition. That is, a matching engineÁüºJG like the [`PikeVM`](crate::nfa::thompson::pikevm::PikeVM) only permitsÁü…GD moving through conditional epsilon transitions when their conditionÁüÍIF is satisfied at whatever position the `PikeVM` is currently at in theÁl—®£=¥�ü©KH How assertions are handled in a `DFA` is trickier, since a DFA does notÁüõMJ have epsilon transitions at all. In this case, they are compiled into theÁüÃOL automaton itself, at the expense of more states than what would be requiredÁÌ“ without an assertion.Áõ$ãôí7�  °ZÞÙ'Ú'Ü'Ý'ß'à'â'ã'å'æ'è'é'ë'ì'î'ï'ñ'ò'ô'õ'÷'ø'ú'û'ý'þ'€(�(ƒ(„(†(‡(‰(Š(Œ(�(Û'Ú'Þ'Ý'á'à'ä'ã'ç'æ'ê'é'í'ì'ð'ï'ó'ò' ö'õ' ù'ø' ü'û' ÿ'þ' ‚(�(…(„(ˆ(‡(‹(Š(Ž(�(,ÝüîKH Match the beginning of text. Specifically, this matches at the startingÁÔ¾ position of the input.ÁõØ'Ø'ôí“•Ø'Ø'ôíqKØüñC@ Match the end of text. Specifically, this matches at the endingÁÔ¹±�lõaØ'Ø'ôíuwØ'Ø'ôíLL<·üêIF Match the beginning of a line or the beginning of text. Specifically,Áü¸JG this matches at the starting position of the input, or at the positionÁü‡+( immediately following a `\n` character.ÁõãØ'Ø'ôí÷ùØ'Ø'ôí'M,‰üÍJG Match the end of a line or the end of text. Specifically, this matchesÁüœDA at the end position of the input, or at the position immediatelyÁüå preceding a `\n` character.ÁõÒØ'Ø'ôíæèØ'Ø'ôíNL­ü�I׃lüëJª„lüºJG immediately following either a `\r` or `\n` character, but never afterÁü‰ a `\r` when a `\n` follows.Áõ Ø'Ø'ôí´¶Ø'Ø'ôíÝN< üÅJ‡†lü”DÛ†lüÝKH preceding a `\r` or `\n` character, but never before a `\n` when a `\r`Á„­  precedes it.Áõ‘Ø'Ø'ôí¥§Ø'Ø'ôí¸OL·"üØ GD Match an ASCII-only word boundary. That is, this matches a positionÁü¤!B? where the left adjacent character and right adjacent characterÁüë!GD correspond to a word and non-word or a non-word and word character.ÁõõØ'Ø'ôí  Ø'Ø'ôí“P|ˆ#üÏ"41 Match an ASCII-only negation of a word boundary.ÁõEØ'Ø'ôíY[Ø'Ø'ôínQ\‡%ü¦#IF Match a Unicode-aware word boundary. That is, this matches a positionÁüô#BÂŒlü»$GŽ�lõvØ'Ø'ô튌Ø'Ø'ôíIRŒÜ%ü¡%63 Match a Unicode-aware negation of a word boundary.ÁõGØ'Ø'ôí[]Ø'Ø'ôí$Stþ'üü%KH Match the start of an ASCII-only word boundary. That is, this matches aÁüÌ&JG position at either the beginning of the haystack or where the previousÁü›'KH character is not a word character and the following character is a wordÁtë' character.ÁõØ'Ø'ôí14Ø'Ø'ôíÿSd–*üœ(GD Match the end of an ASCII-only word boundary. That is, this matchesÁüè(FC a position at either the end of the haystack or where the previousÁü³)KH character is a word character and the following character is not a wordÁtƒ*›”lõ Ø'Ø'ôí"Ø'Ø'ôíÚT„°,ü²*GD Match the start of a Unicode word boundary. That is, this matches aÁüþ*Jó’lüÍ+KÇ“lt�,›”lõ�Ø'Ø'ôí•—Ø'Ø'ôíµUtÆ.üÐ,EB Match the end of a Unicode word boundary. That is, this matches aÁüš-DA position at either the end of the haystack or where the previousÁüã-K«–lt³.›”lõ¿Ø'Ø'ôíÓÕØ'Ø'ôí�V”³0üä.FC Match the start half of an ASCII-only word boundary. That is, thisÁü¯/KH matches a position at either the beginning of the haystack or where theÁüÿ//, previous character is not a word character.ÁõåØ'Ø'ôíùûØ'Ø'ôíkW„�2üÕ0DA Match the end half of an ASCII-only word boundary. That is, thisÁüž1EB matches a position at either the end of the haystack or where theÁüè10- following character is not a word character.ÁõÞØ'Ø'ôíòôØ'Ø'ôíFX¤ˆ4ü½2JG Match the start half of a Unicode word boundary. That is, this matchesÁüŒ3C@ a position at either the beginning of the haystack or where theÁüÔ3/ãœlõ¶Ø'Ø'ôíÊÌØ'Ø'ôí!Y”ð5ü¬4HE Match the end half of a Unicode word boundary. That is, this matchesÁüù4GD a position at either the end of the haystack or where the followingÁüÅ5&# character is not a word character.ÁõÚØ'Ø'ôíîðØ'Ø'ôíüY×Z×Z×Zæ ôí×Zæ ôí‘(†‘(×Z×Z‰? ‰?ôíôíBÿ�(¾ ¶�( ‘(×Z ¿ ½ç ôí3[è ôí”( g”(3[3[Š?‹?Œ? Š?ôí ‹?€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Œ?­àBÿ“(À Ó( ”(3[œ3[¡^é ôí–(Ζ(¡^¡^¡^¡^�? �?ôíBÿ•(Á Ê•( –(¡^Ú^ê ôíÚ^ê ôí™(ù±™(Ú^Ú^Ž?�? Ž?ôí �?ôíBÿ˜( Î˜( ™(Ú^î Ú^”ú[üÒY@= LookSet is a memory-efficient set of look-around assertions.Á“Z�ü—ZGD This is useful for efficiently tracking look-around assertions. ForÁüßZOL example, a [`thompson::NFA`](crate::nfa::thompson::NFA) provides propertiesÁܯ[ that return `LookSet`s.Áö<…\¯ñT–6Ên¼É›(lº`ü“\IF The underlying representation this set is exposed to make it possibleÁüá\A> to store it somewhere efficiently. The representation is thatÁü§]<9 of a bitset, where each assertion occupies bit `i` whereÁÔè] `i = Look::as_repr()`.Á‡^�ü�^HE Note that users of this internal representation must permit the fullÁüÜ^EB range of `u16` values to be represented. For example, even if theÁü¦_KH current implementation only makes use of the 10 least significant bits,Áüö_?< it may use more bits in a future semver compatible release.Á$¾`š(š( x x xë ¯ñ xë ¯ñž(†ž( x x�? �?¯ñ¯ñBÿ�(à Ô[�( ž( x Ä Û[ì ¯ñ�xí ¯ñ¡(÷¡(�x�x¯ñBÿ ( ( ¡(yî ¯ñ£(Σ(yyyy‘? ‘?¯ñBÿ¢(Æ ê[¢( £(y‰yï ¯ñ‰yï ¯ñ¦(ù±¦(‰y‰y’?“? ’?¯ñ “?¯ñBÿ¥(Ç î[¥( ¦(‰yî ‰y´…§üô¥A> An iterator over all look-around assertions in a [`LookSet`].Á¶¦�üº¦2/ This iterator is created by [`LookSet::iter`].Áù\�§µòÇY%>œhC¨(d¢§¢§Ø§(§(¯ñœò µòª(†ª(œœ£? £?µòµòBÿ©(Ì ö¦©( ª(œ@�ó µò¬( g¬(@�@�¤?¥?¦? ¤?µò ¥?€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡¦?­àBÿ«(Í ý¦«( ¬(@�œ@�´Ò³ü£«)& A matcher for look-around assertions.ÁÍ«�üÑ«NK This matcher permits configuring aspects of how look-around assertions areÁd ¬ matched.Á­¬�l±¬•£/¿¬�üìOL A `LookMatcher` can change the line terminator used for matching multi-lineÁü“­*' anchors such as `(?m:^)` and `(?m:$)`.Á¾­�<­ä¤/ÌÊ­ô¤/üä­.ŒðGü“® èÄH¬´®źE4ʮݥ/Ñ®�üÕ®'¼ÅHüý®'îÅH¥¯�ô©¯ˆöGüȯ>»ÆHü‡°!„ÇHü©°&Ê›0а�üÔ°9ÌÇH|ޱ¡´0üž±#žÈHü±,ÌÈH4ï±½µ0üö±:‘ÉH|±²¡´0lÁ²ðç6üϲ(òÉH4ø²½µ0ÿ²�üƒ³.Ǭ/<²³ä¤/ú\ݳ‚óûÈÖåsï*®(œï³Dï³Ø­(­(¢ãŠ£ô ‚ó°(†°(УУ¨? ¨?‚ó‚óBÿ¯(Πó¯( °(Š£¤õ ‚ó²( g²(¤¤©?ª?«? ©?‚ó ª?€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡«?­àBÿ±(Ï Ê³±( ²(¤œ¤ üÑ‚JG An error that occurs when the Unicode-aware `\w` class is unavailable.Áœƒ�ü ƒMJ This error can occur when the data tables necessary for the Unicode awareÁüîƒHE Perl character class `\w` are unavailable. The `\w` class is used toÁü·„LI determine whether a codepoint is considered a word character or not whenÁü„…NK determining whether a Unicode aware `\b` (or `\B`) matches at a particularÁlÓ…˜ùIá…�üå…IF This error can only occur when the `unicode-word-boundary` feature isÁl¯† disabled.ÁüÄà†Ïóhè�ʨ¸ô´(µ(ÏóBÿ 7ØÏóBÿ³(³( ´(ù†Ø³(³(m÷ö Ïó·(†·(m÷m÷Ü? Ü?ÏóÏóBÿ¶(Ò Æ†¶( ·(m÷³÷÷ Ïó¹( g¹(³÷³÷Ý?Þ?ß? Ý?Ïó Þ?€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ß?­àBÿ¸(Ó Í†¸( ¹(³÷œ³÷ùØ Çg.aLº�ßä¡$ùÙ Ô&eÙÙ ×eßBÿ·©$™ º(ç¼(¼(º(çÑÙ ¦eº(�½(�½(�½(½(º(ƨ$ùÙ ®Oe¹Ù µe ß�g�g†ª$�g�ûf‘gƒûf§~Ÿ½[l(ÚÃÿÿÿÿÿÿÑÙ ‚!eº(�¿(�¿(�¿(¿(º(Ú¨$ùÙ Š"Ne¹Ù ‘"e ßüª$Ãÿÿÿÿÿÿ  ÿLî™ß�Ã(Ã(çŒN ø™Îõô›ÛY·Ú¡¢Â(Ä(éìÎõBÿ  UßéìÎõBÿÁ(Á( Â(éìnp û™ßÁ(Á(éì‡ ÿ �Æ(Æ(çŒNºùûTÞ ø™ÎõÇ( gÇ(ÖØ‡ ‡ ï?ð?ñ? ï?Îõ ð?€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ñ?­àBÿÅ(Þ Á™Å( Ç(éì‡ œ‡ ìi&„\{&ÿ÷âÑêíÜ“nÉÉ(ì‹&Óperf-literal-multisubstringÁüÝ'&ü×/&‹&²È(È(ÿ¶%v[ „ ÿ÷Ë(†Ë(v[ v[ ƒ@ ƒ@ÿ÷ÿ÷BÿÊ(ç Z&Ê( Ë(v[ ó[ … ÿ÷Í( gÍ(ó[ ó[ „@…@†@ „@ÿ÷ …@€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡†@­àBÿÌ(è a&Ì( Í(ó[ œó[ _ †<{'ÌøÔWzÝùØm Ï(Ð(ÌÊ%ÌøBÿ_ 7ÃÌÊ%ÌøBÿÎ(Î( Ï(\ƒ'ÃÎ(Î(ÌÊ%Š'éd ‡ ÌøÓ(†Ó(éd éd �@ �@ÌøÌøBÿÒ(ë Z'Ò( Ó(éd le ˆ ÌøÕ( gÕ(le le �@‘@’@ �@Ìø ‘@€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡’@­àBÿÔ(ì a'Ô( Õ(le œle ® ‡4{(œùKõ“v‘ÓPŒ×(Ø(œùBÿ® 6ÕœùBÿÖ(Ö( ×(‚(ÕÖ(Ö(ók ‰ œùÚ(†Ú(ók ók ›@ ›@œùœùBÿÙ(í Z(Ù( Ú(ók ll Š œùÜ( gÜ(ll ll œ@�@ž@ œ@œù �@€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ž@­àBÿÛ(î a(Û( Ü(ll œll ü ˆ<¸ (ìù+ÿ ÿÿÝqÞ(ß(à(ìùBÿü ;ÕìùBÿÝ(Ý( Þ(À (ÕÝ(Ý(Ä (ÕÝ(Ý(‡q ‹ ìùâ(†â(‡q ‡q §@ §@ìùìùBÿá(ï — (á( â(‡q r Œ ìùä( gä(r r ¨@©@ª@ ¨@ìù ©@€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ª@­àBÿã(ð ž (ã( ä(r œr U ‰<ñ(ÈúÆ¢æŸ8°âìæ(ç(è(é(ÈúBÿU ?ÕÈúBÿå(å( æ(ù(Õå(å(ý(Õå(å(�(Õå(å(�y � Èúë(†ë(�y �y ³@ ³@ÈúÈúBÿê(ñ Ð(ê( ë(�y ;z Ž Èúí( gí(;z ;z ´@µ@¶@ ´@Èú µ@€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡¶@­àBÿì(ò ×(ì( í(;z œ;z Äi)Š4{)°ûØ¢n«Ô-ï(ü¨')Ó‰|í)Ó’üþ")üì5)üã@)4¨)ûî(î(¸ ¸ ÷…&º äÖ%ž» ™›žF7/7úSWWƒ � °ûñ(†ñ(Wƒ Wƒ ¿@ ¿@°û°ûBÿð(ó Z)ð( ñ(Wƒ Ôƒ � °ûó( gó(Ôƒ Ôƒ À@Á@Â@ À@°û Á@€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Â@­àBÿò(ô a)ò( ó(Ôƒ œÔƒ ¼i*‹,{*ýûï«–[‰ ¯õ(ö(÷(ü€(*ÓÖÓlüÒ'*üÌ/*D€*‹ô(ô(á�&ü¨ #*ÓÖÓlüú '*üô /*\¨ *‹ô(ô(ƒ’&”  *ÓÖÓlüò '*üì /*\  *‹ô(ô(ω ‘ ýûù(†ù(ω ω Ë@ Ë@ýûýûBÿø(õ Z*ø( ù(ω ®Š ’ ýûû( gû(®Š ®Š Ì@Í@Î@ Ì@ýû Í@€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Î@­àBÿú(ö a*ú( û(®Š œ®Š ¤ð(+üÍ0+- A prefilter for accelerating regex searches.Áþ+�ü‚C+@ If you already have your literals that you want to search with,ÁüÆC+@ then the vanilla [`Prefilter::new`] constructor is for you. ButÁüŠD+A if you have an [`Hir`] value from the `regex-syntax` crate, thenÁüÏL+I [`Prefilter::from_hir_prefix`] might be more convenient. Namely, it usesÁüœL+I the [`regex-syntax::hir::literal`](regex_syntax::hir::literal) module toÁüéO+L extract literal prefixes for you, optimize them and then select and build aÁ´¹+ prefilter matcher.ÁÐ+�üÔH+E A prefilter must have **zero false negatives**. However, by its veryÁü�K+H nature, it may produce false positives. That is, a prefilter will neverÁüéK+H skip over a position in the haystack that corresponds to a match of theÁüµG+D original regex pattern, but it *may* produce a match for a positionÁüýI+F in the haystack that does *not* correspond to a match of the originalÁüÇJ+G regex pattern. If you use either the [`Prefilter::from_hir_prefix`] orÁü’H+E [`Prefilter::from_hirs_prefix`] constructors, then this guarantee isÁüÛL+I upheld for you automatically. This guarantee is not preserved if you useÁü¨N+K [`Prefilter::new`] though, since it is up to the caller to provide correctÁü÷?+< literal strings with respect to the original regex pattern.Á·+�l»+ # CloningÁÉ+�üÍN+K It is an API guarantee that cloning a prefilter is cheap. That is, cloningÁüœG+D it will not duplicate whatever heap memory is used to represent theÁ¼ä+ underlying matcher.Áü+�l€+•£/Ž+�ü’9+6 This example shows how to attach a `Prefilter` to theÁüÌK+H [`PikeVM`](crate::nfa::thompson::pikevm::PikeVM) in order to accelerateÁl˜+ searches.Á¦+�<ª+ä¤/̲+ô¤/üÌ&+…‹Jüó#+Þß6Ì—+­™?4±+Ý¥/¸+�ü¼C+@ let pre = Prefilter::new(MatchKind::LeftmostFirst, &["Bruce "])Áü€ +µš?ô  +ˆöGü¿ 9+6 .configure(PikeVM::config().prefilter(Some(pre)))Áôù +€Ž?ü˜!&+Ê›0|¿!+¡´0üÏ!$+! Some(Match::must(0, 6..23)),Áüô!8+5 re.find(&mut cache, "Hello Bruce Springsteen!"),Á4­"+½µ0ü´".+Ǭ/<ã"+ä¤/ë"+�üï"J+G But note that if you get your prefilter incorrect, it could lead to anÁ¬º#+ incorrect result!ÁÐ#+�<Ô#+ä¤/ÌÜ#+ô¤/üö#&+…‹Jü�$#+Þß6ÌÁ$+­™?4Û$+Ý¥/â$+�üæ$+ // This prefilter is wrong!Áü†%C+@ let pre = Prefilter::new(MatchKind::LeftmostFirst, &["Patti "])ÁüÊ%+µš?ôê%+ˆöGü‰&9+ôþlôÃ&+€Ž?üâ&&+Ê›0ü‰'9+6 // We find no match even though the regex does match.Á|Ã'+¡´0lÓ'+ðç6üá'8+�€m4š(+½µ0ü¡(.+Ǭ/<Ð(+ä¤/ŒLû(+äüE¯t2aƒè&ý(þ(ÿ(ÄÝ)+Ó«ŒÅ)+Ì¿)+Ý)+±ü(ü(„K„KK‡Kí ä7ˆKÞüä7‰K«ä7ƒ¢3à6ú�Ä�þl™*+Ó«Œ�*+Ìû)+<™*+±ü(ü(¬Ê*+Ó«Œ²*+̬*+tÊ*+±ü(ü(ך “ äü�)†�)ך ך ×@ ×@äüäüBÿ€)÷ á(+€) �)ך ™› ” äüƒ) gƒ)™› ™› Ø@Ù@Ú@ Ø@äü Ù@€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡Ú@­àBÿ‚)ø è(+‚) ƒ)™› œ™› ´Æ�+�4Ö�+Ãþ¶OÖ"ߥ…)†)ˆ)‰)‹)Œ)Ž)�)‘)’)”)•)—)˜)†)‡)œùÃþBÿ‰)Š)ìùÃþBÿŒ)�)ÈúÃþBÿ�)�)°ûÃþBÿ’)“)ýûÃþBÿ•)–)ÌøÃþBÿ˜)™)ÿ÷ÃþBÿ¸ �¸ „)„) †)¸ ¸ œùÃþBÿ„)„)ÝŒm4ê�+„)„)œù  �  „)„) ‰)    ìùÃþBÿ„)„)Ò�m<ÿ�+„)„)ìùZ �Z „)„) Œ)Z Z ÈúÃþBÿ„)„)ÇŽm<•ž+„)„)Èú« �« „)„) �)« « °ûÃþBÿ„)„)¼�m4ªž+„)„)°ûü �ü „)„) ’)ü ü ýûÃþBÿ„)„)±�m,½ž+„)„)ýûM �M „)„) •)M M ÌøÃþBÿ„)„)¦‘m<Ñž+„)„)Ìøž �ž „)„) ˜)ž ž ÿ÷ÃþBÿ„)„)›’m\ëž+„)„)ÿ÷­ • Ãþ›)†›)­ ­ ó@ ó@ÃþÃþBÿš)ù ·�+š) ›)­ £± – Ãþ�) g�)£± £± ô@õ@ö@ ô@Ãþ õ@€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ö@­àBÿœ)ú ¾�+œ) �)£± œ£± ï ü—-,* A `usize` that can never be `usize::MAX`.ÁÅ,�üÉO,L This is similar to `core::num::NonZeroUsize`, but instead of not permittingÁü™3,0 a zero value, this does not permit a max value.ÁÍ,�üÑM,J This is useful in certain contexts where one wants to optimize the memoryÁüŸI,F usage of things that contain match offsets. Namely, since Rust slicesÁüéL,I are guaranteed to never have a length exceeding `isize::MAX`, we can useÁü¶K,H `usize::MAX` as a sentinel to indicate that no match was found. Indeed,Áü‚N,K types like `Option` have exactly the same size in memory as aÁdÑ, `usize`.ÁÞ,�üâ6,3 This type is defined to be `repr(transparent)` forÁü™=,: `core::num::NonZeroUsize`, which is in turn defined to beÁü×$,! `repr(transparent)` for `usize`.Áœ\Ù,¯€i°1f[ á4Ÿ) )¢ˆ$¯€Bÿï 7Ù¢ˆ$¯€Bÿž)ž)¤™'då,Ùž)ž)¢ˆ$ÔÇ ÔÇ ÔÇ ¥ ¯€ÔÇ ¥ ¯€£)†£)ÔÇ ÔÇ ú@ ú@¯€¯€Bÿ¢)— …,¢) £)ÔÇ ˜ Œ,¦ ¯€NÈ § ¯€¦)Φ)NÈ NÈ NÈ NÈ û@ û@¯€Bÿ¥)™ ’,¥) ¦)NÈ ÅÈ ¨ ¯€¨)üh¨)ÅÈ ÅÈ ü@ý@ ü@¯€ ý@ù Bÿ§)ÿ©)©)š –,§)��bÅÈ ¡�bÅÈ ¨)ù ÅÈ ƒÅÈ ÅÈ ÅÈ ³É © ¯€³É © ¯€¬)ù±¬)³É ³É þ@ÿ@ þ@¯€ ÿ@¯€Bÿ«)› œ,«) ¬)³É î ³É Ê ª ¯€®)±²®)Ê Ê €A�A €A¯€ �A¯€»½ Bÿ­)œ §,­) ®)Ê î Ê 4Ë « ¯€°)î°)4Ë 4Ë ‚AƒA ‚A¯€ ƒA¯€µ¼ Bÿ¯)� ³,¯) °)4Ë î 4Ë ? ü®+,( A type that represents a "small" index.ÁÚ,�üÞM,J The main idea of this type is to provide something that can index memory,Áü¬J,G but uses less memory than `usize` on 64-bit systems. Specifically, itsÁü÷M,J representation is always a `u32` and has `repr(transparent)` enabled. (SoÁüÅ@,= it is safe to transmute between a `u32` and a `SmallIndex`.)Á†,�üŠN,K A small index is typically useful in cases where there is no practical wayÁüÙL,I that the index will overflow a 32-bit integer. A good example of this isÁü¦K,H an NFA state. If you could somehow build an NFA with `2^30` states, itsÁüòJ,G memory usage would be exorbitant and its runtime execution would be soÁü½ M,J slow as to be completely worthless. Therefore, this crate generally deemsÁü‹!L,I it acceptable to return an error if it would otherwise build an NFA thatÁüØ!N,K requires a slice longer than what a 32-bit integer can index. In exchange,Áü§"J,G we can use 32-bit indices instead of 64-bit indices in various places.Áò",�üö"O,L This type ensures this by providing a constructor that will return an errorÁüÆ#J,G if its argument cannot fit into the type. This makes it much easier toÁü‘$M,J handle these sorts of boundary cases that are otherwise extremely subtle.Áß$,�üã$L,I On all targets, this type guarantees that its value will fit in a `u32`,Áü°%I,F `i32`, `usize` and an `isize`. This means that on 16-bit targets, forÁüú%F,C example, this type's maximum value will never overflow an `isize`,ÁüÁ&G,D which means it will never overflow a `i16` even though its internalÁü‰'$,! representation is still a `u32`.Á®',�ü²'K,H The purpose for making the type fit into even signed integer types likeÁüþ'M,J `isize` is to guarantee that the difference between any two small indicesÁüÌ(K,H is itself also a small index. This is useful in certain contexts, e.g.,Á¼˜), for delta encoding.Á°),�Œ´), # Other typesÁÆ),�üÊ)M,J The following types wrap `SmallIndex` to provide a more focused use case:Á˜*,�üœ*D,A * [`PatternID`] is for representing the identifiers of patterns.Áüá*I,F * [`StateID`] is for representing the identifiers of states in finiteÁü«+0,- automata. It is used for both NFAs and DFAs.ÁÜ+,�¤à+, # RepresentationÁõ+,�üù+J,G This type is always represented internally by a `u32` and is marked asÁüÄ,N,K `repr(transparent)`. Thus, this type always has the same representation asÁü“-M,J a `u32`. It is thus safe to transmute between a `u32` and a `SmallIndex`.Áá-,�tå-, # IndexingÁô-,�üø-D,A For convenience, callers may use a `SmallIndex` to index slices.Á½.,�dÁ.,Ó–5Î.,�üÒ.O,L While a `SmallIndex` is meant to guarantee that its value fits into `usize`Áü¢/I,F without using as much space as a `usize` on all targets, callers mustÁüì/L,I not rely on this property for safety. Callers may choose to rely on thisÁü¹0O,L property for correctness however. For example, creating a `SmallIndex` withÁü‰1O,L an invalid value can be done in entirely safe code. This may in turn resultÁüÙ1',$ in panics or silent logical errors.ÁžTõ2,×�ðS±¦²)³)×�Bÿ? 6Ù×�Bÿ±)±) ²)€3,Ù±)±)äÍ äÍ äÍ ­ ×�äÍ ­ ×�¶)†¶)äÍ äÍ ‡A ‡A×�×�Bÿµ)  �2,µ) ¶)äÍ ¡ –2,® ×�FÎ ¯ ×�¹) g¹)FÎ FÎ ˆA‰AŠA ˆA×� ‰A€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ŠA­àBÿ¸)¢ œ2,¸) ¹)FÎ œFÎ jÏ ° ×�»)÷»)jÏ jÏ ×�Bÿº)º) »)ÛÏ ± ×�½)ν)ÛÏ ÛÏ ÛÏ ÛÏ ‹A ‹A×�Bÿ¼)¤ ¬2,¼) ½)ÛÏ GÐ ² ×�¿)üh¿)GÐ GÐ ŒA�A ŒA×� �Aù Bÿ¾)ÿÀ)À)¥ °2,¾)��bGÐ ¡�bGÐ ¿)ù GÐ ƒGÐ GÐ GÐ Ñ ³ ×�Ñ ³ ×�Ã)ù±Ã)Ñ Ñ ŽA�A ŽA×� �A×�BÿÂ)¦ ¶2,Â) Ã)Ñ î Ñ lÑ ´ ×�Å)±²Å)lÑ lÑ �A‘A �A×� ‘A×�»½ BÿÄ)§ Á2,Ä) Å)lÑ î lÑ €Ò µ ×�Ç)îÇ)€Ò €Ò ’A“A ’A×� “A×�µ¼ BÿÆ)¨ Í2,Æ) Ç)€Ò î €Ò Ô¨l,ü�jB,? This error occurs when a small index could not be constructed.Áàj,�üäjN,K This occurs when given an integer exceeding the maximum small index value.Á³k,�ü·kI,F When the `std` feature is enabled, this implements the `Error` trait.ÁŸ|³l,ЄÊ9«ÅÔžÔÉ)tÉl,LÉl,ÙÈ)È)æ ¶ ЄË)†Ë)æ æ žA žAЄЄBÿÊ)© Šl,Ê) Ë)æ æ · ЄÍ) gÍ)æ æ ŸA A¡A ŸAЄ  A€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡¡A­àBÿÌ)ª ‘l,Ì) Í)æ œæ ¼ç ¸ ЄÏ)ÎÏ)¼ç ¼ç ¼ç ¼ç ¢A ¢AЄBÿÎ)« ˜l,Î) Ï)¼ç Eè ¹ ЄEè ¹ ЄÒ)ù±Ò)Eè Eè £A¤A £AЄ ¤AЄBÿÑ)¬ œl,Ñ) Ò)Eè î Eè ü‹q ,¡t�q,Î…¶úë:ú°’åÔ)ä²q,²q,ÙÓ)Ó)… Üè » Î…Ö)†Ö)Üè Üè ©A ©AÎ…Î…BÿÕ)¯ üp,Õ) Ö)Üè [é ¼ Î…Ø) gØ)[é [é ªA«A¬A ªAÎ… «A€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡¬A­àBÿ×)° ƒq,×) Ø)[é œ[é Ž üîÄG,D The identifier of a regex pattern, represented by a [`SmallIndex`].Á¶Å,�üºÅK,H The identifier for a pattern corresponds to its relative position amongÁü†ÆJ,G other patterns in a single finite state machine. Namely, when buildingÁüÑÆK,H a multi-pattern regex engine, one must supply a sequence of patterns toÁü�ÇH,E match. The position (starting at 0) of each pattern in that sequenceÁüæÇN,K represents its identifier. This identifier is in turn used to identify andÁüµÈ3,0 report matches of that pattern in various APIs.ÁéÈ,�üíÈL,I See the [`SmallIndex`] type for more information about what it means forÁüºÉ',$ a pattern ID to be a "small index."ÁâÉ,�üæÉ),& Note that this type is defined in theÁü�ÊH,E [`util::primitives`](crate::util::primitives) module, but it is alsoÁüÙÊ:,7 re-exported at the crate root due to how common it is.Á¢LúË,›†8ÛL�,<QÚ)Û)×�›†BÿŽ 8Ù×�›†BÿÙ)Ù)©ë'T„Ì,ÙÙ)Ù)×�Šê Šê Šê ½ ›†Šê ½ ›†Þ)†Þ)Šê Šê ®A ®A›†›†BÿÝ)± �Ë,Ý) Þ)Šê ² ¤Ë,¾ ›†ë ¿ ›†á)÷á)ë ë ›†Bÿà)à) á)‰ë À ›†ã)Îã)‰ë ‰ë ‰ë ‰ë ¯A ¯A›†Bÿâ)´ ³Ë,â) ã)‰ë ì Á ›†å)ühå)ì ì °A±A °A›† ±Aù Bÿä)ÿæ)æ)µ ·Ë,ä)��bì ¡�bì å)ù ì ƒì ì ì ñì  ›†ñì  ›†é)ù±é)ñì ñì ²A³A ²A›† ³A›†Bÿè)¶ ½Ë,è) é)ñì î ñì Wí à ›†ë)±²ë)Wí Wí ´AµA ´A›† µA›†»½ Bÿê)· ÈË,ê) ë)Wí î Wí qî Ä ›†í)îí)qî qî ¶A·A ¶A›† ·A›†µ¼ Bÿì)¸ ÔË,ì) í)qî î qî ß ü’Ì@,= The identifier of a finite automaton state, represented by aÁœÓÌ, [`SmallIndex`].ÁçÌ,�üëÌN,K Most regex engines in this crate are built on top of finite automata. EachÁüºÍN,K state in a finite automaton defines transitions from its state to another.Áü‰ÎJ,G Those transitions point to other states via their identifiers, i.e., aÁüÔÎL,I `StateID`. Since finite automata tend to contain many transitions, it isÁü¡ÏD,A much more memory efficient to define state IDs as small indices.ÁæÏ,�üêÏL,½Ùmü·Ð%," a state ID to be a "small index."Á£<ÃÑ,Ç;¤4Kéã©ï)ð)×�ÇBÿß 8Ù×�ÇBÿî)î)¼«(TËÑ,Ùî)î)×�×î ×î ×î ŠÇ×î ŠÇó)†ó)×î ×î ¸A ¸AÇÇBÿò)¹ æÐ,ò) ó)×î º íÐ,Æ Ã‡[ï Ç Ã‡ö)÷ö)[ï [ï ÇBÿõ)õ) ö)Ðï È Ã‡ø)Îø)Ðï Ðï Ðï Ðï ¹A ¹AÇBÿ÷)¼ üÐ,÷) ø)Ðï ?ð É Ã‡ú)ühú)?ð ?ð ºA»A ºAÇ »Aù Bÿù)ÿû)û)½ €Ñ,ù)��b?ð ¡�b?ð ú)ù ?ð ƒ?ð ?ð ?ð #ñ Ê Ã‡#ñ Ê Ã‡þ)ù±þ)#ñ #ñ ¼A½A ¼AÇ ½AÇBÿý)¾ †Ñ,ý) þ)#ñ î #ñ ‰ñ Ë Ã‡€*±²€*‰ñ ‰ñ ¾A¿A ¾AÇ ¿AÇ»½ Bÿÿ)¿ ‘Ñ,ÿ) €*‰ñ î ‰ñ £ò Ì Ã‡‚*î‚*£ò £ò ÀAÁA ÀAÇ ÁAǵ¼ Bÿ�*À �Ñ,�* ‚*£ò î £ò PÁ ¨v,¤›†„*…*†*‡*ˆ*‰*Š*‹*Œ*�*Ž*�*�*’*”*–* Á äv,°Á Áv,ÝîXÁ îv,ƒ*ƒ*›†°Á äw,øÁ  w7,ÿïX(Á îw,ƒ*ƒ*¨Á ½x,˜Á �x,�ñX Á Çx,ƒ*ƒ*›†¨Á Ãy,øÁ ûx;,¾òX Á Íy,ƒ*ƒ*øÁ Ý{/,øÁ úy>,âóXÁ Åz,�øÁ ÕzC,¶ôX¨Á ¥{,ƒõXÁ ä{,ˆäBÿƒ*ƒ*¿Â�Óõ øÁ š�1,øÁ ê|B,û÷XÀÁ ¹},ÇøXÁ Þ},�øÁ î};,ôøXøÁ ¶~:,¹ùXøÁ ý~@,ýùXøÁ Ê(,ÇúXÁ ÿ,�øÁ �€?,…ûXàÁ Û€,ÏûXhÁ §�,›†Bÿƒ*ƒ* ‰*�òö øÁ ÿ‚",øÁ ¡‚;,þýX Á †ƒ,›†Bÿƒ*ƒ*¨×*�¦ø øÁ ô…%,øÁ è„A,Ü�YØÁ ¶…,¨‚Y@Á �†,ÂA ÂA›†Bÿƒ*Á І,ƒ*å¿ Á ‹†,øÁ Û‡!,øÁ Ù†?,§„Y˜Á ¥‡,ñ„Y0Á è‡,ÃA ÃA›†Bÿƒ*Á ï‡,ƒ* Œ* Á ð‡,øÁ ‰!,øÁ ºˆ?,è†YÈÁ †‰,œÑX0Á ω,ÄA ÄA›†Bÿƒ*Á Ö‰,ƒ* �* Á ׉,øÁ «‹!,øÁ ¡Š>,š‰YàÁ ìŠ,ã‰Y0Á ¸‹,ÅA ÅA›†Bÿƒ*Á ¿‹,ƒ* Ž* Á À‹,øÁ ´Ž,øÁ ŠŒ0,ã‹YÁ ÇŒ,�øÁ ׌@,«ŒYøÁ ¤�A,öŒYøÁ ò�,Â�Y@Á »Ž,ÆA ÆA›†Bÿƒ*Á ÄŽ,ƒ* �* Á ÅŽ,øÁ Ì‘;,øÁ “�B,»�YøÁ â�&,ýÖXÁ •�,�øÁ ¥�@,¤�YøÁ ò�7,ï�YhÁ Ó‘,È«"ˆäBÿƒ*ƒ* �*öÆ‘ÿ Á í‘,øÁ µ•7,øÁ ï’B,»�YøÁ ¾“&,ýÖXÁ ñ“,�øÁ �”B,‡•YøÁ ДB,Ô•Y¸Á ¼•,È«"›†Bÿƒ*ƒ* ’*öÆt Á à•,øÁ Æ—$,øÁ Ì–?,ǘYXÁ ˜—,ˆÜXXÁ Í—,ÇA ÇA›†È«"Bÿƒ*Á Ù—,ƒ* ”* Á Ú—,Á è—,øÁ “š', Á ¡š,üŠBÿƒ*ƒ*ê“¶Á ¦š,øÁ ý›,¤›†˜* g˜*øÁ «œ@,Á ®œ,ÈAÉAÊA ÈA›† ÉA€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ÊA­àBÿ—*Á ²œ,—* ˜* Á ³œ,œÁ ¹œ,øÁ ß�',¤�š*š*çŒNÁ ä�,‹ƒ›*œ*�ý‘ýœ*!XÁ •ž,0Á šž,™*™*éìøÁ Éž#,(Á Ìž,€ËA ËA‹ƒ›† ËAéìBÿ™*Á Òž,™* œ*éì Á Óž,÷Q øÁ ¸Ÿ*,¤�ž*ž*çŒNÁ ½Ÿ,‹ƒŸ*ª#Ÿ*øÁ ‡ /,HÁ Š ,€ÌA ÌA‹ƒ›† ÌAéìBÿ�*Á ” ,�* Ÿ*éì Á ™ ,÷� øÁ ¨¡*,Ó«ˆÁ Œ¡,ÈÁ †¡,¤�¡*¡*çŒNÁ ­¡,«ƒ¢*£*�ý‘ý£*!XÁ á¡,0Á æ¡, * *éìøÁ •¢#,(Á ˜¢,€ÍA ÍA«ƒ›† ÍAéìBÿ *Á ž¢, * £*éì Á Ÿ¢,÷‘ øÁ ¦£-,Ó«ˆÁ Š£,ÈÁ „£,¤�¥*¥*çŒNÁ «£,«ƒ¦*ª#¦*øÁ ø£/,HÁ û£,€ÎA ÎA«ƒ›† ÎAéìBÿ¤*Á …¤,¤* ¦*éì Á Ф,÷‘ ¸Á ÷¤,¤›†¨*®¨*ØÁ �¥, Á  ¥,›†Bÿ§*§* ¨*�(Á ¥¥,ØÁ ‹¦,¤›†ª*«*µ¶«*PÁ µ¦,(Á º¦,©*©*ú‰øÁ Õ¦.,@Á ئ,ˆäBÿ©*©* «*�(Á á¦,ØÁ ì§,¤›†­*®*µ¶®*PÁ –¨,(Á ›¨,¬*¬*ú‰øÁ ¶¨.,@Á ¹¨,ˆäBÿ¬*¬* ®*�(Á ¨,ØÁ Í©,¤›†°*±*µ¶±*PÁ ÷©,(Á ü©,¯*¯*ú‰øÁ —ª.,@Á šª,ˆäBÿ¯*¯* ±*�(Á £ª,èÁ ®«,¤›†³*´*µ¶´*PÁ Ú«,(Á ß«,²*²*ú‰øÁ ú«0,@Á ý«,ˆäBÿ²*²* ´*�(Á †¬,HÁ Õ±,¤ú‰¶*ðÁ µ²,øÁ í±;,¨ÍYHÁ ¼²,ÖA ÖAú‰Bÿµ*Á Ʋ,µ* ¶* Á Dz,øÁ º³,Ó‰xÁ  ³,¸Á š³,¤ú‰øÁ æ³ ,¤ú‰¹*¥g¹*øÁ •´@,Á ˜´,×AØAÙA ×Aú‰ ØA€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ÙA­àBÿ¸*Á œ´,¸* ¹* Á �´,œÁ £´,PÁ ·,¤üŠ»*ØÁ Û·,Á Þ·,ÙüŠBÿº*º* »*¶Á â·,¸Á Þº,¤üн*¾*ÅQÆQ¾*HÁ „», Á ‰»,¼*¼*›†øÁ ¤»#, Á §»,ÞA ÞAüŠ€ªBÿ¼*Á ¬»,¼* ¾* Á ±»,øÁ Ç¿2,¤…À*À*ö�IÁ Ì¿,‚’I@Á Ï¿,ŽQ‰ŒˆÁ Ú¿,Ì‹Á*,.èÁ ˆÀ,Á ‹À,Ù‰ŒÌ‹Bÿ¿*¿* Á*‰ŒÛËu øÁ  Á?,¤…Ã*Ã*ö�IÁ ¥Á,‚’I@Á ¨Á,Þ˜nˆÁ ³Á,Ì‹Ä*Å*ÅQÆQÅ*35HÁ îÁ, Á óÁ,Â*Â* ¢(øÁ ™Â., Á œÂ,ãA ãA̋ۡ(BÿÂ*Á ¡Â,Â* Å*‰Œ Á ¦Â,0 øÁ á®<,•ÉYÁ ¦¯,�øÁ ²¯C,éÉYPÁ þ¯,Û÷OÁ ‘°,�øÁ �°B,ÒÊYPÁ è°,ŸËYÏ töÑ,ú‰ÙBJ›–Ê#×Ç*È*Єú‰Bÿ0 8ÙЄú‰BÿÆ*Æ*ùë'xÁ º±,ÙÆ*Æ*Є Õ ú‰Ê*†Ê*  ÏA ÏAú‰ú‰BÿÉ*Å „±,É* Ê* ˜ Ö ú‰Ì* gÌ*˜ ˜ ÐAÑAÒA ÐAú‰ ÑA€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ÒA­àBÿË*Æ ‹±,Ë* Ì*˜ œ˜ » × ú‰Î*ÎÎ*» » » » ÓA ÓAú‰BÿÍ*Ç ’±,Í* Î*» j Ø ú‰j Ø ú‰Ñ*ù±Ñ*j j ÔAÕA ÔAú‰ ÕAú‰BÿÐ*È –±,Ð* Ñ*j î j „ Ñ l†Ò,üŠË ‘5X¦¿êÓ*Ô*Î…üŠBÿ„ 9ÙÎ…üŠBÿÒ*Ò* Ó*pÁ ¨·,ÙÒ*Ò*Î… Û üŠÖ*†Ö*  ÚA ÚAüŠüŠBÿÕ*Ì ù¶,Õ* Ö* † Ü üŠØ* gØ*† † ÛAÜAÝA ÛAüŠ ÜA€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ÝA­àBÿ×*Í €·,×* Ø*† œ† øÁ è¾U,Ó Œ•Ò,…Ú*Ú*ö�IÁ „¿,Ì‹ÿƒ¡/eƒ Û*Ü*#%(Á •¿,Á •¿,ÙÙ*Ù*‰ŒPÁ ¨¿,Á ¨¿,ÙÙ*Ù*üŠ à …Þ*Þ*ö�I˜…‰ŒÓ „¿,Ì‹ß*†ß*¼¾  ßA ßA̋̋BÿÝ*Ó Ñ¾,Ý* ß*‰Œ Ñ á …á*á*ö�IIŸg‰ŒÔ „¿,Ì‹â* gâ*nqÑ Ñ àAáAâA àAÌ‹ áA€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡âA­àBÿà*Ô Ø¾,à* â*‰ŒÑ œÑ PÕ ¨v,¥Çä*å*æ*ç*è*é*ê*ë*ì*í*î*ï*ð*ò*ô*ö* Õ äv,°Õ Áv,ÝîXÕ îv,ã*ã*Ç°Õ äw,øÕ  w7,ÿïX(Õ îw,ã*ã*¨Õ ½x,˜Õ �x,�ñX Õ Çx,ã*ã*Ç¨Õ Ãy,øÕ ûx;,¾òX Õ Íy,ã*ã*øÕ Ý{/,øÕ úy>,âóXÕ Åz,�øÕ ÕzC,¶ôX¨Õ ¥{,ƒõXÕ ä{,׬(Bÿã*ã*á±(�9 øÕ š�1,øÕ ê|B,û÷XÀÕ ¹},ÇøXÕ Þ},�øÕ î};,ôøXøÕ ¶~:,¹ùXøÕ ý~@,ýùXøÕ Ê(,ÇúXÕ ÿ,�øÕ �€?,…ûXàÕ Û€,ÏûXhÕ §�,ÇBÿã*ã*õ¶�X øÕ ÿ‚",øÕ ¡‚;,þýX Õ †ƒ,ÇBÿã*ã* ê*� øÕ ô…%,øÕ è„A,Ü�YØÕ ¶…,¨‚Y@Õ �†,äA äAÇBÿã*Õ Š†,ã*ŠÅ( Õ ‹†,øÕ Û‡!,øÕ Ù†?,§„Y˜Õ ¥‡,ñ„Y0Õ è‡,åA åAÇBÿã*Õ ï‡,ã* ì* Õ ð‡,øÕ ‰!,øÕ ºˆ?,è†YÈÕ †‰,œÑX0Õ Ï‰,æA æAÇBÿã*Õ Ö‰,ã* í* Õ ×‰,øÕ «‹!,øÕ ¡Š>,š‰YàÕ ìŠ,ã‰Y0Õ ¸‹,çA çAÇBÿã*Õ ¿‹,ã* î* Õ À‹,øÕ ´Ž,øÕ ŠŒ0,ã‹YÕ ÇŒ,�øÕ ׌@,«ŒYøÕ ¤�A,öŒYøÕ ò�,Â�Y@Õ »Ž,èA èAÇBÿã*Õ ÄŽ,ã* ï* Õ ÅŽ,øÕ Ì‘;,øÕ “�B,»�YøÕ â�&,ýÖXÕ •�,�øÕ ¥�@,¤�YøÕ ò�7,ï�YhÕ Ó‘,È«"׬(Bÿã*ã* ð*öÆó Õ í‘,øÕ µ•7,øÕ ï’B,»�YøÕ ¾“&,ýÖXÕ ñ“,�øÕ �”B,‡•YøÕ ДB,Ô•Y¸Õ ¼•,È«"ÇBÿã*ã* ò*öÆÔ Õ à•,øÕ Æ—$,øÕ Ì–?,ǘYXÕ ˜—,ˆÜXXÕ Í—,éA éAÇÈ«"Bÿã*Õ Ù—,ã* ô* Õ Ú—,Õ è—,øÕ “š', Õ ¡š,½ŽBÿã*ã*‡Ý(¶Õ ¦š,øÕ ý›,¥Çø* gø*øÕ «œ@,Õ ®œ,êAëAìA êAÇ ëA€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ìA­àBÿ÷*Õ ²œ,÷* ø* Õ ³œ,œÕ ¹œ,øÕ ß�',¥�ú*ú*çŒNÕ ä�,‹ƒû*ü*�ý‘ýü*!XÕ •ž,0Õ šž,ù*ù*éìøÕ Éž#,(Õ Ìž,€íA íA‹ƒÇ íAéìBÿù*Õ Òž,ù* ü*éì Õ Óž,÷±" øÕ ¸Ÿ*,¥�þ*þ*çŒNÕ ½Ÿ,‹ƒÿ*ª#ÿ*øÕ ‡ /,HÕ Š ,€îA îA‹ƒÇ îAéìBÿý*Õ ” ,ý* ÿ*éì Õ ™ ,÷á# øÕ ¨¡*,Ó«ˆÕ Œ¡,ÈÕ †¡,¥��+�+çŒNÕ ­¡,«ƒ‚+ƒ+�ý‘ýƒ+!XÕ á¡,0Õ æ¡,€+€+éìøÕ •¢#,(Õ ˜¢,€ïA ïA«ƒÇ ïAéìBÿ€+Õ ž¢,€+ ƒ+éì Õ Ÿ¢,÷ñ$ øÕ ¦£-,Ó«ˆÕ Š£,ÈÕ „£,¥�…+…+çŒNÕ «£,«ƒ†+ª#†+øÕ ø£/,HÕ û£,€ðA ðA«ƒÇ ðAéìBÿ„+Õ …¤,„+ †+éì Õ Š¤,÷ñ% ¸Õ ÷¤,¥Çˆ+®ˆ+ØÕ �¥, Õ  ¥,ÇBÿ‡+‡+ ˆ+�(Õ ¥¥,ØÕ ‹¦,¥ÇŠ+‹+µ¶‹+PÕ µ¦,(Õ º¦,‰+‰+»�øÕ Õ¦.,@Õ Ø¦,׬(Bÿ‰+‰+ ‹+�(Õ á¦,ØÕ ì§,¥Ç�+Ž+µ¶Ž+PÕ –¨,(Õ ›¨,Œ+Œ+»�øÕ ¶¨.,@Õ ¹¨,׬(BÿŒ+Œ+ Ž+�(Õ Â¨,ØÕ Í©,¥Ç�+‘+µ¶‘+PÕ ÷©,(Õ ü©,�+�+»�øÕ —ª.,@Õ šª,׬(Bÿ�+�+ ‘+�(Õ £ª,èÕ ®«,¥Ç“+”+µ¶”+PÕ Ú«,(Õ ß«,’+’+»�øÕ ú«0,@Õ ý«,׬(Bÿ’+’+ ”+�(Õ †¬,HÕ Õ±,¥»�–+ðÕ µ²,øÕ í±;,¨ÍYHÕ ¼²,øA øA»�Bÿ•+Õ Æ²,•+ –+ Õ Ç²,øÕ º³,Ó‰xÕ  ³,¸Õ š³,¥»�øÕ æ³ ,¥»�™+¥g™+øÕ •´@,Õ ˜´,ùAúAûA ùA»� úA€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ûA­àBÿ˜+Õ œ´,˜+ ™+ Õ �´,œÕ £´,PÕ Â·,¥½Ž›+ØÕ Û·,Õ Þ·,Ù½ŽBÿš+š+ ›+¶Õ â·,¸Õ Þº,¥½Ž�+ž+ÅQÆQž+HÕ „», Õ ‰»,œ+œ+ÇøÕ ¤»#, Õ §»,€B €B½ŽŠöBÿœ+Õ ¬»,œ+ ž+ Õ ±»,øÕ Ç¿2,¥… + +ö�IÕ Ì¿,‚’I@Õ Ï¿,Þ˜nˆÕ Ú¿,��¡+$&èÕ ˆÀ,Õ ‹À,Ù‰Œ��BÿŸ+Ÿ+ ¡+‰ŒÛ˯. øÕ  Á?,¥…£+£+ö�IÕ ¥Á,‚’I@Õ ¨Á,Þ˜nˆÕ ³Á,��¤+¥+ÅQÆQ¥+35HÕ îÁ, Õ óÁ,¢+¢+†â(øÕ ™Â., Õ œÂ,…B …B��Áá(Bÿ¢+Õ ¡Â,¢+ ¥+‰Œ Õ ¦Â,Ø øÕ á®<,•ÉYÕ ¦¯,�øÕ ²¯C,éÉYPÕ þ¯,Û÷OÕ ‘°,�øÕ �°B,ÒÊYPÕ è°,ŸËYä dÄÒ,»�ÓÇi¤O’'ǧ+¨+Є»�BÿØ 8ÙЄ»�Bÿ¦+¦+Œ¬(xÕ º±,Ù¦+¦+Єw& ê »�ª+†ª+w& w& ñA ñA»�»�Bÿ©+Ù „±,©+ ª+w& õ& ë »�¬+ g¬+õ& õ& òAóAôA òA»� óA€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ôA­àBÿ«+Ú ‹±,«+ ¬+õ& œõ& ( ì »�®+ή+( ( ( ( õA õA»�Bÿ­+Û ’±,­+ ®+( ¸( í »�¸( í »�±+ù±±+¸( ¸( öA÷A öA»� ÷A»�Bÿ°+Ü –±,°+ ±+¸( î ¸( , æ \ÒÒ,½ŽfL,ƒ Ù³+´+Î…½ŽBÿ, 9ÙÎ…½ŽBÿ²+²+ ³+pÕ ¨·,Ù²+²+Î…S) 𠽎¶+†¶+S) S) üA üA½Ž½ŽBÿµ+à ù¶,µ+ ¶+S) Ñ) ñ ½Ž¸+ g¸+Ñ) Ñ) ýAþAÿA ýA½Ž þA€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ÿA­àBÿ·+á €·,·+ ¸+Ñ) œÑ) øÕ è¾U,è |ßÒ,…º+º+ö�IÕ „¿,��NüŸ[-ð¢»+¼+#%(Õ •¿,Õ •¿,Ù¹+¹+‰ŒPÕ ¨¿,Õ ¨¿,Ù¹+¹+½ŽO+ õ …¾+¾+ö�I˜õ§nç „¿,��¿+†¿+´¶O+ O+ �B �B����Bÿ½+ç Ѿ,½+ ¿+‰ŒO+ , ö …Á+Á+ö�IA§©nè „¿,��Â+ gÂ+^a, , ‚BƒB„B ‚B�� ƒB€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡„B­àBÿÀ+è Ø¾,À+ Â+‰Œ, œ, ŒÕ!üÏIF The configuration used to determine a DFA's start state for a search.Á™�ü�OL A DFA has a single starting state in the typical textbook description. ThatÁüíOL is, it corresponds to the set of all starting states for the NFA that builtÁü½LI it, along with their epsilon closures. In this crate, however, DFAs haveÁüŠ41 many possible start states due to a few factors:Á¿�üÃMJ * DFAs support the ability to run either anchored or unanchored searches.Áü‘MJ Each type of search needs its own start state. For example, an unanchoredÁüßGD search requires starting at a state corresponding to a regex with aÁü§;8 `(?s-u:.)*?` prefix, which will match through anything.ÁüãJG * DFAs also optionally support starting an anchored search for any oneÁü®EB specific pattern. Each such pattern requires its own start state.ÁüôLI * If a look-behind assertion like `^` or `\b` is used in the regex, thenÁüÁNK the DFA will need to inspect a single byte immediately before the start ofÁü� 1. the search to choose the correct start state.Á �üÆ OL Indeed, this configuration precisely encapsulates all of the above factors.Áü– IF The [`Config::anchored`] method sets which kind of anchored search toÁüà JG perform while the [`Config::look_behind`] method provides a way to setÁü« DA the byte that occurs immediately before the start of the search.Áð �üô NK Generally speaking, this type is only useful when you want to run searchesÁüà JG without using an [`Input`]. In particular, an `Input` wants a haystackÁüŽ GD slice, but callers may not have a contiguous sequence of bytes as aÁüÖ KH haystack in all cases. This type provides a lower level of control suchÁü¢MJ that callers can provide their own anchored configuration and look-behindÁ¤ð byte explicitly.Á…�l‰•£/—�ü›KH This shows basic usage that permits running a search with a DFA withoutÁüç" using the `Input` abstraction.ÁŠ�<Žä¤/Ì–ô¤/ü°  dfa::{Automaton, dense},Á¤Ñ util::start,ÁŒæ Anchored,Á4øÝ¥/ÿ�üƒ0- let dfa = dense::DFA::new(r"(?-u)\b\w+\b")?;Áä´ let haystack = "quartz";ÁÑ�üÕ>; let config = start::Config::new().anchored(Anchored::Yes);Áü”.+ let mut state = dfa.start_state(&config)?;ÁüÃ*' for &b in haystack.as_bytes().iter() {Áüî)& state = dfa.next_state(state, b);Á,˜œü3üž&# state = dfa.next_eoi_state(state);ÁüÅ'$ assert!(dfa.is_match_state(state));Áí�üñ.Ǭ/< ä¤/¨�ü¬JG This example shows how to correctly run a search that doesn't begin atÁü÷KH the start of a haystack. Notice how we set the look-behind byte, and asÁüÃ0- a result, the `\b` assertion does not match.Áô�<øä¤/Ì€ô¤/üš ÿðn¤»¨ñnŒÐÅñn4âÝ¥/é�üí0ùñnäž²òn»�ü¿%" let config = start::Config::new()Áüå  .anchored(Anchored::Yes)Áü†! .look_behind(Some(b'q'));Áü¨.¬ónü×2/ for &b in haystack.as_bytes().iter().skip(1) {ÁüŠ)˜ôn,´œü3üº&Øôn„á // No match!Áüò(% assert!(!dfa.is_match_state(state));Á›�üŸ.Ǭ/<Îä¤/Ö�üÚKH If we had instead not set a look-behind byte, then the DFA would assumeÁü¦OL that it was starting at the beginning of the haystack, and thus `\b` shouldÁüöFC match. This in turn would result in erroneously reporting a match:Á½�<Áä¤/ÌÉô¤/üã ÿðn¤„¨ñnŒ™Åñn4«Ý¥/²�ü¶0ùñnäç²òn„�üˆ-* // Whoops, forgot the look-behind byte...Áü¶>äònüõ.¬ónü¤2ïùnü×)˜ôn,� œü3ü‡ &Øônü® +( // And now we get a match unexpectedly.ÁüÚ 'ˆõn‚!�ü†!.Ǭ/<µ!ä¤/¦4à!ö�¨ñaE )øçÄ+Å+¼í!\í!£Ã+Ã+»Ô ”Š"DŠ"£Ã+Ã+Ø¥®4 ÷ ö�Ç+†Ç+®4 ®4 †B †Bö�ö�BÿÆ+é Æ!Æ+ Ç+®4 @5 ø ö�É+ gÉ+@5 @5 ‡BˆB‰B ‡Bö� ˆB€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡‰B­àBÿÈ+ê Í!È+ É+@5 œ@5 ô§<§d¹<Å�щ ú'sÑË+ŒÌ<Ì<£Ê+Ê+�ï(Ù<97 ù Å�Î+†Î+97 97 �B �BÅ�Å�BÿÍ+ë Ÿ<Í+ Î+97 ¬Îf¬,Þf†‘6égIq5þÐ+Ñ+Ó+Ô+Ö+×+Ù+Ú+Ü+Ý+ß+à+Ò+Ñ+Õ+Ô+Ø+×+Û+Ú+Þ+Ý+á+à+\·g¬Ï+Ï+†‘Ï+Ï+†‘ ÅgD»h¬Ï+Ï+†‘Ï+Ï+†‘ Æh$Ài¬Ï+Ï+†‘Ï+Ï+†‘ Çi4Ðj¬Ï+Ï+†‘Ï+Ï+†‘ Ùj4âk¬Ï+Ï+†‘Ï+Ï+†‘ ëk¤ûo¬Ï+Ï+†‘Ï+Ï+†‘ ’pW9 W9 W9 þ †‘W9 þ †‘ä+†ä+W9 W9 šB šB†‘†‘Bÿã+ô ªfã+ ä+W9 õ ±fÿ †‘³9 € †‘ç+ gç+³9 ³9 ›BœB�B ›B†‘ œB€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡�B­àBÿæ+ö ·fæ+ ç+³9 œ³9 a; � †‘é+Îé+a; a; a; a; žB žB†‘Bÿè+÷ ¾fè+ é+a; š; ‚ †‘š; ‚ †‘ì+ù±ì+š; š; ŸB B ŸB†‘  B†‘Bÿë+ø Âfë+ ì+š; î š; ŒÒ"-üáN-K A common set of configuration options that apply to the syntax of a regex.Á°-�ü´L-I This represents a group of configuration options that specifically applyÁü�I-F to how the concrete syntax of a regular expression is interpreted. InÁüË3-0 particular, they are generally forwarded to theÁüÿ\-Y [`ParserBuilder`](https://docs.rs/regex-syntax/*/regex_syntax/struct.ParserBuilder.html)ÁTÜ- in theÁüç2-/ [`regex-syntax`](https://docs.rs/regex-syntax)Áüš B-? crate when building a regex from its concrete syntax directly.ÁÝ -�üá O-L These options are defined as a group since they apply to every regex engineÁü±!N-K in this crate. Instead of re-defining them on every engine's builder, theyÁü€"3-0 are instead provided here as one cohesive unit.Á®4Ý"-Ý’s±m«ŠK‚î+ï+ð+ñ+ò+ó+ô+õ+ö+÷+ø+´ê"-„ê"-Æí+í+„†#-T†#-Æí+í+Ôœ#-¤œ#-Æí+í+T¼#-$¼#-Æí+í+œÌ#-|Ì#-Æí+í+„å#-Tå#-Æí+í+¼û#-Œû#-Æí+í+l˜$-<˜$-Æí+í+T«$-$«$-Æí+í+|»$-T»$-Æí+í+\Ð$-,Ð$-Æí+í+ E  E  E ƒ Ý’ E ƒ Ý’û+†û+ E  E ©B ©BÝ’Ý’Bÿú+ú ½"-ú+ û+ E û Ä"-„ Ý’yE … Ý’þ+ gþ+yE yE ªB«B¬B ªBÝ’ «B€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡¬B­àBÿý+ü Ê"-ý+ þ+yE œyE üÑ ü¶>; A hack to align a smaller type `B` with a bigger type `T`.Áõ�üùDA The usual use of this is with `B = [u8]` and `T = u32`. That is,Áü¾FC it permits aligning a sequence of bytes on a 4-byte boundary. ThisÁü…FC is useful in contexts where one wants to embed a serialized [denseÁüÌMJ DFA](crate::dfa::dense::DFA) into a Rust a program while guaranteeing theÁüš# alignment required for the DFA.Á¾�üÂMJ See [`dense::DFA::from_bytes`](crate::dfa::dense::DFA::from_bytes) for anÁü�$! example of how to use this type.Á¯<Üþ€,��,�,€,ÿÆø”4çÒàV ïÁ”Pc>„†Ðªµ‚,„, ä/1”µüø85 A zero-sized field indicating the alignment we want.Á4¹ÿ+ÿ+ëš) Åd�üÍ>; A possibly non-sized field containing a sequence of bytes.Á,”ÿ+ÿ+ø”«L † þ†,�‡,†,‡,Ú¢oDÒàVCŸgø”ý ä½ìVý ïÁ”ˆ, gˆ,QT€ƒ«L «L ¾B¿BÀB ¾BÁ” ¿B€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ÀB­àBÿ…,ý É…, ˆ,ø”¥õ«L œ«L Ì ü¡DA An error that occurs when serializing an object from this crate.Áæ�üêKH Serialization, as used in this crate, universally refers to the processÁü¶HE of transforming a structure (like a DFA) into a custom binary formatÁüÿOL represented by `&[u8]`. To this end, serialization is generally infallible.ÁüÏNK However, it can fail when caller provided buffer sizes are too small. WhenÁüž30 that occurs, a serialization error is reported.ÁÒ�üÖGD A `SerializeError` provides no introspection capabilities. Its onlyÁüžHE supported operation is conversion to a human readable error message.Áç�üëJG This error type implements the `std::error::Error` trait only when theÁü¶DA `std` feature is enabled. Otherwise, this type is defined in allÁœû configurations.Á°t«‰•Ë^?uÄsŠ,”û%$û%ô‰,‰,‹ 2_N ‡ ‰•Œ, gŒ,_N _N ÁBÂBÃB ÁB‰• ÂB€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ÃB­àBÿ‹,þ ˜‹, Œ,_N œ_N € ü«)LI An error that occurs when deserializing an object defined in this crate.Áø)�üü)K¥§oüÈ*Hú§oü‘+KH represented by `&[u8]`. Deserialization, then, refers to the process ofÁüÝ+HE cheaply converting this binary format back to the object's in-memoryÁü¦,DA representation as defined in this crate. To the extent possible,Áüë,GD deserialization will report this error whenever this process fails.Á³-�ü·-IF A `DeserializeError` provides no introspection capabilities. Its onlyÁü�.H—«oÊ.�üÎ.Jõ«oü™/DɬoœÞ/–­o²„Ž0Ö•ç–«E¿;lÐŽ,�,�–Ö•Bÿ€ 7ô�–Ö•Bÿ�,�, Ž,¤Ÿ0ô�,�,�–ŽO ‰ Ö•‘, g‘,ŽO ŽO ÇBÈBÉB ÇBÖ• ÈB€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ÉB­àBÿ�,� û/�, ‘,ŽO œŽO ÌÈ0³¤Í0ô�–%�ûrÓ&,“,•,—,™,œ,Ÿ,¢,¤,¦,©,”,–,˜,š,›,�,ž, ,¡,£,¥,§,¨,  ª,«,<è0³ô’,’,�–Œò0ò0ô’,’,‹ 2t‹1³ô’,’,�–”œ1$œ1ô’,’,‹ 2d¶1³ô’,’,�–”Å1$Å1ô’,’,‹ 2|ß1³ô’,’,�–lñ1Dñ1ô’,’,T€2,€2ô’,’,t’2³ô’,’,�–l£2D£2ô’,’,T²2,²2ô’,’,ŒÄ2³ô’,’,�–„Ø2LØ2ô’,’,tê2<ê2ô’,’,l€3³ô’,’,�–´�3D�3ô’,’,‹ 2”®3³ô’,’,�–”Ã3$Ã3ô’,’,‹ 2LÝ3³ô’,’,�–œé3é3ô’,’,ú‰”þ3$þ3ô’,’,‹ 2<˜4³ô’,’,�–Œ¢4¢4ô’,’,»�”µ4$µ4ô’,’,‹ 2žP Š �–­, g­,žP žP ÊBËBÌB ÊB�– ËB€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ÌB­àBÿ¬,‚ À0¬, ­,žP œžP €–¡�®,�®,�®,®,¡®,МLÐ É,¥-½™‘ F8ôŒº°,±,“½)½™BÿÐ 8ó“½)½™Bÿ¯,¯, °,L«-ó¯,¯,“½)‡^ ž ½™³,†³,‡^ ‡^ öB öB½™½™Bÿ²,¯ å,², ³,‡^ _ Ÿ ½™µ,ε,_ _ _ _ ÷B ÷B½™Bÿ´,° ì,´, µ,_ �_   ½™·,üh·,�_ �_ øBùB øB½™ ùBù Bÿ¶,ÿ¸,¸,± ð,¶,��b�_ ¡�b�_ ·,ù �_ ƒ�_ �_ �_ z` ¡ ½™z` ¡ ½™»,ù±»,z` z` úBûB úB½™ ûB½™Bÿº,² ö,º, »,z` î z` ß` ¢ ½™½,±²½,ß` ß` üBýB üB½™ ýB½™»½ Bÿ¼,³ �-¼, ½,ß` î ß` ûa £ ½™¿,î¿,ûa ûa þBÿB þB½™ ÿB½™µ¼ Bÿ¾,´ �-¾, ¿,ûa î ûa   ÊŒ›@ÞšM}•©— ½—Á,Â,̹ÞšBÿ  8ó̹ÞšBÿÀ,À, Á,<­@óÀ,À,̹œb ¤ ÞšÄ,†Ä,œb œb �C �CÞšÞšBÿÃ,µ ú?Ã, Ä,œb c ¥ ÞšÆ, gÆ,c c �C‘C’C �CÞš ‘C€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡’C­àBÿÅ,¶ �@Å, Æ,c œc q Ìœ�F£›/V�,ò¨ ŸÈ,É,̹£›Bÿq 8ó̹£›BÿÇ,Ç, È,<¡FóÇ,Ç,̹Wd ¦ £›Ë,†Ë,Wd Wd •C •C£›£›BÿÊ,¸ óEÊ, Ë,Wd üþR!Í|�Sè›ß=%R^˜Í,Î,l¦S$¦SóÌ,Ì,̹Ô¹SŒ¹SóÌ,Ì,Ç@e § è›Ð,†Ð,@e @e  C  Cè›è›BÿÏ,¹ öRÏ, Ð,@e ¤¹&üäGD The parameters for a regex search including the haystack to search.Á¬�ü°NK It turns out that regex searches have a few parameters, and in most cases,ÁüÿKH those parameters have defaults that work in the vast majority of cases.ÁüËIF This `Input` type exists to make that common case seamless while alsoÁü•OL providing an avenue for changing the parameters of a search. In particular,ÁüåMJ this type enables doing so without a combinatorial explosion of differentÁü³>; methods and/or superfluous parameters in the common cases.Áò�üö85 An `Input` permits configuring the following things:Á¯�ü³MJ * Search only a substring of a haystack, while taking the broader contextÁü�63 into account for resolving look-around assertions.Áü¸EB * Indicating whether to search for all patterns in a regex, or toÁüþ.+ only search for one pattern in particular.Áü­ :7 * Whether to perform an anchored on unanchored search.Áüè 52 * Whether to report a match as early as possible.Áž �ü¢ KH All of these parameters, except for the haystack, have sensible defaultÁüî MJ values. This means that the minimal search configuration is simply a callÁü¼ HE to [`Input::new`] with your haystack. Setting any other parameter isÁl…  optional.Á“ �ü— GD Moreover, for any `H` that implements `AsRef<[u8]>`, there exists aÁüß JG `From for Input` implementation. This is useful because many of theÁüª IF search APIs in this crate accept an `Into`. This means you canÁüô JG provide string or byte strings to these routines directly, and they'llÁü¿85 automatically get converted into an `Input` for you.Áø�üüGD The lifetime parameter `'h` refers to the lifetime of the haystack.ÁÄ�”È # OrganizationÁÛ�üß;8 The API of `Input` is split into a few different parts:Á›�üŸFC * A builder-like API that transforms a `Input` by value. Examples:Áüæ,) [`Input::span`] and [`Input::anchored`].Áü“GD * A setter API that permits mutating parameters in place. Examples:ÁüÛ41 [`Input::set_span`] and [`Input::set_anchored`].Áü�HE * A getter API that permits retrieving any of the search parameters.ÁüÙ>; Examples: [`Input::get_span`] and [`Input::get_anchored`].Áü˜NK * A few convenience getter routines that don't conform to the above namingÁüçFC pattern due to how common they are. Examples: [`Input::haystack`],Áü®(% [`Input::start`] and [`Input::end`].Áü×HE * Miscellaneous predicates and other helper routines that are usefulÁü <9 in some contexts. Examples: [`Input::is_char_boundary`].ÁÝ�üáOL A `Input` exposes so much because it is meant to be used by both callers ofÁü±OL regex engines _and_ implementors of regex engines. A constraining factor isÁü�NK that regex engines should accept a `&Input` as its lowest level API, whichÁüÐKH means that implementors should only use the "getter" APIs of a `Input`.Áœ�ü )& # Valid bounds and search terminationÁÊ�üÎ@= An `Input` permits setting the bounds of a search via eitherÁü�IF [`Input::span`] or [`Input::range`]. The bounds set must be valid, orÁüÙ=: else a panic will occur. Bounds are valid if and only if:Á—�ü›C@ * The bounds represent a valid range into the input's haystack.ÁüßIF * **or** the end bound is a valid ending bound for the haystack *and*Áü©@= the start bound is exactly one greater than the start bound.Áê�üîMJ In the latter case, [`Input::is_done`] will return true and indicates anyÁü¼KH search receiving such an input should immediately return with no match.Áˆ�üŒKH Note that while `Input` is used for reverse searches in this crate, theÁüØIF `Input::is_done` predicate assumes a forward search. Because unsignedÁü¢NK offsets are used internally, there is no way to tell from only the offsetsÁüñ,) whether a reverse search is done or not.Áž�Ô¢ # Regex engine supportÁ½�üÁMJ Any regex engine accepting an `Input` must support at least the followingÁ\�  things:Á› �üŸ &# * Searching a `&[u8]` for matches.ÁüÆ GD * Searching a substring of `&[u8]` for a match, such that any matchÁüŽ!85 reported must appear entirely within that substring.ÁüÇ!B? * For a forwards search, a match should never be reported whenÁüŠ"NK [`Input::is_done`] returns true. (For reverse searches, termination shouldÁüÙ"# be handled outside of `Input`.)Áý"�ü�#JG Supporting other aspects of an `Input` are optional, but regex enginesÁüÌ#LI should handle aspects they don't support gracefully. How this is done isÁü™$MJ generally up to the regex engine. This crate generally treats unsupportedÁüç$LI anchored modes as an error to report for example, but for simplicity, inÁü´%KH the meta regex engine, trying to search with an invalid pattern ID justÁü€&'$ results in no match being reported.ÁÒ ¸Ò,Ò,¿�€I³–¨{˜²Ó,Ô,Õ,Ö,Ê&”Ô&DÔ&ÏÑ,Ñ,ÈÝ]Tì&$ì&ÏÑ,Ñ,Åž”ü&Dü&ÏÑ,Ñ,Ø¥t”'D”'ÏÑ,Ñ,„u ¨ ¸Ø,Ø,¿�Ù,†Ù,¡£„u „u íC íC¿�¿�Bÿ×,¿ ±&×, Ù,¸„u |¦ðü¾é:7 A representation of a span reported by a regex engine.Áùé�üýéEB A span corresponds to the starting and ending _byte offsets_ of aÁüÃêJG contiguous region of bytes. The starting offset is inclusive while theÁüŽëHE ending offset is exclusive. That is, a span is a half-open interval.Á×ë�üÛëKH A span is used to report the offsets of a match, but it is also used toÁü§ìJG convey which region of a haystack should be searched via routines likeÁ¤òì [`Input::span`].Á‡í�ü‹íKH This is basically equivalent to a `std::ops::Range`, except thisÁü×íNK type implements `Copy` which makes it more ergonomic to use in the contextÁü¦îNK of this crate. Like a range, this implements `Index` for `[u8]` and `str`,ÁüõîNK and `IndexMut` for `[u8]`. For convenience, this also impls `From`,ÁüÄï52 which means things like `Span::from(5..10)` work.ÁÔ$ Åžé*H]ÎûËÛ,Ü,„íðü¼ð,) The start offset of the span, inclusive.Á,ñðÚ,Ú,t²ñüƒñ*' The end offset of the span, exclusive.Á¶ñÚ,Ú,ìŽ ìŽ ìŽ « ÅžìŽ « Åžß,†ß,ìŽ ìŽ €D €DŞŞBÿÞ,Ä ƒðÞ, ß,ìŽ Å Šð¬ Åžf� ­ Åžâ,Îâ,f� f� f� f� �D �DÅžBÿá,Æ �ðá, â,f� Ý� ® Åžä,ühä,Ý� Ý� ‚DƒD ‚DÅž ƒDù Bÿã,ÿå,å,Ç ”ðã,��bÝ� ¡�bÝ� ä,ù Ý� ƒÝ� Ý� Ý� g‘ ¯ Åžg‘ ¯ Åžè,ù±è,g‘ g‘ „D…D „DÅž …DÅžBÿç,È šðç, è,g‘ î g‘ ¤è‰ü÷ƒ<9 A representation of "half" of a match reported by a DFA.Á´„�ü¸„OL This is called a "half" match because it only includes the end location (orÁüˆ…LI start location for a reverse search) of a match. This corresponds to theÁüÕ…LI information that a single DFA scan can report. Getting the other half ofÁü¢†96 the match requires a second scan with a reversed DFA.Á܆�üà†GD A half match also includes the pattern that matched. The pattern isÁü¨‡NK identified by an ID, which corresponds to its position (starting from `0`)Áü÷‡OL relative to other patterns used to construct the corresponding DFA. If onlyÁüLjOL a single pattern is provided to the DFA, then all matches are guaranteed toÁì—‰ have a pattern ID of `0`.ÁÖ7 ö (� IßEê,ë,”›Š<›ŠÏé,é,›†lÊ‹4Ê‹Ïé,é,� � � ± ö � ± ö î,†î,� � •D •Dö ö Bÿí,Ë ¾‰í, î,� Ì Å‰² ö ˆ� ³ ö ñ, gñ,ˆ� ˆ� –D—D˜D –Dö  —D€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡˜D­àBÿð,Í Ë‰ð, ñ,ˆ� œˆ� ;Ÿ ´ ö ó,Îó,;Ÿ ;Ÿ ;Ÿ ;Ÿ ™D ™Dö Bÿò,Î Ò‰ò, ó,;Ÿ ºŸ µ ö õ,ühõ,ºŸ ºŸ šD›D šDö  ›Dù Bÿô,ÿö,ö,Ï Ö‰ô,��bºŸ ¡�bºŸ õ,ù ºŸ ƒºŸ ºŸ ºŸ \¡ ¶ ö \¡ ¶ ö ù,ù±ù,\¡ \¡ œD�D œDö  �Dö Bÿø,Р܉ø, ù,\¡ î \¡ „‚›üá•;8 A representation of a match reported by a regex engine.Á�–�ü¡–KH A match has two essential pieces of information: the [`PatternID`] thatÁüí–96 matches, and the [`Span`] of the match in a haystack.Á§—�ü«—IF The pattern is identified by an ID, which corresponds to its positionÁüõ—HE (starting from `0`) relative to other patterns used to construct theÁü¾˜NK corresponding regex engine. If only a single pattern is provided, then allÁü�™74 matches are guaranteed to have a pattern ID of `0`.ÁÅ™�üÉ™KH Every match reported by a regex engine guarantees that its span has itsÁü•š96 start offset as less than or equal to its end offset.Á×J ‹¢%:U"¹Nû,ü,”±›<±›Ïú,ú,›†Tì›$ì›Ïú,ú,ÅžG¤ G¤ G¤ · ‹¢G¤ · ‹¢ÿ,†ÿ,G¤ G¤  D  D‹¢‹¢Bÿþ,Ñ Øšþ, ÿ,G¤ Ò ßš¸ ‹¢±¤ ¹ ‹¢‚- g‚-±¤ ±¤ ¡D¢D£D ¡D‹¢ ¢D€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡£D­àBÿ�-Ó åš�- ‚-±¤ œ±¤ i¦ º ‹¢„-΄-i¦ i¦ i¦ i¦ ¤D ¤D‹¢Bÿƒ-Ô ìšƒ- „-i¦ Þ¦ » ‹¢†-üh†-Þ¦ Þ¦ ¥D¦D ¥D‹¢ ¦Dù Bÿ…-ÿ‡-‡-Õ ðš…-��bÞ¦ ¡�bÞ¦ †-ù Þ¦ ƒÞ¦ Þ¦ Þ¦ ¤¨ ¼ ‹¢¤¨ ¼ ‹¢Š-ù±Š-¤¨ ¤¨ §D¨D §D‹¢ ¨D‹¢Bÿ‰-Ö öš‰- Š-¤¨ î ¤¨ ¬Ê¿Ôü· A set of `PatternID`s.Á—¸�ü›¸LI A set of pattern identifiers is useful for recording which patterns haveÁüè¸HE matched a particular haystack. A pattern set _only_ includes patternÁü±¹85 identifiers. It does not include offset information.Áê¹�l£/ü¹�ü€º$! This shows basic usage of a set.Á¥º�<©ºä¤/ü±º0- use regex_automata::{PatternID, PatternSet};Áâº�üæº" let pid1 = PatternID::must(5);Áü‰»" let pid2 = PatternID::must(8);Áô¬» // Create a new empty set.ÁüË»&# let mut set = PatternSet::new(10);ÁÔò» // Insert pattern IDs.Á¬�¼ set.insert(pid1);Á¬£¼ set.insert(pid2);Á¼¹¼ // Test membership.ÁüѼ  assert!(set.contains(pid1));Áüò¼  assert!(set.contains(pid2));Á¼“½ // Get all members.Á|«½¡´0œ»½ vec![5, 8],ÁüϽA> set.iter().map(|p| p.as_usize()).collect::>(),Á4‘¾½µ0¬˜¾ // Clear the set.Á„®¾ set.clear();Áü¿¾$! // Test that it is indeed empty.Áää¾ assert!(set.is_empty());Á<�¿ä¤/Ó«Œ�¿̉¿Ù] ¡£òò�Çœ *Œ-�-T À ÀÏ‹-‹-üäÈ ,äÈÏ‹-‹-—ã*ƒ± ¿ ¡£�-†�-ƒ± ƒ± °D °D¡£¡£BÿŽ-Û ¬¿Ž- �-ƒ± ² À ¡£‘- g‘-² ² ±D²D³D ±D¡£ ²D€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡³D­àBÿ�-Ü ³¿�- ‘-² œ² Ó³ Á ¡£“-Γ-Ó³ Ó³ Ó³ Ó³ ´D ´D¡£Bÿ’-Ý º¿’- “-Ó³ í´  ¡£í´  ¡£–-ù±–-í´ í´ µD¶D µD¡£ ¶D¡£Bÿ•-Þ ¾¿•- –-í´ î í´ ü…ö üÈóC@ An error that occurs when a `PatternID` failed to insert into aÁŒŒô `PatternSet`.Ážô�ü¢ôNK An insert fails when the given `PatternID` exceeds the configured capacityÁÄñô of the `PatternSet`.ÁŠõ�üŽõDA This error is created by the [`PatternSet::try_insert`] routine.ÁÓ«ŒÙõÌÓõÜp –¤ÍOöÀÝS"î˜-™-¤¬öL¬öÏ—-—-›†|ÆöDÆöÏ—-—-Áµ Å –¤›-†›-Áµ Áµ ÀD ÀD–¤–¤Bÿš-ä öõš- ›-Áµ W¶ Æ –¤�- g�-W¶ W¶ ÁDÂDÃD ÁD–¤ ÂD€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ÃD­àBÿœ-å ýõœ- �-W¶ œW¶ ì¿üüŸúA> An iterator over all pattern identifiers in a [`PatternSet`].Ááú�üåúOL The lifetime parameter `'a` refers to the lifetime of the pattern set beingÁ”µû iterated over.ÁÈû�üÌû@= This iterator is created by the [`PatternSet::iter`] method.ÁÓ«Œ“üÌ�üÞƒ ÄŸ-Ÿ-ú¤SöE°ç(6 -Ùüüãü6ãüÏž-ž-ƒŠƒŠÜ‹…Š�Ð<†ŠŠÐ< 0{?i—�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫĺ¸ È Ä¢-¢-ú¤£-†£-ßẸ º¸ ÇD ÇDú¤ú¤Bÿ¡-è °ü¡- £-ĺ¸ n¹ É Ä¥-¥-ú¤¦- g¦-nqn¹ n¹ ÈDÉDÊD ÈDú¤ ÉD€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ÊD­àBÿ¤-é ·ü¤- ¦-Än¹ œn¹ ŒÁ¨üð‡+( The type of anchored search to perform.Áœˆ�ü ˆOL This is *almost* a boolean option. That is, you can either do an unanchoredÁüðˆOL search for any pattern in a regex, or you can do an anchored search for anyÁ¼À‰ pattern in a regex.Á؉�ü܉NK A third option exists that, assuming the regex engine supports it, permitsÁü«Š85 you to do an anchored search for a specific pattern.ÁäŠ�üèŠHE Note that there is no way to run an unanchored search for a specificÁü±‹MJ pattern. If you need that, you'll need to build separate regexes for eachÁdÿ‹áé/ŒŒ�d�Œ•£1�Œ�ü¡ŒKH If a regex engine does not support the anchored mode selected, then theÁüíŒIF regex engine will return an error. While any non-trivial regex engineÁü·�LI should support at least one of the available anchored modes, there is noÁü„ŽLI singular mode that is guaranteed to be universally supported. Some regexÁüÑŽIF engines might only support unanchored searches (DFAs compiled withoutÁü›�GD anchored starting states) and some regex engines might only supportÁüã�.+ anchored searches (like the one-pass DFA).Á’��ü–�:7 The specific error returned is a [`MatchError`] with aÁüÑ�GD [`MatchErrorKind::UnsupportedAnchored`] kind. The kind includes theÁü™‘/, `Anchored` value given that is unsupported.ÁÉ‘�üÍ‘HE Note that regex engines should report "no match" if, for example, anÁü–’JG `Anchored::Pattern` is provided with an invalid pattern ID _but_ whereÁüá’OL anchored searches for a specific pattern are supported. This is smooths outÁü±“LI behavior such that it's possible to guarantee that an error never occursÁüþ“JG based on how the regex engine is configured. All regex engines in thisÁüÉ”OL crate report "no match" when searching for an invalid pattern ID, but whereÁü™•<9 searching for a valid pattern ID is otherwise supported.ÁÖ•�lÚ••£/è•�üì•GD This example shows how to use the various `Anchored` modes to run aÁü´–GD search. We use the [`PikeVM`](crate::nfa::thompson::pikevm::PikeVM)Áüü–KH because it supports all modes unconditionally. Some regex engines, likeÁüÈ—LI the [`onepass::DFA`](crate::dfa::onepass::DFA) cannot support unanchoredÁl•˜�ýl£˜�<§˜ä¤/ü¯˜=ÔÂ/Ìí˜ô¤/ü‡™&…‹Jü®™*ï´E4ٙݥ/à™�üä™ ݹM¤…š r"Mrs. \w+",Á¤šš r"Miss \w+",Áœ¯š r"Mr. \w+",ÁœÃš r"Ms. \w+",ÁDך•Ð1üàš&Ê›0ü‡›'$ let hay = "Hello Mr. Springsteen!";Á¯›�ü³›1. // The default is to do an unanchored search.Áüå›FC assert_eq!(Some(Match::must(2, 6..21)), re.find(&mut cache, hay));Áü¬œ>; // Explicitly ask for an unanchored search. Same as above.Áüëœ74 let input = Input::new(hay).anchored(Anchored::No);Áü£�F°Úpê��üî�GD // Now try an anchored search. Since the match doesn't start at theÁü¶ž41 // beginning of the haystack, no match is found!Áüëž85 let input = Input::new(hay).anchored(Anchored::Yes);Áü¤Ÿ1š¹LÖŸ�üÚŸJG // We can try an anchored search again, but move the location of whereÁü¥ GD // we start the search. Note that the offsets reported are still inÁüí IF // terms of the overall haystack and not relative to where we startedÁ”·¡ // the search.ÁüÊ¡C@ let input = Input::new(hay).anchored(Anchored::Yes).range(6..);ÁüŽ¢HE assert_eq!(Some(Match::must(2, 6..21)), re.find(&mut cache, input));Á×¢�üÛ¢IF // Now try an anchored search for a specific pattern. We specificallyÁü¥£KH // choose a pattern that we know doesn't match to prove that the searchÁüñ£-* // only looks for the pattern we provide.ÁüŸ¤ let input = Input::new(hay)Áü¿¤85 .anchored(Anchored::Pattern(PatternID::must(1)))Á¤ø¤ .range(6..);Áü�¥1š¹L¿¥�üÃ¥LI // But if we switch it to the pattern that we know matches, then we findÁŒ�¦ // the match.Áü¢¦¿ãpü¦85 .anchored(Anchored::Pattern(PatternID::must(2)))Á¤û¦«äpü�§HýàpÙ§�üݧ.Ǭ/<Œ¨ä¤/ß– Ø¥vW ŸâõMK¨-©-ª-«-¬-­-©-«-­-®-›†Ø¥Bÿ¤ªüÙ¨IF Run an unanchored search. This means a match may occur anywhere at orÁü§©+( after the start position of the search.Áש�üß©@= This search can return a match for any pattern in the regex.Áßê§-§-Ø¥þ§-§-Ø¥é«ü¬ªEB Run an anchored search. This means that a match must begin at theÁüöª! start position of the search.Áœ«�ü¤«@ßèpß §-§-Ø¥´¶§-§-Ø¥É üò«JG Run an anchored search for a specific pattern. This means that a matchÁüÁ¬IF must be for the given pattern and must begin at the start position ofÁ|�­ the search.ÁßÉ §-§- ­-É É ›†Ø¥Bÿ§-§-šîpL«­§-§-›† º  º  º Ê Ø¥ º Ê Ø¥±-†±- º  º ÎD ÎDإإBÿ°-ê �¨°- ±- º ë ¤¨Ë Ø¥» Ì Ø¥´- g´-» » ÏDÐDÑD ÏDØ¥ ÐD€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ÑD­àBÿ³-ì ª¨³- ´-» œ» ½ Í Ø¥¶-ζ-½ ½ ½ ½ ÒD ÒDØ¥Bÿµ-í ±¨µ- ¶-½ V½ ΠإV½ Πإ¹-ù±¹-V½ V½ ÓDÔD ÓDØ¥ ÔDØ¥Bÿ¸-î µ¨¸- ¹-V½ î V½ ”¹ãü×·;8 The kind of match semantics to use for a regex pattern.Á“¸�ü—¸JG The default match kind is `LeftmostFirst`, and this corresponds to theÁüâ¸DA match semantics used by most backtracking engines, such as Perl.Á§¹�ü«¹:7 # Leftmost first or "preference order" match semanticsÁæ¹�üê¹KH Leftmost-first semantics determine which match to report when there areÁü¶ºNK multiple paths through a regex that match at the same position. The tie isÁü…»OL essentially broken by how a backtracker would behave. For example, considerÁüÕ»NK running the regex `foofoofoo|foofoo|foo` on the haystack `foofoo`. In thisÁü¤¼OL case, both the `foofoo` and `foo` branches match at position `0`. So shouldÁüô¼'$ the end of the match be `3` or `6`?Áœ½�ü ½KH A backtracker will conceptually work by trying `foofoofoo` and failing.Áüì½GD Then it will try `foofoo`, find the match and stop there. Thus, theÁü´¾LI leftmost-first match position is `6`. This is called "leftmost-first" orÁü�¿JG "preference order" because the order of the branches as written in theÁüÌ¿:7 regex pattern is what determines how to break the tie.Á‡À�ü‹ÀKH (Note that leftmost-longest match semantics, which break ties by alwaysÁü×ÀKH taking the longest matching string, are not currently supported by thisÁü£ÁJG crate. These match semantics tend to be found in POSIX regex engines.)ÁîÁ�üòÁIF This example shows how leftmost-first semantics work, and how it evenÁü¼Â%" applies to multi-pattern regexes:ÁâÂ�<æÂä¤/ÌîÂô¤/üˆÃ&…‹Jt¯Ã·„04¾ÃÝ¥/ÅÃ�üÉà ݹM¬êà r"foofoofoo",Á”€Ä r"foofoo",Á|“Ä r"foo",ÁD£Ä•Ð1ü¬Ä&Ê›0üÓÄGD let got: Vec = re.find_iter(&mut cache, "foofoo").collect();Áü›Å.+ let expected = vec![Match::must(1, 0..6)];ÁôÊÅ—‘3éÅ�üíÅ.Ǭ/<œÆä¤/¤Æ�Œ¨Æ # All matchesÁºÆ�ü¾ÆLI The `All` match semantics report any and all matches, and generally willÁü‹ÇNK attempt to match as much as possible. It doesn't respect any sort of matchÁüÚÇJG priority at all, so things like non-greedy matching don't work in thisÁL¥È mode.Á¯È�ü³ÈMJ The fact that non-greedy matching doesn't work generally makes most formsÁü�ÉMJ of unanchored non-overlapping searches have unintuitive behavior. Namely,ÁüÏÉJG unanchored searches behave as if there is a `(?s-u:.)*?` prefix at theÁüšÊMJ beginning of the pattern, which is specifically non-greedy. Since it willÁüèÊLI be treated as greedy in `All` match semantics, this generally means thatÁüµËNK it will first attempt to consume all of the haystack and is likely to windÁÄ„Ì up skipping matches.Á�Ì�ü¡ÌGD Generally speaking, `All` should only be used in two circumstances:ÁéÌ�üíÌOL * When running an anchored search and there is a desire to match as much asÁü½ÍLI possible. For example, when building a reverse regex matcher to find theÁüŠÎLI start of a match after finding the end. In this case, the reverse searchÁü×ÎDA is anchored to the end of the match found by the forward search.ÁüœÏIF * When running overlapping searches. Since `All` encodes all possibleÁüæÏNK matches, this is generally what you want for an overlapping search. If youÁüµÐOL try to use leftmost-first in an overlapping search, it is likely to produceÁü…ÑMJ counter-intuitive results since leftmost-first specifically excludes someÁüÓÑ52 matches from its underlying finite state machine.Á‰Ò�ü�ÒOL This example demonstrates the counter-intuitive behavior of `All` semanticsÁüÝÒ52 when using a standard leftmost unanchored search:Á“Ó�<—Óä¤/ÌŸÓô¤/ü¹Ó&…‹JÌàÓ­™?4úÓÝ¥/�Ô�ô…ÔˆöGü¤Ô?¡ÉM¼äÔ .build("foo")?;ÁüüÔ)& let hay = "first foo second foo wat";Áü¦Õ&Ê›0üÍÕB? let got: Vec = re.find_iter(&mut cache, hay).collect();Áü�Ö74 // Notice that it completely skips the first 'foo'!ÁüÈÖ0- let expected = vec![Match::must(0, 17..20)];ÁôùÖ—‘3˜×�üœ×.Ǭ/<Ë×ä¤/Ó×�ü××OL This second example shows how `All` semantics are useful for an overlappingÁü§ØIF search. Note that we use lower level lazy DFA APIs here since the NFAÁüñØMJ engines only currently support a very limited form of overlapping search.Á¿Ù�<ÃÙä¤/ÌËÙô¤/üåÙ-Ä�4ü“Ú$åò34¸ÚÝ¥/¿Ú�ÜÃÚø¥/üßÚKH // If we didn't set 'All' semantics here, then the regex would onlyÁü«ÛKH // match 'foo' at offset 3 and nothing else. Why? Because the stateÁü÷ÛNK // machine implements preference order and knows that the 'foofoo' andÁüÆÜMJ // 'foofoofoo' branches can never match since 'foo' will always matchÁü”Ý-* // when they match and take priority.ÁüÂÝ<Ýš0üÿÝ)& .build(r"foo|foofoo|foofoofoo")?;Áü©Þ&Ê›0üÐÞ.¸Ÿ4üÿÞ(% let input = Input::new("foofoofoo");Ą́ß let mut got = vec![];ÁTÂß›õ3üÍßGD re.try_search_overlapping_fwd(&mut cache, &input, &mut state)?;Áü•à)& let m = match state.get_match() {ÁÔ¿àñõ3ÌÚà Some(m) => m,ÁTôà };Á¤ÿà got.push(m);Á,”áœü3Äšáçü3ô³á‰ý3ôÒá HalfMatch::must(0, 6),Áôñá HalfMatch::must(0, 9),Á4�âÙý3ô—â—‘3¶â�üºâ.Ǭ/<éâä¤/:Œñâá© ù¦̘»if³K»-¼-Ê-Ë-¼-Ë-÷ãüÒã  Report all possible matches.Áá3º-º-ù¦GIº-º-ù¦âÁ âÁ âÁ Ï ù¦âÁ Ï ù¦¿-†¿-âÁ âÁ ×D ×Dù¦ù¦Bÿ¾-ð Œã¾- ¿-âÁ ñ “ãÐ ù¦j Ñ ù¦Â-÷Â-j j ù¦BÿÁ-Á- Â-‘ Ò ù¦Ä- gÄ-‘ ‘ ØDÙDÚD ØDù¦ ÙD€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ÚD­àBÿÃ-ó ¢ãÃ- Ä-‘ œ‘ ³Ã Ó ù¦Æ-ÎÆ-³Ã ³Ã ³Ã ³Ã ÛD ÛDù¦BÿÅ-ô ©ãÅ- Æ-³Ã íà Ô ù¦íà Ô ù¦É-ù±É-íà íà ÜDÝD ÜDù¦ ÝDù¦BÿÈ-õ ­ãÈ- É-íà î íà @ ü€äKH Report only the leftmost matches. When multiple leftmost matches exist,ÁüÐäHE report the match corresponding to the part of the regex that appearsÁÄ�å first in the syntax.Á><¼åTºåÕ @ º-º-ù¦@ @ º-º-ù¦ ü¶îHE An error indicating that a search stopped before reporting whether aÁÄÿî match exists or not.Á˜ï�üœïLI To be very clear, this error type implies that one cannot assume that noÁüéïJG matches occur, since the search stopped before completing. That is, ifÁü´ðJG you're looking for information about where a search determined that noÁüÿðOL match can occur, then this error type does *not* give you that. (Indeed, atÁüÏñMJ the time of writing, if you need such a thing, you have to write your ownÁ¤�ò search routine.)Á²ò�ü¶òHE Normally, when one searches for something, the response is either anÁüÿòKH affirmative "it was found at this location" or a negative "not found atÁüËóNK all." However, in some cases, a regex engine can be configured to stop itsÁüšôNK search before concluding whether a match exists or not. When this happens,ÁüéôOL it may be important for the caller to know why the regex engine gave up andÁü¹õOL where in the input it gave up at. This error type exposes the 'why' and theÁd‰ö 'where.'Á–ö�üšöMJ For example, the DFAs provided by this library generally cannot correctlyÁüèöIF implement Unicode word boundaries. Instead, they provide an option toÁü²÷IF eagerly support them on ASCII text (since Unicode word boundaries areÁüü÷LI equivalent to ASCII word boundaries when searching ASCII text), but willÁüÉøHE "give up" if a non-ASCII byte is seen. In such cases, one is usuallyÁü’ùHE required to either report the failure to the caller (unergonomic) orÁüÛùNK otherwise fall back to some other regex engine (ergonomic, but potentiallyÁdªú costly).Á·ú�ü»úOL More generally, some regex engines offer the ability for callers to specifyÁü‹ûMJ certain bytes that will trigger the regex engine to automatically quit ifÁ”Ùû they are seen.Áìû�üðûJG Still yet, there may be other reasons for a failed match. For example,Áü»üLI the hybrid DFA provided by this crate can be configured to give up if itÁüˆýOL believes that it is not efficient. This in turn permits callers to choose aÁÜØýÎã?ôý�üøýNK (Note that DFAs are configured by default to never quit or give up in thisÁüÇþKH fashion. For example, by default, a DFA will fail to build if the regexÁü“ÿNK pattern contains a Unicode word boundary. One needs to opt into the "quit"Áôâÿ behavior via options, likeÁü�€gd [`hybrid::dfa::Config::unicode_word_boundary`](crate::hybrid::dfa::Config::unicode_word_boundary).)Áé€�üí€*' There are a couple other ways a searchÁü˜�)& can fail. For example, when using theÁüÂ�O³¹_ü’‚KH with a haystack that is too long, or trying to run an unanchored searchÁüÞ‚/, with a [one-pass DFA](crate::dfa::onepass).Áâ¼ Û†7bl’âËÿÀÍ-Î-¼Š+Û†Bÿ ¼ ϼŠ+Û†BÿÌ-Ì- Í-üêƒ!Ó«ŒÖƒÌЃÏÌ-Ì-¼Š+)Å Ö Û†Ð-†Ð-)Å )Å ßD ßDÛ†Û†BÿÏ-ö —ƒÏ- Ð-)Å §Å × Û†Ò- gÒ-§Å §Å àDáDâD àDÛ† áD€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡âD­àBÿÑ-÷ žƒÑ- Ò-§Å œ§Å ËÆ Ø Û†Ô-ÎÔ-ËÆ ËÆ ËÆ ËÆ ãD ãDÛ†BÿÓ-ø ¥ƒÓ- Ô-ËÆ {Ç Ù Û†{Ç Ù Û†×-ù±×-{Ç {Ç äDåD äDÛ† åDÛ†BÿÖ-ù ©ƒÖ- ×-{Ç î {Ç ¼¿—üå•,) The underlying kind of a [`MatchError`].Á’–�ü––NK This is a **non-exhaustive** enum. That means new variants may be added inÁüå–  a semver-compatible release.Á:Œ†—ãÏ Ȩ¾&Aº2h–�Ù-Ü-Þ-à-Ú-Û-Ý-ß-á-$¸˜üÝ—C@ The search saw a "quit" byte at which it was instructed to stopÁt¥˜ searching.ÁãnØ-Ø-ȨD•™üǘEB The "quit" byte that was observed that caused the search to stop.Á$•™Ø-Ø-lã™ü§™30 The offset at which the quit byte was observed.Á4ã™Ø-Ø-4çœüý™GD The search, based on heuristics, determined that it would be betterÁüÉšEB to stop, typically to provide the caller an opportunity to use anÁì“› alternative regex engine.Áµ›�ü½›EB Currently, the only way for this to occur is via the lazy DFA andÁü‡œIF only when it is configured to do so (it will not return this error byÁlÕœ default).Áã™Ø-Ø-Ȩl†žüøœC@ The offset at which the search stopped. This corresponds to theÁüÄ�96 position immediately following the last byte scanned.Á4†žØ-Ø-|—¡ü žGD This error occurs if the haystack given to the regex engine was tooÁüìžEB long to be searched. This occurs, for example, with regex enginesÁü¶ŸIF like the bounded backtracker that have a configurable fixed amount ofÁü„ HE capacity that is tied to the length of the haystack. Anything beyondÁüÑ A> that configured limit will result in an error at search time.Áã�Ø-Ø-ȨTñ¡ü±¡74 The length of the haystack that exceeded the limit.Áñ¡Ø-Ø-œâ©üˆ¢EB An error indicating that a particular type of anchored search wasÁüÒ¢=: requested, but that the regex engine does not support it.Á”£�üœ£FC When this error occurs with [`Anchored::Pattern`], then one commonÁüç£GD cause is that the underlying regex engine was built without supportÁü³¤HE for anchored starting states for each pattern. For DFA engines, thisÁü€¥  typically means enabling theÁü¥¥if [`hybrid::dfa::Config::starts_for_each_pattern`](crate::hybrid::dfa::Config::starts_for_each_pattern)Á4“¦ orÁüž¦gd [`dfa::dense::Config::starts_for_each_pattern`](crate::dfa::dense::Config::starts_for_each_pattern)ÁüЧIF configuration option, depending on which regex engine is being built.Áا�üà§HE Note that this error should not be returned by a regex engine simplyÁü­¨KH because the pattern ID is invalid (i.e., equal to or exceeds the numberÁüý¨KH of patterns in the regex). In that case, the regex engine should reportÁ„Í© a non-match.Áã>Ø-Ø-Ȩt¹ªü€ª0´´a$¹ªØ-Ø-Ø¥ßÇ Ú È¨ã-†ã-ßÇ ßÇ çD çDȨȨBÿâ-ú ¡—â- ã-ßÇ ¦Ê Û È¨å- gå-¦Ê ¦Ê èDéDêD èDȨ éD€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡êD­àBÿä-û ¨—ä- å-¦Ê œ¦Ê �Ï Ü È¨ç-Îç-�Ï �Ï �Ï �Ï ëD ëDȨBÿæ-ü ¯—æ- ç-�Ï ÍÏ Ý È¨ÍÏ Ý È¨ê-ù±ê-ÍÏ ÍÏ ìDíD ìDȨ íDȨBÿé-ý ³—é- ê-ÍÏ î ÍÏ äó 0êT… 0�ª=Õ›kT½ì-í-Ô– 0$¡ 0ë-ë-ݪÔ¶ 0$Á 0ë-ë-ݪ˜× ä �ªï-†ï-˜× ˜× ñD ñD�ª�ªBÿî-Š ä 0î- ï-˜× NØ å �ªñ- gñ-NØ NØ òDóDôD òD�ª óD€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ôD­àBÿð-‹ ë 0ð- ñ-NØ œNØ Ü¦0ëL¸0ݪégíõ¶ Ecó-ô-õ-Tþ0þ0Éò-ò-œ×0,×0Éò-ò-•ö¤»04»0Éò-ò-•ö{Ú æ ݪ÷-†÷-{Ú {Ú ùD ùDݪݪBÿö-Œ ž0ö- ÷-{Ú k ðlÈ<0Äú-ú-¶«ë …ÒÍ_ù-û-�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫÄǶ«Bÿk –É¢ìq¶«Bÿø-ø- ù-ÄÖ<0ôÚ<0Éø-ø-¢ìqKÛ ë Äý-ý-¶«þ- gþ-MOKÛ KÛ †E‡EˆE †E¶« ‡E€g€gŠ‚gê ûcƒg¾‚ûcØ«q¢1È¡ˆE­àBÿü-— ®<0ü- þ-ÄKÛ œKÛ ­­Úé¬Úñ¬Ú ®Ú3æ Úç Úè Ú›é Úñé ÚY¤Ú•£Ú�£Ú€³ÚÃë Ú ©sÚí Ú ‘vÚ—ð ÚGñ Ú5ó Ú?õ Ú«¡Ú³¡Ú-ºÚ{ö ÚD÷ Ú ´‘Ú~ø Úøø Ú`ù Ú'ú Ú Ú>ý Ú Ú¥ Ú< Úy Ú ¥ëÚ Ú° Ú¬ Ú ! ÚN( Ú. Ú<0 Úñ1 Ú¶> Ú €­Ú7H Ú êÄÚ³N Ú ™ÜÚ ÅÜÚê_ Ú ë†Ú †‡Ú�‡Ú  ‡Ú¸l Ú æ¢Ú �£Úˆ£Ú œ£Ú½m Ú íÚ Þ­Úå­Ú ù­ÚÜn Ú ÞºÚ ùºÚ€»Ú ”»Úüo Ú ÌòÚ çòÚîòÚ «óÚ ÜóÚÀp Úmq ÚÓq ÚEr Úþr Úbs ÚÈs Ú;t Ú›t Ú÷t Úyu Ú™v Ú ’°ÚL¢°ÚTw ÚL‡±Ú £±ÚTÚ\Ú‘Úx Ú°{ÚëzÚózÚc ÚAz Ú¯} Ú ²éÚó~ ÚW Ú² ÚõyÚRyÚ¾xÚÆxÚt� ÚÍ� Ú'‚ Úˆ‚ ÚWƒ Ú ž…ÚL®…ÚÉwÚ‡ Ú ¿¤ÚLϤÚ�vÚŠ Ú ±ºÚLÁºÚquÚå‹ ÚÜŒ Ú íØÚLýØÚktÚstÚËÚ~� ÚìpÚ&pÚ.pÚÀÚ7mÚqlÚylÚ4Ú|� ÚP‘ Ú ÏñÚéñÚº’ Ú“ Ús“ Úô“ ÚŽkÚ–kÚ!ÚÑ” Úê• Ú ¢'Ú�– Ú¨jÚ°jÚ³"Ú“— Úô— Ú™ Ú[™ Ú¶™ Ú0š Ú·\Úò[Úú[Ú*(Úö¹ ÚG¼ Ú?Ê Ú Ð Ú ¿bÚøÓ Úˆ× ÚØ Ú†Ø ÚÙØ Ú.Ù ÚxÜ ÚOï Ú ůÚ à¯Úç¯Úˆ Ú •îÚ °îÚ·îÚÜ Ú Š–Ú ¥–Ú¬–Ú À–Ú  Ú †ÂÚ ¡ÂÚ¨ÂÚ ¼ÂÚE( Ú †ßÚ ¡ßÚ¨ßÚ ½ßÚ/4 Ú ‡ùÚ-G Ú ѦÚcM Ú áÂÚëV Ú ÕáÚ‡^ Ú ºòÚ ÖòÚËb Ú ”ÿÚ ¯ÿÚ¶ÿÚñd Ú ׋Ú ò‹Úù‹Ú³p Ú ”¨Ú8u Ú ‰±ÚñWÚ+WÚ3WÚßÚîv ÚCz Ú ÐøÚµ| Ú¶~ Úš Ú[‚ Ú`„ Úò„ Ú¡VÚÛUÚãUÚJ�Ú�… ÚhTÚpTÚã�Úµ‡ Ú¡ˆ Ú$‰ Ú&Š Ú‹ Ú¸‹ ÚsŒ ÚÚŒ ÚA� Ú Ž Ú’� Ú� Úr� Úö� Úƒ‘ Ú’ Ús’ ÚiSÚqSÚŒ’Ú³“ Ú:” Ú®” Ú • Ú‰• Úò• Ú\– ÚÞ– Ú ‹ŒÚ`— Ú ù�ÚÔ— ÚçQÚ!QÚ)QÚ…žÚ"™ Ú}™ Ú,LÚfKÚnKÚ½¦ÚM#ÚC$Ú¸$Ú9%ÚO&Ú´'ÚÕ)Úq*Ú+Ú{,Ú.Ú(2Ú Ôƒ Ú°2Ú �ˆ Ú ®ˆ Ú‚3Ú Ü“ Úé3ÚQ>Ú‹=Ú“=Ú²Úã5Ú ú Úß6Ú ÞÅ Úû:Ú¬;ÚÜ<Úl>Úa8Ú›7Ú£7ÚÌ»Ú7Ú�6Ú‰6ÚŽ@Ú Ó ÚÊ“ Ú Ï“ Ú¼@ÚÚ’ Ú ê’ Ú9?ÚØ>Ú Ô¬ Úß2Ú2Ú"2ÚgÊÚÓ/Ú/Ú/ÚtÎÚ~<Ú¼;Ú ÏÚéÚâ'Ú'Ú%'ÚÕÚ2:Úp9Ú ¬+ÚÆ+Út"Ú¯!Ú·!ÚÑØÚ&8Ú ø@Ú’AÚþÚ@ýÚHýÚ<ÚÚeüÚÖûÚÞûÚ ûÚûÚ‹úÚ“úÚ úÚúÚt6Ú)6ÚÛ5Ú‹5Ú;5Úë4Ú›4Úm3Ú 2Úª0Ú‰.ÚÜ,Úh,Ú¼ùÚ÷øÚÿøÚ‹ùÚsøÚß÷Úç÷Ú>,ÚV+Ú ÈpÚLØpÚæíÚîíÚ«ûÚC%Úù!ÚàÚÕÚ ßEÚÚ «VÚúÚ ÓhÚ6Ú ЈÚ ëˆÚòˆÚ€Ú î¡Úõ¡ÚÆÚôÚeÚâéÚêéÚqÚ«ÿ ÚVæÚ^æÚ8ÚïåÚÆý Úçú Ú ßËÚTú ÚÂù Ú–ø ÚÑ÷ Ú ÷ ÚZö Úhõ ÚØÝÚÝÚÝÚ½Ú ô Ú šïÚMó Ú ÿðÚì ÚBë Ú[ê ÚÙè Úˆæ Ú –5Ú ­5Ú´5Úiå Ú â 5Ú ù 5Ú€ 5Ú– 5ÚGâ Ú Ão5Ú Úo5Úáo5Úá Ú ¼r5Ú Ór5ÚÚr5Ú`Þ Ú ï›5Ú †œ5Ú�œ5Ú �œ5Ú-Ý Ú ¸ 5Ú Ï 5ÚÖ 5Úì 5Ú †¡5ÚõÛ Ú ¨¿5Ú ¿¿5ÚÆ¿5Ú Ö¿5ÚÐÚ Ú ‰Ü5Ú  Ü5Ú§Ü5ÚÚ Ú ÷Þ5Ú Žß5Ú•ß5ÚÙ Ú äá5Ú ûá5Ú‚â5Ú �â5Ú «â5Úk× Ú ±ë5Ú Èë5ÚÏë5Ú Ýë5Ú øë5ÚãÕ Ú šÿ5Ú ±ÿ5Ú¸ÿ5ÚJÙÚ…ØÚ�ØÚ�*Ú×ÚCÖÚKÖÚ.Ú&È Ú£Æ ÚŽÅ ÚÞà Úà Ú ± ÚË ÚÔÚ‡ÔÚà0ÚT Ú ­) ÚÇ) ÚLÓÚTÓÚ 3ÚÛÀ Ú æ0 Ú€1 Ú]ÒÚeÒÚ4ÚY¿ Ú �; Ú©; Úé¼ Ú �-Ú º-ÚÁ-Ú&» Ú ¨GÚ ÓGÚÚGÚ èGÚ ’HÚภÚ Ì7Ú Î7ÚÛ· Ú Š8Ú3· Ú¶ Ú °8Úû´ Ú ž8Úá³ ÚH³ Úî² Ú ô$8ÚF² Úì± Ú µ+8Úˆ± Ú È28Úİ Ú ú38Úð® ÚB® ÚD­ Úê«Úò«Ú85ÚĪÚ̪ÚÞ7Ú+¤ ÚZ– Ú‹… Ú›ƒ Ú� Ú ѵÚFV Ú ¼‘ÚÑÚØP Ú �§Ú–§ÚLI Ú ¶ÄÚ½ÄÚ ÈÄÚvB Ú …ÛÚŒÛÚ  ÛÚË< Ú áïÚèïÚ ýïÚ?7 Ú ÏýÚ êýÚñýÚ=4 Ú –‰Ú ±‰Ú¸‰Ú. Ú Õ¨Ú ð¨Ú÷¨Ú Š©Ú* Ú ïºÚ Š»Ú‘»Ú ¥»Ú†& Ú –ÊÚ ±ÊÚ¸ÊÚ ÍÊÚp Ú Ú@ Úë Úå ÚRú Úù Ú.ï Úäê Úvê Ú³«ÚíªÚõªÚˆsÚ÷©Ú1©Ú9©Ú€vÚÀé Ú ÝÓÚdé Ú é Ú­è Ú^è Ú è Úçæ Ú ÐÞÚ×ÞÚ¡æ ÚGæ Úîå Ú+å Ú ŒòÚ“òÚ˜¦Ú ¦Úö„Úoä ÚÜá ÚS£Ú[£Ú§ŽÚà Ú—Þ Ú  Ú¨ Ú4›ÚÏÛ Ú›�Ú£�Úx�ÚêÙ Ú‡Ù ÚŸ”Ú§”Ú¼ŸÚ8”Ú{Ø Ú6Õ Ú ü×Ú«Ô Ú–ŽÚÐ�ÚØ�Ú)®ÚOt Úcs Ú„r Úbq Ú�p Ú×o Úo Ú'n Únm Úzl Ú¦k ÚÃj Úñi Úgg Ú•f Úµe ÚÊd Úxd Ú#d Ú�~ÚÉ}ÚÑ}Úõ¾Úa Ú ïªÚ^ Ú ×µÚW Ú ÅÍÚ O Ú �àÚ J ÚÕF ÚWE Ú †!Úê|Úò|ÚwéÚQD Ú ê)!ÚÁC Ú2C Ú‡B Ú¶@ Ú ‡Ú –Ú@ Ú ÞÚn? Ú ²Ú«> Ú Â!Ú­< Ú ˆ%Ú ³%Úº%ÚT; Ú û;Ú ¦<Ú­<Ú »<Ú å<Ú”4 Ú64 Úâ3 Ú}3 Ú žÚ+3 ÚØ2 Ú2 Ú •Ú ¨Ú¯Ú01 Ú ùÚ ”Ú›Úb0 Ú ÛÚ îÚõÚ/ Ú ·Ú ÒÚÙÚ íÚ�. Ú æÚ �ÚˆÚ �Ú�- Ú ëÚ íÚ€}Ú|Ú‡|ÚEíÚÑ+ Ú èHÚ]+ Ú ÉjÚ ËjÚQ* Úñ) Ú�) Ú8) Ú ÓÚå( Ú�( Ú²' Ú Ï�Ú â�Úé�Ú@& Ú �†Ú «†Ú²†Ú % Ú ‚ˆÚ •ˆÚœˆÚ:$ Ú ʉÚ å‰Úì‰Ú €ŠÚV# Ú Ñ�Ú ì�Úó�Ú ˆŽÚ�{Ú—{ÚøÚ‘" Ú �’Úª! Ú ü´Ú —µÚžµÚà Ú  ¹Ú »¹Ú¹Ú Ú –ÄÚ ±ÄÚ¸ÄÚ5 Ú °ÈÚ ËÈÚÒÈÚ æÈÚk Ú ÆÏÚ ÙÏÚàÏÚ# Ú< ÚÝ Úˆ Ú" Ú „ÝÚÒ Ú Ú~ Ú ØâÚ ëâÚòâÚ° Ú ßëÚ úëÚ�ìÚä Ú ¥õÚ ¸õÚ¿õÚ Ú ªþÚ ÅþÚÌþÚ àþÚ$ Ú Œ–Ú §–Ú®–Ú ÖÚM|ÚU|ÚÑ8Ú¹ Ú Ï®Ú ê®Úñ®Úæ Ú‡ Ú2 ÚÌ Ú ¢¾Ú| Ú* ÚQ Ú úÁÚ �ÂÚ”ÂÚƒ Ú ŽÇÚ ©ÇÚ°ÇÚ· Ú ÌÏÚ ßÏÚæÏÚÖ Ú ‰ÔÚ ¤ÔÚ«ÔÚ ¿ÔÚ÷ Ú ¬ÞÚ ÇÞÚÎÞÚ ãÞÚ=|ÚE|ÚþUÚB Ú óâÚ Ú ©‡Ú ćÚˇÚ> Ú Ð�Ú ë�Úò�Úo Ú ÿ•Ú š–Ú¡–Ú“ Ú4 Úß Úy Ú ‘¡Ú) Ú× Úþ Ú Ò£Ú å£Úì£Ú0 Ú ¯±Ú ʱÚѱÚd Ú æÃÚ ùÃÚ€ÄÚƒ Ú ¢ÊÚ ½ÊÚÄÊÚ ØÊÚ¤ Ú á×Ú ü×ÚƒØÚ ˜ØÚ#|Ú+|Ú‹Úï Ú ×ÚÚ¸ Ú ˜…Ú ³…Úº…Úë Ú ˆšÚ £šÚªšÚ Ú É Ú ä Úë ÚAÿ Úâþ Ú�þ Ú'þ Ú ã¬Ú×ý Ú…ý Ú¬ü Ú ¶°Ú ɰÚаÚÞû Ú “¶Ú ®¶Úµ¶Úû Ú ƼÚ Ù¼Úà¼Ú1ú Ú ÌÂÚ çÂÚîÂÚ ‚ÃÚRù Ú ïÎÚ ŠÏÚ‘ÏÚ ¦ÏÚ ù ÚP|ÚX|ÚèÆÚŠõ Ú ã Ú1õ ÚÙô Ú"{Ú*{ÚUÈÚô Ú Ü ÚAó Ú ó Ú ” Ú› Úbò Ú é Ú Š Ú‘ Ú ¥ Ú„ñ Ú § Ú È ÚÏ Ú ä Ú«zÚæyÚîyÚ±ËÚùð Ú « Ú®ð Úàï Ú ƒ" Ú¿xÚÇxÚºÌÚÂî Ú ¿$ Úiî ÚZí Ú ¬' Ú³' ÚŒwÚ”wÚÎÚ¥ì Ú ª3 ÚÈë Ú Š; Ú ·; Ú¾; Úéê Ú ü@ Ú ©A Ú°A Ú ÄA Ú¡ê ÚàvÚvÚ#vÚÐÚ ê Ú öM ÚÂé Úßè Ú íQ ÚõtÚýtÚ'ÑÚè Ú ïS ÚÃç Ú´æ Ú ôU ÚûU Úqæ ÚÊsÚÒsÚ ÖÚ¨å Ú ÀZ Ú¿ä Ú •l Ú ·l Ú¾l Ú Òl Úzä Ú ä ÚsÚArÚIrÚ¬ØÚŸã ÚÝâ Ú Ã} Ú’â ÚqÚqÚµÙÚsá Ú Ó‚ Ú é‚ Úá Úà Ú ý„ Ú„… Ú¼ß ÚïoÚ÷oÚpÝÚ2ß Ú ¸ˆ Ú Έ ÚLÞ Ú Т Ú ñ¢ Úø¢ Ú1Ý Ú »§ Ú ܧ Úã§ ÚÜ Ú ú¬ Ú ›­ Ú¢­ ÚJÛ Ú Þ² Ú ÿ² Ú†³ Ú-Ú Ú ž¸ Ú ¿¸ ÚƸ ÚHÙ Ú ü½ Ú �¾ Ú¤¾ Ú ¹¾ ÚÕoÚoÚoÚ¢ñÚ|Ø Ú³× Ú ÆÈ Úd× ÚßmÚçmÚ¯òÚBÖ Ú ·Í Ú ÍÍ Ú Õ Ú ûÎ Ú‚Ï ÚÛÔ ÚŠÔ Ú¹lÚÁlÚdöÚ™Ó Ú  Ó Ú ¶Ó ÚÆÒ Ú †ó Ú�ó Ú Ò Ú œ÷ Ú£÷ ÚQÑ Ú òû Úùû Ú—Ð Ú Å€ ÚÌ€ ÚÚÏ Ú �… Ú¤… ÚÏ Ú ‰Š Ú�Š Ú ¥Š ÚÁÎ Ú/lÚ7lÚ†ûÚÎ Ú »“ ÚÆÍ Ú³Ì Ú ó• Úú• ÚüjÚkÚ<ÿÚYÌ Ú ݘ Ú{Ë Ú Á¥ Ú é¥ Úð¥ Ú!jÚ[iÚciÚ�ÚõÊ Ú,Ê Ú ° ÚÝÉ Ú+hÚ3hÚšÚÐÈ Ú ¯µ Ú¸Ç Ú â¶ Úé¶ ÚsÇ Ú"Ç ÚüfÚgÚPÚVÆ Ú ‡» ÚŠÅ Ú ÐÐ Ú×Ð Ú<Å ÚÑ¢ Ú ™ Ú  ÚšeÚÕdÚÝdÚ> Ú¥“ Ú¦’ ÚB’ ÚF^Ú�]Ú‰]Ú+Úq� Ú àU Ú¬� Ú çW ÚŽ Úd� Ú5Œ ÚþŠ ÚÐMÚ MÚMÚâÚ|ˆ Úà„ Út Ú r Ú�m Ú –× Úèh ÚNh Úçg ÚÒ` ÚDY Ú ›� Ú?U Ú ôš ÚþQ Ú Á° Ú í° Ú™@ Ú ýé Ú ˜ê ÚŸê Ú ²ê Úh: Ú Ò… Ú í… Úô… Ú ˆ† ÚP8 Ú ‹” Ú ¦” Ú­” Ú Á” Ú²6 Ú ìœ Ú ‡� ÚŽ� Ú ¢� ÚÊ5 Ú ž´ Ú ¹´ ÚÀ´ Ú ‚µ ÚÎ4 Ú ʾ Ú å¾ Úì¾ Ú ±¿ ÚæJÚîJÚªOÚ¥3 ÚrGÚzGÚ™WÚŠ2 ÚcCÚ�BÚ¥BÚµcÚ80 Ú/- Ú äŠ Ú¤, ÚÍ+ Ú «“ Ú Ï“ ÚÖ“ Ú‡AÚÁ@ÚÉ@Ú½gÚì?Ú&?Ú.?ÚolÚ€+ Ú(+ Ú°* Ú ±± ÚÚ) Ú Å´ Ú é´ Úð´ Ú-) Ú¦;Úá:Úé:ÚåvÚ]:ÚÉ9ÚÑ9Úé& Ú›& Ú)ÚdÚlÚ…šÚ=$ Új Ú& ÚK Úî Úß ÚW Ú Úb Ú¨ Ú< ÚÑÿ ÚRà Ú�Ý Ú˜Û Ú‚Ø Ú,Ø ÚZÓ ÚJÊ ÚMÉ ÚûÆ ÚéÅ Ú(Ä Úà Ú…Á ÚzÀ Ú…¾ Ú2¾ ÚdÚŸÚ§Úà¥Ú‰~ Úæ} Ú#} ÚŸ| Ú·{ Ú{ ÚŒz Ú=z Úêy Ú) ÚK ÚS Úr¬Ú`x Ú9w Ú…Ú¿ÚÇÚ£±Ú0r Ú ¶î Úio Ú Àö Úak Ú £… Úðf Ú ï‘ Ú‡e Ú?b ÚKa Ú Ï¡ Ú,` Ú ”´ ÚP_ Ú–^ Ú ûÅ Úf] Úi\ Ú ·Ü Ú ÌÜ Úý[ Ú ¸ã Ú‘[ Ú §é Ú [ Ú Šü Ú8Z Ú  • ÚÇY Ú ·™ ÚðX Ú ÍŸ ÚŠX Ú Ö¨ Ú­W Ú ºÝ ÚGW Ú Ëé ÚÜV Ú �ô ÚV ÚºU ÚiU ÚU Ú®T ÚZT ÚÿS ÚªS ÚBS ÚâR Ú…R Ú4R Ú‰Q Ú ãŒ Ú*Q ÚÍP ÚzP Ú,P Ú¤ÚÆÚÎÚÍøÚQÿÚYÿÚkúÚuþÚ¯ýÚ·ýÚNþÚØüÚüÚüÚoÚ>ûÚxúÚ€úÚëÚP ÚÊN Ú^N Ú –¨ Ú&M ÚÀL ÚHL Ú ÷± ÚïK Ú’K Ú/K ÚÓJ ÚYJ Ú¸÷ÚóöÚûöÚ?ÚÿòÚ:òÚBòÚ? ÚI Ú¶H Ú²E ÚðD Ú ½*"Ú×*"ÚžñÚØB Ú ‡+ ÚƒB ÚRA Ú ¬8 Ú�@ Ú Œc ÚLœc ÚüïÚðÚiÚ!ïÚÌ? Ú|? ÚÚ> Ú}> Ú+> Úý< Ú ô“ ÚL„” Ú>íÚFíÚ}Ú*< Ú7ìÚe; Ú �  ÚL‘  ÚGëÚ‚êÚŠêÚe Ú–éÚÑèÚÙèÚÔ#ÚÜ9 Ú~9 Ú  4#Ú9 Ú ‚9#Ú¿8 ÚÁçÚüæÚçÚd(ÚæÚTåÚ\åÚ˜+ÚyäÚåãÚíãÚñâÚ,âÚ4âÚÆ1Úo8 Ú8 Ú åS#Ú…7 Ú þY#Ú(7 ÚÂÚß0 Úº. Ú ÚI ÚÉ Ú¹ ÚZ Úõ Ú= Úæ ÚI ÚHú Ú ó Ú¹ã ÚxÞ Ú†Ø ÚrÏ Ú™Ë ÚAà Ú¼ Úê¹ Ú¹ Ú £óÚ·óÚQ¸ Úý· Ú‰· Ú ´ÄÚ"· Úƶ Úh¶ Úúµ Ú ÈÍÚG´ Ú °ÔÚw³ Ú °×ÚÄ×Ú £Ú£Ú~¢Ú†¢Ú§® ÚU® Úñ­ Ú é¤Ú+­ Ú î­Ú‚®ÚæŸÚ ŸÚ(ŸÚ>iÚ›žÚžÚžÚª Ú £ÅÚª Ú ¨ Ú”šÚΙÚÖ™ÚýrÚI™Ú´˜Ú¼˜ÚP§ Ú ùÞÚ¤¦ Úw¥ Ú¥ Ú:–Ú••Ú•Ú •ÚK”ÚS”Úd¡ Ú ½ôÚ០ÚÀž Úò� Ú ßùÚóùÚä‘Úì‘Ú»�Úa� ÚÛ�Ú�Ú�ÚÚ„Ú� Út� Ú#� Úa‰ÚœˆÚ¤ˆÚKˆÚj� Ú ‚MÚ±Œ Ú ëNÚÚ‹ Ú7‹ ÚŠ ÚH‰ Ú zÚÛyÚãyÚQŽÚK‡ Ú€… ÚÂv ÚWu Úšq Ú ÀÀÚ¼m Ú.m ÚÅl Ú×g Ú åÞÚpd Ú –ïÚÏa Ú õüÚ ¡ýÚ§T Ú ò­Ú �®Ú”®Ú §®Ú›O Ú àÅÚ ûÅÚ‚ÆÚ –ÆÚ!N Ú ¡ØÚ ¼ØÚÃØÚ רÚ«H Ú �îÚ ¨îÚ¯îÚ ÄîÚ£G Ú ùñÚ ”òÚ›òÚ ¯òÚÃF Ú þºÚ ™»Ú »Ú µ»Ú»E Ú öÓÚ �ÔÚ ¾ÔÚ àÔÚçÔÚ ŽÕÚ§D Ú ôÛÚ ›ÜÚ ¼ÜÚ ÞÜÚåÜÚ �ÝÚ C Ú íëÚ ŸìÚ ½ìÚ ßìÚæìÚƒB Ú „ƒÚ ±ƒÚ ÛƒÚ ýƒÚ„„ÚkA Ú é”Ú –•Ú À•Ú â•Úé•ÚQ@ Ú Ù¹Úà¹Ú'yÚ/yÚ\¾Ú ? ÚvÚ"vÚtÄÚ…> ÚŸrÚÙqÚáqÚqÍÚ< Ú÷9 Ú ŸéÚl9 Ú9 Ú,qÚfpÚnpÚ»ÐÚ¢8 Ú<8 Ú ‹„Úé7 Ú•7 ÚšoÚÔnÚÜnÚ’ÓÚç6 Ú ÚÚ06 ÚÜ5 Úr5 Ú 5 ÚmÚ¹lÚÁlÚ¨×ÚqkÚ¸jÚáiÚ3 Ú ñSÚH2 Ú Ó}Úc1 Ú  cÚ‘0 Ú;0 ÚÖ/ ÚT/ ÚÏ. ÚH. Úß- Úh- Ú ‚ÇÚõ, Ú«+ Ú�iÚÇhÚÏhÚQãÚògÚ,gÚ4gÚàåÚ'fÚaeÚieÚìèÚ–+ Úþ* Ú ‹ÝÚ ±ÝÚ¥* ÚH* Ú®dÚècÚðcÚ,ìÚccÚÀbÚÈbÚC`Úe_Úm_ÚùïÚà^ÚK^ÚS^Ú' ÚN& Ú À�ÚÔ�Ú‘% Ú � Ú¡ Úo$ Ú ¹¢ÚÍ¢ÚèÚ ¨ÒÚëçÚ©@ÚË?ÚÓ?Ú(Úï>ÚZ>Úb>Ú=Ú <Úg;Úo;ÚkçÚçÚ²æÚVæÚSåÚÀäÚnäÚÇãÚGãÚ ˆòÚÀâÚùáÚ ƒùÚL“ùÚw:Ú:ÚÄ.ÚsáÚ%9Ú-9Ú£0Ú•àÚ­)ÚYÆÚ×ÁÚ;Ú/µÚ=±Ú ñ©ÚʨÚD¤Ú‘›Úš•Ú ÿèÚ šéÚ'’Ú æ÷Ú �øÚ ”øÚp�Ú ªˆÚ ƈÚø‰Ú �—Ú «—Ú ¿—Ú ®¨Ú …¹Ú.tÚ3nÚfÚMdÚˆcÚ äöÚLôöÚ*bÚ •ûÚL¥ûÚ<`Ú ÅüÚLÕüÚ(Ú0'Ú8'Ú+YÚ\_Ú_ÚµÚïÚ÷ÚÒ[Ú??Ú ç�Ú>8Ú—4Ú*.Ú0)Ú>&ÚF#ÚmÚôÚÔÚ^Úï Ú° ÚšÚ¢ÚJ�Ú Ú¤ Ú± Úû Ú¨ ÚM Ú%Ú_ÿÚgÿÚú·Ú6ýÚpüÚxüÚ<½Ú�Ú³ÚìÚ ¤úÚ¾úÚ+úÚKùÚSùÚAÄÚŒÚÏÚ¥öÚ­öÚsÅÚSÚgôÚÝÿÚ ø$ÚLˆ$Ú!ýÚ ø$ÚLˆ$ÚyíÚ ðÚ ŸÚ ÏÚèÚ þ0Ú ¬0Ú Ý0Ú~óÚuòÚ}òÚ3âÚ×ñÚñÚñÚáîÚØíÚàíÚååÚ:íÚyìÚ�ìÚÈåÚ÷äÚvÐÚ™ÏÚ¡ÏÚ3íÚ ßY%ÚæY%ÚLÕÚ ùx%Ú€y%ÚËÚ ·~%Ú¾~%ÚÉÚ ¸…%Ú¿…%ÚÇÚ ý•%Ú„–%Ú ó¢%Úú¢%Ú ·¸%Ú¾¸%Ú ø%Ú ν%ÚÕ½%Ú„°Ú ÜÎ%ÚãÎ%ÚO¯Ú ØÜ%ÚßÜ%Úž¥Ú’¤Ú ªß%ÚÄß%Ú©ÌÚ±ÌÚ,Ú êê%Úñê%Ú7¢Ú ‘ú%Ú˜ú%Ú³œÚ§›Ú Îü%Úèü%Ú«ÉÚ³ÉÚk Ú ä‡%Úë‡%ÚM™Ú �•%Úˆ•%Ú �•%Ú”Ú§’Ú ¯š%ÚÉš%ÚJÆÚRÆÚ#2Ú ¤£%Ú«£%Ú °£%Ú6‘ÚR�Úc€Ú/Ú �ÚL—Ú€{ÚãzÚÁyÚ —@ÚL¡@ÚyÚ«Ú,ªÚ4ªÚ3[Ú¨©Ú©Ú©Ú¶¤Ú¼£Ú(£Ú0£Ú(lÚ>kÚþiÚiÚ6hÚ cÚzaÚô_Ú—^Ú/]Ú\Ú[ÚLVÚ „¤ÚL”¤ÚQ¢Ú‹¡Ú“¡Ú@�ÚãUÚÚ�Ú�Ú�Ú¤ÚRRÚRPÚåKÚ £ÆÚjKÚ îÎÚ}IÚ äãÚIÚ  æÚvHÚ ã€Ú³FÚ Ï—ÚŸEÚ ºšÚ“DÚ »�Ú€CÚ æ ÚrBÚ “¤ÚfAÚ ²¨ÚX@Ú ¬ÚD?Ú �±Ú<=Ú „¶Ú¶;Ú ·¼Ú£:Ú ¥ÔÚ’9Ú ߨÚ*8Ú ŽßÚÄ6Ú ¼åÚ²5Ú —êÚ¢4Ú üíÚ63Ú ÛóÚÌ1Ú „ýÚr›Ú¬šÚ´šÚ³÷Úè/Ú �‹Ú©‹Úù.Ú .ÚjÚNÚ ¼YÚLÌYÚÉ Ú® Úµ Ú_ Ú ¸cÚLÈcÚ£—Ú«—Ú‡ Ú[Ú_ÚùÚíÚ9Ú…ÿÚcþÚ í’Ú‡“ÚLüÚÞûÚ/ûÚÌúÚÔùÚzøÚ ŽÇÚLžÇÚL—Úˆ–Ú�–Úó[ ÚRïÚ�îÚîÚ ’&ÚíÚ ï &ÚdìÚìÚĕڕڕÚle Ú_ëÚŽêÚ+êÚ €'ÚþèÚ � 'Ú§èÚ\èÚN”ÚŠ“Ú’“Úll ÚšçÚÞæÚ{æÚ ‡(Ú³åÚ  (Ú\åÚåÚ¸’Úó‘Úû‘Úr Ú»äÚ±ãÚNãÚ ¨(Ú†âÚ ì(Ú/âÚäáÚ‘Ú<�ÚD�Ú;z ÚŽáÚ„àÚ!àÚ –(ÚYßÚ â"(ÚßÚ·ÞÚj�Ú¦ŽÚ®ŽÚÔƒ ÚÿÝÚCÝÚàÜÚ �)ÚÜÚ Š )Ú¼ÛÚqÛÚº�ÚöŒÚþŒÚ®Š Ú¹ÚÚ°ÙÚMÙÚ „*Ú†ØÚ ò *ÚÌ×Úx×Ú[€Ú–ÚžÚ™› Ú*ÎÚ£ÉÚFÄÚÀÚ ‰c+ÚÈ»Ú Àp+Ú »Ú�ºÚȵÚ}´Ú´Ú �ˆ+Úš³Ú æŠ+Ú9³Úå²Úõ±Ú‡±Ú –�+Ú±Ú À�+Ú¯°ÚY°Úð{Ú*{Ú2{Ú£± Úú¯Ú¯Út®Ú±vÚvÚuÚ‡uÚÆtÚÎtÚEtÚMtÚÅsÚÍsÚޤÚ Í,ÚLÝ,ÚueÚ™dÚ¡dÚFÎ Ú¾cÚ/cÚ7cÚvbÚ~bÚõaÚýaÚuaÚ}aÚÝžÚ.žÚn�Ú’œÚd›Ú'˜ÚY—Ú¯–ÚϕڕÚ`Ú;_ÚC_Úæ Ú·^Ú#^Ú+^Ú.’ÚF‘Ú Šo,ÚLšo,ÚŠ]ÚÅ\ÚÍ\Ú[é Úâ�ÚêWÚîVÚ^VÚfVÚ¤UÚ¬UÚ"UÚ*UÚ¡TÚ©TÚQÚPÚtOÚ|OÚºNÚÂNÚ8NÚ@NÚ·MÚ¿MÚŠJÚJÚ–IÚIÚnHÚ–FÚhEÚÁ ¼œ,ÚHÁ Ìœ,Ú™DÚÜCÚÝBÚBÚˆ9ÚÂ8ÚÊ8Ú˜ Ú=8Ú¨7Ú°7Úû>Úù=ÚÁ ¦´,ÚHÁ ¶´,ÚÊ6Ú6Ú 6Ú† Ú=ÚÍ4ÚÊ3ÚÒ3ÚÑ Ú¯;Ú©0Ú00Úµ/Ú:/Ú�.Úµ,Ú‡+ÚÕ ¼œ,ÚHÕ Ìœ,Ú¸*Úû)Úü(Ú&(Ú¯ÚéÚñÚõ& ÚdÚÏÚ×Ú%Ú$ÚÕ ¦´,ÚHÕ ¶´,ÚñÚ+Ú3ÚÑ) Ú=#ÚüÚÚ Ú, ÚÖ!ÚëÚ&Ú.Ú@5 Ú„MÚŸ'Ú”KÚ€,ÚáGÚYGÚ—ÚôFÚ‡FÚÛEÚeEÚ îUÚEÚUDÚ ˆZÚL˜ZÚ¾ÚâÚêÚ³9 Ú^ÚÊÚÒÚcCÚCÚ¤=Ú¯:Úú7Ú ¸-Úó4Ú æ-ÚÂýÚåüÚìüÚyE ÚÚ� Ú Úy Úú Úg Úá ÚT ÚÖ Ú[ ÚÚÚ{Ú ’-ÚÚ ûƒ-Ú¹Ú ¸†-ÚžøÚ¥øÚ«L Ú&ôÚ-ôÚ_N ÚÜÚ Þ'ÚLî'Ú‰ðÚ�ðÚŽO Ú~ìÚ…ìÚžP ÚèÿÚ ÅCÚLÕCÚ•ÿÚBÿÚìþÚAþÚàýÚÃüÚôûÚ ²�Ú©ûÚ\ûÚÿúÚXúÚàùÚØøÚøÚ¯÷ÚÚöÚ€öÚ¶õÚWõÚ†ôÚóÚ)ñÚ|ðÚÌïÚtïÚïÚºîÚGîÚ¡ëÚ>ëÚÛêÚÈéÚjéÚ éÚzèÚèÚ¾çÚsìÚæëÚVëÚ]ëÚ›êÚ¢êÚêÚêÚ–éÚ�éÚMäÚ‹ãÚ À1ÚLÐ1ÚÙâÚ�âÚAâÚóáÚ¥áÚXáÚ áÚ2àÚÒßÚ;ßÚµÞÚ éÚGèÚNèÚc ÚëÝÚžÝÚ^çÚãÜÚ ñFÚL�GÚ1ÜÚäÛÚ–ÛÚ2ÛÚ‰ÚÚúÙÚsÙÚÖæÚ¸ØÚ ™TÚL©TÚEØÚ´×ÚS×ÚÀÖÚ>ÖÚÝÕÚWÕÚÐÔÚŠÓÚ6ÓÚáÒÚŠÒÚ1ÒÚØÑÚ€ÑÚ$ÑÚÁÐÚëÏÚ2ÏÚŒÎÚ3ÎÚQÍÚ ø¯ÚLˆ°ÚdËÚ ËÚ³ÊÚ[ÊÚÊÚ©ÉÚ9ÉÚqÈÚßÇÚ|ÇÚÇÚ ™äÚoÆÚÆÚ½ÅÚmÅÚÅÚÅÄÚ&ÄÚ Œ!<Ú ¨!<Ú Æ!<ÚÂÚ •ƒ<Ú ±ƒ<ÚƒÁÚ Ï�<Ú è�<ÚYÀÚ ÍØ<Ú âØ<Ú éI.ÚðI.Ú­ºÚõH.Ú ¦L.Ú­L.Úþ¸Ú²K.Ú ×N.ÚÞN.ÚM·ÚÛM.Úò¥Ú�¥Ú9¥ÚФÚx¤Ú¤ÚCÓÚÂqÚ©nÚ‡kÚiÚZfÚRdÚøbÚ`ÚÇ]Ú/[ÚyYÚÅWÚ¦VÚRTÚQÚ&PÚ ÇåÚL×åÚŒÎÚæÍÚUÍÚ\ÍÚ™ÌÚ ÌÚóNÚUNÚvMÚeLÚŸKÚÑJÚ ¸úÚLÈúÚAJÚÅIÚ*IÚ×GÚ ú�ÚVGÚ ¤ƒÚÒÈÚóÇÚúÇÚˆ� ÚlÇÚÛÆÚâÆÚÆÚ&ÆÚ%DÚÞBÚ;ÂÚ\ÁÚcÁÚ±¤ ÚÕÀÚDÀÚKÀÚˆ¿Ú�¿Úó:Ú :ÚQ9Ú{8Úü7Úñ6ÚX6Ú(ºÚa¹Úh¹Ú² ÚÚ¸ÚD¸ÚK¸ÚŒ2Úä1ÚŽ/Úl.ÚÂ-Ú·*Ú*Úc(Ú'ÚM¶Ú†µÚ�µÚW¶ Ú3&Ú ŠøÚLšøÚú²Ú²Ú ²Ún¹ Ú‘%Ú9%Ú™$Ú†œÚ§›Ú®›Ú» Ú ›ÚŠšÚ‘šÚ"ÚòÚ‚Ú߀Úæ€Ú‘ ÚX€ÚÂÚÉÚ©ÚÌqÚqÚ qÚ§Å Ú~pÚèoÚïoÚÚ5dÚncÚucÚ¦Ê ÚçbÚQbÚXbÚÿÚ Ó«ÚLã«Ú”aÚÎ`ÚÕ`ÚNØ ÚàÚ€Ú4ÚçÚ`Ú+ÚÕÚˆÚ<ÚëÚ”Ú@ÚºÚmÚ«Ú í90ÚLý90Ú�^Ú”^ÚKÛ Ú'ÚøÚ®Ú%Ú#Ì 'Ì 1nfa::thompson::backtrack::BoundedBacktracker::max_haystack_lenÁè·s¡¹shybrid::regex::Builder::dfaÁ£¸sĹs%https://www.unicode.org/reports/tr18/ÁÄå¸sí¹s�ºs meta::RegexÁ�Ρ¹s¬#ܺsanchored searchesÁĹsˆ»sÄnfa::thompson::backtrackÁí¹sÅ nfa::thompson::backtrack::ConfigÁ�ºsÉ»s�Î hybrid::regex::Builder::thompsonÁܺsÒð»s1https://www.unicode.org/reports/tr44/tr44-24.htmlÁˆ»s—¼sÄ¿¼shttps://docs.rs/regexÁÉ»sì�Îö¼sdfa::dense::DFAÁÒð»s¬½s dfa::onepassÁ—¼s² configured visited capacityÁ¿¼sí ý½s util::syntaxÁö¼sÒ ®¾smeta regex engineÁ¬½sÓ¾sï¾sCrate featuresÁý½s ¿suse zero-copydeserializationÁ®¾sÆ¿s hybrid::regexÁÓ¾s BoundedBacktracker::try_searchÁï¾sî¿shybrid::regex::Builder::syntaxÁ ¿sÆ�Às'nfa::thompson::Compiler::build_from_hirÁÆ¿sºÀsÖÀsAvailable regex enginesÁà î¿s…ÁslazyDFAÁ�Às¹Ásdfa::AutomatonÁºÀsühybrid::regex::Regex::findÁÖÀs÷Ásà nfa::thompson::BuilderÁ…Ás¤Âsª+Ÿ³hybrid::dfa::BuilderÁ¹Ás¼Âs%https://www.unicode.org/reports/tr29/ÁÚÂsShould I be using this crate?Á÷Ásà ŠÃshybrid::dfa::ConfigÁ¤Âsª+¼Ãs dfa::sparseÁŸ³¼ÂsáÃs—Input::earliestÁÚÂs‘Äsmeta regexengineÁŠÃsÚ!ÄÄs(construction directly froma Thompson NFAÁª+ô¼ÃsËŸ³•íÄs%https://www.unicode.org/reports/tr24/ÁáÃs—”Ås‘Äs´Ås nfa::thompsonÁÄÄs¹ÚÅsdfa::regex::RegexÁíÄs­Æs Input::spanÁ—Ñ,”Ås9configuring heuristic support for Unicode word boundariesÁ´ÅsôÆshybrid::regex::Builder::buildÁÚÅs—ÇsUnicode general categoriesÁ­Æs¹ÇsÙÇs Thompson NFAÁôÆs± £ÈsInput::anchoredÁ—ÇsÑÈsnfa::thompson::pikevm::PikeVMÁ¹Çs$BoundedBacktracker::max_haystack_lenÁÙÇs‚Ésnfa::thompson::ConfigÁ£Ès¤És4Unicode’s “simple loose matchesâ€� specificationÁÑÈsÄÉsª ìÉsÁ¯s‚És¡Ês†°s¤ÉsÇÊsɰsÛÀÄÉs¡$ª õ®sìÉsÁ¯sÕ¯s¡Êsê!†°s�š°sÇÊsÛÀɰs– hybrid moduleÁ crate::hybridÁô dense::DFA::from_bytes_uncheckedÁ° ý½scrate::dfa::denseÁ crate::dfaÁ!crate::util::prefilter::PrefilterÁü(crate::nfa::thompsonÁ crate::nfaÁdense::Config::minimizeÁŸÌsdense::DFA::to_bytes_big_endianÁ• ° ÈÌsý½scrate::dfa::dense::ConfigÁøÌsŽÍs crate::nfa::thompson::ConfigÁÈÍsáÍs° dense::BuilderÁ’Îsë• ° 0crate::dfa::dense::Config::unicode_word_boundaryÁÌÎsøÌs"crate::nfa::thompson::Config::utf8ÁúÎsÈÍs± Ø onepass::DFAÁ¬Ïsà ë• ’Îs,heuristically enable Unicode word boundariesÁÔÏsÌÎsthompson::ConfigÁ•ÐsúÎsê!Ø one-passDFAÁÒÐs¬Ïsà ë dense::ConfigÁþÐsÔÏsthompson::Config::utf8Á»Ñs•ÐsØdense::DFA::from_bytesÁêÑsÒÐs’à µ¢$dense::Config::unicode_word_boundaryÁ”ÒsþÐs±crate::util::syntaxÁ²Òs»ÑsâÒsêÑsµ¢https://docs.rs/regex/1/regex/Á™Ós”Òsé›±crate::util::syntax::ConfigÁÓÓs”¾²Òs"dense::DFA::to_bytes_little_endianÁâÒsµ¢!documentation for the regex crateÁ‘Ôs™Ósé›±!crate::util::syntax::Config::utf8ÁËÔsÓÓsÆ”¾ sparse::DFAÁýÔs crate::utilÁ°Õs‘Ôsé›syntax::ConfigÁíÕsËÔsí+”¾ dense::DFAÁªÖsýÔscrate::util::primitivesÁÀÖs°Õssyntax::Config::utf8ÁâÖsíÕsí regex::RegexÁŒ×sªÖs crate::util::primitives::StateIDÁ§×sÀÖs•crate::util::prefilterÁÏ×sâÖsí±Ìsù×sŒ×s–Øs§×sÙ�ÍsÌØsÏ×sðÍsíŸÌs±Ìsù×sÈÌs–Øsî)ý½sŽÍs�ÍsÌØs±áÍsðÍsØ Cache::resetÁ%crate::dfa::onepass::DFA::pattern_lenÁcrate::dfa::onepass::DFAÁcrate::dfa::onepassÁ ŽÍs crate::util::captures::GroupInfoÁÁ&thompson::BuildErrorÁý̪ÛsŽÍsù©3crate::nfa::thompson::backtrack::BoundedBacktrackerÁý œãÈÍsáÍscrate::util::iter::SearcherÁcrate::util::iterÁ Captures::allÁ⫦žpattern_len() * 2Á—ÚsÁÚs’*crate::util::captures::GroupInfo::slot_lenÁªÛsµ"ŽÍs ù©œãúÎsÈÍsáÍs° util::iterÁªÜsÊÜs«žçCaptures::is_matchÁƒÝs—Úsë Cache::newÁœã±&ù©’úÎsÈÍs± util::iter::SearcherÁ‘ÞsªÜs³'ž§-Config::starts_for_each_patternÁ½ÞsçƒÝsÒÐsëDFA::create_cacheÁåÞs»ÑsConfig::size_limitÁúÎsê!›ßs‘ÞsAnchored::PatternÁÐßs½ÞsçòÒÐs‘àsåÞsë²Òs»Ñsconfigurable heap limitÁ³às›ßsŸ³ Anchored::NoÁáàsÐßsÒÐs‘às±ÓÓs²Òs»Ñsê!ß'DFA::try_searchÁµás³às—Ÿ³ Anchored::YesÁãásáàs¬-±ËÔsÓÓs DFA::capturesÁ²Òsß'±âsµás DFA::configÁ—Ÿ³ DFA::stride2Áäâsãás¨-crate::util::capturesÁôÆs±± íÕsËÔsÓÓsÆ DFA::is_matchÁß'˜ãsBuilder::configureÁÁãs±âs—Ñ, DFA::strideÁÜãsäâsª-€ÛsÀÖsþãsôÆsâÖsíÕsËÔsí+crate::nfa::thompson::pikevmÁ¿äs˜ãsConfig::byte_classesÁ one-pass DFAÁÜäsÁãs‰åsÜãsªÝs€ÛsþãsôÀÖs“¨Ï×sâÖsíÕsMatchKind::AllÁíôÆs$crate::nfa::thompson::pikevm::PikeVMÁÙåsŸæsÜäs¿äsDFA::reset_cacheÁ†æs‰ås¤És slot_len()ÁªÝsÀÖs•“¨¡Ês�ÎÏ×sMatchKind::LeftmostFirstÁâÖsýæsícrate::nfa::thompson::backtrackÁÓ¿Ÿæs›çsÙåsņÚsÜçs†æs¤ÉsÞÚsýÌ�Γ¨ý¡ÊsÛÛsÏ×séès»èsýæs»-í›çs¡$Ó¿àÜs†Úsâ«Üçs¤ÉsÁÚsÞÚsƒèsƒèsýÌ�ΡÊsÛÛséès² â«»èsÊ-áÍsÊÜsàÜsÓ¿º-K±Ìsôª+”¾¶·sŽÍsÒûcrate::hybrid::regex::RegexÁcrate::hybrid::regexÁcrate::dfa::regex::RegexÁ°Õs‘Ôsþ9—Çs¶·s• ”¾ŽÍs dfa::DFAÁÒësòësüÀÖsºÀs°Õsþ9‘Ôs—Çs¶·s• ”¾ dfa::ConfigÁ dfa moduleÁÚìsÒës«ÀÖsô²sºÀs°Õsþ9"dfa::Config::unicode_word_boundaryÁ—Çs• ü¬ísù×s¼ísÚìsöô²sÀÖs•ºÀsÌØscrate::dfa::regexÁùís¬ís¹±Ìsù×sª+¼ísô²sÒÌØs‹ìsîîsùís±Ìsù×s«ª+ŽÍsÒÌØs±‹ìsòësîîs‘Ôs” start::ConfigÁ±ÌsôCache::search_updateÁCache::search_finishÁøÌsýÌù©Òësâ«‚ÈÍsžDFA::next_state_untaggedÁÛÀÌ-¡ðsÃ+¾ðsøÌsù©ÒësÈÍsžŸñs� (crate::hybrid::regex::Regex::reset_cacheÁ¾ðsøÌsù©öÒës«ÈÍs± ô²sOverlappingState::startÁž§-Ÿñs� Ðßs�òsô²sáòsÐßs� ÒConfig::prefilterÁ�òsregex::BuilderÁË´snfa::thompson::Config::reverseÁô²sáòsConfig::minimum_bytes_per_stateÁÐßs¿ósÛósË´sß'ôós§ôsMatchError::quitÁ¿ósBuilder::syntaxÁÛósË´sËÔs”¾ß'hybrid::dfa::DFAÁôósDFA::match_patternÁ§ôsüôs—õsÈ0ËÔs”¾Èõsß'Üäsãõs Config::newÁüôsÀÖsBuilder::buildÁ—õsâÖsÙåsÈ0ËÔsí+”¾Èõs†æsÜäsDFA::start_stateÁãõs´ös­0ÐösÀÖsâÖsÙåsÈ0í†æsÜäs�÷s´ös DFA::builderÁ­0ÐösÀÖs•»èsÙåsÅâÖs†Úsí†æsDFA::start_state_forwardÁÓ¿�÷sý÷s­0»èsí†ÚsÓ¿ÌøsDFA::next_stateÁý÷sŽÍsòësáÍs»èsÊ-‚†ÚsÓ¿º-starting configurationÁÌøs�¼�ùsŽÍsòësáÍs‚êùs¥ !Config::minimum_cache_clear_countÁ• �¼�ùsŽÍs òësüúÎsáÍs° "DFA::next_state_untagged_uncheckedÁ‚£ºÀsêùsç¥ ¹ús• �¼‰úÎs¦¡ºÀs–ûs¥ ÷çRegex::reset_cacheÁà ¹ús‘às• crate::hybrid::regex::BuilderÁ¦¡úÎsê!%crate::nfa::thompson::Config::reverseÁºÀs–ûsáàsCache::search_startÁ繜üsà ‘àsÉüs¼Ãsª+¦¡Ù)üüsáàs¸ýsConfig::unicode_word_boundaryÁœüsà ‘àsBuilder::thompsonÁÄÄsÉüsê+¼ÃsÓÓscrate::dfa::dense::DFAÁüüs—áàs¬-DFA::match_lenÁ¸ýsšþsÍþsé›ÄÄsª+¼ÃsÓÓs…ÿsÁãs—¶ÿsConfig::specialize_start_statesÁšþsBuilder::build_from_nfaÁôÆsé›ÄÄsÍþsÓÓsÆ…ÿsÁãs—Ñ,start configurationÁ¶ÿs�€t¹€tôÆsé›ü(Œ×sŽ�tÁãs�€t Builder::newÁ“¨¹€tôÆs›çsýæsÜçsDFA::start_state_reverseÁŒ×sŽ�tá�t“¨¡Ês›çsýæsÜçs±Ìs–‚tŒ×s×ðsýÌá�t“¨Ë¡Êsâ«›çs¡$ýæs»-ÛÀÜçs¡ðs±Ìs–‚t×ðsýÌ¡Êsâ«ÛÀHÌøs±Ìsôcrate::hybrid::dfa::ConfigÁß'$dfa::Config::minimum_bytes_per_stateÁ3crate::hybrid::dfa::Config::minimum_bytes_per_stateÁ,crate::hybrid::dfa::DFA::start_state_forwardÁù©crate::hybrid::dfa::DFAÁcrate::hybrid::dfaÁûÈÍsáÍsÒôÆsÛÀ5crate::hybrid::dfa::Config::minimum_cache_clear_countÁ‚„t¦„tß'° crate::nfa::thompson::BuildErrorÁ‡…tù©¾…töÈÍsáÍs° ôÆs&dfa::Config::minimum_cache_clear_countÁ“†t¬ís‚„t¹nfa::thompson::BuildErrorÁã†t‡…t�÷sù©ÈÍs± ôÆs± $crate::hybrid::dfa::DFA::start_stateÁ¶‡t“†t¬ísø‡tã†tµ"�÷scrate::MatchErrorÁĈt¶‡t¬ísÌøs±Ìsø‡tµ"�÷sÏ„tÚ…tš‰tĈtÒÛÀÌøs±Ìs¦„tß'Ï„t¾…tÚ…tš‰tÌ-áÍsÒÛÀBcrate::MatchError::gave_upÁ±Ìsô‚„t�ùs�¼ù©¾…tÚ…tûüôs�€tLazyStateID::is_taggedÁcrate::hybrid::CacheErrorÁÛÀMatchError::gave_upÁ‚„tä»�ùs�¼ù©¾…töüôs�€t3crate::hybrid::dfa::Config::specialize_start_statesÁžE³‹t΋t‚ç‚„t¹ä»�¼‰ù©crate::MatchError::quitÁ�€t¿Œt³‹tžEçä»#crate::hybrid::dfa::DFA::next_stateÁµ�t¿ŒtžEš‰tçÔŠt±Ìsô�tµ�tÚ…tš‰tò‹tÛÀÔŠt±Ìs�ùsô�t¾…tÚ…tüôsš‰tÌ-΋tÛÀò‹tx±ÌsôRegex::create_cacheÁCache::as_parts_mutÁ dfa::BuilderÁË⫼ÒûžÕÛRegex::find_iterÁÌ�tä�t‘ÞsžÕÛú, Regex::findÁ³�tÌ�t›ßs‘Þsž§-œüsiter::SearcherÁë�t³�t»Ñs›ßs‘ÞsRegex::try_searchÁœüs¤‘të�tŸ³²Òs»Ñs›ßs parent moduleÁÙ‘tœüs¤‘t³'±ÓÓs²ÒsŸ³»Ñsê!ß'��’tÙ‘t±ËÔsÓÓs”¾Ÿ³²Òsß'��’tôÆs±± íÕsËÔsÓÓsÆ”¾ß'�«ÀÖsôÆsâÖsíÕsËÔsí+¬ís”¾«ÀÖs“¨Regex::reverseÁÏ×sâÖsíÕsýæsíôÆs¬ísÀÖs•¡Ês“¨Regex::forwardÁÏ×sâÖsµ”týæs†ÚsíÓ¿¬ís¹±Ìsü�tˆ•t¡Ês“¨Ãµ”tâ«Ï×sÒýæs»-í†ÚsÓ¿±Ìsä�tü�tˆ•t¡Êsâ«ÒÕÛ†ÚsÓ¿º-<”¾ crate::MatchÁcrate::PatternIDÁPatternID::ZEROÁ—œãþãsCaptures::interpolate_stringÁ⫬ÕÛcrate::Input::anchoredÁ”¾ì–tý–tÙ)—œãþãsÀÖsÕÛ crate::InputÁ”¾ìé—tì–tú,œãþãsô¦¡ÀÖsRegex::search_withÁ¤És¸˜té—tcrate::util::captures::CapturesÁ¦¡crate::PatternID::ZEROÁ‚™tÀÖs•3crate::util::captures::Captures::interpolate_stringÁ«™t¸˜tÑ,¤És’—t¦¡Õ™t‚™tâ«·—t…št«™t±&¤Ésý–t’—tÕ™t—â«·—t…štÕÛcrate::meta::ConfigÁ¦¡Ù)Config::nfa_size_limitÁ#crate::meta::Config::nfa_size_limitÁË›t·ç¦¡ crate::metaÁò›t�œtçË›tÌœtꦡò›t�œtçÌœtʱÌsôutil::lazy::LazyÁregex-syntax::HirÁýÌCaptures::emptyÁÕ¯sœã⫬Config::auto_prefilterÁÈÍsªÜsŒÞ÷!ƒÝscrate::util::pool::PoolÁ¶�tBuilder::build_manyÁ³�t Regex::which_overlapping_matchesÁرsç�tË�tÕ¯sœã Regex::splitnÁ’žtÈÍsªÜsò›tƒÝsÊžtìžtåÞs³�tŠŸtرsœã±&ÍŸt›ßsÈÍs± ªÜs³'ò›tcrate::nfa::thompson::NFAÁƒÝsÊžt­Config::onepassÁRegex::search_capturesÁìžt³�tŠŸtåÞsرsRegex::captures_iterÁ †ÍŸt›ßsConfig::line_terminatorÁò›tÔ t¿ósƒ¡t—¡tåÞs †Сt›ßsû¡tlazy DFAÁÔ t¬#¿ósRegex::pattern_lenÁƒ¡t—¡tConfig::dfa_size_limitÁ †¶СtConfig::utf8_emptyÁû¡t×¢t¿ósù¢t—õsœ£tËÔs”¾È£t×¢tþãsFhttps://matklad.github.io/2020/01/02/spinlocks-considered-harmful.htmlÁù¢t—õsConfig::onepass_size_limitÁœ£tËÔs”¾,crate::util::syntax::Config::line_terminatorÁÈ£tÜäsþãs©¤tÀÖsÐös—õs€¥tâÖsÙåsËÔsí+”¾ì±¥t†æsÜäsªÝscrate::util::lazyÁþãsô©¤tÀÖsÐösRegex::new_manyÁ€¥tâÖsÙåsWhichCaptures::NoneÁí±¥t†æsÜäsªÝștÀÖs•Ðösÿ¦tÙåsÅ»ès¥§t†ÚsâÖsÓ¿í†æsÞÚs util::lazyÁªÝștžBuilder::build_many_from_hirÁRegex::create_capturesÁÿ¦tÒWhichCaptures::AllÁ»ès¥§tü!í†ÚsÓ¿ÞÚs±¨tѨtò¨tŽÍsÒ˜©táÍsÊÜsÕÛ†ÚsÓ¿º-»èsÊ-Ó¾scrate::util::poolÁÞÚs ±¨tBuilder::build_from_hirÁÌ�tCaptures::matchesÁ ¿sò¨tŽÍsѨt thompson::NFAÁÒ˜©tø!áÍsÊÜsÕÛÓ¾s®ªtÔªtÌ�töªt ¿sŽÍs ¤«t‘ÞsáÍs° ÊÜs«ÕÛú,Ó¾s½Þsç memorypoolÁ®ªt¬Config::backtrackÁë�tRegex::search_slotsÁöªtÌ�t ¿s Regex::splitÁÔªt¤«t¬#‘Þs‚™tConfig::pool_capacityÁ½ÞsŬtç߬të�tû¬t¥­t‘Þs‚™tÓ­tConfig::hybridÁ½Þsç·Ŭt Config::dfaÁRegex::search_halfÁë�tû¬t߬tConfig::dfa_state_limitÁŸ³¥­tConfig::which_capturesÁ‚™tÓ­t©®tÓ®tã®t±Œ¯tÓÓsŸ³´¯tRegex::capturesÁ—©®t”Ås Regex::searchÁÓ®tã®tConfig::hybrid_cache_capacityÁ±Œ¯tÓÓsŸ³Config::match_kindÁ´¯tаt—”Ås¯°tͰt±± ÓÓsƆ±t—Ñ,аt”Ås€Ûs:effectively impossible to implement correctly in userspaceÁ¯°tRegex::captures_lenÁͰtsyntax::Config::line_terminatorÁ†±t€Ûs÷±t‚És“¨¼²t›çs¤ÉsýæsÚ²tƒèscrate::util::lazy::LazyÁ€ÛsÁ&÷±tRegex::builderÁ‚És“¨ Regex::newÁ›çs¼²t¤ÉsýæsWhichCaptures::ImplicitÁÚ²t±ÌsƒèsÀ³týÌí³t‚És“¨Ï⫌´t›çs¡$¤Ésýæs»-ŒÞ³´t±Ìs¶�tƒèsÀ³t Ë�tç�týÌŒ´tÕ¯sí³tâ«’žt³´tú!ŒÞ-±hybrid NFA/DFAÁ±Ìsô ThompsonNFAÁ7https://en.wikipedia.org/wiki/Thompson%27s_constructionÁ° ªÖs Glushkov NFAÁAhttps://en.wikipedia.org/wiki/Glushkov%27s_construction_algorithmÁŽÍscrate::dfa::sparse::DFAÁcrate::dfa::sparseÁthompson::pikevm::PikeVMÁ¡$thompson::pikevmÁ±± œ¶tº¶t±Ìsʶt° ‘·t¢·tŽÍs ªÖsî·tЏt¥¸tǸtœ¶t±±Ìsº¶t° ʶt‘·tªÖs¢·tŽÍsî·tЏt¥¸tǸtÅN䮬#œ¶t±ÌsôÞÚs ª regex-syntax::hirÁregex_syntax::hir::HirÁregex_syntax::hirÁãýÌÕ¯sÿeŽÍspikevm::PikeVMÁbacktrack::BoundedBacktrackerÁregex-syntax::ast::AstÁÌœtꜶtregex-syntax::hir::HirÁƺtܺt¶Õ¯sÿeŽÍs ©»t¼»tý œ¶tregex_syntax::astÁмtƺtŸæsˆ¦ÿe² ©»t¡$regex_syntax::ast::AstÁâ¼tÄмtŸæsˆ¦full DFAÁ�Îregex-syntax::astÁ¥½tâ¼t ÄŸæs䮈¦Å±ÌsÞÚsª ýÌ�Î÷ºtݽtÞ»tô½t¥½t¿ÄÌœtä®±ÌsÞÚsª ܺt÷ºtýÌ�ÎÕ¯sŽÍs¼»tÞ»tô½tݽtÌœt™!BoundedBacktracker::try_find_iterÁ&crate::nfa::thompson::NFA::pattern_lenÁýÌœã⫞!ÈÍsáÍsàÜsBoundedBacktracker::reset_cacheÁªÜs BoundedBacktracker::try_capturesÁì¿tÊÜsƒÝsœãúÎsÈÍsáÍs° ‘ÞsConfig::visited_capacityÁæÀt�Átç½ÞsªÜsÊÜs«ÖÀsƒÝsåÞsœã±&úÎsÈÍs± ›ßs‘ÞsêÁtæÀt½ÞsªÜs³'çÖÀsƒÝsÔ tåÞs»Ñs›ßsúÎsê!‘ÞsêÁt½Þsçí ÖÀsÔ tåÞs²Òs»ÑsŸ³›ßsÔ t¬#±ÓÓs²Òs»Ñsê!ß'Ÿ³±é›ËÔsÓÓs²Òsß'Ÿ³þãsôÆsǸt±± é›íÕsËÔsÓÓsÆß'Üäs€ÛsþãsÀÖsôÆs¥¸tǸté›ü(âÖsíÕsËÔsí+Üäs BoundedBacktracker::create_cacheÁªÝs€ÛsþãsôÀÖs“¨¥¸tâÖsíÕsǸtÅíÏ×sôÆsÜäs%BoundedBacktracker::try_captures_iterÁƒèsªÝsìÉs€ÛsÁ&ýÅt�Γ¨ÀÖs•¥¸t¡$Ï×sâÖs¡Êsí†Ús’ÀtùÆtýÅtƒèsìÉsªÝsýÌ�Γ¨ö ¡Êsâ«Ï×sí†ÚsàÜsì¿t’ÀtùÆtƒèsìÉsýÌ�Îý ¡Êsâ«áÍsÊÜsàÜs†Ús�Át¢Ò׊Builder::add_emptyÁBuilder::add_unionÁBuilder::add_union_reverseÁÈÍsáÍsBuilder::set_utf8ÁNFA::is_reverseÁBuilder::set_reverseÁŸŒ׊Builder::finish_patternÁÉÉtàÉt StateID::ZEROÁÈÍsáÍs° ±‹�Œ¢Êt¸ÊtŸŒì‹Builder::start_patternÁñÊtÉÉtBuilder::clearÁ™ËtÈÍs± ±‹ýŒ�Œ¢ÊtŸŒÏŒì‹Builder::set_size_limitÁàËtñÊtBuilder::patchÁ‡Ìt™Ët±‹ýŒ�ŒÏŒ nfa::StateÁÕÌtä®àËtì‹Builder::add_matchÁýÌt‡ÌtýŒ‹µ¢ÏŒthompson::StateÁ¸Ít±ä®ÕÌtBuilder::add_failÁßÍtß'ýÌtÓÓs‹µ¢crate::nfa::thompson::CompilerÁžÎt¸ÍtÃ#±ä®¬#ËÔsBuilder::add_capture_endÁÉÎtß'ßÍt´…ÓÓs‹þãsÓ‹µ¢î)thompson::CompilerÁŠÏtžÎtߌ±Builder::add_capture_startÁÔÏtÉÎtíÕsß'Î ´…ËÔsÓÓsÆ€ÛsþãsÓ‹ÀÖs«ÐtŠÏt„"ߌBuilder::add_lookÁÙÐtÔÏtý‹âÖsíÕsËÔsí+´…¸Œ€ÛsþãsôÓ‹ÀÖs«Ðt“¨Builder::add_sparseÁÚÑtÙÐtߌÏ×sý‹âÖsííÕs¸Œ€ÛsÁ&ÀÖs•“¨Builder::add_rangeÁÎÒtÚÑtÏ×sâÖsý‹íÒ¸Œ“¨Ú!÷Ét·ÓtÎÒtÏ×sÌÊtíÒ׊àÉt÷Ét·ÓtáÍs¸ÊtÌÊt{ª ýÌÛÛsý ÈÍsáÍsŒÞ÷!˜©tø!ÌœtêáÈÍsáÍs° çáÈÍs± çá»Ñsçê!»Ñs´¯t÷ºtthompson::BuilderÁ¼H±ÓÓs»Ñsܺt÷ºt´¯tcrate::meta::RegexÁûÕt¼H±ËÔsÓÓsܺt´¯tcrate::nfa::thompson::StateÁ½Öt÷ºtãûÕt¼H´Ù±íÕsËÔsÓÓsÆ$crate::nfa::thompson::State::CaptureÁ„×t½Ötìܺt¶ÀÖs´ÙâÖsíÕsËÔsí+ÙåsState::CaptureÁâ×t„×tÃ#ÀÖs“¨´ÙÏ×sâÖsíÕs›çsí¥§tConfig::reverseÁÐØtâ×tÔ#ÙåsÄÀÖs•�ÎÉ»séèsÏ×sâÖs³´t¥§tíConfig::capturesÁ©ÙtÐØt›çsÙåsŪ Ä“¨ýÌ�ÎÉ»sÛÛs“¨Ú!Ï×s˜©t³´t¥§tü!í“ÚtÄ©ÙtŒÞ›çs¡$éèsª ÌœtýÌ�ÎÉ»sÛÛséès² ˜©táÍs³´tú!ŒÞ“ÚtÌœtÄúÎsÈÍsò›táÍs° regex_syntax::ErrorÁçúÎsê!Äò›tÀÜtÓÈÍsáÍsçÄúÎsÈÍs± ò›tÀÜtáÍs燱Ìsô NFA::statesÁ NFA::stateÁNFA::start_anchoredÁýÌœãÒësòësÈÍsáÍsùPatternID::LIMITÁàÝtðÝtÓìœãÒësòësüÈÍsáÍs° ºÀsùç NFA::new_manyÁÀÞtàÝt NFA::patternsÁÓìœãÒës«ÈÍs± ô²sºÀs¦¡ù�ýç ßtÀÞtðÙalphabet::UnitÁÓ쫳¾ßt¦¡ô²sºÀs�ýçê! ßtalphabet::Unit::eoiÁä®ðÙª+§àt«³¾ßt¦¡Ù)ô²s�ý State::DenseÁä®ðÙª+ùàt§àt°%«³– State::SparseÁÏát䮬#ùàtª+´…þãs´Ù÷Þ State::UnionÁ•âtÏátÉ#´…`þãsÀÖsBuilder::set_look_matcherÁÛât•âtÆ#÷Þ´ÙÙåsÐØt`´…Á&þãsôÀÖsConfig::look_matcherÁ“¨´ÙÃ#÷Þ„"›çsÙås«™t“ãtÛâtÏ#©ÙtÐØt` Config::utf8ÁÀÖs•“¨úãt“ãt›çsÙåsÅ«™t©ÙtÐØtÔ#±ÌsÿÝtýÌâät“¨Ú!úãt›çs¡$«™t±&©Ùt±ÌsðÝtÿÝtýÌâätòësáÍsÌàÜs±ÌsôÁÚsÞÚs †Úsâ«ÊÜs’Àt ¿sýÌ¡$ÕÛPikeVM::configÁutil::syntax::Config::utf8Á!PikeVM::which_overlapping_matchesÁÒësÈÍsáÍsžòësÚ…tûŽÍsàÜsœãÁÚs’â«Â$ªÜsÊÜsرs ¿sƒÝsÕÛùætŒçtÒësúÎsÈÍsáÍs° žòësüŽÍs œã½Þs‘ÞsªÜsÊÜs«ƒÝsÕÛú,åÞsرs ¿sùætœã±&úÎsÈÍs± Òës«ž§-›ßs‘Þs½ÞsªÜs³'ƒÝsÔ tåÞsرs̼»Ñs›ßsúÎsê!‘ÞsPikeVM::create_cacheÁáàsêÑs½ÞsÔ tåÞs̼Ÿ³²Òs»Ñs›ßsPikeVM::captures_iterÁàêtáàs×¢têÑsÔ t¬#±ÓÓs²ÒsŸ³»Ñsê!ß'̼‹-PikeVM::searchÁ¹ëtáàs¬-×¢têÑsàêté›±ËÔsÓÓs‚„tŸ³²Òsß'PikeVM::find_iterÁ¬ìt¹ët×¢tþãsôÆsé›±± íÕsËÔsÓÓsÆ‚„tß'PikeVM::capturesÁÜäs˜ít¬ìt€ÛsþãsÀÖsôÆsé›ü(âÖsíÕsËÔsí+‚„t¹PikeVM::reset_cacheÁþít˜ítÜäsªÝs€ÛsþãsôÀÖs“¨ôÆsâÖsíÕsýæsí1crate::hybrid::dfa::Config::unicode_word_boundaryÁêîtþítÜäsƒèsªÝs€ÛsÁ&ÀÖs•“¨¡Êsenable heuristic support foritÁ»èsâÖsýæsíÔïtÓ¿†Ús±ÌsêîtÞÚs’ÀtƒèsªÝsýÌ“¨š$¡Ês«çtÊðtÚ…t»èsýæs»-íÔïtÓ¿àÜs±ÌsÁÚsÞÚs†Úsâ«’ÀtƒèsýÌŽÍs¡ÊsŒçt«çtòësÊðt»èsÊ-áÍsÚ…tÓ¿º-!ä®ByteClasses::iterÁByteClasses::representativesÁByteClasses::elementsÁõýþû°%ÈÍsáÍsÔ t Unit::eoiÁˆótžótä®õýÔ%¿ótÈÍsáÍs° þûÔ t¬#€ôtˆót䮞ót¿ótõýÈÍs± þûáÍsÔ t€ôt„íÅ”öªtýÌç�tCaptures::extractÁœã¤«tCaptures::get_groupÁÈÍsáÍsàÜsCaptures::set_patternÁÀÞtCaptures::extract_bytesÁöªtç�tÅõtçõtœã¤«tGroupInfo::all_namesÁÈÍsáÍs° ÀÞtinterpolate moduleÁ±ötöªtÅõtGroupInfo::pattern_namesÁœã±&¤«t¦¡ÈÍs± ñötÔ tCaptures::iterÁ¡÷t±ötÀÞtGroupInfo::slot_lenÁÊ÷tñöt¦¡Ô tcrate::nfa::thompson::BuilderÁ•øt¡÷tGroupInfo::group_lenÁºøtÊ÷t¦¡Ù)ûÕtÔ t¬#Captures::group_lenÁîøt•øt±GroupInfo::slotsÁœùtºøtß'ûÕt5crate::nfa::thompson::pikevm::PikeVM::create_capturesÁáùtîøtÚ!±GroupInfo::slotÁŠútœùtß'´…„×tûÕtPikeVM::create_capturesÁ¾útáùtôÆsnfa::thompson::StateÁ±ŽûtŠútß'´…â×t„×t%crate::nfa::thompson::NFA::group_infoÁÅût¾útnfa::thompson::State::CaptureÁóûtôÆsÙåsŽûtâ×t´…Á&„×tÃ#thompson::NFA::group_infoÁ´ütÅûtCaptures::slotsÁêütóût›çsÙåsôÆsâ×tÔ#Àýt´ütCaptures::get_matchÁêýtêüt›çsÙåsÅÀýtíÅýÌ‘öt³þtêýt›çs¡$àÜsíÅç�týÌçõt‘öt³þtáÍsàÜs öÆmodule documentationÁöÆ”ÆÔÿtÔÿt”Æ ™öÆ �””ÆEáºé,¶ÍSearcher::into_captures_iterÁ¶·sdfa::regex::FindMatchesÁ—crate::dfa::regex::FindMatchesÁœãÒŽÍsSearcher::advanceÁÕÛ Searcher::into_half_matches_iterÁÄ€u¶Í¶·s¨Ï Searcher::newÁë€u—Ñ,Œ�uœãŽÍs ÕÛú,TryCapturesIter::infallibleÁÜ�uÄ€u¶Íç¶·s¨ÏSearcher::into_matches_iterÁ™‚uë€uœã±&TryMatchesIter::infallibleÁÜ‚uÜ�u¨Ï…Ÿƒu™‚u±ËTryHalfMatchesIter::infallibleÁÖƒuÜ‚uîîsÉ�ŸƒuằËÀ�už„uÒÖƒuîîsÉ�ằËÉŒ�u—ŽÍsÒÀ�už„uîîsÕÛÉ�³'©¤t©¤tSpinlocks Considered HarmfulÁ©¤tõ…uõ…uo±ä® LookSet::iterÁLookSet::availableÁ Look::StartÁÙ'Look::WordEndAsciiÁ‘ÚØ'Œ–ýÌLook::WordStartUnicodeÁLook::WordEndUnicodeÁ€(¤«tLook::StartCRLFÁÈÍsáÍs Look::EndCRLFÁLook::WordAsciiÁë'Look::WordEndHalfUnicodeÁ±LookMatcher::matches_setÁ´†uƆuLook::WordStartAsciiÁò†uŒ–­( ‡uý'¤«t Look::EndLFÁÈÍsáÍs° ߇uÿ‡uè'Look::WordStartHalfUnicodeÁ'crate::nfa::thompson::NFA::look_set_anyÁ̈uÙås´†uªˆuLook::WordUnicodeNegateÁõˆuò†uú' Look::StartLFÁ¤«t°‰uÈÍs± ߇uå'Look::WordEndHalfAsciiÁâ‰uNFA::look_set_anyÁ�ŠüuÔ t›çsÙåsLook::WordUnicodeÁÅŠuõˆu÷'ªˆuŒ( Look::EndÁòŠu°‰uâ'ý”Look::WordStartHalfAsciiÁLook::from_reprÁÇ‹uÔ t›çsÙåsÅ�ŠuLook::WordAsciiNegateÁû‹uÅŠuô'¦‹uä®â‰u‰(݆u­ŒuòŠuß'‘Úý”ýÌ»‡uÒŒuïŒuÔ t¬#›çs¡$Ç‹u‘ˆuª�uû‹uñ'¦‹u†(±ä®Ɔu݆u­ŒuÜ'‘Úý”š(Œ–ýÌ ‡uïŒu»‡uÿ‡uáÍs‘ˆuª�uî'ÒŒuƒ(±Ìsôõ…uâ«ÖÞ©¤tòëscrate::hybrid::regex::CacheÁPoolGuard::putÁ­àõ…u±ÌsÖÞòësü©¤t⫘�u¸�u­àıÌsõ…uÖÞ­©¤t⫘�u¼òës­à¸�u3é›Prefilter::from_hirs_prefixÁÄÙås †ƺt÷ºtãÕ¯sýÌPrefilter::newÁÈÍsáÍsPrefilter::from_hir_prefixÁregex-syntax::hir::literalÁregex_syntax::hir::literalÁ¼é››çsÄä‘uÙåsÅ †ƺtÕ¯s÷ºtýÌÈÍsáÍs° ²’uÑ’uð’ué›ü(›çs¡$Ùås�“uÄä‘u †¶ƺt÷ºtÕ¯sýÌÈÍs± ²’uÑ’uáÍs›çsð’u�“u$öž±)SmallIndex::MAXÁSmallIndex::newÁŸ³¦¡SmallIndex::new_uncheckedÁutil::primitivesÁñ�ž)§×sµ¢î)ÀÖs•µ•uöžŸ³É•ué•u‡–u§×sÙ¦¡Ù)ñ�ÀÖsµ¢öžµ•uÉ•ué•uŸ³¦¡‡–uñ�§×sÀÖsµ¢ Config::look_behindÁçÃ+Config::anchoredÁâ—u—…˜uçâ—u—…˜uç—Ñ,regex-syntax::ParserBuilderÁConfig::unicodeÁÄEhttps://docs.rs/regex-syntax/*/regex_syntax/struct.ParserBuilder.htmlÁhttps://docs.rs/regex-syntaxÁó˜uóùçÓ˜uÄÕ¯sregex_syntax::ParserBuilderÁŒ™uÖ™uóùçí+Ó˜uó˜uÕ¯sžšuÄŒ™uÖ™uóùñÕ¯sçžšuñà Œ×s…ÿsøÌs dense DFAsÁŽÍsdenseDFAÁâÒs"crate::dfa::dense::DFA::from_bytesÁà …ÿsŒ×søÌs¾›uŽÍs Ó›uâÒsæ›uà øÌs…ÿsŒ×s¾›uŽÍsÓ›uâÒsæ›uÌéès² ±ÌsôÁÚsÞÚs MatchErrorKind::GaveUpÁMatchErrorKind::HaystackTooLongÁ,hybrid::dfa::Config::starts_for_each_patternÁ†°sÒýÌøÌsŽÍsInput::set_anchoredÁInput::get_spanÁInput::get_anchoredÁÈÍsáÍsžÕÛÛÀÌ-Ú…tûÛÛsý MatchErrorKind::QuitÁÁÚs’³�uÀÞtÎ�uÞ-†°sÒÒÌÎsInput::set_spanÁŽÍs ÀžuØžuÈÍsáÍs° žÕÛú,#MatchErrorKind::UnsupportedAnchoredÁ½Ÿu³�uÜ-øÌsÀÞtëÌÎsøÌs Input::newÁŽ uÀžu¦¡ÈÍs± PatternSet::iterÁž§-Ú u½ŸuÙ-ÒÐsëÀÞtÌÎs̼°¡uŽ u¦¡PatternSet::try_insertÁÜ¡uÚ uà-áàsÒÐsëáº̼°¡uË´sª+¦¡Ù) Match::newÁ¼¢uãásáàsÜ¡uÒÐsÄÄsáºË´s̼‹-ª+HalfMatch::newÁ¥£u¼¢uäâs—áàs¬-ãás”ÅsÄÄsáºé,Ë´sª+Input::is_doneÁø£u¥£u‚„täâs—Ñ·sãás¨-”Ås³Áè·s2crate::dfa::dense::Config::starts_for_each_patternÁÄÄsInput::is_char_boundaryÁݤu‚„tø£u¹Çs—Ñ,Ñ·säâsª-”Ås³Áè·sdfa::dense::ConfigÁ°¥uÙås Input::endÁí¥uݤu¼‚„t¹Ÿæs¹ÇsÑ·s+dfa::dense::Config::starts_for_each_patternÁΦu³ÁØ-°¥uè·s›çsÙås Input::startÁñ¦uí¥u¼¤Ésú¹Ôït¹ÇsŸæs3crate::hybrid::dfa::Config::starts_for_each_patternÁ®§uΦu�Îéès›çsInput::haystackÁ¤És‡¨uñ¦u¼¶ýÙåsÅú¹Ôït±ÌsÞÚsŸæsò�uǨu®§uýÌ�ÎÛÛsÚ…téèsìžu¤És�©u‡¨uÛÀ›çs¡$ú¹Ú,ÔïtÁÚsÞÚs±ÌsÎ�uò�uǨu†°sýÌŽÍs�ÎÚ…tØžuìžu�©uáÍsÕÛÛÀÛÛsŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²·™£�ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²Í–š•š³ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²žŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ÍŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²žŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ÍŸg–š•šÄŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²·‘™£žŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²ÁÏŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²™$ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯²Config match_kind starts_for_each_pattern byte_classes size_limit BuilderconfigthompsonInternalBuilderuncompiled_nfa_ids nfa_to_dfa_id stackseenmatchednfaclassesdfaSparseTransitionIteritcurCacheexplicit_slotsexplicit_slot_len SlotsIter slots BuildError kind NotOnePass msgExceededSizeLimitlimitUnsupportedLooklookTooManyPatterns TooManyStates WordNFARemappermapidxmap IndexMapper stride2DFA start_map quitsetcache_capacity&assertion failed: !current.is_tagged()&$no quit in start without look-behind$assertion failed: id.is_match()startsstates states_to_id sparsesscratch_state_builder state_saver memory_usage_state clear_count bytes_searchedprogresstransno in-progress search to updateno in-progress search to finishSearchProgressstartatLazycacheLazyRefSavedToSaveidstateNonepreunicode_word_boundaryspecialize_start_statesskip_cache_capacity_checkminimum_cache_clear_countminimum_bytes_per_stateOverlappingStatematnext_match_indexrev_eoi Unsupported InsufficientStateIDCapacityerrInsufficientCacheCapacityminimumgivenUnsupportedAnchoredmodeQuitbyte CacheError LazyStateID LazyStateIDError attempted Regexforwardreverse0reverse search must match if forward search does02forward and reverse search must match same pattern20assertion failed: start.offset() <= end.offset()0 FindMatches reSyntaxpidFail Quadratic RetryQuadraticErrorRetryFailErroroffsetimppoolRegexIstratinfo RegexInfo RegexInfoI props props_union CapturesMatchescapsSplitfinderlastSplitNsplitspikevm backtrack onepasshybrid revhybrid capmatches utf8_empty autoprewhich_capturesnfa_size_limitonepass_size_limithybrid_cache_capacitydfa_size_limitdfa_state_limitline_terminator pool_capacity asthirInnerPrefilterprefixliteralsPre group_info prefilter À Corenfarevshould find a matchReverseAnchoredcoreJinternal error: entered unreachable code: ReverseAnchored always has a DFAJ ReverseSuffix Hinternal error: entered unreachable code: ReverseSuffix always has a DFAHginternal error: entered unreachable code: suffix match plus reverse match implies there must be a matchg ReverseInner preinnerGinternal error: entered unreachable code: ReverseInner always has a DFAGPikeVM PikeVMEngine PikeVMCache BoundedBacktrackerBoundedBacktrackerEngineBoundedBacktrackerCacheOnePass OnePassEngine OnePassCache Hybrid HybridEngine HybridCache DFAEngine (internal error: entered unreachable code( ReverseHybrid ReverseHybridEngineReverseHybridCache ReverseDFA ReverseDFAEnginevisited_capacityTryFindMatchesTryCapturesMatchesvisitedRestoreCaptureslotStepsidVisitedbitsetstrideMatch pattern_id UnionReverse alternates Union CaptureEnd group_index next CaptureStart LookSparse transitions ByteRange Empty start_pattern captures memory_states utf8 look_matcher shrinkImplicitAllCompilerbuilder utf8_state trie_state utf8_suffix parser ThompsonRef end Utf8Compiler target Utf8State compiled uncompiled Utf8NodeUtf8LastTransitionUnsupportedCapturesInvalidCaptureIndexindexCapturesFramechunksunionsparseStateChunksIteractiveUtf8BoundedMapversioncapacityUtf8BoundedEntrykeyval Utf8SuffixMap Utf8SuffixKey fromUtf8SuffixEntrySparseTransitionsDenseTransitions PatternIter _markercurr ActiveStates set slot_table SlotTable tableslots_per_stateslots_for_capturesExploreNextDupeold_idnew_idNextIterstate_idtidx NextInsert rangeslen partitions BothNewOld(start range must be less than usize::MAX( ByteClassIter iByteClassRepresentativescur_byteend_byte last_class ByteClassElementsclassByteClassElementRangeselementsrange ByteClassSet ByteSetbits ByteSetIter bByteSetRangeItera matchtoo few matching groupsCapturesPatternIternames GroupInfo GroupInfoInner slot_ranges name_to_index index_to_name memory_extra GroupInfoError Duplicate patternnameFirstMustBeUnnamed MissingGroups TooManyGroups GroupInfoPatternNamesGroupInfoAllNamespids current_pid $)assertion failed: !replacement.is_empty()) CaptureRef capNumberNamedSearcherinputlast_match_end["unexpected regex half find error: À5 to handle find errors, use 'try' or 'search' methods[Vunexpected regex find error: À5 to handle find errors, use 'try' or 'search' methodsVassertion failed: m.is_empty()TryHalfMatchesIter  HalfMatchesIterTryMatchesIter MatchesIter TryCapturesIter CapturesIter Z!unexpected regex captures error: À5 to handle find errors, use 'try' or 'search' methodsZdataWordEndHalfUnicodeWordStartHalfUnicodeWordEndHalfAsciiWordStartHalfAsciiWordEndUnicodeWordStartUnicode WordEndAscii WordStartAsciiWordUnicodeNegate WordUnicode WordAsciiNegate WordAscii EndCRLF StartCRLF EndLFStartLFEndStart LookSetIter LookMatcher linetermUnicodeWordBoundaryErrorxsince unicode-word-boundary, syntax and unicode-perl are all enabled, it is expected that try_is_word_character succeedsx¹Pool PoolGuard ï+regex: thread ID allocation space exhausted+ CacheLine ðñstacksowner owner_val òvalue AhoCorasick acMemchrMemchr2Memchr3MemmemTeddysearcher anchored_ac minimum_len Prefilter is_fastmax_needle_len SmallIndex invalid small indexSmallIndexErrorSmallIndexIterrnginvalid PatternID valuePatternIDError PatternIDIter WithPatternIDIteridsinvalid StateID value StateIDError StateIDIter WithStateIDIter look_behind anchoredCustomLineTerminatorLineCRLineLFTextWordByte NonWordByte multi_line dot_matches_new_linecrlf swap_greed ignore_whitespaceunicode nest_limit octalcase_insensitiveAlignAs_alignbytesSerializeErrorwhatDeserializeErrorStateID PatternID ArithmeticOverflow LabelMismatch expectedAlignmentMismatch alignment addressEndianMismatchfoundVersionMismatch InvalidUsize BufferTooSmallGenericStateBuilderEmpty* invalid span À for haystack of length À* HalfMatch spaninvalid match span PatternSet whichPatternSetInsertErrorPatternSetIterPatternYesNo LeftmostFirst MatchError HaystackTooLongGaveUp SparseSets set1set2 SparseSetIter Ž#»�Ì@Ž#º�Š$ºÂuÇÂuØÂuöÂu‰ÃušÃu¨ÃuµÃuÄÃuÚÃuóÃu‡Äu“ÄužÄu¬Äu¶ÄuÄÄuÎÄuéÄuòÄuüÄuˆÅu�ÅuµÅuÅÅuÑÅuâÅuíÅuþÅuˆÆu Æu¬ÆuÂÆuÍÆuãÆu÷Æu‚ÇuŒÇu›Çu¥Çu²ÇuÄÇuÒÇuÜÇuìÇuúÇu�Èu¼ÈuçÈu�ÉušÉu§ÉuºÉuÈÉuäÉuöÉu�Êu¡Êu¶ÊuÅÊuÑÊu÷Êu�Ëu²Ëu¾ËuÇËuÒËuÞËuìËuøËu…ÌuŽÌušÌu¥Ìu¯ÌuËÌuéÌu‰Íu©ÍuÇÍuÞÍuèÍuÿÍu�ÎuŸÎuÁÎuËÎuëÎuùÎu…ÏuŸÏuªÏuµÏuÀÏuÑÏuãÏuúÏuŠÐu–Ðu¤Ðu²ÐuéÐu¢ÑuÙÑuëÑuôÑu�Òu‹Òu–Òu¦ÒuÀÒuÕÒuâÒuìÒu÷Òu„Óu�Óu›Óu«Óu¼ÓuÈÓuÚÓuðÓuûÓu‡Ôu”ÔuŸÔu¬Ôu¹ÔuÆÔuÖÔuäÔuñÔu�Õu’Õu£Õu±ÕuÆÕuÛÕuôÕu�Öu¥Öu»ÖuÑÖuåÖuïÖuùÖuŽ×u›×uª×u´×uÅ×uÙ×uä×uñ×u‹Øu¡Øu¬ØuýØu‘ÙuàÙuÎÚuáÚuðÚu¾ÛuËÛuÞÛuðÛu‰Üu¨ÜuÆÜuÔÜuèÜuûÜuˆÝu›Ýu­Ýu½ÝuìÝu€ÞušÞu³ÞuÄÞuÛÞuòÞu‡ßu ßu®ßuÃßuÎßuÙßuãßuñßuþßu‹àu—àu¨àu»àuÌàuØàuéàuûàu†áu™áu¤áu±áuÃáuÓáußáuóáu‚âu–âu¡âu´âuÁâuÐâuÚâuéâu÷âuˆãu™ãu«ãu¸ãuÊãuÔãuçãuôãu„äu“äu¤äu³äuÌäuæäu€åuŒåu›åu§åu´åuÀåuÍåuãåuðåu…æu“æu¢æu¹æuÃæuÍæuáæuõæu€çu–çu®çuÅçu×çuåçuðçuƒèu�èužèu®èuºèuÐèuéèu÷èu†éu“éu éu¯éu¾éuÉéuÚéuçéuñéu‚êu�êu—êu¡êuÐêuäêuìêu‹ëušëu©ëuºëuÒëuÞëuûëuŠìu–ìu©ìu·ìuÂìuÔìuÜìuóìu�íuŸíu¹íuÅíuÕíuêíuüíu�îu¤îu·îuÌîuÜîuêîuõîuŽïu¢ïu¶ïuÒïuêïuõïu‡ðu�ðu¿ðuÐðuÚðuçðuóðu‚ñuŽñu£ñu…òuâòu‡óu óu°óuÆóuÛóuíóuƒôu–ôu÷ôu‚õu›õu¶õuÍõuæõuûõu’öu¥öuºöuÒöuäöuúöuŠ÷u˜÷u¨÷u´÷uÂ÷uÌ÷uØ÷uê÷uü÷u‹øuªøu©ùu­ùu¸ùuÈùuÌùuþùuŽúu’úu–úu£úu¯úu¿úuÃúuÏúuáúuêúu÷úu…ûu“ûu ûu¬ûu»ûuÍûußûuïûuýûu’üu£üu½üuÓüuèüuòüu�ýu¥ýu¹ýuÑýuÛýu÷ýuŠþuœþu²þuÄþuÓþuîþuûþuˆÿu“ÿu¢ÿu´ÿuÅÿuàÿuëÿuüÿu”€v¢€v³€v¿€vÖ€vä€vñ€vý€v’�v��v´�vÂ�vÒ�vë�vÿ�vŽ‚v¦‚v¶‚vÄ‚vÙ‚vå‚vû‚vŽƒv£ƒv±ƒvɃvúƒvŠ„v•„v®„v¿„vË„vç„vü„vŠ…v”…v�…v±…vÂ…vØ…vå…vö…v�†vŒ†v †v²†vÂÂIz]ºÆÂSrìf)~³çW¢µOTð±èL¯•6£@œªb{Sü½’=+>q“bðµ:)ÎöèBƒÈÕRB§6œpÆkäëŠ ñ< vî=m0!×ãñûR)žˆ—êÖi&Q“P�9rlI�.\³¦Ýû ¼@7a§M½‹Ñ@‡‹ñb2ŸAOŽªáèah¿WLÐÖ,0™ÎJ9! ™À÷œ—Ñ_Í­f‰ œdqhª–’"I K8´zá6ô‡î@\Þ?äûe¦1’ “qhµåÆ�įīʿk™òÐux_¤ ai¾f¡i…+V8¦Yõë¢æTÖÆ§„Ûî´=Ë 6"ã,$Ͻk¼Õ1ÿâè?Ázº(pÄF¦2÷Zo+Q�Oñèð ]F®ªÕ—;”v½ƒZ�ÌÃ_ýà�Š‹VW«GiIS§¶ß$?­ÜÒ0Y© \wDÿ{l”Æñ]!o´è©«ÍÄÊå=é€g$!Õ­l¢×9µ�„Îä`ÁWERönÇÚê4ûêß]eãÞ±¶úåËÇÊÛŸá œ)W14Ð$!h­¼mµ Lµ¦m‰ªPBï´Âcƒöâ ™ô”vv«²|©Hæ ’HZa÷�g —c0ÄaØÏ¶zj²é10‘ßÜÃÞ•ÉÔäÝ|4Y¹±à ìç^»ßÔýD?ÕÿNEž;n-¨�h\Љ 4[³ͶcþÔ*û"iáVÔ€å¹i–(ÈGhÍñÇýZ7ÇI8Gõî8# S/ crŸ± Wg`ÞrÂäMà¿™'\T*â¿EÎSèí¦È!þÍ)-íéYvŽÄ>Áá=ØôéÖhT&%?S9ÏîãËÚ”63”=s«6Ÿ�¯2~ó“?‡µeâ|1t,•eÅP3Œ„?GSÛq4ò�šrå}5Љ½|XÕÊÊ7Aké¹’›½å4ùB‘ ^°˜[à𠆆I|²d:pÀ+wó\P§(’^GÓ�!s 4'ƃþÏç÷b„ZT³½~. ,ûë½ÌßÐg‚d"°.²Â霱€¹é}}*hÍÈŒòbEsé"®ðÁˆ9ŠöL<9õ�ŠŸÑ¿¥×†%\C€IòøjhEý˜B£’VN}lXR¶Îœ`‰£È£ñâ'sš–¹jÃq¤…_.3éÌi¶y`Á­Ä¹o±ª €ç3?¢,©Ó+u0“Yg��%q¥ ü<‡•Ó-X`º%öO}¹ãûȉ“t4 ÆÕ¡²®ÄŠG 6k^ŒšØ±ÜR2õ?ާÂ>Dà¼Pg¤!¶£í°ˆÍëL±öyá÷JÄõà·[ûå-—éøÒ<˜Ž˜6ÞG4¼GGìɦi˜/¦¦¨€K¼Ï|A½üÏ´ä¡Éƒœˆú¡ l/!)iø 54F*ð™>„_u(�6ý†®Ž—"…¦�rÉóIÝ\Èç R|Þ_>ã{�ÑV ÂlŠt~roû8Ƭ¡qzPÄcÄØå XôöjʦàDØiN· �2r¤hÖÛM•ëñúÛœMÚ û»xbîåDÝŽÊ–æ‘ £Cì¡£×íq™{%³ó´Î23baŽí¤[k©„[Lõ'ÒÿÒ ÿNê\—L©ÏŒ¦C�ƒÃ“Ÿà‰~h!�˜´WVåòfœ)ªÿµxÕïæöÞ›K½è —V ¯H-ÇMNÕHì)Fã9¹ÌÓe(®Þ€ÂBŽ���êu€…—¬Ï¡uú>jVüã/�e“¨¥Òñk”©Á¥˜QlÙ¸P"ömi?–ÓÝÄ;ׂ¯³,_ÿ˜ìÎ5ã¤&“8£f6lÆø7¾{RS"Ü2g€ãVÉúf4@nÔ-Wñ‹oš„¼w³¨Õ:GV†ž1é—ùoï’óÒ¿t¥T|)æab­®ÛÏ;}²…åB2ç¥ÿ„3jdq˜!t$8üwüÂåE7±›û.Œ­Å,~€Ñìí™â »n|ÓŸ‰?)swñR>‘#áÏd˜Íe*tÇન*�žô±‡|Ò7{�ôS±-žÐþMF/žÝ}ùª†À¿?cÆ–¹…n¿!: ;„|£-øA™Eæ"œ¶ªá[êp`_§�È9Vkêì¸i$øš¥ú£íW T| 1’OÅŒ·~SÁÜ ‡8Ž™]…z½ ѧףcï3{-ÉŽiW™¬7ûÕèr…à†ØgŸ/T¦Ï¾¼ŽÃ¸ï ëuî”gݱýrrã"ȆJ»  ‹�æ{žö×C(þ’Áš%\d`D» £¡pæÐSuº"(þžÍƒc¸9Ï\ìÕ[>Ú òúW·×…©ÂùåÛÆÄ�õ\�BJ"µjûÒ.ãˆO ðÖg•�®<ÅókK]Uà–�3M¤Ä¬ªÑ¤{4õ‚+ >Eesöë›6–;G¹%a`—BxñOÃo; à·—È£X Xïš!?|®íëöú…ô-ògŠï¦8%—U¤ew HÿÍFAˆSQt ™p?:þþsÉÍ-ÈAmaTbýÓzZÚërœ#z=èòµŒ@ô:cKüy?,]¿:ôªÆEÇX±æÐ'ú÷Ì®¹V‹ÅR7øï™ôU§÷²Âòu2X{„ô�yÀ•Z¢¡‚§i_MÑs†Ò�0îVUó•œFÉÉAX1¾Í¯!ÀÓ\qYK]o†È��Ô;ËwÁ±k¶vüéûêAZ žÀáû b&H ðöp©.>È�¸�µõò!Phð†g©â¼¾à'oa� ögxÄ®ššêP[ט�-ÒYmÎ=ˆh¨δÙ襞 ü\ì9$ÿÂ@ÀÒ„W¡7ý;�Jš}ØõNÀ²ÎC’Ã!TÈE§åÔD uà ÄÜ…/”«º(vˆX¨}´´±ØE�ƒ}톤jÔ—‡M„ûQrÒ=¥”¯½•ά^Òºª¹ÅT &€ñEdmb,:t-ÂÈ,$Áo÷ÁkÿŒKzBá& ¬4(hSëÝ1 ¬cß TÚ$R–¨VîeaÖ–ž82i -5 Êg¤ê«eÿ¶‘…·\ÝKÏh0sâÙ®³„xø³ø,q隇¿Çš'z!–ˆtcÏ Æ¿™rܰF3n9òŒÓâ°ë“Ç1Ñ™�îÛy9°‡–ç& »B{è/VW¯%ß�”É„ÙSX@ù ÕÝo�Ú%<^0ÍÅBó~pÂ&“p$pHO6£ü#lËÌ �MöüÔ<}žÌƒTféÃ×o3Îî0/oþV‹xœÎ÷ƒ@e× æ¬“¶ì`ÔÉ‹³ Ñx¯h~Ú>µC†kË`;Çe ú‘¨<ÌyýƒD0\öˆ/Gpg¼ |8Y«è¸Ó”a±÷³ÚŽÔa sŒ#ƒ? ²Ò`§cD¢;U-„à5Uˆ4¸|æ4?òõ¢’¨ÿa‡*^ä‚p6gÁì«AB |0r¾üWì«BËoÒ\~t²¯¤VH%õuÅõ>‰âÉ] k¿ô‡�‘êÛô¬9Ï춈e%âýêtU {»qX‹¿oø}B¹‘Î-åxç2gB±Ö}“ÁÑ?>¿§uËߎΟ’õgM)®BÞ�²Æ²m hKëˆ"X¥$ô3ìEÊ^$è´F÷—U”“Î#©µ r+îzSÆèQ5(ÙŠõBVæ!-¯ž{'5à,¨HïÆ†ºM«v /Í?z»®‹šª&5ÜØ²-"pÞ2�Wd2ßÄDv?˜·§ïI4l`îcÃ|ûãQÙï–—ªø‰XãXxIüÊ"a1èpˆs}\KÛ<·9�‰l~·®œ,4¶;¼é è¤ÑŸ)l(ÀK�úuLRyi讲˜)JŠ�þ çÃÜ¥°@?oKÚIõq 2bæ©çƒÑ5¥ü•KÏßQL³WºÓ´¤üJ}0Ä œ�g.|¤�1j½ é�\y£ñÎðòEŠEÞo D�[>ôK/T;$áðríö‚§ßà`m<µ—ë"Ù#Ÿ‡ ¨O‡“!õÐH`P«BtKáÐÕÚ~dg-G^jy^‘”þïß' ”"B¹/Ge¹4Ž«8ü¾Õ«W»¨u«V)¡Õ?ëñËãÞ‹½­–Ïè÷„2·²4ÚKXDÛ-|ÕèaʘyèsƒÒ ?o·®"ÖfÈL_+z)IB}GÍ Æ6ÙŠ=}ärÌ;€þ']%$ C> «lZ¡%ü‘]ÈíQï»ÂÜH(3ÒÛSËès5c E1DiЉ¡@;úö+·Êj<@UçóÅ%™¢ÇÓ… Ƕºø0ŠÄ•²ÔZgnB£Þc›ø°åhWåÑÇó¤'‡žH£sBn²æR ìï@脾¢Û"1ÜËí¢ÙË¿BlÚÊÂ?¯LћŊѤ»ŸÊ…¹DÅËé*–®�i$3íFd»,)ßïE«-¿ƒ‘ßkFü;5JIéQÓH:P`Ì~U:�m¿Ð&‹P‰(Õ¬:¿3wäÏÈù¹¹ûó`5SoâØÈæ{bi×Ú”}›"ͦCŒ¥¹+ûDOsøÝÕOÇŒ Ä VÉ®®$ëÝ\DÔ#Jô'4ìG;»;vÛï+˜^NZJ!ý—ÈÒ9H´Ïe¡,‹D"bß„v¶v]fò$öðÒlHŸ÷‡Á .JØz¯Ü¬ÔaÄÌÎèäR÷9k¡Ñ«Ö™›÷[Ñúõª„XL.`xPØ¡NÿÜ´óöB‚sÎîþ¾Ûº‰ÄÒÌRd~Rûا—"�áÚ:uR{â`ê5–ί |ˆhwÛ0w¬LÔ÷”J ÅAMtž‡c Zs‚3¦Úñø®V³D �ö&ƒ†ÂÆ�ì¼ÒÍIçÒi·ŸÂáËP×SÝ´õ/z;T8‡ÚÊ€4GX¶SPލ<ËØ°-H-6iYfO:ÿÙr,=—«F& i7eoà<ý]ù¤>8<Îh@oÎÒ¼QŸëÖB³ŠÈy´ZââËœQäoæ.ì>5IÕ¦]VnSZì�²›%˜›ÂIöoµ§cb%3xõI7u K? è'‹‘Pó§ß¾T"½åzÛiæl¤~ FÊ–ËN´rpà Sfi¹8e0ôøº´jµÑYz˽ŽÄŠ*'•<ڥŒ½Å7""S={“QåÓ“ëƒ÷e•hÎÚjá¦TÛ M1ìø Í`Ñ/Û•±ëÌPœP ŒªS€ìE� $ßÙ�`õ{6íqÖ)¡»;+.³+ש9üUqqÉžà¤ø¿á«<„¨Ê³—ÿ p­e~]cWà)fÜÿ9»Ã¢Å\ rxp� j�?'U¹¯n�ª®º˜Jßé:é¢K0q{Itð¦å�Øö|¦A�ß¼o0jËÁËã#’4ea 5Φ´]þ§Ër)’²NÊÝø<éc2ÝmYvçÇ‹¨dFˆÏ Å…ºó²öÒZÃÛ8š½9%$oQÓ—ì�¾)¶§î“ëaÀ%v'ïGíЄ­tO¬W”µ ¯ì¶ŒªaJ ‡’Œ]~CÛ=öªLD†Ùƒ�+hö! =Oc*ðuõHD:b‹X7^¥/©C…Õ#R�Gd�ЧB”W˹Ô7s3³v‰%ÖEú¨5À‰úR^yé ¬ò{ä�BiJÆÒlE©çw­è×(óLÐt»ØîgD¡Â‡»‹¼,¬Qo £ûLóùËj •8©z&^êh«Pç}ˆañ:¹Ô�Ê®Ï\x¥ϧû©B©˜.…(ñç·¡Dçà4ãIõ^Új™ €¸ˆ7šoö˜ÒõG¬º5ê ÷q\Ë–ÊÈ ®ðPyªV"�w@N�o«°µ&@è>’èÀìĉôMŸ.¿ªÿ‘JÃÙ©<w³,HMaa?.Ë^Kƒy°Mîf·'Õú~8ð›cÎÙ½«2åh~.~7z§�í̽„¾¨[°aïJ‘•.´¶Œ¡J¬Xy»Þ�¹+½Ò Fñ€ãá®–V¤Ä’cÕÌa &o; 'Ã՗ʳ 9 mlj/¡Q‚–•úÎÛÒµ-ÞúSÕ‘´?l§­,rÍ^º¼í±·ÑZ¯;x†ãcíÚʃî·)_hO €Zi2n¡þ…ã’ØPl›ŠŽ¸‚”I1þ·RE™›”Šp:CöCêÙÖN:,’îâÑ€iänÜ=MŒûlGþ†>ø¢6[O?šÀB¥S¤q´L‰Ç=ÕòUÏOóT…3Þ KsÁCm�çϱõ«~EK+käòqžøP5iJÚ“>']Éê·ó:óÛ„‚WJ¤Á`�Ë:�©ížÛ’_a. øÛ²ŸŽ~;ã*¶¿¾[šåèCßã¥t1$¯ß‰£Ý~é�çå9%KŸng‰³ößèÂ5þNO‘­ŠnJP›åŒ~>~™ ÈY#ý)Ox‘z]#ü{Ý£u°Cþצ{ÿSY6N¦TašÌ~ÊòtÖ›7ñûn× ‘çfY>`C‘7?ê™k¯½ÜX€œ´xì;(%6ÿðð>ó¤‚$Iè&8¨— ^|ËŠT%’ˆø€Uôº„äNf•˜ú±³`kVÜàcÍL ;6žL$öÖ¦kT €|ÂF5å eèz{å÷–=ƒúOnÛ†»Ø ÿ´] :FEÜ;’ÕȊ±+Ü“U']“^©Qº…ÂØ“I€Ýž³<û)¯ŸØ'®d?Â:à°Ë:hzÐRR¶E¾‘ ëäËá¹IU5¦·@ãF’÷’è’=B€Y¤nt"â‘?üL!òWbPdÎ�9)g®é-xݯ¹GûnSv¾ù�µ²ÐT5§6 ß)-×H\?Ò´gù™_Ù„Û@çHÑV½ÃÑðÏŒI*îÊ© � àøù~æxêý.¢ÿÌc²¹çsØå"oìÃ0ß®Tu–âFˆC§V2u8ÁgQâ(x^ò~Õí€\j Œ™é¯›S…�±»2ùm[´q°'•"¡šôµ3%âÞ3œÈ($R ÷*œè]ŸÞæUeWfU¿3í�}:¿*2|CI+üO•-J¶c/Zî¤å>qö|‰< ¯ôynµ¼à¸îQJ€6û(yòapØ[§x2¥|Šù ¾�°nxΔH­’縯Ôw‘²¸bH˜ZÿUÁï�O,b¯+G¨ ó˜k›«;î^Êsx•»7^°Èº‘~|ÞX³ÑÜńӟg’¶Îž OpåR+[*6+4Ò3×[ŸzÛ³Ó°il[Ã̽ÄúU”mëj�t*Ò,äÎ¨T ˜É"ÊPïërqÝà>çL©”B­›p«›�w¹N¸'ÏN¶a|R6ˆúx‡^�óSХ߽ty7zuÈ…{WEÝ"3¶Ì¤ïÆû Ý='…lá¢"­÷xè5å÷£x8£ñˆU*–²0îSyÀ¶—TWŽ[M€ç 7¢J*åY}º§¬«Òƈ¡ 8ÒñðLœ­ªÃ¡/B’xÔÒàÊìú×ÛÍêµ3o6×>ÕÊs[+GE螣ìÒQ9 _[FA~” T:¨m+IƒYÒ(K5ì~¿/¶/ðDó#lžÐŽo xÝŽæU¥Qä9™´WÑíUº*ëÔª6«]óûÝFû"ýc^°jïë-býÇ&“‰Öœ/8õ¹Àø‘p7­™®0·ÖÚÿQ+üà®kËØÙ¡ùªTÏ”ÚÂ\ì¢?Å6#/ÞùàÿÒ[uM?¥»—X'VòëE+Id*Ñ/8 ½@Ì{ôJe yLH¨Ö´êÅ'3Ê�…wä„Rz>½ɲòÑ©*×¶ài°¢<RþŠ9|˜ãÞé-à!ñlqhKí�Ü'¢=ìû·ÀŸ£¤IÁ«o† aGÔtm¦åñ5°Ì0B‚α©06vˆgF�„$ø´æÑ³œ&þº�\'Ž…,ìØg3'g•ˆ7ævÿO� b[hŽn7Ï´Ò!¶ ·U è/ûe®‘±­ñ𳬸#~ïSÚÐøY¯W%ì1Fs/O«Ž]”dÚ­iÏöëÙ3Q§© nš-Fœ@P¹·Z$;Û€ä êuB3ÏÅ·ØŒ•£��ýZ¾:å6ï·e�Eô�Ö[™>}ÑÇFqÍ¢RxË¿Q¤¿îêa±_TÄ™u7l™ô`›Lž#æúP›Ñß‘±€Òr£›nçGÑŠcø)uü¸ÖÌɰBåpXÌ Akôu ÍÔÚ˜ebü¥Ó º|š_‘äåáqkP|«9¶l5ƒâ)x „‹çÞìXñ—PE€V»x/!HÜ�”ØØä¸¿Œ¹á K$É59$c˜ p¸œ¦,¼‹•J§³ìÓëñ1w²‹^ÛÃݲ˜Øà1dÍ“ŽpÛ~“«d f¡.|Ö‰•+RÛ¼TÞ�Ï¿Vq>v;°S³Ù•l>H± ‰³!]`kJÓ×>'{ô[¡=$—=Ïõÿ¹w´-Ε›¢©:ùsÛÎoWŸ“¦`\­GnP‡_*&3NB¼×l¢ÙÔÓ„h—ÄJù.@¹hC¥4�]ñ­æïi/°sq%„›™Ü1fÃ+: û�µ³ eÅ:ÑבúŸ(w’ñÉ„7W6Þχš¯:ñt8Ê-îÿ_Ðòa›m}1Þº[.Žfn°ù¾ëÞÂOÆ…ø+ZU[s�úü‰õ¹y¬N£§¤Dæhå×~™ÃÉ~š™‹OÞ•#>¼‰å'ÞºÓÙ«Fá±7�^¼û9Í Þ˜T×ÜÒ„~ÚÂ.å¾;Å„ê“ÿ£Â©Ñ 4€¨yü5S o3Šá<È>f°V»ÖÁ¦bù4Æ^¸ÍG0Þ*§rnŽÌàÉt�¹°ÇòhíFU°’Œh,É$p³í%Øiü+N£>ØL ;€Ï~¶°÷þ¡3t,kÜJ—£Bn¶àÉêÖË@:w)<ÂRòíåÎfèùYbK�~‡îfÆæZ“®v=Có«½²6v2qx•‹Ìdý½×˜ ‘-ö¯ë(wøè¿ñ<·‚Ý“r�§W)‘ú¥ÙYmÉjª?™÷ ^¥\Êkí²aØg[>¡µó çIUþ©{‰_8‘²ùOw£ž“/A‚@ôb&'Z6ËQŒ;#DêÇ®)³íAhùðåvX–MÁUQµ¦Nzç²cy2§ûd‡y,8”+¿) æ@;25öo£K“fA[ä+‰Ge¢‰pÁøä–yÍ4s&í3àçÍÛ”ÊîF_|+ú­ZÁSJÆ ˆêMLCKjZsøŽ@¶¦!Z'¾Ô¬yU2€×ð¡ß±OkªÔN $O¨¡aÛ…3¢WŸx‰Þ"ÛNvq”ÝŠA|½‹õ ñìÅùº×cuÐær_½Ã%{ä7¯Íj*Yöj[Í®PBôað1œ~ZÑ‚¼ŠvÍïË9Ì›P+›\bU®xzýðÎ^_—…€tsZfïó€2ˆèÅ4X�¦S”,Œ•D•¾Q®¬Ï€˜Ã�Ê¥ž��µõÛ©‰iaJÀŸëSC>R÷1S7»óŽÂÚ›ñ]}q_Zg»ZÎ�ä~R³��6Æõ·±ÑÆ*²jƒU4â¸AœZÉlû!lØ4Óúì2ÎGz¯tDbïh.óêd¸³Jå|ÚòNïÈý�?»‘Q)™wœøŽW®‚S›f1ZõQ›ÆŠôì-¯„ræÕ¯4  k³ÆåÞ» 8?(¶Ôen/Ãc3ŒæÜ92¨…5NJMŒ�óŠ(ƒg_³ÝÐÏõZʺ9kœûH— Â��Áeoô 7Ôf~±wëù™V¬¿‹{já”ÁÁ`}_;‘Ùö!)¢pGhŶTÖ 0k¦¨}HJ£s*Ûã½:ƒq¶LþVP�ß xScrß-ØX"Jdö1k½žqìk r”*b[ðÐSh’7Ý8ð¹f95fŘ‹—©K¾Ì©!žkËpF”!Î*¢Åq!q=ÀÌÜLØR[öŒAï´¡Ý8åpýý‚滘ù¤� ýÿÉ7Þ�¦­°ÕŠå€ _X0ƒ Ëm»×V. q%óãŽìè£ÝÈsDSÓ%«É$×»ðÚºÞm?ዾ@K�âù:Öç@7_“ܹq†�*+Ça¬ÑVp·=Ý@f»ù‰]^}ÐKU§D[—$¢[¿F‘< ‘í¢ú…íÕyZ׬Cv@ñ´cí(¯ËúQ3/ÿ’�9žÞ72Èžù÷M ò|lÜ;˜²Ã¬ñ]a±†ä~þøÕÏ„kØE“'�ÚF)­ºë½t¥ã¼²ãJœÎjŠÇ/2¾£M§¡a¡¦Áu¸ŽƒÍ¿Ð"÷/.Ú�?ß¹�%ˆxu§*µõ/›·>ŽzzFc²Žúmè¬ú‚NЏyq’\à ýsÕ±‘Þ˜²YÊ)*£±1å¨,ÎîËbg½6R"¦†R¿&œ|¹äB|ãOoPß2VÈWß!¨Îù ކ;WàdMˆ…*PÜîÞ”©tÀé·âTBÜŽ`Ng—¼žÓ Ééf-zQòJy½hµƒjš·b…„Ek�ñûæPz//Ký‘ñŠ–8`!{ ÚL”DÝóÝ/ÊÝØ`"ÆCVhJAUÍÇK^k ÙãÇÁk'ãS¹L7dÔҞʼn%$BzS«·¼è„¿ÙÍ7¬&áTùk>¡ pïñLT{ïì–ªf&|š<ÿÖm|�JèÝÊ5™Ñx ­€Á†OQ¨‰o» ‡wáÜ„œB¯³xøØ®@ÆÀ iµ�özÞµ€VNŽbZ’7Uü˜^†�,dhË—Abnz‹ȼ;K ¼Le&�Çýñ_¶ÿÆaiݶ¦?ÈJe3èäü©žh‡�#‚L@%ü‘¬1ÖgOد¼€¨ƒIÞ-ë)!XYZhAhgå�h[•¹ÿ‹„^ñ§ºÄùÈé³Ð$ Þ¬êQ£¤ .±A:¬ç; �X$(bBÐ@J%;>ÁßxãúØZ¼�}Za~ u,ƒ¼Qˆ,t\ÿ?/¨ˆ>“.£Ëí8þK>yto*§§u8†k Ez�vÚ�ZžŸ|ÜÁ˜üd �z¢MTŒùrW:ý]uJþ¦hÌ”êáýnU„¹Y¡F3TîÑóØ&ÙOàÚ7›BÅ/e¡ÙµS‹g®þo­ŽÅ�¨xHŽ/ÃŒmœ0¨ýº|×È­º$þHùøˆŠ)>o?@Gˆµ�Ö-½‡ë¯„`m`“mþ Ò�ïü¥†ÄÂes}Ïï À,Î9_Ü'þ,ì)òé… €™jL¡¦Ì{Óå†1ìlç¯bŸ6JÃL·¯T˜�Z¦\®_*¾ˆôûrÙTK .gY§1Ï€�%7·ßUÿD¾·ê“¤?^b—i<ÊI¾dÆÚß¤Ž óqS+ÄÞ‘Ñì©¿EFúoú$•!õ,½¿ï›Ãø~àÄz�ÔäFèZôÞ&/ÉŸEˆ‹�â'À t–jºÙï¢ë¸gîèìQ4�-u¿= û²8!d@9Yò³²¬%ñ¾¼Óé/qÚà´ë­Ú´âÅyãP±üÿ¬yh›¢ð12ܵ³üTÑϤ_zP9KQšÓ×{{[Á*uŒPhj–³Ô+@óúG&<�=+˨¿½¢#M�"�ße9' ñ'Co‚b{/¥þ‘ìOEXO-1hi¿HˆAzê¶[h1%pšÚÙ}ëÀ(øæøŠjÕmîù?^b(›Fåm§ø2‰bJwîu|ÉuM’éBÉÚ¨-�ÔVm´¯˜·ã{‚IOôû(}ÝÖÿÉ�µT]´3·`8`\Ö«1¤HMv„Õˆ žÉ"�Çâr«:&ÑB€‘[yl ¡mE]J¯��ǧOq§Âˬd˜G/ÅŠXÏ{gϺAã†G©4q²™¯o�þÐc*K…¿¯.À�‚ÞoÃC›jøýfWûöž­@§>®ÅtUÔ õ�B"ÌY¢GØ7Ú)cˆsOöö°§|ÑSíDo¹‰¤õ__p"ÛËf²œýÅHíÝXçÀÅ#ûü@à"òภ)Bë¯ñ -Ê>�–�4]y–ñ­¬|Ú$™¾~2´Þêw«‚Lâ°6b€B,¢ Ã\ëS„ts¿›ÆŽG±¹IÊq´mDæ;¦û_‰í‡íÑZä|*ÁÏ1¿ï@žAr¾c±[*¾ÿIy“Àa>ËðÁ¥ÝÀw¬¦!«fá[IˆØ&—»M7·mgº’ü°%Ñ£¿C0”Ç�Bô°—ËÂl,ó�*Üų,w)lmÿQñÏ«êÀ¶VdÕbf§ôC†Dn}�mßjÇ,,–nì°øaç²'„�ªö??€¢¬å€RsŠèCá{ñÛà#‚ñ+N�i3\w�9;Üå²_¡ Í7A«zvq2¼Ï–K޾v.�m×ÿfPµ¸˜t�¢@s‹Dø–½ËRÝÐû^OïnŠ$—aæù,pÃ!&ÓæLp�3¢¶œïšÑâE̯•\T,F¨÷߃¥E&Œ›06_”¢ƒìàdiAöÉfÑO¬r�ÝÃyvZyAí/±úay”"™›Ð"ÌŸ( H¸‰lÞõ¯Ý뺻a ßW!––SaÔµ0†É–oZ$Uy]ò±'Ø-OmA£åU ל�<©µkÇq†²h—óò4lm£²: +4@çðø‰~dNd¡&~Þ)Ë}Ú>:ˆR2 <­ˆ�Ía:�ª�ýVÂYáJ¼·Â«¾spé�™ÂÂù+ËϨþ)¦ë|(6ÊÙsJBëŒÆ#„æ¿•¿rŒ$è÷î‡?ÝÏ‘w•ŽÁøEBV¨DëÞoH-Ìùyȹ¨C(‚UW¬ªNž^ú 6wÍCºÕ„�vêb®)VZI3,Ùo»Ââ!OÕG øŽBuGÐê3 ÀÏ&T\É‚+²dôìDìŒì ü šPÁ­íIoZŠeíFÞ& 1NZ"Ë—>¦ðì[˜Ffk/˜Î&{�4ý÷�¶k5µ%¥í”‡|t›·æÛÀä"™Nª�4ä�ítJ<%Ÿ£‚üל<,këz_£i �™Pȉ2TU¦Þ:Í–}3ŠX–�%¯÷zÏÌqû]²S¿Ù¢—-è¿‚n3Ï,eU6ÛþH Žž{QúHnaÇNû–#—í ÍÉ ?8cm<õ¦Äî µ'î‘ñ)P›§#Å '˜É ÛÝAøB’º€®òŸßgÐŽCùV5c¾0ðßaæ°%Ì]À±>Pk$�;[ÎtÝ/�ùƒ¸Þ_n¶êíÖ”!<¿~w*RLìôîi6i’Î…µP4îß��Päœg®è•%\DTŒŽö�SDž±Î ñ”ÑÕæ9µý�s@v—ÞâÀÃn\÷°yæ„®—�Ç@7«r*·²sZ>¥Ìw&º3®¶ìY\h!ËÈç5ÉUkúFAû gvˆw¡o;(„ÿЊ.m³êÁ�¿{U$*�)a(•Åè‹4­rÎ-!66+„oWŽ+nU'çå2”Š? ¨—§ �²•ûuê�IÚâ½øÇôI3m»(û[`mÌ v+Õ’ÒDZ»ƒ„ŸHŠ R³Ü!¤©ÌôŒr¼г5;²Îâ´wŽ 8ÞÕÚ$5Ñá†ìzí â�Ž'M¸Ñòâs骃§ºúÝêb2Ç £T½%¥Ø„{¯²a+ÇX©RŽ¿°™‘y]±½ M"‚_Ü#�7;®ÿÆBw)Ð"Ö:èÍM‹©¼"Õ¬£ç¶Ž*%:ýÉiKO™âooU´ÝÒSøÅ£nÀŠ3¸œZ¨£~bÑ¥"Û XUl°L5ìØÎ.yömª!Ñ›Y�Ù@Í�‘/ŠDPOœŽÌË1ÿï¿Kc™Êâ^ê?.†\™©C”@Óÿ‚޵wŒs|u9LOì8ºIëÉŸ¼ÿpèx0yᲫïس£ò?Åvg�ôZ?Á†û©÷Ê4¨prîÓÚ®)Ço¹…ª�te g–ežo‰h:Nðy"'¨ï¦á+9±ÿÉ^ë{ 1<¡{ÙŒÌiMÈVy h ¾¾N˜¶¶y*8½^n ,!Ã$†Ø'ß^,œô*c2d@sØé¿"£«5™ù]ùMþ�ºBó¸íÅ–A’绑¡w¼ÖOq¤9øš6|„á×b�óPIÀ_�ÿõ™<éý<›ÚÉæ5~«G?\6n–þÁÔòóh²g‹ŸGS�À`tÜ¥ƒµêÁŠÊÝKLhïQš6¡ÄQV‡`îÚqz¹ywŒkÿ¹ ©¶*¼¤¶þ²(\•Ð=µ!­Û™œ¬NøsL½-<•îS6_O"BÜ–eþ @Å5£9G)œ˜DÓ^Þ!öŽN`³GÞgD M?¤emf2uè÷^ª�`(íS¶©Ø®ÊÌÔ$”<�éÝìò«R8D\–Ÿ>•p÷ð9` NMJÝ%HKN�cz¡ÀÙ×Tí8sf„ÈÈ�Czjïî5ÙˆÝÃì¤{Œ®üÓE($ F$×àþd¤4µðr¸º@IÑ6éËT˜·pÿ§‘U)4~ *ŸNwh#SʆðýCðÕ?˲ëwð¨¨ÄdN]œ@¨æ«z�Â�ƒlîéƒ#ä64N�#bÒÄŽG°îÝ=9lÙ §ŒWÑ–É*[ýzˆ¡[½X`¢âYEC|¾LJfF¤è®´;Éù@Ý‚B-‘3pùAÁiþ�ºŽÉÁ»H&¦8oÁ\¬p~ •ˆ ô×þnÚ«æƒjŒÝu'?5üo¯ÏðFÁ±¹ñQ÷ç!˜J¡§ÓÈáVw2ÔiG±qšiZ>[.ŠÓð°¨YíÄÜ|ZÎÖÍÑt WÕB£ð<`Õ à ‡on\rê¿—ÙÉatý¿äóŽ�GŸ„™a¹DcNŽLÕò�lS+~F9Çý_\¤bMÓA‘;>@'ÑÆ!%ºÂ‚”§]›øá’Svœ¨!] Ü‰/Õ¾üÌ<>¥[ø #xÔæJ_‘¹!.;ù„7°ƒ«ùÐ Äéý¯1W.ârQµ^w~pÄ_[&¢õ WIÁuüÇÔB¯\p)÷lï9§ÛðË:à k�©­ñÏëüqCšï9Z@5Ìê:z°. Ì8±àÑú äUÛä}¨Æ¨Ÿ½@I¾ëB6@’°7HâÀzõ#ê9wäÊöáyÝ�3ùÐüI7�”ôЮÖKDN-âàŒ8­¶ókbûóŽN­§©[˜nªý:öfפ§Ä9N)¿!pÎú¶ùÛ‹JSª7O3ÛÑ?ã/I,‚ÆtŠ£^Ž'}‡b=_‡ÚJ0…¤�á±Øcõ´N©�ð¯ª>O˜÷�hœ0í¬åile;½ªìÌ =𣑱] À`\­°ï•|.¿G঩�p%ß`Êú@¼TDêô΢ õß©²�:öÆ) 8�cŽ/µ“úD‘²Ðþ67Æ—÷ýüˆb£L-�± >3ÚS+î›$ŸŽ�³P°ñú¡âp‘×cüÎëÒ›$™JA.8Sȵšl1ì¦�‚—Ù£™aÆ�Z [e^‘þYNoûˆ%ÃÈ'§y6e oFk�Î÷ˆ�°•`8½ñ¨%¤á\ rá¡Q ¬…‘~v&S¢ù…[õWaAÇ…Tè!¸�wëùîJÀ Í–K•'7Cî¦afH÷e¢t^²“WñCBZ ôøi(`Ñà,jKs$s°c<( „@—ÜÃ9éCô½³ipÊv!Í~aÏÞ¯|‡Ëçi>Dþæ:2 Ë@�W&>yAýgyÁ ÊV)Í£NÒ£ë ¼gw$̧ i³‹°SZë3va66î|Ð=Åí…>ËšrÌ„É %÷¯N\žH-–yq|B½ÐoM…¿Ù¨Ê 1Žê¬C,¯Š –šßas­{!šÆ1 ¡LP°¾Ew~(� Àïé×EU¡_� ~z³h¶ýà$m†“úcZHÑÔÏgúi£vœýz\õÈD` *æbCû®€“¨0Êâ˜z¢§¬¯zk)Åf£­/àÞX¤›j![0" ßC.yK†\»8cçÚF{Jî¦Ýï÷N¼†ø'oŽ8huUF áé‡gÿÏeuO¯�šfO[-uf}lv\t·ÃRÌ«]ª‰4}øäXCï(Ò•3uˆ’VSn�Ø8žÏ}ôg½«A$ÿO«)¥ÝWÊ <0ͼ0&Öb‹¥aìÓhc(èzNO ¡Å±?k‰I ¥xt,=BÂŽøùh^‡ÙKHÀªI˜ #Ë*ÖÍ›Ô*L¦£¢Ø¢£NºàIŒŽ$"‘=A¤ÇeÂU¾|à¤ò4Ñùu~ãæ¦DŠ .„ãDµ¯£pµ*O8°C¼$1\ï¶GÞ„N;ìmóÑ·œlMÙ¬0QÚtå…¤Â�ö ˆþ¥ò …ϱ Zô9Ã}M•å(ÐJY$¡`*É7ZGÓã3#óù˜@_„œhè>ÆÝó—6 Bæ‘áWÎÂ`zïÝH ÈEãè¬ò¢. «I ó#�âô·�CP›”(pðS瑃eYJæn‹³úxfYµ¹£;U=¯ú›Ž¸wùÔŒãý FŒÊ·‚¥4:Qÿ¥®<)ì�•œÑˆ.u°ªœ‡ðÇIjë›øî‚ë ÃV’¼„/·� Ü ¨ÓUØ;ЗŜtΌƒwúuÝRüƼxu.^+ݹ!™ ëë3¨/×IˆK' ¢„�®½3›ÌVRÇëÙ&.¸~È’»º±5zLé.̳ŒPÕ‹œýwKWhMùÈÃ�™Þau�TA}`J©í$šO“f›þëËCsZ}ëGùhl9É)@W'úëÚÿÇ'Ì=ðNûk˜:üºlð#O£$—€j±CË +’lì(M^}ýž„Ç’º²ç íÍ] VÏ^k¹n=T’¥åb?úûÈ",¬bLe74T&žœccoB½7sZîI ˜‹Å,RìfÄ%É*òû¿¼óO½½Ñ›|mªª™Ö×ɘº‘/�÷LÔ¦L€Ÿš,TIÝÊ7îX0¡Eû(á¼ÿïi¸xhTaíQÊÜwÜp²XËè‰oB“^î =sˆX$Õ º‰‚G*]8]f˜ÐúEë�J¨M@NK é‘clà$X?yb®R.NÏÈ­&%†O›º@a÷¼ßÈø(l8x\¬Ê¸ ,ð4ü.ÍOÓ°§¬¨M.ü |+”ÎC¤º [IFS VKvñÉýÖ¯Ù Ÿ\{sy¯]¾«zöD¤ôùŒ‚øÙX`Κ·q�£Ož€Í�dd°�öÄEð%6>>å%­ej£ž[ïn&û’QLYÈOwoÇ­_Å~0#­“cþÑ1°o¢ò21Ï)ªmBÚÑ‚#1…á²­í�š ïêõ QÒzkŠ¿‡è#C I€(a“Öe±ˆ0®’Ÿ¨Äç0õ)ŸŒÐÍf�“¢W�ü3¼¹`/zí"òmùûŽÝ‹ÓéADUK‚[ ?à´xnñ†*`�Ñe�d¸r7f w]OÙNü`Åë¸��š¯S*{É'ŽA5v£¦Ôq¼×o©ðcí(þ_µHwïÅý66à转Ÿ½’ô•ÔáSá äÏß`Ý9ÁmU¾É4ªÊzÏä+)Y�m¼#žPµ ¬Á— 9d“.éÞòøìp ¬·�¤aY˜Ë çñç�ü!R”ÚVËØÓ'è”Ò¶Šn÷C*�f®ÉÜ¿c<|¯ŠÒôd£¦Œ¼øEùnµ*퓸õãÅnQÅ‹¼Ç—¡f€ßºÒc3Œ†iMÙhÙµâPJ=SL¡’aúä1R{�;AFSXêsœ{O;Ñ·@ÊTEо–‹æÑ]�» ƒ�÷Ã¥Ÿá‘éJ©§”—Ãxr±BwxCR‡#º¨Â3íéä´¬[¤v­%º?Œ—¤†#+ïL޳ÒbPð¾ÉåO%åÝs~×kZŠq—²ã;´ê�5šŸü–ÿ²‰‘5Çfò'ŒÚ‘�ÊÚ¸–â…{o‹Š¿Ó忌J@–¾Öq‹óT¨*4–±e{G´ŠûZÄ¿ym¨“ñ@ZI=³Ý3ãÛ_á~„zÏ×(S;êp‚.¸,¯®ío7ßv½Ix.³'+u©ÕqN?Ú;ß^�6H�n|XGÀÝëu¨‰iîõL[ǹô±ÅVúÚ• KëB¢T)ýø•¾±¾åÚÆ_48…Ì?ˆߎѹºO5²ì&í€ZM‰3èî¯U´j’M¦×a^œ/�ìLï2�„ø'qJÉ<²ºÝì?¯�¹æwÙMÉë½w=¿W^Yý±Õi®{¯AVùÌlƒY ¸‰»éS#m”<`óÉ`­/ug"äeåÌk¿_»Wn—žÑšQ %CZýö’Í>öÅÑy�ÂÌë @TO<0ò5^g�I}©¤Xl+�Ãgâ�@>eÄ-ÎL“äg³ƒ ^²��ÉUÚ&]€)‹¤ÖÖZ?Ìóñ]nº·±5`FAz p˜ æM}TôDb,þAçû/&—& KX±�ÕR$q|@#0ð±ßº±h¸ÕºQòbû8Hq�Ü1ñ ¾ÁJ~ðÊyU”Ê[(U!8ný�îÊÁµoÒŠ‹‚ÀΊ ƒé!à8+J è”z35- ˆú-ÿ ÇzX ¯5ÊC_‰¸Ã+Ãy|o7;ë»Гç/˜áydvÿÚ”ÅÙl±-¢&gôÀeóÁÎíÂYt+w¹ör†y>X3§H(ñA, z«ìê: f*&뼉A3$ z;/È-DͰÏýíuû¶½.`BüéWµ�ôL'i›Ä`f°CŸqÎ#Á!E…üÖ8=è­y‘¢iΤR­õSŸ°Ç\¬ <ÿ>œ"¯ Dçkl·­O–Æ�j™^ØÌ0ýÔöÅp4šïµq˜ Ÿ`Bbx‚v/E\1ñ•s*Ü–‹Ä§¢¡„ªmT[:_×HŠ#0Yaý�"Ëd-Äx—}Û�ÞZDz±YèOÔ_¼$b}!Í™’pÙpîxs;ûb(�Àä€BUäìhÍú?ÉöeÙ�M¸’õÑAÁQµÞKŒGt\NÅÈnÃyÿ`øÞëkÌ–TvjÀ¡ñ–š}�”s—ìñÇOò9 \¤dï2Pfj"ûüɧü{ŸýT2äôD¾~®ô�×{Ê2¨“‚®þÍjÎH$¦Ï.â#üf9@„Èm õØÑãÕT=\ëõe! 4²&täiDñ•$ž¶<¨¢°#ÅDežn¤Gà`'õˆ¥°Ç!DfµE‚`º{î¬þ{ú ÇF´/ÑÐ;ÐÕÛÑ5»*!b‡“³.xô¢ú� ¶|SKt4|’Ú4Ð’È÷»Ý fòÖ,!»õ¥œR¾b6áREhµÔ»ûªM9�˜Ü§4w´ÏZZº^°ƒ¹O9Rk.žñçÓf/ý¹™Äq\–¹QµjìMøÓqL#¯Íà+ÔX‚¥ZÜ›»=5xŽAãŠJØêOô\c¼ÃU«Ü¯Ô�¥d ôÿÕí»SÛ´ÛW¶—728tó3hŠ�¾Št§ÅÂlÜ,x™Ñ Ž­Çë”eáÖ ¶vÞŽ&»úc)_—/ÍâÝOø1ueÛgÁue‘±jêȆt³£õ;]<­}ºêÍÓ~f?òÄÉï Æ®Ñ˜îœÖÔä¹#‹=ð·�S +õàŠ¯©ˆ²ò'F.6Ë’ŽëÁ£¹²Àü€kDý„K }Ì&†›QáižÆÀs^Wÿ_áüJ Œ 5Œêú5ú¢ñà jR >¢=wòµûFÓ à‰‹¦HÁ£iAÂu2ñpÐ`yL ‚nèÞ¢›»xZÇ&@¦),3Ò6 št•Ö15òg S^üõóL{lØïdý*ÿ18³kÌh~!âÁ¤¬y�xö¹òBŠÚˆèF©´�Ö}Ç•´1D-õ³=¢0ð{ÛÏíÖÉg¨%Bç�j$›M:ùN‹é³Â ÑrV"D¸Ù›lð…LÇ:‰ÇþåëxöÏÅròu=×LäTûO¦IðBF QäB˜¦¢“ÒôçAô57—¹0wæ^ÍtÊþÝQ=|ÎgHDs�sIœÖýDË(ŒÓ4ó#Ôç`´”õ¦Çˆ2£!GËà…Rœù﯂œ7=…OðXò¨·`L3oKe(¬g‚‰ÒŽ“LQ‚˜ÌúKÏU)'4ˆ–ö½ó+IïpßyoõÊŸwˆåòã�:�eäîX …-§mzi˜G…ˆ>¹d#w‡ºy°ÀŽC4[µ€íÕÜìÍLÌÅÃúFRM‘ºíŒµéït) Ýí¸´G�ͪ&3�l±ÿÍ\rÌ‘|Ã9÷ñ#s€Í b ¢ T3&o]¤Àç™-¹-«_vS~&ú|3OŒFv:jrCô/Ofïëõ{ÆÖÏaÐ-‡Œ+³ ®UÑXy�Ž ïKãcš=>Æý_‚>/ä >´ÏW×@÷x>ér…øÞ‰hæ�jxÁ0'ù±–4†²ZÛÓÊLc¹*0LFÀëiÀWá¶>E”q�ßµî3Mp´HØ©ùs¿ÕÝÓdœê½5‘øY˜Ì�ýè¼h0¤ ­�š1@ŒŒ×Je+ëñö׃‡á±Oíc9sÉrõ©!¶ãqxh ‚ü¨d@ k½2¤}F‹&ö.þazž¹ §¿ÑØŽTíwË«{톪ëÍÍû14ʶ˅‰ïq—âyÙÃ8MO‹/TIÚsOBG—*öáY‡<„òýÑÜ›г[( ˜[2gŒ{L�ø›Å%%ýzŒ0²¤Ç“v;`—ò¯P÷2èñ‡�ÖKpn gN¤\Y¤&ÿåõ¿ˆ×�4oõVf´E ÄÀæS�àv!�Žâ¥¥F±V¹HoMh‚8Òž�kV(9C‹ÅÊŒxWY…u{|’”z­Hœþ™ÜÞì¤�—ŠOòÐÙ¤¼âˆë-m{¹„Y9Õr8P„H‘Ê ùÆo)qš�5ò1þíMÒû»l¾À÷˜ÓOÍsIK=Dv¬?Šb¢˜�q~…aSŸÕÄõ¨„˜äp„·²t’üLòx¨úg)hû2!HƪP)3«œ© lú˜ñ�z ;£ôMþÌql ¾ á�¼ÌÁÐ�2W3ø³¥BBžWw¿\,îDª¬2K�¸¤\ˆª¤ò–AÅ®MÊj³nÊB¿S:˜�çrg¤Ë,¥N]2¯Çàè$€®ÏÒ6õàÈ4lš»�,èËõ§T&³ë@?㲆Y¼‚‡§ÒчŒáO7±¡®4N+¡2sËEEr­õ%�]U\óªDìØüÕ�id ½€s½ÛÝÉDà>Œ8BPvüUœ]#•Õzá˜úúÈ-gMvê^§, Ç�ö·õâ¿•IPí?Úæ¯\o8k·¨û8ñC I�D”AP’z1¯mÝt˼KŒ1IŒûÓ6¬e¶·Ç%ù—|7¾Ô u5 QŒúKF¿ùøØå9 ×#ü!*J®Œ³Ý˜Cƒ¦&ó…á´ZØí:Uâïe;„Z}2—S¦€¯Ã",’Ýâ^¦~rX꣹>jþcðîÛtD4Ûnª´�ÂÇÑe%ž3÷à,-Ojƒ™ÆûÍL9€È.¹¦Õè¼ØÅB[-BÇÿßÄù»Õ9iªU¬�á%[]®d&’néíɉ2ÿ9ñÞÇ´¿ˆ± ¯¬”xëê¹Ð]i´ÐAèFß)…Ë#Æôk…á@GÕ× ÷‰ywüUuÑfœÊ_¦…¶y<ãÜæ�8Öü¼âK ã»Êî¤ç/EíÖf¹™©Üˆ<|y˜üì"×ÖËËj _áßÏÌf+ HŒü- ´RVó¹Ó‰>ÙË�?s@Å̰³tuÉžô…ÕGjœøÚ¼ ¤×4�ušÝðL°�Tùðä/Æ Èú’~®¯ã‰zë~´Òâ¹wj&WLg¤å‡£Uø‘±¬T�ëŽAè@öì)º[1š�Zî¼¼À–­ðÊaN†gæ?+=U�‰o7K/¿:FÁWÌ'3®OÊN©KÈjýªS×ÒÆ1d.£Ïq*‹”Í#)Öîk4NÐXzŽÚÂ*îg½× ÎÀˆî’=K*„8ï-ŒÖ�Ó“8ÁË;EËä ½Í ‡Ü!\Û"ð?EW…'XåÑÍ�Œ¡«Ý‘·Õ‰e£ÀF^Ëq »‹(‰Ç]/?§qä°c4¶6ÃEÖÁx6Õl>ƒn-ùÝéá¹FtúŒëüI•vë ¿QÖ�YæSegíÜv÷¹ß!3�.CŽ4ìmåLÍ;Ò2)7à†™ººBÁvdYÄ|¿‘9êXïô cs£®ÖÒ*'€òæ%À cÕê?áãóGZ S½/5Ó åѧx"¼8%âÌl)Pá«}c!–+•[rÍ|�SæŒ<8Ô–JFsèуV??sƒ|g(M¼k9ÒKqÑp\œ ËS»8º\*Q·;¢�qRçP¹{'2õš> kC“EfF¯ ö‰s:7@=¢Þ ]áÊmYqaÕ:.òÛGÊ®¤cz8Að»¤çê DŽd&âÀS!¹ÿb+q«¬^ÚÊ ;RݼýÊOâùóïK8̾MvdŸzm¿ìY…v‘o'æO² ÒòDH84ç›{娙aRäøXG˜–fx̸«Õi÷òKjW]L¿sß·Ñ` F�Öµß�Ã�mžÕòï͆Êne_Öq—€�yºm»”±KÄ Õº[Ò|¹,ù¯€l#i‰AMËy. *˜3íw….¤—{UMO†Ú…á4–öjvtó÷”�RÌD!So g‰ÃM þVå™]Hÿ€V1…$&€�©Â-ÕÔÐü1{ðA!‘ûÔFª7wÓD¸Ëµn“à³tw¯ã7kÒ¹~SŽ2ܨÃïSõ©ò+þÊèäÜ¿BŠ:ÅìèÈë�_ Ïë~í4ƒMú ÃævW—òp¹LhÉRh·ª ç2æeòQdÔxƒ­siúÒëØ•'›E$fXÚ€Q·Ð›¿ßt4r`6ÅPaUnÜqäÊvêY]ÊDÒ0> °<ÖçD3,ƒÉpŽ'ÈsßÇè›uÛšÍQ�Àª»4±*àyKAGg�žhñWÍá(m*½“NçKÞ žyò~ï§kó^fÎPR±‹ÛÏ÷¬H—[䛨J f¿4Ñ—û‘û¤ ¾Ep‰3YÀ0Aƒ•½�ŠÝ©ã0”=CÈu31äÇèSGZ «Ñ„DY÷¨h³ü€šœÔêŽTO~AýÈ|c>¢± å8•Dó¡(¢<ô~�ÃÍ@`Lðú’ìô ~°8Æ»DožýÞÍélê³öœPáÓ3Ÿ¯�nË’r›ç¤Zè½âÛBbv¶ý¹K£Ç0á¡™¦½XªÓ÷©�ÜWÊ•èy5;GóÄ“±á}àØ·‹‹—ëóft@Q†aC$Ìi· ì²P�‚®ºg«�–ŸÕ·™¬ ÚåÞ¦ æ–²Ï;ÜÅóàÏÓîTq[¶cëN'Ù;jfb-ÿDÿ™·àÒd|aÙ¨n^{rÝ>“.�³•úkŒ`¾VïŸ#ãiL9æ»ñ¢MEy°ïëíÏšoE×w˜KÍ[¢åë)¤'Wç1ŽÞÄ8_—ú‘= ]=À–@f\PòÐ)¼sÒ72¸;�ôw;p]J¾^':ÅÂHBÉ“ïXÉB�NÝ«–fq1A§îÃi^äzHZ¾öˆb˜˜AßýÞŸŠŠÒ(MI[„ÉlL ÌeMØbsj9œ�Ô�†‰C¾ÇÇ>±ô%Šä%UÕ…?¶øhÏ­°¦«DB/4†å[½š#¿-G¡kÜFp¡¸q&T[uí#0Ÿœé6FÈ“˜_ñfØVµ¯ mxöl¾‘÷éH¹­ç3™–ªÿ ³SØ5ØÊ³]ËGÔŒ¢e‘Lžl~t£8Ь¢¹«á°êñ Üÿv½æ`>‘û»Š÷ Ï¥»Š,¢ãXUàx Q½¸u }db µ qÊcÒ–x`íÞ|FËt˜k]ZŽ?uZ§ò qDß››(èçk¥Eh[QP�ÂÖt€Þ4ÖOõ�KÉtž§`×VKê\y‚0k!ÈuT ç†bJH6'¨ÂrK¨qÛl„EO»ùãvª°·^/Žà<|»8KD¦H*4Û}Ñ’Ú™¯Œ~„ÈœûÄÕ#ºS�÷iØXÒy,Ãvúl®3µÍà7°YüD­èÖé‚u¤Äï<7ÔÓ3oÝ+ëýëúŒ¥ßõ]> �¢ÂœQžg4ú¡®y"ìÌÏÜïà5¾óÛ¯âúÆ3Hë4§.Øœý&_e»Ä³&‡!,pÝ]Hî‡0\ ÷\ïÆKî’WEÅгäãÒ½ÍþœØ" ìμ•Èü‹'’¥_A²6]˸‡v3\5±Ð—Ž�WùZUz·“ÿ =®i¢÷N¯v'žKNw5šÓŒX¾V ïBØöÅÖ�Ãc2®ãœ8Œ:"(ÅTã��ØÐÍ FòÔ`†d™ëðØa�ÑÓs€YÛiþt›‚Çî ЎŦÿ°�Z�Ðӭ;ŒÒɵš÷¶^ia|³'YSš›y¶‘ó­ÍW…?•*´Ö„Î-‘r…\Ì¿üÒ ‡¾—£Î²%”ˆ<í’/xßÍ>âÙžº!Þ_8nƺH²'Ï­€L©³|³Ü�” 2ß0käx0¦i3v?TÃã�¼®¼¥-…‘¥�•/M1‡Ô�J,»¢r_8«Q<5Úì€,,¿b¿WkÕ¥HÆì�Uþ�wû(z¬hA?„+1µ®0=ÂÁ˜(Žß%JêÓž®”‰—–ÿ™kµUBÉ ×>×"ôšŸnÂgêþ€qwõ±Öµš¤'ð³ömËJW_Qç/ÔOKr¤t9¶*¸xÏX«ÕºçÓϨÚ!ÝR§PCTOiö›�ì2_pfˆ®8PMA-A¹Ph­(6*\áw-ú΀#fÚ„1~‘óqSJÚH�Ûr±"ÞCmigó‡Ë|½§Ðþ9©­5_‰çH(„|`ç8çzÉv%m‰‘ùn»#KµÍÿ‘·É£‰6„ç‹E«íóÿï±2Âc±;ʺ´ð…´Ç´ÌKUh¹ t° ަ·Œê½ÏÙWHןj©òõ¤ZìÉ0J‡ÔÊ¿‹8ñ½d ²†Œ/V(Í¡¼öjP‚˜š�wg þ­ž¿dÎvF­ÌHöm\|AÇÑm´{ð)gVh{Ó^^�PÈÿ¢®×lͽ#Ê<‰Ÿ/9šIõl_ò®@a-g Ý;aµÎ¦¡¸Ÿ‡T\0”Çò¶7_í•»«Gfš%Ò$äªu¹‹(sÿ=\hÈ7Ì‚7¼‰ý¯ ÉÅ=ÿWÃiÎ=…ÇIz³C•èÏ-ïç, þ9[j擼Üo)ä(›r‹s“‰Ýý¯…G3 )-²ï4jVê¢ËܨÇÎ2S¾ooâÞý4´ÀƒÉ¢Á€ù¤I·ÍP×=ᜊZê1?¤eÄ\£Œñ¯ˆm$AôO¾)þqÉöeHtv,î?1àØ·íÝœÞhPú¥Ùt´ø­KGˆê(¾ �cð]žk{ôijaàÚúé’±Úà}:,ñ8šÊMõ‹S"Õ6ÝS%$£¥äèIġ֎�Ä$¸ÓþZäôU™„å;´ö9±’tG¼¢¡zmæÕ¤>‹£ö×´8¢l˜˜ SÉX#†Du B ¢…V5'= Aâ|ñµƒè6ÛÑöqâ„èßFIg@^°ˆr'áFrî‹ß?*ìþ\¡)R�+Ñ…·>øå='ª!™,Ú5-r+¯pLYæX˜kfÿgSè»"f(]Ÿ¨Ni”ê¼×®«)=|!CNxšåÆ#rk\F¢*5p0ÁG ÃÿžíSŸaäëd»í=zÈmuCõF¤j± õ¦}³…_ú6È´™"wœlÈi0»”V%®X$WûvxªîÍ?$`ÏF \�%Ïß%¯&:1¨Ñ$䤧€ù�ç3Qè6K™Çw½,Ç™·>vÂEJ¶Ÿ£^õ©}©:rêÐOs!´+¯BÒ}hàq‚©­±uco.ŽuÖC¿D:Þ³} gø<ëζ€h ¹“_ºz®Y©Ho×LGíµÎá[¾·{ß ¥×¢¨1§ 3¯ðÖÐ].䱃»ƒ5;ä®šÏ c†¼–�‹’?À�BëâÛ»‡,ñaZªŒtXq†Ÿ4¸]Ù£JgèÈ'U!WënIÞ£zCÒŒîe›Òm'Í�UÝð¢ ÎåeëáHܵOýØB_ךa2 z™}kO…Ë5Õ¯¦Í¦ÛþC„ ÿttØ6ê\Øg|FðܳdH4 Ú�*-UÙZÉRKê€xIZ_Ÿ`aë)Ì;î$ÐáÄ íËzâÇþëA%_¹,бe¯’Ä-—Vé<:¥+Ñ'–«�##‚»>´þ¼>h‚Çעƛ–¢ŸPÝJ¬N›ü!¸AP`l8~ˆßrÆŽg M!±DCü0aÔ`@Qs²Z}“XÚYÿ΢X¡�Ðà‡š¬ìɬj©C"p0�[Ãÿ ÔÛš©,°òe\4\n¯�ÃÛ_�„‡qè–#dáCTßô {6ÿm¹9d}Ÿ %½ÓdÎYž;«�+ÿ-þF²¥Þ±ÆöQÙøFþ(µ%mnÎ+Wã|Ýró雟×OáçAR]–ά§‘˜'ÚTaåLZK=ß9)$W•àW¤¸ŸC/sèH±Øƒ4ÖËüU/§Ž¥YðïÿGf{3{—/´-d÷ê››*éÒ¢Ýpyy!æþ]ùù‡��5 „#?¾hÍR_ô8ù'{Ö û"ÂÛsÊùüqÊ 8‡‘Ç®'Â…ó:1Ø‚¸)ìû €4:‹°ç£O²*D8 ¯¸´ÏipâÙBúKå—ö;š\-CÚeí_kµw`íûx‹Žnt)%�v“SÆ€·é[+åQw›MïÚakÏóµGšN–ÈÝ{›ßÙuàøV¦æ®™1†Ë´]q­kWþƒz* ™Ã­23úÆÉì /€ ­Ë¼Qˆx~ ò¡Õc ;H¦÷øÙÍ×ðãHÊÚ�d؃å )Ë­7‘ž˜¾q˜ä‚_¾×ÊßW¾á ÞˆA÷[úØ#š‘Òë#íðÔÝN‹0ð/�UŸxpйºûjòÏqôÔX̯ÙùšïX{®¯¨çä§ðÂÑb¶ƒr^göXhœ¬6|3jXó8üAÕnжúir$sê`Ü(S«/P‚¿Ë²·’`mªlùæK5.e&®2 ÿ!r›N‰ÔÈg[ª„þŒ\H€Sæsžnp?Hø…h‘Ç0þbGƒ š:(Aã½é¶®½‡¥½§òHÿrEÿ)J£¡�@”ÞZÔÊyÇsRæ*wlÛo/–‰ðäPÜc0š|…‘¥Ô&|QÜef�¾¯++—«YÈp2m@èÑßêÅŠk²ÚØpbÌ&®vÕô šèÝþlÅ;}ƒõZÔP ð “ãÍéM{…ÐÖ~ÞLV‚ãÝ„^° ˆ¢u}ÇG_¼xX~‰ÅtHÿߡкÓÉhJݺþ€½¬YÉ¿Ï5ªZ”Èê=ñf.…œÒ» ¼²äÌõRÃ�ýNõÓ;U×VN¬;ž�gC”ß!\j -){«¹PÊd±_‹�tøÐÖÓ­ôè §NH>©š?‚hæí¦šsqÕž hW% 7-�)¥öEzœ¼åP»mZsí­�5‘Zõ-[cô€éA�]nP^Mb‘@òèÛŽ×Öæ?±‡‚e•"fð§þÇ›ÄÅ[3ý šÛŽ ¾§†í°w&ò8TKäx‘~ÇæŒŽ9œƒè� «œ•À´é c”‡xc)>',%J´hÃö�ú’$LãYE¶òæ�CLi£Ue4¥á¾EççÎ"¹ŽÁúÊôŸ·»RøRòs–~CêIû:RRsuÉ£yŠKr`zcÛü:MFßEÀȋ֊Ó.d,câÑ€kªaí?©¤§;‡á•¿Nðµ'A�O1änë6Týœ ;#´Væ üº8!Æž\�™•úLàõ\+ïÇJ¦ÁFÔ¼ëgÛLZÈKð�´¬sî@×üE:+Íñ‡$âqÞéûa-EÏí�]Šx7‚ÓfE7¨÷äUÑyVan9�ó^žYP§qU„,£b€Ÿ 0ó _Š º¢P…°¦±Ó�ªYKœ‡˜:$W>úmd&Éœøˆ;á2¨ß6b_íÂö@rRÒ¤˜¦ßrqÍ€ˆ›4onU"L9ƒÞBDºVü¦Tú<Gµ�‡ŠìTÅZ@ÅßÄûHÓ˜I|&`Ð?ÀÔ��´'`Éu•�ýÀ6ÿž6„noì€7›zgþ ©ä‹�žxit|¾g´/]0É/T{ÑÕˆJz¹´L3'ŠÁ�ÈÏFuÖ:žì) c6ë( ½Î�9ó–[ß"!å*½4då‡C|§ŽŒ)mlœF˜ õò<h”‘!ð¹{f®ÎíÿËo(åöÒeW¼ö7ßÏ C'¾>*£|H¦z/Mì_†~5WÓž¿{=ÓG´Á^Š… PðZ»ràåA€"0î–Üñ�(š+<¾pæÖµ_Ð Ì/EÊèA¤^BŌֱÈT3NiRNv`S%R «¡/ßÿ¡Dz�jW’BV`AÈ’™”>Á�Ú†ûu­[ë 75}úb*àœ^þ–õ‹&J®;Sßét-¬4ïÙÐD oo@[f_!1g% ÉãVæŠäÑÅØÔ0jP ªÞ®ð�QÝ{ô5F‡Á ¢`bûË9®cü™Ûå¤ëûûä+='³ûŠi�›èÑE ¸K˜kÑè2¾Y/á®R0Ü-v@Ðc.aûæ§t¿£šÞÉ18LσóT„n¾SÜ0øWÚ|’U·>Ñ~pv„|©±:£™M‘RZ—Áè¼Äû¢ ½BFÍÊÏ̵'…lÛû0–²_´é ?ÑËnj;OíSÁi’¥{ú¼™ˆà"»mÎòbÞ _åtóŒî¥Ü�eM—ˆðóø¹Á­ ›*Øì  Ñç‚�š£ñˆ9![(ÏyÇïú†ãÔ\Ï©iºÜêãÞK@«$Ä�]@mI€ŽòÜ ¡pùEÖ#ÝF6‚5EV·É‚«;Û±÷exe"8€5ì–´Vx)€Ü›·@{Ú�9ê#úé ùL0Âùr4'éuëFwã[?˾)ã¼ÒpÓÅãi˜†#qŠQ�á‚Ä'?Yú7øÛØnôäÖq-_´î‚T•×{’›9“&SX—Î=\%lü0ȶᣂ§JÞKÎ{ª:ú T:Kžzoýá»9`ÊëjZÎø�åzï¨?d ¥ÓtÝðê8¶1 ˆh©{ˆ-Û[ý¥§\—Ä Gv6¿°-ÊÍ|Þ¨5$fðâ=ëŽÂXóƒŠ*ôQ�+ä‰è�TŠwß\;.¸Á“'úÆZ®lïf”¤Òì—–ŒEÜ?�D¥¤vÙ!Ï.³ŸtøËtvýzÊ&öÞ×Ü(´™=šq§”õÙ¼'8÷„o÷^Ϋ¤ÆQJÏ~sy�ˆGÝå³rúкõ®}žz*…1 ž'x׊ñšã_¢Rˆ²åþÜ;[[ì pE±¾!þ‘YˆÛg{›Žô”ý;UÀÔ£ ƒMÌxé/rö�¡U‰IÔG:(Ê*RÎ_™d¤ @9ºâMã×Ê,-,›·„ [WÓе„I³x (Ê.‡¦P=9ß2#{GèÖ 8Ÿšƒ™t%…5eﳞ@âFï›~¼Ïrév¢qN§#R,›,ÒD� ¢7]MÄÌF(5©ÎÓ”'ž…c®ù̘ð4©ø¬ ¼=‹#àBwÔ+/«0m d:§W²65r#ˆ T×µáî¹â;„CHÏ“/Ñ—/·*q“nX8}Æëa…0I¯} %÷Þx›G0'ãŘ+œÓwª^a›îâ„ÔýÅ„ÎVíÈÉuS‰êõ¿F-i½ñ�™„®H´×þ~c—C­5Õ7Diž¾—7"¾*n@ÏOÊx>±õu5ø·ƒÂK‘RðûpÙXWŽµÖ ¬–ײ³´�¬•x¯ª´z»¨ã©ýA¼ùG×�ëÈÛ—^öÂrM3]¤øÀ2KL}šû�bà¡.RÄ|ë�d&³+©‘�• ¤ÈV2¯“±¨ŸŠy°`Ì7Žk'™G=!X�¬5n(#”¦×i¡”ˆ*8‚�÷c*ΆôŠDó÷çwÕÒÙœÌÔéöÖÙ �Ü ',ÒKÅtt/Êñ×*¨SfßÐþÈéòûçZ³6óÖ³ÂÇ‹‚—Û‘E4ì%†p¿W pMÛ_£ð ÉÓö&$u€ä͈Fà½rö3!.í.Äóš�ÍÍv¸/äÊBeÌÔ”*!ð†Y”sóAŽ,Cæø>©Ä�ýÇߢ¼�“kð¼õã OñÙ~•îKÏ2¸ýý l‹NòbfnÒÆˆf0‡½®dþÕt~)Nñ;ËåޏðL§úì¸lÑKòM÷½¢kR¡5|‰Xpñï¦ÔEžBgH/ß [¡:®—]Ãç�5i×eËuZ�À¿/†V~0ÒÀ;¸c‚ØÓí†!eæJîÑ’¤ ¹ÿ&xð½±°JOK¢Çüõ·çWbë�YJMßÖÔ.“Ú*tä1™Ú¿é.ôp{¶¹÷:”öûYÓ™l'#íE#ÎxÖÎq³ÖÔp"Ù¦-€Â¼w=j@.`=«™Ý®Htå3]Ñ.ËŒ4 - ÇNH3#�f/GÝë!ì2BQ¶ðáR ð-d\ûw‘{È™)vz¿æB�Ûõ³OŸ—ëù—HbMH'Ll`nYœYÏ»¯21Šž“MnT‡eŠÚ&îÍÌ¥½Ødl¬6­&´“èkZËð…gB�•Ç–Îó ¦$ì‰åmÔüEæò` t�‹�ÜmDæNvÔÈdx$­ïT�¿ÙvÎI(sô€XX‚gj[é`Š€¨A%•Ú&¨¸?ªÞ¶ùê1�ÐõsÎ?¤…Sž}Aÿ4Q´÷ùÖŠa* óÜKiEO­bõF ¼(Ø‹£^ãÄJñ?È4kÃôì¢e†z^»™�$FQ…R¦ é ¾R+ïa£¤fb]ÆöGÕ«߸\þ¯ÃW2ó¶‹}ÁwŠ¥{Ôê=Ø åU¡ÊkP×­U<§£dp2¯Î%@=i/ô™�_>UpP€¾€Ý}¸1»ÙïFžÑîþðØG¥�1;Ó„ü@ú³*2׌*˜ðsõ•»âB:Á¸¶Õ[wÿ¦Ð¼p2>EsžYÁ`Š' YhD¬�I…W±§�^ ®–$K7M3õ¬Øq,fc³òò‘ÊV6O5×n¨W£€Â„ØVŸ3&þG²ŒÝtÞƒ�¨Å)LòêSÍùz÷#/,ýÅ“;…–¬B2>nƒˆµŸC´JÙ€ÐÒÂgf–#F|Û�ãÃ>cMù› Žs¯K@E÷LOÛ±Ó§¬¬Ýmï³‹íÛóîawOì%�¥É¥i/V—™gÚÏùþ˜rt«òþb¾«$Î ¨—±†q ‘¼B~hŒ¾Ô[8«×i® 8½SvŠV[�Ö^Ò œàæ VŸŒ`ÒvuR(’ý?$§–L Î dG',É+¹˜"Ýi‘:ªu±c³¿Æ�?jÛ%<¤Áÿõó»™EÖÕ�aV6�I6 4µ'_‰†‚s’þ …†ƒç:&nÔ(ý-†ûà�òMiõÙ®éú#æ|0Ô>§aÿú¡95vX�u“ï™bæê­3p3Èÿ),”â(èÁ±6”DŒaz JŽ$ÅŽ£Gâ;t”æ“3K±??iÈÞœê뎔Ò?gx6ê¿Øœgp웞¤Gz!xÓ+ûãæÏDÛJª ¸ו¶ðOZ>Z…J3žj´¿5ä‹mÞ „@®�¸s@òâZpX­6‹i‚‡5ª§ƒAKcôþ†j3šOD°ðƒ$Ý‘G'€<‘IB2ê² �?|¸Õ˜4ôÊ?œ§¿�;Ë % ¢¼z­»S IõmXOM»ŽÍ’Ö­œàŠìÌÉ\`,*Ü Y £�þþr…D¿”MqýoCJàõ.U¶ázÆÉ�|; Ñ><Ÿ W�lÐL” qñUÂt¬š=ŒMN ôž·ÝäfšY ²gw@ÕBŽ‚‡„z-H皢”W½ÄÚ½QËUÎù#(P%¤Ï”E��ý˜Ì‡�« ¼Öà[CA>)ÄÖ‚¨…‡9Kö&pTLó™à牜,ÂÓ¹ö™H1büôÃàv=Ö´r<2ñÝèbÝœ´áAM×Gèf¼œÃ»û59Q?q©aèyJ®Xr/“ÔËu¡n¨ÉÚ ­–,5Ön<�µâz“À÷ïjÊ‘UÕ+lèP´OKCÙ7èLM¥5”®Lé Êž¥OŸA×>, Éìë|† ”¾fÚÂO½·$9j/lP£…QB„¼¤›ÏRzû#2wÊH ¬[*&ùÓCŸ¥�*Åô‘v³™Ù_h™�¢H‚ mr³ïy² ^Ï´A¢ïßyö´R†NPe*|¾IÊ?q/´l»$l4�‡ £_ó¦2ÕTX_©Õg‡vqþç§t¦yÊÁ½ùÉ�å÷VÜ(p£te¸�ëy«Û¡V"¥lÒÙI°—ª³}Û‡‘˜¦G: îDë_sÛ°§¤ wqpjFL×ä²Ì÷¸* –•Jtý°aŽ7Ž]€Rî§hICÒ¾}¥s7ž9öýÆùa.úá®azu¤”b”r.¿í ½lÌ®–ñ '°»y/Sdz=u­Õꢶ G:áTŒ'þ¹•’ôHˆ²Ê幋v¨[<®ž`b ~5�îÅ‘˜‚«sqV½Í¡ØêîvC}ØT{rK#9ìü£Ú©ƒ•J+âÁãÆ{„ CšoŒª>FJ·¿@!S¡pà˜…›Ëd"¨ã:’ážð””)|J¦7aCo¬r‰©´ÆûŸŒÈØÍ¦*}ˆ.mt…µ†.A Ñ¡È- D ß³XU@H5¢7E£¨RÿY%³,â✻jïQ¿e,})¹Hù¢(ÕìWd€íÍÛɵü?§ ×Ò•m:ì?…\y¦Þ"%Ô×BýB[!È™.{b_ÏR^%UluÝ`?š!ªñòµ�­«4 º$¶®ù˜ïƒ%Š÷âÎ’]îVFÿãè™døÓ»‹ˆ�Òb!}ð„é0(A>»Gà?�¼FüŒ‘Èüf—´ÇçlÉïöÕÂ÷*)Å›Ž)1À4¹%v%|°ÍéwÊ¿#h2lN îH�‡mTõ*gt­TÈ tÅ<æ’Ýæ‡çÆþþo¹Êôü)Žá:Õ[dF%Dq1vRn4^'És†­€±µyÙAÙƒg [ÇÍÅ›¤ý«;K�¿­6,�pv·‡p©K‰í€ï•'q™ù‡îR¨kyú°´+ÿH!ÑTÔtüÀ‡!&�»ðA¹~'ù9AöјX òc_K�Š ´mu Œ¬ rûÆ^Æø©·mCîJ×nòô�ÇÿÒGM˜QSU��Í›žå�¦„6ªúWi;¡¥�6ÂΡvmÍŒR›Ò¸€š cÈø‰®ëv½3¬³£,‹ìÓá‰ðöh#e=»ÒTü´P»R:î³7Â[>Dé2$zmr,[NgpzáÆyå$Ö‚ÏoÉÁÙ»n@Ÿ©Ï[?¨BÕ¦÷'fØúüP)ú ¼z-ªkø?23–·jpL0µ«í%»WQOú7–Œñ˜ŸLÌFÔÛ *ä‡ò}G×G‘­ÛÕÎÅ×Ël }¥;^!«M€Únç},?x#W à!¿r`íõ”XÈáw"‹"ƒTˆR†ŒSºH¸?—Î[朼nzW눞§× ÈilÕ1€G„EQÊjµùfžäùÖ{²1;‚ìK[꓎ç;Üè’õ,¿9VµÐÎLø°4odÃ�ˆu+zz·Ð©ˆãú7<'E"Y–~s“Ï-Fø†7 X£%ë`¢ peÐFšªBS“>«jœ.¨Ö•µÂ;N‰Zò:íÑ€Gô?6OôÕâBÛºñA´ßßÑZGGÝ�)6A°\ýö®—ùÎêìÏ;cÝV èI÷þ¿#j�gwøý]_¤öèo¼:æ�s¹!¹ú¾ÌÝ’¿S,ȈÀz³�Aw ”=æºê€9ndáØöEšo^›£¸‚bɤÓYws¯â.P^'Á:®!ô›DHî"•A FóAL2ùæ9)à7ŸÇ›Ôn9•c@Y¾Þ$02ªà4X¯PÖÚ.¿ÒäbiÈP¼/®½_ZƒéqðF*Ç¢6^ ÿFÅ÷/þM|õùW ×W+¶š ÊPɘw÷eá_�@f&0™^T“~T÷9–ë|i¿Üa†Ô®³@HªÄ.…‘ÏëâÆCZŽº„>¹ñÆü¸ÀÔ‚a¥à£�äµLdƒÄ.¿;úòòFSB?âø!è´„AÌbƒk½>¥ë6KtÙ#|¸†Ó±ïjÌ£J±Ý=h„½ªfq°´:·¦ŸU¼À(¬ëÚªõKóÎÒèQnäLc/µÙîié’ŸnD”¦ O u‡o‚íÀ¦õŸuÜ Qã¯ÿé¢?#Q{®ËdÈR^§'½H“d$¿šŒgŠí` �*¹w-¨m`ŠrPº +qéÒgBi …¥W\–)ኖ‡‘¥3—=3Sù¦F™ªOÜs÷ùè×8{Ž`Zˆ&pŽÉµ Ô¸ªŸ»Êq ¥Ú&¥Î¤Z€6ErmµëƒîË.Wñ/½ó­W�$—²3áÂÒX¼¥~ÀArð.ú£¬ýâ$ÉTw×·8ˆëeŒÕ\´âxÆ–äuBoG¤Ô݃@û�Po)E-õ¯§<±¤Â‘öã™”5 Â?ŒøtRØüÎK&×Ô)]6·°è+£X]1ÝÛ8¤“|j|â)•iÞð¡Ìv¾y"Ô ÿj©Šw;AZ÷ŒöO#櫤Tr¹õ"Ìü/\„«„Ö¨–W~‰T`*v‰!ÕÑÖˆb¨¾w·ñ”ÑSæ&)�reõG°h^»oxÐtüË�mI\íùŽ»ï¯`n›óÄüZHš”¦^AÂ3݃‚â;T«ºÑˆÞ•aº³"ÿ%áK‡¥.eà“lGpÅŠ¢F‰kŠ‚òb$KA­>ÄS|ò©�¼FÓ˜é×–yç’«/ò² §¨¶ ^x‹ŽÝù2C`÷œ q=;djì|Íc8µÓKD‘üšS©4 –@[æôê{Ù(Gõ¶s ø%«Žá‘ ·yi „‡Xô®,¨ceÿÿV˜Õ-ê0Ü^€™úîNØm‹'6f=éÑpm Z%³F‘wk½ËŽGŒ¹ï8PÙ‚m}2ùÓ|õÜmÚâû$ýZSjýpÄÎÓM Âäú·¦fÌ,ý“"!'TËÀúÞµá¦/?Ó–¥õfé6wRã.ƒÓál @%ÔüMгo‡ h‚)îb\Ãd ¢œ§¯ò³oi¾À m†©D�¯øD:ñÖn10(ûªÍ.ÈôÓüpAe>TÒPuÁÀ´«ŒÈ™gjj–{—4…ñ: ë!•Ÿ ,9aö`ÅÚªšg´±©­P0o€LL Nžþ™²bÑŒ��ŸTÞé5 éÎÝKK9Àؘ¶² 2—…¤f}¬v­MèÓæÃº".:•7Aqe×7¿�¨#uGˆŠ†úQ†—�—¿›u{‡öI®qö2é²Ò�ª'š Uo Œ51€×®"ÍM¯® ùj,�p°vžú/Ž—}§¥³ˆ›Ë‰v!ºüΧ ¦Î�?ÈŽ Ê÷�r¯Ûäú×:sUv7Ò{C·©xv”LT’ú!’0W–ï0óÝ5ž|aúÞUf1Ø¢¶w&ÓÎVKmÁüFë*Ë ŠûüE "ˆXy—!ÈÕŽ åFB|hdpÁëß×]»H/'ŠàÂphó~¿„r\ÍEª 9¨×®ÖÙÏ[ä#5à�Cê3þÄ £ºfåRrp}jø(iv*4>œÄ-�Цmˆ·—MÉ8´¤:‡!³ì[ýÛŽž£Nœ/__&å„Äî;mû îÎVC匙Qw•­E>Òä"�@²t»Ï¿RvïÃ)¶É'‚‹ñýË0ÍßÌéíÂ'«$€æ3ÁFԃϯb‡ C�ëöD®‘Þ-…”\‹†lŸÌºaî8sä/3¦¦ïs/³Ë¼ïT<>×ïÝ,eo-°6(µeÆG.2?Ò„ÇGIJg÷‰P<‘ ÊjïüÐOò}ùJ\1ýY{ã%‰›\HSþíá{ $ eõmŽ�ѾT¤n9w«E ô¡½Šî}„´Y^�ºoxåùŠRúÐ"Ò´ó! ýÄÜv†u2í÷FÒ�øÎ³.ecfKSÌ;Ÿ?vWt¹_’D©AqŒ;«ŠÙ¼„ ¦äxcg·�_'sÕl�% !×zƭî$¦»p(¢pµÀ¢Ý& †¢¿vãág/—¶ €D§µ�u_©@»3KŸ¢¼æû!´Êá©Ï‹²çöžº"÷‹ ÛmåL ô„}>‚B§Û!®D3×i@¶?Ã:rÜ'z—®¬ªz=§ÀòÐíþèîÉ„þ˜²Þš dH¦Q±4¹œw B{H%»0¬—H´ H©ÜŠʈð¤‡ý#º 7!ý ï 2„\`fGÚÖTTÚá¿›#J]ŠÍN»´‘"hÃò8;ØÎײª}'¶�™¯²¡,`9,‡;ð›¬ícÍ ï–šöÀÔ"²¸ª@2Kèë¿“@—½d@KÈÁ‰  p Ë€0äØö+²;á0w«wÒÚaϽ/äò_@„�Ÿpë£_ÁV#¿Ì(é³f—ÎÝ™Xŵ¥I ÛÙ~‹wNĦñ•0Éyˆ*€þ#+cí)°o{^v…¤Y iíã�§ò¸Uƒ¹joÑŠ½õfp¸ž~À†2fâüùîwŠï³¢ÕsËô-ÍYs�絎NTùM˜zÖ;Ýüð-YAòâm‡"»)�¸mZ.¿‡aõ Xð9·¬Š¶µ–‘:Ö}Ÿ#wØ�÷qVsÄ8LÓwqlã=1IJ^@R²Æâ 2³µùËXä+Á­.u?":Fbåä(Lá�Œ·„ãé|ÀÔÑ9¾•èSN3%NK½?Rû‘å÷„ˆ¹D±¨‡13T–‘Š�NŸRóFØ\›·fàx™�¦‰¯í˜‰G?‹Õ8È*l»�NR4NdTf°.#¢O=&f#„ÌÁ¢ÑêcKuÝÒ‹”Šãl—L9|‚õðò¾^00B sª§êö½½�×pSd¼1R]¨É%-\Qì ÐxÛ·.\¢síô8çâOeã?R µD´1ŽíP²­KÔÞÇ!ZܾØë=$âåevŒ&}6òåìj‹ãx´oßž‘^è÷òçùgÕ©öËÉú‘Z#¿£„W6ÞBn5@q»{9IËT¦M(¤yG�<’6Wað|~õ^ÚO³Å>Lɹö4áúA–Côå𥽿+lºV܈ žžõw Ž;±ÌÁ-,5DLÞDóˆn®�P`3“¯ú¾PÐHÒ2F€û“7„¹”h§$Õ†øçŠiì³Ö;`üP6È|6¢®g™õé“7Ó«dî’*B®CŸ1¥_ùQÙ,ÛeB :\h—"Ëm6bÖ¥ö‰nŸ ÛDnàû{j“þ–Т•Ÿs5&Ÿ`nWÌ¾ŽølK/xRIyW¢)_·¢$Ë«÷ ¯ÞX{A$+E=¾½qSm¡Hδ“©�&��ѧͮ’ë¼ôsÿöáj¸à}? ‰ÂþBß½ ,‡©kÅ• zG‡j{ÜÏÐ šæ�-W7®@é©OK{&°#»Áj{ë›ïGÆ;¿ˆî¿aBÌýGn70s�3É9нó©ïyòË×&Ž¢…âÙ78Œžä‚OK©×ɵ·ƒ!ó’§¥“ ý6$r�‡ˆö�Ï+α‘1þÕ\òïnˆ4 C¸¿‰ßåÆžûÀá/E¦ã],{þ—){VEà)&C™ûš‘ãä0Ñz4µ¸Caâ"y ¯°+ùê4s©Uh6��Íë*\�¡¶zt]ù‹‚yy7j�V"•ÄŸ*œF­11×pž~I\v‘„¥!Ù´´z‹³]Ë‹ýÏ6b�i@8έÁãÑ•¥€áûŽ… IÅX’êó“Ó-ùrmʘí 0¦øÓJãìa yÙ+£�¬ÆúBêï†s�lÀú—4·B†ß…ּȫ_Ä׆бæ{Í/J6Ø#¡aíÍ}„N„ Ú,ðz|šœƒç‹Û ÷è0ÒL-ïµ$>¾¡sTunük­*wÚ3¾a,Žj¦fI¬yÐþ¯{þžƒ1ÝÁâv+>¤ìð0h^Y�(%1À'KŒUXôÐr)�˜¢ðÉøµ—³,ÚúecfM,ÍæS^Ç:)“­&µJ#„ ? H òt'¹Â�ù;VôWNòHoúñûìªdÏjVN¨$-aê Oª.GNä(jóWÏ1þï¹�À-• ~/¤…îû6úù�x¼´*�ÿÛÞ-$¶„mœŠü$“‹s'M ³#íošÏ×îú•øV{tÝÁ†ì „t¡‘ “ïEhÕ™F½¯ÿG²à\|qnÊ·ÆWôLã8ˆíæ B®²„#ïXEî� ÀyóSåtÉ\å+üPU±9›q˜vÍÈÉ!&®*FÔgâ c`—¸u~ Tk»ÑŠã£Æº Q¼‹„ÿ¡ œ"ÊƹÞ#£Œ•ƒ_m«.êÊ^[…ÆÐ„;§çfÏ�ÞÒ�-�s\†Á½ |r—…ñdAø >6Oÿ…Iàÿ©ÒwPö“]ް~9iÐ…:üá½q¾ �¤ †=šéñ¥fB؃%ÄÝ]²Ù¾Br0'AH)(A~"ÎLÓý» ‚9DåÄ&»a/!íEt6’¾-p°[g uú³}®}œK~M\—³ëq3Äer¶™qh|ëÊþß2þ sê,º^B9¶1tê¹·TTv´ãXcyÜ“>c3ò/š�akVëTQ½n&åÞ.Ôü�¡bK”Óõô~ÊôvbAá` ehÙ1ôâ³ì¤ÓÐŽCZ»‰¸îîÅà$>nËÒ>s�ì3¦„=^.Ã�îv—;lÃ0sdO%Æ4˜{2�ÛP#"}ÊÍÌjmØÅˆBu ŠFPÒ@àHË̯¡Ó´*n…žvn\Â˧èÆþPªyQT[—¥G-µ0ØÇ2Râ7 7k Š6×Á*Þ˜¿MÐ÷Ô²LR=£Ñ-–þùwl…ŠÎzȱ…VÙØH‘1ž”©÷ú! ƒæ´hWÃȰ"SL8ìb Ds%âvWz�S�o^-e£tˆu+bW˜©òC …á¾ßø™(þ7GÌQx¶E:çpÝRU1-ä9“R�ÊÈM5=FqM 1žbSóR+˜r IV‰béaq®þ¹“<8ŽÓVì„<#ð~2lÂõ¹4  hcA1i¼‘Ÿ}%™�«”ôHj.LH©Â�¥¸ÖÊS¥K¤µ¥�n ­ßöïžyrPF*çANV²Ut’-oÊHçò9_ƒª=ùŽ›Ô ò"‚ì�ógPˆ¢ÐàÃ{eÀ$ŸY�çr�àJqwúV‘2ÇÌI\Ô&ÄaæCȧïÑ?T»ÿŒuÍâ¨j\/×Ö4V8D§è¼FM8$ãØ˜ÛJ÷áß“påjÐê z,ëk ëš‘oM¯¹÷ã~?ÉÓ%½ ª�bu¸ã #á#®ß؆d|€@—ü¸ô¹:uóba)¼LhldLo.C�Ío¡§1êdîVÅõá‰Í>ŒÐj¶»f¹ÙÑ’Ÿ3XˆüÍœ8ŸnÄ0×þšuðÙ>e9QÞ_ùœ#Õ¢�͸po¸çV\9C]¶ž A|”5¼…_É©þ ¿ïPkç¨ÔÞé§2R*Üâý±)íY\�͈¾FÂ!JäCf p›qSó£«ú{ Ò¬ÇT+ø/÷½ØÎÀc)üÕüOÐs3¿SÂJ°QÈo'›¼MLè/F«;ÖYõ Åù[#+€^Þ÷Wt¨lØÎ­oÜÆ Úç Û|7r&Úÿuè©LæÛÑY,*Òpð¹*»\ĽgéZÇT°hæ[³,ÝÛ°ØKòàlCéý p]kpŽ'�î !®BZÆy@2¿—²1‡f´kÝOuˆ� ÷”¤“ÖtCò�U?ÓÑLÝì}HÁ‹¨´·o%ƒdÆÿýlA¶�—�¹N+7yX[·ûÙ £2½°§Ò#ÏÍR6±"…Û hJ"TgÎù%œð§ÄoDlÂä¿ý,„·jkÒþÀÏã“Î}1ûS–-@Ý;K#Bä[Ÿ:Ðà •¦ý€“”SˆÚæ8˜Íc'alÊü‘H€_AyrµðN�ë~©z¶Î] _%,††MÆí~ÅÚ4ÙY_~Ðmg�x´;Úá×Í?Úo¨p™šé[oãQøå’ È)Ìð?‘¨¿L°ÙvšJ•c¹¤©Ÿ¬VâcŒ]Ʈ̩çEgwï:1GÙZ‚¼‹Æ!–÷*b(só©ÜìñU�‹05iމ�ChŒJÚYä ždÒ—} ֵȋ“õ¡ÖJd.búÅÆ¯¤ºÝ¨‚UíŒ1ÈlÊ )÷Y¶ZÜP(>«f¼86³KMD sùøðÜŽt ֛ɂ…犮ý’bäcßñ¸ÊN€Q§«ÿ»`vÐñÝÔÉq=£Ã\¨^Sø0)ûðYDÁ Ýë\±È=Uì\¼ØQÈ!�9p9 ½¤a†nÒJ ¨ãIÅc·¼ÀоuÜ�®SH‹f‡ƒ·ž’¨‰|`‹¹ sþqúÿæ‡zü® Õ#þ©Éê-Šß¢ìœïçðM4[½oV pðM$ño]z+ø‚ŽhÖy™´)—ËwHÜOp†f÷3ÑE´Ù"²d s©ÈÀ㗌Ն‰àÛÊM`ñÝe±ËÁMW{RðçyÉèŠv6¸r“©ÍÖ’0Dô±E Y9ɲh^òo¦ˆ÷w/ŸŸùC@äe¦X·r»ÌÂZ8ÃO/?¹Ù–×4�¤Ñ9¯(?cÕWÌ-°27ÅàªqLZLͯ™4t’É5ôåz_+^ŒQ8óU9ŽŒ;j|ŸïÜ^ÞÒM„Vµ­éØœo¦�þ×"b, Na<Û›Äï¨úkŽ(ãÖ&xöH{Æ{ °4µ‘þ¤RÍùÐ'Ë'ˉQçè ÕSWgÔët¾”¿uz€†ðc/ÂÐ6¤†�ñ"‹Ã~Îl1Ôcy„wFÏx´?—W½-„z]œØé($ph9DV¶†ô‰Úùž”˜¿‚pÿ¥Ë,Á È5ƒ™ý..|§T Ri„~ô ¹@ï¯bU'ÿžñ­û|Úú®aŸúº,›uz²³×¬7„(nì$ÿ ó5¾÷Y㺤æ–-g×VY3&¾ìîb¿º2ÕñIb‘:Ì+�„‹�Üæev!Z©tHrÎ]ñnÚ5ùæ\«ÍýñTi?”áù¿>âÿzàã&œ'!ÒýÒ|I,dÇêrô]­ùÑâÃÀ‡qì(ß®È˧\]æ X¸ÿ½¸/–t„{¡fËz\õ<‘7npç,óäý›�ì û^Ö˜C#kH`/¾R¦mSû�]°¶Úì�1oÎÙê“êµä®µs¢qº3\Ũ¶ëÏB€ :5¿žž›\¢c¼güEþ‚øñÖKº%ka>Ñ@å/M€S|Ie¡–$Õ˸à{JU#ÝÞ­rÒCù£€g4ÝeMñ¢ôK ÒÖ§¨’”�~Z(gŸ?Þy§7ÉÌFÊÞ»L‘Ãëûn›xÛ0Ët¤ú„ÿ= ®š|‰”V�¤s÷’ËȺw�²ÛO¯3Ú88ÚÕå(^ ôE$§þ Ãk%U<-,X¹ª¡L©STxÔÂj2á‡f@ÇûO‚Oè%”ý" ŸóAžV�ãì‚ x´4ii¢; §ÞÆt¡vÒMWÖP¾/r‚ÿ1ïä'‹YŠPG§óò §û¾²’•ÚQá ï¾¢yÝÒù óýæv:’Ú½pÅ*<9¯:jº²PÌJä%Å7Œ5‡W]2šò¼7€•ùFÏÅU_€fUƒ0oÕa[±n”Ó",vN¼âJ5kÖýî:Kïs„UÎiá}¨èÕ¾•÷}��>Žˆ¼#ç‘WÄåB®DR=[½@ÒØ`…ͽš×²+2»Ô Lxxcéâú÷x·'‰  LmWN=9–>×P·¯¤ñ剧ËAÑÉ�A\Ü�>´&ÞêÀéjç \#Îà fh¸¦·b0!ŽÕ\¹„GÍ� ø®È]ÀFã,Ï'Ñ2 Qk –~m)�§­+i>Õ¨V‚ÁŽÁú0ìnlj¤M"gÀ{™ÿ¯&ÚÐ�äX�š&›VéÍâzâIxzMk¤4�ŒT>Ý[²Uã)p«xɳI~2¿tÕ5s&ÿ½V:ã }]z¥'SÙ ~°½·R±¸¬ Û2\ì•j[ˆ­Ã_#Š(á{B va\E™:o³?m¶Â—'HŽg¹€>DS†#p²G†¸™ðÅѺ`M05aòh„èçëy[‰š®Ó%{ÎΫù€’zÏž)ËoTlëâgÑÞ—ŽÛUò¶«¸PýJU×ßWG:ö1óóahËvåß»Ãp¼gbÉn³YØï<ä;Ì�¿ ^£@0‘ù~Ž§Ò…Ý®¹ ÝXnä�lƒø2r®>«û ¨Î_�-Ê’Žm“*MÿjñˆšK ˆaÖY½Élz+…O<Í)ë7£s¹ÇFi— GáoÐ�¯©¯ î©Ï ß…ðZ‘Nˆ}${Û©óùy–ƒ3µ¦¹–Œé¤¦? ¨®3õ®$9ë�»ÃrK`>œû6Ðú—6¥ýºƒ³hø˜¿ñí]ã…@Ö*s§WK…ÔY•¡¾þ;Ï­ëÂbÀÖj–yÒýK+õ¬ ™HÂÁ‹³:úW÷ÄPaÁ(™Vç(ÍwV1Úlà)Ôí�&¤$&ž Pú¾jà ·�Hœ–á9,pVN `É«ÌÓt[ö/bØÐ×Á(µ#J¥R q¨):Ìú¤È÷W´-Àñò˽ֿ2®îàõÇ>¬�D×€W4MlW#¯yßOôr²^Ñ3;±_î©w–ŽÖ� ò­½’û'ßqApò´ó;ÞWÐ"~¯p£ûÛS620]üà„-³ø«-ÄE ê+õû2:WS�ìsh�éž×\6pw•Ò£¼_ÙF¼7u”èq¿N±ª^½è ƒÆ�âCůϬ+�›˜*¯/ŒZR •x¿&\P—¤LeM²B’‚;‘È|©óÍï�Z ¸.†[ºÊ¼,8XäÒrqŒ-;ÝÌø"H#èŒk"w> í×ûÿn‡É)LÙTR`ú«PÄì?†V¿¹ô™‹mŽâA7�8{窱Ù�¹ÎcµrÓ¸Aaìç×Òõìaçá0)ùþÃqȵ#‘A‚¨'¤yŒž-të Õ–M?5íÅk³Í-%ˆÌG¥Â­ƒ.^/3¸ì=ï¼yt® Åéy�p‰Höm¡N]5s*q9¦ ²‹uwù8¯’þ!6½;½TëGY|l6g ŠŽ/*™öúk>,ïL(•Üë™àûš~‡ÉážÿŒ'~éß�²�ãN‘£]à`,("¶5…½ÕÉí´y2+}1Ï™‡a’ËKÍ5¤fŒu™ÙÛvDt\\¢Ý 4™@ùÖ*ÖØG�æ“­¢ÌÖuT_w¬w …ˆâPÁaÝXLêˆrWˆ[þªó¶VéÞoÂÕÞ¯£PéîÆŽ®Ö–W´»C4 ôö5o ¶‡û¿§&¨‘õË/ ÑË̾Ê&ö8S²fEôö€Å�ä>‰mõ×…®~‘õ$ =iHùX·õ7ËGOüñÎÌæ@”y-þ"Ž÷v§ë€¸4GÛUÒÎf�¹%SLñE³di„[CÞ烘¶zzø¹è&T¶-‚07ä2Ó�ñ8ÿÑ-XŸI„º€ImúñÑd��.t «Ïá6˜\e u­ú™j]BBˆþ¿ µk²ò�άûâ>¦áÊ䋱ÜÈ?,àèMœ‰©Ç>sÚu‡–š·x�OÙÇj›táìÊ÷›Ør£åe愬<<�¤b{ƒ£}$™QD6 5ÿÃÖ ¿Ä½ê¬Ô{Ë/~ŕؗ‹1â;c· ~ym�@@‡ˆ>/w5�`s¤ŒÓ8�4>ÊÊ>²NJ€2ÍÀ ÓLo|.àH5m.Å¡“hJÊ(ëºpØÞ?û  æ^/J¸b�ç»lúW_ëch±ªÏË )\B„LMx'z<9ÖÌ(¡×¢–]~F“Õsîn ßèØ=M/¨›$º2ßþ\��K°3>ìÎ0NP œÌ4S¡´i°Úþ—£ZJEÿUGpSk©ÂvæÝMNM •×ð“¹ëç0}Tà¡Ú�Œ+{ÒÚKº‘þ™ÅÇõ!ŠRɆÿÄ^ÚÜwø§�ýîÖ>ÒxïK]Xú÷’” Єñ_WÚ£LÞ[[?ùš«ÏʹˆJe— -6¯yÅÔЧTA ÍßôZÚtâ†ì‘Ý(I‡ÔM5@ÇYñD…hÕ§RÇ©U·«4†*XŠ–·‘€€} ¥ }áÙZ‹Ûé÷óäNåŽ�Íus–zÛF3¡ÿÜZ4X�¡&<FÐkë8£Ûùv¿uìr%¾®¸ûàŠæ:@–¤FÂ�«í a¨É 0>s²õÃïãPÿ,iF†N›«)ˆÎ0§,>«–e(fö`¦" ôÒZ»ÙâôÆL�üùüñë O¤^ë4áÍ>ƒá„Yfâ'zЙ-á 9PFÔÛRÜ3¾Ý¸¶Šuñ9±‡ÆÎ‚±Äx j]rÜÎû¥�z´Ê…V¤v[arIÜ¢åªÌš2Ô7þC£ eQÖnŒgde–ûà’¶pÐScòŒ„M\ô™~(ÃL2ð€™±¡ï%´¹ C@8“­WrÓ:Æ8 øæÐñ5­É—€×Ê+<: ‰r„Ò_ÎßÔ{lA÷{�ëŠÊqI¨ìSdúZBòÈ=[•yîüQ~“S¢AyÛý‰¢pcQz\…êÈöïNê˜ÞøG?ǵ–�¥Ù’ÞP…ƒÜ†ŽFD:f…gjMNÂ*N�ýÉ™Òôn@IWᑊä¤*6 yqª×;#ïáã ÑÙv —^3 a‘O:©tLg^”¡´ƒöíZ|JïU­Ewµ”ÄÜØ'¯…Œh~µ®<!W ²Ô·—XeÎï£}ÏÿÍí€dü§�>K®’Aÿ´²†�¼œˆM5¼ÚâìQ‘4±Ç]Z`Ý Ô­ƒ0¥î�4Õtß°làÑ=n¾‡‰>5OTÍpsåv‚3;yPÔÈ×Û lqÒþõ�Ôð÷iU»m\ùäÏ<Ÿ©Þ>Ø{Ñíb-a,š¹�hW-[^>v‡^±ÚÕræ»–çºä"�©*ÛWY”÷, Ê8õµ}N®˜¤ç»¿¿”bîQ(ou†X y¶ÖÐV,lõœ“Æ3k2!ý×缓³"�ù’ÍIÝBFy[„)>¼ñºˆè=—–,Í[³ ² hÔ9¥nu]eéš'ú¨Šfš \pn’½¯vl ·é°ýúšóåæ„Ð¸`¯è´=¾ÎÆÖÅpIÔÝ7B˜ž�h†ž²ý”A§™ó=„ßôŽüFT®PS"Ükš‹@¢}®æ´zpÁð×VŠ9W´˜s‘ÿ mà\ãò0Å� ¯gz†}9¼V4³ókœ†b¶%g²×«O@ #R‘ot(äÙI0Šþ¸‚—ÑÌãÕΩ æžçcŒ�iÓ@¡Ž ò¥jfòD±¤ �†Q éw7è} §®èÖGÀa|6üÚ ß uÈR“EÅ»÷tª=œ2²Uœ­¿ª ?¶dIuUŒ<…®Gk{*ó§8ÆšÖxµ;í;™žßcZ9 8ö*Å„w]õ‡ˆ«å³yÕ#‘ÖZÊŸ:9ˆÛ¿´sÿ,àýcÓ\kíœÃìùÙ±€“·äEñU²$4qqÙ4 ¯ÅOtÀ¿6­eÁ€W^h]AÛÕ§s‡áœÐf3Ã×dèu(k‚)Ý6kÆM¦‘ƒEn¹õ ¨AÿŸeäi/9Ôô'XHòay‚i¶ÿêYI~+ü’µˆj“<ÍŠr~»…/—g�ž7Aè jâý}Ä/2Vý_¤¡U …]’÷é?ü£©Ë"_€™˜�†W\Zþ ½Š4üôúô;}Ëêg|çmˆTLX#-/� (VÇÐÌ©gÀ6½Ð`¼L©OÞ#ÿcìú…á~ø¬¨¢YÊû2"gÆ´«9eŒ”“šf— “ŸOT0¢ü^pÏ›GáÁõkdyh÷»OOjÍÎèp•žG¯×ŽÇK:|ÂLÁ(•†ªÞëY]†F°Ce­ÿËŠdí·æÔù0üÞª}cÂÒ½š+p¯Iõ©…‘/ARv‰ÊÇ’ @JŒì‰Y¼ŸÅbÄygà^*Ö¢I‚z©ÈìŠÒ–¢êS•°Ô¿öÅÅ€•·+(QÌá^ øÃÊ^­N‚#ö„¡ø0Ù[ãþˆü¬:Üdô“¤©¸olÓê�è9ü»ô4O™ÛG1²so4ídˆ\­ƒRÍT9ƒžc³hlý„çKišƒ#e©.€›Ù寶 a¥¤Aï“áz¤ãOØ6tH쬄%î¸2ÃC#ì9»D”âÜÞÌ ˆs:‰˜÷Þ§‹Iƒ �­@4Ý?ɳ=§QSG´M¢±8ð ¸EÆ㙩wž ?êj%óÊÓ­Pm³�þWAË—UpôÉ9a 〺ۚ�Mž´Ê«’·�+(+¡ ²œ$å,ªÎy?BŸ÷VÌ’Z½ú”rkV ÙÄ�pFE…0¾ºInÍðÿþUñ÷z2¶ˆV}÷=¯‘GWÅd� ª/ÚÞôf-Ы2Ù&àÄ QB@X—~ÔMêÕ%‹C6k¹7{ûFK N±!F¨Ò~ùbç#A倗áiÓ7ÿ–I0£è RPn¼€kkÍm2&à–@ÆÆ“‘‹-¹øõð¸ïñ@Æ#Î6n£&ŽóK¡UŽÅ��£¿„î"×ée—½\âÇŽF–ª¢p(:øc¾t‹ôï§Ö²Ð’÷ûrçBæj¢‚‡%ÀˆaGoÇ�5 –ßIëðHE G«tëRΧúyÔwÁ[ƒÏ7ï8÷_Ô{p¯cB‹ÎæWðÖÛ#ÓŒš�fÏ{(¸(>™bÒ„p*„.—k�8s§®äIÄò�ÄWQÍ :ÕËxYôVYŸÌgßK¥bIdzòþ¾×¼ø¯šŠ>×BTsë?ÖSõnBÂbG"r¤”qì7�© =ŽkÁ3BÝÀ\ë” ›þ]"¯©ÃŽHÝŸÿšãÏ¥~ÿÜåZ�|qíÌH-Pä�ÖñŠýX#[_ë1vi(dˆi JýFgôº;ZÖ°f¸“!¢noWñ‹‹þÕrõüv]õ·ýozÜ’šè>žJgXw î`Cþ%ÕçŸ{«ñ „Ï&`\/pðpï .0¿Í]toÛwç7“ã´*ýs(ÚÏã[nJŠ�Zâ> ñzwîj±OCM_OƒÂâgÄž³ÌHLTÕÐè×ïBES2ä½8O‰¤ ½öñ~¬yb¢íÝ]—¿¢¢Áò¯Þ4¿Än2�&B DzD.*p¬õ.Øy8†ù¾|‹Oë“_¼$‰ÆÚ§²Uö½‚3`` ï�™1W2j¶Mõ.� 52ô/TŽ8ôd‡Ìš5ªX¬)rWÑJ�˘®\ùù-P^Õw+Üw�ÎuÒÙ] œüÃE…–Ž’õƒ£Q,# �ìŸz_39ïkxj¸I»w�9Ú� è8Yź×&Ö‘ñ GšÂÍô‘Và`ƒ²ÈjÑ+ÿf�µ ”~/<0$€„¢êvú¡õ,ß+­eï¦?Ý?QþLz<8/æ^í†1ð û½H~ãIp.30$ú>2ûû€“ˆZnRÿ�–NχéÜžf˜ça»| 2xÌ\Ô ‹ÃòÞ»œ?”ªú»:­;]ü,€—:Ù›[Þ„$÷‹m> FJ›ÿK Â*:¯Ò;KŸålÔ"Ú¦³éÂêùË ® DºÂÐÇx¤îÈ>ØßßnÒÔíb­mŸÄ‰š;uçЕ+x†iÅ(dÚ+úO_XxNéF’®à9ŽkÑαf4ó¸¾0ls¶ÓY튎|¾ €t1‚×}¥å¨ _ý~ȹ]stòç7è ù¬¾“÷Ác»[ÀCšÂ—†änIIÿõx󭪞Ùß΋eƒ¢“ÅÝPiÑ×-—“ö¥ðA‹¯wæ³Q�;$`ºº Ór¦Ï¬n‚i®ÈÅw®†Øqw-‘4ª†FÅ}�R…¾þ|7¸ÓÕ]ÑãÊ?;;¼ª¦ §'ëÝepS‘´? �  vÍâGè’+ªƒùX(Ú>1¹8ø‰ö… �Jac"äk;‰y4ĸ{´²*7ÓœdÜ(ÖbššuŒW,>?+CþâCÂu‹ãY3ÏÕW¦JåenC4¶jÅyü5�[Û쳤³ [}?GÕêKée¦“m0sOúFoÝq?úNƒ0rSñ,ò…µà»PÙ‰êLòX‘ÙTzÁqïAã®'ÒAã.J!oÏÐ2ˆnãÓæ^…õ-¸N+CÒ!§;c«B«$±a½ÐØQ+‰Ü …ÙqŒÛü¾ÒØÂ§q%é–âѼGˆÑXfH3ΕÕ±ó…A¦ÙÔy*f®]tÅÚE˜R¡ŽðFª�S}èB ¼>µì>µ^šmÁèÙ®@R‡»w‹ófý˜,ûágXñþMx²Êœ-9�æQ¦žG{u\¤™á{@0ŸŒ$rêíE±FgŸ8;óƒïਣƒý>1â­¤)Ü]º.�È^þÃ<ùö{^�QÝV6šz—>*©ÒÃ#ÍîÒŠŠ£RÀ''gò‹õ^ÙB-c![³G�¤ÐO/¿yW5>ï (‚øü†+£Eë¦É•_ղɸóÁ�Žu~p9Ÿi©ÛiûÇ`Íbon~è —O€MÆ¡…IšÞŠo@`>a´ÅZýz3×Küì ÊYOC³TùéXŽªhµÅ›â¶X÷†ŽLQν´þŠT¢DIþ^Wæªs+ÖsÊb m£’Ë;G[Î-ë¨g}Ò,•¢³„ü§Fm @åkÄñ¶N77)ߌ‚ìÝnÊa`¥ãÝ¢Ë�|ált# °g×P§ÿoºWšáŸF¯ôÃ섨,>õÇ×Ç0 on·µu1bÿÜ�Wâ;½E¤_ŽqkYRãRäžâ"\z�²è¬z†L+­«Œà/rw’WÏ�|Óâ¹f zÛPÂÁ¾Úåú†‡ðMpx¹ƒJÑ,O2¤)78ªiÏ%Öƒ÷ñ8FÂs$±¦gå'Ǭcÿ±–g€¾è‹h�÷×7˜Z hð7Øù?ä,Ùɉ >îúý€æçñLNó2Ò;¨ ¾\æªþÒei‹¾ ÿ’Rᣨn꼺 ()]» Hüb¦Ù .ºðÐã®cZÓ ,Ž�¸Ø­š½ÞŠ©™}ÍÔ¬ôrG\˜I¼úH`›Ï-‡ÑŸ�zð˜[Ê‹>„ÂLʬuwñþµ®Ó•e·iO?þäÅÒæ®‡Me]Ãð�ßÊm.ç“_ &sw¢ éëÍJnÌjž¸Æ ”¹xQÄc¯Y²bM•kîKÒ¹GäÂ84 i1¯³Ùû0?ß1+±"¦X¯–ÃižfËø/œÆõªËõ·-kÞí¯q}Œ‡e£÷ ¿e0"4"ŒS“cr‹°1ðlU¬ c‹l9i«ÈZ�±zn,f|õ\¨2>¨|JaûtpÜéïfVþ§ÚžýC £r/RB~1fd$sƒ¢ëGšñm°í$‰’BV×ô½0K•s´tf¥¢äçÝ«–ý¸H¬¼ßìxP<¢=ßkx8{”#ÜÞ-¶(6ÐDk|븺Vô"D”°uÏØ¨s#•cð‘©ÚÏ1‘6Ð2¨à`NƵê8ØãY�jçQêkrz¹¡1$„©¬÷Äv•ÁËPïáÛú*!x…Õx¬nÖ¾´\7äQ¼ABä5;x?¼Ö`PHQùOŠFL‹–@©á…ηŸ'~žò»²ˆIˆ�*ƽö¸|6! ¶L«a£ž&†(gæl×Z�‡OÞ”¦vÇé`ƒ¢©Ð¡Àio+{Ô À?(üгG(¿-r¥ù:yGÛ jOö¹cjÍY…šÁqk÷B‹ð­…ÄÕÛc½\BE¸«O²JîÛØäPœÍ‘¤«™_ââs¡K#äÌd¹övy.ÊÏY9Ÿ\Æ¢á6•Ä­S‚C ˆ¾¡ˆßQs;ø­ßÛ “♿ÛVÒþ_GØR�™½æE#+*q— Ëø>Ü>»·Ij˜{ÇWJÆ·|)% ‹µ{˜·-gc=6€0‰”I Òm1 ?@LšÝªd\äy>«Í›–ËØ`W�ö®C¿›{•Ø¡OèIQò±Š,2™’€’£»²9cZ`u-¯ñºèP0k¿àtÓevQ®}“ñ™˜ÒÝshËGà`ü?Õ--Ÿ„A°ÕE’¤»;³Ùåh'G™æD›�ÆzMÆ)¥Õ_¸$|‚ãäý­I¢Wx8„&i~ž>UpW(‘¸KÕ½£’dñ‰:¦H“ßT7ý\ÇÀÞæg Þ_íQŽ•ìô�Æ«K…I[PPDªr7ç�›½®±`ŸC"9߉Ç),›§Û²ïuÀ•4)™j¶ÞÏÊ�­OâDW*Æ1îêdˈ&8a¸Ÿí¨Wð¤Ttm"÷;‚±¿Ñ B—‹MþB–õš°2 r¼�µ€Ø?s;&¼Ç×SBðŒ‹oÝgiX@s¿7yÈJ„b;«ëIªÈxÙåÊ>!yÜì“Àv·Gé õ:ˆ‰ý½| �^ˆG=<,-—*eW<‘¶Y–À×LþÜ™™º´ÈIãV�I·ùQØÍâ„êO1tå8K½º¨–ïó!>º@«îib :þ*_Í ‘›Zg]“x=“@„npªh}�ÓCßì÷}_*ž®ÑÐX”ˆ¿3>�­ ˆ˜¤{¼lÓT(žÊ>‰¨ Ñr™%áqŒ)9£½¡‚_ô´G£°ìyÕñ3,ÏÞ9h¡ml"Ò¡ä2�U ;Gæ¯~sHힲƑn»P¶È£ã¼ T½@w¢Í&õ>ò­Þ*‹ð,‡‘>Mmß‹ì¤B`õ8”‹Ì«V[8síI“ù5Û Î,vˆÇ 4_x'>m£ŒÐÖ?9Ýá0Ú×.©U"uÈÂsWYÝœÊðó÷?sEZ×ÑïG‹÷ß_~vK¥pà =ÉyùÆÝS4Žl÷0ÿ ùM”.þíæMˆþ81TpŽO bí¿È iPhmrÎ2§‘/£�÷Vü'ÜŸ[ x–²0UÀä)ù%=¼0À;ŒI¢Ù}dœjÆU¸*rá’üeòEG6^ÊÙ……P�þÍvå'9Ë œ©ÌÌ6Ô>`køK­v'uÃð}u+Ë{lÑqi$íRÙ*ò,Ém Z…©z_@:Y²*qÀýküôÀ匓Ä}¬ÓiYì-ÛnNÚb^¬‚½R®°ØMf¥x¥�Kª±K"¿n`_a‘²ˆ*­¼z‡d"ló‚ Ï“9?�Ò_œ„I+ ®ñç9Å÷âÍÐŽ²� ´¦„E9žƒ¶¸‡n‰å×ÔBà>Ÿs�3¾úö2S"+é½j¬_®lÍùXƒè‡|$‚ofÿox®íF§‘%~Û ½mÕx!åÏOØM·c=HV½&:ÞvqÚ?˜¿Âm:cR¶ã°ÀtzüÑt–…1&M°àtoÝÙª°;pR£6ëc40 ƒg‡F4Ó€î=ÓQÿè�Áßåjó\ðZ”¶”^C‹›Õbô«’;7î�XFB�bfÑÂS’}"v¯4º+zeŸ…2fÒ?ü\£qšÓ>§Ÿ?Œ•Ó Þ.íê¬"Ô¸°ž¾¼a&¿jX—ÿ_ã¶¡/oö+ÈuF±F 7:Pà`°©�ûM¶ï@ÞVÂ5àÕ x†M3Ü�÷«41—Ï€ÚLç ¾õö-N¯¦MdðvŠ?2Y«æ‹¡’z^á³;Œ�LÒZ&0‰"”UÝÒ¶x䎭è^ õÈ¥/àÁQÁ€† ½]� lûÄêC4á¹G¾ÁQ aGSùé:]¡“�íTÈx§B–öNÝ™q}r¾K €¾ëÅTœ˜‚‡ˆDyKñäZ]ø©©Ñ­§�—Scᾕ½9¨IÉ ¢»{­ó³ÓP³0�ÃTÇ…ƒV”l¶tMdî)¼yÒÁI4@·Ô GúªÅ‘I£†%%Å šÛ7myn¤ŸËªå,b0ÀÂ|xÛ¸‚WùŽj x�€²a „×ÏYaql Ô½†õ°þ°uˆ?)UÓ¬—_„¼Ú‘ #wÚ¯p ÷9kPº’˜­Nà±”™™š"é³õeUø3¡6?v÷¹ëg2úšÂ5êR¬�þ…~ h'ÄòYUYõ]l”¶•£e¾Ûœ=L‰zUL}=€Å´ ¾òCósÇÂw¢qÕ—3‚©îß|‚õ½÷¥ÁxÊ©cÆH ¦ÉåÖYõ«öEªN¨ójËNñÜH�ÐGì~íšiáÚDTi¤Š´M�ÃÏï™?3©iãƒåU2~Ãç·N¯Ýœ¹�êVuqFðªV±Çð›gù††Î+LгSäE5ŸÆ,ÙR”w³ä,CÔ‹¶€;Eƒ6»SˆÂªi&Ñ&Ìý­rÂmä¯ND#†3µ@ÌÛÿ¯XÑ­ *EgAuz0ƒi§i7À>vsìÝwÓ4…>%4ŸVsè`oϘØ=úJž»Cöc:ÂQå€ EÙ–[±%Õú.óÈù!±—ß™9Øqvyk­a#(%< ®n[ Ì=¶/k·ÙGÿ@¿àg×=7Õ~óB3ƒð¬ ͦ©g¡Brm°ðC½‡jÉLÍÓOÙq’Û4£å/5Ó†÷`Ô§Ý¢CØ­èj©§Û.\ � t ‘r…à«J’{鯇òJ‚µ›ù¥£Såð’ÀÙ*¶eô ¢ç:c!Ø“µ…ñ׃@ ®mz\)©:ê˜`ñÜÇÄËòOÑöŸÿvrÁÊYßÅ}•v(Þ�û0wh"UH»S$Q*çdDý™<äN²ã}eã2bi)êŒ4Ööö«¿ÎÞ]¾¢*ÿI¡VEV*ºqCøüö4¿•ìÚÓ?nï ?ú÷Jk©Q¯b\³Ç™¾äuRŽ…€K÷¿à d%üiSAp˜xÌÌ6nÅ1y8öó™þö£‹4äË)Ò5%t*íÎ`I%èáüˆœÿ�fCÒ¨8áÏ4p¢²�¦ÓÒˆåå ”j1.:íå*jý$‰‹�¤ŠÅª'¹Ì-᜶u�-Oöì˜èåR ¡¬\M‡§>8xv^¨]²D¼é~QþŠTcêµò2¡€‰¶½·�H÷ÌH'uYUÜH/ „‰»ìØóš‡SÚáúQ…KU'ÂFŸ‹šcA§ë´¿Ãø ûÔT0WQ�!5xº½Ña¼aޱ‘ú�sŸ +‡)›7ÔH Õ&fO£ éÅ}ªîL´¢51ýþL=Öæ|UJï{4¡Ê9ô·m•Š»{!û&@ S#Fg^“³°ÝSÉ+«wáhºŽmö‰T‡c5zL¸µxE›ó>;µ”—¶ØÑ½ÐÚ¢Y”:°.žmxJ…¹’$VâÞŠòXÿ¥uÿ ´ñbÉxÂYÍ�Å×WÙŒÈ{ÐYÄRS–~}ú4ä”)+€¦D_°øÜ†R’í!o‚fÅÈÜnG{KÌ@Ê/$z�kóRXç«Xcø‹DŽ/ }8œŸ¶ ÇMqq óOª×2Â*;S¯òªeQô�؋—CØ.Åk~ËñéW߆ó~cÇ–CÚE,˜�è/^Èï×"-#â_rj/‰ÀGŸdîjÊ•®E )¶»ƒvÿr¹ýn„«ôd€ôÁº2�õ[5ê’§D”ÕàrºAàãØÜ“Nh`µi‘2ueNáX<�W¢j­H‹0µ\ùs‡AœÀøšQtT†­’ îÀæÚÒ¬¦éÔK+,Ž “ZK)¥QÚ£ˆ˜–T‰•yo oÔ´ÂUs�+±ª§'š7Š`¢hà>Ú�ΛžDg41Y…—Ò’{ +!õƒtû!¥Š#_GhV¬'DÝøbÄ…¦­f�™[\#Åx9@%MUo2†¿Ðu,Ïÿ Á’ÌÝ^ýms,‚S  Æ= Øc?ø@õò\sv™«ÞyìþUѪîXØö_´Q¸… ‹ T‹üÝʼ�´PDvð0s+¡òV:žË^§×{õ„«ÏÊØ¯0İ3׎Ý+n߀øܹ«™˜j)a�'àW¦�V »¥aŽ˜á—£XÙ‰¥ëaY@d÷¸1Êìõ½XGü5Åòñ–ü¤óVW ºåD þ9;´ú]hÖ¦*|]O#ø�¢@mv!Jañ�>@ÿ9¯'ÕúÕFèJôIg7áe£AqR{qÂem.>­îw~îB«îw Áþ›²È̺¬ì~Ú:ΕQoQ……Æ8òšKKÇjéŠÃþ‹Úf)I3µNö=ÊÙÒ½¦=4ùzclÆ{Â…(îÚå*N?GŒ p3.f•¦r[¨”ɧTôññt¶;µ�Sèµ÷ÒhFl¯Y;&�’ë…ä×ÖFÎÜxz/VÆ3u\êÚß[�ð)¸°²Ö‘sò ¿Mµâ;š‚�ù®X‚A�.´­æ<W¯ eR\Pµ Sƒ”lº(GÛ¥�úÖ±Ë |Wg+MÍ­œ§‡¯/ž¦×%�PçñÃô záå�Š`ú1˜M‚‘q�å=ÙK½NèX°øä|ÆÂiˆÇ&é¡1l#ÃÉL Á]4· g:þ& jœÙÖa›E%Ï2uÆ­iѱ%pÀ‚å_¿éËéÏÄ |âñgâN� ,ƒ;wWf©‰qfpx…‚åX9ãqÖÐÔ�jmT…÷‘Î>áEÿ�´�¦\6°[Áæ}Hî6!ä/Xtª…Åç N-Z–%‘w¾·}Ë¥§È×ͳŸÙi=~ñ×â|z èËž�8N—aš'§{˜z²Ù1«JˆÔƒÐé :«œŽbª wøö<˜ù, ¥Ä" )UÏNÞ!_‚0©Ä©Œéå©"ÄJBŒÉ"Ek-°ì-¡G%·?»™g‚¯²÷Ññú …I’u‘¸šË}gÛë+ãÔæÓ¼ÄÔñt©ñ¨D0€vCØ1�WòFÚcƒ—ªÖQ ¿(x‰/BgôJëÈ÷4x% DM„¯iDœ…fÀT÷V鎭UGÑàpÀ„MõH½¤mX˜VëàzÛ‚ÏÄ<*�ý›W­RÇ'«Õ±ToGì–Ì·ÿÞêG *üB £ÞˆR…�Ž~²…¾±ŒÝÊHuDñë)�H ™j”å×›@3º¤BÕš Øù* æeÆß7ƒ?d,Ìx’¹Ðl>°ïƒùM;t‰Ñè²âDÿ¨þêSZx È�ÙXÁÏ"Lü5z_ß¡ m3÷š4†�OõZ½ Nq'³ñRâc?m‡Œš’ŒaWãf;”ɉ§Œ=Ÿ±¾pë³h_@¨+·}ffÀºRÉl.ÇË„F™aC9¦ZþaByÑzV7¹t:X’EïäòmxK€r‡â -iå�¢L–w >8¡÷Køú›È•x³Ï íª8ÞðÂ.=ùtv›¯n ÌvgÌs¼.*Ô»zÿÍöKÁàÎ"È}Ì)FB«u.ËQl¬C2ªÏÏ®úD@!Réþzz®Ü¸dz\½ËuŽGS¦, vKS=¶–*¢VöÞS%f Ó6ÕþŠVs–‘ûùû雡øa€àÀ©óêEy&ªÈÃÛÎd•Õû€dV1IúN¹ì—-ýe/ØÐW> Lš“CÚc›†Bð@”º¨™¦WF‹�8ŒVš"iÓ¼,Lž—ï7Z à‰=_5ˆÉ=ó“‰ƨ5!¨Û6ÑÜ_Æ ýKzà üïÒ:¯¾.Ö�dˆ ÁËÕµ–0”& ÔõGsÞlR»ô¥` Q?-}ñ•lü=ž*€Èëî"ËÚâH&ß”E$l Hè^(óâe•ó\>RˆR@vÁ¹0@T„lþîLf¥*mp=�¹ ”³»}ò·LŒz{/ßVñ(0‡ÙB„>´ÍÌ\~¾µ?f5}ã¢ki®5R³yá5v¥:·ÑñÏpŸqšïÐþ TZe<þzT‰æÇ s!8â±Åš°…3þlRDØf ^¢ä±=nÀ4€·¡áBy`ôËônd0´`I…{~“�"à}ý¥ûé’áÛ7àD÷‡ç À€gÈ £zcq¾¼rü±0º›=²+TP7.ðᢈô\±Ãûô‡ÊQÀbÛŸ·Ö» {h„U©ª!úv)~GåùÒ$kîÐ$ÆgAa”àú}óÖ-3Nc‡þ½æDDœ•86ëxÂB7û¡sè·j$ ž’Í<ÎD–§Oà¼&k�íÜ}ÐàŒ›­Iþ3x䓯xƒëƒ'KìÊUSûé°7ÆE”Zh@–™[/ªÂõÊQO£Ú¤´`'y=:Ë;åPmw`aÜ`6¶|èÖü�þu#×iÅltíʤBfûÃþ}¦|)IszæaSL ÌAü�f éF†£yg?{I}2NY…À—Ò¹W*ˆ…ÁøÇe´`à„‘isKå”꬇�)kšNÀôlZ›–«ÚšGp…‡)M(ÖØ�ºl€rë�µ„n€!@=ÅÓôÒG=Z)ú:=ïÓ9F'XGCõ¤/fýÆÄ?¬®ßz#‰:ùÓ3ø,&]„õðmtÖf4lyaLÇç4žRFóN'°¹ [ÿĸù/]ÓyšVÍvF¼ñpMJx Y½0˜M€,Ü»Bó}ÄÉŸ~`]†÷m¤j×­q#"Ù¨Ç}Þ&G Zâ)Ïo!¹‹ÂL/Áß�ÝàÛJö¬ßú¡Æ/4[CëT-ÄÃÕü€0�Ôø&·ipÌyGì’PtÊh# 0”9бð0;PÅ 2·K•l|œùùaƒê8úúC|ì ¸EllN(×Nüì‘-#{{h¬ 4ƒKøº£nº:íÕ�* H#C­¸tx�:n‚PÍm©Ñ!gˆ0§NBµ»—·Ä’9ÚtFnAúTžÈꂆ ¹jWV*š¾Ûÿ×4ftɬ>é2ÃF»æöò芹߃°£-›!|ô:áÚ«îÅÚvdžÿnSÎzU½cá¯}‰þH §Ñ3ç¬ÛöVƒ½Í~ÐL²\£ÛØhÄ$§O í _ ’ì 8¡œˆ×}£EÇ2iÏÌHÙõÑIŒ60¾|”•Š˜‚,ò –ð´³P)?­ùQLûäÛz¹ÿÂ1Šá¢fï`èÚ²/K!DQ‹¡]ΣY?m5N´üùýKîF,“6¼^¯ã¯d/7üÕ¼‘±E̱ýɰ©a«€oä >Âoƒƒ-9h'£5Ç�’/&â�í¬ˆ þ2j4tÎÌÙÊòÄqŽ\°ÅŸ”4ôÈ…ÉB‡F®øAw8¾lÄ ºë¨šØ+T”8ÏP§܈Ãâ²h­ròf ¨q§U§î¬û°ÐÔTýÑÆ6",žuTüâΣOñ< >ñTc5N+\’ßµ8²„MxX¡ëׇÙL�!ª]m.ÇmN1þº@QK2È]ÚwrT1Z4\gžæ °\GX"Õ—Ã’ÏÖÔ��0™d„­œZ s—¨¤ufy?9rkÉ££}ñ¾÷™&y‰®pßs=‹ïkEÔÌ=;~Ûé Æª½úÈœþ]5I„Ì76ŽÏ)‰9ÙF«Š {øfù)XÃZÚ¿µuP•�‘„sÔƒ_bŠ-ª9{ºoÌs¹ÅÛx¦ï}ö^æLé@‘mßgØsmSQ&ò#ÖBò’bÚÕÉÍŸ¨£åwÀ<±@�‹ À\ÎÖÄ—W–“j¦[]!­4§jï€ïþ3bj(Ÿ¢Í�SÛZ'Ýíi`à8Bc@û%%Û®µ³ËÑa†­*ˆó±ä�,Ç«„BQêM4ü•ði”ZþÚT>®,Ô(*gIh_Ú³aöûð óª|[]¢¬¨l-ŽHÔš‰óâ•õ".±uÙÇ5f´úªŸèra†•ô| Tó¿$øS l‰§|ø±†­‚™ô…;›n'MaÔ’Ø¼ÙØ“Ê—åÝͯù‡# øC(DW[íÁ2áFñýÅd­3#ÁdŸ�‚S�ÜÉ¥½)ôâù³Š_wŠEn¼�åeQÊ‘§9õÖvt9þùƒžP6rö@»“³¦_—¦ ómæÄ(6;£‰Isð²ƒâÕdî�kÒ,Îõ¢Õ~°ÛEò˦ˆ\„-‚°äÕxÉ'»àN½ã¿\±º—jþ[±?Èy¤¡V>’?¡>�M=¿–Xò®ˆ¼Š6>Áöùeø#r�HóÝúÆ—ñf†É¬Ô‚ݳœe¡ÖWXÀ3ríNøÁ5·o¸#¥eD#¿:züòka¦#êÚ�ÀÝ„UÛžŽ…¹ÈRõ4¯ñƒ·½˜'á÷PH¯÷4yK$æ^ع‘ö9õËæDÆŸ{�HH¹;±©Ç®ÊS‹0Tq+Åm€'ð¶­‡Yp=ª;ù½i÷´kéû£ 4ÁíS ‹¹¯h¬�îJ“~"æt+‘(…E@FÉÛ7Užòã|ý‚.g°+Üæ18›k¯(î𒲸÷é"“êäà4Ö³I¾öT{׌ò“ µñ}’ì �,�â�ùþÄ™ ðÉÕŸ@qùñ5Á:?ÇüKØ�;Ç1çaã�Ýóœ>ï~÷à³w)ù¥í�+­IVþ÷,°P¬ôb16³êóB§9îŠ@´ç5ënµ‡?R×áW¹HÄaÙßì~Ñ¥ÌO4¦ðp$̬€Iå'.Ó(í±5Ø}\®§g cy‡”ß§r𠺸þŒpÚf¢dÙiJd�Vè¯aÐ*�´œ˜9Bøº›qÎùû€š_£ÄÅ ñ烇 Ô¥­4]>lIlŽ«èc¹Ðloùi;eÜlù�¡:]Ž-›h�R»Òëƒ%áà>7Sì®Í¤%9Å©#>¶\W–ó¤Ýî ­)¥I=dB-ë-PÝGßj�³X ÜýM0^"Mõ=+Ÿ"½*L zê|?â)± Úë·ž5ÂÔàÎò�Az ¾îawºìXeWòõPÊk�e6,.<Æ:¹ßì-E )òcÿQøh¨Ü\×Úcq*E:³¼ò§6¤õ<È#ÆÐ€”áÓdIQ‡Òð$ ç,@IIG)&ÔÁê UUÙ°#YZ5zè@Ÿ;AÆMe€=F嵄ÜÞ­z¿$Š·îU÷)V¹�pikv}¯5øAC½’:),è©ä&8afá@³6)i#´1\ÓŠ8Bâ³§vÓÜ3B̃öŒ€ Õ±líOÊ {Æî¸¥i¦®$¼êe´?ü†.Cn)ö�Ì�Xg†8Ìè\aºÈ*9Ä µGkvO”Ü••µ¶Þ#£9?°GM©Go�¯¢Â�Õn%ÅQ 1™Ež;ãìrpëý*h?Ó¤çã§âjòƒ–˜“?ÑþÄïci¯Pá,qÕL[+n³m§¡&ÝVµûá�¯%?0ên?;à% ë›ÛÕ?f’^Î.ï3Íô4ídê@­6Þ´¹j“ä½K•™ƒ¿@ÓËvÂçÁðÀ¤,z…ƒ@òꟷà3PÁ†Ü¢�ÃQi„2 …¿ ±Âë‚|¦\ß&+¼�¸VVTM"é®,Cy<¶!àp,ˆEdö•\®àîƒÅ½ž¼Ä?4ßä¸lµ¿¢h&†›Vˆwyà ±+ï„v*)”l‘\u×™ñõ¿°*ëêà^LQV,Žö—›é²”«�SP$” S?L бëÇ0‰¬dÒ¦qw{ß÷£=u™�§©o-ÿKôözAœ�£DbË„æ?�·pø  \À Aqç¬zÖ·û�ªú ¼ìŠ£“'YÙ¼GQK0ðKå=%úú“ÚÖ>}+8öš«,ÔÅ=²‹O‹(©/3©s2²MJŸ­�öijq5†ñØyE°SßiZ±o;ñ”Bh"/ú�gŸ1næ,FMñ"³ÚÒz‰Éõ‰rÝ¢B ¾ßÕñ…"o^PpCÓ€rÑ ƒTèñÓ„ëŽ ŠudŸåå= ‡CÙöXºx”úÞ[—h:Š Ñàî—JÁâ ÔâÖ��ÌŠÄês³.¸ ðÏzY‚KÎrŽ÷ÔT—œÐ囹jýâ¬ûØ|]pÈ?�ÄDÚù£{+_ÐJÙõŽï×Bg{t¬ÙªÜÇ›IÙŽ‡’[D?3œÕJ´ØoG¡ÚUßÜqû+HåæÁ/>în©_?–¸¢O:‘šÛ�Ãr.îa×%43’+@³üBc]ãlͦól/ͦ>[ãk“w=þÚ¸ï þ;,k' Q¾h�æ•5XÂK’î•Sc]^Ê€oZ#‹#K$½ðB˜I'â¢Bhëû˜œ‘;� –øCÒð2 .Œ¿-9…Á^ØÜMÊ�ktj *~¦³À©Y°NBY]úØ…ª$|k’ø¥ÅÓ\Á“±^!ø×82¹EMS;æ‰Tþ;º»�?›÷u„%V/€Û ¥^,j%º!ÿŽ¡ÂÆ©å Iµèr#•âºä�Tn˜d¤]�0§|È( bÒ¿¬ÕΊ|4EØÅiª�ï­¿£õkÉCÖp*àªãB©ä®µÀç�QþrŽ#9’<ÔÝ�ï]é'¦²¡°Z –ɯ™WÚi|3gbå’Ü]EUW�ø*�r�G‹‚àõá³µ”Wã á<À{òOB�V�Šì!W$…‹Šö1ñ ¹ï 'ñÝy-4‡¥7l-{ò¾Ã¤çí³\aÀ’%§É+<ŒÕ{Ë=¾Ðð/«›Â�—Ì-éºçéÝ(÷^ÍÐJ�7ÇD£�ÒƒeƒF¤ØølÌ"�³FÎÆÂx’Ô0¹4·û¨ß¶ò&ãNsHF%sQõ·—tšD<Ã%ï¾ãÀ¤‰„ÈUú÷´Az’àÐ2•ls|^KX»…¸}§y>ìp"Í#LÀ¿¨­çE·üF¿ªp¿j½YÖ'ÅÈkÉõ Åc’=‚çÏBÕ±G0îXm?œ|oÿS]uúrlJ‡·ì«Âä.þ…xlßb �ÅÉÁß*®l0fÄ ê#í×-iÕè=ÓXÒ‚HÅf-÷­:ËNùI©¾Ü„͵'M,·6o„eLl9L#ʤB͵ŠY:cí;Ò\_Ïw‡C� E6ãZ,@žK©¶xDá¢4Uv�3­e¤2­Àe97 NÉ¥�OŠ¡`í§ÚDBTÏ9Ÿ¶¥+Úî}ÂulÕR#ˆ×Šß¡Í�L_ñ£[…ë‰*ŠÝ³y0åFN[â·|/‚ë"o�MЦ}=™Â0x×[¶ lm«NTyÉܲÉ'ɲDÚ¬rs‘èÍwÅÔ㼃Hž¹O«4ÞÀèÈSÛ‰©ms;¦;é¹ä2³®Zj@|ߺiqt„fÎŸéÆ®�Ö?Ÿú‰¸Ñد{<ïztqÃmHx´­\°/9rGFU·³nÑóX"ôÙãdÇt·¸/þv$ô¦…¦¦j\È­õ¹�œ6©„$á2©`]�°ÔD�‚ɯR0ŽôäudÇ+2ìŽÅÉÞþÒÍSçÊwÃÚÙ ûÎ.½ŠºqNVý"©ÖàŽi{o�. ÿ08™·°’ž‘!Ú¤¹æSaJ@B¹úT›gßûã?¿=Ë"_p%üsXòbŸøïãòF˜êú cM!;|‚´öç ”Û‚5�âÁ>i X{L÷—´Äì>fám¿þ¨6[®>FÆ g±#ó°;b7Ô ™£€ŽRÚzÎPQ=ãF—( ,æ{JyÝ.ì¤ þ øûÞâ»àdµÉ“s½(eýO¦#yE¿bÔÚ=_ö7»abbL%œðHGÔ¶ýƒª…ZvÎŒÐ}�Úò ß0Ìèµ�".AºÞð«(ûV•äḚ̂¼^ß&Tœ.d�ÖŒùPþ_áàêâ—Ä%6DÜAg"|£G²7^ʪSɺ®°e#<Ý >{{�²ó°×�ßô\€°ñÜÂ1ÙQ_Ä!¾ˆ«Î;Ë=UsE²º�Õ‹ý` Ò‘lˆ .0*u%—_מÒi$—˜œ £/t€A­˜ÓŠ*- #˜+«pg~À7Ó]½8€¿E«üØn] Èó=á&kƒ)ëuº›¼yÐÛ°:Mäã•5H©Ó"ÏÊ d£I_]VÆ2ºÙLwvAÈA(÷¨;ÙŽv3¶a5zx›¤OÈʯ]ì0ºœ"f²a® &{ô›@k²>Pÿë—ä»–nümAí–fá3…âUŠ|¿¿W=c¶Ç-C»öPM^ß±)nÍ¥xÕÏLKô€À=7¼bÎ×.ˆ±â�㢋âM6a3s5Æa¿,QlVª¨d$DÎLÄ!^þ¡ »#qЭ9ˆ;�‚ KPôòk]Ô|1q['• É«´ZÎK/I쟅ò۵Ām—fÚüx”�dÅ5NÓÞ2J™X/†±EF¨K`=Ì!?ºqô j†ò®ŸU2rG÷�1\ý,+4Héæ)Šz÷òæR¶c¸ß@i3Ÿ±mÊ{_æ…Ë‹]ÆÚ1GËö­™@oßOÄ ¼�—­¡¾«�µ#xVch­©�(©Ÿ�//eícÈQ}¤å²”ÛQy�LKÈÝ µˆOwV“³ìŸaú˜_$5ô¢]iŠpë¼I£ú?V„æÁçù1Û>Ÿ¥q¨0q%©î ‚-ê.5Aí±­U𒋇r¼5ʬ¨/B Ö™Ê>'<`“ã9\Œ•ñþ{pß^f ÷ðEaSØî¡ß¤|?K$žƒœ}�nJV§É43 Gªþ‹ìaæ˜ 4,q8å�þƒtÃ�÷"ÚiÚœI¥ñ.Â�˜,Ð]û)„¼ÃÑ–¶ÙXñ£¢ ‚PühÂ*•?»MÃÿv' Ði€Î£Ž2ƒ˜ïM£}';«RõâÊíË›jn’ñ—²wmôýækÁ)�!D-zÐ!.šÆ-P¥ûí E!p}ä2CÞ‰à¬q{Á�:(c½j®‹ˆ 8ÚSìM"šS®x@~ÂXMBëâÈK¯/É”wÆvÃ×qv_o¬‹ëëTµþ–™LKÆ“â> åÛ¹H { 4€ºÇT«¤ ËU~nœïR�¶èvg§ÊN$´Õ}TYçµ€rüŸù€âTj ïÀSÑ•ýød¹ "°Ò »›ÎÙô4s¶ó­Ñ­!*Íso„òá¶ÛWÐûòM®×ƒÓ 4Œ²Ù¤!fR`1ÿ;–x%Û†ì¥áÌ…·}"몊+X¦QçVð± ¿.¾b¢Ï¨Û%SŠG¿5™×ïFs³£|e8yqžNÄ –<vƒ•A qéÿྦྷ¥úØ I ÍYáÓp¾\¼z”×}½æ¢¹…ˆS0š’Ä(<¦ž}u‘Ë Ýrqy!µ¬xà€íÍoQŒßíDá"(‡ÆIm×*4[0~ é3à-ìÞ‘ŽFEHhýWhQ%Uš1FOŸÌ�˜Aȵ|�Y4Ãá“èÕFO1¹rºv¥D´Kh�Nöt©Ò*¶\VD-ϧÔ9?‚ü€}¡"6 ÎßÁCÀ²‰ý×G«{‰óш`VœR~É÷Í€BÖ…IÛI#¶‹^ê?;µfaߦsjÊÀ©§P¢.Æ.H`¾ò£½aWu ¯°kÉ[ d³ý˜W¬Ò &ß|lt“çˆ bÀv�­ÖXpApÁ�¤yÆò Êùðº‹ý!Ì?ìÛï3 õŽ%å'd<ΦùG}*#À¨cU B�<î¤ÄrÉ�b=u3`  Z\ {0ÝÕ@öç—e¢±¬5¹¢Í‰0q�¤sPa>jëmšª¦`ë…Ëä„ ±o‹ -=²V`ÿŸÉ#½Ý„X<]4c#C]Ãíþƒ„z$½þÞžã@Ž['bXgöõƒ< 7×íñ )"¬hüÝ:äÄñÜ-ćQæ]€‰â¨^`çCjw›œ…�â³Ê%ì¿ÆÖH6|ÕT�Ñö î}I9{ោ¨ j<m^×ßæ’�î7*#Dõ7dR)>AKññ‹í¸Ü=èJω}sû~uF–¸âÛD ½&Ųq¬Œ ;0—í ‡)Ž×èÏ+bÏQMþýÓs¯OP|m²ñv“–À³%G¦a$Ť›‹ÐQ©#×µ�Yþ1­¿.|vìÉ!K¸">¹-ÁOæÕS�äõÁ8�y7:ZPHðE´D� $RW¿ýúðʇ™]«Ðîõ`¡¢YÏ‚•Û&î§‘Vtá6 /×ÚÎ}Vqç,†'f¥20A§ßÔqý=Í�½ÿ¾ççÚß,t@+Ì5L^)4èžÖð@Ù×.X ŦUp½'ž€½�½ÿ–tk3¨m¸58T•O%´L°ÝJ>%‰J›J_]uºµrG~{+¹À¿TBX’n—µê屯c>sÐu¿K„ýèH÷´mlZ¥˜»/Bá�amòiEšäo¡¦å|hÔü=Fæp!\Ü3š®ÏÇ£t®:b_׋/<ïQ`Á­œ�Gy�dŠ6YVÊeÝváþxd“¥n2�út3´/PL¹J*¥ Òýy$œ‰h°‚�µ5ƒÛ)ðÙËW†ððíû’J+ ` ––@&Í|ŸC>¥ÝŽIn†œUæ’]7I"¨yšKç'ÐúïÞP¼“è4ïú1ÿ§(^ßË6kXê‰íb(0  <ÐýŸ'ž4zΧýIn çŠ�ö±ZÕÜ·´À}Í Ht6Ncþ¨[p½æö£—^¤©ž�ºS‚y!Ø“š¬]Ú¿ *…Í&íÿ˜Þa¹ÞT?Ý`*fú� '±Lq¹d2Ç<íQîoÕ‹�I EÏ ˆAk2švÆ vVíáĸ †ìÖOç,§ˆs4/'÷Â7~Ɔ¡ˆ¯Ü§…iû÷%5=?Ý& aÏÝÌ·ïZþ¢48#-#POÿ¨n¬üãTÚ9ÌÄ µª½BQƒU»°ShHPjS¾{óNÆÌZ~�/»øtÐlÏ`0¾y ÀWŽhË÷¥7ÀÚP²".¯ (,¼¸ ç7ã0Û¯:™¿ž…H­ oj½ñÌí÷ÙÆ wÄÌÇ©Áef§ú¾¬èµªbŒì´‚Úõ¨í-§µ¯fIù@H¬ÙD|1Þœ¯W×ðÍßCõ[ê:�;]sXoa ,½íÏv� n®¤&M �rÜ“‚m°è­pŒèÄ"º7ÔÌéëää˜7\âJ™ë«/N”2=é-°Ä oˆ­^èQÇ’,½>f¾%Ç%Šn0Hn•Œ)!åÛmF  ºá "v3Mtá´�¨Ëž§F÷?ÑÆu}î¡.þ’¬œÉ›•4•Íâ"Êéü Îk{†àD^Ð!²Lš·imf1¯ê4°+-@œ©P¹äª‰Ézˆd?ýÓ¸Ÿ|YlC£¥oÑu��“Œáü»‰ýߣ’·;5±8qcOFÅ%_�2¦†y;ÔDŸæ+¦6Ÿg/h…Ã-Ú^É7†š¿;¼ Œf÷Ì'óZó Ž7Õ‹5Ü»@FûÈ] ^qo)Ä=�,ò€F�¹‡nÐYxs�½ö =^I¾öz4ⱇ›ö_ú0^®RO߬oq²SÀf‘¶V™g UA(«)#WY]søtù]M€6¼…җĆç´ì#zRU¾ƒ -z -�·pŽ_{_�1�bÒv2“æGÁdñào}±žÍô»ŸÒœ áJ厞ñy_@ƒ˜©�zWÌþ,d˜Š±7¶†òpëÆO¥È¤5QÉ)½GíÉ2¨¾”¯º ýŒK§t Ñ/ðÜ=WdÄÿ²ÚzxçýÇ|ÈIvé>^Ò\½,V­õxßÇsï=–ÁB}�ަRˆ«�þø�åò˜Gé†D�¾ŽfÖɃÿ‰m8„g]XíÄ¥'šL]‚íˆù>Ú(Š«g¡ŽÜ3 ³Íïá'�S‘<}L ü¨OõAÏ¥1i44D7G°WlÒÆ‰‰µ™½ È$)þ¯Þÿo, ÔN1a> w¼¢8,‡bà’õÏ+ ÓpÕ]6�ª\×x9>µÃH–:wñ * {æ@Jàâ¨×y7mìWßÜQqTqɘ‚D?‡òò‡þé@Áq™¸ç?²pRHôô÷ô LnÁ—qƒZL‹àM+Z¬ìä‘®Vm›4l¤ÏíƒÈ[ä¼@Ü  ×$ªtü,wº;•mˆªä-Ô‚¾”j¦À2†Â£sÉñ'²Šl¼‘+\&¨L%˜¢À1Ì�(6ãLiwhÉý †¼·ü÷åJ*2Ê“žàÍ–5”özú_•�zXóÍž�”ŒfcŽ@ ¬rKÌÁ…‡ùXðô¢AóS\¹Š.m¸Á¢æC|¡•¹®1>ÙòÉ?â' uL‘ä™°žüiñý²äe·YNëñøÉZÏøCã\ôºæã›Î�­ÈK•(DWIÿµpôuÐ9õú:·c•àemjndßy»¯ÑÔ55Œ.<Ýjë.×Ê®f¸Éš H[œŸ;)Ð$™„yŒM¦(-ëE íçš½ÓxJZúÿÌèR…¾Gøh žïz~2\…´€õ,»2¶Åý ;™¨âôyˆl-hÛ¸;àsFÎX³êó¡äSy;¦fô‚ ¤¾7̪6]"ŒŸ%Fˆ„"³~D£F}‹]»–?º+Z6±TTÀO^NnxQH%oÌ›–¼w? ÈÇ@¥Ðœ4Çl¤(–)œL�þ­Ë¨½É-ÓCh[i\Î[øûí�Äon h�x¨:›ºà‡úݶô9·‘Þ¢1í'+^Øœ1ÐÁÙШž¸ÐV ˆñšºú)xúÅ‘bE æÄ†«ŽÆ*®OØ®ª¾—ô±q'í˹눪ŠçNY©1ô$XôC?\ÿÓÖ)Ïfc4J7æÿžq«:A³#ð^(`ñ��&cÇö‰ìQ›\F‚B‹vC^ðrÊCXSÍò-œü ´Ñ/a°mw²×¤)Y8"ótŶÉʈ�¯Ö”Iýª,Ý+hcŸßq¼ª�8`¢;‰+:Õ½Jœ§3ÔÚè@"OÌÏøóPg0ßÇ#BN&ÛQt `"”;UV)@i&Þ”eküpúÉ¢‚­NUçz(3qȉXAÎËÆ’ëÄMì1Í£‰< –WÓèþzaÅHÇ ¿ÄøÑ¶Ùšªêé6"fÀòÂ4çÔ%îk•®Ì±D õ6ºðåaöD ôÈ–:j†|X1?ˆ#qP£Œ51. зqÍx"]x¥Í­Û[ ;)Üíå ¤G.ôÒ41•¥÷ЦÏúWJsÑÍ18¹ð ÙÆ™+„TÔ¯h-ó •ds^+¡|4Oö®õq1¥ñૄ톬œÄ˜‘\:.F•Ím¢‹ÿÞ¼ö„ÊÛ\°4eþäýcx¾ú¶‹ÌÌɨ-ùr&ZtEj®ú>êó˜¶h9uZÞŒ,‹jŽxR¾X\¥4±�M—g¥�é ¿¶ðLD´bpëÞÃà4 ÏÅæüòt‡î‰"ì/d¥×®²Ø€NèœFŸæÕÊ|ãA½ Q8K‹¥8l‚Å^¸Aú¸Ù 2-FñN<�hé]Ýèé{N…d�çù®]€¸BëeakjL/aÉg°ÎÒ#W�J¼½…\ƒ›R�ß3ôÝ‹oOÄ#‘æ•{n;Кظ’þz7@A÷F‰yYù8Äñ 6s»ÏÓ.²óqMQâŒ:‡¾ Û;ê;$ð!4¥Á€•ƒa¹yøÆö˜&V,€5ç²²Œ&E2>ýrjU•Ô)ïtõÈ„Â6…ÆL¡Ú7ÖXy´gzµê ^m'�´ðžv?ëb5—Ì€N€îùÏÇØ@|Ã!ÿš'0åÿ.X­ÑxÏ9‘-i¡IúnÒ Ô2¡ù\Á±9¤ÌoÇà ':Ö'Ÿ`—vkodíE"+&á<ªWÀß’l�SØÑ}ΘÕvÚо¹`XwP»É@‹¤‡bý°ÔsUìã˜-ˆ5foii_sÐÖÖçÚþä–Åqyÿ�o)Ðh°kô£• |p\¶DÐåojèåÕkŸ( ÜŠpõYú3®œ^•Wv�Qó]-× ¨€-f¨ë|kÏÁ+®94<RÄò -ÐüÔFò‡ñd�½“èA•zT2Ï5úϧpÞL ŸÉâ4@*EHÏ¥)¥'šÐ»»fÔýðsr7Þæ¨+„!¾@_o½s‹äƒ¦Ü»›\›µùÍ*Ý¢e´;%«–åÎJ™IŒÖ“µm\ ¥ÏøÑ1µï:aW¾”¾'Œö¦ë8©pZ.*Zgÿ˜¾³ 2Œe»ŒÁ˜z畊äEú¸ÙþìbYlojFáF.ƒ+0éD€CÙ î·×ÚºªÝnç0ÝR»q¶.±ë›„‘ÞW'ÚÅ¿—X6$qÜàU6“8`ÕˆÂ5 7âì# ÑP8¬º·VŽª dPYŒ4‡Ù³(×êý܃”hH;Ùça­ûn�q7.¼ ¯{K%ý¹$9Âu 2ÝLDP8£§Ýû÷¼wÝ_’c„‘lv^¼¹À�‚ôc-bt¢�&bh>n;©ßX¶îYx¸†À÷Ž <ô4ô7›îJxºð�O™Üìc–Õ/Hf†²ÎX†Â¹=±L•Ð3ã騌�¯I>þgzЦ·ëÝVíí ú8 ã�ËrjQ.üDRj¤G „bÏËÛŸ×ͯç›ùÿ¶õ>ý¸ž¡ÂÑ#¾i)6u„$¾ç›Rb"õÙQ'¶þB/1gŸÎ&ÍÁÈ]fRßNÝúûƒ’›%U‹YÚQ§ömö JuZ„®ŸïѸifG¿Bæ_›å]J™ú‡ÿã¹bÉW[õΔ¹`˜m$=çÓ±ê4Ÿ¦QÏZ� ¸dü?YbØWî­ié':üN!·þ0sƒ•ΕüïxwgK<±3ÒÆðßÁþ«“�û ïíôõxÀ&>];mìÒx·l‹¹¡XlÔ¸~Ù‹öÊœm°~•Ï· ¥¬ëqÎ�Ô[EÅJú¿¡³ í+‹’<œ—­\&E.ï”Q‰âÔK½ ýÄ/k¨�*ã AE4O6K›v�†Í,ݘBæ�ê^6 òBŒ ‰Ù5ÚSàIõýº�c|²Üw,¡�Ö®B¦ó6õá¥ì~`Ô¿Ìà$Ë38ä/ÎŽcðsÕ�0?/ŠÚ k±½¨ xÀÑ;YÛ"Ö¶hïT|Qÿœˆm‘[tbÐcqzÁz·¬µÿμ;¼Ò–Õ $*¤é%úŸ*Œ+Ò cûøIÙZ�¦}`5£ të“qDy ©¼«DÆÞŠCUÁUíózä‚�ñ8ýxh‰¥õQý{æÎ¦´8@Ì“*dØÉ×ÁÌm³x/p !2Àönñ´k:f7«Ód�UÒŠ“ÄÉ·ž›˜G ƒrÅ0CV~Pceøä­Võô»Öûr·Åƒ\úYAQ™JCƒï5=%ôÂU,ày9E»oÈ`JŽŠÎg�cà›µÁ×ÑAÒÝÁ4aʈúÈ„Z=øó-OˆjúÊâI» ¥ë«KGF�ÅûAÐN��¤ Ëñ°í-ô‚ïíý=Aóæ;”“`0-ðª\§ÆÀs®:R M·~séõnû•`“ÕHlXº%áßgÖfJ¹e4P¿qÂW CJ(VõYbíxðõhJíMa% “LÒ†á·4FËMþ®KÄ8 7x–Ì”I@|ÇŒX9ò¨÷¹öÃÅ{Ê._�=hôöýXù2í7ÌT „ÜkDzÛϯš=Æâ…ÕÏDÿm@¥“–†Ö0CUŠ2 ÿNŒ;¤hÅnÍw1Œ P•Í]±SÚRÙ=åš�µbߌÅó,ûþɼÆ¢'m™Ó6�|0CD“[î„ñj4¤¯(5b‹G/\kÂnáF˜xâ&É„\ƒÀÞŒqª±ÿ SÓ ÿô†LSTÿ$+žá™Põâß.Û”}GxyžÞ† òXÊF¯­¢ÓßÎf+‹´pÍq6çDC‡Jç4µè%Ù²þyZÐ ž¯Wê\Ú{é][ÛY—“w#|5ŠãÐ^KhI âJäÀfƳÁ߯6 )´vA’‡f»:ì4BòÜý± oòL(±˜T¼V83µ?¯SQñÒå Z¿I"Õ&›> Yczš@~?�ì2‘jÁÙw-x¸c4W�¶!Ï�Suƒ-Z¡úo3•Δ¡h.èQLO -6£ÜŒ~é,Õ±@ÄëÉÐð†‚›}sI| ÚËaJnDwAOW»A°%1†¨,ô~^+Œ¼4!0÷NGÓjlÉ£…Üéò5Ý ÒŒºÌnç2WÕ4ȳ3Ãnƒù¢páï’nBÜД¶°ì$«ãBÌGY)U÷ÛÔ�Y›¥ƒDs-Â�ÅïKû¯·óéætÉ—�JóÀpEô­1¼9 ml±CžàIÊ7)ŒÖÞ#p8ªTã_ï|c“»° ‘ûP}YÁJ¦ž~L~8 íý,ò¼+Iæ¥Ù8§Ÿ>JQ=ãZÎZ–!^–ÁC߇²þ—Gz *÷ÂöÄ1ñýªšY¯[óŤœôWUÜPE¥òÂŧZrC‡L´±cþQv­Fúÿ½t¬8ûM%X�¥T¹lÓn¼;wU2(œ¹~ŽšC ­•åQyPðGaÁ“Ff<‡z§Å8LšÄiÅqäÐÑ_ œ¡nYT¤v¡Ð&LÒwS8–²Î KÁ柟o+äA—”�Q—ìI~&°%Oí^rY(F9Äféç›ÕJµ©¶&aR,¬Õ‡üüCMÌs”­6örÜ��ðG·Ÿò öXo" 7ÿï0™$Ô,ÕÌÈ ¡ºº¬Åõ™]œæÓBñxŽ Ìâ¹/š ˆýoþúA¿VM:$„ô¾…’RÜ˹ 葤Рä\Ô‚ zŠ¡� ZŸ>뎊Úx240߆ÚÜ~uŠT¯ ã<|Fz}3`EމKÞÜÀø`çùöü)ƒ\­¨#FXvàm®QbÔ3U çiS:VŽ8±Ü�] Äöå‡�­œ�¦uªá� «žY¶ Óá+—öÞ$�_ÕWÑíǾ-†In­·Æd×ëÛÇ?‚i!öÅè×aØæ¶B¹`À›zþ²•ò”Ä'ÈššêÛk5î¥PSe'êÙ««¬óÕ‘vi¿Q­Ì&•å[ϧ¬|]qB0E¨Ë!“HyÀ =F&1¼�’Sê™±\&´ —½Ø)ÑÝÐjÄ^÷xý~|›<×Ýfü}:ÏŸ…¢>˜TœQ?ÓKìÖãXê´þôŠ ŽÔnÄzȤÕ�ÅÜT´ÝP¤¯³º€†~¯5pÀ "Ý&·¿—׿ÑÚãüà _¾Õ¡ÅºwˆNÒO\þ š3äu™_#0ÜZäˆÒô¨À�. Á4Ç:õ»b窧õƒåò Ö 4fÁ&>©™ ø¨äÉwdÈYw]k=*+ðoìÕo c0ð‘ö‹OQÚï1ê­¤FFtæÃ›ñª=\›7ƒ\úÿ)a†# YC½‘«>çû=Š{õjS\†V¬W¹MX¾Ý¶S3·ümû‹ì’¯3 Êjh3ÓSÀjFF.\ßàÁøxâ,ŠZ=\²”è¸iÔ©{Œ ܃GSXÞì”~ y(�£ã4_{¼l-½Q™€ “$sšÀI=ķn‰ÿÀ‘ÿ�÷zß¹(ÒT¢ª_AÂi`ŠÓ Ÿ²ZH¤Èé )¡2òmô]ß9æÕS›Ù§Dªà…§ÿ÷*c¦«ÎR 9´ wZ›�ÍÄæmOÆ)ilÍ­æ¹ÈHÈàƒ<'ÉÛFl0° H¾gšÝÐ&Ô²CÄâðïR¤î–êØö&î­‚Uë¢ÆÄjŽÌ^ýç¶³}V(4ŠKq#O8hÎU´Ô±S,Û2 ,P)#� 2Fá½ó1Ý·­. ñâ%é� $å–~jDL´eÕFÎZÞÄ›á²g¼ÀZšÿýEéh’Bÿ_ÅkÆ�ÝË"ýCeAçêæŠø¢ß–.…0¯kõYÓI]Àx¢e;bF‚ ZmCL%*V)€Pöðsè‰SôHÚ¹éÿÒEuÓRÿö5¹Ò^5}ÛáÛÃ-.lð;Uñ� |õk1̘'rÌlf�v ~ ýSâ°(ŠèæÏ«0Vñt4)�óùðÀ½ÔîfZµø/»מwþ ô,ø®NáÛÿª¶EµQ ]Ã÷%>jøÂ'Z©˜Åì§ ü’@Žù#Î!}×�h¯‡˜å,QŦÜõ¡ü°œðaI‰5Rh бF²5>UÅñäb¼Å`釺HEÉ7®bè|®”öwbôJŽ7øþ‹ ˜� ¤vkË3{çD™šÈe�ÜZ8üzâ#…0 cºükÁ‹?Öƒ/•l™À�w[†•«ºé�þxâ¦ÙCb™ã_ÄÖ {v“YïóI†¼Š<½ž5E5êùž±ºiƼVþÓßJ¬»«S=#¡FÏ£"ê¯p ƒ|ZŒ™ÁGTiÐØ]ÿ‘JK±\[:íŽp´iJ‚Þé8r‡�²•µs{½YfV=\æ0ßÜä-M9 ×Yáõ_º÷™Ú} Á¨fnm¼Z;¼ ûc½ÆÎà¡D,ü…S¸|T‰ñ�JΕG×b�ÓŠJJÀëZrj|·ø�ø„faÀ±¢Õ£†„E;ð˜Ôéר1À§V›fn’둨,#¬À vrSe�Þ,Â÷\lђƳ<vùSybb±²]Š_ !üREw¿ù|F7Æû2 ¤mß×ø-¶Tãi}_R*Ï�~ÒO…µ‰BL*�ú:”«ˆÑHÙ2מL†RW �Å]âYs?×�h*òUŠK…€2|³Ì„2ãN6¥^’QñìŽJwŒ…�ºÇ{e61¦Àä¦L\ä`3Ê B°É[}¤µú�忬OØAǯ³…ÏDÖ$b›tn�Gxã*‰�”¸˜Ñ4S [‡üåý¡àlàS¿®• ùs¹3’ûüuimê»8Û>ðCw8#_•y`D­&Ô|gÕó½ä„¸¥ËÅ{@>n.5ÕÂ^ÝOí­FV#©Jð(Òq#EÔ2ˆz#P©£Ð²å/5÷Â(-Ö÷2óe3¢[\6×ÓCRå‹0°)pCÙ -ÀU>œÔD:´7}^"Ó ¡ôæAý£ïß$…c³ÔÉá8h£×ºçKlø|w.u~¹>^Xå*rèÅbKÜ¿ƒÆ—ÖYÕì3kóÉmùe˯UxÕ�¨ã]\¦½©¬þª„V”ÔxáÏM„ÇóHÇ€Bk–|[¹]“ÚÖ~ ‹:/rM;¶.µ“� Hð¬FjFäo�oŠÀšpDCÑ“ÌùgŠÌÀèûH”P=G.º³ fu|oàð È7ÕoÏ0Û�³ŠñÑQ€ùÕ²‚qÛwŽ'nbë+˜» J.Ð蜪º>kšÙfAÌt`8 f6ÏÓW¤S½ì3Sð@õí•øw¿™@¤`™¢RMx”¨§ ®ÍÚ[¥WGíÁðU–íœ(ržls%×Y®NòRDp¨@!ÃR=™Í�˜JüxãMh>¯SÞ«½”ÑaSkú+,Ý$ ]ø( Ǹ_ù`µ×“oá× <Ì·òDAbêš¶K3î‚ÓdÇD¶G7¶SŠ4e~!Ÿæ“ˆßž ½w’RmƒÅÓê‚ç•‚4#^J¨È5l9ËR¥*©jV—ÿf>•�#¤s¼HÂ’_'ùí]§G³Rò²4&OfBî^‰S6}ˆL…E„K¦A6TùŒ#ñ¼�4òóO]¶“U?!Îøac:ôÄl&ÿ‹ZP@¢XÇì7Åc‚Ò×WÏ»ê*�B9ÄËdCà‚ S6�HNš@Ç vþ{œIEÖGï‰RfuÇŠ÷Û’ÀS:DIbЕ´eVf‘[§Ÿ¿ìh‘\m†.ÕÊ«g4U–¾Á÷ÁÕÝš­ÏÔäóÜ “,Á>â¥R3íÄ�ÅÒµa3øãΈ‘yFÿnNæ±æ>xø*¦…ÛoÃï°_§[À¼{½òë¨íµ™v±°øé>¥AjÄcœ�·dkFîr¹ð1qÈÌ|¼›�FnпôØå<½È  «kޝ0+ë˜Ëf1ÐH 1 �+†¬å¾·?ï›Ù1zäÖ6o#άxC¯3½´[ÿ7¹Se»ÅxìZS2ž¢v\îÁ£gõ›”r9Ð\TÄþDê—_OKðâßwÐsÇÉÞr�õÅbÑäÉ1bq}²±‡Öᆈ÷æ#׸փ“]€èÔçÑ}Ž/&‹Ž4cz{b›¬ŽiaòU†Á�‡{%M".,¼o­…ÝØÿ=®Ä JxˆB<-ñÓð,;úBÃAÃþ¾cáuøJ^¸ü¯j¼ˆ*6yô¢]¤š£LŽNtñ’ðúf))»ºK‚ñ©yt€5‚'“ ”èîð1.¶±0ÄÆg£ëjD ·ÜÏ8(«ä§"¡ýoóÕ©ñ,)O{õ^¸w¦ö|�žS¢&6B?wø #Ó‡gígE¢¢²)?5„ÕeÆC$ ï€p ùzæY´;˜¨ÿd' 鏿]{ľ"ê[•³šx诌"„ºa]؈˜[°¡ðH«—¿Ry^/(Ö)! ⣚÷13ô¸%‘Ðu ²Bùœj°LçgÐ fÂÀÈ>Ž(e–~d7p?ù׸ŠCIûÿ·r�ʹ¢}⑺uÀ³ì ô„Y‚ ¨ä\Ç&–™c LΕ�ã8bƒÉßFÓÉR„Ô­ãi€Þ]öHŒe{Œ×¾ƒËÔ—a€_ ¦…#4ö,-C6nH€iñ>þ÷Èqô––FUdøDËØƒfÉp9Zú�þðô�Wák‹�Á Yþªª àxí¬ïO5&B<ÆÞ ½�Kijكr1�;ü7;õWÂÓëmfëÁ =i)DÚO”ÙùàY¦6àéE@Æ~Tñ*h(—*Û!ùfÏøzfO½j‘<€�{u?•á½p–ÎæÐÍc—î Œ>Yø—ø�P % 5v}‰†6´×s‚¼N5ìW+8ë¼­3Ý-³”Nâd~ô)ÖILnt±^IQ¸þ7IIˆ*ãÌ-âÎú‘#úš©j"PwǺ¢pIœ…šÛj»§[J›Þ‡„@éÂEQu`ö…„�ˇ+  „ÉJLæÅ3–Îl7¨L?—yÙÖ Ap}u`¶0=À¼ÛÐÎB±äû©Ý¯—�’sÁ÷G0J¬Ú›y)ÎÛ×áxïcy.õBb©{£ä•yR±ïÀ5�ôi¹€pwä>—r.4ŸfPŠÙKïc³Y;ؽNˆ({¶0rf+šÆN™.5ÍFL¨�7 /d‰½£(�¬ìè�Óô/xE±°c›ˆ´òHQ¤Bª/'ª­õ䉻/ªø4(yúâBee 0ôßeÁZY,ˆIÒC¢ŒD˜¿\=Î'ÓA¥­ÜJ c¾Ó¥¡UÊ‘>~r]…²è£çºeœ�?¾áÖå5+ªÊÍ�PÇó÷AçÖ ûI—œêk$à3¨qwÀ÷ýò0ð…86bxø¿8–ÿžàûÔ‘ ¤,ÀA"Å_”÷â¤Kœ /ßl9Q»¾?Ÿ7+z#*ŽÝ>³Ÿ›«?ħódÒÌ5ÎjTLœÐ‡�ÿ› æ²"ZZR¶)=Ôç hú” .)íÊpe ªB±L̹,½_Z¯VÖ5njè$nî�‹*P¹ÆR­L_—gÂ8±?)dš¨` ^6ÙAP;“—h-zwSJ)5§‚ñ<+ºO·þ!;Q}ï0Öñv»GÊÜ€Yï¸1[`Ë6 »JL­º´z8ó «7]º²®¿ ¾Ta )h«gw¥(°¾øOfþþu>Ÿøkó¸QðÉ—•$ÌV¦&kú! �ÄD¾ÙË›V•'x8w6[J´8à°+ǸŒ±4�µ—ÁIض#ÌÞÓ·‘"¼wF,, ˆ9[]ã%MOÙÆª4'è±`¦øæ¥…7€£ö”„£àvže~!\ÐlÀÖëÉ»]›•€/4 €œ=ï¼¾L|2óx��öœÇÿ€J"XA ç)WLpîN;8X²q ¥^þŽ’Áœ 5‚¤ÏswFX ÏÀj–!_`‚n,E<7Q¨A/ÿ ‘»@NLCÉO”WVbwoÝû±«g9 þ}°Ÿ“+En¾ `‰Ø=rÂá¤� èñˆ2Ö;lÍéNM {Ž3Vå¡ÍL¹c»ßžr 9G "YÝš1?ªEÁ&ëŸ êÞ„3R¥W)²—¤Èï?0 ´.ƒuò�.€¨˜�Y—IGB)C½¯-A®ºjý(?Ã è æ÷(p—áÓ­U~š‚ö8fm !ïý°¿Ø€v©ü©T@óvP/÷Ç&ÍÍ fûº|ÞÅ»ýmÁ²I-Ÿò÷WLqœÔ°xRkÒfPÕ‹* 5)-s>x¾d Î�<†„_0j 4¦Ì3çÉâ´ƒfè%Gæ©¢Èê'cþÞÍ�…Ù₲eTñ-«š^ AéBæÉu®› ¥ùlà6³¿É™ŽÌmXþïëÑ"ù \ñã¬õ�°õ˜ÎVOB_ç-HWh&æô\D¥VÝÞCú¸­©q½´O¤R}<¹=GôS ù^•ô©µ,¾­cIÏ Z­uä r‚”æqyX̹vdFƒ²„‘]“ôK0&rwÒ¹"Ëñ£Xó®1žÅÁÕÕ19ÅLPÈÒ¨F@ª° ºE_ðÌ®V:Oæ÷Á!˜îºìb`¨ã+ÙœœbF¼F¤ðï'Ü®X¸8HõyöF`Ù©L}V<¥ÒºöÈ 8ߤp3ÉU'N4\}‡D´Çì>îÁ:¾öæüNÌT”MP%$¾z¹´‘¢;„ª›ž™x¥èÞã‘-F/šD9’¦°N$íx.*Öþú¦ñ‡‰áÚ¬v`„MJy븻G@  ÈKÇüZ¤îe%ôÿ/lûâ%>åi³ò}XXt•«1Wc‚Z^(¸aêÅíDQVçÕ£JËs|"‘OD�¢L À©-¾[øX,..¡´>*ÔÐÀ4\™ vVj`1;eù_DÍ5u ï…¿+ ¸ÓF¸yÚòâ¶ç¤·ñV›ó§Ù7Mïc”7Dê2£¤:(´“ú^–E»e ªDiJbŒ? î/±„ÜJ¥¦Y3�Óa¨Èdî>ýµžVO‹yë¦WK´Aw¾­·eëÄçrXW¹§ñ©«`gÀçyqù€,þüü©÷5Ç'›ËÒò[ \>ðËu>jez¤¤%{ÓÖ�L¨2ÚYÄÐ7 ¸A”—[öu=›±Â’Npâr?4�Üм|Ãèï3°Wži/n ‘3í™E³y´©ŸU6¸7Bç#y‡? 0Ù»Dwcž¸Æ@|ÝÌ�©±íQ�Nû2H †ch¬zbR‚­ Ý›û(Œ И×ÒðÅ=ÜÔ:9µÙ1Âö�âÊæ dóôŽ1*´ª–9mDjYu=&â‡×—;8(* :ZÞ‹-Ð¥×ùb]ÖëDÖ1É®i›1U®mzÈJ™Å‹FO°ßs(2­EM†®z@{ É .°›Ã=’ óY�Gwáîã Ñ .$Y&)I’ Z·Swáôé× 4$_&")îÖòÖöÖøÖüÖ× ×××P×R×ïÕðÕñÕòÕöÕøÕúÕüÕþÕÖÖÖÖ ÖÖÖÖÖÖÖÖÖÖ Ö"Ö$Ö&Ö.Ö0Ö2Ö4Ö6Ö8ÖBÖDÖFÖHÖJÖLÖNÖPÖRÖTÖXÖZÖ\Ö^Ö`ÖbÖdÖfÖhÖjÖlÖnÖpÖrÖtÖvÖxÖzÖ|Ö~Ö€Ö‚Ö„Ö†ÖˆÖŠÖ�ְֲִֶָֺּ֖֢֤֦֪֚֮֒֔֘֜֠֨֬־ÖÀÖÂÖÊÖÌÖÎÖÐÖÒÖÔÖÖÖØÖÚÖÜÖÞÖàÖäÖæÖèÖêÖìÖðÖôÖ×××××××××× ×"×$×&×(×*×,×4×.×0×2×6×8×:×<×>×@×B×D×F×H×J×L×N×T×V×X×Z×\×^×`×b×d×f×'… �Ä ±‘ 3˜ ¬± 8³ ÞC› [¿ �» »®¼ŸÊæÎ¸Ð® Ý> H�MƒQP#U§Ÿ' ó5ö„zšæ^â c^nÂsY] } Š Ý¢¹@ÆbÙN-¡>zF*‘ ·\ÐÒÑ%ÖJÚå«èáx?Š´ ÅæÞ çó *T-;½ä .† D† h† m† z† y‡ jˆ \‰ Xà mà ¿Æ ÂÆ ÉÆ ÐÆ ÔÆ ØÆ ÞÆ æÆ éÆ ðÆ øÆ üÆ Ç Ç Ç Ç Ç "Ç (Ç 1Ç 4Ç :Ç @Ç IÇ LÇ RÇ XÇ aÇ dÇ jÇ pÇ vÇ {Ç Ç …Ç ‹Ç ±Ç #È Æ/Í ÉÖ u*Þ µå Kæ ç .è ³é ê 0ê ³ê âë fí ·ð k ñ Y ó bõ ˜õ öõ ?ö �ö †÷ è÷ ¸ø #ù €ù äù Zú ’ú Yý ?# Û S ø W F  À W' œ 2 Ê Ç :! g( ' . W0 2 2 5M2 &:? “.H lO H` ël ñm n o Yp „p Ûp ’q r r #s ‡s üs _t ¶t +u çu v Àv ‚w »w Øw 7x Yx ^(z Ô}  t Ø € (€ D€ `€ |€ ™€ ö€ 9� �� è� K‚ ¥‚ Ä‚ |ƒ ¶ƒ Òƒ îƒ „ &„ B„ ^„ ˜„ Ü„ "… h… º… † R† q† )‡ W‡ s‡ �‡ «‡ å‡ (ˆ nˆ ¿ˆ ‰ _‰ ~‰ 6Š [Š xŠ ÊŠ ‹ ^‹ ¤‹ *Œ IŒ � &� B� š� Ã� Ž QŽ ˜Ž ߎ '� n� ·� ë� ˜� ž� ½� u‘ y‘ Ý‘ ã‘ ê‘ ~’ ×’ 1“ £“ g” ƒ” • ‡• ?– Ï– ;— T— µ— ˜ x˜ |˜ ‚˜ ˆ˜ Ž˜ ̘ ™ u™ â™ {š û± ÿ± ² ² ² ² ² ñµ ôµ ûµ ¶ ¶ ¶ ¶ ¶ ¶ !¶ )¶ ,¶ 2¶ 8¶ ?¶ H¶ N¶ Q¶ X¶ ^¶ g¶ j¶ q¶ w¶ }¶ ƒ¶ ж “¶ –¶ �¶ ¦¶ ©¶ ¯¶ µ¶ »¶ Á¶ Ƕ ζ ×¶ Ú¶ á¶ ç¶ î¶ · · X· º „¼ ‚¾ \"À öÅ É Y,Ê /#Ð  Ô ¢× 3Ø �Ø òØ H Ù ’Ü ¶‚Ü xï Çï ©ð ±  QX  ^z > �B x( ¨?( fo4 d;G šNM !W ³^ ÷b Hc e mCe áp mu ˜u ,w i z Û | Ü~ À  w‚ Ü‚ }„ … %… <… R… ©… Ö… K† »† o‡ ð‡ [ˆ Þˆ j‰ Ή ¹Š x‹ á‹ ›Œ � i� Ë� 2Ž ‘Ž ðŽ P� Ä� -� ®� ;‘ È‘ 1’ ¤’ “ k“ í“ m” à” I• ²• – Ž– — ’— ˜ +˜ B˜ ^˜ š˜ ?™ ™™ ý™ zlš øG© “F´ çÀ xSÇ `B× ºNã i5ó þ2ý Õc='#j#`$Ó$V%l&Ú'?(ò)Ž*/+˜,7.N2ß2¨34s4›4!5 6"!7;Ð ; =�>©>L?ª@zB$CžCµCËCD"D&D+D1DPD“DâD'EaE’E6FTFG#GhGªGíGHÂHàH“I¬IåIJDJbJK(K|KÂKÝKøKL.LILdL§LëL>M“MëMCN›NóNKOPêQTS}U2W«WÁWX<XZX Yw\{\€\‚\ˆ\Ž\”\›\�\¥\§\«\¯\³\·\½\#]J_½bVe¼)fÖjK(kï-o.u{Ó{¯€€ �K‚& ƒ¿„ …=…ª…ù…(†¨)‡—Š1‹Ë‹ÿŒÌ�…ŽQ�L�t�÷�Ü‘Ç,’ šÎš½›F�d�œ�‚ž…ž‰ž‹ž�ž“ž˜žžž¡ž¨žªž®ž²ž¶ž½ž¡Ÿò ƒ¢ê¢F£*¤¥ ¦ü¦Z§_¨È©&ª)«†«t¬c­ˆ®ä®B¯g°ð!±²]²j¼n¼u¼w¼{¼¼ƒ¼‡¼‹¼�¼“¼™¼½½½$½&½+½/½5½Z½À©ÁÆÂÃdéÃÚÃ~ÄœÄPÅvÅ”ÅHÆfƬÆÂÆùÆÇ=ÇñÇÈRÈhÈ«ÈÑÈïÈ£ÉÁÉÊ#ÊgÊkÊËËË#Ë'Ë+Ë/Ë7Ë7Ì’ÌõÌ%΀ÎÛÎcÏeÏjÏoÏtÏwÏ|σσЇÐ�ГÐÑ"Ñ&Ñ*Ñ.Ñ5Ñ¡ÑÿÑNÒ³ÒÓÓßÓ:Ô¹ÔyÕÉÕjÖÔÖ2ׄ×÷×eØÌØ7ÙÌÙ^ÚÀÚÛvÛÑÛ}Ü×܇Ýsàvà}à€à†àŒà�à•à›à¡à¨à«à³à¶à½àÄàÈàÌàÔà×àÞàäàìàïàöàÿàááááá$á'á-á4á=á@áFáOáRáXá^ádájápáwá4âšâ°â$ã#Wæ ô”÷aúàKú   è 噪B'ï0T1@4ÊL9x8Ao-H?NõNìSQWk/]•$aMe";furÜu·3y@�!‹q?‹½‘þ.’ñœB¡`¡¸¡¢I¢À¢"£‡£é£B¤š¤ý¤Ï¥&¦1¦ˆ¦“¦ê¦½§ÿ§±¨pªȪåªK«š«ê«:¬v¬¸¬.­Ý­5®R®¸®¯W¯§¯â¯!°а±:±¡±ܱ²ʲ"³?³¦³´L´i´;%µ�¸!¹£¹ºƒ%¿ŸÄAÈ‚bÑz2áêÏ&î9-ößþ°=š ­ v ¢ ± ‡¦š�«…F" Ç Ã!Ÿ"Š#b$y$Ú$å$V%±% &õ&Ð'¸(«)*j*È*ð*|+§#-È0Ò0!1q&1Â97@O@Ÿ&@ñD+HI IIII I$I(I.I2I8I<ICIºIJ*J×JsK LkL¼LMpMNN NNNNN$N¥NWO%PíPOQçQëQïQóQ÷QÿQôRQS�TÜT7UNXQXXX[XaXgXjXpXvX|XX…XŒX�X•X˜XžX¤XªX²XµX»XÁXÇXÍXÖXÙXàXæXïXõXøXþXYYYYY'Y*Y0Y9Y<YBYHYNYTYZYbY°ZV[¼[\�\ç\B]2^"_`a&bDcŸcéc3d‡d@eÄeÍe…fáfIg¥ghvhÕhËijjj_k¯k¤lµmÄnínÈo·p¦q–r s�tït|u×u>v›vwiwÍw&xˆxíxÞyÏz¿{Ë|Õ}ï}‹~z€b€É€&�œ�õ�O‚@ƒ1„!…-†7‡W‡"ˆˆo‰_ŠY‹æ‹AŒ¨Œ�{�Ô�.Ž��‘ ’“6“”^”N•>–7—Ä—˜†˜ã˜Y™²™ šýšî›Þœê�õžRŸG¡N¡R¡W¡Z¡`¡f¡m¡v¡y¡¡ˆ¡Œ¡“¡™¡Ÿ¡¤¡¨¡¬¡°¡¶¡Ñ¡ë¡¢/¢£T£³£Ó£¤¤�¥–¦™§¸§ï§\¨°¨©Ž©ò©ªàª4«T¬t¬E­0®6¯�¯¬¯ã¯P°¤°±™±ý±²޲â²´U´¸´×´JµP¶¤¶·#·Z·°·¸€¸Ô¸8¹Z¹–¹6ºŽº²» ¼3¼Ô¼Á½¾ÿ¾P¿?À,Á}ÁwÂ}ÃÌÃìÃ%ÄÄåÄWŝů5ÆqÆÇ5È�ÈåÈIÉvÉÊêʿ˓ÌhÍHÎ5Ï�Ï­ÏèÏ`иÐÛÑõÑnÒfÓ†Ó¿ÓÔÔñÔIÕ­ÕÐÕ ÖƒÖ§×ÿ×WØ»ØØØQÙ0ÚˆÚ•æüó ø øøøø"ø)ø/ø5ø=øAøGøMøTø]ø`øføløqøzø|ø€ø„øˆøŒø�ø—øþü"ý‘=ýk,« ] a w × 4[èÑÂA = |º"éæ5!%#² (0+¦ ,§).9(3æ7…8õ/8@7B@éG:H#L\Oý(RÿW&[X©G`gRg¡gðgAhJi®i jk@lfmËm,nIn¶nogo„oño@p` p\)ruuvøvw;w˜w x~xoyÓy-zwzÙ{ß{â{è{î{ô{÷{ú{|| | |||||#|*|,|0|4|8|>|W|®|}n}ä}Œz†³‰Š¡�üŽ �£’–² ™t›è ¡eª¤õõ Æ¢ÈÀË&Ì�Ì "ÑÚ Ûv݉ÞYàpá ãäænæ§èªè°è¶è¹è¿èÅèËèÎèÑè×èÞèáèçèíèôèøèüèé éééé"é+é.é4é;éDéJéLéPéXéZé^édé©é&fê/ýŒ,¶1 $Æ;' ¡%?&ê&µ'C(3)Ú)l*Ã*(+�+«+ä+ý+Ñ,þ-&.§.;30"6,%:Ñ >&@wCîC�DÞD.E£E¨E¯E´EFÝFSG¿GHÌH©I!J»JDK K!L¡L M‚MøMoNçNcOÙO?P°P QbQÔQ-R“RìR]SÅS-T†TâT§UViVÁVW2WmWÆW XÈX*Y§YZƒZðZb[Þ[?\­\]{]’]ö]Y^[^_^e^g^k^q^¢^~_ß_5`z`¿`aEa‰aÌabGbëb c¼c»dÀdÂdÇdÌdÏdÑd×dÛdßdådçdëdñdeLe…eöebfÅf#g“g±gdh�hàhi[i´i^jÃjk„k£k\l•l¹l^m}m4nûnýno o ooooo%o+o@oUowo¹o p|pöpjqŒqÎq"r�r¥r»r5s©svvvvvv#v)v/v5v<vRvdvyv�v¥vªv²v·vºvÁvÇvÏvÒvØvávävêvðvùvüvwwwww"w€wëy9|m~š€�ƒ5‡¾Š™Ž!“9'–«œ�Ï¢6§Ñ ªÚ*°!F¸x;ÇÂ̾3ÒØ,Û»)ß#è¢î�ñ‹ñªñbò‘òØò;ó£ó2ô–ôúô`õÕõÕö%÷£÷Â÷zø— ø|ýÖýJþiþ!ÿ†ÿëÿä4™þ5¯ÿdÁ˜ì ö E ” ± ÷ T € 㠨NJÃà>Z]dkory…�‘—�¤­°¶¼ÂËÎÔÚßãçëñ÷<`ÐI:?¢T´8¹– {!D"ñ " $ï$)%')º+�-‘"/´3× 5§7%9ê$<Ð@eAÔA÷9A &G†JAM  OESeKSQ;Z†_Õ_&`/a“að/aÏfüf higjºk mZn�o»pq9q¦qöqWrtrár0sPs%u˜w)x4x©xÉx&yœyöy[z€z¼z1{–{ð{V|È|+}J~N~R~V~\~b~d~j~n~t~z~�~‡~�~³~æ~qÌ€;�¾�‚‚ƒ”ƒ „‘„……‚…‡†ô†M‡m‡ì‡ƒˆÞˆB‰e‰ý‰bŠËŠ'‹„‹΋%Œ‰ŒîŒ �Å�ä�œŽ� �Ù�%�)�1�:�>�F�N�V�^�f�n�…�œ�³�Ë�b–‚ † � � • ™ Ÿ É  q £½¥Š¦Å§è¨ï©JªÚªÑ«ï«¢¬ä¬Ÿ­O®ý®À¯°¸°P± ²ó² ´l¶ù·Û7¸—Á¢ÁKÇôÇÈLÈkÈ$É]ÉzÉÊXÊuÊÕÊË+Ë‹ËÄËáË@Ìs̬ÌàÌÍŠÍÿÍXÎ�ÎÞÎCÏ¨Ï ÐwÐÖÐqÑ ÒdÒÓ!ÓÑÓÜÓ5ÔTÔ ÕFÕbÕÂÕûÕÖ¿Ö"פިޯ޴޺ÞÀÞÂÞÉÞËÞÏÞÓÞ×ÞÛÞãÞåÞéÞïÞ5'ß\$å†%é î!ñŒõ 3øN&K@Ã,T3 &#("¸%-&›&&Š(*$.™.ö+.¸5+6@:�:³;;7D0J0RýSTÔTU:U`U“UQV2WLWhW›W[XªXÇXlYËYZ>ZeZ§sZodoÕ+qÃy*z× €|„Ì1„éŠú�J�õ’ã$•Í*›G m£ë§d«¨¬²¬߬­k­/®®Ø®â®>¯–¯û¯S°¸°Û°"±t±º±²d²˜²@³_³´´b´ž´í´ µ®µ¶s¶¾¶æ¶·G·k·¸¼¹ùṩºj¼ƒ¼´¼n½‡Æ‹Æ‘Æ—ÆŸ*ÆÎP*ÎÓÎÓþÓHÔfÔ¨ÔÕaÖ»Ö×Q×ÔÙíÙïÙóÙ÷ÙûÙÚHÚÜ–RÝdçWñqó˜)õ³)û�;9 ‰ Ø •³Ò%¡ENkÐ(ì<øƒ±ÏîAÚ–Ÿ¼! y <!Œ!H"Q#n#Ó#&;&Y&x&Ý&v'ª(Ç(+){)è)¬*à+ý+`,g-m*-67P7®7Ò8Z 9A<½<×<@=Æ=ƒ>0?2?8???A?E?K?Q?Ñ?í? @&@Â@ AhAØA8BÞB\CD~DÛDÀFÄFÈFÎFíFrH÷IçJ»L!M’MTNqOüOvP%QR SSTCU-V-WúWÄX^Y’Zk[-\]¾]’^,_÷_˜`ga~b‹c‹gªgbh‡h¤hüh]iß iÀl¾nNsØsÙucvùv]wÊxïy {0|O}l~‹± €Ê ‚`„„…§ † ˆ–‰¹ŠÛ ‹X �ÑŽïŽ(�?�ß��'�ß�F‘N‘„‘å‘F’‚’¸@”O¡i¡Í¡„¢,¦ç§ð§%¨s¨¨8©„­ò­¯®ã°þ°‡±M³ä³þ³n´ÿ´oµ¶Ô¶¸¸ ¸¸¸¸¸¸%¸)¸-¸3¸9¸=¸A¸G¸€¸¯¸ç¸¹6¹¹¹عö¹º4º­ºA»¹»¼e¼¸¼C½ó½C¾ ¿w¿Ç¿‚À>ÁúÁlÂ.ÃîÃÄ1ÄNÄçÄ]ÅÓÅŠÆõÆŒÇõÇ–È]ÉÇÑÒÒÒÒ#Ò)Ò?ÒâÒ+Ó�ÓýÓšÔÕqÕÅÕÖgÖjÖpÖrÖvÖ|Ö’Ö5×~×Ô×PØ­ØÙŽÙâÙ5ÚŒÚ�Ú•Ú—Ú›Ú¡Ú·ÚEÛŽÛäÛ`ܼÜ9Ý�ÝàÝöÝ„ÞÒÞßqßíßIàÆàámáƒáâ_â¨âþâzãÖãSä§äúäGåJåPåRåVå\åråæIæŸæç|çùçMè èíèðèöèøèüèéé¥éóé<ê’êëiëæëîëIìžì¦ìùìýìí íííí6íLíaíwízí€í‡í‹í’íší�í£í©í°í·í¾íì1íšöèö7÷†÷%ûŽÝC&  ² X tü„á>×6¾F¥¬üžF«±ÊÌÐÔØÞ÷ÕŽ ¬ _!ž!"q"­"#à #3&È&‰'@()ì) +Š,©-t.¾.Ù.I/‹/û/X0s0ã081§1Å12+2F2ˆ2¬2Ç2 3-3H3Š3®3É3 44À4æ45¸5Ü5÷5K6úvxwåwAx�xfyiyoyqyuy{y}yƒy‡y�y´y‘z¨| }© ~ �É�k‚ú‚ƒ�ƒîƒ±„"…w…•…H†P†o†ö†,‡�‡Õ‡ëŠíŠóŠùŠûŠ‹‹ ‹‹‹‹P�o�“D–¤–— ™‚›“ Ÿ"¢§†¨°ª‡®$²Ï¸�¼(½¼½J¾á¾i¿À’À&Á­Á0¹Â'ÛÃÄ,ÄdČƎƔƚƯÆÄÆÙÆÝÆäÆæÆêÆîÆòÆøÆÇSÇqÇ%ÈJÈ{ÈÀÈÉKÉšÉéÉ7Ê|ÊÂÊËeˋ˩Ë\Ìa̾ÌÍwÍCΓÎÏÑÏ-МÐîÐCÑÌÑÒpÒÓ8ÓÿÓdÔ¹ÔNÕÖwÖÜÖ1ׯ×zØãØ?Ù¦ÙÚpÚÌÚ3ÛèÛ�ÜUÝ»Ý!Þ†Þ)ß�ßÙß0à�àÚàDá¯áâ„â¬âÔâã6ãœãägäœäåhåÌåMçTçWç]çcçiçpçtç|ç~ç…ç‡ç‹ç‘ç—çŸç¡ç¥ç«ç¯çµçºèÀèÄèÊèÐèÔèÖèÚèàèçèéèíèôèöèüèé éé�éPê†ê¿êëgë»ëìgìºìíòí¤îøî†ï¥ïÞï ðvðËðéðœñÇñ ò_ò´ò óÏó/ô¾ôMõkõöLö¢öåö;÷Ö÷qøÒø1ùÀùNúáúûúGû£ûÿû^ü½üýýàýMþ®þÿÚÿ›ü]�Oµ‡¢íN®nÏ1¯~ ¤  _ À  w ‚ P °  l É zb¾G¢ýX³iÄzÕ0‹å"$(0ÿΛµNjªU›áS“ÓBˆÎZ—× W — !U!›!á!'"m"µ"õ"5#u#µ#õ#Z$ $æ$,%^%ž%Þ%&Ž&Ô&'`'¦'ã'#(c(£(ã(6)|)½)*Ž*’*Á*+…+ú+X,Á,4-æ-è-ì-ò-ö-ü-..h.BO/O =S\B5.TÒ\²_ÒbÝbÙeehk& mngqÀsavxÛ y{^}°€ã€£�®�‚c‚†‚ƒ®ƒ–„¹…††¥†^‡…‡¢‡ˆ&ˆ‹ˆ°ˆˈ.‰M‰“‰²‰ø‰ŠŠŠªŠ‹;‹Ó‹�’Žá���“Ø–˜ï˜Ç™¦š+›>œáœ( �M è ¢ ¡þ £'¥Ñ ¥â¨…©I«™¬Â¬ö¬¯­®%®…®å®-¯Œ¯¦¯;²o´†´ò´µ¶Á¶w¸›¹Èº¼B¼a¼½’½”½š½¡½§½ɽ ¾w¾˾ ¿t¿¥¿é¿IÀžÀóÀGÁ¨ÁÂ[ÂéÂ>Ã\ÃÄGÄbÄ¿ÄËÄäÄÅvÅœÅîÅ@ÆÆÙÆÇÓÈïÈ É&ÉAÉaɶÉÖɊʪÊá4ʔүÒÝÒýÒRÓrÓ'Ô|ÔšÔ·ÔÕÔòÔÕ*ÕGÕdÕ€Õ³Õp–Öª÷Ç÷ä÷øø;øXøtø�ø¬øÇøçø?ù‡ù3úOú�ú> ûEþbþ}þ�þóþÿÈÿ=U‰©6ª¿àNÃÛ/‡œ)]}Õê_w«Ë#9h„¤[ ^ z š ñ  È L ¨ Á  6 R n Š ¦  ß û 3OoÆæœËç#Ø!AöAï 'B^z–±Ñ' G ý !%?%]%{%™%·%Ö%ô%&/&L&j&‡&§&þ&'Õ'($(@(`(·(×(Ž)ë) *&*h*-+Š+¨+Å+,Ì,$-m-Š-¨-Å-".<.\.³.Ó.Š /Ø2ö2333R3p3�3­3Ì3ë3 4'4G4ž4¾4t5”5ÌA5nBŒB¾BÞB5CUC D�HŸH¼HÙHöHI0I‡I§I]J}JòJK(K—KO O@O–O¶OkPÖP2QLQhQƒQžQºQÖQ2RLRlRÂRâR—SÔWlX½XQY•Y)Z}Z�ZóZ[È[`+`K`¡`Á`v¥an„‡„»„Û„3…H…h…†=†t†”†‡(‡Ý‡ò‡ˆ�ˆ¢ˆ‰2‰£‰Љë‰ ŠaŠ�Š6‹V‹Ê‹ß‹Œn4ŒŠ•¦••╙ –š™¿™ä™?š˜šd›ì� ž'žGžýžŸu7ŸP§m§�§ä§¨º¨)®E®e®»®Û®�¯Û¯ø¯°0°�°§°ǰ±=±ò±I²¤²½²³1³Q³´{´”´´´jµ˜µ³µÓµˆÀ¶.ÝJÝf݆Ý;ÞlÞˆÞ¤ÞÄÞyßòß à,àƒà£àZá�á­áËáèáâ_ââ6 ã™ä·äåmå³åy ægè…è£èÁèÞè éå éë�ë¹ëûëÀ ì¤îÂîÞî ïå.ït÷’÷°÷Î÷ì÷ ø&øFøüøùtùÄüâüýý=ý\ý{ýšý¸ýÖýõýþ2þPþnþŒþªþÇþçþ>ÿ^ÿ4lU,Ji†¦ýÔ!=Xx-„ ¼kÂ}¾Üú6Us‘¯Ìì£ÔñÈû6V Fd‚¡¿Üü²)Cc�©É~õ/…¥ZÒì Á 8!g!‡!<"³"â"#X#x#-$¤$¾$Þ$“% &9&Y&'…'´'Ô'*(J(ÿ(x)’)²)h*á*+0+æ+_,Ž,®,-%-Û-T.n.Ž.D/»/ð/0Æ0?1Y1y1/2¨2×2÷2­3&4U4u4Ì4ì4¢5656U6 7‚7·7×7�8š9·9Ó9ó9I:i:;>;u5;A0A_AAÕAõA«PBúQR5RUR¬RÌR„ SÂUçU V*VGVšVgWdY‚Y Y¾YÛY.Zú Z\^z^—^·^_._å_%`C`a`~`œ`º`×`÷`Nana%bXbvb’b²b c)cßcnd‹d§dÄdàdýde6eRene‹e§eÃeßeüef4fPfmf‰f¦fÂf g(gDgdgºgÚg�h¯h#i8iYiÇ�i‡#‡?‡\‡y‡–‡²‡·ì‡ ˆ)ˆˆŸˆT‰t‰«‰#Š?Š\ŠxЕвŠÎŠîŠD‹d‹Œ9ŒqŒIŽ- �¼‘=˜q˜‘˜ë˜™ ™×F™‘¢¯¢Í¢ë¢ £(£E£e£¼£Ü£“¤Ťâ¤þ¤2¥R¥¬¥Á¥á¥˜¦ã¦§§<§m§+¨^¨|¨™¨¹¨©0©ç©ª9ªVªvªÍªíª¤«׫ô«¬0¬‡¬§¬]­° °@°–°¶°k±²²™²ö²³m³‡³¤³¿³Ú³÷³´-´J´e´‚´�´ù´µoµ�µD¶t¶�¶ª¶ʶ ·j·‡·ò·¸+¸\¸¹L¹j¹‡¹§¹þ¹ºVº¡ºÀº.»K»|»:¼m¼м§¼Û¼û¼U½j½›½¶½ѽí½ ¾c¾ƒ¾8¿k¿†¿¢¿¾¿Þ¿4ÀTÀ Á)Á`Á‘Á¬ÁÇÁãÁÂYÂyÂ.Ã_ÃyÒëÃËÃ!ÄAÄöÄÅMÅmÅáÅöÅÆ…ƸÆÓÆïÆ Ç+Ç�Ç¡ÇVÈvÈ­¦È$è>è^èµèé é>é\ézé˜é¶éÔéðé ê(êDêbê€êžêºêÚêëÀðoñÄ ñkôƒô(õA õ“÷ø‘ø„ùnú˜ü(ýþ‹â9Oîüªë b‚÷  - � £   w — M m â ÷ ˆ «Ë"Bø�¢Ã3=�Û2f†àõŠªOd…õUt¾ï¬4PpÆæ›»ò4·#Ó#$"$x$˜$M@%ë23#3C3™3¹3p 4l6‘6¶6Ô6ñ6D7 8§9Å9ã9::q:= ;í= >)>F>f>½>Ý>”?Ç?å?@"@y@™@PA†A¤AÁAÝAýATBtB+CwCÕCðCD,DIDiDÀDàD–EÍEéEF#F?F[FwF—FíFG8GXG®GßGûGH7HŽHÁHßHüHIsI“IJJ}J›J·J×J.KNKL:LXL†L¢LÂLM9MðM#NQNmN�NäNOºOÚO]PrP“PQtQÒQìQJRdRÂRÜRS0SŠSŸS¿SuT•T UU@U¯UW\q\¥\Å\]2]R]Æ]Û]ü]j^‹^û^_‹_á_=`V`²`Ë`ÿ`awaŒa¬a b5bVbÄbåbUcucåcƒh¬hàhiei{i5kZkvk§kfl‡m¥mÂmàmým.nínùop5pQp‚pAq‹q©qÆq÷q´rBs\s|sÓsósªtÚt÷t+uKu¥uºuÚu�v°vçvw|w‘w²w!x›xÅxùxy€y•yµyìy z�z¤zÅz6{~{£{¿{ð{¯|÷|}1}b}T~ÝŒùŒ�2�R�ª���¬��9�—�Ê�‡§‘‹³¥³ų´<´ò´µJµ‚µ¡µÀµÞµúµ¶Ð¶ð¶(·ñ¸¹.¹…¹¥¹\º·ºÕºóº»/»L»j»ˆ»¦»Ä»â»¼¼=¼”¼´¼l½ô¾`¿‘¿ï¿"ÀáÀûÁ Â>Â]¿Âð­Ã;ÅRņŦÅþÅÆYÆuÆ�ÆÕÆÇeÇ�ÇÀÇ|ȯÈ*ÉRɆÉûÉgÊËÊåÊHËa˨ËÛË:ÌbÌ•ÌQÍ„ÍÿÍ'Î[ÎÐ�Î%êAê]êŽêëêëØë¬îÆî,ïîïò2ò�òRóèõö`ö"$÷RÌüæ*¼  Ù § ³ å:nŽæûÐðdyšY Äøp…¥Üüp…¦Ú÷nŽE&y – ¶  !-!ã !œ$µ$Õ$,%L%&!&~&Ð&K'�'Ø'(™(æ( )Í)*9*Ž*®*b+Ø+,!,v,–,J-¾-×-÷-L.l. /›/´/Í/í/C0c01™1²1Ë1ä12Z2z2.3\3Û3û3P4p4#5U5ˆ5º5ë5 6`6€64M7ÐBOC|CªCÊC D@DöDÆE"F;F—F°F G%G�GšGöGHkH„HàHùHIpI�IFJ"N<NpN�NèNýNO‘O±OUPjP‹PùPQŠQªQ9RÇ_à_`4`Œ`¡`Á`va–aÍaíaab�b%c:cÉcêcZdzdêd&fAfaf·f×fŒg¬g h5hVhÅhóhi/i…i¥iZj‰n£n×n÷nQofo†o½oÝoRprpq,qMq¼qÝqNrnrß rÃuÝuv1v‹v vÀv÷vwŒw¬wQxfx‡xöxyˆy¨yz`z�zºzçz{— {}|Ô|U}Ø}[~Þ~‘@€ï€ƒ�Í�ï�²‚ƒ$ƒ ƒéƒe„Ï„ð„l…Î…I†j†´†܆ý†G‡o‡�‡Ú‡ˆ#ˆmˆ•ˆ¶ˆ‰‰Š‰º‰܉žŠ·Š‹+‹L‹­‹ Œ\ŒÁŒâŒD�-ŽGŽg޾ŽÞŽ”�´�)�>�_�Î�I‘c‘ƒ‘Ú‘ú‘´’“3“R“§“”[”•]•Š•·•ä•–” –x—Ñ—R˜Õ˜X™Û™Žš=›ì›€œÊœìœ¯�ž!ž�žæžbŸÌŸíŸi Ë F¡g¡±¡Ù¡ú¡D¢l¢�¢×¢ÿ¢ £j£’£³£ý£¤‡¤·¤Ù¤›¥´¥¦(¦I¦ª¦§Q§¶§×§9¨"©<©\©³©Ó©‰ª©ª«3«T«ë>¬X¬x¬Ï¬ï¬©­®(®G®”®ð®@¯ûm¯vÀ’À®ÀÎÀ$ÁDÁùÁ'ÂRÂrÂÈÂCÙÃïÃEÄ›ÄñÄGÅ{Å›ÅóÅÆ(ÆÝÆýÆqÇ†Ç§Ç È›ËµËÏËéËÌÌ8ÌRÌl̡̻̆ÌïÌÍgÍ|ÍœÍR Î.Ñ™ÑûÑ�Ò@ÓÕÖñÖ×Æ×¢Ú¼ÚÜÚ‘ÛÜ:ÜVÜsÜ�ܬÜÈÜåÜÝÝ8ÝSÝn݋ݦÝÁÝÞÝúÝÞ3ÞPÞlÞˆÞ¥ÞÁÞÝÞýÞ³ß à„àžà¾àá4á¨áÈálâ�â¢âã1ã¡ãÁã1ä¨äÂäâä8åXå æ„æžæ¾æçEçaç}ç�çóXçýý8ýTýnýŸýýýûMœÐðJ_ô¹Îï_ Âàü0 P ª ¿ ß • µ * J ï  % • ¨Æã7‘¦Æ|œ1Öë |"g…¢Â9ï„™º+½Û÷nŽEÆo   þ 1!ï^!¼3å4Â5Þ6ö6*7J7¤7¹7Ù7�8¯8$999Z9ʇ99Q©QÝQýQWRlRŒRÃRãR™S¹S.TCTdTÓTù/U1b`b€b×b÷b­cÍcBdWdxdèdf†fñfJgøh¥iWk´kp1pQp¨pÈp~qžqr(rIr¸rèrss>s”s´sit›t¶tÒtîtuduFv`v‘v… v† Oà mÄ ©‘ U’ 3˜ ¢± ³ ÔCK“[¥ �§ »¢¼›ÊäΜÐ�Ý4HyMQ@UG Z[&Ÿ�æ ó! ö€zŠæÿ]ØcPn²sG G }4–ðŸt Ýš¹2ÆN ÙH-Ÿ>lF"‘ª”ð ¶H ÐÐÑ!Ö>Úå©èáî_wÛx5Š\,Å"á§âÏâûå¾çí£úïÝ :$e&() *°*< -3½ÇÄÓÄë ð,ŽPµW´¯² ` d Ž� ±? ðPC(Q¯_�º.ÊR$ÿEë µ Û‡3QÙe˜ Ç ê zõ gú "2 þm f p ôu œw Dx å  ²‚ ‰ ƒ _† 6 ‡ l‰ CŠ 7Œ � §� Ù� «� ]’ t” H— ›˜ %· ŸÜ … ( zu I… ý… Ë ’ O˜ ¦™ €4œ>>D�ECFG HÏH I>JQJ5K¸W6XIX]<kÅ{ú€ó„ †Y�S�B½ÉËÄpŃÅUƹÆÇ,ÇþÇ_ÈËÈÞȰÉÊãÄú>1ßN fO¡! ¢ä§—ªa¬�¬®ί °÷°ȱ²ñ²8´Y´.%¹Õ*!J] ZÓc{dù eÑnü tâ}‡ D‡f ‹#“D —¢À£¦§ÿ©a¬š¯ ²Å´·E¹¼Ùà ÆVÉšÏèÑsÓºÕÈØ ýA‰ @ Xÿm:oMpwK|}qéš+ñ+ .„!C&Wà Wˆ]~ ^6bøbþd g~híh‘kvlkmbowq/w˜ño ò°÷‡øWþøÿ"¡ µ¤Iü $áARSÜfïp*r=s¶xhzÀ ~…Z‡O‰ûŒÒ��¬ Þ«¯¬ÈYÈ>É9ÊïÊ¥ËbÌÎÌe ÎBÔ'ÕÜÕüÞ¡; T UzUŒV‚WuX0ZXZrZì¬Å°†²M³X´¸´ض·(·Ð¹ ¼�¼èÓUÔ Úx"Õ” sS n!%#þ%¿&~(Â)´+¼6‹779Œ<›=ª?£@ý@³A1CTDÛFÈL˜goh iÞŽ5���Ù ¤¡©Ç­f°^±­³Î´ßµ’¹Œº »™»ö»½@ÂÁóÄZÇcÈ6ÒïÒ‰ÖB×®ÚRÛíÝßÞzálâiå æéêË íëŠë› l!˜.m/201´12•23—34à4ó4Å5cwoxšyƒ„…]†Q–ÄÇ`ÇEÈW ȅ˘Ë(áãtäéŒé] ê“ïØð©ñZõ+ öˆú ûw%¼ üZõí!fç y"@$8%m&²'*) ) .Ê€é�p‚“†k‡ˆ–ˆ;‰ ‰Š—Š(‹î � �»¬ä¬Þ­¯™¯|´ÿ´;¼O¼´½� ¿KÃ*ÄÇÈQÉÆÉšÊŒÒíÒbÓ^ Ô�Õ‘ ÷×øvùlú;þ�þÿóÿ„™&ºÏy —ÇXm妻3a”W Š    * 1 8 ? F _ÖÃ1ÝÁ7  %—&'þ'P(Ç(Ô)P*s+ï+---L.Ã.½ 274®4„5eBÎBECqH I—ImJKKþN0O¦O¢P³P¼PÆP\RÒRÀWÇWÎW�Z[È_;`±`$„¶„Ë„C…X…-†„†‡í‡ˆ‘ˆ"‰Ê‰û‰qŠF‹Ú‹ï‹‚•Ò•z™všã�7ž ŸI§}§ô§#®U®Ë®¿¯Ë¯·°-±%²9²A³1´¤´’µÃµ&ÝvÝdÞ´Þ¥ßà“à„áøáoâ€ä—åLèéhëãë�îïb÷6ø ù�ü×þNÿ$!– ühoó£§ ÜÍòF7ìÝSC¹©•…üì w!g"ò"h#X$Î$¾%I&9'Ä':(+)¢)”* +,ž,-.~.p/0ò0i1[2ç2Ù3e4Ü4Î5E677Ç7’9ã9Y:.; AoAåAñQER¼R U~VBYZS^§^_``ç`^aOb¢bcd%d,d3d<dGdRdYdcdhdTgÊgŸh3iHiñ †ˆ�ˆd‰ŠÞŠT‹)Œ4Ž<ŽDŽl˜�˜û˜™€¢U£Ì£¼¤-¥B¥¼¥Ñ¥Ñ¦Y§U¨©¨ ©ªfªÝªÎ« ¬—¬þ¯0°¦°¯±Ã±×±è±ñ±ú±² ² µµl¶º¶X·H¸C¹—¹º�ºh»d¼Ö¼ë¼e½‘½ý½s¾a¿Î¿DÀÁ‡ÁóÁiÂUûÃ1ÄÅ]ÅñÅÆ®ÆÇ‘ÇfÈØçNèßèÊê\ðfðzð‹ð”ð›ð¤ð´ð¹ðûr  ›  ‡ ] ò »2�²2avðš_tEÛ`Ö«¯#$ˆ$ã233©3J6(7…9U:â=V>Í>¾?@‰@zAíAdB^CoCYDÐD½E‡FGHG×G'H¸H IƒItJÇJ>K/L²L)MN}NôNÊOmP‚P<QPQdQ S SšS¯S…TU/U \ \µ\-]B]Ö]ë]z^ _¿_Ò_ú`a‡aœa0bEbÔbec7hÛhðhui%k“ksmnçonpzqãqõrlsãsÓt&u;uµuÊu v÷vŒw¡wNxôx y�y¥yüyŸz´zn{Ü{ç|N}ÓŒB�}�%�´�>³µ³,´µtµ ¶à¶ê¸¹•¹�º—º º§º®º-¼¤¼å¾}¿ ÀçÁÜÂóÄ�Å–ÅÆKÆÌÆòƂǪǙÈGÉoÉ>ÊRÊ�ËÅËWÌÌnÍÎDÎêzêë?î ï«ñoò{õ?ö¤ÿ®ÿ¸ÿÂÿÌÿÖÿàÿêÿôÿþÿ&0:DNi~ö àt‰Só€•쀕Ó~r ¦ !Q$Å$<% (É(Ç))*ž*Œ+,†,t-ç-\.K/Ý/S0C1ô1j2U3ë3`4J5û5p6ÆBºC0D>EREfEzEŽE¢E¶E I€IØMkN€NøN O¡OePzP QšQ}_`$`œ`±`†aÝaqb5cJcÙcjd fQfÇfœg0hEhíhi•i>nÒnçnaovoÍobp'q<qÌq^rxu v!v›v°vwœwaxvxy˜y)zÛ�ڂȃ¦„­…W†Â†U‡è‡{ˆ‰±‰È‰¬Š‹ó‹šŒà�WŽÎޤ�9�N�ú�s‘ê‘ù’Š“<”&•Øœ×�Åž£Ÿª T¡¿¡R¢å¢x£ ¤®¤Å¤©¥¦è¦�§Õ¨L©Ã©™ª.«C«ï«h¬ß¬î­w®!¯nÀ¾À4Á!Âb ÃÃ!Ã+Ã5Ã?ÃvŋůÆíÆ�Ç–Ç� ËêÌÿÌwÍŒÍ ÑSÒÏÖ×VÚÌÚÎÛÕÛÜÛãÛìÛõÛþÛÜ ÜÜíÞ8à®à$á¸á|â‘â ã±ã\äÒäHå8æ®æ=ç�çîü‹ýòËàZoÉÞ¹+ @ º Ï ¥ : ÿ  Ÿ'¡¶Œ!æû^²)ÿ”©´~·Œ !›3£3«3%7:7´7É7Ÿ849I9,QØQíQgR|RÓR©S>TST4Qáapbçb½cRdgdæeïeöeýeAp¸pŽq#r8ràr.s¤s‘tþtžu}v+++                          + +                                                              +                    '     '                              '             '     '                                      +                '  '                       ''''))*)))'' )))''   '''''''''''''''''''****)))*'))* ))))'))'''''))'  '  '  ******************'   '  '''')))))))' ' ' '            ''              ''   ******  '' ''   **)**''… t† ~† }‡ nˆ Nà \à lÄ È ”Í ™Ö EÞ ‚å æ ãæ öç yé Ëé —ê ‘ë Ôì rð "ñ ó õ ±õ ö Xö ¶ö ø Ñø <ù ýù ý Ðÿ ± 5 Û : ) ƒ  F ì „ ‹ ÿ -( í- 0 Ð1 g> æG QN 2_ l m #n .o �p ôp «q r ˜r „ Є … *… k… Ã… d† Ô† ˆ‡ tˆ ÷ˆ ç‰ ÒŠ ‘‹ ú‹ ´Œ � ä� i� Ý� F� Ç� T‘ á‘ J’ “ †“ ” †” ù” b• Ë• 4– §– )— ¬— ˜ 0˜ w˜ ³˜ X™ Yš © \´ ±À BÇ *× xã 5ó Æý ŸÉ"*#Ñ#—$%.&‘'´)O*ñ*X,÷-¡1g2ø2Á35°5š6Õ:†;¶<F>-?k@Ä@“B=C£CºCÑChD«DúD@EªElF;G€GÂG6HøHÄIýIzJK«KÆKáKüKL2LML|L¿LMVM«MN[N³N ODP¯QS@UõVqWÙWrX’[_Nb8ef�jDoZt zÝ~Ȃނ€„%…V…f‡<ŠçŠ�‹µŒ‚�6Ž��Ö�ƒ‘?’¶™‚šq›ûœ}�¢�Õž»Ÿö ^£D¤¥s§z¨?ª¡«�¬~­]¯<±6²¦»Ÿ¼á¿lÁ:ÂÞÂ-Ã|ÃòôĬÅ~ÆÚÆUÇ'È€ÈÉÙÉ;ʘÊbË"ÍáΛϙÐMÑÒ-ÓSÔ‘ÕáÕ‚ÖJ×œ×ØäØØÚŽÛ•Ü�Ý{á8âžâæå­ót÷Cúukm ÷ çÆ&0ˆ39¥@�GlMS?V~\¨``d7rœuxyÕ€âŠs‘´’³œ¡y¡b¢Ù¢;£ £¤[¤¥ê¥L¦¬¦§\¨¼©ͪþª³«à¬�­:®k® ¯t°"±S±n²'³X³¿³ù´5¸ã¸û¹K¿iÄÙÇIÑBáÌé–îö¦þwb u@l{Qf\CEâLJ ƒ!a"K#%$g$þ$¸&’'z(m)Ä)*[+N-@0g7^?¥DáG1H[IBJïJ‹KƒLvMP|Q*R~S=UhYÈZn[Ô[0\¥\ÿ\Z]J^:_)`4a>bdŸdXe�fûfag½g3h�hðh…jÊk¿lÐmoãoÐp¿q¯r¹s¦t•uòuYv¶v*wæwyùyêzÚ{æ|~¦~ €}€ä€A�µ�‚j‚[ƒL„<…H†p‡šˆЉzŠÿ‹\ŒÃŒ �”�í�IŽ:�+�‘'’O“y”i•Y–Ý—:˜¡˜þ˜r™Ë™'š› œùœžŸXŸG¢£n£ë£¾¤©¥°¦Ч¨t¨,©'ªøªN«Œ¬_­J®P¯įû¯h°5±4²¦²ü²´ï´dµh¶¾¶;·r·+¸˜¸s¹¯¹Oº©ºË»L¼ï¼-¾k¿ZÀ˜Á�ÂÄ>ÄþÄpÅNÆŠÆ,ÇNȦÈ�É1ÊËÚˮ̃ÍaÎNÏÆÏÐyÐÓÐÒ‰ÒŸÓØÓ˜Ô ÕéÕ$ÖžÖÀרñØlÙIÚŽæó öNüqý5v Ñ ( e � È|?û¾õ4ãu¹!÷"’(+f,i.ß2§7>8­8Õ?7GMK�NÔQØV»_fZh$j3k[l1nbnlo�oruÈu v"wTw±w#x—xìyFz}zo|Æ|Ä}N"†t‰T�¼ŽÔ�c’¹•e™'››¡ ¤�Ã]ÆbÈ€ËÙ˲ÐÐÙ×Ú/ÝKÞà&áÂâØãÖå.æ‡æêåü[€ Þ†ëj%&®&w'(è(œ).*…*Ü*Ä+”,Ã-†.â2¨5Ñ9C>Ü?,CDGE3FöF6HåHÂI:JÔJ¹K:L$M›M‰NO|OXPÉP"Q{QíQFR¬RSvSÞSFTŸTûTÀU'V‚VÚVKW†W%XáXCYœZ [{[÷[X\Æ\(]«]ü]A_–_ `M`’`×`a]a¡a÷a_b!cÕc+ede�ef;gÉg¥hitiÍiwjÜj¼kšlÒl–mMn/oDo�oÑo%p”pq¤qæq:r”r©rÓrMs¯s¯yÊ{N~{€~ƒ‡>Š\Žã’û•_œÄœ…¢á¦‰ª’°ã·=dž̀ҜÛqßÛçbîCñÃñªòñòTó¼óKô¯ôõyõ>÷Û÷>ý•ýïý‚þ€MÍKO±’ 7 aàÈùFû° eÈl™A ø þ!©"Ê#¨$Ò&“(�+|-q/”3¸5i7Ü8�<‘@A�A\FÒIsLwNRdY›^?`äeg"h/i‚jÕk(mun¶o!qRq\r�r¾t=wëwMxâx?yµyz™zÕz¯{ |o|á|D}‹~¡~þ~5‰ä€×�0‚˜‚ ƒ­ƒ9„ª„4…›… ‡†‡ˆœˆ÷ˆ~‰�‹ç‹>Œ¢Œ&�ý�9�ò�3–ïŸH£¥`¦X§Á¨½©²ªª«¬l­/®g®¯دh° ±Ú±¸²Ó³0¶¾·\¸©À°ÆdÇ+È„ÈbÉ“É]ÊŽÊËDËÉËúËŒÌùÌ4Í£ÍΦÎ÷Î\ÏÁÏ#ÐïЊÑ'Ò}Ò:ÓõÓmÔKÕ{ÕÖ4ÖsÝ3å]éãíÈðPõbøòEÅ®!*%*’-$5°9ÇCÇIæQµS5TÛT!U?U¬UXVûV4WNW´W¯XàX…YäYúm¤q`y3€üƒOЦ� ’¦•„› 0£®§%«l¬̬­„­˜®W¯¯¯°ô°;±�±Ó±²±²x³{´ò´#µ-¶Œ¶L·„·™¹ù¹Ú»9¼l¼̼1ưÌ5ÒÔ~ÔÀÔ—Õ.×MÙÒÛCÝíå4ðMònôŸú|ÿ S ¢ 0š¸jëS„Až7L¶Ô£<¤Õ’ î!V#‡#¶%"&@&^&?'¯(à(*å+,G-h6â687š8ø;Á<ï<Þ=œ>W?Õ?ñ? @8AðAPBtC–DkFFHÎI½J’LuM4NFOÖOPPóPàQÒRTUòUWÔW�X3Y]Z [ø[º\Š]H^ø^­_d`a>bBc gÃgŒh½h¾itlnÞrishuôu‘vhx�yªzÎ{í| ~)N€e‚üƒ"…D†»‡2‰WŠx‹óŒnŽ�¾�@�‘g‘Ÿ‘’a’©”… ÿ Q¡X¢õ¥²§¨ý¬ ®š¯Œ°å°Ȳè³´µ(¶í¶_¸˜¸Ǹÿ¸$¹=¹¾¹ݹû¹º6¼~¼\½\¾"¿à¿›ÀWÁ…Â5ÃóÃÄ6ÄÅvÅìţƥǯÈGÐÍÑWÒCÓ™Ó²Ô‰ÕÝÕÖªÖ–×ì×)Ù¦ÙúÙ;ÚÏÚ¦ÛüÛÔÜQÝ¥ÝÞ3߉ßaàÞà2á›áÀâãîãkä¿äåŠåaæ·æ”çèeè¦è0éTêªê�ëaì¾ì öO÷¿úá¨v  ß".��úðQÙaÀ3*Ìí®g Ä ð!\"—"ü"¸# &ž&M'(Ì(°)æ*Q,p-*.Â.ò.¤/\0Œ0Q1Ý1/2^2°2ß213`3²3á3„45à56O6w‘wþwÚxqz | ~×€“�0‚À‚4ƒ§ƒ„É„:…­…‡†‡F‡›‡4Š��Â’Ç•ô–ݘO›`Ÿï¡â¦S¨}ªT®ñ±š¸j¼í¼�½¾§¾.¿È¿WÀìÀrÁôÁ~ÂÑÂ@ôÃEÄ[Å&Ç‰Ç“ÈØÈÉcɲÉÊOÊ”ÊÚÊ,ËÁË{ÌÖÌ3Í�Í[ξÎ*ÏFеÐÑ\ÑåÑÒ‰ÒÓQÓ}ÔÒÔgÕ ÖõÖJ×ß׿ÙLÛܶÜpÝÖÝ:ÞŸÞBßšßòߦàáà]áÈá3â‹â³âïâOãµãäµäå�åùå»ç8éµéžê×ê+ëëÓë)ììÒì0í î¼îï½ïöï8ðŽðñßñ"òwòÌò"óçóGôÖôƒõdöºöýöS÷î÷‰øêøIùØùTú®úãú_û»ûüwüÖü7ý˜ýùýfþ2ÿóÿ´©¼R‰gÇ'‡èJÈ6—# ½  x Ù 0 š â “×ëHæ¡» ‚°'m³+k«ÙZ æ,¯ï/ o � '!m!³!ù!?"Í" #M#�#Í#û#r$¸$þ$v%¶%ö%%&¦&ì&2'x'û';({(»(é(N)Õ) *­*Ù*4+ž+,q,Ú,:-Ç.Ì<ÑA÷S–\-_Nb‰ehÅj×l2n"q{svØw”y½z}a€ü€+‚Ë‚sƒY„q…=†¾†Ї¼‡@ˆµˆåˆf‰ˉ1ŠÊŸ‹ÌŒUŽ¥�“n–×—³˜Š™gšîšœ£œ! © W¡µ£ݤ”¥§¨F© «$¬­ ®>®ž®F¯ÿ±0´´´ñµw¶A¸q¹œºí»z¼1½á½%¾�¾ã¾8¿½¿ÀaÀ¶À ÁaÁÀÁÂsÂÃtÃKÄ|ÄÅÄÑÄþÄ7ÅzŶůZÆ™ÆóƧÈ×ÈóÈÉ*ÉyÉîÉÂÊlÒ˜ÒÆÒÓŠÓ.Ô�ÔŸÔ¼ÔÚÔ÷ÔÕ/ÕLÕiÕËÕq÷¯÷Ì÷é÷ø#ø@ø]øyø•ø±øÿøFùŒù8ú™úþJþgþµþ+ÿÏÿ?ÁmøUžÅG£ì•ñ:aã@m¼7 c ² ) Ï R ƒ ª Ç ø  : W r � ª Ç ã 8‡þ¢Ïë;Þ Y½ó+Fb~šé_ ä$&%D%b%€%ž%¼%Û%ù%&4&Q&o&¿&6'Ü' ()(x(ï(•)ð)*€*4+�+­+,Ó,(-T-q-�-­-Ë-ý-$.t.ë.�2Ý2û2383W3u3”3²3Ñ3ð34_4Ö4¬5EBsB¦BöBmCQH†H¤HÁHÞHûHHI¿I´J@KÞNOXOÎOqPÜPQ4QPQlQ‡Q¢Q¾QÜQR4R„RúRšWVX§X;Y€YZgZµZ+[¥_í_`c`Ù`„I„p„ó„€…U†ˆ@‡+ˆºˆJ‰©‰Ô‰#Š™Š�‹Œb•Ž•ª•ú•/™Ÿ™Ä™é™°šÃ�ñ�ž_ž5Ÿ)§U§¥§¨®-®}®ó®—¯à¯ü¯°7°i°�°ß°U±ù±P²�²¦²IJõ²³i³ ´V´}´Ì´qµœµëµÝ2ÝNÝžÝBÞpÞŒÞÜÞ�ßËßôßDà»àbá”á²áÐá â—âCäžä¼äåËåèlèŠè¨èÆè8é+ë„ë¢ëìPî©îÇî8ïB÷y÷—÷µ÷Ó÷ñ÷ø^ø4ù}üÉüçüý#ýBýaý€ýŸý½ýÛýúýþ7þUþsþ‘þ¯þÿþvÿL1On¾5Û %A�4ˆ¤(Ú…Ãáÿ;Zx–´«Ù)ÐnKi‡¦Ä¹+{i‘á…Ï÷G½a«Ô$ È !O!Ÿ!C"�"Ê"#�#4$~$¦$ö$š%ä%!&q&'_'œ'ì'b()Q)z)Ê)p*º*ø*H+î+8,v,Æ,=-ã--.V.¦.L/•/Ù/(0Î01A1‘172�2¿23µ3ÿ3=4�45ª5ô56m67\7 7ï7r9ž9»9 :�:V;ì@AGA—A BÑQÿQRmRäRUUÇUìUV/V²V÷XiY‡Y¥YÃYFZ3^a^^Ï^F_í_*`H`f`ƒ`¡`¿`a†a-b]b{bÊbAcæcsd�d¬dÈdådee:eVese�e«eÇeäeff8fUfqfŽfªfÇfófg,g|gògæhqiц ‡'‡C‡`‡~‡›‡·‡Ó‡ñ‡Aˆ·ˆŒ‰ó‰'ŠCŠ`Š|ЙжЋ|‹QŒŽìŽ�y‘¥‘û—'˜©˜8™`¢–¢´¢Ò¢ð¢£-£}£ô£›¤ʤç¤j¥ù¥ ¦è¦§$§…§3¨c¨�¨ѨH©ï©ª>ªŽª«¬«Ü«ù«H¬¿¬Þ¯°X°ΰr±)²[²�² ²Ò²ø²³I³o³Œ³¨³óß³û³´2´N´j´†´µ´á´1µ§µK¶x¶”¶â¶'·n·‹·ö·¸t¸!¹Q¹o¹¿¹6º^º¦ºź3»”»B¼r¼�¼½q½Ÿ½º½Õ½%¾›¾?¿o¿Š¿¦¿ö¿lÀAÁgÁ•Á°ÁËÁ‘Â5ÃcÃ}ÖÃãÃYÄ.ŤÅ/ƌƼÆׯóÆCǹǎȵçþç&èvè½èé%éCéaéé�é»éÙéõéê-êIêgê…ê£êòê$ðXñ®ñôHômôÕôõ*õ|÷ý÷zømùWú�üýüýtË"8×¹å“Õ#¹E { ê 8 ¯ ¤ 0ñ•ãZOÛwÅžLÂ�Zyð8ˆþÓ�#»#ê#:$°$Ã2ï2 3[3Ñ3ÿ5q6–6»6Ù6\7:9¬9Ê9è9:‰:Â=ò=>.>~>õ>œ?Ì?ê?:@±@XA‹A©AÆABŒB3C~C°C×CõCD1D�DøD�EÑEíE F'FCF_F¯FôF GpGµGãGÿGOH–HÆHäH4I«IRJ‚J JïJfK L?L]L‹LÚLQMøM(NVN¥NOP«P Q{Q­QÔQóQ%RLRkR�RÄRHS×SÌTXUè[1\Y\Ý\‰]^£^3_’_è_`?`]`�`´`7aãanbýb�ch]h…hiöj:k_k¿kDmŒmªmÇmåmFn¸oþop:pšpIq�q®qrÑrsDs”s t²tßtcuòuÈv>wÊw)xtx�x1yÍyCzÝz>{ƒ{¨{|·|ü|}z}³ŒáŒýŒ�j�N�’�±�Q�â�³d³�³ݳT´*µRµ‡µ¦µŵãµ2¶·ʸö¸F¹½¹dº¼ºÚºøº»4»Q»o»�»«»É»ç»¼U¼̼¶¾ù¾©¿:À¸ÁÂ%ÂCÂbÂÃÐÄÅ=žů]ÆyÆÇØÇæÈžÉÊnʦÊÍÊìÊ$ËJËóË­Ì»ÍsÎèé)êEê¦ê4ëôíeî®îDï`ñÑñò¨ò0õ¡õêõxö7ÿÏù}§­×Ìö¹ã—ÁÙm—0ZÄî. Z ˆ ´ X ‚ d Ž –ÀÁëÄîë¦3'²3¯0½3¾³ß/¦R ~ Î E!.$v$ž$í$d% &<&ë&¸'à'F(�(þ(¦)*Q*Æ*h+²+Ú+9,®,P-™-À-.„.'/t/�/¶/0{01p1›1´1Í12’243ˆ34ˆ4)5o5¢5Ô5#6˜6¦BçBfC“CâCXDþDÍEþE$FBFsF™F·FèFG,G]GƒG¡GÒGøGHGHmH‹H¼HâH1I¨IµMþM$N¨NTOÉO£P2QÂQZ_¢_É_L`Ù`®a$b™bscd’df*fyfïfãgnhÌh÷hGi½indn‹nožopŠpeqõq†rUužuÅuIvØvNwÄwŸx/yÀyuz£zÏzýzl{N|©|}‘}~—~Lÿ®€+�ž� ‚ ƒ@ƒ„Ö„ …ê……†ã†‡v‡«‡ ˆ>ˆœˆшE‰÷‰ÒŠ2‹g‹&ŒÈŒýŒ½�Ž/ŽŽöŽë�w�Ö� ‘K‘›‘’¼’“:“¿“s”r• •Ì•ú•i–K—¤— ˜Ž˜™”™Išüš«›(œ›œ�ž=žŸÓŸ  ç ‚¡à¡¢s¢¨¢£;£™£ΣB¤ô¤Ï¥/¦d¦§½§ò§²¨û¨$©t©ë©àªl«Ë«¬@¬�¬­±­ ®/®¬®X¯NÀzÀ–ÀæÀ\ÁÂ+ŠÂÏÂHÃsÞÃÉÃôÃÄJÄuÄ ÄËÄöÄ!ųÅ@Æ4Ç¿Ça˟˹ËÓËíËÌ"Ì<ÌVÌpÌŠÌ¥Ì'ʹͰÐtÑåљүÖÙÖ)×3Ú|Ú¤ÚôÚ˜Û"Ü>Ü[ÜwܔܰÜÍÜéÜÝ Ý<ÝWÝsÝ�ÝªÝÆÝâÝÿÝÞ8ÞTÞpÞ�Þ©ÞÅÞßà^à†àÖàkáàáºâIãÙã8ä‚äªäúäpåæ^æ†æÖæçIçeçµç¿üý ý<ýXý·ýÒ7‡¶,™Çåh ÷ ì b = ­ËOÞÓI$>lŠÚQFÒ”Âà/¦ˆË¸ I!l3£4Î4‚5¬5‹6»6à6b7ñ7æ8r9QiQ“QR¤RûRðS|TµUãU¾a bHb˜bcd�d¾eofÛf4gáh�i@kžkðopipàpÕqar¿rìrsVsÌsptŸtºtÖt&ukuvHv©vÞ %† +† .† 6† >† c† h† v† u‡ fˆ W‰ Sà ià »Æ ¿Æ ÅÆ ÌÆ ÐÆ ÔÆ ÛÆ áÆ æÆ íÆ óÆ øÆ ÿÆ Ç Ç Ç Ç Ç %Ç +Ç 1Ç 7Ç =Ç CÇ IÇ OÇ UÇ [Ç aÇ gÇ mÇ sÇ yÇ }Ç �Ç ‡Ç ­Ç È ÁÍ ÄÖ pÞ °å Fæ ç )è ®é ê ,ê ®ê Ýë Tí aí ±ð eñ Só ]õ ‹õ ’õ ðõ :ö –ö �÷ á÷ ²ø ù {ù Þù Uú Œú Sý , 9 Õ M ó R @ º Q – - Ä Á 4! b( ". Q0 2 2 /2 ? ? ? xH H ŒH ýN O O ` äl ìm n o Tp p Õp Œq üq yr s �s ös Yt °t %u Õu âu v ¹v |w ¯w ¶w Òw 2x Tx Xz Î}  n Ó € #€ ?€ [€ w€ “€ ñ€ 4� ‹� â� F‚ Ÿ‚ ¾‚ wƒ ±ƒ ̓ éƒ „ !„ =„ Y„ “„ Ö„ … b… µ… ú… L† k† $‡ R‡ n‡ Ї ¦‡ à‡ #ˆ hˆ ºˆ ÿˆ Y‰ x‰ 1Š VŠ rŠ ÄŠ ‹ Y‹ ž‹ $Œ CŒ üŒ !� <� •� ½� Ž KŽ ’Ž ÙŽ !� h� ±� å� “� ˜� ·� p‘ u‘ Ú‘ ß‘ å‘ z’ Ó’ ,“ ž“ V” c” ~” • • ‚• -– :– ¾– Ë– 7— O— °— ˜ t˜ x˜ ~˜ „˜ Š˜ Ș ™ p™ Ý™ iš vš ÷± û± ÿ± ² ² ² ² íµ ñµ ÷µ þµ ¶ ¶ ¶ ¶ ¶ ¶ $¶ )¶ /¶ 5¶ ;¶ B¶ H¶ N¶ U¶ [¶ a¶ g¶ n¶ t¶ z¶ €¶ †¶ �¶ “¶ ™¶  ¶ ¦¶ ¬¶ ²¶ ¸¶ ¾¶ Ķ ʶ Ѷ ×¶ Þ¶ ä¶ ê¶ ÿ¶ · S· º r¼ ¼ }¾ XÀ òÅ É TÊ *Ð Ô �× .Ø ™Ø îØ CÙ �Ü ¯Ü sï Âï ð ¬ û J  W 9 ˆ s( ¡( _4 ]G “M W ¬^ òb Ac e ge Úp hu “u w cz Õ| Ö~ º r‚ Ö‚ w„ … … 7… M… ¤… Ñ… 7† >† E† µ† d‡ h‡ ë‡ Tˆ ׈ e‰ lj ¥Š ²Š e‹ r‹ Û‹ –Œ ýŒ d� Æ� -Ž ŒŽ ëŽ J� ¾� '� ¨� 5‘ ‘ +’ Ÿ’ í’ ô’ û’ d“ ç“ g” Ú” C• ¬• – ˆ– — Œ— ˜ &˜ =˜ Y˜ ”˜ 9™ ”™ ø™ tš ò© �´ áÀ rÇ Z× ´ã có øý Ï7ü"d#Z$Í$P%f&Õ'9(ì)ˆ*)+’,1.H2Ù2¢3 4n4–45677;Ê;ü<Š>£>F?£@gBtBC™C°CÇCDD$D(D-DKDŽDÝD"E\E�E1FOFGGcG¥GèGH½HÛH�I§IàIJ?J]JK$KxK¾KÙKôKL*LEL_L¢LæL9MŽMæM>N–NîNFOzPåQOSxU-W§W¼WX7XUX Ys\w\{\€\†\Š\�\–\›\Ÿ\¥\©\­\±\µ\¹\]E_¬b¹bQe·fÒjFk×oÝoêoïtõtuþz{{{{Ì{©{€�F‚ ƒ¹„… ………7…¥…ô…"†¢‡‘Š+‹Å‹ùŒÆ�ŽK�G�o�ñ�Ö‘´’Á’šÈš·›A�_�˜�ž‚ž…ž‰ž�ž‘ž•žšžžž£ž¨ž¬ž°ž´ž¸ž›Ÿî ¢æ¢A£$¤¥œ¦÷¦S§X¨éª$«€«n¬\­ƒ®ß®;¯b°¾°±²X²f¼j¼p¼u¼y¼}¼�¼…¼‰¼�¼‘¼•¼½½½!½$½(½-½1½U½À¤ÁÁÂÃ_äÃÕÃyÄ—ÄKÅqÅ�ÅCÆaƨƽÆôÆÇ8ÇìÇ ÈNÈcȦÈÌÈêȞɼÉÊÊbÊgÊËËË!Ë%Ë)Ë-Ë1Ë3ÌŽÌïÌ!Î|Î×Î`ÏcÏgÏlÏqÏtÏyÏ~ÏЃЉÐ�ÐÑÑ$Ñ(Ñ,Ñ0Ñ�ÑúÑJÒ¯ÒÓ{ÓÛÓ5ÔµÔtÕÄÕeÖÐÖ-××ò×aØÇØ3ÙÈÙZÚ»ÚÛqÛÍÛxÜÓ܃Ýpàsàyà}àƒà‰àŒà’à˜àžà¤à¨à®à³àºàÀàÄàÈàÏàÔàÛàáàçàìàóàùàÿàá áááá$á*á0á7á=áCáIáOáUá[áaágámásá0â�â–â¬âãæôô�÷\úÚúòùêñþ   Ê Î Õ â ÇËÒߌ'�'—'¤'Ò0Ö0Ý0ê0N1:4Ä9qAiH:NïNæS Wd]ŽaHeforÖu±y�‹k‹·‘ø’ëœ=¡[¡³¡¢C¢º¢£�£ã£<¤•¤÷¤É¥!¦+¦ƒ¦�¦ä¦·§ë§ò§ù§«¨fªjªµª¼ªêߪF«•«å«4¬b¬i¬p¬¤¬«¬²¬(­Ó­×­"®)®0®L®³®¯R¯¡¯ϯÖ¯ݯ °°°ưʰ ±±±4±›±ɱб×±²²²À²IJ³³³9³ ³ ´9´@´G´c´5µЏ¹ž¹º}¿™Ä È|ÑtáÿéÉî3öÙþª7” §pœ«� ”{¥@ Á ½!™"„#\$t$Õ$ß$Q%¬%&ð&Ê'²(¥)ÿ)e*Ã*ë*v+¡-µ0Â0Í01k1¼7î?û?J@™@ëD'HI I IIII"I&I*I.I4I:I>I¶IJ%JÒJnKLgL¸LMlMNNN NNNNN NROPéPKQãQçQíQñQõQùQðRKS}TØT3UKXNXTXXX^XdXgXmXsXyX|X‚XˆXŒX�X•X›X¡X§X­X²X¸X¾XÄXÊXÐXÖXÝXãXéXïXõXûXYYYYY!Y'Y-Y3Y9Y?YEYKYQYWY]Y«ZQ[·[\ˆ\â\=]-^_ `a!b@c›c×cäc/d‚d;e¿eÈesf€fÜfDg ghphÏhÆijdjZk©k�l®m¿nçnÁo±p q�ršs‡têtvuÑu8v•v wdwÇw!xƒxçxØyÉz¸{Ä|Ð}é}„~t€\€À �–�ï�I‚:ƒ+„…&†2‡Q‡ˆxˆh‰XŠS‹à‹;Œ¢ŒÿŒu�Î�(Ž� �ù�’“0“ü“W”G•7–2—¾—˜€˜ݘS™¬™š÷šè›לã�ïžNŸC¡J¡N¡R¡W¡]¡c¡i¡p¡v¡|¡‚¡ˆ¡�¡–¡œ¡¢¡¦¡ª¡®¡²¡Í¡æ¡¢)¢û¢O£¯£Í£Ÿ¤‰¥�¦•§³§ê§W¨¬¨©Š©î© ªÛª/«P¬n¬@­*®1¯‰¯§¯Þ¯K° °±•±ù±²‰²ݲü³Q´´´Ò´DµK¶ ¶··U·¬·¸{¸и3¹U¹�¹0ºˆº¬»¼,¼ͼ¼½ ¾ú¾I¿8À'ÁvÁpÂxÃÇÃæÃÄzÄßÄQÅªÅÆ0ÆjÆ Ç/ȇÈàÈDÉoÉÊäʸË�ÌaÍAÎ/ψϧÏâÏZвÐÖÑïÑgÒaÓ€Ó¹ÓÔyÔëÔDÕ¨ÕÊÕÖ}Ö¡×ù×RضØÒØJÙ*ÚƒÚ‘æøóø øøøøø&ø,ø2ø8ø=øDøJøPøWø]øcøiøoøtøzø~ø‚ø†øŠøŽø’øúüýŒýf¦ X ] r Ó 0Wã̰½<8w´Öãà/!#­(*+ ,¡.33à7€8ï8@0@ÐG×GäG3HæKíKúKAOHOUO×RÛRâRéRöRÛWßWæWíWúWX¢`þfMgœgëg:hEi©ijk9lamÅmnn n'nCn±noMoTo[obo~oìo;pZpVrouvóvw5w’wxxxjyÍy'zszÖ{Ü{ß{å{ë{ñ{ô{÷{ý{|| |||||!|%|*|.|2|6|:|R|©|ÿ|i}ß}…t†®‰Š›�öŽ ��’–¬™n›â¡^¤îïƜȺË!̇ÌÑÚÛp݃ÞSàjáãäæjæ¤è§è­è³è¶è¼èÂèÈèËèÎèÔèÚèÞèäèêèðèôèøèÿèé éééé%é+é1é7é>éDéJéNéRéXé\é`é¥é!êý‡±  Á œ%9&ä&¯'=(-)Ô)f*½*#+ˆ+¦+ß+ø+Ì,ù-!.¡.536*6&:¾>Ë> @rCèC}DŠDÙD(EžE£EªE¯EFÊF×FNGºGH¸HÅH£IJ´J?KšKLœLM|MóMhNáN]OÔO9PªPQ\QÎQ'R�RæRWS¿S'T€TÛT¡UVcV¼VW-WhWÁWÿWXÂX$Y¢YZ}ZêZ\[Ù[9\§\ ]v]Œ]ò]V^Y^]^a^e^i^m^�^y_Ú_0`u`º`ü`@a„aÇabBbæbc¸c¸d½dÀdÄdÉdÌdÏdÔdÙdÝdádådédídeGe€eñe^fÁfgŽg¬g`h‚hˆhÛhýhVi®iXj½jk~k�kVl‰l�l³lXmwm0n÷nûnÿno ooooo!o'o"B"8#?#L#h#Í#& &&6&T&r&Ã&Ê&×&p'‘(˜(¥(Á(&)u)Î)Õ)â)¦*Ç+Î+Û+÷+\,c-i-È67727L7�7œ7©7Í8;9H9U9<<Ÿ<¬<¹<Ó<;=§=´=Á=>,?0?4?:???C?G?M?³?À?Í?é?@!@¤@±@¾@AAAcAºAÇAÔA4BÙB=CJCWCD`DmDzD×D¼FÀFÆFÊFèFmHòIâJ·LMŽMONmOøOqP QRSNT>U(V(WõW¾XXYŒZe['\ÿ\¸]Œ^&_ñ_’`aaxb…c…g¤g]h‚hžh÷hXiÙiºl¸nHsÒsÒu]vôvWwÄxéy{*|I}f~…ª€ÂZ„~… †ˆ�‰³ŠÔ‹Q�ÌŽêŽ#�9�Ù��!�Ú�A‘H‘~‘ß‘@’~’´”å +¡8¡J¡e¡®¡»¡È¡¢'¦ã§ë§!¨o¨½¨©&©3©­Ó­à­í­«®r°¿°ŰÒ°ß°ù°b±h±u±‚±H³À³ƳÓ³à³ú³i´Ú´à´í´ú´jµëµñµþµ ¶жý·¸¸ ¸¸¸¸¸!¸%¸+¸/¸5¸9¸?¸C¸{¸«¸â¸¹1¹š¹§¹´¹Ò¹ñ¹º.º�ºšº§º!».»;»š»§»´»ý» ¼¼_¼²¼#½0½=½î½=¾¿r¿Á¿|À8ÁôÁLÂYÂfÂ(ÃÊÃÑÃÞÃëÃÄ,ÄHÄÀÄÇÄÔÄáÄWÅÍÅ…ÆïÆfÇmÇzLJÇïÇoÈvȃÈ�ÈYÉÃÑÒÒÒÒ!Ò%Ò:ÒÐÒÝÒ'Ó|ÓùÓ•ÔÕlÕÁÕÖdÖgÖlÖpÖtÖxÖ�Ö××1×z×Ï×LØ©Ø Ù‰ÙÞÙ1ډڌڑڕڙÚ�Ú²Ú4ÛAÛŠÛßÛ\Ü·Ü4݉ÝÜÝñÝsÞ€ÞÎÞßlßéßDàÁàáiá~áâ â[â¤âùâvãÑãNä£äöäDåGåLåPåTåXåmåïåüåEæšæçwçôçIèœèêèíèòèöèúèþèé”é¡éïé8ê�ê ëdëáëêëDì™ì¢ìõìùìíí ííí2íIí^ísíwí}íƒí‡íŽí•íší í¦í¬í³íºíçí‰ö–öäö2÷�÷û}ŠØ> ­ T nö~Ü8ÂÒ0¸@ þš§ö‹˜5B§­ÆÊÎÒÖÚòщ § [!š!"m"©" #Û#.&Ã&„';()ç)+v,…,•-¤-`.o.­.º.Ô.D/y/†/ö/G0T0n0Þ0&131£1À12'2A2ƒ2¨2Â23)3C3…3ª3Ä344»4á4ÿ4³5Ø5ò5G6ôvrwßw;xpx}xcyfykyoysywy{y�y…y‰y°yŒz¤|}¤~�Ä�f‚ö‚ƒsƒˆƒéƒ—„¬„…r…�…D†L†j†ò†'‡|‡чçŠëŠïŠõŠùŠýŠ‹‹ ‹‹‹K�]�j� “3–@– –— ™}›ŽŸ¢§�¨«ª‚®²ʸ˜¼#½·½E¾ݾd¿ÿ¿�À"Á¨Á+´Â!Õà Ä'Ä`ĈƌÆ�Æ–Æ­ÆÀÆÕÆÙÆ߯äÆèÆìÆðÆôÆ ÇNÇlÇ ÈFÈvÈ»ÈÉFÉ•ÉäÉ2ÊwʽÊË`ˆˤËXÌ\̹ÌÍrÍ1Î>ÎŽÎþÎ ÏÌÏ'ЖÐèÐ=Ñ¹ÑÆÑúÑjÒñÒþÒ2ÓëÓúÓ^Ô³Ô;ÕHÕÖcÖrÖÖÖ+׳×À×uØÞØ:Ù ÙÚkÚÇÚ-ÛâÛ—ÜOÝ¥ÝµÝ ÞÞoÞÞß#ß{ßÓß+à‡àÕà>á©áââ§âÏâüâ0ã–ãüãbä–äüäbåÈåIçPçTçZç`çfçlçpçwç|ç€ç…ç‰ç�ç“ç™çŸç£ç§ç­ç±ç¶è¼èÀèÆèÌèÐèÔèØèÜèâèçèëèïèôèúèþèézé˜éLê‚êºêëbë¶ë ìbìµìííí’îŸîôî‚ï ïÙïðqðÆðäð˜ñÂñòZò¯òó½óÊó+ô¹ôHõfõöGö�öàö6÷Ä÷Ñ÷_øløÍø-ù»ùJú”ú×úÝú÷ú=ûCûžûúûYü¸üýzýÚýGþ©þÿÇÿÔÿˆ•öWƒŠJ±8{‚�áèH© iÊ+ñþœ©x ž ÿ Y º  r | L ¬  h  tÿ]¸B�øS® d¿uÐ+†á"&*ßìù®»È}Š—±Jf¦ Q—ÝO�Ï>„ÊV“Ó S “  !Q!—!Ý!#"i"±"ñ"1#q#±#ñ#V$œ$â$(%Z%š%Ú%&Š&Ð&'\'¢'ß'(_(Ÿ(ß(2)x)¬)¹)ÿ)Š*Ž*¼*+€+õ+S,¼,0-â-æ-ê-î-ò-ø-þ-.].c../=/==J=ABNB/TÌ\Ÿ_¬_ÀbÍb×bÓe_hk mznbq»s[vxÕyüzX}ª€Ö€Ý€��¨�õ�ü� ‚^‚€‚ƒ©ƒ�„³…�†Ÿ†X‡€‡œ‡ˆ ˆ…ˆ«ˆň(‰G‰�‰¬‰ò‰Š„ФЋ5‹Í‹ûŒ�ŽÜ� �n“{“Å–Ò–˜ê˜Á™¡š&›9œÜœ"�H â œ¡ø£"¥Ì¥ݨ©C«“¬¼¬ð¬©­ü­®®®ß® ¯'¯‡¯ ¯5²j´€´í´µ¶»¶q¸•¹º¼<¼[¼½޽’½–½œ½£½Ľ¾s¾Ǿ¿p¿ ¿ä¿DÀ™ÀîÀBÁ£ÁÂVÂäÂ9ÃWà Ä=ÄCÄ]Ä»ÄÇÄßÄÅNÅ]ÅrňŗÅéÅ;ÆzÆÔÆÇÏÈêÈÉ!É=É]ɲÉÒɆʦÊÝÊ�Ò«ÒÙÒùÒNÓnÓ"ÔpÔwÔ”Ô²ÔÏÔíÔ Õ%ÕBÕ_Õ|Õ©Õ¯ÕkÖ¥÷Â÷ß÷ü÷ø6øSøoø‹ø§øÃøãø9ùzù�ù-úKúxú}ú9û?þ]þyþ™þïþÿÄÿþÿ8Q…¥û2¦»ÜJ„¾× +�˜Ò %YyÏæ Zs§Ç4c€ VY v – í  à H g ¢ ½ Ü  1 M i … ¡ ½ Ú ö .KkÂâ˜ÇãÿÔ=òë#>Zv’­Í# C ø %:%X%v%”%²%Ð%ï% &*&G&d&ƒ&£&ú&'Ð'((<(\(³(Ó(‰)Ø)ß)æ)*"*\*`*d*(+w+~+…+£+Á+û+ÿ+,Ç,-<-h-…-£-Á-á-.8.X.¯.Ï.…/Ó2ñ23.3L3k3‰3¨3Æ3å34#4C4š4º4p5�5Ç5iB‡BºBÚB1CQCD{H™H·HÓHñH I,IƒI£IYJyJîJK$K“KOO`\`y`—`µ`Ó`ó`Jaja bSbqbŽb®bc%cÛcjd‡d£dÀdÜdùde2eNeje‡e£e¿eÛeøef0fLfif…f¢f¾fÛfg$g@g`g¶gÖg‹h«hi4iUiÃi‡‡;‡W‡t‡‘‡­‡ɇ燈%ˆ{ˆ›ˆP‰p‰§‰Š;ŠWŠtŠ�Š­ŠÊŠêŠ@‹`‹Œ5ŒlŒDŽþŽ(�‹‘·‘ ˜9˜m˜�˜ä˜ü˜™Ò™Œ¢ª¢È¢æ¢£"£A£a£¸£Ø£ޤÀ¤ݤú¤.¥N¥¥¥½¥Ý¥“¦צÞ¦ü¦§8§e§i§&¨Y¨w¨•¨µ¨ ©,©â©ª3ªRªrªɪ骟«Ò«ï« ¬,¬ƒ¬£¬Y­°°<°’°²°g± ²?²{²•²¶²ò² ³-³i³ƒ³ ³»³Ö³ó³´)´F´a´~´™´É´õ´µkµ‹µ@¶p¶Œ¶¦¶ƶ·`·f·‚·î· ¸'¸T¸X¸¹G¹e¹ƒ¹£¹ú¹ºQº•ºœººº(»G»t»x»5¼h¼…¼£¼×¼÷¼N½f½—½²½ͽé½ ¾_¾¾4¿g¿‚¿ž¿º¿Ú¿0ÀPÀÁ%Á\Á�Á¨ÁÃÁßÁÿÁUÂuÂ*Ã[ÃuÎçÃÇÃÄ=ÄòÄÅIÅiÅÝÅòÅÆ�Æ´ÆÏÆëÆÇ'Ç}Ç�ÇRÈrÈ©Èäç è:èZè°èýèé9éWéué“é±éÏéëéê#ê?ê]ê{ê™ê¶êÖê ë»ðjñÀñ,ôfôôéô#õ<õŽ÷øŒøùiú“ü#ýþ†Ý4JéË÷¥ç^~ó ) ˜ � ü  s “ I i Þ ó ƒ§Ç>ô‰ž¿.8ˆÖ.b‚Ùñ†¦:K`�ðIPnºçë¨0LlÂâ—·î³#Ï#þ#$t$”$I%ç233?3•3µ3j4R6Y6`6g6Œ6±6Ï6í64787<7@7 8�9”9›9¢9À9Þ9ü9:a:e:i:m:8;è=>$>B>b>¹>Ù>�?Â?à?þ?@u@•@KA€AŸA¼AÙAùAPBpB&CsC”CÐCëC D'DEDeD¼DÜD’EÉEåEFF;FWFsF“FéFG4GTGªGÛG÷GH3H‰H¼HÚHøHIoI�IEJxJ–J³JÓJ*KJKL5LSLqL�LžL¾LM5MëMNdSdtdãdÿe�fìfEgóh iRk¯kp-pMp¤pÄpzqšqr$rEr´rärÿrs:s�s°set—t²tÎtêt u`uùu’G’P’Y’a’j’s’|’„’�’–’Ÿ’§’°’¹’Â’Ë’Ó’Ü’å’î’ö’þ’““““'“/“7“@“I“R“Z“c“l“u“}“†“�“˜“ “©“²“»“ē̓Փޓç“ð“ø“””””"”+”3”;”C”K”T”\”d”l”u”~”‡”�”˜”¡”ª”²”»”Ĕ͔Քޔç”ð”ù”• •••%•-•5•=•E•N•V•_•h•q•y•‚•‹•”•œ•¥•®•·•¿•Ǖϕוà•è•ð•ø•– –––$–-–6–>–G–P–Y–a–j–s–|–…–�–––Ÿ–¨–±–¹–Á–É–Ñ–Ú–â–ë–ô–ý–——— —(—1—:—C—K—S—[—c—l—t—|—„—�—–—Ÿ—§—°—¹——Ê—Ó—Ü—å—í—ö—ÿ—˜˜˜"˜+˜4˜=˜E˜M˜U˜]˜e˜m˜u˜}˜…˜�˜•˜�˜¥˜­˜µ˜½˜Ř͘Õ˜ݘå˜í˜õ˜ý˜™ ™™™%™-™5™=™E™M™U™]™e™m™u™}™…™�™•™�™¥™­™µ™½™Å™Í™Õ™Ý™å™í™õ™ý™š ššš%š-š5š=šEšMšUš]šešmšuš}š…š�š•š�š¥š­šµš½šÅšÍšÕšÝšåšíšõšýš› ›››%›-›5›=›E›M›U›]›e›m›u›~›‡›�›—› ›©›±›¹›Á›É›Ñ›Ú›ã›ë›ô›ý›œœœ œ)œ1œ:œCœLœTœ]œfœoœwœ€œ‰œ’œšœ£œ¬œµœ¾œÆœΜ֜ޜæœîœ÷œÿœ����(�1�9�B�K�S�[�c�k�s�{�„���•�ž�§�¯�¸�Á�É�Ò�Û�ã�ì�õ�ý�žžž ž)ž2ž:žBžJžRžZžcžkžsž|ž…ž�ž•ž�ž¥ž®ž¶ž¿žÈžÑžÙžážéžñžùžŸ ŸŸŸ"Ÿ*Ÿ2Ÿ;ŸCŸLŸUŸ]ŸeŸmŸuŸ}Ÿ…ŸŽŸ–ŸŸŸ¨Ÿ°Ÿ¸ŸÀŸÈŸПØŸàŸèŸðŸøŸ      ( 0 8 @ H P X ` h p x € ˆ � ˜   ¨ ± ¹ Á É Ñ Ù â ê ó û ¡ ¡¡¡'¡0¡9¡A¡J¡S¡\¡e¡m¡v¡¡ˆ¡‘¡™¡¢¡«¡´¡½¡Å¡Ρסà¡é¡ñ¡ú¡¢ ¢¢¢%¢-¢5¢=¢E¢M¢U¢]¢e¢m¢u¢}¢…¢Ž¢–¢ž¢§¢°¢¹¢Á¢É¢Ñ¢Ù¢á¢é¢ñ¢ù¢£ £££"£+£4£=£E£M£U£]£e£m£u£}£…£�£•£�£¥£­£µ£½£Å£Í£Õ£Ý£å£í£õ£ý£¤ ¤¤¤%¤-¤5¤=¤E¤M¤U¤]¤e¤m¤u¤}¤…¤�¤•¤�¤¥¤­¤µ¤½¤ŤͤÕ¤ݤå¤í¤õ¤ý¤¥ ¥¥¥%¥-¥5¥=¥E¥M¥V¥^¥g¥o¥x¥€¥‰¥‘¥™¥¡¥ª¥²¥»¥Ã¥Ë¥Ô¥Ü¥ä¥í¥ö¥þ¥¦¦¦ ¦)¦1¦:¦B¦K¦S¦\¦d¦m¦u¦~¦†¦�¦—¦ ¦¨¦°¦¸¦À¦ȦЦئà¦è¦ð¦ø¦§§§§!§)§1§9§A§I§Q§Y§a§i§q§y§�§‰§‘§™§¡§©§±§¹§Á§ɧѧÙ§á§ê§ò§ú§¨ ¨¨¨#¨+¨3¨;¨C¨K¨S¨[¨c¨k¨s¨{¨ƒ¨‹¨“¨›¨£¨«¨³¨»¨è˨Ó¨Û¨ã¨ë¨ó¨û¨© ©©©#©+©3©;©D©M©U©]©e©m©u©}©†©�©—©Ÿ©§©¯©·©¿©Ç©Ï©שß©ç©ï©÷©ÿ©ªªªª'ª/ª7ª?ªGªOªWª_ªgªoªwªª‡ª�ª—ªŸª§ª¯ª·ª¿ªǪϪתߪçªïª÷ªÿª««««'«/«7«?«G«O«W«_«h«q«y«�«‰«’«š«¢«ª«²«»«ë̫ԫݫæ«î«ö«þ«¬¬¬¬'¬/¬8¬A¬I¬Q¬Y¬a¬i¬q¬y¬�¬Ь’¬š¬¢¬ª¬²¬º¬¬ʬÒ¬Ú¬ã¬ë¬ó¬û¬­ ­­­#­+­3­<­D­L­T­]­f­n­v­~­†­Ž­–­ž­¦­®­¶­¾­Æ­έÖ­Þ­æ­î­ö­þ­®®®®&®.®6®>®F®N®V®^®f®o®w®®‡®�®˜® ®©®±®º®îˮԮݮæ®ï®÷®¯ ¯¯¯#¯,¯5¯>¯G¯O¯X¯a¯j¯s¯{¯„¯�¯–¯Ÿ¯§¯°¯¹¯¯˯Ó¯ܯå¯î¯÷¯° °°°#°,°5°>°G°O°X°a°j°s°|°„°�°–°Ÿ°¨°±°¹°°˰Ô°ݰæ°î°÷°±±±± ±(±0±8±@±H±P±X±`±h±p±y±�±‰±‘±™±¡±©±±±¹±±ʱÒ±Ú±â±ê±ò±ú±² ²²²#²+²3²;²C²K²S²[²c²k²s²{²ƒ²‹²“²›²£²«²³²»²ò˲Ô²ܲä²ì²ô²ü²³ ³³³$³,³4³<³D³L³T³]³f³n³v³~³†³޳–³ž³¦³®³¶³¾³ƳγÖ³Þ³æ³î³ö³ÿ³´´´"´*´3´<´D´L´T´\´d´l´t´|´„´Œ´”´œ´¤´¬´´´¼´Ä´Ì´Ô´Ü´ä´ì´ô´ü´µ µµµ$µ,µ4µ<µDµLµTµ\µeµnµvµ~µ†µ޵–µžµ¦µ®µ¶µ¾µƵεÖµÞµæµîµöµþµ¶¶¶¶'¶/¶7¶?¶G¶O¶W¶_¶g¶o¶w¶¶‡¶�¶—¶Ÿ¶§¶¯¶·¶¿¶Ƕ϶ضà¶è¶ñ¶ú¶· ···"·*·2·:·B·J·R·Z·b·j·s·{·ƒ·‹·“·œ·¥·­·¶·¿·È·зÙ·â·ê·ó·ü·¸¸¸¸'¸/¸7¸?¸H¸Q¸Y¸b¸k¸s¸|¸…¸�¸•¸�¸¥¸­¸µ¸½¸Ÿ͸Õ¸ݸæ¸î¸ö¸þ¸¹¹¹¹&¹.¹6¹>¹F¹N¹V¹^¹f¹n¹v¹~¹†¹޹–¹ž¹¦¹®¹¶¹¾¹ƹιÖ¹Þ¹æ¹ï¹ø¹ºººº º(º0º8º@ºHºPºXº`ºhºpºxº€ºˆº�º˜º º¨º°º¸ºÀºȺкغàºèºðºøº»»»» »(»0»8»@»H»P»X»`»h»p»x»€»ˆ»�»˜» »¨»±»º»»Ë»Ô»Ý»æ»ï»ø»¼ ¼¼¼$¼-¼5¼>¼G¼O¼W¼`¼i¼q¼y¼�¼м“¼›¼¤¼­¼µ¼½¼Ƽϼ׼߼ç¼ð¼ù¼½ ½½½$½,½5½>½F½N½V½_½h½q½y½�½‰½‘½™½¡½©½±½¹½Á½ɽѽÙ½á½é½ñ½ù½¾ ¾¾¾!¾)¾1¾9¾A¾I¾Q¾Y¾a¾i¾q¾y¾�¾‰¾‘¾š¾£¾«¾³¾»¾þ˾Ó¾Û¾ã¾ë¾ó¾û¾¿ ¿¿¿%¿.¿6¿?¿G¿P¿X¿a¿i¿r¿z¿ƒ¿‹¿”¿œ¿¥¿­¿¶¿¾¿Ç¿Ï¿Ø¿à¿é¿ñ¿ú¿À ÀÀÀ$À-À5À>ÀFÀOÀWÀ`ÀhÀqÀyÀ‚ÀŠÀ’ÀšÀ¢ÀªÀ³À¼ÀÄÀÌÀÔÀÜÀäÀìÀôÀüÀÁ ÁÁÁ$Á,Á4Á<ÁDÁLÁTÁ\ÁdÁlÁuÁ~Á†ÁŽÁ–ÁžÁ¦Á®Á·ÁÀÁÈÁÐÁØÁàÁèÁðÁøÁ Â(Â0Â8Â@ÂHÂPÂXÂ`ÂhÂpÂx€ˆÂ�˜ ¨°¸ÂÀÂÈÂÐÂØÂàÂèÂðÂøÂÃÃÃà Ã(Ã0Ã8Ã@ÃHÃPÃXÃ`ÃhÃpÃxÀÈÃ�ØàèðøÃÀÃÈÃÐÃØÃàÃèÃðÃøÃÄÄÄÄ Ä(Ä0Ä8Ä@ÄHÄPÄXÄ`ÄhÄpÄxĀĈÄ�ĘĠĨİĸÄÀÄÈÄÐÄØÄàÄéÄñÄúÄÅ ÅÅÅ#Å+Å4Å<ÅDÅLÅTÅ\ÅdÅlÅtÅ|ńŌŔŜŤŬŴżÅÄÅÌÅÔÅÜÅäÅìÅôÅüÅÆ ÆÆÆ$Æ,Æ4Æ<ÆDÆLÆTÆ\ÆdÆlÆtÆ|ƄƌƔƜƤƬƴƼÆÄÆÌÆÔÆÜÆäÆìÆôÆüÆÇ ÇÇÇ$Ç,Ç4Ç<ÇDÇLÇTÇ\ÇdÇlÇtÇ|DŽnjǔǜǤǬǴǼÇÄÇÌÇÔÇÜÇäÇìÇôÇÿÇ ÈÈÈ"È*È2È:ÈBÈJÈRÈZÈbÈjÈrÈ}ȈÈ�ȘȠȨȰȸÈÀÈÈÈÐÈØÈàÈèÈðÈøÈÉÉÉÉ&É.É6É>ÉFÉNÉVÉ^ÉfÉnÉvÉ~ɆɎəɤɬɴɼÉÄÉÌÉÔÉÜÉäÉìÉôÉüÉÊ ÊÊÊ$Ê,Ê4Ê<ÊDÊLÊTÊ\ÊdÊlÊtÊ|ʄʌʔʜʤʬʴʼÊÄÊÌÊÔÊÜÊäÊìÊôÊüÊË ËËË!Ë)Ë1Ë9ËAËIËQËYËaËiËqËyË�ˉˑ˙ˢ˪˳˺ËÁËÉËÐË×ËßËçËïË÷ËþËÌ ÌÌÌ#Ì+Ì3Ì;ÌCÌKÌSÌ[ÌcÌkÌsÌ|̴̜̤̬̼̄̌̔ÌÄÌÌÌÔÌÜÌäÌìÌôÌüÌÍ ÍÍÍ$Í,Í4Í<ÍDÍLÍTÍ\ÍdÍlÍsÍzÍ�͈Í�Í–Í�ͤͫͲͺÍÂÍÊÍÒÍÚÍâÍêÍòÍúÍÎ ÎÎÎ"Î*Î1Î8Î?ÎGÎOÎWÎ^ÎfÎnÎvÎ~ΆΎΖΞΦήενÎÅÎÍÎÕÎÝÎåÎíÎõÎýÎÏ ÏÏÏ%Ï-Ï5Ï=ÏEÏMÏUÏ]ÏeÏmÏuÏ}φÏ�ϗϟϧϯϷϿÏÇÏÏÏ×ÏßÏçÏðÏøÏÐÐÐÐ Ð(Ð0Ð8Ð@ÐHÐQÐZÐbÐkÐtÐ|Ð…ÐŽÐ–ÐžÐ¦Ð®Ð¶Ð¾ÐÆÐÎÐÖÐÞÐæÐîÐöÐþÐÑÑÑÑ%Ñ-Ñ5Ñ=ÑEÑMÑUÑ]ÑeÑmÑuÑ}Ñ…Ñ�Ñ•Ñ�ѥѮѷѾÑÅÑÌÑÓÑÚÑáÑéÑñÑùÑÒ ÒÒÒ#Ò+Ò3Ò;ÒCÒLÒTÒ]ÒdÒkÒrÒzÒ�ÒˆÒ�Ò–Ò�Ò¥Ò­Ò´Ò»ÒÂÒÊÒÑÒØÒßÒæÒíÒõÒýÒÓ ÓÓÓ%Ó,Ó3Ó:ÓBÓIÓPÓWÓ_ÓgÓoÓwÓÓ‡Ó�Ó—ÓŸÓ¦Ó­Ó´Ó¼ÓÄÓÍÓÖÓÝÓäÓëÓóÓûÓÔ ÔÔÔ Ô(Ô/Ô6Ô=ÔEÔMÔTÔ[ÔbÔjÔqÔxÔԇԎԕԜԤԫԲԹÔÁÔÈÔÏÔÖÔÞÔåÔìÔóÔûÔÕ ÕÕÕ"Õ*Õ2Õ:ÕBÕJÕQÕYÕaÕiÕqÕyÕ�Õ‰Õ‘Õ™Õ¡Õ©Õ±Õ¸Õ¿ÕÇÕÏÕ×ÕßÕçÕ(† 3† ;† `† o† z† y‡ jˆ Ià Xà hÄ ÂÆ ÉÆ ØÆ ÞÆ éÆ ðÆ üÆ Ç Ç Ç Ç "Ç (Ç 4Ç :Ç @Ç LÇ RÇ XÇ dÇ jÇ pÇ vÇ {Ç Ç …Ç ïÇ |Í �Ö -Þ jå ùå Ëæ Þç aé ³é ê yë ¼ì Ví Zð ñ ÷ò õ �õ ˜õ öõ ?ö �ö è÷ ¸ø #ù äù ý ·ÿ . ˜   !  j  - Ó k r æ ( Ô- 0 ·1 2 N> ? ? ÍG }H �H 8N O O _ çk ël n o „p Ûp ’q r r #s ‡s üs _t ¶t +u ×u v Àv ´w »w Øw z b} ¸~  t € (€ D€ `€ |€ ™€ ö€ 9� �� è� K‚ Ä‚ ¶ƒ Òƒ îƒ „ &„ B„ ^„ ˜„ Ü„ "… h… º… † q† W‡ s‡ �‡ «‡ å‡ (ˆ nˆ ¿ˆ ‰ ~‰ [Š xŠ ÊŠ ‹ ^‹ ¤‹ IŒ &� B� Ã� Ž QŽ ˜Ž ߎ '� n� ë� ½� £‘ Ý‘ ã‘ ì‘ ~’ ×’ 1“ £“ X” ƒ” • ‡• /– ?– À– T— µ— ,˜ |˜ ‚˜ ˆ˜ ̘ ™ u™ â™ kš œ± ² ² ² ² ³ ôµ ûµ ¶ ¶ ¶ !¶ ,¶ 2¶ 8¶ ?¶ Q¶ X¶ ^¶ j¶ q¶ w¶ }¶ ƒ¶ ж –¶ �¶ ©¶ ¯¶ µ¶ »¶ Á¶ Ƕ ζ Ú¶ á¶ ç¶ î¶ · ½¹ ü» t¼ J¾ %À ÁÅ ÛÈ Ê ÁÏ ¾Ó C× Ö× AØ �Ø òØ >Ü �î È  9 s' Ü3 ÚF M šV '^ b 1d cp åt ²v öy x| y~ ] ‚ %„ ·„ … %… R… ¾… <† C† K† »† f‡ o‡ [ˆ Þˆ Ή §Š ¹Š g‹ x‹ á‹ ›Œ � Ë� P� Ä� -� ®� ;‘ È‘ 1’ ò’ ù’ “ m“ í“ m” à” I• ²• – Ž– — ’— ˜ +˜ ^˜ š˜ ?™ @š ©© C´ ˜À )Ç × _ã ó ­ý †ë°"#¸#~$ÿ$&x'›)6*Ø*?,Þ-ˆ1N2ß2¨3ç4—5�67¼:m;�<->?R@ª@iBzB$CžCµCÍC"D&D+DPD“DâD'E’ETF#GhGªGHàH¬IåIbJK§KÂKÝKøKL.LILdL§LëL>M“MëMCN›NóN,P—QÿR(UÝVYWÁWZXŽ[‚\ˆ\Ž\”\�\§\«\¯\³\·\ö^6b®b egfij,oÛoßoBtót÷tôy{{ {{Ä~¯ë�Å‚g„ ……… …=…M‡#ŠΊh‹œŒi�ŽëŽõ�½�j‘&’¶’�™išX›âœd�ž�‹ž�ž“ž˜ž¡žªž®ž²ž¶ž½ž£Ÿò F£,¤¥Z§a¨&ªˆ«v¬e­D¯#±²¡»n¼w¼{¼¼ƒ¼‡¼‹¼�¼“¼›¼½½&½+½/½É¿TÁ"ÂÆÂÃdÃÚÜĔÅfÆÂÆ=ÇÈhÈïÈÁÉ#Ê”ÊË#Ë'Ë+Ë/ËJË ÍÝÎeÏjÏoÏwÏ|σχÐ�ЕÐ"Ñ&Ñ*Ñ.Ñ5ÑÿÑÓ:ÔyÕÉÕjÖ2ׄ×÷×ÌØÀÚvÛ}܉Ývà€à†à�à•à›à¡à«à¶à½àÌà×àÞàäàïàöàáááá'á-á4á@áFáRáXá^ádájápáwá4â”âšâÎå”óô[÷*ú\÷ûRïóT   Þ Ì Ó × ÎÉÐÔ­&Ž'•'™'ç/Ô0Û0ß0o3÷8Œ@„GSMS&Ve\�`Gdrƒu_y¼€ÉŠZ‘›’šœë `¡I¢À¢"£‡£é£B¤ÿ¤Ñ¥&¦3¦ˆ¦“¦ì¦ð§÷§C¨£©hªºªÁªȪ媚«g¬n¬©¬°¬Ǭh­Õ­'®.®5®R®¯Ô¯Û¯°°[°Ȱ±±±:±αÕ± ²²U²²³³"³?³¦³>´E´à´¸ʸâ¹2¿PÄÀÇ0Ñ)á³é}îèõ�þ^îI \'Sb8MC*,íÉ®n j!H"2# $b$Ú$å$Ÿ&y'a(T)«)*B+5-'0·0È0N7E?ð?ŒDÈG-HIII I$I(I2I8IÀ>Ã?CîCD.E¨EFÌFÝFHºHÌH©I!J»J K!L M‚MoNçNcO?P°P QbQÔQ-R“RìR]SÅS-T†TâT§UViVÁV2WmWX XÈX*YƒZðZb[Þ[?\­\]’]ø][^_^g^k^)_~_ò_5`z`¿`aEa‰aßaGb cÑc»dÂdÇdÑd×dÛdßdçdëdeLe…eöe#g±g†h�hi[i´i^jÃj£kŽl•l¹l}mInýno ooo%o+o@owo¹o p|pöpŒqÎq"r�r¥r»r5s«svvvv#v)v/v5vsvˆvžvªvºvÁvÇvÒvØvävêvðvüvwwwww—y²{*|6~c€fƒÿ†&ŠCŽÊ’â•Fœ«œl¢Ȧpªy°Ê·$ÇmÌgÒƒÛXßÂçIî*ñ�ñªñ‘òØò;ó£ó2ô–ôúô`õ%÷Â÷%ý|ýÖýiþg4´2ÿ6˜ì y  HǼÃàB]dry…‘—�¤°¶¼ÂÎÔÚßãçëñ÷˜üñM°T�) à k!æ!‘"²#�$º&z(ö(t+c-X/{3Ÿ5P7Ã8w<x@AtACFøFüF¹IpJtJZL+M/M^N|OƒOŠOŽOR#S*S1S5SKY‚^&`Ëeüf hiij¼km\n�oqqqq9qBrIrPrWrtr¥t$wÒw)x4xÉx&yœyöy€z¼z–{ð{V|È|@}N~R~V~\~d~j~n~t~z~�~‡~�~æ~q¯€¼€Ì€¾�‚‚ƒ”ƒ „‘„…‚…j†w†ô†m‡ì‡ƒˆÞˆe‰„‹΋%Œ‰Œ �ä� �Ù�)�1�>�F�N�V�^�f�”�«�Â�.–럆 � • ™ 0£g¥H¦@§©¨¥©šª’«ï«T­®O®ý®À¯P°ó°± ²»³¶¦·D¸�À‡Á—Á—ÆKÇÈkÈVÉ]ÉzÉQÊXÊuÊËË+˽ËÄËáËsÌàÌÍŠÍÿÍ�ÎÞÎCÏ¨Ï ÐÖÐqÑÒdÒÓ!ÓÁÓÑÓÜÓTÔ?ÕFÕbÕôÕûÕÖoݨޯ޴޺ÞÂÞËÞÏÞÓÞ×ÞÛÞåÞéÞåEéËí°ð8õIøíÙ,ü¬•!%ø)y- 5¨5¬5—90:4:®C®IÍQœSTÖTUU:U‹U“USVåV+W2WLW“W›W£XªXÇXlYËY6Z^Zámënøno‹qGy€ãƒ6Š��‡’�•k›ïŸ£•§ «S¬¨¬Ǭ­k­®®Ø®>¯–¯û¯Û°"±t±º±²˜²_³b´æ´í´ µ¶s¶Þ¶·@·G·k·•¹¼¹á¹Ö»#¼d¼j¼­¼´¼-ƋƑƗƘÌäÍñÍÒcÓpÓøÓþÓfÔ¨ÔÕ×IÙçÙïÙóÙ÷ÙûÙAÚºÛ+ÝŽÝÕåÿæðFñ5ò_óUô†õ†ú¡ûcÿ~ê ' 9 w ‰ Ç +�…•³QÒ=:>Nk('+…ðíñG�¡±Ï,0Š#Ž‹�Ÿ¼d h y w!{!Õ!@"=#A#Q#n#±% & &&;&Y&È&Ì&&'–(š(ª(Ç(Ó)×)è)Ì+Ð+à+ý+C-g-d6Ì67767‘7ž7‚8=9J9à;¡<®<½<×<©=¶=Æ=˜>2?8?A?E?K?S?µ?Â?Ñ?í? @¦@³@AA A¼AÉAØA8B?CLC\CbDoD~DgFÄFÈF.H¶I¥JzL]MN.O¾O8PÛPÈQºRTðTÚUíV¼W…XYDZ[ß[¡\q]/^ß^”_K`a%b)côfªg‡h¤h¥i[lfnÅrPsOuÛuxvOxty‘zµ{Ô|ñ}5€L‚ム…+†¢‡‰>Š_‹ÚŒUŽïŽ¥�'�‘F‘N‘†‘ç‘H’¥”� é -¡:¡O¡°¡½¡@¢Ý¥™§ç§ð§©(©å¬Õ­â­ò­–¯v°ðǰÔ°ã°f±j±w±°²ijȳÕ³ä³þ³Þ´â´ï´ÿ´ïµóµ¶¶é¶¸¸¸¸¸)¸-¸3¸=¸A¸G¸€¸¯¸ç¸¹8¹œ¹©¹¹¹عö¹º�ºœº#»0»œ»©»ÿ» ¼¼e¼%½2½C½C¾ ¿Ç¿‚À>ÁNÂ[ÂlÂ0ÃÏÃÓÃàÃîÃÄ1ÄÅÄÉÄÖÄçÄ]ÅÓÅŠÆkÇoÇ|ÇŒÇtÈxÈ…È–ÈCÐÉÑÒÒ#Ò?ÒÒÒ+Ó�ÓšÔqÕÅÕÖjÖrÖvÖ’Ö×~×Ô×ÙŽÙâÙ7Ú�Ú—Ú›Ú·Ú6ÛŽÛäÛ¼Ü9Ý�ÝöÝuÞßqßIàÆàáƒáâ¨âþâÖãSä§äüäJåRåVåråñåIæŸæ|çùçMè¢èðèøèüèé–é<ê’êiëæëIìžì¦ìýìííí/í[ípízí€í‹í’í�í£í©í°í·íö‹ö7÷§úüÿÉ�^  Çtü„áÇ×8ÀH§œ�³7é«ÄÌÐÔØ–O ¬ ì!X"“"ø" #ñ%†&5'ì'´(˜)Î*9,X-.¯.¾.Ù.{/‹/I0X0s0(181Å1+2F2¬2Ç2-3H3®3É3l45Ü5÷5K6üvxwåwrxÖxiyqyuy}yƒy‡yYzõ{õ}¿€{�‚¨‚ƒ�ƒîƒ±„"…•…H†o†ö†.‡ƒ‡0ŠíŠóŠûŠ‹ ‹‹‹�í�_�ª’¯•5–Ü–Ř7›HŸסʦ;¨eª<®Ù±‚¸R¼Õ¼i½÷½�¾¿°¿?ÀÔÀZÁÜÁf¹Â'ÛÃ,ÄWŎƔƾÆÓÆÝÆæÆêÆîÆòÆÇqÇ{ÈÀÈÉKÉšÉéÉ7Ê|ÊÂÊË©Ëc̾ÌÍwÍ3ÎCΦÎÏÏ-МÐîÐCÑ»ÑÌÑÒpÒóÒÓ8ÓdÔ¹Ô=ÕNÕÖÜÖ1׵ׯצÙ3ÛèÛ�ÜWݽÝ!Þ†Þß)ß�ßÙß�àÜàDá¯áâ†â®âêâ6ãœãäœäåhåõåMçWç]çcçiçtç~ç‡ç‹ç‘ç—ç¡ç¥ç«ç¯ç·çºèÄèÊèÖèÚèàèéèíèöèüè é�é†ê¿êëgë»ëìgìºìíòí”î¤îøî¥ïÞï ðvðéðÇñ ò_ò´ò ó¿óÏó/ô¾ôkõLö¢öåö;÷Æ÷Ö÷aøqøÒø1ùÀùPú˜úÛúáúAûGû£ûÿû^ü½üýýàýMþÿÉÿÚÿŠ›üˆ�·<€‡æíN®nÏ1óž¯~ ¤  _ À  w ‚ É z¾ç$(0áîÿ°½ÎŒ�·j¬U›S“ÕBˆÎ—× W ™ !U!›!á!'"µ"õ"5#u#µ#÷#Z$ $æ$^%ž%Þ%!&Ž&Ô&'`'ã'#(c(£(å(6)®)½)*©*Ã*+‡+ü+Z,Ã,6-è-ì-ö-ü-.a.¯.2/´<?=¹ACBßS}\_¡_5bÂbÒbpeüg¬j¾ln qbsv¿w{y¤z}H€Û€ã€£�ú�‚‚²‚Zƒ@„X…$†¥†…‡¢‡&ˆ°ˆˈM‰²‰ŠªŠ†‹³Œ<ŽŒ�î’p“U–Ç–¾—š˜q™NšÕšê›Šœ � >¡œ£Ĥ{¥ލ-©ñª ¬ö¬®®%®…®%¯-¯æ±´›´ص^¶(¸X¹ƒºÔ»a¼-½”½š½¡½ɽ ¾w¾˾ ¿¥¿é¿IÀžÀóÀIÁ¨ÁÂ[ÂéÂ\ÃAÄGÄdÄÁÄÍÄæÄÅvÅžÅðÅBÆ�ÆÛÆ£ÈÓÈïÈ É&ÉaÉÖɪÊhÒ”ÒÂÒýÒrÓ)ÔuÔ|ÔšÔ·ÔÕÔòÔÕ*ÕGÕdÕ¬Õ³Õl÷ª÷Ç÷ä÷øø;øXøtø�ø¬øçøAùù‡ù3úzú�úþEþbþ�þÿÊÿ=©UàPˆÃ/žÖ}ì$_Ë;h¤2 ^ š  Ê N k ¨ à à  8 R p Š ¨  á û 3oæžËç#ÚA¹ï 'B^z–ÑG ß$!%?%]%{%™%·%Ö%ô%&/&L&j&§&'×'($(`(×(�)Ý)ä)ë) *^*b*h*/+|+ƒ+Š+¨+ý+,,Î,&->-o-Š-¨-Ç-å-".\.Ó.˜2Ø2ö2333R3p3�3­3Ì3ë3 4G4¾4”5@BnB¡BÞBUCLH�HŸH¼HÙHöH0I§IœJ(KÚNO@O¶OmPØPöP2QNQhQƒQ QºQØQöQ2RlRâR–WTX£X9Y|YZcZ�Z[¡_×_`K`Á`ýƒ3„n„Û„h…=†³†(‡̇ˆ¢ˆ2‰¥‰Љ Š�Šu‹Œ^•Š•¦•â•*™…™Œ™“™š™¿™ä™…š‹š‘š˜š¾�ì� žGžŸ$§P§�§¨ÿ­)®e®Û®“¯Þ¯ø¯°3°Q°�°ǰ=±õ±L²i²¤²À²ݲ³Q³ ´@´{´´´mµ˜µÓµÝ.ÝJ݆Ý>ÞlÞˆÞÄÞ|ßµßòß,à£à]á�á­áËáââ>ä‹ä’ä™ä·äå¦å¬å³å èYè`ègè…è£èÁèéé é&ëqëxëë�ëñëõëûëKî–î�î¤îÂîïï ï=÷t÷’÷°÷Î÷ì÷ øFøùxüÄüâüýý=ý\ý{ýšý¸ýÖýõýþ2þPþnþŒþªþçþ^ÿ4ü,Ji¦×!=x0u„ ²Â€¾Üú6Us‘¯ì¦ÔËûVFd‚¡¿üµí)cS�É�¹õ/¥]•Ò Ä ü M!‡!?"w"È"#x#0$h$¤$Þ$–%Î%&Y&'I'š'Ô'J();)x)²)k*¤*ö*0+é+",t,®,%-Þ-.T.Ž.G//×/0É01?1y122k2½2÷2°3é3;4u4ì4¥5Þ56U67F7ž7×7n9š9·9ó9i:>;è@ACAAõAÌQúQRURÌRPU­U´U»UÂUçU V*VŒV�V”VšVòXOYVY]YdY‚Y Y¾Y Z$Z(Z.Z.^\^z^·^._è_(`C`a`�`œ`º`÷`na(bXbvb²b)câcqd‹dªdÄdãdýde6eReqe‹e§eÃeâeüef4fSfmfŒf¦fÅfÝfg(gdgÚgÎhYi͆‡#‡?‡\‡y‡–‡²‡·ì‡)ˆŸˆt‰ï‰#Š?Š\ŠxЕвŠîŠd‹9ŒŽêŽ�v‘Ž‘ø—˜‘˜ ™[¢‘¢¯¢Í¢ë¢ £(£e£Ü£–¤Ťâ¤R¥á¥›¦ܦ㦧§g§m§.¨^¨|¨¹¨0©ê©ª9ªvªíª§«׫ô«0¬§¬Ú¯°@°¶°n±%²C²²œ²º²ö²³1³m³г¤³¿³ݳ÷³´0´J´h´‚´³´Ë´µ�µG¶t¶�¶ʶ#·d·j·‡·ò·¸V¸\¸¹L¹j¹§¹ºYºšº¡ºÀº.»v»|»=¼m¼мû¼m½›½¶½ѽ ¾ƒ¾;¿k¿†¿¢¿Þ¿TÀ)ÁcÁ‘Á¬ÁÇÁÂyÂ1Ã_ÃyÃ’ÃËÃAÄÅŒÅÆˆÆ¸ÆÓÆïÆ+Ç¡Çvȱçèç$è^è¸èé é>é\ézé˜é¶éÔéðé ê(êDêbê€êžêÚêðVñ©ñô0ôkôÑôíô(õy÷ø÷uøkùRú~ü ý÷ýqÆ3ҶΑР¡- v å  — Œ ì�ËB7à rÀ†4ª>…NUtéïì4p滋#·#æ#"$˜$¿2ë23C3¹3ú5W6^6e6l6‘6¶6Ô667:7>7D759’9™9 9§9Å9ã9:c:g:k:q:½=í= >)>f>Ý>—?Ç?å?"@™@SA†A¤AÁAýAtB.CzC˜CÕCóCD,DiDàD™EÍEéEF#F?F[F—FðFGXG±GßGûG7H‘HÁHßHI“IMJ}J›J×JNKL:LXL†LÂL9MóM#NQN�NOùO“PQwQ•QÒQïQ RJRgR…RÂR0S¿S´T@Uä[\W\Å\q]ü]‹^_Ž_ä_`=`Y`w`²`aËaVbåbuchGhƒhiñj.k5kZk¡k§k?m€m‡m¥mÂmàm(n.n³oòoùop5p|p‚pDqƒq‹q©qñq÷qÌrsBs|sós­tÚtKuÚu°v&w²w$x^x›xyµy+zÅz9{w{~{£{ê{ð{²|ð|÷|}\}b}¯ŒÝŒùŒ�R�I�†���¬�3�9�Ã�Ê�³N³‹³ų<´µMµ‚µ¡µÀµÞµ¶ð¶Ÿñ¸.¹¥¹_ºººÕºöº»/»O»j»‹»¦»Ç»â»¼=¼´¼±¾ì¾ô¾‹¿‘¿À"À³ÁôÁûÁ Â>Â]ÂêÂðÂÌÄÅ;ŦůSÆYÆuÆÏÆÇdžǹÇÀǨÈÎÈKÉɆÉþÉaÊjÊŽÊËÊèÊ ËHË¡ËÔËÛË[ÌŽÌ•Ì}Í£Í ÎTÎ[Îäéê%êAêˆêŽêëëïíOî˜îœî¬îïï,ï[ñ»ñòòò}ò�ò�ò+õ‹õÔõØõèõMöQö`ö3ÿÍã{‘«ÁÊà·Í•«×îk�.DÂØ+ C … � V l b x ”ª¿ÕÂØéÿŽš/«¥¦®ÚŽM y ¶ -!)$`$œ$Õ$L%&!&Ð&�'Û'0(o((×(æ(£)ý)9*®*e+œ+Ø+!,–,M-ƒ-¾-÷-l.#/^/›/´/í/c01Z1™1²1Ë12z213„3û3p4&5k5ž5Ð5 6€6¢BãBbC�CÊC@DùDÉEæE"F>F—F³FÐF G(GEG�G�GºGöGH/HkH‡H¤HàHI�I±MèM"N�N¬x¬ï¬¬­ô­®(®…®”®0¯@¯JÀvÀ’ÀÎÀDÁüÁ'ÂrÂËÂFÃ]ÜóÃòà ÄHÄ_ĞĵÄôÄ Å›Å(ÆÇ§Ç]˛˵ËÏËéËÌÌ8ÌRÌl̡̆Ìͬ͜ÐÑÑpÑáÑbÒqÒ�Ò«ÖÕÖ×/ÚfÚ¢ÚÜÚ”Û Ü:ÜYÜsܒܬÜËÜåÜÝÝ8ÝSÝq݋ݦÝÄÝÞÝýÝÞ6ÞPÞlÞ‹Þ¥ÞÁÞýÞàHà„à¾àSáÈá[â¢â1ãÁã4älä¨äâäXåæHæ„æ¾æçEçaç�ç»üúüýý8ýTý™ýŸýÎ2‚ðž¨ï•ÂàP ß Ô J Þ % {¨Æ7Æ»1Å :g…Â9.º�½ÛŽ„¾Æš   *!1!h3¡4·4€5–5‡6£6Þ6J7Ù7Î8Z9ýPgQ}QýQŒRãRØSdT±UËUºañaFb€b÷bìcxdºemfÖf/gÞhŠi=k™kíopQpÈp½qIr»rèrs>s´slt›t¶tÒtuguýu@vFv‹v‘vMwUw]wewmwuw}w…w�w•w�w¥w­wµw½wÅwÍwÕwÝwåwíwõwýwx xxx&x.x6x>xFxNxVx^xfxnxwxx‡x�x—xŸx§x¯x·x¿xÈxÐxÙxáxêxóxûxy yyy'y0y9yByKySy\yeynywyyˆy‘yšy£y«y´y½yÆyÏyØyàyèyðyøyzzzz z(z0z8zAzJzRz[zdzlztz|z„zŒz”zœz¤z¬z´z½zÅzÍzÕzÝzåzízõzýz{ {{{&{/{7{?{H{Q{Y{a{j{s{{{ƒ{‹{”{�{¥{­{µ{½{Å{Í{Õ{Ý{å{í{õ{ý{| |||'|/|7|?|G|O|W|_|g|o|w||‡|�|—|Ÿ|§|¯|·|¿|Ç|Ï|×|ß|ç|ï|÷|ÿ|}}}}'}/}7}?}G}P}Y}b}j}s}|}…}�}–}Ÿ}¨}±}¹}Â}Ë}Ô}Ý}å}î}÷}~ ~~~"~+~3~<~D~M~U~^~g~o~x~�~Š~’~›~¤~­~µ~¾~Æ~Ï~×~ß~ç~ï~÷~ÿ~ (08@HPX`hpx€ˆ�˜ ¨°¸ÀÈÐØàèðø€€€€ €(€0€8€@€H€P€X€a€i€r€z€‚€Š€’€š€¢€ª€²€º€€Ê€Ò€Ú€â€ê€ò€ú€� ���"�*�3�;�D�M�U�^�f�n�v�~�†�Ž�—�Ÿ�¨�°�¸�À�È�Ð�Ø�à�è�ð�ø�‚‚‚‚#‚+‚4‚=‚E‚M‚V‚^‚f‚n‚v‚~‚†‚Ž‚–‚ž‚¦‚®‚¶‚¾‚Æ‚΂Ö‚Þ‚æ‚î‚ö‚þ‚ƒƒƒƒ&ƒ.ƒ6ƒ>ƒFƒNƒVƒ^ƒfƒnƒvƒ~ƒ†ƒŽƒ–ƒžƒ¦ƒ®ƒ¶ƒ¾ƒƃ΃ÖƒÞƒæƒîƒöƒþƒ„„„„&„.„6„>„F„N„V„^„f„n„v„~„†„Ž„–„ž„¦„®„¶„¾„Ç„ЄÙ„á„ê„ó„û„… ………#…+…3…;…C…K…S…[…d…l…t…|…„…Œ…”…œ…¤…¬…´…¼…Ä…Í…Õ…Þ…æ…î…ö…þ…††††&†.†6†>†F†N†V†^†f†n†v†~†††ކ—† †©†²†º†Æ̆Õ†Þ†ç†ï†ø†‡ ‡‡‡$‡-‡6‡>‡G‡P‡Y‡a‡j‡s‡|‡…‡އ–‡Ÿ‡¨‡±‡º‡ÇˇÔ‡݇æ‡î‡ö‡þ‡ˆˆˆˆ&ˆ.ˆ6ˆ>ˆFˆNˆVˆ^ˆfˆnˆvˆ~ˆ†ˆŽˆ–ˆžˆ¦ˆ®ˆ¶ˆ¾ˆƈΈÖˆÞˆæˆîˆöˆþˆ‰‰‰‰&‰.‰6‰>‰F‰N‰V‰^‰f‰n‰v‰~‰†‰މ–‰ž‰¦‰®‰¶‰¾‰ƉΉÖ‰Þ‰æ‰î‰ö‰þ‰ŠŠŠŠ&Š.Š6Š>ŠFŠNŠVŠ_ŠgŠpŠyŠ�ŠŠŠ“Š›Š¤Š­Š¶Š¾ŠÇŠЊÙŠáŠêŠóŠüŠ‹ ‹‹‹'‹0‹9‹B‹J‹S‹\‹e‹n‹v‹‹ˆ‹‘‹š‹¢‹«‹´‹½‹Æ‹΋Ö‹Þ‹æ‹î‹ö‹þ‹ŒŒŒŒ&Œ.Œ6Œ>ŒFŒNŒVŒ^ŒgŒoŒwŒŒ‡Œ�Œ—Œ Œ©Œ±Œ¹ŒÁŒÉŒÒŒÛŒãŒëŒóŒûŒ� ���#�+�3�;�C�K�S�[�c�k�s�{�ƒ�‹�“�›�£�¬�´�¼�Ä�Ì�Ô�Ü�ä�ì�ô�ü�Ž ŽŽŽ$Ž,Ž4Ž<ŽDŽLŽTŽ\ŽdŽlŽtŽ|Ž„ŽŒŽ”Ž�Ž¥Ž®Ž¶Ž¿ŽÇŽÐŽØŽàŽèŽðŽøŽ���� �(�0�8�@�H�P�X�`�h�p�x�€�ˆ���˜� �¨�°�¸�À�È�Ð�Ø�à�è�ð�ø����� �(�0�8�@�H�P�X�`�h�p�x�€�ˆ���˜� �¨�°�¸�À�È�Ð�Ø�à�è�ð�ø�‘‘‘‘ ‘(‘0‘8‘@‘H‘P‘Y‘b‘k‘s‘|‘…‘Ž‘–‘Ÿ‘¨‘±‘¹‘‘ˑԑݑå‘î‘÷‘’ ’’’!’)’2’:’C’L’U’]’f’o’x’€’‰’’’›’£’¬’µ’¾’Ç’Ï’Ø’á’ê’ò’ú’“ “““#“+“3“<“E“N“V“_“h“q“y“‚“‹“”“œ“¥“®“·“À“ȓѓړã“ì“ô“ü“” ”””'”/”7”?”G”P”X”`”h”q”z”ƒ”‹”””�”¦”®”·”À”ɔєڔã”ì”õ”ý”•••!•)•1•9•A•J•R•[•d•m•u•~•‡•�•˜•¡•ª•³•»•Õ˕ӕܕä•ì•ô•ý•––– –)–2–:–C–L–U–]–f–o–x–�–‰–’–›–¤–­–µ–½–Å–Í–Ö–Þ–ç–ð–ù–— ———$—-—6—?—G—O—W—_—h—p—x—€—‰—’—›—£—¬—µ—¾—Æ—Ï—Ø—á—é—ò—û—˜ ˜˜˜'˜0˜9˜A˜I˜Q˜Y˜a˜i˜q˜y˜�˜‰˜‘˜™˜¡˜©˜±˜¹˜Á˜ɘјÙ˜á˜é˜ñ˜ù˜™ ™™™!™)™1™9™A™I™Q™Y™a™i™q™y™�™‰™‘™™™¡™©™±™¹™Á™É™Ñ™Ù™á™é™ñ™ù™š ššš!š)š1š9šAšIšQšYšašišqšyš�š‰š‘š™š¡š©š±š¹šÁšÉšÑšÙšášéšñšùš› ›››!›)›1›9›A›I›Q›Y›a›i›q›z›ƒ›‹›“›œ›¥›­›µ›½›Å›Í›Ö›ß›ç›ð›ù›œ œœœ%œ-œ6œ?œHœPœYœbœkœsœ|œ…œŽœ–œŸœ¨œ±œºœœÊœÒœÚœâœêœóœûœ� ���$�-�5�>�G�O�W�_�g�o�w�€�‰�‘�š�£�«�´�½�Å�Î�×�ß�è�ñ�ù�ž žžž%ž.ž6ž>žFžNžVž_žgžožxž�ž‰ž‘ž™ž¡žªž²ž»žÄžÍžÕžÝžåžížõžýžŸŸŸŸ&Ÿ.Ÿ7Ÿ?ŸHŸQŸYŸaŸiŸqŸyŸ�ŸŠŸ’Ÿ›Ÿ¤Ÿ¬Ÿ´Ÿ¼ŸÄŸÌŸÔŸÜŸäŸìŸôŸüŸ     $ , 4 < D L T \ d l t | „ Œ ” œ ¤ ­ µ ½ Å Í Õ Þ æ ï ÷ ¡ ¡¡¡#¡,¡5¡=¡F¡O¡X¡a¡i¡r¡{¡„¡�¡•¡ž¡§¡°¡¹¡Á¡Ê¡Ó¡Ü¡å¡í¡ö¡ÿ¡¢¢¢!¢)¢1¢9¢A¢I¢Q¢Y¢a¢i¢q¢y¢�¢Š¢’¢š¢£¢¬¢µ¢½¢Å¢Í¢Õ¢Ý¢å¢í¢õ¢ý¢£ £££'£0£9£A£I£Q£Y£a£i£q£y£�£‰£‘£™£¡£©£±£¹£Á£É£Ñ£Ù£á£é£ñ£ù£¤ ¤¤¤!¤)¤1¤9¤A¤I¤Q¤Y¤a¤i¤q¤y¤�¤‰¤‘¤™¤¡¤©¤±¤¹¤Á¤ɤѤÙ¤á¤é¤ñ¤ù¤¥ ¥¥¥!¥)¥1¥9¥A¥I¥R¥Z¥c¥k¥t¥|¥…¥�¥•¥�¥¦¥®¥·¥¿¥Ç¥Ð¥Ø¥à¥é¥ò¥ú¥¦ ¦¦¦%¦-¦6¦>¦G¦O¦X¦`¦i¦q¦z¦‚¦‹¦“¦œ¦¤¦¬¦´¦¼¦Ħ̦Ô¦ܦä¦ì¦ô¦ü¦§ §§§%§-§5§=§E§M§U§]§e§m§u§}§…§�§•§�§¥§­§µ§½§ŧͧÕ§ݧæ§î§ö§þ§¨¨¨¨'¨/¨7¨?¨G¨O¨W¨_¨g¨o¨w¨¨‡¨�¨—¨Ÿ¨§¨¯¨·¨¿¨ǨϨרߨç¨ï¨÷¨ÿ¨©©©©'©/©7©@©I©Q©Y©a©i©q©y©‚©‹©“©›©£©«©³©»©é˩ө۩ã©ë©ó©û©ª ªªª#ª+ª3ª;ªCªKªSª[ªcªkªsª{ªƒª‹ª“ª›ª£ª«ª³ª»ªê˪ÓªÛªãªëªóªûª« «««#«+«3«;«C«K«S«[«d«m«u«}«…«Ž«–«ž«¦«®«·«¿«È«ЫÙ«â«ê«ò«ú«¬ ¬¬¬#¬+¬4¬=¬E¬M¬U¬]¬e¬m¬u¬}¬†¬ެ–¬ž¬¦¬®¬¶¬¾¬ƬάÖ¬߬ç¬ï¬÷¬ÿ¬­­­­'­/­8­@­H­P­Y­b­j­r­z­‚­Š­’­š­¢­ª­²­º­­Ê­Ò­Ú­â­ê­ò­ú­® ®®®"®*®2®:®B®J®R®Z®b®k®s®{®ƒ®‹®”®œ®¥®­®¶®¿®Ç®ЮÙ®â®ë®ó®ü®¯¯¯¯(¯1¯:¯C¯K¯T¯]¯f¯o¯w¯€¯‰¯’¯›¯£¯¬¯µ¯¾¯ǯϯدá¯ê¯ó¯ü¯° °°°(°1°:°C°K°T°]°f°o°x°€°‰°’°›°¤°­°µ°¾°ǰаÙ°â°ê°ó°ü°± ±±±$±,±4±<±D±L±T±\±d±l±u±}±…±�±•±�±¥±­±µ±¾±ƱαÖ±Þ±æ±î±ö±ÿ±²²²²'²/²7²?²G²O²W²_²g²o²w²²‡²�²—²Ÿ²§²¯²·²¿²Dzвزà²è²ð²ø²³³³³ ³(³0³8³@³H³P³Y³b³j³r³z³‚³г’³š³¢³ª³²³º³³ʳÒ³Ú³â³ê³ò³û³´ ´´´&´/´8´@´H´P´X´`´h´p´x´€´ˆ´�´˜´ ´¨´°´¸´À´È´дØ´à´è´ð´ø´µµµµ µ(µ0µ8µ@µHµPµXµaµjµrµzµ‚µе’µšµ¢µªµ²µºµµʵÒµÚµâµêµòµúµ¶ ¶¶¶#¶+¶3¶;¶C¶K¶S¶[¶c¶k¶s¶{¶ƒ¶‹¶“¶›¶£¶«¶³¶»¶ö˶Ô¶ܶä¶í¶ö¶þ¶····&·.·6·>·F·N·V·^·f·o·w··‡·�·˜·¡·©·²·»·Ä·Ì·Õ·Þ·æ·ï·ø·¸ ¸¸¸#¸+¸3¸;¸D¸M¸U¸^¸g¸o¸x¸�¸‰¸‘¸™¸¡¸©¸±¸¹¸Á¸ɸѸÙ¸â¸ê¸ò¸ú¸¹ ¹¹¹"¹*¹2¹:¹B¹J¹R¹Z¹b¹j¹r¹z¹‚¹й’¹š¹¢¹ª¹²¹º¹¹ʹÒ¹Ú¹â¹ë¹ô¹ü¹º ººº$º,º4º<ºDºLºTº\ºdºlºtº|º„ºŒº”ºœº¤º¬º´º¼ºĺ̺Ôºܺäºìºôºüº» »»»$»,»4»<»D»L»T»\»d»l»t»|»„»Œ»”»œ»¤»­»¶»¾»Ç»лÙ»â»ë»ô»ý»¼¼¼ ¼)¼1¼:¼C¼K¼S¼\¼e¼m¼u¼}¼†¼�¼—¼ ¼©¼±¼¹¼¼˼Ó¼Û¼ã¼ì¼õ¼ý¼½½½ ½(½1½:½B½J½R½[½d½m½u½}½…½�½•½�½¥½­½µ½½½ŽͽÕ½ݽå½í½õ½ý½¾ ¾¾¾%¾-¾5¾=¾E¾M¾U¾]¾e¾m¾u¾}¾…¾�¾–¾Ÿ¾§¾¯¾·¾¿¾ǾϾ׾߾ç¾ï¾÷¾ÿ¾¿¿¿!¿*¿2¿;¿C¿L¿T¿]¿e¿n¿v¿¿‡¿�¿˜¿¡¿©¿²¿º¿ÿ˿Կܿå¿í¿ö¿þ¿ÀÀÀ À)À1À:ÀBÀKÀSÀ\ÀdÀmÀuÀ~À†ÀŽÀ–ÀžÀ¦À¯À¸ÀÀÀÈÀÐÀØÀàÀèÀðÀøÀÁÁÁÁ Á(Á0Á8Á@ÁHÁPÁXÁ`ÁhÁqÁzÁ‚ÁŠÁ’ÁšÁ¢ÁªÁ³Á¼ÁÄÁÌÁÔÁÜÁäÁìÁôÁüÁ ÂÂÂ$Â,Â4Â<ÂDÂLÂTÂ\ÂdÂlÂtÂ|„Œ”œ¤¬´¼ÂÄÂÌÂÔÂÜÂäÂìÂôÂüÂà ÃÃÃ$Ã,Ã4Ã<ÃDÃLÃTÃ\ÃdÃlÃtÃ|ÄÌÔÜäìôüÃÄÃÌÃÔÃÜÃäÃìÃôÃüÃÄ ÄÄÄ$Ä,Ä4Ä<ÄDÄLÄTÄ\ÄdÄlÄtÄ|ĄČĔĜĤĬĴļÄÄÄÌÄÔÄÜÄåÄíÄöÄþÄÅÅÅÅ'Å0Å8Å@ÅHÅPÅXÅ`ÅhÅpÅxŀňÅ�ŘŠŨŰŸÅÀÅÈÅÐÅØÅàÅèÅðÅøÅÆÆÆÆ Æ(Æ0Æ8Æ@ÆHÆPÆXÆ`ÆhÆpÆxƀƈÆ�ƘƠƨưƸÆÀÆÈÆÐÆØÆàÆèÆðÆøÆÇÇÇÇ Ç(Ç0Ç8Ç@ÇHÇPÇXÇ`ÇhÇpÇxǀLjÇ�ǘǠǨǰǸÇÀÇÈÇÐÇØÇàÇèÇðÇûÇÈÈÈÈ&È.È6È>ÈFÈNÈVÈ^ÈfÈnÈyȄȌȔȜȤȬȴȼÈÄÈÌÈÔÈÜÈäÈìÈôÈüÈÉ ÉÉ"É*É2É:ÉBÉJÉRÉZÉbÉjÉrÉzɂɊɕɠɨɰɸÉÀÉÈÉÐÉØÉàÉèÉðÉøÉÊÊÊÊ Ê(Ê0Ê8Ê@ÊHÊPÊXÊ`ÊhÊpÊxʀʈÊ�ʘʠʨʰʸÊÀÊÈÊÐÊØÊàÊèÊðÊøÊËËËËË%Ë-Ë5Ë=ËEËMËUË]ËeËmËuË}Ë…Ë�˕˞˦˯˶˽ËÅËÌËÓËÛËãËëËóËúËÌ ÌÌÌÌ'Ì/Ì7Ì?ÌGÌOÌWÌ_ÌgÌoÌx̀̈Ì�̸̨̘̠̰ÌÀÌÈÌÐÌØÌàÌèÌðÌøÌÍÍÍÍ Í(Í0Í8Í@ÍHÍPÍXÍ`ÍhÍoÍvÍ}Í„Í‹Í’Í™Í Í§Í®Í¶Í¾ÍÆÍÎÍÖÍÞÍæÍîÍöÍþÍÎÎÎÎ&Î-Î4Î;ÎCÎKÎSÎZÎbÎjÎrÎz΂ΊΒΚ΢ΪαιÎÁÎÉÎÑÎÙÎáÎéÎñÎùÎÏ ÏÏÏ!Ï)Ï1Ï9ÏAÏIÏQÏYÏaÏiÏqÏyςϋϓϛϣϫϳϻÏÃÏËÏÓÏÛÏãÏìÏôÏüÏÐ ÐÐÐ$Ð,Ð4Ð<ÐDÐMÐVÐ^ÐgÐpÐxÐ�ЊВКТЪвкÐÂÐÊÐÒÐÚÐâÐêÐòÐúÐÑ ÑÑÑ!Ñ)Ñ1Ñ9ÑAÑIÑQÑYÑaÑiÑqÑyÑ�щёљѡѪѳѺÑÁÑÈÑÏÑÖÑÝÑåÑíÑõÑýÑÒ ÒÒÒ'Ò/Ò7Ò?ÒHÒPÒYÒ`ÒgÒnÒvÒ}Ò„Ò‹Ò’Ò™Ò¡Ò©Ò°Ò·Ò¾ÒÆÒÍÒÔÒÛÒâÒéÒñÒùÒÓ ÓÓÓ!Ó(Ó/Ó6Ó>ÓEÓLÓSÓ[ÓcÓkÓsÓ{ÓƒÓ‹Ó“Ó›Ó¢Ó©Ó°Ó¸ÓÀÓÉÓÒÓÙÓàÓçÓïÓ÷ÓÿÓÔÔÔÔ$Ô+Ô2Ô9ÔAÔIÔPÔWÔ^ÔfÔmÔtÔ{ÔƒÔŠÔ‘Ô˜Ô Ô§Ô®ÔµÔ½ÔÄÔËÔÒÔÚÔáÔèÔïÔ÷ÔÕ ÕÕÕÕ&Õ.Õ6Õ>ÕFÕMÕUÕ]ÕeÕmÕuÕ}Õ…Õ�Õ•Õ�Õ¥Õ­Õ´Õ»ÕÃÕËÕÓÕÛÕãÕëÕ‡é(dà “Ç È ªÍ ­Ö YÞ ˜å 7æ ç è Ÿé õé ê §ê Çë í ^í ›ð Lñ :ó Dõ uõ Ðõ $ö €ö I÷ Ã÷ ƒø ýø eù ½ù ,ú bú Cý  6 Ä E ë J 9 ª A ~  µ ± %! S( . A0 ö1 2 »> ? Š kŠ ¨Š úŠ G‹ Œ‹ ê‹ 2Œ ጠ� 5� ƒ� ¢� ñ� 7Ž ~Ž ÅŽ � T� �� Ô� �� ¦� U‘ ’ ¾’ “ w“ ø“ `” o” Õ” • _• î• 7– ‘– È– — C— —— ø— –˜ ™ _™ º™ 4š sš û¶ · · ú¹ K¼ |¼ s¾ NÀ êÅ É CÊ Ð üÓ Œ× Ø ŠØ ÝØ 2Ù |Ü šÜ Tï ºï ð � ó B á O  € J( €( 44 2G hM ðV Œ^ Ðb 9c öd _e ¸p =u uu óv Hz º| »~ Ÿ `‚ ¹‚ e„ ÷„ … 3… D… ”… Ì… ø… �† F‡ º‡ 2ˆ ¦ˆ )‰ ¬‰ +Š ¯Š ‹ o‹ ½‹ xŒ ߌ F� «� Ž tŽ ÓŽ 2� —� � w� û� ˆ‘ ’ x’ Æ’ <“ ¸“ ?” ³” %• Ž• ÷• a– ã– e— Ù— "˜ 9˜ J˜ Š˜ '™ ‚™ ¡™ jš Ù© s´ ÆÀ WÇ ?× �ã Jó Üý ´à"R#H$½$>%T&¹'(Ú)v*+€,.-2µ2‡3î3P4{45è5ä67;±;á<q>—>>?“@pAqB CvC¬CÃC9D}DÁDERE|E F>FêFGPG”G×GH¬HÊHvI›IÖIJ9JLJøJ0K·KÒKíKL#L>LXL�LÔL*M}MÓM+NƒNÛN3OiPÔQ§/¨Ž© ªûªk«L¬:­M®Ê®&¯,°©°±é±H²=½À“Á°ÂöÂEÑÃÄÃhĆÄ2ÅkÅ~Å*ÆPÆ’Æ´ÆìÆÇ'ÇÓÇùÇ;ÈZÈ”ÈÆÈÙÈ…É«ÉíÉ ÊOÊ ÌyÌÔÌðÍgÎÂÎfЃÑãÑ;Ò�ÒõÒcÓÁÓ!Ô‹ÔûÔµÕVÖ¸Ö×p×Ò×FاØÙyÙÚ ÚþÚ\Û´ÛܺÜÝ„áNâ§â ã æåóô…÷Tú¿ú¼´ûÇ  ” ß ‘ÜV'¡'“0ç091"4ª9PAIHNÚNÆSëV;]faeûe_rÄuŸyü€ ‹c‹¥‘æ’Ùœ+¡J¡¡¡ú¡¢Ÿ¢ £o£Ó£*¤ƒ¤ܤ±¥¦s¦Ô¦Ÿ§ß§�¨Hª’ªת(«�«È«,¬\¬˜¬ ­µ­ÿ­D®•®ú®5¯™¯ɯ°¨°ò°,±}±ñþ±¢²ì²1³‚³í³3´T´!µn¸ ¹)¹ ºb¿~ÄîÇ`ÑYáãé­îö½þŽx ‹U��fŽ‚i“m. î¯ «!‡"r#L$p$»$%˜%ó%Þ&¸' (“)í)J*¬*Ð*l+†-Š0¿01c1¡7¨?ø?B@‘@ÐD H‘IüIJ¿J_KöKKL©LþLXM‚N:OòOÅP/QÓR6SLTÃTUY<[¢[þ[k\Í\(]^ø^æ_é`óa)c†c¶cácd;de£eäe}fÇf/g‹gøg[h¹hŸi j\j4k¡kwl€m�nÌn™o‘p~qmrosetÐt÷t¿u&vƒvñvRw«wxhxÊx¶y§z–{š|¥}Ý}q~T‚J€±€�|�Ý�7‚ƒ „ø„ü…‡?‡ˆdˆH‰8Š*‹a‹)Œ�ŒíŒ[�¼�Ž÷Žè�×�Û‘æ’“ß“C”'•– —?—˜n˜˘9™š™ô™Õ𯛵œ¹�Äž9Ÿ¢×¢@£ £»£{¤h¥g¦m§¡§â§@¨›¨ò¨q©Щú©·ª «7¬\¬­ ®¯x¯•¯Ö¯4°�°æ°z±Û±²n²βå³@´—´À´)µ"¶�¶ñ¶ ·M·š·ò·d¸¿¸¹@¹…¹ÿ¹xº“»ò»¼œ¼œ½¾Ú¾A¿ÀÁnÁGÂOÿÃÔÃÄgÄÁÄ8ŘÅñÅÆ`ÆÚÆÈuÈÎÈ'ÉQÉßÉÌÊ ËuÌIÍ ÎÏvÏ•ÏØÏ<ТнÑãÑIÒ8ÓnÓ±ÓÔ[ÔÒÔ2Õ‹ÕµÕûÕ_Öˆ×ç×@Ø™ØÃØ,Ù ÚqÚãüý‚ýLŒ G N n º <Ù³ˆº%è^„ ­àÍ%!#£("+Ž,‘.3Î7p8ß8ü?@’GáG+H¨K÷KúNRO™RóR�W÷WXy`ÖfEg”gãg2hiŒiðiäjøk m¨múm;n�nøn5ovoÈo3pHpBrSuïuÎvw.w~wÞw^xEy±yzYzF|˜|î| }Õ}uP†œ‰õ‰�äŽû�‹’ä•�™R›Æ¡9¤ÀÊƊȨËÌhÌàÐøÙýÚWÝqÞ:àXáíâäýåXæléêúüp— ó¨ �%)&Ô&Ÿ'+()Ä)V*­*+j+•+Õ+ì+º,é-.—.3ò5'6 :�>È>@WCCSD‡DÑD EƒEöEpFÔF2G•GHsHÂHxIþI{JK†KöKxLãL`M×M:NÅN—öªx A!s!("Ó"ô#Ò$÷$÷&Ë(þ(¡+�-‚/¥3É5‘79É<¸@NA¿AÜAµFG-J|JßL7Mnóno oWoµqÊq›yz­€\„¾„ÑŠÓ�<�Í’Í•®›/ W£Õ§L«“¬Õ¬ç¬J­Ç­'®q®®$¯€¯Û¯>°•°À° ±S±£±é±D²�²(³H³÷³%´Ž´³´ü´‘µðµV¶ ¶Ó¶û¶#·V·ò·˹wº�ºï»N¼v¼˜¼K½ ÍìÍùÍBÎ’ÒkÓxÓÁÓãÓ+ÔPÔ‘ÔlÕEÖ£ÖýÖ>×ÚçÛuÝ(æçoðNñˆògóªôŽõÇú©û¤ÿ†. / ”  ã Ï U�¦Äö€iF]®ôÂ3Òùaq©Âà8¹pº—®ÿE p !`!ƒ!""l"I#`#±#Û%&.&L&j&±&Ô&U'¯'¢(¹( )m)´)ß)‚*å*Ø+ï+@,�6ú67'7D7v7™7¦7°8ø8E9R9+<g<©<¶<Ë<"=f=±=¾=^>€?½?Ê?á?ý?@L@®@»@è@ AAPAŽAÄAÑA%BÊBCGCTCôC?DjDwD¾DÖFZHáIÐJ¤LÃL†MENZOéObPQR÷R?T-UVWæW¯XGYtZJ[\ä\¡]r^_×_{`Gafblcsg“gBhjh–håhiÏižl¦ns§s¥u2vÎv;w¢xÇyäz|'}D~cˆ€¡‚8„\…~†÷‡n‰‘в‹/�ªŽÙŽ�0�Ï�ü��¿�w‘È‘)’p’¬ ¡5¡D¡]¡�¡¸¡Å¡n¢ ¦ȧ¨g¨µ¨è¨#©0©f­ª­Ý­ê­Š®ϯ¥°ϰܰñ°1±r±±'³€³гݳò³J´¡´ê´÷´Kµ¢µûµ¶©¶h¸¡¸и¹-¹f¹¤¹±¹ʹ鹺&ºZº—º¤ºÓº+»8»g»¤»±»ß»¼¼N¼˜¼Þ¼-½:½Þ½5¾â¾P¿¹¿dÀ ÁÜÁ ÂVÂcÂÃlÃÛÃèÃÿÃ$ÄBÄ�ÄÑÄÞÄ7Å­ÅdÆÏÆ(ÇwÇ„ÇÏÇ(È€È�È1É1Ò’ÒÚÒêÒkÓÖÓ?ÔïÔXÕ°ÕÖ„ÖåÖ×)×=×¾×)Ø’ØïØfÙÍÙ Ú©Ú Û>ÛMÛÎÛ9Ü¢ÜÝxÝËÝèÝIÞ}ÞÆÞÚÞ[߯ß/àžàáXáuáÖá âSâgâèâSã¼ã+ä’äåädåÅåù忉æôæ]çÑç8è‹è ékéžéçéûé|êçêPë¾ë0ìˆìäìÆíZö“öÜö*÷g÷éúN‡Ðäœ C 8XÌTÆ"jÏ�Šè o¤îc•?æÁz – B!g!ú!f"¡"#Ë#&±&s'*(ò(Ö) +e,€,„-Ÿ-Q.j.‹.·.Ì.'/`/ƒ/Ù/%0Q0f0Á0 101†1¯1ð1292q2�2º2ò23;3s3’3¼3ô34ª4Û4î4š5À5ê566w§wxXxzx•y‚z”|ê|”~�W‚炃\ƒ€ƒу…„¤„…a……+†X†à†‡m‡‡<�9�g�ö’ –=–L–—ò˜d›uŸ¢ø¦h¨’ªi®²°¸¼½¦½4¾̾S¿î¿|ÀÁ—Á£ ÃzÃîÃÄVÄÇ;Ç[ÇÈ@ÈRȨÈíÈ3ÉzÉÉÉÊeʪÊóÊDˀ˓Ë?̪ÌÍcÍÎ;ÎÎãÎÏ¥ÏÐ|ÐØÐ-Ñ’ÑÃÑóÑAÒÁÒûÒ+ÓÑÓõÓAÔ£Ô ÕEÕçÕIÖmÖ¹Öׂ׽×[ؼØ%Ù�ÙèÙIÚ²ÚÛÈÛ}Ü5ݕݰÝûÝÞ_ÞzÞÚÞ ßXß°ßàrà¶à÷àˆáóá^â“â»â÷â ãyãßãEäoäßäEå«å éié‡é3êXê°êýêQë¥ëûëQì¦ìüìÜíDîœîãîqïŽïÏï ð`ðµðÓðñ¤ñôñIòžòôò`óÇóô¨ô7õUõö&öŒöÏö%÷Ž÷Î÷)øiø³øùªù9úkúÅúïúû‡ûãûAü üýbýÂý&þ‘þðþoÿÑÿ0’Þ?r)‘Ói•·0‘ñQ²‹û[¦õ`Ö† å H    X þ ’ ò T ® 1ÜF¤ ‰ä?šõP«a¼rÍõéöĸŕ‡”Ñ5V•Æ<‚Èé>~¾ïoµûAb B ‚ ³  n … Ü ü ª × ] ˜ µ Ò  ) E b } š µ Ò î  &CZ±ÑªÛ÷»ç,ÙÄÿ7RnЦ¼ 2 ß ë$2%P%n%Œ%ª%È%ç%&#&@&]&{&’&é& '·'å'(5(K(¢(Â(p)º)ü)*K*+Y+›+¹+ê+¢,Ü,4-`-}-›-¹-×-.0.G.ž.¾.l/¤2é23&3D3c3�3 3¾3Ý3ü3424‰4©4W55½5LBB²BÉB C@CîCXH‘H¯HÌHéHIIrI’I@JhJÝJýJKzKåNO+O�O¡ONPzPèP$Q@Q\QxQ“Q®QÊQèQ$R@RWR­RÍRzS¡W`X±XEYŠYZqZˆZÞZþZ«[¬_` `6`Œ`¬`Ya„^„|„±„Æ„…>…S…†(†f††ó†‡ЇÖ‡è‡ý‡dˆŒˆõˆ‰…‰±‰à‰ö‰LŠlŠ‹A‹µ‹Õ‹ê‹QŒi•š•¶•Í•z–`™«™Йõ™qš4›Ê�ý�ž2žàžŸ_Ÿ0§a§x§ϧï§�¨ ®9®P®¦®Æ®s¯ ¯ì¯°$°C°°›°²°±(±Õ±²[²–²±²ϲ ³%³<³é³´k´‰´Ÿ´Lµyµ¨µ¾µk¶ Ý>ÝZÝqÝÞKÞ|Þ˜Þ¯Þ\߉ßáßàànàŽà<áká á¾áÜáóáJâjâãfäªäÈä#å’åNæ2èxè–è´èÒèé»éNë�ë®ëÞë–ìsîµîÓîï»ïI÷„÷¢÷À÷Þ÷ü÷ø1øßøù^ù„üÕüóüý/ýNýmýŒý«ýÉýçýþ%þCþaþþ�þ»þÒþ)ÿIÿ÷ÿ]=[z‘è¶ã0LcM}”°Ö R…»[ŽÏí )Gf„¢À×…´åüªÙ *AïWu“²Ðç•Á7Nû'�´a�åp�=iÁà÷¤ Ð (![!r!"K"£"Ö"í"C#c#$<$”$²$É$v%¢%ú%-&D&ñ&'u'¨'¿'(5(â()g)†)�)K*x*Ð*++É+ö+N,‚,™,ð,-¾-ë-C.b.y.'/T/ª/å/û/©0Ö0.1M1d12?2—2Ë2â2�3½34I4`4·4×4…5²5 6)6@6î67q7¬7Â7p8y9ª9Ç9Þ94:T:;);g;ó@$ASAjAÀAàA�BØQ R)R@R—R·ReS†UÓUøUV;VyV6W(YuY“Y±YÏY ZÊZ:^m^‹^¢^ù^_Ç_ö_6`T`r`�`­`Ë`â`9aYab6bib‡b�bôbcÂcïcd›d¸dÔdñd e*eFebee›e·eÓeðe f(fDfaf}fšf¶fÓfÿfg8gOg¥gÅgrhšhi.iCiªi؆‡3‡O‡l‡Ї§‡Ç߇ý‡ˆjˆŠˆ7‰_‰�‰ú‰3ŠOŠlŠˆŠ¥ŠŠÙŠ/‹O‹ü‹$ŒbŒ ŽöŽ �ƒ‘¯‘˜1˜g˜|˜Ó˜ö˜ ™¹™g¢¢¢À¢Þ¢ü¢£9£P£§£Ç£u¤£¤Õ¤ò¤(¥=¥”¥·¥Ì¥z¦·¦ô¦§0§T§¨<¨o¨�¨¤¨û¨©É©ø©+ªJªaª¸ªت†«µ«è«¬¬r¬’¬@­å¯°+°�°¡°N±{±5²q²�²¬²è²³#³_³{³˜³´³ϳë³´"´>´Z´v´’´Á´í´µZµzµ'¶S¶„¶ ¶µ¶ ·>·z·—·¸¸C¸õ¸*¹]¹{¹’¹é¹ ºGºuº²ºѺ?»c»¼K¼~¼›¼Ѽæ¼=½`½x½«½ƽá½ø½N¾n¾¿H¿{¿–¿²¿É¿À?ÀìÀÁRÁnÁ¡Á¼Á×ÁîÁDÂdÂÃ<ÃmÇàöà Ä,ÄÙÄÅ?ÅXÅÌÅìÅÆhÆ•ÆÈÆãÆÿÆÇlÇŒÇ9Èaȟȼçè2èIèŸèÆèé1éOémé‹é©éÇéåéêê9êUêsê‘ê¯êÅêë+ðbñ¸ñ"ô\ôwôßôõ4õ†÷ø„øwùaú‹üýþ~Õ,BáÃï�ßöMmâ   ‚ ô  b ‚ 0 X Í í jøŸ¶ -Ûx˜­�Ï&\qÈëu• HZo×+f…Ö‰÷(D[±Ñ~¦ä–#Ç#ö# $c$ƒ$0%Ê2û23.3„3¤3Q406}6¢6Ç6å6#7à7k9¸9Ö9ô9:P: ;É=þ=>:>Q>¨>È>v?¥?Ø?ö? @d@„@2AaA—AµAÒAèA?B_B CºmºȺ溻"»@»]»{»™»·»Õ»ó»¼(¼¼Ÿ¼M½˾¿x¿Ô¿À¼ÀÍÁ Â1ÂOÂnÂ׊Ã×Ä+ÅGÅ|Å‘ÅçÅ Æ1ÆiÆ…ÆÇÆíÆHÇ}Ç¥ÇYÈ”ÈÉBÉjÉØÉÊzʽÊÙÊøÊ:ËV˘ËÀËÌRÌzÌ.ÍiÍäÍÎ?έÎýé5êQêuêÐêëµëî}î¤îºîíî%ïÇï…ñéñò&òYò‰ò+óUõ¹õàõöõ)öYöûö>ÿÙ‡±Ã·áóÖÃíÿ¡ËÝã!w¡³:dvÎø 8 d v ’ ¾ Ð b Œ ž n ˜ ª  ÊÜËõÎø õ1dyÏñ³ÛOo„ë:¹îY{�Îç[{�÷ºëYy'Y Š ¡ ø !Æ!5$‹$ª$À$%7%å%&K&l&À&ô&�'Á'ù'](w(�(³(ß(€)®) *$*y*™*E+p+È+æ+ø+ ,a,�,--X-®-Ì-â-7.W.///‹/©/Â/Ø/.0N0û0'1‰1§1À1Ù1ï1E2e23<3”3æ3;4[4515{5®5à5ö5K6k67­BóBrCŸCµC D+DØDEØEF/FMFˆF¤FÂFýFG7GrGŽG¬GçGH!H\HxH–HÑHíHI{I)J¼MN0NfN{NÑNóNO|OœOPNP`PuPÜPQmQ•QýQa_·_Õ_ ``u`—`¬`Ya�a¿aØaLblbãbc0cEc¬cÔc=dedÍdf6fLf¢fÂfog—g h+h@h§hÔhiipi�i=j"nzn—nÍnân9o\oqo¯oÈo=p]pÕpq"q7qŸqÇq1rYrÂr\u´uÑuvvsv–v«vévwww—wxJx\xqxÙxyky“yüy$zz­zÙz{{a|¼|9}º}=~À~u€3€€â€U�v�²�Ö�‹‚Ê‚ù‚ƒxƒ¸ƒÞƒ=„–„Å„à„D…�…Ã…"†R†˜†½†í†+‡P‡€‡¾‡ã‡ˆQˆvˆ¦ˆäˆ ‰n‰¬‰ÉxЧŠçŠ ‹<‹‘‹Å‹Œ=ŒtŒ·ŒÒŒ(�Ä�Ž;ŽRŽ©ŽÉŽw�Ÿ��4�I�±�Þ�6‘W‘n‘ő呓’Ô’“$“F“l“ “ê“”T”õ”!•|•ª•Ö•–|–^—·—6˜·˜:™½™rš›0›¿›ß›Rœsœ¯œÓœˆ�Ç�ö�žužµžÛž:Ÿ“ŸŸÝŸA š À ¡O¡•¡º¡ê¡(¢M¢}¢»¢à¢£N£s£££á£¤k¤©¤À¤u¥¤¥ä¥ ¦9¦ަ¦ö¦2§i§¬§ǧ¨¹¨©0©G©ž©¾©lª”ª «)«>«¦«Ó«+¬L¬c¬º¬Ú¬ˆ­É­ü­®;®a®�®×® ¯9¯Ú¯UÀ†À¢À¹ÀÁ/ÁÜÁÂ7ÂIÂ]³Â×ÂSÃ~Ã�éÃÔÃæÃÿÃ*Ä<ÄUĀĒīÄÖÄèÄÅ,Å>ÅqņÅÜÅþÅÆÀÆèÆ\Ç|Ç‘ÇøÇhË«ËÅËßËùËÌ.ÌHÌbÌ|̖̱ÌåÌúÌPÍr͇Í4Î×ÐÑ'Ñ~Ñ�ÑïÑ$ÒkÒzÒÓ¶ÖåÖüÖ©×:Ú’Ú°ÚÇÚtÛ¡Û.ÜJÜg܃ܠܼÜÙÜõÜÝ,ÝHÝcÝݛݶÝÒÝîÝ Þ'ÞDÞ`Þ|Þ™ÞµÞÑÞèÞ•ßõßàtà’à©àÿàá“á³á*âeâwâŒâóâã„ã¬ãä@ä˜ä¶äÍä#åCåðåætæ’æ©æÿæ$çUçqçˆçÞçÔüý,ýHýdý†ýáýÙA‘ÆÛ2Ujßÿw²ÄÙA Óñ& ; ’ µ Ê x    5 ­ è ú  w †¹× "yœ±_‡ü”Ïáö^Ex–­$Òúo�¤ ›ÎìYy'�ׇ ã !Ë!s3­4Ø4Œ5¶5•6Ï6ê6 757Œ7¯7Ä7r8š89/9D9¬9QsQ�QÓQèQ?RbRwRµRÎR|S¤ST9TNT¶T¿UíUÅabTbkbÂbâb�c¸c-dMdbdÊdÅeyfåf>gëh™iJk¨kúo%p ? H ƒH “N O â_ °l µm óm Ôn ôo [p ¸p eq Ëq =r ör Zs Às 3t “t ït bu Ùu éu �v Nw „w Áw x 9x 8z ¦} ê~ N © Ú € /€ K€ g€ ƒ€ € � k� Ä� ‚ ‚ §‚ Nƒ ~ƒ ½ƒ Ùƒ õƒ „ -„ I„ €„ »„ … G… �… ß… († T† û† +‡ ^‡ z‡ –‡ ͇ ˆ Mˆ –ˆ äˆ -‰ a‰ Š 8Š bŠ ŸŠ ñŠ >‹ ƒ‹ Ü‹ ,Œ ÓŒ � ,� u� œ� è� .Ž uŽ ¼Ž � K� ”� Î� s�  � G‘ ò‘ ±’ “ j“ Ü“ Z” i” ¹” • 1• Ò• 1– u– – ã– =— Š— ë— �˜ þ˜ R™ ­™ š mš õ¶ · · í¹ /¼ v¼ j¾ EÀ áÅ ûÈ 6Ê Ð ïÓ × Ø }Ø ÐØ %Ù oÜ ”Ü Fï Œï Ûï  Å  Ó !  R <( z( &4 $G ZM âV ~^ Âb c èd 1e ªp /u ou åv :z ¬| ­~ ‘ R‚ ‹‚ W„ é„ … -… >… †… Æ… Ø… „† 8‡ ¬‡ ˆ ˜ˆ ‰ ~‰ Š ©Š ÷Š i‹ ¯‹ jŒ ÑŒ 8� }� Ž FŽ ¥Ž � ‰� û� i� í� z‘ ÿ‘ j’ ¦’ 3“ ª“ 1” ¥” • €• é• S– Õ– W— Ë— ˜ 3˜ D˜ �˜ ™ t™ ›™ aš Щ j´ ½À NÇ 6× †ã Aó Óý «×"D#:$¯$0%F&«'î'Ì)h* +r,.2§2y3à3"4u45Ú5Ç67ò:£;Ó<c>‘>5?…@VAkBCkC¦C½C3DtD¸DEIEvEF8FÝF GGG‹GÎGHŸHÄHiI•IÍIJ3JFJëJ*K®KÉKäKÿKL5LOL‡LËLMpMÆMNvNÎN&O\PÇQ/SXU W‰W­WóW+X>XãX]&_ib°b@e™f¬j1ksoáo‹tùtšz{º{{T€ï€(‚ƒ™„Á„&…s…¾…û…€‡gŠ ‹¥‹ÙŒ¦�_Ž-�'�N�Þ�­‘l’¸’Ö™ŸšŽ›�H�…�tŸ³ —¢þ¢ý£å¤´¦§$¨ƒ©Ü©ðª=«A¬/­B®œ®ø®!°{°×°Þ±B²7½û¿†Á£ÂíÂ<ÈþÃ[Ä€Ä%ÅeÅxÅÆJƉƮÆãÆÇ!ÇÆÇóÇ2ÈTÈ‹ÈÀÈÓÈxÉ¥ÉäÉÊFÊÌKÌ¦ÌæÍ9ΔÎ\ÐyѵÑ1ÒbÒÇÒYÓ“ÓóÓ�ÔÍÔ«ÕLÖ®ÖèÖf×È×<ØyØÙKÙàÙrÚôÚ.ÛªÛåÛ°ÜëÜ~á;â¡âãþåÈóô|÷Kú¹ú’ýŠõ�  j Ù gÖ,'›'i0á0314œ9BA;H NÔN¸SÝV-]XaeõeQr¶u‘yî€üŠ5‹—‘Ø’Ëœ¡D¡“¡Ì¡¢‘¢þ¢a£Å£¤u¤®¤£¥¦e¦Ʀ‘§¿§¨:ªrªΪ«_«¿«þ«<¬x¬ü¬§­ß­;®‡®Ì®,¯k¯©¯ä¯š°Ò°#±o±£±Þ±”²̲(³t³ß³´N´µ`¸ü¸#¹ºY¿uÄåÇWÑPáÚé¤îö´þ…o ‚Lx‡]€t[…_ üà¡ �!y"d#>$j$�$%j%Å%Ð&ª'’(…)ß)<*~*Ê*c+x-m0¹0æ051“7‹?ò?@c@ÂDþG‡IÎIJ²JUKìKLŸLÐL*MxN0OèO»PQÉRSBT•TðTkY/[•[ñ[^\À\]û]ë^Ù_Ü`æacXc¡cÛcd5de–eÏewfºf"g~gëgNh«h‘ißi.j&kskilrm‚nÆn‹oƒppq_rasWtÂtñt±uvuvãvDw}wx:xœx¨y™zˆ{Œ|—}×}h~F|<€£€�n�Ï�)‚ ƒûƒê„î…ù†9‡ò‡6ˆ:‰*Š‹[‹Œ‚ŒߌM�®�ŽéŽÚ�É�͑ؒ“Ñ“”• –û–9—ù—`˜½˜+™Œ™æ™Çš¸›§œ«�¶ž.Ÿ¢Ê¢3£“£µ£n¤[¥Z¦`§›§Ù§3¨ލĨd©¢©ô©ªª«*¬V¬­ü­û®k¯�¯ͯ'°‚°¸°m±­±ÿ±a²Á²س3´i´º´µ¶‚¶ä¶·D·�·Ä·W¸²¸è¸:¹|¹ñ¹jº…»ä» ¼޼޽Õ½̾¿ ÀùÀ@Á9ÂAÑÃÎÃÄYÄ“Ä*ÅŠÅÃÅÆWÆÌÆÈgÈÀÈùÈKÉÑɾʒËgÌ;ÍÎÏhÏ�ÏÏÏ.ДЯÑÝÑ;Ò*ÓhÓ¨ÓóÓ-ÔÄÔ$Õ]Õ¯ÕòÕQÖz×Ù×2ØkؽØÙûÙcÚÙüýyýCƒ : A h ­ ë 6Цl´ÛQ~û�ÚÄ!ÿ"š(+€,ƒ. 3À7b8Ñ8î?@hGÛGýG~KñKÐNLOoRíRsWñWXk`Èfgfgµgh i^iÂiÖjêkmzmÍm2nnÊnomoºopBp4rEuáuÀvúv%wpwÐwPx7yƒyzSz@|‹|á|}Ì}gB†މljq�ÖŽí�}’Ö•‚™D›¸¡+¤²Ã|Æ|ÈšËøË:ÌÒÐêÙïÚIÝcÞ,àJáßâòãïåJæféêñügŽ êŸùx%&Æ&‘'( )¶)H*Ÿ*ú*<+�+Ì+æ+¬,Û-.Ž. 3Õ5!6ý9p>Â>ù?ICyC6D�D£DòDuEÈESFÎF$GgGÓGVH¼HjIðImJKXKèKjLµLRMÉM N·N.OªOíOxPåP>Q�Q ReRÈR%S•SýSbT»TnUÞUCVžVôVWUW¡WÈW—XþXrY»Y.Z»Z)[©[\x\ã\G]}]É]s^[_¼_`Y`ž`â`$aha¬ab+bÈbíb’cód4emeÊe/fvfÙfhg•g:hfhºhâh6iŽi8j�j÷j0k†k-l^l›l2m`mn2oGoWo™oêoPpÂp/qlq®qÿqer—r¬rsns$wÇyå{,|V~ƒ€†ƒ‡šŠuŽý’–|œéœ©¢§­ª¶°û·UǞ̘Ҵەßõç|î\ñ�ñ4òdò·òósóïógôËô1õ§õéõéök÷¥÷Lø|øVý°ýþLþóþ5ÿšÿíÿ®øk­éyÃ6xkÙ Y – ¾  R ” {ªQŒÉ>¸"1ŠÈ¡k %!m!"Æ"ç#Å$ñ$ê&®(ø(˜+„-y/œ3À5ƒ7ö8»<ª@@A±AÖA‹FþFJvJµL1MO�O¹R7SGSZK_š_é_ñ`Ca§a“fÑfÇgÓhjYkžlðm=oŒp½p"qoqºqøq]rªrõr2sØthwxjx«xþxlyÐy,z]z£z{E{Ê{&|˜|}Ž~¤~µ~Nü±€¾€�O�ñ�O‚¼‚FƒÓƒb„Ó„…R…»…l†y†›†(‡O‡¥‡Õ‡Eˆ¸ˆ‰D‰Ó‰ŠvŠߊ;‹ª‹÷‹QŒÉŒðŒ—�Ç�nްŽ�ª��¡ R£‰¥k¦§§˨È©ª»ª³«Ó«x¬¤¬t­‰­7®Ù®”¯ò¯…°&±ö±Ò²ì³I¶Ö··¸#Á‰ÁÇÅÇöÇ3ÈNÈõÈ&ÉcÉóÉ!Ê^Ê©Ê×ÊË_Ë�ËÊËÌWÌ”ÌÃÌÍRÍÏÍ3ÎZίÎÇÎÏxÏÜÏ@ЋÐKÑæÑ@ÒïÒhÓÃÓÔ7ÔÞÔÕLÕ–ÕÄÕÖ”ÖÓÖñÞ>åhéîíàðjõ|ø" ×.éè!u%Ì%A&O*á-8.­.Z5Ì5è9T:–;àCãI RÙSÿS¦TßT$UBUbUV\V W7WQWjW&X]X°X@Y YïYZ@ZgZnínúno)o¬qÄq�y×yŸ€N„�„ÊÅ��¿’¿• ›! I£ǧ>«…¬Ϭá¬<­ª­!®C®´®ö®r¯ͯ0°g°º°±J±š±à±6²{²³B³é³´…´ ´ó´ƒµµH¶—¶À¶è¶·M·ä·Źjº”ºÜ»E¼m¼…¼>½áÌæÍóÍÎhÒeÓrÓ“ÓÐÓ"ÔJÔˆÔbÕ;ÖuÖÏÖ8×ÚÞÛhÝ æçSðHñlòaó�ôˆõ¯ú£ûŒÿ€ ) w y Æ É 3‡�»ÔwG@T Ò´î-ÄúóSO£¹×ð2°b˜‘¥ñ# j !>!}!"J"C#W#£#¹%&%&C&a&�&Î&L'�'œ(°(ü(?)’)Ù)t*Ã*Ò+æ+2,k6ñ67!7;7R7“7 7§8Ô8?9L9<C<£<°<Â<=B=«=¸=Q>\?·?Ä?Ø?ô?@(@¨@µ@Ä@AAGAjA¾AËAB½BàBACNCçCDdDqD±DÐFQHØIÇJ›L½L}MYkZ<[\Ö\˜]d^_É_r`9aXb^cjg�g4hdh�h×hþhÆi�l˜n s™s—u$vÀv w”x¹yÖzú{}6~Uz€“‚*„N…p†é‡`‰ƒŠ¤‹!�œŽÓŽ�*�Æ�ö� �±�q‘½‘’j’ˆ ¡/¡>¡T¡k¡²¡¿¡e¢¦¿§ ¨9¨‡¨Ĩ©*©Y­†­×­ä­}®ž¯œ°ɰÖ°è°±l±y±³O³ʳ׳é³=´p´ä´ñ´>µqµõµ¶œ¶b¸›¸ʸ¹'¹B¹ž¹«¹Á¹à¹þ¹º6º‘ºžº¯º%»2»C»ž»«»»»¼¼E¼�¼º¼'½4½н¾Ô¾B¿‹¿VÀÁÎÁüÁPÂ]ÂøÂ;ÃÕÃâÃöÃÄ9ÄPÄËÄØÄ)ÅŸÅVÆÁÆ÷ÆqÇ~ÇÁÇ÷ÇzȇÈ#É+ÒvÒÔÒäÒ^ÓÉÓÔâÔ*Õ£ÕöÕ~ÖÉÖ× ×7ױרdØÁØYÙÀÙÚ£ÚîÚ8ÛGÛÁÛ,ÜtÜÝkݾÝâÝ-ÞwÞ˜ÞÔÞNß¹ßà‘àøàKáoáºáâ%âaâÛâFãŽãä…äØä^å©åóåæ|æçæ/çÄç+è~èéOé˜é¹éõéoêÚê"ë±ëì{ì×ìÀí>ö�ö®öüö^÷Üú2�¢×� 6 ÷$J¾F¸UÉ ‚ |ÚRžÀI�ë9à¸q � 5!a!ñ!]"˜"ý"Â#&¨&f'(å(É)ÿ*\,z,{-™-D.d.v.±.Ã./K/}/Ì/0K0]0´0ø0*1y1©1ç1 202h2Š2±2é2 323j3Œ3³3ë3 4�4Õ4è4�5º5á5)6wžw xCxtx�yyz‡|¼|‡~倡�J‚Ú‚ü‚Oƒwƒăx„›„ö„T…y…†R†׆‡`‡µ‡2� �a�ì’ô•7–F–ü–é˜[›lŸû¡ï¦_¨‰ª`®ý±§¸v¼½™½'¾¿¾F¿á¿oÀÁŠÁ –ÂýÂlÃàÃÄMÄúÆ2ÇUÇúÇ:ÈLÈŸÈäÈ*ÉqÉÀÉÊ\Ê¡ÊêÊ;ËzË�Ë2Ì ÌûÌYÍýÍ5ÎuÎÎÎÏšÏåÏqÐÍÐ"ÑxѽÑíÑ6Ò§ÒõÒ%ÓÆÓïÓÔ˜ÔðÔ?ÕÜÕ>ÖgÖ‹Ö×h×·×PØŽØ÷ØSÙÝÙÚ„ÚàÚ½ÛrÜ*݊ݪÝðÝÞTÞtÞÀÞßRߪßàDà°àãàzáåáPâ�âµâñâãkãÑã7äiäÑä7å�åé\é�é&êRê§êðêDë˜ëîëDì™ìïìÏí(î–îÖîdïˆïÆïðSð¨ðÍðrñžñëñ<ò‘òçòCóÁóô›ô*õOõôõ ööÆö÷q÷È÷ øcø¦øù�ù,úXú¼úæúýúzûÖû3ü’üóüTý´ýþƒþÂþRÿËÿŒÐ1_cÀ`Œ¤"ƒãC¤mõ= çRÈx Ú = • õ M ô d Ä & € &Ñv[¶lÇ"}Ø3ŽéDŸÍã𜲿m�޽,PŒ²3y¿ã5uµÛf¬ò8\¹ù9 y Ÿ 3!y!¿!"K"o"×"#W#—#×#ý#~$Ä$ %.%€%À%&'&²&ø&>'„'¨'(E(…(Å(ë(Z)~)°)á)ö*S+¿+0,�,û,.Ô.4/Ü<A=áAEBT£\K_£_lbÄb¥e1hâjòlTnæèoè�è«èÉèãè«é.ë‡ë¥ë¾ë†ìSî¬îÊîãî«ïC÷{÷™÷·÷Õ÷ó÷ø+øÏøùNù~üÌüêüý&ýEýdýƒý¢ýÀýÞýýýþ:þXþvþ”þ²þÌþÿCÿçÿT4Rq‹Ø¦Ý 'C]8w‹§ÁCpµLˆÆä >]{™·Ñu®ÜöšÓ!;ßNlŠ©Çá…».Hì!v”®R‡ÜúaŠ.c¸×ñ• Ê !R!l!"E"š"Í"ç"4#]#$6$‹$©$Ã$g%œ%ñ%$&>&â&'l'Ÿ'¹'(/(Ó( )^)})—);*r*Ç*û*+¹+ð+E,y,“,à, -®-å-:.Y.s./N/¡/Ü/õ/™0Ð0%1D1^1292Ž2Â2Ü2€3·3 4@4Z4§4Ñ4u5¬56 6:6Þ67h7£7¼7`8s9¡9¾9Ø9%:N:ò:#;^;í@AJAdA±AÚA~BÒQR R:R‡R±RUSYUÊUïUV2VLV&WûXlYŠY¨YÆYàYºZ4^d^‚^œ^é^_·_ð_-`K`i`†`¤`Â`Ü`)aSa÷a0b`b~b—bäbc²cécvd’d¯dËdède!e=eYeve’e®eÊeçeff;fXftf‘f­fÊföfg/gIg–g¿gch”hÿh(i=i›iÒ†‡*‡F‡c‡�‡ž‡º‡Ö‡ô‡ˆ[ˆ„ˆ(‰Y‰”‰ô‰*ŠFŠcŠŠœŠ¹ŠÓŠ ‹I‹í‹ŒYŒŽíŽ�z‘¦‘ü—(˜a˜v˜Øð˜™©™a¢™¢·¢Õ¢ó¢£0£J£—£Á£e¤�¤̤é¤"¥7¥„¥±¥Æ¥j¦¤¦ë¦ §'§A§÷§6¨f¨„¨ž¨ë¨©¹©ò©"ªAª[ª¨ªÒªv«¯«ß«ü«¬b¬Œ¬0­߯ °%°r°›°?±u±,²h²„²£²ß²û²³V³r³�³«³Ƴâ³þ³´5´Q´m´‰´¸´ä´þ´Kµtµ¶M¶{¶—¶¯¶ü¶+·q·Ž·ù·¸0¸æ¸$¹T¹r¹Œ¹Ù¹º>ºbº©ºȺ6»P»¼E¼u¼’¼˼à¼-½Z½r½¢½½½ؽò½?¾h¾ ¿B¿r¿�¿©¿ÿÀ9ÀÝÀÁIÁhÁ˜Á³ÁÎÁèÁ5Â^ÂÃ6ÃdÃ~×ðÃýÃ&ÄÊÄûÄ6ÅRŽſÅûÅYÆ�Æ¿ÆÚÆöÆÇ]džÇ*È[Ȗȶç è)èCè�èÀè é(éFédé‚é é¾éÜéøéê0êLêjêˆê¦ê¿êúê%ðYñ¯ñôSônôÖôõ+õ}÷þ÷{ønùXú‚üýýýuÌ#9غæ”Öð=gÒü o | ë  R |  R ½ ç ü Zò–°ý'Ëýh’§xÆVk¸åúe�îBTiÇ]|Ãyñ;U¢Ëo Û�#¾#í#$T$}$!%Ä2ò23(3u3ž3B46t6™6¾6Ü6ö6Ð7>9¯9Í9ë9 :#:ý:Ã=õ=>1>K>˜>Â>f?Ÿ?Ï?í?@T@~@"A[AŽA¬AÉAâA/BYBýB6C�C½CÚCøCD4DND›DÅDiEžEÔEðE F*FFFbF|FÉF÷F#G=GŠG¸GæGHHiH™HÉHçHINIxIJUJ…J£J¼J K3K×KLBL`LvLŽL§LôLMÂMûM+NANYNrN¿NéN�O¿O*PNPbPwPÕPQ~QºQ×QöQ2RORnRªRÇRSSbS�S¤SHTzTåTU$U‚Ué[>\\\•\ª\÷\"]7]¢]Ë]à]>^o^Ï^___•_ë_&`B```›`·`ï`aQa|a‘aüa%b:b˜bÉb)cZc¹chjhˆh�hÐhåh2iTijiøj=kbk{k1lFm�m­mÊmèmn¸nºopp=pVp qMq“q±qËq�rÓr(sGsas®sØs|t´tâtu0u}uªu¿ucv•vÐvìvWw�w–wôw,x�x x¶xéxþxKyny…yšyÕyñy\z€z”z©z{A{†{«{Ä{z|º|ÿ|}6}ì}´ŒäŒ��7�„�P�•�´� �l�œ�T‘³q³�³ª³÷³!´Å´÷´2µUµе©µȵæµÿµ£¶Õ¶·˸ù¸¹`¹й.ºgº¿ºݺûº»7»T»r»�»®»Ì»ê»¼"¼o¼™¼=½¸¾ü¾e¿Ä¿ô¿¬ÀºÁÂ(ÂFÂeÂÄÂzÃÑÄ"Å>ÅvŋŨůÆ`Æ|Æ´ÆÚÆ9ÇjÇ’ÇJÈ�ÈÉ/ÉWÉÉÉÊqÊ´ÊÐÊïÊ1ËMË…Ë­ËÌ?ÌgÌÍVÍÕÍÎ,ΞÎêé,êHêbêÁêðê¦ë÷ítîžî±îËîï·ïcñàñ òò7òƒòó3õ°õÚõíõöSöëö8ÿÐú~¨½®ØíÍ÷ ºäù˜Â×Ún˜­1[pÅï / [ p ‰ µ Ê Y ƒ ˜ e � ¤ —ÁÖÂìÅïì+^sÀë¤Õ@i~Ü4°èýJuŠÅáLuŠè´âüIsS � › è !¶!/$‚$¡$º$%1%Õ%&E&T&’&î&_'»'ä'T(q(„(ž(Ù(p)¨)**k*“*7+j+¿+Ý+ò+,S,{,-R-¥-Ã-Ü-).Q.õ.)/‚/ /¹/Ò/0H0ì0!1€1ž1·1Ð1é162_2363‹3à3-4U4ù4+5r5¥5×5ð5=6e6 7§BêBiC–C¯CüC%DÉDEÏE F&FDFF›F¹FôFG.GiG…G£GÞGúGHSHoH�HÈHäHþHKIuIJ¶M N'N`NuNÂNíNOmO–OõOHPZPoPÍPþP^Q�QîQ[_®_Ì_``f`‘`¦`Ja{a¶aÒa=bfbÅbc*c?c�cÎc.d_d¾df-fFf“f¼f`g‘güg%h:h˜hÎhúhiaiŠi.jnqnŽnÇnÜn)oVoko¦oÂo-pWp¶p qq1q�qÁq!rSr²rVu«uÈuvvcv�v¥vàvüvgw‘wðwDxVxkxÉxûx�yìyzvz¤zÐzþzv{X|³|)}ª}-~°~e €-€¹€Ü€E�p�©�Ð�{‚µ‚ó‚ ƒhƒ£ƒ؃-„�„¿„ׄ4…ˆ…½…†L†�†·†ä†"‡J‡w‡µ‡݇ ˆHˆpˆ�ˆÛˆ‰^‰¦‰½‰hŠ¡ŠÞŠ‹3‹�‹°‹û‹4Œ_Œ±ŒÉŒ�¾�Ž2ŽLŽ™ŽÃŽg�™��.�C�¡�Ø�-‘N‘h‘µ‘ß‘ƒ’¿’““=“W“š“Ú“”N”唕s•¡•Í•û•s–U—®—&˜§˜*™­™bš›*›¶›Ù›Bœmœ¦œÍœx�²�ð�žež žÕž*Ÿ~Ÿ¼ŸÔŸ1 … º ¡I¡Œ¡´¡á¡¢G¢t¢²¢Ú¢£E£m£š£Ø£¤[¤£¤º¤e¥ž¥Û¥¦0¦~¦­¦ð¦)§T§¦§¾§ ¨³¨©'©A©Ž©¸©\ªŽªùª#«8«–«Í«"¬C¬]¬ª¬Ô¬x­´­ö­®2®L®‡®Ç®õ®3¯ʯOÀ}À™À³ÀÁ)ÁÍÁÂ.ÂCÂW¤ÂÑÂJÃuÊàÃËÃàÃöÃ!Ä6ÄLÄwČĢÄÍÄâÄøÄ#Å8ÅkÅ€ÅÍÅøÅ Æ±ÆâÆMÇvÇ‹ÇéÇbˢ˼ËÖËðË Ì%Ì?ÌYÌsÌ�̨ÌßÌôÌAÍlÍ�Í%γÐÑ!ÑuÑŠÑæÑÒeÒtÒ Ó°ÖÜÖöÖš×4Ú‰Ú§ÚÁÚeÛ›Û%ÜAÜ^ÜzܗܳÜÐÜìÜÝ#Ý?ÝZÝvÝ’Ý­ÝÉÝåÝÞÞ;ÞWÞsÞ�Þ¬ÞÈÞâÞ†ßÇßàkà‰à£àðàá„á­á â_âqâ†âäâãuã¦ãä:ä�ä­äÇäå=åáåækæ‰æ£æðæçLçhç‚çÏçÁüý#ý?ý[ýsýÒýÓ8ˆÀÕ"OdÏùX¬¾Ó1šÊè 5 ‚ ¯ Ä h š  / Ž â ô  g €°Îi–«O�ìuÉÛðN?o�§ôÂô_‰žü•ÅãüIsŠÎt Ó !»!m3¤4Ï4ƒ5­5Œ6Æ6á67/7|7©7¾7b8”8ÿ8)9>9œ9QjQ”QÍQâQ/R\RqR¬RÈRlSžS T3THT¦T¶UäU¿abKbeb²bÜb€c²cdGd\dºd¿epfÜf5gâh�iAkŸkñop6pƒp­pQqƒqîqr-r‹rÁrîr s#sps™s=trt¢t½tÙtót@unu!vKvevwfà •Ç È ®Í ±Ö ]Þ œå ;æ ç è £é ùé ê «ê Ëë Aí Ÿð Pñ >ó Hõ wõ Ôõ (ö „ö M÷ Ç÷ ‡ø ù iù Áù 0ú dú Gý  È I ï N = ® E ‚ ! ¹ µ )! W( . E0 ú1 2 æ> RH ÎN ó_ Ál Æm ûm ån p cp Ép vq Üq Nr s ks Ñs Dt ¤t u Âu ñu £v [w ™w Ïw x Ax Kz ¹} ý~ a ¼ â !€ =€ Y€ u€ ‘€ Ѐ '� ~� ×� 1‚ ’‚ ¯‚ aƒ †ƒ ˃ çƒ „ „ ;„ W„ Ž„ É„ … U… ž… í… 6† \† ‡ 3‡ l‡ ˆ‡ ¤‡ Û‡ ˆ [ˆ ¤ˆ òˆ ;‰ i‰ Š @Š pŠ ­Š ÿŠ L‹ ‘‹ ï‹ 4Œ æŒ � :� ˆ� ¤� ö� <Ž ƒŽ ÊŽ � Y� ¢� Ö� †� ¨� Z‘ Ã’ “ |“ :” q” û” d• – ¦– — E— œ— ý— ˜˜ ™ d™ ¿™ Qš ý¶ · "· ÿ¹ `¼ x¾ SÀ ïÅ É HÊ Ð Ô ‘× $Ø �Ø âØ 7Ù �Ü œÜ Yï ¿ï ð ’ ø G æ T  … O( ‚( 94 7G mM õV ‘^ Õb >c ûd de ½p Bu wu øv Mz ¿| À~ ¤ e‚ ¾‚ j„ ü„ … 5… F… ™… Î… ú… ’† K‡ ¿‡ 7ˆ «ˆ .‰ ±‰ qŠ 5‹ ‹ }Œ äŒ K� °� Ž yŽ ØŽ 7� œ� � |� ‘ �‘ ’ }’ È’ A“ ½“ D” ¸” *• “• ü• f– è– j— Þ— $˜ ;˜ L˜ �˜ ,™ ‡™ £™ oš Þ© x´ ËÀ \Ç D× ”ã Oó áý ¹ å"W#M$Â$C%Y&¾'!(ß){*+…,$.22º2Œ3ó3U4}45í5û6;¶;æ<v>™>C?˜@EBCxC®CÅC;D‚DÆDEWE~E%F@FïFGUG™GÜG H±HÌH{I�IÛIJ;JNJýJ2K¼K×KòK L(LCL]L•LÛL/M„MÚM2NŠNâN:OpPÛQCSlU!W�WµWX3XFXõX ]8_šbNe«f¾j9k±oÉtØzÂ{Žg€÷€;‚ƒ¬„ð„4…†…ñ…†“‡zŠ‹¸‹ìŒ¹�rŽ@�:�V�ì�À‘ ’陲š¡›+�P�“�€Ÿ¿ Ê¢1£ ¤ñ¤ç¦C§1¨�©ªýªp«N¬<­O®Ï®+¯.°®° ±ë±J²?½ À˜ÁµÂûÂJÃ–ÃÆÃmĈÄ7ÅmÅ€Å/ÆRƗƶÆñÆÇ)ÇØÇûÇ@È\È™ÈÈÈÛÈŠÉ­ÉòÉÊTÊÌ~ÌÙÌòÍlÎÇÎhÐ…ÑèÑ=Ò•ÒúÒeÓÆÓ&Ô�ÔÕ·ÕXÖºÖ×r×Ô×HجØÙ~ÙÚ¥ÚÛaÛ¶ÛܼÜ݆áPâ©âãæüóŠ÷YúÁúÓËÞ « ¨m'ª0;1'4¯9UANHNÜNËSðV@]ka"eýedrÉu¤y�‹h‹ª‘ë’Þœ0¡L¡¦¡ÿ¡¢¤¢£t£Ø£/¤ˆ¤á¤¶¥¦x¦Ù¦¤§á§’¨Mª”ªܪ-«’«Í«1¬^¬š¬­º­®I®š®ÿ®:¯ž¯˯°­°ô°1±‚±ű²§²î²6³‡³ò³5´V´&µs¸¹+¹ºg¿ƒÄóÇeÑ^áèé²îöÂþ“!} �Z†•k“‡n˜r3ó´ °!Œ"w#Q$r$À$ %�%ø%ã&½'¥(˜)ò)O*±*Ò*q+‹-¡01h1¦7Ô?G@–@ÕDH“IJJÄJaKøKPL«LM]M„N™Ÿ™ù™ÚšË›ºœ¾�Éž;Ÿ¢Ü¢E£¥£½£€¤m¥l¦r§£§ç§E¨ ¨÷¨v©Õ©ü©¼ª%«<¬^¬!­® ¯}¯—¯Û¯9°”°ë°±à±²s²Ó²ê³E´œ´´.µ'¶”¶ö¶·R·Ÿ·÷·i¸ĸ¹B¹йº}º˜»÷»¼¡¼¡½¾ß¾F¿À ÁsÁLÂTÃÄÃÖÃÄlÄÆÄ=Å�ÅöÅÆeÆ߯ÈzÈÓÈ,ÉSÉäÉÑÊ¥ËzÌNÍ%ÎÏ{Ï—ÏÝÏAЧÐÂÑåÑNÒ=ÓpÓ¶ÓÔ`Ô×Ô7Õ�Õ·ÕÖdÖ�×ì×EØžØÅØ1ÙÚvÚåüý‡ýQ‘ L S p ¿ >Þ¸�*í$c†ÄÒ*! #¨('+“,–.3Ó7u8ä8@@©G0H¿KO°R´W X~`ÛfJg™gèg7hi‘iõiéjýk%m­müm@n’nýn7o{oÍo8pJpGrXuôuÓvw3wƒwãwcxJy¶yz[zH|�|ó|}Ú}zU†¡‰ú‰„�éŽ��’é••™W›Ë¡>¤ÅÃ�Æ�È­Ë ÌmÌåÐýÙÛ\ÝvÞ?à]áòâäæ]ænéêÿüuœ ø­ †%.&Ù&¤'0( )É)[*²* +o+—+Ú+î+¿,î-.œ.3 6:¤> @\C�CjDÖD%EˆEûE¯F7GšGH�H}IJ€JK‹KûK}LèLeMÜM?NÊNAO½O P‹PøPQQ°QRxRÛR8S¨STuTÎT�UñUVV±VW#WcW´WÝW¥XY…YîYaZÎZ<[¼[&\‹\ö\Z]…]Ü]{^m_Î_$`g`¬`ð`2avaºab3bÚbõb¤cûdBe{eÜeAf©f gzg�gLh{hÈhêhIi¡iKj°j kckŽk@lsl©lEmhmn:oOo_o§oüobpÔpAqtq¼qrwrŸr´rs€s,wÙy|d~‘€”ƒ-‡¬ŠˆŽ“(–�œüœ¼¢§Àªɰ¸hDZ̫ÒÇÛ¨ßè�îoñ•ñGòlòÅò*ó†óôzôÞôDõºõö÷~÷­÷_ø„øiýÃý/þTþÿhÿÍÿõÿÁ+~àüŒöI«~ì= Œ ž Ñ > e Ç Ž²d¡×'FÆ0%‘Cœû¯} V!-"Ø"ù#×$ù$ü&â(¦+’-‡/ª3Î5–7 9Î<½@SAÄAÞAÌFDJöLSOúROS&Z^_Í_`avaÚa¦fÙfÚgæhjlk±lnPoŸpìp0q‚qíq'rkr½r(s:sët{wx}x³xyyãy?zez±z{x{Ý{9|«|}–~¬~½~`‘€!�‚�‚b‚Ï‚Yƒæƒu„æ„ …e…C†Ά;‡W‡¸‡ã‡Xˆˈ0‰L‰á‰DЩЋn‹¸‹Œ_ŒÜŒøŒª�Ï��ŽãŽ �½��© `£—¥y¦µ§Ù¨Ö©6ªɪÁ«Û«Ь¬¬‚­—­E®ë®¦¯°—°8±²ä²þ³[¶è·ɸkÁ/ÇØÇþÇAÈVÈÉ;ÉqÉÊ6ÊlʼÊìÊ"ËrË¢ËØË(Ì_Ì¢ÌËÌÍeÍâÍFÎbνÎÕÎ&Ï‹ÏïÏSоÐ^ÑùÑSÒÓ¤Ó"Ô?ÔñÔ$ÕZÕ©ÕÙÕÖ§Ö×ùÞLåvéüíòð|õ�ø5/³ Aüû!ˆ%ÿ%t&b*ô-k.à.Š5±5ÿ5:9:‡:ž;óCöIRìST¹TôT2UPUwU1VqVWEW_WW9XrX¾XSY³YýY-ZUZoZÏn\oºqÌq y z²€a„ÄÖŠØ�A�Ò’Ò•³›4 \£Ú§Q«˜¬׬é¬O­ñ­v®Ç®)¯…¯à¯C°š°°±X±¨±î±I²ƒ²-³J³ü³'´“´µ´µ–µõµ[¶¥¶Õ¶ý¶%·[·÷·͹|º¢ºñ»U¼{¼š¼P½±ÍGÎ0ÓÆÓåÓ0ÔRÔ–ÔnÕGÖ¨Ö×@×ÚìÛzÝÞæ%ñ>ócõ€û]ý M œ `«É…$b³ÿÇ×Òf|Çå¾up³ P !k!'""#e#¶#æ%3&Q&o&¼&Z'{(¾()r)¿)‡*±+ô+E,¡67)7I7ˆ7·8490<‰<Ð<'=˜=c>’?æ?@@ @ú@WA°A*BÏB.CùCQDÃDØFaHèI×J«LÅL‹MJN_OîOgP Q RüRDT2UVWëW´XLYyZO[\é\¦]w^_Ü_€`Lakbqcxg•gGhlh›hêhiÔi£l«n s¬sªu7vÓv@w§xÌyéz |,}I~h�€¦‚=„a…ƒ†ü‡s‰–Š·‹4�¯ŽÛŽ�2�Ô�þ��Ä�y‘Ê‘+’r’¾ ¡F¡b¡¡¡s¢¦ͧ¨l¨º¨©k­Ä­�®K°¬°ö°[±,³ª³÷³O´Ë´Pµܵ®¶j¸£¸Ò¸ ¹/¹z¹Ϲî¹ º+º‰º»–»ó»S¼�¼ ½ã½:¾ç¾U¿¾¿iÀ%ÁáÁ= éÃÄ)ÄGİÄ<ŲÅiÆÔÆWÇÔÇ`È6É3Ò¼ÒìÒpÓÛÓDÔôÔ]ÕµÕÖ†ÖúÖ.×?×Ã×.Ø—ØôØkÙÒÙ%Ú«ÚÛOÛÓÛ>ܧÜÝ}ÝÐÝêÝ^ÞËÞÜÞ`ßËß4à£à á]áwáëáXâiâíâXãÁã0ä—äêäfåÚå æŽæùæbçÖç=è�è é€éìéýé�êìêUëÃë5ì�ìéìÈíoöáö/÷l÷îúcÕ"é¡ H  ]ÑYË'‡•�í †ówèÆ ˜ G!i!ÿ!k"¦" #Ð##&¶&z'1(ù(Ý)+j,‚,‰-¡-V.l.•.Ñ.,/j/Þ//0k0Æ01‹1±1õ12>2v2’2¿2÷23@3x3”3Á3ù34¯4Ý4ð4Ÿ5Â5ï5;6Ïw+xlx—y‡z™|ï|™~ó€¯�\‚삃aƒ…ƒÖƒŠ„©„…f…�…0†Z†å†$‡r‡LJ>�K�ø’–N– —÷˜i›zŸ ¢ý¦m¨—ªn® ²µ¸„¼½«½9¾ѾX¿ó¿�ÀÁœÁ¨ÂÃÃóÃÄ[ÄÇ@Ç]Ç ÈBÈTÈ­ÈòÈ8ÉÉÎÉÊjÊ¯ÊøÊI˂˕ËD̬ÌÍeÍ Î�ÎíΧÏÐ~ÐÚÐ/ѦÑõÑCÒÕÒ-ÓÓÓ÷ÓFÔ¥ÔÕéÕKÖoÖ¾Ö×–×]ØÁØ*Ù†ÙêÙNÚ·ÚÛÊÛÜ7ݗݲÝýÝÞaÞ|ÞåÞZß²ß àwà¸à�áøácâ•â½âùâ ã~ãäãJäqäääJå°å éné‰é8êZêµêëVëªëìVì«ìíáízîèîvï�ïÔïðeðºðÕð„ñ¦ñùñNò£òùò¤óô­ô<õWõö(ö‘öÔö*÷«÷Fø¸ø!ù¯ù>úmúÌúôúûŒûèûFü¥üýgýÇý+þ–þõþ§ÿhãDt.–Õpš¹5–öV·Ð{úeÛ‹ ç J ¢  Z  — ÷ Y ³ 3ÞK©"ŽéDŸúU° fÁwÒ°P:XšA‡ÍëCƒÃtºFdÇ G ‡ A!‡!Í!"Y"w"å"%#e#¥#å#Œ$Ò$%6%Ž%Î%&À&'L'’'°'(S(“(Ó(h)�)ï)+_+Ë+<,œ,-./="BT±\_ b¸eDhõjmgnOq¨sHvxÂyézE}�€Ç€��æ�F‚m‚ø‚žƒ…„ž…l†�†B‡h‡™‡ì‡ˆpˆ•ˆĈ‰8‰‰�‰ä‰ŠnДЋ%‹º‹æŒ‚ŽÑ�ë�Z“«–˜ߘ¶™”š›.œÏœ�9 Õ …¡ã£ ¥¿¥Ò¨r©6«†¬¸¬á¬“­Û­®l®Ì®¯t¯–¯*²]´y´à´ü´ ¶®¶[¸‰¹´º¼8¼L¼þ¼±½ú½S¾»¾¿d¿~¿Ö¿/À�ÀâÀ6Á�ÁîÁJÂØÂ-ÃHÃ÷Ã'ÄZÄ©ÄÅKÅZÅoÅ…Å”ÅÝÅ/ÆnÆÀÆÇ°ÈçÈÉÉ:ÉNɦÉÃÉrÊ—ÊØÊuÒ¨ÒÖÒêÒBÓ_ÓÔFÔ‘Ô¯ÔÌÔêÔÕ$Õ?Õ\ÕyÕšÕQÖz÷¿÷Ü÷ù÷ø3øPømø‰ø¥øÁøÔø-ù^ùœùHúiúû$þZþwþŠþãþÿ°ÿÙÿ3O�–ï#š·Ì6_¹Õu”­#UjÃâûUq£¸0J}‘B@ s ‡ á þ ¯ Ù b Ÿ º ×  . J g ‚ Ÿ º × ó +H\¶Ó„¬àüÀé.ÞÆ <Ws�«¾ 4 ä í$7%U%s%‘%¯%Í%ì% &(&E&b&€&”&î& '¼'ç'(:(M(§(Ä(u)¼)**M*+[+ +¾+ì+§,Þ,9-e-‚- -¾-Ü-.5.I.£.À.q/¦2î2 3+3I3h3†3¥3Ã3â34 444Ž4«4\5�5Â5NB„B·BËB%CBCóCZH–H´HÑHîH IIwI”IEJjJâJÿJKKçNO-O†O£OSP|PíP+QEQaQ}Q˜Q³QÏQíQ+RERYR²RÏRS£WeX¶XJY�Y"ZvZŠZãZ[°[®_ `%`8`‘`®`^a „e„�„³„È„!…@…U…†*†k†�†ø†‡°‡ê‡ÿ‡iˆŽˆúˆ‰Љ³‰å‰ø‰QŠnŠ‹C‹º‹׋ì‹VŒk•Ÿ•»•Ï•–b™°™Õ™ú™sš9›Ì�ž ž4žåž ŸdŸ2§f§z§Ô§ñ§¢¨ ®>®R®«®È®x¯¢¯ñ¯ °)°H°†° °´° ±*±Ú±²`²�²¶²Ô²³*³>³î³´r´Ž´¡´Qµ{µ­µÀµp¶ÝCÝ_ÝsÝ#ÞMÞ�Þ�Þ±Þaß‹ßèßààsà�àAámá¥áÃáááõáOâlâãhä¯äÍä(å”åSæ4è}è›è¹è×èéÀéPë•ë³ëàë›ìuîºîØîïÀïK÷‰÷§÷Å÷ã÷øø3øäø ùcù†üÚüøüý4ýSýrý‘ý°ýÎýìý þ*þHþfþ„þ¢þÀþÔþ.ÿKÿüÿ!b B`“í »å5QeW™µðW `�Ôò.Lk‰§ÅÙŠ¶êþ¯Û/Cô \z˜·ÕéšÃ <P)†¢¶f�ìu’BkÈåù© Ò /!`!t!$"M"ª"Û"ï"H#e#$>$›$·$Ë${%¤%&2&F&ö&'|'­'Á'(7(ç()n)‹)Ÿ)P*z*×* ++Î+ø+U,‡,›,õ,-Ã-í-J.g.{.,/V/±/ê/ý/®0Ø051R1f12A2ž2Ð2ä2•3¿34N4b4¼4Ù4Š5´56.6B6ó67x7±7Ä7u8{9¯9Ì9à99:V:;+;l;õ@)AXAlAÅAâA’BÚQR.RBRœR¹RjSˆUØUýU"V@V{V;W*YzY˜Y¶YÔYZÏZ<^r^�^¤^þ^_Ì_ø_;`Y`w`”`²`Ð`ä`>a[a b8bnbŒbŸbùbcÇcñc„d d½dÙdöde/eKege„e e¼eØeõef-fIfff‚fŸf»fØfg!g=gQgªgÇgwhœhi0iEi¯iÚ†‡8‡T‡q‡�‡¬‡ȇ䇈ˆoˆŒˆ<‰a‰¢‰ü‰8ŠTŠqŠ�ŠªŠÇŠÛŠ4‹Q‹Œ&ŒgŒŽûŽ%�ˆ‘´‘ ˜6˜i˜~˜ؘø˜ ™¾™i¢§¢Å¢ã¢££>£R£¬£É£z¤¥¤Ú¤÷¤*¥?¥™¥¹¥Î¥¦¹¦ù¦§5§V§ ¨>¨t¨’¨¦¨©©Ωú©0ªOªcª½ªÚª‹«·«í« ¬¬w¬”¬E­ç¯°-°†°£°S±}±:²x²’²±²ï² ³(³f³€³�³¹³Ô³ð³ ´'´C´_´{´—´Æ´ò´µ_µ|µ,¶U¶‰¶¥¶·¶·@··œ·¸$¸E¸ú¸,¹b¹€¹”¹î¹ ºLºwº·ºÖºD»e»¼M¼ƒ¼ ¼Ó¼è¼B½b½z½°½˽æ½ú½S¾p¾ ¿J¿€¿›¿·¿Ë¿$ÀAÀñÀÁWÁpÁ¦ÁÁÁÜÁðÁIÂfÂÃ>ÃrÌåøÃÄ.ÄÞÄÅDÅZÅÑÅîÅÆmÆ—ÆÍÆèÆÇÇqÇŽÇ>ÈcȤȾçè7èKè¤èÈèé6éTéré�é®éÌéêéê"ê>êZêxê–ê´êÇêë-ðgñ½ñ'ôcô|ôäô õ9õ‹÷ ø‰ø|ùfú�ü ý þƒÚ1GæÈô¢äøRoç  „ „ ù  g „ 5 Z Ò ï oú¤¸/à}š¯†Ô+^sÍíz—"\qÜ-kŠØŽù-I]¶Óƒ¨é˜#Ì#û#$h$…$5%Ì23303‰3¦3V426‚6§6Ì6ê6%7å7m9½9Û9ù9:R:;Ë=>!>?>S>­>Ê>{?§?Ý?û?@i@†@7AcAœAºA×AêADBaBC>C�CÍCèCD$DBDVD°DÍD~E¦EâEþEF8FTFpF„FÝFÿF1GEGžGÀGôGH$H}H¡H×HõH IcI€I1J]J“J±JÄJK;KìKLPLnL~LœL¯L M&M×MN9NINgNzNÔNñN¢OÇO?PVPjPPêPQŒQÊQåQRBR]R|RºRÕRSSwS—S¬S]T‚TúTU,U—Uñ[N\j\�\²\ ]*]?]¶]Ó]è]R^w^ã^_s_�_ù_6`P`n`«`Å`÷` aea„a™ab-bBb¬bÑb=cbcÍchzh–h¥hØhíhFi\iri kKkpk�kFl[m�m»mØmömnÍnÏop-pKpkp!qbq¡q¿qàq–rÛr8sUsisÃsàs‘t¼tðt#u8u’u²uÇuxv�vÞvôvlw‰wžw x4x‘x®x¾xñxy`yvy�y¢yãyùyqzˆzœz±z{V{”{¹{Ù{�|Ï| }+}K}~¼ŒòŒ�+�?�˜�e�£�Â�"���±�i‘$³�³ž³²³ ´)´Ú´ÿ´@µ]µ˜µ·µÖµôµ¶¸¶ݶ·Ó¸¹¹u¹’¹Cºoºͺëº »'»E»b»€»ž»¼»Ú»ø»¼*¼„¼¡¼R½; ¿z¿Ù¿ ÀÁÀÏÁÂ6ÂTÂsÂÙÂ�ÃÙÄ2ÅLÅ~Å“ÅìÅ Æ3ÆnÆŠÆÉÆïÆMÇǧÇ^È–ÈÉDÉlÉÝÉÊÊÄÊÞÊýÊAË[ËšËÂË"ÌTÌ|Ì3ÍkÍéÍÎAβÎÿé:êVêwêÕêëºë$î„î¿îïÌï�ñðñ+òlò0ó`õÀõûõ<ö÷@ÿÞŒ¶Å¼æõÛÈò¦Ðßè#|¦µ?ixÓý = i x — à Ò g ‘   s � ¬ ¥ÏÞÐú Óý ú$3f{Ôó¸ÝTq†ð<¾ð^}’Óé`}’ü¼ð^{,[ � £ ý !Ë!7$’$¯$Â$%9%ê%&M&q&Å&ö&’'Ã'(d(’(Æ(…)°)*&*~*›*J+r+Ï+ë+ú+,f,ƒ,2-Z-µ-Ñ-ä-<.Y./1/’/®/Ç/Ú/30P01)1�1¬1Å1Þ1ñ1J2g23>3™3è3@4]4 535€5³5å5ø5P6m67¯BøBwC¤C·CD-DÝDEÝEF4FRF�F©FÇFGGo^oso´oÊoBp_pêp$q9q¤qÉq6rÇr^u»uÖu vvxv˜v­vîvw|w™w$x^xsxÞxypy•yz&z„z²zÞz {„{h|Á|@}Á}D~Ç~z€5€Ç€ä€Z�x�·�Ø��‚ׂƒ}ƒŃB„£„å„I…ª…'†T†�†¿†ò†0‡R‡…‡Ç凈Vˆxˆ«ˆéˆ ‰s‰®‰ʼn}Š©ŠìŠ‹A‹–‹ð‹BŒ—Œ׌-�Æ�#Ž@ŽTŽ®ŽËŽ|�¡��6�K�¶�à�=‘\‘p‘ʑ瑘’á’)“K“‡“ï“9”ú”#•�•¯•Û• –�–e—¼—=˜¾˜A™Ä™wš›2›Ä›á›Wœuœ´œÕœ��Ô�žzžž?Ÿ ŸâŸF § $¡Q¡š¡¼¡ï¡-¢O¢‚¢À¢â¢£S£u£¨£æ£¤p¤«¤¤z¥¦¥é¥ ¦>¦“¦å¦7§Œ§̧"¨»¨©5©I©£©À©qª–ª«+«@«««Õ«2¬Q¬e¬¿¬ܬ�­Ö­®@®t®Ü®¯߯WÀ‹À§À»ÀÁ1ÁáÁ Â<ÂKÂ_¸ÂÙÂXÃÒîÃÙÃèÃÄ/Ä>ÄZąĔİÄÛÄêÄÅ1Å@ÅsňÅáÅÆÆÅÆêÆaÇ~Ç“ÇýÇj˰ËÊËäËþËÌ3ÌMÌgÌ�̶̛ÌçÌüÌUÍt͉Í9ÎòЃђÑôÑPÒ Ó¸ÖêÖþÖ®×<Ú™ÚµÚÉÚyÛ£Û3ÜOÜl܈ܥÜÁÜÞÜúÜÝ1ÝMÝh݄ݠݻÝ×ÝóÝÞ,ÞIÞeÞ�ÞžÞºÞÖÞêÞšßúßà{à—à«àá!á˜áµá?âyâŽâøâã‰ã®ãäBäŸä»äÏä(åEåõåæ{æ—æ«æç&çZçvçŠçãçÖüý1ýMýiýˆýæýÛF–ÈÝ7WläŒÆÛF¢Øö( = — · Ì } ¢  7  ü  | ˆ¾Ü$~ž³d‰©ãøcG}›¯ &×üt‘¦�Óñ^{,ŸÜ‰ è !Ð!u3²4Ý4‘5»5š6Ö6ï6"777‘7±7Æ7w8œ8919F9±9 QxQ¢QÕQêQDRdRyRºRÐR�S¦ST;TPT»TÄUòUÇa&bYbmbÇbäb•cºc2dOdddÏdÇe~fêfCgðhžiOk­kÿo*p>p˜pµpfq‹qr r5r rÉrürs+s„s¡sQtzt°tËtçtûtTuƒu1vYvzv/wÈ •Í šÖ FÞ ƒå æ äæ ÷ç zé Íé ˜ê ’ë Õì sð #ñ ó õ ³õ ö Zö ¸ö ø Óø >ù ÿù ý Ñÿ ² 6 Ü ; * „  G í … Œ ! .( î- 0 Ñ1 h> çG RN 3_ l m %n 0o Ÿp öp ­q r šr >s ¢s t zt Ñt Fu v Ûv òw z |} Ò~ + � ´€ � T� «� ‚ f‚ Þ‚ y„ ³„ ÷„ =… ƒ… Õ… † ‹† Ƈ ˆ Cˆ ‰ˆ Úˆ ‰ ˜‰ “Š åŠ 6‹ y‹ ¿‹ cŒ \� Þ� $Ž lŽ ³Ž úŽ B� ‰� � ×� ˜’ ñ’ K“ ½“ �” ¡• Y– o— З æ˜ :™ �™ ü™ Ö¹ ¼ c¾ >À ÚÅ ôÈ Ê ÚÏ ×Ó \× ï× ZØ ¸Ø Ù WÜ ©î â $ S �' ö3 ôF *M ´V A^ %b Kd }p ÿt Ìv z ’| “~ w :‚ ?„ Ñ„ n… g† ׆ ‹‡ wˆ úˆ ê‰ ÕŠ ”‹ ý‹ ·Œ � ç� l� à� I� Ê� W‘ ä‘ M’ “ ‰“ ” ‰” ü” e• Ε 7– ª– ,— ¯— z˜ ¶˜ [™ Zš é ]´ ²À CÇ +× yã 6ó Çý  Ê"+#Ò#˜$%/&’'µ)P*ò*Y,ø-¢1j2û2Ä35±5›6Ö:‡;·<G>.?l@Ç@–B@CjD­DüDBE«EmF=G‚GÄG7HùHÆIÿI{J~LÂLMXM­MN]NµN OEP°QSAUöVrWÛWsX_Ob9e€f‚jEo[t zÞ~˂߂�„W…g‡=ŠèŠ‚‹¶Œƒ�7Ž��×�„‘@’·™ƒšr›üœ~�מ¾Ÿ`£G¤u§}¨Aª¤«’¬�­`¯?±9²â¿mÁ;ÂàÂ/Ã~ÃóÃµÄ­ÅÆÜÆVÇ(È‚ÈÉÚÉ<ÊdË%Í�ÏPÑÒ0ÓVÔ”ÕäÕ…ÖM×Ÿ×ØçØÛÚ‘Û˜Üçå®óu÷Dúvln ø èÇ&0‰39¦@žGmMS@V\©`ad8r�uyyÖ€ãŠt‘µ’´œ¡z¡e¢Û¢=£¢£¤]¤¥ì¥N¦¯¦§]¨½©ÿª´«á¬‚­l®!¯u°T±o²Y³À³ú´6¸ä¸ü¹L¿jÄÚÇJÑCáÍé—îö§þxc vAm|Rg]DFãȈ „!b"L#&$¹&“'{(n)Æ) *\+O-A0h7_?¦DâG^IDJòJŽK†L?NÀNrOAP,R�SËZq[×[3\¨\]]]M^=_,`7aAbd¢d[e fþfdgÀg6h’hóhˆjÍkÂlÓm oæoÓpÂq²r¼s©t˜uõu\v¹v-wéw yüyízÝ{é| ~©~#€€€ç€D�¸�‚m‚^ƒO„?…K†s‡�ˆ�‰}ŠŒ_ŒÆŒ#�—�ð�LŽ=�.�‘*’R“|”l•\–à—=˜¤˜™u™Ι*š› œüœžŸI¢£p£í£À¤«¥²¦Ò§ ¨v¨/©)ªúªP«ެa­L®S¯Ưý¯j°8±6²¨²þ²´ñ´fµj¶Á¶=·t·-¸š¸u¹±¹Qº«ºÍ»N¼ñ¼/¾m¿\ÀšÁ’ÂÄ@ÄÅrÅPÆŒÆ.ÇPȨȑÉ3ÊËÜ˰̅ÍcÎPÏÈÏÐ{ÐÕÐÒ‹Ò¡ÓÚÓšÔ ÕëÕ&Ö ÖÂרóØnÙKÚOürý6w Ò ) ‘ É}@ü¿ö5ävº!ø"“(+g,j.à2¨7?8®8Ö?8GNKŽNÕQÙV¼_f]h'j6k^lcnžoruÉu#vWw´w&xšxïyIzr|É|Å}O#†u‰U�½ŽÕ�d’º•f™(›œ¡ ¤‘Ã^ÆcÈ�ËÜ˳ÐÑÙØÚ0ÝLÞà'áÃâÙã×å1æ êæü\� ß”ìk%&¯&x'(ö(�)/*ˆ*Þ*Å+•,Ä-‡.ã2©5Ò9D>Ý?-C DJE6FùF9HèHÅI=J×J¼K=L'MžMŒNOO[PÌP%Q~QðQIR¯RSySáSIT¢TþTÃU*V…VÝVNW‰W(XäXFYŸZ [~[ú[[\É\+]®]B_™_ `O`”`Ù`a_a£aùa`b"c-efeŸef=gÊg¨hiwiÐizjßj½kÓl—m�oÒo&p•pq¥qçq;rÔrNs°yË{O~|€ƒ‡?Š]Žä’ü•`œÆœ†¢â¦Šª“°ä·>LJÌ�Ò�ÛrßÜçcîDñÄñ­òôòWó¿óNô²ôõ|õA÷Ü÷?ý˜ýòýƒþ�OÎLP³“ 8 báú± fÉnšB ù ÿ!ª"Ë#©$Ó&”(Ž+}-r/•3¹5j7Ý8‘<’@AŽA]FÓItLxNReYœ^B`åeg%h2i…jØk+mxn¹oSqŽr¿t>wìwPxåxBy¸yzœzØz²{ |r|ä|ÿ~6Šå€Ø�3‚›‚#ƒ°ƒ<„­„7…ž…‡‰‡ˆŸˆúˆ�‰ ‹ê‹AŒ¥Œ'�þ�:�õ�I£€¥a¦Y§¨¾©³ª««¬m­0®i®¯Ú¯i° ±Û±¹²Ô³1¶¿·]¸ªÀ±ÆgÇ,È…È”É�ÊEËûË�ÌûÌ6Í¥ÍΨÎùÎ^ÏÃÏ%ÐñÐŒÑ)ÒÒ<Ó÷ÓnÔ|Õ5Ö4å^éäíÉðQõcøóFƯ!+%*“-%5±9ÈCÈIçQ¶S6TÞT­U[VþVµWáX†YåYûm¥qay4€ýƒPЧ�¡’§•…›  1£¯§&«m¬!­‡­›®Z¯²¯°÷°>±�±Ö±²²²y³~´$µ.¶�¶…·ú¹Û»:¼Í¼±Ì6ÒÔÔÃÔšÕ1×ÓÛDÝîå5ðNòoô ú}ÿ V ¥ 1kì…BŸ8M¤=Ö“ ï!ˆ#·%@'á(*,i6å6›8ù;ð<ß=Z?;AóASBuC—DGHÏI¾J“LvM5NGO×OQPôPáQÓRT UóUWÕWžX4Y^Z![ù[»\‹]I^ù^®_e`a?bCcgÄg¾h¿iul€nßrksiuöu“vixŽy«zÏ{î| ~*O€f‚ýƒ#…E†¼‡3‰XŠy‹ôŒoŽ �¿�A�j‘¢‘’d’† ¡Y¢ö¥³§þ¬ ®›¯�°É²´µ)¶@¹9¼�¼_½_¾%¿ã¿žÀZÁ†Â8ÃÅyÅïŦƦǰÈYÒEÓ›Ó´Ô‹ÕßÕ¬Ö˜×î×+Ù¨ÙüÙÑÚ¨ÛþÛÖÜSݧÝÞ5ß‹ßcààà4á�áÂâãðãmäÁäŒåcæ¹æ–çègè2éVê¬êƒëcìÀì!öR÷Àúâ©w  à0�ŸüòSÛcÂ5,ίh Å ¹# &Ÿ&N'(Í(±)ç*R,q-+.ó.¥/�0R1Þ1_2à2a3â3…456“wxrz|~Ø€”�1‚Á‚6ƒ©ƒ„Ë„<…®…‰†‡H‡�‡��Ã’È•õ–Þ˜P›aŸð¡ã¦T¨~ªU®ò±›¸k¼î¼‚½¾¨¾/¿É¿XÀíÀsÁõÁÂÓÂBöÃFÄ(ÇŠÇ•ÈÚÈ ÉfɵÉÊRÊ—ÊÝÊ.ËÂË}ÌØÌ5Í‘Í]ÎÀÎ,ÏHзРÑ^ÑçÑÒ‹ÒÓSÓÔÔÔiÕ"Ö÷ÖL×á×ÁÙNÛܸÜrÝØÝ<Þ¡ÞDßœßôߨà_áÊá5â�âµâQã·ãä·äåƒå9é¶é êÙê-ë�ëÕë+ì�ìÔì2í î¾îï¿ïøï;ð�ðñáñ$òyòÎò$óéóJôÙô„õfö¼öÿöU÷ð÷‹øìøLùÛùWú±úbû¾ûüzüÙü:ý›ýüýiþ5ÿöÿ·ª¿U jÊ*ŠëM Ë9š& À ! { Ü 3 œ ä •ÙJé"„)oµ-m­\¢è.±ñ1 q )!o!µ!û!A"Ï"#O#�#Ï#t$º$%x%¸%ø%¨&î&4'z'ý'=(}(½(P)×)Û*6+ +,s,Ü,È.Í<ÒAøS—\._ObŠehÆjØl3n#q|svÙw•y¾z}b€ý€,‚Ì‚tƒZ„r…>†¿†½‡Aˆæˆg‰̉2ŠÄŠ ‹ÍŒVަ�“o–Ø—´˜‹™hšïšœ¤œ" ª X¡¶£Þ¤•¥¨¨G© «%¬­?®Ÿ®G¯²1´¶´òµx¶B¸r¹�ºî»{¼ã½'¾‘¾å¾:¿¿¿ÀcÀ¸À ÁcÁÂÁ ÂuÂÃuÃ}ÄÅ:ŸŠÆ]Æ›ÆöƨÈzÉïÉÃÊmÒÓ‹Ó0ÔÌÕr÷ùHùšúþ¶þ,ÿÑÿÂnùW H¥î–ó<äB½8 ³ * Ñ … ú ˆÿ¤<áZ¾ê` å$À&7'ß'y(ð(˜)�*7+ ,Ö,W-.u.ì.ž2`4×4­5FB÷BnCRHIIÀIµJAKßNYOÏOtPQR…RûR›W¶Z,[¦_ð_d`Ú`„L„ô„�…V†̆A‡,ˆ»ˆK‰«‰$ŠšŠŽ‹Œc•û•0™±šÄ�`ž6Ÿ*§¦§¨®~®ô®š¯l°à°V±û±ƒ²÷²j³´Y´Í´sµìµÝŸÝEÞÝÞƒßÎßEà¼àeá!â˜âDäÌåè9é,ëìQî9ïC÷_ø5ù~üÿwÿM¿6Ý‘7)Ûˆ®*Óo»|!lâ‡ÒH¾c®% Ê ! !E"�"#‘#6$�$÷$œ%ç%r&'b'í'c( )T)Ë)r*½*I+ð+;,Ç,>-å-0.§.N/˜/)0Ð01’192„23·34Ž45¬5÷5n67_7ð7s9 :‚:W;í@˜ABÒQnRåRVU³VøXGZ4^Ð^G_ð_a‡a0bËbBcécöf}gógçhriÒ†Bˆ¸ˆ�‰ô‰‹}‹RŒŽ�¦‘(˜ª˜9™a¢~£õ£�¤k¥ú¥£¦†§6¨Ò¨I©ò©�ª«¯«I¬À¬߯Y°ϰu±^²Õ²L³ä´2µ¨µM¶ã¶*·u¸$¹À¹7ºaº•»E¼½r½&¾œ¾B¿÷¿mÀBÁhÁÂ’Â6ÃäÃZÄ/Å¥Å0Æ�ÆDǺÇ�ȶçèwèÀèóê%ðIôõæ$ºF | 9 ° ¥ 1òä[PÜŸMÞñ‰ÿÔ�#;$±$Ä2\3Ò36]7;9Š:Ã=>ö>Ÿ?;@²@[AB�B6C³C‚DùDžE°F÷FqG¸GPH™H5I¬IUJðJgKLÛLRMûM¦NOP¬PQ°Q(R RISØSÍTYUé[4\Þ\Š]^¤^4_•_`’`8aäaobþbŽch`hi÷jÀkEmGn¹o›pLqrÓrs•s t´tduóuÉv?wËw,xwx2yÎyDzÞz@{ |¹|{}´Œk�O�R�ã�³g³Þ³U´+µUµ3¶ ·˸G¹¾¹gºV¼ͼ·¾ª¿;À¹Á ÃÑÄÅ¿ÅÆÇÙÇçÈŸÉÊ©Ê'Ëôˮ̼ÍtÎéé§ê5ëõíhîEïañÔñ©ò1õ¤õyö8ÿú¨Ø÷ä˜[ï[ µ ƒ � Áìï§4(³41¾4¿´0§S Ï F!/$y$î$e%?&ã'I(ÿ(¨)R*Ç*j+µ+:,¯,R-œ-.….)/w/0|0!1s12“2634‰4+5$6™6§BãCYDEFuFêF_GÔGIH¾H2I©I¶MN©NUOÊO¤P3QÃQ[_¥_M`Ú`¯a%bšbtcd“dfzfðfägohÎhHi¾ingnoŸop‹pfqöq‡rVu¡uJvÙvOwÅw x0yÁym{O|ª|}’}~˜~M€¯€,� � ‚Aƒ„ …ë…††‡¬‡?ˆÒˆF‰ø‰ÕŠh‹)ŒþŒ¾� Ž€Ž÷Žì�x�Ø�#‘œ‘’¾’À“t”j–L—¥—˜�˜™•™Jšýš¬›)œ�œ�>žŸ  è ƒ¡¢©¢<£Ï£C¤õ¤Ò¥e¦§ó§³¨þ¨u©ì©áªm«Í«¬‘¬­³­­®Y¯OÀçÀ]Á‹ÂÑÂuÃËÃ!ÄwÄÍÄ#Å´ÅAÆ5ÇÀÇbË(͵ͱКҰÖ*×4ÚÚõÚ›Ûßàaà×àlááá»âJãÚã:ä…äûäqåæaæ׿ç¶çÀü¸ýÓ ·-ši ø í c > €PßÔJ%?ÛRGÓ•0§‰¹ J!m3Ï4­5¼6c7ò7ç8s9Q”QR¥RüRñS}TäU¿a b™bcd‘d¿ejpápÖqbrÁrWsÍsrt'umuvªvÈ •Í šÖ FÞ ƒå æ äæ ÷ç zé Íé ˜ê ’ë Öì sð #ñ ó õ ´õ ö [ö ¹ö ø Ôø ?ù ú ý Òÿ ² 6 Ü ; * „  G í … Œ ! .( î- 0 Ñ1 j> éG TN 3_ l m %n 0o Ÿp öp ­q r šr >s ¢s t zt Ñt Gu v Ûv ów z |} Ò~ + � ´€ � T� «� ‚ f‚ Þ‚ y„ ³„ ÷„ =… ƒ… Õ… † ‹† Ƈ ˆ Cˆ ‰ˆ Úˆ ‰ ˜‰ “Š åŠ 6‹ y‹ ¿‹ cŒ \� Þ� $Ž lŽ ³Ž úŽ B� ‰� � ×� ™’ ò’ L“ ¿“ ž” ¢• Z– o— З æ˜ :™ �™ ý™ Ö¹ ¼ c¾ >À ÚÅ ôÈ Ê ÚÏ ×Ó \× ï× ZØ ¸Ø Ù WÜ ©î â $ S �' ö3 ôF *M ´V A^ %b Kd }p ÿt Ìv z ’| “~ w :‚ ?„ Ñ„ n… i† Ù† �‡ yˆ üˆ í‰ ØŠ –‹ ÿ‹ ¹Œ � é� n� â� K� Ì� Y‘ æ‘ O’ “ ‹“ ” ‹” þ” g• Е 9– ¬– .— ±— z˜ ¶˜ [™ Zš é ]´ ²À CÇ +× yã 6ó Çý  Ê"+#Ò#˜$%/&’'µ)P*ò*Y,ø-¢1j2û2Ä35±5œ6Ö:‡;·<G>.?l@È@–B@CjD­DüDBE«EmF=G‚GÄG7HùHÆIÿI{J~LÂLMXM­MN]NµN OEP°QSAUöVrWÛWsX_Pb9e€f‚jGo]tzÞ~˂߂�„Z…g‡=ŠèŠ‚‹¶Œƒ�7Ž��×�„‘A’·™ƒšr›üœ~�מ¾Ÿ`£G¤u§}¨Aª¤«’¬�­`¯?±9²â¿mÁ;ÂàÂ/Ã~ÃóÃµÄ­ÅÆÜÆVÇ(È‚ÈÉÚÉ<ÊdË%Í�ÏPÑÒ0ÓVÔ”ÕäÕ…ÖM×Ÿ×ØçØÛÚ‘Û˜Üçå¯óu÷Dúxnp ú êÉ&0‰39¦@žGmMS@V\©`ad8r�uyyÖ€ãŠt‘µ’´œ¡z¡e¢Û¢=£¢£¤]¤¥ì¥N¦¯¦§_¨¿©«¶«ã¬„­n®#¯w°V±q²[³³ú´6¸ä¸ü¹L¿jÄÚÇJÑCáÍé—îö§þxc vAm|Rg]DFãȈ „!b"L#&$¹&“'{(n)Æ) *\+O-B0h7`?¦DâG^IDJòJŽK†L?NÀNrOAP,R�SÌZr[Ø[4\©\]^]N^>_-`8aAbd¢d[e¡fÿfegÁg7h“hôh‰jÎkÃlÔm oæoÓpÂq²r¼s©t˜uõu\v¹v-wéw yüyízÝ{é| ~©~#€€€ç€D�¸�‚m‚^ƒO„?…K†s‡�ˆ�‰}ŠŒ_ŒÆŒ#�—�ð�LŽ=�.�‘*’R“|”l•\–à—=˜¤˜™u™Ι*š› œüœžŸI¢£p£í£À¤«¥²¦Ò§ ¨v¨/©)ªúªP«ެa­L®S¯Ưý¯j°8±6²¨²þ²´ñ´fµj¶Á¶=·t·-¸š¸u¹±¹Qº«ºÍ»N¼ñ¼/¾m¿\ÀšÁ’ÂÄ@ÄÅrÅPÆŒÆ.ÇPȨȑÉ3ÊËÜ˰̅ÍcÎPÏÈÏÐ{ÐÕÐÒ‹Ò¡ÓÚÓšÔ ÕëÕ&Ö ÖÂרóØnÙKÚOürý6w Ò ) ‘ É}Aü¿ö5äwº!ø"“(+g,j.à2¨7?8®8Ö?:GPK�N×QÛV¼_f]h'j6k^lfn¡oruÉu#vWw´w&xšxïyIzr|É|Å}O#†u‰U�½ŽÕ�d’º•f™(›œ¡ ¤‘Ã^ÆcÈ�ËÜ˳ÐÑÙØÚ0ÝLÞà'áÃâÙã×å1æ êæü\� ß”ìk%&¯&x'(ö(�)/*ˆ*Þ*Å+•,Ä-‡.ã2ª5Ò9E>Ý?-C DJE7FùF:HèHÅI=J×J¼K=L'MžMŒNOO[PÌP%Q~QðQIR¯RSySáSIT¢TþTÃU*V…VÝVNW‰W)XåXGY Z [[û[\\Ê\,]®]B_™_ `O`”`Ù`a_a£aùa`b"c-efeŸef=gÊg©hiwiÐizjßj½kÔl—m�oÒo&p•pq¥qçq;rÔrNs°yÌ{O~|€ƒ‡?Š]Žä’ü•`œÆœ†¢â¦Šª“°ä·>LJÌ�Ò�ÛrßÜçcîDñÄñ­òôòWó¿óNô²ôõ|õA÷Ü÷?ý˜ýòýƒþ�OÎLP³“ 8 báû± fÉnšB ú ÿ!ª"Ë#©$Ó&•(Ž+}-r/•3¹5j7Ý8‘<’@AŽA_FÕIvLzN!ReYœ^B`åeg%h2i…jØk+mxn¹oVq‘r¿t>wìwPxåxBy¸yzœzØz²{ |r|ä|ÿ~6Œå€Ø�3‚›‚#ƒ°ƒ<„­„7… …‡‰‡ˆŸˆúˆ�‰ ‹ê‹AŒ¥Œ'�þ�:�õ�I£€¥a¦Y§¨¾©³ª««¬m­0®i®¯Ú¯i° ±Û±¹²Ô³1¶¿·]¸«À±ÆgÇ,È…È•É�ÊFËüË�ÌûÌ6Í¥ÍΨÎùÎ^ÏÃÏ%ÐñÐŒÑ)ÒÒ=Ó÷ÓnÔ}Õ6Ö4å^éäíÉðQõcøóFƯ!+%*“-&5²9ÈCÈIçQ¶S6T®U�VÿV¶WâX‡YæYþm¥qay4€ýƒPЧ�¡’§•…›  1£¯§&«m¬!­ˆ­›®Z¯²¯°÷°>±�±Ö±²²²y³~´%µ/¶޶†·ú¹¼;¼μ³Ì8ÒÔÔÃÔšÕ1×ÔÛEÝðå7ðPòqô¢úÿ X § mî‡D¡:¦?Ø• ñ!Š#B'ã(*,¾6ç6�8û;ò<á==AõAUBwC™DGHÏI¾J“LvM5NGO×OQPôPáQÓRT UóUWÕWžX4Y^Z![ù[»\‹]I^ù^®_e`a?bCcgÄg¾h¿iul€nßrksiuöu“vixŽy«zÏ{î| ~*O€f‚ýƒ#…E†¼‡3‰XŠy‹ôŒoŽ �¿�A�j‘¢‘’d’Û ¡[¢ø¥µ§­ ®h°’°̲´µ,¶;¼ƒ¼a½a¾'¿å¿ À\ÁˆÂÅ|ÅòũƩdzÈZÒEÓ›Ó´Ô‹ÕßÕ­Ö˜×î×+Ù¨ÙüÙÒÚ¨ÛþÛÖÜSݧÝÞ5ß‹ßcààà4ážáÂâãðãmäÁä�åcæ¹æ–çègè3éVê¬êƒëcìÀì"öR÷Àúâ©w  à1� ýóTÜdÃ6-ϯh Å ¹# &Ÿ&N'(Í(±)ç*R,q-+.ô.¦/Ž0S1Þ1_2à2a3â3…456”wxrz|~Ø€”�1‚Á‚6ƒ©ƒ„Ë„<…®…‰†‡H‡�‡��Ã’É•õ–Þ˜P›aŸð¡ã¦T¨~ªU®ò±›¸k¼î¼‚½¾¨¾/¿É¿XÀíÀsÁõÁÂÓÂBöÃFÄ(ÇŠÇ•ÈÚÈ ÉfɵÉÊRÊ—ÊÝÊ.ËÂË}ÌØÌ5Í’Í]ÎÁÎ,ÏHзРÑ_ÑçÑÒŒÒÓSÓÔÕÔiÕ"Ö÷ÖM×á×ÁÙNÛܸÜrÝØÝ<Þ¢ÞDßœßôߨà`áËá6âQã·ãä·äåƒå9é¶é êÙê-ë�ëÕë+ì�ìÔì2í î¾îï¿ïøï;ð�ðñáñ$òyòÎò%óéóJôÙô„õfö¼öÿöV÷ñ÷‹øìøLùÛùŠú²úcû¿ûü{üÚü;ýœýýýjþ7ÿøÿ¸«'V kË+‹ìO"Ì:›' À ! { Ü 3 œ ä •ÙLë#„*p¶-m­]£é/±ñ1 q *!p!¶!ü!B"Ï"#O#�#Ï#u$»$%x%¸%ø%©&ï&5'{'ý'=(}(½(Q)Ø)Û*6+ +,s,Ü,Ê.Ï<ÔAùS˜\0_Qb‹ehÇjÙl4n$q}svÚw–y¿z}c€þ€.‚Ì‚tƒZ„r…>†¿†½‡Aˆæˆg‰̉2ŠÄŠ ‹ÍŒVަ� “p–Ø—´˜‹™hšïšœ¤œ" ª X¡¶£Þ¤•¥¨¨G© «%¬­@® ®H¯²1´¶´òµx¶B¸r¹�ºî»{¼ã½'¾‘¾å¾:¿¿¿ÀcÀ¸À ÁcÁÂÁ ÂuÂÃuÃ~ÄÅ:ŸŠÆ]Æ›ÆöÆzÉïÉÃÊÓ‹ÓÍÕù›ú¶þ,ÿõÿÂnù{ HÉî–<ä½³ *  …  ú ˆÿ<Zê` À&7'y(ð(ƒ*",-.u.ì.`4×4­5÷BnCIIÀIµJAKYOÏO¤PQÈPR…RûR¶Z,[Ê_ð_d`Ú`&„L„ô„�…V†̆B‡,ˆ»ˆK‰$ŠšŠŽ‹Œû•´š`ž6Ÿ¦§¨~®ô®ͯl°à°V±'²ƒ²;²÷²j³3´Y´Í´ìµŸÝÝÞ§ßÎßEà¼à!â˜âÎå;éì;ï_ø5ùÿwÿM¿6‘*Ü*oß|Elâ«ÒH¾‡®% î ! !i"�"#‘#Z$�$÷$À%ç%r&;'b'í'c(-)T)Ë)–*½*I+,;,Ç,>- .0.§.r/˜/)0ô01’1]2„23Û34Ž45Ð5÷5n697_7ð7 :‚:W;˜ABnRåR¶VJZÐ^G_a‡aËbBc}gógçhriBˆ¸ˆ�‰‹}‹RŒª˜9™~£õ£k¥ú¥‡§Ò¨I©�ª«I¬À¬Y°ϰ±±^²űÕ²Ù±L³2µ¨µã¶v¸À¹7º–»½&¾œ¾÷¿mÀBÁÂ’ÂäÃZÄ/Å¥Å0ÆDǺÇ�ÈÚçèwèóêhðIô|ðõ$ºF 9 ° ¥ 1ä[PÜŸMÄž ‰ÿÔ;$±$\3Ò3`7�:>ö>;@²@B�B`C³C‚DùD°FqGPH5I¬IðJgKÛLRM¦NOP¬P>Q°QRQ(RfQ RISØSÍTYU \4\Þ\Š]^¤^4_Á_`Ô_’`8aäaobþbŽc9h`hiÁkHnœpr÷rs•s tduóuÉv?wËwPxwx2yÎyDzÞz ||}k�S�ä�@³g³Þ³U´+µ3¶ ·G¹¾¹V¼ͼ«¿<À ÃõÄſŠÇÚÇèÈ É@ʪÊTÊ(Ëõ˯̽ÍuΨê6ëAîjîGï­ñÖñ«ò}õ¦õ{ö§4(³1¾4¿0§Ï F!S$y$î$e%?&"(J()R*Ç*Ž+µ+:,¯,v-œ-.….O/w/0|0I1s12“24‰4$6™6ãCYD@EFTEuFhEêF|E_G�EÔG¤EIH¸E¾H2I©IÚMN©NUOËO¤P3QÃQ_¥_M`Ú`¯a%b›btcd“dzfðfägohHi¾i@ngnoŸopŒpfqöq‡rzu¡uJvÙvOwÆw x0yÁym{O|ª|}’}~˜~M€¯€,� � ‚Bƒ„…ì…††‡¬‡?ˆÒˆF‰ø‰ÕŠh‹*ŒÿŒâ� Ž€Ž÷Žì�x�ü�#‘œ‘’Á“u”j–L—¥—˜�˜™•™Jšýš¬›)œ�œ�?žŸ  é ƒ¡¢©¢<£Ï£C¤õ¤Ò¥e¦§ô§רþ¨u©ì©áªm«ñ«¬‘¬­®®Z¯çÀ]Á‹Â´ÅAÆ5ÇÀÇ(͵͜Ò*×XÚÚõÚß:àaà×àláâá»âJãÚã^ä…äûäqå:æaæ׿¶ç¹ý ·.i ø í d > PßÔK%ÛRGÓ0§º K!­3¼6c7ò7ç8s9R¥RüRñS}Tãa b™bcd‘djpápÖqbrWsÍs'u uv«vóÇ €Í …Ö 1Þ nå ýå Ïæ âç eé ·é ƒê }ë Àì ^ð ñ üò õ �õ ûõ Dö ¢ö †÷ í÷ ½ø (ù €ù éù ý ¼ÿ � ! Ç &  o  2 Ø p w ë ( Ù- 0 ¼1 S> ÒG =N _ ìk ðl n o ‰p àp —q r „r (s Œs t dt »t 0u v Åv Ýw z g} ½~  y ž€ û€ >� •� í� P‚ É‚ c„ �„ á„ '… m… ¿… † v† °‡ ê‡ -ˆ sˆ Ĉ ‰ ƒ‰ }Š ÏŠ ‹ c‹ ©‹ NŒ G� È� Ž VŽ �Ž äŽ ,� s� ð� Â� ‚’ Û’ 5“ §“ ‡” • ‹• C– Ï– X— ¹— И $™ y™ æ™ Á¹ ¼ N¾ )À ÅÅ ßÈ Ê ÅÏ ÂÓ G× Ú× EØ ¡Ø öØ BÜ ”î xï Çï Í ±    > > x' á3 ßF M ŸV ,^ b ÷b 6d e hp êt ·v ûy }| ~~ b %‚ w‚ *„ ¼„ W… P† À† t‡ ð‡ `ˆ ㈠j‰ Ó‰ ¾Š }‹ æ‹  Œ � i� Ð� 2Ž ‘Ž ðŽ U� É� 2� ³� @‘ Í‘ 6’ “ r“ ò“ r” å” N• ·• – “– — ˜— c˜ Ÿ˜ D™ Eš ®© H´ �À .Ç × dã !ó ²ý ‹ðµ"#½#ƒ$%&}'Ú' );*Ý*D,ã-�1S2ä2­34ì4œ5†6Á:r;¢<2>?W@°@B)CTD—DæD,E–EXF'GlG®G"HäH°IéIfJhL«LïLBM—MïMGNŸN÷N0P›QS,UáV]WÅW^Xú^:b$ekfmj0oFtøyÉ~´ð�Ê‚l„B…ª…R‡(ŠÓŠm‹¡Œn�"ŽðŽú�Â�o‘+’¢™nš]›çœi�Áž§Ÿƒ¢ê¢J£0¤ ¦ü¦_§f¨È©+ª)«�«{¬j­ˆ®ä®I¯g°ð(±"²Í¿XÁ&ÂÊÂÃhÃÞàĘÅjÆÆÆAÇÈlÈóÈÅÉ'ÊNË7Ì’ÌÍ%΀·Ï9Ñ¡ÑÒNÒ³ÒÓÓßÓ?Ô¹Ô}ÕÍÕnÖÔÖ6׈×ü×eØÐØ7ÙÌÙ^ÚÄÚÛzÛÑÛ�Ü×ÜÒå™ó`÷/úaWY ã Ó²&ì/t3ü8‘@‰GXMS+Vj\”`Ld#rˆudyÁ€Ί!‹_‘ ’Ÿœð e¡¸¡N¢Å¢'£Œ£î£G¤š¤¥Ö¥8¦˜¦ñ¦H¨¨©êªK«Ÿ«ê«̬m­W®¸® ¯W¯`°?±Z²D³«³å´!¸ϸç¹7¿UÄÅÇ5Ñ.á¸é‚îíõ’þcóN a,Xg=RH/1òγs o!M"7#$y$ê$V%±%¤&~'f(Y)°) *j*G+:-,0Ò0!1S7J?@O@‘DÍGGIºI.JÛJwK LoL¼LM(N©N[O*PíPRôRjS�TÜT´ZZ[À[\‘\ë\F]6^&_` a*bDcíc‹dDe‰fçfMg©gh{hÜhËijqj_k¶k«l¼mònÏo¼p«q›r¥s’t�uÞuEv¢vwiwÒw&xˆxôxåyÖzÆ{Ò|ô}’~ €i€Ѐ-�¡�ú�V‚Gƒ8„(…4†\‡"ˆ†ˆv‰fŠë‹HŒ¯Œ �€�Ù�5Ž&��‘’;“”e”U•E–É—&˜�˜ê˜^™·™š›õ›åœñ�üž3¢£Z£×£ª¤•¥œ¦¼§ó§`¨°¨©Ž©ªäª:«x¬K­6®<¯°¯ç¯T°¤°!±™± ²’²è²´U´Û´PµT¶ª¶'·^·°·¸„¸Ô¸_¹›¹;º•º·»8¼Û¼Á½¾ÿ¾W¿FÀ,Á„Á|Â}ÃñÃ*ÄÄêÄ\ůÅ:ÆvÆÇ:È’ÈåÈ{ÉÊñÊÆËšÌoÍMÎ:ϲÏíÏeпÐúÑuÒ‹ÓÄÓÔ„ÔöÔIÕÕÕÖŠÖ¬×ØWØÝØXÙ5Ú:ü]ý!b ½  { × ´h+çªá Ïa¥!ã"~(ý*R,U.Ë2“7*8™8Á?#GéG9KyNÀQÄV§_fgRg¡gðgFhJi®ijkGlfmNn¶n‰oñoru´u v@w�wxƒxoyØy2z[|²|°}:†`‰³‰@�¨ŽÀ�O’¥•Q™›‡¡÷£|ÃIÆNÈlËÅË&̞мÙÃÚÝ7Þüßá®âÄãÂåæôéÑüGl Êr×V%ï%š&c'ñ'Ô(ˆ)*q*È*(+°+€,¯-r.Î2”5½9/>È?CóC�DÞD3E´EFâFSG¿G"HÑH®I&JÀJDK¥K&L¡LM‡MøMuNìNhOÙODPµPQgQÙQ2R˜RñRbSÊS2T‹TçT¬UVnVÆV7WrWXÍX/Y§YZˆZõZg[ã[D\²\]—]-_‚_ö_9`~`Ã`aIa�aãaKb cePe‰eúebfÅf'gµg‘hi`i¹icjÈjk¨k¾l‚m{o½op€púp�qÒq&r¿r9s›y¶{:~g€jƒ‡*ŠHŽÏ’ç•Kœ°œq¢ͦuª~°Ï·)ÇrÌlÒˆÛ]ßÇçNî/ñ¯ñ–òÝò@ó¨ó7ô›ôÿôeõÕõÕö*÷Ç÷*ý�ýÛýnþ!ÿ†ÿlä9™¹7¯d;�ö E ~ ÷ # € MÌåœõQ´X´…- ä ê!•"¶#”$¾&(y+h-]/€3¤5U7È8|<}@AyAHF¾I_LcN RPY‡^†_Õ_+`/a“aÐeghinjÁkman¢o>q¦qyrárªt)w×w9xÎx+y¡yûy…zÁz1{›{õ{[|Í|ê~!uЀ;�Ã�‚„‚ ƒ™ƒ%„–„ …‡…‡†ù†r‡ñ‡ˆˆãˆj‰ý‰bŠËŠ'‹‰‹Ó‹*ŒŽŒ�é�œŽ%�Þ�4£k¥L¦D§­¨©©ï©žª–«ó«X­®S®¯įT°÷°Ʊ¤²¿³¶ª·H¸•ÀœÆPÇÈpÈÉzÊ0ËæËxÌåÌ Í�ÍÎ’ÎãÎHÏ­ÏÐwÐÛÐvÑÒiÒ&ÓáÓYÔgÕ Ö¿ÖåIéÏí´ð<õNøòÞ1ñš!%¸%-&ý)~-$.™.5¸5œ9@:³C³IÒQ¡S!T˜UçV WÌXqYÐYæmo�qLyÃy€èƒ|„;Š’�ú�Œ’’•p›ôŸ£š§«X¬ ­p­/®„®â®C¯›¯°S°à°'±y±¿±²�²d³g´µ®µ¶x¶p·å¹%¼¸¼œÌÎ!ÒÓÔjÔ¬ÔƒÕaÖ»Ö×¾Û/ÝÙå ð9òZô‹úhÿï ? Ž V×p-Š#�(Á~ Ú!s#+'Ì(+)í),Î6†8ä;Û<Ê=$AÜAòS³sÔ6 ´"ƒ ©  d Å  † P °  l Î bÃG¢ýX³iÄzÕ0‹4Ò nYŸW—FŒÒ›Û [ !Y!Ÿ!å!+"¹"ù"9#y#¹#^$¤$ê$b%¢%â%’&Ø&'d'ç''(g(§(:)Á)Å* +Š+ÿ+],Æ,³.¸<½AãS‚\_:bueh±jÃlnqgsvÄw€y©z}M€è€‚·‚_ƒE„]…)†ª†§‡+ˆЈR‰·‰Š¯Š‹‹¸ŒAŽ‘�ó’Z–ן˜v™SšÚšï›�œ  • C¡¡£ɤ€¥“¨2©öª¬û¬*®Š®2¯ë±´ ´ݵc¶-¸]¹ˆºÙ»f¼ͽ¾{¾Ͼ$¿©¿í¿MÀ¢À÷ÀMÁ¬Á Â_ÂíÂ`ÃhÄêÄ#Å¢ÅôÅFÆ…Æ߯eÉÚÉ®ÊÓvÓ·Õëø…ú¡þÿ­YäŠ3Ø�&Ϩž  o ä sê'EÕK «&"'d(Û(l* ,@-é-`.×.K4Â4˜5âBYC4I«I J,KDOºOúPúQpRæR¡Z[Ù_O`Å`5„ß„l…A†·†,‡ˆ¦ˆ6‰Š…Šy‹Œæ•œšKž!Ÿ‘§¨i®ß®U°˰A±m²á²U³B´¸´×µŠÝÈÞ·ß0à§à âƒâ·å$éÿë$ïJø ùëþbÿ8ª!|ÆðZïgUÍ»3©— þ ‹!y"#|#j$â$Ð%]&K'Ø'N(=)¶)¦*4+$,²,)-.’.�/01}1m2û2ë3y4ð4à5Y6H7Û7÷9m:B;ƒAùAYRÐRžV2Z»^2_û`ra¶b-cßfhgÞgÒh]i-ˆ£ˆx‰òŠh‹=Œ�‘‘˜•˜$™i£à£V¥å¥q§½¨4©zªñª4¬«¬D°º°G²¾²5³Í´µ“µζ`¸«¹"º€»ÿ¼¾‡¾â¿XÀ-ÁÂ}ÂÏÃEÄÅ�ÅÆ/Ç¥ÇzÈêçbèÞê4ôñôÑ¥1 $ › � ÏF;ÇŠ8®‰ótê¿&$œ$G3½3H7u:j>á>&@�@BxBœCmDäD›F\G;H I—IÛJRKÆL=M‘NOýO—P™QR‰R4SÃS¸TDU\É\u]^�^_`{`#aÏaZbébycIhi«k2n†pûqs€s÷sOuÞu´v*w¶w`xy¹y/zÉzô{f}V�=�Î�P³ɳ@´µ¶ô¶2¹©¹A¼¸¼•¿&ÀôÂŪŠÇÄÇÒÈŠÉ’ÊËß˙̧Í_Î’ê ëQî0ï½ñ”ò�õdöå“ÃâÏ­ñƒFÚF   n z ¬×Ú’ž©ª’º 1!b$Ù$P%(&~&×&K'¤'2(ê(=*²*ž+%,š,…-û-p.`/ñ/g0\12~2ÿ3t46„6ÎCDDêE_FÔFIG¾G3H¨HI”IêM”N@OµO�PQ®QŽ_8`Å`šab…b_cîc~defÛfÏgZh3i©iPnûnŠopvpQqáqrrŠu5vÄv:w°w‹xy¬yX{:|•|ü|}}~ƒ~8뚀�Š�ö�+ƒðƒ÷„Õ…q†‡—‡*ˆ½ˆ1‰ã‰¾ŠS‹ŒéŒò�kŽâŽ×�c� ‘‡‘þ‘«“_”U–7—�—ù—z˜ý˜€™5šèš—›œ‡œóœ(žížôŸÒ n¡¢”¢'£º£.¤à¤»¥P¦§Þ§ç¨`©ש̪X«¬|¬ó¬˜®D¯ÒÀHÁvÂ_õà ÄaÄ·Ä ÅŸÅ,Æ Ç«ÇÍ Í…Ò×hÚàÚß³ßJàÂàWáÌá¦â5ãÅãnäæä\åJæÂæ¡ç£ýô¢óT ã Ø N ) ;Ê¿5Æ=2¾’¤ 5!º4˜5§6N7Ý7Ò8^9QR�RçRÜShTÏUõa„bûbðc|dUpÌpÁqMrBs¸suÿu•vº4 5Ú546Ž6è6(7P8[8ß87>B>º>Å>? ?F@Q@A™AQB\B¼BÇBÒBJCUC`C¥C°C»CÊCaDfEqEåEðEJFUF°F»FHIíI.J|JïJâP\Q§U$Y/Y~Y9Z›ZÿZD]8^�_å`:a§b!c¸gÃgÎgiui€iÔiCj¥jújJk`l´lmbmmm·mWnbnmn1pzˆzîzúz{{o{¼{ |\|¸| }m}Ô};~G€��%�v�…�“�¡�¯�½�3‚>‚‹‚f‡ö‡±‰;ŠFŠè‹ó‹þ‹Œ¿ŒÎŒX�¦�±�ñ�û�ŽŽŽ#Ž-Ž�ލŽD�O�_�n�|�Â�Ñ�á�ß‘ê‘=’H’u”€”&•q•Ì2"3-383x3ƒ34Å45Y5d5�5¨5³5¾5Ê5å56)6?6x6ƒ6™6Ò6Ý6ó637h7s7E8f8©8ê8k9v9;:F:‰:”:â:0;Ÿ;ª;Z<e<p<²<½<!=,=7=C=S=‰=”=,>M>¯>Ð> ?+?e?p?{?†?‘?œ?§?³?Ã?Ó?Þ?@@*@6@\@ž@ AMAXAŽA¤AÚAåAFBgBCoCÙCDlD¦D±DÿD E|EûE`FÆF5G@G8HCHNHœH§HôH=ISIøI9J‡JúJ4KnK¨K³KíK'LaLlL¦LàLM%M_M™MÓMÞMNRNŒNÆNO OEOOÃOÎOÙOP&PhPsPíPgQ«Q¶Q R+RnRyRÊSÕSàSìSüS–T¡T¬T!U,U7U†U‘UœU²U(V3VsV~V‰V”VèV,W7WzW…WÇWÒWXXY:Y‰YêY.ZDZ¦ZéZôZ [Y[d[³[¾[É[\#\h\s\~\‰\•\¥\ô\ÿ\ ]O]C^Z_e_q_Œ_À_Ë_Ö_â_ò_&`1`<`H`X`�`¨`³`¾`É`Õ`ð`Eaˆa“ažaàaëa-b8b²b,c|c‡cËcÖc'd2d’d�deLe�eÔeße"f-f|f‡fÊfÕfàfìfüfpg{g†g‘gœg¨gÙghh)h4h@hPh`hkhÂhÍhØhãhïhÿhi%i_iji‹ißiNj°jk?kUk‹k–k¡k¬k·kÂkÎkÞkl#l.l9lDlPlkl¿lmnLnxn²n½nÈn&o1ogoro&pGp„p°pqTq_q²qûqrrr'r3rCrŸrªrµrÀrËr×rVsŸst­tbuovâwíwøwxxx*x]xhxsx~x‰x•x°xçxýx4yJy„yIzz{±{Ç{||Q|g|­|Ã|}+}b}x}É}ß}0~¾~Ÿªäïú€€€,€<€R€Œ€—€¢€­€¸€À΀Ú€ê€ú€Ë�‚ ‚‚#‚I‚€‚–‚ЂÛ‚æ‚ñ‚ü‚ƒƒ#ƒ3ƒ>ƒxƒƒƒŽƒ™ƒ¤ƒ¯ƒ»ƒ˃Ûƒæƒñƒ„„ „/„=„K„Y„g„á„ì„<…œ…u„¯„º„ńф÷„1…G…‘…§…²…Â…Ñ…á…ð…þ… ††(†¢†­†ý†[‡6†p†{†††’†¸†ò†‡P‡q‡µ‡À‡ˆ�ˆ›ˆ¦ˆ±ˆ¼ˆȈ؈�‰›‰¦‰¼‰ŠQŠ‹Š8ŒrŒ}ŒˆŒ”Œ¤Œ´ŒÙŒ��c�:ŽÀŽüŽ���(�4�ñ�3�>�I�T�_�j�v�†�É�Ô�ß�ê�õ�‘ ‘‘_‘j‘u‘�‘‘‘Ô‘õ‘2’S’¬’·’Â’Í’Ø’ä’ô’3“>“I“T“_“j“v“†“‘“œ“§“³“ÓC”N”Y”e”‹”͔ؔ1•`í 8 ? ‹H O áu +’ b” • 9– Ê– uš ~¼ ±Š q‹ 7sB¸béou{À’ôý á Þ£'é0Á0ú?áYãcf¼âãGùKTOõRùW)6Ê>‰DÖFÄH4|u!)G~J9M˜O?S¹€Æ€t†�†‘ÁËÓõnoo)®îÍûÍmÓzÓ çPñió�õ«ûˆ1 � Ñ �H!5û«:™r …!K#&Ö&¤(á)Ú+717›7¨7G9T9«<¸<³=À=¿?Ì?°@½@ AAÆAÓAICVClDyD7¡I¡º¡Ç¡%©2©ß­ì­ѰÞ°t±�±Ò³ß³ì´ù´ýµ ¶¦¹³¹™º¦º-»:»¦»³» ¼¼/½<½XÂeÂÝÃêÃÓÄàÄydžǂÈ�ÈÜÒ×@ÛÞ âûå é•ö‰{Ѧ—A¹.…/S0215w|xi�?–=Î ÏÅÑýÒGÕ¿×"ßážîÉóÐ÷køÓÿ”ý¨ëøºÇ‰–ÜÑû¿ $G& )¸)NbO@TGYV\§_®cl'npq.sªužwµ‡Š¥‹-”ž³îÁNçúçtîäï³ñ‚óQõ ÷Dý¥þoÀ�'ë Ö9B;q@gA�BE:H_I‹JCOùSÃUšZŽ^„azddf{iºk�m6nUoEpcq�xéyš|²} ‡t‡ˆ€‰ãŠs�*‘“‘3’4•K—šМŸÁ�ÙtÚPÛüç—èßîbòÆòcõÏõqö÷û,üØüþKÿeW‘ êPO©#)�3:N>î>”?`@E2IALóT¡Ws`[dqhi±iwj/tw|@€þ‰ŽמÅ¢n§¨©©êªŸ®›³c·ÁÂïÇ`É{Ò× ÛwÞá§á„äåxçPêÞêdíWðôj÷ø¸ø_ùúÅúÝüCñV ¿}�ùbζ W!23m4¿7d:‚=M¿MbNO.RÉTZg__¶¢½T¾7ØØÚåú5ú6í7¡8U9Å;|<a=�>‹?;@ë@›AKBmC$DØDŒEdg™k6mnUu˜v|wÃz}|߉æ�ø�a‘Ê‘4”Ó¥ §]ª­ê®)¼̼o½ßÀšÂôƮɺi� ~ / d Hc¿�p-÷3�4ñ4s8ãH¯LiN•Q6SÿU€VWb]Ëwy~¾~‹„lˆ)‰ñŠ&Œ�Ë‘š’Š“‚”�•Ž–‰—E¡þµyÈiÕõÕ:áÌîäñíô{ýÉ—e\ Í î”7é:ßGí�™y!"$&Ê&ð+¦.13Ì7H9ø9:;;Y>EHßI‘_eùeÖqây?z±zg{g|}û}á~1€~‚˃…ý…͈½‹(Œ�ï�öŽË�²�†‘W’+“ü“Д,—pž5¥¦έ¹®tÁ#ÂÔÂÖÄjÆpÊüÍUÑ1ÒCÖÄÝ+á©ä@è×ëðí¨ïyó¹øèúý˜þÆÿÊ f •  | } ° ]  • 8 þ ž! " Ø3 Š: õ: < Ò< ˜= ¥@ ðI xQ øR öW ‚X ] qf mm ks [x Ô{ ‚ ÿ„ ¸Œ a™  � !Ÿ þ¡ £¢ õ¤ Ú¥ ·¦ •§ 3¨ –¨ ù¨ ¹© ²ª ¬« b¬ ß· …À KÁ —Ë Í Ö × "Ø Ù òÙ ãÚ ™Û ŠÜ qÝ Cà <á æá êâ ä õä ¯2 x3 É7 Q< Ù< Š= µ> ÷e Qg 9h Îs -t Uv šw kx £Þ¥•ª¬p¬ž­¡±døËøiúËüLþîÿmé…=j= *gך{7ëc p"Ò#Þ%î&b(o*–+ -.Ù.�0Ä1Ð3ø4¯JqNéUiV�K£¤U÷±÷à  … ëZ ñ[ ¸d je Ïk jl Aq r (y 9z Ø‚ Òƒ ̇ ¬Š š —› ­ ¡± ÒÇ 7È ‹È DÉ Ê ÊÊ âÍ DÎ IÏ ÄÏ Ð ÃÐ hÑ Ò àå }æ ¥ç ùç žè Yé ˆê ìê që Çë €ì Sí î Õî 9ï ¸ï ð ½ð …ñ =ò Ôô rö ã÷ èø +ú pû ³ü øý §þ ïÿ ½ ƒ ¦ Þ Þ p â Þ – £ ù Ì „ ‘ Ï ç Ø I P “ Ö  \  Q ! á! # >$ >% ®- / >& ó& ü' R( ) Ï) Ø* , @4 >5 í6 U9 ±9 J; ˜; E wE ©L ]N ŒO œP ÿ] _ U_ ` Û` ‘a ^b c d Ñd Ìt êŽ N� ¤� «� � †� #Ÿ Ÿ ˆ  E¤ ¯¤ Q¦ ­¦ ·§ Þ° ² »³ ´ eµ U¶ ò· l¹ žº » þ¼ T½ àÁ > � ›Ã ëà ¦Ä ¥Å ³Æ Ç ÝÇ ¤Ê iÏ ËÏ )× LØ êÙ IÛ Äªj : %x$œ�ކ›ê›âÈFɶߜàëá:ã‰äØå¡æsèëèê#ë>ìYíï¸ð‡òVô%öô÷¦  nqÚÞÚG � ª z8ÿ<MbteªkêtT ­ ãÒ Ô ¦Õ Ö ƒ× zÙ kÚ DÛ Ü ô\ \] À C §Þ zæ ?ü �ü ßü /ý ý Ðý !þ rþ Âþ ÿ aÿ °ÿ P   ð A ‘ á 1 ‚ Ó $ t Å  f ·  Y © û M Ÿ ð A ‘ á 1 � Ò # t Å  g ·  U ¥ ö á 2  S ¤ ü S oKJL%MNÛN¶O‘PlQGR"SýSØT³UŽViWDXYúY Ÿ ˜  ] ¬ ú S ¶  X © ú K œ í = Œ Ý ó zó îó aô %÷ –ù Ûú ü cý . ‚  �  t ‹ þ A „ Ç Ö * ~ Î  o Ç  i U tÿä =cî)´A%¡ß‰¼¤Ä±4Ñ4ûê¤\-ðxdÈ‹ ¹k /à (á Òá ³7 Ç8 Â] Ö] ê] Næ dæ Ýæ |çë#î�þ*v+r,¢d Ûÿ © o = ! Í! ×6 Ý8 ñ8 9 9 -9 A9 •L )ºµÆÂÇ&ÈŠÈ¢É&ÊÖÊ>˦ËdÌœÍÎhÎaÏ·ÑÐÖÀèì|ï=û�v$Ñ.¦6l9D:þ?¯BtC‚HžITEYT\¥_¬cl%n`q,s¤uœw¿yÿ‰£‹š�„›š¹àÈøçrèï·ð†òUô$öó÷£þm¾m%%Î)@;o@eABE8H]I‰JAO÷SÁU˜ZŒ^‚axdbfyi¸kŽm4nSoCpaqrçy˜|°}ò„r‡ˆ~‰ÙŠq�›Ž‘‘1’2•4—š(›t�¸ŸŽÙfÚJÛúç•èoé`òÄòaõÍõoö÷}û*üÖüþIÿcUôþžèNM§#)Ž3Í8L>ì>’?^@E0I?LñTúUq`Ydohi¯iuj-tu|>€ü‰ÿŠÕžâl§ ¨§©èª�®™³a·ÁÂäÆQÈ°Ê Ö«×lÝ á¥á‚äåvçNêÜêbíUðãð`öø¶ø]ùúÃú‚û8ÿÎL ¶Ž÷`ÌY U!03k4½7b:€=M½M`NO¦OÇT‰We_'b ½R¾5ØÒÚåbøø6ë7Ÿ8S9Ã;z<_=�>‰?9@é@™AIBkC"DÖDŠE­J:h4mnFr–vvwQz |ç}*�ö�_‘È‘דÑ¥ §[ª­è®'¼ʼm½X¾˜ÂdĬÉxË¢g | - b Fa½0ƒ2.‹4ï4q8áH­LFN“Q,SýU~VW­WÉwÖx~¼~‰„ˆ'‰ïŠ$ŒþŒÉ‘˜’ˆ“€”›•Œ–‡—F�üµ)·gÕóÕ8áÄáâñëôyýÇ•cZ Ë ì’5çÆÝE뎗 ""&È&î+‘.½1Ê7y8ö9}:9;þ<EHÝImKLbse©két=z¯ze{e| }ù}ß~/€|‚Ƀ…û…ˈ»‹&Œ�í�ôŽÉ�°�„‘U’)“ú“Δ*—�œI£¦Ì­·®rÁ!ÂÒÂÔÄhÆnÊúÍSÑ/ÒAÖÂÝ)á§ä>èÕëîí¦ïwóS÷æúý–þÄÿÈ d “  z { ® [  ‰ 6 ü ,! " Ö3 : ó: < Ð< –= £@ îI vQ öR ôW €X éZ  d ·k ?q Yx &y ‚ Ö‚ ʇ _™ š Ÿ ì¡ ¡¢ ó¤ Ë¥ µ¦ “§ 1¨ ”¨ ÷¨ ·© °ª ª« `¬ ­ ƒÀ IÁ ÐÇ þÌ àÍ × ‚× ÿØ yÙ jÚ CÛ Ü oÝ ¾ß &á Ðá èâ ä óä Þå v3 >4 Å8 ×< ˆ= ³> E Og 7h Ìs +t Êt ˜w ix :y z Ôz X ƒ… £† Ç Dˆ Àˆ )‰ ɉ iŠ ÒŠ ¥‹ Œ sŒ €� ZŽ èŽ v’ “ Γ • s– i— ^˜ R™ ÷™  š Ý› � X¢ s£ Ü£ C¤ ìª X¬ Á¬ c­ ® Ô® =¯ ° ܰ ×À ÞÁ ¶Ý ¥Þ Nð vö Üù °û =ü ®V±p²|³µ~¿­Åb_ ø Z ® S ýì²þ¼ì0 !¯"Ö#&(¶+ÛÛ„F�ß�ˆ’+”�ž¦¡¹¦v«ذ²œ³È»¼¾*¿ìÁcÊ�ËpÎéÒÕoØÍØÖÙ8ÚAÛÁÛÜÎÜsÝÕޟ߇ù®úû§ûBýŽÓ¹é ‰*¶+.Ü0 3 445Ú7Ô9„s�t|v�x ‡(‘ΜŸ'£¯§%®�´‡¼ñ¾ÁìAíÝî] :ŸWþ�íÇ^É­Ë¶Ì ÎÏÐ#ÑyÒרر٠ÛuÞžñ«òôh÷ÛüA‰–ïT : Ó ¤ '½Þ{,RZ±cQe¹g+kkl náv±‚/ƒ²•�š~ž<£Ü¥ © ¬n¬œ­Ÿ±Ö´ÉøgúÉüJþìÿk çƒ;h; (eÕ˜y5¢a n"Ð#Ü%ì&`(m*”+ž-}.×.0Â1Î3¯4ø5oNçUgVbg:imjÃj—kùr)ttSuQ~­~€·�ÕƒÖ„o†‡Gˆ݉MŽä�ÝÀòÆm̀ϷÐYÒŽÓŸÕ¤×oÚDà>áHâMãìäÜåzçèèùê(ìÅí!îŽïõïêò@óIø®øùÕù‹úXûÀûüóÿ£‹#«!½#ó%¨&µ'(N)Ó))*ü*t+,p,Z-Ÿ0~2õ3'YÉZÎ[Û\`]ÌŸC¡ö·'¹8½|Ã=ÄoÅýÇbÈ/âËã%äyåáåÿçYè/ì/íÊî8w!/3/[ˆ^Ö^�_lxçx;yày<�nž¤3¥¯÷·ø– ƒ “ ï[ ] he of hl km r is 7z Ò{ Ѓ ý„ ªŠ ¶Œ •› ž� Ÿ± Ý· 5È ‰È BÉ Ê ÈÊ •Ë BÎ GÏ ÂÏ Ð ÁÐ fÑ Ò áÒ {æ £ç ÷ç œè Wé †ê êê oë Åë ~ì Qí î Óî 7ï ¶ï ð »ð ƒñ ;ò ó pö $÷ æø •ù Úú ü bý ¥þ Ùÿ § m ¤ Ü Ü Ü à  ” ¡ ÷ Ê ‚ � Í n Ö Š N ý @ ƒ Æ  ; ! Ë! # <$ <% <& / ­2 ñ& ú' P( ) Í) Ö* , ¬- <5 Õ6 ±7 ¯9 H; –; O< uE éI [N ŠO šP ò\ ÿ^ S_ ` Ù` �a \b c d Ïd õe Sv L� ¢� ©� Ó‘ „� !Ÿ }Ÿ †  Ò¡ ­¤ O¦ «¦ µ§ %© ² ¹³ ´ cµ S¶ ð· j¹ œº » ü¼ R½ ú¿ < � ™Ã éà ¤Ä £Å ±Æ Ç ÛÇ ¢Ê gÏ ÉÏ '× JØ èÙ GÛ ÝÜ J«*º¶ÆÃÇ'ȋȣÉ'Ê×Ê?˧ËeÌ�ÍÎiÎbϸÑÑÖÁèì}ï>ûŽ9 $sãw$@%Ò.§6ˆ9E:ÿ?¸BuCƒH§I=NaO?TFYU\¦_­cl&noq-s©u�wÀyФ‹›�ŽoŽ…›é›Mœ›¹áÈEɩɛàêá9ãˆä×å æMçùçêèê"ë=ìXísîãï²ñ�óPõ÷îø¤þn¿n&5Ï)A;p@fA€BE9H^IŠJBOøSÂU™Z�^ƒaydcfzi¹k�m5nToDpbq€rèy™|±}ó„s‡ˆ‰âŠr�¤Ž’‘2’3•J—š1›u�¹Ÿ�ÙsÚOÛûç–ètéaòÅòbõÎõpö÷~û+ü×üþJÿdVõÿŸéON¨#)�3Î8M>í>“?_@E1I@LòTûUr`Zdphi°ivj.tv|?€ý‰‹ÖžÄ¢m§ ¨¨©éªž®š³b·ÁÂåÆRÈ±Ê Ö¬×mÝá¦áƒäåwçOêÝêcíVðäðaöø·ø^ùúÄúƒû9ÿÏM ü·�øaÍZ V!13l4¾7c:�=M¾MaNO§OÈT–Wf_4bïn¡½S¾6Ø×Úåcøù6ì7 8T9Ä;{<`=Ž>Š?:@ê@šAJBlC#D×D‹E®J;h5mnGr—v{wRz |è}+�÷�`‘ɑؓҥ §\ª­é®(¼˼n½Y¾™ÂqÄ­É…ËÝÚVÛ£h€ } . c Gb¾1„3.Œ4ð4r8âH®LhN”Q5SþUVW®Wà Êwïx~½~Š„ˆ(‰ðŠ%ŒÿŒÊ‘™’‰“�”œ•�–ˆ—G�ýµ<· hÕôÕ9áÅáãñìôzýÈ–d[ Ì í“6èÇÞFì�˜ "#&É&ï+¥.¾1Ë7 G9÷9~::;X>EHÞInKeøeÕqx>z°zf{f| }ú}à~0€}‚ʃ…ü…̈¼‹'Œ�î�õŽÊ�±�…‘V’*“û“Ï”+—‚œJ£¦Í­¸®sÁ"ÂÓÂÕÄiÆoÊûÍTÑ0ÒBÖÃÝ*á¨ä?èÖëïí§ïxóT÷çúý—þ¬ ÅÿÉ e ”  { |  ¯ \  Š 7 ý -! " ×3 : ô: < Ñ< —= ¤@ ïI wQ ÷R õW �X êZ ¡d ¸k @q Zx 'y ‚ ׂ ˇ `™ š Ÿ ý¡ ¢¢ ô¤ Ù¥ ¶¦ ”§ 2¨ •¨ ø¨ ¸© ±ª «« a¬ ­ „À JÁ ÑÇ ÿÌ áÍ ÿÓ 6Õ Ö ~Ö × !Ø Ù ñÙ âÚ ˜Û ‰Ü pÝ ¿ß 'á Ñá éâ ä ôä ßå w3 ?4 Æ8 Ø< ‰= ´> E [] Á] B Æ Pg 8h Ís ,t Ët ™w jx ;y z Õz Y „… ¤† ć Eˆ Áˆ *‰ ʉ jŠ ÓŠ ¦‹ Œ tŒ �� [Ž éŽ w’ “ Ï“ !• t– j— _˜ S™ ø™ ¡š Þ› � Y¢ t£ Ý£ D¤ íª Y¬ ¬ d­ ® Õ® >¯ ° ݰ ØÀ ßÁ ·Ý ¦Þ Mæ Üæ Oð wö Ýù ±û >ü ®W±q²}³µ¿®Åc` ù Žü [ ¯ T Þü þ.ý í~ý ³ÿ½íÏý þ 1!°"×#'(·+ÜÜ„G�à�‰’,”qþ ‚ž§¡º¦w«Ù°²�³É»½¾+¿íÁdÊ‘ËÁþ ÿ qÎêÒÕpØ`ÿ ÎØ×Ù¯ÿ 9ÚBÛÂÛÜÏÜtÝÖޠ߈ù¯úû¨ûCý�Ôºê Š*·+ÿÿ .Ý0O Ÿ 3ï 455Û7Õ9@ …s‘t}vŽx ‡)‘ÏœŸ(£°§&®�´ˆ¼ò¾ÁìBíÞî^ : Wÿ�� îÇà _É0 ®Ë·Ì� ÎÒ Ï# Ð$Ñs zÒÄ × ©Ø²Ùe Û¶ vÞ Ÿñ¬òX ô¨ i÷ú ÜüL Bž Š—ï ð@ U ; Ô ¥ (¾ß|-RZ²cReºg,kll nâv²‚0ƒ³•‚šž=£Ý¥ ©¬o¬�­ ±×´ÊøhúÊüKþíÿl è„<i� à 0 < )fÖ™z6£b o"Ñ#Ý%í&a(n*•+Ÿ-~.Ø.€0Ã1Ï3°4€ ù5pNÑ " èUhVcg;injÄj˜kúr*t€tTuR~®~€¸�Öƒׄp†‡HˆÞ‰NŽå�ÞÀóÆnÍ�ϸÐZÒ�Ó Õs ¥×pÚEà?áIâNãíäÝå{çéèúê)ìÆí"î�ïÄ  f öïëòAóJø¶ ¯øùÖùŒúYû T Áûüôÿ¤Œ¤ $¬!¾#ô%õ ©&¶'(O)Ô)**ý*F u+,q,[- 02ö3(YÊZ1 Ï[Ü\a]ÍŸD¡÷·(¹9½}Ã>ÄpÅþÇ€ cÈ0âÌã&äzåR £ âåèZè0ì0íËîû 9R x!© 03IL$MÿMÚNµO�PkQFR!SüS×T²U�VhWCXYùYÔZ0[‰^×^�_mxèx}¿}B~Å~!Ž;‘c—;˜¼˜?™™©0¬—Úyà�äyæÔ6$b/v«b 2 l� ÜñJpû!6Á9%N%þ�hŽâ›Fœ>ɢɮߔàãá2ã�äÐ噿–¼õèn±Ñ¾4Þ4ÊÚOÛë±i-ýxqȘ Æk øÓ /Õ Ö wÖ <à 5á ßá À7 Ô8 F] ®] Ï] ã] ÷] [æ qæ Õæ êæ ‰çë0îš +ƒ+,>LMôMÏNªO…P`Q;RSñSÌT§U‚V]W8XYîYÉZ» û ¯d ró Öó Yô ½ô èÿ ¶ | … é l Ð J ! Ú! ä6 ê8 þ8 9 &9 :9 N9 ¢L "«f 6 !p…àõNtÿ%:Å=%R%ŽlŽæ›JœBɦɲߘàçá6ã…äÔå�æš¼ùìnµÕÂ4â4ÎÚSÛ ëµm-yuÈœ Êk üÓ 3Õ Ö {Ö @à 9á ãá Ä7 Ø8 J] ²] Ó] ç] û] _æ uæ Ùæ îæ �ç ë4îž+‡+ƒ,BLMøMÓN®O‰PdQ?RSõSÐT«U†VaW9 R9 ¦L È ²Í µÖ aÞ  å ?æ ç "è §é ýé ®ê Îë Dí ¢ð Tñ Bó Lõ Þõ 2ö Žö W÷ ‘ø ù sù :ú Ký # Ì M ó R @ ² I † % ¼ ¹ ,! Z( . I0 þ1 ô> `H ÜN ö_ Äl Ém én p Íp zq àq Rr s os Õs Ht ¨t u Åu ¨v `w *x Nz ¼}  f Á Õ€ ,� ƒ� Ú� 4‚ —‚ fƒ “„ ΄ … Z… £… ò… ;† ‡ à‡ ˆ `ˆ ©ˆ ÷ˆ @‰ Š ²Š ‹ Q‹ –‹ ô‹ ëŒ �� ù� AŽ ˆŽ ÏŽ � ^� §� ‹� _‘ Ì’ %“ …“ G” • – ¯– ¡— ˜ ™ i™ Ä™ Zš º i¼ }¾ XÀ òÅ É MÊ Ð Ô –× 'Ø ’Ø çØ <Ù †Ü \ï • é  R( >4 <G rM úV ”^ Úb e Âp Gu ýv Rz Ä| Å~ © j‚ o„ … œ… £† \‡ Ї ¼ˆ ?‰ †Š J‹ Ó‹ ŽŒ õŒ \� %Ž ­� � �� ‘ ž‘ #’ Ž’ R“ Γ U” É” ;• ¤• – w– ù– {— ï— ”˜ 1™ Œ™ tš á© {´ ÐÀ aÇ I× ™ã Ró æý ¾%ê"\#R$Å$H%^&Ã'ä)€*!+Š,).72¿2‘3ø35ò5þ6;¹;ë<y>F?›@NBC}C…DËDE\E*FôFZGœGßG¶H€IàIJKšLÞL2M‡MßM7N�NçN?OsPÞQHSqU&W W XúX=_£bQe°fÃjÀoØtçz‘j€>‚ƒ±„�…˜‡Š#‹½‹ñŒ¾�wŽC�?�ñ�Å‘£’ì™·š¦›0�˜�ƒŸÄ  ¤ö¤4¨•©«S¬A­T®3°ð±O²À�ÁºÂþÂMÛÃrÄ<Å4ÆœÆôÆÝÇEÈžÈ�É÷ÉYÊÌ÷ÍmЊÑBÒjÓ’Ô¼Õ]Ö¿Öw×Ù×MØ!ÙÛ»ÛÁÜæô�÷\úâÚí º ·|'¹0*4´9XAQH!NÎSóVC]na'egrÎu©y�‹¯‘ð’ãœ5¡«¡§¢£y£Û£4¤�¤¹¥¦{¦Ü¦§§£¨^ª>«Þ« ­Ë­«®K¯¾°“±¸²˜³´+µx¸¹ºl¿ˆÄøÇjÑcáíé·î!öÇþ˜&‚ •_‹šp˜Œs�w8ø¹ µ!‘"|#T$è&Â'ª(�)÷)T*v+�-¤0«7Ý?ÚDH˜IÉJfKýK°L‰NAOùOÌPØRSTJ[°[ \y\Û\6]^_ô_÷`b.c&d)e­eÕf=g™ghihÇh­iBk…lŽmžn£o™p†qurwsmtØtÉu0v�vûv\wxÀy±z {¤|¯}{~\T€»€�†�ç�A‚"ƒ„…†‡ ˆP‰@Š2‹3ŒšŒ÷Œe�Æ� Ž�ò�á�å‘ð’é“/•–—˜x˜Õ˜C™¤™þ™ßšÐ›¿œÃ�Ξ>Ÿá¢H£¨£…¤r¥q¦u§ê§H¨¥¨y©Áª(«A¬&­®¯‚¯Þ¯<°™°„±x²Ö²í³J´3µ,¶™¶ù¶U·¤·l¸É¸�¹ º€º›»ü»¦¼¤½â¾ ÀÁOÂWÃÄqÄ@Å¢ÅjÆäÆÈÈØÈéÉÔʨË}ÌQÍ(ÎÏ€ÏâÏFЪÐÅÑSÒ@Ó¹Ó ÔÚÔ<ÕÖiÖ�×ñ×JØ6ÙÚ{ÚêüŒýV– Q V Ä ã½ -ò)hÍ×/!#­(*+˜,™."3Ø7x8ç8@¸GÎK O¿RÃW�`Þf"iîjl*m©näoLr]uùuØvˆwèwhxOyz^z¢|ø|ß}}X†¦‰‰�îŽ�•’™\›Ð¡C¤ÊÔƔȲËÌêÐÚÛ_Ý{ÞBàbáõâ äæbæ!êýx¡ ý²  ‹%1&Ü&§'5(%)Ì)^*µ*+ß+Ä,ñ-¡.$3 6:­>@aCmD�E¸F<G¦H€IJ…JKL‚LjMáMÏNFOÂO�PûPTQ³QR{RÞR=S­STxTÓT†UöU[V´V WhW¹W°XY�YÙZG[Ç[1\–\]e]á]r_Ó_'`l`±`ó`7a{a¿abßb©cGe€eáeFfgQhÓhNi¦iPjµjkElPmn¬opgpÙpFqÁqr|rs…sÞy|i~–€™ƒ0‡±Š‹Ž“+–”œ�Á¢ §ÃªÌ°¸kǴ̰ÒÊÛ­ß è”îtñLòÊò-ó‹óôôãôIõ¿õƒ÷dønýÈý4þ ÿƃÿ‘N�ñÖ j ‘i2Ë5*–H¡´‚ Y!0"Ý"þ#Ü$'ë(«+—-Œ/¯3Ñ5™79Ó<Â@XAÇAÛFSJMbO S)Za_a©fßgéhjqk¶lnUo¤p™qÔrðt€wx‚xy„yèyDz¶z{â{>|°|}ež€&� ‚g‚Ô‚^ƒëƒz„ë„j…P†@‡½‡]ˆÐˆ5‰æ‰½‹ ŒdŒáŒ¯�†ŽÂ� �c£š¥~¦º§Ü¨Û©ÎªÆ«�¬…­J®ð®«¯ °š°;± ²ç²´`¶í·Î¸tÁ4ÇÝÇFÈ ÉÊÇÊ}Ë3̧ÌÍjÍçÍKÎÂÎ+Ï�ÏòÏXÐcÑþÑVÒÓ­Ó'ÔöÔ´Õ²ÖOåyéîõðõ’ø84¶Fÿ"�%g*ù-•5:øCùI"RïS¾T<VDX^Y¾YZàn¿q¥y·€f„ÛŠÛ�Õ’Õ•¶›9 _£Ý§V«›¬R­ú­Ê®ˆ¯ã¯F°±[±«±ñ±L²2³´˜´¡µf¶°¶¸�º[½¾Í=Ó;Ô›ÔqÕLÖE×÷Û…Ýíæ4ñMórõ�ûl  \ « ”3ÂÖæuÍ„ '!6"Å#i')–*T,Ä83<4=p>ZA-BÒBDÐDfHëIÚJ°LŽMONdOñOjPQRÿRGT7U!V!WîW·XQY|ZT[\î\©]|^_á_ƒ`Qapbvc}gLhïhÙi¨l°n%s¯s¯u:vØvªxÏyìz|/}L~k�€©‚@„d…††ÿ‡v‰™Šº‹7�²Ž#�Ù�É�~‘Í‘.’u’v¢¦Ú§x­œ®?³b´cµÁ¶V¼ ¼æ½ê¾b¿lÀ(ÁäÁÃOÅÅÅ|ÆçÆçÇIÉ¿ÒuÓàÓùÔºÕ ÖýÖÈ×3ØpÙ×Ù*Ú"ÛØÛCÜÝ‚ÝÕÝaÞeßÐߨàábáîáòâ]ã5äœäïäÝ哿þæÛçBè•èƒé†êñêÈë’ìîìxöo÷óúl%î¦ M fÚbÔ0(ž&˜ö‰z"É‚ L!Ó#&&»&}'4(ü(à)+m,Œ-Y.5/ç/Ï0”1ú1{2ü2}3þ3´4¤5@6Øw4xŒzœ|œ~ø€´�_‚ï‚fƒÙƒ�„ …k…5†ê†'‡u‡Ê‡C�T�ý’"–—ü˜n›Ÿ¢§r¨œªs®²º¸‰¼½°½>¾Ö¾]¿ø¿†ÀÁ¡Á$­ÂÃ„ÃøÃ`ÄEÇȲÈ÷È=É„ÉÓÉ"ÊoÊ´ÊýÊNËIÌ±Ì ÍjÍ)ΆÎöάσÐßÐ4ѯÑúÑHÒÞÒ2ÓØÓªÔ'ÕîÕPÖ"ן×bØïÙÏÛ„Ü<ÝœÝÞfÞîÞ_ß·ßà½à–áâlâƒãéãOäéäOåµåsé=êºêë[ë¯ëì[ì®ìíæíƒîíî{ïÙïðjð¿ð‰ñþñSò¨òþò­óô²ôAõ ö–öÙö/÷´÷Oø½ø&ù´ùCú—ûóûQü°üýrýÒý6þ¡þ¶ÿwîO9@¡aÂ#ߊpæ– ì O §  _  8ã'½ŒSCŸJ�ÖHˆÈ}à OÌ  L Œ J!�!Ö!"b"ê"*#j#ª#ê#•$Û$ %“%Ó%&É&'U'›'(X(˜(Ø(q)ø)+d+Ð+A,¡, -%/-=1BT¼\Ž_¯bÃeOhkmrnZq³sSvxÍyôzP}š€Œ�U‚û‚¡ƒˆ„£…q†G‡ñ‡uˆ‰„‰é‰sŠ‹½‹ëŒ…ŽÔ�]“´–˜â˜¹™™š›1œÔœ> Ú Š¡æ£¥Ä¥Õ¨w©;«‹¬˜­w®×®¯-²b´å´¶³¶^¸Œ¹¹º ¼½ÿ½X¾À¾¿i¿Û¿4À’ÀçÀ;Á”ÁóÁOÂÝÂ2ÃüôÄÅNÅàÅ2ÆqÆÃÆÇ«ÉwÊÝÊGÓÔ\Ö2ù*ûèþµÿôŸ;zÈGæ ´ »‰Åã é ó&Á'¬(z)+¸,¨.v/“4a5Ç5*CøC|IJJçJ„K‹OXP·R„SèZµ[–`ca&… †p†ý†¹‡nˆÿˆ�‰VŠ#‹¿‹[Œ„–P›êžiŸÙ§§¨°®}¯±ß±ó³Vµu¶(ÞfßxàFáTâ"ãdæÑé¬ìÑïéøhù3ÿgòÀ`i�´ùŸkzG® )"M#$€%û&(ì(U*Ó+ú,È-1/³02š3Á4�5ø6z8>: ;q;ÊA—B¡RoSRWæZ_Ñ_CabþbÌc¯g|hi´itˆA‰§‰9‹ŒlŒÝ˜Ã™±£¤ž¥„¦¨©Ó©Âª�«|¬J­‹°X±dµ1¶·¹ó¹Qº&¼G½X¾%¿)ÀöÀ\ÁNÂÃÄãÄIÅÖÅrÆvÇCȩȩè ëWì‰ l : × tå‚Ò+á™»ˆîm$:%Ž3[4ü7);²>€?n@<AIBCµDƒEâF£G‚HhI6J#KñKMÜMÙN§ODPïP|SbTÿTœU]»]W^è^x_jab±bBcÒcKiQlØn,q¡rÈs–t—u}vãvqwxeyèyvz!{š| ~��Œ�t‘´ß´Eµ½¶#·z¹Hº‰¼W½ä¿ÌÀšÃñÅXÇiÈÉèÉ-Ì>ÍôͽÎàêÅëÛï?ó÷Ù½YõcØec1!Ð!!%ï%P&Ž)ƒ*O+k,7-A. /801O23E45U6!7DâDeI3JÛN†O1PæPwQR`caÉaVbc¶cGd×d¬fygh±hziGjCo¹oGpóp©q;rÌr}vóv�w-xãxuyz‡{m|Ä|C}Æ}I~Ì~€Ì€_�º�•‚†ƒK„R…0†¢†5‡È‡[ˆîˆx‰‚ŠñŠ›‹KŒ6�³Ž���»�Ï‘�’ø“•„–h—Á—@˜Ã˜F™É™|š›É›\œ·œ’�ƒžHŸO -¡Ÿ¡2¢Å¢X£ë£u¤¥î¥˜¦@§+¨¨©vª«°«Ä¬’­å®è¯ÁæÁ½ÂæÅÊÆfÇÈZÍ>Î-Ó³×~ÛŸß á�áHâýâŽãä-åúå çèçñý<é•Kœ ‚  Ë � ƒi²hÜyc1ó Û!–7|89¶9IR¿R†S#TÀTÌbšc7dÔd�pkqr¥r‰sVtYu:w°?ÇÃF%¨m¸¥¸Ô¸ ¹6'Æ',’ âY|6wáÝÒüÀ $H& )… m† Gà fÄ ‹Ç ê bõ Zú 2 ñm Yp çu ‚w 7x Ø ¥‚ |ƒ R† )‡ _‰ 6Š *Œ � š� Ì� ž� ¡‘ ê‘ g” ;— *˜ Ž˜ š± ³ · ’Ü x( mu <… Ö… ¤’ B˜ ™™ s4�>ËC1DtE6FGHÂH“I1JDJK(K«W)X|}�ædé�+ä+þ-wCWÆW{]ö]q^)bëbÏcñd“gdhàh„k\l^mGnUojq©s"w‹ñbò£÷zøJþëÿ” ¨Š@<ï$ÔAESÏf»pöq0s©x[z>}³~…M‡B‰îŒÅ��,–韟 Ñ«¢¬ôÇLÈ$ÉÊÕÊ‹ËUÌÁÌXÎ5Ô ÕÂÕmÝïÞ”;ýSÔT`UQVhW[XZ>ZeZ߬¸°y²@³´ž´¾¶æ¶·“¹ùÔ»ƒ¼+ÆÎÓHÔGÙÚ)ÒEÐìøEî–! Q?&@Â@hAÞBDeFÎF»L‹gbhühÑŽ(�ô��‘£” i¡¨„­”¯þ°M³n´oµç¶6¹4º­ºA»¹»¸¼úÁ.ÃNÄõÆõÇAÐÇÑ)ÒâÒÖ|Ö5×5Ú¡ÚEÛàÝÒÞmá_âúä\åæ èéóé¾íSçÞŽ _!t.I/0ö0§12ˆ2 3Š3 4Ó4æ4¸5úvAxÔx�yú‚w…P†.ŠD–ÄUÅøÆSÇ8ÈJÈxË‹ËÚà„â¬âãgäóåµçééPê†ïËðœñMõöNúûú]µ¢å›µNªáÓZ— m"õ#,%&¦'ã(|)*§*4-.°€®�c‚††^‡ˆ‹ˆ.‰“‰ø‰ŠŠ‹á�öœ®¬׬Ä­ú®Œ¯o´ò´.¼B¼+½§½t¿>ÃÄ¿ÄËÄ¡ÈCɸɌÊfÒßÒTÓ'Ô‚Õj÷Éø?ùQúþþõþÈÿv‹¬ÁNü‰œJ_×꘭%9†0 | ó È L Á 6 n ¦ ß QÈœØ#·³) Ý$‰&'Õ'B(¹(Ž)(*-+Ç+Ì,$-m-Å->.µ.–2)4 4v5>BÀB7CJHI‰I_JôJ KØN"O˜OkPÖPLQžQÖQNRÄR”WRX7YZZõZŸ_-`£`ûƒ¨„½„5…J…†v† ‡߇ô‡ƒˆ‰£‰í‰cŠ8‹Ì‹á‹\•Ä•'™Aš»�)žÿž!§o§æ§ü­G®½®�¯Û¯0°©°±ò±I²½²3³´–´jµµµÿÜhÝ;Þ¦Þyßà…àZáêáaâ;äoåèàè#ë»ëHîàî:÷(øþøuüÉþ@ÿùˆÿÔZ-¾m}ΣóÈ8 Þ²E«~‡ZîÁ i!<"ä"Z#-$À$“%;&'¶',(ÿ(”)h*+æ+�,-Û-p.D/ò/Æ0[1/2Ù2­3W4Î4¢576 7¹7k9Õ9K: ;å@aA×AÉQ7R®RMUIVïXÝY+^™^_å_%`~`Ù`Pa%b”b cßcnd§dàdeneßePf‰fÂf gFg¼g‘h%i:iʆ ˆ�ˆV‰ì‰ЊF‹Œý�çŽs‘õ—^˜s˜í˜™X¢G£¾£“¤¥4¥®¥Ã¥˜¦>§+¨›¨©ç©XªϪ¤«¬‰¬ׯ"°˜°k±"²™²³‡³Ú³-´e´°´û´qµD¶¬¶ ·-¸¹‰¹ºVºM»:¼ȼݼW½j½ï½e¾8¿À¿6À Á`ÁåÁ[Â.íÃ#ÄøÄOÅãÅøÅ…Æ ÇƒÇXÈ®ç@èµè¼êðSñôÎôv÷hù{ün³Žídù s  y O ä ù é­$ú�¤ Shâ÷ŒQfÀéRÈ�ˆ#$z$¼2%3›3÷5ó629 :º=H>¿>”?@{@PAßAVB+CwCðCKDÂD–EyFíF:G®GHŽHþHuIJJ¹J0KL¤LMðMoNæN¼O_PtPQtQìQdRýRSŒS¡SwT U!Uá[’\§\]4]È]Ý]l^ý^‹_á_V`ì`ayaŽa"b7bÆbWc hÍhâhgiîjxk©µ©‹ª «5«ëZ¬Ѭ©­I®ò®GÀ°À&ÁùÁTÂÈÂCÙÃïÃEÄ›ÄñÄhÅ}ÅõÅ Æ߯sLjÇZËÜÌñÌiÍ~Í©ÐýѨÖóÖ,Ú¾Ú‘ÛÜVÜ�ÜÈÜÝnÝÁÝúÝ3ÞˆÞßÞ à àáªánâƒâã£ã1äÄä:å æ æçç¸üpý˽ÒLaö»Ð’ 2 ¬ Á — , ñ  x“¨~Øí7¤ñ†›�ùp�q !e3ž4}5„67,7¦7»7‘8&9;9úPdQÊQßQYRnRÅR›S0TET®U·abbÙb¯cDdYd·ejfÛh:kêo3pªp€qr*r¸r s–sitðtdubvU�V¼pŒö%±6¢?Π[°й¹Ã¥âÍâ}úÀÈ…ÒVÔŠ÷nù4þéÿo½ ZP é ¼ùÖý$÷'Ì)k+î,¶2^BjH÷NŒP³W¾_„É{•r™Ü�B§®²¯²'´‹µÝ]Þ›ß}áxäDè`ë…î[÷–üõg Æë0Ó9Ÿ{â ]"N$´%/'!)Š*,ý-f/è0Q2Ï3Ä5-7‹9AêQ˜U:YL^`Hbdê† ŠŽy¢µ¤ɦN¨ ªÇ«÷¯�±e¶P·<¹‡º]¼нZ¿€ÁNçÆÎçØè=ð”  += ¨#Ü2B6}9Û=·?sANC¶EGÐG±HmJ(LN&Q\­_-hkkmßorqërÌtDxf{ß|ÌŒu�4³mµã¸ºݾßÁéÄCÆ+Êê4î ñpõPÿLÌk G$(À)‚+j-A/91N3C5¿BEÎMs_fæh4nnuÖ�ð�ñ’˨嫿­gÀÂéÂzËÑÈÖLÚ³Û.àRä.æ6çæü벘W­¯…3Q×a×eÙrŠt“u÷TtVô»cé%¤6•?Á N°}¹¬Ã˜âÀâpú ³ÈxÒIÔ}÷aù'þÜÿb°þMC Ü ¯ìÉð$ê'¿)^+á,©2QB]HêNP¦W±_ „¶‰n•e™Ï�5§®¥¯²´~µÝPÞŽßpákä7èSëxîN÷‰ü èZ“¹Þ#Æ,’nÕ P"A$§%"')}*û+ð-Y/Û0D2Â3·5 7~9ø@ÝQ‹U-Y?^û_;bôc݆ÿ‰Žl¢¨¤¼¦A¨ý©º«ê¯€±X¶C·/¹zºP¼}½M¿sÁAÚÆÁçËè0ð‡ ý0ü›#Ï256p9Î=ª?fAAC©EGÃG¤H`JLNQô[ _ hk^mÒoeqÞr¿t7xY{Ò|¿Œh�'³`µÖ¸rºоÒÁÜÄ6ÆÊê'î“ñcõCÿ?¿^ :$(³)u+]-4/,1A365²B EÁMf_ fÙh'nauÉ�ã�ä’¾¨Ø«Ù­ZÀ ÂÜÂmËõлÖ?Ú¦Û!àEä!æ)çÙüÞ¥‹J ¢x3 QÊaÊeÌr}t†u‡ Š ‘ • œ £ § « ¸ Â É Õ Ü ç õ ù ý       ! % ) - 1 5 9 = A E I M Q U Y ] a e i m q u y } � … Œ � » Î ß ô  - B R V ] i z � – ¦ ­ ¼ À É Ð × ì   A W [ l p w † �   ³ Å Ò à ö ,:L\o}Š�¡¥´½ÄÏÖÝìóú "=ARcgn‚“¨ÁØó-9\`h‡‹“›£§¯¼ÄÚîò3K\ds…•©¹½ÅÉàø'>S`p‚ž´¼ÐÔÜàñ$1BO`dlp}‹™¡©¶ºÂÆÎÖÚåñ!9Thlzƒ‹�Ÿ¤©»ÃËÓÛãèð  (05:J]ejoty~†Ž–ž¦³¸½ÂÇÌÑÙÞãèíò÷ü $).38=BGLQV[`ejoty~ƒˆ�’—œ¡¦«½ÔÙáéñù !)19AIQY^ty~”™žÀÅçì(Ch~‘¬±ÌÑâ÷ü  5Jbgz‚‘£¨°¸½ÇÑÙáé6;T�˜­ÄÌßäöû-HPg€™ž¦®¶Ñéü,<Wz¡©±¶¾Òäéñù 7Cbx™ºÙáöþ'7<_yžÃæ%>FKPX`hpx€ˆ�•�®Øàý # + 8 = B G L Q Y | ¢ Ï Ô Ü á é î û !!$!,!1!9!>![!q!v!{!ƒ!�!’!¡!µ!Æ!×!é!û!"""/"I"["j"y"‰"™"ª"¼"Ä"Ó"ã"ë"ð"## ### #%#*#/#4#9#>#C#H#M#R#W#\#a#f#k#s#{#ƒ#‹#“#›# #¨#°#¸#À#È#Ð#á#ë#ó#û#$$$#$($7$F$N$S$[$c$k$s${$€$…$�$•$�$¥$¸$Ë$Û$ï$÷$ü$% %%%3%;%C%K%P%W%_%d%i%n%s%x%}%‚%‡%Œ%‘%–%›% %¥%µ%É%ß%ä%é%ù% &&&&;&[&`&|&�&‘&¡&°&µ&º&É&Î&Ó&ì&û&'' '''' '%'*'/'4'9'A'F'K'P'U'Z'_'d'i'x'€'”'Ÿ'ª'²'·'¿'Ä'Ì'Ñ'Ö'Þ'ã'ë'ð'ø'ý'( ((((/(4(9(A(F(N(S([(`(o(t(y(~(ƒ(ˆ(�(’(´(¹(¾(Ô(Ù(Þ(æ(ë(ð(õ(ú(ÿ() )%)*)/)4)B)G)L)Q)V)[)z))›) )¥)É)Î)Ó)ú)ÿ)*3*U*Z*k*‡*®*³*Ù*Þ*ã*è*+ +$+)+G+L+T+Y+^+c+h+m+r+w+|+�+†+‹+�+•+š+Ÿ+¤+©+®+³+¸+½+Â+Ç+Ì+Ñ+Ö+Û+à+å+ê+ï+ô+ù+þ+,, ,,,,!,&,+,0,5,F,\,d,w,|,„,Œ,”,œ,¤,©,±,¹,Á,É,Ñ,Ù,á,é,ñ,ù,- --&-.-6->-K-S-[-c-q-y-�-‰-Ž-–-©-À-Ô-õ-ú- .%.A.Z.€.….�.•.�.±.Ì.Ñ.ã.ë./ //// /(/0/=/P/X/`/e/~/ž/£/Á/Æ/ß/ô/ù/0 000(0-050=0E0M0R0Z0_0d0l0t0y0�0‰0‘0™0¡0¦0®0¶0¾0Æ0Ë0Ó0Ø0Ý0å0í0ò0ú01 1111'1/171<1D1L1Q1Y1a1i1q1v1~1†1Ž1–1§1¬1´1¼1Á1É1Ñ1Ù1Þ1æ1î122242J2d2�2—2®2¶2Í2â2ê2ò2ú2 33)3C3K3e33�3¾3Ø3ó3û34/4L4Q4V4s4x4}4�4ž4±4Æ4à4è4í4ò4ú45 5555!575R5Z5_5d5l5t5‰5Ž5“5˜5�5¢5§5¬5±5¶5»5À5Å5á5æ5ë5ó56$6)686=6B6X6]6b6g6l6q6v6{6ƒ6Ÿ6¾6å6ê6ø6ý677 773787N7S7X7h7m7r7w7|7�7†7‹7�7•7š7Ÿ7¤7©7®7³7¸7½7Â7Ç7Ì7Ñ7Ö7Û7à7å7ê7ï7ô7ù7þ788 8888!8&8+80858:8?8D8I8N8S8X8h8p8x8€8ˆ8�8˜8 8¨8°8¸8À8È8Í8Ò8Ú8â8ç8ü89"9'9/979?9G9O9W9_9g9l9q9y9~9†9Ž9–9›9£9½9Ò9ì9::>:C:K:S:[:c:k:p:x:}:‚:Š:’:š:¢:ª:¯:·:Û:à:è:ð:ø:;;;; ;(;0;8;=;E;J;g;‚;¥;ª;²;º;Â;Ê;Ò;Ú;â;ê;ò;ú;<<<<+<M<U<Z<b<j<r<z<‚<Š<’<š<¢<ª<²<Í<Ý<â<ç<ì<ñ<ö<û<== =====#=(=-=2=7=<=A=F=K=P=U=]=e=p=u=}=…=�=•=š=¢=ª=²=·=¿=Ä=É=Ñ=Ù=á=æ=î=ö=þ=>>#>+>3>8>@>E>J>R>Z>b>j>o>t>|>„>Œ>”>™>¡>©>®>¶>¾>Ã>È>Ð>Ø>à>è>÷>ü>? ????&?A?F?N?V?[?`?h?p?u?}?…?Š?�?—?Ÿ?§?¯?·?¼?Á?É?Ñ?Ù?á?é?ñ?ù?@@@@@&@+@3@;@@@H@P@U@]@e@j@o@w@@‡@�@—@œ@¡@©@±@¹@À@È@Ð@Õ@Ú@ß@ä@é@î@ó@ø@ý@AA AAAA A%A*A/A4A9A>ACAHAMARAnAsA{AƒA›A£A¿AÎAÖAÛAàAèAðAøABBBB B%B-B5B=BEBMBUB]BeBmBuB}B…B�B•B�B¢B¶B¾BÆBËBÛBãBëBÿBCC$C,C4CMCMHMMMRMWM\MaMfMkMsM{MƒM›M M¥M®M³M»MÀMÈMÐMÕMÞMíMûMN)N.N3N;N@NHNPNXN]NeNmNrNwN|N�N†N‹N�N•NšNŸN¬N¸N½NÅNÎNÖNÞNéNîNöNÿNOOO!O*O2O7OSCSHSMSRSWS\SaSfSkSpSuSzSS„S‰SŽS“S˜S�S¯S´S¼SÄSÌSÔSÜSäSéSîSöSþSTTTT&T.T3T;TCTKTST[TcTkTsT{TƒT‹T“T›T£T¨T°T¸TÀTÈTÐTØTàTèTðTøTUUUU U(U0U8U@UEUMUUUZU_UwU|U�U‰UŽU–U³UÀUÙUáUøUV+V0V8V@VHVPVXV]VbVjVrVzV‚VŠV�V”VœV¤V¬V±V¹V¾VÆVÎVÖVÞVãVëVóVøVWWW+W=WBWGWLWQWVW[W`WeWjWoWtWyW†W’W—WŸW¨W°W¸WÀWÈWÍWÖWçWýWX/X7XHXMXUXjXrXzXXˆX�X•XšX¦X®X¼XÁXÉXÎXÓXØXÝXëXùXYYY$Y)Y1Y6Y;YCYUYZY_YdYiYnYsYxY}Y‚Y‡YŒY‘Y–Y›Y¦Y¶Y»YÀYÅYÊYÏYÔYÙYáYìYùYZZ&Z+Z9ZMZRZZZ_ZgZlZ~Z�Z Z´Z½ZÅZØZáZéZñZ[ [$[,[1[A[W[\[c[h[p[u[}[…[�[’[š[¢[ª[¯[·[¿[Ç[Ì[Ô[Ü[ä[é[ð[õ[ý[\\%\*\2\7\?\G\W\m\r\z\�\•\ž\£\¬\´\¹\Â\Ç\Ï\Ô\Ü\ä\ì\ñ\ù\] ]]]] ]%]*]/]4]9]>]C]H]M]R]W]\]a]f]k]s]|]„]Œ]”]œ]­]Æ]Î]Ó]ä]ì]^%^*^/^H^f^k^p^^‡^�^”^™^ž^³^»^Ã^È^Í^Ò^×^à^ó^û^ ___1_9_D_P_U_]_e_p_u_}_…_�_’_š_¢_§_¯_·_¿_Ç_Ï_Ô_Ü_á_é_î_ö_þ_```` `(`-`<`Q`V`g`o`t`€`ˆ`‘`¦`¶`Ï`è`ð`õ`ý`aa3a;a@aYa^acakataŠa�a”aœa³aÉaæaïaôaüab bbbb b(b0b8b=bEbMbRbZb_bgblbtb|b„b’b—bœb¤b©b¾bÃbËbÓbØbàbèbûbcc cccCclcqc~c¥c®c³c¸cÀcÈcÍcÕcécd dd)d1d6d;d@dEdJdOdTd\dddldtdˆd�dŸd§d¿dÇdÚdâdee!e)eCeKeve~e¤e¬eÆeÎeÖeàeîeóeûefff%f*f2f:fBfJfOfWf_fgflftf|f„fŒf‘f™f¡f©f±fÇfÏf×fàféfîföfþfgggg$g,g4gpFpNpVp^pcpkpsp{p†p‹p“p›p£p«p³p¸pÀpÈpÐpØpÝpåpípõpýpq qqqqq#q(q-q2q7qtFtKtStXt`tot~tƒtˆt�t’t—tœt¤t¬t±t¶t¾tÆtËtÐtØtàtétñtötûtuu uuuu$u,u4u9uAuIuRuWu_uguluquyu�u†uŽu–uŸu¤u¬u´u¹u¾uÆuÎuÓuÛuãuìuúuÿuv vvvv v(v-v5v=vBvJvRv[vhvmvrvwv|v�v†vŽv–v›v v¨v°vµv½vÂvÇvÏvÔvÝvâvçvìvñvövûvww wwwww#w(w-w2w7wŠCŠHŠQŠgŠlŠqŠ’Š—ŠœŠ¡Š¦Š«Š°ŠµŠºŠ¿ŠÄŠÉŠÎŠÓŠÛŠàŠåŠêŠ‹ ‹‹(‹0‹8‹K‹S‹[‹f‹p‹y‹~‹‡‹’‹›‹©‹¸‹½‹Æ‹Ï‹Ø‹ã‹ì‹õ‹ŒŒŒ"Œ+Œ4Œ=ŒHŒQŒZŒcŒrŒ‚Œ‡Œ�Œ™Œ¢Œ«Œ´Œ¿ŒÈŒ×ŒèŒíŒöŒÿŒ���,�5�>�C�L�U�^�g�o�x�}�…�Ž�–�›�£�«�º�É�Ø�è�ø�ŽŽ ŽŽŽŽŽ#Ž(Ž0Ž8Ž@ŽLŽTŽaŽiŽrŽ‚Ž’ŽšŽ£Ž«Ž°ŽÁŽÐŽäŽøŽ���(�9�B�V�e�}�‚�Š�’�—�œ�¤�¬�´�¹�Â�Ê�Ò�Û�ã�è�ð�õ�ý�� ����'�,�4�9�A�F�N�S�[�`�h�q�y���†�Ž�–�Ÿ�§�¯�·�¿�È�Ñ�Ù�á�æ�î�÷�‘‘‘"‘1‘9‘B‘J‘O‘T‘\‘a‘i‘q‘y‘�‘†‘Ž‘Ÿ‘¤‘¬‘´‘¹‘Ú‘ß‘ç‘ï‘÷‘ÿ‘’ ’%’*’2’D’I’N’S’X’]’e’s’|’„’Œ’‘’™’¢’«’³’»’Ã’Ì’Õ’Ý’å’ê’ò’÷’ÿ’““#“,“5“F“K“P“\“a“o“‚“Š“�“¿“̓ԓܓä“ì“ð“ø“ü“””””%”-”1”9”=”E”[”c”k”…”š”§”³””ʔҔá”å”í”õ”ÿ”•••*•>•G•O•W•l•‡•‹•“•®•¶•¿•ʕΕ֕ޕê•ò•û•ÿ•– ––$–)–1–5–9–A–E–I–Q–U–Y–a–w–|–„–ˆ–Œ–”–˜–§–¬–´–¸–¼–Ä–È–Ô–Ù–á–å–é–ñ–õ–— ———*—2—6—>—B—J—_—j—o—w—ƒ—ˆ—�—¥—²—É—Ò—é—ò— ˜˜&˜1˜5˜=˜A˜I˜Y˜a˜o˜t˜|˜�˜—˜œ˜¤˜­˜µ˜½˜Å˜Ö˜ß˜î˜ö˜û˜™™™™&™/™8™L™[™d™�™”™®™¶™Ì™Ü™á™é™î™ö™ ššš#š+š0š8šAšIšQšYšašfšnšvš~š�š•š�š¥š­š²šºšÂšÊšÜšäšéš÷šÿš›››!›&›.›3›;›D›L›W›_›g›o›x›€›ˆ›�›˜› ›¥›­›²›º›¿›Æ›Ï›×›ß›ä›ì›ñ›ù›œ œœœ5œDœIœQœVœ^œcœkœpœuœ}œ†œŽœ“œ›œ œ¨œ±œºœ¿œÇœèœ÷œ�'�2�E�J�R�W�_�d�l�t�}�†�’�ž�¹�Å�Ê�Ò�×�ß�ñ�ö�þ�ž žžž+ž0ž8ž=žBžJžOžTž\žažhžmžužzž‚žŠž�ž”žœž¡ž©ž®ž¶žÎžÖžÛžãžèžðžõžýžŸŸŸŸ$Ÿ,Ÿ1Ÿ9ŸLŸTŸ\ŸdŸnŸvŸŸ„ŸŒŸ”ŸœŸ¤Ÿ­ŸµŸ½ŸÂŸÊŸÏŸ×ŸàŸèŸíŸõŸúŸ       % - 6 D M V _ d l q y ~ † ˜ © ® ¶ Â Ç Ï Ô Ü ÷ ü ¡ ¡¡'¡/¡4¡<¡E¡P¡Y¡^¡f¡t¡�¡�¡’¡š¡«¡°¡¸¡½¡Å¡Ê¡Ò¡ä¡ì¡ô¡ü¡¢ ¢¢¢¢'¢/¢8¢@¢I¢N¢V¢^¢f¢}¢…¢�¢–¢ž¢§¢°¢µ¢½¢Å¢Í¢Ú¢â¢ê¢ó¢û¢££££&£.£6£D£M£R£Z£b£j£s£…£Ž£–£ž£¦£·£¼£Ä£É£Ñ£Ú£â£ê£ù£¤ ¤¤¤"¤*¤2¤:¤B¤J¤R¤Z¤b¤j¤o¤w¤|¤„¤‰¤�¤™¤¡¤©¤±¤¶¤¾¤Ã¤Ë¤á¤é¤ò¤¥¥¥¥"¥+¥3¥8¥@¥H¥M¥U¥]¥i¥r¥{¥ƒ¥‘¥š¥¢¥ª¥²¥º¥¿¥Ç¥Þ¥æ¥ë¥ó¥¦¦¦¦&¦:¦B¦R¦[¦c¦k¦p¦x¦†¦‹¦“¦˜¦ ¦´¦¹¦Á¦Æ¦Î¦á¦æ¦î¦ó¦û¦§§"§'§/§4§<§\§a§i§n§v§•§š§¢§§§¯§´§¼§Ë§Ð§Ø§Ý§å§ú§ÿ§¨ ¨¨(¨-¨5¨:¨B¨G¨O¨]¨b¨j¨o¨w¨‹¨�¨˜¨�¨¥¨¸¨½¨Å¨Ê¨Ò¨×¨ß¨è¨í¨õ¨ú¨©©© ©%©-©B©G©O©T©\©w©|©„©‰©‘©«©°©¸©½©Å©Ê©Ò©ä©é©ñ©ö©þ©ªª#ª(ª0ª9ªBªKªPªXª]ªeªjªqªzª‚ªŠª�ª—ªœª¤ª­ªµª½ªÂªÊªÏª×ªíªõªýª««««(«-«5«=«E«M«g«o«w««ˆ«�«™«¢«§«¯«·«¿«Ç«Ð«Ù«è«í«õ«ú«¬¬¬&¬/¬E¬N¬V¬[¬c¬h¬p¬¬�¬•¬š¬¢¬§¬¯¬¼¬É¬Ñ¬â¬ë¬ù¬ ­­!­)­=­E­X­`­r­z­ƒ­‹­“­¥­¹­Â­Ë­Ð­Ý­å­ê­ò­÷­ÿ­® ®®®®'®/®8®@®H®]®f®n®w®®„®Œ®‘®™®ž®¥®®®·®¿®Ç®Ð®Ø®á®æ®î®ó®û®¯¯¯'¯,¯<¯A¯I¯N¯S¯X¯`¯e¯j¯r¯‚¯�¯˜¯ ¯²¯Ä¯×¯Ü¯ä¯é¯ñ¯° °°°°&°+°0°8°L°T°\°d°l°q°y°�°’°¢°´°¹°Á°Æ°Î°Þ°ç°ï°ô°ü°± ±#±+±3±8±@±E±M±V±^±c±k±p±x±�±Š±�±—±§±¬±´±½±Â±Ê±Ó±Ü±å±î±÷±² ²²-²5²P²U²Z²b²g²o²‚²‹²”²™²¡²ª²²²»²Ä²Ë²Ó²Ø²à²è²ñ²ú²³³³³³3³;³D³M³[³`³h³p³y³‚³Š³�³”³œ³¡³·³¿³È³Ð³Õ³Ý³â³ê³´ ´´´"´*´/´7´<´C´X´`´i´q´v´~´ƒ´‹´ ´¨´°´¸´½´Å´Ê´Ò´×´Þ´ã´ë´ð´õ´ý´µµ%µ-µ2µ:µ?µGµLµSµ\µaµiµnµvµƒµŒµ•µžµ¦µ®µ·µ¿µÈµÑµÚµâµëµôµýµ¶¶¶&¶/¶8¶A¶F¶N¶[¶`¶h¶q¶z¶‚¶Š¶“¶¦¶²¶¾¶Å¶Í¶Õ¶Þ¶ç¶ð¶õ¶þ¶· ··· ·%·*·2·K·T·Y·a·f·n·s·{·€·…·�·¥·®·³·»·À·È·Í·Õ·Ú·ß·ç·ð·ø·¸¸ ¸¸¸¸$¸,¸1¸9¸A¸F¸K¸S¸f¸n¸w¸†¸‹¸“¸›¸¤¸¬¸µ¸º¸Â¸Ç¸Ï¸Ô¸Û¸ä¸ì¸ô¸ù¸¹¹¹¹¹'¹,¹4¹9¹A¹J¹R¹Z¹b¹k¹s¹|¹…¹Š¹’¹š¹¢¹ª¹³¹»¹Ã¹Ë¹Ô¹Ü¹å¹î¹ó¹û¹º ººº%º1º9º>ºFºKºSºgºpº‚º‡º�º”ºœº­º¶ºÍºçºìºôºùº»»%»*»2»;»D»L»Q»Y»^»f»w»€»Œ»ž»§»¹»Í»Ò»Ú»ã»ì»ñ»ù»¼ ¼¼¼'¼7¼E¼S¼X¼`¼e¼m¼}¼…¼‘¼–¼ž¼£¼«¼½¼Å¼Î¼Ó¼Û¼à¼è¼í¼õ¼þ¼½½½"½*½/½7½<½D½I½N½S½[½m½x½}½…½�½•½�½©½®½¶½»½À½È½Í½Ò½Ú½ß½ç½ì½ñ½ù½¾ ¾¾¾¾$¾)¾.¾6¾;¾@¾H¾M¾U¾Z¾b¾r¾{¾€¾ˆ¾“¾˜¾ ¾¥¾ª¾²¾·¾¼¾Ä¾É¾Î¾Ö¾Û¾ã¾è¾ð¾¿¿¿¿¿¿'¿,¿1¿F¿N¿W¿_¿d¿l¿t¿”¿œ¿¥¿µ¿Å¿×¿Ü¿ä¿ì¿À ÀÀ#À,À1À9ÀAÀ_ÀgÀpÀyÀ~À†ÀŽÀ¢À§À¯À´À¼ÀÁÀÉÀØÀàÀåÀêÀòÀ÷ÀüÀÁ ÁÁÁÁ"Á'Á/Á=ÁBÁJÁOÁTÁYÁaÁfÁkÁpÁwÁ|Á„Á‰ÁŽÁ“Á›Á®Á¶Á¿ÁÇÁÌÁÔÁÜÁôÁüÁ ÂÂÂ"Â+Â3Â<ÂDÂIÂQÂlÂtÂ}…Š’šŸ§¯ÂÀÂÅÂÍÂÒÂÚÂßÂçÂìÂó ÃÃ1ÃFÃOÃTÃ\ÃaÃhÃ~ÆËÓØàúÃÃÃÌÃáÃéÃòÃÄÄ)Ä1ÄBÄJÄRÄWÄ_ÄdÄlĉđĚğħįĴļÄÄÄÝÄåÄíÄùÄ ÅÅÅ!Å)Å:Å?ÅGÅLÅQÅYÅ^ÅpÅxŃŋÅ�ŘÅ�ťŭŲźſÅÇÅÏÅÔÅÜÅäÅéÅñÅöÅþÅÆÆÆ!Æ&Æ.Æ<ÆAÆIÆNÆVÆ[ÆcÆkÆpÆxÆ}Æ…Æ�ƒƚƢƧƯƴƼÆÄÆÔÆÜÆäÆúÆÿÆÇÇÇÇ$Ç;Ç@ÇHÇPÇXÇ]ÇeÇmÇuLjÇ�Ç•Ç�ǥǪDzǺÇÂÇÖÇÛÇãÇëÇóÇøÇÈÈÈÈ&È+È0È;È@ÈEÈTÈYÈ^ÈkÈpÈuȆȋÈ�ȟȤȩȺȿÈÄÈÛÈàÈåÈøÈýÈÉÉ É%É;É@ÉEÉYÉ^ÉcÉ{ɀɅɛɠɥɿÉÄÉÉÉáÉæÉëÉÊ ÊÊ+Ê0Ê5Ê:Ê?ÊGÊLÊQÊYÊ^ÊfÊkÊpÊxʇÊ�ʔʙʡʦʫʲʷʿÊÄÊÉÊÑÊäÊíÊòÊúÊÿÊËË*Ë/Ë7Ë<ËDËdËiËqËvË~˃ˋ˜˿ËÄËÉËèËíËöËÌ ÌÌÌ!Ì)Ì1ÌDÌNÌSÌ[Ì`ÌhÌqÌvÌ~̃̈Ì�Ì•Ì�̸̫̰̽ÌÅÌÊÌÒÌáÌæÌîÌöÌûÌÍÍÍÍ$Í,Í4Í<ÍAÍIÍNÍVÍdÍmÍrÍzÍ͇͔ͤͷÍÊÍÏÍ×ÍÜÍäÍõÍþÍÎÎÎÎ"Î*Î8ÎAÎFÎNÎWÎ\ÎdÎmÎrÎz΃ΈÎ�ΙΞΦίδμÎÅÎÊÎÒÎ×ÎßÎäÎìÎÿÎÏ ÏÏÏÏ#Ï(Ï0Ï5Ï=ÏEÏJÏOÏWÏ\ÏdÏiÏqσψÏ�ϕϚϢϧϬϴϹÏÀÏÅÏÍÏÒÏÚÏâÏçÏìÏôÏùÏÐÐÐ%Ð-Ð2Ð:Ð?ÐGÐLÐTÐYÐ^ÐfÐ|ЇЌДЙСвзпÐÄÐÉÐÑÐÖÐÛÐâÐçÐïÐôÐüÐÑ ÑÑÑÑ#Ñ(Ñ0Ñ?ÑDÑLÑQÑVÑ^ÑcÑhÑoÑtÑ|Ñ�щёіћѣѨѰѵѽÑÂÑÊÑÒÑÛÑäÑìÑôÑýÑÒÒÒ!Ò*Ò3Ò8ÒAÒFÒOÒTÒ\ÒaÒiÒnÒvÒ~Ò†Ò‹Ò“Ò›Ò Ò¨Ò°Ò¸Ò½ÒÅÒÍÒÒÒÚÒßÒèÒðÒõÒþÒÓ ÓÓÓ!Ó*Ó2Ó7Ó?ÓDÓIÓQÓVÓ^ÓcÓkÓsÓxÓ€ÓˆÓ�Ó•Ó�Ó¥Ó»ÓÀÓÈÓÍÓÕÓÚÓâÓçÓïÓôÓùÓÔÔÔ#Ô(Ô0Ô5Ô=ÔVÔ^ÔgÔrÔwÔԇԌԔԜԡԩԱԺÔÃÔËÔÓÔÜÔåÔîÔ÷ÔÕ ÕÕÕ Õ%Õ.Õ3Õ;Õ@ÕHÕMÕUÕ]ÕeÕjÕrÕzÕÕ‡Õ�՗՜դլձչվÕÇÕÏÕÔÕÝÕåÕêÕóÕûÕÖ ÖÖÖÖ#Ö(Ö0Ö5Ö=ÖBÖJÖRÖWÖ_ÖgÖlÖtÖ|Ö„Ö˜Ö�Ö¥ÖªÖ²Ö·Ö¿ÖÄÖÌÖÑÖÖÖÞÖñÖöÖþÖ× ×××/×7×@×I×N×V×^×c×k×s×|ׅ׎דכנר׼×Ä×É×Î×Ö×ß×ò×÷×ü× ØØØ"Ø'Ø,Ø:Ø?ØDØRØWØ\ØxØ}؂؇،ؙؔ؞ئثسظؽØÅØÎØ×ØàØéØòØúØÙ ÙÙÙ'Ù0Ù5Ù:ÙBÙGÙLÙTÙcÙkÙsÙ�Ù†Ù�ٜٔ٤٬ÙÂÙÎÙÓÙÛÙóÙøÙÚÚ Ú)Ú8ÚAÚWÚ`ÚtÚ}ڔڜکڿÚÇÚÐÚéÚñÚùÚÛÛ0Û9ÛBÛKÛTÛ]ÛfÛoÛtÛ|Û�ÛŠÛ�Û—ÛœÛ¤Û©Û±Û¶Û¾ÛÆÛËÛÐÛØÛÝÛåÛêÛòÛ ÜÜÜÜ%Ü*Ü2ÜMÜRÜZÜ_ÜgÜ~܆ܟܤܬܴܼÜÅÜÎÜ×ÜàÜåÜíÜõÜÝ ÝÝÝÝ#Ý(Ý-Ý5Ý:ÝBÝJÝOÝTÝ\ÝmÝuÝ}݂݇Ý�ݔݙݡݦݮݳݻÝÃÝÈÝÍÝÕÝÞÝæÝïÝôÝùÝÞÞ ÞÞÞ Þ%Þ-Þ5Þ:Þ?ÞGÞYÞaÞnÞsÞ{Þ€ÞˆÞ�Þ•ÞšÞŸÞ§ÞÄÞÌÞÕÞÚÞâÞçÞïÞß ßßß#ß+ß0ß8ß@ßPßZß_ßjßoß~߃ߋß�ß•ß�ߢߧ߯ߴ߼ßÁ߯ßÎßßßèßíßòß÷ßÿßà àààà"à*à/à4à<àQàVàhàmàuàzà‚à‡à�à”àœà¡à¦à®àÄàÍàÖàÞàìàôà ááá%á*á2á7á?áDáLáQáVá^ápá|áˆá�á•ášá¢á³á»áÃáËáÐáØáíáòáúáâââââ%â,â3â9â?âEâKâQâXâ_âfâmâsâyââ…â‹â‘â—â�â¤â«â²â¸â¾âÄâÊâÐâÖâÜâãâéâïâõâûâãã ãããã%ã+ã1ã7ã=ãCãIãOãUã[ãaãgãmãsãyãã…ã‹ã‘ã—ã�ã£ã©ã¯ãµã»ãÁãÇãÍãÓãÙãßãåãëãñã÷ãýãä ääää!ä'ä-ä3ä:äAäHäOäVä]ädäkäräyä€ä‡äŽä•äœä£äªä±ä¸ä¿äÆäÍäÔäÛäâäéäðä÷äþäå ååå!å(å/å6å=åDåKåRåYå`ågånåuå|åƒåŠå‘å˜åŸå¦å­å´å»åÂåÉåÐå×åÞåååìåóåúåæææææ$æ+æ2æ9æ@æGæNæUæ\æcæjæqæxææ†æ�æ”æ›æ¢æ©æ°æ·æ¾æÅæÌæÓæÚæáæèæïæöæýæç ççç ç'ç.ç5ç<çCçJçQçXç_çfçmçtç{ç‚ç‰ç�ç—çžç¥ç¬ç³çºçÁçÈçÏçÖçÝçäçëçòçùçèèèèè#è*è1è8è?èFèMèTè[èbèièpèwè~è…èŒè“èšè¡è¨è¯è¶è½èÄèËèÒèÙèàèçèîèõèüèé éééé&é-é4é;éBéIéPéWé^éeélésézé�éˆé�é–é�é¤é«é²é¹éÀéÇéÎéÕéÜéãéêéñéøéÿéê êêê"ê)ê0ê7ê>êEêLêSêZêaêhêoêvê}ê„ê‹ê’ê™ê ê§ê®êµê¼êÃêÊêÑêØêßêæêíêôêûêë ëëëë%ë,ë3ë:ëAëHëOëVë]ëdëkërëyë€ë‡ëŽë•ëœë£ëªë±ë¸ë¿ëÆëÍëÔëÛëâëéëðë÷ëþëì ììì!ì(ì/ì6ì=ìDìKìRìYì`ìgìnìuì|ìƒìŠì‘ì˜ìŸì¦ì­ì´ì»ìÂìÉìÐì×ìÞìåìììóìúìííííí$í+í2í9í@íGíNíUí\ícíjíqíxíí†í�í”í›í¢í©í°í·í¾íÅíÌíÓíÚíáíèíïíöíýíî îîî î'î.î5î<îCîJîQîXî_îfîmîtî{î‚î‰î�î—îžî¥î¬î³îºîÁîÈîÏîÖîÝîäîëîòîùîïïïïï#ï*ï1ï8ï?ïFïMïTï[ïbïiïpïwï~ï…ïŒï“ïšï¡ï¨ï¯ï¶ï½ïÄïËïÒïÙïàïçïîïõïüïð ðððð&ð-ð4ð;ðBðIðPðWð^ðeðlðsðzð�ðˆð�ð–ð�ð¤ð«ð²ð¹ðÀðÇðÎðÕðÜðãðêðñðøðÿðñ ñññ"ñ)ñ0ñ7ñ>ñEñLñSñZñañhñoñvñ}ñ„ñ‹ñ’ñ™ñ ñ§ñ®ñµñ¼ñÃñÊñÑñØñßñæñíñôñûñò òòòò%ò,ò3ò:òAòHòOòVò]òdòkòròyò€ò‡òŽò•òœò£òªò±ò¸ò¿òÆòÍòÔòÛòâòéòðò÷òþòó óóó!ó(ó/ó6ó=óDóKóRóYó`ógónóuó|óƒóŠó‘ó˜óŸó¦ó­ó´ó»óÂóÉóÐó×óÞóåóìóóóúóôôôôô$ô+ô2ô9ô@ôGôNôUô\ôcôjôqôxôô†ô�ô”ô›ô¢ô©ô°ô·ô¾ôÅôÌôÓôÚôáôèôïôöôýôõ õõõ õ'õ.õ5õ<õCõJõQõXõ_õfõmõtõ{õ‚õ‰õ�õ—õžõ¥õ¬õ³õºõÁõÈõÏõÖõÝõäõëõòõùõööööö#ö*ö1ö8ö?öFöMöTö[öböiöpöwö~ö…öŒö“öšö¡ö¨ö¯ö¶ö½öÄöËöÒöÙöàöçöîöõöüö÷ ÷÷÷÷&÷-÷4÷;÷B÷I÷P÷W÷^÷e÷l÷s÷z÷�÷ˆ÷�÷–÷�÷¤÷«÷²÷¹÷À÷Ç÷Î÷Õ÷Ü÷ã÷ê÷ñ÷ø÷ÿ÷ø øøø"ø)ø0ø7ø>øEøLøSøZøaøhøoøvø}ø„ø‹ø’ø™ø ø§ø®øµø¼øÃøÊøÑøØøßøæøíøôøûøù ùùùù%ù,ù3ù:ùAùHùOùVù]ùdùkùrùyù€ù‡ùŽù•ùœù£ùªù±ù¸ù¿ùÆùÍùÔùÛùâùéùðù÷ùþùú úúú!ú(ú/ú6ú=úDúKúRúYú`úgúnúuú|úƒúŠú‘ú˜úŸú¦ú­ú´ú»úÂúÉúÐú×úÞúåúìúóúúúûûûûû$û+û2û9û@ûGûNûUû\ûcûjûqûxûû†û�û”û›û¢û©û°û·û¾ûÅûÌûÓûÚûáûèûïûöûýûü üüü ü'ü.ü5ü<üCüJüQüXü_üfümütü{ü‚ü‰ü�ü—üžü¥ü¬ü³üºüÁüÈüÏüÖüÝüäüëüòüùüýýýýý#ý*ý1ý8ý?ýFýMýTý[ýbýiýpýwý~ý…ýŒý“ýšý¡ý¨ý¯ý¶ý½ýÄýËýÒýÙýàýçýîýõýüýþ þþþþ&þ-þ4þ;þBþIþPþWþ^þeþlþsþzþ�þˆþ�þ–þ�þ¤þ«þ²þ¹þÀþÇþÎþÕþÜþãþêþñþøþÿþÿ ÿÿÿ"ÿ)ÿ0ÿ7ÿ>ÿEÿLÿSÿZÿaÿhÿoÿvÿ}ÿ„ÿ‹ÿ’ÿ™ÿ ÿ§ÿ®ÿµÿ¼ÿÃÿÊÿÑÿØÿßÿæÿíÿôÿûÿ %,3:AHOV]dkry€‡Ž•œ£ª±¸¿ÆÍÔÛâéð÷þ !(/6=DKRY`gnu|ƒŠ‘˜Ÿ¦­´»ÂÉÐ×Þåìóú$+29@GNU\cjqx†�”›¢©°·¾ÅÌÓÚáèïöý  '.5<CJQX_fmt{‚‰�—ž¥¬³ºÁÈÏÖÝäëòù#*18?FMT[bipw~…Œ“𡍝¶½ÄËÒÙàçîõü &-4;BIPW^elsz�ˆ�–�¤«²¹ÀÇÎÕÜãêñøÿ ")07>ELSZahov}„‹’™ §®µ¼ÃÊÑØßæíôû %,3:AHOV]dkry€‡Ž•œ£ª±¸¿ÆÍÔÛâéð÷þ !(/6=DKRY`gnu|ƒŠ‘˜Ÿ¦­´»ÂÉÐ×Þåìóú     $ + 2 9 @ G N U \ c j q x  † � ” › ¢ © ° · ¾ Å Ì Ó Ú á è ï ö ý      ' . 5 < C J Q X _ f m t { ‚ ‰ � — ž ¥ ¬ ³ º Á È Ï Ö Ý ä ë ò ù      # * 1 8 ? F M T [ b i p w ~ … Œ “ š ¡ ¨ ¯ ¶ ½ Ä Ë Ò Ù à ç î õ ü      & - 4 ; B I P W ^ e l s z � ˆ � – � ¤ « ² ¹ À Ç Î Õ Ü ã ê ñ ø ÿ     " ) 0 7 > E L S Z a h o v } „ ‹ ’ ™   § ® µ ¼ à Ê Ñ Ø ß æ í ô û  %,3:AHOV]dkry€‡Ž•œ£ª±¸¿ÆÍÔÛâéð÷þ !(/6=DKRY`gnu|ƒŠ‘˜Ÿ¦­´»ÂÉÐ×Þåìóú$+29@GNU\cjqx†�”›¢©°·¾ÅÌÓÚáèïöý  '.5<CJQX_fmt{‚‰�—ž¥¬³ºÁÈÏÖÝäëòù#*18?FMT[bipw~…Œ“𡍝¶½ÄËÒÙàçîõü &-4;BIPW^elsz�ˆ�–�¤«²¹ÀÇÎÕÜãêñøÿ ")07>ELSZahov}„‹’™ §®µ¼ÃÊÑØßæíôû %,3:AHOV]dkry€‡Ž•œ£ª±¸¿ÆÍÔÛâéð÷þ !(/6=DKRY`gnu|ƒŠ‘˜Ÿ¦­´»ÂÉÐ×Þåìóú$+29@GNU\cjqx†�”›¢©°·¾ÅÌÓÚáèïöý  '.5<CJQX_fmt{‚‰�—ž¥¬³ºÁÈÏÖÝäëòù#*18?FMT[bipw~…Œ“𡍝¶½ÄËÒÙàçîõü &-4;BIPW^elsz�ˆ�–�¤«²¹ÀÇÎÕÜãêñøÿ ")07>ELSZahov}„‹’™ §®µ¼ÃÊÑØßæíôû %,3:AHOV]dkry€‡Ž•œ£ª±¸¿ÆÍÔÛâéð÷þ !(/6=DKRY`gnu|ƒŠ‘˜Ÿ¦­´»ÂÉÐ×Þåìóú$+29@GNU\cjqx†�”›¢©°·¾ÅÌÓÚáèïöý  '.5<CJQX_fmt{‚‰�—ž¥¬³ºÁÈÏÖÝäëòù     # * 1 8 ? F M T [ b i p w ~ … Œ “ š ¡ ¨ ¯ ¶ ½ Ä Ë Ò Ù à ç î õ ü ! !!!!&!-!4!;!B!I!P!W!^!e!l!s!z!�!ˆ!�!–!�!¤!«!²!¹!À!Ç!Î!Õ!Ü!ã!ê!ñ!ø!ÿ!" """"")"0"7">"E"L"S"Z"a"h"o"v"}"„"‹"’"™" "§"®"µ"¼"Ã"Ê"Ñ"Ø"ß"æ"í"ô"û"# ####%#,#3#:#A#H#O#V#]#d#k#r#y#€#‡#Ž#•#œ#£#ª#±#¸#¿#Æ#Í#Ô#Û#â#é#ð#÷#þ#$ $$$!$($/$6$=$D$K$R$Y$`$g$n$u$|$ƒ$Š$‘$˜$Ÿ$¦$­$´$»$Â$É$Ð$×$Þ$å$ì$ó$ú$%%%%%$%+%2%9%@%G%N%U%\%c%j%q%x%%†%�%”%›%¢%©%°%·%¾%Å%Ì%Ó%Ú%á%è%ï%ö%ý%& &&& &'&.&5&<&C&J&Q&X&_&f&m&t&{&‚&‰&�&—&ž&¥&¬&³&º&Á&È&Ï&Ö&Ý&ä&ë&ò&ù&'''''#'*'1'8'?'F'M'T'['b'i'p'w'~'…'Œ'“'š'¡'¨'¯'¶'½'Ä'Ë'Ò'Ù'à'ç'î'õ'ü'( ((((&(-(4(;(B(I(P(W(^(e(l(s(z(�(ˆ(�(–(�(¤(«(²(¹(À(Ç(Î(Õ(Ü(ã(ê(ñ(ø(ÿ() )))")))0)7)>)E)L)S)Z)a)h)o)v)})„)‹)’)™) )§)®)µ)¼)Ã)Ê)Ñ)Ø)ß)æ)í)ô)û)* ****%*,*3*:*A*H*O*V*]*d*k*r*y*€*‡*Ž*•*œ*£*ª*±*¸*¿*Æ*Í*Ô*Û*â*é*ð*÷*þ*+ +++!+(+/+6+=+D+K+R+Y+`+g+n+u+|+ƒ+Š+‘+˜+Ÿ+¦+­+´+»+Â+É+Ð+×+Þ+å+ì+ó+ú+,,,,,$,+,2,9,@,G,N,U,\,c,j,q,x,,†,�,”,›,¢,©,°,·,¾,Å,Ì,Ó,Ú,á,è,ï,ö,ý,- --- -'-.-5-<-C-J-Q-X-_-f-m-t-{-‚-‰-�-—-ž-¥-¬-³-º-Á-È-Ï-Ö-Ý-ä-ë-ò-ù-.....#.*.1.8.?.F.M.T.[.b.i.p.w.~.….Œ.“.š.¡.¨.¯.¶.½.Ä.Ë.Ò.Ù.à.ç.î.õ.ü./ ////&/-/4/;/B/I/P/W/^/e/l/s/z/�/ˆ/�/–/�/¤/«/²/¹/À/Ç/Î/Õ/Ü/ã/ê/ñ/ø/ÿ/0 000"0)00070>0E0L0S0Z0a0h0o0v0}0„0‹0’0™0 0§0®0µ0¼0Ã0Ê0Ñ0Ø0ß0æ0í0ô0û01 1111%1,131:1A1H1O1V1]1d1k1r1y1€1‡1Ž1•1œ1£1ª1±1¸1¿1Æ1Í1Ô1Û1â1é1ð1÷1þ12 222!2(2/262=2D2K2R2Y2`2g2n2u2|2ƒ2Š2‘2˜2Ÿ2¦2­2U„V¼s�ù%´6¥?Ñ ^°�¹¼Ã€úÂȇÒYÔŒ÷qù6þëÿq¿ \R ý  % , 3 : A ¾ûØÿ$ù'Ï)n+ú,- -¸2`BlHùNšP®P·P¾P»WÂWÉWÀ_„ʼn}•u™Þ�D§®º¯ï²1²)´�µ!Ý_Þ�ßá{äGècëˆî]÷˜ü÷j¢Èí2Õ;¡}ä _"P$¶%1'#)Œ* ,ÿ-h/ê0S2Ñ3Æ5/7�9AìQ›U=YN^``Jbd d'd.d7dBdMdTd[dcd솊,Ž4Ž<Ž{¢·¤̦P¨ ªÉ«ù¯§±»±ϱã±ì±õ±ü±²g¶S·>¹Šº_¼Œ½\¿‚ÁPéÆÐçÚèWð^ðrð†ð�ð–ðŸð¬ð´ð–  -@ ª#Þ2E6€9Ý=¹?uAVCjC¸EGÒG³HoJ*LN4QHQ\Q\·_Ê_/h knmâouqírÎtFxi{â|ÎŒx�6³oµå¸‹º’º›º¢º©ºà¾âÁëÄFÆ6ÊJÊê7î£ñsõšÿ¤ÿ®ÿ¸ÿÂÿÌÿÖÿàÿêÿôÿþÿ&0:DNÎm I$(Â)„+l-C/;1P3E5ÁB6EJE^ErE†EšE®EÐMu_fèh6npuØ�ò�ô’ͨç«é­iÀÂà ÃÃ!Ã+Ã5Ã|ËÑÊÖNÚÉÛÐÛ×ÛÞÛçÛðÛùÛÜÜÜ0àTä0æ8çéüí´šY¯²“3›3£3$Q,QÙaáeêeñeøeÛrŒt–u¢Ç £Ç ¤Ç ¥Ç ¦Ç §Ç ¨Ç ©Ç ªÇ «Ç $ê %ê &ê 'ê (ê )ê *ê ‚õ ƒõ „õ …õ †õ ‡õ ˆõ ‰õ yú zú {ú |ú }ú ~ú ú €ú �ú ‚ú ƒú „ú …ú †ú ‡ú ˆú ‰ú Šú (2 )2 *2 +2 ,2 -2 n n sp tp up vp wp xp yp zp {p |p }p öu  w ¥w Nx Ox Px Qx Rx û ü ý þ ÿ € € € € € € ´‚ £ƒ ¤ƒ ¥ƒ ¦ƒ §ƒ ¨ƒ ©ƒ ªƒ «ƒ ¬ƒ ­ƒ ®ƒ ¯ƒ a† H‡ I‡ J‡ K‡ L‡ M‡ N‡ O‡ P‡ n‰ OŠ PŠ QŠ RŠ SŠ TŠ 9Œ � � µ� ¶� ·� ¸� ¹� º� »� Û� ­� e’ f’ g’ h’ z” {” |” L— M— £˜ ¨˜ ­˜ ²˜ C· D· E· F· G· H· I· J· K· L· M· N· O· P· Q· ©Ü ªÜ «Ü ¬Ü ­Ü —( ˜( ™( š( ›( œ( �( ž( Ÿ( Šu ‹u Œu �u Žu �u �u ‘u K… #† $† %† &† '† († )† *† +† ,† -† .† /† 0† 1† 2† 3† 4† 5† á’ â’ ã’ ä’ å’ æ’ ç’ è’ é’ ê’ ë’ U˜ V˜ W˜ Ü™ Ý™ Þ™ ß™ à™ á™ â™ ã™ ä™ å™ æ™ ç™ è™ é™ ê™ ë™ ì™ í™ î™ ï™ ð™ ñ™ ò™ ó™ ô™ õ™ ö™ Ž4�4�4‘4’4“4”4 >¡>FDGDHDIDƒEEFGGGHÑH¤I¥ISJaKbKcKdKeKfKgKhKiKjKkKlKmKnKoKpKqKrKsKtKuKvKºWKX]]]]]BkCkDkÉ{Ê{���÷„ü„†††††††† †g�h�i�j�k�l�m�U�N½O½P½Q½R½S½ËÃ�Ä…ÅWÆ»Æ.ÇÈaÈàȲÉÊããããÒúÓúÔúÕúÖú×úØúH1I1J1K1L1éNêNëNìNíNfffffffffQ¡7¢8¢9¢:¢;¢<¢=¢>¢?¢@¢A¢è§é§�ª¢ª§ª¡¬¢¬ ®®® °û°±²÷²ü²³_´`´a´x¹y¹z¹{¹|¹}¹~¹¹€¹�¹‚¹ƒ¹„¹…¹†¹‡¹ˆ¹‰¹й‹¹Œ¹�¹޹�¹�¹‘¹’¹“¹”¹•¹–¹—¹˜¹™¹š¹›¹œ¹ã*ä*å*æ*ç*è*é*#JsZtZuZvZwZxZyZzZ{Z|Z}ZÕcd€dffff#f(f-f2f7foCoUpVpWpXpwwwwwwO|P|K}L}M}N}O}P}Q}R}S}T}U}V}W}X}Y}Z}[}\}]}^}_}`}a}b}c}d}e}f}g}“é”é•é–é—é˜é™éšé›éœé�éžéŸé é¡é¢é£éœ+õ+ö+.......ÆCÇCÈCÉCÊCËCÌCÍCÎCÏCÐCÑCÒCÓCÔCÕCÖC×CØCÙCÚCÛCÜCÝCÞCßCàCáCâCãCäCåCæC*W+WôWõWöW÷WøWùWúWûWüWýWŠ]’^“^”^•^–^—^˜^™^š^›^8búbe e e e e¢g€h÷høhùhúhûh“kzllmmlomonooopo�q‚qƒq„q…qawbwcwdwewfwgwhwiwjwkwlwmwnwowpwqwrwswtwuwvwwwxwywšñ�ò‚òƒò„ò…ò†ò‡òˆò‰ò²÷�øŽø�øYþþÿÿÿ*+,-§ ¨ © ·¨­UVWXYZ,-./012%%%%%%%%%% %!%"%ëAìAíAîAïAZS[S\S]Sìfífîfïfðfñfòfófópøp.r3rEsFsGsHs¾x¿xÀxÁxtzuzvzwzxzyzÖ~×~Ø~Ù~Ú~Û~Ü~Ý~Þ~ß~à~……b‡c‡d‡e‡Y‰Z‰[‰\‰]‰ýŒÔ��¼ ½ ¾ ¿ À Á  àà«ϬЬѬÒ¬Ó¬Ô¬Õ¬Ö¬׬جÙ¬Ú¬Û¬ܬݬÞ¬È[ÈBÉGÉ=ÊBÊóÊøÊ©Ë®ËdÌÖÌ×ÌØÌÙÌ{Î|Î}Î~Î΀Î�΂΃΄΅ÎDÔ+Õ0ÕàÕåÕßß ß!ß"ß#ß$ß%ß&ß'ß(ß)ß*ß+ß,ß-ß.ß©;ª;«;¬; T|U„W}X‚X‡XŒX�Z‘Z’Z“Z”Z•Z–Z—Z˜Z™ZšZ›ZœZ�ZžZø¬ù¬ú¬û¬ü¬ý¬ϰаѰÒ°Ó°ˆ²O³Z´À´Å´Ê´Ï´,·1·Ò¹Ÿ¼êÓWÔ1Ú2Ú3Ú4Ú5Ú6Ú7Ú8Ú9Ú:Ú;Ú &+ ÙÞ$%w|U p!)#.#Á&‚(‡(Ä)¸+½+�799�<•<�=ÿ@·A¸A3CVDãFäFåFæFMMMMMMMMM M M M M MMMMMMMMMMMMMMMšgshxh=i>i?i@iAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViàŽ7��ª¡«¡¬¡©É­`±±³¶³дáµú»û»½½½½ ½!½B»ļĽľÄ\ÇeÈ8ÒùÒþÒÓÓ Ó‹ÖL×Q×V×[×`×°Ú\ÛaÛfÛkÛpÛïÝéÞîÞóÞøÞýÞ|ávâ{â€â…âŠâkåææ!æ&æ+æé êêêêêÝíÞíßíàíáíâíãíäíåíõö÷øù”™ž£¨ïð� Š!‹!Œ!�!Ž!�!�!‘!’!“!”!•!–!—!˜!œ.¢.o/60<01¶122™2ž233›3 34õ4É5Î5gwhw¨y©yªy«y¬y­y®yƒƒƒƒƒ†…e†f†g†h†…–†–‡–ˆ–‰–Š–‹–Œ–�–Ž–�–�–‘–’–“–”–•–––—–˜–™–š–›–œ–�–ž–ÄÇbÇkÈlÈmÈnÈoÈpÈqÈrÈsÈtÈšË.á/á0áãããzää„äéŽéuêvêwêxêyêzê{ê|ê}ê~êê€ê›ïœï�ïžïÚð¹ñºñ»ñ¼ñ½ñ¾ñ¿ñÀñ\õ=ö>ö?ö@öAöBöCöDöEö/û0û1û2û3û4û5û6û7û8û9û:û;ûyÔÕÖרÙÚÛÜÝÞßþ\ûüýóøý)*+,nsx}ñ ò ó ô õ ƒ"ˆ"�"’"—"F$G$H$>%C%H%u&v&w&x&º'¿'Ä'É',)¢)H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.[.Ì€ë�z‚{‚|‚}‚~‚•†o‡u‡ˆšˆ ˆ=‰¢‰Š™Š0‹1‹2‹3‹������������������ �æ¬ä­é­î­¯�¯ž¯~´ µ µ µµµµQ¼¾½¿½À½Á½½•¿–¿—¿˜¿™¿š¿›¿œ¿�¿ž¿MÃ.Ä3ÄSÉÈÉœÊïÒdÓŸÕÙønú�þÿ›(Ñ!o½–Œ  aØ3Ã9 ™&'R(É(R*ñ+N.Å.94°4†5ÐBGC"I™IoJK2O¨O^RÔR�Z[=`³`Í„Z…/†††‡ˆ“ˆ$‰ý‰sŠH‹ñ‹Ô•xš9žŸ§ö§W®Í®¹°/±C³¦´ŵxݶÞà•àúáqâ™å éåë ï8øùÙþPÿ&˜jõ¥ÞHîU»!—þy!ô"j#Ð$K&Æ'<(¤)"+ ,-€.0k1é2g4Þ4G6É7å9[:0;qAçAGR¾R€VZ©^ _é``a¤bcVgÌg¡hJiˆ‘ˆf‰àŠV‹+Œƒ˜™W£ΣD¥Ó¥[§«¨"©hªߪ"¬™¬2°¨° µ�µ¼¶J¸™¹ºj»í¼ÿ½u¾пFÀÁõÁk½Ã3ÄÅ_ÅÆÇ“ÇhÈPèÌêýt  ‰ _  ½4 ´xœvÝbØ­$Š$53«3*7W:X>Ï>@‹@ïAfB[DÒD‰FJG)HI…IÉJ@K´L+MNöNÌO„P"S±S‡T1U·\D]í]|^ _ažaGbÖbgcòh•knppåqnsås=uÌu¢vùv£w y§yþy¶zÞ{P}D�'�¶�·³.´µ ¶â¶ ¹—¹/¼¦¼¿ÀÞ˜ÅôƬǛÈqÉÇË�ÌpÍFÎ|ê ë ïqòAö€ â‹ —î— €¨ !Ç$>%Ë(+* *,ˆ,é-^.ß/U0ö1l2í3b4ý5r6¼C2D I‚I‚NO£O|P QœQ&`³`ˆaßasbLcÛcldSfÉfžgGh!i—iénxoÏodp>qÎq`r#v²v wžwxxyšyIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzÝ�Þ‚ä‚ʃª„°„¯…Y†ƆˆY‡^‡ì‡ñ‡ˆ„ˆ‰ʉ®Š‹‹õ‹žŒ£ŒYŽÐަ�P�u‘쑌“>”F•G•H•I•J•K•L•M•N•O•P•Q•R•S•T•U•ÚœÛ�á�Çž§Ÿ­Ÿ¬ V¡áÈ¡V¢[¢é¢î¢|£�£ ¤Ǥ«¥¦¦ê¦“§˜§N©Å©›ªE«j¬á¬y®#¯ÀÀ6ÁdÂ�ÅÆïÆ˜ÇÍŽÍUÒ×ÎÚïÞ°à&áºá“â"ã³ãÔäJå°æ�ç�ýâqàB Ñ § <  )¸Ž#ý´+« €Ž !<7Ë7¡8K9ïQ~RÕR«SUTrbéb¿cidCpºp�q:r0s¦suv€† ‡ pˆ ø !¥ýQ6h׿í¤õøïR¿d É ¨é»$X*.Ò.&3€9¥:Ì?1@çB'CéGÜH¨JàKQL¥MŠNÌU+VŠ"VõVTW³WXqXÐX/YŽ"YûYZZ¹Z[z[Ü[;\�\ü\[]º]^x^×#^G#_µ_`s `Ø`â 凙­×ÎÎq¤º0ׄ,£-n.‡ƒ«„ùÓqÖ´ÝÞ~Þ\ÅqÅ–Å€LKNXP§h^iÀxxyŠzÇ÷á%·z z Ô ¢ ® à 5v&ü+7€æ€z�4›ã›wœM”ÃêÃ@Ä–ÄìÄBÅ”Ñ¬Ç +ê Šõ ‹ú .2 n ~p ûu ªw Sx € ¹‚ °ƒ f† Q‡ s‰ UŠ >Œ � ¼� à� ²� i’ }” N— ·˜ R· ®Ü  ( ’u L… 6† ì’ X˜ ÷™ •4¢>JDˆEJFGHÖH¦I>JXJwK»W6XPX]EkË{�…!†n�Z�T½ÐÃ’ÄpÅŠÅ\ƼÆÇ3ÇÈbÈËÈåÈ·ÉÊãÙúM1îNfV¡B¢ê§¬ªa¬£¬®ί °±ȱ²³8´b´�¹ê*$J~ZÖc�dFfænIuè}ÔP‡³‹/“‘—(¢Ì£²§ªm¬¦¯²Ñ´·T¹+¼åÃ/ÆnɦÏîÑÓÉÕÑØýV³/@X nHoYpwQ|h}¤é¡+÷+ .çC,WþW‹]œ^=bÿb e§g�hüh˜k„lrmqo†qzwŸñŠò·÷�ø^þ.ª ¼²[3#%ðA^Sôfýp8rIsÂxzzá~…f‡^‰�Ù��Ä å«߬È`ÈLÉGÊýʳËiÌÚ̆ÎIÔ5ÕêÕ/ß­;T�U‰W‘X0ZXZŸZþ¬Ô°�²T³[´Ô´ض·6·×¹¤¼ïÓ\Ô<Ú 0 !ã&�Z q!3#Â&Œ(É)Â+Ž7:9š<¢=£@A¹A8C[DçFMŸg}hWiåŽ8���­¡©έa±»³Õ´æµŒº »™»ü»"½G¿ÄaÇjÈ9ÒÓŒÖe×±ÚuÛðÝß}á�âlå0æé#êæíú­ñ¢ ™!¨.t/B0!1»1"2£2$3¥34à4ú4Ó5iwox¯yƒ‹…i†Ÿ–"ÄÇgÇEÈuÈ…ËŸË1á#ã‰äé“é�êŸïßðÁñaõFö<û~àÿaþ-‚ö œ"I$M%y&Î'-)§)\.Ñ€ð�‚š†{‡ˆ¦ˆB‰§‰ ŠŸŠ4‹ �!�»¬ë¬ó­¯Ÿ¯´µ;¼V¼ýŸ¿RÃ8ÄXÉÍÉ¡ÊôÒiÓ¤ÕÞøsú”þ ÿ„ -º× &—Xtå¦Â3›‘  fÝ8È> ž&'W(Î(W*ö+S.Ê.>4µ4‹5ÕBLC'IžItJKK7O­OcRÙR”Z [B`¸`¶„Ò„C…_…4†‹†‡í‡ ˆ™ˆ)‰ŠxŠM‹Ú‹÷‹Ù•}š>žŸ„§û§\®Ò®¾°4±H³«´ʵ}Ý»Þ#àšàÿávâžåéêëï=øùÞþUÿ+�oúªãMóZÀ&œ ~!ù"o#Õ$P&Ë'A(©)'+¥,-….0p1î2l4ã4L6Î7ê9`:5;vAìALRÃR…VZ®^%_î`ea©b c[gÑg¦h3iPi ˆ–ˆk‰åŠ[‹0Œl˜ˆ˜û˜™\£Ó£-¥I¥¼¥Ø¥`§°¨'©mªäª'¬ž¬7°­°µ†µÁ¶O¸ž¹ºo»Ö¼ò¼e½¾z¾Õ¿KÀ ÁúÁpÂÂÃ8Ä ÅdÅñÅÆ"ǘÇmÈUèÑêy $  Ž d ò Â9�ºa}ð ¡_|âgݲ$�$:3°3/7\:]>Ô>@�@ôAkB`D×DŽFOG.HIŠIÎJEK¹L0M„NûNÑOmPŠP S'SšS¶SŒTU7U \¼\-]I]Ö]ó]‚^_ú`a‡a£a0bMbÜblcÛh÷huišk!nupêqssês&uBuµuÑu§vþvŒw©wôxy�y¬yzŸz¼zã{U}I�,�»�¼³3´ µ¶ç¶%¹œ¹4¼«¼„¿ÀãÂ�Å�ÅÆÌÆùƂDZǠÈGÉwÉ�ËÌËW̆ÌuÍÎLÎ�êëïvòFöi…öçt‘ó€œó€�…­ $!Ì$C%Ð(0*¥*,�,î-c.ä/Z0û1q2ò3g46w6ÁC7DI‡IkN‡NøNO¨OeP‚PQ¡Q`+`œ`¸`�aäaxb5cRcácqdXfÎf£g0hMh&iœiÒnînao}oÔoip'qDqÔqer v(v›v·vw£wax~xyŸyYzâ�ê‚σ¶„´…^†Іc‡ö‡‰ˆ‰±‰ω¯Š‹ö‹¨Œ^ŽÕŽ«�9�V�z‘ñ‘‘“C”V•ßœç�Ìž³Ÿ± [¡Í¡`¢ó¢†£¤®¤̤¬¥¦ë¦�§S©Ê© ª.«K«o¬æ¬~®(¯ÅÀ;ÁiÂvÅ’ÅÆÆôÆ�ÇžÇêÌÍwÍ“ÍZÒ×ÓÚôÞµà+á¿á|â™â(ã¸ãÙäO嵿”ç’ýËçZv Éæ+ G º Ö ¬ A ÿ  .¡½“(æ¹0”±…“ "!%7A7´7Ð7¦849Q9ØQôQgRƒRÚR°S>T[TwbîbÄcRdodHp¿p•q#r@r5s«su„v3657:9482€�‚ƒÿŽ‘’½ ´µ²µ´¯±®³ÚâÞäæíêÝÙßéÛåëçØÜáïãàèìŸ ¡¥£¢‘�–’—“†Žˆ‡�º»´­²±¬³°¸©®¯µÉ’‘��ø ÷ ô ù ú û û € „ ý åèçäæ™ — š • ‘ ” œ ˜ › � Ž � ’ � “ – Ò Ñ Ó Ï Ð É Å Æ ¡“ú€ÿùþøýõûü¤ £ æ ì ë å é ä ê á ç è �Ž–*–+WVUÛÞÜÝßÍ ÃÙÚ×ÒÓÔÓ¥£¤ª ¦ § ® ­ ¶*ö*r¼½»º†…„Þœà Ó Ô À Ò Ñ Ð Õ Þ Ù Œ Õ Ö æèã²³µ¶®¯°±´¢�ËÔÈÉÝ ¢„‚‡¼¿¸¹½¾Ì¤ ¢ £ ç ê èêáå镘¡œ £¨™Ÿ›—¤ž�¬«§¢ª©”𥖽»¹º¸¹�‹Œð ïîíðñ¶²³¸¹·š™»¼€ ƒ ÝA=>CDBýðìíòóñÖ â Ñ á ç Í Ï æ å Ù ä ã Ø Ô Ð Ê Ì Ë Þ Ú × à ß Ò Û Õ Ó Ü Ø Ù Þ ß Ý –™ ©¬¥®¦¨«­§ªŸ ¢ Ç–”•½™š¿£À­¥›¡ª«ž�¢¤´¶¬²¯®Ÿ³µ °±§˜¦¾¨©œÌÅÆÒÑÄÅÀÁÂÃÀ(ý§¿¦ÔÑÛÞÑÖÍ ® ñòðï¹£�‹ñðï„»ˆà ¡Ÿ¢ÿ¿¬Ðˆ ˜*¨*«*®*±*‘+”+™+ž+«¬­ª®¾³ûžîëêíï´*¹*¾*ø*ˆ+‹+Ž+‹çåáµ´¶‚À¿ÁÀÖ€¬ ›�޾¿À ”ÄØ‚° ¤ùöõøúø÷óÙ×ØÈ…² §„ˆÝÛÜÌÁ‰’Š ‰ … ‹¥ÐÞ”ŽÒ¿Ìœ › — ‘óÄ�”õ†å¥—˜–…“õó¨Î  �† ¡ †Á½¼¿Âœ—–™žãàßâ䉆…ˆŠÓÏÎÒԙ꭛îüÿþ��™ò¹œ±‡ÂŽ�µ¶Å¹ÏÒÈ™�Õw¹¨×w¹¨Õwò®Õw¨½ÕwÇÙw°ÿÕwö¼Ùw¥XřǙș­É™Ê™àË™óG*¤�R{9 ùÚ °F�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫûÚ 諯Uÿ ·¬¯þW¢ˆ$¯€¤™'þW×�Ǽ«(þW×�›†©ë'þW×�ñ÷þWÅž‹¢Ñÿ÷ÈòþWÅž‹¢Òÿ÷ÈòþWÅž‹¢ÑýûÈòþWÅž‹¢ÒýûÈòþWÅž‹¢ÑœùÈòþWÅž‹¢ÒœùÈòþWÅž‹¢ÑìùÈòþWÅž‹¢ÒìùÈòþWÅž‹¢ÑÈúÈòþWÅž‹¢ÒÈúÈòþWÅž‹¢Ñ°ûÈòþWÅž‹¢Ò°ûÈòþWÅž‹¢ÑÌøÈòþWÅž‹¢ÒÌøÈòþW‹¢ö Ôÿ÷ÊûþW‹¢ö ÔýûÊûþW‹¢ö ÔœùÊûþW‹¢ö ÔìùÊûþW‹¢ö ÔÈúÊûþW‹¢ö Ô°ûÊûþW‹¢ö ÔÌøÊûþWö ›†¶ëþWö ›†øîþWö ›†ÑÿþWö ›†·ŠþWö ›†Ô�þWö ›†þƒþWö ½è�ðþWö ½èç‚ �Xö ˜XÃþäü¸êÕî¼&´Ç&˜XÃþäü¸å‡î¼&  å‡þWý€ý‹ÌŒ˜X©ñ ´¥í ùÚ ©ñ ØÚUÿ˜X¶Ç&äü¾¢º±Ç&ÃÇ&þW²Ýò¯¥Ê˜X’ª Ç£Ù˜X’ª ÇÍìƒX‡Ÿ#þW£´Ñ—ƒX¶¥í ùÚ ƒ§;áÆ:ƒXµ¥í ùÚ ƒ§;áÆ:º_€ªÛ†ô Ù¤è¾Ç_³¶Û†ô‡¦ÀÇ_ÖáÛ†ô‡�ÇÇ_ÖáÛ†ô‡ÜÒº_¢ˆ$׈$‰‰$Ç_σøŽ©„ʲÝóŽÂ�Ç_–‡Ù›©„˲ÝÔ›Â�Ç_–‡ØÙ ×°Ýñº_×�ЄÇ¼«(º_×�Є›†©ë'Ç_×�Є¶ß˺Å캯²Ý¶ÏÄÏÇ_×�Є¶ßËáMáMâMÁÙäMóØM 6­ƒ‘0þºÅí»¯²Ý¶ÏÄÏÇ_×�Є¶ßäÈä¶ÏÛÆÇ_×�Є¶ßä²Ý¶ÏÛÆÇ_ÇЄ»�Œ¬(Ç_›†ú‰¶ß“ÃÇ_›†Єú‰ùë'Ç_°ÿÒýÛ†ÔÚ Ç_°ÿÒýÛ†¯å Ç_££¤öž¥óï  “cæÇI!‹dºº“ »õEï ø°<±EIôÀ%‹  ̹éÆ) ¾¯ôÀ%Uÿ ËË̦¡Íóï  æ*˜Óklú•å‡Ç_í½¯ ¾¯ôÀ%‹¶Ç&º²;꾯ù¾¯Ç_í½¯ ¾¯ôÀ%‹ýµ¯Ýì)꾯ù¾¯Ç_ý¾¯»»¼ª§½óï  Ç{{5%aßiôÀ%ŠÛ¾¯éÆ)«À¯ôÀ%UÿÇ_ý¾¯«À¯ôÀ%жÇ&º²;öÀ¯Ç_ý¾¯«À¯ôÀ%Šýµ¯Ýì)öÀ¯Ç_�»×°¸ïšìÇ_�»×°Øû‰ë Ç_Û†ô‡ÑÞ½¢’Ç¢’¹¢’Û… á… áÅž¼¢º¶êն凧fÛ†§f¶Î(§f�ù§fá³§fóЧfø¶ ±f©fêì©fžî©fÄí©f×�©fÇ©f›†©fôí©f¯ñ©f†‘©f¢ã©fÅž©fªÓ©fÞЩf°ÿ©fÍÍú¹Î‚Ï’06&Jh_>t©fÝÁ©f¢º©f»³©fôÄ©f€Ã©fý½©fµµ©f¶ê©f€û©f²ÝÚ ÈšÜ … â … ¹̹¹êչ凒êÕ’å‡ÜêÕÜ凂êÕ‚å‡ÊêÕÊ凶jêÕ ²²êÕêÕ´jêÕ‘ɯdÄÄ—Æý�Ó ÇÅœÓ Èã÷Ó É÷œÓ °Žè÷œŠ²¸µ�¸£ý£ý¤ýÀ ˆÙÅQòƒåUÒêÕÒ凿êտ凖g†0†0aˆ0�ñ.×"®®>¾ ©m˜g�˯ÆË¯ �ò¯×�‚÷ �þ ûò¯×�‚÷ �þ û½™°ÿ‚÷ �þȚƺ²;ÆÝì)ȶÇ&º²;Èýµ¯Ýì)„Ù¤¨ ²Ý« –‡« ¢ºñ Ù¤ŠÈš‹g‹g‹g‹g‹g‹g‹g‹g ‹g!‹g#‹g#‹g%‹g%‹g'‹g)‹g)‹g*‹g+‹g1‹g7‹g8‹g:‹g<‹g>‹g>‹g@‹gA‹gB‹gC‹gD‹gL‹gM‹gQ‹gQ‹gT‹gV‹gp‹gv‹gy‹g}‹g ‹g¿�˯õ �˯‚÷ Uÿ‚÷ Â�˯¹Ú¯‚÷ ¾ ÌŠÌŠ“ºÏŠ�Њœ“D^)c˜þOþ�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫ–‡³ –‡„�IÄ�¾ ÌŠÌŠ“ºÏŠ�Њœ“D^)c˜þOþ�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫ¢º³ ¢º ¢ºŒ�UÿÄ�° –‡° ¢ºñêÕñ凫ò¯×�‚÷ �þ�ò¯×�‚÷ �þ�½™°ÿ‚÷ �þÈšªŸŸ Àì £ó‹¤ô‹ljô²ßk#Èš�þš¶Ç&º²;šýµ¯Ýì)¡Èš¦���DefaultFrequencyRankÁ ©Ìëè£våÆÈšº²ÝÇ뺯캯²ÝǺ»¯í»¯²Ý«å‡…e΃ý‹…eý€�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫò®…eÉõ�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫ¨½…eùÚ ·¬¯…eÍŠö·+…e·Í�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫ›†…eõ¢�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫö¼…e÷ýÇñ* ¼ò¯×��þ Äò¯×�‚÷  Ïä¯Uÿ ‚÷  ÊÏä¯�þ Êò¯ò¯×�öä¯UÿÈäÜä¯ ÐÏä¯�þ Êò¯×�¸å¯£  ¸Ïä¯�þÜä¯ ¼½™°ÿ�þ Ľ™°ÿ‚÷  žæ¯Uÿˆå¯ Êžæ¯�þ ʽ™½™°ÿÅæ¯Uÿ©ï «æ¯ Оæ¯�þ ÊÈš½™°ÿƒç¯å‡ ¸žæ¯�þ«æ¯¢Û¾¯éÆ)¢¶Ç&º²;¢ýµ¯Ýì)âÈäâ²Ý¥eÈä¦Ïã㡌çÛõ ÏiôC[^2Îò¯×�´²ÝúÛ¾¯éÆ)ú¶Ç&º²;úýµ¯Ýì)‡Û¾¯éÆ)‡¶Ç&º²;‡ýµ¯Ýì)„Û¾¯éÆ)„¶Ç&º²;„ýµ¯Ýì)J¼É¯?²Ýî²ÝÚ ²Ý ™Ïä¯ ™žæ¯ ›Ïä¯�þ ›žæ¯�þ ‰�þ ‹�þ™… ™Åž íÏä¯ ížæ¯ñDéë�þšŒšŒTakeÁœŒ�¥I�Œ¤¥I]”£• ÛŽÛŽRepeatÁÝŽelementÁÏNï«JþÒH"éëñDÇ�þç‰ç‰ClonedÁé‰ÛËô:³^‡Ã/ã¬ìŠìŠRevÁîŠ�ÄF‡ÂœrMºNÓö·+ïDÇ�þ´¹+ñD°ÿ�þšŒšŒ¨ë¯œŒ�¥I�Œ¤¥I]”£• ÛŽÛŽêë¯ÝŽúë¯ÏNï«JþÒH"°ÿñD·É�þÌŠÌŠ“ºÏŠ�Њœ“D^)c˜þOþìŠìŠõì¯îŠ�ÄF‡ÂœrMºNÓð‰ð‰CopiedÁò‰ÛËÃ;غ¶Ÿ·ûv¾ö·+�ˆiñD¢º�þÌŠÌŠ“ºÏŠ�Њœ“D^)c˜þOþêܯÏ¢ºÉݯ¢ºUÿñD¢º�þÌŠÌŠ“ºÏŠ�Њœ“D^)c˜þOþ¿Û¯Ï–‡õ¤;¢ºUÿñD�þšŒšŒ¨ë¯œŒ�¥I�Œ¤¥I]”£• ÛŽÛŽêë¯ÝŽúë¯ÏNï«JþÒH"DzÝÍ–‡Í¢º±¥í ùÚ É9ÈšÜ9¥µ¥µ¤¦µßƒ†§µ¦ƒ†¼ºàË£ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw®®«°¿ ”3¯f*²Û�Èšõõĵ AllocErrorÁ Ô]YO^÷`UÿÝ9  Ý8Ý8ArcInnerÁß8strongÁä7à8Âä7á8êÒä71%wãÿÃxdÈšUÿáÆ:šD¹¨šDÇšDªºšDé·å;ä3êÕ‘ɯ€¬ù«ý­ý­ MaybeUninitÁÿ­uninitÁ瀮�çÙW£Ÿì·œ êÕù« çø¯› — — RawTableInnerÁ ˜ bucket_maskÁ K ™ctrlÁ K š growth_leftÁ K ›itemsÁ KT“ ×Gפâ›Ç›ݪ›°ÿ›êÕ›ŒÈƒ  îöŸŸ Àì £ó‹¤ô‹ljô²ßk#ØÚ�þöŸŸ Àì £ó‹¤ô‹ljô²ßk#�þðݪð°ÿðŒÈô½ôƼôßãôµ÷ôÞšñ‡ù¯ñÇñݪñ°ÿñêÕñŒÈïéëïÇêÕóí âñ àµ&“2“2ö¹$•2�ñ.ç–\*=°"�řǙș­É™Ê™àË™óG*¤�R{9 ËŽ“2“2ö¹$•2�ñ.ç–\*=°"�…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅŸŸ Àì £ó‹¤ô‹ljô²ßk#ËŽ�þ�þ“2“2ö¹$•2�ñ.ç–\*=°"�‘»“2“2ö¹$•2�ñ.ç–\*=°"�Ù¹“2“2ö¹$•2�ñ.ç–\*=°"�¢Ê“2“2ö¹$•2�ñ.ç–\*=°"�θ“2“2ö¹$•2�ñ.ç–\*=°"��©“2“2ö¹$•2�ñ.ç–\*=°"�í®½1½1‹ŒÀ1�ñ.Á1ìŠñ.?Ý3 ×*r‘»½1½1‹ŒÀ1�ñ.Á1ìŠñ.?Ý3 ×*rÙ¹½1½1‹ŒÀ1�ñ.Á1ìŠñ.?Ý3 ×*r¢Ê½1½1‹ŒÀ1�ñ.Á1ìŠñ.?Ý3 ×*rθ½1½1‹ŒÀ1�ñ.Á1ìŠñ.?Ý3 ×*r�©½1½1‹ŒÀ1�ñ.Á1ìŠñ.?Ý3 ×*rí®ý1ý1—�€2�ñ.�2ìŠñ.‚2… ñ.뜿Eòür‘»ý1ý1—�€2�ñ.�2ìŠñ.‚2… ñ.뜿EòürÙ¹ý1ý1—�€2�ñ.�2ìŠñ.‚2… ñ.뜿Eòür¢Êý1ý1—�€2�ñ.�2ìŠñ.‚2… ñ.뜿Eòürθ�‚ý1ý1—�€2�ñ.�2ìŠñ.‚2… ñ.뜿Eòürí®Öºž¹ÕßÏàäÝÜÞôÄ ÆÛ[­¯Á°«þ¯â´Ò£³øæš¹Å ì�‹¾Ÿ’Æ–³Ÿå®&¹Š$²×·®ò®‹½§ÿ¯…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅÁ(Á(Â(û—Ä(óß ô›ÛY·Ú¡¢²6²6¨´6ð 6µ6ð¯$ 6¶6êÒ 6M‹3àT—r§ÿ¯�þ¦Øäê …C…CüˆC¾‚Ð=‰C¶Ð=ò¹Úàŧ§ ScalarRangeÁ¨‚…©’…Ó 2ˆs�þ‘»³…•ö‹Ü[« ½ÚÁë·Ƽٹ첅C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅ“°�þ¾©ÆÏÿßã¬ü›˜„­�ûÊÅËõ Ï»àÖ…C…CüˆC¾‚Ð=‰C¶Ð=ò¹ÚàÅÇÇ�þ£÷賜ñ šµ&–æ öë ඌ듽)ò¯Å8Å8WeakÁÈ8í ä7É8«ä7=ÆÖ�Bâñ  �þÅ8Å8¤�°È8í ä7É8«ä7=ÆÖ�Bàµ&Ü‘°Å8Å8¤�°È8í ä7É8«ä7=ÆÖ�B¶ŠÜ‘°Å8Å8¤�°È8í ä7É8«ä7=ÆÖ�B¢‰Ü‘°Å8Å8¤�°È8í ä7É8«ä7=ÆÖ�BÍÞÜ‘°Å8Å8¤�°È8í ä7É8«ä7=ÆÖ�BԻܑ°Å8Å8¤�°È8í ä7É8«ä7=ÆÖ�BȚܑ°Å8Å8¤�°È8í ä7É8«ä7=ÆÖ�BÜ‘°Ý8Ý8Ùõ¯ß8êõ¯ä7à8Âä7á8êÒä71%wãÿÃxdÝÝ”ÊßѶ‚àÖ]‚ŸªjFÅN¥vÿ÷Ý8Ý8Ùõ¯ß8êõ¯ä7à8Âä7á8êÒä71%wãÿÃxdÝÝ”ÊßѶ‚àÖ]‚ŸªjFÅN¥výûÝ8Ý8Ùõ¯ß8êõ¯ä7à8Âä7á8êÒä71%wãÿÃxdÝÝ”ÊßѶ‚àÖ]‚ŸªjFÅN¥vœùÝ8Ý8Ùõ¯ß8êõ¯ä7à8Âä7á8êÒä71%wãÿÃxdÝÝ”ÊßѶ‚àÖ]‚ŸªjFÅN¥vìùÝ8Ý8Ùõ¯ß8êõ¯ä7à8Âä7á8êÒä71%wãÿÃxdÝÝ”ÊßѶ‚àÖ]‚ŸªjFÅN¥vÈúÝ8Ý8Ùõ¯ß8êõ¯ä7à8Âä7á8êÒä71%wãÿÃxdÝÝ”ÊßѶ‚àÖ]‚ŸªjFÅN¥v°ûÝ8Ý8Ùõ¯ß8êõ¯ä7à8Âä7á8êÒä71%wãÿÃxdÝÝ”ÊßѶ‚àÖ]‚ŸªjFÅN¥vÌøÝ8Ý8Ùõ¯ß8êõ¯ä7à8Âä7á8êÒä71%wãÿÃxd¶ŠÝ8Ý8Ùõ¯ß8êõ¯ä7à8Âä7á8êÒä71%wãÿÃxd¢‰Ý8Ý8Ùõ¯ß8êõ¯ä7à8Âä7á8êÒä71%wãÿÃxdŒ–Ý8Ý8Ùõ¯ß8êõ¯ä7à8Âä7á8êÒä71%wãÿÃxd¾•Ý8Ý8Ùõ¯ß8êõ¯ä7à8Âä7á8êÒä71%wãÿÃxdý”Ý8Ý8Ùõ¯ß8êõ¯ä7à8Âä7á8êÒä71%wãÿÃxdØ“Ý8Ý8Ùõ¯ß8êõ¯ä7à8Âä7á8êÒä71%wãÿÃxdÍÞÝ8Ý8Ùõ¯ß8êõ¯ä7à8Âä7á8êÒä71%wãÿÃxdÔ»Ý8Ý8Ùõ¯ß8êõ¯ä7à8Âä7á8êÒä71%wãÿÃxdÿ÷Ý8Ý8Ùõ¯ß8êõ¯ä7à8Âä7á8êÒä71%wãÿÃxdýûÝ8Ý8Ùõ¯ß8êõ¯ä7à8Âä7á8êÒä71%wãÿÃxd°û²í ãú¯ŸŸ Àì £ó‹¤ô‹ljô²ßk#ý­ý­¤÷¯ÿ­¹÷¯ç€®�çÙW£Ÿì·œÌ¡°�þŸŸ Àì £ó‹¤ô‹ljô²ßk#ý­ý­¤÷¯ÿ­¹÷¯ç€®�çÙW£Ÿì·œ–‡�þŸŸ Àì £ó‹¤ô‹ljô²ßk#ôôÖÞ÷öÒßøæãßùôãßú�äßP C“­�ƒÐËŽ²í �þâÿ¯¼Š+ŸŸ Àì £ó‹¤ô‹ljô²ßk#‹Œ�InvalidInputAnchoredÁŽ�InvalidInputUnanchoredÁ�UnsupportedStreamÁ‘„ô’UnsupportedOverlappingÁ“„ô”•UnsupportedEmptyÁË–çÁ­Ä¼�þ‹¡Òѳû¯((RawVecÁ+ð,üð©XÕ”ˆó‰­¯�þ((Žª°+ð,üð©XÕ”ˆó‰¹¨�þ((Žª°+ð,üð©XÕ”ˆó‰ò®�þ((Žª°+ð,üð©XÕ”ˆó‰âÿ¯�þ((Žª°+ð,üð©XÕ”ˆó‰Þ‹°�þ((Žª°+ð,üð©XÕ”ˆó‰¨½�þ((Žª°+ð,üð©XÕ”ˆó‰ûÚ �þ((Žª°+ð,üð©XÕ”ˆó‰²�°�þ((Žª°+ð,üð©XÕ”ˆó‰Ì»�þ((Žª°+ð,üð©XÕ”ˆó‰éë�þ((Žª°+ð,üð©XÕ”ˆó‰Ç�þ((Žª°+ð,üð©XÕ”ˆó‰›†�þ((Žª°+ð,üð©XÕ”ˆó‰°ÿ�þ((Žª°+ð,üð©XÕ”ˆó‰²Í�þ((Žª°+ð,üð©XÕ”ˆó‰ÑË�þ((Žª°+ð,üð©XÕ”ˆó‰šË�þ((Žª°+ð,üð©XÕ”ˆó‰•Ì�þ((Žª°+ð,üð©XÕ”ˆó‰äÌ�þ((Žª°+ð,üð©XÕ”ˆó‰«¶�þ((Žª°+ð,üð©XÕ”ˆó‰“°�þ((Žª°+ð,üð©XÕ”ˆó‰ï´�þ((Žª°+ð,üð©XÕ”ˆó‰ªº�þ((Žª°+ð,üð©XÕ”ˆó‰é·�þ((Žª°+ð,üð©XÕ”ˆó‰ÝÁ�þ((Žª°+ð,üð©XÕ”ˆó‰Ƚ�þ((Žª°+ð,üð©XÕ”ˆó‰·É�þ((Žª°+ð,üð©XÕ”ˆó‰þ¥�þ((Žª°+ð,üð©XÕ”ˆó‰¼¯�þ((Žª°+ð,üð©XÕ”ˆó‰»¤�þ((Žª°+ð,üð©XÕ”ˆó‰½™�þ((Žª°+ð,üð©XÕ”ˆó‰¢º�þ((Žª°+ð,üð©XÕ”ˆó‰ö¼�þ((Žª°+ð,üð©XÕ”ˆó‰¹�°�þ((Žª°+ð,üð©XÕ”ˆó‰Þ÷�þ((Žª°+ð,üð©XÕ”ˆó‰£´�þ š  š ScopeGuardÁ � dropfnÁ “  ž � “ ¥êÚ»­å�>‡ù¯ ´�þ ‡ù¯UÿÜ‘° ” ” TableLayoutÁ •ß K – ctrl_alignÁ KÓk®%¹Õ– š  š Á¼° � Ô¼° “  ž � “ ¥êÚ»­å�>  ‘ ‘RawTableÁ ””ª K •« K –…  K¸:1‹{hožæ¯�þ µžæ¯�þ ¿¿°Uÿ š  š Á¼° � Ô¼° “  ž � “ ¥êÚ»­å�> ‡ù¯ » …Á°UÿřǙș­É™Ê™àË™óG*¤�R{9 Êö¯ÿ ± ±’ ¶ hash_builderÁ  ·”ª ›j™£ôÒSÍò¯×�‚÷ �þ ± ±’ ¶™Á°  ·”ª ›j™£ôÒSͽ™°ÿ‚÷ �þ ‘ ‘˾° ””ª K •« K –…  K¸:1‹{hoÏä¯�þÁ¿°©7«7¬7OsÁ­7óÙ6®7¯7SimpleÁ°7óÙ6±7²7 SimpleMessageÁ³7óÙ6´7µ7CustomÁ¶7óÙ6VNè7Oö‡ö‡÷‡ CustomOwnerÁø‡óÙ6 fûËÒñD¶ÚÇþÇþIntoIterÁÊþðÓ(¯AzF¢oqf캯ÇþÇþüİÊþðÓ(¯AzF¢oqfºÅÇþÇþüİÊþðÓ(¯AzF¢oqfºÅ°–°À—°И°à™°ðš°€œ°��°�ƒ$‰Ë@ûì ƒŠƒŠÜ‹…Š�Ð<†ŠŠÐ< 0{?i—ðŰƒŠƒŠÜ‹…Š�Ð<†ŠŠÐ< 0{?i—ÀưƒŠƒŠÜ‹…Š�Ð<†ŠŠÐ< 0{?i—‰Ç°¾¾�ÑÁêÒ¶ÂöҶÄӶÖ!Ô§I|neØÚƃ$¾¾�ÑÁêÒ¶ÂöҶÄӶÖ!Ô§I|ne¿Ë@Û§°Þ‹°¨½Èö ’Œ°ðlðl CopyOnDropÁòlsrcÁ§lólĨ§lôl¶§lnóȘΉq¢êÕ­j­j MergeStateÁ¯j‚¥j°j’¥j±jĨ¥jAâÙùdêÕ¢ ¢ DropOnPanicÁ¤ ð� ¯�|Âz×.çø¯–3–3 DropGuardÁš3–½2›3num_initÁ½2Ýiz÷‰Q:C­¯�þ–3–3ØÌ°š3–½2›3ö̰½2Ýiz÷‰Q:Cò®�þ–3–3ØÌ°š3–½2›3ö̰½2Ýiz÷‰Q:C–‡�þ–3–3ØÌ°š3–½2›3ö̰½2Ýiz÷‰Q:C²Í�þ–3–3ØÌ°š3–½2›3ö̰½2Ýiz÷‰Q:CÑË�þ–3–3ØÌ°š3–½2›3ö̰½2Ýiz÷‰Q:CšË�þ–3–3ØÌ°š3–½2›3ö̰½2Ýiz÷‰Q:C•Ì�þ–3–3ØÌ°š3–½2›3ö̰½2Ýiz÷‰Q:CäÌ�þ–3–3ØÌ°š3–½2›3ö̰½2Ýiz÷‰Q:Cªº�þ–3–3ØÌ°š3–½2›3ö̰½2Ýiz÷‰Q:Cé·�þ–3–3ØÌ°š3–½2›3ö̰½2Ýiz÷‰Q:Cþ¥�þ–3–3ØÌ°š3–½2›3ö̰½2Ýiz÷‰Q:C¼¯�þóDéë�þœì¯éëUÿ éëŒBŒB SetLenOnDropÁŽB¶‹B�B local_lenÁ‹BÌþõ²µ³°òóDÇ�þ±í¯¡†\ ǕհóD°ÿ�þÇî¯Ç‘6Uÿ °ÿ•Õ°óD·É�þÑﯷÉUÿ ·É•Õ°óD¢º�þ“ñ¯õ¤;Uÿ ¢º•Õ°óD¢º�þ„ò¯Ž×°™×°óD�þóò¯¬¡IUÿÊö¯•հЖ‡þÁ‰ÂТºþÁ‰Â±DÇ·É�ˆiìQ·ÉÅÖ°·ÉUÿÅÖ°ÇUÿÃØ°�ˆi±D¢º¢ºÇò¯ìQ¢º©×°¢ºUÿ©×°³Ù°¡Ù°Çò¯±DÍŠÇü†ìQÇêÕ°îØ°êÕ°ÍŠUÿõÙ°ü†±DËݯ¢ºÖñ¯ìQ¢ºøÖ°³Ù°øÖ°ËݯUÿÊÚ°Öñ¯Þ;Ǯذ ÇUÿ®Ø°õÙ°ÃØ°ÊÚ°¡Ù°üIéëëÔ°éëØÚUÿëÔ°üI°ÿ”Ö°°ÿØÚUÿ”Ö°üIÍ×°ØÚUÿÍ×°ÿÄ>ïïÏÎGð range_stackÁ…g¦P}˜h�ØÙ ÿ¶%«Å°׈$¸ïøï¶û¡é�ë½çëñ¬’¶ŠËŽÅ�¢‰Ó‘ñ‰Œ–¾•ý”Ø“žœó—ä›åš¹—«š×�¸˜Ëž‘ž¬™ò˜ª›ÿ–ñ™�ªݪÛ†¶ßÍÞ÷ߘÛýÝÃþäüµ÷ïòûó¯øõùØû™ü�ƒá�݃©©÷Þ«Ö’¬þ9’­ß'’®ôè’ã4(šûT `ÿÿ€ÛÀ�óª  ê€ÐÜ�ÒTê6ê6ë6ß�ì6óÚ6í6ôÚ6 BÆi�½£šË¢Ê¿³“°ï´θ�·é·÷À‘À�»Ô»Ƚ×°˜±ŒÈ±ÇÊÃðÄ£ÄÛÈþ¥�©·¬¼¯í®«¡ì£„ Þ °¥è›Þ𣛽™ÿ÷ýû°û—ˆê† âÿ¯ Þ‹°‚úÚÇ> šË “° ï´ é·“» þ¥ ¼¯ ½™Ïä¯žæ¯Æy¹¨ÆyÌ»Ê[ÇÇÊ[›†›†Ê[°ÿ°ÿ‰ö üè‰ö °üƒö üè†ö °üÕ¢º½«� Ùa õaÁç°þ6«Å°ý6 Õ7Õ7�İÖ7¦Ù6×7°@Ù6Ø7 error_dropÁÙ6Ù7 outer_dropÁÙ6ß*I]@ÆDà«Å°UÿßMí»¯ÔNéëÔN°ÿÔN„kêÕ‘ɯ¯Õ¡lêÕ‘ɯžlêÕ‘ɯ…mêÕ‘ɯ‹mêÕ‘ɯ—mêÕ‘ɯˆmêÕ‘ɯìlêÕ‘ɯÐjêÕ‘ɯÓjêÕ‘ɯÄjêÕ‘ɯªjêÕ‘ɯçjêÕæjêÕ‘ɯ êÕ êÕUÿ ‘ɯçjêÕ‘ɯãjêÕ‘ɯêwÇêwêÕûA¹¨�þûAÇ�þûAªº�þûAé·�þˆg�˯”3ò®�þ”3­¯�þ”3–‡�þ”3²Í�þ”3ÑË�þ”3šË�þ”3•Ì�þ”3äÌ�þ”3ªº�þ”3é·�þ”3þ¥�þ”3¼¯�þÏiëBëBìB DefaultHasherÁíBóë ô™ldñÎaÇD·É�ð¯�ˆiÃØ°ÇD¢º¿Û¯Çò¯¡Ù°ÇD�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫêÕ”êÕ¸²;Uÿ£SÐú¯£´UÿÐú¯ÇD«ï°¹êÕ‡ð°�SÐú¯©ð°´ð°ÇD¢ºêܯÖñ¯ÊÚ°ÇD�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫ凔å‡Ýì)Uÿ˜ð°ÇDªñ°¹å‡†ò°äð°…<ö·+Ǯذž;Èš�þ£î°ž;�þ£î°º©–‡² –‡Ϩ;Ä�µ©–‡‹Ù°º©êÕèêÕµ²;º©êÕóêÕµ²;¼©êÕÔêÕµ²;µ©êÕ±Dº²;úﰘ𰺲;Uÿ˜ð°úï°µ©êÕ±Dº²;Ìð°äð°êô°äð°Ì𰺩¢º² ¢ºÉݯUÿÄ�µ©¢º³Ú°º©å‡è凉ò°Uÿº©å‡ó凥ö°¼©å‡Ô凥ö°µ©å‡±DÝì)ùñ°˜ð°Ýì)Uÿ˜ð°ùñ°µ©å‡±DÝì)¯ò°äð°­÷°äð°¯ò°Øi£î°Üiò¯£î°Üi½™£î°ÜiÈš£î°Üi£î°í¦£î°õIÞì¯ëÔ°õI‡ï¯”Ö°õI³ó¯Í×°ÙFÂð¯®Ø°ÙFö·+àÙ°ÊIÞì¯ëÔ°ÊI‡ï¯”Ö°ÊI³ó¯Í×°•;éí¯ÇõÙ°è<ö·+ÙRœø„øœøÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^œøUÿ„øÙú°£3Ì»�þ£3Ç�þ£3ÝÁ�þ·,£î°ÎDÇ´¹+ÎD¢º“ñ¯ÎD¢º„ò¯çDéë�þœì¯çD°ÿ�þÇî¯çD·É�þÑï¯çD�þóò¯þDÇ�þéí¯þDÇ�þö·+Ë+Ì»ÞQÙ*Ù*¨Û*ÛËÙÜ*ì¨Ùÿƒ¡/eƒ �p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫ²Ýò•ãQ¿Û¯Œ�ŽÜ¯ãQ¿Û¯¢ºÇò¯ÞQ�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫÌ»�ýßPö·+àÙ°ßPö·+ŠÛ°ªSö·+ǰRö·+ó<ÍŠÙú°¾ú°™Ú°Ùú°Uÿ¾ú° Ùú°ãQ«ï°úï°ãQ«ï°Ìð°ãQêܯ¢ºÖñ¯ãQêܯŒ�¹Ý¯ãQªñ°ùñ°ãQªñ°¯ò°°RÞì¯æÛ°ØÚ°R‡ï¯•ܰØÚ°R³ó¯ÄܰØÚæQÑï¯ÅÖ°ŽR„ò¯Ï»æQ„ò¯©×°�SÌŠÌŠ“ºÏŠ�Њœ“D^)c˜þOþ«ï°úï°Ðú¯ÀR‘ƒ±˜ð°ŠSÌŠÌŠ“ºÏŠ�Њœ“D^)c˜þOþ«ï°Ìð°Ðú¯ÀRúƒ±äð°ŽR“ñ¯Ï»æQ“ñ¯øÖ°�SÌŠÌŠ“ºÏŠ�Њœ“D^)c˜þOþªñ°ùñ°Ðú¯ÀRˆ…±˜ð°ŠSÌŠÌŠ“ºÏŠ�Њœ“D^)c˜þOþªñ°¯ò°Ðú¯ÀRñ…±äð°ãQ�ð¯·É�ˆiãQéí¯Çü†­Séí¯ÇæQ±í¯êÕ°ãQ�Š�Šæ�L�Š�‘Š‚‘L²=²=J/VÔáËƒŠƒŠÜ‹…Š�Ð<†ŠŠÐ< 0{?i—ö·+†øÝÁâûÓR쇱„øíQ쇱†øŽR´¹+•ö©i‚÷ Èä©i‚÷ ©ï ©i‚÷ 凩i‚÷ ²Ý¾¢º±Ç&ÃÇ&¸êÕî¼&´Ç&¸å‡î¼&ûµ¯”êÕ‡ð°”准ò°ÔêÕµ²;Ô凥ö°èêÕµ²;è凥ö°ô ٤農 –‡Ϩ;Ä�³ –‡„�IÄ�² ¢ºáõ°Ä�³ ¢ºÆÝ¯Ä�óêÕµ²;ó凥ö°Ë뺯캯²Ý¶ÏÄÏ˺»¯í»¯²Ý¶ÏÄÏ ¾Ïä¯�þÜ䯚¾°Uÿ Üä¯ ¿Ïä¯�þÜä¯Èö¯Uÿ ÍÏä¯�þ£å¯Ü䯃§; £å¯ ®Ã° ÒÏä¯�þâ寃§; â寄ޱ ¾žæ¯�þ«æ¯“�± «æ¯ ¿žæ¯�þ«æ¯É�± Ížæ¯�þîæ¯«æ¯ƒ§; îæ¯ Á¿° Òžæ¯�þ­ç¯ƒ§; ­ç¯¯�±äÈä¶ÏÛÆä²Ý¶ÏÛÆŠÛ¾¯éÆ)öÀ¯‹Û¾¯éÆ)꾯ù¾¯Š¶Ç&º²;öÀ¯‹¶Ç&º²;꾯ù¾¯Šýµ¯Ýì)öÀ¯‹ýµ¯Ýì)꾯ù¾¯ ´�þ“¾°ª¾°óDéë�þœì¯�Õ°ŽÕ°óDÇ�þ±í¯¡†\„Ö°óD°ÿ�þÇְµÖ°óD·É�þÑï¯ÛÖ°èÖ°óD¢º�þ“ñ¯Ž×°™×°óD¢º�þ„ò¯Ž×°™×°óD�þóò¯â×°íװʲÝóŽÂ�˲ÝÔ›Â�Ï–‡Ôò¯Ð–‡þÁ‰ÂÏ¢ºãñ¯Ð¢ºþÁ‰Â´¥í ùÚ »¶¯¶¥í ùÚ ƒ§;áÆ:µ¥í ùÚ ƒ§;áÆ: Äò¯×�‚÷ ñä¯ˆå¯ Ä½™°ÿ‚÷ Àæ¯ˆå¯ Êò¯ò¯×�¸å¯Åå¯ Ê½™½™°ÿƒç¯�ç¯ ÊÈš½™°ÿƒç¯Çç¯ Êò¯×�¸å¯£ ±DÇ·É�ˆiÃØ°îذýذ±D¢º¢ºÇò¯¡Ù°³Ù°ÑÙ°±DÍŠÇü†õÙ°–Ú°¥Ú°±Dº²;úï°˜ð°êô°ùô°±Dº²;Ìð°äð°êô°¹õ°±DËݯ¢ºÖñ¯ÊÚ°ëÚ°ûÚ°±DÝì)ùñ°˜ð°­÷°¼÷°±DÝì)¯ò°äð°­÷°ü÷°Þ;ǮذŸÛ°·Û°æjêÕ‘ɯ“ë°´ë°ÙRœø„øÏú°¯û°�SÐú¯©ð°´ð°ìQÇêÕ°îØ°ŒÚ°ìQ·ÉÅÖ°ÕØ°䨰ìQ¢ºøÖ°³Ù°áÚ°ìQ¢º©×°³Ù°ÂÙ°üIéëëÔ°úÛ°ŠÜ°üI°ÿ”Ö°©Ü°¹Ü°üIÍ×°×ܰæÜ°ó<ÍŠÙú°¾ú°Ý€±뀱¹êÕ‡ð°¹å‡†ò°¼˜ð¿˜ð»’‰$­mřǙș­É™Ê™àË™óG*¤�R{9  řǙș­É™Ê™àË™óG*¤�R{9 �˯ �˯UÿõÂÚ¯Ì–Ú ¤Ú Î–Ú ¤Ú šÚÿ›Úÿˆ ÚÿŠ Úÿ‹ Úÿ‰ Úÿ°F·¬¯‰­¯•­¯©êØøØÒÕŒÕÚ—Ïú÷¶�ø·ëû¯êØ¢ì µžæ¯�þ©À°ö ¯Àø ¯Àû ¯Àþ ¯À»¾æËè¾¾æËèÁçŒ Ëè »–Á°­Á°Ü9¼ô¯Ý9Åö¯áÆ:º¦Š$Ôÿ÷ÊûÑÿ÷ÈòÒÿ÷ÈòÔýûÊûÑýûÈòÒýûÈòÔœùÊûÑœùÈòÒœùÈòÔìùÊûÑìùÈòÒìùÈòÔÈúÊûÑÈúÈòÒÈúÈòÔ°ûÊûѰûÈòÒ°ûÈòÔÌøÊûÑÌøÈòÒÌøÈòý6ëç°áú´ ÷‘ŒCò®ŒCâÿ¯ŒC­¯ŒC¹¨�CÞ‹°ŒC¨½ŒCûÚ ŒCÌ»ŒCéëŒCÇŒC›†ŒC°ÿŒC²ÍŒCÑËŒCšËŒC•ÌŒCäÌŒC“°ŒCªºŒCé·�CÝÁŒCÝÁŒC·ÉŒC¼¯ŒC»¤ŒC½™ŒCö¼ŒC¹�°ŒCÞ÷Œ3–‡Œ3Çÿ2êÕŒ3êÕŒ3ÝÁìw­¯øx¹¨íw¹¨ìwò®ìwσìwûÚ øxÌ»´wÌ»ìwéëçwéë�xÇ’xÇìwÇçwÇéwÇíwÇ�xêÕ’xêÕéwêÕ´wêÕìw�ÏìwÑËìwšËìw«¶ìwï´ìwÝÁíwÝÁ¼wÝÁìwȽìwþ¥ìw¢ºìwå‡ìw²Ý»wö¼íwö¼ìw¹�°ìw£´»w£´ìwíwøx­xíwðW¹Å �XØÚùWØÚðWò¯’Xò¯’XŸŸ Àì £ó‹¤ô‹ljô²ßk#�þùWý‹ñWé°íWé°ñW�ëðW�ëñWËŽðWä›êWä›ðW«šðWÊŸêWÊŸðW‘žðWò˜ðW��êW��÷WÇùWÇ÷W›†íW›†êW›†ùW‚óêW‹¢÷Wö íWö êWö �Xù¦ùWù¦�XÚ×ñWÚ×íWÚ×ùWÚ×ðWäüêWäü÷W°ÿ«XËõñWËõðWËõ÷WËõñWûóðWûóñW�ƒðW�ƒðW�»ðW±Ç�X¼«ùW¼««XаðWаíWа÷W¼¯ðWì£ýWŸ€ ÷Wù• ùW€—êWå×êWŒØ«X¿¸«X†Ê«XïŽ�X�XùW�XíWêWÒ_řǙș­É™Ê™àË™óG*¤�R{9 Ò©WÚá°¶_ƒ’&ôÀ%Ò_×�ЄÒ_Ç»�Ò_ýݶßÒ_°ÿÕþÒ_²Ý—Þ+Ò_–¤¶_׈$ã_׈$¶ËŽ²í æØÚæíò¯×�í½™°ÿ´H… ›kêÕõjêÕ áò¯×�‚÷ �þÞhÚ¦Ú¦Û¦ Sip13RoundsÁ �¸I£±¨%οË@Ï¿Ë@¡+�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫï´¡+�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫȽ¡+�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫþ¥‡D¹¨�þ‡DÇ�þ‡D�þ Çò¯×�‚÷ �þ ǽ™°ÿ‚÷ �þÃX¹¨ÄX×�ÃXÇÃXˆËŽ²í Š½™°ÿ‚÷ �þ‘½™°ÿ‚÷ �þÁ*—þ°Á*µpµp째pí óo¹pºŒóoºpüðóo¥hECØ8Gö¼¯ò¯×�‚÷ �þ¯½™°ÿ‚÷ �þ”D¹¨�þ”DÇ�þ”Dªº�þ”Dé·�þ”D�þ±aØÚ»a·a±a¯F·¬¯½Fò®�þ½F­¯�þ½FÞ‹°�þ½F¨½�þ½FûÚ �þ½FÌ»�þ½FÇ�þ½F›†�þ½Fí½¯�þ½F²Í�þ½FÑË�þ½FšË�þ½F•Ì�þ½FäÌ�þ½F«¶�þ½F“°�þ½Fï´�þ½FÝÁ�þ½FȽ�þ½F·É�þ½Fþ¥�þ½F¼¯�þ½F»¤�þ½F½™�þ½Fö¼�þ½F¹�°�þ½FÞ÷�þ½F£´�þ­p­¯­pò®­pσ­pûÚ ­péë­pÇ­p�Ï­pÑË­pšË­p«¶­pï´­pÝÁ­pȽ­pþ¥­p¢º­p凭p²Ý­p¹�°­p£´­p¤Ë޲í Å6§ÿ¯ù#ø#÷ØÚ÷ù ÏÏä¯�þ Ïžæ¯�þ ´žæ¯�þ²)캯²)ºÅ‘Mò®�þ’Mò®�þ‘M­¯�þ’M­¯�þ‘MÞ‹°�þ’MÞ‹°�þ‘M¨½�þ’M¨½�þ‘MûÚ �þ’MûÚ �þ‘MÌ»�þ’MÌ»�þ‘MÇ�þ’MÇ�þ‘M›†�þ’M›†�þ‘Mí½¯�þ’Mí½¯�þ‘Mààáµ¢âóï  ®+y`0 �þ’M†Ë±�þ‘M²Í�þ’M²Í�þ‘MÑË�þ’MÑË�þ‘MšË�þ’MšË�þ‘M•Ì�þ’M•Ì�þ‘MäÌ�þ’MäÌ�þ‘M“°�þ’M“°�þ‘Mï´�þ’Mï´�þ‘MÝÁ�þ’MÝÁ�þ‘MȽ�þ’MȽ�þ‘M·É�þ’M·É�þ‘Mþ¥�þ’Mþ¥�þ‘M¼¯�þ’M¼¯�þ‘M»¤�þ’M»¤�þ‘M½™�þ’M½™�þ‘Mö¼�þ’Mö¼�þ‘M¹�°�þ’M¹�°�þ‘MÞ÷�þ’MÞ÷�þ‘M£´�þ’M£´�þ¤Cò®�þéCò®�þèCò®�þêCò®�þéC­¯�þéC¹¨�þ C¹¨�þ¬C¹¨�þŸCÞ‹°�þ¤C¨½�þéC¨½�þ C˜â�þàCÌ»�þèCÌ»�þ¤Céë�þéCéë�þ Céë�þ¤CÇ�þåCÇ�þ¨CÇ�þéCÇ�þàCÇ�þèCÇ�þ CÇ�þŸCÇ�þêCÇ�þ¬CÇ�þéC°ÿ�þèC°ÿ�þ C°ÿ�þ¤C��—¬Ž—»’�¥ ’�À’­„ nÁ)�þ¤C——ÕÛ˜¾¾’™À’Xv“ÝD(÷�þ¤Cƒƒ´Ù„° ’…à ’†¨¤’‡failÁ’ˆdepthÁ’#_vâ…�>G�þàC²Í�þèC²Í�þ·CÑË�þéCÑË�þèCÑË�þ¶CÑË�þåCšË�þéCšË�þàCšË�þäCšË�þ CšË�þàC•Ì�þèC•Ì�þàCäÌ�þèCäÌ�þ·C«¶�þéC«¶�þ¶C«¶�þêC«¶�þàC“°�þéCï´�þéCªº�þ Cªº�þêCªº�þéCé·�þ Cé·�þêCé·�þ¨CÝÁ�þéCÝÁ�þàCÝÁ�þêCÝÁ�þ¤CȽ�þéCȽ�þéC·É�þàC·É�þèC·É�þ C·É�þéCþ¥�þèCþ¥�þéC¼¯�þàC¼¯�þèC¼¯�þéC»¤�þàC»¤�þèC»¤�þ C»¤�þéC½™�þèC½™�þ C¢º�þ¤Cö¼�þéCö¼�þàCÞ÷�þêC£´�þ¨C�þèC�þ­C�þŸC�þéC�þ C�þ¬C�þ¾–‡�þ¿–‡�þ¬¿Ë@Åp¹¨ÅpÇÅpÝÁÅpö¼ÅpÅpé8°–°é8À—°é8И°é8à™°é8ðš°é8€œ°é8��°é8¶Šé8¢‰é8Œ–é8¾•é8ý”é8Ø“é8ÍÞé8Ô»é8ÿ÷é8ýûé8œùé8ìùé8Èúé8°ûé8Ìø ìÏä¯ ìžæ¯Å9âñ �þÅ9àµ&�þÅ9¶Š�þÅ9¢‰�þÅ9ÍÞ�þÅ9Ô»�þÅ9Èš�þ¾9�þÅ9�þÞ9Û9€1‘»€1Ù¹€1¢Ê€1θ€1�©€1í®Š1‘»ˆ1‘»Š1Ù¹ˆ1Ù¹Š1¢Êˆ1¢ÊŠ1θˆ1θŠ1�©ˆ1�©Š1í®ˆ1í® ½ò¯ò¯ ½½™½™ ½Èš½™ ½ò¯Õò¯Õ–‡Õ½™º̹Èšºò¯ºêÕÈšºå‡ÈšºïBÇ´¹+�þÚBÇ´¹+ÚB¢º“ñ¯ÚB¢º„ò¯ÅBÇ´¹+§"œø¨"œø§"¨"þ'ñ–‡–Pº»¯–PÑﯖPÌŠÌŠ“ºÏŠ�Њœ“D^)c˜þOþ­‡±âû–P�Û¯–P„ò¯–P¬Ü¯–P“ñ¯–Péí¯–P²Œ²Œþ•µŒ—ÍJ¶Œ˜ÍJ·Œ÷ÍJ¸Œ¶ÍJÉ by­]òÚý°ò•–Pœì¯–PÇPóò¯–PâŠâŠPeekableÁäŠ�„FåŠpeekedÁ„F¤™Â·|&Ú·¬¯–PƒŠƒŠÜ‹…Š�Ð<†ŠŠÐ< 0{?i—Èè±–PƒŠƒŠÜ‹…Š�Ð<†ŠŠÐ< 0{?i—º»¯–P©È°–PñȰ–P¹É°–PƒŠƒŠÜ‹…Š�Ð<†ŠŠÐ< 0{?i—�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫ̹–P쇱–PƒŠƒŠÜ‹…Š�Ð<†ŠŠÐ< 0{?i—«ï°–PƒŠƒŠÜ‹…Š�Ð<†ŠŠÐ< 0{?i—�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫ�Ï–PƒŠƒŠÜ‹…Š�Ð<†ŠŠÐ< 0{?i—�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫšË–PƒŠƒŠÜ‹…Š�Ð<†ŠŠÐ< 0{?i—®­–PƒŠƒŠÜ‹…Š�Ð<†ŠŠÐ< 0{?i—ªñ°–PƒŠƒŠÜ‹…Š�Ð<†ŠŠÐ< 0{?i—€�–PƒŠƒŠÜ‹…Š�Ð<†ŠŠÐ< 0{?i—Õ¥–Pé°–PƒŠƒŠÜ‹…Š�Ð<†ŠŠÐ< 0{?i—©¬–Pý‹–P—ᯖP÷ᯖPò•–P·¬¯–Pö·+–P‚㯖PŽß–Pêܯ–Pªñ°–Pâ㯖P�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫ¹�°–PÇñ*–P⨖Pµpµp째pí óo¹pºŒóoºpüðóo¥hECØ8GÇ–Pµpµp째pí óo¹pºŒóoºpüðóo¥hECØ8GÝÁ–Pµpµp째pí óo¹pºŒóoºpüðóo¥hECØ8G–Pµpµp째pí óo¹pºŒóoºpüðóo¥hECØ8G–P¹+¹+�®»+ÛËÙ¼+ì¨ÙNüŸ[-𢂻±–P¹+¹+�®»+ÛËÙ¼+ì¨ÙNüŸ[-ð¢Ú»±–P¹+¹+�®»+ÛËÙ¼+ì¨ÙNüŸ[-𢲼±–PÚý°–PÙ*Ù*¨Û*ÛËÙÜ*ì¨Ùÿƒ¡/eƒ ú¾±–PÈ诖Pùܰ–Pøî–P´¹+–Pµò–PÅà–P¤ä–P’Ë–Pô²–Pñ†ÙNéëÚNéëÙN°ÿÚN°ÿÙNÚN§ çø¯ 3ò®�þ 3­¯�þ 3–‡�þ 3²Í�þ 3ÑË�þ 3šË�þ 3•Ì�þ 3äÌ�þ 3ªº�þ 3é·�þ 3þ¥�þ 3¼¯�þÛ–‡Íÿ÷Ìÿ÷Ïÿ÷Îÿ÷Êÿ÷ÍýûÌýûÏýûÎýûÊýûÍœùÌœùÏœùΜùÊœùÍìùÌìùÏìùÎìùÊìùÍÈúÌÈúÏÈúÎÈúÊÈúͰṵ̂ûϰûΰûʰûÍÌøÌÌøÏÌøÎÌøÊÌøœp¹¨ùn¹¨ún¹¨ùnò®ýnò®þnò®ùn¨½ýn¨½þn¨½þn–‡ýnéëþnéëùnÇýnÇþnÇûn°ÿýn°ÿþn°ÿýnÑËþnÑËýnšËþnšËýnï´þnï´ýnªºþnªºýné·þné·ýnÝÁýnȽýnþ¥þnþ¥ýn¼¯þn¼¯ýn½™ùnö¼ýnö¼þnö¼ûnþnýnþnÂD·É�ð¯�ˆiÁDÝÁ­‡±âûÁDŒ�¿Û¯ŽÜ¯ÂD¢º¿Û¯Çò¯ÁD«ï°úï°ÁD«ï°Ìð°ÁDŒ�êܯ¹Ý¯ÂD¢ºêܯÖñ¯ÁDªñ°ùñ°ÁDªñ°¯ò°€<�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫ�=Çñ*ýjêÕœ*Ÿ*£*ò®£*¨½£*ö¼¦*ò®¦*¨½¦*Ǧ*ö¼¬;¦¦×�×�¥+‚»±¥+Ú»±¥+²¼±Rò®�þRâÿ¯�þR­¯�þR¹¨�þRÞ‹°�þR¨½�þRûÚ �þR²�°�þRÌ»�þRéë�þRÇ�þR›†�þR°ÿ�þR²Í�þRÑË�þRšË�þR•Ì�þRäÌ�þR«¶�þR“°�þRï´�þRªº�þRé·�þRÝÁ�þRȽ�þR·É�þRþ¥�þR¼¯�þR»¤�þR½™�þR¢º�þRö¼�þR¹�°�þRÞ÷�þR£´�þ ² ‡ù¯†¾° ² ¿¿°—À° ² …Á°�Á°ÆëÞ¯ëޯƅ ÅžÆÛ†ì…ÆÛ†ô‡ÆÅžÅžÆÙ¤Ù¤Æ¼É¯¼É¯Æå‡̹ÆÿBÇéí¯�þü¹¨¡#°ø†ø½ŒÚý°ò•¾ŒÚý°ò•å=쇱†ø–¥ÌÊ%–¥ôÄ –¥“Ú–¥­¯–¥â´–¥Ò£–¥ÇŠ–¥³ø–¥æš–¥Ûæ–¥¹Å –¥ØÚ–¥ò®–¥‹Ü[–¥–æ –¥à¶–¥ò¯–¥ŸŸ Àì £ó‹¤ô‹ljô²ßk#ÈÈ PropertiesIÁ ɼ›ãÊ maximum_lenÁãËÊ’2ãÌlook_set_prefixÁãÍlook_set_suffixÁãΫ¢ãÏlook_set_suffix_anyÁãЂ�ãÑexplicit_captures_lenÁãÒstatic_explicit_captures_lenÁãÓÐãÔalternation_literalÁã�pw)œjü�þ–¥¼Š+–¥Ó¨°–¥¨½–¥ŽŽú¹�‚�’÷Ò0'm�Ô%–¥øŽ–¥ûÚ –¥Ù›–¥ØÙ –¥ÿ¶%–¥¡é–¥Ø“–¥�Ÿ–¥ä›–¥¹—–¥«š–¥ÊŸ–¥‘ž–¥ò˜–¥ãœ–¥��–¥×�–¥ú‰–¥Є–¥Ç–¥›†–¥Ïó–¥ô향إ–¥ù¦–¥ãØ–¥Ú×–¥¶ß–¥÷ß–¥ýÝ–¥äü–¥°ÿ–¥ïò–¥á�–¥ÖÃ%–¥ÑË–¥šË–¥«¶–¥ï´–¥ÝÁ–¥�»–¥Ƚ–¥˜±–¥ðÄ–¥¼«–¥«¡–¥ö¼Å*—þ°Å*ú¾±œ¥»�œ¥ú‰œ¥²Ýœ¥œ¥Ý;�þá;�þü*Çü*Ƚƒ+ǃ+šËƒ+ï´ƒ+Ƚƒ+þ¥ƒ+†+dž+šË†+ï´†+þ¥†+ª©­¯±©­¯°©­¯ª©ò®ª©¨½ª©σª©ûÚ ª©Ì»ª©é목ǰ©Çª©›†ª©²Íª©�Ϫ©Ñ˰©Ñ˪©šËª©•̪©ä̪©«¶ª©ï´ª©ªºª©é·ª©ÝÁ°©ÝÁª©Ƚª©þ¥Ç©¼¯ª©¼¯°©¼¯ª©¢º°©¢ºª©å‡ª©²Ýª©ö¼ª©¹�°ª©£´ª©°©ΩÇΩ穹¨ç©Çç©ÝÁç©Ƚç©ö¼ç©ç©„CÇ�þÿ¹¨î)캯î)ºÅî)ºÅ�nÝÁÝÁ�o¹¨�oÌ»×ØÚƃ$׿Ë@ÙËŽ²í éh¥º±ëh¥º±êh¥º±ðL’K¡ÿ°�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫ¼¯“K¡ÿ°Ѩ²ÑX¹Å ÑXØÚÑXò¯ÑX‹°±ÑX¯€ÑX›†ÑX‚óÑXù¦ÑXÚ×ÑXäüÑX¼«ÑXаÑXÑXÑå‡È«"Š*캯Š*ºÅŠ*ºÅ¢o¹¨¢oÌ»Ú*Ö‚M«o¹¨ªoÌ»ªoǪo«¶÷lêÕÎò¯×�‚÷ �þ¯Dò®�þ¯D­¯�þ¯D¹¨�þ¯D¨½�þ¯Dσ�þ¯DûÚ �þ¯DÌ»�þ¯DÇ�þ¯D°ÿ�þ¯DÑË�þ¯DšË�þ¯D«¶�þ¯Dï´�þ¯DÝÁ�þ¯DȽ�þ¯Dþ¥�þ¯D¢º�þ¯Dö¼�þ¯D¹�°�þ¯D£´�þÙX¹Å ÙXØÚÙX›†ÙX‚óÙXù¦ÙXÚ×ÙX¼«ÙXÙXÀ¨¹¨¹¿Í(³D¹¨�þ³Déë�þ³DÇ�þ³DÝÁ�þ³Dö¼�þ³D�þ�óí �þ�ØÚ�þ�À¥°�þ�Φ°�þ�Û§°�þ�ËŽ�þ�Ȩ�þ�’©°�þ�À÷�þ�‘Ò�þ��þé3êÕê3êÕ¡¶š>¿Û¯¢:âñ �þ¢:àµ&�þ¢:¶Š�þ¢:¢‰�þ¢:ÍÞ�þ¢:Ô»�þ¢:Èš�þ¢:�þ ¶ò¯×�îY¹¨îY˜¡;îYƒ’&îY¯€îYÇîY›†îYôíîYÅžîY‹¢îYö îYäüîYá�&îYÿ÷îYîâîYÉõîYÉ¡îYå×îYÝÇîYÔÉîY­žîY�ŸîYµµîY€ûîY�êîYá³îY¶Ç&îY’ª îYß AîYºÅîY£´ñYíõñYœñ ñY›†ñYôíñYÅžñY‹¢ñYö ñYýûñYÉ¡ñYå×ñYÝÇñYÔÉñY­žñY�ŸñYß AñYǵµñYÇ€ûñYÇ�êñY›†îâñY›†á³ñY›†ºÅñYË—AñY„âMÕ:âñ Ü‘°Õ:àµ&Ü‘°Õ:¶ŠÜ‘°Õ:¢‰Ü‘°Õ:ÍÞÜ‘°Õ:Իܑ°Õ:Țܑ°Õ:Ü‘°ã:Èš�þã:�þ†2‘»†2¢Ê†2θ†2�©è:Èš�þè:�þ‰2‘»‰2Ù¹‰2¢Ê‰2θ‰2�©‰2í®À™¹Å À™ØÚÀ™‹Ü[À™ò¯À™ä›À™«šÀ™ÊŸÀ™‘žÀ™ò˜À™��À™›†À™ù¦À™Ú×À™äüÀ™�»À™¼«À™À™€;àµ&�þ€;¶Š�þ€;ÍÞ�þ€;Ô»�þ€;�þ‡;ÍÞÊLÝÁÝÁ�þôBéëœì¯�þôBDZí¯�þôB°ÿÇî¯�þôB·ÉÑï¯�þôB¢º“ñ¯�þôB¢º„ò¯�þôBóò¯�þÉB¢º“ñ¯ÉB¢º„ò¯¬"œø¬"Ú)캯Ú)ºÅÚ)ºÅ–p̹–pÌ»–pêÕ–pÝÁ–p¢º–p凖p²ÝëMí»¯ÒFÂð¯ÑFö·+ÒFö·+åJ¡ÿ°Ѩ²åJÚý°ò•ºIÞ쯺I‡ï¯ºI³ó¯�;éí¯Çï;ö·+Ç’F·¬¯ä<Èè±ä<º»¯ä<ðŰä<Àưä<‰Ç°ä<ý‹ä<—á¯ä<¿Û¯ä<—�ä<ö·+ä<�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫ²Íä<Âï±ä<�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫÑËä<Ùð±ä<�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫ•Ìä<�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫäÌä<®­ä<�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫªºä<�p�p¡Œ pí óo¡pºŒóo¢püðóoÛê2ÝЫé·ä<²¼±ä<Ѩ²ä<ªñ°ä<Çñ*å<Çñ*ä<€�ä<Õ¥ä<¨±ç<¨±å<¨±ä<©¬ºjêÕºDò®�þºD­¯�þºD–‡�þºDÌ»�þºDÇ�þºD²Í�þºDÑË�þºDšË�þºD•Ì�þºDäÌ�þºDªº�þºDé·�þºDÝÁ�þºDþ¥�þºD¼¯�þý*æÿ÷æýûæœùæìùæÈúæ°ûæÌøÆDò®�þÆD¹¨Ñè�þÆD¨½�þÆDéë… �þÆDéë�þÆDÇÑè�þÆDÇ�þÆD°ÿ�þÆDÑË�þÆDšË�þÆD«¶Ó•�þÆDï´�þÆDªº�þÆDé·�þÆDÝÁ�þÆDȽ�þÆDþ¥�þÆD¼¯�þÆD½™�þÆDö¼�þÆDÓ•�þÆD�þËDò®�þËD¹¨… �þËD¹¨Ñè�þËD¨½�þËD–‡�þËDéë�þËDÇ�þËD°ÿ�þËDÑË�þËDšË�þËDï´�þËDªº�þËDé·�þËDþ¥�þËD¼¯�þËDö¼�þËD… �þËD�þËD�þž–‡�þ”+¹¨Ñè”+Ì»Ñè”+�ÏÑè£�þš+Ì»Ñè«$¬$ÜDûÚ �þÜD–‡�þÜD¼¯�þ ÝÏä¯�þ Ýžæ¯�þãDȽ�þ·+Ì»Ç$È$ŽE�þÚð”²�þÚȨ�þÚ’©°�þ’Eò®�þ’Eâÿ¯�þ’E­¯�þ’E¹¨�þ’EÞ‹°�þ’E¨½�þ’EûÚ �þ’E²�°�þ’EÌ»�þ’Eéë�þ’EÇ�þ’E›†�þ’E°ÿ�þ’E²Í�þ’EÑË�þ’EšË�þ’E•Ì�þ’EäÌ�þ’E«¶�þ’E“°�þ’Eï´�þ’Eªº�þ’Eé·�þ’EÝÁ�þ’EȽ�þ’E·É�þ’Eþ¥�þ’E¼¯�þ’E»¤�þ’E½™�þ’E¢º�þ’Eö¼�þ’E¹�°�þ’EÞ÷�þ’E£´�þ•Eò®•E¨½•EÇ•E«¶•EÝÁ•EȽ•Eþ¥•Eö¼•E£´ã�þ×`žªô‡×`€ªÛ†×`³¶Û†×`ÖáÛ†×`Öáì…×`øçÛ†×`œñ ©„×`σ©„×`–‡©„×`–‡×°×`ƒ’&ôÀ%×`Ø“©„×`¸˜©„×`ÿ–©„×`×�¶ß×`ÇÛ†×`Ǹï×`Ç×°×`›†¶ß×`›†×°×`Úרû×`ýݶß×`°ÿÕþ×`°ÿÒý×`°ÿÛ†×`ïòØû×`Ë Ë ä® Ì ½ ®Í Ñ‘&®Î Ð®Ï þ9®Ð �®Ñ à®Ò ¿®Ó ±’&®Ô Ì’&®Õ � ®†V-¿ôÀ%×`õ õ ä® ö �’÷ œ¡’ø ° ’ù à ’ú ¨¤’û Ñ‘&’ü þ9’ý ¿’þ ±’&’ÿ Ì’&’€� ’¼—¿Ò)ŠôÀ%×`€á°ôÀ%×`í½¯ôÀ%×`ý¾¯ôÀ%×`�»×°×`�»¸ï×`�»©„×`�»Øû×`ðÄ©„×`¸­×°×`¹ø×°×`«¡©„×`Ïó×`¸ï×`Ïó×`Û†×`¶ß×`Õþ×`Úá°×`×°™Eò®�þ™E­¯�þ™E¨½�þ™EûÚ �þ™EÇ�þ™E›†�þ™Eö¼�þÜ`žªÛ†ô‡Ü`æš©„©„Ü`€ªÛ†Û†Ü`³¶Û†Û†Ü`³¶ì…ì…Ü`³¶ô‡ì…Ü`ÖáÛ†Û†Ü`Öáì…ì…Ü`ÖáÛ†ì…Ü`øçÛ†Û†Ü`œñ ©„©„Ü`ÿ¶%ôÀ%ôÀ%Ü`¡é¸ï¸ïÜ`Þˆ©„©„Ü`Ø“©„©„Ü`¹—©„©„Ü`Ǹï¸ïÜ`Ç×°×°Ü`›†×°×°Ü`ýݶ߶ßÜ`°ÿÕþÕþÜ`°ÿÒýÒýÜ`°ÿÛ†Û†Ü`ïòØûØûÜ`á�ØûØûÜ`ãâ²ôÀ%ôÀ%Ü`�»×°×°Ü`ðÄ×°×°Ü`¸­×°×°Ü`¹ø×°×°Ü`«¡×°×°Ü`ÏóÏóÜ`ØûØûÜ`¸ï¸ïÜ`ÏóÏóÜ`Û†Û†Ü`¶ß¶ßÜ`×°×°¯h­¯¯hò®¯h¨½¯hûÚ ¯hǯh›†¯hö¼¯hø9ü9âñ �þü9àµ&�þü9¶Š�þü9¢‰�þü9ÍÞ�þü9Ô»�þü9Èš�þü9�þ¬E‡:âñ �þ‡:àµ&�þ‡:¶Š�þ‡:¢‰�þ‡:ÍÞ�þ‡:Ô»�þ‡:Èš�þ‡:�þ™1‘»™1Ù¹™1¢Ê™1θ™1�©™1í®± ò¯×�òQðŰòQÀưòQ‰Ç°òQÐí±óQ·¬¯òQ¿Û¯òQ—�¤Sö·+òQö·+òQ«ï°òQÂï±òQÙð±òQ®­ ‚»± Ú»± ²¼±ÆKѨ²òQªñ°Ÿ—þ°òQÇñ*Ÿú¾±òQº»¯üQÞì¯üQ‡ï¯üQ³ó¯òQÈè±ýR‘ƒ±üRúƒ±ýRˆ…±üRñ…±¤SÂð¯„ØÙ …ØÙ ‚ØÙ †ØÙ ƒØÙ ú±éëéëòQ€�µ²ÇÇú±ÇÇÊQ´¹+„Ïó…Ïó‚Ïó†ÏóƒÏóú±ù¦ù¦òQÕ¥„¶ß…¶ß†¶ßƒ¶ßòQ¨±„Õþ…Õþ‚Õþ†ÕþƒÕþ‹i£î°’i£î°²²êÕêÕòQ©¬ú±¨¹¨¹ú±ÝÁÝÁ„×°…×°†×°ƒ×°£Ü ’ ¾Ñ…™  ÜÒ ºô ÏæðË ¾ «´–è öÇÿ ù𫝠”·ß ¹ Ú œ ÎæòÖ ƒ í ¸ ¥ ‚ŸÒ„ »Î º¶« È € °òð ࣠õ¿ –¤š « �´Ý µ Ö âÑÊÖÛÓ ùí þÕ ï Ú� Ê‹ œÖ§ ¿ ³î Ê © à” Å ‡¡· ¬�ü í ÜŸ ñ’Û ±• Ñ ÇÞþ Òײ õúé §¤Öµ® ‘ˆ ˜… ê Æ Ü� èô³ Œø Ø› íÛŽ­¼Ù Î ’ Úû ΰ ñŠ£É ¿÷ÒËŽú­‚ ¹ æ ‰Œ ¿ ˆ¯ ‡à á Ô騕 ¦ „©× ãÀÊ ÖÊå Å ‡ »Îù ö°¯µ À   Ôˆ âÛ „ƒÝ • Š ´ ‘ £ ßÕ ¹½Òá Î Á ·ë Êõ ¨ € ü¬­þº± ļ Ý … ߀¨ ¢Û ‡ „˜Ÿ ÛÑ Îó ¬ ïå½ •³õÆç ãø™û® Þ ¸ › Ù ÙÕ ì · ü�ž»Ø ò ݃ ² Ž Í Ù ïÇ ¯ÿ ñߢ ô¾ •ª Ô ÚÒ øýì Ù€ ¸ÉŠ Õ¦ ¾ ²í É ¨ æ ßö“ Ä �¶ «Ž�û ‡ ì Ûž 𑨠°NÐ ” ÌÆÝý Ñôè ù¦Ì Õ­ ‡ �°„ ¼ é Å òÛ� ç ‹² Š÷ â š ×ìÚ�˜ Ÿ¬»‘ ÙÄú ÍÔÍ ‰öÈ ‰ ¾Ñ�ù“¬¸ å £ ×ßî‹ ¾ ‡® ©à Ó艔 â¿É ÀÉöä Ñ Ä ºî Íø õ�´ ¦ã ½¿ Óë‡ áÚ ƒ« ‚¥Ü »” ‰ ³ � ¢ ÞÔ ¸Æ ë ­ èà Í À ¶ê ɧ û㋜ý¹» Ü „ Þÿ§ „¡† ž Ð Úò ÍïÊ ¼ ”‚ ²ôæ Åâà÷˜­ ¶· š Ø äØÔ ¶ û€�× ºñ Ü­± � žØÁ Éîù– ¹ ®�þ Þ¡ ó½ ”© ³îÁÓ — à€ÔÙÑ ÷�üë ´Í ËØÿ ·° “šÔ¥ ½ ±ì È å § õ’ êà Žµ �Žú ªë � Úï�¯Ï ÜÐŒóç ø±¥Ë ÇÔ¬ † ü–¯» è Ä Úñ¾þŽ Á б ŒÖ댞— «ÂÌ ÃØÌõÇ ½«ÃÐø· ¿ä ¢ ÏíŠ äÝ ½ †­ ýš‰¨ß Ò— ç¶ “ ˆ¥ ‚¨á»È Ô÷ ® õã Ð à ¹í Ì÷ ³ ¼¥â ¾ ƆÒÙ ‚ª †¤Û “ Ò� ¡ Ó ÝÅ Ðõ €çñÌ ¿ µé Èâú›¬à ¸º Û çƒó× ¹ ¦ ƒ … Ó¼Ï ·ÌíäîÉ » ±“� å óñ ᤠöÀ —¥¬ µé¶ × ™ Ëã� ×úÿî ¹Ö ÈÎð ÛЂ ËŒ ד Ì À Èï Ë ª á• Æ ¸ †�ý ­  Ýò¼ “™ ²Ü À– ßÿ Ò ÓØÐ ³ öê û³¨Ê×þ ¯ ¶’ë� Ê ë Ç ä ‘ éõ�´ �ù ê Ùœ û î�Ú ® ¿ÅàÊÅÛÏò‹æ ¤Ê ÆÓÌ�û®º ç Š� À ‰° ›‹á ¥Õê– § ªäØ œ½ÁË ×˯ Æ ¼ˆ ÏÉ‘÷¶ œ¾Á ¡ ‰ Ü ã¼ ý™…„ˆ§Þ – µ ’ ¤ Ö àºÓö â Ï  ¸ì Ëö © � ý�ž² §¤á »Å½ ÙÑ…éº �© Ú ÚÚeç,Í;}”V¯core_intrinsicsÁderive_clone_copy_internalsÁð‰âÂÂIz]\91þüpcÉ´‡$…ÿ‚]´œÂÂIz]22˜¤EªÚ— Ò© Ú fmt_internalsÁfmt_arguments_from_strÁÂÂIz]Àöe1Ù¯�òqí,ã³ }©Ø Û›³fmt_helpers_for_deriveÁ¢g¡gÂÂIz]I¡–àÅewü¤ì%ÚÂÂIz]ô“Sæ‘‹8 ¹4ÚÂÂIz]´Yc?TÝ^qÿ,Á™œÛ›³Å�³¢g¡gÂÂIz]ðŠ»*¸E¦ó ·Õ ÚúûèÂÂIz]²¢Ë¬bÁ»ÒÚúûèÂÂIz]"IV9,fq•,¼Ÿ 3Û›³Å�³¢g¡gÂÂIz],Pølò“ îq®,îVkÛ›³Å�³¢g¡gÂÂIz]çºäì?ÜÖü߬�ÚÂÂIz]«Éµ%�Ý N~ž¬2,eöi_Û›³derive_eq_internalsÁ¢ŒÏ¾ÂÂIz]!G?Mì$èq,øÛ›³Å�³¢g¡gÂÂIz]/}^؉c�2e:,óË8Û›³훳ð‰âÂÂIz]aHiV-vÉ„¥O¬´œÂÂIz] 3nŽÇq™,ŒÓYÛ›³Å�³¢g¡gÂÂIz]÷n±]†‹;Ñï;ÚúûèÂÂIz]ΠupžçEõ¶«AüÛz(�’" hint_must_useÁliballoc_internalsÁÂÂIz] þòÑ••¶´$crate::panic::unreachable_2021Ážø…ëœ.Õü`˜¥³¤[ˆZÂÂIz]¢¡\Ñ_ˆ¼AoÔ$Šðu‚‚´Û›³훳ú Ì ÂÂIz]Â,0>DãŠÐqK,�%ªÛ›³Å�³¢g¡gÂÂIz]`šéË#ÎP] ³Š ÚúûèÂÂIz]æyÙÙÜnÉüè6” ´œÂÂIz]ô;�µ¡Ô].q¸,ÃËA Û›³Å�³¢g¡gÂÂIz]< «üí³Àøàë§-G˜¥³¤[ˆZÂÂIz]2�9+¦HÊn ÚúûèÂÂIz]âxȃo­ Å2ÚÂÂIz]Ò'BÅâëa éÔ ÚúûèÂÂIz]¼&—|ã>‚ɼQ)· ´œÂÂIz][yæíoCºR.$crate::thread::local_impl::thread_local_innerÁú ùØ „hQaåùethread_local_internalsÁ‚Ö– ŸgâfÂÂIz]»€JH �No“$•” zÛ›³훳ú Ì ÂÂIz]i¦û'ÎÓäc ÚúûèÂÂIz]•O�bp×ï–|ÄŽ …— ù ‘­³ÂÂIz]…òÒ3sìÞ ež,�2,l Û›³훳ð‰âÂÂIz]caØ”c½rÅ<˜G#’Û›³øôÂÂIz]1·j÷ø?Âùeí,ßuÚ Û›³훳ð‰âÂÂIz])D§Ga±¥ÆmÝŸ_Û›³ò¾ÂÂIz]4-ÂË#òfÚúûèÂÂIz] ¦[ß&'ÀeÈ,åÅ| Û›³훳ð‰âÂÂIz]ž¹n‹eeÒ,îI · Û›³훳ð‰âÂÂIz]{�Ðë† r Ü›œÚÂÂIz] Ná_£ª¶}LÊm¤ Û›³¢Ë¾ÂÂIz]fŒ4ŒÞè �¯ ÚúûèÂÂIz]•À+õdá•Ʉɿ%´œÂÂIz]HuI‚1¶ÔŒqñ,܃%È Û›³Å�³¢g¡gÂÂIz]±¹˜6wAÙeý,œ åÛ›³훳ð‰âÂÂIz]˜àç¼7>ÞpÉ„´† ½´œÂÂIz]<¬éGÿÌOë ì€%ÚúûèÂÂIz]yÙ¾œ�l ãqš,ø ™Û›³Å�³¢g¡gÂÂIz]•ZN* î„°ÚúûèÂÂIz]ü¸ÿGtùq‹,a*ÿÛ›³Å�³¢g¡gÂÂIz]îùÚýEê6ɼóp,¸´œÂÂIz]7Fi¸aÿ'i–4€÷ ù ‘­³ÂÂIz]·†O!/Å ,¥1ÚÂÂIz]‚‘ÉC¨…: üæÚúûèÂÂIz]Ë|¿­G=aÊõÚúûèÂÂIz]–NAFºVd±¢ÔË,îÛ›³ò¾ÂÂIz]ºï˜xùʯÉü¹% #Ô´œÂÂIz]v×Ö«ŠáuÍqè (Õ Ø¾,ƒÛ›³Å�³¢g¡gÂÂIz]£»dò!Hêq—,©Î¼Û›³Å�³¢g¡gÂÂIz]I|î£10õ$O‚ÚúûèÂÂIz]d'�Íš�™î8ÚúûèÂÂIz]K·ŸÞ\:¥Ã$crate::const_format_argsÁËùþŽ"`õÄ–]뜳ûœ³ŸœÂÂIz]áXÖ­-wu,eÒ,±&�Û›³훳ð‰âÂÂIz],9‚~êh÷Õqµ,á¥çÛ›³Å�³¢g¡gÂÂIz]=rÊ.çöhÙ Êë ÚúûèÂÂIz]êê&°W@ÑPƒ�ÚúûèÂÂIz]k’¤HA“TÉ„ðá´œÂÂIz]4Pš¥€À³ýùÙŽ"`C뜳ûœ³ŸœÂÂIz]�[W8ÙÅ7ep,ÂÏÛ›³훳ð‰âÂÂIz]ëZÌ庻eã,¡— Û›³훳ð‰âÂÂIz]Ýáè3…Ròóɼáàã´œÂÂIz]Ë»|ó�4í³æp­–Ž \ ˜¥³¤[ˆZÂÂIz]$£7]Ïqü,͆ÉÛ›³Å�³¢g¡gÂÂIz] ãÁã¶^ɼQ'�´œÂÂIz]`Ð¥ Ý  ¹Ó ÚúûèÂÂIz]zÛ7ú,ÉaéÉü± ß´œÂÂIz]úæ_„²Z×S¶œLœ,ýÛ›³¢Ë¾ÂÂIz]g˜”î.V~ÄþE#÷Û›³�¡³¢ŒÏ¾ÂÂIz];…Ç Â_ ,»‰ÚÂÂIz]3ÊÊŒ¡æáeÑ (Á ù¶,Û›³훳ð‰âÂÂIz]êˆwòɧ.jÉ¼Û 0å´œÂÂIz]:m»oÏ|¬që,ô‘Û›³Å�³¢g¡gÂÂIz]µ1v”æÉ¶† ÄéÅÚÂÂIz]Ø¥f²+pÎí³‡øÌƒ¶0½ ˜¥³¤[ˆZÂÂIz]zV5/³ðØo¥$¥º Û›³훳ú Ì ÂÂIz]hrÓô+ñ)‹É„³@â´œÂÂIz]>Êv,æEý� „ÄÚúûèÂÂIz]¯Ín�°Œ’`€À³âù¦Ž"`U뜳ûœ³ŸœÂÂIz]7ÇU]�ylQeÙ,¬¿ãÛ›³훳ð‰âÂÂIz]”Îñ¥‘ qÎ,â 9Û›³Å�³¢g¡gÂÂIz] KÛB¿±|À?@ Û›³ò¾ÂÂIz]ø&mOÞ¨¤üÒÅ,¥Ý{]º �•‹ÂÂIz]«„0PMQɼ‘8%^´œÂÂIz]GjY~_d!Ô �® ÚúûèÂÂIz]×QËT¤ê— †óÚ뜳ûœ³ÂÂIz]ûÄ¥?s´Feú,‚— QÛ›³훳ð‰âÂÂIz]tü˜ˆ7äE� œÚúûèÂÂIz]eõÈ’åùɼ…åX´œÂÂIz]³_=²žERóÚúûèÂÂIz]ß®a`G™6q‰,×(3Û›³Å�³¢g¡gÂÂIz]¾jo!²?‡D€À³Û ù« Ž"`뜳ûœ³ŸœÂÂIz]R+&–b*Ï ÎàÚúûèÂÂIz]¯s‡tÃ�¥ÉüÔ \´œÂÂIz]ý+äFê«æ¢q¹,î¡ Û›³Å�³¢g¡gÂÂIz]ñ«•­œ©¶~¢³Ë,wÛ›³�¡³¢ŒÏ¾ÂÂIz]À¯Æ”1ÿOÉ„£š ´œÂÂIz]ävp2Ç e‰,çK“Û›³훳ð‰âÂÂIz]–MAò½}�oɼ�Hj´œÂÂIz]·âq4B“j ôɽÚÂÂIz]S™-’‘ 'n5ÚúûèÂÂIz]çôÕË'”.eÊ,ú?PÛ›³훳ð‰âÂÂIz]Y»FGôYQ£ †� ÚúûèÂÂIz]Žpž^t7“‰†zÚúûèÂÂIz]èIÞ^0Påeâ,—ƒëÛ›³훳ð‰âÂÂIz]Z[ìg6Õ˜«í³âp¡Íú ˜¥³¤[ˆZÂÂIz]U`”�ù‘Cqù,ý¦{Û›³Å�³¢g¡gÂÂIz]ÈzHí×ÅɄڳ 5´œÂÂIz]Å®0ã`|vo‰$‰¡ sÛ›³훳ú Ì ÂÂIz]JR‘®Êeœ,…,ÿÛ›³훳ð‰âÂÂIz]»ŠóY�š³ $»ùÚÂÂIz]j ©mGü8qÃ,Î@#{Û›³Å�³¢g¡gÂÂIz]8‡˜P…ü�~Ï Á ’±,ëÛ›³�¡³¢ŒÏ¾ÂÂIz]jŠ![—U°- ”¾“ÚÂÂIz]ÿ?Ôü'òwç–4ð¼Êù ‘­³ÂÂIz]Wè{Ó±—e0,è�4Û›³훳ð‰âÂÂIz]·…ź®q²,û/ŠÛ›³Å�³¢g¡gÂÂIz]Z\áZåZc Ô¤Ú뜳ûœ³ÂÂIz]É>ëìƒQPɼø“u´œÂÂIz]ªØDEDÅ þñÚúûèÂÂIz]Ëîÿmc£‘×$ðšuÔ=‰Û›³�i€iÂÂIz]d”¾'«_òçɄإ ´œÂÂIz]DH{/á1£qË,Æ ·Û›³Å�³¢g¡gÂÂIz]"²‚ïóËÞÚúûèÂÂIz]ŽµÞ¨…,¯ê~|Ÿ?RÛ›³�¡³¢ŒÏ¾ÂÂIz]üòi].U “wÚúûèÂÂIz]¬…~fæfqiqë,¡8%Š Û›³Å�³¢g¡gÂÂIz]pêˆfqÇÉüÄ;,D!´œÂÂIz]NCD­8h ®§ ÚúûèÂÂIz]õ´6’\ ÊôɼåI ¡!´œÂÂIz]—:£<£Âqö,¼à N!Û›³Å�³¢g¡gÂÂIz]C,™‡apµßÚúûèÂÂIz]ùtIEG!˜ÚúûèÂÂIz]ï{ ´ç(Nq‡,a(ã!Û›³Å�³¢g¡gÂÂIz]Â2¾`Â8ÁÙ ›× ÚúûèÂÂIz]õryrPž: –ÑÚúûèÂÂIz]:ÇŠ¾‚Ne¸,åãa#Û›³훳ð‰âÂÂIz]òò,)`>mɼì8#´œÂÂIz]ƒ|…ï»@aq¡,ƒq,ä"Û›³Å�³¢g¡gÂÂIz]Ǻ—v‹}�ÄS� ÚúûèÂÂIz]ä΀`]B¶×L´ç¾ Û›³¢Ë¾ÂÂIz]´°‡¥†æÒ É„»8 $´œÂÂIz]ô"׆½�× XoÚ뜳ûœ³ÂÂIz]&«<“í�Je†,ÜÇÇ$Û›³훳ð‰âÂÂIz]ˆÕ@ò¢†4{ Ç-ÚúûèÂÂIz]ÊÕ·.@r÷‘É$ð,úÛ›³�i€iÂÂIz] êwvtÄ—0eA,Žåe%Û›³훳ð‰âÂÂIz]v@yÒé]/ ÓX ÚúûèÂÂIz],¶ÔØnjepÚúûèÂÂIz]ÖŽêØÞˈxqá,¢ã%Û›³Å�³¢g¡gÂÂIz]¥:'ƒÂ[mem,¬ù 7&Û›³훳ð‰âÂÂIz]áSOÄU¯ ðÉÌù£&´œÂÂIz]6Jy¯éÆ CqÚ,ý†¼%Û›³Å�³¢g¡gÂÂIz]) 9Éô51‰qÞ,‚à õ%Û›³Å�³¢g¡gÂÂIz].wjóÏþ²¶öLî[Ÿ#Û›³¢Ë¾ÂÂIz]¤Æ�OÐl�`Ë3ÚúûèÂÂIz]r#" ŽªFWÉ„ì– '´œÂÂIz]í¹d˜nsyÛeˆ,Ý ¦'Û›³훳ð‰âÂÂIz]pš×€ýláõÉ„�}'´œÂÂIz]:]UÀ„3 ¤§ØÚÂÂIz]ÑÄ?+ õ¸e¾,Â%#4(Û›³훳ð‰âÂÂIz] ÌQ]gzÚɤ¸Á Ⱦ,(´œÂÂIz]tã:¼Õ2'ÙÉüŽƒ&>(´œÂÂIz]Dð¥0¦«É”·÷l(´œÂÂIz]‰èw)Œ©šoç$ÒðªÛ›³훳ú Ì ÂÂIz]zvH’Dšµ/ ÚúûèÂÂIz]hß/á=—_´ÉüÜã )´œÂÂIz][Äq1¼o»q®,Ê"-¯(Û›³Å�³¢g¡gÂÂIz]ø™?ÔÉ„§Ëi)´œÂÂIz]€@òOÊA üº–"ÚÂÂIz]Ûh×Ço匀À³Úù˜Ž"`Ó뜳ûœ³ŸœÂÂIz]1þñz9Gi ¸ºÚúûèÂÂIz]ÙìÃÇã™ še×,Øš‘*Û›³훳ð‰âÂÂIz]Ê}FgÞPØ qW,�¢ç)Û›³Å�³¢g¡gÂÂIz]�€ne¥ ˜›ÚúûèÂÂIz]Æ‘¼gmÉ*r»<£Û 'Û›³øôÂÂIz]žk½¡eRe|,‚?g+Û›³훳ð‰âÂÂIz]$†jË@gü�÷† ÚÂÂIz]!"ÊQãEqè,›=å*Û›³Å�³¢g¡gÂÂIz]¬§N�<†¢µeò,ËP ,Û›³훳ð‰âÂÂIz]Õwf;�‰ëlÉ¼Ò Ù+´œÂÂIz]ºœ¡ÐÃ.Aóõ•ÚúûèÂÂIz]h&á’@,€ü·Öœ ÚÂÂIz]çë�2bxe¡,÷"Á,Û›³훳ð‰âÂÂIz]A䉾QæÿT «ÏÚúûèÂÂIz]× O->{)´É¼ƒ¾ É,´œÂÂIz]ѨÓMyÔ”qµ,¿¡v,Û›³Å�³¢g¡gÂÂIz]š’>aL.nÀ~Ÿ˜l,ã*Û›³�¡³¢ŒÏ¾ÂÂIz]½7Æ?ˆ 'É„ôj m-´œÂÂIz]Ç©²¿·Öu¿eä (Õ „±,.Û›³훳ð‰âÂÂIz]êETK©`q‚,ôûX-Û›³Å�³¢g¡gÂÂIz]zÖ ®YæÎƒ hfÚ뜳ûœ³ÂÂIz]Êæ*_†øeª,¤F¦.Û›³훳ð‰âÂÂIz]­´„�õb Ë– ÚúûèÂÂIz]eõQµÌÇ œñÚúûèÂÂIz]’ÕÿZƒõÉ„óŸÞ.´œÂÂIz]ZÇø5Û‹¶ßLµ¨ý+Û›³¢Ë¾ÂÂIz]ÿ¼Öœc€?ÙÉüÜÅ E/´œÂÂIz]¥\è'‚Å(º$ÚúûèÂÂIz]ÛWu¿‹‡êøe…,ãë0Û›³훳ð‰âÂÂIz]úÜÛ «üGeö,Ô[A0Û›³훳ð‰âÂÂIz]‘‚§ÖUàھɼº³0´œÂÂIz]•ã�8¤ì† ¡ÍÚúûèÂÂIz]nBõ¿J Ž(ÚúûèÂÂIz]"-‰Ò3îf1Éü¡f,¥0´œÂÂIz]\Œmu·ð?ào»$†Ÿ ã'Û›³훳ú Ì ÂÂIz]Ãî òäŠÍ’ɼ†¡  1´œÂÂIz]Wèwq ë­µ¡ÎÚúûèÂÂIz]#éÐû<ƒÉ¤øÁ û°&,m1´œÂÂIz]I[�-Ú¡÷ɼ§ü›1´œÂÂIz]qð”³ïL±qæ,¡ÚH1Û›³Å�³¢g¡gÂÂIz]ÊûþÆ`Ò­`Ʉؑ2´œÂÂIz]}–M:ÞÏð_e+,ƒó“2Û›³훳ð‰âÂÂIz]A|›KTÓ~¬¾f0Û›³�¡³¢ŒÏ¾ÂÂIz]Ã÷úöü]‹q�,õƒ(2Û›³Å�³¢g¡gÂÂIz]Y�SEq? ášÚúûèÂÂIz]óÒ'†ˆ,ðqÖ,ˉ‘2Û›³Å�³¢g¡gÂÂIz]þ±uÊç}~º¼Ùÿ0Û›³�¡³¢ŒÏ¾ÂÂIz]®æ…-”3 lÐ� ÚÂÂIz]ïQò¬+ɼªn¯3´œÂÂIz]üÅ$´Ç0Úqê,ë 0[3Û›³Å�³¢g¡gÂÂIz]êƒõXœŽO~çá;È1Û›³�¡³¢ŒÏ¾ÂÂIz]Ô9w\LƒŠÚúûèÂÂIz]�yÃ�éyÿpɴί‚4´œÂÂIz]·FÖâðp½òÚúûèÂÂIz]TŠm±�b  Ä·ÚúûèÂÂIz]F‡!ÖšS e—,�¡ s5Û›³훳ð‰âÂÂIz] ¡O ëÄ7e°,„ѯ5Û›³훳ð‰âÂÂIz]Kv>D /Ø·žTÁ2,¥™‘_Û›³÷¾ÂÂIz]}&y·Ujqà,š�=5Û›³Å�³¢g¡gÂÂIz]v^v¯Z–?q,ºnt5Û›³Å�³¢g¡gÂÂIz]v›õ8nÏœ¶É¥¸Õ ð¶,16´œÂÂIz]TNÕmqÿ,°ËÞ5Û›³Å�³¢g¡gÂÂIz]WžÁ˜Âðá È… ÚúûèÂÂIz]±·†•Ê0ýei,�¯+7Û›³훳ð‰âÂÂIz]¿ýL²ËTœeß,�¨g7Û›³훳ð‰âÂÂIz]çè§kñžeÔ,êà£7Û›³훳ð‰âÂÂIz]‚bíve®àG Õï ÚúûèÂÂIz]S†�eCeØ,×w 8Û›³훳ð‰âÂÂIz]fJœdßfx$crate::assertÁ�É›‡T]�±ù]Û›³˜¥³ƒgeneric_assert_internalsÁ±œÂÂIz]ñ÷ºe<oõ$½`/Û›³훳ú Ì ÂÂIz]—[ž/œÛì6ÉüË[.‰8´œÂÂIz]1$ÊÜL_wR Ú뜳ûœ³ÂÂIz]S>5>óÊàÚúûèÂÂIz]23„r|_a6>õÚúûèÂÂIz]¯+þ÷%MJÉì…” F9´œÂÂIz]µèÚÑàü�½‚ÚÂÂIz]DÂÛžaÚ‡·£T‘Ñ,Û›³÷¾ÂÂIz]–Ö¡�“�y.Éü�G #Ñ9´œÂÂIz]9[Fãÿ¿‚Šqå,ƒÁ~9Û›³Å�³¢g¡gÂÂIz]C .áÃÆ –ɼûÐ8:´œÂÂIz]™}߇«€3_~œÄ‚8Û›³�¡³¢ŒÏ¾ÂÂIz]·•4�þ¶ É™ÚúûèÂÂIz]‚Ò§ç%BQ€À³ÒùŠŽ"`ê(뜳ûœ³ŸœÂÂIz]%h2¸Æë¶ÔLšð8Û›³¢Ë¾ÂÂIz]ã"0ÙÊ9� lÝ� ÚÂÂIz]Œ}-· Ž™ ÚúûèÂÂIz]/Õ0§NŸ~uɄĎ<´œÂÂIz]+t]lUu’Œ´æÉ“ ‡T]YÛ›³˜¥³ƒÃŒ´±œÂÂIz]}QÐïo¦ßqì,Áª <Û›³Å�³¢g¡gÂÂIz]¶Å(¿N›ˆVüØÌÃÚÂÂIz]ŒS-ç>¶}ÊñÚúûèÂÂIz]¹áòÙR[Bɼ®�+!=´œÂÂIz]°Ø°�¢‡Ø€À³ý ùÜ Ž"`d+뜳ûœ³ŸœÂÂIz]ûËqì‚R«-ɼ€ö Ž=´œÂÂIz]Zó“ ¬e•,µŸ  >Û›³훳ð‰âÂÂIz]»ñ­ˆ¶žMq­,®Ov=Û›³Å�³¢g¡gÂÂIz]‡qFÜ­O¢°rž<£2,~:Û›³øôÂÂIz] ξ뼋ˆÜÉ„è! b>´œÂÂIz]>?$V~‚°qÜ,µ<>Û›³Å�³¢g¡gÂÂIz]B!wòøµ¥øÕ ̓~,�ý¿]¤œÂÂIz]Ø_ÏiŸáYe,ñ_?Û›³훳ð‰âÂÂIz]¬±Œn%#~¦þê<Û›³�¡³¢ŒÏ¾ÂÂIz]#,�·p6CLqÜ,ýõô>Û›³Å�³¢g¡gÂÂIz]×dÍZÉ0ëEÉ„§+­?´œÂÂIz]±˲å•.1qÌ,‚¤Z?Û›³Å�³¢g¡gÂÂIz]F¶®ì^ùF(qÔ,òX ’?Û›³Å�³¢g¡gÂÂIz]ñ(Dç'Üì&< ÚúûèÂÂIz]=ÞŒuPG6ÞÚúûèÂÂIz]ªé}O@×Àqó,‰¢%)@Û›³Å�³¢g¡gÂÂIz]žTåïÞªëÚëÚúûèÂÂIz]€2 ûÕiàw¶ýL® >Û›³¢Ë¾ÂÂIz]Bùõ5Šù <š1ÚÂÂIz]i, ²~(b €ÏÚúûèÂÂIz]_áã‰bÚe�,·�+BÛ›³훳ð‰âÂÂIz]ø¸>رi¼êõüÙÑN,º;�ÙÂÂIz]K(G›[”ìeµ,²ƒ nBÛ›³훳ð‰âÂÂIz]‚;‹slDìqñÚúûèÂÂIz]¶x„WºFɼ‡>tB´œÂÂIz]w$ƒBTr£<óÐ,ñ>Û›³øôÂÂIz]÷¯„ö5Ÿ8Éüµ‰2×B´œÂÂIz]õ¢ ×LKUte§,Ÿ<hCÛ›³훳ð‰âÂÂIz]Jc¯èiÿe™,…Ó¤CÛ›³훳ð‰âÂÂIz]ö’€ÈÒ¦… ²™ÚúûèÂÂIz]ДÄ+¶}?eK,ú$DÛ›³훳ð‰âÂÂIz]çëâµUf0ÕeÔ,ƒðJDÛ›³훳ð‰âÂÂIz]ÀÔY¯~ìÉü•6"D´œÂÂIz]ËHÎiÉ,¼e¸,¼Ë´DÛ›³훳ð‰âÂÂIz]{ò:–KÝ9 ã¹ÚúûèÂÂIz]=¢‡ Ë›CAÚúûèÂÂIz] ý{Î+¶ãL³—ÜAÛ›³¢Ë¾ÂÂIz]YMß)ÕµÔqé,õ– ¢DÛ›³Å�³¢g¡gÂÂIz]ïêº^èeÞuɼÇ([E´œÂÂIz]¦�µ–@›¯6$crate::thread::local_impl::thread_local_process_attrsÁù ù× ˆX¹aýŽ3$aÕ²³´¨ÂÂIz]ÿšÚ¿RÞße“,Ž” _FÛ›³훳ð‰âÂÂIz]�+¬T>y—–¬µ¡ e:ù ‘­³ÂÂIz]0â¥bí_®AèÚúûèÂÂIz]ÉÅSÅwâ#qÅ,‘G#FÛ›³Å�³¢g¡gÂÂIz]©‰*P¢(qü²‰‡ÚÂÂIz]ž«~9à˜qì,�HyFÛ›³Å�³¢g¡gÂÂIz]„¤§!nQJ ÄìÙÚÂÂIz]îïð‚:é€À³³ùÑŽ"`n5뜳ûœ³ŸœÂÂIz]7 øÔ%Ëo5$Þ¯§>Û›³훳ú Ì ÂÂIz]®§¹´¢jL·¥TºIÛ›³÷¾ÂÂIz]»v¬4 †áÚúûèÂÂIz]¬ZfëGˆ»üæÐGÚÂÂIz]¶Ö‰…Sµå¶ÙL¾¿LEÛ›³¢Ë¾ÂÂIz]õApÉoÐôqÇ,Ï„HÛ›³Å�³¢g¡gÂÂIz]ØÓÒÓaÆ~}Æm~FÛ›³�¡³¢ŒÏ¾ÂÂIz]4 ôS¼Ã–|¿ª7=ù ‘­³ÂÂIz]5Uš¸ò/¸€À³Þ ù² Ž"`S7뜳ûœ³ŸœÂÂIz]ÇVI_Ú¬œÏ%†Û›³˜¥³ƒÃŒ´±œÂÂIz]0U4àŸÔÍ‘øÚúûèÂÂIz]LmmˆT'âÉ„ä€ íI´œÂÂIz]¿¨9~µzÈ(qû,µž šIÛ›³Å�³¢g¡gÂÂIz]ÌæÑÊ;Ú˜eš,ñ ·JÛ›³훳ð‰âÂÂIz]”Øð0¾¾<ÀÛÚúûèÂÂIz]|zK�D¹3e‹,Z* KÛ›³훳ð‰âÂÂIz]Ùnº¾pˆ�\ ßôÚúûèÂÂIz]KÔ±;s³†|éÚúûèÂÂIz]5§žÔ;Ÿëɼ¯Ú WK´œÂÂIz]ãøc˜š”Ëu ã ÚÂÂIz]xå]׆:Ô·¢TÈË,$Û›³÷¾ÂÂIz]P}!£ÙOöÉ„¨&ÞK´œÂÂIz]¿Ýb§ÜÚ·íüëÂU+ÚÂÂIz]wÀ–·°%›åɼò#2L´œÂÂIz]�\?"†1Ž&eè (Õ Ñ¾,ÆLÛ›³훳ð‰âÂÂIz] Žà�±Ä_¸e—,¢ÎMÛ›³훳ð‰âÂÂIz]¦—�ÿµ?Ù–|ñÒAù ‘­³ÂÂIz]È­¸.¢ï¹ ì�ÚúûèÂÂIz]Ä̵\Å(×yÿ¨³Êùü–\`ÔF˜¥³Ï¢[ˆZÂÂIz]!8»VÂ×§á yÚ뜳ûœ³ÂÂIz]aµ‡b,k�eÍ,öRNÛ›³훳ð‰âÂÂIz]Yõ ÅjRq´,ÆŸgMÛ›³Å�³¢g¡gÂÂIz] P“¶érok;ÚúûèÂÂIz]£w$;§»Vµ ¤¡ÚúûèÂÂIz]Xá_J {ÿ¨³üù×–\`H˜¥³Ï¢[ˆZÂÂIz]:HÏÑ\–q\qo,ü:NÛ›³Å�³¢g¡gÂÂIz]Ë� ÛKT≶âL©ƒåKÛ›³¢Ë¾ÂÂIz]äLyçð¢'íɼìÞ,O´œÂÂIz]”å¼‰Ô ð  Ý"ÚÂÂIz]~Œ~L…Ñ™ìí³åpªŒ‰ ÊF˜¥³¤[ˆZÂÂIz]²-`aœÀæÀɼ�Ó¸O´œÂÂIz]S“ìÁO®UÁeü,ƆJPÛ›³훳ð‰âÂÂIz]ÄTæsüÎû>æÚúûèÂÂIz]k1~ B¥òq‹,¿Ú ÐOÛ›³Å�³¢g¡gÂÂIz]#°-¸ÀðP‘œ$–,¶0Û›³�i€iÂÂIz]Äú½Ó=‚P5ü²ùÓÚÂÂIz]?©*‘Ì~>rÄ<õE#4MÛ›³øôÂÂIz],†ŸnûKÿ :<Ú뜳ûœ³ÂÂIz][Dy ›¦eë,í­QÛ›³훳ð‰âÂÂIz]y‰) ™‘fo ”èÌÚÂÂIz]¬e¡]o˜É¼ÓÇ«Q´œÂÂIz]©»k½£hîe¥,žáUÐÚÂÂIz]a¡=U�œÌ¶mL¾ù æTÛ›³¢Ë¾ÂÂIz]�Þdå4oÜ$—$-#ÏÚúûèÂÂIz]ùN;v~£y+eë,š8%]Û›³훳ð‰âÂÂIz]¸Ž0Â6±´qó,¦† i\Û›³Å�³¢g¡gÂÂIz]ÞT?" ¨nü òÇÚúûèÂÂIz]ŽÖé×Ä(ï ­ñÚúûèÂÂIz]ÔŒ9üg¯xòÚúûèÂÂIz]b#°ü5üe‡,Z(^Û›³훳ð‰âÂÂIz]–òB>b÷ÁtÚÚúûèÂÂIz]ûCϯ 5`de·,ƒÈ^Û›³훳ð‰âÂÂIz]åH:¦‰­e¡,üp,º^Û›³훳ð‰âÂÂIz]N)ô:ç7Ýɼñ?‘^´œÂÂIz]{¬s¬A&â~×°çs\Û›³�¡³¢ŒÏ¾ÂÂIz]P`©êHÉÌ©ƒ þ^´œÂÂIz]Ë·ûûžœ'ü…J;ÚÂÂIz]ÝÙ„Í•ñá¶ä HÕ –±,E\Û›³¢Ë¾ÂÂIz]‰.×ä"—ŒCA ÚúûèÂÂIz]ˆn¸/(¿¸ÉüÂð+¼_´œÂÂIz] KùézþsÈq@,ùãh_Û›³Å�³¢g¡gÂÂIz]eÓ/œr~Éì,Õ]Û›³�¡³¢ŒÏ¾ÂÂIz]ùO”Qµ%åCɼüÒ``´œÂÂIz],´–ÝØñiÚúûèÂÂIz]ŸÒÆD$£×â öøÚúûèÂÂIz]Õž£¾Rs‡rá<™ã<]Û›³øôÂÂIz]i ª!fÙueÚ,ö†…aÛ›³훳ð‰âÂÂIz] ¬©ì–4œî‹Uù ‘­³ÂÂIz]ÉOëQVBOeÞ,û öaÛ›³훳ð‰âÂÂIz]ÎE€]_Cƒ~öê[�_Û›³�¡³¢ŒÏ¾ÂÂIz]"À½ÍP  õ—%ÚúûèÂÂIz]a³·¢p["»É„ב ë$ÛEDíÐÿ¨³Ùù––\`ˆ^˜¥³Ï¢[ˆZÂÂIz]ÎåK$\¨H5AÚúûèÂÂIz]Ú^~�Þ¨:qV,¾™ÝdÛ›³Å�³¢g¡gÂÂIz]ŸXKC2HÀ¶ÖL܉ˆbÛ›³¢Ë¾ÂÂIz]ó$ê~Ùª%o»$�Ûß\Û›³훳ú Ì ÂÂIz]òm çBxoè$•=]Û›³훳ú Ì ÂÂIz]e êØ ÿ�Örñ<È ŽbÛ›³øôÂÂIz]RÓU¡q„,a&ðeÛ›³Å�³¢g¡gÂÂIz]^ã•„Qe ¬Ö ÚúûèÂÂIz]{‡1y÷è�;^ØÚúûèÂÂIz].a ¯aKm©q ,â"‡fÛ›³Å�³¢g¡gÂÂIz]ÑdÂôJïq´,á‘ÀfÛ›³Å�³¢g¡gÂÂIz]�o ´ÕýŠqŸ,‘l,øfÛ›³Å�³¢g¡gÂÂIz]€üU=ØFÛ›³˜¥³ƒÃŒ´±œÂÂIz]¸(säYÈ÷ œŒ ÚúûèÂÂIz]'gÁÔB ÿÿ¨³ƒ ùã–\`¬p˜¥³Ï¢[ˆZÂÂIz]'÷·éÒ XÝÆÚúûèÂÂIz]î_/É©qt,Š!wÛ›³Å�³¢g¡gÂÂIz]ky"îÔý œ} Ú뜳ûœ³ÂÂIz]¶æ¾�¥ug]ɼí†ëw´œÂÂIz]¹ÀHÝÚ´¥Seì,ºª }xÛ›³훳ð‰âÂÂIz]4ô�àqÔ¡ ÷2ÚÂÂIz]2NÚÂ[ú7¾É´ß�zx´œÂÂIz]ô* ‰r0‘ɼØ(+§x´œÂÂIz]ŒÌzµ Yíÿ¨³ü øÚ Õ”5jr˜¥³Ï¢[ˆZÂÂIz]!´ ÎV¥Ì_q”,¶ž ‘xÛ›³Å�³¢g¡gÂÂIz]£a¾!ÍÀl\É„�ê Ky´œÂÂIz]RŽbèÿÉ­ ŽÕ ÚúûèÂÂIz]¥¯iŸå÷+qž,œ2,'yÛ›³Å�³¢g¡gÂÂIz]´_¾?»~"árÍ<À÷0vÛ›³øôÂÂIz]-™fG†Añ†eÜ,®<xzÛ›³훳ð‰âÂÂIz]¨¦�’øYDqÓ (Á ؾ,ÑyÛ›³Å�³¢g¡gÂÂIz]·�¦u)ðj÷É„¥<0Šz´œÂÂIz]ßÀ2 � g ”üÛÚÂÂIz][e“…õÕ\ o¦$øíqÛ›³훳ú Ì ÂÂIz]«ÚöÇ_¬›òqe,¸í”zÛ›³Å�³¢g¡gÂÂIz]AI4'Ø&+eÜ,öõ²{Û›³훳ð‰âÂÂIz]€ˆ±ûvvÉ„¤þŠ{´œÂÂIz]N÷D~"œ€ZrÈ<óÅxÛ›³øôÂÂIz]#}ZGdƒHqÓ,øR j{Û›³Å�³¢g¡gÂÂIz]Rå[¯ï…q,’¡{Û›³Å�³¢g¡gÂÂIz]Å!ÞŒµŒ3ɄӃ%[|´œÂÂIz]²®oeéÎP€À³á ù· Ž"`žj뜳ûœ³ŸœÂÂIz] ,5³Ò½rs �†%ÚúûèÂÂIz]a~Œ=v~ýª «zÛ›³�¡³¢ŒÏ¾ÂÂIz]\‚qÑ”FN‚²ÚúûèÂÂIz]÷¤1>GÍóq›,Å ã|Û›³Å�³¢g¡gÂÂIz]H¯�›˜üC  lˬÚÂÂIz]ï¨�od{qŒ,è(+A}Û›³Å�³¢g¡gÂÂIz]ÈÑ’üžœÉüÝÐE,ü}´œÂÂIz]îÕþMÍǵq²,ýj ¨}Û›³Å�³¢g¡gÂÂIz]�á÷ÃÍb[ ¹¯ ÚúûèÂÂIz]ö6¾ h~Qýo£$íÐ,¢uÛ›³훳ú Ì ÂÂIz]R•W:*   8Ú뜳ûœ³ÂÂIz]ë!‘dÉïò”q¦,Í!z~Û›³Å�³¢g¡gÂÂIz]mfÛQ.>�>q˜,àг~Û›³Å�³¢g¡gÂÂIz]óÌ!}Ú¤øf ”ÓÕÚÂÂIz]³ïÙ«@�Ç\:ÚúûèÂÂIz]¨[W­Gñ-qJ,¤=?Û›³Å�³¢g¡gÂÂIz]ŸΧùC®ñ€À³© ù Ž"`n뜳ûœ³ŸœÂÂIz]ã«R÷ q·,œ¹·Û›³Å�³¢g¡gÂÂIz]ÈzüîI2Á• †ˆ ÚúûèÂÂIz]t¼zåw1a�£ÚúûèÂÂIz]ö¶þJ"ˆÎ ŒÉ ÚúûèÂÂIz]ȱù;Ð`êÏ~㯗´~Û›³�¡³¢ŒÏ¾ÂÂIz]Ûüm™1’êWqè,à‘ ¾€Û›³Å�³¢g¡gÂÂIz]ž‹z§ÞWc ¶Ô ÚúûèÂÂIz]ÞÔ—ŠeÕÉ¼Ž (§�´œÂÂIz]—S§'e]Êɼ–† Õ�´œÂÂIz]lr¨ ÎCµ±œ³,QuÛ›³ò¾ÂÂIz]z6êëÓH°eÅ,ŠG#š‚Û›³훳ð‰âÂÂIz]˜Dê]ꆅÉü çs‚´œÂÂIz]53i$ml¬eì,–HƒÛ›³훳ð‰âÂÂIz]2l¨6r$¹ÿ¨³²ùÏ–\`q|˜¥³Ï¢[ˆZÂÂIz]¦Â—®¥p<e5,ׯ|ƒÛ›³훳ð‰âÂÂIz][ëQ)­Ð3QÉ„ÞKSƒ´œÂÂIz]Á~WC5ä¶¥L¯q€Û›³¢Ë¾ÂÂIz]¥¿F°:£SKRÚúûèÂÂIz]ØV»‘DS¼š~Ùº¿›�Û›³�¡³¢ŒÏ¾ÂÂIz]ùËs¤+LJeÇ,È„Š„Û›³훳ð‰âÂÂIz]wø»ÚE})Éü�Û.c„´œÂÂIz]2Z‡ïn qÐ,€1 „Û›³Å�³¢g¡gÂÂIz]Ùx믣q},¿mF„Û›³Å�³¢g¡gÂÂIz]’4æÕÜlûS¨¤ü�Ý,Úlº �•‹ÂÂIz]�ƒËùv×YDá ÚÂÂIz]1Û¡Õ±&™ÿ¨³ðø° Ïì™%ò~˜¥³Ï¢[ˆZÂÂIz]Íec´Œ\õ  %ÚúûèÂÂIz]Ě؈>7ŠÉ¼Îw È…´œÂÂIz]%¡tÝO.E¾eû,®ž Z†Û›³훳ð‰âÂÂIz]¤ç'‡žÚúûèÂÂIz]\1¡t�ß­¯ lï©ÚÂÂIz]ô)µýoqŠ,a)†Û›³Å�³¢g¡gÂÂIz]gð%�V6pÉü�l&,¾†´œÂÂIz]kï% ‹{ ÁæÚúûèÂÂIz]¿Âqdjkeª,ñ! ‡Û›³훳ð‰âÂÂIz]²du<®÷u÷ ¨± ÚúûèÂÂIz]¼U•…ßÌšu¶¢L½Ë,x„Û›³¢Ë¾ÂÂIz]nw.˜ASaO–¬¢óí{ù ‘­³ÂÂIz]¬ fS»óíA6ÚúûèÂÂIz]NOM‚ûeÌ,óE†ˆÛ›³훳ð‰âÂÂIz]ƒªÙ³¡> ”¢ ÚúûèÂÂIz]€~»ý„_Fí<€ÚúûèÂÂIz]¹]vƒÂB_í~⥃q†Û›³�¡³¢ŒÏ¾ÂÂIz]&@ãò`”eo,õ^‰Û›³훳ð‰âÂÂIz]e¶Ö|ÿg0|Ûü©Ä;Ý„˜¥³�‹ÂÂIz]â2¢†‡ í³äp§÷ƒ ¶€˜¥³¤[ˆZÂÂIz]>#‘¶†ZˆÉ„«Ä¤‰´œÂÂIz]lxìÕC-Õqú,ʳQ‰Û›³Å�³¢g¡gÂÂIz]@ýU’h@4?ɼQ& Š´œÂÂIz]JóPŽ4‡“e‹,¸Ú ›ŠÛ›³훳ð‰âÂÂIz]¡Hí–o€~œ’,&ˆÛ›³�¡³¢ŒÏ¾ÂÂIz]¥Yeàƒ¿Óɼî"°Š´œÂÂIz]TF²˜âÙqÄ,îE#\ŠÛ›³Å�³¢g¡gÂÂIz]¸m;=Ç¥Øôqê,¡ÿ•ŠÛ›³Å�³¢g¡gÂÂIz]u£´Y„Šx çÅÚúûèÂÂIz]ƒ¤|;–Z  ˆ˜ÚúûèÂÂIz]Í+áÒ¯´ îÿ¨³Øø× Ô¢5D…˜¥³Ï¢[ˆZÂÂIz]ŒP›‚b}áÉ„“¹ì‹´œÂÂIz]/{<ÛÉ¿¿q¿,­þ™‹Û›³Å�³¢g¡gÂÂIz]ïü ‘}Ó Ô·ŽÚÂÂIz]xXŒ4™™�¬É„²ƒyŒ´œÂÂIz]þ–56äcg—¶|L©?–‰Û›³¢Ë¾ÂÂIz]�o¢t+�¼¾€À³Ù ù§ Ž"`òz뜳ûœ³ŸœÂÂIz]ßš˜a&i ·­ ÚúûèÂÂIz]½¨ÅÏÒYô8eø,‰ö °�Û›³훳ð‰âÂÂIz]Ï=VkÁ‡¡É„éX ‡�´œÂÂIz]{nÖ�EÿT—šÚúûèÂÂIz] 7¶AäýáŸÉ„ÐÛä�´œÂÂIz]Œà ›•‰ÎìÚúûèÂÂIz]ûŒÐÃ1—ºvqˆ,ž (¿�Û›³Å�³¢g¡gÂÂIz]Q½ªPòŸ “àÚúûèÂÂIz]0¥øC®œjü Ç× ÚúûèÂÂIz]¢CóT¿[r¸<óã(‹Û›³øôÂÂIz]J�Ùdío¢$¤Ë,†Û›³훳ú Ì ÂÂIz]KKý‹Äî5É„íRE�´œÂÂIz]üªú_Ú ¤à“ ÚúûèÂÂIz]_?0Ôs&Ãreæ (Õ ù¶,�Û›³훳ð‰âÂÂIz]"ñ}ºw„²É„˜ÿà�´œÂÂIz]!ì3ÕXLÄÊe‡,¼@q�Û›³훳ð‰âÂÂIz]w™w‘°wηÉT�-ÂZÛ›³÷¾ÂÂIz],OJ.¤~| Éü­‚&~�´œÂÂIz]z”Ô%ç¨2pÚúûèÂÂIz](.¯N]~mºù ŽŽÛ›³�¡³¢ŒÏ¾ÂÂIz]šËå¥åL`̶áL­ã ŽÛ›³¢Ë¾ÂÂIz]Û Æ}œÞ� eÜ,�$´‘Û›³훳ð‰âÂÂIz]J|‚£§ãóqà,¨Ñ  ‘Û›³Å�³¢g¡gÂÂIz]-îh=W`d–4ïØó…ù ‘­³ÂÂIz]CÔNšð�‹rˆ<ë HŽÛ›³øôÂÂIz]Œ´÷Á�" ¡5Ú뜳ûœ³ÂÂIz]È]Ycé^èɼ®™^’´œÂÂIz]-Â#üBÉ„ò/‹’´œÂÂIz]Añ®žÛ%r¾<Ð%#�Û›³øôÂÂIz]®n'LY<ëeÏ (Á „±,R“Û›³훳ð‰âÂÂIz]å"»˜u‘ç$ÜðWsÛ›³�i€iÂÂIz]l´òF�ˆ¹Y*ÚúûèÂÂIz]¥ ‘ÄP»Çq�,üŸ “Û›³Å�³¢g¡gÂÂIz]¯e1uWÏè@q°,˜E“Û›³Å�³¢g¡gÂÂIz]™[ Ä,6x øïÚúûèÂÂIz]J{}¹n‹Û —›ÚúûèÂÂIz]�j¡ŠŠ½=°q×,åšÞ“Û›³Å�³¢g¡gÂÂIz]çÆ‘ríΖ¶»L°Û‰‘Û›³¢Ë¾ÂÂIz]¶TìüíSÓq|,�?M”Û›³Å�³¢g¡gÂÂIz]"~¶—̹•qð,®<0…”Û›³Å�³¢g¡gÂÂIz]º Úqø§ÈZ¶èL¦=/’Û›³¢Ë¾ÂÂIz]¹WzIHê v Ëø ÚúûèÂÂIz]\„µ*æ6É„÷0 ¥•´œÂÂIz]'‹a¿+?eó,Ÿ† 7–Û›³훳ð‰âÂÂIz]Q3w‚àH´ú–ÚúûèÂÂIz]ûËeòŒ× ÇÚÚúûèÂÂIz]Á›1–tb†¾q†,a'ê•Û›³Å�³¢g¡gÂÂIz]æw3©ô�I" ëÖ ÚúûèÂÂIz]! ýl¤ï×Éü£ù &Õ–´œÂÂIz]l)ó)„£gq·,üÇ‚–Û›³Å�³¢g¡gÂÂIz]9)Ôt”Î{zÉüÜ,6<—´œÂÂIz]sD@HÌiš^e×,©çΗÛ›³훳ð‰âÂÂIz]¢&ó±|©ÒÚ <ŽJÚÂÂIz]®úb»’àÒÉ„¢. Ê—´œÂÂIz]´ú;å~ä Õ ’±,®•Û›³�¡³¢ŒÏ¾ÂÂIz]^�oÍ�¼qƒ,ˆ”¸—Û›³Å�³¢g¡gÂÂIz]S�×ÜÎø¼'Éü‘Ú&s˜´œÂÂIz]�R<ä òMüùW-ÚÂÂIz]päwìµ�ýe@,òã*™Û›³훳ð‰âÂÂIz]®?ë{{Œ³ eÉ,å,e™Û›³훳ð‰âÂÂIz]ju$ÉTÇ´î$crate::format_argsÁ«ñ¦ ÷$])뜳ûœ³žœÂÂIz]ô‘²ðZÃÇɼÐÐŒ™´œÂÂIz]^¡|ywš8kOhÚúûèÂÂIz]gLÅš-ô ±· ÚúûèÂÂIz]Tòš{0.sqk,“¾ —™Û›³Å�³¢g¡gÂÂIz][êÖ›]~t^oá$“ãa‘Û›³훳ú Ì ÂÂIz]»®¾ôû¡sü–4ùí¸Žù ‘­³ÂÂIz]­‚`è� Drö<á[ —Û›³øôÂÂIz]e»Ñ)˜ŠÿÎɼ½†òš´œÂÂIz]B“ÉW•6=Š-ÚúûèÂÂIz]…Bv~]âsÉì´"-N›´œÂÂIz]ù× xëD.ŽßÚúûèÂÂIz]à%?t™û™e½,û#œÛ›³훳ð‰âÂÂIz]ÌÑÎg·—æÉ¼Ä»æ›´œÂÂIz]k.¼ö:$:ɤ¸Á ð¶,œ´œÂÂIz]Õ¤r!꘨¤ü…²5„º �•‹ÂÂIz]!vÅŨ|r¶æL¬Úm™Û›³¢Ë¾ÂÂIz]µ°^�½óóÉ„³®´œ´œÂÂIz]wù o¾KCe®,½"-E�Û›³훳ð‰âÂÂIz]ññJ¹TI†~+�óКÛ›³�¡³¢ŒÏ¾ÂÂIz]|‚÷ Š%î~%•ÚúûèÂÂIz]¦²{-  ¶�L€„{šÛ›³¢Ë¾ÂÂIz]bÕŸËážÖÕ àšÚúûèÂÂIz]åGW%÷²âž ¨±ÚúûèÂÂIz]fJUVU£ZòeV,·™…žÛ›³훳ð‰âÂÂIz]yåÝ hž‘Ö$Ö‰Š~Û›³�i€iÂÂIz]D?‹¡Jüke»,–ÛöžÛ›³훳ð‰âÂÂIz]e+Ϋ‘jqz,—>KžÛ›³Å�³¢g¡gÂÂIz]n\ðQ&÷yeè,Ž=hŸÛ›³훳ð‰âÂÂIz]a±Ç ©±É„¨ ?Ÿ´œÂÂIz]÷šAÄûÕÀqñ,Á ëžÛ›³Å�³¢g¡gÂÂIz]œÎÌ&'¦'e„,Z& Û›³훳ð‰âÂÂIz]æQG$¦G±&òÚúûèÂÂIz]dÉRIÔž\’Éü±s  ´œÂÂIz]—ÇñœH²Je ,Û"Ÿ Û›³훳ð‰âÂÂIz],dà�Q™ÀOq³,ƒ‚öŸÛ›³Å�³¢g¡gÂÂIz]òßx.E}AÉü”¯ ± ´œÂÂIz]?dsÒÒ jƒeŸ,Šl,B¡Û›³훳ð‰âÂÂIz]Ôj‹”H˜ ¤�¯ÚÂÂIz]zæYøÅ¤É¼µ ?¡´œÂÂIz]g9§UÓ>¯É¥¸Õ Ⱦ,p¡´œÂÂIz]IÅš�¸IWðe ,»ƒ¢Û›³훳ð‰âÂÂIz]v-i-¬è ÃŒÚúûèÂÂIz]$ù,£ßعÔq€,ÑÖˆ¡Û›³Å�³¢g¡gÂÂIz]ž>´ü™£ ÃÏ ÚúûèÂÂIz]ÒnËWÆ6BüÔî„ ÚÂÂIz]àÓ™� Ðqß,ª¨¢Û›³Å�³¢g¡gÂÂIz]Ø«Ø�%á<ri<«¯!ŸÛ›³øôÂÂIz]EÀ,ƒ¥Î·$ †ï ÚúûèÂÂIz]¨wFSÚÐ *qÙ,í€ µ¢Û›³Å�³¢g¡gÂÂIz]…3B ¼ ¯!ÚúûèÂÂIz]ÊþÈMüÖ Éq„,Í»£Û›³Å�³¢g¡gÂÂIz]dõæ ’wÂÏÚúûèÂÂIz]ÓN<š¢aD™~õʹ¡Û›³�¡³¢ŒÏ¾ÂÂIz]ÀZý5b³] ƒ‰%ÚúûèÂÂIz]À˜+ï=pÍ*Ú´À¨}lÛ›³˜¥³ƒÃŒ´±œÂÂIz]’D†tķɼ¬Ÿ µ¤´œÂÂIz]y·–wñí qº,¬š b¤Û›³Å�³¢g¡gÂÂIz]ÁHÉikï Û¾ÚúûèÂÂIz]%xýØ¢´NÝɼíõL¥´œÂÂIz]Mï8(_~€–µ¤øÁ ̓~,²f¤œÂÂIz]!Ý?ÐPÊP̶åLŽÁ�¢Û›³¢Ë¾ÂÂIz]«Ù W$Á óÂ,ÚúûèÂÂIz]Æ´×éúe),–Óy¦Û›³훳ð‰âÂÂIz]A{âèUŒluo¬$±f`�Û›³훳ú Ì ÂÂIz]°Þéˆ1óôîe�,èƒí¦Û›³훳ð‰âÂÂIz]¢UPáÕh\ ΑÚúûèÂÂIz]6ÿ¨ƒNäá œšÚúûèÂÂIz]ˆS(SÒeO,㼈§Û›³훳ð‰âÂÂIz]@ƒw™Õ`C\eÖ,¾‰ħÛ›³훳ð‰âÂÂIz]J ¶öºÅ¸Bqº,¬Ù§Û›³Å�³¢g¡gÂÂIz]¿R\*®Ž  assert_neÁüÀ…{$9˜¥³Ž‹ÂÂIz]w¤5èTb} FÚúûèÂÂIz]¹¶½B±.ß±ÚÚÜ ÂÂIz]«XÁò™W¢„oç$Ô;zŸÛ›³훳ú Ì ÂÂIz]ÈÄ,?ô"¼Ôqî,–¹ "¨Û›³Å�³¢g¡gÂÂIz]³’-AŸ>’ÐéñÚúûèÂÂIz]çM"G ~e–,   o©Û›³훳ð‰âÂÂIz]�{=ëõíîɼù– G©´œÂÂIz],O®¤f{v¤ ‰·ÚúûèÂÂIz]ÞS–мêŠÊÉ„¯í¥©´œÂÂIz]÷Fk.Aå�Ie¯,½Ð7ªÛ›³훳ð‰âÂÂIz]r |“¢Ûr-‘ž$°2,;ŠÛ›³�i€iÂÂIz]pþ =ä&œ ´Á­ÚÂÂIz] ±Q€þ`ir<ÿ¶¦Û›³øôÂÂIz]Ú®ßÉC,ÒÉ¥øÕ û°&,Ÿª´œÂÂIz]3ï·Š€ÎÆ ܺ‹ÚÂÂIz]pšµßïo:$úË¢Û›³훳ú Ì ÂÂIz]I‰œíX¨9û·¦T�¤uÛ›³÷¾ÂÂIz]ÂD0èU§ ÀV ÚúûèÂÂIz] ò¹le:éeh,ä™ñ«Û›³훳ð‰âÂÂIz]޼ª`¸Ø¾eÞ,°ü-¬Û›³훳ð‰âÂÂIz]ýf´N~¯ »eÓ,õÞi¬Û›³훳ð‰âÂÂIz]`ÁœÙÛÚßÇ �å ÚúûèÂÂIz]iñœGÝ| è Ú뜳ûœ³ÂÂIz]ðù:]5›°°É„üØ¢¬´œÂÂIz]uRA›Béεˆñ™è]–<뜳ûœ³žœÂÂIz]JÚý¨õ˜kYáÚúûèÂÂIz]�Ô:œDj€À³ä ù¼ Ž"`R›뜳ûœ³ŸœÂÂIz]01=ﶸ-qþ,Ás ú¬Û›³Å�³¢g¡gÂÂIz]ÛEœàáo�É„×Ë ´­´œÂÂIz]Ìê-O®Ó�€yÚúûèÂÂIz]EÑ;a‚Iõ—É„›=®´œÂÂIz]f'Zr˜²qž,Ç' ¼­Û›³Å�³¢g¡gÂÂIz]¼Û©eBL“ɼ½!u®´œÂÂIz]'à`¶wŒV8 $¹€ÚÂÂIz]Uñ29‚W¢ÔÉüô>SÉ®´œÂÂIz]›‘%W\<‘£$€Ñ,$�Û›³�i€iÂÂIz]-Ÿ¼�›XôÚúûèÂÂIz]g.&¾~äɼ¾@#Z¯´œÂÂIz]\«w©ähÉ„åV‡¯´œÂÂIz]–Ýë){0>‚eœ,¶‚°Û›³훳ð‰âÂÂIz]ÎÑ_¾! ³³ ìéŒÚÂÂIz]y¢Ø£ziά Ù™ÚúûèÂÂIz]Ö¹fï‰éÖÃÉ„‘�G°´œÂÂIz]<\ǯWø~Ô�ð)®Û›³�¡³¢ŒÏ¾ÂÂIz]g¡®),K^$˜CÚúûèÂÂIz]©XÝ÷²8 et,ƒ!E±Û›³훳ð‰âÂÂIz]Ç)®ö�=¯à ìg.ÚúûèÂÂIz]bÌèÞÞ Ž’Œ´åÉ� ‡T]ZyÛ›³˜¥³ƒÃŒ´±œÂÂIz]äo­¨’»ÐéÚúûèÂÂIz]øãâZF¢íɼQ*¿±´œÂÂIz]À‰‰cÚ\[ ÚªÚúûèÂÂIz]¨3ÿ&;»ÀÉ„³à ²´œÂÂIz]%pÿG©åã�q“,›” ʱÛ›³Å�³¢g¡gÂÂIz]wä9¾~­Š8 œè¬ÚÂÂIz]0¿>Àlûëož$–2,¹©Û›³훳ú Ì ÂÂIz]~|ÿ—(0«eÊ,›>E³Û›³훳ð‰âÂÂIz]‰ÕZ}dý±eÓ (Á Ѿ,ƒ³Û›³훳ð‰âÂÂIz]õÕYjf´Gqí,æuÙ²Û›³Å�³¢g¡gÂÂIz]{á?Ÿ¾ÿ:=e¦,ñö³Û›³훳ð‰âÂÂIz]°‰O™â:­% øöÚúûèÂÂIz]½ÉAç€ÈnqÈ,ìÅ}³Û›³Å�³¢g¡gÂÂIz]ÍD²1UÕ�dÉ„†û7´´œÂÂIz]:"‚ÜËPOqÒ,õI ã³Û›³Å�³¢g¡gÂÂIz]À[ ?rXàÝÚúûèÂÂIz]nÞs«B ÿ¨³òøµ ½‰”%b®˜¥³Ï¢[ˆZÂÂIz]HÞ?6˜+UþÚúûèÂÂIz]Š'D¸­lqý,£ ·´Û›³Å�³¢g¡gÂÂIz]Å!,mP'ae›,¾ ÔµÛ›³훳ð‰âÂÂIz]vKv/È   öÇÚúûèÂÂIz]Ú’Ü÷C‚ÖeŒ,á(+?¶Û›³훳ð‰âÂÂIz]‚G°ñBêºÉü”ËE,¶´œÂÂIz]�1”Pok‰b $Œ÷ÚÂÂIz]h¿+™Ìl –«ÚúûèÂÂIz]íEÆRÇÂqÁ,®%!¶Û›³Å�³¢g¡gÂÂIz]Äfd½Ûbe£,æÐ,8·Û›³훳ð‰âÂÂIz]T„½"ï ‹Éüúï+·´œÂÂIz]šrÙ´çÄte¦,Æ!¢·Û›³훳ð‰âÂÂIz]ï¶%ï~È ½ÍÚúûèÂÂIz]J;Ö'ø$De˜,Ùиۛ³훳ð‰âÂÂIz]8Èðê8‚cX æ–ÚúûèÂÂIz]!õÔ£Iu›É¼¥<¸´œÂÂIz]üMRÔJ˜™Ûÿ¨³ÓøÀ °“çÙ±˜¥³Ï¢[ˆZÂÂIz]`í"1¨x&qI,¬þ·Û›³Å�³¢g¡gÂÂIz]¦'Û«RKO@?ÚúûèÂÂIz]¾‡Ïq¶,œ³f¸Û›³Å�³¢g¡gÂÂIz]»Õ©¶ò Æ Í¡ÚúûèÂÂIz]P6ðâ4/صÚúûèÂÂIz]ã›XàFtù€qã,¨—þ¸Û›³Å�³¢g¡gÂÂIz]G/QF·ßºqp,É5¹Û›³Å�³¢g¡gÂÂIz]PrÁØ"B_  l¹#ÚÂÂIz]Ö%åX³’;•Éüúò%º´œÂÂIz]¹W䯰¹X+zçÚúûèÂÂIz]˜º<8†œ˜ÝɼQ(pº´œÂÂIz]_”ÏŽÛ°åɼÂP �º´œÂÂIz]àÇÆ6¯fØ)·œT§,D…Û›³÷¾ÂÂIz]x÷¤‘œ\€¶ÄL‚F#ï·Û›³¢Ë¾ÂÂIz]¿¾¼ÿa“8ïqÑ (Á €·,·ºÛ›³Å�³¢g¡gÂÂIz]nOnõ Ô8É„•0p»´œÂÂIz]j3LZ³t³¨rë<ûì·Û›³øôÂÂIz]ÚàÚÏcÛ�ôÉ„¥%!л´œÂÂIz]2$Ø{-J;É„ßHý»´œÂÂIz]_DXÙã$›‹~¥«Þ¹Û›³�¡³¢ŒÏ¾ÂÂIz] 'Ó¸�¹ùqÙ,³¿è»Û›³Å�³¢g¡gÂÂIz] CϺ‚ÉÉü–Ù5£¼´œÂÂIz]´újÛ„b^qÏ,ö" O¼Û›³Å�³¢g¡gÂÂIz] ÊSJ=þÞ Ü«’ÚÂÂIz]ÚæˆMÉe},¸m‘½Û›³훳ð‰âÂÂIz]Ï%€‰õ=›«UËÚúûèÂÂIz]s±BKb'qï,Òæ%½Û›³Å�³¢g¡gÂÂIz]æ Õ+s º–¬šÊÿ±ù ‘­³ÂÂIz]þ~e”X¤Íqú,‰— …½Û›³Å�³¢g¡gÂÂIz] ¨�÷Ÿ¸|ß ÚÂÂIz]’\÷õ} M §ôÚúûèÂÂIz]Q¤ž „Äz ®¨ÚúûèÂÂIz]³8=¶jê@mÆõÚúûèÂÂIz]B,0¼[ZeŠ,Z)U¿Û›³훳ð‰âÂÂIz]œBé|ÕŸ“âÉü�2S,-¿´œÂÂIz]wïo ä·ìÂèÚúûèÂÂIz]˜(“­Ý+þLÉìù  Š¿´œÂÂIz]pþ×Ï÷…šÉ¼ú ·¿´œÂÂIz]ÄíÃ"TX ó‘¢$·Ë, Û›³�i€iÂÂIz]ßcf žÉ´öž À´œÂÂIz]æ/­ÀÞЦmɼÖuGÀ´œÂÂIz]¹F‘“ Ø�ÚúûèÂÂIz]\…C¤ÜŽjí³›øùÄ”.ñ·˜¥³¤[ˆZÂÂIz]}á?‚ó›‘fqÊ,�@]ÀÛ›³Å�³¢g¡gÂÂIz]‚‹ø ¯›ã°D(ÚúûèÂÂIz]fBΚ � _í³½øÔ�Ÿ-’¸˜¥³¤[ˆZÂÂIz]nÆ/A®f˜j ¾‘ÚúûèÂÂIz]ûì“ KwŸqâ,žƒ/ÁÛ›³Å�³¢g¡gÂÂIz]rÓé.ÓlÛü±Ã1�½˜¥³�‹ÂÂIz]øÕC {Ê º ÚÂÂIz]6ˆ'QôU í³ãp¤§ÿ ޹˜¥³¤[ˆZÂÂIz]2$ª‰Ô_eú,óàÂÛ›³훳ð‰âÂÂIz]5ÄQò.ËËÛ�ìµüÌÃ$T˜¥³Ž‹ÂÂIz]}oú÷,«iQq‰,�¡ nÂÛ›³Å�³¢g¡gÂÂIz]W4°½‰®É„�¹ (ôœÂÂIz]þ^A™ÿ‰Ýžoœ$Œ,eºÛ›³훳ú Ì ÂÂIz]9µ_-] ²eÄ,çE#ñÃÛ›³훳ð‰âÂÂIz]P]1gJïKɼÒ"ÈôœÂÂIz]Ûr,°Û‘¶Ï HÁ –±,éÀÛ›³¢Ë¾ÂÂIz]RtFdüƒ o0$ï�?»Û›³훳ú Ì ÂÂIz]þ{@–šÜùq³,À0æÃÛ›³Å�³¢g¡gÂÂIz]'ÇŽD¨Ìq¹ÚúûèÂÂIz]GzF{æÒ#ÌFÚúûèÂÂIz]x…õó&�X@í³¦ø¡îÀ£K¼˜¥³¤[ˆZÂÂIz]Û~_†u×¶×Löš*ÂÛ›³¢Ë¾ÂÂIz]. vSvmüÎq¾,�ûðÄÛ›³Å�³¢g¡gÂÂIz]lìQ„¼ôUÉ„“³ªÅ´œÂÂIz]-ýµ5ëÛ  ±ŠÚúûèÂÂIz]•Õ´œÂÂIz]á¿ì!§¾&œ~æ¨ÚwÓÛ›³�¡³¢ŒÏ¾ÂÂIz]jXˆ Åt÷É„¶¡Ö´œÂÂIz]´,Ð&?ô‚o+$Šó?ÍÛ›³훳ú Ì ÂÂIz]úý[�`;m?¶¬LÂfXÓÛ›³¢Ë¾ÂÂIz]ÅŒ)D-~�üƒSÔÛ›³�¡³¢ŒÏ¾ÂÂIz]w‰‘jþñ»í³¢ø“ ­£+Θ¥³¤[ˆZÂÂIz])ÔvX–ßÚ0ÚúûèÂÂIz]\ç�¦(TÓ~ÖÒ‰üÔÛ›³�¡³¢ŒÏ¾ÂÂIz]·ã€œË�u?ÚúûèÂÂIz]TŸœ\ü‰"¶ºLÀÙ§ÔÛ›³¢Ë¾ÂÂIz]Ç0éh”œg>eë,ž0QØÛ›³훳ð‰âÂÂIz]Wü'ßš˜ÏÉ„Á›)Ø´œÂÂIz]j—ÖËÕ¶ez,�>¹ØÛ›³훳ð‰âÂÂIz]6toå}FɶçLå;�ÕÛ›³¢Ë¾ÂÂIz]Äq*ãŒfKÀeñ,º +ÙÛ›³훳ð‰âÂÂIz]3œ¿¬¦Ý�YÉ„½ Ù´œÂÂIz]#‹‰¸jÅkÿ ËOÚúûèÂÂIz]ná,iõóO lª7ÚÂÂIz]8ퟯÁûÈ †Ö ÚúûèÂÂIz]ˆ+i)FCÓù´‚áã åc]þj˜¥³Ž‹ÂÂIz]Ädæ¬U†q—,–¡ lÙÛ›³Å�³¢g¡gÂÂIz]S³ï�o]lÉü“& &Ú´œÂÂIz]böÄMŸ£� $«ÎÚÂÂIz]ð€GS5dàɼۙzÚ´œÂÂIz]ÕxjmlZq°,‹Ñ'ÚÛ›³Å�³¢g¡gÂÂIz]ïm¯µ|Ly±žÍ2,/ÎÛ›³ò¾ÂÂIz]ñ“*9ô)Ûü¸­­ÚÂÂIz]¾„B¥O?u-ɼè <Û´œÂÂIz]Ñ\9ŒëØ£°q,Ê›èÚÛ›³Å�³¢g¡gÂÂIz]S5IÝþá*ae€,ÊÖÜÛ›³훳ð‰âÂÂIz]��w:·ü.ÖÂZÚúûèÂÂIz]Ý?žNt×¼.œôÚúûèÂÂIz]D:lÏñFqi,¤¯ºÛÛ›³Å�³¢g¡gÂÂIz]Xˆ÷éF‚¿>oß$¤¨„ÓÛ›³훳ú Ì ÂÂIz]Gˆrcè�;qÔ,ñà,ÜÛ›³Å�³¢g¡gÂÂIz]°{y,"T– aÚúûèÂÂIz]ãÅ^öÝ˵{qØ,Þw “ÜÛ›³Å�³¢g¡gÂÂIz]Pá -B�|qƒ,ɱÌÜÛ›³Å�³¢g¡gÂÂIz]Qú ¿¬‘qõ,ÃÝÛ›³Å�³¢g¡gÂÂIz]…áÓVstIì Ô° ÚúûèÂÂIz]†n‡/Çî÷ë²"ÚúûèÂÂIz]/k„%5J q¡,Ä8 ›ÝÛ›³Å�³¢g¡gÂÂIz]÷¶œyøâ.?ÈÚúûèÂÂIz]h4à¦×†ÐÉ„­ž „Þ´œÂÂIz]Bõ­5Çþ+ ¹�ÚúûèÂÂIz]Û-*ÁYA"É„‰áÞ´œÂÂIz]äÀrcÚu‹í±£�Ñ,^ÒÛ›³ò¾ÂÂIz]ÎÙµ„wå~åŠÁøÜÛ›³�¡³¢ŒÏ¾ÂÂIz]TKT‹ëÔKÙÎ ÚúûèÂÂIz]$úÃÔð q(,´Ä0ßÛ›³Å�³¢g¡gÂÂIz]\[ýàP Ý e¬,ªfMàÛ›³훳ð‰âÂÂIz]’~ªj´)^¶œLÈ‚ÝÛ›³¢Ë¾ÂÂIz]é:lÔ4µ›‘ÚúûèÂÂIz]bÅ~BŠÊN=ÚúûèÂÂIz]¯(m1z:Xõ’Œ´MÉ ‡T]ȨÛ›³˜¥³ƒÃŒ´±œÂÂIz]DŠ9#oº$¦ÙØÛ›³훳ú Ì ÂÂIz]KjLZ…oåŠÉ´›F8á´œÂÂIz]°=ó=çöÿ‰�‡ÑÀ¦§ãíβ؋Óà ª ò¬ Ü áåLãÝ þ ï³ ß åü ¢™Û�Õ ¥½ å ô›ÿÌÖü¨ Ú Ú ¾ ž‡æ… æMš‰£á⃠¸ â § ‰ €âìÓäù æ•Ù‚ÚþûʽÁ ¤ðÒ´debug_assert_neÁü¬¥'å÷b]“‹ÂÂIz]l`qÀ�9´ö ü‡¥˜%•Ú]ƒŒ‹ÂÂIz]2?Y, õ®Óüƒ¶0ÅšÂ]ƒ™‹ÂÂIz]@ ,¯ vÚüÔ¢5[«Û›³˜¥³ƒÃŒ´±œÂÂIz]B¥>«9È $crate::panicÁÐù‡–\`½ƒŒ‹ÂÂIz]Sl³í%ÒÜW debug_assertÁüç4&ÍœS]ƒ‘‹ÂÂIz]Ïo¸G͹¿ã¶‚ ùâ–\`4ƒŒ‹ÂÂIz]FeüP–Ãö ü½‰”%hƒŒ‹ÂÂIz]þãÅÉÏS©1ö û üÕ”5œƒŒ‹ÂÂIz]êd”z˜i Óüëœ.šƒ™‹ÂÂIz]yråSu\C�ä¶üè & ƒ‘‹ÂÂIz]äB–®_§hpö üÏì™%7ƒŒ‹ÂÂIz]Ù–ÿ¯Z£1µ§´þùÖ ©wGa’ŸÕ²³´¨ÂÂIz]Þ¢ðÛà ÎOÓüÄ”.oƒ™‹ÂÂIz]�ˆ°VW¦:Ót–Ž ¡ƒ™‹ÂÂIz]uÔrfUª!sÚü°“çú­Û›³˜¥³ƒÃŒ´±œÂÂIz]lh5ÛNJµŒ¿ã¶Øù•–\`QƒŒ‹ÂÂIz]•xú5~SÓüë§-Oƒ™‹ÂÂIz]ÀƲÛGõåÓtŒ‰ �ƒ™‹ÂÂIz]L*:JZÙÓüîÀ£µƒ™‹ÂÂIz]È™¡SiÁhºö üŠz”%ƒŒ‹ÂÂIz]ŸÝ_±ÈX«X¿ã¶±ùΖ\`UƒŒ‹ÂÂIz]>‘”8’^›Ót÷ƒ Rƒ™‹ÂÂIz]W!Ðöº«Ëžö üùZ™%ºƒŒ‹ÂÂIz]"`ACÏ™Z�ä¶üÌŸ-õƒ‘‹ÂÂIz]Bìú#YQñí¿ã¶Éùû–\`'ƒŒ‹ÂÂIz]hs£½Øðn¿ã¶ûùÖ–\`_ƒŒ‹ÂÂIz]"P™.ŽÅ‚·Ót§ÿ \ƒ™‹ÂÂIz] Z˜ ‰Ê'Óü�Ÿ-�ƒ™‹ÂÂIz]·ˆÃ'2".debug_assert_eqÁü­ž•å„[]’‹ÂÂIz]©H^(‘/Ót¶Ô ƒ™‹ÂÂIz]˜•SÅÝŽÓtÍú 4ƒ™‹ÂÂIz]p=.U‡¢�ä¶ü¹Ã#¤ƒ‘‹ÂÂIz]›ôhIÿÀ*x¿ã¶àù£–\`ÖƒŒ‹ÂÂIz]w jç,¡ß]Ótþõ Óƒ™‹ÂÂIz]_­%Aì‹Óü ­£ƒ™‹ÂÂIz]yl>iƒø�ä¶ü©§#wƒ‘‹ÂÂIz]„±»J,=�Ñá¶ü�¯'Ø“‹ÂÂIz](9Åß÷¸gâþÖüߌÜÍàvaÕ²³µ¨ÂÂIz]MÕ† ÞÇýÕ�¯-ñÈ,xÁ,½,áÉ,BÅ,ÓÀ,k¼,þ¾,÷Ë,6Ç,‘Â,K¾,2Ë,bÃ, ¿,Ì,¤Â,^¾,OË,‚Æ,›À, ¼,¤Ç,Ã,+½,Ê,qÃ,¿,Ì,XÇ,©Â,„Ä,À,Í,jÈ,å¯-jÌ,\°-¹Ë,UÂ,ìÊ,#Æ,dÀ,rÍ,ÄÈ,:Ã,(¾, Ë,AÆ, Á,_½,íÄ,xÀ,9Ä,Ò¿,ËÌ,È,ÑÂ,†¾,sË,¾Æ,¾É,$Å,ÌÇ,IÃ,"Ç,‚Â,7¾,#Ë,UÆ,¯Á,s½,@Ê,—Å,(Á,м,�É,üÄ,âÈ,~°-åÌ,-È,™¯-7Ì,•¾,‡Ë,ׯ,"Â,ݽ,T¾,JË,xÆ,ÃÁ,ä¼,¤É,¼,ŒÆ,ÒÁ,›½,|Ê,ÉÅ,ZÁ,Å,¥À,*¼,É,zÄ,À, Í,eÈ,ÆÃ,w¿,`Ì,Ã,½¾,Ê,‚Í,ÉÈ,ŠÃ,+¿,Ì,W¼,L°-'Ç,¹¯-(Ë,_Æ,\Ä,*°-�Ì,²°-¿,Ì,G°-hÊ,ž¯-Ú¼,ŸÉ, °-]¿,¡°-Ã,®¾,©¯-VÅ,f°-JÉ,ÅÄ,TË,¸°-ñÀ,5°-ÔÄ,UÀ,¤¯-¿,l°-®Â,m¾,!Ã,̾,^Â, ¾,ñÊ,-Æ,"Ê,tÅ,Á,£¼,ÿ,¼Ì,þÇ,€Ã,¯Æ,ðÁ,¹½,›Ê,Û¯-ô¼,ƒ°-¹À,é¯-“Ä,’°-~È,ÿ¯-„Ì,œ°-à¾,-¾,Ë,�Å,Á,Ƽ,†É,ô¯-ŒÍ,ÐÌ,È,™Ã,5¿,(Ì,�Ç,ÖÂ,‹¾,xË,ÃÆ, Â,Ƚ,ªÊ,iÁ,ù¼,ÃÉ,)Å,M¼,1É,¢Ä,"À,&Í,�È,éÃ,›Í,ìÈ,WÄ,æ¿,ïÌ,7È,I¿,=Ì,�Ç,ÜÉ,GÅ,ÝÀ,f¼,@É,±Ä,1À,5Í,œÈ,øÃ,}½,^Ê,«Å,<Á, Ë,u¼,EÀ,IÍ,IÇ,ŸÂ,c¾,ÍÁ,‘½,wÊ,¿Å,PÁ,ÿÈ,pÄ,ú¿,þÌ,PÈ,ÁÃ,b¿,QÌ,©Ç, Ã,ÝÊ,0½,‘Æ,×Á, ½,E½,Ê,oÅ,Á,™¼,hÉ,ÞÄ,iÀ,wÍ,¿È,%Ä,¾¿,·Ì,gÇ,½Â,w¾,dË,¥Æ,ëÁ,´½,–Ê,ØÅ,dÁ,Ë,FÆ,¥Á,d½,ˆÅ,Á,·¼,�É,ÓÈ,>Ä,׿,ÆÌ,È,�Ä,À,!Í,ˆÈ,äÃ,�¿,ãË,Ç,}Â,<¾,Ë,ZÆ,´Á,n½,EÊ,êÂ,š¾,ŒË,ÜÆ,'Â,â½,ºÊ,öÅ,sÁ,þ¼,×É,8Å,š¿,“Ì,ÛÇ,SÃ, ¼,õÈ,aÄ,ë¿,ôÌ,AÈ,ôÂ,¤¾,›Ë,ëÆ,<Â,ñ½,ÄÊ,Æ,‚Á,½,ðÉ,»Ä,@À,DÍ,DÇ,šÂ,Y¾,EË,}Æ,ÈÁ,Œ½,rÊ,ºÅ,KÁ,¼,úÈ,kÄ,õ¿,ùÌ,KÈ,ÓÊ, Æ,ŒÁ,!½,úÉ,à¯-YË,W°-�Ê,UÁ,é¼,©É,Å,ªÀ,/¼, É,Ä, À,Í,r¿,eÌ,ˆ°-¾,¯Ë,´¯-¾,çÊ,Æ,@½,ð-ûÀ,”¼,^É,Я-hÍ,ºÈ,Ä,%°-ùÇ,{Ã,&¿,Ì,bÇ,¸Â,r¾,_Ë, Æ,æÁ,¯½,‘Ê,Å,´À,9¼,É,Í,yÈ,ä¸-—°-0Ã,Ö¾,°-nÂ,¾,ûÊ,7Æ,°-1Ê,§°-¼¼,wÉ,èÄ,sÀ,4Ä,Í¿,ÁÌ, È,”Ã,0¿,#Ì,|Ç,ÌÂ,�¾,nË,¹Æ,Â,ý,¥Ê,âÅ,˼,‹É,÷Ä,‚À,–Í,ÝÈ,HÄ,"È,£Ã,?¿,2Ì,‹Ç,àÂ,�¾,‚Ë,ÍÆ,Â,Ó½,¯Ê,çÅ,ÈÉ,.Å,ÄÀ,R¼,6É,§Ä,'À,+Í,’È,îÃ,•¿,‰Ì,ÑÇ,NÃ,ô¾,íË,1Ç,ŒÂ,F¾,dÆ,x½,OÊ,¡Å,7Á,ŒÀ,¼,­Ã,N¿,BÌ,ïÂ,‘Ë,æÆ,2Â,ç½, ½,æÉ,;À,?Í,¦È,Ä,©¿,@Ë,sÆ,¾Á,‡½,mÊ,µÅ,FÁ,ß¼,šÉ,Å,‘À,fÄ,ð¿, Å, À,%¼,É,uÄ,ÿ¿,Í,ZÈ,g¿,VÌ,KÂ,�°-Æ,–Á,5½, Ê,eÅ,öÀ,‰¼,_À,]Í,«È,Ä,¹¿,¬Ì,ïÇ,vÃ,!¿,Ì,]Ç,³Â,¿¯-–Æ,ÜÁ,¥½,‡Ê,ÎÅ,_Á,É,‰Ä,oÈ,ÐÃ,�¿,uÌ,¸Ç,?Ã,Ǿ,ÄË,Ç,YÂ,¾,Ë,(Æ,›Á,J½,Ê,yÅ, Á,ž¼,mÉ,ãÄ,nÀ,iË,ªÆ,õÁ,ŽÄ,Á,Á¼,œÅ,-Á,Õ¼,•É,Å,‡À,¼,çÈ,RÄ,êÌ,2È,¨Ã,àÇ,òË,:Ç,6Ë,iÆ,YÊ,ÚÃ,‹¿,Ì,ÇÇ,5Ã,Û¾,ÔË,Ç,sÂ,#¾,Ë,<Æ,Z½,6Ê,ƒÅ,Á,H¼,,É,ƒÈ,ßÃ,MÄ,á¿,àÌ,D¿,åÂ,ÒÆ,Â,`°-´Ê,ñÅ,ÒÉ,3Å,ÉÀ,a¼,Ä,®¿,§Ì,êÇ,gÃ,¿, Ì,NÇ,“¯-bÍ,µÈ,Ä,›Æ,áÁ,ª½,Ȱ-î¼,®É,4¼,À,ÕÃ,½Ç,+Ã,/°-ÉË,į-cÂ,¾,°-T½,'Ê,¨¼,®¯-|Í,ÎÈ,*Ä,È¿,…Ã,lÇ,ÇÂ,|¾,úÁ,¾½, Ê,¬°-¸É,Q°-¾À,C¼,'É,˜Ä,å¾,ÙË,Ç,xÂ,2¾,Ë,KÆ,ªÁ,i½,;Ê,’Å,#Á,òÄ,}À,‘Í,ØÈ,CÄ,Ü¿,ÛÌ,È,žÃ,:¿,-Ì,†Ç,ÛÂ,}Ë,ÈÆ,Â,ï¾,èË,,Ç,‡Â,A¾,-Ë,LÅ,ØÀ,p¼,EÉ,¶Ä,6À,:Í,¡È,ýÃ,¤¿,˜Ì,åÇ,]Ã,¿,ûË,?Ç,•Â,O¾,;Ë,nÆ,¹Á,‚½,cÊ,°Å,AÁ,FÈ,·Ã,X¿,LÌ,šÇ,þÂ,©¾,¥Ë,õÆ,AÂ,ö½,ÎÊ,Æ,‡Á,½,õÉ,[Å,çÀ,z¼,OÉ,ÀÄ,JÀ,NÍ,–À,¼,UÈ,¼Ã,ŸÇ,Ã,³¾,ªË,úÆ,FÂ,û½,ØÊ,Æ,‘Á,&½,ÿÉ,`Å,ìÀ,¼,TÉ,ÏÄ,XÍ,²¼,|É,x°-vÇ,áÆ,Â,ؽ,¿Ê,ìÅ,nÁ,½,ÍÉ,=Å,ÎÀ,\¼,;É,¬Ä,,À,0Í,—È,óÃ,Ÿ¿,ŽÌ,ÖÇ,XÃ,ù¾,TÊ,<È,²Ã,S¿,GÌ,•Ç,ùÂ,Ÿ¾,–Ë,ðÆ,7Â,ì½,ÉÊ,ûÅ,}Á,½,ëÉ,QÅ,âÀ,ÊÄ,SÍ, Ä,¢Ì,lÃ,SÇ,h¾,‡Æ,–½,ÄÅ,;°-_È,Õ¯-l¿,[Ì,®Ç,Ã,¸¾,´Ë,ÿÆ,PÂ,¾,âÊ,Æ,ù¯-:½,Ê,jÅ,r°-޼,cÉ,ÙÄ,ZÀ,mÍ,°È, Ä,°-±Ì,ôÇ,ŒÊ,ÓÅ,³É,Å,¯À,>¼,É,À,Í,tÈ,†¿,zÌ,ÂÇ,&Ã,Ѿ,ÏË, Ç,iÂ,¾,öÊ,2Æ,O½,,Ê,~Å,­¼,rÉ,‡Í,/Ä,î¯-È,�Ã,qÇ,ÂÂ,´Æ,ÿÁ,ÝÅ,"É,DÃ,ê¾,ÞË,Ç,PÆ,½°-ÕÌ,'È,°-,Â,ͽ,JÊ,¦Å,2Á,„¼,YÉ,ʯ-OÀ,A°-³¿,ËÃ,|¿,pÌ,³Ç,¿Ë, Í,kv-Ü;-Ù-R¦-¢Z-¿!-Oæ,ú‹-)S-2-ÍW-á-=ˆ-£F-«-±�- \-ü"-�ç,ãÓ,:|-ÜA-~¸-«·-�r-~8-‡`-¸'-Îw-£¨-Ùn-òú,ýd-bñ,•–-á�-ž-ò|-”B- ­-·-üµ-b£-j-Y1-f©-io-=Ÿ-ôe-.ò,ÖÕ,±}-ÃC-a- 9-+-+¤-Ýj-ò1-+÷,›-)-Åì,ú‰-?†-kÖ,p~-ý,D±-)á,³³-Þ²-J¸-ø´-Ëz-Ó¶-“´-,§-im-ú,�-Ïc-Ëï,6•-±[-òS--æÜ,TÓ,Ý{-KA-¸-y·-¡¶-—µ-Æ´-æ³-e0->õ,N'-^ë,Q‘-G·-ã,Lj-þO-`-ûÙ,F€-tG-· -pw-I=-O¨-7n-…è,³�-€-Þ,o-­¬-Þr-Ô8-5ÿ,ò‘-ÚX-Œ -—û,'--+é,CŽ-\-ýÞ,„}-)C-ú-¿£-•ö,›P-ËŸ-›f-ä-- ^-Ì$-”é,qŽ-èU--¿2-’÷,t›-M)-ží,Ô- å,'Š-}Q-� -µg-‰.-¦^-˜%-K-½×,b¯-þu-*-4î,Ó“-Z-è -ËŠ-‹R-`‚-³I-× -å6-mý,¢¡-³h-†/-8ô,�-_W-U- â,F-F -*Î,³-þ±-mï,œ”-ˆæ,ɵ-,µ-¦-DÜ,E³-„J-v²-öÒ,±-â@-²-ï7-Bþ,i-é¸- ™-î_-ΰ-³¸-á�-4X-¬â,›ˆ-ÑO-…-âØ,ê-ÑF-J -e#-V�-çT-âÝ,@„-$L--IÔ,Ÿ|-AB-Îþ,Ø¢-xi-“0-§õ,µ`-æ'-ee-»,-7—-o]--´-9…-ÿ-vÕ,z±-úB-us-Äÿ,�£-nj-‡1-fö,nš-ä,š‰-´H-& -ÇÐ,’x-¤>- -“©-Ço-Û­-?t-:-Y-Y¤-Fk- 2-úì,Y’-BQ-Á-þÐ,y-6 -ðf-.-+ó,ó—-ª†-ëM-Õ-V×,ËD-ä®-Nu-;-Kl-ˆ3-’ø,?I-·y-ì?-ñ-eª-üp-g¡-Bh-ýó,’˜-_-&-%W-æ-–á,á‡- -¬E-€¦-÷l-.ù,xœ-ùb-w*-Éî,i”-ÐZ-Œ!-æ,X‹-òR-õ-ÞÛ,MJ-oÒ,ùz--v«-Çq-|7-Ëý,¢-}-DÝ,šƒ-ŽK-g|- B-F¬-! -Ð,üw-°=-t-Ѩ- n-j5- û,¦ž-,e-D,-&ñ,–-]-ò#-³è,Å„->H-¹ -G>-ç-·a-šä,_µ-Q-‚-?-ÎŽ-1¶-h-ýß,ÀÖ,¼±-YD-þ-¥-[´-3-ç÷,'“-à·-= -iå,¡Ñ,o�-i¶-©-Wá,$Ø,>²-@E-× -bî,1”-Q!-äå,úŠ-ºR-}Û,Ž‚-J-=-Ô->«-_q-C7-»/-Ÿô,g™-µ_-³&-ìê,l�-”W-¨-:â,hO-L-BF-º -ªÎ,Ìv-g<-ñ¦-–m-i4-Èù,I�-üc-+-øï,c•-u[-“"-ç,/Œ-T-D-«Ü,bƒ-!K-;-‚Ó,¥{-yA-lõ,þ™-#`-|'-Œë,‘-`X-z-$-“Ù,t€-;G-å -ÝÏ,4w-w=-8-¨-en-25-‡ú,nž-EU-SL-3-ÓÔ, s-9-üþ,Ôi-À0-úõ,6š-â`-:(-&ì,·‘-Y--mã,(‰-`P-Ä-mÚ, �- H-“e-è,-öñ,WC-(-m­-Õs-d9-òÿ,ì£-¥j-¶1-Ãö,Ïš-Sa-°(-?Y-s-<ä,lj-ÊP-$- Ú,„�-Þ>-ˆ-Ë©-2p-Û5-ü,úŸ-bf-Œò,“—-7^-ú$-Yé,Ç-fß,Ó…-]M-i-Ö,Þ}-ñC-�-N®-²t-d:-Ò-Ȥ-³k- -Ôä,TŠ-ªQ-ù-ÛÚ,¼�-I-` -9Ñ,Ty-?-lü,Ë -fg--‘à,‡-aN-y-ë×,› -)¯-Åu-m;-t-ߥ-»l-ø3-úø,9œ-Áb-š“-CZ-!-OR-¼-AÛ,'‚-áI--ÚÑ,.z-S@-h-Öª-J/-fô, ™-z_-V&-u-t -ÆÍ,”v- <->-º¦-.m-14-�ù,Þœ-hc-Ø*-5ï,Ê”-[-ö!-è,Á‹-…S-g-rÜ,õ‚-²J-Ó-|Ô,f{-A-z-¯«-/r-¸7-þ,p¢-èh-÷/-Øô,ì&-%ë,¥�-ûW--sâ,y³-²-Ù,ª²-þF-x -FÏ,Ð<-ݧ-Îm-œ4-ß�-–d-Û+-�ð,ü•-j\-*#-Þç,�-°T-ç-«Ý,„-ìK-Ç-Ô,Åë,‘-œX-³-6ã,ôˆ-,P-2Ú,Ó€-ÒG-Y -vÐ,8x-é=-°- ©-o-£5-Yû,Ÿ-€,-�ñ,û–-6]-.$-ìè,Ž-°U-Ó-ÈÞ,ý„-»L-Ë-7Õ, }-ÂB-Å-8­-£s-’ÿ,=j-5ö,a-u(-^ì,’-Ñã,_‰-F�-yH-ñ -Äx-W-–o-Äû,jŸ-!f-{--Ë]-‘$-‰-+ß,h…-%M-.-®-zt-Î9-”-‘¤- k-W2-Z÷,<›-ða-5í,‘’-+g-K.-÷ò,+˜-r^-5%-ê,�-LV-Ö-Và,l†-"N--×,ž~-–D-= -‰u-Ì:-;-q¥-†l-À3-Vø,œ-ˆb-Û)-üí,b“-ØY-© -¨å,’Š-R-„-wI-ž -òy-³?-,-�ª-Ãp-¦6-5ý,+¡-zh-/-Äó,ʘ-B_-÷%-°ê,Ù�-æV--Ðá,¨‡-)O--¡;--¦-0c-H*-ï,gd-L+-1ð,Ì•-;\-Ì"-¯ç,½Œ-ŠT-™Þ,•„-ÆK-­€-NÐ,lx->©-Co-ßž-B¥-l-í2-&ø,Ñ›-(b-¬)-Ìí,ø’-¨Y-z -9å,áQ---Û,÷�-y‡-ùN-}E- -šî,”-|Z-2‹-¸Û,u-?Ò,šz-Œ@-˜q-7-œý,ס-�-~¬-Es-¬8-cÿ,2£-¥i-ø0-¥Õ,U}-“C-ˆa-è(-Ÿì,B-tä,\-áH-öx-ª-p-6-;ü,¥Ÿ-[ò,Ì—-Áé,¥-Ÿß,£…-–M-~-†®-ît->:-„k-�2-À÷,{)-mí,É’-xY-®-rÑ,ˆy-P?-Á-6ª-kp-H6-§ü,n -h-·.-fó,i%-Qê,@�-‡V-J-Êà,á†-šN-å-�×,Ý~-E-u -9- £-(1-Ôõ,(-ì,ç-«ã,ü- >-Çñ,d—-œ]-b$-5-¬­- t-üö,�š-Êf-µ--Èò,^Ø,F-ãE-ZÎ,hŒ-`S-®-DÞ,r-¶Í,„v-ú;-ö-p¦-ÀZ-æ!-xæ,Œ-PS-W-ëW-ÿ-\ˆ-ÁF-É-Ï�-+\-#-Ÿç,Ô,W|-ùA-£¸-з-Îr-œ8-¥`-Ö'-ìw-Á¨-øn-û,e-ñ,²–-þ�-»-}-²B-(­-7·-!¶-€£--j-w1-ƒ©-†o-ZŸ-f-Kò,óÕ,Î}-áC--¾9-I-I¤-ûj-2-J÷,,›-=)-êì,Š-\†-°Ö,Ž~-%ý,j±-Gá,Ö³-³-n¸-µ-éz-ö¶-¶´-I§-†m- ú,9�-ìc-èï,S•-Î[-T-4-Ý,rÓ,û{-iA-:¸-›·-ö-¹µ-è´-´-ƒ0-\õ,l'-|ë,o‘-i·-&ã,äˆ-P-…-"Ú,d€-’G-Õ -Žw-g=-m¨-Un-£è,Ñ�-ž-4Þ,�-ˬ-ür-ò8-Sÿ,’-÷X-© -´û,E--Ié,aŽ-y-ß,¡}-GC--Ü£-³ö,ºP-êŸ-ºf-.-'^-ê$-±é,ŽŽ- V-(-Ý2-°÷,’›-k)-¼í,ò-)å,DŠ-šQ-» -Óg-§.-Å^-·%-i-Û×,¯-,v-8*-Rî,ñ“-3Z-!-êŠ-ªR-~‚-ÑI-ô -7-Œý,Ç¡-Øh-«/-Vô,7�-„W-s-*â,2F-d -JÎ,5³-.²-‹ï,º”-¥æ,ìµ-Oµ-×-bÜ,i³-¢J-š²-Ó,4±-A-Ð- 8-`þ,9i-¹-¾™-`-þ°-Ô¸-‘-PX-Èâ,·ˆ-îO-¢-þØ,€-îF-h -ƒ#-t�-U-ÿÝ,_„-CL-#-lÔ,¼|-^B-ìþ,ü¢-•i-°0-Äõ,Ò`-(-ƒe-Ø,-T—-Œ]-%-K´-X…--•Õ,¬±-C-“s-âÿ,¯£-•j-¦1-…ö,�š-,ä,·‰-ÑH-P -îÐ,´x-Î>-G-»©-òo-®-jt-.:-„-�¤-tk-G2-%í,�’-mQ-é-)Ñ,Dy-^ -g-;.-Vó,˜-ц-N-ÿ-}×,E-¯-yu--;-vl-°3-ºø,gI-ây-@--�ª-q-’¡-jh-(ô,º˜-2_-F&-OW- -Àá,ˆ-6-ÓE-ª¦-m-Xù,Ÿœ- c-™*-öî,Œ”-öZ-¯!-?æ,‚‹-S-"-Ü,tJ-¶Ò,'{-j-Ÿ«-ðq-¨7-÷ý,0¢-¨-lÝ,Ń-¶K-�|-1B-n¬-I ->Ð,(x-Ù=- -ú¨-Én-“5-Iû,Ïž-Ue-p,-Rñ,ë–-&]-$-Üè,í„-iH-á -”>--àa-Ää,‡µ-2Q-±-@?-øŽ-Y¶-•-Fà, ×,î±-†D-- -2¥-ƒ´-I3-ø,R“-¸-j -˜å,ÊÑ,™�-‘¶-Ö-†á,NØ,f²-mE- -Šî,Y”-|!- æ,"‹-âR-¨Û,¶‚-=J-e-ÿ-f«-ˆq-l7-ç/-Èô,�™-Þ_-Ü&-ë,•�-½W-Ñ-câ,‘O-u-nF-ã -êÎ,õv-�<-§-¾m-Œ4-óù,q�-(d-<+-!ð,Œ•-¡[-¼"-Bç,XŒ-KT-m-ÖÜ,Šƒ-OK-b-­Ó,Í{-œA-—õ,&š-F`-¨'-µë,A‘-ŒX-£-P-¼Ù,�€-dG- -Ð,`w- =-d-?¨-�n-Z5-²ú,–ž-pU-{L-_-÷Ô,5s-.9-%ÿ,ÿi-è0-%ö,^š-a-e(-Nì,â‘-/Y-2-›ã,O‰-‹P-ì-�Ú,6�-.H-¿e---ò,ƒC-Q-œ­-ýs-�9--¤-Íj-â1-ìö,þš-xa-Ø(-hY-ž-dä,ê‰-õP-L-ËÚ,¬�-?-±-÷©-[p-6-+ü,& -‹f-¸ò,¼—-b^-%%-„é,ó-�ß,ÿ…-†M-•-,Ö, ~-D-¾-v®-Þt-�:-û-÷¤-Ûk-- -üä,‚Š-ÑQ--Û,ç�-/I-Ž -bÑ,xy-£?-—ü,ó -¥g-:-ºà,9‡-ŠN-¥-Ø,Ç -R¯-îu-‘;-£-¦-çl-!4-ù,hœ-éb-Ó-lZ-A!-{R-å-mÛ,P‚-J---Ò,Zz-|@-”-ÿª-v/-�ô,2™-¥_-~&-«-ª -Î,¼v-2<-l-á¦-Ym-Y4-¸ù, �-�c-+-]ï,÷”-5[-#"-Eè,ê‹-³S-–-›Ü,#ƒ-áJ-ü-ÃÔ,•{-;A-¢-׫-]r-ß7-2þ,˜¢- i-%0-ÿô,'-Në,Ñ�-$X-;-œâ,£³--ƒÙ,β-+G-§ -nÏ, =-¨-øm-Ã4- ž-½d-,-¶ð,'–-’\-U#-è,F�-×T--ÒÝ,0„-L-ó-9Ô,ðë,§‘-ÊX-×-]ã,‰-PP-]Ú,û€-úG-| -·Ð,\x->-×-.©-3o-Ë5-‡û,-Ÿ-«,-·ñ,'—-_]-R$-é,3Ž-ØU-ø-íÞ,)…-äL-ï-fÕ,E}-êB-ê-]­-Ås-´ÿ,^j-Vö,Ca- (-�ì,I’-ÿã,Љ-t�-¤H- -æx-x-·o-òû,•Ÿ-Rf-¥--ù]-¼$-·-Vß,“…-MM-Y->®-¢t-ö9-Â-¸¤-6k-2-‚÷,d›-b-]í,¹’-Vg-y.-ó,R˜-–^-Y%-Aê,0�-wV--�à,š†-QN-;-F×,Í~-»D-e -µu-õ:-d- ¥-«l-è3-‚ø,)œ-±b- *-$î,Š“-Z-Ø -Ôå,»Š-?R-¬-£I-Ç -z-Ü?-X-ƪ-ìp-Õ6-]ý,W¡-£h-:/-íó,ù˜-j_-&-Üê,�-W-E-üá,ч-XO-<-Ì;-.-B¦-Xc-g*-%ï,†d-l+-Pð,ì•-Z\-ì"-Îç,ÝŒ- T-¸Þ,µ„-ÜK-À-fÐ,‚x-V©-Yo-öž-a¥-;l- 3-Fø,ð›-Hb-Ë)-ìí,“-ÈY-™ -Yå,R-M-1Û,‚-˜‡-O-œE-6 -¹î,!”-’Z-H‹-ÎÛ,”-_Ò,»z-¢@-·q-37-»ý,÷¡-µ-�¬-es-Ä8-‚ÿ,R£-Äi-1-ÆÕ,t}-³C-§a-)-µì,c-Šä,r-÷H- y-&ª-"p-86-\ü,»Ÿ-|ò,ã—-×é,Æ-¾ß,Ã…-¬M-0~-¥®-u-T:-£k-¯2-×÷,œ)-Ží,è’-˜Y-Ä-‘Ñ,§y-o?-á-Uª-‹p-g6-Çü,� -2h-Ö.-…ó,ˆ%-qê,_�-§V-i-êà,‡-ºN--­×,ü~-0E-‹ -[v-];-É-/Ò,Šz-C@-Ä-.«-Oq-€ù,Μ-¿c-È*-»ï,&•-e[-R"-Õæ,±‹- U-×-4Ü,å‚-«L-Ã-æÒ,V{-Ò@-0-¬-r-n8-�þ,`¢-j-øâ,‹ˆ-ÁO-´-ÒØ,Ú-ÂG-: -žÏ,$w-À<-ø-ͧ-'n-ó4-wú,8ž-íd-Ë+-æð,V–-ò\- -Ï,›-x§-Oú,¡�-Wd-œ+-ð,¼•-ý[-â#-qç,­Œ-zT-A-›Ý,õƒ-~K-·-ÓÓ,„B-äe-k--M-ê,¾Ž-u-¼:-+-Ï¥- l-x3-êø,Á›-xb-t-³p-–6-÷ü,¡-h-/-´ó,‚˜-ô^-ç%- ê,É�-ÖV-™-á,i‡-éN-Õ-W™-£&-\�-˜--ˆ-¢Ø,“F-6Ï,W<-�§-ƒ"-ç, �-âS--4Ý,Rƒ-K-+-DÓ,*|-ÌA--6¬-�r->8-¾þ,È¢-hi-U0-.õ,î™-w`->'-ëÙ,6€-ÍÏ,¾w-9=-(-“¨-"5-âú,^ž-4,-ñ,…–-Â\-²#-uè,£�-5U-p-‰Þ,…„-Ž-'Õ,â|-_-û¬-T9-"£-I1-êõ,*(-ì,ÿ-Áã,-7>-æñ,ƒ—-»]-�$-L-Ë­-/t-÷,¿š-àf-Ô--çò,}Ø,e-F-šÎ,}Œ-uS-Ã-YÞ,‡-°€ ODHT Ž"@·Þå,b0ÀÂ|×k€àrM¸ÑòâÎEy°ïëà ¾³¸�_+ÌÝ’õ/ß [� }Ïï À,ΈEî� Àyó~Ž|¾ €t1B”cÑ€i�è5tù–sMþýÓs¯+׫O@ #Iû÷5Ð@±ÀK øw¿™@¤ë þÞžã@Ž[pP€¾€Ý}Ý o±ª €ç3t׬Cv@ñ´$`»êµ"‹ãùG}*#À¨cJMß"À�Òlòæ%À cN j¢‚‡%ÀˆaÍ»{!û&@ ¸hl9É)@W'"–´Vx)€Ü› Éyˆ*€þ#aù[#+€^ÞN]5s*qsÆÉì /€ ­ “èœð/@[7ø”‹¹e2y : +4@çðB‡«ôA4Àej I‡ÔM5@ÇY×yÒÁI4@·ÔÓexe"8€5ì â#üf9@„È" ÆûÍL9€È ƒi§i7À>v m1 ?@Lš~ym�@@‡ˆ²ÎßÁCÀ²‰õÉZÏøCã\ —PE€V»qIéQÓH:‡ÙKHÀªIÙ¹æSaJ@B¹÷x–Ì”I@| TWŽ[M€ç !Y½0˜M€,Ü5—Ì€N€îù-8°o“Q@Žæv Ÿ²ZH¤ æ°%Ì]À±>waŽ7Ž]€Rîlü0aÔ`@QsÚ ¨¡aÛ…Ó‹JÍbÀN�ø„faÀ±¢ž ;AÆMe€=F„Ô­ãi€Þ]z! +’lì('Œ)mlœ¸ ÏDÿm@¥“IšÞŠo@`>–ÙË�?s@ÅÌ! £/t€A"ö&$u€äÍŠ }⑺uÀ³ìu!®BZÆy@2¿°Ë:hzÐRܾ”¿uz€†ðt\¤™á{@0Ÿ¡½Šî}„ÇÀ¤,z…ƒ-µ…ñ׃@ ®:ñí]ã…@Ö**jZsøŽ@¶¦Ï)J£¡�@”ÞO FL‹–@©áûGÿ'R—€Â_]#óù˜@_„íºç™¤e_Öq—€�yr j”å×›@3‡ Yczš@~?5êAZ žÀáIq�£Ož€Í�Hå§x¡€^ïèn¨W£€Â„ì »‰ýߣ’¬ÀóPr¤‰l}2—S¦€¯Ã #e¤í²Xõ¦`¨@WVkÔ"²¸ª@2KU‘¨,#¬À v¢ Æìv}­€¤\]H²'Ï­€L©( 7.¼ ¯{K˜~é,Õ±@Äë<E#O´�Z僆[´€áœp(¢pµÀ¢Ý$r¸º@IÑ2†O›º@a÷ÍöEzœ¼åPq ŒfcŽ@ ¬?ዾ@K�÷C�¾Àª6äÜbæ)Ä 7Ç›ÄÅ[3x à÷ÀNÇ.Unìμ•Èü‹ ¤ZìÉ0JU „ÇóHÇ€BkÙ R”ÚVËØÓz<­ˆ�Ía:Fô~�ÃÍ@`L¨ gY§1Ï€�%‘(bBÐ@J%mò:íÑ€Gë€2ÍÀ Ó¶¬^¹ÓÈ�\õl¶Ò»Y™»UUÎB³2 ƒ< 7×íñ+n߀øÃ%ï¾ãÀ¤±ñ7nÁä€*™ I âJäÀf,* {æ@Jàéâù:Öç@7_@è>’èÀìÄ‹�ëŽAè@öì+ E=ää@àb6 Ermµëƒî0^ò~Õí€\jóÎÀˆî’=7 )Ý–ð€hˆ¯P6rö@»“¥u¿ÿÜøÀNÍ� ø®ñNê˜ÞøG?1úe°û@¿v­£¹²Àü€kDT u•�ýÀ6ÿ¬ ú>2ûû€“ˆ,›qÎùû€š_翈×�4oÀ ß&+¼�¸V2'ù9AöÑ´©Uh6��ÍEgÁì«AB ž \À AqçF žÉ"�Çâ¾D†Ùƒ�+hnu,Ïÿ Á’Ì dˆ ÁËÕÀƒç‹Û ÷è[.ñ\A¸»j zí â�Ž'Í•J+âÁãÆ}Å'3Ê�…Bõˆ¥°) $™JA.‘áìÊ÷›Øª}¯5øAC½ }X˜hÁóàbÏ ˆAkrl¬Ô#!AÄ­ CŸqÎ#Á!Eþñ¯ˆm$AôOx XôÐr)�˜¢eóÜ “,Á>â!C"p0�Þ ±ïÀ5�ôi«!Ö�Ó“8ÁË;9 Kƒ •8�4Ý^ j©Šw;AZ÷Bp­·<Áñ B~µ®<!Wû˜œ‘;� €#<Ý >{{Ø4çA—•—Ïw‡C� EÉ›,ÒD� ¢W K/¿:FÁWÌ0 ±WK»J¹¹PåvX–MÁUQÃ×€W4MlW>Þau�TA}` V™g UA(½3�æ¤VRep.‰V�-‘Z`ÏF \�%Ï¥ [ý¥§\—Ä. €W^h]AÛÕe�_>UÜ 6Ô>`køƒU„,£b€Ÿœ å6ï·e�E_o£K“fA[äÈÝaßYkÁ(Æe¬�šôkAÿ°l×qv_o¬‹ÅÈôÓüpAe>y¢ÑðqMŠ&ÍYs�çµiÌ~ÊòtÖ›ÅlÃ0sd¬9ºEøv�¶¸TÒâ¹wj&( ~I\v‘„JÃyvZyAí†k Ez�vÚu® Åéy�qK¼Ï|A½ü†ýdñxAÌÛ êŽTO~AýÈ¥ nSZì�²›<ÅTã��ØÐ  u,ƒ¼QpOø‡X„AÜ �·o%ƒdN‚#ö„¡ø•µ\ùs‡AœÀü¾á ÞˆA÷5  ‹�æ{ÚÏ‘w•ŽÁøEO$ŸŽ�³PŽû¥�z´ó¡UŽÅ��£¿ÇB±Ö}“ÁÑ©‹{já”ÁÁ`ôÀ匓Ä}Š}3ŠX–�%¯i,dhË—Ab]M‘RZ—Áè �‡OÞ”¦v£=u™�§©Bƒ|ZŒ™ÁGTŽ Q`Á­œ�GyR ~5�îÅx1¿ï@žAr¾ÝVN¬;ž�gCh îìÒYž�hþ SÓ ÿ+ë˜Ëf&!Ë�¿6£¸üág7áe£AqR)£çºeœ�?¾¿!±4�µ—ÁIØê!Á`gâœìBñ!é`Š€¨A%•Ç Òñk”©Á¥˜«~ø¬¨¢Y}šD9’¦°NM"Pµ ¬Á— uWGíÁðUî i®{¯AVùÍéCô½³ip¥@Gˆµ�Ö-„ñòµ�­«•¾w·ñH°#ƽ�ö�¡IæÇÁZ‹Õ8È*l´ñÝe±ËÁMWZ&f#„ÌÁ¢Ñ·gŸÎ&ÍÁÈ]²ÅáojÐ�Kg dØÉ×ÁÌméM(ÖØ�ºl ^6ÙAP;Ø!®ô1SÚä ÁÌ0Ý ì ÑAÒÝÁ4aö",’Ýâ^¦ Ó ¡ôæAý£Î ,”â(èÁ±6Ý‹ÓéADUZzâÇþëA%_Ï  ò"‚ì�ógØ«’;7î�XF¬�»ðA¹~³ÂÔàÎò�Azù�NŸRóFØŒQŽ•ìô�Æ«3å)§C÷>H(B‡F®øAw8T#0Yaý�" –À×LþÜ™K@I¾ëB6mäÊöáyÝp¨¶ëÏB€ žC; ‚\æ L~BÌøÝ²Uö½‚3`ë¨íµ™v!q%©î ‚-ê¢lf�v ~ E ÛÐÎB±ä¥!4¹œw B{HG¯‡òJ‚µ6¨ˆ>“.£r®0=ÂÁ˜4 h‡�#‚L@cJÿŒîÂ^ª0*£|H¦z¾ ™·>vÂEJª {²1;‚ìÞ!¿r`íõÕCósÇÂw¢õ&Ô|gÕÁ ä r‚”æ6"°Ì0B‚αL¼õ2‚ë‘¢p¯cB‹ÎÓ0z^à ÌÃ`§Ò•¢"ÂÇ=;ÖÔä¹#‹=P ‰%$BzO-HWh&æô/"°*F‹'“ñaçC-—] :9µÙ1Âö‚"qÕ—3‚©îöEúžJ5ÂëÚ;¡¥�6ÂΡ½�´œ˜9Bøºæ»Cöc:ÂQå$X(Ú>1XªÎy?BŸ÷±BTsë?ÖSÞ£ž“/A‚@ô¿$M‹Aš¼€oä >ÂoƒM„ˆ¹D±Ší§ÚDBTÏÏ͈¾FÂ!JûoÌ@Còïl ^*Ö¢I‚z©�,‡‘>Mmßc_*&3NB¼×‡õ˜ÎVOB_ç."…ã’ØPl›¤S«/P‚¿ËC ƒ½!¶Q‚ à Àé·âTBÜŽA�ª�ýVÂYáGZÿíºY‚f~U1GÙZ‚¼‹1žvn\Â˳3BÝÀ\ë”âë O¤^ëìœccoB.@³üBc]v ‚PühÂ*•´¢F‰kŠ‚T�Â�ƒlîé:óò4lm£²AÏ)ªmBÚÑP§ÄoDlÂä¿Bó~pÂ&“‡Ûý‰¢pcQð�ßÊm.çÏÖœ5ÿŒKzBá&r¯˜·ã{‚IO¹Æ™I)|ã±^Š(á{B _vS~&ú” ÇK:|ÂLÁ…â°6b€B,×Ûnª´�ÂÇÑ (¼½}‚#}WÓèþzaÅçfpx…‚åX[ö&ƒ†ÂÆ�,†²ÎX†Â¹=¥“8`ÕˆÂ5 ‘à}? ‰Âþ,lú˜ñ�z Ú 81TpŽO r¯.À�‚ÞoÇM²B’‚[¹%a`—Bxñê”•Š˜‚,òBspé�™ÂÂùIÐð/«›Â�§ï¦ÔEžBgHœ 3#ÁdŸ�‚Ÿ!ÿŽ¡ÂÆ�˜I'â¢BhëüpúÉ¢‚­NâíTÈx§B–öÈ©Ï[?¨BÕ¦Éϧû©B©�´Þêw«‚LÖ]íï«Â´¸ ,¡�Ö®B¦óÕ‘Ðu ²Bùœo!J¼·Â«¾Ho^›£¸‚bÉú0Šþ¸‚—ÑKà†™ººBÁvJ .䱃»ƒ5¸ sï=–ÁB}Ô(àþKÃB6hü¥†ÄÂes‡7;®ÿÆBw)Ö©U"uÈÂsWjÐì³ÚÌBOÆs¼QŸëÖB³Š8>Áá=ØôRÏipâÙBúK TÏ”ÚÂ\ì:��ÉUÚ&Ûè½âÛBbv® ¹ï8PÙ‚m}iÆ�ÝË"8 /'ŠàÂph¢Í7¬&áTùQ4(yúâBee¸!&œ|¹äB|<ª�S}èB ¼xÉuM’éBÉÚ·­èÖé‚u¤ •Ø¡OèIQX¾V ïBØö íª8ÞðÂ.=¡�xö¹òBŠÚh ~¶Õó×Í´óŤœôW‡��6Æõ·±êÈÛ—^öÂrMt Gz *÷ÂöÄ…Óð,;úBÃA=!úuÝRüƼÙQ'¶þB/1±TÔ¯h-÷&ÄaæCȧÝ,-Ojƒ™ ÁG Ãÿžœ ô�ê^ Ã…1UŒ<Wϯb‡ C�ë¶`tÜ¥ƒµêo; 'ÃÕ—š‘"hÃò8OåU2~Ãç·[ˆ­Ã_#…Rœùï¯} ˆêMLCKÎs骃§Ï‚ ZmCL= \6×ÓCRåÊ 6£@œªb ¼�—­•·KmŠy4 Ô§Ý¢CØ­2*c¡Ã2–x‘šÛ�Ãr.t1é—ùo·ÕKçl ƒ‡aZVEà)&C™ûAŽÄŠ*'•)îb\Ãd tiÐØ]ÿ‘� s7€È_‚¸AP`l8× '}‡b=_|„AÌbƒkäµLdƒÄ.ä‚O©dC¦´þ…‚CõF¤jŸ †\™©C”ås�+±ª§'ídˆ\­ƒRÍ›í?Úæ¯\oö ZZº^°ƒ¹O7 ‰Isð²ƒâÕ¨�òú¹ƒvè[–W´»C4 ‹‚ìv¾ÃkÇõ!q=ÀÌÜv—ÞâÀÃnƒ4ØqÃÃZ“?»MÃÿµ®ñç9Å÷â”5‡eèÆÒ"Ô hMùÈÃ�™ }ìÉȃH ù"(þžÍƒc¸Þà]ôÑÃú çÁ¬”Ôàbo.ŽuÖC¿D¯ þxâ¦ÙCb… Kijكr1‡!õGsÞlR´bpëÞÃà+CþâCÂ_­MèÓæÃº"†„[CÞ烘¶šlûÄêC4áÅ) c6ë( ´ “Æxƒëƒ'KñXDE®íCÞqD@ÉÚïCB€”Rõ4¯ñƒ·½¼» ƒ�÷Ã¥Ÿ‰=iHùX“d J$úƒA‘Â!×ãñûR) ðº‹ý!ÌØ&�þƒ_ŠØq­kWþƒz* Ï_á D¶ÀKá0)ùþÃqÈjâç¶=" .�È^þÃ<ù‡F%Dq1¨=\›7ƒ\åá%?¤ Ä«žƒ«ùÐ Äé`6|ñ„Š:«µ“úD‘‰¦ÛþC„ ÿÇ á�Œ·„ã醒!Õ u,q˳tÄØ÷L $ëÝ\DÔ#ü0ȶ% Æ�įÄ«Ê: ;„|£Êh9DV¶zr«:&Ñ¿ÏNÞ!_‚l>~ h'ÄòYð_‰çH(„|`J ý燀(B:鉬ÛÊ*”¼V¬'DÝø Ð]û)„¼Ã²äÄñÜ-ćQDŠ .„ãDá £r/RBäg —c0ÄaØ=-Ì÷1Ä�v^qo)Ä=�¶7Þæ¨+„!{1.¶±0ÄÆgE!þË.H6„™?C­5Õ7Dižk "Õ&›>4ª-‰,EÄ%'5œþ]5I„Ìv™•úLàõ‘ ‹>„ÂLÊÊB-ë-PÝGó-¾[øX,.Z"ò˦ˆ\„-‚«1ÙQ_Ä!š%\d`D» Ü,9aö`ÅÚ~_’c„‘lœ#¥eD#¿¸³GÞgD#YÓ™l'#« 4_{¼l- =ƒúOnÛ†Ô*Íso„òáÒ¹hê¤pD'®¤} nÄvÆ)ilÍ­ 1¤HMv„Õˆ½»Bó}ÄÉŸVÍvFQ�á‚Ä' «Ñ„DY÷£ f§ôC†Dn}é4\}‡D´ÇG"½Aèÿˆ„rg䘂‡ˆDyKËWt¹_’DÎ%wEþ–Ä$�a9G)œ˜DÃ!i½ñ�™„®Hi M^}ýž„Ç’(­mŸÄ‰š;ÔBà>Ÿs�˜UÜH/ „‰»©~³çW¢µO‘Z#¿£„W6É\W–ó¤ÝîñjÎH$¦Ï.! �ì3¦„=^ª”)+€¦D_°Æí¤[k©„[Lœ«m“¸ªDzIlŽ«ècê ©¼«DÆÞäB§Û!®D3×Ak•®Ì±D õëø®V³D �+WÓе„I³O ?R µD´1Á€rë�µ„n€"ZZR¶)Î!´N@E¿„?ë ‚ãUÀ×wYrÌ‘|Ã9÷� Y(F9Äféžú! �ÄD¾æ!s½ÛÝÉDà>ð vêY]ÊDÒ0‘ ˜xâ&É„\ƒÚ9ÌÄ }w\úZÌÄñø�~þøÕÏ„kØ*ûãæÏDÛJ’ü°%Ñ£¿ã@ÀÒ„WTl¢ÙÔÓ„h—ˆT×ÜÒ„~ÚžFª7wÓD¸Ë€ Í FòÔ`† ^[…ÆÐ„;§‰š�fÏ{(ÕƒTèñÓ„ëZ¦†y;ÔDŸæ¯·ó:óÛ„‚W´,5DLÞDóˆÓ�Wd2ßÄDv¹;U-„à5Uš0]üà„-³F^a›îâ„Ôýf :Ù›[Þ„$÷3’áÛ7àD÷‡ÞW ºåD þ#r£åe愬<«{†àD^¤S«·¼è„¿ÙPÂ3íéä´�k7úŠê(n½gÅ”ŠëDRS÷[Î-ë¨g g]XíÄ¥'Ù‘bE æÄ†«ÈJî¦Ýï÷NÇ¥R3íÄ�!dd°�öÄEðI¹!.;ù„7°_¹+ûDOs´ó! ýÄÜvÊÐ\TÄþDê—/!'ÚÅ¿—�+ >Eesèø«-ÄE Gi„2 …¿ 0!@=ÅÓôõVf´E ÄÁ Ù×.X ŦU@þo­ŽÅ�¨yñ �ÅnŸŠ‡gígE¢¢L!ÍLÌÅÃú‹ ¯K@E÷L÷ Ð2ˆnãl€BÖ…ùkHy%ÊùPû�Po)E-õ9}žz*…1 A µ r+îz±lz+…O<¼®¼¥-…‘, Þéûa-EÏí— Â—CØ.Åkì0Tq+ÅmÂ_!1Z…J3_ñ£[…ë‰Ójš·b…„Eþu#×iÅltù8LšÄiÅ’ùwl…ŠÎº_¤öèo¼:óÚšGp…‡)Î-‘r…\Ì# .mt…µ†† èÙuƒu;ùr&ZtEjÉ‚…çŠ?\®àîƒÅ½ž6w’RmƒÅÓêý KŸng‰³ö½G´Á^Š… Á (9C‹ÅÊŒÆ È¤Õ�ÅÜÒ¾äuRŽ…€KJUÛžŽ…¹È»ÂYÍ�Å×Ë‚—Û‘E4ì‡ Píꔤ!-øA™Eæ"˯:™¿ž…H­‡ÅîtŸ…„S^¼í¨¡Ål³hþäÅÒÍ÷߃¥E&Œý|k’ø¥ÅÓ\‡�¾Št§ÅÂlD ×q¶°«Eþ–JÿrEÿN ÜØ'¯…ŒhÍø`i±E) m!8â±Åš°Öǯ³…ÏD¸ ªhµÅ›š¿Þ¨e¶…5O»Öûr·Åƒð�J¼½…\T*â¿EÎSOrKÌÁ…‡ù£÷Í?ÆaÞ í¿gÐ…Þj`“o§ÒE��…³ÕÅËac!Ð}�Úò Ù§Dªà…§ÿ LгSäE5Ÿ>^Xå*rÒ ‡[µÂæEžû§mÊ{_æ…Ë‹’…Šðè „!¦6àéE@Œ!ª4ûêß]3'VòëE+I>}6òåìj‹Åh\#ŒëE 9 K €¾ëÅTœÊ;&�’ë…ä×:vkodíE"+5¾ßÕñ…"oWFá½ó1Ý ED6ô…;Èk ‹-¹øõð¸ÄÝÒù óÖ¢c¼güEþ‚¶2áFñýÅd­žO%Æ4˜­^$è´F÷—¯z�ÔäFèZš-\Qì о¹*0LFÀë¡ !òÄÆ.2yY9Ÿ\Æ¢[à𠆆_ÓE($ F$×0‚ÀΊ ƒê,‚S  Æ= Ch[i\οMUo2†¿Ð ä ždÒ—6,!Ã$†Ø'÷°øä|ÆÂiKú!r†Ñ|ýj¤M"gÀ÷~`]†÷mƳÁ߯6 -SÀjFF.\íq6çDC&o6FŒ¬ß·Ñ` F�Öo ]"ŒŸ%Fˆ„¶ÕHì)Fã9¥þ‚'X*Æ51…Ÿ1næ,FMñT¸Ù 2-FñN¼MLè/F«Q%Uš1FOŸí5°y<5Æ€Óñ0Ÿœé6FÈ“Ý ZêG1=Fs„îïñ@Æ#ÎÅ©z_@:Yˆ÷ûrçBæÌ‘(…E@FÉÛÉN– �F†~+V6[®>FÆ Ñ-XŸI„ºžä�BiJÆÒlx­ZÁSJÆ Í³Î µL­´8ßC.yK†\»ÅO_XxNéF> —O€MÆ¡…•S¾{óNÆÌZ€|Vy‡N†ïp"ƒTˆR†ŒS×øšQtT†­ýø-¶Tã© º¨™¦WF‹·¤ÆX†ä†“úcZHѼQ9 _[FA~*_#0ÜZäˆÚ7Uü˜^†�\º·±5`FAzÞ|i¿Üa†Ô® ˜p) bÆ�Ÿ¾9 ½¤a†nÒH…ÄÕÛc½\ ³ËÑa†­‹?;µfaßûZhAhgå�gBñKgÆÒÒõB˜ž�h†ž²>Êû2"gÆ´~ôÈ–:j†|Xíþ¡�9lF~N—qYK]o†ÈFy6e oFk�—Ä’9ÚtFn/(ou†X /Ôcy„wFÏxw¤ÏswFX "²è¬z†L+¯øš6|„áþ"³~D£·~ˆßrÆŽgØ ¯³º€†~¯Ô˜¶’ �î×xÈ„Â6…ÆL¡$ð›gù††Î+ÈJ™Å‹FO‹"ÅœtΌƒwÉ8—ŒF{üw÷\lђƳ<¤ Þ•#>šH Ãx–FlSs¿›ÆŽGÙB}GÍ Æ6íö¬ßú¡Æ/‚ÆtŠ£^Ž{-ðª\§ÆÀsÿõ|±† ú®BÞ�²Æ²m¬Ì"�³F¬‰©´ÆûŸ„Û8š½9%f|Ã쫿ƹ»¤‰e£ÀF^> T €|ÂF5åÒzº(pÄF¦2$¼…җĆç´À,¨HïÆ†ºMµà–@ÆÆ“‘Ãrã"ȆJ»Ùõ!ŠRɆÿÌgÕ©öËÉúÈ7]MÄÌF(X w HÿÍFAðÕòï͆Ênq hŽn7Ï´S3É9нó5nSÎz8§¬«Òƈ#£å/5Ó†÷`1<±3ÒÆðßÁE“'�ÚF)­+„?GSÛq4Y©ÂùåÛÆÄ�á]óûÝFû"2ÞP…ƒÜ†ŽF x240߆ÚܯTu–âFˆCð`¢âYE@³ž@âFï›T †òpëÆO¥ËØÓí†!e¢ ¸1»ÙïFžÞ 5™×ïFs³Ü¿;úòòF8HõyöF`ÙC"Á¾Úåú†‡ð³KmÁüFœêe´?ü†.C›æDÁüÆÛ‚w (VÇÐyzT‰æÇ sÕU‰IÔG:(J yÆò Êùÿæ‡züNúëÚÿÇ'Ì#0 ƒg‡F4§Õꢶ G:át]ø( Ǹ_ö øÝÕOÇŒ ÈYÏÇês³*!b‡“³. _WÚ£LÑ|6_ÇÂÍ×%SŠG¿ÛÜkDzÛÔtüÀ‡!&²Š–‡‘¥)鎭UGÑà|"a1è¾q´L‰Ç=­ìë|† ”¾QLj2£!GËà| Fi— Gáo+òzð!G~R>>±ô%ŠäÖ �LÒZ&0‰À³Ùåh'G™æ)–À³%G¦a-´8à°+ǸŒé!V ¯H-ÇMN¤ê Oª.GNänVñ(0‡ÙBÎÕéût3Ç–zÇýZ7ÇIJüqÊ 8‡‘Çû …!9Ǻ/”‘Ò9‡É) •èy5;Gó² œ–á9,5�;ü7;õˆ!ßžr 9G ""Úå*N?GŒ 5ɘ‚D?‡òòì�Àä€BUä )=|!CNx™ '‹YŠPG§óÓý›W­RÇ'«€ê¿•TGižÿWªU‡ß §`×VKêó —*öáY‡<„· ý±)íY\�úîõL[ǹô¦·„ [N Ùƒg [ÇÍ«Æ�j™^ØÌ ĽgéZÇT° ßT7ý\ÇÀÞ15}úb*Î TŽ8ôd‡Ìš�mßjÇ,,ê'Ù;jfb¼ WERönÇÚÃ2Õ±ToGì–�ÕJ´ØoG¡Úpä„ ±o‹ “P�9rlI 2yl—s‡Íj±9¤ÌoÇà 3 øŽBuGÐWîÅÚvdžÿ7j"PwǺ¢œ!6ˆúx‡^�x†ÔyGþ3kÅ• zG‡j.ªK/ {Ç-¿§·Ij˜{ÇWJ.2?Ò„ÇGI¾Î=…ÇIzj øCÈC‹IÕ Ž7Õ‹5´æÛÀäb#bÒÄŽG°<óŽ�GŸ„Tßæ’�î"Ncô�GO½W ÈNË…“G7È=ÑÚ²4”‡ïv,¼‹•JvW\–)á(ø�åò˜GéÖ‘Ÿ}%™�«ÏÙ=åš�µ.u°ªœ‡ðÇü�æQ¦žG{u~Uø3¡6?âA¤ÇeÞDRj¤G „«+-@œ©P§[š–H®G‡Œ{N]2¯Çàèå Ét�¹°ÇçÓdÇD¶G7¶ú /¢x¥ºGDƒJQ¨‰o» ‡W8ù'{Öù /ra×½‡5톉C¾ÇÇÕ ÒzkŠ¿‡èS½-a°¾Çè\ 'YÙ¼GQKI…„�ˇ+  !-Ž•ÌÇàf«O=�GÐÄ}!F¨Ò~ù¾ÑîþðØG¥ß .±uÙÇ5f”Æ¿™rܰF~È�¸KµrÓ¸AahéÍEBÈÁz¹â;„CHÏ“` ² ÒòDH84j ®!ô›DHîýø­KGˆê(} fá[IˆØ&áò»²ˆIˆ�*ýTð±èL¯•ÅLPÈÒ¨<"^NnxQH%oºEƒ6»SˆÂª*gt­TÈ t¤t²¯¤VH%õ¡èah¿WLЕÓ-X`xÔô'XHk…¦¦j\È­õë%ü‘]Èíñl}Z`]Hj""Ø7Ú)cˆsÌ,°òe\4à ç À€gÈ £ß©Ñ!gˆ0§-»°ShHPj¢ñà jR Z ý܃”hH;Ù–$öðÒlHŸ` Ò‘lˆ .®d&’néí ²¹çsØåîOØ6tH쬡©06vˆgM»í=zÈmuž ˆh©{ˆ-Û- ÎßÔ{lA�0§|È( ‘‚i®ÈÅwOodÃ�ˆu+âpsåv‚3;"ÎöèBƒÈÕRÀ´«ŒÈ™g{%’ˆø€Í/¾j’ÈD!×i¡”ˆ*8~ Ÿ—ëù—HbM¸ %»0¬—H´ HÂÓ¹ö™H1bB{çD™šÈe� 4ⱇ›ö_ºT|Qÿœˆm‘ÜDÆŸ{�HH¹À,ëk ëšä.A Ñ¡È- ‡7~Ɔ¡ˆ¯Üw¿WkÕ¥HÆì1 äҨˆiªá ‹l9i«ÈZ�ß¿–Xò®ˆ¼Š±{�ôS±-žÆ ýsÕ±‘Þ7í(þ_µHwïnj™ €¸ˆ7š…e,})¹HùŒ1hi¿HˆA°tŶÉʈ�¯ØÇ2iÏÌHÙõ@#läÏH#ŒÇú¾PÐHÒÕÐFEãÑH­Ò;T«ºÑˆÞ•P�¦ÓÒˆåS!ÕÑÖˆb¨Gì¿ÆÖH6|Qï»ÂÜH(3òP§܈ÃâW1 ¬cß TtFPÒ@àHË̱Lo|.àH5m·MBëâÈK¯Ãz\…êÈöï hKëˆ"­'í˹눪ŠËšL]‚íˆù>Úvú’qïH‹û¨–ßIëðHEÏ›ˆ´òHQµ!ÅŸ”4ôÈ…ÉS*ðuõHD:pƒD0\öˆ/G”oö˜ÒõG†&Éœøˆ;á¡ ñ§ºÄùÈé³i`PHQùOŠúpÀ„MõH½}Ü»@FûÈ] µsè‰SôHÚ¹? « Ùÿˆ~( ÷m=O Õžãäý­I¢W,´¿ˆ± ¯¬ g% Éãï É"Ë @Ò)&ëŸ ê"¦O Ébç±:Ñi |?JŒì‰Y¼�Ǿ-†In­½ÁžÕzÉi�ÖlÒÆ‰‰µ™ágWI³š†õ�KÉtžò BŒ ‰ÙÒ~?ÉÓ%æxþ2H‰�ðä ×Küì ÊY˜¼‰A3$ z;ù¨ÿd' é¸P!þ‹Úf)I31þ}¦|)IûÐØQ+‰Ü p_rj/‰ÀGñ!šÆ1 ¡·qqÙ4 ¯Åcʳ 9 ml›V5'= A⌠N1a> w¼äìhÍú?Éöe oü°‚AI‚Ê$o®sÐG‰Ë0.bœõÀI e·‡p©K‰í€®O³Å>LɹöÎmˆ·—MÉ8ª¹G¾ÁQ aGÆlK/xRIyö˜2_RI{ý\.ï”Q‰âÔÌÄ VÉ®®â¸AœZÉlì…Ã-Ú^É7†±æ;¦û_‰í‡ÛôÉ9a 〭òp¹LhÉRh‰ ðC½‡jÉLÍ/­¿£õkÉCÖ”Ö'ÅÈkÉõ ¹{©‹.n ØKˆ¾)þqÉöey ?:þþsÉÍ-òSåtÉ\7s3³v‰%Öu‰XãXxIüʽ3¢WŸx‰Þ"ÔUþ©{‰_8½ý×G«{‰óÑö8õ,RIè+WÖ»€|€‰?%'æ]€‰â¨ÔD�‚ɯî—ñf†É¬Ô´oÕ‹�I Eq!ÈÕŽ åFŸ¯%ß�”ɄلŠŽ¸‚”I1þ¥§ŒWÑ–É*[>6€0‰”I Ò¨T ˜É"Ê#Å '˜É Ûs‰Ÿ/9šIõl` ¦‰¯í˜‰G?³,àèMœ‰©Ç§º¤BÕš ØùˆJ™IŒÖ€â¤Kœ /ßÈ!ÐÀ4\™ vV\"+‰Ge¢‰pÁÉÕ&fO£ éųXûR¡¤ÉÂS‡ÏÊ d£I_]+ ­)¥I=dòƒ·ž’¨‰|L*îÊ© � ëžÊ>‰¨ ÑrX�+­IVþبŒ�¯I>þ§¹ t° ަR Ÿü–ÿ²‰‘5•â»àdµÉ“ïÃ)¶É'‚²ÒO…µ‰BL« âI» ¥ùo7ßv½Ix.¡ C¸¿‰ßå>Eú¨5À‰úRv5F‡Á ¢ó Þ•ÉÔä@� ýÿÉ7ÞéËéÏÄ |âX(‡ÆIm×élíOÊ {Æú¶‹ÌÌɨ-"�ù’ÍIÝ35¹¢Í‰0q#ÈÓI´„¯kõYÓI]À; ƒÉßFÓÉRy!?—yÙÖ Ap£!@GÕ× ÷‰ Ôê=Ø åUØ µà»PÙ‰êhI“ù5Û Î,f·~SÁÜ ‡8ÑJ ¨ãIÅcIôQ�+ä‰è�3 ;#´Væ ü� ó™à牜,AÌ`Ü»è‰÷œd! AéBæÉu)"Ë6kXê‰íbbì8ºIëÉŸè ¦$ì‰åmÀ ÊŽ–�íÉS&PÁ­íIoZ[½7sZîI ˜/ÊöùÈì‰wù1 Ÿ(w’ñÉ„7�®1>ÙòÉ?¦�rÉóIÝ\�;ÖYõ ÅhºŽmö‰T‡»­:ËNùI©¾Ä)]» HüÂ…‘û»Š÷ ç W+¶š ÊPÉ¢@mv!Jañ&Á(µ#J¥9Æ·|)% ‹µ?;à% ë›&¢úVî, ‹k™KÅtt/Êñƒ Ƕºø0ŠÄ•øõË/ ÑËŽNÓÞ2J™XŠsÁ÷G0J¬Ú§!‚t44б°V³}V(4ŠKq H.ûK6Jʾ�d*Ñ/8 ½?OÃo; à·ë¿F‘< ‘"¯mŸ¦= P‚! Í£‰< –æòˆ|EÊ—oIðBF Qät ‹m> FJ›ÿ4û b&H ðöJßîˆGJGïzD�¢L À©Y"9` NMJÝ%*NÉ¥�OŠ¡`ÎG„EQÊjµÜ~‘óqSJÚHF pÁð×VŠ9WC~×kZŠq—“h÷šá\J2T(QÌá^ “ 0ó _Š º� m‰ú^Êϳ›xlßb �¿"…Û hJ"T.Å¡“hJÊ(¸ŸdîjÊ•®òf¢dÙiJd�ä]uúrlJ‡·½íxðõhJíMO‘­ŠnJP›¿^OïnŠ$—øŽp´iJ‚Þ‘ ðrÊCXÔRsŠèîs+ÖsÊbžì’PtÊh#!DÍ5u ï^"}ÁwŠ¥{× zû#2wÊHUüùîwŠï³g¹öÃÅ{Ê._ DTi¤Š´<ýOB�V�Šì! ŽÂXóƒŠ*2 xŽAãŠJØê> ÷{�ëŠÊqIý FŒÊ·‚ù¡7ý;�JšUîåDÝŽÊ–æ˜9ÙF«Š {xAƒ•½�ŠÝ©  »ÿ·r�ʹ¢t!Ø¼ÙØ“Ê—å›ÊyU”Êçì¤�—ŠOòÊ Ð‡�ÿ› æ²Í!擈ߞ ½ü ‡‹¼� ÊÚ7_Ó´Zþ¡ ÌÞUÝð¢ Îå ¼Äû¢ ½B ‰‹�¤ŠÅªŸ¦áÊä‹¥¦RQáÊ÷DMªÈxÙåÊ>!E#xÔæJ_‘^úÕFèJôI(…Ã9 êÊåvú ¼ìŠ£“Hmʘí 0¦Q‹Î%ñ hE×&Ö‘ñ Gš"Xïô csL ¸Õ˜4ôÊ?œ)Á†û©÷Ê4¨ì(øæøŠjÕ³ï ?ú÷JkHB?wø #ÓK!ν´þŠT¢œp?­`þ 2³Œ Ó6ÕþŠVs®•vë ¿QE ¼@Ü  ×$ôÙZÉRKê€Ë ,Ém Z…‡ÍùÐ'Ë'qVtá6 /×9±@�‹ À\ƒ ¾ á�Ü 3`  Z\ §B”W˹Ôt«Xcø‹DË™HÂÁ‹³:/’Áœ 5‚"CTßô {6ã 9øž"˦�aT–#&KU~z(%1À'KŒUd)A²Æ'KG©'~Þ)Ë}ÚD�þÐc*K…¿Æ?ìÛï3 õŽȉ“t4 ÆÕzÖýî:Kïsྈ«Î;Ë=UÅí…>Ëšr°¥ßõ]> � #y‡? 0Ù{"qk÷B‹ð­Ì@ŸÍD‹v&Ï0EË <õ«~EK+k±"%°DK­x-�®SH‹f‡KW¢j­H‹0ûì-E )òþ]ÆÚ1GËö­“—qƒZL‹àMðŒžä‚OK©×8Ä$§O í=ÑšQ %CÓýµžVO‹yëi"˜Ñ4S [‡» ôûrÙTK .�ƒ’›%U‹YÚ´/oþV‹x�¥ú£íW TÏIFS VKvÓ¯°kÉ[ d³ÿa?.Ë^Kƒy�Ô/ óa‹.ÚèùYbK�~±œ�£DbË„æD82i -5w®<ÅókK]UåÌ©!žkËpF�•óúk `½ ¥°@?oKÚIÆÇMqq óOé6'¨ÂrK¨qö ¢ÕsËô-hŽTíwË«{± +<ŒÕ{Ë=¾¦— ^|ËŠTÌË#/Ž{K?­µJ#„ ? iIÁ«o† aJ½‹Ñ@‡‹ñb™1†Ë´] Ó à‰‹¦H\ äëŠ ñ< žàûÔ‘ ¤,Æ! m£’Ë;GŸœŠü$“‹st~ FÊ–ËN´C«Í›–ËØ`dý½×˜ ‘-µV¿¹ô™‹mŽef@èå—Kór$Ť›‹ÐQ.¥GÐÁ—‹Æ–0 c†¼–�‹’?º ¥x¥�Kª±Ž…3Þ KsÁ¯ˆ;�‚ KP„ó™þö£‹4äN�çrg¤Ë,¥ä ‰˜÷Þ§‹Iƒ¥qB0E¨Ë!“Ç£ÀZ‰ª GwDŽíP²­KÔÞ›ϗ®‹qÒÙ ÎPR±‹ÛÏ› r³ïy² ^ÏZ9¦ ²‹uwtIÛI#¶‹^êú$äªu¹‹(sf ã£Æº Q¼…Ëq »‹(‰? ‡ÔÊ¿‹8ñV ;Ì�¿ ^£ì}HÁ‹¨´§Oq§ÂˬdÂâfYðÂKHõ5ø·ƒÂK‘Rn ðYDÁ ÝëE ÷\ïÆKî’ †%%Å šÛÕ} ֵȋ“õ7`ñÜÇÄËòO<…¿Ù¨Ê 1Ž´Él.ÇË„˜…´Ç´ÌKUhQ bí¿È iPsÒnÞ*ËKRq�B9ÄËd !õ'ÒÿÒ ÿN�c8µÓKD‘]O}�ÝÕ‹òªØƒ4ÖËüñ Û)ðÙËWYI€ŽòÜ ¡p AÁQµÞKŒG YŸÌgßK¥bÛ:³Þ õ32Y«æ‹¡’¾º²ç í)a(•Åè‹4­Žê#úé ùL }?GÕêKédˆÔƒÐé :hbM•kîKÒ¹ÔMÛ_£ð ÉÓ‰ By`ôËôÚ.³ŸtøËtv9 Á:?ÇüKØ�ÔËí8þK>ysh[•¹ÿ‹„^hP`Ì~)ÖILnt˜!LhldLo.ì[ª„þŒ\HH Ø�qŒÌX €PœP ŒªNňBu а2»Ô Lxç'‰  LmWéôô÷ô LnÁïÖ~ÞLV‚] t·ÃRÌ«]Íu��“Œáü«O%´LDzLé.̳Œ $Ô,ÕÌÈ ¥wùÔŒãøp"Í#LÀ¿¶¦ðp$̬€ß5JWÔ%Œ™üëÇfò'ŒÚ‘– Ý›û(Œ Ѐ"àIÊ7)ŒÖ{œ„I+ “iÓ¼,Lž¹,t@+Ì5L>”ôHj.LHо³ 2Œe»†� BF4Ì…=-ï9Z@5Ìê:i‚ ¤¾7̪6µ._φ9 6’c‚'|ƒ:  Ë%¼0À;ŒI} ú‘¨<Ìyý“:5¿  KjW]L¿sn ~ÈÐú^Œ—à 4lyaLÇçabbL%œ R\WÙeŒÊÚ!ú·¦fÌ,ým…¾Gøh žï†Ó±ïjÌ£J8³kÌhª ˆú-ÿ í­t0ζuBsš2CE×o3Îî0Œƒ#ä64N�; K$É59$t«L—4NJô¸7±¡®4N+¡ë XfH3ΕtùÆÝS4ŽloM6a3«û ¨Î_��TÊ«ÎM{P¶ lm«NTyÙÂmä¯N>ÊÊ>²NJµ‘€‡Ò´ØG‹Úgò¶tüšXð9·¬Šoù®]€¸Bë«›�w¹N¸qòÞ»2Cå=ÙK½NèXJè´=¾ÎÆÖ<;‡á•¿N𵌠‡ºy°ÀŽC4‰ «Wê¾L­añ9±‡ÆÎ‚±ñf+šÆN™.°!'3®OÊN©K1 J]ŠÍN»´NÞõ’JÍΗYòŸßgÐŽCùuDæNvÔÈà G‘­ÛÕÎÅ×ÑLH¨Ö´êAæ3ÁFÔƒµñ¥fB؃’bÒ¿¬ÕΊ|’=­Ô’Þ΀1ô£ÉŠâ‚ §³Ì„2ãN6¥± 0Aï&ëNU¬r^’QñìŽJw² “^Þ!öŽN`"x¸†À÷Ž ¡mI\íùŽ»ïLƒª=ùŽ›Ô×aŸúº‚ÃÚÙ ûÎ.½òD?ÕÿNEžDŒ‘Èüf—�¼FÓ˜éW8±Ü�] ·p$pHO6£ˆ^œ/�ìÇüéWµ�ôüîj±OCMøÌ|¼›�Fn#!Îï£}ÏÿͼL©OÞ#{ùê1�ÐÃÉ ª¬2K�¸¤à ·Œê½ÏÙWS ÷ÛÔ�Y›Io»Ââ!OÕGV5,¨à%OV]ÈY#ý)Ox‘ÁDzD.*p Zâ)Ïo!i}_R*Ï�~ª f+zÛ.O)j�ì1Fs/O«ŽXrCô/Ofï– ‹ñýË0Íß³u‹ãY3ÏÕ`ß»I×4�îZ‡‰>5OTÍ!ÊV6O5×ë ø >6Oÿ…�!t$8üw½2ä½8O‰¤üfü}:ÏŸ…Ε¡¾þ;Ï­ë,Z‚žö3OÒf!Øö|¦A�ß¼]¢ÙË¿BlÚÿÒq#EÔ2Æ ë«KGF�Åú·õ7ËGOüñ”4@*EHÏ¥)MñC I�Dø ¸Ü=èJω}%¤—{UMO†Úx ¸K¢R�—„ÁOæÕS�äõ2�ѾT¤nÅú0^®RO߬»³–zVO–ÛY‘ìOEXO-¯IõmXOM»,Ì<>¥[ø ]T=\ëõ$ ú†ãÔ\Ï©i 6&Û]O{¦J¤Á`�˵?Ý& aÏÝyÂãÕ@b�%f£ÐA›ߎѹÁJxºð�O™£| 1’OÅŒÐ~s“Ï-FåçÄp¢—� ™¤L·¯T˜�Z¦ŽÆo)qš�5òÏ ;ä®šÏ ¹ ÁÔñœSé¯o�¹��ì7åz èËž�8Nef— “ŸOT0€ß@i3Ÿ±‘¿.¾b¢Ï¨ÛÚá äÏß`q5zx›¤OÈÊ/º Ór¦Ï¬nN<ÎD–§Oà¼îÂá¤� è "o¹…ª�tî{õ„«ÏÊØú�忬OØA· ÁÕÝš­ÏÔä!?5üo¯ÏðI õß©²�:ö‡ÍÐŽ²� ´•Ê«’·�+(¯N¯Ýœ¹�êV‹üÝʼ�´P1¼�’ÉpApÁ�¤fÚÂO½·RÅÖ�Ãc2 ÌõRÃ�ýf $ ðuÁ�ÿ)Åx ËÆÏñÓäC0”Ç�Bôä—ìñÇOò9 ¶ázÆÉ�|;2yûë{Æ�u+3ÕòUÏOóT®©:rêÐOs!¬ ³üTÑϤ_¦ëõ{ÆÖÏaЗ 'ð¨×ëq�óªDìØüÕî ­6örÜ��ð¢—/ÍâÝOøI j _áßÏÌf ;ÜÅóàÏÓîº 'îÑà%ä´íô8çâOeãÀ#¯yßOô?Œ'~éß�²�{*ˆó±ä�,ÇŒCm�çϱ°‚ÂêAç–ŒBË}gÛë+ãs¦G: îDëgàxí¬ïO5&…!V½ÃÑðÏŒIê�¯2~ó“?V‘²ùOw¾Ép9Zú�þð‚!‡f@ÇûO‚O̳]Ë‹ýÏ6bLÁiþ�ºŽD‡“!õÐH`Ó�3ùÐüIqÏ“9?�Ò_’�pFE…0´:jº²PÌJÙ’?¡>�M=°×b�óPIÀÿv' Ði€¶ØQÈ!�9pG+žá™Põâ!£Q,# �쟌51. зqïsj9œ�Ô�Ô ôö5o ¶Œ^PpCX8#-#PO{�âô·�CPó9ãqÖÐÔ�\à‰~h!�˜´ UÎù#(P%¤; –~m)�§­ôýækÁ)�!»~ y(�£ã -z -�·pÂK޾v.�môì«Âä.þ…¾iFF3�´µb Ï1‘6Ð2¨ñæÄ(6;£§Y9Õr8P„HÍ ãÜæ�8Öü ƒ«q8PÀâÚ •{n;КØî =sˆ;›@k²>Pÿ2ËÉ)?ÐÎèš-Fœ@P¹·[<˜•@PX®4 2ÝLDP8£šS€ìE� $OãNsHF%s¯T[—¥G-µµ¥Eh[QP�Âð £è RPn¼Á4GX¶SPލ1“"!'TËÀn_¤¡U rŸóAžV�ãÎó;ÞWÐ"~DRm¿ŠTõFª!Ñ›Y�Ù@à¥jI‰XÐpÚ€K…I[PP4‘å Z�-;Ù<�hé]ÝèÙ²þyZÐ ž(OFÅ%_�2®˜I|&`Ð?Àª 7ÇÔåcwA3jdq˜¼¡ÖJd.b8ÛUÒÎf�¹%˜7½¡eÐ+íE.4ŸfPŠÙ­!$9j/lP£…S¾ÇȲq�$iøÏÅròu=r ©ª!úv)~æÚ¿µuP•zL.`xPØ¡ ©T@óvP/÷"WÙŒÈ{ÐYÄÄKäx‘~Çæ{ %*V)€Pöð> ûAÐN��¤û‡*^ä‚p6��:n‚PÍm,ò_@„�Ÿp[]úØ…ª$†Jg÷‰P<‘¿½=ж‰P‚¿ú'>m£ŒÐÖ?hIġ֎�Ä$„ \N[D‘&’‰AJ癓ÐÝ“ê²(\•Ð=µéætÉ—�JLû©Ý¯—�’¦!§s‡áœÐf3f(`ñ��&cÑDó#lžÐŽo.ÿ΢X¡�ÐàÜ ±â�㢋â;�7ÇD£�Òƒª„­tO¬W”jOwoÇ­_ÅM¹¯h¬�îÇ –ð´³P)CˆèF©´�Ö}i ÒTü´P»RÃÚ€Q·Ð›¿Ž ”xëê¹Ð]i ){«¹PÊdj Â>Dà¼Pg¤~q|B½ÐoM³—¶ØÑ½ÐÚ¢¾U:�m¿Ð& v^¼¹À�‚�dä–xÁ�ž'< ˆ¥ÁCÚ ® DºÂÐÇx8f?òÄÉïN t,•eÅP3ŒXúW÷ÄPaÁ0HힲƑn_ÒäbiÈP¼/bF¼FA"(“>´Êá©=Ý(÷^ÍÐJ©RÚzÎPQ=lÑÀ;ÐаXâ³ì¤ÓÐŽC§£>ÖÔ��0n¼ùG×�ës /bØÐ×8XW#ÉÚÞù˜{2�ÛP#"®UÜPE¥ˆÕoÏ0Û�³Šã ëÑß�øé£´Az’àÐ2•³w …ˆâPÁa†—¶¸ãPƒÈ’õÃïãPÿ,æÇX±æÐ'úøE¶òæ�CL� Ï‹²çöž>]òBõè�–Ei 4žRFóN'˜'á÷PH¯½äòqžøP5i².xô¢ú� ¶/ åùŠRúÐ"ÒÉ ÊjïüÐOÀìþUѪîÑxÏ9‘-i0q_Zg»èÙ&àÄ QB@º;,k' Q¾hzÏ'Ñ2 Qkó‘�• ¤Èy 7âì# ÑP8’'€<‘IB'/ûe®‘±­UqäÐÑ_ “÷Zo+Q�%Sm¡UpW(‘¸. —½Ø)ÑÝÐËÌ\d.ÑšK$ ÇF´/ÑÐ, š‘ãä0Ñz4BrG÷�1\ýŽógû.Ñ»DX!°÷þ¡3t,¬J f¿4Ñ—û� ù�ç3Qè¨ †f÷3ÑEVvˆÇ 4_xg+^ŒQ8óh—*eW<‘¶YJƒ–˜“?ÑþÄ!¤bMÓA‘;>XAÓyAQÐkfY>`C‘7?Ç/K!DQ‹¡GÊÂ?¯LÑ›ÅFÊÞ»L‘ÃëÁâ' uL‘ä™Qå^ÔSÑé 9x· V€"ê$�_ÕWÑí¼¹ŒÎ\G0v^jy^‘”þÖËJW_Qç/< B�bfÑÂS­’ “qhµå2uÆ­iÑV ¸K˜kÑè2ø 3,ƒÉpŽ'“ DÚ¬rs‘èÛ¦ž}u‘Ë åàtÓevQ®}$�µsÅz‘¾=U QJÏ~sy> :¥+Ñ'–Ò .±ë›„‘ÞWŽdFƒ²„‘]“8"ª³}Û‡‘˜f è'‹‘Pó@žÙß΋eƒI«½”ÑaSô ³/©—Ñ8•Ü,x™Ñ E [úØ#š‘Òë6 ¢>˜TœQ?ÓÏÌ =𣑱]‚–ά§‘˜'ì ']“^©Qº…Ø4s¶ó­Ñ­!ÑÈ�I^¯Ñ«XØö_´Q¸$¾z¹´‘¢;J"*XŠ–·‘€€Úݶô9·‘ޢßøkó¸QðÉä!/7üÕ¼‘±EKã,$Ͻk"²Šl¼‘+\ù¢RxË¿Q¤bdYÄ|¿‘9êK ¥/àÁQÁà GúªÅ‘I£ÔÛšÍQ�À• ,|ÃéÍ‘7ò�U?ÓÑLÝ’§D”Õàr÷cƒ—ªÖQ wm õØÑãÕ# è©LæÛÑY,#BN&ÛQt ßU-U¨Ý‘þ§ H?bžß‘í@b£sáQ€ËA.d,câÑ€kŠ ø%«Žá‘ ·aVæŠäÑÅØð U'çå‘6 Bæ‘áWï%6>>å%JW…'XåÑÍ�< ³zLŽáцrçšé[oãQøå+ãY�jçQêkó¸gîèìQ4�žÚtâ†ì‘Ý(Ö¾´\7äQ¼Aø✻jïQ¿‹#•cð‘©ÚðFÁ±¹ñQ÷çJZ„®ŸïѸ¶J�]‚óaßÊ“° áQˆ!` úкõ®@ ÃF»æöòè4o1åàü‘¾ fj"ûüɧ ÀtzüÑt–£lmÿQñÏçW¤¸ŸCï øÜ†R’í!Çë ÃV’¼þ~°½·R±¸“mþ Ò�ï†J7æÿžqÏ¡IúnÒ Ô1… ‹ T®ËdÈR^§""¦†R¿;ѧͮ’ë*aJ ‡’Œ]l wÄÌÇ©ŠKóÎÒèQ&$‹>rz‡½+Ré7\ )´vA’‡f. _ ’ì >ŽÜ3 ³ÍÜ3œÈ($R ÷ø(Žß%Jê5 Ãk%U<Ér ,v%’Îð’§Ër)’²Nabà¡.RÄw K‡¥.eàRõ䉻/ªø·!e%ž3÷à rŽ#9’<Ô—ýæv:’Ú½×:FEÜ;’ÕÖ¤yG�<’6WÌY:cí;Ò\_ÈÚtv‰9R�8k²Ú�‚@R7Z× @ð§>@R²Æ‚IÞ£zCÒŒîÀ kÜER bo쓜.I’ZÉ9º¡J’ˆ‚¦r…à«J’{é5¡Ð&LÒwS•1þíMÒûÐ ZY,ˆIÒC¢º!«Ód�UÒŠ“ìŽqkYRãR­[�Ö^Ò œIvé>^Ò\Òx_¤ ai¾ch¬zbR‚­"ÍÔÚ˜ebükj°LçgÐ p!bFÑÚkRV… …3þlRDØ×îÊÁµoÒŠ‹éç?²pRHîNЏyq’\à6„ûQrÒ=¥]Ð)¼sÒ72É Âö@rRÒ£ ?ŒøtRØü<V²Ut’-ÕÓOÙq’Û40?d,Ìx’¹Š±½¨ xÀÑÚ66î|Ð=¯©Y°NBY…˜yèsƒÒ ß: ‰r„Ò_$FQ…R¦ Ò ýÞŸŠŠÒ(MÑ 8ˆëeŒÕ\6› Žsö E…–Ž’õƒ‹¾ ÿ’Rá£À�­ÈK•(D  ¹f–ÒNæ9 c`—¸uƒ[ýÛŽž£N¬ÇÀ~Àž)ÕJ=SL¡’aú„ê,;‡£Ò¢ªéÝìò«R8D(ΔH­’績Y/á®R0ù JÉ<²ºÝÉBQ¶ðá´ Ù�M¸’õÑ ˆ¶ï»¸Rz]†•«ºé�„ ‹�â'À tœX"Õ—Ã’Ï];mìÒxÄB3@ìïÒŒïz�kóRXçÊÏLKô€À9…ºó²öÒZÃeƒ­siúÒëØŒ †ððíû’J+ZÄ!^þ¡‚µàiñÿR! ­µ?¯SQ2ŸzÛ³Ó°ÈjýªS×2 ߡкÓÉha 0÷NGÓjlB ¹jW1|½‹õ ñìÖ×)‡ SÕ ½Q™€ “$ ±«g9 þ}"szæaSLü³¦ejÓó`ê û®€“¨0Ààû{j“þ–ó¤R­õSŸ° #Ÿ‡ ¨OÒi?–ÓÝÄ­%ÅQ 1™Ѐ”áÓdIt¯§Ór@:áÄ íËÎ þÓßJ‹ Ø¢¶w&ÓÎV›}]z¥'SÙ §Ä9N)¿!wS^Ç:)“­&h{ju-“#¬nJ®Xr/“ÔËHƒ1‰0S« C>R÷1S7»æܨÇÎ2S¾or z²Ù1«JgoÛwç7“ã´ô{´²*7Óœ\F�ƒ9“‹'ÈÛéÒ:ÒLE›ó>;µ”½Ó€î=ÓQÿ¨{rÝ>“.�¿ %UÕ…?¶ø× Ú7IA“jÚè‰oB“^:Õ£†„E;ðŸ >g‹ŸGS�À*É7ZGÓã3ìVsÄ8LÓwr82¹EMS;æ‰ɳ=§QSG´§ß uÈR“EÅSzÏ×(S;êŸúQ…KU'«$Š·îU÷) âû$ýZSjýkã®cZÓ ,Ä–|[¹]“ÚÖÚ S#Fg^“³°¹u}ÇG_¼x_ £G²7^ʪ>'<`“㦻¿¿”bîQ.áÁõkdyh‚üã/�e“¨¥ª ¬4(hSëÝsçcŒ�iÓ@¡Mýc^°jïë3–9mDjYu…"¤{¼lÓT(W-Ê’Žm“*MéÿÒEuÓRÿ@ )%�v“SÆ @è›y“ÒÞR""S={“QåIù/]ÓyšìùÙ±€“·äaTŒŽö�SD€.7B‚Ó(Rã.ƒÓáqM®×ƒÓ 4Ô�¶!Ï�Suƒ8ìØóš‡SÚáªß’l�SØ7Wz�SÀïá'�S‘Ý�¡bK”Óõô¤K’î•Sc|T{ïì–ªfSÑ×-—“öKóæ;”“`0þêbô‹™“̰ãŘ+œÓwªe 1ÝÛ8¤“|j?Å4X�¦S”,áOÛ±Ó§¬¬ø «„톬œÄûhŽ\¯“}ß§ñØyE°SßiQ;¶.µ“� Ü Nˆ({¶0r¯!RVó¹Ó‰> ^nܽºÓŒð;Ï¥»Š,è q®þ¹“<8ËÞP¼“è4`ë·›ÿ¾Óh- ´;z¾$È­Žd&âÀS!¹c x ­€Á†OV[O1gÓ.ýTÅ%™¢ÇÓ… ÷4Ð’È÷»1 £¡pæÐSuºÝ*b[ðÐSh’ U´ÝÒSøÛšpDCÑ“Ìùß ÷”¤“ÖtC•î–WÙ“$Õg!¿•ìÚÓ?nG¯p£ûÛS62Eùs¿ÕÝÓdœ¥ *¢VöÞS%f­¶#ÌÞÓ·‘ë!ÍYáÓpáY4Ãá“èÕïÈ]ÀFã,òùfžäùÖÝÖ�YæSeF ;t”æ“3K31äÇèSGZ¢ p2m@èÑßV Dÿ¨þêSZx�¢ Ã\ëS„tØ)ߌ‚ìÝn¤cí“sja)¶§î“ëah£ 4ÁíS ‹Æ›”(pðSç‘ô ¸óÓ™[k¬:Üdô“¤©—Œ1IŒûÓ6¬û ––SaÔµ;Úà`”Ñ5±Le74T&ž-F"lÃTuB¢³�Aw ”=÷êS•°Ô¿ö‘�MöüÔ<Š/�÷LÔ¦L4I·e‰Ô>Bn–þÁÔòóôöjʓѷ@ÊTEЇ)›7ÔH ²Îq³ÖÔp"­ ðr>½Ôîm ·­O– KM@ Ô?躒Ã!TÈEWÌv¾y"Ô ÿA®ÊÌÔ$”<�'€Ÿš,TIÝ5T>®,Ô(*�8öš«,ÔÅL†ØgŸ/T¦ÏÖ¹‹ÂL/ÁßáVw2ÔiGL�dŠ6YVSÄï<7ÔÓ3 {¶¹÷:”öûª ¥pà =Éynh_?Mþ/#ì9»D”âÜ£˜ŸLÌFÔÛ Ï!&®*FÔgâ‚ 9PFÔÛRïlÐL” q4ž³ÌHLTÕÐú zÛP²Æ,ÙR”w³šØ+T”8ÏV+Z6±TTÀO¹j tOYl œ¡nYT¤v”b_ÏR^%U“ÈAmaTbýóZ.¿‡aõ n<&èd†bpÒÌ5ÎjTLœÌ!UYõ]l”¶•ñŠž“MnT‡e» 'ßqApò´C1?ˆ#qP£î�‘„sÔƒ_{«ÌÓt[ö76",žuTüâ[üCMÌs”¡«´o>y”"™7°ÙˆIyT´ÅN$´Õ}TYçÌÑ•¥€áûNÿcìú…á|›N‰ÔÈgG ¹8ø‰öY«9eŒ”“š³|³Ü�” 2) :à k�©­gÝðL°�Tùð% ÎÆÂx’Ô0¹­â°ë“Ç1€° ‘ûP~Ÿ½’ô•ÔáSp£ˆ˜–T‰•„ª›ž™x¥K"ÄüZHš”¦^NÁ£gõ›”r9.!µ­éØœo¦kL4Š�TF­ìxã*‰�”¸º ŒzbýŸÔt’Í ”s)Œ��ŸTÞé‚ÎÚjá¦TÛKSY6N¦TašÄ5v£¦Ôq¼l¨”ɧTôñ7‘‘fü«§·�‹¤EX­Ô{L0-W7®@é0Š¹ßƒ°£-5Ot–3±Ô¢À“ŠZ=\²”è¸ï‰ 4[³ͶFÔç`´”õ¦{ µÎá´ U­Ewµ”Ä\ðZ”¶”ªá¡™¦½X° þr…D¿”Mq0œ…fÀT÷V{cºKÄÔÜ¿lÒºª¹ÅT &_-6¯yÅÔЧÔÔæÓ¼ÄÔñtÍwÅÔãÜ6éËT˜·3s÷’ËȺÅïdðͤ$ù2í7ÌT „nÒÔíb:zß¹(ÒT¢ BeÌÔ”*!Ž �©Â-ÕÔÐü~ JMßÖÔ.§ oÝÙª°¥{bi×Ú”}›&1HlÝ”;‚- *PÜîÞ”©t@ç^»ßÔýCËGà`ü&@i&Þ”ekáR½ârå”]R(ÀòÂ4çÔ%îêqçÝ`èÔ{p2)›Ísé”äGŠ_n¶êíz§³ìÓëñ1wŽ­Çë”eáF 4[CëT-Ädx$­ïT�¿Ä ¼ïT<»³I¾öT{×Ïw¬LÔ÷”J(KÎrŽ÷ÔT—hÚ=_ö7» ÿQ+üà®8ü{ŸýT2ä Ý9ÁmU¾Ér/±úaá6•Ä­ÞÌ ˆs:¤£§Ò Õèh/ŒZR •xY/5¿‘ Ua£iSX@ù ÕÝo…MNM •×ðÈÅÅ€•·+’Y 5hUç€æîÎ A•ŸÙ‹P‰(Õ¬ z°. Ì8j± ‰³!]€ñ: ë!•Ÿ } j�?'U¹¯Ym î'ÕY3QøÛYŸ*•¼‹ÔêÌc¿,Õ,RÀmˆªä-Ô‚ö£_ó¦2ÕTX_îb¿º2ÕñIˆíÉ2¨¾ÍÇ›Ôn9•c@)Žá:Õ[d§sL½-<•îS-u¿= ûŸ·Êj<@UçóöCVhJAUÍÇKó8üAÕnŠ@ R§PCTO@ �½“èA•zTJóÜKiEO­Í ²híFU°’¨J6o—GÕÎê‘–†Ö0CUŠ2qô––FUd€!9Ã}M•å(ê_´î‚T•×{" *O8ÙUÕLúDÒ�0îVUó•CÁê UUÙ°Æ—ÖYÕìÔ ¸ÓþZäô… ­õ%�]U\í փ“]€è5!e g–ežoï ø,Ék‰rb× ÈilÕ1€Ûî}ÂulÕR#ш›4onU"L¥ Ãõ÷trUø#æý°ÔsU;>®ÅtUÔ ÊÒ6 št•Ö1a î(™tvÕÆc©¬÷Äv•ÁËõv2qx•‹Ì´G£°ìyÕñ3[P¤¨{Uj‹ŸÊYßÅ}•v(>p½'ž€½�A·þ0sƒ•ο²)?5„ÕeÆM!Ç+2ìŽÅÉðpÿ§‘U)44ÃÛÎd•Õû€²kc�ß–•¬œï¦8%—U¤eïçû/&—& á^C‹›Õbô«ŽIn†œUæ’]sE²º�Õ‹ý~…aSŸÕÄõÔ „/·� Üÿ¾Ó¥¡UÊ‘½!°kô£• |@¯§<±¤Â:³'+u©Õq¢W¹§ñ©«`l"åR ¡¬\M¢&aR,¬Õ‡ü § �²•ûu“T>Ý[²Uã)üB:Á¸¶Õ[ã Ò!¶ ·U èTTŒ'þ¹•’uö·õâ¿•IPõ Òi·ŸÂáË.Q•Â4[šÈœûÄÕ#ºü Èç5ÉUkú‰ߤp3ÉU'NF"“èkZËð…¾ Ú:ΕQo.#O8hÎU´ ñ�JΕG×› § ×Ò•m:�$>nËÒ>s©žÅÁÕÕ19;"zÖ;Ýüðk|aúÞUf1š*ŠÝ³yÔÞVÂ5àÕ x¹Ôš‰óâ•õ"“:¿3wäÏÈ ojèåÕkŸB xÝŽæU¥Q/¤V“@çU-iô]ß9æÕS› b©{£ä•yRª!+ðoìÕo áí¢ú…íÕyZ#[µ€íÕÜìŠ »;vÛï+˜ )-²ï4p A‚�íU[z*ô?6OôÕâBì˜ðsõ•»ââ =3~ö•ìkSæ'ÃõU²ü™ãè™døÓ™ 5Œêú5úY ¨-�ÔVm´¸ÂÍô‘Và`#eaÖ–žvËm6bÖ¥öñ ` ––@&[]ÖëDÖ1ɉ"nôäÖq-! SWgÔëts-=²V`ÿÜŽt Ö›>餦? ¨®%6‚5EV· W,v8 Ö=d 3¯ðÖÐ]· mòIJQ�#’4e_Ìí÷ÙÆ‰ˆ`Vœ÷1ÿ;–x%Ö“žàÍ–5þ÷Ì®¹V‹Åùî¼¼À–­ð- ÈìŠÒ–¢�æÏ«0VñtG ô�Ö[™` ú}óÖ-3鲡°Z –ɯ™?o·®"ÖfÈàJ…¹’$VâÞÀªiÏ%Öƒ÷¶’›9“&SX# ›÷u„%V/€‹A ’&=ÄIÆö˜&V, $íx.*ÖþúN"š#¿-GÚ ;Q}ï0ÖñvÜ!%ü‘¬1ÖgOdø?23–·jÌ{â`ê5–ί&öë›6–;GéWQOú7–ŒñÎ2Ó�ñ8ÿ�Dœ•86ëëB¿S:˜ã > °<ÖçD’ ýþL=Öæ|µkÁ‹?Öƒ/‚ ¿ŒJ@–¾Ö™àŠæ:@–¤FãŠõBVæ!³ƒrÅ0CV~Pî{œIEÖG!\âÇŽF–ªÉ³¨Õ:GV†ž¶—NU_H%Ìásû~uF–¸â&²e„IŸ†~iå�¢L–w žóµGšN–È µhÝQVH\ÿ¨‡13T–‘Š‹`"”;UV)àÎÖÄ—W–“j„íÄÜ|ZÎÖO·`8`\Ö«¼(F—_–�`¹,½_Z¯Ó!ŒPhj–³Ô©ÂbÀÖj–yÒ-R¥*©jV—ÿ!œÃQÚu¨§‚î©w–ŽÖA�4]y–ñ­Ô%&á~Ö]gt4ʶ˳ j/¡Q‚–•úœ\„«„Ö¨–EýÅ“;…–¬ñ >sÚu‡–š·¨^#NŠ–¼’Öýà�Š‹VW)ßEÀȋ֊Ӊ �8ŒVš"¸ îÂ�V¥ˆ+š|‰”V�¤Ä ‚�r˜¿cU!wëù™V¬¿ u­ú™j]¢^)4èžÖð@?˜üd �zw(¡×¢–]~¿]€)‹¤ÖÖZÜqhª–’k¡Ñ«Ö™›B�NÝ«–fÍ ŽµÖ ¬–ײp €ãá®–V¤˜uqFðªV±ÇbÀv�­ÖXÁ0'ù±–4†Ÿ €qwõ±Öµš: ceøä­VõôïF}‹]»–?º¸RGä…½V?r¤Æ?fÊÀVWwo®d?Â:àÛ™ã_ÄÖ {† gB�•Ç–Îó¿ R]¨É%½ii_sÐÖÖç=+Ça¬ÑVp·¼;¼Ò–Õ ßÒ\IïÕÖ&ýÑ}ΘÕvÚ8˜üì"×ÖËË O/?¹Ù–×bú¼™ˆà"» Áâ ÔâÖ��eƒÂ¶�äVTC–'äÅÞUåÞ¦ 斲Ϲ Ë’r›ç¤Z­ Þ›K½è —£`6¶|èÖü�ø¶àÉêÖË@®Ù‰¥ëaYÎ’]îVFÿ˜±¬èrïÖh?n6žL$öÖ¦kÑ&|š<ÿÖm|TáiÓ7ÿ–I0À”ê¼×®«˜ ™Â0x×[ØùàÿÒ[u<ðÂÑb¶= Þx›G0'd ,?x#W àÔ”úÞ[—h:cä-M9 ×Yá•  ÑÙv —^3›¯IW{§¥þWAË—Up¬´­æ<W¯ Aª ¸ו¶ÓŠ»œ—Ï ošÏ×îúv ²Ô·—Xe�²ó°×�ßá+—öÞ»±ºiƼVŠ ’M¦×aÆÍÑt WÕBPèÈ'U!Wën¿ kÞxf"—X’–÷æ#׸4!ô[¡=$—=‚ß9)$W•àî äX�š&›Vù2pn %—¿Ø<mnÎ+Wã|é [ûå-—éø‚Ó@&¶0A/ +α‘1þ<F­11×pžI¯0İ3׎Ýt•«1Wc‚U"7k Š6×Á*·ˆG=<,-Iý~|›<×ÝÍÉ ×>×"ô8 ÷œÇô?׌ñ¶ºH¸?—ÎØèë¿“@—½dV%Ô×BýB‘N=9–>×P·ê†¼Š<½žˆ íÏšoE×w˜Ä Òôn@IWá  ÌeMØbÓ t¡vÒMWÖPÑ¢i†3N×U[fîß��Pä~I·ÍP×=áu ÷,°P¬ôÙnµ‡?R×áWÜ¥4±�M—g¥>´ÏW×@÷œ ³µ”Wã žÂäíYW¶!Ÿ÷?sEZ×Ñïl‘Ió—[!{éDIþ^Wæª�mT[:_×HŠ ÆR­L_—gÂÖ!ò£½aWu þtˆu+bW˜Âp,ˆEdö•5š¹�hW-[({-ÉŽiW™¬Ô۵Ām—fÚˆ…‰ïq—ây´  � t ‘4l‘\u×™ñ;ú ÃævW—ˆ Ëd-Äx—}Û ÐO/¿yW5>Žjj–{—4…|ì¦�‚—Ù£“§àHƒWÏI g41Y…—Ò’4ÓPùˆ×,ø2 Ë@�W&>©±Ð—Ž�WùZ ©Ñ­§�—Sc͉Ýçj‘×>`kvO”Ü•3®œ^•WvDQÙï–—ªø¼þVå™]H| ͽš×²+æ ™À÷œ—Ñ_Xw>ž×\6SÓ^Ê[£ñ¸uŠŸÑ¿¥×†%l�ëQѦ—Óùô!Þ„3R¥W)²";‹Gž©—¦G&á<ªWÀ61Þœ¯W×ð�Ãxr±Bw‹ä9™´WÑí0SyÀ¶— €—Ò¹W*ˆc±;ʺ´ðP %†p¿W pˆ ÀWŽhƒaöªBÂfpŽã¹bÉW[õ¹1NZ"Ë—>¦]©«ÍÄÊ.÷øÙÍ×ðã vmÍŒR¾©SzÐW×°beÅ:ÑבúŽ=7¼bÎ×.ˆ:톤jÔ—‡M\¾ƒËÔ—a€|!=&â‡×—;†"ü?YbØWî­½mÎòbÞ _ ¥aŽ˜á—£X2 („â×öß¼âK ã»Ê Öÿ�4ä}ß™Dæhå×~˜� Àïé×E¹¢(ÕìWd€�;ð›¬ícÍSŠ Ñàî—Jd¡v1÷ì—.]!-iJñW ÈÙi=~ñ×â|d�ù;VôWNòkX{L÷—´ÄÿþM|õùW ׯÛäú×:s•œû6Ðú—6¥(|0r¾üW쫟ÐÔTýÑÆZã],{þ—){@¥©šWþ—|$T”¯º ýŒKΦÏúWJôSoâØÈæ ™Ö×ɘº‘3–/žyØÛ-ߺAàãØÜ“ø¡¾«�µ#–ëÁÿ×ð´acÄØå X’¹+½Ò Fñ—“ÕHlXº "ˆXy—žGˆŠ†úQ‰†Í,ݘBæÐðûpÙXWo ÂÖUXš±¶nß'™ X#£'™G=!X�¬| Gÿ@¿àg+ëÖtïÓ9F'XG äÖrÄ'^4n:w)<¯øfù)XÃZySóR+˜r ÉÍÍv¸/äÊ� î6!ä/Xt`�æ•5XÂ{Á¬“6Ø|d{Í/J6Ø#¡X «Ïá6˜\e¡'z<9Ö̾h�÷×7˜Zº|lÜ;˜²Ã(NÄ –<vƒÞ¤îÈ>Øßß95¦·@ãFßœFÉÉAX1¾DžäøXG˜–fl VÒþ_GØR�¶×J˜'-ls|^KX»…´ÇÿÒGM˜QSºïci¯Pá,"I·ùQØÍâM�¤aY˜Ë xôrG\˜I¼ÇB‘ ^°˜^øÃÊ^­”Ž_{_�1Ã1í'+^Øœ1Äù#ÿÚbX!íÛÕ?f’'˜,ûágXñþ|» {h„UåÞõ°DiX¢ò#;hwjXûµî÷Wt¨lØÎ­TBX’n—µH@òâZpX­6"iSAp˜xÌL~.ÎxrÕK�7dw˜D¹Z'Ëe{˜XK/ 5Љ½|XÕ[KtÙ#|¸;‘È|©\ΣŽ2ƒ˜ïM·/Mì_†~5¿ yi „‡Xô®ba]؈˜[°k!¡5|‰Xpñ› ¾ `‰Ø=r "VSn�Ø8žÐ~ŕؗ‹°Òi$—˜œ !Ãݲ˜Øày¾öˆb˜˜AßÐ òýÑÜ›г¸ Ò½ÍþœØ" Ϭ+�›˜*¯XÄÉ·ž›˜G í¬?Šb¢˜�qÓ eƒF¤Øøl«�.\³¦Ýû)3«œ© Ù gå'Ǭcÿ¸”V%®X$W£ ÌÛÿ¯XÑ­‚½R®°ØMf�d¥×®²Ø€N Š•Dê³X;º*ßj�³X ÜôÀç™-¹-«“ ',É+¹˜"Ýýý‚滘ù¤Z;¼ û˜ ” ’¿“®˜ SÉX#†Š c®ù̘ð4Z îk4NÐXzŽ5 *ž®ÑÐX”ˆUå:•Ò˜*në=[½@ÒØ`…å 0”9бð"S"Õ6‚ ì û^Ö˜C˜S�÷iØXÒyý È�ÙXÁÏŽL²\£ÛØh<«÷ ¯ÞX{ø!S¡pà˜…›€ueNáX<�ú Ë€0äØö+X¯pLYæX˜k• d™ëðØa� Ÿ�zð˜[ÊÉ?uZ§ò qî $•!õ,½˜äÀ´öØq¢Z9 8ö*[ ‡CÙöXºxb$Ù•ùXñ¬%–‘ûùûé¯èîÉ„þ˜²E,» Lš“CµzP9KQšÓ§Í]±SÚRní VÚîëwÅ=ÿWÃii ²Z}“XÚYÛ ãIõ^Ú„Š5¾9`Ú•I`ÖBò’bÚÕÉ�iÅ(dÚ+ú=8±?)dš¨`×!΀#fÚ„1E H¾gšÝÐ �ýè¼h0§ �²¸h¥kY!]^Ê€oZ#‹}ÏpŸqšïÐÓQõ·—tšD<°QÌ…uš½/ÉxÄvÚE£å ¸³Jå|ÚòNðñ­û|Úú®�x¯h~Ú>µ‘’”�~Z(g¿¨h³ü€šœÔ¤ ›Ò¸€š c¿©Ë"_€™˜t1—Ï€ÚLç»ÑÜńӟ jÍY…šÁÚ7Á�Ú†Ì  =ŽkÁá }ÀŽnúG ¤×4�uš$ z\õ<‘7n–ʈúÈ„Z=ø÷l&ÿ‹ZP@ !ü•ði”ZþÚŽÑkÖ•ZQ nøDËØƒf�!]›•€/4ù!áÓ­U~š‚"` ï�™1WgxÄ®ššêPOõ_º÷™Ú} – gÎù%œðõI7u K??Ú&¥Î¤Z€6/hæí¦šsqn ºçÓϨÚ!Ý? ;wWf©‰qZñUÂt¬š=Œ5¡´i°ÚþÅË{ I³W›@&ó…á´ZØí )÷Y¶ZÜP;¬—_„¼Ú‘ ÝÚaϽ/äZR¶E¾‘ ÝdŸzm¿ìYh Ë÷¥7ÀÚP„_¼$‰ÆÚ§隇¿Çš'z|u¡n¨ÉÚ ­I9ÏîãËÚ”6T¨§ ®ÍÚ[¥í øÙX`Κ·G¶vkÏš�Qí±·ÑZ¯; ÔçÑ}Ž6!Ž 8ÞÕÚ$˺±h¸ÕºQäýØB_ךa2Ä 4X¯PÖÚ.¿«ÇÜZ ¯¦ñ‡‰áÚ¬vO"‡îfÆæZ“®²8cçÚF{Æ„z-H皢9�ž7Aè jp’ îÀæÚÒ¬þûu­[ë 7Í ¼À(¬ëÚªõx†ãcíÚʃ¡ëE íçš½Ó&°%Oí^r�Óm9óšýÅx÷Ì'óZó ³Þ[[?ùš«Ò±ÅVúÚ• §¨ìSdúZBò•£��ýZ¾:^áydvÿÚ”Åò¬ rûÆ·'…lÛû0 ˜†d|épÄ_[&¢cra†•ô–µ¥I ÛÙ~_Ý�*ñ [ñ–~Á­ ›* j`îÁ ›Hë+ º"÷‹ Ûmå?Ì&†›QáV þ‘YˆÛg{F lï9§ÛðËf Ór›—¬#¯„ræÕ¯õ³We[²ÝÁ�ÝàÛJ[朼nzÙõ__p"ÛËfÏn”Ó",vÞç�j$›M:m ¬�á%[] ñŠýX#[_ëè@û%%Û®µŠ9Ì›P+›\bÝ5‘Zõ-[côs :¯¾.Ö�¿„�®½3›ÌVbŠ-ª9{|Pk$�;[ÎtxÉ‚«;Û±÷ D oo@[fÒ 8vEgF[!K”lº(GÛ¥C4O6K›v�ÏÝJ¬N›ü!Ö `î»O[ó•g‘ñ)P›§r�šfO[-uËœ¯N›¡3°iF†N›«)ç¯Q5SPÛ÷GÛP$” S?L?0åFN[âÕøC(DW[íÁ�cÈQ}¤™ífÁoYÛ“@×NÀôlZ›–«Çö‰ìQ›\ÒJK±\[:í� ‚”§]›øáZ¿_Ðòa›m’2„RÇg[ƒ„yˆl-hÛ¸;²‹âkÛ\úîÝ=9lÙ =æ*wlÛo/Q Æ–¹…n¿!ÉÉÁÙ»n@ŸÈäCf p›qSüÊ…V¤v[arôŒÁ˜z畇#e©.€›Ùž�ºS‚y!jÉÐð†‚›}s=TÖÆ§„Ûî ‚x~…›�Â*>~r]…²è¾!;N‰ZêƃI�u7ÑÞ—ŽÛUÖàŽi{ô0š|…‘¥ÔS öç ”Û‚ýc!–+•[rÍS ¾\¼z”×âM?¥»—X=[( ˜[2g¹ pIœ…šÛj»�!­ej£ž[ïnK‰nŸ ÛDnò0;PÅ 2·#QB„¼¤›ÏRTY*𔤛´%R¢; §ÞÆÐPþÎè©[¶ N­§©[˜num Z%³F‘g}½æ¢¹…ˆãPðZ»rà u¶Q»Žž“÷Ác»[ÀFV*š¾Ûÿ×2†—�—¿›u{ŠáÈ×ɽ1ÝiúyÔwÁ[ƒÏÑ:î³7Â[>DÄC_‰¸Ã+Ãï\n¯�ÃÛ_�á Â÷*)Å›Ž)Ÿ䃦ܻ›\›}¬ÙªÜÇ›IÙnFFtæÃ›ñªäÞ¼ö„ÊÛ\°þùÅGËæõâÊíË›jn¹ì¼ÒÍIç-U��Í›žå»×®ÖÙÏ[ä#¥÷’” ЄñжœïšÑâEûeu¦ºÒù*. ¢ü^pÏ›G�[Ãÿ ÔÛš©ß 9Ï\ìÕ[>Úß-¶(6ÐDkíyPÔÈ×Û l#>Ú�ΛžD›y)ÎÛ×á¨! Na<Û›ÄïmŠeíFÞ& \ø®NáÛÿªp p*àªãB©•¯h!(æ`æºê€9ø·Æd×ëÛÇ?¾ú~8ð›cΑ'›ËÒò[ \o"º2�õ[5êö_a. øÛ²Ÿ·Œ{L�ø›ź M•ëñúÛœ–;U=¯ú›Ž¸÷?Yú7øÛØ Ô»û[ß\Öº—jþ[±®EÞA<\*&þ™ÜÞÉ „UT}ü]±Ò?ü\£q°èÅbKÜ¿ƒÓ ‹„ÿ¡ œ"ʆšz—>*‰76ŽÏ)‰w�‘ð\%f¦õ™¡\Îãéjç \#ÎîFæp!\Ü3O{RS"Ü2g²äžâ"\z�®x8{”#ÜÞì)a�'àwU2(œ¹~ŽØ’>¤)Ü]º†é§2R*ÜâùÈŠ±+Ü“Uׂ.g°+Üæ1ËTLX#-/�x™Ú¿é.ôp© xÛ·.\¢s¿˜Õ-ê0Ü^€d¢Û"1ÜËíþôað1œ~ZÛ›¢ð12ܵ¥ýGn70s�4s¢qº3\Å�n,ƒì6Ÿ(ç’¥ò˜3\Þ"Û[ ;)ÜíåñiYfO:ÿ3ÉŠË;Ü|qÜ»÷tª=œT— Ëø>Ü>»~«G?\6$XôC?\ÿÓÍÑÉ�A\Üì6_O"BÜ–ȉXAÎËäÑrV"D¸Ùo —–ŒEÜ?�7 “ïEhÕyÙÖa›E%ÏUx/!HÜ�”rDs�sIœÖýy eëáHܵOà Ó�ªYKœ‡Ÿ ‘2ÇÌI\ÔÜ)—ËwHÜOpUÆ×?-GºC�+:Õ½Jœ§Ü–‰ðäPÜcR îÛØäPœÍ‘ -ÀU>œÔDÌ ¡¸Ÿ‡T\0”c 2²Uœ­¿U*·²sZ>† M"‚_Ü#�Õ=À–@f\PòÈ †øçŠiì³Øhæ�jxž uÍâ¨j\/×ßJaûtpÜéïâ¹™Äq\–¹: ×ÏYaql Ú÷WLqœÔ"Æ3u\êÚ<•¶º9{ÜCL=pˆs}\KÛ¿Ò4£@‚œ•­hˆ‹fjˆÜêîÓž®”‰—Â6 ªÓ÷©�ÜWʱ Âõ ÔŽ2 & gbå’Ü]E›ÎÌæ@”y-•<)ì�•œÑˆû( „@—ÜÃ9¤Ö ûI—œêÂ!å—ö;š\-C ÙË›V•ç!™jL¡¦Ì‹š7Š`¢hàO -6£ÜŒ;·äü÷¤ÜRò™÷ ^¥\ÊkºmæÕ¤>‹ˆ ß®È˧\]æ“LÇ-~§\*$_¹�œ6©„$ìå,QŦÜõ¡v 8ü¾Õ«W»Ù¡.þ’¬œÉ›¡™d„­œZo’<œ—­\&E˘uÄE°tK¹,бe¯Ð è=É„²6�€©Ò*¶\VDòc˜ p¸œ¦uöTU¼\i¤ƒê™k¯½ÜXÈÜïà5¾óÛ w&?�Üm%d¤•¡µÆ\ÂlMo‚fÅÈÜnGÈŠìÌÉ\`,.„>´ÍÌ\~¾ÏÔ�Ê®Ï\x¥€BËoÒ\~ ͯ!ÀÓ\E�ö±ZÕÜ·´fÆ€cWØ\y“(ÚiÚœI¥°£e¾Ûœ=Lò"WÞÞ\€d6މKÞÜÀø²"äeåÌÑ(�¬ìè�Ó³!.²Â霱€gÅ„ÎVíÈÉg §‹¶í†÷˜÷µÄÓï\?Ÿ, Øg|FðܳdÉ  ùñœv«2ùÓ|õÜmÚjC`÷œ q[2¡ù\Á2âÓGûœåóUu1bÿÜ�W«Ëök�ó­0 w—Ñc]„©\D¥VÝÞC0"ñäZ]ø©ÌÉ�µT]´3»™‘y]±½Ô `?ê ]©å IµèާýIn çŠe:¬ç; �X$l…Ý®¹ ÝXnUÑXy�Ž ™ ¶EµQ ]Ã÷q êcKuÝÒ‹¸ä…ÉcÝ5Õ´˜s‘ÿDb¢íÝ]—þáù¿>Ž€† ½]� Ä„v¶v]fòô¢]iŠž×o©ðcmåO%åÝs’_áüJ ŒX ¢#M�"�ße¬Tñ©m#Óÿa sŒ#ƒ?˜‹©¼"Õ¬ØÇNH3#�f/² ;€þ']%$ïJÚ“>']Éê³m‡"»)�¸mmSÛZ'Ýíˆxu.^+ݹ!hæ[³,ÝÛ % 7-�)¥p ã×Ê,-,›M 4>œÄ-�Ц©?Õ--Ÿ„'wrT1Z4cµùÍ*Ý¢e~IDX•3Ý’¿6»$l4�‡ ^œ“Æ3k1 �­@4Ý?¦ Ô¥­4]>lékú+,Ý$ õ 8ë¼­3Ý-³–!‡°Ï:Ž=“ÎêìÏ;cÝðeï¦?Ý?Q(EÞo D�[>ΠÚL”DÝóI¯…±DÝe"ö/ßšG°Â/Ýí¸´G�ÍªŽ r'áFrî� ÃŽHÝŸÿäïK]XúÏc![³G�¤�¥�•/M1‡- fRßNÝúû³ö! =Oco®ð�QÝ{ôò ø–½ËRÝÐû÷OáçAR]ë ö{^�QÝV6ˆp‰3YÀ0Ÿ 7ï8÷_Ô{Ònñ†*`�Ñega£¤fb]ÆöÔ v´ãXcyÜ FËt˜k]ZŽí ça­ûn�q—ÔB¯\p)÷ePïërqÝà> ,spÝþíiÔ9¥nu]eé7f}lv\ÌûZÄ¿ym¨œ9o�zÝØ,-Kõ{]gP) ôû(}ÝÖÿºfÕóÛ}]ëå| Â��Áeþ"¯ÚЀݳÊ!?sŒA“�ë÷–ÛNvq”ÝŠAÕ'ê1”‘Ìþ¡:®—]Ãçž ʇ™]«Ð6@«$Ä�]@m ‚ zŠ¡� Z­*éÒ¢Ýpõ ÿO«)¥ÝWÊÒ>5IÕ¦]V;~7z§�íÌ“í€dü§�>y*f®]tÅv’>sy¯]¾«E.ŠÓð°¨YNØ5ØÊ³]ËGâ È•x³Ï  ñt¶;µ�Sè8…Tè!¸�wë�ý~ȹ]stD2 r¼�µ€@ŸÉ#½Ý„#êÚ�ÀÝ„º•l™À�w[ƒ �¯¢Â�Õnñ.Â�˜,±%>jøÂ'Zr ¢“ÅÝPiJœhè>ÆÝó—îRW �Å]âY® aòU†Á�‡{9!ý<›ÚÉæ55 éÎÝKKƒ‚n3Ï,eluCÜ�Ð]û ¾–‹æÑ]�ˆΧ ¦Î�?““ñ™˜ÒÝsh%oG¤Ô݃@8ÅpIÔÝ7=nº:íÕ�* *Áëß×]»H¡ÑZGGÝ�)6îö«¿ÎÞ]¾¢Deoÿ“áÝweÿ™dâÝcÊa`¥ãݢ˥ÁÕŠÀç±T®°7ºFé��‡1àØ·íÝœÞ{ ÎÂ`zïÝH ð¾ �cð]žk~ ?Ìóñ]nÝ´.ƒuò�.€"–ï0óÝ5ž™dÇêrô]­ù‘òªeQô�Ø‹ë ;[+ô`Äg9;´ú]hÖ$~zû�N¬2=ðNûk˜$Õæ9µý�s@‚yy!æþ]ùùö ZnRÿ�–N-Bh"/ú�gS+‹´pÍ%W눞§Ú|?K$žƒœª¼û9Í Þ˜�Ð$ Þ¬êjÒgBi …¥'ÆåÞ» 8÷†î�l -\ ·j$ ž’ÍíR~É÷Íø]Z`Ý w²‹^Ûx:�©ížÛ’¶KÕ½£/àœ^þ–Ï N+CÒ!§;n�Ûr±"ÞCmG ÎZ–!^–Áƒ”ÑSæ&)�I�>´&ÞêÀíh×ùý(žÃY�&¤$&ž P3"�©*ÛW+9Rk.žñ8 ÐþMF/žÝ}Ç@f&0™^ ¥Â­ƒ.^/3oY”:°.žmx¿eòEG6^ÊÙ€/ÿ’�9žÞ7&ÿ½V:ã ÿmîù?^b(´FIg@^°ˆ� 6ãZ,@žK©Ê@NLCÉO"ËÚâH&߯ùù-P^ÕÒŽ“LQ‚˜� 5òg S^üõb RÛ¼TÞ�Ï}܃GSXÞì” ëôÁ-],èWg`ÞrÂM�ºÍV`®VÛnNÚb^¬ŒlŠcž8sdÚ~dg-GÕ|â)•iÞð¡@ &‘mlžük%Ç%Šn0H›}ØT{rK#{t�¢@s‹Dö ÅAMtž‡c)H÷e¢t^²“ Ö ¶vÞŽG ižÆÀs^WÿW €SæsžnpI 2>EsžYÁå ²ŒÝtÞƒ�î W ùz€ÎïÈç R|Þ_>ŽÈº‘~|ÞX³ åZ�|qíæ3à-ìÞ‘ëþ»7€Žu8rSe�Þ,£ –íœ(ržlsï $옉ž$°+Åü‰^nÒqc?m‡Œš’“'Wç1ŽÞÄÆ € EÙ–[±%§[J›Þ‡„ž!V܈ žžõÑ*œè]ŸÞæù�ƒ>žž›\µ¶ý¹K£Ç0¯ X²q ¥^þŽÿ!}YÁJ¦ž~L°ÍPF¨ž[²ÐÁÙШž¸ÐÅçNY©1ôÌ oˆ­^èQ™v¨[<®ž`bwD ß³XUˆ)ôâù³Š¡>µì>µ^šmy[•³šxR! Úë·ž5øÝmï³‹ù ­6Þ´¹j“*sê,º^B9žÿ˜Þa¹ÞTm`Ng—¼žÓ By*8½^n ö‚õðò¾^00º¶õ>ý¸ž¡Â®™[/ªÂõÊô>M�ÃÏïóqS+ÄÞ‘Ñ–2!HƪPØ º8!Æž\�� ±??iÈޜ갳tuÉžô…" ®Lé Êž¥OOòV:žË^§×´�¨Ëž§FŸzXóÍž�”g’¶Îž O Í] VÏ^k*|5ŠãÐ^Kh+ö5¹Ò^5}A ÑHÙ2מL†­ ëºpØÞ?û¹V‡`îÚqzfVþ§ÚžýCããx´oßž‘Æf£­/àÞXÚ~‡Éážÿzî-Ê à0Ø?ëñËãÞ‹ÛºÜêãÞK êáòžçÞyH‹qè^ï{BV¨DëÞoHPÒ–x`íÞ|ì &OfBî^‰S!t뵯ïžn—›MN ôž·Ý6ýzÊ&öÞ×Ü: x¦ï}ö^æL~6lÆø7¾±yÿ`øÞëk œ?”ªú»:1UÀä)ù%=|çñç�ü!yGôS ù^•3"™@oßOÄ”0‘ßÜÃ?Ë‘²¤ß¾?L|2óx�û!öÈ 8E"î©Ï ß…ð!b‹X7^qbÏË۟׬èÈë�_ φ FÍÊÏ̵ rXúݟɨf/ crŸ± Lë£_\û!¥Š#_GhsÖ6Ë$ß%.̾Ê&ö8�ú¡õ,ß+­'#kH`/¾™›06_”þèÖ 8ŸšR ˆüÍœ8ŸnÄñÏÁ+®94çÊQÀbÛŸ·Öä {0ÝÕ@ >e9QÞ_ùœóæg Þ_í2Ô‚a¥à£�˜w÷eá_� }I9{ោ¨ _OKðâßwÐ0!Æš{Ðä_`QÚSøù©å_cª¢ä�¾àêÍ9çY_âêß�_ÝÎK/I쟅ò‡µk[óßÉ"ýK+õ¬ .y¾ÕyúŸxí?‹múß÷N”özú_•�ÿ2Ô7þC£öW¦�V »MÈVy h ôú�sŸ +‡±pVN `É6åÛmF  ºá�RÄò -ÐH8–²Î KÁ–|.¿G঩„¨A/ÿ ‘»"äùÐu`öþà­Nà±”àde–ûà’¶ø4åò[ 2”¨—ï7Z à‰=º(0  <ÐcÓ=†%àæƒÔ��´'`É« 2ùæ9)à7Ÿÿª»4±*àyK– 6^.™*`dc^§, Ç�ô ÇQ)æ, | ›…¿+ ¸Ó_">:ˆR2 E|Fz}3`E±8ç«G5àÁèr‘ñŠ–8`!{Híí ú8 ã�©2”Š? ¨—’iJbŒ? î/f"/ÌÊiD`ØQ£ëjD ·ÜF!ežn¤Gà`'( U6ÛþH Žmç„3ÑH àâèë)�H ™†#ÃÉL Á]MOkªÔN $OÒ 7:Pà`°·—ø�P % “!)LÙTR`úc¨yü5S o3¢¢ãXUàx é ã{�ÑV Â�e~]cWà)V—È£X XïìWñCBZ ô¡óÍï�Z ¸]ãN‘£]à`,|䎭è^ õȲVÒ©_à,î»ô¥` Q?Ã{ôijaàÚú ¢8,‡bà’õår¶=zd 7E Ç9ªh`7§ª_AÂi`ŠÓ H'Ll`n¹ K"¿n`_a�Wži/n ‘x"¶I§s`úç›Vˆwyà 98#_•y`D­À €ëu«{à»èf‰ý½| �^HÄ“±á}àØ·³ ›¡øa€àÀ©°ð;Uñ� |õC r�G‹‚àõá�“äg³ƒ ^²Ú½‡ë¯„`m`…òé… €Šä2˜‡`JR@KÈÁ‰  pWä,Ùɉ >î¼áå�Š`ú1H³•úkŒ`¾VÀ nÍw1Œ P•ý šÛŽ ¾§y ³À´Í� P½íÏv� n®’\ËÒ’``Všïµq˜ Ÿ` ƒÖý–š`!)®f¸Éš H[xIZ_Ÿ`aÌ F—x àY ¼ Ñ><Ÿ W�3':Ö'Ÿ`—4ÌãÕΩ æžL¿3>�­ ˆ˜V~uŠT¯ ã<°ƒõd° _že nd0´`I…ÛeR\Pµ SƒB 9´ wZ Xò¨·`L3 –$Õ˸à{ºåæ„и`¯;Ø¢£NºàIÜ@òꟷà3P.š¿;¼ Œf²Øæ¶B¹`ÀÀâŒ:‡¾ Û;L'i›Ä`f°ýÌjž¸Æ ”¹ÒNš@Ç vþ!æ¹ÈHÈàƒ< ‘Ê ùÎ ¾!}ÄÌ`2}üPˆ¢ÐàÃ{Ùøi(`Ñà,j¢;‚±¿Ñ B—>ý˜W¬Ò &ïR\B× 5Ý/ÊÝØ`"ÆJCá{ñÛà#ïX6$qÜàU6�B<ÆÞ ½�†!VP�ß xS�p%ß`Êú…�*ã AEÎñræàdˉQçè ÕrŒgŠí` �$Â�«í a¨äâ'Óð`ŸáWæGÁdñào}Å·ãLØòà]ü°ØKòàlC §õƒåò Ö Ý÷JÄõà·�–e(fö`¦"éý Ý[õ T¨â½‹þ÷àªXQ§ömö Juµu|oàð È7â ‚¸)ìû €4ý h¶ýà$m»3™–ªÿ ³Sá ÇÊÛŸá 52€×ð¡ß±Ñ… �Jac"ZuUF áé‡É寶 a¥Ÿö8fm !ïý"²]Š_ !üR¦ Êv!Í~¦rÎ-!66�\ rá¡Q šz{¸aCi$5Ñá†ìÌ-ùÝéá¹C MxX¡ë×_œ­ªÃ¡/B%Þ-ë)!XYf¿ ¾Ta )á!³x/p !2ÀêÐJY$¡`ën•Œ)!œ^/(Ö)! âm!'¹Ì-᜶ Ä&»a/!íE— J‘0áli=cêµò2¡¦ƨ5!¨Û¼hïQš6¡ÄQ ¼@7a§M›!|ô:áÚ«6¶“U?!Î!Ï®úD@!Ré¨^âzVA¡,ÚmÐ$ÆgAa”Ãè©7úÕCaÀv /Ôõ$Ba–,~QŒßíDá"èQyPðGaÁ“�ÒAã.J!oÏkP«BtKáÐÕÔ›n'MaÔ’šâÌl)Pá«}R ù…[õWaAÇœì¯W!¬�‡æ ’HZa÷�<Z¼�}Za~o8 h\a-yySùé:]¡“�Ç QÚß^am"Ý3ãÛ_á~„ž •è_!”* åPmw`aÜ÷:uóba)¼ëã„E0c!‘²� ¢ç:c!Ø“9îõ`¡¢Y7ì~íšiáÚü\y‚0k!Èô iEšäo¡¦M¡kÜFp¡¸Û ;]sXoa ,‘K‚ƒá„Yí©òC …á¾ßÃQ†aC$µ ö׃‡á±Oª »Ä³&‡!,p ´¤:‡!³ì«÷ùÖŠa* Ì 1Ï™‡a’ËÃqßÔŒá¾å,/Bá�amòLÜZ4X�¡&<ß·°’ž‘!Ú¤öè¸Ó”a±–ÏÀj–!_`"ÞÄ›á²g# £M§¡a¡¦/‹Ä§¢¡„ª r’M¡áæª`?Èy¤¡V>¯b‹¥aìÓÔÝÀw¬¦!«àÛ†ì¥áÌ…×’Svœ¨!] [9Q?q©aèyGko.ª!Ê£¦%R «¡/ßÉ -,X¹ª¡L©Ê ¶L«a£žÿvyk­a#(oºëz±aê#® x�€²a „Ù­¿R;³!ãËvÿ‹µ!|ý'ÏN¶a|Rÿ_ã¶¡/oµZ^(¸aêV"·l‹¹¡XlÅ;¿ˆî¿aBÌ3W:ïŸÂaª±(Ó�Èá ÜqI| ÚËaJn>Ä’cÕÌa &™D-zÐ!.š¼z¯Ü¬ÔaÄÌUƒ0oÕa[±Ý}²±‡Öᆈ3!D¥¤vÙ!Ï8 w›MïÚakÏ vTÛÚ¡”>î ëy«Û¡V"dc½ÆÎà¡D,™ Ï´ä¡Éƒ‡r_ô†å¡ã¥T|)æab­¹;Ç1çaã�ÕÜä�qèaŠÝ Î`I%èáüˆPˆÇ&é¡1lL�Í+©ë¡1 u‘ £Cì¡£×™\HSþíá{ ÃíÛóîawOú ê;$ð!4¥»‡,ñaZª¼ p´@ñáì/^ü°œðaI‰w ¼ôsÿöáj¸+˜ÛJ÷áß“âSB?âø!è´xÂB7û¡sèìù8¯’þ!6½ulqzÿ!H ÿO� b[R[—$¢[!õ‹^$"’&„Dl²§"' 7²Îâ´wÊÓ$Ëû "ºž¯:7@=¢^ |�žS¢&6J!®Ž—"…ŒèŒk"w>aB˜¦¢“Òu LKÆ“â> ÇjVê¢Ëq ~ÊôvbAᥔ!Î*¢Åq­y‘¢iÎ fðâ=ë1 �þ×"b,lTf°.#¢O=¶ŒŽ$"‘=Ý�’/&â�íOõq 2bæ©Çó´Î23baŽ›¯(5b‹G£ö×´8¢l˜‰ x¢e;bF< m ¸="O­//xßÍ>âÙž& zê|?â)±÷3ÔÚè@"OÌÝq1#A"ïšï¡,‹D"bßú7<'E"Y–ä� mfFb ì%@’°7HâÀznõ\�BJ"µâ©�SBL¢1% Üë_O¢…Î4QlÙ¸P"öm¬Ê�­OâDW:0ØÇ2Râ7 ¶Q~“S¢Ay$¾ç›Rb"õ°®¼XßSâþHM PyªV"�w‰ñšã_¢RˆC ¤«™_ââs ¼ª�8`¢;‰Ûöç—e¢±¬ »Ãp¼gbÉnÕ­l¢×90€ñEdmbX?yb®RËéÍâzâIxúvùSybb±¥ JËs|"‘OX"œZ¨£~bÑ¥Ý0$€„¢êv&uT ç†bJHõ xK€r‡â -�—÷ýüˆb£‹uÅõ>‰âÉ]¢IV‰béaÊòt‡î‰"ì/ µ€VNŽbZ’[ïß' ”"B¹×H¿â”â� ×�ÊÚ¸–â…{—עƛ–¢ŸPÕ &¨L%˜¢À1úÉiKO™âooÚú6È´™"wœ¡ ¸(>™bÒ„Ö½ ª�bu¸ç°ñú¡âp‘�yN/á¡â·lÜ»ÖÁ¦b¤¤çã§âjò hð†g©â¼¾M1€×®"ÍMŽHEÉ7®bè|{ ë­Ú´âÅy£}ªîL´¢51´W¢)_·¢$Ë÷_?–¸¢O:s©Ö¸»b'ÇŒÔ�J,»¢r_. ±’tG¼¢¡z‡ KòM÷½¢kRš 4Ç:õ»bçªÜbV²u¿¢¿þõnBÂbG"ß&Ô²CÄâðï ϯš=Æâ…Õ¿Ù‡ÎÉ¢ñrs»‹ˆ�Òb!šWÏ�|Óâ¹f±KŸålÔ"Ú¦6dÜ(Öbšš]eë¬Ö"·LÍ�…Ùâ‚'"Éõ‰rÝ¢B VP7.ðᢈô⵸Caâ"yC8¦Yõë¢æ´ñbÉx·­. ñâ%é F¸yÚòâ¶ç`"è%”ý" Í^�PÈÿ¢®×^ ÊV)Í£NÒ««:A³#ð^Ð’ºŒÞctÄc7Užòã|ýÊ":9 £9Y”*Ü Y £�þ/…0 cºü� *üB £Þˆƒ’@Žù#Î!t ŸB!E〉a•-J¶c/ýã¼²ãJœ-ïŸ#ãiÁ N§#R,V ´×þ~c—j >Žˆ¼#ç‘ã -ÃRc‹Qã_ï|c“»}ƹÞ#£Œ•‡M.Ø$cí<•µ¶Þ#£9ƒ-9h'£5ÇN5n(#”¦} ©¢Èê'cþÞ&"IIˆ*ãÌ-š!ÊÙ/Ê+c ý·°è+£X]>jûÒ.ãˆãÒÆ1d.£Ï3 t'—0£.WtP=9ß2#{GQ ¢?Å6#/Þ;8Gõî8# SKå÷£x8£ñË|©±:£™ 1â;c· ±’£»²9cZ!Ež;ãìrÛ�ãÃ>cMùõ ¬»«S=#¡FŒ {gϺAã†GÄhEý˜B£’VnzÁqïAã®'jEpkFcJød‰�‹oH£öÕh™º´ÈIãV�Lÿï¿Kc™ãú’$LãY€ ¦*|]O#ø�%ø†7 X£%æ¦>[ãk“xeÄ\£Œw X<]4c#C] Až”e#IMºÖ)Ïfc4Îï"Žg£#¼dÔÏgúi£vœ½wgжk£?¥øîÐOl£ã©l,ù¯€l#i‰u ¤j×­q#"Ù!–ˆtcÏ }�|ált# °¦;>ÁßxãúØnZ$RW}ã%ª¸µ?f5}ã¢kÐ>7€£ö”ö! B®²„#ïX}_ ¦…#4ö}!Åãi˜†#qŠ úÿ)a†# æÆ) 8�cŽ/ˆŽ$ÅŽ£Gâ~â¼®�#jî"NK é‘clà?~0#­“cþÑN"ŒS“cr‹Ý„‡qè–#dáâ kÜJ—£Bn­þŠ9|˜ãÞéFÒÂgf–#F|ô b7Ô ™£€Ž\Ç&–™c Lw!HKN�cz+T9ƒžc³hœ ѧףcï3Ó»P¶È£ã¼` ²Ò`§cD¢™¥ÁxÊ©cÆHø‰@³ªc‘›3 ˆz#P©£Ð²Ç “6¼^¯ã¯dJKs$s°c<£¶<¨¢°#ÅD' ñ𳬸#~ïVÙw-x¸c4W7å¡ÍL¹c» "Y�m¼#žt„Ôñ½£©Lžlͽ#Ê<_ Ãþ¾cá>!‹oOÄ#‘æ¿mÑEÊcZ¦®q*‹”Í#)Ö4 U”“Î#©°Ü-v@Ðc.ú [tbÐcqzÝg°ÎÒ#W´×¾ÖcÉ[¸]Ù£Jg¾ lçõ’Ù#¹!jæWðÖÛ#ÓŒÔÕê?áãóGO ¨ ñâ£Ê *®ý’bäcßñ@:‹°ç£O²þ D/õ�è#—|%ÊÝø<éc2Ýb0fÄ ê#í×ÁÀý_‚ì£\ƒiñB”ï£x(Þ7Mïc”b"˜X òc_Kµ¢p(:øc¾tÊArð.ú£¬ý4ë`îû#ÞÿdEë·ú#10^!4eþäýcx¾ÿÉ‚+²dôìY÷¿à d%üK�âÊæ dóƒ"‘¤Ð ä\Ô¬D>jý$ÌH-Pä�Öçµ�„Îä`Á1(e–~d7pr!WLg¤å‡) ”Nâd~ô—!f>•�#¤s¼!R‘ot(äÙIJR ð-d\ûµ ÝRU1-ä9“Æ@ k½2¤}F® \þ š3äu™Ùžj´¿5ä‹m c/ÂÐ6¤†�uKÍ5¤f€è¼FM8$ãØáü\ì9$ÿÂS³¼ò§6¤õ<ôK/T;$áðϳYØï<ä ÿNŒ;¤hŤú!3E¤ÑÕ#R�Gd�ÐsÊS¥K¤µ¥Òø‰~dNd¡&CòWbPdÎãeòQdÔx‹ T´ÝP¤Ó½�×pSd¼1¼«êÀ¶VdÕbè¯;——V$›–M6ÏÓW¤S½é KÇüZ¤îeR"÷¬H—[䛨œ ö£—^¤©žiaú˜_$5�'½H“d$¿š#�Tn˜d¤]�v�3­e¤Ìå=é€g$!/êì¸i$øšÎîâÑ€iänÜ©£ »2id½m¿ˆ—pä3\�ñ8FÂs$±¦·“Ú*tä1¨ ¥ Òýy$œ‰Wï›Ù1zäÖ)!¢Ù}dœj~E!p}ä2C¾´Ù"²d sWZ$;Û€ä ê\Uôº„äNf·ÚJ0…¤�}ÿ€V1…$&€} +Íñ‡$âq– CšÂ—†änIGÚé µŠ$½ »É@‹¤‡b:HÊÚ�d؃ üx”�dÅ5‰æJîÑ’¤ £ A°ÕE’¤»;(lïf”¤Òì6 äiDñ•$ž& ´âxÆ–äuB7?Œ—¤†�¿&\P—¤LeZµ}N®˜¤ç-� c…—dIL+¡ ²œ$å,°úÂØ¼Ÿd¨³W!f ^¢ä±Ø7Dê2£¤:c"VÅ䥤¢|˜ÏjVN¨$-am­Ã®$¦»#s§®äIÄØQ‡Òð$ çD±¤ OEñU²$4bÙê“êµä®µœª ?¶dIuV)¥Õ_¸$|‚+…ˆ>¹d#wˆ šJ•c¹¤©Ÿ. ©¶*¼¤¶þ™– H¼¤f(�ssI´¾¤h_³èOÔ_¼$b} | Tó¿$øS—âÁ¤¬yg -s>x¾d Î""-{ò¾Ã¤çí¤�Óa¨Èdî>h"_€¤¡Ê¤ô墕=×Ïä^:4ªÊzÏä+)s•­E>Òä"�°%½ÓdÎYå Côy6Ò$¦þ¦øÍÑÕ$Âñ‘ÐÙ¤¼âË 29‘gÞäô[¼Ä?4ßä¸l7qqÉžà¤ø¿SÂU¾|à¤ò4ßMÁ¥ãä× a}ú"ãd·U·Ñ$䤧€§ ü™Ûå¤ëõ :Fbåä(L…*H·î礒aj*Æ1îêdˈ;+Z¬ìä‘ñÍô4ídê@)X’EïäòmœŸœ“¬ò¤¦`åÑÇó¤'‡ûo@Yõäñ¤ ª‰4}øäXCÎà<ý]ù¤>86cy2§ûd‡yÅòñ–ü¤óV";g;pý$ì°œ†b¶%g²H�5i×eËuŸ ýT¬„e­¸ë88ÚÕå(^LJn‰å×—´ƒfè%Gæ%"{ã%‰›ÂÌß‚ˆ å þ‘õAÏ¥1iß‹�Üæev!ŠSN3%NKˆ’›½å4ù]?šÀB¥S¤¬¿ùøØå9 ÿ ÂÒX¼¥~À3@'ÑÆ!%ºÂY‰ðöh#e=»ÂéÖhT&%?SSœ/__&å„Ä­“ZK)¥Qڣ綎*%:ýÙ>×ïÝ,eo¼�o^-e£ÁÔ­ƒ0¥î¡šôµ3%âÞ÷i£Ue4¥á¾‚ ï´¡Ý8åpj`1;eù_]"©L}V<¥ÒºD"ƒï5=%ôò°ÝJ>%‰JE±°øé>¥Aj !œÎ÷ƒ@e× Žbç#A倗¿ÖÌɰBåpXiR«%/B%˜›U©ukoG¥Ó½n¯“Ge?»O@Ì{ôJe y@ÏʹˆJe— ÓK ¼Le&�_èLM¥5”N‚]/N%e…¥„‘isKå”êR†NPe*|\t¬8ûM%X�Œ›ù¥£Såð75î¥PSe'êÃþ TZe<þÔ´mlZ¥˜»K—Î=\%l$ ¶Î] _%,†&oµ§cb%3x>Ï춈e%âý¥Ä £ºfåRr§ž ?êj%óʪë`¢ peÐFçò�šrå}Zb Ds%âv¿ºë½t¥,0QÚtå…¤çÜ(p£te¸�c„êO1tå8KNB3Jmw¥ ã\Íx"]x¥Í­ð eèz{å÷–ÓäN²ã}eã2B殇Me]Ãα%pÀ‚å_¿W»Òëƒ%áàîŒA𦆥ÕÙ>Ýy-4‡¥7l£ Q8K‹¥8l mD×ÈŒ¥]•0†K©�%˜ ý?ß¹�%ˆx2«Ü¯Ô�¥d @ ZÎø�åzï* ¹n=T’¥åb+½ùÉ�å÷Vb½?Rû‘å÷‰œg®è•%\D³\aÀ’%§É¥´;%«–åξ[šå蹫Gfš%Òe ‚ݳœe¡Öµ§šP}že L ŠudŸåå=a¨?d ¥Ót+ „£àvže~!÷!ÝS%$£¥äèƒ M?¤emf$!�Žâ¥¥Fà GÔtm¦åñ5K/Ž—}§¥³ˆ‘`8½ñ¨%¤á™YlC£¥oѪez¤¤%{Óq"Þc›ø°åhWúW3ø³¥BBÞ IbЕ´eVf!-°6(µeÆG½ó½ä„¸¥ËÅ øñÖKº%k·£T½%¥Ñ•¾±¾åÚÆ©ì%�¥É¥i/û ôHˆ²Ê幋vp\¶DÐåA�$BoÒ%dš†ÈsDSÓ%«É‰š®Ó%{Î ÉÙ¾A×%tfS�ˆGÝå³r? è�Áßåjó© 0ôßeÁ¹!9[]ã%MOí!š_‘äåáqm+Iæ¥Ù8�…åB2ç¥ÿ„»δÙ襞 RÝ~é�çå9%¼„î"×ée—½ÈÂRòíåÎf°åtóŒî¥Ü� Ó“ëƒ÷e•hJ§…iû÷%5=x6>Áöùeø#²à³w)ù¥í×+¬Uû%°HÞ?äûe¦1"à}ý¥ûéÝO Zþ%¦õ†¥4:Qÿ¥®ú@¢}®æ´zB{e61¦Àä´ Ç&ÍÍ fûº"“«d f¡{f²a® &{ô1�MЦ}=×mSQ&ò#€UeWfU¿úœ@¨æ«z9Ý fò2 çÓf/ý9 óêEy&ªÈ±äp/Ç&ç` Œ²Ù¤!fR`ÕJ“~"æt+È›Lž#æúPe•'›E$fX� ÷4yK$æ^ؾÉÁ»H&¦8oE¾ïS'¦Í¼Ê…v‘o'æOi ` *æbC¿ê: f*&ëø±zn,f|õàQnEº+f0u9 Zs‚3¦Úñ*g×VY3&¾ì‡’dñ‰:¦H“0¡äSy;¦fô´9 mlf°V£Õ±ó…A¦ÙÔuíʤBfûÃúifG¿Bæ_›·ÔüEæò`Á ðì[˜Ffk^Þš dH¦Q±FC|¾LJfF¤A\+ïÇJ¦Á’ ›Ô*L¦£¢Û™„yŒM¦(-rpà Sfi¹D}žÌƒTféËèËõ§T&³ëè |�S挧Ÿ?±%6DÜAg"|ç·¡Dçà4ƒÖ4V8D§ài JýFgôºêšè>žJgXï/×IˆK' ¢–suMç ¾y+wó\P§(’a^žYP§q› «GiIS§¶ß*ÞþÒÍSçÊwñ^}ÐKU§D umÞÁVgg�@ï¯bU'ÿž€cÑÓ—X'ã*yu0“Yg��vÅíDQVçÕ£W"¶­& [' dvRn4^'És©g·�_'sÕÑ!ì½`§ „¹”h§$Õ×*…hg¯ó ãÇÁk'ãSM\òVl'îñŠÒr£›nçGÑg˜+«pg~$R�¶èvg§ÊË‚˜š�wg þY ‘Î-åxç2g¨•üïxwgKÀFf<‡z§Å‘då‡C|§Ž· }Ëêg|çmˆw¼ª¦ §'ëTCù£€g4ݼÅc’=‚çϺóŠ(ƒg_³û¯¤ñ剧ËAë¡ÙµS‹g®~K[꓎ç;ß'HŽg¹€‚qÛwŽ'nbå íÅ–A’绑ü»Гç/˜ñ5©ÎÓ”'ž…Y ß|lt“çˆ ræ»–çºä*¿oÿ—çUÜøÆæ–gŒ,OäMà¿™'\N%·?»™g‚¯p¢ÂœQžg4ú +¦6Ÿg/h°!˜J¡§ÓÈKC�Ío¡§1êí¹y¬N£§¤—ÕÀ±˜¤çåäÄɼÆ¢'m™to*§§u8tX{®¯¨çä§< á‘éJ©§”—ŠoKe(¬g‚‰€ e1A ¬'­ [´q°'•"öOöö°§|ÑÍH\?Ò´gù™è¦Äî µ'îq9îŠ@´ç5ëÛ�‚®ºg«�· ®½‡¥½§òHM iªG¿g"®xŠ£RÀ''g‹^�§ÇÁ'1ûšŸnÂgêþ9 ÓËvÂçÁð,Ÿ›«?ħódË!òÂŧZr‰ô¿6DÇ'Í{©ˆ%ÃÈ'§–S*{É'ŽAk°äÕxÉ'»à¬ÉܲÉ'ɲÚÎySÜÉ'o{['ƃþÏç÷bcú)|ÉÒgt«ñD…hÕ§RÇØO ðÖg•�äí²aØg[>»êÖœ=Ù§`•~oÜÆ Úç Û1ueÛgÁuJ Kí�Ü'¢Hé@‘mßgØs_OƒÂâgÄùÏ8(«ä§"¡G!@æç©E˜�½ÿ¾ççÚß=G70ê§ÙÜ©˜Åì§ üs 9' ñ'Co­ú…ô-ògŠî£ÄÅ ñ烇èŽÎŸ’õgM)«£�÷Vü'ÜŸu*ÂJè“ãf,ÏÞ9h¡m\pëý*h?Óþ¼>h‚ÇÔ Õž hWo ²".¯ (,¼…on h�xÁ1å¨,9=Ôç hú”Ï!+i>Õ¨V‚õ«4ÞÀèÈSÞ+ËϨþJ5ÍFL¨�7±!œ|M¿(€Çq¢fï`èÚ²F*ýs(ÚÏõìY\h!ˈÁÛÐÑ(E¾ B :\h—"ð³o‡ h‚sg†8Ìè\aèŸÊ'(NØT!Dß››(èçkï ¹é}}*hÍÈhgL*,hyÔq’:),è© Δ¡h.èQL:èØ=M/¨›$Á}ð„é0(A>›ò¯P÷2èñ‡½ 1Œ6L9¨ùÐ"Ö:èÍM×Nó2Ò;¨ ¾¾ᾕ½9¨IÉÎR ìï@脾ý)³íAhùðÂë³h_@¨+–vAÈA(÷-/†±EF¨K`‹(ÈGhÍñI,b¯+G¨ ó)¢pGhÅúEë�J¨M@>ÙvÎI(sôÅ ± oòL(±˜0-A¹Ph­(C `Š' YhDæ ÆE”Zh@–ózê¶[h1%±PÜÿ^è™Tõ!³™Ù_h™�X¹ÌÓe(®Þ¦íÖÉg¨%Bl cÿQøh¨Ü\ÿ1vi(dˆéVÖ5njè$nÔ!¹./Xm(4DJ ×Í?Úo¨p™*er¶™qh|ëœ>Ÿ¥q¨0¡S�ìsh�éIGÀÝëu¨‰i¥Ã×dèu(k‚gÞ�û0wh"?#YZ5zè@Ÿ-#{{h¬(B|hdp ¼B~hŒ¾د¼€¨ƒIe'Ñ»�(ݰ¼#C I€(a“TŒŽ9œƒè� | öqâ„èߎ ?Hø…h‘ÇJ >)ÄÖ‚¨…‡?µ#‘A‚¨'¤kÆ{Â…(î4=²‹O‹(©M;n-¨�h\ÐE¨úkŽ(ãÖnؽæx�¨Àìe×7¿�¨#uˆs?×�h*ò¯ òõ¢’¨ÿaœF¼7u”èq¿U³C•èÏ-k Ú$R–¨Vîu‚'“ ”èîðD!Œj¥E˜è�p+ý ;™¨âô±ûŠi�›èÑE÷ :]Ž-›h�RíAGg�žhñW— 8•Dó¡(¢<§ �2r¤hÖÛ•h«gw¥(°¾â!ò² §¨¶Yïú1ÿ§(^ßatÇન*�Ä„npªh}�SÎï¶�­¨2JE©çw­è×y8›k¯(îðÌreõG°h^JýSâ°(ŠèF Y9ɲh^ò^vhÕ ³¨Kå1! ƒæ´hWý¿´¨ð•æ‡Ù³(×ê•8k·¨û8÷ ‡Jç4µè%'zzø¹è&T›bõF ¼(؋ΠòJy½hµƒD¡o;(„ÿ‹å/5÷Â(-È Ó¢—Ãh‚¬�S0š’Ä(<Âä‚i!öÅè×a¿Ûä}¨Æ¨Ÿ½lÈsßÇè›u” ©ò+þÊèäÜ„ <�=+˨¿½« Ì/EÊèA¤Æ ÁV#¿Ì(é³]½­–Ïè÷„ÜM;t‰Ñè²âŒ+IƒYÒ(K5,Iå'.Ó(í±àDÛ-|ÕèaÊÞ˜Ôéר1À  ”°uÏØ¨sïd|aÙ¨n^¾ sê`Ü(B r<2ñÝèbÝD],kàÜh ÓaÅý66à转o¼Õ1ÿâè?Á#ÁgQâ(xòÈEãè¬òñÙ½«2åh~.’‚×}¥å¨ _CïPkç¨ÔÞøOIVèè^ª~ï×ôzéèÈË÷]œØé($py(™Vç(Íw1%óãŽìè£ÝM¯Û çhrg è æ÷(p—"xh ‚ü¨d­ u¿K„ýèH÷JQÙøFþ(µ%è �D…ˆÿh4Â\bMj ©rW) \ʶsé}( ¨u«V)¡ÕÚ›zgþ ©ä‹® v…¤Y iíãc¥Ä" )Uk"òภ)BëÒÓïÒ ©×ªÿ�o)Ðh?9d“.éÞvV¹�pikv @ì÷ég˜5 i4pd)Þd‹Ž¨©'“Nh`µi‘2ù|ÝÌ�©±í}"&»úc)_H �1j½ é�\Ì'ß Þ"©“ZÁ½ È$)þ¯âê²\»$)nëó!x8„&i~ž-p}jø(iv*¨’ðúf))»ºB!?¢,©Ó+u@³6)i#§Ðþ9©­5I œŸ;)Ð$‹'6f=éÑpf|ÓŸ‰?)swÁªaí?©¤§‹ uˆ?)UÓÜ E1DiЉô,@IIG)&Ôäã•5H©Ó"*lý„çKišƒ�ê\—L©ÏŒž?°GM©GoO2N©«�1 KëB¢T)ýø¨ÌúKÏU)'4‚ «ÍýñTi?”�“r�§W)‘ú¸Ý�ï]é'¦˜b¼Å`釺z ØÎÀc)üÿ¢ƒìàdiAöÿÓ–¥õfé6wpx¨úg)hû× ëÁ =i)DÚŠ!Hןj©òõT KKÇjéŠÃ0÷´kéûÅ擼Üo)ä(m ŒòbEsé"iµéït) � 3’ûüuimê¾ >L_+z)Iì…-§mzi˜G‡ ðN�ë~©z%ãð D€ée…F‚ñ+N�i3\ðòay‚i¶ÿlBFy[„)>¼4¾À m†©D�ví ‡)Ž×)‘1ž”©÷ú¼fŘ‹—©K¾  Œ™é¯›ôw‘{È™)vz¶ '9Ë œ©ÌÌ‚5»M³Ÿ©ý„à ùäÏ<Ÿ©Þ>&Çé`ƒ¢©Ð¡Ñ,O2¤)78µÇ&@¦),3` Z¢¡‚§i_MýëÙ3Q§© nZ½µ€§)I® R q¨):Ì:™?3©iãƒJƦ'ªi­©O]”dÚ­iÏöY�9)g®é-xäÐ�¯©¯ ̱ýɰ©a«LD¼Ac±éöÍ϶zj²é1>A†tA°©Ú’\«œ•À´é c} –²_´é  ®Ó•e·iO?Ì:(Aã½é¶L ¦sjÊÀ©§Pü +D)Åé�ÿûȤ5QÉ)½G̹DÅËé*–zz·Ð©ˆããɲòÑ©*×D¥=70Ô©z`ãx̸«Õi÷òm žˆ—êÖi&Q ÙœÌÔéöÖ� ¦àDØiN·”Ô[8«×i® 9ìü£Ú©ƒ|ÎK&×Ô)]6=i©ÛiûÇ“5§6 ß)-×çV1Úlà)Ôí2´z»¨ã©ýAr QOf ä銠/ÿŸeäi/9j¤Ì˜„ç©€äÓ’ÜÖèiãŠ]RLìôîi6i|>º@«îib Pß[�ð)¸°=’²¸÷é"ÍOC³TùéXŽ™ìÊUSûé°7ò`çùöü)ƒ\³® Õ#þ©ÉêOÑIª�NN¿ªp¿j½Y¸påjÐê zã5à�Cê3þ¦£®ÖÒ*'€M é²Ò�ªŒÌ·ÿÞêG ‚´úªŸè•E»e ªDe":(c½j®‹À¸olÓê�˜‹JSª7Oy[q%j …ÔŽ ò¥jfòN5E5êùž‰ Ô0jP ªÞñ ×#ü!*J® WÅd� ª/Ú¸õ#ê9wo�¿{U$*�)�Ûãr> jœT‡ÙL�!ª]`Ó'±'jÈó˜²YÊ)*£±8è’+ªƒùWÛ ¥^,j%ºŒ�¯%?0ên%OQÚï1ê­¤ãN’gù4*ð’X YÉ¿Ï5ªZÂc ‹i‚‡5ª§#ø<š…5*øWšU9ŽŒ;j|Ÿi>ðËu>jp"Ú&¨¸?ªÞ¶È ³¿Æ�?jÛ% YÝš1?ªEÁ"^`çCjwQŒ;#DêÇ®ÁÉ43 Gªþ‹¬�옮HêÇj¦"™Nª�chÃ[%Ojˆ+§èÆþPªyQ´õa#lT*ÑçÐö°°±U*»++À¼\U*¹.KìÖãXê´þМ¶ªá[êp`Ì”ß!\j -i ÍßCõ[ê:��8©z&^êh«~\®_*¾ˆ�W~‰T`*v‰F«œŽbª wiD:f…gjMN ù»Õ9iªU 4EØÅiª�ï“Íá(m*½“˜ ìbYlojFá‰×Úcq*E:ÀÞŒqª±ÿ\1ñ•s*Ü– ±+ï„v*)”:± õw*e¬fƘÜxê÷<¥R3T›{j!× íÑZä|*ÁÏÜîß'ë{êP—i!ÃC›jøýÈùùaƒê8ú%ó-OˆjúÊøæ'œ@ŠêNFžç²'„�ªöì2ŸAOŽªáÿ¡Dz�jW’Ê �ì2‘jÁ6R¤î–êØö »®‹šª&5·®L¬ö›jx1$Ä'ÈššêÛkÂH4 Ú�*-UÊ Êg¤ê«exŒÈØÍ¦*}ˆ…B sª§êö½»q‹óT¨*4–š'z—®¬ªz=Cf1¯ê4°¦¢¹«á°êñ å ëch±ªÏ˼;ØÎײª}PSýz³ª"xЊ.m³êÁŒ¯U´jò­Þ*‹ðbÅÉÁß*®lÀ’ú‚âj£«Ž~;ã*¶¿¸ß"!å*½4¶ IÜ¢åªÌšõð»¤çê Db ÿë)è*;æœýCeAçêæŠ9 úU”mëj�tõ¿°*ëêà^<+ö–í*Ùø¾Ÿyíj>ežôïêý|Z[î„ñj4¤ö×òj¬pº¨Å)LòêSÍï ]¿:ôªÆE÷÷[Ñúõª„Xc»ö*v:"ß^,œô*c2ø…á4–öjvty /´-d÷ê››ô @[æôê{Ù_µÔ»ûªM95 10(ûªÍ.x¯® ùj,��» ø‘ûjyBÞ ¯°+ùê4sDÆ!–÷*b2qäü*F¡MPïáÛú*!ö¡)R�+Ñ…’ ÊÊ7Aké¹\\sv™«Þyöûð óª|[‘û=Š{õjSèÁ Yþªª „!Æ~Tñ*h(�! ¤vkË3~ ½>¥ë6Œ¤`+ëy6š· ¥¬ëqÎÈÂÒ½š+p¯Š†àü«`!o÷^Ϋ¤Æ= ‡�« ¼=áÖå5+ªÊÀ!ð·�S +õàQ ŠrPº +qé&GA0¢ 딩x™½æE#+*qÌéíÂ'«$€´¬‡�)kšŒ×Je+ëñ© ²eTñ-«š^("Ì=¶/k·Ù*;pR£6ëc4¦^Z;ë)³ôI3mkšÙç À�BëâÛ» ø£(ÇGkÀÁ ÊïÐÌKk kV—†KN+i¤éUOÁ>Oë“e·YNëñø ÌêI*Q«0ý–é ¾R+ïÓ Õò�lS+~V4€ºÇT«¤É&î­‚Uë¢Æ �akVëTQ¢¤mX˜Vëàz~*¸xÏX«Õ> û%d�Z+ €·é[+åQ éý p]kp ÈYw]k=*àÚeí_kµw mšª¦`ë…Ëõ·çWbë�Y¦ Tq[¶cëN» šÞ�dkN—<™hQi«R¨,ý,„·jkÒþFÐkëà)ËoTlëâg柟o+äA—y?9rkÉ£q½ÿ–tk3¨BÝÁâv+>¤b²;á0w«wÒY`„MJy븻P"§¬¯zk)Å®¯ã‰zë~´' ÊîF_|+úÌpšÚÙ}ëÀ²ËCsZ}ëGù!·|/‚ë"oÖÁé¶™ƒ+ãß¾¬hA?„+1µ3 �ަRˆ«�þÕð¹”™‰k:lRÚ(Š«g¡Û¹ywŒkÿ¹¡Ú�Œ+{ÒÊ’®à9ŽkÑÎ?ž;«�+ÿ-æ YC½‘«>ççÄÜ…/”«º(Y;uçЕ+x†<—›é²”«�S>m<µ—ë"ÙÑp*„.—k�8×\âJ™ë«/—Iãw”«ô$* *�ú:”«ˆ¬ 2õš> kC“\ ø * £ë…¬ì9Ÿ¶¥+ÚÐIÃóT¦ëðZhÏ­°¦«DBØ ¨€-f¨ë|kF÷*c¦«ÎR ðÕ?˲ëwð7©U·«4†ÙgzЦ·ëÝV¨¾lÄ ºë¨UòXvѼkŸj¬FÔwн«HKÏ}ôg½«A$Ñ ‰Ï¿+¦õ2òþb¾«$Îþ æ ÆkÞÙnX8}Æëa…b ߅ּȫ_ÄVæwÙMÉë½wËÉ—€×Ê+<ÿ�ŽØVËk€w˜ÒÅ–ÔÌ+nÖ|b‘:Ì+�„‰×cüÎëÒ›�ŒÈ’ÎkºìÞôf-Ы2¹ƒ²ÈjÑ+ÿf$ž*€Èëî"Å['• É«´Z†#àBwÔ+/\ Ê‘UÕ+lèLUŸìÖ«dkh!WÂÓëmf‰!\ÐlÀÖëÉ»ø!ÓzZÚërœô®PS"Ükš‹A¢äçÝ«é(•†ªÞëY]†L#¯Íà+ÔX< ô�Wák‹�ƒ!íSŸaäëd� :‰Çþåëxöq KÍ[¢åë)¤Å ŒöO#櫤TC™ ëë3¨¡³ í+‹Ê.AºÞð«(û:züòka¦¹ˆ–ö½ó+Iïƒ Ë#Æôk…á í È ú«¼UßÜqû+HåqoÝ+ëýëúŒ ²*qÀýkü‰ÚgÍ"ÿkÉÝ„N;ìmå«U¢,ÒJæ ý®WnlJ¢S³Ù•l>H¡®y"ìÌÏ ÷wQ ¬z-ãF—( ,æ{\¬Ê¸ ,ð4ÏBß½ ,‡©--à!ñlqhG*Òœlž×µžÂl[�_a¿,QlVª€Fd»,)ß“)�7ìánÓŸA×>, ÉPJyÝ.줺Õᬃ5Íc'alÊü#GÝë!ì2³ ?úûÈ",¬b,³Jy›$lGd ¼ßÈø(l8xÎ9߉Ç),›§7‹ß?*ìþ\‘ 𥽿+lºÐ'Ž…,ìØgPÞTÕŠ,,r>{¦éÔK+,Ž ÿ%M".,¼o:!ÁŽÁú0ìnlö"¼wF,, ˆì!¿#h2lN¢X¥$ô3ìEÊ®Jô'4ìG;s‚¼N5ìW+•!Êk�e6,.üé°{9l¯pÇH·:,»®©¡,`9,‡RîàõÇ>¬�D=ê¬C,¯Šµ_”¨Fl¥¤9µ÷ÒhFl¯Y9'ÉÛFl0° 6o„eLl9LÆúecfM,ÍægÆ’ëÄMì1åˆ 8ÚSìM"Á̯•\T,F¨ü"Û XUl°LÞ\±È=Uì\¼F(‚UW¬ªNRy¶ÖÐV,lõ0°1ðlU¬ cÞLQV,Žö=žWw¿\,îDß ¬ Û2\ì•jæÅÚç_ì\?3TôDb,þAࢌ‚gcl,û =;djì|Í\`¸2ãklŽž6„noì€7­ Þÿo, ÔãºÆÂSrìf)Htv,î?z î¼YPw,‚vx…Õx¬nÖ÷B€‘[yl ¡À}u+Ë{lÑ…½Ê›«€,D¼’ì �,�âÑ«èñฅ¨ìjÜÛ•å[ϧ¬|]ÆÖ”Iýª,ÝÙ C> «lZ¡ðÿb+q«¬^Úd È̺¬ì~-]\¦½©¬þª× ºO5²ì&íÂ�*Üų,w)æRÿY%³,âŠwV“³ìŸœí ½lÌ®q‘[§Ÿ¿ìh‘!°—ËÂl,óåm*ÃìýLI[„ÉlLÒ ‡š¬ìɬj©Ý ”¯½•ά^^6o#άxC*!E${ÛЬádî�kÒ,Îõ©!Z'¾Ô¬yUÐ®ÓæÖ¬ß\0_ùQÙ,Ûeï(só©ÜìñU3‹çÞìXñpüåý¡àlàS¼ øÓJãìa RzÛiæl¤B&†(gæl×Z²Žúmè¬ú‚5†ìÖOç,§uü¢sUèì��rq§U§î¬û°Y0rSñ,ò…gãlͦól/ÍwbߌÅó,ûþìç×Òõìaçiu�-Oöì˜è¡:ùÓ3ø,& ®› ¥ùlà6*",Ãvúl®3þ =MŒûlGþªHoúñûìªdl­;]ü,€—29_Ü'þ,ì)‰ãP±üÿ¬yh¤~8 íý,ò¼€^ Ç-¼�\ j<m^×!.ËŒ4 - ± ‚m°è­pŒ”ŽÍ’Ö­œà-!¶£í°ˆŽ�¸Ø­š½ÅÊ9ô·m•Š·†u2í÷FË�¸Âá-«�}ŽšC ­•å�4ä�ítJdï×"-#âðd2Ç<íQîp¦[]!­4…Y¸¢é"-€,>)íÊpÑ!Eùnµ*í“­˜ÓŠ*- ##÷�hœ0í¬€!™,Ú5-r+” Ødl¬6­&´½ Õ–M?5íÅmOtÀ¿6­eÁd]ΣY?m5NHõÁp?­? V!òb$KA­>UçL©”B­›pÇ•´1D-õj î¤ç/EíÖf ²œýÅHíÝXЯN\žH-–y²Ø-OmA£>Â^ÝOí­Ä J:Ö[Q­2Ô­‘vi¿Q­Ì&Å¡ÀÙ×Tí8s,ŠCUÁUíózåÛ§ã¿\m÷oã�Qó]-× Ezµê ^m'+Çò¶7_í•»d ²·’`mªlD xhTaíQÊ8_ò®@a-g a É ?8cm<õpØ{Ñíb-a,'†F°Ce­ÿˇ29rf-Û¨W.Ò¤,f­ÅÖŽ{qÂem.>*xVch­©�—ýcÓ\kíœÃ`]¢¬¨l-ŽH’­«Ùm­�Œ»—ÿ p­U»mZsí­�r >,:t-ÂÈpv}ßumb²C¬[¤v­%ºŽq&T[uí#Ü û–¥ÿv-{c¯®†Øqw-‘4P{|’”z­HœÈ Øk ‚{-åhQ½½Ñ›|mªª2é2$zmr,Å)ú ¼z-ªkˆMÆí~Å'Wð¤Ttm"÷=ûþO�-†V¬xà€íÍo祃Ds-ÂJ îH�‡mTõ£ôLã8ˆíæ |Å�ä>‰mõבÄöå‡�­œ¸µß�Ã�mžp èÞã‘-F/L"ØG�æ“­¢Ì„S¿Ù¢—-è¿kNû–#—í ÍoΔ¹`˜m$=ºMx²Êœ-9}[ט�-ÒPfWûöž­@§ÉŽ/eÄ-ÎLÙÛáÛÃ-.lB .NÏÈ­&%̭˨½É-Ó¾:ñt8Ê-îÑÞ ]áÊmY_ €kkÍm2&Â�i@8έÁãMúH`›Ï-‡ÑÈ »#qЭ9ƒ|AÇÑm´{\ LR=£Ñ-–þ¹‰º Ó-¢2 4@nÔ-Wñ´ôÿÕí»SA êó“Ó-ùrP¡ÊkP×­U<Ù å*nƒˆò WÄåB®DRä^Î.ï3(þzz®Ü©ë)Ì;î$ÐÍ ^ÅOîf�"Ò½L!îÆÃjã #á#®ßÅèÏ‚•Û&î§‘8׬7„(n섎Æ*®OØÉqÕL[+n³m#i¤eö,.þé'WÝ|É-.77:Öe±ˆ0®’Uå ”j1.:íT€Zi2n¡þ£/3©s2î¾NÑRî»4.y¿,-C6nH€~!–w#™7n–~[(U!8ný�èº!Þ_8nƺ' qaÕ:.òÛ` `bûË9®cô áà D9n‡Ëi˜‘\:.FüæÁ/>în©ržH£sBn²æüUS�ùB.!g `\­GnP‡†ž{QúHnaÇn´üùýKîF,IJ©ín.5Õà `Íbon~è”×Ç0 on·µªÖ$b›tn�G¹ övy.ÊÏôD¾~®ô� ­îw~îB«+~/¤…îû6qzá6ô‡î@\éîÆŽ®ÖŠ^�6H�n|X¤d��.t  €Ò¹Ý‘®×oÒô¨À�. ÁÛ¤@º*–®êë—ä»–nüm3 Æ®Ñ˜îœO [!È™.{’J�˘®\ø¢ß–.…0: ^ß&Tœ.d�ÓÍažî–üð‰ôMŸ.¿ªŒîié’ŸnD¹ÿË¢®°9@i¦®$¼} §®èÖQƒ_m«.êʈ(%< ®n[ )ùtv›¯n ¢Ò�øÎ³.ecÌ”q�ßµî3M£ 4 º$¶®ù˜–nµ¼à¸îQJ‹* 5)!"íuû¶½.`Bûuìr%¾®¸ûâ/\kÂnáF³@HªÄ.…‘ ¸õãÅnQÅ€þt›‚Çî  t\NÅÈnà x (Ê.‡¦P æ`HË®ìb ÒŒºÌnç2Döj[Í®PBÚ*Ò,äÎ©ÒÃ#ÍîÒŠŠ7�”ôЮÖKr�X´Îîa#q¥T¹lÓn¼;�ôŠ ŽÔnÄzѯ³xøØ®@ÆYÁèÙ®@zprîÓÚ®)Çí«M€Únç}Óèj©§Û.\3¤ðï'Ü®X¸B"½n&åÞ.Ôü£ì×ISßnB; „{øÞ®ÞMÒa.úá®azoƒeYJæn‹³õVTM"é®,C3Í¡ØêîvCz.<Ýjë.×Ê>7Sì®Í¤ïZ»‰¸îîÅà¨F“Õsîn ßÀA°\ýö®—ùïèÀÓõú®­ß í×ûÿn‡ÉbaÏÞ¯|‡§§t Ñ/ðÜÏš'0åÿ.X­/7¼‰ý¯ Éh âTj ïÀSÎÇzX ¯5ÊîZ�À¿/†V  '¶�™¯²QÆöèAoßâ«pà)ç/0ãÕ}û÷oW #wÚ¯p Þv“YïóI‡ 8FpÄï4|R7øï™ôúæPz//KýGÆñ]!o´è- ›þ]"¯©ãùz÷#/,ð qª×;#ïá㢠T3&o]¤’ •Ô)ïtõ#p‚.¸,¯®í (©Ÿ�//e혀 i1¯³Öét-¬4ïÙÐÑ þLz<8/æ^)z_39ïkxK Â*:¯Ò;5�>@ÿ9¯'Õ'ÑØ¯{<ïztäˆV}÷=¯‘G·ý_‚>/ä › ãMh>¯SÞó €œ=ï¼¾ú!J¦7aCo¬rƒ8Æ»Dožýª WšáŸF¯ôèp•žG¯×Ž„eakjL/aÉi¢÷N¯v' w�²ÛO¯3ÚÆ<ÉëÌSïïñàSÚÐøY¯W%W¥:\¯a!N vª°·^/Žø  æ^/J¸ºnäLc/µÙ \¤dï2P xQÄc¯Y²Óì—-ýe/ØÐ´}×�h¯‡˜u %@=i/ô™Û k>¡ pïñLR¾IÊ?q/´l]¦¦ïs/³Ëºo¦ˆ÷w/ŸŸ_”WVbwoÝû"û*çy¯ðÓÞì2ÎGz¯tDî‚b{/¥þ®Xm?œ|oÿS¼¹Ðloùië% DM„¯iDzŠr~»…/—go+=U�‰o7/ ¿(x‰/Bgx¥ðA‹¯wæLSBðŒ‹oÝgB@8ôX�/;¯:b_׋/<ïQjFäo�oŠÀÞ  «kޝ0%!Í�‘/ŠDáIõ©…‘/AR‹ÂHBÉ“ïXÉÌ mû‹ì’¯3 ëù`µ×“oá÷ 0†É–oZ<ñÉýÖ¯Ù ÔÜܤƗ/ƒÃ꽺¨–ïó!OÁj{ë›ïGÆ2^š[.žo ä PáÓ3Ÿ¯�n¬ |‰< ¯ôyÿ?˜·§ïI4º‚²šô«/{X_Î ^­/l½Q+cí)°o{^bÐl>°ïƒù‹øÑ1µï:‚ì~¿/¶/ð-¾¼ŽÃ¸ï ë×w=þÚ¸ï þy´Y^�ºoxÈYœYÏ»¯21º \pn’½¯vl9GB)C½¯-A"˜ZÿUÁï�OPä¼ÁÁïðûŽ2ܨÃïSõƒ K½ ýÄ/k¨ÍÁ/+ÒÅ/‚9åÂJ°QÈo'›´/]0É/T{° ´ÇçlÉïöÕžÎíÿËo(å» {KÌ@Ê/$É�ÔÑ/\ÒÞ€¹ãÔ¯Ä>›ªÿµxÕïæö¢5Õ¯¦ÍÆ Üìc–Õ/Hf¤–jºÙï¢ë�Ž…ÜÝo?9ÞoÂÕÞ¯£P‰ÆžûÀá/E¦?ƒù¢páï’nF3ÛÑ?ã/I,zuÜ Qã¯ÿ aî8sä/3¹©7¿ äou€a>Ñ@å/M€¸»B{è/VWƒU ;Gæ¯~s^,˜�è/^ÈïÏ£"ê¯p � ¼|Ãèï3°w"“>c3ò/š¡OâùóïKf ¿¢¢Áò¯Þ4ÿu§*µõ/›·3ÇT+ø/÷½þ-Z¡úo3•9�ÅïKû¯·óKKzà üïÒ¾¬yÐþ¯{`û(á¼ÿïi¸7g×P§ÿoº§‚ofÿox®œÎ÷ˆ�°•˜Ãà'�ÿ/†y¡o" 7ÿï0™¤Ï+ ÓpÕ]æÊ7îX0¡E6!Í™’pÙ ZÔP ð [ ‹ßšÂ ðÄ Ö ÐlÏ`0¾y‚oV pðMR‘¨¿L°Ùv-¶-‚07䜼yÐÛ°:M)B§6œpÆk¶TÖ 0k¦µ¯£pâú!’0W˜ñºèP0k¿#YÝœÊðók\gžæ °\GdÜØ²-"pÞ2¸Ü!\Û"ð?E; Œh,É$p³í©åA€"0î–à 9Kö&pTL@©OK{&°#»1>DS†#p²F.ƒ+0éŠÏ&`\/pðpòV5c¾0ðßavÄR/y1prÓòÀ÷ýò0ð…8Ä!‚B-‘3pùACÿdŸ40@±F¢*5p0› 8áÏ4p¢²RÑIŒ60¾|Aµ*O8°Cã @TO<0ò5Ö诌"ðCw¿ —¤Èï?0 "Úc›†Bð@”¶j3šOD°ð%t©ñ¨D0€vuBÕ±G0î»44D7G°Wà¥lÒÙI°—eFV#©Jð(Å …1&M°àt¤ø ûÔT0W®¦QçVð± Ù½„¾¨[°a”¤›j![0" Ä¬ûØ|]pÈ?j�Ú%<^0Íņxp)_p§¿=Ë"_p%üùcþ¨[p½æh´Ñ/a°mwÖ�<†„_0j#"2êâTepƒ� ‚e•"fð§þw nÒÆˆf0‡½– ê¿Øœgpì›lÈi0»¢ £÷ ¿e0"4Ü¢¼�“kð¼õ’ :üºlð#O%ëGšñm°í$æg¡Brm°.f¥*mp=�ËÏøóPg0ßÇÞ wqpjFi°¸�Tsp 1_!¼ÿpèx0yáéß0käx0¦i* ¹ÿ&x𽱤 éú#æ|0Ô>·>Ñ~pv„ÿ �Žu~p9Ÿ’ÃÕü€0�Ô¢Õ~°ÛEªC$ ï€p ùN!ÑF¾�„0fk#SʆðýC6v$ô¦ê¹r˺Š0êôZ%%ýzŒ0²» 1dÍ“ŽpÛ~zŠù ¾�°nx�¹N0”°�M\–Ÿ>•p÷ð)/;zw�p2¯H@N�o«°µ&Š À`\­°ï•ƒSɺ®°eX;â/¯ðõ †U*–²0î³ÓP³0�ÐWIÿµpôu �é ¿¶ðLDBÜД¶°ì$G <0ͼ0&ÖÓ#K$½ðB~öÜ€Àp&Üc"oìÃ0ß®ï0ýÔöÅp4 «# mǰ’‡� бëÇ0‰¬@“Àa>ËðÁ¥ß’ È)Ìð?,/È-DͰÏýúÒKqÑp\œX $?­ÜÒ0Y©+ü.ÍOÓ°§¬Ð¾)ã¼ÒpÓ \úÖ°çL°Ï#æÙ°QüþÎë&¨ÙpK{_sÛ°§¤hûn›xÛ0Ët¸ ç7ã0Û†fV=\æ0ßÜ” \¨^Sø0)ûD4)�óùðÀH ЎŦÿ°�Z o�. ÿ08™õ<ÃÅ)ñ²¯{Óå†1ìŒ�úÖ±Ë D׆бæWEk�ñûFFqM 1žbÈž±Î ñ”Ñ�­S@0qÁKo1ÐH 1 '!;Èé® qY˜'Ðé ±;à´“ÿ£ „›™Ü1fÃŒaUnÜqäÊ� 'A�O1än� Îã#±/WÍô/xE±°c´!Ùb]Ìq7½èEìû1dE L-�± >Œ 5Åþq¿m£Uø‘±¬T* É^ë{ 1<òc«B«$±a½oýç8E+1³rCQ£¤ .±Ak Pú01—S `Д®2qDOxyìÓ@3ñì@—üÂåE7±›û¾É‰2ÿ9ñÞÇ ¯øD:ñÖnwZ±o;ñ”R�Æ›=q‰ÜÏOÊx>±õum <X3>±CžzÞBn5@q»{Ê  hcA1i¼ÎœæÓBñxާe ªB±LÌÒ!ì pE±¾!E >}ÑÇFqÍaö+ÈuF±F¶òbû8Hq�ÜåË©€Iq+ÿR£^ãÄJñ?ÈÏ m.ÇmN1þºa¡w¼ÖOq¤9ýΣOñ< \ìWßÜQqTqëÚÎ}Vqç:!¢noWñ‹ìÑ–¶ÙXñ£¢³Ÿ\{v‡^±ÚÕ)Pç}ˆañ:¹¬ñ]a±†ä)ICVúa1é(G£$—€j±CË&¤˜¦ßrqÍ€¤ i/°sq%‹‘˜‚«sqV½yr2xlu1oi;7ÒôvqT|Ü ”AP’z1¯mù J)5§‚ñ<Ú! |r—…ñdAŒ ¨—±†q ‘ÿ ÑâÃÀ‡qì(’B®"}‰±$ð3þ,d˜Š±7¶Ê5Rh бFx ›Ñß‘±€f˜M‚‘q�IV2¯“±¨Ÿz ºm»”±KÄs Ñ/Û•±ëÌM£ të“qDy㤠­�š1@Œ¨ óŽÂÚ›ñ]}ç(´™=šq§; ¶Úì�1oΛJ厞ñy_È*B®CŸ1¥î‰§Œ=Ÿ±¾p•rz¹¡1$„ô|c>¢± å¦ `‰£È£ñâ'p‚�š£ñˆ –zÚý¢ñ²5>UÅñäy ÅbÑäÉ1bq2!¸ªŸ»Êq ¥.(jóWÏ1o8 øæÐñ5­þ¡ 8ÒñðL$p9¤lÔ±Ò'h^BŌֱÈTÇ uî”gݱýrØþF²¥Þ±Æöç Ùû0?ß1+±×(3áºßqÿ<�+hcŸßqÚúý€æçñL½œŠZê1?¤v «íóÿï±2ÂO |@#0ð±ßã“Jùªñ±°Ü)>AKññ‹í$ÏÓ.²óqMQFîr¹ð1qÈ"!X"Jdö1k½ ñÏëüqCšh¾/r‚ÿ1ïäÒ¶úir$A Šv6¸r“©\dÅ¡@rƒóÝ3¾úö2S"™E2>ýrjU"1°o¢ò21Oê+õû2:WHäfšY ²g7\^o òG,Í[³ ² h6žqìk r” „%î¸2ÃC¢©ïyòË×6a»| 2xÌ/%ÄÝ]²Ù“7ûÕèr…àÕ€5ç²²Œ&!×{Ê2¨ §V2u8ñyžÞ† òXÊ#šåÆ#rk\š †í°w&ò8Tz k1̘'rÌD °ßs(2­EŒ"5ªX¬)rWÑùHö*r!+p÷åJ*2Êýye@-2Z÷bâý}Ä/2VýqY¾Þ$02ªà­«Œà/rw’°~ ‹:/rMÛ WXÀ3ríN¶õ.� 52ô/²wƒ8ò=3n9òŒÓ­\°/9rGæ æ@;25öÇÇŒX9ò¨÷ 0º›=²+Tá^Mb‘@òèÛu '’¥_A²6] -YAòâlËQl¬C2ªÏ§t7ÈCrßW^»:ì4BòÜý/\C€Iòøjm£yŠKr‡ ý l‹Nòbf• BE¸«O²J %×Y®NòRDð CØ1�WòFÚv ‡on\rê¿R$Uy]ò±'=Äx j]rÜÎòºúÝêb2Ç ÐpÐScòŒ„ùŸ¥x'f²rs\v÷¹ëg2úšãêÅŠk²ÚW ÜwÜp²XË9§£dp2¯ÎÚ ²Ö‘sò ¿>ÑöŸÿvrÁ=�bÒv2“ÄpØ[§x2¥|Éí´y2+}~ÄS|ò©�VNÝ™q}r¾ÉR…�Ž~²…¾„-" òÚ6âfïó€2ˆèà�c|²ÜwÔó~¿„r\Í£zeŸ…2f¯µkÇq†²h—@¸ž~À†2fâfÝXLêˆrWˇC߇²þ—„¤&M �rÜ““u¤”b”r.¿p›zþ²•ò”Á[ x–²0s5ÆÙ««¬óÕÄíc9sÉ« ÊÏÎó‚p¬g±#ó°;ºÒc3Œ†‚9¼V4³ókGNÿÜ´óö!½Î�9ó–[µ Ô0M_ó÷Mî‡d"ló‚ ‘4  k³ö“_ &swÐy>X3§Hö×>ÕÊs[+(˸‡v3\5 z^á³;Œ¿^GÓ�!s 4b�#{³¢±R ®�i$3í~1fd$sƒ¢å|ë�d&³+©x Uçz(3qã®Im)³Gkgˆ]+sŠùæq¤…_.3éÌrbïh.óêdï~ãIp.30$+e¦“m0sOúe%Õú.óÈù&Dvð0s+¡é¹ä2³®Zàîa×%43’+u_5ˆÉ=󓉻ôîFX@óJ}[èuÛ@3qýþ�ºBó¸ûXðô¢AóSSLñE³di™„¹Y¡F3Tî{8Ô–JFsèÑU "•A FóALþ®)VZI3,ÙUs–zÛF3¡ÿÞ1â­%4ŸVsè`"àsFÎX³êó³›ôa…Y³2Z°"Ëñ£Xó®1:"©Q¯b\³Ç™I|;]³-Ïn®�P`3“¯Ô –šßas­{¶¦L\ä`3Ê µ õ âc³”¿ˆó •ds^+øÖ÷2óe3¢[É ïß$…c³ÔÉÏ ÃØÕgs‘Êjh3Óì̧ i³‹­Å®MÊj³nÊâ ò~ï§kó^fš —³ëq3Ä›ð†Y”sóA� ÕüOÐs3¿S¨;ÙŽv3¶a.¤ÓYws¯âûIÿõxó­ªHJ è”z35-ìhœ¬6|3jX? ± õ¦}³…_  �¼Q�}s¼šâ ×=7Õ~óB3,™WÚi|3šWÚ8�~3"²‹_‰†‚s’þ Bêï†s�lT€ZM‰3èîÃ`ÔÉ‹³ Ñ�›r‹s“‰n R‡»w‹ófý{š›y¶‘ó­Í! (óâe•ó\ÈðÉøµ—³,Úf¤·ñV›ó§Ùa"Æòý¡³€Ý«}Ò,•¢³„¡¨}HJ£s*ÛÍ)ë7£s¹Ç[Û쳤³ [cöEªN¨ójËú;ׂ¯³,_®•˜ú±³`kÏ™ÛG1²so4šWÕ4ȳ3ÃnE×ÛÍêµ3o6'-î—d¶ó¹B(Gõ¶s `¥Ìw&º3®¶‡Åž I»ó±—P=G.º³ fá !.í.Äóš�Œ Žêó˜¶eM—ˆðóø¹ &Öܪðó+n[¢œ§¯ò³oiu28tó3hŠC _ÞÈô³ÁÐŽ<¤Áÿõó»™ Q“1ÓösœG£/ÎŽcðsÕØñ¼�4òóO]!ù¹¹ûó`5 Œ›­Iþ3xäð+Œ¼4!AçÓ±ê4Ÿ¦»ÑóX"ôÙãèç&@´ÝKí á·4F詄 4€¡AñÆ ôß5& 6�I6 4µ' “êäà4Ö΀Y¤nt"ÃáÌ Akôu jeMñ¢ôK½øac:ôÄ ![ ?à´xfzMk¤4�Œû®Vm›4l¤òP×SÝ´õ//I ¥xt,×¥!Ù´´z‹KV7¹t:›Ý|4YAM:$„ô¾…ªË)Ò5%t*íO;гü'tVgW…?•*´Ö„" RIrk*´Wc%1†¨,ô~^@yŒž-të lïJ‘•.´¶Œ•£š÷13ô¸%n!GäÂ84ï†ÕU™„å;´ö9† ú€–3DôqºAÍÖ’0Dô±E]S²fEôö€�±e{G´Š›ÈÒ9H´ÏeHðE´D�4 –•Jtý°kÀ}Í Ht6NgœïçðM4[½Q»�NR4Ndµ|븺Vô"Dîú¤È÷W´-À;zæY´;˜O!¢¡þíb´Ž>ÅzÆ·Èbtbôc-bt¢ž…ÁøÇe´`à®”öwbôJŽ| ]„õðmtÖf¤F n4ç[±¹IÊq´mDÚjòÏqôÔ: /ÐÎmsô-¹# Ïõÿ¹w´-ƒÚàMx´)þeäk;‰y4ĸ[>ÖXy´g*¬ªÑ¤{4õ‚缈*6yô¢]@!vˆX¨}´´±Z Ri„~ô ¹K‚ñ©yt€5C!^_—…€tsZß?Åvg�ôZ?ë«ôd€ôÁõ‚ç•‚4#^þ Á†ì „t¡‘xz~2\…´€õ�ð=†ôq$?9Þ <ˆtÒtšõQ›ÆŠôì-ôbi)êŒ4ÖöC±_‹�tøÐk 3�.CŽ4ìmH /&‹Ž4c7!>áEÿ�´�¦^ÚâìQ‘4±ÇÝepS‘´? U®ª¾—ô±qʃöâ ™ô”:±†­‚™ô…;™S‚Ö›ôùÜYÇ@¥Ðœ4Çl¼Lg^”¡´ƒš®ÏÇ£t®PÔOKr¤t9¶= Cßã¥t1ºa 5Φ´]þ`üšS©4 –^’}"v¯4º+®v혯°t‡ft# Ól²4fCóµn“à³tw¯� ì‚ x´4iiÏ¥±Æ¶4§½€¸4G—/Ge¹4Ž«ØH#C­¸tx+è9ü»ô4O™úù�x¼´*�rÓ1q¿´ "z4kÃôì¢Ð �PçñÃô zGX~‰ÅtHÿ` Ÿ¥�*Åô‘vWíø�VÅt[eªæ(‹Ètg„!¤©ÌôŒrÈøä–yÍ4sʱžÍô»ŸÆDË(ŒÓ4ó#z sìÝwÓ4…!®dþÕt~)— yo oÔ´ÂU‰’BV×ô½0çû!lØ4ÓúíhPú¥Ùt´| Ç\ƒÛ4ãÆþcðîÛtD4 Ÿ™i¾Ûtw fÖt€Þ4ÖOñ @¼TDêô΢†µªbŒì´‚ÚŒë~í4ƒM‡ PBï´Âc9J×nòô�¹F�„$ø´æÑN\±Ãûô‡ãoâÞý4´Às »Ø ÿ´] ÕSž}Aÿ4Q´Ë X[u’µ• K­v'uÃð„ÿ˜ìÎ5㤯§åÔD uà X”¦ O u‡o¾pæÖµ_ÐÅ >/w5�`³GoÇ�5 ι‘ö9õËæ¿ùæK5.eE $ eõmŽÄßèÂ5þN¾—[öu=›t"á±Øcõ´N~!)iø 54F‰{ +!õƒtH÷ÌH'uY¨Šcø)uü¸h^…”)õÜ· ä+Á­.u?"„É`­/ugП¨Äç0õ)ŸVZ S½/5Ó P Ѻ`M05aò ï(Ò•3uˆ’Ïàþd¤4µð1÷�¶k5µ%¥`$K7M3õ¬Øé D#†3µ@lø|w.u~¹Ñ xïcy.õB©!Øc?ø@õò *EgAuz0ì3Sð@õí•ê ƒ%xHµ±˜)±ŒÝÊHuDñ…5ÚSàIõýºÓç›ÕJµ©¶Ÿ�jbNu¾i3†�OõZ½‘×ÿfPµ¸˜õSÆèQ5(Ù²TÒPuÁz@éÂEQu`öŸ!¾¡sTunü]ywüUuÑf §¡&ÝVµûá$ CJ(VõYb¿š´RZ5Ðooýz\õÈD¾›J_]uºµF¶Ÿ£^õ©}« {œ¿s_užýá`u-¯"Ý;aµÎ¦b ‹ì¤B`õ8”dÅùº×cuÐæ×>ñTc5N+]Ç!DfµE‚* ï‰RfuÇŠ!à�òMiõÙ®–ÿ™kµUB7 U-Ùlu!%HØîtm5Ź�Š ´mu Œ¶pßyoõÊ„ ( ÜŠpõYúC�öijq5†Pã½DÏl5ÇøPТ•Ÿs5&ŸôÛoœ°vu$‰6gºä}5hêað|~õ^Ú͆t³£õ;]L h°‚�µ5ƒXß|‚õ½÷÷"5ôƒõÝ‹o’Î…µP4}ƒ™t%…5eïS Óæ^…õ-¸mìã˜-ˆ5fo<ä%Å7Œ5‡WÚ‡��5 „÷ …®~‘õ$ ’‘öã™”5 Â;œ.¨Ö•µÂé‹MþB–õš°?6¢®g™õé“Ú0×þšuðÙòg�cà›µÁ×õ+: û�µ³ �`UÂ�5dOÂ*E…Ÿ5ÕŒc LKÈÝ µˆO›Qf¨Ì¢5q—ŠòXÿ¥uÿ Á?>¿§uËߪjê›§5>$ÊÍ|Þ¨5$0 i‘:ªu±cõ¨í-§µ¯f�Áz·¬µÿÎÞñã¬õ�°-"¼г5;É¥ž��µõÛ©ä^1è¹õiÝÖ,!»õ¥œ3 ’‹‡r¼5ʬ¤joÑŠ½õfpeõ WIÁuüÇdÁ£iAÂu2ñ] ð~2lÂõ¹4Íeþ @Å5£ dîVÅõá‰îp GÆ5Nic,Á È5ƒ™}íÍÛɵü?Ž�JèÝÊ5™ÑU©þ)Sʵ%è6ˆ&pŽÉµ Ô-Ì�˜Aȵ|�î÷?ÑÆu}î ¡ºº¬Åõ™]¦;ÐÕÛÑ5»- +×vLÔu|›2¿tÕ5s&þxµþÖukñ!T×µáî_ y»¯ÑÔ55ŒiMÙhÙµâPƒ¿æB�Ûõ³O· H¸‰lÞõ¯Ý9ýoCJàõ.U1R0Žôäudïß0Ìèµ�"�š ïêõ QR&kƒ)ëuº›(¿O¥Èíõ¢ÛwbJwîu|¶Êîõ_,>q“bðµ:)0ÒL-ïµ$>\#z=èòµŒ@õ>¢=wòµûF[ $ÿ ó5¾÷…Û²ïuÀ8ìXeWòõPûþüü©÷5Çn"(ÀK�úuLRØ ‰ºûµð^V¶jÅyü5�b"3S+ÿõO½ €}¡"6 ô–”röµ(ëƒr^göX> 2švÆ vs´=Ë 6"!~CÛ=öªLm欓¶ì�mYvçÇc'è”Ò¶Šn{y<¶!à4ºÕ„�vêbT©�ûM¶ï@¸ɵš÷¶^ c0ð‘ö‹â/—¶ €'EfF¯ ö‰s] rõ©!¶ãq¬ 8Äñ 6s»G·Ÿò öX£ÿÛÞ-$¶„ms1À4¹%v%| )¦ë|(6ÊÙKÒËŸ)öw–‘Šä¤*6 y’ÀÙ*¶eô8Ñ#¾i)6u„¯x>2¶Å°‘;ôo3v<®tÝðê8¶1 , ÂÉÃ:öa‰Q¿Vq>v;°~>RˆR@vÁ¹É혖 Aö‰¯uÆÿýlA¶�—}$™QD6 5­|3OŒFv:j• Ù•ÝIv¥zÿ„ÂÊäL6®Ãv8̾Mvg 3NiRNv`SÈ GÛ jOö¹cæû!ŒÐj¶»fï•4)™j¶ÞÏ9o³?m¶Â—­¨#FXvà´«žY¶ ÓºCà‚ S6�H!ã½:ƒq¶LþˆFà½rö3‹ æÔzjt6¹úR'x8w6[Jè!1­¿.|vì0°¿Ø€v©ü"Bbx‚v/E œÊ_¦…¶y< 5v}‰†6´×”!_©Õg‡vq`�‡ˆö�Ï;W$…‹Šö1¡ä,CÔ‹¶€;_u(�6ý†‹3,˜�¶k(ªëº%ΕvòhÒ<˜Ž˜6Þƒ¾¾N˜¶¶õ9Àؘ¶² „À iµ�özÞZlç¯bŸ6JÃ�}bF\ vÐ:ë*\�¡¶ztF†>ø¢6[O«S2ž¢v\î-!3”=s«6ŸU&�ø«6("£\ó­6<šp°vžú�¤'ð³öm; Ü3¾Ý¸¶ŠuðYt+w¹ör†õ(Í¡¼öjPX öÒeW¼ö7ß¼ =^I¾öz¹yÜì“Àv·GFpSk©ÂvæÝÇDœ^Ãvʲ/É”wÆvÃÄp ¢ȶB,}ç8çzÉv%mK óóahËvåß1[`Ë6 »Þ!­ž¿dÎvF­Z <ëζ€± ¸HŽÐv"��ÕT�Ñö î"”UÝÒ¶xÁðHGÔ¶ýƒ ;YÛ"Ö¶hïÛndáØöEšù}_;‘Ùö!_ðrIÙöO'Œu™ÙÛvDt� .FJ·¿@5v¥:·ÑñÒ¯ÿw'÷7êJö¯ë(w¶)›U=)·Å& Áb;Œ-÷ 7­™®0·ÖÚ7�˜Ü§4w´Ï6 ôçAô57—¹v ž^ú 6wÍCSøÁ5·o¸·µÃH–:wñ èÐ9õú:·c•øè¿ñ<·‚Ý·—�Ç@7«r…¦WK´Aw¾­j"LP°¾Ew~(¸æEwHw3–V èI÷þ¿ñ‡ÆK· ™DåÏOØM·cŸkÄñ¶N77£C匙Qw¯ÎèäR÷9â$ÉTw×·5FU·³nçjÄ^÷xÌ ¾îawºú°Mîf·'Õ�£ë ¼gw$¬Ì©çEgwï:0F& i7eo5ž °¿kw‘LÅ3–Îl7¨L¢!,$Áo÷Ákqƒy|o7;ëðr�àJqwúVÛ�d¸r7f hôK0&rwÒ¹9"jôÛw7—’ �]Šx7‚Ó˜ …¾þ|7¸ÓR=nÀ4€·¡áÙŸ#wØ�÷qqÿ¶‘…·\ÝyjmT…÷‘Î]Â� ©Â�¥¸ÖÑfZµø/»n )™wœøŽòQÏZ� ¸d¼ž¤Gz!xÓ+Á“±^!ø×ˆ´»:#¸W…‚‚$Iè&8¨Ë”õÙ¼'8÷„< 5ƒâ)x „o£šÞÉ18LÏü ÅÒµa3øãÎ!Q�!5xº½¯m¸58T•C‡§>8xv£~0ÒÀ;¸c‚¡ Æù@øV‹šÊûàHxT ƒqÃmHx´å"I K8´µÐÎLø°4áQµjìMøÓq; >8¡÷Køú›ŸN–]QxV:4²×¤)Y8"ó׋̫V[8síe‚Å^¸AúfAÌt`8 fè ýºƒ³hø˜¿)½(Àl¸Q¨=µ¯ mxölß Éƒÿ‰m8„Ø?�·pø EÞ#p8ªT|Å\ rxp�X#j�gwøý]ò¬õ.Øy8†pg¼ |8Y«•ï (‚øü†�Ý/�ùƒ¸ÞyLï2�„ø'qÈÂOÆ…ø+Z•x>ér…øÞ‰� ´1\ÓŠ8BâüUx�x·ÁUW�ø*�œI’u‘¸šr³´�¬•x¯ªq pg —8=_™Ijë›øî‚ýÕGjœøÚ¼# º!¨›xµÑi»Dwcž¸Æ@|"sXòbŸøïãú_fŸø ÛnÄÐ7 ¸A”s"žl~t£8Ьä 3]¤øÀu r&ä¥8H×´±)nÍ¥xÕ8›Fåm§ø2‰µ–nì°øaë¯Ôw‘²¸bH³„xø³ø,q{\’ßµ8²„^4ô£µxø¬' dÇt·¸/þé ËS»8ºY (>«f¼86³<~�/»øt�5Â̾ø[Å6bxø¿8–ÿÅ!/8õ¹Àø‘p6Víáĸ t½®±`ŸC"6HÇ ¿ÄøÑ¶èMþ®KÄ8 7 Se»ÅxìZ,!á %Vɸ»­_ղɸóÁ‘íE#ÎxÖ¬ \b®cÒø‹²›d?ýÓ¸Ÿ|©íê¬"Ô¸°ž³ ½mÕx!ž§8ÆšÖxµY6�ª\×x9>ç#¸ÜøÏÜ¿GÕ«߸\þÕ \›·fàx™<�Ε�ã8bx!¼„ ¦äxcÐàøù~æxêìö¦ë8©p„ðL§úì¸lÑ™ ä‚�ñ8ýxæ8e0ôøºE½,V­õxßÇÓíôõxÀ&Ãá¢"­÷xè5ö(…+÷øGõößàÁøxâ,îŠäEú¸Ùþˆ€@—ü¸ô¹ê¸s0”ý¸�Êí�ÛÔÃþ8²àVF™aC9¦Z™Ïç|Py£j_§�È9VkÍþaByÑzšÝrqy!µæͯç›ùÿ­òç7è ù¬¾E¿®• ùs¹½ ŒdQ_y0ic,” ‚9hï¿‚,½9Zˆ¼ƒHž¹OÝp=ª;ù½iÄX̯Ùùšï; â¨×y7mêvt9þùƒž¤AŒƒ?yí¦3õ®$9ë�&òœo˜¹ÑÔŸæ�s¹!¹ú¾ôEççÎ"¹ŽÁƒ ¹–Ë\"9)ü+%ý¹$9Âu™þïëÑ"ù \," ¬[*&ùÓCVHÂ’_'ùí]!€6û(yòa;j+y´ò$¨ï¦á+9±ÿñrG~{+¹À¿G5ìØÎ.yömßÌ6nÅ1y8öMñnÚ5ùæ\Œ�¹N+7yX[£|e8yqžÝsÑÍ18¹ð õöL<9õ�kÄJù.@¹hC‰²8!d@9Yò ‘H€_Ayrµ$@±ŒA¹cŠ\!¾‘÷éH¹­çà œâþÆOùr‚ôqRçP¹{'[ å²”ÛQy�šK¦A6TùŒ#!xÛ¸‚WùŽjØ\†V¬W¹Méo¸çV\9Cõ0!ŽÕ\¹„GðÁ€•ƒa¹yøÑ•ýød¹ "Ï2­Àe97 ÍR¨kyú°°%‹C6k¹7¼zí"òmùûŽYÑyVan9�óš SíDo¹‰¤Î2/ k9rV ÕŸ@qùñ5Ó3kóÉmùeËÕ KMD sùøð=ºoÌs¹ÅÛ}wŒs|u9LOçJ¨È5l9Ëÿ gÀçyqù€,m"Mpx¹ƒJ´]ù‹‚yy7jG[\#Åx9@% ˆë-m{¹„Ì º%öO}¹ãûy“]ް~9iÐ�AMËy.v ƒÉ¢Á€ù¤t X{„ô�yÀ•üì?¯�¹ÊÓý» ‚9Då–ñÑQ€ùÕ²ä ®ðÁˆ9Šjt·®Èˆy`$A÷F‰yYù¢MTŒùrWx,ò€F�¹‡n·–Á@Žyá}©ª¬Ù�¹ÎcgÈ=[•yîüsš–¹jÃqûCk„–ù(Sú¸Ûßç˜y39ï•'q™ù‡î¯!±—ß™9Øq'øö<˜ù, j95•™ ¹&b2kËØÙ¡ùª9§aÿú¡95v~rX꣹>j ,"+r¤ù:¥ù éF†£yg?þþç§t¦yÊÁaƒ3µ¦¹–Œ$eQÊ‘§9õÖ£.³+ש9üUR¸}§y>ìµkP|«9¶ln]7I"¨y^úxfYµ¹£öpÎú¶ùÛx†­€±µyÙAªâ 2³µùËXƒ=Ý@f»ù‰]W�ü3¼¹`/XŸÅbÄygàŽ-Ìùyȹ¨CQè®´;Éù@ÝB’RÜ˹ è«qyX̹v7"Wß!¨Îù Ž>9![(ÏyÇï ,iÂÎùpòY4�¤Ñ9¯(c‚ŽhÖy™´TD¦÷NÖ9i×k hð7Øù?»‹-Ð¥×ùbˆ"Ñ™�îÛy9�c3ŒæÜ92¨ù´A¢ïßyö´[ÂU,ày9EóëäËá¹IUÞݪd\äy>áVÔ€å¹i–H{RðçyÉè[„æÁçù1Û ³éÂêùË 7h„èçëy[ =Ëwåìù€µ'‰h:Nðy"'ðoÊHçò9_Ö9 $æóyãd|zöD¤ôùŒ‚F${Û©óùy–#ÍëL±öyá€gíÜv÷¹ß!G =BÂŽøùh^ØT“~T÷9–ë ô:cKüy?,öÆL�üùüñëïç, þ9[jl +@óúG&ª<Æ:¹ßýj@|ߺiqá2Ï5úϧK8(* :ZÞ‡"(ñA, z«ì÷F@ª° ºE_="„Ý.uºÄ¥PêÙÖN:,’¨¥Ó º|l�áÚ:uR%¶µ–‘:Ö}p$ño]z+øS5 QŒúKFþ é õ:ˆGQv­Fúÿ½‹” T:¨m+Êâ˜z¢Á>ŽzzFc4Œ…�ºÇ³ €ãVÉúf³”DŒaz Jjµx#:+ÍwxCR‡#º¨Œð¤‡ý#º 7Jß%¯&:1¨¦ J¾^':ÅË )Ÿ=…(:1|dÒG=Z)ú:= $*¤é%úŸ*àâÎú‘#úš©›!“—h-zwSÙ!b¦Ù .ºðÐï]ì0ºœ"0YêÂ0zø9¨ýŸ'ž4zÎdÁ8�y7:ZP3¡@;úö+õ¥~]<ú y:oϘØ=úJž#˜:$W>úmd  FoÝq?úNƒfÑLmÎ<ú[ X'y=:Ë;ö�ÞZDz±Y 9ƒÞBDºV¦ ì©¿EFúoú—Qx¶E:çpÅ×ßWG:ö1ÂÂIz]ÑÕˆJz¹´± dV1IúN¹³ì`ºLz�üu a‘O:©t ÷9kPº’˜ßU çiS:V޶ü¦Tú<§ ‰„ÈUú÷²÷Û’ÀS:D!ðÌ®V:Oæ>"´jµÑYz˽F «7]º²®à!­,rÍ^º¼Ÿh ¹“_ºz®² GÊ®¤cz8Aa I|²d:pÀ`«0m d:§W] ?Ý`*fú� n� ¯gz†}F´ Óhz>�²önñ´k:f7ëb�ç»lúW_»Du†lºpVvõ·ýozÜ’î[NgpzáÆÆ8Ƭ¡qzPÄ‘FO1¹rºv¥ð[g uú³}™,›uz²³ƒªtü,wº;•õÖFÎÜxz/V;ú)xúÅÇì´ƒ{ú¿I3í�}:¿*ûRS–~}ú4äÅ“¥n2�út3U@ƒ˜©�zWÌÉÃíþƒ„z$½Ž™]…z½Òuëb±‡:—0&Š®q&ŠºÀ@®ãœ8Œ:"( „$ú�z—7FRM‘ºíŒŒ ÝAøB’º€®t›53R’ú°sΫù€’zÏž (´“ú^–d"å]J™ú‡ÿ¸Zã¿¿š:F3™V ˆñšºÆ®�Ö?Ÿú‰¸ãX$Õ º‰‚<pë¼I£ú?VŸ”ÎC¤º [ÒúÅÆ¯¤ºÝ¨9Ε›¢©:ù„ÞKÎ{ª:ú ' �¦„6ªúWi¼mz\)©:ê˜;n�ª®º˜JZM†®z@�"JL­º´z8óß!eãÞ±¶úåË4xpйºû9 ~È’»º±5¨n꼺 (ÁÑÉN¾z)•·}ffÀºR—i@¶?Ã:rÜBD›�ÆzMÆ*^’TÇz,>ä/Æ Èú’~& ¹äª‰Ézˆ¨Ъ;Èú�Ø_cí(¯ËúQ3%Å–mhÉz÷9b!aó’Xͺ“€¸ ðÏzY‚gšKç'Ðúï_“­WrÓ:ÆýÏFuÖ:žì³ ,Ï>!×zÆ"÷'fØúüPÊá8h£×ºçKÐ $×»ðÚºÞm î·×ÚºªÝŒr�HóÝúƳ¼‰å'ÞºÓÙ›2TU¦Þ:Í–hÄ?¬®ßz#‰ ¤Aï“áz¤ã r#•âºä�Ëd"¨ã:’á�Ãi^äzHZÏ ’É5ôåz_ghc(èzNOÕ—Ì-éºçé¨<,këz_£f÷Á!˜îºìb?"Zâ> ñzw÷0Ú*ÑòúŽÑ_®'Â…ó:1Øü ½Š4üôúô;v²÷Ññú …qþUñ÷z2¶¶ 4ƒKøº£)¿-r¥ù:y½¦=4ùzcl3`zcÛü:MFˆ ·é°ýúšó:³œ&þº�\Oa´ÅZýz3—ÜZ8üzâ#€ öHŒe{Œ×{!…©ŠFû?‡½ê¬Ô{Ë/¯¶ÛWÐûòÓNBµ»—·.²q¬Œ ;0—(ìí™â »nÀ–†“ ;Ž |¡Õc ;H¦ ¤Ç“v;`—¼ IçøÒ»gòmWÓž¿{=ÓÀ Å™BÍ»š3òûõwà{es…Àio+{Ô r_½Ã%{ä7ØièÕ·'»ÌÇ…£}';«R¸cþÔ*û"iGª×2Â*;S¯ê.ì—z2ûh¨r²^Ñ3;±_@¼�õœ2{ �ñR;¤ñ5û‚ÿÁC |7;FpFgŸ8;óƒ�fÜÿ9»Ã¢Ww�9;Üåñpîxs;ûb( ˜šAK>»(ûÄïÈý�?»‘Qñݯ¹GûnSå&xöH{Æ{o“ãÍéM{…Ð\ Ûl„EO»ùã÷ nç0ÝR»q¶�ò·R»ÎËW×LäTûO¦s ïÑ?T»ÿŒÞ•øV{tÝwÔð÷iU»m\%•ê;˜T;Ž:‘DwAOW»A°?Õ’ÒDZ»ƒ„ÆKïc³Y;ؽ®!TŠwß\;.¸4 e†z^»™�Ñ C†kË`;Çe’¶ókbûóŽtŒ+Ò cûøIá:Uâïe;„Z ŒaWãf;”É”Žï×Bg{tmð)gVh{Ó^] ?ÑËnj;Oí ~ Tk»ÑŠ„…®Gk{*óX´U;mû45¡‰‘ùn»#KL séõnû•`%ôÿ/lûâ%S"÷zÏÌqû]²jÞ‰à¬q{Á�¿óØ´dsûÖ´(óLÐt»ØîzÛ‰©ms;¦;ßµs{½Y“ ¸;�ôw;p]Ê �Uþ�wû(z2 ¡J¬Xy»Þ�–·LŒz{/ßÍêtU {»qX¦dÒ¦qw{ß÷AõühDyûÚŽl2F€û“7Ö«�##‚»>´Ó SÉòî„{ׇå7zuÈ…{WEgD¡Â‡»‹{ë*Ë ŠûüE�×Aˆ-Žû!ÀÁþ«“�û ïÂä1R{�;AF…í„)D’ûS†Áº“;ÉA¸ç)á–û46ü®ªÕ—;”v'íq™{%³šàÈ4lš»�,ç ‚¥ZÜ›»=5= ʺ9kœûH—ýSXêsœ{O;†nèÞ¢›»xZ_ 2KL}šû�v í†1ð û½H*qÖ)¡»;+Q¡¡ä©¢»\µㄌ‘¤»DËl }¥;^!ÒÆ-P¥ûí ½Ã@H„¨;±;µ˜k›«;î^Å›¤ý«;K�¬¢¼z­»S +õ‹&J®;SßÐ ôÁäÛ°;»+¡mg�x´;Úá){´¥jµ»´ûoE )¶»ƒvó\*Q·;¢�Z ¬zÖ·û�ªG”‘!ð¹{f®º ‰Tþ;º»�?Š˜V§Ë»;¯ ¢»{­óÏ¥'šÐ»»fN_§[À¼{½ò!á<À{òŸq/û²Âû?9¶èf¼œÃ»û5FZ@ÅßÄûHÓ© ®ÛÏ;}²º‚Ò×WÏ»ê* !��Ô;ËwGz�0Õû×|yñˆ2Ö;lÍ " ¨ÓUØ;ЗN?Ú;ߣ¯Wê\Ú{é])²åþÜ;[[D S–-@Ý;KúT›gßûã?øfÿgSè»"f– ƒ¸8Mé»3�&gŠÌÀèûH”à €œ´xì;(ÉVfo!ì{ìÉ’UJï{4¡¶³=¢0ð{ÛÏk þÈéòûçZ… ßÙ�`õ{6íP‰±ì4÷ûÖ£ ‘6¹ø;fÉY MÚ û»xb—z]#ü{ݣ‘ßkFü;5J›Žô”ý;UÀG \wDÿ{l”,­ës‘ý»Ô™àƒzÿ$ÿ»Ff ¿E«üØn& ÌAü�fý©ø¬ ¼=‹[ l�% ¨|á–ý¸H¬¼ßìêÐ$!h­¼mµ7“Œ˜­<·e鑲ˆ*­¼z�ÿ¨n¬üãT|vv«²|©H;¨­çE·üF·ƽö¸|6!þü…S¸|T‰š uøJ^¸ü¯j?!É*òû¿¼óO1Ù¦-€Â¼w=® l`îcÃ|ûã»Û‚ÏÄ<*�„>¹ñÆü¸ÀxçýÇ|ÈÑ.†[ºÊ¼,8^Ýt˼Kú igó‡Ë|½H r¹õ"Ìü/Dwÿ¦Ð¼pä l @%ÔüMÐrôòk]Ô|1q…å|hÔü=Nsî@×üE:• †ð6¼Ø<�±Ü0øWÚ|’Uþ …ÙqŒÛü¾ÒqÊ ;RݼýÊe ‡µeâ|1WJe3èäü©žbпôØå<½È$!KE!Ðæ|`4à2!ý×缓³2.¹¦Õè¼ØÅ FtúŒëüID 7Ó«dî‚@�¤ †=šé‘ /d‰½£²!¤ø›N�½Çs8_—ú‘= ]Ç {Sü½’=+’÷’è’=BàvuR(’ý?$ß.Û”}Gx"ïKãcš=>Æš Q½¸u }dbê à •¦ý€“!œ0¨ýº|�Ûé Æª½úÈuv=Có«½²6³`·uZ­}“Ö� ò­½’ûBxÊŒ)¯ýà!' U½cá¯}‰þ9„ZT³½~dy/Sdz=u­sÿr¹ýn„ô¹ ”³»}òÌ $RW¿ýúð5M† Á}¤:˜×ÒðÅ=ÜÔ�"F9Çý_\Wi&Ñ&Ìý­r‹#K’Í=}ûCÀÏã“Î}1ûïkEÔÌ=;~t´+¯BÒ}h­ 8¡œˆ×}£E?”W½ÄÚ½QË:¦H*4Û}Ñ’ú &k�íÜ}Ðàïâ�Þ½z‘‚óSХ߽tyé’±Úà}:,€ hÌ”êáýnUzê�IÚâ½øÇ”„UÎiá}¨èápç,óäý›�—0ðKå=%J-iÕè=ÓÂ. ,ûë½ÌßeÔðRƒì½ÿá.ô‚ïíý=Aý°žüiñý²ä*ä‡ò}G×Ð>åi³ò}XXT"s7ž9öýÆùnÕ¾•÷}��â‹¿oø}B¹§ÓCßì÷}_T‘#¤ú„ÿ= ®ÃŒ•D•¾Q®â܉/Õ¾ü\�K°3>ìÎÃuŒW,>?^Ô¸~ًƼÀZšÿýEé$ “‚®þÍ ­…ÝØÿ=®Ä;!‘û¤ ¾Ež €Å´ ¾òôÌ·ïZþ¢4zZî¤å>qöþ·¼ÀоuÜJ¨Ö:÷þªª•4fÁ&>©™ÞE:Í‚~p±h ÂöEþ²î(bPð¾É‘èí¦È!þÍ)PÉ!K¸">¹-1%9Å©#>¶ð×È­º$þHù‚íF§‘%~Û�Ï C'¾>½ žö×C(þ’ÁÛøˆŠ)>o?ƒ”‡xc)>',~ …ηŸ'~žü.Œ­Å,~€Ñ¿ì„¨,>õÇ©‹&ö.þa¯ ô©µ,¾­4"É 0>s²å*4[0~ éê¤ß4q3¾Ÿ¤1Uø&3¾^ue|ÀÔÑ9¾•è‡$~™ Àiñ>þ÷È!šS®x@~ÂXÂì>îÁ:¾öæH"w î`Cþ%ÕðËçi>Dþæ:¨Í|ŸC>¥Ý\—i<ÊI¾dÆ”:ý]uJþ¦y®}œK~M\šêYI~+üm~QþŠT¥‹jŽxR¾X\ì#zRU¾ƒÁ±qšiZ>[MšËƒ*Z¾?û.ý_þ; ”»ÃrK`>'G‹÷ß_~vKm�¤sPa>jëxªeQc¾S� ê屯c>sÐIãüà _¾Õ×�&bh>nŸ4«æ©i>Åk7 ™öúk>,ïxÁx6Õl>ƒnB 0@T„lþîLʃóT„n¾Sý Ïó o~cq·Á\¬p~ •F`‹¹ sþqúMQµ^w~b˼Qˆx~ ò –%‘w¾·}bwä„Rz>½Cl*;{¾Îõ²#á„Ì|þ‹@j{~“�ܱ–g€¾è‹¹¿üÒ ‡¾—£$ Â�ö ˆþ¥òèS‚C ˆ¾¡ˆ¼ø¯šŠ>×ÝÚ™¯Œ~„û c—î Œ>Yø’! °4µ‘þ¤RpšªBS“>«jè�µ ”~/<%aW¾”¾'ŒƒøRòs–~Cê… � $å–~jD! §'>ž˜¾q˜3 *ð™>„Ь|Ú$™¾~2ÕšO“f›þë M\ô™~(Ãúq8å�þƒ®æ9ãž¾8Éag4U–¾Á÷!U¡_� ~z³ºIkðŽ¤¾�p˜{¤~b_m²HMÌ¥~—±^¼…_É©þ ¿÷©�ð¯ª>O˜ò,´Å©~ÜÀu`º{î¬þ{ú+ 4ftɬ>é23Ô½†õ°þ°ÛöÊœm°~•Ïǵëÿ¾´¾¹+3ëëTµþ–™ÆiÀWá¶>E¢ +ºO·þ!Û!±f4ó¸¾0l@ã7kÒ¹~S‚ ZëôL¹¾&«ç Ì0Û¹~?•-.¡´>*Ô["Ç’,½>f¾šÖ”!<¿~w*{îw Áþ›²,5�âÁ>i þæ]{ľ"êQ!fÂÀÈ>Žq!¯ñ -Ê>�–Ó`nWÌ¾ŽøõZýö’Í>öÔ�Ðӭ;ŒÒ §hICÒ¾}¥mwšŒýÓ>~!f §^SÓ>„ºj!�ýîÖ>ÒxÎ`kJÓ×>'{�ˆ ô×þnÚGöÓìÙþÅ'ã OñÙ~•î“ úú“ÚÖ>}+KÇ!ZܾØëÃÑç‡Û¾_ÂO º2ßþ\�ÂÊeÝváþxdT0Ù[ãþˆü–ZÎ�ä~R³é�+†¬å¾·?(!Næ±æ>xø!¹€pwä>—r¬!6õá¥ì~`ÔÖB‚sÎîþ¾Û"î| î¾Kó%6ÿðð>ó¤Ê³²¬%ñ¾¼Ó¡’ÌÀ ð¾Ø`ñÚQá ï¾¢yÕƒAKcôþ†$Idzòþ¾×Ü ½öñ~¬yý¬uwñþµË¿ï›Ãø~àÄ™fn°ù¾ëÞ”uú>jV©§jï€ïþ3b†Ýóœ>ï~÷Ö9\Œ•ñþ{p§Áef§ú¾¬è‹øOfþþu>ã!ÙÆ™+„ö¯Íj*YÙ,8”+¿)ÆN½ã¿\±­K^k ÙL&®2 ÿ!rF Ûô¬9¤6e~_Ô¥BBˆþ¿ £Òœ áÇaº³"ÿ%áQ5pÀ "ÝÕGåùÒ$kîçØÂ§q%é–r¤\Y¤&ÿåõ¿ ØVŸ3&þGí µ¿¢h&†8®ºjý(?Ã"Øïdý*ÿ1d ì€,,¿b0 ïE«-¿ƒ€t›-W: Üè’õ,¿9Và Gv6¿°-/ -ϧÔ9?‚üóVÑê˜;¿˜«œÇ\¬ <ÿ>œ ü‚lÅ<¿B.}ƒV??sƒV K®’Aÿ´²ýoþúA¿V©W�ö®C¿›{އ’[D?3œo—£ZJEÿUGƦ#yE¿bÔ ˆ‘yFÿn!7G¾)J?â! »%=Lÿf/^ô†LSTÿ$ 7·ßUÿD¾’ëFwã[?Ë ˆ,t\ÿ?/q°¹ [ÿĸ¯3½´[ÿ7¹+!<£õc»j@,¨ceÿÿVcZ.*Zgÿ˜…e‘±jêÈK .ÉúÌjÿ>’íÓ­Pm³�«ì>fám¿þ¨Ñs†ëŽŠÚ®n‰ÿÀ‘ÿ�÷ ¡ðH«—¿Ryl!NH>©š?‚m “f\i›?3̪°JOK¢Çü¥ ”\Î(£ë¿á·ê“¤?^b“aiݶ¦?Èazž¹ §¿Ñذ }kö‚©¿n^{pïÇ®ÓA_&3�l±ÿÍ\� 'M ³#íuSÕ‘´?l§žA§ë´¿í®œ,4¶;¼Ác±[*¾ÿIyÞl9Q»¾?Ÿ7É!ùª†À¿?cÈ(m'Á¿ _ B[-BÇÿßÄ �öœÇÿ€Jü!Õ]ÑãÊ?;;S«v /Í?z¶@²t»Ï¿Rv±m®QbÔ3µñò˽ֿ2®<&·¿—׿ÑÚÖùEÖ#ÝF (RèÚà¿oTÚá¿›#MŽ×Öæ?±‡v °‡–ç& ‚›‡†sèõ2Td@sØé¿"£ùÊâ^ê?.ä…]’÷é?ü£s•A qéÿàßÜR2õ?ާ}uS‰êõ¿F-h tÃ�÷"¯¤“Äö?oPf1À”ÿ?À_ó>ÿÿpÿqu -gyÿÿÿN9W`R->ÿÿZÿÿÿÿÿÿ1i10ÿMo ÿVÿÿx5,jvd ;ÿÿÿMDÿÿD.]ÿÿ $\>ÿn|ÿsÿÿÿÿÿÿÿÿRÿÿwÿ9B'Qÿ#ÿÿÿ.ÿÿNIÿÿÿf fvÿÿ_)xOAÿÿÿÿWÿÿÿÿÿÿÿÿÿSÿoÿÿÿÿÿp/BR<ÿPGÿwÿBIDaY+ÿ%ÿ;.T%ÿuÿÿ-pnÿÿÿh{(V@ÿÿÿÿÿ*E%5iÿ&iGYÿxÿÿÿÿÿÿÿ|ÿÿÿL p/bv1wÿ5ÿDÿÿÿÿÿIÿ'W;"D/7+hfÿsq4fjt]ÿÿÿÿÿÿÿcÿÿÿÿBXl^p5Vÿ"'ÿÿÿÿQÿÿqÿÿÿÿÿÿÿ4ÿÿnÿ{+=ÿJÿ"Qÿfÿÿÿ\ÿÿ(+ÿÿÿÿÿ0 Hÿÿÿÿgbj*|ÿOÿÿrÿÿÿÿcXÿÿEEÿZM \B m~mdÿÿMh(P2|` ÿÿ=ÿÿ"(Z_ÿH0>W ;T*ÿ 9ÿÿ+ÿÿÿcÿÿÿÿÿÿÿÿÿEÿz%v ;>ÿ4|2ÿÿÿÿ^mR(ÿÿÿ{ÿmf+X&bÿÿ ÿ^ÿÿÿÿSÿÿÿ?OBÿÿuuK[WS&r1VVKÿ0ÿÿÿÿÿ}ÿÿQÿÿ:ÿ6eIÿÿÿÿkyÿ!mÿÿÿÿÿOOq\JaÿÿÿÿÿKqNÿÿÿrOe Fÿzÿ\Tÿÿ5ÿÿÿÿÿÿfÿ7'ÿjÿÿÿÿÿÿtÿÿÿcÿn7ÿIqÿLÿÿÿ\ÿÿÿÿÿÿ"ÿÿÿÿÿ)ÿÿaÿÿÿ[ÿÿp%oÿ@ÿ^ÿÿÿÿÿOÿHÿfE`d|ÿÿ.ÿÿÿUÿÿ ÿt {ÿÿÿÿ[eQ[hÿAÿÿÿÿÿ,0J|a("!l;G3ÿLOÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿzÿÿ#ÿÿÿÿÿÿÿÿÿÿAÿÿmÿ6ÿ_ÿÿÿÿÿ CpVÿÿÿDÿÿÿÿÿÿOÿ ÿÿÿ{ÿ>c3%ÿÿÿÿÿÿÿÿÿÿÿGÿ $ÿÿÿÿIMN]'wÿ/X&1oÿkÿÿzÿNÿY@ÿÿÿÿÿÿ ;ÿÿ{t_ÿÿÿA|ÿl%_+KmeCS?s+ÿÿD;*Y~{C/lZ7)3U' ÿÿÿÿÿxÿÿXÿ9ÿ;KÿÿÿÿÿK9ÿÿÿÿÿÿzb*ÿÿÿÿÿTOÿÿÿÿQ}&qÿÿÿÿ|ÿÿÿz=Hv5 ,/ ÿÿÿJT/vuÿxÿÿÿ^2)ÿÿhÿXI,Bÿÿÿ\ÿÿÿÿÿÿ:Dÿÿÿÿÿÿÿÿÿÿÿÿ: ÿgÿÿÿfÿC:5ÿÿÿÿÿÿÿÿÿÿÿEOuÿÿÿÿ{Fÿn%dkvÿÿÿÿÿÿÿÿÿÿV)ÿYÿÿiF.6ÿÿÿKÿÿ4ÿPX"ÿAÿÿÿÿÿ.ÿ)ÿ|ÿÿÿÿÿÿÿÿÿÿÿÿÿ5ÿGÿÿ0ÿÿÿÿPÿÿÿÿÿÿÿÿO9}EB .$ENk7ÿnd\ÿÿÿyÿÿAVÿÿLÿÿÿK-huQCkgÿÿÿhK4>`6.ÿFÿÿkÿÿÿÿBÿÿÿÿx'ÿ ÿOÿÿÿiIÿÿÿÿÿÿBÿÿg, mÿÿÿ]6Z]#B-w)ÿ ÿE ÿh?DÿNÿ=WOi.o@iY,'ÿÿFÿÿÿ7ÿ-ÿnh.ÿ2ÿÿ@Uÿÿÿÿÿÿÿpÿÿÿÿÿÿÿ ÿ/ÿÿÿÿÿÿÿÿÿÿ!ÿÿÿ+|wT IA_?U#>rÿÿÿÿ0_ÿÿeCKDÿÿÿÿÿT\ÿÿ0=IÿÿÿJÿÿÿT7ÿU:ÿzh ÿÿzvÿÿÿÿ9ÿÿQS5lOvÿÿÿÿrVÿ3ÿÿÿ:m ÿ;ÿ)ÿÿÿÿÿÿÿÿ3ÿÿÿÿÿ@ÿÿ&1H/H\ÿÿMnÿÿvÿÿUÿÿNÿÿEÿÿOoÿÿwÿÿMÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿWÿzÿÿFiJrÿÿT>ÿÿÿÿqÿ*f6WÿÿÿÿÿÿÿwEÿ}"ÿ ÿd#pYE^\ÿÿOÿÿÿÿÿÿ+ÿV i1ÿ^ÿÿÿVÿGLMOÿÿx,ÿÿÿÿÿ\ÿPÿÿÿ#ÿ?ÿÿbÿÿÿÿ6ÿÿÿq^2ÿeÿÿÿÿÿÿÿ@{ ÿÿÿ#<~jÿWÿÿÿÿÿÿCCÿ@ÿÿÿÿÿÿ4ÿfkÿ%ÿÿ2ÿ.ÿkÿeÿhÿÿTWÿÿÿjÿÿÿÿÿÿ"#ÿÿÿÿÿl-iem6c|ko+ÿ`b).2ÿ>P9ÿÿÿSÿÿÿA&ÿÿÿRÿÿr)Qÿroqkÿÿÿcÿn8ÿÿÿÿB`)8D*uÿÿÿÿÿÿÿ1@ÿ~N1O6)-L| .ÿ Cÿÿ_ÿÿÿÿÿÿÿÿÿÿ~%@ÿ8%rzÿÿ15h5<ÿ{>ÿÿÿ1z,ÿÿdxÿRÿZMÿÿÿÿÿ5ÿÿxJe,mX8_ÿ^ÿÿ[HAKÿÿÿÿÿÿ7r{wÿÿTÿ0ÿZÿ$ÿÿ+ÿÿÿKÿÿ]Yÿÿÿÿÿÿ*WG[&MKoÿ,t =$Yÿ/ÿÿÿÿÿÿÿÿÿÿÿu$As=TQÿr?ÿÿyÿÿÿYÿÿ ÿfr!U2h ÿ,ÿÿÿEÿÿÿÿÿÿÿ=ÿ~ÿÿÿÿÿ\x5g _ÿÿÿPÿ#ÿÿÿ@p+bUÿÿ1ÿ:ÿ}E"ÿÿHÿ$ÿrÿISÿÿÿ"Mÿ9NÿTj5iÿÿÿQY9(@ÿÿBÿÿÿÿÿÿÿÿÿÿÿk.ÿÿG.ÿÿj AÿÿHÿÿÿ?*Tm_ÿÿÿÿÿÿÿÿGjÿÿÿÿÿ9*ÿÿ9HlÿVÿ5Cÿÿÿ)ÿiÿÿÿÿ|ÿÿrÿÿÿÿÿQz*ÿÿwÿÿÿÿÿÿÿÿpÿÿub#ÿ~ÿÿA^Pu.^M.2ÿÿÿvÿÿÿÿÿÿÿvV ;\ÿÿSÿ8+ÿÿÿÿÿÿÿX ÿÿÿÿ*ÿ6m+ )Jÿ ÿÿ%ÿLE>ÿÿ{jÿÿÿÿ?ÿÿÿÿÿTÿÿÿÿ[ÿÿÿÿ;ÿÿOÿÿÿbpÿÿÿÿÿÿÿÿÿÿÿÿ#Bÿzÿÿ#ÿÿÿrNÿ @oÿÿKÿÿÿ geu8sÿBÿÿuÿ'tÿVÿ' ÿÿ{ÿÿed#.~ÿVÿXÿrhÿÿÿu^ÿK6ÿÿ:Z8AÿÿÿÿdT+yÿ&Nÿÿÿ6ÿÿÿÿÿÿÿ9cÿÿÿÿÿÿÿÿÿÿCh:ÿdDcÿÿH xÿES,ÿÿÿ+ÿÿqÿsOÿpL<ÿÿÿÿbÿ JUM?7#V"bÿÿPy0J&X5ÿrWÿÿÿÿÿj.#ÿÿÿÿBX--a#ÿÿÿ6Xÿÿÿÿ kÿÿÿÿÿ%$ÿ zÿÿÿ:ÿ"zP6ÿÿÿÿÿÿÿCM ÿ-ÿÿÿgÿiÿÿÿXÿÿÿÿÿU7j}.ÿÿÿÿÿÿH(&ÿÿÿÿÿDÿKÿÿpi4ÿ|ÿÿ6ÿ{~ $+iÿÿZÿÿ(ÿ'ÿ:ÿx[}>`i:ÿÿÿaÿÿzÿ4^#ÿÿ=p4Hÿ=<ÿÿ ÿÿÿ#ÿ~Euÿ!ÿ,kZVÿÿÿÿXÿÿ%ÿÿZ ÿ|ÿÿÿdkuA>ÿÿÿÿÿÿÿRÿÿÿÿÿÿÿV;ÿÿÿÿÿÿÿÿÿ0ÿwj]^ÿÿOÿÿÿKÿÿtQÿÿÿÿÿvÿÿÿz&7fÿÿÿÿaR+Mÿÿ#ÿÿÿÿÿÿH8?ÿ5Gwoÿ-fkB;RBuiÿÿÿÿ^mÿÿx">ÿÿmÿÿÿÿKz7Vmÿ]ÿz4Sÿen3ÿ%ÿQ1 ÿxeÿÿÿÿQÿ}#ÿWÿÿ(ÿ'9ÿ][h7ÿ!c^jbJÿÿÿU\ÿÿF#ÿÿÿLSÿy t'Xÿmÿ0e7^tÿl rÿ ÿÿ{Zÿÿÿÿ+ÿÿ(IÿÿÿR[~izÿÿÿÿ*/ÿÿÿÿh8jÿÿÿxÿ3wrq@cÿXFÿÿqÿÿu$ÿÿÿÿÿÿÿ;x'ÿ1Gÿ0$/%`@8qOÿ8ÿÿÿÿÿÿÿH[!ÿÿÿÿÿÿ'(@ÿZÿÿÿÿÿÿRVqÿ86BÿÿÿZÿÿTQ$~qlÿDt[WÿÿQ9Zÿÿÿÿÿÿÿÿÿa^T`?# m tO`ÿÿL1vlÿÿÿBÿÿÿÿ4ÿÿÿ ?P{ÿbÿÿsÿxR68ÿÿÿH_ÿÿÿÿIÿIÿZÿ%ÿÿÿ17ÿÿpqAÿÿÿÿÿÿÿÿJbÿÿÿÿ>)ÿ_ÿ42ÿR&Qmÿÿÿÿÿÿÿÿÿÿ0ÿÿÿÿÿKX'bL$ e%ÿÿÿÿ+ÿÿÿVÿeU]7%ÿÿÿZN&Jÿ@|ÿ ÿÿxÿ`ÿÿÿ;sÿÿÿZbuÿ ÿÿÿ~ÿkX ÿÿÿÿ0ÿ&~ÿÿÿÿ:ÿÿ tÿ?ÿÿÿÿÿ(ÿÿe-]ÿÿÿÿ}'Bÿÿ7 kÿ9ÿÿÿÿÿÿÿÿx<<ÿÿdO(4M)ÿÿ-vL =ÿÿ!q5~ ÿ}ÿÿÿÿÿZ0O{d:ÿÿÿW[.(2cÿ bxQ:ÿLÿWÿdÿo{,@b}ÿÿÿÿ;'ÿ5ÿW#xuÿ">ÿk#(ÿ#UOfqCÿÿdÿÿ.ÿÿE ÿ5ÿÿkÿ ÿÿ0WÿÿÿÿÿÿÿÿÿjiÿÿÿÿÿÿÿÿSÿkÿVÿÿÿÿ3 ÿÿ}ÿK ÿ[ÿÿI+iÿDÿÿÿÿRÿÿÿ1_.ÿÿÿ ÿ=ÿ?ÿ-ÿÿÿÿÿ M3YRcCMzÿÿÿÿÿÿÿ]ÿ9ÿÿ;ÿpÿ=ÿÿyÿÿÿÿÿÿÿs[ÿÿmeÿ ÿÿÿÿÿÿ]ÿGÿog-KF ,ÿÿÿÿÿÿÿÿ5ÿÿÿÿÿÿÿÿ>U-ÿÿÿ:[ppÿÿÿSÿÿ8P[}2oo+ÿÿÿ!7I\p+lÿÿÿ>ÿ|ÿÿ OnAÿÿÿÿÿÿnzxg2![OLÿÿÿÿÿÿ1(-pz+Rÿÿ{Pw=ÿÿUEaLÿJÿÿÿ-Vÿÿÿmÿÿÿ<ÿÿHxKÿmÿBÿÿÿÿÿÿQ$ÿIÿÿ|ÿÿÿÿÿÿ-1ÿJ|ÿÿ$ÿ/ÿÿÿÿÿ\ÿ|Yÿ ÿÿÿÿxÿ;ÿÿvÿ ÿÿDxÿÿÿÿ84ÿ8ÿÿÿÿÿÿzÿSÿeq)X}Dÿ&@ÿVÿÿÿÿÿ/ÿÿ,{eo ÿÿÿ"ÿÿ@f% ÿd>ÿyÿÿbÿk9RUc=% sHIZÿÿxÿÿÿÿÿÿ ÿÿÿKÿ(ÿÿÿÿsXV3kÿÿÿ -ÿÿÿeÿÿÿÿa2P2faAÿoÿ#_ÿÿÿÿ3FÿBÿ)ÿÿqÿÿÿÿÿÿÿÿÿ^ÿLVÿÿÿI*yZÿVÿZÿf%ÿÿÿÿ\ÿÿÿ%j\ ÿÿÿÿ&ÿÿWXx9ÿÿOÿÿÿÿÿÿÿEÿpoÿYWÿÿÿ8ÿ6ÿ}ÿÿÿÿÿ+V3ÿ']nÿÿÿÿUnR}ÿÿIÿÿÿÿÿÿÿÿÿCÿÿÿÿÿGD7Bx ÿDÿÿÿÿÿ#ÿÿÿÿÿÿ%Bnÿÿ{6ÿbÿÿÿÿÿÿpÿÿÿÿNÿÿÿÿÿ@V=ÿ.ÿ]ÿÿÿÿÿÿDÿÿÿ Jd*ÿhw6apÿ-y!ÿ$S(+ÿÿP&Rÿÿ.sÿÿzÿÿÿ0l`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿhv4P\TÿxAÿÿÿ ÿ$ÿÿÿÿÿÿÿÿÿÿÿ'-ÿÿÿsqÿ_jw*)hÿ5>ÿZ"!7:?ÿÿoÿ&z;ÿÿÿÿqÿTvzÿÿm^iÿ#yÿDpsE#ÿU)ÿÿÿÿbÿÿ ÿmÿ]\ÿÿÿ}ÿÿ sEÿDÿ t:fP9ÿÿcÿÿÿÿO&ÿÿqPn2:ÿNa]ÿÿZÿÿQ`dÿÿ$KÿÿÿÿPÿÿ]ÿ:eLHÿÿÿF_Dÿÿ,Fÿ ÿÿÿkHÿÿUÿP]"9ÿ*ÿÿV!ÿÿÿÿ)ÿÿu4 ÿÿÿÿÿ ÿ$ÿdÿ}0h5ÿÿÿÿÿEÿhÿÿ^Qÿÿÿÿÿ'WZ3j1LsO @ 51XC`}M7| m A+(P ÿÿÿÿÿÿÿ8ÿn8ÿÿFÿÿÿ ÿÿMvÿ(ÿÿÿÿÿr,ÿÿÿÿÿS=ÿVÿÿR(ÿGÿÿ(_ÿÿÿWÿÿÿÿ;ÿÿÿÿW=5VzAi9ÿÿÿbPÿÿÿÿyÿÿbÿcÿ>Qzÿÿ?ÿKurp=ÿeVWnÿÿÿÿÿ=ÿÿÿÿÿ3;.uZÿÿÿ1ÿzHÿÿÿÿ+ÿÿÿÿÿ=ÿ:{ÿÿÿ3ÿÿÿÿÿRÿÿÿNÿÿJS:#&q`R U.vpÿÿÿ6ÿÿÿÿÿ ÿÿ}O)ÿÿÿÿÿ9ÿÿÿJÿÿÿÿÿÿ9atÿÿ ÿÿÿ:*=ÿjÿÿ f,3ÿ]ÿÿÿ7ÿ7[ÿÿ)ÿcÿ7ÿÿÿÿÿÿÿÿHÿÿÿÿÿDÿpG`k=ng"aGMlUÿX 7srx"#Tm56"pÿwÿÿÿÿUÿTÿÿ%ÿÿÿÿÿÿÿgÿ.ÿÿuÿÿObN\l.?ÿÿÿÿÿÿ ÿ.8AÿÿeÿÿÿÿÿÿÿÿÿDgÿÿÿÿÿg3F ÿÿp?]*@89@v-ZNborÿ8ÿ ] in elFjgJ~'Cj8!SH"ÿJ_ÿÿÿÿ ÿÿÿÿ@ÿÿÿÿÿÿyÿÿY/<ÿÿÿlÿÿÿÿÿÿDTÿ'ÿÿÿÿoÿÿÿÿÿÿÿjLÿzgÿÿÿJÿÿÿÿ ÿÿa V9ÿÿÿ#ÿPÿÿ~ÿ$ÿÿÿ"1I 8`NgYvH:a9ÿÿÿÿÿÿiÿIÿbÿÿÿÿÿÿÿXÿÿÿÿBÿÿ s.ÿÿÿG&ÿ hzÿÿ(1ÿÿÿÿ* 6<EIaÿÿewhÿ(HuB'k#J'54ÿ>ÿÿÿÿC}ÿ=!ÿÿÿH?Eÿÿ=ÿÿ$ÿ>)Kÿÿÿÿnÿn&_5Jÿÿÿbaÿÿÿÿ@ÿÿÿx/ÿÿgÿÿÿÿZTÿÿÿÿÿÿÿÿ4ÿÿÿÿÿÿVÿÿ_ÿÿÿÿÿÿJÿMb;ÿ5ÿÿÿÿeÿÿÿBjÿÿÿ\ÿÿÿÿÿÿSV3Syhhÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿ]ÿwÿÿÿÿÿÿ ÿÿÿÿPQÿÿÿ@ÿÿZÿÿÿÿÿÿÿÿÿÿÿÿÿ,ÿ9ÿÿOÿÿ&?P1ÿÿIU0ÿÿ6ÿÿbÿÿOGÿÿÿÿÿBÿ@ÿR)DÿNeW ADs-?ME64cR3{ÿÿÿ k NvGTh(Uÿÿÿÿ/yÿÿÿÿÿÿÿPÿÿÿÿ<'HÿQÿÿÿÿÿÿÿ Cdphÿÿ`ÿÿT]ÿÿÿÿÿJÿÿ[JÿÿhÿÿÿsÿdÿO%2Giÿÿÿ"ÿtÿÿ=HÿÿÿÿÿKÿÿÿ(nÿqÿ.ÿ'ÿXÿ wÿÿdw}zÿ"ÿÿÿiÿÿ ÿ0Hÿÿÿ ÿÿÿÿÿPVt/[ÿÿTzpY0?ÿ%ÿ8w+JS(Wÿ0ÿÿÿÿÿ0ÿ-ÿÿÿNKÿÿÿÿÿÿOÿÿÿLÿOÿÿÿBA-=W (3 ÿÿÿÿÿXÿ\ÿÿ>ÿÿÿ=5Kÿÿÿ cÿÿÿG)}ÿÿ"ÿÿ2ÿÿÿÿÿ@Tÿp>![TU:ÿ6ÿ)ÿ XÿÿÿÿÿÿCR~)?ÿÿÿÿÿÿ4v\ÿÿk!,`ÿÿÿ0ÿÿÿÿ qÿÿ[ÿ"4ÿÿÿm(&ÿÿUÿÿÿÿgtma;ÿIÿÿgjÿIÿÿ>ÿÿÿÿÿÿcFÿN?ÿÿÿÿ<ÿeÿÿc/=)Uÿÿwÿjÿÿ9ÿÿÿÿÿÿÿÿ3SÿM ÿAÿÿÿÿÿÿzÿÿÿÿÿÿÿÿÿÿÿÿÿG&ÿ=4ÿÿÿÿ^ÿÿQÿ$MYÿÿÿ2"ÿÿÿÿÿÿw+ ÿO&ÿÿÿÿsÿÿÿÿÿSÿÿkTÿ=+ÿÿÿdÿÿ3Fÿÿÿÿÿ#ÿxÿÿY>nkÿAÿÿJÿ%ÿÿÿÿÿ:ÿ~o_ÿÿÿvÿÿÿÿÿÿÿ~ÿyÿjÿX03. k`8Cÿÿÿzÿÿÿ^ÿÿÿÿ$ÿÿÿÿ}Iÿÿÿ#Lÿ6@lax bÿÿÿÿÿÿÿÿhÿÿÿRÿÿÿg<ÿÿ1K^ÿ2lÿÿOÿÿÿÿM. ÿMnÿÿÿÿ.ÿÿS ÿÿÿÿD ÿÿ5!9uÿÿÿ3G@8$ÿ^1ÿÿÿAÿv !2 &ÿÿÿYÿÿÿ>ÿÿ0ÿÿÿÿÿ]bs ÿÿZ:ÿA;Oÿ/>)Nÿxuÿÿÿÿÿ]ÿÿCÿÿ<ÿÿ~9ÿÿÿeÿÿÿÿÿ#ÿ; RH%qVÿKÿÿaÿÿ_pÿÿl6ÿÿÿ6Jÿ?)|,pns$;ixGY6_]T a"&$ÿÿÿÿÿÿÿÿL.ÿ'ÿÿAaVÿq:tÿMÿÿÿÿ6Uh>ÿ ]ÿÿÿ?Qÿ_ÿÿI8ÿo;"ONQÿÿ9jÿÿÿÿÿÿÿjyÿ)xÿhÿ?ÿÿÿÿÿe3% ÿGDÿunÿYÿÿÿÿÿ ÿWÿÿ@1ÿHLBrn.Wÿÿÿ}4ÿduRrLÿSKÿÿDVÿÿhÿÿL uÿÿÿFÿÿ$ÿW3x29ÿ=S pY=ÿÿ1ÿÿ:ÿÿc@ÿJm:Qÿÿ9ÿÿ ÿPÿ"oÿÿnÿ~ÿÿÿÿ7 CÿÿÿÿÿÿÿOÿÿÿÿÿÿq6iÿÿcÿÿ+^< JÿAÿÿ)cYgeÿÿÿ_A0ÿÿÿÿÿl5ÿdÿjT&ÿCÿÿÿÿÿÿ &_dÿÿÿ_x ÿÿ0xy zLÿÿÿÿÿÿÿÿÿÿÿ"Kÿÿ*Fÿÿÿÿÿoÿ!.D7ÿÿ"ÿLÿu tÿ4AÿÿO 8ÿ_ÿ$XIocCRÿÿÿhk`:y0ÿ_wx8zÿ")ÿ+ÿÿÿÿm_ÿoÿGGÿ%x tyraJu *ÿÿEAÿÿÿVa0^:ÿÿn^RYÿBÿqXÿeÿ`9/ÿÿ niÿVÿ`jÿÿÿÿÿÿÿEq*uUÿÿÿÿ4;Loÿÿÿÿv.ÿ-ÿWuOÿ]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ8ÿ;SiÿÿDÿÿjÿÿAF7@ÿÿÿÿÿ|J}ÿÿÿÿÿSÿÿ]ÿÿ~{ÿ;}ÿmza}ÿÿÿÿÿ uÿÿÿÿ$#ÿÿÿB.ÿ^ÿFkÿÿÿÿÿÿÿÿÿÿÿÿ}ÿÿ_ÿM=ÿfÿÿBÿPÿÿ&7WfAT{<UfI1ÿÿÿÿÿÿ[ÿÿ(ÿÿÿÿÿÿÿ#ÿKÿÿÿÿqkÿÿ0y(k[Acÿÿkvÿÿ Pÿ@Eÿÿÿÿÿ4Xÿÿÿÿÿÿ ÿGÿ.ÿuÿ',ÿÿ=@ tÿÿ ÿÿÿÿÿÿEÿÿÿÿHÿÿ'ÿByOoWm;N ÿXÿ|]ÿÿÿ7RÿÿIa+ÿÿÿOÿÿ[`ÿWÿÿE5ÿÿÿÿÿ@(ÿÿÿs\ÿÿÿ0NUDDÿ;ÿÿÿÿ'ÿwÿÿIÿpÿKÿÿJ ÿÿkgKÿ~ÿÿÿ}ÿÿÿÿeÿ#ÿÿ?pIÿ`ÿÿÿÿ{ÿÿÿ5*ÿÿÿÿÿÿ2ÿD^KÿÿÿÿÿXe><)BIl.q=ÿ sK pÿÿÿ:CÿJflÿÿ ÿÿÿUÿkÿÿÿÿÿÿÿ1x6ÿU_ÿM"sEÿ:/| >ÿR8f",:MlH!91PB\<-ÿÿÿÿ gWÿÿÿÿÿÿc^ÿeÿÿptT8ÿÿÿ@ÿMÿÿ/ÿlÿÿÿÿÿÿÿÿÿÿY3nl$Slmÿÿÿÿ`ÿÿÿ5ÿÿRI|~wc(=jÿ(ÿ8;eÿ,'KÿÿÿÿT3ÿÿ ÿÿQÿTÿRiÿ]bZ ?|ÿÿÿ7oZÿÿÿ6Pÿ\igÿsÿÿC)lÿÿÿÿIÿÿVÿm!5)ÿÿÿÿÿÿÿÿxÿÿÿÿC+ÿTÿ5%zgÿÿÿÿÿlBb;;kBM]3- t53]ÿNÿE .ÿ,Hÿÿ{R*ÿÿÿTÿÿÿ}ÿSwpÿÿÿÿÿrÿF~ÿ6ÿ%%ÿ$ÿgÿ=ÿÿÿÿÿÿT4FÿUo7dÿ ÿ~1ÿ2ÿÿÿ.\~&=ÿÿÿÿYÿÿ!!eRÿpoÿÿÿÿÿÿ|ÿÿÿVÿÿÿÿdCnVÿÿdÿÿÿÿÿ)ÿÿeÿ+ÿÿÿYqq+$ÿÿÿz~ÿtqÿRÿÿzÿÿvÿÿvÿÿÿhÿÿÿ/<j:#Po_ÿÿ9~ÿaGÿÿÿÿdÿmÿÿÿxÿÿÿÿÿÿÿÿG\ÿÿÿl(YhÿLLÿÿÿÿÿÿ&6ÿeÿÿÿO}i")ÿÿ4ÿÿÿÿ"3ÿÿÿ 3s3w` ")d-aÿcÿÿr7<ÿÿÿÿÿÿÿÿÿ,ÿ^ÿÿ/|ÿÿÿÿu<ÿ6 ÿÿ'zTÿÿM=jrÿÿÿÿiÿÿ{f3ÿuÿÿÿ(ÿÿS7@@+9dXÿÿÿÿÿ%[ÿÿ^ÿJyiÿ\ WJ!ÿÿÿ;ÿÿJÿ;ÿK ÿÿ:ÿÿÿÿÿÿÿÿÿÿÿPbS~s;5ÿH^Mz'Hc#ÿÿÿÿÿp4XÿÿBOj"|ÿ5ÿ!ÿSÿzÿ ÿ?<ÿÿÿÿ&xÿÿÿÿÿÿÿWÿÿÿÿÿÿÿÿÿÿÿÿÿÿJ2ÿÿÿ:"ÿÿÿÿk ÿÿnÿÿWÿaÿCVÿÿR ~ÿÿÿNTVÿsÿÿ~R:ÿÿÿÿÿÿÿÿnÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ}ÿÿÿÿÿ-Lÿÿ 1h%PLpÿÿÿQaeÿ7+ÿ1^"ÿÿ* ÿÿÿ^ÿÿÿÿÿÿ9ÿÿ ÿ)ÿ' ÿÿÿ}ÿc7Jÿ:O=^Gfÿf#ndÿÿÿ]8ÿÿÿÿs Qÿÿ,ÿjÿÿ\rÿÿÿÿÿÿeÿÿÿÿÿÿÿ@^7>ÿÿÿ6ÿÿÿÿÿÿÿÿÿ Hÿx[ÿÿÿÿÿ@Obf<ÿÿÿF>Sg/R8Br 9X-B^1;aZIqV>yvÿ&P%+\pÿÿ>ÿÿN _t;ÿÿf3KqeKÿÿÿÿÿIÿÿÿÿ_JpU:h'ÿÿÿÿ6ÿX .ÿ,ÿÿÿ=n}ÿHÿ*ÿ ÿÿÿ6r+JF!X]aÿÿÿvÿÿÿÿÿÿ~ÿÿÿÿÿIÿÿÿ t!zdvÿbf@Gÿÿnÿÿ(8ÿÿEÿÿÿ(ÿ|Wÿÿÿÿÿ=ÿEpcÿjÿÿ8ÿÿÿÿÿÿÿÿCÿÿ5{-&P ;$FXÿvQTÿ8 ÿ|ÿÿf2}|P-ÿÿÿÿÿÿÿDÿÿ>~)ÿ4wh&l?]FAZÿÿnd~ÿ0ÿy-ÿLÿÿW=P_-diEe3ÿÿÿÿÿbÿ )ÿ0qUÿÿ,/M Yÿÿÿ6ÿÿwÿhD~ÿÿÿfÿÿÿÿmÿÿÿlÿÿÿÿÿnmc-ÿÿeÿÿÿÿÿÿ/ÿ57ÿPÿÿ[3ÿÿÿÿÿÿÿFÿp?ÿrNÿÿÿq-tÿÿcÿyÿp||0Efn[ÿhÿÿ1N02Sc[\74EhL#j.ÿÿÿÿrÿÿSÿÿÿÿq%eÿÿÿ@ a%ÿÿ FRÿEBÿÿÿÿvÿÿÿB+/FÿÿÿÿÿÿÿÿCÿÿÿÿÿÿÿÿÿÿ]"@2FX'ÿ^ÿÿÿÿ2ÿÿÿ"`ÿLÿÿÿÿÿÿÿÿ pGÿÿÿÿÿÿ3-ÿÿ" \ÿÿÿ \A.X\-/Hzÿ:ÿÿ{h6 ScPÿÿÿÿ8ÿn6ÿÿÿÿ ÿ [ÿÿKÿÿÿÿÿ3ÿ!W4ÿSÿ#U 'HÿÿÿÿÿQ=; ÿÿÿ99Oÿÿÿÿ*}Zÿq'ÿÿÿÿÿÿÿÿÿÿÿQÿm&ÿ1ÿÿHÿÿÿÿÿhÿÿ ÿ`ÿZÿÿÿÿJxÿRÿÿ7ÿh0ÿsÿÿÿ2ÿÿGÿ'ÿÿM'#:ÿÿÿÿÿ,ÿ\[ÿÿÿOyIRl \!ÿÿÿÿÿÿJÿÿÿÿÿLx][ÿÿ4^Ll`{~3p1ÿÿ7ÿ"Z>~WSJsÿAEÿWÿ! Fe}C|OÿÿDÿÿÿÿÿÿ m.ÿA{Eÿw\7ÿÿÿ+ÿÿBÿÿÿa XÿÿIlkÿF'ÿ8ÿÿÿo13gXÿÿÿÿÿÿTÿÿÿnÿNV8ÿÿÿcxÿQD4LhtjGw.ÿÿÿ xwF(ÿ'ÿÿnÿ*ÿÿÿ2ÿÿÿÿ(Mÿm #{` Cÿÿ)/Hÿÿ^ÿÿÿÿÿÿ ÿÿÿ ÿÿÿ&ÿvÿÿc7ÿpÿ1 /E@98] 6>ÿÿlbX s\c(x,;Wz"3gKpi$ ÿ}ÿÿ%ÿÿÿÿ ÿÿÿ~ÿ"ÿÿk8gÿÿCÿÿÿÿÿÿyÿÿo ÿÿoÿa:'wÿÿÿÿÿÿÿOÿÿ}ÿÿ6ÿÿÿÿ:Cÿÿ(o ÿ#ÿneÿÿaÿ6ÿo]ÿV@Hw<ÿAÿwÿM':3ÿÿOÿLÿÿÿh8]U3ÿoÿ5t ,ÿuÿÿÿÿ9ÿÿÿÿÿCÿÿÿÿ.ÿÿ$ÿB9ÿtsGÿ/)U ÿxÿÿÿÿÿÿÿÿu?ÿÿÿ ÿÿmÿÿÿg\!\ÿÿPJnÿÿÿ9VÿÿÿÿÿK_ÿLÿ ÿÿ ÿ[7ÿÿÿÿÿÿÿÿ ÿÿ]ÿÿÿÿj7ÿ&&ÿÿ5u+\ÿÿÿIiÿÿÿiÿÿÿpÿÿÿng?;ÿÿÿÿÿÿk Q 8ÿÿÿi6ÿÿ5ÿÿ"ÿÿÿÿÿÿf*ÿ<ÿÿÿÿzÿÿÿÿÿ{*XJdi5fnNFUsA<9+5ÿYÿ{4ÿÿÿÿ ÿÿSÿÿÿ}EÿÿÿiÿytÿT1ÿÿÿÿsw)ÿÿÿÿ[ÿÿ+fÿÿt"ÿÿÿMÿ oÿ!]w6ÿwÿÿÿÿ<1ÿEa]ÿG2BÿÿBÿBÿÿÿÿÿÿÿgÿgÿ^JÿÿÿAÿÿÿÿ?ÿÿÿÿÿÿÿZÿZ8Mÿÿÿÿÿÿÿÿÿyÿvÿÿ}ÿ3ÿÿÿÿÿÿÿ_ÿÿÿT6Bÿ *Hÿÿÿÿ.ÿ ÿÿUÿÿÿÿÿC8-Dÿÿÿqÿÿÿÿ`HÿÿÿUÿ/ÿÿÿA^h qmJÿVk Dÿÿÿÿÿÿÿÿ0ÿ$8ÿBVÿÿÿY:b8ÿÿÿ[-V`ÿÿÿÿÿÿY>Oÿÿÿÿnÿÿÿÿ11ÿuÿÿÿÿ8hÿÿÿÿ<ÿÿczÿ\epÿ-ÿQ5=ÿZÿ_\ÿÿÿ4w-4w6ÿOÿÿÿFÿÿÿjÿ_`~:.!.0ÿÿy_6ÿÿ{ÿÿÿ.ÿ-OPÿÿ@ÿÿÿ!yZEÿÿÿÿsÿÿÿÿÿÿA ÿÿÿÿ5&ÿÿÿ!#ÿÿÿ|ÿÿPÿÿÿÿÿXGyR9exm'%5 ÿ}h JrYÿÿÿ|ÿ+7>1ÿÿÿÿÿ~a)w8ÿÿÿÿ1U;5R`Fk*v6ÿÿÿÿÿÿÿÿQ ,ÿÿ.ÿÿÿÿÿÿÿpÿÿÿ!nÿt;ÿGwyÿÿÿÿZk 1ÿTÿÿZ"*ÿÿKÿtmÿ-Zÿÿÿÿ/2AKp/uÿÿx5ÿo8ÿÿÿÿÿSoÿÿv/ÿRI>)>|#D^61 ÿ3%ÿÿÿÿf Tb>Tÿ)hÿÿÿÿÿ(ÿÿÿNÿÿ/+ÿIcbRÿÿ>YJ+bÿ$ÿrÿÿfÿ^ÿÿÿ`ÿKÿÿÿFWXOKÿÿÿÿÿÿ\Aÿÿ+-Tÿÿÿ|4Lÿ% ÿÿÿÿyÿeÿÿ}ÿÿJÿÿÿnÿÿc?lIÿAWÿÿcÿÿv(%6nÿlKDqp-ÿÿ'tÿQÿÿ1ÿÿhlBÿ[ <6ÿ#y.kÿCyÿÿ[KSÿÿÿÿÿÿKÿÿÿÿÿÿyÿÿi9Pÿÿÿÿÿc)ÿ4Wÿÿÿÿÿÿ4/FAÿAQrÿÿ}(ÿÿÿÿÿÿÿ)=ÿÿÿÿhÿqÿÿ[eSFn.XB^\ÿNÿ2ÿG$ÿ-d/ÿvEy%0YFZw,.=@o,{GÿÿÿZÿC"ÿ ÿÿ"ÿÿÿw#ÿ ÿÿ;ÿYK-F$Zÿ"Pÿÿÿ/Hoÿÿÿÿp};HUWWyyÿÿiÿÿÿÿÿÿÿÿÿÿYÿÿÿ;>fÿKÿo.-%ÿÿÿÿÿÿÿÿÿ3@JÿdÿPgÿ-ÿÿvÿkdÿÿ1Q%`JL#7ÿÿÿ3ÿÿÿE2jÿÿÿÿÿZÿ6ÿÿEÿmÿ*'zÿÿkÿzÿWÿÿÿÿÿÿKÿmÿÿÿÿÿÿÿÿÿÿxÿ?(ÿbÿÿÿqZ?UHMÿÿÿÿÿÿÿÿÿÿÿÿ=)ÿÿÿ*Sÿÿÿÿ|ÿÿZrÿÿÿ3F}N[ÿNÿÿÿÿÿÿ'N.}ÿdÿk}ÿÿVÿÿÿÿBÿÿÿÿxÿÿÿÿjÿ.ÿÿÿÿ9}}?ÿÿÿÿÿÿ"ÿÿeIpÿH<*ctGÿÿiÿÿop ÿÿÿrk,ÿÿ|@\ÿÿ"WW~gEtbÿ" ÿÿÿÿ{nÿÿULXÿÿwÿÿÿdÿ|ÿ`Ohc0VYtÿ :ÿÿÿÿtgn8Pd,sÿjnÿÿÿc.~ÿÿÿÿ*.ÿÿÿÿÿÿÿÿÿ %uFhÿÿ75ÿw7&)8Jÿÿ}ÿÿÿ y>z NÿÿEÿÿÿÿÿÿQyDÿ |ÿÿÿ)ÿ5Fu"L  aAd{Yÿÿÿ/Xÿÿ_L`}ÿÿ gÿÿL"6UJj_ÿÿYÿuÿÿÿÿKÿ|{iÿÿÿR]ÿ<=m wuaÿGÿ2ÿ~Y|9ÿÿÿÿjÿmyRi0ÿÿpÿqu -gyÿÿÿ_/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/mod.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Á_/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/mod.rsÁ !Ÿæ<ÉØÍÔoˆ #õšfÝô|ô|èOPMP.KH IGP!H9O8N?LI=LML!J205%8+%JL+:0.8+MMOE0D%8+P30C2%%%?+MDB@9>?CC?PP"6%9+*MIJHONKNNOLLLOOK ;:>EE?FF"6%9+IB/(NLKHMNL@DGOILOM0LE PHNHIJJOKOMN8M+MPLLJN-OPLPO-P7JNNNFMLM,NO-bHFLHGI K29?MONNOILK"MLKNPO%@OON"KNHG:IMLLN/, <  ŒGú#v#ÎpÃ*þæçpÀc/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/onepass.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ác/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/onepass.rsÁ m¥8÷K•{H5uô4B’¬¿—¿—ˆ;2J DM>.HHIIM"O(LOOO)MNNNN3 % $97G?P;I5!#+ '9)NKM8GM0POMLPN>NN=& JLMM#MPNMO5%JM B  D1O!BF7BJK7,3 D2 LN)NMPFOGPKIMNMLLGKKMN29' CDHL!IJK# B8B$M B O'7C3 II37'K1279#561$>/"J''1 5OD$6N(&#J!(L LJ"3#6O9B3 HMNP= HKIG KJNMPM%@LB5 <9OL-& BAK-JK) IJMOPLMJINLOPPOL& N$NOMK&KMKKK(!JNNNN&%>INO)**4'H+8B6MOKP/&' NKJOPNM3K)$DMLP;(&)JL (;6 LKON;4H5JINOD@ O 63 F1B 3NNL>@7-&: OMNNMDA5IIM"IMNMJ*9@,BK=AO;4P>CKC>=E::E4GJKML(%!L+EP:/"?LK4*AO -LNLON+7$5<9JOMOMLKLOP8 )(L@MKIMPB#563'F9/BH 'CPN0HKKM&"I6' >FLONK=-A-5. ML#MJLPL 'L*9GK @&NNLJLNJOP$'LMON/:%( M7.-.MN40C6HNOMNLL5B'E6B PJNO0EA6I NP-PP"KPOH  '1> -K HOILN?+ONOOL<MMNKPMNMOM-JPOI$IKKNPOLNJ5LLIHMPNNJ7PFOPOMMGPKJN LOONNFPMO">:HKC?JJ/HLO69O>%GAO4$</2(NPOO8IICMLKOJ2L>P6CNN.OLOMEO OOMIPPOMKJOOKK-  O/M$ 8,O>C3 ;&N= 88O6B6B3 P,LM JF   J@....@K*O3103 ?+< 8(,.-16463 71+@ /',.1,4,3 60+2N9NPOOJ0 C A!+-6KB3  DE*I B  7;+O53603 "L/NFIN#05)EFD*N&MK B8$$//,(O MN> O%(P 3 31*3$EJ)%ANO'+KHM1BMMNJLNLILIL HJKM.*OOP1JKMPO!NLLPKMNO%OLNL4NO$9JIA* 37 N>HKKNJNKLIM(HFF-L L  /,+953 0NL 8"+I3 JN# L 1+H3 -5:/ IOBPILIM(HFF-L LILLP+PMKHK% 8)+-ELOM%+-@3 )&:/ /*L1/? 13/N>@3JKO)LIM(HFF-L LF >N&I OAC?M3 -&:/ 7JKO)4KPKNMM(HFF-L+MKJNONNN/>L? B  D1O!BF7BJK7,3 5L@ BI@P-O$JKNJ3I70PMKHN703 "JJKJOL KL5PKP;HEPPKM(HFF-LFO. M" +?IL!#H3PN6'A?3 +1PC :MMP2D%  +1M KMJLMJKILNO MNN NJMLNPKOPMLP: 8 KLMNNOOH KLIKOK81F, 0- ' KNL6)("8 8+@LF:A& N/ D)-*M,B(1D** @ + IK9KKM9+-11*(<""  1KJGN9$4 LOO(4HDDDEF;6C/P "  O!L"M6M8K NOKLNENNP!A77#LK77)KMPNPL-M6/; <P,B7C9P7HN)>M P OO&)KOL$ J AOPG33$- H(G'..>@ (2  G$*!,8-&"(*)-*()()2= '+,5"6""2$-4 :B2$ >BN "B'1&97NF4%>03E =*2 O POJLIOBMLLKN;.LKK 2CIPK$PG)M'O  B8$$//,(O MN> O%(P 3 (O=4@K:*PA;;46POPM:&#@@H0OOL>2N DOLAGG#:C$LKNC ? 4/J9%1'G# 6 )2 OONMOMPN%%IL,6D64N9$-6 N- BF/?6; OOL6M<1?1NA@= ;$:LC8L ,G% /. )-!1 MNNNKO MMP4PL40 0LK .:*392 O CE8+D %G&. &!.  M&G"(9:NOKGMPILMOOOJOIMO$ 0,,-0,,.@ B!"BDNCMO"; '"5. "G"% 8M&*O=" .FK2HKPM O O+$"$$(&B6;73E5G4F9I7@(E%'( )K%7H/>(1>*0H3Q*;/ & ! 'L@+ !&G @+ &H I+OMOP" J)G(J2MLNOOJ! ))--..5.. //0 !+,. 207" ,32 ".ÿ÷�øƒø…ø‡ø‰øŒøŽø�ø’ø”øîåøéƒ§Ô«Žä˜ès nö úÂZ¸§ó7vd/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/remapper.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ád/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/dfa/remapper.rsÁ /A|iwÑóãG-q„æMæMò&KNNNOK9DNOPMPO!M0+"MP KLKO.ENPMJN;PN0;KO(NKO7JGL7LMIOON-:LM<9;O!MJ(! !MI;=GONNM LMLO LPPE'$5("?"* >CNLPLNLIP HN3-/&-5HOK6 B#'& %$ @2 @'  ?'! %GP @- @" B´ì�ßÊ(þ…}:>ËÞÇb/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/hybrid/dfa.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áb/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/hybrid/dfa.rsÁ 8~›v¸j¥?!µ¼ÍÍôÏ ôÏ Ò"*6DI  5- 0H8K ,LONJKH/FPKJ0"ELNNPOOMNOP FIJJK.*J5LNM:P'OMJO,JP/>&(0-// M+M$ B-,/I 3 ;&N1M$ B9,.I 3 P,8 B(,.7+ 7. 3 71+< 7',LO3 60+4P>O! BN B!+OJ+.LM.5J3 HE*H" BP 7++B4:#3 ".EGH*N+M#OK)J!K BB%%-)A NN5 P&)B 3 3-JJL .'*3 F .(*3 H .C*3 )PJLKMMPKL*1/*3.EMNK&!HM% >NK.MPOKJ&*MLJKL  OJLJKOM&PJO;LHJ1H:L6 B*,.73 LOM&,.7. 3 +P 3 !D@,!HPL4J#O'4)>;#3 5L@ BKJE3,$NGNL4&* #PMKH&/ #3 1P?%; PMJLINMO PPNA=0 OIM&PJO;LHJ1H:L8RKJI   !=",.F KON!=,.7. 3 FIM?O8 ) !=,7+"<&>:4GKH?8 )## '3 G! ) !I,7+"<&>:4GKH?8 )#### '3 1P?%; A=0 OPLNMOHNNIICLPCM&PJO;LHJ1H:LIKKLONPNLOPP B2) !A/,34(; 1NKLN-4(; 13 '&"PB"-;!L KOHNNIICLPCM&PJO;LHJ1H:LFIM?O8 2) !A=*,7'3"M&. )### '3 G! 2) !AI*,7'3"M&. ?:,##### '3 '&"PB"-;!L KJO8L>NLMKINM&PJO;LHJ1H:LLN B* K !A$,*=M,M#3 *!"3H 4K:  MCKO&$IHBPLPKNIN3JBKMK3 7),)L*// /7 P>4!3 +::' .?M9ONKNPKPKKLNMLNONM NF$CC@NKLL0NM(L3JBKMKK 7),)L*// /$!F(MML(,$37)NJMF&*@ P>4!3  -:;MPONKNPKPKKLNMLNONM :K$CC@NKLL0NM(L3JBOOPN1-:;+MCKO&LPKPPOPPNN$IHBPLPKN N3JBKMPE 7),)L*// /7 LOO+4!3 +18' '?I M7HOK=OL8GIFDNJ"MKIN9 +..5!M8) C$! BLLPPFMNON9 +?CL+#$E/:7 LLPPFMNON9 +?CJ+*/:7 GF<MNL'ILL.PMOOLNHLOO BB!A6,*L*// /7 4!7MIII3 G CMHLKH&I:JJKJLOKN5%$ ""(1KNLLPO;MHLJL.NPMOM*MPMKKLKONOOOMN2MLNMDLN$MMN@.ONKJMLNMNMK;N3N(1L,P@IL& 3OK(% "##+D"=-# J6KO&M#OK)J!K BB%%-)A NN5 P)B 3 )+AO#FHCH0J0, @ILON1NDN1L(M HFNML.LO*KJ)@K:*968G#&)K;&*0L"7JGO0=L+#!! NJ8OA?BJLAP1+MKL'9&'# H4BP "+*6) 4%#H MLJNLMM: PN;& @- NK52J1M69N; +,CB(JL>@& 2*3PP;9=9N;"+K0 " )& )#* 6%!& N/ P0OMD9N;"4+"< IM-" @)GII 9N;4+8% MMO3 N+!N GMMIMML3/I ?/3!9N;EC)GIB :KFMJ!INLN=O'>'E5O=$OMOE" BJC2+) I>HB?G74'+!5B I>KBAG74'+!5E:H:0#E IONO' 5IPF$$/INLN=O' "##)+%'>* ;# ?NP@ONMONOL4-)+8OJ(&PM?I@ MPJPMCPAA PO+"NMNPL' HHJMNIPP866PP244GHDKKHFOKPOP97I+NM0@CI"KK2@9L;1 99 NHK'J'I2-,%)9(IB@*H 'GO(J3;3& CP7@$3 KL@FK9+,%)9(JL>/#6" %CD=C"MJPONO25P?*A2<'LLNE<'MLNE;M/2)CH;/JC$ *PM/LK$ *PO9( 96N.@>MMNA ON8.IKM&%M6A;=C MLJMPLP!6;&O 4KJL!KLNK!MNHOK#$+ )+#-64=)NKM8GK>JMPNHFM!&L$ B2) !A/,34(; 1NKLN-4(; 13 <ILI79OD  3 0"*%3A4422PNNNOMP'&P++3 =& FKLKMNHMLMFJNLM-( () M 5)+3*4 3 K () M 5)+3C4 3 C4+6 JLMN'MKLNOMOPMKLLLP0%NO 3 !DB,%I/*MOL&/5MLI:/)>M3 D2 L N'JIMLNMKKNJIPOOLLKKMN29' 6OOO0KOOKLKNJL!LNLABNNP%%ON * !B$,H*'4J#LHLO$&2I(PP,42:(942:(3 BJOO"0 +OMKOK8NMLLONN=NO2ABN!1MOPLKOF BC!8(,#MLB3&##3 ;JA6 $3 69 :NPL6HONLMIM2PNONN+GNNMLKOFKNOGMD C!D ,5OME"!3 HJ: C(,5OE#"3 D2 MPLJILLPLPMMMKF%LNO" BB&OM@05!N,N7K#3 >+ PPO)MLMMJMNN"%LNNK BB&OM@0L>!F,N7K#3 F4 LLNOPP8JJFIFDL'KMKM OJ+K: BSEIMPPOOO'%!KP5'9,<5M)+ OL*6M)+ O<6M)+ P25M)+ 3 O4 K!NOKMNJPOPN2MKLMLLPKNKLMIHKJLNEM2 ?0<H84P&86LO-*NN64ONO/9IMJK86>05D:8OMKC7OPNAA5PL<NLMONO-'%4A9:JJB&KOKP/&8NNNGM"$ FFMC'A82'!KPOP:6 M MLL/:5')3@%'11')3F)+5)+5')3 JMJ+NAON;KIOL/NJHKNMOMGO.JIJKKK87B!(31F/"F''1 1OD$2N(&#M(D"(!(OMPN  $J,= 7,4J#3 #LJM+*"KFFGP+,2 1'#  PGPMO-)>/PMOOJNJKMNMNONLLOPMK+# 52))5/-!@POOOM)ONLL2ILIM?OO8MD:PP8L/0  & O9GJHLONNL(PNOJ %!B=",42:(42:(B�H�H‘HÈ]¿a¤×«ä쯀±ê¹þºçóÔ÷Ý´ÿ¸œ¼¨¾ˆ’ Š’ Œ’ Ž’ �’ ’’ ”’ –’ ˜’ š’ œ’ ž’  ’ ¢’ ¤’ ¦’ ¨’ ª’ ¬’ ®’ ¡¦ £¦ ¥¦ §¦ ©¦ «¦ ­¦ ¯¦ ±¦ ³¦ µ¦ ·¦ ¹¦ »¦ ½¦ ¿¦ Á¦ æ Ŧ Ǧ ȼ …½ ²¾ ÁÆ ìÉ þÅ ³Æ ûÌ ÇÎ ñ‡!ü±%oüÃô6M�Ú d/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/meta/limited.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ád/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/meta/limited.rsÁ R¬Ð0—B  *ÕûøOøOûMMLIOMOMPMNMMFJLNMLKOLKPNP;O; 4"'8-3&6" 9')9DGA=/ /O ! N?K +2LNPN=:;ALLQGNKNO;=JN G *#+-:&@" :4 @DGA=& &O ! N?K " )&65 F61 5#+*!3+:=<"> ):=5 F6' c¶9ΤŒB ¿è2çˆb/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/meta/regex.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áb/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/meta/regex.rsÁ dV r Þ:L»Üa‰Öb$­ü­üÅ (3  $* )!.HO*+9=NDGIKPP JKAJI7?3 =(EP>P OON% 2$) OD",+1+/++-++5++0++,+.+ 3 @JLKOD<H! 6N= *JLL @0'3 $%.6P=,OP B)&KN"3 HE*.O- @"3 "L KNMMOM ).-)3 0LJ 2$K/=A3 JN# 9":<(3 3 OE 9*>?()=3 G11 )BIN 2+E3 L#MKP 1E-."??@3 -2IL 2+,D""#$ 3 2%4,N<NJOOO* 18,$%PD" 3 6#%+46KPOL ))'P;3  )$,IE$I#$)I?%*I;3 L2 )$ IB$I13 M )$I,3 KO )#I;C#I.3 OE1 )":$JN:N 3 OI )$ IB3 P. )% IJ523 .9LLKLP2 B).' @<3  )$,M?$M#$)M<%*M9$M*$M)$M!3 /48 L)M% 9. > E3 ?-2  )?MLJLM+ L MPMNNMP/OPMNOMOMOO =. > J3 H-2  )DIMKPM%+M) / I-!HPL3>0O'3)>/03 5L@ B9/-$JKNJ31/0PMKH6/03 L >MKPPLIL5PKP;HOKPKFO. B=$ *IL!#73PN6'A?3 +-2  )LIKJILP6NLMKINLNNJ BIK "C$*<;,M#3 &!0 )CIO0 C%)OLNMJM 9.+ > *0 3 -2  ,H%)OLNMJM =.+ > *5 3 -2  1L%)OLNMJM+M) / IO!HPL3O0O'3)>@03 5L@ B9/O$JKNJ31@0PMKH6@03 ! JI%)OLNMJMFO. B=$ +*IL!#H3PN6'A?3 +-2  9L/OLNMJM) BIK "C$+*4BLLJMMEF80F8>=OM3B6#<*-?<;3 01F NO,: 93+C*0 3 *&<LJON3 ).)0)5)3 )$6HDI )< "$(.&&%%3 %K7 )B *.6;,,/03 *%0JNO5JOPGJ3 B)C (*.4))(+3 %LN8 B)I 044BLLJMMEF80F8>=OM3B6#<*-?<;3 -$EC7*MOKINOLMONHPO*LKNNMNJMN )>&&E%'3 +(RNMLLNNDNNK*&)0N!< .!"O0DIK3 !2 :G-7;01E0LL!K9HNJP79<%CHPI9:%A@PNJLCA*JKNIKLIOMOG99MM B .0-  M*>"$ - KJML( KLB&(1 2P,OCG!#>'COA20*C=LKO)6I!#; BO L ,OCK%'>'COA24-GN%9!  >I!#; FC9,OCC!COA2*)#C%;G=% <FO&,OCDCOA2+) ' B$6I4 4=LAF?NLNON LMMKNKGE?NLN!5/'?&,/%.=0.8 7JN6&O)N-O B9&&,(< MN7 O(= 3 *'@K:*-0.-095AK;(OH>%"GJ/!MNHOK#$++/*+, !"9/; =@C<-D?@>"C$D:?.I3 92N,ONO&% 2"=G"" ":=0"""" 1 31@KJJ=% B2">#.?1 7.BJKML*KJLMJJ9 B( C$"=#.?3 GINO) B( C$"=#.:(3 ?*K!NK8NHOPOIPMPHOILOOO$ 81-%??1 KOONPB * "P(-%?-1 2LJ * "L(#(<1 O4 O,L-KLPM B)&KN"KLNMNO&'4OLNO4N!3 B7=HLPLIMKJM; B)&N!3 F;<MMNLKMPL MLP<K=PPM B)&L!3 A>HL%LLKL4ONNP'LLGNPN6 B)&6'5C:(!3 B7M-MPPOP8 B)&'GIJ#($!3 C8LKL:LMJOPN< 2"< >3 53IFNO1K3ZG# @"3 77K'MON5<9P7GN;LKB/-ONL/OKB,*NIJJJHNNB0.O*PN;PNB20@ H0<N'H+(D$H/%<H845$H8:FH8<3(H3 F$4P><H! 6#6= *JLL @"''3 &%7MA$MI$6 #&G, 5=#< @ ,< (<MNN@LN+M0N@ 2, $(,& "$!>1 K)?IMHNLN+M<JJLP-EI 2, %(,& %(,& "4$;"# #1 0%*LLM22,NI B-OPMOMJ 2"=G"" ":=0"""" 1 B5 IVJ@ @"B@1 -))  J +(79Å›†œ  �¡©äšåˆéœÓ‚×ìüÛÿÝŸßëÎîòö²÷$µ§íò­Ñd�žfœçÖMk/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/meta/reverse_suffix.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ák/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/meta/reverse_suffix.rsÁ Q{³¨�Š«7y+X˜µ¿¿ç«A«AŽ6EPDM.NCK.P>F@%NE>> JOOC"= NNOPIJ'# $'07HC% 'I #,,/(J%!& !0 &H $$  @ %48! , 90#L 2 K3AP# 444 < ?44/1 :A -1. #4 '3M3/J I3E>  A:B 6C@D >?;iË,þ ‚ZzÇùGeš†4c/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/meta/stopat.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ác/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/meta/stopat.rsÁ 㾓ÅBÕN-ƒaðMn6½ß¹E¹EÔNNKPNPPMNOP @NLNLOPOOO%JKLKPMMOL&L%H'88(3 9')99*.-6F102B-/*/OOPNO8 2*#+8: :4 @9*.&*&OE%2MNNN / <580!),*:>09 -*:NJ:5  5#+*!),< A>&9 -L ANJ:+  Ãr’Ǽ�Þ‰0*ž²e/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/meta/strategy.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áe/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/meta/strategy.rsÁ x{zÔѶp8à[¤�@G_¤¼¤¼Ô (-' N#1/ )2.LK?OOPML6KOOB?)(%.&%MF+"!-NM3OLKMOOOO NN KOOEG >P 33EOOAH>5 NPF >PLPK ILH8H5 1=* N @LNNKJMIM.4% 24% 14% . *JKP8D*ON#PJIMP*LKO.!%3KM" HIMLM% NKN: LMHIOOG4 FK+. NN, NMMOP-@590 D$N 6=>>=<>B KFPMP"%1LEEKNLPMGLN9JNNDN>J NMNNG**=9)&B3B53= 1'& 9O 0<< 679P9G,9+,/1 // 9"!1, -   $,HB,0'(PLPMN7GJOOP);MPPPO$IHLKOLMLPPNH7OOMOK (A,/08*J>-*L-M, 99/K&9K9 * PMOMH@AJH@?!JI'G OKNG33+7*9)9&B0620= 9/*0,*'=&!D&G*&9NJB6P(>59P;>5- 9NL/P1C:9PDC:2 9G/>!1&C79>!D&C7/ 9+OPPPA9G0+& ONNKB OOLMJM+0C >$+!>FF A?B585 &7;0 9"!/A!N"!>9A!>#!> ; #F:1B> OMLMMON52B: LJF;B9 %9%5GIN3;5F!*?F!== ?KPNLO0$**9)9&!9/&'KN& &!9N03 @G6I 908 @G;NGKLN1@ 9G05 @G8! 9+0@ @GCFPP3.)".@D 9"!MOM@BG6@4 N+M@L5 MMIMMNO> JLONM&2@= LJF;@9 >@D 8E;DB"-DE" 7DE-" @?( ?@E+ (91)I$N!)4O%(A& 955L!*?L!=; 9$15EI"=?EI"P; "*(9)9&!9/&'&;9N03 92F/-M6$%E;C# P>"&G59,< 908 92K4-M;$OHOKMNMJ8%E;C# PC"&G56 9G05 92K8-M8! 9+0@ >G0+& H2OD-KK%, 85 '&><9"!B%F6?4 IMPOM?L5 NIKNOPO3 JLONM&2?= LJF;?9 >?D'AD. I*G'& 1! HK H#"2/(0$"G7" H5); ;,"D-,> P9-)%#N$0QS<OL!)6ONKLNF!%E;K%0M$30@(A, 9#<5K!1?K!D: 9$10DI"=:DI"+&: !*'9)9&269/&-' &!+)&9N03 32E/-D6& 908 32J4-I;G 9G05 32J8-I8! 9+0@ >G0+& ;2ND-MK% 85 &7<9"!BL ON&OPM5F1#4-2+M8;N (- 34,CO:52#@=845)#8  358:<(#4  5* 3( 7.2 .+09C: 1, 86  C2@ C2. :C. =H. D26  C33: :. 91  ;4  1? CN < &  ;4 ;4  A9C E2 ;?BJA>ECN :5597; 39 6@ G: :1  56  10 99 94  :2 4/ J: J74 1/. 9A >E E= 89:  5F :DGF(!5  BGBIK A@? 91  46  01 84  93 3< 5, 00 BH >= =C·<]ÖTc�Ör*mâ±V”ye/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/meta/wrappers.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áe/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/meta/wrappers.rsÁ -Ž�àN¦ ·D z1XEaÊ×Ê׸ O(NKNHLOM8HLKNOP9MN/ 9";? "%( &67900 ,28,&)( !9!;9 !+>9-!!L6*7<18C8H 2NC(9-'JNINOOK KO&B K?@ ,E/  @* .N!L3--,H*7 /  9-* LO#L / L9 9 -+* LO#O / L9 9** & / L9 +@/6* * / ( C*)( 1* < /  & ,!82@/8 9L'/<  18!2-N( .LLKOJMLM&?JJ83 ( L9 1!!&# (KL' ( L9 =(*#  (  9# H (  7#)2 1# < (  * " 49I'+185+ & *OM6HC,%!LJLO,P7<(NPMN4)9*% H!OK07$ +  91& ; + L9 9'5& 'I + L9 9.<& (E + L9 9'5& 'J + L9 9/1& (;' + L9 1!&& '>' + L9 1& N + L9 >,I>>&9(''1('# -MK+8,!0@-0K2445'1% H!.+ (  9/(1# 7>3 ( L9 &;(1# % ( # G# O ( # >#)2 1# < (  8)F89P'+18$=+$& *OM9PC/%!ONP PMKNJL7,!#60@-04-4'*% H!>#( +  9/1& ;' + L9 1& " + L9 ’ ·À31ŒÉ£ˆÈ‚µn/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/backtrack.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Án/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/backtrack.rsÁ €†Þ<7-ÿ©ny† 0†¨Ç¨ÇôNNKMMM# 3 CGANKMPNPI)O)EC?H0!$%2FKLKMNHMLM( :(% M/D)+3)- 3 K :() M/D)+3?;3 C =PMNKO%JGNJOLPLIM BJLNA31P/M223 C0 H841K2:1MLL:5L )NMNONBKN MLKMM>+37''53=79#5G8B/"P''1 =O2$>&27!<PP%2CDKB5 <9OK!-& BAL'K!K) O IMONPNLN#$HMKKNKKI<MPKN9FCE.'L%>O3'J<=!/'EONPL!OC'H;;;===!/ O7M$ : ;+-F 3 J5N= : G+L???AAA%3 $2;JL A J@....@K9O3<03 N:D : 6+7GJ3 F1.H J5+CF3 E0.CNJII+L0 B /;+ =??????%3 ?E*H BB /7;+O93;03 "+EJF.*L@N5FIJ80;NHM/F B: 33,,8 MND O,9 3 3@NN J5)3 M J6)3 O JQ)3 )9*3$KP0NON5 B: =8+4&0=NMI>JNLNA31P/M223 .OP*E>HNMDKJPN0LM:K J;+>:3 0LJ : 1+N3 JN# A /1+M3 1$1OPBD.LM:K : 8+-J3 --"/*P)"))$')$C 13/L% 6% 8% 7MKPLM:K : *3 O?"??@3 1"4MOM : 8+(8-""#$ 3 :&K45N<ONMOOO* : E+( ? PD  3 >*+49MKPL7LM:K+I1 :/ 1 O!HPL3F0O'3)>703 5L@ B: %&/+%A-+%@0MN$@*% 54-+(($&#A7 E77A"1< ,1A HI,>FCP ( ;+>GM!0! P#M,>FC*6, ?.AGQ#4%# LOLI"OPPK EMAJKKN 3CJ$BK&3;O M/F B: 33,,8 MND O,9 3 7 @K:*9*N/NMKNLL#!"/CLL: I&NKKKPMFLNHMN3LKKNNNJLNNNN)A<L*1AMJ<==5'< 4 K2!HJO@!"L--#&M)NP'D/O$5 PP-*K":($6" H O $NLP,NI)')/0,/!=@D#MLMJIGNN!JM"O?O*KNH:LH>7ON#7MIO& $ 9KMBNN)GPPM4NKJ9L/LP!##PEB! -!'9JNGM0"JN 8OINLKM2B+LO6/0K7;8=3.IL@0KKLL#&B:M?$%ILLLP,#&B9(#M?$%5/@6<46G11)DP(2"3 H# B$2 L*KPD1? 00K.0&"I:46 79 C?+,/-(&)&"I:46 79 C?+,/-(&)J%%NF>:IJ-+"A#ANANANANAN3  '-DK, N3B, PJJLLK9@P5N/+ M'JKFMLKNAOMLPI)JNNMMIF'-DK, K!NKNP:@"HKOM?P:HCA4:JO2E1K4!"4JONJMN<MPN("4"/4!&?25%A<%A:8& 5& N@NBNOJMKLMPNI?NLO)LMJGOPO#,@O%KKP27M"/BP (PGCM9?N5,LJ7"! 4L4NMKJ5*I;/-D  NM>LMKNNM ,7,7°°5|8MÀ~�ͬ@:H†m/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/compiler.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ám/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/compiler.rsÁ Îl�+…ˆDŠMÉ%7JW–æ©æ©À+'& #=  #*8!++'%B;KNG$5MNN<?AMNPPOLMNMNIJNKMKNKPPIPLPPFK*$N& 3 #O-+2BIL2BM#;2B2B2B2,3 1 IKMONNKP*@NP!%O% $1 -$5"4@ 3 4" ONO.E7MIJMMO-+L B0D&"D *3 F+ NNOOPLNN-HKPJ7LOD BAL#1)5%4P'H3 3! 8@LP!$MJK? - #I +163 H1% BMPHM6NKLLJMJ - #I +163 5 -+ /I +6;3 O4 HNJP4P 3% ,,#C&+>(1 ?- 3 >% ?P;:, C%"P(&M8,1'%PL)+J8:54DN4. 3   MLL:(1F.FPO .PN;9OC IM:HKNP>OO!<=CJMPOP@A"NJM80PP.$K$L2)A*'388A BOMOMMC K@H-+-3703 D$IN( K@B -+-3703 &#'30 (N PLPO3 KJ@....@K-+-3703 J*M'N( KJ:42:2222 @P-+-3703 0#C 0@H*3 C5 <9OMO @BGO*3 -( GKN7P,D %9 < +DJ?@OMMF21+AC M.E >+8425F<>N-A4%G@E1;NK9 LN1K+H HP;%+ L(). '8PLLPKN<"L?E .## #/I% 5HO@LLPO!J =&*% '&% '%)%*&$0, .GM5LOK1+1<8N7I :#0)%'K$+#FGMP P&LI+1 KKO !!&!&!&! KO* !!&!&!&! G''$!)**0'% &<MLGLI+JHK8N(%-.42EKKLNLDB*#!)-/'!)+3*&<*$!).0B7&$!)1*,@ MLI+O&',#*5<+/9PNNOO5L+%@$" @3MPP1NQPL!+NP0)D"M9(IHDD&+LOK>NHMLJOOPNI$=(P'5=C I"&MMN9?E$H0 OMKOOPNNO KNOPN= NOB L PONOM H B" ILI-MJDEJ,!+LKL17')!F'-.#+'1>""H4*/) 7JN#-)1-515A9E?;C?GCKG '/CKIN=IM#O./LIM#;$/M:#/DKPLNL2?2);9.M9! !'5H$ @94A<'(5 'P8-9.#"JK@ LHKKKNKLLMOPC+VE& P! ""0+A>$)4H )+7A,(0H$7.( $'4A 915%(=E$ 2O LAC.04:D3(?7/)#  3&%9/%$#"0A#;5#<&4!92#8@*$+% P&:2 %-J %"J#$!  :"JC  9"J#$!&  C"#:#$!?&  @"#:?(!  8 J"= #M /"9/D!F &3 )I  !0C C((!!? )!!?  #? $?  $O %< &O  $2 &!!? #> #> NOPB $"9##/,%"!!"!!"!!  &"9/%!!# 8:O@@PP) 9E#1'M;8 ;I#1'M; ".9#!#!#!# &. %".>#!!!# &. !".:M &.ùž$Üè³ôω ÝI;ŒÃúôt§†„,ôq/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/literal_trie.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áq/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/literal_trie.rsÁ êãÎ9pž{”©‰í¨º½ýÕ©«©«� G3:NLJ PCLMOMOLP ONKKMNMNOO$IPJOMNP?MJ?MNLN*5OIO6MPPLHDLON7 NPJM!O-%7A-%6,JL$K&,P4 'KMM'7?)3IC4N6D3< <O+G KMKLPKOONL5( =439'%#9'%PNN"-#:ML1&8@F0(N3LK>#..IIMB5 ;&ML/D  <NK912OO?M$B("($1073 (G&BA GMOKNOPJ78!NLA4JMLMDLO('JPA,),,(EHKMPNKHLF$KLGLN)CPPLL"! O'MENOOOD 504K0 $LMP.-(/ <./#L,6"G6.5%%"&% OOL#3&,"5:8 2 4'G7!    /&!#))"#*' # /$%%))##"+P( #Þ'ÓUWÀÊÅ'¡.©h/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/nfa.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áh/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/nfa.rsÁ —>Ç�É€8+·Èw˜÷çÿÛ”Û”²K" % 5/,M GPJ@H,INKO'NJJ!.O P2,C):CHKN'KMHONPL(KKJNMIPONNMKMONPLKOFLONJPMLKPPNPNLP@)')/5,/*F2>'"F'P=HH F"L-03 3 13OMOP B0,/3M3 '7JKM;L-L =?LPO%G#GP3 ->?JMPO A)$$KP"$PPMNO( H2"J%3 (IMMOMJLMKKM/ @5!9K,#=1#8O4&AKOLO$"7.'2N+71I623 59BNJP4EBG'P 3% ,,#C&+>(1 ?- 3 1MLNGLM&PNNLPO D""0MJ;;J*5>;3 ,IPM:OLMKJM<O D""7MJOP*9OOP;9;**5*'< %,74P NM5<0G+9K3*"ED') (( ;3! 9MIL!##.25)3+6=@/NNOO*J ,&*C NP=OOOOK=(% ?C2# ?(B95K 4(3J 4 NNHOMJOJIJNMO1 O88POOLKL1EDHNOOM! KGKL. NK/$JO"LLJ:K&NO,8NJO>IJKOK99PKK!KILOJMPLKO O7 % LML$ 0@ 3%!)+$ %%'O &3 '$#","(- B&$!($" FAD1= MKM1-4/J2,H4(F53(C&&I& ?.!+3,%$HH+,%%.-@ @MLMJ'<(DHK=K=MHKP) >DN@>+ -%  M) H NP N L$".+1// ?NMM IP.'M%DJJ =K=MJMI >DJD>8# J!P2-'0 CEI%7.%#*M5,/-6F%>@BKP?CK3/!?,5$I%" ! 03M'MMLN0(.* 7KM<MM ,7,7 E+-0@6. -../// D+-0@6. *++,,,†‡Æéö°žc],· ÇÓ™¨æk/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/pikevm.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ák/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/pikevm.rsÁ üò�?ˆ™’»×ë,Ã÷Ã÷·JFE/ 3 CL JLPN LL7 @N /GJGHNN!J6O6I8!#$3)NKM8GMKJMPNHMK*=& FKLKMNHMLM( +(% M#8)+3M3 K +() M#8)+3?63 C ?0<H84MLL::5 JHKONBHOM+KMM/37''5/979#5;8A/"D''1 1OG$2&&7!0PP%KC8HB5 <9OM-& BAL'MK) JOM6-ON!MMK$ NOLLNI'KJMLJL"OLJHLLJO8L>@''F89!/O+M$ D/+)B 3 >)N= D;+H;;;===%3 $&/MKJ@ KJ@....@K-O3703 B.8 D*+-IL3 :1"< ;)+?B3 90"7N>II+L0 L#;+ 9;;;;;;%3 IE*H 3 #7;+O93603 "L4OFIO'0;.ELM"*N0M#P BD'',(4 MN8 O%(5 3 3JOH ;))3 K ;*)3 M ;E)3 )-*3$NHKKNJNK  ;/+953 0LJ D%+I3 JN# K#1+H3 -1<PPLILLP+PMKHK% D,+-ELOM(+-@3 )"/*E)'? 13/A683MKP CFO:"??@3 -0MO D,+(L""#$ 3 6#K42N<OJOOO* C9+($-PD" 3 :'+46MKPN%+N +/ JO!HPL3A0O'3)>203 5L@ BK0O$JKNJ3H0PMKH6203  EMKPPLJL5PKP;HFPPKFO. BO% +*IL!#C3PN6'A?3 +PB' GHNL7 KNJPC B' /+HKC;/ *DP67#ELMJ+P>!7 A1. /KJJLGHNLMKINLN B+* K #D$+* -NGFD!$ MIMKMKFHOMNK$"MC%NB1JOD4NMKNKO)<=';NON=LLLKMIONK KLIKKJKLMPINMOLONPONNCIOKN#,6MJOIOHK&LPNP:OO4NNOE6) . OJIKJJ!ONLPM KPMMK  7> -FD$ I02%04,%OJMON':) .KEK&NPP9(!!+8B M"(>K KJ9(!!!8PB O""ONMLML :,K PPDN$NKL9 ()!-%!"(-09@J11*C+O@J11*A)N@J11*A= NNKLKMAKG9(0!#& 1.I,12A LGGILIJMOPPM<NNLM9 (0!LMNKL7NG')&*'+P0MN$@*  54(+&76"($&#:7 ?>7FKNNOPPNJLMO!NHK-K%LK#5+F(; JP,2:CH%8*GJK1+! P%L ,2:CL)<-GNK1+!  I NLPFIO>MKML# 'CLLG')) GM#P BD'',(4 MN8 O(5 3 +@K:* 8''N/NMKNLL;33N PLOPIMNNKOLL&PMJM*KM>*($* P''6#K<&AIM;9LGOJOJ<LKOLNMNPPN%%NLM!JOM ' JJMJB I3%= MMLDMIJO%LM2: D'I(1D?C(L%A5D&'* !6H< 2N 7KPD-A9 N?MPJJNLNL0OO7 KJOK&?" 7!C.$!$ KK UI<"2(?L-PM:K7J7 LKMD ;,NMNP %,: -$/';PLJNCP>K OD?JJK;L"MMMJLM+MKMLMILKPOL!!KLL=,767600==77F0""""""KK#'!H- 3O:8 113M=%-$=$=$=$=#M#M$M$M#M#M N)AD709AD52I38*% ?;H7 ?'&!?0$")+" ) <6. 3?!!#!!; 55 8 113<<HHHHHHHHHHHH!7 !7 !7 !7 !7 !7 !7 !7 !7 !7 !7 !7 !7 !7 LDºD³¢ 5òõiä)óŸe/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/alphabet.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áe/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/alphabet.rsÁ Ìù4¬?ç§Ð~²!p¥‚�¾�¾óI LK(MNKONPMJOLMJKPO:LIKFNNIPLPP+4KLHNKNNNCKG/FOK F!77I% KMO  6NOLLMM."!3MPKCI8+K( LI8'(& OI)%7 PJ;%/4 PM-2K" GN(D!G@2 ;OPMMOK(7O,#&96 6/#O$L#)0 ONPO :>0=: HP@%:6I JPL*)* L "! A1 61+6("M590 O' L?KO *NL.)EMMPPB%N(MKN@)#F..N;MLLOPON'M- H'*EJ $3 P9 H'*NJ $3 ;(33K# 1%=9& 8 # INOMHNOOHF H'*KI(3 C<KP1JO""(K!5(8&;A&19! -K9K*)7%97" GDK*5)==0 0/- DNMILJNMN'(- ;=K#.) 9<- %- I#$%!3172*&;(@,?39 6NL?MOM JLKIOKNPLO) #N$'HC=%# K60( MPG70#$7+ P6HH/&') M-!6%D0!9B6!:LF083(M?-69,IOP<6 JLN;NPP:) * F 7!7!NB A1)#G&7  $('3&  )--8&+!E$' %  -#*'''.***.))-*'''''''') -! < -###*/J(42JB JEJ  J(12J4J)46K4 11M4K4 ,/J)46K4 -###*D #E!F!J!NH%1-+#H #M-#M=#M=#M-#M #HN#M@#«t´í&_c¼�ÆQú=e/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/captures.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áe/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/captures.rsÁ rá cV¾SŽ4rG å÷©Z‰™‰™÷2NKPL(MPMLF #MOJNJGGPP7KGIIPMLKDONMI+NGAP%K(O'XMO OLNPOP#?BK6;;</&J>?QK6EEF/NOPK#1JM>MLJO&MHMNIILN"OMOMK!OPC%MMP&MNJK +& L +I6"BI;MN3 4+EL6MNML+ +& L +M6"BP;;<3 8JOFEOMNN> +& =+K5">D,;">D,3 6:MFHL> +& *+K5"3 %EMMIFHP9 +& =+K3>IO,3 1KD8GOD D=O3B3 />OP*PLDILGINIJJMJJJPM BJFOAC?@H-:.?3 <#OO;OK1 ;7:OO*O,DILGINL BJFOACMMH<3 BHOJ.PM&@ BCGK OB"?!%$%& 3 MON BCGK O<"?!%$% 3 4HA2NKCO0MOB B;GK O<)3 ') )HMNOHL%NIH H%& )+2+++++23+2 ?95#3 -FN)M*K- H%FF +-@+?1@;0?1@;3 %G FN1M*K- H%FF +-@+?1%B80?1%B83 $9$(/F FN.M*K- H%FF +-A+@1?A0@1?A3 F FN6M*K- H%FF +-A+@1A>0@1A>3 #9$(8F DNPO#FO.KM ;D+-?1"<("!>0("3 (#1G-G %DNPI#FO.KM ;D+-@1"B)#" >6)#3 .%1G-G %OMK%NL&OMMKKPO!KAL B;FOA"(GL  P#(G  3 , 2KN II?P@ B;FOA"+(GL  J #,(GL  3 <NOLLOKFOAOMM)O +8 % O3>KN<!! ,3 4PJ@B@%G6)&K M5G00O*-- %D=4566 AJLI%=013/4:BGMM N MOKN J +LNHH4NEJHLOPLOOINNOKCNFLLKOIKPI =NFL$F'LO NKKLKE!K GL$!3' -':777729%IB;)CC/4KM-L$!3' BAAAADACCCCCCMLO99/!+ILNN'MKHIIJ%KKMFLL@BNAKMJ(FK 7(%7+ 1+)3 %K 7'+(3 $M  7N %)9LJMP2CL%2?%%%3 HNP #+.!## POB4>B'I(K&-IL;GO9GFH )022,+K*M 7'+-(3 "A8NI+FLMJOMM B=E#, ';KO,;J::3 JA9NL@OP8LMJL! B=E#*$ '3:3333:D33 PG3N"L.KEL =?LPO%G#GP3 O %/' OOCL9 =# +2+++ 94#3 L; A"JD=3 77 HM.P/LK, =/;; EP 3 "MO DMKLK, =/:: 3 N0 OMKE%OK26= BHMK 0C7&7'73 ):=L7 N+LED%5D"J>MPON+098-GMIPOI(*&CFHBG0AC )8>C"F6B!FEKJ9E0K DF;=EMJL$D7BN!A8; KE*@(:@KJ M%NL3H" MMND6H-MOJJJJ9EOLBEHK*-I<NNOE@NHGMMHJ0M BMOJ >OEF E2* ,E777<< -K)-L4B,'1J*'1&302!4-4)#$ 'y‡¦‹Õ�kÅXDz°3 ah/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/interpolate.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áh/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/interpolate.rsÁ úbS´Ï3½Ø¡®žÆSÈn¶õ†õ†À>OLMNHA OLGMO>OMNHNINKOPO7"NOL'!PMJ7MMON!F+!%  $0:$511 #I- 0C&#1 3."7$ O JIEMMON!F+/  *1:$*:1 #>- 08& 1 3."7$ (M>B-1"-%%$(K0AONO@"* 0IMOP5-*%' PJ>M653PLL;*%' L(@ 0+'B 5K /B 02**,700/"## .101/113335597!,%0%&:1 7!,$09&:1 (S;2:1          &  &  &  &  &  & JML$ & ¢a¬aÓaÞa‡b’b¹bÄbíbùb¡c­cÖcÙcäcçc}Üa$[$åÉxdÔ´a/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/lazy.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áa/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/lazy.rsÁ ¡'fÃÑs‚.„† Þó“ó“Í=NF@KJP,PKJLNLMJL"#NKL&WLLFP095NK!0&#<HMK;LN0*8>;  -*LKKLNHM#NOQN G$KOP1MN&L1GEP;=$ 'IJM').(9IKL35'"#'P<5OJ% NO*'9PN# B?H %, MP5   ,,8E!KL ###4NMEONN%#!$KOP1GIK!EJ@;718 +HLO<)MMO5JNIP5[JN,:%%&'OOKNB(LNLLFNO!*?@88>NO!LJ).MJ)L-! NN'GO B E?#E/- %:LD< NKPMM#"MMMB  !!6< $$&)NGKPOGLGC (8)!D(JI% júX'7´„Ÿéãɯ²´Äa/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/look.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áa/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/look.rsÁ •ÑïÓ1~)‰'œ&üÊIm®”ø”øò<+ELG:OOIKJOLL5,IPN03MM4L5INOOJOKHJLNP-PHNO0OI$NOO$OIPLGL9NGL; POPLKPLOP JIPKP4"IJ5 OH4$ML+" O;KL*&&**..0<4@88<<@@DD MJNK(NJM8;9=;?=?EAGDBFDHFJH EN!NP) " $"$*)/)'-+/-1/ AHP/NFAMJPD7 5?MN$.&H J297$O 0(ML,GHM5?NLN1%*.,NP5/CNH71GKN)CP51)65397N3/'43175P'"PP415I!/#PP416H!/#O72O5&G41N2#N81N6'J*0GM*0+?PKP#5H46G>BE*0 $G% ". B3 )! O0J/**O P+/!((?"':$-;)/B"3EPMH?IKJ JFPJD.NMPMLIJMKI>L00MPMLIJMKI>9"84=9A=ANN)CLH(B&@*<(:,G*E P(MPMLIJMKI>3B9&NKM'. %, )1 '/ +3 )1 +3 1: -> 3E 09 .7 2D 0B 4> 2< 6I 4G O7"7*-A1--$ &#!%#'%),MMLK@JMO<2/O5>%!"!J!L(OHIO OD>BPD>?H D>DKOD>BEJ D>F$)*DH D>D"%&;J D>FJE"P D>M*L D>@C82<;&L&D>@C8#2LPKOIONPPO/ MNHPLP NLOLPLPH MK+!:9A-59A&O D>LJE#M D>JJE#K&D>@C8"2<;'I&D>@C8 2<;'M&D>%JK&D>OEO&D>@C8'2MMK.!:9AM&D>@C8%2MKK--59A"KNIMOJ) 36%F=77KED, GG5L?N;GMPJMHIEPMMJLCK"PLPOMPGONILL-LO&N.SSW NNOLLLLO== '#=K99I*=$1"9$%B!$%*& D9907 *=$1"9%B!$%*& DG '11K99E%J8N 4$%-+-%3& 899E%JCNLFE8N 4%-+-%3& 8N 'K991*3 996*3 9-8D4. OKO '<K991*3 996*3 9,E? 0),$&&#IJB/K4994994 4M  #")++*,+. ! )+,,-+-.. # )+*,-+. !)+,-.+-.. >%&+/)**+,,?--.//A11**,,--;//00...:2222222 #$+/)**+,,M8../00N@22**,,--;./00...:2222222 >,,+/)++,--?../00A22*)++,,;..//P5...KO*222222RO+1 **+/)++,--M8--.//N@11*)++,,;/.//---:1111111 ))+/)*+,,-M8../00N@22**,,--;.//00...:2222222 ''+/)+*+-,M8../00N@22**,,--;/./00...:2222222 >+++/)*+,,-?-.//0A12**,,--;///00...:2222222 >))+/)+*+-,?.-.0/A21**,,--;///00...:2222222 .-+/)*+,,-M8--.//N@11*),+,,;././/---:1111111 ,++/)+*+-,M8--.//N@11*),+,,;/..//---:1111111 >0/+/)*+,,-?-.//0A12*),+,,;//.//...:2222221 >.-+/)+*+-,?.-.0/A21*),+,,;//.//...:2222221 (+)-+17/5#*#+!(!)%,%-#*#+'.'/%,%-)0)1/6/7'.'/-4-5,3,4*1*2.5.6,3,40708.5.6292:0708 $+#,N+:+B+E+ < ;Aœ¥VÔVÒWýW¬XÙXŠY¹Yñ¤Õ‹€ŒóŽ �Í�ü�«�›‘Ÿ‘Ì‘БÁ”ð” •Еÿ•­–Û–Ä—È—ö—ú—¨˜¬˜Ú˜Þ˜Œ™�™¾™™ð™ô™ùš¤›ÞžŒŸºŸêŸš Ø¡Ü¡Š¢Ž¢þ¤­¥Ý¥�¦¼¦ê¦˜§�¨…¨³¨·¨å¨é¨—©›©É©Í©û©ÿ©­ª±ª…¬°¬©¯ׯ…°µ°å°Ö±Ú±ˆ²Œ²÷´¥µÔµƒ¶··å·“¸†ºŠº¸º¼ºêºîºœ» »λÒ»€¼„¼´¼¬½ý½�¾“¿¾¿ü©ÃÖÃ…Ä´ÄñÅõŢƦƒÉÀÉïÉžÊÌÊùʦˎ̒̿ÌÃÌðÌô̡ͥÍÒÍÖ̓·δθÎÈÏóϰÓÞӌԼÔìÔªÖ®ÖÜÖàÖÐÙ€Ú®ÚÞÚŽÛ½ÛëÛ™Ü‚Ý†Ý´Ý¸ÝæÝêݘޜÞÊÞÎÞüހ߲߮߾àéà¥äÓä�å±åáåŸç£çÑçÕçÆêõê£ëÓëƒì²ìàìŽí÷íûí©î­îÛîßî�ï‘ï¿ïÃïñïõï£ð§ðùñ¤òšõÈõöõ¥öÕöÅ÷É÷÷÷û÷ìúœûÊûúûªüÙü‡ýµýžþ¢þÐþÔþ‚ÿ†ÿ´ÿ¸ÿæÿêÿ˜€œ€Ê€΀œ‚Ç‚½…ê…—†džö†ç‡ë‡˜ˆœˆ�‹½‹ë‹›ŒËŒúŒ¨�Ö�¿ŽÃŽñŽõŽ£�§�Õ�Ù�‡�‹�¹�½�ë�ï�ˆ’³’–É–ø–§—ä˜è˜•™™™…œµœâœ‘�À�î�›žÈž°Ÿ´ŸáŸåŸ’ – àÇ ô ø ¥¡©¡Ö¡Ú¡ï¢š£Õ¦‚§¯§Þ§�¨Ê©Ωû©ÿ©ì¬›­È­÷­¦®Ô®�¯®¯–°š°ǰ˰ø°ü°©±­±Ú±Þ±‹²�²¼²À²›´Æ´¼·ê·˜¸Ǹ÷¸ç¹ë¹™º�ºнº½ç½–¾žô¾¢¿п¹À½ÀëÀïÀ�Á¡ÁÏÁÓÁ�…³·ÂäÂè¿ÄêÄàÇ�ȺÈêșɊʎʻʿʬÍÜ͉θÎçΖÏÄÏòÏÛÐßÐ�ёѿÑÃÑñÑõÑ£Ò§ÒÕÒÙÒ†ÓŠÓ„÷ç÷ë÷ñ÷ô÷÷÷ú÷ý÷€øi䜊š+ ‘>®Zð¨"a/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/pool.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áa/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/pool.rsÁ "7ÀI£>œ!XUD‘#öÓ¾Ó¾õ ILPOMMMKN;?>>?N?O0MOKM$KGLPNPOLLNLKMOPOIPKA<=ALEKPPHINJMLNKONIKNNNM>LKM OOOHLLOCO0NL,PNMN4#LKL&WIFM5'(;&70KII!*?I!PNMOMOJHIE@ I!MOJ@J )@OD*+ %  )DKL2LHM+JLJN/ ?G6KK(M6<OO/,'KN(DG; ,/,*7M#7KM )NLL!'POMNJKHN )P>KPLPNNOKNLOPNLNNP%LNEHNNOOMLOLJKM1GJKGOKNLN,K -GL-MLILIEHJIKE3#+)32<./;7C@MH?FIA H@ C DKELH"F//G+3)@'A;(I:DF<@NG2EP#-<-I+G ?5?ONOP/ %. GKONOP/ )2 A5CJKKLG %0 CJJ0"$0-"BP=HMP@<B NHNN=@,(HPMIPLKJNP,+HKG)+NJ!ID C"+ 4DOMNN"'NP+J&&271 2.P :F OPBO-K%)?:)"POML6LPB'IOL>%'<2B <NJA1%/JA6NKN>NM?'3)M INP7A(%&H G-KNA>4'6.HKM0N26LNN+ %JJ4>!2%>IO>>2%4,FIM0J04JNL) %JHMLN>%03@JHMLN>%03@MMKH>.5,MMKH>.5,NNKH>/6.N;N"5.HN;N"5.HO<0JNM+"$$> O!>'BJ!>'BJ!>'"D"BOK=*=N EP*EP*FL,!+4+4-5+4+4-5%  !>:8 ")< %@ 3@ ''(((((((ÿ€5Ÿ8}›÷Âß8Ál.ghn/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/determinize/state.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Án/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/determinize/state.rsÁ 6ôà 7̵žøáÐðÑ®qù�ù�‹M MMMMNJL<KPPPLKIBIONOKJHLMOL9JHNLO8LHNJOMBNNIMMPIE7KMJMOONNMHNPOKO<LN-"&K PG7$IPPN5, "G<O $F,0#0#0 0 . D)G(!M.G*1!4KLJ9.O/)B@$->J)00GJO:3K0+0+0)!-+D2!,EKPM3$ ,GFO-&580 !-+!-+> @-!, ENN1PNPNONOMLN LNNK"OMJJOKI6EPKPILKKGFPO;OLML!!LNKG=(!PPMP=LMKP%!NLN/%!PPN0LO%)N9JKL+%)EH#,' HNB9%7KA M6< &;DF KOL:%  ?!,-KKH F@=!1 $IPH6 N-,2 OFAIMM8-% J+A)G):19933C.IONI8%)L6!FNMJH(JHJ:%APP%P% N9% G,K<N@K<L+8K39NONPO NHF,(%J.H(KFKJM(%H% )GPIK,O, '/G0M1G:MH/G2%@! :I.#JI.%) MLML-I2-KI.NP-9 4 2*C)  M<.L )""7 M<0A --"; < !<.0A -& )"'@'<1 4"'2+ 4"'2+ =;"$ C;"$ éI\{UÖÇ-?ŽéĆxc/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/memchr.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ác/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/memchr.rsÁ /Ð�Ò¼3í6T¶Š9X¥´´]NLD+9E%9N*9.9F&9O+9/09E/9N:9E9F09O;9Ft�²WÜåyˆ Z¼*d°c/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/search.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ác/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/search.rsÁ ëÕw²ûëíª Ô‹ÒKߜŜÅÍGNO %CHOLJPN?9N7F/;6LNIHKJK9H<G-H5I?OG)I=PPOL*AJ>DJANLLJO-N 'H9CO$KMNML(BHRMR@*:$ &OMNCAI11IM5KPL- B+ 2*+-C!9*2,IIK 12BKI.52,3 NLOOLMOLOL,A ;PMN2HJGJ&P8 #*-7- K *BMOO,;ONLKIMMNIMLMNMOLMO+LJNN(JAIJ +$ &OL2M%,%OM2PLB%OM2HM,%OL2MO2303 =! 8PNNNJO%MLMMMMK0%K K-+-B,2BDC;2B3 8 4ICA"M5 #.-- 9 ,;;! DJPMNJGJ&O8 #.- - CLIJP0&M># ,>&7 ,LL/OK #.-- 0:JJ/MK #.-- ,8)G  :.8&4B 5IG  #.("' 0H #*1 )2GIK7 #*&5& #0EM) #*$5$ !7OLA +*A %BOMA #*- . @K :.8&4B -F #*( )JO$ #.##" $4O;NJ #',--,- <3*G0 @'//>,;FKILKLOOO6,1/ &*L%)P!,JK4GP2D!G2',*8!&+#+4#*3(1;((9=PMM:HOPP3!M!EA&ELM>A4INK)#KL$<L:JIO8L:3# 9GA"&J. 04/"! F&? EGA"HMGJ. #'/"! C34IKP),A#*?!+C5)!;L%*P!MI9%1##'!!B%':MONIKOMKJLLHJ&IM-PNOML,0*8 D =/ P5<O=POE$7BO=PO$/// +   NJJN;;L5?7 ! N%NN$OONMM4$&E!KMP8&FM/=DOE#44G?0' BPA <+.9NLPN> 463>NLPN> ,PPO9IN  LJMMJH/;H0IKPMKP=HHLM>'+! '(2G?8GH592KHJDIJL. 92M 9I/-N0EJ&E ONPN* 3..C (>NN 323&A 11 <KE;LOPOP(LHMK;LLKJ&'! 'H//MOK NNKNMOHPMMEJOPN6P6'@*'C81/PJN.%LLON.=*'/) H* /6% PMJILLMLHLJNLP= IMKKPNILOOPP NJJMIIO PNKMPOLOh+*PL0'A36J"5" 5 '  :,MP;='9?L>=)2;O9=29AOK=6@F-O!'H N<LJ"JN LBLJNMF@JBKLM%n lNMPP9))G=F!3B9BMLLN2.I0$  OPOLN;NM& 9*. G?( !?K( !?K !+#(+ 3&8�â dQѧ{z»V¾û(.m/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/unicode_data/mod.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ám/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/unicode_data/mod.rsÁ �ü­+ØQ0û HÄ9òèèJ F' L(IGLK"3;éÂ:ˆ»( BdGÙ�Ïd/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/hybrid/error.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ád/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/hybrid/error.rsÁ !"'Ó[’o¦ä!›v%ÂúAúAñHHNMO'K2HDPH$O $@;F6/P 2G JJEK,>(E7 )KGNF4I6G I?>:;OIA&HOKK) 6N# *L$99"1"G1(E8 )K0L1L/6I;EH;G..;E4$ BIOJM7=<;fcO :3))KDÿ2ÞÔŒ0§7¥YÍ*ja/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/hybrid/id.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áa/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/hybrid/id.rsÁ ³.Á€Â'í˜fö±r±râ<PJKIM HI=>O PO LPK HCFEI]BMMPOL GLM&LMALNLN ?CB9#&1LKHK/# #KGJE5+7!$6:*+*GHD./8LNN?J. LB(@.2  MIH/$(1I-"EGM-&(1I-"IL*7(1I-!O-!P-!/ GJ(=>>???$PL#88 +L&I!7J:NN'65O<=L;$C 8$@ 8$@ J9$A O9$A AM8,5KNO-BNKM*?NJNLN6*?KKL,+@K+@EJ J'%F,//GJ  Šà9X¸Ö‹óÒí1çd/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/hybrid/regex.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ád/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/hybrid/regex.rsÁ ÄlþpíC÷B�òGÜ_©ã�ã�ÿLLMN1KL"5  AMNKIHKL KNLMPNPPPGKI>J3$'(IH>/>/EGMNONMOO; O(M$ ;.+)6 3 =(N= ;:+H;;;===%3 $%.HE*H BF "7;++931#3 "-EJL!*N.M"OP#O B;&&,(( MN7 O%() 3 388P KNPPNM&PJO;LHJ1H:L P 2.+953 -MNL)M&PJO;LHJ1H:L P ;++)3 LNP'+L3 )7MOM&PJO;LHJ1H:L NN:P6 ;++(L""#$ 3 6#4,K< L)?FNKI$M&PJO;LHJ1H:L-IH% PPPC+', IMPI%'- LLLMJKLND LLMILJ/%1IB 7JL57%D: K IJ0$IJ0$D B2D)3 )P%KPJ,8C7G%8*C8EKNLLPO?NLN! 2JN6&55#O)M"OP#O B;&&,(( MN7 O() 3 ***1/1/9O*79O*7K;'EK/M!K:*B5NPKMKHKN MLKHMMONMM>B37''5/-79#A/C(.OF$/&%6%41=$3NHNO H6&EOLI:N1 . +!A=#=+=3 I#<9O-! B5K-K# JPNA$ …AáD”ÇæÊé³ïÊf È»½¼§h‹Rb/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/meta/error.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áb/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/meta/error.rsÁ ¤ùªéªaÕøñg•£ÇœCœCñ7?GHMGEILO+M NDNGL9$O OL& 6N= 1= NOJ/0> O!AA G2AG2AF6(EA7 )K4FG :HKL8NMOPK"J $))K:5 '.5MPN%+1 22KF06#ONLIGHLP=#A"--KE+1+24HFKIN4EN m&W0Ë�Ü¿A½² çy©j/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/meta/reverse_inner.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áj/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/meta/reverse_inner.rsÁ áÀìÐ×ð— Få¥^3ŠgŠg¯JHMMONNOMKALPMMKP3NP7LJNH BPFM9T$$ :J>9 IHJJ8B$ @# ! DEHM= EO!EHFFAK#1?NPG'AE5 5$O5 NL#"C""MKLN5 B-B5MMNND-@)-,*!()'* GF ;ONN@KM32/ IMOONCO-2 H%?MI7IOKLLC3 !" %6C+NLON.L25OPMLNNPN9& K(J86PL2H*F %A ˆWä‚hÇžJXOY¥T_j/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/error.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áj/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/error.rsÁ +¶dÀ¿�£èRH%·ž ž6ž6¶&JK2HJPMJKJ OMH5!PKL@(OL&*HC1OM/L,MM).HK)LOJ/0H (C9J;L7B&N@$LDIDK9A(E':< )K'K-7)@H:6F<6COE:.';F! Èý\ ñTa_1Âã PBh/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/map.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áh/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/map.rsÁ Ü�R¢Ô�‹<; 1NLMP%+ O JMM LKMNF8O/P=0!KL7G?M$MIHE3<J8!H9#L /7+V*09<:1NLO%+  JMM PKrÄíd™ôŠ04Í'(Ðvõc/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/escape.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ác/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/escape.rsÁ Ë´ aÞ7·‚i©·d(PF²²T6GMNM=MN&GIN% N#L'2 F>NJ%,2GL 7$1)-+B "<,9 ësÀp.ØÚxÏÕ�NäNcÅa/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/iter.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áa/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/iter.rsÁ âYlÅ*3WôãŒüg÷tNß³¦³¦þLKNM/K9%@LMK*;LKPLK9IIO3KOPOJM%C7NK)NPPLHMJNOONKNPOKK#AOMOMOKIK:JKJLNPLCM KNGM:'KMLHK>'5()'<31 LB/@FNP,#@LPL%31;IN52O&JPNO> " ;+D+5Q#5Q#5Q#Q#3 P " #+(+4Q#4Q#4Q#Q#3 F G. OD+4'5! M%#5'5! #5'5! #'5! #3 = C) 7H L&P / G1% 5M) *0OK+ C1% BH) '-O5LHJF$ " ;+DK1 9)9)9))3 &# G0O0LHFF "" =+DF- 8)9)9))3 J C,O:LHGHONKKKJ?OM +" @ K;**643D-4E,3C*&3 " G3KLKO // GNKIG OKKJKOMPP1MJIOPILLNI *+ CJMN(E:7KOF'(7ON38;HL=23C/B?=K-#+PM (E:7KOI5>%;HL=20C. :9K)#+KP(E:7KOD16!;HL=2,?* 7H IM(E:7KOB$%7ON350C.AK#(%-( :K*#'+LL (E:7KOJ-8-C- ;H lâ—gñ÷Õô`±žGÛJ«s/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/prefilter/aho_corasick.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ás/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/prefilter/aho_corasick.rsÁ ¡'M=€£–Ûööªþ…§0§0™ 94#'=  8 LIMMKMMNL(-?;NPMN543=>%+;LOKJHL5MOKJO!"!$N!% "%B=  8 OB D=  8 ;7-B &=  8 #  =  8 JOLON@LOLMLO( v‘pL†¾ºU©�$5,n/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/prefilter/byteset.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Án/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/prefilter/byteset.rsÁ cφÍò!W7�vï�µ€ä ä >('=  8 (+.'!4 %BN(! D,$B &  �÷T /i~ÞÐIVm\ûÿm/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/prefilter/memchr.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ám/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/prefilter/memchr.rsÁ S ;8åAÅT#ª· b¦Ë%Ë%Æ'8  3 $01 %B8  3 >,%$ D,B &  #'8  3 $@--" %B8  3 G,%$ D,(B &  ''8  3 $@---& %B8  3 O,%$ D,7B &  T;Ú©ÑÁ{9€¬ò¶¨]lm/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/prefilter/memmem.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ám/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/prefilter/memmem.rsÁ ·ð:Bµç¼Vw9ÎÐ̲²\JE-'N  I $.K$ %BN  I 8,>$ DN  I /4F &N  I '  N  I  Ï1\ìQ³a έz)V>Ïl/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/prefilter/teddy.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ál/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/prefilter/teddy.rsÁ ÍžÜú—š™–8ɉ;Cj‰6‰6¤9#OIJK#4.PNMPOLO!4)8PO<4 '=  8 CIN+IIMNGB?D<M=/!@+?" G %B=  8 I,B D=  8 4;7-"F>B &=  8 4K  =  8 MNOOJLNOJPO3LNLMMO" RÌ[^š¶ O›ÀGØOj/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/prefilter/mod.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áj/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/prefilter/mod.rsÁ ­ÆïS—pűPTÅ’ÎÛu‰Ð‰ÐÖ5>MMPN@MNMKNLKOPML!KILI  (',)(1DDEMMPILLHJKIMO@OH:L'$D :'%9/K'$ D :':9/#NIHHLLOP4GMKN 2 #H5P$%@ NP$$@ 3 7!M; O,'  " :2332137)= NKMM 2 8M$*%@ 3 N2OKKPLO:KL( 2 )"! O$*%@ 3 -9PNMMP 2 0M$.%@ 3 F'  " * LOPMP= 2 0M$.65B 62 %B 3 H'  " , M*'  " $ 0,'  " MLMLLMJLM.MMO2$'  "  GKJPB?+$PNMALOPCM%M@5%9B&9D(9& 9 KPJMMON'KMMOK1KMPK7GJJMNMIO$GBDO'H! N GI#;N JMPLO8/. 90/ 90/ 8/. 7.- 90/ =53 I NOO NJM-P"MNG"32.> O &:  N MG"32.> O &:  N ÌÖ5‚ü›f?2Ùç6 eg/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/primitives.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ág/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/primitives.rsÁ QÌ8iãÙôªÊgÈÑ3-s«Ø«ØˆK N!LM%KJL KKLMPNLP@KMJMF..P4NJMLO 7>%=&9P6BN# %ON(G&,NKNAOMLKNMOKPKNMJGH%LNLNEJ1KONE PJMPP( G!J L@!( 9M=?F@"JF$J%FNNO=J!N.=J,LH(MM(O7(N;P<&M+M4/,+F 5M+OMCHP+// 2;$2/ 5;$'6#"E9I 8#"E.I 8#"E.> 8%"G0G - ,<?+C COJ'H%..GJ #"#/, *CDH, A#;D8 =H6KP">@O%HGM5L)@8H12 'N(4"L 0 L&0 K)0 =MN,."O3MDJJO3OOFBL3%I,I6  O0*OP 22( 5>, "52( "8>, "*/ &=E &=E &=E (?E /?2 E L K/*H-#  ++OI'&   1*)D,'"6 "2) PLKM ) =,1& J*=,M53! HLKLIO4M(*I;F"AOOKMEM&F PHONO;.9 )%5 )#É£ÂÉn{â.w]dµ‡—c/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/syntax.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ác/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/syntax.rsÁ åm•%Åÿ5U+ƒÄA‹ n«Š«Šâ?:;MMLJH  K9&4J/4,LL &'% H?/N2JK&"<A/J, #LK& &'C& =LDLMJPKMML4 M1@MKEIMKL1 FPN:LNIN5MNLLMNONOJ.8! 0MENPOFMKN-2 3(<16+@5"0%B.6+=2/%**1&8>#5)=3)7) p3=´ƒÿ…õ}f:¯b/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/empty.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áb/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/empty.rsÁ =„¶ 5:Y4O[‡$ÈÌiÌi‰J,LOLO@IOOMMMMPFLJLLNOOMMNOJJIMJ!QJJMMKMNBNPOANLPNPP-LBLINKNKNJ%MDLPL?KM5QQNLON4KKJRMDLNHOOMPL OPMNJOMJOCL/;O=PJNPHNNLL(.% #D=% #D>#DJHJJLJHJIFLIILHIKGKHPN&LHFLL?,< IK #2EIJD=)" %2#. ¦ƒ©Ëþ/Õ2jÊ)Ãæ¨xNcûÓfV{`/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/int.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Á`/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/int.rsÁ ¤CPüΉ²ƒ#vX¶ åò2ò2öLLPK M2IPMLJ$PPOLLLNM;OOKOO LLJG@ ! ! !! A &   !! A &   !!! A &  "! = &  ! ? &  ! ? &  ! ? &  LLOPNMMO, !»XrCg” ÓøØWø-`ìÃg/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/sparse_set.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ág/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/sparse_set.rsÁ ç `x°òhË �Ù\Ë‘�Ì>Ì>ïF!3*-MEIO&IOO>OMK  PK7,, B,K;(( %$9N1<;ML.FNP86I405MLK>9JNK6K @+K;,6 89*HO-4(7,M1L#DLO9; !A M!/ ! G9%A4%57J1M&G<=3ME*9,cägikoÆ´¯þrdST�Œa/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/utf8.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áa/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/utf8.rsÁ h}¼¹`”i}O3À¥¯«”ÌÖ8Ö8¿"FO MNK5,*L$#' ' ' +HM99MN@5A$,F:06'HL395F%/G$&;L(K 5$.+...O,H5<KN5"KLIPI!:ON5/MMOM%IMN6HFJNLOLONM(5 2P/# d;pmDwæÃãfh‚ꪺ[/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/lib.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Á[/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/lib.rsÁ Ô†5J­ xñ[‹‡{ö‡ð‡ð‹IKJFOONL*M M)KJ PIL MLKMNJN ONGIOMI:KPJKAMJM1-MJ/H M/KNOOMN.844; 5$;;<<*A'+*ONM,63D"A''&*/#$+PN/,$D"H'"3*/0+!ONP-/ @8+9((!!0+NLFLNOMNP7KMLMLJM-LNMMPOKOLMPNK@JPDLMOLNOJON  N-CPMNK?N,IK ILNKMJMM&PPGMILM<I.%^QSDiNINNNKHMP iLNO<LIMNMKMOJMPNMMLMNHPML)KMN /BDOOKGNOLHHMO<*NJOKOKLMLJ&OLIHPKJHOPNPK*MNLONJMDFLJ8PPNOOFLKOLD J>0OI@HLOK MK]K-JL67pkD-LIGKJRHMQJLPNJN)GGMKOOOML)4NEM4J-=CK$ MN+ *JPPM O +IIPOLOPL@LN ,17.(PI-FKJFPKN!! I#',  = ! ºXÃ1ÍÛsÕxW³!êx—ý^/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/macros.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Á^/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/macros.rsÁ †·Ï*¥d-¬ù ëñ¿+§§N,$  33u{Ï£ÊZ ÿ:Xž¼‘®b/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/hybrid/mod.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áb/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/hybrid/mod.rsÁ áAò Dzìf� .ÂF˜/˜/�LMIOP6I IGO'A!J235#(H++OL+:3.#H+MIJKL%MLLJLK'>PIMMOKKLPKIJLKLEIOHJ PHNMIJJMMOKMMN8H1 ¨™ún¨¨¨gÆ&•¦*Kÿe/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/hybrid/search.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áe/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/hybrid/search.rsÁ ©{*£®¨PjºÓIáþ4˜‚˜‚¨ - 6-6 )OMOHKLPC"78 "89 5 -5J0 JP%"$=A !01$ !&F %>,ILKIPONONOO?PHIL GII=K>77BIH?::::LNL"OKLPINKMOKHINKNMPNMBMKKJMJKONNNLJMLJLPPP/MHLPOQJ%$%@C>@%@*>@%LKM")G0  LHN0-'@A&?00LIKM4#MNL55:AD,&."'@IKNNNK'9-$&) &)H1< 5& -. /5-0ONONLG&9""$=A  %>,IMKJHFN:JNPMNNJM$(@(=>@%@*>@%LKM")G0  '@JJC=-$&) &)H1< ! (5 $"6 )@ A5 "5J#&) @;-DNI#O8( NNO>"#@." -B=/,776=F("*'2@E/&/&/-01< 'GJKK'*& $"#4".&, @;-DNI#LMLO2LO6&I "@." '2@I/&/&/-01< ' 'GJKK'*( 5 '6M$ 5 '6M$ 5 !)N A>&9 -@ ANJ:+  5 !3+.=<"> M=5 F6' J4ILO)KLMMM6HPPLMLB5'#!D5* ¡A4Í»îÐ+Qµ–tJÞ`/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/meta/mod.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Á`/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/meta/mod.rsÁ oQÜ£O?›Ýï„Wuêaºº@DJ<$INJJL MLK6JLV:IKLO>BC?LNKLNP/ L 7 7 ³ô ÑÀ\ ÙÎ�oß�]ûƒd/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/meta/literal.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ád/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/meta/literal.rsÁ ÿ¯jaA�xé Ç©ó(i˹¹Q>GKMPG$/F8KMH275F#086-,!&B:JJ LMOMNCMIONPLL 3ý…ãW˜TÎi øÊÄc/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/meta/prefix.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ác/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/meta/prefix.rsÁ ‰O¸ÅL�¸ÍÁbÕ¤eÕAÕAìMIFMH@J JFJIGN:F8" CO5MNOJH8NKMG3 LPOG< MIJL, 0:O L:G$ H?4O /.1*5/2 F3#> E&< '@ @N &7?7,A**+- ;,A**+- P HED 9#G748M1BA?>', JO@C PC+ NÀJtÖ4U/–Ìþ»ZC_/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/mod.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Á_/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/mod.rsÁ ¢w�¿Œ«² ŸnÕ¤Žâ‰‰7LRNPDNPNKK=MLIJN0NLPNMM FN,PN0HKFLLPNHNS8!y‘tŒ×žê]wPqÚ¯qh/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/mod.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Áh/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/nfa/thompson/mod.rsÁ c.â3ï½cjñm„À„„QGENOOEPT'HPO#?5FPLO L%GPLNO JFMPJOKN@LNMMNMN="    M * 5ÃI‰µÊiʽq@�`/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/mod.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Á`/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/mod.rsÁ ÝÇBÐ^9¾ c¨f¤—0µ…««9L KI LJ"LM$J;F LKPJ.L=7‰Ë‰çÊ ¼ð¥xÌ]Œ1l/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/determinize/mod.rsÁP/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18Ál/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.18/src/util/determinize/mod.rsÁ È*G×·Ù3‹þðÚL­ÎõÎõªJ@KFLN&JLEDM GNH7OKINJHILM-D  - LONNMAMM2MMOGKPO)LOO)NPOK(&IP IKM$B)KGKHJ(%OJPNO*'L/3A2A&'), 77 .3 ; 9"/2M ""03 :",/A".1 IOON@ ENN;)* 0!'" O4FN15LI!BLJLMO1KDLOD'24 (#*2$+47IDIIKHHDA&LKNJMOP&KLNOKN":=:.%$-+5@%-+3?%-+ HK.OLOPPMNMNMOL2"G( 5O ( .:MIMMN DI8LOOO/"+OLK4NE!#210(::3?3')NP0@A&; MONNPPOOLMP'JL##3202/242A*7MLOEOJOLHFEPLMOLKMMOJOMMMJMLBNMKLLNNM3//'33)KNNMOPMOPMPMLL1OJI;MJPO'2NH2OPP'2/JJJIJD2 FD.(5L!)' =& )/:< ), 4H0/G)/:< 404N4PEJ)/:< 0P0EJ)/:< )0JNON6)203>@ T™‰ñQnÆËcz‘ýì›xBîm1©p1Ò~1!�1Ñ”1)—1‰§1ª11¬1æ¶1½1£Æ1KÍ1 Ø1“Û10å1ð1¡õ1uû1Í2¤ 2Ê 2~2Ì%2)2.232Ç42õ=2t?2ÂA2{D2gI2±K2IN2hP2õR2£T2úY2\2¼]2ñ_2»a2Ìc2 h2zl2¹o2-r2xt2Êv2àx2¸|2~2€2Ž„2"†2χ2Š2Ÿ‹2T�2áŽ2x86_64-unknown-linux-gnuÁ ‘…й†Ü~W!û®‹¥êregex_automataÁ-914a514b68fe71beÁÂÂIz]‚§Ê3¡ ÞÜ(´îËܲoá žžè-ŽEè-µð¨µ‰H™‰HÂýiÂʄʄó-¿åÊò‰ÿ-ÿ-ÿ-ü-ÿ-Ãü-ÿ-ÃÙ-ûåý-½äŽEñåÿ-ŽEŽEý‰ŽEªÏªÏ› ÿ-Ñ$ÿ-ý‰ÿ-ý‰ÿ-ý‰ÿ-ûåÿ-ý‰ý-ý‰÷‰ˆ-ÿ-˜‡ú-ý‰„,î‰ÿ-Œ„ý‰ÿ-ý‰ú-,„,Œ„Œ„ÿ-ûå™Ë?Á(ÂÃyý-ÆO÷‰ù-ù-뉎E뉪Ïù-ÿ-뉞ý‰ÚEÐÐðO�…µ„,Ÿ+Œ„ý-é÷‰îµ&ÒËÈÆöOÆÒLÒL=¿Ê·rust-end-file