What is Jeka ?
Jeka is both a build library, and a thin automation tool.
The build library helps for dealing with file sets, compilation, dependency management, testing, publishing, launching external processes, crypto signatures... in a glance, all regular things you need to build/publish projects and especially Java projects. The library can be used in any Java program and does not have any dependency.
The tool aims at executing Java source code from the command line. Its design eases reuse of build elements (logic, settings, doc, ...) across projects.
Combined, it provides a full feature build tool with endless possibilities of extension.
Although library and tool are bundled in the same jar, the library does not depend on the tool at all.
What is this document for ?
This document stands for reference guide. It provides:
If you are looking for how exactly Jeka behaves, or you want to get a pretty exhaustive list of Jeka features, you are in the right place.
If you are looking for further details about API, please consult Javadoc or source code. Jeka source code has been written with intelligibility in mind in order to navigate easily from the user code to the Jeka engine room. For Java developers, reading source code and putting break points troubleshoots faster than documentation/support most of the time.
Jeka philosophy is to be transparent and easy to master. We hope that no user will ever feel the need to buy some trainings or books to master it.
The following concepts are used all over the tool section :
[PROJECT DIR] : Refers to the root folder of the project to build (or to run Jeka methods on). This is where you would put pom.xml or build.xml files.
[JEKA HOME] : Refers to the folder where Jeka is installed. You should find jeka.bat and jeka shell scripts at the root of this folder.
[JEKA USER HOME] : Refers to the folder where Jeka stores caches, binary repository and global user configuration. By default it is located at [USER DIR]/.jeka.
Def Classes : Java source files located under [PROJECT DIR]/jeka/def. They are compiled on the flight by Jeka when invoked from the command line.
Def Classpath : Classpath on which depends def classes to get compiled and Jeka classes to be executed. By default, it consists in Jeka core classes. it can be augmented with any third party lib or def Classpath coming from another project. Once def classes sources have been compiled, def Classpath is augmented with their .class counterpart.
Jeka Classes : Classes extending JkClass
. Their commands can be invoked from the command line and
their pubic fields set from the command line as well. Generally def classes contains one Jeka class though there can be many or
none. CommandSet class can be a def class but can also be imported from a library or external project.
Jeka Methods : Java methods from Jeka classes which are invokable from Jeka command line. They must be instance method (not static), public, zero-args and returning void. Every method verifying these constraints is a command.
Options : This is a set of key-value used to inject parameters. Options can be mentioned as command line arguments, stored in specific files or hard coded in Jeka classes.
, the Jeka tool consists in an engine able to run Java/Kotlin source code or compiled code from the command line.
Generally this code is intended to build Java projects but it can be used for any purpose.
In practice, your project has a structure respecting the following layout :
[Project Dir]
|
+ jeka
+ boot <-------- Put extra jars here to augment def Classpath.
+ def
+ MyCommands.java <----- Class extending JkClass
+ MyUtility.java <---- Utility class consumed by MyCommands
+ OtherUtility.kt <---- Kotlin code is also accepted
+ output <---- Build artifacts are generated here
+ src
+ main
+ java
+ resources
+ ...
A command class may look like :
import dev.jeka.core.tool.JkClass;import dev.jeka.core.tool.JkDefClasspath;import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.GetMethod;
import dev.jeka.core.tool.JkDoc;
import com.google.common.base.MoreObjects;
@JkDefClasspath("commons-httpclient:commons-httpclient:3.1") // Imports 3rd party library to be used by def classes
@JkDefClasspath("com.google.guava:guava:21.0")
public class MyCommands extends JkClass { // The command class
public String myParam1 = "myDefault"; // Overridable by injecting options in command line
@JkDoc("Performs some tasks using http client") // Only for self documentation purpose
public void myMethod1() { // Run method (callable from command line)
HttpClient client = new HttpClient();
GetMethod getMethod = new GetMethod("http://my.url/" + myParam1);
....
}
public void myMethod2() { // An other run method
MyUtility.soSomething();
...
}
}
From [Project Dir], you can invoke any command method defined on MyCommands
class from the command line.
For example, executing jeka myMethod1 myMethod2 -myParam1=foo
does the following :
MyCommands
instance,myParam1
field,myMethod1()
,myMethod2()
.If no command class are present in def classes, Jeka picks JkClass
. In despite this class
does not provide any particular methods, you can still perform full Java builds by invoking built-in 'java' plugin.
For such, execute jeka clean java#pack
(See Plugins).
Executing jeka
or jeka help
on command line displays all run methods and options for the current command class.
The following chapters detail about how the mechanism works and what you can do with.
This chapter describes how to use Jeka with command line and mostly what happens behind the cover when Jeka is run.
Jeka is a pure Java application requiring JDK version 8 or higher. JDK is required and JRE is not sufficient as Jeka uses the JDK tools to compile def classes.
Jeka classes can be launched both from command line and from your IDE as regular Java main method.
To ease launching Java processes from command line, Jeka provides shell script jeka.bat
(for Windows) and jeka
(for Unix like).
They are located at root of JEKA HOME which is supposed to be in your PATH environment variable.
This script does the following :
Find the java executable by looking at, in order :
JEKA_JDK
environment variableJAVA_HOME
environment variablePATH
environment variable.The java
executable must be one from a JDK and not a JRE, as Jeka needs javac
to compile DEF CLASSES.
Get java execution option : If an environment variable JEKA_OPTS
exists then its value is passed to the java
command line parameters.
Get the classpath in the following order :
Run java class dev.jeka.core.tool.Main
passing the command line argument as is.
Jeka entry point is dev.jeka.core.tool.Main#main
method.
1. Parse the command line.
2. Populate system properties from configuration files and command line.
3. Construct DEF CLASSPATH by parsing DEF CLASSES source code.
4. Compile DEF CLASSES using DEF CLASSPATH.
5. Select the Jeka class to be run.
6. Instantiate selected Jeka class, inject options and bind plugins on it.
7. Invoke methods specified in command line arguments : methods are executed in the order they appear on the command line.
The following sub-sections detail about these steps.
Jeka parses the command line and processes each arguments according the following pattern :
Argument starts with @
: This is a library import clause : the text just next to, is added to the def Classpath.
For example jeka myMethod @dev.jeka:an-extra-plugin:3.3
augments the def Classpath with the an-extra-Plugin jar.
This is similar to annotate a def class with @JkDefClasspath("dev.jeka:an-extra-plugin:3.3")
.
This is intended to modifiate behavior of Jeka class by plugins dynamically.
Argument starts with -
: This is an option declaration. The content following is is expected to be formatted as optionName=optionValue.
For example, `-repo.def.url=http://my.repo.milestone/' will inject 'http://my.repo.milestone/' in the 'repo.def.url' Jeka option.
In other cases : argument is considered as a Jeka (method) to be invoked on the Jeka class instance.
Jeka loads system properties in order from :
The last loaded properties override the previous ones if there is some conflicts.
Jeka follows a similar process to load options. It loads in order :
The last loaded options override the previous ones if there is some conflicts.
In order to compile DEF CLASSES, Jeka has to compute DEF CLASSPATH first. With Jeka you can specify dependencies
directly inside the source code using @JkDefClasspath
or @JkDefImport
annotations as shown below.
@JkDefClasspath("commons-httpclient:commons-httpclient:3.1")
@JkDefClasspath("com.google.guava:guava:18.0")
@JkDefClasspath("../local/library/bin")
public class HttpClientTasks extends JkClass {
@JkDefImport("../another/project/using/jeka")
private FooCommands fooCommands; // FooCommands is a JkClass coming from another project
...
To achieve this, Jeka parses source code of all classes under jeka/def and add the detected imports to the def Classpath. Note that classes having a name starting by a '_' are skipped.
When a dependency is expressed as a maven/ivy module, Jeka tries to resolve it against a binary repository.
Jeka defines this url by looking at following options, in order :
repo.defName
and repo.${repo.defName}.url
(example : repo.defName=build_repo, repo.build_repo.url=https://my.buid.repo/url )repo.def.url
repo.download.url
If a repository needs credentials, you need to supply it through Jeka options repo.[repo name].username
and repo.[repo name].password
.
Note that you can define several urls for a repo.[repo name].url
by separating then with coma (as repo.def.url=http://my.repo1, http://my.repo2.snapshot
).
As with other repo, if the download repository is an Ivy repo, you must prefix url with ivy:
so for example you'll get repo.def.url=ivy:file://my.ivy/repo
.
Jeka compiles def class source files prior to execute it. Def class source files are expected to be in [PROJECT DIR]/jeka/def. Classes having a name starting by a '_' are skipped. If this directory does not exist or does not contains java sources, the compilation is skipped. Compilation occurs upon the following classpath :
It outputs class files in [PROJECT DIR]/jeka/.work/def-classes directory.
Jeka uses the compiler provided by the running JDK.
Once compiled, Jeka augments the def Classpath with classes compiled in previous step. Then it selects one Jeka class from def classpath and instantiate it.
The selection logic is :
-JekaClass
option (shorthand -JKC
) is specified, then Jeka selects a class having the same name or same
short name among JkClasses present in def classpath.SomeCommands
will be selected prior apackage.SomeCommands
, and aa.bb.SomeCommands
will be selected prior ab.OtherCommands
.JkClass
class.The Jeka class instantiation process is defined in ork.jeka.tool.JkClass#of
factory method. It consists in :
JkPlugin#beforeSetup
method)JkClass#setup
method on COMMAND CLASS. This method is supposed to be override to set specific settings.JkPlugin#afterSetup
method on each bound plugins.Jklass#postSetup
on Jeka class. This method might be override.Once Jeka class instance is ready, Jeka invokes instance methods mentioned in command line as jeka myFistMethod mySecondMethod ...
.
Jeka invokes methods, in same order they appear in command line regardless if method is defined on the Jeka class itself or in a plugin.
In order a method to be considered as a Jeka method (invokable from Jeka command line), it must :
If Jeka command line specifies no method, then Jeka invokes help
.
If an exception is thrown during the execution, Jeka displays full stack trace on the console except if
this is a JkException
. In this case, Jeka displays only the message.
In order your IDE compiles and launches your def classes, you must ensure that project/module classpath contains :
dev.jeka.jeka-core.jar
(found in Jeka distrib)@JkDefClasspath
annotations of your def classes.@JkDefImport
annotations of your def Jeka classes.Plugin methods eclipse#files
and intellij#iml
achieve this for you.
If launched from the IDE, def classes are already compiled and the classpath already set by the IDE. This leads in a simpler and faster process.
To launch Jeka from your IDE, you can go two ways :
One is to create a main method in one of your def classes as below and invoke it.
public static void main(String[] args) {
JkInit.instanceOf(MyCommands.class, args).doSomething();
}
The JkInit#instanceOf
method loads options from args and instantiates Jeka classes. Then user can
configure it using hard coding prior launching any method programmatically.
The other way is to launch Main
method from your IDE with same arguments as you would do with command line.
Jeka offers a wrapper mechanism (similar to Maven and Gradle) to let execution independent of the Jeka version installed in host machine. This is the recommended way of using Jeka.
The wrapper consists in :
When executed in place of jeka, jekaw invoke the wrapper jar. This jar downloads the specified version of Jeka and pass the arguments to Jeka main class.
To start a project with a Jeka wrapper, just execute jeka scaffold#wrap at the root of the project. It will add the mentioned files above to your project. Then just invoke jekaw or ./jekaw in place of jeka.
If you are using multi-project structure, you don't have to scaffold wrapper on each. Just scaffold Jeka at a single place in your multi-project structure (for example in the root dir or in the 'master' project) and invoke it always from the sub project you want to build.
For example execute ../jekaw clean java#pack
if the sub-project you want to build is
located in a sub-directory of the root dir.
Embedded mode is the most aggressive strategy to not depend on the host machine. It consists in embedding Jeka tool itself within the project.
When launched from command line, [JEKA_HOME]/dev.jeka.jeka-core.jar comes after [WORKING_DIR]/jeka/boot/* in def classpath. This means that if a version of Jeka (dev.jeka.jeka-core.jar) is in this directory, the run will be processed with this instance of Jeka instead of the one located in in [JEKA HOME].
This is called the Embedded mode. The Jeka tool is embded within your project so the run does not depend of the presence and version of Jeka installed in the host machine.
__Enable embedded mode : __
To enable embedded mode :
Jeka is provided with a scaffold plugin that do it for you : just execute jeka scaffold#run -scaffold#embed
.
Run in embedded mode :
You can go two ways :
jeka myFunction ...
as you would do in regular mode. This works only if you have copied jeka/jeka.bat shell scripts into [PROJECT DIR]java -cp jeka/boot/* Main myFunction ...
from [PROJECT_DIR] .Jeka uses user directory to store user-specific configuration and cache files, in this document we refer to this directory using [Jeka User Home].
By default this directory is located at [User Home]/.jeka ([User Home] being the path given by System.getProperty("user.home");
.
You can override this setting by defining the JEKA_USER_HOME
environment variable.
Jeka uses Apache Ivy under the hood to handle module dependencies. Ivy downloads and stores locally artifacts consumed by projects.
By default the location is [JEKA USER HOME]/cache/repo but you can redefine it by defining the JEKA_REPO
environment variable.
You can get this location programmatically using JkLocator.getJekaRepositoryCache()
method.
The Jeka displays the effective path at the very start of the process if launched with -LogHeaders=true
option :
For example, jeka help -LogHeaders
will output :
_______ _
(_______) | |
_ _____| | _ _____
_ | | ___ | |_/ |____ |
| |_| | ____| _ (/ ___ |
\___/|_____)_| \_)_____|
The 100% Java build tool.
Working Directory : C:\Users\me\IdeaProjects\playground\jeka-sample
Java Home : C:\Program Files (x86)\Java\jdk1.8.0_121\jre
Java Version : 1.8.0_121, Oracle Corporation
Jeka Version : Xxxxx
Jeka Home : C:\Users\me\IdeaProjects\jeka\dev.jeka.core\jeka\output\distrib
Jeka User Home : C:\Users\me\.jeka
Jeka Repository Cache : C:\Users\me\.jeka\cache\repo
...
When using command line, Jeka accepts many ways of injecting parameters :
In Jeka code, environment variable can be captured in two ways :
System#getenv
method@JkEnv
. This way, the environment variable mentioned in annotation will be
injected in the annotated field.Note : JkOption mechanism takes precedence on environment variable injection.
In Jeka code, System properties needs to be read using the JDK System#getProperty
method.
System properties can be mentioned through (first overrides last):
Jeka doDefault -DmyProperty=myValue
.Note : In every case, defined system properties are injected after the creation of the java process (via System#setProperty
method).
Jeka -options_ are similar to system properties as it stands for a set of key/value but they reside in a static map
declared in JkOptions
class.
Options can be mentioned through (first overrides last):
Jeka doDefault -myOption=myValue
.Note : for boolean options, when no value is specified, true
will be used as default.
In Jeka code, options can be captured in two ways :
JkOptions
class.For example, if a field is declared as :
class MyRun extends JkCommandSet {
public int size = 10;
...
}
Then you can override the value by mentioning in command line jeka doSomething -size=5
.
Handled types are :
If the value is not parsable to the target type, commands fails.
To get a precise idea on how types are converted see this code.
Composite options are a way to structure your options in a tree-like structure. The example below group all server related option into a single one.
class MyRun extends JkClass {
public Server deployServer = new Server();
public static class Server {
public String url;
public String userName;
public String password;
}
}
Then the option name need to contain the full object path.
deployServer.url=http:/myServer:8090/to
deployServer.username=myUsername
deployServer.password=myPassword
Option field can be annotated with @JkDoc
in order to provide a description when jeka help
is executed.
@JkDoc("Make the test run in a forked process")
public boolean forkTests = false;
Jeka defines some built-in options that are used by the engine itself. jeka help
lists these standard options
In each Jeka project, you can add a property file at [PROJECT DIR]/jeka/cmd.properties to define command line arguments
to append automatically to the command line.
For such, you must define a _append
property in. This is especially useful when you want to rely on convention
instead of writing a JkClass
for your build.
This example shows how to activate Java plugin by default.
_append = java#
Jeka provides a pluggable architecture. In Jeka, a plugin is a class extending JkPlugin
and named as JkPlugin[PluginName] (i.e. JkPluginJava
for java plugin).
The plugin name is inferred from Plugin class name.
Jeka is bundled with a bunch of plugins (java, scaffold, eclipse, intellij, ...), but one can add extra plugins just by adding a plugin class to the def classpath in def sources or as an external dependency.
To see all available plugins in the def classpath, just execute jeka help
.
Each instantiated plugin is bound to a JkClass
object with 1..1 relationship. There could not be 2 plugin instances of the same
type bound to the same JkClass
instance.
Plugins have 3 capabilities :
JkClass
instance so to other plugins bound to it.For example, Jacoco Plugin
does not provide Jeka method but configures 'java' plugin in such unit tests are forked on a JVM with Jacoco agent on.
It also provides a utility class JKocoJunitEnhancer
that supplies lower level features to launch Jacoco programmatically.
Some other plugins does not modify their owning Jeka class instance. For instance, Scaffold Plugin just exposes methods to scaffold new Jeka projects.
To invoke foo plugin from command line, execute jeka -foo#option1=false foo#doSomething
.
Plugins can access to other plugins of the same JkClass
instance in order to extend them.
For example, java plugin augment scaffold pluging such it produces a Jeka class declaring 'java' plugin when 'scaffold#run' is executed. It also creates Java project folders and files.
This is achieved using JkPlugin lifecycle methods. Find documentation inside JkPlugin.
Plugins uses same mechanism as JkClass
to provide self-documentation. See example here
Plugins can be explicitly declared in a JkClass in order to be configured or invoked inside it.
import dev.jeka.core.tool.builtins.java.JkPluginJava;
public class MyBuild extends JkClass {
JkPluginJava java = getPlugin(JkPluginJava.class); // This bind the 'java' plugin to MyBuild instances.
}
This is not necessary to declare a plugin in JkClass
in order to invoke it.
It can be done dynamically from the command line.
For example, jeka scaffold#run java#
will :
run
method of the scaffold plugin.
This will result in scaffolding a Java project for Jeka. If java#
was ommited, it would
result in a scaffold of a simple automation project.There are 3 places where you can configure plugins :
JkClass
constructor : at this point options has not yet been injected, so it's the place to configure default option values.JkClass#setup
: at this point, options has been injected.
This is the place to configure plugins and other instance members.JkClass#postSetup
: at this point, plugins has done their configuration job. So it is the place
to override plugin settings, if needed.Plugin authors can leverage plugin lifecycle plugin to perform configuration before or after the setup is invoked. See JkPlugin for further details
public class MyBuild extends JkClass {
private JkPluginSonar sonarPlugin = getPlugin(JkPluginSonar.class); // Bind sonar plugin
@Override
public setup() {
sonarPlugin.prop(JkSonar.BRANCH, "myBranch"); // define a default for sonar.branch property
}
Jeka own build class makes a good example.
As Jeka API is likely to evolve (less and less), plugin authors can mention the Jeka lower version
in MANIFEST entry Jeka-Lowest-Compatible-Version
of the plugin jar.
It is also possible to mention the highest version on Jeka, a plugin version is compatible with. As this information is unknown at the time of publishing the plugin, a mechanism based on a central registry keeps track this information.
It consists of publishing a specific format flat file on a url. The url may be mentionned in MANIFEST
entry Jeka-Breaking-Change-Url
of the plugin jar.
The file contains the versions that start breaking compatibility.
Project repository might host this registry.
A working example is available for spring-boot plugin.
The breaking_versions.txt
is accessible at https://raw.githubusercontent.com/jerkar/springboot-plugin/master/breaking_versions.txt
declared in JkPluginSpringboot
as :
There is many way to perform multi-project build. One of is to import runs from external projects.
A Jeka class instance can import Jeka class instances from other projects.
The current def classpath is augmented with the def classpath of imported projects.
Imported runs are not aware they are imported. In fact any run can be imported. The relation is uni-directional.
To import a Jeka class from an external project, use the @JkDefImport
annotation as shown below :
public class MyCommands extends JkCommandSet {
@JkDefImport("../otherProject")
private BarCommands importedCommands;
public void doSomesthing() {
importedCommands.doBar(); // use the command class defined in ../otherProject
...
CommandSet classes are imported transitively, this means that, in above example, if BarCommands
imports an other project, this
last will be also imported.
Options mentioned in command line are propagated to the imported Jekas.
So for example you execute jeka java#pack -java#tests.fork
, test will be forked for the main run and all imported ones.
Methods mentioned in the command line are not automatically propagated to imported runs. Executing jeka clean
will
only clean the current run project.
To propagate method call to every imported Jeka classes, method name should be prefixed with a '*'. Executing jeka clean*
will
invoke 'clean' method on the current Jeka class along along all imported Jeka classes.
You can access to the list of imported Jeka classes within using JkCommandSet#getImportedCommandSets
methods as show below :
public class MyRun extends JkCommandSet {
...
public void doForAll() {
this.clean();
this.getImportedCommandSets().getAll().forEach(JkRun::clean);
this.getImportedCommandSets().getAllOf(JkJavaProjectBuild.class).forEach(build -> build.java().pack());
}
CommandSet classes and plugins can provide self documentation.
When properly auto-documented, users can display documentation by executing jeka help
.
The displayed documentation consist in :
@JkDoc
annotation at class level.@JkDoc
.@JkDoc
annotation on public fields.If Jeka class or plugin declares a public instance field without @JkDoc
annotation, then it will be displayed in help screen but mentioning that there is no description available.
If Jeka class or plugin declares a command without @JkDoc
, it will be also displayed in help screen but mentioning that there is no description available.
This is the display screen for the Jeka project Jeka class :
Usage: jeka [methodA...] [pluginName#methodB...] [-optionName=value...] [-pluginName#optionName=value...] [-DsystemPropName=value...]
Execute the specified methods defined in Jeka class or plugins using the specified options and system properties.
When no method specified, 'doDefault' method is invoked.
Ex: jeka clean java#pack -java#pack.sources=true -LogVerbose -other=xxx -DmyProp=Xxxx
Built-in options (these options are not specific to a plugin or a build class) :
-LogVerbose (shorthand -LV) : if true, logs will display 'trace' level logs.
-LogHeaders (shorthand -LH) : if true, meta-information about the build creation itself and method execution will be logged.
-LogMaxLength (shorthand -LML) : Console will do a carriage return automatically after N characters are outputted in a single line (ex : -LML=120).
-CommandClass (shorthand -CC) : Force to use the specified class as the Jeka class to be invoked. It can be the short name of the class (without package prefix).
Available methods and options :
From class CoreBuild :
Methods :
doDefault : Conventional method standing for the default operations to perform.
Options :
-testSamples (boolean, default : false) : If true, executes black-box tests on sample projects prior ending the distrib.
From class JkCommandSet :
Methods :
clean : Cleans the output directory.
help : Displays all available methods defined in this build.
Available plugins in classpath : eclipse, eclipsePath, intellij, jacoco, java, pgp, pom, repo, scaffold, sonar.
Type 'jeka [pluginName]#help' to get help on a perticular plugin (ex : 'jeka java#help').
Type 'jeka help -Plugins' to get help on all available plugins in the classpath.
Jeka contains a library for all regular things you need to build/publish projects and especially Java projects.
It can be embedded in a tool or used in a simple main
method though the most commonn usage is to be used from Jeka tool.
The Jeka-core jar embeds third party jars as Ivy or BouncyCastle. Those are not visible/accessible to client code due to a specific classloading mechanism, preventing version clashing with client dependencies.
Jeka tries to stick with a consistent API design style.
Class and Interface Naming Convention
All Jeka public classes/interfaces start with Jk
. The reason is for easing distinction, in IDE, between classes supposed be used
in production or test and the ones used for building. It also helps to explore Jeka API.
Mutable Vs Immutable
As a rule of thumb Jeka favors immutable objects for shallow structures and parent-chaining trees for deeper ones. Both provide a fluent interface when possible.
Instantiation
All objects are instantiated using static factory methods. Every factory method names start with of
.
Read Accessors
All accessor method names (methods returning a result without requiring IO, only computation) starts with get
.
Withers/Anders for Immutable Objects
To create a subtly different object from another immutable one, Jeka provides :
with
when a property is to be replaced by another.and
when a collection property is to be replaced by the same one plus an extra element.minus
when a collection property is to be replaced by the same one minus a specified element.Setters/Adders for Mutable Objects
To modify a mutable object, Jeka provides :
set
to replace a single property value by another.add
to add a value to a collection property.
Those methods return the object itself for chaining.Translators
To translate an object to another representation (for example a JkDependencySet
to a list of JkScopedDependency
)
Jeka provides methods starting with to
.
The previous example demonstrates how the Java/project API can be used to build and publish Java projects. This API relies on other lower level ones provided by Jeka. In a glance these are the domains covered by the Jeka APIs :
File manipulation is a central part for building software. Jeka embraces JDK7 java.nio.file API by adding some concepts around, to provide a powerful fluent style API performing recurrent tasks with minimal effort.
The following classes lie in dev.jeka.core.api.file
package:
JkPathFile
A simple wrapper for files (not folders). It provides copying, interpolation, checksum, deletion and creation methods.
JkPathSequence
An Immutable sequence of java.nio.file.Path
providing methods for filtering or appending.
JkPathMatcher
An immutable java.nio.file.PathMatcher
based on java.nio.file
glob pattern or regerxp.
Used by JkPathTree
to filter in/out files according name patterns.
JkPathTree
An Immutable root folder (or a zip file) along a PathMatcher
providing operations to copy, navigate, zip or iterate.
This is a central class in Jeka API.
JkPathTreeSet
An Immutable set of JkPathTree
. Helpful to define set of sources/resources and create jar/zip files.
JkResourceProcessor
A mutable processor for copying a set of files, preserving the structure and
replacing some text by other text. Typically, used for replacing token as ${server.ip}
by an actual value.
// creates a file and writes the content of the specified url.
JkPathFile.of("config/my-config.xml").createIfNotExist().replaceContentBy("http://myserver/conf/central.xml");
// copies all non java source files to another directory preserving structure
JkPathTree.of("src").andMatching(false, "**/*.java").copyTo("build/classes");
// One liner to zip an entire directory
JkPathTree.of("build/classes").zipTo(Paths.get("mylib.jar"));
The dev.jeka.core.api.system
package provides system level functions :
JkInfo
Provides meta information as the running version of Jeka.
JkLocator
Provides information about where is located repository cache or Jeka user home.
JkLog
Provides API to log Jeka event. It supports hierarchical logs through #startTask
and #endtask
methods.
JkProcess
Launcher for external process.
JkPrompt
One-liner to ask user input.
Dependency management API let define, fetch and publish dependencies. Api classes belong to dev.jeka.core.api.depmanagement
package
For Jeka, a dependency is something that can be resolved to a set of files by a JkDependencyResolver
.
Generally a dependency resolves to 1 file (or folder) but it can be 0 or many.
A dependency is always an instance of JkDependency
.
Jeka distinguishes mainly 3 types of dependency :
JkFileSystemDependency
class). These files are assumed to be present on the file system when the build is running.JkComputedDependency
class). These files may be present on file system or not. If they are not present, the computation is run in order to produce the missing files. Generally the computation stands for the build of an external project.JkModuleDependency
) hosted in a binary repository (Ivy or Maven for instance) : Jeka can consume and resolve transitively any artifact located in a repository as you would do with Maven, Ivy or Gradle.For the last, Jeka is using Ivy 2.5.0 under the hood. Jeka jar embeds Ivy and executes it in a dedicated classloader to be hidden for client code.
A dependencySet (JkDependencySet
) is an ordered bunch of dependencies used for a given purpose (compilation,
war packaging, testing, ...). It can contain any kind of JkDependency
. See here
dependencySet also defines :
It is designed as an immutable object where we can apply set theory operations for adding, removing, merging with other dependencies and dependencySet.
Mainstream build tools use a single concept ('scope' or 'configuration') to determine both :
This confusion leads in dependency management systems that are bloated, difficult to reason about and not quite flexible. Gradle comes with a proliferation of 'configurations' to cover most use case combinations, while Maven narrows 'scopes' to a fewer less but with limitations and not-so-clear transitivity/publish rules.
In the opposite, Jeka distinguishes clearly the three purposes :
Jeka defines by default, 3 levels of transitivity :
Reminder : on Maven repositories, published poms can declare only two scopes for transitive dependencies : 'compile' and 'runtime'.
For Ivy repositories, it is possible to declare a specific transitivity that maps to a slave 'configuration'.
The below example shows a JkJavaProject declaration using explicit transitivity.
JkJavaProject.of().simpleFacade()
.setCompileDependencies(deps -> deps
.and("com.google.guava:guava:23.0", JkTransitivity.NONE)
.and("javax.servlet:javax.servlet-api:4.0.1"))
.setRuntimeDependencies(deps -> deps
.and("org.postgresql:postgresql:42.2.19")
.withTransitivity("com.google.guava:guava", JkTransitivity.RUNTIME)
.minus("javax.servlet:javax.servlet-api"))
.setTestDependencies(deps -> deps
.and(Hint.first(), "org.mockito:mockito-core:2.10.0")
)
It results in :
Declared Compile Dependencies : 2 elements.
com.google.guava:guava:23.0 transitivity:NONE
javax.servlet:javax.servlet-api:4.0.1
Declared Runtime Dependencies : 2 elements.
com.google.guava:guava:23.0 transitivity:RUNTIME
org.postgresql:postgresql:42.2.19
Declared Test Dependencies : 4 elements.
org.mockito:mockito-core:2.10.0
com.google.guava:guava:23.0 transitivity:RUNTIME
org.postgresql:postgresql:42.2.19
javax.servlet:javax.servlet-api:4.0.1
The dependencies without any transitivity specified on, will take default transitivity for their purpose, namely COMPILE for compile dependencies, and RUNTIME for runtime and test dependencies.
The API allows to redefine the transitivity declared in a upper dependency set.
Note that transitivity can only apply to JkModuleDependency
(like com.google.guava:guava:23.0)
and JkLocalProjectDependency
.
Here is an example of JkDependencySet
instantiation.
import static dev.jeka.core.api.depmanagement.JkScopes.*;
...
JkDependencySet deps = JkDependencySet.of()
.and("com.google.guava")
.and("org.slf4j:slf4j-simple")
.and("com.orientechnologies:orientdb-client:2.0.8")
.andFile("../libs.myjar")
.withVersionProvider(myVersionProvider);
Note that :
Module version and scopes can be omitted when declaring dependencies. Versions can be provided by a JkVersionProvider
and scopes can be defaulted.
Instances of JkDependencySet
can be combined together in order to construct large dependencySet from smaller ones.
JkDependencySet#ofTextDescription
provides a mean to instantiate a dependency set from a simple text as :
- COMPILE+RUNTIME
org.springframework.boot:spring-boot-starter-thymeleaf
org.springframework.boot:spring-boot-starter-data-jpa
- RUNTIME
com.h2database:h2
org.liquibase:liquibase-core
com.oracle:ojdbc6:12.1.0
- TEST
org.springframework.boot:spring-boot-starter-test
org.seleniumhq.selenium:selenium-chrome-driver:3.4.0
org.fluentlenium:fluentlenium-assertj:3.2.0
org.fluentlenium:fluentlenium-junit:3.2.0
- COMPILE
org.projectlombok:lombok:1.16.16
This is for declaring a dependency on module hosted in Maven or Ivy repository. Basically you instantiate a JkModuleDepency
from it's group, name and version.
JkDependencySet.of()
.and(JkPopularModule.GUAVA, "18.0")
.and("com.orientechnologies:orientdb-client:[2.0.8, 2.1.0[")
.and("mygroup:mymodule:myclassifier:0.2-SNAPSHOT");
There is many way to indicate a module dependency, see Javadoc for browsing possibilities.
Note that :
-SNAPSHOT
has a special meaning : Jeka will consider it "changing". This means that it won't cache it locally and will download the latest version from repository.You just have to mention the path of one or several files. If one of the files does not exist at resolution time (when the dependency is actually retrieved), build fails.
JkDependencySet of()
.andFile("libs/my.jar")
.andFile("libs/my.testingtool.jar", TEST);
}
It is typically used for multi-modules or multi-techno projects.
The principle is that if the specified files are not found, then the computation is run in order to generate the missing files. If some files still missing after the computation has run, the build fails.
This mechanism is quite simple yet powerful as it addresses following use cases :
JkArtifactProducer
). A Jeka Java project is an artifact producer.The generic way is to construct this kind of dependency using a java.lang.Runnable
.
The following snippet constructs a set of dependencies on two external projects : one is built with Maven, the other with Jeka.
Path mavenProject = Paths.get("../a-maven-project");
JkProcess mavenBuild = JkProcess.of("mvn", "clean", "install").withWorkingDir(mavenProject);
Path mavenProjectJar = mavenProject.resolve("target/maven-project.jar");
JkJavaProject externalProject = JkJavaProject.ofSimple(Paths.get("../a-jeka-project"));
JkDependencySet deps = JkDependencySet.of()
.and(JkComputedDependency.of(mavenBuild, mavenProjectJar))
.and(externalProject);
The JkDependencyResolver
class is responsible JkDependencyResolver.of(JkRepo.ofMavenCentral());to resolve dependencies by returning JkResolveResult
from a
JkdependencySet
.
JkDependencySet deps = JkDependencySet
.of("org.apache.httpcomponents:httpclient:4.5.3")
.andFile("libs/my.jar");
// Module dependencies are fetched from Maven central repo
JkDependencyResolver resolver = JkDependencyResolver.of(JkRepo.ofMavenCentral());
JkResolveResult result = resolver().resolve(deps);
From the result you can :
JkDependencyNode slfjApiNodeDep = result.getDependencyTree().getFirst(JkModuleId.of("org.slf4j:slf4j-api"));
System.out.println(slfjApiNode.getModuleInfo().getResolvedVersion());
JkPathSequence sequence = result.getFiles();
sequence.forEach(System.out::println); // print each files part of the dependency resolution
The following snippets captures the resolved dependency files for COMPILE scope. Junit is excluded from this result.
JkDependencySet deps = JkDependencySet.of()
.and("org.slf4j:slf4j-simple", COMPILE_AND_RUNTIME)
.and("junit:junit:4.11", TEST);
Iterable<Path> files = JkDependencyResolver.of(JkRepo.ofMavenCentral()).resolve(COMPILE).getFiles();
Jeka is able to publish on both Maven and Ivy repository. This includes repositories as Sonatype Nexus.
Maven and Ivy have different publication model, so Jeka proposes specific APIs according you want to publish on a Maven or Ivy repository.
Jeka proposes a complete API to pubish on Maven repository. POM files will be generated by Jeka according provided elements.
The following snippet demonstrate a pretty sophisticated publishing on Maven :
JkVersionedModule versionedModule = JkVersionedModule.of("org.myorg:mylib:1.2.6");
JkDependencySet deps = JkDependencySet.of()
.and("org.slf4j:slf4j-simple", COMPILE_AND_RUNTIME)
.and("junit:junit:4.11", TEST);
JkMavenPublication mavenPublication = JkMavenPublication.of(Paths.get("org.myorg.mylib.jar"))
// the following are optional but required to publish on public repositories.
.and(Paths.get("org.myorg.mylib-sources.jar"), "sources")
.and(Paths.get("org.myorg.mylib-javadoc.jar"), "javadoc")
.withChecksums("sha-2", "md5")
.withSigner(JkPgp.of(Paths.get("myPubring"), Paths.get("mySecretRing"), "mypassword"))
.with(JkMavenPublicationInfo.of("My sample project",
"A project to demonstrate publishing on Jeka",
"http://project.jeka.org")
.andApache2License()
.andDeveloper("djeang", "myemail@gmail.com", "jeka.org", "http://project.jeka.org/"));
// A complex case for repo (credential + signature + filtering)
JkRepo repo = JkRepo.of("http://myserver/myrepo")
.withOptionalCredentials("myUserName", "myPassword")
.with(JkRepo.JkPublishConfig.of()
.withUniqueSnapshot(false)
.withNeedSignature(true)
.withFilter(mod -> // only accept SNAPSHOT and MILESTONE
mod.getVersion().isSnapshot() || mod.getVersion().getValue().endsWith("MILESTONE")
));
// Actually publish the artifacts
JkPublisher publisher = JkPublisher.of(repo);
publisher.publishMaven(versionedModule, mavenPublication, deps);
Notice that Jeka allows to :
JkRepoSet
instead of a JkRepo
.To sign with PGP, no need to have PGP installed on Jeka machine. Jeka uses Bouncy Castle internally to sign artifacts.
Publishing on Ivy repo is pretty similar than on Maven though there is specific options to Ivy.
JkVersionedModule versionedModule = JkVersionedModule.of("org.myorg:mylib:1.2.6-SNAPSHOT");
JkDependencySet deps = JkDependencySet.of()
.and("org.slf4j:slf4j-simple", COMPILE_AND_RUNTIME)
.and("junit:junit:4.11", TEST);
JkIvyPublication publication = JkIvyPublication.of(Paths.get("org.myorg.mylib.jar"), "master")
.and(Paths.get("org.myorg.mylib-sources.jar"));
JkRepo repo = JkRepo.ofIvy(Paths.get("ivyrepo"));
JkPublisher publisher = JkPublisher.of(repo);
publisher.publishIvy(versionedModule, publication, deps, JkJavaDepScopes.DEFAULT_SCOPE_MAPPING,
Instant.now(), JkVersionProvider.of());
Jeka features high-level and low-level classes to deal with Java builds and JVM concepts.
Base classes are used as foundation for implementing Jeka high-level build API but they can be used directly in a low level build description.
These classes belong to dev.jeka.core.api.java
package.
JkClassLoader
and JkUrlClassloader
Wrap a java.lang.ClassLoader
adding convenient methods and classpath scanning capability.
JkClassPath
A sequence of file to be used as a class path
.
JkJarPacker
A simple utility tyo create Jar or fat Jar file from compiled classes.
JkJavaCompiler
Wraps either a Java Compiler tool, nor a javac process.
JkJavadocProcessor
A Java source processor producing standard Javadoc
JkJavaProcess
A utility to launch Java process (from class dirs or jars)
JkManifest
Stands for the manifest file to include in jar files.
Jeka features a simple yet powerful API to launch tests. It relies entirely on JUnit5.,nThis means that any test framework supported by Junit5 platform, is also supported by Jeka. Jeka also supports Junit4 out-of-the-box through the embedded vintage engine.
Jeka testing API mostly hides Junit Platform. For most of the cases, you won't need to code against Junit-Platform API to launch tests with Jeka. Nevertheless, Jeka allows users to code against Junit-Platform for fine-tuning.
The API classes all belongs to dev.jeka.core.api.java.testing
package.
JkTestProcessor
This is the entry point to launch tests. Tests are executed using the
current classloader classpath + extra class path mentioned in #launch
method arguments.
JkTestResult
The result of a test launch : count for found, failure, skip, success ...
JkTestSelection
A mean to determine which test to launch. It can be set using file or tag filter. It is
also possible to code against JUnit Platform
This is the Jeka high-level API to build Java/JVM project. API classes belong to dev.jeka.core.api.java.project
package.
It introduces the concept of JkJavaProject
from where is performed compilation, testing, resources processing, packaging, publication and more.
JkJavaProject
is the root of a deep structure embracing the parent-chaining pattern for readability.
The API contains a lot of extension points to add specific behaviors.
For simplicity sake, JkJavaProject
provides a facade in order setup most of projects friendly, without navigating too deep in the structure. From facade, you can still
setup dependencies, java version, project layout, test behavior and publication.
JkJavaProject.of().simpleFacade()
.setCompileDependencies(deps -> deps
.and("com.google.guava:guava:21.0")
.and("com.sun.jersey:jersey-server:1.19.4")
.and("org.junit.jupiter:junit-jupiter-engine:5.6.0"))
.setRuntimeDependencies(deps -> deps
.minus("org.junit.jupiter:junit-jupiter-engine")
.and("com.github.djeang:vincer-dom:1.2.0"))
.setTestDependencies(deps -> deps
.and("org.junit.vintage:junit-vintage-engine:5.6.0"))
.addTestExcludeFilterSuffixedBy("IT", false)
.setJavaVersion(JkJavaVersion.V8)
.setPublishedMavenModuleId("dev.jeka:sample-javaplugin")
.setPublishedMavenVersion("1.0-SNAPSHOT");
If facade is not suffisant for setting up project build, it's still possible to complete through the main API.
JkJavaProject
instances are highly configurable and can tuned without limits.
Here is a pretty complete example inspired from the Jeka build itself.
project
.getConstruction()
.getManifest()
.addMainClass("dev.jeka.core.tool.Main").__
.getCompiler()
.setForkParams().__
.setJavaVersion(JkJavaVersion.V8)
.getCompilation()
.setDependencies(deps -> deps
.and("com.google.guava:guava:21.0")
.and("com.sun.jersey:jersey-server:1.19.4")
.and("org.junit.jupiter:junit-jupiter-engine:5.6.0"))
.getPreGenerateActions()
.append(this::tagIfReleaseMentionedInCurrentCommit).__
.getLayout()
.mixResourcesAndSources().__
.addOptions("-Xlint:none","-g").__
.getTesting()
.getCompilation()
.setDependencies(deps -> deps
.and("org.junit.vintage:junit-vintage-engine:5.6.0"))
.getLayout()
.mixResourcesAndSources().__.__
.getTestProcessor()
.getEngineBehavior()
.setProgressDisplayer(JkTestProcessor.JkProgressOutputStyle.ONE_LINE).__.__
.getTestSelection()
.addIncludePatterns(JkTestSelection.STANDARD_INCLUDE_PATTERN)
.addIncludePatternsIf(runIT, JkTestSelection.IT_INCLUDE_PATTERN).__.__.__
.getDocumentation()
.getJavadocProcessor()
.setDisplayOutput(false)
.addOptions("-notimestamp").__.__
.getPublication()
.getPreActions()
.append(this::pushTagIfReleaseMentionedInCurrentCommit).__
.getArtifactProducer()
.putMainArtifact(this::doPackWithEmbedded)
.putArtifact(DISTRIB_FILE_ID, this::doDistrib)
.putArtifact(WRAPPER_ARTIFACT_ID, this::doWrapper).__
.getMaven()
.setModuleId("dev.jeka:jeka-core")
.setVersion(git::getVersionFromTag)
.setRepos(JkRepoSet.ofOssrhSnapshotAndRelease(ossrhUser, ossrhPwd, gpg.get().getSigner("")))
.getPomMetadata()
.getProjectInfo()
.setName("jeka")
.setUrl("https://jeka.dev")
.setDescription("Automate with plain Java code and nothing else.").__
.getScm()
.setUrl("https://github.com/jerkar/jeka.git").__
.addApache2License()
.addGithubDeveloper("djeang", "djeangdev@yahoo.fr");
The dev.jeka.core.api.tooling
package provides integration with tools developers generally deal with.
JkEclipseClasspathGenerator
and JkEclipseProjectGenerator
provides method to generate a proper .classpath and .project file respectively.
JkEclipseClasspathApplier
reads information from a .classpath file.
JkIntellijImlGenerator
generates proper .iml files.
JkGitWrapper
wraps common Git commands in a lean API.
JkMvn
wraps Maven command line in a lean API
JkPom
reads POM/BOM to extract information like : declared dependencies, dependency management, repos,
properties, version and artifactId.
�PNG
���
IHDR��(��l���������IDATx^���Tա>�P�S�8Kp���F
q���FqFM��s�h�'�'���LN1hbr�QD�������{���.X�,��UT5uq��sy��U�ˮ�v?���?����h�������������
�x����!O����4�� �����P<�����'����B����@C(�����h�����
�x����!O����4�� �����P<�����'����B����@C(�����h�����
�x����!O����4�� �����P<�����'����B����@C(�����h�����
�x����!O����4�� �����P<�����'����B����@C(�����h�����
�x����!O����4�� �����P<�����'����B��-�h�����\�'�h��7�@�d�����R<@��o�{�����1�'�h�'�h1œH#�x�v�x�S<�4"�'�h�'�h1œH#�x�v�x�S<�4"�'�h�'�h1œH#�x�v�x�S<�4"�'�h�'�h1œH#�x�v�x�S<�4"�'�h�'�h1œH#�x�v�x�S<�4"�'�h�'�h1œH#�x�v�x�S<�4"�'�h�'�h1œH#�x�v�x���xZ�jʼ��M[���/�{��������p0ܔ���x�v�x���xZ�b��E�����2 °��"�TO��O��bO߬�>u�Ci�Tap�K:O�e���߮���};7�x��Y=�x���1�B�[���-|�[;5�'�h�'�h�J��/WNz����]�p�p�t������U��>z�x�����'ۧ��f�}��L���;�p��O����5�P��������uEzk�F���@��-����˕�^�=�I�c�wOUO���ϻ�)��t���1t聋���ޥ#�x�ZE��-V�x�f���uN�{;��食y��LN?��X�ԥx8p�8퓏�|Օgo���q�3~���.����'�h���SU��Ta�t�L����W��|j��O-����;����0��]R����C��lR�J��o=�ޫ�x�ZE��-V�xZ�bB�"Ֆ��������ɇK�MG6'5O��x��N
3������)䕗���{ϕ�TݟM����
;r��~�{�y'�sK��r�a�#�~��5�g���W>|��{}�!�]{��o��k��ʷ_�os��~6��c��K�����ys�##.8��� �䞻����勧F?�0��]{�9'���}��<����w������g�����6��x��O���F���@��-V�x��辴B����$SH���� ��3�_���n�;!�����tdsRm��ق�w�a�p���{g�}Y��i�����wb榧��6?��;���>�g����5���o�(3~�wȭHj���k�ό�u��o:x$�m�Y�����,mi�����w@fp��h���7�xa�)<��<�I��~<o��D�(���(����JOKWMI�������<1VN���� ӏ�����z���k�� ���tdsRU���o�u��q��_]|S��)$����������ׯo�iȐ}s�ig
?n���VZA�(�?���w@߾}
p��κ��S�Ë���W溡���w�=���s�A��t�W_u��;������2�g�o
~q�a�y�ؿ���f��F?�U+f�����v�ɹ����G��g�e_M+^��ô]�~������_�w�}*KE���@��-V�x�����<J��k� �%��?��H�i�tdsRU���/��O<qhnQ��VĻd��SN>"���� �\4�����~uT���{E�y�1��[��!C���_y�����9'�Y=�0���3����t��罸�[���яg����'����˾��0��#��À��zT<�ڟ�{W��e�>rC���Q<@;P<@��*��-~8-��T^<� ӏ3��O3g��W��ˎ_.������)^�3hЀL�5��'���O����X��F���o>�;���3�k���9�����O�����#s�Нw\�g��F?����n|���6���>}��<��GR||��ކ ;�p0<�=�\{��[l�t�����x�v�x�+U<���B*/�ʼ�Ә�?O���M:C}Sa�t��=��9��g�)�K穪xZ�մx��s�o��b����I�}|��8����e�������C���ϙ�t���Z�|f�$Ӧ�a��S�O����Z;�����.S�<��������5s���������iS����y�1�<e�x�v�x�+U<��}GZ���x �%�����fJ��Pߔ/���r� �?9䐃���n��t��*��%_N�w�}�c�94�x�N��)3�[l�?��b����)����3�s�]�O��e�Ѓ#�T���x�� ��#�Mx0_&�'�h�'�h�v(����Li�{�7勧����\�ͬt����G�on1TF�ELO�⩌ ��-zj.��ؘ�Sf|�,�j�V[���s�]�����g�_���N��U��(���(����JO��Q��5S��^�M��_��C���'���$=e��x��b����p���<��*��L����=5O z<eƗ�%�==�6i��Ϗ�3�����MG��� �ځ� �Z�T���7/NZ3�I�U��p��X7|�g��i���n�uo_=sƘt�R���o��/8�����O�/���t����8
���5�焇Ե���<��s���K���7��_x���я'd��v�����O�&������?������Q<@;P<@����}=.-��T^<� ӏ�&��Ҥ��!C���^���CV�|;s�)'ѵ�ʦoW�.>��V��1?���e�3�JƿpO����]U8�ݚ�8bHf|������G��
����/bF^��u:5ϟ>�REO���#�8(3��g��OMx<�wx8>J��gjȐ}ó?|����b�k#�q��v�u����t��x�v�x�+U<-]5%-��s�s���X<�?���c�&L?J��fJ�ޫ�\8��V�y�e����~:^.4x���]��)䜳���\x���ܢd������2�I�����Vާ�f�1���sB^o:0f�-��/������ߴ��W^�|Р8�;s~�mq߭�{�a����⩧�g�5���>rC��o�(/�t�>1zpT-/9������X��gCo�+��c
��
�z�X<͙�t�~}�����b�3�<����k�1w�q��[��l'���3w�-��.yk��w�wy����o�E�O�:f�-!��u�e��Q��쳎����#7ě��v�G��p�ćo�������'��h:_�w�ݿ�����~��N��ڪ�g�6~�ʋ����a�mG?q�G��Ϙ>��~^<�)��x���uշo��=���z���\o�y��uW����T1߮���N��9ð/MN�l0�'�h�'�h�2����
������s��Li�{Ֆ'�9���N=�[<��5�>}67��v���(/C���:��S3�|�f�1���W^yvf|����r�a�gGwu�u��u���g�ʷ��g��&]��Q#�2�S�O�}�^�ޤEy�����\�qذaG��V������X��)d����ڄIҙK%��Ҥ��9ӧ�>���m��6���鱷e�5)�c��+�B�y^�{�uL{�^ӧ�f�6�#�=wG:C̚�sF=p͎;nW|ǃ�{�XĄ����_>�ġ�-���x��r�描?-z��ɫ�w�_$��{��3�8�oߵ����p���g�bn��Wg�7��L~����?�����x���?9~��J/��D���@��-V�x�f��W��J����&Ign�,_6��9�Ν���K����$_t�9sƘw�>[��2W�}�j��YO��Wґi����fV�dV�Hb�xB��z���{��.y+�5��gğ��a�m3o0_yO��O��b勧�/WNz����Q�$����R����3��~
��Oo�0�'�h�'�h�
O=뺧�{
w�:54��%�Le���~=�Q<@;P<@�UR<��������)n�����Q<5"�/�طo��������V������X�����K��0q�}i�T�0���a'���뮇�x���Io���E���2}����ʣx�v�x���x�Y�jʼ��M[���/�{��������p0ܔ���x�v�x���x�
F���@��-�xiDO��O��b�'�FD���@��-�xiDO��O��b�'�FD���@��-�xiDO��O��b�'�FD���@��-�xiDO��O��b�'�FD���@��-�xiDO��O��b�'�FD���@��-�xiDO��O��b���ˀ�R<@;P<@�)��O��O��b��c��_o�@s)���Ų�(���z��K���߲�]���~�=J��|�
�x����Yg���9٣�+��� �'��Ζ��͞�,�E4����h��Pgg�:�뉮��
�/��qO�@=��gb��"�����J���S����
�/���O�@�>�"�����M���M��Ѵ9���h�'��>��gb\DӞ<�@(����Ƚ|&�E4m���4�� ���R��ĸ���x����P<�uP��Ѵ����'�c��|&�E4����4�� ��X�|&�E4m���4�� ��(�\>�"�v����I��l� /��qM�y���fR<�����Ѵ�� �h2��P��.��qM y���&S<�5���Ѵ�� �h>��P�.��qMKx����S<������4�� �h ��P��/��qM�y����P<�Uۘ�gb\D�L�/��UO�@�6���4�� �h��P�������?er�'wt=����TH�$;/����ZE����c�=��DW�o�ڒ� �h��P������4�� ��?EF����D��ԟ"�w�|� �x��O�ѻx���Q<�����]<_�@�(����Sd�.�/��AO�@�)2z��� �'������ �h��P������4�� ��?EF����D��ԟ"�w�|� �x��O�ѻx���Q<�����]<_�@�(����Sd�.�/��AO�@�)2z��� �'������ �h��P������4�� ��?EF����D��ԟ"�w�|� �x��O�ѻx���Q<�����]<_�@�(����Sd�.�/��AO�@�)2z��� �' ߂/߁��Ԗ������E[W<�g-}*E��p�}�Л)��|���&DDdc�⩗��K�ĺ�aO@��M�����+z W�J;ĕ��I��{��}��M���#)��|N���fr�БO@>'�@39���H�' ��?����{�t$������L�=�:�� ����h&��I��s��4�s���x�9���ɹ@GR<��������#)��|N���fr�БO@>'�@39���H�' ��?����{�t$������L�=�:�� ����h&��I��s��4�s���x�9���ɹ@GR<��������#)��|N���fr�БO@>'�@39���H�' ��?����{�t$������L�=�:�� ����h&��I��s��4�s���x�9���ɹ@GR<��������#)��|N���fr�БO@>'�@39���H�' ��?����{�t$������L�=�:�� ����h&��I��s��4�s���x�9���ɹ@GR<��������#)��|N���fr�БO@>'�@39���H�' ��?����{�t$������L�=�:�� ����h&��I��s��4�s���x�9���ɹ@GR<��������#)��|N���fr�БO@>'�@39���H�' ��?����{�t$������L�=�:�� ����h&��I��s��4�s���x�9���i������� ��f�' �� �&XPBv��z'��O�@d�����z�N�' �� �&��^����BO�IO@>��M�x�4�'�$�' �� �&P<�H�t��O�@(�D$�� :�� ȧx� O"�F��D��S<��'I�x�N�x�)��hœ��Q<A'Q<�O�4��ID�(���(��|�'��@�$"iO�IO@>��M�x�4�'�$�' �� �&P<�H�t��O�@(�D$�� :�� ȧx� O"�F��D��S<��'I�x�N�x�)��h��������zܴ�O�⾗�� �M�x�uQ<A'Q<�O�4AU���&.�o�緕I����j���3�}�ª�қD�t��O�@TX<}�z����5S����.�<�5�g��d2������㥲�Y˗M/��+�N�3��G�ڪWW�v�m�������ݚ���x����dɗ���l��9ş��J�l ���/���N�� :�� ȧx� *)��\9����v�|�]����*��Wi������wx8���l�Γ�SO=*;��~q��b~s�i�a7�tQ���_+����x4�������w�}��?����~�f�
���������Ho��(���(��|�'����ӗ+'��}{�+U�p�6*�~���wյx2d��^1^շo�0��-f����9��������1t聋���ޥ#�xz;��O�@�/��Y=��k�����?s7c��g��=��O;: u)���v�?=wnޜ�Hz�B�|9e�˗�|�֬�[!w�qY|��(��-~Z�|�櫮<{���_�*�KGF��v�' �� �&(_<U��N�&Ig���_|��Χ^�Ԃk_��˞k�s�~�%�h�K�T���3f�-�7�x:�����?�T�j�[O���(���N��S<�e���+&�-Rm)�{�>Y>~����|���tdsRC�4��G/��Ԑ1�o)��xZ�zv�$���6��UOa��n�pذ#��劉:���N;�ܷ��-�B^y��������^�������O���_}�+.��ཎ>���=���7��5Ͽz��/�����9�g?x�1��xÈ2����GF\p���=w]1���O�~<a����sN2d����3�y�ק�pۭ�������N�ڄ�sf?�ޚ�t��O�@�)�&.�/�� 9��#3I��J�/d¢�����e�[�NH�C��>�5ٜT[<�o�w�a�p���{g�}Y��Ӫ���͘����ũ�xzz�m�l���_됃�����r�T�����^�w������n�����w�!�"�m��=?3~�]w|��q���l��f�#��߲P���S�O88h���]�~��y�G�t����M� Ob���y뽤�D��D��S<���������Qq~�̈�G�+�����tLq�G�yn�Mc�\�����5k愿�]pm:�9��x�s�:��8����.����i�ʷ��暈�d��i�U<��~�־ay�5��ŧ�5���_[���"�㍥���x�_����<�6��}���wРW�/:5|����n�����gϾ}�tо7�x��W����;��??d����3�ě�����0���N���v�3�S�Ϫ���x�n����sO ������>���i�� >�s��k�o�|����K�.�Oe�(���(��|�'���T�4��qiy�f��:&L?J�S �3d���v��椪���_�x��LqPm�Ia�zO��|Dvם�~�h�� ��������O���y�1��[��!C���_y�����9'�Y=�0���3���
:���^�vۭ��L����3�k��N�E�=���#�8(��~��k^�]�
�=��
���G��D��S<����i�Nˣ4�Oa���Č����c�(��㗋&g�E@�>����f���ܥ8u/���5�
�d��z2�=�SZ�O��>����(>>��Gs��<����q��'||�]���+�
�40S<5��5��u��d��wDžU���)>��8ϰaG�Ƕ�k���b�͗.�Z<�|O�IO@>��MP�x�O�T^<�y��1�(�2o1��t�����)|��;w����L~,��pJ)������Ӳ���1瞛}c��g�76:��㋏WU<�<����e�������C���ϙ�t���Z�|f�$Ӧ�a��S�O����Z;�����.S�<����ހ��5s���������iS����y�1�<e�x�N�x�)��h�R��+�w��Q�ʋ�0a�Qb��xJk�4��M��i�-7����C9x�8��.J'��O�ԯ_�<7K���ޫ��OK�����N�sh&�
�L�RU�T����b������T�EOa�+.���[��xʌ/���
/�x����#�Mx0_&�'�$�' �� �&h��8i͔&�W}S�x���˕��J'��O��7U�OeTX���-�ʨ|�2�SΟ[��<��1����2Y�մ����瞻��۹+�ό�to���/��T�Q<A'Q<�O�4A�⩙?jW��fJ�ޫ�)<���w��C�[�7�0"���]���t��#r�ܳ(�K��#N�[�e�2���ϟ[��<5��>����8ۤ�??����k�>7Y>�'�$�' �� �&(U<5��ŋ��Li�{�77?"~����^.>�y����_�n���ֽ���c�yڪx�j��8��NMo�M����7�T�r���p�ޙ�kV� �Ү�ߖ����ǟ[�,]����������{0O�~<!{�{W��| 5Yxv�?6����OG��� :�� ȧx� JO���Gi*/��GI��Li�{Ր�C ����CV�|;s�)'ѵ�ʦoW�.>��V��%?�k��Ҵ�i� ��Jo��n���CXG1$�57����/�?���]U8X���l��o���G�1#���:���O��'�TڑG��ܳ�㋋�&<��;< %�[��+mȐ}ëw��c3Sń�v��n���;�?��� F��D��S<���������Qqny��ם������tLq�GI��Li�{Ր G��ۿ�ˊ�ϙ�t��f�������S�9g���a��M+�ޘ�p���d��)��Y�n�}�l�����^}�9!/����xnQ�
�k�w���j�?3����^��x���o���+/z>hP���9?������=��q|q�����3�s��G�����7]����B=8��/�t��O�@��z6�6O�rN:��
�੧��Ӝ�O���7|[����y����]3g���˶�z�e/��'��Kn�t�[��S���/�_|S��ӟ_5�k
9�ġq��Q8���:�Bu���������_ߓN���W�����n����F������~�%��o�O~s��ԋE�O�:f�-!��u�e��Q���}��Q��]�~Q�=w�nއ/�~��/:5�j��ݟM���+/z��x|������?c��N�Exx�x�xj�� ��UxZ������F�����k5>�����{�2S�|�j�N;m�þ\49��(���(��|�'���L�pń�B�-a�t�ܤ5S��^����o�ߜ�N;��t|n��֔'���,ܴ��-�~�p���)�/�{�L��S����[3��c͎��+�<;3g�J}�!-��_�������?;���;/����=�W���>{�7�:���)��xB�ӷޤEy�����\�qذaG��V�t��O�@�)�B�.~(m��M�$��TҚ)Mz��3}�����fkk�h��]�{[�]�b�;�����)�ڑ�Ż_����UM�t�߿t=X���qwz��m�]�~�ƯY=g����v�c>hи��H'�{��Z�>}68p�a��;���c>�����N�2)��I/7�a���Ӣ矟��x��ERϺ�?�c��]{)\�
X�|f,G�uf|�O��7<x�K���4qo���'��/�X�ņ�(���(��|�'���|�����vߕvI�'�=L���VY�l�;s��;癯�NKo��|����cޝ�lm?���T2� �oW͞=�|�J:2M%�ל��� /� ILCO�7_�x��q����%o��f�b����;�m� �+�� :�� ȧx� �O!_���R��i�TI����9Ez��I�¯�����F��D��S<�,�z�uO5\��u�2Q<5(�gB�ܷ��0�'�$�' �� �&��x�Y�3wU��S��?a'����|�ľ}��O��~60���(���(��|�'��������EWL��辴f*NP�ﰓM9���]���/ܓ�$5��7�g5d���魕G��D��S<�UO1KWM����i����}/w�������"��x�N�x�)��h��'��(���(��|�'��@�$"iO�IO@>��M�x�4�'�$�' �� �&P<�H�t��O�@(�D$�� :�� ȧx� O"�F��D��S<��'I�x�N�x�)��hœ��Q<A'Q<�O�4��ID�(���(��|�'��@�$"iO�IO@>��M�x�4�'�$�' �� �&P<�H�t��O�@�o//(�x�N�x�)��h��R<A'Q<�O�4A�� �]/��I��S<��o4�#�^���� ȧx��X��˾�߯�G�Ty=�F��S<@s�=��s�>'{�M���aO@>��4���]�����ȅ��z�:�� ȧx�&8{��a� q� ����t"��O���/o�E��\�z�:�� ȧx�F+\��"����P�' �� ��������t*��O�� ����E.�8��S)��|�'�h����l����x�)���qr/o�q��&���
�' �� ����-1.r��x=��M��S<@����%�E.����)��|�'�h��ĸ�e����t<��O������[b\䲉�z�:�� ȧx������l
��M�� ȧx������t<�S�x�)����*��%�E.����D(��|�'����.o�q�K�z�6�' �� ����[b\�ҩ��M�� ȧx�:����t$�
ӡx�)���^j��%�E.���ؤ(��|�'����/o�q�K��z�6)�' �� ��bc.o�q�K'�z�65�' �� ��b#/o�q�K��z�65�' �� �����߿�����F&L��������(��|�'���6�� ȧx��#)��|�'�h��^6���� l����x�)���9��z�:�� ����ÞK1���(��|Nz��9��z�:�� ����ÞK1���(��|Nz��9��z�:�� ����ÞK1���(��|Nz��9��z�:�� ����ÞK1���(��|Nz��9��z�:�� ����ÞK1���(��|Nz��9��z�:�� ����c��� 7�7{�$���(��|�'���6�� ȧx��
#)��|�'���6�� ȧx���>�z�:�� ȧx���R���0�' ���h{.ż��x�9����R���0�' ���h{.ż��x�9����R���0�' ����%�&��)�=YƧi�����dϥ�u��U��WN�_>���� (�1�@����)^ՍO���ŷ�)+��HoMc|�4s<��'�����8z�j���4�_|+�����4ƗO3���xJyL�����Q<�O���l$��O����FR<�O��K|��-�*�aȥx�)��z�6@kY�!�� �g��]����e�\�' ���w�n��ur)��|6N��ź �Z�aȥx��8z�6@kY�!�� �g��]����e�\�' ���w�n��ur)��|6N��ź �Z�aȥx��8z�6@kY�!�� �g��]����e�\�' ���w�n��ur)��|6N��e���E;�7{�Ma�\�' �� �����x�)�����H�' �� �����x�)��z�-�Z�aȥx�)��z�6@kY�!�� �g��]����e�\�' ���w�n��ur)��|6N��ź �Z�aȥx��8z�6@kY�!�� �g��]����e�\�' ���w�n��ur)��|6N��ź �Z�aȥx��8z�6@kY�!�� �g��]����e�\�' ���w�n��ur)��|6N��e���E;�7{�Ma�\�' �� �����x�)�����H�' �� �����x�)��z�-�Z�aȥx�)��z�6@kY�!�� �g��]����e�\�' ���w�n��ur)��|6N��ź �Z�aȥx��8z�6@kY�!�� �g��]����e�\�' ���w�n��ur)��|6N��ź �Z�aȥx��8z�6@kY�!�� �g��]����e�\�' ���w�n��ur)��| �� ����hK�m�ֲC.�S�-�-e��f�>�N�]�%�8��Lv=m�S�e�X��Cv�n��������Y����d��fQ<�Y|:{������IZ���D��b]�]i�x�3��H����}AD:/�U�ޕ֮ۊ�:����[Z���D��b]�]i�x�3��H����}AD:/�U�ޕ֮ۊ�:����[Z���D��b]�]i�x�3��H����}AD:/�U�ޕ֮ۊ�:����[Z���D��b]�]i�x�3��H����}AD:/�U�ޕ֮ۊ�:����[Z���D��b]�]i�x�3��H����}AD:/�U�ޕ֮ۊ�:����[Z���D��b]�]i�x�3��H����}AD:/�U�ޕ֮ۊ�:����[Z���D������wk�Y�����}�o���ի�DD6��v�V<�Y��PDD���n��鼴���7�N��g��O?{7&"��������l���tՔy_�����_��r�!���
�)/""U��m
���>���?^�����^������""MN{��������Z������c]�M>�]�OuVj#���&.�o�緕I����M-�|=cއ/�Z1+��.���Ik7ڪ������E_���ee�a�}ED��6\W����7��i�>^��u�iq�'Ҷi�x��܍0�7��O]�PZ3�J���nY�z���J&3�_���=��5��� ���v@&���V[�����n�������L�g�5sӛrS��զ���}��$�
��ț��Y������کi�F[ᾰl���~;Tap�K:O��q�B&-�:sƘ�g�]��&q�p�D�w�,�R�u5��秳�n��wk����]̄��=]?Kź��Y˗M/��+�N�S�|/|�L~���{(��-�ݟM�>m��YO-]25����ODs��R�n�X��O�Tg�F��˕�^�+m��'�%�1���r�a�w����^,|�q���?����<i���G���\v��}; ��������7]�(Γ��G�~�����T5
�j�%�g�=
�!�}��N8������3�&'����{�"��S�ڍ��}a�ʿ>ٽ$�.�|�]������
y����t��i��W��'�1i�:Y��
�jL��Og�������Ns���¯�ųL����zTv������{Ŕ?�[0���i~0��:/���v��ߴ�N�������C�থ��v�X�c��ͧx��t#��˕�^�=�I�c�wOUm����ϻ���훝.O�O^?��o1sƘt@q52~6�̮tc�j�R��5<�J�����С.�brz������6�/�or�^�~�SI���{���17�0";����t|g�A�d��Z7��1�>?��v[Wg��v�y��<���.#���v_W7X<
�oz����{M+�.qJ�c�Ǩ�I�7'M^�Kźc�n>�S��aq�Y=��k�����?s7c��g��=��O;:~ao�F8��{���݅w�aqλﺢ�x�CtR�|9e�˗m�ٯmc�|��R���=�
&n��_�O>~�UW���v[ǏuƯ�ޥ#c�m���²��p�Sq����gC�/�̝�L߾}�]��b��o�$,���]��zT�~�;�-���+�:
Z'K�Ժa]�)����ۺ:���N�uzl��>�$]9�gS^Wc��[���I���*���ޚճ�c+��;.������������3^����)'7��7��Ѽ�齚�&�ۥbݎ�n7���ҍ�8U��S��Iҙ3���_���?��ڗ�����Zx�d�f ~ao�FX�k�>7����_Jo���&[�i���.>��٤¿�L���^�m���z_�R ��3gґ�B��:����/���x��;/O��i�:Y*�� �jL��Og���շ���O���տ�=���c��:�����.JW���d��X<U>��}K|��-���|x�v�Nj��|�E����]�ޫ i�]*���v�)��,�x�WLH[��R���}�|���#3�p���椆�0�@_tjHؓ�[{*+�>��8ɼ_X����'n>�4h��S����+K�3����_}�!������9'<5����,��� ��a�0Ջ����oN���{̡7�0�̻$N����|�C��k�A�8�������#�&aoH?��
vd�3WW5�m��6�t�oO���MxuT�o�VZ���>��xB>[�z:�k��?�܍6䕗�.�ҩ£
Otx$����p���;i�[r߆��z�㯾�@8���^G}�uמ�E����������GF\p��I�Y��B���я'��C׆/�!C�=����<�G�x}���5<���ڍ�̾�����ԖS�����Sv����s��),��T�%^c��vtxц���3Oߞ~�8��{��˦L~,|Qz�r�ߘ�p�k������Wo����w]����2�?������)OV�NR��uL��u���'�яǺ���w>]����ҏ�����^����F�����es��4��j������SU�T��ёG� [@��y}�o�>!ዥp�毋 ���nװOY������YOu�n��L\t_Z!r��Gf��)$L��_ȄEw�����}�f�����緦#��j7����v����9��w%������c�JV����E�Y�֬�S������g�O��-���}����J���;�����Z����Q��[L|����V�ʎ['l���!�����D�g���+ώ��-$�5�s�����[���>���ǃ�Օ�v�x���~xɕ�h19>�37==���w�?���ʼ ��V���;�n ��_��g�?�m��f�#��߲pb�n��~<�
89��Zw�w�����i�F[f_(��\��W'�s��\r���8�wל7Nz�ԛ�������}!���!��=뾴}>)}���_�������_�9��v�k�����:
k��[��eN���R�:v�pSء2�gL�����V�N�T�u�S�a]���i�㱮�ɬ��������/z���ԺZm�T��^q/���:6��xk�&Sij����|���v���uۺ�|��:+�.]5%폊��gF�?��X9�?���c�&L?J�so
;��5�_��f͜�ױ�MG6'Um�a5?�ȃ���:�-���i��{��y�A��b���<���S���v�o�������)��yXkr���}��۷�A�����:',�q���/��磟�9�־�.�� G���^�ǃa��|ϳz��ốB~����܍<|� # ��#|n�g���vU���s�ֳ�:>sS�g���Y��x�>5�_��_�������N�/�x�̞Zj� ��}�z���+^*��7�6���~_�����Ix� 4��ߝ^
��u/���m��_o�|+�Ե�Є��L"l��f6�F?�pb�[w��'�{bX
__��Dz������Ok7�R���>L�ω���Ͼ���}Q����� �%�S��X!s̡������~�e��g?x�E��<���� '��xp<��Z������k'���~9������v�jׁ���j�ɞ꿮�]7���??�~<���Q�ZWG�s����ݺZH�u��⩪��TX<U�uT�;�����7p�U
_U��7zݮy���b�SY��x6�u[�Tg�6�y_�Kˣ4�֩�0a�Qb�Zpm����īӑ�IU�n�4>�ġ�/��TU<�<u[���9�l�����>�-]�V<v���Ƕ�n���� ��Z<����I2%}\h�s�9��xK��R8��̱����Q<��#7?�����aϤ���F^�ϐop��MZVn������E��f~��R��/�֕����N82��j7�SN>"/~��/M.�������=|[�(��!lZ��+/�_���}�����+<�l��~<��&���s4����w%�h���|Z�і�f������Q �u����Bg^w㍓��O��{?��ĩ�LK�&L?JL�� �O��6�������o�oL|�0�pB�匯�qī���t�k8#,�#=կUOũp�����uú�S�����c]M�u�k���j��L*?߫�x���(,�[l��<�k�Y����x�NS��E���X�kާ�����S<�Y��p����(M��S�0�(1c{�F8sƘ���ˎ�+<�������?<sS�} K�t�=d钩��/��7~�����%<��C-�K��'_||�/��3",R_/��fu�'{�S�F^�Ɩ���r���.>~�чt���>_81�W!��� 8M�Æ ;�p0<�{��_0�9G��\�F��bР����*s�k���� ��o~�83�k�����n��$�{�=2�BR�%2���я'^��~2W����x�\�x�}~˧�m�}����79!#_zm�wG7�~�����?���rK%L�~��N��-�\����]3���=O�f<��ׯo�k|M�K�k��]>���?�_�:���گ�j� �jL��O��u5}T�ծ�^W�7��%��9s��T~�Wa�T��Qȋ��D�֢ٳ�J'������F��5�S�m�v�)���FX� � ��x*�6Oc����-�|�� 7��e��;w���L~,��8UO������M�%7�7.�=���dƇ�$��^p������]P���J��-� οp��qA<�ԣ �"���l�w)��/�����x�jX� �״�O���y�1��Um�˾��{�+�ψ?(~�����a��C8�S��|��}��X>3N�9{�)���_ύ~<!�'^ý2��]�Ny�ݹ?��DO��o��v�-�/�z���� ���vzS��y;�N��*�V~3+.bÇ����%P�uO�7_�k��)��˜Ч_��@O���j���]7z���I��я�Ǻj]]?�ZW WX����Mq*?߫�x���(�9�r�~���vt����.j>�oĺ]�>eݶn7���Jm��tߑ�Gi*/��G�)��t�K��Pߔ���r���o�(�$�����]�J��u��"�R�Su!�>�V�c�94,��SL�G�+<��xދq|f��4��x�k���>��0f��љN=7�o�lli*���~���ǿ��{k:�8��S�����G��� /��6����R�WO�F�$�����L����=�����͟�z+����3�s�G�O��eR��[>��hK� �w��3�)_�AJ�Y~� �%�S�����2_=y_��=�O��ip�T��u��O��S��7�ϝ���S~���Y��sױj??�~<eƗ�u5��|6�u5O�������sS�'�*?߫�x���83g����_ޠ�k�{�d�|������F���ݧ����=���ˤ��g��v�V<�Y�����Sq�m/Mz����F�ѿ��+���N��FO�����ڪ�%Q� w��&䞻W���b��_�Q�F^�Ɩ����y��+� �u�q�w�{'ů���Nx��d�������ŧl�=w �+�όoԵ�N�~ʺ�R�WOٍ�� 7���mΟ�z�y�-ccO��eR��[>��hK� ���E�M�S��⤻@��^�M���S�u�گ�2���u����o��˨p����|�q��u���O�O��eb]Mo*�Mp]��S��TI*?߫�x*#�u�&��^�����*����CU�uQ��|#����S���>���[�ˌ/�j_�e��u[�Tg�6�f��]q�m/Mz����Fد_ߡC �?��xÈt�L�^<-�br��o�>'����cn w� ��Tx�]j��������g�q���6�82�~�m��~3_H�y%[�J�_�lz��P�m��.��Ùgfn%M%��T�� ��v�ć�wg�sxy�#K=_=e7ڃt��#r�ܳ�p�2��ϟ�z�y�m��)3�|*~˧�m�}�����<eVzS�����⤻@��^�M���S�u�گ�2���u����oߠu�'��Y��sױj??�~<eƗ�u��l��j{O����6Nuܱ���V�uQ��|#����Sqp����v���S��TZ�n+���FX���|�|H�%���x*����I��4���%�<>���^O�3� 翾�v[w��~��sAL��_�/>��27}��ś*<�.�ФY���?=��A��6�R�#��-M��{�]�N_1��VY�����p��*a۸����?6����OG�z���Aa����O�/���t����÷���kVωo�U�c�5ϟ>�����%�����Oˌ/��y��я'$�����S>�?���ڍ�ԾP�Mp�yaB�錑�gv������|��%�̛�'�Ҥ��o�/����/��7u6i�����%o���� _�ſֺ���u�����x�������1�S�_�ծ=���jO�O�uպ�~굮�U�T��ѿ��V���� +$| ���k��H�1_��7bݮy�J��vO�OϦ�n+���F8��q�0z��_��AHn�Ty�&L?J�t�K�ޫ� z
�B
g�a���-e�~}�S3&��ܰ%�Fq�^<�s�����/ܓ��?�o�����BS^�_v�魅T��W����p�7���O<~ӰS�>�;�m��M���T���k/�m��v�u���!C�M���~��3?���]U8�ݚ���#����67q�m��Q�'������������5ϟ>�R��x�G��ܳ��_�Mx<�2�Gɼ�B�JOYX=��{����-��n����R����ϖ�y���{��~w�u~�ޏ?}h�Ww}���_xuإW�}ӭ�����~�_�]�tH�ޫ�4a_8�����]m�9���x5�Φ��^���w�H_���#�+�����u ��c����{�8����+sSL%�d
_�U�=���jOS�u5}T�Ս_W�V<~��̿_V�uT8���wg���wU�Mo��诋
��7bݮy�J��vOSϦ�n+���F�tՔ�E�S�=��܅#�;)O��i�T�0a�QҤ�^��^5���į�;︬�xX[c�=x���]ҍ0䜳���\x����Խxz���ం_�ͬ�o���;w�������}ܱ��?���5q�嗝���8�o�����#7���J��U2�w'�8t��.�^��tX�
����Ο����czJ<_��B�̿������٧�f����:'�����cF�R|��K~������_��-�����ߙ�l��PK���x�yF<�yZo��x���>���ڍ�Ծ�Ū�orb�7Eg����=R�K}��/��%M� �I�UC��/��7�ś�}f�K� _ww��:��]y����t>=��7��و���ׁ�]1<s�#��O?��x���S��B*\'����v��]���4��XW�Ge]��u�i�S��2�J��ZHU_G���y�y�u�Q<~��'��< ;�̇��ۻ0)����K���F4�Q$�5��o��>�-�O<�@@E���r�}D��FXvYw��X��Q����U�7xp���l�fz�g{v�g�����,=�=�==�]���Q ���|&���S�۴����S�R�%C^{�[u2jO���]l� x��D=��ݨn���v۞s��}��$͖�UmB��q��H�ay�Ƚ��C-2�����D^x�2�i5�.������ߜ5��y��"����X S؆�������}��n{mF9=�|����6��e}~P9��|rK5�,�'߸�2qBo5箻�|�խ�̣G��d��o�@f��h;��=O]�p�u�.��yPBy��y[^�}�6��D^ͫ�<[�m�5��W��F�v��]��C��t��S����_P��1��s�W����e���&���s��}���79����vk$�:r�����(����s��G6@}��aÆ7��P^Ϳ��G� 5�]^��S��R ���'�'Z��B�ۑ<T���v���p۩�]qʥ��ٶ�e]�}�d{N��7"I��yA�n5�I�[;^&������r��(��1�;�uj=�8�ңzԺi�KG�Ӿ�/� �M=�{�]�}*����� ��~{UW%O�� ���nЮ��Lo�U ��:��a Oi_��+~I�r��rr�:�M:����g�IM�g�_�x����O�����'�]�ꋘ�/�^��d��N�<E�M�]�(<E,Չp��)�����q/Loמ��p�
�)��>�ٱ�J/Ҹ�7��ӏ��Oz"����g5_Wٸ�.�+t"/<I.���-���
z��@$����HwB��L��c3:�������3�]�d�z?BR������|ן����t�Ej�V���U�'B��|ooSey���j>��uI��#����쏡��WG����[U�����j�5�2��8�3�=y��Z�G�٨y}���m����3�Nz�U��O�,�^*���y�/�^n�z c��\ޙ�ՐK@����}�v@r�EIN=5�_5��=�N�v2��:l�A����?�ޞ�U �Uk���j��S]����rCt�w�����6:Iمo��/�^�{y���y*)��D�'���6���%=U���vN�kO#J�ڇQ�ا=;�Rig����~� #�6�Փ�n_���|UN8���d'�Ė15�O��o�����T�h�/��o�g��{v�(��t���;���on����Y����G<$S'��ӳ:�k��t�_.�?c��w����K���+[�h�����\��� qE��ڏ�}�A��]4L�W�Ė�K�W�Y�=[�v����:�U�<�N}m�v�!-�.�N<r������[ꋒ]w����c�O�x+/q��ǩ�5"��Y��u�s"��#�ң���Dȱ4tH-_����OvO�I� :�KK��N��J�5��}�c/�v�����.4���r��)�^I��Rv��aE�-[l��Q]��{Y�W]����\Їj�-�(�����"��g��=F���������Id~{���B��M�v��37� ^x���^��Dr��Ű����G����~۟�$e������ƍu�|_����&�v;���6�ٞ� O�O�ުӰIS�yPՏҫ= *ʯEs!��N���� ����u<�U�g� =i.�ݱg�{/3��~Çu{e�ㅳ_�?�Z#�SU��<���,/��O��k5��![2~�o�zΞ�N�����Ec��pKT2�=��+B�h�2�����F"y}�{��� �TTM�Q\f�y�G���kv*�p^��P�U��({{�lҫ��JO�~4�ԥ�W4T�w�=r5l?Z��z_��n�M���� ���������$hW��j�&��h^�K2��)}�좰�z����f:A��v;x�ݦ�1�D�-< �4��|س�w�Wx�߮��c�����\��~�ޒj�-�c"y}�{��� ��UN������,(���$Y �@�af(����]��D� ��J$�gv�m OKz"�kO��t [uT܉�!v�r19٭+�-�h3�H^��h���-������ezGN�v ڰ?3�U�Ю�m"y_�� %��3��6����:��ᓦ��:�(���'���Qߛ{�����s8�f"Q���=Ѧ:/����$2���ɷ�D�g&B���ռMT� B���Du|f�ݦ�1�����Sf��L� �w��#$�RR����(1�������N����k?D�NT�ovO�>�;o,���]�*2C��Z"�ځh���DhW��v5�����ng"Q��m�)<E��DhԞf͙"˗ ���Ϩ҇���?��.�� ����B!�����y!iJ��:~��K�{��v+.���_�(��BH=�v�B����"V�PמTՉBH���m��B�]hW !$^�n�M�)bAN��fO��D!���h��!$^�]%��x%��6���q"$�ג�-�BH�v�B����"Ɖ�B\KvO��!��UB�W��nSx�'BBq-�=�r^ ��^hW !$^�n�M�)b� !ĵd�D�y��{�]%��x%��6���q"$�ג�-�BH�v�B����"Ɖ�B\KvO��!��UB�W��nSx�'BBq-�=�r^ ��^hW !$^�n�M�)b� !ĵd�D�y��{�]%��x%��6���q"$�ג�-�BH�v�B����"Ɖ�B\KvO��!��UB�W��nSx��z9��8#�'Z� �r�*��Kv�m O�D������C� ���v��S��� �p��^�s;� W��]}1���ٞ� O3_X�����������l�ꋹ��
����PxB�T|R!1��$�O�S ��gNJO̩���YE� ��fl�9�'9��w�9���|vl3֜
���U�3�T4��@ '��}<3� @UT|��5iНAO���)�3mƶ)�^ a�r�>����ڴ��5)�Π'���
O�5<Du��3�g=H��
Oz��N���8��C�� z�6=܉AO���5���!z���SI�g=H�w�� �����;(<!6��!* zBL%=�� �p'=��GPxB<��CT�8�9�� {�� �����#(<!�Qa�b��xf��P�wRa���p�'�@��!* zB��z<3� @@��;�0� �����b�gx� ��#�� z��p'=�������Qa��"��̠'���� '���u��Z���0� ��xf��Z�:�I�AO�� �(<�iA���0� � u<3� �� ÝT�������px� ���P�3����8�I�AO�� �(<�]����0� .K�xf����wRa����" OpW��!* z���8�� �PÝT������vx� ���g=0�� '���-��4���0� J�xf��CÝT������\���=�5u<��@Ko�� ����@VPx���� '8���3���hiwRa�������� Qa����̠'���6�I�AO����Qx�s�8<D�AOpD$�3���l��p'=��zF� �Y�jŇ_蓻f�%�������\/� ����b�*�u�:w�5�����k?�#+1� ���I�?��v����k>���3��t�6�����k>����=�?tԑK8�D����p�'�u��g�Q����D� �CG���@T(<��QxB��QG.�x O���A�?tԑK8�D����p�'�u��g�Q����D� �CG���@T(<��QxB��QG.�x O���A�?tԑK8�D����p�'�Ϝs��.���1�� *�����(<��� O���A����r�'��� O��������p�'���A.�x O���A�?| r �3��Px���������\�� *�����(<!~�#�p<� �'��� O�:��%���B� ��8��⇎:r �3��Px���������\�� *�����(<!~�#�p<� �'��� O�:��%���B� ��8��⇎:r �3��Px���������\b�sV̑��G�a~��e~ ��Qx�������fuԁ���g5�?����'��� O�5~� � ��v��۩��@|u�����C� �� Px������� (<��Qx��������(<!~�[�' ���=A.����D� ����0�H� r �'��� O�:���B{�\B� ��8��⇎"��О �Px�������� *�'�%�����(<!~�(� � r �'��� O�:���B{�\B� ��8��⇎"��О �Px�������� *�'�%�����(<!~�(� � r �'��� O�:���B{�\B� ��8��⇎"��О �Px��������b���_���������p�'���\@� ��8����@.����D� �� Px�������,��B{�\B� ��8���o��� O���A�?tD�������p�'�E�Q�=A.����D� �CG@ThO�K(<��QxB��Q�� O���A�?tD�������p�'�E�Q�=A.����D� �CG@ThO�K(<��QxB��Q�� O���A�?tD�������p�'�E�Q�=A.����D� �3g��%ʿ��� r �'��� O��������p�'���\@� ��8����@.����D� ��=Y�D�������p�'��B *�'�%�����(<!~�(� � r �'��� O�:���B{�\B� ��8��⇎"��О �Px�������� *�'�%�����(<!~�(� � r �'��� O�:���B{�\B� ��8��⇎"��О �Px�������� *�'�%�����(<!~�(� � r �'��� O�:���B{�\B� ��8���gΊ9�K��� $��9sVt�6W�5���Ȟ�� K���U�v��
���� 5
O������n����������Sb�$B��ī�@;I!�%^���@��G�W��v�B\K��#�����!$���$!���x�G��p�'BH%^�IBq-�:����
O��<J�:����Z�u���!y�xuh' !ĵ��<��(<B�(��0�NB�k��y��Px"��Q��a��$������.��Dɣī�@;I!�%^���@��G�W��v�B\K��#�����!$���$!���x�G��p�'BH%^�IBq-�:����GO˫'�)��ʴ�/��6�oS���3BH�W����$�R���y���XxZ�h��)�^�Sޚ;ٞ�B�&^�v�BHV����.p��TZ>�� [U�$����C%K^��́�ŽKJ��K���L���UB��xuR��>��$���&^���\�V�iѢ�/YU�!c��,�������������!��īÐ��Li�i'I�����~ўN�S��y��8TxZ^=��������ݧT�_ZRQ5;Jp-�U�.Ic�eK'&��4˫�ٞ_�G��^���O-Od?$��a/=��]���=ܞ9�TWM����
�S��+��W��n'�F=i���0Uh'����~���N��Rǚ>��~��
4hpC����3A�#�G��@��OIRu�0����v��'=��
+��
N��S���_����������{=v&MxJ�g�ħ�]y�Yj��~w����}����t��h�̙���x/�e�3�����6ֿ�^{�t�O��Ϳ��c����ī�
��v���F�n ������nT��J/�Q��^;yء�6((�c�_{�a=������V�����-�7�f�������#�� �
Ocj������?j��?���8���r��T�:T���w����vm���e
jz�����[�lypi�0{��L�_�8&^��4������m��s;�ȿ��o�����4}���������M��\|ѩ� ���ܠ6c�x����#�� � OCǙc�Tթ���~�fٽ&��(.s��$cF����F�<�XuW����ԤIc=�}����tg O�U��w���� �;Ta�: ͚�v{��:^]�]v�I=��g��^$'S��+��W��n'��&.��N��m;��s�)�vR�䤠���=���� 5�Q-~�U��K�g�l5e�ӯ�|�~�>���y����¡�Ӹ��8�iȸi����>a�mv頉�eb�7�ٽ&��/-�/���p��⻟(��9��5���,����+�\]:T��o�&��Ꮹ�W]y������8\x2"�"�B�Uب��p�wb�ܡ�/أG���ʽD�z�"��0��7���*��N&�\x2��T��_�z_c�[oV� H3h/�o Ux�<�y���P�iiդ� '�5w����T��ᢊ~�f�jԀ)��L�����f-������Z��}��3it���q٥�K���ӕWn��ӥ��J��%y�=~��۟s�q) Oeo���?�yƱ�������S{?y�O��塏�<���c�+���KuzO�kd ��*c �^�6~������;T*r���KZ�:ZzV����Sz=����;M�a�<7��z����^*��e6��zv�X]5~�s\su������_XR��=�믪7��}�� yɎ?���|��݅��^*��������?�$9�K,G�#�d�Z�Iu�̝�仮^��zԿ��M�: v;�#���⥗<l'��¶��s����H�}�1�5o����F|��m�U�9u��� O���r�ZÐ��zs��i�V�+~I��g���-��:�(i!���ד���Q��� {���J���T�;���xʳx����p�<b���� 5� O:�7��|sހ)W��,,�q���n��+�:�O��݅��e��T7��U���<��AM�購z�w���߿�f�Y? ۡ�K��vk$m��6�&��ԅ'���~�mw�e'�25��L��@���$+< |�s�ƻ��Z��I/�:v��A��9w�a{}�m\������S����7�O�ܡ�<����w�����C-�'c�T�Ғaj� .8���?�� ������ݒ^ڦ�~��7i�x�>��C�^��=2Q��ūY�=_���;��F�C���#/�zt挭�2>�W�!x;� �7I��DZ����d��<Q�-i�_v�9k������w:��T��3���>x��8zd5Q YJ������G��3cz?s�-��Zcf�P�R"�����g�3Y��&��#�� 0� O%K^��EՔ����z��I?��%�u�Q��Ϣ�ta�AUU������ ��^s��s�OBu��-�x�ч����VOׅ�a/?�괣����\{Mk�Az眓���7���۫�<�٥��:������I'��;��1������m��ϓ+l��m��Wjb=���s�m�9�W�Λ\������B�����T�Z�3��=Gz� � �h���kϽ������s�~��{�[���i��g�r�\R�K ]5����1��+�۳d�X��O�g���?�d9�e_�)�Ǯ�?J�<��e�5�e��g>�I�R�J�: a�I����N�j'� Oa��P�y�fP�zh�w8��#ڵ=��#�痾�=�C%
;���t��z���v�u�I�,�����șg�iּ+ �ޘ��l�7�CjIOaۥP�_�{��c[-ǒw��6q�<b���� 5�
O��iw�$]
K��p���ι�[���o�[2o2�f�({Y��,O�i/=(��){��I�՝w\�f>���2o�������rI'���IZxjs�j���/��dsf�����Ґ����3���ZO�9c��Im=�N;us}���y{ްCi��??��w�����/�ߥ��eo�ݮ�{{wuY��睤?�#��Ӎ�t��+����vj��EV���K�VM7>�r��Ǩ�/<��;]x��������H��D��S�v2�q^U9N�h�]9ur=}~���K:�%��L��yA���Pt�I�~�v=}���o��L����������;Ӧ>��LZx �.������O*jq�#��nO��7��#������ӳ��v�Hró/l�M�|k����t��܆<Ud�����m��1������W��J�;���|�����Ep��S�f�/��mڤ�j�����BW�*d�&��������ˡ�r�z.<�?��h���Xꎓ1�>l�!��� 4��%�tyE�Ο�����g��j��=n�N�zez{�m}B��?3>}#�m���C�s�w���j=�Z�'ʶ�����v�m[^6�;���a���I;�_x �N�:��x.����>����Z�c�n1R �N�vx�=��6���z�~�v]:�c�����I'a�ꚫ7�-غ4v���/<�m�B�o2Tx ���GTRmO��7��#������S�����:b���|n_���:T�+�{ �&
�J.�����5p>���o�)��+�_�ޓHVx�\4V]��n}������Բ�{U,^���˃qU��\�g�Io���7�X�p����ڜ��Ð���f̿�<���p��MR��^Ї}�2�=��Yʘ_-2b�c�'nu�j���TH���p���n[VP3�^�O��a���I;�Yx
�N&��2uJ�~�:A��Ėv8�WF�#U� Qs���:�$��?v|
Oi�Ki��L����T�����o>�G��p�s��NJ��Y��ˮ���g�Z#+��E���|��d�^C���Pm���]x��C�f���R{%F��!�~�1g�q�\�%����������ڶ�n�G�ך>��v���������#�/d+��0D�~��Y��Ϝ1@��{������������+ՔK.i���0�A{~�ī�@;i'�v2����>J${'�:��
m��By�I�[ހ��C<��x��k�h���7����Qs�Ռ��ڵ=�?�����Sx��]�5�(<E�����p�I�m�ח���"n������ǧC��}�c/m�;T�vؾr�X{%F��H�|��M�v|_����p�I/�þ^����}R1Ԏ;� K�ϯ�-��x�+�8�'���y;��0�Nډ��L�Wx��C� O%��ӾM��9Be�ħ�O ���줱�)<������h��G���g��O�n����G��@���?B�q�X�!��|����d�^��w��٦a˖K�- �-7_l�$oO����.N����ӻ���ZU��7����Ϻ�?�z��+���3�����p�>w��۵=ߞ�?��0�Nډ��L8Vx-ָ�.5��9�?�z�/�G�P���SGRx���Tq��T�v��d������3��'m�}^�#�� �
O�n�ۮ��P�}�M]�4g�o�?:Ϛk/��s�\o��{�h#�b�2h��z��.)���.��TP�Eye���J����F����ƖTWMP�@����j��/;Ø_ߋ!i��M��uǦ.����?n�����ꂵ��e���.<UOL{��[�����N"���۟�=������^���t�F^�֭7���i}�9���H��D��S�v2�88�~����;�x�r�Å�4����S�R���M O�G�ߞD��o~�G��p�s��T_��ܲsn�(}�3�m{��/�7�;M{�m�A����M�ۺ�N>��k½��Ov��H˖�ӑG���r�����m�i��;Y���&���}�6�_$���$Q_{w�Q�3f�|�o��;]�N?��C���~�N5��A:��?�DYʘ���w���>��xHE��������j�������{��u��z=1����k|���_�q�����~{�S]��z��a{N<��(�b|;��rdʻþ?���w j���I���a0��0�Nf��L�,<%·����{�V�DZ!c���z�z(U�)H;��p�)~���)<��.����Ա��y$Q/ۓ�뛇���\�\�dɫv�HE:Q��|����\�h�T_.+��Ŏ�}�c/�F.��4uu�]Wy��5��3�A53�;T��ڜ��s�%����(<ɥaA�w?�����O���;��CZ����D��<�����F��k~��헇>�~�Ǫ����W�t���<�f����_Y���a��"lo������I���wz� �9�_P߁%���_<��/��W^q�����u_� ���W��G�Kj�����ޱåjz�>�:�"�C{�Z��d���D��S�v2�q.m��ؾ��ޙ+�M�>� �Nf��v���)<%·K���7=�wL�������LoOگo�G��p�s��D�ۗ<T���v���p۩�]qʥ��ٶ�e]�}�d{N��7.I�c�J���٦�\�l�ݶ�s|�g:��t�v�i�E���$�P����k�=�"���Qx�k���ި�Nr&[8�G�(�=�������;��zh���5�k3���������o<Q
]��MM߽�2��IO��K�F��o�ꪭF.��+~i�m�)����SNn�@�]h����d��T���?t��r���۩�ƮP��6m"��ګ�<[��6�n��i������5��~��=y٥���;�C�ܡu_����W��G6@ݣD^��_8zTO9��T���;�N�c�Je����d6��"�$^���� O�����ňw�U�v2�q.��Z�.��$o�7g
��{�.��W#M
���N�v2Ӆ���ǎ�)l�j�{3qBo��]w����[�)k���y���^���,<��x��5J/�*{�Icw���K�����U��cϟ�C%9���Z�ƍw�����F�IO��%��[�Hg�y��Yk�r�~�;H_t�����aß��ݘٛ;��H�p�}��y�WO<���|II��X����{�av�(��y��8�7����:���@�zez{$��m�R�T7�R��Ƌ�l�Zm?$��0�N&U�v2�)<�(/�]U�v2�8���$�d�
=�����N�v2Ӆ�D��cd�����l���R"���F0s룂�G�#�� O���%v�(ld%��S��>ٱ�J;�G�<����S����6�Փ�n7��r��$�PI�RX-�������$�۳{Gu�E�j-[��o��e#�9�8�N�����.^�����ҹ�1����BP}m�"����ON�~o���[.F5�|�
��[��U�<��������]�
����g��f��lu�QIgNc��Z^�Y�<���+�w�ug{�F�W�o_��9k�Z��������H����A5��c<t����������ۏI�:��j'�O��0
Oa��D��r��[;^�Ǐ�=��.O'�q4��ԛZ��z(<����wIn�*U�vI%���f��w�qe�MU�O�p�%�y8�p1�k���������i=���>R���{�Nea��I��8����Q��YI���e�^��W���G�HOI6��Y���ʼ����y\�/W���uOI�˲���Jo�|� �~�/�K��?���{)���N�WF�G�h�����L�����O�� Ǩ�n�52n,<��0�N&��N&���U�g�0zd�Y��~�=C,v�$jj=4�G����=�7aۥ���~d�9�O��7�#���������z��G���R�Ȃ���NB�!�>2@���I�\��~4
��a��$����q����~��|ps��>=��(�0�G2�<<����wO�O����{�,Bo�d1t2�Y�er�ī�@;Ir5�z;{��lϜ��<����y��8]xJ�|�$�}Ldf�?9Br;t2���!
�Lv�6�
�xuh'I��Q�=��.���Ғ�|+��<����y���^xRyc�L��W��7!�K�g:=�Ѝ���k?D�NI�˲W%Ɨ��M�:��$W�D���;��cF��^��p{�|�L$?�#��� �'��%��_������%�݊�%��W&�C���b$^�IBq-�:�����8�!���W��v�B\K��#�����!$��H�d{���IDAT�$!���x�G��p�'BH%^�IBq-�:����
O��<J�:����Z�u���!y�xuh' !ĵ��<��(<B�(��0�NB�k��y��Px"��Q��a��$������.��Dɣī�@;I!�%^���@��G�W��v�B\K��#�����!$���$!���x�G��p�'BH%^�IBq-�:����
O��<J�:����Z�u��Y.<]��(^�I�pM��#������<��$��&^���\A��_���;��ފ+>���u�֙�z��6��?�=r�����7��5��H-����o�m��k������[�s@}1�#W��
�p��^���"+<����X�����O$������駟��e˖��>o�<�d�ŋ�d�zMe�W$�q�F�g�
EEEUUUz)�~������]��,X�����S�++���Dn�����|��[��������T��~P�����te�ƍ�~���_�f��(ȳ�Z������S�
6$ݘ��9e
�K��ֱ�$O'O�z��Z�7C"/<ܓ�ׯ��z�ʕ�|��l>�����b%S�'QTTd�֭[�l�2��2o?�P�#�ڪ���K�]�Vͼp�B�tYJ��}�������/^�X�|�ܹ|��wE�H++e{�.]��������!�z�w�}�h�"=�l���v��~�e�/UXs�,�9��2]��N�T��j)���!%��A
OzS��S�=�~��w�yG�s���_�|����� >2Ux���oU�ɒ%z��ի���KJJd]�Z�p���,_�\�[\\���'����Ν���W_���������j kj+�r�\���^DQ%�E�yk"��|=zNQZZZVV��V��$�SUU�]���;��9e#�D�'�l�����ls�� �l���dO �'����C��˜�����Ә ������H� OK�,Qu��52h�ܹ���7n|���s~��g�_��^p�ҥj���/��w�}��3�f�
���������jV�f�g����R���HY��_~�f�]� �����A��a Oʲe˾��+ٞ�?�\�_��ի՜kUÂ䩽k��T%��˗{�{_6��S�=){^����պ����{������Kd�����~���o������ �:Byy��T�LW�a,j���"U�Q������� 6x?���{��\�>��/?�5�_�^-k|�Kz���m ���+W�9��j���F���q�M��^�!B� �o)�ɳ٫V��m��C���VVV����LƔ�{r���j�+V������ �"+<���˿��=���;o�C����Cjܐ&SQQ���/ k>Ȧ�̟?_M����Rk��Y����7z���5È�<�f�DRVVf��(�z��� ��Fi��ɘ.���(yR;�p�Weeeamc�6^6�k*��<�6S��I!�oaM�룏>ڰa��!�����S��俋/���O7n��e��E��M��C}�����?T�U�w�y��f��A�>��>���I.��&Z����Ra��(��Ӧ-�WOٸe���j����Z���~Z2��˪״������WD��٘|O yv��l�+� �������� O���k֬���������OZ�o1����?�_u+(U(Y�r�����tuol���\�?���?�9i�'�z�'��F�d�n=�h�g��#&������^A���O�����W_y���{�������b'�qsq[�O����M˖-SE�y�橥�ͼ�t�f����Z���"{�6�h�_��W��@��'�+��Az��l� � }o+�d�H O����~���>�H���w�,�����pM���Ț�dwD2��$�/_^XS�QK鲈�^II���p�B��>�@����ڊ]4т�Gmdᖏ�yEUx҃�좒.{��պ�Z��FRx �' �[����ꫯ̇����@L�_�IߡI}��K,����-�>��s5���mժU���P�Cv��fM������2���O>Qw[x�}h �������}��w����O�C���P벑���I�^������ ���i�@���"]Fٸq���:���9[�&� ����������C�P�D"��/[�LװdU_~�����.�x\Ϛ5k�w)��?�X��r�Ju+t%lᩰf ��*�U�V���͟?��ę�ﮨ���^�.I�iS�=)��̩FmذA/��_�������@��k�i�����=�CEE�*��\�o1SU*QUU坮?�e?�u�d=��zMYY��9���m ��i2/Yv�ҥ�� Oj�Ta���ɓ��e�\��\��.r�<�ׯ7��lT���{��/�Te��˪� Y�]q�����qAᩴ��0Y(�u��UWW�ʂ�5�X�®/�D5��읮o����;]��|�����ܹse�d�w6U"����N� ����G��߫��j�ڵ�U�̩��y��>��s���իW�so�?�f��V�˪״���9/{�S6ۓ�|��7�W��<��n�/������Ί�7~��7�V���I9��7y��J���_gÆ �c�ȳ|��wz�����_�Zvѷj {��Mu[6=A��ڵke{V�^m �����q���"�F� .��, ��������Z�r��d��VuY����� OqUUUU���൪˲������Qx���7���;�D"�!KuY����� 8 O������� O������� O������� O������� O������� O������� O������� O������� O������� O������� O������� O������� O������� O������� O������� O������� O������� O������� O������Ȉ�P�s�% ������IEND�B
��PNG
���
IHDR�����U����Wm���tEXtmxfile�%3Cmxfile%20host%3D%22app.diagrams.net%22%20modified%3D%222021-07-26T14%3A42%3A32.778Z%22%20agent%3D%225.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F91.0.4472.164%20Safari%2F537.36%22%20etag%3D%22-U1ltIXT_qMN_Hn3ElUv%22%20version%3D%2214.9.2%22%3E%3Cdiagram%20id%3D%22y3rSV5-m2jxOvDuPhkYN%22%20name%3D%22Page-1%22%3E7Vptb%2BI4EP41SHcfWuWd9GMD3b1WrYSOk%2Fbu08okTuKtEyPHFNhff%2BPEIeQFCCy0u1okVGUmMyae5%2FHkscvAHCWrzxzN4xcWYDowtGA1MMcDwxg6BvyVjnXhsIdW4Yg4CQqXXjmm5DtWTk15FyTAWS1QMEYFmdedPktT7IuaD3HOlvWwkNH6t85RhFuOqY9o2%2FuFBCIuvK6tVf6%2FMIni8pt1Td1JUBmsHFmMArbccpkPA3PEGRPFVbIaYSprV9alyPu04%2B7mwThORZ%2BEN919ZPOnsXeDkq9fH53pW2jdqFHeEF2oCb%2Bsn15HFGXZwHAoDOzNOFxF8uoxzQRKfazmI9ZlkZYxEXg6R760l8ADCI5FQsHS4RJl8wKakKwwPI0XEkpHjDKep5thiB3fB38mOHvFW3eC4d0MCmp66jExF3i1c%2F76pqrARswSLPgaQlSCUSKjmGg4yl5u4apc8RakpQ8pJkWbkatiw4Wq9xG1N1t1xAFwT5mMi5hFLEX0ofJ6nC3SQNZwLKtSxTwzNlfV%2FoaFWKuFhBaC1bHAKyL%2Blem3trL%2B27ozXqmRc2OtjOI55cMdW3qOKRLkrZ7XVUiVOmEERtxAZtsNyKwGFhlbcB%2BrrG3uHzuQQDzCojVQjutmPqdD7bSWWRv7NLiX%2FQosXy4%2FUiwIxEXb3YGnvoWmdmvYewEF2PhaZt1ot1oRKz1F7p1hlo4qO7dq6RPMCZQF8yNJApPOQTvclApM9sQZVjfrtha03bGgS98PktMcNjh1dyo59cZA2vuSc%2FjO5OzJTa1OS%2FsAKT%2BAf6Y2%2BEj%2BWXXamM6p%2FDMOEPnC%2FHPfmX%2FDX4OAH8Urq%2FGutMwz8coy3pdXhtki1tPrhC4ikn5irMWxbEkSilKpskKWilKH5QKWkiiVJAMk5QvPk0KUwCbhXt0QUn15fkxo8IzWbCERAXr6r6XlxYyT7zAsKrmZs1fJNMOpRUxlpmIVxxnETEoS6Q3XC1rVAp9RJpTDZ5SieUZmm2kkUG%2BSekwIlqighhIPEHbDTiXu%2BC6ehedR4k1i6EZbietOB8P15pvxbFrcsDqaEMxVY3NBgKBQvnuwZrD1xChtcQdqIfZWbVedS2ZRHIqdvMpgZ0XS6DmPGVuV529VGulikBvSvBfGJAhwmu8WBBKoIIBEey6XWl4624MPFHMk%2B5oNjzQCW69s%2BMhwLkYMNn0ckRxZDOxaYsmwfjTYsyzb5Nhsy%2FpxoYw7PxXsw%2B8jSvI%2BUeBdngvop%2BOcAGL5%2Fk4B%2B0%2B%2Bm7vRW%2BCbbfDNDqApmmE6YRkB8srxeRHbIMAhjH%2BwCZyCvm30Q9%2B9FPhdOzXZBwI2lV8RQ%2BH%2F%2BHMgw0y9eOs37j7QDMuIa4e4FEc6zm06OdLc45%2BPJHc7hYWH%2BFVYdAkLG7uB1bUAXGNmOs5lhEVvqriXepmU2rnVT3y2kHOSoqKUv33axaZau%2Br7O7aLu59bUJjtQ%2FaroDifoNiP%2FkcLCtPYKSi%2BxEhgmPIRauG6%2FI8mQN9XwOWWf%2Ft8a3MMQVEWX%2FVCh14IXR93%2F0tw5tryhOoiesHSepKledR6PrK0pWXRLkLGE6QEA04XSe%2BWsanXrgr%2Fhi2jWJI%2Fr2KwulTjiYqhL86%2FiGI4bvmfgv7lFAOY1c89ilPu6jcz5sP%2F%3C%2Fdiagram%3E%3C%2Fmxfile%3Eo}�� �IDATx^�tT?�/���V�)��P���w�Cqwww-.������L��o[�Ry۵�s8���d�L�! ;%���ȹ/�~d����f&>\��!�l�' ��0~�g�z���>�o��Eؾ��{OvM�"l��7{�)�fw 0'��9�m�0�� ��]�۵���y���]@H��I�"lN�l�"�1@$
�(�v�~�w�"lv�� s���>ۦs�� �5�������3B��p��k[���F�QDz[$@�#�"���[�J)R��ΣW0e�PLq� �O�!���G�p��[(��:�|�Zhآ=�F��t � [μX�������ԯ�?�!qxdΖ kw����n�D>>�~�bljh;��E��5y���� hN�D8I���{��G�njI#�~�)d̜� +�;�k���B���^��k�GN�D����Q�z"~�Dhֶ�����J�K�H���|e'/��<��D��זX!E��B�H������p�X�ѿg[�q��h\��� ��x�(Q����%T,� ��
��3^Dx��iؼ~�rC:��ذz1V,���]�ly���j����G�l��,A�rUѸUgԯV�R����n�B�_�%�VƎ-k����m����^���/��������Ocp�N��B��P��z��"�gW/���3&��5����(l�F��(�Z�d=$@VI�Ex��}9�;.8�)Pũ�3a�oݰ]��G�<��|�A/",��y3&����[@ͮe�=g�d̒��*KH[DPJ��m�2t��p��q�0�u�_Ϟ��J��p��ѲC��ɘ9��̋JŲ����7�_����^�1FM���[סc�Z�\�
���#��]�W�<e��a�r�%К�-����%�ܱ�@t��!Ӌ���|��A�=~�T�Z��"���;%�}��C�V�1s�h���O��s:twQ���笄C�lJ���Vz�X�
�[�Âջ���W%�b���/ѱ������DZ0�N��C�Ѻ�3����1i}a��e�$@�N��DX°Ϟ<F�N�����J��&�g�K�6LذpȔEK�G�B%��qb�����#0a��5k�-����ܑ5G�?s��S����Bűd���팱n�TX[DX��C]��I�x�q��!���z���_��������ة��_�� aÆ3�P�RML���҇��(�V�.K$�5k�][b����}�Z-�-)2fɎ��N��:5���K��o!a�d���9zzzza}��Q�h)tn��g~��.9w��ԅ�R��Z����"����$�>� ڷ-�UD��u1n�bej������C9m�T�����%�L��,E��ѠY{1I�!b��(�&���I�,������q�b�*ThسM �d8gGٿ�F������", U�;7W��,�r)��""�2u:ϓFe5�W� �~� T�%�]8Gr~nپ'^<���o�҇�eV_�|U,�?C ��C���9c�(���-�J$�9k�Ϟ��SCB�$6-\�)R��"�)S�Ub)a[���ܩ�ʎ>{��_��τ%�Q�Ҹ~��-����.^��\1m���,�Q;��C���w�X/�Yn�cҘ�X�a?r�+ɺܧ�Z�Β=�
G��-Y���4�]�^��֫~ʁ .�[c�����|���B�� �j �'
m",De?��g�!�cH�9D�\���%ز�/ׯ\��S�Ȑ)��4���[���n�RS�K�$�6\8�E����O�8ir��%M
��(����M�� X.kas�|��J9�W3�X�㪙���7�>�d)R��4�l�"l�n��$@Z���l���7�#Q�d(Z�<&J���(�$@vM�"l��7{�)�fw
0'��9�m�0�� ��]�۵���y���]@H��I�"lN�l�"�1@$�(�v�~�w�"lv�� s6g�l�L�˛\I�H� p&lN�a9�a�k$@�&@�7#>a:aӱe�$@V@�"lN�a)�6�\v�H��(��f�'LG�"l:���H� P���I6l"E؆�ˮ�� ���E�ߌ���P�Mǖ5�� X��8ɆM�۰s�5 ��������o� ������(�de$@�F�\"���=�w��U� �C{ѽ]C���W|_�|F�Q���5��+��:wn�)sV�����Vb�<7��tH��9q�;��M��J(�6�Dv�H ��%��vm���ݰ��{�;7=�-g^_;"��3'�"S֜~�������a�b=�g<^!J�h~�Z�O�8���+���7�w���I�G��$@>��tn��= v�x>Vr��U r�K�"e�t�7d<r�ɏc��a���1D�R�̀!��&LX4v*��n�L��h���'��ۼ5���fN��f�Ǐ�\�����!C�I�2?} �?}�y��#u��X�dbʼn��#�*��1F 讄ݻ߹u�;cԤ��#��/b����Ȕ5vo߈t�1d�t�M��W{�����b�K�N�Xqкc/�j��Ex�ʅ�?s>��*5�}�~*����+��=�7"Y�ԨQ�1��7Džs�|ퟭ�c���y��!��p������*��L�W�߿Cɼ��!�v��va����s�:�ُ�m�+a�����\������fOƂY�1g�V�{���Q9�'z���2�{ۆ�^�1ZwrV�h�����J�K����M�b�����e��z �e�2��q.=Zc���J4�EDX�T�.�W���|��%����+�hO����K��A�����'tk���VlG� 3�C�v�E���?|"R�ɀޝ�+��
h�.�|�,z����g��8r�>���/@N���)���F$zA�C�w�E� *�)rep��10�u:B������O6�<~�"9R�;��,Y�6^�Q6 +9)���Ŕ�C����_"|��[D�bC�u��}a�h�E��%*�_��Jųc����Ѿ���l;t9��T�[�h)U����#�]}8�M���;.�����Y�|>fOu�ΣWԇ����?7�_E�R��h�n�(&"�W�L?2���p�pf+$@J�7^0k� K�$')�KW4��[�Ƌ�L����ԩ\e+�@���1c�hl�wV�H�%}°X��(^�z������%�VV�X7v*���x&l��u��1ԩTOl���]����OdH^��i�>ڳ��T(�'�>3��'�ƕ��Т}��)��;�<�x_>�ȇ��1̥+�_��� �铇�W�,t8�,�p��� ["��߿{ ��U]�Y�ȉs� a%8���:~�T���/*T(xzz��������}�{�ܟzn��3�d�ׯ�(� ��@�J5P�i;�β�3�w�&L��ƋKXW_�"<~de��{wn��cz%���W�Ӟ��Ω5d)2Ϙ5r��o�Z �c��y�� ^�x� ��X�T(Y� :;BԨ��� ֩+��A���x�� ����������y�h8�k�����s��8}�vlY���s�mAn��;�/�m\��=e�O��k��g~2#ݴv&�\�� �Yp���P�a� ���gO�u�*Ԫ�\���E���b�B�1vx_ܽ}�W�P��>�ӤUg�kR1b�F�A�����ʌ�������8z �oZ��K7�p}�m.|��/c��0e*TW��"� V�TfQ�5�� �� X���_�s�Ο��}:)������u���h�m ��Җ��)�
1��\�d.D�GN1����OѴNy���9[.�Z�I��~����)R�.�bѬЯ�J]�u\��#���x ya� K���)���l����� ϟ=����>K�!C\�����hQ��
9KuG�3|d��?S�B�DI1s�(�-����!CB�K�8Eغ~�h- �� ��D�?��<}�I��0���7c�Z[}��.'M����E�^�~�bH�2|��/<�aU!pI�
�"aiW2t�0���{�}���wo#N�x^�=�+!z9�D2ɓ�L�?�Ə?��/yN>��,8w G7q�G$
Q�a�:��;�[T�i���[�/h ���R�e��s'Q�vc3�MZ��5x�6�� ���)E�dF�b�!@�W�#$@�!@5����V$Y ��U�[��l�h���!�0Dv��x ������t$�1)�0Ǎ9 P��I�m�� hM�����P���x@����Y_
P�K��� Xٕ:�
md�m9��g�"l��]�A xv��K��H��j����^����w�:���{j�b�?A����{!���Ä�(���p��l�@+����8�����6����}��m ��Eآ�C�H��M �Nx�8
�ݺ���X��"��UE�7d>a"a�e�$@�&�����7�f�'�5�
\҅�}��ø��OS��I��t28��� �@� Hҕ���e�+ag�7����������W�j&ܵh����H �dM�'ׄ̍/�� 3I��-�^��Z��p�YG�0(l|�H ��Ӆ��f�r��f�"�JVP���$@�D��n�+�Wr�k�v��,��5���dT5� .��� ���d�W��/t3ߵ���B[ij¬�/<1��H��"m3:�߽�eE8�H��P�9.H��E ��6�5����p��p��fc�P�9$H���@F�̷�Q��\��B6 v6�#@�P .t�[�H|��A���Y��}�a�@&'PAvNk��H����B�7حa�u=;N&'PO7�}e��|���(��W4#@� %+"�h��'���zK&c ���'B�6���oO?@��q6l8�����B� c���}���_�����)2��e,B�"�q@$���Fی���w���S�p��1�|�A�Ϙ�O�Ο���g�ǟ�K���.#�2uz�v���oشv*T���ɚ"*�����ISxi���^to��.=�=�;7G�R����Gx\��ރ\�T�-�L�%o�/$����W�X� ;� ~3ߢ�D�̉��[��ٍ�� ���K�8z�^�|��;�s��ʻ���;}\9Q�E�U�߽{�;7=�-g�@#��߳-�8�߿Q��&�^�LYr�N[z�"lK�d_H �d։o�L���v-�G�:�G�;N<��v�]���Gjv9u�Pl�{V̈́��܌q��ABΎ�a��Ɉ� 1֭\�!���Ѣ�P�y �6�A��.���fN��f�Ǐ�\����!B�^����k�/@�ȑѡ[�]��Ǐ�G���0r��/�?�0��8��gV��e2gC��%���9d���P4gJt�9�7�����w����g0}�H��[��x��1�#v#c�3y>bƊ��.]q�; W��[� /���j�~7h&7O�'��M��7m�vN��(�V�<�Nf PH'��t!g����ЬI��p������*��L�c�%�E�Q�^3,�=gO�+�u��3�I��J������oU��ޝ�(�?R�J�J��!�c!dϕϰ.�j���=� G� �ѽmCT���;9��k���s��͟��V�(V�<�6���3��\e'�,爨Ѣ�e��8vxfN���_�¹ShV���|�"g��ʎ�}����X2� �����G ��ɮ�Շ�N=!u� ܻ#�7m�>0�� ��B�n.رy 6�^���f©~sΞ�&�E��%�][�ùs3eG�P�A�"�ٯ2+"�&PQ'�)�����U�����ĕ��36�\<���r)qNݏU[�f�e f3��0QRܸ~k��Ƕ�����CD�GNFU���Q6 +�.ջ���Ŕ�C����ᅫw�Y���Kгc���F�ߦQUdɞ�K�E��y���M$J����ȟ9���|���^�j����!g�X�q��>~�E��ݏe({ƍp���ԌV>���gΖ ���$���UjA��w��d)R���]���%r�й�*"
�"l�#��'� 4ЉoH]�y���M�̚���Rd�V���/]���2X�l渍�Σ��$��!Q8%�3&�D���g�X�3�Β< ��:���Ҫ �p�«�� ���m�V�D����a�ԅ(Q�����d;��w�+� ���k0�u�����ܲR�ψ�i3�������P���_"�����ׯ^x���Y��YS�'�{�%��a��5K�b�:��@���q��[�-������_D�4lm8�?��#� $
$�J�<��|7�j�}��wo������Mj�Q� &A��Ժ���:l���p��W%�2;,�+��}������2g�z\2�+˦B����R[uFL�m��у�(�;��уz�l��+e��ػc��[�%��7Ξ3�
9�|�f�Rny\E��IUط�,�D�ٓG� z0|
eO����!���
�e
8�E��Ȟ;�
��=�$�$�ܹue
d�"̶:���/��(��э���|��m�5-ISy2�C���P�nS���f�"¿~�B�j�1g���[@%hݸ~3m�̠E�%;:O�"���fMq�d�A��f�|��H¼�&V���嫡vÖ��M۪���hԲ#�܃V
c���?!r����N�4���g�D�\�T��g��ꃂ$�I8��SdJ �P�#I��۵�
G�p�0�� ����h������0�a�uM�lϝ�����o�ȓׯ\ĊM��6C&tk��[7�T�Q�X��x#�dϭ���\�����2fɮ�����2���)��W���e�u֒M*�k��ק�p���T�Զ��Х�\����֝z���T.�����B��}�z��������%1��L����j�/Y���{�A����'���G�mKh�l���۸�jWf�G��´��e���O΄9 H�~ dՉ���ʱ���lw�������uJR��]e�qy��1>}����R�u��l�yt�%Mfت�WQ�� V�½����|����"^���/m�G��.ߞٽm���%j4���c��%Ț#�� ����4�m��d�*Ai�fޥی+��7�"� m3z��m�A�D�ư�;����Ջj��!3� {N#B�����7�T*�cԇ�1�z�-Z��@ ���a���8�f��$�V���m3�Ԡ^���"t�I
��p���/-[����R��~���&;n<�v���l�5P��߇� ��@#���օ�yT�1��nJaS�e�$>��W���n��|�Xn˦aޢ��~��Z����:0Ś Eؚ�E[I��b��{E�e{�$\��k���)D��(�O��I|]r�Cܸ С�S�ni�}ǒ��|�!8�/��K7Y�I\a����=�-r�~�@'�����I�\"l�(}��Ym��6�_�:ʚ���в~%�/:�E�@�k�e*T��5K�s�Z���D��� X��:�� �ی�[�i�a�D��(�����Ռ���{9}�A�e���){�%�,�*��R�Ʃ�3'����Ԭ��]���^r�\y�� �o�*s��Vu$&E�:����$����b$w��7�f���N�?"�[���8z�R��u��$�5�/�=In�2������^t�3 �����Q��r,h�z��Duִ��%7F�a$2�]�h�:E_���F-:�� ���7(��˛��@P T��|�f�2�e ���0oQ��%��&Q�E3x)d�Pjvl,�t��3�1z��I�N�rȒ][�S��f�q����� 3Ə�N�=y��n��X�}��*��P���K���&:���ߥ�� ޢ�˭LZޢ�a����*G9bS�WD�i��hЬ�� ��-/Ζ#@e�c�ZH�*��j��ȁ= ��rŢ5��5x�6�+��F�V7ta�� �T��-JD����r��� z�R@D���e$I�oR�@�Y�r�a�.-�DZ�ww�8|�� �IDATQC���7x��2eɁ�m�S��o��ձ &Nf���T�F�z)�Z�d=$���(뽒�G7�[�XL@ ��hޢ��-Jzv����x�^�� p��5CbV�&Ց�!�J��s��� �Oc�ؾi5f/ݬ.��ߣ
�� 3�b��ؿ{��5�Z �Q���>ck(ak�m���f�rs�\�p�^:o�~�W�y�R�oQ�ۓ�$�s���2p�d�wȊ�+����ШFI����+;�u���ޢ��%>�_U!Y�S�B�DI k�go�VgQ�9�9���������l���v)����gH��r�ķ��6���m��� �G��C��(�|�������==����S"B�H�W��������oH�2���Y�._83����EK���^����FȐrh��������.���s� >�nw-�gZ��e�.x���%S[ph�N�u��kv�i�hա 7u���O� %+"�������|�������Z���nQ z ~װe� )Q��
}�(¦���O��N|?��w9ᘟ�E��>�g(���}�=8�� �d;_Ӆ��G�l�(���ħLC�"l���$Ԭ�f�C7�u'�#@�<�ؓEa{�6��m3����^ ���F�P�ǍoiC�"�
G�B�u�+g;�o3zL,�O�"l�>�e)¶�]�-8�҅�sm3�
�
m�kSk!����� �59XC������J�� xzZǩ�Ȗ6���E�_�� (-t�+�jȱ�+ɅH��B�"z|��7�f$g9�����$@�'@6=c���m3ڢ ;�ή�j K%@�T��.sHg��H��,m��� ���(#e�VJ �N|+�B�v~j�}��$@VB�"l%���&#PFv�[�Exe���d��b 0"@�p�W�t3ߨ:�m� �o ����=[6�V:�}����6�l�H���0G�=�h���N|w�C��G �&@�l�к�Hh��h�.�|2hU�m Ў�EX;���rd��|�]��a9�� �C�"̑
Ku3��Fی��R� �"@�-�ko�����h��7{��~�� X�������M��.�,�W��w.!�� ��5�[��h������U�/t3ߵDC$@�H�"l�^�O�#m3:�߽����&�a[���#��6�5����0 �� X=��ջ�f;�Q7�ma������#�Ka�t�Ew��n�[�h��K���Ƒ� �@ P� ��iN��N|�m3��y+��H�,��E�a���Ӆ��������M$�(�v�t �r;����n��B�$@$l(���� ��{��f��u⻟dH�H�^ P�������F�Bv>�&�5 �<a��-Y�Y7�mb���-u�}! �������@!�̷��6���E$@$���E�#BK�t��h��/-
]$@$K(¶�M����.�Rv^h>S�2 �� X�����-���$���n����M$@$
�(�˵+�Q�����\si �� X.������,Kn$�Ku�{�Ҍ�=$@$M(���-�ؚU��+�n:�kS�* �� ���m�S����| m3z�e��H���E��G�����_9�j�n��IL$@$@��k��Zkl� ;����.�֎�n �ak�i�}��mF��+��4M�V �(��9&be:Љ�a�D�^�� ���P����-�q����T+��^0�!l�H�H�qu6�tđ��%,��Lv]ع�Q��� v�������ם����xv��E��D8}����4xmk.X���|���{[a�~�@P ��ʳF�NA���@��=5��L�"(~�% ᪺�oB��N |�& �.�����zF��K&�Mt��C'�r�$ ��/(��$@ր��ph�mF7u�U��� �ya�w�Ew�"��{�(±�2������]b$
7(�v�j��(EX��A�S��\��^Ҡ+����E��\nQ�k�����Q��C ��*H�n P�����q��n.����1ߏ��*H�� P��_�|E��!.\8�+��)�8Ԅ"\]7����*H��X�x���9"y���zt ���7�iX�{52d���� T��[�� <U�T(W�,귨�(Q� S��Ț3+�m ���_?!K�Ȕ-V�X��X{��9�g/��H�#��p>��q��}�](���"�L'�_t�\3Y ��lE�'K��'v
��I�5i6V�^��>�p�z�2T(;t�=D�&��2�E���7\�"^�xh�VvL�^�=y���K f�([�,~�����.�ʅ+�٠&�d�c�"���5�Fی���w��
?زnj�zV�AkV��� �8�(Q#���
T+V
i�b�^Dx���غ~��~�i�&�Z�=�P���[��Y��O�Ѽ}3lZ�%˕@�V
ѸZ�L�C�����q�F+[���·��P�Q-%�z.R�0�-�s�Н[wQ�@EdϓK6-Ɨ�_0a�D�s�C�F�ByѺKkD�-j�D�y���<���M���N��eAa���/Tء�c��H��A�VEx��3p��U��2��A���
�ѣMO%x�7.�"�c�bጅ��9��P�k�e�X6�dD�L�] i��۴���%=}�tLuu��٣W�(A���̚+T+���~�����f���P�i],�����ǪO9�����߈�ȝJ�d����rb���ƺ
EX�"�����/M���|�.ߙ:9��H �lU�%<-���=ۡ]�v��^�E̤|��I��:}�U-�o����o�!�hԪ!�L��f�~�p���Ѷ{[��z~�x5����v��5b���w�լ�3�ϢO�>�Cì�3
"<v�+JW,�P�C���(EX?�"�2���hޚȭ�jF�Ώ50�U�� ��5���e����3���R�k%1�����O",��0a� C�(R�09"d��~��̉�0y�d5>���V,X��ۖ!K�,����W���"<w��+���-��# "�;n%���8b�܉���ą3вN+5�=v�]�v�+���C����W(�������R�(�;�0��4�H��@�E��X�|�ۆ�£X��Ћ�>1K�ϛVoVdv�ޅ����6�&h���g��Y�_4?�8�ʅ+�?z�C��b��Qj�
t�Kx<�c.E�xM���7(���2��uw4��P��'ϟ��iS�3��b�9��:EX�y��d+��{n�諛�� #zf!��(�떯G���Q�X�
�R(����G����P�z��6:@", U�:������2)��""�"uJ��SF�VK�+n{���~��dG;v���߸r�J�o�҇�Eh�C��e<�[�/�9�0a9��$��:{~8����4��l�H�g�(�/��@s���(Il��f.R�J�E�S�J��y�����j�o�N�����q��D���L���7�ZΓ?7N��R"\�x!�u���f"\�p)j��ݨ>���5c�L37,@�|� Y���W��9���q����{qF��I��ʇ)�������.�����앳�vxs&���t",3_I�JfT�'x@-��5h�U�� hL�EX�~\�?�Ps�!4&�: G� a�J��"�|��y�ϔNe-/��ㆌ� ׁpj(��j[d��㇏�/��[@ma
��a��++ȵ���w���ՠ9VA$�!ka
��W/^��cy�]-�d�iKhZN�J�"i���(�x'��)�9,U��Q�M)� GԠ9VA$�!�p����S�N�;H�4$�*A���̎ߢk�� ֡���H �(%��� @ր"EX����D�"l&�lV�k0(�@d$
&a3�g�a���EX+������E8������LX��@��"� 3�� <��LX�1@֊$�!��' "���E�?�Wg�3}��dH�@��k$8��'ر V����+�=|�8�b v���6��Ÿ���@� P���/hH �"|��8qB��Yqd�כ+��눝�´ˑ%�\��wy��=b9W�?z��GL�{���қw���y$Vm�m�Y����7a�Ƌ����ꍻX<eȿ�4��)�&��JI XP��3�@�E���md,*G!�nC��q��/_�E�L%����{���ӗ>��*^�z+uN��C�2Y"\�uͻ ��߿ql�| �4b�R792� E8���EЊ�EX+��'0-��rfF��Ѯɟú�܌�K�����J�E�uD�:� ?�{䔗٪~&�]�߾��F�"�,p̙Ek�µ�k�.���F�|�6f.^��};
���>{�>q��9��}cʛ]�0�m!�-� k�nX�:7S����}�����#�#@�<�ؓE����8���RuA����c�D%«7����� !���Z�D���]��S|a�M�P�nD� �����1p�L<���W�τ�����s�e��X�q��sǥ�+q��eTn� ��݇OЪ�0�Y92����y�g��8��$�#@�8�ؕA�a���/T��mG���3Cqx]���+���7r������ܰ/K����E�C��H�,1d&|
�,D�#��W���G�(�S1a�����Ɲа��|��ͻ�V��ػj:
�ˁ+7n#N�8r��O/��E�ߨ� X��ŹĮ
���v��[�SŒ�)��ƾ�31e�ئr���]Z dȐ>i���>)�&4^�y��K@�.ߠ��7vL�8�^͆ET��WW�!f���H=���C��U0}�C8zڂ�<~6��|�֏o�{�D8L��h�}�ڂ(�#�i���.lX�/��[(��%��H��P�-�'�dQ�Dx���X�i�D���r�uVc<n�]��D8G��p��.�ߵ�(��w M�jj}��C4�2HeG�.����������l%�a�\WT+W���E��b��YJ�GNY�DxH�6H��N�Z�K���=d-QW������{�D�~c0̹-J����[֯��q@�7*>H� ����S��$�{��E:��H�<���~���)ra��m~�����c<we�1�Oئ�@�D�ӗ/H�����ֱ����_�zYJ�Q?�rp52�I��u�#V�h�9�&�Z�A�f����}�!;Z֚�6�n�QK�̅�X>m�8����Q�ag���[�5dG��y+4V!ri�c?W�^��nQ������-Jd��N�J��k��߱Ym��p�
��w�|�H@+�|� �p��|5�ܚD�Z��hӵ���)���=y��fBx?"zv��������X��@��� ��~P��Vi�/����%�oc{d�-jd�ܶH����I�o���R�ꆮ��)!4�',b-Y̲�ً�h�s�Z�N��T��*���'�h�
Tj�[�Q�uiY���@�ByT;��6��'�U8Z�1oZ8?~����ơ�q�E�c�'f�� ����I�LB�'���~�j����o����hߣbʼn壁Wo��x\�P��wt�f��o��P硸|� R�N��C��=Ov�?u��́ۢ���s'�a�E�8gV-Z�gO�����8z��fĈ�#�t�̘0����I��X���uF�֍�3oN�]߿G�Z-�:} �?}��"u�TX�d���ed?Ċ͝��(U��j��<,�53g��д�a���/��<n�G�q9RDW)k�O��B�� UҖo���gj�8R����;�~���Q�����j�8F������L�}߿�ya9�Kķ�t��K�M�o�|�H@;!e3�h�*?!�E��ln��F�?�(����3a��V$K��m��g�}���9K�h���Z� ��G��1�2�e�CZ��hթ%�8�ų�
���|�2v�}���j�9��F�Y�TW7L7z�G�t�0��0�kZe��C�zmP�V�iZ1b�@���Ѷ[%���G��rA.Y��4��������3�x�b,��3�πCf�h���0��~�9�6��}�sb��� �-�a�K֘�oW��au�� ���K���������=-�Ӳ.�%�g���]R��O�z����6�eW8������ ��!�[� ��wm�ř;�U����GX�x5r�υ�u�����9�j:O��:Q�E�S�O=�E�w&����t̴��O8�'>u�$"F��#���[���&��-CLL&�������P�ZY5��a�CU @o}��wXf���3e��쿵�O�z��Ъ>�G�����O�ie�ԭe]Zק�mZ��W?��� )���� ��!�[��I�e�8{�s^�|���e� (V�(�����>^8s����W_��d�Rl:������t��H�:�cFc� ?y�D���̝:�^��y�%½�9��?Ky�_�.?�D�Q2�[H��� �����{��կ� ���.-X��FH�/mu��2�?J|�羚k��>���Ue�6q(�'���1�#C� �Fd�ڴF3\x�B���awoݍtӡ]��8v��B�R�M�O��?|������q�ܥ*4�G?�� �A�~�] ao����vP�5���5a�;IH��Nx%6��X �b$@' k�t�;�+�*����ך��?P CAt��M�� 7�3@��Q�^ �rG�V=p�;ny�R�څ U�Th\� dm�_"�T���D�F����_��R�Jn��p�o",��.]\p��~���<4�V=��$(�h!0e���*k9U�āy�l���-��"ƲN,#\2���T��ʆI� Hv�����W����v͒5�c��;S�L1y����cX��jM���O:a(��_?�M�6p?xL�,o�����_<Ie0���������)ɇ��3Ǣ\��������#�&�2c�Q�&�F��W(�Ljٺ����>߾����YKօK��j��5�����6�&YS�h+ � ���X� ����O�����>�铧H�,�_�v_>�h1�!L�$�����;D�Y���Z���ׯ_ �cA������Dx��ux��9���]�#g���$�8�b@f���PpT-[S�;�u�" �8W%q͟8H��s���ݎ�?�Bɂp��?~�D�j-��\�g.U3�>��E����k��E�Qnx��#jW.�1�;#|����\B�A,S4& ��Т��,-(�0�D�<ֳUk'
2��������=Z�!mJ��;�8�����U3G!F���>x;UT"+gG���̓g/Q�v;�r�Ѣ��Uo��e�:"R��H�2)��U�vc���hʛw s�ژ<�'ҤH���Ǫ#2K·�YKCN��Y��L[�ΰ���T'R��J��P��Ǟ-&a��P/t}G����'�҄d�+*mR����PNڒ�����r2כw�7{&<|�N��Q�DA�l�H��\Q�@.|��Q���Ck��GO�ghSN���)���q3�����v%�
�
PO���rhGE8��� ���E��>�g L*�"��' T|G�-ĉ���E "��"3� ��!M��^DXN�����5��1�R��n
���Zw�y����ML#&�G�X1��������U��⾕Ȕ>U��O2BV@f#@6z6 τ=y�9��{��c]���{$I�.@����R�a^D����8~�"VL�d��;3�Mi���7��+��Ex㎃���6�����5����<pL�Q,E�t�rgs@��$D�6b(��]"�%@�^�ق�&� �$�r�a��p~�ru߯��$hmY4r�t��ѺauTl�)�$T�ZQyG.d�ݡ� G�$�"�ŝ�
��)H�:���IցƏ�2u;��Yȝ-#\�-R�?:��5�G��_��^ P�����oMEX� ����)C��za��p��1jV�z�čѣFV��]�g�� �IDAT�se��KF�$m��K5[� +KFu��TH�����W��"����Ȕ.�w�+7���.���hI��lj)���i�Q�nM�@�#+!���;��T�BU������ւ��$j�}��B�T�=~�ɓ$P U/^�A������*rے<#7'y_�EL�"�f� EX+�������p��I��B\� ��N�I P� ���������f����� �G��!�ni��"D�R������ P���Λ�k4�(��d5$
a3@g���EX��@�$�!3����י��2�$ R̋
8:�#�"D�|��H�3a3·�9�h�P�5�jH�(�f��&��r�C�e�TL���l�u�� ��E8�YC�p&8n��a7������|A��,�P�&Y
��F�OX#��&��&ht^ԉ�I�Y��V�'���
���'И�O��(���� +-�a�p�a�r�^������w�摀��ۭ�-��a
�$��> ��ڟ��8
�M4�H�4$@�&�
0�p������Ĭ��N�օ
���$g�˟W4�H��H�"D�|=H(�A���e����
���Fk�ub��H��50�U�� ��E8����&(��e�R��Ӆ��[���N�_�Y�e!f�
���k0 ��'���4QE'���f��50�U�� ���E�����P�5@��:�ӊ�%����b|�4 ���B���u������_�5�S3�*����}���)" c�fl�N����H����
"�Na$�O��<��b��EH�1��V���ْdǰ�CQ�N5�̦՛Чc_,ܰ����Rߛ���k6c��@���}����W۳m/�9�E��I�^��*�ϟ>��� ��3�U��{a \��[�D. ��*H�/�a��e�H�(�����ݡ76�قv=ڡ}�v�{M�7E�T�Q�R�@�p���Ѧkk��T���쉳�s06X�ߞ(_�����YL57@��{&a�u�a�U3�K�� ���q��1V9���r�� �t�gO��\�r�>n:��]�f��w�DŽ����S�-�.#�!^�x�;u.V-^��'v�ׯ_pL�UjU����r� �g�cg�"z�����5��P3f�Cf��fT�̞<[ ��S�da����NÌ 3U[�' �caGlX� g.R3�J5+�m�6�5i�����T]7��T�?g�lHxY�u��$�gL�n.ݐ!s\�x3'�B�Y�L}��u�ܬ��_�f�T=3'��-�[3m4�(� �
ac+�ȥ��X D�3�τm�[�,��w)����Y�zձx��;yN�p�0�Q�p4j�P���3��I�ZĶ^��8|�0�=~���������QG����Q�t-�;��o�B�Z-Q�| T�[] ���ߘ�n�
�6wj��c!j���ڢ��T�R�M�6�Z�
�4��K�/�M���;�R�I��֩AM�ɐV �;�>Bxe���cX�~ꔫ��Ѣ�Y�f8~��L�����Ui�䩒�i���Y��g/a{!�{����Ǯ�#T(���mm�R�5�h0���b&ri�;VA�� �%��n�C��p��aĈC�EPE��o܁�GOb�֥
���wP�%�9����V��3�M��k�p��9L�7 Bn-^�x�����Cǔ��} "F��}�ѽU��y�o�����9Gf5�u�v�۩������: V옆������l|�5ș"���P�B�CC�6��>Sz�!
ש�H�$�J�����c�~l��H�O?A������^�|�K�P��2g��EX��a&�[�D.
|�엀o"�h�b����k%<R��.j2���e�0�m�ݢ~.!�,���5i6�&�k�~��
9��Ī]��Zi��m�)[&�w�<J�/�:�kc�� ����-z4��W����_:�ڐ�׆U���K�=i�$lZ��"GR?oҶ�_"\�@Eܽu��yr���[7R(ܯ����ѭe��ƀ��:}���N�+�㊇�S�N��h)o^�AA�B�|x��y�P�M6�,���b"�ɼ̊m��o"���<��Pu[f���?a|D�]���ˉ#'Ьfs\x���B���c��UZ���]p��5L�3�X]��jŪ����6���n]�
W.\��#��"u
�p�K��jMXf���R"l�m,£��g.�LW$L�P ��������s9�R�l)���/Շ�#�����&m���Ԍ\�hY�]<hwY�M�8!�ܼ�E���2��Y{�d�U�wn�E��������3��ӽkA"�� �4�+��A G�X�P]�vV���MWa^�_��I����t:r�͡�$��m�TW�ik���f��Y�$M�N�G�\P����v �!Q��j�|���^�V ѱW8����}k5��)��
Ǧ����1�Ç��W����3Pa�s'(���d{�-����1H[n���(���ߑ=i�Y5[%�I����u��%EX�[����\��U�.����z�wK�.ň~#շ��ɮ³K6-F�iЫm/l۰] ��|�-vC��ճr�G��YUB�~��|�Q��x��-6ڨ��K�E캴語�+
�(�e�֤%�>~�8�/���w��ܥH\W�II�w�zO��%ߓ5��{�+4Zvj���Jׇ����V�ڍk��W,\����bʂɶ;x4�EX�.��2�K_�
�#��O�e����G�
BR5�_�?}�O�>#i�$&9�Jf�ϟ�@�$ Uۯ_�A��QUV��Z#G�����* ����S&��N�������䪨��V����Y�
Ih
7DӶMP�\ ���g(���JDX�S&ri�sVa;�a�!�����
5T{����a��V,�HW��ea��b��,CKx��<��&r� ߷za�\x��}�z�Je�l_b�aB�{L��!��(���{K�9E��
Y60�˲�AkLL�"lb���Oa�0��c�.P�����I��ź�bc"�Ÿ�����E�TY� P��K�� &rq���Ԫ:D�wY��L�WА�j|��B���A��w���1�<=Ҫ;@㭞�E��]h
"�E��F�� X���y̲�e"�e��֑� X���9Ć�a"�
9�]!0
��i����"G �� �B�"̡������ ����[��l�@&r٤[�) �����ג����ɺH����E��\f�3��f]ˎ�� �F�"̱ai��ei�=$@&#@6ZV�&ri��U�� X.����������8H�l��E�&�j��b"�ͺ�#�$@�O��B���e ^dH�� P��|��@���eNdH�^ P�����o&r٦_�+�Ya�u�]w��\v�~v����E�z|EKN��\g�7H����E8a�)�
"�Y�q �P�9.�������/ X0��;������L��
�� �E�"��A��8
H��B�"l�l�B 0��BC�H�V P�mճ�WP 0�+��> ��? P�����9&r����I��(¦�˺m���lͣ� ���E��
�VI��\V�6M�G�"ly>�E�C��\��+ZJI�"l�n�QVH��\V�4�L�&@6�ؾ�"��y��!��.��{L��!@�$�7�0G ����LϘ-��U�[��h��
"��:�f���P�ME��������B$��0 �����˟���Y P�͊����L�� ;#@�3���VA��\V�&IA'@:C�@�"�D.S�e�$!(���A� �D.�Aat*�d��'r�0Ϧ{�Α� �۰s�5�'�D.�w1;h�(¶�a��0����>�$��M����SL�Sdz��K�"l����$�&rq|���[��h" ���������� P�MM�����
"�������"@�@ �#�D.��9{l�(���E�@��\���M��_(�$@B��\$a3@g�$
���e�Ρi�G�"l{>e�H@+L�Ҋ$�!_P�94H��E��\�"ğ�@ P� ����"�:�]6-��i��v�U6��u�U�;_^�In�Nb�,�@��1�R�-�G��,��U'r�Yճh_KgL�l����xX�����"s��D.��9� ���s,�� ����$rQ�M�~��_a���s$@�!
�\�����hE�"�I�C$�/��E����sS���.�&���E%rQ�9H�I�"lN�l�H��\aBs���>�&�0["E8����_���
�P!C�";~�"l��g�I� {"�5��c�8w������|�v�ػ�Ԫ�ŕ���E�^�^�W�t)4�R%�a삅p�<[ܦ����;�ܦa��(S ��դW��=�뙕�\q��� ����ODɓ���mJ�c��(�f��FI��A X��U�/���;
l���P���kw�A}��Ȝ&
�Ȏ�Ϟa���[6a��]�?ej�Ex��;v;��U��!UJ?]��di�x���TF��?#�e��w�d���xԼ�(�+'v͚鏡e9�P�-���H�g&M�n�T퇏����ѵaC���Q�p�&�1�SGEU�-�f�x\�}� z#�G��SвF
ԫPo�@���P�\9H��l�Ѯ�|���rR?:4���[�bκuݵ �^�ǣx8s�2.ݼ��%J@�6*\��'�������{J�ˋ�Vc�x�� �ȡf���f�����|Vlێ�߿����6L%¹2: c���v���M�~��<QB����[�{h ��7�'rY�������0{�Z4�Z���@���"���'�i�Z���M��3W�DO��f�nܾ��7����(ެ�A����8Cʔ�o))'��Ma��.J�jm��������'MD�B "<�[W�ǎ�ʔ��G�5F�xq�5+��ڍ81c���]X�u��� �������]ЮNm%�R�ٰaB��w��E�z�8��%�[�{h ��/�ȕ�e0*�.�"�"xEs�V�2�ԇ���$a
)Q"E���-��v��D�M�ZH]��A̎�wE�6�S�e&�n�8uU:vB�ڵ0���A���gO�ǖ-�"�Q#G��'�,���_�Ю=>|��7ǎ�㈑X�y���zɒ����Ɗ�byrD���|�� �WέYeѿDa�v�#��&r�@�K�E���<�c��C�re�I'f�ׄ�})�=;�̙��[�",���I�@f��8U�P!$M����y� =w%��T3�,�ҡQ��٥3�6j�_�#R�<~��K�V�?�]G�z�Ѭz5Ls�ga�Q��R"��֭�gӦA�����1/�>}�2�w�DY�|����l�<�3�����g�s�2�iɿEaK�m#�����\�߿����-y&���4
+WB��UԬ�١8u�J̒uP)�/_��1�Q�d �� �4=���#�h IKҖ��[�|9�UG��g��{���Z
?EXր��l��kMX��&/]����SMo�BeO�_�s�?~ģ��T(Zl!>�f5����%1�"�_>K$@��-��7�n�{ �$
K��,�z�K�,�
7˺�~=vϱ���(֬�ZG��a=�:�Wb�o",�e�RM���U��IK�
D��v���+��պ���Й��k�ք��[����0�__|��=ǎW�H����aX�}�Z�P���%�}p�����)���B�& ,�D����i�7����ђE���Se.�_����n�X�0�EX�(9u뮶!I�8Yj�pϦM��z/�����̓��')�D%�L���NǑ#�\���9�Ppq�:��;u��#��R-[a���Ӣ9.xx O�zh^�:�\���ml�$kU��Qmg��-���K�Y�ג�-!z)"Įݻ�H�\j���%�p
e� �� hO��������"�,�z /��w�2q⿶�h�J�5�zr�H� U�z�VeZlj����˗Q�qS��,[�LU�$�GϞ��k�=�����߾!A�8�2!���p��fC$@f �V�y���־��5��-��� �Y~���F�-��S���Y�+ƎA���-�V
!E�
�DI�M����
�/���=��^���f�a���y�ϜV�ɱ�GG��9
��� _4�s0�� �2��F��c?�!m����Q��}��$
�(�v>���}�����I��{T�U��B�����l2�Y���I ��R���+Pg�Q��\D�R�����DG�a�R�&5-�Ēt�1D�Y{7���p�����?.����ϻ]��{GH@Y�����>;%����I@�(a�/��ӧ�.��'P��%�,��N k}0�8!a�#� ���++�' c�N���9_k� s=�� h��%���+�<%�x � ���(a%�snJ�k�H@�(aM�_��)a�K��H��$@ +I�sS�\$@�&@ k���'O +^@$�$JXI���� �4CI�FS~�}�۳���(a}I� ��I0��������
??�q��]���)�Q7�D��ayr4 �NF�v
���QX��L�f/~���cp��O��gԹ9�aP��QH�:)}$<om�����W}��2!�mDoz��[!.�5x��@����������عsЭkW8�|��Hپ;���)��ض��{��Ґl/��c����Ԙ���#�<{ �(�< {;[)���?!�����sO=��-o����*>�ZrO��O�Ƣ� �gUƎ|I ���9���q��j.���Þ�����ѽ;ƅ�!g}�|���� G���e�%ĥgȾ������üi�X��M��� s�
qpP']�
�6.o�F$�2�H��0{��ǐ���|u5�/�W�O
@��ʱ(%���ųC���e��퍥a������ꉨ����A�x����B���#�*^�ttD������x��N���烜�(��|��%��ʜ��JN��)8��-+��o�j��1p�;"�L���nH���CiX�%kti��Pkk���'
��@X:����"��5�~�wv���O������uwwD�K����R�-LJ����ei��j�/JX}5aD$@F$���� ��S�{�q� �9+"f�,�.(�j����WJ8-f�O����F��(w��#F
�{��<ߖ��>={bb�|�?k�%���]r���ѥK�[V��/��Պ#���F����صv���}��1�n���Qu���\�;.�,���W�56.Yܦ�돔˻�ؕr�Ù�-N���t�
3b%;�T�p��&0�IX�+!s��E������(z��K�����[K��KN�\�
�.β��?�gx�} %|2/Cn���=�0�yK�:U���l��i����Z�S�s�Z�&���.ִK�Q��9�q[��Y�/-E�7���%m݆c���.v���zVc^n� ��W��{��fffH\0_�]0��.���C �nm� ��$�/.^�w����W]L4�[>.�Q7��JX�ӊ#��I�d���[�W��AJ���<=hP����{$���^���#�i'��Ź�*8Ll��c�ڌ�G��@�N�t��-�9�9���b]F&jjk[>X�-�� '�~��Nk�pHL�<rn�pW33$P�z��;�P��F�7�� �CGo��vcG|�,,�.����'O��$<n�h8Θ)�'>�D%$"3���(���MyO�QN6lm�q��)Wq�ݺ���w��x��R�m���9f\Z�}%�;)N��cP��K^���U��;aJ�0�
(a�p�($@����n��/Mq=k�/��p���D��'��ɮ�i悍��?
��'��k'lgc�%!��%�m���n/���5����'?�r��_"������IDAT���h�=a.Z���;�,G�;����b���;��O���եa�T�q�-���p���pv�狼�xaS��c͙H�TH@ �7l�?g}YS#�����R> ������x��GѫG465��� ��O9�k����j��r���a3p��w��Vw��74�?�{�֫?;���%�>^�M$
b:B�&���t J��rh ����#S��6��27 �6 P�m"b�$@ w \M$�~���kd�R¦]�F$�&J�MD�Ё(��ˡI��O�V�L9BJؔ���H��$@ ���:��%܁p94 ��� �?JFh��[�L���� �4���>�=ra�I29U��R���%���0( c���A�s�%�uA$�y��旀b�(a��sb �(����ǁj����$p�i��̘H���RP��w�J��$@�!@ �����\ə0 ���(a� �P�J��$@�!����0���@�F�����T,������IEND�B
�