hg-evolve-11.1.3/0000755000000000000000000000000014606303054013430 5ustar rootroot00000000000000hg-evolve-11.1.3/CHANGELOG0000666000000000000000000015545514606303052014663 0ustar rootroot00000000000000Changelog ========= 11.1.3 -- 2024-04-12 -------------------- topic (1.1.3) * topic namespaces: add hg debug-default-topic-namespace command that can list changesets with problematic topic namespaces (i.e. "none" and "default") and rewrite them * topic namespaces: new experimental.tns-reject-push config to make servers reject pushes that contain changesets with any topic namespace in commit extras * topic namespaces: slightly change .hg/topic-namespace cleanup code to be executed on acquiring a wlock instead of on reading .hg/topic-namespace 11.1.2 -- 2024-03-03 -------------------- * compatibility with Mercurial 6.7 * evolve: use functions from topic extension to set current topic and tns topic (1.1.2) * compatibility with Mercurial 6.7 * topic: handle commitstatus() with opts=None for hg <= 6.5 too 11.1.1 -- 2024-02-05 -------------------- * compatibility with Mercurial 6.6 * evolve: fix typo in "mercurial" and let hasmemmergestate be True sometimes * uncommit: set uncommit_source extra consistently in interactive mode topic (1.1.1) * compatibility with Mercurial 6.6 * topic: properly decode topic and topic namespace after reading from disk * topic: wrap makebundlerepository() to wrap bundlerepository class (issue6856) * topic: internal config option to fix hg pick behavior (issue6406) * topic: use the appropriate functions to change topic and topic namespace on working directory update and don't write empty/default values to disk * topic namespaces: check that user-provided topic namespace names are human-readable like topics * topic namespaces: add tns_heads method to wirepeer directly instead of using a subclass * topic namespaces: remove .hg/topic-namespace file if it has the default value ("none") 11.1.0 -- 2023-10-23 -------------------- * remove deprecated evolve.serveronly extension, evolve extension is recommended for all users, clients and servers * evolve: don't warn about topics while resolving public content-divergence * evolve: add obsdiff as alternative for odiff * evolve: retain certain commit extras when relocating a commit * pick: update commit message hashes like other rewrite commands * evolve, pullbundle: drop compatibility with Mercurial 4.8 topic (1.1.0) * remove deprecated serverminitopic extension, topic extension is recommended for all users, clients and servers * topic namespaces: add `experimental.tns-allow-rewrite` config option to check topic namespace before rewriting changesets (known limitations: does not prevent rebase and histedit from editing changesets outside of configured topic namespaces on Mercurial 5.2 and older) * topic namespaces: add `experimental.tns-default-pull-namespaces` config option to pull only certain changesets by default * topic namespaces: teach `hg import` and `hg export` to handle topic namespaces * topic namespaces: invalidate topic namespace cache in repo.invalidatecaches() * topic: only set topic on workingcommitctx if it doesn't already have one, making `hg import` always prioritize patch metadata * topic: properly process revbranchcache before sending it to peers (issue6841) * drop compatibility with Mercurial 4.8 11.0.2 -- 2023-07-05 -------------------- * compatibility with Mercurial 6.5 * packaging: explicitly use python3 for running tests in debian/rules topic (1.0.2) * compatibility with Mercurial 6.5 11.0.1 -- 2023-03-23 -------------------- * compatibility with Mercurial 6.4 topic (1.0.1) * compatibility with Mercurial 6.4 11.0.0 -- 2023-02-26 -------------------- * packaging: list all contributors in debian/copyright * packaging: run lintian on .deb packages built on our CI topic (1.0.0) * topic: make hg split preserve topic namespace 11.0.0rc0 -- 2023-02-07 ----------------------- * deprecate evolve.serveronly extension, evolve extension is recommended for all users, clients and servers * fixup: support `hg abort` * evolve, pick, fixup: support `hg continue` * evolve: stop preserving all of {extras} for uninterrupted evolve operations * evolve: don't embed graft data when completing interrupted evolve operations * prune: pruning (without any successors) an already obsolete revision will no longer give a false warning about divergence * evolve: use detailed exit codes for most commands (enabled with `ui.detailed-exit-code=yes`) topic (1.0.0rc0) * deprecate serverminitopic extension, topic extension is recommended for all users, clients and servers * topic namespaces: introduce `hg debug-topic-namespace`, `hg debug-topic-namespaces`, `hg debug-parse-fqbn`, `hg debug-format-fqbn` commands, `{topic_namespace}` and `{fqbn}` template keywords, `topicnamespace()` revset predicate * topic namespaces: implement exchange, including limited compatibility with older versions of hg and topic extension * topic: allow Unicode word characters in topic names * topic: use detailed exit codes for most commands (enabled with `ui.detailed-exit-code=yes`) 10.5.3 -- 2022-12-09 -------------------- * compatibility with Mercurial 6.3 * evolve: make obs-hash-range cache and stable-range cache (that both use SQLite databases) slightly more tolerant to FS issues (issue6246) * evolve: adapt to Python 3.11 BC breakage with `random.sample()` * next: properly handle cases when user selects an aspiring child, making sure that the destination is evolved when needed topic (0.24.2) * compatibility with Mercurial 6.3 * topic: invalidate the topic cache when branchcache is invalidated, to fix an issue in TortoiseHg where stale topic labels appear in certain cases 10.5.2 -- 2022-07-13 -------------------- * compatibility with Mercurial 6.2 topic (0.24.1) * compatibility with Mercurial 6.2 10.5.1 -- 2022-04-26 -------------------- * evolve: avoid updating working copy when --dry-run is given (issue6669) * evolve: correctly pick successors of a split changeset when its child was pruned (issue6648) * fixup: allow to be aborted using hg abort * fixup: work correctly with bookmarks * packaging: allow to unvendor cbor, update debian/copyright 10.5.0 -- 2022-02-23 -------------------- * compatibility with Mercurial 6.1 * evolve: handle cases when working directory parent has multiple successors * multiple commands: do not check for new divergence if divergence is allowed via configuration * fixup: a new experimental command to add working directory changes to a specified revision * pick: show abort message after pick is aborted for consistency * evolve, pullbundle: drop compatibility with Mercurial 4.7 topic (0.24.0) * compatibility with Mercurial 6.1 * topic: make histedit preserve topics when the first changeset in a stack is rewritten (issue6550) * drop compatibility with Mercurial 4.7 10.4.1 -- 2021-11-19 -------------------- * compatibility with Mercurial 6.0 * documentation: add a help section about making evolve skip content-divergence check with experimental.evolution.allowdivergence. * documentation: mention that pick uses the active topic if it's set topic (0.23.1) * compatibility with Mercurial 6.0 10.4.0 -- 2021-10-12 -------------------- * evolve: use a more stable criteria for picking p1 when solving content-divergence (most recent evolution will be used) * evolve: drop the deprecated --unstable, --divergent and --bumped flags, they were replaced by --orphan, --content-divergent and --phase-divergent respectively a long time ago * evolve: remove experimental.obshashrange.lru-size docs, that config option didn't do anything for a long time * evolve: use precheck function from Mercurial 5.9+ when available, mostly affects error messages and exit codes * next: add an --abort flag * evolve, topic, pullbundle: drop compatibility with Mercurial 4.6 topic (0.23.0) * topic: don't cache .topic() of memctx instances, as that could produce KeyError: b'topic' during some rewrite operations (issue6500) * topic: drop old code for working with amends on ancient hg versions (~3.6) 10.3.3 -- 2021-08-13 -------------------- * evolve: compatibility with Mercurial 5.9 * fold: make sure to save commit messages in last-message.txt, also affects metaedit (issue6549) * touch/fold/metaedit/rewind: no longer lose changes from merge commits (issue6416). As a consequence (for technical reasons), when run with Mercurial 5.5 and earlier, these commands now require there to be no unresolved conflicts. topic (0.22.3) * topic: correctly update from public commits with a (now hidden) topic when hg update is called without any revision (issue6553) * topic: fix the help text to show how to disable publishing 10.3.2 -- 2021-05-28 -------------------- * next: remove duplicated targets when updating from an unstable changeset * evolve: use "served" repo filter to guess what the server will publish topic (0.22.2) * topic: don't lose any file changes when changing topic of a merge commit * topic: announce ext-topics-publish capability in case of SSH and HTTP too 10.3.1 -- 2021-04-25 -------------------- * cache: fix corruption issue when mixing 32-bit and 64-bit environments * next: unstable changesets with a different topic are no longer targets for hg next as long as it's invoked without --no-topic flag * next: when some potential targets are unstable, ask user which changeset they want to update to (only mixing stable and unstable when --evolve flag is given, which is the default) * packaging: default to using Python 3 in Makefile topic (0.22.1) * compatibility with Mercurial 5.8 10.3.0 -- 2021-03-11 -------------------- * doc: document stack as a substitute for MQ's qseries * doc: document revsets provided by evolve extension * evolve: add a experimental.evolution.in-memory config for running evolve in memory (hg >= 5.6) * evolve: improve content-divergence resolution that involves parent changes * evolve: preserve wdir parent when using `hg evolve --stop` * obslog: clarify the command name in the help, * pdiff, pstatus: drop some irrelevant command flags inherited from `hg diff` and `hg status` respectively * rewind: detect and abort on cases when we rewind to changesets that are predecessors / successors of each other * rewind: when user gives only some parts of a fold, include the other parts as well, or abort if they are missing from local repo topic (0.22.0) * doc: change topic phrase 'disappear' to 'fade out' 10.2.0.post1 -- 2021-02-01 -------------------------- same content as 10.2.0, but with a valid tarball on pypi. 10.2.0 -- 2021-02-01 -------------------- * compatibility with Mercurial 5.7 * doc: update the MQ To Evolve guide and fix build warning for index.rst * evolve: improve resolution of some case of parent divergence * evolve: respect command-templates.oneline-summary if configured * evolve: remove spurious "working directory is now at ..." messages * evolve: various documentation improvements * packaging: default to building docs on Python 3 * strip: remove experimental.prunestrip option topic (0.21.0) * performance: speed up various operations using an in-memory cache for topic * rebase: prevent in-memory rebase from silently dropping topic (by disabling the feature) * topic: rework how ctx.branch() is wrapped * topic: look for topic heads only when necessary, this fixes the output of e.g. hg heads when topics are in play 10.1.0 -- 2020-10-31 -------------------- * compatibility with Mercurial 5.6 * numerous minor changes to packaging, Makefile, README moved to README.rst * evolve: various improvements to content-divergence resolution * evolve: fix various issues with --continue when solving content-divergence * evolve: specify the source of config override for `server.bundle1=no` * evolve: avoid leaving mergestate after instability resolution * evolve: while resolving conflicts, the evolved node will no longer be a dirstate parent (won't show up in `hg parents` and not as `@` in `hg log -G`, but it will show up as `%` with hg >= 5.4) * metaedit: update bookmark location when applicable * rewind: add a --dry-run flag * rewind: properly record rewind of splits as folds topic (0.20.0) * stack: support foo#stack relation revset (hg-5.4+ only) * merge: add a experimental.topic.linear-merge option to allow oedipus merges in some cases 10.0.2 -- 2020-09-08 -------------------- * py3: use '%d' for formatting revision numbers in stable range cache warning (issue6390) * split: correctly handle discard action after previously splitting changes into more than one commit * uncommit: fix situation where added file would be left in a wrong state topic (0.19.2) * revset: when processing `topic(REVSET)`, no longer return changesets without topic from REVSET 10.0.1 -- 2020-07-31 -------------------- * compatibility with Mercurial 5.5 * evolve: update the template keywords section in `hg help -e evolve` * obslog: make obslog --no-origin -f work with multiple successor sets topic (0.19.1) * compatibility with Mercurial 5.5 * topic: hg push --topic does-not-exist now doesn't try to push unrelated changesets and aborts instead * topic: hg outgoing/push --topic . will use current topic 10.0.0 -- 2020-05-09 -------------------- * compat: clean up old compatibility code * compat: compatibility with Mercurial 5.4 * evolve: add {obsorigin}, a template keyword that works similarly to {obsfate}, but shows predecessors of a changeset * evolve: fix permissions of new cache files using SQLite * evolve: always create commit when resolving divergence * evolve: handle relocation during divergence resolution producing no changes * evolve: provide cache to successorssets() in more cases * obslog: make --all and --filternonlocal work properly with --no-graph * obslog: add --origin flag to show predecessors instead of successors * obslog: make --origin flag the default * stablerangecache: sanity check subranges topic (0.19.0) * auto-publish: issue the capabilities in all cases * topic: provide cache to successorssets() in one more case 9.3.1 -- 2020-04-08 ------------------- * compat: make __touch-noise__ and __rewind-hash__ extra field be bytes * obsexchange: avoid sending too large request to http server * obsdiscovery: server no longer aborts with a 500 error if client sends a request without obscommon * obsdiscovery: avoid considering locally hidden changeset * single-heads: ignore obsolete section when enforcing one head per branch * evolve: improved behavior when evolving above the result of a split * evolve: checking for new head on push is no longer confused by mixed branches (or topics) topic (0.18.1) * topic: fix auto-publish=abort with server that auto-publishes bare branches 9.3.0 -- 2020-03-04 ------------------- * compat: compatibility with Mercurial 5.3 * compat: drop compatibility with Mercurial 4.5 * compat: cleanup old compatibility code for Mercurial < 4.5 * evolve: extensive cleanup of functions, template keywords and compatibility code related to obsfate and successorssets * evolve: add content divergence checking to the standard pre-rewrite check * evolve: improve the message associated with content divergence * evolve: correctly handle --continue and --stop when relocating content-divergent changesets * exchange: dropped more bundle-1 related dead code * help: categorizing evolve and topic commands * obslog: make templatable * obslog: show folds and use more specific verbs when possible * topic: add a `experimental.topic.server-gate-topic-changesets` config 9.2.2 -- 2020-01-31 ------------------- * amend: cleany abort when both `--patch` and `--extract` are passed * compatibility for changes in upcoming Mercurial 5.3 * debian: allow to build with python 3 * documentation: update text and add missing figures * evolve: also merge the date field when solving content-divergence * evolve: fix content-divergence resolution when p1 is null (issue6201) * evolve: make sure divergence resolution doesn't undo changes (issue6203) * evolve: preserve date when resolving content-divergence (issue6202) * evolve: use more often seen metavariables in command synopsis strings * metaedit: don't change commit date by default (issue5994), * pick: don't create any successors when there were no changes (issue6093), * py3: fix documentation generation * py3: fix setup.py --version * py3: fix some exception formatting * rewind: preserve date * topic: add more options to command synopsis string * topic: fix a bug in logic of choosing destination for hg update * topic: fix a bug in logic to choose destination when no active topic 9.2.1 -- 2019-10-05 ------------------- * setup: fix install on python 3 9.2.0 -- 2019-09-28 ------------------- * evolve: check that relocating makes sense in _solvedivergent() (issue5958) * evolve: test that target is not orig in _solveunstable() (issue6097) * fold: check allowdivergence before folding obsolete changesets (issue5817) * obslog: correct spacing of patch output with word-diff=yes (issue6175) * stack: make sure to preserve dependencies, fixes certain complex cases * prune: improve documentation for `--pair` * python3: beta support for Python 3.6+ (thanks to ludovicchabant, martinvonz and rgomes for their hard work) * prune: clarify error message when no revision were passed, * evolve: avoid possible race conditions bu locking earlier * abort: add support for `evolve` and `pick` to `hg abort` (hg-5.1+) * rewind: add --keep flag to preserve working copy 9.1.0 -- 2019-07-29 ------------------- * compatibility with upcoming Mercurial 5.1, * pick: no longer forget file in case of conflict (issue6037), * pick: properly report and cleanup "unfinished state", * prune: don't update wcp if pruned revision are unrelated (issue6137), * prune: spell --successor flag without any unnecessary shortcuts, * prune: update to the successor of wdir also with --pair/--biject (issue6142) * evolve: properly prune changeset with no change in case of conflict (issue5967), * evolve: use the same wording as core in case of unresolved conflict, * evolve: minor output message improvements, * evolve: improve `hg evolve --all` behavior when "." is obsolete, * touch: detect resulting divergence in more cases (issue6107), * touch: now works on merge commit too, * rewind: fix behavior for merge commit, * fold: allow fold with merge commit * metaedit: now also operates on merge commit. (topic 0.16.0) * topic: fix confusion in branch heads checking logic. 9.0.0 -- 2019-06-06 ------------------- * evolve: preserve the working directory after resolving instability (BC) (use `hg next` or `hg evolve --update` to get the old behavior) * evolve: evolve all relevant revision by default (BC) (use --no-all to evolve only one) * evolve: drop compatibility with 4.4 * evolve: reinstalled compatibility with narrow repositories, * evolve: use "unstable" instead of "troubled" * evolve: run multiple stabilisation in the same transaction * evolve: improve users merging during content-divergence * evolve: reduce the verbosity of `content-divergence` resolution * documentation: various improvement and vocabulary update * packaging: fix documentation build step on debian * progress: improved support in various command * help: avoid duplicated entry for some templates * obsdiscovery: drop support for deprecated discovery protocol `obshash` (Make sure your servers are configured to use the obshashrange one. It is available in evolve 7.2 and above.) (topic 0.15.0) * stack: handle hash sizes when --debug flag is provided * stack: remove 'topic.' prefix from colors/labels (BC) * stack: always provide (full) node hash to non-default --template * topic: drop the b# alias. It conflicted with normal hashes. * topic: add a `experimental.topic.allow-publish` option (default: True) 8.5.1 -- 2019-04-23 ------------------- * evolve: make sure we use upstream merge code with 5.0, * evolve: restore compatibility with 4.4 (This regress the narrow compatibility) * evolve: fix progress display with hg <= 4.6 * topic: compatibility with mercurial-5.0, * topic: improve extensions isolation (issue6121). 8.5.0 -- 2019-04-12 ------------------- * evolve: fix an recoverable state (issue6053), * evolve: share evolve related cache between `shares`, * evolve: make sure the extensions are only active on repository that enables it (issue6057). * evolve: improved compatibility with narrow repositories, * evolve: preserve --[no-]update value over --continue, * evolve: make sure divergence resolution keep the initial author (issue6113), * evolve: improved support for content-divergence with public changesets, * pick: align working dir branch with the one from the pick result (issue6089), * pick: add the standard `--tool` option, * prune: fix error message when pruning public changesets, * split: preserve phases (issue6048), * touch: fix error message when touching public changesets, * uncommit: abort if an explicitly given file cannot be uncommitted. topic 0.14.0 * stack: support ranges in revsets indexing, * stack: mention divergences unstability, * stack: improved and speed --children flag up. 8.4.0 -- 2019-01-22 ------------------- * compat: add compatibility with Mercurial 4.9 * compat: drop compatibility with Mercurial 4.3 * evolve: avoid potential crash when stabilizing orphan merges * evolve: pick right destination in split+prune cases issue5686 (hg-4.9 only) * evolve: prioritize --rev/--any/--all option over obsolete working directory * fold: concatenate commit message in revision order * next: evolve aspiring children by default (use --no-evolve to skip) * next: pick lower part of a split as destination * push: have `--publish` overrule the `auto-publish` config * split: accept file patterns * split: improve and update the user prompt (BC) * split: make it possible to drop change during a split * split: no longer accept revision without --rev (BC) * split: support for non interactive splits topic 0.13.0 * stack: introduce a --children flag (see help for details) * stack: support for '#stack[idx]' absolute indexing in revset (hg-4.9+ only) * topic: support for '#topic[idx]' relative indexing in revset (hg-4.9+ only) * topic: make --age compatible with the usual other display for `hg topic` * topics: improve the message around topic changes 8.3.3 -- 2018-12-24 ------------------- * evolve: properly detect unresolved merge conflict (issue-5966) * evolve: fix possible crash when the repo changes during evolve (issue-6028) * test: avoid leaking `hg serve` process * topic: fix error message for the `ngtip` revset 8.3.2 -- 2018-11-27 ------------------- * evolve: not longer attempt to translate revision's descriptions (issue6016) * evolve: fix compatibility with mercurial 4.8's narrow extension. * pick: fix summary help text * topic: only use pager when it make senses 8.3.1 -- 2018-10-25 ------------------- * evolve+topic: fix possible crash during content-divergence evolution * use "new" unstabilities vocabulary in help * compat: compatibility with Mercurial 4.8rc0 8.3.0 -- 2018-10-12 ------------------- * evolve: avoid redundant output when handling linear orphans * evolve: use stack alias s# in `hg evolve` messages * next, prev: use stack alias s# when relevant * rewind: add an undo alias * caches: skip warming the stablerange cache on strip in "auto" mode * topic: properly register the '{topicidx}' for mercurial <= 4.5 * pullbundle: experimental extension to slice pull in multiple slices whose associated bundle can be cached. The extensions is shipped alongside evolve only for convenience. It it requires data structures that currently live in the evolve extensions. 8.2.1 -- 2018-09-14 ------------------- * obshashrange: issue the "long stable cache" update message only once * obshashrange: reduce impact of cache invalidation from many new obsmarkers * caches: properly silence permission error related to caches 8.2.0 -- 2018-09-03 ------------------- * prune: rename `--biject` flag to `--pair` (old flag is kept as an alias) * pick: rename the "grab" command to "pick" to avoid ambiguity with graft * discovery: enable obshashrange based discovery by default topic * revset: `topic("patterns")` now handle standard patterns ("re:", etc) * revset: `topic(REVS)` matches revisions with same topic as REVS * topic: using `s#` alias instead of `t#` and `b#` alias (compat with old form is preserved) 8.1.2 -- 2018-08-28 ------------------- * obshashrange: improved robusness of the cache under heavy load * obshashrange: force recomputation of the final obshash related cache (to make sure people benefit from the 8.1.1 fixes) 8.1.1 -- 2018-08-21 ------------------- * clone: fix possible crash when using clone bundle and forcing cache warming * evolve: properly set second parent during conflict (issue5927) * next: delete the evolvestate after aborting interrupted `next --evolve` * next: fix topic restriction when passing --evolve * obshashrange: fix speed and consistency issues during cache invalidation * obshashrange: properly persist all caches involved in obshashrange discovery * prune: improve documentation 8.1.0 -- 2018-08-03 ------------------- * compatibility with mercurial 4.7 * evolve: improve multiple aspect of content-divergence resolution * branch changes handling, * parent changes handling, * description changes handling, * divergent stack handling, * improved resume, stop and abort of divergent resolution * evolve: improved automatic resolution of phase-divergence * evolve: add a --update and --no-update flag to evolve to control final working copy parent * evolve: show `hg help evolve.interrupted-evolve` in error when conflicts * evolve: show unfinished state information in `hg status -v` (issue5886) * evolve: move bookmarks also when updating to successors (issue5923) * evolve: improve orphan resolution when combined with divergence (issue5946) * amend: abort `--patch` by saving an empty file (issue5925) * * evolve: add a new `--no-update` flag to keep working copy on the initial revision. * evolve: new help section dedicated to resuming operation interrupted by merge conflit, `hg help evolve.interrupted`. * obslog: --filternonlocal * rewind: first limited version of `rewind` command to restore stack of commit to a precusors state (check command help for detail and limitation) topic (0.10.0) * display a hint when a topic becomes empty 8.0.1 -- 2018-06-11 ------------------- * compatibility with mercurial 4.6.1 * next-prev: respect commands.update.check config option (issue5808) * next-prev: fix `evolve --abort` on conflicts (issue5897) * obslog: fix breakage when commit has no description * amend: use context manager for locks (issue5887) * evolve: fix detection of interactive shell topic (0.9.1) * topic: fix documentation formatting 8.0.0 -- 2018-04-25 ------------------- * evolve: a new `--abort` flag which aborts an interrupted evolve resolving orphans, * `hg evolve` now return 0 if there is nothing to evolve, * amend: a new `--patch` flag to make changes to wdir parent by editing patch, * evolve: fixed some memory leak issue, * evolve: prevent some crash with merge and split (issue5833 and issue5832), * evolve: improvemed support for solving phase-divergence situation, * evolve: improvemed support for solving orphan situation, * obsdiscovery: added unit to various progress bar, * evolve: record "operation" for command where it was missing, * compatibility with Mercurial 4.6 * drop support for Mercurial 4.1 and 4.2 * `--obsolete` and `--old-obsolete` flags for `hg graft` are dropped * templatekw: remove `obsfatedata` templatekw. Individuals fields are available in core as single template functions. * topic: restraining name to letter, '-', '_' and '.' 7.3.0 -- 2018-03-21 --------------------- * grab: new command to grab a changeset, put in on wdir parent and update to it * resolve: shows how to continue evolve after resolving all conflicts * evolve: `--continue` flag now continue evolving all the remaining revisions * prev and next now prompts user to choose a changeset in case of ambiguity * evolve: a new `--stop` flag which can be used to stop interrupted evolution * fold: fix issue related to bookmarks movement (issue5772) * amend: take lock before parsing the commit description (issue5266) * legacy: respect 'server.bundle1' config if any is set * previous: fix behavior on obsolete rev when topic is involved (issue5708) 7.2.1 --2018-01-20 ------------------- * compatibility with future Mercurial 4.5 * fix a packaging issue affect `hg evolve --continue` * fix "automatic" cache warming mode for push (client side) 7.2.0 -- 2018-01-15 ------------------- * evolve: changes to the on disk format for interrupted evolve * evolve: --continue now propertly preserve phase information (issue5720) * evolve: --continue now properly reports merges as evolve * commit: suggest using topic on new heads * uncommit: `--revert` flag added to clean the wdir after uncommit * obslog: add color support to content-diff output with --patch * fix `hg prev` behavior on obsolete changesets * no longer issues "obsolete working copy" message during no-op * use the new instabilities names from mercurial 4.4+ (in `hg evolve --list` and other messages) * new algorithm for obshashrange discovery: The new algorithm is faster, simpler to cache and with better complexity. It is able to handle repository of any size (naive python implementation is a bit slow). Support for the previous experimental approach have been dropped, please update both clients and servers. The new approach is still hidden behind and experimental flag for now. topic (0.7.0) * fix compatibility with Mercurial-4.3 * new template keyword `topic` to get changesets topic 7.1.0 -- 2017-12-12 ------------------- * verbosity: respect --quiet for prev, next and summary * note: add a `-n/--note` flag to all history rewritting commands * obslog: shows the obsmarkers notes * obsdiscover: Improved stable range slice for the experimental obshashrange (client and server need to upgrade to this version) * split: preserve the branch of the source changeset topic (0.6.0) * add a new 'serverminitopic' extension for minimal server support (see `hg help -e serverminitopic` for details) * add a new config option `experimental.topic-mode.server` using which a server can reject draft changesets without topic * fix behavior of `hg stack` in cases of split * makes code more resilient to partiel initialization * avoid over wrapping inside of long living process 7.0.1 -- 2017-11-14 ------------------- * obsdiscovery: allow the config option to disable discovery server side (it was previously only honored on the client side) * server: avoid exposing 'abort' to evolution enabled client talking to server with the extension bu obsolescence marker exchange disabled. topic (0.5.1) * fix new-heads check when pushing new topic with --publish. 7.0.0 -- 2017-11-02 ------------------- * drop compatibility with Mercurial 3.8, 3.9 and 4.0, * drop support for old and deprecated method to exchange obsmarkers, * forbid usage of the old pushbey based protocol to exchange obsmarkers, * evolve: rename '--contentdivergent' flag to '--content-divergent', * evolve: rename '--phasedivergent' flag to '--phase-divergent'. topic (0.5.0) * add an experimental flag to enforce one head per name policy, (off by default, see 'hg help -e topic' for details) * add an experimental flag to have changesets without topic published on push, (off by default, see 'hg help -e topic' for details) * add a '--publish' flag to `hg push` (4.4+ only). 6.8.0 -- 2017-10-23 ------------------- * compatibility with Mercurial 4.4 (use upstream implementation for obsfate and effect-flags starting hg 4.4+) * pager: pager support to `obslog` and `evolve --list` topic(0.4.0) * topic: fix handling of bookmarks and phases while changing topics. (mercurial 4.2 and above only) * topic: fix 'topic-mode' behavior when amending * pager: pager support to `topics` and `stack` 6.7.1 -- 2017-10-10 ------------------- * obsfate: fix case were current user would disapear from the user list topic (0.3.1) * topic: introduce a documented 'experimental.topic-mode' config * topic: add support for 'random' topic mode (see documentation for details) * stack: fix evolution preview for simple split. * fix a performance regression affecting all transactions. (the more non public changeset (hidden included), the slower) 6.7.0 -- 2017-09-27 ------------------- * compatibility with change in future 4.4 at this release date, * documentation: improvement to content, wording and graphs, * obslog: improved templatability, * obslog/log: improve verb used to describe and evolution, * pstatus/pdiff: update to full command. They now appears in the help, * uncommit: add a --interactive option (4.3+ only). topic (0.3.0) * push: add a --topic option to mirror --bookmark and --branch, * stack: improve display of interleaved topic, * stack: improve display of merge commit, * topic: add a new 'debugconvertbookmark' commands (4.3+ only), It helps migrating from bookmark feature branch to topic feature branch, * topic: --age flag also shows the user who last touched the topic, * topic: be more informative about topic activation and deactivation, * topic: gain a --current flag, * topic: small clarification and cleanup on various output. 6.6.0 -- 2017-07-25 ------------------- - amend: add a --extract flag to move change back to the working copy, (same as uncommit, but accessible through the amend commit) - split: now properly refuse to split public changeset, - commands: unify and improve the pre-rewrite validation and error message, - uncommit: add support for --current-date and --current-user option, - fold: add support for --current-date and --current-user option, - metaedit: add support for --current-date and --current-user option, - split: add support for --current-date and --current-user option, - compat: use various new API instead of the one deprecated in 4.3, (when available) - documentation: various minor documentation update. topic (0.2.0): - topic: add --age option to sort topic by the most recently touched, - topic: add a 't0' to access the root of a topic while keeping it active, - topic: allow 'hg prev' to me move to 't0', - topic: add a config option to enforce topic on new commit, (experimental.enforce-topic) - topic: make command names valid as expected, even if ui.strict=true. 6.5.0 -- 2017-07-02 ------------------- features: - obslog: gain a --patch flag to display changes introduced by the evolution (Currently limited to in simple case only) - log: display obsolescence fate by default, (future 4.3 only) - doc: various minor improvement. bugfixes: - evolve: fix branch preservation for merge, - obsfate: improve support for advanced template reformating, - split: preserve author of the splitted changeset. - grab: properly fix hg executable on windows. topic (0.1.0): - stack: also show the unstable status for the current changeset, (issue5553) - stack: properly abort when and unknown topic is requested, - stack: add basic and raw support for named branches, - topic: changing topic on revs no longer adds extra instability, (issue5441) - topic: topics: rename '--change' flag to '--rev' flag, - topic: multiple large performance improvements, - topic: various small output improvement, - topic: improved topic preservation for various commands. 6.4.0 -- 2017-06-16 ------------------- - template: signifiant improvement to the '{obsfate}' template (now 4.2+ only) - template: fix 'successors' and 'precursors' template to expose hex-node - effect flag: the experiment is now active by default, (see 'hg help -e evolve' to opt out) - effect flag: fix a small bug related to hidden changeset, - obscache: reduce impact on large repository - obshashrange: install a '.max-revs' option see extension help for details 6.3.1 -- 2017-06-01 ------------------- - also backport the "revelant-markers" fix when using "evolve.serveronly" 6.3.0 -- 2017-05-31 ------------------- - olog: add an 'obslog' alias - olog: add an '--all' option to show the whole obsolescence history tree. - evolution: add an experiment to track the effect of rewrites. (See hg help - evolve for details) - exchange: fix the "relevant-markers" algorithm to include inline prune. This will impact discovery of obsmarkers between server and client if one still uses the old algorithm. Please upgrade both clients and servers as soon as possible. (See changeset 176d1a0ce385 in core Mercurial for details) - obsdiscovery: add a config flag to disable all obsmarkers discovery (See hg help - evolve for details) - template: add a 'precursors' template that display the closests precursors of changesets - template: add a 'successors' template that display the closests successors of changesets - template: add a 'obsfate' template that display how a changeset has evolved - new discovery experiment: add options to restrict memory consumption on large repository (see "hg help -e evolve" for details). - evolve: fix --rev handling in --list mode 6.2.1 -- 2017-05-23 ------------------- - prune: fix a crash related to color handling, - next: fix a crash related to color handling, - discovery: document the 'obshashrange' experiment, - cache: reduce the warming load in case of reset, - cache: add a 'experimental.obshashcache.warm-cache' option to allow disabling post transaction cache warming. 6.2.0 -- 2017-05-18 ------------------- - olog: a new command to inspect the obs-history of a changeset (hg-4.0 + only), - topic: have thg display topic name if possible, - blackbox: log more information about discovery and cache computation, - obscache: more efficient update in the (rare) case of a transaction adding markers without changesets, - obscache: fix more cache invalidation propagation, - obscache: also enable the new cache (from 6.1.0) for 'evolve.server-only', - obshashrange-cache: update incrementally in the (common) case of a transaction not affecting existing range, - obshashrange-cache: keep the cache warm after each transaction, - topic: now requires Mercurial 4.0 or above, - stack: now display if current revision is in bad state (issue5533), - stack: fix json output to be valid json. 6.1.0 -- 2017-05-03 ------------------- - improve message about obsolete working copy parent, - improve message issued when accessing hidden nodes (4.2 only), - introduce a new caches to reduce the impact of evolution on read-only commands, - add a 'experimental.auto-publish' config. See `hg help -e evolve` for details. - fix the propagation of some some cache invalidation, 6.0.1 -- 2017-04-20 ------------------- - template: adapt to change in 4.2, - fix 'debugrecordpruneparents' (outdated API usage) - checkheads: give priority to updated 4.2 code, - serveronly: fix repository initialization. 6.0.0 -- 2017-03-31 ------------------- - push: improved detection of obsoleted remote branch (issue4354), - drop compatibility for Mercurial < 3.8, - removed old (unpackaged) pushexperiment extension, - move all extensions in the official 'hgext3rd' namespace package, - add the "topic" experimental extensions. See the README.topic file for details - officially ship 'evolve.serveronly' extensions. That extensions contains only the part related to exchange and is intended to be used by server. Using the extension will enable evolution, use 'experimental.evolution=!' to disable obsmarkers echange. The old '__temporary__.advertiseobsolete' option is no longer supported. - a new prototype of obsmarker discovery is available. The prototype is still at early stage and not recommended for production. Examples of current limitations: - write access to the repo is highly recommanded for all operation, - large memory footprint, - initial caching is slow, - unusable on large repo (because of various issue pointed earlier), - likely to constains various bugs. It can be tested by setting `experimental.obshashrange=1` on both client and server. It is recommanded to get in touch with the evolve maintainer if you decide to test it. - the 'debugrecordpruneparents' have been moved into the 'evolve.legacy' separate extension. enable that extentions if you need to convert/update markers in an old repository. 5.6.1 -- 2017-02-28 ------------------- - fix a crash that sometime happened when evolving merges. 5.6.0 -- 2017-02-01 ------------------- - compatibility with Mercurial 4.1. - improvement of prune error message. - fold: require --from flag for folding revisions to working copy - fix crash when trying to fold an empty revision set (issue5453) - uncommit: preserve copy information of remaining files (issue5403) 5.5.0 -- 2016-10-30 ------------------- - The {obsolete} template now yield "obsolete" or "". - compatibility with Mercurial 4.0 - Fix erroneous manifest computation when solving 'bumped' changeset. - split: avoid crash on empty commit (issue5191), - next: improve locking to avoid issue with working copy parent (issue5244) - prev: improve locking to avoid issue with working copy parent (issue5244) - evolve: fix abort suggestion to include '.' in 'hg update -C .' 5.4.1 -- 2016-08-01 ------------------- - compat with Mercurial 3.9 5.4.0 -- 2016-05-06 ------------------- - Some collaboration with the topic experimental extensions, - hg evolve --all with consider all troubles in your current topic, - preserve 'topic' during evolve, - 'next' and 'prev' restrict themself to the current topic by default, - remove the dangerous 'kill' alias for 'prune' (because 'hg kill -1' without the leading 'hg' will give you an hardtime) - during 'hg evolve' skip unsupported merge instead of aborting - various documentation fix and update - hg summary now suggest 'hg evolve --continue when appropriate` - compatibility with Mercurial 3.8 'hgext' namespace package. - small improvement to the `hg split` instruction - add a 'metaedit' command to rewrite changeset meta data. 5.3.0 -- 2016-02-11 ------------------- - split: add a new command to split changesets, - tests: drop our copy of 'run-tests.py' use core one instead, - bookmark: do all bookmark movement within a transaction. - evolve: compatibility with Mercurial 3.7 - evolve: support merge with a single obsolete parent (hg-3.7+ only) - evolve: prevent added file to be marked as unknown if evolve fails (issue4966) - evolve: stop relying on graftstate file for save evolve state (for `hg evolve --continue`) - evolve: fix divergence resolution when it result in an empty commit (issue4950) (hg-3.5+ only) - no longer lock the repository for `hg parents` (issue4895) - updated help for the `evolve` command 5.2.1 -- 2015-11-02 ------------------- - add compatibility with Mercurial 3.6 - prune: fixed possible issue with lock and bookmark - next/prev: fixed possible issue with lock and bookmark - add some progress data during changesets discovery - take advantage of dirstate/transaction collaboration 5.2.0 -- 2015-06-25 ------------------- - evolve: gain a --rev option to control what revisions to evolve (issue4391) - evolve: revision are processed in the order they stack on destination - evolve: properly skip unstable revision with non-evolved unstable parent - evolve: gain --unstable --divergent --bumped flag to select the trouble - evolve: issue more useful error message and hint when evolve has nothing to do as invocated. - evolve: bare `hg evolve` commands now abort when multiple changesets could be a target. - evolve: `hg evolve --all` only evolve changeset that will end up as descendant of the current working copy. The old behavior of `--all` in now in `--all --any`. - evolve: add a 'experimental.evolutioncommands' for fine grained commands enabling - next/prev: requires `--merge` to move with uncommitted changes - next: significantly reword error messages - next: add a --evolve flag to evolve aspiring children when on a head 5.1.5 -- 2015-06-23 ------------------- - minor documentation cleanup - support -i option for `hg amend` if commit supports it (3.4) - fix the `debugrecordpruneparents` utility - fix some possible crash during command abort (release nonexistent transaction) - fix simple4server bug tracker URL - compatibility with bookmark API change in future Mercurial 3.5 - prune no longer move the active bookmark for no reason (issue4559) - evolve: stop reporting divergence base as missing when we actually have it - significant performance improvement for all revsets. - provide a hint of how to update to the successor of an obsolete working copy parent. 5.1.4 -- 2015-04-23 ------------------- - significant documentation update - fix issue4616: pulling with bundle2 would crash if common marker when discovered on non-served changesets. - fix the debugobsrelsethashtree command 5.1.3 -- 2015-04-20 ------------------- - discovery: fix misbehaving discovery across python version - pull: properly install the bundle2 par generator (avoid sending all markers for each pull) - commit: avoid potential deadlock (acquires wlock before lock) - graft: avoid potential deadlock (acquires wlock before lock) 5.1.2 -- 2015-04-01 ------------------- - evolve: prevent a crash in httpclient_pushobsmarkers() when pushing 5.1.1 -- 2015-03-05 ------------------- - debugobsconvert: fix invalid markers during conversion - discovery: cache some of the obs hash computation to improve performance (issue4518) - revset: fix some crash with (issue4515) 5.1 -- 2015-01-30 ------------------- - evolve: explicitly disable bookmark on evolve (issue4432) - evolve: don't abort Mercurial on version mismatch - compatibility with mercurial 3.3 5.0.2 -- 2014-12-14 ------------------- - evolve: remove dependency to the rebase extension 5.0.1 -- 2014-11-25 ------------------- - amend: fix --logfile argument - evolve: preserve branch change when evolving - evolve: fix potential crash while solving `bumped` changesets. - uncommit: abort when rev specifies the current changeset - evolve: various message improvement - evolve: fix selection of changeset to evolve from the middle of a stack (issue4434) - evolve: make next/prev only move bookmarks optionally - evolve: tell user which "base of divergent changeset" is not found 5.0.0 -- 2014-10-22 ------------------- - drop compat with Mercurial pre 3.2 - uncommit: add a --rev argument - evolve: add a `working directory now at xxxxxxxxxx` message - evolve: automatically translate obsolete hashes when evolving - properly skip marker creating if patch apply cleanly - prune: work around a massive slowdown from lazy revset - grab: "fix" the grab alias on window - fix an issue where prune performance were quadratic with the number of changesets pruned. - pull: use discovery to pull less obsmarkers through bundle2 4.1.0 -- 2014-08-08 ------------------- - amend: add -D/--current-date option - amend: add -U/--current-user option - evolve: add a --tool option - evolve: add a --confirm option - mark "commit -o", "graft -o" and "graft -O" as deprecated since they are unlikely to eventually make it into core. - push obsmarkers and phases in the same transaction than changesets (when using hg >= 3.1 and bundle2-exp is enabled) - hide message about the obsolescence marker exchange behind a `experimental.verbose-obsolescence-exchange` variable (default to False). 4.0.1 -- 2014-08-08 ------------------- - createmarkers() accept an iterable (for compat with other extension) 4.0.0 -- 2014-06-03 ------------------- - require Mercurial version 3.0.1 or above - some compatibility fixes with future 3.1.0 - deprecated `gup` and `gdown` in favor of prev and next - record parent of pruned parent at prune time - added a `debugobsstorestat` command to gather data on obsmarker content. - added a `debugrecordpruneparents` command to upgrade existing prune marker with parent information. Please run it once per repo after upgrading. - improvement to obsolescence marker exchange: - added progress when pushing obsmarkers - added multiple output during obsolescence markers exchange - only push markers relevant to pushed subset - add a new experimental way to exchange marker (when server support): - added progress when pulling obsmarkers - only pull markers relevant to pulled subset - avoid exchanging common markers in some case - use bundle2 as transport when available. - add a hook related to the new commands 3.3.2 -- 2014-05-14 ------------------- - fix a bug where evolve were creating changeset with 2 parents on windows (fix issues #16, #35 and #42) - adds a --obsolete flag to import (requires Mercurial 3.0) - prune: update to successor rather than parent when pruning '.' with -s - fold: add missing --message and --logfile option - fold: add squash as an alias 3.3.1 -- 2014-04-23 ------------------- - various language fix - active bookmark now move when using prev/next (#37) - fix some preservation of rename information on evolve (#33) - abort when evolve tries to move a node on top of itself (will helps on the #35 front) - fold: enable --date and --user options 3.3.0 -- 2014-03-04 ------------------- - raise Mercurial's minimal requirement to 2.7 - drop `latercomer` and `conflicting` compatibility. Those old alias are deprecated for a long time now. - add verbose hint about how to handle corner case by hand. This should help people until evolve is able to to it itself. - removed the qsync extension. The only user I knew about (logilab) is not using it anymore. It not compatible with coming Mercurial version 2.9. - add progress indicator for long evolve command - report troubles creation from `hg import` 3.2.0 -- 2013-11-15 ------------------- - conform to the Mercurial custom of lowercase messages - added a small extension to experiment with obsolescence marker push - amend: drop the deprecated note option - amend: use core mechanism for amend (fix multiple bugs) - parents command: add "working directory parent is obsolete" message - evolve command: allow updating to the successor if the parent is obsolete - gdown and gup commands: add next and previous alias, respectively - make grab aliases compatible with Mercurial 2.8 - Tested with 2.6, 2.7 and 2.8 3.1.0 -- 2013-02-11 ------------------- - amend: drop deprecated --change option for amend - alias: add a grab alias to be used instead of graft -O - touch: add a --duplicate option to *not* obsolete the old version - touch: fix touching multiple revision at the same time - evolve: add a --all option - prune: various minor improvements - prune: add option to prune a specific bookmark - prune: add -u and -d option to control metadata 3.0.0 -- 2013-02-02 ------------------- - compatibility with 2.5 2.2.0 -- ------------------- - make evolve smarter at picking next troubled to solved without --any 2.1.0 -- 2012-12-03 ------------------- - qsync fixes - have qfold ask for commit message 2.0.0 -- 2012-10-26 ------------------- - compat with mercurial 2.4 1.1.0 -- 2012-10-26 ------------------- - fix troubles creation reporting from rebase - rename latecomer to bumped - renamed conflicting to divergent - smarter divergent handling 1.0.2 -- 2012-09-19 ------------------- - fix hg fold bug - fix hg pull --rebase - fix detection of conflict with external tools - adapt to core movement (caches and --amend) 1.0.1 -- 2012-08-31 ------------------- - documentation improvement - fix a performance bug with hgweb 1.0 -- 2012-08-29 ------------------- - Align with Mercurial version 2.3 (drop 2.2 support). - stabilize handle killed parent - stabilize handle late comer - stabilize handle conflicting - stabilize get a --continue switch - merge and update ignore extinct changeset in most case. - new "troubled()" revset - summary now reports troubles changesets - new touch command - new fold command - new basic olog alias - rebase refuse to work on public changeset again - rebase explicitly state that there is nothing to rebase because everything is extinct() when that happen. - amend now cleanly abort when --change switch is misused 0.7 -- 2012-08-06 ------------------- - hook: work around insanely huge value in obsolete pushkey call - pushkey: properly handle abort during obsolete markers push - amend: wrap the whole process in a single transaction. - evolve: tweak and add EOL to kill warning - obsolete: fix doc, rebase no longer aborts with --keep - obsolete/evolve: fix grammar in prerequisite messages - evolve: avoid duplication in graft wrapper - evolve: graft --continue is optional, test 0.6 -- 2012-07-31 ------------------- - obsolete: change warning output to match mercurial core on - qsync: ignore nonexistent nodes - make compat server both compatible with "dump" and "dump%i" version 0.5 -- 2012-07-16 ------------------- - obsolete: Detect conflicting changeset! - obsolete: adapt to core: marker are written in transaction now - evolve: add the solve alias to obsolete - doc: big update of terms and summary of the concept - evolve: switch the official name for "kill" to prune 0.4.1 -- 2012-07-10 ------------------- - [convert] properly exclude null successors from conversion - Ignore buggy marker in newerversion 0.4.0 -- 2012-07-06 ------------------- - obsolete: public changeset are no longer latecomer. - obsolete: move to official binary format - adapt for new mercurial - obsolete: we are not compatible with 2.1 any more 0.3.0 -- 2012-06-27 ------------------- - obsolete: Add "latecomer" error detection (stabilize does not handle resolution yet) - evolve: Introduce a new `uncommit` command to remove change from a changeset - rebase: allow the use of --keep again - commit: --amend option create obsolete marker (but still strip) - obsolete: fewer marker are created when collapsing revision. - revset: add, successors(), allsuccessors(), precursors(), allprecursors(), latecomer() and hidden() - evolve: add `prune` alias to `kill`. - stabilize: clearly state that stabilize does not handle conflict - template: add an {obsolete} keyword 0.2.0 -- 2012-06-20 ------------------- - stabilize: improve choice of the next changeset to stabilize - stabilize: improve resolution of several corner case - rebase: handle removing empty changesets - rebase: handle --collapse - evolve: add `obsolete` alias to `kill` - evolve: add `evolve` alias to `stabilize` hg-evolve-11.1.3/COPYING0000666000000000000000000004325714606303052014500 0ustar rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. hg-evolve-11.1.3/MANIFEST.in0000666000000000000000000000133314606303052015170 0ustar rootroot00000000000000include CHANGELOG include COPYING include hgext3rd/topic/README include MANIFEST.in include README.rst include setup.py recursive-include hgext3rd *.py recursive-include tests *.py *.sh *.t include docs/makefile include docs/*.py include docs/README include docs/*.rst include docs/static/*.svg include docs/tutorials/*.t include docs/tutorial/standalone.html recursive-include docs/figures *.svg *.png recursive-include docs/tutorial *.css *.js *.md *.py *.rst *.sh *.t exclude docs/tutorial/.netlify exclude .gitlab-ci.yml exclude hgext3rd/evolve/legacy.py exclude .hg-format-source exclude Makefile exclude tests/test-drop.t exclude tests/test-oldconvert.t prune contrib prune debian prune .gitlab prune hgext3rd/evolve/hack hg-evolve-11.1.3/PKG-INFO0000644000000000000000000002474014606303054014534 0ustar rootroot00000000000000Metadata-Version: 1.0 Name: hg-evolve Version: 11.1.3 Summary: Flexible evolution of Mercurial history. Home-page: https://www.mercurial-scm.org/doc/evolution/ Author: Pierre-Yves David Author-email: pierre-yves.david@ens-lyon.org License: GPLv2+ Description: ============================= Mutable History For Mercurial ============================= Evolve Extension ================ This package supplies the evolve extension for Mercurial, **The full implementation of the changeset evolution concept is still in progress.** Please subscribe to the `evolve-testers mailing list `_ to stay up to date with changes. This extension: * enables the "`changeset evolution`_" feature of core Mercurial, * provides a set of commands to rewrite history in a distributed way, * issues various warning messages when "troubles" from changeset evolution appear in your repository, * provides an ``hg evolve`` command to deal with such troubles, * improves performance of obsolescence marker exchange and discovery during push and pull. .. _`changeset evolution`: https://www.mercurial-scm.org/wiki/ChangesetEvolution Documentation ------------- We recommend reading the documentation first. An online version is available here: https://www.mercurial-scm.org/doc/evolution/ Source of the documentation can be found in ``docs/``. How to Install ============== Using Pip --------- You can install the latest released version using pip:: $ pip install --user hg-evolve Then enable it in your hgrc:: $ hg config --edit # add these two lines: [extensions] evolve = From Source ----------- To install a local version from source:: $ hg clone https://www.mercurial-scm.org/repo/evolve/ $ cd evolve # optionally `hg update ` $ pip install --user . Then enable it in your hgrc:: $ hg config --edit # add these two lines: [extensions] evolve = It's also possible to use evolve without installing it, in which case you will need to provide the full path to ``hgext3rd/evolve/``, for example:: [extensions] evolve = ~/evolve/hgext3rd/evolve Pitfalls -------- If you get ``"failed to import extension evolve: No module named 'evolve'"`` error, there are a couple of things to check: * make sure you gave pip the correct package name (it's hg-evolve), * make sure evolve is installed for the same version of Python that you use for running Mercurial (``hg debuginstall | grep Python``). Extension Purpose ================= The goal of this extension is to provide an appropriate place for code and concepts related to `changeset evolution`_ to mature. In this extension we allow hackier code, unlocking quick experimentation and faster iterations. In addition, evolve extension supports a wide range of Mercurial versions, allowing us to reach a larger user base for feedback. The extension is not tied to the Mercurial release cycle and can release new features and bug fixes at a higher rate if necessary. Once a concept is deemed ready, its implementation is moved into core Mercurial. The maturation period helped us to get a clearer picture of what was needed. During the upstreaming process, we can use this clearer picture to clean up the code and upgrade it to an appropriate quality for core Mercurial. Python 3 Support ================ Mercurial announced official `support for Python 3`_ starting with its 5.2 release. Since 9.3.0, evolve has official support for Python 3.6+. .. _`support for Python 3`: https://www.mercurial-scm.org/wiki/Python3 Python 2 Support ================ Python 2 is supported by evolve. However, Mercurial 6.2 release dropped support for it, so evolve can work on Python 2 only on earlier versions. Debian packages that are built using Heptapod CI only install files for Python 3, because they target current Debian stable. How to Contribute ================= Discussion happens in #hg-evolve and #mercurial on libera_ IRC network. .. _libera: https://libera.chat/ Bugs are to be reported on the Mercurial's bug tracker (component: `evolution`_). .. _evolution: https://bz.mercurial-scm.org/buglist.cgi?component=evolution&query_format=advanced&resolution=--- The recommended way to submit a patch is to create a Merge Request on https://foss.heptapod.net/mercurial/evolve. To do so, create an account and request access. You'll then be able to create a topic-based merge request. Alternatively, you can use the patchbomb extension to send email to `mercurial devel `_. Please make sure to use the evolve-ext flag when doing so. You can use a command like this:: $ hg email --to mercurial-devel@mercurial-scm.org --flag evolve-ext --rev '' For guidelines on the patch description, see the `official Mercurial guideline`_. .. _`official Mercurial guideline`: https://mercurial-scm.org/wiki/ContributingChanges#Patch_descriptions Please don't forget to update and run the tests when you fix a bug or add a feature. To run the tests, you need a working copy of Mercurial, say in $HGSRC:: $ cd tests $ python $HGSRC/tests/run-tests.py When certain blocks of code need to cope with API changes in core Mercurial, they should have comments in the ``hg <= x.y (commit hash)`` format. For example, if a function needs another code path because of changes introduced in 02802fa87b74 that was first included in Mercurial 5.3, then the comment should be:: # hg <= 5.2 (02802fa87b74) See also tests/test-check-compat-strings.t. Branch policy ------------- The evolve tests are highly impacted by changes in core Mercurial. To deal with this, we use named branches. There are two main branches: "stable" and "default". Tests on these branches are supposed to pass with the corresponding "default" and "stable" branch from core Mercurial. The documentation is built from the tip of stable. In addition, we have compatibility branches to check tests on older versions of Mercurial. They are the "mercurial-x.y" branches. They are used to apply expected test changes only, no code changes should happen there. Test output changes from a changeset in core should add the following line to their patch description:: CORE-TEST-OUTPUT-UPDATE: Format-source config ==================== Format-source helps smooth out the pain of merging after auto-formatting. Follow the installation instructions at the `format-source`_ repo. .. _`format-source`: https://foss.heptapod.net/mercurial/format-source Then update your per-repo config file:: $ hg config --local --edit # add these lines: [extensions] formatsource = [format-source] byteify-strings = python3 ~/hg/contrib/byteify-strings.py --dictiter --treat-as-kwargs kwargs opts commitopts TROUBLES --allow-attr-methods byteify-strings:mode.input = file byteify-strings:mode.output = pipe Release Checklist ================= * use contrib/merge-test-compat.sh to merge with the test compatibility branches, * make sure the tests are happy on all supported versions, * make sure there is no code difference between the compatibility branches and stable (no diff within hgext3rd/), * update the ``testedwith`` variable for all extensions (remove '.dev0'): - hgext3rd/evolve/metadata.py - hgext3rd/topic/__init__.py - hgext3rd/pullbundle.py * make sure CHANGELOG is up-to-date, * add a date to the CHANGELOG entry for the target version, * update the ``__version__`` field of all relevant extensions: - hgext3rd/evolve/metadata.py - hgext3rd/topic/__init__.py - hgext3rd/pullbundle.py (if touched) * create a new Debian changelog entry: - debchange --newversion x.y.z-1 "new upstream release" - debchange --release * sanity check install and sdist targets of setup.py: - python setup.py install --home=$(mktemp -d) - python setup.py sdist * tag the commit, * move ``@`` bookmark to the new tag, * push and publish the tag, * upload the tarball to PyPI, * build .deb on Heptapod CI for the tagged commit, * make an announcement on evolve-testers@mercurial-scm.org and mercurial@mercurial-scm.org, * bump versions of all extensions and add ``.dev0`` (see existing commits as an example): - hgext3rd/evolve/metadata.py - hgext3rd/topic/__init__.py - hgext3rd/pullbundle.py Version bump rules: - stable branch x.y.z+1.dev0 - default branch x.y+1.0.dev0 * merge stable into default. Keywords: hg mercurial Platform: UNKNOWN hg-evolve-11.1.3/README.rst0000666000000000000000000002012214606303052015116 0ustar rootroot00000000000000============================= Mutable History For Mercurial ============================= Evolve Extension ================ This package supplies the evolve extension for Mercurial, **The full implementation of the changeset evolution concept is still in progress.** Please subscribe to the `evolve-testers mailing list `_ to stay up to date with changes. This extension: * enables the "`changeset evolution`_" feature of core Mercurial, * provides a set of commands to rewrite history in a distributed way, * issues various warning messages when "troubles" from changeset evolution appear in your repository, * provides an ``hg evolve`` command to deal with such troubles, * improves performance of obsolescence marker exchange and discovery during push and pull. .. _`changeset evolution`: https://www.mercurial-scm.org/wiki/ChangesetEvolution Documentation ------------- We recommend reading the documentation first. An online version is available here: https://www.mercurial-scm.org/doc/evolution/ Source of the documentation can be found in ``docs/``. How to Install ============== Using Pip --------- You can install the latest released version using pip:: $ pip install --user hg-evolve Then enable it in your hgrc:: $ hg config --edit # add these two lines: [extensions] evolve = From Source ----------- To install a local version from source:: $ hg clone https://www.mercurial-scm.org/repo/evolve/ $ cd evolve # optionally `hg update ` $ pip install --user . Then enable it in your hgrc:: $ hg config --edit # add these two lines: [extensions] evolve = It's also possible to use evolve without installing it, in which case you will need to provide the full path to ``hgext3rd/evolve/``, for example:: [extensions] evolve = ~/evolve/hgext3rd/evolve Pitfalls -------- If you get ``"failed to import extension evolve: No module named 'evolve'"`` error, there are a couple of things to check: * make sure you gave pip the correct package name (it's hg-evolve), * make sure evolve is installed for the same version of Python that you use for running Mercurial (``hg debuginstall | grep Python``). Extension Purpose ================= The goal of this extension is to provide an appropriate place for code and concepts related to `changeset evolution`_ to mature. In this extension we allow hackier code, unlocking quick experimentation and faster iterations. In addition, evolve extension supports a wide range of Mercurial versions, allowing us to reach a larger user base for feedback. The extension is not tied to the Mercurial release cycle and can release new features and bug fixes at a higher rate if necessary. Once a concept is deemed ready, its implementation is moved into core Mercurial. The maturation period helped us to get a clearer picture of what was needed. During the upstreaming process, we can use this clearer picture to clean up the code and upgrade it to an appropriate quality for core Mercurial. Python 3 Support ================ Mercurial announced official `support for Python 3`_ starting with its 5.2 release. Since 9.3.0, evolve has official support for Python 3.6+. .. _`support for Python 3`: https://www.mercurial-scm.org/wiki/Python3 Python 2 Support ================ Python 2 is supported by evolve. However, Mercurial 6.2 release dropped support for it, so evolve can work on Python 2 only on earlier versions. Debian packages that are built using Heptapod CI only install files for Python 3, because they target current Debian stable. How to Contribute ================= Discussion happens in #hg-evolve and #mercurial on libera_ IRC network. .. _libera: https://libera.chat/ Bugs are to be reported on the Mercurial's bug tracker (component: `evolution`_). .. _evolution: https://bz.mercurial-scm.org/buglist.cgi?component=evolution&query_format=advanced&resolution=--- The recommended way to submit a patch is to create a Merge Request on https://foss.heptapod.net/mercurial/evolve. To do so, create an account and request access. You'll then be able to create a topic-based merge request. Alternatively, you can use the patchbomb extension to send email to `mercurial devel `_. Please make sure to use the evolve-ext flag when doing so. You can use a command like this:: $ hg email --to mercurial-devel@mercurial-scm.org --flag evolve-ext --rev '' For guidelines on the patch description, see the `official Mercurial guideline`_. .. _`official Mercurial guideline`: https://mercurial-scm.org/wiki/ContributingChanges#Patch_descriptions Please don't forget to update and run the tests when you fix a bug or add a feature. To run the tests, you need a working copy of Mercurial, say in $HGSRC:: $ cd tests $ python $HGSRC/tests/run-tests.py When certain blocks of code need to cope with API changes in core Mercurial, they should have comments in the ``hg <= x.y (commit hash)`` format. For example, if a function needs another code path because of changes introduced in 02802fa87b74 that was first included in Mercurial 5.3, then the comment should be:: # hg <= 5.2 (02802fa87b74) See also tests/test-check-compat-strings.t. Branch policy ------------- The evolve tests are highly impacted by changes in core Mercurial. To deal with this, we use named branches. There are two main branches: "stable" and "default". Tests on these branches are supposed to pass with the corresponding "default" and "stable" branch from core Mercurial. The documentation is built from the tip of stable. In addition, we have compatibility branches to check tests on older versions of Mercurial. They are the "mercurial-x.y" branches. They are used to apply expected test changes only, no code changes should happen there. Test output changes from a changeset in core should add the following line to their patch description:: CORE-TEST-OUTPUT-UPDATE: Format-source config ==================== Format-source helps smooth out the pain of merging after auto-formatting. Follow the installation instructions at the `format-source`_ repo. .. _`format-source`: https://foss.heptapod.net/mercurial/format-source Then update your per-repo config file:: $ hg config --local --edit # add these lines: [extensions] formatsource = [format-source] byteify-strings = python3 ~/hg/contrib/byteify-strings.py --dictiter --treat-as-kwargs kwargs opts commitopts TROUBLES --allow-attr-methods byteify-strings:mode.input = file byteify-strings:mode.output = pipe Release Checklist ================= * use contrib/merge-test-compat.sh to merge with the test compatibility branches, * make sure the tests are happy on all supported versions, * make sure there is no code difference between the compatibility branches and stable (no diff within hgext3rd/), * update the ``testedwith`` variable for all extensions (remove '.dev0'): - hgext3rd/evolve/metadata.py - hgext3rd/topic/__init__.py - hgext3rd/pullbundle.py * make sure CHANGELOG is up-to-date, * add a date to the CHANGELOG entry for the target version, * update the ``__version__`` field of all relevant extensions: - hgext3rd/evolve/metadata.py - hgext3rd/topic/__init__.py - hgext3rd/pullbundle.py (if touched) * create a new Debian changelog entry: - debchange --newversion x.y.z-1 "new upstream release" - debchange --release * sanity check install and sdist targets of setup.py: - python setup.py install --home=$(mktemp -d) - python setup.py sdist * tag the commit, * move ``@`` bookmark to the new tag, * push and publish the tag, * upload the tarball to PyPI, * build .deb on Heptapod CI for the tagged commit, * make an announcement on evolve-testers@mercurial-scm.org and mercurial@mercurial-scm.org, * bump versions of all extensions and add ``.dev0`` (see existing commits as an example): - hgext3rd/evolve/metadata.py - hgext3rd/topic/__init__.py - hgext3rd/pullbundle.py Version bump rules: - stable branch x.y.z+1.dev0 - default branch x.y+1.0.dev0 * merge stable into default. hg-evolve-11.1.3/docs/0000755000000000000000000000000014606303054014360 5ustar rootroot00000000000000hg-evolve-11.1.3/docs/README0000666000000000000000000000120714606303052015242 0ustar rootroot00000000000000Doc is generated with sphinx. You can generate the doc with: ``` make ``` # Tutorials For updating the tutorials, you need to have the docgraph extension installed (https://pypi.python.org/pypi/hg-docgraph). Then run the test-topic-tutorial.t and test-tutorial.t to update the output if needed. You'll need the dot binary (likely installed by the graphviz package in your package manager) in order to have graphviz graphs rendered in the html output. Simply run make in the docs directory should takes care of the conversion of the tutorial .t files into .rst files. Then sphinx should do the rest of the jobs by rendering graphviz graphs. hg-evolve-11.1.3/docs/commands.rst0000666000000000000000000000104414606303052016714 0ustar rootroot00000000000000------------------------- Evolve Commands Reference ------------------------- .. highlight:: none amend ----- .. hghelp:: amend evolve ------ .. hghelp:: evolve fold ---- .. hghelp:: fold metaedit -------- .. hghelp:: metaedit next ---- .. hghelp:: next obslog ------ .. hghelp:: obslog pdiff ----- .. hghelp:: pdiff previous -------- .. hghelp:: previous prune ----- .. hghelp:: prune pstatus ------- .. hghelp:: pstatus split ----- .. hghelp:: split touch ----- .. hghelp:: touch uncommit -------- .. hghelp:: uncommit hg-evolve-11.1.3/docs/concepts.rst0000666000000000000000000002034314606303052016734 0ustar rootroot00000000000000.. Copyright 2014 Greg Ward ---------------- Evolve: Concepts ---------------- Getting the most out of software requires an accurate understanding of the concepts underlying it. For example, you cannot use Mercurial to its full potential without understanding the DAG (directed acyclic graph) of changesets and the meaning of parent/child relationships between nodes in that graph. Mercurial with changeset evolution adds some additional concepts to the graph of changesets. Understanding those concepts will make you an informed and empowered user of ``evolve``. .. note:: This document contains math! If you have a pathological fear of set theory and the associated notation, you might be better off just reading the `user guide`_. But if you appreciate the theoretical rigour underlying core Mercurial, you will be happy to know that it continues right into changeset evolution. .. note:: This document is incomplete! (The formatting of the math isn't quite right yet, and the diagrams are missing for malformatted.) This document follows standard set theory notation:: x ∈ A: x is a member of A A ∪ B: union of A and B: { x | x ∈ A or x ∈ B } A ∖ B: set difference: { x | x ∈ A and x ∉ B } A ⊇ B: superset: if x ∈ B, then x ∈ A .. _`user guide`: user-guide.html Phases ------ First, every changeset in a Mercurial repository (since 2.3) has a *phase*. Phases are independent of ``evolve`` and they affect Mercurial usage with or without changeset evolution. However, they were implemented in order to support evolution, and are a critical foundation of ``evolve``. Phases are strictly ordered: secret > draft > public Changesets generally only move from a higher phase to a lower phase. Typically, changesets start life in *draft* phase, and move to *public* phase when they are pushed to a public repository. (You can set the default phase of new commits in Mercurial configuration.) The purpose of phases is to prevent modifying published history. ``evolve`` will therefore only let you rewrite changesets in one of the two *mutable* phases (secret or draft). Run ``hg help phases`` for more information on phases. Obsolete changesets ------------------- *Obsolescence* is they key concept at the heart of changeset evolution. Everything else in this document depends on understanding obsolescence. So: what does it mean for a changeset to be obsolete? In implementation terms, there is an *obsolescence marker* associated with changesets: every changeset is either obsolete or not. The simplest way that a changeset becomes obsolete is by *pruning* it. The ``hg prune`` command simply marks the specified changesets obsolete, as long as they are mutable. More commonly, a changeset *A* becomes obsolete by *amending* it. Amendment creates a new changeset *A'* that replaces *A*, which is now obsolete. *A'* is the successor of *A*, and *A* the predecessor of *A'*: [diagram: A and A' with pred/succ edge] The predecessor/successor relationship forms an additional *obsolescence graph* overlaid on top of the traditional DAG formed by changesets and their parent/child relationships. In fact, the obsolescence graph is second-order version control. Where the traditional parent/child DAG tracks changes to your source code, the obsolescence graph tracks changes to your changesets. It tracks the evolution of your changesets. (If you prefer a calculus metaphor to set theory, it might help to think of the traditional parent/child DAG as the first derivative of your source code, and the obsolescence DAG as the second derivative.) Unstable changesets (orphan, phase-divergent, content-divergent) ---------------------------------------------------------------- Evolving history can introduce problems that need to be solved. For example, if you prune a changeset *P* but not its descendants, those descendants are now on thin ice. To push a changeset to another repository *R*, all of its ancestors must be present in *R* or pushed at the same time. But Mercurial does not push obsolete changesets like *P*, so it cannot push the descendants of *P*. Any non-obsolete changeset that is a descendant of an obsolete changeset is said to be an *orphan*. [diagram: obsolete cset with non-obsolete descendant] Another sort of trouble occurs when two developers, Alice and Bob, collaborate via a shared non-publishing repository. (This is how developers can safely `share mutable history`_.) Say Alice and Bob both start the day with changeset *C* in *draft* phase. If Alice pushes *C* to their public repository, then it is now published and therefore immutable. But Bob is working from a desert island and cannot pull this change in *C*'s phase. For Bob, *C* is still in draft phase and therefore mutable. So Bob amends *C*, which marks it obsolete and replaces it with *C'*. When he is back online and pulls from the public repository, Mercurial learns that *C* is public, which means it cannot be obsolete. We say that *C'* is *phase-divergent*, since it is the successor of a public changeset. .. _`share mutable history`: sharing.html (Incidentally, the terminology here comes from airline overbooking: if two people have bought tickets for the same seat on a plane and they both show up at the airport, only one of them gets on the plane. The passenger who is left behind in the airport terminal has been "phase-divergent".) The third sort of trouble is when Alice and Bob both amend the same changeset *C* to have different successors. When this happens, the successors are both called *content-divergent* (unless one of them is in public phase; only mutable changesets are content-divergent). The collective term for orphan, phase-divergent, and content-divergent changeset is *unstable*:: unstable = orphan ∪ phase-divergent ∪ content-divergent It is possible for a changeset to be in any of the unstable categories at the same time: it might be an orphan and content-divergent, or phase-divergent and content-divergent, or whatever. [diagram: Venn diagram of unstable changesets, showing overlap] The presence of unstable changesets indicates the need to run ``hg evolve``. Hidden (and visible) changesets ------------------------------- Some obsolete changesets are *hidden*: deliberately suppressed by Mercurial and usually not visible through the UI. (As of Mercurial 2.9, there are still some commands that inadvertently reveal hidden changesets; these are bugs and will be fixed in due course.) All hidden changesets are obsolete, and all obsolete changesets are part of your repository. Mathematically speaking:: repo ⊇ obsolete ⊇ hidden Or, putting it visually: [diagram: Venn diagram showing nested strict subsets] However, the presence of obsolete but not hidden changesets should be temporary. The desired end state for any history mutation operation is that all obsolete changesets are hidden, i.e.: repo ⊇ obsolete, obsolete = hidden Visually: [diagram: Venn diagram showing obsolete = hidden, subset of repo] Why is this changeset visible? ------------------------------ Any changeset which is not hidden is *visible*. That is, :: visible = repo ∖ hidden (Recall that ∖ means set difference: *visible* is the set of changesets that are in *repo* but not in *hidden*.) After amending or pruning a changeset, you might expect it to be hidden. It doesn't always work out that way. The precise rules are:: hideable = obsolete blockers = bookmarks ∪ parents(workingcopy) ∪ localtags hidden = hideable ∖ ancestors((repo ∖ hideable) ∪ blockers) This will probably be clearer with a worked example. First, here's a repository with some obsolete changesets, some unstable changesets, one bookmark, a working copy, and some hidden changesets:: x-x / -o-o-o-o \ x-x-o Here's the computation required to determine which changesets are hidden:: repo = { 0, 1, 2, 3, 4, 5, 6, 7, 8 } hideable = obsolete = { 2, 4, 5, 8 } blockers = { 6 } ∪ { 4 } ∪ {} blockers = { 4, 6 } hidden = hideable ∖ ancestors((repo ∖ { 2, 4, 5, 8 }) ∪ { 4, 6 }) hidden = hideable ∖ ancestors({ 0, 1, 3, 6, 7 } ∪ { 4, 6 }) hidden = hideable ∖ ancestors({ 0, 1, 3, 4, 6, 7 }) hidden = { 2, 4, 5, 8 } ∖ { 0, 1, 2, 3, 4, 5, 6, 7 } hidden = { 8 } hg-evolve-11.1.3/docs/conf.py0000666000000000000000000001200014606303052015652 0ustar rootroot00000000000000# Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. from mercurial import demandimport demandimport.disable() from os.path import ( abspath, dirname, join, ) from docutils import nodes from docutils.parsers.rst import Directive from mercurial import ( commands, extensions as hgext, pycompat, ui as uimod, ) extensions = ["sphinx.ext.graphviz"] # autoclass_content = 'both' # Add any paths that contain templates here, relative to this directory. # templates_path = [] # The suffix of source filenames. source_suffix = '.rst' # The master toctree document. master_doc = 'index' # General substitutions. project = 'evolve extension for Mercurial' copyright = '2010-2014, Pierre-Yves David, Greg Ward, and contributors' # The default replacements for |version| and |release|, also used in various # other places throughout the built documents. # # The short X.Y version. version = '0.0' # The full version, including alpha/beta/rc tags. release = '0.0' # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: # today = '' # Else, today_fmt is used as the format for a strftime call. today_fmt = '%B %d, %Y' # List of documents that shouldn't be included in the build. unused_docs = [] # List of directories, relative to source directories, that shouldn't be searched # for source files. # exclude_dirs = [] # The reST default role (used for this markup: `text`) to use for all documents. # default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. # add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). # add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. # show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # Options for HTML output # ----------------------- # The style sheet to use for HTML and HTML Help pages. A file of that name # must exist either in Sphinx' static/ path, or in one of the custom paths # given in html_static_path. # html_style = 'sphinx-default.css' # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". html_title = project html_theme = 'haiku' html_theme_path = ['.'] # A shorter title for the navigation bar. Default is the same as html_title. # html_short_title = None # The name of an image file (within the static path) to place at the top of # the sidebar. # html_logo = 'logo-evolve.svg' # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. html_favicon = 'logo-evolve.ico' # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. # html_use_smartypants = True # Custom sidebar templates, maps document names to template names. # html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. # html_additional_pages = {} # If false, no module index is generated. html_use_modindex = False # If false, no index is generated. # html_use_index = True # If true, the index is split into individual pages for each letter. # html_split_index = False # If true, the reST sources are included in the HTML build as _sources/. # html_copy_source = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. # html_use_opensearch = '' # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). # html_file_suffix = '.html' # Output file base name for HTML help builder. # htmlhelp_basename = '' graphviz_output_format = "svg" class hghelpdirective(Directive): has_content = True def run(self): ui = uimod.ui() if not hasattr(ui, 'disablepager'): return [] ui.disablepager() rootdir = abspath(dirname(dirname(__file__))) evolvepath = join(rootdir, 'hgext3rd', 'evolve') ui.setconfig(b'extensions', b'evolve', pycompat.bytestr(evolvepath)) hgext.loadall(ui) ui.pushbuffer() commands.help_(ui, self.content[0].encode('utf-8')) return [nodes.literal_block(text=ui.popbuffer().decode('utf-8'))] def setup(app): app.add_directive('hghelp', hghelpdirective) hg-evolve-11.1.3/docs/evolve-faq.rst0000666000000000000000000001271314606303052017165 0ustar rootroot00000000000000.. Copyright 2011 Pierre-Yves David .. Logilab SA ------------- Evolve How To ------------- Add a changeset: ``commit`` --------------------------- Just use commit as usual. New changesets will be in the `draft` phase. Rewrite a changeset: ``commit --amend`` --------------------------------------- It writes a new changeset combining working-directory parent changes and parent. It will work on any `draft` or `secret` changeset. It will not work on `public` changesets. To understand what the result of amend will be I use the two following aliases [#]_:: # diff what amend will look like pdiff=diff --rev .^ # status what amend will look like pstatus=status --rev .^ This command can even be invoked on changesets with children, provided none are public. .. [#] (defined by the evolve extension for you) Move a changeset: ``grab`` -------------------------- You can use ``hg grab `` to move a rev at your current location, making the old version obsolete. .. note:: grab is an alias for ``hg rebase --dest . --rev $@; hg up `` Delete a changeset: ``prune`` ----------------------------- A new ``prune`` command allows removing a changeset. Just use ``hg prune ``. Moving within the history: ``gdown`` and ``gup`` ------------------------------------------------ While working on mutable part of the history you often need to move between mutable commits. You just need to use standard update to work with evolve. For convenience, you can use ``hg gup`` to move to the child commit or ``hg gdown`` to move to the parent commit. Those command have ``previous`` and ``next`` alias. .. note:: Those commands only exist for the convenience of getting qpush and qpop feeling back. Collapse changesets: ``fold`` ----------------------------- You can use ``hg fold`` to collapse multiple changesets in a single one. It takes two forms: ``hg fold `` folds everything from you current changeset to `` ``hg fold -r `` fold everything changeset matching the revset together. Getting changes out of a commit ------------------------------- The ``hg uncommit`` command lets you rewrite the parent commit without selected changed files. Target files content is not altered and appears again as "modified":: $ hg st M babar M celestine $ hg commit babar celestine $ hg st $ hg uncommit celestine $ hg status M celestine Split a changeset ----------------- To split on file boundaries, just use ``uncommit`` command. If you need a fine-grained split, there is no official command for that yet. However, it is easily achieved by manual operation:: ### you want to split changeset A: 42 # update to A parent $ hg up 42^ # restore content from A $ hg revert -r 42 --all # partially commit the first part $ hg record # commit the second part $ hg commit # informs mercurial of what happened # current changeset (.) and previous one (.^) replace A (42) $ hg prune --new . --new .^ 42 For more complexe scenario we recommend the use of the histedit_ extension. .. _histedit: https://www.mercurial-scm.org/wiki/HisteditExtension Update my current work in progress after a pull ----------------------------------------------- Whenever you are working on some changesets, it is more likely that a pull will, eventually, import new changesets in your tree. And it is likely that you will want your work in progress changesets to be rebased on the top of this newly imported subtree. Doing so is only a matter of rebasing. Move multiple changesets: ``rebase`` ------------------------------------ You can still use rebase to move a whole segment of the changeset graph together. .. warning:: Beware that rebasing changesets already obsolete will likely result in content-divergent versions of the changesets. Resolve history instability: ``evolve`` --------------------------------------- When you rewrite (amend) a changeset with children without rewriting those children you create *orphan* changesets and *suspended obsolete* changesets. When you are finished amending a given changeset, you will want to declare it stable, in other words rebase its former descendants on its newest version. You can also use evolve to solve `phase-divergent` and `content-divergent` changeset/ Fix my history afterward: ``prune -n`` -------------------------------------- Sometimes you need to create an obsolescence marker by hand. This may happen when upstream has applied some of your patches for example. You can use ``hg prune --successor `` to add obsolescence marker. View diff from the last amend ----------------------------- An ``odiff`` alias have been added by ``enable.sh`` :: [alias] odiff = diff --rev 'limit(predecessors(.),1)' --rev . View obsolescence markers ------------------------- hgview_ is the only viewer that currently supports this feature. You need version 1.6.2 .. _hgview: http://www.logilab.org/project/hgview/ .. image:: figures/hgview-example.png :scale: 50% You can also use a debug command $ hg debugobsolete 5eb72dbe0cb4 e8db4aa611f6 c4cbebac3751 4f1c269eab68 Important Note ============== View change to your file ------------------------ Extinct changesets are hidden using the *hidden* feature of mercurial. Only ``hg log`` and ``hgview`` support it, other graphical viewer do not. You can use ``hg log --graph --hidden`` from the command line hg-evolve-11.1.3/docs/evolve-good-practice.rst0000666000000000000000000000300114606303052021124 0ustar rootroot00000000000000.. Copyright 2011 Pierre-Yves David .. Logilab SA ----------------------------------------- Good practice for (early) users of evolve ----------------------------------------- Avoid unstability ----------------- The less unstability you have the less you need to resolve. Evolve is not yet able to detect and solve every situation. And your mind is not ready neither. Branch as much as possible -------------------------- This is not MQ; you are not constrained to linear history. Making a branch per independent branch will help you avoid unstability and conflict. Rewrite your changes only ------------------------- There is no descent conflict detection and handling right now. Rewriting other people's changesets guarantees that you will get conflicts. Communicate with your fellow developers before trying to touch other people's work (which is a good practice in any case). Using multiple branches will help you to achieve this goal. Prefer pushing unstability to touching other people changesets -------------------------------------------------------------- If you have children changesets from other people that you don't really care about, prefer not altering them to risking a conflict by stabilizing them. Do not get too confident ------------------------ This is an experimental extension and a complex concept. This is beautiful, powerful and robust on paper, but the tool and your mind may not be prepared for all situations yet. hg-evolve-11.1.3/docs/figures/0000755000000000000000000000000014606303054016024 5ustar rootroot00000000000000hg-evolve-11.1.3/docs/figures/figure-sg01-ab.svg0000666000000000000000000000461214606303052021163 0ustar rootroot00000000000000 Mercurial graph 0 0:0dc9 1 1:f649 0->1 T0 public T0->0 T1 draft T1->1 hg-evolve-11.1.3/docs/figures/figure-sg02-b.svg0000666000000000000000000001024314606303052021020 0ustar rootroot00000000000000 Mercurial graph 0 0:0dc9 1 1:f649 0->1 2 2:96d8 0->2 3 3:522d 0->3 1->2 2->3 T12 obsolete (and hidden) T12->1 T12->2 hg-evolve-11.1.3/docs/figures/figure-sg03.svg0000666000000000000000000000577514606303052020620 0ustar rootroot00000000000000 Mercurial graph 0 0:0dc9 1 1:f649 0->1 2 2:522d 0->2 1->2 T1 obsolete (and hidden) after the push T1->1 hg-evolve-11.1.3/docs/figures/figure-sg04-a.svg0000666000000000000000000001144214606303052021023 0ustar rootroot00000000000000 Mercurial graph 0 0:0dc9 1 1:f649 0->1 2 2:522d 0->2 3 3:e42b 0->3 4 4:7b49 0->4 1->2 2->3 3->4 T3 not in the other repo T3->3 hg-evolve-11.1.3/docs/figures/figure-sg04-b.svg0000666000000000000000000001144114606303052021023 0ustar rootroot00000000000000 Mercurial graph 0 0:0dc9 1 1:f649 0->1 2 2:96d8 0->2 3 3:522d 0->3 4 4:7b49 0->4 1->2 2->3 3->4 T2 not in the other repo T2->2 hg-evolve-11.1.3/docs/figures/figure-sg05.svg0000666000000000000000000000366314606303052020614 0ustar rootroot00000000000000 Mercurial graph 0 0:0dc9 1 1:7b49 0->1 T1 only the final version T1->1 hg-evolve-11.1.3/docs/figures/figure-sg06.svg0000666000000000000000000000565014606303052020613 0ustar rootroot00000000000000 Mercurial graph 0 0:0dc9 1 1:7b49 0->1 2 2:4e96 1->2 3 3:3363 1->3 2->3 hg-evolve-11.1.3/docs/figures/figure-sg07-a.svg0000666000000000000000000001307214606303052021027 0ustar rootroot00000000000000 Mercurial graph 0 0:0dc9 1 1:7b49 0->1 2 2:4e96 1->2 3 3:3363 1->3 4 4:c7ff 1->4 5 5:1bb4 1->5 6 6:9d21 1->6 2->3 4->5 5->6 hg-evolve-11.1.3/docs/figures/figure-sg07-b.svg0000666000000000000000000000370714606303052021034 0ustar rootroot00000000000000 Mercurial graph 0 0:0dc9 1 1:7b49 0->1 2 2:9d21 1->2 hg-evolve-11.1.3/docs/figures/figure-sg08-a.svg0000666000000000000000000001502514606303052021030 0ustar rootroot00000000000000 Mercurial graph 0 0:0dc9 1 1:7b49 0->1 2 2:4e96 1->2 3 3:3363 1->3 4 4:c7ff 1->4 5 5:1bb4 1->5 6 6:9d21 1->6 2->3 7 7:dd15 3->7 4->5 5->6 6->7 hg-evolve-11.1.3/docs/figures/figure-sg08-b.svg0000666000000000000000000000503714606303052021033 0ustar rootroot00000000000000 Mercurial graph 0 0:0dc9 1 1:7b49 0->1 2 2:9d21 1->2 3 3:dd15 2->3 hg-evolve-11.1.3/docs/figures/figure-sg09.svg0000666000000000000000000001527014606303052020615 0ustar rootroot00000000000000 Mercurial graph 0 0:0dc9 1 1:7b49 0->1 2 2:9d21 1->2 3 3:dd15 2->3 4 4:b2be 3->4 5 5:541f 3->5 6 6:e3a5 3->6 4->5 4->6 T5 working dir T5->5 T56 content-divergent T56->5 T56->6 hg-evolve-11.1.3/docs/figures/figure-sg10.svg0000666000000000000000000001623414606303052020606 0ustar rootroot00000000000000 Mercurial graph 0 0:0dc9 1 1:7b49 0->1 2 2:9d21 1->2 3 3:dd15 2->3 4 4:b2be 3->4 5 5:541f 3->5 6 6:e3a5 3->6 7 7:aa82 3->7 4->5 4->6 5->7 6->7 T7 final, single successor T7->7 hg-evolve-11.1.3/docs/figures/figure-ug01.svg0000666000000000000000000003663314606303052020615 0ustar rootroot00000000000000 image/svg+xml 0 1 hg commit --amend 0 1' poof! (destructive, not using evolve) hg-evolve-11.1.3/docs/figures/figure-ug02.svg0000666000000000000000000005045114606303052020610 0ustar rootroot00000000000000 image/svg+xml 0 1 0 2 hg commit --amend (safe, using evolve) 1   obsolete (and hidden) predecessor successor hg-evolve-11.1.3/docs/figures/figure-ug03.svg0000666000000000000000000004053214606303052020610 0ustar rootroot00000000000000 image/svg+xml 3 4 hg prune . 3 4 obsolete,hidden,no successors working dir working dir hg-evolve-11.1.3/docs/figures/figure-ug04.svg0000666000000000000000000005456714606303052020626 0ustar rootroot00000000000000 image/svg+xml 3 5 3 6 5   obsolete, hidden predecessor successor working dir (clean) working dir(with uncommittedchanges to f1 f2 ...) hg uncommit f1 f2 ... hg-evolve-11.1.3/docs/figures/figure-ug05.svg0000666000000000000000000007340014606303052020612 0ustar rootroot00000000000000 image/svg+xml 6 7 6 10   obsolete, hidden predecessors successor, working dir hg fold 7 8 9 7 8 9 working dir hg-evolve-11.1.3/docs/figures/figure-ug06.svg0000666000000000000000000007761214606303052020624 0ustar rootroot00000000000000 image/svg+xml hg amend 10 11 10 14   12 13 working dir   11 12 13 obsoletebut visible orphan working dir hg-evolve-11.1.3/docs/figures/figure-ug07.svg0000666000000000000000000006123014606303052020612 0ustar rootroot00000000000000 image/svg+xml hg evolve 10 14 11 12 13   15 16 obsolete, hidden working dir successors hg-evolve-11.1.3/docs/figures/figure-ug08.svg0000666000000000000000000004543214606303052020621 0ustar rootroot00000000000000 image/svg+xml 18 19 20 working dir hg prune 19 18 19 20 obsoletebut visible orphan working dir hg-evolve-11.1.3/docs/figures/figure-ug09.svg0000666000000000000000000003343714606303052020624 0ustar rootroot00000000000000 image/svg+xml hg evolve 18 19 20 21 obsolete, hidden successor,working dir hg-evolve-11.1.3/docs/figures/figure-ug10.svg0000666000000000000000000012200314606303052020600 0ustar rootroot00000000000000 image/svg+xml 21 22 23 21 22 23 obsoletebut visible orphan hg uncommit f1 f2 ... 24 working dir(with uncommittedchanges to f1 f2 ...) hg revert f1 f2 ...hg evolve 21 22 23 24 25 working dir(clean) obsolete,hidden,predecessors successors working dir(clean) hg-evolve-11.1.3/docs/figures/figure-ug11.svg0000666000000000000000000007106714606303052020616 0ustar rootroot00000000000000 image/svg+xml 25 26 27 25 26 27 obsoletebut visible orphan hg uncommit f1 f2 ...hg commit 28 working dir(clean) working dir(clean) 29 hg-evolve-11.1.3/docs/figures/figure-ug12.svg0000666000000000000000000006260714606303052020617 0ustar rootroot00000000000000 image/svg+xml hg evolve 25 26 27 28 working dir(clean) 29 30 two heads!(merge or rebase) hg-evolve-11.1.3/docs/figures/hgview-example.png0000666000000000000000000065141414606303052021471 0ustar rootroot00000000000000‰PNG  IHDR;½™osBITÛáOàtEXtSoftwaregnome-screenshotï¿> IDATxœìw|TÅöÀÏ-Û{6eSH#B€Ð»€ ô" Ö‡ >T,`èSEAýÙPR¤HUéˆôNè¤é›²ÙÝl»å÷Ç„eÙl6w7Ù4æûÞoîN9sÛœ3çÌ ƒÁ`0 ƒÁø…€‚¾©ÅÀ`0Í‚èh0 ":šX¾üPSKÁ`šwßÝ“lj0 ƒÁ`0Ls‡€ãÇ÷7µ ¦¹€? ÆÍ–-‡›Z Ó\ÀÞ ƒÁ`0 SØlÀ`0 ƒÁ`0u€Í†À9²¯çÿ¤À¦oVÙCT¯©Vò¦º˜:i†O8*3ÔÏLã?“ÍðR×¿ÞÆÿ˜`ZóæMnÂì~Êl†‚Õ¿^!R5•ä­º©h1 ®bóæ}^'½Î„Z€›“F»Èur3ß…›æó¤aB¾Å˜fÈ+¯¬hjšø‚4[Z¼·Á=’ç©Ïù<ö“ ¦ëÀ§3õ7îŸÍà¿(¯F¯þõJ°yó¾zvxžFN@rze¯™Ø+Y …û¹_5GjrõøL)PŸÔÿ.`?o´ÿ‚Ÿ'-¸Ækd¡6Áü¿/þÓ{ÖÒhßCü1 HÌM¼y“½¹ÝgÜç=ÔvÒ³ŸéAÀxü+¯¬ð¬ºN1| Ôw?yk ì3½Ï>/BM'IÍìþ^3¥@0Bh ÞÏ(P•Ϋóó*GÈÿ¢jË‚Ž‘ÕQÛ¯5ýËD«ÊY[ #¯Ù3Â[!¼i>—Ý«#^‚;ø¤¬3¦1ñÿÚZ{NJ#ð}þ~ù¯E8¿‡uV‡?&˜›O%»æA …x I_d9xˆ„ñù“ŸkË[›Àu&Øœà²{Y]RŒZ¼·B©®’ä™Ì}œœþsÕÖ ×½ó)¼O9}&ðÊh£ü.Ù~Æ®êÔ'ê¼<Ú% CwA‡1 ø¹†A åÖ™& } ­ŒÚneÓ*…ATêï!þ˜`0 HmZl³UsC*WˆQpõ6·+Ö¢i AJÂG¤üwŸ5{|f:\ÏA²c«s@Ñ¿$Á)uÖâ3ä#ÐZê#‰×˜bÍf Œ>Ë„irjj‡ç$ÔL_gÞPÛµ½›¡þâI籫ãEM}W༅šéëÌœ]QÛdèú"$Aˆ<ÍÐkþ´oƒO/¹À·g¼²—û¾æO½Ðg¤lÍ¢ü$ð2?êÌî“à:'QI"0oÜg_Û5ôŸ¸f.?ú,§ž 0M‹ð¬fj‚A ‚ ¬EHúFøÖY]@$L@Ò6à æ¦Âkq@Y@Øyý§M×Uˆœ53Ö–×gáWÆ+»)à>sù‘´ðïÿѲ†mZÐŽl ¦¥ÐêGI[wó{ˆ¹9²ïO|ÕÔR´šóÀvs– Ó¬øúëi­ÁÛà“h‹Á`BÖ˜ñÀ`¬ŽcZ­ÓlÀ}$ƒqs““àï!Ó$àðLë£Å)a0˜«˜ Æ RÂ`0n¾þz|SK‚Á`šÑÑþ `0Dt4±|ù¡¦–ƒÁ4 î¾»gS‹€Á`0 ƒÁ`š=ðüÍ8¸øÏ¾ýûönj)0-üa0 ZfwÐe¾ÙhV÷ˆ ***šZ’&£Î¶›Í–ÐÕ®R)CW8¦Ñ¸™ß ƒÁ¸i‰Jîš?ÍçµÎ•”мüÂo¿ÿ%tå?öȱ1†Ð•Á`0 ¦™€• LK› µ’—_¸lÅÚ^={„®Še+ÖÞ3y~É1 ƒiÝ´\¥"¤Lm4Ï€l6Ôʲk'Œ]a áÛ¢Ñj—­X;ó¹i¡«ƒÁ„ˆ›¼+mž]ZK§´¬¹„"`„£Ó IÖB•ŠP{H0µÑ<}GØlÀ`0˜€Á]ióìÒZ4¥eë7nkj)03vôP–C‹£<$˜Ú@¾£¦–Âl6`0L` ®ôõ×f7µ Mɧ >Ç1– ²nÚ·©ÁÌúÛÆŽÚÔR„„Fð`jùŽFޏµ©¹†4JÊ*?øù(ARÀ0ÌŸHÓ!4K8žÏ)¨Ì+2÷ì%“ˆBW‘pR…„¢(÷™£'ODGE"£ÐŸÕ Ùz,hë¹´­Óéä,d#ˆŠñC•ÝõÆãÙùf‘ˆ&Hže¸öñºûGt’ˆ¨º37N§ÓétVTT0 Ãq ô+˲4M“×Ëå2™L.—јBb|²lÅÚ—g=o³»šZ¦ä‘‡üþ‡%5Ã!JJJÚµk×|Öýh) ›¡cÇŽM-&`:vì¸`áw½zv (—“åŒU<Ãù^Ÿ&!\NŠ)¬0`K•sýž¬ì|³ÍÁqO©•Žê—Ð6., r@­w¹Øÿ[s¨M¤21Zåd9’ã8Ž·T9†ùyÚ=0º[ê:[æî9Y$—JÔ* ð pÝ;Æ7dµÀó\zJÛp­½åyyyFƒ!59¹}Û¶pmû ¾:%Ï£cââåËW AÎ˲.\¨ªªÒjµ4M›L&«Õš””Õàuí?uu󾜘؈Îõ ÃñL¾Þ$Žq•–v€Üì,—³J,–¡ˆ>“y,22Šçy©TÝ$aêäÔÅâ¥[/‰ÅIUv'ÏñÏsŸ[äúaÓ9³ÅÞ½}øƒ£; ,ÍÛlØôç÷ñ¨áCêÌÿëæcDz- ™Äx./1ºð<À2 *íþþš88ihï2ù¡¤Ìº`ʼnH½Z­’vÃq<ÏqÜû?äà8ޝþ§‘ÿ¼E`ÉBÎó¼çÞx¶m‹ŠŠò<ûÍ <Õ žã€Gs¼¼<›ÍÖ¶mÛ ‹ýìå2—‹‹0¤¥…ÙlUÛ¶mëß¿¿T*m¨ºö¼š]`¾¥WÛ³ÙF³Ù¡VË8œ.–ለýŽãù6‡ë¶^IA—/üõÉÏÏçyÞb±œrÈ« ‹†±Ûíf³Y£ÑÈåòªªªÒÒR»Ýîp8’’’,‹N§ ZB?‡¢ØÖ Ïq,Ë6µ Cp a¹VÒ| &ÔÙXm}X\d\«Ë{‚&‰(U\¨:š.œ¢\ ÏrNŠ¢ì»H,«²9€I8Žó h™1MN@÷ˆãø÷¾ßË4E.ƒÂÍÀó<Ëò•.;ÇqÇ.–üxë+SzÆFjêÀÛl¸ïî;ÜÇuz™_ûr«D¦‹h‡“‘ATï9}}ˆ'›ƒá€Xó÷僧ó_~xPùáäÅâU»/k5 Ë@<ðÏÃ0UN>\'ç8žãyž‡ÂR˘Îá Òp€óð!”›Í‘‘‘èOÔ`cyù±³ge7ª¹6»½Sjª^«åz;¬’’’>}ú4h©>8qâDBB‚FS÷ó(YYYN^òÑÊ“”H¥¥(8~¬Ì´ëJÿTÍmC†ìÙ³§gÏž2™¬þu™,Ž£ç Å4}1«à–Îq<÷\äEbµZåb8†áZºãX^·Tƒ^duÂ_³Ùo0L&“Ùlv8‹…$IdBp'•JFcii©Ãá‹Å …‚㸼¼<ŽãBd6Ì™3gíÚµ¡(¹UrãBË&¸†´šæc0¡ Îî€ã8žO”æ]¡%Ržç$*­ÂHQ"‚¦]º°„ØèË<¹#KEH® 7–(¯Í&²yÞ>$š‰ÕJMfL“#ü¹vö¢¿5JËrÏs<ð\Œæ«‡àßÿñÀÔñ»¶¯cºš·Ù°tù÷±;æ•Ïÿ’«4,S]õµAt÷X:nN&·„}çëmo<ä´¡|£yÙŽµBÂó<Á”›ª*ÌVš`#n‰Ž–ã‘óÅæ`GvUõíÖ^xùB޼ îÞR¥V—WVÊ Ïð¤8ƒ¡]B‚ÍfËÍË‹‹Ž–ËåssÝW"¸¶û$33S­V“dc>:Žââb‹ÅۀŖ••iµÚìBóªEwLÕð¼þ®Ø™y.†wKr\¤éÒ.rûáÜCÊ8 ],ëb8NóÅo‡æ<*ÔIå…ð×Çår™ÍfƒÁСC’$9Žs:ååå ÃH$¥R v»Ýf³‘$ét:óóósrrÚ´iSŸ;î9}Âëi,..>þ|‡‚.üæÃí\l×VÓ| ¦á؈)ÒVœ+SiyŽS(•Ž’+b™‚’ȉ°°‹+*:2:Öp­ûãyž'€ài‚?s>ÇlÉ‚†3„wa˜¦"-}áNV‰"±5JÉ€Œ6I1ºèp¥B&fX¶Àh9pêêŸû.9X)N†ÿrÕñ7—ÅDø#ÒÛðÅò½2…†eyŽçYŽË+0¾ü@÷šZñä[Sÿ~6L«âyÞéä.ÙßwfŽœîG Úøxéñˆ0%Çàp2e¥eÏÞÙ!¡M4òÐ9NŽîZÀM“[OZúdTiÕrå ò6 û Ü1b„ÓéŒ wŸqG1•–nß»wH¿~©Éɼ{ªÃ öUðpwìØ1½^/‹ë[–0xž/--=wî\ûöcþ9þ|Zzç•{³ïÞ%)J)¢IÑ$A‘D´NÞ=Õp 3ûÑÜfgg'''×§.†a‹Ë­c´sÛ ˆ[{$l=”£Ó‡[lœ‹áL°ÏCpFŠða€„„„²²2 iÍgà8®²²Òjµj4­VK’¤Åb±X,%%%&“ ‚ˆˆˆF2€7>ðÀ~„……¡?U*UpuÕä›o¾y饗Ð1A:®_¿~sçÎm×®]CU!œ7ÞxcùòåçΫg9­f´=¸†4xó×®]»hÑ¢S§N9ލ¨¨Î;O:uèС°k×®#GŽ<ÿüóõ)¿A Á`"°;‘DqÖi™J'Q¨]‡H"-½rI¥ŽJlÇó\¹½š¹ÿJæamTžã’zÞrò¯ßTzÇq½†Oàù # ë)³kV¯\øÙ|¯“ÿù`~¯ÞM¼,˜§`‰T§Ó¥´K:lø-ƒ†¸"ù釥ÿûiý¦­A×RÿBà=Z¸ü Z­DZ:Ïó†0Åè×{[M&Çê’cu½Òcßþf‡ÃÉ Ëó¯/Þóíë£ü Ôãm(­0_12R YUaüê•R©4óÂU¸Ö›0´_z·´¸§>üS©Tñ<ÏrüŠmY£tÑEã­Úv&L«àx €·;Y m}ýù¡^îÕÞžGöƒL&™ûÝÁÏX… îšgý׬…ë–Ïó ¹<:2R«Ñ\óÅ4ØJ†aŽ9íp8ÇÕ<ÏÛív‹ÅGŽéÖ­[ýÇþM&SRRÒ꿳3:ÄEj$.ÅÚ@@Às||ŒnÏ™¼A]ârssëk6p|J›°¶q>Â{:ćY9Ã1,gw21Iy¥-,¨8%!Oz T*•Ñh¼|ù²Z­–Ëåî‰ .— ÝV÷ÍE?¹\.š¦»té"— µ„=áyþعsg= EÍwÝu׿ÿýïNªW1›Í—.]êÜYè)ÌŸ??&&†ã¸œœœO?ýt̘1‡R«Õuçl~Ü AJmb#®ä•š+8~þùç3fÜzë­~ø¡Z­¾råÊÖ­[·mÛæ6¾ùæ›ú› õ/ƒˆpoC×aãDb)R¤rUdlIK$ <×¶CxT”D¡%IÒQeí~ûx‚çøP,²ToÃÓ3^Ðë¯G†§´Km(©êÉs/ÌŠˆˆt¹\ÅE…{÷þýö›¯õìÙûí÷>D¯Z.!1±©e !÷ÈRåÈ)²)夀r_n¶_-ªïF ¾]säñ‰µîÔŒ·áÃ%ûdJ5Òò ‹K¿2ÊsØÛ½„úS§Õ|ýê¨GÞÙ¬RÊyž§(rþO¿üˆPm±ý¸1J¯Dý”¹Ò4gÆš3ÏÅå6—ݬՅñ<˜«\¹xå¾'' ²w…4œ» W‹‹%"Ëq–ª*@DQZµýf­ª:wé’Él¾-‘HàšŸÁ7hl6[fff›6m¬V+Šf)**:pà¸õx»Ý~Ë-AÆØ vïÞí5 ¹´´4&&Æét€N§;tèP·nÝ깺n~~~\\ÜÕrÇí” $ËsO<@À;\¬ˆ"I‘¨°Ô¬ÓéX–­ÏÜ/©˜î”‰ŽyžŸ¿™¤h•BGbœÁɰ ˹N­RÏÿõ€XD‹(òÄÅ‚‡ÇdŒèÛV`-Bž"‹ÅBÓ´H$ŠŽŽ¾téRIIIDD²d2ZŒaµZ­V«Åb1›Í6›----<<€é:ž [eРA§OŸv/êJ:0………Z­Öår¡)D‹5 8Ðí^0 >úèž={FU3¥Ãá@囹huY È_|‘‘‘ñÛo¿¹?eÓ§OGßœúÜã„BL}êm ˆò+—d*-Z6Ec)¾*–k´:=Ïq@&S©ñòE]L-¢*%$-žç£££›JfŸôìÙ»M|BCKÔtíÚÝ-Ø]“ï]·vÕ‚O?úæ«/žžñŒ;aÌØf·¥š„Ü£Ï~= TH<×uÏ7ZÞþf'Ç£eƒø“‹Ä"jD¿Hi£G jµŠËñ[\õc6x+ßK—¯qÿßg–eí )¯¬zóÑ>n› €÷íªR*gNNwºŽçY–;t¾Ôï5ñ¦ÊæÊÄh>GY¥óåºùe/7Ûï»%bÁ CËK‹·Ÿ(;|Ñr.Ͼtg‘@M½Î†ƒGh8*S&‘È¥Rš¢@$‰hÅŒ>yòhff¹ÉtâôéƒÇ޹]\ýl†ÒÒÒ³gÏFGG›Íf†aÀåruéÒ%222<<\§Ói4•J¥×ëëS „‡‡ëõúˆˆˆˆˆˆ¨¨¨¨¨¨N:9–eY–E+ù9r¤ªªª>µX,žçYŽ €p1,ð,Çñ\u W…ÅA“ ¡ …\’o´Èår‹¥¾ÛÍ(dÕª0AÀ{Ó‡Ò¡ÖhJ®Ðè *lNëtq.†;s¥²Â%*²‘aiI‘Ãûµ@ØS„¢’d2YxxxLLŒÑhD8šä€°Ûíè.sg³Ù¢¢¢ê3ñÀý$YRRR\\\ZZZVVVVVVZZš••Õ¹sçððp–e‘ÒÖ‹úyͰã7Ú·o¿sçÎÛn»Í`0¼þúëpúôé)S¦tèÐ!"""55õé§Ÿ.--õʲwïÞÛo¿Ý`0´oßþ“O>ñ,333ó_ÿúWrrrDDD÷îÝ?øàÏ_OŸ>=fÌŸ…Á·jk ²mb#ügoŒF£Á`ðzðPç2{öì?þ¸²²R§Óét:´³gÃóqòYˆ>BÈÌ̼ï¾û È#öî݋ίY³F§Óeffz2yòä6à•Á´P„t "¡0ç¢1?¯øê•¨Ø˜“»¶ *K‹Å$!£I­„JMMxû˜ôô´ö©©½úìÑ»OÞ}zöé«–4|À@™’uéÍ9³ïž4nÄm·Lš8濼g2]Ws¿Zôùä;ÇžûÔ´GJ5nÂÝ{ôÚ°~­Ãa€_~úaì¨aè§üü¼9¯¿|ǸáÇ œ4qÌ«¯¼ˆô$êþý{§=þà¨áƒï»gâÊKmrý%G¹GWŒv¯o5ǹgEWðM;Jlµ98­ôY M’g² j+<`oÓ¹µ Í f¶ø¸ës®“âÂS".9\,„F!ó°ìףÇ¿ž²1$EMƲÊð0¡‘ GÏä)$"4ÓRe‹ ÷gBÓô÷¥$%ÄÀO÷Ú'È€!T;œÒ§n}KøÜ¤ýKÄbŠ¢œ‡\&SÈd–ª*‡ËÅó¼ÝéLKMMKM­ÎPd4²¸à×RºzõªÉdÒëõf³® Ûl6¤bzQÄâ ˲ååå^¡2T¯ÉdR«ÕgÏžzüN`w2.–£H Š«Ãåp2Éò@ð¼˜&jÐÑR.~í‘o}ó·6\_PVÅq<ŠPª²3ùF ЧCÔŬ¼÷¦ßþ,ä)bÆ}mcccwìØ.•JÑêIhøÍFLJC$uîܹA‚y‚‰DnoƒÑh|ÿý÷.\ˆÜGE…n]Ѫª*«ÕÊó|NNμyó ƒ§‚e2™fÏž=oÞ¼öíÛ£ ¸üüüôôô)S¦h4šÜÜÜùóç?ðÀ›7oöÌòúë¯ðÁmÛ¶]³fÍÌ™3“““'L˜ÇŽ=ztÇŽ?þøcƒÁpéÒ¥Ó§O»3Z­ÖG}ôñÇñÅ×­[÷öÛo»3 ¦ÕN‰ŽóÞ/%>.òòÕ¢Jн{÷­[·.Z´hâĉà Ky¼ôÒK,Ë.]ºtÏž=€T!φçã¤V«kR“šá©S§FŒ‘‘‘±hÑ"…Bñã?ÞqÇüñG×®]G¥V«—/_þÖ[o¡ìÅÅÅÛ·oóÍ7Cr0- aJPãš~ío}ßÃè€àYvßÁc99¹µã¨D|b|ƒ-P.PæÚ¨ªªrîQ%“ÉJJŠ““SF§T* –þ²dÎë¯,ø|±;‹Åb^¼è³gfÌŒkÓfÇö­ >ùol\›Aƒo€óçϾðìSIIÉÏÏœž—w%;ëôí7 "2jýº53_|’—wõØÑÃ/¼ø²pQûõxäðÁsçÎvéÒÕóüœ×^¢hú¥WÞÐ……•——9|ˆaª÷ô4›Íÿ÷õ—¯¼:·M›ø¿wïøpÞ{wM¾×«d?MnÉAÀ=ª4[R ÒÒ«güzÚ<_iu8®þ]ÚÏâûO\(‚’$iŠÑäºÒ’}»³žÛ°ëèU1’bpÆ ½‹L*}nŠïè#‚ z¶û}@Ä޹ㆠ›¾pµE@¨¥¾_’$‘Í*¥â–öÒmP@ ±îŸ\!fƒ •”¸ëŠ©ÉDS”±¢ÂÉ0Ñe4™”r¹Z¡J$å••ža¿±X"£»Ü,ÂsçÎñ¯0f7”O·AH$ªî8:´f7ÚÊÓó88™kãéé¹ÓÒÒ?ÿò›Þ}úõîSýáMïÔ%¥]êãþô ôÞuî’²$9vì„_—þôäôgÑ é†õke2ùÐa· 5*Êe¥FÏ“‡=''{Ö˯õPæÝ¿ÿõxo†qÍxvfÛ¶)0tØðsçÎþüÓ&Nò€ðÓä‘Ü£3YÅ2©èš­pݽàbØü’Ê£™eùÿ›3!.J_,ßò’‘ )ôðq<8ÞÉp®šj `oƒÑä*DÏÛLŽ‰Â›Ú-5rÝ¡JÈ) à„e9+G´ˆ IDATŽCQräÈ_ýµjÕª_|Ñ)äEÏFÍÇI^¹œNçîÝ»Ÿyæ÷$‚ FŽùõ×_£?ï½÷Þ%K–ìÚµ ™ÄË–-‰þôœœàdƒ¹÷  ­vnCb¼ÖœË5gÈ…°ùæþûï?tèPVV–Ïç3èg#P1(Šš>}ú”)S|& âî»ï^´hÑüùóýõW…B1vìØPH‚iqÔ­M)b±øø±Ã€0œ>u22*’çùˆHC©±¸´´H¥V[yÉy;¸® kv’ Ž¥I;©¶»Ò"@)®[ɧ԰»DoÝòÇä{î¿ó®»ÑŸhr‚”JEQåeeµ%?aâÌçŸ>s&sýº5Ó;¹ÝÙûÏßb±8µÆ&TQQ†—^y.çælÚ¸îÿ¾þR¯¿}øH°XÌN§Ó½P©Ñ*•÷„Ã:›\OÉAÀ=ŠTºN–“ð<Ÿ_™Sh‚¬ŽÛÜ=™ýr€áˆkç„ûŸ0u­ZzÀÞ†öqÊÌ«vžç/—8þ8p¥7¡«éÿs¦œ EA=: ¦„‡ió‹+Mœ€Zùþ{ßzbœ¼P`³9zwI¬™åÏCyE£ÖGª™ w‰vO‰>yñ"˲J¹~×áÃ’’Îfg£,imÛº\®„èhðPë‚eÙ„„„ÂÂÂÂÂBNg6›}ªò^öCpË•ºgJxQs½…BAÓ´J¥jÓ¦ Rd­ ”Jettô©“'Ÿ¾#ã䥢?g±@ò<À§Æª^šÜÅn·gee‰ÅâÅ‹?öØc2Y0Û)Ô„0›ÉÂB÷ŸíœÏîZòBéóO¯Np] £Ü,衹\^UUe2™D"Š=3›Íz½y?G"‘$i6›ë³†Az½¾M›6èÏ·ÞzkåÊ• k Äd2åææöí[ëúÈÈåâ9ùá÷ßX¸D"éß¿ÿÊ•+_|ñņzf¼i½û6dçæ'%Äx©ÙXŸëæMVV–×Þ,È@«LJ$·Ç‚}6¼ ‚D"8pàîÝ»çÌ™SÛkrÏ=÷|ôÑGëÖ­[±bŸqãBõ¼aZuv$IÒ4­Ñhyž'I €Pk4"Z†ä8¾¤ÒžåÐĤŋDTÍñßó¹Å•EÊð:ÖAiœ¹ ^ð<çr¹äòëŽñÝ»vÌ+‰ºtéºuëŸ÷ÿëA‰ÄGE—Œn‰‰Iß,þâĉc/Ï~# ÁÖ­]uôÈ¡»&Ýã³dD|Bâ´é3~_»*'; aYöïÝ;Ýó¶oÛ¢R©“nød ir}$GÔyRâ#+¬—´rQfNEq¹ (·#p2ÜÞ“ù™]vãOGÑ=µÖéŽ{Fôk»ɉ"{µŒ7šªøê­ÎëÀjs\,!IJb•šÀüN‚ îèöÓ>ž¶Ÿ§{ï>oP?³øüý$5Ížç·œ´„E[Ü’îÛÏå…@oƒ;Ш}B‚D,fXV,õËÈ ( MZؽ»X$ÒªÕòÁBAô±¨.žçõz½H$ÊÊÊÒëõhÃ`’$U*•ç Z¤ñ×gaD”—$ÉððpOŸ8N«ÕŠªÐétv»=""B¯×»% .²Å`0H¥ÒmÛ¶¥§§ÏœÜÍ}Þn·ïÞ½ëСCƒ Љ‰)..ÿöÛoï¿ÿþ°Z—QC{Hw–m8öˆ¿Áj"T2ê3T£ÑhÊÊÊÐ’Jf³-À*‘HÔj5ò3DDDTUU•••Õg])"•ŸŸÖPÊÍÍMJJrG\„:Néï¿ÿÎÊÊ€’’’o¿ýÖn·O:Õ¨C† Y²dÉèÑ£ãããÿý÷ï¿ÿ^x]o¿ýö¨Q£ÆŒóôÓOGEEeggŸ:uÊk VLmxZÙ¹AÌú˜ñãÇ·mÛööÛoOHHp:Û¶m[ºtéèѣъ :t°Ùlß}÷]×®]%IzzzÏFÍB„öî»ïŽ9rܸq=öXtt´Éd:|ø0ÇqsçÎE RRRzöìùæ›oÜ{oõÊ*Û¶m»ûî»/^zôpÏž½›:Ý+YQQáG¼7hÈÐøø–ewíÜîp8º÷è‰~•Jeß}ûUU•5>>a÷®;wlþÔ³^C ›,\rŸÔyd2)ãr¹\Ubr¢X}OÛqé·Õ>] ×#“hŠ;°ÔBÀÞ†ð0±Ò™WA¤È΋>[vè¹{{ÕVº›×¾>ÀSr$Qjç¹=œ“±öÀß•@Ò¬« ¸kì5°d¿ÐAPŒyÜ­µnZá‰@oƒ[%7Y,b‘ˆã8KUˆhZ£Rå„kµ2‰„¢¨ ¹¹Ms,¥×«•JJ¡w/¢O„B¡HII¹páò9€D"¹pá‚V«õ\T‹WH+å}–,Y2räHueddüñÇï¿ÿþÌ™3«ªªâããï»ï¾ú6ÀƒúØçÍ Ÿ ÉÊÉKNŒÍÊÉ«­™ Ûü7ß|sݺu‹/.**¢i:99ùÕW_1cúuôèÑ?üð{ï½W^^n0NŸ>ijQ³!‚uêÔiûöíóæÍ›={6 ïÖ­ÛO<á™æž{î™5kVtt´{«Mžç½«ÀÜlÔÙV:U*ÂãÝcŠ<_­¹¡އŽñ±‚¶1À•dS…2"²²ä2¥Öò,§hgiè×°½ ðÒ˯ÏÿxÞÔǦд¨Sç.sßzï¹O ÌÛ®]ûÏ~õÃ÷ß,øä¿v»Í`ˆ>b´g‚ÁC†~¾àãá#FשO.øä¿ ‘H´Z]»ÔösÞ|ï–ACj*-J¥2<"råò¥EE…$I&&%¿1÷=«HÉd¯½ñÖŸ}réÒ­V7múŒš«¯ l²pÉ}"äÝÖUÿùº<‚ jÎQøï3·ôïÏ/ØyðL1Ü`UTÆiù¨ˆZÇg ¸ÑúÔjµîãÚlÍM»2ç­-gQvŽyoJÂàU¿lÎ\¼µ’ h €îË'â:´õ“Þ'G3³ÿýK1KÜàŒ»¯›uÚ›@/\ylÅAŽ EHÙ[òîô!> <}ö|ÿ¾½Ým¬Ùðù ¾š0~t…ézÈJQ¹1£k'Cd$•–ª Žç+*+Y–•I¥¥2¿¸X¥PH%MWZ­v‡C&‘(är4½áxf¦µÜ¢”^o‚ÃáØ·oÿÌç¦ùi8ÏóÌ5X–u¹\çÏŸ×étV«U¥RÆvíÚÖîDNO÷:žAàYú—㸬¬¬°°0“ɤR©JKKSSSÅb1MÓE‰D"Š¢ê¿ëLõôŸ \Ó_ýõ×””§ÓÉ0ŒÅbq:Ý»wbí&/äï¼#öXåÝ'ö‡²ß¨xQçSÇ]½zU£Ñ?~®E%ÅÅÅ¡iÄ………'OždY–$ÉþýûT2˲¬¹ó‚ ºuëæ3KJJ ·¨ù ¾znÆ“¦Ê`hVôïÛ#+'‚Õj]±rUÍÏWIII»víê}³ñãÏ«nÚ×ç>t˜æÏ‚…ßõêÙ) ¥âL¾©XÝÖ–}ÔÉWG $wísöŸ¿$ruR×>gÿùK,Wwv‡‹åoYSUY¦ÐEr,—Ü­÷Ù=[Ä uŸr³r"*/¤Ç]¯HˆRáIŠP3áÏ?6~8ïÝï\Ú[Sµèó-ý±bÕú)M¸äènŽqk j†Ëåºcöæ²êÊzÄâYCw‹€Gßߺ÷T!ZµòZ"hþûX»>]Sj :.`oŒ˜ö¿];s*åÀôœÿå?œg}dœ‡/Çñÿùéð™IIÑŽ Ý æ lè–žôì°ŠÏ·ÚYÒc ¾úr0,·íPîW›óËœjR$BB峺Ÿpo:‹Dv‡C£T:¥Ržçiš.¯¬T+••ªÒb±ÚlR‰„$•BábâZö A&Û™@QT§N.^¼(•JÅb1Š9ANêõ UGyÝSfÝÐ4­P(,K§N€Ì†úØ h†û_d0 ¶¸§ÿ1iÒ¤U«V%&&¢`-ŽãJJJΜ9SÏì<"Ú¾ðXzÅ >,Ìq¯á?Ôs¨íÅ&‰\.MÓ.—+,,L¯×£ü"""Š‹‹-H’ìҥˑ#GŠŠŠÐL‰ŠŠŠ?þxäÈ‘‘‘BW5ÀÔ •xšÃ¬L+£Îî€ç9‹ÕÖ¡ï0ÜS…ˆî·O@ƒfÝoŸÀñ ¤8ަŒ½Ë˜—E‹e<ÏS´¤ïÈq6«UF7ôÑ ím—ssòóó¾ÿî›~ý6‚ÍЀ4ˆäBî‘H$zõ¾ÔWÌr±üAJp}–Iº·k¨>C$AôJäj³Ïm’$çOïúÐü3VV@ˆ~øÛ±êÀßû„˜®•@^‰yŶ¬MǬBIŠCèéÊw§ÖÑTmã£8î A{c<L~럻Œ Åa@VÇ̈yë{÷Ç*o™,pnƒû¸¬²Òn·«Š¢ÒRš¦eI™ÉD’¤Z©4Y,¥†ðp›Ã!‰ÌUU 4j¬7Yhû^–eyžOKK»zõjUUEQ‰Ù ä:îºÜS&‚@;9têÔÉs…¥ 7@|7È­!‘H¤R©L&“J¥6›ÍjµVUU¡6N˜0aëÖ­h.WÏž=¥RéŸþ´ÙÀó|ii)CÓŠçž‹›?Ÿ¨±¶,°2Ùå™3íV«:ÕNë*‹¥R)šá ‰t:Ã0—.]â8.>>Íl tZ'!‘H¢¢¢”J% I:|øpVV¶‚­ÆÜÔR4 Á5¤Õ4ƒ uv*šgòÎÊ>Y[ dž§öêš–,‹Ïå^’)µ<€\¡äÄ"SqQ|œ¿ C$ssàóÏæŸ|M{¨¬¬D&Dpäçç;F«Íš6­óºua—/{&(îÐáĘ1V’¤.] OHH®Sÿ¡Ôdäj£Ñh4ÑT–œœ±XŒ¬¸ J¦( ™dèù9|ø0ÚÑS¯§Ëç$Bä%k,‰BKp áÙ~#ä¡Â´&êì"4²þ$Ãú·B¸æLÞñãôêœ2`èÓÀÚ¥Âö¿ €ámøïÇŸ5rӦϘ6}FýËiɅߣgîüîUNöºu`w¹—'P$¯±/š5Äç{žãm@th÷õSâYß],qjév”{G½yMpɪ²y¥kµÞkÜ G!âŸâ(ñ<Ù­S A¢-HhÞ•¬.ž;%-2¢ÖÕ£|"ÐÛ@ MŒœ9c¶Z#ÂÂLKû„„3ÙÙ©©»Ž‰7l‡ˆ¦µju^Q‘^£‘ËdñCuþÀí÷,䈈ˆˆˆˆ†(Ò_]A4ønkÈ,q»,Ðf[nç†çuòÜÕxРA999›7oŽŠŠºõÖ[ƒ®ÝápTVVšL&»ÝžO§Çו—G‰ív»\^`0˜Õjp8 ?_&“) ‡Ã!Ðlh¨¡úŲ,ššŒLP÷¦oAO9ð4ùΟ??}º÷Ršùê>ö™†ãx¦µ˜ Á5„áZIó!¦5Qgw •ÊÄbÉæ¿‡‡‡ñÿÏß;“Û&WÇ둜šÖ=–8‘ì×ógxÞ‡‰ ¦ 6¡%¯aeÆ49ÂïA3Ô¥]æW^6;¥ ÇÕr$€$ É ëDÍü×íBfiém@ÄFGþ0K»tóÉß•W2@Wë{$IP¼KC™¦ ”ŒØ;è€DÛÄØ¶‰¾'E¨ÅŒ·ÉigZ;ehLrb‡ †cy Zó€;:’¢(‚‚èÓ©“H$Ú«MQÏKD" ˆ¤˜4$ºmw[4žQ»Wmòi6¸IKK«ç”P«ÕÑÑÑaaaž[_³h7€{y`‘H¤Õj=—‡÷OƒxпhÙš+±$)zç‡7þòË/õ/§µ‚”[0ÿ³óOž8ÞТÝÔÔGÍÃ7¥i ×kÜÇɉqµ%k¼X'Þ9iܸ Fcɶm[6oÚß}ûÁýØãO„®Ògfùì3ÓûöîÖ¾]bŸ^Ý^xþ™–9Ò¯ÿ€Aƒ‡ lðŒ§Ÿ,...ay…ÅXj*,.ËË/¾|¥ +çê…K¹>S6Í”èz$::ÌfóÁõé†ÅétUUY ¶üõ:Ó¹s†WšO?¹yÓF‹ÅÌó<œ8~ìÈáCv»=::Z"‘æå]]±ü×»'M´Ùl^Ÿ˜úÈ_ýáp8l6Û_nžýÊKèüîÝ;'Œµfͪ†a¬VËÑ£GΞ=í™wú´Ç—-[j2™¼òb0˜±eËŸ“îœðÇæM¥¥F–eÊÊJÿücó¤;'lÝúJ°rŲ—fÍÌÉÉv:gÏžyò‰ÇN<Ñ´2c0˜š=ziƒ¹ë®ÉèäZ_qJA»jë£ëüŒ¸ñR-n6jªy•+/vîØ~çc7lXWVV¦×ëËËË~_»f¸ÑçÎmŒ–„ž:¯Œÿ¾‰e™)Ü»yÓÆÒRcxD„R©Ìʺ´qãz£±$Ò6Ù@’dúµ©ÉW¯^ ]E ?ÿ´szûýzíß¿î½ïqã'x¥‰Dÿ[ºâàáãó?ý†Ý6ü¿¶?yfçî½GgN}b:äå]ýãM^;wÉ8|ôä?ûEEEÀöm[ìv;˲¯¼ôo§Ó Ï=?óȱÌS§/|÷ýOíRR=óÊd²ßV¯[ºì7•J…ò†ê`0–eÞxí–e(ŠúrÑ7gÏg¹è’$ÝçY–ùï‡ó€ ˆO>]x2óüsÞ*) ÉgƒÁÔ‡µkV¡ƒQ£Æö0P­VÀ¦MPÏë IúPr~[½îýyÿEÇï¼ûŸKÙW/e_4xˆgšš}´Ýn¯ó3âY‚—jq³QSÍó¯\ÕvSX–™={–ËåŠ2¶íøûŸ}‡7lüK&“Y,æ÷Þi¤ù±¡Æÿ•©³oºrå ò9¼ùÖ»ÿì=´ïÀÑÃGO}öù—z}x(¤m¼¹ ^4‰ý½më_÷Ü{—.78f½4»Oß~¦€ž={mß¾uÅò_‹‹‹\N—ûÞd]ºäUÚSOÏËr¹"=½sQQ˲FcIYYºݺuö¹™(åà!·zåõÒì®]»@÷=wîØÎ²l÷ƒÁ\ãÔ©SÈcÛ·oÿ#GÀˆ‘£úõ°gÏ¢Ó§OS…Æfz÷î3~Â0åÁ‡þyÉÅ ç›Vr ã Ã0ë×ýb±xè°a4MvûêÕ¿UVVnÝúרQc¤–š}´ÑXRZZêÿ3â¹þ—jqâ¥æ W®<ÉÌÌ,*,žãf_‹bB“XöíÛ˲ E5™ÛPø¿2çÎóß7éõá4M3 ³hÑÂÌÌSmÛ¶íÖqøˆQ"‘¨ÎªÏž»¨´Ms¹9ŽËÌ<…ŽÛ´‰]EhF‡Ã±vͪٯÌ*..~ñ…gÿÚºÓ3Mz§ëK²ò<ÿÄÔG¶oÛZ³(‡Ãîu&.® :KÄè€eÙR£'%·õ#XJ»ê¥ân’™RLÓRVZšlˆŽvŸŒ2ÐA©Ñ(Wa‘cÍ ¦Y±sçöòò2HïÔ9??:¤u„Õ¿ÀšÕ«j38.°‘Êš}4˲u~F]j±Ÿ:¯ŒN†üôM÷?0åλ&?~,;ëÒÉÇ—-[Z\\¼è‹Ï?[¸Èí3_´ÁÑüO¸ÏlÈÎÎÞ¹c{YYéÖ-mÚ´|ö¹™2™,t•¢)чcíšÕ ÀL&“Jk­±¢¢tLï hçᤧw2¢ Ž;úÉü~äQ±X|øÐ!Ц ¸¥MÁ`0BÉÎÎö\E­ÑtîÜ9**ª¨¨hïÞ=6¬:ô¶íÛ·îÛûDEEuìØ"""JJJØ¿aúÁƒ‡¬\±üâÅ€¸ &tX,暓ݸ\® ëà_¢ª=»ví?áŽËÍË»aû*·âqáÂyá.éééu~Fnfü¨yB”+Ÿ7Å}ÍÿؼiÏžÝH*-5nX¿îòåÜ×ßx³QZBê¼2íÛ·÷ß71 óÓ’FŒÕ§Oß>}ú1ríÚÕ6›Í]²œN'ÇqÇrè?×þË]Ã+جñ̆իV®^µÒóÌ£M}ô±©!­táçŸ.üüSÏ3÷Ýÿ/÷(BMºuë®ÑhL&ÓŠå¿–•–^0D¢¨ÿ|ðÑ´©8NÏÚç¾õ60˜ÆÁëkÓ£g¯å+V¿óÞ¼éÓ¦²,óì3ÓÝ?QýÎ{óPÿôïY¯¼üÒ‹Ç¡E¡5uNb0˜³iã»ÝcÆŒóIýûï]M¹Ö¬YõÀ¿;nÂêÕ¿ÀÌf¼õÖååR©eDddt#‚çù%?~¿äÇïàdæ9ä—ðú\øÿŒÜÌøQó„(WµÝ”÷ÞÿðÉi9Žÿuš(‚ÖÃ9jt#5,”Ôye(Šöß7±,ûî;o¾ûΛJ¥J¡T”h”üÖ¡Ã|ÖXOu%%Š¢4MjjûI“ïY±rÍk¯Ïmœz ‚P©Tݺuó­wg¿ú†Ÿ”*•êûéÖ­;I’Gn›Òî÷æZÝ Aƒ×®ÛtÇw ÑEËåò.]2Ú·O«G 0L}6ìö•«ÖŽ9*,LOQtX˜þöá#Wü¶fذÛQ‚I“ïùàÃE"Q‡i‹¿þ6!! ‚Pk4~ËÆ`0Áškk(M¼s’çùþý¢9Gºrùò[‡Î™û¶ÁMÓt´!zá—_edtõLŸðλÿ‰‹kãs©%?Ôù¹É©MÍ¢\ÕvSn:lõšõcÇMˆŠŠ2™L6[UJ»Ô{î¹ïÑGC;îÜ8¹2þû&š¦ÿ5å¡Î»PYR\,‹;uîòæ[ï>òè㡘€Ÿþ·rì¨aeÖPTj óú÷í•“WwÒ–@+kÓ‚(++½zõjçÎ]P4ó–->õäT–e‘³¢©¥Ã`Z ¸# )øò6+áv4xß„džóÖ3_xNHÒò«f>7mý¦­SîŸt³ûÔ0 ‘——7q¹\¦7›+ÑŽò …rΜV²:8ƒÁ`Zͪoºn6p×øÕ7-Zøš´²æ`0-‚ˆðˆÛn~ò䉂‚Š"ûøÄÓãÚ´Á¯$(ø­ )øò6+Bz;šUßtÝl`Ùü¶hákÒÊšƒÁ´ôá ¿üºæyü>b0A€_œ‚/o³"¤·£YõMfCK¶\[´ð5ieÍÁ`0ÌÍîÈB ¾¼ÍŠ›çv´xoƒJ­?yÚßÎä-‹VÖ ƒÁÜlàŽ,¤àËÛ¬h‰·£¦Ìû­™,­}rÍ“žÞ†À¶^Ç`0 ƒÁ`0-š;ÇßVóä™sY5O^7öýów%Â`0 ƒÁ`0ÍŒüÂÒš °úLyÝl8fÑ7–x ƒÁ`0 ¦iˆ„"÷q0AJ ƒÁ`0 æ¦"˜ % ƒÁ`0 sSLƒÁ`0 ƒ¹©¨o’F)Ù+%Ñ ‹ÐˆhòµÿÛZZYåþuú„^m ^Yr +æýo7ü?{çÅÕ5ð3ÛXzï]é½HPlQPì k,1õU£&jì1Œ-QÔÄ¢±wlŸ‚Œ¨ˆ"Š AéHÙ¥nßïÁqÝr·%ÙßÃóèÌ=÷ÜsËœ[§³Iÿ®nvfz:46‡WTÉHûçYayñ¤‹­ÉÀH'+#._ð¸øÍÑkM,EâU™9C»ryüßNÞVäáh§>!.Æút‡÷¿ß.¨o¿0×>¡®³·žw3g+£ ·_¨#ð0$Ú+ÌÓnAÊ¥&¶ƒb”ŠR%AY>¼é4(B;ÖèÅ'^GD:¥P']’-j‡ZIå4ªùÛF‡¶à<2Öÿ?/¨a¶Ü|Trùn¡@(„j¢‰¡NÖÆ+öf4µrˆ›¬¿yúæÓóÙÏ?¼Jª¡¯£54ÚË×Ù’L&–Õ¾š_Yׄ)âYêÒšÖká¬euQàådÞ/ÌÍÞÂLÂ*ëš2r‹²ò_Kõ†Ù‚ˆ×ÓÁ¼«½«­‰¡.½‰ÅyTT}2ë ó­7(®ž¼$ K1äú¨r(ÉÖéÓoÔ]¤dn¨ÓÅݦ¸’ñ²¢ÎÝÞL,ôâíÙ¥"ëêæ™_T_šj7·r.Þ}ÑØÂ6ÐÑêîçô¿a]×ýYRÍgkãÿ ëZTÁØ}>—F%'tuŸ7}d¬ÏµÅÙe<¿%{Ø›Å8©ÐmͽrïºÔ ;AÝoF«­š ÿZ:®Fk hlåTÔ6~àHUnQUC4~û|š¸œWßÄ¢QÈ!¶ƒ»yêÒ©'nÀG5ÑþËyËÆÇŒŒõù=í~‡B&ëPú¦áâO}˜€L"Í®¯C;zý1›Ãëæ:oxĪ?¯5´°A1ÏÊ¿³eS »°¼-ÊÅÖdæ °âJÆŸïsù‚®^vc{ûcd>|-)ª³1"Þ/Â]µµ¨™_×4´XëÅ9»Ú™®N½Æâð$ÕC'íXŠöQI \$[§O¿Pw‘Rayý·)— .¨“d½¬¨‡Šw—#=„·—à—· Ên”¡wž–ÿ4¥g¸§ž%ñ]ÝšYÜ­Ço±¹|xUÉX6¡GL€^?Ññ~Ì u1 »™_òºšùác—Ь>¤é6hø¯A!“x ›RÍ­T\ÿYn佺‘÷êckѱ¨“Æÿ‚}äYi->n}ïYùwcºÇ8Ê|" U6‘ÔªTµe4±Ž]œÔËÿö“ò¼ÂJèîfa¤»vÿuÁçó1«P[;sƒGþyZR/+êVMŠëÒùصǠ˜gàb÷²J(†zÚ!D…xØÀo'²›Y\xø²jÕ¤Ø0O;Q¯š…ŽwÿÿåUÕ¿›Ä(©fNKèäfsSÚÐ>ZÚ±í£*’@ø75Ò» B¡¢µð0/»¥µ5L髉šZ8|ÃÚ.­UãY •uMoê›]­ñÜU<^4Án6 îf†:5Ì–Ó7Ÿˆ…Úš Œôpµ5¡É¯«'n¼(«€ñ}ºzÙÀ÷IÝ ýÞËÃWÙš$D¸;[ékk5³8ùEÕÇ®?&f3'}de¢÷ãþwžýÜá­lîöSwDcãÔ Ræ&£‰µhçÿ)•¢8#vç $(%A [sƒ„®î®v¦Ú4JmCKvAéÙž½ 53ëãdeÜÊæ¦ç]¸ý\ô‡R­§ˆX‚oû¤^þgþy7¬ZŒèÜdI07ÒíåjgJ§Qš[9¯ª˜¿§åHçøÄM'7ErK)"jt¬äÈÒas/Góøw{sC¾@ð¼´öøbl_|²ûܽÄ(O[3ƒ¬ü×Ó*’}Rk´ q‰Ùfç™»Cº{Ù[¶°ÍhKÃïÇtO>”…_ötÑÃç|öóSYOÀÂXwåÄØßNÞ~ø² ¤ñÉÖÑùw¹Æ‘ÄÙÚxD;sƒÆö•{//ç¼›—•Sˆa%Qp=·Ïëã`aÄhj=~£ ÷yEL€sÏàNFzôâJƾ‹÷ß0š%Ó¨lñVÊ>DvT3šOg=‰ p–µv³ŠG$õ-ÙÑŠ*ë, uµi-l±%ˆò,µ†Êª¶è&— óáë`w›1=}_”Öh÷é|á΋’7 ìf3%>xUêµ²7 Äó3…ëÑW¥^CG¡ò+Fü:[2šX¸£õ¬'¯k:[á¾¾\ÏŠN£¸Ù›î8sW®(@(Yœ6N(¶rxù¢¢ÐñŠö °¬ŒõèRF‹B;–hÄ|T¹ ”‹ÔÖI²øóâýÄ(O+=ÉvïGÝ-Ñîö¦&úÚgo>»O¥If «Õ'Ä…Çd¾í>Jðø[3}5ÕÅÇÙbr|pÎÓòWòôµµEyÒ¨ä×UmcvæߎŒ*©fî½pŸÍåuósœ3´ëúƒ™¯«˜Ç®=~Tôfrÿ _OdWÔ6±8\0Ö§—¾iÈÊÝÂâšêô u™>0äçƒYJ©”v뉄…{Ù¯úó„yüÒÁÒpþˆÈòšÆ—ó˜Í, c=Ñ,Т’'÷ºö ø|öó@WëÄ(jFÓ½g€´ž\±}C]D¸ï¿œG¬T9Ftî KÂô!|pß…û -l}-O32‰¦:k&Ç]¼óŸ=ÿÄM'Ь©\AèäÈÒDÖ}OGó™ƒÃUo?u›F%ˆðøvdäêÔku ­xt:ZÔá1>‡®æWÖ6Q)(Q¢H­Ñ*Ä%‰Žuh´÷¡Œüêú¦`7›Ñ=ýÉè’ê†6×ÝÞ w,Üí͸<¾»ƒd~)Ÿ—ÖJñ“ª#hÆ‘–.ʤ/Ïg?¯ªoöw±í-¸’óS²ZT„•¤štâ¹Eçn= pšÒ?8=·ÈÞÂàèµG2yh´×—ý‚ð {b([¼·o'ËÉñÁ·—¸œ§«Mé¡C§Ù!†Üw""t¾L t!^+EA—gQC%oÊ•#Ê_—ò~=¼‡©~U}ó¹[mƒ#y/+[ÙÜ0O»ãoãw t´¼œÌO\/…jÕG5lÌôËß_S^ÛèílA¥¸<ùþ†³%_ xòú\Q™_wõ¶ës>û9/÷²³5ÕO9sWª(¥pµ3€²š¹OJ‚v,¥¾Óeù¨r(Eü=-ê nž{ÎçVÕ7ºXë@´{Ÿ>êvºzÛ³¹ü‰vyÎÐðÎ6&ÐØÊÙz<»¼¦­VÖ59YaxßM—Nµ0Ö¥IT ™ÛN+㻺—V3ÿHËÁ£¨®oZ<6 ­¥ÜÝ«¡™µùØ?x]zúºfјnýÂÜRNßijå4´°€ÙÄ"vÛäUÛ6 ËëJª™?Œ±53Pªp7³¸­lžP(l—Þê3¤»WC3{ÃᛸÍÅ`´¨”CùO^×ÀãWoÜìMƒÝlð— ÂzrÅ0¬‡O7_‡”3wñé`5cDç¢$Ð(dSý}ï?x«¡„¡PÖôô§f:DŠÐ ¢F!’#K„†"ܫꚶŸ¾ƒ›½¨’±zRlŸ—¿¯´ôSȤý—óˆ]k &VjV6.©PȤÔÿ{€@^Ï{éë HF …Â¥µîöfi·žaæfgzíÁ«Ø@g-*…Íå¹Û›½ªbÈŒü¤ê„q¤¥‹Œóãêèhõ s»š[Ì9%«EEXIªI¦?|VR EõÉ_÷ tµZ¶'÷?è4rR/}íºÆVÑ_©P¼·Oÿp·âŠú=ÚŽ4)¯iX>1–xy‰!÷Ý„ˆý–ì8h²•B£B<í¼-¼¨”tjÑådÔPÉ›råˆRÛÐrâÆ“‘±>¡pýß™„Êå ržU„zØž¸Q€xã‹Xn?)CG¡rõQ :­¤ú=Ÿ¤…ÅÅt´hLžôÁ¢¸X=.~ƒ§-ª¬¦aó±[Ó†t÷s.¿û|®hÒDE)Ž.:¤»WI53¯Pú\+´c)õ.ËG•›@¹(âïQȤCéù¥oàö“2GK#¢ÝS6íµº t%ÐÕ:÷Y…侓—jkQŒôèÑþNß ÛrìÖËŠz¸z¿x\oÿÁÑ^²ŸÓ¨”Ñq¾$í·<‰J!;Zž¾ù”Wò¦¡ª¾m¢™B&¹Û›þßÝB¢L ò «z:ËH!“ú„¸»Ù˜hSÈmC–&ºªõ‰?(d’«éÅÛ/dõÓØ\ÞÓ×5ÄeyM£‘äYO®X†}Ù?ÈËÑbó±[bn±j12wÐ%ÃãWÔ6ÆwuÓ¢Rž—Ö–×4Õ5´~½ñìçb:DŠ ¢F!’#KY÷©’“•ѹìçD³Îlb=-©u³{÷ÝzÿRÄ!P-±ªÅ%•6WtÑB ³EÁû¤¤vp7O*…dm¢¯M§^ºó¢›Ÿ£«I~Qµ»½iV~‰¬?©:¢šq¤ÂD…{ÏÊýìlÌô+ëåæ”$²¬$ëa¼Ï€ëÌlb¼ª!üÅŠÚ&0Ô£‹u”-ޒȲž'3ß­ªªoFl£”ûnBG$+ß;|¹ N~Qõ_ÿ÷@ìEÞÑRk¨ØM´†Ñi6®Ý/Jˆp/ª¨/®dˆJ¾õ¸$Ê×ÁÃÞ¬àõó²{òº†ÙÌR­ü¡I>Îĸ KÃo‡½,¯¿z¿ˆÇ»ÙLü"@x÷i¹²¢¨ò´!4*yãÑ¥– K©ïtY>*:í/x.ò*üêM\p'3ý’OfW-µº An64 ùæc)¯:¢åÊ}^¹bbAÝ<7¾ 7ó_ëÑû†ºô î ùEÕ÷žUx9š·×¾Cm- †a ÍlÑ›Ìæ¶Þ¶Ž•L"õîâÒ3¸3JÂ0Œ„ FÆúvq·9}óéËò:‡§K§};2’J&·‹¶-* Øï›H6—/Zqù! Ã@žõäŠÕ¢R|;Y=/­Å+§ú12wÐ%¶žÈNˆpïßÕM_›ÖÐ̾rïå¥;/Ð-Ö'h:QÚ7Eè t¾ÈÒDê}m-*†a-ïEÔØÊv°0$.YžXBTH,¨—$bí•P –ا%52©“‰ƒ¹a集†vaY›½Y]C«¾Ž±žX’Ï¥Ž Œ#•V6Ot€­±•ºtª"9%‰,+Ézø}=…‘ñ/Ü}!K{5(U¼%Í%Ë>xvˆn;±KQä¾›Ð!ò½ãØ}î^]c+/¨e¶4JKš"ïh©5Tì&ZŽ£•ÑÂQQÄý¯~9B¾@ 9Ü[XVWÛÐæeWðú•‰žƒ…áîó÷QUµê£-,®ŽUôŽ*|Û#BãnoF£‰-UhQƒ»yµ°¸ÛNÝÆûóO^×éÑGôðÉyV! ÅD)…Lš> ÄÞÜ`㑈­DÊ¢‚c)ËGE'P5õ$aqx¢ÒpÛêÒ©²ñ ¡V·!ÂÛ¾®¡õÙk™¯:à åµöæÄ´[Ï.Ý-´0ÒmfqM¬ÆÅ¼7¶§8øÜ¶Ö{éÒÖ¢²9<håpBá•{/?…7ÌÓöÒÝÂô{mkÎlÍ DCùB¼ÿZ¡’IïM}z´°¹ÐPWKÙ¢­'Wl+‡»ëlÎÌA¡SúïJËQä ¹ù…ÈtI€º†Ö}‰^¤¯Ã nžŒfVöãRÍ'n:Y)B”RDÔˆ ¹ù"K©÷ï=+ …ú:ïE„ïò”eDˆŸ@+›«B\Š#×2åošZ9öfö†ø¸ø“’š.n6õ­<¾ PÆT’:1~à:¢,ÚZÑuÉúÚ4h›åïØœR¥Š·âæÂ³CO›&zSNcËX·†~7É‘ïÇëj¦è$Qá­‚œŠÚÆäCŠnPd”Å9¸L÷²csy÷ŸW*¢ê¨>µŽ–F¢wlLõkÍŠ¬ýp±zVZKt0Т,õ^W3Dn(êô IDATßA¯«™¾,u´(Í,®˜(¹PȤi ]:Ûo>zKÍã+Uv,Å|TtÕÑP-ªè¶ü=ÛŽò;Õ7è˜êt¶5¹UP*æÂˆîèЩÎÖÆb \¿¬¦ÑÄ v³±1Ó¿þ Xe5Äàòø¯ª˜æÄC]º­©þÛPÁ³’Zw{³jFse]“èŸTi†‘É$ÑÕÆ®Ö¢0Y&úÚØÛ$kkQmÍ¥·Ý<¾€LVÝÚg AìOeQ<¾àyimˆ‡-¢Üœ ÚzŠˆ}^Z»õx¶—“ù”þÁŠlCLjÎtI¥²®éصÇ\_j¨(Ÿ‹éÄR„(¥ˆ¨AŠ×#Y¶½Ïå Š+A®ÖDÓa¨Kw·7}&cs°‚QHE͸‘¶ŒàYI­§£¹‹­ >·ðôu½…A€‹Uq%ƒ£üþ®O­Ž( ™DòëlI\»Û4³¸å5rsJ͵]P¤x+. ÏŽ—wŸRµ4Öµ–q^ˆÜw“܈É÷²ïhÕä°8¼euÄŸ\iÙK´¨”@WëPO»Üç•x=U¿lGVëÓ‰%|Æút³ ìÀü:[Þñní>ZT}S«½¹¡è;ÈÙʘÅáµ²y’¢ÐHØäþÁf¿¸žHWK´ŠH âšÈmH$,Àå]… ñ°ÅÛ=Å£hGª««jjÞÔÕÕ1Œ†††ææ¦ÖÖ6›Íårù|¾ä‹ôÙ ÐÍìÌ ÀÇÙ¢±•Ílb‹î7êêmüóH|…Ò׉¡u­%ÕL6—gj éã M£çØ›t÷wzUÅàó…lŒ#|ìoä½"öu)¯\ÎþótÆ °¸àN×îëëÐÆ÷ äŠLT½öèÛ‘‘s‡E\PÌhbikQ¬Œ0 ;™)娡PøäUM”¯ãƒÂÊZfk›5¾K†àÞóоa®ñ]Ý®ä¼Ô×ÑÑÃGÖHpym#BŽöwzUÅàò¢KNÑÜŒͽ&+HA!b»þxþÈÈy#".ç¼d6³Ì uíÌ eäËý!ÚzŠˆ}QV·åXö7ƒÃ¦Äï:›#w"F¹¹ƒ( &Úã{ä<+¯¬o"c¤ 7k*…\ðºZýeÜÅÛ/ðc1?Ó!R„.¥ˆ¨AˆäÈÒ¡áé›Og û:1ôêý"•îÎå gç!DÉEÙ¸”En ó´¤fTœ¯@ØvhRI5“Åááû¤Û=ƪ#í›ËÜÍKG‹Z]ßìßÙ*ÌÓîȵGxÙFç”Ê-ªš¨P¼'íÖ³¯C'ô ÌÊ­K§ˆôhlfK}£ÈÍY4è·¤–ÆzË&ÄœÏ~~æí‘‰KÆFÀêÔ¶Sÿp·þ]ÝVì½*v¤¦j(õŽþr ª¾¹¨¢~P7O#=ú-‘UÙ*4ƒ’ÂÛż· Êzwú²_Щ¬'l.¿_˜k+‡÷w ñP„gådml¨KPX¡ ¨ô{E“û}38ìz^1/ vµör2?Ÿý\ :KˆB{tczú¸XÝÈ{¥§C rkó¡ßÔ7—H«ËhQhÇRìŽöQ ”e|Iä¶Nl.`¤F©ªk pµv³!Ú½Ì/7+ûÝ65¾ q9*ξ¬"NÆÂ½ì^”ÕI®EË/ªó´ õ°¥QÉM­œÂ²ºßÓrˆ=F­ž•‰^ˆ‡-…Lªªk:œñH´G(7^EÈ/ªþýl΀H÷AQžõ­DqÇ)}Ó°vÿø®îÃzøèÒ©Í,î«JÆÕûE²¤í»x?©—ßÒ±1|àEYÝŽ3w¿I„–T3÷]ÈïêÞ7Ôå £%íÖ3ŠŒ¼¨¼‘÷j@¤»ÆTæ» w‚ºß jÛFváPO:^Ö’§EÒëlØMæº]$¯«™?ÿ™é1:ÎW‹J©mh‘ìþIm=Å–×m>vköð© Á»Îæ¨#:w%¡•Í«obõêÒÙÄ@[ €òÚ†]gs ^½ 0†‘dlwù¤L'ºp‘"t)EDB$G–&ÚZTY¼z³õxv|„û´„ü„þ]i9ĉ¨’ +eãR¹- >Éðª²íÐ$¼ÿà×Ù ±±A;¢Ž´#l.ïs÷Þ~·sìÚcâBtN©Ü¢ª‰ Å[q¾¬ú#-'!½‹» þ9…¸ N­2–| s ú-)† ÃDÇhÅšG ÃH&{‰r(ûŽîh98Ù¥#c}M¬§%ïf&Uh%%·‹yùÁ棷†Æxñ¦I/Êê~?wد‚ð¬\¬^W1ëY Šºû´ @Ø3¸óľ†½a4¹ö(ý^HŠB{tÎÖÆÐÍϱ›H÷êýbÉOåÈ%DZ|ÿŽöQ T¹­¢ÝûÀÄÆõRä±ô+ï’€@ê£ñ_Ä-Ú-å€j Ÿx·¡Ï—Ù/˜×8‚[]#šíÇVJƒ 4´?ºtêSz¾ùäs9Ð]ÃgÇŠ‰=²—ž“øxèÇõïÿÜÛ‚”K[°h|¬x·aîìigÏ_;z¨ºßmÐðáÁ3×v)kÎkâ½Ñt4hРáß•2 ÂýIIMS+ÇD_»O¨ ‡Ë»õ¨C6ÑjÐËöd|‚¢4|Êhº Ÿ%†4[*‰®K1ûØŠhРAƒ†öA Xë†zÙéÑ©­lÞ³ÒÚ?Òî} ‡GiРAަÛðY‚¦K1yLN™‘–í´ªTƒ 4|$¸q>—ŒÞ½[ÇÊÊÿ³··ˆŠ2ýí7]>¿-Tô]ùIJ2òö6¯«{Ϻ{—jcc¹iSû¿²;„ï„öèpªªª¬­­³³³Ñ¢ ##càÀ:u²··‹‹;pà€,Qèx¯_¿þõ×_ÙÙÙùúúΞ=»²²RVêä&íXŠ"×G€+W®àitvvîÓ§ÏÍ›7eIû"½ÛðêÕ«S§NwéÒE2tæÌ™¿‹°dÉèÙ³'ZRRbllq‡ÃÁþ÷?ooÞÌ™b0®]@ûNhçÂ… ¦¦¦!!!hQÙÙÙIII|>Ó¦M¿ÿþ»““Óܹs÷ïß/U:Þ7>{ö,))iãÆIIIgÏž0`@SS“TõТЎ¥hþüóÏ1cƯ\¹ríÚµ¡¡¡µµµREý7‘¾H)$$$??vîÜ™••%*–m?ýô†aÇÇ/‡ 2dÈ"4111((èèÑ£øˆHrr²‘‘Ñßÿ­££Ý»wß³gÏÌ™3àĉ=:vìXdd$®Fhhè¶mÛ–-[Ö^ FóêY €Q£X¾¾Ü£\Nž<¹fÍ€h¨€Õ«ñ[L&sñâÅútýFVc}kýƒ²š#•4|.Œ;vìØ±[ ÿQ4Åï£Éuqá@|<«O“={t¾û®‰L†±c[ÇŽmUA ‡ƒÑhâ'‚H½) kkÁ²eóæ ÄêÓ‡ ¿ü¢[TD¹p¡–òù,âFûNhçÂ… ½{÷&‘HGEˆ:qâüõ×_FFFЫW¯ððð#GŽŒ3FR:ÞäääÎ;—ÞÞÞ“'O>sæÌ¨Q£$Õ“+ áXŠöQKJJ–.]:}úôæv~vHŸm ‘Ý*-Ž9æàà õSSS …"´ „çääDEEáY ®®®ÎÎÎgÏžÅ//^¼hmmV°¶¶îÖ­ÛùóçT†àÌzT”©ƒƒE·n¦gÏÒÅB?¦Œgäæfáèh‘`’MÃïÏše˜h ½z™XYY.]ª”I“ŒüýÍíì,}|ÌgÏ6Íœ1ðwoQáƒO˜ ¾ jéRýM›t0|Š60Ð\ÉÅü$ñ×¶*Œ„‘âÜâ ýyz{M8<~üxâĉvvváááÉÉÉ¢¡‰‰‰ŽŽŽ~~~[¶lûá¸qãÜÜÜðOÅ>>£G–5 B°téÒM›6544àËöÑAVÂÑ–_¥påÊ•¸¸8‡   ””±gd­Âõ4è*< ÙÙÙýúõsppURªUàêÕ«ñññŽŽŽ®®®cÇŽ}öì™,ûÈÍD±D!˜1cFïÞ½E£4hЄ TN,A^^ž••aí?þøÃÊÊê§Ÿ~Â/_¾|ieeuùòeÑ´«PqJE5+á±<|øpÀ€ŽŽŽáááxܽ{7þB8p`qq±Øó²Ê9ÂæR­ª`ñÃ9}ú4ÞPDGGŸ;w±šQ®(YfW6gÅè ²ãÀ0 â67cõõ$X¤$ë +Vèûúšß¸Aûâ GG‹eËôdÝDËe̘ÖîÝ9 0™ØãÇ”ß~Óýæ›fœ9C·²²|üø½ÄèÑF±±¦r£(.&O˜`äînakkéãc>z´QSSG}a í;Éõè333¿øâ ¹¢Èd2‰DÒÕÕ%$Éd©¢ÐñŠö ,, d-.B‹B;–hÄ|Ô¿ÿþ[ Ì™3ˆ›DQ÷$¥¬¬¬²²²‘#GŠÝg±XÍÍÍÅÅÅ‹-ÒÒÒ"z¢‡F{¯êÒh´'Ožàÿò䉻»»h¨‡‡Ç«W¯Øl¶â*]¹¢5uª¡·7ïàAÆ‚ÍkÖè={ö®Î?zD‰7a2±-[˜ý۶æj”—G€åË›RR˜°?ãΚyóš ¢‚ìåÅÛ°¡áøñºåËss©’½¹Ì›×ÈT×ÔT×´¼¡\}iyyyýû÷¯¬¬\¿~ý±cÇfÏžÝÐÐ@„¶´´L›6màÀûöíëÓ§Ï?þHTÎGÅÇÇ3™Ì-[¶üõ×_ÖÖÖC‡ÍËËSD,Á–-[æÏŸ¿~ýz¼ÞªcEE…——׆ Ž?¾|ùòÜÜ\Âu€+W®L:ÕÛÛûàÁƒ ,X³f¨O3~üøÒÒÒÍ›7Ÿ9sfÆ ÎÎÎ\.JJJ¬¬¬V¿ñeÞ¼y“&MÒÓÓ»sçÎ;wÎ;'WY G§Kƒ±zõê-[¶<þ|É’%kÖ¬Ù±c‡"Y†VO–ÐêÉú&“¹lÙ²U«VåååÍ›7PRªU¯]»†O"ïÛ·oóæÍ%%% ¥¥¥R%£Óˆ(–ˆ ¥P3±¢øøøfffâ—™™™t:]ô’B¡„‡‡ã—*W„†’¨c¥–––™3g6lÏž=®®®_}õÕòåËÓÒÒ–/_¾e˖ׯ_OŸ>]4.t9—…\«¢Ó{ùòåiÓ¦:thÁ‚?ýô¢Š…0»R9+FµMI ™B}}ñiÄ;‡ÉÄ–.Õ_¼¸éöíšéÓ[dÝ”+G” šš°¥K æÌ1èÔ‰7wnÛú–Þ½Ù£Gß >¾yCºvMkذV¹QŒoTZJÞ¼™yæL݆ ÎÎ|.·£º júNW®\¡ÑhÝ»w—+*))‰N§/Y²¤¼¼¼¦¦fÛ¶mOž<™:uªTQJqëÖ-ðôôTö‡ ϱ”úÖ–å£fgg{yy?~<00ÐÆÆ¦K—.)))š3îEQwîСC::: b÷‡Žï2155Ý¿¿‡‡~ßÅÅ%77W(b £°°Ëå²X,:Î`0|||Då …Bƒaii© JÉɺ>>¼”&†8;ózö4%öŒ­Z¥oi)8|˜¡¥%€¨(Nß¾&7êîÙÃ01XXÀÒ’ooß¶W+6–ÛVñBC¹¾¾¼èhÓ‚Ч§ 1ŒB ±í #%uIúóöŸsÎí1—„©Õ\±b………ʼn'èt:¼ hnn^³fM·nÝ &&ææÍ›§OŸŽ€U«VYZZ>|XKK ¢¢¢úöí»qãÆ={öÈ B¡péÒ¥ýõ×üѧOõcŒÅ…„††úúúFGGà Srr²OJJ ^{öì‰OS¶¶¶>}útóæÍÄFB ÃÈd²èà ‘‘‘‰D²··'n¢u•ptº$ár¹?þø£··7 <øÁƒ7nœ4i•JE¡Âõ¿BÃáp~ùå///?~üp%¥Zuݺu;wÞ³g…B€   ððð_ý•ˆb‰RJ5+ ‰D ÏÊÊš7ož@ ¸yóæ„ ~ÿý÷ææf]]ݬ¬,???=½¶¡V•+BCI•Ô±RssóÚµk#"" 88ØËË+---++ ÷š››çÍ›WVVfkk‹?.ç²kUtz7lØDlðððˆŠŠBD‡…0»R9+FµAk+ÖÜŒ±XØñãôôt­¾}Ùø‹XÄ;€ÃÁÖ¯o }o0Bò¦\9¢ØÛó/núþ{}2Ξ­£RÛ´ÒÒ&$°NœÐ^²¤ ï>q‚ƒ³ÐQ´¶bOŸR6onèÛ·ÍÀW@ujúNçÏŸïÑ£^HТ<==<8a„}ûöNÿõ×_EyQQJéÏÔ‰Í*Ú±”úÖ–å£VVVVUUmܸqÉ’%vvv§NZ¾|9‡Ã™5k– Šý+QË¿ljjJKKëß¿?1cE°nݺS§NíØ±ÃÕÕuôèÑwïÞÅïOš4éÙ³g+W®d0åååß|ó > ¤ø²(4,öàµö¶WïãÃëܹÍYçr±¬,ZB‹hª0 z÷fggË|ëp¹Ø† º11¦..½z™@aá'·æÑRß’D"Õ4×Ü/»¯Ž‡sëÖ­AƒáN€$ººº¢oMOOOüô.—›•••@´†õîÝŸ—+–ÏçOŸ>ýÈ‘#‡s4U‹`Æ 111...½zõ€ÂÂB`±X<èß¿?ö¶ øøøs¦ÚÚÚnnnÉÉÉ»wï.((i°³³+++ûî»ï1&ZY —›.Ih4š¨»Í`0ˆ±YD«'Ëhõ¦Cchhˆ{Z8²NÕ`³Ù÷ïßOHH ¼]zlee!ë° DŤ¬ê$V’¨¨¨»wï²ÙìG544̘1ƒF£áÆÏÊÊ"–€Gq Õ´’®®.ÞgÀc´°°èÞ½;1jèêê ¢ñ¢Ë¹:ÈJ/ÞPà+.p:wîŒÞK-K”\³+ž³btD ÙAôêeÒ¹³…··ùÒ¥ú±±ì Ä'œyGkk CBÄ'0Ån¢åðùÀdbÄþÀĉ-FF‚èhv`à{‡gUT23ÛŠå‘#ônÝ8––tÚÚB77^r²îîÝ:”Oy´šË妧§=hòòòFíçç·ÿþ#GŽ 6ì›o¾9uê” ¢X,Öĉ[ZZvîÜ)uHN.hÇRê[[–* ›šš6mÚ4|øðˆˆˆuëÖÅÆÆþöÛo|~‡Œù~ލåþž9s¦µµuĈ’AÄpE¿~ý"##W¯^}òäI5jTEEÅ–-[¶oßqqqñññW¯^Å_FFFb W †a††† ªÔЀ €OXXðßJø\ضM7%E‡0DyX´HÿÔ)úÂ…M]ºpõô„ –`Âb)¨Î‡ßáp8÷pú³ôÛ•'˜L&ŸÏ·°yžŽŽáj™LæñxÀ`0¸\î¶mÛD ¼²ÉÛÜÜ|éÒ¥ðððàààv‰-ZtêÔ©… véÒEOOÁ`$$$°X,hhhbúˆ^8p`ýúõ6l¨­­µ°°˜:uêŒ3DÕP„².7]’èéé‰v¼ñÍj FÛ š,ÊUOª䪧šéĦ˜I$¡¤L&S ˜™™‰Þ433Ã7ÌI‚H#¢X¢ƒ”R@Å+Idd$‡Ã¹sçÎǽ½½ÍÍÍÃÂÂ233mmmkjjDÝG•+Žâªi%b-2¡¡èÜ]ÎÕAVzñ†ÂÄä½ lb— Š’kvÅsVŒŽh!;ˆmÛ˜¶¶| ø¦¦RŽ+òŽÖÓJ6'b7Ñrîß§öïÿ.++«Ã€JšÄö‡ÐP޽=ÿèQíîÝ9ÏŸS>¤þöSU`¬_¯»aƒnm­¾……`êÔ–3š•‡(„:¾Ó7Z[[ñN£\Q«V­244Ü·o>Э[·ŠŠŠÅ‹'$$H$1QŠÀáp&NœˆoÂvvvVü‡¢ K©ÈòQñtOvïÞ===½´´ÔÑÑQ5õþe¨ÕmÀwp"FA€J¥zxxˆ¾*æÎûõ×_Y[[ÇÄÄHîîî¹¹¹¢?ò䉣££¬!jIðµ@ ïUÍÆF’®.%“aêÔ–Ñ£=´áØ1ú×_·L™Ò¶€² à=‹‘Éâél6ðql®>¿ÚÉ´OÀ£‘eÖ4††† ¥ººZÙâû¢¦N:zôhÄìÚµk̘1_}õUJJ E3,Ð1À±cǾþúë)S¦à—¢¿%‘Hbccc#1ofgg‡ï,|þüùV¯^mii9lØ0¹Z)®¡‰XÂå¦K’††6›MŒ)âc¸S¥ŽzR0`À´zíe:Y’H¤ššÑ›555²Ò‹H#¢X¢ƒÐ %Ú¥vg¡ñôô411ÉÌÌ|øð!îJFEE:uÊÖÖ–J¥†††Ê• B“…:VRD9ï ›ã …ØFáúúzÉ vED¡Í®~Î*£ÜÖ©Ýñóãá')ÉB…w´ rÜÝy§N)ºÃÃ`èPÖÎ:ëÖaGŽÐuu…ýú±QÕÎŽ¿eK<N9p@{õj=KKþ°aÒ+SÇwºpáB×®]‰ZÔ‹/üýýE_Ðþþþ—/_nhh022%.—ûå—_Þ¾}ûСCj~~áX¢óQÝÝÝsrrD“ö]ó/@uC¼zõêöíÛÆ Ge2™999b[æétº§§§µµõéÓ§Ÿ}ª‚(¹fW?g•ŠQñêÿ!Qö­š==aX—ø“+mèÐÖæf,-MëØ1zÿþlmm¡Rªººò–-k¤Ó…„+Òî¨ì; …‹/Š.ÃC‹²µµÍÏÏ­M÷îÝÓÓÓÓ××—…†ÇãM:õÆýõ⃊#˱í£öë×ÒÓÓ‰ÒÓÓÍÌ̈V¤b¡Pˆ· =€+W®˜™™YXXˆx>|X(J®P7n~š›ŽŽNIIÉæÎ‹‡æççÿùçŸþþþT*õÎ;;v,±+xɤŒ IDATkðàÁ)))Ó§O_´h‘ŽŽÎ¦M› ÄÓËüùÍIIF;vèLœØZ[Kš5Ë@ôçåË 02Ädüøkk“‰åæRX¼XÊ‘$tïÎÙ¿_§o_¶½=ÿìYúŸ¾×vÇdz¶lÑMNÖ›6­¹¦†¼d‰¾¬Qrww^k+¶w¯v@Fzy)Ú&&&2™L€RøõW]øfb5¥¨H`a‘4nœØÃd¹²¡òâ“‹~6~*ÃaÙ²e HLLüꫯ,--‹‹‹=z´f͹?\¾|ù€† 2~üxkkk&“™››+/^¬ Ø°°°ƒŽ5jêÔ©;wîDïtDÇH"‘ºwï¾ÿþ¾}ûÚÛÛŸ={öÏ?ÿýíüùó“’’vìØ1qâÄÚÚÚY³f𥥥sæÌIHHpuuåñxgÏže±XøÑ¥¥¥aaa3gΔº½ÁÝݽµµuïÞ½4ÍËË ­ƒ¬„£-)‰ŽŽÎÚµk]]]ÓÒÒNŸ>½bÅ ¹ÖC›a„zˆ_©Œ¤U,X0jÔ¨qãÆMš4©µµ599YKKKêÝr‹¢X"‚Ð ÄÇÇoÙ²%99yÚ´i555K–,QdöLVb%Ÿ‰ŠŠZ´h™LƇÓ|||ôôôðÝ´ Æ¢lC ²•TQÎÑ6Wβ˜7oÞØ±cgÍš5zô躺ºuëÖ™››«6ô(×ìêç¬â1Ê­………Ý»wŸ3gηß~‹ß‰‹‹€+W®à—6løå—_®_¿.6,¨&J½£?€èÜ™Ä]³F¿¢‚4lØ»9jD¥¥ä9s X®®|Ξ¥³XX÷îIá……”îÝMçÌiþöÛ6ÅââLàÊ•¶OŒmØ ûË/zׯ×vî,Óm@ûNîÞ½{UUU¢¾>ZÔäÉ“¿úê«Ñ£G?žJ¥ž={6##cΜ9d29''GLÚ“\°`ÁùóçÇŽ[[[Kœýåää$¶![QhÇRì­öQãââ"##ÿ÷¿ÿUVVâ[¢333×­[§™m þ2ãóù“'O&.-Z={öü믿ð;B¡ððáÃaaaNNNb¿‹‹;vìØ±cÇZ[[MLLBCCwîÜ€‡êëë?{öìøñãÇÅÅeÕªUãÇ'~K¥R>¼lÙ²eË–q8œ°°°””ÅÏPz«{Çæºuº«WëÙÚ ¦OïKÞÞ¼‹ë~þYwéR}ƒdd$à~ù¥Ì!ðM›˜óçôèaJ£AHç÷ß¼[éëËÛ¼™™œ¬·u«®“oîÜfYëBûöeÛºnƒA²²äæ*úék{{{ü;Üð믖°|HšöÑ£3³&iÝßRFiAUÁ›¦7þ¶þªípðõõ=sæÌúõë.\ØÒÒbooO|Ë··÷Å‹þùç¥K—2 ##£€€€/¿üR)±!!!‡9rä”)SvíÚ¥NŒ›6mš?~=h4ZHHÈï¿ÿ>`Àâ·qqq;vìX·nÝêÕ«mmmE{§666)))¥¥¥$ÉÃÃcçÎÑÑÑ  ù|¾¬m}ûö;vìºuë †••Unn.ZDÂé’DWW7%%eñâÅ=255]¶lÙ´iÓЦ“k"„fGüJe$­}àÀäädü®]»îܹÓÎÎNÙ4²X"‚Ð øúúnÞ¼999yëÖ­øWT_/.™XÉgðu¡þþþúúú@&“»vízñâEôzQQÐG)T¶’ Ê9ÚæŠXU={öLIIY¿~ý‰'œœœ.\¸sçNô—kvõsV©ÑUC²­Ûß‚?ÐîgS*ûŽîh98Ʊ¾ûNßÚZùÎõGDa` °±¤¤è––’I$¡‡oçNft´”nƒP|>ˆ¾RĶ …Ÿh3£}'„Gwþüy???kkkE%&&b–’’2sæL>Ÿïìì¼bÅ |›¤(´'™““©©©©©©Ä3'N\»v­dѢЎ¥XIFû¨†íÝ»÷ÇܰaƒÁèܹó–-[tþ#`zàhüqí¸úVCaee •åzÉɤººÖaøˆBArzr]Kݰ€aÁöâ¡þ}¬X±âèÑ£>üØŠhÐÐ|"åœÁ`-\¸PÁž¹ Ÿ2‘‘‘C‡ýßÿþ÷I‰Òðaø-eolœBû×Ó¯üßÜÙÓΞ¿2vôÐOî Q ò!‘Ø=zh;FyöL²Û@ÂH=\{{pìÙ›gšnƒ 4¨Cssóúõë»uëfbbRZZºuëVÍ裆YYYŸ ( Ÿ2šnÃg 78XhlÌ“±…1Ø>ØXÇØÅLé Ž4hРA …RXXxôèÑúúz}}ýÈÈÈ””ü”F 4hø¯¡é6|žH<ŒÃ¡æäpÂÂàýÍ:$ŒäbæÂásrJrÂÃÔüh´†O|êÇÖBƒ†Žåc•s---bSŸ 4üÇy×mPv籆Żœúùg(*v¤÷Ï.ª)²±° uVúÀo 4hРAƒ DÑŒCÎàçZ^¸ õ…înÝ࣠í~Ò… 4hРAƒ†ÿšnÃçLH˜™Ae%ääH t 1Ó3«dVæ¼–ªAƒ 4hРAƒâhö6|ÎH0p TT€§§”@Œ40``³ÂÓJJ¨ 4hРAƒ Š#}¶¡¼¼|Ö¬Y]»vÕÖÖÆ0¬¸¸X4ÿއĤ³²²úôécmmM¡PŒŒŒúôé#v,×Å‹»u릧§§¥¥ðLj†Þ¸q#::ZGGÇØØxäÈ‘eeeê'²gOˆWôáíÛÁÉ Èd02R7ÞÕ«AO¯íÿééðÓOê ”Bp0Äǃ®.4Iùòe°cp¼_¼®–n[éïbÊ"==ý§öHI{É‘EÏž=ãeç:"´ã¸zõj=¢@|@¶oßîääD&“”,ÓóçÏ·²²jw}b;(F© KˆTÔQ¯ƒ’öQ •h¤’å¼SÚFSÜbÝFý§øõWÀ°¶?--ðô„õëß}ãLô]ù‰ ¨©yïæ?ÿ™ kÖ|•T£ººzìØ±&&&zzz}ûö-(( ‚ÐNEE‰DÊÌÌD‹y.œ¨(t¼—/_3fŒƒƒ•Jµ²²š8qbyy¹¬ÔÉM‚â®#ÚG½|ù²˜skff&KÔé݆—/_:tÈÔÔ´k×®’¡ .<"Þ°öë×-..655]°`Á¾}û~øá‡¢¢¢ØØX⫝̸™™™ýû÷çóù»wï>räHçÎ'Ožüûï¿ã¡ÙÙÙqqqB¡055uË–-wî܉‰‰i’æw¥¥0s&$$ÀÍ›põj{JV¹ÛP\\¼î-눫um5‡Á€ädHN@òçŒFò¥ää‹É¡”Pø\º *Óq ´°°ðòòR_²R”––Μ93!!áæÍ›WÛ·Lkøø(…J4ÒO¶"«Ï¿8i‹íÛáÌøë/ðô„… añâ¶ûðÁKq;v‡ß|óî› _~ þþ°páÇQI¸\nïÞ½¯\¹’œœ¼{÷îŠŠŠ˜˜˜ªª*<íÑáœ:uÊÜÜ<""- 퉉BÇ»zõêÇO™2e÷îÝS¦L9zôhTTTcc£TõТ”rÑ>*Î/¿üB¸¸{öì‘e´ÿ&Ò)EDDà¥dÓ¦Mb¡bÙ¶dÉ ÈOy3f̘1DèÈ‘#íííSSSàï¿ÿ€³gÏš˜˜@||¼‹‹Kjj*þÙðåË—›˜˜œ?^WWºtéâííýÛo¿-üPÕ÷åK`âD ú0ÊçàÁƒß}w š¸³hþï-ƒ±víZ00&jkáî]É#• ´ ˜-ÌÚæÚ»Åw5G*}\¦N:uêÔéË—/Áĉƒ>2­¡ýP¹P±Ùl--­©†ÿ811àá0t(„„Ào¿Áš5@&ÃÔ© Zb³A²K½) [[HN†)S`Ô(0`Õ*xþîÜÊ糈ûÀ*N¯^½|||¤JƒôÙIÑ­Ò 55µ[·nÎÎÎR077§R©‚·ád2™L&ëëë’ÉdüòÖ­[±±±xÆ€§§§‹‹Ë±cÇT†àÈðô:¼¼àèQñм<0ŒŒ@["#áÆ¶û&@t4@p0`Ì™ðð!  66@¥‚¥%LœøÞlfRtéòžð˜HLqÎX³˜Ì¶)Z;;eð“Ä_ß¶@ 𩞠$'H©Ÿo?¸ðè‚úsæÌY³f “ÉÄ'ïìÞ¦$//oÀ€FFFÚÚÚ‘‘‘7›&&&S(KKË~ýú566Ê’ƒàáǃ¶±±¡R©–––'N¬y^ùÈ‘#žžžt:ÝËËë¨D®£C?LEWGà«/nܸN§Ó­­­×®]+ªÉáÇq…}||Nœ8^QséÒ¥ˆˆmmmCCÄ„„Çã÷'L˜ ÁÁÁ†ÍÁË´yyyƒ 255¥R©...+V¬³|tt´¶¶¶¤’³ÈK°gÏ*•ºFdA€j1ªSB¤f¢TmàÖ­[aaat:ÝÁÁá—_~QÜ ˆ¤!”?rä†ayyy¢rúõëçïïKnd•x[ä®\¹¦­­=oÞ<1Ýrrr0 ÃW)ÀÖ­[1 [²d ~ùüùs ÃÒÒÒD#ETdD&ŠÐmpD®É•I +ËTh 4(†AX45Am-€Ä"%Yïh˜?¬¬àÊ mmÀK±Ô›h9¢Lž ={ÂW_ƒyy°~=,ZGކÁû•úõùQBb"…––ЯÈnTÔåôéÓ¶¶¶¸£vvvqqq'OžÄ/åzt ‰‰‰rE¡]81QèxEû ²¡E©ã:Šù¨ÍÍÍšS(¥¢îIJ¯_¿ž0a‚ØýÖÖÖ¦¦¦Â¯¿þZKK‹è‰N™2…N§Ïš5«¤¤¤ºº:999??Ÿðf8ŽØ˜––V~~¾R*;#F€¿?\¸+VÀwßè+ãÁˆˆö탳gÁÎzöl;ˆ(9þþ - ŠŠà‡JKÁÏví‚«Waø}[J¯@.?ü3g‚¾>AQܺ¥´9„…¹9˜™AI‰”ÀNaæúæfzf%õRB•â‡~˜9s¦¾¾~QQQQQÑ­[·àÁƒ cß¾}gÏžµ³³ëÙ³gÎÛÃøêÕ«½{÷feeíÚµËÅÅ…ÃáH•S\\ŒaØ¢·“)b”––úùùíÚµëêÕ«6l¸}ûv¢HNœ;wnĈþþþ.\X±bÅwß}'ê( C?XÅ`0óæÍÛ´iSyyù²e˾ÿþ{—MKK9rdHHÈÅ‹W®\¹dÉ„ßóÿ÷ýúõ355=uêÔÞ½{‹‹‹###_½zÉÉÉøàPZZZQQÑx™~Ÿœœœ®]»–——oß¾===ýûï¿g0DhssóÈ‘#‡~êÔ©ˆ*‰6 Z,ÁÚµk§Nš’’²øíz•cT§„HÍD©ÖnjjJJJúꫯ®\¹2räÈyóæmܸQõÐIC(Ÿ`hh(úűªªªK—.7NL7DIÀa0sæÌY»víË—/%» FFFéééøezzº¶¶¶è%…BéŽúüYå‘ReuF\V®É•I€È2š JQ\  ˆßG¼£q ˜3Ö®…—/ßõ$oÊ•#Ê®]ÐØ³gäIàæK—¶ÝOHCCýÜ_U\ºxåCG1p ¼z{÷BVìÚ.. £Qi=zäíí-zÇÇÇçåË—,K‘ŸŸ;wŽF£õìÙS®(´ '&J)®_¿¾¾¾Êþ乎R] Y>*NDD„žžžžžÞàÁƒ UPé_Nê£õõõBià tQQ‘ÔP¡P˜””¤««ÛØØ(v?22nnnž™™)ôÏ?ÿ,ÓÖÖþû￉    ///@€_ÖÖÖÒh4hii‘¥€$¡¡ÂÀ@á[ÂÜ\!€°ÿ¶ËÞ½…..ÂÖÖ¶K@Ø¥‹01±í2#C ÌÍ•)œP8<<œzúô)†a² óòòâr¹øeYY™¶¶öôéÓñK|>7Wv™îÑ£G§N¤V1\ÉË—/wÜÝÝ %f‘+ÖÒÒR Ìš5K[[ûÔ©Sí£Š—D&J5ȱcLj;ãÆ311áp8rÕC' ­üäÉ“mmmùo«öÆÉdryy¹ðýB…. ¸b­± ˆ‰‰ …|>ߨØxîܹ oÞGŒ†?&©d9W*¥Šè,Õàˆ\CËUeJ5ÐlÝ*æä…ÕÕÂM›„öîÍ+ú®D¿£çÍÅJ±Ô›h9²4$“…ÙÙïÝŸxð`Ƀ)¶oß~ýúõƒzzz~ñÅÿüó~?''ç‹/¾NKK»|ùòرcÇwèÐ!UPˆ HPUwîH 4²!‘HU UwŠ¥„ª‡ÃÉÈÈ6lý­M1 KHHÀ—:èèèxyy­X±â×_}øð¡9åçèèÈãñÖÈ8½‚Ãá¬\¹Ò×××ÀÀ€N§ÀÓ§O µµõîÝ»C† ÁÞæz@@€ÛÛ\G‡~ÈŠaddäççG\:;;ãó³¸Â¢#ånnn²¶½²X¬;wî :”òv®MLL̵k×ÑÍf_¿~}Ô¨QÚÚÚRÐÓÓ‹%.}||p%Ñf‘+–Ïç=:55õÒ¥KðÅêÅj”¥2‘J¥&$$—C‡­««ËÏÏ—«"ihå`ܸqeeeÄÀjjj\\œµµµ¨bŠ”ˆˆDêbccÿùç‹uÿþ}ƒ±`Á---|NFF±nA.ˆ”*«³,ƒËÊ5Åk„"Y¦Îó$ }}°°€9sà‹/`×.ñyGëè€d)»‰–ÃçƒñîgÆ 01Þ½ÅwŽeeð¶òAj*Äŵµœ(ttÀË V¬€_…‡¥~‘õSÃáœ?>Q±uhN)Q­­­ƒnnn>|ø°èz'ÅA»ŽR] Y>jHHHrrò Aƒzõêµpá .¼yófóæÍ*hõoE­nÑ#GZZZ$W(€¯¯o·nÝFŒqùòe333bzháÂ…ÆÆÆ§Nêׯ_\\ÜŽ;z÷î=kÖ,|aÙ¤I“V®\¹mÛ6SSS@0tèPcccÅ·î1™ €Ø‘}Äëµ¾¸\øùg Óßý­ZÕ¶¼R*3f@r2Lž —/Cnn[ۡؼ߇…Øápþ ¦ˆœP€w[ ¾1éÒ¥óçÏñâ…‰‰‰­­­¯¯/¾QFA D&ó½›LfÛv+CC “aÎøòKEîßóçÃìÙm—¾J¡ˆ7³G—.«+p¹’I„8…\ztÉÕ•ËçjQT †•ËK hŒ$Il;omm­T…ŒŒH$RuuµèÍêêj¼6ÉÅÈȈB¡TVVª $Â,rÅ>|¸ÿþ#GŽ]q­´µ¡K¸|ùÝŠ öTÓéàâïýIE ç½=[ÿÏÞyÇEq|üíõã8zo‚Á VPQ±×½D#ü!±'6l±¡±—+v‰±EņÆ@‘"HïH/w\Ý߇Çqeï(F£ûýìw;³oÞ̼}³SVai¾•äå5¾Ü¯®VìWÈ RA.ÓÍ%Rúņ¦‡Ò,~þ&OV¹ù!ü<âçÉ=&·²Ï@¥Rå«F£ùúúFDD899¹6EáB77·:.·­ ‰D"ôäjB~“:îååõP®Ö‹ŠŠdË¡°C?“ Ê#UX¶s¤¥¥%%%©ŒL£Ñzôè&»ïŠŠŠž|ø‚ (JXXXxxøš5k¤ÚâââŽ=êååE&“_¾|yêÔ)ÿáÇ7+K6À¨Qð믰h”•ÁìÙM¼èÝ»ÁÇ €… ÁÊ ØlˆŽ‰TîH €Ÿ?cÇ‚½=„…Á±cM"L˜Û¶Ap0,] %%°d‰ÚžÝÝË…#GÀË ¨T›Ó®É“'³Ùl€*ر àGNzEº¹®ùüùóc‰PX7oB·nÊßp ˆ…ì›ñ7»Ùvkñ7ÜÝݹ\î‘#G¼¼¼¨Tj§NvïÞíãã3`À€… ZYY±Ùìèèh‰D²mÛ¶ÜÜÜ9sæLœ8ÑÕÕU$………ñx<é ÊrrssW­Z¥¼¼@ øùù?~|ìØ&Í–Ç IDAT±öööaaaÇšÖĆ Fõ믿.Z´¨¬¬löìÙò£“Ø¡ÿZµ/äõë×=zÖ¬Ysçέ¨¨X·n™™™º>›6m6lؘ1c¸\îÆ©TêÊ•+µLk×®]}ûöíß¿ÿÒ¥K-,,233ããã÷ï߯ñBŒbÑR¬Oxxø°aþûî»+W®ÈÏEinŠ­±ŒJT†Á`¬ZµªªªÊÙÙùÆçÎÛ³gTsìÁ@£òàììܳgÏÕ«W¿ÿ^y†’”VZ‚”‰Ä¾}û@×®]uuu#""Tní³smtVW൦}9`WY³š‚fåƒf=£ÿ9àì ={ÂêÕðþ=Èß|IäæÂœ90q"¸º‚HaaÀãÊF%5ÜÝaÍíP-ÝûUöú{Ó&Ø´ ’’ é†¥M˜6mÚž={¦Nºe˃±uëV}}ýåË—KC1<º¨¨¨¢¢"y_[† © Û“\°`Áõë×ýýýËÊÊd;­999u‘æ¿)Ø¢°]G×ÛG7nœ•••§§'N=zô¨l§å”T¾=’ßÈE"‘ØÛÛûøø(/Í>pà@¯^½tuu‰D¢™™Ùøñ㣣£å#\ºt©Gt:B¡tèÐaÏž=²B233ûõë§««+m£>,[ß,._F]\P utDA Bå7¡INF'MBMLP"51AGŒ@ïÜiRÞI©°5 ¥ÑP==tøpôùs mŒpæ êà€’É¨›zá‚Ú”D"Ôß52Bµ²jAžPmØCéeþË…·nˆØ z[¤—/Ñ… Ñ Tn©ô2ãåÂs 7ÜPs­ˆD"###A¬>ä$99yÒ¤I&&&D"ÑÄÄdĈwîÜAQ”ÍfÏœ9ÓÉɉL&Óh4//¯Ë—/«““ «V­R™naaá¨Q£h4šžžÞðáÃ¥ËCåjâòåË... ÅÑÑñÈ‘#ƒ ’·XìÐ'ƒ ;)™™™É§+¿S Š¢—.]’*ìæævõêUooïéÓ§««”ðððÞ½{Óh4]]ÝQ£F%%%É‚4¢hll¬t—O‰äää´yóf-•TW,ÍûÏ?ÿèéé;–Ïç·&Å[F%* U/22²GT*ÕÚÚ:$$D>†zØYÓ¨<Š¢ù-•ЦF…bZ‚²*‘îK+_æÒ5ë*U¶s•¨€FU8v­aÈT(1Œ*kVS€ƒtŸ¢ädÕ¡òÏJó½lªlÅ*ObËQ‰™Yãã[ƒQ€&[*a'Áf£3g¢NN(™ŒÒh¨—ª¦QA““QtÍšÆ3î{ãß °ŠNFqqñÔ©SY,–ŽŽÎ!Cämã[µj•§Âv˜¢Põ.œ²(lORa›W)*s‡- ÛuTp-°}Ô;vtéÒ…Éd’H$ÿ¢¢" EÿŸ¥e;)!ÒnèჴŸŽ†ó©NK$ÁO‚˹å3;Ïìe­4v&‘@p0”—ÃÌ™ 4²&A%Á7ƒË9å3{ÏìÕwûoPYYikk»yóæüñS낃ƒƒƒó…àêê:}útÙW?Q8ÿë7î8h°61?z°tÉüÛw͘:¡µŸ{Ãù÷! „aNÃà]™ªO€0l€ª„Â0að®HíçÃp>9géÒ¥ýõWTTÔ•+WÌ`0ÔMMÁÁÁÁÁÁi)))måè·¡(œÏ™Ví¤„ó©èeÝËnèj¬f™X¯^`h¨nY¯v½ †®æø2¾Ï‰”––vîÜ¹ŠŠ }}}__ß .}j½ppppppp¾^ðnÃBp5vå‹ù‘ù‘}íú¦£F¸ºŸ‘‘з/4]JK@®æ®|?2+²o{¥kq>h4ÚíÛ·?µ88888888Èu~óútjàhÉk€ÆšÚ_W’-âÓuŒz*âÞ/r>ô1{¡û‹K²ù|º±Q†ªkqpppppppp¾X&¶àüMó˜~d&Ü«¯QýéÉöL€ÄPÜO— ÷ªk>çÞãàààààààà|&à݆ÿ0Ý) c©X"Œªú¨–=˜$¨BžŠÐî †1‰T,Æðš÷/œ¯|mÃÀX*«H"t#ÒT#YP-s¡€±,V‘PèFUu-ŽªG ÙÂÀKù½w¤ÐÇ"ócr*ò¡ãg"ócŽÛR¤¡/29C÷¥[¬H -|à Šº/ýE&Gþò𤚾»R™±Ô€7]6¿;ñ¢\ûÐÖð¸¦v{Q±öñ—ç˜Ç%¨ ÝRTÄ|Ûzµ OŠÎ(š>ƒ@à Áv:ÐI¨à«õdèŒbé3ˆŽDÕµŸŽåaæ+Ô–|ËØr§ˆ¨U}=N©Ý~¯v¢ÌÇÐÿcKþüS×^ì 4×’?óúýïòo6>Ÿ-#¾Cæ¿–Ô€Ü6„í Ÿ)–4x [îÌe>û$Š:¸×tùƒrN“ïVý“Õ‰¸ zë9ŸD¥–QZ+šq2ÛðÇ8f`ì°ýéÉEõ² lNJQµ° æy[há¤ÉDa§û0¹fÚ‰lÛÕoÉ ß˜¯HøþLN![Å7ݴ̳tNÿTű?ÆM>žõ^½(y¾=š‰Ì™}:§YüÊQÝmÈ*ç_~]iÄ õn§b½ìªaæWç·“ÛÇ[À=ihN¹ÀˆAZ9ÔìÌlûõ£,²Ëù÷¤Åæ7Ì„yžÁy0C,AOδ¿êßÎÑ„úÃÙÜߟ—kÚJ×6¯Ûð_-‡pJB8Ū}®î—Àýb•+Ø"qHqIH‘Šk7Æ!ÇbTcŠÚ8ŸS¿Ø'7ÎWnÉŸ ¦ºätmb~ñUvdÚ¶[?ž›³ÎÍ"{ÕµÀ5פçMu«:Xd•ŽMÿE "ÿïÒJÙ¾ˆ2÷ìºÎÖ髆ù$*µ¡²7íQJmÈë“3틪…¾»SKj\glNÊx¶ “ÔÇ‘‰-J'M& ;Ý-wŠßÕÏëk|r–Ý<ã°˜*Ÿ]©µõb•êa‹ŠÊ®ôk :Ç~ÿ$›W9\ßÝ©UoKå¹Ï~’Æ¡ù“Õ ý2P=I©#³$¤3ì}T‘Z«Ú» ±æÖÞ(D˜Õ»aSùi= §õ4”…Nö2´YYÙÕF.¾ª€Û‹ $Õ‰å´614²âc¡8*Ñ#«%â TôZX§bK%:xb¨Anò–Jz$bµH\!½®«SØR)øu¡ºƒ_nð´h®ž( ™e|'Sjs/ÄùäðE(µiÛª%剀°tˆm®Ò×@‹‹çcÓ¬ªñïkìß„ø:ǸšçÀ„nºo;{èÉÄ­ã ÿ¾×üû^k@¾ˆB%)¾xVyRV¬Ò {ç…®ÒýÞ˜ÎÀæ¿~H/±}õó Aµ ûr!º2¾€÷x©ó]èãÈp\›¸ë~IÈkÐäÑI¹Ç݉E@ S”6NšLvºÇ¦Ûº˜5ΑîbCŸp,ëjLÕo7 ¶¨à[…† ÒÝÿµgP àeÇpߘtèI骡æêJŒÃ—,¾˜¿c¼UЕ|ùó¸ªÕ£ ­UB#+ú:1ŒU»ƒ&º$2‘|د‡ˆ DèÒˆ²„ôéDâ‡ô°Cµ$“Ï—žiGzýÆ,6~DZF­X”—¿µ°¨Z,F^Å ¯b¬ãà-7>#Ó2.üêYlü÷Ù9å"‘‚´HN]Ïw)´×olãßî))Q—h—7&=ƒõ&Žëœú¬–£.f›CA×€{õ5*:×@G}Õ[*F°ôà^µªk ›ÒÑ|RŠë×\oÿóÛÅ—òd'ï¿«é³#…¾8VIÜèC@dV]Ïm)´€7¶«ßîyØXò™eüq‡3 ~Œ#-|c¶<~Ä Ùû 2e$ðÆÊ`ÅÑÇzïL}–ÞP_AWò·Þ)ªæ‰¥Sï¬W%`ÇÇ@þõÔ>§^V¾Ùz§>Ì0‰ÍçúìL¥/ŽuZ›øÇ›*8Qê¸&‘ð¦ï®ÔÌ2¾ìÚ·ïyãfZ®L /|c¶<þû39åœFã—J{”RÛs[ }q첫ùØ©««”Ȭ:óñŽe݈g ÅÿƦ]_U±c Ò’±SÇHH{ûWg ÓOf{ý’,ÓwwڸÙ²¿ ¼oŽd-'/|ã´6qãí"-ƒÔ)¦N“–5 *«C”<ò“”¤rž¥szmO¡¼±X‘°ín1F•ak¥€ÆúmY! íéÈáëTÔ±@i’RBAû1‡ö°‚žÐ¿ôÞyòYzWYÐò° ó÷¥ôè¹í }ñËeWƒÔÄ–#Ï>×ýÜ¢œÿ™ÍÕM(h¿3|æêa§»Ø¤ÀÕ?dþë„‚öòñGØßyóEId–Y;¼ÛàÇÒÂh³å÷GØ_[¯Ó&¥§ÌÍx¶‹,uôÀÚ€2ÈUïz[úW£US/ŽH­×…¥Q”F'M^vºò}ðqb€ºÉEØ¢"³ëºèJû àfAs2¡þñ†qÉÚïm )s•º(mâ…~Ù´vItDjm^¥ x´¥ÂyžP"–@Ipû½b*‰ ë¨Íëk|柊ÀKù?0§’gÿ©H|ÏûcA;mBµdlz&AN;Ø›“É%BáÃêZŠ®·´œ)¯Hðè Ëv@ЉNŸklÌ"³ù‚mEEãÒ3Ÿ»¹ÈDq$âéYÙk,-œiÔUìey ?š›)¤Ïåy§¤tÓÑ9ÓΞI þVVæ—–öÒÕÕ“ñ±Úz’÷ˆÕ&•0•?ßæÀ€¤jÐ%@TÅОLƽšj‰+‘0 m¹³Vi­èÒ«ÊÐȊ׹\[CÊÔ†²!©É5#d ÷л±È±Ž/Y³Ð{gJÜÚvFi_<ýdöšÎfÔqìeW €ýÌ`ìáL29=ÛÞ\\R#|˜\+£ÚÈ”_ÀóÞ™ÒÍVçÌ÷öL*ñ·ge~{Ó^®tõ´ÓY?ÒB,3ÿT$¬ï$‚†øêòŽ¡?¶žÚçbÛÝâõ7 N·•5|u|ñŒ“9M׎´8ô¤tòñìÀu±ùÜÝ­ë…’åaSÏŽú©áëàU‚NVô¹ÞÆ,bv¹`ÛÝ¢q‡3Ÿ¯l4~6Wt9ß$7 Z½P±S©ººJà¢{dšÝ¹¨ŠñG2 tH“ºÌìeÔÓác}*äk+öœ ÃÏoW 5—ΕG¥%kL]eBͲu–€ML.·_Hª‡%ýÈT[ }rziýÛ÷cKÇ—–\^žTÔÎÙ,oÝÈߥçGwú[ŸÎ95|§uºôLIáýw½vŒß¯1‰±‡÷‰¢Ó³ƒÍõ*Jj &÷ˆÉm_ŽTXïnÙd"œ‡%í^Ru½PB#k~¬ßy[M!"~nºEitÒäE5‹¿Ó9ÐÑJ«é| D(•Üij§’‰lX¹|Ë=ú´,ú'7D©;Ð&^è—Mk» §_–3¨„‰ž çÿÚ°ÚD—t'ÐÉãƒv´¢‡/i?îHæÑ¿Ë€N&„αÓ™¥M¨6p%’$ýXVÃUc>üÐ' ö”ÆÖv¸¾þp}}éoo&tÕ¡{$¾{Ëãu¤7h['–ìt°oÀo&³D(ÚRT¼ØÌ”ÜÔÖVXÉ÷ÛÓ¨«Û#9yKQÑŸNŽÚkÞ«æËj V ëÛ*#ÃÌájüQSC «ÍÍ—å¬Ì/8l§tmó©JnÆW‡FUÜK¬Ñ¥&zìžhÓ׉)_fënº˜Qÿ\èH" ÐÓá´6qGxñáêÕñ%;¿µß•ÞŽÌ’Ñ–;Å‹˜ ÅhR!ïÔ,û±¬BfeÊXùG…>ùþ’öÒöt ‹nmÉ[îý¹ÐÑAÒ§ ØË=•1â«+uú“‰¶žÚäE!èJþñgå,h'wpø’ƒSl|u —ÃxYüµØª”MÒÙ¾d^hn^¥ÀÖÃ=ô‡{|0~GèjC÷Øøîí{ž¬Õæ‹Ð£Óm½™ YSN+¨«•ð}£ïû²…¢+ÏGW~RÖÞ”:£—Ñôž†ê†(eÅ(™¨Ø®sŠêáWUì€ QUa¨´d©«LH{ûǰlVüQ`®G~²Ü™N&@ßöLm‚0S§ ††m@¡jZœY¾ý}†]'k:,ègrâyùÕ˜ª Ý TV™öÍhªß–rÛÂÐ8|ž€z!zØÝ¤>c;?¥‘g­ü#ÐB¿üþ’iÐ@—W=¶ÙrgîŸ —K#ðE”£ÓñvŒ—¿Jù¤F9òØnûæàÿ.­$$/W}O!5¼ó¦‘=^ˆ¶}üA"€‹¯†ÀÔ÷°“à hI…íNÍÚ8¶óS©(é ¨D%WÔŦ‰Ãm CBQ¨âŠ-ô5w®Ç±‡ºëKï#lQ4yQÍпN´â‚®6:£;é7ëB)®æ´èì:©›QY'J+­ˆPžPB'ÚI±õÍ]äk*½h½úÅÓªnCm½øZ,ûÛnL¥wØG¦Ù²¹âÂjáá'¥Ã÷g„/i/]È“Ë~ ½O;fÀ*‰påuåÌS9‚Lò2Ъ :B:mãûBŽXÜ_O׃FWîMÊHÐíEÅW«ªrÁ‡Ý„RëëeÝ2‚Œf5ñCƒ³‰<^Wy!5µË-Ìh^Õ#ŒÖg(-ÕRç6®<È æ=Lo»A†È¬º¡ûÒù"ÉèN¬«óÛðЧ(Í®J^åÔ­iAú0ðgÉ"ûºè>Mkœ°H&"òÍÇOƒ³‘‰…¼®6:,horøâþκ– õ«L)‘Z»|ˆ™¬]C݉u Bu}aÇKÐÚúÆW²Iüêôw3§aè©M.Ätê‰ìð¤êûAí¥£º2˜T‚Ôy•jb¡OösÓ“ÍÀv³ @![(õ_"tû½â«1U¹•èƒñ—ÔËÄlù³wEõç¢*N¼(ßp«pA?•ÞX‚yZ¶ÿqiz)Ÿ¥CÒAo\–·#S B/¿®ŒËç]¯úÝÏWUì`gDiÆÄA©+'Ô¬ûEKP†/BÿNç¬fNWj¦0‚°S§‰ºóÚØ€BÕ´,³ÀÒ!Êû+ÆÔ÷Uª'fh߬ÉÊD]ý¶¬ÛÏ­çd¿Gx¼8>c‹Bˆ‘êµ|H¨¬; èèNÏDL’ÅÑ¡Ô÷i§¸å—ÂIl9b ¡¶¾qÌ“¥S ¾W7ÜZÐÓ!±‡}’¼ä™½þúýù¸Ç)^~nÑ9bk´…~9v:”úYoÏãðéýßxXf"ÈgúiU½›XsHUS¬ ¶“Ö,Q2xBÉø£Yu|Éàv-›àk2÷lîŠ? ~n^',º'–”ÚÉ_––Ö 7ŽV½>³õ^èO«º Wcª¸Éì3Oä‘=‡Æwe¹¬OZ}­àérXu­À@‡t# áÝÉ WÝ÷laॼ‰žDC¨–Üiß~Caᦢ¢²¼|s29ÈÜt¥™¹Ê= /ïreÕf+ËÞL†.X%y'§ÖKïm}"Q~`Á„D€JQ“Ù«Ub‘Ew–ì)jœH-FAü¹¶2Ñ¡ê’jž¸š'æ‹$’ârX6O,AÁT·Ép­©.)Vî³tút¢ükf& *ëÄpçí7Ü*ÜôWQÙ¥|s=rŸéÊ!æÚÈ”RÅ Åè®ð’=äêKb5ŸËÆŽÿ*‡Û{GŠì˜wÀż˯«6±ìíÈÐ¥«¸"ï©õÂÆBÐ¥•ïu©«¬•7›+ªæ‰ëø"‚0”^7H¹—T³ïqiÐ 33jz)ÿÏXöÌ“9RÍÝ-釦ب¼ ¾¾bo.SWN¨¹÷‹ö– ƒÍ‰%¨¹žŠ‡FFÅÔiÒâD¹jZY ’š˜=i4ÅìkݬIÁ¨ß–r›s~îZ[Ãb Iè`Th¢[¥¡Š«+“v…ÏÜó`šì¤XB£…¦Kã*»à '±å¼Êqï½ã”ì÷ñRçï˜2ÇÛø=[¸ínñî%0ÂCB7Öýw5ÊûU 7Ü*Ü?ÙF,6·!›Ê抙4‰€´‰úeÓª–âô?vFÙÒ•‰ˆ‡%-.¿a’Yj ßÓV‡$Wüžv:½­fsE† v¨–ZÙQ)§ì ™W¢¼|uþ{Ky†±Š¾ÍùòÊåfKÌL¥ßògsV‹Å Jù O™H†Mý`}"‘ˆ Aæ¦sñ…öài§S°£ãÃäÚШŠEòžÏÓYZO£aîz2ŽE'(­mÒ:—ÖŠ [Í D¨l¤¢Œ#i;#ÊéÙö\TâEùêkï-õÉÒ[[¦éò¦ ?SåµP*ÁŽïnI{¶BÅÔpuúcç]›’ѧ¯ø·y }òñìKóH-mÉÎGU.b¶dÐã×n*³ºÔUVÊŒ^7]jIý¹ÈÊ Ñ•Yå|/;u#-¦t74ÑU}Sw³Õy»¾ƒô-²Ÿ,ìoRS/N/áëщí1Ÿ+_[±·yêÊ 5÷~Qg $¢ÐѨJ€N–‰D@ŠkT,ÎÆÒ¨˜:MZÙ€h“Æ%ÍBË”£~[VÈmN7ÛéNJêЧsˆIß…¹Þ7Z“¶wËÌg+~ÐR‚ Ó{ÞÝûhÊ‘iÛB£F0©ÜoºFh£ªQÑéÙÁ\äpâÅØÕ×þg©_6£×f wKÚ«œ&ÉÄÂúvÆTmF®Ç±û;3e lQØNš‚(Dè„c™/28÷ƒœ»Ù¶j-躑ˇ˜e”ò $+¹ãÆw ÃÂRr+\䇳¹?œÍ•¼øªòâ«Ê»í‡¹ëµ‰úeÓòAɬrþó ÎŒžF /WÄM_œTqÅ‘ÙuÎf {r\W~O•¨ì:]QŸNÔÚ\Üè´k:BH¬¯*‚å\ z„FÉT*¾ü¢èÍêÆÅøW*+ I$z“ùp4ÁW—QSëD£ºÒhòG tn ‡õmU,l1ÕVyaCãµv¶ª6¼Q:4A$ CÝõÎÍq( é|dšm9G4îp†ÅŠ„Eò^çr€F&ôp`„ÅTÉL¥¨Zø$µÖW®ÿ)£7äJþu¥!ƒäÑt–›-d‚5LH,¬×F¦™àëÌŒH­u2¥ºšÓäi* ‘·@ìøº4¢SvhÔ[O-sѯ=ón`ûð¤êI¿eµl{" 1ªG“3þ7*Þü©;uùJ€jžxï£R¯_’]×'…FULîn¼ÑýÕÏnMÕõÀBŸ¬05VFô´ÓÁî3ÀW\ì*Q°d-SWHHãý¢K°b‘ó*²‡C5O,sj©$¤Ÿ3óBt%W ¸#H{Å4Qy^ûD›Ì¶åÆG{­°ë·e…üïC# |_G¤z9™æ»šçÈm(G—ÆõqŠ“¥Íèõ‡¯s-vàù¨áã»FèPꛥª›EvÈ„½t2?±Ð©Y¹Ðž1XUÙ쵂*Á£”š±ZÌÈGQ¸Ï–n|¤( 'MY6" :éxÖ£äÚÛ‹0>(¡=t2¡£ÝŠE¾òº*±·°¿‰rœ–´ˆeÎòLꮱ̹‡½v[¯á—ê'7ŠÂ±U_À€»‰Õ&º$ }²üB½3ÿT (Ìî£øfeÌ¡L[CJW[…SÁ?ñ¢¢š'^7²aYà@Ó)¿gߟ¾ ¿ …ˆ„½a‡'Õ¬a!Іª ¹|Áœœœ‰†®4šEêض ËÞˆö¦êØßÍøœBê…l¡ºJy–ÎÙp³p‚§AÈëþíuµœüÝb¾ªb—ÞŽkW 5Û:N…)*[²–©+$¤½ýcÜž< ¶Ý+¾U¸ÔϬ¤V¸är¾üû¼]ßZ÷Ý•Ú?$ué`3 }rf?>Ÿ·² v†bê4i“Dcf[Œr•i¯•FëjY!§–Ô»¿[3Â|ã‡ý»l~që:Hÿnº]´é¯¢¤à ûi¶˜Ý÷úìü}Àîc û‡Y±JÙ<Ýèlw JØöÍÁO"œÍòz:$®¾¶ø=Ûtfï¿´I"·ÂbÎÙõ=ºšçˆÄİ7~bxtQÙuEÕBy_[†“™¥( Û“\p.ïzÛ¿¯qGö¡‹ëdBíb£bØ[T\>÷èßå^v:d"ò2“sêe…_cÙöòí¤([Š&…Hs=²ìdë½Ð/ÕÝ1ŠN<–%û»èBŒì¨{qC_Eáì?>NLGÅ÷Ã=ôÎGWž®ä $ÆL’·#ãò<‡î>46¹»!‚ {”Ì<™#FQ'꞉ÖK™iª ,ÑšLÙ]\’ËăN»ìØn°žŒeéû›¯{_X)Y’È]:r°÷ÏÉí”øŽ‚ ÞLf˜S;ŸäTyiLñ‚£C`n~<—kB&‡ØX+ï¾ uè¯ÜÝ‚ßåçWŠÄ†$bwÆb3=ÝÊ¢ê<P;àp!Ô 8,ÊÍù‡`/Ë`¯†ç22 Ç.µL1+yåPó•CÍ‹ªFÛ»éÝ l|«ðÛ£Yd"Òß™yÙ¿ü–‚L*ñ—òã ¸&ºä ÖÒm4Y:Dke÷ƒ’Ü ‘€xXÒ.Ïk7ØMO™2:[Ó_ýì|«0èJ~eØAìnÇX< ¡¾ÆvÖ÷ïk¼îFa%Wd©O.ØÑ ;¾JÔé¯QOísÑÇ‘yIû¡ûÒ'˺âßìíáNͲ÷?—ÛiÓ; ñvb†-hç³3UóeªR?>ÃN]¥ø81KB:5wWóUûÿv(€X‚ŠÕ¼#V¶díSWHHKûǸ=»Ú蜞m|«hû½b'S꺑òk*ºÙê¼Xé²þfáÂóyu|‰½1E¶Y3FÆ©N“jž¸õ ˆÆÌ¶å*k–VØõÛ²BFQE5µ7 ŠŠ%¨š¥.-¡³uÚ«Ÿgßòº²¬²NßQÝÝîÝâ—?•)3zÝY|q¥«t€Ëkm’`éÔZ³Jw?˜ž[aA$H<,3.Ïûi°ªnŠ"b A,i|™-’4qÌ$("–PËm%‘Aí—^-Xz5_ B}œ˜hg¡ß°*ã»Çö´Ó±6 h) ÃIS…íIFf×ÀoÏÊ{ÖØ¿ ð598EÕ>˜¢ôèÄä"Þ…èJHâbNÛ7ÉfA¿Æ »T õ^è¡ÂF ĺâ÷©•ÁÑ2ÿ5|X¿¥LÛvš¦ÛªnÎç†ëú¤é½ ׎ÐjÁ¿& çßa}Ñăkóñ£K—Ì¿}÷ÑŒ©ð88888888_)›Ü?CQ8Ÿ3ÿÒäœÿ.øh×Ö6J vzRõmñ}hœ/¹nƒ+þÙÿŸª¦p ÁÁÁÁÁÁÁÁùP½Y¦ðIJ_‹Rß-J}§6xÏ;Ø£6tQÔ»EQê¯ÅÁÁÁÁÁÁÁÁùºÁ» 88888888888À» 88888888888PÝm(,çîKî½0Š>øÒ?<§˜':nM,Ò?\áè1?Rúâ-{èò×ßTþ­ŒßÒ×£V¿ÑRl³"«D9ËØê}’h+±-“ó‘2¥‘ÖT½üµm¢ëoì칑oÿÝßÄ÷Y#µ&l>ÞíðÚ¤ÿ=éAõ»í6ãøÎ‹Å’dËÙ)Ì¡×?Fºµz“éØËåÕM¾Ó÷O’qÀÝ­¡S>‰J-£´J0cë[ÃQ™C[“œ[' Âöè¤Uð ¾áÏßVa‹LNAvºc*¦mN°ø”<ð¾ù¸ˆï·'–óÕåNcž%TõŒÖòÐ`ä£Éãß—×kShß®‹Cú‡ÏÞöVþ$vöqT樂UĽQÜÝU¿·;+"¶R!tÕT‡éƒ-e3 ¹«¥èÕ°^6§˜g¤GY9ÅÁÔ€RRÅ?z#à¯"ôìÚ^ž¿­¹êM7ý“«=h™{…?ìLBQøa”µFÉ­äqqÅÁ”¼Õm"í3ä°K¬à¥X¡‡{*†æó.?.þð/v\hxœLhnoNo¡–8­ãñ›Šƒ×òVOûXfü±åK15 v°g~Ô$´G9Ëm¥ÞÇ“ü‘h™zŸy¦4Ò&úÔ§ ¬~ñÞäEãl¦¶¤R>â}ûYzÀÚ¤œ' \|8`Õѹ•5ºÛçŸSƒêöy)QlŽ-ßç>ó·ÿí ¸¸~›ô _Hž»ãÇÎŽY«¦^ù$*µ¡²üui• d‘ “NÜšå»$:á”·™4ytRnº:*üRì,D½«ôã«^X¡k:rùâàS¾¯bOôa҉ʢdÜ|Qú$®’BnrCagÔuú¸³J®€½Ws•k¨·;KþïÚßÓf ³’þ6ØbÚàÆÏNha3ñièýBi·áâÃb¸½½›¡Fõ6qšú,ô~¡Ôæ°%ãü›\zTüÓõ4Ödç4X-õ)6G¸ÍßùêöoÂJ¨äÿÒ\¾ÿ„Âþ£­ýG[kŽ÷‰øxê}‘ÿÌ3¥‘Ï_ÿ¬BžD‚~?ܪ›³žæØŸ1¾]\mó`BÿçÝçï?ôçè­óN ÿÑwüGßi@¾L% µ9©+ãŠEÇçí š2(bŒw$l>35½ÀêÕo$¢¸*}.<,ŠÏ¨}¼·û€®†Ðǃå8åÙ®‹Ù!‹\@“G'åúóÒÑ}L $ô~!†(lNAvºÇ–up±eÈþvqÒ°>îê“’9#T¸|Ø¢‚Oeê’ïîòdЈàå¢ï>ëù¡?óVMUÛæðÄ‹÷&ï˜ït Eû’Äu“”DËë%4ô~aßNª_?›°(d""‘4ü%€HDd½IÑgˆª’Ó(Y™î¸'±—‘ÎÝ7»1âQL­Pô*eëÛ¬j¡ GBíÞÀ[víø'q–aOÈçî›]øþeb9_  -²œÝón$íüÛkO÷$ç¨K4¡ªvLÄÖ¥Gô ¼ïE=+­j–ÎmBÛï¤dÐ]éÐâñùŽÝsA$Íïíħ{®äÈÝUÑgQ}ðýFÿôæ]GûPyNÝ}Oxkh|˜A›^ã³8Š>øÓ”g<-€ƒ×ò§üMó{Ðwqtf!WvíÛ¬Úñkã,Ç?!¼o6.âûí‰åÕõ.•ö(¦¢ç‚HúàË¥b§žYÈ·&Ö`ä#Ò€ûfã"F¬Œ©åŠ4—@Bf혟ްF<¢~àõ,¡ÁfêêÅ®3ž÷˜)¡²b!ø†ú3/è@ÊÖЬê:‘tþžõ·OÕ)ŒGiê߬5ý˜<ð¾Ó”gOg€Jùò\}RŒôOȬ•?9beLç9/µIT†Â´«OŠÝf<§ù=è0óyØ“ìrÃŽ¬®TAMM©Ì²¼zÒâ}–PÕka$ÍïÅ7O¶Ë’ÉÄȲFÉ€iðØébƒ}]‰h(@Ù/þ|V‚1]G¥‘(£}q) ½ÁHiqÕc_«e®›[×­QIžÙÛÞöŒÏyÿ ýÃ¥^Îô- ^þÿÈGó]òjÜšXéoµÐ²Û¿ A´§[*‡G¯¨Ö¥IJ ™c~ føƒ>ø¦wÀžg ² å‡ç™»ø(¦KÏûèƒo.;ä¯î$¶y~uÏÏ3vÁî@6‡™é°óâÄÕÓ®tqÊ€«Oú"ýï%d6ñ>G¬ÜÜyÎIdZŒ[³Á`diÀ³q—F¬Ü\ËýX£ô7_”ZÓ¤ž.X›Ðu3¼þ¬TúW£GWS'Šˆ­çcªQ”FN^vºò}ðédïËTO.ÂùŽ=°›‘´Ïnv '+© Žµ¿§Û˜ÒæŽTth°³­ÿÜ[Dle^I}ð÷N çy|±X%Uüí糩‚¬':o´õ™ðÂÀýÉ?OoG%Ά&fsþØÜE{ÉKFÓ}:šÓ©%õü‡… º¾“£Ð3™… £û A €ËïdÀœëdÅ¢³9ÜmIÙãžÄ>ÚS&Š#OövM§vκŒ¥Ë^§"(òc;…ã+k½Ã£ºêñîÈ$K/ð{øúåОžFÿí7C-ƒÃOßüvÍÌvÎÖŒ/J—JEùñ;;xðºbÄʘὌoüÒ­®^´þD†w@TÜÉ>vft¡òl;—µþdÆÑed÷|]½xÆÖ·ßÚ­éxèϼÉ㿵‹M¯Ù½Èµ^ ^~8mꦄ¨£½¤‘ Êø™sGZ±˜äì"î¶óÙãÖÄ>?ØXïlŽ(è@ʾ@77;F½@‚úØŸcÉDäôOÍ ©%Uü‡¯+"rŠy“þ^5Õaû|#3ñµÞQÝœõÎüÜ‘I'þv«Àoéë—‡zzºè1hÄ‹ë;õZµîDúöùÎ%U‚™[F÷1 øÆ¶²F(– gî&œê$"¢Naì<ƤÖô Œöp`YÚÁˆš^À}›U ëg9ª”/ctS}é܃¢ŽºÒ3%U‚û¯*v,pÖ¦`Ur'²lRpüwÌ,ëPÆüô[Z]½XÝ[UìÈ¥ª®¦4fYZ¼Ë¥î_âêl͸Q¼pÏ»öÖŒ ¾fØYÖ(Y£Ác¤‹¶Ø¿þ)›¼1~ú`Ë£Ë:TÔ×þžQU+TYÚêŒD#Ú«Ý,ƒiMÕkoc¹nn]·•J!‹\†õ0ž²)á¯Ý:Ø3õTMáhV-´øöo[rŠÍHD±ƒ«p>>£wÀžnÎg~aÒy¿Ýá·tûËC?zº¤È3èÀ‚}GÝìòêu'5Ê‘çøÊ½g]²AR޳Íûu3ÏKÏî¥Ï¨;÷`ÐNÇߥgJª î¿òÜ±à„Æ$ÆþL&ŠNÿ´Ûܰª¤ŠõðuWˆ  b]AëIÊá¸;4ñÂ=ÚéÞ‹.¯HhZÌj»YF!!~^FEitáäE5‹¿ã+ c;Ýæ^ª0yJ&$f7¼.Q~¿N­9z#?úX/DÉÆ[Y’_­í6œ¾WÈ 'úš+œ¼¬a%´ ‹rg‡§‡CÃÌÑŽítÃC<Çý{ôF>ЩÄÐ5Çx›j/®HœÄæœêã1Ö¦Aæë†údÀžÑ胷4nÙ°pÂÛ”ÕÕPÏãÖ‹·ìÚŽ¬í‰wz:·5“F(áñ·$f.vµ%7íø®ŒMµ SïûyшhnÔãî?[3ÿìßµYÊ·’¿«1‡8°Bÿn»á‘ºzñÎ…Îãû™€wGVI%Khæâñ¶d²îDº‹-ãÏ-]¥¤žn,§©ÏvœÏ>¼´`‡JAQ:rüvÁ›»È› ‡'>äæÛÅzu`~|íï’”s>Òé:žxÞ®¤¼’z[3 ïi<¼ç‡zïÈêÚ^Ïcö‹·Yµ²‹/”]æîݱɔ9•©sëÅIÙœS«=Æú|°·Z! ˆÊ‘4Xy4Õˆz·—´%ØÍ¨Çü¶„fþ¹¥+tm¯·Ýßyù‘T?/£K9D"rb•;ê‘õ$ kK”ÆÎãŠ#©æ†”'ûºÓ©DèÛÉ@S|4 aâó жû·—¾þ¹ø°¦úYhS°*Ùx:³‹“ÞÅõ¥-x{kF×¹/[£T1j ;ËÀJ~_éÞÉQŒµ9ñWÁÕ'ÅR #Ë S£Ác¤‹¶ØMg2{º±Î®é(ìáÀtñ\¥uF¢íÕn–Á´¸ê5^«e®›[×m¥’±>Å܈ –Æ4í•aÔB‹oÿÖí§rxtŸráျQ^c}þ¡QÇ—VkaTy÷ÏÒ Ýâ{Ìß·%tÊŸ[6}Èùè²Þ“šæWñ¤F9òØ›—ló?õ¿}‹ˆÉËÃ?RÈ #Æ4Š`â€g Øî‚@@àâC_˜ê·žš”mwjõî±> ƒBÒP‰Êa§&w“„¢PU+´0¢j¼üúóÒ¡=Œ¥†Š-J£ '/ªYú¯8œÖµ½Þho“f](ÅÕ–\¢ ½›*k„i\PÂã‹éT¢Â³X,Aýw%-úƦ“£Šv¦•%ù5ЪnC-Wtíï’oû™)¯;9²´›#*,羞7|eLxˆ§tÝBLjÍð1}< ¾±¡’ W"ŠgþòAI͵”Œ‰ØÅÜŸÉŠû›xèë*÷&eÄ’íIÙWs‹sëê↗ʩÕ\Y·L@F[7ÞìÌÏf&²k»êÉ ‰(®\îî í3‚ÀhkÓ)Ÿf×'‡LBF÷‘+4_ó³á…‰ÙµnvÌW)5kg´“½Ä²4¦úv1x_õ F¨±¦nN.¿¿ÛÓ§c'†I'Jû Àb’,Œ¨~^F²)þnvL(¬hè6„’í²¯Fç–Ô „ê=+sVthÄ>Š}•©ëЈì™Ogrxâþ] <íÍÎŒ.Š¢²ˆBIDlåòɲ¶A`´·é?m&h¢Ýƒ×å£V½ˆ$v{ëc­ÇRV#|¡äïøªÕÓ¤NCs™9Ôò÷Ûc+ý< ô~á OCi{ª±`•áñůSk6Íq’•[']gF "c—*FMi„Å$É?`,tdÛt´ ËR´1xŒt[&VZ€¿Ìk/‹ïlÃP¹¸5F¢½ÚÚ—^kª^{ÃÎu³êº­Tj1êj¡•·+ñœwPö{D¯WÇWìUˆ ’"b;/Ÿü‡¬; èh兀•ÅÑ¡ñûx(N©U8‰-G,!Ôrud‘YL|ské=ÝRz¸5™˜:sèÃßo{ÛÅÏ3BïäkaT‰„ßÁ>oãéé½—‡\A›_`ÿ¡änTù¡ 7m"c»pÍ%ƒÇ_WW/~ø«—ºmØ|c;wGâŠ#©?OoWW/^ôë;±…S›žÅ¿^É-­llþL)­ê6\}R­Ï®býЬ%ßÏÌeú³ÕÇÒžî龜¥è’oüÒð&l§Ñûr~àþ䉾fòs×0$käÎÀnâ36½Í,{%0§SƒÜìVvpPé"¼J¾œS¼¹‹Soc–.™T%zß‹ª7®‚Ò'“åLhd¨ä7YkU% %è®Äì=I9²“bÿÝFôÓÇ|ˆù²°Ÿ©¶¯5¢Ï “Ir…Æ"@eÍJ$¨iÓíL (±éµ€*…ÃÝzQÚ¯³A¯Š>½lR£"‘?C$ˆÄ 5°7ùòãâÍsz»³tuHUµBzAc½ë҉ʣ.õ;;»m8™±éLfÙ>¹!5h¢ÝÊ)ªíMFG$¡».f﹜#;)– bI£Í Ìjy7ª¼‹“î O ¾Ê cä‘͉%¨¹a _œøt4°7§‡†úy%çÖ½I«9·¶“ÆDÕQ]'’HPsÃ&õ®î¥vd¥Ú‚š’¢°Äœ@h†-©CƒÇH·eb¥h¬O–UÙ#m‘h¯¶ö¥×šª×ÞÆ°sݬºn+•ZŒºZhåíßJίÛakVJ!‰,ŠMXÕʪ8ºBi×Å {.—K²­Z@—ÎUvÁNbËy•âÜ{ac}: %E²q>“ìÍKBÃùyÆ&çÚ¾Is:·v§6ªÞÙ¹vÃÉ›ÎL+Û·Èܰ*hâŸ+§\ýH]2›ÓDó*ŽA€ÅÔìã=Ž­äÖ‹G}xÙ‡- Û…S¥ |¡ä›µqqé5÷vw²ÒÑ|*挰z_V¿í|öîË90¢—É_³û¯*”w)ªào8•±?ÐU,Y6B”Í1éDiMI~%´ª Nß}ogF—­Q ™„x80ã2ž…©yuž.zò“&=õþú§ŒÍIæk/Yv úé> ¹ºîDFÁê7i–têŒv–Ê1Ïg-w·_âÚ°Vá-[qænµP(K(†Êê…`HmòÐÕ'“ˆÔÁn®Óg½Ç¿FuP ”È65+c ÀPÌb’ ¤´ªÉti•@ZïØ¡Rô¤+»Œ\3ycü¥ [<õöüƒ¢å“í—LøPïÚÍØV—ºýôO 9·îÄ_«¥YSg Qaoò¢ˆ$h¢òz,Å•ü%ûSº9ëŦ×ì Ë•i«%yd1I$"R\©v‡ll¦±Ü{5çÈÒ¡÷ ™tâ7}M5&ª}‰@@ªëš4ÓÕ¡ÊaFìÈKµ5¥‘–Ùhgð-[¬´Ë«›¼ø¨¨0銓RZi$Z¢}鵦굷1ì\7«®ÛJ%uˆÚÔÿ¬ˆµy ÿ;5«ŽnÎҔԡϨ#$Aÿœ;2¼5 aËq·Ï}vp™–¢>äñÞ«ãŽ,=z“Îû¦ï mTµ3+=ýÓnHε=ñ×ÐÕÇæXWÌòQ>»ánÏ|•Ò¤–˜UÛÎBG›1¥ëÏJûw1”¹ÅØ¢°]8Q%Öǽx[u·W+w [7ËqùdûŒ÷\C=²•1­ãì>JÓŒ ·„Ç­ÿ°3é‡óÙ.>*ºø¨èî.Ïa=Œ[S’_ -_á‘UÈ{þ¶jÆPK…×uòoL ªVù®Z6üjcJ‹K¯•mQÉÕº:$}9;S'¹¹¸é3B<]èDb"›TA(×ÐJPT ‘è‘Óý#WqݽP‚Þ,(“ý½’[lH%{°š IÓˆ_sÈâJ']W=†üÑ*í›Ïa—XŸnXÚãÓ ‡{vPþt”Ä+EԊЛ/ä -¢ØPìá K£z¸ê‡=-‘YHQÿI\•trv¨Œ~ îîò .Ÿ/oEÚ#‘ ¡D~Y!ö~ Ú§îfÇYäB§³Ôn%…F!øv5Œˆ­t²ÒqµeÈÒ( ³~yK%îñ šh·êhšló"*™ ÔôÊ;T2¡_gƒ ‹¸õ*^”j#Æ O|íï’ó Ç÷3Ó¡5&ª:•èå¢÷ðu…ìLQ_¶”­Y‘5–ª …šÒ&Ë*јe ÉZ|sÁ+-@ù]AÒòë’TíW†m$mB³ ¦5U¯½a亹uÝV*©Ãʘ–WR/ùPËÕu¢·ššyTÎÅ¿"ðíšÛÙɪÐÕ6_þhC9º:<ŸŽI²C£´Crxôk{Ÿ0`|¿:4~³Tu³Ë YtœN$fÙ7+Ú3ÆÛ¤ ¬þi\ÃΤeõÞTÊÖqa€¢póEé8¹˜Ø¢0\8eQ؈Äè¤ñb*oo聆ù~Ë S‰ÛéZÓ®D'fs޳UŽÓÁޱ¯»üA£†ö0ި׽‡«>´¢$¿Tw Q´¡MŒÏ¬€»Qå&ú #ªüšË3÷Þ£(Ì®ø®nÌO±¶f´®íõ4bN1ïÄ_Õu¢u3ÛIC¿µ²)aøÊ˜cl(d$ìIIxtùšíä'´©“¬ ¹u¼9/'Ú™»ê3D(–[‹ý,ŒÀÅäŠÄGÒò½Œô¨B']? £ãcmMíô°¼âcéŠ;dˆ«bS«„Bg]¥ç² ÷xº’•æÞíîæâ5 üÕB+*[ Š.¯–º­ëøã“™³9 o%w\°€USsÚÃü162hÄUÇR«8Bgk/JÏÝ/Üà*¶´i®Ó°1c~Š øÆ†[/Ùx:ƒJFVNµ—^ˆ*ç£Axˆ×°1ßÇ] î"?!JÄÏËèøí‚±>¦öæô°§ÅÇn*Ö; ©VÔÏÙž8Ñ×ÜÕŽ!£aOJx|±t‰Üžãäg«¦:l•›J.c÷"ŸÅQ–¼Z8ÎÆÊ˜Êæˆ¢“«%(*ý Æž+9c*ÿêe KÞîïü$¶jʦ„׿õ¢S‰îLn½øÈ|/=*™ rQ—Æ<îZèÒ÷Ñý£—N²·0¢f¾çÆgÔш IDATî_âÚÈw¶aôì ¿úXúûòú™C-[Y°f;ŽZýæ×+¹‹¾±)c foKÄøîvdŒRÍ-á©«)m²¬YÆ–¬¥Á7l±ëg9Žþéͬ_ÞÎi]Q#Xw"ÃÌ€ªr:1†‘´ Í5˜W½ÆkµÉu 꺭TRÉ_³m糂Og.ýξ¤’¿ä@Šö£¯ÍºýSóêÜg½X3£ÝÆ9 sÁ»Ì} q'úHÿn:“¹étfÒo¥þyËØ½è7ŸÅ»,Ù¹pÜm+ãr6‡ì"A‘mþ§>‰p¶yß³CÊêcsß—͔۫#‰ÜÓ9Û—Nô}æj—/Þôåñ)~^±ÊÂSó¬Ýgý¶fÆÅsB¥gºÌ= q'Iÿn:3mÓéiIgü]lÕÞ Ó[î¹’;us–Ú3hÄ­¡Yú ÒòÉöÒP .*™]TÁ××TKQ.\ä;EQØžä‚Ýï®?+õm]ÆÊ6 v²ÖQX‘¬¨¸ŒÚ£7ò½\ôÈ$ÂËĪSwßû¶–m` ÿ,Öc^Í ˆ¹!Ev;û8 ®Û – 7ÄÉþ.ÚóFö6¹½½›ô ŠÂÙðBŸŽŽ–Šsц÷4>ÿ èüƒ"n½ØXŸìÝÑàr°CwW}ièäA‚ì¹’3ó—·b êd¥³'ÀuÉ„ÆN!†dm`QÈÖ:´ÝïrrëxDñ`1/÷ë<ØÂÆÚ˜ú··^—^)ZÒhúŸêãá™ÔéÖ ‘àmÌ ë×Å'•t ¥²Fh¨Gîx¼-¼I«ùùxúOÓúw1 ™pq}§nóþYz(õÈÒc}LýG[¯û=½²VhiD+ø£ òØÍYïÅ¡žëO¤/Üý®®^loNŸ5¬Áû×RþŒ!–‹÷&ËïoÝâ‚ÑËäÒ†ÎëOf¬þ-ÍÆ„†Ý@cGÆ(U“¬®¦´Ì²J°³Œ-Y{ƒoØbGö6¹¸¾ó†S—;ZÒ7Íi¿7,GŸ©bf†‘´Í2˜W½ÆkåÁÈus뺭TRI×öz§ê|*cûù,'+u³•·ŠnA•s*-»RX©"‘ b Ú†#²^ý|jzЕ5º†zµÝ]Ó¿ù©äH™1äÑâ½VƺÆk“‹YgmR¾ûò·¹%¦D‚ÄÃ!çrð/ƒ½Þ(KFQX¼!7™#‘ b ¬n!™„<Øãµô`ÊÒƒ)êÓ‘uq}'Ùj îú³RO=kš–¢0\8eQØždä;6üv«à·[Ý¡€olªZQ-JO‡”œË¹ð°H ”¸Ø2öº-{¹‰ý,nVIâ¡ÂF ÄJ˜ü©•ÁÑÒÿ|X¿¥LÛvš¦ëèS­º 888ÿ*k„¶ŸnžÛ^Ö·ÇÁÁùzpñ|ú`‹µ3?+Q8ÿë# 4X›˜=Xºdþí»fL€¯ ÇÁÁÁùZàðÄëO¦êfd¬OÉ-áí¸Í g¶õ0΂”PŸÏPÎç ÞmÀÁÁÁùZ ‘´|î¹ûE5B}É·‹á…uŒZ·}ÎWÞmørÀÚF ÔNOj¸VÍô$œ/ … [¢†ƒƒƒƒƒÓ,äº )åŸN œæð©j ·œ¯•–·çscQuÞ¢ê<µÁòà‚ÚÐE¹y‹rÕ_‹ƒƒƒƒƒƒƒƒóuƒwppppppppppp4€wppppppppppp4 ºÛPÈ^Êï½#…¾8™“S!w8™£pôØ–" }‘ɺ/ÝbEiáVPÜÐ}é/2›|ô><©¦ï®Tf`,5àM—ÍïN¼Pœ1'±º_H*30–ñ¿Øî¿$?I«m“¬>®©Ý^T¬}üåùæq êB·1ߨøâ#Ž:–‡˜¯P[žCìGJQ%~¿¦:˜ñyÊ ¹_bÿó[éïÇ)µÛï5ã.øoññjü‹)·¶-¢–™è¿yc¶9ʖКì|1v¥‘ƒß!ó_KjÀ?nÂv†Ï”}ãl˹ÌÀgŸD±Q÷š.PÎaÉŸü'«qAôÖ;s>‰J-£´V4ãd¶áqÌÀØaûÓ“‹êeAØ”¢j!aAÌó ¶(ÐÂ…“‰ÂN÷arÍ´Ù¶«ß’¾1_‘ðý™œB¶P]î4fáY:§HªÎâXƒã&Ïz¯^¶ªMY}å¨î6d•ó/¿®4bz·Sñ¹øUÃ̯Îo';¶·€zÒМrƒ´r¨Ù™ÙöëGYd—óîI‹ÍçJCŸgpFÌKГ3í¯ú·s4¡þp6÷÷çfwìﲑ2 uH¿N´98ÅÖÛ‰YV+j“¬>®m^·á?Ça}ÛÃúê?M=Õ¦ª =lg{Ø®IhN…`Gx±ôˆˆýÅo¤ÿ.S¿7¥mÁË GJÛZÂ×fWG¦m»ðã¹9ëÜ,²W] \s=@zÞT·ªƒEö'QéØô_"òÿ.­”á‹(sÏ®ël¾jØ™O¢R ŠÑ!{Ó¥Ô†L°>9Ó¾¨Zè»;µ¤¦ÁuÆöè¤Üˆg›0I}™Ø¢4ºpò¢°ÓÝr§ø]Qý¼¾Æ'gÙÍó1‹©òÙ•Z[/V©¶¨¨ìºA¿¦¡¡sì÷O²y•ÃõÝÊá«þn:¶ªMY}å¨Þ€µ#³$¤3ì}T‘ªø²¿w;@c®½Qˆ 0«·‘ôï´ž†ÓzÊB'{Ú¬N¬ìj£_UÀíÅN† ŒêÄrZ›Yñƒ1äT‚®,l2Áúƒ£6É'Nsù?{çŵ=ð3³½±°´]:H•¢€ˆ Š öM4Íhz4åå¥÷—䥽$¦™jï½WDDT@z‘Þ{ÙeûÌüþ\×ewviÑüÜï‡?Ø™;çž{î½3çöÝ×Úß¼\Uo”@3tʱϹÞCݬü³Pi ¹×ZX±bå3ÙÿF ¸–F\ˆúlë—ýgá4_7ñຉ P¥e²è†ÝXF/šÂÕ¶ù«¥ß®ÝöÎʨÓóG¥ÀÇ'ž*mò¸öÖj:jÜ…½Ù™Ñ~³V‘øŠÿ”LÁñNÞ—g›HWŠÚ£#9œÝ9/ÌE`¥(jÎ@u¼›Vy8³u?G»s–n*ßw£ãÉ赨ŽÕ‹xôS/úñX(Œñä˜ÿãÅæÏ÷Eí£Zb«ãÍÔâOe*Õ«ÕµÉ2©Ãíi´HoÏïwëê¿kjäÚ pe0jG‡å*ï×Õ§ËzZ4Z6ÛVø¥»›ý.›¤ËzÖW×ܔˌ b§WœFš#W¼SW—"•©"‚ËýÜÍu¢€?í¹’Ér%ä6J ˆêô¦5rjï«O)•u+0O{æêqöïÏ•èîæÖ)^ØUQ)·åÐ^šêôf‚XÿÁwŽÔ¥”ÊTZ"ƒûù"׉~| Åêø+­mݶªæIÞž-LŒ¹uŠ÷Õ§—÷´Hµ"mv¨ðË%nü;ecߎ÷ŽÖW´ª|YÍ¿ëݲÕ«ûj“K¥R%nÏ£Ezòö¬õÖ•y (dÀÙ‚îŽÕgÕ(˜4d’?ÿ¿‹ÝFJzß¹¯í¯Ý~µ}ß:Ÿ¨Í®‘Ûqé)%Ù°·æ» Í€<}\mµÿ Óp£J>æÓÂKÿ ˆõåÀƤæ—v×¼=[òÉ(mVù¿›wüß9¡BjûúìXãýÖ¡ºœ:ÅšûVzP+i¡ÑÌæ ¤—÷¬ßSs³Vî$`lˆwz%þN¥°áª?+Š•×ß Òžüu‰-‡vø¹fíFý¸Ù 2šöÄbéŸʮ¿éÉÕÉŒÿ_I§»þVÙ¦jH]D ˜–-Š„ï½Þñþ±úŠV•¯ûãù.?^lf3Ðã/øšM%%¢$ 9CXÍfœ>–T¢áAˆhï¼UAm=¶N‚öON®ùüôã²ï'’wsjýÞ9òlJi„JËŒð(ú|ÑÆ‰~½S‚_Û¿aûÕÙ;Ö¼óÖ¡çsêüÖÄþaåF/RËÑç©ØÃ{®ÏxfÇ[“ü²ªÛÅ_œyôY›G»—À¾ñËýüæ»+ÃÜJuágoü¾®Óñæ»+©£(kq{ußËÉ¥R%Ïž×éY´gí¶|8ìyôf§«-ƒtôÀÍŽ9-Ðæpv'éë›u¥º•XR±ôÀÓ#ÌŠ¢vá DQÇ«ßf²›š\D-*½¢'!XH¶ HÂöudÈì4Úl0ÀÀG˜Ûù@1Ø7ER±´º]ýÁ<Ãï‡Bƒc84uk>?ÝÈ¢£º–èÚ‰[®´½´»æ­ÙbÝz¥-¯Nqàònê-Y˜+gGFûç§k;ÔžöÌ—¦:½<ÍéOF.(-c Èfo/1ƒÑ¤Ñœï’ª â= °¥µ-'d¤.Ùµju‡³ÆÁÁ–N«P©?khXXZ– %ñUåo»HüÙ¬#¯V×"¼,6l9Ü”+bŠŠ"¸Ü->^|”ökKK|IIZ``$ 7ªä“¾*qáüü°‡DÈ(mVæÖ)tw{TØŠßÊŸ›ìôölÉÌŽ·×ù9³–FØÀÍZEÌEÜ-OxñY´_/µÄ[’öz é3Q‹ÕñÙ©Æ÷ŽÖÿ²ÊcÍíîŠÇXÛ¡s嬉q°åÒ*ZÕŸjXøSYêë½eãd^×C¿•/´ûù©öÍCu=*<£7»üTÆ !›÷Û0šº5ç ¥jŒ€Ê6µ÷[¹ÿž)&çõ@-ó\a÷ì·BlŽ<7¢G…¿w´>æ‹¢ìwFzÚ3Érí«ûk¿ÈÝß™µ÷Fdz;ªu)7J fÀ{s$[®´å¼7è}¦(†{pm¹´Ä")ùO,’rhbQ7,p€Ä¢n:ŠLò㛵©Ï†=5ß=ä$a+5¸Y%MͳñÊTت?+Þž-ñwfÉî|u_-ðr¼³%64…Y»YBÓ>7TènÇÜt©åWOOR­fUb±ô×UžfS5¤.¢ XKŠ–©„ŸÈíZñ{ùªhû_ñhëÁÞ9R×!ÇtR§Î’hª$ ,9CX©“f€Y ÿ=T¶ºÐQ̆-3¸~³Ö?æ‹?"<ж<ñ>Ÿ¥øõÒ¢øoJ{ýÉHÏB2@§œ¿aÏ«ß=ôU¤B©ašºhVŽ>¿­þ$ôÃÝë÷¼–ßàãï\ýîœßÉëóÂR„Ùö« _Ün64u‹ÎŒûïâïÍF±à§o4íæÇ?Û´5u‹ÎF«±á:Ž=¿^ìÂÑ¿âÂ>ߥÔàl†ùÖÉÜ.& ‰˜Eíˆê)¥2uå˜ Ùµ–`1îrYt4ïö Çè—×”jÅ,ƒm6lNkå±Ðe‘v×§ÿ¯w•‰£€~ò%ßÛ¥0Ô•sf½ßŸË~IiÝö¤×üQ½«‘ê;5õ]šON4üw‰«‡ˆ¹çZÇ«ûjU¢o¿©)ä8ž¯PüåíµÀ¶WæüÛÿi4À‹yÇEH „Bòÿ>„s9!y¹ E(§WÛ ÿÂÛm±-ÄðùMí' /8;1înǼ^[+a0Îúû±Q¦ c ?ih8ä;ÂBµ‡„µáû÷.J©î¦H)Ÿµ˜¨Û0.¾æÏa `ÐÝ%Sá߯ð˜(€#m’Kdûnt××ÔJ„Œ³ëýÈwÜÔÁØÏ ?9ÙpèÙfÅAÀ†½5¿]j=ðŒ®8 &Æ„aBÈí²1ÂÝ9!äÖ)È—Ú‡ÇF»qw=åC?'Vø'½Ÿ"¹ϯWüõ˜×‚ÛjèôAh(B3ñ§ ï©pfzvE Ú›çûNÞÏ4þt{øH¥%~_íæÆ€g&9þ‘ÚªKi€3›ì×ñèB EÀË„£Œ"0ÉOT,}o®' ¹Dúlœã÷‰Í2Îg¡IÅÒHO.ÙÏDmRŸ_VyÄŒ¸+§L)Ia4ÌÆÛ£Â¿Xâ¶8ÜbF𛺵Ÿœl|aŠƒ†˜µ¡)ÌÚÍöu“þ{ºñë¥n¤Í½Ô"`ÑVF‰¨°UCê"jÀ€u°¤h™JøGÇ¢½y[Ÿð"C†¸°ßÏ×EJ‘: K ©’0°ä a}¤Î8ÌZxø«Ù2W¡fí̘u*‚QÉl†ál¢×¼$¶ž]ÿohÜ×ÑQ¥V«ñÞÑb¥R×l` È<Û;…x©Ènk[[žBÎåê Iê–¾&q&Û € 0Oh»±¹Ù…ÿ?¡Ò)¥²7f‰9&^|:5àN'Dˆ+§®Cj-‘T,}m†³î]ƒ 0/ÌvcR³%b1œxøŠ3ù]g7ø‘ÝrƒŒ‘ ðùéÆ}7:ªÚÕjíí²Ñ¤ uå(4øõªžæ»èŠÖhw®ÿíñV.)ax¼^¦Ââü!.wJ §=Sûs„Ñ$PËTjðk•=ïÌ‘Ðo×[ÆäA²Þ&c¶\éH‘x;°È”ö—©‚¬Ujð‚e§{}¦ó¦K-—J¥ !¤b©nÖ)…}tv˜àcغ3¥$…Ñ 0/ƒ†èx–FÚmMoË«W‰Ùfm8¬ íkc>:Þ°#£ý™IŽj-±ùJÛªq"Ý@¼)ÃT ©‹¨Ö,ÈbS '5üToÙ•¿3{¤„£K‘:ËKà'‡Kê£Ù·™ƒTi0Dþg»îÿÙ!—[ýIÝIÅc^›±Mל@b^Ø¥IéÂp™Ê >†[W\¤–ƒá¨Tyg}¦-W ÏOÞ÷þ±g¢½óÆzåëK~t܉ßS&‰Ê€mé³§fH„­ÔQp™Ê‘’ò¯•©8qþ™!.ebdøô~@­%Nåuÿh®÷„„Ú…ë—( ¾ø—ò~~ƒ…žžÏOv\³µê_jßJ÷¨ñçvVc8Š `âËkÊGµb–A5öÝè«ñÇÇYµ¬{-· x/ÿƒµÉ¯À¿ÖÚqéGžïíð›(¨ëÔ¼´»zY¤Š€=Ÿ^Ú¬šh£“3}¤Íéüîªvµ‰µ}9éç÷~}ýG -Õ5bcƒØéug±ÑoÀóÕÕ{Ú;>vuÏç PZ¦),Vâwê¶FÓXp¤Ó ]{×2©L«!ˆ/뛾ihÒ]ÄÀþöwÄ$&åj ó\{ŸŠ•r-†b“…ŠÇ¢ég-N@‡\«Áˆ/Ï4}sNφ8`a‰X™ ?–Ó9ÉO0®OµXŒðü®ê=×;>žï2~OÀ¢uȵ1_+5t)0œ±ð®áf‰ÞÏ“/ú½¬þ£ -»kÄ6Œ ñN¯Ï0^uPËìT`8N‚»î: èYÕw¦É²îžâ€"½)í/S*-‘VÖ“U#åÆu¶aÄúò“Š¥"f³T;5°×7¢°‰€Më›d %-4šÙx…ƒ¦WgùthïÁ,±á°2€´;Û0‡ÛnJi}f’㬎©ö™IŽfS54[ìõ°`A›J8©¡Á}ÝO³U~ÕvH’C%õÑlÒ ¤JƒaÇšw7Th‰(jÎ@”%¨´Ä¢ŸË²k䉯øû:YêæðdŒC]§æ³S_Ÿk€Ù!Â¥¶g º)¶â0å£Z1Ë š ›¯´yÚ3§PMbcÐvvMï$³â&U¤—®× ŒôäžÈíê”kE=±XšU-';P§öÞèp1™tD7éˆÂ>ÃB£™·K©µóö×¢E¦fÖ†t1ð²”8–Zx0S¤ýÙ8ÇÉ_—\­èÙ”Ò:Þ‡gIð0UC³Å~Ht€A-RÃVÙ]‘¶É´|,¨ò¨¶–0ÈšbI}4›´¡Ui0Dx‘;)™BÈ‘ÑP|CüÎ51Gµœ`—²KÿzÊBQB¬Š>õí…•??òÙ¶«³ù,ù¢ð$KTõ´oØüøPØàýÇåo|ÑEزzÜÉ&‰’`öµÊ»z@òê•>,SÃ}úÎîŒóçëÔ¢¨]8QfQk‰¥›Ê.ß’Ýàoj•”…¼;GòÚ ç[Í*îjËý°À`ê) |T+fø)Ñå­ªÔ[²ÕÑö.=vwg‡K¯èñwîmDºÛ1²kå½¥fW+zlšC€Eá¶p:¿Kw÷T~—“€î!È”â û+w7‚æ)•ÀBÞ‡PaƒÞ)ßÚ ;?4q´«S÷so{»ˆNáÜõåf£èd?©[êËf²ÙúÐy0 í¹ Í7ûü5˜ŒEG&ùówf´ËÕÆ÷K6›Nöç'K}Xb¶þŸ…b'ùñO½äw&¿ë¡_Ë5Æ–Òö+Fœ5FØèm¢r óNÙà0Ð1ž¼ó…w&·4tiòŒ}zƒ$쯖ºqh^½²ï]}¨e²èXoÞþºÊÕÐ¥¹X,LÙb7 ‹ŽPÛA`²¿à\A÷¥[2²/sj MVµüPVçX/—‰‚9û  £Y¯#ŽæèÕÙëí"=Ä…cÖ†®¶ŒêvµîíÕ¥ÀôÝ)³v£~ÜBú¦=Î_ìÂyý@mr‰ô™8GêÇuªG5´¼ØF‡Á-RÃÃÙwr¿¤I™ßp§Q¤Nêjk¶$ô+9CR-Oš%*Ý[Ø õdÿëIÅc|jÅ•úC(GÀ–ÇúfëþÌJ[=î„LÅ=˜5uÇÕ„ÅáI\¦²_ªI*¾Zú-‡¡Ê«÷íW*,g~˜mm‡Z7å²¶C}¡¨{‰bú½Ù¹pôÔ¢(\¸¾¢¨ÑâÄC¿•_(”ÁwH&qh¨+ÇÕ–±÷zG^½âY/LjÕŠYŒ6Èꀛµr8•×å( K„ ýŽ[®´<>Á°3fþe"f¸—ÇD+ÛT\nëR`ïÎéÝw數N+¯Hø¾ô™8G& ÙŸÙy&¿ûíÙrBÛìá”Áš-Uuó5žöÌ=×;‹¤??âaùl·*•úÉÊÊe"»@6[Kû;:o#€`GŽã?7·ŒáqYÆåÄÛ~km] ²õb2÷wtlj1<ìGCÿ]SסÅüÙ¬#]ÛÛÚ¿qwcôúøÚÝ=¶°hJaɳNŽ®LF'†eÈzp€ÏÜþÁ‡¬ˆ%·JOww;ÐéO:8ÜI³žždÒ}ùr‰ÛÄ/‹ã¾*~eº³DÈ(kQݬQ|¿ÂÝlt_/sý¢hÊ×%ÏÆ9ºÚ2:XFENy@„%bc}ùgÖûÍúþÖò_Ë÷®óÑŸ©ÒßQ⃿¥¶.mëeÏÜŸÙ±)宲ñþ<ÉÜnýï|Ós“Z¤šÇ7Wê¶q¨jS?¹µrY¤] ˜­Åˆý™ Nn+QÕ¦ñNÞ¿g:ÿg¡‘‚A!>šï2ë»Òù?–=?ÅQ®Æ?<ÖÀb ¯Ï°t«Á.¹ÿ9¹eŒ'—µ¾Z IDATEGõçˆë˜ x~W5 EÈe¬áî›F®Ë$˜µO¡0š>–ÄËc¡ÿ>P×уù;³ŽÜìÚ~µý›enda ¶áÒH»ÏN7~p¬þ•xç&©fýžý5³v£~|0i6Îñ…]Õv\Úò>;O˜b˜ª!uY´Þ›+™÷ã­Çþª\ëÐ&Ó¾{´ÞYÀÐåEê,,`Y ²<9CR©“Ö_•Š›”Á¼=[üáí G\ÙïŽ$~t¼á£ ùŒ 0±²e|½ìÛØ/~Ÿòõ¦gãö»Ú6w*Á8~¶è‡{"ü«£½óÞ8øB]§Ó£ãOXEU›äÉ­ï-‹<(®Ôb´ý™ñ +>èj_áÅMžÁì{{öÎÛD^ýñNÈ~÷aòçGÇ×~tbmþËœ«LiøH´è›óMÿQñÉWýÏ©!‡öÚŒÞ])<º«= ]}_ŸZ… —^n(ŠÚ“|f{õáìÎuZdÚý·Û®¾Ž¬ÑîF†¨Ee×ÈIiãÉeд2Ù_imë&:èÖý|y©}TK¼ßãÍŒ –m*×ý|ng5Ì êv¿&Øz¥-Ö—?ÂѰ‰–b³#£}GF»\;ðé1#x{ÖzGyõ6%WD‰ùæ\Ó£VbáëÈúf™Ûúi½%Aàðs#Þ:T÷щ†¹Ö߉½å ¯Gû3LlK§¹1˜_76U©Ô4 á°÷Œð™nc l…ëÞ­«oÇ´.tFíè°¿¼½ÖUV…å0$†Ïßïë[X¬/ÒvŽð~©ªæ¦\îÈ`|åîÖw÷UÅå\ ú ®~CMM»ÑiQ\Þ Îu !C{nƒ«ˆQ¦lá¾B$2úT_"<¸—_xïhý³;ª{T¸—ó1cK_ú2Êsí­ ŽÕoØ[ÓÞƒ‰x´(OÞ Sû%vÂþÙõ~3¿+]¶©|ï:Ÿ¾,ñ¯Ç¼Öm¯ û¨€ICb|ùûŸñ‰ýâNÙ˜"Üý”Ï{Gëß8TçnÇÔ½RÀ–Ks³e~}®©ªMMC‘öžµ>Óƒl€Àp3ÑýJ!¦ÙœzÉïƒcõK~)gÐ8þžu>fwíË‚QÂuÞ=Rß.׺œ?ä´Ã1ž\²K’†"qþ‚£7;õ§#RÛ§¿PͳñòY´Oy¿´»æf­ÜQÀøj©ÛË·Ïm ¶a¸;wóã^køüt£¯ëÝ9ýÙÞfíFýø`Ò¾,Òî…]Õ··|s’aª†ÔEt¨tLÑš*Üõ”ÏûGëw_oáÈúh¾Ë·ç›…·§ŠQ¤ÎòhI ²<9CU©3®_*„ákJ{÷+ ' 'L¬›F¹•\{ëÑŽ­Û°÷Õö¡ˆ×åYð”=÷JÉêq'_Øõº«mó”€ë–DaË•ºÙ6}nUU›„†â!.·ö¬}sº±fA Žbøñ-~—c††£AÕ Á !ç6ø½²¯ö•}5j-ëËßõ”né…Gw8»3Ò“ëfÇ´P… ×Wµ'™^Ñ¿^jýõÒ†ëó“XiÄK¡eá6(vf´«µx€˜ýÝCîúËÀ ¾¼Ô>ªYï× Ûv0Ívoü½VÆŠ§¯Ãíõ[}ÚfÃï-­k+«Frع!ÁŸÊfÅŠ•Á±åJÛã›+ ? 6:çÄ í=Z7s?žïòr<³ÒY!¡£PÒ¤Ü~µ­M¦rh“;Ÿò¶çY?sV¬X±24Xß§ÿ ÚF LNOê}Voz’u¨ÁŠ•ûó/ûßkþa°¨u ²+V¬ z͆'®Ü;5¬XÆÓ0ì9µ-msÅõuÎ+^ÍÖˆ¬X±bÅŠ+V¬Ü>ýfY{“ÿÿðÜéŸ;ý¢ÉÛ/¾/š¼ûÜîŸÛý"hqíNïÎ~{t´bÅŠ+V¬X±òÄÚl°r[Ò·•·V‰WŒY~¯u±bÅŠ+V¬X±r¿`m6X¹ƒ×~zúsx'á-±– +V¬X±bÅŠ+½_-•ÉRÓÒꛚ´Zíú矷 uwwïÛW\Zjðˆ‹D²ö‰' ¦¶695µ©¹¹§§‡Édº¹ºÆÅƺ»¹éB–•—§\¾ÜÐØˆã¸ƒ½}tTTø¨Qä­òŠŠm»vé‹åp8¯¿üò$5±>)£åÚ£^·0ükWÿ½ýÖÎÆGjŒÞý$ëÓÏs¾”=Ö1$ºÝ' r¨áì… 9yy¯­_?´ZQˆ¦²uçN:þðòa„ùûMgÅ®gf¦¦¥uK¥L&óW_½×ê „û¼Ž¤¤¦¦^¹òÖ¿þÕ߸“®ŠÊʺúúØ †DšYœÆA>{_‘q=y¦÷D3 ìl‰ðQøøhERRÑÔ+´·þ¥ùûÛ¹—^W<¿NÃÕ;›¸¦ùs+}Ê$lR¬‰ã9ï?zzzÎ^¸Prë†aîOw°ïÝz˜Ú£#‘Éd_ÿý«W{¸»SˆJÎ@”E¼åÙ99UÕÕ²ž‡ã7bÄÔÉ“|ã‡1›MBuMMbrr]}=Náí=sútS¢ã£ZSÍ†ŽŽŽüÂB‰ÄÍÕµ²Êð<óØ ÂBCõŸOJòóíÝ¿¢³«‹ÃfÇŒÇãñd2ÙõÌÌ-;v<õøãbgg¨®©Ù±g«‹Ë‚¹sétúÍœœ£'N1z´NàÌøx›Þã9éô!Ûë)±áâù?YÞløÇñÓ¬T·7Þ­¬ªÚ³w/ù¿'xàþúŸoBŒfŽª®®ñòô&=­XùGÐ-•žûä“{«ž+C†a–7:::‚&‹‡;®–ÈððÈðð{­Åð2˜4þ?³—'á`O#á·¿ŒëèÔ8 E!2 ˆ®ÕBß®E£Ma# fLÃŽž …†~8¤\¦µµ#ëžÔ¢ÿœ‰º¹ùùMÍÍ=òÙßçîæöýO?]NOŸ1m˜óèHŠJJü}}ÉÉË£e‰ §Eï¼Ù³íõ†;;ï=p ¿°Ðh×>µ¨‹—.q8œU+V0 p‘H~Ü´éÚ1ãÇ÷5xõÇxÝBÄÂç ‚ÈÉÍõôðè;æEÂãrQ%B'EQ‹¥ûÉf³ûF§ÑhÈìeÒòWÓÿ•ÜxIª–Ú³í#"öLÝñî¾ËÛÈïLpåºÔ>\™Ûž÷þÓ[2Z”-"–h¶û¬/Ç~îÀ¾«k'½ùêú+¯ÜlÏqb;nyé•Ð F#ÍiÏ}çú{)©*LáþyÔ&Šc¦ÿ€!·Q29æ@n£t÷˜ƒK dÜòhH.Mili-L Š•^•RGÔÔÜ|1%¥ª¦F¥R mlF…†ÆMœ¨»ÛÜÒròÌ™ºúz6›=fŒ~—^SssâÅ‹U55†IÄâø)S<ÜÝ-«#;'çØÉ““'Nœ3˜›[Z’’“këëår99B:}êT®Þ@uAQQRrrGg§­í”¸8}::;Ïœ;GªÊår%bñ²E‹ŒvlÜç¦3›¢ƒGŽ´¶µ­{òI]ÈÍÛ·³Y¬Ë–™šú–©ä˜Ò„Âæeåå/]jlj¢ÑhžñS¦è:hÉÉ'K,¸pñbSssø¨Q³gδ$û;v37~ýóOˆŽŠš5}úâ2°3fùâÅg/\hljâp8ftCcã¯þIN!€Œë×O=;1&fj\´wtlüù燗/×úpßÖýI8fÓ—ÚººÓçÎ565ñ¸ÜqcÇŽŽÖÝ2•S§Ï»zí|øé§ àó_yé%³VÒ‡ÔsÕŠ'ÏœihlðùÓ§M ȸ~==#£[*uuqY8ož­mß4ö·x÷Ë>ù……SR::;EvvS'Oθ~ÝÔœ1³9;Ü ¸ºõ ˆB<žá$¥¦f$ñ"ZUƒjµ ñS0O^âìZNºx¾öÂEZS31Ÿ=3z‘ZŽ>£ñ¼ôø)š§;ÞÕ\¾‚ÆNÀÅÎä¢ûÒž]«uvºóàŽ=ôînxv­–:Šöäìy´²U«Ã ±t¡ö¶ï3Ä—”ø|ÝÀÛË«¨¸˜ôõÍzt*•ª²ªjùâÅ–ˆ¢váôEQÇk÷a²nn •w?¨EÕÖÕùúøèœF{{‘]AQ‘ÑfƒóQd;¨²ªª«»{ò¤I×µZ-Žã=ryjZN×5Ô"ÃÃoææ’<ŠÞÌÍmniY¾d‰þ³lÙ¢V« Æoïññº—¯…,8»˜26OúCÌqnR6Ÿ¯» ÆÔï…¿áØ–Òm9K2€ŽÐ ¶§6Ì>lMÀ¶,Û iågÙÿ]xni꼋:Q2­lUÒco‡¿é/ô;RuìÕ«¯#€¼j8ÿõf{Ṉ¸ûð-qòé¼_‹~?9+m~J¤CD¿4¿‡tÉÚÕZµÏn„ƒO6ܤÙÐØø×¶mNŽŽsfÍðùmííÍ--º»fÿ¡CQ‘‘'L(,.¾pñ¢H$MÍÍlÙ"‹ÍŸÏd0ndemݹsÍc‘]¹Ôbu¤¦¥%¥¤ÌMHÐuH 8ÆîînggçˆÑ£ÙlvGggjZÚîýûŸ|ôQRlé­[û  š3k–\¡¸”¤Öht½Î»öî¥Ñh çÍãóx²žžòŠ Ã ³«ë»Œ?>~Ê”ûßtú˜J5QSÜ¢NŽ)ML]/¯¨Ø±gŸ¯ïŠ¥K5ZmRròŸ[·>óÔSÂÛ•JåésçfMŸîèà ¥¥ÏŒiÓ|GŒ8pøðÃË—;::²˜ÌÅÕ¥Ryæüù„3ìE¢ü§O[’Ñbgg6›]QYIúô••t:½¢²ââÈŸ(Šzz?Òñ¾ª#ÔP§/jµúà‘#“bcíE¢¢’’³. 2nìX꜊‹%";'çÙµk½Ý¥La%£&=xäHtTÔ¤˜˜k™™ûŠŽŠjhlœ¯ÕjÏž?àðá§¼ïƒý-Þ–Û§ôÖ­ý‡……„ÌMH+‰/*”JSeÔ9û÷ÐÙ… (ôu£›?·Ò%bbá<ŒÉ nd¡[wÒ×<¦u‘ô:vJ%œ>GK˜9ØZ 1uѬ}æÏÁ~ú•~ê,­¥±q±½ÆðÃÙlZN:}jï™ ÊÊ{çVQG±{ Eaá<ŒÏ#zäHybA  Í--NNNúWœo••iµZKfz—–•Ñh4oo³¢Ìºpú¢úEUM Dm!†$“N§ë¾8F¿ËƒñQpÛlÈÎÉa0}ß­[w­.—ûÈCé&99:®Z±b÷þý×33€N§/š??ÀϼËf³ÇGG{¸»3Œ†ÆÆÔ+Wþزå™5kø&–¶ôE®•çwü5é÷žóÈ+ó=æ’ÿYBA½øw¦ì'¸ÏJpŸEþãÉþì…àçè]#!¯g¼)áˆÏ&œdÓØ0ÕuÊØÃ>ÉúôÐôýª=$¤T_¢º}Éä]Ó¶t7cœ‚ͶªÏ^¸Àçñ_µŠ¬¥ú}Þ V«fÌðöò€>>•UU……dñ8—˜(àóW¯\I>èíåõÛ_¥¤¦>´t©Y±$§Ï»‘•µ|É]LŒ¾#FøŽA qws“ˆÅ?ýúksK YV“SSÅÎÎK-"ˆìì6ýñù¿F£iim]0w®N Ý?‚}ÿÓé H5QSÜ¢HŽ)M(4LLNv°·hÉÒì®..ßÿôSjZÚœY½Uð¹ ºo&–Ëåòy<º¡ÔþÆe ÃæÏ™ãìäc""²nÞ´$£ñtw¯¬®Ž ¢²º:*2òêµkjµšÉdVTVJÄbSã]÷U¡†Â8}Ñh4d7?©^OOOÊåËcÇŒAQ”"§8‹ÅBÄ`„œÂJFM:{æL²GÖÍÕõ‹ÿý¯°¨è…gž!§¥©Õêc'OvuwëÚ“Ôf±Ü\öINMusu]4>ÒÉÑñ‡_~1egêœ>4P«A£Ü|ôVà‡÷õiÏ%ÒøÌüX¦•ʼn'…ˆ‚0é«qõçÙ_ì«8P%«VãjòbqW‰®ÙÀ@ó<æèÂ/õ^²µt{^G~¸ýh}!Iõ_ {…l3È<9 ~²Pç{Ž´(Á ŠŒp ¢‰aXUuuì„ ¦^ L&“üî’89:vK¥äƒ••ÆÓÐß×7ãÆ KÄqàðá[åå«W®4p‹# 5-­ ¨¨³«K×±×ÚÖæäè¨Õjë¦è¡‰u#ª ÃÑÁ!ùÒ%µZíåé©ÿ¡Úؼ÷æ›ÿÓé HQSߢHŽ)ML]'sjRl¬î“@¯WUWë§NßXb—QØl¶³^š­Pha‰õöò:—˜¨Õj[Z[•Je̸q×33«kj|GŒ¨¬®¦Øë㾪#3ŽQPÕÿœ "»ìíÍæT_LYÉT`Ý,6›-àó}¼½uKYÈÙPR©Ô ÙÐßâÝSö!³cÚäɺ[ö"ÅZjŠœ5õȰé;%ÍÏ—˜?ÇЃÇ0¨¬B&Œ»Óœ@ðï^§ôf0ÀÝÍpÄÀà"µµúγl6@T$ž”Bss%\]î>*Ï̦WT">ÞÜÌE½½ÀL 8:SPµ<='Gâ¾ç‚aØ­òò¾3*BíÂõK”­V»çÀVûèâÅ›yôĉ³.Lœ0A£Õž8}Çq¸=µÉèwy`>ªd³!¿°P£ÑèCë£{ûlüùçóII¯ZçÙ,ÖŠ¥Kɺ·—W·TzêìÙ‘}‹‹«‹‹½HTßÐÐ/­NÎ:öþ?ÊúO‹bƒ˜+Þüâë£^3ÚxxþòK{Ê÷}ùÁxçq† CÕs,N‰)u„L¡þÀ‚#ÛÚ•íúB:T\óeÎ×ßä~«»ˆ†Ûx¤ &y™Î~c“Ýp\˜SôD7ôL‰AÌ-S*•A½°F1X‘‚¢(Y{•J%ŽãiééW®^ÕÝ%Bw—Z¬Z­..-õôð0XŽ?ààä™3ySãâÜ\]Y,–B¡øsëV­V{GŸ»;iô>²bERrrrjꩳgù|þ¸¨(³s(ïCÓé3´)¢¾E/¦41zŒˆw÷œl—ÛØÔ¤ûÙ·Sc‰Õ%ª¿qõÅ`4‚ –X/OO Ãjjk›šÄÎÎ<ÏÃݽ¢ªJ(öôôx›ÞúìŸRG(Œc6›­ßƒÈåp@¡PX’S}1e%K#¢…ü–}¼_Å»ïã…‡ ƒÅ k(rvXY²Ú4Ø £/-…0 ._A¯\½“³8„ž'ÏbA_ßÒà"µœúä÷ÍwœŸÞÖ‚4Ô°AâáNØ ‰›¹¨7ÖÒŠ44"‹`–¨úÈ ìb šœJëé>ÆEa1ãñajÒ7䎲]¯…¾²>äEògn{žA€.u—W3Ñ^W EÙ "ö]ëx„L! ¡myiMÀýUõ¾ ¤º»;;¾ßH³aÉï´¬§§¿‘³Æk´OÔ¬X‹µlÑ¢{÷î?thé¢E¦fY#ääåM7.:*Šü©¿€\¥T*õëT*S(´±Y8o´¶µefgŸOJa!!úÜç¦3•¢¾áµZ-9™"jŠ[fóÅ”&F¯“¯ò¹\_B\ΡüX ûàv©èo\–cÖ2ÎNN\.·¢ªª±©‰|ëz{zæ mlh4šÙQŽÄø7בþ¢T*õ·«’+Àáp†;§C¿Š·åæ"“,¿;É …ÂT;–"g‡‰˜ÜIÉ$l6 (Œ‹GŒÔæ§Ôrˆ'µ´„ J¤g s5XNÊdBPn‰ª¶Bbá< kiE²n¢ç“hŒ –M] :X›[Zìlm-™,TTRâéá¡k`P‹¢vá D™ð½ÖÔÖ®^¹r`Öé˜;aܸöއ#àóþí7Ë^‰ƒôQ@¾ÁXGgguMͨ>C q×KA©TÖÖ×Ûß>+ÄÆÆ¦±©I¿1P[WÇd2ÉrfÐH¨¨¬ìèì¤î%¥ È6ð«èÿr蜼Ž|`¡L ~ç4œÀÕ˜Ú†!Ð]9PyÈ@‚×­:®û¹·|Ÿˆ% ± Öæ±'»Ä%Õ_ôŒèÿ LíóÓ¬TG7lÜØ÷è†æ[MYûÓ³j!KaŸuâfÖñì¬ãÙõEõF¹'In^žFÓ¿syètº—§gEe¥ÈÎÎÁÞ^ÿÏB±ž<ôPYEÅþC‡,iLRÇH†a,½ojAQ‘þ³.Iye¥îŠL&3úeu°·Ÿ1mšþê+SüSLg"›®în]¥V©Tº”RDMq‹:9š½N§Ó]]\ uÊd²Êª* O±<ûHÍ—%òÍZÆËã¼¢¢ªºš[ðöòjlj*,.vuqÀÖs÷[é/8Žë<š_PÀápœÍæF@‡ÔÐbIñ¶\™E%%º+¦¶Fs9{o¡ÓÁË“¨¬BDv„ƒý]C(‡ÅwB÷gVÚ¨P\­†Âb4' Àɪf¹ªŽÄŒiƒÍ-ÃÕ]àïß-•ê¦áuK¥••9!Å¥¥þþŠ¢vá DQƒãøþC‡Ê+*^¾|Ànž>t:ÝÉÑQÀçç6·´DEF 6Õ PŒ6æf¸UVÆår|¾~‡¹;aßJ»öíÚØˆ™Lfgggfv¶J¥Š‹íÝ4:*êÀáÃÛwïA£Ñ ËÊË'ÆÄ£?»÷ï·$b1ƒÁhhl¼ž™i#Œ»Ý#b U²ê'SÖ.ó^h Åµû+*´Šx—©l,×Ê.Ü4Æ!’Ec…‰Bã]§ýVüǯù^|Ïý7ýf Çàý;ãÍU‡¿ÐïHõ±í·v~ý¥Ázhø:ú‹Øc“§œœþlÐÓ®\—NuWFË5œÀ?‹º¯>XñÐC—.Á™3ààá ï ñzÂÓkךzjúÔ©mÛ¶yûöñÑÑ|¯£³³±©)aÆ ³ÑÍŒÿsëÖ-;vŒ‰ˆ°”*U]}=Aä|\KÄz¸»¯Z±bûîÝû\¶x±Ù1ŠññöÎÌÎ ° ŠŠndeé?»sïÞôŒŒ¨Èȹüð±cºNÍ®îî#Ç t°·Çq¼ ¨H«Õúxy‘·¾ûñÇØ ¦Þ½å}n:Š ¼tùòÅK—ÆÛ#—Ÿ:{VÿYЍ)nQ$Ç”&N™4iûîÝ»ö틊ˆÐhµÉ—.ÑétŠù0¢ÌÒ߸ú uF€—§çÉ3g!—©Ë 3 µ IDAT+«ªŒî·;ȇ©Ž ! ã|b¢R©$wRÊÉË›O–OêœrttÔh4×33]$æ< Í[ÀŠ·åÙqøØ±ðQ£JeâÅ‹|>ߨ—j6gÛÚÛÜ´iRlìäÛåê—߀gžzŠü™|éRrjêóO?m°‡æ0cöçVúæíô¨H\À'”*¤®! 7/úû倽ˆps%Î'¢ÝRdTèÇ)¢èìBާáöŽCAªÑ€—‘ÆjkòÓ¯ô‰1ø”I½’ùÏ<Õ;’| MN¥=·NKÑv ¹rõêǧNžÌ`0.]¾Ìb±&èíGlÊ£«­«“Édú jQ.\_QñÀñS§ŠJJ"ÃÃ{är]ÃUdgGžŸÐ QMMºê\S[›uófdx¸nÑ¿Áwy0>ª0ÕlÀq|ßÁƒºŸ'NŸ?__ý oæäx¸»÷ÝÕ×Ç'7??'/O£Ñp¹\7·e&è:‡Œ‰ È•«W=J„ÈÎnf|¼n¨ÔÓÝ=¯  7?_«Õòy¼Q¡¡“'Nì×fÒ¶L¡ÏõëÜÿUɪi-Ä.xÏ´Ó]ã`ç¼uO½{ãƒve» WRûpå_“~[—ú\Ø&ã~ê”F£± GéN³“ÓÚ'ž¸˜’rúÜ9…BÁáp\]\ÆÞî°P¬»›Ûê•+·ïÞ½÷Àe‹&Æ…sç;uêçß~#'x,_¼øÏ­[uÏúùú.]´()9ù|R’@0aÜ8Ý-6‹e#\¹zµ³«‹ß\ºh¹ßAúSÃïgÓéOú¤H‘ØÙyá¼ySRRÓÒDvvq'êO€¦ˆšâErLi¢R©LièãíýÈC]¼tiïÁƒ(Šzyz.]´È`)ª>‰5Kãê/Ô äÜ$‰„ÜVA/âÒR/[¯2Æá¨#C“É\²pᩳgÉsfL›Fî¾ ær*Ðß?2<<19Y¡PèŸÛ0Ü  x[Ž.;ò Èc4Ò32Lu‘Rçlß÷˜Á;¸¦_ZˆØ™X÷¤öb zúM¡è=ñ`ld¿}ý¡’C‚Ÿª@`ÛÎýs¦Ùš^Uiå>a2€PŸŽÒïãÞþüžy‚‚ + þAçaZ±bÅŠJ Åÿ~øaj\œ®)eÅJ_~øå—°I±Cp:íвò÷ðÞ§ßL6Ý’‰ν²þéã§.¬~xé`Ïm°òOE£Ï?xûmk›ÁŠ+VþѨÕꤔ//.—ÛÙÕuùÊ&“iáx¦•–žyæ>eå~ÆÚlxPÙ¶ *+!(–.½×ªX±bÅŠ•A¢h[{{N^žB¡`±X^K.´îýbÅŠ•¡ÅÚløÿÕ6Jp÷ô$ëPƒ+V¬ü?‚N§?lñ5+V¬Xwš ²ÖÖ{¨‡ËÀPäc÷nVe%îë+Ÿ:¬ùnÅŠ+V¬X±bÅÖžæÿ?¼œúæË©†'¨ë`½ù&‹<_]«e|÷¨_~ùoÓÍŠ+V¬X±bÅÊ?k³áƒ±oZU…ûùi,¸×ºX±bÅŠ+V¬Xùg`m6<`hµŒï¿õ† ÖU V¬X±bÅŠ+V,Äø’h™\ž‘•ÕØÚÚÒڪ۵+WêáqøÌ™²ª*ƒGÄŽŽ,ZõMMWnÜhio—+ ÃÅÉi|d¤‹Þ±•µµé™™M­­Ž‹lm#BCCŒ~ôܹҊŠ`ÿY·OH$É-©7:³_ñ{ÁÂðoç}´»æ@YÂM£w¿(þöëÒšæÞÝþ69Ôœž^PZúìêÕC«…ØaŠÑ(ûާÑé‹gͰ„꺺Ɩ–±£G[þoHÝßiÀ~‘ž™y5;{ý“Oš Ù_«þ£ªÄÞ·ù~OèkUË‹ß}Î?%£³òyR{Û£¡„Ð TD†ÊÈΫôLþÕlþú'ÿ~Åž563žXÞÂaß9S­¾‰¹ëˆ}Ìé¸Ù߯ÒÀ+ÉééeUUŽ»‰ÅS&LÝ>—Ú£#é‘ËÙ¾}Åüù®b1…(°À…Ó‰ÚØPÄ[UW—_\\ÛÐУP°Y,oب(¾‰ã}Í&¡®±1õ򵮾fæåæ6yÂS¢Ìú¨P^]‘ÝÔÚŠØÛÙMŠŽvwq1“ Æ› ]ÝÝÅååÎŽŽgçšúzƒ»Ñáá#ýüî–JS®^õ¾}Li—TÊf±¢Fâr8=rùÍ‚‚½ÇŽ=¼h‘“½=Ô56þÐ/ª«ópwÿ»UüÿNu}}V~þâà.‡ã`ggIÈʪTbÿ6úZÕòâge™>±KÀÃ4Z¤¨Œ“œ.P(‘IÑRàrp;­ÙLJI¥Íû/¤ÚÌï$¯h1äL²ÐÉ^3vô?¦Í€ãøþ'äJåäñãtúÕ¬¬=ÇŽ=¶t)—ÃsÉ­ÊJ.‡ãâìL-ÊN'ª¾©‰"ÞôÌLµZd#ttuÝÈÍ­©¯|éRƒÑW=ê$467ï=~\âä4{êTV›vãÆž£G]²Ä¸(Jr Ï]º4ÂÓsê„ (Š6·¶*”JKsâÀx³ÁÅÙ™ì½ 3Òà®ÄÉIâä¤û™zí„øû“?ƒ|}ƒ|}uw}}ݱ£ ¤Äiüx(*+€Å l |<<~ß½» ´T¿Ìi4š ©©“¢£ÓÒ†".ûùq÷oÿÞf4ÒÑð;ÁžÕXp¥}Û¶ßzëÞªgåA&,((,(è^kaåÅZüî î.j‘­ü}”;9dåób£¤( aAò° ùj1„N#,¹h ›<®ûL²0ÈO9ÂS é™üŽ.úªÅ­ÿ i¼…·nµ´·/Ÿ;—ìw‹ÿصëÚÍ›qãÆ9ŽäVe¥‡‚ ¥¥¢,qát¢¨ã1i’P¨ûédoôܹâòr£ÓO¨E¥Ý¸Áf±–ΞM§Ó@ìèø×Þ½ÙQ£FõEí£vK¥IiicÂÂÈô@ðmçÖ ‰ñf‚ >ODai©›DÒwÌ‹„Ëf£B½u@„y» ˆ ›É4ˆ.õÚ5Ÿ8°fCEOå›y¦¶^‘i{DL»pÛ°-Q¿|\øÅOe¿€à° ¸°Åų2ó» ÿSôÕµŽÌVu›Ãv†xÚ‚ßµgŠô¥]k¿ñ¯Ü÷òºòYÏXû¢ïÓF#Íë.ü¨àóËmWÕ˜j”mèGÁoO°€òƒÜFÉ`ÌAâïµ8hW® ÊfðlRtVqµ¨–öö´ë×kÔ€Ïöó©»ÛÚÞ~áò寿f‹¢ß‡×ÒÞžš‘QÛØˆc˜“ƒÃ¤èhW±ØB±:òKJΦ¤LˆŒŒLŒ­íí—¯_ohnV(•äh\t4‡ÍÖ=[R^~ùúõ®în¡M̘1ú:tuw']¹BªÊa³æÅÇíºÐ‘”––™—_ÿú+ð¹Ü§W­2«ƒ©„S[Rr–Â̸¸ÔŒŒöÎN.‡:&,L?Œ)R«Ga õ,4þ,2 ó§O¿˜žÞÒÚÊf³uJµ*TÖÖ¦]¿ÞÒÖ†Òhnɤ±cíMt›ÍŠbIq‹B“‰‰í«/ÖE±çØ1“¹pæÌ%VGSkëöƒɉ•ŸŸxùrtxxlTtvwÿ±{÷âY³tc¿«8e`V"cY2{ö…ÔÔæÖVíç핟#7W&“‰œ&OÚØè‡7UÎ)lnÔª?’â²²´7ºº»m…ÂØ¨¨¬¼ÄNšÆ†R…r9¸Á$¥–vFj¿¶‘…iÁÉA3)Zê&Q“·’Óm J9³§v^Ê´¶ÑCƒÓbºŒ^¤–£Oh ¼èûÜ%¡›DÝ-£]»É;Zæd¯€â2ö±óv-kuitážIeècËZ©£èì¢]L·©©gj´(›…‹5s§u0™–¶gúEYUŸËÕM¤ðx®®¥••¤ïkÖ£S«Õ5õõó§O7/Êœ §/Š:^ý6ÅRÖcÜ9¡UßÔäíîN¶@dkkkcSR^n´Ù`€š[\Lĸˆ ÂrgøÁa°Ç½Õ44tËdîv¹@‹aŽËŠ«ÙÙ4:]× Ê/-MLK‹§¡h~IIkGYÂH[Zn<¢÷öï/]}‚Ð7E|çÌrlV·&5§¨qͯ`8¶£fßÕ©€†Ð NÙ"ù˜çJ!SXÙSýuÉÆéOœ›tD'J†õ¬¹ñâëë}ù>Çμ•÷!È ¾ë bÌí.ˆO™?ZúkÄw<:ï¯ÊíóR—Ÿ;n÷ xWªÑB!îåÅù!›Z[÷=j/ÅÇÆòy¼Ž®®ÖövÝ]V{üÂ…Ñ#GF‡‡—VT\ÊȰµ±ñ÷ñ€–öö‡;;8Ìž2…Á`äî;~|åÂ…ÎfÅêÈÈξ|ýúô‰u]ŽQÚÓãhoÈb±:»»3²³Ÿ9³òö¢ŽòêêcçÏøøÄÇÆ*”ÊK­ÖÉÁ¼{èÌŠ&L™ÂãpzŠªÚZ ÇÝRéo»vE5)Ú°Y8>2’ ˆ¼’’Ç—.EÍê`*áÔéê‹J¥º”‘1{êT;¡°´¢âÌÅ‹‚D††š5 µz¦Œ@­ž©§¨Q©T¯\™:a‚­mqYÙùÔTRI£V­ª«;xê”·‡Ç‚™3µZíåë×w9òèÒ¥6|~_ÉÔi¤(–·ú¥À «“½=‹É¬®«#?±Õuut­º®¢¢ÈŸ(ŠºI$fóÝl3¥aß´ ÆJ­ödbbDHȸˆˆì‚‚ã.D„„4µ¶N7N‹aÉW®OL|dáB}»Q”sS˜µ*uz+ª«_¸0ÒÏoúĉ ¥2õÚ5¥Jåd¢&R‹¢0{¿rÖ€azC7ÝRŠB_7º¹±ëˆ½³ƒ&ar'ƒAär÷­\Ø&vìuÜU*$)Ífê„.‘­ÃSÍÊÑgf\×_û/Û´uÐí„Úñ‘½Ó“Fx©X,¢ ”ÝûT­¬eMÛm6ŠÃgE(B$Léâq0¹’VUËÄp`Xš ­íí¢»z<íE¢Šš-†Ñi4³—×Ô 4š‡››YQf]8}Qý¢¶¡ ¢¶Çiô»¼Y:®{ýj›òQëíí KK3²³¥==6|~xHˆA7ÜÎ`› ùÅÅt:ÝßÛÛàú¾ãÇ뛚€Ãf/IHБhiBÂá³goFK˜2e„§'y— ˆs))£ƒƒTt@Ž) »‹ ÿßÉLòÊlñ ò¦ Š Ü;úg8Oá<•üœ(j”0dlâ”ü®Â`aïàµ\+ÿ$âù.³É-ª–/Š¿}Úç z—ônÞÇb–Ó‘˜Ýl”qŽ1“/Îþ¢øÛ]Ñ,ãrCº©[8¦E[[@È4×zNNOçr¹Í›G¾n :¹5ÍÔ˜ðrs«©¯/©¨ ?Q)éé|.wéœ9äƒ..;JÏÌ\0c†Y±$Iii9……ó§O׉ÁÄèíîî}{ý†‹³³³ƒÃæ}ûtïÄ+™™NöösããɶBá¶zcÔjÛ::fÅÅéÔ¸£‚ ‚ó<Ø,“ÉDDäZS §NW_0ŸCÖš _ߦ––ôÌÌðà`RO R¨Ga õ¨LG †ã3ââÈ$Œ92¯¸˜TÒ¨US¯]ÙÚ.˜>L ØÉé]»2²³ãccûJ¦ÎŠbIq«_ 2±ú â&‘Ô44Œ ¢¦¾~tppf^žF£a0ÕuuNºW ûª4+i4ši11½s!œܲ¥¤¢âɇ¢Ý.·gSRºe2]3ƒºœ›Â¬U©Ó›–™)qvN˜2… é ý¹gEt¢(ÌÞ¯œ5`˜ÞÃF‹h4ˆF‹ÞâTÔ°Fx*ûÎ&JIð8ØÒ9íä-ÕŽCé™ü…3;ÈZ ™>±ËU|׸Aß‹fåèc#À&EK/¤Ú (<¼ •†öjE§þÞŠ¢Rö¤±Ýä—³¨ŒA¾ ê(4Z¤µž0¹Ó׋œ¯!g@ J•J75Ÿ„Ãb€J¥¢›X¬Ï­Š /77²P‹¢vá DõKÿäôt'{{ ¿ˆlm››õ¥utvb8ÞÛj2öÕ6å£ÊzzdryzVÖıcmøüâòòäôtÇ­ëÍt ªÙ ÑhJ+*ü½½û¾Î¦Oœ¨R«eryv~þþ“'—Í™C.‡hjm=pꔫXYùù–ˆý?öÎ;.Šk{àg¶Ã.ËÂR–^¤KQAEA@ƒì5šhbIŒ‰FóbÞ3>51ÍħÑücŒ‰5ЍQ± "‚ ¢b¡‹Ò›ˆÀR·ÎÌïÑuÙ2,Åšù~ö¹wÎ=÷ΙsnÅqüDrrieå”±c5<Šž¥HD¸zófQiisk+†¢ÄÉF±ØÂÜ\‰¢uõõê5ÍJ(Tõ™2 ¡™Ù¥7äJ¥ƒúG”Ïã-›?_oñiA¢ƒ¾Œw™/mè4šz¡9ÙÛgåä,¸ÇŽáö²”˜L¦j,›Åâ;ÙÙ©V †3µ··«ÜòzÞôå—ÈÅðÁƒUAf¦¦ú†Ã‘‹ê²Ø ¿³<7$I{ÃîCOzi\e¯…7kD@1¤²–=È¿MåN ôs’ÞÈåªâ0¸­µæX#“är0 Ê'F$›…ÀŸöŒk<[k…ȪSwDIN¡qE ÛÉNùEF޶2#O‚ÉÀ…fÊŒ,¹’f/’Y˜+_ØÑ.(†•VUE fHdr®[¢T(Qôè™3 ¥rjllÏ èß?)55õÊ•Jå¹ôt ÇáñÐ&_m}6*Žã …".:šð¨lm[Z[¯Þº@ X"è•Ûp§¤D¡Têœ/¢zï¸;;ÿ~à@Zfæqqvå ›Í?z4ñ-q´µmmo?Ÿ‘ááâÒ!‘\ÎÊŠ6 Ãq™üÑó¢¨L.g2äíIê²çë¾-üßCYƒ5Çêƒ~ó—º/Òé<,»õïCÕÇVybÄcðÄŠæè´qRL¦ŠÀg˜¨w,X°Ì I.V"–‹˜âÇ{¿ütïWÕI0C T¸¯fªó<†c×$wSÂ(á`Ç®ŠQ&“á8ÎÕß>ÁìÜHCâù”Éd†]ÏÎÎÊÎV…â†"V¡PÜ+/w°±QŸmß› 9=½°¸8,8ØÖÊŠÅbIe²¿ŽU¢¨>}Ô'séúõËYYç¥R®±qŸŸ!£$µ!ÑA_ƻ̗6¬Î£K‰Æ!©ìQMÖW€]ª§³ºT¯gEGïlw"*%5 îqçØÆFFtÆïn5PO…$Èp´1<³Ú8ØÚ¢Vsÿþƒ†+¡ÐØÈÈ^$ª¨©áóx‰£*fÃ5ìe)ihˆ ˆú¢B«§K^Ï{ƒ¾ü¹ÐîO>úŸDy±~g5xoÈ§ÄØ(1Ÿ‡Òi8ß56ÒñB“J…k·yYÙOü GÔk‹…kÛo'ÉåÔÕ3÷þýÄùda- Ðé@£iÖs;‘œo‚æ9ÙÉšu™¯GŠ QuÒ˜ÆËY&—³x>× òkh{J–'‡ÍVYM™ Ølv—×VTW+•JU3?¹(A Q†€bØÑ¤¤ Óbc'2u_O϶ööÌ›7¯gg€«££‡‹KYUÉjœúlT###qK‹úãæhgWZYÙÒÚjÚSõ^1zå6äÞ¹ÃçñH^g@£Ñ,ÌÌê*šš›­,,Ô}‘¥eiE…L.oimU(•I©©I©©ªÐÂââÂââIcƸ¼Z¨£±ýÖÀMp§õî®ò¿þ›÷•ˆc=ÃaŠvÌøªÃ¹½¿¨ß<â0¯¹@#B‹²UŽ+XÈ#Ï᡼ÌXõ8|&ŸŽÐ?è7ÿ-§jøŒ¹Û\Ü*o°M¬õ¶W©`³Ù4­½£Û‹Z_ô =»pt)–ÅbÅEG>}:1996*Ê/‘†µ­£8|0ÈÕÓY®®äêõUÑ郸wWÄëHô嗼論äAä h×^%Šv}3 ÃÒÜ܈騩©oh Þ½ŽvvwŠ‹ù<FÓX}\'=¨`úèM)õ’zþ”ʜȅÆò‹R™Œ|utY콿³ÝM±Ë·SŸcm¡ VRÒ›Óhä×îçÕ“…• ”#4SÎo¨“ àã.ÉÊáFGòï1™¸»‹ÔUMMИ1441rï§ešpÑþ’žæ‰ ¡™Y]}½ú™†ÆFS>ßÁB÷ÊÊìE"6‹eˆ(ŽÃfkˆêÃŽ=[]W7uìX}3÷ $40pP@€¸¹™ÃáðŒw&$è[DD U(ÔÖÕ©GÀÕ:.( 7»D7·´Tß¿ï£ÕÕ€wn”’É嵨†ð¸Üú†õf­Úº:&“Éf±„ffÓbcÕ :ÝÙÞ~Zl¬v ´!xš¸åû_#:'¿¥Ø4–{Òùˆá˜S˜0žLafÆø˜tzshìáCÒê3\=xnê¿èÜ6†}£½uÃ’ú«‰×á:sͳ“ònŸÎ½}:÷~‘Þ]uè4š½MÁ½{ e÷VÑfÐé66ÕÕ>ß\ Pÿ(ÖÞÆfò˜1eUU‰ÉÉ$-릈ã8Ša,µ¯{Qi©úµÖ––ÕÕª3í›tŒy5ÂCCtº!ßTŽ«iN®ƒ Œ“çK'†Ý++SsØì.—¥7P=è\†«×­¢#A£TtºÈʪ¨¤Dõªiï訬©Ñ¹yIª%IP— ð¸Ü–¶6U¨\.o0¸42«[ÛòêêÊÚZbhŠƒ­íƒ††»¥¥"++†g}It·‚é£7¥ÔHê9y™Rª:!^wÕÕ·–ƒ!¢º,ö^ÞÙn¥høãÿ,aÐqYe KÀWš :ýúP‹…Û‰äª_—Òú{H än)§à®‘‡‹”ÉÀ»¥ªÐLÚÂdà{;›TnNN­ííª€­ííÕÕîÎΆ\[\^î¦6=•\‰ §-Š ÃÏ«¨ªšÓ3OnanÎ36¾S\ü°±q@ÿþ:£‘Û¨ÄLݲÊJU„²ª*c##Ö»ø' ·•”@}c#”VVq8<.W½Á#ïî]PÛ®AÅßII&<ž•PÈd2[Z[³ år¹j=¾@?¿ÉɇNž ðñ¡ÓéE%%eUU!"Âb±4¿(ÂU[Ì*:ªÝ\6Ñ6ÖÃÄM‰£W'JPéH«àmâÙJ¶—î(`ÓÙ¾|ï‘–Ãÿ,ßkãhdÿw͉e»5¤3ŒWå%V4»ñ\OÜOÚ_yèß5ó¡àk¿5£ÒÆ¿ž1ežËÛ¶Q³¢åzÓM ÇÖöÎ#L?>½äòÙª!Ç<ÎyÌwÙÞÕ¿«èˆÇŽÅ?äïÏ52jnm}ðða¤£#†ýëèÑøÄÄ.—xq'F"ÖN$šòúë 'O?w..:ºË>’q²³Ë),twqáóxE¥¥Ùz“†9}:+'g@ÿþÉé”Ur-mmI©©..æ†ãE%%Ju²·'‚¶ÿõ×àˆ…5š™)”ÊÛùùÖ––t:ÝÒÜœ\}'/Im ÆÅ«Wår¹¹@p·´ôNqqÄ!]–y‘‰z$WõíR6hС“Éš¯ IDAT'ÿNJ ðñQ*•—oÜ Óé:‡BuY Hª%I¹®®™7o^ÊÊäïß!‘œÏÈйz™ÕŽã`c“œ‘ ÑœfmaÁd2+kjt.g¬“îV0z\J=€¤ž“—¹!¥ª¡‡OŸ>}Ⴏ§§T&K¿vklܳ†Ç.‹½÷wÖð»|4šš›ÿˆ ú8õ] ðÖ”G]÷—³².߸1wÚ4•4{IøÖ¿Ž èßÁ3FerZí&ޱ1ܳ—f¦JkÅÅL“ÖvºZwIÍ­ô¤T§«Ä\ Äp¤¨„£P"Nö:\”F1ãσ–!Û† z¤Ø® xkÊCâðrïò “9SëI|'ow÷ë99'’“ÃfÐé™7o²X,õõôYtµuuínj¹(N[IºpöâÅ{eeþÞÞ  ¦¦ú¦*‘ˆzÐÐp;?_diI£ÑjêêrïÜñ÷öV QÑøj“Û¨.ŽŽ¶¶§/\6h©‰IaqqEuutXÕÛ B·Û€aØñsçT‡çÒÓÀÅÑQ}¥ê¼¢";‘H{°—³ƒCÁ½{ùwï*•J#ÇN$-²´$B½úõCäzvö©”Ǧ¦C†¨:I{€É·3²Ù|ok¥¤š4¾×Îà­‘–#`¬Íksg}Y°¾I.¶áX߉¹ñKàÆo}šɤ³†˜ïüÛ¨´NkÏñèÜ?‚þU¹ÍyláW¾ÿÕ^}üø>i§¾.øaEΛäb3– H0`ëܾʔhïÛ`c'* ./ø!ê«)ý ]VÏÚÂbúøñ×®½xQ©Tòy<·;±47Ÿ5qâ¥ë×S.]’Êd6ÛÆÊJåñ(ÖÖÚzêë¯'œ:uììÙ8µeÝzbLDÄ™‹w<‰êjøçª{Ë ŠW†çUÏtºú¤> Š2OÜ^ïÍ¥xfr§vÜþ³¼µÂKè9'äÝg Å« Õýê°èô‡‹NJLùUÆ7°*låóVŠ‚‚‚‚‚‚‚‚âU€r^Avæì.—z ½¦ûL{ÞºPPPPPPPPP¼ Pnë†S~ñ-|öjVEŸ {Jtk[[ú¥K5µµ÷ëê”Jå’>¨m¹ÿàÁ;wïj\bkc3î\¨¬ªJMO¯{ð ½½ÅbÙÛÙ…‡…9¨m[\R’–‘Q{ÿ>†aBaHpðÀÇû†vymo8_“rµþÚgŸÿ“Ì{îí»ÿf¥ÎÐu7¿þ6ûû¶·›úD·>Ä®†Ò²²êšš°¡C{™V_ÉÑÇ®}û ÆÌiº3Búô2˜–žž~ùòþõ¯^Jî.×oÜH¿t©¥µ•Åb}¶|¹ážINÎÎÍýdÉ’¾Õ‡DìSJQ'ä5D'½Qï)eí¹T*õDµëyæôišá%ö´ßQrõ:ídøO§ƒ™€ Áˆ½¼ÓÒié—éÿù—âÙ+¶/žQ]ƒ|°@ñxC3€Ê*dÇ.ÆÈ舰®6Z{ahoo?“œ\tŽ1£FY<Þn™Ü¢#hkkÛ°yóÜÙ³HD© §!ÊÌÌŒ$Ý’ÒÒ[ÙÙåmííFFFîýúEFD˜èÙ²Ë,TTVžOM­®©a0ý\\^5JŸ(r;³¤´t÷_©Ç722úôãIJþŸ†n·¡©©)¯ ÀÖÆÆÞή¬¼\#4lèPµnšššÎ¥¤¸»¹‡âæf#gXh(—Ëmkk»~ãÆÎ½{çÍ™#²¶€ŠÊʽØÙÚŽe0·³³8ãxà€]^ÛKÎ×^ø)ïgÃ݆—‚²òòññÄ'pÄpìÓßþ Ð? ¢¢ÒÙÉIçU¥ååW¯_﫺äô9O/ƒ\.×ò™/ÐÒÚz2))8(Èß×—N§?ãÔ)ž6Ï¥R©'úÂ>ȽçÎÚËHì”o‚+”Hnrö<]"E¢G¢Àå‚¥Eï6m¸J?ocœL¢O™øh[q¥Ž ‹¬ñ°¡/Ï€aØî¿þjïèÅb±.fdü¹gÏûóæq¹\èÊ¢#(,*âr¹ööä¢ÈM8 Q•UU$é¦edÈd² ACcã•«WËÊËߟ?ŸØ"]ò,T×ÔìÜ»×ÞÎnÒøñ …âBZÚŸ»w/|÷]¢ ±3_‹ŽæóùăZq´º‹ÃÁÞžh"n¤F¨½úáùÔTàïOúõïï÷xïzðíßã–-·srˆ[’›Ÿ3§M3227·Í?ÿœ›KÔ9òk)´ÙàÀ¦?·ØzÙ‡  -'5)íWöo߬[÷|Õ{õ80hàÀgœhSSŽãüýmD¢gœ4Å3 Ç• EÑ»‘Ï¥&SüÃqvÂ-„8îã¿ý\½N‹ Gi4ˆ 쉮T‚¶Q§ó¤>ø&øè(ôØ ºŸ/îéŽ@Z½¡YðŽ’öò òÍÉË«{ðàí7ß$Ú ìí7ÿüsÆ•+££¢ +‹Ž °¨ÈÃÍ AìÜ\Qä&œ†(òtã^]hn®:Y[Ç:”WP ÑwA@.êÂÅ‹FFF³¦Og2™`kcó¿þz-+kØ!Ú¢ ±3]]\¬,-u…îg A¯Çq<;'ÇÉÑQ»Ï‹€klL£ÑpWI¦ÑhìÇ{å Âápô%§q­·–,¿ò¯Ôû[å­BŽ0È"ð@äÞUYk~ÌÝÈvØÛVÍ,ËiÌ]µöJýÕzi½9Ûüu‡˜ïkÁéÔìwåAæ’ËËn7f[q,—ú~´Ìo©ÎD³s>¿þß´ûé2Th1ðÛெ‹Âº¥v±õ² ©i÷›ê…á.a­­úâŸ>{6óÚ5Xûõ×`Âã-ûè#¨{ðàü… å••(ŠÚˆDÑ#G::8—4‰ÅIgÏ–WVÊd2ccc‘hêĉçSSuÊ!áA}}JjjUMMGGÑ)9*2ÒX­o8¿°0%5µI,6F†‡k\Núl2¨>:‚}1mÒ¤3ÉÉ÷ëꌌŒB Ro×Ì+(¸–Ö$››™EFD\½~dDMqIÉ…‹ï×ÕÑét'GÇè‘#‰Æà¿¿“Ûvì€àà˜Q:vƒ¯{ðàBZ‘S>?ÀÏ/|øpõ’?™”T]SÃáp4”$)–.Ū¸•}üäɈáÇÖ›{SCtÞD­MPU]}úìÙûuu\cãÐÁƒ‡„„X $Y#Q>¿°ðàáÃïÍ›gme¥’³÷ÀÖÖÖ÷æÍÓr£¯&Àã*7yüøä ê<ðúk¯©ëV{ÿþ¶;ˆ‘põúõSgÎ 6,2<›š¶üòËÌiÓÜÝÜT‰ê{^Èo¢$:“8É]ëRf—·¬¯Šg‚€-^S‹H$ÀåjRª{€œ¿@+¯¤)•`#£G¢NŽÌ€3Éôì\Ú¤qÊä ôºHàìõ×P'Éå¨8Ëͧ%ž¢;9`Í-HÆeZØPLd@^íàaúûó•ÖVO.Ü{€ÑÒïÏW’'ÑØ„œ9G+« Éå`d¶6ø” ʧ´Oà¢"O5¾€obââì\xçaëwiÑÉd²²òòi“&"ŠÜ„SEž®ºÏŽööÐÚªÛt!UU]íæêJø `!š›™åêt4Ðgg* •@ uzÛùRV^ÞÜÒ1b„Æy¥R‰aX{GGú¥K Cå‰ x;'‡ø’Ñi´Û99êë§Mžlȵ2þÌ$&ùçˆßEFÖuÒ窓å¨ü¿W¢ºóîîìÉ7€0 ª½Ê_èÿ®ç\[PÚZöÍ­ï&œ’wA%ªMÙ6+åí•ÿíaê~´üøòÌO@>öÓ¤{»1{Øñð@áÀá;x î¶ÂíÑ'c.K ²ì–æ½D,ËQ¹ǬŸÀõÜÖ-<, Çñ[ÙÙïÏŸ4 ê<ø}çN‘hâ¸q,&3ëæÍ]ûö½ûöÛDóö_ññt:}B\Ëmko/)-EQT§qsóÿ÷Æ ‰9R;é––kkëÀ8N“Xœ~éÒþ„„wÞz‹½{ïÞÁÇû{{‰éH’SRä …ª}<ô™eP©Tštîܘѣ…ææy'NŸ677÷ñò"N8rÄß×7v̘‰äü… ©T_wAIiéÞÜÝܦO™¢P*SRSwìÚõÞ¼y¦|þè¨(·~ýýý÷ÌiÓ,--ÙºìàÚû÷ÿؽÛÊÒrlLŒ ×ÐØø ¾^ªP(Ž  >thÁ;É.¨”$/r±*Ò/]JIK‹3FÕJÔã{SCtÞD¥-—Ë=:",Lhn^XTt&9AÐÁƒ»TÆ»o+mmvR)œ>K3µâJÑw²K9ꌋþ¼qê ½þ!"4ÇÃÃ=Yžî‡CÏÎ¥Š|t¦­ ŠK­"ObÿA:âPoï@JJ=/¤>àA}½•Z“XYZÞ+.V*•†Œ±¹[\L§Ó]]\ºÕ¥ §.ª[”WV€FÒ‚¢¨F6 †êk¥Ó,!·3ß¹S.—3™Ì~..£££Í‚hõªÒ[·áVv6“ÉÔþ–ìÚ·¯²ª Œß|ã Uw•¥å¬éÓ÷'$\¿q ÆÄqã<ÝÝ ¹Ö:”yMùŒØ>Þ)Ž83Î1–øcÊ6¥!4gÞ“áþcbÆ8<Úþs˜õо‡ä4æú™û'Ûíëÿä<ˆP'©[wë›Åý1i|ÐO¯þÛÆHtfÌI‘v#ÿ=tÝͯŒJ0\ó^‚áXM[- ² "÷ËŒŒØl6‚ êDgÏŸ7áñfϘA<{.ÎοýñGZzúS¦(Šú‡ÇÇÆªn“ê¶AˆÖI»õëçÖ¯ñßÁÞÞF$úyÛ¶õõÄ-NMOY[O™8‘ˆ`nföëï¿«®%}fÔEÑqcÇMȃoÞ¾_P@<©ééövvÇ#bZYZþ´u«>9çSS-„Â7&O&ŠÎÎÖvóÏ?§_º46&ÆØØ˜Ç倉‰‰>MÎ$'ó¸Ü9³f¹Óh:•ËåcFvqv€~®®eåå*%IŠ¥K±§ÏžÍºysÚäÉêOqSìq !¹‰Ú(ŠQQQÞžžD*íííiƒ ¢Ñhäê‘gDyƒÑßÛ;'77zäHâñÌÉËõ¾r’š@D@Q4vÌ} E âäàPVQ€ãxYEEpPPæµkr¹œÅb•–•ÙˆD=0:ŸòœvWg}Ž¢¨¾»Ö¥L$·¬»¯EJч( —ƒB9y´{ň§;¦mÓž=OçqñÙ3”D‹3úÛHZ:múÔ'sbÇ Ž„õë;Ù¥u¦xôHôdFƒwßVª†þ1àã…åä"Ñ#ø®ææÓÀ¯?Fž„Bê‘ q¨—1ø ÷ÔûBê$R©¨³fÄá€T*å陬Ná;ý\\ˆ'‚\T—&œº¨nè/‘œ9wNdmMòÞ&ÁB(¬®©Q—ÖÐØˆ¢(áêè4KôÙ™gHHˆ£ƒ‹É¬½?ýòåßwî|ïÝw )ƽräryÁ;ÞžžÚ#bÇŒ‘J¥­mmײ²öìß?{Æ bFDíýû{p°· d0yGŽC¤¿·w—ׂ1ÃØGà½öÆ—mʶpÑ_óþ赡å˜üÛ[ë–*o«crâäæ"•ÛÀ¤1ãǪâOq™¼ëîžÜ¦¼ÂêBRj.|⿌ð$Îqì–üŸ Ô¹Oh“·ú \»{-Š¢¥eeCCCÕu7·«YYÀd2--,R/^”ËåÎNNä^œ)Ÿÿßÿ›$¡ôK—ò ÅÍͪ–à‡ V––J¥²¦¶v¤Z·•ÈÚZÕ‰Iú,3¨‡ÃQv"05mimU)¡ š›ëbAD¦z¯}Äå殼¢"lèP}oj‹EV––„’äÅÒ¥XÇýý÷½’’Ù3fhx=KzQCºui4šúÇÉÇÛ›h3³´° W$käÊ@€Ÿß[·JËʈv¸ìÜ\WO‘!5Éd’/.çâì|öüy¥RYÿð¡T*zýÆŠÊJ·~ýÊ**tŽÖ IN»«³¾Y[ë¼k†?]Ö¨^Ƨè[~ýýI±»»áãÆjZð( eåÈÐÐ'î‚€§;–yð(2“ öš='Éå`ÈåO®åp‚ƒ°”4º½ngÛIx€v㣴 quÁàvÍÅ71é" &,-ð i4¹œq+KÜà¡ßÏEï•”h wÔ¹ ×-Q*”JåC‡Jå[“&>B^à  c'NœIN>t¨B©{Ãÿr6©N¢8ŠbO­?R|ö£¾û2i»¶Ò–k;ÛíMí˜{‹ÿúÄoÙ߉ÜÆ\Íòf9&gÑ}§ë¥ÀœÓ©‘Û”eJGèK}?z×sn·ô|q úñCÖ×iÊçOˆ‹€‡ 7nÝ:—’bbbâïëÛÝ„²ss‡†††‡êå‰iUR©T=¾L&#Œ$òÐ.yfTA(ÜÑÑ¡~R"‘èT˜ˆÜÞ9r{G‡‘o|xl“µµ·wWIòbéR,›Íž:qâ¾øø„#G¦Lœ¨odšá)B/jtç&J¥Rõ5ˆ:$P«C¢9$Êøûù]¹zulLÌ휋ååá¡¡—5ÀÚÊÊØØ¸´¼ü~]ñrvqrÊ+(0åóétz_mƒÓ-õ8è¹k„ bH9t÷–õòSô±’’^8 Ñ t08 W޹K ü·”ŠBð÷ï\¥Å*Ðì\‹Þž˜!ª Lñ q(Zÿ¹y›v.…nb~OÅAµ´°Ð0mÔ×› † *,*rrtT9ä¢ÈM8 Q]‚¢hüáÕUU³gÌèåä¢aaCCC›šŒŒŒLx¼_~ûÍѰw]—v&Õ¦ AÏk‹+*+´º4&¤K¥Òªšáã½Bø|þýº:õÛPU]Íb±ˆzF~mwñxýòÃ(·)Ø4–{²› †crTÎgš¨Î*;¢!A)Ž•'ªãKš³Í}Í: GæÐ9¶á)5ÜLúy™zªÿz¦vw©»Ww3ñÖÍÄ[pà:ÿk kH.aÐéê·€Á`8;9•–•™›™Y…ê? -„ÂÑQQªÉFrÈÁqEQõ½ù……ê:ØÚØ””•©Î´µµ© /òÐ$ƒ`0lml ‹ŠTgôÍ'&"ÛÙÚæ¨ê[[[Yy¹¾m74 Ö™ÉÉÍU(º·Yy±"ÖÉÑñÍ7Þ(.-M8rÄ‚"O±75D›¨ †aêVæåç3 ¬'Ú+OàïëK ìÌÉÍõöôÔ^¦£—5A…³£cIiiyEÑ·àâì|¿®®àÎ;[[kƒô¸ž¨³¾W—£~× /‡.oY_Ïœð²rÄÜ ·vúõ¡6pÕ¯Ki~˜\whÙ9ˆ·'F0 @"•ž¿pÇãéûhŒ1bÏþý<¨P*S/^d0†ùÇîÝîÙ3$$„Çå6‰Å÷ëêÆŒÝå…$Åb XG‡YÓ§ïÙ¿ÿàáÃS'Mê²Ï$ÅÞÔ’›¨ “É 9â‘ä­ÛðÞ¼Gý!©i©éôE ”$¾“¿¯ïåÌCÓÒ IDATÌCÿÁd2/fd°Ùì¡jëJë³èªª«ÛÚÚÔ rQ$&œ¶(’t ñԩ¢¢ Û;:T,æffúöé"u¿®NõŒWVUݼ};hà@Õf ¹¹?!obb#1™ÌÚû÷¯ß¸Á71 }܇LúÜ Ã>¬:ï®vqvrúö«¯ˆÿß}ý=|ûŸ¯º¼ÊËÃ#hàÀ󩩉„XËÜÚÊjþܹÒÒNŸ=+‘HŒŒŒìlm‡Í曘\ÎÌ77ÝyS&N$¦ujËÁqœd ð„ØØã§NýòÛoÄ`‰i“&íØµKêîæ6eâÄ”ÔÔs))|“¡¡¡ê×’‡>³ vY¶Ú çæç› \¹zU_ï­«‹Ë›o¼qáâÅøÃ‡i4š³“Ó”‰µ×šÔ‡HôÎ[o¥¤¦&ž:¥P(¦¦ú¬R HŠÅp±öö³gÌØ³ü¡CS'MêMŠ=®!$7Q‹5y„SgÎÛŒŽŠ"íR=rÈ•'ðó;™”¤¾,º½¬ ÄØ$[byuAœïܽëÜyéU½©ç†è¬¯ÀIîšáå@~˺õ* xYã ÞQ^H£>K—Híx08¨Û¶~_É!ð÷ÅN&Ñù&¸‹óÛ$ ç›à—®Ðš[+K|ê$´Ÿ«n»_cò†Æ÷¤Ë¾@öÖÌ™IçÎ%;‡¢¨£ƒÃä TS¿H,ºÂ¢"‘ˆobb (N[¹%YU] Y7oª·°éœQM.ŠÍf?lhÈÉËCQÔB(3zô À'Ëßk˜%äv¦“ƒCn~~N^žR©äq¹~~Ç뛗øÏ€ÝûbÇD ôÏ}¤xA@XLÀåº _³ÿ\g(ÅóE"‘lüé§Èðp•…JAAAAAñùiëV_ßÝÓñ DQ<þûõÿ"£tì«Íùä³Ë–,L<•<{æ”ÞîÛ@AA¡¹\ž’–æêìlll,nnθ|™ÅbØ @AAAAAñ´YüÞ{/ (ŠÊm  x*Ðh´†ÆÆìÜ\‰DÂf³'O˜ ½\ÅKå6PP< †ú\ Š—š'nC]c#I<ŠkèêNQ÷‘‚‚‚‚‚‚‚‚¢Ïéù¾ ÿ(·‚‚‚‚‚‚‚‚‚‚¢ (·‚‚‚‚‚‚‚‚‚‚¢ t» ÷ïß_¹r娱cœœD"Qee¥zèœ9sDZÄÄÄ¡W¯^>}º¿¿¿‡‡ÇôéÓ¯^½ª~yJJÊøñã]]]¢¢¢öíÛ§ JKK[´hQ`` ½½½ŸŸß’%Kîß¿ßûLNj6k–æ¶túøóO£Aƒ,lm­=<º·Uª67r]] IOgmÙBíŒñÜØ¸q£««+ñ?==}Ë–-ê¡k×®õëõÒ¨ÚbÉ!OT]a Š—ã;¬E"k[[zm­úyö¹sÖ"‘µHĺtÉ9¬ôtnç׬ö™§”4 &k×Z>×ŵÉm'r‹Ž ®®ÎÆÆ&33>|¸xñbOOOWW×3fܽ{W=&‰ §!Š<ÝnÙ{]f!33s„ ÎÎΞžž .¬í|¯ O—ܾ¥}nCyyùÑ£GÍÌÌ ¤ºxñâíj|þùçM„VVVš™™}ðÁ›7o^¶lYEEÅäÉ“srrˆÐÌÌÌY³f¡(ºiÓ¦íÛ·;;;/[¶lïÞ½DèÆ‹ŠŠfÍšµqãÆY³f%&&Ž7®­­­ïó­‡ÚZúþÃ=Z–˜Øxøp_Î-î½Û›› ð+À¶üüü¾Òꟃ………‡‡ñ¿»ö½<%±¯¸±1'!Aý '>¼±!ôÀm諤_dÈm'r‹ŽàôéÓB¡088X¡P¼ñÆ/^\³fͦM›êêê&NœX__OD#7á4D‘§Û-{\Ô7¦L™‚ãøO?ý´nݺ[·nMš4©½½½eEnßR€¾Xƒƒƒsss`Û¶m¡·íÛo¿EdÚãµ&'Ožúè?.ÜÀÇÿߨQƒÿ÷¿/9ÎóV­ÛÈår‹õìÓ={öìÙ³Ÿ}ºÒ×_ç<Øþá‡Ä!ÒÒÂNJ’N˜`tàÀ+œô3€Üv"·èNŸ>=zôh–——wèСaÆ×<øçŸ^½z5teÂiˆ"O·[ö^—¢Á_ýell  1bÄü±xñâî–¹}Kúzh4Cç<`vðàÁGGG„B!ƒÁÀ0Œ8¤Óé4Ëåªâóùt:8T¿—$Mú8~œ&tt´>\˜˜¨i[çç3ÞzKàáaåädgž™ùÈŠýè#þ„ f0j”¹Hd½j• 0ÞyG`iooíëk¹d ¿±ñIá|ðéèÑæêÂ'N4›3Gs@ÔªU&›6q[Z‘ÈZ$²8в[Ùùè£'%Ù·¶fü°µµ5÷Ä ³O?]Û-!†C žÉÉÉ7nœ““Shhhbb"ìØ±ƒ¸ÑãÇ/++S¿$??ÿ­·ÞòððprrŠ‹‹#::Õ¥]¼xq̘1NNNÄ«Ž;æèè~òäÉ©S§Îš5Ëêdgg‹D"Uèï¿ÿ.‰¾ýö[â°¤¤D$;wÔÆü¬ZµjÓ¦M---DçãÀUÒ &L˜àäääïï¿yóf}åSVV6gÎOOO;;;__ß™3g¶µµé[PPðÎ;ïØÛÛûúú.Y²¤Qkyܬ¬¬1cÆ8::nݺU_¢Å ‹tÚ4FQ3;›8ä?Žs8²Q£Ôã0 ï¼c`mooéëË_²„öøµi²jwÓ&¤¥…\d9p ö™§”ô£ùù‚¹s-½¼¬íí-BC¹?ü 3-£ýû­íí¹›6"³O ·º´èZ[[ÓÓÓÇŒIII666„Ï666Ç?uêqHnÂiˆ"O·[ö¹¨¬¬¬°°0ÂgwwwÂnéMº]Ú·ÿLz»Ý[FFFuuõ¿þõ/óR©EÑúúú-[¶°Ùl•':kÖ¬øøøÏ?ÿ|É’%,+>>¾°°ð÷ß×)üÊ•+àííÝ-•’“Ù ˜Ž']¿¾µ¡öÕW¼ŽDÕ{—Lj‹3÷óSlÞÜÌåâ»wM™"8q¢Éß_±fM[d¤ü½÷L÷î{x(MLp¨­¥ûø(gΔðùXE}ófîœ9‚cǺ÷Ø/_ÞŽ¢o”’ÒŒî”znnî… ·åò=ª'“!“ýpê”OQQ‘jàMßÒÑѱxñâyóæ-]ºô?þxï½÷æÍ›—““³fÍ™L¶víÚ÷ß_õÉËË‹‹‹óóóÛ¼y3—Ëݽ{÷”)SNœ8áïïODhnn^µjÕºuëÜÝÝe2œ;wnáÂ…S¦Lùþûï¿ýöÛææfÕ@ÿ.ªðõõ555MOO'žüôôt‡“žžN„¦§§3ŒÐÐPõK–/_Ž¢h|||JJ 0ßŒŽŽŽ… Î;wéÒ¥'Nœøúë¯]]]cccµ çí·ßf2™?þø£••U}}}ZZšB¡Ð)¶¶¶ÖÇÇgæÌ™|>¿¢¢bóæÍsæÌ9vì˜JT{{û|°téRWW×Ó§O¯Y³A… j¤hxPPPP¼° ýú)äÄÇ+üý€/?Ølõ8ôÚZ¥dæLŒÏ§WTp7oÌ™Óxì´/_(jß’À`àFFgžRÒÀÌÎ6?^éåÕº~=fmM/)ah'Äݼ™·~}Ëúõ’™3»”ù”è®í”œœÌb±FŒ………žžžê¡^^^)))2™ŒÍfwi©‹zª:«£=ŠÅbÿ+++ƒƒƒ/^LŒ82<]}öí?œÞº 066Ž‹‹Ó8?mÚ4b&´P(Ü»w¯——qÞÛÛ{ÿþýsæÌÙ¹s'p8œŸ~úéµ×^Ó–,‹‰†êÑ£GwK¥~àúú*·nmFet´P5[éË/M¬­±øx1›@X˜<&Æ|ãFîˆÍÍ1++ ¬­Q”ˆ)‹Œ”ÿVøù)ÃÃ… oo¥á* ŸÓh k8·nÝR*ÃÕ|&ŠF\¿~]å6”·”P¥#‘»M{{û7ß|3tèP òññ9qâDFFñd¶··/_¾¼ººÚÎξüòKkkëøøx6› aaa1117nüã?ir¹|ýúõƒVÉß°aC`` j&€——WXX˜*´K*h4ZhhhFFÆòåË1 »téÒœ9s¶oßÞÞÞÎår322üýýyG¯ >ŸO£Ñ4²üÕW_ >""".]ºtìØ1m·A"‘ܹsçÇTÍ‘RÕ^m±‘‘‘‘‘‘ÄÿÁƒûùù…‡‡¨ÞP«V­;v,ááÇ7n|çw˜L¦z¢†Å‹ŒtêTî† ­kÖÐkjXW¯6®\IknV ‹Œ”=~m*Vúù ÃÃJooL Àù| ÑPµ×¬ö™§‘4ð֮Ŭ¬šŽÁ‰áÁ!!š à¸ÉªUF{öˆÿ]öø»@.óiÐÛéÔ©S#GŽ$¾/b±Ø××W=T à8.‹­­­»4áÔE=UÕqss»yó&Žã‚ÒŠ‹‹ …T*åp8‚Ðétõ.ÓÕgßþÃéÕ¬mmm'Nœ;v¬ªÇJÅwß}wôèÑ_ýÕÝÝ}æÌ™×¯_'ÎgggÏœ9ÓßßïÞ½œ:uê‡~xôèQË¥Réܹs;::¶mÛ¦ófëC*EnßfŽ+%|ðõUöë÷ÈXW(Œ V\œ”ðA`ôhYf&S§4â’ ¸B77+GG«Q£Ì ¸¸·îV·På…;žñçÈÝ#½O‘Ëå>˜ššZYY1BåÍ»»»±ø€B¡ÈÈȈ‹‹S½&=z´ú(##£àà`Õ¡T*½}û6щIЯ_?•ÿcˆ@u®_¿.“ÉòòòZZZ>øà‹EDÎÈÈPõ´’eu×ÅÛÛ[çªFFF?üðÃŽ; p'‘©P(6lØáæææèè8jÔ((..VE`2™êo«ØØX±X¬j#Q éVPPPP¼°H'L µ´°SR8 ¨““B­9‰Q(¸6#"¬ÜܬÍG†Úkó¹$Èå¬+W¤'âú¦¢¨éûïsl:p@¦fF?½ìèÎc÷m'…Bqþüy "7áº%ª7:kðÎ;ï}ñÅb±¸¦¦æÃ?$ÆC›ìíí«««ÿýïw+]ûöN¯ÌßãÇK$’7ÞxC;HÕžúúë¯6lݺuÿý7|ùå—¦¦¦;wî$Fq >¼¶¶våÊ•qqqª±kr¹|îܹĤ—n©ÔÒ‚`*¬¬¹ b1¢PÀÏ?s·n5V…b‚êïøì3“£G9+V´ ¤àñp±‰‹3—J»¥T¯ ¤Ó·(;ß,v~ðà9ªcñãÈ—¤,Ù˜µq¢ûÄ^v8¨ÆÐétõ3ĦT*@,+ŠŸþY}\>†a¨Z™òx|¨î t™eu%ét:‘AmöíÛ·~ýú 6444XYY-X°àƒ>@tùvŸ}öÙÑ£GW¬X1hÐ '‹ãââ¤jµÇÄÄD½cA(% .¤»BAAAñ‚™›Ë"#9ññ̼<é”)ÚL>ûŒsôhÛŠŠAƒp‹Íãâ />º½IinŬô.ËŽ´·³Ïœ‘‡†*‚‚žMv´é™ítñâE‰D2êñ4@ÐÒÒ¢A,#bjj ]™p¢žžÎ̘1£¶¶vóæÍ¿üò DEEÅÆÆ^¸pdý•.Ó%±oÿáôÊmØ¿¿½½=yƒ.“Éôòò"¦ÀÀ½{÷jÎ;×ÒÒBLÌW(ï¾ûîÕ«W8Ѓ¥ô‰±@--l¸ÖV—‹¡t:,XÐ1s¦Ä@‡q-ê˜?¿ƒ8,(èTbtºfs³L†µ@wŸÑ£C—ÉdSÎf.?>ÊÍÍM=æd÷É›nl*n.>r÷Èïħ1jÁ‚3gÎ4ü¦19¸©©‰ðé»+ÐÛÛÛÜÜ<===''‡pÂÂÂŽ=jggÇd2kµ'õ{{{bÂôÝ»w÷íÛ·nÝ:kkë©S§jÇó4’ÆY,yh(çðaD¢·ÍQÚ´o+%E°pá#•ºÊN_ÑcÛ Çñ¤¤$õ1ï½öZmmíåË—‰ÃÚÚÚ‹/ªÆ‘˜pÚ¢ž’Îúàp8ÞÞÞ666ÇŽ+,,œ3gNÓÕgßR€¾ÞÇ '//’““-,,¬¬¬ÔÛnãããq×îÁyë­·ˆå&+++÷íÛ×ÒÒ²lÙ2"tÞ¼yï½÷ÞÌ™3‰åhSRR–.]JŒ{ùôÓOO:5{ö솆ÕâYÎÎÎtÈùä“öY³¿þj¤þ¹‰¾…<=• òçŸF(Y,Üǧ3ª9Ζ-ßÞ½{wøðBàc; N5§,±ÌcŠæ2JÏ¥ÃaÍš5ãÆ›š9sfccãwß}gii©¥Ö]aaaŸ}öN'Z|}}y<1OZg|OOO‰DòçŸ0€ÅbùøøžÙªªª¥K—ÆÅŹ»»+•ÊÄÄD©TJ¬¡-vĈ{÷qppHLLܵk—†4ccã/¿üR,÷ë×ïôéÓ k×®Õ˜݃¡   xaÁY¬æíÛu‡Ñhò#Œ÷î•ÅÄ œÄD£Î¯M¥§'"‘ýù§rÀœÅRúøhŸyJI·­^m6nœÙ„ gY[ÓËÊyy­_}¥GÒ´¿ÙŒ‚ ÄÛ¶“I.“Q\,1¢}éÒ¶ÇËõ£¢ !9™8änØÀûßÿÒÒ”— Õ€Üv"±ènܸQWW§nëOš4iëÖ­ï¿ÿþgŸ}fll¼iÓ&>Ÿÿþûï¡$&\VV–†(rK²[ö¹¨ÜÜÜ]»v0™Ìk×®íß¿öìÙªõHªªªBBB/^LLo0$]}ö-èsP7ožêð³Ï>€èèè={ögp qÖrÙ£¢¢:tèÐ!‰Dbnn>xðàmÛ¶ 0€0a‚ [·n]¼x1Š¢...k×®UâÈÊʀݻwïÞ½[%pîܹß|óáYŠŠ’ýúkówßq×­ãÙÙaï¿ßi§Àþý•IIßÏ]µÊD,¦ Ø€ŠwßÕÛ~°iSó'ŸðG޲X,ß¾]Ÿokk»uëÖªª*æååµmÛ¶ððpb7mÚôÉ'ŸŒ9’Åboß¾}ܸqêÒ¸\î/¿ü²råʼ¼<¡P¸zõjíÕW{P /)Í›6ñ?ùD8r$°Xòà`ñöíæj¯MYLŒdölÞwßÑÄbL$ª¿ySûÌSJZáç×xü8oýzþŠHGêà ѵ ˜"8¸éÀ³éÓóç7ÿö¹LÀq@QP£ÑyNBD ]{º²H,ºS§Nùûû󯯬B™Lf||üêÕ«W¯^-—ËCBB¶nÝjmmM„’˜pÚ¢È-ÉnÙ{ä¢LLLŠŠŠ>,—ËÝÜܾüòË·ß~[ÇqEUaºL—ľ¥vïKˆE,¨Oñ"#Y@MUíášK›#ŠÔîpPbÊᆗ6—þùÓ3ëpè%b±800pÅŠ:f Š—lje©În ŠaÆM™2åã?~¡DQ<þo럑QÍ_?Ÿ|vÙ’…‰§’gϜҫX)ž 4-pi dmÌÂQÍFˆç2á»´··¯^½úܹs7nÜ8vìØÔ©S©ýÛ)^=Pýæ›o:::0 ë:6Å3$##£¯ ý>Eñ"C¹ /%î“ÝM]L›‹›ï¹«:Ù}²‹© 1ÃáÙëf £¸¸xÉ’%±±±ÿú׿Ž=jffö¼õ¢ èc Å–-[Ö®]+‹)Ï‚‚‚‚⥆r^J^ö6›½gÏž¼¼¼ššš;wîìØ±£é|/ Š—ÂU8{öì÷ßßÜÜLy//O¦D«¦¼P¼àwÊr‘å­o57Õ_¨÷›©¹ðð"ËE?Þú±¸©øBý…™~Ôzÿχööv¸xñâ!C„BáÊ•+‰}Kž·^݆úz½¬Ð´Ÿ€Ô/RqLG‡Ãç#>€/R¿Àpª“‚âyâêêšššºcÇŽ7¶¶¶R}/#”Ûðã?ÛßÌÕ¬áNCîþ\íÐÙþ³]Í\ï4ÜÙŸ»ÿÙëFAA¡EQooïóçÏoÞ¼ù—_~ikk£< Š—Êmx‰¡1h#V=îpÐ5ÃaÕˆUðEê/æ  ŠJ¥Çñ€€€¤¤¤o¾ùfÇŽíííxWk±SPPPPP¼Pèvjjj>úè£!C†!RVV¦Jì÷¡j錌Œ×^{ÍÆÆ†Á`‚×^{-##Cýò¤¤¤áÇóx<6›=`À€ßÿÝÀt{Lt4ÄÆù—_ÀÙètz›îºu ÚTþüyøöÛÞ ÔÆÖã‡::fùÏ":äèû´_!Ö­[Ç{|«ÎŸ?ÿmç[õÉ'ŸˆD¢ˆê²>“< ¯ªÍ†|âĉիWïÝ»—ò(þAüô ÐéPUÕéü‰€ € pá‚Ar´?¥]~\û*i>ù þF< Î;÷æ›o:::2™L‘H4wîÜššU¨!–Umm-FKOO€Ìž=ÛÜÜœÇãÅÄĨÇìò³¥Ež.¹Ît™…‹/†‡‡›™™MŸ>½ºººgeEnßR€>·¡¤¤äÀB¡pÈ!Ú¡+V¬8¨ac½þúëDhYY™P(üôÓOwîÜùßÿþ·´´422RµozzúرcQݱcÇÁƒûõë7oÞ¼í7{'O÷PU‹C\\ºÔouzï6ܺu àW€mÙÙÙª“wã¤6 IDATT‡CŸ`eeåããCü×vz,м>“? ¯J¥RµGiXXØ¡C‡V¬X‘ÐÑÑAyÿ ¸\س§Ó™]»ÀĤzà6ôUÒ/0ëÖ­ËÏÏŸ?þŽ;æÏŸŸÖÚÚJ„bY=zÔÒÒrèС …bôèÑÉÉÉ?üðÃŽ;jkk#""êêêˆh†|¶T¢ÈÓ%×YrQ™™™QQQ8ŽïÞ½{óæÍ×®]‹ˆˆhkkëAY‘Û·ؽ/¡©© WEQâÏÆ ´´×ÏÊ•+)))ÑZ]]M£Ñ>þøcâpÑ¢Et:½¡¡A•‹‹Ëˆ#z®áDEácÇ35À³²ú$YüË/q.÷Ñÿ•+qSÓÊiooŸ:u.ŸïðÀB>ßkæÌù„Áã8ª@ì÷ãX“½'[ûZªè÷c?X{²÷ô0ùgˆT*}Þ*à+W®4í|«–/_nmmÝQäõ™üY x5 >] mmm …Bu>11ÑÔÔtß¾}Ä<‡ç¨!ų`ËûmÜÇçÉI±çpð9sp<%Å 9ÚŸÒ.?®}•4 Ë—ã=úFô………ê‡ ÿÏÞ™ÇS•¾ü¹û½ö%!¢EÉ’ÊE‹BQƒ´i™4Õ$%4m´OT3mZÑ¢´˜ ¥¤Œ=mÂ/QMr¯²ÝË=¿?NN×u\E53çû¹Üw9Ïû¼ï9ç=ï{Þç}üöÛohP’‘Õ„ æÎ‹ È‘#G 55úô)“É Bƒ’<¶0QÄåë,±¨‰'ªªª¾}û Þ»wB¡lÞ¼Y¬¨.•K<¾ý§º9-#W’_HèæºººØ“ ÐÑjƒäþ…Ball¬MÿþýÅfPQQa0Øþ?F£ÑdßOñ©Tª¼¼}€ÁUU˜=^½ú ÊÛÌÍ?ng®®¢%ÂÆÀã½[ÕÔìZuüü–\¼¨R__ S__tîœÔÂ…Ahê—JáâP—Já†wË‚j±“——gmmÍáptttΞ= {÷î8p ›Í¶±±)++ÃRXXèâ⢠ Àáp¬¬¬2°/-%%eĈ'(è]¥âââôôôØl¶¡¡áùóçœpvfñäææR(tÕöìÙC¡PÖ®]‹=zD¡P._¾ 8Ë¢ÀÀÀ7òxhmm ˜¡N§#«úúú´´4WWW¸xñ¢††Æ˜1cÐ$MMM{{û . AâÇ–ˆ(âr‰uXTvvöرc¥¥¥Ñ žž62ùœr;ßþ7ùÜazZZÚÿþ÷????‘ø¦¦¦·oß–••-^¼˜ÅbÍ›7Ÿ?>›ÍxúôéË—/###‹‹‹Ñz7qå xzÂСpílØ?ý÷î}H-(KKàráèQHJMMppxדDF©S—/Cy9¬[PUÆÆpð ܸQQ“#fVÐ)ëÖÁÒ¥ + ååP^ÙÙ]86???99§¥ågÜG6èÍÍÛ.\¸~ï}ÅŒ½•t”jÔfï#ÚÛØ[GIçAíƒ]Ù»º¬º8||||}}ÏŸ?¯§§çååtîܹ¨¨¨#GŽ”——ÏœùáK–––\.÷èÑ£IIIššš¹Xß Àår7mÚôäÉtÚpùòe//¯áÇ'''‡……­]»öîv*ÃÔÔTAA!55 ¦¦¦r8|N§=Ⱥuë–.]*++[^^^^^žýþT544xyyMŸ>=11ÑÅÅeÍš5 íç£]¤Ó{Ëåíܹ³ººzýúõÝR(ÉW¡­­­õ=X¤‡‡ÇîÝ»çÍ›—ššÚÒÒBÎHþý  pìØ»à±c0}:°Xå!xè¶”JþpýÌ¢ 7F‚êjˆŽ†ÔTX³¸\1mÚþþÁÁËìÒÓÓÀÈHôƒNqåÊ&“éàà%%%øTCCÃ'Ož477ƒ-¼¨ÕŸÏg}|*Y,Vqñ» Ÿ eõêÕ]-·£ñ-‰#%ŒN…¼½½¥¥¥ß¼y#oee… WQQÉÌÌÄ'ݺu û´‡Ã9uêÔ'”K€…bjŠ`ËþyyÀ#¥ñ㤩é]P(DÌÍW×wÁ´4ÉËëPxq1€¾·úî;dذ2ØÚ"S¦¼ûß-FJ’Z€ˆü¤¥çÿúë¯X¶¬­Y¡Î oã·µ²5k+„3œÉoãŠ8Б}ÚûUݺº:Ö¯_?̾èàÁƒPYY‰Ç¯££Óô¾Å…B¡¹¹¹ëûG¥‰\!#GŽÄ‚< P(“ߟBb"¸¸¸ØÙÙ!ÒÖÖ¦¨¨¸|ùr:Ž^®žžž#FŒ@³…‡‡K¿?Ub”àúõëXŒ®®îôéÓÅ–ˆ…ÑÑõLp/ …`1æææJòÍ‚)¡X×ÜÜÜÖÖfhh(õ …¢¤¤”••…7a"!ù·Z =}ŠìÙƒ¨¨ òä B¡ ™™È¥KD–B"ÝO6Rúü¢ÇŒA @Þ›j¤$"‡ƒ$&v¨ŒˆÌ ¶¶V[[ÛÔÔuà†§£'‘§§ç´iÓÐÿ***žžžøÔŸþª««Ñ ñ/ªÓr%ÑYQfffúúú˜µgmm-“ÉÔ–»¢¢‚F£­Y³¦«åv4¾ý×ÐFJòæÍ›sçι¹¹aVÑÑÑééé§OŸÖÓÓstt¼u럛›ëèè8lذ˗/_¿~}i}æL·ùùij‚»waÚ4 PÞŘ˜ÀàÁïþóù–Àf¿‹¡PÀÙÞ›±ˆÏ‡°00299`³aØ0€ºK_‰ÀêB€Å÷4­ßvgßö©ß[|Ï 1ømü}wö}¾>222vvvèuuul®¯§§¨k>ŸŸ––æááÁ~ßâ ÅÙÙ9×âRRR–––X°©©éîÝ»®¸÷1ƒÆ6K"ÏØ±coݺÕÜÜœŸŸÏårW®\Éb±P£¦´´4lV’*; 8jNïccc,Ø¿ÿÏ/”ä«€®3TWW?~Ayóæiiimݺuÿþý'Nœ8pà‡ÃÁ/Dükñò.®]ƒãÇaÀxÿ†ñ=÷Ðýœ¢[Z =fÌG¼ð¶6˜9bcá÷ßÁÅåKTGMMMnnn qqqxÛ!ø|þÕ«W]%[!~luIÔçè,Â’%KîÝ»÷ã?¾~ýúéÓ§³fÍB-BQÓ&mmíÖÖ֨͘ÄåŒoÿãÐ;ÏÒ1ñññbWp°777]]ÝÕ«Wÿù矰jÕ*EEÅÄÄD:öööÏž= ðððè– <…¢žÐÔÕßý©«¶mƒíÛ?¤¶µA[Ç6ÿK–À™3£F¬,ÔÕ•47¾¦’2bÄ-  õã“ÕB¥¦ZY-ÇÂt6Ýa³CrPòè;K-(´¦l:{³Ãæ ä è;ÑK-–Ò(Ÿrgb`„(4 ƒÞ~訮®N lÛ¶m;®ÅEŒ¼eee)¸‰Ç …½zõÂ%ˆg̘1---7oÞÌËË:t¨ªªªµµuZZš––ÖË—/ñ3N«ŒW’N§þ ¯Ó{AdÕ•J¥’#Ë(mmmÏž=›6m—Ë2eÊüùóÃÂÂèt:jK¡P úzŒ„ä_N¯^àèÇŽA~>x{‹ÉÐsÝÏ)šË…¶6"/«oßÂ¥K0z4Œù…ªÓŽ–––©S§æç秦¦êèèHxTjjjcc#¶{PQQ‘û±ñU]]…BQPP€Î["¢zNgæÌ™óìÙ³M›6EEEÀ¤I“ÜÝÝÿýw‘gh—Ê%ßþÇù¬‘ú‘#G´µµ‰_Ù2 CCÃòòr4øàÁcccô‚C6lØË—/¹bm»Ž¼“óƒ§çä!C†àsZX ;ŠNµ—`€îp8Utª›Uìt³T```>Ž¢¢¢{·¸¼¼<•J}õñ¦±ÚÚÚOhddÔ«W¯ÔÔÔÔÔTt’0vìX4Èd2­Ú¿mú‚ôô½@òíPUU5eÊccã!C†ìÝ»—ÅbœýAõäÉ“ÌÌLÊÇ64"ï}ëêê²³³¿·êÛ·o~~¾@€€áöíÛ²²²òòòŸ¬ ÌÍáúõ155ð~c °Ù`gii £C†|ô‹P|>ÈÉ}ˆÙš¯¡ÿû¼w<‰±°X€«t×8xp§‡_VV`Ѐ¬>g&}÷/ÛD²QéT›`HHëR)Ø&"Ò#¾Ø7Øl¶]ZZšŽŽÎéè‡cnnŽùm€‡b½XWR(;;»?þø###›6äåå?ÞÂÂBJJªý!,Kðɧª+ôô½@òíàåå5jÔ¨€€€àààÝ»wóx¼eË–åççÿõ×_---_[;’/‹“¸¹A@ (šÔéC·ý£´K×O.šÅ‚Ñ£áäIhlìPøèÑpõ*$'ƒ§ç;•:­N7ÑÚÚêéé™’’’””Ô¥Ï^!rñâE¼Y‘‹‹KUUjUUU)))S¦LAƒ­ö¢zHçŽàp8FFFqqqÅÅÅ‹-úär;ß’@GFJ‚ ¾« àêÕ«***êêêø·³GE¤ý Ž‹‹‹–––©©©´´tEEÅo¿ýÆãñBBBÐÔ€€€3f8::.\¸Éd&$$$''£–-’”Û)ë׃“ìØ‹Ã߃ŸßG΢¢ÀÚÆŒE‹@C¸\ÈÉ¡Ä:·¤RÁÁ„)S _?HH€ýû?Êàî›6Ah(,_/^À²e@ïÀìËÀ!:ÌÍÅœÉzçp8œcÇ¢KKKõõ³@HÑÊùáC†œh¿Èjìmœ±1]p0ö-ÃÛØ{cÆFtÁÁÛXÜmemm=f̘E‹ihhp¹Üœœ¡PHàNtݺuÎÎγfÍš;wnmmmHHˆªª*ö.¶«ÇŒ³dÉfcc¦¦¦²²²iiiëPWYí000hllŒŽŽ677g±XÆ]:UC|=ß $ÿ(ŠƒƒÃœ9sŒ™L¦‰‰ÉÞ½{ƒƒƒMLL233­¬¬Øl6ùp"ùÁbA|¼ø¤Nºí¥]z¸~NÑÛ¶ ØÚÂòå ®eePP»w”ÇÚ’“aâD˜>ââ€ÁèDæƒ``ÁÁ|¹š˜äç¿ †…AX””ÀÇnCEX¸pá… üýýÿþûoÌážŽŽŽ‰‰ >‰nß¾]SSƒë÷ÝwÛ·oŸ9sfDD„´´ôÆåååW¬X¦<¶²³³ED?‰uXT~~~LLŒ¹¹9ƒÁ¸yóæáÇýýýÑc+++¸jÕ*t{ƒ$åv4¾%yG{OJbß¶NÆ}2M(öë×ÏÚÚºýÖì={öŒ9RVV–F£©ªªº¹¹åääà3œ>}Ú‚Ãá0™L}}ýíÛ·còè´\ 9sÑÕE˜Ldà@$:Zôso¥¥ˆ§'¢¢‚ÐhˆŠ 2iråÊ»¤öž”ª«''„ÍFääGG$3@bc?d8zéßa0==ääÉ=)µ¶"þþˆ²2B¡ ]­Ð;PJ‡DAÄzÈ;œ ¡{t÷[Å|CêpÞaÝ=º­ÂNütDûoŸikk/[¶ ¢Ûß322°˜ÒÒROOO¦¢¢2iÒ¤+ï[¼£/©>}ZWW—ÉdêééÅÇÇ[YYy{{K"°=¨ýæ4 AÀ9ƒB>vÔÚÚêïﯬ¬L¡P444Ä*‰÷Â$^T§×3Á½Ð¥BI¾Y7lØ““S[[‹ºaMII‘““³··WVVÞµk×ëׯÉϽ‘üûÁܵGÄñC·ý£´Ó‡kw H^âìŒÈË#t:¢£ƒ„‡¿‹ùÜÛ­[ˆœ2e ÒÒÒ‰ÌÒR þp¬b`ð!¸~=€”–ŠQ‡ˆËT”%K– ©O¢U«V q‰ ÏŸ?Ÿ9s¦‚‚‚””ÔøñãKJJð©=¶Ú‹"~ë,±¨²²²Ñ£GËÊÊ¢oúöíÛ‡ïTQ#ùU«VIX.Áøö_ƧyR¢@ìÉ'G{ÉÍÑH¾èIzbÅ-8[…¿èýòúñ멱SÛ/8´ [õ~Ñ{üúqìÔØ/¶àð™¼~ýZKK+<<ü‡~øÚºt¶¶¶†††í^hnn¾~ýúõë× Ð ìÛ#!!!é9† âíí}õEòeX·aËXûq’äLMùcù²IWS|fº–'%’¯ `6@À ‹t‡CâìÄôˆt£F".•гgG¤GÌ0šñ™.•zˆ·oß®[·ÎÞÞ¾W¯^•••[¶l‘––öõõýÚz‘t*•*##ƒ~ta±XãÆ³´´¤P(ÒÒÒ ãëjHBBòŸåþýûß (’oÒwÇ?o€b"aëR ûhô—t©Ô%ètúÇgÏžmii¹páBmmíôôtee寭 I—¡P(T*¿uB¡°X,%%%EEE&“Iîj !!!!ù§@Nþ‘  ÐÞ)Ò7èR©K°Ù줤¤—/_¶µµ½~ýúܹsº„»ÁHHHHHHHHHzšFJ/^¼øŠzH†*¼?Sã´{õz@£àñÜÚ}-Buœªœ¶\íƒÚ¬YƒÜ‰¤ŽS§-§ý öÁ¬nƒÜ¾Œê$$$$$$$$$ÿ\ÈÕ†*t€ JZZØ.•J§ûaܺ‹Å,8ü0숺%DÚMBBBBBBBBBòä´áŒ{S“v[[~ÍnŸ:È}œ¶¯Œ÷øÂc1Çr×–Ó.ã•]x|¡}* rÚð†°üý‚ƒØÖ¿_p·Ãaù°åu7êÛÜá@BBBBBBBBòí ~ÚðüùóàààÉ“'kkk«©©=}úŸêçç§Öމ'¢©999^^^ÆÆÆƒöòòÊÉÉÁž––6eÊ”ôíÛ×ÞÞþäÉ“øÔW¯^-]ºTWWwÀ€3fÌxôèÑçWÒÃCÑÛ[Ò¯R9Â17ïÕ§êàÁ½?³Ü;¤ x'$3“¹gôg lÏ´÷ ‰b¦½_pH³à0mÐ4tÁ!ñq¢ä%îØ±cÀ€èâë:;×ÿ6lØ`ddôŊߣîÂÃÃÃÛû³>ô×*33sÏž=øÔîm¢””ôÂëß¿ÿ„ nÞ¼‰%9rÄÜܼOŸ>ƒFcˆ¯ÒO¾†‰ûI±šÜ¾}ÛÕÕµ_¿~ººº ,¨©©Á2§§§‹ˆÒÓÓÃR‰[¯SMHH¾AA·ÔÔb×­»+¿cGрߖs??¼½S¿¶Aü,îtT/^¼PWW¿}û6t6 ë´KÄDk•žž¾xñb333MMM##£eË–=þüÓ*ˆgîܹjjjÍE\A‚~˜ð[¢ñTVV&&&š˜˜˜››gee‰¤.]ºÔÝÝ VTTDDD888 Á§OŸ***.Y²¤W¯^ÿý÷±cǦM›våÊô©vûömoooSSÓ;w²X¬¸¸¸åË—#òÝw߀@ ðôô|õêUhh¨´´ôÎ;§Nš––¦¢¢Ò#µoGM mÍ9?¿Fw÷f&Sô ýç™Élù²´eQw£¦èL‘ð½zõÂF9Ä× ñ¹&é9ðçèÛ¯Uffæ¡C‡¾ÿþûž(èØ±c+W®œ8qbXXN/))©­­E“jjjÖ¬YãçççîîÎd2¡³«ôs®aâ~²½&ýõ—»»»™™ÙÞ½{›šš"##ÝÜÜ®_¿.-ýáuÆ 444ÐÿèQ’@¬ É£¹¹íâÅJ6›vî\ùºuft:iïÐ=?‹‰Ge(×®]SVV>|8ñ0L’.uçέvìØñæÍooï¾}û>yòäÀ·nÝJMM•‘‘éj1’““³²²ˆ?†C\AIúáÿ8⧠Ç/..€´?CæææøàæÍ›)ÊôéÓÑà´iÓ¦M›†¥ºººš™™%$$ èùóçàøñãèG©Ç7räÈøøxôš;þ|IIÉÙ³g­¬¬P5,,,öíÛ·~ýúnªo'TVÒ„B˜1£ÙÈHÌ—Ì¿M&½~½fî²§¿ç¬kµ¡B£ý:nœÅöíál6M”»#Ýá0hš¨K¥iƒ¦íÈÝîp˜6hš8ñ¢øøøøøø ÿ‰¯âsý™ðù|ɇMÿ,>¿jøsôíðe´zúôiHHÈ¢E‹Äv•••B¡pÆŒØó²Ó‰ •â~²½&‘‘‘ §N’’’“Ñ£G>|xéÒ¥˜[[Û!C†tµMˆ5!!ùb\½úôÍADÄðµk拉U§ùµ5êø|!“ùEgDÄÏbâQʵkׯO¥R†a’t‰˜(b­"##ˆ æÍ›wéÒ¥3ftµ‚( ?ýôSHHHHHA[3%é‡ÿ㈿²©TI¯x¡P?bÄ---±”••étºPøÎ]F£R©Ø¼J¥ÊÉÉÑhïÞs'''«««£çÔÕÕmll®^½*¡2—.±­­•µ´zÛØ('%‰ZïÜ»G÷õU<¸·¶vogg¥Û·ß Ñä\]`Ü8%55ÕY(-¥Ï™£0t¨Š¦¦ª¡¡Ê²er¯_hœ%KäÇW Ÿ:UÑÏOÔ *$DvçNéúzŠššªššª©iw.ž,ø‰ŸÔê ø1ûß¼)¾|YqåÊ hê—JÛÅïp@]*m¿»]ÂxSâë„ø\£f·oßž4i’–––±±ñîÝ» ¤¡ù322µµµÑ;|É’%ãÇÇg›:uªŸŸŸ$©¨¨ðóóÓÕÕÕÐÐ044œ9sæÛ·o¯]»¦¦¦VXXˆÏéáá–Ò©Î÷îÝ›={ö!C455GމO---uuuÕÖÖ9PlÕàÆNNNÚÚÚƒ òññyøð¡È!i‚£šššöÖ)X§|ïÞ=__ßÁƒkkk;;;£ËÓ—.]²¶¶ÖÒÒ²±±IJJê¨ ÕÔÔ°cûí755µÍ›7£Á'Ož¨©©]¿~¯UHHÈÎ;ëëëQ}LMM;m¢ötÔÔ§N …€u;(®®®0nÜ8555ôÑB|•§vÚ†"ý¤XMrss­­­Ñg 4¨ÿþí[¾±±AÄ/„æææ:::jii™™™ÅÄÄH¢ É—$.®LGGnÎ]55©3gÊrÞ»Wçë›6xðmí“ÎÎ×nß~‰Æ76¶ZY%NœxE xww߸Q­®{øð(-åΙóçС šš' ã—-»ùúu &sÆ\#£øÛ·_NštUK넱qÂîÝÅøB/]ª´¶NÔÒ:acs1)骄IÎÈxîèxU[ûäúõ¢&X=äc6h7*€7oÞdff:::BgðN»D¼(b­ðs1btd$I7oÞ¬¡¡1sæLâlÄ”°þ/ó¹⬬¬gÏžyyy‰Ä777744TTT¬^½šÅba3Qooo6›½víÚêêêW¯^íÛ·ïþýûþþþhêýû÷E>ì5dÈÊÊÊ––˜”–¿¿¼AëéÓÜ•+6n”yøðâJI ÝÉI‰Ç£ìÞÍ;~œ«®Þæî®PXÈ€Ðз11<8q‚{çΫ  ¨©¡éë·FEÕŸ;÷:4ôM^£ý¬ S‚‚æÌi”‘AîÜyuçΫ+W^wUBG߸Q hþ·pDoi‰¼z5eš6H¾¿<¯Œ÷輘"ÓMë/ß¿ŒWvþÑùîÒ …ø\Ç[¿~}xxxaaaPPF£/ IDATÐÏ?ÿL|sòx¼àààœœœE‹uªÀÓ§OÕÔÔ"""ĦΚ5«ªªj×®]—.]ŠŠŠêß¿¿@ 7n\Ÿ>}Ž;†e+//ÏÌÌœ5kV§:Nž<ùùóç[·n={öì²eËêëë19 ,˜2eÊÑ£G'L˜ RÙöUûóÏ?¿ûî;EEÅ£GîÚµëéÓ§ÎÎÎUUU]j=•L»ví¢P(†††PRRâääÄãñvïÞ}üøquuuwwwl¾”’’âïïo``púôé•+Wnܸ?iÁchh(//Ÿ™™‰333Ùl6>H§ÓGމ?$((hΜ9222wîܹsçΕ+W$i"<M}ûöm}}ýsçΙššöéÓÇÜÜ<&&g‡††¢ƒé'Nܹs'((:»J‰S‰ÛH?)V“ö«LL&óþýûø''§ 0`Μ9ø¤†††%K–Ìš5+!!ÁÕÕ544tÿþýjBBòÅxþ¼1=½ÆÕµ?•JqqÑþý÷*/6gII“Ó5¿{·åñãcÕÕ¥ÜÝÿ(,| RRô˜›’’º-[òàï¿›¿ÿ>küxÍÙ³u ¦¦Q__1*jÔ¹sãBC‡åå½òó»—Ìãñׯ¿>¼°Ð#(ÈøçŸó°éAJÊ3ÿt¥Ó§V®ºqã_ò$Q “r'8Ø4'gê¢EúÝÜvÝAG£2HIIa2™£G†Î†a>Öñ¢ºDvv6à·lu‰‚‚‚£GnÙ²…B¡ˆ$‰Œˆ+(I?üG¼‘’äœ9sFJJÊÙÙY$~úôéèžeeå'N` ëzzz§OŸöóó;zô(°Ùì½{÷N˜0Mår¹è˜CAAA.—«ªª*¡J‘‘Ò††­11<ôâéß¿ÕÁA[‹ —UUÆÅqY,¬­ù'*íØ!}ø0WIIØ»·TUÛúö}÷ê}ìØ–±cßMZ,,FF­¶¶Ê¥¥t=½VÉ[IAA('‡P©€‰í.òóó[[mD¶%0ÚÚìîÞ½‹š’SéT³@³´ei©KS¹ ¢PEw8š.K[¶4u©Û 7*¥Û–V‰Ï5ðùüíÛ·£;1fÍšuòäÉ‹/:99u$ÏçoݺÕÂÂBB( FÿÁhjjzðàÁ®]»°¡˜b>>>{÷î E-,cccedd¦NÚ©Î6lèÝ»÷ùóçQó0ôÝ FCCÃÆmllÀÎÎîæÍ›øÊ¶¯Ú–-[xøða:fff#GŽÜ»w/ö"_’Ö£Óé:::èÿêêꈈˆÑ£G¯Zµ ÂÃÃUUUãââX,X[[Oœ8qÇŽ‡€ÈÈHCCؘ´ îß¿¿ƒƒƒØM·T*uäÈ‘YYYAAAB¡ðæÍ›~~~¿þúkCCƒ´´tVV–±±±ˆ­ª‚‚‚œœ•JíÛ·¯äM„‡ ©Ÿ?þâÅ‹;v¬]»VSS311144”Ïç())õîÝTUU±¢‰¯RâTâ6Ä#ÒOŠÕDGG'//A´Í¹\nYY™@ hnnf³Ùrrr‹->|¸´´tQQÑž={œœœRRR°Ž±±±1$$dòäÉ`aañêÕ«;vÌ™3GÄÌ·£›„¤§9{¶¼­ quí®®ý(½p¡bÖ,1»°ÂÃÿRUåÄÅ9°X4°¶V›8ñÊŽ…‡Û€‘‘ÒÚµf6䎭}F£îØa‰8vlŸ±cû ÿ-,z)ÙÚ^*-åêé½{ÙÇç ·o¥¯¯³f >yòñÅ‹NNZYhh¨có~ä ëàp7r R •¼uë ‹Ïõ¤Òst4*€«W¯Ž3íLj‡a>Öñ¢$‡Ëå¢Kè"æÒÖÖ¶bÅŠÙ³gc;ñˆŒˆ+HÜ‚nÿ>>kŒøöíÛË—/Ož<¹ýf‘-[¶$&&îß¿РA3gμ{÷Ýš]aaáÌ™3Oœ8ïááñý÷ß'&vÁ“1ÍÍ”‚ÆäÉÍØ„ÓаuàÀwƒu€’•ÅtvnFç @¡Àøñ-·ow¸F  DEIÛÙ)ëèôÖÒê=nœ”•}ît«i7µ¶«¡¡FÌžllWCMCwz èô\ËËËãor---Ô‘B[[–Ãá >\r455Ÿ={öÓO?µOâp8ƒŽŒŒ ãr¹ÕÕÕßÿ=jE€®Î›˜˜¬_¿~Ò¤I¶¶¶K—.=}útmmíÁƒ±Ã þ‰ëääÄårE^’I¨ IOpæL™¾¾¢ŽŽ˜™õÒÒ’‰‹c§$³²ž;;k£tx÷˜ÖÄùûëÙÙ©{{§Þ¸Q½g•’ ;6*ªÐÎî’ŽÎi-­ãÆ]€²²«¾òòLt΀¢¥%óüy47·ÔNž¬…9( ('¹J}øðowÎÊAjjª„®Õˆ;Ì.‰Âhnnž={vccãľæë”ýû÷¿zõêÇ›J0hq?LŸ¹ÚpéÒ¥¦¦&OOÏöIØJÓ¤I“¬¬¬""".\¸áááòòòGEÇC666555ÁÁÁÎÎÎT*UAAo×\.—B¡ÈËËK¨R}=E(tÑ£wï¶÷Ò(ìÛ'#…¥ …”F«WË&&²W­zkn.‘A¸\г³Rs³„êô8fff4Ú€ÖOe •šjaᇅ©ïVÈhˆñQ@§¾;VCF£u#>×ÐÎ •Jmmm€üü|ô¥) 6v”‘‘i¿þøÉœ?ñUJJ܆xúI<3f̨©©Ù½{wtt4ØÛÛ;99ݸqCìþxSSÓäççc1²²²ø…eeeàr¹Ÿ  I·SPPûð!/0Ð3Lš0AóàÁûeeõØè…Ëå Â}ûîÅÄÜÃ"…BhkûðX§PÀÃc`jjµ¡¡’¿zõíÄÄÊU«LÌÍ{ÉÈ0¸\¾³óµææ݈ÈNe*•ÒÚ*€úz¾PˆôîÍÁ§bAIT’‘¡wßÓ©GèhT–‘‘ÑÔÔ4nÜ84•xFÜaŠˆ’>Ÿ?{öltrÿþý?¡^/^¼Ø¶mÛÆÑŽh¤@ àñxÒÒÒØ«7 â v©þoòYÓ†Ó§Okjj¿Md0C† Á†;?:t(þD:ôúõëõõõ ºººyyyøÃïß¿¯­­-ùÚj T_ÿÑíûæ ýšœB£¿ãÌ™M <{–½xqãüùh°´ô££ÑDw'¶´PºÓs+1úúúãÇLJZÞÒ€ølvà”)ö˜uÊׂø\¨««+á­Ý |Œ¦¦&ºéöÑ£G'OžŒˆˆPUUõðð??¿©S§þõ×_ÇŽ377—ÄÚR^^žN§¿|ù²Óœ’ //O¥R_½z…|õêq»uÄÖ­[¯]»vòäIlÅÝÄæïï/v÷jA$Ò±¾yó¦£WÔzzzJJJ™™™EEEè$ÁÚÚ:11QCCƒÁ`HnT&!ÄM­««›››‹¿*ˆß_¥©ÄmˆG’~eùòå‹/.//WPPPWW·³³1uÃÓÚÚŠŸe½yóF `3Ôç¬È#¹&$$Ý ºzç΢;‹ðñññOV¯6ÁÇÈÉ1h4Š¿¿ÞÌ™>Â^¾lZ»öŽ‘‘RqñëƒïÏŸÿÎÞæìÙòÅ‹ °`i)·# "ÈÉ1©TJ}ýG{-Þ¼HKÓ%Té„ȨìÚµk£FÂ^ÎÈ;LQ"æÎ›““sæÌ™OþnOUUUSSÓòåË—/_ŽEž?þüùó'Ož;v¬HþNÇ™]ê‡ÿƒ|ú²KeeeNNއ‡‡È `‘—m</77¯hhh Ü›þõ×_222²²²0a„ššš[·n¡I555]Zðb³‘¡Cééæ…/^Pïßw‰³Xˆ¥%?3“ѯ_«ŽÎG?±Ò„B(22Þ(\¾üÑF]]øì sHP_O™W`0™ˆ g|ºFE…¹¸¼‘‘Ñé ½@FFÏÍ­uóæu=RXW >×ÈÈÈŒÀAS]]ýÙ³g˜GˆúúúÒÒÒ®ê9hРõë׳ÙlÌ¢cÔ¨Qºººaaa·nÝòõõ•D“É9rä¹sçšš$‘Àb±LMM/]º„ÝM/^¼¸y󦥥eWE]¸paÇŽaaa¶¶¶xù–––™™™ýúõÓù`³ÙC‡MOOÇò¿xñ‚`O…B±´´üóÏ?oß¾MŠ‹‹¯\¹bffÆápÚÂd2Ÿz?7õ¤I“ 5õÃGšRSS{õê…}î@â«” •¸ 1:ê';‚Ífëéé©««_¼xñþýû˜[0‘…—ŒŒŒÊÊÊaÆa1 99 ^¼xQAAo¾ÜUMHHº @xþ|…™Y¯sçÆã††JññOD^½±X4KKÕÌÌš~ýdttäð?4‚@@ÀM&“š0Îß_/<<÷Þ½: @(#óá|ù²¨7¤Ž`³iC‡*§§0Ó}ñ¢éþ}®„*}ãŒÊINNF¡ÃºÄö¢ˆimmõ÷÷ÏÈÈ8~ü¸ˆ“è.1xðàsÃb±ÆŒsîÜ933³öù%gvÔ“@G« ‚\¾|JJJ %%¥W¯^½{÷Æ¿8Œ‹‹C¤ýz·¯¯¯¦¦¦¡¡¡””ÔÓ§OOžv¸””Txx8—Ë8pàµk×6lØ€7[’\’îå?ªêêZ6l0·´üȵ‰Ï U«nß¼ùÜÊJ jîârmÚ´?fͬ®.Åãñóò^ …l 11÷ÒÓkΞ'/Ï\»ÖìæÍ füþûd6›6z´ú‰'NìÛ·¯LRÒÿŽïÿM,+V{{§îß_:{¶nmms@@Þ¢‰X%I(+«=úb` Ñ?Ecìí“ %åׇ¨¨ÂíÛ ÓÓ]D¬¶$øYL0*û믿^¼xëúÄÜÜ\QÄZ­\¹òêÕ«>>>µµµ˜Ó¼~ýú‰ìWîT”¬¬¬È 5¦¢¢‚EŠŒˆ+HÜ“@GÓ†¶¶¶yóæaÁÕ«W€ƒƒÃñãÇÑAâââFŒѯ_?‘cíííÏž={öìÙ¦¦&%%% ‹˜˜¼[…tuu¥P(111K—.mkkëß¿ÿ† °‡ƒÁˆ‹‹[¿~ýúõëù|þˆ#bbb$÷¡ô^–ýûy[¶HGDÈhh-úh°AkròëmÛ¤CBd¹\ª‚‚ÐÄD0wn‡oˆwîä­X!7fŒ2“ Çóý•ëâòáC FF­»vñ"#eöì‘îׯuùò†Ž¶=LœØâãÓ´e‹ —KUSæåýÝ¥JuÊ AƒÀÚt^¼è^É_'Äçº[022ÚµkWddäž={úõë·|ùòfÜ @¤­­Mì^X99¹>}úÄÄÄTUUQ©Ô!C†8pÿ>ÞÙÙù§Ÿ~òôô”Ü#„‘‘Ñ¥K—¶nݺjÕªÆÆÆ¾}û~εlmmOž<‰:Ã5jÔ45»öu¤Ç777§¦¦âß¾3æÔ©SÉÉÉÛ¶m ár¹ &&&sçÎEóØÛÛï߿˖-NÝQ»—¡C‡¢/éi4Ú¨Q£’““;²‡™8q¢Ï–-[¸\®šššÈ’q§45…B9räÈÏ?ÿ…Ž¡wïÞMp"ˆ¯RâTâ6Â~²=²²²>ÊÒ ÄÏb‚QÙÕ«WÕÕÕ±c‰‡a]b{QÄZåææ@lllll,–göìÙ›6mêj‰ W¸& ÄžLpr´ïÒ·H¾ jjªðü¹ø‰šª*<ï`Ú£ Ÿ/lŒ<_Ø¡+žÿqqq™™™_}‹ IO`eeåîîþÃ?|S¢H¾ ¿Äk/ÑþõÔ”?–/[t5Åg¦û7äH”„ä[àÑ£G›7o?~<9g !!!!ù·’••õ Š"ù–!§ $$±fÍšììl33³-[¶|m]HHHHHHHH¾Èi ÉGÄÇÇmHHHHHHHH¾9>Lººó˜äkA|¦z.•„„„„„„„„ä? ù¹l’N § $$$$$$$$$$$@NHHHHHHHHHHH:Aü´¡ºº: `Ô¨Q‡B¡TTTàSÑï}ˆ€}@:++k„ êêêt:]AAa„ x·\ÄÇ@FF†­­­”””¢¢¢——׳gϺ«ª©÷S7_Ý,yþñ+Ô‚Ô:J¸!³T¦;ô"ùj¬X±BM­ÃSܽ888899u鈈™î¼ÆRSS7oîÊ-@Ø>Ý® É¿–½{B ªª>Š¿|( PàÆ ‰ä¤¦‚H'Ö>¦‡Š&`Å øR±\¿~ý»ï¾ÓÒÒb0jjj³gÏ®®®ÆR‰Gt(555T*533^¾|éã㣤¤$##3qâÄÒÒR|Îääd‹ebbòÛo¿u$Џ\bEè´ ’%)÷Ê•+£G–‘‘‘––>|øÏ¿BþEˆŸ6ööíÛööö‚ÄÆÆîÞ½ûÎ;vvvo߾햪vuÚðo"??ÿ.Üͅܯ­ ‰¤ôîÝ[__¿ó|ÓÕi Iw"- "Ÿõ=v de» ᦠÝUô7LDDĽ{÷æÏŸèСùóç'$$X[[¿yóM%Ñ¡$&&ª¨¨XZZ ‚ñãǧ¤¤DFF:t¨¦¦ÆÎÎîÅûÏÈfffNž<¹­­íСCñññœ7oÞ¯¿þ*Vq¹Ä:‹@,ªKCÇNËÝ¿ÿäÉ“•””vìØ±wï^++«¿ÿþ»£vû"Þ«¥¥%z•ìܹ3--M$Uä´­]»–B¡`ßßþî»ï¾ûî;,ÕËË«oß¾±±±¦¦¦ª¤¤tõêUiii077700øå—_V­Zõ9•ü/ÓØØè7ß/9-¹iP ðç„?Æ;ýó+‡ÃùÚªu™––‹õµµørøûûûûûm-HHHHº 77ˆ…Õ«ßy<¸x¼¼àÈ‘sÑ=Ïþýûuuu± ‰‰‰»»{||üœ9s ³Ê… œ©TjlllAAAjjê˜1cÐc¸mÛ¶ÈÈH8uê$%%)))€“““ŽŽNllì¼yóÚ‹".—XgˆEuièH\nEEE```PPZ_’öˆ_m R%Ýó  cccmllú÷ï/6ƒŠŠ ƒÁ …’›=vìXôÄ€žžžŽŽÎÙ³g%T¥ìï2×_\—)ÒÐU—«NÚ5éMó›ÀÓ/oä5ñ(ó)”ùÍ5 èY‘Û>·>+ú00T—«Î><ûÕÛW"Ò²Ÿdøy{[k•Öö?¶wThaU¡Ë^…ÎbŽÕf«ŒG]Ò¹çð›ïwñþÅzÇz­@`'¨ŸT®ðÜÂ¥ {¨8Ô¬%//ÏÚÚšÃá`§oïÞ½d³Ù666eeeøC ]\\8Ž••UFF†ˆ´”””#Fp8œ   4>..NOOÍfž?^Äþ‡@ XŠŠŠlmm9Žººú¦M›$Ô­¨¨ÈÍÍ­OŸ> CUUuöìÙ¯^}tñÄÇÇ£Jêëë'$$à“ÊÊÊ\]]étºªªê¤I“ľbÁ[¡M‘‘‘1räH6›Ý^ÕNånܸ‘Çã¡–ššš’Ô²³³GŒÁf³µ´´¶oïøèb³“üçðõ…{÷ 7÷]0>8±Þ,*77èÓ PU…Ù³ë”aãFàñÞijЉ顢Q aêTPVtt`Ãñe> lÜ(‘Ìî?kkkÀ u:ÑÕ××§¥¥¹ººÀÅ‹544Ð9hjjÚÛÛ_¸p Òh4&û~•†J¥ÊËËÓh4±¢ˆË%ÖYbQ]:—{èÐ!¡P¸víZ;p%ùÜ-ÑiiiÿûßÿüüüD⛚šÞ¾}[VV¶xñb‹…Ÿ‰ËçóE^'³X¬âââ.©4eï”ÊÚÊ#³d­Î:8ë No~+óº¥c—ʲeË7——o.Ï^“ UuUÆšÆ}ÞøñFÔô¨œŠ×_\ñ¢Þ¶¼õþÕ{¡í” ¯á^AqA;þØÑ¾Ä‚§–›-¹Ü£sŽ&}Ÿ¤©¨é°Ý!·2·}Î/L~~~rZr‹iˇóL…f³æ —/Ü»w¯‡ mhhðñññõõ=þ¼žžž——WPPйs碢¢Ž9R^^>sæL,sAA¥¥%—Ë=zôhRR’¦¦¦ƒƒCnãr¹›6mzòä :m¸|ù²——×ðáÓ““ÃÂÂÖ®]‹¯K§Ûkëåå5}úôÄÄD—5kÖ`C|bQUUUÆÆÆ¼qãFTTTNNÚQ¢\¹rÅÓÓsèС׮]Û°aÃO?ý„WrÊ”)•••GŽÉÊÊ:xð ŽŽŸÏï´a¹\nPPÐÎ;«««×¯_WU±ò×­[·téRYYÙòòòòòòìììNkoß¾õöö^¸paJJ z*wìw t±ÙIHHþ‹  pìØ»à±c0}:ˆ¬!WU±1<7n@TääÖ)­[K—‚¬,”—Cy9dg‹‰é¡¢ 7F‚êjˆŽ†ÔTX³¸\1mÚþþÁÁËìÒÓÓÀÈÈHÂüW®\a2™PRRb``€O544|òäIss3ÌŸ?ŸÍf<}úôåË—‘‘‘ÅÅÅbEõ¨Îxˆ‡Ž e5¶ÐDXnff¦±±ñ‰'úöíK£Ñúõë·}ûvA>A«3±'êêêq C„òòr±©‚x{{KKK¿yóF$ÞÊÊ ®¢¢’™™)á±fffúúúB¡ ÖÖÖ2™LhllìHZ`Î:Ü>)ø|°ü÷òÇ?+†yPXUˆƒâ‚`6KF IDATœÍ=‹eðýÍWi™¿• HxR¸ôi4~üŽñ:ktšøMhP(šG˜»þâ*¡Î’€tœŠ "‰*ó@ä'm,ý믿bÙÊ^—A(@(´ [?SCtdŸ––†ëêêЯ¹¹9xð TVV¢ÁñãÇëèè45ášÎÜÜÕÕ/Mäú±°°9r$|ðà…B™5kV[[tÅhJŠ)¥ßGÃÅ {S÷=+BçˆüV~Ø¥0£P#¹ï娋ØÃ‡Àƒç° Ãy¨3tæþºáuñ³b!i÷Ó<Ì=Ø 6C¡Pœ3eJ¨sB¡P:Í£%¯…þ9UtêóK”‘‘±³³Cÿ+((¨««;88`oôôôu\ÀçóÓÒÒ<<<Øl\Ó9;£ÎP¤¤¤,--±`SSÓÝ»wñoÄŒí–D`{mÇŽ‹ ÑÅÊNEñùü°°0###9996›=lØ0xðà¦ä´iÓ°Æ711sÚßØØØÞB ŒŒŒlll<==¯_¿Þ«W¯öËCb3gNXXؾ}û”••µ´´„B¡»»»¢¢b—6Â^ ¸b«k–fjÜçÇ>[®méhä´ää’Èß#çÙÌ»¾üzÞº¼Ô©Ð,hÆ2Èsä4T‘U€× ¯ñBêëm‚m×¶±±±_xRxmC­ä:÷#FŒ =§ˆy^PŸS­p=&J?<å0D¤G´!Ÿ{o`ö…(4 ƒÞœ­­­PWW'¶mÛÆÆ^[û¡édeeñ3' {õê…/ J"°½¶xùt:]BÝ–,Y9oÞ¼ëׯçå奦¦ºŒ‹*)âºT]]ûåÊ[[Û°°0ccã>}úlÙÒá%ŠGä. R©¨ªí‘\>A-Päåå Ü- ¢¯_| t½ÙIHHþ£ôꎎpìÄÆ‚··˜ K–@d$Ì›ׯC^¤¦à:¥¯S4— mmD^Vß¾…K—`äH9ò U§---S§NÍÏÏONNÖÑÑ‘ð¨ÔÔÔÆÆFl ¢¢"÷c㫺º: …¢  «V­RTTLLLœ4i’½½ýþýûÇ€nÕs:‹ð CÇŽÊUVV{{{,fܸq\.·²²òÓtû÷!Þ“’„9rD[[Û:#ƒahh˜ŸŸ/á±!!!+V¬xüø±’’’†††‘‘ºaEr´•µÌ>¥5¥¿eþ¶úìê>ò}|Fù´Ïy"ûÄŠ +–Ù/CƒEÏŠD2ðšxüV>“ÎDƒ¿ù”¤•ðyä9ò4*-p\à\ë¹]Òó `llì<Áùì_g›ÍšßÍ…À¾Ëôtó2d>§·±÷ÆŒjœ*:åm,®?íЭTsçJÚtòòòT*UdÛnmm-ºfõ ?Y·'N¬X±bÙ²÷OQþX*•Êãñðùy<¶°¦­­}äÈ(--ýí·ßV¯^ݧO1—è§!¹|‚Z`jóù|tÁP?t¨ Œnlv’?¾¾0}:… ¶Ó;qV¬€÷´ë”¾NÑ @§ÃóçJ–—‡¸8˜<¼¼àôi ¿\õhupðù|ww÷¬¬¬ßÿÝÌÌLò/\¸`kk‹Î ÀÀÀàÎ;ø ÅÅÅ @½/>xð`ذatú‡¡#ºòÀår•””DDõœÎíéÒБ \ƒììlü‹6tF$¹ÍË¿žOoˆ'Oždffúøøˆ˜Áˆ,åÔÕÕeggcÄÇ¢p8### ¸¸¸âââE‹}š†zêz‘‘§¸ºXt– M€¥ !¿/Ç–ÃbÎæŠî»´ .\Ä‚qw㔤• 5 ñyØ ¶®]Úý4Þ:CÔ†àŸ¦v÷r0ú ‡©‡l’,ó“™NcSÎÞ»E²Ñ©ô`›`è¦ a³Ùvvviii:::C>¦£C8޹¹9æÕ>|XRRòÉ?M7¡PÈçóåäpÎiªäõë×±˜šš±;ûõôô"##9NW÷ýKˆˆ|‹%ànÂZ ‚‹q·@\œ’’’¡áÇ·@÷5; É¿''psƒ€8P4I(>pˆtJ,à:1ñ1=Q4‹£GÃÉ“ÐØØ¡ðÑ£áêUHNOÏw*uZn¢µµÕÓÓ3%%%))‰àã íAäâÅ‹x³"—ªªª?ÿü VUU¥¤¤L™2 öíÛ7??ÿ¹}û¶¬¬,ºkNDTé܉Ë:u*\»v ‹¹zõjïÞ½µ´´>_ÃâWApõêUuuu¼eËÑ£Gio¡äâ⢥¥ejj*--]QQñÛo¿ñx¼|žŽŽÍÏω‰177g07oÞ<|ø°¿¿¿£££äõ©¬­œsdއ¹Çµ!­ÂÖ„Ü„&A“ƒžô1hä7F߈6ïg΢³Œ5ôfœb:¥Ÿr¿„Ü„ýéûE¤I³¤W]U×X7Xupb~âñìãÛ§oÇ›-¡DyDYo±³mÌ"»EŠÜFnNyŽnrëÐEæƒÃá;t¬´´tµþj  Fk Œÿ=xpָݒÂWYpˆŠŠ²¶¶3fÌ¢E‹444¸\nNNŽP($ð.ºnÝ:ggçY³fÍ;·¶¶6$$DUU{ð ?A7*•êààpðàÁ)S¦ôë×/!!aÿþ.žõë×;99íØ±cñâÅÿý·ŸŸ¶ZZYY9gÎ!C†´¶¶&$$455}‚ß‰Ž o``ÐØØmnnÎb±Œ‰kÒÒÒ«V­ª««{öL[[ûÌ™3©©©ÑÑÑäjÃG´÷¤$7wÇœÕ " ûõëgmmÝ~köž={FŽ)++K£ÑTUUÝÜÜrrrðŽ-++=z´¬¬,:¦Ù·o¶5^B¸\ßß|uÖè00Ø‹ØæægîœA“ZÛZýù+*SæS4Vh RÍ­vÚíÄ^Ä–û^Îq§cæ£L˜±·bÑüAqAªËU³Ÿd[l´`-diþ¨™‰„÷¤„ HiM©ç~O•Thþ4•T&íšt¥èJ—4—„®zR ¡¡š—w84öìÑŠsšt8ï0„‚îÝOv©¤ªªŠÑÖÖ^¶lD7Çgdd`1¥¥¥žžž***4MEEeÒ¤IW®\éHÊéÓ§uuu™L¦žž^||¼•••···$;ÕÖÓÓsĈ’ˆª®®vrrb³ÙrrrŽŽŽèöߨØXìØ3gΠJ80::ÚÞÞ½ƒ¸\®¯¯¯ŽŽƒÁ`³ÙææægΜ«žˆ'%bU1ä·¶¶úûû+++S( NkšmaaÁb±455##q·N½.5; ÉÌQ{DÜUW#NN›ÈÉ!ŽŽHf&€`]kk+âï(+# ¢¡!>¦‡ŠF$/qvFäå:ýÿìy\ŒÛÀŸYš™öUMŠB¥] ET²¦H E’µ.®º?Ütu/"ºÖn]ÛEHö²]*”%%$Ù"D5­SÍöûãÍÓôÎÔ¤,çûéÓgÞsÎûœçyæ¼ï<ç=ËË30à­^ÝœŽí¤Äçúuž’Ïӓר(Ffa!€·|ù§sÍÌxffŸ#"x¼ÂBÊ ´e*Æüùó±\œˆ.,,ÌÖÖVHÚÛ·o}}}UTTäääÜÝÝ s:dgg'++K¡PLMM7nÜÈápDŠÂ$ñu_~èøüùs “°ÞªªªùóçkiiQ(sssì1÷wIûvR"`݆±£\%ŸŽ†è*°)]­­žÅæ{µ¶´6’ +9Ë·m3©¨x:~ü¾–l.Ûd›ÉÓŠ§ûÆïë´)©¨¨èÙ³çêÕ«þùç®Ö@ ˆoccc???ìíf_(Dçð[ä:×á’”L»ôßâ9)g/Móˆ†]~,ˆDòàÁËàÊ•(^‹5 ]²Â¡­ÔÖÖ.^¼855õæÍ›IIIÇ———Ÿ>}zWë…@ Ä·ÄÇ;*Ðï@Qˆ¯Ômøá°´ôSS3øðáQ¾¨·4øYú¨`+:_7I “É?4hPpp°žžÞ•+W°MÓ@ _ÔmøáøÖh4ZJJÊ»wï8NEEűcÇúâ®C @Hϧ”ÊÊʺP„dhÎ7¥…› ÀÏÕÒ®¤¤÷á㬬xCà Be†k ×SÒ{ôáQ|Vü„¹@ ˆ4Úð#B$’mm€œœOè%Ò@&’¶ýbrb¸-r@ ? ¨Ûðƒbh8QII¯ªªèéÓ-s'NÔSÒ+ª*:!*@ ñ£º ?(D"ÙÖv148ˆXá°Øv1ÄäÄ|+@ ‰ènÃÛ·o—/_>fÌ===:þêÕ+Á\z FމåfggOž<ÙÒÒRGGÇÈÈhòäÉÙÙÙž éééžžž½{÷îÑ£‡««kbbbG™šù,sË•-’—<i±Ö¢µÜM›zÿÞ»#ôê2 ½?8œl™ëmè 8œ•ûͱiÓ¦Þ½›¿¯ÌÌÌ-[ÚоrMüÜQìÙ³§ÿþÝ»w722ê„ê¾-"##-,Z½K|Ó:àˆý¶¾÷v´Ø¶Þ.:ÿ çï:ýM|r»viÑéZÝ»“JKÓ©/jÑéZt:åÚ5IäP23å?ÿ:Z¦|¡ªqPŒŒìÖ¥÷ib6Œ²²2mmí›7oÀû÷ï,XзoßÞ½{O™2åÉ“'‚%Åi|QøZ]¹reÞ¼y666ººº!!!oß¾mÍ@üÂø !eŒŠ ‹L}ñâÅÉ“'­¬¬ú÷•%”»`Á‚‰'ò‹‹‹£¢¢ÜÜܰÃW¯^©ªªÎŸ?_CC£¼¼üßÿõöö>sæ ö „îÍ›7ýüü¬­­ccc©TjRRÒâÅ‹y<ÞÔ©S¥75óYæ®»Y(½¨oŽû÷ïç@<055ű‡ôôœœO$x 6à’“ãiàIú<÷›CCCûE€ÌÌÌ]»v-\ø¶A3;„ÒÒÒÿýïþþþ'N¤P(_¢ Ä7Ç·Û$Ô¼M·‹Î¿FŠŠŠöíÛwîܹ–Ú~åðäähÉÉuΤ%%ñµµJ dfÊíÚ%(¡eʪúkFš˜ ãܹsêêê `±X“&MzÿþýªU«äååcccÇŸžžÞ­[7,H㋺uëŽV›6mª©©ñóóëѣdzgÏâãã¯_¿ž––¦  ÐÒ@üÂøæ !MŒŠ€Öº  ¸ÿ>ÄÇÇ·üú÷ï/x¸víZðÓO?a‡ÞÞÞÞÞÞü\///›äädì+Á?÷øñã°ÿ~ì•ÕÇwpp8räH‡t~L˜Læ¢%‹2®e462¦d w¾1z#FCCïÜÜMØ CCo¡s½ ½7ånÂV8x·Èý¶˜6mÚ´iÓºZ hjj‹/D‡›ùâÅ .—;eÊþƒç¯Ä“ˆ.äÛmjÞ&;ÿÙ¶m›µµõ·xI6ŒM;r„»ª«©çÏ7xyÉ>üWÝ H³aœ;wÎÝÝH$&''=zÔÑÑ“lgg·}ûöˆˆ,Hã‹Â×jÆ }úôáš™™ž>}zÊ”)- Ä/Œ_‘ÒĨhm’‘(éš.—{äÈ{{ûž={Š, ®®N&“¹\ò´<—D"‰Dyyy¾JJJ$RÛžsWûðïûG_ßtÌטûîõ­m¬]™º26#¶º¡š¾‚N_A·Ž¶€Â²Â™‰3û­ë§û›®ùó£!õBÒr_厊Õ3¢§Íz›¸¬¸Ö*}ðöÁôýÓ¢ŒôVéyÄ{Ü|q³M:9-YtþùùšÑ5,gk(«fLMê£Ôeÿ[†å l©´Qä lK¥9%_áðàÁƒ€€ccc]]]‡ 6ð³222ÆŽ«§§ghh8mÚ´Çó³°ùùùãÆÓÓÓsppHII€]»va-ÄÓÓ³¸¸¸Ýåùãø+W®Œ­®®Æ­­­ÅZ„ÕuóæÍÑ£G÷ìÙÓÒÒróæÍ‚ÄÚuõêÕQ£FéééawÞ¶*_XX8sæÌ~ýúéêêš››‡„„TT7T!3KKK[Ž´òoÇ<˜>}º‘‘‘žžž‡‡60Ý’E‹yyyÀðáÃétúÊ•+wFŽX|âØVwákR\\ìïïß·o_sss__ßÚïÝ»G§Óùgíܹ“N§¯]»;|öìN¿xñ¢ þ^^^zzz-ÛF»}"Ò½­]YíÖA¬X>‡ÒÕÕ…ÏÛ€X+N:åääÔ³gOggç3gÎøøøøùùáØ(RÕúúzGGÇ‘#G²X,,%##C[[{÷îÝ|.]ºäêêÚ³gO›¸8Ñ÷j¡ÖÛší’ß.:ð‘¤e“É|(ôUccãôôôÆÆF*•*6HÕ&nܸ&&&^Xäï{ûbTHßm8|ø°œœœ‡‡‡PúO?ý„­2QWW?pà€±±±$皘˜:tÈßßïÞ½@£Ñ¶nÝ:bÄÉõa²˜Þ=úËû¯‘&ÍKXF7Ÿ®DS"ˆ=Tz𠻺¸º`Ÿíôì,º[8ov.,+4Ñjn‹õMõ+G¬c6+ð¾îý¦ŒM3fÊd+]}aµ–¢VR@•L§ÞN#ãFnÊØ´Ûw·äš îܹÃÖdê3`£ÅÉÉÉÁº D"ÙÆ&4==$-m¡áá³^;™Hµ IY¶`‚á"ALŸ>22RSSóøñãØ$(,êÂX·n]Ÿ>}vïÞýôÚØØ888lݺ•ÿ·®®nÍš5ƒ [[[SSÓÔÔÔ¬¬,lVO]]Ý’%K^¿~­££Ó¾ò***JJJD"±GO-@ H$œq­¦¦¦7bËBf̘‘˜˜xêÔ),0kWSSStt´ À6)ïââââò±¡ÚÙYXX8;;âÜ4Éd²öùÍ›7QQQC† €Õ«Wkii%%%Q©Tprr9rä¦M›°·‚¨©©ijj€––– »D"V,ŽÅØ&wáhÂd2=zô×_ñ—¸‰¼½‰D‡¬¬¬%K–p¹Ük×®ùûûÿóÏ?uuuòòòYYY–––ü ¸uuuüñÇàÁƒ`èС׮]ãÛ%O„À¹²¤Ñ_,ðx¼•+Wîß¿çέ݊q¬ˆ‰‰±±±á/)666vrr)D¬ª+V¬ˆŒŒ2dÈŽ;H$Ò¦M›øç²X¬?ÿüÓÌÌ &L˜p÷îÝM›6Íœ9SFF¦µêÄÚ­Ü.é¨kD– wïÞ%"3´&Drá@ƒ|LLͪU¤7o(ÙÙË—«ª 4º¸4~¼°ììØêÎÎäÂB¶‰ WE…§¤D"GÀÕ-S¾DÕ ÉÕÔ¬<~œG£´l0<žâÊ•²û÷3vîlüèa|™È˜íìٳÆ Ú%ƒÁÀ0ñQQQáñx CKKKl&(Jr 6f(4ö%}ahå÷½}1*¤ì6ÔÖÖ¦¦¦Ž;–?bÅgݺuÕÕÕo߾ݽ{·¯¯ï¡C‡„fŒ‰<÷Þ½{¾¾¾ýû÷Ÿ9s&…B9uêÔÂ… ‚§§§„*ÉÊÈim¸´¡®±n`¯ÆšÆ¡µÂ,kóåͧ N—0JšØMXbÑû"~·A†$ãnü©]Ž5›”—ô°ì¡Ew A!Yϲæ:ÍÅú @ Üûºï¼Ñ¶A’/Žù| ½ÓÓC ®®TAAG(×ÛÐ;$=JëJuZä ÒÔÔtãÆ… b?Â466Þ¹sççŸæ?®£Óéƒ º&°……¼¼<€²²²¦¦æ!Cø+ àíÛ·ün@[Ëã ««ûúõkœÊÊÊü¥äгgOlIì’••0`€À6)Ïb±6o’>Æ IDATÞ|úôé’’’¦¦ µ¨H’g-õõõÓ§OWRRŠ'“É,+++kîܹüÛ:@pwwo똞’ˆm͇’(¹»ð5‘••522Ú°aC]]ÝÀ[½?899­^½º±±ññãÇÕÕÕóçÏÿ÷ßoÞ¼éââ’••%8ûV^^^0611Áì’Ò'‚à\YÒè V,‡Ã™;wnzzúáÇEFÕøV444ܽ{÷ÿû?«OŸ>­-Þ•Ä]AAA—/_öóóc±XIIIjjjü, …"¨¡³³óßÿýðáÃÖF6ÄÚÞátTË|ûö­’’’ÈîPkB$Þ 4xy)FDPÓÓÉùù==–õ¿ÿ X,¹Í›i§O“JJàãÝ€\T$}œ-MÕ„¦&Êu òZk0Žòܹ”ôôÊÇYMñË™ÓDÆ],+--mÍš5’HÀÒÚ$ŠOCCC@@@}}ý‘#GÄNJoSa ‘¿ïí‹Q¿?Ò.ý'¾ÐçHÕm8}ú4“Éœ4iRË,þïýèÑ££¢¢Nœ8!öÜÕ«W+++ïÝ» Â\ZZº|ùrÉç®%NOŒ¾“ó!僦¢fР ùNóEÞ%ÃO‡ŸÌ?æÖ¿GªƒÉðˆ÷h`5ð (RÔåÕ€Ád a0,kûÕíq™ŸfÓryܯáu666¤õ$à~¾†…Ä·DÁ‡ßDbs3hÙg€º¿ÏUUU{öÖ2‹Ëåjhh&jhh`˘0äääsI$’` vƒ`³Ùí./ B똉D"&Y»Z6¿6)ŽÍýèß¿¿‚‚ƒÁðððhhhqðx¼… ¾zõêÌ™3ÊÊÊÀ`0X,ÖöíÛ's¹\Gªæ*‰ØÖ|(‰’»K¬&‰‰‰ÑÑÑ111>|ÐÔÔ š?_ÄýÁÑѱ©©éÖ­[ùùùfffݺu³··ÏÌÌÔÑÑyÿþ½`Œ.'''x:‰D’P|Ÿ‚seI£ƒX±uuu.\ppp°µµm­ ŽÕÕÕ\.W0¸¡C>’¸‹@ øøø¤¥¥™››cC+|#°õš Æg÷jAÄÚÞátTËd³Ù8ÑRkB$Þ pÕÔ]\hII2 EL|U §€Šìgš(Ñ”HDRc¯­ˆY¿]‹©©©ûP÷”Ü”FÛÆæžh94ÏÑžü,ˆ²²2™L~÷îÈ,"‘øþý{ÁÄ÷ïßKþµ~tŽ]G7oÞìÙª¨ µ"‰ŽŽ>wî\bb"=¶|-((Hä$õv#¥ØvØMtuu±5»OžÍoeee×®]ãÏ<éL(JG-컸\.‹ÅÜÊ:5U¸¡Šäĉ›6múý÷ß4hPff¦¾¾¾ÁçH£¤4bÛm ”šFDDÐh´‡¶”C  tùòå›7oò» ÷ïß?s挬¬lj"œ+K$ëàà˜˜˜žž>gΜ¶^54­_¿~‚Û=zô¨ªÇ[´h…BINN Z½zõƒø§³Ùì3gÎðOœ8¡¢¢"r¾2†ä.í¨ÛEGµÌ¾}û²X¬’’üêZ"”®­­ýúõkþ62ÕÕÕÒtÚ%¤ÉݽaôèúÀ@޾¾p—K`±¸wÚçw…Ÿ-S¾DÕ< ¥ÉÁvì¡õÓäàP™˜HIOW™3§Y%qæt&"ã.wþüylã#Œ#F”––^¿~;,--½zõ*U NÖR>l6;((èêÕ«û÷ïš $ea|¤‰QÐÚhÇÃ~¹ àÒ¥Kššš‚ÏØ’’’x<^ËœéÓ§c»(ÊÉɽzõ*11±ººzñâÅ‚eZ;700088Ø××Ûö!%%%===44Tò=XK%¡ÇB=Ì= »²¹ì”‚”vÃ>C ¯f_&‹¹çæ+]+ ‰bJ7ÒgÈÜ#MGöPé‘Ròï­…¤ÉQäVŸ_Í`2úhô9Wx.ùNrä¨H¡õаjäªq ã¼wzϰ›¡­¬]ŬÊ+Éãò¸ËÝ—K¨ö—ƒF£mÙ´åÉ“'므e™Ë¾Ä8ŸˆˆˆqãÆyyykiiüñǰlÙ²)S¦LŸ>}æÌ™L&sÆ T*uÁ‚_N™ÖèÛ·/“Éܳg••…B155-))±··_°`Á¯¿þÚVi_Ú."‘8dÈŒ9²G)))ÿþ+ÜP[òäÉ“ÐÐPggç§OŸb‰òòòÚÚÚ«V­7nœ··÷Œ3´µµ«ªªòòò¸\îòåR5×v‹mŸíÓ¤¤¤$44ÔÃÃÃÐÐÍf§¤¤444´¶é‡““Sxx8‰DÂ&Í›››+((`뤥פ­Fá\YÒè ‰X{{ûC‡M™2%(((>>g‘qK–,Y2mÚ´E‹ùúúVTT¬[·®[·n­Í8ÅW5..îÊ•+GUVV^±bŵkׂƒƒ/\¸€=•““[³fMMM¡¡ajjê©S§"##ñU•Ð¥-o’›/¹’·L'''““ÓrvkBp„;vóæÍ6l˜3gÎû÷ïW¬X!ø ¹¨¨hÈ!¡¡¡üÍd\]]àÒ¥KØaLLÌÆ¯\¹"uáãPªþùGt‘Ø4dˆÜ#Grzô ¥¤È~~7`÷íK`2e÷ìa[Yñ(¶©iË”/TumD„ê¸qª^^õÁÁ\--Rq1¹  æóò·¯>^II©­ªæççÿù矋-8p ÈÈÈÄÅŹ¹¹EDD¬[·äååãââ–/_^PP ®®¿ûªä¶·¼]Hn¾äJÞ2étº££ã¹sçÆ/”ÕšêêêÖ„[XXüõ×_6lزe‹¾¾þâŋ׵¼1 ­½Á Ía’ªØX¥¥KÕ‡  ¥iÀÆ?ÿ¨ Ü GŽdN›¦°n‘ÁàÒéåyy-S¾PÕ, ‹ŠÓ§¢£•ÂÂõõœ=˜¢ kÀ€ÊÇU'OV™=»*!_&ðxÀá€àOÏç&`Äy¸Ý1ÛÙ³g---µµµù)222IIIMMMöööqqqZZZX.NÖR¾V¹¹¹°oß¾}ûöñˈ\Q_¿"¡f,MŒŠìKL;ʵf4"¤„N×€·oËDçjiÀÛ2ѹqô8~,:7ŽÁÁ"vqzÞ¶’‹@ ’À`0lllÂÂÂÄÆôm"222999??¿e~Í\ºt) //O]]½«uA|Û8::Nœ8ñçŸþªD!:‡mq{~[†­mPR1óöá£gØÚ†¤#LJÌI9{išïDißÛ€@ „Hêêꢣ£¬¦¦VRR²eË999 ÇI­áêêjcc³cÇŽÖ^O‰@HHVVÖW( ÑùT2jUUSž½à°ELÁ@Ý@|ÈdrQQQrrree¥¢¢¢££c\\œªªjWëõͳcÇþš%ž÷ª4Ô›wÁzV\ÒÚ´mÔm@ ÄJ¥ògW9°yØ_º–¯ mmmÁIä!=oßUÐ5Õ^¾*e·¾ÔóS·¿äñ•ƒÿMuU.@ âÛåõ›wøÛôÿ½ @ âu@ „ÐÚ@ âÂÁÞö÷¨u?ùLÀ/–t䘃½-ÿPôhÛ7o°ëÈÊÊ„ââbÁ\ì}Bð_F˜••5bÄmmm2™¬¢¢2bÄÁm¹ðÏÅÏm7nn0v¬¤…wì}} ‘@EEÊj!* ø/•OKƒµk¥øõ“––¶¶#ì”FN[Ïí(¿5¤”¥   ¾œt§±téR:.„vpðàApåÊ~JYY@ZómÛ6pÿþ}ÎR77·±’߆ˆï‹­„T€hIÞ¯™ Éí, @’+s)€„7La@Éçé©­ÈLN瀳Àùó笠 @¥R­¬¬vîÜ)T ´´”H$fffÀ»wï¦M›¦¦¦¦  0räÈÂÂÂö‰Â×êâÅ‹S§NíÙ³§ŒŒ NxóæM» €3gÎ 2DAAA^^~À€"EáǨ/^ A544ZÓê[gC{Û¤#Çðÿìm9ôçŸõéuo]§9@ øJùìuo)g/u­6@ â«…•••]­@ øJQUUE;)!ÄwHÖõ\•ÎÿßÕv#âKº @ B ¨Û€@ @ Ä€º @ B hI4@ ÀCUU• h÷U@ Ðò=N(H@ Íïm@¯{C â§µ ˆìæ@æ£óøaa08¹ŒºNÓ@|U¨©ÈcÐ’h@ !Ôm@ @ b@Ý@ ÄÂÛ·¯{ëëtµßB¾BÝ@ !Ôm@ @ b@Ý@ !Ôm@ ø‚D¯û³O/Ý–+–‡c-œ‡¥¼xQÜòñM#øí÷5Ô·±25Â5lÙ’Üœ[‚ÅZ~é)§OŽéflÔ Kû¶´µÄNƒ,¾@ 6›]UUUUUõøñ£ä#‡gΚ½|E„È’%%¯ÿ¼ˆÃá‰D==}‰D&“E&v¦þbFÊËËCBBh4@ {öì, ¡¡A…V ++kÔ¨Q=zô P( ¥G“&Mºs玠œœ/// *•jhhøÛo¿Õ××K®CK:D+)‘¤ŠÊÊÊÅ‹ëëëS©Tmm퀀€W¯^InxJJŠH3ïß¿ßnµÇŽ‹ )))‘DI8t襥%•J:ñeëÖ­|OR©T“èèh‡ƒåFEE)((t‰bcÇŽÕÔÔ|ÿþ½`âõë×I$ÒüÑ zF^^¾W¯^&LHNNæñxÒ Çw¬››Ûرc¥¯åk¦M6îØ±C__ŸD"IÿšNAϧ¥¥­]»VJ_-Ò·"!·ßîB|!ÆO˜¸{Ï~þŸ¿ÿL,=8x^ÂÎ= ;÷hjju­†ˆ/Çø wíÞ½~ãÈQ£±”];vþ}jEOŸb±Ç¬YAi™ÿ]º¬¡ÑMdbgš ¦òúõëÍ›7·C.…BÁ>äåå;wŽŸ^RR’””têÔ©œœ333øï¿ÿÆŒÃb±ˆD¢‚‚ÂÓ§OW¯^žžž––&###Òh%=b«¨©©ÅÇǾ{÷.33‹ ± ,`±XT*õÞ½{UUU+W®€ÌÌÌíÛ·K¨Ã—ÐJzÄV……ã!!!oÞ¼Ù´i”––.Y²¤­†§¦¦ ÚÛ§OŸŽ²B¬’………XÇwñâÅOž666æææööö˜É²²²* ;wî422¢ÑhýúõKII’Œ¯¤——×èÑÍm6l ºººøª~s{{ûÚÚÚ>@‹¹4÷îÝ7nœŠŠŠ¬¬¬££ãÕ«WùYK—.¥Óé—.]²··—••Å:Z"ñåèææÌ`0îÝ»ŽE0GŽ!÷îÝ,?zôè~ýú‰­¢¨¨ÈËËKUU•L&kii=º¦¦FBÿÌ;×ÍÍ->>›X˜ŸŸ?a„îÝ»ËÈÈhiiðgUák(äØ#GŽ˜˜˜Ðh4SSÓääd •ù¶À·±µïËßßßÙÙlmm Bhh(àºüüüú÷ï/(|èС^^^B5†††þñÇUUUØíô;¸–q<,òJÄqcK·îBtÇ%øûñÿò?¿%Š„Ãaÿúë/,K‹NOËȼv#7õ̲²²µµ5¬Žì_"‘hffŽ}.)y%”ûwü΄{°Ï‹B=/¹v=Gdb'©û‘ŽÜIéäɓϞ=€)S¦´|äÌår>|xèÐ! “ÉØƒÿ††,—?wœÿáÞ½{,«K´€³gÏÚÛÛ'%%•——wëÖíýû÷‰‰‰ýû÷ÏÏÏÇ dgg_»vÉdêêêÒh´/^ìÚµËÉÉIpUN/_¾|÷îôêÕKNN+‰uœØlv^^^›l400PTT”••uuu Å*™øäÉ“ÆÆÆ{÷îyyyåææòOïX%¿]Š‹‹Éd²’’’PúÝ»w Ä`0öîÝ›’’¢««ëææ&è@ƒºfÍšgÏžñ{-ÅÊ$!!¡¦¦&$$dæÌ™FFFØèxxx(++ïß¿Ÿ_²¬¬ìÂ… Ó§O[…§§ç‹/öìÙ“•••``` Ø‹‡‡GCCCNN”””XZZ&$$dddÄÄÄdggóÃS| 9sæÌ¤I“úõëwîܹÈÈÈ_ýõÁƒ’ëóM€o#Î÷µaÃl–ZjjêóçÏûí7Àu»äüöÛo ,PTT|þüùóçÏoܸÑqævb[QË+Ç-Ýþ¹ ñ5SPPPöö-ð¸Ü_Ùæ7ù÷ß#pãÆu‡ÝÕ "ÚI‡¬ ìd:rnCll,ö{&ˆ††ö°ètzbb¢èëë«©©UTTäææfdd888üõ×_X1‡Ã`0ºu“v©G;´b³Ù³gÏnjjÒÑÑÉÌÌÔ××/((°³³«®®^¼x16v1nܸY³f™˜˜—Ë _¿~ý‹/Ž;æçç'¶Š²²2,QYY™_˜ÿ Ö%§®®ÓÒÒ®\¹rþüy±J²Ùì+V@Ø¿ÿ˜1cöïß¿`Á¾X±Jž8q"%%ÅÃÃ"""V­ZÕ&µ¿fêëëkkk™LfbbâÙ³g===[ÎÝ_¶l™¶¶ö… °,;;»¨¨¨ãÇcãââÏj™(VŽ úúúkÖ¬Y¸p!‰Dºví¹FóññILL\»v-‘H,Êñõõů¢¾¾¾  `÷îÝžžž˜¨qãÆµÉWØ*—ÒÒR5jÔ¨Q£°tGGGkkkssóüü| | ‰ŒŒ´²²:xð ö»hhhhmmÝ&•¾~ðmÄù¾444°áÇîÝ»ëëëcåqÜ.¹JjjjÊÊÊD"‘/ö›Fl+jy%â¸Q¤Û¿'w!:ÅK~™¿@Ò×>Žz½{÷N(<àpØ5Õ5*ªª¦¢³àr¹ÍØôèѳk•‘œm¸}ûö•+WÀÅÅ…?/‚²²2ÂÛ·oçÌ™S\\ d2ùÏ?ÿ6›=lØ0YYÙmÛ¶ñÏ’pq­­­-“Éd2™qqq¢U^^Þëׯ€ËåbÓBBBB°ßžŒŒ 6› NNNOŸ>]ºtéÔ©S'MštýúuLΣG$©‚`_³­ýN]]ݸ¸¸¢¢"‹U\\>>üî@ðððÈÌÌä—‘““4hЉB‰ør°Î3¬ÀüùóÕÔÔÜÝݱ.(ŸéÓ§¿~ý:-- ;Ü·oŸ«««¶¶6~rrr¦¦¦‘‘‘[·nÍÏÏoÇ÷Ëår1™˜9¿ÿþ»………’’F³µµ‹¢5 ¥1™ÌœœoooL XYYµU«¯|%iZBà»ýD’VÔòòDnD|¨kh`Æyz=/úC}†o”÷îÆ^¹ ¨¨8Àξ«Õ‘”mà?ÔÿùçŸ[æÀû÷ïÃÂÂvíÚõäÉ“°°°Ã‡Àœ9sºuë¶qãÆÂÂByyù1cÆœ?þùóçÊÊÊ‚¹q ­íâÒ>­ø½ùÒÒRì*ÜÊH> IDATlÃ]55µqãÆ¥¦¦¶”Éd2%©‚?]ªªªŠ_˜ÿYSSS¼ÙVVVü•yzzz;wîNNNúúúûöísss+,,¼}û66#H¬ªgΜ‰ˆˆøý÷ßËËËétzhhè²eËZjÞ/_¾,úŸ?þáÇW¯^=pà@EEÅÊÊJGGGþ\ÄÖ4¤ªªŠËå ­çêZ|ëàÛ(IÓßí? ’´¢–—'r#âëÄÌÌLKK«¬¬ìü¹³YYWÀ‡ïSSN¿|ùbÅÊU]­ BRž?~9#½¢âÃ¥‹ÿ=Ûž- YÌ_’úõÓ1݆ÒÒR¬`dd4f̘֊ihh„„„ìÚµ ø‹`„ Ø“rxõêöd×ÅÅEÂÀ…Çãaû`ÉdÁ-eÚ­? öõõ=pà@ËSnݺ……ã HNNîÙ³ç©S§øs<$©¢gÏžšššïÞ½+..®¯¯ÇV`ï[ “ÉNÉ`³Ù‚öò—‚H$ÈÉÉÁWRã㌊ŠO;9ð§Tu”’ß(666"^ø(++“H¤ÐÐÐY³fIS¾33³Ö–G·„@ øùùÅÆÆîرcß¾} ãÇ—DU===lí{aaáÎ;ÃÃûwï>mÚ4 ë=}ú4ÿÑì–.]ÊßûKð2ÇÑPlâ‡`Oªªªºêu_|ÛÑ´ðÝN&“…‘¾ûP¸}­ßDWA"‘ÿø3:xÎ¬ÆÆÆé~SÔÔÔ ¢âð·ÿG|?–|üØgÛ3Ìœ5{æ¬Ù]¥O;3I‰Ëå¾ÿþýû÷üE´µµµXŠ`±íÛ·ck(ù“yøÌœ9óðáÃEEE>|¸{÷.þLïÞ½±ÙÙÙgΜ©®®ær¹¹¹¹ãÇçp8aéҥꛛ++++++Ü!ZY[[wïÞŽ;vñâE,ëÝ»w[¶lÁF-øq¶µµ5¶³Ö?i“áØžQ,ëÿûßÛ·ocbb°=Ž<==UUU%1ÜËË+,,ìÆååå÷îÝ㯩2dˆ$Jš››c¤ôôtl„áæÍ›B+qÅ*ùÃB£Ñ†šžžn```ü9(GQQÑI±Ò¦M›V[[{ìØ±L˜0ëéI®ª‰‰É† dee%càŽ;.]º,''Çår›šš׎=zT ‘••íß¿?ÿº€ÒÒRiÞ`ø‚oc[›–X·ëèè¼|ù›KUUU­ÄT*µC6¢èrÚÑŠ$i½B|7îB|ý sq=~"e¬‡§––VUU“Yo`h4iÒ”™3¿¥ˆ$IYYÙȨïDŸIG’O´öŠè¯1£ /_¾ìÕë³—‰,\¸páÂ…Àd2±©A Ø¢UUÕ3fI8uêÔîÝ»…åååùaô½{÷fÏn÷k×®åÏ:•D‡–H£™LŽ?~|CCÃðáñ9*åååàíí ªªª•••;wî|ýúuyy9ÿ…h’¾bÅŠÔÔÔ‚‚‚¿þú‹¿œN§ÇÄÄHh8ƒÁˆŽŽŽŽŽ,£¬¬¼~ýzI”$“ÉQQQAAAL&ÓÊʪwïÞOž<¡R©‚ó¬Ä*ù#ãää4lذ¹sçêèè0Œììl.—»fÍš.‘FFFöööááá¯_¿Ü¡§Š/^Ìœ9ÓÇÇÇØØ˜Íf'''3™L77·ÖªÈÈÈxúôiccã«W¯NŸ>––æîJ$ÝÜÜ<==õõõ“““ÿþûo 5$""bìØ±›6mš7o^yy¹¿¿ǾÔìk߯65 ±nŸ8qâš5kV­Zµxñâ²²²Ö^ôaffV__¿cÇŽþýûS©TKKËŽµº3ik+’¤õ ñ=¹ ñ¥Yö¿eaÿÃ)°yËöÍ[¶·v¦fæmÞÖâ<Ä7€ØoCèKwqq+z^"TFdbgÒK¢÷ïß=ÿ ’——Ê7ožªª*‘H”““ëÛ·ïœ9snß¾moß¼þÃÌÌÌÙÙY]]D"©©©=úâŋ˖-ëZ­ÆŒsóæÍÉ“'wïÞ½²²²®®ÎÔÔ400mPVV>wƒ‰Dº~ýº‰‰IËÕØb«PTT¼zõjhh¨žžžŒŒ N÷÷÷ÏÎÎ\i€ODD„ŸŸŸ•J•‘‘Ñ×× ¼sç¶}Š$JΞ=;!!¡OŸ>\.—Çãýý÷ߨL|¤Wò;¦_¿~·nÝÒÑÑ uuu={ö;w°¡ž.‘ƒ1mڴׯ_ëèè 6L’*TTTtuucbbÜÝÝ=<<|øðÖäÏ;×ÃÃcÚ´i±±±ÊÊÊGŽ9wî¿÷¾{÷n###KKK }ûö‰|å‚H =zô¡C‡þþûo%%¥¡C‡Nœ8ÑÁÁ¡}ÞøjÁ·±­MßíÖÖÖ{öìÙ¿¿¦¦æøñãg̘ÑÚ COOÏ   •+WÚÛÛó_ÉòÒŽV$Iëä{r@Hö%&媢¢ÒÕÊ è FÊÙKcG¹ ¥c‰ï+$} $ñ•óî]é »§Ï„_²†h æ+ìæ0ÍwbG¾·@ Äw ‡ÃíjˆŽ5év€º @ ÄÀᢠñ]št;@Ý@ b@fß ŠJêùŠºZ‹oÌW=º«c‡¨Û€@ B n›_!@ ¾3P·@ „n\ËìjD× ÿ“öu@ˆ!8È¿«U@ :¡ÿ ðxxÉ û€º @ D3«V­êj:Éíí€×½!@ ˆïÔm@ @ b@Ý@ ß3QQ  ÐÎ’¥¥@$B¦¨ánn0vl›«@ ¾]ÄtÂÃà H$MMM//¯›7ovŽ~øÜ¾}{ÕªU«V­ÊÉÉéÞ¼á.ZT?p`¬,ƒ@¨,.þl[k/¯Z¡RèÏήËÍÊbQ«­]E&Wª¨0FŒ¨ÍÊb ž~õ*ÛÙ¹FNŽ¡ªÊ˜<¹îõëÏ„¿{Ç›6­NM¡ À9²¶°ƒ¯ê™3¬!CjòòŒª32Ø’˜ ˆ·w-Péï_'¡’b ”‘õ áæV3vl-öùâE–Ï54Xokž”†ÂÂBðßÿI/ª¥Ø .tZ"9vì@xöìY»%TWW¯Zµª°°PÂò8†w éÃ6!¹ùmuì7MGûÕ~ï45ÁÔ´çž< ݺÁ A_° â[¡m£ \.·¼¼üäÉ“NNNçÏŸÿB:IÎíÛ·######»ªÛðì÷ðá&uuÂÀ¤–¹aa´#Gäùk×ÊÀèÑÍËЋ‹¹êê„e˨{÷ÊÿöíùsŽ‹KM^^sôó&ÛÕµ†Çƒ}ûä6o–»u‹=thMmmó:w ÜÝk.]boØ »k—\i)wèК²²V#þ¿ÿn3¦VM°i“ìÖ­rŽŽäòr®$&ð9uŠ•‘Á¦P>KÄWß@ Y¯$lÜ(Ë÷üîÝòm=½µzq<) ¹¹¹Ð¿éEI(ö Õ(’[·n©ªªöîÝ»Ýrrr"##Y,–„å;ǺÎôa›xñâ…™™™Ø’muì7MGûÕ~ïß /-(²³Û)áÄ ðð¢¸pIš*:Žõ-âDÒnÃüùóóòò._¾ìîîl6û—_~iw­L&³Ýç~U D.+SIIQ7ND`;p yâD ÿ¯¦†G ÀŒT,wêTJb¢üÏ?Ó¦N¥,^LËÈPd³aß¾&,wÕª55âÙ³ ÞÞ”iÓ()) EEÜmÛš¯øÄĦ»w9ÈÏœIýé'JjªƒÁ[¿^ôý ¸˜Ê\²„vâ„ÂìÙÔ€Jl¬œE0jky Ô¯['+#óÙ®døJâ( ­Õ+ ÇËð=ïá!Ó¦s[«ߓқ›Û»woUUUéE ‰íÕ«—ššZ§Õ(’[·nY[[K#!//J¥šJü(Çð¤3}Ø&FŽyÿþ} ±%ÛêØošŽ2ö«ýÞ;“¥KN‡¼}€FƒÁƒ¡èó—ðÞ»ãÆŠ ÈÊ‚£#\½*,íÒ%°·YYX²äÓ)ãǃº:ÈÈ€DF6§ûùP¯mèPðò“&8ƒ(?&L€îÝAF´´ Þ¿oÕÒêjHOÿ$üÈ01 LM!9ù³’‚U—¨ª™ ZZ0z4ÔÔˆ1 .\€Aƒ@V”•ÁÃ<øT)÷î}VÝèÑЯ_{|{ò$›û™477a—b'ž9VV@£AÏž°qcs–„ß%’vètº••Õ!C°”üü|,úOJJrtt¤Óé222T*U__Ö¬Y%%%üs'OžŒÍqºråÊĉ•••ùÁîܹ3iÒ$mmm …B§Ó§NúäÉ“–'¦¥¥Mš4IEEE^^~üøñåååààà0{öl¬äܹs±’ç΀œœì000PZá"öñ.öík<˜Ü«—èsºu#ÊÈ÷ãk8oÜ`»¸åå›ÃV’ñèÑæçd§N5éè‡ k¸ÐÕ%ººÊœ8!:"ßµ«‘Ëå­XAÃÔh‡ +V0{ô ΚEJÇWß@¸w3n\­Š CV–áèXsõªðlŸÖê€#GšLLªi´JSÓêädц×Õ‰Þ†¸Ýõâ{RŽ9âì쬤¤D¥R­­­O:…¥ß¾}»ÿþ‡²µµ¥Ñh}úôÁZ2ÇÛ¹s§œœœššZPPP]]äb±ÏÕÕÕ'N¤Óé—/_–²Æ .Œ1BSS“L&kiiÍŸ?¿¡¡ŸËf³ÿýw}}}YYY77·âââÜÜ\[[[,÷êÕ«îîî***d2YWW×××W¬Óúöí»téÒÆÆFàãã#VÃÅ:S{{ûI“&íٳǂJ¥¥¦¦ ÕÒšñ5lÍøêIè=++«€€ì³¹¹yPPÐÖ­[---©Tª ’"Ëáp6nÜhii)++K§Ó—-[ÖÔÔjWßFh½eâdá(ÐÔÔD¡PbbbøBJJJBòÇð­­Æ (8>ckkK ø?d¿üòK¯^½8HwíàhøÍQWÓ¦Áôépü8˜˜Àäɰd ;11°g<‚Íóî]4 Ø»RR@WÜÜ>‹;  …5kàÙ³æ@?7„7o`ÇHKƒÿýÏ6m)M’°´„„ÈÈ€˜ÈÎþÔ+hÉ™3@¡€›[óçI“ _?8w"#á×_?EöBxz‹°gdeABÖŠqŒúï?=ÔÕáäIسŠ‹ÁÑ^¼ððeeØ¿ÿ“ü²2¸p¦OooÇŽ…=àï¿?xúÒÒ 8XØŠÊJ‡½{Á€µká×_aÓ&hƒÄ÷G›ßÛÀ—°7bdgg_»vMIIIWW·¢¢âÅ‹»víºtéÒƒäääÏýé§ŸÊÊÊ@[[Ξ=ëååÕÔÔD"‘´´´ÊÊÊSRR233-,,O7n›Í€ÆÆÆ'Nðx¼'N´ËÞ.#=ýò%wÕ*Y¡t&“Çá@YoíÚ*•ت65õó¨•J%Ü¿ß<ç €kföÙœ"ssÒ¹s¬†F(..îÕ«WXXØÚµk 3“miI:p iíÚ†’®žqÑ"êÏ?Ó$|ŸIN'.®1;[©ey|%ñ ¼{—ãèXccCÚ»W^AßèæVsíš’­-Il½gΰ&Mªûé'ÊŽrååÜ_eÖÕÍg4¨¦¦†''G1‚¼~½\Ÿ>Déë•Ò“K–,Ù²eËÂ… W¬X/^¬¯¯———§¡¡QSS³|ùr‡ó믿úûû—––b—X```bbbxxøúõë?~¼téR&“¹oß>IÄb‰ùùùÞÞÞêêê¹¹¹:::RÖ˜ŸŸ?räÈ¥K—R(”¼¼¼•+Wª©©­^½«tÊ”)QQQÖÖÖgÏžuuue0X·áÖ­[®®®3gÎ\²d‰’’Ò“'Oî߿ɜ:ujrrrmm­ŒŒðÐÐÿýçææfkk»fÍPVV«Ck†‹5M6›}ïÞ½7oÞTTTDGG„ððpŸgÏžÑét±>ÄÑÇ8êáœ%HSSÓƒfΜ >|ûöm·nÝRRR8ÎŒ3øJ¶t,‡Ã?~|ffæo¿ýfmmŸŸÿË/¿444lÞ¼Yd“Ʊ§eâdá+pÿþ}‹%8r•——VVVí0VÈUUÕš„ÓÒÒ?~L *++uuuëëëÿùçŸß~ûD"Isíàk(ÒÃ_3µµ°u+  ààpì<|Øü£P[ ³gÃ˗г'À²e ­ .àâvvÇ7Kkl„¸8ptü$ÿ—_€N‡Œ •<¸ ºµ”&ȨQ0jTógGG°¶ssÈχÏãŽfNœ€#šÕŽŒ++8x°¯ËÐD£Ö×CAìÞ žžÍ)ãÆ‰7jåJèÛŽ2ÀÞ `Ý:ؾh4ðñÄDX»¶ùIßÁƒÐÜ1k‡oƒ‚`Ý:ˆ‰EE€øxPT„)S„ ij‚-[šÇ4|}!'¢¢`Á‘‘TâûCÒnÃÛ·oïܹS]]ýÇ`)–––4 Æ7kÖ,àr¹ØíòŋǎóóóB¡PÒÓÓÍÌÌ^¼xÁf³gÏžÝÔÔ¤££“™™©¯¯_PP`ggW]]½xñb¡Õf 8}útCCC¿~ýÞ¼y“’’Âd2oܸñÏ?ÿ`;vìþºû¹{ö4ÊË||„C¢áÛ wëF8sFÁܼ9x56&fgsx¼æÛSEïñcNS0™Ü´d ³±~ý•&Vm‚‚êæÍ£YZŠXù€¯$¾Ë–1µµ .(Ðhpq!ÛÙq¢¢˜Ç+ˆ­72²ÁÊŠtð üÇ{7ÉÚº ¹¤²2aÉš£#YAnßæ¬[×0hPõ;JÚÚD)ë•Æ“‡Ú¸qcrr²··÷GÏ Ç><~ü¸¦¦fôèчÂRÞ½{·`Á‚úúzyyùÿýw×®]§Nòððggg&“¹xñ⸸8yyy±bû÷ïÿï¿ÿÎ;wÆŒ±±± EÊ`‰Àã;ggç«W¯ò÷Hعsç‰'²³³±ØÎÎÎîòåËÏž=Þãîß¿¿OŸ>qqqXáòåܽ{×¢eŸ´´´ž?¾hÑ"}}}~"Ž8†‹5M444˜˜˜œ={»šTUUÒÓÓ§L™‚ïC| [ó¾z8ÞD0¶ÎÏÏçp8þþþüû¶¯¯ïܹs1%[:6&&æüùóׯ_Ǿ/ggçÇïÚµ+66–(j\ÇFœ–‰“‹£€`'#//OQQ±OŸ>í0VÁnCLLL@@Àž={*++±ï…Ëåbc×Ò\;øŠÔêkFA¡¹Ï** ­ nnŸ$™˜¼y={BS¤§ÃÒ¥Íq-àá[¶|’&'÷ÙšãÆF¸rÂÛÃë¶"$Mˆ¦&X»Ž/€?–ö葈nCSœ= Û¶0™“¿ÿü.ž•‰®ÝÔ"#¡¶œÁܼù£àÖ-X±¢¹ÏÝ»ÃСpùróáôéðÏ?–Ö<î±o¸º‚¶v{| ³gÃï¿Ã MM°gøùAË6H¥~Ö±qw‡M›àþ}°¶–TâûCÒI6Û¶m³¶¶vvvÆvç ‘Hë֭òœœœž>}ºtéÒ©S§Nš4éúõëXú£G„„¬Y³fèСݺuëß¿^^Þëׯ»»¹¹…„„`O\222°±>ÿûßÿ444°ß‡ƒZ´†­­-“Éd2™üŸØ®¥¦†wìkÂáGJ;vÈ]¹¢x載 iÔ¨Úë×› Ÿ?Ÿúàç—_˜¼W¯¸3fÔq8D¢ø‡Rzzzl6›ÿËÄåòjjx»vÉMŸN:”¼c‡ÜÈ‘2ÑÑ  'oÚÔðî/2RtX,‰’" lj‚ôt–‹Ý¡ùNGÉÌd‹­—Éäåä°½½)÷n’‘ѧ(Àò† ²ãÇË .F;wN¡¼œ÷×_RÖ+¥'#""<<<øq’ ·o߀?ÿü“ŸRQQ¡¤¤„EQQQ®®®X‚ajjÊáp°©zbÅþý÷ßÁÁÁ;vìØ¾};åãoijär¹;wîtvvîÖ­›¬¬,F;qâ„ŠŠ VríÚµ“&M|Ü«W/%%%PQQyôèQhh(ÿ rÿþýÖ66ÈÏÏg³Ù‚2ñuÀ1ß4‘ŒŽŽæ÷À±UÝØœ|âkØšðÕÃñž yyy¡_¿~ðñaüâÅ‹ù¹¯_¿æ+)äX;}útÁ¹:½{÷®««kµŽßFœ–ÙZ–Xòòòôôô—¬äååYZZb?m2¶%ªªªÕÕÕðàÁƒ .„††*))a݆-[¶***‚t×¾†ßBZ“HŸ¥` öK^Y ,¬_4Ú§¿Õ«áÇOåApÄ…Áèôvê&$Mˆùóaà „‹!/ÒÒ>Ÿ^×LZÔ×7o±ZU\®°JÚÚÿgï¼Ã¢¸¾>þ-tv© ¢ ˆRT,¨X°w%j|cÔX¢Æ^1‰Š=Ížü¢1ö¨XcG‰]cD…E°‚ˆ(Hï,,Ûæýã°,0¬ ‰e>ÏîÜ;çÜ{fv÷œ{ϽSµŠ³gáïåËѲ%ê×Ç÷߃¦Ù:•› µÖÖZ[#;»ôuÇŽpr™}ô‘‘¥Jµ°- Zšetô(22ªÎ/25­ÆL–ó&é(ãÃãõ’”x<ž……Eûö탂‚:t耦éjæû2T^÷¬ùcžžN^¤¤¤¤¤¤hVS*•yyyõêÕcŽ0ãCúeCZq…EÔ<ü¯qø°¼¨ˆ;¶Šý-J=’¡CõÜÜò‚‚Н^5ðÅúÉÉôš5²µkeúöê……)ˆÌÍy¹¹ÒösrhŠ‚™Yß”õêñââÔÝ»—ãöè!8wN‘˜¨nÔˆ-nLIQ/]*Û´ÉP¥£N.Gn.mbB 54’¥ƒ99j…?þ([·®ü«Z¥ñ¿ÙõæåÑj5lm+ôÔήڟ__A“&ü;w”ê¢W ¨½%Ÿ={Kò1*ѰaC͆ˆ3 !!!..îÙ³gš÷3I´°°¨Q¬™™ÙÑ£G§OŸþ9ù…©³FãÆ;yòäÂ… W¯^mnn^RRÒªU+’U˜Ïä¨^¾|éããC»E‹)•Ê}ûömܸ±Aƒ³fÍš={6‹Ý˜¶1~0¥ ,¯±k• hoo¯9¶ýòåKì6¬±…UÚ¡Ææéh=‰Dâââ"‰DEE9;;ׯ_¿ÊFj6666))©W¯^šÒÒÒÒ,,, «òeé#ËÉRTc"##µü~‰DÒ¿lÛü×êleÌÍÍ‹‹‹ÉÊŠAƒ5jÔH,çää\¸páÉ“'gÏž%ÕêòÙaoáŒX >³faüx]O13ƒ@€ÔÔªKh­[«Ò鯎}û0ofÎ,}SmÍãÇáï ‹Åàñ—W¡B^^ÕÏjhØ»vÀ£GؾAA¨_ÇWÛ)33ðx(s‹JIOóÍDQøì3lØ€_ÅÞ½01Á!¥­z]Û¦LA—.ÇÖ­hß¾ê­Ü\Èdåó¯^(o’.8>³fDE‰˜¿˜ÑÇ¢õŠÅ‡¼¼ ?ZoµP*ir§ÔEo],I&Öˆ»Y™ˆˆ­½2% 9BVd8p Jƒèèè'OžˆD¢ÅöêÕkÓ¦M›6m:vìØÑ½gÏžmÛ¶ùùù¹»»§¦¦Ò4Mœ9r®Æø[NNÎ7]«V­zþüùƒÚ´i3gΜ›7oÖ`;@"‘4nÜØ¤ìÇ™½ ,gïZe½‘‘‘Z¶=uꔑ‘Q§NØmXc «´CÍÓÑz‰„QÄ4‰!**Š9¢eØÔÔTVVVšõÏŸ?ß­[·ÊZØûÈrg²±7€¦bA6 IDATéèèhÍ(.)))11‘9òZ­ Ù)..î?þ ÉWd¶aÓ¦MC‡mذ!©VëÏN-ü€10@—.¸|£iÓ Õ¡¯Î±?Ê–ÃTÀÞ/^”ïK‘—Çæúk¡VC.‡æ'žìUšÆÉ“å«¥ Ѻ5.\(¯’‚ª–U Y3üô qÿ>[§ àë‹#GÀÌ]§¤àÊ•ò40£G£°ÇŽaß>  ²t´¶%øû£ys,X€«W«(P*ËH …<<^CLJG]Ÿ]6…æííÝ AÔåDooo2èrìØ± eÄôôôÍ›7ë2I`–\?|øP3Bˆˆˆ044444|<<{¦¾qC9z´žVŒ£•Ù’“Cߺ¥tu­pE ©-øöö¼C‡ä÷﫦L)Æ8P/)I}õji—“’Ô/* ªz'Ð!C„Î+ßà(4TamM5hPÃÕwwç_¾lªùg`@õê%¼|ÙÔ×·<6¨®‘,40 ºt\¾¬hܘߴi…¿õR­[ .\(¿Ü))jÍuØZ¡âÅ‹ÊgÏÔíÚ ê¨·.–$™?®\DVXjº999ÏŸ?'îqe(ŠjZWWW]ÄzyyM:uÚ´i£G¾sçNÝ5>}ú€››9Q¥R‘\8"dqhf'.^¼¸¸¸˜ÙF‰ÁÝÝ}Þ¼y¨iÚðèÑ#ÍM3ÙÛÀÒqö®i¡V«ïÝ»÷âÅ fˆW¯^mÚ´iÚ´iÆÆÆì6doauvнy,Ö#Í&ÍP«Õ111šÃó™™™ÉÉÉÌ-Ã’x/^c×Ì;wJ$’3fT¶{YîL–"öäååI¥RÍ ô§Ÿ~BÙR‡×íleˆý׬YãããCÖˆÅ∈ˆ3gÎ0iEuùìÔØÂ›µkñä ºvÅþý¸z'Nà›o°hÛ)?þˆ´4øûãÀ\¹‚íÛÁ܉ÈÊBp0rsñä FŒ(_P#<°mââ PàÀ ;iŽ”” ›,-]Šsç°~=JJ”„Ñ£µ7!$&¢{wlÙ‚+Wpá&OFqqéš–N-_ŽÇ1p Ξő#èÙúúX° \¬«+Ú¶EP^¼€æüq-lK˜2×®ÁÜÇ@Xìß_^ÁØß|ƒ­[qõ*fÎÄ¡Cøö[h.@Ó’Àñ1ðÚ;)iÑ®];ss󜜜íÛ·'''gdd|hmmM†Z´háìì¼dÉ‘Hdeeµoß¾‹/ aÃôéÓ•Je@@€µµu\\Üwß}çëëëççÀÅÅ¥~ýú×57×ÀÔÔ4**êÂ… fff5boKÇÙ»¦¥ôñãÇR©ÔÂÂbüøñcÇŽ}þüùòåË]\\–-[Æh©Î†ì-¬Î<¥y,ÖÓ$..N*•O466V*•j62** Ñ‹–a]]]ýüü–,Y¢¯¯occsîܹ7.]º´SU[ذ÷‘åÎd)bo€H$²´´ù¤|Oî©S‹ôë'<}º4t¡iìÙ#ïØQÀlÊЧpß>ù¾}ò¢"ÚÒ’ççÇ?xиM›Ò+"Q©öï—Ëå´›ãF£É“Ë¡ýe2gNñœ9Er9:v8`Lv @ÒÉTe£ý…ãÇM¾þºxùrYNŽÚÕ•¿{·ñçŸë騨ÉÞAOOþ;¦ÁÁ²Y³Š²³i ªMÁ´iU ÝT¢o_aHˆñ’%²  bGGÞ¼y@ùÖò; ïß/—Éh;;ÞèÑzË–XYQu×ËnIÖ©3gÎÌ;788877×ÚÚºk×®ÎÎÎ({⬖#Â<”Š¢¨Ó§O­Zµ*33ÓÔÔÔÝÝ}ĈÄÍ­Q,ñžù|~HHHÇŽûõë÷÷ß×E£‹‹ËÎ;-Z´wï^ww÷Y³f0OÇàóùÇŸ0a˜1c&Mšäèè¸~ýz2ÚêâârðàÁýû÷ÙÛÛ6léÒ¥|>?++ëÙ³g½{÷®Îz+V¬øâ‹/úôé£T*¯_¿Þ±cG–6°t\$±tM ²òõìÙ³AAA}úô155>|øêÕ«IÚ:» Ù­T°[¾º³4ÑÜkˆx¥šƒÙQQQšÏ;«lØ£GΘ1cÊ”)jµÚÓÓsß¾}ëEdï#ËÉR€¥<o×®]Ó¦MsvvnÒ¤ÉäÉ“‡ rëÖ-rEjÑY­‘°¡AƒCHÎxÙŽ´š+˜ëòÙ©±…ï?ý„Ÿ~ªpäùó oÛµÓ^~д)ÊvŸªYÁË ú¨ÀçŸWq×Üú³Jiß~ fANªPªÙT¦æñ㨸$ ^ad]3¡9Q,ÆîÝU7¬êÙ={V{"€¯¾ÂW_Uq¼¶ _~Yú¶woíK m[”íŽV³Ž ÀÞýGú÷éÎì€ÁÁÁÁñ‘3gΜÇ“5Ð ¹¹¹§C/öïÓ]ë89È9  !>S§²Å0óæá?ª]•®‹„÷—÷ñ9*u§êçã–A¾F ¬ëlLJ‡æ“­9888>$¦Oǵkh×ÿûß&á]†ÝþÈáÂŽ Ð45¯ºÌeŽ÷Íý ªƒ%»IG $\ØP{(*ç¿nBд¹æÛw³‘Zfçx¯¡(*Ok{vŽžÉëNÙĤ™¶àþsÿ?ŒÿÕÝê綯¨®è¦÷øÅ,¥ß}Qº7·¶ƒƒƒƒƒƒ£†µ ë7þÅÓâàx¿`‰Îm_1jÔ¨¹=ÿ-û÷ï¯1l kêúÜŽ.fàøàîçÚÁ… 5`S ó£˜98Þy¸û¹vpaÃGA~~~ppð£G˜#=¢(*,,ì?lÕt䯿þút;vŒ¢¨gÏžý º8888Þ)ê>:+66øu΀Æön ,{û6®{“t‘3Ìßý‡É¬OC¨-oOò»¯…·×°¾m›lœÞ·òk-t¼»¸Ù†ÚÁ… wïÞ]¶l™B¡`Ž$&&6oÞüx@)ySëÖ­ÿ]wîÜ177oԨѿ ‹ƒƒƒã¢î£³ž.6…E%ñ¯rš:Zöjó†7%‡ãCBÇ»‚›m¨\ØðQ ù(SBïÞ½ïß¿oiiù¶êѨQ#ò„×·Í;w4òÊÁÁÁññP÷ÑY¯ÆvÑÏÒ¸Mñ눀Ïynon¶¡vp°¾>üóÏ?K$’’’ww÷eË– 8€J¥Ú¸qã®]»âââÄbñ矾råJ===r–——————‡‡Ç¶mÛ[´h±k×®zõê}óÍ7'Ož,**5jÔ–-[ø|>©ß¶m[''§>}ú¬]»666¶aÆëׯïׯ¹\nbb²fÍš¹sç’ÊIIIŽŽŽ‡ tss‹  >|ØËËËÛÛ{çÎ<<<:tèвeËß~ûíÉ“'¿üòKïÞ½‰(¹\¾råÊÝ»w§§§ûùùmݺµyóæ«W¯ž3gNeS°‹¢izÇŽ[·n½ÿ¾A``àúõëL˜0!22222’ÔlÕªUddäË—/ÌŸ?ÿÈ‘#OŸ>e¬ÁÙºuëüñÁƒööö:j¶víZ‰D’]¯^½ÀÀÀµk×R¥R¹zõê;v¤¥¥ùùùýþûï'N¬ýÂÁÁÁñÞ¾geè \ëm=uwx—æÝ|Ø2g€ÜBYÐo°· òkÚÄÞBÀç¿HÏýóú£§ÉÙä\+3ã@÷&õ ôÒbybZÞïg"vp«RN•8Û™èêá`%*(*¹ùìBDy®©{C«þÜ­Ä*µ:.)ëØõG)Y:–jÒ¡¹ãg=*#WJε· èàælgfj¨/•Éï'¤½ö°°XNJ‰´g#wlfo)úûþ‹KÚ#åšÚ«4—L®¬Üf"yÏù¨Á›ÙZ˜hç‹>>¶&«÷]cêÏÞ¡¸Dñë‰;Õ]F‹½¥hd7'[óâÅ%I¹Ûquר ÕÝ]•©ãýüÑÂ… ueîܹ›7ož>}ú·ß~ àÂ… EEET*Õ!Cnܸ±dÉoo˜ùóçËd²M›6Ëå>|ñâ…““ÓåË—SRRz÷î=nÜ8Š¢-Zôý÷ß|8¥RýêÕ«ììì~ø¢¨   O>ùäÙ³g¶¶¶÷ïßW(šá‰€——€¿þú+  U«VkÖ¬ ‹‰ö/¾ø€L&{üøqjjª••ÕéÓ§U*Õ˜1cÆŽ›’’BQMÓŸ|òÉ?ÿü³lÙ2OOϳgÏ”””T™ÝÄ. À„ öïßôã?ÆÆÆÎ›7¯¸¸xïÞ½ÌÍÍ J¿‹/]ºKQTNNŽƒƒCQQÑï¿ÿ¾dÉ’Ê1MÓ‰ÄÒÒ²  à›o¾Q©T‹-ÒQ#€˜˜˜Þ½{Ï›7OOOO"‘,^¼ØÂÂbÅŠDò§Ÿ~zåÊ••+Wz{{‡††vïÞ=77—{r0ÇÇI},g•ZýøEƳWÙ<ÕÎÝqÅž«Ô´€ƒ•hþÈŽ/Óóv‹*Q(;µl8+°ý!7^¤å˜2¨JMï>•_Tbj¤ß¬%ŸÇ;s+¶²œ*Ñ ¾èã—–#õllèßœ.F<Ь¡Õ´¡m$¤ÿzâ¶ž?°CÓù#ýV_\c©&½}› ìà¶ïBôß÷_”)åëã}Y’pöV\/§‰ýZ]’$8Z‹Ž\} àóýÝÇ÷õùnÿuRÙÜÔ )#ÿïû/Šd K±Qo߯Sµù1äoF¾‘¾pxƒWî§f Ú³ ZÚ«4WuÆ1ÒéÔlg¨$-§Ð»±Ýç½¼ã°Ã¢E_ÈŸÐÏçê½ç¡áqÞMìwlšž[›RGº û]ÁÅ µƒ êDHHȺuëŽ92lØ0r¤Gäņ Ο?ÿÏ?ÿÛßß?66vÇŽ6làñxÄÑŸ8qbpp0€úõëoß…èøWÙZ]«¬Å\U"àó^ºŸ”‘àöãä†6fŒqXÎb×¢/¼|ÿñ‹L3\ëµr­Ï„ µÓ¨#R™BÇ»‚›m¨\ØP'–.]:`À&f` izÆ Ÿþ¹¦—Ù¨Q#©TZRRbhhHýÙ³g3¥™™™;w&1€¼¼<…BaeeEÞ’ì~øq' s¥R)‰DÒ°aC FšD"iÙ²%q‰‰Q*•ZsEyzz¢l^B3ã(99Y$Çú‡~>|¸f/œÓÓÓE"Qek°‹Z¹re÷î݉OpwwW©T$lÈÏÏððáð°°'Ož;vŒ„ ›7ož0a‚©©ieÄ,«W¯fŽdggë¨Q­VïܹsÏž=>,,,¤iZ¡P0—ò»ï¾1b„¦Ñœ#""7æ–ßqpp|ŒÔÅÇðyÎÖšÞ¶V©›c½¿îÆ“˜ Dǧuõv WªR² ú·wÕ â’²^eæW·6‚GQzå^MQIé. *µ::>9ûª»C}KÓÔì'[³³áq$*W({ò2ËÕ¡¡€ÇRÊhßÏǽ¡õÆ£·˜”*B‰BIbÒ’¼Â’G‰™$f’U@lb@Ÿ׫MãV®õ-D†ÌÒ c&l+UÏ*Å Uj¯Î\ÕG©RÇi´üabF÷Vê[š¾LÏ«ÆÌlZ˜¾?y‘ɼ}•Y`fbÀ¼­Æ73Ô.l¨=Ïž=‹%¹IZÄÆÆ&%%õêÕKó`ZZš………¡¡!‰DâââbkkË”FEEMš4Ió-4&"""ìíí5ç^¾| €¤þGFFj-Õ•H$ýû÷g^3AsÄÅÅ…¸þQQQÎÎÎõë××,mÙ²%é`||üòåË5%§§§W—¨Ã"*!!!..îÙ³gÌÊjµ‰vÌÍÍ‹‹‹U*Õºuë Ô¨Q#±Xœ““sáÂ…'Ožœ={¶J 6ÔÜÚHwãÆ;yòäÂ… W¯^mnn^RRÒªU«-ZsãããI¶’¦Á}||H$ÆÁÁÁñ±Q—ÑY7GK=?æYZ•¥FúB>׳uã€V.ÌAEQ¼ÒïÛ͆èàÖ¯½«©¡^¾´äbä³°;O+ mÍ~Ú‘y;yÝ)ò¢¸D©9’]P,`l 4ÔRUPT¢)¤ ¸¤µ{)A_(hÑÈ6.)ëYJŽVcJ*Í·4MËå« Ô4 €_ÖÁ‘ÝZ´v«òæ“g¯²er¥±Þü‘~B¼\™\Y¹¿Õi¯Ò\ÕG&Wj.R'ᄱ°’6mX.J‰B¥ÙZ•šæiütÖZã›…›m¨\ØP{’““Qæ¸k‘šš €™+ œ?¾[·näµD"Ñtô“’’2335£‚¨¨(>ŸO<`‘‘‘ZŠN:eddÔ©S'𦣣£çÏŸ¯)-11‘‘&‘H7nlbbÂTÐÔ.‘H´o¢¢¢È ;é f •JoݺUe¤Ä.*)) Àˆ_ÎÀãñHôB¶BŠ‹‹ûã?._¾ @$åää;vlèС 6¬RcDD„–F‰DBÖ£³kŒŽŽÞ³gY2Nއ††Ò4MÌBε³³cÎÊÉɹqãÆ”)SªlÇO3”b“²˜n-Šå 5M_Œ|Æ, Ð";¿x÷¹(¶&~- éÔ,W* ˜¤U-%«à§ƒW>ÝP_ àó˜‘~SC=”f³(hš65Ò׬L%`/eZ¾ítÄ´!¾ûµÚv&‚™—x]Ú6³»)²4¿ßÞ²ŠùüÊT§½JsÝ{šZ¥qŒô…B™çëÊT´Ê„|³ªCÇ‹ò5¾Y¸˜¡vpÛxÕ333?®\D<ÎøøxæÈÎ;%ÉŒ3¨Õê{÷îi† dnAëHÓ¦MÉÔ©ÿâÅ uÙxÉ«W¯6mÚ4mÚ4ccã¼¼<©TªéãþôÓOИ©xôè‘æÖ«šÚÕjuLLŒ¦ÞÌÌÌäädr„äi>ÝlùòåUÎ6°‹"QEQM+âêêJ*“ kÖ¬ñññiß¾=±XqæÌ™*·lBÙzhͰ!''çùóçºh|úô)777r¢J¥"ë1ˆ4Òñ'Ož0’/^\\\Ì­‡æààøh©õ>÷ÐÒÅ&êiyî»R¥ækì"ªPªc_f¹9Z¦çJS³ 5ÿ´D¥f½úP¡TÙ×3­,G&W>MÎfþ˜ã|¯¥‹ ó¶•[}©Lñ*³@¡T?OÍõibÇŒ…‹ ÜëÅ&e‘V±”2Ä%em>îîd5±_+–•Çlö¡(>Ÿ§¹Ó‘w;–úºk×4WuÆáñ(¯ÆåêÚ4µ'Æ[ ³05dæØ õ…öVUÄ3Z¥Fꮑ­»¢:¸ç6Ôn¶¡öxxxx{{“ |<<<ÒÓÓCCC-Zäêêêêêêçç·dÉ}}}›sçÎmܸqéÒ¥:u'•Jµ‚f3s„qˆ?~,•J-,,Æ?vìØçÏŸ/_¾ÜÅÅeÙ²eD"‘¥¥å¡C‡ú÷ïOÓô/¿ü²wï^@àááAN755ŠŠºpá‚™™Y£F222í±±±R©TÓó& 9Ò¢E‹F-Y²D,[YY…„„épíÞóÜB™¡¾ÐÉÖŒ¢¨ã7Yˆ ÇôôŠˆ}•šSȧx>®vBÿÑ‹Ì*åTÙò…jh'w#}azŽÔÓŶm3‡ÃW´¥“7ŸÌÚvê`ß+Q zB~ÿvn •úü§äDöR†§ÉÙ›Ž†OÚvbÿVÛNG¼îÒ^š¦'fvlÑð^|jV^±«]ç–UO°W‰–v±‰~uæªÎ8ƒüšè Ò² ½šØµr­Ï'2.¥wÛ&ýÛ»^Œxfj¤?¢«3¡ÁrQj¤vYpoh5mhÛ]¡’Û“¡ó]ÁÍ6Ô.l¨=E9sfîܹÁÁÁ¹¹¹ÖÖÖ]»vuvv&¥G1cÆ”)SÔjµ§§ç¾}ûÈVª(ónµÂf3ʶg;v,yKþž={6((¨OŸ>¦¦¦Ã‡_½z5ÉÚçñx»víš6mš³³s“&M&OžbÄ^Ùè‘Ù Aƒ!C†#b±X¥RU7Õ€²çCk… :jtqqÙ¹sç¢E‹öîÝëîî>kÖ¬‚‚&Û’Ïç?~|„ cÆŒqpp˜4i’££ãúõëÉL…Z­–H$Ì£!Øßrppp|hæ‚Sx¥™°ÎãUH.¡(ŠG•þ¦y5¶}‘–—S cJï=M½8ÐÏÍÈ@/¯PôÛ_Iùkö]ïßÞí“®ÆB©L‘˜š{%*@q‰2§PÖ£µ‹…ÈP­Æ«¬üm§#%fT)§Ê–—(”ÛÏF–=·A~ôêCf»ÏG‰›…÷ïàöå€6äÉ ÛÎD0û«²—jÿ*{ãÑ[3‡µ›4 Õ¶Ó¯kÛÝç£>ëÑrñè.*µúiröÖSwçôÓýtMí„Ý«Î\UÂbœ—éy»Ï)]‘h IDATIú·wëíÛ8#·èÌ­XAÙÞ¯,¥Fj§‘…²›­ôÔñ®àÖ6Ô ÀÞýGú÷éNRn8ÞAæÌ™søða²ú?$%%ÅÓÓ388xêÔ©ÿmK88888Þ8¹¹¹§C/öïÓ]ë89´ãzíÄ.×5üaÒÙpnöƒ<|mÁ–°Xc-8·}ŨQ£þëVü«ìß¿¿÷øÅ,¾û¢ÓéЋ£Gr³ ïÿIV}xxø¥K—Úµkg`` ‘H¾ÿþ{Ííž88888>j=:»tçå7ÞŽ:Â~?ïß¿ÿßlÌ{6¼ëÐ45oÞ¼_u~~þ¾}û–-[FÓ´‹‹Ëĉ,X p÷ ÇG—ÑÁñ!Ár?³»äp;)½ëP•——·xñp÷èÑãþýû2™¬¤¤äáÇß~û­žžÞ¿ß Žw²ÿ ÷ÿÃøãôÁ[Â>lÕýç¨ÜÚŽÖ6pNÇGÂÇù\WÍgðU†|9pk88888888884~"ß‚Ð7Dpp°Ž5¹$%ŽàÂŽàÂŽ·È¥Køî»wBμy°µ}-ÑdåJ˜˜èTóMÙ¡JÞFרž%U€þý_ï”·jí–†   J>Ÿomm=xðàððð§}ï8ôÌ™EíÚäPTEåìÚ%׬`i™KŽký5nœG*üý·²OŸBGÇ<=½=½GǼ#¤QQ*M!aaŠÞ½ --s‚3³\ÿ‚C‡Êµœ>­¨RÅýû„°Ó¿!9+)IMŽääÐsæ;9åéëçØÙå'}ùRýZƹ{W5xp¡¥e®¾~N“&yK–•/¸9{V1j”ÔÍ-ßÈ(W(ÌiÐ o„"F;t°m¦«QEÔýê¼=®_¿N>•3gÎü÷…¿UíÕqèÐ!¢tùòåo[×k^Ž7K\\ܰaÃ,--y<EQóçÏÿ¯[ôÑñî„ ÿ-ï{ûß/8k¿ ^oI´Z­ÎÈÈ8qâÄ™3gNŸ>Ý«W¯·Ô¬÷…ädõ¦M%µ8QO¯t¾D¢:wNÁOJR:$?yRq÷®ióæ|¡¡Šþý Õj05¥òòèk×”×®)sséI“ôß@ª¢ €îÔ©àÁƒRÿ85U½k—üüyå?ÿ˜6l¨Ó Õ_)úõ+T(ÀãÁÄ„zúT½b…ìòeå¥K¦B!üï%gΔwüåKõöí%gÎ($S[[t°m¦«QE¼›W‡A^´iÓæí oݺõ¿¯½:îÞ½K^ü O?üoÍËñ)..xñâ'''}}ýN:ý×âàààx/Ñ5I髯¾’H$W¯^íÙ³'¥RÉ2`S\\üfZ÷:¼%¥ìbĮ́Y³ô0ž9³jñüyÓþ)ÿûòËÒjŸ|"$/\]y¿ýfôè‘(=ÝìÆ Sww>™ŒÞ¿¿tÄú·ßJˆWúë¯FùùfçÏ—N…nÙ¢íRŸ9c¢©ËÅ¥öh+WÊHÌ0s¦þ«Wâõ뤤¨çÎÕÕÈÓ¦+Ð×Gt´(/Ïlñb7n(ÿ÷¿Òf =ZïÒ%Ó´4³«WMyRSÕL…m[£éjTQ#oðê¼q"##É‹·áz2«sšßªöê`Ÿ·­ë¿5/G•Õâ¬óçÏ“˜aæÌ™ ?8p࿦À¬YXµ yy (PJGGcà@˜™ÁÐ~~¸~½ü”øx  ss°±Aß¾((¨VNeÂÂС !cÀ<|¨]áÖ-´m 4h€uëjЫ£L†êúU ;T'ÈÔ«¡cÙ² ¥11ð÷‡¡!ìì°fN ÓE,ÃÎ ±jU]5ÆÄ`èPÔ¯¡667™™Î=|ÍšÁÀîî8r¤BËebÐýnáx-tõ,mmm½¼¼:wî¼mÛ6r$&&†¸Ô#GŽ$î×®] ‹ÅÌzTTÔˆ#ìììôôôlmmÿïÿþ/..NSìýû÷Gíè訧§'‰Ú·oíÚ5]ºt!2óòJ“y˜#………,JŸ¦N-u…{öNœ¨ß´)ßÊŠòóŒWú<5yYžKaaé‹~ý„zôòùä¸ö»>>|~Û¶¥ê K'4ªlüöí%®®y9žžù§O+´DíÚU@(ÄêÕ†vv¼Y³ô4à8qBž“C—]\ÕˆR;»<=½[Û¼ÿû?i\\iþOR’:6V U+•;¶´¿»w—úÓ;wïÙcܵ«ÀÚšêÜY0¾9þô©ZGÛÖhºU:$÷ó+°µÍ sôõsœœòƯÅôF®ÎýûªÑ£¥$ÓI$Êmß¾àÚ5e•=ª’Ë—/ÚÛÛëéé™™™ùûû?}úe®§H$R«ÕÆ ‰Dæææ³gÏÖÜzùÌ™3 °¶¶ÖÓÓsrrZ¸p¡–ëÃ.ÜÔÔÔÍÍ À¦M›ø|>EQ;wÎÈÈx#Ú/^ìããcaa! š5k¶|ùr¥²Ü2R©tΜ9¶¶¶†††Ýºu‹'Jíììììì:t¨K—.æææ|>_,·lÙò«¯¾bN ·}VVÖ{gÞʰtV©TRÕ¢EéCOår¹žžEQÞÞÞ56†½ˆ½ì—€½”¦é€€ }}ýÆóÍ7šÂ(в±±¹qãF·nÝLLLæÌ™S£X-lmm‡ B^oܸ‘¢¨O?ý´.Ú+ÃÔ¼yófïÞ½MLL^ëV™>}:Ifj’ûöáÇž>}J«&NœX]ß}–,Á´i05EBpëÜ»‡›‹Ý»qú4€²y8 „ÄDìÚ…¿ÿƶmhÜryÕr*ó×_èÛõêáÄ ìÚ…çÏáç‡ÄÄò ……øì3LžŒ‹1r$æÎÅúõlzu‘ÉÀÒ¯ZØ¡2h߯^á×_qé¾þ¹¹å¥R)FŽÄðá8qâë¯ËnvEìbÖ¬Á¤Iزß|SWIIhÙÛ¶áʬ]‹Û·1xp¹¢³g1b<=qî–-âEâ´ê.“&:Þ-¯Ëk?·A­.wª´žˆ1|øð´´4äG=44tðàÁr¹œÏçÛØØ¤¥¥íß¿ÿôéÓ7nÜ ?oaaa,))õ# Å­[·¢££;wî\ŠÊh*U*•IIIìííU*Õ“'OžgŽþ‘# •  Ð~`sãÆùR)­¯??Ap°a§NÕ^ÜmÛJ&M*ýÑŠŽV \heUÞž/Ôéé4gg¾‘Q©ý›7ç¿x¡V*!‘¨ºu„†*.”ËÁçÃÆ†—–¦Þ¿_~ú´âÆ Ó-ø2Y©(•JûEt´J¡€Psó W6?¿ô'ÖÙùµ'Iª3]*nßVݼ©‰(^v6˜¨Þ±£äâEÅÇ"¦ãì*j¼:aaŠ Ëîq(ô­[ÊèhUçÎ:}ôfÏž½aÃæm^^Þµk׌‹ŠŠ?~ @ øúúJ¥RRaÆ ]»v8p J¥š4iÒŽ;˜™™‰D¢ÄÄÄ~ø!&&æìÙ³: ÷ññ¡izöìÙ7n0iÒ¤ŸþY(Ö]»Z­Þ°aCQQ‘­­­‘‘QrròãÇ—.] `É’% »téÂ$ó\¾|¹K—.dd(ýþûïÄ‘211qttLKK‹‰‰‰DLw$ GGÇzõê½_æ­ÜNöÎ>zôH&“`‚„( ^^^ìa)ª±ì­b/U(£F:¢1„¿zõê[·n]¸p¢¨ŒŒŒäädjµº[·n¤;ÞÞÞ5^wM’““É׸&>>>µÖ^YSS*•vêÔ‰Çã‘ßÝosss¢¨¨¨ÈÈÈhóæÍD2 ûå—_hš¦(jöìÙUöñ½ÀÂb1x<89•\°vv ƒtë__¬\‰?ÿDQ<ÀÎ4¨´23?TYNe/†›þü´m‹Æñý÷øßÿJ+H¥øá  ~~HKÃÊ•˜6 Eµzk”©K¿^×U2>lmqå @+á®°›6¡{wèÙW¯âðaÖ¬ˆ],šÆ¬Yض GBsº®ÖûôAŸ>¥Büüàí ÄÄ€Œ~,[//8â6iæóÇr{hR¥µ9ꎮ.ZjjjTTÔµk×¾üòKr¤eË–šuôôô._¾œžžþÇ(•ʉ'Êår{{û§OŸ&''ß»wÏÈÈ(??ŸŒÙ¨TªñãÇ“˜!888;;[*•ž={ÖÝݽBûx5´PSiBB‰~þù礤¤”””¬¬¬kkkJ¥ròäÉJ¥’Ïç=z´¤¤äèÑ£ä[ž¯N¬Ž&ª‘ J½éY³ ´Š,-sùüœfÍò#"T¶¶¼°0S_ßR·ræLý•+ ML¨o¿-62Êýüs©PˆÙ³ V¯6Ô"•ÒJJpé’²[·‚K—ªÒV*ñí·Å( ûöçæšmÜh”šZ ¦¥•¾‹Ë]gæuzºZ©ÄĉEr9ìíyOŸŠ““Å÷Œ¨ü|zΜbNN< @D„òÊ¥LFoÜXÚw• ¹¹Úó$‰‰jb±˜š2åõ–°˜®F >åå™%$ˆsrÌÈtDb¢úØ1…Ž*دŽJ…ñã‹HÌl˜m&•š=kB’jdãÆÄŸóññùûï¿KJJž={¶jÕ*;;»{÷î©T*ùùùß}÷]\\\¿~ýÈYdBoõêÕÄSùå—_²²²ÒÒÒú÷ï 44”TÐExóæÍ‡ ¶qãF@ðóÏ?oݺ•8µu×^PPðÇäçç''''%%EEE‘Ó/^¼H^,\¸Ä £FJNN–H$Ìè,™Ü¹s'€6mÚdgg?þ¼  àÆsçÎ%u^¼x‘j\½wܼ•aï,  $0GH÷YÃRTcÙ[Å^ºxñbâµ1"55õÅ‹M›6péÒ¥«W¯`n‰ìììU«V‘ÀràÀìbµ°··§iÚÆÆ€ MÓ4MÏŸ?¿ÖÚ+«`jËÈåòqãÆ½Ö­B±±±aaaäW¯  @*•’þöêÕKë—ñ}G.ÇåËøä0NEaÀܸFFpwDzeøùgÄÄ€åÙµ*rsËÿÈd¸s¥þ=€úõÑ¥ ®^-?K(„æ8a` ²³qÿ~µzu‘©K¿^ו{WR‚k×ðé§¥Î}eLLЭ[ù[$'׬¨F±*FÂÞ½ ÓöÑk§‘TX¾-Z@$‚È‚µ'O ¸wïbØ00ãÆ^^pu-}­ûíÁñ6Ðu¶á—_~ùå—_˜·|>ÿûï¿×ª³fÍš.]º°²²ºsç3ZÃ䯩ƒ+W®(•J‰DB\üvíÚ‘QF}˜ØSg4•æåå …B…B±fÍšÈÈȦM›zzz2DOO@dd$ÉVêÚµëСC :´[·n.\xõêUTT”f³¦X­Zµ"YA-Ÿ«©"©)ݺ <=µ½F±˜*))ÍlIMUù¥4,ÌÔɉ 1Q}YXP¹¹´B cÆè9¼-[Œzô6hÀKNVÏ™Stì˜B©ÄâÅÅݺ™Vnüýû*2™Ð±£`Ô(=_}¥ÿóÏ%kD9É®ùÉ”H”ÉÉjj5&L(ˆ%ï+WJ%¬^m8yr‘R‰®]µSµ\£‡U½{ffÒÔÑ£&¯7ÛÀbºUtì(8sF±}»<%E-—ƒ‰ž//|<õõõ;vìØ1”91222ìííu¾cÇ™LV¯^½#GŽ¡ŽÚ›4i"‹ÍÌ̾ÿþûÄÄÄ¢¢"fÓÔÔ@VVÖï¿ÿ aÆ;wîÔÓÓ«_¿~çÎ?޲Ùr3ß½{·cÇŽ:tèÞ½{Ÿ>}˜LGGGöì»lÞʰw–ñ\™I3`é)K‘.‘½U,¥YYYd‚ÅÁÁa÷îÝúúúúõëG&aâââºtéÂtaÖ¬YšëèØ•V&55•L801U]´W†©¹páB²ð¯aÆ䈎Ÿ ò¶  `óæÍ4M:ôèÑ£{öì!3lÕåG½¿ää@¡À?VXW R•ÏKŸ=‹¥K±|922`k‹Y³°`*'ܹƒöíËßÒ4rs¡VÃÚºB5kk”](‹+ü YY@vvµzu‘©c¿^«~•½S©Øö<56®`%dD”]Qb qê:wF»voF#€¯¾ÂÁƒX±íÛÃÔ99ðóIUÈ˃Z­ÝÍÌoŽ·Áë9Á<Ï¢}ûöAAA:tÐ*Õ\§˜žžN^¤¤¤h.- T*óòò˜ $»·F4“£ªS*‹7mÚ4þüääd2ÀÀÎÎ.44ÔÓÓ“IvÐXcoo¯ÕàÊbP¥5µòº0S ³gW!'>^ 3“^¸°xÇŽ’¸8õÂ…ÅøüséJW®˜úù bcUmÛÄĨ† )ŒS¼¼ø^^¥¿š ò¶o7>v,ÀÝ»Ê*Ÿ™©f*3œxLØÀ$Påå•Ç Ìkkk‰:¤¤¨SR*\¥yyt½zÔ—_ê[YñÖ­“=z¤26¦úõž?¯HHP‹Å”æ$ÆõëÊAƒ srh±˜:qÂÄßÿµ£2Ó±« i X¨¹ÕƒÖ2øZ_ÆPnn¯yuíÚ5â1ôîÝ»rš “½óÙgŸ‘111ä…§§ç•+WH^MII 3~Ïàêꪣp’ú åÔÖQ{qqñàÁƒÃÂÂ*÷ºyóænܸ!—Ë 0€Äü(ËÙ@YذdÉ’!C†ܾ}ûöíÛ6lððð¸zõ*qÂjüÀ¾Ëæ­ {g+Ï6È„¢(///–ưÕØÇ[ÅRzõêUÒ÷¾}û¯³ŒÍÒÒ±Ðرcu7Ee9Œqê¢E~ IË¢££É ]nhÌ6$''ïÞ½»iÓ¦$lÈÏÏÿùçŸxxxôèу½ïb1ø|Ìš…ñ㫮а!ví€G°};‚‚P¿>FÖ®Ö¼¹öº^33ðx¨ø{ŽôthÞ yyËQöÕâ Uêý䓚eêØ¯×ª_e臘ê$\wE5Š‹qèúõÃÈ‘ .ç5šbß>Ì›f겯ØÒsy<”}(KÉË+8†Ž·ÇÛ@WofÅŠ4M«TªŒŒŒ“'OVŽhΰ[—æ£F¢+Q¯^=¦ãÑ‚=bV>­0Ø•˜}:™s;~ü8Yý^¯j`Ð×/ÿm``€.]pù27FÓ¦þ´hÖ ?ýCCÜ¿_…SStìXþG$ûúâÈ‘òQí”\¹ÍØ\¡ÀÉ“åo‚…<<ªÕ«‹LûõZv¨Ü;}}tîŒýûñºÛz±+ÒElçÎ Åùó1¢Bj§Q­†\ÍEIG–¿64DëÖ¸p¡üHJJé  …Öí¡…–µ9Þoë)ÑÞÞÞä;ýرcÊ.~zzúæÍ›É— õ_²dIfffAAÁ¹sçHefàüùóvìØ‘XåžQ(6lÈÈÈð÷÷Ÿ4iÒªU« 0YΤI—.]:tèPQQÑáÇ/_¾  ~ýúÌJ•DDDNž­V#"B5dH¡JŠÂ¼y¥cÀ¿ýV2|¸T&£ÍÍ©  é[·”·n)>TéhÛMÇ®‚‰š¼½ùdŸ(Ú½Á«ãã# QááÊ%KŠ33é‚úܹr£±Ð AòâØ±c§OŸ.,,|ùòå† Š‹‹KJJˆ?ѲeK`’­o<==y<žSÙ°äææP*•7oÞœ0a•+Wt¾sçNò!1cã~Õ];ó°ÈO?ý´^½zéééÌÜ ˜háÆjµZ¥RÍž=»  eS þùçŸþi``0f̘_ý•¬¢FYŽ€æÍ›ZYYÑÕä½¾³æ­ {g•J%ù~+((ÈÌÌÌÈÈ=z4 9K,a)ª±ì­b/u-KR>yòdBB«W¯FMb˜Ù³g[XXÅÆÆ2×ÑUR9l¨µöÊT®™ŸŸŸoÌ<ÉŸþ)‹ÇŒcbb€¤äÙØØüßÿýKþ+ž<@€²übðò‚æ¯èòåJSÕ4oŽ¢"üú+îÜ™Y»Ož kWìß«Wqâ¾ù‹@b"ºwÇ–-¸r.`òd#  j9•Y¾cà@œ=‹#Gг'ôõ±`Aycc,\ˆmÛpõ*æÌÁàÛo!²é­Q&K¿^×UòãHKƒ¿?À•+ؾ3fTtn˜.b;vÄùóøë/ ®“;΢‘ÇC@¶mC\ 8€­[+œ»t)ÎÃúõ()ARFFÙÔ Ûe ƒ@€ýûKkêr·p¼.µß­A®@ðÛo¿ 2D&“õèу¬ iBÆ Àçóÿý÷Aƒ•””¬X±bÅŠäÄÍ›7Œ9rïÞ½>ûì³3fdeeÖødâ^Ìž=[$™šš¦§§“0ÈrF@°eË–¡C‡*•Ê#Fh6uË–-µ[´ðâ…ÚÙ¹ÂDÚôéEÓ§(.630 Èd4ÙÅßÜœ3F{TïäIÅÎÚÞª±1Et`Îý Š•JtêT Sùù¥ŽÐĉúÆÆ€Ü\ú‡d?üPa`U,¦~ü±êÅMV®4œ4©¨¸˜öòÊoÔˆ§Ò×§Š‹Ë¬o¿58sFñàjãÆ’K'|lmyk× ¿ýf4dH¡LF÷èQheEÈÈ  VÚÁèhÕĉÚß}gØ¡C©’“¼³œ:0PÊÔñ÷\¹bª‹mk4»ŠvíææTN½}{Ir²:#ƒfoÇP÷«óûïFƒ–”`Å ÙŠ¥×hóf#òÇB×®]Û´isç΂‚f›/‡Y³fݹs‡ÜØL*ݽ{÷H9Ò½{w__ßÛ·oߺuËÆÆÆÊÊ*++‹ ½¯ZµJGáÞÞÞû÷ïïÚµ«L& Œˆˆ‹ÅÑÑÑuÔÞ¨Q#râˆ#|}}ÃÃÃÉ7ƒH$jܸ1€ž={ÚÚÚ¦¦¦†……9::*•Êüü|r 8pøðagcc£T*Éé®®®dü>???>>€——Wu[±½³æ­ÜTöÎ ggç„„„üü|²êפl"Ÿ8Ê,a)ª±ì­b/õ÷÷ïҥ˕+Wbcc™›ÜË–-M ®µ¢]l•°ÁÈȈ‰j­½2•kÞ»w|èx«@c¶A­V?ÞØØ˜ìpEäL:•ɤz§ ií”}­yoµ*Uù¢¸Aƒ0i/Fv6ê×GR<=q炃1k²³aÉßTâ IDATa6m0m˜™ÁÁk×"1|><ûÌÁÁã.]ææTa!mbBùú 6o6Ú¼ÙˆTXºÔà³Ïô7æéëC(„“oÂý¨(Q‹Õ.œ8QÛ6#žZ šÆÖ­FݺUˆšLM©ë×MgÍÒoØ'ÂÖ–7v¬ÞíÛåˆî×O.9R¯~}^N-•ÂÝ?a‚þìÙ¥¿pÍ›óýýõêQ|>,,¨¾}….˜.XP§õ!¯k:vÄbêÜ9“ví|>þùGÙ¬oË£×UQãÕéÕKx÷®è³ÏôxŒ©6m,—†Ïçÿõ×_óæÍsqq …äNfÖÔ2~-“ÝNŽðùü°°°¹sç6jÔˆ¦éÌÌL;;»ÀÀÀ;w’]etNœÎN:‘1Ýøøø/¾øâh_ºti`` ±±1Ù?mÏž=dg!ÆË766>þ|§Nôôô”JåÈ‘#§•ýÔíÛ·÷÷÷·²²ÊÈÈÈÏÏwss›;wîÍ›7‰Ç,‘H4]·÷˼•aï,€]»v5mÚT(º¸¸¬^½zÊ”)š*XÃ^ÄÞGöV±—Ruúôé   F …Bssó€€€C‡…„„ìÐÊS:šB‹¢¢"²þ¸E‹̼A­µW¦rÍ{÷î½Ö­°Çã‘ûœéŽs5ß5š6McåÊò#÷ïWH M—'çðùغ™™P«Ë½·¦M‚ôt(•HOÇ™3¥;rŠÅؽqqËQ\Œ;w0|8›œÊô쉛7Q\Œü|œ:Ím¨~ú ©©hÛááÉðò%˜¸Xô²ËüöÛògø°ôëuíP^^8y¹¹P(‡o¿­Ð5MBB*<¯€]‘ŽbÛµC^އž^4ÚÙáÔ)#/gÏÂÏ4²Õd0|8?FI ž>Åäɸp§O¬—©wï Bt¼[8^ ÀÞýGú÷énffö_7†ƒƒƒƒƒƒã¿!77÷tèÅþ}ºk'9'ã#¡Æ'†}T—ÓK _£G¾­$%Ž÷ vú#‡ jEåü×M¨š6×:ò^4ûƒ§òuáàààààààx—y‹k88888888888> ¸Ù†Úóž¿§Íæààààààààøáf88888888888j€ 88888888888j€ êÊõë×)Š¢(jæÌ™ÿšÒC‡¥Ë—/¯ÅéL›gèøxÉê%Ժׅ……ÁÁÁÁÁÁûöí{³’u¡îx¢88888888ÞY¸°¡®DDDmÚ´ù×”Þ½{—¼ Í}]˜6×ît¼‰^GFF.[¶lÙ²eáááoV².ÔÝoCÇ; ·$º®0}mݺõ¿¦” XžƒËB=N: C‡µk@Ý{­õäÝ7(Yên·!Šƒƒƒƒƒƒƒã…›m¨+Ä͉Djµzذa"‘ÈÜÜ|öìÙš 9sæÌ€¬­­õôôœœœ.\XTTÄ”.^¼ØÇÇÇÂÂB 4kÖlùòåJ¥’© •JçÌ™ckkkhhØ­[·øøx¢ÔÎÎÎÎÎÀ¡C‡ºtébnnÎçóÅbqË–-¿úê+–6÷êÕkÀ€ãƳ°°ààà@Q”ÍÍ›7{÷îmbbR¹ Õõ:--­]»v 4ذaS¦é€€‹ÿgïÞ㚸҇Ÿ!$H%VQY”‹ŠA$ÚѶ]Å[ueµÁÛÖzꪩ¶]·Ô×Zµ((¢H‹¸P4T­bQÐZui *Êý’¼œÝùÍæ23 ^žï_™Û9ÏyΙaN2 VV<ÏÑÑqÆ ¸ÕmmmÆÆÆ111xÏ… addôôéS–ùTƒã0`ÀåË—¥R©©©éÈ‘#¿ÿþûÖÖÖ>úhðàÁ|>ÆŒ?Ö•úÒoÕ7™¸7% îÍ;wîðù|‚ ÆŒ£«Œ#àYHIÍhhhPý577s8„•••P(¤f5++K¥Ruuu-Z´¯‹ÅÖÖÖøõ[o½…Kèîî633322²³³³··'Ç;<}úTíé—ÁƒãÁÁÁ*•jß¾}xÑÌÌlèС|>!äíí­+æÚÚZ¼ÿ´iÓ¨‹B¡ÐÈȈËý¿ phZ-‹MLL¨±>|X¥Rutt„‡‡kŽ´©S§*•ÊK—.inrrrb“OšæXYYá¶cæææÞÞÞÔ–/_®5ô ¤ßªo2›ššÔzÓÎοX°`Ö2Žè ø~@ Ü$ðŠÃן6ôÐõë×»»»BOž<Ù¾}ûÝ»wg̘7ݽ{!ô÷¿ÿý›o¾AýóŸÿ”Ëå= F9sïðôéÓÇ?yò¤ººú?þ¸ví>üìÙ³øÅºuëðÓóï½÷^uuuii)ùI~¼çÀ¡ &Ô××ß¿ÿéÓ§ÅÅÅqqqºb&«7nuGÕÑѱpáBjhZÝÖÖ–’’R__¿yóf¼éÛo¿Emܸ1##!4gΜ‡þöÛo£FB;wîüùó^^^ÍÍÍFFF¡ñãÇãyûöm6ù¤iNSSÓW_}uýúõâͶ¶–””|ùå—x\…fèH¿UßdþíoýõèÑ£k×®‘½©ë«Œ#à€ï6ôù þÊ•+W¬Xš4iÒéÓ§Bööö;vì@ñx¼“'Ož}zùòåË—/öÙgnnnçÏŸÇÚkÒõ9ùXQYYÙúV“‡o™K$’óçÏ·µµ!„‚‚‚ðœ!ÔØØˆ_ 0€Z©Zôù¤oÎ;#êèèÀ³Ñ£Gã9ƒf]j O ýV½’YTTÔÞÞŽzóÍ7ñz(6`À€Ý»wã;Â?üðñãÇ*•jÆ øüÒÇñ¢ ~ÑÜÜŒ±ÔÆÆ¿}pÿþýƒ.[¶ ?(ãÆãÇ늙ŒðOú“ZÀx|ïK]£µÕ¡Aƒáä¤( €üæ±……~ÑÖÖ–““ƒâóù~~~¡ëׯãMj÷Êôù¤iŽ@ pssC•——wvv"Ê1‘Ñ’?Ù¤–úÒoÕ+™dfȯmÔÖÖþøã!gggSSSÍÖ1Ž„Pggg[[[[[›ê¿ßºf³@/0m0\{{û/¿ü‚3f ~j¥©©éßÿþ7BhìØ±FFFxÏ´´4…BêêêºpáÂûï¿_PP€"ÿeÁ»ï¾kmm][[‹¿þ{SHΊ‹‹•Jeww÷ªU«ð/á233333ù|þüùó“““7mÚ„÷×õKKKË;wÈÕBOž<©¬¬¤®ÑÕj„Paa!Bèßÿþ7þnƒµµõ¢E‹œœœðÖï¾û®²²²¦¦fÞ¼y555¡U«Vá7éq–BA°Ï'MsÈCÈÏ+Ô& AàÔšLŸ@ú­ú&“|Jêû￯¨¨ø÷¿ÿ?™Ñõ„ãAM™2E …Bò36kô)®¬¬ ¿±MÞÀ]¿~?zŽ×xzz^¾|ùÒ¥K‰dàÀr¹ß&nݺ!4|øp|àœ9s<==úé'üP¾………££#Bhúôéƒ zøða^^Þk¯½ÖÕÕõäÉ|¾ÑLKK;~ü¸‘‘‘D"éêê‡;99…††êŠGˆï¡ÕqðÒºþ#Ùj@ðöÛo;::Þ»w¯³³ÓÄÄ$55ÕÊÊÊÏÏO*•ܹs‡l n#þþBk!4eÊ„Ж-[6oÞ̘Ošæ;¨}¶ T*ñcB#FŒÀŸ~¨5™>ô[õMæÔ©S‡ZUUuçÎÜ¿‰ï©ëÛ1ŽîînÜÀ?ýéOøC 6kôŸ6N×Ó/䇓——7|øp•Jõøñc[[ÛðððàûÅÍ›7‡‡‡ …Âúúúæææo¿ýÿŽ»»;~^(æææúúúš˜˜tuu½óÎ;ø‹Âd“&MòóóÃ_~òäÉÈ‘#ãââ.\¸`ff¦5fòá{ü]dµEDy|H×:Ùê;vüå/©««ãp8S§NýñÇñ—€ ‚ÈÎÎ^¿~ýðáÃ---ÓÓÓ=J>П˜˜èããC.âºóIÓrüiƒ‘‘~üéÎ;øËäjM¦O ýV}“ibbò¯ýkêÔ©<ÏÖÖvóæÍAAAx‡7ÞxCkGȯ¿þŠ?@ +e³@_B(%5#ø­±XÜßÁð2»ÿ~ss3þ*swwwZZÚ¢E‹:;;gÍš…e ú‘B¡È>s6ø­µõx%Ü$ðʇyï…ÃCJ<#ÇŽ[¿~½X,‹Åuuuøc1cÆìÝ»·¿C`)ðŒ 4hܸq]]]¿ÿþ»‰‰‰¯¯ïçŸ~ùòeò›Ï-ø´€gdþüùøÒ¼pàÓ˜6À´À¦ 0m0€i€L `Ú`Ó˜6À´À¦ 0m0€i€L `Ú`ÓC¦ «W¯4hP¯‡BSlÕ¨U```pppþìSØHNNvppàp8b±¸¿c1Ðs~Ž|òÉ'fffÔÕ“v;wnûöí½U#ƒÛØÃcŸ™>½6xþÁ§ àU÷ǬX±"$$äÂ… ýÎËÉÆÆÆÅÅåWª9mèS=ic¿äÐ LÀK¨½½ýÎ÷îÝS*• .ôòòrwwïÓº^YK—.½|ùrGÑ·zÒÆW!?^ttÓ†²²²Y³fY[[;::ÆÇÇS·–——ûùù [[ÛmÛ¶©*‹··wQQûbI066Þºukk,//Ÿ={¶±±±D"Y¸páãÇ©Ç?~ÜÙÙ™Ï绸¸dddP7UTT„……YZZr¹\‰DôôéSšŒ=·©clÑܹs=<<¨{J¥Ò°°06UÓoÒÕ]‘Ðä//Ãáçææž}º²²R.—V—¼Ï„ .^¼(—Ë“““Yvtww·X,ŽÇ{†…… ‚I“&áů¾úŠËå>yòDkÏÕ9¢&11Q(²IŽf»„Báˆ#¾ùæ›âââ5kÖ „víÚ…·Òô”\._±b…¹¹yeeeeeåï¿ÿΘ%­)uuuÝ»wï™3g‚ƒƒ¹\nll¬¿¿fffZZš½½½§§§Ö6ê;¼Ùç';;› ˆyóæœ8qÂÅÅ…Újè{–¾"ú~WCs`<›ôJ²¾û³9—YÅWACC¾P£õ&ðêÀ׺iƒ¿¿ÿðáÃ[ZZ4Æo¯æçç“kFމ_OŸ>ÝÑѱµµ/*•J°°06ÅJ$¥Rùᇠ‚¬¬¬^©QÍ7BeeexÑÓÓsܸqJ¥/–––"„ðŸÆææf„Ð4 ¹ÿ>‡Ãù裴Vñ\¥ŽŠ¦EôÓšªi6Ñ4GW$4zyy¹¸¸tvvâÅêêj@Mf!T\\̦(52™ !TZZjp]šð>ׯ_'×xxx°ìèÐÐP©TªR©º»»---ccc¹\îÓ§OU*Õœ9s¼¼¼hj|~Î5j·Å4ÉÑÚ®'Nk¢¢¢¬¬¬:::TL=µaÑH¤Yš®,i­Z&“áņ†‡ãààÐÖÖ†×ìÛ·!TUU¥ÖF†7ûüxzzNœ8‘Ütûöm‚ tÝÍ«QëYÆŠtõ»&šë›³‰}’õÝŸMí,‡â«¦ ­Èiƒö‡”ÚÛÛ ß}÷]@ u33³©S§’‹nnnÕÕÕ¡ŽŽ™LÁçóñ&‚ BBBðCŒÅvww¿÷Þ{)))yyy¡¡¡=¯ï0zôh >Ÿ?~üx„ÐíÛ·B­­­%%%o¿ý6Axgwww'''üÚÔÔÔÅÅ%>>~Ïž=ååå*•Ь}èС]]]ZŸzSG¢i šªi6Ñ7GW$ºÖ·µµ]¹r%<<œËåâ5vvvR©ôüùóÔÖMž<¹‡5¬.­Äbñ˜1cÈÅaƱ±S§N½xñb[[Ûµk× ÅÚµky<~¦H&“ùûûëªñ¹:G KŽVÆÆÆ!!!äbxxx}}ý7Øôû,éÚY*•’1ÛÚÚòx<¼ÆÙÙ!TSS£v”¾Ã[“®üàî >=èääDó]jšžeS‘®~WCs`ÓGú&™ýþlj×k(À+Nû´A¡PtwwÓüR¡P($ÿœ „¸\nWWB¨¡¡¡³³sçÎ|ŠÄÄD¹\Φئ¦¦ï¿ÿ~âĉ'Nì•BË—/OJJzÿý÷óóóKKKÏ;‡jkkC566*•JµxlmmÉ×999~~~ cÆŒ±³³Û±cãÑs˜:ªÞmÍ&Æ~щÖõ …B©TÚØØP«°±±©¯¯'ÍÍÍ©‰5¬±¸QÔ¥‰¼ÁŒŒŒXŽXÿööö .Èd²±cÇJ$™LvóæÍÚÚZê-¯šå¡IŽV"‘ÈØØ˜\8p B¨¾¾žMOiÒ•%];S9u ‡ÃAi=\¯á­y¸®üàî0`u«Ú"Mϲ©ˆ¦ß©è/Œ}¤o’ÙïϦv½†"¼â¸Z׊Åb.—ûðáC}‹‰D'&&fñâÅ+‰ÒÓÓg̘ñÎ;ï=z”|‹ÈàBGŽY½zõÊ•+ñbyy9õX##£ÆÆFêþäw‡zðàA„Э[·öïß¿~ýz;;»yóæÑÄóœ§NW‹¸\®Úí yoAS5Í&Æ~щÖõFFFµµµÔjkk­¬¬t%„¦ šCp£ ¨‹=ÆÌŒ=zÀ€çÎ+--Å“„©S§¦§§¿öÚk&&&ÞÞÞ½^ã3>GôÕØØØÑÑabb‚ëêêBVVV}ÝS=¡×ðfŸ.Üj_X—ËåºþçMϲ©ˆ¦ß©è/ýØGÏó€‘öOx<Þ”)SRSS[ZZô*ŽÏçK¥R™Læèè8ê±,vÊ”)gΜÉÍÍ3gNgggkT*•äþøg70@àáᑟŸO®yðà~üW³³sRR’@ к•êEIZ‹ìííûí7¥R‰·666’w4UÓl¢oM$Z×óù|OOÏŒŒŒîîn¼õÁƒä³ z5–^ëbS>}f‚J¥?üðCQQ9m(--ÍÌÌôôô455íÝŸý9¢¯ÎÎÎï¾ûŽ\LOO·²²rsscì)ÇæÒ§Ø oö¥áî8uê¹æÎ;7oÞÔº3}ϲ©ˆM¿#¦ë@ŸžMôú·vxùè|;çξ¾¾~~~±±±¶¶¶ׯ_ÿâ‹/KüôÓO}||üýý£££ííí ÅåË—•J%þa;6Åúøøäææ¾ù曑‘‘éééÔçô­ÑÈÈ(00pß¾}3gÎtppÈÈÈØ»w/õØÍ›7ïÞ½û¯ýk]]Ý‚ ÈϬ«ªª-Z1jÔ¨®®®ŒŒŒÖÖÖÀÀ@¼iĈëÖ­Óúõ†ç6u4- ß¶mÛ–-[bcc=z´råJêç4UÓl¢iŽ®Hh"LHHxóÍ7CCC—/_ÞÒÒÏãñÖ®]«+™4E1Ò·.}Ñw4BÈßßùòåÇ××!4nÜ8sss™L¶iÓ¦^¯±Î‘^$ ×­[×ÐÐàä䔕•uøðá]»vá±MßS®®®---ÉÉÉ<ú{Ÿ2`x³·iÓ¦ùóç/^¼X.—oܸQ"‘iyˆ±géÑô»&šë@_ŸMôú·vxÉèü¿ ¯¿þú?þhkk=mÚ´íÛ·«=!ªËرc¯\¹boo°dÉ’k×®M™2E¯b'Ožœ——wîܹˆˆˆŽŽŽžÔxàÀ''§1cÆ 0 %%Eí×ǃ‚‚Ž=ºwï^ ©TN~7@,<øÓO?>}zHHÈÕ«W;6mÚ4„J¥êîî&ßÁzQRGÓ¢qãÆ›èõoíð’!B)©ÁoˆÅâþ€êëë‡ ’˜˜HN¥0˜B¡È>s6ø­µõx%Ü$ðʇyï…3çÀs¢©©iÓ¦M ¨ªªÚ±c‡P(ŒŠŠê︼ü`Ú/ .—{çÎÇËår‘H$•JSSS­­­û;./?˜6À ƒÏçggg÷w^E:¿ L `Ú`Ó˜6À´À¦ 0m0€i€L `Ú`Ó˜6À´À¦ ÌÓ†%K–±jÕª^¯û“O>133ëõbÙ;wîÜöíÛ >|õêÕƒ êÅx>9éaðÏ@_ä§=-zb0@```pp°a[{R3#ñÊ IDAT²¾’““8ŽX,F/ÂYÖïúú2Þï&H/ʩ׻gP1LZ[[ÓÓÓAjjjWW׳‰é™y¡ï ^èàxýñÇ+V¬ ¹páBAA‚³Œ—þŽÀ³À0m8uêÔ“'O¶oß^[[û¯ý‹}¹ííí= ¼Àz±÷a gæÞ½{J¥ráÂ…^^^îîî=/ð…½= réÒ¥—/_î­`<Ϧ ‡5jÔŠ+ììì:D³'þ÷ìÙ³^^^ ..¯/++ ‹ÅÀÛÛ»¨¨HW ºö<~ü8AeeeÔƒ‚‚ÆŽ‹*//Ÿ={¶±±±D"Y¸páãÇÕ¢***š8q"ŸÏ·µµÝ¶mÞ³uëÖÆÆF‚ ‚N6EõbðYYYA\½z•Z~`` ‡‡‡®Ô•——ûùù êp¢¯…~ Ó'D+]£Ž±(ÆÌk=Y´&f<à&;;;óù|—ŒŒ µÃé·Ò7þXz4a/X°ÀÏÏ!4~üx‚ bbb 8ËØŒ^ª«W¯Q\\ŒÿñññÇãÅ»wïqúôi6i¡Âaää主»k}¯Õô£Wí!"š‹ÛܹsÕN+©T†_Ó\01}OU]Íinn5j”§§ggg'³‘‘Ñ?ÿùOòÀY³fY[[;::ÆÇÇS‹5àôG,N®ôôt<ªÝÜÜ233Õ4ê»3ô–’šÑÐРÒP]]Íáp6oÞ¬R©bbbx<^}}½ænX\\Çsss;{ölMMͽ{÷T*ÕµkׄB¡¯¯ï©S§òóó###MLLJJJð!‰‰‰B¡¿¦Ù³µµU$­Y³†¬ëáÇ'))I¥RåäälÞ¼9;;»¸¸8%%ÅÅÅÅÛÛ[-ª &\¼xQ.—'''#„Ž?®R©ärùŠ+ÌÍÍ++++++ÿýwÍFåååq8œàààÜÜÜ“'Oº¹¹‰Åâû÷ï“… …Â#F|óÍ7ÅÅÅkÖ¬AíÚµ ouuuuww?uêÔ¥K—²²²>øàƒÇ3–É2'Zƒ§Ï¶f™™™¹ººîÝ»÷Ì™3ÁÁÁ\.766Ößß?333--ÍÞÞÞÓÓ“ÜŸMžÕz?..N"‘àþþ÷¿s¹Ü¯¿þš1N­Eõ]ð]]]¯½öÚ’%KÈñ½Ú¾}ûtÕëââ²gÏžÜÜÜ¥K—’ɾú1¬oÇÑŒ:ú¢Ød^ëÉ¢‰~<œ>}š ˆ9sæÈd²ôôtGGG[[Û3f°ÙJ$ý±Œh®««KKKC>}º²²R.—p–±½TÝÝÝb±8>>/†…… ‚I“&áů¾úŠËå>yò„±^5qqq&&&£G¾víZkkë‘#GLLLÈA¢ïµš~ôR/Yô·?ÿùÏãǧÆéçç7sæLüZד,_¯S•>]?ÿü³‰‰Éºuëp[$Ihh(ÞTRRbjjêééyìØ±ÂÂÂýû÷ÇÄÄy3ìôW1\ÙÙÙAÌ›7¯  àĉ...ÏìŒPÓÐЀïÔèºI¼"ðu€aÚ°cÇ„Э[·T*Õ¥K—BÉÉɺJÄoYSWNŸ>ÝÑѱµµ/*•J°°0¼Hý{C¿çûï¿oooßÝÝwïÞÍápjjj4øqãB¨¬¬ŒÕõë×É<<<"##ñë 6ˆD"ÝYRyyy¹¸¸tvvâÅêêj@M-üĉäþQQQVVVÍÍÍ¡è[&ûœhO¿¿¼L&Ë ÇÁÁ¡­­ ¯Ù·oB¨ªªJëáZó¬ÖûxÚ T*?üðC@••Å&N­Eõið‰‰‰ffføæL¥R­Y³ÆÂ¢©©IW½ùùùäš‘#G’ɾš1l@ÇiuŒE±É¼®“…žZc===ǧT*ñbii)Bˆ¼•¡ßJ$ý±úR [&“!„JKKÉô=ËØŒ^5¡¡¡R©T¥Ruww[ZZÆÆÆr¹Ü§OŸªTª9sæxyy±©W £  €\³jÕ*rp­¦½ÔKýÅfÚ@sÁ¤–ÏþTeL×®]»ŒŒŒ~øá‡7ÞxÃÎή®®¯÷÷÷>|xKK‹®¬vúÓŸ\žžž'N$7ݾ}› ˆ~9#`ÚЊœ6Ð=¤tèС1cÆŒ5 !äåå5lØ0úç”LMM'OžL.vttÈd²ˆˆ>Ÿ×B~"Ï~Ϩ¨¨êêêsçÎýgž“’`kk‹MHH=z´……ŸÏ?~ÖÝÝýÞ{磻¤äåå…††²ŒSkQ}ü’%KÚÛÛ9‚÷Í Ù”Os&±¿¸iÒuÁTÃòTe“®˜˜˜7Þx#888//ïÛo¿0`B¨½½½°°ðÝwßZ0øôGºO.<ªÉ‡µBNNNä·Ì{ñŒ€žãêÚPRRòË/¿lذükúùçŸß¹sG×UÉÜÜœ¼x!„:;;wîÜI}¬¶»»»»»[í@Æ=}||RRRoݺõóÏ?>|oZ¾|ù±cÇ'MšdnnÞÐÐàííÝÖÖF–CÞJbFFF,J¡P(•JêJüv&‰ŒÉÅ"„êëëBø3ë„„„ºººAƒÅÄĬ]»–M™,sÒÃýBjn9u ‡ÃA‘¹b̳ZïcMMMßÿý”)S&NœÈ>N­Eõ]ð‰döìÙ{÷î]¶lÙ‰'êêê–-[FS/56.—˲]cØ€ŽÓ5êè‹bSû“…¦±J¥Rí§*É[Lú­ôAÒ«æÊ•+“&M"ñ(ã0¦§ïèÕƒÿööö .”––Ž;V"‘øøøÈd²!C†ÔÖÖâ›T‰¹¹¹‘Ñÿ½+dii‰þ{iBú_«i®À$ö7­´^0Õ®,OU6éÂ9sÆÝÝ= €lBww7ͯ¬|ú#Ý'ÕxÞB"{ñŒ€žÓ9mÀ,lݺ‡•ôí·ß~òÉ'lЉD'&&fñâÅ=Ü“ ˆ¹sç~öÙgÉÉÉ)))fff³fÍ›Ž9²zõê•+WâÅòòr6±±!‹ŒŒjkk©+kkk­¬¬ÈÅÆÆÆŽŽ¼XWW‡Â; :ôàÁƒ¡[·níß¿ýúõvvvŒebì³gØþú2,Ï"‘(==}ÆŒï¼óÎÑ£G¹\n_Ç©cðÑÑÑR©ô§Ÿ~Ú»wï¤I“FÝëµèÃ$Dר£/ªw3OÓX‘HdddÔØØ¨3þâ,ãVú&ЫÆÕÕUóKÃ=¼\è›C­1¨=zô€Î;WZZŠ' S§NMOOíµ×LLL¼½½ ¨!¤P(ÚÚÚÈ·¨ñ'oš×–í¢¹“/˜\.WmâD½«ÖzÁœ7ožZ-lNU6ézøðáÊ•+_ýõÒÒÒÏ?ÿ ±XÌår>|¨ë(-<ªÕ~Q@.—÷ú=§ý!¥ŽŽŽ´´4///ÙÿrwwOIIÑõ ²>Ÿ/•Je2™££ã¨ÿeÀžóæÍkjj:yòä‘#GfÏžmjjŠR*•änøuXâñxäihßÓÓ3##ƒ|êÁƒä³1¡ÎÎÎï¾ûŽ\LOO·²²rss£–ãì윔”$nܸÁ¦L–9Q ž}¶ ГzôhåÊ•ä· h.˜šØœªôÍÙµkW~~þ¹sç,--·oß^PPðî»ï–””‚;wúúúúùùÅÆÆÚÚÚVTT\¿~ý‹/¾ÐUÖÃ+ä¦M›BBBæÏŸ¿xñb¹\¾qãF‰DB>cÖwgBóGfΜinnÞÜܬöMj…B!æÏŸ¯ù%kê¯mRݺukΜ9äp8 ÊÉÉÁ›¨?‘A¿'¶gÏ„õ=T*UMMMpp0ŸÏ·°°xë­·ðÅðG"Z£¢þ8IWW×Ò¥K­­­ ‚°··×úåñÜÜÜI“&ñù|ssóààà›7oª5ùÒ¥Kžžž<oðàÁø q¢¢¢¢ù|¾‡‡Ç±cÇØ”É>'ZƒgÌ¡ZðÔ5C‡]¹r%¹xñâE„PQQ‘ayÖ\yñâE ‹™3g¶··ÓÄ©k õ]ðØ£GBä-²¬—:œØÔ¢u «ôï8­£ŽMQzežÚ:5Œ=vìØÈ‘#MLLFŒ‘œœ@ýuú­ôM ?–}Øš¿¤¤ïYÆfôjÂÿÜ€šjüûäo…±I ý 1àZi½j—,š‹›J¥:tèаaÃŒSSSÉ_R¢¹`ª•¯bwªÒ4çêÕ«&&&6l ÷üõ×_MMM—-[†KKKCBBD"—ËuttLLLÔ•7ö§?ãÉuôèQ<ª?îíí=wî\ƶ`=9#ÔÀ/)´"I‰ÀÓ†à·Äbñ3ž®ðü8tèЂ nݺÕwKðl¬^½úðáÆ=£ÿü{éOÕúúú!C†$&&®ZµêW­P(²Ïœ ~+@m=^ 7 ¼²ðÅaÞ{á:¿ À+âÖ­[7n yYoDx ¼¬§jSSÓ¦M› PUUµcÇ¡P¨ëI0èG0m¯º>ø °°pâĉ_~ùeÇÐée=U¹\î;w>,—ËE"‘T*MMMµ¶¶îï¸@LÀ«Žú;$¼’’’’’’ú;ŠÞ÷²žª|>?;;»¿£ftÿ%LŒ`Ú` sÚpîܹíÛ·S׬^½zРA}г©åÙÐÌ!´´4‚ É5="B"‘Pwûç?ÿI„¾ÿôyȪ^Ùx>雯ääd‡óÒüpa;ñYŽÃÀÀÀàà`½éÝ‹ž¹¢ÆüÉ'Ÿ˜™™Võó ·úº¿þÑèI×ôÖ5á%¸œ^DzL€¾ôÊá”)SBÔiCaa¡©©immí¯¿þJ]immíêêÚ»¡>¯Úˆúã?V¬XráÂ…‚‚‚þ§w¼ÜØ»­ëai666...½Ì‹ëer½xMx™ÒxÀCJÏ {{û#F¨M¦Nª¶²¨¨ÈÇLJ ˆþˆñ%×ÞÞÞ‹¥Ý»wO©T.\¸ÐËËËÝݽ/‚éÝ€ÁseéÒ¥—/_îï(XqÈR¯ Ðï´Obbb¶nÝÚØØHAƒ&7•——ûùù [[ÛmÛ¶Q*++ ‹ÅÀÛÛ»¨¨ˆ¦â²²²Y³fY[[;::ÆÇÇS·êª¥¼¼|öìÙvvvÆÆÆ‰dáÂ…?&·â¯‹ŠŠ&NœÈçó5#LOOwvvæóùnnn™™™j1ÐÄ_QQfiiÉår%IPPÐÓ§Oé¢É¡.S¦L¹xñbWW^,,,ôõõõññ!§ wïÞ}ðàŸŸŸ 7,«Ç'¢¬¬ŒZNPPÐØ±cõŠAW6òòò&Ož,D"QHHÈ/¿ü¢+xº€¾iè¿æìÙ³^^^ ..Ž,ЀÁIµ`ÁÜMãÇ'"&&†±½º‚¡¢ XWð!¥¥¥>>>ÀÑÑñĉ¡={öŒ1‚ÏçûúúVTTPkѤ®Nì­qH_}W"„Ž?ŽÏn—ŒŒ ê&šÁC2à¢GËÓŸ&fê“0ºâg3¼srrÜÝÝù|þ!CvíÚÕ+Ùf3V±K—.yyy©Õž••EÄÕ«W©{zxx¨Þ׉hûKËê´^GµÖk‘\ ×¤¤f444¨(ärùŠ+ÌÍÍ++++++ÿýw•Jgffæââ²gÏžÜÜÜ¥K—"„Ž?޹víšP(ôõõ=uêT~~~dd¤‰‰III‰J›’’SSSOOÏcÇŽîß¿?&&o¢¯%''góæÍÙÙÙÅÅÅ)))...ÞÞÞd±qqq<o„ /^”ËåÉÉÉÔc³³³ ‚˜7o^AAÁ‰'\\\lmmg̘Á&~WWWww÷S§N]ºt)++ëƒ>xüø1ýQZsHïÀ¡Ÿ~úI¥R544]¸pá믿2dÞá믿FáòõJ¸ÁYmmm‰DkÖ¬!‹zøð!‡ÃIJJÒ+­ÙÈËËãp8ÁÁÁ¹¹¹'Ožtss‹Å÷ïß×Úº€¾iªÿ77·³gÏÖÔÔÜ»wOÕƒÁIUWW—––†:}útee¥\.gl¯Ö`4ûQsú à˜]]]÷îÝ{æÌ™àà`.—ëï™™––fooïééIVA¤ÖNìÅqØ“®<}ú4AsæÌ‘Édéé鎎ŽÔ³[×à¡2à¢G›ÓŸ>æÄÄD¡PH?ãð611=zôµk×Z[[9bbb²k×®žg›åX …#FŒøæ›oŠ‹‹×¬Yƒµwuu½öÚkK–,!w¾{÷.Aûöíëy§è5 u%–þT¥v ûê´^èó¬ëZdÀ–ðý€Í›À+_tNT*Õ† D"u ~K)??Ÿ\3räÈÈÈHüzúôéŽŽŽ­­­xQ©Tzxx„……i­Þßßøðá---š›èkQƒ¿\VVF=öúõëä䱞žž'N$7ݾ}› ò4MüÍÍÍ¡h@ßjÍÒ»wïBhçÎ*•ê»ï¾ííí·oßFUVVªTª¨¨( ‹®®.ƪÕô$«ï¿ÿ¾½½}ww7^ܽ{7‡Ã©©©Ñ7Ílxyy¹¸¸tvvâÅêêj@­y¬Á]@ß4œ–ââbê>½58e2B¨´´”e{µ£5µ}è3€‘Édx±¡¡Ãá888´µµá5ûöíCUUU± R³{qö¤+===ǧT*ñbii)BŸÝ4ƒG¾=úOš˜U”{SöñkÞä«V­²²²êèèPõÁ‰£ïsâÄ rMTTY{bb¢™™Ù“'Oð¦5kÖXXX455i–Ów‰hKP§ z¥Qóš F-Ï4×"}ÿ¸°Ó€Vä´A¿ï6˜™™M:•\tss«®®FuttÈd²ˆˆ>Ÿ7R\\¬YH{{{aaá»ï¾+ôªW”0zôh >Ÿ?~üx„¾±ÆÄbñ˜1cÈÅaÆác[[[KJJÂÂÂÈMNNNä7éã755uqq‰ß³gOyy¹J¥bs”† 6xð`üHRaa¡———‰‰‰“““ ¹ÒÛÛ›ÃáPµÁYŠŠª®®>wî^LII °µµíaóÛÚÚ®\¹Îåþç_•ÛÙÙI¥ÒóçÏkîlp0SSÓÉ“'“‹=œ=o¯Z0Z©íæÌÌ̤R)~-‹mmmy<^ãì쌪©©a$U/ŽÃžt%>»ß~ûmò;?îîîNNNdÆ´–zr9¢A3MüŒðx<___rqúôéõõõ7nÜèõG+ccãr1<<׎Z²dI{{û‘#Gp]œ;w®P(d‘9„zé/‘®Ä²? zþ'€&ÏŒ×"xöô›6…Bê—q¹\.~¿¡¡¡³³sçÎ|ŠÄÄD¹\®YˆB¡èîî¦ù=]µ „–/_ž””ôþûïççç—––â{Ù¶¶6rgòfè?Í32ÂÇ666*•ÊP·’‹Œñçääøùù%$$Œ3ÆÎÎnÇŽxîžÕ,M™2¿‡‡¿Ø€Wâ¯7üñÇ÷ïßÇ?¸d@ÕgÕÇÇÇÁÁ!%%!tëÖ­Ÿþ9**ʰ¨ …R©´±±¡®´±±©¯¯×º¿a]À8`ÌÍÍ©iéÉàìy{Õ‚ÑJm6½ v7Æáp¨k8B·BßNéÅqØ“®Äg·Z¯ÙÚÚ’¯µ]² ˜>$FŒ1S銟Íð62ú¿‹¼¥¥%B¨¾¾¾×O­D"‘±±1¹8pà@\;BH"‘Ìž={ïÞ½¡'NÔÕÕ-[¶Œ9kÿÕ+‰ŽÄ²? zþ'€&ÏŒ×"xö¸½RŠH$âp8111‹/fÜY,s¹Ü‡PÑ‘#GV¯^½råJ¼X^^Î>B###µo›Éårü¥CÆø‡zðàA„Э[·öïß¿~ýz;;»ˆˆö­fÉÏÏ/55õÒ¥K?ÿüó'Ÿ|‚Wúúú~ùå—ø½.»©û766’_)Ö:xæÍ›×Ø ¾±‰™JWüŒ(ж¶6ò½pü™’••UO²Í^cccGG‡‰‰ ^¬««ÃµãÅèèh©TúÓO?íÝ»wÒ¤I£G6  5úH]W–gAÏÇ?MžûîZÓùiÇëììdY ŸÏ—J¥2™ÌÑÑqÔÿÒZò”)SRSS[ZZôŠU©TvttXXXkðo°!<<ü!ÿ?Ú3C’aú¥!Ð0pÚðǬX±"$$äÂ… ½‘¡lll\\\ú; ^Bþ’Ò½{÷”JåÂ… _ýõÞ È`K—.]ºtiGÀKˆîÓ†¼¼¼É“' ‘HòË/¿àõ ,ðóóC?ž ˆ˜˜ÍcñÓ;999îîî|>È!»ví"·Î;×Ãú¿T* ï+**ÂÂÂ,--¹\®D" zúô)¹gyy¹ŸŸŸ@ °µµÝ¶m¹žúl®½¨¨hâĉ|>_mO„Pzzº³³3ŸÏwssËÌÌ Ö7¤K—.yyyi6“¦!Œe’ÊÊÊBCCÅb±@ ðöö.**bS~YYÙ¬Y³¬­­ãããÙȘ7Ê/:Ó†~ø!((ÈÚÚ:++ëàÁƒ÷ïß÷öö®ªªB%%%¥¥¥!„NŸ>]YY¹iÓ&­%444¬_¿þСC …bûöíûÛßvïÞÍ&¦™3gVUU}úwÞ™0aBnnnBBÂÇLs×N“¬©©iîܹ˖-;{öì;ï¼G6SWCË$]¿~}òäÉ …âСCÙÙÙƒ ¼zõ*}ùW¯^4iRMMMrrò¹sç>úè#…BÁ¦@ú¼õ¤XðÂKIÍhhhPý////—ÎÎN¼X]]-¢££ñ¢L&C•––ªtˆ‹‹CkV­ZeeeÕÑÑ¡R©þüç??žº¿ŸŸßÌ™3U*Uss3BèÀºÊÌÏÏ'׌9222¿NLL …Ô=¯_¿NîéááAîééé9qâDrÓíÛ· ‚˜1c†Ö†ÐçWtâÄ rÿ¨¨(ÜLš†Ð—ImÈôéÓ[[[ñ¢R©ôðð £O”¿¿ÿðáÃ[ZZ47ÑȘ7ƒ‹ðükhhÀ÷j´Þ$^ø:€t}ÚÐÖÖvåÊ•ððp.÷?_~°³³“J¥çÏŸg?áñx¾¾¾äâôéÓëëëoܸA”©©©‹‹K||üž={ÊËËU*u«™™ÙÔ©SÉE77·êêj­åˆÅâ1cƋÆ Ã{¶¶¶–””D!„œœœt}—šMŒCBBÈÅððpÜL] aŸÛŽŽ™LÁçóñ‚ BBBŠ‹‹iÕÞÞ^XXøî»ï ½ ¤Ï[‹/4íÓ…B¡T*mll¨+mllêëëÙmnnndôå[ZZ"„Ø”““ãçç—0fÌ;;»;v÷ÄB¡ rO.—ÛÕÕ¥µG]422Â{666*•ÊP·ª-’ØäA$“‹$›©µ!ìsÛÐÐÐÙÙ¹sçN>Ebb¢\.§I”B¡èîîÖú³°ŒÒ䭇ŀšö_R‹ÅFFFµµµÔ•µµµVVVì‹V(mmmä;Ð555!\—ËUû¡­­|=tèЃ"„nݺµÿþõë×ÛÙÙÍ›7}Õ4D"‘‘‘ÑãÇ©+år¹Ö•À&&&&x±®®ý·™ZÁ2·"‘ˆÃáÄÄÄ,^¼Xk[´–Éår>|¨µíôÒ‹Å}Q,x!hÿ´Ïç{zzfddtwwã5<(((J¥ì‹îêêÊÌÌ$=jeeåææ†²··ÿí·ß”J%ÞÔØØX^^®Y‚³³sRR’@ `|´‰=@àááqêÔ)rÍ;wnÞ¼©ug6yèììüî»ïÈÅôôt²™ZÂ>·|>_*•Êd2GGÇQÿKmOjù<oÊ”)©©©---¨©Š/ÿ·!!!áÍ7ß ]¾|yKKK||<Ç[»v-û¢…BᆠžzôhåÊ•äƒþUUU‹-Šˆˆ5jTWWWFFFkkk```ÛIµiÓ¦ùóç/^¼X.—oܸQ"‘PŸ§¢b̃P(\·n]CCƒ““SVVÖáÇq3iÂ>·Ÿ~ú©¿¿tt´½½½B¡¸|ù²R©Ü¶mMù;wîôõõõóó‹µµµ­¨¨¸~ýú_|A_ cÞ .6///((èÛo¿}ï½÷ é0ÐßtN¦M›væÌ™-[¶¼ýöÛÆÆÆ~~~ÇŽ:t(û¢ÍÌÌÒÒÒ>üðÃëׯ80))iÕªUxÓ¸qã<¸eË–íÛ·;::nܸ‘|HI,<øÓO?­ªªâp8nnnÇŽ›6mZO©fÆŒiii›7o>zôèˆ#>ûì3‘H¤ugÆ<˜™™¥¦¦j6“¦!ìs;vìØ+W®lÙ²%&&¦¾¾ÞÊÊj„ +V¬ /ÿõ×_ÿñÇ7mÚÝÜÜìàà0þ|Æ\¬R©ìîî&?\/!”’šüV€X,îÅrW¯^}øða­Â?oêëë‡ ’˜˜HÎj€WB¡È>s6ø­µõxeïÞ$^ øâ0ï½pŸ6¼Äššš6mÚ0`À€ªªª;v…¨¨¨þŽ €çÔ«8màr¹wîÜ9|ø°\.‰DR©455ÕÚÚº¿ãà9ÕWÓ†¤¤¤¤¤¤>*¼‡ø|~vvvGÀ CûÏ ¦ 0m0€i€L `Ú`Ó˜6À´À¦ 0m0€i€L `Ú`Ó-Ó†¦¦&B7777„ÐêÕ« ¤«ÐO>ùÄÌ̬£î'Ôvézmp½‚¾_^&¯NKÏ;·}ûöç³jÍ^~1Xß]“““8ŽX,î‹ò_JÔîxÆçZïž>ýx¡¼:´LÁq ±X}ôt}ðT4 ÉËË›üùxNNŽ»»;ŸÏ2dÈ®]»XnE´ÙÆÇMœ8‘Ïç«EEž/è[Ú[ñ;Ÿ={ÖËËK ÄÅű,¿´´ÔÇÇG 8::ž8q!´gÏž#Fðù|__ßŠŠ j-ºº8&&fëÖ­øÁÁƒ3Ö®)==ÝÙÙ™Ï绹¹eff\5‰fÃúEkæiºIWQúŽ"ìøñãA”••QW;–1r­ƒD×­v¡9»ÙÔ øùù!„ÆODLLŒ®¨ØÔ¨×Ð¥b¹£ 1Ï4W!š¦1v‡®ñ̘.j²²²‚¸zõ*5ªÀÀ@µæpúФ—ñl€^“’šÑÐРÒA"‘Ìœ9Sme\\œ™™™‹‹Ëž={rssñ»5ÇÇ[…B!~íêêêîî~êÔ©K—.eee}ðÁ?Ö¬¥¤¤ÄÔÔÔÓÓóرc………û÷Á›rrr6oÞœ]\\œ’’ââââííM¨«ük×® …B__ßS§NåççGFFš˜˜”””hVÝÝÝ-‹ãããñbXX˜@ ˜4i^üꫯ¸\î“'OÔÚ¥ëµúàÙ$*//Ãáçææž|Èáp’’’Øô¸æ ÑuFSÏzú³›ý@­««KKKC>}º²²R.—늊±F½†®ú+ŒÖþÕ÷Ì¢¹ Ñ7±;´Žg6DmBWW×k¯½¶dɲ™xšºoß>µæpúФ—ñle©¡¡ß¨¡¿I¼ôðu GÓ„P~~>¹fäÈ‘‘‘‘ø5y!nnnF8p€1 ÿáÇ·´´0îyãÆ „PYY}ùÓ§OwttlmmÅ‹J¥ÒÃÃ#,,Lk™¡¡¡R©T¥Ruww[ZZÆÆÆr¹Ü§OŸªTª9sæxyy©µ‹æ5ûàUìååååââÒÙÙ‰«««Att´Öòéû…>|lAA¹ÃªU«¬¬¬:::·Òg{ýúuòX]Q±ì ú–öb>~Ïž=ååå*•JkQííí………ï¾û®@ ÐÜÚÑÑ‘0zôh >Ÿ?~üx„ÐíÛ·iÊïèèÉd|>¯!"$$„|nAÍÔ©S/^¼ØÖÖvíÚ5…B±víZ‡?—Édþþþze†eðTºÒÖÖvåÊ•ððp.÷?ßB±³³“J¥çÏŸ×U#M¿0Ããñ|}}ÉÅéÓ§×××ã?N4[Ùd[,3†\6l˜æhÁØ÷…®–ön<!SSÓÉ“'“‹lÊ733“J¥d]¶¶¶äsÏÎÎΡšš¤ë5¶[[[KJJÂÂÂÈ5NNNä@ ]lô¤_Ôèê&Æ¢ ;££¢¢ª««Ï;‡SRRlmmÙD®6HØ\úØä_¯ªI-*65²ºšX^ît…Ç&Ϻ®BôMcù—H ›t©5!´dÉ’ööö#GŽà|¨µ„#GެþÿìÝw\GðçèJQ±+*Š"–(*ƆAcD,1 ¯5bî`4 v_ì [ì AEcC¬»A‰=Š]Q‘¦ǽìËåw{r`y¾>ÉÝìîÌìÌÞ¹¿ÝÙ9?¿Ñ£G o¯_¿®1ÿ=zèëë3ÆÛÛ[›JÖ­[·T©R'NœˆŠŠN)¾ùæ›J•*5oÞ<¯{­eåµÙ==½W¯^)¯ùêÕ+kkk]T&111--Mq©O¸¦¨(KÝR ‹<µ¶¸ï‹‚­®ó·´´ÌSç©t ==½¥ÆÇÇ Ï€æµèT€í¦1«üE‰¤OŸ>K–, ܺu«¹¹ù÷ߟïšküê+äö/„µÿºSI›vV÷-¤q×´ù—(‡|7—‹‹ËÅ‹׬YÓ¬Y³ºu늯¯¥l^"¢Wx¿]»ví ˜šš*½(·jÕ*888555Ç¢¬¬¬ŒŒŒ%J(R„™=Äó711qqq9yò¤]­S¹­D"qqq9zôèéÓ§'QQQ{öìiÒ¤I±bÅò·ËÚW^dGš4i²k×.™L&,}ñâEDD„bAÁV&33sÏž=Š·;vì°¶¶~àOdi^[[܇÷EÁÖG×ùkìbccc©Tš¿ÒMMMœœöîÝ«H¹{÷îÍ›7óWtnWȱ§Õn³Ê÷QäååõöíÛÐÐР  nݺ k~`ÍÕ}õà§[K:-1_w9ª§±E¾…´Ü5ñ‰r|Öò×\­[·®S§ÎO?ýtêÔ)‘[ yúøhlÞ<åFD”?º½ÛðøñãôèÑ£V­Z™™™»vízÿþ}Û¶ms¯вeËÖ­[7®\¹r÷ïß¿zõê²eËôôôÚ¶m»nݺ.]ºØÚÚîÚµK¸ù«1ÿ… ¶hÑ¢M›6>>>*THLL¼téRVV–º Û´i3|øp}}}aàìW_}U¼xñ“'ON:5ß»/^y-jÆŒß}÷]ç·žššêïïollüÓO?é¢2fff“'ONNN®U«VhhhHHÈ¢E‹ 5.Íkk‹ûð¾(Øúè:ñ.®S§Njjj`` “““±±q½zõòTúÔ©S;uêÔ¯_?ooïøøø)S¦”)SF1Ì#¯EçÈ\ã ºk7Yåï(ªY³fÓ¦M'Nœ#ŒPÊ_͵üê+¨O·ötW¢ö_w"4¶³È·È®iÙ¹ç|7—ψ#¬¬¬<<<Ô­“§ÆæÍ뇑ˆ(Ÿò7“R™2e”STÎ8”˜˜Ø·o_;;;CCC''§ß~ûM]AQQQ:u²°°000°³³›9s¦þüùswww“%JtèÐAxQ ˆˆˆˆˆH† DDDDD¤A†¶mÛº»»ë®*èĉóæÍ+êZŸ_Ù²e 6ÏY³f™››lž_]ô ‘¸ÏónÃ""""¢ôy† +==½¨«@è¡È£šˆˆˆòD,lعsgíÚµMLLvíÚ•cé‘#G¾þúkSSS ‹N:ݺuKyéµk×:wîliiijjÚ¼yóÓ§O+Ý¿¿k×®VVVeÊ”qssKIIÉ]º0ãôéÓÎÎÎ&&&åÊ•›;w®63fÌìÙ³“’’$‰D"©X±¢ºÌ:Ô A“Ê•+/Z´(ÇÒãÇ7mÚÔÔÔÔ××Wã.‹gxýúõnݺ•/_ÞÐаL™2?þøãëׯ•ë"4µ££ãž={”ǃ‰l«nOE?7ñ~páÂ…¦M›æÞ)‘~Ô˜§BþŽ“k×®}ÿý÷%K–444´³³ó÷÷×&CGTþ²ÍA(%**ªE‹¦¦¦vvv»wï°bÅŠêÕ«›˜˜´lÙòþýûŠõÅ u‡¢²7Ξ=[›ÝÏ‘•–F""""ؼ+!!Aþo”H$žžž'Ož ±³³+W®\ÇŽ…¥GŽÑ××www utt´´´|ôè‘°ô¯¿þ233kÙ²åÞ½{;æááadd),­S§Nƒ öîÝ{áÂ…ßÿ}äÈ‘¯_¿–çâëëkllܸqãóçÏÇÇÇعs§Æ ÄÇÇ1¢xñâ>|øðáÓ§OUfnddT·nÝ¿þúëýû÷AAAFFF‹-R.ÚÑÑñøñãÏŸ?ðàÆ]ÏðСCÓ¦M;pàÀ™3g¶nÝêààмysEe8 ‘H¼¼¼"""vïÞíàà ÜÔ"ÛªÜSñÆÏAãN™™™U¯^}Æ gΜ?~<ÅN©ëGñö]ÝõÙæ`nnîââ¢(±\¹rmÛ¶566Rj×® àùóçŠüÅû7Ç¡(Éd½zõÚºuë‘#G:wî¬e=sd•§#}áT‡ IIIYYY9&y,W®œð"111++ËÆÆFy©Í›7o$$$H¥Ò€€%3gÎŒÖ|ø‚ xìØ±¨¨¨'NHKKCvS—*UJ9gå·"Ûæ¦±ñ•i³S†††Š·¥K—Vì”Ê~Ô¾kòwœ$&&Êd2•Ój³ï"GÔ‡d›ƒ™™™ò[}}}å}}}B¹Ð¢sŠ‚·oßîß¿ßÙÙÙÙÙYûzæÎJû#}á T¦ZXXèéé%%%)'&%% 3î[ZZêéé½zõJyé«W¯¬­­…mõõõÇŒãíí­2ó*UªlÚ´ ÀíÛ·ýõ׉'–/_ÞËËKûJ‹W@K‰‰‰iiiŠK³ÂÕ_u9hS¢H†AAA~~~£G]¿~]±•ÐÔ9žŽWü¸È¶¹ilü¼îTRRRFF†‘‘‘ð6..N±S*û±GZvMþŽƒ—/_~à¾ç`ii©‹lµ‘§þU®UHHHÇŽÿóŸÿìØ±ÃÀÀ õüð#}!Tßm055urr:vì˜"åÅ‹Š<&&&Mš4Ùµk—L&S,ˆˆf˜˜˜¸¸¸œr䈛›Û–-[zõêõûHDDDŸu“$üöÛoöööFFFÕ«W tuuUžÞ'<<¼Y³f&&&Å‹www¿yó¦ò¶·oßöôô,]º´¾¾~éÒ¥ÝÜÜ:$ŒMïÛ·¯¡¡¡‰‰‰““Óo¿ý¦ò©måY&žžžM›6Õ¦™™™ƒ.Y²¤D"©P¡‚ºÌ/\¸Ð¤IccãŠ+.X°@¤h%Šgøüùswww“%JtèÐAxJuëÖ­ŠvìØ!4uíÚµwîÜÙ¼yó>}úh³­Ê=U×ø*åo§ÄûQ$Oå™”Dª*žTTT§N,,, ìììfΜ©1C•ÝšãˆÊ_¶9ä.¥J•*£GV¼=þ<€Ó§O oÅûW塘#ñüùó%J”èÒ¥Kzzzžv_¤‘ÃÂÂr¢DôÙãLJD¤’b&%‰6¸wpµ´´,ÂÐ¥ùùùmÛ¶MåXö"ÏðÍ›7•+Wž9sæØ±c?<7"""m$&&;îÞÁ5GºøE$‘2áËÁ«Wwµƒ”¨Ð¼}ûvêÔ©®®®¥J•züøñüùóÍÌÌúöí[Ôõ"""""ú?† EÏÀÀàîݻ۶m‹·°°pqq .Y²dQ׋ˆˆˆˆèÿTϤôÙ[°`AŽPúÀ MLL8ðêÕ+™LöæÍ›ÐÐP{{û¬ÑúBÃ"""""ÒÃ"""""Ò€aiÀ°ˆˆˆˆˆ4`Ø@DDDDD0l """"" 6‘ ˆˆˆˆˆH† DDDDD¤Ã"""""Ò€aiÀ°ˆˆˆˆˆ4`Ø@DDDDD0l """"" 6‘ ˆˆˆˆˆH† DDDDD¤Ã"""""Ò€aiÀ°ˆˆˆˆˆ4`Ø@DDDDD0l """"" 6‘ ˆˆˆˆˆH† DDDDD¤Ã"""""ÒÀ@ñ*11±ëADDDDD­ÿ‡ ÂŽm=ˆˆˆˆˆè£eÀ½ƒkQWƒˆˆˆˆˆ>^|¶èóqöüeKKËÂÿoQï7éÃ"""""Ò€aiÀ°ˆˆˆˆˆ4HHH(êjÑÇè@Øq÷®|Š‰è‹•˜˜x ì¸W¯î¼Û@DDDDD0l """"" 6‘ŸRØššøîÝ»¢®‘NÈd2™LVÔµ ""RÁ ¨+Ë–-›?þ×_]¿~ý¢®‹ ¯_¿vvvŽwrr:zôhÁf~àÀH¥ÒÉ“'ûùùlæa¹bèС!!!r¹üÒ¥K5jÔ(ØÌ/^¼Øµk×´´4^^^Ë–-Ó~i¡Yºti£FZ´h¡ré¸qãŽ=e`ð¯“&MvíÚU¹re•[­\¹2""¢X±bZµjåíí­ýRq²ígC&“=z4,,ìܹs»wïÎÑ ¡¡¡«W¯.W®œ"EOOoãÆŠ·‘‘‘«V­’H$R©ÔÁÁa„ ‰D±ôåË—S¦LIOO—J¥M›63fŒræÞÞÞ™™™Âk‰D2~üø:uê(–Λ7¯}ûö_}õUÁî/}Šþ9oxùòeÓ¦Mýõ×¶mÛl’sJJÊêÕ«•c†ªÎ–––£G^¾|yÁÖDРAƒê"ó°ÜÑ£G/^üñǺȼFcÇŽ}ÿþý’%KòºT£9ž_¿~}èСQ£F©[aÑ¢EƒÎÞ¢E SSS•›\¿~ýÉ“';wîÌÇRq²íç$))éÕ«W“'OVùY³µµ]¸paݺu…·÷îÝ R^!<<<00ÐØØÀÖ­[7mÚôã?*–Ž7nÞ¼yB(²víÚ   Þ½{+o¾yófuóòò>|øÞ½{?`爈è3ñÏ ¥¸¸¸äää§OŸx’óÚµk“’’Æ_à9«”œ FŽY¦L™¯ €Š+Ž1B9œå~WW×#¬­­úé§iÓ¦åc©Fr<¯_¿¾wïÞÊ›µ´hÑ¢Ò¥K«\ôüùs‘[|âKÅ}ȶŸkkë¾}û򯯬\Ú°aCEÌàСCnnnÊ+Lž|811ñÍ›7*TÏYã¶ ëׯóæÍªU«”‹ªÎ))))))9ÚÑÆÆF1RüþýûÏž=sww·°°8räHïÞ½—/_Þ§OsæÌ±³³ëÛ·oRRÒÁƒ>|àÀaè°øR\.?uê”T*­R¥Ê÷ßߨQ#›Î;EEEuïÞ}Û¶m‘‘‘;v¼yóæˆ#:vìàéÓ§wîÜ©W¯^ÇŽSRRvîÜ™••µaÃ!ÏnݺnÚ´) @*•6nÜØÁÁaåÊ•>>>ŠËŸ¹ËÕ¦ÕµUñâÅGŒ±råÊØØØS§NuêÔÉÒÒ2<<ÜÓÓsõêÕ]»v}üøqDD==½‘#G:tèĉŠL´9r>ìææfccêááqíÚµ/WwÄ:-={öÌÀÀÀÂÂB9qÏž=·nÝÚ´i“D"‘ËåóçÏÏqñxÒ¤IæÍ›—;Ã%J¬[·.<<<>>¾W¯^yZ*N|[[[Û_ýuðàÁÞÞÞmÚ´ùí·ßÄÅÅ K£¢¢…QUW¯^:tèæÍ›õôôÆ>mÚ4{{ûñãÇ›››?~ûöí#GŽÔX+ñrCBB®\¹²mÛ6}}}'Nœ7nÜŠ+|ûí· 4˜5kÖèÑ£”*UjáÂ…¾¾¾ëÖ­ËS³hôúõkkkk==³YøùùEDD¸ººæxzaîܹmÚ´©T©ÒÓ§OÝÝÝ¿ýö[å¥Â5ŽâÅ‹8yòä¬Y³fΜ©¼B£FæÌ™S°{ADDŸ¢ÿŸévèСbÅŠ;vìèܹ³ò XGŽ9~üx£F„±*TèСÃöíÛçÍ›÷믿®NÕ¬Y³~ýúÕ«W0`À¡C‡Oï‰ä¬q[AZZÚÊ•+ëÕ«×¾}{åô¢ªó¢E‹r\W~úV__ÿþý7ðîÝ»öíÛO™2ÅÃÃ#..nþüùmÛ¶ 644pïÞ=WW×iÓ¦íÛ·/&&Fd©¢ +V$''·hÑbóæÍÖÖÖBb÷î݃‚‚fϞݷoßÇרQcÛ¶mãÇ_¿~}zzº±±±››[ÕªUOœ8ñúõk›J•*ݼyS‘ç7ß|cgg·iÓ&ƒE‹ ÎÛ·oÍÍÍÅËÕØ’"m5räÈ}ûöÅÆÆ ç1ÉÉÉ®®®'Nüþûï]\\¢££…ÓwÞÞÞ†††Ê§ïÚ9kÖ¬éÑ£€Š+Μ9óñãÇvvvX®îˆuZzúôiîarûöíÛ°aƒ0lI"‘L˜0áª>räHá£@1†jÕªUK–,Q<‰Q¿~}WW×£G _UªT±··P¦Láº{©R¥ò:›ÊrƒƒƒwïÞ-Ä ¾ùæ›3gÎDGG Ÿ}¹\þúõëR¥J +çx„ @„‡‡ç8ïWX°`ÁÛ·oçÌ™³k×®îÝ»+Ò'Mš´téÒæÍ›gffNŸ>ýøñã®®®Š¥ÊW%Ú´i#|C*+W®Ü³gÏ t'ˆˆè“¤y&%alÏåË—/_¾œ;@¯^½bbböìÙ"“É üñÇã[ÔÑfÛ7ÆÅÅ-\¸PÛ}Òq{÷î{Žå‹Üµk×Vœp˜™™yxxL›6íÙ³gwîÜ‘Édýúõ¢vvv­[·>yò$€k×®‰,UHNNàêêª|î.P\cÎq±ÀÌ™3/^¬¼ƒ*§òõõbÊ1ƒH¹â-©±­ªV­ª8*Q¢„§§çìÙ³Ÿ>}Z­ZµÜÕÓ¾\Aƒ „Âù¥T*ýðr?rúúú¹§ï444T~ÔA"‘Ô®]»pë•*çðÉÊÊ®Ž+Ô­[÷âÅ‹º.÷Ñ£G9ž&ONNnÙ²¥âÓÔ¯_¿Í›7ûúúÊåòÓ§O:´«$ˆˆˆ™wÁÜÜ|Μ9½{÷V„ /_¾477oÞ¼9ƒéÓ§:T9lÈAñý£ “ÉTÞÜ "¢/Í?aƒpb¡|ÎñàÁƒ*Uª'R P,RŒèV»víŸþ933óéÓ§;wîœ;wnãÆÿn©ËY___ã¶éééË–-«]»¶»»{îÚIíìììììDÚôáÇ/^¼®|ËåòsçÎÚØØ³îÙ³ÇÍÍMøg8&&æüùóBnÕ«WYªÐ«W¯‡úûû¿zõjöìÙÚ<ùzýúõE‹µoß~æÌ™¶¶¶ÉÉÉݺuSùøâ2jnêÊoImõôéÓ+W®4lØ@zzzxx¸‰‰IÙ²e‘ÝŠ©!s ¹Ö؃âò]nËå*;Nä¨Ó2g[[Û˜˜˜‰R©T¹D¹\®|¯éS¤§§—’’¢9\»vMüH+5Z»v­Hw899-Y²$33óôéÓ...ùx0]\ZZšðˆ³øjÊSëfdd(ž–eee‰l›û¶Ì³gÏ>õpšˆˆ Ä?ÿº”+WÎÈÈhåÊ•>|÷îÝ¥K—nß¾½jÕ*¯¿þzýúõQQQNNN™™™·oß¾|ù²³³³0Ôaá…ׯ_ß¶m[­Zµ222N:…_«V—sÏž=5n»mÛ¶—/_ª;?.’:«kÊÌÌÌÕ«WÇÆÆ¾{÷®eË–îîîfffgÏž½zõª¯¯¯¹¹yÍš5 °aÆ۷o»¸¸$''ïß¿ÿýû÷¨ñ¥ÏŸ?_¹r%€ªU«.Z´¨sçÎwïÞmÕªU¿~ýöìÙàÀmÚ´­¸Íüõ×_K$’'OžlÞ¼9))éâÅ‹ÑÑÑVVVË–-6l˜D"Y½zõýû÷;v,)) @óæÍ…Ñ"åúøøjlIq™™™;vìÒ¥‹••Õ‘#G}j``P±bů¾úêÇtvvàíí}ùòå·oß&$$שSÇÇǧ[·nÊŨËY|[©TÚ°aCSSÓ .¨»K^øuV×”qqqÎÎÎoÞ¼)]ºt•*UnÞ¼™™™Y£F*†ªËåò   7Þºu«X±b-Z´;v¬b,ÈÒýû÷{{{+~vÍÇÇgÇŽ,,,6oÞܧOŸ·oßššš8p gÏžqqqcÇŽMNN^¿~}µjÕ._¾:oÞ¼˜››×ªUëÑ£G±±±–––/^400hÒ¤‰òÄJºté²iÓ&ñrÏŸ?_®\9mZRvíÚ½|ù²yóæG}ûöm:uFÕµkWÅ kÖ¬INN®T©’……ETT”6å.Z´höìÙYYY&&&©TZ§N???å["qqqS§NMOOÏÌÌlܸqŽGÃÃÃÃwìØ¡¯¯ŸššÚ¼ysåcUн{÷¹sçø/'Ò'ä@Øq÷®Â5"ú%&&;îÕ«û¿Â†ÍÖ­[G•§«­ô i×®]ZZÚéÓ§¿r GjjjçÎÃÂÂrR'ʫ۷oÏ›7Oä÷àèKÀ°è §>êÝ{ö,66Ößß?<<üó.·0+VlèСW®\)êŠÐçàäɓӧO/êZÑG᣾Û@Ÿ«¤¤$'''Å/p¹¹¹ÎïIU¹DDŸ.Þm úÂ)î6hž€•¨ÀYXX¨üìϵ\"""¢OÝG=H‰ˆˆˆˆˆ>„97 Ÿò,DDD¤ ç.D^¸xY|5禾vv*œ*ѧˆƒ”ˆˆˆ>gBÌ0õ— â«Í˜5#"R‡aÑçLˆ¤Rif¦L)“É23ÿÿB&“eÊ2e2ÝBv†2l "ut6ÄÆÆ^½zõÖ­[ééégΜ©X±¢ŽÊ""""""ÒUØðäÉ“ýû÷ׯ_¿aÆçÏŸ×Q)DDDT°Îžÿç)ˆæÍaMˆè£¢«°¡Q£F—/_°aÆ DDDŸŠŽ\¯‹°&DôQÑUØ §—‡©]½àÕ-ô¡¿ÎáœÆô<чþtL/‰’F0ÚŠ­§pJy©b“„Í%Õý›£¹ô6bãœÏ-Öf Cx] ÕfcöYœý<ê©Ó~!"¢"T¡¼Í“§/T.:v\ñšwˆH¡è‰®•Pi†X…UŠÓPuéy5#~Ç°Ë/ãò[¼Ðí» KY”Š©Ê§ã•P©&j ¿â×s8—…,‘üWcõ\^OÁ”¿ñ÷çQO]÷ •²6Ö*W*÷àѳÜKy·ˆT*úŸ{ó„çj¬^'#Ycz^E B8pgà ¼Gø0 Û‡}9Öw‡ûflV¬ß ÅóWœ‹(…Rñˆ×¦VÝЭ:ªÌõÔu¿Q‘(UÒBñºš­ŠÙJ†Wüb½ˆècWôwÌaþoê£þ8ŒSœ+‹¤çÕU\U¼n‡pH|ýJ¨háõMÜ´…­âl^œ,¡íU™(a Ó¹žºî""*|V–æ9RjT¯ò÷Ê)¼Û@D*}Ø Š¡0`6fk™žÃ0ì(ަ E|5=è)Fûd Ã@ë&r…ëqÀ…™ªž…Ð/DDThߪüÝåuøl©ô±„ ЧuµLÏí7üf{ÅÛ}Ø7So{£w&2sõÉM¹>ôe0„¡R-+Ð Í&a’ø:†0œ‹¹0p€ƒ+\ヘ|lõTøð~!"¢O ï6‘JKØð+~]…U¥Qº,ʾÄKé¹yÂSÝ"á‘â…X¨MMžàIMÔ¼ÛìawµÜmÎÝ¥úÁ@ôDä Üø8ë©ðáýBDDŸÞm "•t6Èåò°°0·nÝammmccãä”óWë_âeET¼†kÂä<ÓóÊ nuPgæ0†q²ÄOš÷aßp Ÿ„IHÚ¢ívlWÎê vC·=Ø“c«¨¡xÒà󨧮û…ˆˆ Íßwòð/ï6‘Jº d2Ù°aÃoùåß|óÍþƒÇ« IDAT† r¬¹ Û¦bêhŒ–Cî'Ås½êÒójæD b –°…m„ß+h‡vÑQ1Xh5V s’Æ &Ñ4Éz¬F Ú¡Ýe\Î}. 9šÆaík•ŒQÁÇVO]÷ š¡Ú¯Ì» D¤’À£GФl[[[áEs4ïƒ>ïñþ ΄⟯6uéEånøÁ/OáA‘(¨z~*ýBDD"¦LŸ7nìhmÖ\´xé¸ÑC,--)‰‰‰ÂŽ»wpUN$¢/Šð=àÕ«ûGñlÃYœUù‹ÅêÒ‹„9Ì_àÅÇ3`=?‰~!""mddddeeeeɲ„ÿeÿ?+›\.ÖäÝ"Ré£> oñ¶Úu-4ûTêIDD'>Û@D*1l ""¢ðn©Ä°ˆˆˆþÁ» D¤Ã"""úï6‘J ˆˆˆè¼Û@D*é*l8sæÌÎ;/]ºgiiéââ2~üø2eÊè¨8"""*¼Û@D*é*lX¾|yJJJÏž=+V¬øðáà 6\¼xñðáÃfff:*‘ˆˆˆ>ï6‘Jº æÎ[­Z5Å[Ÿƒzxxè¨Äω••Õ;wŠº"DDôÅáÝ"RIOGù*Ç 7n àåË—:*NaРA 4Ðu)º6tèФ¤$Íš5;qâ„®KÜ´i“£££ÊEÆÆÆ+V¬˜5k–®ë ìóèG"¢OQÇ®Š¿¢® }D é‘è‹/¨U«–îŠÐ××ß¶m›¹¹y§NJ”(áîîþöíÛ‚-ÂßßÚ´i›gn&&&%J”B¬óçÏëºD;vìxñâ…ÊEééé~~~¿üòK!Têûqݺu*T¸{÷®°Ú”)SRRRôîÝ»qãÆ­ZµÚ»wïŒ3„¥7ž={vlll||<‰D’’’òË/¿ 4hæÌ™-[¶ŒŽŽàêêº~ýúQ£Fíß¿ßÈÈhÚ´iÅ‹×ÓÓ»{÷î²eË„Ì'Mš4eÊ”ÐÐP‡!C†8;;÷êÕëþýûêê?nܸ޽{Ÿ>}Z.—›™™­]»622@»ví:vìX«V­¸¸¸øøø5kÖܾ}[d¿ŒÿûßÿmräÈ‘ÐÐPµ9‘2Þm "• #lHLLœ3gN:u\]uxÝÂÙÙùܹsË—/СC‡ŒŒŒ/¢pÌèӧ϶mÛ ¡ e‡þÍ%ÉêÕ«7oÞ|îÜ9mÒE¨ëÇ•+WÖªUkÇŽÊ—/?}út___AAA'Nœˆ‹‹+_¾¼"“?ÿü388822òÆôõõ§OŸ`ûöíööö^^^S§NðÝwßíܹsÿþýæÎ»víZa`Øwß}çããT·nÝvíÚíÛ·ïÖ­[¾¾¾Ó§O‰,Z´¨|ùò~~~Âî¯Y³æòåËr¹üèÑ£GíÓ§Ï_ý%ÔJ|¿¼~ýúëׯðôô444Ô²‰ˆ>Ÿm "•t6¤¥¥ 2äýû÷AAAúúúº+èÞ½{mÚ´166NOO Ó¸¾Á¤I“¬­­õôôd2™T*ýé§Ÿ899õìÙS"‘GDDìܹ€¡¡áܹsÛ´i³dÉ?ÿü³L&ÓÅŽ4hÐ`ýúõÊ);v´··ðäÉ“yóæ ‰¶¶¶“&MJMMµ²²zøð¡ƒƒÃ„ >|¨2O//¯~ýú>|ØÞÞþÝ»wYYYþþþÂ8¨Š+úúúÚÛÛOš4鯿þRlR±bÅÉ“'§¥¥îÞ½[¼Îr¹|øðáC‡õðð˜7ožb4šºtÚôãóçÏcccË–-+dèááqðàAggç&Mš\ºt)ÇÊíÛ·_±b…ð611ÑÂÂÂØØØÂÂâõë×VVV*UªôêÕ+ÅÃ$‡^²d‰D"‘ËåÖ¯_?pàÀÕ«Wk¬|îfyöì™™™™–7¾”÷«xñâ±±±Bzhh(Ã"*4¼Û@D*é6lÈÈÈ}Z9ÿ{÷î•+Wîùóç._¾Ü»wossó´´4ñFÈ¡B… •+WÎÓ`9Å~Nœ81>>þÚµkgÏžF.Þm "•tõH4©TêããsùòåÍ›7«{ܶ`ÅÇǯ]»666¶M›6â+[[[ 1€„„„áÇ ¯mmm/^¼téÒÅ‹·lÙR·5Î¥S§N˜eÂ<(W®€š5k^¼xQ8‹MOO Ô˜sJJÊÊ•+…×ÏŸ?OKKÓÓSÛûÕªU»|ù²â|Wq©^£×¯_ûùùÅÄÄìß¿_—/ž®’6ý(‘H„H¦J•*¯^½ðâÅ‹*Uª(ïÔüùóÇŒ£0.^¼Ø¬Y³òåË Q6–-[6zôh-W¶³³[²dÉÒ¥K‡.Œ8Òžb¿&L˜°råÊ”””™3gòq"*4ÃŽ+þŠº.DôÑÕ݆ÌÌÌáÇŸ={vóæÍ 6ÔQ)Êüýý·oßþ÷ßptt²k« ‘H4n’c›(‘£8æææãÇ—ÉdݺuËÌÌÔ˜ž›–ýèèè¸aÞžžåË—•*UÊÅÅåĉÊk s@ 8PyèסC‡Þ¼y£x{åÊ•ÿüç?Ê`T¯^]ùñG 1›F÷îÝË÷])Å~ÙÚÚ>zôèÝ»wgÏž½pá¬Y³”‡éï6‘JººÛ0yòä#GŽtëÖ->>þP¶[·né¨8ÑÑÑnnn6lX³fͽ{÷®\¹"¾þ»wï3; çy&&&111BÌ`aaáä䤼‰±±±âl»téÒ«¤§§·gϞܱ‡ºôþýûoÚ´Ic¶¢££›6mjll,Ôª_¿~ó766>>B÷7®uëÖ}úô¹sçN¯^½\]]… XT®\YØY77·¤¤$a¦&WWWaêª_~ùeúôéæææzzz÷ïß_¼x1€Æ»ºº.^¼ø¿ÿýï‹/žÉé¼yó&Nœ˜ÏʺO·‰ˆ>6S¦Ï7vtFFFVVVV–,Kø_öÿ³²Éåò¡ãF9{þ²bÛæÍ;îÞÁÕÒÒ²wˆŠPbbâ°ã^½ºÒϽšíÛ·‹ÿh­Y³&ßÛ6mÚtáÂ…X™"÷éö#ѧŽwˆH¥Ï-lø¢Î5…ñE¦¦¦Âٷo_WW×%K–8p ¯‹‰/ª‰ˆ>*üÝ"Rés ¾(ÚÌ»*زeË–-[tZ™/Êœ9sŠ+–#ñÎ;Ú÷ÑG‹wˆH%† Dy¦xp™ˆèóû D¤Ã"""úï6‘J ˆˆˆè¼Û@D*é*lˆŒŒ\ºtéßÿýæÍ›bÅŠ5hÐ`ôèÑ9~=ˆˆˆ>6¼Û@D*é*lxö왕•ÕСCK–,ùúõë   ž={îÝ»·N::*‘ˆˆˆ>ï6‘Jº ºvíÚµkWÅÛN:5kÖ,44”aƒ2++«;wîuEˆˆˆþwˆH%½Â)¦dÉ’r¹\× 4¨Aƒ’•±±ñŠ+fÍšU ¹©4tèФ¤$ÝåODD”W‰JŠº.DôÑmØ––öîÝ»ÇÿòË/FFFžžžº+K__ûöí;wž1cFDD„¹¹ùf˜žžîççW uSÉÄĤD‰/_¾Ô]DDDDDB·3)õéÓ'22€µµõ¦M›ìííuW–³³ó¹sç–/_ C‡º+«@ôéÓgÛ¶mE] """""Ít6Ìš5+99ùÕ«W[¶léׯßÖ­[6l¨£²îݻצMccãôôô°°0ëLš4ÉÚÚZOOO&“I¥ÒŸ~ú @ÅŠ'Ožœ––fhh¸{÷nÕ@ƒ Ö¯_¯xëääÔ³gO‰Dbll±sçNÝMDDDD”'º jÕª%¼øî»ïÚ´i3oÞ¼•øÃ?˜››K¥Ò7Н?qâÄÝ»wß¼y€••ÕìÙ³…ô)S¦øúú¾}ûÀœ9s²²²tQÛvíÚ=zT9%22R¸3 €a}< éçÞ ìíí…st݉àææÖ¦M›“'OЬlmm­¨OBBÂðáÃT«VíòåËBÌ`ÅŠÆ ÓEU;uê4fÌå[[ÛÑ£Gëééeee5kÖL…å®Â™L¦¯¯¯x›””tåʕڵkë¨8þþþÛ·oÿûï¿8::;v,O›+fyRžîIGS?ÙÛÛGGG+ßÇÐÓÓ›1cÆÈ‘#…‰•æÍ›§‹r‰ˆˆˆˆòGW3) 8pòäÉÁÁÁ{÷î]±b…»»{JJʨQ£tT€èèh77· 6¬Y³æÞ½{W®\_ÿÝ»wŠ1T†††Â¤IvìØ³gÏŠ?c­¯¯ß A=½œ1˜Êt+++©Tš’’¢œ˜šš·råʬ¬,ƒäääùóçÿüóÏ:z²‚ˆˆˆˆ(Ot6ôëׯ_¿~:Ê\„L&“ÉdÚ¬™––6a„ÜéOŸ>U~žaÇŽ³’J¥U«VÕ2ÝÃÃcÆ ¹W^´h‘Æ‚ˆˆˆˆˆŠD!=]h¶oßž™™YÔµ³fÍš¢®QÞèöW¢ ßG3}Š>·°ˆˆˆˆˆ Ã"""""Ò€aiÀ°ˆˆˆˆˆ4(Œ°aèС¶¶¶¾¾¾…P8‡ G½pá‚¡¡¡® """"""ÑmØðîÝ»©S§Nœ8‘aѧK·aÃÂ… Ë—/ïéé©ÓRˆˆˆˆˆH§tø+Ñ×®]Û¶mÛ¾}û$‰îJ!"""""]ÓÕÝ™LöóÏ?{yyÕªUKGEQáÐUØð믿ÆÇÇ7NGùQ¡ÑIØðêÕ«Å‹;V&“%'''''J¥ÉÉÉ™™™º(‘ˆˆˆˆˆtG'aCLLÌû÷ï'L˜P/[jjê¾}ûêÕ«wöìY]”HDDDDDº£“G¢kÔ¨±cÇå”~ýú5mÚtذa|Ôˆˆˆˆè“£“°ÁÜÜÜÙÙY9E__¿téÒ9‰ˆˆˆˆè“ ó_‰&""""¢O·AÙ­[· § """""*p¼Û@DDDDD0l """"" 6‘ ˆˆˆˆˆH† DDDDD¤Ã"""""Ò@W°ž9s¦OŸ>Ê)VVVQQQ:*ŽˆˆˆˆˆtG·¿Û0eÊ”råÊ ¯ŒŒtZéˆnÆ-ZØÛÛë´ˆ¾œ+Ì"‰>;üQ:¶!55U.—뺅 ÀÏ€~¡•GŸ² yIÿr|ZŸ#öQ!ÐmØÐ­[7‡!C†<~üX§eU®wà-0Ct倨T hH9`©fk ] ´Ü¡®FYÀËB/W°Xœ—ôüÑ~®hJŸdr`WÁ­Leþ{|æ©ÝT~Žº™€XÌä€ ø` ¬†à ph TÞòì¿X`& ”6‰@"°( Ø£´r*p¨ ˜¨”®øóï «ëG"""*Xº¤T¼xñAƒ999+VìÆ«W¯îÖ­[XX˜ŽJ Ë>_ ¬EWþ (_Ð8 Lf©_á Ð8RÐå~uí°¨t*ôrÔ—êÒó§;PX¨)=ø˜Ppåæ 2ÿ‚=>óÔn*?GG¿€7À@ Ô½€p°f¯W`Pø“€Û@m`:ðØ ü9084~ª‰À2 0Ø 4ăŸ÷À`}® «ëG"""*XººÛP¿~ýÉ“'·oß¾eË–>>>[¶lyóæÍÆuT€À hX]‰¢+ß^_÷t ¨š½Èˆ2€ Šfå œÒ;€“RzCàðHv5'€G@:ph ûjëŽìuäÀ õõ¹ $rà dçgMùÔÀ`›h;Ä7UT@¼ŒÕï×j@¤õú@š¦‹åêÊ•ÏOà‡ìKËωšôâêÛA! P7{×O@(p_Sz ð;ð<×j•€í@lϾ: $°ˆ2ÇÀ+ `pHR€€…hþ"ǧºrUö¯ºöi•Ÿ£à5ðxÄ÷$ ðW`9ð0Ø \äÀiÀi`/08 ´†倿À`-Ð( þ^O€½À` Ð0²€`/ðxìR™vý¨l n7³»ìE¹ûE8æßWç@ð¸ T æøWÙþæ¢Ç§ºãAÝñ£}¹DDD:RH¿ÛP¿~}[[Û«W¯æ^¤(ýå{8u°ø/ \´yÛØ ü”Àaààìì€ûÀ`ÑŽoþ@ ðmvzMà LJ'€âÙK]u@_àp¨ü \Ì^: ø-ûµÊúô¾²€¯€µ@? 8Ø«ÏÀ àŒŒ€²¢í CS` ð=®~¿VÉ@8p¸’eyo9Ð8œ¾¾ºgŸïæNOQß §€SªŠn4ækžC1 ¨ øcÚÀ)Àû ÐJgɶÀ1€ 0DS*ÛG]¹PÓ¿êÚS¤}D>GF€%`™@h\„ч¦€%0¸¥´‰9P è¸Q@ LiðÛ ,;rò·šÛ@°˜òïêM(½Õ²¿v—€Ú@Ð0e/ÊÝ/Õ€ <~&€¾¢ŸëÜíÿVôøTy<¨;~òT.‘Žèv&%e2™L"‘äN?›=Apùß×ìµ÷ðvÀ`ÐLÓ&;_@ýì3þ^Às ü”ª©¿\  ¸™€”ìså>€Р襴rà`2°ü |•Î¥®Žšê#dŸTíîƒ?5ù8¸£;À¾ì;êÚA`Læ+ݺQ·_û€À0  ´Vh1Ü\e¹ç€ÀØûï•U¦G¨oAŽqð ?'€ËZ§çÐ ¨Tâûg@7à/ P¸øÈʾoc l³£ ñAt‚Üí£®Ü-êûW]{ r·ÈçÈ ðÊ~-4‘>¨ÜÍŽùou³W Ë~,þ÷Q—[O ' &{£è¯“ãjº–ýõˆ~Ï>0j?d/ÊÝ/YÀ- ˜¬ÞK3Ñã_eûG¨?>UuÕ?¾y,—ˆˆHt6dffü“ùÙ³gŸ‰Ù/2ÀD4Ÿ¿–€#Pøh¯t:¨²„ôû@_ (û«ª9"Õ?ê>wâå¼G:0qâÄÿ±wïqQTýÀ?{R ´4EHR% Åo)DÞÐ’.–‰—Êh(f©ˆ¨á­,3¬KËÌ *šæŠ)Tš¢¡!«¢‘€"°°3¿?æ·ûl°»À€ØçýêõböÌ™ó={f6ç»sfÖÓÓ³Y³fjµºmÛ¶cÆŒ9qâD…:uû.B€iÀ@–átÙŠw s"€É†'`Jwø?:à<¤U7ÀP¿8ˆÀMÀèŠbà °pòø¸”'@C;€4  ¸ü ˆ†Û–úSì~tÀ À¯ªv~¾n%†³U+ãðªÉX—êHíT~_÷Bßg¸—´Ê ÖVÆ€ð= ò€$“¯“Í–[É Ãu£Ž@¹a2L•å­€ÿ|úç ÃIdG ( €xÃ}«îv×rà ° ¸Pï…@ð-p ·,·oe|,Å5»­§Ùñ1û9ZkèÏZ`©aù ÀCÀ—@.Pdï÷í wÒKj}ñŸCºÉÐÿ͆ÁÜc¨ü@ J/àE@oÒ”1á±´ÍZeh! èè dzÙýò¥¡óŸë~Ê€þ–Kãoöø´t_G­­þcøÅÜÛiʱ·ÙTf{àO`[¥o÷eUÓqˆ†*}#k©üß©n?Grh,ûë6üœÒ¿PDdLجPN'‚ èéá¯` Šâ¶íña¡Ù¸ïPÀP?''K?JDDw¸üüüÄ}‡‚ÆGÜ_DDDò“ëjÉ'ºté²{÷îØØØË—/·k×nâĉ/¿ü²B¡0¿àP-BÞ ¼Ü˜±ú{Åcwàg`w-"VÐ ( Ä\…»€™€°8WwqkÃÒ8ô†EÀÊú+ (€ýÕ.·\¨ªÜè(€ `[…6e¶ýº=>k4nf?G]€g%p("üÜø;à* ’€ëÀt@ch³H¾D )0ðü Š€çΆÊeÀŸÀ^ è<^©‡ûÓ›¤,íG"""ªSr¥ ¹¹¹¹¹¹kÖ¬™;wn»víöîÝ»xñbNl~ƒ{jÒÐï:`4p—ÕÊ济XÁŸ@2àk¹B1° ªë¸µaiN÷îõWÒÜÂ÷Ü–Êmã 8©U•§—€¾u·³í×íñY£q3û9ú¸Gh ´Î*``|=€»?àiàp h n'‰€ø~ÀàcàÀ(~ì€~ÀsÀÇ€"`/Ð(Ž#+uØÒ~$""¢:%WÚ ŠbQQÑÚµk wïÞ999ëÖ­›2eŠJ¥’%d)pÐȶÖ'F]ŠW ¸¸ì®Ü€'€û€[@и|d¹)à  P\2)o ø÷åÀÀ7@ðà?À 9p8üiø¶õ4°˜¸W,ôç/À°´€`\¾r¬¶s0hˆÀUào Þò8Ww  h€[ÀÛ@¹…÷xåÀzÀ+€Úê—å–â*€0Ãs$àð6såï³,ŒƒÑTÀ:s}è œþ®ª¼(©TÍð:.†oÓÝ;à â€< à ´à`¸$e¶}+ǧ¥¸f÷¯¥ñ-ÙÏQ)p (òwÅ€ÐXc(? ع€ü øÈÎ.€ šï7™@Ð87 WáÊ€ç5 :àÐͰ0Ô¤óÖ÷£©@ðÃ'z—a“Êûå. Py@S è ü|Z8þÍŽ"fùø´t¨ó@>Ð84¼¬~®+¿Îêñiöx°tüÔ(.‘<äºÚàîîþÓO?‰âÿÎP¤£•Ê&*Ý€§L^ÎìNÖ<¤Ø$-'€a†o¾­8 | hc8ã¸| ˆÀi 9иl¹…nÀ-`‹áKY0ðÐxxؤ²ppÈ09û 0øðµÉ¹T.ðкªþˆÀQÃIU0è°Ð€‹Àƒ@oà/à×f•ÇAÒ è¤ßJ,½¯_ã@O@(€öÀq«ãf%îE PVºýÃly–åqXšÐßøãŸW‡¬—Wà4ÞŠ¿a@à à Ĺ Sq¤Óè&€7àd8k·>‰NRy|,Å=iyÿZOIåñ±ò9ò¼ ËÒ)= 0Ãð-„ñ€±†…SÀ1à«ï×x\›y†ïÔNýóe5÷W1pÓp+€{OêÊûEÚe%À7@€arT7@cõø7;þY–O³ÇCk ÇO ãÉ@®´aðàÁ_~ùåwß}çïÿÿ__'''ßsÏ=ÎÎÎÿ¨wÆ05eÃM“•.HTËàÐP× €N˜l²¸®HdCrët¾7T¾¤Ý€G€ûþyÕ¬êï/Iy¥’šî+Ç¿•ñ¯||ZŠkéø±-.Q’+m4hÏ믿Ö®]»ÄÄÄ£G.Y²¤âÕ†2ÃhéÛÓ¬Z„¼ 0¼L¶ZÙh(@´ì€{€Ó@_àyàÀð¬ê‹Ì3@o 88nlmüôÒ=иøÊ0ÃhÜÚ­}€ =ðpÐ PwWÕŸ€ ÈZ&S™mç0ÈNm€ö€hnaŠÖ@1° Lö¿[x_‰@p 8ô¤™dP5ÿ<Ã[èxj  0,tJ…Í÷ ê'=鄈þ…òóó÷ óŒ\WÌÁZ· šÍ€‡ô:èTÝ÷Ç PÎ@p±aûpÚ÷Í ™­n5‡¶À÷æÎ5-•ÿ;Õþs$·F±¿Ün³Ï)Q-ÜqiCA­[h¼h€2àLU÷HÔƒÊýi<(€>À#ÀªZßR\{ýMž(ꜭ— ¶ÃÇ5,ÿwªýçHn·ÿþº ?§DDDµpÇ¥ µW,iè>˜2ÛŸ˜èˆ5{­þº…Lt·ß8ñø$"¢;‹\?÷FDDDDDw ¦ DDDDDT¦ DDDDDT¹îm˜4iÒÁƒŸÆâååµgÏ™"‘LäJ¦M›6jÔ(ãË?ÿüsÙ²eƒ ’)ÉG®´¡{÷î¦/W®\©P(¬ýJ4Ý®êãÞAâãã{öìéêê*Sˆ &:t¨Nš –u&•ÜíÕ¹úøÝ†ÔÔÔK—.Íš5K¾Ÿ|òIçÎ뤩>øàþûﯓ¦¤}""""¢:WWvìØÑ´iÓaÆÕC,"""""ªs²_m(**Ú¿ÿСC›5k&w¬Q£FùúúŠ¢¨P(,XPPPÀÁÁ!22R£Ñ(•ÊœœœåË—‹¢h¥ÜhôèÑÑÑÑ}ôÑÊ•+çÍ›÷ôÓOŸ===½Bo+´`Ĉ›6m:vìÿÂÂB™Šˆˆˆˆ¨¦dOvìØÑ®];¹étº?üPZÎÉÉ)..V©TææÍ›Rnàûï¿9r${{{³å’{ï½7))ièСÆszYYYJJJ²³³/M¸¹¹…††*•JA*¿ÍèèèÊ9ƒÙö#""._¾¼ÿ~)Ñí@Þ´!;;ûĉÓ§OW(² Š¢é,#A*L:2V³´¹q¹¬¬,00ðÍ7ß )//·T©T.Z´hƌ҄¨˜˜˜ t:]å­Ì¶ýúõ°°0®®®/½ôÒRSS­„&""""ª7òÞ½sçNQëa†‡iÓ¦IËÎÎÎF„’’’æÍ›;;;Kå}úô‘®0X*—üöÛokÖ¬1ÎD²ÄÞÞ^«ÕJ9ƒ£££··wuºj¶ýE‹i4/^ܱcG…¾ """"j@2^mEqçÎ={ölß¾½|Q$AAAmÛ¶EñÃ?,))!""BZ¥R©T*•V«5^°T>eÊéY®§OŸîÖ­ÛŽ;bbbüýý‡¾eËÓ¦M{ùå—›7o>vìØÏ>ûìÚµkk×®A­V.[¶lÞ¼y‚ „‡‡K§þ7oÞ\°`•öÓÒÒš6múÖ[o)•JµZ `îܹrQ5)`˜µ_ÿÜÜÜ$.Ñ¿GDdLجPN'‚ èéá¯` Šâ¶íña¡S*lž¸ïPÀP?''§é<5¸üüüÄ}‡‚ÆrýÜÛ‰'&Nœèååµ|ùr;;»;w¾ñÆ¢(>ÿüó2E$"""""™È•6$$$ˆ‹‹“~ ÆÏÏï±Ç‹gÚ@DDDDÔèÈ5II¥R)•J‡ÿ£T6oÞ\¥RÉΟÿþ÷¿:uªç¸DDDDDw¹Ò†çŸÞÎÎîÍ7ß¼|ùr^^ÞG}”™™ùÒK/ÉÎ’ÔÔÔ-[¶ÔsP""""¢;Œ\“”:wî¼yóæI“&}þùçìííßyç™Â‘|äJ~ùå—ñãÇ÷èÑcܸqMš4ùꫯfÍš¥P(ä4~üøýû÷{xx ‚UPP ­>|¸‡‡€ìì옘©ÐÛÛû…^P(vvvÉÉÉÛ·o—Êœœ–.]ZVVÀÅÅ%**êÔ©SÚµk7gÎ¥R©V«sss/^¬×ë­Ô'""""ºcÈ•6ÄÄÄ8::~üñÇjµ@ß¾}¯\¹òæ›o6L©¬û™Q›7o~â‰'t:ݤI“8;;¿ùæ›aaaÒÚæÍ›xõÕW;vìøÛo¿HKKKKK“*¬X±Â˜6Œ1bÓ¦MÇŽàïï_XX(•Ï™3GJºvíòÞ{ïY©ODDDDtÇ+møý÷ß»ví*å ’‡~ø¿ÿýoaa¡ôl¥:wãÆµk×JË—.]*))Q*•‚ غu«±WmÛ¶•Ò77·ÐÐP©Ž±ÄÄĈˆˆ€€€Ë—/ïß¿?++ @§N}ôÑ+V«•––Z©ODDDDt'‘+mhÛ¶mFFFyy¹1søé§Ÿš5kÖ¼ys™"* +/+P*•‹-š1c†4‘É8s Àõëץˮ®®/½ôÒRSS‹‹‹?^¹)³õëäÝ&äz’ÒĉµZíøñã“’’<vøðá‰'Ê÷ V;;»É“'KËÎÎÎMš4‘.5˜eoo¯Õj¥œÁÑÑÑÛÛÛ¸jÑ¢EÀÅ‹wìØÑ½{wZ­¶}ûö;v”ê¨Tª!C†X©ODDDDt'‘ëjÈ# ÅǦ×ëÝÜÜ"""&Nœ(S8W¯^-,,\»vmyy9€ ððð=ztïÞ½§OŸ~ï½÷¾òÊ+¥¥¥ÿý÷µk×Ö®]+‚Z­.,,\¶lÙ¼yóAhÚ´é[o½%Ýú `îܹRû!!!ÑÑÑ …BE;;»õë×Kå–êÝ1äJÈôÜ$K>ÿüséy¯F¿þú«ñ©¯999O=õ”qÕÛo¿m¶‘×^{ÍlyAAÁ«¯¾ZýúDDDDDw ¹&)ÑãIÆççç·zõêǼ¡ûBDDDDt§‘q’R}Ú´iÓ¦M›ºDDDDDw¦;äjɇiUiUAÆ´áøñãÏ=÷\çÎyä‘éÓ§_¹rE¾XDDDDD$¹Ò†Ÿþy̘1ÞyçÈÈÈS§N=ÿüóEEE2…#"""""ùÈõ$¥wÞyÇÉÉé“O>iÚ´)€GyÄßßÓ¦MÓ¦M“)"ÉD®« ?ýôSŸ>}¤œ@§NÜÜÜöïß/S8"""""’\iCYYY“&MLKš4iò믿ÊŽˆˆˆˆˆä#WÚбcÇ“'OŠ¢(½ÌÏÏÿý÷ßKJJJJJdŠHDDDDD2‘ëÞ†qãÆ½þúëK—. )..^°` ”JY•»ï¾ûË/¿üå—_ËÊÊrss£££¥UÞÞÞ/¼ð‚B¡°³³KNNÞ¾};€yóæ=ýôÓ'OžtppÐjµvvv™™™ï¾û.€víÚÍ™3G©TªÕêÜÜÜÅ‹ëõzNNNK—.-++àââuêÔ©   ñãÇïß¿ßÃ㨨H„¨¨¨‚‚Kq¨Õêùóç·lÙR©Têõú²²²×_½¦qåC"""""KäJž{î¹+W®|ðÁü1€Aƒ :ôû￯0s©®~þùç÷ÝwŸt >}úô.]ºœ={@ZZZZZšTmÅŠÒé{lllûöí§N:a„ÂÂÂøøøeË–Iu‚ƒƒçÌ™#¦wíÚ5$$ä½÷Þ0bĈM›6;v €¿¿aa!€Í›7?ñÄ:nÒ¤Iœß|óͰ°0KqÌ;wçÎgΜТE‹%K–Ø—ˆˆÈÇŽÿT¹°‹G‡úï 5:r¥ ^}õÕÉ“'gee999µiÓfðàÁ={ö”/€¯¿þZZ¸páÂ}÷Ý'¥ nnn¡¡¡J¥Rc嬬,%%%ÙÙÙ¤ùT:uzôÑGW¬Xa¬VZZ*-$&&FDD\¾|yÿþýÒænܸ±víZiùÒ¥K%%%R,Kq[¶l)å ®_¿b[\""¢š ùx峿þ^ÿ=!¢FGÆ´€½½}çÎ$&&þúë¯óæÍ“5\eJ¥rÑ¢E3fÌ&ÅÄÄX¯_\\|üøñðððÊ«®_¿.]Fpuu}饗8šš @¡P˜V“^V?®”®Ø—ˆˆ¨¦.]ÉA½þÿÿJSˆ‰ˆª$×-ÑóçÏߺuëÎ;çÏŸ?sæÌ1cÆ 8P¦p–ØÛÛkµZéÜÝÑÑÑÛÛÛz}­VÛ¾}ûŽ;J/U*Õ!C¤åE‹i4/^ܱcG÷îÝ¥r;;»É“'KËÎÎÎMš4ÁJÜ¢¢")• Ñh^{í5ÛâÕÔ±ã?O;™öã/?|Ë–-¦M›öòË/7oÞ|ìØ±Ÿ}öYHHHtt´B¡EÑÎÎnýúõRˆ¦M›¾õÖ[Ò-ËæÎ+•_½zµ°°píÚµååå,XÀR\A–,YÕ´iSQ5Í| µSÓ¸DDD5ÅIJDd3 ³ü럛›[ƒÄ­[111<•'"¢ÛVDdLجPNgœ•Ta’’DÅmÛãÃB§TØÇçRáL苾J(7bc R¬·ÿ>ÒA'-w@‡%XrGîŒ~ʺ_ˆˆˆˆ¨‘ëw233|ðAÓï¾û®´´ÔÎÎδüA<è ×)˜à|`< µT^SÓ1}ö¤! À¬IGúMÜ”VùÁïY<;“ËQn¬ï Ww¸OÂ$°á(Ž °öLëuX÷#~”–#qçîŒ~ʽ_ˆˆˆˆ¨‘ëIJùùùŽŽŽ¦%ŽŽŽ¢(T¨9£×a´\ˆÂ*Ëk*ÉÒ¹8€¤xÂÓ¸*Á30Ãô\@>ŧÆúÝaæÎ SÆsq÷âÞ<äU§W숎·s?åÞ/DDDDÔˆ4üXàð7þö‚×§øÔ~U–×ÔIœ4.÷C¿³8+-wB§T¤–¡¬B}W¸žÇyiù θÁ­šá˜üjV¾wß…»nç~ʽ_ˆˆˆˆ¨‘+mptt,,üÇWÑ …âî»ï6[*¦¾„—áP5ËmŒàƒ8x7¤—ÎpÎDæ\Ì]Õa3VSBiœí£ƒN]íy\~ð»óúYû…ˆˆˆˆnrÝÛàîî~êÔ)Ó’_ýõþûï···7[ßx·n5Ë+û_zÀÃø2 ±ÐøòE¼XŽò$K Q¸K§bêiœö‡ÿ+xe=Ö!ª ÒC@Må¯ù-ñÏ|Ì·^GÍ[xK µ'<ýà—‡<-´+°âvë§Qí÷ ÝäJüýý¿þúë~ø¡W¯^._¾|äÈ‘ñãÇ[ª¿>À­Ðª Ú\Á•*Ë+Ñ–V=‰'Û Í*¬2-<‡sßà›Ó8 à ®ÄJ©<Ùîp—æyÀ#™Õò øÂ IDATzÃÕ;w/CÙkx ÀLHCšý6ì§Qí÷ ÝlŸ¤$ŠbRRRRRRFF€ää䤤¤´´ÿ¿©÷©§žêܹ󫯾º}ûöÄÄĉ'6oÞ|òäɕ۹‚+.p9…SS0%ÆsPKå55 ÃÂCÒ¹¸ì4ÐHå%()E©ôò<‹\©< A €âq<žŽtÓ¦Dˆ£0ªr”ñ ñNƒ;£Ÿrï""""jDl¿Ú ×냃ƒ/,XÀ××7..€Z­þì³Ï¢£££££ËÊʼ½½×¬YÓºuëÊí|†Ïba(BEˆÞð6>MÈRyM-ÅÒd$¯Æjnp[Æß+Ø€ oãm‚šÙ˜-j¡=󱈵‡ýz¬—fIü៎ô]ØU9J_ôÝýÕ _ùßný”{¿Q#¢••Õ ±ÝÜܤ…¾è;c‹Qœ‚”xÄ+X*o(§qú5¼V£ô AÔU?Ë~!""+""cÂf…êt:AA/H Q·m RaóÄ}‡†ú9995H牨Áåçç'î;4æ¹îm¨‘#8bö‹-•78\ÆåÛ?g¨Ã~6ŠýBDDDDõ á·¡±¸‰›þðoè^T­±ô“ˆˆˆˆ¦ DDDDDT¦ DDDDDT¦ DDDDDT¦ DDDDDTÛŸ¤”››{òäÉŒŒŒÒÒÒ””—j®%""""¢FÄö« ÙÙÙ{÷îmÑ¢E÷îÝkº–ˆˆˆˆˆÛ¯6ôèÑ#==@\\\jjjÖQ#b{Ú TZ»Ra}-IT*Uddä=÷ÜÓ¤I“Í›7÷ÝwUn2a„¾}û*•Ê7¦¤¤TXkgg·jÕªüüü TÙ¾§§§V«-((¨ÐHÿþý'NœXTTtìØ±Ï?ÿÜXÞ¤I“ÄÄĤ¤¤Õ«W›Ö 1bÄ­[·ôzýìÙ³ËÊʪìgõÕèý‘Ln‹_‰¾­L:µW¯^Ò‰”——׬Y³~þùç†îݱ¦OŸ¾gÏž´´4kÖ¬IOO¿yó¦•ú®®®îîî“&M°aÆ£G ‚`Z¡´´ôµ×^3žC[jðàÁO>ùd›6m.\X!mðóó{öÙg'Ož\^^^!úøñãß~ûíÎ;W(÷õõ8qbúYM5}¿DDD$^0cÉ’%3gΜ?þ¹sç˜3¬’““¥sz)))žžžÖë|úé§ÆúUÞ;d©ý¯¿þ:888!!¡ò&ÁÁÁ3f̨œ3¨ÕjOOÏÓ§OWÞ¤rªSÓ~ZRWíQ-ñjCEgΜùûï¿Ì›7oÙ²e ݺÃZ­6++«¡»CÿÁÁÁ¼qㆱD¯×ÿüóÏ™™™¦Õ”J¥q–ŽN§S«ÿÿ#1{ölé[ÿ¥K—VžT¹}³œ333çÎÛ¦M›ììì·ß~Û·W¯^›6mªð$åÇ>|8&&fîܹÕéçܹswîÜyæÌ-Z´X²d‰±{sæÌ‘Ò•®]»†„„¼÷Þ{µy¿DDDT·˜6˜aoo?nܸiÓ¦5tGèßâÅ_,//¯0eH„Q£FU¨)Š¢J¥’¾‰×h4Òyv‡LoŠxÿý÷ƒƒƒ«l߬ÂÂÂ¥K—N:õôéÓþþþ¯¼òÊúõë<ûì³ñññÕGfû  eË–RÎàúõë!!!:uêô裮X±Â¸yiiimÞ/Õ9¦ f¼ñÆ+V¬Eñ®»îš2eJ…‡ÆÕ-éÖäU«VU§rvv¶»»ûÙ³gxxx¯Eˆ¢h¬cº\ÓöÏ;÷Í7ßH70š——÷Ûo¿P©T Ý#º“ 6졇’Îéíìì4q•R©ÜµkWLLŒiý„„„   …âñÇ—~å÷ß÷öönÖ¬™Tçµ×^«Nûf•”””––JÕxàÜÜ\©<::zæÌ™3gÎŒŒŒÜ½{·õœÁR?ĤÑh¤®jµÚöíÛwìØQ*W©TC† ±íý‘Ll¿Ú ×ëM'H@ôõõ‹‹«ríílÒ¤IÅÅÅÒFsùòå†îÝÉ–.]šœœ,onnn+V¬8r䈴J¥RuëÖ­ÂO hµÚóçÏÇÆÆÚÛÛ¯_¿^š½`ñâÅ+V¬(--upp8tèЬY³Ž9²oß>Kíûûû>ÜÓÓÓÏÏ///oݺuçΓšÚ°aÃÛo¿-‚F£™={¶itŸ—_~ÙôjC``à€¤[¢EQ\¾|¹ô‘±ÔÏ%K–DEE5mÚTEFóÁHå!!!ÑÑÑ …BE;;;if” ï·Nwý@CÝøëææÖ q‰ˆˆþ=""cÂf…êt:AA/H Q·m RaóÄ}‡†ú9995H牨Áåçç'î;4æþnUiUiUiUiUiUÁößmÈÍÍ=yòdFFFiiiJJŠ‹‹‹qmJJÊöíÛ?~íÚ5''§Ι3ç¾ûî«‹>Q½²=mÈÎÎÞ»w¯——W÷îÝSSS+¬]³fÍ7^xá—?þø#..î‡~Ø¿¿ñ‡]‰ˆˆˆˆ¨±°=mèÑ£Gzz:€¸¸¸ÊiÃ[o½Õ¡CãKOOÏiÓ¦}õÕWÏ=÷œÍ‰ˆˆˆˆ¨AØž6(•Öî‹0ÍôìÙÀ•+WlWÏGŒqëÖ-½^?{öì²²²†îýyzzjµÚ‚‚‚êTž0aBß¾}•JåÆSRRX^¡œˆˆˆjÃö´¡F~øá;w®Ÿpµçëë;qâĆîý{ <øÉ'ŸlÓ¦ÍÂ… «“6¸ººº»»Oš4 À† Ž=*ËåDDDTKõñ$¥üüü¥K—>ôÐC~~~õ®Nܼy³¡»@ÿj_ýupppBBB5ë|úé§ÒrJJJ÷îÝYnZNDDDµ${ÚPRR2eÊ”âââµkתT*¹ÃÕÞ€V¯^íçç·zõêÕ«W{yyIå+W®|÷Ýw׬YóÆo( ëåD2Ñh4üñÇž={L ]]]ÏŸ?/-Ÿ9sÆÍÍå¦åDDDTKòNRÒét“'OÎÈÈøâ‹/˿߇>|øpLLÌܹsMË£££W®\©ÕjôïßúôékÖ¬±RN$½^ÿóÏ?gffš*•JãlN§V«YnZNDDDµ$ã¿©eeeÓ¦MKOOß¼ys×®]å TìííoÞ¼)å¾ÿþû‘#GZ)'ª¦/¿üÒÃÃÃø2!!aáÂ…Ö7aÔ¨Q EQT©Tz½€F£1ÞÄÏrëƒIDDDÕ$×$¥òòò#GŽÄÅÅݑӋEQ¬Q9‘Y£Gîf¢ÊœÁ’ììlwwwiÙÃÃãâÅ‹,7-'""¢Z²=mE1))))))##@rrrRRRZZš´6<<üÀyyyIRÍÆ¨¤¤¤yóæÎÎÎÒË>}úHW,•ÉG©TîÚµ+&&Æ´0!!!((€B¡xüñÇ¥ßTa¹±œˆˆˆjÉöIJz½>88ØørÁ‚|}}ãââüôÓO¶lÙ²eËcqãÆ-Z´ÈöÎÖ‹ÀÀÀôíÛwõêÕ¢(._¾üòåË"""¢¢¢T*•J¥ÒjµÆ“6KåDµáïï?|øpOOO??¿¼¼¼uëÖ;wNZ¥R©ºuëVá‡S´Zíùóçcccíííׯ_/ÍÒa¹±œˆˆˆjI ++«Ab7–›¤‰ˆˆ¯ˆÈ˜°Y¡:NAÐ ÒÃ_Á@ÅmÛãÃB§TØ~·ˆˆˆˆˆ5¦ DDDDDT¦ DDDDDT¦ DDDDDT¦ DDDDDT¦ DDDDDTÛÓ†ÜÜÜÈÈÈQ£Fyxx¸¹¹åä䘮MKK êÙ³gÇŽ~øá   ã/ÁQãb{Ú½wïÞ-ZtïÞ½òÚœœœ-ZL:uÕªU¡¡¡999/¼ð™3gjÑU"""""j¶ÿJt=ÒÓÓÄÅÅ¥¦¦VXûÔSO=õÔSÆ—#FŒðññ‰衇lŽHDDDDD Âö« Je ¶½çž{Ôjµ(Š6‡«g7n\»ví{ï½§Ñhjºù„ :$GÇèŽäéééèèXÍÊÆ ûôÓOccc‡.•Ty¼Yj¿I“&˜9s¦iá„ >þøã 6ôëׯší×(nåö%Ó§OݰaðaÃjSŸˆˆˆä`ûÕ†ê())ÑëõýõWlll“&MF-k¸:äëë;qâD›7ÿä“O:wî\‡ý¡;ÕàÁƒŸ|òÉ6mÚ,\¸°   ÊúvvvC† ?~<€•+W¦¦¦þý÷ßVŽ7ëí?þí·ß6ÝÖÕÕÕÝÝ}Ò¤I6lØpôèQAl8ž-Å5Û>€=zˆ¢8mÚ4kÖ¬9|øðÍ›7m¨ODDD2‘÷IJcÇŽ}衇{ì±|òÉ'²†«C<¡úñõ×_'$$T³þ#<’œœ,-oÞ¼ÙxÁÁ†öÕjµ§§çéÓ§M >ýôSi9%%ÅìKÕa)®¥ö~øáo¿ýVZNKKsss³­>ÉDÞ« ‹/.,,¼zõê¦M›Æ¿yóf›ÏBêÍ€ûöí»zõj7n|8&&fîܹ¦åÑÑÑ+W®Ôjµú÷ï?}úô5kÖX)oÕªUÛ¶mg̘ÀÅÅeÑ¢E¡¡¡ÒÒÒŒça+V¬0¦ ·nÝŠŽŽž>}ºt¯9ýËéõúŸþ933Ó´ðôéÓ¡¡¡;vìÐh4S§NÍËË“Ê-o–(•Ê^½zmÚ´ÉÅÅ¥B¹4 €N§S«ÕÖÛž3gNYY€®]»†„„¼÷Þ{ÖãšmÿÂ… fïÞ½­[·^µj•N§³­>ÉDÞ´áaÔjÆûV{{û›7oJ¹€ï¿ÿ~äÈ‘VÊètº?üPZÎÉÉ)..V©Tz½ÞÍÍ-44T:òññ©(::š9IA5jTåÂeË–­\¹²¼¼<**jòäÉR¹¥ãÍRãÏ>ûl|||årQj4)°Ôþ<ð裮X±Â¸yii©õ7e©ýÞ½{_¾|yÞ¼yJ¥råÊ•ß~ûíµk×l¨ODDD2‘+mÐëõ*•Êø²  àÇìÒ¥‹Lá꟥§BËEQ4­#‚(ŠJ¥rÑ¢E3fÌ&xÄÄÄTØœ_šR•233_}õU=öØ?þ(š=Þ¬4âîîîãã3bćN:mݺõÊ•+²³³ÝÝÝÏž= ÀÃÃÃx­ÃlûÅÅÅǯ~ç-µ?dÈ·ÞzKjyÛ¶m}úôÙ³g õ‰ˆˆH&¶ß-ŠbRRRRRRFF€ää䤤$ãô›W^y%<<|Ë–-»wï~ÿý÷nܸ!ë4F%%%Í›7wvv–^öéÓGºÂ`©€ƒƒƒô˜ÎÎÎF{{{­V+å ŽŽŽÞÞÞõýN¨ñP*•»víªœ[Jî¿ÿþçŸÞx®löx³ÒxttôÌ™3gΜ¹{÷n)g@¡P<þøãÆk_fÛ×jµíÛ·ïØ±£T®R©† býMYjÿÔ©S¾¾¾ÒòÀW&kZŸˆˆˆdbûÕ½^l|¹`Á¾¾¾qqq¸{÷îÝ»w—””´hÑÂÛÛûý÷ß÷òòª}å8`Àé–hQ—/_~ùòeQQQ*•J¥RiµZãÉœÙò   ¶mÛŠ¢øá‡–””‚àÖ­[×®][»v­ jµº°°pÙ²eóæÍ!<<\º_< àæÍ›ÒxÒÏßßøðážžž~~~yyyëÖ­;wJ¥Ruë֭¤´nÝzþüùòóógÏž-å–Ž7ëíðññyùå—M¯6hµÚóçÏÇÆÆÚÛÛ¯_¿^šd¥ýèèh…B!Š¢Ýúõë­Ç5Û>€øøøððð¡C‡ªTª£G^¸pA*¯i}"""’‰@VVVƒÄæ3‰ˆˆä6+T§Ó ‚ zAúcø+ˆ¢¸m{|Xè” ›'î;0ÔÏÉÉ©A:OD .???qß¡ 1ÏÈû» DDDDDt`Ú@DDDDDU`Ú@DDDDDU`Ú@DDDDDU`Ú@DDDDDU`Ú@DDDDDU°=mÈÍÍŒŒ5j”‡‡‡››[NNŽ¥šS§Nuss›={¶Í±ˆˆˆˆˆ¨Ùž6dggïÝ»·E‹Ò”YrðàÁcÇŽi4›Qò=mèÑ£Gzzz\\œ¿¿¿¥:EEE .œ;w.Ó""""¢ÆËö´A©¬zÛU«V9;;=Úæ(DDDDDÔàÔò5}êÔ©Ï>û,!!A¡PÈ…ˆˆˆˆˆä&ד”ôzý¼yó‚‚‚:wî,S"""""ªr¥ 6lÈËË “©}"""""ª7²¤ W¯^}çwfÍš¥×ë ”••–——W¨¬Ô&ÿ©äèÕ‚,iƒV«-..~ã71¸uëVBBÂ#IɺæÍ›Oš4ÉÛÛ»iÓ¦§OŸ^·n]``à¾}ûZ·nm~ƒ{dêÕ–\iƒ——————´Ü¿ÿ>}ú<õÔS7n|ã7dŠHDDDDD2‘+m¨ÀËËËÍÍíäÉ“fÖÙ @°D ´~:EDDDDDÕROi½^¯P(*–vž2y9° 0—_Qƒ+m(//W«ÿ×ø‘#G²³³GŽY±Þà: ¾D@+S§ˆˆˆˆˆÈ¶§ ¢(îÛ·@FF€äää–-[¶nÝÚÛÛÀäɓ۴iÓµkW{{û3gÎ|þùçmÛ¶}饗*¶RHX*dÙÜ"""""’‹íiƒ^¯6¾\°`__߸¸8>úhBBž={JKK[µj8kÖ¬–-[Zlî†Í!"""""yÙž6¨Õꬬ,Kk§N:uêÔ4·Ï掑¼äý¹7"""""º0m """"¢*0m """"¢*0m """"¢*0m """"¢*0m """"¢*Øž6äææFFFŽ5ÊÃÃÃÍÍ-''§ro¿ýö¹çžóôôìÒ¥ËÈ‘#;V‹®Qð=mÈÎÎÞ»wo‹-ºwïn¶Â–-[&Nœèèè±hÑ"ooï¼¼<›ÃQC±ýçÞzô葞ž ...55µÂÚœœœ¨¨¨I“&…‡‡×ªƒDDDDDÔÐl¿Ú TZÛvÛ¶m‚ ̘1€ 6G©©I“&uëÖ­Nš²³³{ÿý÷/^\'­5^rÝ}âĉ.]ºìÞ½ÛÇǧC‡}ûö]¿~½(Š2… R©¾øâ‹‘#G.Z´(99ÙÁÁ¡– –––¾öÚkuÒ7""""¢FÍöIJÖåæææææ®Y³fîܹíÚµÛ»wïâÅ‹u:]pp°L{÷î}ôèÑ5kÖ:t¨N§“)Ñ¿\iƒ(ŠEEEk×®8p €Þ½{çää¬[·nÊ”)*•JŽˆ.\4h]iié¾}ûª¬¯V«çÏŸß²eK¥R©×ëËÊÊ^ýu...ááá%%%fçÎrt•ˆˆˆˆ¨q‘+mprrзo_cIÿþý¿ûî;­V{ÿý÷Ë177766öé§Ÿvpp(++Û¸q£õúsçÎݹsç™3g´hÑbÉ’%RyDDÄìÙ³oÞ¼ `éÒ¥õycÑíI®{ÜÝݘÞÌ [¿‘º–òòò¶lÙòÑGåææ4Èzå–-[J9€ëׯ‡„„èСCzzº”3xÿý÷åë-Qc!×IüàÁƒ|÷ÝwÆ’äää{î¹ÇÙÙY¦ˆQQQ;w––»víZPPP£ÍŽiª#ë=ÜDDDDD…íiƒ(ŠIIIIII’“““’’ÒÒÒ¤µƒ òññyýõ×7oÞüßÿþ7,,ìèÑ£aaaò]m8þü°aÃâââ>üðà .üøãÖëÓ F#=4é÷ß÷öönÖ¬™T^Í'))•Ê]»vÅÄÄT³œˆˆˆˆ¨q±ýÞ½^oúX¤ ðõõ‹‹ P(>þøãåË—¿ûî»:tXµjÕÓO?]û[òÙgŸ˜0a±cÇÎ;Weý%K–DEE5mÚTEFóÁHå‹/^±bEii©ƒƒÃ¡C‡fÍšuäÈë÷X«TªnݺUΈ,•5.¶§ jµ:++ËJ‡E‹-Z´Èæ6Ðëõz½¾:5KJJÞxãÊå/^4M‡¶nÝZeSeee<ð@õˉˆˆˆˆ¹ž¤ÔP¾øâ‹òòò†îÑåN›?܈ˆˆˆ¨ÎÝiiÕ9¦ DDDDDT¦ DDDDDT¦ DDDDDTÛŸ¤”››{òäÉŒŒŒÒÒÒ””ãÚI“&qâÄôéÓ …¬ˆˆˆÈ’·ßy·¡»@Džíiƒ(Šûöí‘‘ 99¹eË–­[·ööö6ÖÙ¹s§(Šœ¡DDDÔ€|ýü«Sí¿‡ÊÝ"j¼lOôz}pp°ñå‚ øúúÆÅÅI%¢(îܹ³gÏžíÛ·¯e/‰ˆˆˆˆ¨Ùž6¨Õꬬ,+ EJJŠÍíÑm¢>~·ˆˆˆˆˆ5¦ DDDÿ×Þ½GEQ¾qwaÙMAñ’\~¢ KfvY $Íã…s4=fI"fy/GÌEQCë¼Åñ`y$KS MÃcj"*erÒ”‹ ¬¤+ ²°·ßSÛÆÎÌÎ,ƒ òýÿx}wö}ŸywffÞ°iX´¬@ÚV m+lOjkk“’’BCC …Ouuu›Μ9óöÛo6lÈ!“'Oq ægIDATÎÍÍm_¨`¶§ •••Guss{å•W,_½téRtt´^¯ß²eKVVÖÀW®\¹ÿþv„ öaûãÞ”Jeqq1!$;;»°°°Í«GŽ¡^’Ëå„ &Œ;öàÁƒaaaíˆìÀö³ b1Û{Äb±³³³ia›»³Í¨Q£N:åççÇ´Àž={†þ$C¢5wîÜ‚‚AšZ¸pááÇiªãÚ·º]¸óööÞ¶mÛ‰'˜¶£T*ÍÈÈØ°aCûûâÕï“$Ôúp»Ø¥ý.GÀý—q.à~†¶/ÀÓ­£¦D‡……I¥ÒuëÖÕÔÔÜ¿çÎ7oÞœ7o÷ââ⊋‹ÓÓÓÓÒÒvîÜ`C………ûöícY`ÿþý5556´,¬={ö\ºtI¦²²²®_¿.HS×¾ÕíÂ]UUÕâÅ‹srr˜hiiùðÃé‹W¿O’më399Yv¸ëèö»÷?\ƹ€û"Üø±l:'Û/Rbçïï¿wïÞ÷ßÿ«¯¾"„Èd²´´´î-lݺÕÃÃ:ŠD¢;vFaã<~ü¸° t={ö´wÝ]—Þÿ5~0ºŠŽJJJJ¢¢¢”Jåœ9sœœœ¾ÿþûeË–‰D¢©S§ÚКÑh¬®®îÙ³§B¡HIIYµjÕ•+W¦M›™™ùã?Bärù¦M›´Z-!ÄËË+99ùêÕ«ÔÛ§L™¢P(!•••©©©T¥——×òåË ÕUÙ«W¯ÜÜÜ’’WWW­V[[[›’’B½äãã³jժǻ¹¹Ýºukذa+W®¼uëSÌï¾û®H$’J¥§OŸ>pà€Õ:~üx£Ñ(‰!ÎÎÎIII‰D,WWWoÙ²…ʘêMfÍš•’’²sçÎO?ý4!!á­·Þúí·ßœU*•T*½yóægŸ}Æç´iÓ¢¢¢vïÞÔ·o_±X«×ëiÛgùP|· íçR*•LÛ‰——×êÕ«5D"ùöÛo­®|Ú~YÆ-±X|òäÉÛ·oÇÆÆj4šÙ³g¯X±"&&Ærò%222**êøñã …¢©©É`0$''744°|^¾ë“–D"ùøãÇ—žžNimmMHH0m\Úv<==W¬X!‹kkk7lØ`>,9::®ZµªwïÞb±X¯×kµÚ>úˆ¥}ÚqhÃ÷‘)N–õF‹iü3µïí혘¨ÑhzõêõóÏ?ÏŸ??99¹®®Ži;Òîlè—ï8'tû¾ãÖ†ñC»}ÙÛ€Îèvû¬]»–rîÜ9óÊ×^{ÍÛÛ»¬¬ÌT3~üxww÷ŠŠ SÕÀL¿G===wïÞM•ÃÂÂ^zé%ªùä«Ë|ñÅ .¤Ê^^^ÔozBHZZš§§'U3fÌâÅ‹Ùë !©©©žžž{÷îíׯU#—Ë·oßN™;wîŒ3!›7o¶çĉ •Je›Å,ÛgÁw»0}.¦íN‰ˆˆhsøŽ;LSk6mÚdunS¿Lã©_??¿eË–Qeww÷¤¤$ö~÷îÝ»dɪìáá±uëVª,ì8§E›ï1µ³qãF‰DB•‡nŠ™IbbâóÏ?O•ÝÜܲ²²¸Çi>ù~™âdZo,hÇ?SûÙÙÙ¦ñ–––fÚîìãÖrÿ÷_¾ãœi?ÃwÜžãÇ\›ý ûß@k’R¹ÿS[Ø»ïµZm€îŠÚŽ;ÛPQQ1|øpGÇÛá…N:õ×_Q÷VâÂÏÏ/==]$555™~:0ÉËË[³fÍÔ©SkjjŽ?nž–˜nüZQQ1`À€òòrö¦~øáªPVVÖ¿ÿëׯ:´¨¨H£ÑBZZZ>ÿüs«Áûøø,]ºT, †Q£FY]¾µµuÇŽT¹ººº¹¹ÙÁÁA"‘466ªT*ªþìÙ³Ó¦M#„Èd2ÚzJŸ>}òóó'Ož\WWgª¤VˆF£©¬¬$„ÿ95ÁgJJ u¿,s´í3áµ]Ø?wƒ...nll¤þ›‘‘aú©D‹½_ËñÀÒTYYÙ Aƒ¨õÍê£G233©òÝ»w5 õ^¦åçL,Ûñóó{õÕWÍíµ´´°7Ò»wïßÿ*«ÕêØØXö8YÆ!÷ï#Kœ,ëE›ñÏÔþ Aƒ.]ºdo[¶lY°`—öÛÙ/ßqNö3z½žï¸eÁwû“±6q%—ÅÖo ù‹¥£Ò†\»vM§Ó™2‡_ýµgÏž...Ü)++ã>™U­VÇÅÅB¼½½çÍ›wâÄ ¦3ì60þ÷ú‘Hľ¼X,^¿~ýâÅ‹© د1uaÞ‹Á`0ÒMä ­lS¯Õjg̘±nÝºØØXNמ8[[[-ߎ}ÒîíÂôyy½Ñ†Flî—røðáéÓ§9rÄÃÃJÒX´KV‡V‡Žs&ÍÍÍ/^\½zµÍ-°¯O¾ß¦ï#Kœ¶­·6㟥}ó gu# Ø/ßqβŸá5ny±aA«ÕêtzŠN¯×ëtôz½N¯Óë۳߀îÀö;)Æüüüüüük×®BNŸ>ŸŸùòeêÕèèh•J•ŸŸòäɸ¸¸3gÎDGG·ÿ¬îîî„‘Hôú믛êׯ_Oįªªúæ›ohBg³ÒÒÒÀÀ@©TJ‘J¥QQQìËËd2•JE#]]]¹ÜÊÙÙ9&&†*{xxH$ƒÁ Ñh\\\<<<¨úàà`ê/âLõ”†††òòòmÛ¶Ñ^‰ÔÎ8yµOxn–ÏÅ´ÝiUTT˜¦ZZM>Ù×'_ãÆ›>}:—;ÕJ¥Ò>ø€*{xx899Q§žÀ8—J¥¦¸}ûöeYR¥R 8ÐtÁ‰ƒƒÃ¤I“Øojjò÷÷§Ê‰„}ð‡LßG–8YoLíߺuK©Tš.2¿‚‹×¸åÛ/ßqNö3Ôy[Âgü°o_îí€}‰È?—¯ð¥Óé,ïÏ=~üxÓÙí¼¼¼]»vݸqC¯×ûøø„……EGG›?íýò⸸¸Ù³gŸ={¶¾¾~ãÆ¦zêöä?vqqillìß¿xx¸^¯§.¥¦ Bâãã?~¬P(222îܹ³hÑ¢>}úddd´´´ÄÄÄ/ßõÉÒõ˜1c"""š››%IIIÉöíÛYÚquuMII‰DF£Q*•îÞ½›ýVž2™,99¹GF£Q"‘dee•””°´O; Ä÷ûÈ'ízc‰Ÿiü3µOM‰nnn–ÉdG9r$5=€i;Òîlë—û8gÙÏP¸[Âsü°ì-ÛáÒ;ð²&)umâJ.g¾>p0niÛKìòŽL<ûÆð”yøðaÞ±‚Èð™¶§ íÇeVbçZ[[{þüy{”R©|ùå—MóøY¤¦¦ÆÇÇ?žbíû(“Éâãã¹Ì*îl¸[èZ6@{˜Ò†ŽzÜÛÓ-00°´´ÔÞQ@ç5sæLê‰%ðàû(ŒÛîÀMîÜÇÝõÙ~½==úýÏ{À`¯!¾ít 5%ú©D]WðÌ3Ïœ:uª¾¾ÞÞá@§#‰6oÞìää4vìØÒÒR«·£™3g΄ ÒÓÓóòòØC–:ç÷qÖ¬Y£G9rdQQËEq ßq ]šúa£›ÜÙ¼¦´üŽ^‡Çe€uHxàrßUèÎŒF£é¡f\äääääät\ž¦ãµå ýþ=Û`¹éãîJ[/ìÙSk–`Òæí&wþó~ƒ½‚€§žÙEJÿÝû<Û¯7m=AÚÐ X û¸»Þ«{`—`à©gv¶A§3•==úÑÖÿ]£òg½©5Ë0±<@Bží×[u·îÉO=ú‹”*«jþç=À²ž‚³ vG;{¡²ª³ #0^¤Tq»z°—e=!DØÙƦÖ, ÀÄò]q»Ú²@lS¢KËï ñˆ³ P›tiùœg€Žc>·f_óÇ Ëz¡~Ö?§|ýFmØ™ i×b¼H‰ÎØ®G€'É‘¨\¿aó;oÏàø£ÑØ‘!€Ü(µºÌ×*éîáÇ‚´]—ˆ¢V«Ï_¸|¡¨ØÞÁ€`‚•ÁAíl$ïX Á@—>óï´ÁÞ‘@'åææ&¶w ÐÙ!m+6€HÀ ¤ `Ò°i0’Ëåi0‘Ëåù?œ&H€•3¾D6€%óœ m€6ÌsÌm€¶Úä ˜Ûÿa™3`nü‹)g H€0ç ˜Û„°æ ˜ÛVrÌmèî¸ä i@·Å%gÀÜ€î‹c΀¹ Ý÷œsº#¾9AÚЭØ3X÷ ñN»È^ÒIEND®B`‚hg-evolve-11.1.3/docs/from-mq.rst0000666000000000000000000001270014606303052016472 0ustar rootroot00000000000000.. Copyright 2011 Pierre-Yves David .. Logilab SA ----------------------------------- From MQ To Evolve, The Refugee Book ----------------------------------- Cheat sheet ----------- ============================== ============================================ mq command new equivalent ============================== ============================================ qseries ``log`` qnew ``commit`` qrefresh ``amend`` qrefresh --exclude ``uncommit`` qpop ``update`` or ``previous`` qpush ``update`` or ``next`` sometimes ``evolve`` or ``pick`` qrm ``prune`` qfold ``fold`` qdiff ``pdiff`` qrecord ``record`` qimport ``import`` qfinish -- qcommit -- ============================== ============================================ Replacement details ------------------- hg qseries `````````` All your work in progress is now in real changesets all the time. You can use the standard ``log`` command to display them. You can use the ``draft()`` (or ``secret()``) revset to display unfinished work only, and use templates to have the same kind of compact that the output of ``qseries`` has. This will result in something like .. code-block:: ini [alias] wip = log -r 'not public()' --template='{rev}:{node|short} {desc|firstline}\n' Using the topic extension provides another way of looking at your work in progress. Topic branches are lightweight branches which fade out when changes are finalized. Although the underlying mechanics are different, both queues and topics help users organize and share their unfinished work. The topic extension provides the ``stack`` command. Similar to ``qseries``, ``stack`` lists all changesets in a topic as well as other related information. .. code-block:: console $ hg stack Installing the evolve extension also installs the topic extension. To enable it, add the following to your `hgrc` config: .. code-block:: ini [extensions] topic = hg qnew ``````` With evolve you handle standard changesets without an additional overlay. Standard changeset are created using ``hg commit`` as usual .. code-block:: console $ hg commit If you want to keep the "WIP is not pushed" behavior, you want to set your changeset in the secret phase using the ``phase`` command. Note that you only need it for the first commit you want to be secret. Later commits will inherit their parent's phase. If you always want your new commit to be in the secret phase, your should consider updating your configuration .. code-block:: ini [phases] new-commit = secret hg qref ``````` A new command from evolution will allow you to rewrite the changeset you are currently on. Just call .. code-block:: console $ hg amend This command takes the same options as ``commit``, plus the switch ``-e`` (``--edit``) to edit the commit message in an editor. .. -c is very confusig .. .. The amend command also has a -c switch which allows you to make an .. explicit amending commit before rewriting a changeset.:: .. .. $ hg record -m 'feature A' .. # oups, I forgot some stuff .. $ hg record babar.py .. $ hg amend -c .^ # .^ refer to "working directory parent, here 'feature A' .. note: refresh is an alias for amend hg qref --exclude ````````````````` To remove changes from your current commit use .. code-block:: console $ hg uncommit not-ready.txt hg qpop ``````` To emulate the behavior of ``qpop`` use .. code-block:: console $ hg previous If you need to go back to an arbitrary commit you can use .. code-block:: console $ hg update .. note:: previous and update allow movement with working directory changes applied, and gracefully merge them. .. note:: Previous versions of the documentation recommended the deprecated gdown command hg qpush ```````` The following command emulates the behavior of ``hg qpush`` .. code-block:: console $ hg next When you rewrite changesets, descendants of rewritten changesets are marked as "orphan". You need to rewrite them on top of the new version of their ancestor. The evolution extension adds a command to rewrite "orphan" changesets .. code-block:: console $ hg evolve You can also reorder a changeset using .. code-block:: console $ hg pick OLD_VERSION or .. code-block:: console $ hg rebase -r REVSET_FOR_OLD_VERSION -d . note: using ``pick`` allows you to choose the changeset you want next as the ``--move`` option of ``qpush`` does. hg qrm `````` evolution introduces a new command to mark a changeset as "not wanted anymore". .. code-block:: console $ hg prune REVSET hg qfold ```````` The following command emulates the behavior of ``qfold`` .. code-block:: console $ hg fold FIRST::LAST hg qdiff ```````` ``pdiff`` is an alias for ``hg diff -r .^`` It works like ``qdiff``, but outside MQ. hg qimport `````````` To import a new patch, use .. code-block:: console $ hg import NEW_CHANGES.patch hg qfinish `````````` This is not necessary anymore. If you want to control the mutability of changesets, see the ``phase`` feature. hg qcommit `````````` If you really need to send patches through versioned mq patches, you should look at the qsync extension. hg-evolve-11.1.3/docs/index.rst0000666000000000000000000001605614606303052016233 0ustar rootroot00000000000000.. Copyright © 2014 Greg Ward ================================== Changeset Evolution with Mercurial ================================== `evolve`_ is a Mercurial extension for faster and safer mutable history. It implements the `changeset evolution`_ concept for `Mercurial`_. * It offers a safe and simple way to refine changesets locally and propagate those changes to other repositories. * It can automatically detect and handle the complex issues that can arise from exchanging draft changesets. * It even makes it possible for multiple developers to safely rewrite the same parts of history in a distributed way. * It fully respects the Phases concept so users will only be able to rewrite parts of the history that are safe to change. Phases have been part of Mercurial since early 2012. .. _`evolve`: https://www.mercurial-scm.org/wiki/EvolveExtension .. _`Mercurial`: https://www.mercurial-scm.org/ Installation and setup ---------------------- We recommend you subscribe to the `evolve-testers`_ mailing list to stay up to date with the latest news and announcement. .. _`evolve-testers`: https://www.mercurial-scm.org/mailman/listinfo/evolve-testers Using pip:: pip install --user hg-evolve Then add in your `hgrc` config:: [extensions] evolve= You can easily edit the `hgrc` of a repository using `hg config --local`. Alternatively, you can edit your user configuration with `hg config --edit`. Table of Contents ----------------- .. toctree:: :maxdepth: 2 user-guide sharing concepts from-mq commands known-doc-issues .. _`changeset evolution`: What is Changeset Evolution? ---------------------------- With core Mercurial, changesets are permanent and immutable. You can commit new changesets to modify your source code, but you cannot modify or remove old changesets. For years, Mercurial has included various commands that allow history modification: ``rebase``, ``histedit``, ``commit --amend`` and so forth. However, there's a catch: until now, Mercurial's various mechanisms for modifying history have been *unsafe*, in that changesets were destroyed (“strippedâ€) rather than simply hidden and still easy to recover. ``evolve`` makes things better by changing the behaviour of most existing history modification commands so they use a safer mechanism (*changeset obsolescence*, covered below) rather than the older, less safe *strip* operation. ``evolve`` is built on infrastructure in core Mercurial: * *Phases* (starting in Mercurial 2.1) allow you to distinguish mutable and immutable changesets. * *Changeset obsolescence* (starting in Mercurial 2.3) is how Mercurial knows how history has been modified, specifically when one changeset replaces another. In the obsolescence model, a changeset is neither removed nor modified, but is instead marked *obsolete* and typically replaced by a *successor*. Obsolete changesets usually become *hidden* as well. Obsolescence is a disabled feature in Mercurial until you start using ``evolve``. Some of the things you can do with ``evolve`` are: * Fix a mistake immediately: “Oops! I just committed a changeset with a syntax error—I'll fix that and amend the changeset so no one sees my mistake.†(While this is possible using default features of core Mercurial, changeset evolution makes it safer.) * Fix a mistake a little bit later: “Oops! I broke the tests three commits back, but only noticed it now—I'll just update back to the bad changeset, fix my mistake, amend the changeset, and evolve history to update the affected changesets.†* Remove unwanted changes: “I hacked in some debug output two commits back; everything is working now, so I'll just prune that unwanted changeset and evolve history before pushing.†* Share mutable history with yourself: say you do most of your programming work locally, but need to test on a big remote server somewhere before you know everything is good. You can use ``evolve`` to share mutable history between two computers, pushing finely polished changesets to a public repository only after testing on the test server. * Share mutable history for code review: you don't want to publish unreviewed changesets, but you can't block every commit waiting for code review. The solution is to share mutable history with your reviewer, amending each changeset until it passes review. * Explore and audit the rewrite history of a changeset. Since Mercurial is tracking the edits you make to a changeset, you can look at the history of these edits. This is similar to Mercurial tracking the history of file edits, but at the changeset level. Why the `evolve` extension? --------------------------- Mercurial core already has some support for `changeset evolution`_ so why have a dedicated extension? The long-term plan for ``evolve`` is to add it to core Mercurial. However, having the extension helps us experiment with various user experience approaches and technical prototypes. Having a dedicated extension helps current users deploy the latest changes quickly and provides developers with low latency feedback. Whenever we are happy with a experimental direction in the extension, the relevant code can go upstream into Core Mercurial. Development status ------------------ While well underway, the full implementation of the `changeset evolution`_ concept is still a work in progress. Core Mercurial already supports many of the associated features, but for now they are still disabled by default. The current implementation has been usable for multiple years already, and some parts of it are used in production by multiple projects and companies (including the Mercurial project itself, Facebook, Google, etc…). However, there are still some areas were the current implementation has gaps. This means some use cases or performance issues are not handled as well as they currently are without evolution. Mercurial has been around for a long time and is strongly committed to backward compatibility. Therefore turning evolution on by default today could regress the experience of some of our current users. The features will only be enabled by default at the point where users who do not use or care about the new features added by evolution won't be negatively impacted by the new default. You can find the `evolution roadmap in the wiki`_. .. # .. _`this query`: https://bz.mercurial-scm.org/buglist.cgi?component=evolution&bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=NEED_EXAMPLE Resources --------- * For a practical guide to using ``evolve`` in a single repository, see the `user guide`_. * For more advanced tricks, see `sharing mutable history`_. * To learn about the concepts underlying ``evolve``, see `concepts`_ (incomplete). * If you're coming from MQ, see the `MQ migration guide`_ (incomplete). .. _`user guide`: user-guide.html .. _`sharing mutable history`: sharing.html .. _`concepts`: concepts.html .. _`MQ migration guide`: from-mq.html .. _`evolution roadmap in the wiki`: https://www.mercurial-scm.org/wiki/CEDRoadMap hg-evolve-11.1.3/docs/known-doc-issues.rst0000666000000000000000000000222514606303052020325 0ustar rootroot00000000000000.. Copyright © 2017 Pierre-Yves David ============================================== Known limitations of the current documentation ============================================== Features not covered by tutorials ================================= Some of the *newer* features of evolution might not be reflected in the documentation yet. You can directly check the inline documentation of the extension itself for fresher details using `hg help -e evolve`. Known undocumented features are: * `hg prev`, * `hg next`, * `hg next --evolve`, * `hg evolve --rev`, * `hg evolve --list`, * `hg obslog`, * `hg split`, * `hg metaedit`, * `hg touch`, * `hg amend --extract`, * `hg pdiff`, * `hg pstatus`, * `hg amend -i`, * various topic related elements (in particular `hg stack`), Unreferenced Documents ====================== There are documents with content not linked in the flow of the main documentation. Some might be outdated and some are too fresh to be integrated in the main flow yet. .. toctree:: :maxdepth: 1 evolve-faq evolve-good-practice obs-terms tutorials/topic-tutorial tutorials/tutorial hg-evolve-11.1.3/docs/makefile0000666000000000000000000000104414606303052016061 0ustar rootroot00000000000000SPHINXBUILD ?= python3 -m sphinx -b html .PHONY: all all: tutorials/tutorial.rst tutorials/topic-tutorial.rst static/logo-evolve.ico $(SPHINXBUILD) . ../html/ tutorials/tutorial.rst: tutorials/tutorial.t test2rst.py python3 test2rst.py $< tutorials/topic-tutorial.rst: tutorials/topic-tutorial.t test2rst.py python3 test2rst.py $< static/logo-evolve.ico: static/logo-evolve.svg convert -resize 36x36 $< $@ .PHONY: clean clean: rm -rf ../html rm -f static/logo-evolve.ico rm -f tutorials/tutorial.rst rm -f tutorials/topic-tutorial.rst hg-evolve-11.1.3/docs/obs-terms.rst0000666000000000000000000003202514606303052017031 0ustar rootroot00000000000000.. Copyright 2011 Pierre-Yves David .. Logilab SA ----------------------------------- Terminology of the obsolete concept ----------------------------------- Obsolete markers ---------------- The mutable concept is based on **obsolete markers**. Creating an obsolete marker registers a relation between an old obsoleted changeset and its newer version. Old changesets are called **predecessors** while their new versions are called **successors**. A marker always registers a single *predecessor* and: - no *successor*: the *predecessor* is just discarded. - one *successor*: the *predecessor* has been rewritten - multiple *successors*: the *predecessor* were splits in multiple changesets. .. The *predecessors* and *successors* terms can be used on changeset directly: .. :predecessors: of a changeset `A` are changesets used as *predecessors* by .. obsolete marker using changeset `A` as *successors* .. :successors: of a changeset `B` are changesets used as *successors* by .. obsolete marker using changeset `B` as *predecessors* Chaining obsolete markers is allowed to rewrite a changeset that is already a *successor*. This is a kind of *second order version control*. To clarify ambiguous situations one can use **direct predecessors** or **direct successors** to name changesets that are directly related. The set of all *obsolete markers* forms a direct acyclic graph the same way standard *parents*/*children* relation does. In this graph we have: :any predecessors: are transitive predecessors of a changeset: *direct predecessors* and *predecessors* of *predecessors*. :any successors: are transitive successors of a changeset: *direct successors* and *successors* of *successors*) Obsolete markers may refer changesets that are not known locally. So, *direct predecessors* of a changeset may be unknown locally. This is why we usually focus on the **first known predecessors** of the rewritten changeset. The same apply for *successors*. Changeset in *any successors* which are not **obsolete** are called **newest successors**.. .. note:: I'm not very happy with this naming scheme and I'm looking for a better distinction between *direct successors* and **any successors**. Possible changesets "type" -------------------------- The following table describes names and behaviors of changesets affected by obsolete markers. The left column describes generic categories and the right columns are about sub-categories. +---------------------+--------------------------+-----------------------------+ | **mutable** | **obsolete** | **extinct** | | | | | | Changeset in either | Obsolete changeset is | *extinct* changeset is | | *draft* or *secret* | *mutable* used as a | *obsolete* which has only | | phase. | *predecessor*. | *obsolete* descendants. | | | | | | | A changeset is used as | They can safely be: | | | a *predecessor* when at | | | | least one obsolete | - hidden in the UI, | | | marker refers to it | - silently excluded from | | | as predecessors. | pull and push operations | | | | - mostly ignored | | | | - garbage collected | | | | | | | +-----------------------------+ | | | | | | | **suspended** | | | | | | | | *suspended* changeset is | | | | *obsolete* with at least | | | | one non-obsolete descendant | | | | | | | | Those descendants prevent | | | | properties of extinct | | | | changesets to apply. But | | | | they will refuse to be | | | | pushed without --force. | | | | | | +--------------------------+-----------------------------+ | | | | | | **unstable** | **orphan** | | | | | | | *unstable* has | *orphan* is a changeset | | | unresolved issue caused | with obsolete ancestors. | | | by *obsolete* relations. | | | | | | | | Possible issues are | It must be rebased on a | | | listed in the next | non *unstable* base to | | | column. It is possible | solve the problem. | | | for *unstable* | | | | changeset to combine | (possible alternative name: | | | multiple issue at once. | precarious) | | | (a.k.a. content-divergent| | | | and orphan) +-----------------------------+ | | | | | | (possible alternative | **phase-divergent** | | | names: unsettled, | | | | troublesome | *phase-divergent* is a | | | | changeset that tries to be | | | | successor of a public | | | | changeset. | | | | | | | | Public changeset can't | | | | be deleted and replace | | | | *phase-divergent* | | | | need to be converted into | | | | an overlay to this public | | | | changeset. | | | | | | | | (possible alternative names:| | | | mislead, naive, unaware, | | | | mindless, disenchanting) | | | | | | | +-----------------------------+ | | | **content-divergent** | | | | | | | | *content-divergent* is a | | | | changeset that appears when | | | | multiple changesets are | | | | successors of the same | | | | predecessor. | | | | | | | | *content-divergent* are | | | | solved through a three way | | | | merge between the two | | | | *content-divergent* , | | | | using the last "obsolete- | | | | -common-ancestor" as the | | | | base. | | | | | | | | (*splitting* is | | | | properly not detected as a | | | | conflict) | | | | | | | | (possible alternative names:| | | | clashing, rival, concurrent,| | | | conflicting) | | | | | | +--------------------------+-----------------------------+ | | | | | Mutable changesets which are neither *obsolete* or | | | *unstable* are *"ok"*. | | | | | | Do we really need a name for it ? *"ok"* is a pretty | | | crappy name :-/ other possibilities are: | | | | | | - stable (confusing with stable branch) | | | - sane | | | - healthy | | | | +---------------------+--------------------------------------------------------+ | | | **immutable** | | | | Changesets in the *public* phases. | | | | Rewriting operation refuse to work on immutable changeset. | | | | Obsolete markers that refer an immutable changeset as predecessors have | | no effect on the predecessors but may have effect on the successors. | | | | When a *mutable* changeset becomes *immutable* (changing its phase from draft| | to public) it is just *immutable* and loose any property of it's former | | state. | | | | The phase properties says that public changesets stay as *immutable* forever.| | | +------------------------------------------------------------------------------+ Command and operation name -------------------------- Existing terms `````````````` Mercurial core already uses the following terms: :amend: to rewrite a changeset :graft: to copy a changeset :rebase: to move a changeset Uncommit ```````` Remove files from a commit (and leave them as dirty in the working directory) The *evolve* extension have an `uncommit` command that aims to replace most `rollback` usage. Fold ```` Collapse multiple changesets into a unique one. The *evolve* extension will have a `fold` command. Prune ````` Make a changeset obsolete without successors. This an important operation as it should mostly replace *strip*. Alternative names: - kill: shall has funny effects when you forget "hg" in front of ``hg kill``. - obsolete: too vague, too long and too generic. evolve `````` Automatically resolve *troublesome* changesets (*orphan*, *phase-divergent* and *content-divergent*) This is an important name as hg pull/push will suggest it the same way it suggest merging when you add heads. Alternative names: - solve (too generic ?) - stabilize hg-evolve-11.1.3/docs/sharing.rst0000666000000000000000000007041214606303052016553 0ustar rootroot00000000000000.. Copyright © 2014 Greg Ward ------------------------------ Evolve: Shared Mutable History ------------------------------ .. contents:: Once you have mastered the art of mutable history in a single repository (see the `user guide`_), you can move up to the next level: *shared* mutable history. ``evolve`` lets you push and pull draft changesets between repositories along with their obsolescence markers. This opens up a number of interesting possibilities. .. _`user guide`: user-guide.html The simplest scenario is a single developer working across two computers. Say you're working on code that must be tested on a remote test server, probably in a rack somewhere, only accessible by SSH, and running an “enterprise-grade†(out-of-date) OS. But you probably prefer to write code locally: everything is setup the way you like it, and you can use your preferred editor, IDE, merge/diff tools, etc. Traditionally, your options are limited: either * (ab)use your source control system by committing half-working code in order to get it onto the remote test server, or * go behind source control's back by using ``rsync`` (or similar) to transfer your code back-and-forth until it is ready to commit The former is less bad with distributed version control systems like Mercurial, but it's still far from ideal. (One important version control “best practice†is that every commit should make things just a little bit better, i.e. you should never commit code that is worse than what came before.) The latter, avoiding version control entirely, means that you're walking a tightrope without a safety net. One accidental ``rsync`` in the wrong direction could destroy hours of work. Using Mercurial with ``evolve`` to share mutable history solves these problems. As with single-repository ``evolve``, you can commit whenever the code is demonstrably better, even if all the tests aren't passing yet—just ``hg amend`` when they are. And you can transfer those half-baked changesets between repositories to try things out on your test server before anything is carved in stone. A less common scenario is multiple developers sharing mutable history, typically for code review. We'll cover this scenario later. First, we will cover single-user sharing. Sharing with a single developer ------------------------------- Publishing and non-publishing repositories ========================================== The key to shared mutable history is to keep your changesets in *draft* phase as you pass them around. Recall that by default, ``hg push`` promotes changesets from *draft* to *public*, and public changesets are immutable. You can change this behaviour by reconfiguring the *remote* repository so that it is non-publishing. (Short version: set ``phases.publish`` to ``false``. Long version follows.) Setting up ========== We'll work through an example with three local repositories, although in the real world they'd most likely be on three different computers. First, the ``public`` repository is where tested, polished changesets live, and it is where you synchronize with the rest of your team. :: $ hg init public We'll need two clones where work gets done, ``test-repo`` and ``dev-repo``:: $ hg clone public test-repo updating to branch default 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg clone test-repo dev-repo updating to branch default 0 files updated, 0 files merged, 0 files removed, 0 files unresolved ``dev-repo`` is your local machine, with GUI merge tools and IDEs and everything configured just the way you like it. ``test-repo`` is the test server in a rack somewhere behind SSH. So for the most part, we'll develop in ``dev-repo``, push to ``test-repo``, test and polish there, and push to ``public``. The key to shared mutable history is to make the target repository, in this case ``test-repo``, non-publishing. And, of course, we have to enable the ``evolve`` extension in both ``test-repo`` and ``dev-repo``. First, edit the configuration for ``test-repo``:: $ hg -R test-repo config --edit --local and add :: [phases] publish = false [extensions] evolve = Then edit the configuration for ``dev-repo``:: $ hg -R dev-repo config --edit --local and add :: [extensions] evolve = Keep in mind that in real life, these repositories would probably be on separate computers, so you'd have to login to each one to configure each repository. To start things off, let's make one public, immutable changeset:: $ cd test-repo $ echo 'my new project' > file1 $ hg add file1 $ hg commit -m 'create new project' $ hg push [...] added 1 changesets with 1 changes to 1 files and pull that into the development repository:: $ cd ../dev-repo $ hg pull -u [...] added 1 changesets with 1 changes to 1 files 1 files updated, 0 files merged, 0 files removed, 0 files unresolved Example 1: Amend a shared changeset =================================== Everything you learned in the `user guide`_ applies to work done in ``dev-repo``. You can commit, amend, uncommit, evolve, and so forth just as before. .. _`user guide`: user-guide.html Things get different when you push changesets to ``test-repo``. Or rather, things stay the same, which *is* different: because we configured ``test-repo`` to be non-publishing, draft changesets stay draft when we push them to ``test-repo``. Importantly, they're also draft (mutable) in ``test-repo``. Let's commit a preliminary change and push it to ``test-repo`` for testing. :: $ echo 'fix fix fix' > file1 $ hg commit -m 'prelim change' $ hg push ../test-repo At this point, ``dev-repo`` and ``test-repo`` have the same changesets in the same phases: .. figure:: figures/figure-sg01-ab.svg Figure 1 a: ``dev-repo`` has rev 0:0dc9 public, rev 1:f649 draft .. figure:: figures/figure-sg01-ab.svg Figure 1 b: the same exact picture in ``test-repo`` (You may notice a change in notation from the user guide: now changesets are labelled with their revision number and the first four digits of the 40-digit hexadecimal changeset ID. Mercurial revision numbers are not consistent when working across repositories, especially when obsolescence is involved. We'll see why shortly.) Now let's switch to ``test-repo`` to test our change:: $ cd ../test-repo $ hg update Don't forget to ``hg update``! Pushing only adds changesets to a remote repository; it does not update the working directory (unless you have a hook that updates for you). Now let's imagine the tests failed because we didn't use proper punctuation and capitalization (oops). Let's amend our preliminary fix (and fix the lame commit message while we're at it):: $ echo 'Fix fix fix' > file1 $ hg amend -m 'fix bug 37' For the sake of illustrating how obsolete changesets are not exchanged, let's amend again:: $ echo 'Fix fix fix.' > file1 $ hg amend -m 'fix bug 37' Note: some time ago, evolve used to create temporary amend commits. Here, amending twice in a row is reminiscent of that behaviour that you may have seen in older tutorials. Now we're in a funny intermediate state (figure 2): revision 1:f649 is obsolete in ``test-repo``, having been replaced by revision 2:96d8 and then by 3:522d—but ``dev-repo`` knows nothing of these recent developments. .. figure:: figures/figure-sg01-ab.svg Figure 2 a: ``dev-repo`` same as in Figure 01 a .. figure:: figures/figure-sg02-b.svg Figure 2 b: ``test-repo`` has rev 0:0dc9 public, revs 1:f649 and 2:96d8 obsolete, rev 3:522d draft Let's resynchronize:: $ cd ../dev-repo $ hg pull -u [...] added 1 changesets with 1 changes to 1 files (+1 heads) 2 new obsolescence markers obsoleted 1 changesets new changesets 522d503432a2 (1 drafts) 1 files updated, 0 files merged, 0 files removed, 0 files unresolved updated to "522d503432a2: fix bug 37" 1 other heads for branch "default" As seen in figure 3, this transfers the new changeset *and* the obsolescence marker for revision 1. However, it does *not* transfer 2:96d8, because it is hidden. Push and pull transfer obsolescence markers between repositories, but they do not transfer hidden changesets. .. figure:: figures/figure-sg03.svg Figure 3: ``dev-repo`` receives rev 2:522d, 1:f649 is now obsolete like in ``test-repo`` Because of this deliberately incomplete synchronization, revision numbers in ``test-repo`` and ``dev-repo`` are no longer consistent. We *must* use changeset IDs. Example 2: Amend again, locally =============================== This process can repeat. Perhaps you figure out a more elegant fix to the bug, and want to mutate history so nobody ever knows you had a less-than-perfect idea. We'll implement it locally in ``dev-repo`` and push to ``test-repo``:: $ echo 'Fix, fix, and fix' > file1 $ hg amend $ echo 'Fix, fix, and fix.' > file1 $ hg amend $ hg push This time around, the first amend commit stays in ``dev-repo``, and it is not transferred to ``test-repo``—the same as before, just in the opposite direction. Figure 4 shows the two repositories after amending in ``dev-repo`` and pushing to ``test-repo``. .. figure:: figures/figure-sg04-a.svg Figure 4 a: in ``dev-repo`` the extra amend commit is 3:e42b .. figure:: figures/figure-sg04-b.svg Figure 4 b: and in ``test-repo`` it is 2:96d8 Let's hop over to ``test-repo`` to test the more elegant fix:: $ cd ../test-repo $ hg update 1 files updated, 0 files merged, 0 files removed, 0 files unresolved This time, all the tests pass, so no further amending is required. This bug fix is finished, so we push it to the public repository:: $ hg push [...] added 1 changesets with 1 changes to 1 files 4 new obsolescence markers Note that only one changeset—the final version, after all the amendments—was actually pushed. Again, Mercurial doesn't transfer hidden changesets on push and pull. .. _`concept guide`: concepts.html So the picture in ``public`` is much simpler than in either ``dev-repo`` or ``test-repo``. Neither of our missteps nor our amendments are publicly visible, just the final, beautifully polished changeset: .. figure:: figures/figure-sg05.svg Figure 5: in ``public`` repo with revs 0:0dc9 and 1:7b49, both public There is one important step left to do. Because we pushed from ``test-repo`` to ``public``, the pushed changeset is in *public* phase in those two repositories. But ``dev-repo`` has been out-of-the-loop; changeset 7b49 is still *draft* there. If we're not careful, we might mutate history in ``dev-repo``, obsoleting a changeset that is already public. Let's avoid that situation for now by pushing up to ``dev-repo``:: $ hg push ../dev-repo pushing to ../dev-repo searching for changes no changes found Even though no *changesets* were pushed, Mercurial still pushed obsolescence markers and phase changes to ``dev-repo``. A final note: since this fix is now *public*, it is immutable. It's no longer possible to amend it:: $ hg amend -m 'fix bug 37' abort: cannot amend public changesets This is, after all, the whole point of Mercurial's phases: to prevent rewriting history that has already been published. Sharing with multiple developers: code review --------------------------------------------- Now that you know how to share your own mutable history across multiple computers, you might be wondering if it makes sense to share mutable history with others. It does, but you have to be careful, stay alert, and *communicate* with your peers. Code review is a good use case for sharing mutable history across multiple developers: Alice commits a draft changeset, submits it for review, and amends her changeset until her reviewer is satisfied. Meanwhile, Bob is also committing draft changesets for review, amending until his reviewer is satisfied. Once a particular changeset passes review, the respective author (Alice or Bob) pushes it to the public (publishing) repository. Incidentally, the reviewers here can be anyone: maybe Bob and Alice review each other's work; maybe the same third party reviews both; or maybe they pick different experts to review their work on different parts of a large codebase. Similarly, it doesn't matter if reviews are conducted in person, by email, or by carrier pigeon. Code review is outside of the scope of Mercurial, so all we're looking at here is the mechanics of committing, amending, pushing, and pulling. Setting up ========== To demonstrate, let's start with the ``public`` repository as we left it in the last example, with two immutable changesets (figure 5 above). We'll clone a ``review`` repository from it, and then Alice and Bob will both clone from ``review``. :: $ hg clone public review updating to branch default 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg clone review alice updating to branch default 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg clone review bob updating to branch default 1 files updated, 0 files merged, 0 files removed, 0 files unresolved We need to configure Alice's and Bob's working repositories to enable ``evolve``. First, edit Alice's configuration with :: $ hg -R alice config --edit --local and add :: [extensions] evolve = Then edit Bob's repository configuration:: $ hg -R bob config --edit --local and add the same text. Example 3: Alice commits and amends a draft fix =============================================== We'll follow Alice working on a bug fix. We're going to use bookmarks to make it easier to understand multiple branch heads in the ``review`` repository, so Alice starts off by creating a bookmark and committing her first attempt at a fix:: $ hg bookmark bug15 $ echo 'fix' > file2 $ hg commit -A -u alice -m 'fix bug 15 (v1)' adding file2 Note the unorthodox "(v1)" in the commit message. We're just using that to make this tutorial easier to follow; it's not something we'd recommend in real life. Of course Alice wouldn't commit unless her fix worked to her satisfaction, so it must be time to solicit a code review. She does this by pushing to the ``review`` repository:: $ hg push -B bug15 [...] added 1 changesets with 1 changes to 1 files exporting bookmark bug15 (The use of ``-B`` is important to ensure that we only push the bookmarked head, and that the bookmark itself is pushed. See this `guide to bookmarks`_, especially the `Sharing Bookmarks`_ section, if you're not familiar with bookmarks.) .. _`guide to bookmarks`: http://mercurial.aragost.com/kick-start/en/bookmarks/ .. _`Sharing Bookmarks`: http://mercurial.aragost.com/kick-start/en/bookmarks/#sharing-bookmarks Some time passes, and Alice receives her code review. As a result, Alice revises her fix and submits it for a second review:: $ echo 'Fix.' > file2 $ hg amend -m 'fix bug 15 (v2)' $ hg push [...] added 1 changesets with 1 changes to 1 files (+1 heads) 1 new obsolescence markers obsoleted 1 changesets updating bookmark bug15 Figure 6 shows the state of the ``review`` repository at this point. .. figure:: figures/figure-sg06.svg Figure 6: rev 2:4e96 is Alice's obsolete v1, rev 3:3363 is her v2; both children of rev 1:7b49 After a busy morning of bug fixing, Alice stops for lunch. Let's see what Bob has been up to. Example 4: Bob implements and publishes a new feature ===================================================== Meanwhile, Bob has been working on a new feature. Like Alice, he'll use a bookmark to track his work, and he'll push that bookmark to the ``review`` repository, so that reviewers know which changesets to review. :: $ cd ../bob $ echo 'stuff' > file1 $ hg bookmark featureX $ hg commit -u bob -m 'implement feature X (v1)' # rev 4:c7ff $ hg push -B featureX [...] added 1 changesets with 1 changes to 1 files (+1 heads) exporting bookmark featureX When Bob receives his code review, he improves his implementation a bit, amends, and submits the resulting changeset for review:: $ echo 'do stuff' > file1 $ hg amend -m 'implement feature X (v2)' # rev 5:1bb4 $ hg push [...] added 1 changesets with 1 changes to 1 files (+1 heads) 1 new obsolescence markers obsoleted 1 changesets updating bookmark featureX Unfortunately, that still doesn't pass muster. Bob's reviewer insists on proper capitalization and punctuation. :: $ echo 'Do stuff.' > file1 $ hg amend -m 'implement feature X (v3)' # rev 6:9d21 On the bright side, the second review said, "Go ahead and publish once you fix that." So Bob immediately publishes his third attempt:: $ hg push ../public [...] added 1 changesets with 1 changes to 1 files 2 new obsolescence markers It's not enough just to update ``public``, though! Other people also use the ``review`` repository, and right now it doesn't have Bob's latest amendment ("v3", revision 6:9d21), nor does it know that the predecessor of that changeset ("v2", revision 5:1bb4) is obsolete. Thus, Bob pushes to ``review`` as well:: $ hg push ../review [...] added 1 changesets with 1 changes to 1 files (+1 heads) 1 new obsolescence markers obsoleted 1 changesets updating bookmark featureX Figure 7 shows the result of Bob's work in both ``review`` and ``public``. .. figure:: figures/figure-sg07-a.svg Figure 7 a: ``review`` includes Alice's draft work on bug 15, as well as Bob's v1, v2, and v3 changes for feature X: v1 and v2 obsolete, v3 public .. figure:: figures/figure-sg07-b.svg Figure 7 b: ``public`` contains only the final, public implementation of feature X Incidentally, it's important that Bob push to ``public`` *before* ``review``. If he pushed to ``review`` first, then revision 6:540b would still be in *draft* phase in ``review``, but it would be *public* in both Bob's local repository and the ``public`` repository. That could lead to confusion at some point, which is easily avoided by pushing first to ``public``. Example 5: Alice integrates and publishes ========================================= Finally, Alice gets back from lunch and sees that the carrier pigeon with her second review has arrived (or maybe it's in her email inbox). Alice's reviewer approved her amended changeset, so she pushes it to ``public``:: $ hg push ../public [...] remote has heads on branch 'default' that are not known locally: 9d21d673314a abort: push creates new remote head 3363442626b3 with bookmark 'bug15'! (pull and merge or see 'hg help push' for details about pushing new heads) Oops! Bob has won the race to push first to ``public``. So Alice needs to integrate with Bob: let's pull his changeset(s) and see what the branch heads are. :: $ hg pull ../public [...] added 1 changesets with 1 changes to 1 files (+1 heads) (run 'hg heads' to see heads, 'hg merge' to merge) $ hg log -G -q -r 'head()' --template '{rev}:{node|short} ({author})\n' o 4:9d21d673314a (bob) | | @ 3:3363442626b3 (alice) |/ We'll assume Alice and Bob are perfectly comfortable with rebasing changesets. (After all, they're already using mutable history in the form of ``amend``.) So Alice rebases her changeset on top of Bob's and publishes the result:: $ hg rebase -d 4 $ hg push ../public [...] added 1 changesets with 1 changes to 1 files 2 new obsolescence markers $ hg push ../review [...] added 1 changesets with 0 changes to 1 files 1 new obsolescence markers obsoleted 1 changesets updating bookmark bug15 The result, in both ``review`` and ``public`` repositories, is shown in figure 8. .. figure:: figures/figure-sg08-a.svg Figure 8 a: ``review`` shows v1 and v2 of Alice's fix, then v1, v2, v3 of Bob's feature, finally Alice's fix rebased onto Bob's .. figure:: figures/figure-sg08-b.svg Figure 8 b: ``public`` just shows the final public version of each changeset Getting into trouble with shared mutable history ------------------------------------------------ Mercurial with ``evolve`` is a powerful tool, and using powerful tools can have consequences. (You can cut yourself badly with a sharp knife, but every competent chef keeps several around. Ever try to chop onions with a spoon?) In the user guide, we saw examples of *orphan* changesets, which are the most common type of unstable changeset. (Recall that a non-obsolete changeset with obsolete ancestors is an orphan.) Two other types of instability can happen: *content-divergent* and *phase-divergent* changesets. Both are more likely with shared mutable history, especially mutable history shared by multiple developers. Setting up ========== For these examples, we're going to use a slightly different workflow: as before, Alice and Bob share a ``public`` repository. But this time there is no ``review`` repository. Instead, Alice and Bob put on their cowboy hats, throw good practice to the wind, and pull directly from each other's working repositories. So we throw away everything except ``public`` and reclone:: $ rm -rf review alice bob $ hg clone public alice updating to branch default 2 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg clone public bob updating to branch default 2 files updated, 0 files merged, 0 files removed, 0 files unresolved Once again we have to configure their repositories: enable ``evolve`` and (since Alice and Bob will be pulling directly from each other) make their repositories non-publishing. Edit Alice's configuration:: $ hg -R alice config --edit --local and add :: [extensions] rebase = evolve = [phases] publish = false Then edit Bob's repository configuration:: $ hg -R bob config --edit --local and add the same text. Example 6: Content-divergent changesets ======================================= When an obsolete changeset has two successors, those successors are *content-divergent*. One way to get into such a situation is by failing to communicate with your teammates. Let's see how that might happen. First, we'll have Bob commit a bug fix that could still be improved:: $ cd bob $ echo 'pretty good fix' >> file1 $ hg commit -u bob -m 'fix bug 24 (v1)' # rev 4:b2be Since Alice and Bob are now in cowboy mode, Alice pulls Bob's draft changeset and amends it herself. :: $ cd ../alice $ hg pull -u ../bob [...] added 1 changesets with 1 changes to 1 files $ echo 'better fix (alice)' >> file1 $ hg amend -u alice -m 'fix bug 24 (v2 by alice)' But Bob has no idea that Alice just did this. (See how important good communication is?) So he implements a better fix of his own:: $ cd ../bob $ echo 'better fix (bob)' >> file1 $ hg amend -u bob -m 'fix bug 24 (v2 by bob)' # rev 5:541f At this point, the divergence exists, but only in theory: Bob's original changeset, 4:b2be, is obsolete and has two successors. But those successors are in different repositories, so the trouble is not visible to anyone yet. It will be as soon as Bob pulls from Alice's repository (or vice-versa). :: $ hg pull ../alice [...] added 1 changesets with 1 changes to 1 files (+1 heads) 1 new obsolescence markers 2 new content-divergent changesets new changesets e3a586fd2377 (1 drafts) (run 'hg heads' to see heads, 'hg merge' to merge) Figure 9 shows the situation in Bob's repository. .. figure:: figures/figure-sg09.svg Figure 9: Bob's repo with 2 heads for the 2 content-divergent changesets, 5:541f and 6:e3a5; wc is at 5:541f; both are successors of obsolete 4:b2be, hence divergence Now we need to get out of trouble. As usual, the answer is to evolve history. :: $ HGMERGE=internal:other hg evolve merge:[5] fix bug 24 (v2 by bob) with: [6] fix bug 24 (v2 by alice) base: [4] fix bug 24 (v1) 0 files updated, 1 files merged, 0 files removed, 0 files unresolved Figure 10 shows how Bob's repository looks now. .. figure:: figures/figure-sg10.svg Figure 10: only one visible head, 7:aa82, successor to hidden 5:541f and 6:e3a5 We carefully dodged a merge conflict by specifying a merge tool (``internal:other``) that will take Alice's changes over Bob's. (You might wonder why Bob wouldn't prefer his own changes by using ``internal:local``. He's avoiding a `bug`_ in ``evolve`` that occurs when evolving content-divergent changesets using ``internal:local``.) # XXX this link does not work .. _`bug`: https://bitbucket.org/marmoute/mutable-history/issue/48/ ** STOP HERE: WORK IN PROGRESS ** Phase-divergence: when a rewritten changeset is made public =========================================================== If Alice and Bob are collaborating on some mutable changesets, it's possible to get into a situation where an otherwise worthwhile changeset cannot be pushed to the public repository; it is *phase-divergent* with another changeset that was made public first. Let's demonstrate one way this could happen. It starts with Alice committing a bug fix. Right now, we don't yet know if this bug fix is good enough to push to the public repository, but it's good enough for Alice to commit. :: $ cd alice $ echo 'fix' > file2 $ hg commit -A -m 'fix bug 15' adding file2 Now Bob has a bad idea: he decides to pull whatever Alice is working on and tweak her bug fix to his taste:: $ cd ../bob $ hg pull -u ../alice [...] added 1 changesets with 1 changes to 1 files 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ echo 'Fix.' > file2 $ hg amend -A -m 'fix bug 15 (amended)' (Note the lack of communication between Alice and Bob. Failing to communicate with your colleagues is a good way to get into trouble. Nevertheless, ``evolve`` can usually sort things out, as we will see.) [figure SG06: Bob's repo with one amendment] After some testing, Alice realizes her bug fix is just fine as it is: no need for further polishing and amending, this changeset is ready to publish. :: $ cd ../alice $ hg push [...] added 1 changesets with 1 changes to 1 files This introduces a contradiction: in Bob's repository, changeset 2:e011 (his copy of Alice's fix) is obsolete, since Bob amended it. But in Alice's repository (and the ``public`` repository), that changeset is public: it is immutable, carved in stone for all eternity. No changeset can be both obsolete and public, so Bob is in for a surprise the next time he pulls from ``public``:: $ cd ../bob $ hg pull -q -u 1 new phase-divergent changesets Figure 7 shows what just happened to Bob's repository: changeset 2:e011 is now public, so it can't be obsolete. When that changeset was obsolete, it made perfect sense for it to have a successor, namely Bob's amendment of Alice's fix (changeset 4:fe88). But it's illogical for a public changeset to have a successor, so 4:fe88 is unstable: it has become *phase-divergent*. [figure SG07: 2:e011 now public not obsolete, 4:fe88 now phase-divergent] As usual when there's trouble in your repository, the solution is to evolve it:: $ hg evolve Figure 8 illustrates Bob's repository after evolving away the phase-divergent changeset. Ignoring the obsolete changesets, Bob now has a nice, clean, simple history. His amendment of Alice's bug fix lives on, as changeset 5:227d—albeit with a software-generated commit message. (Bob should probably amend that changeset to improve the commit message.) But the important thing is that his repository no longer has any unstable changesets, thanks to ``evolve``. [figure SG08: 5:227d is new, formerly phase-divergent changeset 4:fe88 now hidden] Conclusion ---------- Mutable history is a powerful tool. Like a sharp knife, an experienced user can do wonderful things with it, much more wonderful than with a dull knife (never mind a rusty spoon). At the same time, an inattentive or careless user can do harm to himself or others. Mercurial with ``evolve`` goes to great lengths to limit the harm you can do by trying to handle all possible types of “unstable†changesets. Nevertheless, having a first-aid kit nearby does not mean you should stop being careful with sharp knives. Mutable history shared across multiple repositories by a single developer is a natural extension of this model. Once you are used to using a single sharp knife on its own, it's pretty straightforward to chop onions and mushrooms using the same knife, or to alternate between two chopping boards with different knives. Mutable history shared by multiple developers is a scary place to go. Imagine a professional kitchen full of expert chefs tossing their favourite knives back and forth, with the occasional axe or chainsaw thrown in to spice things up. If you're confident that you *and your colleagues* can do it without losing a limb, go for it. But be sure to practice a lot first before you rely on it! hg-evolve-11.1.3/docs/static/0000755000000000000000000000000014606303054015647 5ustar rootroot00000000000000hg-evolve-11.1.3/docs/static/logo-evolve.svg0000666000000000000000000032166414606303052020644 0ustar rootroot00000000000000 image/svg+xmlCali Mastny and Matt MackallFeb 12 2008 evolve hg-evolve-11.1.3/docs/test2rst.py0000666000000000000000000000332014606303052016524 0ustar rootroot00000000000000#!/usr/bin/env python3 import argparse import os import re ignored_patterns = [ re.compile(r'^#if'), re.compile(r'^#else'), re.compile(r'^#endif'), re.compile(r'#rest-ignore$'), ] def rstify(orig): """Take contents of a .t file and produce reStructuredText""" newlines = [] code_block_mode = False sphinx_directive_mode = False for line in orig.splitlines(): # Empty lines doesn't change output if not line: newlines.append(line) code_block_mode = False sphinx_directive_mode = False continue ignored = False for pattern in ignored_patterns: if pattern.search(line): ignored = True break if ignored: continue # Sphinx directives mode if line.startswith(' .. '): # Insert a empty line to makes sphinx happy newlines.append("") # And unindent the directive line = line[2:] sphinx_directive_mode = True # Code mode codeline = line.startswith(' ') if codeline and not sphinx_directive_mode: if code_block_mode is False: newlines.extend(['::', '']) code_block_mode = True newlines.append(line) return "\n".join(newlines) def main(): ap = argparse.ArgumentParser() ap.add_argument('testfile', help='.t file to transform') opts = ap.parse_args() with open(opts.testfile) as f: content = f.read() rst = rstify(content) target = os.path.splitext(opts.testfile)[0] + '.rst' with open(target, 'w') as f: f.write(rst) if __name__ == '__main__': main() hg-evolve-11.1.3/docs/troubles-handling.rst0000666000000000000000000003327714606303052020551 0ustar rootroot00000000000000########################################################### Possible troubles in rewriting history and their resolution ########################################################### .. Copyright 2020 Sushil Khanchi .. Octobus SAS Rewriting history, and especially rewriting draft history that have been exchanged can lead to "unstable" situation. This document is intended for developer of the changeset evolution concept. It cover through the technical aspects of each "instability" a changeset can get into. It aims at building an exhaustive list of each cases and sub-cases and the status of automatic resolution for these cases. Public changeset are part of the permanent history and are never considered unstable. .. contents:: :depth: 4 ****** Orphan ****** Basics ====== A changeset is orphan when there is at least one obsolete ancestor. As a resolution, we need to find a new appropriate parents for the changeset and rebase the orphan there. If the parents of an orphan changeset are orphan themself, they will have to be "stabilised" fist. Cause of trouble ================ Orphan can appears because the user locally rewrite changeset with descendants. In this case the orphan are created when the command run. They are few real use case for such action and the user interface should focus on discouraging it. Orphan can also happens when the users created new changeset on draft that got rewritten in another repository. The orphan are then "discovered" when the obsolescence information of the ancestors is pulled in the local repository. This is the most common way to create phase divergences. Source of Complexity ==================== There can be different situations we need to take care of when dealing with resolution of an orphan changeset, like: * parents might not be obsolete (yet) and orphan themself. They will need to be resolved first. * obsolete parent has conflicting rewrites (content-divergence), so there might not be an obvious "good spot" to rebase the changeset too. * obsolete parent could have been prune, so it has not direct successors, * obsolete parent was split in multiple changesets. This comes with multiple variants: * successors could be linear of spread across multiple branches, * successors could have been reordered after the initial split, * Some of the successors could have been pruned. * the orphan changeset can be a merge and orphan may come any numbers of parents * rebasing might lead to conflict. Details of Sub cases ==================== .. contents:: :local: O-A: Linear changeset (one parent) ---------------------------------- O-A1: parent has a single successors ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **Stabilisation Strategy** Solution is Clear. Relocate the orphan changeset onto the single successor of obsolete parent. **Current Support Level** Good: current implementation is expected to perform the planned stabilisation. O-A2: parent is pruned (no successors) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Find nearest "not-pruned" ancestor and treat it (or its successor, if apply) as a resolution parent. (re-run Orphan resolution starting from these parent). In some cases, there can be multiple "not-pruned" ancestor and it could be ambiguous for us to decide which one to pick. O-A2.1: set of "not-pruned" ancestor has single head """""""""""""""""""""""""""""""""""""""""""""""""""" **Stabilisation Strategy** This comes under `O-A3` and `O-A4` cases (since we re-run orphan resolution assuming "not-pruned" ancestor as parent) **Current Support Level** Good: current implementation is expected to perform the planned stabilisation. O-A2.2: set of "not-pruned" ancestor has multiple heads """"""""""""""""""""""""""""""""""""""""""""""""""""""" If a merge is pruned, we have multiple "not-pruned" ancestor for its immediate child to stabilise. **Stabilisation Strategy** XXX: yet to decide resolution **Current Support Level** O-A3: parent has multiple successors sets (divergence case) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **Stabilisation Strategy** XXX: yet to decide resolution **Current Support Level** O-A4: parent is split into multiple successors ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ O-A4.1: successors of parent are all on the same topological branch """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" **Stabilisation Strategy** Pick highest one as resolution parent. **Current Support Level** Good: current implementation is expected to perform the planned stabilisation. O-A4.2: parent is split into multiple topological branches (at least 2 heads) """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" In this case, the destination can be ambiguous. **Stabilisation Strategy** prompt user to choose one. (could we do better in some case?) **Current Support Level** Current implementation is expected to perform the planned stabilisation. O-M: Parent are Merge (multiple parent) --------------------------------------- O-M1: Only one parent is obsolete ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ XXX Simple case are probably as good as any `O-A` case. However special case are probably ignored right now (e.g: successors of the obsolete parent is linear with the other parent). O-M2: both parent are obsolete ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ XXX currently we evolve one after the other. **************** Phase-Divergence **************** Basics ====== It appears when a rewritten changeset got published. A phase-divergent changeset has a public predecessor. Solving phase divergence is done by extracting the changes made between the public predecessors and the latest evolution of the changesets into a new changesets, descendants of the public predecessors. Cause of trouble ================ It can appear if a user locally change the phase of an obsolete changeset (which has successors) to public. Phase-divergence can also happens when the users rewrite draft changeset that got published in another repository. The phase divergence then "discovered" when the publishing information of the predecessors is pulled in the local repository. Source of Complexity ==================== * public version is a merge * phase-divergent changeset is a merge * public version was split (linear, over multiple topo branches, etc…) * phase-divergent version was folded with others * rebasing might lead to conflict. Details of Sub cases ==================== .. contents:: :local: #TODO: yet to document ****************** Content-Divergence ****************** Basics ====== Independent rewrites of same changeset leads to content-divergence. So an obsolete changeset have multiple "sets" of successors. And the content-divergent changeset have some predecessors in common without the situation being the result of a split. To stabilise the situation, we need to "merge" the changes introduced in each side of the divergence and create a new changeset, that will supersede both of the unstable one. The merged information can be both about file content and metadata (author, parent, etc). In practice there are a lot of corner case where this is "not that simple". Cause of trouble ================ It can appear locally if a user independently rewrite the same changeset multiple times. Content-divergence can also happens when the users rewrite draft changesets that got rewritten in another repository as well. The content divergence then "revealed" when the rewriting information is shared (pulled/pushed) with another repository. Source of Complexity ==================== Before we perform a 3-way merge between the divergent changesets and common predecessor (which acts as the 3-way merge base), there are some situations we need to take care of, like: * if divergent changesets moved, check which side moved in which direction, and proceed accordingly * they moved on different unrelated branches * divergent changeset can be orphan as well * one side of divergence is in public phase * divergent changeset is part of a split or fold Details of resolution ===================== Resolution of content-divergence can be understand by dividing it in stages: Special case: If one of the divergent changeset is part of a split or fold, we don't handle it right now. But when we are going to support it, it will probably have its own logic and seperate from generic resolution. Generic resolution: The first stage of solving content-divergence is to find the changeset where the resolution changeset will be based on (which we call the resolution parent or the target parent) and relocate the divergent changesets on the resolution parent, if apply. In second stage, we deal with merging files of two divergent changesets using the 3-way merge. In third stage, we deal with merging the metadata changes and creating the resultant changeset. Details of Sub cases ==================== .. contents:: :local: D-S: One of the divergent changeset is part of a split or fold -------------------------------------------------------------- XXX: yet to decide resolution D-A: Finding the resolution parent ---------------------------------- This section is responsible to decide where the resultant changeset should live. If it's unable to find the resolution parent, we abort the content-divergence resolution. Following are the possible situations between the two divergent changesets and current support for each situation. D-A1: one of the divergent changeset is public ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Set the parent of public changeset as resolution parent. Note: After we resolve content-divergence in this case, the resultant changeset will be phase-divergent with the public side; so then we resolve phase-divergence to completely resolve the instability. D-A2: both are on the same parent ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Set the parent (or its successor, if apply) as resolution parent. D-A3: both are on different parents ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ D-A3.1: one side moved """""""""""""""""""""" Set the parent of moved changeset as resolution parent. Special-case: When parent of moved one is obsolete with a successor ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' By default, evolution will set the successor of obsolete parent as resolution parent and will relocate both the divergent cset on it to perform 3-way merge. But if the following config is set to True, it will set the obsolete parent as resolution parent, so now resolved cset will be orphan, as it will be based on the obsolete parent. Some users might not like the evolve to automatically resovle this orphan instability as well (while they only wanted to resolve the divergence), which is why we are providing this config. `experimental.evolution.divergence-resolution-minimal=False(default)` (The default resolution that automatically evolve the orphan instability as well seems the best approach for now, but let's also gather user feedback, then we can decide accordingly) D-A3.2: both moved forward; same branch """"""""""""""""""""""""""""""""""""""" Set the parent of ahead one as resolution parent. As most obvious is that, ahead one has the latest changes. D-A3.3: both moved backward; same branch """""""""""""""""""""""""""""""""""""""" XXX: yet to decide resolution D-A3.4: both moved opposite; same branch """""""""""""""""""""""""""""""""""""""" XXX: yet to decide resolution D-A3.5: both moved; one moved on different unrelated branch """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" XXX: yet to decide resolution D-A3.6: both moved on two different unrelated branch """""""""""""""""""""""""""""""""""""""""""""""""""" XXX: yet to decide resolution D-B: Merging files of divergent changesets ------------------------------------------ While merging the files, there are few sub-cases that could arise like file content conflict, rename information conflict, multiple newest predecessor. Let's see them in detail. D-B1: File content conflict ^^^^^^^^^^^^^^^^^^^^^^^^^^^ If there is a conflict in merging content of files we let the user to resolve the conflict. D-B2: Rename information conflict ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ XXX: yet to explore D-B3: Multiple newest predecessor ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ XXX: yet to explore D-C: Merging metadata changes and create resultant changeset ------------------------------------------------------------ While merging the metadata, there are few sub-cases that could arise like branch name conflict, commit message conflict, commit author conflict. If everything goes fine, we create the resultant changeset as a resolution of content-divergence. D-C1: Branch name conflict ^^^^^^^^^^^^^^^^^^^^^^^^^^ **Stabilisation Strategy** Merge branch names using the 3-way merge. If unable to merge, we prompt the user to select a branch. Possible improvement: If we are solving a long streak of divergence, each side having the same branch, we can probably infer the correct resolution from previous resolution. **Current Support Level** Good: current implementation is expected to perform the planned stabilisation. D-C2: Commit description conflict ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **Stabilisation Strategy** Merge commit description using text merge tool from user. Possible improvement: They are currently no way to "interrupt" and resume that conflict resolution. Having some way to do that would be nice. **Current Support Level** Good: current implementation is expected to perform the planned stabilisation. D-C3: Commit author conflict ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **Stabilisation Strategy** Merge authors using 3-way merge. If unable to merge we concatenate the two, separated by comma. (for e.g. "John Doe, Malcolm X") **Current Support Level** Good: current implementation is expected to perform the planned stabilisation. hg-evolve-11.1.3/docs/tutorial/0000755000000000000000000000000014606303054016223 5ustar rootroot00000000000000hg-evolve-11.1.3/docs/tutorial/README.rst0000666000000000000000000000325214606303052017716 0ustar rootroot00000000000000============================= Training supports ============================= Contributing ============ The main source for the supports is the `slides.md` but it doesn't contains all the source. The `slides.md` file contains several snippets that are replaced by other files at compilation time. For example: .. code:: markdown ~~~raw-file output/fix-a-bug-base.log ~~~ Will replace this three lines by the content of the file `output/fix-a-bug- base.log` which is generated when running the .t test file (see below for instruction how to do that). .. code:: markdown ~~~graphviz-file graphs/fix-bug-1.dot ~~~ Will replace this three lines by the svg rendering of the graphviz definition in the file `graphs/fix-bug-1.dot`. This file is generated when running the .t test file (see below for instruction how to do that). Environment preparation ======================= This training supports needs pandoc to compile. You'll need a copy of the Mercurial source in order to generate the training supports. You will also needs a functioning Python environment with the possibility to use `pip install` with your current user. In doubt, you can use a `virtualenv `. You can then run the `prepare.sh` script that will configure the environment for you. Generating the supports ======================= First, you need to run a .t test file to generate a bunch of files. You can run the test file with this command: `python /PATH/TO/MERCURIAL/tests/run-tests.py -l test-training.t` It should have generated files in at least two directories: `graphs` and `output`. Finally, launch the `compile.sh` to generate the `index.html` output file. hg-evolve-11.1.3/docs/tutorial/compile.sh0000777000000000000000000000052214606303052020213 0ustar rootroot00000000000000#!/bin/bash set -eox pipefail function compile { pandoc \ -s $1 \ -o $2 \ --toc --toc-depth=4 \ -F pandocfilters/examples/graphviz.py -F mypandocfilters/graphviz-file.py -F mypandocfilters/raw-file.py \ -t html5 \ --template standalone.html --variable=template_css:uikit.css } compile slides.md index.html hg-evolve-11.1.3/docs/tutorial/deploy.sh0000777000000000000000000000017514606303052020063 0ustar rootroot00000000000000mkdir -p html cp index.html html/ cp *.css html/ cp *.js html/ cp -R img html/ cp -R graphviz-images/ html/ netlify deploy hg-evolve-11.1.3/docs/tutorial/draft.md0000666000000000000000000010162514606303052017654 0ustar rootroot00000000000000--- author: Boris Feld title: Changeset evolution date: June 23, 2017 --- # Why Evolve is the future? (TO CHANGE) Use hexagon or drop all of themes Use old names Replace hg amend by commit --amend Flow Basic - Feature - Tool / instability - command semantic Basic (local amend + local rebase) Stabilization -> Evolution Feature # Local amend ## Amending commits We all makes mistake: ~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF"]; // Revisions node[group=main]; Parent -> "Fx bug[case"; } ~~~ ## Some times pass ## Urgent Amend needed But it's easy to fix the fix: ~~~ {.sh} hg commit --amend -m "Fix bug" ~~~ ~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF"]; // Revisions node[group=main]; Parent -> "Fix bug"; } ~~~ ## So easy to do something wrong But wait you had local changes! And they get incorporated into the amend. ## Too bad It's too late, they are gone! ## HARD UNbundle, get the rev, strip ## Never without Evolve! ## Let's try again! ~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF"]; // Revisions node[group=main]; Parent -> "Fx bug"; } ~~~ ## Evolve powa With evolve this time: ~~~ {.sh} hg commit --amend -m "Fix bug" ~~~ ~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF"]; // Revisions node[group=main]; Parent -> "Fix bug"; } ~~~ ## Ok what the difference?
$> hg log -G
@  changeset:   3:467de638a224
|  tag:         tip
|  parent:      0:852811e0e2a8
|  user:        Boris Feld <boris.feld@octobus.net>
|  date:        Wed Jun 21 14:15:55 2017 +0200
|  summary:     Fix bug
|
o  changeset:   0:852811e0e2a8
   user:        Boris Feld <boris.feld@octobus.net>
   date:        Wed Jun 21 14:15:55 2017 +0200
   summary:     Root

## The difference
$> hg log -G --hidden
@  changeset:   3:467de638a224
|  tag:         tip
|  parent:      0:852811e0e2a8
|  user:        Boris Feld <boris.feld@octobus.net>
|  date:        Wed Jun 21 14:15:55 2017 +0200
|  summary:     Fix bug
|
| x  changeset:   2:614cb09cc83d
| |  user:        Boris Feld <boris.feld@octobus.net>
| |  date:        Wed Jun 21 14:15:55 2017 +0200
| |  summary:     temporary amend commit for e46245132d3d
| |
| x  changeset:   1:e46245132d3d
|/   user:        Boris Feld <boris.feld@octobus.net>
|    date:        Wed Jun 21 14:15:55 2017 +0200
|    summary:     Fx bug
|
o  changeset:   0:852811e0e2a8
   user:        Boris Feld <boris.feld@octobus.net>
   date:        Wed Jun 21 14:15:55 2017 +0200
   summary:     Root

## Perf impact No strip == no cache bust, == faster # Local rebase ## You are working on your branch ~~~graphviz digraph G { rankdir="LR"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF"]; // Revisions node[group=feature]; Parent -> "Feature"; } ~~~ ## More work ~~~graphviz digraph G { rankdir="LR"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF"]; // Revisions node[group=feature]; Parent -> "Feature" -> "Feature 2"; } ~~~ ## Pull ~~~graphviz digraph G { rankdir="LR"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF"]; // Revisions node[group=main]; Parent -> "Trunk" -> "Trunk 2"; node[group=feature]; Parent -> "Feature" -> "Feature 2"; } ~~~ ## Time to rebase ~~~graphviz digraph G { rankdir="LR"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF"]; // Revisions node[group=main]; Parent -> "Trunk" -> "Trunk 2"; node[group=feature]; "Trunk 2" -> "Feature" -> "Feature 2"; } ~~~ ## Without evolve
@  changeset:   6:105f743d81c8
|  tag:         tip
|  user:        Boris Feld <boris.feld@octobus.net>
|  date:        Wed Jun 21 14:47:48 2017 +0200
|  summary:     Feature2
|
o  changeset:   5:3966a515e569
|  user:        Boris Feld <boris.feld@octobus.net>
|  date:        Wed Jun 21 14:47:48 2017 +0200
|  summary:     Feature
|
o  changeset:   4:bd3d94325819
|  user:        Boris Feld <boris.feld@octobus.net>
|  date:        Wed Jun 21 14:47:49 2017 +0200
|  summary:     Trunk2
|
o  changeset:   3:120d3e4ce8b7
|  user:        Boris Feld <boris.feld@octobus.net>
|  date:        Wed Jun 21 14:47:49 2017 +0200
|  summary:     Trunk
|
o  changeset:   2:36db121866a2
|  user:        Boris Feld <boris.feld@octobus.net>
~  date:        Wed Jun 21 14:47:48 2017 +0200
   summary:     Parent

## With evolve
@  changeset:   10:2c1a992b87c3
|  tag:         tip
|  user:        Boris Feld <boris.feld@octobus.net>
|  date:        Wed Jun 21 14:50:39 2017 +0200
|  summary:     Feature2
|
o  changeset:   9:751113c206d0
|  user:        Boris Feld <boris.feld@octobus.net>
|  date:        Wed Jun 21 14:50:39 2017 +0200
|  summary:     Feature
|
o  changeset:   8:9f9f3db01630
|  user:        Boris Feld <boris.feld@octobus.net>
|  date:        Wed Jun 21 14:50:39 2017 +0200
|  summary:     Trunk2
|
o  changeset:   7:a5e9a3060e20
|  parent:      4:32253567b531
|  user:        Boris Feld <boris.feld@octobus.net>
|  date:        Wed Jun 21 14:50:39 2017 +0200
|  summary:     Trunk
|
| x  changeset:   6:a57f1852d740
| |  branch:      feature
| |  user:        Boris Feld <boris.feld@octobus.net>
| |  date:        Wed Jun 21 14:50:39 2017 +0200
| |  summary:     Feature2
| |
| x  changeset:   5:896dc0771e5e
|/   branch:      feature
|    user:        Boris Feld <boris.feld@octobus.net>
|    date:        Wed Jun 21 14:50:39 2017 +0200
|    summary:     Feature
|
o  changeset:   4:32253567b531
|  user:        Boris Feld <boris.feld@octobus.net>
~  date:        Wed Jun 21 14:50:39 2017 +0200
   summary:     Parent

# How does it works? ## It's smart ## Does Evolve only stores more changesets? (CHANGE) ## Not only Remember our amend?
~~~graphviz digraph G { rankdir="BT"; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF"]; // Revisions node[group=main]; Parent -> "Fx bug"; } ~~~
~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF"]; // Revisions node[group=main]; Parent -> "Fix bug"; } ~~~
## More revisions
~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF"]; // Revisions node[group=main]; Parent -> "Fx bug"; } ~~~
~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF"]; // Revisions node[group=main]; Parent -> "Fix bug"; node[group=obsolete]; Parent -> "Fx bug"; } ~~~
## But hidden
~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF"]; // Revisions node[group=main]; Parent -> "Fx bug"; } ~~~
~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF"]; // Revisions node[group=main]; Parent -> "Fix bug"; node[group=obsolete, style="dotted, filled", fillcolor="#DFDFFF"]; Parent -> "Fx bug"; } ~~~
## Here is the smartness (change word)! ~~~graphviz digraph G { rankdir="BT"; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF"]; // Revisions node[group=main]; Parent -> "Fix bug"; node[group=obsolete, style="dotted, filled", fillcolor="#DFDFFF"]; Parent -> "Fx bug"; // Obsolescence links edge[dir=back, style=dotted, arrowtail=dot]; "Fx bug" -> "Fix bug"; } ~~~ ## Obs markers Obs markers stores the relation between a changeset and its evolutions. XXX: Speak about META ~~~graphviz digraph G { rankdir="BT"; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF"]; node[group=obsolete, style="dotted, filled" fillcolor="#DFDFFF"]; edge[dir=back, style=dotted, arrowtail=dot]; "Predecessor" -> "Successor"; "Successor" [style="filled", fillcolor="#7F7FFF"]; } ~~~ # Phases ## 3 phases Changesets can be in one of three phases: * Public * Draft * Secrets ## Public The public phase holds changesets that have been exchanged publicly. Changesets in the public phase are expected to remain in your repository history and are said to be immutable. ## Drafts The draft phase holds changesets that are not yet considered a part of the repository's permanent history. You can safely rewrite them. New commits are in the draft phase by default. ## Secrets (hide) The secret phase holds changesets that you do not want to exchange with other repositories. Secret changesets are hidden from remote peers and will not be included in push operations. Manual operations or extensions may move a changeset into the secret phase. ## Representation ~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF"]; // Revisions node[group=main]; Public -> Draft -> Secret; Draft [shape="pentagon"]; Secret [shape="square"]; } ~~~ # Instability (add sub-titles, obsolete -> orphan, etc...) ## Obsolete ~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, style="filled", width=1, height=1, fillcolor="#7F7FFF", shape="pentagon"]; node[group=main]; Root -> New; node[group=obsolete]; Root -> Obsolete; // Obsolescence links edge[dir=back, style=dotted, arrowtail=dot]; Obsolete -> New; Obsolete [fillcolor="#DFDFFF"]; Root[shape="circle"]; } ~~~ ## Orphan ~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, style="filled", width=1, height=1, fillcolor="#7F7FFF", shape="pentagon"]; node[group=main]; Root -> New; node[group=obsolete]; Root -> Obsolete -> Orphan; // Obsolescence links edge[dir=back, style=dotted, arrowtail=dot]; Obsolete -> New; Obsolete [fillcolor="#DFDFFF"]; Orphan [fillcolor="#FF3535"]; Root[shape="circle"]; } ~~~ ## Phase-divergent ## Content-divergent ~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, style="filled", width=1, height=1, fillcolor="#7F7FFF", shape="pentagon"]; Root -> Base; Root -> Content-divergent1; Root -> Content-divergent2; // Obsolescence links edge[dir=back, style=dotted, arrowtail=dot]; Base -> Content-divergent1; Base -> Content-divergent2; Base [shape="pentagon", fillcolor="#DFDFFF"]; Content-divergent1 [fillcolor="#FF3535"]; Content-divergent2 [fillcolor="#FF3535"]; Root[shape="circle"]; } ~~~ # Topic # CHANGE TITLE (LATER IN THE FLOW) ## Log on obsolete
$> hg log -G
o  changeset:   10:2c1a992b87c3
|  tag:         tip
|  user:        Boris Feld <boris.feld@octobus.net>
|  date:        Wed Jun 21 14:50:39 2017 +0200
|  summary:     Feature2
|
o  changeset:   9:751113c206d0
|  user:        Boris Feld <boris.feld@octobus.net>
|  date:        Wed Jun 21 14:50:39 2017 +0200
|  summary:     Feature
|
o  changeset:   8:9f9f3db01630
|  user:        Boris Feld <boris.feld@octobus.net>
|  date:        Wed Jun 21 14:50:39 2017 +0200
|  summary:     Trunk2
|
o  changeset:   7:a5e9a3060e20
|  parent:      4:32253567b531
|  user:        Boris Feld <boris.feld@octobus.net>
|  date:        Wed Jun 21 14:50:39 2017 +0200
|  summary:     Trunk
|
| @  changeset:   6:a57f1852d740
| |  branch:      feature
| |  user:        Boris Feld <boris.feld@octobus.net>
| |  date:        Wed Jun 21 14:50:39 2017 +0200
| |  summary:     Feature2
| |
| x  changeset:   5:896dc0771e5e
|/   branch:      feature
|    user:        Boris Feld <boris.feld@octobus.net>
|    date:        Wed Jun 21 14:50:39 2017 +0200
|    summary:     Feature
|
o  changeset:   4:32253567b531
|  user:        Boris Feld <boris.feld@octobus.net>
~  date:        Wed Jun 21 14:50:39 2017 +0200
   summary:     Parent

## Log with hidden
$ hg log -G --hidden
@  changeset:   10:2c1a992b87c3
|  tag:         tip
|  user:        Boris Feld <boris.feld@octobus.net>
|  date:        Wed Jun 21 14:50:39 2017 +0200
|  summary:     Feature2
|
o  changeset:   9:751113c206d0
|  user:        Boris Feld <boris.feld@octobus.net>
|  date:        Wed Jun 21 14:50:39 2017 +0200
|  summary:     Feature
|
o  changeset:   8:9f9f3db01630
|  user:        Boris Feld <boris.feld@octobus.net>
|  date:        Wed Jun 21 14:50:39 2017 +0200
|  summary:     Trunk2
|
o  changeset:   7:a5e9a3060e20
|  parent:      4:32253567b531
|  user:        Boris Feld <boris.feld@octobus.net>
|  date:        Wed Jun 21 14:50:39 2017 +0200
|  summary:     Trunk
|
| x  changeset:   6:a57f1852d740
| |  branch:      feature
| |  user:        Boris Feld <boris.feld@octobus.net>
| |  date:        Wed Jun 21 14:50:39 2017 +0200
| |  summary:     Feature2
| |
| x  changeset:   5:896dc0771e5e
|/   branch:      feature
|    user:        Boris Feld <boris.feld@octobus.net>
|    date:        Wed Jun 21 14:50:39 2017 +0200
|    summary:     Feature
|
o  changeset:   4:32253567b531
|  user:        Boris Feld <boris.feld@octobus.net>
~  date:        Wed Jun 21 14:50:39 2017 +0200
   summary:     Parent

## Obslog Behold our savior Obslog! ## Obslog
$> hg obslog -r 3
o  c4414d4a5955 (3) Fix bug
|
x  9b5b4aa63d51 (1) Fx bug
     rewritten by Boris Feld <boris.feld@octobus.net> (Wed Jun 21 14:50:38 2017 +0200) as c4414d4a5955

$> hg obslog -r 6 --all --hidden
@  2c1a992b87c3 (10) Feature2
|
x  a57f1852d740 (6) Feature2
     rewritten by Boris Feld <boris.feld@octobus.net> (Wed Jun 21 14:50:39 2017 +0200) as 2c1a992b87c3

Obslog is your next best friend! ## Obslog # Evolve Basics behind the hood ## Amend
~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF", shape="pentagon"]; // Revisions node[group=main]; Root -> "A"; Root [shape="circle"]; } ~~~
To amend A: hg amend -m 'A1'
~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF", shape="pentagon"]; // Revisions node[group=main]; Root -> "A1"; node[group=obsolete, style="dotted, filled", fillcolor="#DFDFFF"]; Root -> "A"; // Obsolescence links edge[dir=back, style=dotted, arrowtail=dot]; "A" -> "A1"; Root [shape="circle"]; } ~~~
## Amend bis It also works with: hg commit --amend -m 'A1' ## Prune
~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF", shape="pentagon"]; // Revisions node[group=main]; Root -> "A"; Root [shape="circle"]; } ~~~
To prune A: hg prune -r "desc(A)"
~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF", shape="pentagon"]; Root [shape="circle"]; // Revisions node[group=obsolete, style="dotted, filled", fillcolor="#DFDFFF"]; Root -> "A"; } ~~~
## Rebase
~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF", shape="pentagon"]; // Revisions node[group=branch]; Root -> B; node[group=main]; Root -> "A"; Root [shape="circle"]; } ~~~
In order to rebase A on top of B; hg rebase -r "desc(A)" -d "desc(B)"
~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF", shape="pentagon"]; // Revisions node[group=branch]; Root -> B -> "A'"; node[group=obsolete, style="dotted, filled", fillcolor="#DFDFFF"]; Root -> "A"; // Obsolescence links edge[dir=back, style=dotted, arrowtail=dot]; "A" -> "A'"; Root [shape="circle"]; } ~~~
# More advanced ## Fold
~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF", shape="pentagon"]; // Revisions node[group=branch]; Root -> A -> B; Root [shape="circle"]; } ~~~
To fold A and B: hg fold -r "desc(A)" -r "desc(B)" -m "C"
~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF", shape="pentagon"]; // Revisions node[group=branch]; Root -> C; node[group=obsolete, style="dotted, filled", fillcolor="#DFDFFF"]; Root -> A -> B; // Obsolescence links edge[dir=back, style=dotted, arrowtail=dot]; "A" -> "C"; "B" -> "C"; Root [shape="circle"]; } ~~~
## Split
~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF", shape="pentagon"]; // Revisions node[group=branch]; Root -> A; Root [shape="circle"]; } ~~~
Split in two: hg split -r "desc(A)"
~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF", shape="pentagon"]; // Revisions node[group=branch]; Root -> B -> C; node[group=obsolete, style="dotted, filled", fillcolor="#DFDFFF"]; Root -> A; // Obsolescence links edge[dir=back, style=dotted, arrowtail=dot]; "A" -> "C"; "A" -> "B"; Root [shape="circle"]; } ~~~
# Warning zone ## Divergence ~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF", shape="pentagon"]; // Revisions node[group=branch]; Root -> "A"; Root [shape="circle"]; } ~~~ ## Divergence
~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF", shape="pentagon"]; // Revisions node[group=branch]; Root -> "B"; node[group=obsolete, style="dotted, filled", fillcolor="#DFDFFF"]; Root -> "A"; // Obsolescence links edge[dir=back, style=dotted, arrowtail=dot]; "A" -> "B"; Root [shape="circle"]; } ~~~
First amend: hg amend -m B;
## Divergence 2
Second amend: hg amend -m C
~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, width=1, height=1, style="filled", fillcolor="#7F7FFF", shape="pentagon"]; Root; node[group=obsolete, style="dotted, filled", fillcolor="#DFDFFF"]; Root -> "A"; // Revisions node[group=branch, fillcolor="#7F7FFF", style="filled"]; Root -> "C"; // Obsolescence links edge[dir=back, style=dotted, arrowtail=dot]; "A" -> "C"; Root [shape="circle"]; } ~~~
## Result ~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, style="filled", width=1, height=1, fillcolor="#7F7FFF", shape="pentagon"]; node[group=main]; Root -> "B"; node[group=divergence]; Root -> "C"; node[group=obsolete, style="dotted, filled", fillcolor="#DFDFFF"]; Root -> "A"; // Obsolescence links edge[dir=back, style=dotted, arrowtail=dot]; A -> B; A -> C; Root [shape="pentagon"]; B [fillcolor="#FF3535"]; C [fillcolor="#FF3535"]; Root[shape="circle"]; } ~~~ ## That's gonna hurt! # Stabilization ## Stabilization with amend ~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, style="filled", width=1, height=1, fillcolor="#7F7FFF", shape="pentagon"]; node[group=main]; Root -> "A'"; node[group=obsolete, style="dotted, filled", fillcolor="#DFDFFF"]; Root -> "A" -> B; // Obsolescence links edge[dir=back, style=dotted, arrowtail=dot]; "A" -> "A'"; B[fillcolor="#FF3535"]; Root[shape="circle"]; } ~~~ ## Evolve!
Stabilize repo: hg evolve --all
~~~graphviz digraph G { rankdir="BT"; graph[splines=polyline]; node[fixedsize=true, style="filled", width=1, height=1, fillcolor="#7F7FFF", shape="pentagon"]; node[group=main]; Root -> "A'" -> "B'"; node[group=obsolete, style="dotted, filled", fillcolor="#DFDFFF"]; Root -> "A" -> B; // Obsolescence links edge[dir=back, style=dotted, arrowtail=dot]; "A" -> "A'"; "B" -> "B'"; Root[shape="circle"]; } ~~~
# Future is near! ## Effect-flag Remember our obs-markers? They are great for evolution, but how do you know what changed between two evolutions? ## Effect-flag Effect-flag are storing what changed between evolutions. You can view them with `obslog`, who else? ## Effect-flag Does the meta only changed?
o  5732d5ea6aa2 (2) Fix bug
|
@  aa3cd7ee52fc (1) Fx bug
     rewritten(description) by Boris Feld <boris.feld@octobus.net> (Wed Jun 21 15:49:54 2017 +0200) as 5732d5ea6aa2

## Or did the code changed?
@  8f824718f3f7 (12) Fix the build
|
x  f9310b4b05e1 (10) Fix the build
     rewritten(content) by Boris Feld <boris.feld@octobus.net> (Wed Jun 21 15:53:07 2017 +0200) as 8f824718f3f7

## Or was rebased?
o  ab709059df38 (9) Feature2
|
@  3d61cb9ab34f (5) Feature2
     rewritten(branch, parent) by Boris Feld <boris.feld@octobus.net> (Wed Jun 21 15:53:06 2017 +0200) as ab709059df38

## Obslog ## Obsfate
o  8f824718f3f7
|
| x  f39472eb8519
| |    Obsfate: pruned by Boris Feld <boris.feld@octobus.net> (at 2017-06-21 15:53 +0200)
| |
| x  f9310b4b05e1
|/     Obsfate: rewritten by Boris Feld <boris.feld@octobus.net> as 8f824718f3f7 (at 2017-06-21 15:53 +0200)
|
o  ab709059df38
|
o  b0d7c614e47d
|
o  d61083b45bba
|
o  50ebd46e2452
|
| @  3d61cb9ab34f
| |    Obsfate: rewritten by Boris Feld <boris.feld@octobus.net> as ab709059df38 (at 2017-06-21 15:53 +0200)
| |
| x  1c6a75c00a45
|/     Obsfate: rewritten by Boris Feld <boris.feld@octobus.net> as b0d7c614e47d (at 2017-06-21 15:53 +0200)
|
o  c1bdb750ab80
|
o  39752c0e48a4
|
| x  36744bfd9d65
|/     Obsfate: rewritten by Boris Feld <boris.feld@octobus.net> as 39752c0e48a4 (at 2017-06-21 15:53 +0200)
|
o  7d12a4681f84
## Obslog --patch
$> hg obslog --patch
x  19fb99aaa0d5 (3594) obslog: add a patch option
|    rewritten(content) by Pierre-Yves David <pierre-yves.david@octobus.net> (Mon Jun 19 19:25:18 2017 +0200) as 81b01fe6db3b
|      diff -r 19fb99aaa0d5 -r 81b01fe6db3b hgext3rd/evolve/obshistory.py
|      --- a/hgext3rd/evolve/obshistory.py  Mon Jun 19 19:00:36 2017 +0200
|      +++ b/hgext3rd/evolve/obshistory.py  Mon Jun 19 19:00:36 2017 +0200
|      @@ -105,6 +105,10 @@
|                   markerfm.plain('\n')
|
|                   # Patch
|      +
|      +# XXX-review: I find it a bit hacky always call showpatch and expect it to not
|      +# XXX-review: show anything without --patch. I would prefer and explicite condition for
|      +# XXX-review: calling showpatch.
|                   self.showpatch(ctx, matchfn)
|
|                   self.hunk[ctx.node()] = self.ui.popbuffer()
|      ...
|
| o  a788967aa800 (3593) obslog: clarify some sorting code
| |
x |  4c2be5027b23
|/     rewritten(user) by Pierre-Yves David <pierre-yves.david@octobus.net> (Mon Jun 19 19:00:54 2017 +0200) as 19fb99aaa0d5
|        (No patch available yet, context is not local)
|
x  5d04c9bfac7e
|    rewritten(description, user, date, parent, content) by Pierre-Yves David <pierre-yves.david@octobus.net> (Mon Jun 19 19:00:36 2017 +0200) as 4c2be5027b23, a788967aa800
|      (No patch available yet, context is not local)
|
x  8ddfd687cf57 (3559) obslog: add a patch option
|    rewritten(parent) by Pierre-Yves David <pierre-yves.david@octobus.net> (Mon Jun 19 18:59:02 2017 +0200) as 5d04c9bfac7e
|      (No patch available yet, succ is unknown locally)
|
x  27d388000e90 (3541) obslog: add a patch option
     rewritten(content) by Boris Feld <boris.feld@octobus.net> (Mon Jun 19 18:40:16 2017 +0200) as 8ddfd687cf57
# Conclusion
~~~graphviz digraph G{} ~~~
To stuff: hg
~~~graphviz digraph G{} ~~~
hg-evolve-11.1.3/docs/tutorial/jquery.sticky-kit.js0000666000000000000000000001723714606303052022206 0ustar rootroot00000000000000// Generated by CoffeeScript 1.9.2 /** @license Sticky-kit v1.1.2 | WTFPL | Leaf Corcoran 2015 | http://leafo.net */ (function() { var $, win; $ = this.jQuery || window.jQuery; win = $(window); $.fn.stick_in_parent = function(opts) { var doc, elm, enable_bottoming, fn, i, inner_scrolling, len, manual_spacer, offset_top, parent_selector, recalc_every, sticky_class; if (opts == null) { opts = {}; } sticky_class = opts.sticky_class, inner_scrolling = opts.inner_scrolling, recalc_every = opts.recalc_every, parent_selector = opts.parent, offset_top = opts.offset_top, manual_spacer = opts.spacer, enable_bottoming = opts.bottoming; if (offset_top == null) { offset_top = 0; } if (parent_selector == null) { parent_selector = void 0; } if (inner_scrolling == null) { inner_scrolling = true; } if (sticky_class == null) { sticky_class = "is_stuck"; } doc = $(document); if (enable_bottoming == null) { enable_bottoming = true; } fn = function(elm, padding_bottom, parent_top, parent_height, top, height, el_float, detached) { var bottomed, detach, fixed, last_pos, last_scroll_height, offset, parent, recalc, recalc_and_tick, recalc_counter, spacer, tick; if (elm.data("sticky_kit")) { return; } elm.data("sticky_kit", true); last_scroll_height = doc.height(); parent = elm.parent(); if (parent_selector != null) { parent = parent.closest(parent_selector); } if (!parent.length) { throw "failed to find stick parent"; } fixed = false; bottomed = false; spacer = manual_spacer != null ? manual_spacer && elm.closest(manual_spacer) : $("
"); if (spacer) { spacer.css('position', elm.css('position')); } recalc = function() { var border_top, padding_top, restore; if (detached) { return; } last_scroll_height = doc.height(); border_top = parseInt(parent.css("border-top-width"), 10); padding_top = parseInt(parent.css("padding-top"), 10); padding_bottom = parseInt(parent.css("padding-bottom"), 10); parent_top = parent.offset().top + border_top + padding_top; parent_height = parent.height(); if (fixed) { fixed = false; bottomed = false; if (manual_spacer == null) { elm.insertAfter(spacer); spacer.detach(); } elm.css({ position: "", top: "", width: "", bottom: "" }).removeClass(sticky_class); restore = true; } top = elm.offset().top - (parseInt(elm.css("margin-top"), 10) || 0) - offset_top; height = elm.outerHeight(true); el_float = elm.css("float"); if (spacer) { spacer.css({ width: elm.outerWidth(true), height: height, display: elm.css("display"), "vertical-align": elm.css("vertical-align"), "float": el_float }); } if (restore) { return tick(); } }; recalc(); if (height === parent_height) { return; } last_pos = void 0; offset = offset_top; recalc_counter = recalc_every; tick = function() { var css, delta, recalced, scroll, will_bottom, win_height; if (detached) { return; } recalced = false; if (recalc_counter != null) { recalc_counter -= 1; if (recalc_counter <= 0) { recalc_counter = recalc_every; recalc(); recalced = true; } } if (!recalced && doc.height() !== last_scroll_height) { recalc(); recalced = true; } scroll = win.scrollTop(); if (last_pos != null) { delta = scroll - last_pos; } last_pos = scroll; if (fixed) { if (enable_bottoming) { will_bottom = scroll + height + offset > parent_height + parent_top; if (bottomed && !will_bottom) { bottomed = false; elm.css({ position: "fixed", bottom: "", top: offset }).trigger("sticky_kit:unbottom"); } } if (scroll < top) { fixed = false; offset = offset_top; if (manual_spacer == null) { if (el_float === "left" || el_float === "right") { elm.insertAfter(spacer); } spacer.detach(); } css = { position: "", width: "", top: "" }; elm.css(css).removeClass(sticky_class).trigger("sticky_kit:unstick"); } if (inner_scrolling) { win_height = win.height(); if (height + offset_top > win_height) { if (!bottomed) { offset -= delta; offset = Math.max(win_height - height, offset); offset = Math.min(offset_top, offset); if (fixed) { elm.css({ top: offset + "px" }); } } } } } else { if (scroll > top) { fixed = true; css = { position: "fixed", top: offset }; css.width = elm.css("box-sizing") === "border-box" ? elm.outerWidth() + "px" : elm.width() + "px"; elm.css(css).addClass(sticky_class); if (manual_spacer == null) { elm.after(spacer); if (el_float === "left" || el_float === "right") { spacer.append(elm); } } elm.trigger("sticky_kit:stick"); } } if (fixed && enable_bottoming) { if (will_bottom == null) { will_bottom = scroll + height + offset > parent_height + parent_top; } if (!bottomed && will_bottom) { bottomed = true; if (parent.css("position") === "static") { parent.css({ position: "relative" }); } return elm.css({ position: "absolute", bottom: padding_bottom, top: "auto" }).trigger("sticky_kit:bottom"); } } }; recalc_and_tick = function() { recalc(); return tick(); }; detach = function() { detached = true; win.off("touchmove", tick); win.off("scroll", tick); win.off("resize", recalc_and_tick); $(document.body).off("sticky_kit:recalc", recalc_and_tick); elm.off("sticky_kit:detach", detach); elm.removeData("sticky_kit"); elm.css({ position: "", bottom: "", top: "", width: "" }); parent.position("position", ""); if (fixed) { if (manual_spacer == null) { if (el_float === "left" || el_float === "right") { elm.insertAfter(spacer); } spacer.remove(); } return elm.removeClass(sticky_class); } }; win.on("touchmove", tick); win.on("scroll", tick); win.on("resize", recalc_and_tick); $(document.body).on("sticky_kit:recalc", recalc_and_tick); elm.on("sticky_kit:detach", detach); return setTimeout(tick, 0); }; for (i = 0, len = this.length; i < len; i++) { elm = this[i]; fn($(elm)); } return this; }; }).call(this); hg-evolve-11.1.3/docs/tutorial/mypandocfilters/0000755000000000000000000000000014606303054021426 5ustar rootroot00000000000000hg-evolve-11.1.3/docs/tutorial/mypandocfilters/graphviz-file.py0000777000000000000000000000217314606303052024557 0ustar rootroot00000000000000#!/usr/bin/env python """ Pandoc filter to process code blocks with class "graphviz" into graphviz-generated images. Needs pygraphviz """ import os import sys import pygraphviz from pandocfilters import toJSONFilter, Para, Image, get_filename4code, get_caption, get_extension, get_value def graphviz(key, value, format, _): if key == 'CodeBlock': [[ident, classes, keyvals], file] = value if "graphviz-file" in classes: caption, typef, keyvals = get_caption(keyvals) prog, keyvals = get_value(keyvals, u"prog", u"dot") filetype = get_extension(format, "svg", html="svg", latex="pdf") with open(file) as f: code = f.read() dest = get_filename4code("graphviz", code, filetype) if not os.path.isfile(dest): g = pygraphviz.AGraph(string=code) g.layout() g.draw(dest, prog=prog) sys.stderr.write('Created image ' + dest + '\n') return Para([Image([ident, ['graphviz'], keyvals], caption, [dest, typef])]) if __name__ == "__main__": toJSONFilter(graphviz) hg-evolve-11.1.3/docs/tutorial/mypandocfilters/raw-file.py0000666000000000000000000000074314606303052023514 0ustar rootroot00000000000000#!/usr/bin/env python """ Insert a raw-file as HTML code block """ import panflute as pf def action(elem, doc): if isinstance(elem, pf.CodeBlock) and 'raw-file' in elem.classes: filepath = elem.text with open(filepath, 'r') as fd: content = fd.read() return pf.RawBlock('
%s
' % content, "html") # elem.text = content def main(doc=None): return pf.run_filter(action, doc=doc) if __name__ == '__main__': main() hg-evolve-11.1.3/docs/tutorial/prepare.sh0000777000000000000000000000156414606303052020230 0ustar rootroot00000000000000#!/bin/bash set -euo pipefail # Prepare pandoc filters if [ -d pandocfilters/.git ]; then (cd pandocfilters && git remote update && git merge --ff-only) else git clone https://github.com/Lothiraldan/pandocfilters.git fi pip2 install pandocfilters pip2 install pygraphviz pip2 install panflute pip2 install hg+https://bitbucket.org/octobus/mercurial_docgraph pip2 install hg-evolve mkdir -p graphs output CMD_NOT_FOUND=0 check_command() { cmd=$1 if ! which "$cmd" >/dev/null 2>&1; then echo "Error: command '$cmd' not found in \$PATH" echo "Please install '$cmd'" CMD_NOT_FOUND=1 else echo "$cmd command was found" fi } check_command pandoc check_command aha if [ "$CMD_NOT_FOUND" -ne "0" ]; then exit 1 fi # Prepare directory for repositories generated by the training.t file mkdir -p base-repos rm -Rf base-repos/* hg-evolve-11.1.3/docs/tutorial/scripts.js0000666000000000000000000000711614606303052020257 0ustar rootroot00000000000000 $(document).ready(function () { /* uk-nav-parent-icon */ $(".menu-begin ul:first-child").addClass('uk-nav uk-nav-side'); $(".menu-begin ul:first-child").data('uk-nav', '{multiple:false}'); $(".menu-begin ul:first-child").attr('data-uk-nav', '{multiple:false}'); // Parent click $(".uk-parent > a").on('click', function (event) { event.preventDefault(); $(".uk-parent > a").parent().removeClass('uk-active'); $(this).parent().toggleClass('uk-active'); var hash = $(this).attr('href').split('#')[1]; // scroll.To(hash); scrollTo(hash); // $('body').scrollTo(hash); // $('body').scrollTo(hash,{duration:'slow', offsetTop : '50'}); $('a[href="' + hash + '"]').addClass('uk-active'); }); }); function scrollTo(hash) { location.hash = "#" + hash; } function setStickyMenu () { var options = { bottoming: false, inner_scrolling: false }; var sticky = ".uk-overflow-container"; var width = $(window).width(); if (width >= 768) { $(".uk-nav > li").addClass('uk-parent'); $(".menu-begin ul > li > ul").addClass('uk-nav-sub'); $('.uk-parent').removeClass('uk-open'); $('.uk-parent div').addClass('uk-hidden'); $(sticky).stick_in_parent(options); } else { $('.uk-parent').addClass('uk-open'); $('.uk-parent div').removeClass('uk-hidden'); $('.uk-parent div').removeAttr('style'); $('.uk-nav li').removeClass('uk-parent'); $(sticky).trigger("sticky_kit:detach"); } }; $(document).ready(function(){ $(".pager").wrapInner( '
    ' ); $(".pager a").wrap( '
  • ' ); $(".pager b").wrap( '
  • ' ); $(".pager b").wrapInner( '' ); $(".pager b span").unwrap( ); // Normalize tables without style $( "table" ).addClass( "uk-table" ); // Normalize tables without style $( "form" ).addClass( "uk-form" ); }); $(document).ready(function () { setStickyMenu(); $(window).on('resize', function () { setStickyMenu(); }); }); $(document).ready(function () { $( 'table' ).addClass( "table" ); }); /* var scroll = (function() { var elementPosition = function(a) { return function() { return a.getBoundingClientRect().top; }; }; var scrolling = function( elementID ) { var el = document.getElementById( elementID ), elPos = elementPosition( el ), duration = 400, increment = Math.round( Math.abs( elPos() )/40 ), time = Math.round( duration/increment ), prev = 0, E; function scroller() { E = elPos(); if (E === prev) { return; } else { prev = E; } increment = (E > -20 && E < 20) ? ((E > - 5 && E < 5) ? 1 : 5) : increment; if (E > 1 || E < -1) { if (E < 0) { window.scrollBy( 0,-increment ); } else { window.scrollBy( 0,increment ); } setTimeout(scroller, time); } else { el.scrollTo( 0,0 ); } } scroller(); }; return { To: scrolling } })(); */hg-evolve-11.1.3/docs/tutorial/slides.md0000666000000000000000000021243514606303052020041 0ustar rootroot00000000000000--- title: Changeset Evolution training author: | Boris Feld
    octobus.net
    --- # Introduction ## Welcome Hello everyone, and welcome to this Changeset Evolution training. During this session, you will learn how to safely rewrite history with Mercurial and Evolve, and how to collaborate together with your colleagues while rewriting the history at the same time. This training is designed to last approximately ¾ hours. You will use this repository during the training: [https://bitbucket.org/octobus/evolve_training_repo](https://bitbucket.org/octobus/evolve_training_repo). Please clone it somewhere relevant. ```bash $ hg clone https://bitbucket.org/octobus/evolve_training_repo $ cd evolve_training_repo ``` Copy the provided hgrc to ensure a smooth training experience: ```bash $ cp hgrc .hg/hgrc ``` This training support will contains commands you are expected to type and launch. These commands will be in the following format: ``` $ COMMAND YOU ARE EXPECTED TO TYPE output you are expecting to see ``` ## Preliminary checks #### Mercurial version First let's use the following command to verify which version of Mercurial you are using: ``` $ hg --version Mercurial Distributed SCM (version 4.4.2) (see https://mercurial-scm.org for more information) Copyright (C) 2005-2017 Matt Mackall and others This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ``` You need at least Mercurial version `4.1`. If you don't have a recent enough version, please call your instructor. In order to activate the Evolve extension, add these lines in your user configuration (using the command `hg config --edit`): ```ini [extensions] evolve = topic = ``` #### Mercurial extensions Now let's check the version of your extensions. You will need all of these for the training: ``` $ hg --version --verbose [...] evolve external 7.1.0 topic external 0.6.0 rebase internal histedit internal ``` # The Basics In this section, we are going to learn how to do basic history rewriting like rewriting a changeset or rebasing. ### Amend The smallest possible history rewriting is rewriting a changeset description message. We often save and close the editor too early, and/or haven't seen a typo. It is very easy to fix a changeset description message, so let's do that. First be sure that you are in your clone of the `evolve_training_repo`. then update to the `typo` branch: ``` $ hg update typo ``` Check what the current repository looks like: ~~~raw-file output/fix-a-bug-base.log ~~~ ~~~graphviz-file graphs/fix-bug-1.dot ~~~ We have a root commit and another based on it. Double-check that you are on the right changeset with the `hg summary` command: ~~~raw-file output/fix-a-bug-base-summary.log ~~~ The current commit description message seems wrong, `Fx bug`, there is definitely a letter missing. Let's fix this typo with the `hg commit` command. Usually, the `hg commit` is used to create new commit but we can use the ``--amend`` option to instead modify the current commit (see `hg help commit` for more information): ~~~ $ hg commit --amend --message "Fix bug" ~~~ Let's take a look at the repository now: ~~~raw-file output/amend-after.log ~~~ ~~~graphviz-file graphs/fix-bug-2.dot ~~~ The logs before and after amending looks pretty similar, we are going to analyze the differences later. Did you catch the differences? ### Rebase Let's try to rebase something now. Let's say that you have a branch named `build/linuxsupport-v2` which was started on another branch named `build/v2`. Everything was fine until `build/v2` grew a new commit, and now you want to rebase `build/linuxsupport-v2` on top of `build/v2` to be up-to-date with other the changes: ``` $ hg update build/linuxsupport-v2 ``` ~~~raw-file output/rebase-before.log ~~~ ~~~graphviz-file graphs/rebase-before.dot ~~~ Let's rebase our branch on top of `build/v2` with the `hg rebase` command. The `hg rebase` command have many ways to select commits: 1. Explicitly select them using "--rev". 2. Use "--source" to select a root commit and include all of its descendants. 3. Use "--base" to select a commit; rebase will find ancestors and their descendants which are not also ancestors of the destination. 4. If you do not specify any of "--rev", "source", or "--base", rebase will use "--base ." as above. For this first example, we are gonna stays simple and explicitly select the commits we want to rebase with the `--rev` option. The `hg rebase` command also accepts a destination with the ``--dest`` option. And finally, as we are using named branches, don't forget to use the `--keepbranches` or the rebased commits will be on the wrong branch: ~~~raw-file output/rebase.log ~~~ Now we have a nice, clean and flat history: ~~~raw-file output/rebase-after.log ~~~ ~~~graphviz-file graphs/rebase-after.dot ~~~ For more details about how to use the `hg rebase` command, see `hg help rebase`. ### Under the hood What did happened when we just ran the `hg amend` and `hg rebase` commands? What was done exactly to make the whole process work seamlessly? Let's go back to our previous amend example. ##### Amend When we did our amend, the status of the repository was: ~~~raw-file output/behind-the-hood-amend-before-hash-hidden.log ~~~ ~~~graphviz-file graphs/fix-bug-1.dot ~~~ And after the amend, the repository looked like: ~~~raw-file output/behind-the-hood-amend-after.log ~~~ ~~~graphviz-file graphs/fix-bug-2.dot ~~~ Do you see what is the difference? The big difference, apart from the fixed changeset message, is the revision hash and revision number. The `Fix bug` revision changed from `d2eb2ac6a5bd` to `708369dc1bfe`. It means that the fixed changeset is a new one. But where did the old changeset go? It didn't actually go very far, as it just became **hidden**. When we rewrite a changeset with the Evolve extension, instead of blindly delete it, we create a new changeset and hide the old one, which is still there, and we can even see it with the `--hidden` option available on most Mercurial commands: ~~~raw-file output/under-the-hood-amend-after-log-hidden.log ~~~ Notice the `x` in the log output which shows that a changeset is hidden. In addition to hiding the original changeset, we are also storing additional information which is recording the relation between a changeset, the **predecessor** and its **successor**. It basically stores the information that the commit **X** was rewritten into the commit **Y** by the user **U** at the date **D**. This piece of information is stored in something called an **obsolescence marker**. It will be displayed like this: ~~~graphviz-file graphs/fix-bug-3.dot ~~~ Here the commit **5d48a444aba7** was rewritten into **708369dc1bfe**. Also please notice the difference of style of the commit **5d48a444aba7**, that's because it have been rewritten. ##### Rebase **Successors** don't need to share anything with their **predecessor**. They could have a different description message, user, date or even parents. Let's look at our earlier rebase example. The status before the rebase was: ~~~raw-file output/behind-the-hood-rebase-before-hash-hidden.log ~~~ ~~~graphviz-file graphs/rebase-before.dot ~~~ And after it was: ~~~raw-file output/behind-the-hood-rebase-after.log ~~~ ~~~graphviz-file graphs/rebase-after.dot ~~~ Did the same thing happen under the hood? Yes, exactly! The old changesets are still around, and they are just hidden. ~~~raw-file output/rebase-after-hidden.log ~~~ And we created three **obsolescence markers**, between each rebased commit and its **successor**: ~~~graphviz-file graphs/rebase-after-hidden.dot ~~~ ### Evolution History Mercurial is designed to track the history of files. Evolution goes beyond, and tracks the history of the history of files. It basically tracks the different versions of your commits. As it is a new dimension of history, the classical Mercurial commands are not always the best to visualize this new history. We have seen that we can see the **hidden** changesets with the `--hidden` option on `hg log`: ~~~raw-file output/under-the-hood-amend-after-log-hidden.log ~~~ To visualize the **obsolescence history** of a particular changeset, we can use the dedicated command `hg obslog`. The option are quite similar to `hg log` (you can read `hg help obslog` for more information): ~~~raw-file output/under-the-hood-amend-after-obslog.log ~~~ We can even print what changed between the two versions with the `--patch` option: ~~~raw-file output/under-the-hood-amend-after-obslog-patch.log ~~~ Obslog works both ways, as it can display **predecessors** and **successors** with the `--all` option: ```raw-file output/under-the-hood-amend-after-obslog-no-all.log ``` ~~~raw-file output/under-the-hood-amend-after-obslog-all.log ~~~ ~~~graphviz-file graphs/fix-bug-3.dot ~~~ We can also use obslog on the changesets that we rebased earlier: ~~~raw-file output/under-the-hood-rebase-after-obslog.log ~~~ Why the `hg obslog` command is only showing two commits while we rebased three of them? ```raw-file output/under-the-hood-rebase-after-obslog-branch.log ``` And why the `hg obslog` command show disconnected graphs when asking for the obslog of the whole branch? ~~~graphviz-file graphs/rebase-after-hidden.dot ~~~ While these two obsolescence logs look very similar —because they show a similar change—, the two changesets log histories looked quite different. Using the `hg log` command to understand the Evolution history is hard because it is designed for displaying the files history, not the Evolution history. The `hg obslog` has been specially designed for this use-case and is more suited for this use-case. #### TortoiseHG TortoiseHG should be able to display obsolescence history for your repositories. To display all the **hidden** commits, we need to click on the **search icon**, then on the **Show/Hide hidden changesets** at the right of the **filter** check box. It is also possible to provide a *revset* to filter the repository, for example `:6 + ::20` to display only the revisions we have been working with until now: ![](img/thg-obs.png) # Medium level ## More rewriting commands The `hg amend` and `hg rebase` commands are the foundations for changeset evolution in Mercurial. You could do everything with these, but, luckily for us, the evolve extension provides human-friendly commands for common needs. We are going to see them now: ### Amend The Evolve extension provides its own `hg amend` command, which is similar to the `hg commit --amend` that we used previously, and adds several nice features: - The `-e`/`--edit` option edits the commit message in an editor, which is not opened by default any more. - The user and date can be updated to the current ones with the `-U`/`--current-user` and `-D`/`--current-date` options. - More capabilities for rewriting the changeset. The `hg amend` command accepts either file paths, to add all the modifications on these files in the current changeset, or the `-i`/`--interactive` option to select precisely what to add in it. We are going to use it to rewrite the author of the changeset: ``` $ hg update amend-extract ``` We have two commits on the **amend-extract** branch: ```raw-file output/amend-extract-before.log ``` The user for the **amend-extract** head seems wrong, so let's fix it with the `hg amend` command: ```raw-file output/amend-user.log ``` Now let's check that the user has been amended correctly: ```raw-file output/amend-user-after-export.log ``` The user is the good one, but the diff looks weird. It seems that both a bad file **and** an incorrect line have slipped in this commit. We need to fix that. There are several solutions here, and we could manually edit the file and amend it. But, luckily for us, the `hg amend` command also has a very helpful option named `--extract` that will help us. ### Amend extract The `hg amend` command is meant to move file modifications from your working directory to the current changeset (which is considered as the parent of working directory). `hg amend` also provides the option `--extract` that can be used to invert the meaning of the command: with this option, `hg amend` will move the file modifications from your current changeset to your working directory. This is often used to remove a file or a line that is not meant to be in the current commit. As usual, we can either pass file paths or use the `-i` option to select which lines to extract. First, let's extract the badfile: ```raw-file output/amend-extract-badfile.log ``` Now let's check the status of the changeset and the working directory: ```raw-file output/amend-extract-badfile-after-export.log ``` The file is not included in the commit anymore! Did it just vanish? What if you wanted to keep it and, for example, put it in another commit? Don't worry, the extracted files and lines still are in your working directory: ```raw-file output/amend-extract-badfile-after-status.log ``` As we are not going to need this file anymore, let's forget it with the `hg revert` command: ```raw-file output/amend-extract-badfile-after-revert.log ``` Also don't forget to remove the file: ```bash $ rm badfile ``` Ok. Now we still have a line to extract from our commit, so let's use the handy interactive mode of `hg amend --extract` to extract lines: ```raw-file output/amend-extract.log ``` Much better! One last thing, as the line that we extracted is still in our working directory, just like when we extracted a file: ```raw-file output/amend-extract-after-status.log ``` ```raw-file output/amend-extract-after-diff.log ``` Don't forget to revert the change, as we are not going to need it any more: ```raw-file output/amend-extract-after-revert.log ``` Now let's take a look at the obsolescence history: ```raw-file output/amend-extract-after-obslog.log ``` The obslog is read from bottom to top: - First we rewrite the user, - Then we extracted a whole file, - Then we extracted a line from a file We have made three changes that generated three **successors**. ```graphviz-file graphs/amend-extract-after-hidden.dot ``` ### Fold Sometimes we want to group together several consecutive changesets. Evolve has a command for that: `hg fold`. First, let's update to the right branch: ``` $ hg update fold ``` Three changesets change the same file, and they could be folded together. This would make a cleaner and more linear history, and hide those pesky intermediate changesets: ```raw-file output/fold-before.log ``` ```graphviz-file graphs/fold-before.dot ``` We all have been in a similar situation. Let's make a nice and clean changeset with fold: ```raw-file output/fold.log ``` That was easy! ```raw-file output/fold-after.log ``` ```raw-file output/fold-after-hidden.log ``` Can you imagine what the graphs will looks like? ```raw-file output/fold-after-hidden-obslog.log ``` ```graphviz-file graphs/fold-after-hidden.log ``` ### Split Sometimes you want to `fold` changesets together, and sometimes you want to `split` a changeset into several ones, because it is too big. ``` $ hg update split ``` Evolve also has a command for that, `hg split`: ```raw-file output/split-before.log ``` ```graphviz-file graphs/split-before.dot ``` Split accepts a list of revisions and will interactively ask you how you want to split them: ```raw-file output/split.log ``` Now let's check the state of the repository: ```raw-file output/split-before-after.log ``` ```graphviz-file graphs/split-before-after-hidden.dot ``` It looks good. What about the obsolescence history? ```raw-file output/split-after-obslog.log ``` ```raw-file output/split-after-obslog-all.log ``` ### Prune After rewriting and rebasing changesets, the next common use case for history rewriting is removing a changeset. But we can't permanently remove a changeset without leaving a trace. What if other users are working with the changeset that we want to remove? The common solution is to mark the changeset as removed, and simulate the fact that it has been removed. This is why the Evolve extension is offering the `prune` command. Let's try to prune a changeset: ``` $ hg update prune ``` ```raw-file output/prune-before.log ``` ```graphviz-file graphs/prune-before.dot ``` `prune` is easy to use, just give it the revisions you want to prune: ```raw-file output/prune.log ``` Now the changeset is not visible any more: ```raw-file output/prune-after.log ``` But we can still access it with the `--hidden` option: ```raw-file output/prune-after-hidden.log ``` The output of `obslog` changes a bit when displaying pruned changesets: ```raw-file output/prune-after-obslog.log ``` ```graphviz-file graphs/prune-after-hidden.dot ``` ### Histedit The `hg histedit` command is a power-user command. It allows you to edit a linear series of changesets, and applies a combination of operations on them: - 'pick' to [re]order a changeset - 'drop' to omit changeset - 'mess' to reword the changeset commit message - 'fold' to combine it with the preceding changeset (using the later date) - 'roll' like fold, but discarding this commit's description and date - 'edit' to edit this changeset (preserving date) - 'base' to checkout changeset and apply further changesets from there It's similar to the `git rebase -i` command. First, let's update to the right branch: ``` $ hg update histedit ``` ```raw-file output/histedit-before-log.log ``` ```graphviz-file graphs/histedit-before.dot ``` When launching the `hg histedit` command, an editor will show up with the following contents: ```raw-file output/histedit-no-edit.log ``` Swap the first two lines with your text editor: ```raw-file output/histedit-commands.log ``` Save and exit. Histedit will apply your instructions and finish. Let's see the state of the repository: ```raw-file output/histedit-after-log.log ``` ```raw-file output/histedit-after-log-hidden.log ``` ```graphviz-file graphs/histedit-after-hidden.dot ``` ## Stack ### Stack definition One big problem when working with a DVCS to identify and switch between the different features/bugfixes you are working on. ### Named branches One solution is to use **named branches**. Named branches are a battle-tested, long-supported solution in Mercurial. Basically, a branch name is stored inside each changeset. This solution has several advantages: - It's supported in all recent-ish Mercurial versions. - It's simple to use. - Most tools are supporting it. But it also has several disadvantages: - Branches do not fade out once they are merged. You need to explicitely close them with `hg commit --close-branch`. - Branches are lost when rebasing them without the `--keepbranches` option of the `hg rebase` command. - New branches needs to be explicitly pushed with the `--new-branch` option of the `hg push` command. We will use named branches for this training, but other solutions are possible, like [topics](https://www.mercurial-scm.org/doc/evolution/tutorials/topic-tutorial.html). ### Stack The `topic` extension provides a command to show your current stack, no matter how you defined it. Let's try it on some changesets that we rewrote earlier: ``` $ hg update typo ``` ```raw-file output/stack-typo.log ``` The stack output shows three important data: - First, which branch you are working on (a.k.a. the **current** branch). - Then, all the commits that you are currently working on, with the current one highlighted. - Finally, which commit your branch is based on (**b0**). This branch is not very interesting, so let's move to another one. ``` $ hg update build/linuxsupport-v2 ``` ```raw-file output/stack-rebase.log ``` This is more interesting, as now we can see all the three changesets grouped together in the same view. The stack view provides a nice and linear view, even if the changesets are not immediate neighbors. ### Stack movement There is an easy way to navigate in your stack, the `hg next` and `hg prev` commands: ```raw-file output/stack-rebase-prev-from-b3.log ``` ```raw-file output/stack-rebase-stack-b2.log ``` And now for the `hg next` command: ```raw-file output/stack-rebase-next-from-b2.log ``` ```raw-file output/stack-rebase.log ``` The stack view also displays nice and easy relative ids for these changesets. You can use theses ids in all commands, for example with the `hg export` command: ```raw-file output/stack-rebase-export-b1.log ``` Or with the `hg update` command: ```raw-file output/stack-rebase-update-b2.log ``` These ids are handy because you don't need to manipulate changeset ids or revision numbers: contrary to the latters, the formers won't be affected by history edition. They only depend on their order in the branch. ```raw-file output/stack-rebase-stack-b2.log ``` ### Edit mid-stack Now that we are in the middle of a stack, let's try amending a commit. The current commit message ends with a dot `.`, and we want to remove it: ```raw-file output/stack-rebase-stack-b2.log ``` ```raw-file output/edit-mid-stack.log ``` The message `1 new orphan changesets` means that, by amending a changeset having a child, this child is now **orphan**, as we can see with the `hg stack` command: ```raw-file output/edit-mid-stack-after-stack.log ``` `hg stack` tries to simplify the view for you. We have amended **b2**, and **b3**'s parent is the predecessor version of **b2**, so it is not stable any more. It is now **orphan**. For once, let's use log to see in detail in which situation we are: ```raw-file output/edit-mid-stack-after-log.log ``` ```graphviz-file graphs/edit-mid-stack-after.dot ``` How can we resolve this situation? It is actually very easy, and we are going to see how in the next section. ## Basic instabilities + stabilization Instabilities are a normal step when using Evolve-powered workflows. Several tools are provided to fix them smoothly. #### Log First, let's clarify some vocabulary. An **obsolete** changeset is a changeset that has been rewritten. In the current stack, only one commit is `obsolete`: ```raw-file output/basic-stabilize-before-log-obsolete.log ``` A changeset can also be **orphan**, meaning that it could be subject to one or more **instabilities**: * **orphan**, a changeset whose an ancestor is **obsolete**. * **content-divergent**, a changeset which has been rewritten in two different versions. * **phase-divergent**, a changeset which has been both rewritten and published. For the moment, we will only see the **orphan** instability. We can display the **instabilities** of a commit with the `{instabilities}` template keyword: ```raw-file output/basic-stabilize-before-log-instabilities.log ``` Here we have also one **orphan** commit, which is the child of the **obsolete** commit. #### Evolve --list The `hg evolve` command has a `--list` option which can list all the instabilities of your repository. ```raw-file output/basic-stabilize-before-evolve-list.log ``` #### TortoiseHG Tortoise HG also has a nice support for displaying the instabilities of your repository: ![](img/thg-mid-stack.png) If you want to filter to get a better view, you can use the *revset* `branch(build/linuxsupport-v2)`: ![](img/thg-mid-stack-filter.png) #### Stabilization using `hg next --evolve` ```raw-file output/edit-mid-stack-after-stack.log ``` In our current situation, a simple solution to solve the instability is to use the `hg next` command with the `--evolve` option. It will update to the next changeset on the stack, and stabilize it if necessary: ```raw-file output/basic-stabilize-next-evolve.log ``` Here, it just rebased our old version of `b3` on top of the new version of `b2`. And now `hg stack` shows us a clean view again: ```raw-file output/basic-stabilize-after-stack.log ``` That's better! ```graphviz-file graphs/basic-stabilize-after-stack.dot ``` # Advanced ## Moving change from one commit to another Create two commits: - The first one create a new file, add some content in it. - The second one create another file and modify the first file. Now try to move the change on the first file present in the second commit back in the first commit so that the first commit contains all change on the first file and the second change contains all changes on the second file. ## Exchange Coming Soon™ hg-evolve-11.1.3/docs/tutorial/standalone.html0000666000000000000000000000630214606303052021244 0ustar rootroot00000000000000 $if(title)$$title$$endif$ $if(template_css)$ $else$ $endif$ $for(author-meta)$ $endfor$ $if(date-meta)$ $endif$ $if(title-prefix)$$title-prefix$ - $endif$$pagetitle$ $if(quotes)$ $endif$ $if(highlighting-css)$ $endif$ $for(css)$ $endfor$ $if(math)$ $math$ $endif$ $for(header-includes)$ $header-includes$ $endfor$
    $if(title)$

    $title$

    $if(date)$

    $date$

    $endif$ $for(author)$

    $author$

    $endfor$
    $endif$
    $body$
    $if(analytics)$