From 7aa660b747440bfc5beb63051db324db3c5dd761 Mon Sep 17 00:00:00 2001 From: Andrzej Bialecki Date: Mon, 14 Aug 2017 12:42:33 +0200 Subject: [PATCH 01/28] SOLR-11221: SolrJmxReporter broken on core reload. --- solr/CHANGES.txt | 3 + .../org/apache/solr/metrics/MetricsMap.java | 15 +- .../metrics/reporters/SolrJmxReporter.java | 112 +-- .../reporters/jmx/JmxMetricsReporter.java | 750 ++++++++++++++++++ .../{ => jmx}/JmxObjectNameFactory.java | 2 +- .../apache/solr/core/TestJmxIntegration.java | 2 +- .../reporters/SolrJmxReporterCloudTest.java | 109 +++ .../solr/SolrCloudReportersTest.java | 4 +- 8 files changed, 900 insertions(+), 97 deletions(-) create mode 100644 solr/core/src/java/org/apache/solr/metrics/reporters/jmx/JmxMetricsReporter.java rename solr/core/src/java/org/apache/solr/metrics/reporters/{ => jmx}/JmxObjectNameFactory.java (99%) create mode 100644 solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterCloudTest.java diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 57536a59818..1bc9cbbf32f 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -456,6 +456,9 @@ Bug Fixes * SOLR-10353: TestSQLHandler reproducible failure: No match found for function signature min() (Kevin Risden) +* SOLR-11221: SolrJmxReporter broken on core reload. This resulted in some or most metrics not being reported + via JMX after core reloads, depending on timing. (ab) + Optimizations ---------------------- diff --git a/solr/core/src/java/org/apache/solr/metrics/MetricsMap.java b/solr/core/src/java/org/apache/solr/metrics/MetricsMap.java index f43c60b5927..8e94712c655 100644 --- a/solr/core/src/java/org/apache/solr/metrics/MetricsMap.java +++ b/solr/core/src/java/org/apache/solr/metrics/MetricsMap.java @@ -59,6 +59,7 @@ public class MetricsMap implements Gauge>, DynamicMBean { private final boolean useCachedStatsBetweenGetMBeanInfoCalls = Boolean.getBoolean("useCachedStatsBetweenGetMBeanInfoCalls"); private BiConsumer> initializer; + private Map jmxAttributes = new HashMap<>(); private volatile Map cachedValue; public MetricsMap(BiConsumer> initializer) { @@ -83,6 +84,11 @@ public class MetricsMap implements Gauge>, DynamicMBean { @Override public Object getAttribute(String attribute) throws AttributeNotFoundException, MBeanException, ReflectionException { Object val; + // jmxAttributes override any real values + val = jmxAttributes.get(attribute); + if (val != null) { + return val; + } Map stats = null; if (useCachedStatsBetweenGetMBeanInfoCalls) { Map cachedStats = this.cachedValue; @@ -111,7 +117,7 @@ public class MetricsMap implements Gauge>, DynamicMBean { @Override public void setAttribute(Attribute attribute) throws AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException { - throw new UnsupportedOperationException("Operation not Supported"); + jmxAttributes.put(attribute.getName(), String.valueOf(attribute.getValue())); } @Override @@ -144,8 +150,15 @@ public class MetricsMap implements Gauge>, DynamicMBean { if (useCachedStatsBetweenGetMBeanInfoCalls) { cachedValue = stats; } + jmxAttributes.forEach((k, v) -> { + attrInfoList.add(new MBeanAttributeInfo(k, String.class.getName(), + null, true, false, false)); + }); try { stats.forEach((k, v) -> { + if (jmxAttributes.containsKey(k)) { + return; + } Class type = v.getClass(); OpenType typeBox = determineType(type); if (type.equals(String.class) || typeBox == null) { diff --git a/solr/core/src/java/org/apache/solr/metrics/reporters/SolrJmxReporter.java b/solr/core/src/java/org/apache/solr/metrics/reporters/SolrJmxReporter.java index b7504b80214..79ffed91d26 100644 --- a/solr/core/src/java/org/apache/solr/metrics/reporters/SolrJmxReporter.java +++ b/solr/core/src/java/org/apache/solr/metrics/reporters/SolrJmxReporter.java @@ -16,26 +16,20 @@ */ package org.apache.solr.metrics.reporters; -import javax.management.InstanceNotFoundException; import javax.management.MBeanServer; -import javax.management.ObjectInstance; -import javax.management.ObjectName; import java.lang.invoke.MethodHandles; -import java.util.HashSet; import java.util.Locale; -import java.util.Set; -import com.codahale.metrics.Gauge; import com.codahale.metrics.JmxReporter; import com.codahale.metrics.MetricFilter; import com.codahale.metrics.MetricRegistry; -import com.codahale.metrics.MetricRegistryListener; import org.apache.solr.metrics.FilteringSolrMetricReporter; -import org.apache.solr.metrics.MetricsMap; import org.apache.solr.metrics.SolrMetricManager; import org.apache.solr.metrics.SolrMetricReporter; +import org.apache.solr.metrics.reporters.jmx.JmxMetricsReporter; +import org.apache.solr.metrics.reporters.jmx.JmxObjectNameFactory; import org.apache.solr.util.JmxUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -57,10 +51,10 @@ public class SolrJmxReporter extends FilteringSolrMetricReporter { private String serviceUrl; private String rootName; - private JmxReporter reporter; private MetricRegistry registry; private MBeanServer mBeanServer; - private MetricsMapListener listener; + private JmxMetricsReporter reporter; + private boolean started; /** * Creates a new instance of {@link SolrJmxReporter}. @@ -102,51 +96,32 @@ public class SolrJmxReporter extends FilteringSolrMetricReporter { } JmxObjectNameFactory jmxObjectNameFactory = new JmxObjectNameFactory(pluginInfo.name, fullDomain); registry = metricManager.registry(registryName); - final MetricFilter filter = newMetricFilter(); - reporter = JmxReporter.forRegistry(registry) + final MetricFilter filter = newMetricFilter(); + String tag = Integer.toHexString(this.hashCode()); + reporter = JmxMetricsReporter.forRegistry(registry) .registerWith(mBeanServer) .inDomain(fullDomain) .filter(filter) .createsObjectNamesWith(jmxObjectNameFactory) + .withTag(tag) .build(); reporter.start(); - // workaround for inability to register custom MBeans (to be available in metrics 4.0?) - listener = new MetricsMapListener(mBeanServer, jmxObjectNameFactory); - registry.addListener(listener); - + started = true; log.info("JMX monitoring for '" + fullDomain + "' (registry '" + registryName + "') enabled at server: " + mBeanServer); } - @Override - protected MetricFilter newMetricFilter() { - // filter out MetricsMap gauges - we have a better way of handling them - final MetricFilter mmFilter = (name, metric) -> !(metric instanceof MetricsMap); - final MetricFilter filter; - if (filters.isEmpty()) { - filter = mmFilter; - } else { - // apply also prefix filters - SolrMetricManager.PrefixFilter prefixFilter = new SolrMetricManager.PrefixFilter(filters); - filter = new SolrMetricManager.AndFilter(prefixFilter, mmFilter); - } - return filter; - } - /** * Stops the reporter from publishing metrics. */ @Override public synchronized void close() { + log.info("Closing reporter " + this + " for registry " + registryName + " / " + registry); + started = false; if (reporter != null) { reporter.close(); reporter = null; } - if (listener != null && registry != null) { - registry.removeListener(listener); - listener.close(); - listener = null; - } } /** @@ -238,70 +213,23 @@ public class SolrJmxReporter extends FilteringSolrMetricReporter { /** * For unit tests. - * @return true if this reporter is actively reporting metrics to JMX. + * @return true if this reporter is going to report metrics to JMX. */ public boolean isActive() { return reporter != null; } + /** + * For unit tests. + * @return true if this reporter has been started and is reporting metrics to JMX. + */ + public boolean isStarted() { + return started; + } + @Override public String toString() { return String.format(Locale.ENGLISH, "[%s@%s: rootName = %s, domain = %s, service url = %s, agent id = %s]", getClass().getName(), Integer.toHexString(hashCode()), rootName, domain, serviceUrl, agentId); } - - private static class MetricsMapListener extends MetricRegistryListener.Base { - MBeanServer server; - JmxObjectNameFactory nameFactory; - // keep the names so that we can unregister them on core close - Set registered = new HashSet<>(); - - MetricsMapListener(MBeanServer server, JmxObjectNameFactory nameFactory) { - this.server = server; - this.nameFactory = nameFactory; - } - - @Override - public void onGaugeAdded(String name, Gauge gauge) { - if (!(gauge instanceof MetricsMap)) { - return; - } - synchronized (server) { - try { - ObjectName objectName = nameFactory.createName("gauges", nameFactory.getDomain(), name); - log.debug("REGISTER " + objectName); - if (registered.contains(objectName) || server.isRegistered(objectName)) { - log.debug("-unregistering old instance of " + objectName); - try { - server.unregisterMBean(objectName); - } catch (InstanceNotFoundException e) { - // ignore - } - } - // some MBean servers re-write object name to include additional properties - ObjectInstance instance = server.registerMBean(gauge, objectName); - if (instance != null) { - registered.add(instance.getObjectName()); - } - } catch (Exception e) { - log.warn("bean registration error", e); - } - } - } - - public void close() { - synchronized (server) { - for (ObjectName name : registered) { - try { - if (server.isRegistered(name)) { - server.unregisterMBean(name); - } - } catch (Exception e) { - log.debug("bean unregistration error", e); - } - } - registered.clear(); - } - } - } } diff --git a/solr/core/src/java/org/apache/solr/metrics/reporters/jmx/JmxMetricsReporter.java b/solr/core/src/java/org/apache/solr/metrics/reporters/jmx/JmxMetricsReporter.java new file mode 100644 index 00000000000..54da5fae7cd --- /dev/null +++ b/solr/core/src/java/org/apache/solr/metrics/reporters/jmx/JmxMetricsReporter.java @@ -0,0 +1,750 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.solr.metrics.reporters.jmx; + +import javax.management.Attribute; +import javax.management.InstanceAlreadyExistsException; +import javax.management.InstanceNotFoundException; +import javax.management.JMException; +import javax.management.MBeanRegistrationException; +import javax.management.MBeanServer; +import javax.management.ObjectInstance; +import javax.management.ObjectName; +import javax.management.Query; +import javax.management.QueryExp; +import java.io.Closeable; +import java.lang.invoke.MethodHandles; +import java.lang.management.ManagementFactory; +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.TimeUnit; + +import com.codahale.metrics.Counter; +import com.codahale.metrics.DefaultObjectNameFactory; +import com.codahale.metrics.Gauge; +import com.codahale.metrics.Histogram; +import com.codahale.metrics.Meter; +import com.codahale.metrics.Metered; +import com.codahale.metrics.Metric; +import com.codahale.metrics.MetricFilter; +import com.codahale.metrics.MetricRegistry; +import com.codahale.metrics.MetricRegistryListener; +import com.codahale.metrics.ObjectNameFactory; +import com.codahale.metrics.Reporter; +import com.codahale.metrics.Timer; +import org.apache.solr.metrics.MetricsMap; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * This is a modified copy of Dropwizard's {@link com.codahale.metrics.JmxReporter} and classes that it internally uses, + * with a few important differences: + *
    + *
  • this class knows that it can directly use {@link MetricsMap} as a dynamic MBean.
  • + *
  • this class allows us to "tag" MBean instances so that we can later unregister only instances registered with the + * same tag.
  • + *
  • this class processes all metrics already existing in the registry at the time when reporter is started.
  • + *
+ */ +public class JmxMetricsReporter implements Reporter, Closeable { + private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); + + public static final String INSTANCE_TAG = "_instanceTag"; + + public static Builder forRegistry(MetricRegistry registry) { + return new Builder(registry); + } + + public static class Builder { + private final MetricRegistry registry; + private MBeanServer mBeanServer; + private TimeUnit rateUnit; + private TimeUnit durationUnit; + private ObjectNameFactory objectNameFactory; + private MetricFilter filter = MetricFilter.ALL; + private String domain; + private String tag; + + private Builder(MetricRegistry registry) { + this.registry = registry; + this.rateUnit = TimeUnit.SECONDS; + this.durationUnit = TimeUnit.MILLISECONDS; + this.domain = "metrics"; + this.objectNameFactory = new DefaultObjectNameFactory(); + } + + /** + * Register MBeans with the given {@link MBeanServer}. + * + * @param mBeanServer an {@link MBeanServer} + * @return {@code this} + */ + public Builder registerWith(MBeanServer mBeanServer) { + this.mBeanServer = mBeanServer; + return this; + } + + /** + * Convert rates to the given time unit. + * + * @param rateUnit a unit of time + * @return {@code this} + */ + public Builder convertRatesTo(TimeUnit rateUnit) { + this.rateUnit = rateUnit; + return this; + } + + public Builder createsObjectNamesWith(ObjectNameFactory onFactory) { + if(onFactory == null) { + throw new IllegalArgumentException("null objectNameFactory"); + } + this.objectNameFactory = onFactory; + return this; + } + + /** + * Convert durations to the given time unit. + * + * @param durationUnit a unit of time + * @return {@code this} + */ + public Builder convertDurationsTo(TimeUnit durationUnit) { + this.durationUnit = durationUnit; + return this; + } + + /** + * Only report metrics which match the given filter. + * + * @param filter a {@link MetricFilter} + * @return {@code this} + */ + public Builder filter(MetricFilter filter) { + this.filter = filter; + return this; + } + + public Builder inDomain(String domain) { + this.domain = domain; + return this; + } + + public Builder withTag(String tag) { + this.tag = tag; + return this; + } + + public JmxMetricsReporter build() { + if (mBeanServer == null) { + mBeanServer = ManagementFactory.getPlatformMBeanServer(); + } + if (tag == null) { + tag = Integer.toHexString(this.hashCode()); + } + return new JmxMetricsReporter(mBeanServer, domain, registry, filter, rateUnit, durationUnit, objectNameFactory, tag); + } + + } + + // MBean interfaces and base classes + public interface MetricMBean { + ObjectName objectName(); + // this strange-looking method name is used for producing "_instanceTag" attribute name + String get_instanceTag(); + } + + + private abstract static class AbstractBean implements MetricMBean { + private final ObjectName objectName; + private final String instanceTag; + + AbstractBean(ObjectName objectName, String instanceTag) { + this.objectName = objectName; + this.instanceTag = instanceTag; + } + + @Override + public String get_instanceTag() { + return instanceTag; + } + + @Override + public ObjectName objectName() { + return objectName; + } + } + + public interface JmxGaugeMBean extends MetricMBean { + Object getValue(); + } + + private static class JmxGauge extends AbstractBean implements JmxGaugeMBean { + private final Gauge metric; + + private JmxGauge(Gauge metric, ObjectName objectName, String tag) { + super(objectName, tag); + this.metric = metric; + } + + @Override + public Object getValue() { + return metric.getValue(); + } + } + + public interface JmxCounterMBean extends MetricMBean { + long getCount(); + } + + private static class JmxCounter extends AbstractBean implements JmxCounterMBean { + private final Counter metric; + + private JmxCounter(Counter metric, ObjectName objectName, String tag) { + super(objectName, tag); + this.metric = metric; + } + + @Override + public long getCount() { + return metric.getCount(); + } + } + + public interface JmxHistogramMBean extends MetricMBean { + long getCount(); + + long getMin(); + + long getMax(); + + double getMean(); + + double getStdDev(); + + double get50thPercentile(); + + double get75thPercentile(); + + double get95thPercentile(); + + double get98thPercentile(); + + double get99thPercentile(); + + double get999thPercentile(); + + long[] values(); + + long getSnapshotSize(); + } + + private static class JmxHistogram extends AbstractBean implements JmxHistogramMBean { + private final Histogram metric; + + private JmxHistogram(Histogram metric, ObjectName objectName, String tag) { + super(objectName, tag); + this.metric = metric; + } + + @Override + public double get50thPercentile() { + return metric.getSnapshot().getMedian(); + } + + @Override + public long getCount() { + return metric.getCount(); + } + + @Override + public long getMin() { + return metric.getSnapshot().getMin(); + } + + @Override + public long getMax() { + return metric.getSnapshot().getMax(); + } + + @Override + public double getMean() { + return metric.getSnapshot().getMean(); + } + + @Override + public double getStdDev() { + return metric.getSnapshot().getStdDev(); + } + + @Override + public double get75thPercentile() { + return metric.getSnapshot().get75thPercentile(); + } + + @Override + public double get95thPercentile() { + return metric.getSnapshot().get95thPercentile(); + } + + @Override + public double get98thPercentile() { + return metric.getSnapshot().get98thPercentile(); + } + + @Override + public double get99thPercentile() { + return metric.getSnapshot().get99thPercentile(); + } + + @Override + public double get999thPercentile() { + return metric.getSnapshot().get999thPercentile(); + } + + @Override + public long[] values() { + return metric.getSnapshot().getValues(); + } + + public long getSnapshotSize() { + return metric.getSnapshot().size(); + } + } + + public interface JmxMeterMBean extends MetricMBean { + long getCount(); + + double getMeanRate(); + + double getOneMinuteRate(); + + double getFiveMinuteRate(); + + double getFifteenMinuteRate(); + + String getRateUnit(); + } + + private static class JmxMeter extends AbstractBean implements JmxMeterMBean { + private final Metered metric; + private final double rateFactor; + private final String rateUnit; + + private JmxMeter(Metered metric, ObjectName objectName, TimeUnit rateUnit, String tag) { + super(objectName, tag); + this.metric = metric; + this.rateFactor = rateUnit.toSeconds(1); + this.rateUnit = ("events/" + calculateRateUnit(rateUnit)).intern(); + } + + @Override + public long getCount() { + return metric.getCount(); + } + + @Override + public double getMeanRate() { + return metric.getMeanRate() * rateFactor; + } + + @Override + public double getOneMinuteRate() { + return metric.getOneMinuteRate() * rateFactor; + } + + @Override + public double getFiveMinuteRate() { + return metric.getFiveMinuteRate() * rateFactor; + } + + @Override + public double getFifteenMinuteRate() { + return metric.getFifteenMinuteRate() * rateFactor; + } + + @Override + public String getRateUnit() { + return rateUnit; + } + + private String calculateRateUnit(TimeUnit unit) { + final String s = unit.toString().toLowerCase(Locale.US); + return s.substring(0, s.length() - 1); + } + } + + public interface JmxTimerMBean extends JmxMeterMBean { + double getMin(); + + double getMax(); + + double getMean(); + + double getStdDev(); + + double get50thPercentile(); + + double get75thPercentile(); + + double get95thPercentile(); + + double get98thPercentile(); + + double get99thPercentile(); + + double get999thPercentile(); + + long[] values(); + String getDurationUnit(); + } + + private static class JmxTimer extends JmxMeter implements JmxTimerMBean { + private final Timer metric; + private final double durationFactor; + private final String durationUnit; + + private JmxTimer(Timer metric, + ObjectName objectName, + TimeUnit rateUnit, + TimeUnit durationUnit, String tag) { + super(metric, objectName, rateUnit, tag); + this.metric = metric; + this.durationFactor = 1.0 / durationUnit.toNanos(1); + this.durationUnit = durationUnit.toString().toLowerCase(Locale.US); + } + + @Override + public double get50thPercentile() { + return metric.getSnapshot().getMedian() * durationFactor; + } + + @Override + public double getMin() { + return metric.getSnapshot().getMin() * durationFactor; + } + + @Override + public double getMax() { + return metric.getSnapshot().getMax() * durationFactor; + } + + @Override + public double getMean() { + return metric.getSnapshot().getMean() * durationFactor; + } + + @Override + public double getStdDev() { + return metric.getSnapshot().getStdDev() * durationFactor; + } + + @Override + public double get75thPercentile() { + return metric.getSnapshot().get75thPercentile() * durationFactor; + } + + @Override + public double get95thPercentile() { + return metric.getSnapshot().get95thPercentile() * durationFactor; + } + + @Override + public double get98thPercentile() { + return metric.getSnapshot().get98thPercentile() * durationFactor; + } + + @Override + public double get99thPercentile() { + return metric.getSnapshot().get99thPercentile() * durationFactor; + } + + @Override + public double get999thPercentile() { + return metric.getSnapshot().get999thPercentile() * durationFactor; + } + + @Override + public long[] values() { + return metric.getSnapshot().getValues(); + } + + @Override + public String getDurationUnit() { + return durationUnit; + } + } + + private static class JmxListener implements MetricRegistryListener { + + private final String name; + private final MBeanServer mBeanServer; + private final MetricFilter filter; + private final TimeUnit rateUnit; + private final TimeUnit durationUnit; + private final Map registered; + private final ObjectNameFactory objectNameFactory; + private final String tag; + private final QueryExp exp; + + private JmxListener(MBeanServer mBeanServer, String name, MetricFilter filter, TimeUnit rateUnit, TimeUnit durationUnit, + ObjectNameFactory objectNameFactory, String tag) { + this.mBeanServer = mBeanServer; + this.name = name; + this.filter = filter; + this.rateUnit = rateUnit; + this.durationUnit = durationUnit; + this.registered = new ConcurrentHashMap<>(); + this.objectNameFactory = objectNameFactory; + this.tag = tag; + this.exp = Query.eq(Query.attr(INSTANCE_TAG), Query.value(tag)); + } + + private void registerMBean(Object mBean, ObjectName objectName) throws InstanceAlreadyExistsException, JMException { + // remove previous bean if exists + if (mBeanServer.isRegistered(objectName)) { + if (LOG.isDebugEnabled()) { + Set objects = mBeanServer.queryMBeans(objectName, null); + LOG.debug("## removing existing " + objects.size() + " bean(s) for " + objectName.getCanonicalName() + ", current tag=" + tag + ":"); + for (ObjectInstance inst : objects) { + LOG.debug("## - tag=" + mBeanServer.getAttribute(inst.getObjectName(), INSTANCE_TAG)); + } + } + mBeanServer.unregisterMBean(objectName); + } + ObjectInstance objectInstance = mBeanServer.registerMBean(mBean, objectName); + if (objectInstance != null) { + // the websphere mbeanserver rewrites the objectname to include + // cell, node & server info + // make sure we capture the new objectName for unregistration + registered.put(objectName, objectInstance.getObjectName()); + } else { + registered.put(objectName, objectName); + } + LOG.debug("## registered " + objectInstance.getObjectName().getCanonicalName() + ", tag=" + tag); + } + + private void unregisterMBean(ObjectName originalObjectName) throws InstanceNotFoundException, MBeanRegistrationException { + ObjectName objectName = registered.remove(originalObjectName); + if (objectName == null) { + objectName = originalObjectName; + } + Set objects = mBeanServer.queryMBeans(objectName, exp); + for (ObjectInstance o : objects) { + LOG.debug("## Unregistered " + o.getObjectName().getCanonicalName() + ", tag=" + tag); + mBeanServer.unregisterMBean(o.getObjectName()); + } + } + + @Override + public void onGaugeAdded(String name, Gauge gauge) { + try { + if (filter.matches(name, gauge)) { + final ObjectName objectName = createName("gauges", name); + if (gauge instanceof MetricsMap) { + ((MetricsMap)gauge).setAttribute(new Attribute(INSTANCE_TAG, tag)); + registerMBean(gauge, objectName); + } else { + registerMBean(new JmxGauge(gauge, objectName, tag), objectName); + } + } + } catch (InstanceAlreadyExistsException e) { + LOG.debug("Unable to register gauge", e); + } catch (JMException e) { + LOG.warn("Unable to register gauge", e); + } + } + + @Override + public void onGaugeRemoved(String name) { + try { + final ObjectName objectName = createName("gauges", name); + unregisterMBean(objectName); + } catch (InstanceNotFoundException e) { + LOG.debug("Unable to unregister gauge", e); + } catch (MBeanRegistrationException e) { + LOG.warn("Unable to unregister gauge", e); + } + } + + @Override + public void onCounterAdded(String name, Counter counter) { + try { + if (filter.matches(name, counter)) { + final ObjectName objectName = createName("counters", name); + registerMBean(new JmxCounter(counter, objectName, tag), objectName); + } + } catch (InstanceAlreadyExistsException e) { + LOG.debug("Unable to register counter", e); + } catch (JMException e) { + LOG.warn("Unable to register counter", e); + } + } + + @Override + public void onCounterRemoved(String name) { + try { + final ObjectName objectName = createName("counters", name); + unregisterMBean(objectName); + } catch (InstanceNotFoundException e) { + LOG.debug("Unable to unregister counter", e); + } catch (MBeanRegistrationException e) { + LOG.warn("Unable to unregister counter", e); + } + } + + @Override + public void onHistogramAdded(String name, Histogram histogram) { + try { + if (filter.matches(name, histogram)) { + final ObjectName objectName = createName("histograms", name); + registerMBean(new JmxHistogram(histogram, objectName, tag), objectName); + } + } catch (InstanceAlreadyExistsException e) { + LOG.debug("Unable to register histogram", e); + } catch (JMException e) { + LOG.warn("Unable to register histogram", e); + } + } + + @Override + public void onHistogramRemoved(String name) { + try { + final ObjectName objectName = createName("histograms", name); + unregisterMBean(objectName); + } catch (InstanceNotFoundException e) { + LOG.debug("Unable to unregister histogram", e); + } catch (MBeanRegistrationException e) { + LOG.warn("Unable to unregister histogram", e); + } + } + + @Override + public void onMeterAdded(String name, Meter meter) { + try { + if (filter.matches(name, meter)) { + final ObjectName objectName = createName("meters", name); + registerMBean(new JmxMeter(meter, objectName, rateUnit, tag), objectName); + } + } catch (InstanceAlreadyExistsException e) { + LOG.debug("Unable to register meter", e); + } catch (JMException e) { + LOG.warn("Unable to register meter", e); + } + } + + @Override + public void onMeterRemoved(String name) { + try { + final ObjectName objectName = createName("meters", name); + unregisterMBean(objectName); + } catch (InstanceNotFoundException e) { + LOG.debug("Unable to unregister meter", e); + } catch (MBeanRegistrationException e) { + LOG.warn("Unable to unregister meter", e); + } + } + + @Override + public void onTimerAdded(String name, Timer timer) { + try { + if (filter.matches(name, timer)) { + final ObjectName objectName = createName("timers", name); + registerMBean(new JmxTimer(timer, objectName, rateUnit, durationUnit, tag), objectName); + } + } catch (InstanceAlreadyExistsException e) { + LOG.debug("Unable to register timer", e); + } catch (JMException e) { + LOG.warn("Unable to register timer", e); + } + } + + @Override + public void onTimerRemoved(String name) { + try { + final ObjectName objectName = createName("timers", name); + unregisterMBean(objectName); + } catch (InstanceNotFoundException e) { + LOG.debug("Unable to unregister timer", e); + } catch (MBeanRegistrationException e) { + LOG.warn("Unable to unregister timer", e); + } + } + + private ObjectName createName(String type, String name) { + return objectNameFactory.createName(type, this.name, name); + } + + void unregisterAll() { + for (ObjectName name : registered.keySet()) { + try { + unregisterMBean(name); + } catch (InstanceNotFoundException e) { + LOG.debug("Unable to unregister metric", e); + } catch (MBeanRegistrationException e) { + LOG.warn("Unable to unregister metric", e); + } + } + registered.clear(); + } + } + + private final MetricRegistry registry; + private final JmxListener listener; + + private JmxMetricsReporter(MBeanServer mBeanServer, + String domain, + MetricRegistry registry, + MetricFilter filter, + TimeUnit rateUnit, + TimeUnit durationUnit, + ObjectNameFactory objectNameFactory, + String tag) { + this.registry = registry; + this.listener = new JmxListener(mBeanServer, domain, filter, rateUnit, durationUnit, objectNameFactory, tag); + } + + public void start() { + registry.addListener(listener); + // process existing metrics + Map metrics = new HashMap<>(registry.getMetrics()); + metrics.forEach((k, v) -> { + if (v instanceof Counter) { + listener.onCounterAdded(k, (Counter)v); + } else if (v instanceof Meter) { + listener.onMeterAdded(k, (Meter)v); + } else if (v instanceof Histogram) { + listener.onHistogramAdded(k, (Histogram)v); + } else if (v instanceof Timer) { + listener.onTimerAdded(k, (Timer)v); + } else if (v instanceof Gauge) { + listener.onGaugeAdded(k, (Gauge)v); + } else { + LOG.warn("Unknown metric type " + v.getClass().getName() + " for metric '" + k + "', ignoring"); + } + }); + } + + @Override + public void close() { + registry.removeListener(listener); + listener.unregisterAll(); + } +} diff --git a/solr/core/src/java/org/apache/solr/metrics/reporters/JmxObjectNameFactory.java b/solr/core/src/java/org/apache/solr/metrics/reporters/jmx/JmxObjectNameFactory.java similarity index 99% rename from solr/core/src/java/org/apache/solr/metrics/reporters/JmxObjectNameFactory.java rename to solr/core/src/java/org/apache/solr/metrics/reporters/jmx/JmxObjectNameFactory.java index 4298c1842da..056a35ac8ee 100644 --- a/solr/core/src/java/org/apache/solr/metrics/reporters/JmxObjectNameFactory.java +++ b/solr/core/src/java/org/apache/solr/metrics/reporters/jmx/JmxObjectNameFactory.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.metrics.reporters; +package org.apache.solr.metrics.reporters.jmx; import javax.management.MalformedObjectNameException; import javax.management.ObjectName; diff --git a/solr/core/src/test/org/apache/solr/core/TestJmxIntegration.java b/solr/core/src/test/org/apache/solr/core/TestJmxIntegration.java index a0f4071d482..063ea0c55e9 100644 --- a/solr/core/src/test/org/apache/solr/core/TestJmxIntegration.java +++ b/solr/core/src/test/org/apache/solr/core/TestJmxIntegration.java @@ -18,7 +18,7 @@ package org.apache.solr.core; import org.apache.solr.metrics.SolrMetricManager; import org.apache.solr.metrics.SolrMetricReporter; -import org.apache.solr.metrics.reporters.JmxObjectNameFactory; +import org.apache.solr.metrics.reporters.jmx.JmxObjectNameFactory; import org.apache.solr.metrics.reporters.SolrJmxReporter; import org.apache.solr.util.AbstractSolrTestCase; import org.junit.AfterClass; diff --git a/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterCloudTest.java b/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterCloudTest.java new file mode 100644 index 00000000000..ac7ebafb741 --- /dev/null +++ b/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterCloudTest.java @@ -0,0 +1,109 @@ +package org.apache.solr.metrics.reporters; + +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.ObjectInstance; +import javax.management.ObjectName; +import javax.management.Query; +import javax.management.QueryExp; +import java.lang.invoke.MethodHandles; +import java.lang.management.ManagementFactory; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.atomic.AtomicInteger; + +import org.apache.solr.client.solrj.embedded.JettySolrRunner; +import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.request.CollectionAdminRequest; +import org.apache.solr.cloud.SolrCloudTestCase; +import org.apache.solr.common.SolrInputDocument; +import org.apache.solr.common.params.CommonParams; +import org.apache.solr.metrics.SolrMetricManager; +import org.apache.solr.metrics.SolrMetricReporter; +import org.apache.solr.metrics.reporters.jmx.JmxMetricsReporter; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * + */ +public class SolrJmxReporterCloudTest extends SolrCloudTestCase { + private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); + + private static MBeanServer mBeanServer; + private static String COLLECTION = SolrJmxReporterCloudTest.class.getSimpleName() + "_collection"; + + @BeforeClass + public static void setupCluster() throws Exception { + // make sure there's an MBeanServer + mBeanServer = ManagementFactory.getPlatformMBeanServer(); + configureCluster(1) + .addConfig("conf", configset("cloud-minimal")) + .configure(); + CollectionAdminRequest.createCollection(COLLECTION, "conf", 2, 1) + .setMaxShardsPerNode(2) + .process(cluster.getSolrClient()); + } + + @AfterClass + public static void releaseMBeanServer() throws Exception { + if (mBeanServer != null) { + MBeanServerFactory.releaseMBeanServer(mBeanServer); + } + } + + @Test + public void testJmxReporter() throws Exception { + CollectionAdminRequest.reloadCollection(COLLECTION).processAndWait(cluster.getSolrClient(), 60); + CloudSolrClient solrClient = cluster.getSolrClient(); + // index some docs + for (int i = 0; i < 100; i++) { + SolrInputDocument doc = new SolrInputDocument(); + doc.addField("id", "id-" + i); + solrClient.add(COLLECTION, doc); + } + solrClient.commit(COLLECTION); + // make sure searcher is present + solrClient.query(COLLECTION, params(CommonParams.Q, "*:*")); + + for (JettySolrRunner runner : cluster.getJettySolrRunners()) { + SolrMetricManager manager = runner.getCoreContainer().getMetricManager(); + for (String registry : manager.registryNames()) { + Map reporters = manager.getReporters(registry); + long jmxReporters = reporters.entrySet().stream().filter(e -> e.getValue() instanceof SolrJmxReporter).count(); + reporters.forEach((k, v) -> { + if (!(v instanceof SolrJmxReporter)) { + return; + } + if (!((SolrJmxReporter)v).getDomain().startsWith("solr.core")) { + return; + } + if (!((SolrJmxReporter)v).isActive()) { + return; + } + QueryExp exp = Query.eq(Query.attr(JmxMetricsReporter.INSTANCE_TAG), Query.value(Integer.toHexString(v.hashCode()))); + Set beans = mBeanServer.queryMBeans(null, exp); + if (((SolrJmxReporter) v).isStarted() && beans.isEmpty() && jmxReporters < 2) { + log.info("DocCollection: " + getCollectionState(COLLECTION)); + fail("JMX reporter " + k + " for registry " + registry + " failed to register any beans!"); + } else { + Set categories = new HashSet<>(); + beans.forEach(bean -> { + String cat = bean.getObjectName().getKeyProperty("category"); + if (cat != null) { + categories.add(cat); + } + }); + log.info("Registered categories: " + categories); + assertTrue("Too few categories: " + categories, categories.size() > 5); + } + }); + } + } + } +} diff --git a/solr/core/src/test/org/apache/solr/metrics/reporters/solr/SolrCloudReportersTest.java b/solr/core/src/test/org/apache/solr/metrics/reporters/solr/SolrCloudReportersTest.java index 5b6dc099905..224778d7951 100644 --- a/solr/core/src/test/org/apache/solr/metrics/reporters/solr/SolrCloudReportersTest.java +++ b/solr/core/src/test/org/apache/solr/metrics/reporters/solr/SolrCloudReportersTest.java @@ -39,13 +39,12 @@ import org.junit.Test; public class SolrCloudReportersTest extends SolrCloudTestCase { int leaderRegistries; int clusterRegistries; - static int jmxReporter; + int jmxReporter; @BeforeClass public static void configureDummyCluster() throws Exception { configureCluster(0).configure(); - jmxReporter = JmxUtil.findFirstMBeanServer() != null ? 1 : 0; } @Before @@ -53,6 +52,7 @@ public class SolrCloudReportersTest extends SolrCloudTestCase { shutdownCluster(); leaderRegistries = 0; clusterRegistries = 0; + jmxReporter = JmxUtil.findFirstMBeanServer() != null ? 1 : 0; } @Test From ff8b90b9acb7685a77d3b4af14f18aedb681176f Mon Sep 17 00:00:00 2001 From: Andrzej Bialecki Date: Mon, 14 Aug 2017 13:10:01 +0200 Subject: [PATCH 02/28] SOLR-11221: Fix precommit issues. --- .../metrics/reporters/jmx/package-info.java | 21 +++++++++++++++++++ .../reporters/SolrJmxReporterCloudTest.java | 19 ++++++++++++++--- 2 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 solr/core/src/java/org/apache/solr/metrics/reporters/jmx/package-info.java diff --git a/solr/core/src/java/org/apache/solr/metrics/reporters/jmx/package-info.java b/solr/core/src/java/org/apache/solr/metrics/reporters/jmx/package-info.java new file mode 100644 index 00000000000..bd71e9cc439 --- /dev/null +++ b/solr/core/src/java/org/apache/solr/metrics/reporters/jmx/package-info.java @@ -0,0 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * This package contains components that support {@link org.apache.solr.metrics.reporters.SolrJmxReporter}. + */ +package org.apache.solr.metrics.reporters.jmx; diff --git a/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterCloudTest.java b/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterCloudTest.java index ac7ebafb741..a76f4837cba 100644 --- a/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterCloudTest.java +++ b/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterCloudTest.java @@ -1,18 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.apache.solr.metrics.reporters; import javax.management.MBeanServer; import javax.management.MBeanServerFactory; import javax.management.ObjectInstance; -import javax.management.ObjectName; import javax.management.Query; import javax.management.QueryExp; import java.lang.invoke.MethodHandles; import java.lang.management.ManagementFactory; -import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; -import java.util.concurrent.atomic.AtomicInteger; import org.apache.solr.client.solrj.embedded.JettySolrRunner; import org.apache.solr.client.solrj.impl.CloudSolrClient; From 3cbbecca026eb2a9491fa4a24ecc2c43c26e58bd Mon Sep 17 00:00:00 2001 From: Christine Poerschke Date: Mon, 14 Aug 2017 12:27:05 +0100 Subject: [PATCH 03/28] TestLTROnSolrCloud now also tests 'feature vector returned' without re-ranking. (Christine Poerschke, Yuki Yano) --- .../apache/solr/ltr/TestLTROnSolrCloud.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/solr/contrib/ltr/src/test/org/apache/solr/ltr/TestLTROnSolrCloud.java b/solr/contrib/ltr/src/test/org/apache/solr/ltr/TestLTROnSolrCloud.java index 8c3950a36b7..f6cab5890c7 100644 --- a/solr/contrib/ltr/src/test/org/apache/solr/ltr/TestLTROnSolrCloud.java +++ b/solr/contrib/ltr/src/test/org/apache/solr/ltr/TestLTROnSolrCloud.java @@ -124,7 +124,7 @@ public class TestLTROnSolrCloud extends TestRerankBase { // Test feature vectors returned (without re-ranking) - query.setFields("*,score,features:[fv]"); + query.setFields("*,score,features:[fv store=test]"); queryResponse = solrCluster.getSolrClient().query(COLLECTION,query); assertEquals(8, queryResponse.getResults().getNumFound()); @@ -146,7 +146,25 @@ public class TestLTROnSolrCloud extends TestRerankBase { assertEquals(original_result6_score, queryResponse.getResults().get(6).get("score")); assertEquals(original_result7_score, queryResponse.getResults().get(7).get("score")); + assertEquals(result7_features, + queryResponse.getResults().get(0).get("features").toString()); + assertEquals(result6_features, + queryResponse.getResults().get(1).get("features").toString()); + assertEquals(result5_features, + queryResponse.getResults().get(2).get("features").toString()); + assertEquals(result4_features, + queryResponse.getResults().get(3).get("features").toString()); + assertEquals(result3_features, + queryResponse.getResults().get(4).get("features").toString()); + assertEquals(result2_features, + queryResponse.getResults().get(5).get("features").toString()); + assertEquals(result1_features, + queryResponse.getResults().get(6).get("features").toString()); + assertEquals(result0_features, + queryResponse.getResults().get(7).get("features").toString()); + // Test feature vectors returned (with re-ranking) + query.setFields("*,score,features:[fv]"); query.add("rq", "{!ltr model=powpularityS-model reRankDocs=8}"); queryResponse = solrCluster.getSolrClient().query(COLLECTION,query); From fe34212a289b64c5fd933ff550511964cb45e871 Mon Sep 17 00:00:00 2001 From: Andrzej Bialecki Date: Tue, 15 Aug 2017 03:23:28 +0200 Subject: [PATCH 04/28] Make this test more robust to the presence of MBeanServer created in other tests. --- .../reporters/solr/SolrCloudReportersTest.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/solr/core/src/test/org/apache/solr/metrics/reporters/solr/SolrCloudReportersTest.java b/solr/core/src/test/org/apache/solr/metrics/reporters/solr/SolrCloudReportersTest.java index 224778d7951..605daa7b209 100644 --- a/solr/core/src/test/org/apache/solr/metrics/reporters/solr/SolrCloudReportersTest.java +++ b/solr/core/src/test/org/apache/solr/metrics/reporters/solr/SolrCloudReportersTest.java @@ -28,7 +28,7 @@ import org.apache.solr.core.SolrCore; import org.apache.solr.metrics.AggregateMetric; import org.apache.solr.metrics.SolrMetricManager; import org.apache.solr.metrics.SolrMetricReporter; -import org.apache.solr.util.JmxUtil; +import org.apache.solr.metrics.reporters.SolrJmxReporter; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; @@ -42,6 +42,7 @@ public class SolrCloudReportersTest extends SolrCloudTestCase { int jmxReporter; + @BeforeClass public static void configureDummyCluster() throws Exception { configureCluster(0).configure(); @@ -52,7 +53,6 @@ public class SolrCloudReportersTest extends SolrCloudTestCase { shutdownCluster(); leaderRegistries = 0; clusterRegistries = 0; - jmxReporter = JmxUtil.findFirstMBeanServer() != null ? 1 : 0; } @Test @@ -99,6 +99,12 @@ public class SolrCloudReportersTest extends SolrCloudTestCase { assertEquals(5, sor.getPeriod()); for (String registryName : metricManager.registryNames(".*\\.shard[0-9]\\.replica.*")) { reporters = metricManager.getReporters(registryName); + jmxReporter = 0; + reporters.forEach((k, v) -> { + if (v instanceof SolrJmxReporter) { + jmxReporter++; + } + }); assertEquals(reporters.toString(), 1 + jmxReporter, reporters.size()); reporter = null; for (String name : reporters.keySet()) { @@ -158,6 +164,12 @@ public class SolrCloudReportersTest extends SolrCloudTestCase { assertEquals(reporters.toString(), 0, reporters.size()); for (String registryName : metricManager.registryNames(".*\\.shard[0-9]\\.replica.*")) { reporters = metricManager.getReporters(registryName); + jmxReporter = 0; + reporters.forEach((k, v) -> { + if (v instanceof SolrJmxReporter) { + jmxReporter++; + } + }); assertEquals(reporters.toString(), 0 + jmxReporter, reporters.size()); } }); From c861c12d1579cca7d5eae7259dcfc04209638f34 Mon Sep 17 00:00:00 2001 From: Andrzej Bialecki Date: Tue, 15 Aug 2017 10:59:05 +0200 Subject: [PATCH 05/28] Don't release MBeanServer, other tests running in this JVM may already depended on it. --- .../solr/metrics/reporters/SolrJmxReporterCloudTest.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterCloudTest.java b/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterCloudTest.java index a76f4837cba..664fbcc0929 100644 --- a/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterCloudTest.java +++ b/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterCloudTest.java @@ -63,13 +63,6 @@ public class SolrJmxReporterCloudTest extends SolrCloudTestCase { .process(cluster.getSolrClient()); } - @AfterClass - public static void releaseMBeanServer() throws Exception { - if (mBeanServer != null) { - MBeanServerFactory.releaseMBeanServer(mBeanServer); - } - } - @Test public void testJmxReporter() throws Exception { CollectionAdminRequest.reloadCollection(COLLECTION).processAndWait(cluster.getSolrClient(), 60); From afe7dffa23b1f2067c0b6c8ff3999f47bc655826 Mon Sep 17 00:00:00 2001 From: Andrzej Bialecki Date: Tue, 15 Aug 2017 11:32:24 +0200 Subject: [PATCH 06/28] SOLR-11235: Some SolrCore metrics should check if core is closed before reporting. --- solr/CHANGES.txt | 2 ++ .../java/org/apache/solr/core/SolrCore.java | 25 ++++++------- .../reporters/SolrJmxReporterTest.java | 36 +++++++++++++++++++ 3 files changed, 51 insertions(+), 12 deletions(-) diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 1bc9cbbf32f..a0e8c6e4992 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -459,6 +459,8 @@ Bug Fixes * SOLR-11221: SolrJmxReporter broken on core reload. This resulted in some or most metrics not being reported via JMX after core reloads, depending on timing. (ab) +* SOLR-11235: Some SolrCore metrics should check if core is closed before reporting. (ab) + Optimizations ---------------------- diff --git a/solr/core/src/java/org/apache/solr/core/SolrCore.java b/solr/core/src/java/org/apache/solr/core/SolrCore.java index 641d1a1bb62..53708f18965 100644 --- a/solr/core/src/java/org/apache/solr/core/SolrCore.java +++ b/solr/core/src/java/org/apache/solr/core/SolrCore.java @@ -1133,9 +1133,9 @@ public final class SolrCore implements SolrInfoBean, SolrMetricProducer, Closeab manager.registerGauge(this, registry, () -> startTime, true, "startTime", Category.CORE.toString()); manager.registerGauge(this, registry, () -> getOpenCount(), true, "refCount", Category.CORE.toString()); manager.registerGauge(this, registry, () -> resourceLoader.getInstancePath().toString(), true, "instanceDir", Category.CORE.toString()); - manager.registerGauge(this, registry, () -> getIndexDir(), true, "indexDir", Category.CORE.toString()); - manager.registerGauge(this, registry, () -> getIndexSize(), true, "sizeInBytes", Category.INDEX.toString()); - manager.registerGauge(this, registry, () -> NumberUtils.readableSize(getIndexSize()), true, "size", Category.INDEX.toString()); + manager.registerGauge(this, registry, () -> isClosed() ? "(closed)" : getIndexDir(), true, "indexDir", Category.CORE.toString()); + manager.registerGauge(this, registry, () -> isClosed() ? 0 : getIndexSize(), true, "sizeInBytes", Category.INDEX.toString()); + manager.registerGauge(this, registry, () -> isClosed() ? "(closed)" : NumberUtils.readableSize(getIndexSize()), true, "size", Category.INDEX.toString()); if (coreContainer != null) { manager.registerGauge(this, registry, () -> coreContainer.getNamesForCore(this), true, "aliases", Category.CORE.toString()); final CloudDescriptor cd = getCoreDescriptor().getCloudDescriptor(); @@ -1488,6 +1488,16 @@ public final class SolrCore implements SolrInfoBean, SolrMetricProducer, Closeab } log.info(logid+" CLOSING SolrCore " + this); + // stop reporting metrics + try { + coreMetricManager.close(); + } catch (Throwable e) { + SolrException.log(log, e); + if (e instanceof Error) { + throw (Error) e; + } + } + if( closeHooks != null ) { for( CloseHook hook : closeHooks ) { try { @@ -1586,15 +1596,6 @@ public final class SolrCore implements SolrInfoBean, SolrMetricProducer, Closeab } } - try { - coreMetricManager.close(); - } catch (Throwable e) { - SolrException.log(log, e); - if (e instanceof Error) { - throw (Error) e; - } - } - // Close the snapshots meta-data directory. Directory snapshotsDir = snapshotMgr.getSnapshotsDir(); try { diff --git a/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterTest.java b/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterTest.java index 11cdf3715de..e02db4ba52f 100644 --- a/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterTest.java +++ b/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterTest.java @@ -16,6 +16,7 @@ */ package org.apache.solr.metrics.reporters; +import javax.management.InstanceNotFoundException; import javax.management.MBeanServer; import javax.management.ObjectInstance; import javax.management.ObjectName; @@ -174,6 +175,41 @@ public class SolrJmxReporterTest extends SolrTestCaseJ4 { rootName.equals(o.getObjectName().getDomain())).count()); } + private static boolean stopped = false; + + @Test + public void testClosedCore() throws Exception { + Set objects = mBeanServer.queryMBeans(new ObjectName("*:category=CORE,name=indexDir,*"), null); + assertEquals("Unexpected number of indexDir beans: " + objects.toString(), 1, objects.size()); + final ObjectInstance inst = objects.iterator().next(); + stopped = false; + try { + Thread t = new Thread() { + public void run() { + while (!stopped) { + try { + Object value = mBeanServer.getAttribute(inst.getObjectName(), "Value"); + assertNotNull(value); + } catch (InstanceNotFoundException x) { + // no longer present + break; + } catch (Exception e) { + fail("Unexpected error retrieving attribute: " + e.toString()); + } + } + } + }; + t.start(); + Thread.sleep(500); + h.getCoreContainer().unload(h.getCore().getName()); + Thread.sleep(2000); + objects = mBeanServer.queryMBeans(new ObjectName("*:category=CORE,name=indexDir,*"), null); + assertEquals("Unexpected number of beans after core closed: " + objects, 0, objects.size()); + } finally { + stopped = true; + } + } + @Test public void testEnabled() throws Exception { String root1 = PREFIX + TestUtil.randomSimpleString(random(), 5, 10); From 9ebdd846fd90989f04b0b94318ad78c14d0ee2dd Mon Sep 17 00:00:00 2001 From: Joel Bernstein Date: Tue, 15 Aug 2017 15:00:56 -0400 Subject: [PATCH 07/28] SOLR-10651: Statistical function docs for 7.0 --- .../solr-ref-guide/src/stream-evaluators.adoc | 368 ++++++++++++++++++ 1 file changed, 368 insertions(+) diff --git a/solr/solr-ref-guide/src/stream-evaluators.adoc b/solr/solr-ref-guide/src/stream-evaluators.adoc index 5d16fbf1f79..5f25585da75 100644 --- a/solr/solr-ref-guide/src/stream-evaluators.adoc +++ b/solr/solr-ref-guide/src/stream-evaluators.adoc @@ -530,3 +530,371 @@ raw(true) // "true" (note: this returns the string "true" and not the boolean tr eq(raw(fieldA), fieldA) // true if the value of fieldA equals the string "fieldA" ---- +== movingAvg + +The `movingAvg` function calculates a moving average over an array of numbers. +(https://en.wikipedia.org/wiki/Moving_average) + + +=== movingAvg Parameters + +* `numeric array` +* `window size` + +=== movingAvg Returns + +A numeric array with the moving average. The array returned will be smaller then the +orignal array by the window size. + +=== movingAvg Syntax + +movingAverage(numericArray, 30) + + +== anova + +The `anova` function calculates the analysis of variance for two or more numeric arrays. + +(https://en.wikipedia.org/wiki/Analysis_of_variance) + +=== anova Parameters + +* `numeric array` ... (two or more) + +=== anova Returns + +A tuple with the results of ANOVA + +=== anova Syntax + +anova(numericArray1, numericArray2) // calculats ANOVA for two numeric arrays +anova(numericArray1, numericArray2, numericArray2) // calculats ANOVA for three numeric arrays + +== hist + +The `hist` function creates a histogram from a numeric array. The hist function is designed +to work with continuous variables. + +=== hist Parameters + +* `numeric array` +* `bins` (The number of bins in the histogram) + +=== hist Returns + +A List of containing a tuple for each bin the the histogram. Each tuple contains +summary statistics for the observations that were within the bin. + +=== hist Sytnax + +hist(numericArray, bins) + +== array + +The array function returns an array of numerics or other objects including other arrays. + +=== array Parameters + +* `numeric` | `array` ... + +=== array Syntax + +array(1, 2, 3) // Array of numerics + +array(array(1,2,3), array(4,5,6)) // Array of arrays + +== sequence + +The `sequence` function returns an array of numbers based on its parameters. + +=== sequence Parameters + +* `length` +* `start` +* `stride` + +=== sequence Returns + +numeric array + +=== sequence Syntax + +sequence(100, 0, 1) // Returns a sequence of length 100, starting from 0 with a stride of 1. + +== finddelay + +The `finddelay` function performs a cross-correlation between two numeric arrays and returns the delay. + +=== finddelay Parameters + +* `numeric array` +* `numeric array` + +=== finddelay Returns + +Integer delay + +=== finddelay Syntax + +finddelay(numericArray1, numericArray2) + +== describe + +The `describe` function returns a tuple containing the desciptive statistics for an array. + +=== describe Parameters + +* `numeric array` + +=== describe Returns + +Tuple containing descriptive statistics + +=== describe Syntax + +describe(numericArray) + +== copyOfRange + +The `copyOfRange` function creates a copy of a range of a numeric array. + +=== copyOfRange Parameters + +* `numeric array` +* `start index` +* `end index` + +=== copyOfRange Returns + +A copy of an arrar starting from the start index inclusive and ending at the end index +exclusive. + +=== copyOfRange Syntax + +copyOfRange(numericArray, startIndex, endIndex) + +== copyOf + +The `copyOf` function creates a copy of a numeric array. + +=== copyOf Parameters + +* `numeric array` +* `length` + +=== copyOf Returns + +A copy of the numeric array starting from zero of size of the length parameter. The returned + array will be right padded with zeros if the length parameter exceeds the size of the + original array. + +=== copyOf Syntax + +copyOf(numericArray, length) + +== distance + +The `distance` function calculates the Euclidian distance of two numeric arrays. + +=== distance Parameters + +* `numeric array` +* `numeric array` + +=== distance Returns + +number + +=== distance syntax + +distance(numericArray1, numuericArray2)) + +== scale + +The `scale` function multiplies all the elements of an array by a number. + +=== scale Parameters + +* `number` +* `numeric array` + +=== scale Returns + +A numeric array with the scaled values + +=== scale syntax + +scale(number, numericArray) + +== rank + +The `rank` performs a *rank transformaion* on a numeric array. + +=== rank Parameters + +* `numeric array` + + +=== rank Returns + +numeric array with rank transformed values + +=== rank Syntax + +rank(numericArray) + +== length + +The `length` function returns the length of a numeric array. + +=== length Parameters + +* `numeric array` + +=== length Returns + +integer + +=== length syntax + +length(numericArray) + +== rev + +The `rev` function reverses the order of a numeric array. + +=== rev Parameters + +* `numeric array` + +=== rev Returns + +A copy of a numeric array with its elements reveresed. + +=== rev Syntax + +rev(numericArray) + +== regress + +The `regress` function performs a simple regression on two numeric arrays. + +=== regress Parameters + +* `numeric array` +* `numeric array` + +=== regress Returns + +A regression result tuple which holds the regression results. The regression +result tuple is also used by the predict function. + +=== regress Syntax + +regress(numericArray1, numericArray2) + + +== predict + +The `predict` function predicts the value of an dependent variable based on +the output of the regress function. + +=== predict Parameters + +* `regress output` +* `numeric predictor` + +=== predict Returns + +The predicted value + +=== predict Syntax + +predict(regressOutput, predictor) + +== col + +The `col` function returns a numeric array from a list of Tuples. The col +function is used to create numeric arrays from stream sources. + +=== col Parameters + +* `list of Tuples` +* `field name` + +=== col Returns + +A numeric array from a list of tuples. The field name parameter specifies which field +to create the array from. + +=== col Syntax + +col(tupleList, fieldName) + +== cov + +The `cov` function returns the covariance of two numeric arrays. + +=== cov Parameters + +* `numeric array` +* `numeric array` + +=== cov Returns + +Number + +=== cov Syntax + +cov(numericArray, numericArray) + +== corr + +The `corr` function returns the Pearson Product Moment Correlation of two numeric arrays. + +=== corr Parameters + +* `numeric array` +* `numeric array` + +=== corr Returns + +double between -1 and 1 + +=== corr Synax + +corr(numericArray1, numericArray2) + +== conv + +The `conv` function returns the convolution (https://en.wikipedia.org/wiki/Convolution) of two numeric arrays. + +=== conv Parameters + +* `numeric array` +* `numeric array` + +=== conv Returns + +A numeric array with the convolution of the two array parameters. + +=== conv Syntax + +conv(numericArray1, numericArray2) + +== normalize + +The `normalize` function normalizes a numeric array so that values within the array +have a mean of 0 and standard deviation of 1. + +=== normalize Parameters + +* `numeric array` + +=== normalize Returns + +A numeric array with normalized values. + +=== normalize Syntax + +normalize(numericArray) From 0b353b6741a88cb85cb92d21cf825e7d412ece97 Mon Sep 17 00:00:00 2001 From: Cassandra Targett Date: Tue, 15 Aug 2017 14:03:37 -0500 Subject: [PATCH 08/28] SOLR-10842: Move Tutorial to Ref Guide Squashed commit of the following: commit 1cc4de5c4506c757746eac1809f9a7f3d3a55d00 Author: Cassandra Targett Date: Tue Aug 15 13:23:40 2017 -0500 SOLR-10842: add Field UI images; rename image paths; minor cleanups commit 39c7c2f87c54eaaa3341dd119ecd4f0675244a38 Author: Cassandra Targett Date: Thu Aug 3 15:49:21 2017 -0500 SOLR-10842: remove running-solr.adoc; move starting solr content to installing-solr; move pages to improve flow; final readthrough commit 70bea0e73159557f991572ad680a251a0791faec Author: Cassandra Targett Date: Wed Aug 2 19:31:57 2017 -0500 SOLR-10842: rename upgrading-solr.adoc; fix links commit 0d0cbe7980bf0868ea5d36093aad6101201de82b Author: Cassandra Targett Date: Tue Aug 1 09:46:42 2017 -0500 SOLR-10842: page re-org cleanup; copy edits on tutorial; rename "quick-start" to "tutorial" commit 4a2635638b214b1480d3b7055afa219ae7bb6a36 Author: Cassandra Targett Date: Fri Jul 28 13:45:39 2017 -0500 SOLR-10842: Overhaul of tutorial; update query image commit 1e1646223b29a0788597d3695b5d0e7ebdd28187 Author: Cassandra Targett Date: Thu Jul 20 14:13:43 2017 -0500 little typos commit e2cb85649dabfd7fd7df6f3d3cce2ca58a4c76a9 Author: Cassandra Targett Date: Wed Jul 19 09:32:25 2017 -0500 Change example to use Films commit 49ad12ca58d5b3bbe60f3cb8f61469bfe321fcc3 Author: Cassandra Targett Date: Tue Jul 18 09:31:03 2017 -0500 Further experiments with tabbed layout commit 21e4dcb38f802f9d2aed795d5c6ba3701b0178ae Author: Cassandra Targett Date: Mon Jul 17 16:58:33 2017 -0500 Fix page links; add experiment with tabs for different data formats commit c24a9385361d22d7cb51051152b9e1f834c25d45 Author: Cassandra Targett Date: Thu Jun 29 14:36:01 2017 -0500 SOLR-10842: minor changes to a few files commit 819f160423d17dbb647935c5bbfd8a16d4b7b57c Author: Cassandra Targett Date: Fri Jun 23 13:49:32 2017 -0500 SOLR-10842: major page reorg; new content for install and config files commit 4be7b61ba46f440accdf96757566c3d854e09328 Author: Cassandra Targett Date: Tue Jun 13 15:34:49 2017 -0500 SOLR-10842: installation docs commit c83a9ba91d96d5b75df2191404a3482ca81f8505 Author: Cassandra Targett Date: Tue Jun 13 13:56:47 2017 -0500 SOLR-10842: little fixes for quick start commit 10c1a462338aa16c0435c01eba0506fe09277174 Author: Cassandra Targett Date: Fri Jun 9 13:47:04 2017 -0500 SOLR-10842: add quickstart.html from CMS; convert to asciidoc style --- solr/solr-ref-guide/src/a-quick-overview.adoc | 11 +- solr/solr-ref-guide/src/getting-started.adoc | 30 +- .../solr-tutorial/tutorial-add-copy-field.png | Bin 0 -> 123194 bytes .../solr-tutorial/tutorial-add-field.png | Bin 0 -> 212142 bytes .../tutorial-admin-ui-facet-options.png | Bin 0 -> 10646 bytes .../solr-tutorial/tutorial-query-screen.png | Bin 0 -> 256538 bytes .../solr-tutorial/tutorial-range-facet.png | Bin 0 -> 21592 bytes .../solr-tutorial/tutorial-solrcloud.png | Bin 0 -> 50418 bytes .../images/solr-tutorial/tutorial-spatial.png | Bin 0 -> 229121 bytes solr/solr-ref-guide/src/index.adoc | 11 +- solr/solr-ref-guide/src/installing-solr.adoc | 180 +++- .../major-changes-from-solr-5-to-solr-6.adoc | 4 +- solr/solr-ref-guide/src/managing-solr.adoc | 4 +- solr/solr-ref-guide/src/running-solr.adoc | 289 ------ ...ser.adoc => solr-configuration-files.adoc} | 24 +- .../src/solr-control-script-reference.adoc | 2 +- .../src/solr-system-requirements.adoc | 48 + solr/solr-ref-guide/src/solr-tutorial.adoc | 980 ++++++++++++++++++ ...ding-solr.adoc => solr-upgrade-notes.adoc} | 14 +- .../src/upgrading-a-solr-cluster.adoc | 21 +- 20 files changed, 1253 insertions(+), 365 deletions(-) create mode 100644 solr/solr-ref-guide/src/images/solr-tutorial/tutorial-add-copy-field.png create mode 100644 solr/solr-ref-guide/src/images/solr-tutorial/tutorial-add-field.png create mode 100644 solr/solr-ref-guide/src/images/solr-tutorial/tutorial-admin-ui-facet-options.png create mode 100644 solr/solr-ref-guide/src/images/solr-tutorial/tutorial-query-screen.png create mode 100644 solr/solr-ref-guide/src/images/solr-tutorial/tutorial-range-facet.png create mode 100644 solr/solr-ref-guide/src/images/solr-tutorial/tutorial-solrcloud.png create mode 100644 solr/solr-ref-guide/src/images/solr-tutorial/tutorial-spatial.png delete mode 100644 solr/solr-ref-guide/src/running-solr.adoc rename solr/solr-ref-guide/src/{a-step-closer.adoc => solr-configuration-files.adoc} (74%) create mode 100644 solr/solr-ref-guide/src/solr-system-requirements.adoc create mode 100644 solr/solr-ref-guide/src/solr-tutorial.adoc rename solr/solr-ref-guide/src/{upgrading-solr.adoc => solr-upgrade-notes.adoc} (93%) diff --git a/solr/solr-ref-guide/src/a-quick-overview.adoc b/solr/solr-ref-guide/src/a-quick-overview.adoc index bcacb07c839..a88e1a037ae 100644 --- a/solr/solr-ref-guide/src/a-quick-overview.adoc +++ b/solr/solr-ref-guide/src/a-quick-overview.adoc @@ -18,7 +18,7 @@ // specific language governing permissions and limitations // under the License. -Having had some fun with Solr, you will now learn about all the cool things it can do. +Solr is a search server built on top of Apache Lucene, an open source, Java-based, information retrieval library. It is designed to drive powerful document retrieval applications - wherever you need to serve data to users based on their queries, Solr can work for you. Here is a example of how Solr might be integrated into an application: @@ -30,13 +30,12 @@ In the scenario above, Solr runs along side other server applications. For examp Solr makes it easy to add the capability to search through the online store through the following steps: . Define a _schema_. The schema tells Solr about the contents of documents it will be indexing. In the online store example, the schema would define fields for the product name, description, price, manufacturer, and so on. Solr's schema is powerful and flexible and allows you to tailor Solr's behavior to your application. See <> for all the details. -. Deploy Solr. . Feed Solr documents for which your users will search. . Expose search functionality in your application. -Because Solr is based on open standards, it is highly extensible. Solr queries are RESTful, which means, in essence, that a query is a simple HTTP request URL and the response is a structured document: mainly XML, but it could also be JSON, CSV, or some other format. This means that a wide variety of clients will be able to use Solr, from other web applications to browser clients, rich client applications, and mobile devices. Any platform capable of HTTP can talk to Solr. See <> for details on client APIs. +Because Solr is based on open standards, it is highly extensible. Solr queries are simple HTTP request URLs and the response is a structured document: mainly JSON, but it could also be XML, CSV, or other formats. This means that a wide variety of clients will be able to use Solr, from other web applications to browser clients, rich client applications, and mobile devices. Any platform capable of HTTP can talk to Solr. See <> for details on client APIs. -Solr is based on the Apache Lucene project, a high-performance, full-featured search engine. Solr offers support for the simplest keyword searching through to complex queries on multiple fields and faceted search results. <> has more information about searching and queries. +Solr offers support for the simplest keyword searching through to complex queries on multiple fields and faceted search results. <> has more information about searching and queries. If Solr's capabilities are not impressive enough, its ability to handle very high-volume applications should do the trick. @@ -44,6 +43,4 @@ A relatively common scenario is that you have so much data, or so many queries, For example: "Sharding" is a scaling technique in which a collection is split into multiple logical pieces called "shards" in order to scale up the number of documents in a collection beyond what could physically fit on a single server. Incoming queries are distributed to every shard in the collection, which respond with merged results. Another technique available is to increase the "Replication Factor" of your collection, which allows you to add servers with additional copies of your collection to handle higher concurrent query load by spreading the requests around to multiple machines. Sharding and Replication are not mutually exclusive, and together make Solr an extremely powerful and scalable platform. -Best of all, this talk about high-volume applications is not just hypothetical: some of the famous Internet sites that use Solr today are Macy's, EBay, and Zappo's. - -For more information, take a look at https://wiki.apache.org/solr/PublicServers. +Best of all, this talk about high-volume applications is not just hypothetical: some of the famous Internet sites that use Solr today are Macy's, EBay, and Zappo's. For more examples, take a look at https://wiki.apache.org/solr/PublicServers. diff --git a/solr/solr-ref-guide/src/getting-started.adoc b/solr/solr-ref-guide/src/getting-started.adoc index 733fa91bba7..436986444d6 100644 --- a/solr/solr-ref-guide/src/getting-started.adoc +++ b/solr/solr-ref-guide/src/getting-started.adoc @@ -1,7 +1,7 @@ = Getting Started :page-shortname: getting-started :page-permalink: getting-started.html -:page-children: installing-solr, running-solr, a-quick-overview, a-step-closer, solr-control-script-reference +:page-children: a-quick-overview, solr-system-requirements, installing-solr, solr-configuration-files, solr-upgrade-notes, taking-solr-to-production, upgrading-a-solr-cluster // Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information @@ -19,25 +19,21 @@ // specific language governing permissions and limitations // under the License. -Solr makes it easy for programmers to develop sophisticated, high-performance search applications with advanced features such as faceting (arranging search results in columns with numerical counts of key terms). +[.lead] +Solr makes it easy for programmers to develop sophisticated, high-performance search applications with advanced features. -Solr builds on another open source search technology: Lucene, a Java library that provides indexing and search technology, as well as spellchecking, hit highlighting and advanced analysis/tokenization capabilities. Both Solr and Lucene are managed by the Apache Software Foundation (http://www.apache.org/[www.apache.org)]. - -The Lucene search library currently ranks among the top 15 open source projects and is one of the top 5 Apache projects, with installations at over 4,000 companies. Lucene/Solr downloads have grown nearly ten times over the past three years, with a current run-rate of over 6,000 downloads a day. The Solr search server, which provides application builders a ready-to-use search platform on top of the Lucene search library, is the fastest growing Lucene sub-project. Apache Lucene/Solr offers an attractive alternative to the proprietary licensed search and discovery software vendors. - -This section helps you get Solr up and running quickly, and introduces you to the basic Solr architecture and features. It covers the following topics: - -<>: A walkthrough of the Solr installation process. - -<>: An introduction to running Solr. Includes information on starting up the servers, adding documents, and running queries. +This section introduces you to the basic Solr architecture and features to help you get up and running quickly. It covers the following topics: <>: A high-level overview of how Solr works. -<>: An introduction to Solr's home directory and configuration options. +<>: A walkthrough of the Solr installation process. -<>: a complete reference of all of the commands and options available with the bin/solr script. +<>: Overview of the installation layout and major configuration files. -[TIP] -==== -Solr includes a Quick Start tutorial which will be helpful if you are just starting out with Solr. You can find it online at http://lucene.apache.org/solr/quickstart.html. -==== +<>: Information about changes made in Solr releases. + +<>: Detailed steps to help you install Solr as a service and take your application to production. + +<>: Information for upgrading a production SolrCloud cluster. + +TIP: Solr includes a Quick Start tutorial which will be helpful if you are just starting out with Solr. You can find it in this Guide at <>. diff --git a/solr/solr-ref-guide/src/images/solr-tutorial/tutorial-add-copy-field.png b/solr/solr-ref-guide/src/images/solr-tutorial/tutorial-add-copy-field.png new file mode 100644 index 0000000000000000000000000000000000000000..6a21a993681d5355bb7eb0228ff36e8d9e6b9ff4 GIT binary patch literal 123194 zcmeFZWmH_jnl6kbSa1sjcXw^v-Q7J{@Ww3=9D-|bcMBfegS$iH&_Hna+c{_M%zS6g z{QG`h)@pWBdsppOpI53D5h_a3C`bfIP*6}PvN95CP*89{C@2^yg!hmUfWr(u6x0VC z8*yAFqL8W$C2I34$eS9Werie7kp^`LtEj3j3}T_* zLyN3OFk$ZH6F}`EBKJF+2971oaZ;Bdn{*?T!t$6*?#oC(*VU;)ji|hNcm-gQ{(SxM zjd7tX=1qHg_mYwjDo!VyqXkomxIYZK+l`Oh85$~BtCS~0i!@~`Qd&$Tl5giYX4H=3(c^uaYI+uE9oN?Ephu4-pMoFw%1mWU+_zSNuH{SLW`s%@+ zVu()GhdQ@GH0PhMxE$uZ)EQY^(KxNYLkJn;!d;d*UMKhNHxg1Ah<@~8bJH6W64Q+0 zSFcuQmc_FxgxsgGQUKnYF@;Yex48J=caElp($Jsy@FkG8eEtdzh1BwAQzjgR^s|gB zCT!AD2vf?Fm=C9(3VM8QKmK-^^T@q*9xD$(4&RC`2ahe7=Yo>#LYzB2XbK_Rv?wnu z>K<_zDcjmLkCcwUj4OPViti#`ZX-$&e z&$UOdTj$+#uu}+2N^fGJ1d8+KWso>FAuF?TTIp_R&k<6z`eRDCi+S?x619KK?cWcCAYE9JQav7`-`qzdC}1Rqv3Y!<6tDSKNqNqrv^nH`S+`d!E~ znMY>eF)X|<=NKi_U07?Y=t=B{qQ14xn!U-ZVV$?MShbqZ75l{&@odkZgF>tPV=%A# z2%Jqx9_p!@KJo`Qnv~QbFR@h;v(_c*z%E1*rEYD>d6L%z=PhsVuDO^H_QZWxuTqbl zP0iW=%y5uem0I|fr$gkH4Nehf93A=R{kt)!mQPn{7-BI6g0lm|%dk+(pz0+6h<(?G zySL@uFf{-Psz$AJ?6KNB1KR1D4(j@D!|k)9Nox(%rYFBNJ+lVbVwH^)3h8-r>b>`Q zSKkMnK3{{c{O8b&=rDspALF3ZdMsMDedFNylws?;eN|vax{+#eHG;-XJ}tew4f>W# zObA=j!{>z9@a@wkab=XlIp%fXoe7jEI;NO7IGorlT8Gp<9CR4W)|5ZK zDv8xk`8FUJhBJ#ZOxXg_^un^GSn_zLl&+~(Vxbjq%uT4%VD}^5nX>5+q(ns2@#)ZM z#b}y8)k@uG*O+GMu-qcjYy&eR_`6p=3}HE=X2(wUq;4nQGq-b7JZtAu;@nIVaveq;MC6JlqY zT9qAK%|14`hJ!Ac@!Los1 z1%E|+MVjl^j{?150&V+hy=1+t70pKNBl;uUBj}^V`KYDoDj856s) z>CzeAa%cGhS?e)eB-(_Ig$g#ItO_@CCys@>p^m zOLB@l?64ZE8Ymj-8%G=NY@2QF4y_NP7i4GBtJRBK4N4LN*%f4Z;CQ8a1*uwhtH$JVM`8 z0jnHO?frI&c42g{^zh{x@zq!{pt{Z4&6&+6^s2c2 zxRJQ9yy86Fyv95~QwLLyKBW+>UWz{L(2Ype=uL?^iR|-2ZW;=Z=ho#2IpCtLR$FiWgP);>HwUwBLS41+b z1toAcn7htmdt6p4u~_*Rt8ReH>F$pDTuE&Sp&U&iP05+kTW^f1cKs6vIXkz-wQ~^f zF)vFi<0*jy+GJ{TVy(BPieRN$$M9!}oQOdEwA7JmF!>iUV9wb98OMuj{#a5ze%k(0- zq6ya4(Y$xon`scAd zYAyQ0zOQ}P=BeX8S^d(|`sM0?DTt}LIn=(YqN$R3LuyT{<>c_T@Pw($>s6~>JV1Im zriMR+pWkEP#J2jPv~1bF*2jxUkD=;hnZsH63AEXP@<&d3N9=jw^LWOC zCPn-OuLVH(x6aD2T}Os9A^QJC2Z66kC_`Lerwbs#pGWrJwV=LNcZu0sal z#TZ?;>jVtHs2Nu1AIFb6q{cS1HqRSgw9HJM&V!cNig)@o-zrLK-Wl_I2yQg$vgS!(LhjwFxT7K`N-q^R+mmd z<89HkTNiE@v2Xo#6=*fw3!>u^m#NE=HnOZ&(u(k?l2&j2+EssES` z`Ad-88VGa(u&{V|crbf#FgvL7rf8^>P53dNMhM|UjKey zQOVVn?uCL9fs&OF)$oM=V+ikwBe^JqNR~&LL>Ww(+pmn04~K&cgR2s#EXnxwU3`8J z?LbaG0{u7)dG3saim1@Q`|z(J`7rcL-9bTL<&Z0w-?cGBH`!&QFZMERZ$UibT~NZe{;cx5d+JJ z|1UQoGf01~O(Th(D1M{~-N)LjO`99Mkac z$or2~gFZl$0fQ=gDck-nr~e$xqp<&9*@O!u6&FFsBCTK@uKwR81`)-l|0jxn$mjow z;y=CW|1VJll1gq~AI>IqI1BE5d5CgpdKGVN^Ozd;^8xSnd>Bz&wNIg^WQ-Q;?W3b) z%%q=-EQmyOqh%C|w?!c?dd?I8#?jA}+B~Ly+Q86hbtyW_9w_-YraTZ1amN9KVhJjQ zBu*F_?q{W;#manh;hH?GuBxKh)>cWmpP(UQ^?_ej>P9QfD+{LpB;f;r^0|Atau-Y2 z@|iyXq$-V8nTu?jz~CvqSzCjVfAxGgR0wFmDH+Nr!9m9&>^|40vv=vp=oNH^hO!h|ywpNt6(r9a%};+Wa0&h#d?zhekeA{x)Hvi~u4_y@~f zIi;j_iMQNcU%K4=zz-W&dv%+5&H>8Q?%RH->L5X+Jav$r&IrxF;2|9I zU#U2(%S=qL!o|FtGZCe|($D){QPl7HgkBd_?&YLUzOG4dTFY3CzxGF)tul?%I&K(U zEvIJ0O(AJq^?8O-GbF zJuxDW43#7YhHd_t{j&9?Bbtk)`CBrV0Y3~?7zZk!Zih4ud!^{B$1HPZKzT2bR7Mh* z&Z6RxKA$-yDUEf$IKP*dfXG~4QC8^P|2KLBUWP$rwO6B5Bmo`MJ^T&c`m7cj_~*%S z&Bc3SCZ|+v+}bjy&6VH2>&lx)IHa)@)QL6keW}Z_bQ;D#ec>jYHaXyog-NW`C>^uI zWNx*{U32Im-eqQVb4)Uld4F-{cQeHC@B7@dU_kMZdR&uz*ydF5@HkZ zr-Uo%vDBG7*+%zwMqDHg-C<&~MqY~Z?tL9eSHT>}5D7o(3}pT!EXf5B-1PZMdPf(m z6sMhQVf?S!G5f2X?UBSvcs!V)fS2@J0Z^0@F#ycA6VJ0IabZrK;UJAWUf@@d&6*SC zf;DUR6_6|!rnqw*Tdh+}BEL(pUa*1hij;y5pqdG$RQn$(!8tTUJHAk|?FcZhYoaVp8|QPrvn#_*>aG5)Y;;x{DpK)-;cf?E3bG3@L#o3 zI+PnMXKoKE6-|}LQ(^dZ4?vjd){L-_`4?t*%^}IfL3EidowY6*6uBjjqbtB|SEW-| zCX+X@oU>!$y8f({47i(!Hh$0x>KEh)EpI%we!u$kCo!q@oZ_mr#gSaUN!0>%dwjhv z*(oSBIhX$Q8iq`W3<#5lOZl(3(w!awF$$~C9r9)Jh=GYucQe&tXH>Mj%)c}1ccshG ziOjv_PiB)LzFYNRkd`5bXDsEm;glfSTGnR$WWR_*9Vzxuwa_FufI?Eyn>n^rgHV|n zz^z`DH>rNZe@dre(6g(HkY!TNG+gm7z^u{*si4YFNK4UhoYU)w zoyal1izfgF@v-WkVoSbO46%|-jY4eke-ST&*k4=el}luVhlhC@iplLGd6_I3(`#lp zgnBdZ!^oNt$|LdX+y1m=7%fmY8hZemJ}3KY zEV2rjR-9JG(lJi(+Kldh+(m=vQmMbGR<*#e_a?cM#f9$*&!uw?$H(;w zVM*boq3eK4kzeGd3Q=NfnKvLSY-b}sj{Y9q8r8uh=Y3b__5N$01Y6KXUo`4aofXsD zoNp6IqhsG&E{(O%R+ITOWQq=No;KuvfC}bcQ2Dt+IU5)Q6+<&g-+!@*Sko@6nbFJ| zmE5uAv9f%FdbPZmadhWiq6eGZqLCUUwi6bHpq7XhW)l=0Hpu}=(rDJIPE(Ajc=Gf)qZszeC ztehMn*#3zS2USoYZ{9Wygf3=%5#6H>R#MSSwb1$(oziOmMVsn!btEiW1j3hn2Dwk0YcWa2oxR&wbT-pG z+$>@H?UIKq!jAO}V6t1bl&^je1Vc5CwuDKy1y2T)`)CsJIwk=%lD?j_iXqHAmIt-Ly zQ$Kn}_MCYI{)3jf)NaA_7Jd8S(5{~0NIc}nbmUl>?;*}-Y)P^#bYA~4i^%pZYL0A^ zPC68^lH7M+L{EF7Yjy=a(P^#4G~(Kt6L9A`kzMX^YnG5?V6E8h58RO7 zPODe_1xYuJS-Ewg&Kc(b6OJaKf|tW# z4G?VFcQth&KQflF>ZmVe6@^)Fl*IygW2Pl1OXB0>1FylVBNG$U_9V64GJ_M=aIE-| z;o-UEniXma3Lhk;r04~Z_+@8K3|8Lo*E0*xgG3@oNnbP~y6NMQU_?VioNr()4Xw$5 zBfs8LzPLn*taOJRg3I^brJ$7vZ(-9`EYI(`1L~YR=0}eGk{L48x09B+?{F>r!@-(l|ArT~tGpJTTDrpI@x%H3v7#&nz?&@UIEIKHI~}X?qip9p=s18? zjvu#;n6z;R8O6!QC-#4ckSYYCYpRgSeg*_MG?g(5;@A=rr=Y z6*<6lTotqsaJgzN<-tHv16M91M-m8_^d`gQnH!G1zCN7+FLz}%K`V`R>Odf;X0^ex z!AJNH=m{92-9b<*=NCIehuwj&4IXDkdun-N?`-EvEPTPku}A!yQA&!6JeK9>Qk%jBUWSO6J_U-Jh^g29GSad)1G)e|wJ- zJVsZBl;kP@4q73B+hMJAMovjd>zA7dxFrE1V)-HfB?csUIR6SU5MmJw2GPwA;@yk> zq*EpsVl-2>5|>y&1VUd|b|PKQ)FURHt(3be9-gAar;bF@X+e?#F!9Tmtr)*Il%m^{ z&-GW=D)p-r*t0%y<8(Z3c=lZ<0En>=m%FvZZoiNH`EGbMqxg4b=E>X2pQxR!OqNBp z5L>QDigNad0$xNS#?Pis>z#gWE7d{vT5iV+Oo=~b^Mgd3$!qNvnHyh_R^K1bS6C(R z{g{itHO{n_H-G@S3N~C}4n2}BrW87@F#`4+8l0I8#5Vf%;sxH}!0@-NNiApa%y?~l z!o*n^E4eunmF{{Ov9)Yd&ScFhKfk4};QP4=yK?ueQjxss7XsEPzZ*t^)J@C#DQwOk zh@Lk-WMtK#as3ifsPoIN^%71_F8iH{^~t|^8E;X1O?^_marKO@8Z0N6y-f{l2!<)d zclwbmbCBenEEhx-{Pp!HWVU9ix-mE=c?v?a*rt2~gyu~wh&?~RC3<4Qjc~!dyMYbV z@q}bLby}3lkY3N}DN)1AZ3=ytY>vOQsq;lsJBjBD4&Z!{G9&Az$2BdLZ_J{Cr};@Q z7OmvS!>w*P2k=93_0wkSS3Zu9p~Jls_HK{yn{&7@FpQ`w7E`XwtINfcqBp+5>^+`~w0-e!y-Npfx_ zdYpfGWn3!oU0}CpZmvJ6lgrUq1Uf*8aaReQmJ>#Lzf1Z_O1P?b-s_5@e66&ODW(!< z)OvEK10VWG}K$A#A(VrPKXt<5p zA4TW+e~~z657Jl?-CPwiq75%s<^mtq9C^?$5P5s7Q_K z$ZOqC^eh7|2JjB#!7@*G2st{CYD1F0Qi(IHK1Et< zB_lkd_gXf>g8eKuT{FLXB3oqNY-HZZepX@NCrH)#r&G|@qecnndxBOhyqFPOSED+g zaw?aY_Z2@f4cXi_mQY%iXJZT3f+bNd{UJ`y0s6UCCi9tF)5fKdge}Q%YMUH*&IR>; z22oE8dQuDw^^R@t9kih63??9MrjEeoO^b8a2$Bzsz(60CjKH|bs-q(?!nNPPdS`f= z?4`&+D6PO4R#qW9zr#8B@$mhSKh4(t&_?Ju!=8uh#uK1%E$&D6xb-#*8auvS)mJ$^ z&DyWODW*>pK_r&R?PH{C*dU{`xH-EKqD;axGBX4J`n2BuhlD2qHGp+>yt9xo7n@)t z@7pv&9#(WCwHGr3T)Sc%&_8%;TIRRrU%HU~(uL$DtBsC8_?Iq7q);M~Re}pN6D19c z#oI9DGa_6~sr4J4FMQqj2K>{8Q@xPHdg>M%JhGupg_R|6xKD!XW;IbDhr;6Qy1IOb zI|8~)&FG+sLYgmEe~wZwyWG=m<+Ez%4n*zb8W``SWGd%wi@`MVtDsDzt!shghHTbU z+b-c>n-LS3%h3S@h^>Fss!Ik@t1cPKAregBx3A6qkhHD4jAA%~RD}`2!vB`-gy>X& zdo3eq19p~rDv)PgHo-fpGcWQYqN&|v6uU{ui+%pIC2TuX=xjf!@tI?Vqp;>LQIPfw zBz#Wi=4D*powmdNkL$rqwTfmItU8=d;ty2C!d=~sb39KB}FL=aqh?9 z1Mrj&$M|z-&c@e??D{3&1s)Z~5AXW4uy8*~%jVS7>6Jb0bk!8Bqqzg?!)7)MLn_vk zrh|so(ds9%+(2%p;NRpE70MUpC29lp2@T0!f&z}HCnQ(V4+aT5Dn}p4OIGYXk}cSa zFq_cYDv$02dH%BRz$OkAHM8xc=%*7qbt;dOh z)kNSmXRe`pnTt8;b>&i*8|{bfQS5YeGQh%o#NURJPtM`lXX7>8RUMU8ip~0GLil=Xn2-t#1SgGvr5J<|A7-MCn&fIiWM;W&$il~MaovAkaM`hsy zDMf`wUJC&iZLuC#xn3Ej<}TJqKLSjMX!j}{qH_{=Ucp9GG=+5Z9XX3K&cLzH7A-C4 z+X|Q6h|gxXICGGQmv}DYBi%a5Fs~s?%c2pKW9A&kSB-yF0gpyd&W}!xZ-Nn^$nr!IrKmm=XY}b zhM%qQed4U>fb^l5=?T9l@cDGXpz5?jcG&<2)F3yD0q0VT)l2xXEcI6x7nf3U`3Oml zbaf8;NLvXhwY_tvE3i#PKr0?xJK3gv5ZqglA{czPjnG9xn#3k6PF#5w>@5Yl54$7H zKvYFfpMFN&G%TGs6UFgDQ}Hu{3v~G=qI<3WOE|&#*BU1UolG3XKg@yVH-pws7K9e^ z%|p+N`i-~D-bu@%LFWHkLE0RjfG=LmrKh%HU#%Yd6xU`81Raz|Kn;QJ?w#}di#KGD z&LH+%uY|VUjqh_R30Q{ zMGy}Kg?Kyw1Banpl9AGF&WxKp$OBgEoIe(`Cq1zHms==Yflw2ny+SjGa8|_J z3?zw$!-KJ$RvzXhGO(9$(SQAGJb%5Lj1&_Ps6~;GlPkJ;uWV<1SCD1@py<1&SU%Gp zGLDLduRb)}ldi7lQ-l^q^0>#E4cuvOK({Aynsg4~}sT*bk^X-M>{zTA<@ zh$MNkLvj{c_JiHLZ`qkqU*HcZ!9!*Ki!az(6;1jA(n9{m@q8+;U${UqzRiz_{ZA&O zK-BY;gf5R0auq9Cw<8sMYIBjTz)fg~lq!-pRgvwGm!!S6GMcQ=ES&|obl9PhHxP`v zr7jk*sLJ{Zm1rpm8BKS!(9eS*c#HX*!kPDtJG*bU(e`TXcD7aUZ8R8_lH{0*n*Jw8 zY_s9sIa+^=H_LtG@TcED%-h|ZSwP<^8Ou*S(dgNF@CVLdLC92fgRi@S=NeaLG=IyD ze~L}uMBK&u^FIOSV5~HNZVx}S8)Wsq7WIennA#$NKxDZ`%OnI3rMn)3X5Qav#ZH;K zPGC;TMSHm0jt<2-&h^m7$6i(U>K7X*5<6-`I^KHPc2})Z2Vu0gbz~4ZQhVH?O78ET zf@~UZk2}rG48Q&EiO@7^a^K>;#tL{oV#~4y1>v5UBL9${gtpL~37#lQH9GRJnU`?B zb7+)#mj_!01D+nO!`a+ded)E!!xLKvy z@oObW6F&itn#)3Z9p|JYs2mW6>7vmWF#ibbLm%8#jV@GP@GLZFkP=K4t7| zC3&2*7x6(A7yVsN=vU#hpTee9yk5uf!Bchlly^ZQe4?ZtPhAZi-_-Bq$E!PNizjy+ zieMvtLNd=0VmOp=0_FXU<4?0?V|^oZm!TQ7kWyY5L~FkN5pdsyPrTkvrxJRg9)>o} ztd*bHhY1)kC1-Atp##L&9&A}KD?zRH)^;G#`0ZKQuHBIiylzZAx5E|c*P;XTb;RH? z;SX5zu=;|PjF^uHRA-RdzY3mEx?U2h@$39H%ZnN~GBtubGZQPtJVv!~n&7joYs;d- z`RTQdGajr&ID{8lWl%}Wr=mEqfqZzRG+FkCi{P59!&y7wOm}=)>ZPVLs#82%p18!Z z#AEl+>^v>AOL+TdS0VfJQl;ZzC$isUhjEM7*WZw!VI(LE#-_yu!AA?k`37l<3Dr;rkXh^Z=Nv>&xe+w@W^`EM8yQLxZ5k087uW`&NdiY5&+BRmTP z{o2a|TUzZYKi$xLSx(kbLsf%=DXO85@<$4eam$PerDURf-jo2@-;nIGtWx2zd5`MzQvHFi+}43HB&KCRn#1%|qb16Oi(30! z?%lH*JD}73`jb!^cv4rT+Ec;+#lPK&M$|02pO$v9s(W=X;BSsfd3_`kx8PG--GW(I z?A13q?c=Wj%r;^N3G$gId8H;M`7P;)L<-L$;Qoc^Vs)?f7fO~?Dp#dT3ydfo^WN~` zd}_CAiHq)@Zw+q8T7ZcJ6rFpsEx%~IU+3_2ApmFRx%20%8_-3Oge$tq+8JQ95=>fuAeWM88MQln^Qx zQE`+^*EXkuwa&H(s1qa5R0tpYeXmAS|B^#fsU_-c z3<3TDyr+O9e(J~!_dlEO>}a!m7Id*O@a0y~95s#KFw5tPK!8MV93&M;^osm$y&xNugb zIah|BKs6CJXn5LnwT3{HG=PVd(3bwlkylWRpaAxT0H9<}@BUP~(IS94?V)7u`1{^m zRh}~dbQ|k^84P!=O7Y|31}H~2QaG28+4v`I6KK2XkCZdecCtXAg$3x`{v7rD;(XPy ztBl_mktkqA7*{|miw~didx6`2rh0SrOnO1**Q+4e#I!iGok3+&h4Zgd%YATDh@f)K z^dc9f^VG`@Up>MVfuwKRpCdSBZZ;oyyO0|T3g&&{x>uW@*=!h$bNS!1a28l|I&mwW zrF{{?yDbKvq_%w}Z}ua%;=g4YT9@ij?$D!o*njwNVd?jV^mK}gOKyD3&~)%Y?^z@= z5`@m6bN|*A4_2o^1Bt&SD(yhfdKP+KJ7jl8 zj2f8jfexropOUTKUHw>dOzL)GaJ1}0h*jE|p5Ra8H!A7;NI#M}fEjuqJqmI-+ks~} zdtkQh3Tv%k$Wu>yh_Q?L2OPGLQ%wemkfD1z?0#HnxnR)`F9{QrMPUY}n$&sG7lnzR zP3B);OseVll2b7~4w{$aCmQE}b5t(y&Z*3ejIe5b;Cnn-Oj>v&L#k3seyJ=(;A8ZF6|Y#mF)xQD|b;O4k&Qk!er zz(Vut#}u9N;RN}f&p{DWh^Ar(?e#~h-eBe*cX#}@KRxYc)-{^9y&8Ppj79+d3Wvx& z+c*I6Tzm_(PUyM=k|D0e z(>#;1T|J%25l23g0dqOvqbR{+(D<-fd{bVq`7?9rJ36doH5-}C)ew7pYW36JzuOd8 zAbQvQeYJVk)Zs2pqhffqGGE7Wf{oh$_EM|5T;a4Z(<3|QOq6>3a3zv@g&+X_@jh&b zE^wA5lFs%?Qcn`)7*OZ%dR{+AwoHoY8spqmcV_(fk}=<~tF13uw%m=+nO7i+iw)VI zXHq!rib@OjH^MnCLV56`V|eopa*0;<&w_))iM9k`xVhHbMI+g+na&w>c>R-yS`>o#f?is7Og$ z+jOk(vqgPCs%#RqwxMY~!)O>$mP1}9Q^2&B@M{$=O10Op-YfnI34i8L8`u4ATju4Y}Me|%lFR*tVB!_Q6jeophj^s0|O_9H4 zK-spZ9gXY?5(y`Ov$!lJeVLh28+&f+(CqJA3dS|(Q0*Kat zzBY+uG)*dK#5;?}BQ1p_egcO=a{VG_1G|J~FLv`3em{^sBgi)^NBc4dR$_6A(JnOb zL66Xme)T21a6}45b(>3_nsj?=H-8RUvTmLTUBGu2yQjm3Ez6yRss7-8vFLa?{vRvPS|VQBEO-G_L@Gh&s~!N`fuuC1(`Z zzHzs=p*~J_=CYR>FNv?hLQc!wn`&yTuzBe^Od7|Kkf5H~TjVSONaLy|-cDA~UQtlb zygj5ZRIN%$Z*sH~7&>`z*d}>?edKA&(CUk!0{W5xqoIX|#K0fr2of1!HQT1KlngMK z4^-%jh(Fh5A;l-@@GM*{R%bHmz3tepG-SCFWcTeU&l_H&=Ui9Qt~XJ^{ne^>@CHnyQFIbMuomZh1nEj_&Za zH!_f3+jmG#d2#Z$wyC5-KEk!EQ>rA%xG7q!@+T{q0T-=0l*C^12Mnv|aeeQ)Bwkfs zy|pa6?={D4wf8YH)ZIv>^fxy7Iip6Gh1h<6t|O<=EgvtL@! zGL)b2F!o_!lG{F6=EkzbtwX!A@Y_HJPcKC&L74r* z9A?VKMvk_>V#b|id5A}&cdDy@!j}i=(Edo><|0d{m_9mcviRI6%{#nu(wMHw2K(!) znqxY{z2w;)&Vn6GTDCGFszJ}eaRSidql@CI?&;;ccJgQ8qGRab7}w0|5~1?KOWaAI zRzE5`!D^;6f++T#tg+iKAR)*auh}eL`E6=N;hkttKD-s`X85%&iiJMhW!s zmRv+pQLM3iA1Ph$YVu7A!yx+U$OHGtP7r1cX2(6 zFFRIxZETw3qUcf`Z`#Fismx;?U4U$*Hd$=D@7)7!M~+J+R}@KSt|?;;8Y3z%Ovh64=ZqNNI=2tF?C5a( zu&rd04{d$YSqB&@ZU zn57@8Mw#+pgWkhU{G>8w_ktz2@~G?i@UvuCQ=9%U?vuW;GO2HW5+e+xmkSlxFhraS zIXq};2*{=igPgxBNCSNn2x?4imejNX1?9i`WJr4`e(YfrI5eP2$9m1V5_k;RgS5%$ z%#S>4PODLQ>yT!69}c%fKhipe_U?Q;8*}=e|9cX$Js%F)rq}uF?X{3LVNw!yS5#=h zk2+1bU!q4eRH{s%84urpUkM_mD)sNPkZMYmj-b6@zYRyo?w)htE~W9BB_Lq+B+ANM zY>tvBb@iqSGg_GE(k>`}3w-`HA(c_}cCO)lyT$^prokns8@$Q4%mEga$N08Txmk03 zKVA5adl-^;NS5+rUb$pG<3m)EP}~%su^=yvnQp_M0U^$3th)gqk}_Z+;J6l&!%pSx ze6XXo0GV_*2b|D*21VSXJ6yFHmK|FZrYg*KdFvle)fFcCOhU#~n3(zW?JG8OpfhQ)9RT_W>v(B(KR)EL)1KhWpxC_lmH!A20g4Db`nN%6UX zBWEHdaq{}ytylHn-vPxnw?ojISasa?O+;}9)$I5PiD!iC+NrkH{Dm2uo;F6J-dJPc z_0ggfz`G84fs1Zj;e9RA;J)Dq;G*FqZTl21HIq*UbH$N;{MJ7lpTdV3uVLrJ)hpgY zRjJGkAM9TJt=n-T)Z_5SDOMxS_h)M=uIB?U+qYdcNHH7V;9W`6D;x!C>)=vUJM%>v z*Si2var8WZPMAKl?dCQ7nWywVEY98yA6EFb4VcPAgKwcFn#@aPxho_i@$zm%=L{K~ z%#ctt#Lja_pB=xLD4tr)iOtOkYbcSGOAX`T%U`$#jl?G7es77Kv1xGdON$`CWvV%=%`(pv*@tvmk;(&PQg3 zvVtL7@UK}Cqe!1jRJ!`kNbAww={dJCa+D0O?;VsOGwE}jA7Yy;15SNOD1johv0c9e z$K8UzaBQ0sxFud}{l2YEr(1Tc^mlQu%FFY6KV#d>htS)vHaU$|w(2H(i;%X?`cxtR zer6R7!|i0p1~l=qmX85UKO$AL0oJ1ys(!rKLb5en%$gZqz9(+4$f&GISj2lrAhI?^@(6lafAMpdN^+ZCWGlrYD zQ$t&IK?`dA_aoXXI^CVEZjWPcKcR=55*A!II3@N_Ct^WL#xVJhO;wG< z{3tsAKN_I-IA?6cI@`dq7nbkWM-FbKV>DXxCgekSi0R_4AT^7LVT!Oy)qB6Uoa8Qs zby0t5jS-9_&b--LQ}Hf&3o0N%rVq2GxooiDhF?jO!2qX?Sc#6eDM=0pcG^LP*(4|* zn+n$Ccz=iw3 zp4--MU=ZScZ$I)Ji&voSG_2Eg&BNTI=z#@GksEyZ%8nMy~s5x4$3HAWLnr_@Ha_K zwlG*9U2%lQ?@ z12@qIHQCWl8r0S3Z`wO6zTKOM*&Q<4{t>ed`C}wCeoBzH9e&6j(Zy^$c=w$A5Rc3G z$YYsxmV;WbAB*SlD$DsI3YsXZwOoIA9% zI@{q=HFBc73hH}kTJdWl=1UFTNXuo!s7c;rzF*%n86GbsI&OYAUTkE1>GQ+G0x+aa z4J$|R&-6^nb)$HvHg~)Xfvvc>Z!-zpwEtNGa#q8qeFe4HXC$=u@Qx2*PB~_9t8&Xv zW>4z#iS8HvRATY{5@G4*HlH>JJsf?a4em0KB|-|O#i$gkQz!JTCMS=1bUvHpQEf3z9{(p80&x7QymOrl-OT+ zy{NV}cN=~2U~6m%XmH>5Utst=0eHU;N6Q}PD4l2&et9Sw^yc;bCFZRok!jaW9V)J54B zAMJn&ge)+%;vw)0)5?(9`j08-(nkvvbb*iUwNRlwyBNVrTq%QrY8GHrMDr))#DwRC zJS>-Ov}_&0FA9}91Xd6Er~Oy-LYVc4DEg6e51+J$WE*PVESa%V(e?PNKHX%USZ8RX z6%8nS7yvX$6;>O{hHvtM_Fd_VxNR=H-31VWXQ`euHXBctfc6{uR8l4G6vmbXD zf7NerQjEB>OdZka(?(xr5cZ6dtN~wCIwWzn#H_-DPY` zE|&c7by$M$fApMnyEj-34kS(x1`lyp5K;%fT1GTSK06q6!=VCCzC0d~Y!4^pVYeax zAO%j$jL-VLU6F0?jm=2HGLWyiXRc`SYI;LY?0eB9?scKH(va=5P1kF1<9?5Kth;4{ zIZfVu`M?k>h`DYqyll09;QAbgt--suiu0U;ntG{$m^)SKd9ihGrtw9re2A3Y zH52&*1;EIlv0zyJX=cx@fY$HDz;@L}mLTC&YF#4x0=0d!Q!KWXrHt1Xxc#`R#Ql>i4J~Xp%GapLU=bT9l zw-ec}&ftNwO{IuvIOw>dWa--B!xum0!8UWTz-D}q4w87Go+we$rv5Rxtbk59yi=t& zzmDiMi?u<@T<~Gy@rc!y`}j-wh#yWfm%M9Kq-?GXb((23>#sHUOTHyYm*}VjwN4`@ zq1H5E9}0_QHH~&qI;l{ifS89vHQN7uiHsP#6%B*&P?IvD9F(AOZQlaDMtlr>KPo~t z65|$DH6qa|{B#Y@D6gTEpXTprx49}e#;ch|%5k?*BaR`}zH_V%bteW%tI>HE?jX7j|5e=o*P|KcT5Du}U$&FHpd+|nQLuQr|(PG1Lxi{4;N z-`bG_aYjr?dsASlFai_SsW8Ap*6B(=yN2>`pf@R}jb7jThwHMXNxNo+?nNL}kf>=G zHBW}P3_N`P*E-_Qc1$dzvvI`3>oVm>Tdp#TJK*_dW9{+F1N+M_<><;He*q^{FyJzW z8^RKQy6{{MBjS7oI}#)JbggmgJ)fb7;cH$4OnM=kulL&LP`Q zP8Fx-z4gpWI!CmIXP6mdA8%d&)* z_ExAbrG)U&L$K$S)zFk27sQ>XR7K3SDe{dT;m08=k{=&+{}K|k75!4yb#8GtPbLOr zX)>+*G|&VekW!Lj+0LEBPg*rr1X)zT@-OB=y<-vNRq)zU2&Uo46+S*8E}m9ekP_SBJ$M>q4Xanl?aVg9~RROyI&(BdUAJ_iCoHmY%ypQ5o-K>f^}z(4+#I(Wn1Q#F?R+pKS;br zt<1*c2Pfm`#BEk%Zn~+{7xDZxm(z~OU~g|NJN@hI1pN|x6Y|er*KOj8*5UTyaVs0f zJJPO>x|(=6?qNU=ljs%KxQNMttri3Y#3vPVb;!t9qjJ;PHP?q7*J6p9g&my+cG`^0 zs)1JbH|ml5%v`UlMw{dC0i?<>H_6vKVz!->+myXU(1zFF>AF9(p<+P`M)ZC*Kc^eVU7Tb-7`F1<8uoxS@TrtBZ3H;F_W?6)uA_m_$;Ekd+Q zNa%P%EZj`cd0(PQh&gqBpsEg!9B3*U6U=p)*HhDS{1w-E+`+V^UQ9!PAX;c?I&mEm zSnDc-RT6p^=-?pzdU*Si{9xESrLEU9|C;$SPZ?KjsFqQ~a8b>pt{|r_Fh0C4rioGG z!;+0l{NTN}9PFH#1WeH7w_~L1EV14X+zIpmdAQA6E%?(z>J%`Icb{I~n1BszQ$QA$ zW_0`q)AMOzAI7;ChlMWD{ld9E=*S@ul^9bsxvb0eG3JEIOj6-r&f|bB&%cj%7@VP; z7`eF50;ul*wrqI$m~y4^dZbp3de77VTw$ZxpGSWi2Lu(mMtNk`tM?>Zg5ReOtI-p4V(G!8ckc(P(wS(3Nr6}2KB|aGWfb?-5x<%=|51UUKjmHTn#jbt9=^5{ zsoPtN`?A(-Dqa@M_BYcx$Y%(uvm>hZclre24KX=sf$rkQ^~sAVXrSa(hYO5;jQ?r) za2w+I_ALkB3m18sYD%rTov*}<*riqW$N&v_)5TfHRS*Zk+&(^$50h7VA8`_uobVnC~lz5{y?Z$v7w= z8w!f6`_glg?X3l)(G_;a?Ll_N)bEt{`-TfK{!&DT5+R&3;ud@RGDsY(hCt($2Ltu! zVm?x*f}us4`VZi0cY)>HQ+tchh@TPnsM|)INj+$kPWaaGBdlCxY>YyrZG!+zC&Cjt zD~h1;%&_(!Q{R4(uCf$Y)P21AbnNE5;=Ev0gZ1ybRFgMf)_|##G`?f#_vgD3LjOCK~2%a0?lFZbyfK~zJY@eKn;wA#L(xbk1D{Z2^7O_ ze?qt*k*=AZ`mZG|>`w*24jd_?ME8b&;hv!tkQZnRPB&d}va{a3__+|kEF zhw!Ra@}KRcHZ@#EWK5vN><~svCFe)!UvX(wqzy00d%AK7d0UguHk^&rX=rrlsso{L z)ANk?wp%-7XXjC6jCu+VVn3Rut0q2gmeCd6Fv7VVAI@dRt2SOq`!vpN@h{=Q`O9lw zZeC0UQZ$XM*>qK(R!jAMio}!t74VV7H2f+Z&vY;$!4#C&5I7R~;^r<_Ad@^J{OS8j zUgU`D!so{?(dga&jDy0e#=Puvd_bJk<>Ew{d~xPeq8+}Cp0c@xH%{FIb;r99B)G-J)z0u9JnT%rikI;K9xJ1 z72@VDx)IVnK1d|_JF>|4K9SObGfK|{xQaS<;>;^MN3Ad@(+Yj%JGP}*TfACBa7D_D zbwAwQYoeT1%eY84+WVQ`S2D_7F6+R-md1x&t={vxllYqde2yx}6?VDme{h4`SbhgT z(zq_>K7~Ciy^36{9>U&8>x_J~wCjOE*Q_=5R{Dya=t72T{YGA}AuE()Yap>~j{M*) zQp=3d)(-gKM*uj7;QJBX_U1UE&Fnk)oEruVrDBw(frc}0hZxmsU`utB(h;g^q4v@) z8?Sq`w*H<@(P<-X0ykhDJd4QDT>ZBTV)a=Q!^>V>PhEVR{&(M{m&!}`brz??Z}0N(Cq?^WkPpKDA2w*VXxlwHmgAn6Q801oww#_#&EH#yaKy{IcRJ5+b!{){eqCp(=lJVS3$Cw0 z1z7UanoWK`#?zdMS_Np|n*>`1`IcEAddLa*M`OwSA&zm%%T=1k>hed?k8#@xHR#)ybd72Pel zf_tftzqAQ}Ad}^Q1|RzToVnRE4~y#V^PU-E?J36IDK7drCa|iy^Zk7vAb89g$_^>D zIsN5rICrMAeaXk+E#0woN$)`vrW|=p*EbIK{WtC$qLV-4>UbE(D<=1^;ApxpPJiB^ zd+KtW+@Q$z`_-)GNAqumjSrbx&P-Y5P8r9U_L=Xs*NI5j;dy^d_^lXE*@NTir_-rC zNiO9s{MuKX?uFx)8B~B9X z9&pyZ_Uyr>$ZYYQf2yhLRyzmE9BXBHdm`m>|bJ5&Pyt7Fjp{^~*m3jy|&m z31N~wQw-ZBzQQz{WGkogUFfOj73c|m*p_r{L9-4TNyY=Iio2{vV^=MnO{peSSndz(pY+DEHabQWR*X)QBmK(nK^-uxt(8;qM*S#QZfR zSJ)y7d<$O8%TPcW-+VNKt&f9PG*sxR$Ga7F_!PsCbvwTufmaqwOX8Y+L*IaDkyilYZA{> zr1OH?z~??y*ZU{q1j-a|Lx^LTT)jQ~Dr||h)1lC-M9YRZ$+kF}{_hF?`g_zHMF8R_ zk4XYpAu>pBQJW4nk7~eRWQkbQ_n)39&3FM*U*eVD7icx;M?b0pfA#sGPd{b%dd9Wu z|BVx(tA$tP3aGd56t~vaZz%tA%*oYlL>7JEs5jp@rs;6v@`?UUxl+W5LH$(blLFiC zw=sXbKIZi&_Q?9L^>SJM`yN8W0L`xoB({@7Y*_aw!d2IByUR=z}w<@(Dj#94Ni z8RpI`mrz=*2{&GONQ~O_kyls+VnGdh9Ohr7hAH%23lxJNH5H4vqfaFCR>Y;y+$|uu zoVE+`&?f#Cn$Pt)^WqK%;J3yAj1^XqbcST6p?)oydbK?d2^a>QW+rHb{?h8JnBe;} z^`Aro{U zZqSSekkUBr^(_VZLIN`v%{1<)bYY28Og-|Dq5dF8?<9WLIHD!?Tb+fH@?{f=M$uwE z$7JPe;rS1&a~0@1i+nn@-qp1ahXUC5(*GAYiCbEIDSERqi@$8JQg9P`*rPaKg_Ul~_i2yc{B@RkMc zzzAu6?(4CHQ8hgYYLa_bxk2D9ZlXi1y&V-BrQh7fqL9|?n!VHa$=~<=>yb{OOVt~I zJm_mXp^c|o^hCc-`h~&W1G-}W5O|-E@ZYn$PE=4C&|23XHkcR&3YF4mif+A-6SaL3 zAs^WaDG>=fBJKXLvAy^?t44Yl|HUpQ#C350s@JH-_Mz8U3A!JQt$Fecbo692 z+qh#eV*b?cVI*IL{1)wqrxR+f>*;3mfqe$ArP*nRl}S-E+SA z3Q2(n$$mH8Zm%{OxAMpHO&1lXd>oU7xDB_{w4IDA>Wu&vP3C6FH{w>Eke^Vk+4hD9 z%I5zHLczvg*?Yy6lD`L8Ae|_^7@@DRG$ZfWgkw3We$GU1Mt~d1SHGTN_A`h#p8SgB z<4T1JcNbt&=%5^RDPCp0b@^BQiVR3o<^HeJMO-XmY?^Jlwt=~$X* z0RUld($WhP#lAO@&j1|ghx3;Lms=*7D8I&JwVJnuz4Y6sHT)r?*2R*X9*V)xh+#w< z987hNt>0Hx(a(PHP53S}qT%NPBIa5%w;`qN#~JL`$i*wC$2Ix|sO&!Bu`w*1Vq6WX zVajayD_Y2~Qi#_Dx>hKv*Wc0cAWAHBWT4oWeLiw=A^*z}6I~H|;y#-++sy)XATMu4=s2w+0jk zY+ujI_RZ!+;$6JyUHRnVhJEwzEzU0Fx~Nr;hWDo5XdPK$WyUzCX_fiWo8gsO4dg~) zHq)G~4PPuZwN``=Z4QSJFNwUW-E_{kGh5Pm>N=U#U|G3@-h{ndw^Y? zZ4kOFyjC#g#PGStDp+!glJ0~CczYjF8-#_Bw|92j^q9$MQ2jgdSaB2zh6e@1CNo|( zN(^pTy2OnL|6VdmHU!n3^f6C;#x`j!qX3mrN<~t!=0ARxtFULPsBoGL->GDRC(5XF zF(fqg7+tl~M@9x?4y2XN2&uRfU+`t>JcaZ=!kzjjsKmET6C zRG4Lsz-|R9U7?_na zE?}v>OTP6cBuC+p%CbAOWpcDV<6#q*+#lc09wk%>Ps6`W8s2Y8pi$?2CW(3&u#db)ADTd8&W4u)<@Z@!korG8dHAc!=S(+-A`F0ETh9X2*|z#yz3U9p&E3v!V1|^N6OeS<7t6}Q-$s8QBlz{? z9j8kT6T5~goD`=_^5nNiS3`N~%|B0$&FdX)kUYh5#?~QqJfTt0WD(KTM6$oF6aAN$ zc@XTQq!c^0hwGY0_Yte*o-ZcLANBhM2gf%R31`>mW5`Mi@WU6V`ET&ZWoe!l;42Vf z(LH)}3Cd$2|0ZOMm(gNFbr0S`XyLOkoWmq7 zxK+Q8@}QqkcYC2K*Z(1Qm7RXOLaW9>{|#wfY&UwY+=<5nrh=f0m z%#w_;yB788kmy*dEDF9TD2Lp$G9{B-w7C1|L&uNlq&6Rn(4>jpJ;T}yM}Ce->iXv) z#7Xwefpsdg?j#Rd`q@5ln+&9tM7v?eH$aPSGo~}YFFkKi+p=Oe^kwT5tVF>`m+aP; z3fEI@tmsG}c3jp*i?Td7MI+OE0i}$s1Ss`I_x;oHcc|sGhoV0W^7)L7q-AlB) zJr1HV!U_7Q5Fua`$^oei_u!4^j%;$143J!4sTP0PZuw2d^cH@HFWJ4z)T<`Pr}?Gz zKU^gsi26(;SH8D(3-dlST>pc^kB=u!+OxWVTjw;F#PTgT5D(h^QFuT<5jJH4MUcbZ zDFhe~FfQ0cPcvKI0T5&`G=HmAz;Dl4>{D))fbB5#u>Hzw~6;)yGqx8Xv# z6SF_Gh5mS)*k2bh*cT`bR-X4aiA8VG75S|%azKn%kIlf(@=y8A+DBFIjxX|MwCy|X ziQ6WZSVZGk7A8_^zFe(FnO6@MoOxqC&zgAh^fe#I=ACYmR1{})KI}y=4c8hhAlURW zedG0oVM;5b^_b`8AEJ{Vr(yn$!zN<6HFi@&lU7AiX2@7*^ozuUr!oBS)BTJ|U)21E zZbeku8|+~s?Tjx=j7C@knaRrnB(J}8GZbU3IgFuqI?XAsv)WkEmX3h*=wf7YHBy*a zyR`aiH`%&m+YZDfW~y29z;R(Y*!ou1gv)`(D34PMHMtd9)bSKurrAW{=^P1e;n?Hp zPi`T+O- z8%{iM>8%c}rq;)-9HQkw&HSZWjhxS;=};1(KT^x#9)087sCK)lOSfe6`9}r~Zwopd z2UvMt)kudG@2hWCGtui9XB!#q8Yutit*0K#Ag;7_QlRvvM<72r5Sl^F<>q%(u1&O0z^^P8LM@s6rNyITa-#1Y zYB#oYwu3?R;~{n~pECWCXCK>MoY)IsQ2=8CF`dWs{U9VrbNMdNAl0A$VR1DJ%A-oX zqbH1nMWUUv!2y>5!25_yjVq;R+KqGZ-+zW@Ks|SP;nI~|jWJcGGs#?DlxPi`m0pxp zCNX|cJ8$e3fp)Q2-l^-pj?U6zn)cp;CLx!M#?Xay9Cmj5$OF^IXp4$w0J7Oegc&H@ zD@F3|d(r`H$DujjL@Dya`xPlE69`KH$^G@I`pwnU;}|pJtWrfluUU3}3u%I;8n zyc|cwRB8i2&9JutuP?Iwt*wMk^QmMcHk>C}0#|ezh*UY4gq~8Tv`>sl?6m*UXK4_Q zdC-a#x_Yva!43Z~FhxKCRhy6r%t{RXiz1tmGKp?Zn& zxl%oSoRo*0k8}=)N9lD}8#g)Tg$@ye<{~rdimLz%6%EtZts}uxEl$b6@gekg2lk|<4Vq%3kA}% zO|Lx`@F^CS%fSBj`EfvcwD1yavGwG2IEbtdPNB?uF}0 z(*H{g(n}&v6+!dMhamMuz}gMY`}FT5Ki&&1Xp%7wPe@0}G!@#hLRQKLQ!Ytlp}|U` z{R!ZL!|g>JE|pfz??)GZ!l>QQzJuS%Oc*+qii00kWbwgVNBJM=9tG_Utc z)N8WG|NSHpin~LSaL1it^_IXM((7v`iM1O$!;M_kpC*CEMFTu-9k%$(#zN!icfIw@_F<+a|=Jej zLU0lEaKx)298j=@(;H!wszP^4xj(}RoX`IpTzH6`i=04f*m}ocR{kQl2R5*Y{+Ekd zfLHa(=Sl(x2szOkp7k#M4%~`Q^DUc1J4Ye<1gfg5+oo?on>^7|!)Bl$f9yPbA4S~x z(#plbDQqmByt9Xe#i_|+kN1gu|8X-nXgy{I&sI(F0L=0yD;xhVmx~fhVjfQtac9*2fUVCo|~}@>PVV7EbaydMWHjb+)Fd>yr!cCf60LD(J|zARY^yi zb&1$^{|guDnqH2m28W|||7<*XPwQ)XLdCGIO3L0QVz?Z1?Q3I01vFdbS-S1c+p+C6 zXyED6*3xs}imZ8Va7`1vyV!@2M6K-ux>P5#V=uF2UvaN(3#n2-gr&C+%4J zk9?KysjASR#YO?_7Z2Cq`y32e%$n6+{p%b63TL&nx6;KyYu+X%9Da`%)&|p<{_Dko zzx@{z&R5`3DV`??Qy3XxIbcrvJ|O0@s+scq#avsjLfFiCi10kkH)~mSjbwez zuvGisHb%vMq%T4pIx( z75*T`@yD%Vk>cE=0LY((FRJ2!#{#2}FxZN<^uqXs0zKkQm)?fZF-)g!r=_4#M0|R;dDrqvZQWL2BJX=Bq3b!o zv?)?;TE6;+wLd0kM%T-9?JMZLS#YMvB^rn`N6cjI#Ql6QZlv4q3`*s-^ytU7k0ec3 zCF}3#4P~kI&!6vq0GaqZNl`Kdmwx^oR~RGEH=~fHX`NSGZ*@!+=v94nSrIc4K<_4p z40!vrWNi~;jByWe30=#rI6@HJeSD-HwG!s3wzMJvnP`d?ZjpwbUL+SaVn?ny^UR?J z%EgHsTcyG#o}ZKIVoPlG?~GAWQRRN=jLiyREfsH#nTOW(7I&F;nceUBInp{Kx>g9h z_xl=03ja(()a|SVGZ(wkUx%+%)KfJr0AYrY;re|DQ%)hU$(pdlt-ct&7>*y?{b zr#7F@a5bh^YH91J26N}14t7{kQpfNeSY#)M5I68}Zg(9AjeZ`^3~m*-9vDpCfm-P$ zYRIU;4dA9jB7d=@&^dP@phS zYk%bYCvs|I{Nb+*)4Y7_(z+y3Y%(kCczRJ?k2unL@y>m2jztd8K$ptyiidz5Rh(w} zojrNa_{IGr*ABV$WZvKBs>JX226LQTOD7j^~tK7Cf(;uQ>nXSG8K z91C`%X#(FNkS`BBuJ8Zmu&>5bX2I3SbVc6QeSGyo2roFBJ0GdQR6BNkL|vXEtdjMN z+;U4O4ZXzKLx^ocGoO-8aB#lbUIS*P7xyz}7K8oEPrmiaRdlmtUJu z03XmJYKHN#eG1Rw`LBV9mA;SW_gzGRbz{y5;d`Raxiwk0r11+8H+|MG+NWu$Zvfn5 zbcg5$sNHm8+PBiuQxYz8pV?)Wrr+RF57i&^&L&La;jpge04%xd%p+ zG2a*HyJ@4wZ3QEeCBw(YFtF_GueOWWk{DI6Mb{eL!@JT%T$z?$LTMcp#1{QhA{b7x zZp08WV^s$~|JjA&TPU@vl`RKaE;zz=xUz-kvSal7Y`z)wS+#Y7qKBok>flq^LYMyu z6HAbH+kl&}`KSBh&~d-DhWJh=$Jdv^D6VRhs??m`RwzERl3Lmg;8rbHsY z3k3}UUCp>rbCn`wb|7WGV{VQT0OG(i*@aK8e^aN34#MqbzOcrWh4YJ?cAC@sYdKT( z(rY7#9_Q@6ySE1b7eLv@tyDVz_Z_=siGnfh{?`)3nfWR5dzROXRoU@QW0}jeADsCr zc+73pWZnUE^O5L~M__*hdQPo^u=AYpwEAY&S2z@0BK~Z_GmDISK};JRlrHGh`^oE3 zH{<&&ckuW7q+t>~K=cHyUB=2=K2=!ZqTAHCWOKH4+_PdvuZj0lM*j<6T6_mS)5p7f zd!;HfvBXB(Zhit%^GwkQzLn5>Wf+l|`TE-#x z3}T7?S$BA%FJdbVy)CE%LZzb}(;>7aAUMfChv+(xW8hhvV`jT`PS-9PW8}BAZV8hd zX&+K8 z)sI_cT@I~KwPXXzo^CpRio zKzoEY5^cEiu9mnnYw%ge4Pw!gR>n~xAQUc$dtg-yLtk9Dwtehq{Fsj%w>q!!YOu6G zelfG^+P?CX?6&%5wA^LMux|vmB7xof+;^Mu0x|`Jws{$4F^-g5)tOn9!)gi$qbvSf z_&)~ltDW*CQF)jd5ORc}x4;~#+n#i8Q-mCzBO{+wCGTEVS#OLOmcHqGTtj)F{zwf+ zs+XLmT4kyP3y|va0}SFhJ!*fqq-2j7?>6(`neFR@DJ=k_OELn#woIYy&>0Pojm8JT z=cQAN=S%e2!?7jI_fCIfhx5I){YMFak;1|CMjyRlU&%h?4%ph>X>nU;X>~Zz*sK3f z_=qIGYjuep(H_?Ja;~Di({hX1$T_yeYvLHiw^!G4vhL$WRI=#bmV#Euo)+{uL|4!v zMyzF}%2g8yy(&(>lyHgH!X0TH+t1p>!8ev+6M<(`7mcdG$kFYYNXxh6KrB>A!@*lKKMW89MfeB?TAXcei2^+1pwOfjk?4r#<4_(PTeRp2cwsPo<*;S0BLM(c&yJe4Q#iU_KK1w8(m3@vDj5 z%BZWHu#w4BxiJaExoWsBjNhefAd+}3TBtlurL44^K7ZLg4*Z?k`%yNf-I%0Y)5iS z7T1>7dk)LNVlgW9*7MQbnGpjzD$}8Xx-2lLVTjM|ryy1DAYw-^*FvrsIU2)_(xFKo z3VT0vL3Eih9CyB9__Nd^1A2cvZt$JJ0A8ioW+@wsHk30G-S*ljAZn@RtspR9axA*k z1sQFeNlF=QlpVV}8})t%Z&ZEd%|?IA>H4=!Q$Gf|bF;X%Bg)G>`59PwdP( zMaxPCvd45#OkSokWKWEP#be!FWY2sj(PxyMoG4_vHw87+lkJ-BOz$>q>U)|h4cG~A z&+uj!3^fIoVZ*;&E~`JXl*9``gDj!H&DDP%5G60us|TonXL%l$m-RG$yQ-Q#R0xfq z?>#dKkof7I02<4^so2tZE0-?H8!P_Sb2oP||59PtfGN2=j8`jJ4N`W(NnjH|QdCco zJmS?{f&-9#l=9g8`$OuKssAN+ZK@3>Da2g{WM(uc8|%7FgJqg9A^P=!(RCt?N!|KjagIl% zHyr4Liep8cAveA(H?KaWr>-51P}NyPCa5lMbx3~-vfQ*NBW9Mhqjc~3Jx-6V!EU%V$Aj~B?~{AxIw$Lid@6H2{I1JO!i=up z{ip8U{uGe*t^5!DIwW_+Xsw zcEf#lO}4cRKCV_?-biJ*Y$E@}5sN2v!hIz}@) z%$nH#F5)_EgC~0TEdEeZYUUB~)xU!iSh~U4ag)u~>mhjckW$1{Fi#PFF3Ym8=p#Ss zhAg$M(pmF?E-wYBMEQ9gvNxsJtk<#si_Y}cvRZyJ6ODE_puhw6*4l1l|7!75<9E?q z{m|eRcyLzCR2P6DR7anws!>MytbqX77Xx6Qr9*Z{P@Lft3LTzKBl?Wj$x1LypzrU} z41z21lY?v$ZSPRYed&{roMu}|RX!e^t`jmz4WZO_l_yBUl$@0(7<`|NgV({AEzICtdfXfz4n0iPoD=a1)h9cE@-es+>Z_MfF;^%k0*B^hTGqpMFmiAt0xS&!;GJYuefKz{zP*ARlUP9ss~eV z^;J999LrbV#Szsdc6X^;(%(dK65o>3xvz#o=%hcjrs2Rbs-0gF0%ZJJxyLm^Xev68|Ma%72}N^nm*$EkXKn%l@oxv4PR2Ee6zoQG6pRgN z!_0t*ld;t2}{2S!K~|NwOH0o9y*K9ZXV!?4p&E3vSotB zC$r>`Jw`XgPJ>#+hl=(S4RR4x6Im17?;qQyPtgAjI#j_k_dKk}+PBNkXvk2NPUgnk zAD`%P8=4@@9IHtPG%|O4C1>50Mv(Lim%p+vrIce zG=`Q48~^O=whXZ$LRN*}eZy2~!_<w_=nAv_@V%0&qX~OO-9M4t!LS-cvXQo zaG}5@Cl@Lvi0Pk>7`<(El@nr%=E$f1w<*z+`zh)#1W@L~+Qx1{^6jKoM_nY}aycAx zgKt6L4@}4>7>A_4E|a`B31o3TYm%W;z!QZ&jAIBt%x$z35!HW^#hogvHS&`4utwQ` zE&MrqOx%>)9wBIdbwd$%wt8#jw>A|(f)XUn_jnl@&EMsopTl07Dsw~Ic63UEbdN|* z(^gQe8@s<=jT2(DiJ%fH0eTz-sSleGCm^6#-3T-MUQI4&EEupMz#57zOCWf4?-L4v~ z$nTE+XZOX+`DQNn+InkIcr>Ck)tRU|qlWI1Ia0L8jQWoD*6K?IRoa;voVRS#k)MTy zHsCOolY6t5qYF}+2OCaTEIV@0kkohS^WPY><7Okb{$QLwCY3xCzF?fY5+h3cWCkpO zI9s60H9@3>=coS(D=I%W`u`hNH?rsL0TX4qoUrp7K9g%!#;M9Ec4gzDw%e>UVxPj@ zXnFlFXE-3b`^o|EoLX*R2{QxgxNxlmgOfz9%+w zB&(vlo}GJ~$lov+s7{tj01PZGICKo@15>~orlaw<0@DdEtro8?VToQH3Iiu2UhOs9 zI<$r|)wU&V2`y z2sG6)sQZLJE0p*EhDg#S#+J|F#y*mrqJTap#JpBuS-O0J4QKjOwdi7`XVF{=f{xZ@ zQc;n;!hTvsU&U12{c%Gl>rZnwYt>{#9kvFeNfgC9gsLD8psICtz}kR+`Y(UxhP&_7 zD$J=sPKhtNqn#$h>Tp~XQKTz~gSkx(DNqYYWxig$UGn?EIT^>Q^sX?mGn1v{7O($t z9|%Fkja8MPn<7%)SEKPX?C0(wx61*iUztA3vy%O~e9QXxWiJ8d1$M$UQ>9S){6EV( za!jK#hYC?nW=g>f)lm!FtX^M z`=0c2EJ(R+)V&N5 zE41BS#`1=Rzs5`_g(%w?4O=b49s@3PJV)(oTU#@q5;NLgvFI8S#kc*Y!fOl;TIgEC z+KCcs&nYh#%-8SwN|eu6(JHF`NB6QiNf*}mxF`~f!ogdAfld+|r+d~;EOCq&+{;)4 zQ<;nAS!57w4gL~JH3mND}ijHwG}@Hh^jsrO!p@>9?gJll*X z?TBhE#{JJhw|E?7|Z&;>jCo^F1f$3%K0h=Ewfa$%_2!UkZZy`GGhv99vy zo8*C<3Q%~oW2@aH#;{M98%jh2x};5IQ)9TsO~V#bPRD~NI#gZAAnSpqJ;aDMNaprB zAkl|zx=L#|zj-n0z9wl&E_Ar%Ahu|^h@t4PFjaL!LD>m&n;KHU*}_~0%^aj?F?x;h zd4c?m;DavDmrIaPLH_&J0t&O9>K1r0T?Kl5*JhcR<$X9#hzKgu@x7a}1IPQU|KIMl+;=Yq+Oa$WB~h9s9WiOD{%50HyMECb!EV1o zinR}>$W0wvs2>QOjT*D0s=w%Z7nUAEU*)~ln>Yg^omRGQ)3(_fX?gdrjY;2poBX9a zV$x)e;kO*fs1TTD;=?gb6HyvMfGRk}6#Gz)J{}%>-#IVKOTWceZ`ZZ4zPpP#iW}_i zC+hDK!z!@D-N)zpqZ4)gwm9VrvVStG?|XI7*~kZZMI47(6I zCmphAUdQMmoncq8Aec}j`e724YsDwC)6yMRLOK3(!D+8(JakbiKdijx!w~4ksccZ+ zeYFKyrg-NQ&*~#8N=$!I2TWv^C-~8~Lxv;G1My*%4kF{V#;l6^IRn|1KJ_B>%-tHb zRc#^>A?wrTh6Q8o$Lp?#W~47$GZnIWsz+tbi?u6mlQ-yzn|tA^vAL);;; z{!2)j1v4*6G$$!bV!g^M4tb#zPf=>v`T7RtGDd(p$kP{|hmM*;WF1JXukWf1*?wjglm3Cf_7RmKc)1=BdAV4Yh7Ia6EW$AbevhA1vErtf3of*+ zPZnJ?o2Ts;!KWp9;aabL*GuQIcq|(?H8@B~=$D1-V?zy1$it}@$CRl^1L1XFJveIb zf2;7>SgFHdAvse0`Y3s9Qy5M$lA>nBkr?az}QazgLS6{>& zS(tOrDYxJcwZMY!LbV+TZ8h=n04BMC30x%jEW<%`|5hbE00!Ej0?_}5U@xxTt3Qrw zj`Q4!?#Jgn1e5U_gGwczM9P{*-Z80uz3=6O6+Ks7YSut8l#f{A*;8m&ewnF*1{PH& zue|@!jJu{LXh!S?y66q`{YY?k?=+Q&o>KImhN;aduMu%ieiaO58jZ3WPCabs7MN-P zyVgfRLl*knY%`|JJiJbyt&-ID?4i)_EfGl=wN4d!pc48s{r7Kfppz#lpf_E*AgUM9 zfNOoQTx&Ya_V|Vvy?Y#*82y(mbL$b1xG`0{iwi3iv&oatzCRzU2w<@W1@RxV`Ac*?LPV&}qcc8S z)NJDj_5UIZgtHP!tR{=rqmv&+N379Huk>-;=f*>61o-ICf@Rwljo@Q;(nWt3uxSx= zVwN`12bAFAqO5X`_QurlWXxRUefwGaHTNev(x2AXeY|WNPr__-nH0Jy@zFCF>_T4N z3{b#=%B5Ec|0&zs(3Pe(-&#BpZ&%E|d;I`4dKqVr_o6Yvk zZ}BLl+P%&bl3V=|ra65?Z@qOFi4F?H#b+?{)P}2s?;T-eK^xrk6I9kuZmF+mc#iXc zSb8}QNOMRW9c}+T3jk12T*0cEnu+YsKkfH3)+NewH zaI3(PvRF}Jh(97uxhAyA zBgX&YqIl4ptZH!LA)Udz&XM<|Z33~eH%bQ%WM6Gyi}=M*T>J!b4r$yJQW~UQWZ)cpjtL!{=4Y~QaBWb3 zU|U#dnWi}wD@_??#hiKLLClCbv77v0EIBr?XT>K?rufKWM6O8Zvi^CN)c4z0>T&&_ z_dfD#W!4C5DIaYN(;(9%a_=O$?D){#REToW6j&)inqs$Vn}!cIx!}|z6+adcs2h!p zjt=9w&*!c*C0aiN)C5iSxfc4KhBNFq&vwF=?UN$Ld5-d|1v4TC~fN zuEwK!iyn^{0|{gt;I7Ldrimp8@eZ)^9;2|-{FggrfqZw10>0`ULW za32)GaBAx652|xiK7~_ktjP_>ILWk}sC}K>E3TgO(C>Kyto~VAM1CHV()iyMqcN1H z9?7zmfq=_Qi?|QxB_&N&gjrs8XVnXZv6I zz-y7(gE4bY@;iwQ@>I~^JWB181F{AubzZ!h_EZWAz&V;oSr5gO@a=6dx992janP4g z0*fak5%$(rZy}{6`JZ^Oy{h+Qv?NRL5rlY?M#G|NL-qll7(IkKZxcQJE_A~8J?A9L6C%nD8QZ@W@s}3U5Upx36$M;mgA_(kS5W zJz$*is}kuCk0PsYqPLukFg6Z6z}D^KT)`-QA=*b=Xag5wczVUAmU_73M9R z4(Bp%&CVKkPzp7yi0;LNEUIEat(PY7|Isg(v-gcQ5?Gw~!(Qfw^PbfCRwSvcj6Yn_ zB|m8ldv2xt0YnFuY1zrx4&UURP@j5h9#+r8y%5~Fr*8Mo?Y3P|v3cQqX?JYCbsHk< z&@dWmo)One!)Oxi4fuCC^sf$7!vtc|CzWr=Tye#EaB9MYui(tpe{C!Vu{GpKF7+k} z-J z|JN_x00|Nn6a+2Y(5L%Kr4pq44Ft|*PO-`faW8NQ3oGc@=1*(#mY!n0*Bpj$Ab#z< zvSJVCcLq(wky{d4;*}I`ll+{C>SY>RWw1^!>oIxu_YOVG%^BsY;UpnC_bu4>y2?=y zBIEp-Z<9lu%+ef67YHG2ovJ6eaj>87~l?WH;?=TzyC_z&|oUY z<*0Bb7PSDWv*EhHLBICRp`7~l#O#nFTDZSsDHw#xx#8#mN4)voE`X z8u^ef_M|5v5Pqo7qH9t0(%2QPOv=@9?%w?c4hNCNP=2Lyjl4lejRiYqj}@=4r5;NL z$L(5tM2l3&_vhfq*aaOkQhS{NmEg0jy&JBI1s%4a#C% zT~i4_npnsfn7R01P}E4t}7;uc(iy!Z=>_R>$e>(`powncG|bk2L{?-nw8Vo znXp>N*6N2s_qsRLTVnTmfl(~``^`xr3IpLJk=kqEf;2=7^BOB&M(Za)FV>OBkm})) z+hh=1@OE+2WtBiU&m0r7myb?KgbIn|HpyxR)S^SU43&Ju{I_Wmmj@>02j5$!;axGw zguki8yypZ_?#S0aPfo|{u%_;BVNaXCCd;cZ@HbPRG)?4cax4@(Xy6h#gkNbVkZP7U z$62EgF#=yFYin5j{EDhClSYpkrM$Fwj8*+Anow`EEAxkex+Q$feR zXxjBX5U03yXACdUsy&JwAtU}KIbv%NoGnW>OF3d(I%Lc5`B&6p(pX$_A7X3`I;%2E zVV-!J<`a#FYJ(F3)o=Lj6TECijb20# zbd*uzUzoF+9Vd799eM}o5(U#dZR}7Fy2Z33e2&7DF6NZ1Oft8FEUaugz3sy{xBHvk ziYlX%^W3G|kin#chTZ)n{^aHUy^)WmE$DkNYPAnj*D(NLiGC*@ABTBU^8EBy8HI)} z7WDM@F0TYJ#B4mvAs{!LPY$V)eIFK|oGVVZjHCg4#)<#aRDVl!^7SU|*3T_}|JEFl z=LSFd^pV_MDO;p8Epx)YB@W`;$!Q5Jg8ujJtCD7Gtff$Bihkk~G$~^ z22p^51nv1lVejNBgICI3G_6XQP$*71Jq>XBAY{H4wL$M>DqK2v$D_oHosmV(TMqj# zJB~zt`Oc*|Gq9kU4AD&T6XQ@Z-PLW7(O(H#ubNZ|9NhK&-5l*2$u`U|B83HYE+0I4 z(a%6F9fS`{UntGI4>L=qp+OY|Om*{-3=*I5_m)@n=q)6^K_F{&TJ;Yv>?G{M-1BTx zG|HYWhC)@J%ngioGRdrd9AuK7kuOZ9J;K@q)M0756xn+HXaIsBfS4Ey6U0}Qf%5nS zTo%~<8`92(1o#8#3qIWg_^)%n`TYT0=rWmWR#2a-p|ao|j7!Cj)KFle_ zNE=c<{=G?j^i5S73%b3%9UKG?;ilt5RA8~J@IWRZ?U@;wv)r&;a2g)Iz=rG^V0D||N~dO6Nn zTCY5~S6%8&!P!nQ&v-AwW?CkMuv99%8Tr=3nDrGp}SCOYjr#Qx8=yb|zwv5c;my$u8B_#SLslkpS_fMy#ga)ZilY9+awlV7sOQ;~m zWpAJ2f3#D6@ga6oLb{37;_#P5XKCvxg%A^r4J{$zV32qI@#eQa&EF>F4>kdu55Kp# zjR`oZ7%$^&Q)yzSAPLb#-PR%b@@25u?sx<~`|I=;=okN!B*>(E7!H419rB!7K7;wy z`$K?-0Cwhi^U&OwHv7KyWA#r;EGp7(Na%JL#H1JF{Y`PyC_DlPf3_fK59o*<4pqH7 z*izP_f52JI(N44c?R0Gs;VCs!t{%JI9-@5Y*GRQ9_+Q_6oE*h;ut6ttRbceZM6CfPJZ0)1>IeY5d z&mV2i&F(yq|3;?^>UgHCy@B|!yUsHl$b0xx=j;4;e@-rE{TUk3Yv(0>5eRRIHgvnG z;4Lfs%T*9`ixxGLl21VpY{>CT%;nn`?o9l3R#eLvQ|@bbW2=&?4GI=;By!A7n@lKudz0AiX<*N3y+QZsf{c?N$n5e>^PubpJ&`0b|-iIvd+S?%^w5Dw<^}BgKn@1k! z@PvZ0s@SSY$PdL;1@Aj^y`~{64@d%)SY|>R0A14qzq=?(<%;H5g`j=QCpABG;j#?i zh$3wlhW`P0g~ziq>}x|lRu;|7t=tWL0IRSNfo||anO+CN+2&E80u*Gjmo@z4K3Co4 z-+=zLEVra(!4#t>qJi*@Q{zS_j2St>S(IWYsNr#4CA3+%k2Xmcx&Pb{5WbYXRnkv?8t1TY!v zmSH5=aiZ0MO3H>3*l{dUIG59Wfr);&#(@6iIoYKVh-MQEXXOG_+;jjWoAyEENFew{3`o4VKS^lZRuuJv04j92 z0qxEe(e>Tm|AH(Cv2+9RHe7Ug@8@#%CfM*sIuOAc&PKd0@P~~gsFBMQyk13=~malV9> ztUy%t+W1&#j0BgH%8S6eeMKqUO}|`(nl|q(^o&objuAwFe2+x&XOJf)Ojc+o;XsUm zZG=xft`HB#jlIU_5{B5z2Ln@fiij0B?7~t8Y z-sPwQzE2$ReTDcIk4!(`xs;O9vyfbz%P9qT(_D&mdF=BO3T*U@&WPyC{N4`G5>;J+ zGWaqnU{a|ih_S{a>s0Rc&?h2InM8AjDbBMDmvklA97FocTX^_9Q`;0l&lvZh=0#2B z4W{TYR`v%F;6tu&QDw}gXi%Nu?UGvT8C)rSE^2%Y1b@<8ZB;lIvSkQ>jhg4OVAg2# zVAdZTZ`>2HM?WMUF+lXQX^Ska$i?cS%S)D}K zFe&NbsX#8paRc*x(v_Ocd-h8VQ6bF&nKn>GBupT|yC$g|y(}m_Be)BtpDlLqX04NL z_vYbF(X}!a$coC6iW4!g%v9qq_bw0WzSl3lHiCYA*X88PyT&c`^*SHm!>aF*eF*@J zJ094`W3Hr!vJR+y!MdH%VLx7LL*Clf8Z?8Oa&Fj|9jd8R%q5vgEnHGuQPB5$UfPuD zzudUl6iJlwgAdTjOC^8({?&{>VkxsxR2ik@Qb5Ujp4^*r1u8AcosGziqYWmNbmWlOC^ zbjVi{?T?lwhIo~F6l)M9>PkNSc>D4mqHR|ez3)>`+k+uSAB$0e(t0XuaEn-}pa?2_ zAX}Q$bi|l!WG?*(w0MFy%8gsOkQFboAZYfn38(!`V+d2>Fa8ZTbJxl+qCdh=9F!>I6RQXp%SG1JtQ1~JD${?eZaylHI4?AJvc3m2F zAnpz*P2r)0O(;e$RGv%pPf?#;DeA0Cip?%y#O3ZCUy2o!0dO5|U;X4kppsW|&ebnK zW$uQ(WFfT2B+IS~X6J)C9PloZpWQPEmywu1jU*0k2 zyWvrqFf+fIGo~(Xo=>L^%?o6zq!1%~{R!?t%Z&5FQjfWAN2u5QbM96wMBT@f(7Npv zZ5WIkN#)0@BD?;y1e_A8%o=NsICNHGk7U@~-O8)D@w*~I648pf88X2B;|H6{MK__{LFQ|4rlfd)LHf?3Mf;KWFjV2O`L7?34jJRE=U569X)( z`2A+3Qgs@VXY6NKvZf_ie``qQqvP5Y9{=6dpYdg23Z?D0{xzDQ&YR82xo0LY0k7nl zeZ(2%*20}Z^El&1VH9?u7@j+ELhXQ0m1S5Ib^l3?-_-B21lZH1Ph&b z(xvamCrU?!5EQ+ydKFyqqE{53U_w2)5*`BdC|Zx&*k^kzbzkRX!+Vr+q7Q$R7WC1| z7n=^T+1T#V2vh+}r;TiW<@Emb^Af9>tcU_rN5`DRh9>d7iGwujV}rI~o~r-2l5VGM z-{&gHbUQQCjYkj&2#J#JQc8y}+|??~I$q^gJGf^(piD}cDjMD(nWy?CUT%MP9kIPl zqbGS6x^26rx~-b4m9DA8lJz3n+FwrwZ3aKB`l*Gz#T+M%7e0FAd(I!*?aI!a4IQxJW7?*dP#^D+HM3hnf372lXu?PgkIY)~l2 z58?E~8bMXL{8Tz@6=ETwrr^}T#u5v*LXF?x>0c>>8Maocz0L*ciH;80Hs*6V*id02 zSn3icRAqf65WZV+NB2Y&N8=Fd1)?Z9Oy}kL%%lttUJ$E&$y!-nK3Dgf6X}~GuE#p{ zDg%vhhr-mfwf&+$4>==KzfQ&tJ;gR*&a$)^Ez_{?mZ4{#lL&vJjxPP>CcDaP^}4ws z8WEz})~2Yt=^Jx8*MYK z$;0gs+z9J)XUB%(Sp~uswa%JTtv-D&{PJKyaAu~AJ)ASwH9QG3h9NRg>DXYP*xa`+ z|E<9|>=llXPj5v15P?qK5qL_Ky@Fc$w4y*!g`6IG_j$Q#IL-6Xsv3r{GNyHAlJd53=3LSW`1~596Y&eg^)|zDR$Uz z({wuDe{-;>Gk*VF$ap;4rJrQXer|E?x~WiLu<)G&CMGn9XW=0$Fg_Ase6q9(Uo{93 z^+}o8C(@}3Mx45TOQtFZnSPb#!XO62DGgrCik2AtDsS1!km53B9vWibV2a)&o9gCt z5e$y)WC}x>u?PZriLkP##aA1o+8d2^y+PtvHjkee$QOW6!yk(f1EAO}5P)KZ7p^)P zTTkEHpAOX8`I^3*j-76A($KU1Wu^9h6g*iHGfeK}dODt~G`g`EL4z)mHjSZh~H#bws2vp+SWu$EEAZtdg+4Tsr7&xR(Ce z^I^ua<8CVuvPMybYZBw8Hm3QH>&1=gf6LY*yLk&k8_+8`z2>Uw;Ys=_z`=Yys9#P{ z$qk*F)F-xpiS=|Z(vAM8*7zwaK0K1-Lc^nI7-oEj_l ztFqQzs?+^JlOt5P8hn`Z;K~dBxPP4`2>(A>!lAgv>DOUo^Xq1#FV+@fJ(j;tM6n|? ztDo`(_H7kf#B?d+gg?gCemrewQLIxPO5%Wh@?(V63YPu0=H$0s9u^nT!Q>Bb>SlGF zQQAal$@~=izV?_4|Mz~g@BJXN6>ksvQ~bV;wb&-jyqR+lj5!{2%17aUSqzo&>(&FA ztL+j`^`!ZKl!RD=aH<{NJ=YquDg=!x>477RUweFsX@6~~-xN*4n+A`)aw!aJy)l6} z#|0{5qdMxYPK>ve+(rkOSH~7{`ae4JU<(g)1mdw5>-Nf*=msuTrnJXe{B3Zyd9__w z`!XnOC8M6Nm07M<_LI2uhR}>$9q$m$#H}0~8>_`C1EGj9+|jmQnz{!H0$*NfVyXD* zb_f`-ViQK6;f;0LG8erU5WQeyI~a7E@j}F|&S{bF(@EIjjC<^|%sA(TOD(i#k`zej zG2MRqi10FP$oWb2uUxr!wJnP|{ml{}IPvB`#76}ufZ+Rx*0<^jrfPz_zdU7i+R|H{ z%W>OxP?6N#=)=|ZUQ?f8NaW^-a@MW&5>l+^Q=DuNY9L~zT*<9y2<*R$4UL(7V|(F{ zGfHE--%y^5Ix_+5@;r&IPSQ) z-Boc`84_?K34zRHvigu1*6!(rFD85L1PKK;SZ{Aqe66PZlH(fOvGlSfJs~PfQ88*l zC1|Eep2l48%RrHDmsDdl*^0W53xu^!8_BXWQ2TRg?x>gZ$gPncfePo@+5W4bPZThVLSOOpm!zQXspjy23crT!^F1CXf{7UE@~@>)9Zo5sAT z`h(C9vl(khGCV7h_K>z$Q)JWhS-vLe-=3N<7`#%c^d@2JM!V)m9#OwLt#LVA6+SrT zKU~a~A~hmafE|4|e0)v$wEtPe&TX4(c30b-Z+-43DJl8b@BUZNsJrxyq(qQueBk#+ zmk;)Z>@DYtx81idLjNTKfDj1yb6MO68G=mWhaKf175}7EpG6Vy*ywqdd~|Y8>eel^ zoW=RR$zaeObH#&rprcua3PV2)jeh@&59skC`HihHKJ{A2Anu{J@E`v`lN4qMLT&t%%xA5{P`y)= zoj6k(c6=Kj#)&5IHUYp3YHw~p#eBC1nO2LCAF}lornl1uS?k}%Y0A1SxpPXX--q{w z{*~r-@$to^SsP*vjXbGGKKO#4aJ}w30!YC*JsKMoh;o1#hl⪼=fc7CF7?Mu_tmo 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 z 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
+Iz%W}eN} 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 literal 0 HcmV?d00001 diff --git a/solr/solr-ref-guide/src/images/solr-tutorial/tutorial-admin-ui-facet-options.png b/solr/solr-ref-guide/src/images/solr-tutorial/tutorial-admin-ui-facet-options.png new file mode 100644 index 0000000000000000000000000000000000000000..ccc24e6d19928b5b12d6a24b396d73466dd8d327 GIT binary patch literal 10646 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 OEi0)YQSs3r;Qs)$7+7Bb literal 0 HcmV?d00001 diff --git a/solr/solr-ref-guide/src/images/solr-tutorial/tutorial-query-screen.png b/solr/solr-ref-guide/src/images/solr-tutorial/tutorial-query-screen.png new file mode 100644 index 0000000000000000000000000000000000000000..7e009d237470654489cb65d7d8c29581542a10dc GIT binary patch literal 256538 zcma%h1CVA-vUX$I)1J0HZQHhO+jjS~ZQHhO+qP}{pV{4e_q+Fg8}YvpC*nPonN^uj zW}VDJh>VmlG$cAC0002AsEB|Z008jS?*{-J^mmJ*iIN=vz;`55etsEIetujTJ8L6T z3qt?^k&pysFctX`MO)wyN( zjST>`N&+>wz8%~$va*WMwKtv~Y(A>Iu?Q;P32c(86kPEgo0#0X@jiG2<(DY_nG z@EQ^8O^n!9kl=gvF&;(@gVf*(=B{(f?lemPbYU6^+9;I$e)WNUk6O11$h*Hy0Ci$- zT)qIb?e?uN{|`(WD(U3n{lK16$Z+}B#9%x9gvVuKEi09Dy^I>**xqNntum16?jL8r zI7f}5A`~Ydv=rddvbO{Ca3R0>=yZRRTc+z)h=%@V+40bEouo(jquK}601(?o#w?H{ z_JDxzIUG!ITRPZ%w-I4CSQ8c*`8N3EH+3M#j=Kt z^t$jE4S#-Ck0@amv142g{B>Lh zgv(!q*8*$PgaA)L zEiJqkQQr&t);p^XrtU^mzLKNls*K7G3k_mu-;I0&E4(5R?)%Vfb#Y$mh#FDZ{TpB%du%{;#7baL$Q)}cEnuptNe3TcK6rqbTE6OBjhXOqvn#b4volQfXtW!$8d<@2LI-0RKftR=Sc^E7Y>1s|2P<1FI)xJDHv)uLex3T(^B_Dt5JXwNcuX&$-svpAiA_F=!qdAHLNP6N|B2CZ`DH2nN_+OD%6h< zB)bmjA?)3&--i%wVKSqpdXjb%o~hbltOu)hG+l5$BX|f<;m*M~{lWPl@xo{#WcYrP zoa18Rr3Y+DGVgH4h#0_C1Y=*fNe~$!8Y3hjFe5x6O2e}UM}>S4B8WyA2;UM7L@(z9 z$w8QMn!=tCo{*KK-N%%RF%h>#^N*Ms;I$-cNNq}T@pg)N31Q33$kfQ(D22%Gl#a`& zR@Q13$R31>HH`uY#_0*(6cEbPlHQRb#e2rr#lOWjm6nzkmTHymDT0*VDUd6`7H2A7 z$bASbVl7%$k7I8`h(*qOJ0;3NyB*=BfFkD_d5o zC8%YrDmEyelAR)-0-nY#gw2mFz?NvsUMX?tu6wk7h+KT6C$5oz`qvfR( zwJ6v(9fC|8sS#3&SHMwLF7j1asu|Z~&(XG`aRyK3P-j~gWfeG^BQ{jj6V%r=jMYDx zHJLu0n4E+!iq57~$`{yc6vg?_QlPE6^00~_SQJ~dW_bVsg>bQF8Fr_-?T5exspLd6WqK*X1&za8Xc5Vn4_B0kmIRqrAyx@ z6@b`F(5D=@6-pDnEif-|AMt?7?rvdE$VkUkOLr?9ZyEnP)-c(u&YKtZE``+vpz_Z2 zc_akJPm{rFlxkjTyu(Q%qp-9YKTXr^*UOs|UEJQ|pEqu<5P=XAN!G>drQ(U1h)PH# zB}zqKqcPLl$y(?Q6-LkF#YR8!besb7pxoyhkB+>{kb1ayg z-j`tEv&)7Q({HhRTY6=&$hGtPiV%yUL)P!m7Acxheh98A9xJOTKHI9z*7MIX7C{v? zO;%^r7!20sPUmhJ?b5T-rx~S;r*fB>J9VE|*hjOX*{2?+PH3_;xoa)AYu=IG*&k|C zIgx28zFYC$`VIyJLLE_hyo)bWHxQW-?Z&Eyc_3SAg;OI_SgG%}8hpfB7p%{Q8A=%* z7-}clC2GAdyex%kgC!YKnX6xRddxxYLhgj7k$)&(sui@9nk?)s>?ti(=vIYx7Jmz0ecDa5k)$w}^uS8a{2e7j{4_ug4-V~RtSXR5c zQmT{3uiPE+O=Xxun6SETKE2mKZK6bK-M6cFk9^2!mZ_h`j9Dc` z)weV)Xx=o>PG2r;F4Gq7^(%gr6;**~vpaL{z7}B2Ftb?^Z?=1y?^aB%t*=d8?Qgnz zHeFwKcep-5Jc;9&aQyT(xvqZ2VftF$I@xq>CvPr$kbTc{k7A9|=8EBXneDhHy)b>D z-!o>M(#*s;gSasDrri;I5}z6K*^K38{93;reO=h;Qt@thEVy^M}o#y6}GHy87r2nvHV9arV4@pTA{&xvTRr)fUkv>sxp4srtcX%^a+qyabJDI3}C-5dIrqOlIRJOYGkiwz)q9bOB;1QlFT zorKkar~=^Vh-D=fW6;|AQ%`mWI`G=o=DGq8AYTZeGZYLAj0pzDYXfFv6L4Fhb9a&i z5uanrI%cD++ptb>+xUgV$JYYmjP4!c_c{T>Mnu&f005cj&jTnbM|ceY00e5PpyHq+ zDZ!?1ZAqnTV6A6JP3`RLOyx{Z zWo>6nP0Py4N=-vYO-D!hn}gEc)yhHFh0@BN;GdoRS3d%V_WE|FHV&rNR=9uq)z!0h zbl}9t|1;2k|Ng0`p^NFiN3yd2ms!6Jr2a#prlq2x{yQ-TQ=|VN_J{IMv47b0&*3=! zbjBuQ>SAc2Dqw19Xl4IfH7;5PdIpYvjPrj;|JL*`qAGt8WnrQDtLR@ye-Zto3!Ai^ zso`&!{(!+n%R&8r+Wy7QLH!4*zaaNdxBR2^w_ms*IjH~J$6SzVns>4Q06YMq0=x*p-d4B28{i+~^|xID|0g2q zF1X3AXK)v;Cg=ZE?_b*PYCipq?*AlyxBbR&!_}`HU77j6jr(s~Zz|vZkLCYG3}gXH zb-~%C7EzY|pV0gl1H*6nlIOqQ{+A*An1GV)us10AWkr7l_OJYs?Ppy71NFZUeefcG z5pM=PL(MMyM;8!pI^z7rXMd3fjOd0F=0UvTe+M}^HT@4h{!MR%{f_|IU0BS&JBsSGWd?uBrYEc?%q9GN_gSlG5i-id_1Fmqxr-+_*Uev1Hl$z z>nx7wHY&DbWggVjgrbEvec`n10zEd$=i&wEfem{OALGLYNi96G1DnmDbteWd0%%tUz~P`qMLJ=W0Q4jYqv1>`Bsr_!g!508`)gf)l}qj*XR$%l$|KB zKbs6F_c|?b(SJ}?@m?_OUEOQa#WqwLVS$~Sf4=+efpMoDTn=ybi|<0KG-cZK4vcedp0$HTk{`b0hePh!P)$?mQ8MQg&f>Q)sG5S)!4_b zhI#$$=fW&T?UC+#W_tQ8zbYe_E(W8N!v&lXi8f6QH5xeW8);B z-83&dB$W3EmAksZ3zR5PV8{B#F>mWadC#74nNE^cp5&Y5t0nZp%N3J4O!H($*=}!= z2k`!ycwHP&thl(xr}c3`_22{%*2wseG$neP_N|cxjQ~Q)o*=m-*_| zj<%T$sAfO^nUV++o($CN4j^5Hf6jZtfr)qh;Lx|J<=akeHY2Ybc592M!);ayzchKB z>UeE=%6oh=gm*Kjjpy_T50C;3NZjMqD>nazLZuNb8b^#rM>i|;#0~J>|6^W5GyL!J z%rX&>+HI$JaG=V!Fv52I6TSI$JEZoqB!Y|8v}sLQ7;B=F3thrh_ZIDS!rKFMA$*q| zV#3coMt{Ph?8BNZ3}{54uC}%0!0)(7aU?^om3TghZ~ zk0jCHs=a{j|9kI&Fx`$!BQ0#&^~qW{ixbes@p&(%+c_@!D2tK{s*!+T+U=}rrp=U7 z&bkX~r%xDL2B@=&_EqZdlBLHR+;*VpMJGJC3iwmu(`SGh!e!$gjH05mRC;A)2hm!8 zyRQmwH4B%&P`CQN(C$MM`Pi-GReMgbSM)Z{bjWl*ipqJx&Hn#f0O^lGRQFyme+u z;eNxTS-6dwW6~nV*R3s>Av^*KIcIUY6&xIFXl-S7k1T4z$IyacvULAj^~!*@oK4*A z77|VNzb{Ibz5i4#U%DR;;9~JLPzG-fu1Z)bw$R-?HdylA7jxD zc=Zh0l6`mFoq-p{tPK0D*@X23M~InM7=tkc_OvrX<@ z?y?%Fv^6ZRwVmy?q6RDH-rirHu`@3t@o-FM>^3NjuVblb{uGhwHAZZa%^7Ari=sgB z1#=IT^@sQHfOXt&qJ+z*#k< z_LE9@*z`Y?UT@fdmX=;y`t46d&qP-_`leV~=@T&O!G1@z^5EPra0P>xR#v{oYizir zbGVl+)*I~JNP1uQaQLp7ZAA?r6;)l}>VR`$ylit2`nY6(*kZ^0Q*3~$((T`j)!4|c zI)SlZImPlEIp{M_UqYeauz{y`jTkx}VDq(|=^z_XJ&i? z0_V0}t0oLhOK&VQon>U!;{#4xG_?r?IRfdvskSK2tHgY#NY0B!K} zw&f&aa&89jY89#aAZiDZXtz>|rO*&}Cmg5vx=~O&=jh={hg%O}dZF;$V5^mq4Lfrx ziQs$|2lp;#Xh%X+kP*U5HpUr~5$V_jf2Y!7x$JKHA}CVut*@!u@iYb8cm?0HX$0Hl z;ve;1H#0aO&JZ`=;8VXV>!v6h-t$4}|M0!fN64S>BUyEqOQiTN%Fwo^HdEt9v>U|^ zKl#k!pKe3!hSCnAJ}9spbn~Ox-zA}}s0d|K4RS|#h6iiP^=VwwCx1zcPvw%vrHyUo z^>GWZ#{8(Tht)RLn}O&ui<-ZmQ5koy5)3XjIs7##i+>Ed>l*P=4`52Vxs1U8@_O9G z8f2QuyAprXl315|XZ0Ub#K#&ANZa_`?mBoP8jjP^%TKGWvh=?r76$!W{jfuDr3k&(ypd>cB7xD`=4SQj0EU#*~6w$s!8nMpHiQk@ZWd_ovz)8*S9fQ3thD; z#wS0OrUn|K4)wmMjqQw&1rabwy|j&qL!-6yL2SJm5x(yqf#;-lpf;JqL*3jKb|}Cj z@v=qCxw-_pkM}*{?LD&Z1cwE&aeulO^>CSEF6^<#!?P#YUPq-x*%Qp-eAp(6@Jh-e9wtm6P=;OXxf1 zwRCMr@3)z|xVZm3xtk>d?>g1%pXAaQI9qQ9%y@c7eoP@8wf8Axynl-WWizWqivs;58w4iXkw1+9KN|o*_e_hk)oYG)(3u{SPJO9GV z#t#;BWmV2(d)WjjOHh7JK*76sA&2)I&Jp^-4b01VjPv*Ep*no4-}jux!)pKTPCmNx zQVPDADC9VwwvUN`<`bPlLPqIgtmjK6LDA{HdXVmH*8g>iEFhhh^RBtpnEf%cro(Lk z9mf+LQ?v+*afT{*Fn8v5yV*J^IpEgf1$PD3`_nXX}*We zBrUx3ztikF(r@Q)kv}`7FB1yvzdCA)*wLjIVL@FfV{BKJDX#bv6659Dussz<`O>p0 zzPOr}Ps%Ii{MbOGZvVklB>&R%e${oIc+EukW0QIb|KOu3#^tbuth}fmbzw;hlsaN< zWq0-$cGnFn!dWglY^D#zQU4pV70-M|6M_2!q`}vvtw1DJP+-$%h#t1)()&C=S?1{V z8M8dm)*8-=k3jHE_WxMnrcLq7SfC`xA!EJ5-iV zm-TKLZ3tz{WsN?14^Qx&zqwVS{MwG`jkzUMcxCmUdRIO@>r#27%zksr)76eFDWl+j^I?`pIV9_ILIGQNbT3397uVM zE@;^9msci8_FxXNlG&a{nL^RB1m2%sRo#NKB1zh9HdIPhdrB~yS3hw?4Loo_`}8h) zscVePD{j{+HGL57BZPF0@pZh84!8C1trwTrP(>d;rhKlk7)Fde%7Fu6?jyeMGwbYX zx?C1(c}{Gj*2lG8;J;;nmfiGnU#949NFkov;+}PeF&w%xRED4903X!m(a?*VH=h`5 z_@Rz_>O6)KpF9m-%($N@FFx9@XD;eTjc(43J0p10yng8H*Tj)oq0~32lw9@C##DS* zUAaX!lqLclcMyaVCazdJ{}@Uw>-;lS9$|cdYmYWi9Y7OlE{j>UN(0mU<|22$BYB%@ zD=VX{Tfz4B_C5=X+qoZ)_b^`u=goNBQrt5zg4ltN?cCT{dJ4C+sH-QSd+weXgY4FO zvf^|=HQ^aBL^FNa_hUNcL*CUl<(^*tUjCl4pHet$D`PlbAa0wN|8m|TW{FA(Pd@UF zSl*NJB?~HHQ=;JS%fjJDSva^L;D@&x$GcXtBwXs2J^>Ni=wkM*yAN4x#UG!{2u?|Q zN5zXsyMBEuyIwTT+6~Wh-N)KfAwe$5NttX{TcTck`>cowP|k`L zxYbdLRjz|E>O5T7US5%DIU(Rs^ZH4}c>vzLYG!+({pE*~?oFk~N(OG`L{DvGUZ^Pe zJVtw$By4MxzM3o8{Fo|yGaf{Z0hri|iv6i=O?^5X9V{v$cG;xw7#clE}5Em$o*;+_ne-C?!f{Y9@PdIAx^4z7W2+Ca9nnz3ua5ipt{)q_3 z|78Ot3Q(?kheTlcaZgeEd9v(y=don6QcGY+;OXs?ql2n`j+==oaIHSIy0Q4%O5Pv= zY3QSZ0fkW`9ZU#Du@wRd%lN5rBn~CC;-wQaX^VtNts7*C2Zp*_Q916#HNlDa~d`JBFVAuDRsZ>An*?3p^T{khOQ#iq&?) zCt=C!6X^{^JoWP1`p?a3qDyNVA+4>T4o}VS2-uTeDWNt>Vzmgv;kR!z z2@GvV$*CmY8yXyC@aRFMytQGZ$PFFpo4PLzx}fP9xc&ByjenKvqgoLyK0cz2-e+XwBMK9pG6#n`mn~Hu zo?>ZdB+b9funmDZIZCGvuEJ)uM)Jan02GuLdJdRSgafUAi&S~XmOMK%N z0*GVE@AI;>XpeU)JlsDw7s<`-0!HPvEfp@3o5RnBAx&daULmM&pVqrvt}lPWreV7e zqM|KVWP?t7$KLFw2AlagL?XmiV4rLC5GAA|LV&wBa=K6^D=X_m9Jv4u4Lyj{HS?O? z)!NENReu)mP1zN8FqV|JnCL3fC{)dDC8hSrRgZZ2_zC%dvf zJ9>j_5<|7;mw%AO;(cjU+r5CQ{;M^#LZvnJ&Q}%Mo5xcSLa9>A+QiqEqr9q&H*JhA z@nsC0YAF4!+>r(fYj|p7EoV@%3EiaKq_{$;Eo`mzc)We${^J%|x(@ymeC_CpzioTb zw48k0BRpTok3Frd#$^VWn|QyaVHlRt17kH zZx7>hYDL>l$v2YTUuBA>{x`T1vWSp*R!ZmN*xQ3bRzYiOT2-?T&1{NaH)?eBw=}Pj zE@`e-%AK;Rqd%6nRGmqCnBaD(ZjxhEt?6-Ym@?pr4bdJL_QZ~^w7s;sogM9{Dl3DQ zxN%fdb&N2YOFbsorj>X2`Pv&=&?>dQG>nn^`6gaf=wzC(A`(-RU4l-e_1TlRo`dB9&@n?5rG2`@+vn4I%tqUcQmAW`C3YgCks8 zF8DcPiN5?1L|WZdDlsTU0)7xu(EZP(=c~{jSQomz&TO&u=^-Em4Cz{>iW* zk%1Y;?P-y8V*MF*fiJ;}u33F=T|^45Tfx`x9G{XJ*05&9pj)h8{o*k|GGe~e1YwWo z@0!EuL<%r(Z$T0{)o=m=F?$%uK{0v7R@b`FByM?fX-VFJ+M9OdY92K_uRl0m*Vbt1 z$gw-H9936-uqlcpGuB&hMZ)JMIv4-RV zd@Z%X;qZz+uRGhmRbBGK_QtS1{CIy<{t6oJw~4RFh|>Oi#jBTdn~ih+nd$!Sbzhkh zZ(slr=?ei}86Mn!aT@F-_wt78gRe5;NP}DUlKN~Yj8#SjB&gXLzHLc<6 z&*c|PrdxyelgPX4sie=)r`2JWmR*nZd%rWAp|6a{xK3wmsrM16=aH2mTuNdA%0&ve z5{^F~rD8nXZ@d;36n1v@!`Wwo>?jNHm}T;Ndpit6BHjfH%#+j;J2pRaJr70`2AQX9 z^f_pfE|@Nj?0V5gZ6o9+kP&WVY2$BY>yLL_I-OqV1op$bzfH!`h0faoc2yQ421#)H zk8}H(!08S4$P2Ksv+-aPq<_e$Nf)9+-j#<^f$0E-ANgf&mLID` zY&i2?nX)*7D1nK8m>=i%#=_OmZSyr>o&v9Cv7Hn$g=l3AbP zAhNm=MvS0?f*vSm9Js?$rOA#omu^t^{n{a*jTJO)skD~Pr4NzjZJN}^jjcv!(qo>H z36GNt^gvM1LHGG$I15@^xkPu}-I&r0y83%YBUcAJ{^)(G0 z|Hp^F%TI|5sm>)4U~1ypI&Ibr(9ZPc0T1XmfRvgG%j!8A%jRvKqr&|9iZZa5Jm|hA zMIv?C_2~e#AStjS7E*zOlhbnn<`A`+{^%uQPfcASd(f?tv^$G$ZwYZXSm{lC{DO%5 zi4+sy5#a}I^rySJg85ea+qn&Sh`Kwn^UZXp_^x8;s<-tG4KY3w)iQ&MAA#clj}Rwq zvn1oUg3sB6y|TJC{(&_UrK<0=w{%-Y{V2ch>Mb18Z`jbt{&*8ow#Q1WPzm!Dtz%KX z&BrDUmSR9`ec2HZ5}@-wd5LZF=*dPFL`;u?2!>+Z6+=)q220t%_7@hY=|a01*peJn z3n~*9J<0g&v_3)}p6(PY!*642w!+=Om|)Djw=HR%S6*H1u}&^C2`-Gx_&hM0@_|UDtwJcmzHw5Hf-uhd*?&YN3O*tp zARahAx8u)wYgO1UT05_e`L+}(P-#3qHWr%aI7r|s>45RIQ;=TCRe-oc&5$wP-~M^vw1sK7JU z&o0F!6k1+b;DumtLZa`#KTy1Fu^+votPH5bO95#^_m1a1z8KFqomKfrh{b%dt-2?tM4)yi%6&Q|p>4mVfnn+;3@nu;Jl3jv*m#Z@o!u`k~nZI=hFPD)H-KmAL&G zABER3?Yb{ds*it6%;tTcaNYYs)a7F?<@serc(X+wxfXhWCc>*O++eT1uNuBN6 z9`}&%rReiQg0Vc-tcqc>e@jU6J%()#1L||uQYNq3liR&qEH*lNWQ4u;P<71_8AJmm zA!HNR3mN3lVcv0>GmY6Ij?GQV5CKUKU{x7}^STqtrg}A~vbHm&)HqsD)no@;OAyj_ zmbVw&m7{cz_f{7?9%aGvh2vH3W-o5iK*BUyp;o#5m=q= z#!HC-M zG_~y%N!s-gd!FqjQPNI_cg0XurW*|69rU2Ao)niI|DvwBCRE51VXiI}!4HO4VFDTh z_+Ucag$qX=OLy?y7RA!GA|$F(10RextZ1HB=A~aewF}-1* z!d1xm1S{O0Jw69J;=QkFG~k>@0}NUTQf6zjD*X6P1g#vHGSA#xlow0M- z6-s3IUcTy;Z^{Ln)EVK2_D8^FaXwI*m{|!s1c$k) z5ndO9BtEhbwA?U_pct7tRb^!lrYG4#|Kj&rI@rqndrDOdp%%G}hNwG1y=R@tCC7d^ zrk`)Qf`X-bRK&o7*=9(nbPwS!w$!CxncsnZxwX|5v8_li7ZLCr;$>&8k#ShnG!=B{6RLH&V6&uu!t0oxg;r5yn?(Zcl;`O1F9fC z8}(+8V%bt|N;niRJ3dv4I-n398U7C|WvC|ka$$b+Bt5fW(2PF#K5h&(GiLpTLn8^i z7&NRM0l^W__=VPCj!a*h$sxvhiWLc7S?Uq_+5X|YQcqz?q;@8RVsqp?Vp6EM!3ds( zM8^JnS@^CU2-fquyb;_dda9qMR#qkga)&H}`(j%^*LpvNC_!gt!z4uXw^F+k{7h=& zb@mP`j)|nCtYk6SJK;oUq#iN_+GbUhU1eHLIU8%cZp-*2^a@|40(@o`H2fYgnDYwa z#vMD?_U9c4g{rAr+rcZS1~|-MkZZO3-x?lPnJRcV?k?{rW+t(0@@LzD@T~_xl*2`VIVE+x5z;bt970FM>irVAktO^J%X@ITJRY z^C~^eX8lH(AjaQBP7Yxgad%;x@Fw7GRbaC4oHC8w8BptU?apPdVrgM(07Wa1{pytn zGEhEXEz28s4$m&{(OpzCoN;)mD#806N|Zj>eq>k(rk%BUb@&8k1XoZBv%iG}kWkwl zs@E>amX;rhhEDQS+Zzp9SrgcGB_?SzxOr|$$Y6(XxevO*NOz)%TH80!7@Pk|Tg%5% z5AroKfAeW ztkKDcrjN`EYv>`{tskg7A1D`-krn;ufUq>68rGW?!~lhDe`J+P;mq{x4Var^3z4Iu z!gD*N`O4$oo7}SIg(Pw85AU_z>H?5XeCW^~QU69TaK@Y+*^Ff_q``p3r0@n;Nz>$LgFf95 zB9rV;ho1$$w-ICDl>N_;rK^?dO;VyuMw96!!B0GO<31Z#JJqhT!btBx2=Xh9R^@7K z5D$H|F)_?QhDZ;=_%rcIDN;sGEKN#`I_93tLJ?RM;DXl1oFN=^_M9-`ROuo)_MD3q zMGgrhiQ(fCe2`E2Z@J+&!xUWshA-*5BKe1D3y$^kIV6O>FR7nGf`V=$59sCE4G5ew zDalM;gkvRztCwp2fT zs*-v5zt5|3S!FljS3&y!Zy*?=zOOh9*9j4e6C%P3Bp!p z3HS~OOpelU6#BE}%4Wt10AjXgJyJ-m%^G^oHYY}XbC<4VNgE*Bpu^(K=$-|UR{vE6 zp*&tG>;uypHgvI^uZ|g1zEF}sxF`fYysSC~9d>RImZWi9es*qTex28ye53P6cp3u; zE$zMu`4PXTBo>0)>_R$dCQDp`TF_`Bb~qX{PiCF)S2+v zDgfeyVEL(!#Mx60Mm&U}B{5<$wSy%lwK+2+*E>}M<7ww;$jE)dQIp)ZK%IU-Iy7dl z9CSas0P!CcD(yDz%JmyZ4K(|HCptk!_N0F6VVf)(At=-_5c=LEK%v(~!5eGxIy2&q z@FFE{NxCTS#_4s6Cjxmfm@6nQ%jY+cSBGB{d1oCL^!C!CNVh1O2EJa3fPxh|I?Bc} zQa>^^%HuDw?jWggWr15~`0Q^Q>eHFHr7Io2AAfx+U!7 zq{IX5WxSo~{OQ`f6KH<(xc1e{`Lr33Gy>rAmJn5A&_}{>Pd~a%S0-y<+=7{}O9vSi zM-Da?Y#UHLhZ?#5`##n6pt(u=c2KbUu~xtL(GP)0w6gpIA$+q?YmKPFt}p0|t`?l( zLl%#I!o6jdQh-PM*sk}OJSa8iCg~}D782cqakhK$Y8;&6(-rndnRVMKoa;TrA^la- zsh!(7DIr}ed=A1{AAv{u(skJm>(QE~oni+wGMV1_Ma77ELe+S*$Xgt$@b@w7mgfQ- z1hUgI#?Oxot;;7RS4cdm#gCh#8}QD1pn^oUz3?pE9TE_i+nlwVy0qIGhaPR323)}v zr)UpCb=7ns`yDkJiYz&&9htZ7+;2p*o5f)&Q&}u`Dwxjew6Ov${hJRi4;?U6#6FZ^ zUlDauU!+tmPrBhmLG1nt%pj(t5I5=Z$4S>Vuw4|%@sGmF%o^gq{8_mB0&5IsR<>?F zW=A@mvH@!9SGMzdim$dF!|75BfK-=$Qbj6Cz&nB*;B9#@E8c%U;zL5=B-s6Knvt@3 zF|6_1xttZr`sx$DU;f5$Wt6MzIF-(J>S4z*Gf7jk;Um zQU@~yxr4W2^sVjy*HXDK#m~W{NzPZw_v5=JYwHH zRRJnH`LP5wTm5uI%J@m6$n;~XW}Yi+=4 zN4DYo`A!+WY3aDo@}7-b3j@^<+H^$-0B6;-!;~`bW#^JZ@B4r59~$R5 zp`|p5Cz1Ac1_*@t8Ls`fnGZ9wN(z$_;dLmc(KNwqEQJh7cjqH5akhgA2@A{XR|Ovx znx6p`M<4Rwww!ue5IQNvay@*Ws8MVbRglZmBY#>xia|w2y1#^3RWLc@<=vqngd{*l z>n}u4E7sh(g(0E+nK5AjZEYzP4hP|!F4{a-)uee4lYqA>=@8Er6gToM4I|{7o6lu& zw$LXcJe|o*(V@wvl)z_W@Z)@=!iiy4M%{`R55mijv}}{KU<;crQ-AjEC*D+1bv6|3 z%(#5SQ#oP)1nmebD!Uv5!SO9!wTWf}K6t?-6FNHvuVrUFDv8_b^5CG8K~$y`pCYP6 z%rNzE|Ld$<=_!egwHNzrtxzl}u4SlznjIj3{;;kid?>r_oqrjOhbhT8GPqyVuxA=P|`B$nt0%G|h=Jt!jJi`i2M{Zl@QB^myX7v|V; zx3d%r2<-c#mP8?2+=&6NKEg|3mMi0jVbxrGNt|M2OV8(OAV!+B&d}HLb`@-P^Tbl?GEW;ujt;Sg% ze~h#2(hy=N1v{fyEA+Q*EQL5a?z@N!d?HJv7k_c$6yE7OFae*&W4sR zM}0hJpwPaw3SZxiN%3!-e&y8U2S@;@3S57%r+X-VuEbqY`P@rU7r4@4H?&;7a=&x- z{f>ZUDD44INg0ER?nhfv^L!rG()>Oz3Vz^gJ5ozMEy``nm+kEN0;2|8$N40>sHCs1 z$w7zsikwPT`==(h{dP|1px0-aj9Ck$Nu;SVV$DKM8By8|+9z@N)3z@Nb|}j0o}l4D z9Ne9DvXy{jU&Q~lk@QJ1R^Vln2xkw2VgE(QtcD#gD<@QFv>TiNFAw=hV#uI&Yw@5; zI9uX%Oy=rhEa+YUaTLZl5=)Q2K3RzEo8p01Eoa$8mx_YHnW77ou!Y#b1y$pLvOZbVS}lO zw-{YR96YY3O;6%C0S_x4i03Qvx4~f-?V{P?d)EARM2bUnYgT?0lou1#qP^DN zmGC`M%NiW519VTg_6Cwzg1r3yvGI-3m2FG7-RX2Xw#|-h+qUhFZQHhO+ctK`wmPk?=#HI~LoS2L}?68Zrf4FY9t1fR<*+woSX}yr852$a*alV-)GsbjXd>_DUECi?O9jIE2spd zF_w0bMJeMfR#IGMBlk^l=({lj0`4Ngg-h-?hK?g@#HL*r7wPdmULrC7Rv_7dG3PxiR(53 z@_i(_l&sqCk3d^8`f?Z!)Q6{430+?(kFC;q#pkpUG$hFDK4Stu-%m4oDVLA;9%JEC zyU94x-LVopqDRNn@>Y61+pF!;nHca|rir_hw@I!T_6IW!WS_65nVw&HvTg~i+pbx- z-p`PfxEryT494~}T_}kd>78y{)9EfgBDimsz2V6u?{Yi?54Sd8A5%2-c#|p2Gnu>+ zPoDNWADa<#lUyU}G$|xX#e-YwsT$C(Y|apDq48pt9cXt0;5~k1o9_~heC)w3DmukY z2BnH=IW66`28fQl+b;^e?WE7uZdZ}oE#G;rKZlgWE^7xp?2olRhcns^x25bB3zkJ~ zuZGtKD@?i_xk+&z$|N1wUqYp)rb@ z?B{3_)joqhu|qCHtxklD|)9*NEg%h9rh8fFhS+i-|g+`G)oX-pbszYTISTB^PKF=T(&WSQ=HQ^$5*rT??+&br!M)t5l)<>zqm97i!C z2=SWPl;|J(M+T1*%7)906gDsM7)}<5u)$0sM$QJCqH9m(?kc1tUodJ6=Ipj-s`u+p zm0D*tHmUUVFvO8=Fl9-$FS-l$ZhQIF&QXp2+2ER)Z3GBM{RI?lh96^f>sO!l1C30l zT}P_dT_UMMs|bDZLy%^;96!nVZcM*#F}`;S&)x^FHAp7NFS5n>GvWdwsQU~u8d+j` zLjYlvU;5K&TW)$J7crIKaJ>8kl2(RTG0)O+;iLgc$Ei7*;N}fvPWKA+9 z=u)lu76<<SJFD zlIoY!UsMK%6z@~VqFlrX!$Fn${#+-vo9gfM2bC7{cizpEF_A4rXp}QXgtMw+4t6AY zq{Be;6rxN@nZnlqW%z@ATZ@A^0*6a52TLXN22+4U#*m~W@d{Qh>QJ*GQ9{2ebH0*< zd1%aMf3&}d>>CxypKn$_>__+s8jl1$Ntn-iL_U&)y{R<-#AA{)n3fccv!rnKRU{!L zlg4W8?Xe&qYnJ9g$Y(FPBvxS<0u6;c{7)dQlwKeFgLT<2SzDav0QmR^IN}L`CJzb` z72SElNqytB(oEZj<)YGpSU2V=e3o>-XQ6IQJsGefz4^aYo*~I#QfD$b{Yb~r1#AJbjoS{6a1umb~7 ziw4*BtMH>azML1`a6?7w6QU5jDM4%pH=1?Vv3qT@RfyC6T>CNfg~}t^?kEi55<9#3 zFHJr_8$A1OQSIa)z5Fa(JrY_`J-Js~M4cH{B~=O?PkMBx+#yCyj|f|c4F zI_FhbZor||`|6IFc`Lo-M8@wEI^zd+j);uVrrKVdi#RXZmQ>XO%e5dh_#Fm9wTanBOuxKf-$_$?V(9%ptnx7` z4ycqXliwY<-~F@LMZLN)NOgkFbVDyiC2lB@?ftfMew z_H5&na_*6p^#;;WMzQEI=@aRK7 z$O%KyqskZ%(P)WL2K2`I7PoT*Dvo2Lh!=iz}zImUJWnIJW^|eYdjhhsaL(ELl@OP?E%_AcHX2r~Vb0joSK6zb6;P_1SmCKao`IUf(L5}WY1Uq8ZX?B|t*gMp3 zAM)6^s6iG-P89GDU{~hmbr&(MqoPgEIh9`U8ru_u8KYG-Kt-r$#@yq}Pnou%iO8!u zpu~vW$q5em&BkkJ9OisER+%zNcWl^1RLmseLLE>$Jjo}l+$X0n*srcE{ze38E}x}e zHa4c#(u6Mg?CtKB&xiG>&M96Q9_&pP)z9A5=-cg_G)sK8JqE|Z0J5x{L@+eD|I1RX z3;Ue3x+S$=fklw0(xmiDB zObzMS_16Pk;XKu_0fU+Sa!SXTSi_9irjRuX8G5px@}NEjvthpA=pa6=^-JT}x(vME zl<|<-#Pham*qkjQyrONy0#ml4A&*HvG1iO4Wgzi9@dF|Hh@ zp+7c|cVB&8!0im9O^LhL)8m=d6n6#?8cHZS5E$gKE<0&~zANUkfAz=7!PnX$=ttfJ z#B1yRj6V;680uh(?#_M|j>JghI zG2!_#pa;#zpmrX{csj=)fX}*d2gUV1iRAiP^%0@yd})h=7TXxE8|Pk- zaXeX4bwdccRm#y9TtW;4@_|BeuK2(RUZkb3`JYGSd)ykNu{igU=kG^7ui(+GZJ5** zxL;&>*Yei%y}$+o(8qo;l~SIQ#Q=dKrk6QY2j7*1^M`V!~(BCKgnS7iPwZ0j32QPAjpCGVT|Y6SWjT#ENY^4Ja7q zki_3qa_igu%KwzDQ(o?;og|5o6wvWxqV`#=#imUe9+PcUS61eS+e0ePmkse%JT9!` zVM_{n)itslg;=3<(CP+D!C+s+Z?UeDcDX;FxtTVPR1 z(H~Atoywdr(g+a~=&hBRmsgG1uXJ3joiMoXI8cilB8-7|Y6e{wtj|+UQ8F9tZ^;{r z&{R~0N|pWEs7P*gE(G(~PkKEVAl5VA)6j+prHY(qJ8X%`%vhOC*&ivCdzX_wtb&-} zHYycunsaJ^MY+Iv7)@KC`o0UF)oY$>({kC!iJ(~W8xCy`gbGHiU$uh z5fq9r3{DgU*L<0FU6So`Fx^ROqpuZUM0wucJ* z=;$z9NrVYbtW46*M0L^me`WHRAOSL+842A~M%CRXrcV>PIen6}Ko~S#dwo5BtjN_L zqo9cH4A*DB{E)SZ=jR+bB|13mCb{;1HGAp8U&gnj^&~bGa7d;uw6*@ID5(?@-w_-W zR`J-y;Lid~3r|I7hG?zg(hR$|E!Aa!dcYO2(`3hB^?z4iRIK46emxv)D&Xp_{=h}J zEQeodA<2B_A!3dXVVjfXhAQCiaw*SwX<{DKb@wlIu-0rrk6>}xX-tSwS~p^ZOM;t& z1gbO@@Dd{A;Q^e%r5yfME74;Yo(S2j zT&gu&vp>2o?j$nG@PR7hNkfx_iOwr0LDtCEY*&6ZROrzmpj+;G(Ve1ZrZ}CY)NUVb zKi#Y^sQEohF6ymU?!^ujw1Z6FM5TLcGnL*iYZu>4h3={pG@T*p<5y>z% z16J8Cps~*Zz~@b|^>v(n;+11*+ulECipyo+CiwDfmDWn`y{cfA@7fu~I@vH^_p5| zxJv!_9HbIgg=ugrDqmSQKc5pt6pvvQ)2^3C82-s-yZMZ*P`CLT&snQ4C1zPBG!AKTM6|4tWZbGbpjZr!8d02oTt-=UUN(L9zn*36HmiTQJX zjp=@lkWWPNv<8JqXj1|*kW-RnD3b!tCiOQYJ{w697?#I#n6t1cXT`qJZhraNz}--EzVQ@wk78+_#F;Z%#`jy$vd zGI(VeVtEYoE&wvx#BhvRuAnz}q741ZjMNdnU-vXmj%6_&>2GR_lahk=Ene;^GrlSm zLN;v90U}!p92IPP=p;A(qAdws>cNfo<|N&oA@AS#!XWpUX{Xp*aC97b`Fm2+Q-I8$ z{*>^q!Rl^UkVT$*r&+inCa%t`B z#a4UV=R1r!*Z4qvP$_U1JDKvC2|F!$1Ln->aI0L;WD=Qdd9-l z^b!8*(xL*T$8VR8^w7BErvQV3S+dUZ$!y1Dy%Kve3tecm`IE&k0^aQ=_^}7eL?W9B z)>LbsKBDytjH69)OY#ye4>SF+y{<EhQYf2Lli^6%8JJOe5`yThQTOBINtVHq!g#oX3(TSWNBeB#D@D} zf8lm?)=2^MTZ`N;-a&HVdJ0=Q9m}}uq!Rg8Hqu;c9v*Ck|mPrnUg#*Hm!!Q;4YB8U`~DX7yW16bWP4l5^U-jRn5pt>PE|^Gf<#((eIsmu z2=R7=aH2oqT(X9tVS81T$O8MctLaVeV*{pP7^=I4NAott>y>lWWR5l)BHc&`4ZNYV z!Z!y&*x(%VbVCYnbXJ3fn$QR>QjkU0@PpMns>|bXZRvC9_*m^PW~goaT0rO{8RFTs zcSVyEldD5+mbl}DGWY{2t`DZq#}VZ>6^n%z;aJ`|ZSR$&)|(SbI>TXtU+^rq3_fvddNFTB9Tn$iq!V8jODrnZusjqV)@ z2P;Y+_a%--+7{}zcfi`U<$$6-79$1$lIwb;+D=g(wza{&gg=+P{p1GmI#RY9c34T) zLd{#=75*CIph0<=H#hQ0;ptyYW!UJTMjx${+&=^)PkI|&kBY!%;5lPD1AcqaZ=L6s z+ElfKU2h^Pcl^i|GkXOe+K_B`tW#Qhkp1@9UH`)zHh>-%yYTlPlTWW94}QkDtNpW} zlx$B7QeK=lb~+P1BSZ6Qe@}KNT6Y7rbefuVBRnl+x;M4XaNf=V5g+t+mHD(*uMf@j z?3#C{2JoT&&V5rdaj|(7GGsc`|>55g!!tfEC?VE zg%y>!HXCx=S%B`e9|eBS?U0NQyyhjm7gfa+4n2ZT{W|HgDnso*6oHl?kBlc5vW9`m zA@ym$Y-|Xz^!(^<4W@u%yZQ5?(I2K2k6smxiRXF)t{+Gjueki${{P}EczVF6`!m=f zbypvXc-q!rf)h@f?TPGgI61_A1mqJJlFGO6;kQgy6^>|H(se-sUJqB4|M}=Rbl378 zGA1kh^~R@=4uLehH`yRF@*OQZrX<@HllJ}GP0Qu|L;p0ns`Yh~)6G(>^4F0bwdE+3 z>itPEiYB{_^Tz5uIxoK!tO}4-%LmEZc3Pb)pTq}X2`=YOi@JXxn>Ej|Czq6y0(R_v zYAr|$AUt2`MA$f8%Izow%|5^zV6>6s^P+vmtHD41al{yPt@ERzs~j=lis(`m{PB3M z1Wv%31L`xE+|CI1rBgacgv3Dlzu5+D=?MQ4+}8+kQn5r@KDF!a=9cZWlF>E#;gKY9 zhp=(7Kftc+OT*xZ)+n2NtQ#0UTBgKxvmF`&7EU) z0qE!ke`45rL1h6Ep<$@3{&MJ!hi4&@wmoIpU!a6;)LOHr{SMCh5<& zJ#v%Z#9vcPbD-ca5Um+7h%NC=5$^?a=0C* zrsY#;Hk3PYP6kCi-)+3E;t1EJ^SxB>aZ0J!f6_3K!d2ZK=I$Kc{%*)u$3ZZZH8^9# zU14}2W4ncfXLo}%=<&eJTxq+S0msI&yaEd}`(Q!52o#NOk-yL!@1(=5`D_;3!UlDA z@qRjN6kAgIH01xXEAruiyhggFe9AdmmU!2FcjEB0Bdn^oiIzjQ`+UX-7zjek8sXm9 zL%>5DVO&UXmJriKGx|wjaerzNZD)#jXfSzpEt;d0t*ZOXsO32pbh1f&7BF}IM?KUe zf$wuaQ)V^ZQ(SM)d-jr2bcej))(cK(++c$vB4UPCYYunYj&$UL@07Hq1zt{(@ueU! zZNhnh#Dmk+{I{fdc?UHy{c-USM~Q+6$!UI9c1ZB)Nz&$?l@xs<5mP@J)^Ie|!QjHp ze)OirM(7_yd^JI~ah{x9R$uOeF15}O(F?`bW8i-@cG^c*VsBUcznQIGvHZM5Iwb{> zzsi<5c?0P>uOBL0fo*7Zr&cZ7Q7t;EK8Q#2iqnHn{dHmzg^;Y&)spFffuO?hAt51# z%e7jCv0vdOk}eYG6M?VY;#4p~gBgR*^~RJSCpW4(PHn4u)`&X_51+l4zA;1%JMCE2 z@`JAda2qjDG#t7ZU5pd!30yzI*Oq@rjv<+Bdu(y4f0yij=!)}{)Huw$A+XDKeOU?R zK2cj1#I7BYyYq(UxYf4Qxk2DjHyuz;$<)*9ZIP#6MopWfa2xi!#U~#y3h-?_849S+TJN5=WEI*tdr?a)I|9pBc8x)|QhYT$(*w zH19E)(_(vRg{kpa+^=R|q4i1rWCZ~;$+VC6tDbSq=zt6+xA=Cv&}G)o-m_oDNw=Fd z?KdT^hXC2#2H7LB-3{n9W!w(PExATW0M|R!wS>IY6G!>YT2dakNNR$fiK!kGJoT$DHwl!L35p1mO1;1avZ6 zoGi1FgTQAA3X{o?><2Ke>!%2|`|?vds=hxlUdPHwcQK#-jcybiU3VYf^w*e7w?2EY zOz3|Yq5k#=XEvY@?AJ6f@!w;XC_N^vQsvlm-nB=GmM_{aW#$(a%J!BhD9V4&%~99Q z%!orBcUo9m8>`Xt0Qa}lIz78TOVP7?A$!psKG6 zE_d{zWttWpleJy#_13`1s0uEmih!}SR5y(YI-dkARxNrBX29X;&@MaP-T>gRU<@UA zj^+s=Iz6+ZzqwM&cM15+qrtty_I!40ch@L?_t>|093+iVwbzkym*XAk0%ZIV{bZTx zaZQ4rl2Z9%E;+^0`7!N5Mo}efV}?!Bx{aMk&~~*Yko&bW;Z=7L5s~J% zO67^n{k)rRpn!JQlefjiKO31?3-a<1KIuV6dN$qRpi(ABKD1vMJMV`%UH7lI;7Xfy zwto9YX{r(;r+xOh!A-l@zk5)u3EkH&4}jufN;B1>Qr9WJemUet{>A z81&kGQ0{&$toKMRbEGxbSy_bnBaRte>1b%dcYY|GYIjENdfOm83VF_F7D&KevC#;B zB+ZM|;&aDS&oz|F{vM*H^Mdg6NGJ|NaKOu3W^x<=jK*N?iJ{H@fGJPujB2oX<3{bg z`LgRSVYkQr-Ie#kz0+;v`yVrFUq&iKbvGhsN6<_=B`|6(Tlw;nzv6Vz^nx*(}0;G+nz@|{7-Gk)PGKPol7sMPIB0#t&Z(e<$8Tba9wLZQFi}=!s}$>mg|VIxZLY zusu>~>gdQM^L&Bf`oU{6=PG}SyI*@-ih!__A62!nB;5NEy+r$txChIPXlDXf5=U;= z#Y0*=#eqrSP2oP43Ae+2sD&Io$sfoGNqXoLRAeC`-Wj8+fo%}NPj)H$;mldhak(@) zG0ms71YOy)E2PA0JFvR&gKSlhnKBQ+YSWIP(fX#y!S{B!SWuP0=N9M*L~a-q=U z3%=L?hb;FD0py32sYa;Y3V_;&Gd?yIw7axpBB#|6@y5RUrQ-vzsr*I6&T)s<8WaMT zs#P;?S4K0p$a=oiqwHNNS3tXTHo0BCh$eAXVO4?b;^HC}Q~)vmvB&1&u%1009zPF$ zvv=cSdeVdO_T1RC+s(#=)YI?hy{7mi&pPWJKk-juOl@ZYy_n9W%sjgUFoDg9efug_ z2+?O03=F?jCkqVfj225~QOUEIV2?FtT;qEg89Rbe6NjG4uGF_B0Y`?5%e#j!6wD`q zJw0A%DR;l3Vn-RTjyjvb3bMv9)OsAh@}R#n=wRQ|7@-Vk6+za!7$4jO+~H(zd` z2F*Z~9ijwqN4bmu{Vl-YzWOuNI*jlzoic#eDF?Qi8WR!?#1$=xIm_WI#6NOA?wWZc zlOAo%t5AZ3MEQCF6>D3UdhnbNl=u+jK#{)+|LfvcAk@1`5~DCBAAV#Q+i0|ms~(P% zX*bsj$LsauD2p9@Z}`Jk*Vv(5lBR3fv=1=qD5fN4_D5cY#>UQCO{u-naOROU>1Zyq z6XkgXH>tL#KH)UI2L`C}3D^eH&p6D~rmmN_>2Uq>{y1MWT@~s^0z`RzbsoE-3al z+p`IrX+C_81Y10gY9gNHps#dnu4`={2NB8*g15egzx@n~Xcbc~0Ve|q_a)5z>(Wav zxXs(piDwRVz8xu4rQOl&dKKppS+48z4l_1J&U0fe?w#&dBs)`s2bdmzu&yNqQ)Or6 zZ(E7mTqKO!GqHu1L<8_|u$;@0Yj|(gTW9s8O+l3yOfKWqnu~(e8X}mtk&z1`|o3i>*G%hI78wRzbII2 zRt=bzneUmdemz~ngVSXY78_n9_WbTv#8O0Xd-P=w78ce&uM~IPc}AnNQ8lJ=KS525 z*Y!zjZBDJX{K>Egj6&1#guolcf_x|{ijcxjcjiK)F6XRSuvpyFqDp1Jb?|wItm%Bi z^iE~MD#JJikF4}J9i|zGs`uYZaM>I@;su5|rcFXbR|o$1c*a;O_6eyWrSY}&BIWnN z2LpRo_^*2Yt)&AZy)SpT&D%cIdem3OgHBzB9T%xAr#6LnQxuo;35&zrh0{*t?&L` z1GtxNQc)tU?|!5>)))8P_|i5j#$R+&WM!^?9t!;lNMW?HJxCK$FmRU|8(qslp>qNZGAi7XAax7NrM4X3N{I0aa zN=$~iUN=7!=m8>uf(%gZ6v!G;d!*4RcDLyY{2m*27{1?R#S!B=Zp?DD3+0@1&B<~l z8i0zMo_1!6ZPmm$Ibt{N6!8|-xmn{XCVVOSw27gZFCR+G|Cop`p_~8$naa&YEM~|R zGMcyNcU6gcLpv86Ii)Ulrxk=Zcg3^$vgn{rvJ<_r*Pag!j@QgZoTgt3OyyP@@`(i; zuy|jAn}i1C`Q{1k;IMbE8*X9k1v{?*X&xpHlnuGYSBHNao4EF zqenCYGo@R9o9X{3H8uvwki@3A?GrsQaP%al2HA)2b0?<9YSfweg9et>5sp5QlNd5FSR}*!y>E%vDMn;yBv=GCR?)jqp2EM$7d6_Vh zAlLz=S^uU1m9!we?f`)-!<7=M^Outdi}GbWb}?w-x2XBYcaVbp^&vhVR)mKD&22UE zAWO}D?Zn@cnd}p#SidhV2Zx8#9VDyWA5OwjYuP5#IZ=8d9l*P#IoCOAFC1q~pB^$U zYi-A<94~%p3qM~s@)cxgW(0YjDp_?|yvP5} zEdAfE>)&e<#GgAl)`7$2^?Lruc7E60x}7;uXS+ivxGi2;dEZW#G(ihTeM)SW!D=;3 zN!x8we}A%pghG+XiUcZU$o*@v($7=`hV}Sy^NkF3(&Z=OQ+mq)OtUs)F<>y3^OA1& z5xNTrg;Isi_<)x@*ZFB+=tb=I7I)><2rxC%0n9{YaN(L5W8BC96uyqBJ!_d?aM@eW z7SgocEL$wj9M;)y8q%<bi%vfjzx;3|h zH{6?+PsUYC(H0InVbniFlb`0Ky&kJKT;J+QuK_&?a!p#?nLa@F=092^w*XGGlCh4? zM-!|54VTRjX@RG2#-i8#$u<+lU8+?YQES$1l6M|-PvfVy?NT!P7=w4#KjI!zO?jfI z5JAsu!qqf8&)eA3oz5C#*pFGFf{xNIrc7twjqJx(nLLc1ZvZFvDJ|FCTq@HZjmIGz zs~l^d537q)UQBLp_|K`&0f>oZf zT7`zY7`Og`z1R~v8|xX_+kzW50hsOUae*6dn(YSSbh1caPkha8>=2vInAck`4xQF* zHiO9J`e8en{YZ*6Z{Ceh6IKir_}oQS4)n;vpb@%PFzm)Ct)`7ydK?%}WVD4HKm(CDB;;Gkg1f z>U8XF2De&*?89~;h~eA8SyPpwU;i`7%TBy1i_bf7$r}1?&JyQ#R`X9Q$OYWQo)z6= zzpg&P>LIPdc9Ucdb&Azd7for__o4#|z{w--`vEMJ=FAR+t#<*?zFErW{d1$<=b~_b zSY{O2irRQQQOSynlV8~s*g`^08?SY^Tbl}}R8I~5**85wK-IyuX2I%@CGetF8 zJYT?*<$YyaZR8G0anlr(4!>RKaFMm`dZA{8>C1ec`>h%Jw&4PVd;gK?hf1A6#KE!3 z8O8_jv#dM(Id0-{d%e-ZyPfs8$t3ZT#R5;;eS?k3^6N_so?VNuy1-VsvLw>|^{Z~K zdBe}YYRJZ_FMQ?`xO?7!jVn&)Gh6uM#=`lNIm15i-^$GbL6F}~XO;dXZaDZ?3pZH_ ziT=0e+qmp(Yo^nNj?gbE%>RVgSXz*;4DjSCw>6?#qu)9&M-KIlV#0iOKf~x?ims2d zToLA?RWwCi5_Fz+%P&TjOD!k4Y{u8D07=>&^!L|C!IgSrXmitIe=wQmu*n8to!f^O zi-Mph-s8EAV&xx9zt-WED^&6bSHNwMP-)b{izpADZz4T`!qD9>5{b0BIwztoFW69B zvrIh`v-iX>2^U)I@gCxwJQ z=6;OZ2f!6(qUX>g>=3`~f{sRFF#fJLmTX|^Gf2k+eE=S&R9}C}YI}n(C#SnDLcqv~ zR904Ivb%_*`@78xbt;YVht*p1P_6#J)v{sC!A&KFn9khaxzNAx8764>)QvTzaTq5A zM%CI;Cg<X?I_2BW#;v5&Snsicf<3oXsziYP?Dwt z{{1CKf869HZ`?>7dwVA9we2W78N#pJ^>F3rz{%<3WxmB`4Z|-R|C0n|OmwqtK7n8# zpVgaGr{`9*cXR8_!7Th=U_m&9Pe=&Vy8GGWY^!IB)lbWDRXO2*VT2oz+*z`VOWmTt z$xlu4G4j#TNxF`ak%)>H@4D%Ps}yQQ)S`(*mW#W-J^};3sH?JZ$r##ec+y4teoNwA zPM3@Ra1_cq(e)KZhB=rJSQr>21?@4lJwpQnPt1+_?om$}OP%C8ajNIjMXOkT9hUKt z#1x1?HQOsROiajjFUH^Z@hZ8!zI;MS;T&bu?1N{vRF}`|AWZ78`aZb{u1mDsceZ9JaXm-ldb zkQ>HPiQ96~pRKr<3~+i@E>~j7@!vn!JGUKgI;f4*s4vdR@dpXx;>G;Wu1D*FTJrXq zdSr1pc>=7~N^p9Zm(oAI%YVRVZ&);6UDr_;z8>4tPVWe!mSpji{9=M>L=cB+ri*%a z61kX*{;cKmq{RdQzl)D0*KO@O5yZvA!P3tb9hbBVS8mmRCo^o_@VQI#pQqMW?~hvn zuWhwC+l*QP|GPUwLA`NxvxJo}5Z2W(t&?+3T&kJ-nghB_nlqDSxX&pfh1kGkk^6Y-4ivN8u4QO=PT4#k8xANb4m5dmu z*fz#fw2QZ8?e&93%-_=fCG=<3^3itCMTS+-{S&sYpdD~CIzCKIPip5fWP_&)C=5xh6 z4{J880O(=H4ezH%tAM22n1*YW;S<}5mBzQ5cBfT`mPpNM-5MXaht-pvChj96VF3XU zL?ooR0aY|uIY~*v^pn}#P%*qfw$H=oAOgYQr&Yb%I-X{2k={#-{y+%V!!%PV%`~Hf zxBBCvzje`e5S+}7*Wiy*tr0$cfQh-7o*q7kF&#R-s3A8({8X>2&RPM+owz5T@Bb_X zM!S5F?Bf1y@oNqvtrKT^r3~)*7rGMIW|~P#fnw;tY6X6KXkR6FKXJ-;4X1*F0t759 z3*e@@1(13T?xWjE58L>C4_y|~+_(}J_uOHy_}Xl4!`?dUVV!y}`F6?T9%Janc%soA z-3HL}azZ&cIGC%`<=%Rf?P0rWUPADRFE?G^VTi0J_Jg=vTrqHD?!C+>P3MRR3FVr8 zDZhO#zUzLRsOMn1{l&}edQ=Ma$RPwIWWGjVU|{}dXeLuEj%*WchGD_0vC6CpAh|tV ztQx>D&GZ9*;!dqJ3;+XeiI~`NnL%G_JikZ#hu@wQ1RK=&_6x8KnN_3luojC zv!yy6pwsQv_T{*wKr)3UxY2r}9i`{(21=zyCrYE~7sk>}MRoglW5_e9bh^=9{M*Cn z5?qyL3(Go>4m=kwKEX3yzN z_NQ9_Z=KZ|OTg5MX--r+vqgHl<$5DRgUPf&)ABDpu2ZXTr|jNuu2kyvpwj6~{2##g zDWkFBD6H!dJfBpD6+?qMAn%(pEfMF=cqG&Qqi>#(lldi0v}}4h@Y^srf~!N zmNtULZ&eI#mSlI|eryeV9ZPHT;S^ct`XcL1|6P8km$RjL#EaG^5?LHdOm?s|M20^p zT>I*IkX?<-iE35r@k{d=nv1Nt56!pENpWN_xGBZft*Bkc-R;4i);)SP3#<2+d%K+= zG)xfp=Yy2jY|&3_GT5}F6M@U^o@=)^{PgQgby%WHe*o;0f@ULDxH`dRwXuw#g|_Q1 z-u&m-QLo=On7Cr6*Y4K~M(g9($IFom?Bp(Ki6^N2fT^SP_)Z zNHos%oGfqJ{U&k!$^q_`KYd$4=6GU~eu6(-bLwte6KtW=cPWsvS1g7!U}ugO$*Ff zFK^l|)?B&&8<>T|d^I*B5TzHKCJ}Nc2$vM>w}s-9RQ0&3*c_FkA|vl$Qq#Dp?I=Y) zIS{g+_F17jDr;o9%-0~fJQuvsSv_E0TFSm@(S7-$!rYJ6BQspE1S^#I=h%CQj_dVq zuM|5iJjTH<7?Wo5A>_UwQ9> zK6;}=UA5-UP?^pHuAq=RI`kGG*}xVa7JvuX!Z>K2X~s)v*%~fd4kNtwsStj-k~Xx* zGeji1JP3$WM@uBQzp|GsPHsI%@L??5Q*wM+@Wb<_dg?Uyn<2SnM6yP4SOOQB$<+!}<&-lBtK? zWh6PonYxhCm#y9DYA?1tZ=;UC0pA~W6Be7TH23&>#X*|=5|A5v=Z3PYUwPlI0qc+~#*--d0bjs4>qNQ!DEEee17Wj<)P6>I{}&$% zhx5tEDi{7zP9wCnga-$Q{<4AMa<;rfRE{l&VF58l^)bQBDjgmX!MMMn-H@2*>Pdw# zr^(DRb9{^e4g-TgIRh(I;Q*69Xa`R*$ssoS62!W_LZaEXaD{P9Zg9c=XDo zP$W!8<^x|w-W%&%j(GNZ;O9xXRQo(&8l`m(j^lCjTg7c|fhvIC-X35%N;!pNdVAo) zWu#LUkoIPqB>tv;A7F$5(3^u@;30L%>)tS4aqysu^bfdkU)xTYs*&!7w%?^4Agh_M zt+uRg4VbUexor=@GTY!754QcOZ0-<+6F4L7eNsO8wyoK`KMs z15La|m4lSdMXG9?SoL!FNrkMc91uuUj zPv~9byve0dYX)!meBdl;yJUqO*`%2NotYu~<%{r*dB_u$zeJORG_p8sn^1EHk*`Cy zb_x-&5kpc7n=N%45lQS$!($Q#x}Vz@rutPQrPO*cQV1{l4x|jFUpk=~d#`rQ%`v)B znBp2ikhci7@L|ZA;KEaOCV5}-O#Zq-t*@w(fXWMP$Lgu2;MY9a6b$d%f=Uh>yUpq#t1;^5? z;^pX(C?=Fwi}gn2|Do!w zz0XkI_&e_u-|?WVAr*C3YMFke^`qlt>E{Wx@x2}eHhC_u@}olM$6tk+Y&OSMw6sWg zPj?3_E6on&lsj?IB=o%;k1lck%qJ*Xwt}8lR=LrcNGKJpXJILz?2kbDABFq26O<3D zHK@QJf}9K!V}ykOe|!g)yBHC;)-t?oxc)6Db~M&gBj}W0NDFJfLjvsu&rV89xqEc7 z>Ky>1s39NW@``x`(JNtTR>npx^nWKUd6Y=o3>EGED8@VMd&Pa= z3pRNALHn8V9oB&>vG7K!GwXV~FYEp}>FLGr4yDf}O1kHa=8eO6nS@ws%;}Jsshw<6 zW@dt!4o9zeQbr?(dbym6QNb}58zjAEa#Guq`i&)->YTdNVhRfDbnY6x_xrUtc|4)Y zH+OXv0f6pKDwNHogMPrr)M&O^h!?WasFrwl6CEQM2(cj;^Z+6n$0FG zhVq3AGdj?B%( zX@_!W-715ixz;GGuyiB6wpq^O5&3K9=JtuBC5X%a$32gFfJNIaGs#f3-euS@cFJd=oAvCv8^!YDRx%vE~{ zS;=CNt+)OZ5`NPt#}cxxk}VQTXxU-abbPZ4b2a$6S)~3IrdA&#Xi4P2O~eX|Jc#!* zEIn9ngaW%g1JfZ2plr?WYXiu46k4*7j@C;em87E(K9=Lx3L2O?H-Iq>?}1F7FCQM0 ztD@@!1G1KBnkjyCHs=QU+4A}4P9%4Ws$(8RCt8w}D0J|s;9%2#!xT@X`F21mALVVhISs*WL*El{2mTC6u|{bbhzLB38(e%NUTFZ+k8Fy)CRI zlPDA(+bA;M6-qtfridA+p(uqh0fm=650@bvFc?q&NhSu z)!aAn%DXEBL#@UnaxNw^t#`~i)8G9F-ouG?hesQXjMXTgajTB2F;j-z+>+UqaLG_A zpCscx9R!ymsn+Ka4aE@`E&cJ>-^3C`R&=VKCkbMV0W z-Jl*j*-#vG1Jyv?X5wdq0@st?&J4-Rqu-y%5)bkFp- zbjEPa1BeN1L*pL(`62-Pc^wT36<(er5X{9}G9} zny1gbPdSh5oGf+zLa}TzfH~m?Mio5LA`;1*jlgenfzG0L>QLB`t$*@(oft{ceY|k;a~0) z23jM_wp@OLz%;B$fnf)4fM#z3djw+axZxMEQ)^)9N89$o2;x1JM+sqOmm>?X(M%Q% zwWI+qiLMH9^O~`bA#=0pz0HApKMq{>DdV*V;#M-m&RIj?wtov(q3PTB>v)?%!E{3% zW40);SM!A9uVncD?nfiK;+c+CU-2>)ivI)S{%!X?2iR6PZ3Z~jlHyq=?&?8#X7D4* z-(CP5|6o9W7!0ylr|-EQBu&_R?(K+b5z$uboVsl?+=ZgimExXN^{_HkVEqqP{y1KeVsFkRk~d3m=TC2JY<+i2Q^o#X5S_%!K%#6c z*7*AsZY4OzrgUz5ih7%+u=zSm!=4EIo0aD$(=TjG+pH`<-bVFbhtty1Zd7zU!L0Bt zm#DHNy!-lkZf>q!wM1RC6_5ns5D+LC8HZZ4_}{%7*sbBs5Dlz>=Z%N2M_~XvWiEKk zT2k)FZ8XVUC)b$s-yv)d_w_*?sFiE+tawh8p*6^B>T2SWC@U$Q0PrQ%@b+wLtj<#P zy!<{08FwA1YCf*Cd!GVqdjkN5Y*mG|3Y8?0E`=jnbrk)wu+6;uTyw`2h!@Mh@Us5n1=`N`o@O0 zQIfqZB?gr`SFfKiX{Vf=T(|f2()Sv$AfdFh^w9BOZ!1+75U_xe=h=Fj?!KMUxEUvN zGA2oy;$@S;-_W(B9UN+!>V+qpI{9b1yMTSTBa?IZ>i%l}S!xdOZT&Rp4x6nu4yO-r z$9r&|cPNwJ)?fC0x<$a%cETX>zWB@@+j(vT9*)0wzN(AvmkxS6tP~` z$O_*x8ht zIGeq;e`zRpf`PY<*v+PFB=M;9{1Zbtcan5htt|_4;MaXDnKpqLS zm?};QtIm>(^|j&ij+B?kjE^s7{dOCG=-%nIyd5IyEM8U&=JFff|=8 z)Az}}_3>(H85)Q%K}VtY&#e>Iya zCkDjiaDW)=1Iu(sR1{~D%|N~F3JFlMaz64i?VbldC} zvY$2^@($a0UQBjlecfvVeW3ws!dv=Yk*PkFJ~|)*WvoGUzE*cXtJxBlt*e-n{0K2L zqN_cU5QD`!+I$gDWNmHs;U0pBwUn4Ic*>wcrgW^XZVtZUag3q1E}JdJ{+-8!BD=zj zg+k=?p|An^Qj4`{7I zat33I;DEugmqE?#j)5+^hY{zh1*@0kEovrUz;qqL&?woLUonD3BfC0OzO(2E=8((` zubay|rxRbHJU(x)W$Abrrxc&n0=VU%pukIIzXM<^))@c{6i5qQPAYpl03h@dk^EY_ zhUi}3x6PpY^-5jjPOLNa2vFCt@4XRvs4N8Z&+QuTdzWZg7`I?FVvF&v$fZKD#U%mY zWy71wbvxQwp2`}Q*_^3xxK_Ms3YE4#WlEB`cPZD)s)M_6bq_IEV8H;<;y2B3PErWI zM8|~0O2bex=pd1t8oW0KIM+g#db;`yp>69}pFDuy@{Fa3cLYuYcV;-P`8QgeuOHam zDtDqu1o-)InLq3;n2cOJOxKl|YPGmzu7J7!u)Fu6gR_#g_UEV#(?W4|c2iir8fi5L zbf}!4KkZk`t>aJkw-MqJ9jafA^=49&dT-t~Y4L!!`{U(O%ics^EmH0N%hW;A(ID1_ zR>vMKUfH2o^B(a1cv+qH0_%eZYph0cUZ&$pM;fBUL95OM+-f9#Bv{YP*Lxfv z%aoao8<;b`pPtumjECQovvJ!Zw=soZo`&6p)tDp91YqkisHZDu_WrpH_3x8i3X1Oa z`hHcY8)8y7uw{{~P?dRuUWvztfv^IrDB2w}6g;p7Zt&kM>PvL@5@C_L6wFsXkl@->2X)_?k6tRgz#l5-Ok@z->m~S*&1lF*BN5e~_ z-~94;sii^P6Ktt*CmBT)3czkMW@fY*Eyqapcm+VG_Cy0#BG%(0wx7{20KKugh8WU* z&s^Se%uGJNio<_FYhgy#lky4v67|(9XpLMHo^n;k+ zy7os{MX{?Y5s;22x^tF4F`i(H3o0|7cgE>R?$>DAy@_!?8@6eLMv7yOgoQiLFU*Si zv{wTNUJ=a^>jqR4#D#ygJU8=SaW#Drk%;|l1R9Yqr)+%fnU45i zNWBJ~ikO+cCHC~geqa=F*MM=`bw@lxWsM_JD|IQ z2|wKAIbvQL0t!KZh!1*v^%9?1f}Z!7%`IXT`I1`cyrp}iFNu{-y}4AX5I<`*cR?%6 zyZG3`wccz>yS8{PwM=XvB{2T}=RQKbyJm1M&-Wka^FqU8Ynx8v=|_k#{0MegC`rpd z7JJDdaow86v^74OqYiRDbd3MZWeIR_v%V=lJyUpbvOS^BM8<CHr1t8q!c9F+gw`5*Jw7>P7~o*JuM04BH;n?xbZv zVlJWJrGrC2JSvfx-63eSz?v{2irG2|&FkrQM}l^P2@OY;G;LXX}cT$4~ zh~pTW8>hx)BNm}cA$LZ(k-UtYh^QCEID7h%OFl0R6Z@lI7cCjjSC`n!;Fyr=qOVQg z$ouZsugN%=CWczsdFZI#!YY*czfa*-m?Mn#zMqI7!E_xn8<_wOJ?)@{HeasJJBu>m zp^?$V!n`71&=ka~&TB)-9Qr^797a8umJ}No*wuC)8>)A)HwU}6E|>ii3U2eddqu6d z^edH3`fC5c5SwcO6usO(j_TD$Nf4&2XRY_UPzJ7a!&L&u-~8;*}@8D+65<6sh> z4lH*%tIBS7#Al4(DA6tvNwA%6d4PaQVC2$a%GZeH)8=t0OF)Z9M_axh9H_ZOgz*01 zX#oPT389FuI$Ael&CZrs3e{leqYPeGHp?TPPGPV>aF*}g-0r<_4}w+zxDDD$?-u3C z?9?bj$77GWrUGham%WljzYh~LgUnc_yGqyPNtfM*NU3`k6vJemGJfruCj_QpP3A}W zDcX$n%2#7OepBZN+ZNgbA0FxUO*~R4T}q6Z^Yfz_yBBw{69oQ^08HyvZ0(BkjCN1_ zH$oJ)n`nR8yuX|~{mVaw6PGZ4<^(kF*4FldNGBVS@syDyb*qs9gjlzJtJ4ytxIZp{kySpou zjvEB`OZnSxhwrpc#zR^Z3qR3Y=?Wky2;9PO+AR5lJTgw!m7^)jBj{eEbQes?oQ#y5 z;XjgF)RTtvW_qE^757RN5{6_8Fq|$Ef;W1a8N-y>>3wI7)SlLl2Ld{7;K5 zA#^NhS4KU0HzE4FqqRv^HZ{oLH@;BM<&l!(<-@ynPuh4cgZXq!j~98QLccpolrR#x zkt?ii!#>)gc4r#3{31?@r%}^2X{i)23J}mlv6ynhz@2XD%4CxuBMgex-FS1y9KH4XZ8xioa|F6lqz^ zHmsXe0eK6>W5rGnQX^BImLboh)gs_9tm%;ZXSh?up`_uhEL?sj9fuuJ)ND55uS47vTeU-7q?rzZ4=+Cxt_-!iZ$JhGD-nri|lbxPp7 zBUn4yCoeE$EOd;UkI`qUj5GcUW4ufvwh4+ct;7R?2+9DfHaXz`CFH zrS67edk%Ei1cBy49l`RZOHsH&5BSNM({I6xYJ^p)@;#%-%?3+D(nXFI zw)|Hks*OH+TtoO=1g1LduMV($KHfz6e$M~Q_3+*pL*7=CFut8A=qUhK?>tihov;aa zV#iv%#D%HK^%BM2{xC#H6(V}jjQ#%UJbBc2bm``%uw%5s(lap6rkmsI!O!biA^Xde zqe{Dh=v}*cvWT=QlE;M^HWesle7b)BB&6~|D|*;0sd9#dm5)AM3&*IH-ls-ite1&} zhSj2UddBCm z5Hv{eD6H-h!|XO5rhtE}LrQb%;zgN;u^z!b^8OxYG-zd-+_miT)BiZcs*zasEE5Dr z5$)~nF%EOU_ei$BS?UbmH+!WE1$pbe+2{#xP$i|ZzesZ0^beuL)ImZ+n6V?R7aCGf z?Mg|W4Vig+kQJc5iT#dUvtJz3tTT_|D48~REGG^LiR^6u(EC`bzd+J>w@%L8W@w1A zJB4i=)X1JkO=~cE!ezhk6&93eQFzfvsA+8APtHe)eS{$Bw@}^+wPh4B>baU|7K~eE zx}cI*njWNVLm1?fk%r&YzSF1SrND?&?n5*+KP8s7?XT8mh2&y8A68$zX=m$EJeHDJ zPdX!T`U*Z{j<~cl^{dQ@buZ!jW?xtQMYwG5YaQ+qYX+n7EFCctMD7m1kLM;o!I2fK z7gwmLPuiYWl7wE#EPG(FSc!i`Q9Ds`;c5${65sAJWd02%|9W>RIO)uzgSEv|{vCL` zhgr~rmg5o4jqHZFKWfu>`s1oq9C;?y;lr$6KV9^z{8*=RL)de6yXtRnX{3Z!1hn*} zEkK%NG8WkJSUWU?+nb!J4WMGfj6}0YX*F7o|G~9YIEywr0*IcEE4lxLhRUxz0KW&EVWSu&UqwLlem zW`#d0PT6-_5byr&eb-M+7%Bx92N;6h{wAZXQ3^V`w^N=W@cNtgE~USn3%NRXAvF5B z`_L(|$;EbSErExJj0qL!dk2+o4wr%on2IU5C+R0C<1s{nr_&Da5|N>MRYbcsUOk_k zJsI*5cCTpHAL3;zlQcn1AOp(~oe1IyQlDwY^LM$6?%OSWg8m|wB?jA#^H1!XQ)Lqs zvVvxhmvfdSGk_s&N?p*{WR2vQZY&Z?qgoubJFsNjvUo7|zUzYH} z$oes5Wa+NyjsJgm2NWq>74NEv$H!PsE%PZ3b?J&GS7UAfu@v*Wkc_H$U5H&eb<$ZN zta&xNCEllxp`Pl(A)9jX87egqEtyjrf@fbX$k%?NjTLn3l+NmQT!%IOaTTp7m#Z?K zB3is(H)*}^3CDBW#xKHbL+!-)Eb-C8f|K`}k90+DA=tCTJF=o+kU@(I4uPlK)}>BU zPq9)x9$X7`iY~QO_o`osHn{7E;k1TGM)g<3+1G=O2~Xdi%*S;>TKkszvfnkn(3kIe z^qy+7SPO>A@GeJ*xodiVg-FE^dr%U|hzdjLS|-<2X&7~DsGUt;&o;}kNzc|g@I3u! z!y;E=L488(6COqhgaN`bU%hURqGuELQ6f|-w4l_pe@>7*#q8AqBr5?A&Wx!(5bSLP z>pkP+ZnfdPr}Nu#!?FJ^|8{WJ(#7Ly@!9Nh8&_A+T{3lBH>s`OnSNJIQ76qLS|S>k zQa4?zB_Pt3)O+u#x*hI+_3{hiJ(BUvp=j}`lxsz_P8*kK1%)AJdQsUF z&VCYFsl!T6Lh8jAReX+0=74lYftNA`pw}%rUI!p#89Uvy_kqRBBoUv}{@6-nD5;0U zs20mTd!rQ4aCB}4W&PCnMRpiP$5KA=te4RGJKw>MqWww2=v%vR0}g8CP59>@_Sr-l zD#)FX!Tt3n_^HUdggoup_6GQ=w3xRYNT;lO+x!d@0l%@Z9QG+_|=+S{*$BPLbi4b>SNpJ-dyulEF&qta0^oVtIp^MB!;Pf#$uRzUCKcYl`j z0ib0|6yusTk52c2=i}m-K(+tUUbXum3i&;sap5iAoF9#{){&uM$yyl0=GXUU#RM7< z9(-X#h8?)|hO*AzTZG0nKV*&Uu`+hg%$8fJ2a;Z&ZlCHc#qs1p!afX1ym zdx73w^OD(A6?@LOtKMC;+njg9o45w1KT)-GwKiIs`$MX8uMB)2R36xGbq|LlgzsI3 zyMK3Jv(^z%mVd(6UC6+c+2%@Cd+YLtmqO3?4Ifu2D8ZZ^L!~OSm4^)Z8qJF!*Tg5- zV`{MP3~s5i+~`T8_G=g@mRu2&vy`tosU+dA12h{ky$JCwpL+u+CgwEbSlXmPqd8;e zN3?XGY9F6kN9=WT*8ES{=7D>&CZspUjeLw;Bd06W)0mtkE8ewKE5xq5j^%`T$T?hv zZ}qM+FLiM9Cb%tRd=89PnM=rcTm=V(kq2}Y(;WABJ6X_@TWgx08oMh}zMoyncUDIt znSBv+O%v+$#nkZrnB50RBRZQg#iD-^JTPmTz=bVYFHf(uZhzFtQqmA~4=O$*xlUrz z_%Sovs7oHNs?!r|6kmC|fkriIgLxE-1l8hOl4w6ppGMh#$FmowE5)zNAhB$-Ne$?+ zj>(e5X!=f@bcZrr-%2SbWIqlc=*pTqSjX)NfK-#m4nUeD6JXEiu<&gLS}D!gU<3cta45JzlY zv#-2-DMRl8gNz4etxDR<=lFy;s>BbNVRUP2n2I20fkM9k zUBv~mjB0bJQDZW!bu>p_p|0IvLp+eg#84qO%;s*;B|fZLEqJ>b?{+n3it27kz_f=# zb(PkY-Uc{-+2_Upe0r{eTVT)T1i;xS^ps=XRuVQ#d^H-_{Chp4rd)&F_&=m*o`(1ivEIggbRFxp5 z^)eWJxX=gX+M-P@VB?G=S3)T-bDqK=kL6Z(n!B8EW;V+{LQX577rX_&I-__U1(sTprn-Jelh?N zc#R8uPTS=}$4~`@>yTwA@=Kb2qV9fBj4SI?nxayYBzM`E?cW)9brkU}vU_0*iS~BH zeVT0ags2{Z`ZgV!ef`FE9oB57CNnCE4!~30ISA zYoGn|-)=Q20qt4^B@#F{HWG4 z#&z5OPy=F2eR-Owk^TR8NTg@WxeAe5V_CJdIPFm+?LoJr9yZE*0}9{nbQ$3b_HR8K zVCcEb*x|IZg(^>b2CQzQfSd5V)R0$Topn_{NBgsepbt7!qp03YrzI{Axlc}DN zg6f_ApJ4q}kiTBWr)1_x08`2^2uAVY%qZr zVm+8cYeYP_AZ|i0@4U#-+`rF>;%^K)=YWqhN-mq}<_!T+T9W#9hjw!*3vNkP>wU+q zof$Ntg7`G-!?>;D6B#RcE$fjQ$syFSDl{Fr^n>(^s=6fy*?0HxMzMq8t9OIYJA$cq_cMc$8DFJmUy(8lnmLY0Wu|>fogg}VQ)9J&lciI9HPMOr z1FVsljv4*1u$1Xl*9RG;G;a1Kx!s)dvKeg_=u zxOmsT$}xWdDljnc{0+z<>7hH40TgyrKr4nQ;%uBx-(BAiwvs5+1Gb*eIg;?DwP;Ne z5%M%fgEz^ivh>ABu*K6au8&?sXa}_pp(DdDXZD|m&b9_o^$Q9Kxnd2;VvP||k-Jg3 z7WEj{6$CC5LOp>zz_8_fBh4dVyawfb43Egq3>6DTVP!te&z0E#bgAD!OnCUa`OqK; zbr)|jZM*H{H*$5#;(2w`q8cSw?nJ5>zj04nq*GRK5LF9kr7RImf+`PVXUMlx;L(*! zCOiPwl}pOj;YY7bWbIYp2obPRl6nI(ohXvEfhKtOvJ3+2wW0$CBKo&Y*)?2MLS$Az z6@z>)6(x5fR{B1yh^HOYZ+J<3T*d87YNP!+O{jzSzV|$J?LESj3t2DpERbm(B9JMc z7=m2uZ``7-QHLk5PNEfVZ(bh$xfYTaX_&aD?6Lf%pI91E2lL4Bgga?Ajqhxkpr50$ zh7S*fxoB>t{ELd=fr*mv@ug_9(Y3IwZ95{lb zbG6e2JY(+1r|KFlF4l%0clb6`%eBl?KMisxH-8R3*lG&SXr8XnwH@F4q`-54U1!vf z89>ODMd>5Eqv76spsbM7Ium(GIaWyMCDK`M2&`SfCyq*f2YdKnH1YJDuADcFIw&73 zy7~jsO}WqQtOX%lwA6T3qz23vGJm&jbpD8M!?y%*<%7uVlBBlc1`l%3o6j%@*~{NI zzmBI>*a`|^lwS&>dkU%ER5g8edp;1wp%JSS-R9>eM6f1;oHo>&^-x*K@%r(ECyPd$ zAhLW#E4(~HWS#us^vPDI4ys1gwm0gPOcfI=DnpLg=ua@d=*4Z685-eB6BJNrxN!dy z^0s5tW@1IuMz0X}Cay_5Z@IE7LV-OcPy4e#1<0vf{kkEQJriz4H)~3N2DEVSo5-5) z<~5H^PA|ye@Q1Lx@jB@C=3wLaCY^2--V?>b`C3xyZ=&!M1$DgT3jCk+j=TBwq-jK9#uQ3;OWBIyLV7fJr6z#sF4Y5n!W_>-Bu zxfAgucK5J~;9_;)zJ(D$%bY!2CRyzt*G^;V#;IKQ#;vrDTN6av;CspsyZ7I&53}Vh zZhcPb+_xi@`%T`yxHWgDj-jzEy{ZlujWPrl4u1xgd2{|+H|sW3xBpvM>3#vel+BC` z$WK9PY&&aJR&vnFTiT#56P+4+_Jq^C9MgLf#6c9{8l2%sYHvuC+>QG>QJxW$aml2J z)h*d1e+}$_WI?V=?lv8R%C(g`qAwfDL--zZkp?iMaR(z-l2V&H`!Y5eb39B~r~0-g zHhjHSxb7aD7~6IxO*sa-fT$cRN@`}7W$_6$@ivUEjS0noY8X-fQ8ZsZuKsVrr!B+x zEs8f*6+R9JWa@TwQN;2Tm~Z%k!$(^_=OhfH#3vbkzcw=^~Kx;e&oR6 zb<#*m)MlPh0&=)$fPA6hm+w|^DZ1Xg-*PPtcfA8DeK#=ks32JVWHQ3NFX#(89ZvP;ePv!)PNOv~%MTr8dAX0}7>esYS}U0b6^m8- z_u*~i8vkaNf$2vIE(+hh;j+JPfU~R3{AgYZw_1KZGd9s!kbZAZO8S%Nk5*cr_|}ek zkM2()QA24ULa`Ft&25gBdC{;vGlbW{hy>MYvaf#4=K^8O-~%3QaV;O(>bCfh^y&*8t}#D+sZQFn-GE(k z+0MsEs2SsJbZ1B3O%faJI>egkL$QttUdqYRpF{o1lN^fPFVi&86sSG>MrIuI|E(Wy zAQ;>dd~Mtnb<)e#Z#`9?BeS9Gqm!?jnRQ!m2)lxS8&}AwJpJ3T%(IMu1B0S>mS8Hj z))e-N@g5dmx`jB8TPa?z|19j6u3jH9smK+nVd>AS?IFw0)G76(41XvasA^8H%)Tgw zC+Kf@Nyh&O%931)&U(@?D7PYDaTv*X&1<}+8~iz2w-*f>0?~giAO7*)nw~9VIM%x( z*-#aON&4mK$Aot8%6i**p?TP{Y3S<85*DnSJfVvn#A({=uG#x%>cCreM>AF|e}|#y zzwG>rgYkw5a%gWHn3$LuR(o@4fPpGO=89sNZY7_5OdJuT5Y*=!Ia^%)Bmjj!r{1@$ z^NPC?(>zoYL#cUOq!J-Ga8Q0NZ=J^<7Cz2A?)FBTFE;g9r0F#_20ji|z}qn^#+$iW zN}JmhM6sso&wZGxPbVREx!-f7PdzK2g=q%56XLG}P06YFwWdEI7=o<9P#CNQl|!|# zeXkKQaG#+L=j)06_45@43u^VB3my(-59h0pp~*4mh>7W!Uy+E5@6vejxbDwpymFgq z;@X{jW9u|PKl9kqA3DYU@=WNXuX>pyJ&TR(O{BN1U)b`vhQKZMu-ax{*r(@=MDw?} znl|h_8E={iwX&ChwMjiQvuGgb{$em#fHl!4?U=M;=Km&{z!!YWS3fW!D|y#$9b8-E zxJ@f1=WF22b_<~P@2JqM%gnY@g4s2 z%|igVQr}d)_5RQO?o4}Z<74keKr(4>e3ql>9P2p9lo0Tfq6+; zFNHAZk&h0>x%kCN8|4ev>hlHRYi%CCp*7!2E*7Zq_HYOFfIa2z=+6Li_6a6^lR)Z$ z#jQV?q;OGO-|~C`GhY!<(Gqakq_fPq9&GUp)^=)3BwcJx6e>sp+x;qKnqG!4MSg%` zm9)Bpk{-90&zuyUc-Y>bT~M#}%jZpN^V<$KX4>zW|4ki$#A&$6$->t^XyRlZx?r^D z@qS$Sin1?0NO3RkkEj^PwJx}?WbK<#ZnGcM921c`VxN?libOM_2?fX40jF<>r~ds7 zK9*qDmMas8Hp@3iq2uPYDo3*Oh--)6hge-+YkuaYOKc$Vpn!M2T*6(UYU#z{%2RC| zdGU1VIOYz*ZoCe#J=vlqUE3Z6_x$!1l)QuPWfd}C_(VlLfG8%as7NMA_=w_yzzJee zF5LLFuzqqJXij5&42En3>&u)Bb|JaBPD))^ub>;!+Tt*@&*&~}j#p58%nsCC346=% zwE!^z9d2=RY$@+yeaT%u&`~B~XCxyWATmhExXfMmkPb)*??RKq)~6S5%+1N4H=SN6 z^wqvYoBi>p*DJmoS@h3%aZiA0M;|Z&OC`7e@NWhZ$x);}H=V9>-tOL3J_C&t*8I^_ zkQb}x3m|e`@t&CsKXvhrvz8ed%QM)P&DIrKEv@k*w1qRG&PZ6x^L`c>%|);q<^a(b zLQP~aPse!Bet*e0{cla7#f9m%ad-8wv5!rT5@0`v8jwg3eHfRPT55pL-29TKViPes zz{Z!A!Ce21QEvhhjs_y!+{i20Yb&94i%1Tpf3=9sV$2orIwkzX$Y45JXrqbs`lq>b zZ};QSpiMV+#Y%Kt8djA{XGP=D7S~vTNNLrD>+bZc8z&yoSD{l3xcyRVA{UTFnDi;L z@f_F@5k~%=DILU?#vX*%=B9lK#!yS;UQn(p9vB0CRN@&X+KL|LMbh^>6~FLKJ7LW* zHG8yN4@Y5#g?^A>;YO8)PFCc61dS}dEmN8LCr$$Lje-KY-?~C10IO>x$AU^o(mCL9 zoR@JV0>*Z~n87hA;IlPG^pTZ~xadu}0pi-9b0tvYBXJ&3Sp91%wqvP;n!kKl$6Akc z77U@WN0K$wc9T2c?dKOOl5L-$%(j}V27>Px1IaA5>vEC|rkuJXW6~siIE`C4dcwY| zzY59Yu|Spj^7D6>prZypIGtrShAp1cq(wf}zcmFwhxq|V8fX8U%g^niiEK2D+M?iM z?3&MlWYBBBJTX!egAwOkm_M*%lY2H~t9*R3KN%+6QXl!b+3OX)lpq0N`W_bIdQ;=BX`V5eve)^iHoCb!5RVti8Z5QJ*r$g*uz5Y1r*-HI@ssTtMsv+QobvPBi$8qX6%_e+& zL4s$>+W_GCEyuNDM1x{BWeU{E*f!03G-BhL4K|TLCyQ^Fm20&V@?yiO9AjmgTpNO5 zH%}HE7M+NLiVl)^8acK(>xU2w5YJ8su1=%u4=(5{NW;7lX*zmuhR?Z4ud&YdD_O;} z%z)UxlU2GFA`$Fhi&$~LFT0U;%lGgFwjgm+4|Edz(A_r6n8ex<^#NMb{ep8J*ay)Dl6%6YdG76efN1rNKT)@AH!_2*wz)+fGeIU z3b`oAus@z7)mL0W3qhTWj$ZL44EaTuwh7HqJOkYh3Gm&{3>ZNj1Z+P-znwn3MGlw< z2CXVq{pQ=L%|Sp+;cC^%fq@Ok^RmBAo(HrO(#Mr2#GPx4h(1`&lhf}k*nut8OC*yk0>iLD**4*B6{D0JhRQ2Aa$xZaNY0T={Q>Oh#<%F`3f=7BSafUnlGs{{@t`YQi^%MS~JI3`Z4g%#)i?H(A2nJ%F`UDn#yx9~w)&qr&`mAksTZ$nxdD3e2> zvV8x4qC|&PZz9!JD`6J}{9-*apRk{xegAyuq|8I-s2Vy0IpiLB{ zxqotqvl312-*ZEPu0Fl@F|rF+Uua?1fTx-35zuBtqlmXBLq+JqUM4=wrY?8(wSSXt zJiYo^GU?EaRJ)0BK&9A!#&`MK9CDK0ioX@3P7{*cfht$?pMkI4qn{1!ZXdzq&0b%v zQcpQ-d>n%}o=EUQ&u!fhTfprq5(w2g0zN#=85}77!A=P4hxbAf!cJe66H}Swdw)oJ zQVj9Am`y!mwoVJqeqgFr(&oP(QD}Uu(k@c`#kL*oi|nc(8xM{AG5^#g?)MVK--b{B z2+>#W$6stN=388C)v|0;U*l^LAMqF~_r@?&H58F*2I$P8;lyO{_pSRO&M@!Y& z4Tr(~Wu|{W3gLe7RlFEi7Q1m7+G9D;9d>x+R0dTNM4MK`)zNj^Wm%b!>|jZ>%Jtd; zZYGi59Vu?Yi28cVJ>~V(n1tYyzX#=DZ;mEQZ`){|qp0xW;kC6+1i1YfS#H5O(6pa1 z-LWU%ZS%kvohcxs6!!FH^N~fdN?+zn*Z^pEO?#E5sFR7?E} zu-*Gz;Ia*@tbfRa&egk+x8Iq=&pX?MZ=FAht~f$Kg&p9aR_YNHse~3nyvu({(&~E* zG7*~3QDI@ffsP$aN&8nl1S1D8`Enpv@xJ_WvGG{8THn^~u&VdH?J|F@#nkJUs1S+Q ziAY)?z)Ux$RCPJ>GGYOb^lzYb;^_cGh2F_(=gnrkg0RdZ;G(1E`@Ir^qJGx{y5L%N z`;)$NZ7eNt-~vp7YsDqynAf-05w!E|-qjs)#HR3CSD-({uEJWE*;ihd$hUOi zdsPl2Tw-wlTp!MqnxAy6^hxp4XK3V>%%#T&+o>>VkdrX%U>>}qXhQKf{qef*~C5vmwonAweQ zS>@)lKh8X9zA|t^dwrvt#GMAo$ZzjfnEo^9_uYPde^PAYg4^qU%QUAdIdYr!G4LnC zQ3WG~A*PYGzSsl*CE){A?;q5*8|4UItM}{FIcEkQziHXH-Es&g;v`R5zD7bt$CSit z;9h>bd0y#??)o7Fo#o2~8*uM>THOzdB7#AK{_ZEHw}VlMzm&04t7`uqm1}r|6o_8g z4fBNd_Sq}*S&aOOEKo^3n4VJ|^U5?irYhInnLF0HxAD>9QdnyMYrN{qfpWe&~$@nqbE{Xa2b>BDhuQ0VuER>H9oOY zHLeL!>TOkdfGm~pA5<($n%RR5qSE1qvS?w#$V8Lhm zJ^Mig8H>_Qx*a}fqAwRtD(?4luI z-FELd;;>T_1+u>eaSo;U-whUqDC2x-vc8JuLK*2tSb4t64E z>-MM}t`Mi=EvW7Ef36u6MNt`Tv5d-``8?vhskJeJWJ7}6%dx+xp7|Ja`4K16JMQZ9 zIQ?l>R_oI{Gvn=R#AQvbBldvD{MX|-0u7B@;>xsg>_131#BdJZ1uShP6|FNfCO(wx z<3$ymCE+9^dA+mn)LbFekFB?JaQ$a2{PV`05hsgIKCXoG={Bt&jz~mT^@=7@PY1`E2J1Vi?bNFdrV5aRVm@PF9j% z&3HE*Ce|VC?EL#fb-4c3oEvow>E%ZM-I@Qr+<*U^wZtgm9QJG~@bYAmW!~Tj0!3LU z)z4oP6|fzS+XKJa1sTRBjeg|hg%_0dlc)1)+?RF z!p-xg#8xjWcfx@Rus1_PhSUmp&=(>jZ_99w{6;f>C+v*qc*InR=U|j!Fuo2J?Tnjy ztA_G_16vZ*js-Xi{s5V%NMFD{-~-WcwcV=wW?eCAdFpaKMMK2+ytY-$=(~Vb&n7qm z1|Eg~-8WA@m??@@fbFEz08sf+hlhn#0t(8BmPh7CFay}U;vIfgaj@&!zw-$&Ry8r~2&bo}QjW6rWVk*t&)(l67<-W64@rfHBi*yKHtrBe6iE5x5CeKTSu~*trSVN2txMtRK{Q!v;-0% zF{!CxKsU@BAaP4D$-+HB&ced7DNi(%b!?KNXVa>Ix6CdJ#CfG|IDLM)wM)bNe`I}S zR8-yjwn#Tfw}5m>cS}hLDBa!NF|>4v(j_1u-QC^Y(%m)GkniEC-+!(5`^-A)?0xpV z@3`V?4vt^&1QCRs>@E&3*y_Z~=n9jBB`Th7ogc^;PF3wl-~)pCq*{T$smGM@C3yNrxP(Fvag9BVF*7F57Bw#$41 zkC#)SF)?bQ5Masr0Ew~l#I^@mAcO7(%A~VNSr!9;L`rzmjiuNPu%+OUCheNf;qnyH z!+(m0PyjZT&yT0R4&$Qm>t()=3_Cza2+*;H13E&}h;i(rJkXSqk?p|3h6q31LQiL_ zWZ5p|vYKPs&-_p`xIJ4>0_M1y@Qiw`#6Woq4ek>}JeVts0cce65n}wDd!}q-p4sCH z@(+pCrx0z%V-C+UtyAe= zEr94D0Mio)kKRj{pO*cax8kRW_n6=fZJ89A4>pr#^(WD^6jz1tPg!jTg+=A7pnJMr z=N!rOBzBY=qFc*Jwa}=r9^hLJxgwg~1QZ(kpwR{VWLa9UZ5FGQusn+3kxtVD)--S8 z75HR0&z|@^fV=VwyCMV9Eaj$#kE8NeSt_|db^?#*%PoIhnlF*!8V4qA$4Bq?zNW5% zZR{SLOHK1Po%3s6n4@&t#cH~j3^F%Ap8*bAZcG3yheF69oe6n5l}*icR1VZMHxwy> z7{v(Y?d)|&?Cej2RNm6q0u8&LmOF^kz|0+|EM8HFV0zjK%!9Pr{iBmL*xK@j&R8+& zJvnx3eZ4vjI)3uQT!~IdmlSd7`tRkK$k1*-DCo~QicqayHzz#L58$|@q=Nk~mqu4! zfE=Y|V>Nvi5v-enHlup^s~2gdgs54Ve^aY=^71mu@*CvS$$>;TvxAmF?2`E6v54l%VF&=k5|wKJ=4){%?L*^HP>wOmB{sd%s4Hs z_Dy!0H;t~xg^O;?7Fl6}iQMDf89OI`C`yCv0I-fUrQM=i@8&nC*(QsPx}G7(Um@lt zEzIJgEdM1{+Myg?%oGT3C!TV26lIuKht|_WB`qWKec`5&O^ZzJ*OEHCp6aJvP!lQa z$CjX^S!POufq?*Nf@YpYc8n|tZH>fqFRvr8t(G*euUpCroUt!xzn{n&zb-*sdcN^} z&KF~cU4PMZ(-s~jS)uXal`-%D&|Wju8L}9_e&yRPb)=`eODK0*jbVffW~wWFk$_@jt|JBa$1s4Jo`Pl0|Rc4J%|y=S8*Vxqyxj5+q35NNe<_x=15fV=zabRKmf z9O14n!`%FmoqNk*l{3897cpQ|y|mk3+QDl`F$V*%(i?On0$C3)F=>07SM!Y)BYA0~ zBE>zI8_ib=1^KE++aEH8x^MSW?I9jCl#+8F5=$(EPcho`V@onTIHFK!W1HTfhiT|P z$3KNbFLI)lj4=!?2+qK~R`mryD0~G)VH`Syf8`wdZj|j$Vcm9QVXrw#FrtN@+#`v3 zl{wb|f;#Go=OL3f@WOk`P2Bah=~(Hxz~U8s8ot#YQvh=LS(GK7=oGL_JoP@cllF~n zzCtC!>3QR>$e&u9xa8#D0em!w=CGnwUY3UqTYD7)x#U-K0PgC)HWc{Ri$)8EruV z>1iD9{WwHV;Fy^5N@Dj%y zpE71of78MDR@2`+xkoWkfmfpfs7K<9w*f>tgex(}WW(ob9Tj-}HCW80)4nZ@q472& z$?<0jjk-F_iY?ldTT=@eQUCM+uUA&8j9qt89@4-6U_=q-7V613kaO7%il%@6-2Fi! zyZ${{sv}Zt+P8o`+A$FpFNkvS5OS7M`fCpBKgbmm+vt+s$3}1z zUq`MVz!2<~;pKbYgLio6YB@#MoVsSco}`2osX%T zXvOKtY5HoCcz|`ul&KvtmVRoX3=mZTY~F6r&0xDT=$}RTRD_A35T)izu)xcr)2JC; zt3kbE=fD?8N|yQ7taoQfPxOpMF{WHbUS728t4mK%S%!6cJd4$`swG@7td|FYcYlpD z^a|k(qphc9Gfh4G$3W=s(&-rbLCP9nT}G)5+8YD`W_0%q2Mq-WDk3aA57&iB%zPdUJ6%-RPCT5K7)@y4Hc7ZI;=E z@*9&ggylE27QT3}yC!{I$@u*vpH~>x?c0wEwv7Li3D;oyTh29W(PYHOhXCHR;ht9q zLwb!z&Z#WBy||$X-c_Z4ax{p$KJkz7oS#?xyq_tmn)t0^is4J5+`kBxpO3AB(b4iW z4fr*A?nN{Q`-wu#>wD6X1F;B5d%JEgf6RUhGPjYsFvMCej+N%Nl)C3(FMO$6Ly&Bk z&?f1+!bE$?b-3>L6GJ038rw+_^9Y{UgG=|>5l(@45;np&J?M9(K}@lq+txp;fabsa z)vv^$j1ijpl^U)ogYZ5-uT(2#wfMdbB{`9lHDwam^}ouaL@H}B*iF2=yj+@VT7#*R zW6OG>rm~2sN6&7VF!;#Ne6)dAAOr=wllN8DjsQ2elpNF{{DOT{BPzW)jAEDn8b+X{ zM_5+`oFR$_twiBmmn9!2kxKTn_j{oN^0{yN-J4$J%eUCGWKU)=QawRxPnPC@l zx_XG?w=V&$Z6((8b-@E@r_~YP! zh)a~6BIWHUh#gkBOmyEpl&a8ULFg}M6k7Tnq*fZ`LzGP9I*)p z>KOe7$KO?tZr9dEiP_=ratvdB3bVj{^TB z4!PCL8WS8T(`NXIZ-`R%D9-pm4jNad*7)?|dP~eWFeD%^B>#eT1dN;{e z+>TDmh*RY^DIn**3u`SY`=NhJ%rhe4_Gx+Q{BW3vwO$KL?iqyC8>1ICVbm;O(YqA$ z->Uytll@&R76JzZZ-wa;yI%HVxUm^TU_lg=Q*1XT@w=eBP3J~XsOX02J)2)$)v8n{ zS%o?FAB?z(ILBEp5{PVE`p#hi?uz?D&2#_M*O4W;Aq^{p~yWHx=$-tLt|#^QU(M z)a{S9+smh)1x5#DE5FDWHD4ATUB^ZdJ$O_&(lj_RkaMMGT`fzCVA z)n+9Fot+ZMJ<~q8JHzRLGYqOmqDyZW@f#3XM>a67z6dowOcVchpfmqA0i)C8Dv`*n z6Puh&C+1z5vhc^RozF(;htULC6|32kApv7IMUAaawdE8V>STPm$MVPGh0o!*Ol%lb z3kcZT2D7Jal(Ny`vUc;>I(*fWS7(flCtqihSe>}CRoKQWpdIf<%vKyE` zh;W=naIe&q-1F=GfRgnh<#5Q?(6G2BpdUH3eUdPNuWO*?|SUajKa!i zHr{9zE2Jf*w6DqAMP;9u;!cZ<(D6G_ zs?;pOuWfGEap`vQR{f@o11(4*wp~_w^Toi~ko<)X7PF6$YD&12rxYvW! z6hu@>Z?YG}mZq=Q_~483gsJJ_1{?;o1eVkP_dU|RHpy?ZDv#x|M^LP!xH+>wSs=%V z_Cx*HwY*&Q*U#qhFwG~jgON5s5!^@%fFoo#pxhR{P-QlR`2L=OV>%KYC{j5u0SwXYye%`!SPin%bi*Ce`sgR-1HM1M-U7~WDXq2(y_-KXw(e8-GXa=Uu;DdPc z)A6CYPCX%aR6U}@ghOadgw(2}Pu#cI0518({)#HmsV64z)nMQMX|HpUe=@RKvBEMh zWt@pDqN)J#_}uwZ&k4l6TIJAY+HmfWwYizl@+0^EQ`t7Wgo!4C$t!nMD| zo&Y`O@p!>KK*go5Xl>NaRLn2{k3~qK?2XyF(gJBuSWXuQln_Qj+Yt`XZ zI%)8rT`41v_*|Y&#cyXUWO-Ct+>ZO%tAhv<1%IY~k$w6wg7UuV+{dm1Yq{#AB|v0tM_mCfGIpRe=8$MA}!P+ilrX zSO54sK~}{v5K31+SdgwX?xHvgo!~^0Oprhtbe{_7kZ7hRLzZTZY#B)(7ri!5SfH~Pa&$#hVX*AEg@bJsSt%}pdhmBB6)6$(TUCB0L!JXDWGF;j za*W>a_KULZuOUOai)DL4Y5c0iev&=$c_bTO7~P{7kQ> zb?2aSS3sKMtaBG981un2aQG8(uh-R~+Qf0CEk3&e%Ev9eT=N-%GF?YO;+13jD7T}h zzHAvyEX8tkq=WVSxWsJ}z`&)EI`a@Lli=%PFZ{piQ5LfRcZ8o`@lfPOSzEi-4eK>= zE$r@gM zQKv1C8tCaw@QrRFQ;fh9qAq^`_T14Ko{xL4*!0?&0V@WAxHIJX(=5qeIm+i#c_yDr zp~Cyi<3DPF1Z`(LK#csa?~nC*rqY0fdw`CX7Qv;}3+pX&SrZu)+C>4=f?eCAv&g`1 zIGpZ|TDbx2sH{~~j_^HcAK4@{#0qzP`fD;ixz*|z*#!KM>2oM%`rSr?qHoXM`m%T` z%kk4>Bk@a>)&%Xp*leI<;=afoZ%|oPbw0wqy7tl`WhiS7$cYgm1lrqt5Zwvx#Pj-1 zfw{@VI>xXkezAt&2I)xo=>k)(wifRr6!#3P)p`dbZ=m_avlT18bOZA8cV7Qz8l@j2 zk)_FTstw;q;Nkl8!Fy4fZ2-eY~2<;?>|}rF)wC3v;rDage1Ts*JG|?DTJ$*1qB=QiE_xOgvxQ zqQd}9DImwomMMvju0}9sbNA(YD9c84o*6U(Sy2fbCI8@`F(<8?FSHxA>fg`HXvfx1 z*2h59+XhBYxOP(2yu=?8a0h;V=s=A^3ODX+jO19D;2AVx(f{6W+oNT!mQxj6)%5p+ zz1UvY@-73kpb9|xGq&88sOifUk@f14j?(NPwQJE}CWJf_sD;-7mKvJGpC1quRu}I7 z9ST&0delQ#=so6vLCks5sHRL6W3g}6&RY$+`6h1<=A_PsmLLc3cN6W-+RMNaN!&k| zf3H2xH+a3=SgYc1Sy`1vhEh2!veh(4j+qOs4c)vhJ_sF&AK7_rG?xGGF+e$mJ93|) zYo6G)81hQuf)n}qgF#pwrDK;W$=M+EoPlv>DUk9zRhVAUBTgv5JL~SthnD%M*T4B| zV&h-<7DGr$Q;TD|<`?mo-{N?^{~UyCCK%VIGg2XUgbu~2`|-dg2ZZl2eyEe#TeR8m zJC9*Omy){e1s~Gv_wk*H90g`^db4yQB+b*^=)(hdkrT&88uVv0gfeHM*@b8%ny@=!!Pr=ig74-s8c}S*^a0YLw&$#L#%RRv zW*$T5Hx&9`mh)eR2@J0B{g>&R?FL7BQmzh_82ML~L-X^19xUyGMKef~P}x{8!~JvG zefs6kShJ<%(p2er84))p=M&|!<4_yPC-r>IvZV&niTdjZme|?G-wiN2=>SSB);}O&;u%D$2$sj$y=`IOB(dCPSZmyWpIy7vB7K+_5&nelsp6)>>y~ zW4za}F;893-p!1&lS}-oW57>mux=y!2rTq8fVV7ZoQ0Ik@|=0M*{X?@+#{$QsYlbpFaoe%_q_Kpze-(m)k{;myCK~kq4r% z;3f0{LDplAVvVfcCc^1f-&Siqz3rbRJ|cci?+(vzW*5H9KP!K4f8E>~{pU_z_wl^b zX$@~Dil!?lNCyb(TA0GJQ>%$dsTa&UxW%lG5J9xwl?|pajZ#sEDqus$~ zGDZ648repwktVnO7|9@*JsAQs#3VZX6HWY=BSfN*PG@C|!+v|$nlJHJTLw3GihcjM zi-Us&)U0Y0+`?q35{J5PsjsGo&CJYhK#=Xj1PJj4FCZVv~EF7nhx%HMMOf5V1(4r@7Q`p1K)Kb8=_79damIm4@}B z_hGk=e!>5Urc;r; z1TM_SZcC%|Y8>6aCawG-BG%T7lg10*?pKb8qrJqAUWS6e0Ic0}-$~mW8>od0Vq>qnAzhS$XUjmyhp12@t?Vk0Dru-s!ZXobsu!8u^mD2 zr=dBPzKh~*^MwK`!gt*B8?CktjG0&Ae*8tFo6-VfHCrP3C(kA}B^Eba<+El`j}@+w$_cfz^$O-i zU~a37fqVl^aru}V4+)Rk^%yc^wl)Nx#Vb)u!$M7zPiw2Obx>`i&tG~OJ@zIV;R*9? z2aJAi?d%Hs_Abg>O_YfX=TbQmD;1h3XE^ze??RCPBBa#JTXm*Wgb!?|c-RF9dHT^I>*Z`pOnIDtgOtON4!n7mqJyFr-fithOLCMO{T zMP_f=d9iXlVIg47=RuB2KB4q@GT%@?Zbe3;Q)E zee-T;ug^dVr#h{eXGO8%PI9FOMe&rekYtcsT}$lgVq;y8KC($2FASYCWU*B< z2SG@?FrytY48Gk3p-O}?25qU&Byga&HkLwX5Q$79^*#goc1ej3>oas^8;t{V>uFrO zYYj)c=lkTDK|%Yx3_DqyQzQ-sy}>+pn>nnK&rkOZEtHn{rzm}kq;JKM`!c=(M zZKvCds<-MV`aAIKaytL~K`%o}+4@_;c{HM%{>DRCDB6e3SYfn|s2n>OaJ^&KN8-n& z37)JDsCo5rOgC>gcwON~mudOJB9E}}$WF5<;jTD0k}$i|2VCeyluzUWZ9HUZ53Ae# zx|vZLsb=dbD|2h#))V{X+EC(yPCH$YUA`GXcDAJ>WTza#`ET1^#Ryy!EWw@~6qQjZ zU1L{L8AI66ngGL}i7XJb0QiWVkE@Cc+i=bHpKDS-MkEXP{1h)?&6(R|o;+Rm{9Y$7 zFu$SWa!>tnQY((;40LreMNzN#BY9tDFOC3v zNkNdLfwv(v;!2sRf58tHjFYn6zg~dnW3sBT9mA#sgde!T*#OXGNBA3U1VTf%3mOr z^#+sj?=9Yl38kZw+R8|prnMi$h7)8^c4p#2M8c0!$E(Z~;X__-S1bfz{0uj$bS&}~ zumJ|VJ2jKGkPvX-y4_yNULdHF9TEj@MiC{@bTYgon>L`)o!JW#%po9rK;GYYZb z=+5bOf=dZ>Sf8sQ^_MNO5*f@*w(04QeSN->;*BH$eXnE4nJJiaAwH0%LaYZo7Ye3cOgiphmLdW!z`oS!%n8zPF16O&U!R6E9l2;*iNdW9X2XhrbO~YoK?{}dW+7hu`YYic1%GNwBSo`CWP_VP^~ix} zq`CVMR2hdgRO;`!*L;IQf(seuP?_DTH`L8}Y6S?rHmduB; zqDM-ENdErmFHfL-eGWgC-3jdC!nuyPX(hWB7 z;?F6ogSRI`pb!$*q?92%Sz*GFN1a+x>W64jLCs)(r1NvO4h6Oj5TN+Or^M&DCEa}9 zOVntF`e>d4>O15AB-|im%XdW0A!mypE+v}bo7P_|zcZ}@O4@0oSqWz`^@;w97-c^@ zUiGO=K@j^puD-%7u{QsaChA9(tJLRu0wd%;3RW&98bm`Q!#J`yyW-1_Py1o}v~mpH zmETOrg&S%5XmXq+&0MsqEip}tGyQFomoFCvZLy%_H&XTGPYADa-phBSFJ2(FDYUoW z29DF`{OF_c!X(V)5CMCRTtO~f^No5739`@Z*{YnurU8l9Ukyj@ET%NU*FfGp3y`c+!MSLnJjCzk;1G-NlhU+MXX`> zPSsAG$WKD5g-NXi+HpvztM0sBe# z|8fA%==NGKuuc*c=uS2_a7`pz9mZ{+Da+HiVKlDB1!}+hcT^1Cx}XMEMTCJAOL~+G z;V=@sJD>T`SjSE_)!qW5xRW}))ueMgPZ$fs*mf(nosbJWNR})ZJ);p#Ca!1x^kiuK zrg2y4V&$sxtB~@AA*IARy{SW-QjihlNvkJMbUg^E6n_~{7~K;le+B$HnrF{e?)i>H z+YxMZYcT3~X|W0uY$$=juowcjn-(}`2SKuHb*Mw3%|%&2#-xG{#@|0vYDDurbmNKk zS!aKEj1>QrQbmXtWf_#evKOPpET9fAwCeLfXnS|ANL=fyvIKgHyFEyhpl?=ubfsuD zccP$P@?zhR&@gyicqmXa$nfBB`xzk$Y>)6g!q3M@{w*3=y&X;%vc6vJeB^e!LrO5fS ziPMbB{NLF3e&MBf;lUfTtu!uYnHBYx*o#g=_7J#x-XTod{p_JUDS!r4rxK$9nCC4kI`mq7F!CW<8!@f)NEwd0B z16SF&d$qAe;*!ECq)R4*QR75v&^k5@bpH7Mwx)x&pP}8tMnNjaS^80Fz#v2Y2O2z4n|~tNlB-0JBBxq!(ob5vZCmgd^YR!(Y)DK)xcqpwR+%;P9Rn!~} zqb6QVhqcpZGGQ{eE{|oNV`K?Ev#ZaiH_z)s0W1|Kns!w)88KJgm#|Y4`8H(U0*^*= z8mzExKJIuzY4_y4!^D9NE`TWR^>w56`pu6v21SLhTi82UKO-5WzqSY!bS3ba2`ata z-3i3gwud4F5J#ra;><-n0HoFdaP=-+1*Gpu3$=Q;8{OY9u@;|9|3`)piK6(#-sxrk z(1YgZi!D!AEfr>(o^AWh8Sb2|odH8sP!-19a%ppmkfy4g1596+BP}N?sYwk=7sBFc zwi+i^bcgr&=8)@b{Zv1_aQNA8tAkQ;e5WONQ{j@Rd(w8xj~suxl-UsuwfDEnq!LSX z${l_NJsw2_Ww6+H^?caGWsfI0u_uZo+WeP)3WaKCDvEaaEq)zR ziO?((swTBL;cImczAcOo5qT^R_dP5|1{UOb#)>^w3@g2vun}7t!#CSxuvO-ex09>) zl9F%f=%K`w(c2LTq;gCqX9-s>E-K0zgYOECVX~UtkDB&hTo}__W;O8Hj1gYAsyGNE zV=%71-c2kCd^2rXfR6sE1=^_mR!Tm%l((Ef-bf}~X!i1OBR}Us5W1X8Xj$%t=w#Ba20e+x%3_uw9<0 zUAYAD_BZ>NM%~UU9}Wt-VP>wSxU8ce;rs8LG>ldt^FLFJ&boXR`IgN9_8D~G= zbP#9FQgO1@Or#2&@XSUG?}k714n0a^m5%;#<^O$dd)S>BGt_4Mb>GlvQ>M2NfsP{4 zSCJF?=F7{~@#CPd!6x<2$m?sza; zdi`)6*^Ph0Jqj>kX62Ftt|~jeKrghtBWG6;GQ8$wNfprHj%bg)nv@O2l-KKm%7FbA zT*nQ*(Uf!YFu&-P7`d^}x@0lKN@QgHU1*ds8OFHJr(U}U;sJ(l_NqlH z7&KBrgk+nCr8ocrw2F;h5!gShOZUb;?BBk&s%Ekc^c!XlLbq4Y+Rx`#wKRGM3FUA&#{xC^jo;swOC+XOEb;*uUR2X5(~8HOK+ zv|Y?d^)epVP96_*8ELis+L|Bm(#9WQ9-O9yf2DVCJR#l`E!-D&e!+k0w_kd{1((LR z_L+<9R~^U)S*@n^quaMS0cCs8Sp@v~!o%3vRb$yXcwab2W*o-HXT=l6+v2SxCvmU` z1RP6CG)B5|Wxp)}zI2mp32ZI9k+`qFuFt;0shk@D9n6&)@C)$VigNgB4lg15OTh^Q za776+GzB)1M&^L{kSNKB!Z>@Z#&dMhFKwr^HeGBN2_C$z56xIX1MV}Wdg}H+HzrFw zxF1UTR>z+v(9~-@sB}r53QHTz7U&E4O$Z;>dtGpBP8NX?%8PXunf58*=wuJzK9htF zc@+BSwP0P){{7rXUIKAx8h`4Xp3pxwq6YGCtdtr{itZ1!2_ggM8QJIu zBA8}}CARhNAq;Cghomg3xVwFJfuS!fvT=A11_NI6drFQR9Xlx&$`S%2KA-MIZ|nE_ zJTp9g%cTv`vv-F#5ROc&@?Qxus#l35$_k9H`H%NnS@Sa;)^z70)2xqu@y-5Kj5!vo zvnD@JI^%==wT39q^s;(9;`_GgQg@Vduc+DDcTj!-T&CC2e4bZACNg@n2+Y|#RI4af zWdpW<{9wxWt+GpJWehXOW%cr5m1EKA0JThO?e3Dt43W$pL?#G%I1Sjme=YiyH&G+w8{ zTLRro?+Zi)!K=@g2iqD%Nlh$`P5+FA{0YTGiW>t3B{-@3-`!T|y*29t90KnA?~n5} zEk;)oLdnLw^Mzw#?)QqyVi{B0OX8d?;E&scQ$h!RAziY)x{N>1{Zsf0nbr54jX<;; zaMB?e>27AA8Xy`6x_2QE^KBm`%_r;q)#0TLsUYg*_F=_s3?Gyo2~&(Y63{r1h_-0! zgNG`|vt*Esrxjzt4r-KNZmHlPC0a}-ddz*DGP`LDc|V*Vs(-@e_3{C=029GC%K#~5gh-iL!TKsp)IaK%sXylIrT6Dt7$YLD)I|3 zfmvdtet|k_Ee#&Lhn&Fo;MV5%+uI!*8t$_mvL1S64LgKO9=qv$rEI8ouay$26DX|# zZj>ZIo07cwQSOccUJFDw1YF4g7D1hv;C}T9Tv^lKQ%6FntgjrWEBet*xt1Ysdm?xG zgy*5`Z`(1H*ksewe*{OdtsTzSG9C1r^5CErJL~uRhoE2(aSlzl*m$AY* z08zqoA2l_=S8`DHB15x|yt&1;<)qG5JO=&|OXVQD;dSwRHC$D=31xG@sx#inMl%JYMimPCoVS0n!|^zOE3B%dZRZoBcG=Mt)7?7S zN_b8V5{7 zq7$(x&jZ}M4n@OPScJtQb zB4g_Y{TwAi%58JMhyJ-P!G?G}=LR&s9QF}^b&@^fr?U@4e-U@oovk#kr^3wb?|{?<0|imFK|lYaCgQI%Y=5Zdg7ez( z-NGHGmGizzHZc`0mG6Y1XpJaLfC)g~lKoNJqo)A=?o?C7%2+}6q?=EpTB;Rwn}%Qf z#;W8eBJ_BX5*{`j()mGnT{*`Y^!Q~v6Js6Az1GIDk=v2@D1eH5EGpjnb6{1wO*Yz8 zdG-Smrzr7+)1ZdickxAODSXK-oJI- zKHV;JDY>t_p>Lj=Fw1NUUZU3?M`}MMBb9u7$7*Dz*2sQ@OXjiT;3CAP>&jU+n9=pf z7~PZ*=*OAs*qj#s(q}-0;R)M&j!nQ@!pr;Ii95gsTntv2ltZc6-CMPvt539dzA*;8 zQbZ5KD!HEw!>V|Cy8nW#DDNHoZlLe`2Yu5H`ZUZr!jNBNk@BqB3wR_#Zf}H(dpg!i zmo$2;&Ifi_Oj_dXH(-80sBP37(QxmrGXsI}Ro@%zd3p1j7$$l!`xbu8R*V_wn`-a9{O19GUwGFhfQ3v0YRpKb~E`K1NR?guj^p9SUU>z7f3?e2aa-w_qdlOGx zA~?&OhSnuChnPTyln4ph3;Vw~&R6#zQ&Bg_GB4ljite!%s1*dEXel+@ z3;hQ-DkOXP&L1Vpll9vE%-#U_8M6vb=Fy(NKo~~^2%o^C@yj{JWbp-adTOvdYKq_` z6s+GKCh+m!lf#;A5KbdMYgVF3OoS!jv%_LVtj0^6wa2#m132GyJl^Ln{zJWB;^3&r zAT(VH(7Mj#fBp5pQpK!V%1=3+UMB2qH6-S0LVtCPK51dB(UDhf(|$8%iKpe|PH7q` zl3`9HbGZKTZq6@hR%!@DQSE4!7A~#O^JY-gz?+;)cB6>15X zgQ3>_$bYRB@2>j2E2YmvR>9Te(VTY>vSKY`Gq-e%qT56bA3d}Z?uWH11bHD z)`Ba(7ruj0pbDc54Cu3=(L|2MgehCf%f%LW-v)RkAlN`cNW-_NwW23c#Thh?ToUwFkFf@4Kbxt5nc7i#9j2ok}k3Jw|2NcM>&joGYfh)Jx#CuJ1>+q8tAcX zY3uJFyD}Met#CGj3qR`OI~G-bN$6L&{lY1XLsdapACzcg2L7b9vZt`}E>9zU-<;yd z!;$qOD2+jedaFjzh69_()Q7?4f16mfNJH^crY?_lD{hMF%`=WNy;Cqr_Qc zL6ydwf-D3FRtGkZH6jZFu;890G+Rbhi~G4@HSUu8${iw28U~@WmTOqpRVEj0m68A{Zeh^i&UO<>lq|tbGuLCkXLW{vx%;^m~=?>Y6l<(&H&8Cm4DlQ<(_w#8am3yv|{Q*F36x;$J zY_tl)2{!$9KMZtX;T56*#Fkjg*vg@&Hv~0CE_!h%Zkw7fmwJ z;og9J+IX3s@WbVlq9&ed*>=xmV%djc=j?51nN5>*R2ru`o=a}w#s$G;i1ntzGw)Te z5g^*wKQttsVqM#^r#g00L`hnQ)}}lV71XGniuZr?)^${-{j7hT8X%)4l6I~m>-x`Bk!A$x|fK) ztb`02e!ubp+TIh&cjcUp&2()v09siunGKwtLw0UlZ_LZv^L`?%Ypriq5ABL3t+hF| zt>1L}4wUm}eE`>uT zdNQI9(8>zLQWQ|CB8iT8Uf8%B+I5>MZ-vSU27}AJBFxl~hl(0B)EgnE5IN<#@=JW~ zt$eqY7@s~~>iWadrtuapw}+dy=b4U5mZTNcq=eg6z_Zqq3jkaCmIVMRL1JqF^IGb~ z5qLZheH}=aOJid^`xTQpa#5aSGTA`5qNUcWfVDye(xmeaW|(#0xnpJL3r`;l$@!+Q z3@PF1%+>DvXfP~V=^`Vp_3>H@XVPPgivy4cdjNzb%-^17>$$6~chWp2Wl>i8Bfz(x z_d(mWB4WPx&xxksUIUN$i=+8hOEo;dzCBV2ZQnnOGUuEg@0Q`o76eI-!yWf}O z{f_M!wBDJWkS?%SM#f4(KO-Kb?OL|id%PABRnFIaOu7Y>d5S4lo66dr2;oD6 z-vr-WoRwdwlipg}%5|OU>ZYLZ`#yO;CfGX`0Y~1dVn84ehfZm*wD&o5>^EH z4$&+Rr+ch@AdErT&K<4jBW?Op%aq|^-}B>h`W6Atv-et@lre8Yae1Yy)%t^)RXj`c zD+sf@5Sb55a(j_L#`)S79=P|WNH&pK3-Of9`wWV?e(g1?kj)|oV1X>&mzx%P=F48Z zz4*2EWBKq#n>YX>a_W=p39>8bbg`!$9Q^;iF zePqsJ)C)lNXnMm~{vA;|r`WSK4tb54P3L4RXL0>S4+12(37l*f^1wZrD3UJF$F>hU z_>~Duiu8d+f_6lo6o1y;qPd)a6EP2>FYv^z`}9zd2?zc$5TTk-SFdsB*d$-+9i0Db z9+nkcS!2RAnwfY8!)UW9>x*lL413t)9wC)nuBzC|uzAOdxa>uMJX7~|icc-?z?P&r zAqJ{Y%!FP02RI8uT0F$n8#KLNUt8yoGSfOXf7x#%G4{} z!-57>nYcZsG9Lvk0Gk!{N@v6k!_D!+FAUq_Zk8cZk@!Eo0TGPc0MzBj54yb}C$oK9 zJ3EDW5WrLP^Lnhw*4q?yR8j$TkL#lumFoTs!sKm3Vj-2l-g0b9>0z=*_5a7zSw+>k zEbTf#kl^m_?(Pl=?(QBOf;$9vcP1{uHOR!>Ex5b8`+X`Su6kZ* zdZN+pIu^e^K!)M>HZ29~g-Qu!igM}kb~4@u8B3pHt*#Mw0cJjw zIo_p-jW0g*;%A5*>1*YUuKn?@NG5P906hOq6#nX_TDl|}1r4SAPg#F=qjMmd`x(bl zplE`rFK{}!sAlh56i;{;Q1QjirRx<9t;uBFSytL+$@QzuUfS?qZi|M#M-l7=r(iD8 zsI6_brgEYJX_LBCUtF4Pil|cWxRaBy#qpmq?!6=xRd;d)Jh3U#pbIGwLQ5=>VMNsz zyGoN>I%Mzn_+`TJba+fKoLRLj4$UYXX<$N@YkYUpkp&up;tNq+y}kG@l2-MmO7@3_4?G!^*Q8phl|r~*Ju_- zJsw(bH3X~|ujg8sW|~cE+ad_uRE9D9*F#fYgPa4bH|=Kc!@U(ln)0nTe51qc^GHHZCCjM@0chE=Oni;7YrCWbEx! z2S(b&0hBluAjcu82%FnOuue^T4-ZzYzNWW%+d#}Xrs56o{4IH`NanI{wwrh#P%7l$ z*SJ|{vh1yyE=Iifk>&cWnC?O<3MQnozMd|*Rg$)S3mVR)B@WatGIC9(8WltBX1)X+ z=g+3h1jvi#J+-RaLzHUEWqSF5J^ReA4i@Z;tv2DkCPNg&FPI9?I_It8;oUPp@#J5cN_$- z$liCEpB{T8J(VFXpjMc>^t(x3GfkESgs`cq2Ud5aFy^8sQ-NXf(AHRd9?@!Vrs$!d zMO3e1F;-piQUrX@!@K}L&}11{uhtZN6cG`OuCE92*{v(r$~%oK?`$pD0$wa!Y-0f{QNfo zfh8yj6@taihj*~r?^6!yZiyY&%VCzX5bA?{itOiLwZ~I6tV?`on_RL#?HK^F5r@eeun9f| z2-P4U6cf5eMX4xv`iF*rPtg^;*vtK;j_n4m{xD#JxkKo+I3B(}9F2xE*&q}6HU4bZOdmSH4z*%@mc|k&pA}wH6C!6D-!fWcrZK#b7E59+e-zpP`gEY^wpU1jsgRMgL3{yAE zV70x?@mUxUnCYRj#)Q_G(90BLTO_z&#Q{81)nUMZHm z`DHT!oF3_365c#p-9TN}C9?p4-#d?Rz;nXJ7GVC1T{ArVns>98 zYA_#;k)qddHxlIQtw951C8SEC26lkR(92C)p;_ccdTb0$Z5X2(%-Su1(L_wJS-ZnR z@)7Q;xQ~Yg!iG_XrsQ&D#B!p;4z<_X*!n(kPuUR0zbdVOPy3m?EF>w=85$j-S-IPV zD`c_!sD^kHc4J64l0sTy)o5;YW0Ju#wctu%>9%o+rYU}~VU&lp?NfRUSG>a}XXzW@ z^I&g%syc7yogcnF#g`+j0ykr9&-5t_%TNa1R}ydcX`lGc?;HalXF4ivuiI1!pB&Bg zZF>UI49TB$R!lNiQZ5<0DPmG*njO7EfnHCmkc_R=#I`+NoH?u>%cqvdR#&Viw6 z4yXqpuo#lAV?V|-zuWoh)C-e3!Lp=a!a#RTg&6D_@Zh(7hincrBY+0DLQVi_D?ju% z?+ySVbH-CMEA8LX1VDtck(0d8_CW1*9+V#Y7CFm|m-*E!8C%d8+1P&37OxY`A8c@T zt%Mjb)}d`v)#TYCkG$Vm{+!=*w$t16Mol!+0l^m734X((hx*qx9*qu|^X~P!@MxZh zdm2k2t7pRoP?K`9AZ5PrBU~cEmG%w5`4&21%)2_&x(?x;e)IF&q2zUm(ZdfWCi=Cn zTU)0~28e#k`V|bF@E1tdf?MbJvVMNJ_qs}iZ&&>5`gp7lm*rPGjdk8y+c)p`PQOHd99S#`NY)8C;QBbqj`dRc=9^uH`18Tthq$LUFBB3^1!XF0 zZpwI__F=1fNXZkeoU(+l)WMto z<^7L#Dk8h~J9U;KUnmd>idbA&&9Ca9n1(x?vVffi<18;tL*b80N_u*Fo%u60N9V!5 zJUI%#3j+Hn`SM1b2jkn}z$@O<6*59a6+$sixlzxpX%}480lxueZ^lzY|3R`XN1v47 zR+N~E8LHfP_z?)JZN^rCaBS|&zGbe>zK3O`c{6;;ZbV_1&Fdy<@kBPAl)UwILDwfb zV-!sxVl#z(tM0VyG97Zwxib&u~ou4njl`%NOo_ag! z_pai>O2oC{?M#hyTi+4%KrU3Zsv-QDPA+l(bU75}ysk%>nM4v9&219?H9yi4_pD_+ z8;*v}6ipb$ZeXD;q@=drV~M*n@? z_SG_f{C?tI9EhF6onUD`akoRBu{x`}5@wws0auAvjN&I$E2kQQHJ-IJk&d~6M~Q`l zlZW?gyWAX%mP!ydSC1NsV>9Br%0RBuEF`cGa9Qv0@j~d~T&gpZ@hK)c2`j$T)nN$C zp3iP~`(dH8<2CRaE)meNld9_!evQ7RxL`L6)M0N%wuT!j1Z*2#fOJtAhc~%?T7OtE zGWN9X2g|^R(Jc%`-s_KVX;Ef4BsQ!5JR6p#OuxN<8Qw4%c~D_j@V2i2(#H~^wUr2M zfcf%qtB;P2sS4gcAT90Ij)Ao9eC9Fpg-${>wA7h^{6d1xY?9?fTlp+YoxzEzly3rc z&s(VA39`oD@hHscg;HUs@N@c_`t6xM`f$Icj%&8F>VsH#x3L?V8AHxI;2uNbpG-*= zIx|=MVzH+x)*WVTzNMsb`Mqm0t;Qv~Xb{%g@-1_rEc*1c0c&;i0Ss>X9PSA28x^P; z$G=FsV)4UI`fYk+ehsYUIoK5IJU|kbGYk19G5GN%sYAxgUY2*YX=jy})2mI`U^l77 zXw3QFKb4i*m5*3h^d_rJ=tZ<&{kDdDD#}$Ru>Bpldrxz4?XdSLDv0M?78J?qibfT+ zw-Jtc4iCD!r9DTWH79*NeAU$AVD7hU3s=j=pRGf(h7lh6Q_}qio(Y>a#qSL5}MX*A~+f@&V zotaU$t?Rg6O*#MHe9mBK7>VbUtjd}Q0AR>y3n zh0o5Zj<7sgr<>18s0*h~m-M*o80R!U+2|MARH*4wY6e2hxB@bRobBk%to>*f0q!&5 zw7E{(KcCQ|GmAw;viQGNu=UQ(qoK*njHuCxS!*8+z9CB+Qz99Q}BpN zb91}LH#K7tCAcFKy{D>6htQ;l$r|8FiSmxHVP{>QasJgl>F*{pdMyoAc`95r2 z(Lj^}Xlrl|VxKlW0dYoi;{*9`#J4BT>^tw8st%}%Zxf4fJ&hq3Eb1%zVqGSlN%VEm z6t+!a7W(T2`*@`moSm=z#eq+ixqRUsBsdc`&SPAV-ZAx2R4Wvnd|Guv1APiq$G^j_ zH0}JBjwJK(HiUfH#QCD@CwOJ3cHo&pwwyelR)*HepW~>{JV!ZZbZ4y0Ls{y4RzZsOhBdIp9hWhkvXj z4sV2Rwt!y2rsCt79`U4d6#bbf)TduT_+vZH{Yv0qzc8y}2P(79TbwhLU;N6%x56ih ztI4#@UB*=|sR%tUoK9{GM4l+T;&y^LRf3tKuc0-+@lq|;GY7p}1hm6~Wu$;K*u2d) z)1Jzrq^aLNi?3j^dK6m~!XwY=H4J$cg;U-ru*rs`Mt6ee@BQ)0m`b!f{{DLUZB`Cd zE^&OkirroxTlYquD`VREjQyfTUIpq3Y(NT0=ar1dYi8!v*QdM|!Lrg)RoOofbxFj;#WP7Y5CI?W8tve9%91G%?smqN1lT^Z z!uP^8je|LQ?dh+xKmfTEmuGyhFN1-N%ovm0l5O;Df2uCNHk!Tpow~XH(!I?W=gJ59+^vk?D%!3vvG93`RFa1jk~?69qDE0qtjB5RFQHgn3m^urB~|S zcwOix$HMA`6bVr2N_T|`JX4Y_hcK3*^9NR*cCT}GrzYv4z=M;aZ_5w={bk^RwqM5w z@BkGz!&WDKw=l#XX8L*TVLT;Z3b656zhwbpLrrgnP|q1Vg7Ms*&u`^X0K^->gdvgF7hZoGfehINo}C82gx zH*=l0{pQ^jfsg7^&2bSk5ak9@ZVP6Wt9c4(aYrLhpTx$(ByMpl@VAuTG^|M?$dBN z2z~n8{}^5atq7+j^C@Q=#J!8>bB>g6#Ml%wid0l&D>Gq?eg!0fRet{{^%xl&`@`LU znu{50WVyWhtzlY{^wlyaO^~C4UQD{)G{9TqrAb9)qn}&koWtWaEA>Ns1i4Jk3zGP za9C>DZs8ja!O@Z8wx77nLAWAWi8pFXd3|f5eOscQv#fn>tY6x0;=a@WToBGa?og(d z(s+`m*Hh_dBA~Q#p^$0y7|w6jBQ@@dvo0NlAl`eDj#WQmiObZF5ltOPi z?Y^2e&jXE`e2eWBc$<{1}cqhqhr(cJatO~GuAR8Ub;k+@A{s4IY)#A}ab zH(b1$vv8CE)RRCN-d(jM_Z*C$bFrp+6`VkK{x8D%(TZ=cLS74Cni92*oww^=B%fi( z|4e<6h@(`ai6A86NYv&Td$^+0d_zGNAtcs=X_vl0{sw#0zV-rO^Exnh zZuuh7m4vg{rUKH0xj8epm`GytZXm@u?W19pncV0f$%#$MzS{2O8%TAu7{f7ndKkOF z`e3L(eRZSlEO}+vbqmw*<>uv?`Q`t-&DXVIJpg#R-T>1{wO_AzGP_E+zWj#&&bQTR z;%mp6v*Eao*uA36sKJFGai=qj+2Y zP=k^0)sCPsNqjT<9mD+@u9!vfd1yHTsZuTD1bLYCrpPVXh4A(V*Qi24_ic7#0K;$Y zxz#JFlvHQE=xhD)@`^qU80ybaX9$&2SiI3T^N!A5Mm8 zBNk>~XMNA-Raeb61!G-*U{``38s8!MTJBSOJL)_Qtd|?NRkb`YuK)a!o4ixDX|T)X zOc#dQ>?5>e&9}I_C=-3>A_+JdpIF}D8PxbGV>a2unuBq*Q&%;o)oU<0s@?kjqWGEAVfFzi zGsoK2hm&4p1mkcUQXs>EzlJ-V9hJDavTbZfjf;IoE1}j=s;t#`AF4|eL?@fHr~8bu z8(UB@j=|a%V_H$+{6wFs?uOfC_|63zc0%1|T!gF$T1RwnGZ+WH-qiJBFyk{k1HtT_ ziheevoV)#W+;y(e7gZ0;a0}9#B+vjH^F`GJ>ozz0a&X`U)oLl(P(g z-@8es?&^6 z3$vuYUUngs3WoM69$Rz2*88KGTE#IiQ+8pn9srP&m<(-dhtWz0^MiQQQA{^Ur$3=Q zs@%%24r=tiwpWfGc%u8Dy3=zNs zXQG4{D4=KgMTrI$HnN{c{>xju89KO8_f{#^DV#;9%pleyQn11PYgFW7#}08u+%$oZ zf`u~#t-hycO2y)+5baZFUu+s@Sr`+<2Z1HqLvbvVPxGzcdRMNBhEnMynvbDfqBQ!%(QT$Ud_!WRQvS1oK6YJfKSgf9KD8clQY=;jCF~PU z0>4KK;>T4EUmcuZCZwR-ORIJeV)D#l49nvRf%BQp?4KO6X(?4Tg81Bg5J_idU zNanVV0S(T`HtoH&GMyS*$_d-eeCT`C6pSh2MTJQe)sRaOHX@f52Y+1)s$uYGegMlD z`8r`rlvy`VkE1WcC@m1?X9FNdi94Ru)GGVjws*C%FqgE&b0~iCNnI58Z#U{$@6p2cI&J74tv>*(%v2l zAeNv`7@a8q^0j0IUYoY!h*?uDwtFEU^1Wf2ZdRkrYaYvbvc$yY9!O zOEr~FtXH4ZjmHe_!R0q74gD9Hl193c&VAMQd*{qdJw<7@Gs#C!ZnD@{SL)!(M2K-9 zUYtzGNrV*<=}~pV#~RKN&r|8n#TP!E6XWG&o?JM)009f))D(A2i%A1vM4ERJ7rb13 zZkz{co={cZ@1*(i*vUn2Bvjb~a-rhS-3$HxXoCu*42cuEw+NC2A$MD*lQ;7flGgPb zV+-ruhy?~da7eLuU!w59giOHHt2Uwpv++pw#(3Ocyml7fJ2wfJk(FG);{fRqL7}nv z{xRlX?5AK*x&;FbeAS^C%@eyxkfiXJe-lAr3Gpg4p{!=RFTo{S(o+h)I5Kiz#ZSvA zE+jGS7^A{&ejZGK$Cn+F{P|lz(6@=h8~W|%i~WhH)R*8~`5PSvsU(59c&(*;Y9=)3 z_vP4AWhr(N2ufeV#LVC5XAm6BMVB4ANfAkd-?$AY7=7Y zzJ@f&_sw4C7S;B$yC(S)dl-!N)$~^a`tD5DP1+PMsu$W&>sd&!`{u@l@mVWIm^Es! z$BAnMsZF2nb={0RXSUfK{;-~`I%m6&QdV-H-$GM_0})%7uh&NdEXPpMa#2Vj!Y}b0|@iXp9nOrRIJzlQ>6b&1?UpG{h39pxUb@=q_URd!_-d@&_aLNzR%Bv(VNa_mGd*VX?4{4uTcm z>=?g~8n8@#Z5S+_ptK{q6&IMCOhN1kSIO7c0c?CLU!fG=d;V4Fu6Y-#ou(_5xcVDD zM|f!4gTb26_uxFejIC2Lx9KPkCVqztWOirX0FfR2zI&5l%h@g>-+r>IwHaH>H%%ed znH|{{8_|r$yAq2QS#(wnpRxT$|IatwM&kjkiH>VDmg)*~)rIED4U= zAe7NgfMYY={Fjf+XU6k4V?M&81Vc zfUa?k^{)*3KDehgHb=mT{2$z8ID{Sd)MJwpzSoS{t7IT1AnLac)%+*BGQ;myg_dx> zO+zv~(ZTf#Q}|6Ne%Y?VgZS%k7g1onM7=(Kd7LmA@?YZsPEa0|&xV#8 z>xIo|Mpl@dXFNeKg8~fbZV@7bgzcO6`$*gXv!6%|kq^fYOh2q;Le&!BsuoZmf+o_( zY^hpMz3KCepGODK!jHcP$(30dr`urbHGsJelUZ>}q8?nlR*{AblljK6N>?}1iiLv99*ofX5^ zy0{r_Wt)#8K;lq0jtdjgEVW2rDXGSV=6icB;zfMXBVzz8B)vxDapuRF=MfNO$2r?^ z+1dVq{m6KLh8mdbuHxvNK5Z`^YCK#-s8Z1%+&1ep*#pA^Ug3}P;?-StC-yqfyJPET zb7QaIC$PLZu-IdD_9bH;f{ESuqOb)~C+r#`{IjNq1}-8j6$6{l z!m!s}g@Z6Xje>K^<`z<-UR@5CAReM|;n4Suc705?zK*^w-2orIW<|9_I(GshQVd>C?Gn1_IuWkM`)4SVB$QRw+!|LrF)hjzMc9UBJIp=`m zNdNa2bsy_I^1rG5KknLJ)E}iL|JS;qp>$$?_Br!zNmm*W>|O#(QFO#+xu1PEk-}3a z6C9g0wo5TV!4u1>u+UqJw?!> z%e`!W$s^Zd0n>dqGhKRQ?~#-~^MMSgjUs3TWanO5#i-jTf(;LDYvUg41^^!PJ_r#%*qUt-q-XY zj@CRSkR-~VN(dx3`=ot~oyYLRFq;`DG=OK!B188PoK~Q%$N6)@uTVg;D`Dr*_=KdL zT|fx5iMjG&K_ayo-LJq#pZ_Hahph8hsk8^F-H9Z$1CrXftT(Qq6Pkf01oO%!1c zQQ{)J99a-ZXSo#ruZ#Z01Y+K`)Eoiv)zX_bSS+N#ypf zdlKfpBK$aGy=##(ew`VF%Wi~BT}^0`f#3l@cPqhpiy8E?+i`e_{yVCh;2ZIP;3Gax zFj_#XO^NY+Hc>_PO7|m)q~_C=cro)YrPWJF#UZ%x-g-`D7At>QK^i zs}gK`z0Yp_&_edeQ3yp6 z)a0X1`Pg~3t$8xlp_koaZ_LNF!$WzF;9i~y!KSLQp&0pm8vzs>LV@!QZoWNavAKFD zjGDE4B8ym$ui;gPZVy4&Z1-RIpGQh8H^?=Ul=R%%M;{6rm?78%eIW{@V#Nmq#jZ|@ zcSIebE4LS$Eh$3~aU#B=Nt*m2`xxj@`AW(_cZI(0yJhyuyn_ed;zMuleT`xM_J}dh zWZ=Ig24ymLt^)2{5DX>;miDalkAbLRgOxQ?QBoRr`Gfscz8)=P*r-V9rvvI}QV`+K^M67MUzZeBwo9n8b#f1$N+i3WKPUnh`34+ z;YdmHMPv)b!Oih!9yO8Gl1Bsna_Y#Ig=oqFoU`NesRwuS3n_mWoP`1)u%JXJ@D+`#Iw|D?29;j^@b0;YR?VQ;2^}FAgBH zH=E%>#5z!tK10Tlb3bXoEn}9nOiE80rOs+f78_H1!#QdxejV&AJvkCoo(cU50lq0J zHDgv>LMlLpC&}x}L`@D~6=UWEM^fH}gmeiKr-rPpt#xp5;n?{u$F5%C0XcAF8;QK+ z3*(yoO#)(4c^6L?`S2j7z>iV1fKjZ*co5~s_rusHKu5@QXEL$LnuUWbUvyg#Y5d#e zXxjawrg*T2$x24LyR{aspqC?mptpcke_&*zv0B#OuriK9ooDjZgLApJw;*Gouk}%K zS6O()U3@{oco7a8e?>egWZs41l$aOLbj)pxe(Lu zl!^W|wAL(E+@^cP%ex!4P%X!Uy3;IOrQf~~&cJ|_rInfEPhwUqzAta|9d8p@0eQ=W zKian$k2ldiA+;9naAPgM=&K8kO6)LjBEpoRkqm#zpO$wzFvW!@)&dvnIie*q0;I-v zHk;DlV2uu$i8r=cPY(Ao!4rJF=YjL>Uu=6WQ2KnPLY%d|P}$Qw>^#-hc%OAa$cAD7 zM2;3apejhlv)#C~k1m@O2*QllE}5TX^3SE05EnQa-v!U4nNE<914&9tEI8{ zltzXIm4((*R773OICL&F4Nl$z!?LA3+*+qjps9FuM2Z;9$VJ@ z6TvY1)IO83F2o^P`apxUCJz5A*J6_g(pCr_$cFB&WKz=O?z!-}ALGeW!jS@%=eZil zF+b3A)!;%BG}rz~dxSB>{X1`(id`)}I^H;3T|_W`>W3Hpr=kQKfEUpvr?TEc)(z_} zt4dCKG6V08qV<`KAZbotz3Z@3@n_3ycWQPe6T?wcP-2jPR$}T1hDxFdZhAnVsL|Y7 z`Y!6AnWp%NH|BKeXS(9q-KH_a=$w z2$#GJWuYw46Aj5-UE1x#wQqrQRL(;&;8LpX43Nt5F8`(@^T?Y`A)Plsip{$PgF%qM zUya*^zI7q3{Qt4K?;-zuFeKUzJZ*7BqZ%4jlKHV}ZO+gjP>pQ5oV~|s@@4q3 z$ld-N(A=(|QK8j}8@tYh%XsVhyWJLh*?S6G0k|0&Pzipywf3+Rtbmmt4?uI8+&8(} zXK+uJQkI?AU;;0@k=m?$cw=^YWbXS39oAi#!F@<_QgQzGiaRdWwZ2XWYTWIOz@UrE zlI2uSQu+T0RqisG!z}##*Ftx7e}a#?V}?1(c3j5Uw3uw=EOz|wqZe~H6|?5)btO+VcM#9S)R$%qrl5II>!H6%)8d0nnO42k{}zSPnvB9?I`FTc_Au*}9yB z{)m0zSOc{DrRSi(x|a<=@RRarTi%w4jCbG!1Buitk9fKGStY;zH$y)`X}&rD*6X|A zP+9CSiK%nS`Dyjg5jTUkjE#a<`LC%Z>VAFF7{7(GD3vxJbw|`0SW}#4-w9gPN={X6 z)pE2D8cbc=`;Mr>KU}P_>Os>{2%4zhnEFM%|Ih!h$xFJqcNRQI=mmdub@d%%#idWJ zR{6h6-z5~#6}@p&Wq@P=dP&d}X$9BEKzFpdO}=bJ&5+?S&>D;0^)W-$6;P94)fvzU zsje%e^ChBx)ZU*(f*oc*(_dE>QfNyhvZk*8ntNcRlm$x*N|M#!!Jgdo`}>}y`rf%PAZclFCSMJ5?zro{gn)laR&0z)L12Z(I52VkE zl~$>O2P>*cHOlk;&&K|90!sDeUHk$$6yHZ_&QjFOJvB5mejHA9vwjW!>&S6qKGBtc zWJnilO{5U2%YNnjpVet304oA6+;ioI`~mP?eh(=N;g?lI2<}oN&3(VGMrD?$`maj^ zSy!X@<^U0f27{53s0QEXk<7?y*KN9gVnw->aMeuwL-|3jlct#e)gOZt_8!JB)2h3s z`aZ2=WEam35wG5eVF5AcroP*Dj*Kt|_55_=ljU{n0@+0$+ShtAgriOjy~$S<)F2?! z8II<)hS5K}0{T2(7}fA}H#^fmV_)yQJboqhX&9wgL(`FDe=a02K!zI%*A{+WqN zwT@llCT@#Zw)63wzp^qyHziD0SJD^Qef6ej->b(QDc`iMixoAK#vRV=JuT5`VP_P( zo=dezS5P2(JPdc?Hx-nhe=$qD@YJ8*uG~xXsG=O7FMiF6GSg?&`R^^Ev;#)<%bp&m z;vAMF#gkC{3oBE}d-b1h98t|_6i znvo^TrIJkt9-;C}{shH<*^=a^7Tek!1=<0#2D5Li)NO&@xgDfOyKIliU=g7G)PKH4@bS3{Y46wF^p*8xeC0cGb*qND`E(CW;$&hB5 zPWYQ_yn;@z(^#7+JN36_e%F-f>v7u7;-p^g96mS1?(XjV8x5S|C=NGt6=h{)LPC8N zV#T|^=2rC?ERj%MTbnkix2A^q2L58Nt{!#dTTx=-?4Go>8n2%p03`C-+}v!q)e}54 zJSc<&?E%ZGC`5ToTL{jc(FZM9 zBG?jj{j)2lYX#$u>Bv`L=c&)wGB2D}x|JpVIyPbx;x-SV9B%|*$4~M#-W`OD#g@O9 zH|Kfhf2AsZ7sP;TV)9SSMmvUHpt5VCW@H#Rjjq31nb@e=nv%5PZY7+~n|5$>k}9i3 zx4y6L4jmQh+a`$I+S&~m@|PxoHmTq1!<04PB1m6K4?~RPOjT1<_J_Ozv4`gdHJ=t} zf4YYfFY={5fGJXeYqpxuP%>pk*$y_5P?AICROJ|-eA=md`{N3%+r&sPgUATsz_7}i zG&Jez15ow^zx%YGSnrzc=c%=;@3TUFI+ps6UKJWR?8wRILgNDDQbCv@`}U$fjDDS&vdbbE2fTp@p5KFcd3mBr3o5nBAE2)A zJdjc&X~q$b{nC4F!o-3Fz$YXy5L~2p@Bsmj6JB3mKP)Wl6W#4h_>$Rn_vmrsJ*a)n zRyD-p{3YZzxFnJ)U!Y)XN11cB)BV6WYMC82cH@~_vXUrxuPqfW1+oY-t-%oWRrl>u zb+Uxnc7c5?8bBA>yPud@b3djHY`%~{Pr;0EXM9jyrup%d2iGd;(%*h|F0tX^Q~R=O z7e7JwX?^h;%3Hu^`X~B(=_d7!VOL(C*x{WR)2;nHQIHOzC3`y{};bj zqOnK~Y;tqT{57PrsS-z`&#jQ#-7QFg(4d+P-?PR>z2Iur+SFnR%j)Xttpsi7f4uUa zPoM2Z>O7W^>y>j-Q|XeN?2;;7YPcsRCgj<#D}ePk4-1mZ6zdfw!!dzTXl|A5So&gL zNf_!!OXLHwPS1XP*<;lO_{W86?wMKS!Q5ZoH~-+-q`3YTU)mvg%ssSu7hj6$r1WXN zC$#F9?g~oWNDc+!KU?YG@wpIng6&L1M8wz(d}FEBX*}qdzkb4&z1lS{=1N{xwhtuV zyLEU-o#Y!oD4$8R*$ishhs@E>Ib3eE<|#_h5z-Io1gYUP*l!Sm*w4&NH?EFOA|IY_ zTRZzfj7oZ&$BOe!jLYpXo%e4TdYP{MuUSuzo)-(v?RRI?g-w21%dFnKyDER+euaLK zquLa{1|y+Gx{QtR`XqpR*LT!XVkO^h^G-S?fDBDVATDbemD_GTswXWg_xafBEn40; zd#c__;rm8=@C^M4;TBqem;#aL59x-mlJ+39N&ZeI&Z*H6VQ;+2!j}?es9iq z>9ADHGMi$UZ!MKgMigD^YPbTyNv5cfp>%>c$rK!ag_7hd3H=kEb0vu#RFd2zBlsX! z{k`1XmB|3)xW4L}X3)Z%ma>D{pY@doM+E6E`PnAP9y)| zE7qLw7YfEMV@k1HpuW*efi%i^|mpqbHPDC)E-5`Tw+ zg3dH6uKD)wjT_hB|42m>;=3}(FXClF)FQu+_k4u#m>ACA6j=kdGNPj3f90!Vh2F72 ziqhyupiXFPK37oZyG{sb;1vxHlYWY}PmYskJ%ib}4@QLV`aRyh-t(muy%AIF2qf=Ra3B_Y@E*Mf?<8D9xE^g$$JZh!$qx6mRJc4!?ENhdXtzP$cp z!&*rivm3aby*nS_#uK;e+HaXD76sS-{{A7_aa7;;EwksUm@4yrpV?`-G(S(l^^P4| zk>00!v(w%ht=^j7?o6PYeLojj2TBku;RGS*7w04fsK?nAX2QcM?2RE1~TG38c+A#A?zpCfT^3FQGfrLPY($6~o-#Tg-8lds}_=G#1lrbtSpZ z&JMlE7bMbS@~99PQ3q>|56Bk8^VoDXW};8JOOumv1P`JA%PNjTyX0Oxop-tsC@(Ay z;$IgRHEY>pQ`fKNKyojR!_0K|K(3tB^DAm0J|76vLa5ThsZU-yc(3nseAthR3)Gy- zK?dR@j$b(BRrQsOTbJSxZZ=;NC??;oe_-sKb@0Y=6%Vvl& znz1L7CArJhVzDMvn0sgm!qyAxW+fR+Ir?zR6;4$a^AhZHG)DZ=2ibpl;9@c7&{S(W}|QZX?7*~t%}eCqEMrzmVX0Agm+Hv0!_l|iTP zBWS?)3N(SFCrWixM#0v&p>0QYcEMSq#8=XIrmgMj$f;{%b?`eHjw1|NX2LAp8_VmM z=C`V8I?`b6ikmMHuip~R%|%*lX)ZO&f#pG%RZy|fS+8~cy(TW>u3lG9Hk?GpZuiTS zm)|VjXegspnnGHf)CiR+TcgtH!k`qig>m;0r1UohRDLh^qW~(C9P!IPhQOLr z$aCT(o^7&+3ukf@&F}OqC9@8l_tk+yh)Yb&7K()b&1%(QR+G}*ct*04lOYN7EDA(z zsKc0K1`*)6LV*0S$v!zQsR;bDPF{Vmj;1#g?qQ6szAXoaHpjv7y`kaEALzQ=Fgmo* z5wo&#xPR=D*WE-QEB_|R=>J33%bh_#Y!PF0kV6Jjr2>t`2DiDhYmp*yQCs2} z?PZNm*!;lA;CU;3do~UB8}TfHQYv98&*&2(5&x%)+*X)t3Nr5CCvMMEa&R)-u7%z& z2lDvAl~Tk}O9!c=m%-(ZA&oBP$EBqi#3R)!m8jBcSkbq3uVx({;Dnct$hbWP z36$hANhlMfZd)F5FCY&oD)!%TwJX2Bt0q1EJu?U*!cD#W$P-xAA&D`SGxa-fm#6M? z_2D$C714zS}E+b) z^&n3~v&M?(zUuAEgM3C5+|pP%a_8hTyb$9P8r6NJ)F`Er=FI{R$w+!9XD%Mi4V~Lr z?+51FPpSbqNq;__s^o+WfkIBa_)I{McML1D0pAY-2c&^eh&H6`Tn7^UmUB^-vujr zsty0k0*GHmH#|Q`M8@X*q|%ug+Bj;S>)7sKv*;CqCQ%~7tom<&{-;qz^m8*o4v%xO zCSfOt3gUg)4UNra4nJRQV9%+)075FrW^y8+QOTq0c0M1|IlPR)GSXF~$m`HS{e@{* z&K5_f&80?EQdGjr2)5%r4B+_z1H=xHw&w1tx3>n+K8J@!Li4W)Tn(-ZIUH}(&**KhmMKVcgSg-Jk%BEsAw4B$nsceO&C{LF9r zSoQU8f49zRb^yN$-C?onCBL;@)JXb$Fhh3p8UrE0)Wdt7q#f!>|HHNjs3G#fy6ev( zbVlASS|YSGs20EkXh+>aFR1u!VI?gl!*~QUW4ua_Ej9^*hEn>Ppo*F`KBYvc|5Id9 z!w;y-yTPNU<|16xtO1`4v31wtH%N)#nH`?~PS^;NP{5eCGTUL2T7Q~wJk?A;AaX1) zyVcHOV12j{3AHfj^&3EvoO$m!behB)qIJhSzmIWnbQzoyF}b>a6mck|w?6Rs={Dgy z(0>64_`OB{eyjt16*^!n-3EpIeCfwL6K#PG>*%<```Rc3)~@~2xcio-d9U5$ar48S zv;DJ@zSSd3fpnsjblyvzFWhLw@V9a}>f!lyjM_IJM|y!&QO+>Sx$KnQy^JEiw>26Vw~>%7b-zNd)$qv;oFL$iP7TK~2j~U2d$ON!f<2S@sL_jM??bY8 zyaOiwe)!RD8uo`Ji~OJDHbre3%6*P4SF6q%%0J)cME+Lm-~(`XHr1p``NO+k$r=dt}wo! z*3*}q_BXA^<`-gCX4KBpCrA^lsNni(oN~zu)R%dljjh67_eVb@vRv*@GEhkdkX<3? z>Z|qOOqIT0MD9g2-6naPd1fL+*PM+BJ*j5hjeim#wbtysr=CiM!`v18r*xr47?7C{ zj5NC`Y&5s9h;&|m;P!co6o8bopZ+4&F5zKLH3S}Tfe8k^L-ni80(%DlOkQs{PTnlvD)jkeJAQahn$I|NT3fT`L_addh>N`9k zqc65ib2P!=%?UCdP9)FHer|4at}gC@&u)_xIo(b6P5=L6>Z_xoY`4A@5Ky`sq(oXm za_H`m?vMuQ96BXOx;q7=8;0)g?(U&GzVUg^Iq&!PtXVAXx$b@Ky?-?uj+4kexxG;X zFNAW|6QJ*lvI7OK-ZZAqnmTIr?MH1^C4k2AeD+#h8Day|T>Wy2)T$DJ{NYXY8 za<3he8dTHOH25rQzvR%|);nrqCa#WnOy&8v8ufetKy{}-BO-U%__)KVUz4K)LyJsmj)gNRaX}FqWo;iCnEK_csoxJc0P|a*0sd> zCb>rEG-`j=&FP#F`D7BCJ2fFzSuV)lJr8*=b^>q^_M3qhGthZUhFI)k5Z2IRtT)PL z|Kt6zcgqb?#f53L%AVI>=ub+ZoFgS94D))t38i)^luz%33gCzFLO`T^VOxEmE`fHk zva&KR&$|lEfkc#o{C0T417=gC%g*?(;ysNi7$i}<^Eo+2j;XrR5`z^Z>Lc7)n%11e zsn^8vg?Jw$)Zp*j8rpk1NZl>WDq@j0olb}m3MYxJ)0+Kn%BD0+qcVOTd_`pT z49~LdjZuV;{!BkVATo$$zbWXQk(3xtK2oqoak`4Y7e#+Zpd{RT^}TZRhy0z_OlJQu zv)E}5+Z}|h+|Zy|%`Vq72aM}(IScaavsC+|V)K`qGl*Wa57E2b`NPmG-7F18O z`tEQ`s@*z#NMieCjJtxun2h*-as&~M-e3>>_q_bYp^kmgy%yd^US+mEl-~nNnoKW0 zravYGtpF?nQ@cd>w{Zn!_G?Ae%yW5fdJf(74K%7B_N8;D5N2(nTBMo3V!{!iIj+FdeOOl(5{O?kNFem_;ijYW;Moo`zS?k9$GeY+Z==|mz%aAO z8y8v2<>Ap4EVmk4ot=BAbHD%`A=p?y4j?)5?wgY6?_XWTF~1r&!)M8=rd>&KDxh-y zAB5MwCfKh0{+Xz>?6Z~F&ikNS9!^)BcxN$xH9-}Ov9L|*)S-MCp6B#O_2V+?@(j?$ zf1YEzK!`7j*Klq5JxZKk_0wMq$f18ZDVgQ#FGcIT!mrSlYZcSlMec70gb}` z;-H@F*7NQ@OLfc6aV8;}&JeI65*eaTabEwD;tRVlQw-o45;L zZ|}4RBkyo=FUAVsiEBykZOS$;Tj26@GLxY?Jw@aOkh}|zPEVe+gLcn_lk-1Ep=%g)A|iS<{r=lNWm1C7*jUQd5>yf% zjhLbe=uT2G0OMEYkGjk%<37~0;mvrhiCr7bWq5Zt^PvQ*FS5m!|CH>1@wRDn=bPasoH^})SPR3nCw-88a;1ycmkEntMFUsD%r$Us;-<-7TGBk}<2pMYMOp69y58Fy z)Tr;jg3BDDhVp*05?gPOVOxH({}g_AoYb4FhL=S0NBY+V8-g}Z!0bv_pdhVbq6=aR z-|EPUj82*YU6U#4;J@8OF*i&B%bcYi5_RkUhl_piqZi47QN0{w)knb@E4W~>XJKIx zc6W80(hQ*%SN4mSHWd{ORBUy35$#n~AuX(q1yH4%@Ox=MI8A2Nrc>Q405yDeF#>(( zbO0s7Yr-AD0CDXbE7}lA7TQA-m6Vo*l85h_F`R2+$-+!b-?l#Pi>BZjqAoQVJrNCA z$h5YpmHOpTV?C;wOd{p}3*u&_khib#UE7qHqREB+7cPcA{PwR8oYb=F7!w` zFMhABdS`LSd6Z7NK4LE9+8Yd*-DKRl`cQ9@lA+GsCiR{f&x|^2Pdz%b`e5qHkWzCL z?e{lzJ6sa&sm61P9Qao|-JUn%C}p|DDgQi?1_H#Sw*2XNi>^M-I+Y1EB_dkLTrRs_ zd~emzQZ) zfyBC;(wryTIs2k{z`F#`tEz+Nm@9qGf|-V>BEGST8XuQ!KNk~~XaqXWm8 zX!d6cQU{qiC9}4a1bZz_RvHzytPLN<3l6G2m;di{(TT2;eOomN$hY;p_D;~4RQU{+ zRzyUHSzfT3F2azOkr{#I=ls4NVy02*gxw=jA=x~8!JG)1T38uwiyRuDf@_KrNZ2{( z@_2QopJaD5Jy}@&bwP)|tfe`-N!RavZ+;&&__*V!BAdNs4^E&CZ@LgE+P5t=vgpRh zgTgN=)sT1tr$(xK;(P8Es6QaoP6FZPWGMt5h0vh?7x^xZ?(C}63#om}s=Y>8@cPu7 z(M$o*uV3ir-~<4dzJ~`-Zv;WW>(ib<64dlk52_|pD#+VtzS8!-bsG<6R=a5=`7%CH zT*py2?`la_V3QR5$g>i1P*S*cWUt?qEdS%)^n~*>JFbya;a|{<6HQ*SH7)az{Ao<^ zH4qfV<5%ymsBzmkv@Tl?s-JDp7_~NL#Jn1?+ z=NqdWG!IHwHXnS)Rm;*Gh+EV3qAji0?sZHuo8eY4GNL$~D`$p>g*trFnI~s5fFc)o zczMGK-0<*LqRU0QJgIDdcV8;IBf$k)lAxm<`RkRw6yMd4%@ zM~AMv+AWsisn0_62zYr6rFSxYgWS!7lhzR&MMvN8auXtQay5ZSJGvLxtjgYIyk;!u z>xb)M3?U3`3T0EtY-ZhA@7BzQll;!k?5d5J5obXEJ5mhjii6GXKGJFMVf-Q~J){N4 zXhEmV22w;xYKX^KaU>wmVK}S~1Onk>@9^@fN#9>3LXAX?_D0hYk&v)tR={BJM5Ch_ z6&01izwW`LCyBLRLVS=}U)9;In)n0h}oWze$ zHLQ87P%PXn&Kz!p6F=#;hkb1}mg=iGE;o@JRuD}*W7?l+2}!EltD(e;GFWIek))OE zV8p1;0#={eRXGaJiR;<}!Al#P>;7G#As9aFq^+l|`!l79KatKp_@;wN0O@=^$9$JD z5Lz@Ig>)VqO7RHAC4PMTo&RvF*Q*fYP}uYnR4_in6*Ivs6DTKk3W8y4A4!Uu^otJ3 zlU3*-Etm4yinm8|Xi&=MD>ParFsJp$3eRvFHx?`cD%|4&qfP@l)LNC)KOg{V zt?BcThlkMJ-Cd*2n=c8ZvPPvUt!qfUYLddBbywG5(2m=?I-jy=1$VJ)oOE6ns3 zhVD|%pn31+=j5zFmVfe z+Qr~Hu{M+Ev&Eb_Md{b1!sw{)BMigcaVFoscwC!rrS*ZQW>ZGOJ_8s<)4om6gZ;XmdV6 z{a=MAGI?Fg6ubEV08t+Lg3_A7{QC{=glC#H|%3$fiE*3-v{Mkt?P%e@OrW zCTaT>-cWmZrP6!r}$)FNx7MK+eh@eKsY{n z#rny{_wJD9uV!-D_2Pw_|2armHy^X&ZWk|0RptIyeC#yg@{}3Pyxj*pz4coA=b$)E zr9e6?i2tJKOGB^BQePAay=e!HeA-Va{{BJBLXzpzC-FdcO-~h-IK>N13zP7hqWa(;XdXxo$_OWV z=u*+bfMGC>$ij!yWT|#&4DHU=tJooe?L_^|<6mgmv5nle?TAMK5p1Dm<6JG3Sti_? zew@4)T7y;u98)ngjEr)ndWgu#Eljwt*De41or`H;EEhblJ%31B{_l5QMu*E29&kNC zLwyfVf9kqykC4Em8&+#Iw^`PF+6nEjgZvv!hH#;1upUEVV)X`;7beWVdOLawb%N`K z65uAFt5pW=I@xY1>QvY&h8sr!uO7!3@N8sgms_qJ9jRExhl*JVA+{?{#uwB`XlWiqN^&Ny4 zMytm`%{{S<1ia+EQPoUKyJcYYI<5HhL}Edy25ZS)>syEOl`yt15^f3HBg{v%TP8_= z#@C=Gbn7pT{|Ii>m_$`L`rnr}Tjp@v2{O1jT_7H(@=-W!!tHj*YrlBi$ z=SsK?w#y7x4z)hEu5Sgh9Z)YW5a+5JER>WdT&@SM@OpHyA0~#l?&YrEA@aEVb&PVu zeUVOMPr^e-x1;4gXj7JIW3OZgwvdj@Pii#$4l(<(54TO+uKCYUR+v9Xm<&*$M}Hi_f# zJu^FM=b1`Hz5o35MSh6$iUC;Kf&6`}3oQm078$HzAkyl~f?9vw{{m9zyu@_gZ;&v&o@6tbV0iI;vpm%3LTVB{j@{6Xve@v1?%UcUr`6?%$soXniv!-e{({Vq0_?kPPgbLq20) zD~r(fz}|e17#*FJ*Z1UZD+MYkVVr_*^$cZv>#@&XTvvabL5&UnhKY3kc%!|Wc(s#M z^sjbL5pkLaZo2AT>$YF@zZ)w-ayw^4$)4nR`wSE_dPpflwekSoP2skN~}Z@e*Mt)bb)l&4{)jS zF0HtfM#yfM+V_vZ6a60>$dd7Iou1`?DAqo2W4jzpFFl$Vn2_t%!BU))iK^;+EfY0K zi&KD}>G9IIlH}VGAFMozA@1untry{F_~ABFb^i28r-27{$KVfuO(0#t@DSFS-dW2N zfQy?a)Z}^R8#Btep8Kj#*&5rJA((9rWVT=aW#j^AOE7ym_vk*Gu10A zD;PRj62MrF0ZsOcYAgfajJ@=a=Ixqom>@(Wz|D^(PMEJ_$LfE_)MY=l8<0;FFGPXE zr!Aj|tM}v_gCQMd_9$FFij7NQP)6MyvtYM`Pw1Q#r5R+x!~Kn&d+m}B(8<~E@&5O3 zwU3Bq7po5^j!L}@B)!+XsZ_QuJiu)%EtcdNc3)o$5-!O)8zk!3kmNp(5wLvBMA zwGMYvqa|4LdcI%#Y@|#aw1#s3SMql$p+<3YPi8tYmXa&Pj(tj(j$E84*sG}z)K$oJ z6uMLCUj<;h*q1Y>H@|KP#egCs-?lw-p%9^dLZn^_j`Nm_uY>umGI;QrV&GfudcG}p>Rd_GJSTEcEih^a$axYwM0K3vOjO%x1ulQ_si%|l?#*FU$V4OapuKR()3ZpIWz`65|m`v|pUx`eKW_a@Xx(D^r z`3jPtd{pz5TC^XK8B$sV&JB>41-|E;U_~?*22S_smPJD$ZYi;R^@M1LSPY^ahQk=)Ln@NY=NWzf9l{ zep;b_A3;0_ysMHz)3QKK`h-OSL=(0y&u*yp!E4|dFF9HFe_&yp*qp^Rmrpnnc?K&f zCk5rw#E$=V^;w>6#5g@zBX|T+BazaYp&1B5w9mSVMfP#$K3o$9=2|3bk5d(}q_CGF z0q^IGQr_bw-}O<6O8tOe1v`FRjs7&}O|wBGJjO-|tY*?l}|={aFu|HG*-@-dwh4m;O7P@t37MJ%zw zd{B01H`FixlxcPatCo>~GZQ_jUCqM;Y>7v(O!(gxM?p% zp688ElBfEYD5^9GH+zmzcNg*R;Bc<=n5dXi*b0*S4_dQm?I|P4g4q~Ms~zTZ#X;-j zW)EV5|MG_ZtA_rUs9g*5_V?Cw*kG~rEC6mBn&D`=QsFRahCi84a7?%s83|Mf8{FO7 znTY12?jP77_@R7?R8_Ix>^foAFX_qmhZ`ybj<3b98PLTQ65i^w8$eT?YD)PPueN^~L&>w*vF^O(JnQlBfG#YNEC#rZ3$XJnp((HUA-+Keg*?%{{*tq)eGZ>x3O^i43d(REoA~ou0Gj zW&!@$g{^0b2v)Nzw?2j4WF!_gd6R2qw7lw$>J+vO9YJkYj+rYkL=D7O*B}6y4z-?!hXTU=E+9n>yf*h<_fpkN$u3!fB zBePbWLaUvgd(Bd-5ue%%I*9 z+WMls*Sm)Iy}JFhpYyyfTJ0Rv_TI3~{^PR13IFz`zzb@AdP9Lf`U!x(AN#!6r8UDAy6(f67e4|S2@>Y1u`G5jW4VE7yNY@ zt6{D_?s)gq_h~x6mz+GYa3NX|%bhwxW?%mF$0UE}zF^ua-(`w3{`P3czXkAKe8BQv zePBb?=VF-uVteq<=l4uocT6Cmkx^*Y-^pdg&A683p81<(4SSNL0@l6*2E6ci&0nDu z0d?;p%`O(sb@em0%?Qj;wX+i~lu-#1Zo@Xkn&JYsnOwTetHq+_I)G01OX5q z45>^{Kih(_E-PCAtOA<)aAx!SZ~P3n6^?C^PM)8?Lk@%9L)OsLY2-R~8-M)>_+&8S zX*>LEO6VMB&EmN#joh4@*nhN15Ed%n8OYnB)s^~!X#?wjzNk*tPF_`_cxu7@R)@sq zi|g#%-O8+Q6qZ0&e@FVv*1z{FC-U2u3=%#M?C9v|znc*NAD@`!1+Q7H!HVlRE4a$D zG(uA*@q>kw)ceh?Ef%*k1D2m(9Jc!%ju|hjl>6Amxr4ap<6DsIsqOFhHe3M~mwElS zLpS;rrelN;;?12w$SI~fX3>8zwE@ewhE#<##{CiGlF4Z>P?iuYDxDTgbU6jLiMvNO zm5r%hfg%M-BviFFC@dsJt~F;Hxse{y)iof}?-mxtn(l7*=@Uo#&;4KKYQUhUVMt8V z`-s|@D~m~eONO45E~|=-WB6_X5;RW2hPtoXJ`*w;yNOkwOsO|7aWakN4hcnh``Tyr z{V{YUK9+f>eFAZi>Lx^cRxLY3vl;|t#C~_5y%=O4=)CZjBK=0d%Ac;bLLw>Pd-IN@ zg3+Gn_(XPP>BINR?efllQQW4FiqvtgL!i3Wx5gh$=3`E6{e}Yu6Yq=kt=yIMz@7>A zbAzewhwcZ@4;Ksv3{z#)I?=-k=M=;1dhlyj(H*QH^M>EB_{1x?u>zJu>v8czDYfa8 zJZs)i_2cSBtX?l4NSS8fdlR^iMEqpfd2Q8P5dJuDD~iYjt$^>aT>i0hn6qyL>vnmG zII4y!BR#2Nos4dX`tt{@%uvj8ibw*krtH0R<9&}`l5U#02@GGVTt(NE6q5EsXIHUq z`LAlIe4`W2>rb2$8gplFxHtgRAWu&2j(s@Wap$Z7HR&q94Ep>JOaW&8tG5Cao;+YtExy(+~$^6oud1` ze3Qoq5y*TT6cEYh(R~$|8IsBUtTD+_S^Tk^63&m*&(7IijIYhZE&r7spVKNWDN-QD z4GyoGnWCE)?i%JW`BEC>Iol}Kh|lBrc@bFOmuBc_$8pWT<2{K1*1pEg>j^eG<_05# z#Gt(gG|J1P%FhE$%ZpwIrelAeg$f$llVdt!PL#U~P?=IuQ1iZX{>;yE>EB*tZ*I)R zYpy*V!x~$0IV?|QLX$0~fmBnxB)#qeC1&OAM=6#oI)xolsbM}j-!Nk* zV0X-oAQ-k9aye`uhDnF_IHF#o28A>uWmhdL%aE7oBY>Sy!&;6m`5)Hy zQ6TgbpUJvHH8^%lHudjKQWmNmM(nST<|Jfgk)ipbA$nks(EO9M7pSj#4m6s=sL^Z9 z+l$3w61pd*T8GL!#GIViH+g#B2k|FFoostTw^_Jr?0TqUo_LH}flvq$(L=3&p|QEy z7`nPcL`Cgo8v{^wQgmFgxt{7o*FmE%FerD*i4^g$Y|{e`$_-=*zVtkSbrWkyPjZ)X zZF1}O@y5|?2y2AG+joVdD3p=0s<6i0h0IF1T3}9Ee}pjh)&Equ42{FuzjKy&vOh!H z#@Ws88OBX&v?x$3nBCv+!5o@#-)*(&s>8={U?vo0&zcf3I@bx<8?R-50I*`-eYC=EGJJO(}}VmD$HJx841)$OVIvB zZ@Qe!@eph7lmS(YURA}mi1~IEaM;|2uFR*^64;^wu{K&aep=y&Ktg;#1_~qNhevHK zQ7!^?BEsS@dOG(M;+}jk3~Lc1Y~v1EGM=?3^fmXzC>gpp48bov(6GC*?pCD7@t4>e z#QQJ!VYA7-}+075)|O`U;5ahpBT!Lz z*82o}0%@L!=Ddho(!iq4cCXC0xn`Fc>kGC+km{S6!f*T*93BS?Civ%Fh&uhvz9$HE zTlFD6Y(rh7QYE*SSzYr?#)kbI?E`b~r%+`@gbd$Som8=`LwztkAx6s+yQq}{&nA$> z4PlAAD&rPZ6OzuZYO-F5bpFmjeynwCW|XP~+w$*?1Ka~{bWr9aZ$mf%@JEHXb4%u- zc{rm){rU)>?dH|D!XD|sJ|G}Un;-lR2s-TvEW@hcHRd!0e1XOCN&A`T(I#4$O*L*` zSa{xV16nVGcg+SmxdIlCl+I#qUS3Z?`gKqK_I$mDcBvinu11;j{Nqz#nkXu=jz5vM zJ?pap_I;zgXW#p1CcqZ1H6Lt(@+A^-^sNOv*^enp<+UOoyst6VF?}^&HLge}iB@u& z-#>wMTA(}p)dYi)P@cq)4#MQHe=#~$!hdAD!3>m?u#afOg7A?!MAGhPl{gHN2%EjL z%Au9QQYy2WNfyj91_d=`z=N0t;Me0pliGv{icty;rbpFxWkk6$GVx;*o-~-}h~+u5 zrz-E@;d7wMv>am^cU`T;>(Jl(d{t10oDt_nhKdEljx-^&M4v<3=Y8!AqL;hcdnT-V z*Gv6iu=Kx;pefuPZ=oykuC2S9Tf@)YWCv#E*c{O?9*ErQ%Oj)`iVGnVaSQ{9#)j5l zVPLw4dFii@8~D~uPNSltB<1CC?Iog!JA7Ur^|^R?jiDJ|{^C^QAZxY=_(PhcI-UW@ z1~mF4vP`$xQs!2UKtl*i-=Y|1s&ay((Fg1dp7jsgIv)5)+sFAkH~ly|Ce~l0P$STN zg5!d4J@NN4L|30*&Dc`V=G_ey|Gb2%mXp-j0M-ek@)u4EMqFCPHQFVAykYu|6b?97petq( zRTq`SYW?9N{A+;cO`XfUb^{*J@g_&xjkDSlQ^bmbXMuY|aP}>aNq(HX39T*qwbP*m zVC~91yTOqx>UKh4=~PoEEC1|T`mm#~L&93hAkEDRW^eB;oXfjjm~5x&wZ0w%g&w}3 zfZquA$D1q>>74K)6wo9PH{NM#qOX`{b2B}TIm=O;or>(CT9~uGHp*&`&Rl+CvQ5Kcwr$UV5n8?{pkv)<8B&vm)adr z&abeb0RCvMTph)cjCW+8z~yxLcVG@ph8qm@46O-`+)I#oQ<@O28g9W^w+~VTmd_SGJY)D_`ymL*MGwz3~0wM*T4-|@ZQ_hbJ<|-^Z z(%sor)jRW_escD=eS#sIY7uR>D*g6-9zMOD#p(T_fAApu)4jTnS||0$e!YopK--;) z1>-OA3jHreUB>ZtM0mI%`C>9A5SPdj!u#>u50BD&F5eR5J0jRj*N277jAl+%i!#5J zKM+$qHYza{T*`>13f!>T`>RL3zTD}H28kJVuD>tBIr6*A8ST1^&Fnjw`q8(g4~S|W zYt&}^U_R{Bb6wqSLdER+?SU;Kgm7hhaYOt z9X>&WrqU0GCURNZ9A&xd`w)MiG6loYR)eJ?cPk}6>PwKin-oj{E!gn)yuk1SDMiZ z8ZehLA9uL{wRg1E_SPMvG_IRHNP6Av$O~OBTWysOdoza(weLkft&e7&!dd!#^GNq! zQfMPFYw?Ev#4mvHZ2YkGn?zw_w~W(RrCjN;w!{Y*Mi*wc^jL4$yGn2d98gF;@JV_l zU*$W}HL-l{iD5niLALRmALy{Ban~s=rvgP+1q%M@2V3 ztdyLOszTNaWqdl{+ot=Dse47G&oozL8S$&>*J_=FW}cnG1x^QlKJrWLTaK6_(zh9;HNhe6q zO1<7xyAJm*cQ!VZ9XWGZooV*d4|IX_UwFj=6b$Wkla|oQBnv3{-ez%)yD<~(UJoy5IJ2|n-(rvKIrW=xK+#S;k zp5sZ^i%MkHFB@!5WVt0Fd;8(&%4uY)L>xrwCD{qo)J#rUz64txq@Ug)I**c`xhscj zDJf-_0-;o*tp^f*d{J}ZA!y80;wNJKw;nEI%>4)>bB%Zzt=7dQCGn~xa$CRU3IljN zeiqKT8OfmVWMU0X!txDWLXx$vQVt1stfNdmdpf3)$Q?AU>7{Ph_s2V8#EyAGR>79C z8=D!VSX!kt1PfvdMb6WmV|@xYdFqrLbg0>W+5LhI(iYJ+#ljiUyv7i7A$Q6 zw>J_Y5+!D27^K-PgX$`AUF!0vh)C~6>@6xi)~4AI>!KJu&vFr>lYfN{_3F%0+%$n6 z7S2erXZoPQd)W*Cu0F0LF$1~2Zs_^*70TixAKy)Jb%_f2LNdQExFLto?2bQm?A{a+ zwQ{)(Ss7Zm)NV3O-@R~30hTU}FUqHnIeqo1xQ?{A@mxL1nnL?Jdwo*Li?Z8TcmUKL zd)6!DRG-T*Wj1T8oBDeQ3%cIM#ahe9aChXMt5F%gL0tzFphICY^{4P1rs)AnZ;Mx9MBH7HB3M7gvy%hv}QWPf5AFtGfzxQYT>& zJahcwXXBtG#LQ5EI>iOqNc&?YtbRRFlaxrj^wiuQ6h%;Cx?Vd|-l6c4K7S;t<2l)L znBu9tHMVthH$e`VSm2iWiCXLV_6sxns6$f!pLe#SKrH&YKiyLTfS@+HyHqYBr+yZX zmsz%PEOxnZ#$5^~1p%m_x^$2`>9#vEu<Isxvdv$v6lH#M* zSG=;@c!2-AI|33+19NaV5UizoE=n1^%Od0pL8;98R$u*BiZ|QmD^&U&u@e0y^G% z=(qh)NUWT)j>?dq+PUU4E;tz9zE{k0<%4)V9aRP9$*ABBgT2cZn@7bW9u__9qUENn zg%#*5`K7v?8J#rbH)!lL^Y|^BJGwXUK91`H_BmrP)JsP6_HR6{_Os=sKcXS?fET1c zO?)&!|AJWK2nV2OS$bSf`B?7Lj-0qHod|0x&q zHpKAn-m)07_2DIn2k7)iaxx33x9PJ7`d^tj?R^~233tg z)#T{~jRG!+P6cb@#vvE22{X2(Q%lYAwXbsLP5GI6z{Z5b!z+_YW=@<1Na-v-@b0wVtF6 zQ&V0}g@sc%WOenDiCeP)N_;oB%&NXmrpEq7ytQ>okZbKkM9q@c=SlcXJ|k{ zF!?E#DcbS-yPxQK>db_iCGsKx#2OS5G3@=M2cMkt0k?8cU6>XZ!BX+1>*gs^d3*3m zkY!em%c!12qFG8Yjg#&P(jO1ArjjUdr0Ejg!=#;;2@~mSSMr_Pxmwh(FtQ71La6TK z?5*08{A#+_rJC2R{dK6xpH>;}+q!f&OAiv3T`SR6KHTM99zx2MGMdyIjZ9=i5PAEp z$SZW@uUc!~(raHPf*$6-7hgDH(VBWCPnJ=@>>C>l$-WnEm6YuPxPMwMJHW?v`;q1h zM7BCLrF-MkcRm98)><57)cjKT{6)=(rOrhqiD12#1Wl|C8*HIg`9NKGW^RFLg_@(A z_O(rT`|s2)YIJrAq_&n;J4JXC!<_Y#S~O9P8q0j313RnSXh10Xs6j0xP$q5kuHCQL z@<@_E-y*RpS8QoWELGmaN&80?wL^VbZ_^6ulhN{*-?S3BT!*Pwy0;?bfLH_)9jKu} zmiRXsWu=f60Zyvb%)I7BbokoirIsSRS;ok}gKDRcBFVzt^pQybHfpu_fyA2WPn`Zgv z<37T-p!X21B%@M(?3d}UqD!Yi%PXm87nJq6HG9+)R~de%D^27~JjlR0oA#=mqjeID zfQ_zT%1?2qQr`vAMOws%?2VhNE;ew`1O2-CK5Bhh=Qm>2XLh&3E$^#KvqUE5K-R_V z-jMR5<|thY9^ZGvKDpBb)FjIbEKq36hW%{ zt^3iMukNV@_4;k}enQHdGEVH174p61AAb=!PY*j>S>5`Joh!ZVQ+(`((;i>MLpi&VF+Y!76~#8 zA*R1L75LG|h}Pzt#u|dSjp})G^J>^%i)L^%I^wpa|JsRVJA$WB2v;gJ%HTy{#&;3T zWfl!Z?%+LNp7hVIh}hP*jsi+iWbC@!3EZxnxnrFlKMg9TDxcb()4G(;)14hDVZLop`JCrF!tk-aq?^P7aZ%8Id)oOZj$B;jZBkt zr#nEYS?9$l&yPx`5_3Bl-|3yYK$D>a!`!(WoFM*WX;4@bg09k7N>QQeiJ zYcE5)(-{0gZp`q}m#ycyv(w|R`wMJ1YcIE&EdpB-wKpG!2s2DN6m7r3EncKg)D$D# z7%b9{t@q&RcMp>#WXnI3@Txl>4zfJY(6AWq=v_&Jx~}jFH!sObZ?*N-IZjf^P5p$0ue8ci(B- zPhGbOE%eGhS&q9Mw;E#RgePngVhjrCSHSN@9E3ci5KenMX7iX~Szh28o>9AQDtu!S z8hFr5a(mWS)Nn?_^!Gxi+KbEZIdFGdzZt^VQ4MBlP276re<3wSxE7Q&|MKv>Nd>q7 zg^V*(zFkTfZl`YZBCb}4bkaV5Q)KsMC?j1aTa)8LYCD|xNnZd6RKT-t4`cx=rqrTR zHy3n~LpxAEau$4SCR`Zo3=@AcT=dsjcx6?1c-&> z{Gq-@DHW}#(9)l z{{dI^#YOUPn@q-%&gs5#K}*?>G5%KPpx0KA5-gdZk@=7rPdyGOc+`-h;#FbP5R-N0 z=Nr7m6CaNU+dawg4M_D%z$t!C&NmKVgu=ZH4yrfJxzI(>~UH?igl4ktcRtGRK zyS0fpN^j+twqjKApVVm24wU^FN|KqK{GwtjU!SbR@iHNkXD%Jr-cZDIE78h&PRtmi z9whL%^K?#56-?I{z8~VkhqZBhU%lMX_L8Z~jiNGfF?Z@u8LX%)&7!#l1zI(mz_V~R zTcON2ySVsxN-ic0nl%?3@6`qb5wUQAyJMt@5;FiDeepV_>7)ICmq}*Rv4w4Ey!UL5 z+QXsU&-RlMuZLwvw7A4L!=(#OyQO?K43guJm`w^PJSCyPi@`%ec4_cn*awyl1k5Ir z&3l2hh}cKhE(n)bk<}1>Z_K=78-HAz2rr;bmA1g#WB0Ie-rs z_G_NLtX5qoo>RXM(XUQ>i(8z;Tz|x)**)GiyiMeVHD0Z(zu?o zQt?{EuCLgOJx7hmth^Na%3>{;OdmDOQ+fuAF}(7(Z_$~Vpr1bxkqKD8 zx2@SSB~DICzeXOex$>=E>g};Geg52T2KBG|rog8XV?H4H#bAE?1doVTpJ?eZk{te$-anA73iB(? zI)CB7#7z4-Cgx_$N_t|M;NRQcS7`kVqheYvME}+ID|i1Pn)-nINc6AD%yQUpPMgkE z7>wesoG;sfm){`|>P1DDVp>{+{$gyiABhXTqxKZJLpB2x%(Ajd34<1RD@=eKp54Y? zx|%^b5{oLh)3ZD}C-1`W?s^1XeA6~rx1sg&K;h+Gto#AUz+PBl1b|>ds!GGk!Rm1< zyn<%CRpMSUP0{|4FR<=s1|{RQT1f7v1XtbbZ=^0DDgCNPVB>#=Qvlb)zuk-+l^G?w z#`^Pe7?~<2nFxN!d`4>nUXa`k9j`G{AqVv8Mc|#bAPF$&m%A;sc$0(;m0;lShnK4} z^_78pDDEDOAsqH<^@eC3CI#oIoMg%Q`1whv8@|EXW-=T+G?k`H6u9&3?~v0exsQb6h=2j>bS%hc zdtuSMs?>fy+s_5j4RMM!1Ti;f@!6zM*Q|NaS9sK_X7^+g?vXt=LtrR(itII; zdu5n4gZA7R$wEEuw5sAQDM| z;5{T*%k2??JWHsF8S9tFL_$d6RSz4PT$eG3&-b1z-*~Ky&+T-D0DqQ`R7g+B&3n!i- z>(0gG8oCfxlx3A}TO!9rt)kna8Bq9SeMJ^^~w7cwb*% z@i3VopYMV}4R^9hqqMaW=Jf7&Pxfnt`C^!zAd&#aRd$DkFpBk*{U&FK1TE55QUOl;1FmLx=r9ZED0iUtXh~+<_BsV%md%^zPLT|HFcDB(@pN)l?Z^!>VI09qp z@B_U@5N&TNBNl!XheGwbc5qZ2@zNG~rHHlnA6}i1fONsLJ&BCWg60nu=P-8T8YL#D zJ@B$OTaTfPO%hi1Q28>A{E*KgNwEP$B&&3r_6QrO#jg1FQPCgQTdE`~CFa?*!`{^q+ zw39=}gk_4Qh4wA#(oQTqrL%-^E!ucHRnESNQ_6ckTR?eZnu?R!o(*=z1u<6f+|_HhijHl2zR^%hz<5^|>c%CRyD^f&O8KCoF$>XfYQ z)RaHi4#OH46qv$#F=EYE_IzBCFcckG>)>;1EWRCR>>Oc*sIjAav>z=UpLMzUp$E;e90) zqvH#in{g0}9x@&}<&5E2D_g9By1Lqz0?cC#NsnJ=hPckVyOCZ&R&aHSs5gC+-&z+*_CP_Pq zLtYVyt+sk9y?$*zY-dVtX*=)5UPH;6j#NlI{aU*LfH><1bI!Z~U~ml@K~j%A5voMYo>S^3arCP9~BLhPPXBp(K)C0og78Sq~;znmyK}yEUJcEdovI62d?Q%EdvV^R8Gqt0N}{_)}9A z)XQ;quyLK&^TSstTjMmx_`%lwyc8jb7UAC352-etFncR4O(yBqz07mk`emh(`(I-j z@4^Dp5Yfi5tlFNP0HKN?HKgoXo{`t+5<7);%w12`O{&p7SA49r9@b~}n<0E^*Q!_P zy$YW&$m)*(3m8N(Mysq<3vajdl}-=xETQckQ%>79h6>8u{O`Vx0)(wJDN%U7kt};6fb;4^f5-+2`Kgv=A7}=9_MZ>twEWg&YSf;8!N zC7ev7yMh}L5W)!qezR&$-Orf!v(;u@0L3TatHKR1QbPfJp>kmxOCD-S|@V5 z=?=-YRnmp?@w+=a6j!i4Bb>LR_GOK;M=?f~^)|cd_kgjM0`+d|i|szm_j(Hgd`6@2 zk1JC>ELw9FQIt}5+e9T#IlXC!w_evEokH%XT$07p2@vM((B}uEmVp6 z1gn7;56Y-jttN0JZpeOh@RLTk%Aeo2&v*G}ai;}*mZNuy+q` zTX70kS{@SazxedQROn89;6kOnI=(hGW8WnB&;2T1LD_9GgBob&bYdEI%op_WX83sL zoSD{kUX6l#0=Vxd!+?Znm?=N-{xGF`lDxx(;zaZ8MMm|yB+`7?EA->FYb9# z8tyxj1mn@jHZ)eYVDaf|Wo<8ROXrK6vLvHQU&|FxM;**I54)`qN|xAm6kP{OlHM>oes$efl?t>443xh)&l1A4ePW^ihhWOeW&i%Y|Qo1DJ>0+~{Q z&WL$9iEN41Fbmlq>`TX|JR)6js-^b0p!bYNLvWeD!oa``Do&!tV76-PJah1@Qa|J2 znw}0n+U7#nmOXf+TV7jLm!;RpSgk}$Ed#K`486$Cd)}9Gr0x9{?WY!-aD2T4r!=iK z#*Kk55Y+)kv&@n2HJ5OKUYM1yV^UwsRnW&P&JNE@r?MMmjzF(NNvHH7D}fLs;m|Is>B#$)d`*cF1;oICGNTy#T=(>eeJCEz(g=ojXT<&VV;_4Zz`h( zRmY8*YxSYW(B9{ts)_u%*;LsD&Ceo+fp{)DF_L3<1Ey9YV->WF8+H30r1UOw#LGEH z8*3RX^1j_0U8ss&_Ees9q?NWbyQ?k7OV8b&&|fBrSV|}>$4}NzZPHEMnI7^<{UF<` zWzP7qvQEecwq}!2Hfx7#_1v{NKYhUj{@{u?(6nxf7e)3k?FO(-LE^HzryO0DcXKjO0v&GKxn3+;R8(Hm>tc7Mhn~}`9kn>|-S!AMn=xtwgYs&aLBn&~ zYLWbXHyjjUQ?SNZY59*lPDiTSTT!Q9T_^W3gfA`sdkX{w+lf0lr8Z3{`ev?h*aZW3 zY?vcICm_3-P$f^|Vu6_%xO5|z&=&}=H?4;Zz}=z)j7MjK0{ByEg7y%u!1rd4h-7EW zYp2L$qog=G&}Yk;F^oZ7wjPefxYr`D+Eb=Dyf>McO-Xrx5aF6RLqWp#TD@pdU0dSH z!Oh%}nNyu@&hgVBmwPfz{wAqwa|O%;hsD1b!ZHLB3M|&nsQ>$<@o}+?4Ra znjF);%9|UhsQcfG6;o9zjxu$t_TXK&z5-48kj|~< zwzjrr(fy-ywyw)d{ya3C3)Ko9`Fp?BWP($6SnPM7*4LU)u(1y>9F`@&#Y}g+jpw0G zMVgE=*qVa;U)&wa=0i@Htv-OHug0ZR{?}ZDLOBaQllH24ce>eiIW7ETZnSo*+Xlby zn3DB|McQqQgmIMz+jifuj!;j_B09!%eo~_&-cv>iPIySMV^?*hACk>T!k3 zr4;@i0GX(7x5Bh}+wtt$8DKr+qtJy3ri;{jj`OC5l)JJn^i^FlVFq1Vxg?VbuKwR~ z7M}*un%sH|H5PLOmgaMMIXM%#YN|DApLZoc=8Z|TROhtfXy0;fC? z1H(ryqiAXTsmV!AY2&!|UD7Wf6L%n`^UT3ws{sZqR5~U;I{NlUcqJ_|ZtcU&Lph&m z{`~#NSv_}dt;lOQSlH=`Y_1j}N=i705Ad>xPL5c&s&M6i4XvMcNL0}U4K@sRqD+I= zWr+7C#o@lJv;uJkP&{8C_(eG%zIZw4P?%G$pB^IV(CT24=Jvb}!=1$uE4O%Px}H3p zYhMfd z&nh7Qr+KM=YHx3R$T`KLU95zEO?{N1TB<-s^0TRG+4ZCid12ymL(MLQF zQ4jQNAcUPyJ!Je;Ne;qw(7NA;gR-`6p$^^Td9qVFT0BP}bp5t2ABs{KF=-BuNpANvRG%Bf^TD z?yZPLiK!$T|8{g9rRUMO!5V$Jv*5B{VN7(N(S(=8GEqWTKk*gd?DC6%v$;M3ou5j) zM11Ya*Ijdmh}KCjd*C)c#*w`Df?WY3dL;3fusl}}!+sTg>`}1?=i1*^LDSvBCZ<1+ zfs<2I3rM@?wC$uMTid~6rTp%(&}{nYcAqWaE^w`la<$JiDlKnNX-EKlK@@9%sGAou<`*g9moJbiq}n0 z!Ks<$8vluBphYk0@!8LI+`?$>>K)t<18m~<0hkdi)7ib<-TVU3t}F8K5o^V|&=J8w z5)rUZ^6d)veEtsm0}Ko-4YXNurEESIB4uVq(b?5Cb7}(^r`~8eZ%XXJtF+JeoG0~y zFv|eKU8QXbxSq3V10b2-18)NgY3^%9SsNaJ8ddQI%zZlRqKG2B0|3V~B^>)J-mlN~ z+wmIZ0GzS;cE!EOGG3$FBzn+&%@?X1@K<$rcV_}~m6EIWK>&=8_j1?AyOHjGBFFT4 z+xD6zlfh#~=*I;_gAsCbYh9NCK~++Fp3m2Fi9DW-45vs42#)9bCN>0A|1v@AOhfoI9Jh`A4-OS>d`M0T#m8OPtmkVifKB(uC=517*;&sKflnGh56mQH(C(Kz;@^B%xlC;))ULAj$ z@PwS)oRr%y=-z&&Q3-=Fmg0re$#`WR#kHdu#kRxC2G1U+{f+-CCuUt?+kYU3bn_yH zrZ2Wb!DiwpjBeVS{2}j3$@9$mOw`DZl<0}*XHsH_?mjP+GGil)tK)FQ-(|x_0qvkV z(u6S?YT)>~n8bL#!g;Ej1b@X`$)WSJ3NB@iO7JFfgu%6dlY%cu(892hb5n`%e>!@>|zx}1MM14z?~Ecs1kg^odD(PIk17Ln2rE* z?FhLXk*_>F&sPfYxEyGJ;DZB$R=fD%klm*-n$|MC&1mE^&;gV-J;;|z$-6mW+(~!; zL8H}J@c#YH?orj4vS~5~^UE7%=#6hS_omw&^Ju9e-WyD<(ooo=&pO0$A6 z{Z0W>QusT@dCeB@<@}oL*&9UdkUYu{AgESr0SUk`#!Q3mhQ8DQ zLzBVA^>&&5%&1agi{?dlKR;*M6jy_ZI5r2{0d9dUG~;Od^DR0eXtnOT9$}OBQ&d8$ zD@+E>BU(aa6MRT?NKvlf@UFR8iQBj6Z!WLhw-pY%@^QPTn^ABT%4Dao-Ppff5TPz=}vvL&m^U?>dv4Hk#?rP*&j24yIVaIgGPlN zolt|T)<6Os5-b#8A|CIg9Ek?{a9p2F*Bf~@BTtk zJk^|j?O1Mv*S?pYbH2b{_Wj~f4+H-XCNczayy2$=c0}6r7b2PzCoBeHMy2!?9%Do| z8ICE(4430weKk-8F6_!R!nI`Yb-s2P6~xX-YM6J)BWAp34ZKF41%KVVm3&?)48m;A zZ(rt0mfte!jl51ziB^9998oTKzKHp*bN<5LZ0TDcjueU?Oi@PfW(pHs&RyVfrlEA2 zd2vAr)S^D{oje=-HFC-UO7pBvgC+3hqhLv{ZfjK^z96ckBUyl8B+{)f>MgS>qQzMB z_KR;PNH#HD?ysHC>Yz^0PzSP9YxK(w>b!dUsG;-p|5vX@Aj@vXScZR5d--9v%7*(# zuAZ8jT8Z>(N$_NI)4!;QVtXKMXRrA5B?ZL1I^BK9CvyX@PB*9SW@QKs3oq}Aw)NFR z$8G<&%grC-ENZagb9Hpn3v@JtnW3Q}h5cz*d+*2AmgC0&8BPRGsbkK^PQXysF89Mw z6Mq*P5BDR27^_?UjfkQy8tH9%IBpN8q7v*pvm^7J*}lr1!2sEyJ?9}R_UOA(_WRGp zEzZ
ByfIAY-yOzW*Ht@Y>A*cCe~%!3Yil_Ok)W*Mix94NJIYS#!atgqhWrPb9> z7UiuKcuf+{pxSS3nU#FQ`Any^68aJr zX>%W(4?M_>^JcXjWNpl>ST`7r?~{;_+^zW|wFlz-&uai^6E2~H#Tz#v=XB*1!)bZ% zKMn0r|BQP;9Vej|m<5?n&@!UWD8;Fsb-^+PH+V!1r;B}@YR=;~H^uI5_Cl&Xo{yjq zr3P|~eZ>yQk>KgrKdY--iQiOqUU|z1jhzQy9 zn}A2)CX#+xSvXLCQ}|Tkp_B(YhoznQS@k&SifRov(-C*r^ zhUKoW6N|03B%%`Zd&A|vO^@1-JtFZwW$sbywBp#>j^Nwo9delACUUt}F66udq>r`g zDQWwOnd5rB-K9)(3l+_DTlPFJ26W>qPKeuA8(s{}s&*v{^A6>3Z`)=D&(*spkt@lg z!ro(WTe>=Scg9NCN}F|2%neXjn}B4n;jeU+^dM?>jdDh7GMbk=z2S5&>}dYz!A{>r zguS09;jE+WYgZkgc;!tvyXJ>0KD~~*IKZ4{OWv+(UXs4J-RQ`Xy{>4UlM3Jv)^BuE z#xgd&XNNm8nqvh<4Uvy3t5J`ldbdl4(pzF_z4Eb6!?}IMDkgXV8>N zqr`yWpVEG<9A!_olamZ(Y4ZgzrF}n7J+&Ea$R{3-jzAc?A)qV7EUKdx%1doIz@`J& z8N2&Tf*!ZWer0e61u4g)%#dEQvK+jeGOOG3fGZ{@B`WSg4tryyKjC-3$7u4&EssR? zA`?OR5mJP_VOxREAlaU&ZpPg1>wQr`aU|xpVHe8h`~YXArliK?^q$97mXWo3B&C{9 zM9F@ZAk59(X2q+eT14~OFPYZz!7dVr(VjmZ2b2G8E3ix_{(W)M>d@_O28zbofSrGyPm*LXY07E2b#5UFdt6`OyzK;txwqE+*XaDwJ|%$ zi(fvhKA$+7m2s!V(P%Wn>v)_84sQB&0F=Y5K>On!?OTzk1R%s9)07)`?0C5ev+d=& zEN-0FCUYBXr3LTsu<^y~rHJbNq_2PR1&2&sj(+40PFSH<{=n0s{c0~1h_^i-(=!y+ zEj=@gkedT{sx&bVaxb^wi^@a#FK!p7i7K%(@%GL`3_XLW=+Z#H;%q7sq5OwDy@6Pg zPqUVZN@MIj^RZRmSneUlBD|$t{mJr<=Jp|E`iwEXe?-lB6_5UST`$7_i4#{0dEXZP z2j#xBDj4^nlD?e!ArPmf-FODML5qor}5I1WVP=Q z{=|{6?F93G_6?VTwW*UH?1SIzvKTwNn+j@iulp%#pLo}qY;~uQu#H;64(3tBa5=#a zSD%R8kg&qbr&|*l&B5ZSv?FzN+^Kuh?O^K@q~Kc6d)(=)U-Z7*;DmRyOi{;fYtCE` zVSbnJ!WD_Yfo=Qo`7Th1ARuLzWLi-vvw4zm#VTiURIB{@@-g%9*^f5_2)nOY&!3B^!Bh4bO+g=&(4l9*N@z{TvA&L%^m~hyp%sZ zDlmNo_AS0$J|CkArl`DkrUFCId#gGpocUdBupO+c9#xY?3h(CbN90VXqqa4Mtf|Y2 zi;H_27sA`vy%3qDqUcIysxD1wt=nqn>hcwcPbgoL;kXW$=Y|HSEcfnym+5q#D!(EM zw^0lD$h3Q@&M%Hvn`4`;_uYp)T}FGuC#TcsMkAeLt`{XD(4xjPlCt7E%HBr%~G3Mi_2 z>SKZ^%RpsZFEZ1iFwaT5PvUpw@g)*)cI#(|f^|$oS7rPk2&`?*`jlRA*+FuN31NO( z*y{=7*u)Qxac&6nwN@}rvqI~!(S)jXPh?w4cSJJFc^4kAe1%rdJs#{|? z*oyETU8!F(CdYMWOt20`e*z>yRasZuwUJRpZ?{w^7KYFfe=QNc`Y9?#RMqIE(OMMJ zDF{R*!Ew=!-ST8Rc(1b2JC>L880X#Yy6F~L*NLOZX)w`OSh#1S#R&h`v*7C#@b0!= zCW+y_ZH2Ab>SK~|dLc#ua~Rsvk?&{ok{V^>l%_%$2cABc4=amh%cnKEVhGRZDw=H4Khhp6Y8d_FXtv}Xv$p83R9)$Jmfpp8jV)dE)ifSpUV8gMLE)L z)oqMZip`Nu{F=B=iwTX_t2^?K$$;<$CTdPC*puelb2Ezis>qfx3sKwC-l!H&sf-0L zE5q?ca)-v2;(t8_zO}-c%W$WSO=JZSFWmxBKhwTFan+g)kw9539<&cab-zD7A})0LGNg|knc2FP*%Ghd+|nbJs?I}Kmf9P+6%AtWI&~}sVqbB23Bab zL$G_(6Vk4>tgjNmT~=OLlm+o6*h%}2yI64F>ikFwaCL$dHd~^*3b+6RpQS6&__9n1{!%}w9Nw;hX3@yL0mFK%j+k0Ao@Fdj+=6%?(E z-dWSgBy6f(!as7u8Ee484a{vTsgbpwI3Rr~sIrpqy>f*l@aLqZo}u6WTgL#}Py^^{ z_jN5K9u%VD)yw{_0vbx8o|Tcorjk0B7?~4hzDTGcf%DQ4v6Dae(dU&qT6F8JO6dldj%DdVpeW1oae_) zq3BcD`_yqJw!y7nRcj`UZQT{;t8ne84-5`UK9HJO1f|E+G1nwpCb)#uHh9rX8A?!ged{pkN!Hd(5 z`@6q|Yfhm^kM3kt7(BGe);_v_L3l(EN%LkG_(dFBcmLsBd56}}<5}1x-z}LxpegfA zc3NdSRAh;;FXzZVQ*{^|Wd2)P*XPI?Nk~AGyw-Zf&!>^7JKvz7Y7<)s&*JPtuuj`^ z>&eEN9baiw=^9Bfw_9Y~ zCR6aQmP;*#4LKDJGS5qqL{+fqIg$2!dhA0MD^XcRF8Lmq#RH|3io$8Qb-P^2L|!sZ zWl*TE^j%MWQN9O44YMA_zQ?Gagr{Yot?C@iD$JDO+uWQHnmnTPsk`8gLgT-Edbtm-L{i$^ zp*pcEZ7=p?P-L66BRRif`Yz*Z1B5_4HZR3Y<=K14oQ*~TmT5S1l`?)?;fUnmSoGr_ zb$T77$Zye`8!jt_wDJb4nx-exe^wE5Ni~d%e+c(6ZwetbrUI9pYwDE!Adtw zm<541vi|xQvrfJYaDByXh315hJyi~&<;AYMSm7(y!N|#JP`~ry*q+-$!$Jqtjl;r6 zi4^od2xm7$1&51hxO!9V3C4#+7dphlnNXsl zyP`ay_;b(4!2LfTm8H+Sn%X{fRsBb_agB#+epUpS|3nAX8jv@IX^Yfh82aj0*~l_b z_Dgds_X82l*Z04-l`3Dkp|c35ry)!|MSL0^ ze;+!s98tSZ1x4cJBO1e8*_-)3`_UO(4V+!nME-<>jp`^sl@X~(ji5Y4fJO)7mX*B4 znq&+jYG}GrNL`}8!lMJ{4v2X7$9Zh+AfxfHTL)Z77dh(4{=-Bw)WC|^zg6qnIP!SB zRbzZpt=4W+{^3O*2dOvpd7kSWSFNJ-?kT3dS7uiSe0$?lN9>G)l*NCeBMjs{w$3Ja zAEu%fZu{)}C#SdV(FzE5-b_`~W+vg`HgLzrhqKI7`JD-B+C7W=l=2tgM(C zELI(ZNg0E3w)V(rvB51HhF&V#RGq?wTCr(?%>nPv(pu00+1+I+Nw0GtHlu&-1gf$N zF5_LTS!Kx5N#!3_D)US^hN3SX(oYTM5vM&54a)l}B(+6}O?~sp9n$l&pXOUZ!U`V22*7 z_Tq-v;Nw5zm`p~3H4=z)EhCFM&z*oQ^-;I7pB=TTlFQ~jl$^M;6KXhPrn`J4sZ-ya z%?x!7@82bP2!)K}p`qoH5*^pt|EM5^KKq*;;r{^vJnDU=%wRGa6YJkqw?>DO>7$~g zMB*h>{ra=(i$k;GrX*hpG3&;|VOd|pZh9EN6v+fakn8U@!e$Z&ZEFRJ{|NMK9GBFs zbiNgjlQpuSthJVO^}WO6#X69s8IW8g?sGC*lJYr0Vmmeg;JbmG#1h(GErL3p>sGzW z_TbtyIqK?|0bc1_9!&jSc9_k}{Vrgg`{CgIuus-}vtV9-Py{-g*N2M(BMh*1tlwAvoRhj1Au=XYf+!Mc|Jic)sDKk_gcC{&*6yi$K)eCiiOiiK zY?b%gBXKzmG=$T@dVrH^FBkf3Z#+C4K4ER{+jq7nt1yCLKHnNZ6C@6jE^*M*OpRNA z+W91zRi{#>UFtx+bpZK-p+I1iN%u0lXuX~cD&u!^YkVj%;s|tIF*Y{d3_z7`2SV&8 z>a2CMD)zwT1XLAj* zCMhcv{7PrJYZ6&$0?imJU%7U7cQuV zt0v5YM=ju(VF7#;IfDv!uXmeKZ*Z*ePxRmx3A5lpB(YLF1lq=*S)e@<=lK4z-ZL`q zB^L!9JusSBw9#j36Xwu{i!iEsaP3hkJuZ+s!z+|xJ%4?eG5Yp$EEvVBz|pz@)YBWq z%Rf=Kn%!EAbG|Fh7j-$R0N&76-6PYmrVKok0=^C{IuM2z>+`8MIZ)T*qg=EI^PMsp z!U`DhXGvpxV1XOG*YPUszBZ`v*dz68`?!(j*A`}L|NWm`Jq^|uk)-)>#s=59h|G{< zkpeu`z|g>;TD{lcGho;0BLkm4kuPUj??)cjKYVNS+ei~8n5q}-5)A-Apz|{CXSgx0 z%W#RiZSVtNX%>CX|H^$EmtotB)ju@m-=+YPw7mO9mX^zO!~1jw(de+B4f*nws9avv znEMBiB!lC;?1))wwH%tx?Os$341GSoN!z>t@{_*5N%>coD#Wg;F`h6WWo;A4DNz3G zLBsVEAE2|&uCw@D3S}Ctv2`FlI*u^U6)-LH&Ncx{xWZ(DXgHY}4(MSPQLbt*-K4Fn}?>_Q{JeS<5U18GV9v!1a0{R8`$aX z?2x=nF2UhmApF#D>C4UzJiyE%dW)bTkyW_#x)>nSA5FEUH|UpT|1iTr8s|QTRR9A7 zFH{L#E;Tt@*C1td0!`U1By1M=7(-rmOf-|7F+OuJns)#KyPx+tF@ z%p(Pa3#Ay8aV#3FxueJb@&i-RiSRpZ6QxDT%t;M{9WKMHa!y`3eK=yg3$ZyR4*Ph0 z!P5vecejPMAsA>>YjL|kfdN-MCsq7W0Ci&>**t(7fWWz+EJ+xG`AeTX2@hpZV?d&< zFqhqU{j8OCwx0VJhtPf=$kzl2Vo}zDAfnC7%^`*jE!CBaOX5!B`}Y|*oM`9d8v(+^ ziAK??yqko>(iD{!Ca3~7#05mlHdrgk88TX!=%rPb}AdrUi5Z-}LH0A+_q@s{|PO)wc@ou}c zUa~u+R&B5&X>>Y<IHLf z@20Qp*VitFXjLo=#V>wKZ2{O1>UZ|5+)}sKFwBjsMa5TRo){HslDD_P7@oPR@9w^N zV}`sBj+$EVQFs1;Ke6!0hDqX}9!@1Ry=n({AarKr?Zm@^zP=$!AkB0G&+iAfKl4p{ zjQ0tQu#!9zqEE~UdyNI+0gpf=*;}jke>@xDj_pA-eiGo!(U^ttd%$NO<|rj8)g>EC z@Nyhwt$Rxr(~9e*6~~QL65;KX>VmeB8;3+97>6%@(t6a|-_gQ!60KecBXxUUmg zv;Eo(XeVt0CQGPy^ZuKZ^JDKmRb=0> zZO8MZ1g+9%-T3uSqnC{7?n7#kMwiiY(U}B10Bvms+bmKCvm>ta;>L1u2G5Bj zEoUc1^hYZoBO2^ZCw&BB%(`^*jgphy@nA&Nr@0vM*laS@H8brwV2_LK>k>0D2hS_H z7F&L2VtSjh^NG4|u~Rckq3?2t1X`e~K29q@$9O)mSGrUvV9>kiIH!GFaS!hG4s=<~ za2_BD{@Bq}cNRhz*dYr-*c0tnYJQG=!(!&n5s5I1O#Sw^OJxsf;v{LkeT7##(ttE= zXg~Vsi)_~90eg!U4(bWx7&*H3a(%}3%8XalnX{!`R8M#RQ`=g1xk})fqtN7!FkNuS zxPhJP%~WDsK2?mF%=JSWpQNuM+I@M|>(Nrvbvtg5K9fF)SG8M;{co9O<3TWf!gSgP zRh)+@iVfCsdu>u@zVP>};DTq*|5mDk5rqM3(k)Dxo<-t_qKByY!yyB=;`Ztm!%%xs zyqhk{(b#Gwm|#Dq-#D9n`5@-kQWC#czytdlUbE&!cP$p>*Ay!JsSeVaU!rB~@#)#b zSNnLlNzRiXvOyo5q4XOtcR*r56x>#%uCRj3j3aj z5uA9`bAAtoOiQu2c$Qxm!^#gdxDcY>>%7N|0Q9#$ix7(CFjvZc_y6End^d65zD(1H zn$72d#Fu}Sh9GE@@A)$Vq?d`rHgua#=7#En3Skh(-+j~lZnLtBDXVWj*8R-K6jblr zmQ|zQ{%59^xk&&Vkj{vzS06MqR2B_{b=*NDM>vPg&CT1JhPcL?yN48q_kERPM9)2F!QkjD(F%wYls^AsY*ec$%-cD7z@x5u-aN$8nM}6Sz8R*6H8tF3v0Tcv1cP z?XB}w*D1k&YWBY;HZC}>fXkeFm&>%Isp(h1hd)El++0>rfL6f+zz9r*#Kg#nwvJ}{ z`^A#RnX@wqMB{SKN^hoIP2%%!8V5iMz`$QTh*eLYD1Zz#k`!D7)s|_3#S#m00SX-N z;hQyn8l&bvOcY=X27acEVEf{6tJbP~l{6t28JTDgmrQ)8hniZ*Lu^7qD6$SUcoW2* zKN>x#=01n>nWUX*Q!tYHmdsw-4QL?ml~A|3^eWs#eZw>Lpy$anHQ@%0a+hn;X>vW~ z=RC(^zmsa!yliqzIB)gv$z*jU;hObg3))jjhUkCP44)vm{M%dCM;WgWW)K74mEdDJ zEM+CK4!>1~AAC3A-~Muiv%GiM7#KeQna>{gNiz~O^iP@cBWom-5%*k^<;^%4Zh*)+ zqwf4@KXv)5GP`BIR-dfadNs0h(o9JRZqQ=tL6!Nqv(3G6_T}#Gu5&Kv@mQ^|$a*Hv zbhp*rS)FQ=+R+~zLKhcrlj;=sc4hlX^T7Y|_AubV@%Y;z^7P#-YA%PEo-6X}=FCSx zkppD!)mJF*m1Srm1)!LaD3l}c`Ev|b^D=Gnzf@ty6QpT};4O zczCprU00i38TIt^x+QsVwzq2-&RoLQ@B#-1G5>~p5 zCWw*3Bfqy8Qf&yZ_sQt25@%2x@gkmL&n-5hZZ(ybN}rD;hTV{vue`*|8z8PG+AM0!VzNg0nAhoSXfwt9_caRnVEds#ihBq$gZx7U1qmlMFl?wO7~EU46&1?R#XP-arLBJ7y?K|Pv$$;poD#e!@k+w zkI*OgNwbor&ea*d3N3~E6jpT9lu66m2`o!~AdzwXkah{y~G6qmXSiWDBT`%Bsm1_9t z5(WxAzdFi4KifsppG{T^jeH&&&9Mr)FG3p8H7z^z8sQK(Nx0w|(>}&E+fx>iqhk3>{&F_S~?)tiSKxIz1|bJ-xJ=>vVEwZ6UlP)wu4 zw29aTotyt9C(Pr367Cje-EKOytPE+R@v0jpM?_b)?d0szichKrdSNB&6aB-NtFa?r z8ZCJgbZE4YO|B26nyk}v9lYdd+>M5rY_!;hi0yLfK1-7vS4ZhIa9~Q6VrzlrXV6!} zM^RP-w#r(`BSS<1QD;(8{EjtL;*dcEzs+f{4wF9U%%sge=0ZD8(k7|=_1!u!K#~V1 zj@Lr(*~Zgj_U)Vh@Kt3TS#(9CEIT$VESxiKp1mzjiAnR1jYS*Rlb*0qPu$+w*~m+= z>V(4gXxA%!Aku4Gm||kjyG$1Nowq&;hk1MKdkf@Jo4Kb+J70GVl!-gHiZ~)TPRbGV zlR>*OyPjQEN*5Jc7x!V?uk!UuVAY?;U{CCZw7Oh%iFP>XSnD{1?f;kzmG@|vRNo_z zdbV0{-Ks%+dys{f%laeES;I;%XDj%04RnGDS0p>hcdvquBGY{bSE4b(o&l_Jvg zK(>Rp_^$ug_P!a#V`nR~}r+i^;po!@ut(&7<}Rw%q;{fc{2Kcts=?Dpo=4RPp^Zqba+IQt!`9O_^Sqxgb@2D0FQb z4SCBghCEEbm)z);#phA>(~-@c^N-*k;=7Z!THH@#8I8SeTRGnd_LuW%XO`Z! z?3jGqi&do0efp(qRn!t+YlH_emfleGS1}&xbq0!MH|l+g5pjh|8&?|8WU=VCONbkG!HHf_QJ=Vi$r*cslIUocH(GvVYA^qVnsn3_YXakW=3o)= z)SA6JM{Of}+@T`ABlYiq(BDRsxN%Y6U=hT*4@`b%9iUOnI(=gwQmL|wyb#k;R&8W3LRZ0^WvX#?G5p`_xeM78yFeh@> zDe;mrIh2fNu&vOlCxN5r;vhK+$HK7W`cGd?U}@aA99N<#oR+!9m$nx(Ovw7z4VxZx z6uQK_a|GHN8G#}oY+?N`~j!<-ghW1?zf~FjOcoKUMCH^dZVfAl@P;P&dVfz z4%F0e`Z0I*qwJyq2X9SiE-oCvxt|{K|G0YVu&DMgURWALK)OpLq&o+YZV>4Pk#gve zp7A^WOJQo`)G`*x$YOTI*9ZsPpNb_aBzsFBAq7+2FkH zC(^$*@g+AH023Q8kY4>)6T4<|OW0uo>vNC-uo!6M6M?+~;%ZUla675&*bAo5!Z7&2;@46n|=lt$yn3MkoOYYUMrk;+K+s&!N@LH~wu+i?07$!bRppPEn zms|XfvyE%=E_PdmZlX{(6O!hoE2hO{0H5>A;Qa*o*q^_Wt$Ugfr~h4qdwKQ&k*x8O z&HpxfguL_>$a&3yV9q%EtH(tG58Ly_+0V-mak#sIATK_$!f1`4(U;Z)jMZa& z(C3TKm{;~V*I$pK>`gWqdZ(6f1=yWeq0Yk{6|pAodL1$YLy*Y$Zj>*>c0*be9*G+e zoMPDbwboEC9zJ4SB}jgx`i(h?oWcpupS`^l`a{CDwzo;4N1K2d4qH3IlY&&SS&!Ac zmxAuqH#vv1gY)X%{ywo!RV+!pj!(#Ze)4lN?{eF|z?IHXsqky;qoZD6WEADVkg2Ju z$I~^9v7b^alj~7YMK*b`5HnO47ghf z)#i{(q^~DWDVQ9V*6%8B6;&N=SXot0)0!0DwBwi*c978S6nMt{p8p+AuTMJUo(FQY z3}SJ69-LvS(HT>bD$t3m6n?FvE_CQZkrTcia*?c1^#}TVuZLXLo#Z#JS!vsS6NIo$ zo9>SF{QSH-(?Z^?bsJ{hHNv~`=JB8l|BL};jxpu0j_EJcmJvq4;qsSeoh>DE%cH$J zfMBr`wr=sU>P=@>+P)mM+pxV1+|?b`Ec8Z~;Qe*I2jtYjfLp~+ThALoXXC@f@>?Lr zgL;JfT#UnU_tPR^ZBqAe+^DRj^+8~qRgXJC!wC>>+r~24&d-(`|Ix3(S#7o2=%ZBP zIZqcOM{g@>v){bB*Go2c(KCjoIRdZ51&C#ZOt{suvG1Vs&_uKZJs55hc-Lv5bU_5?fq^Qgl;JkDr~R z1UP{Ecr8)r3;ze~#j~LwHecJ@7nX=wsGIx~#`W9BAL75*xAc8ZJHbdELwe9Gv%TT_ z(q_0_sI@SJacw}o)T{o5xNFkqUmINz4pVvbUiEL-=T9%2Q3v>BM^8zrhw33dERF8v4d z2Y|9eKe$m(VZJ4x054lmk_KO3MEBe?5-sska%Tv?6Jt!RK7P+MJMYCazA0Nhb>r=k z)I5!B4$sd5%UCxvIr+1u=A!0&vL-Zu+hNr+7r=rm%|;~Ak80Q*w&mxOrlcz9lrBB1 z8c|n}(7&aEa$O!E3spD3%2h;I`#2|MuKa}vFK6y@XGH0Z%V@Ygq{thH0l!hU_ z8$%(bCM7QJuL~%v^l08}wqO3CA(@PdndDP?pW<;n_cJ`aCNA;}Mk(B3A|GQ1$gXav zZ!q$j@FeLK@HQIjDBEhqW1OpnH#oe5B|e!q#9nr>stcKj;<{m9Q|buOzSsFx@j0bG zESM~Su)|C`6%Y~pyo&gf`i&8mExF7=uNXmbgs$%uxL=D^<6yd8UV+I-srG%2Txghh z%dV$pofjp02#1|bt(%0cMo`v<RFdP_Xqw%cfZP5}0eD|p^Cr_ZxtF92oosWmXYK=; zu?5IzZ#U(WioWdf1`w>N#~Xq0UZ_ltaX1Y}fz*mrxA!b0*{QvamY2l1TgUX&=T+!0 zR^=)TMa7crr`@vJzTmk&!P8eis%fCZpOJu%xf&7ps>MMN1gcscRjk#&DwS76u?7Ne z5K|E#`UArUD}1N(7eJ5u3uMG}7fmf!208m8vruN_m)LYcWQ9(Wo|F^}D5hR{Jzu1E zIi{vgT^-J013^@?@{L8dvoUo&G^c+(b-oCVfY zi=boE&|@~DxT!b-EP>eR(hK!!g}l6yk1|#$vW0RI1IG$E_X+;`um;Wsj~3(U{>R;u zVRTH@hl(otD&Z;pBy6=eXO|*&YHYy_A%7I4ES8EvPH0ELI&MqBb1Q@0Ix|fOLWQIz4i>)y8 z{o1?1WL~9x<3Oj{p2ct}7B`#>8~^dV92DnNj|5H1#PZm|X_f$v2e#F|1Py%`2^yzC zm&^KppQTm8u%w^qzhcy>sjE1VeL4*-jftU5f|+8gQ2%HFpVTIq>U^+9um^%uXnzMr zVQkZacJgF>aN?w7;J~(i)_aR*>2#X8pEKv8R5+Ks|0+2y0hN|0RD1Ad(!YJo<$0Fv z+o$fE^+67ob&3C7|Ik<9H78y^PPBvjfkylTSXLk;=zafH zB)pU4awGt*;VYvUp*gb?Tt5X;Rn~yLMifL}ZbYXU(DZ54M50o@aD?D7wHK%rzV~># zzpA?!7LfR8HgpeQuncE^P1_PTY?d0-;3cNhMv}PX#%Ie@wIB)7NCt~GbcHZ!r)$6O zqq8b>0^w%D8qpaoF&=Fxh9h{%2VQ%1JT;x<>X|Q=*}X{Wo=;H|>u&@?<$x3ZB5$N?&|E z2S++NB{)(_QyWz&wK!pC?4Xk*f$#IYy=ggYS;W!d%;H^T_YYF)@|%?!qp3ONv7-r~ z-p^yhEJw#A%;#M#9mzCSj(t8c0xvbQ`Q2KUcpft1o1C=;7HI7&i4kn^Q$^Nh?K znuj9@q}iHa+lChw7gCSK(iRGS1@q6@b*YBaZr%ymd6i6;I*_*=tjGQCeFDumFlIzC zRn;*w>!|2a$xVejm8vfA88F{<8-;!MHuL5Ub#Qi)@-S{HMjJ#ri5cF$)+dWULvoAX zv9I`^LNa%LZ=a(jA+UKGWw&Y%O-qf?4Zq-j9h`ue1*0VaEkghK=4X}ViYY1cY1+wM z72e8J7aFDyCZ38Xm`Ld(PAvY<9thqpAM%TT;3C7aNZ>KjhAeAPuFH0x5SHBf3%SXGSaHw9?Wam5@ zOmhn@Bed`i-N}-tIvC4LeP?WFItxoi@OS+n}3jvV%LF(~;?&E&{M`K*Yw{^@$bs*g$Q%`E#a z_P^iub_v;0dTnWOKZ{>MR+Th_Z{=lM*XigbdETk`-%I`*)0_o9TgsTSF1GTZ1*vDPum;oC-|;T_lOp-VbXq%-Bb!*qaf1OY(LzyuXU zyTC%_QnqdQ^80T5e{cQ&zT6aEQDALpFhytv`H>8M5VoO-;>B%uzvBP@SN^_gRh7zi z9_8ft7|K$#kl!sbRYR&;t4$@%x*G6YeseHQ1f;3P@oQ$EnFohkapYKH#>x| zP2B+>+ea7?_WDHsLVP#q-S6d&?elHd`7CsfBWytp_X1;`-Jdb;g(G-UTb4&vu8w9& zHN0Si+=8dir9lxjRU^t|94|~~!!EoEq@-hG|Mx%Yj_jDnb&^B+DZDf;+&;M`+b(v{ z?npabkD4~7Mo;bN`yAHD^_l$=qWckH4AVEd=zwGF*Q$2L##uOmP+=5~69~=&D*e~f z$m9kzucjx-Mb{&0$oJ#gylDEoZtT?yf5=3@KNsgCl883~^F^-UYz_Wt?8n@FiwJ(; zBu~B22~CwVan8v!_m_qPNvGUk+7n8%upRg9i1#U-EZZI3A#oAd#lw<4z-DBZj&V}i zXz{ZrY3aY$xknOEH$rQ>*{`r`3}fnJFS~-K9j26L*#-F7#_WObvVE`J?~r*$8*?3W z?pS2cbY@9zj1pjle6hmLN$N_wZkYh_*eb zuYK*2?{}ZL|Kr<-gQIP<3KTz%r>*$yFCEQj?bqim6O5vq>rQU&sNQ)`qn(1t$&pQ;HcVvn1?#!k8>r}>ZDk*+W57QYo;s%!?`++om z$D~jBm(X(%^sg}nF$ittg_A;{V*Eqx`Up$j7tIa9v$p0H;UX!Xh8%6D&n85aM^1qV=aRNmIJz@O+>Q zh#@p>zXF!btU$sX6ev~EaR?^N10uT>yt}`J6l)_iW>TiLSKS#w1&{8ksUk9VK~?pc znXtelj?#OOolqbp(TZty!0|G9PBki+j@ea)bIH5ONA^=t)M zjRCwZI$#w=Wt>pBO|06(}N#&@+5e(3;6YWzAn1wXRr_dRQKTki)jnNm-x2KSA zua4IzeA&k5V0#Fe(@ba{j!rGGl8gzkEo>boM3YzVIU0hsT z74>^X$}bH2&G1Vkx6yK8#Ktzpcf;*~CtFr0f$1!UMZMHA@DV-e?%syLp_!I!u^CUP zZ5pA9EPaQRfgWdO-r_I2C?cN4)`{n* z%A&FII~BFC#5^yjX`cD9TfkNOi{8DLW&#u)O%g8JKH9$}F_OUl_DAc;1P0HKB|3;M zfgPngC~xG?M->eF$^W`4TVLeSfhI9{ta)mjxH!Ut>qEBbqa|>WoIL0BxEYsTX*pSf z<+A0Wyb@2rw{O}u3GZfInN#nDKYC9W6N6_;xPZ{H>WNpy63j_SMAS@HSMSmq*}i{` z>%E$$HW<5tr{XFMEg=rQdGRbiOSti>7%h)4*WI=G`#6jE`3faLlJJU_pG3r4K7GsA z-^P#g7!hSpQYL6CwI2o81BXM+P8v^y{N$IyKB(jnydNe0`i1!naEmDw@vRaOZPAUn zUe;`Ktxk!duz5oU(i~oKJz&ZY^mo|!I|lK3dR+vT-ldM5cs+3D7^tb4knq~Js&B{Z zSeK^?UtDsC&OFOqQ5Gx$)O7G*3ZF`U6R*{3ieJ?Uecvr)sHZ!46W3mFr-u)bjP|g_tCQe)-*%&&hlTTe z;C#=*oHI@5F~!GAbNs$#aV7D2*^#ORWYF(Xy~eN+aALq(V`9x=D-fz*dd*%#HcM~8 zIcAu>okO(6wI%sYzo2bKDj>e`I;&zI`QHYojAGP|^F*D=!b*>HQKoV^(6k@i$EQU) zG&nOB<)*q{SLXHNsT%X0q9q$1lQZjB#Dx?QDW(NJXb>VWSW2ZN2XB6rI=FG7Fz+Y# z!j1ow1?xXDtN&z+*l%cOumi8*JpL{*lcrwBhBR^9?8GpvB={n(;` z$JJEDvnN3O)@*S6V1E9w>Pn}^67%Bu=P5F33+KB}R%^&zFFu2C(Vl?J*xSW)`L@@` z#i+P`Jf)I*i6l`H_fBr@lhnprbU?sb?38Ddr+bmml7LXzelGgvnmANHD!%$KP!_|- zqvEvTcK%+w;&r8qetDe9!H}P= zby>&gj8K;h^VYx?b`qB^7vyvFiZNx{*M5(|?u)oi_^?f|e^M9kh6n`x7;*Hb5f~&S7^!w#i?x4?>WGhDU{Ud$Qo z^8@_#=26>xf3H92BIHjjY941UlamSCG!@+zZg;;BDj+^H2 z5N(z$02jZ(uOSZemczz zWMq$J$j1s{3ZDV_1bNT$Vw0#Z!ev+hae4Vys$){;QVCnyBAn%TwqOMEYW3y8cS?!2 zhKEl74Ma77iQ97GBH=07GKsDQ-a-t&DnL5^j5KhtB-jLvbh>4AaklzsYRx=kJ0qvR zCtlR9L&X<7S8hQ%U8EOSeK7rHXn#tx-j$RceVg7zpWnDok(A`du4ed`J?GmY#Qk2? zPZr-=f0xKPjF*2|LX6d!Y*9~Ql+Z>*5TBBq8IRB&XLO9n&Ib>iA+xZT{gzf+QQn(Y z77_E%@kh|N8TJWq`+gpurueiRjEmKCFv?d3$BQoT{qUo` zJ-fcgm73*zl}y!^B~uS9pAvNEbNZ0aOz+L%oXYTDwNd^-ZEW*JgrWqIU6i zsX5h14}bSe#c`rc^EW+;jdFCO9&_Ur(N3OC^Kg#I3xOYk;9X3tSatK5bdj8!QzFbB zi!Bs}V`s+e9k6kpT-#gc!m5Tor_-Cs;1{>7$?H!Q2CXn5hY~Xqh_LZkro`<<`U|6$ zY7(EY(z*l4ria_>-u=zvSBmN8YP^^RrFL*o=|)b)&KG?o)7T`?_idCApyTB)+^>j>5$0mv^NeR{n^ zjXblVnaD=b3tL2Agxj+oYdhH`2tB-egu}D@E<4JtrbLJoXSr z_jzs$;@UnzFlqIcEY$1mMjC0Lm%+1LkQ%IVJ8#>{I<@Jx}XY2YwUw{X51{ zB-}uUvUJY2re23qGZlpELxsRVC5nF33iF3pNq}q?^vd}>CpkVG(M+lHYTqxh_wD59 zcaFaNNp1rcoK4fLf;I%qrH#=>DV|eHITII{XzU4Pbv?26M%phMu9W8#pZ*kEYj;F5?I$KbycgUg@YTXdbG_m~8ReMK7B zA}158a_tRw_JjT1swsi^>W!j$Q*3+vh2h(?=t_WYjfpkK0aE%>8R!a>R8c!k%|yzR;nwW=9ILXtnxe<*2Ivr~Gt;?9ABMctJO(ssX1F{ZLdw z58>U@J4|dczmF#$&j(^6GRNOR>fBCM1;3f^C8S4?XNodDBUYfBQ3|GazhNfZC0fK? z5^D_MxnU#{jwI)UM}QAPY_2Mb?S>it`8w{(% zNa)L?9rCY=2LIS)9viAU3J!0NN+-VNvh5*t{%aOcdcK$SA9fYmYEkNrHaiN1 z47^ZiUWk{55RnZdN>ZFVK%>HY{HeZ!Cl5Pk>q}KG9pR61mnJJ~Uj%M&SsHg#*^ti# z-vpzJ_)H0J-30~8zDCDrc$Dk_;lu{wKDX$%xP0hFYkHA-(xOJ@?-dB(qga=u z{bIHKokPULBaswdS++O7Ns=c>@@@#m`udej)X@fOIhE*BVnSGSf!Mo2DHmKyryJ9{ zJNPIULzY<6KNKI1UNuCYT910>)&F{k6hk+6y*l)vu;-4cb6|kFKVf1Y`Z68xWCkI^ zzy)54$b2WNvCcU9x;QLa%Y017G%RJRkM_m<<2Y3jDk${z+KezSY?M)(twRNJiF!aa zZe+N}Y8$aIZJK8r0q13}p+Axv$t@=GF_wi@_MfL|RFD7q9b<~$%jJxY7wXpGuscRl z-@{>B(p}`ZpYvMn7|R%PAtWOQBWkOTcm-}Z$HkeOy-!?9uTQxhuYCgCm+ixQkYw|C zb_m(Nz++)y4Jz9YJMs0GvKMfsm91g~*2J!Xpv4Py{&vB!#g>|e1PbRmG~9zhx0@sD8C{(Y%p-S;ox!;MCS!^zQu|lJH|aXcRb7{oOKhddFZo1!Y?%-yIa^n0^RG`au>X;pS!d&0+iEM47>(%*TnKZdO zO|2e};qQFnX9QQA6Y>K|_d2JQC7a=0yJn&lDW;o0e?J!nE98|S8NB9jAF<$)sn|3! zR*8Ft-@o?>2|nz$a}n0<%kA%V2^O+Sx_gK^CLYi>j83pCOhGgi>lqf}N z%mhX&ZVjZU7@w;4wMk%Lar*w35Yk$ZEbnXiz!zMWlpbCDi!O`LdV$F3_HxUlJ6TO)h3pP@2@aoUR5#A+n#%;2cpWJvzJ@V z=<~YVxA|3VLyuG4p+D7AnnrlWwITLQR5K4THxvOWOLzB38Ra=-!(>wQzpdo+4=Vj> z=y#8-*bcykL$8W8Zq6zk_0ga-N(dh|U|F0G_?_7Uj5#Cl{;c`qyftlW7DMn%P0yDYqem377n*1PgkT0d}l0XT8a2P zZaWjR_XwjsaV(j1wCF2(8A>hX^uDgLbr^l|c0&GQ_$gYV8Cx}x8QjfRmebf!lnC84 zZBGZ4x;9Q5tDNiCA@vv?mO*fimAbcaN<#Q+h(caTH`Yq$6%O_+SNZJHDOcF0zC+=?V2k;${MXGnESQ!S>ppO53m^Pk75Pmz9JBt#!d4TJ zrCStZZunE4kx%QyZx(W2JjO}B0UMfJa#-1J&=YUvMsL928dcw!0#(x~YVVjlMX{NF z#kV-~MWl)5@{B6=@ann4qVNF2cx5d}Ey^KHTdLp)_vFmFq3i4YM~_cpL^op4r7&mS z;oT)aew<^~6lDeQGzN)uPg|%wdm}g#Byqa8F1vk)h@L~;u_Bn3(lW-CTtPl8A$djl z6)(Q+6o^oBVbTrK(8sWeN=BQEhD%4Z=j`xlYMY7tXg&5CyEMD6G+&L+V#Oubb-v$} zXMa6Y+0&f7e_xM{0`$f+?F#uyE}qHxzN=?E>BbR9UBF2EeQ5_+oV0o%2%^>&1Zr-; zMArJ1e|mNpQ1({)X1TAM+Y+m9I~p1*iiSM9+;)yb_ug~m46;XR2X+bB8@Gm7m(E*-6^pyECGs>3JSAGMU*AH|7|-&m5vHV66hMXgUMlzmH0T?D-)oq$twQphVRct1Y;Gl<-K zch~x~Lbe9w36X-232rVhc&ymj03L5U^Sy8csQFUj<@qTp+Vd?^1-j9xH{=c3EWX88 zZm+rz$R0=-?HO=LeKA%a8t#y&Y6KW{x}x4Lg@L+}?zIOumq3qWRNP7O8%zxA9*-Sw z@fFnJIvJEcd4rk|qigTPHtR~zj|qf)Y3SVN9GB6=q{76tWf9rO$Jf@61ER9-DcNU} z$M-SG2;pei3wJ2s2=Hw#$ys0J?;-ULSeNj=sUTS836y;8SjNKj(YUnxFk6}rYu|8a z^ziSAY=MLE+_{LRU*2(Bth3v6pF9WRtKU0~p@(~8y_qWadfOK_P;7L z_daerX$i%bF8+wxprzn!RTO!v(5VSl;jP%2@9Y#0CE+{w>MSo&2g=;7!Mj#< z9%3GAcsFb_j4dk^%kr$+U@+=u{)qn%KAnpSYel@3g1A`myPIgby=FolyCT5 zRpnPO-v;k@O$|v{(&W$NIqrvNseI}|QfzKva*%Sncn z$e->s&+)9hUm^-hTNt66OybShVVR5PIygZ;h*ZQ>-L9o zPseS?3qBws+o_ThZ!$n`Km%+cJ{dnVA@DY!-Ml?^M?8+~;=$bGm?XbEfKytY7!^k%}E8_*B_3<(hfc4>dDI>(wh zXu=T>3v|!hzJ5*kO7)Hxmd}MRk<&67d6a#YM>u`@LegF{IXVH>2E)b?W1kt8;G$&T zF#OMwdfTATka7r4gly|7NcLxGQL(tI5q~CZ*4uULcXhum?DRj;6(N-Oc!&eh(C2$^Y~`>A{0*^SuC~78QQJaMA8`A&k@& z$Zzj5%;K|9toT76K_a4*uf-M5a*M8+P>|+JrtvWCmGXKtlN=CoDiPmu_w#j-sJkk3 z>lepV;r@(NSZkm7?+)aXYYN``vxS|#(V0gqzH_quQ3XEgK^=pJ+-zpOAfVRRYE%41 zG`Jo-1=7@SFt5X`OTn%Qp7(RPb%zxLWoeJyZ?gLAsi6+(o5&hmqg$K~4GkFEz+o^+ z8)<*I+?)8zLr6X?NirU0xza>BAn{^^ks4dgS~mft8SAT;+sQU~A)sr48d#Sl;X zz~7JohY`UU(e_Dlho=2{m91-%ML!dycq7qtlv~pco80c~o$c!uFub&HX(4Vd#$&}HmZCM8x#6;_tQR&$d3Uw_BjpDw)5d4V63ExD zMR-oE2?%)J!ZgDWJnkF1dv5L2Sx-7~FRJoc$H0HfU9}>0x8)DS+bG(?Ne@orpXQ$Y z(j84WJLVLq0KxbD&Z(v=W(>D%a3iEI?E#a3p!cJmV|%K`nxRe%^>W zZynd;Axl={(V-#f?H6svx|gSgmW_Z*{P)jSKBXH<_|GVcP^3~^cIK>I)oHaaQ^#t& zy7mM@`a)O+%6dMDKM5`mm$4H(T|O`$+EeN`J*(+NEwZ5e=LH~em`=^X63jefgih~i za4cjgzbqXd(bPMl@{1&p_6-v1K1uw0rnVF&hq6jr+RxTXBEZCG1+{N@^4J1z2fhqh zq$G4~hYr=Tm-SW|$WHI*stnL2EIj%CQ_2`REe zr&N1@bx3xeGABD*e0^4C6`F`O!IAa=G@y_HzR;dyM zAd%laC~0c|k!SBf){^1;TdbSouD`;ifm2?AiO)X8Z`Rk>zrtn!BmU61Dw$A$NK3Hs zvm4@-xTPWE5f(Px7$B42eQDXr$}WIEv39|KSw6LiRZTElAD21(O=|Njba!&)hfFR&IXEP~BR9jzNX1D>H!gnM8CW6T4miesC`q@dd z0sJA;FYByxme#y*9&uA+lZuZ;tJij+UT8bxcZE0c4}jir*tZ0SCyrnP-~#)s-%Ww! zCs^DbUl$Pxn0=yyNIPD*hu1fAr(fDaChD6zUlM-mk2P6d<)0(Tq02VPfn}9-^%&jj zqFT~-SX{_tIHJwLI!UKx+#2vK%}SRePF8$n2oh=%-13Pu7j2Mo2{A=2^!{)CjC)M4 zx;5?V0kY?ZyAQL;jri4J)$cfiU&(EuK1dUMM<$Rq4Y5FbDu2^S$-;A=5Og(@a zb|KiOuV~&NHZMN^Iptg1K|wx$-R`ynrM;B<2IRw;)lT+|M6U;w&&Jo|S|C`6CftFK z(k@PRx~y2%mxfN-C%Ui;uS-Q2rR;j?hojGD!s^hIkC*-3){kMp&qo~@6=JF@+zTFC zj@y9;L-c*oW)UZ7UbEU?_apNm=f1RC&ciNuTJ%MXu@8eY*CN$&MW2_$-lnj~CI(ME zsBcstBxFQ0GVgD}0a0>c@Q8uoYHjG>)l*5{fk`k=?*1iH#*%1m#$}F2xAR+18TdCaDn4j-~pFf7;4T$5tC=WmBLb}FW~U?PimFs z#b56qDj>P3!d^ggVHmUs*$BhRHMd)?ci4H|0yqp;ofhm?-dSpXB4|K##2w=9nVFiA zIbXtG3R}HuGtaYbRWmaPhzK&9UUY>(Ru48ymCt2R;$xZHJjQO;eleu`2wS|HxEQxP z;kjvFnjq!6;@UkX^YhYweh(z-gnvt3X937p8cz^h?q%6V=1U?Xgx!dX%`uN@2pU*;ZEk+i*GpH6CO$9O&B|*@V)$XXqJ6XxV<9e zo(0f$BvJzn&b`_Op7gs1LrmX&5I_-YCh{!=mA0Ga4)xOYw`QW^twm!dNG~0X&lvS9 zsjyDj&@b1mqd|~dLLxh3uwL}dkUg5HgDr3$)?@ z*OF;27?+xXweiLhRY0wK@%JC{(j zkS=4u1}^yiwJz5_eTspzkiHi%vf`U%>3rg;C?d&;skcZj}{K zz)nS42Os5*q0BW_QH!f!e{w&Y)fngH*{bBd2+T9i3+*Du85!ty$?r7p z#yg}CH9mp4hhjto@-#lfR`&356K7|2`mQ!J!~j2bGVV9vfB|yuau`4EY4&>4h<@yw zTT2_S&e(O8F|*-EEZpkj3nzWc3A6Mzz@|i>&OJOy__gs<_j<@dOXL<4PecQuo?pZI zqt6Z%h(h=Lv}sg?%C;Z#H+cm*k~Q=7KPlkN+1#DP1%5MsqNiQBt^?-ZVPaqaGleK}P<})=M#E}%Nm5-N3BhOKmM)9G z;k1~dPJ;*gO$QSTKi_8Qwg8+bQ6KrSt)zkBWS)`LTbq_A^>K7k{;%%$d%4kyfWwhw z5`1JGfNjrF3^fAgPo;faRw(9?-Fn01kX0Bz`J*sEG}8rmda_uW=O#|g?gFv1;YQEtpk!0L1C)dxMx{fW-7177K4{E4c#o5)Zm+7`#PRMmrpXh$U z(ZC}vjLAPXqu5E2)>hxRzbWBy1+8?xs6$Flti4cOY3}dZ#i>T-(($|cwtLaU0S$!W$N8rQw1=?QU7fDS;Hb9AbFfF~n!?&YZ-O(8LzG^6 zx7cc67&+x#&L1|<5mGj|WW1@qN%V5x;zbCan3h%MP$$VKsTZ8_bT4MRsQiVfB}I@O z#-)FIjF5E#_Sk|}gS-bJh+vZZ^v&EU8oPoxZU1kloDTP z4D(3ya%~qUnMGdtm(yFs`Q#dAZ~Y-eLfs{NMhcyTs`^zmj@Q&P><}SLA#^W`xglh+ zXn5?Ep>2O>T&xIhm-@yxK1=qBF~s)r4DuX! z0LoD$r*8(jO-BmbJ5frwr4~pafFO70Tq+=HMQGYS(}n{4U>UEo7ky5$l$YOaoWfeq zK_cLNwDEnpq&qpI&ZFk54V|!b?w9v{K$Md`#_Ivbk-Z1G6`ls@Xcw=hcpP(eDl&K|{yY9$UmyI?bnlC7A?X|_>LQVY%l~`C<7Cj%1DB1wc zU})Q%S$f#nMvt7A0&E?VFv?Cv$G~q9zs+8hZ%4c+kC`4Czv|O~$cn#iXPL@8C$D1? z6Y1t4r1wB@v^hs33o~=~XolDs;DGDHwfep;WZM&vH)TdSJ2+4Y=1E`|?5|Pv{3R!3 zmh0A75|VjbD%*AEo|mCiY*M9lcE($LYP{=kugGzKPPpg_GDsKlVC<6K%Newz_KmZJ zCrvO41lKA;)iN!lS#lbSmYR$P(Xgc2nT8|y$e%Lr`>w)_@Dzkg^_C$JDnz6=-5kQg zaAqBZ3MC52=cr%Ci#V%2Wy(!=rqI;zhUls7g!{o6cO5=M-nnQgKR(V6(J(Wj`$3U> z;Jsu}Z!iLDOL?04Zy4S?R%=q)w)!Wc*{OTaQLE3l>V=x;Z}xs3+dZtg68wyPRPuA@2wGvvIo89h18Y-;W$bRCnEe1O7 z5_udV&HRb_=4S~v%%rha9P~LxwhuYFwbo~2ADU+$MmdUd6U%S*#-*yJ5U8uZ`n=)# zPBtG@9WoP4)9fbhT-QMA_H%gqbVnj35d1^mZ&APATyxGFH;BP@XcwGRJfzWLF&%n= z<#)pE8Q4X*DbEUF52g=(du%fHo}Ab5m5sb7T!-76gzvgM+x($Q1WH0UzFYG%L-;JE zo`k=rI3oR*0d6G&R+G*G0wLy^7{162n#1 zRYgmKpxBOJrb}V*NKK&awc$Q=6lwTmG+)A0ey>AiJN}mUI(aQy?I@8o8G44{Exd0+ z#it-l5I93)|7iaS9IsmSn74~$N?tmCm)B3KR?8J5%adR+P*3mt&hbwXHrl)1!4m3a zT#rELTWjfBaRE7aJ{-fmVilEh0;s*ZX{n0{NIHm*P;Pw$?vZWJ<(L}# zEupkpZ?$$W8JYZ|h#js?z+a1WJM8~3^;Q9KEp69raM$4O5L^Pm3GVJ5+=6T4?yiAg z!QGuk0>Rzg-JQnyJNw)FJ?D};pjX$bdTP!wNCb4Q!KDRquum5S1!Ws1d+hk}DFoL5 zodX0084vUN9Pyt1{6_rEnUMREz;hpLUSwiN_&oykgLKaAd<5KqZg;;(y?XtE|em0lqg*M3;rHNqAv_1lSnjJ%%5FC!zT4u&doM(IYO(f;r$` zkRBFR9~P5u4%9Xgg_M>mDym$sCrFEJQIjh~!y-mEGPfL6dT4p>9$S(>-l+}F`I%G6 z%vHG`kwmsZMkwUnBl23VUAcQTW60j9$vF*zrVEBr$6k`;u-GDeRyD`mp!1{5rPClE4!A6<8UJ8O=<*T8ZtR5}uvz5kgOs{Gm2z6)lEcc9r8jBn{c`YZYD`d~x0$e4RF>G1rB|cd!hI zNOv)*CLl_WA2D&!I`Kq}!~7X(9DJtk;BOiqe#VQnv)om*P1;+Dt->RR<9~RQ6-tg3 zFO6dCX?J}V&&E>*`R7R9qg-w-!zJ7;FltBEI^2Ney6tM#-)JKZ&)+bczpOFa9=N_( zJz8CYuG0{Z4el?`3oimM#%>jhO{SQlOa;2OC2LDBH!W;DnlU`Q=XQRun<9Fz`SgAE zo9UD{-p)qP^q)H_XLIZp`!qap+5-&n7&;NJL4&rihT7?!=z5ZGZJln{+iRjz2#jI{@b$QH@WrVKki| zP8CP~_t&@pkDKi;R@lK&(b99f*{oKcBx>!C`Xci}n?t=PRqbGA>FUo8MJ(pO?>)4? zjkYX5Ezh3~_brXYX`!CNHcK5l>!M?S3)Pc6=t@DVICbw}d+5;eJ=iQcK;ux~z20b} z38rV9{F6mf*j@BIA7Sajnm9APw$oMh1v}2*={Ee{1+-Mh4fa#w#}QPE4XBPx30RhW z3=I7^03luAN`Uy_I=BU2Q93a;mcn@g@IK{Y zLwBrkz)n!wh~IC3^F*&ITsCIFac2t1XkGkfGK*+_Oz+Fb-ZtdkmIp_&8`}!)F4(T< z2N;W6Zm68<2O|43020X@NnI9^4F}u+YX2mOsH12aA?xv)^20%mpRsg5=BNNS?u4O) zO*ayl6B7B%2DYjEb!Wb>-1|LzAG2t&T9n6I_M+=FxZ)fxAGz|KeulR~hCq@|i|Zsx zivtq5+qHbWd#@U3tv%SDXKFTqQEoK^!3?U`o8Am2!6bRQ{Z-J?v@F4EU_cYo2mC{0X4~Zl) zFHLw-neg1>QQO!Zr|SDh+)yu=Cv1O^%NkVGf_qcs8wvjoU!kZQ$1?95u(veAW^qLX zW}$eW?ok|;TZl|0dl_dv7%|-+lnV{;t*i^zc(Fz@M2hDdu4%=@&HDudKHWIz#`X<# zKQWzLX&mZ$+-^%=O|ZTHsmL)mnwOe>N&48*&b1nHG5(Co_KR)bdN=dL!ib%k52l&1 z1OIh(5b{?IkueAppG^}VC|mYBY#g+!M;vaNeu~HIdtK;!m)!`3>-72%Wv>?)z*ix(D%-DE?sjgzk}51)W+m0?U�o`w)DJs_UAA9K&0 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
  • ZML_!r|pgUky3eB{kLcssx~;dBB=Sh5)6k| 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�UPkUhBHjsxTdlFr%?I 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%0D7j#_Aun3zcq>A{y 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 literal 0 HcmV?d00001 diff --git a/solr/solr-ref-guide/src/images/solr-tutorial/tutorial-range-facet.png b/solr/solr-ref-guide/src/images/solr-tutorial/tutorial-range-facet.png new file mode 100644 index 0000000000000000000000000000000000000000..e441782f12a3ac3b1747a718e358fc4db9f37110 GIT binary patch literal 21592 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 JPDHLkV1lAv!`%P? literal 0 HcmV?d00001 diff --git a/solr/solr-ref-guide/src/images/solr-tutorial/tutorial-solrcloud.png b/solr/solr-ref-guide/src/images/solr-tutorial/tutorial-solrcloud.png new file mode 100644 index 0000000000000000000000000000000000000000..9b76456d41e136ef4582504ae5a237df81ad24e0 GIT binary patch literal 50418 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 fYSLL^FCoVj_^OM7TDp$MdZj+;J|Lik1 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 z z_O;YEC+dkxuCWLZ&Y>|V_mCYiS}Ydo;;VfekB)>q@|lzSJ@rdUZ5vBWI<^!kFy~9# z3hN$)^AC2f)Ilf(%|=YaVe$NbtP1ou98wr-8LGTP>^5BUTpr4g^NO;Zr(x4RFN|oe zaXNVCZ2tS1VfR>%x;8c3jIaD?-vQZ?{ikNB%cxY}@fy~#-*8ZnC&dRVN`(ju{pFYn zw@LlhGpEBoO%RRW6xH^$sTk#con3d>c2jq*DKc#S&iZ|7;M2pErnH)~ca#q<%k!o= z5uf=lP=F`2K@>zjyrfKV=84L-At5(w6h2w_lob-=f`%&tj{bO7Ru;#mz*GVBF8?=1 zIa6t_D1L#05wwHEm>r!9AUMWFF0-c;A)5rUPjkJDlb|xMbT!-m@7D}=3sz-%8t{Dr z3I>85+^?Z2hQ{P2UiYaNMBDjioOY?Oz!ZFOay$=|3r9xdh~$a}+3Jod&Sn9(!0W5G zmE$kN4$xIi@k#nNQTJ|KKXwoZXHZwpcoAt~Vj&eE=k=lwGe!O&&FIThrc`e99BkMj zVlyAC$z~>WG<2+q8cD_t&|;VD><=*==~{UOjW1|CwCL?wi=_2F3n9;FV9N5Y_M;E} zKK4LB!ySgSGpMp8@XqGlAE6u3DyDy zkzxj5?0W?G$bV%*rkpnLKxgIK5*cn~&d|T5gza#}qQR&M>Hd^I2eUe#`xrJmh=tv8 z52JNAcit){4Qu-T+(d8nq>(hE@9G#o|7>!ltNL*>|GO1|+*+orPZXM!J0hj3Zo;&f ziBw23j#USg`-E+qMaX>#{=rZVGu4S->1aKj)jV(jE*_Ge0f*v;GhBP7{X9If0vd~hUzUEGKb48xN|wkQJc1zfMKPlxz1sq3gSMStJ(Dop zdCBAdn+0%cyYBhvMws?())CVg-X#nv_)R^h=hLb0I(oX#ZUtMpG&#F+^(ruaijWi}nK1PS5dm10pBw26Go+=K(rsTX(u1{g8O z9Pncql`ir*GWpwZRrDpS`>Z9a8;rk16Y?5o4QLJIi@5J9=6^r1+RKI!Qv|?ChZW-z z^uG{B&S=#wS=-P9JKQu3HUVHc2tRg|_+k}0W0Bx6^^+Q3^S*BZJJ+T`>PuWY>YT48 z+|hK0pU2}BvOS5vRG&GuRzxVRjG!y(h8HE4E)+(noSa^|D_lI^V)IMiTt}Nc6i5?8 ztiU*CvQUMaG(|+B=c=iVLA5TLNDP~TUuP5_Go7aze_KkG`YqI`%u>*io?~5;JA)ZQ zbSG&*-E4dUfWJ_T>>A2EwLB+fFu8%<&aCBemYIYOW_=6jxR2Db>^yY$t<_nY|zv0F_(O9h^ubl_OhT?U|eYkj3U7vLxnc7 ztRMY9At#^*G4R!s6SsS$P$idWO@zj@5-o&zfAgjRZW4fsaU#)vR=@d6u{>I%sv zSZPgs;oBbXTHC;hZ@|H zpmn8mk*b!sj=u}_qEC|lP3-M zkX096*Rd!Ow*HlU+|>VFXUQ(K_;O&}hljSv+Ah0hK=`{7oHmQj$`DFqnW5 z`(?O>{IYZz(4aloF(4u;ifO8`;@ZQN(CIU-{+N(MJ^H@w1;)n4rk+X`8#4~basGF= z(bR{#SF- zj5Qt$$e<~{r3T;K>SWBIjpqOBXJa%HuH zGpRxA`JM?D$Z-|%eO$YmI(@Dqc&LoY&V?7{g|#_w<9m8a*>x%D-M|Xk<2Pu$t)4sD zN7R|lqNXMD>BA07+&$K)O*1e%EX4Voao{a-+>iKuUJz-1E#<`(bv6T+(mBnznQ6ni zaS$Ehi&XM6E5qIUh*U8Qqq3^?ErF(PlXKMXo6mXS*y%AQoZY&N?`yA^OIdJ}H%VkP zQp+<umEs))>)t3TC(Uh3^r$CRUUb4$bGWiGr^engKUt2%=VZv-iV}^Plb-K9@d- zO@79BygJi8o$|6A3w8CRrC8fq4&ciM{aIz*z<*4d!t8vn_5Vw=`+xEtW6+Vd(81A3 zI}>|mpu@q?m!}y6r5`D4>Hz|b6xoyzXN36p5b@D~6o$%*ij6V`21g@AZ|clf-YFsG zVV#X>Wd$_S9@Sw&>I)O7$7d)dWs%n3zoBWrQS-4f2Sz0LHeVGYX9;}&bdfa7UOSPx zrUoaCS9seO95~*M;bl?6NKG9$ZS4FcWH*woC~eGQ)mT;fk>i%lcY?2&oJ37@r>XF~ zulCcW^YK1Ax6~3g?W9qnJQ45En{7%_>!SzlOUnX2!CyLJO2Rv2h_Ik9zr#LHbx-8Y z)Ih%LCAw>24<6AVX=)tMX2^wvcnchK`4wXD$k0_joZK3v%-Qjb>Pg@G`565dRv-BplAKGrW|E5O@SW$QvzYN^P5VHsLuBLsQ0?w6#S6@YvAlEsU~> z9eC*tCf3G5?4<&H$IT3;Y7>L1%nQN;fJm50@%dI|8|Q1T|KJZ>I|3u!s~l4MhAD$^ zK}d;a*^@98)klT8WZM@c;izM>DH$CN6~|Xg_opkx?0dI7*Nuw7uisGIPI6eFHaDQO ze=E_Jb0cje%K+G|b5YgmkP6-rplTS8`LQW;uXyv1 zwQZ@q$VQskrblZ-m@}_8l#$Rrx$3@cOpv4UGWYJ^qHEgf3yru_`_G z0g>0rH|0r02Kwqiy-T-A*;j9$ta=_%<~G8u;`(kk`InqrdVi-OaE6|6X=;zBvtEYY z4zCeY7=3iYX(MxZkl^O@TFSDeUN~sh4JWV7+aq3~iqNjbHxcP-J~xvn8?v7-M(@a5 zPDDK@Fp_X>Q&Ib+RJh)D8WOuo$L=~gN~7ygxOoAY6UCrT!*ncmnBOLczOzjY(_=auuNBE)greCrZ}^^q=Z^9D7p zA=;vm%FjrB_`>LI=`mX+E?@F=aBTUg^i=aAJsElm35^DFS{Mq9Dm& z*!Im%waI^mFi#}gjeFrH-_3%?h)wqB2=E|pEN)8nu|#r0)zv>m$#ywK;9UZjJf`L* z1C)(6H2>VKnW7MwsWY4R10iYZTOrVJG`(d+(s^(nRI6IZ^)dE8VPS|-UYvhq zDW9jiqU0PcYz~i|@1q%B2@vRN&hmL3wU26 zy2HWj809SCf@ZL7$zy_yJ&Xugwz+F}bq#_6YWiy~d~H&Knj7<*R-zhFy!BizNG55W z7c0JKMjK@fSYS`a^BI~us7!Wf8$(!iI(ou!)PPhrE3g3tR2fEJ+>GIKXLBeCE_Y9V zb4JxF0qgqVPtKVpDMHTM_4Ebp@w{VlfnW|HCKp}Ry#9_IL`yg+?2TYkY7TX9eU{TA z*j9zR{8Gx?P6!M4f_ayk=6R{$SHi1k44Ztyo4j|`5eN>NSKXerkY~+oudlp=_-vyQ z+gZHSeN=4ej>vomcT4{`1r}soR+&9mESVGe4Gi@A1;yjcz#w=eiUC{*Q4QfQ*>I2Y zzidz*gyn+rhp3Bf^aSKFL=4rp#t4G}2Ywf_E;NrVF8@@al>Ps$T#+tILn_{t+gUdD zW~*Z9c{6fKQvcvOKJ4az7x8#h?D-~(C0RH^GU+u35%z3aHof!i2W8i4F-L?&x5lLC zjM)5vxAj?j_u^kMz5hqu=|83T&6t6dCv(_q!*+6C9u{~oMaNvCJJ5UK0X)E}I{%_@ z6+eeTxI=bIj5nyv4`X@(I|IQBOr0@@H3QA&AswSTXM*Zg43u}sRg6+lz|_E%MN@8R zV-c5|{Qh6^#j4hDr7&?+ne1}DV}*;0=1j`k)=tLS`#0)mLzMR0tlQOWJ)Z_3C&m=W zH()Q|8Vj9yELP)Ip0^F;L1vj=q+Bdg#a0dCoR{xc5j@O10^gVle3SB8Xgw^REdX3$ z4}dB_Jj>JGgtk+c@xh4u*Ju~U$28yMU65HDdPEt8d5^HP4y+@t^mz{h$M}-F%mJL>whJSw>@#>^1(enydXGkts&U}76l37H&|K>x1Wh+Wq`=EH~K zINe2&YlM7=CH>d4uo{1?$A(>bm{;p6eA#q$2(Og!>;vxvd$WKGOc18tHJD-Pe%~?cv`gho9(j@@DMtuF z>oda7BUW%?1F9t?5hNs~;3;f>4JVmK?>sGQm94#fkN$bXP;QpZ*_R<)s>_af#B6JM zI~iw&`1stY8{qPpZ=6j}ZHBQe6pz3PQ{O^hnC?~3laNYn6$}Do88)ezRvr9hZuZp9 zd<{LU<8UV$3KK^7wd^C3b{}4+eEkd4@lD0!- zL_j=C4~-vyF`RF5K>I~b+KQ6EZcmG6-HpNVb01dF@rQkZXyZKJ=M?FawapQ&{a5yu1m5m|ZXtCg>ar(r z*}gWdAYYn%s#ovZVPod5_+}RKZ3m%+3v?V^;7qt+9EBh;EC*~6QKYcD#H9os$kPQ2dAVR$%Qi( zf5}YaSxef3ijs?1gn)!YbkgI1?$CVF&e)%;{;;UE_)ATh+}V<0S+DJAA9tA70PV|i zn8eS`qGM1<{^wL?w(D3#9n7mS@i)U!tk^=E*rg8rR&{cU@8CMj0!q+@#m+-EW-g9h4;b4CzuB-ww2IjwvX~*c%l4-pVt0=Pj zz|}Zjo>NSbA7eoJ$S+fbk^tWAB&I4GSAzcOZT#guR?=3&J$mv;)C7IhJM5KcXQnv~ zfB~|)Y>T36%)L8tecRCLgbDO;zvT3F(lt|VRfTgWvy{u)b*<=8x`S25<;IOQefcqw zS#1d5I@|~E>-8Fv{mn6BI6P7EsJv5DB>WZ0HyXPJhn}ImSEda|sfzaSF*+f<{OV+=z{&>S4g zk?f13L(A*0F2Gw0 zCX@85o|0#0SqX@VjR^OuzM5i@8)#^l%gfi}%8or;Y#wFqF)@L4z;=O$x$5d13{?DY z1J?x_kP-$hmUQ-a7_i3Uz*~62Lu-5b8pdrV?$1=Bx)n|?pc?SIlROCRPX84y5+Nj5 z4B%))&)-Iie_ovr29$0bhvO(mH)rn7Nk=hDO1sGsS$Ojy$t27EYdFJ~j>|5C|9#Ux zOa}o4K5ulB*U;8BdoI)FG6=Bob)0}W2_2jv!-qDqSlqtRF8?NIKR=MHRhV58Lx%&e zLaL~{H^)g=WJV87$b6?wUQ|>7_MPMu&#GJ9|6vlW5C!;qtARh`1RemmiP{65mlr@X zj5C#RM3V_aWxVlH^y#$0k|^)uu#aovk6VbAimQRow-xByTN`YMEBY6A$#r9y!tVQE z!J8SfjWrIuEH#Qnx^QAq8=KPR)%tb43Pp)+5~lf+ihFk==`Dy!9qF^}oq{v=b?nI; z@wggMDz93RdkyO>lf*q^b;Ckg_l z%FC`ef;62%@}dNgkdEioSa2a!ZeB@&~nZxj$ugZ zvKrv>MV^RSaUmLk*!~Z1l6@L`rL7E~nES%Ah8H`tA0hwn=*XTT9 zjqo*NL|Fi#@tusmG~d4iPBymowQX%WqugO)R4&lxF~h?ykX^*jKj6z}T{@N!TrCgS%V zIb_l@zDJg?nk~`mk1h=V9)WFx)$?AH%iG4IMejLzdxLlcIAxB;uc7~FcKN|z@XJq~ z7A+K8?I1{jALpp=6lxUmxGdAH*Hf@M(o?dH2NyMRv6WEwpk<83BQ$$B@ivP_vj~Q! z0sJGj;!f;<9FfznhwW!h|D?Pq89qi=(H9Z+uR}S6ufe~ibS(kijgqpb`W@lqc2F5) zmsmVQjPaM0-a*F+Uqmu*L7@(#An^6ISu(s*qKqKC5lnE(A=6lgsq|}TS#N6$g@7DT z%t)`6OPk1JNPZfXkXTEB*egEr1@hH>{jvK)(8u~zLGR;Je>--W>9*5IQIE5!?i0yg zgwg4pncp;16mFkvy4*l*pvEDYqz~KUwRsl9AB@I4ogdw(j|W>~wSL;ud1c~Ee?286 zp0EDslf1LlY2P@UN;6Y;JKw10z_VL1^+JG~hs@%6OKMbPrH%ca8sA{~LY8r1U`$cV zmw}YaKq`2Mz&?oNJQ;M@a-6MsCg=37uBGH8Vxsxp=3btQZiPIE1d^xL`uAnBEWom1 zU{^21Am`wH^2&P?b=EVDjG~+dOIQ3XYAWA5fyQg|Vmfo_UG9G-N&Zu#yRi^N z0-^r`_8hg+{ge4;=tL@L=9sxNi*h;oBgO6!daOA=e`Gx@t&Yk4y*%>=ucSePF&$KF z5=}PQ(%$CxFO!n(fCoCg zV;aZlgcIZnH7;+%9Os5n{g~MWtmDcNBoOreU39w)wth3YHFz5(To&#DlA|0hm!;RK z_8w_@hn#ao^WwT9-TNj}Z^=5AKBX=??1PX#xMH z!?@+lg||=X1q;1^_lYB(Y}5>9whQP+8h&R~RTY&z0-qkZFd?ll#cCSR#;QhZXlx&; zku=?!S3&k%*yBs4Q0kFM@)eCHPhX{vwP~ZI#>AkkoHuXUdc0kI_jz64l1f#k)wcLUQbw0~_wCMBLsJtkR}w?B*tyjB zCx#VQb&1E3sXW(`=t3=4;fyQ4dVH;GTXyyhagnnP1V0v~3FCtv-`*Asxhe-elaUV` zMBF@rcuCjgJqv*aO{;9b+tj^Cg=2+(*?o_RAFoa=AbbovbmCJvB-hX9+2R!p zs5IUdI(kZ-nST1L;dm(*u$k@^^tX(Ra+1Kr&Vyaw z`=~gmn4tf{R5rJ74F*YolOfuvB&y-gqFa|~y(xm(i7eq`qg{x3njur41-=MoN<|}e zLn?+b?7-^vi`e<27W}NM`+C7_Y!X@w@M3L)$^14eQlpo_u?NLd4>}?Xjds}-RE7F2 z_23=b5=%I&K}I$`&6ljVZbfeX>$IF;ZDh=z@CK~jH0p{X4^QpmpfgIVKyQT8Vp_J~qC0d)w7)?=k5xWT5{nFl*EePf}2 zzb1U|aye31f0*9y4&SkYFC`U+U)IJL* zZ#%Mf%45-Qn|OJ7rAsc4)TbQ^zy20zh<4!b~0$hJTtH(0;wuJJYfEcAl z5b622p~8;zk7+IFW%9bD?dwny>9G|~`db@z*N~)RTa>DlX#!#_tPjUu+n<`Q6B7x7 zsBBQ$5uY9mYfUq93&v0Q+iHDS+S-_vqqQk=HbW|z4Ofo4G6}(YfoOoa-$JhdiXcz_ z{y4Y$$o^IhduXBM_=E3%j=TBK=FboX8VdG5qv~nTmngaeU$;rRRwx_|2>pm%uBwuX z!#Hphu&nW8y9fMp@!;S$%CQ14==%&$xGWQVAv2kD2L^6BAavZ0Uublh2bl&jVW0$1 zzefH^t4bBXlk<*Q&EYi<4RJA)SJY!l^b-nsW7#w0 z=H#K9#AF@IXzBY=#NjD}%@AZroN_gOaR>MFQ+ha&L%cy5Lz*5Kq-5}*!-DtVumLDy z+`plHc$Ao>>i{jU@rapzSfgZUm&R(~UH0S5Wix#f#Q-PXqCFZbK7KDpZHV)-f#-s@_sr8e1<*>k#lOQublnkxzoZ?mzfqg+fT#1!T&MoEK=6%sF= z4St25W&b_nH~;wOFm3gIZ-TV4db+7{bx8UzaN91VC|^aP1wS!n`#&)rt}C05Li_0! z27U+FBA$q79UD`^9|FZ+uXQrv6n;zwbU`KF>%W{HJ)34vXYmhDCN;P^|NW)nW^Pza z(_O9GzV_n7Z~GAdIq*JUcRgl)VfNW^pE79$C`V9)3~@W%WNF zrG)XWCGeBj=UMA6*efcwiIs?g>fnYK-r7H=^^*7x@Lq>M^+D=J;kf@FeJ}w+vPRZH z8vGrw!k9~EKx@RT*{HXTLXD}NH+(RH0vRP9N2%2DODdxOO(B}Mb>nR-pdYD6Z<`%| zP!frZF_xcc8xNYEI)RXtZV90!ve1q#4M@J*#S}{-KRhaCHpSBr^l4p63#IDgaAG9$ zz&|FANa2y;j&)U>b6p+;?LUE4@<4GMI{i@f^K|6U^$%szDpCOgHpK*$xgh!M? z%>~0_Ki{U19t|^^hszK;bIN%VcGO9;sP$$Z+W(-5xWK6};=5J4_>>35(Sg?_@JJET zemMBmijUX0c8*VPx1RA6-a)wLx5dEm6d-|yD2D@#MA5rsbUelR*VlG`H~2_{OL-os zSKDnFf}U!nVW(lrA>Sjg>!ULDS(ai{^_DXOe4>@vR#V43pY*{^n#N&6q@N zqHr+s*>Gu)qiy#4r>}=2gwsVfHy5uHdp)7AxA=1!T1@i{{Wx1$a_cghkNAy~aUrO0 zojv)T(}5)odBKcn!4+w3o=?ob#N?RJwvBn??bn z!%RcItjH5i*Yw%#nY-21&)veTh}F-}Z}9(Jt@&&WuMkFv&hv$^G=UB3uAv+Cy9s2Z zIWD^6*X5S*MkRnYy+$%XapuPFQ9fDC#Hp72(SgJJz&>;>>wpg1x4vYQs5u$7AnZ)0 zV1DiZO#W18zTJJ8Htas0wICc`bF!Z4zzZkI$SbXAON@=qUL%Mby~wtadU4)a2E-#4 zKqAeEG7F7y5N#?FTsBNRpFMQ+9ck75omx6=nu>?MHenaUZNfaojOPRV5-SQP{lS`3 zbV%rnqZ47IE52iy{0m&{H%v190JQ_ni0d&Bvk1KweRG??f})jhRe!)@K8!V1=`f*b zc0f1f`bfY1_h?O5I>qZXtYMV-?fTK)8@RpM#^Xl&y-eubZogbKu ztM(q2n)NK)ka;@2w@gqB=RlY z`cgHh(H`S-dGg_K0v_k5ZgD3$bk`2oMyG(XpfTE(L~Xny#s)j6my|SQLHo2W@kr35 z)^{}d_#A^lw?kBI(-*yQG#YkE%z3N3Fo}f7BoIob=9;u#m*C?N(ugLrU$ETmXQ=um zIHqjn{lng!JL8WJ1U%(006csrA{;`fiW(NuBN;_wTRzoNov^*|LJa+B@nx zwCF?wkDt^SCvSN*5WdkLb0pnAHKO-6+!ezd8Yd^_Fj{-+8%@li6exc%YB-P%n1 z*0tbGuMhEo1aFDSR_xm)@?JU(ZjYKX`3oCx`tNP|j?}QlSC{*Za0gM6VG1;zFdvaZ zLSw($-u>~`R_mLFs&Dqs?SMnm#bf=sK5p-#F~$s4uB=E3 zm>H-K(FW!E`QWKK7BHC$y^wex!;^;X#MBuKIVQlL&2x zmArwjDj8fIgzqW*7sM6j}#hFCf|)9iBoe9PRs7O}-&-99L;yy{h>q9c}Yv z_>v3x;S?xZN>T?kw$#c%6Ma(ZtgGF0+5ixiA2gH~0blHkKAT&a!`d<>eG?Xh0PfI)npc} ziGZt`n|b-8n*o?BF%gBjbxS;c(TCn8CA3>woKB{6ug4xiu&B2JH#(yAUv z0Rdm$(tOp|^y^a*(@aq?^VcKV0S=o|pOJF2osTpc-q zkd+HUt;?g(*=jp#Eh{T7hb5W^!Axz5Y&MPJ{`S=l#XbcKschb*7-`$_K zxUhI0tezp#Gh)I}58-;Lfz~amePY?J$f?!EtIb*e$a)i&_VQ=Y;;aa7_Jx|~dg*#S z698}f(J61HgsGmk)l`DAqE(dAMlzI1Bu>_Z>dw-?^lnLGx<`J-z}&hn>Y^OHIiTd>JLi7Y&=j=E1df#lF&nNvohbCY>>)GZVZNCI{lh?{14X+0sQ7v|PN) z{)AZ>JA3nx&%Iel+c#sr1sLX_bb)Pcj|^3Wpy?IF822L+aDv}R<8ZPQgsp#3D0HNh z8^TSFrap$7FZYt5{}?1B(}3!mE&ij+wlz!i=r9pJxp*TSS|Il%K9Ycq0rP(KGU>d^ z+IJ%D&c#V%GhgJhaeRC9V+Q!b^#6Pt|J%p%9zsc~hSzs_{uMXWhB0ujZYn-k#5g-5 zsb00mhL`}(KAf|qu0o>}4sL!^1d{LCBq1_^~>@ip}3#@o^CQR`SfW<=}I2!;c=LrjRp0QHJSR{Tmfcl)w2-)FCjei6^9T%-fhBEf+QoJ^s zofh0h3O_J@!rm!AA{a5-p`YcJG(c#>K9ULLA^=-mlyc4y8#)8O1t~eE=8jPWafoE? zIE+y*d((D^{a9Awlwrx9kecl`Qj(5j6 zzx7>JbFHbR-6I(3Seqal@By_Gbvo!Kuu?fD*`!pHM3{qlWofXPv=?-Vu0^uTf&~#7 zb*PnezmmG2fO(3Khq$UpB4@0b+mPU8Nb5EnSJL@>k6t9m^VOO4i!h#%ZPj}&e*ABTN7P6W|0Hu@nChhFAy7qT{&xRTHY zh4F!4a1>eT{q6$&$WfTUm_`7FZJ^shp>3eUGua`QW> zCjkC~$+#9cm}3K_DAt)*Di58o)*OID(DhOLJANdHQJu#Zv zhixG>EdG-v{@8}UrScC{?cu&qIoX%rVM~CI*-pIK3SR#{P^lh>u>?8M z9>=CTWaNaMKiDYcYXCR#LGT&A|4Zm8x7r`L|IghI|1 zZf7UV-deG>&pjp7a#+{a0q^t9n_`&>wB>s+6z$)r#Nj{a#i1>(AfT>GFsyP$U5kxz zu5s7vf_@s7+VYV$^_I0%g8!I!;X!gu!)#U&E~cR8AOZJ2wyxjhsYS}X2Ri>Isbn~A zC6Bm-kW0)9*#N&+(spjGzdYH1YE7tmfu?0-h0=bdHcZS#CI3TGfl_LEYPZ!(ppdy% z<8N@_gm-e(W_u%ob7L7t;&S#ap-{Zj1`bSYS`&c51;o_KkSw&VU(PG~6}FE4^Yq~F zpO};fQfs7Up}(q4!P20oGJzn+jp7_}` zEy-9tQuLhRa4S-QpY`VR?QY{&k=j%`v6xKxV~$-`Ew?L$7TOv`lXf6^#$EkJ40sjz zY{1m-;y^Nz#I@9|&?h2QJc7=xOJAC&dS!!9B$t!2~}zKr-%C=cL7Wno<# zzrb-BrfjWb9wGT_z#w5g^}v_9oGAJR>FXKXChecj)xqn1QNkv&y%>Y z7rcADxd6@Y>0FJ8TorA;%x@SNYCcYV=APR?D~GS(MEmUkHaBw<>fz!J@~;hln)#A= z#+tc+ea;m9h@P|*bCiQh%9U>E4W$z6bh?#4U`U@JbBu21vyr>a`C__VM{`#D{o^Py|o$fvPq4PN+T z`M)u1kp~6`dnSndeKUmf-Rn>5{|nYS!F;qx3;K78+P59u?BI%MilNrL-(j)MkemZS`twOI5QdCA_F$U)pf z6rrt$jxGWj86BR{QPcC)k&kYN)4k3VXjY(@0@B^|hyl0>_7IUq{*n30B#s{|9TnQZ zyL?89xxAOeI@2FZTvn>(Nvm0B!ep=PM1RnUIkRC~I-wC~U@8n{jHQs7*AnQ2|LCkn zhjekEJe z5?&}5@Cwtvi?R;&godY(h#>)$+6buS5~ce+=dX|wgrkyzo>)@5!*$uWz=otWh+W;F zEQl(dIYPylbw>*Jm2OcimlrV1OnD-?h;X9JzSlXI>ez(B+8if7EQ`F_PKhVeay95| zwD*%OSYgr$4t_AN)3e@u)~uq|4Rmm@c%{yQhg3?R*=OVxoAX9TMRj(Ux~*3o6~y(QP3Io(5e7jBU(S36I{^=iPq5M z!!wMHE19W*uD|as9NCI%D@x^Pq%DZ-!d5&KokO8kY`( zlWGt-j@k6{75c*$=08*Ez?58dDMoov-iuu8MT6}PSr~)jnNYIbQ_WK*8p5yH9J-&J4-3Pa^bpKmAdkA+E#CI?-;*`@Ctx2}nfQ*ru;(i;N-lgO>^S?_b@2zUJ7A zH%;Yo?uN|KH!f|_7wuPC<;-NLILuca&(Zmmul4WQr@DV361sU(ToEnCW9-0^9+>u-_`0MkA(eI_4sWWi{A zPFNM%zB2S|sXF6hAfAmC+UyMafkPpn_mg^Z&F}O$O62MQ>-K1KnRqK!U~L0-IK)xT zN|eQs3mEKE@qhQ)|8I8h5s(FISc_u|N}nQ)2EanttDPgg?)(+iWTqQVX&{{oz+*zG z+~aOS(=uvpRyJS)Hnbff@2rr3Fe?gyE&>|^5DyTwYCVY7(y;DplMYATE*CN;vwaio z^f2MU6DrM@qodIp*e&HGQ}t_G2(jlCvS6Aq zlCoB&aA2N<-8g9A{q?9J0ap2_Gv6R*G|bRzNd}M~45<2yD!N2oQY0gAR8v<^G}{OY zTLD0nz=lo1FYwVa5?W-fW*GSk0_vF&_NqvNWo%R-YT?o@!7kcTu%_%IW2*`}6-}*! z6MEw7JQ4k%+()CEpbTlZB@8;@b4;Rcs9xZefv-DKbV`RosX(HmwMqLqi(-)028$jA zc?g)cb3St=TgnPsO7G}!XXIB{1$u1%w;lfmjpOoQtCa#~#*eH+1kXO?4VE1x(U3p% zi|kuuEe+|GsR5Pw%(erXR-EpG!Jc|O_H7IxjT*-?c!&H=J}#SdVlv1$=@wzj-L4!f zM85EJFF~~U7V{dBW&7!yRcqR=^ z5|ABFMI!)UVqKA{g-OFxLysg7n}iJ8ln0Io1dmOpz#{QfrCGAfJ$)DzFu>{{7!e_U z7mvUiAra}U1fJrGQx21ui4WKk+b7eeo#+_;ycx|)5u!(HpV2RSE60`6J0LOA)54?=zcwId z%+P4d(Oy;mn9wDV5s>uEtPJl!XDbeE6avR8E+wxX5o$DF!w}C>MVy<~@(n9lEmBEd z`@C`#Q>H}=;n8>Pu)bwZMAF$ajf`DT*8@-v(dYrygBRdZZIXeq(#TcuDQ1OV$+xa4 zPZb?B5~pON>zmz5MRSlcUrHUU%Zqxm1(gny*loW`z@+xyjb3T9pGe$C+>}2Ds9goh zJu2(-q?8(SDf7n+zPxxFAJ)n-hZ`G`WqXX|Q*4-6j3H<3JsdCAZPr$jw4}eoWsAEq z(lYoZ9CM=_7K!deLXwld;`atX!=L)am89Zs85}u!*99a8b=)=)(m0D)^s9=?@_*^9 z2MoVwdLtgJ7R$PqKIzoUC-a)h&EitSGR7N<7#LAK=R*uo8eJ{x_l~ji@CBlv$xiYR zfh=Yxv_=`Y&r$QbPn(m6cqIP8r=DC5$4M+LWX)$Ai^cB?z4ngm?X(rawo5oab3cUB zWqm@Y0(b8^eO#lDQP4nI4JcVm0h(p22(WZUxo`c1gSJfKl3Vzp;3_lzrE#+}u98tR z894W?rJ%i=mVE?$q|$Lm)C;!A+h3$ax_W{x7P%^0{YOOw;`O$CvYPq(1wgrfo9gSA zETAV0UUqoQr&rZ&ZCkmEq$59-OIZkVgipi_sbefWNhM3xR&lH}L{mw2>+yd`kN+@) z|9PMu^t25`Et!FbNGz4VK!L%CNbL z$`nX#g(yY!>QFq$mQoeoxqv91) zVnu)Aw($OLp3a05rPP*e3CYd`!MITqP>w$k3@mBTnVPG{l~*;H3L|TLqJa$-r)NzSpmp9)b=hY{Bz z8%bND<`T}pcX>##My8y+tdNu}Q-w}f3QalotN<+S($hTo=R7-j^$pD1 z(kkDnc_V-|PTj=|JzVR$!H|@+X$foOr;7y9BsgIvxXyFmC#T&E2;gO&hJM{Te_pxQ zdu(h>K|`Z#C}M+A=m!Ok2&n`QjfH5wg0gbq+d}l{N;pwcO7a|OXX~zBcp{ta@xzl7 zuP10t$Gw>w#xa>GU=gxPUXUwO&;wT+<{Wz}-~efsmn2zQ7xcY7;4yX=yX@a3lEx_Y zyMwf(FDFM?)+l;+b~jp$&}8BGf7dYfd}Zs(SE~YLRbpPp0A@o~G|BnqQ zO3_xhZRnUEHYe@x@}m5LfX)5hF zP9wqR6VXI1z6`B({-CS|oBmL$#MmxDn^Q(ZxtOk|#qVK0rHxCl#fZ7u476EyA*l_( z7uXm>T_eTWoZ}&;49MUYZX9$Ut`qo8fT%9fkY;VY(Te!kR4yqCJ&=FN5EfZs?ek9};M3t|rB;#nJ>99BAbHSw(wp6Y=qMQ^-)TKRjTtF6*y^Ypu zote1Nt=ZmU^x52bPy^;AQaGD0W7Zg5+@cd;1|~ilDSW2ua|gm+wH@Zo#maFgijSTi z)OGwISZVG7rAC~|%SNBb3Vo>R3>_OS6j$5g5!V8fJ*T=J;VZpu-? zC7;<=UFQ8vc(Txia6WycUhkrot6ks$I1Vk0)x#$xq6$UhrlV! zGldja{Pt(ZcBHmH+(mP@fNP9m9TE$Ur%OIq8GH1#W-D<0W_h;)x>i2Z=N#}Kp-rM% z>i|nSm>b8aEY1!nyd_&Pex9K{w5S8b&A7FckBJ9s;D-w3mVVlwSl)GaNdr&tv-^7M zQRbEYwaO<*MMB$R@XYZZH5R+{pa|+xgiO~RH&B{T=m^Nr0g^&1^~R_pILU*BvQ7$# zXXDMcYU(`P^-$bVLhp7(I3Od>&zLiaDdXMA3Wm}CD;qqnqml6;-hT_3ZDvl*+Tmcs zYgcGt0s1@Q3}~n?`Pu+rr)SA|rSTe@N)_BliM!DCnbjllh`ppj>0%{49Ju~m(GX+3 z?f0(;H9iSBme{vJ*Fl!sDx%(d{@2BtYZ9WufRLniky%l`DY||EK;Y2Sm{GvLn&+t> zIX>th#b-q4k#C8R$zVWCBp&;+R&Vdj;V6=j4c`n3$@qAStYYG9V{_&2BsdfP_^wkk ziE-7Df|u)1)=0G%R%-i1=>M;V{SWy0 zechHjyP*}hbb#CO`wsngHA&1u-b24d8EPp zPZxmLN%~IhFBJMAEiii6G&yX|O?l5>DhXkjp8P>9m^EKMaw3>8m5=yyfDN4 z!&HKa-PjyTTYJOfg6Af^m!e>(04GdbY(^$o@{|LSKmmDq$D;9!m39jMDm5qW(XY5J z7-&i{IkxI@Izw3E6RW6So62qLTwrX&a(#-;5JM-zd+dw$NzC5Spi2#48sp)G8m0vD zI2N0wKNwCa8T2iTh6YjWVZa zG(3@P#$uh*Oox0(5y>Fak}}Pq;ZF*m|5gluHowBbh7tJISm~4KS8PH-lmUcpEaMNO z$5axjLi+ZHBBp&Sl30CChsre{+{F4toZ~2Pjqa!}wHoD1%ZRi1=T}7w7z{PiygZ~{ zP!>P7f1vR4A9^@h638+T>p3Rvv_I<)uC)K+kfNd@gh}1GR3{o71lKb9Zl1RPDpm#o zTal_(+e@)hBRzbhy18sre7XIEvwyB6yLrthoh>k?rUJKog1*AK(Dlb->_D(7?Fz-B zq97S44BFYr#P&Yt)p5Qjdq{Za*Lyufw%@&6@$40RNhaz`kk{)|b?x40WI!Rf?O7;q zHFff}#WK={p*OSpL}a?$=dE5Gl*0qW%5+FQGPnyMq_$ zn|#%G`@GxxZY%blLh@rxrr!0E2b*gbLx<_s5OC}rk=jkX!hN7-f_NEf02;7}PfOG| zM5VrbwPL&i2peaVY{YpE=(HOB3=?bzY8O_#GbtfZDOblEr3tTbkjrxLd~ zvEL&2xi>lHd1Xb%V5@^PVgOUaP+0`}vBoj&uE+M{uY z9V-wa)aBcc1Zy)mlgJyZ955HXglheAtNd}EF}lJ)*?`bXq`t+1hqUFvq!l!q4{^WI z{lyp6u?rDp>e+wS-6NBG4fZDAGez==+&AkkEl}Di_;Vr5?#mFgWZQ$$r+_SiGGA4l zm(LTk2ABMD@$bbsZ-ly{=CY9+j$04l#YB2g3KF~?Z zvC@q`?KjW2(#_`?qrIHjor9^(;QD>eAQ>aQrIy|th1>qACzGWhtp3@r0|K4EVTKM+ z3U%2YkbqIf&L8T<*Go1?3EBXfNM{NHtvc;UB;zahPo~uC?xKN|G>3b)34^oc)T{oc zPQH4FK_l7DeO#~H#m13?`yr#ZBq)1Z4=Y;X3r-hv1O{w(vMHk9Sbs%{dMB{Db`Z)X z3G6|&AZ`^9L|;kz<3~6wS8w~%xQ=M6;;j>}1{iZoQ6HAwy2+&>x}vNXAB2Ansox}37H~_X*$~V_u?k!?EeW$g9tQc{sk|f1b ze7%;XWxG#>z3jE#RA{Fy>56M%(#DPN+XEyM1&UrK@TYa6P}HY;7hOBTHDjYg1bhwt zQJrHFNC>@AM3=35N9wl+`>Fk@&i0O0J8SOC`x#izyOV5C4l!6Qx%C~@MZ@WzGn8I0 zR|%BG`u6kIvc3o0jc~W(LcKy8Tb>|Gl%IH>Sh4+2vEsWC<-@yZ+0gr?)BChvx^EB9 zX#(|(mePp(to13|p6h>wggx92fMd6Sc4i_oIVV%)-f4FJm0e}`Nn6J>#NHJZqf zec1?1SIl39cD^ZOY8LeRbRv$kW9*Jh6fp#WeXJmARml*Mw{Vz+vem$@FtH+fX;sce zJ$2DUMrYNCJpqdr9#-3Oo`3WMO>n@_Jcq_+;h=@%O-X!Ws(u->bX8SB`h59?3c+V! z;jRR@=%~neqBPvm=;RS=SYaD$;2X!w-mQXNYE9=p{g$Yc2dFw;w}WR}N?OA*U8vS7#G=7ahF|ls^$?F`hMQIk7}bB7V<5EE4 zGb|Cw%F}+_PV3{U$?pVMkkfp&H*_~LZ+zO^!5R>??TO}-z^L+<4ixAvP8D0*=`*Di z8Vza%!rtXAyLthJSg#_E*^FLU#Y?V195-b6zH0Kok9-yWb(@iPUyvgbaz)u|{rc-K z!G?lL&EWw>%F7xQ!-+7m)s?YjR~uvy(K6u%LH6DpDlsVK_0@~!cG!Q~nwxlKHBUvH zZm{V;vB*&81tMe`U|~}bmVaz~A0gIi_QZqzZ6W}F;)t>4f*%lU_qtc@F2A?l^m#jR zuTEAiqyC~mXIe?c`Ljp8N~y`P7NN((GVov*6Bh27Lhd~Zbj#D3Ti|`CUh}y?S==)S zxmEw`G!ihb56Z0{rGC|kNnn2IY4kju#&pUwk->^fA~f!>KhkBN!y8tci(I#XHm~P{ z^*OIiUFWhMA@8u>=#Kqr0PO-yiwZ*4zf<8l348HWEy>R4QD#$7tYRR-$*0UWePzt; zD(G<(88V;nwg+1qb|Z297Vog{_jdc*sx(*ZMB{*u8mt(+rmgGvEN4a2H_ z{c|%2b$_!Kz;(i%hlPs9=qJ|NeAe{jbCc1NwRt;Ir9R8ni2$||2=*f7tr7=L+rN>7 zFM~BH@iwx4yZaCycI!<1dlGfy?&iMran6^_aZm^T8Y8wtHXs5Z4w2JoxK`QvwgInk zMq6if`P_Q?RcgOEg8yRol}2n&4;c%t=GzJ0fY?O!v=>}Tx%XLWy9>vFtV|gr zN`8z?MPMuWBH7f!LYTpo%7d{+9H!O~y-tT#7A|OcyEU1{kz&B5Kc}4I4%zQG! zfZK|YKleQhY@9Lu15iV8f-PQ((iYlm{H5$_a22&aWA&rDZhy|5j4kbB;@g62O9E=b z;}P7+4l6Rk*z;y-oMZnFmaUleIQ0f!4PMUo5!pw_gE#NnhLMiT^?YlQI;~a{bP2^f z%0#9ELWyru@Pfnh{`NAwFg9B$kD6}?4`FsFo_GqG^`#7UR=gmWLjPo&57sc;B24Sq zm&M6;KG|NO7uy?33`F|FAlN!OcBlgpz3}+q^?q-uK>vZ}bfMWhdQlV1;qNZk#8Caf z$BF%}RXYQ>Z&rS&!0*ghIB_&z(&15m&6ePa>L zM+r!b7OVO4Xv3dm6=d-Dxy7`vnDZUQO%{IW9pWat=0tQy@zA>UijD_uW-im!=`fVe zO7n8|;4QkhGd;^8&?D`8cF(LKetWzqCE0x9+IjuKm>u|++uB8S3$5-SxS!vp-->iC z-K^-jTWSbAl*D<6?7=oLp*o`ZlvR|H9w46QV?+N3pP{vtyQs!C(qZ zIai|M@Rl$Z+!X9ddw-`W49UZo)G6DDBR)-j6 zZ67C3DV7~>%X8rvOpdlR74dlX{@G2TJ{k_sUeRUb3_O&KGcIrE3|D<2ogU=YiAe_k zS%T7LewpMH;1FJ)t#M=ZEX^%dTb8ElaMb}p#p((7vs~fe2P3AZhx4La9G=eZg7X#y zR`G0OfGgY|hv~nh>7^G8Gt3Gtl18d22PH6RS97GlGbScfH4~lUF1F9-liaPZv<(=n{vmPtV_WDONdGE-wctpt6E5 zid@!$5%Ol}r<*72d&RlkVAze`sFt~1G6^``tm(&^<_jayMO$!5_-mVu{8R9$q~3M6 z>zZSy;H${7e6qiwc!Jy;0IACf&9@)0cw?7}9N4F8x0C&$lN66CX46?Gy8HFaZmfiH z(n^w%LVh?dhol&sm> z>`M$gS~w74G&b2{FwxUoq`#YjI!zeHrn<8qTGry18!M=|I ze?Aw%N!Fq|3#)&w>fE;5Ph7zq;?h54d}RD=V8HWpeT@d_zn&=#9mLQhkLQ|aW=Y=6 z@Gj_oc)ZPl^sMJggDNZq^^c2LXimyzL0Xn~$I|!uAcN#}1Wjm1yZO4&#OHH|Z;}*p zUWD=bB!NR!Tmbg(qDhopT1iCiqE`8s!H`MN%(QaHj=|6>l@0dDG)8oKxVgHG^XIki*zF*LS(@8Hth-w!2YU`*Uyv`oDlnrID5NvUP zSvj14DU~WMedEHdahJZYr;>J|Y-gV&$) zNBc*3j1uU_E{b1`cJp8^9=Tobi;Op0j2wAZO1@XNj@{-wMsIlXdv7S4J9hEa9vj>e zZ69Z=rfLZL^L(pixUKvqX;)g&i~=yd&CqsB*$V=}nlA_Or8`6^f?By`H+K<2D#*!@ z`X525>`D%p*ZzGMvl^{Numy^y#ld4$w3 zsj)&|4%@K9ivrVM3GsYNSEvINsdQd^lrEJnj5-08iYd3fN3Pb_hMb$dW+stkbj}KS zd)Y}Ly;;SiK#Zf-fzf!?U$|6n`@;bt>;P9B1eB`U_6~7}Xx!Ue*NOE3>mduO3#ZxV1AI?jy-ZmIq@K-o`B3(T7y2c!vdN%XQLr zj;9NIo$2&A6v%-aH5VstbJ+GSE$ThCFpgU~S?$>Yf28!xq>sCnvr`)d3uTwidJq2v zf7&y=JjM@wfUPyHZxa7@AUPzkvs^-|<4JK#827;U3R*GFalCL1n3^{F?>(I9`QWGoxcn7Yh3mmc1fUh!I?hs*a9c20bHYit8FC zJ&ntcG7{}6T_XZMQR~``Hj+T4gqc?zgYR|CvW{+4e<%L60E-rD{m2&mcfb@%BQC;& zzpp*Mt#2oC3$z{9Ye$gPnBXxYP>Z4xMu-bjdxj-3= ztI$$G>RbWNf|C2O6ZLm)xR}N}Hg43L(MvIs(e+@F8S%23?USKOLW=Ol1*|+LlY+`Z zLS{HR79`j>B$zX*t$}CgBe`#D;#T@7(Y70^B8(2v!f1KneY;**jugp(N(K3hy1Y+y z3TMkU*GUk>%a;iRWrCT-J43w>ge~rDq#O=#L#@BdSf&%4bha3)lV(TvAQ@j!N*82q zFA-%pt(fbzwWANx>I?B>Hx#P{$>k;Jw-87QT{eBlgv0qKA6%Hq``vh>s^z>&y5DupLq(E-_h3B5Pap<$X7HD zFFUyX^hyxmpcYVvcO?kq zPWSxH#pG^iZNJOON>yZ)a2b4F*e7xyP=(w;$2FmpS-;pGjW_uF;kFJ2#`u%O){u{k z>H2cKS7~!2v~qsCBy}mQ2ZSIBfBSdt4Dwf$6*zOeF04KBLwVPp1+iU!O0He_##>E_ zmSSYIH79NuEebcvm*Tgp!-UDXBc6vKYc(7rpES)UY{Y(S19=_}l2b=FLG=iV7J^X|};@Y`J+VrGyk+z&tP>B}Bi)&z^jD)>I0c!2+6hRMp$o%+}Ai!1xP*<{jCWpYr8p|qFB zY@lW1@S8UGkLrN;{CDd0HuBuI0@c5tRG_d6Qq7b%V;^{;9l1LMAEEN^W5S{awm!+7 znOHBywnqA5CMtzGjOT54D((dEULpLNoEU8SBO`k4Zlz>B;hrI>I^C*vd6Vn@JG*8B zvTQP2om+^oc=jNTH5J-QX-vv>j15!iY`~6ko`T4kJ`t;*?HMXmE}VU=b)w+SN{m)> zze&sN{CWjF?L51zwU$k7t*WT#(a$b6s^tQu=nJp8o zlzX3ckW&OK)w>d+noC}i@Q1MpW2kxDaQKMFdS7#Z7P8>`nIu<*WTvsI!g_Mpzh(|1 z3ox|!#roQxgg)3q`xH(w8VcqTJdQ2TXYlkNC&*)r<$_WrerdY)pD!>c)(riH@^(V2 z&i#g*c?;y&9P|)ddXV^}$*~GP2A>?QR(n2;utohMr=Ag01|z+x`WAu?5Xoo-yi8%@ zF(k}wY`pIDmwW{D>M&_qWl~-iZQ4nmfXt=pp_1s#dY|#w6+yo`lAs2$A`J&MjJ&E} z;Dy5^DTuW22dAlSs)Wg8LNKRim<}eDZ!sGtdL_aaI^7X5(j3O;Pc|BN_iG{6hj~mp zT9fx(4o){HoAHlz)2J)~nLUhm+bfDBVnD+`$Q zNXv#`DY0^jCU^^z<$BnO?Ry%max-%p%9r}a`jcHr?L7t5Nm3S<3iSN+VPJ1N1LQAO z3Pa(ZVJup*%9~qdR8vOuWoA_lhvE`W+az6q4b=l8NhC6;ORD75QjqvEC;RIMSEq3N zLPKK2c6O=+gfTqxvzKs8#8YTiMuwr-W!EmT%s=&e-9$7GN`p! z-HlUNCq`+I2@VQBG=lw#Pv_pTzvDO|_93$!={#M0DD{GwhQC>N(ezOJc`wBq&alMQ z)qxP4d!1&r6^`z=`>HU~$wFKM1a0+K{(rM8{%s}yT%`jFexKZ@kmealP{3Vi+3d2(6uM#_uSlmsz^&jW} zawuUgkxChuU)}HnL4%}zMdOa0IeDhK7mse{aX5>F4@c)BJEQYN$I-bFo8IDvn~Zez z52cSQExvF$J`WPf60zf>TwgCHjd0JlD{mxN8Pc*8s(G0pRmp?yw0*HotPv_wmXqIL zwvnZa!h zy6CAx_7s}l6M6aRwfytMDb9|L6PonWgOFcTb71_TR1DYS2`k!8d@PX0yP4a>Ehk=Av^&%=d{_?kmxd@%xzU_g%V!S9Y0mrp{rp; zikP6oXThkIK??5_?eFLiE2osa80Aka ze~whrnk#nGemy{!*9KT~0Nc7*ifEMWF_;VySb{`~KZ z)c@pRdj#acg4`Z%awP@Jl!6!~Kb1!&%5?x?;|MRra8Z=} zkY}0PJ@Oifkst;ap(8EA-zuy-p5F>-6HjXyhZaRf<$pqD=kW7Ch@}SC9z^&F(FVWw zL#$G(NJJ`Q#s>`r!)YndfdYeLikh3{{GSOHfIojLx=QmFA~YVbze1Il!G-AmyW8Fw zHg(7P7t2&p<}D;^gLh%h$_CzjfiA+)p}=o}UXg(5?hGEj+Y4+Tw$6BcTH|3$+3kCu z>*aQj$y}fcC{)c2=H4j!OA~ilY2O2ySpFtKQeRS~gSPueZCJ{)7OtYOMh9erv-@5RT?osv?VCF9^8&o(jY4WRjUqmxzh^|W^0K% zqAp8a0s@eLDN3L3J!=XAwA%JU-Ddp6Js0>!#MJ1|dy!s$6qY+E@RuEKv zqrY7THYJzUc@VFK<`pl*FC7prd0mhs!(K+92t{C`!6C2VVWf%A^aOrwhRTET)^U^;164e<|6IAvoL42 zvq+*C7d16|TjxaKcJeCz!L@l5|G$nrU@` zJw+^fb%s(^f0S>K026qu1$6x2{?02x?~BzdiZeW^3e5NE3FCpEnsDm3RW(sqPL?EM zugCI(oM?#7r4nw3+C?5l@M5jCctt4nP>1o6We5D?KwB^#)uqy7s-E@fY3muLs~@NX zCrSckA=^hrM-NUaiu6BDF>=^*pnu12eNI;kgD$=|Dkh(Mll@6q8h+C_|4Z5o9Zib6 zyxF6KOaCpjd3Ti-zV$_q*HIOV^u#M<1rq$&afQx)&x8=4(pMDH?Js(6cP05zIn;lZ zIRBSu=#~Ntz&PEFmFx+QZv~ZfmVS`X)MfXABbJSTQ$l<|Wr&HEskd2YO8fZOIln~M z_9MoIDez%)<@I)#l;x32tRdv40k z4p^5$Bn#jN$}BeonRxWzA{kVYy?)@c+>p{(;tbGV!Qdor>SVJLE#UNWIW@0Q;wK5a z-CBTg2c~Fg4&@gcOgG+ffh-PtjdtvX5mbi-34_jB8IZhbg!?e7&N~e011tdLoPzjL z%d5$OvEl-N2Se+j)gf7~8^TA&ulgD^*c{kBlDp&SG^|H#9d%qfNn#HFV22TktW@PD z;oA2amCNHz$-k}^+Wt;XLZ8)BJQ-H!XRkA9HGX8*-&;lM1_jXD==M4# zce45^cQFktb!O_6j)WTBMger7>&)*YJwX;c?~s_|p@~nq2>?9s>>p+bKYpa9_Knyu zz+xyBHZ}*b7zuRgWQWscOl#BsdQ{hSK_4F-XB7Guq|Gdln;(zHUCLzTvpL;SqK^D9 z1da_c(zTQ|>Rpg2-i`2qof7(Z0$r}T!N7;J!^_%JV?kGWI1CTlwP7Mk`(mf#L&1!j zrXCDl=cXxR1<9#`%Xw43TCv!?5I@1aq+H3Tb5K0hx&v$YJooaK)s=8Ww8%=(X+Ez= z@*OeLRC5Gw>2+&eGJ+Z@R{rh-t=F295w$xF^0Ov#g1)M$Zsz63Ro`we$zJfoe@`oa z-VKkbuCjiU^l&C)s8uE#2m5~19Jc*D(JSLbfkl4_Dzw3)wZtYp&D=?U-|l&?bSc|J zG97l=i)_gqlCRmAPgo;n%0XwzKhQC}*}Xkx$rA56PN%bUQx9(kU;lZ4$we zak0VxUfnBds8K*Zn8g9nA`%Ai1Fkmb{Xc@!9{apjxMTixtHF3J@x?D`pS_VC@qVJZ zt;NpR&InuWL@UP*A;g;R(403O_gKDl+FaPIzK-(S)D+EK;Muh$E7m% zdcwt+)(Co}5@O$s38SyLBekHmu6s3;K3e@(t>}M|**6y;CxZI@j(g*}l!gowIWPJP z74C`!02)0|UaYUd>7mOOST60bJo)El)HPEmgvR)lN=p+J=PKlYQ_Vkk7T;>q1QM7z!qSQH9*gWu zVULTRHqzSUc3J&g=b_EcHS4bxfI}7>R%2PT|@x(V&PXebWE2ga7uAOC~3J4 z8mni~H;a_pzc1hAAN~H@u$p@CsaSs}9BRmr<+}5IZweajKG00ks_5pUo$7cu(N2BO z#DdLICbG`rkx}Dib-e?uF$^Yekgl!PhRQ*LlEm9W>bSf-` z;Pz%y*Z+(n?dt*W#od*?f>zGpwBY%s?-DMJ8ME`<)o)Pb598O>c(F!<35Hyf3aQz* zTF3W9VXNU9of501wA`Fyb3jkFhKrT=FZ5jtQU!~t2a*RgR3D9-A0?e1C@uta;+nH4 z^gh=Rve|FAwGR@x4=SQ>5P8oO`zmY4l>9L*Sf5e6+<8^>yaCq&x_<8^zN1#UKlTC$ zp@}IX12@h={cRkE4aDKD@OdB|9BvO}YXW0^;X`7nB&FUE4M64!5|J%ylv(jms?lbB z-`JAIkJH#MA-uYM1gh)k?9JaDC$iZg7{34y?f1-$VTdA~*|0ELF*5e|Y?X<>_yI3y zvkNqX!Z<0wFTgtDEQ*aH;*wW8NTMB1pxt5D4?5V>odw&Q;TbxKiY&eNW!8?zU8RE* zjd))Zysfl%z){$+#@~SCe9AE#H1`IIj!t_fAH7Zju|tfNZVL!KA1BgZ^g8)9$yix= zg(~@AO5jP`boS5L%D0#&>(dFFqIAS`f17Yhj7_hDssu6JRNws!GL? z0Q>_7v5?;hcPPTqjN8KnhtMG3$APuiK)r^rSxxb4=*^*o-OiPI>fM@~&O$Z9N2}Gq z)xw&2$=-o0#FDafBj7$Tf~}=NjuKQ}Jl#|TI+=^P3ysN_lSb@m)fvva0v8hAZ6u*Dbz+>xc zLi^1N8q4j9F4oSeoeK$j6B(Qtfq5sRH&x2z>bbxm+4E))RPGDdV6u~*%xXlIJd$*N zA6J$tcdG##!6qZ~G()kRAZl4&aq(}BF!AzG3{^4c7xUS9fkz6*VP=v!} z)&JApTg9~*Y>T5<3lw*^QVPW>6t@;A#i0~;FNNR|ELgFkEnc)}aS84oG=WmwHMj-W zn|=QGoPE0Q?tZ!t_u=O0`+eU`X4Wj3wPwi>g1ofY$G;D(2k8RZG!=ff@M~JsdfYJC zFEn7wvuA{>9fS<{1)50u;_{n-D8%ry@|ZP58}9B&l>JWiwTAs9e3-uL^EB}h9`F9! z$liYzzQI(KmI2)d;@ym=$tK9rB4!43xR}7%>EuwGH_BMHL~&K)+I2%B7QFu2+z!6W zWb?cyN5NJb_5B2jEe%fAbdRa5}6)E0eSWu`Bpu}M8Ia+>LB zj&nJ};ncq;3w3|FGVTsD2R46nvyGQUAFgoTZTPz7d`Iegd7CTjc=Qq1*PICC?MM#V z%o2;D@@FCE1~R1Ka9|r(En-0IO0cW>6TTvJgHW8$Fi^Nw0KDgQay1wX5jt?maGtB= z%-_Uw1oT?l<-Y4=hCZ(yFXM81Xyao`X5xCOK=xN5$_B;A)3a_UEx zMM?HMG>EYhIV@j51f`UpxVA(!N`3SdYAmrjw`4-EY+%D(rr1%pCeJc>=3)hWh%0=5 zMoC@si7H|88#!FrsE};sn$#(#^6aX$%ITcz7JaoSx1YTAarf}m#d7+ou0Dd;epi$_ ztJRH`Vo4B_V4jy2{7sCpnw{h(Mrkkx=rxA3l}f0b9Sy~QVdJmgRTxXD=6d|7qXVVp z-Ir{u@(l75(7QcXs>)@poX=cwam28y*KRQLd-j}e*X57(Z1v?Tp;rdYmY>Xowfe$v9ID3Ae zh_qBKkqKFtr>Ow<5xptGzI?v^Gf^w8kkuiI3ybxA9H4Ey1|5VT{W`xF^#Mct-N zy3?VpNH|67XAYi5Jn%sq8aVS~^m>5Iw7)J(Z+8VxXUM|p1i!wCO+FsKjASDF>;}K@ zr?n3|)+K|Qwu6ahf-qa>bUsUr#njYjJ9=O2`WU@Hh(UhmdoW3lAr*IzkCFq6ks=nH zz{R0icoO`iBqa5%1X^?^TB2un819Ecyb}RErOT?84mr%HiXv(6jc2TM{b84^vJy;G zf+WAey*6S3k33bca8QcU zP6Ff(U-cazkuZSHwojH2mR%CJ4rFPMqi0S0n|#w#Pcg|$`$w>*<*J*XzeU%&-zw5f zPVrQu_Yq$CXU6B~D6{rB>jbM8-TcDduB>#i=SF$@w3&&oU-=8gkCq?(Z1F0bD_e{2 z6DJowy%QDi(#Pz84{Go)H@s$gIf&T-e?MLmX$ClRCs}KhNp6M!! z6@_AA*4Od;=pyap0q+K6)maa>UfVCZ5TZJl#U(9f#-P7~IJLJ0XX87*{Pm@2Q9o** zM$l|GMwynQG$7d#W0l0>>-R;xqO#onyf@{B`eoF#6Vt6;ER%o{+1Cnqw>hhE3BQRX z#Omb%#?O-~W*?`i;hgTyVeXr^YQ(k1+Fs<&evXDolE4goNXltl*p~TYA{}+G z;J#?KlK#t<{v{)MsJ)#n_qN7lWhbZ(^Pq^39e)B<8pa3uab-v>iApMFpprA)})iwsByXs zWci8X7zo-h#Z~W27ooRceMx&J8Fp+?O-MM7W}ESTWeDhn9bq_}r(g6!B1Xkd&=k^k z*UwYS%=nDDtU-y1IXK(gEg)xwS3^=HjK2!tPo!TrBK?U&KSL-7?aDnZ`lz)2X{3O7 zd+AbOdJgd=#^)UO5>mIralAz`k;{$32{w%!&X2MeRm`=V-xKwX)+ z8}If(`1&`bD|MOhPJv@Hab7dF7{}>w2|dWlYZk@b^*Y)$i8yJ@YC$v@z1uDO{O(*` zsSLg!>Ti*tF|eah&p^!M!bJD!z-XF=o2PJ$4f=qTOUh^UYBEzbq?elRpWBIcu3;Ksv#ST;D1gPS^E) z!mbLgjxTa9fh9V{#MbcWSMyo6?`+51M;*fz^Rj(~&!Smv=pf@-A_&fqXno zqTv@}-k+PT?T@f=<@Moi7?plx5dJFQnD~74%SV`t4S|E)YOkLAODwra4{=k3k;%Ul zGB*KnB{FaK$5jo|^Ntdoj7g+b-e9bejK_VY{LxqWP2m{ZeyQb=M?3k}Z|M#w zt0b8G%8%CRuLH+Z#puX%N)4S%C9gy2#22&+&9(988D%)Qc z_s#p^stedzX=izEvpz?>pZ2U}dwZD5RWKLRV$`oSDqUaRxEmmA?|6UyXHmib6%X>j zLA;DM+~50j1$6_WFnRcJ76^Fxf>|DK?%Ua91^RfnTs%g(9o1?kw+w#gA{zANJiCSu9aHR-*tzU_eC$^r>o)EYlR#14{luo)EV_ z&cCIuiMZCox!raBNx(q6~53kN{m%ecKfd=+$SFrkIYJui2S_+AG>BF9vrSRI=WdMZY77^rpKB2rLI$TMg-br$GD;77n0vnpzSL92^kqdfht0C zsAb8CtN=wKxxzkJ8uNjb+>v22guEDSQ!@#lrpRHsPjqnTos-FW$t;KV+(_u#fGZod z|4M<0P!qH`2|xc?&Zc<>S6Fm%9Gr&M4Io3*;vGZ?olA<$AF6ns4UVVX&a9W!ainIU znQ!R3T5O+QhSoLhu)7ekgz##7(9)`AnC3|cB(MTxuga~JlCwWymzcj(QnHMY@*x~e zvIw*2HP(!#9)wxeu|e-dWAa5~RL~(U!o-Q51;Jvdx>h7 zmi^4z<~#f<=shYr*Jsl&agMt#L~#$&c#K6C9&a)D+A0Ojdq&>9j@re+V8%_-V7=(P zZd3;awu?auZy=hb#u-0G6?s(-)Xv3W1NNtZYKgBC{4CLS!_o$mTuS;lnkIV^!1Hf!j{o(Usm_}~so60fxx>Vo&Z z9{j4f$h;<(zVigutPmgkEjB6QG%FQWc534uotX2gb57^_&9y3`h%tsA;H#SPLC~uj z1_Exd8-A0*m#1&TU?NYgFoY?9&sKFel!i;M)%v1*N;8>^ExSO;6bu}_E>@DRkBs?U z7EjiFpEYY)mXH4$oYyHF@%zR2m}-fB9{ZW=k3f{Bg;(0WCP6=-eIg-HbA^p(hNp{* zH4cvA$&Fve+yA0_B%@6AS57W7;?*kR8NX8s&oQG*W`F24|9Vyz{5bHYp|vf_?mRAl zuqNNxc#Y9EUEo^W=^29@p6!;VY8f|8;csL)w%doV0j3NO6di_zmRIO^&pUnwlzE_8 zp?$j}7pk!=3y=tMu0=B@aXM!aWYsK089-Yr+9hV;rRb#jadE^;!e%3iifV^F`%dqJ zX49`dsflEReFilIM6K>!ZTP3uC7; z-SU1|j~CJD&>bpG(-TWEGlUKP;Rz0@;*g%gi;H*bUaV+JMKICf5=>6~N2 zemOQvK0e+DL0#-YDrJl~>^`OT@aoT01O8n7fi)GOC=!9fQb7>nouBKKli^+6S~gs@ zO%;t*&t?QD4x3aajDX;L3fUhy3ZZ^Q*K+YCc@x(cu{An7tl6xn8bSSSpHL>j858V6 z8bjgpdC@u98u&IwcL!$2kI$qA%}oxH)zz*VHufAyn78^Tb;@&~s+fuFEUq4bMLF|v zRZQ{UA_B^y*B}aBK3CVp=fWcNRxKso{jI|l#;6NOrCeL1xm*IXYy2>G(6VSRa`sa} zVwcweq&j*+@3T;~O@cM)FsCRZ#CB)dA`eZTrTFyS=d18Fd{y zN5P}EW00Vu@5uf96X#A%JBZ|-PhPFXJ}fxN;1+n}`V{2&{?a-baBibFdes(FKXpRu z$AyahP8y9kE&$^hBPzC=F{;f=V*lKxzG7lQDK)$|t*NEqxS#I^W82+VS>Va@eC>VXk)aDGEIKx;tyf z@qs!)!-?yO%l)oIAlF{k)k45-leGb9uYG`o?aW6_i2i}%flSUJSFFO`crJ!VXaE|* zqnPzgibsZZC!Sh3j4(E9y9TVse4Jf;B`j89`(rRVtZ%LwKKa%zjl}xo5l+YI9pDKl zKBj){n+M>RVU8b%$(sFSmbO~>#avhCW@@H*XHct(5Dl#F-tl^N6Gl9xnDE89kC;Ib z(HUVu>^Hxj(zB69pE0Gs@9*l$)wWzgBGUUqZ!H5{mQm$o4Q4)GqD^n7-HHpSv=DL) zHz_E)uc?(96Y*IPM5x+F_(j0a8}dE$>1iHBK@3;XpAKQd2CF_r8&x!irnkTnY`WOe zeXkbB2uP1t1UzlNuqV>jtxabn1{~SGig3HHd-K~ivUV;_bSlwQr^; z@3p_bTTI;2Tm=bN7?{NSeOFbMT%-zawT27OSrBMIi(w2PjQev~Jg>E^Kk)Lg_OtC2 z@-QL)naM0Uz<&L1-KQ>cp$nBK6KUn&DK%YLznu%s={{WjQ28H1`7fH0t`1OPs?Pc% zem++}?6_AyIybw=g7ZBi%j!F*r_v;#HY<#zaK`Q&5r!}rhE53%L`hN1HQFyl$O6k- z9pEQ~aCqhARb6mAYZ?>`dNx~+*#DMR3-kL*J_Xmb0cYX0`tqA5EQMT^CRJwVp<n8|X-Qr1 zUi&WQD3^D`JGrKIOCaqd3f6Rvhu#|Z+Kgs@C5wf|*6|4zBpdz@M+P3o2i*Psglb?Q)v90WuwfZ|tMYKxOEzuV zzA)rcBIhN-HmJB(LQWrS#cQXrK=|6hgL+VDsIvU|mwUe^rm*O#2^|X+1+pLwf+tU0 zzS5aqsofXU#pY}2MI`Bo$oQx(voEQ~B+`6JU!vz39(ir1`d#xq|00NPj=<5rT`&~2 zwV5#^|2=g4!Zt zN-KZkXQbCyGaEq&t*7~~yxN~CXktpzfmhIPQ||4BXyg &8G_{^w!Li)~`?G)@SnGC8j;H4F^xgC_g~6Iy4qAfIQzk9h~cV7~CZ-F=sOW8zef%(+yet(4zPIQSi$K^7-cx zB12j)7wF?wW$1B=LE6S443j+_3Y+PsSdT9zE~{UDUNKx789_<68U|=H%yYiJ-tJ;) zu<^pa?>)(@weRkI1;roi?_kNrw6MPrFEyy5^&DgRmWi!qL`Gj~o%*3%^Hm^=G!Km+ zCCSakOwGk4Tdf+Jm~zJzAcoH4mC-x2<^+_7N_d6Vi|0#$Lec&MO;=KQ+R3x`Z4-67 z*wbkYPlh~OZwly@{<&=+7j;gi1Jr-kK~vg^snphqmme(*_H=A%ImBuaC?JSAm312X zmVen)+<7G;JWRF9@JOb?+fSsLA8~Xtx_C5^ynGC6>ol4mx-B+wyamjg((XkrU#}{* zj8U#ext6Pu;h2q0MLPGd)`sUDdS_UsBvz{`GVye?7HQ-I){xM#WVEub({^5FJ#W44`sNAZyhoOD`^*{O1 z_7eE!o<>3sbM_NTc60uF*Zn6=0-kk@P9;q}d8L0%vuuB8n9lzR<;kyG=}PkLL>i~5 z6aC*#Up%7DI{dV8(oG(kbcE7hc?+GMKzJPoeCO2}y3f$BSAG+c`NPqJ+hN+3vX9ida?^_xef+)p$pG50As8Qmrz#&1j|Lbk2U~sKVY(U-{1$L`XpQCoeg_d~Uec)9mZ2u7|99cEjG{bp{wR_^*jm z*jDjcb8|v$>=dhXk|oov97^(8AeVDnZ9l27?O!9ApFH5y1x~K6+s1#;e*b2kYNx5- zPcBBqwzoh{3xK4~_78Whx5}F-yW=I5=|||1)#@4_=k#41FDnwTK#C6TO17BIQyx8#qYG1sez1(M? zZ+1bCq0tTKyH*s}ChLw^z==Dw(S=n?%(>jFQ!Y^UJcx?n?@F_>izqD7@27Qy)}I5<;iWvF{d%huvX!r#<1Y4!0k2(KNEM$_ zdO+7o50%@FM(1dXd((TBoaLx?OTf>D5+onJgXjDRZ2BaAd~7&ecT7d zWiM`aV8GyE#zujyVxdp9p`R`I+9VCBGE3j?|IBc+ZJoUGRI%aftHDSOvM8oV&59`p-PqJ!nv`G7R08}TY_1X|+bFGt1hT(# z5p3y)FEnp$)wfsE;P;x#_}Zqbw%Cgs%Gb)VS^TgvhS_J82n>O4U--=K;J@dX z=AQwH0ueAyPm9+wgfOUHz|+vqblijC$BtNX>Iv~7d`A4v)s9?}C7gXUk-Cz-3*jP5 z<$Z^rawxm0wq3O=dL6bO9nC!X0c~{9t)aDITd436GOVsa6RNl;rz&TBYu$9jZR6cO zh`lKTB;>bSr&wQ=zl(H&ufCrbwV^LK-wl$^BWLghQ+x6zWL6nS{t~`fuy%#a*&wgJ z6wY!O9;KQ_G$!8wlm&4X=*#96K_2XH-C@#KC*Gy5g{Hn5&t2Xx;KGrOD3dh8grZrj zUycWyxdZ*Tr%K`9f=}?QfM#AV+D!Gx)c~*BbPZyR#aY9w%nA^-l36@muNT1T@2lxO zOMiCd&5P5HhDC1L{+!Q2jzADf^$#Zyrq6&WPUBOa-V9%9}eR1x3^|SS|(aHPh8QM^@oR zrrlV)vvG28@1c>2{)u=rDkjDdZ=pnFp_iKTTLAg126-j0*Z^sjI(~P?YDhG0*$lkA zt!ls^C^d@IuRCg{m%C&NzIWAa_uH!9b#eiH(R^bq#ZB4tQHJke*;y{#OiEmWq@8+_ zqV+N~;B06R_A$N#O1zvV2%QrY+r6H7x%)gSO|fW^Pd_+ zo@+MnB*TS1zq$1M+51X3*H=9NC-mjC<1(ba)YW+GH^{$^VWn+dcNXoG7yaleI=u;s z;{P-8ebsFg(>c5)bDySFn zI3)(g{Q@%N9=( zRSMSr-byT zS`Z%Mre}5gb~9Q#(pR=9eP(J#Py6^TmUuc4?a8nwV;wik|1t;v`B-U(qswUj+9`m) zlYnM^iYh9k3jl~f5xGhMKBJQ=+2D(~qfZhms_1`{=OPKMz%_Go$5Z-&qC}$`8p5Jp zfVUmijY%pJ>H2(DRs8uiv7^wKxp>7=1CR5E6ASV6I%Mc{o&88#G~}6nlnKYdhDC4K zY6Ua!c1UY$!4n0aYMy||Cdun|>$0|VSfvMhnFRiP_80QlCINYDL&s9K`zHziH+I}8 zQ8^CP=RPX=I<$|(e~To6#B^kD>>lg6quYg`-`K#HPaKT+@(jqSse_@)XZusZfT`+< zx1Lq^SB>46+1b1}XPo>boA%f1Bi7{{oNC%*2)Y;lFzi3=>i_o`e~wJ|*3^ebb)bvu z$a3BE_K0@Rj_>6|ZFc5^V91EJwH3vRWolwgi!ZIddjCCm4|k}+-m%?C_U*!LCN>-I zL*@dZyZm1^Q*6`{nYJtOJ=u-J9*yR{+>kq_B*Q9z&cKx?p5B>@!4qVE{O{)s^?*4* zzOheXWg-Yrzgz24Hsaa4)H+Y^_YOGwYHsQNe0OT|@htN{G5b&R-=kDo9w$j`7U;3( z8C+h+j6s@GZ;;A?;yU)o;5pN^NiwN}XSZrvQg3tP;K}n6>N$?{5_T01OmKo`BmnbK zpJD#AwqzYhpw(nFhhXVW31pdA!pM_sA&a20MZ+a~7x%>8vl&8f|PMC$|o(M0j z;}!9De?V`qE2p%hh>}m*DQnSJT>&(M^v*@jY3;N8hTrHd#xeC{ebgIA5=UOGP~bQ2 zrOoko&(@Eim5mDqvvV8d!bmuu9wS>E+Qv4?eivOYL9+O$l*NajeazYRE4A6Vr;B#?8 z3we)TR))4<%<`;IbVy7O&fz^xv@wH?7orI-G39R4qTyl8rqWbJg5UE%$?fSPktDo} zuuk}MBB$-uto1@wn;_k8g3*fUrQ>aM0OgnVdy`w+KF6vbz8^j3%1`JBkYH1H8sUlcmU_4JFf)A6vh6E{}}FUs?Gh@ZhD?y9&m*~+Doqa+N0zL zpsqd!AN01angzF}%q=33I`(ZhmH~FMpmnx^t{o(7kbHHl8QKRChnMcs_lZE1WzDqN zgO4e>n|-P7PkM|RPCDC{yEqsi4tFT}^0OINQPyq{2dA7N9DNXn*ZQ^!=b zHKlE++)h>$a1G9EF(r9bRW@2tx$Oog${gQNnG4a`vFK9E{3tL?UsD=!F~$~#zwF-x z_jnmUo~WCtT?>2_>{z(y^|Z~y*x}yNhikr`_$b=lxSMQ zC67^yYAaCeRVdaCy+@zTYF!m<+vkXnCa^$q+8B~>F)-NrtPV?Q=Cd9;XnYByQaW>L zWzW~AyQ|#Hk@K^R8T>kpKJBAI?7x?d#BtK{Nc(AVQEce*t3g_-TJoKj04qWVaEe_? zF%iP*DThSB>>%+6?TM<%2AmhRGyO1_WfHvy+Nvz$!b!EDYpY9d^5rSuK;l$1-RGAE z<*XPw-s?$To13c;Bd1BPWb?Z(?aOUbS)GF{?Xqr`Ogo=;0~0=E3SfM_W*7Kf$alF( zHqGVFKJ@*AjwwJPM6)e~PR?5u^~uRgB0NDS6LGgXr3eEq zR|_q7!2tD&avdP5t~b{OC!fljKTh64qPR56w>RtiCdNE>n=>Ikf29r9((DaJ45~y> zsS!P%Gj4xRK%hiia{T7!iRCw$FG@FzH8n!<+}s4It*qfptQ>SinKmr8_K|XW)S<9+ zV}rtJlJ+IYjYeqo3H5or#Ac(&m0bS_ZZ=$P4R6P=8J#AD?Nl;z-4l2oNZXQdxn0kfb z;CnI7u8OzC{?t zz)x#DDOO+2U&jLF%6Q<;1Z}glJm7nJyy!%D8pXB~WQFs`rbT5IxnJJiwXZoIwnfq$ z-UYkTkJ7+Ryan;oeTARnG6dA1%zc5ZA5WD96>J+W?+rP2 z+e+Q>g`ORT>hgXZA6$vnwt)IPba22V1AVf5rbN!e$9cNO!sw#zE@)zrrby^!al~TO zPoBTXnbFQiNIXr^4EqZ9QLQJT3;iyIWbjk&wTaOb4Uy;2H?Q<)s=gi2K^zT^d!ATu z8{b_p3x8CnA4>1BiLP%cwQ5bhYCP5(S9_q3#l>G{mA^yrYqIQy=*>zpC`AGhyvK3z zmGFC}JZnpfJDaT4$XMfUb2X-uab1hsGM!_~Lv&|yo0JNZTRv!(IF(}sW*>t)JN}Fh ziZ=9yQcWDle?J^MXL3(is78${HCJXL#XvCc{lWpX%AAM0Kw-lm@OZ2iaXbyaSOb8> zuO|zIK@XkKD7#%(q>ed9BVFT$Z45e5O?N#bk)A37Zd_saD_MP^TL=(26b~*r0MWJY zh+(Bd%!8MX*$yzPAsY#!~WT4s>Ck-r5Ob3A!z1Y8@V3eV)jC}be(t$yU+2a?Y` zBveWDrawQ(3TXr{_M&?l?)!=(?%^pdQwN4o0z|2p-wZ)#OIc`Xlkhb|`WU}eIL$rn+#p6W|{-d?5r9DG^>Q@S@MuL@VZ?}cDkK%We#=w=ym4>6Sm4=I8mK5<~911k9-nDT@&#sfKdvDS5 z%PYRE)P0+xcz&lnv)Hw8{)%p^%z6x_LiN`8?Dbxq9Bf<47nmcbhY`y zz(Y*uUt|}{N$t?i`)l=S1+ zV*T@rODivvsNE$R`WPtVw$k;@%%V<>X{qo6pL(R4KgnE7bE)hW$1X=cNcS{$ zDx>oD1hUj4Cm$tK%=)EiJO*;PbcaUqa1UzXy`eN5ujkPAz2{SP?>a$0nzpN7t~_pL zP6UsuNm;)vZ#^O%ZrFJeMfZwYDzzu*?2Pl~SI%2+-)GmH|6c1uI;RCt4Yt+i9t;>m zUFV9gI_5}6C>SSLfsVKN}h|H%FavH@*M4Rq_iUI&9IoPnYe;%@RkQ% zV|p8yB&J_Z@sI3B1pE7vLT^wjYpUtZILx|I59%gLuZVdhy$GPzx{_P0I%|jZCgFEs z9&(kETf-Ol@|t`rm21ws5<)AZ&YTe9O;B3slDUQFvbjP6>7)r*PxPT^1#! zboc~~qQ(NH3?mobBcsPFtQ3pU$yuN$@-aJMx+;9+w>Jv9MCnWSE6-{Dr-j!G)2sx~ z#XmmbzGp~tZ$m}2T|FU-cBtHmA^H^mKgWvy!g-<%0Z0oyo@TF$x{lxFw=nK@67>68 zG_IRP_$6iCH6op(N8He;I(meB$BhpKwqGk2BUvQ$oEAt4(lQ7>v(q+R^q1@{^@sMc zI=06qGc=|$@E=1wGkezWLZ1?^Mjc%0r>kz!N4(Vl|DYvPK4di(!j`~sAp-pLB&Pwa zccs6;&BRm_#syxReP(A@*CctHF~L1^h=z--c~aZA+mK|7OV3@r{et#OB!hl9Lc*49 z@Z8*;w{3WnS;#0X*7^=YHJ}kjA0**<7-Kq0zUd~^O3~pwm-Dl9ihfBDZwQdJ@BFF8 zbp-}|@WOA$5A(_q!y}0if6P2MRJoJp58fO0F4e2Y-<>M!O|M^bUs;Q96A2R z^^AptA#XW&bbF5{?za7*G{ax=oPLY~{Ti6#pM`ft zt;8^J`L+1{CM)o~`@xjfCY_@CgMx2REephB1dDxA$BZv48g}ILUf8BW>?R{QLvLC+ zF{4C2rC3MHr!p$gYw|@AGDW>-H(m(#m>}EW5L7BlEYt8KDX_*>Uz}5o$8si#xaG8G zT-e-RYHvb_q_dAaqS|U^FJ&at(GEP7{+>%EOqdKR(mcNl=(vr&kMXH!M}xui$9%oB ze#G;(m@q6$Er|kz+LwLJG&^$BI}bYp(A755o)o2A-G^Ov#}h116re{o;dj1fRqf5E zxW`@4^#OIG`IynsHyqdiv$s>$!NuCo0N~~5rs)X~K zuk6PZd3>uBTaHgv8kYNdfd^$_N4a;HKicZPM%sC&IQpz84E6LYKvr5pU3>>SZlhVO z8fu&H4?d{5rqGz&|9T{)6gjO;Va*FQP06}6Td9eE0jBrlYB!HaDwo5$ERO4}D53l< zpK;k#L?#AX2q#lY&K=7LJP6U-lNbM(<#J4CsP0B7>31&FuoFQA+{!<0*uP!-x)#l7 z->rtR9Kn-b0=SBQv?nSGg>0X;&)9QL(c%<$K+ZzFo@7-Vz*?c~{4kBhkmS@WY zO3f=ttn^)<+w`!G7e(|xpJ1Xn9n+!tTcf^QNPnaj>w#Y=2RqIGn<89Ug5`8yS_fcS zR(^BOUBn)&CuHa4)3UwSXFqIIO*`?GG_RmCQ%Gi=&BXKRVM+_&CMd3^W-aT_2b=&;~&cPqTO+aAVvaox)5o zKZTYLiY*JkhC{c(%`tGFcWD)_KWH7_@TA#BgJ!GmmtZ{ab{w-alx50%viaEA|G3kI zBR(c`&FAEI?Yl!!q`k*WbaTLuzjjU)s}PSb>***Vd3Cc?)s*vuo1?n?#ip~hU(&yq zz|xpVg=cY*W|(jqz+q7Uw)Pa4@vwdlcS){zF}j#HP!ODs$*SdeRs4!j?ssAcQSf77 zo_Uv*)|9JGPEs8qUbk~64P~LO=rdiu2mj;SVIkfu`Hay*!qimM$=etKo5ojUuRcbF zs!ux#yp39aU11!Y$^Z&_pF{y0?#BosyYz*c9Pid&&ZdAXVcGVUZu`*-7owSB_fhaA zUy{hF31((4vLD5@z>EB;qa!;lO0Bpr0^DrWR?*IL)s6ih0WuhO7wO?cjuO#6Nh|4L zS-m+E6Sy09M-4%j)+_DDQ>p&FK~@|@i2LM@)Naql(!S=9I~t*z0^AUqv5&ROxkMOt zgOyI_%?%e3snFNlp%=#7grDZQ;nvfw%beFA3Bj37&z^w^Gt_A5e)rE7{?^Fi6$OB;%{Bfqy#yD2tTlTA#oqX|s&Ge*}0 z(%p`PEq!E=L7NKJD;Nj26!cA3)|_eHw5m5NZI``T^{YiBpx_cUF|^*P`CxSUi_Y&A zQhkq-m#n##J=;a_f=}+Sn#Y}whzi$w(u{jt+gq_F^6i`lJDICavv^hqF#&-itw)gz zG4e#ab)4nk5DAgD+}2-oDK#8X@kMt8(vQ~}j(T=I*V-iBu1(^^yiHC(p8HINInRvn zELT(UEbBDmy>W;pc3F31&19Zef2;_Tp z7*<`J&`q9nvtKO`#d#js9-*5E~}YAQxA4GTcjCB#@#(c@IcISk3;Fx2M|73 zmROGDZE!Rm{cZau>o2AsV<0|zc1MemP}0x`Z(p`bs`+4_rxLwGREwo=4vsBedV0wh zfN>RCUi(yzinEw%bp_79@%Ifwl=iaPSi51B*JNI9H`eE>Jsbm1zseu&Sa>2V)|^{I z55kmGg{h=O&UtayaS`f%=yvvSi=G|?uU8LysnLY49N-$Z@ zv6X^=n0=TAsSa$Z{2Kf{^Qvni<(AC2KYX8aC55(aNDkkRWTZf-b`UY5SaQMWTN=Wn zjpnhX_Hfb7(Vf0oHrq#1(qs4ND>m54?}R_M+>8PNB>Vx~#c$6WEARB9g2qw~!Jx1$@byZ8l->!xH4 zU3&%6oi8(wKJTvZPzN9!d>D){7b3+DeILVH&XjMbPY;Cmg_2it#$)8#Z&8-Eu*ASq zLV|e}f5lY{`?C4+oOR|5(PKb2*o6**g=gHy%ay>D)|G>e`GW~G<7^ToXM(t}0O zP6jHnZ5zV2r}6nV-R*I=F{|$8&(%ni*{F+R_TLEV#oumuh1F`>QuA~&?#Jw$CI&&? zX$#O_EDP7C^07gj9>Rk&$E7#>QA@qM-lOV9p|!m%AF--ya4D#`IEUr6*(nHXXV!1= zBVG>Ih48hOMjV*kM2z${uHn5-va331xWhW)N>OK%U799`*q>Q;akdgiG%e>EvqMbY%}VSDLet`w@=+(49n;T zlzkTFxfk<|eP(~k_BR737r_>`rjk=Fn zLTa1J625>LS-UOgk_Y|BQ49zdTo6EX++Z((;QgO0Fo3-W*gmv2(#*};*b^6aST*p~ zBNy;m6(={%k@I5aNfK3~S2)a~o_D(3qIP6PRf8dF>z9p%*rZfwuZE;xeJAyf8Tk=@ z9{k5cz-@tr7Z+TYgO7wKfA!dvcF)3hmh(3LugVoHL}DL)Fa2fwKB;dw7-&z; zuzD9$KX_j$tD^ea6FR6y*;7Un%#^pend@mBxJI?2iyncnwV;JgUu{ZjRG@Bk#cq!D zb>Hj7Ia<`$D|W5$F3G=>iM?+|Fgsh`>OUDGq4!Ss%PtKk`o}Kq1L))k)}H$=V{-sL za*y|e@(+zN`;K_^o~%4HiR|;~5`+oiEf{3}_8sYg=B;J$PB*IW?%VrHj0KDg*6Ht> zfu5cBGGth!dGuc9;H|YAx4#IlQ(v68h!(%ud z+$}U$Ds}tL{=9ZXus(LZY{Pk=V!QEgTG}YzKaRn|Zf5mUW@p=g82+*_w#Gk#r_R-Y=&a&@^5KVF-alp0fAtvW-HRP1Q{)w`sOMiZ&w zS)gH8`Y(p$AN(Hp4E52b0;4zk-)Il%D9X^34)lVz98%Z*4Hl$B=^4_or-nAB`L}%= z8PvFyj&yj5!TqLw{t=7&=g5o-$iaxiGZp`cg8TynX*eko$0CQ#Z~qLk|I??XfE+Ad z`t-x!76=&>AXsNmDP|Ml>*: This section guides you through the installation and setup of Solr. +*<>*: This section provides information about all of the options available to the `bin/solr` / `bin\solr.cmd` scripts, which can start and stop Solr, configure authentication, and create or remove collections and cores. + *<>*: This section introduces the Solr Web-based user interface. From your browser you can view configuration files, submit queries, view logfile settings and Java environment settings, and monitor and control distributed configurations. *<>*: This section describes how Solr organizes its data for indexing. It explains how a Solr schema defines the fields and field types which Solr uses to organize data within the document files it indexes. diff --git a/solr/solr-ref-guide/src/installing-solr.adoc b/solr/solr-ref-guide/src/installing-solr.adoc index 9e12bb63eaa..ca3eed02dbe 100644 --- a/solr/solr-ref-guide/src/installing-solr.adoc +++ b/solr/solr-ref-guide/src/installing-solr.adoc @@ -1,6 +1,7 @@ = Installing Solr :page-shortname: installing-solr :page-permalink: installing-solr.html +:page-toclevels: 1 // Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information @@ -18,39 +19,178 @@ // specific language governing permissions and limitations // under the License. -This section describes how to install Solr. +Installation of Solr on Unix-compatible or Windows servers generally requires simply extracting (or, unzipping) the download package. -You can install Solr in any system where a suitable Java Runtime Environment (JRE) is available, as detailed below. Currently this includes Linux, OS X, and Microsoft Windows. The instructions in this section should work for any platform, with a few exceptions for Windows as noted. +Please be sure to review the <> before starting Solr. -== Got Java? +== Available Solr Packages -You will need the Java Runtime Environment (JRE) version 1.8 or higher. At a command line, check your Java version like this: +Solr is available from the Solr website. Download the latest release https://lucene.apache.org/solr/mirrors-solr-latest-redir.html. -[source,plain] ----- -$ java -version -java version "1.8.0_60" -Java(TM) SE Runtime Environment (build 1.8.0_60-b27) -Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode) ----- +There are three separate packages: -The exact output will vary, but you need to make sure you meet the minimum version requirement. We also recommend choosing a version that is not end-of-life from its vendor. If you don't have the required version, or if the java command is not found, download and install the latest version from Oracle at http://www.oracle.com/technetwork/java/javase/downloads/index.html. +* `solr-{solr-docs-version}.0.tgz` for Linux/Unix/OSX systems +* `solr-{solr-docs-version}.0.zip` for Microsoft Windows systems +* `solr-{solr-docs-version}.0-src.tgz` the package Solr source code. This is useful if you want to develop on Solr without using the official Git repository. -[[install-command]] -== Installing Solr +== Preparing for Installation -Solr is available from the Solr website at http://lucene.apache.org/solr/. +When getting started with Solr, all you need to do is extract the Solr distribution archive to a directory of your choosing. This will suffice as an initial development environment, but take care not to overtax this "toy" installation before setting up your true development and production environments. -For Linux/Unix/OSX systems, download the `.tgz` file. For Microsoft Windows systems, download the `.zip` file. +When you've progressed past initial evaluation of Solr, you'll want to take care to plan your implementation. You may need to reinstall Solr on another server or make a clustered SolrCloud environment. -When getting started, all you need to do is extract the Solr distribution archive to a directory of your choosing. When you're ready to setup Solr for a production environment, please refer to the instructions provided on the <> page. +When you're ready to setup Solr for a production environment, please refer to the instructions provided on the <> page. + +.What Size Server Do I Need? +[NOTE] +==== +How to size your Solr installation is a complex question that relies on a number of factors, including the number and structure of documents, how many fields you intend to store, the number of users, etc. + +It's highly recommended that you spend a bit of time thinking about the factors that will impact hardware sizing for your Solr implementation. A very good blog post that discusses the issues to consider is https://lucidworks.com/2012/07/23/sizing-hardware-in-the-abstract-why-we-dont-have-a-definitive-answer/[Sizing Hardware in the Abstract: Why We Don't have a Definitive Answer]. + +==== + +== Package Installation To keep things simple for now, extract the Solr distribution archive to your local home directory, for instance on Linux, do: -[source,bash] +[source,bash,subs="attributes"] ---- cd ~/ -tar zxf solr-x.y.z.tgz +tar zxf solr-{solr-docs-version}.0.tgz ---- -Once extracted, you are now ready to run Solr using the instructions provided in the <> section. +Once extracted, you are now ready to run Solr using the instructions provided in the <> section below. + +== Directory Layout + +After installing Solr, you'll see the following directories and files within them: + +bin:: +This directory includes several important scripts that will make using Solr easier. + +solr and solr.cmd::: This is <>, also known as `bin/solr` (*nix) / `bin/solr.cmd` (Windows). This script is the preferred tool to start and stop Solr. You can also create collections or cores, configure authentication, and work with configuration files when running in SolrCloud mode. + +post::: The <>, which provides a simple command line interface for POSTing content to Solr. + +solr.in.sh and solr.in.cmd::: +These are property files for *nix and Windows systems, respectively. System-level properties for Java, Jetty, and Solr are configured here. Many of these settings can be overridden when using `bin/solr` / `bin/solr.cmd`, but this allows you to set all the properties in one place. + +install_solr_services.sh::: +This script is used on *nix systems to install Solr as a service. It is described in more detail in the section <>. + +contrib:: +Solr's `contrib` directory includes add-on plugins for specialized features of Solr. + +dist:: +The `dist` directory contains the main Solr .jar files. + +docs:: +The `docs` directory includes a link to online Javadocs for Solr. + +example:: +The `example` directory includes several types of examples that demonstrate various Solr capabilities. See the section <> below for more details on what is in this directory. + +licenses:: +The `licenses` directory includes all of the licenses for 3rd party libraries used by Solr. + +server:: +This directory is where the heart of the Solr application resides. A README in this directory provides a detailed overview, but here are some highlights: +* Solr's Admin UI (`server/solr-webapp`) +* Jetty libraries (`server/lib`) +* Log files (`server/logs`) and log configurations (`server/resources`). See the section <> for more details on how to customize Solr's default logging. +* Sample configsets (`server/solr/configsets`) + +== Solr Examples + +Solr includes a number of example documents and configurations to use when getting started. If you ran through the <>, you have already interacted with some of these files. + +Here are the examples included with Solr: + +exampledocs:: +This is a small set of simple CSV, XML, and JSON files that can be used with `bin/post` when first getting started with Solr. For more information about using `bin/post` with these files, see <>. + +example-DIH:: +This directory includes a few example DataImport Handler (DIH) configurations to help you get started with importing structured content in a database, an email server, or even an Atom feed. Each example will index a different set of data; see the README there for more details about these examples. + +files:: +The `files` directory provides a basic search UI for documents such as Word or PDF that you may have stored locally. See the README there for details on how to use this example. + +films:: +The `films` directory includes a robust set of data about movies in three formats: CSV, XML, and JSON. See the README there for details on how to use this dataset. + +== Starting Solr + +Solr includes a command line interface tool called `bin/solr` (Linux/MacOS) or `bin\solr.cmd` (Windows). This tool allows you to start and stop Solr, create cores and collections, configure authentication, and check the status of your system. + +To use it to start Solr you can simply enter: + +[source,bash] +---- +bin/solr start +---- + +If you are running Windows, you can start Solr by running `bin\solr.cmd` instead. + +[source,plain] +---- +bin\solr.cmd start +---- + +This will start Solr in the background, listening on port 8983. + +When you start Solr in the background, the script will wait to make sure Solr starts correctly before returning to the command line prompt. + +TIP: All of the options for the Solr CLI are described in the section <>. + +=== Start Solr with a Specific Bundled Example + +Solr also provides a number of useful examples to help you learn about key features. You can launch the examples using the `-e` flag. For instance, to launch the "techproducts" example, you would do: + +[source,bash] +---- +bin/solr -e techproducts +---- + +Currently, the available examples you can run are: techproducts, dih, schemaless, and cloud. See the section <> for details on each example. + +.Getting Started with SolrCloud +NOTE: Running the `cloud` example starts Solr in <> mode. For more information on starting Solr in cloud mode, see the section <>. + +=== Check if Solr is Running + +If you're not sure if Solr is running locally, you can use the status command: + +[source,bash] +---- +bin/solr status +---- + +This will search for running Solr instances on your computer and then gather basic information about them, such as the version and memory usage. + +That's it! Solr is running. If you need convincing, use a Web browser to see the Admin Console. + +`\http://localhost:8983/solr/` + +.The Solr Admin interface. +image::images/running-solr/SolrAdminDashboard.png[image,width=900,height=456] + +If Solr is not running, your browser will complain that it cannot connect to the server. Check your port number and try again. + +=== Create a Core + +If you did not start Solr with an example configuration, you would need to create a core in order to be able to index and search. You can do so by running: + +[source,bash] +---- +bin/solr create -c +---- + +This will create a core that uses a data-driven schema which tries to guess the correct field type when you add documents to the index. + +To see all available options for creating a new core, execute: + +[source,bash] +---- +bin/solr create -help +---- diff --git a/solr/solr-ref-guide/src/major-changes-from-solr-5-to-solr-6.adoc b/solr/solr-ref-guide/src/major-changes-from-solr-5-to-solr-6.adoc index 9ec44d8b9b7..8b3798ecbd1 100644 --- a/solr/solr-ref-guide/src/major-changes-from-solr-5-to-solr-6.adoc +++ b/solr/solr-ref-guide/src/major-changes-from-solr-5-to-solr-6.adoc @@ -18,7 +18,9 @@ // specific language governing permissions and limitations // under the License. -There are some major changes in Solr 6 to consider before starting to migrate your configurations and indexes. There are many hundreds of changes, so a thorough review of the <> section as well as the {solr-javadocs}/changes/Changes.html[CHANGES.txt] file in your Solr instance will help you plan your migration to Solr 6. This section attempts to highlight some of the major changes you should be aware of. +There are some major changes in Solr 6 to consider before starting to migrate your configurations and indexes. + +There are many hundreds of changes, so a thorough review of the <> section as well as the {solr-javadocs}/changes/Changes.html[CHANGES.txt] file in your Solr instance will help you plan your migration to Solr 6. This section attempts to highlight some of the major changes you should be aware of. == Highlights of New Features in Solr 6 diff --git a/solr/solr-ref-guide/src/managing-solr.adoc b/solr/solr-ref-guide/src/managing-solr.adoc index abb252648f8..6644d624e40 100644 --- a/solr/solr-ref-guide/src/managing-solr.adoc +++ b/solr/solr-ref-guide/src/managing-solr.adoc @@ -1,7 +1,7 @@ = Managing Solr :page-shortname: managing-solr :page-permalink: managing-solr.html -:page-children: taking-solr-to-production, securing-solr, running-solr-on-hdfs, making-and-restoring-backups, configuring-logging, using-jmx-with-solr, mbean-request-handler, performance-statistics-reference, metrics-reporting, v2-api +:page-children: securing-solr, running-solr-on-hdfs, making-and-restoring-backups, configuring-logging, using-jmx-with-solr, mbean-request-handler, performance-statistics-reference, metrics-reporting, v2-api // Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information @@ -21,8 +21,6 @@ This section describes how to run Solr and how to look at Solr when it is running. It contains the following sections: -<>: Describes how to install Solr as a service on Linux for production environments. - <>: How to use the Basic and Kerberos authentication and rule-based authorization plugins for Solr, and how to enable SSL. <>: How to use HDFS to store your Solr indexes and transaction logs. diff --git a/solr/solr-ref-guide/src/running-solr.adoc b/solr/solr-ref-guide/src/running-solr.adoc deleted file mode 100644 index f18183e16b4..00000000000 --- a/solr/solr-ref-guide/src/running-solr.adoc +++ /dev/null @@ -1,289 +0,0 @@ -= Running Solr -:page-shortname: running-solr -:page-permalink: running-solr.html -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -This section describes how to run Solr with an example schema, how to add documents, and how to run queries. - -[[RunningSolr-StarttheServer]] -== Start the Server - -If you didn't start Solr after installing it, you can start it by running `bin/solr` from the Solr directory. - -[source,bash] ----- -bin/solr start ----- - -If you are running Windows, you can start Solr by running `bin\solr.cmd` instead. - -[source,plain] ----- -bin\solr.cmd start ----- - -This will start Solr in the background, listening on port 8983. - -When you start Solr in the background, the script will wait to make sure Solr starts correctly before returning to the command line prompt. - -The `bin/solr` and `bin\solr.cmd` scripts allow you to customize how you start Solr. Let's work through a few examples of using the `bin/solr` script (if you're running Solr on Windows, the `bin\solr.cmd` works the same as what is shown in the examples below): - -[[RunningSolr-SolrScriptOptions]] -=== Solr Script Options - -The `bin/solr` script has several options. - -[[RunningSolr-ScriptHelp]] -==== Script Help - -To see how to use the `bin/solr` script, execute: - -[source,bash] ----- -bin/solr -help ----- - -For specific usage instructions for the *start* command, do: - -[source,bash] ----- -bin/solr start -help ----- - -[[RunningSolr-StartSolrintheForeground]] -==== Start Solr in the Foreground - -Since Solr is a server, it is more common to run it in the background, especially on Unix/Linux. However, to start Solr in the foreground, simply do: - -[source,bash] ----- -bin/solr start -f ----- - -If you are running Windows, you can run: - -[source,plain] ----- -bin\solr.cmd start -f ----- - -[[RunningSolr-StartSolrwithaDifferentPort]] -==== Start Solr with a Different Port - -To change the port Solr listens on, you can use the `-p` parameter when starting, such as: - -[source,bash] ----- -bin/solr start -p 8984 ----- - -[[RunningSolr-StopSolr]] -==== Stop Solr - -When running Solr in the foreground (using -f), then you can stop it using `Ctrl-c`. However, when running in the background, you should use the *stop* command, such as: - -[source,bash] ----- -bin/solr stop -p 8983 ----- - -The stop command requires you to specify the port Solr is listening on or you can use the `-all` parameter to stop all running Solr instances. - -[[RunningSolr-StartSolrwithaSpecificBundledExample]] -==== Start Solr with a Specific Bundled Example - -Solr also provides a number of useful examples to help you learn about key features. You can launch the examples using the `-e` flag. For instance, to launch the "techproducts" example, you would do: - -[source,bash] ----- -bin/solr -e techproducts ----- - -Currently, the available examples you can run are: techproducts, dih, schemaless, and cloud. See the section <> for details on each example. - -.Getting Started with SolrCloud -[NOTE] -==== -Running the `cloud` example starts Solr in <> mode. For more information on starting Solr in cloud mode, see the section <>. -==== - -[[RunningSolr-CheckifSolrisRunning]] -==== Check if Solr is Running - -If you're not sure if Solr is running locally, you can use the status command: - -[source,bash] ----- -bin/solr status ----- - -This will search for running Solr instances on your computer and then gather basic information about them, such as the version and memory usage. - -That's it! Solr is running. If you need convincing, use a Web browser to see the Admin Console. - -`\http://localhost:8983/solr/` - -.The Solr Admin interface. -image::images/running-solr/SolrAdminDashboard.png[image,width=900,height=456] - -If Solr is not running, your browser will complain that it cannot connect to the server. Check your port number and try again. - -[[RunningSolr-CreateaCore]] -== Create a Core - -If you did not start Solr with an example configuration, you would need to create a core in order to be able to index and search. You can do so by running: - -[source,bash] ----- -bin/solr create -c ----- - -This will create a core that uses a data-driven schema which tries to guess the correct field type when you add documents to the index. - -To see all available options for creating a new core, execute: - -[source,bash] ----- -bin/solr create -help ----- - -[[RunningSolr-AddDocuments]] -== Add Documents - -Solr is built to find documents that match queries. Solr's schema provides an idea of how content is structured (more on the schema <>), but without documents there is nothing to find. Solr needs input before it can do much. - -You may want to add a few sample documents before trying to index your own content. The Solr installation comes with different types of example documents located under the sub-directories of the `example/` directory of your installation. - -In the `bin/` directory is the post script, a command line tool which can be used to index different types of documents. Do not worry too much about the details for now. The <> section has all the details on indexing. - -To see some information about the usage of `bin/post`, use the `-help` option. Windows users, see the section for <>. - -`bin/post` can post various types of content to Solr, including files in Solr's native XML and JSON formats, CSV files, a directory tree of rich documents, or even a simple short web crawl. See the examples at the end of `bin/post -help` for various commands to easily get started posting your content into Solr. - -Go ahead and add all the documents in some example XML files: - -[source,plain] ----- -$ bin/post -c gettingstarted example/exampledocs/*.xml -SimplePostTool version 5.0.0 -Posting files to [base] url http://localhost:8983/solr/gettingstarted/update... -Entering auto mode. File endings considered are xml,json,csv,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,rtf,htm,html,txt,log -POSTing file gb18030-example.xml (application/xml) to [base] -POSTing file hd.xml (application/xml) to [base] -POSTing file ipod_other.xml (application/xml) to [base] -POSTing file ipod_video.xml (application/xml) to [base] -POSTing file manufacturers.xml (application/xml) to [base] -POSTing file mem.xml (application/xml) to [base] -POSTing file money.xml (application/xml) to [base] -POSTing file monitor.xml (application/xml) to [base] -POSTing file monitor2.xml (application/xml) to [base] -POSTing file mp500.xml (application/xml) to [base] -POSTing file sd500.xml (application/xml) to [base] -POSTing file solr.xml (application/xml) to [base] -POSTing file utf8-example.xml (application/xml) to [base] -POSTing file vidcard.xml (application/xml) to [base] -14 files indexed. -COMMITting Solr index changes to http://localhost:8983/solr/gettingstarted/update... -Time spent: 0:00:00.153 ----- - -That's it! Solr has indexed the documents contained in those files. - -[[RunningSolr-AskQuestions]] -== Ask Questions - -Now that you have indexed documents, you can perform queries. The simplest way is by building a URL that includes the query parameters. This is exactly the same as building any other HTTP URL. - -For example, the following query searches all document fields for "video": - -`\http://localhost:8983/solr/gettingstarted/select?q=video` - -Notice how the URL includes the host name (`localhost`), the port number where the server is listening (`8983`), the application name (`solr`), the request handler for queries (`select`), and finally, the query itself (`q=video`). - -The results are contained in an XML document, which you can examine directly by clicking on the link above. The document contains two parts. The first part is the `responseHeader`, which contains information about the response itself. The main part of the reply is in the result tag, which contains one or more doc tags, each of which contains fields from documents that match the query. You can use standard XML transformation techniques to mold Solr's results into a form that is suitable for displaying to users. Alternatively, Solr can output the results in JSON, PHP, Ruby and even user-defined formats. - -Just in case you are not running Solr as you read, the following screen shot shows the result of a query (the next example, actually) as viewed in Mozilla Firefox. The top-level response contains a `lst` named `responseHeader` and a result named response. Inside result, you can see the three docs that represent the search results. - -.An XML response to a query. -image::images/running-solr/solr34_responseHeader.png[image,width=600,height=634] - -Once you have mastered the basic idea of a query, it is easy to add enhancements to explore the query syntax. This one is the same as before but the results only contain the ID, name, and price for each returned document. If you don't specify which fields you want, all of them are returned. - -`\http://localhost:8983/solr/gettingstarted/select?q=video&fl=id,name,price` - -Here is another example which searches for "black" in the `name` field only. If you do not tell Solr which field to search, it will search default fields, as specified in the schema. - -`\http://localhost:8983/solr/gettingstarted/select?q=name:black` - -You can provide ranges for fields. The following query finds every document whose price is between $0 and $400. - -`\http://localhost:8983/solr/gettingstarted/select?q=price:[0%20TO%20400]&fl=id,name,price` - -<> is one of Solr's key features. It allows users to narrow search results in ways that are meaningful to your application. For example, a shopping site could provide facets to narrow search results by manufacturer or price. - -Faceting information is returned as a third part of Solr's query response. To get a taste of this power, take a look at the following query. It adds `facet=true` and `facet.field=cat`. - -`\http://localhost:8983/solr/gettingstarted/select?q=price:[0%20TO%20400]&fl=id,name,price&facet=true&facet.field=cat` - -In addition to the familiar `responseHeader` and response from Solr, a `facet_counts` element is also present. Here is a view with the `responseHeader` and response collapsed so you can see the faceting information clearly. - -*An XML Response with faceting* - -[source,xml] ----- - - -... - - - - SOLR1000 - Solr, the Enterprise Search Server - 0.0 -... - - - - - - 6 - 3 - 2 - 2 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - 0 - 0 - - - - - - ----- - -The facet information shows how many of the query results have each possible value of the `cat` field. You could easily use this information to provide users with a quick way to narrow their query results. You can filter results by adding one or more filter queries to the Solr request. This request constrains documents with a category of "software". - -`\http://localhost:8983/solr/gettingstarted/select?q=price:0%20TO%20400&fl=id,name,price&facet=true&facet.field=cat&fq=cat:software` diff --git a/solr/solr-ref-guide/src/a-step-closer.adoc b/solr/solr-ref-guide/src/solr-configuration-files.adoc similarity index 74% rename from solr/solr-ref-guide/src/a-step-closer.adoc rename to solr/solr-ref-guide/src/solr-configuration-files.adoc index c75c6b90973..98edb93b26f 100644 --- a/solr/solr-ref-guide/src/a-step-closer.adoc +++ b/solr/solr-ref-guide/src/solr-configuration-files.adoc @@ -1,6 +1,6 @@ -= A Step Closer -:page-shortname: a-step-closer -:page-permalink: a-step-closer.html += Solr Configuration Files +:page-shortname: solr-configuration-files +:page-permalink: solr-configuration-files.html // Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information @@ -18,9 +18,16 @@ // specific language governing permissions and limitations // under the License. -You already have some idea of Solr's schema. This section describes Solr's home directory and other configuration options. +Solr has several configuration files that you will interact with during your implementation. -When Solr runs in an application server, it needs access to a home directory. The home directory contains important configuration information and is the place where Solr will store its index. The layout of the home directory will look a little different when you are running Solr in standalone mode vs when you are running in SolrCloud mode. +Many of these files are in XML format, although APIs that interact with configuration settings tend to accept JSON for programmatic access as needed. + +== Solr Home +When Solr runs, it needs access to a home directory. + +When you first install Solr, your home directory is `server/solr`. However, some examples may change this location (such as, if you run `bin/solr start -e cloud`, your home directory will be `example/cloud`). + +The home directory contains important configuration information and is the place where Solr will store its index. The layout of the home directory will look a little different when you are running Solr in standalone mode vs. when you are running in SolrCloud mode. The crucial parts of the Solr home directory are shown in these examples: @@ -56,7 +63,10 @@ The crucial parts of the Solr home directory are shown in these examples: data/ ---- -You may see other files, but the main ones you need to know are: +You may see other files, but the main ones you need to know are discussed in the next section. + +== Configuration Files +Inside Solr's Home, you'll find these files: * `solr.xml` specifies configuration options for your Solr server instance. For more information on `solr.xml` see <>. * Per Solr Core: @@ -67,4 +77,4 @@ You may see other files, but the main ones you need to know are: Note that the SolrCloud example does not include a `conf` directory for each Solr Core (so there is no `solrconfig.xml` or Schema file). This is because the configuration files usually found in the `conf` directory are stored in ZooKeeper so they can be propagated across the cluster. -If you are using SolrCloud with the embedded ZooKeeper instance, you may also see `zoo.cfg` and `zoo.data` which are ZooKeeper configuration and data files. However, if you are running your own ZooKeeper ensemble, you would supply your own ZooKeeper configuration file when you start it and the copies in Solr would be unused. For more information about ZooKeeper and SolrCloud, see the section <>. +If you are using SolrCloud with the embedded ZooKeeper instance, you may also see `zoo.cfg` and `zoo.data` which are ZooKeeper configuration and data files. However, if you are running your own ZooKeeper ensemble, you would supply your own ZooKeeper configuration file when you start it and the copies in Solr would be unused. For more information about SolrCloud, see the section <>. diff --git a/solr/solr-ref-guide/src/solr-control-script-reference.adoc b/solr/solr-ref-guide/src/solr-control-script-reference.adoc index 735d438cd9e..04d50f75ed7 100644 --- a/solr/solr-ref-guide/src/solr-control-script-reference.adoc +++ b/solr/solr-ref-guide/src/solr-control-script-reference.adoc @@ -25,7 +25,7 @@ You can start and stop Solr, create and delete collections or cores, perform ope You can find the script in the `bin/` directory of your Solr installation. The `bin/solr` script makes Solr easier to work with by providing simple commands and options to quickly accomplish common goals. -More examples of `bin/solr` in use are available throughout the Solr Reference Guide, but particularly in the sections <> and <>. +More examples of `bin/solr` in use are available throughout the Solr Reference Guide, but particularly in the sections <> and <>. == Starting and Stopping diff --git a/solr/solr-ref-guide/src/solr-system-requirements.adoc b/solr/solr-ref-guide/src/solr-system-requirements.adoc new file mode 100644 index 00000000000..77230c70856 --- /dev/null +++ b/solr/solr-ref-guide/src/solr-system-requirements.adoc @@ -0,0 +1,48 @@ += Solr System Requirements +:page-shortname: solr-system-requirements +:page-permalink: solr-system-requirements.html +:page-toc: false +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +You can install Solr in any system where a suitable Java Runtime Environment (JRE) is available, as detailed below. + +Currently this includes Linux, MacOS/OS X, and Microsoft Windows. + +== Installation Requirements + +=== Java Requirements + +You will need the Java Runtime Environment (JRE) version 1.8 or higher. At a command line, check your Java version like this: + +[source,bash] +---- +$ java -version +java version "1.8.0_60" +Java(TM) SE Runtime Environment (build 1.8.0_60-b27) +Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode) +---- + +The exact output will vary, but you need to make sure you meet the minimum version requirement. We also recommend choosing a version that is not end-of-life from its vendor. Oracle or OpenJDK are the most tested JREs and are recommended. It's also recommended to use the latest available official release when possible. + +Some versions of Java VM have bugs that may impact your implementation. To be sure, check the page https://wiki.apache.org/lucene-java/JavaBugs[Lucene JavaBugs]. + +If you don't have the required version, or if the `java` command is not found, download and install the latest version from Oracle at http://www.oracle.com/technetwork/java/javase/downloads/index.html. + +=== Supported Operating Systems + +Solr is tested on several versions of Linux, MacOS, and Windows. diff --git a/solr/solr-ref-guide/src/solr-tutorial.adoc b/solr/solr-ref-guide/src/solr-tutorial.adoc new file mode 100644 index 00000000000..5b5eefea695 --- /dev/null +++ b/solr/solr-ref-guide/src/solr-tutorial.adoc @@ -0,0 +1,980 @@ += Solr Tutorial +:page-shortname: solr-tutorial +:page-permalink: solr-tutorial.html +:page-tocclass: right +:experimental: + +This tutorial covers getting Solr up and running, ingesting a variety of data sources into multiple collections, +and getting a feel for the Solr administrative and search interfaces. + +It is organized into three sections that each build on the one before it. The <> will ask you to start Solr, create a collection, index some basic documents, and then perform a few searches. + +The <> works with a different set of data, and explores requesting facets with the dataset. + +The <> encourages you to begin to work with your own data and start a plan for your implementation. + +Finally, we'll introduce <> and show you how to get your Solr instance back into a clean state. + +== Before You Begin + +To follow along with this tutorial, you will need... + +// TODO possibly remove this system requirements or only replace the link +. To meet the {solr-javadocs}/solr/api/SYSTEM_REQUIREMENTS.html[system requirements] +. An Apache Solr release http://lucene.apache.org/solr/downloads.html[download]. This tutorial is designed for Apache Solr {solr-docs-version}. + +For best results, please run the browser showing this tutorial and the Solr server on the same machine so tutorial links will correctly point to your Solr server. + +== Unpack Solr + +Begin by unzipping the Solr release and changing your working directory to the subdirectory where Solr was installed. For example, with a shell in UNIX, Cygwin, or MacOS: + +[source,bash,subs="verbatim,attributes+"] +---- +~$ ls solr* +solr-{solr-docs-version}.0.zip + +~$ unzip -q solr-{solr-docs-version}.0.zip + +~$ cd solr-{solr-docs-version}.0/ +---- + +If you'd like to know more about Solr's directory layout before moving to the first exercise, see the section <> for details. + +[[exercise-1]] +== Exercise 1: Index Techproducts Example Data + +This exercise will walk you through how to start Solr as a two-node cluster (both nodes on the same machine) and create a collection during startup. Then you will index some sample data that ships with Solr and do some basic searches. + +=== Launch Solr in SolrCloud Mode +To launch Solr, run: `bin/solr start -e cloud` on Unix or MacOS; `bin\solr.cmd start -e cloud` on Windows. + +This will start an interactive session that will start two Solr "servers" on your machine. This command has an option to run without prompting you for input (`-noprompt`), but we want to modify two of the defaults so we won't use that option now. + +[source,subs="verbatim,attributes+"] +---- +solr-{solr-docs-version}.0:$ ./bin/solr start -e cloud + +Welcome to the SolrCloud example! + +This interactive session will help you launch a SolrCloud cluster on your local workstation. +To begin, how many Solr nodes would you like to run in your local cluster? (specify 1-4 nodes) [2]: +---- +The first prompt asks how many nodes we want to run. Note the `[2]` at the end of the last line; that is the default number of nodes. Two is what we want for this example, so you can simply press kbd:[enter]. + +[source,subs="verbatim,attributes+"] +---- +Ok, let's start up 2 Solr nodes for your example SolrCloud cluster. +Please enter the port for node1 [8983]: +---- +This will be the port that the first node runs on. Unless you know you have something else running on port 8983 on your machine, accept this default option also by pressing kbd:[enter]. If something is already using that port, you will be asked to choose another port. + +[source,subs="verbatim,attributes+"] +---- +Please enter the port for node2 [7574]: +---- +This is the port the second node will run on. Again, unless you know you have something else running on port 8983 on your machine, accept this default option also by pressing kbd:[enter]. If something is already using that port, you will be asked to choose another port. + +Solr will now initialize itself and start running on those two nodes. The script will print the commands it uses for your reference. + +[source,subs="verbatim,attributes+"] +---- +Starting up 2 Solr nodes for your example SolrCloud cluster. + +Creating Solr home directory /solr-{solr-docs-version}.0/example/cloud/node1/solr +Cloning /solr-{solr-docs-version}.0/example/cloud/node1 into + /solr-{solr-docs-version}.0/example/cloud/node2 + +Starting up Solr on port 8983 using command: +"bin/solr" start -cloud -p 8983 -s "example/cloud/node1/solr" + +Waiting up to 180 seconds to see Solr running on port 8983 [\] +Started Solr server on port 8983 (pid=34942). Happy searching! + + +Starting up Solr on port 7574 using command: +"bin/solr" start -cloud -p 7574 -s "example/cloud/node2/solr" -z localhost:9983 + +Waiting up to 180 seconds to see Solr running on port 7574 [\] +Started Solr server on port 7574 (pid=35036). Happy searching! + +INFO - 2017-07-27 12:28:02.835; org.apache.solr.client.solrj.impl.ZkClientClusterStateProvider; Cluster at localhost:9983 ready +---- + +Notice that two instances of Solr have started on two nodes. Because we are starting in SolrCloud mode, and did not define any details about an external ZooKeeper cluster, Solr launches its own ZooKeeper and connects both nodes to it. + +After startup is complete, you'll be prompted to create a collection to use for indexing data. + +[source,subs="verbatim,attributes+"] +---- +Now let's create a new collection for indexing documents in your 2-node cluster. +Please provide a name for your new collection: [gettingstarted] +---- + +Here's the first place where we'll deviate from the default options. This tutorial will ask you to index some sample data included with Solr, called the "techproducts" data. Let's name our collection "techproducts" so it's easy to differentiate from other collections we'll create later. Enter `techproducts` at the prompt and hit kbd:[enter]. + +[source,subs="verbatim,attributes+"] +---- +How many shards would you like to split techproducts into? [2] +---- + +This is asking how many <> you want to split your index into across the two nodes. Choosing "2" (the default) means we will split the index relatively evenly across both nodes, which is a good way to start. Accept the default by hitting kbd:[enter]. + +[source,subs="verbatim,attributes+"] +---- +How many replicas per shard would you like to create? [2] +---- + +A replica is a copy of the index that's used for failover (see also the <>). Again, the default of "2" is fine to start with here also, so accept the default by hitting kbd:[enter]. + +[source,subs="verbatim,attributes+"] +---- +Please choose a configuration for the techproducts collection, available options are: +_default or sample_techproducts_configs [_default] +---- + +We've reached another point where we will deviate from the default option. Solr has two sample sets of configuration files (called a _configSet_) available out-of-the-box. + +A collection must have a configSet, which at a minimum includes the two main configuration files for Solr: the schema file (named either `managed-schema` or `schema.xml`), and `solrconfig.xml`. The question here is which configSet you would like to start with. The `_default` is a bare-bones option, but note there's one whose name includes "techproducts", the same as we named our collection. This configSet is specifically designed to support the sample data we want to use, so enter `sample_techproducts_configs` at the prompt and hit kbd:[enter]. + +At this point, Solr will create the collection and again output to the screen the commands it issues. + +[source,subs="verbatim,attributes+"] +---- +Uploading /solr-{solr-docs-version}.0/server/solr/configsets/_default/conf for config techproducts to ZooKeeper at localhost:9983 + +Connecting to ZooKeeper at localhost:9983 ... +INFO - 2017-07-27 12:48:59.289; org.apache.solr.client.solrj.impl.ZkClientClusterStateProvider; Cluster at localhost:9983 ready +Uploading /solr-{solr-docs-version}.0/server/solr/configsets/sample_techproducts_configs/conf for config techproducts to ZooKeeper at localhost:9983 + +Creating new collection 'techproducts' using command: +http://localhost:8983/solr/admin/collections?action=CREATE&name=techproducts&numShards=2&replicationFactor=2&maxShardsPerNode=2&collection.configName=techproducts + +{ + "responseHeader":{ + "status":0, + "QTime":5460}, + "success":{ + "192.168.0.110:7574_solr":{ + "responseHeader":{ + "status":0, + "QTime":4056}, + "core":"techproducts_shard1_replica_n1"}, + "192.168.0.110:8983_solr":{ + "responseHeader":{ + "status":0, + "QTime":4056}, + "core":"techproducts_shard2_replica_n2"}}} + +Enabling auto soft-commits with maxTime 3 secs using the Config API + +POSTing request to Config API: http://localhost:8983/solr/techproducts/config +{"set-property":{"updateHandler.autoSoftCommit.maxTime":"3000"}} +Successfully set-property updateHandler.autoSoftCommit.maxTime to 3000 + +SolrCloud example running, please visit: http://localhost:8983/solr +---- + +*Congratulations!* Solr is ready for data! + +You can see that Solr is running by launching the Solr Admin UI in your web browser: http://localhost:8983/solr/. This is the main starting point for administering Solr. + +Solr will now be running two "nodes", one on port 7574 and one on port 8983. There is one collection created automatically, `techproducts`, a two shard collection, each with two replicas. + +The http://localhost:8983/solr/#/~cloud[Cloud tab] in the Admin UI diagrams the collection nicely: + +.SolrCloud Diagram +image::images/solr-tutorial/tutorial-solrcloud.png[] + +=== Index the Techproducts Data + +Your Solr server is up and running, but it doesn't contain any data yet, so we can't do any queries. + +Solr includes the `bin/post` tool in order to facilitate indexing various types of documents easily. We'll use this tool for the indexing examples below. + +You'll need a command shell to run some of the following examples, rooted in the Solr install directory; the shell from where you launched Solr works just fine. + +NOTE: Currently the `bin/post` tool does not have a comparable Windows script, but the underlying Java program invoked is available. We'll show examples below for Windows, but you can also see the <> of the Post Tool documentation for more details. + +The data we will index is in the `example/exampledocs` directory. The documents are in a mix of document formats (JSON, CSV, etc.), and fortunately we can index them all at once: + +.Linux/Mac +[source,subs="verbatim,attributes+"] +---- +solr-{solr-docs-version}.0:$ bin/post -c techproducts example/exampledocs/* +---- + +.Windows +[source,subs="verbatim,attributes+"] +---- +C:\solr-{solr-docs-version}.0> java -jar -Dc=techproducts -Dauto example\exampledocs\post.jar example\exampledocs\* +---- + +You should see output similar to the following: + +[source,subs="verbatim,attributes+"] +---- +SimplePostTool version 5.0.0 +Posting files to [base] url http://localhost:8983/solr/techproducts/update... +Entering auto mode. File endings considered are xml,json,jsonl,csv,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,rtf,htm,html,txt,log +POSTing file books.csv (text/csv) to [base] +POSTing file books.json (application/json) to [base]/json/docs +POSTing file gb18030-example.xml (application/xml) to [base] +POSTing file hd.xml (application/xml) to [base] +POSTing file ipod_other.xml (application/xml) to [base] +POSTing file ipod_video.xml (application/xml) to [base] +POSTing file manufacturers.xml (application/xml) to [base] +POSTing file mem.xml (application/xml) to [base] +POSTing file money.xml (application/xml) to [base] +POSTing file monitor.xml (application/xml) to [base] +POSTing file monitor2.xml (application/xml) to [base] +POSTing file more_books.jsonl (application/json) to [base]/json/docs +POSTing file mp500.xml (application/xml) to [base] +POSTing file post.jar (application/octet-stream) to [base]/extract +POSTing file sample.html (text/html) to [base]/extract +POSTing file sd500.xml (application/xml) to [base] +POSTing file solr-word.pdf (application/pdf) to [base]/extract +POSTing file solr.xml (application/xml) to [base] +POSTing file test_utf8.sh (application/octet-stream) to [base]/extract +POSTing file utf8-example.xml (application/xml) to [base] +POSTing file vidcard.xml (application/xml) to [base] +21 files indexed. +COMMITting Solr index changes to http://localhost:8983/solr/techproducts/update... +Time spent: 0:00:00.822 +---- + +Congratulations again! You have data in your Solr! + +Now we're ready to start searching. + +[[tutorial-searching]] +=== Basic Searching + +Solr can be queried via REST clients, curl, wget, Chrome POSTMAN, etc., as well as via native clients available for many programming languages. + +The Solr Admin UI includes a query builder interface via the Query tab for the `techproducts` collection (at http://localhost:8983/solr/#/techproducts/query). If you click the btn:[Execute Query] button without changing anything in the form, you'll get 10 documents in JSON format: + +.Query Screen +image::images/solr-tutorial/tutorial-query-screen.png[Solr Quick Start: techproducts Query screen with results] + +The URL sent by the Admin UI to Solr is shown in light grey near the top right of the above screenshot. If you click on it, your browser will show you the raw response. + +To use curl, give the same URL shown in your browser in quotes on the command line: + +`curl "http://localhost:8983/solr/techproducts/select?indent=on&q=\*:*"` + +What's happening here is that we are using Solr's query parameter (`q`) with a special syntax that requests all documents in the index (`\*:*`). All of the documents are not returned to us, however, because of the default for a parameter called `rows`, which you can see in the form is `10`. You can change the parameter in the UI or in the defaults if you wish. + +Solr has very powerful search options, and this tutorial won't be able to cover all of them. But we can cover some of the most common types of queries. + +==== Search for a Single Term + +To search for a term, enter it as the `q` param value in the Solr Admin UI Query screen, replacing `\*:*` with the term you want to find. + +Enter "foundation" and hit btn:[Execute Query] again. + +If you prefer curl, enter something like this: + +`curl "http://localhost:8983/solr/techproducts/select?q=foundation"` + +You'll see something like this: + +[source,json] +{ + "responseHeader":{ + "zkConnected":true, + "status":0, + "QTime":8, + "params":{ + "q":"foundation"}}, + "response":{"numFound":4,"start":0,"maxScore":2.7879646,"docs":[ + { + "id":"0553293354", + "cat":["book"], + "name":"Foundation", + "price":7.99, + "price_c":"7.99,USD", + "inStock":true, + "author":"Isaac Asimov", + "author_s":"Isaac Asimov", + "series_t":"Foundation Novels", + "sequence_i":1, + "genre_s":"scifi", + "_version_":1574100232473411586, + "price_c____l_ns":799}] +}} + +The response indicates that there are 4 hits (`"numFound":4`). We've only included one document the above sample output, but since 4 hits is lower than the `rows` parameter default of 10 to be returned, you should see all 4 of them. + +Note the `responseHeader` before the documents. This header will include the parameters you have set for the search. By default it shows only the parameters _you_ have set for this query, which in this case is only your query term. + +The documents we got back include all the fields for each document that were indexed. This is, again, default behavior. If you want to restrict the fields in the response, you can use the `fl` param, which takes a comma-separated list of field names. This is one of the available fields on the query form in the Admin UI. + +Put "id" (without quotes) in the "fl" box and hit btn:[Execute Query] again. Or, to specify it with curl: + +`curl "http://localhost:8983/solr/techproducts/select?q=foundation&fl=id"` + +You should only see the IDs of the matching records returned. + +==== Field Searches + +All Solr queries look for documents using some field. Often you want to query across multiple fields at the same time, and this is what we've done so far with the "foundation" query. This is possible with the use of copy fields, which are set up already with this set of configurations. We'll cover copy fields a little bit more in Exercise 2. + +Sometimes, though, you want to limit your query to a single field. This can make your queries more efficient and the results more relevant for users. + +Much of the data in our small sample data set is related to products. Let's say we want to find all the "electronics" products in the index. In the Query screen, enter "electronics" (without quotes) in the `q` box and hit btn:[Execute Query]. You should get 14 results, such as: + +[source,json] +{ + "responseHeader":{ + "zkConnected":true, + "status":0, + "QTime":6, + "params":{ + "q":"electronics"}}, + "response":{"numFound":14,"start":0,"maxScore":1.5579545,"docs":[ + { + "id":"IW-02", + "name":"iPod & iPod Mini USB 2.0 Cable", + "manu":"Belkin", + "manu_id_s":"belkin", + "cat":["electronics", + "connector"], + "features":["car power adapter for iPod, white"], + "weight":2.0, + "price":11.5, + "price_c":"11.50,USD", + "popularity":1, + "inStock":false, + "store":"37.7752,-122.4232", + "manufacturedate_dt":"2006-02-14T23:55:59Z", + "_version_":1574100232554151936, + "price_c____l_ns":1150}] +}} + +This search finds all documents that contain the term "electronics" anywhere in the indexed fields. However, we can see from the above there is a `cat` field (for "category"). If we limit our search for only documents with the category "electronics", the results will be more precise for our users. + +Update your query in the `q` field of the Admin UI so it's `cat:electronics`. Now you get 12 results: + +[source,json] +{ + "responseHeader":{ + "zkConnected":true, + "status":0, + "QTime":6, + "params":{ + "q":"cat:electronics"}}, + "response":{"numFound":12,"start":0,"maxScore":0.9614112,"docs":[ + { + "id":"SP2514N", + "name":"Samsung SpinPoint P120 SP2514N - hard drive - 250 GB - ATA-133", + "manu":"Samsung Electronics Co. Ltd.", + "manu_id_s":"samsung", + "cat":["electronics", + "hard drive"], + "features":["7200RPM, 8MB cache, IDE Ultra ATA-133", + "NoiseGuard, SilentSeek technology, Fluid Dynamic Bearing (FDB) motor"], + "price":92.0, + "price_c":"92.0,USD", + "popularity":6, + "inStock":true, + "manufacturedate_dt":"2006-02-13T15:26:37Z", + "store":"35.0752,-97.032", + "_version_":1574100232511160320, + "price_c____l_ns":9200}] + }} + +Using curl, this query would look like this: + +`curl "http://localhost:8983/solr/techproducts/select?q=cat:electronics"` + +==== Phrase Search + +To search for a multi-term phrase, enclose it in double quotes: `q="multiple terms here"`. For example, search for "CAS latency" by entering that phrase in quotes to the `q` box in the Admin UI. + +If you're following along with curl, note that the space between terms must be converted to "+" in a URL, as so: + +`curl "http://localhost:8983/solr/techproducts/select?q=\"CAS+latency\""` + +We get 2 results: + +[source,json] +{ + "responseHeader":{ + "zkConnected":true, + "status":0, + "QTime":7, + "params":{ + "q":"\"CAS latency\""}}, + "response":{"numFound":2,"start":0,"maxScore":5.937691,"docs":[ + { + "id":"VDBDB1A16", + "name":"A-DATA V-Series 1GB 184-Pin DDR SDRAM Unbuffered DDR 400 (PC 3200) System Memory - OEM", + "manu":"A-DATA Technology Inc.", + "manu_id_s":"corsair", + "cat":["electronics", + "memory"], + "features":["CAS latency 3, 2.7v"], + "popularity":0, + "inStock":true, + "store":"45.18414,-93.88141", + "manufacturedate_dt":"2006-02-13T15:26:37Z", + "payloads":"electronics|0.9 memory|0.1", + "_version_":1574100232590852096}, + { + "id":"TWINX2048-3200PRO", + "name":"CORSAIR XMS 2GB (2 x 1GB) 184-Pin DDR SDRAM Unbuffered DDR 400 (PC 3200) Dual Channel Kit System Memory - Retail", + "manu":"Corsair Microsystems Inc.", + "manu_id_s":"corsair", + "cat":["electronics", + "memory"], + "features":["CAS latency 2, 2-3-3-6 timing, 2.75v, unbuffered, heat-spreader"], + "price":185.0, + "price_c":"185.00,USD", + "popularity":5, + "inStock":true, + "store":"37.7752,-122.4232", + "manufacturedate_dt":"2006-02-13T15:26:37Z", + "payloads":"electronics|6.0 memory|3.0", + "_version_":1574100232584560640, + "price_c____l_ns":18500}] + }} + +==== Combining Searches + +By default, when you search for multiple terms and/or phrases in a single query, Solr will only require that one of them is present in order for a document to match. Documents containing more terms will be sorted higher in the results list. + +You can require that a term or phrase is present by prefixing it with a `+`; conversely, to disallow the presence of a term or phrase, prefix it with a `-`. + +To find documents that contain both terms "electronics" and "music", enter `+electronics +music` in the `q` box in the Admin UI Query tab. + +If you're using curl, you must encode the `+` character because it has a reserved purpose in URLs (encoding the space character). The encoding for `+` is `%2B`: + +`curl "http://localhost:8983/solr/techproducts/select?q=%2Belectronics%20%2Bmusic"` + +You should only get a single result. + +To search for documents that contain the term "electronics" but *don't* contain the term "music", enter `+electronics -music` in the `q` box in the Admin UI. For curl, again, URL encode "+" as "%2B": + +`curl "http://localhost:8983/solr/techproducts/select?q=%2Belectronics+-music"` + +This time you get 13 results. + +==== More Information on Searching + +We have only scratched the surface of the search options available in Solr. For more Solr search options, see the section on <>. + +=== Exercise 1 Wrap Up + +At this point, you've seen how Solr can index data and have done some basic queries. You can choose now to continue to the next example which will introduce more Solr concepts, such as faceting results and managing your schema, or you can strike out on your own. + +If you decide not to continue with this tutorial, the data we've indexed so far is likely of little value to you. You can delete your installation and start over, or you can use the `bin/solr` script we started out with to delete this collection: + +`bin/solr delete -c techproducts` + +And then create a new collection: + +`bin/solr create -c -s 2 -rf 2` + +To stop both of the Solr nodes we started, issue the command: + +`bin/solr stop -all` + +For more information on start/stop and collection options with `bin/solr`, see <>. + +[[exercise-2]] +== Exercise 2: Modify the Schema and Index Films Data + +This exercise will build on the last one and introduce you to the index schema and Solr's powerful faceting features. + +=== Restart Solr + +Did you stop Solr after the last exercise? No? Then go ahead to the next section. + +If you did, though, and need to restart Solr, issue these commands: + +`./bin/solr start -c -p 8983 -s example/cloud/node1/solr` + +This starts the first node. When it's done start the second node, and tell it how to connect to to ZooKeeper: + +`./bin/solr start -c -p 7574 -s example/cloud/node2/solr -z localhost:9983` + +=== Create a New Collection + +We're going to use a whole new data set in this exercise, so it would be better to have a new collection instead of trying to reuse the one we had before. + +One reason for this is we're going to use a feature in Solr called "field guessing", where Solr attempts to guess what type of data is in a field while it's indexing it. It also automatically creates new fields in the schema for new fields that appear in incoming documents. This mode is called "Schemaless". We'll see the benefits and limitations of this approach to help you decide how and where to use it in your real application. + +.What is a "schema" and why do I need one? +[sidebar] +**** +Solr's schema is a single file (in XML) that stores the details about the fields and field types Solr is expected to understand. The schema defines not only the field or field type names, but also any modifications that should happen to a field before it is indexed. For example, if you want to ensure that a user who enters "abc" and a user who enters "ABC" can both find a document containing the term "ABC", you will want to normalize (lower-case it, in this case) "ABC" when it is indexed, and normalize the user query to be sure of a match. These rules are defined in your schema. + +Earlier in the tutorial we mentioned copy fields, which are fields made up of data that originated from other fields. You can also define dynamic fields, which use wildcards (such as `*_t` or `*_s`) to dynamically create fields of a specific field type. These types of rules are also defined in the schema. +**** + +When you initially started Solr in the first exercise, we had a choice of a configSet to use. The one we chose had a schema that was pre-defined for the data we later indexed. This time, we're going to use a configSet that has a very minimal schema and let Solr figure out from the data what fields to add. + +The data you're going to index is related to movies, so start by creating a collection named "films" that uses the `_default` configSet: + +`bin/solr create -c films -s 2 -rf 2` + +Whoa, wait. We didn't specify a configSet! That's fine, the `_default` is appropriately named, since it's the default and is used if you don't specify one at all. + +We did, however, set two parameters `-s` and `-rf`. Those are the number of shards to split the collection across (2) and how many replicas to create (2). This is equivalent to the options we had during the interactive example from the first exercise. + +You should see output like: + +[source,subs="verbatim,attributes+"] +---- +WARNING: Using _default configset. Data driven schema functionality is enabled by default, which is + NOT RECOMMENDED for production use. + + To turn it off: + curl http://localhost:7574/solr/films/config -d '{"set-user-property": {"update.autoCreateFields":"false"}}' + +Connecting to ZooKeeper at localhost:9983 ... +INFO - 2017-07-27 15:07:46.191; org.apache.solr.client.solrj.impl.ZkClientClusterStateProvider; Cluster at localhost:9983 ready +Uploading /{solr-docs-version}.0/server/solr/configsets/_default/conf for config films to ZooKeeper at localhost:9983 + +Creating new collection 'films' using command: +http://localhost:7574/solr/admin/collections?action=CREATE&name=films&numShards=2&replicationFactor=2&maxShardsPerNode=2&collection.configName=films + +{ + "responseHeader":{ + "status":0, + "QTime":3830}, + "success":{ + "192.168.0.110:8983_solr":{ + "responseHeader":{ + "status":0, + "QTime":2076}, + "core":"films_shard2_replica_n1"}, + "192.168.0.110:7574_solr":{ + "responseHeader":{ + "status":0, + "QTime":2494}, + "core":"films_shard1_replica_n2"}}} +---- + +The first thing the command printed was a warning about not using this configSet in production. That's due to some of the limitations we'll cover shortly. + +Otherwise, though, the collection should be created. If we go to the Admin UI at http://localhost:8983/solr/#/films/collection-overview we should see the overview screen. + +==== Preparing Schemaless for the Films Data + +There are two parallel things happening with the schema that comes with the `_default` configSet. + +First, we are using a "managed schema", which is configured to only be modified by Solr's Schema API. That means we should not hand-edit it so there isn't confusion about which edits come from which source. Solr's Schema API allows us to make changes to fields, field types, and other types of schema rules. + +Second, we are using "field guessing", which is configured in the `solrconfig.xml` file (and includes most of Solr's various configuration settings). Field guessing is designed to allow us to start using Solr without having to define all the fields we think will be in our documents before trying to index them. This is why we call it "schemaless", because you can start quickly and let Solr create fields for you as it encounters them in documents. + +Sounds great! Well, not really, there are limitations. It's a bit brute force, and if it guesses wrong, you can't change much about a field after data has been indexed without having to reindex. If we only have a few thousand documents that might not be bad, but if you have millions and millions of documents, or, worse, don't have access to the original data anymore, this can be a real problem. + +For these reasons, the Solr community does not recommend going to production without a schema that you have defined yourself. By this we mean that the schemaless features are fine to start with, but you should still always make sure your schema matches your expectations for how you want your data indexed and how users are going to query it. + +It is possible to mix schemaless features with a defined schema. Using the Schema API, you can define a few fields that you know you want to control, and let Solr guess others that are less important or which you are confident (through testing) will be guessed to your satisfaction. That's what we're going to do here. + +===== Create the "names" Field +The films data we are going to index has a small number of fields for each movie: an ID, director name(s), film name, release date, and genre(s). + +If you look at one of the files in `example/films`, you'll see the first film is named _.45_, released in 2006. As the first document in the dataset, Solr is going to guess the field type based on the data in the record. If we go ahead and index this data, that first film name is going to indicate to Solr that that field type is a "float" numeric field, and will create a "name" field with a type `FloatPointField`. All data after this record will be expected to be a float. + +Well, that's not going to work. We have titles like _A Mighty Wind_ and _Chicken Run_, which are strings - decidedly not numeric and not floats. If we let Solr guess the "name" field is a float, what will happen is later titles will cause an error and indexing will fail. That's not going to get us very far. + +What we can do is set up the "name" field in Solr before we index the data to be sure Solr always interprets it as a string. At the command line, enter this curl command: + +[source,bash] +curl -X POST -H 'Content-type:application/json' --data-binary '{"add-field": {"name":"name", "type":"text_general", "multiValued":false, "stored":true}}' http://localhost:8983/solr/films/schema + +This command uses the Schema API to explicitly define a field named "name" that has the field type "text_general" (a text field). It will not be permitted to have multiple values, but it will be stored (meaning it can be retrieved by queries). + +You can also use the Admin UI to create fields, but it offers a bit less control over the properties of your field. It will work for our case, though: + +.Creating a field +image::images/solr-tutorial/tutorial-add-field.png[] + +===== Create a "catchall" Copy Field + +There's one more change to make before we start indexing. + +In the first exercise when we queried the documents we had indexed, we didn't have to specify a field to search because the configuration we used was set up to copy fields into a `text` field, and that field was the default when no other field was defined in the query. + +The configuration we're using now doesn't have that rule. We would need to define a field to search for every query. We can, however, set up a "catchall field" by defining a copy field that will take all data from all fields and index it into a field named `\_text_`. Let's do that now. + +You can use either the Admin UI or the Schema API for this. + +At the command line, use the Schema API again to define a copy field: + +[source,bash] +curl -X POST -H 'Content-type:application/json' --data-binary '{"add-copy-field" : {"source":"*","dest":"_text_"}}' http://localhost:8983/solr/films/schema + +In the Admin UI, choose btn:[Add Copy Field], then fill out the source and destination for your field, as in this screenshot. + +.Creating a copy field +image::images/solr-tutorial/tutorial-add-copy-field.png[] + +What this does is make a copy of all fields and put the data into the "\_text_" field. + +TIP: It can be very expensive to do this with your production data because it tells Solr to effectively index everything twice. It will make indexing slower, and make your index larger. With your production data, you will want to be sure you only copy fields that really warrant it for your application. + +OK, now we're ready to index the data and start playing around with it. + +=== Index Sample Film Data + +The films data we will index is located in the `example/films` directory of your installation. It comes in three formats: JSON, XML and CSV. Pick one of the formats and index it into the "films" collection (in each example, one command is for Unix/MacOS and the other is for Windows): + +.To Index JSON Format +[source,subs="verbatim,attributes+"] +---- +bin/post -c films example/films/films.json + +C:\solr-{solr-docs-version}.0> java -jar -Dc=films -Dauto example\exampledocs\post.jar example\films\*.json +---- + +.To Index XML Format +[source,subs="verbatim,attributes+"] +---- +bin/post -c films example/films/films.xml + +C:\solr-{solr-docs-version}.0> java -jar -Dc=films -Dauto example\exampledocs\post.jar example\films\*.xml +---- + +.To Index CSV Format +[source,subs="verbatim,attributes+"] +---- +bin/post -c films example/films/films.csv -params "f.genre.split=true&f.directed_by.split=true&f.genre.separator=|&f.directed_by.separator=|" + +C:\solr-{solr-docs-version}.0> java -jar -Dc=films -Dparams=f.genre.split=true&f.directed_by.split=true&f.genre.separator=|&f.directed_by.separator=| -Dauto example\exampledocs\post.jar example\films\*.csv +---- + +Each command includes these main parameters: + +* `-c films`: this is the Solr collection to index data to. +* `example/films/films.json` (or `films.xml` or `films.csv`): this is the path to the data file to index. You could simply supply the directory where this file resides, but since you know the format you want to index, specifying the exact file for that format is more efficient. + +Note the CSV command includes extra parameters. This is to ensure multi-valued entries in the "genre" and "directed_by" columns are split by the pipe (`|`) character, used in this file as a separator. Telling Solr to split these columns this way will ensure proper indexing of the data. + +Each command will produce output similar to the below seen while indexing JSON: + +[source,bash,subs="verbatim,attributes"] +---- +$ ./bin/post -c films example/films/films.json +/bin/java -classpath /solr-{solr-docs-version}.0/dist/solr-core-{solr-docs-version}.0.jar -Dauto=yes -Dc=films -Ddata=files org.apache.solr.util.SimplePostTool example/films/films.json +SimplePostTool version 5.0.0 +Posting files to [base] url http://localhost:8983/solr/films/update... +Entering auto mode. File endings considered are xml,json,jsonl,csv,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,rtf,htm,html,txt,log +POSTing file films.json (application/json) to [base]/json/docs +1 files indexed. +COMMITting Solr index changes to http://localhost:8983/solr/films/update... +Time spent: 0:00:00.878 +---- + +Hooray! + +If you go to the Query screen in the Admin UI for films (http://localhost:8983/solr/#/films/query) and hit btn:[Execute Query] you should see 1100 results, with the first 10 returned to the screen. + +Let's do a query to see if the "catchall" field worked properly. Enter "comedy" in the `q` box and hit btn:[Execute Query] again. You should see get 417 results. Feel free to play around with other searches before we move on to faceting. + +[[tutorial-faceting]] +=== Faceting + +One of Solr's most popular features is faceting. Faceting allows the search results to be arranged into subsets (or buckets, or categories), providing a count for each subset. There are several types of faceting: field values, numeric and date ranges, pivots (decision tree), and arbitrary query faceting. + +==== Field Facets + +In addition to providing search results, a Solr query can return the number of documents that contain each unique value in the whole result set. + +On the Admin UI Query tab, if you check the `facet` checkbox, you'll see a few facet-related options appear: + +.Facet options in the Query screen +image::images/solr-tutorial/tutorial-admin-ui-facet-options.png[Solr Quick Start: Query tab facet options] + +To see facet counts from all documents (`q=\*:*`): turn on faceting (`facet=true`), and specify the field to facet on via the `facet.field` param. If you only want facets, and no document contents, specify `rows=0`. The `curl` command below will return facet counts for the `genre_str` field: + +`curl "http://localhost:8983/solr/films/select?q=\*:*&rows=0&facet=true&facet.field=genre_str"` + +In your terminal, you'll see something like: + +[source,json] +{ + "responseHeader":{ + "zkConnected":true, + "status":0, + "QTime":11, + "params":{ + "q":"*:*", + "facet.field":"genre_str", + "rows":"0", + "facet":"true"}}, + "response":{"numFound":1100,"start":0,"maxScore":1.0,"docs":[] + }, + "facet_counts":{ + "facet_queries":{}, + "facet_fields":{ + "genre_str":[ + "Drama",552, + "Comedy",389, + "Romance Film",270, + "Thriller",259, + "Action Film",196, + "Crime Fiction",170, + "World cinema",167]}, + "facet_ranges":{}, + "facet_intervals":{}, + "facet_heatmaps":{}}} + +We've truncated the output here a little bit, but in the `facet_counts` section, you see by default you get a count of the number of documents using each genre for every genre in the index. Solr has a parameter `facet.mincount` that you could use to limit the facets to only those that contain a certain number of documents (this parameter is not shown in the UI). Or, perhaps you do want all the facets, and you'll let your application's front-end control how it's displayed to users. + +If you wanted to control the number of items in a bucket, you could do something like this: + +`curl "http://localhost:8983/solr/films/select?=&q=\*:*&facet.field=genre_str&facet.mincount=200&facet=on&rows=0"` + +You should only see 4 facets returned. + +There are a great deal of other parameters available to help you control how Solr constructs the facets and facet lists. We'll cover some of them in this exercise, but you can also see the section <> for more detail. + +==== Range Facets + +For numerics or dates, it's often desirable to partition the facet counts into ranges rather than discrete values. A prime example of numeric range faceting, using the example techproducts data from our previous exercise, is `price`. In the `/browse` UI, it looks like this: + +.Range facets +image::images/solr-tutorial/tutorial-range-facet.png[Solr Quick Start: Range facets] + +The films data includes the release date for films, and we could use that to create date range facets, which are another common use for range facets. + +The Solr Admin UI doesn't yet support range facet options, so you will need to use curl or similar command line tool for the following examples. + +If we construct a query that looks like this: + +[source,bash] +curl 'http://localhost:8983/solr/films/select?q=*:*&rows=0'\ + '&facet=true'\ + '&facet.range=initial_release_date'\ + '&facet.range.start=NOW-20YEAR'\ + '&facet.range.end=NOW'\ + '&facet.range.gap=%2B1YEAR' + +This will request all films and ask for them to be grouped by year starting with 20 years ago (our earliest release date is in 2000) and ending today. Note that this query again URL encodes a `+` as `%2B`. + +In the terminal you will see: + +[source,json] +{ + "responseHeader":{ + "zkConnected":true, + "status":0, + "QTime":8, + "params":{ + "facet.range":"initial_release_date", + "facet.limit":"300", + "q":"*:*", + "facet.range.gap":"+1YEAR", + "rows":"0", + "facet":"on", + "facet.range.start":"NOW-20YEAR", + "facet.range.end":"NOW"}}, + "response":{"numFound":1100,"start":0,"maxScore":1.0,"docs":[] + }, + "facet_counts":{ + "facet_queries":{}, + "facet_fields":{}, + "facet_ranges":{ + "initial_release_date":{ + "counts":[ + "1997-07-28T17:12:06.919Z",0, + "1998-07-28T17:12:06.919Z",0, + "1999-07-28T17:12:06.919Z",48, + "2000-07-28T17:12:06.919Z",82, + "2001-07-28T17:12:06.919Z",103, + "2002-07-28T17:12:06.919Z",131, + "2003-07-28T17:12:06.919Z",137, + "2004-07-28T17:12:06.919Z",163, + "2005-07-28T17:12:06.919Z",189, + "2006-07-28T17:12:06.919Z",92, + "2007-07-28T17:12:06.919Z",26, + "2008-07-28T17:12:06.919Z",7, + "2009-07-28T17:12:06.919Z",3, + "2010-07-28T17:12:06.919Z",0, + "2011-07-28T17:12:06.919Z",0, + "2012-07-28T17:12:06.919Z",1, + "2013-07-28T17:12:06.919Z",1, + "2014-07-28T17:12:06.919Z",1, + "2015-07-28T17:12:06.919Z",0, + "2016-07-28T17:12:06.919Z",0], + "gap":"+1YEAR", + "start":"1997-07-28T17:12:06.919Z", + "end":"2017-07-28T17:12:06.919Z"}}, + "facet_intervals":{}, + "facet_heatmaps":{}}} + +==== Pivot Facets + +Another faceting type is pivot facets, also known as "decision trees", allowing two or more fields to be nested for all the various possible combinations. Using the films data, pivot facets can be used to see how many of the films in the "Drama" category (the `genre_str` field) are directed by a director. Here's how to get at the raw data for this scenario: + +`curl "http://localhost:8983/solr/films/select?q=\*:*&rows=0&facet=on&facet.pivot=genre_str,directed_by_str"` + +This results in the following response, which shows a facet for each category and director combination: + +[source,json] +{"responseHeader":{ + "zkConnected":true, + "status":0, + "QTime":1147, + "params":{ + "q":"*:*", + "facet.pivot":"genre_str,directed_by_str", + "rows":"0", + "facet":"on"}}, + "response":{"numFound":1100,"start":0,"maxScore":1.0,"docs":[] + }, + "facet_counts":{ + "facet_queries":{}, + "facet_fields":{}, + "facet_ranges":{}, + "facet_intervals":{}, + "facet_heatmaps":{}, + "facet_pivot":{ + "genre_str,directed_by_str":[{ + "field":"genre_str", + "value":"Drama", + "count":552, + "pivot":[{ + "field":"directed_by_str", + "value":"Ridley Scott", + "count":5}, + { + "field":"directed_by_str", + "value":"Steven Soderbergh", + "count":5}, + { + "field":"directed_by_str", + "value":"Michael Winterbottom", + "count":4}}]}]}}} + +We've truncated this output as well - you will see a lot of genres and directors in your screen. + +=== Exercise 2 Wrap Up + +In this exercise, we learned a little bit more about how Solr organizes data in the indexes, and how to work with the Schema API to manipulate the schema file. We also learned a bit about facets in Solr, including range facets and pivot facets. In both of these things, we've only scratched the surface of the available options. If you can dream it, it might be possible! + +Like our previous exercise, this data may not be relevant to your needs. We can clean up our work by deleting the collection. To do that, issue this command at the command line: + +`bin/solr delete -c films` + +[[exercise-3]] +== Exercise 3: Index Your Own Data + +For this last exercise, work with a dataset of your choice. This can be files on your local hard drive, a set of data you have worked with before, or maybe a sample of the data you intend to index to Solr for your production application. + +This exercise is intended to get you thinking about what you will need to do for your application: + +* What sorts of data do you need to index? +* What will you need to do to prepare Solr for your data (such as, create specific fields, set up copy fields, determine analysis rules, etc.) +* What kinds of search options do you want to provide to users? +* How much testing will you need to do to ensure everything works the way you expect? + +=== Create Your Own Collection + +Before you get started, create a new collection, named whatever you'd like. In this example, the collection will be named "localDocs"; replace that name with whatever name you choose if you want to. + +`./bin/solr create -c localDocs -s 2 -rf 2` + +Again, as we saw from Exercise 2 above, this will use the `_default` configSet and all the schemaless features it provides. As we noted previously, this may cause problems when we index our data. You may need to iterate on indexing a few times before you get the schema right. + +=== Indexing Ideas + +Solr has lots of ways to index data. Choose one of the approaches below and try it out with your system: + +Local Files with bin/post:: +If you have a local directory of files, the Post Tool (`bin/post`) can index a directory of files. We saw this in action in our first exercise. ++ +We used only JSON, XML and CSV in our exercises, but the Post Tool can also handle HTML, PDF, Microsoft Office formats (such as MS Word), plain text, and more. ++ +In this example, assume there is a directory named "Documents" locally. To index it, we would issue a command like this (correcting the collection name after the `-c` parameter as needed): ++ +`./bin/post -c localDocs ~/Documents` ++ +You may get errors as it works through your documents. These might be caused by the field guessing, or the file type may not be supported. Indexing content such as this demonstrates the need to plan Solr for your data, which requires understanding it and perhaps also some trial and error. + +DataImportHandler:: +Solr includes a tool called the <> which can connect to databases (if you have a jdbc driver), mail servers, or other structured data sources. There are several examples included for feeds, GMail, and a small HSQL database. ++ +The `README.txt` file in `example/example-DIH` will give you details on how to start working with this tool. + +SolrJ:: +SolrJ is a Java-based client for interacting with Solr. Use <> for JVM-based languages or other <> to programmatically create documents to send to Solr. + +Documents Screen:: +Use the Admin UI <> (at http://localhost:8983/solr/#/localDocs/documents) to paste in a document to be indexed, or select `Document Builder` from the `Document Type` dropdown to build a document one field at a time. Click on the btn:[Submit Document] button below the form to index your document. + +=== Updating Data + +You may notice that even if you index content in this tutorial more than once, it does not duplicate the results found. This is because the example Solr schema (a file named either `managed-schema` or `schema.xml`) specifies a `uniqueKey` field called `id`. Whenever you POST commands to Solr to add a document with the same value for the `uniqueKey` as an existing document, it automatically replaces it for you. + +You can see that that has happened by looking at the values for `numDocs` and `maxDoc` in the core-specific Overview section of the Solr Admin UI. + +`numDocs` represents the number of searchable documents in the index (and will be larger than the number of XML, JSON, or CSV files since some files contained more than one document). The `maxDoc` value may be larger as the `maxDoc` count includes logically deleted documents that have not yet been physically removed from the index. You can re-post the sample files over and over again as much as you want and `numDocs` will never increase, because the new documents will constantly be replacing the old. + +Go ahead and edit any of the existing example data files, change some of the data, and re-run the PostTool (`bin/post`) again. You'll see your changes reflected in subsequent searches. + +=== Deleting Data + +If you need to iterate a few times to get your schema right, you may want to delete documents to clear out the collection and try again. Note, however, that merely removing documents doesn't change the underlying field definitions. Essentially, this will allow you to reindex your data after making changes to fields for your needs. + +You can delete data by POSTing a delete command to the update URL and specifying the value of the document's unique key field, or a query that matches multiple documents (be careful with that one!). We can use `bin/post` to delete documents also if we structure the request properly. + +Execute the following command to delete a specific document: + +`bin/post -c localDocs -d "SP2514N"` + +To delete all documents, you can use "delete-by-query" command like: + +`bin/post -c localDocs -d "*:*"` + +You can also modify the above to only delete documents that match a specific query. + +=== Exercise 3 Wrap Up + +At this point, you're ready to start working on your own. + +Jump ahead to the overall <> when you're ready to stop Solr and remove all the examples you worked with and start fresh. + +== Spatial Queries + +Solr has sophisticated geospatial support, including searching within a specified distance range of a given location (or within a bounding box), sorting by distance, or even boosting results by the distance. + +Some of the example techproducts documents we indexed in Exercise 1 have locations associated with them to illustrate the spatial capabilities. To re-index this data, see <>. + +Spatial queries can be combined with any other types of queries, such as in this example of querying for "ipod" within 10 kilometers from San Francisco: + +.Spatial queries and results +image::images/solr-tutorial/tutorial-spatial.png[Solr Quick Start: spatial search] + +This is from Solr's example search UI (called `/browse`), which has a nice feature to show a map for each item and allow easy selection of the location to search near. You can see this yourself by going to in a browser. + +To learn more about Solr's spatial capabilities, see the section <>. + +== Wrapping Up + +If you've run the full set of commands in this quick start guide you have done the following: + +* Launched Solr into SolrCloud mode, two nodes, two collections including shards and replicas +* Indexed several types of files +* Used the Schema API to modify your schema +* Opened the admin console, used its query interface to get results +* Opened the /browse interface to explore Solr's features in a more friendly and familiar interface + +Nice work! + +== Cleanup + +As you work through this tutorial, you may want to stop Solr and reset the environment back to the starting point. The following command line will stop Solr and remove the directories for each of the two nodes that were created all the way back in Exercise 1: + +`bin/solr stop -all ; rm -Rf example/cloud/` + +== Where to next? + +This Guide will be your best resource for learning more about Solr. + +Solr also has a robust community made up of people happy to help you get started. For more information, check out the Solr website's http://lucene.apache.org/solr/resources.html[Resources page]. diff --git a/solr/solr-ref-guide/src/upgrading-solr.adoc b/solr/solr-ref-guide/src/solr-upgrade-notes.adoc similarity index 93% rename from solr/solr-ref-guide/src/upgrading-solr.adoc rename to solr/solr-ref-guide/src/solr-upgrade-notes.adoc index a1db074f31f..86ea1b9fee3 100644 --- a/solr/solr-ref-guide/src/upgrading-solr.adoc +++ b/solr/solr-ref-guide/src/solr-upgrade-notes.adoc @@ -1,6 +1,6 @@ -= Upgrading Solr -:page-shortname: upgrading-solr -:page-permalink: upgrading-solr.html += Solr Upgrade Notes +:page-shortname: solr-upgrade-notes +:page-permalink: solr-upgrade-notes.html // Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information @@ -18,10 +18,16 @@ // specific language governing permissions and limitations // under the License. -If you are already using Solr 6.5, Solr 6.6 should not present any major problems. However, you should review the {solr-javadocs}/changes/Changes.html[`CHANGES.txt`] file found in your Solr package for changes and updates that may effect your existing implementation. Detailed steps for upgrading a Solr cluster can be found in the appendix: <>. +The following notes describe changes to Solr in recent releases that you should be aware of before upgrading. + +These notes are meant to highlight the biggest changes that may impact the largest number of implementations. It is not a comprehensive list of all changes to Solr in any release. + +When planning your Solr upgrade, consider the customizations you have made to your system and review the {solr-javadocs}/changes/Changes.html[`CHANGES.txt`] file found in your Solr package. That file includes all of the changes and updates that may effect your existing implementation. Detailed steps for upgrading a Solr cluster can be found in the appendix: <>. == Upgrading from 6.5.x +If you are already using Solr 6.5, Solr 6.6 should not present any major problems. + * Solr contribs map-reduce, morphlines-core and morphlines-cell have been removed. * JSON Facet API now uses hyper-log-log for numBuckets cardinality calculation and calculates cardinality before filtering buckets by any mincount greater than 1. diff --git a/solr/solr-ref-guide/src/upgrading-a-solr-cluster.adoc b/solr/solr-ref-guide/src/upgrading-a-solr-cluster.adoc index 24a7ac926e2..a6928d21cff 100644 --- a/solr/solr-ref-guide/src/upgrading-a-solr-cluster.adoc +++ b/solr/solr-ref-guide/src/upgrading-a-solr-cluster.adoc @@ -21,24 +21,19 @@ This page covers how to upgrade an existing Solr cluster that was installed using the <>. -[IMPORTANT] -==== - -The steps outlined on this page assume you use the default service name of "```solr```". If you use an alternate service name or Solr installation directory, some of the paths and commands mentioned below will have to be modified accordingly. - -==== +IMPORTANT: The steps outlined on this page assume you use the default service name of `solr`. If you use an alternate service name or Solr installation directory, some of the paths and commands mentioned below will have to be modified accordingly. == Planning Your Upgrade Here is a checklist of things you need to prepare before starting the upgrade process: -1. Examine the <> page to determine if any behavior changes in the new version of Solr will affect your installation. -2. If not using replication (ie: collections with replicationFactor > 1), then you should make a backup of each collection. If all of your collections use replication, then you don't technically need to make a backup since you will be upgrading and verifying each node individually. -3. Determine which Solr node is currently hosting the Overseer leader process in SolrCloud, as you should upgrade this node last. To determine the Overseer, use the Overseer Status API, see: <>. -4. Plan to perform your upgrade during a system maintenance window if possible. You'll be doing a rolling restart of your cluster (each node, one-by-one), but we still recommend doing the upgrade when system usage is minimal. -5. Verify the cluster is currently healthy and all replicas are active, as you should not perform an upgrade on a degraded cluster. -6. Re-build and test all custom server-side components against the new Solr JAR files. -7. Determine the values of the following variables that are used by the Solr Control Scripts: +. Examine the <> page to determine if any behavior changes in the new version of Solr will affect your installation. +. If not using replication (ie: collections with replicationFactor > 1), then you should make a backup of each collection. If all of your collections use replication, then you don't technically need to make a backup since you will be upgrading and verifying each node individually. +. Determine which Solr node is currently hosting the Overseer leader process in SolrCloud, as you should upgrade this node last. To determine the Overseer, use the Overseer Status API, see: <>. +. Plan to perform your upgrade during a system maintenance window if possible. You'll be doing a rolling restart of your cluster (each node, one-by-one), but we still recommend doing the upgrade when system usage is minimal. +. Verify the cluster is currently healthy and all replicas are active, as you should not perform an upgrade on a degraded cluster. +. Re-build and test all custom server-side components against the new Solr JAR files. +. Determine the values of the following variables that are used by the Solr Control Scripts: * `ZK_HOST`: The ZooKeeper connection string your current SolrCloud nodes use to connect to ZooKeeper; this value will be the same for all nodes in the cluster. * `SOLR_HOST`: The hostname each Solr node used to register with ZooKeeper when joining the SolrCloud cluster; this value will be used to set the *host* Java system property when starting the new Solr process. * `SOLR_PORT`: The port each Solr node is listening on, such as 8983. From 5786d092545f323c0c13adcb4633d949d08b1bd3 Mon Sep 17 00:00:00 2001 From: Joel Bernstein Date: Tue, 15 Aug 2017 21:10:09 -0400 Subject: [PATCH 09/28] SOLR-10698: Updated CHANGES.txt --- solr/CHANGES.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index a0e8c6e4992..b258a8b23d3 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -461,6 +461,8 @@ Bug Fixes * SOLR-11235: Some SolrCore metrics should check if core is closed before reporting. (ab) +* SOLR-10698: StreamHandler should allow connections to be closed early (Joel Bernstein, Varun Thacker, Erick Erickson) + Optimizations ---------------------- From ae43ffe354ff1d0389b8586d628f391ca4d85915 Mon Sep 17 00:00:00 2001 From: Shalin Shekhar Mangar Date: Wed, 16 Aug 2017 12:31:46 +0530 Subject: [PATCH 10/28] SOLR-11243: Replica Placement rules are ignored if a cluster policy exists --- solr/CHANGES.txt | 2 + .../java/org/apache/solr/cloud/Assign.java | 10 ++--- .../org/apache/solr/cloud/rule/RulesTest.java | 37 +++++++++++++++++++ 3 files changed, 44 insertions(+), 5 deletions(-) diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index b258a8b23d3..5b5a489eb19 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -463,6 +463,8 @@ Bug Fixes * SOLR-10698: StreamHandler should allow connections to be closed early (Joel Bernstein, Varun Thacker, Erick Erickson) +* SOLR-11243: Replica Placement rules are ignored if a cluster policy exists. (shalin) + Optimizations ---------------------- diff --git a/solr/core/src/java/org/apache/solr/cloud/Assign.java b/solr/core/src/java/org/apache/solr/cloud/Assign.java index 116fce9e6dd..342b3c9ba8f 100644 --- a/solr/core/src/java/org/apache/solr/cloud/Assign.java +++ b/solr/core/src/java/org/apache/solr/cloud/Assign.java @@ -250,7 +250,7 @@ public class Assign { String policyName = message.getStr(POLICY); Map autoScalingJson = Utils.getJson(zkStateReader.getZkClient(), SOLR_AUTOSCALING_CONF_PATH, true); - if (rulesMap == null && policyName == null) { + if (rulesMap == null && policyName == null && autoScalingJson.get(Policy.CLUSTER_POLICY) == null) { int i = 0; List result = new ArrayList<>(); for (String aShard : shardNames) { @@ -274,10 +274,7 @@ public class Assign { } } - if (policyName != null || autoScalingJson.get(Policy.CLUSTER_POLICY) != null) { - return getPositionsUsingPolicy(collectionName, - shardNames, numNrtReplicas, policyName, zkStateReader, nodeList); - } else { + if (rulesMap != null && !rulesMap.isEmpty()) { List rules = new ArrayList<>(); for (Object map : rulesMap) rules.add(new Rule((Map) map)); Map sharVsReplicaCount = new HashMap<>(); @@ -295,6 +292,9 @@ public class Assign { return nodeMappings.entrySet().stream() .map(e -> new ReplicaPosition(e.getKey().shard, e.getKey().index, e.getKey().type, e.getValue())) .collect(Collectors.toList()); + } else { + return getPositionsUsingPolicy(collectionName, + shardNames, numNrtReplicas, policyName, zkStateReader, nodeList); } } diff --git a/solr/core/src/test/org/apache/solr/cloud/rule/RulesTest.java b/solr/core/src/test/org/apache/solr/cloud/rule/RulesTest.java index d4a72bf227e..0f9ec102fe1 100644 --- a/solr/core/src/test/org/apache/solr/cloud/rule/RulesTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/rule/RulesTest.java @@ -23,6 +23,7 @@ import java.util.Map; import org.apache.lucene.util.LuceneTestCase; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.embedded.JettySolrRunner; import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; @@ -40,6 +41,7 @@ import org.slf4j.LoggerFactory; import static org.apache.solr.client.solrj.SolrRequest.METHOD.GET; import static org.apache.solr.client.solrj.SolrRequest.METHOD.POST; +import static org.apache.solr.cloud.autoscaling.AutoScalingHandlerTest.createAutoScalingRequest; import static org.apache.solr.common.params.CommonParams.COLLECTIONS_HANDLER_PATH; import static org.junit.matchers.JUnitMatchers.containsString; @@ -91,6 +93,41 @@ public class RulesTest extends SolrCloudTestCase { } + @Test + public void testPortRuleInPresenceOfClusterPolicy() throws Exception { + JettySolrRunner jetty = cluster.getRandomJetty(random()); + String port = Integer.toString(jetty.getLocalPort()); + + // this cluster policy prohibits having any replicas on a node with the above port + String setClusterPolicyCommand = "{" + + " 'set-cluster-policy': [" + + " {'replica': 0, 'port':'" + port + "'}" + + " ]" + + "}"; + SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setClusterPolicyCommand); + cluster.getSolrClient().request(req); + + // but this collection is created with a replica placement rule that says all replicas must be created + // on a node with above port (in direct conflict with the cluster policy) + String rulesColl = "portRuleColl2"; + CollectionAdminRequest.createCollectionWithImplicitRouter(rulesColl, "conf", "shard1", 2) + .setRule("port:" + port) + .setSnitch("class:ImplicitSnitch") + .process(cluster.getSolrClient()); + + // now we assert that the replica placement rule is used instead of the cluster policy + DocCollection rulesCollection = getCollectionState(rulesColl); + List list = (List) rulesCollection.get("rule"); + assertEquals(1, list.size()); + assertEquals(port, ((Map) list.get(0)).get("port")); + list = (List) rulesCollection.get("snitch"); + assertEquals(1, list.size()); + assertEquals ( "ImplicitSnitch", ((Map)list.get(0)).get("class")); + + boolean allOnExpectedPort = rulesCollection.getReplicas().stream().allMatch(replica -> replica.getNodeName().contains(port)); + assertTrue("Not all replicas were found to be on port: " + port + ". Collection state is: " + rulesCollection, allOnExpectedPort); + } + @Test public void testPortRule() throws Exception { From 8d8c629425d2f0369c08d34baf48654dd5326b0a Mon Sep 17 00:00:00 2001 From: Shalin Shekhar Mangar Date: Wed, 16 Aug 2017 13:09:20 +0530 Subject: [PATCH 11/28] SOLR-11243: Fix for the AutoScalingHandlerTest.testReadApi --- .../cloud/autoscaling/AutoScalingHandlerTest.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/solr/core/src/test/org/apache/solr/cloud/autoscaling/AutoScalingHandlerTest.java b/solr/core/src/test/org/apache/solr/cloud/autoscaling/AutoScalingHandlerTest.java index 9250e8c914c..c752253e51f 100644 --- a/solr/core/src/test/org/apache/solr/cloud/autoscaling/AutoScalingHandlerTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/autoscaling/AutoScalingHandlerTest.java @@ -284,12 +284,24 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase { assertNotNull(violations); assertEquals(0, violations.size()); + String setEmptyClusterPolicyCommand = "{" + + " 'set-cluster-policy': []" + + "}"; + req = createAutoScalingRequest(SolrRequest.METHOD.POST, setEmptyClusterPolicyCommand); + response = solrClient.request(req); + assertEquals(response.get("result").toString(), "success"); + // lets create a collection which violates the rule replicas < 2 CollectionAdminRequest.Create create = CollectionAdminRequest.Create.createCollection("readApiTestViolations", CONFIGSET_NAME, 1, 6); create.setMaxShardsPerNode(10); CollectionAdminResponse adminResponse = create.process(solrClient); assertTrue(adminResponse.isSuccess()); + // reset the original cluster policy + req = createAutoScalingRequest(SolrRequest.METHOD.POST, setClusterPolicyCommand); + response = solrClient.request(req); + assertEquals(response.get("result").toString(), "success"); + // get the diagnostics output again req = createAutoScalingRequest(SolrRequest.METHOD.GET, "/diagnostics", null); response = solrClient.request(req); From 755cffdec8462bcfb2c8bd26e60706cd5359a10f Mon Sep 17 00:00:00 2001 From: Andrzej Bialecki Date: Wed, 16 Aug 2017 10:53:40 +0200 Subject: [PATCH 12/28] Remove stray imports. --- .../apache/solr/metrics/reporters/SolrJmxReporterCloudTest.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterCloudTest.java b/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterCloudTest.java index 664fbcc0929..0ae0289c1fe 100644 --- a/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterCloudTest.java +++ b/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterCloudTest.java @@ -17,7 +17,6 @@ package org.apache.solr.metrics.reporters; import javax.management.MBeanServer; -import javax.management.MBeanServerFactory; import javax.management.ObjectInstance; import javax.management.Query; import javax.management.QueryExp; @@ -36,7 +35,6 @@ import org.apache.solr.common.params.CommonParams; import org.apache.solr.metrics.SolrMetricManager; import org.apache.solr.metrics.SolrMetricReporter; import org.apache.solr.metrics.reporters.jmx.JmxMetricsReporter; -import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.slf4j.Logger; From 7a576ffa1b1f4b9632ff2767686fe203949c2aaf Mon Sep 17 00:00:00 2001 From: Shalin Shekhar Mangar Date: Wed, 16 Aug 2017 17:26:32 +0530 Subject: [PATCH 13/28] SOLR-11239: A special value of -1 can be specified for 'maxShardsPerNode' to denote that there is no limit. The bin/solr script send maxShardsPerNode=-1 when creating collections. The use of maxShardsPerNode is not supported when a cluster policy is in effect or when a collection specific policy is specified during collection creation --- solr/CHANGES.txt | 9 ++ .../solr/cloud/CreateCollectionCmd.java | 22 +++- .../java/org/apache/solr/util/SolrCLI.java | 4 - .../autoscaling/AutoScalingHandlerTest.java | 22 +++- .../cloud/autoscaling/TestPolicyCloud.java | 1 - .../solr/util/TestSolrCLIRunExample.java | 119 +++++++++++++++++- 6 files changed, 168 insertions(+), 9 deletions(-) diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 5b5a489eb19..a90f07841b3 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -292,6 +292,9 @@ Upgrading from Solr 6.x * SOLR-11023: EnumField has been deprecated in favor of new EnumFieldType. +* SOLR-11239: The use of maxShardsPerNode is not supported when a cluster policy is in effect or + when a collection specific policy is specified during collection creation. + New Features ---------------------- * SOLR-9857, SOLR-9858: Collect aggregated metrics from nodes and shard leaders in overseer. (ab) @@ -668,6 +671,12 @@ Other Changes * SOLR-10821: Ref guide documentation for Autoscaling (Noble Paul, Cassandra Targett, shalin) +* SOLR-11239: A special value of -1 can be specified for 'maxShardsPerNode' to denote that + there is no limit. The bin/solr script send maxShardsPerNode=-1 when creating collections. The + use of maxShardsPerNode is not supported when a cluster policy is in effect or when a + collection specific policy is specified during collection creation. + (Noble Paul, shalin) + ================== 6.7.0 ================== Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release. diff --git a/solr/core/src/java/org/apache/solr/cloud/CreateCollectionCmd.java b/solr/core/src/java/org/apache/solr/cloud/CreateCollectionCmd.java index fc96a61e13f..970327f501e 100644 --- a/solr/core/src/java/org/apache/solr/cloud/CreateCollectionCmd.java +++ b/solr/core/src/java/org/apache/solr/cloud/CreateCollectionCmd.java @@ -29,6 +29,7 @@ import java.util.Map; import java.util.Properties; import java.util.concurrent.TimeUnit; +import org.apache.solr.client.solrj.cloud.autoscaling.Policy; import org.apache.solr.cloud.OverseerCollectionMessageHandler.Cmd; import org.apache.solr.cloud.overseer.ClusterStateMutator; import org.apache.solr.common.cloud.ReplicaPosition; @@ -85,6 +86,7 @@ public class CreateCollectionCmd implements Cmd { if (clusterState.hasCollection(collectionName)) { throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "collection already exists: " + collectionName); } + boolean usePolicyFramework = usePolicyFramework(ocmh.zkStateReader, message); String configName = getConfigName(collectionName, message); if (configName == null) { @@ -118,7 +120,10 @@ public class CreateCollectionCmd implements Cmd { } int maxShardsPerNode = message.getInt(MAX_SHARDS_PER_NODE, 1); - + if (usePolicyFramework && message.getStr(MAX_SHARDS_PER_NODE) != null && maxShardsPerNode > 0) { + throw new SolrException(ErrorCode.BAD_REQUEST, "'maxShardsPerNode>0' is not supported when autoScaling policies are used"); + } + if (maxShardsPerNode == -1 || usePolicyFramework) maxShardsPerNode = Integer.MAX_VALUE; if (numNrtReplicas + numTlogReplicas <= 0) { throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, NRT_REPLICAS + " + " + TLOG_REPLICAS + " must be greater than 0"); } @@ -149,7 +154,9 @@ public class CreateCollectionCmd implements Cmd { + "). It's unusual to run two replica of the same slice on the same Solr-instance."); } - int maxShardsAllowedToCreate = maxShardsPerNode * nodeList.size(); + int maxShardsAllowedToCreate = maxShardsPerNode == Integer.MAX_VALUE ? + Integer.MAX_VALUE : + maxShardsPerNode * nodeList.size(); int requestedShardsToCreate = numSlices * totalNumReplicas; if (maxShardsAllowedToCreate < requestedShardsToCreate) { throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "Cannot create collection " + collectionName + ". Value of " @@ -484,4 +491,15 @@ public class CreateCollectionCmd implements Cmd { "Could not find configName for collection " + collection + " found:" + configNames); } } + + public static boolean usePolicyFramework(ZkStateReader zkStateReader, ZkNodeProps message) { + Map autoScalingJson = Collections.emptyMap(); + try { + autoScalingJson = Utils.getJson(zkStateReader.getZkClient(), SOLR_AUTOSCALING_CONF_PATH, true); + } catch (Exception e) { + return false; + } + return autoScalingJson.get(Policy.CLUSTER_POLICY) != null || message.getStr(Policy.POLICY) != null; + } + } diff --git a/solr/core/src/java/org/apache/solr/util/SolrCLI.java b/solr/core/src/java/org/apache/solr/util/SolrCLI.java index da53afff09c..e696019f73a 100644 --- a/solr/core/src/java/org/apache/solr/util/SolrCLI.java +++ b/solr/core/src/java/org/apache/solr/util/SolrCLI.java @@ -1501,10 +1501,6 @@ public class SolrCLI { if (cli.hasOption("maxShardsPerNode")) { maxShardsPerNode = Integer.parseInt(cli.getOptionValue("maxShardsPerNode")); - } else { - // need number of live nodes to determine maxShardsPerNode if it is not set - int numNodes = liveNodes.size(); - maxShardsPerNode = ((numShards*replicationFactor)+numNodes-1)/numNodes; } String confname = cli.getOptionValue("confname"); diff --git a/solr/core/src/test/org/apache/solr/cloud/autoscaling/AutoScalingHandlerTest.java b/solr/core/src/test/org/apache/solr/cloud/autoscaling/AutoScalingHandlerTest.java index c752253e51f..719b0accd45 100644 --- a/solr/core/src/test/org/apache/solr/cloud/autoscaling/AutoScalingHandlerTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/autoscaling/AutoScalingHandlerTest.java @@ -291,9 +291,24 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase { response = solrClient.request(req); assertEquals(response.get("result").toString(), "success"); + req = createAutoScalingRequest(SolrRequest.METHOD.POST, "{set-cluster-policy : []}"); + response = solrClient.request(req); + assertEquals(response.get("result").toString(), "success"); + + // lets create a collection which violates the rule replicas < 2 + try { + CollectionAdminRequest.Create create = CollectionAdminRequest.Create.createCollection("readApiTestViolations", CONFIGSET_NAME, 1, 6); + create.setMaxShardsPerNode(10); + create.process(solrClient); + fail(); + } catch (Exception e) { + assertTrue(e.getMessage().contains("'maxShardsPerNode>0' is not supported when autoScaling policies are used")); + + } + + // lets create a collection which violates the rule replicas < 2 CollectionAdminRequest.Create create = CollectionAdminRequest.Create.createCollection("readApiTestViolations", CONFIGSET_NAME, 1, 6); - create.setMaxShardsPerNode(10); CollectionAdminResponse adminResponse = create.process(solrClient); assertTrue(adminResponse.isSuccess()); @@ -302,6 +317,11 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase { response = solrClient.request(req); assertEquals(response.get("result").toString(), "success"); + req = createAutoScalingRequest(SolrRequest.METHOD.POST, setClusterPolicyCommand); + response = solrClient.request(req); + assertEquals(response.get("result").toString(), "success"); + + // get the diagnostics output again req = createAutoScalingRequest(SolrRequest.METHOD.GET, "/diagnostics", null); response = solrClient.request(req); diff --git a/solr/core/src/test/org/apache/solr/cloud/autoscaling/TestPolicyCloud.java b/solr/core/src/test/org/apache/solr/cloud/autoscaling/TestPolicyCloud.java index cb519f2513a..f657ad4d3ff 100644 --- a/solr/core/src/test/org/apache/solr/cloud/autoscaling/TestPolicyCloud.java +++ b/solr/core/src/test/org/apache/solr/cloud/autoscaling/TestPolicyCloud.java @@ -104,7 +104,6 @@ public class TestPolicyCloud extends SolrCloudTestCase { String collectionName = "testCreateCollectionSplitShard"; CollectionAdminRequest.createCollection(collectionName, "conf", 1, 2) .setPolicy("c1") - .setMaxShardsPerNode(10) .process(cluster.getSolrClient()); DocCollection docCollection = getCollectionState(collectionName); diff --git a/solr/core/src/test/org/apache/solr/util/TestSolrCLIRunExample.java b/solr/core/src/test/org/apache/solr/util/TestSolrCLIRunExample.java index 0c2421fc470..89008517f8b 100644 --- a/solr/core/src/test/org/apache/solr/util/TestSolrCLIRunExample.java +++ b/solr/core/src/test/org/apache/solr/util/TestSolrCLIRunExample.java @@ -40,6 +40,7 @@ import org.apache.commons.exec.ExecuteResultHandler; import org.apache.lucene.util.LuceneTestCase; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.SolrQuery; +import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.embedded.JettyConfig; import org.apache.solr.client.solrj.embedded.JettySolrRunner; import org.apache.solr.client.solrj.impl.CloudSolrClient; @@ -47,6 +48,7 @@ import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.cloud.MiniSolrCloudCluster; import org.apache.solr.common.SolrInputDocument; +import org.apache.solr.common.util.NamedList; import org.junit.After; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -54,6 +56,8 @@ import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static org.apache.solr.cloud.autoscaling.AutoScalingHandlerTest.createAutoScalingRequest; + /** * Tests the SolrCLI.RunExampleTool implementation that supports bin/solr -e [example] */ @@ -479,6 +483,115 @@ public class TestSolrCLIRunExample extends SolrTestCaseJ4 { } } + File node1SolrHome = new File(solrExampleDir, "cloud/node1/solr"); + if (!node1SolrHome.isDirectory()) { + fail(node1SolrHome.getAbsolutePath() + " not found! run cloud example failed; tool output: " + toolOutput); + } + + // delete the collection + SolrCLI.DeleteTool deleteTool = new SolrCLI.DeleteTool(stdoutSim); + String[] deleteArgs = new String[]{"-name", collectionName, "-solrUrl", solrUrl}; + deleteTool.runTool( + SolrCLI.processCommandLineArgs(SolrCLI.joinCommonAndToolOptions(deleteTool.getOptions()), deleteArgs)); + + // dump all the output written by the SolrCLI commands to stdout + //System.out.println(toolOutput); + + // stop the test instance + executor.execute(org.apache.commons.exec.CommandLine.parse("bin/solr stop -p " + bindPort)); + } + + @Test + public void testInteractiveSolrCloudExampleWithAutoScalingPolicy() throws Exception { + File solrHomeDir = new File(ExternalPaths.SERVER_HOME); + if (!solrHomeDir.isDirectory()) + fail(solrHomeDir.getAbsolutePath() + " not found and is required to run this test!"); + + Path tmpDir = createTempDir(); + File solrExampleDir = tmpDir.toFile(); + + File solrServerDir = solrHomeDir.getParentFile(); + + String[] toolArgs = new String[]{ + "-example", "cloud", + "-serverDir", solrServerDir.getAbsolutePath(), + "-exampleDir", solrExampleDir.getAbsolutePath() + }; + + int bindPort = -1; + try (ServerSocket socket = new ServerSocket(0)) { + bindPort = socket.getLocalPort(); + } + + String collectionName = "testCloudExamplePrompt1"; + + // this test only support launching one SolrCloud node due to how MiniSolrCloudCluster works + // and the need for setting the host and port system properties ... + String userInput = "1\n" + bindPort + "\n" + collectionName + "\n2\n2\n_default\n"; + + // simulate user input from stdin + InputStream userInputSim = new ByteArrayInputStream(userInput.getBytes(StandardCharsets.UTF_8)); + + // capture tool output to stdout + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + PrintStream stdoutSim = new PrintStream(baos, true, StandardCharsets.UTF_8.name()); + + RunExampleExecutor executor = new RunExampleExecutor(stdoutSim); + closeables.add(executor); + + SolrCLI.RunExampleTool tool = new SolrCLI.RunExampleTool(executor, userInputSim, stdoutSim); + try { + tool.runTool(SolrCLI.processCommandLineArgs(SolrCLI.joinCommonAndToolOptions(tool.getOptions()), toolArgs)); + } catch (Exception e) { + System.err.println("RunExampleTool failed due to: " + e + + "; stdout from tool prior to failure: " + baos.toString(StandardCharsets.UTF_8.name())); + throw e; + } + + String toolOutput = baos.toString(StandardCharsets.UTF_8.name()); + + // verify Solr is running on the expected port and verify the collection exists + String solrUrl = "http://localhost:" + bindPort + "/solr"; + String collectionListUrl = solrUrl + "/admin/collections?action=list"; + if (!SolrCLI.safeCheckCollectionExists(collectionListUrl, collectionName)) { + fail("After running Solr cloud example, test collection '" + collectionName + + "' not found in Solr at: " + solrUrl + "; tool output: " + toolOutput); + } + + // index some docs - to verify all is good for both shards + CloudSolrClient cloudClient = null; + + try { + cloudClient = getCloudSolrClient(executor.solrCloudCluster.getZkServer().getZkAddress()); + String setClusterPolicyCommand = "{" + + " 'set-cluster-policy': [" + + " {'cores':'<10', 'node':'#ANY'}," + + " {'replica':'<2', 'shard': '#EACH', 'node': '#ANY'}," + + " {'nodeRole':'overseer', 'replica':0}" + + " ]" + + "}"; + SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setClusterPolicyCommand); + NamedList response = cloudClient.request(req); + assertEquals(response.get("result").toString(), "success"); + SolrCLI.CreateCollectionTool createCollectionTool = new SolrCLI.CreateCollectionTool(stdoutSim); + String[] createArgs = new String[]{"create_collection", "-name", "newColl", "-configsetsDir", "_default", "-solrUrl", solrUrl}; + createCollectionTool.runTool( + SolrCLI.processCommandLineArgs(SolrCLI.joinCommonAndToolOptions(createCollectionTool.getOptions()), createArgs)); + solrUrl = "http://localhost:" + bindPort + "/solr"; + collectionListUrl = solrUrl + "/admin/collections?action=list"; + if (!SolrCLI.safeCheckCollectionExists(collectionListUrl, "newColl")) { + toolOutput = baos.toString(StandardCharsets.UTF_8.name()); + fail("After running Solr cloud example, test collection 'newColl' not found in Solr at: " + solrUrl + "; tool output: " + toolOutput); + } + } finally { + if (cloudClient != null) { + try { + cloudClient.close(); + } catch (Exception ignore) { + } + } + } + File node1SolrHome = new File(solrExampleDir, "cloud/node1/solr"); if (!node1SolrHome.isDirectory()) { fail(node1SolrHome.getAbsolutePath()+" not found! run cloud example failed; tool output: "+toolOutput); @@ -487,6 +600,10 @@ public class TestSolrCLIRunExample extends SolrTestCaseJ4 { // delete the collection SolrCLI.DeleteTool deleteTool = new SolrCLI.DeleteTool(stdoutSim); String[] deleteArgs = new String[] { "-name", collectionName, "-solrUrl", solrUrl }; + deleteTool.runTool( + SolrCLI.processCommandLineArgs(SolrCLI.joinCommonAndToolOptions(deleteTool.getOptions()), deleteArgs)); + deleteTool = new SolrCLI.DeleteTool(stdoutSim); + deleteArgs = new String[]{"-name", "newColl", "-solrUrl", solrUrl}; deleteTool.runTool( SolrCLI.processCommandLineArgs(SolrCLI.joinCommonAndToolOptions(deleteTool.getOptions()), deleteArgs)); @@ -496,7 +613,7 @@ public class TestSolrCLIRunExample extends SolrTestCaseJ4 { // stop the test instance executor.execute(org.apache.commons.exec.CommandLine.parse("bin/solr stop -p "+bindPort)); } - + @Test public void testFailExecuteScript() throws Exception { File solrHomeDir = new File(ExternalPaths.SERVER_HOME); From b406b43dbc385a392fc4d5e7ed16f803bde18582 Mon Sep 17 00:00:00 2001 From: Joel Bernstein Date: Wed, 16 Aug 2017 09:39:52 -0400 Subject: [PATCH 14/28] SOLR-10651: Statistical function docs for 7.0 Part 2 --- .../solr-ref-guide/src/stream-evaluators.adoc | 156 ++++++++++++++++-- 1 file changed, 143 insertions(+), 13 deletions(-) diff --git a/solr/solr-ref-guide/src/stream-evaluators.adoc b/solr/solr-ref-guide/src/stream-evaluators.adoc index 5f25585da75..02b7111ffcb 100644 --- a/solr/solr-ref-guide/src/stream-evaluators.adoc +++ b/solr/solr-ref-guide/src/stream-evaluators.adoc @@ -269,31 +269,158 @@ if(gt(fieldA,fieldB),floor(fieldA),floor(fieldB)) // if fieldA > fieldB then ret == sin -//TODO +The `sin` function returns the trigonometirc sine of a number. + +=== sin Parameters + +* `Field Name | Raw Number | Number Evaluator`: The value to return the sine of. + +=== sin Syntax + +[source,text] +---- +sin(100.4) // returns the sine of 100.4 +sine(fieldA) // returns the sine for fieldA. +if(gt(fieldA,fieldB),sin(fieldA),sin(fieldB)) // if fieldA > fieldB then return the sine of fieldA, else return the sine of fieldB +---- + == asin -//TODO +The `asin` function returns the trigonometirc arcsine of a number. + +=== asin Parameters + +* `Field Name | Raw Number | Number Evaluator`: The value to return the arcsine of. + +=== asin Syntax + +[source,text] +---- +asin(100.4) // returns the sine of 100.4 +asine(fieldA) // returns the sine for fieldA. +if(gt(fieldA,fieldB),asin(fieldA),asin(fieldB)) // if fieldA > fieldB then return the asine of fieldA, else return the asine of fieldB +---- + + +== hsin +The `hsin` function returns the trigonometirc hyperbolic sine of a number. + +=== hsin Parameters + +* `Field Name | Raw Number | Number Evaluator`: The value to return the hyperbolic sine of. + +=== hsin Syntax + +[source,text] +---- +hsin(100.4) // returns the hsine of 100.4 +hsine(fieldA) // returns the hsine for fieldA. +if(gt(fieldA,fieldB),sin(fieldA),sin(fieldB)) // if fieldA > fieldB then return the hsine of fieldA, else return the hsine of fieldB +---- -== sinh -//TODO == cos -//TODO +The `cos` function returns the trigonometirc cosine of a number. + +=== cos Parameters + +* `Field Name | Raw Number | Number Evaluator`: The value to return the hyperbolic cosine of. + +=== cos Syntax + +[source,text] +---- +cos(100.4) // returns the arccosine of 100.4 +cos(fieldA) // returns the arccosine for fieldA. +if(gt(fieldA,fieldB),cos(fieldA),cos(fieldB)) // if fieldA > fieldB then return the arccosine of fieldA, else return the cosine of fieldB +---- == acos -//TODO + +The `acos` function returns the trigonometirc arccosine of a number. + +=== acos Parameters + +* `Field Name | Raw Number | Number Evaluator`: The value to return the arccosine of. + +=== acos Syntax + +[source,text] +---- +acos(100.4) // returns the arccosine of 100.4 +acos(fieldA) // returns the arccosine for fieldA. +if(gt(fieldA,fieldB),sin(fieldA),sin(fieldB)) // if fieldA > fieldB then return the arccosine of fieldA, else return the arccosine of fieldB +---- == atan -//TODO + +The `atan` function returns the trigonometirc arctangent of a number. + +=== atan Parameters + +* `Field Name | Raw Number | Number Evaluator`: The value to return the arctangent of. + +=== atan Syntax + +[source,text] +---- +atan(100.4) // returns the arctangent of 100.4 +atan(fieldA) // returns the arctangent for fieldA. +if(gt(fieldA,fieldB),atan(fieldA),atan(fieldB)) // if fieldA > fieldB then return the arctanget of fieldA, else return the arctangent of fieldB +---- == round -//TODO + +The `round` function returns the closest whole number to the argument + +=== round Parameters + +* `Field Name | Raw Number | Number Evaluator`: The value to return the square root of. + +=== round Syntax + +[source,text] +---- +round(100.4) +round(fieldA) +if(gt(fieldA,fieldB),sqrt(fieldA),sqrt(fieldB)) // if fieldA > fieldB then return the round of fieldA, else return the round of fieldB +---- == sqrt -//TODO + +The `sqrt` function returns the trigonometirc square root of a number. + +=== sqrt Parameters + +* `Field Name | Raw Number | Number Evaluator`: The value to return the square root of. + +=== sqrt Syntax + +[source,text] +---- +sqrt(100.4) // returns the square root of 100.4 +sqrt(fieldA) // returns the square root for fieldA. +if(gt(fieldA,fieldB),sqrt(fieldA),sqrt(fieldB)) // if fieldA > fieldB then return the sqrt of fieldA, else return the sqrt of fieldB +---- == cbrt +The `cbrt` function returns the trigonometirc cube root of a number. + +=== cbrt Parameters + +* `Field Name | Raw Number | Number Evaluator`: The value to return the cube root of. + +=== cbrt Syntax + +[source,text] +---- +cbrt(100.4) // returns the square root of 100.4 +cbrt(fieldA) // returns the square root for fieldA. +if(gt(fieldA,fieldB),cbrt(fieldA),cbrt(fieldB)) // if fieldA > fieldB then return the cbrt of fieldA, else return the cbrt of fieldB +---- + + == and The `and` function will return the logical AND of at least 2 boolean parameters. The function will fail to execute if any parameters are non-boolean or null. Returns a boolean value. @@ -550,7 +677,6 @@ orignal array by the window size. movingAverage(numericArray, 30) - == anova The `anova` function calculates the analysis of variance for two or more numeric arrays. @@ -597,6 +723,10 @@ The array function returns an array of numerics or other objects including other * `numeric` | `array` ... +=== array Returns + +array + === array Syntax array(1, 2, 3) // Array of numerics @@ -705,7 +835,7 @@ The `distance` function calculates the Euclidian distance of two numeric arrays. number -=== distance syntax +=== distance Syntax distance(numericArray1, numuericArray2)) @@ -722,7 +852,7 @@ The `scale` function multiplies all the elements of an array by a number. A numeric array with the scaled values -=== scale syntax +=== scale Syntax scale(number, numericArray) @@ -755,7 +885,7 @@ The `length` function returns the length of a numeric array. integer -=== length syntax +=== length Syntax length(numericArray) From 32ddb5b921b59ea809afb6f387b1d135922940f6 Mon Sep 17 00:00:00 2001 From: Erick Erickson Date: Wed, 16 Aug 2017 14:43:07 -0700 Subject: [PATCH 15/28] Moved recent backports to Solr 6.6.1 to the proper section --- solr/CHANGES.txt | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index a90f07841b3..76de975184f 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -128,9 +128,6 @@ Other Changes * SOLR-11106: TestLBHttpSolrClient.testReliablity takes 30 seconds because of the wrong server name (Kensho Hirasawa via Erick Erickson) -* SOLR-11122: Creating a core should write a core.properties file first and clean up on failure - (Erick Erickson) - * SOLR-10338: Configure SecureRandom non blocking for tests. (Mihaly Toth, hossman, Ishan Chattopadhyaya, via Mark Miller) * SOLR-10916: Convert tests that extend LuceneTestCase and use MiniSolrCloudCluster @@ -712,9 +709,6 @@ New Features * SOLR-10307: Allow Passing SSL passwords through environment variables. (Mano Kovacs, Michael Suzuki via Mark Miller) -* SOLR-10721: Provide a way to know when Core Discovery is finished and when all async cores are done loading - (Erick Erickson) - * SOLR-10379: Add ManagedSynonymGraphFilterFactory, deprecate ManagedSynonymFilterFactory. (Steve Rowe) * SOLR-10479: Adds support for HttpShardHandlerFactory.loadBalancerRequests(MinimumAbsolute|MaximumFraction) @@ -804,20 +798,10 @@ when using one of Exact*StatsCache (Mikhail Khludnev) * SOLR-10963: Fix example json in MultipleAdditiveTreesModel javadocs. (Stefan Langenmaier via Christine Poerschke) -* SOLR-10910: Clean up a few details left over from pluggable transient core and untangling - CoreDescriptor/CoreContainer references (Erick Erickson) - * SOLR-10914: RecoveryStrategy's sendPrepRecoveryCmd can get stuck for 5 minutes if leader is unloaded. (shalin) -* SOLR-11024: ParallelStream should set the StreamContext when constructing SolrStreams (Joel Bernstein) - -* SOLR-10908: CloudSolrStream.toExpression incorrectly handles fq clauses (Rohit Singh via Erick Erickson) - * SOLR-11198: downconfig downloads empty file as folder (Erick Erickson) -* SOLR-11177: CoreContainer.load needs to send lazily loaded core descriptors to the proper list rather than send - them all to the transient lists. (Erick Erickson) (note, not in 7.0, is in 7.1) - Optimizations ---------------------- * SOLR-10634: JSON Facet API: When a field/terms facet will retrieve all buckets (i.e. limit:-1) @@ -885,6 +869,23 @@ Bug Fixes * SOLR-10857: standalone Solr loads UNLOADed core on request (Erick Erickson, Mikhail Khludnev) +* SOLR-11024: ParallelStream should set the StreamContext when constructing SolrStreams (Joel Bernstein) + +* SOLR-10908: CloudSolrStream.toExpression incorrectly handles fq clauses (Rohit Singh via Erick Erickson) + +* SOLR-11177: CoreContainer.load needs to send lazily loaded core descriptors to the proper list rather than send + them all to the transient lists. (Erick Erickson) (note, not in 7.0, is in 7.1) + +* SOLR-11122: Creating a core should write a core.properties file first and clean up on failure + (Erick Erickson) + +* SOLR-10910: Clean up a few details left over from pluggable transient core and untangling + CoreDescriptor/CoreContainer references (Erick Erickson) + +* SOLR-10721: Provide a way to know when Core Discovery is finished and when all async cores are done loading + (Erick Erickson) + + ================== 6.6.0 ================== Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release. From ac97931c7e5800b2e314545f54c4d524eb69b73b Mon Sep 17 00:00:00 2001 From: Erick Erickson Date: Wed, 16 Aug 2017 16:01:32 -0700 Subject: [PATCH 16/28] SOLR-11069: CDCR bootstrapping can get into an infinite loop when a core is reloaded --- solr/CHANGES.txt | 1 + .../solr/handler/CdcrRequestHandler.java | 28 ++-- .../solr/update/DefaultSolrCoreState.java | 39 +++++ .../org/apache/solr/update/SolrCoreState.java | 17 ++ .../cross-data-center-replication-cdcr.adoc | 152 ++++++++++-------- 5 files changed, 159 insertions(+), 78 deletions(-) diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 76de975184f..5d574168373 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -885,6 +885,7 @@ Bug Fixes * SOLR-10721: Provide a way to know when Core Discovery is finished and when all async cores are done loading (Erick Erickson) +* SOLR-11069: CDCR bootstrapping can get into an infinite loop when a core is reloaded (Amrit Sarkar, Erick Erickson) ================== 6.6.0 ================== diff --git a/solr/core/src/java/org/apache/solr/handler/CdcrRequestHandler.java b/solr/core/src/java/org/apache/solr/handler/CdcrRequestHandler.java index 38d386670fb..65a4cec72a2 100644 --- a/solr/core/src/java/org/apache/solr/handler/CdcrRequestHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/CdcrRequestHandler.java @@ -30,7 +30,6 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; import java.util.concurrent.RejectedExecutionException; -import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.locks.Lock; import org.apache.solr.client.solrj.SolrRequest; @@ -61,6 +60,7 @@ import org.apache.solr.request.SolrRequestHandler; import org.apache.solr.request.SolrRequestInfo; import org.apache.solr.response.SolrQueryResponse; import org.apache.solr.update.CdcrUpdateLog; +import org.apache.solr.update.SolrCoreState; import org.apache.solr.update.UpdateLog; import org.apache.solr.update.VersionInfo; import org.apache.solr.update.processor.DistributedUpdateProcessor; @@ -617,10 +617,6 @@ public class CdcrRequestHandler extends RequestHandlerBase implements SolrCoreAw rsp.add(CdcrParams.ERRORS, hosts); } - private AtomicBoolean running = new AtomicBoolean(); - private volatile Future bootstrapFuture; - private volatile BootstrapCallable bootstrapCallable; - private void handleBootstrapAction(SolrQueryRequest req, SolrQueryResponse rsp) throws IOException, SolrServerException { String collectionName = core.getCoreDescriptor().getCloudDescriptor().getCollectionName(); String shard = core.getCoreDescriptor().getCloudDescriptor().getShardId(); @@ -633,14 +629,19 @@ public class CdcrRequestHandler extends RequestHandlerBase implements SolrCoreAw Runnable runnable = () -> { Lock recoveryLock = req.getCore().getSolrCoreState().getRecoveryLock(); boolean locked = recoveryLock.tryLock(); + SolrCoreState coreState = core.getSolrCoreState(); try { if (!locked) { handleCancelBootstrap(req, rsp); } else if (leaderStateManager.amILeader()) { - running.set(true); + coreState.setCdcrBootstrapRunning(true); + //running.set(true); String masterUrl = req.getParams().get(ReplicationHandler.MASTER_URL); - bootstrapCallable = new BootstrapCallable(masterUrl, core); - bootstrapFuture = core.getCoreContainer().getUpdateShardHandler().getRecoveryExecutor().submit(bootstrapCallable); + BootstrapCallable bootstrapCallable = new BootstrapCallable(masterUrl, core); + coreState.setCdcrBootstrapCallable(bootstrapCallable); + Future bootstrapFuture = core.getCoreContainer().getUpdateShardHandler().getRecoveryExecutor() + .submit(bootstrapCallable); + coreState.setCdcrBootstrapFuture(bootstrapFuture); try { bootstrapFuture.get(); } catch (InterruptedException e) { @@ -654,7 +655,7 @@ public class CdcrRequestHandler extends RequestHandlerBase implements SolrCoreAw } } finally { if (locked) { - running.set(false); + coreState.setCdcrBootstrapRunning(false); recoveryLock.unlock(); } } @@ -670,19 +671,20 @@ public class CdcrRequestHandler extends RequestHandlerBase implements SolrCoreAw } private void handleCancelBootstrap(SolrQueryRequest req, SolrQueryResponse rsp) { - BootstrapCallable callable = this.bootstrapCallable; + BootstrapCallable callable = (BootstrapCallable)core.getSolrCoreState().getCdcrBootstrapCallable(); IOUtils.closeQuietly(callable); rsp.add(RESPONSE_STATUS, "cancelled"); } private void handleBootstrapStatus(SolrQueryRequest req, SolrQueryResponse rsp) throws IOException, SolrServerException { - if (running.get()) { + SolrCoreState coreState = core.getSolrCoreState(); + if (coreState.getCdcrBootstrapRunning()) { rsp.add(RESPONSE_STATUS, RUNNING); return; } - Future future = bootstrapFuture; - BootstrapCallable callable = this.bootstrapCallable; + Future future = coreState.getCdcrBootstrapFuture(); + BootstrapCallable callable = (BootstrapCallable)coreState.getCdcrBootstrapCallable(); if (future == null) { rsp.add(RESPONSE_STATUS, "notfound"); rsp.add(RESPONSE_MESSAGE, "No bootstrap found in running, completed or failed states"); diff --git a/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java b/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java index e38c28cc2e1..b418a1919fa 100644 --- a/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java +++ b/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java @@ -18,10 +18,12 @@ package org.apache.solr.update; import java.io.IOException; import java.lang.invoke.MethodHandles; +import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.concurrent.RejectedExecutionException; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; @@ -77,6 +79,13 @@ public final class DefaultSolrCoreState extends SolrCoreState implements Recover protected final ReentrantLock commitLock = new ReentrantLock(); + + private AtomicBoolean cdcrRunning = new AtomicBoolean(); + + private volatile Future cdcrBootstrapFuture; + + private volatile Callable cdcrBootstrapCallable; + @Deprecated public DefaultSolrCoreState(DirectoryFactory directoryFactory) { this(directoryFactory, new RecoveryStrategy.Builder()); @@ -416,4 +425,34 @@ public final class DefaultSolrCoreState extends SolrCoreState implements Recover public Lock getRecoveryLock() { return recoveryLock; } + + @Override + public boolean getCdcrBootstrapRunning() { + return cdcrRunning.get(); + } + + @Override + public void setCdcrBootstrapRunning(boolean cdcrRunning) { + this.cdcrRunning.set(cdcrRunning); + } + + @Override + public Future getCdcrBootstrapFuture() { + return cdcrBootstrapFuture; + } + + @Override + public void setCdcrBootstrapFuture(Future cdcrBootstrapFuture) { + this.cdcrBootstrapFuture = cdcrBootstrapFuture; + } + + @Override + public Callable getCdcrBootstrapCallable() { + return cdcrBootstrapCallable; + } + + @Override + public void setCdcrBootstrapCallable(Callable cdcrBootstrapCallable) { + this.cdcrBootstrapCallable = cdcrBootstrapCallable; + } } diff --git a/solr/core/src/java/org/apache/solr/update/SolrCoreState.java b/solr/core/src/java/org/apache/solr/update/SolrCoreState.java index 31dd66af773..9da25161a54 100644 --- a/solr/core/src/java/org/apache/solr/update/SolrCoreState.java +++ b/solr/core/src/java/org/apache/solr/update/SolrCoreState.java @@ -18,6 +18,8 @@ package org.apache.solr.update; import java.io.IOException; import java.lang.invoke.MethodHandles; +import java.util.concurrent.Callable; +import java.util.concurrent.Future; import java.util.concurrent.locks.Lock; import org.apache.lucene.index.IndexWriter; @@ -177,4 +179,19 @@ public abstract class SolrCoreState { } public abstract Lock getRecoveryLock(); + + // These are needed to properly synchronize the bootstrapping when the + // in the target DC require a full sync. + public abstract boolean getCdcrBootstrapRunning(); + + public abstract void setCdcrBootstrapRunning(boolean cdcrRunning); + + public abstract Future getCdcrBootstrapFuture(); + + public abstract void setCdcrBootstrapFuture(Future cdcrBootstrapFuture); + + public abstract Callable getCdcrBootstrapCallable(); + + public abstract void setCdcrBootstrapCallable(Callable cdcrBootstrapCallable); + } diff --git a/solr/solr-ref-guide/src/cross-data-center-replication-cdcr.adoc b/solr/solr-ref-guide/src/cross-data-center-replication-cdcr.adoc index 15d5ac8581a..44a63de2cf5 100644 --- a/solr/solr-ref-guide/src/cross-data-center-replication-cdcr.adoc +++ b/solr/solr-ref-guide/src/cross-data-center-replication-cdcr.adoc @@ -18,29 +18,29 @@ // specific language governing permissions and limitations // under the License. -Cross Data Center Replication (CDCR) allows you to create multiple SolrCloud data centers and keep them in sync in case they are needed at a future time. +Cross Data Center Replication (CDCR) allows you to create multiple SolrCloud data centers and keep them in sync. -The <> architecture is not particularly well suited for situations where a single SolrCloud cluster consists of nodes in separated data clusters connected by an expensive pipe. The root problem is that SolrCloud is designed to support <> by immediately forwarding updates between nodes in the cluster on a per-shard basis. "CDCR" features exist to help mitigate the risk of an entire data center outage. +The <> architecture is designed to support <> (NRT) searches on a Solr collection usually consisting of multiple nodes in a single data center. "CDCR" augments this model by forwarding updates from a Solr collection in one data center to a parallel Solr collection in another data center where the network latencies are greater than the SolrCloud model was designed to accommodate. == What is CDCR? -CDCR supports replicating data from one data center to multiple data centers. The initial version of the solution supports an active-passive scenario where data updates are replicated from a Source data center to one or more target data centers. +CDCR supports replicating data from one data center to multiple data centers. The initial version of the solution supports a uni-directional scenario where data updates are replicated from a Source data center to one or more Target data centers. -The target data center(s) will not propagate updates such as adds, updates, or deletes to the source data center and updates should _not_ be sent to any of the target data center(s). +The Target data center(s) will not propagate updates such as adds, updates, or deletes to the Source data center and updates should _not_ be sent to any of the Target data center(s). -Source and target data centers can serve search queries when CDCR is operating. The target data centers will have slightly stale views of the corpus due to propagation delays, but this is minimal (perhaps a few seconds). +Source and Target data centers can serve search queries when CDCR is operating. The Target data centers will lag somewhat behind the Source cluster due to propagation delays. -Data changes on the source data center are replicated to the target data center only after they are persisted to disk. The data changes can be replicated in near real-time (with a small delay) or could be scheduled to be sent in intervals to the target data center. This solution pre-supposes that the source and target data centers begin with the same documents indexed. Of course the indexes may be empty to start. +Data changes on the Source data center are replicated to the Target data center only after they are persisted to disk. The data changes can be replicated in near real-time (with a small delay) or could be scheduled to be sent at longer intervals to the Target data center. CDCR can "bootstrap" the collection to the Target data center. Since this is a full copy of the entire index, network bandwidth should be considered. Of course both Source and Target collections may be empty to start. -Each shard leader in the source data center will be responsible for replicating its updates to the corresponding leader in the target data center. When receiving updates from the source data center, shard leaders in the target data center will replicate the changes to their own replicas. +Each shard leader in the Source data center will be responsible for replicating its updates to the corresponding leader in the Target data center. When receiving updates from the Source data center, shard leaders in the Target data center will replicate the changes to their own replicas as normal SolrCloud updates. This replication model is designed to tolerate some degradation in connectivity, accommodate limited bandwidth, and support batch updates to optimize communication. -Replication supports both a new empty index and pre-built indexes. In the scenario where the replication is set up on a pre-built index, CDCR will ensure consistency of the replication of the updates, but cannot ensure consistency on the full index. Therefore any index created before CDCR was set up will have to be replicated by other means (described in the section <>) so source and target indexes are fully consistent. +Replication supports both a new empty index and pre-built indexes. In the scenario where the replication is set up on a pre-built index in the Source cluster and nothing on the Target cluster, CDCR will replicate the _entire_ index from the Source to Target. This functionality was added in Solr 6.2. -The active-passive nature of the initial implementation implies a "push" model from the source collection to the target collection. Therefore, the source configuration must be able to "see" the ZooKeeper ensemble in the target cluster. The ZooKeeper ensemble is provided configured in the Source's `solrconfig.xml` file. +The uni-directional nature of the initial implementation implies a "push" model from the Source collection to the Target collection. Therefore, the Source configuration must be able to "see" the ZooKeeper ensemble in the Target cluster. The ZooKeeper ensemble is provided configured in the Source's `solrconfig.xml` file. -CDCR is configured to replicate from collections in the source cluster to collections in the target cluster on a collection-by-collection basis. Since CDCR is configured in `solrconfig.xml` (on both source and target clusters), the settings can be tailored for the needs of each collection. +CDCR is configured to replicate from collections in the Source cluster to collections in the Target cluster on a collection-by-collection basis. Since CDCR is configured in `solrconfig.xml` (on both Source and Target clusters), the settings can be tailored for the needs of each collection. CDCR can be configured to replicate from one collection to a second collection _within the same cluster_. That is a specialized scenario not covered in this document. @@ -51,14 +51,15 @@ Terms used in this document include: [glossary] Node:: A JVM instance running Solr; a server. -Cluster:: A set of Solr nodes managed as a single unit by a ZooKeeper ensemble, hosting one or more Collections. +Cluster:: A set of Solr nodes managed as a single unit by a ZooKeeper ensemble hosting one or more Collections. Data Center:: A group of networked servers hosting a Solr cluster. In this document, the terms _Cluster_ and _Data Center_ are interchangeable as we assume that each Solr cluster is hosted in a different group of networked servers. -Shard:: A sub-index of a single logical collection. This may be spread across multiple nodes of the cluster. Each shard can have as many replicas as needed. -Leader:: Each shard has one node identified as its leader. All the writes for documents belonging to a shard are routed through the leader. +Shard:: A sub-index of a single logical collection. This may be spread across multiple nodes of the cluster. Each shard can have 1-N replicas. +Leader:: Each shard has replica identified as its leader. All the writes for documents belonging to a shard are routed through the leader. Replica:: A copy of a shard for use in failover or load balancing. Replicas comprising a shard can either be leaders or non-leaders. Follower:: A convenience term for a replica that is _not_ the leader of a shard. -Collection:: Multiple documents that make up one logical index. A cluster can have multiple collections. -Updates Log:: An append-only log of write operations maintained by each node. +Collection:: A logical index, consisting of one or more shards. A cluster can have multiple collections. +Update:: An operation that changes the collection's index in any way. This could be adding a new document, deleting documents or changing a document. +Update Log(s):: An append-only log of write operations maintained by each node. == CDCR Architecture @@ -69,20 +70,20 @@ image::images/cross-data-center-replication-cdcr-/CDCR_arch.png[image,width=700, Updates and deletes are first written to the Source cluster, then forwarded to the Target cluster. The data flow sequence is: -. A shard leader receives a new data update that is processed by its update processor chain. +. A shard leader receives a new update that is processed by its update processor chain. . The data update is first applied to the local index. -. Upon successful application of the data update on the local index, the data update is added to the Updates Log queue. +. Upon successful application of the data update on the local index, the data update is added to the Update Logs queue. . After the data update is persisted to disk, the data update is sent to the replicas within the data center. -. After Step 4 is successful, CDCR reads the data update from the Updates Log and pushes it to the corresponding collection in the target data center. This is necessary in order to ensure consistency between the Source and target data centers. -. The leader on the target data center writes the data locally and forwards it to all its followers. +. After Step 4 is successful, CDCR reads the data update from the Update Logs and pushes it to the corresponding collection in the Target data center. This is necessary in order to ensure consistency between the Source and Target data centers. +. The leader on the Target data center writes the data locally and forwards it to all its followers. -Steps 1, 2, 3 and 4 are performed synchronously by SolrCloud; Step 5 is performed asynchronously by a background thread. Given that CDCR replication is performed asynchronously, it becomes possible to push batch updates in order to minimize network communication overhead. Also, if CDCR is unable to push the update at a given time, for example, due to a degradation in connectivity, it can retry later without any impact on the source data center. +Steps 1, 2, 3 and 4 are performed synchronously by SolrCloud; Step 5 is performed asynchronously by a background thread. Given that CDCR replication is performed asynchronously, it becomes possible to push batch updates in order to minimize network communication overhead. Also, if CDCR is unable to push the update at a given time, for example, due to a degradation in connectivity, it can retry later without any impact on the Source data center. -One implication of the architecture is that the leaders in the source cluster must be able to "see" the leaders in the target cluster. Since leaders may change, this effectively means that all nodes in the source cluster must be able to "see" all Solr nodes in the target cluster so firewalls, ACL rules, etc. must be configured with care. +One implication of the architecture is that the leaders in the Source cluster must be able to "see" the leaders in the Target cluster. Since leaders may change in both Source and Target collections, which means that all nodes in the Source cluster must be able to "see" all Solr nodes in the Target cluster so firewalls, ACL rules, etc., must be configured to allow this. -The current design works most robustly if both the Source and target clusters have the same number of shards. There is no requirement that the shards in the Source and target collection have the same number of replicas. +The current design works most robustly if both the Source and Target clusters have the same number of shards. There is no requirement that the shards in the Source and Target collection have the same number of replicas. -Having different numbers of shards on the Source and target cluster is possible, but is also an "expert" configuration as that option imposes certain constraints and is not recommended. Most of the scenarios where having differing numbers of shards are contemplated are better accomplished by hosting multiple shards on each target Solr instance. +Having different numbers of shards on the Source and Target cluster is possible, but is also an "expert" configuration as that option imposes certain constraints and is not generally recommended. Most of the scenarios where having differing numbers of shards are contemplated are better accomplished by hosting multiple shards on each Solr instance. == Major Components of CDCR @@ -90,7 +91,7 @@ There are a number of key features and components in CDCR’s architecture: === CDCR Configuration -In order to configure CDCR, the Source data center requires the host address of the ZooKeeper cluster associated with the target data center. The ZooKeeper host address is the only information needed by CDCR to instantiate the communication with the target Solr cluster. The CDCR configuration file on the source cluster will therefore contain a list of ZooKeeper hosts. The CDCR configuration file might also contain secondary/optional configuration, such as the number of CDC Replicator threads, batch updates related settings, etc. +In order to configure CDCR, the Source data center requires the host address of the ZooKeeper cluster associated with the Target data center. The ZooKeeper host address is the only information needed by CDCR to instantiate the communication with the Target Solr cluster. The CDCR configuration section of `solrconfig.xml` file on the Source cluster will therefore contain a list of ZooKeeper hosts. The CDCR configuration section of `solrconfig.xml` might also contain secondary/optional configuration, such as the number of CDC Replicator threads, batch updates related settings, etc. === CDCR Initialization @@ -98,78 +99,78 @@ CDCR supports incremental updates to either new or existing collections. CDCR ma * There is an initial bulk load of a corpus followed by lower volume incremental updates. In this case, one can do the initial bulk load and then enable CDCR. See the section <> for more information. * The index is being built up from scratch, without a significant initial bulk load. CDCR can be set up on empty collections and keep them synchronized from the start. -* The index is always being updated at a volume too high for CDCR to keep up. This is especially possible in situations where the connection between the Source and target data centers is poor. This scenario is unsuitable for CDCR in its current form. +* The index is always being updated at a volume too high for CDCR to keep up. This is especially possible in situations where the connection between the Source and Target data centers is poor. This scenario is unsuitable for CDCR in its current form. === Inter-Data Center Communication -Communication between data centers will be achieved through HTTP and the Solr REST API using the SolrJ client. The SolrJ client will be instantiated with the ZooKeeper host of the target data center. SolrJ will manage the shard leader discovery process. +The CDCR REST API is the primary form of end-user communication for admin commands. A SolrJ client is used internally for CDCR operations. The SolrJ client gets its configuration information from the `solrconfig.xml` file. Users of CDCR will not interact directly with the internal SolrJ implementation and will interact with CDCR exclusively through the REST API. === Updates Tracking & Pushing -CDCR replicates data updates from the source to the target data center by leveraging the Updates Log. +CDCR replicates data updates from the Source to the Target data center by leveraging the Update Logs. -A background thread regularly checks the Updates Log for new entries, and then forwards them to the target data center. The thread therefore needs to keep a checkpoint in the form of a pointer to the last update successfully processed in the Updates Log. Upon acknowledgement from the target data center that updates have been successfully processed, the Updates Log pointer is updated to reflect the current checkpoint. +A background thread regularly checks the Update Logs for new entries, and then forwards them to the Target data center. The thread therefore needs to keep a checkpoint in the form of a pointer to the last update successfully processed in the Update Logs. Upon acknowledgement from the Target data center that updates have been successfully processed, the Update Logs pointer is updated to reflect the current checkpoint. This pointer must be synchronized across all the replicas. In the case where the leader goes down and a new leader is elected, the new leader will be able to resume replication from the last update by using this synchronized pointer. The strategy to synchronize such a pointer across replicas will be explained next. -If for some reason, the target data center is offline or fails to process the updates, the thread will periodically try to contact the target data center and push the updates. +If for some reason, the Target data center is offline or fails to process the updates, the thread will periodically try to contact the Target data center and push the updates while buffering updates on the Source cluster. One implication of this is that the Source Update Logs directory should be periodically monitored as the updates will continue to accumulate amd will not be purged until the connection to the Target data center is restored. === Synchronization of Update Checkpoints -A reliable synchronization of the update checkpoints between the shard leader and shard replicas is critical to avoid introducing inconsistency between the Source and target data centers. Another important requirement is that the synchronization must be performed with minimal network traffic to maximize scalability. +A reliable synchronization of the update checkpoints between the shard leader and shard replicas is critical to avoid introducing inconsistency between the Source and Target data centers. Another important requirement is that the synchronization must be performed with minimal network traffic to maximize scalability. In order to achieve this, the strategy is to: * Uniquely identify each update operation. This unique identifier will serve as pointer. -* Rely on two storages: an ephemeral storage on the Source shard leader, and a persistent storage on the target cluster. +* Rely on two storages: an ephemeral storage on the Source shard leader, and a persistent storage on the Target cluster. -The shard leader in the source cluster will be in charge of generating a unique identifier for each update operation, and will keep a copy of the identifier of the last processed updates in memory. The identifier will be sent to the target cluster as part of the update request. On the target data center side, the shard leader will receive the update request, store it along with the unique identifier in the Updates Log, and replicate it to the other shards. +The shard leader in the Source cluster will be in charge of generating a unique identifier for each update operation, and will keep a copy of the identifier of the last processed updates in memory. The identifier will be sent to the Target cluster as part of the update request. On the Target data center side, the shard leader will receive the update request, store it along with the unique identifier in the Update Logs, and replicate it to the other shards. -SolrCloud already provides a unique identifier for each update operation, i.e., a “version” number. This version number is generated using a time-based lmport clock which is incremented for each update operation sent. This provides an “happened-before” ordering of the update operations that will be leveraged in (1) the initialization of the update checkpoint on the source cluster, and in (2) the maintenance strategy of the Updates Log. +SolrCloud already provides a unique identifier for each update operation, i.e., a “version” number. This version number is generated using a time-based lmport clock which is incremented for each update operation sent. This provides an “happened-before” ordering of the update operations that will be leveraged in (1) the initialization of the update checkpoint on the Source cluster, and in (2) the maintenance strategy of the Update Logs. -The persistent storage on the target cluster is used only during the election of a new shard leader on the Source cluster. If a shard leader goes down on the source cluster and a new leader is elected, the new leader will contact the target cluster to retrieve the last update checkpoint and instantiate its ephemeral pointer. On such a request, the target cluster will retrieve the latest identifier received across all the shards, and send it back to the source cluster. To retrieve the latest identifier, every shard leader will look up the identifier of the first entry in its Update Logs and send it back to a coordinator. The coordinator will have to select the highest among them. +The persistent storage on the Target cluster is used only during the election of a new shard leader on the Source cluster. If a shard leader goes down on the Source cluster and a new leader is elected, the new leader will contact the Target cluster to retrieve the last update checkpoint and instantiate its ephemeral pointer. On such a request, the Target cluster will retrieve the latest identifier received across all the shards, and send it back to the Source cluster. To retrieve the latest identifier, every shard leader will look up the identifier of the first entry in its Update Logs and send it back to a coordinator. The coordinator will have to select the highest among them. -This strategy does not require any additional network traffic and ensures reliable pointer synchronization. Consistency is principally achieved by leveraging SolrCloud. The update workflow of SolrCloud ensures that every update is applied to the leader but also to any of the replicas. If the leader goes down, a new leader is elected. During the leader election, a synchronization is performed between the new leader and the other replicas. As a result, this ensures that the new leader has a consistent Update Logs with the previous leader. Having a consistent Updates Log means that: +This strategy does not require any additional network traffic and ensures reliable pointer synchronization. Consistency is principally achieved by leveraging SolrCloud. The update workflow of SolrCloud ensures that every update is applied to the leader and also to any of the replicas. If the leader goes down, a new leader is elected. During the leader election, a synchronization is performed between the new leader and the other replicas. This ensures that the new leader has a consistent Update Logs with the previous leader. Having a consistent Update Logs means that: -* On the source cluster, the update checkpoint can be reused by the new leader. -* On the target cluster, the update checkpoint will be consistent between the previous and new leader. This ensures the correctness of the update checkpoint sent by a newly elected leader from the target cluster. +* On the Source cluster, the update checkpoint can be reused by the new leader. +* On the Target cluster, the update checkpoint will be consistent between the previous and new leader. This ensures the correctness of the update checkpoint sent by a newly elected leader from the Target cluster. -=== Maintenance of Updates Log +=== Maintenance of Update Logs -The CDCR replication logic requires modification to the maintenance logic of the Updates Log on the source data center. Initially, the Updates Log acts as a fixed size queue, limited to 100 update entries. In the CDCR scenario, the Update Logs must act as a queue of variable size as they need to keep track of all the updates up through the last processed update by the target data center. Entries in the Update Logs are removed only when all pointers (one pointer per target data center) are after them. +The CDCR replication logic requires modification to the maintenance logic of the Update Logs on the Source data center. Initially, the Update Logs acts as a fixed size queue, limited to 100 update entries by default. In the CDCR scenario, the Update Logs must act as a queue of variable size as they need to keep track of all the updates up through the last processed update by the Target data center. Entries in the Update Logs are removed only when all pointers (one pointer per Target data center) are after them. -If the communication with one of the target data center is slow, the Updates Log on the source data center can grow to a substantial size. In such a scenario, it is necessary for the Updates Log to be able to efficiently find a given update operation given its identifier. Given that its identifier is an incremental number, it is possible to implement an efficient search strategy. Each transaction log file contains as part of its filename the version number of the first element. This is used to quickly traverse all the transaction log files and find the transaction log file containing one specific version number. +If the communication with one of the Target data center is slow, the Update Logs on the Source data center can grow to a substantial size. In such a scenario, it is necessary for the Update Logs to be able to efficiently find a given update operation given its identifier. Given that its identifier is an incremental number, it is possible to implement an efficient search strategy. Each transaction log file contains as part of its filename the version number of the first element. This is used to quickly traverse all the transaction log files and find the transaction log file containing one specific version number. === Monitoring CDCR provides the following monitoring capabilities over the replication operations: -* Monitoring of the outgoing and incoming replications, with information such as the Source and target nodes, their status, etc. +* Monitoring of the outgoing and incoming replications, with information such as the Source and Target nodes, their status, etc. * Statistics about the replication, with information such as operations (add/delete) per second, number of documents in the queue, etc. Information about the lifecycle and statistics will be provided on a per-shard basis by the CDC Replicator thread. The CDCR API can then aggregate this information an a collection level. === CDC Replicator -The CDC Replicator is a background thread that is responsible for replicating updates from a Source data center to one or more target data centers. It is responsible in providing monitoring information on a per-shard basis. As there can be a large number of collections and shards in a cluster, we will use a fixed-size pool of CDC Replicator threads that will be shared across shards. +The CDC Replicator is a background thread that is responsible for replicating updates from a Source data center to one or more Target data centers. It is responsible in providing monitoring information on a per-shard basis. As there can be a large number of collections and shards in a cluster, we will use a fixed-size pool of CDC Replicator threads that will be shared across shards. === CDCR Limitations The current design of CDCR has some limitations. CDCR will continue to evolve over time and many of these limitations will be addressed. Among them are: * CDCR is unlikely to be satisfactory for bulk-load situations where the update rate is high, especially if the bandwidth between the Source and Target clusters is restricted. In this scenario, the initial bulk load should be performed, the Source and Target data centers synchronized and CDCR be utilized for incremental updates. -* CDCR is currently only active-passive; data is pushed from the Source cluster to the Target cluster. There is active work being done in this area in the 6x code line to remove this limitation. +* CDCR is currently only uni-directional; data is pushed from the Source cluster to the Target cluster. There is active work being done in this area to remove this limitation. * CDCR works most robustly with the same number of shards in the Source and Target collection. The shards in the two collections may have different numbers of replicas. * Running CDCR with the indexes on HDFS is not currently supported, see the https://issues.apache.org/jira/browse/SOLR-9861[Solr CDCR over HDFS] JIRA issue. -* Configuration files (solrconfig.xml, schema etc.) are not automatically synchronized between the Source and Target clusters. This means that when the Source schema or solrconfig files are changed, those changes must be replicated manually to the Target cluster. This includes adding fields by the <> or <> as well as hand editing those files. +* Configuration files `(solrconfig.xml, schema etc.)` are not automatically synchronized between the Source and Target clusters. This means that when the Source schema or `solrconfig.xml` files are changed, those changes must be replicated manually to the Target cluster. This includes adding fields by the <> or <> as well as hand editing those files. == CDCR Configuration -The source and target configurations differ in the case of the data centers being in separate clusters. "Cluster" here means separate ZooKeeper ensembles controlling disjoint Solr instances. Whether these data centers are physically separated or not is immaterial for this discussion. +The Source and Target configurations differ in the case of the data centers being in separate clusters. "Cluster" here means separate ZooKeeper ensembles controlling disjoint Solr instances. Whether these data centers are physically separated or not is immaterial for this discussion. === Source Configuration -Here is a sample of a source configuration file, a section in `solrconfig.xml`. The presence of the section causes CDCR to use this cluster as the Source and should not be present in the target collections in the cluster-to-cluster case. Details about each setting are after the two examples: +Here is a sample of a Source configuration file, a section in `solrconfig.xml`. The presence of the section causes CDCR to use this cluster as the Source and should not be present in the Target collections. Details about each setting are after the two examples: [source,xml] ---- @@ -207,9 +208,9 @@ Here is a sample of a source configuration file, a section in `solrconfig.xml`. === Target Configuration -Here is a typical target configuration. +Here is a typical Target configuration. -Target instance must configure an update processor chain that is specific to CDCR. The update processor chain must include the *CdcrUpdateProcessorFactory*. The task of this processor is to ensure that the version numbers attached to update requests coming from a CDCR source SolrCloud are reused and not overwritten by the target. A properly configured Target configuration looks similar to this. +Target instance must configure an update processor chain that is specific to CDCR. The update processor chain must include the *CdcrUpdateProcessorFactory*. The task of this processor is to ensure that the version numbers attached to update requests coming from a CDCR Source SolrCloud are reused and not overwritten by the Target. A properly configured Target configuration looks similar to this. [source,xml] ---- @@ -246,20 +247,20 @@ The configuration details, defaults and options are as follows: ==== The Replica Element -CDCR can be configured to forward update requests to one or more replicas. A replica is defined with a “replica” list as follows: +CDCR can be configured to forward update requests to one or more Target collections. A Target collection is defined with a “replica” list as follows: `zkHost`:: -The host address for ZooKeeper of the target SolrCloud. Usually this is a comma-separated list of addresses to each node in the target ZooKeeper ensemble. This parameter is required. +The host address for ZooKeeper of the Target SolrCloud. Usually this is a comma-separated list of addresses to each node in the Target ZooKeeper ensemble. This parameter is required. `Source`:: The name of the collection on the Source SolrCloud to be replicated. This parameter is required. `Target`:: -The name of the collection on the target SolrCloud to which updates will be forwarded. This parameter is required. +The name of the collection on the Target SolrCloud to which updates will be forwarded. This parameter is required. ==== The Replicator Element -The CDC Replicator is the component in charge of forwarding updates to the replicas. The replicator will monitor the update logs of the Source collection and will forward any new updates to the target collection. +The CDC Replicator is the component in charge of forwarding updates to the replicas. The replicator will monitor the update logs of the Source collection and will forward any new updates to the Target collection. The replicator uses a fixed thread pool to forward updates to multiple replicas in parallel. If more than one replica is configured, one thread will forward a batch of updates from one replica at a time in a round-robin fashion. The replicator can be configured with a “replicator” list as follows: @@ -277,20 +278,34 @@ The number of updates to send in one batch. The optimal size depends on the size Expert: Non-leader nodes need to synchronize their update logs with their leader node from time to time in order to clean deprecated transaction log files. By default, such a synchronization process is performed every minute. The schedule of the synchronization can be modified with a “updateLogSynchronizer” list as follows: `schedule`:: - The delay in milliseconds for synchronizing the updates log. The default is `60000`. + The delay in milliseconds for synchronizing the update logs. The default is `60000`. ==== The Buffer Element -CDCR is configured by default to buffer any new incoming updates. When buffering updates, the updates log will store all the updates indefinitely. Replicas do not need to buffer updates, and it is recommended to disable buffer on the target SolrCloud. The buffer can be disabled at startup with a “buffer” list and the parameter “defaultState” as follows: +When buffering updates, the update logs will store all the updates indefinitely. It is recommended to disable buffering on both the Source and Target clusters during normal operation as when buffering is enabled the Update Logs will grow without limit. Leaving buffering enabled is intended for special maintenance periods. The buffer can be disabled at startup with a “buffer” list and the parameter “defaultState” as follows: `defaultState`:: The state of the buffer at startup. The default is `enabled`. +[TIP] +.Buffering is should be enabled only for maintenance windows +==== +Buffering is designed to augment maintenance windows. The following points should be kept in mind: + + * When buffering is enabled, the Update Logs will grow without limit; they will never be purged. + * During normal operation, the Update Logs will automatically accrue on the Source data center if the Target data center is unavailable; It is not necessary to enable buffering for CDCR to handle routine network disruptions. + ** For this reason, monitoring disk usage on the Source data center is recommended as an additional check that the Target data center is receiving updates. + * Buffering should _not_ be enabled on the Target data center as Update Logs would accrue without limit. + * If buffering is enabled then disabled, the Update Logs will be removed when their contents have been sent to the Target data center. This process may take some time. + ** Update Log cleanup is not triggered until a new update is sent to the Source data center. + +==== + == CDCR API -The CDCR API is used to control and monitor the replication process. Control actions are performed at a collection level, i.e., by using the following base URL for API calls: `\http://localhost:8983/solr/`. +The CDCR API is used to control and monitor the replication process. Control actions are performed at a collection level, i.e., by using the following base URL for API calls: `\http://localhost:8983/solr//cdcr`. -Monitor actions are performed at a core level, i.e., by using the following base URL for API calls: `\http://localhost:8983/solr/`. +Monitor actions are performed at a core level, i.e., by using the following base URL for API calls: `\http://localhost:8983/solr//cdcr`. Currently, none of the CDCR API calls have parameters. @@ -482,9 +497,9 @@ The status of CDCR, including the confirmation that CDCR is stopped. *Output Content* -The output is composed of a list “queues” which contains a list of (ZooKeeper) target hosts, themselves containing a list of target collections. For each collection, the current size of the queue and the timestamp of the last update operation successfully processed is provided. The timestamp of the update operation is the original timestamp, i.e., the time this operation was processed on the Source SolrCloud. This allows an estimate the latency of the replication process. +The output is composed of a list “queues” which contains a list of (ZooKeeper) Target hosts, themselves containing a list of Target collections. For each collection, the current size of the queue and the timestamp of the last update operation successfully processed is provided. The timestamp of the update operation is the original timestamp, i.e., the time this operation was processed on the Source SolrCloud. This allows an estimate the latency of the replication process. -The “queues” object also contains information about the updates log, such as the size (in bytes) of the updates log on disk (“tlogTotalSize”), the number of transaction log files (“tlogTotalCount”) and the status of the updates log synchronizer (“updateLogSynchronizer”). +The “queues” object also contains information about the update logs, such as the size (in bytes) of the update logs on disk (“tlogTotalSize”), the number of transaction log files (“tlogTotalCount”) and the status of the update logs synchronizer (“updateLogSynchronizer”). ===== QUEUES Examples @@ -524,7 +539,7 @@ The “queues” object also contains information about the updates log, such as ===== OPS Response -The output is composed of `operationsPerSecond` which contains a list of (ZooKeeper) target hosts, themselves containing a list of target collections. For each collection, the average number of processed operations per second since the start of the replication process is provided. The operations are further broken down into two groups: add and delete operations. +The output is composed of `operationsPerSecond` which contains a list of (ZooKeeper) target hosts, themselves containing a list of Target collections. For each collection, the average number of processed operations per second since the start of the replication process is provided. The operations are further broken down into two groups: add and delete operations. ===== OPS Examples @@ -562,7 +577,7 @@ The output is composed of `operationsPerSecond` which contains a list of (ZooKee ===== ERRORS Response -The output is composed of a list “errors” which contains a list of (ZooKeeper) target hosts, themselves containing a list of target collections. For each collection, information about errors encountered during the replication is provided, such as the number of consecutive errors encountered by the replicator thread, the number of bad requests or internal errors since the start of the replication process, and a list of the last errors encountered ordered by timestamp. +The output is composed of a list “errors” which contains a list of (ZooKeeper) target hosts, themselves containing a list of Target collections. For each collection, information about errors encountered during the replication is provided, such as the number of consecutive errors encountered by the replicator thread, the number of bad requests or internal errors since the start of the replication process, and a list of the last errors encountered ordered by timestamp. ===== ERRORS Examples @@ -601,11 +616,18 @@ The output is composed of a list “errors” which contains a list of (ZooKeepe == Initial Startup +.CDCR Bootstrapping +[TIP] +==== +Solr 6.2, added the additional functionality to allow CDCR to replicate the entire index from the Source to the Target data centers on first time startup as an alternative to the following procedure. For very large indexes, time should be allocated for this initial synchronization if this option is chosen. +==== + This is a general approach for initializing CDCR in a production environment based upon an approach taken by the initial working installation of CDCR and generously contributed to illustrate a "real world" scenario. -* Customer uses the CDCR approach to keep a remote disaster-recovery instance available for production backup. This is an active-passive solution. + +* Customer uses the CDCR approach to keep a remote disaster-recovery instance available for production backup. This is a uni-directional solution. * Customer has 26 clouds with 200 million assets per cloud (15GB indexes). Total document count is over 4.8 billion. -** Source and target clouds were synched in 2-3 hour maintenance windows to establish the base index for the targets. +** Source and Target clouds were synched in 2-3 hour maintenance windows to establish the base index for the Targets. As usual, it is good to start small. Sync a single cloud and monitor for a period of time before doing the others. You may need to adjust your settings several times before finding the right balance. @@ -638,7 +660,7 @@ As usual, it is good to start small. Sync a single cloud and monitor for a perio ---- + * Upload the modified `solrconfig.xml` to ZooKeeper on both Source and Target -* Sync the index directories from the Source collection to target collection across to the corresponding shard nodes. `rsync` works well for this. +* Sync the index directories from the Source collection to Target collection across to the corresponding shard nodes. `rsync` works well for this. + For example, if there are 2 shards on collection1 with 2 replicas for each shard, copy the corresponding index directories from + @@ -660,7 +682,7 @@ For example, if there are 2 shards on collection1 with 2 replicas for each shard http://host:port/solr//cdcr?action=START + * There is no need to run the /cdcr?action=START command on the Target -* Disable the buffer on the Target +* Disable the buffer on the Target and Source + [source,text] http://host:port/solr/collection_name/cdcr?action=DISABLEBUFFER @@ -677,7 +699,7 @@ http://host:port/solr/collection_name/cdcr?action=DISABLEBUFFER == ZooKeeper Settings -With CDCR, the target ZooKeepers will have connections from the Target clouds and the Source clouds. You may need to increase the `maxClientCnxns` setting in `zoo.cfg`. +With CDCR, the Target ZooKeepers will have connections from the Target clouds and the Source clouds. You may need to increase the `maxClientCnxns` setting in `zoo.cfg`. [source,text] ---- From 1c3656917652732506c6dfa4978db7af128dffdb Mon Sep 17 00:00:00 2001 From: Andrzej Bialecki Date: Thu, 17 Aug 2017 12:32:22 +0200 Subject: [PATCH 17/28] SOLR-11215: Make a metric accessible through a single param. --- solr/CHANGES.txt | 2 +- .../plugin/AnalyticsStatisticsCollector.java | 2 +- .../solr/handler/admin/MetricsHandler.java | 66 ++++++++++++++ .../solr/metrics/SolrMetricManager.java | 11 +++ .../apache/solr/util/stats/MetricUtils.java | 38 ++++---- .../handler/admin/MetricsHandlerTest.java | 86 ++++++++++++++++++- .../solr/util/stats/MetricUtilsTest.java | 2 +- 7 files changed, 183 insertions(+), 24 deletions(-) diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 5d574168373..37ac64da562 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -32,7 +32,6 @@ Jetty 9.3.14.v20161028 (No Changes) - ================== 7.1.0 ================== Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release. @@ -73,6 +72,7 @@ New Features A new "sum" function is also added. Example : {!payload_score f=payload_field func=sum operator=or}A B C" (Varun Thacker) +* SOLR-11215: Make a metric accessible through a single param. (ab) Bug Fixes ---------------------- diff --git a/solr/contrib/analytics/src/java/org/apache/solr/analytics/plugin/AnalyticsStatisticsCollector.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/plugin/AnalyticsStatisticsCollector.java index 1670ad5689a..4c993232388 100644 --- a/solr/contrib/analytics/src/java/org/apache/solr/analytics/plugin/AnalyticsStatisticsCollector.java +++ b/solr/contrib/analytics/src/java/org/apache/solr/analytics/plugin/AnalyticsStatisticsCollector.java @@ -88,7 +88,7 @@ public class AnalyticsStatisticsCollector { public Map getStatistics() { Map map = new HashMap<>(); - MetricUtils.convertTimer("", requestTimes, MetricUtils.PropertyFilter.ALL, false, false, (k, v) -> { + MetricUtils.convertTimer("", requestTimes, MetricUtils.PropertyFilter.ALL, false, false, ".", (k, v) -> { map.putAll((Map)v); }); map.put("requests", numRequests.longValue()); diff --git a/solr/core/src/java/org/apache/solr/handler/admin/MetricsHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/MetricsHandler.java index 11f68212e22..a9a2d1f81e1 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/MetricsHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/MetricsHandler.java @@ -23,12 +23,14 @@ import java.util.EnumSet; import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.regex.Pattern; import java.util.stream.Collectors; import com.codahale.metrics.Counter; import com.codahale.metrics.Gauge; import com.codahale.metrics.Histogram; import com.codahale.metrics.Meter; +import com.codahale.metrics.Metric; import com.codahale.metrics.MetricFilter; import com.codahale.metrics.MetricRegistry; import com.codahale.metrics.Timer; @@ -58,10 +60,13 @@ public class MetricsHandler extends RequestHandlerBase implements PermissionName public static final String PROPERTY_PARAM = "property"; public static final String REGISTRY_PARAM = "registry"; public static final String GROUP_PARAM = "group"; + public static final String KEY_PARAM = "key"; public static final String TYPE_PARAM = "type"; public static final String ALL = "all"; + private static final Pattern KEY_REGEX = Pattern.compile("(? 0) { + handleKeyRequest(keys, req, rsp); + return; + } MetricFilter mustMatchFilter = parseMustMatchFilter(req); MetricUtils.PropertyFilter propertyFilter = parsePropertyFilter(req); List metricTypes = parseMetricTypes(req); @@ -103,6 +113,62 @@ public class MetricsHandler extends RequestHandlerBase implements PermissionName rsp.getValues().add("metrics", response); } + private void handleKeyRequest(String[] keys, SolrQueryRequest req, SolrQueryResponse rsp) throws Exception { + SimpleOrderedMap result = new SimpleOrderedMap(); + SimpleOrderedMap errors = new SimpleOrderedMap(); + for (String key : keys) { + if (key == null || key.isEmpty()) { + continue; + } + String[] parts = KEY_REGEX.split(key); + if (parts.length < 2 || parts.length > 3) { + errors.add(key, "at least two and at most three colon-separated parts must be provided"); + continue; + } + final String registryName = unescape(parts[0]); + final String metricName = unescape(parts[1]); + final String propertyName = parts.length > 2 ? unescape(parts[2]) : null; + if (!metricManager.hasRegistry(registryName)) { + errors.add(key, "registry '" + registryName + "' not found"); + continue; + } + MetricRegistry registry = metricManager.registry(registryName); + Metric m = registry.getMetrics().get(metricName); + if (m == null) { + errors.add(key, "metric '" + metricName + "' not found"); + continue; + } + MetricUtils.PropertyFilter propertyFilter = MetricUtils.PropertyFilter.ALL; + boolean simple = false; + if (propertyName != null) { + propertyFilter = (name) -> name.equals(propertyName); + simple = true; + // use escaped versions + key = parts[0] + ":" + parts[1]; + } + MetricUtils.convertMetric(key, m, propertyFilter, false, true, true, simple, ":", (k, v) -> result.add(k, v)); + } + rsp.getValues().add("metrics", result); + if (errors.size() > 0) { + rsp.getValues().add("errors", errors); + } + } + + private static String unescape(String s) { + if (s.indexOf('\\') == -1) { + return s; + } + StringBuilder sb = new StringBuilder(s.length()); + for (int i = 0; i < s.length(); i++) { + char c = s.charAt(i); + if (c == '\\') { + continue; + } + sb.append(c); + } + return sb.toString(); + } + private MetricFilter parseMustMatchFilter(SolrQueryRequest req) { String[] prefixes = req.getParams().getParams(PREFIX_PARAM); MetricFilter prefixFilter = null; diff --git a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java index 001717c3844..af642ed99cc 100644 --- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java +++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java @@ -352,6 +352,17 @@ public class SolrMetricManager { return set; } + /** + * Check whether a registry with a given (overridable) name already exists. + * @param name registry name + * @return true if this name points to a registry that already exists, false otherwise + */ + public boolean hasRegistry(String name) { + Set names = registryNames(); + name = overridableRegistryName(name); + return names.contains(name); + } + /** * Return set of existing registry names that match a regex pattern * @param patterns regex patterns. NOTE: users need to make sure that patterns that diff --git a/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java b/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java index a190a0f0085..29e2db2f0d6 100644 --- a/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java +++ b/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java @@ -210,7 +210,7 @@ public class MetricUtils { .filter(s -> mustMatchFilter.matches(s, metrics.get(s))) .forEach(n -> { Metric metric = metrics.get(n); - convertMetric(n, metric, propertyFilter, skipHistograms, skipAggregateValues, compact, simple, consumer); + convertMetric(n, metric, propertyFilter, skipHistograms, skipAggregateValues, compact, simple, ".", consumer); }); } @@ -247,7 +247,7 @@ public class MetricUtils { names.stream() .forEach(n -> { Metric metric = metrics.get(n); - convertMetric(n, metric, PropertyFilter.ALL, skipHistograms, skipAggregateValues, compact, simple, consumer); + convertMetric(n, metric, PropertyFilter.ALL, skipHistograms, skipAggregateValues, compact, simple, ".", consumer); }); } @@ -263,15 +263,15 @@ public class MetricUtils { * only the selected (name "." key, value) pairs will be produced. * @param consumer consumer that accepts produced objects */ - static void convertMetric(String n, Metric metric, PropertyFilter propertyFilter, boolean skipHistograms, boolean skipAggregateValues, - boolean compact, boolean simple, BiConsumer consumer) { + public static void convertMetric(String n, Metric metric, PropertyFilter propertyFilter, boolean skipHistograms, boolean skipAggregateValues, + boolean compact, boolean simple, String separator, BiConsumer consumer) { if (metric instanceof Counter) { Counter counter = (Counter) metric; convertCounter(n, counter, propertyFilter, compact, consumer); } else if (metric instanceof Gauge) { Gauge gauge = (Gauge) metric; try { - convertGauge(n, gauge, propertyFilter, simple, compact, consumer); + convertGauge(n, gauge, propertyFilter, simple, compact, separator, consumer); } catch (InternalError ie) { if (n.startsWith("memory.") && ie.getMessage().contains("Memory Pool not found")) { LOG.warn("Error converting gauge '" + n + "', possible JDK bug: SOLR-10362", ie); @@ -282,17 +282,17 @@ public class MetricUtils { } } else if (metric instanceof Meter) { Meter meter = (Meter) metric; - convertMeter(n, meter, propertyFilter, simple, consumer); + convertMeter(n, meter, propertyFilter, simple, separator, consumer); } else if (metric instanceof Timer) { Timer timer = (Timer) metric; - convertTimer(n, timer, propertyFilter, skipHistograms, simple, consumer); + convertTimer(n, timer, propertyFilter, skipHistograms, simple, separator, consumer); } else if (metric instanceof Histogram) { if (!skipHistograms) { Histogram histogram = (Histogram) metric; - convertHistogram(n, histogram, propertyFilter, simple, consumer); + convertHistogram(n, histogram, propertyFilter, simple, separator, consumer); } } else if (metric instanceof AggregateMetric) { - convertAggregateMetric(n, (AggregateMetric)metric, propertyFilter, skipAggregateValues, simple, consumer); + convertAggregateMetric(n, (AggregateMetric)metric, propertyFilter, skipAggregateValues, simple, separator, consumer); } } @@ -308,10 +308,10 @@ public class MetricUtils { */ static void convertAggregateMetric(String name, AggregateMetric metric, PropertyFilter propertyFilter, - boolean skipAggregateValues, boolean simple, BiConsumer consumer) { + boolean skipAggregateValues, boolean simple, String separator, BiConsumer consumer) { if (simple) { if (propertyFilter.accept(MEAN)) { - consumer.accept(name + "." + MEAN, metric.getMean()); + consumer.accept(name + separator + MEAN, metric.getMean()); } } else { Map response = new LinkedHashMap<>(); @@ -353,11 +353,11 @@ public class MetricUtils { * @param consumer consumer that accepts produced objects */ static void convertHistogram(String name, Histogram histogram, PropertyFilter propertyFilter, - boolean simple, BiConsumer consumer) { + boolean simple, String separator, BiConsumer consumer) { Snapshot snapshot = histogram.getSnapshot(); if (simple) { if (propertyFilter.accept(MEAN)) { - consumer.accept(name + "." + MEAN, snapshot.getMean()); + consumer.accept(name + separator + MEAN, snapshot.getMean()); } } else { Map response = new LinkedHashMap<>(); @@ -411,11 +411,11 @@ public class MetricUtils { * @param consumer consumer that accepts produced objects */ public static void convertTimer(String name, Timer timer, PropertyFilter propertyFilter, boolean skipHistograms, - boolean simple, BiConsumer consumer) { + boolean simple, String separator, BiConsumer consumer) { if (simple) { String prop = "meanRate"; if (propertyFilter.accept(prop)) { - consumer.accept(name + "." + prop, timer.getMeanRate()); + consumer.accept(name + separator + prop, timer.getMeanRate()); } } else { Map response = new LinkedHashMap<>(); @@ -448,10 +448,10 @@ public class MetricUtils { * only the selected (name "." key, value) pairs will be produced. * @param consumer consumer that accepts produced objects */ - static void convertMeter(String name, Meter meter, PropertyFilter propertyFilter, boolean simple, BiConsumer consumer) { + static void convertMeter(String name, Meter meter, PropertyFilter propertyFilter, boolean simple, String separator, BiConsumer consumer) { if (simple) { if (propertyFilter.accept("count")) { - consumer.accept(name + ".count", meter.getCount()); + consumer.accept(name + separator + "count", meter.getCount()); } } else { Map response = new LinkedHashMap<>(); @@ -483,7 +483,7 @@ public class MetricUtils { * @param consumer consumer that accepts produced objects */ static void convertGauge(String name, Gauge gauge, PropertyFilter propertyFilter, boolean simple, boolean compact, - BiConsumer consumer) { + String separator, BiConsumer consumer) { if (compact || simple) { Object o = gauge.getValue(); if (o instanceof Map) { @@ -491,7 +491,7 @@ public class MetricUtils { for (Map.Entry entry : ((Map)o).entrySet()) { String prop = entry.getKey().toString(); if (propertyFilter.accept(prop)) { - consumer.accept(name + "." + prop, entry.getValue()); + consumer.accept(name + separator + prop, entry.getValue()); } } } else { diff --git a/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java index d7ead6b1b44..7eb8f12ba51 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java @@ -19,6 +19,7 @@ package org.apache.solr.handler.admin; import java.util.Map; +import com.codahale.metrics.Counter; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.common.params.CommonParams; import org.apache.solr.common.util.NamedList; @@ -36,8 +37,13 @@ public class MetricsHandlerTest extends SolrTestCaseJ4 { initCore("solrconfig.xml", "schema.xml"); // manually register some metrics in solr.jvm and solr.jetty - TestHarness doesn't init them - h.getCoreContainer().getMetricManager().counter(null, "solr.jvm", "foo"); - h.getCoreContainer().getMetricManager().counter(null, "solr.jetty", "foo"); + Counter c = h.getCoreContainer().getMetricManager().counter(null, "solr.jvm", "foo"); + c.inc(); + c = h.getCoreContainer().getMetricManager().counter(null, "solr.jetty", "foo"); + c.inc(2); + // test escapes + c = h.getCoreContainer().getMetricManager().counter(null, "solr.jetty", "foo:bar"); + c.inc(3); } @Test @@ -225,4 +231,80 @@ public class MetricsHandlerTest extends SolrTestCaseJ4 { assertNotNull(map.get("size")); }); } + + @Test + public void testKeyMetrics() throws Exception { + MetricsHandler handler = new MetricsHandler(h.getCoreContainer()); + + String key1 = "solr.core.collection1:CACHE.core.fieldCache"; + SolrQueryResponse resp = new SolrQueryResponse(); + handler.handleRequestBody(req(CommonParams.QT, "/admin/metrics", CommonParams.WT, "json", + MetricsHandler.KEY_PARAM, key1), resp); + NamedList values = resp.getValues(); + Object val = values.findRecursive("metrics", key1); + assertNotNull(val); + assertTrue(val instanceof Map); + assertTrue(((Map)val).size() >= 2); + + String key2 = "solr.core.collection1:CACHE.core.fieldCache:entries_count"; + resp = new SolrQueryResponse(); + handler.handleRequestBody(req(CommonParams.QT, "/admin/metrics", CommonParams.WT, "json", + MetricsHandler.KEY_PARAM, key2), resp); + values = resp.getValues(); + val = values.findRecursive("metrics", key2); + assertNotNull(val); + assertTrue(val instanceof Number); + + String key3 = "solr.jetty:foo\\:bar"; + resp = new SolrQueryResponse(); + handler.handleRequestBody(req(CommonParams.QT, "/admin/metrics", CommonParams.WT, "json", + MetricsHandler.KEY_PARAM, key3), resp); + values = resp.getValues(); + val = values.findRecursive("metrics", key3); + assertNotNull(val); + assertTrue(val instanceof Number); + assertEquals(3, ((Number)val).intValue()); + + // test multiple keys + resp = new SolrQueryResponse(); + handler.handleRequestBody(req(CommonParams.QT, "/admin/metrics", CommonParams.WT, "json", + MetricsHandler.KEY_PARAM, key1, MetricsHandler.KEY_PARAM, key2, MetricsHandler.KEY_PARAM, key3), resp); + values = resp.getValues(); + val = values.findRecursive("metrics", key1); + assertNotNull(val); + val = values.findRecursive("metrics", key2); + assertNotNull(val); + val = values.findRecursive("metrics", key3); + assertNotNull(val); + + // test errors + + // invalid keys + resp = new SolrQueryResponse(); + handler.handleRequestBody(req(CommonParams.QT, "/admin/metrics", CommonParams.WT, "json", + MetricsHandler.KEY_PARAM, "foo", MetricsHandler.KEY_PARAM, "foo:bar:baz:xyz"), resp); + values = resp.getValues(); + NamedList metrics = (NamedList)values.get("metrics"); + assertEquals(0, metrics.size()); + assertNotNull(values.findRecursive("errors", "foo")); + assertNotNull(values.findRecursive("errors", "foo:bar:baz:xyz")); + + // unknown registry + resp = new SolrQueryResponse(); + handler.handleRequestBody(req(CommonParams.QT, "/admin/metrics", CommonParams.WT, "json", + MetricsHandler.KEY_PARAM, "foo:bar:baz"), resp); + values = resp.getValues(); + metrics = (NamedList)values.get("metrics"); + assertEquals(0, metrics.size()); + assertNotNull(values.findRecursive("errors", "foo:bar:baz")); + + // unknown metric + resp = new SolrQueryResponse(); + handler.handleRequestBody(req(CommonParams.QT, "/admin/metrics", CommonParams.WT, "json", + MetricsHandler.KEY_PARAM, "solr.jetty:unknown:baz"), resp); + values = resp.getValues(); + metrics = (NamedList)values.get("metrics"); + assertEquals(0, metrics.size()); + assertNotNull(values.findRecursive("errors", "solr.jetty:unknown:baz")); + } } diff --git a/solr/core/src/test/org/apache/solr/util/stats/MetricUtilsTest.java b/solr/core/src/test/org/apache/solr/util/stats/MetricUtilsTest.java index 4eb11691c67..fa9ab5166dd 100644 --- a/solr/core/src/test/org/apache/solr/util/stats/MetricUtilsTest.java +++ b/solr/core/src/test/org/apache/solr/util/stats/MetricUtilsTest.java @@ -47,7 +47,7 @@ public class MetricUtilsTest extends SolrTestCaseJ4 { } // obtain timer metrics Map map = new HashMap<>(); - MetricUtils.convertTimer("", timer, MetricUtils.PropertyFilter.ALL, false, false, (k, v) -> { + MetricUtils.convertTimer("", timer, MetricUtils.PropertyFilter.ALL, false, false, ".", (k, v) -> { map.putAll((Map)v); }); NamedList lst = new NamedList(map); From 18a02ac348e25e9651f384c97653c7995c874c75 Mon Sep 17 00:00:00 2001 From: David Smiley Date: Thu, 17 Aug 2017 09:17:31 -0400 Subject: [PATCH 18/28] SOLR-11249: Upgrade Jetty to 9.3.20.v20170531 --- lucene/ivy-versions.properties | 2 +- .../licenses/jetty-continuation-9.3.14.v20161028.jar.sha1 | 1 - .../licenses/jetty-continuation-9.3.20.v20170531.jar.sha1 | 1 + lucene/licenses/jetty-http-9.3.14.v20161028.jar.sha1 | 1 - lucene/licenses/jetty-http-9.3.20.v20170531.jar.sha1 | 1 + lucene/licenses/jetty-io-9.3.14.v20161028.jar.sha1 | 1 - lucene/licenses/jetty-io-9.3.20.v20170531.jar.sha1 | 1 + lucene/licenses/jetty-server-9.3.14.v20161028.jar.sha1 | 1 - lucene/licenses/jetty-server-9.3.20.v20170531.jar.sha1 | 1 + lucene/licenses/jetty-servlet-9.3.14.v20161028.jar.sha1 | 1 - lucene/licenses/jetty-servlet-9.3.20.v20170531.jar.sha1 | 1 + lucene/licenses/jetty-util-9.3.14.v20161028.jar.sha1 | 1 - lucene/licenses/jetty-util-9.3.20.v20170531.jar.sha1 | 1 + solr/CHANGES.txt | 6 ++++-- solr/licenses/jetty-continuation-9.3.14.v20161028.jar.sha1 | 1 - solr/licenses/jetty-continuation-9.3.20.v20170531.jar.sha1 | 1 + solr/licenses/jetty-deploy-9.3.14.v20161028.jar.sha1 | 1 - solr/licenses/jetty-deploy-9.3.20.v20170531.jar.sha1 | 1 + solr/licenses/jetty-http-9.3.14.v20161028.jar.sha1 | 1 - solr/licenses/jetty-http-9.3.20.v20170531.jar.sha1 | 1 + solr/licenses/jetty-io-9.3.14.v20161028.jar.sha1 | 1 - solr/licenses/jetty-io-9.3.20.v20170531.jar.sha1 | 1 + solr/licenses/jetty-jmx-9.3.14.v20161028.jar.sha1 | 1 - solr/licenses/jetty-jmx-9.3.20.v20170531.jar.sha1 | 1 + solr/licenses/jetty-rewrite-9.3.14.v20161028.jar.sha1 | 1 - solr/licenses/jetty-rewrite-9.3.20.v20170531.jar.sha1 | 1 + solr/licenses/jetty-security-9.3.14.v20161028.jar.sha1 | 1 - solr/licenses/jetty-security-9.3.20.v20170531.jar.sha1 | 1 + solr/licenses/jetty-server-9.3.14.v20161028.jar.sha1 | 1 - solr/licenses/jetty-server-9.3.20.v20170531.jar.sha1 | 1 + solr/licenses/jetty-servlet-9.3.14.v20161028.jar.sha1 | 1 - solr/licenses/jetty-servlet-9.3.20.v20170531.jar.sha1 | 1 + solr/licenses/jetty-servlets-9.3.14.v20161028.jar.sha1 | 1 - solr/licenses/jetty-servlets-9.3.20.v20170531.jar.sha1 | 1 + solr/licenses/jetty-util-9.3.14.v20161028.jar.sha1 | 1 - solr/licenses/jetty-util-9.3.20.v20170531.jar.sha1 | 1 + solr/licenses/jetty-webapp-9.3.14.v20161028.jar.sha1 | 1 - solr/licenses/jetty-webapp-9.3.20.v20170531.jar.sha1 | 1 + solr/licenses/jetty-xml-9.3.14.v20161028.jar.sha1 | 1 - solr/licenses/jetty-xml-9.3.20.v20170531.jar.sha1 | 1 + solr/licenses/start.jar.sha1 | 2 +- 41 files changed, 25 insertions(+), 23 deletions(-) delete mode 100644 lucene/licenses/jetty-continuation-9.3.14.v20161028.jar.sha1 create mode 100644 lucene/licenses/jetty-continuation-9.3.20.v20170531.jar.sha1 delete mode 100644 lucene/licenses/jetty-http-9.3.14.v20161028.jar.sha1 create mode 100644 lucene/licenses/jetty-http-9.3.20.v20170531.jar.sha1 delete mode 100644 lucene/licenses/jetty-io-9.3.14.v20161028.jar.sha1 create mode 100644 lucene/licenses/jetty-io-9.3.20.v20170531.jar.sha1 delete mode 100644 lucene/licenses/jetty-server-9.3.14.v20161028.jar.sha1 create mode 100644 lucene/licenses/jetty-server-9.3.20.v20170531.jar.sha1 delete mode 100644 lucene/licenses/jetty-servlet-9.3.14.v20161028.jar.sha1 create mode 100644 lucene/licenses/jetty-servlet-9.3.20.v20170531.jar.sha1 delete mode 100644 lucene/licenses/jetty-util-9.3.14.v20161028.jar.sha1 create mode 100644 lucene/licenses/jetty-util-9.3.20.v20170531.jar.sha1 delete mode 100644 solr/licenses/jetty-continuation-9.3.14.v20161028.jar.sha1 create mode 100644 solr/licenses/jetty-continuation-9.3.20.v20170531.jar.sha1 delete mode 100644 solr/licenses/jetty-deploy-9.3.14.v20161028.jar.sha1 create mode 100644 solr/licenses/jetty-deploy-9.3.20.v20170531.jar.sha1 delete mode 100644 solr/licenses/jetty-http-9.3.14.v20161028.jar.sha1 create mode 100644 solr/licenses/jetty-http-9.3.20.v20170531.jar.sha1 delete mode 100644 solr/licenses/jetty-io-9.3.14.v20161028.jar.sha1 create mode 100644 solr/licenses/jetty-io-9.3.20.v20170531.jar.sha1 delete mode 100644 solr/licenses/jetty-jmx-9.3.14.v20161028.jar.sha1 create mode 100644 solr/licenses/jetty-jmx-9.3.20.v20170531.jar.sha1 delete mode 100644 solr/licenses/jetty-rewrite-9.3.14.v20161028.jar.sha1 create mode 100644 solr/licenses/jetty-rewrite-9.3.20.v20170531.jar.sha1 delete mode 100644 solr/licenses/jetty-security-9.3.14.v20161028.jar.sha1 create mode 100644 solr/licenses/jetty-security-9.3.20.v20170531.jar.sha1 delete mode 100644 solr/licenses/jetty-server-9.3.14.v20161028.jar.sha1 create mode 100644 solr/licenses/jetty-server-9.3.20.v20170531.jar.sha1 delete mode 100644 solr/licenses/jetty-servlet-9.3.14.v20161028.jar.sha1 create mode 100644 solr/licenses/jetty-servlet-9.3.20.v20170531.jar.sha1 delete mode 100644 solr/licenses/jetty-servlets-9.3.14.v20161028.jar.sha1 create mode 100644 solr/licenses/jetty-servlets-9.3.20.v20170531.jar.sha1 delete mode 100644 solr/licenses/jetty-util-9.3.14.v20161028.jar.sha1 create mode 100644 solr/licenses/jetty-util-9.3.20.v20170531.jar.sha1 delete mode 100644 solr/licenses/jetty-webapp-9.3.14.v20161028.jar.sha1 create mode 100644 solr/licenses/jetty-webapp-9.3.20.v20170531.jar.sha1 delete mode 100644 solr/licenses/jetty-xml-9.3.14.v20161028.jar.sha1 create mode 100644 solr/licenses/jetty-xml-9.3.20.v20170531.jar.sha1 diff --git a/lucene/ivy-versions.properties b/lucene/ivy-versions.properties index e1a432ba643..1e273b2eb43 100644 --- a/lucene/ivy-versions.properties +++ b/lucene/ivy-versions.properties @@ -222,7 +222,7 @@ org.codehaus.janino.version = 2.7.6 /org.codehaus.woodstox/stax2-api = 3.1.4 /org.codehaus.woodstox/woodstox-core-asl = 4.4.1 -org.eclipse.jetty.version = 9.3.14.v20161028 +org.eclipse.jetty.version = 9.3.20.v20170531 /org.eclipse.jetty/jetty-continuation = ${org.eclipse.jetty.version} /org.eclipse.jetty/jetty-deploy = ${org.eclipse.jetty.version} /org.eclipse.jetty/jetty-http = ${org.eclipse.jetty.version} diff --git a/lucene/licenses/jetty-continuation-9.3.14.v20161028.jar.sha1 b/lucene/licenses/jetty-continuation-9.3.14.v20161028.jar.sha1 deleted file mode 100644 index 7e28d056b95..00000000000 --- a/lucene/licenses/jetty-continuation-9.3.14.v20161028.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -4ba272cee2e367766dfdc1901c960de352160d41 diff --git a/lucene/licenses/jetty-continuation-9.3.20.v20170531.jar.sha1 b/lucene/licenses/jetty-continuation-9.3.20.v20170531.jar.sha1 new file mode 100644 index 00000000000..4e086fcf849 --- /dev/null +++ b/lucene/licenses/jetty-continuation-9.3.20.v20170531.jar.sha1 @@ -0,0 +1 @@ +0176f1ef8366257e7b6214c3bbd710cf47593135 diff --git a/lucene/licenses/jetty-http-9.3.14.v20161028.jar.sha1 b/lucene/licenses/jetty-http-9.3.14.v20161028.jar.sha1 deleted file mode 100644 index c09d75822c3..00000000000 --- a/lucene/licenses/jetty-http-9.3.14.v20161028.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -ea3800883f79f757b2635a737bb71bb21e90cf19 diff --git a/lucene/licenses/jetty-http-9.3.20.v20170531.jar.sha1 b/lucene/licenses/jetty-http-9.3.20.v20170531.jar.sha1 new file mode 100644 index 00000000000..1936a2e298f --- /dev/null +++ b/lucene/licenses/jetty-http-9.3.20.v20170531.jar.sha1 @@ -0,0 +1 @@ +32f5fe22ed468a49df1ffcbb27c39c1b53f261aa diff --git a/lucene/licenses/jetty-io-9.3.14.v20161028.jar.sha1 b/lucene/licenses/jetty-io-9.3.14.v20161028.jar.sha1 deleted file mode 100644 index 9b546438f10..00000000000 --- a/lucene/licenses/jetty-io-9.3.14.v20161028.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -52d796b58c3a997e59e6b47c4bf022cedcba3514 diff --git a/lucene/licenses/jetty-io-9.3.20.v20170531.jar.sha1 b/lucene/licenses/jetty-io-9.3.20.v20170531.jar.sha1 new file mode 100644 index 00000000000..5d47c215049 --- /dev/null +++ b/lucene/licenses/jetty-io-9.3.20.v20170531.jar.sha1 @@ -0,0 +1 @@ +5b68e7761fcacefcf26ad9ab50943db65fda2c3d diff --git a/lucene/licenses/jetty-server-9.3.14.v20161028.jar.sha1 b/lucene/licenses/jetty-server-9.3.14.v20161028.jar.sha1 deleted file mode 100644 index f338c621d0a..00000000000 --- a/lucene/licenses/jetty-server-9.3.14.v20161028.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -791df6c55ad62841ff518ba6634e905a95567260 diff --git a/lucene/licenses/jetty-server-9.3.20.v20170531.jar.sha1 b/lucene/licenses/jetty-server-9.3.20.v20170531.jar.sha1 new file mode 100644 index 00000000000..0c9d4357680 --- /dev/null +++ b/lucene/licenses/jetty-server-9.3.20.v20170531.jar.sha1 @@ -0,0 +1 @@ +6a1523d44ebb527eed068a5c8bfd22edd6a20530 diff --git a/lucene/licenses/jetty-servlet-9.3.14.v20161028.jar.sha1 b/lucene/licenses/jetty-servlet-9.3.14.v20161028.jar.sha1 deleted file mode 100644 index 9eb583ef7eb..00000000000 --- a/lucene/licenses/jetty-servlet-9.3.14.v20161028.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -b5714a6005387b2a361d5b39a3a37d4df1892e62 diff --git a/lucene/licenses/jetty-servlet-9.3.20.v20170531.jar.sha1 b/lucene/licenses/jetty-servlet-9.3.20.v20170531.jar.sha1 new file mode 100644 index 00000000000..452932d2baf --- /dev/null +++ b/lucene/licenses/jetty-servlet-9.3.20.v20170531.jar.sha1 @@ -0,0 +1 @@ +21a698f9d58d03cdf58bf2a40f93de58c2eab138 diff --git a/lucene/licenses/jetty-util-9.3.14.v20161028.jar.sha1 b/lucene/licenses/jetty-util-9.3.14.v20161028.jar.sha1 deleted file mode 100644 index 6e2a74a6f98..00000000000 --- a/lucene/licenses/jetty-util-9.3.14.v20161028.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -fbf89f6f3b995992f82ec09104ab9a75d31d281b diff --git a/lucene/licenses/jetty-util-9.3.20.v20170531.jar.sha1 b/lucene/licenses/jetty-util-9.3.20.v20170531.jar.sha1 new file mode 100644 index 00000000000..7d020a4a546 --- /dev/null +++ b/lucene/licenses/jetty-util-9.3.20.v20170531.jar.sha1 @@ -0,0 +1 @@ +19ce4203809da37f8ea7a5632704fa71b6f0ccc2 diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 37ac64da562..68c36592352 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -27,7 +27,7 @@ Carrot2 3.15.0 Velocity 1.7 and Velocity Tools 2.0 Apache UIMA 2.3.1 Apache ZooKeeper 3.4.10 -Jetty 9.3.14.v20161028 +Jetty 9.3.20.v20170531 (No Changes) @@ -43,7 +43,7 @@ Carrot2 3.15.0 Velocity 1.7 and Velocity Tools 2.0 Apache UIMA 2.3.1 Apache ZooKeeper 3.4.10 -Jetty 9.3.14.v20161028 +Jetty 9.3.20.v20170531 Detailed Change List ---------------------- @@ -149,6 +149,8 @@ Other Changes * SOLR-11195: Require class attribute for shard and cluster metric reporter configuration. (Christine Poerschke) +* SOLR-11249: Upgrade Jetty from 9.3.14.v20161028 to 9.3.20.v20170531 (Michael Braun via David Smiley) + ================== 7.0.0 ================== Versions of Major Components diff --git a/solr/licenses/jetty-continuation-9.3.14.v20161028.jar.sha1 b/solr/licenses/jetty-continuation-9.3.14.v20161028.jar.sha1 deleted file mode 100644 index 7e28d056b95..00000000000 --- a/solr/licenses/jetty-continuation-9.3.14.v20161028.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -4ba272cee2e367766dfdc1901c960de352160d41 diff --git a/solr/licenses/jetty-continuation-9.3.20.v20170531.jar.sha1 b/solr/licenses/jetty-continuation-9.3.20.v20170531.jar.sha1 new file mode 100644 index 00000000000..4e086fcf849 --- /dev/null +++ b/solr/licenses/jetty-continuation-9.3.20.v20170531.jar.sha1 @@ -0,0 +1 @@ +0176f1ef8366257e7b6214c3bbd710cf47593135 diff --git a/solr/licenses/jetty-deploy-9.3.14.v20161028.jar.sha1 b/solr/licenses/jetty-deploy-9.3.14.v20161028.jar.sha1 deleted file mode 100644 index 6313bf3ad01..00000000000 --- a/solr/licenses/jetty-deploy-9.3.14.v20161028.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -f2aae796f4643180b4e4a159dafc4403e6b25ca7 diff --git a/solr/licenses/jetty-deploy-9.3.20.v20170531.jar.sha1 b/solr/licenses/jetty-deploy-9.3.20.v20170531.jar.sha1 new file mode 100644 index 00000000000..f7f04781371 --- /dev/null +++ b/solr/licenses/jetty-deploy-9.3.20.v20170531.jar.sha1 @@ -0,0 +1 @@ +160c0cefd2fddacd040c41801f40a5a372a9302c diff --git a/solr/licenses/jetty-http-9.3.14.v20161028.jar.sha1 b/solr/licenses/jetty-http-9.3.14.v20161028.jar.sha1 deleted file mode 100644 index c09d75822c3..00000000000 --- a/solr/licenses/jetty-http-9.3.14.v20161028.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -ea3800883f79f757b2635a737bb71bb21e90cf19 diff --git a/solr/licenses/jetty-http-9.3.20.v20170531.jar.sha1 b/solr/licenses/jetty-http-9.3.20.v20170531.jar.sha1 new file mode 100644 index 00000000000..1936a2e298f --- /dev/null +++ b/solr/licenses/jetty-http-9.3.20.v20170531.jar.sha1 @@ -0,0 +1 @@ +32f5fe22ed468a49df1ffcbb27c39c1b53f261aa diff --git a/solr/licenses/jetty-io-9.3.14.v20161028.jar.sha1 b/solr/licenses/jetty-io-9.3.14.v20161028.jar.sha1 deleted file mode 100644 index 9b546438f10..00000000000 --- a/solr/licenses/jetty-io-9.3.14.v20161028.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -52d796b58c3a997e59e6b47c4bf022cedcba3514 diff --git a/solr/licenses/jetty-io-9.3.20.v20170531.jar.sha1 b/solr/licenses/jetty-io-9.3.20.v20170531.jar.sha1 new file mode 100644 index 00000000000..5d47c215049 --- /dev/null +++ b/solr/licenses/jetty-io-9.3.20.v20170531.jar.sha1 @@ -0,0 +1 @@ +5b68e7761fcacefcf26ad9ab50943db65fda2c3d diff --git a/solr/licenses/jetty-jmx-9.3.14.v20161028.jar.sha1 b/solr/licenses/jetty-jmx-9.3.14.v20161028.jar.sha1 deleted file mode 100644 index 366c7fca406..00000000000 --- a/solr/licenses/jetty-jmx-9.3.14.v20161028.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -d4829a57973c36f117792455024684bb6a5202aa diff --git a/solr/licenses/jetty-jmx-9.3.20.v20170531.jar.sha1 b/solr/licenses/jetty-jmx-9.3.20.v20170531.jar.sha1 new file mode 100644 index 00000000000..90b06d7cb8b --- /dev/null +++ b/solr/licenses/jetty-jmx-9.3.20.v20170531.jar.sha1 @@ -0,0 +1 @@ +4a28dd045b8992752ff7727f25cf9e888e9c8c4c diff --git a/solr/licenses/jetty-rewrite-9.3.14.v20161028.jar.sha1 b/solr/licenses/jetty-rewrite-9.3.14.v20161028.jar.sha1 deleted file mode 100644 index 7fb8d81f446..00000000000 --- a/solr/licenses/jetty-rewrite-9.3.14.v20161028.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -823899b9456b3337422e0d98851cfe7842ef2516 diff --git a/solr/licenses/jetty-rewrite-9.3.20.v20170531.jar.sha1 b/solr/licenses/jetty-rewrite-9.3.20.v20170531.jar.sha1 new file mode 100644 index 00000000000..ddb45f102db --- /dev/null +++ b/solr/licenses/jetty-rewrite-9.3.20.v20170531.jar.sha1 @@ -0,0 +1 @@ +8fb029863ceb6531ee0e24c59a004f622226217b diff --git a/solr/licenses/jetty-security-9.3.14.v20161028.jar.sha1 b/solr/licenses/jetty-security-9.3.14.v20161028.jar.sha1 deleted file mode 100644 index 1db953cd6eb..00000000000 --- a/solr/licenses/jetty-security-9.3.14.v20161028.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -68be91fa1bcc82eed1709d36e6a85db7d5aff331 diff --git a/solr/licenses/jetty-security-9.3.20.v20170531.jar.sha1 b/solr/licenses/jetty-security-9.3.20.v20170531.jar.sha1 new file mode 100644 index 00000000000..d4f40c474ca --- /dev/null +++ b/solr/licenses/jetty-security-9.3.20.v20170531.jar.sha1 @@ -0,0 +1 @@ +9e2ded957c05f447a0611fa64ca4ab5f7cc5aa65 diff --git a/solr/licenses/jetty-server-9.3.14.v20161028.jar.sha1 b/solr/licenses/jetty-server-9.3.14.v20161028.jar.sha1 deleted file mode 100644 index f338c621d0a..00000000000 --- a/solr/licenses/jetty-server-9.3.14.v20161028.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -791df6c55ad62841ff518ba6634e905a95567260 diff --git a/solr/licenses/jetty-server-9.3.20.v20170531.jar.sha1 b/solr/licenses/jetty-server-9.3.20.v20170531.jar.sha1 new file mode 100644 index 00000000000..0c9d4357680 --- /dev/null +++ b/solr/licenses/jetty-server-9.3.20.v20170531.jar.sha1 @@ -0,0 +1 @@ +6a1523d44ebb527eed068a5c8bfd22edd6a20530 diff --git a/solr/licenses/jetty-servlet-9.3.14.v20161028.jar.sha1 b/solr/licenses/jetty-servlet-9.3.14.v20161028.jar.sha1 deleted file mode 100644 index 9eb583ef7eb..00000000000 --- a/solr/licenses/jetty-servlet-9.3.14.v20161028.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -b5714a6005387b2a361d5b39a3a37d4df1892e62 diff --git a/solr/licenses/jetty-servlet-9.3.20.v20170531.jar.sha1 b/solr/licenses/jetty-servlet-9.3.20.v20170531.jar.sha1 new file mode 100644 index 00000000000..452932d2baf --- /dev/null +++ b/solr/licenses/jetty-servlet-9.3.20.v20170531.jar.sha1 @@ -0,0 +1 @@ +21a698f9d58d03cdf58bf2a40f93de58c2eab138 diff --git a/solr/licenses/jetty-servlets-9.3.14.v20161028.jar.sha1 b/solr/licenses/jetty-servlets-9.3.14.v20161028.jar.sha1 deleted file mode 100644 index 9a2f7918d2b..00000000000 --- a/solr/licenses/jetty-servlets-9.3.14.v20161028.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -6f49da101a1c3cd1ccd78ac38391bbc36619658e diff --git a/solr/licenses/jetty-servlets-9.3.20.v20170531.jar.sha1 b/solr/licenses/jetty-servlets-9.3.20.v20170531.jar.sha1 new file mode 100644 index 00000000000..57908558427 --- /dev/null +++ b/solr/licenses/jetty-servlets-9.3.20.v20170531.jar.sha1 @@ -0,0 +1 @@ +0bb3b1ddc06525eba71c37f51402996502d323a9 diff --git a/solr/licenses/jetty-util-9.3.14.v20161028.jar.sha1 b/solr/licenses/jetty-util-9.3.14.v20161028.jar.sha1 deleted file mode 100644 index 6e2a74a6f98..00000000000 --- a/solr/licenses/jetty-util-9.3.14.v20161028.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -fbf89f6f3b995992f82ec09104ab9a75d31d281b diff --git a/solr/licenses/jetty-util-9.3.20.v20170531.jar.sha1 b/solr/licenses/jetty-util-9.3.20.v20170531.jar.sha1 new file mode 100644 index 00000000000..7d020a4a546 --- /dev/null +++ b/solr/licenses/jetty-util-9.3.20.v20170531.jar.sha1 @@ -0,0 +1 @@ +19ce4203809da37f8ea7a5632704fa71b6f0ccc2 diff --git a/solr/licenses/jetty-webapp-9.3.14.v20161028.jar.sha1 b/solr/licenses/jetty-webapp-9.3.14.v20161028.jar.sha1 deleted file mode 100644 index e028443ec92..00000000000 --- a/solr/licenses/jetty-webapp-9.3.14.v20161028.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -c9ad20bd632ffe1d8e4631f2ed185310db258f48 diff --git a/solr/licenses/jetty-webapp-9.3.20.v20170531.jar.sha1 b/solr/licenses/jetty-webapp-9.3.20.v20170531.jar.sha1 new file mode 100644 index 00000000000..1fa7b15988c --- /dev/null +++ b/solr/licenses/jetty-webapp-9.3.20.v20170531.jar.sha1 @@ -0,0 +1 @@ +5b41166ce279c481216501d45c0d0f4f6da23c0b diff --git a/solr/licenses/jetty-xml-9.3.14.v20161028.jar.sha1 b/solr/licenses/jetty-xml-9.3.14.v20161028.jar.sha1 deleted file mode 100644 index 69aeafa94a7..00000000000 --- a/solr/licenses/jetty-xml-9.3.14.v20161028.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -3054375490c577ee6156a4b63ec262a39b36fc7e diff --git a/solr/licenses/jetty-xml-9.3.20.v20170531.jar.sha1 b/solr/licenses/jetty-xml-9.3.20.v20170531.jar.sha1 new file mode 100644 index 00000000000..a8a3f2bb345 --- /dev/null +++ b/solr/licenses/jetty-xml-9.3.20.v20170531.jar.sha1 @@ -0,0 +1 @@ +9f3f158a6a4587c4283561a3a3fc5a187173becf diff --git a/solr/licenses/start.jar.sha1 b/solr/licenses/start.jar.sha1 index 4c520914e6c..a964f9add96 100644 --- a/solr/licenses/start.jar.sha1 +++ b/solr/licenses/start.jar.sha1 @@ -1 +1 @@ -122f8028ab12222c9c9b6a7861d9cd3cc5d2ad45 +68b040771da53967c7e48f2ffd7c53732687f425 From 91e3dc2315c88fdbd78fff1e3cf51201dfb0a496 Mon Sep 17 00:00:00 2001 From: Andrzej Bialecki Date: Thu, 17 Aug 2017 16:35:14 +0200 Subject: [PATCH 19/28] SOLR-11215: Document the "key" parameter for MetricsHandler. --- solr/solr-ref-guide/src/metrics-reporting.adoc | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/solr/solr-ref-guide/src/metrics-reporting.adoc b/solr/solr-ref-guide/src/metrics-reporting.adoc index 1212bc2a8ca..c9d9212fcae 100644 --- a/solr/solr-ref-guide/src/metrics-reporting.adoc +++ b/solr/solr-ref-guide/src/metrics-reporting.adoc @@ -339,6 +339,15 @@ prefix:: The first characters of metric name that will filter the metrics return property:: Allows requesting only this metric from any compound metric. Multiple `property` parameters can be combined to act as an OR request. For example, to only get the 99th and 999th percentile values from all metric types and groups, you can add `&property=p99_ms&property=p999_ms` to your request. This can be combined with `group`, `type`, and `prefix` as necessary. +key:: fully-qualified metric name, which specifies one concrete metric instance (parameter can be +specified multiple times to retrieve multiple concrete metrics). *NOTE: when this parameter is used other +selection methods listed above are ignored.* Fully-qualified name consists of registry name, colon and +metric name, with optional colon and metric property. Colons in names can be escaped using back-slash `\` +character. Examples: +`key=solr.node:CONTAINER.fs.totalSpace` +`key=solr.core.collection1:QUERY./select.requestTimes:max_ms` +`key=solr.jvm:system.properties:user.name` + compact:: When false, a more verbose format of the response will be returned. Instead of a response like this: + [source,json] @@ -395,3 +404,7 @@ Request only "counter" type metrics in the "core" group, returned in JSON: Request only "core" group metrics that start with "INDEX", returned in XML: `\http://localhost:8983/solr/admin/metrics?wt=xml&prefix=INDEX&group=core` + +Request only "user.name" property of "system.properties" metric from registry "solr.jvm": + +`\http://localhost:8983/solr/admin/metrics?wt=xml?key=solr.jvm:system.properties:user.name` From 3b548e92d88e409ebd5b316b6d81864dc86ecc74 Mon Sep 17 00:00:00 2001 From: Cassandra Targett Date: Thu, 17 Aug 2017 09:46:57 -0500 Subject: [PATCH 20/28] Make example paths consistent across examples. This closes #235. --- .../src/setting-up-an-external-zookeeper-ensemble.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/solr/solr-ref-guide/src/setting-up-an-external-zookeeper-ensemble.adoc b/solr/solr-ref-guide/src/setting-up-an-external-zookeeper-ensemble.adoc index d82ac29c5e6..a5dab0ef396 100644 --- a/solr/solr-ref-guide/src/setting-up-an-external-zookeeper-ensemble.adoc +++ b/solr/solr-ref-guide/src/setting-up-an-external-zookeeper-ensemble.adoc @@ -138,7 +138,7 @@ The `/conf/zoo2.cfg` file should have the content: [source,bash] ---- tickTime=2000 -dataDir=c:/sw/zookeeperdata/2 +dataDir=/var/lib/zookeeperdata/2 clientPort=2182 initLimit=5 syncLimit=2 @@ -152,7 +152,7 @@ You'll also need to create `/conf/zoo3.cfg`: [source,bash] ---- tickTime=2000 -dataDir=c:/sw/zookeeperdata/3 +dataDir=/var/lib/zookeeperdata/3 clientPort=2183 initLimit=5 syncLimit=2 From b7b7f4df02f28bfe602d3a195650d39635da1243 Mon Sep 17 00:00:00 2001 From: Joel Bernstein Date: Thu, 17 Aug 2017 16:06:14 -0400 Subject: [PATCH 21/28] SOLR-10651: Statistical function docs for 7.0 Part 3 --- .../src/statistical-programming.adoc | 768 ++++++++++++++++++ 1 file changed, 768 insertions(+) create mode 100644 solr/solr-ref-guide/src/statistical-programming.adoc diff --git a/solr/solr-ref-guide/src/statistical-programming.adoc b/solr/solr-ref-guide/src/statistical-programming.adoc new file mode 100644 index 00000000000..2bc79116c49 --- /dev/null +++ b/solr/solr-ref-guide/src/statistical-programming.adoc @@ -0,0 +1,768 @@ += Statistical Programming +:page-shortname: statistical-programming +:page-permalink: statistical-programming.html +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +The Streaming Expression language includes a powerful statistical programing syntax with many of the +features of a functional programming language. The syntax includes *variables*, *data structures* +and a growing set of *mathematical functions*. + +Using the statistical programing syntax Solr's powerful `data retrieval` +capabilities can be combined with in-depth `statistical analysis`. + +The `data retrieval` methods include: + + * SQL + * time series aggregation + * random sampling + * faceted aggregation + * KNN searches + * topic message queues + * MapReduce (parallel relational algebra) + * JDBC calls to outside databases + * Graph Expressions + +Once the data is retrieved, the statistical programming syntax can be used to create *arrays* from the data so it +can be *manipulated*, *transformed* and *analyzed*. + +The statistical function library includes functions that perform: + +* Correlation +* Cross-correlation +* Covariance +* Moving averages +* Percentiles +* Simple regression and prediction +* ANOVA +* Histograms +* Convolution +* Euclidean distance +* Descriptive statistics +* Rank transformation +* Normalization transformation +* Sequences +* Array manipulation functions (creation, copying, length, scaling, reverse etc...) + +The statistical function library is backed by `Apache Commons Math`. + +This document provides an overview of the how to apply the variables, data structures +and mathematical functions. + +== /stream handler + +Like all Streaming Expressions the statistical functions can be run by Solr's /stream handler. + +== Math + +Streaming Expressions contain a suite of *mathematical* functions which can be called on +their own or as part of a larger expression. + +Solr's /stream handler evaluates the mathematical expression and returns a result. + +For example sending the following expression to the /stream handler: + +[source,text] +---- +add(1, 1) +---- + +Returns the following response: + +[source,text] +---- +{ + "result-set": { + "docs": [ + { + "return-value": 2 + }, + { + "EOF": true, + "RESPONSE_TIME": 2 + } + ] + } +} +---- + +You can nest math functions within each other. For example: + +[source,text] +---- +pow(10, add(1,1)) +---- + +Returns the following response: + +[source,text] +---- +{ + "result-set": { + "docs": [ + { + "return-value": 100 + }, + { + "EOF": true, + "RESPONSE_TIME": 0 + } + ] + } +} +---- + +You can also perform math on a stream of Tuples. + +For example: + +[source,text] +---- +select(search(collection2, q="*:*", fl="price_f", sort="price_f desc", rows="3"), + price_f, + mult(price_f, 10) as newPrice) +---- + +Returns the following response: + +[source, text] +---- +{ + "result-set": { + "docs": [ + { + "price_f": 0.99999994, + "newPrice": 9.9999994 + }, + { + "price_f": 0.99999994, + "newPrice": 9.9999994 + }, + { + "price_f": 0.9999992, + "newPrice": 9.999992 + }, + { + "EOF": true, + "RESPONSE_TIME": 3 + } + ] + } +} +---- + +== Arrays + +The first data structure we'll explore is the *array*. + +We can create an array with the `array` function: + +For example: + +[source,text] +---- +array(1, 2, 3) +---- + +Returns the following response: + +[source,text] +---- +{ + "result-set": { + "docs": [ + { + "return-value": [ + 1, + 2, + 3 + ] + }, + { + "EOF": true, + "RESPONSE_TIME": 0 + } + ] + } +} +---- + +We can nest arrays within arrays to form a *matrix*: + +[source,text] +---- +array(array(1, 2, 3), + array(4, 5, 6)) +---- + +Returns the following response: + +[source,text] +---- +{ + "result-set": { + "docs": [ + { + "return-value": [ + [ + 1, + 2, + 3 + ], + [ + 4, + 5, + 6 + ] + ] + }, + { + "EOF": true, + "RESPONSE_TIME": 0 + } + ] + } +} +---- + +We can manipulate arrays with functions. + +For example we can reverse and array with `rev` function. + +[source,text] +---- +rev(array(1, 2, 3)) +---- + +Returns the following response: + +[source,text] +---- +{ + "result-set": { + "docs": [ + { + "return-value": [ + 3, + 2, + 1 + ] + }, + { + "EOF": true, + "RESPONSE_TIME": 0 + } + ] + } +} +---- + +Functions can return arrays. + +For example the sequence function: + +[source,text] +---- +sequence(5,0,1) +---- + +This returns an array of size *5* starting from *0* with a stride of *1*. + +[source,text] +---- +{ + "result-set": { + "docs": [ + { + "return-value": [ + 0, + 1, + 2, + 3, + 4 + ] + }, + { + "EOF": true, + "RESPONSE_TIME": 4 + } + ] + } +} +---- + +We can perform math on an array. + +For example we can scale an array with the `scale` function: + +Expression: + +[source,text] +---- +scale(sequence(5,0,1), 10) +---- + +Returns the following response: + +[source,text] +---- +{ + "result-set": { + "docs": [ + { + "return-value": [ + 0, + 10, + 20, + 30, + 40 + ] + }, + { + "EOF": true, + "RESPONSE_TIME": 0 + } + ] + } +} +---- + +We can perform `statistical analysis` on arrays. + +For example we can correlate two sequences with the `corr` function: + +[source,text] +---- +corr(sequence(5,1,1), sequence(5,10,10)) +---- + +Returns the following response: + +[source,text] +---- +{ + "result-set": { + "docs": [ + { + "return-value": 1 + }, + { + "EOF": true, + "RESPONSE_TIME": 1 + } + ] + } +} +---- + + +== Tuple + +The *tuple* is the next data structure we'll explore. + +The `tuple` function returns a map of name/value pairs. A tuple is a very flexible data structure +that can hold values that are strings, numerics, arrays and lists of tuples. + +A tuple can be used to return a complex result from a statistical expression. + +Here is an example: + +[source,text] +---- +tuple(title="hello world", + array1=array(1,2,3,4), + array2=array(4,5,6,7)) + +Returns the following response: + +---- +[source,text] +---- +{ + "result-set": { + "docs": [ + { + "title": "hello world", + "array1": [ + 1, + 2, + 3, + 4 + ], + "array2": [ + 4, + 5, + 6, + 7 + ] + }, + { + "EOF": true, + "RESPONSE_TIME": 0 + } + ] + } +} +---- + +== List + +Next up, we have the *list* data structure. + +The `list` function is a data structure that wraps Streaming Expressions and emits their tuples as a single +concatenated stream. + +Below is an example of a list of tuples: + +[source,text] +---- +list(tuple(id=1, data=array(1, 2, 3)), + tuple(id=2, data=array(10, 12, 14))) +---- + +Returns the following response: + +[source,text] +---- + +{ + "result-set": { + "docs": [ + { + "id": "1", + "data": [ + 1, + 2, + 3 + ] + }, + { + "id": "2", + "data": [ + 10, + 12, + 14 + ] + }, + { + "EOF": true, + "RESPONSE_TIME": 0 + } + ] + } +} +---- + +== Let + +The `let` function sets variables and runs a streaming expression that references the variables. + +Th output of any Streaming Expression can be stored in a variable. + +Lets see how `let` works. + +Here is a very simple example: + +[source,text] +---- +let(a=random(collection2, q="*:*", rows="3", fl="price_f"), + b=random(collection2, q="*:*", rows="3", fl="price_f"), + tuple(sample1=a, sample2=b)) +---- + +The `let` expression above is setting variables *a* and *b* to random +samples taken from collection2. + +The `let` function then executes the `tuple` streaming expression +which references the two variables. + +Here is the output: + +[source,text] +---- +{ + "result-set": { + "docs": [ + { + "sample1": [ + { + "price_f": 0.39729273 + }, + { + "price_f": 0.063344836 + }, + { + "price_f": 0.42020327 + } + ], + "sample2": [ + { + "price_f": 0.659244 + }, + { + "price_f": 0.58797807 + }, + { + "price_f": 0.57520163 + } + ] + }, + { + "EOF": true, + "RESPONSE_TIME": 20 + } + ] + } +} +---- + +== Col + +The `col` function is used to move a column of numbers from a list of tuples into an array. +This is an important step because Streaming Expressions such as SQL, random and timeseries return tuples, +but the statistical functions operate on arrays. + +Below is an example of the `col` function: + +[source,text] +---- +let(a=random(collection2, q="*:*", rows="3", fl="price_f"), + b=random(collection2, q="*:*", rows="3", fl="price_f"), + c=col(a, price_f), + d=col(b, price_f), + tuple(sample1=c, sample2=d)) +---- + +The example above is using the `col` function to create arrays from the tuples stored in +variables *a* and *b*. + +Variable *c* contains an array of values from the *price_f* field, +taken from the tuples stored in variable *a*. + +Variable *d* contains an array of values from the *price_f* field, +taken from the tuples stored in variable *b*. + +Also notice that the response `tuple` is now pointing to the arrays in variables *c* and *d*. + +The response shows the arrays: + +[source,text] +---- + +{ + "result-set": { + "docs": [ + { + "sample1": [ + 0.06490427, + 0.6751543, + 0.07063508 + ], + "sample2": [ + 0.8884564, + 0.8878821, + 0.3504665 + ] + }, + { + "EOF": true, + "RESPONSE_TIME": 17 + } + ] + } +} +---- + +== Statistical Programming + +We've covered how the *data structures*, *variables* and a few *statistical functions* work. +Let's dive into an example that puts these tools to use. + +=== Use case + +We have an existing hotel in *cityA* that is very profitable. +We are contemplating opening up a new hotel in a different city. +We're considering 4 different cities: *cityB*, *cityC*, *cityD*, *cityE*. +We'd like to open a hotel in a city that has a very similar room rate to *cityA*. + +How do we determine which of the 4 cities we're considering has the most similar room rates to *cityA* + +=== The Data + +We have a data set of un-aggregated hotel *bookings*. Each booking record has a rate and city. + +=== Can we simply aggregate? + +One approach would be to aggregate the data from each city and compare the *mean* room rates. This approach will +give us some useful information, but the mean is a summary statistic which loses a significant amount of information +about the data. For example we don't have an understanding of how the distribution of room rates is effecting the +mean. + +The *median* room rate provides another interesting data point but it's still not the entire picture. It sill just +one point of reference. + +Is there a way that we can compare the markets without losing valuable information in the data? + +=== K Nearest Neighbor + +The use case we're thinking about can often be approached using a k Nearest Neighbor (knn) algorithm. + +With knn we use a *distance* measure to compare vectors of data to find the k nearest neighbors to +a specific vector. + +=== Distance + +The Streaming Expression statistical function library has a function called `distance`. The `distance` function +computes the Euclidean distance between two vectors. This looks promising for comparing vectors of room rates. + +=== Vectors + +But how to create the vectors from a our data set. Remember we have un-aggregated room rates from each of the cities. +How can we vectorize the data so it can be compared using the `distance` function. + +We have a Streaming Expression that can take a *random sample* from each of the cities. The name of this +expression is `random`. So we could take a random sample of 1000 room rates from each of the five markets. + +But random vectors of room rates are not comparable because the distance algorithm compares values at each index +in the vector. How can make these vectors comparable? + +We can make them comparable by *sorting* them. Then as the distance algorithm moves along the vectors it will be +comparing room rates from lowest to highest in both markets. + +=== The code + +let(cityA=sort(random(bookings, q="city:cityA", rows="1000", fl="rate_d"), by="rate_d asc"), + cityB=sort(random(bookings, q="city:cityB", rows="1000", fl="rate_d"), by="rate_d asc"), + cityC=sort(random(bookings, q="city:cityC", rows="1000", fl="rate_d"), by="rate_d asc"), + city4=sort(random(bookings, q="city:cityD", rows="1000", fl="rate_d"), by="rate_d asc"), + city5=sort(random(bookings, q="city:cityE", rows="1000", fl="rate_d"), by="rate_d asc"), + ratesA=col(cityA, rate_d), + ratesB=col(cityB, rate_d), + ratesC=col(cityC, rate_d), + ratesD=col(cityD, rate_d), + ratesE=col(cityE, rate_d), + top(n=1, + sort="distance asc", + list(tuple(city=B, distance=distance(rateA, rateB)), + tuple(city=C, distance=distance(rateA, rateC)), + tuple(city=D, distance=distance(rateA, rateD)), + tuple(city=E, distance=distance(rateA, rateD))))) + + +==== The code explained + +The `let` expression sets variables first. + +The first 5 variables (cityA, cityB, cityC, cityD, cityE), contain the random samples from the `bookings` collection. +the `random` function is pulling 1000 random samples from each city and including the `rate_d` field in the +tuples that are returned. + +The `random` function is wrapped by a `sort` function which is sorting the tuples in +ascending order based on the rate_d field. + +The next five variables (rates1, rates2, rates3, rates4, rates5) contain the arrays of room rates for each +city. The `col` function is used to move the `rate_d` field from the random sample tuples +into an array for each city. + +Now we have five sorted vectors of room rates that we can compare with our `distance` function. + +After the variables are set the `let` expression runs the `top` expression. + +The `top` expression is wrapping a `list` of `tuples`. Inside each tuple the distance function is used to compare +the rateA vector with one of the other cities. The output of the distance function is stored in the distance field +in the tuple. + +The `list` function emits each `tuple` and the `top` function returns only the tuple with lowest distance. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +[source,text] +---- +let(tuples=list(sort(random(collection2, q="month_i:1", rows="1000", fl="response_d"), by="reponse_d asc"), + sort(random(collection2, q="month_i:2", rows="1000", fl="response_d"), by="reponse_d asc"), + sort(random(collection2, q="month_i:3", rows="1000", fl="response_d"), by="reponse_d asc"), + sort(random(collection2, q="month_i:4", rows="1000", fl="response_d"), by="reponse_d asc"), + sort(random(collection2, q="month_i:5", rows="1000", fl="response_d"), by="reponse_d asc")), + allSamples=col(tuples, response_d), + rankedSamples=rank(allSamples), + sample1=copyOfRange(rankedSamples, 0, 1000), + sample2=copyOfRange(rankedSamples, 1000, 2000), + sample3=copyOfRange(rankedSamples, 2000, 3000), + sample4=copyOfRange(rankedSamples, 3000, 4000), + sample5=copyOfRange(rankedSamples, 4000, 5000), + top(n=1, sort="distance asc", + list(tuple(sample=2, distance=distance(sample1, sample2)), + tuple(sample=3, distance=distance(sample1, sample3)), + tuple(sample=4, distance=distance(sample1, sample4)), + tuple(sample=5, distance=distance(sample1, sample5))))) +---- + +[source,text] +---- + +---- + + + + + + + From e1e557f187b2ed84e0a28d32800c651c089f8584 Mon Sep 17 00:00:00 2001 From: Joel Bernstein Date: Thu, 17 Aug 2017 16:14:37 -0400 Subject: [PATCH 22/28] SOLR-10651: fix docs --- solr/solr-ref-guide/src/statistical-programming.adoc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/solr/solr-ref-guide/src/statistical-programming.adoc b/solr/solr-ref-guide/src/statistical-programming.adoc index 2bc79116c49..a0ebc559b71 100644 --- a/solr/solr-ref-guide/src/statistical-programming.adoc +++ b/solr/solr-ref-guide/src/statistical-programming.adoc @@ -645,6 +645,8 @@ comparing room rates from lowest to highest in both markets. === The code +[source,text] +---- let(cityA=sort(random(bookings, q="city:cityA", rows="1000", fl="rate_d"), by="rate_d asc"), cityB=sort(random(bookings, q="city:cityB", rows="1000", fl="rate_d"), by="rate_d asc"), cityC=sort(random(bookings, q="city:cityC", rows="1000", fl="rate_d"), by="rate_d asc"), @@ -661,7 +663,7 @@ let(cityA=sort(random(bookings, q="city:cityA", rows="1000", fl="rate_d"), by="r tuple(city=C, distance=distance(rateA, rateC)), tuple(city=D, distance=distance(rateA, rateD)), tuple(city=E, distance=distance(rateA, rateD))))) - +---- ==== The code explained From d0009d10b662a53fdb84b7742a0f8a1c884a6a71 Mon Sep 17 00:00:00 2001 From: Joel Bernstein Date: Thu, 17 Aug 2017 16:17:20 -0400 Subject: [PATCH 23/28] SOLR-10651: fix docs ... --- solr/solr-ref-guide/src/statistical-programming.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/solr/solr-ref-guide/src/statistical-programming.adoc b/solr/solr-ref-guide/src/statistical-programming.adoc index a0ebc559b71..9a91ba2f253 100644 --- a/solr/solr-ref-guide/src/statistical-programming.adoc +++ b/solr/solr-ref-guide/src/statistical-programming.adoc @@ -650,8 +650,8 @@ comparing room rates from lowest to highest in both markets. let(cityA=sort(random(bookings, q="city:cityA", rows="1000", fl="rate_d"), by="rate_d asc"), cityB=sort(random(bookings, q="city:cityB", rows="1000", fl="rate_d"), by="rate_d asc"), cityC=sort(random(bookings, q="city:cityC", rows="1000", fl="rate_d"), by="rate_d asc"), - city4=sort(random(bookings, q="city:cityD", rows="1000", fl="rate_d"), by="rate_d asc"), - city5=sort(random(bookings, q="city:cityE", rows="1000", fl="rate_d"), by="rate_d asc"), + cityD=sort(random(bookings, q="city:cityD", rows="1000", fl="rate_d"), by="rate_d asc"), + cityE=sort(random(bookings, q="city:cityE", rows="1000", fl="rate_d"), by="rate_d asc"), ratesA=col(cityA, rate_d), ratesB=col(cityB, rate_d), ratesC=col(cityC, rate_d), From 6c256749f96f9ef3f3ce8d21ca3ef06d407d3a40 Mon Sep 17 00:00:00 2001 From: Joel Bernstein Date: Thu, 17 Aug 2017 16:18:27 -0400 Subject: [PATCH 24/28] SOLR-10651: fix docs ... --- solr/solr-ref-guide/src/statistical-programming.adoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/solr/solr-ref-guide/src/statistical-programming.adoc b/solr/solr-ref-guide/src/statistical-programming.adoc index 9a91ba2f253..5a8356b228f 100644 --- a/solr/solr-ref-guide/src/statistical-programming.adoc +++ b/solr/solr-ref-guide/src/statistical-programming.adoc @@ -659,10 +659,10 @@ let(cityA=sort(random(bookings, q="city:cityA", rows="1000", fl="rate_d"), by="r ratesE=col(cityE, rate_d), top(n=1, sort="distance asc", - list(tuple(city=B, distance=distance(rateA, rateB)), - tuple(city=C, distance=distance(rateA, rateC)), - tuple(city=D, distance=distance(rateA, rateD)), - tuple(city=E, distance=distance(rateA, rateD))))) + list(tuple(city=B, distance=distance(ratesA, ratesB)), + tuple(city=C, distance=distance(ratesA, ratesC)), + tuple(city=D, distance=distance(ratesA, ratesD)), + tuple(city=E, distance=distance(ratesA, ratesE))))) ---- ==== The code explained From 3e2d72bf7b6ed15dfb39e491a2ff766c99963c06 Mon Sep 17 00:00:00 2001 From: Joel Bernstein Date: Thu, 17 Aug 2017 16:21:28 -0400 Subject: [PATCH 25/28] SOLR-10651: fix docs ... --- .../src/statistical-programming.adoc | 73 ------------------- 1 file changed, 73 deletions(-) diff --git a/solr/solr-ref-guide/src/statistical-programming.adoc b/solr/solr-ref-guide/src/statistical-programming.adoc index 5a8356b228f..56f49973c84 100644 --- a/solr/solr-ref-guide/src/statistical-programming.adoc +++ b/solr/solr-ref-guide/src/statistical-programming.adoc @@ -695,76 +695,3 @@ The `list` function emits each `tuple` and the `top` function returns only the t - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -[source,text] ----- -let(tuples=list(sort(random(collection2, q="month_i:1", rows="1000", fl="response_d"), by="reponse_d asc"), - sort(random(collection2, q="month_i:2", rows="1000", fl="response_d"), by="reponse_d asc"), - sort(random(collection2, q="month_i:3", rows="1000", fl="response_d"), by="reponse_d asc"), - sort(random(collection2, q="month_i:4", rows="1000", fl="response_d"), by="reponse_d asc"), - sort(random(collection2, q="month_i:5", rows="1000", fl="response_d"), by="reponse_d asc")), - allSamples=col(tuples, response_d), - rankedSamples=rank(allSamples), - sample1=copyOfRange(rankedSamples, 0, 1000), - sample2=copyOfRange(rankedSamples, 1000, 2000), - sample3=copyOfRange(rankedSamples, 2000, 3000), - sample4=copyOfRange(rankedSamples, 3000, 4000), - sample5=copyOfRange(rankedSamples, 4000, 5000), - top(n=1, sort="distance asc", - list(tuple(sample=2, distance=distance(sample1, sample2)), - tuple(sample=3, distance=distance(sample1, sample3)), - tuple(sample=4, distance=distance(sample1, sample4)), - tuple(sample=5, distance=distance(sample1, sample5))))) ----- - -[source,text] ----- - ----- - - - - - - - From 8ff75edd132579fa0c731993f59e224fc13db746 Mon Sep 17 00:00:00 2001 From: Joel Bernstein Date: Thu, 17 Aug 2017 19:05:02 -0400 Subject: [PATCH 26/28] SOLR-10651: fix docs ... --- .../src/statistical-programming.adoc | 69 +++++++++---------- 1 file changed, 31 insertions(+), 38 deletions(-) diff --git a/solr/solr-ref-guide/src/statistical-programming.adoc b/solr/solr-ref-guide/src/statistical-programming.adoc index 56f49973c84..c42e3225c02 100644 --- a/solr/solr-ref-guide/src/statistical-programming.adoc +++ b/solr/solr-ref-guide/src/statistical-programming.adoc @@ -22,10 +22,10 @@ The Streaming Expression language includes a powerful statistical programing syn features of a functional programming language. The syntax includes *variables*, *data structures* and a growing set of *mathematical functions*. -Using the statistical programing syntax Solr's powerful `data retrieval` -capabilities can be combined with in-depth `statistical analysis`. +Using the statistical programing syntax Solr's powerful *data retrieval* +capabilities can be combined with in-depth *statistical analysis*. -The `data retrieval` methods include: +The *data retrieval* methods include: * SQL * time series aggregation @@ -58,18 +58,18 @@ The statistical function library includes functions that perform: * Sequences * Array manipulation functions (creation, copying, length, scaling, reverse etc...) -The statistical function library is backed by `Apache Commons Math`. +The statistical function library is backed by *Apache Commons Math*. This document provides an overview of the how to apply the variables, data structures and mathematical functions. == /stream handler -Like all Streaming Expressions the statistical functions can be run by Solr's /stream handler. +Like all Streaming Expressions, the statistical functions can be run by Solr's /stream handler. == Math -Streaming Expressions contain a suite of *mathematical* functions which can be called on +Streaming Expressions contain a suite of *mathematical functions* which can be called on their own or as part of a larger expression. Solr's /stream handler evaluates the mathematical expression and returns a result. @@ -241,7 +241,7 @@ Returns the following response: We can manipulate arrays with functions. -For example we can reverse and array with `rev` function. +For example we can reverse and array with the `rev` function: [source,text] ---- @@ -271,7 +271,7 @@ Returns the following response: } ---- -Functions can return arrays. +Arrays can also be built and returned by functions. For example the sequence function: @@ -313,7 +313,7 @@ Expression: [source,text] ---- -scale(sequence(5,0,1), 10) +scale(10, sequence(5,0,1)) ---- Returns the following response: @@ -341,7 +341,7 @@ Returns the following response: } ---- -We can perform `statistical analysis` on arrays. +We can perform *statistical analysis* on arrays. For example we can correlate two sequences with the `corr` function: @@ -421,10 +421,10 @@ Returns the following response: == List -Next up, we have the *list* data structure. +Next we have the *list* data structure. -The `list` function is a data structure that wraps Streaming Expressions and emits their tuples as a single -concatenated stream. +The `list` function is a data structure that wraps Streaming Expressions and emits all the tuples from the wrapped +expressions as a single concatenated stream. Below is an example of a list of tuples: @@ -469,11 +469,10 @@ Returns the following response: == Let -The `let` function sets variables and runs a streaming expression that references the variables. +The `let` function sets *variables* and runs a Streaming Expression that references the variables. The `let` funtion can be used to +write small statistical programs. -Th output of any Streaming Expression can be stored in a variable. - -Lets see how `let` works. +A *variable* can be set to the output of any Streaming Expression. Here is a very simple example: @@ -532,8 +531,8 @@ Here is the output: == Col -The `col` function is used to move a column of numbers from a list of tuples into an array. -This is an important step because Streaming Expressions such as SQL, random and timeseries return tuples, +The `col` function is used to move a column of numbers from a list of tuples into an `array`. +This is an important function because Streaming Expressions such as `sql`, `random` and `timeseries` return tuples, but the statistical functions operate on arrays. Below is an example of the `col` function: @@ -556,7 +555,7 @@ taken from the tuples stored in variable *a*. Variable *d* contains an array of values from the *price_f* field, taken from the tuples stored in variable *b*. -Also notice that the response `tuple` is now pointing to the arrays in variables *c* and *d*. +Also notice inn that the response `tuple` executed by `let` is pointing to the arrays in variables *c* and *d*. The response shows the arrays: @@ -597,9 +596,9 @@ Let's dive into an example that puts these tools to use. We have an existing hotel in *cityA* that is very profitable. We are contemplating opening up a new hotel in a different city. We're considering 4 different cities: *cityB*, *cityC*, *cityD*, *cityE*. -We'd like to open a hotel in a city that has a very similar room rate to *cityA*. +We'd like to open a hotel in a city that has similar room rates to *cityA*. -How do we determine which of the 4 cities we're considering has the most similar room rates to *cityA* +How do we determine which of the 4 cities we're considering has room rates which are most similar to *cityA*? === The Data @@ -609,17 +608,17 @@ We have a data set of un-aggregated hotel *bookings*. Each booking record has a One approach would be to aggregate the data from each city and compare the *mean* room rates. This approach will give us some useful information, but the mean is a summary statistic which loses a significant amount of information -about the data. For example we don't have an understanding of how the distribution of room rates is effecting the +about the data. For example we don't have an understanding of how the distribution of room rates is impacting the mean. -The *median* room rate provides another interesting data point but it's still not the entire picture. It sill just +The *median* room rate provides another interesting data point but it's still not the entire picture. It's sill just one point of reference. Is there a way that we can compare the markets without losing valuable information in the data? === K Nearest Neighbor -The use case we're thinking about can often be approached using a k Nearest Neighbor (knn) algorithm. +The use case we're reasoning about can often be approached using a K Nearest Neighbor (knn) algorithm. With knn we use a *distance* measure to compare vectors of data to find the k nearest neighbors to a specific vector. @@ -631,17 +630,17 @@ computes the Euclidean distance between two vectors. This looks promising for co === Vectors -But how to create the vectors from a our data set. Remember we have un-aggregated room rates from each of the cities. +But how to create the vectors from a our data set? Remember we have un-aggregated room rates from each of the cities. How can we vectorize the data so it can be compared using the `distance` function. -We have a Streaming Expression that can take a *random sample* from each of the cities. The name of this -expression is `random`. So we could take a random sample of 1000 room rates from each of the five markets. +We have a Streaming Expression that can retrieve a *random sample* from each of the cities. The name of this +expression is `random`. So we could take a random sample of 1000 room rates from each of the five cities. But random vectors of room rates are not comparable because the distance algorithm compares values at each index in the vector. How can make these vectors comparable? We can make them comparable by *sorting* them. Then as the distance algorithm moves along the vectors it will be -comparing room rates from lowest to highest in both markets. +comparing room rates from lowest to highest in both cities. === The code @@ -676,7 +675,7 @@ tuples that are returned. The `random` function is wrapped by a `sort` function which is sorting the tuples in ascending order based on the rate_d field. -The next five variables (rates1, rates2, rates3, rates4, rates5) contain the arrays of room rates for each +The next five variables (ratesA, ratesB, ratesC, ratesD, ratesE) contain the arrays of room rates for each city. The `col` function is used to move the `rate_d` field from the random sample tuples into an array for each city. @@ -684,14 +683,8 @@ Now we have five sorted vectors of room rates that we can compare with our `dist After the variables are set the `let` expression runs the `top` expression. -The `top` expression is wrapping a `list` of `tuples`. Inside each tuple the distance function is used to compare +The `top` expression is wrapping a `list` of `tuples`. Inside each tuple the `distance` function is used to compare the rateA vector with one of the other cities. The output of the distance function is stored in the distance field in the tuple. -The `list` function emits each `tuple` and the `top` function returns only the tuple with lowest distance. - - - - - - +The `list` function emits each `tuple` and the `top` function returns only the tuple with the lowest distance. From ff3d0dd70b351ab0de3971b0f3121e2f8630be63 Mon Sep 17 00:00:00 2001 From: Joel Bernstein Date: Fri, 18 Aug 2017 11:27:41 -0400 Subject: [PATCH 27/28] SOLR-10651: fix docs ... --- solr/solr-ref-guide/src/statistical-programming.adoc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/solr/solr-ref-guide/src/statistical-programming.adoc b/solr/solr-ref-guide/src/statistical-programming.adoc index c42e3225c02..77028bc5e06 100644 --- a/solr/solr-ref-guide/src/statistical-programming.adoc +++ b/solr/solr-ref-guide/src/statistical-programming.adoc @@ -370,7 +370,7 @@ Returns the following response: ---- -== Tuple +== Tuples The *tuple* is the next data structure we'll explore. @@ -419,7 +419,7 @@ Returns the following response: } ---- -== List +== Lists Next we have the *list* data structure. @@ -467,7 +467,7 @@ Returns the following response: } ---- -== Let +== Variables with the `let` function The `let` function sets *variables* and runs a Streaming Expression that references the variables. The `let` funtion can be used to write small statistical programs. @@ -529,7 +529,7 @@ Here is the output: } ---- -== Col +== Creating arrays with `col` function The `col` function is used to move a column of numbers from a list of tuples into an `array`. This is an important function because Streaming Expressions such as `sql`, `random` and `timeseries` return tuples, @@ -586,7 +586,7 @@ The response shows the arrays: } ---- -== Statistical Programming +== Statistical Programming Example We've covered how the *data structures*, *variables* and a few *statistical functions* work. Let's dive into an example that puts these tools to use. @@ -623,7 +623,7 @@ The use case we're reasoning about can often be approached using a K Nearest Nei With knn we use a *distance* measure to compare vectors of data to find the k nearest neighbors to a specific vector. -=== Distance +=== Euclidean Distance The Streaming Expression statistical function library has a function called `distance`. The `distance` function computes the Euclidean distance between two vectors. This looks promising for comparing vectors of room rates. From 4a9d5630bc21f121891aec1e40d3c021904f69c9 Mon Sep 17 00:00:00 2001 From: Joel Bernstein Date: Fri, 18 Aug 2017 13:27:25 -0400 Subject: [PATCH 28/28] SOLR-10651: fix docs ... --- solr/solr-ref-guide/src/statistical-programming.adoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/solr/solr-ref-guide/src/statistical-programming.adoc b/solr/solr-ref-guide/src/statistical-programming.adoc index 77028bc5e06..460fb26d357 100644 --- a/solr/solr-ref-guide/src/statistical-programming.adoc +++ b/solr/solr-ref-guide/src/statistical-programming.adoc @@ -165,7 +165,7 @@ Returns the following response: } ---- -== Arrays +== Array (data structure) The first data structure we'll explore is the *array*. @@ -370,7 +370,7 @@ Returns the following response: ---- -== Tuples +== Tuple (data structure) The *tuple* is the next data structure we'll explore. @@ -419,7 +419,7 @@ Returns the following response: } ---- -== Lists +== List (data structure) Next we have the *list* data structure. @@ -467,7 +467,7 @@ Returns the following response: } ---- -== Variables with the `let` function +== Let (setting variables) The `let` function sets *variables* and runs a Streaming Expression that references the variables. The `let` funtion can be used to write small statistical programs.